diff --git a/.babelrc b/.babelrc deleted file mode 100644 index 1bdc519..0000000 --- a/.babelrc +++ /dev/null @@ -1,8 +0,0 @@ -{ - "presets": [ - ["@babel/preset-env", { - "targets": "> 5%" - }] - ], - "plugins": ["@babel/plugin-syntax-object-rest-spread"] -} \ No newline at end of file diff --git a/.editorconfig b/.editorconfig index f5ebc44..41c2050 100644 --- a/.editorconfig +++ b/.editorconfig @@ -5,5 +5,9 @@ end_of_line = lf insert_final_newline = false trim_trailing_whitespace = true charset = utf-8 -indent_size = 4 -indent_style = tab \ No newline at end of file +indent_size = 2 +indent_style = space + +[*.yml] +indent_size = 2 +indent_style = space \ No newline at end of file diff --git a/.eslintrc.json b/.eslintrc.json deleted file mode 100644 index dc3b73e..0000000 --- a/.eslintrc.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "rules": { - "dot-notation": [2], - "indent": [2, "tab", { - "SwitchCase": 1, - "ObjectExpression": "first" - } - ], - "quotes": [2, "single"], - "linebreak-style": [2, "unix"], - "no-console": [2, { "allow": ["warn", "error"] }], - "no-eq-null":[2], - "no-eval":[2], - "no-implied-eval":[2], - "no-redeclare": [2, { "builtinGlobals": true }], - "one-var": [2, "never"], - "prefer-const":[2], - "semi": [2, "always"], - "keyword-spacing":[2, { - "before": true, - "after": true, - "overrides": { - "if": { - "before": false - }, - "for": { - "before": false - }, - "while": { - "before": false - } - } - } - ], - "space-before-blocks":[2, "always"], - "space-before-function-paren": [2, "always"], - "strict":[0, "global"], - "no-unused-vars": [1, { "args": "after-used" }] - }, - "env": { - "es6": true, - "browser": true - }, - "parserOptions": { - "ecmaVersion": 8, - "sourceType": "module" - }, - "parser": "babel-eslint", - "extends": "eslint:recommended" -} \ No newline at end of file diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml deleted file mode 100644 index 38f52c6..0000000 --- a/.github/workflows/build.yml +++ /dev/null @@ -1,36 +0,0 @@ -name: Build Core - -on: - push: - branches: - - develop - paths: - - '**.js' - - '**.json' - - '**.css' - - '!dist/**' - - '!cypress/**' - -jobs: - build: - - runs-on: ubuntu-latest - - steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - uses: Borales/actions-yarn@v2.0.0 - with: - cmd: install # will run `yarn install` command - - name: Build Core - uses: Borales/actions-yarn@v2.0.0 - with: - cmd: build:core # will run `yarn build:core` command - - name: Commit changed files - uses: stefanzweifel/git-auto-commit-action@v2.2.0 - with: - commit_message: Update engine core - branch: develop - file_pattern: dist/engine/core - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 70493de..0628815 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,51 +1,39 @@ name: Code Quality Check -on: +on: push: branches: - develop - paths: - - '.htmlhintrc' - - '.postcssrc' - - '.stylelintrc' - - '**.html' + paths: + - '**.ts' - '**.js' - - '**.json' + - '**.json' - '**.css' - - '!dist/engine/core/**' + - '!dist/**' + - '!cypress/**' pull_request: - branches: + branches: - develop - paths: - - '.htmlhintrc' - - '.postcssrc' - - '.stylelintrc' - - '**.html' + paths: + - '**.ts' - '**.js' - - '**.json' + - '**.json' - '**.css' - - '!dist/engine/core/**' + - '!dist/**' + - '!cypress/**' jobs: lint: - runs-on: ubuntu-latest steps: - - uses: actions/checkout@v1 - - name: Install Dependencies - uses: Borales/actions-yarn@v2.0.0 - with: - cmd: install # will run `yarn install` command - - name: Lint HTML - uses: Borales/actions-yarn@v2.0.0 + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 with: - cmd: lint:html # will run `yarn lint:html` command - - name: Lint JavaScript - uses: Borales/actions-yarn@v2.0.0 - with: - cmd: lint:js # will run `yarn lint:js` command - - name: Lint CSS - uses: Borales/actions-yarn@v2.0.0 - with: - cmd: lint:css # will run `yarn lint:css` command + bun-version: latest + - name: Install Dependencies + run: bun install + - name: Lint + run: bun run lint + - name: Type Check + run: bun run check diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index de61506..801faaf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -5,36 +5,41 @@ on: branches: - develop paths: - - '**.html' + - '**.ts' - '**.js' - '**.json' - '**.css' - '**/test.yml' - - '!dist/engine/core/**' + - '!dist/**' pull_request: branches: - develop paths: - - '**.html' + - '**.ts' - '**.js' - '**.json' - '**.css' - - '!dist/engine/core/**' + - '!dist/**' jobs: cypress-run: - runs-on: ubuntu-latest + steps: - - uses: actions/checkout@v1 - - name: Run Tests - uses: cypress-io/github-action@v2 + - uses: actions/checkout@v4 + - uses: oven-sh/setup-bun@v2 with: - record: true - browser: chrome - build: yarn run build:core + bun-version: latest + - name: Install Dependencies + run: bun install + - name: Build + run: bun run build + - name: Start Server + run: bunx serve dist -l 8080 & + - name: Wait for Server + run: bunx wait-on http://localhost:8080 + - name: Run Cypress Tests + run: bunx cypress run --record --browser chrome env: - # pass the Dashboard record key as an environment variable CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }} - # pass GitHub token to allow accurately detecting a build vs a re-run build GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.gitignore b/.gitignore index 8a28a74..bd5da3e 100755 --- a/.gitignore +++ b/.gitignore @@ -18,12 +18,20 @@ node_modules package-lock.json +# Lock Files in Template +dist/yarn.lock +dist/package-lock.json +dist/pnpm-lock.yaml +dist/bun.lockb + # Build systems .cache dist/dist # Other cache +.cache +.parcel-cache build release *.log diff --git a/.htmlhintrc b/.htmlhintrc deleted file mode 100644 index f8e53ab..0000000 --- a/.htmlhintrc +++ /dev/null @@ -1,18 +0,0 @@ -{ - "tagname-lowercase": true, - "attr-lowercase": true, - "attr-value-double-quotes": true, - "doctype-first": true, - "tag-pair": true, - "spec-char-escape": true, - "id-unique": true, - "src-not-empty": true, - "attr-no-duplication": true, - "tag-pair": true, - "tag-self-close": false, - "title-require": true, - "doctype-html5": true, - "inline-style-disabled": true, - "space-tab-mixed-disabled": "tab", - "alt-require": true -} \ No newline at end of file diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 0000000..01cee70 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +v25 \ No newline at end of file diff --git a/.postcssrc b/.postcssrc deleted file mode 100644 index 54dffeb..0000000 --- a/.postcssrc +++ /dev/null @@ -1,10 +0,0 @@ -{ - "plugins": { - "autoprefixer": { - "grid": true, - "flexbox": true - }, - "precss": true, - "postcss-calc": true - } -} \ No newline at end of file diff --git a/.stylelintrc b/.stylelintrc deleted file mode 100644 index e928ec5..0000000 --- a/.stylelintrc +++ /dev/null @@ -1,27 +0,0 @@ -{ - "rules": { - "block-closing-brace-empty-line-before": "never", - "block-closing-brace-newline-after": "always", - "declaration-block-semicolon-newline-after": "always", - "declaration-colon-space-after": "always", - "declaration-colon-space-before": "never", - "block-opening-brace-space-before": "always", - "color-hex-case": "lower", - "color-named": "never", - "color-no-invalid-hex": true, - "function-comma-newline-after": "never-multi-line", - "function-comma-space-after": "always", - "no-duplicate-selectors": true, - "no-eol-whitespace": true, - "indentation": "tab", - "number-leading-zero": "always", - "property-no-unknown": [ true, { - "ignoreProperties": [ - "composes" - ] - }], - "selector-list-comma-newline-after": "always", - "unit-case": "lower", - "unit-whitelist": ["em", "rem", "s", "vmax", "vmin", "vh", "vw", "%", "px", "deg", "fr"] - } -} \ No newline at end of file diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7aa06ec..cbb27d1 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -20,12 +20,12 @@ Required Software: - [Git](https://git-scm.com/) - [Node](https://nodejs.org/) -- [Yarn](https://yarnpkg.com/en/) +- [Bun](https://bun.sh/) Recommended Software: You are free to choose your development environment regarding text editors or -additional tools, however I recommend using either [Atom](https://atom.io/) or [Visual Studio Code](https://code.visualstudio.com/). +additional tools, however I recommend using [Visual Studio Code](https://code.visualstudio.com/). ## Getting Ready @@ -51,9 +51,9 @@ the way to contribute. So let's start! ``` 4. Change to the `develop` branch. Monogatari uses the [Git WorkFlow](https://git-scm.com/book/en/v2/Git-Branching-Branching-Workflows) so there are - two main branches, `master` where all the stable code is hosted - and `develop` where all the work in progress code is hosted. Following - this distinction, `master` usually hosts the code of the latest stable + two main branches, `main` where all the stable code is hosted + and `develop` where all the work in progress code is hosted. Following + this distinction, `main` usually hosts the code of the latest stable release while develop hosts the code for the upcoming releases. All your contributions should always use `develop` as its base. @@ -61,18 +61,18 @@ the way to contribute. So let's start! git checkout develop ``` -5. Install all dependencies using [Yarn](https://yarnpkg.com/en/) +5. Install all dependencies using [Bun](https://bun.sh/) ```bash - yarn install + bun install ``` -6. Make all the changes you want and build the code. Please follow the +6. Make all the changes you want and build the code. Please follow the coding guidelines described at the end of this document while making changes to the code. ```bash - yarn run build:core + bun run build ``` 7. Test your changes and make sure everything works correctly, once @@ -88,12 +88,12 @@ the way to contribute. So let's start! git push origin develop ``` -9. You can repeat this process for all the changes you want to add but if +9. You can repeat this process for all the changes you want to add but if you are done then its time to [make a Pull Request](https://help.github.com/articles/creating-a-pull-request/) 10. Once you've made the pull request, then all that's left is wait until - someone reviews your code and approves it for being merged into the - official source code. Once merged, you've officially became a + someone reviews your code and approves it for being merged into the + official source code. Once merged, you've officially became a contributor! @@ -101,10 +101,6 @@ That's it! You ready to build and contribute. See **Code Styling**. ## Code Styling -While Monogatari is mainly powered by JavaScript, its coding style is certainly -different to that of most projects using JS. The style is inspired in the one used -on the [elementary OS](https://elementary.io/docs/code/reference#reference) project. - ### Single Quoted Strings Strings should use single `'` quotes but attributes inside an HTML element should @@ -119,19 +115,7 @@ variables. ### Indentation and Whitespace -Indentation should use 4 space sized Tab characters, not spaces. - -Trailing whitespace should be removed and no trailing new line should be present. - -### Function spacing - -There should be a space before every function call or declaration parenthesis. - -```javascript -function something () { - someCall (); -} -``` +Indentation should use 2 space sized Space characters. ### Semiconlons @@ -160,8 +144,6 @@ if (something !== true) { ### Use Linters Monogatari ships with configurations for the following linters: * [ESlint](https://eslint.org/) -* [Stylelint](https://stylelint.io/) -* [HTMLHint](http://htmlhint.com/) Whenever possible, make sure to use the linters and comply with the specified rules on these files. diff --git a/LICENSE b/LICENSE index 95641ea..4f93e06 100755 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ The MIT License (MIT) -Copyright (c) Diego Islas Ocampo +Copyright (c) Diana Islas Ocampo Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal diff --git a/README.md b/README.md index 3895a37..a58e7ca 100755 --- a/README.md +++ b/README.md @@ -50,7 +50,7 @@ Ok so now you have the environment set up, you have some idea on what the files 1. Try the game first, open the `index.html` file inside the directory you just unzipped and play the sample game through. 2. Once you've played it once, open the directory (the one you unzipped) with the editor you chose to start making changes. -3. Open the `script.js` file with your editor, find the variable called `script`, as you'll see, all the dialogs you just saw are just a simple list in there. More information can be found in [the documentation](https://developers.monogatari.io/documentation/script/text). +3. Open the `script.js` file with your editor, find the variable called `script`, as you'll see, all the dialogs you just saw are just a simple list in there. More information can be found in [the documentation](https://developers.monogatari.io/documentation/building-blocks/script-and-labels#script). 4. Change one of the dialogs, save the file and reload the game (just like you reload a website). 5. Play it again and you'll see the dialog changed just like you made it. 6. Now try adding more dialog to it and you'll quickly get how things are done. @@ -92,4 +92,4 @@ const Monogatari = require ('@monogatari/core'); Contributions are always welcome! Read the [CONTRIBUTING file](https://github.com/Monogatari/Monogatari/blob/develop/CONTRIBUTING.md) to get started. ## License -Monogatari is a Free Open Source Software project released under the [MIT License](https://raw.githubusercontent.com/Monogatari/Monogatari/master/LICENSE). \ No newline at end of file +Monogatari is a Free Open Source Software project released under the [MIT License](https://raw.githubusercontent.com/Monogatari/Monogatari/master/LICENSE). diff --git a/build.ts b/build.ts new file mode 100644 index 0000000..9155368 --- /dev/null +++ b/build.ts @@ -0,0 +1,200 @@ +import { mkdir } from 'fs/promises'; +import { join } from 'path'; + +const OUT_DIR_BROWSER = './dist/engine/core'; +const OUT_DIR_DEBUG = './dist/engine/debug'; +const OUT_DIR_MODULE = './lib'; +const SRC_DIR = './src'; +const DEBUG_DIR = './debug'; + +const commonBuildOptions = { + target: 'browser' as const, + format: 'esm' as const, + sourcemap: 'linked' as const, + minify: true, +}; + +/** + * Build the ES module version + */ +async function buildModule(): Promise { + console.log('šŸ“¦ Building ES module...'); + + const result = await Bun.build({ + entrypoints: [join(SRC_DIR, 'index.js')], + outdir: OUT_DIR_MODULE, + naming: 'monogatari.module.js', + ...commonBuildOptions, + }); + + if (!result.success) { + console.error('āŒ Module build failed:'); + for (const log of result.logs) { + console.error(log); + } + process.exit(1); + } + + console.log('āœ… ES module built successfully'); +} + +/** + * Build the browser bundle version + */ +async function buildBrowser(): Promise { + console.log('🌐 Building browser bundle...'); + + const result = await Bun.build({ + entrypoints: [join(SRC_DIR, 'browser.ts')], + outdir: OUT_DIR_BROWSER, + naming: 'monogatari.js', + target: 'browser', + format: 'iife', + sourcemap: 'linked', + minify: true, + }); + + if (!result.success) { + console.error('āŒ Browser build failed:'); + for (const log of result.logs) { + console.error(log); + } + process.exit(1); + } + + console.log('āœ… Browser bundle built successfully'); +} + +/** + * Build the debug script for browser + */ +async function buildDebug(): Promise { + console.log('šŸ› Building debug script...'); + + const result = await Bun.build({ + entrypoints: [join(DEBUG_DIR, 'index.js')], + outdir: OUT_DIR_DEBUG, + naming: 'debug.js', + target: 'browser', + format: 'iife', + sourcemap: 'linked', + minify: true, + }); + + if (!result.success) { + console.error('āŒ Debug build failed:'); + for (const log of result.logs) { + console.error(log); + } + process.exit(1); + } + + console.log('āœ… Debug script built successfully'); +} + +/** + * Build CSS + */ +async function buildCSS(): Promise { + console.log('šŸŽØ Building CSS...'); + + const result = await Bun.build({ + entrypoints: [join(SRC_DIR, 'index.css')], + outdir: OUT_DIR_BROWSER, + naming: 'monogatari.css', + minify: true, + sourcemap: 'linked', + }); + + if (!result.success) { + console.error('āŒ CSS build failed:'); + for (const log of result.logs) { + console.error(log); + } + process.exit(1); + } + + console.log('āœ… CSS built successfully'); +} + +/** + * Build TypeScript declaration files + */ +async function buildTypes(): Promise { + console.log('šŸ“ Building type declarations...'); + + const proc = Bun.spawn(['tsc', '--emitDeclarationOnly', '--declarationDir', './dist/types'], { + stdout: 'inherit', + stderr: 'inherit', + }); + + const exitCode = await proc.exited; + + if (exitCode !== 0) { + console.error('āŒ Type declarations build failed'); + process.exit(1); + } + + console.log('āœ… Type declarations built successfully'); +} + +async function watchMode(): Promise { + console.log('šŸ‘€ Starting watch mode...'); + + // Initial build + await Promise.all([buildBrowser(), buildCSS()]); + + // Watch for changes + const srcWatcher = Bun.spawn(['bun', 'build', join(SRC_DIR, 'browser.ts'), + '--target', 'browser', + '--format', 'iife', + '--outdir', OUT_DIR_BROWSER, + '--watch' + ], { + stdout: 'inherit', + stderr: 'inherit', + }); + + console.log('šŸ”„ Watching for changes... (Press Ctrl+C to stop)'); + + // Keep process alive + await srcWatcher.exited; +} + +// Parse CLI arguments +const args = process.argv.slice(2); +const flags = new Set(args); + +// Ensure output directories exist +await mkdir(OUT_DIR_BROWSER, { recursive: true }); +await mkdir(OUT_DIR_DEBUG, { recursive: true }); +await mkdir(OUT_DIR_MODULE, { recursive: true }); + +// Execute based on flags +if (flags.has('--watch')) { + await watchMode(); +} else if (flags.has('--module')) { + await buildModule(); +} else if (flags.has('--browser')) { + await buildBrowser(); +} else if (flags.has('--css')) { + await buildCSS(); +} else if (flags.has('--debug')) { + await buildDebug(); +} else if (flags.has('--types')) { + await buildTypes(); +} else { + // Build all + console.log('šŸš€ Starting full build...\n'); + + await Promise.all([ + buildModule(), + buildBrowser(), + buildCSS(), + buildDebug(), + ]); + + await buildTypes(); + + console.log('\nšŸŽ‰ Build completed successfully!'); +} diff --git a/bun.lock b/bun.lock new file mode 100644 index 0000000..d1315e1 --- /dev/null +++ b/bun.lock @@ -0,0 +1,821 @@ +{ + "lockfileVersion": 1, + "configVersion": 1, + "workspaces": { + "": { + "name": "@monogatari/core", + "dependencies": { + "@aegis-framework/artemis": "^0.5.3", + "@aegis-framework/kayros.css": "^0.5.1", + "@aegis-framework/pandora": "^0.5.0", + "@fortawesome/fontawesome-free": "^7.1.0", + "@tsparticles/engine": "^3.9.1", + "@tsparticles/slim": "^3.9.1", + "animate.css": "^4.1.1", + "deeply": "^3.1.0", + "luxon": "^3.7.2", + "modern-screenshot": "^4.6.8", + "mousetrap": "^1.6.5", + "random-js": "https://github.com/Monogatari/random-js", + }, + "devDependencies": { + "@eslint/js": "^9.39.1", + "@types/luxon": "^3.7.1", + "@types/mousetrap": "^1.6.15", + "@typescript-eslint/eslint-plugin": "^8.48.1", + "@typescript-eslint/parser": "^8.48.1", + "bun": "^1.3.4", + "cypress": "^15.7.1", + "dotenv": "^16.4.5", + "eslint": "^9.39.1", + "eslint-plugin-cypress": "^5.2.0", + "globals": "^16.5.0", + "jsdoc": "^4.0.4", + "tsx": "^4.21.0", + "typescript": "^5.9.3", + "typescript-eslint": "^8.48.1", + }, + }, + }, + "packages": { + "@aegis-framework/artemis": ["@aegis-framework/artemis@0.5.3", "", {}, "sha512-LyGIVbM7pzOFoxtJ5p/ViMILvd+3Z7A+wLlP9oyAPqXonNurS1mxrRI+yCeyvgouG6qvLcZDCmrxsIkWjyzZZQ=="], + + "@aegis-framework/kayros.css": ["@aegis-framework/kayros.css@0.5.1", "", {}, "sha512-Wbn44PhzgItTQ3PHYp5plAjYIf+pLJjfeQ5hcZT0gcljPgZcWZ0CFSUOpVudQOCdRMO+Eu2BpFMSB9xB4AcgnQ=="], + + "@aegis-framework/pandora": ["@aegis-framework/pandora@0.5.0", "", { "dependencies": { "lit-html": "^3.0.0" } }, "sha512-hC2pQsQJB7hkfVY2JoGupSW8IekHfCDpr/UBIGzrORZ3SxH8L/qfIQHV2wd/SRlBXnA7iUH2h5PCLQJwz+qFvw=="], + + "@babel/helper-string-parser": ["@babel/helper-string-parser@7.27.1", "", {}, "sha512-qMlSxKbpRlAridDExk92nSobyDdpPijUq2DW6oDnUqd0iOGxmQjyqhMIihI9+zv4LPyZdRje2cavWPbCbWm3eA=="], + + "@babel/helper-validator-identifier": ["@babel/helper-validator-identifier@7.28.5", "", {}, "sha512-qSs4ifwzKJSV39ucNjsvc6WVHs6b7S03sOh2OcHF9UHfVPqWWALUsNUVzhSBiItjRZoLHx7nIarVjqKVusUZ1Q=="], + + "@babel/parser": ["@babel/parser@7.28.5", "", { "dependencies": { "@babel/types": "^7.28.5" }, "bin": "./bin/babel-parser.js" }, "sha512-KKBU1VGYR7ORr3At5HAtUQ+TV3SzRCXmA/8OdDZiLDBIZxVyzXuztPjfLd3BV1PRAQGCMWWSHYhL0F8d5uHBDQ=="], + + "@babel/types": ["@babel/types@7.28.5", "", { "dependencies": { "@babel/helper-string-parser": "^7.27.1", "@babel/helper-validator-identifier": "^7.28.5" } }, "sha512-qQ5m48eI/MFLQ5PxQj4PFaprjyCTLI37ElWMmNs0K8Lk3dVeOdNpB3ks8jc7yM5CDmVC73eMVk/trk3fgmrUpA=="], + + "@cypress/request": ["@cypress/request@3.0.9", "", { "dependencies": { "aws-sign2": "~0.7.0", "aws4": "^1.8.0", "caseless": "~0.12.0", "combined-stream": "~1.0.6", "extend": "~3.0.2", "forever-agent": "~0.6.1", "form-data": "~4.0.4", "http-signature": "~1.4.0", "is-typedarray": "~1.0.0", "isstream": "~0.1.2", "json-stringify-safe": "~5.0.1", "mime-types": "~2.1.19", "performance-now": "^2.1.0", "qs": "6.14.0", "safe-buffer": "^5.1.2", "tough-cookie": "^5.0.0", "tunnel-agent": "^0.6.0", "uuid": "^8.3.2" } }, "sha512-I3l7FdGRXluAS44/0NguwWlO83J18p0vlr2FYHrJkWdNYhgVoiYo61IXPqaOsL+vNxU1ZqMACzItGK3/KKDsdw=="], + + "@cypress/xvfb": ["@cypress/xvfb@1.2.4", "", { "dependencies": { "debug": "^3.1.0", "lodash.once": "^4.1.1" } }, "sha512-skbBzPggOVYCbnGgV+0dmBdW/s77ZkAOXIC1knS8NagwDjBrNC1LuXtQJeiN6l+m7lzmHtaoUw/ctJKdqkG57Q=="], + + "@esbuild/aix-ppc64": ["@esbuild/aix-ppc64@0.27.1", "", { "os": "aix", "cpu": "ppc64" }, "sha512-HHB50pdsBX6k47S4u5g/CaLjqS3qwaOVE5ILsq64jyzgMhLuCuZ8rGzM9yhsAjfjkbgUPMzZEPa7DAp7yz6vuA=="], + + "@esbuild/android-arm": ["@esbuild/android-arm@0.27.1", "", { "os": "android", "cpu": "arm" }, "sha512-kFqa6/UcaTbGm/NncN9kzVOODjhZW8e+FRdSeypWe6j33gzclHtwlANs26JrupOntlcWmB0u8+8HZo8s7thHvg=="], + + "@esbuild/android-arm64": ["@esbuild/android-arm64@0.27.1", "", { "os": "android", "cpu": "arm64" }, "sha512-45fuKmAJpxnQWixOGCrS+ro4Uvb4Re9+UTieUY2f8AEc+t7d4AaZ6eUJ3Hva7dtrxAAWHtlEFsXFMAgNnGU9uQ=="], + + "@esbuild/android-x64": ["@esbuild/android-x64@0.27.1", "", { "os": "android", "cpu": "x64" }, "sha512-LBEpOz0BsgMEeHgenf5aqmn/lLNTFXVfoWMUox8CtWWYK9X4jmQzWjoGoNb8lmAYml/tQ/Ysvm8q7szu7BoxRQ=="], + + "@esbuild/darwin-arm64": ["@esbuild/darwin-arm64@0.27.1", "", { "os": "darwin", "cpu": "arm64" }, "sha512-veg7fL8eMSCVKL7IW4pxb54QERtedFDfY/ASrumK/SbFsXnRazxY4YykN/THYqFnFwJ0aVjiUrVG2PwcdAEqQQ=="], + + "@esbuild/darwin-x64": ["@esbuild/darwin-x64@0.27.1", "", { "os": "darwin", "cpu": "x64" }, "sha512-+3ELd+nTzhfWb07Vol7EZ+5PTbJ/u74nC6iv4/lwIU99Ip5uuY6QoIf0Hn4m2HoV0qcnRivN3KSqc+FyCHjoVQ=="], + + "@esbuild/freebsd-arm64": ["@esbuild/freebsd-arm64@0.27.1", "", { "os": "freebsd", "cpu": "arm64" }, "sha512-/8Rfgns4XD9XOSXlzUDepG8PX+AVWHliYlUkFI3K3GB6tqbdjYqdhcb4BKRd7C0BhZSoaCxhv8kTcBrcZWP+xg=="], + + "@esbuild/freebsd-x64": ["@esbuild/freebsd-x64@0.27.1", "", { "os": "freebsd", "cpu": "x64" }, "sha512-GITpD8dK9C+r+5yRT/UKVT36h/DQLOHdwGVwwoHidlnA168oD3uxA878XloXebK4Ul3gDBBIvEdL7go9gCUFzQ=="], + + "@esbuild/linux-arm": ["@esbuild/linux-arm@0.27.1", "", { "os": "linux", "cpu": "arm" }, "sha512-ieMID0JRZY/ZeCrsFQ3Y3NlHNCqIhTprJfDgSB3/lv5jJZ8FX3hqPyXWhe+gvS5ARMBJ242PM+VNz/ctNj//eA=="], + + "@esbuild/linux-arm64": ["@esbuild/linux-arm64@0.27.1", "", { "os": "linux", "cpu": "arm64" }, "sha512-W9//kCrh/6in9rWIBdKaMtuTTzNj6jSeG/haWBADqLLa9P8O5YSRDzgD5y9QBok4AYlzS6ARHifAb75V6G670Q=="], + + "@esbuild/linux-ia32": ["@esbuild/linux-ia32@0.27.1", "", { "os": "linux", "cpu": "ia32" }, "sha512-VIUV4z8GD8rtSVMfAj1aXFahsi/+tcoXXNYmXgzISL+KB381vbSTNdeZHHHIYqFyXcoEhu9n5cT+05tRv13rlw=="], + + "@esbuild/linux-loong64": ["@esbuild/linux-loong64@0.27.1", "", { "os": "linux", "cpu": "none" }, "sha512-l4rfiiJRN7sTNI//ff65zJ9z8U+k6zcCg0LALU5iEWzY+a1mVZ8iWC1k5EsNKThZ7XCQ6YWtsZ8EWYm7r1UEsg=="], + + "@esbuild/linux-mips64el": ["@esbuild/linux-mips64el@0.27.1", "", { "os": "linux", "cpu": "none" }, "sha512-U0bEuAOLvO/DWFdygTHWY8C067FXz+UbzKgxYhXC0fDieFa0kDIra1FAhsAARRJbvEyso8aAqvPdNxzWuStBnA=="], + + "@esbuild/linux-ppc64": ["@esbuild/linux-ppc64@0.27.1", "", { "os": "linux", "cpu": "ppc64" }, "sha512-NzdQ/Xwu6vPSf/GkdmRNsOfIeSGnh7muundsWItmBsVpMoNPVpM61qNzAVY3pZ1glzzAxLR40UyYM23eaDDbYQ=="], + + "@esbuild/linux-riscv64": ["@esbuild/linux-riscv64@0.27.1", "", { "os": "linux", "cpu": "none" }, "sha512-7zlw8p3IApcsN7mFw0O1Z1PyEk6PlKMu18roImfl3iQHTnr/yAfYv6s4hXPidbDoI2Q0pW+5xeoM4eTCC0UdrQ=="], + + "@esbuild/linux-s390x": ["@esbuild/linux-s390x@0.27.1", "", { "os": "linux", "cpu": "s390x" }, "sha512-cGj5wli+G+nkVQdZo3+7FDKC25Uh4ZVwOAK6A06Hsvgr8WqBBuOy/1s+PUEd/6Je+vjfm6stX0kmib5b/O2Ykw=="], + + "@esbuild/linux-x64": ["@esbuild/linux-x64@0.27.1", "", { "os": "linux", "cpu": "x64" }, "sha512-z3H/HYI9MM0HTv3hQZ81f+AKb+yEoCRlUby1F80vbQ5XdzEMyY/9iNlAmhqiBKw4MJXwfgsh7ERGEOhrM1niMA=="], + + "@esbuild/netbsd-arm64": ["@esbuild/netbsd-arm64@0.27.1", "", { "os": "none", "cpu": "arm64" }, "sha512-wzC24DxAvk8Em01YmVXyjl96Mr+ecTPyOuADAvjGg+fyBpGmxmcr2E5ttf7Im8D0sXZihpxzO1isus8MdjMCXQ=="], + + "@esbuild/netbsd-x64": ["@esbuild/netbsd-x64@0.27.1", "", { "os": "none", "cpu": "x64" }, "sha512-1YQ8ybGi2yIXswu6eNzJsrYIGFpnlzEWRl6iR5gMgmsrR0FcNoV1m9k9sc3PuP5rUBLshOZylc9nqSgymI+TYg=="], + + "@esbuild/openbsd-arm64": ["@esbuild/openbsd-arm64@0.27.1", "", { "os": "openbsd", "cpu": "arm64" }, "sha512-5Z+DzLCrq5wmU7RDaMDe2DVXMRm2tTDvX2KU14JJVBN2CT/qov7XVix85QoJqHltpvAOZUAc3ndU56HSMWrv8g=="], + + "@esbuild/openbsd-x64": ["@esbuild/openbsd-x64@0.27.1", "", { "os": "openbsd", "cpu": "x64" }, "sha512-Q73ENzIdPF5jap4wqLtsfh8YbYSZ8Q0wnxplOlZUOyZy7B4ZKW8DXGWgTCZmF8VWD7Tciwv5F4NsRf6vYlZtqg=="], + + "@esbuild/openharmony-arm64": ["@esbuild/openharmony-arm64@0.27.1", "", { "os": "none", "cpu": "arm64" }, "sha512-ajbHrGM/XiK+sXM0JzEbJAen+0E+JMQZ2l4RR4VFwvV9JEERx+oxtgkpoKv1SevhjavK2z2ReHk32pjzktWbGg=="], + + "@esbuild/sunos-x64": ["@esbuild/sunos-x64@0.27.1", "", { "os": "sunos", "cpu": "x64" }, "sha512-IPUW+y4VIjuDVn+OMzHc5FV4GubIwPnsz6ubkvN8cuhEqH81NovB53IUlrlBkPMEPxvNnf79MGBoz8rZ2iW8HA=="], + + "@esbuild/win32-arm64": ["@esbuild/win32-arm64@0.27.1", "", { "os": "win32", "cpu": "arm64" }, "sha512-RIVRWiljWA6CdVu8zkWcRmGP7iRRIIwvhDKem8UMBjPql2TXM5PkDVvvrzMtj1V+WFPB4K7zkIGM7VzRtFkjdg=="], + + "@esbuild/win32-ia32": ["@esbuild/win32-ia32@0.27.1", "", { "os": "win32", "cpu": "ia32" }, "sha512-2BR5M8CPbptC1AK5JbJT1fWrHLvejwZidKx3UMSF0ecHMa+smhi16drIrCEggkgviBwLYd5nwrFLSl5Kho96RQ=="], + + "@esbuild/win32-x64": ["@esbuild/win32-x64@0.27.1", "", { "os": "win32", "cpu": "x64" }, "sha512-d5X6RMYv6taIymSk8JBP+nxv8DQAMY6A51GPgusqLdK9wBz5wWIXy1KjTck6HnjE9hqJzJRdk+1p/t5soSbCtw=="], + + "@eslint-community/eslint-utils": ["@eslint-community/eslint-utils@4.9.0", "", { "dependencies": { "eslint-visitor-keys": "^3.4.3" }, "peerDependencies": { "eslint": "^6.0.0 || ^7.0.0 || >=8.0.0" } }, "sha512-ayVFHdtZ+hsq1t2Dy24wCmGXGe4q9Gu3smhLYALJrr473ZH27MsnSL+LKUlimp4BWJqMDMLmPpx/Q9R3OAlL4g=="], + + "@eslint-community/regexpp": ["@eslint-community/regexpp@4.12.2", "", {}, "sha512-EriSTlt5OC9/7SXkRSCAhfSxxoSUgBm33OH+IkwbdpgoqsSsUg7y3uh+IICI/Qg4BBWr3U2i39RpmycbxMq4ew=="], + + "@eslint/config-array": ["@eslint/config-array@0.21.1", "", { "dependencies": { "@eslint/object-schema": "^2.1.7", "debug": "^4.3.1", "minimatch": "^3.1.2" } }, "sha512-aw1gNayWpdI/jSYVgzN5pL0cfzU02GT3NBpeT/DXbx1/1x7ZKxFPd9bwrzygx/qiwIQiJ1sw/zD8qY/kRvlGHA=="], + + "@eslint/config-helpers": ["@eslint/config-helpers@0.4.2", "", { "dependencies": { "@eslint/core": "^0.17.0" } }, "sha512-gBrxN88gOIf3R7ja5K9slwNayVcZgK6SOUORm2uBzTeIEfeVaIhOpCtTox3P6R7o2jLFwLFTLnC7kU/RGcYEgw=="], + + "@eslint/core": ["@eslint/core@0.17.0", "", { "dependencies": { "@types/json-schema": "^7.0.15" } }, "sha512-yL/sLrpmtDaFEiUj1osRP4TI2MDz1AddJL+jZ7KSqvBuliN4xqYY54IfdN8qD8Toa6g1iloph1fxQNkjOxrrpQ=="], + + "@eslint/eslintrc": ["@eslint/eslintrc@3.3.3", "", { "dependencies": { "ajv": "^6.12.4", "debug": "^4.3.2", "espree": "^10.0.1", "globals": "^14.0.0", "ignore": "^5.2.0", "import-fresh": "^3.2.1", "js-yaml": "^4.1.1", "minimatch": "^3.1.2", "strip-json-comments": "^3.1.1" } }, "sha512-Kr+LPIUVKz2qkx1HAMH8q1q6azbqBAsXJUxBl/ODDuVPX45Z9DfwB8tPjTi6nNZ8BuM3nbJxC5zCAg5elnBUTQ=="], + + "@eslint/js": ["@eslint/js@9.39.1", "", {}, "sha512-S26Stp4zCy88tH94QbBv3XCuzRQiZ9yXofEILmglYTh/Ug/a9/umqvgFtYBAo3Lp0nsI/5/qH1CCrbdK3AP1Tw=="], + + "@eslint/object-schema": ["@eslint/object-schema@2.1.7", "", {}, "sha512-VtAOaymWVfZcmZbp6E2mympDIHvyjXs/12LqWYjVw6qjrfF+VK+fyG33kChz3nnK+SU5/NeHOqrTEHS8sXO3OA=="], + + "@eslint/plugin-kit": ["@eslint/plugin-kit@0.4.1", "", { "dependencies": { "@eslint/core": "^0.17.0", "levn": "^0.4.1" } }, "sha512-43/qtrDUokr7LJqoF2c3+RInu/t4zfrpYdoSDfYyhg52rwLV6TnOvdG4fXm7IkSB3wErkcmJS9iEhjVtOSEjjA=="], + + "@fortawesome/fontawesome-free": ["@fortawesome/fontawesome-free@7.1.0", "", {}, "sha512-+WxNld5ZCJHvPQCr/GnzCTVREyStrAJjisUPtUxG5ngDA8TMlPnKp6dddlTpai4+1GNmltAeuk1hJEkBohwZYA=="], + + "@humanfs/core": ["@humanfs/core@0.19.1", "", {}, "sha512-5DyQ4+1JEUzejeK1JGICcideyfUbGixgS9jNgex5nqkW+cY7WZhxBigmieN5Qnw9ZosSNVC9KQKyb+GUaGyKUA=="], + + "@humanfs/node": ["@humanfs/node@0.16.7", "", { "dependencies": { "@humanfs/core": "^0.19.1", "@humanwhocodes/retry": "^0.4.0" } }, "sha512-/zUx+yOsIrG4Y43Eh2peDeKCxlRt/gET6aHfaKpuq267qXdYDFViVHfMaLyygZOnl0kGWxFIgsBy8QFuTLUXEQ=="], + + "@humanwhocodes/module-importer": ["@humanwhocodes/module-importer@1.0.1", "", {}, "sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA=="], + + "@humanwhocodes/retry": ["@humanwhocodes/retry@0.4.3", "", {}, "sha512-bV0Tgo9K4hfPCek+aMAn81RppFKv2ySDQeMoSZuvTASywNTnVJCArCZE2FWqpvIatKu7VMRLWlR1EazvVhDyhQ=="], + + "@jsdoc/salty": ["@jsdoc/salty@0.2.9", "", { "dependencies": { "lodash": "^4.17.21" } }, "sha512-yYxMVH7Dqw6nO0d5NIV8OQWnitU8k6vXH8NtgqAfIa/IUqRMxRv/NUJJ08VEKbAakwxlgBl5PJdrU0dMPStsnw=="], + + "@oven/bun-darwin-aarch64": ["@oven/bun-darwin-aarch64@1.3.4", "", { "os": "darwin", "cpu": "arm64" }, "sha512-2Ie4jDGvNGuPSD+pyyBKL8dJmX+bZfDNYEalwgROImVtwB1XYAatJK20dMaRlPA7jOhjvS9Io+4IZAJu7Js0AA=="], + + "@oven/bun-darwin-x64": ["@oven/bun-darwin-x64@1.3.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-4/BJojT8hk5g6Gecjn5yI7y96/+9Mtzsvdp9+2dcy9sTMdlV7jBvDzswqyJPZyQqw0F3HV3Vu9XuMubZwKd9lA=="], + + "@oven/bun-darwin-x64-baseline": ["@oven/bun-darwin-x64-baseline@1.3.4", "", { "os": "darwin", "cpu": "x64" }, "sha512-ZYxzIOCDqylTMsnWYERjKMMuK2b4an4qbloBmUZTwLHmVzos00yrhtpitZhJBgH6yB/l4Q5eoJ2W98UKtFFeiQ=="], + + "@oven/bun-linux-aarch64": ["@oven/bun-linux-aarch64@1.3.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-8DUIlanftMdFxLGq2FxwKwfrp8O4ZofF/8Oc6lxCyEFmg2hixbHhL04+fPfJIi5D4hZloynxZdwTeDbGv/Kc4A=="], + + "@oven/bun-linux-aarch64-musl": ["@oven/bun-linux-aarch64-musl@1.3.4", "", { "os": "linux", "cpu": "arm64" }, "sha512-6UtmM4wXgRKz+gnLZEfddfsuBSVQpJr09K12e5pbdnLzeWgXYlBT5FG8S7SVn1t6cbgBMnigEsFjWwfTuMNoCw=="], + + "@oven/bun-linux-x64": ["@oven/bun-linux-x64@1.3.4", "", { "os": "linux", "cpu": "x64" }, "sha512-03iSDMqdrmIFAsvsRptq+A7EGNjkg20dNzPnqxAlXHk5rc1PeIRWIP0eIn0i3nI6mmdj33mimf9AGr0+d0lKMg=="], + + "@oven/bun-linux-x64-baseline": ["@oven/bun-linux-x64-baseline@1.3.4", "", { "os": "linux", "cpu": "x64" }, "sha512-ZMGPbFPqmG/VYJv61D+Y1V7T23jPK57vYl7yYLakmkTRjG6vcJ0Akhb2qR1iW94rHvfEBjeuVDAZBp8Qp9oyWA=="], + + "@oven/bun-linux-x64-musl": ["@oven/bun-linux-x64-musl@1.3.4", "", { "os": "linux", "cpu": "x64" }, "sha512-xUXPuJHndGhk4K3Cx1FgTyTgDZOn+ki3eWvdXYqKdfi0EaNA9KpUq+/vUtpJbZRjzpHs9L+OJcdDILq5H0LX4g=="], + + "@oven/bun-linux-x64-musl-baseline": ["@oven/bun-linux-x64-musl-baseline@1.3.4", "", { "os": "linux", "cpu": "x64" }, "sha512-qsGSSlNsxiX8lAayK2uYCfMLtqu776F0nn7qoyzg9Ti7mElM3woNh7RtGClTwQ6qsp5/UvgqT9g4pLaDHmqJFg=="], + + "@oven/bun-windows-x64": ["@oven/bun-windows-x64@1.3.4", "", { "os": "win32", "cpu": "x64" }, "sha512-nswsuN6+HZPim6x4tFpDFpMa/qpTKfywbGvCkzxwrbJO9MtpuW/54NA1nFbHhpV14OLU0xuxyBj2PK4FHq4MlA=="], + + "@oven/bun-windows-x64-baseline": ["@oven/bun-windows-x64-baseline@1.3.4", "", { "os": "win32", "cpu": "x64" }, "sha512-ZQiSDFfSUdOrPTiL2GvkxlC/kMED4fsJwdZnwJK6S9ylXnk9xY/9ZXfe1615SFLQl2LsVRzJAtjQLeM0BifIKQ=="], + + "@tsparticles/basic": ["@tsparticles/basic@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1", "@tsparticles/move-base": "3.9.1", "@tsparticles/plugin-hex-color": "3.9.1", "@tsparticles/plugin-hsl-color": "3.9.1", "@tsparticles/plugin-rgb-color": "3.9.1", "@tsparticles/shape-circle": "3.9.1", "@tsparticles/updater-color": "3.9.1", "@tsparticles/updater-opacity": "3.9.1", "@tsparticles/updater-out-modes": "3.9.1", "@tsparticles/updater-size": "3.9.1" } }, "sha512-ijr2dHMx0IQHqhKW3qA8tfwrR2XYbbWYdaJMQuBo2CkwBVIhZ76U+H20Y492j/NXpd1FUnt2aC0l4CEVGVGdeQ=="], + + "@tsparticles/engine": ["@tsparticles/engine@3.9.1", "", {}, "sha512-DpdgAhWMZ3Eh2gyxik8FXS6BKZ8vyea+Eu5BC4epsahqTGY9V3JGGJcXC6lRJx6cPMAx1A0FaQAojPF3v6rkmQ=="], + + "@tsparticles/interaction-external-attract": ["@tsparticles/interaction-external-attract@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-5AJGmhzM9o4AVFV24WH5vSqMBzOXEOzIdGLIr+QJf4fRh9ZK62snsusv/ozKgs2KteRYQx+L7c5V3TqcDy2upg=="], + + "@tsparticles/interaction-external-bounce": ["@tsparticles/interaction-external-bounce@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-bv05+h70UIHOTWeTsTI1AeAmX6R3s8nnY74Ea6p6AbQjERzPYIa0XY19nq/hA7+Nrg+EissP5zgoYYeSphr85A=="], + + "@tsparticles/interaction-external-bubble": ["@tsparticles/interaction-external-bubble@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-tbd8ox/1GPl+zr+KyHQVV1bW88GE7OM6i4zql801YIlCDrl9wgTDdDFGIy9X7/cwTvTrCePhrfvdkUamXIribQ=="], + + "@tsparticles/interaction-external-connect": ["@tsparticles/interaction-external-connect@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-sq8YfUNsIORjXHzzW7/AJQtfi/qDqLnYG2qOSE1WOsog39MD30RzmiOloejOkfNeUdcGUcfsDgpUuL3UhzFUOA=="], + + "@tsparticles/interaction-external-grab": ["@tsparticles/interaction-external-grab@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-QwXza+sMMWDaMiFxd8y2tJwUK6c+nNw554+/9+tEZeTTk2fCbB0IJ7p/TH6ZGWDL0vo2muK54Njv2fEey191ow=="], + + "@tsparticles/interaction-external-pause": ["@tsparticles/interaction-external-pause@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-Gzv4/FeNir0U/tVM9zQCqV1k+IAgaFjDU3T30M1AeAsNGh/rCITV2wnT7TOGFkbcla27m4Yxa+Fuab8+8pzm+g=="], + + "@tsparticles/interaction-external-push": ["@tsparticles/interaction-external-push@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-GvnWF9Qy4YkZdx+WJL2iy9IcgLvzOIu3K7aLYJFsQPaxT8d9TF8WlpoMlWKnJID6H5q4JqQuMRKRyWH8aAKyQw=="], + + "@tsparticles/interaction-external-remove": ["@tsparticles/interaction-external-remove@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-yPThm4UDWejDOWW5Qc8KnnS2EfSo5VFcJUQDWc1+Wcj17xe7vdSoiwwOORM0PmNBzdDpSKQrte/gUnoqaUMwOA=="], + + "@tsparticles/interaction-external-repulse": ["@tsparticles/interaction-external-repulse@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-/LBppXkrMdvLHlEKWC7IykFhzrz+9nebT2fwSSFXK4plEBxDlIwnkDxd3FbVOAbnBvx4+L8+fbrEx+RvC8diAw=="], + + "@tsparticles/interaction-external-slow": ["@tsparticles/interaction-external-slow@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-1ZYIR/udBwA9MdSCfgADsbDXKSFS0FMWuPWz7bm79g3sUxcYkihn+/hDhc6GXvNNR46V1ocJjrj0u6pAynS1KQ=="], + + "@tsparticles/interaction-particles-attract": ["@tsparticles/interaction-particles-attract@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-CYYYowJuGwRLUixQcSU/48PTKM8fCUYThe0hXwQ+yRMLAn053VHzL7NNZzKqEIeEyt5oJoy9KcvubjKWbzMBLQ=="], + + "@tsparticles/interaction-particles-collisions": ["@tsparticles/interaction-particles-collisions@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-ggGyjW/3v1yxvYW1IF1EMT15M6w31y5zfNNUPkqd/IXRNPYvm0Z0ayhp+FKmz70M5p0UxxPIQHTvAv9Jqnuj8w=="], + + "@tsparticles/interaction-particles-links": ["@tsparticles/interaction-particles-links@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-MsLbMjy1vY5M5/hu/oa5OSRZAUz49H3+9EBMTIOThiX+a+vpl3sxc9AqNd9gMsPbM4WJlub8T6VBZdyvzez1Vg=="], + + "@tsparticles/move-base": ["@tsparticles/move-base@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-X4huBS27d8srpxwOxliWPUt+NtCwY+8q/cx1DvQxyqmTA8VFCGpcHNwtqiN+9JicgzOvSuaORVqUgwlsc7h4pQ=="], + + "@tsparticles/move-parallax": ["@tsparticles/move-parallax@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-whlOR0bVeyh6J/hvxf/QM3DqvNnITMiAQ0kro6saqSDItAVqg4pYxBfEsSOKq7EhjxNvfhhqR+pFMhp06zoCVA=="], + + "@tsparticles/plugin-easing-quad": ["@tsparticles/plugin-easing-quad@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-C2UJOca5MTDXKUTBXj30Kiqr5UyID+xrY/LxicVWWZPczQW2bBxbIbfq9ULvzGDwBTxE2rdvIB8YFKmDYO45qw=="], + + "@tsparticles/plugin-hex-color": ["@tsparticles/plugin-hex-color@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-vZgZ12AjUicJvk7AX4K2eAmKEQX/D1VEjEPFhyjbgI7A65eX72M465vVKIgNA6QArLZ1DLs7Z787LOE6GOBWsg=="], + + "@tsparticles/plugin-hsl-color": ["@tsparticles/plugin-hsl-color@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-jJd1iGgRwX6eeNjc1zUXiJivaqC5UE+SC2A3/NtHwwoQrkfxGWmRHOsVyLnOBRcCPgBp/FpdDe6DIDjCMO715w=="], + + "@tsparticles/plugin-rgb-color": ["@tsparticles/plugin-rgb-color@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-SBxk7f1KBfXeTnnklbE2Hx4jBgh6I6HOtxb+Os1gTp0oaghZOkWcCD2dP4QbUu7fVNCMOcApPoMNC8RTFcy9wQ=="], + + "@tsparticles/shape-circle": ["@tsparticles/shape-circle@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-DqZFLjbuhVn99WJ+A9ajz9YON72RtCcvubzq6qfjFmtwAK7frvQeb6iDTp6Ze9FUipluxVZWVRG4vWTxi2B+/g=="], + + "@tsparticles/shape-emoji": ["@tsparticles/shape-emoji@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-ifvY63usuT+hipgVHb8gelBHSeF6ryPnMxAAEC1RGHhhXfpSRWMtE6ybr+pSsYU52M3G9+TF84v91pSwNrb9ZQ=="], + + "@tsparticles/shape-image": ["@tsparticles/shape-image@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-fCA5eme8VF3oX8yNVUA0l2SLDKuiZObkijb0z3Ky0qj1HUEVlAuEMhhNDNB9E2iELTrWEix9z7BFMePp2CC7AA=="], + + "@tsparticles/shape-line": ["@tsparticles/shape-line@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-wT8NSp0N9HURyV05f371cHKcNTNqr0/cwUu6WhBzbshkYGy1KZUP9CpRIh5FCrBpTev34mEQfOXDycgfG0KiLQ=="], + + "@tsparticles/shape-polygon": ["@tsparticles/shape-polygon@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-dA77PgZdoLwxnliH6XQM/zF0r4jhT01pw5y7XTeTqws++hg4rTLV9255k6R6eUqKq0FPSW1/WBsBIl7q/MmrqQ=="], + + "@tsparticles/shape-square": ["@tsparticles/shape-square@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-DKGkDnRyZrAm7T2ipqNezJahSWs6xd9O5LQLe5vjrYm1qGwrFxJiQaAdlb00UNrexz1/SA7bEoIg4XKaFa7qhQ=="], + + "@tsparticles/shape-star": ["@tsparticles/shape-star@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-kdMJpi8cdeb6vGrZVSxTG0JIjCwIenggqk0EYeKAwtOGZFBgL7eHhF2F6uu1oq8cJAbXPujEoabnLsz6mW8XaA=="], + + "@tsparticles/slim": ["@tsparticles/slim@3.9.1", "", { "dependencies": { "@tsparticles/basic": "3.9.1", "@tsparticles/engine": "3.9.1", "@tsparticles/interaction-external-attract": "3.9.1", "@tsparticles/interaction-external-bounce": "3.9.1", "@tsparticles/interaction-external-bubble": "3.9.1", "@tsparticles/interaction-external-connect": "3.9.1", "@tsparticles/interaction-external-grab": "3.9.1", "@tsparticles/interaction-external-pause": "3.9.1", "@tsparticles/interaction-external-push": "3.9.1", "@tsparticles/interaction-external-remove": "3.9.1", "@tsparticles/interaction-external-repulse": "3.9.1", "@tsparticles/interaction-external-slow": "3.9.1", "@tsparticles/interaction-particles-attract": "3.9.1", "@tsparticles/interaction-particles-collisions": "3.9.1", "@tsparticles/interaction-particles-links": "3.9.1", "@tsparticles/move-parallax": "3.9.1", "@tsparticles/plugin-easing-quad": "3.9.1", "@tsparticles/shape-emoji": "3.9.1", "@tsparticles/shape-image": "3.9.1", "@tsparticles/shape-line": "3.9.1", "@tsparticles/shape-polygon": "3.9.1", "@tsparticles/shape-square": "3.9.1", "@tsparticles/shape-star": "3.9.1", "@tsparticles/updater-life": "3.9.1", "@tsparticles/updater-rotate": "3.9.1", "@tsparticles/updater-stroke-color": "3.9.1" } }, "sha512-CL5cDmADU7sDjRli0So+hY61VMbdroqbArmR9Av+c1Fisa5ytr6QD7Jv62iwU2S6rvgicEe9OyRmSy5GIefwZw=="], + + "@tsparticles/updater-color": ["@tsparticles/updater-color@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-XGWdscrgEMA8L5E7exsE0f8/2zHKIqnTrZymcyuFBw2DCB6BIV+5z6qaNStpxrhq3DbIxxhqqcybqeOo7+Alpg=="], + + "@tsparticles/updater-life": ["@tsparticles/updater-life@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-Oi8aF2RIwMMsjssUkCB6t3PRpENHjdZf6cX92WNfAuqXtQphr3OMAkYFJFWkvyPFK22AVy3p/cFt6KE5zXxwAA=="], + + "@tsparticles/updater-opacity": ["@tsparticles/updater-opacity@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-w778LQuRZJ+IoWzeRdrGykPYSSaTeWfBvLZ2XwYEkh/Ss961InOxZKIpcS6i5Kp/Zfw0fS1ZAuqeHwuj///Osw=="], + + "@tsparticles/updater-out-modes": ["@tsparticles/updater-out-modes@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-cKQEkAwbru+hhKF+GTsfbOvuBbx2DSB25CxOdhtW2wRvDBoCnngNdLw91rs+0Cex4tgEeibkebrIKFDDE6kELg=="], + + "@tsparticles/updater-rotate": ["@tsparticles/updater-rotate@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-9BfKaGfp28JN82MF2qs6Ae/lJr9EColMfMTHqSKljblwbpVDHte4umuwKl3VjbRt87WD9MGtla66NTUYl+WxuQ=="], + + "@tsparticles/updater-size": ["@tsparticles/updater-size@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-3NSVs0O2ApNKZXfd+y/zNhTXSFeG1Pw4peI8e6z/q5+XLbmue9oiEwoPy/tQLaark3oNj3JU7Q903ZijPyXSzw=="], + + "@tsparticles/updater-stroke-color": ["@tsparticles/updater-stroke-color@3.9.1", "", { "dependencies": { "@tsparticles/engine": "3.9.1" } }, "sha512-3x14+C2is9pZYTg9T2TiA/aM1YMq4wLdYaZDcHm3qO30DZu5oeQq0rm/6w+QOGKYY1Z3Htg9rlSUZkhTHn7eDA=="], + + "@types/estree": ["@types/estree@1.0.8", "", {}, "sha512-dWHzHa2WqEXI/O1E9OjrocMTKJl2mSrEolh1Iomrv6U+JuNwaHXsXx9bLu5gG7BUWFIN0skIQJQ/L1rIex4X6w=="], + + "@types/json-schema": ["@types/json-schema@7.0.15", "", {}, "sha512-5+fP8P8MFNC+AyZCDxrB2pkZFPGzqQWUzpSeuuVLvm8VMcorNYavBqoFcxK8bQz4Qsbn4oUEEem4wDLfcysGHA=="], + + "@types/linkify-it": ["@types/linkify-it@5.0.0", "", {}, "sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q=="], + + "@types/luxon": ["@types/luxon@3.7.1", "", {}, "sha512-H3iskjFIAn5SlJU7OuxUmTEpebK6TKB8rxZShDslBMZJ5u9S//KM1sbdAisiSrqwLQncVjnpi2OK2J51h+4lsg=="], + + "@types/markdown-it": ["@types/markdown-it@14.1.2", "", { "dependencies": { "@types/linkify-it": "^5", "@types/mdurl": "^2" } }, "sha512-promo4eFwuiW+TfGxhi+0x3czqTYJkG8qB17ZUJiVF10Xm7NLVRSLUsfRTU/6h1e24VvRnXCx+hG7li58lkzog=="], + + "@types/mdurl": ["@types/mdurl@2.0.0", "", {}, "sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg=="], + + "@types/mousetrap": ["@types/mousetrap@1.6.15", "", {}, "sha512-qL0hyIMNPow317QWW/63RvL1x5MVMV+Ru3NaY9f/CuEpCqrmb7WeuK2071ZY5hczOnm38qExWM2i2WtkXLSqFw=="], + + "@types/node": ["@types/node@24.10.1", "", { "dependencies": { "undici-types": "~7.16.0" } }, "sha512-GNWcUTRBgIRJD5zj+Tq0fKOJ5XZajIiBroOF0yvj2bSU1WvNdYS/dn9UxwsujGW4JX06dnHyjV2y9rRaybH0iQ=="], + + "@types/sinonjs__fake-timers": ["@types/sinonjs__fake-timers@8.1.1", "", {}, "sha512-0kSuKjAS0TrGLJ0M/+8MaFkGsQhZpB6pxOmvS3K8FYI72K//YmdfoW9X2qPsAKh1mkwxGD5zib9s1FIFed6E8g=="], + + "@types/sizzle": ["@types/sizzle@2.3.10", "", {}, "sha512-TC0dmN0K8YcWEAEfiPi5gJP14eJe30TTGjkvek3iM/1NdHHsdCA/Td6GvNndMOo/iSnIsZ4HuuhrYPDAmbxzww=="], + + "@types/tmp": ["@types/tmp@0.2.6", "", {}, "sha512-chhaNf2oKHlRkDGt+tiKE2Z5aJ6qalm7Z9rlLdBwmOiAAf09YQvvoLXjWK4HWPF1xU/fqvMgfNfpVoBscA/tKA=="], + + "@types/trusted-types": ["@types/trusted-types@2.0.7", "", {}, "sha512-ScaPdn1dQczgbl0QFTeTOmVHFULt394XJgOQNoyVhZ6r2vLnMLJfBPd53SB52T/3G36VI1/g2MZaX0cwDuXsfw=="], + + "@types/yauzl": ["@types/yauzl@2.10.3", "", { "dependencies": { "@types/node": "*" } }, "sha512-oJoftv0LSuaDZE3Le4DbKX+KS9G36NzOeSap90UIK0yMA/NhKJhqlSGtNDORNRaIbQfzjXDrQa0ytJ6mNRGz/Q=="], + + "@typescript-eslint/eslint-plugin": ["@typescript-eslint/eslint-plugin@8.48.1", "", { "dependencies": { "@eslint-community/regexpp": "^4.10.0", "@typescript-eslint/scope-manager": "8.48.1", "@typescript-eslint/type-utils": "8.48.1", "@typescript-eslint/utils": "8.48.1", "@typescript-eslint/visitor-keys": "8.48.1", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "@typescript-eslint/parser": "^8.48.1", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-X63hI1bxl5ohelzr0LY5coufyl0LJNthld+abwxpCoo6Gq+hSqhKwci7MUWkXo67mzgUK6YFByhmaHmUcuBJmA=="], + + "@typescript-eslint/parser": ["@typescript-eslint/parser@8.48.1", "", { "dependencies": { "@typescript-eslint/scope-manager": "8.48.1", "@typescript-eslint/types": "8.48.1", "@typescript-eslint/typescript-estree": "8.48.1", "@typescript-eslint/visitor-keys": "8.48.1", "debug": "^4.3.4" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-PC0PDZfJg8sP7cmKe6L3QIL8GZwU5aRvUFedqSIpw3B+QjRSUZeeITC2M5XKeMXEzL6wccN196iy3JLwKNvDVA=="], + + "@typescript-eslint/project-service": ["@typescript-eslint/project-service@8.48.1", "", { "dependencies": { "@typescript-eslint/tsconfig-utils": "^8.48.1", "@typescript-eslint/types": "^8.48.1", "debug": "^4.3.4" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-HQWSicah4s9z2/HifRPQ6b6R7G+SBx64JlFQpgSSHWPKdvCZX57XCbszg/bapbRsOEv42q5tayTYcEFpACcX1w=="], + + "@typescript-eslint/scope-manager": ["@typescript-eslint/scope-manager@8.48.1", "", { "dependencies": { "@typescript-eslint/types": "8.48.1", "@typescript-eslint/visitor-keys": "8.48.1" } }, "sha512-rj4vWQsytQbLxC5Bf4XwZ0/CKd362DkWMUkviT7DCS057SK64D5lH74sSGzhI6PDD2HCEq02xAP9cX68dYyg1w=="], + + "@typescript-eslint/tsconfig-utils": ["@typescript-eslint/tsconfig-utils@8.48.1", "", { "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-k0Jhs4CpEffIBm6wPaCXBAD7jxBtrHjrSgtfCjUvPp9AZ78lXKdTR8fxyZO5y4vWNlOvYXRtngSZNSn+H53Jkw=="], + + "@typescript-eslint/type-utils": ["@typescript-eslint/type-utils@8.48.1", "", { "dependencies": { "@typescript-eslint/types": "8.48.1", "@typescript-eslint/typescript-estree": "8.48.1", "@typescript-eslint/utils": "8.48.1", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-1jEop81a3LrJQLTf/1VfPQdhIY4PlGDBc/i67EVWObrtvcziysbLN3oReexHOM6N3jyXgCrkBsZpqwH0hiDOQg=="], + + "@typescript-eslint/types": ["@typescript-eslint/types@8.48.1", "", {}, "sha512-+fZ3LZNeiELGmimrujsDCT4CRIbq5oXdHe7chLiW8qzqyPMnn1puNstCrMNVAqwcl2FdIxkuJ4tOs/RFDBVc/Q=="], + + "@typescript-eslint/typescript-estree": ["@typescript-eslint/typescript-estree@8.48.1", "", { "dependencies": { "@typescript-eslint/project-service": "8.48.1", "@typescript-eslint/tsconfig-utils": "8.48.1", "@typescript-eslint/types": "8.48.1", "@typescript-eslint/visitor-keys": "8.48.1", "debug": "^4.3.4", "minimatch": "^9.0.4", "semver": "^7.6.0", "tinyglobby": "^0.2.15", "ts-api-utils": "^2.1.0" }, "peerDependencies": { "typescript": ">=4.8.4 <6.0.0" } }, "sha512-/9wQ4PqaefTK6POVTjJaYS0bynCgzh6ClJHGSBj06XEHjkfylzB+A3qvyaXnErEZSaxhIo4YdyBgq6j4RysxDg=="], + + "@typescript-eslint/utils": ["@typescript-eslint/utils@8.48.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", "@typescript-eslint/scope-manager": "8.48.1", "@typescript-eslint/types": "8.48.1", "@typescript-eslint/typescript-estree": "8.48.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-fAnhLrDjiVfey5wwFRwrweyRlCmdz5ZxXz2G/4cLn0YDLjTapmN4gcCsTBR1N2rWnZSDeWpYtgLDsJt+FpmcwA=="], + + "@typescript-eslint/visitor-keys": ["@typescript-eslint/visitor-keys@8.48.1", "", { "dependencies": { "@typescript-eslint/types": "8.48.1", "eslint-visitor-keys": "^4.2.1" } }, "sha512-BmxxndzEWhE4TIEEMBs8lP3MBWN3jFPs/p6gPm/wkv02o41hI6cq9AuSmGAaTTHPtA1FTi2jBre4A9rm5ZmX+Q=="], + + "acorn": ["acorn@8.15.0", "", { "bin": { "acorn": "bin/acorn" } }, "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg=="], + + "acorn-jsx": ["acorn-jsx@5.3.2", "", { "peerDependencies": { "acorn": "^6.0.0 || ^7.0.0 || ^8.0.0" } }, "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ=="], + + "aggregate-error": ["aggregate-error@3.1.0", "", { "dependencies": { "clean-stack": "^2.0.0", "indent-string": "^4.0.0" } }, "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA=="], + + "ajv": ["ajv@6.12.6", "", { "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } }, "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g=="], + + "animate.css": ["animate.css@4.1.1", "", {}, "sha512-+mRmCTv6SbCmtYJCN4faJMNFVNN5EuCTTprDTAo7YzIGji2KADmakjVA3+8mVDkZ2Bf09vayB35lSQIex2+QaQ=="], + + "ansi-colors": ["ansi-colors@4.1.3", "", {}, "sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw=="], + + "ansi-escapes": ["ansi-escapes@4.3.2", "", { "dependencies": { "type-fest": "^0.21.3" } }, "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ=="], + + "ansi-regex": ["ansi-regex@5.0.1", "", {}, "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ=="], + + "ansi-styles": ["ansi-styles@4.3.0", "", { "dependencies": { "color-convert": "^2.0.1" } }, "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg=="], + + "arch": ["arch@2.2.0", "", {}, "sha512-Of/R0wqp83cgHozfIYLbBMnej79U/SVGOOyuB3VVFv1NRM/PSFMK12x9KVtiYzJqmnU5WR2qp0Z5rHb7sWGnFQ=="], + + "argparse": ["argparse@2.0.1", "", {}, "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="], + + "asn1": ["asn1@0.2.6", "", { "dependencies": { "safer-buffer": "~2.1.0" } }, "sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ=="], + + "assert-plus": ["assert-plus@1.0.0", "", {}, "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw=="], + + "astral-regex": ["astral-regex@2.0.0", "", {}, "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ=="], + + "asynckit": ["asynckit@0.4.0", "", {}, "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q=="], + + "at-least-node": ["at-least-node@1.0.0", "", {}, "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg=="], + + "aws-sign2": ["aws-sign2@0.7.0", "", {}, "sha512-08kcGqnYf/YmjoRhfxyu+CLxBjUtHLXLXX/vUfx9l2LYzG3c1m61nrpyFUZI6zeS+Li/wWMMidD9KgrqtGq3mA=="], + + "aws4": ["aws4@1.13.2", "", {}, "sha512-lHe62zvbTB5eEABUVi/AwVh0ZKY9rMMDhmm+eeyuuUQbQ3+J+fONVQOZyj+DdrvD4BY33uYniyRJ4UJIaSKAfw=="], + + "balanced-match": ["balanced-match@1.0.2", "", {}, "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw=="], + + "base64-js": ["base64-js@1.5.1", "", {}, "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA=="], + + "bcrypt-pbkdf": ["bcrypt-pbkdf@1.0.2", "", { "dependencies": { "tweetnacl": "^0.14.3" } }, "sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w=="], + + "blob-util": ["blob-util@2.0.2", "", {}, "sha512-T7JQa+zsXXEa6/8ZhHcQEW1UFfVM49Ts65uBkFL6fz2QmrElqmbajIDJvuA0tEhRe5eIjpV9ZF+0RfZR9voJFQ=="], + + "bluebird": ["bluebird@3.7.2", "", {}, "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg=="], + + "brace-expansion": ["brace-expansion@1.1.12", "", { "dependencies": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg=="], + + "buffer": ["buffer@5.7.1", "", { "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" } }, "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ=="], + + "buffer-crc32": ["buffer-crc32@0.2.13", "", {}, "sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ=="], + + "bun": ["bun@1.3.4", "", { "optionalDependencies": { "@oven/bun-darwin-aarch64": "1.3.4", "@oven/bun-darwin-x64": "1.3.4", "@oven/bun-darwin-x64-baseline": "1.3.4", "@oven/bun-linux-aarch64": "1.3.4", "@oven/bun-linux-aarch64-musl": "1.3.4", "@oven/bun-linux-x64": "1.3.4", "@oven/bun-linux-x64-baseline": "1.3.4", "@oven/bun-linux-x64-musl": "1.3.4", "@oven/bun-linux-x64-musl-baseline": "1.3.4", "@oven/bun-windows-x64": "1.3.4", "@oven/bun-windows-x64-baseline": "1.3.4" }, "os": [ "linux", "win32", "darwin", ], "cpu": [ "x64", "arm64", ], "bin": { "bun": "bin/bun.exe", "bunx": "bin/bunx.exe" } }, "sha512-xV6KgD5ImquuKsoghzbWmYzeCXmmSgN6yJGz444hri2W+NGKNRFUNrEhy9+/rRXbvNA2qF0K0jAwqFNy1/GhBg=="], + + "cachedir": ["cachedir@2.4.0", "", {}, "sha512-9EtFOZR8g22CL7BWjJ9BUx1+A/djkofnyW3aOXZORNW2kxoUpx2h+uN2cOqwPmFhnpVmxg+KW2OjOSgChTEvsQ=="], + + "call-bind-apply-helpers": ["call-bind-apply-helpers@1.0.2", "", { "dependencies": { "es-errors": "^1.3.0", "function-bind": "^1.1.2" } }, "sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ=="], + + "call-bound": ["call-bound@1.0.4", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "get-intrinsic": "^1.3.0" } }, "sha512-+ys997U96po4Kx/ABpBCqhA9EuxJaQWDQg7295H4hBphv3IZg0boBKuwYpt4YXp6MZ5AmZQnU/tyMTlRpaSejg=="], + + "callsites": ["callsites@3.1.0", "", {}, "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ=="], + + "caseless": ["caseless@0.12.0", "", {}, "sha512-4tYFyifaFfGacoiObjJegolkwSU4xQNGbVgUiNYVUxbQ2x2lUsFvY4hVgVzGiIe6WLOPqycWXA40l+PWsxthUw=="], + + "catharsis": ["catharsis@0.9.0", "", { "dependencies": { "lodash": "^4.17.15" } }, "sha512-prMTQVpcns/tzFgFVkVp6ak6RykZyWb3gu8ckUpd6YkTlacOd3DXGJjIpD4Q6zJirizvaiAjSSHlOsA+6sNh2A=="], + + "chalk": ["chalk@4.1.2", "", { "dependencies": { "ansi-styles": "^4.1.0", "supports-color": "^7.1.0" } }, "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA=="], + + "ci-info": ["ci-info@4.3.1", "", {}, "sha512-Wdy2Igu8OcBpI2pZePZ5oWjPC38tmDVx5WKUXKwlLYkA0ozo85sLsLvkBbBn/sZaSCMFOGZJ14fvW9t5/d7kdA=="], + + "clean-stack": ["clean-stack@2.2.0", "", {}, "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A=="], + + "cli-cursor": ["cli-cursor@3.1.0", "", { "dependencies": { "restore-cursor": "^3.1.0" } }, "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw=="], + + "cli-table3": ["cli-table3@0.6.1", "", { "dependencies": { "string-width": "^4.2.0" }, "optionalDependencies": { "colors": "1.4.0" } }, "sha512-w0q/enDHhPLq44ovMGdQeeDLvwxwavsJX7oQGYt/LrBlYsyaxyDnp6z3QzFut/6kLLKnlcUVJLrpB7KBfgG/RA=="], + + "cli-truncate": ["cli-truncate@2.1.0", "", { "dependencies": { "slice-ansi": "^3.0.0", "string-width": "^4.2.0" } }, "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg=="], + + "color-convert": ["color-convert@2.0.1", "", { "dependencies": { "color-name": "~1.1.4" } }, "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ=="], + + "color-name": ["color-name@1.1.4", "", {}, "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA=="], + + "colorette": ["colorette@2.0.20", "", {}, "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="], + + "colors": ["colors@1.4.0", "", {}, "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA=="], + + "combined-stream": ["combined-stream@1.0.8", "", { "dependencies": { "delayed-stream": "~1.0.0" } }, "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="], + + "commander": ["commander@6.2.1", "", {}, "sha512-U7VdrJFnJgo4xjrHpTzu0yrHPGImdsmD95ZlgYSEajAn2JKzDhDTPG9kBTefmObL2w/ngeZnilk+OV9CG3d7UA=="], + + "common-tags": ["common-tags@1.8.2", "", {}, "sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA=="], + + "concat-map": ["concat-map@0.0.1", "", {}, "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="], + + "core-util-is": ["core-util-is@1.0.2", "", {}, "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ=="], + + "cross-spawn": ["cross-spawn@7.0.6", "", { "dependencies": { "path-key": "^3.1.0", "shebang-command": "^2.0.0", "which": "^2.0.1" } }, "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA=="], + + "cypress": ["cypress@15.7.1", "", { "dependencies": { "@cypress/request": "^3.0.9", "@cypress/xvfb": "^1.2.4", "@types/sinonjs__fake-timers": "8.1.1", "@types/sizzle": "^2.3.2", "@types/tmp": "^0.2.3", "arch": "^2.2.0", "blob-util": "^2.0.2", "bluebird": "^3.7.2", "buffer": "^5.7.1", "cachedir": "^2.3.0", "chalk": "^4.1.0", "ci-info": "^4.1.0", "cli-cursor": "^3.1.0", "cli-table3": "0.6.1", "commander": "^6.2.1", "common-tags": "^1.8.0", "dayjs": "^1.10.4", "debug": "^4.3.4", "enquirer": "^2.3.6", "eventemitter2": "6.4.7", "execa": "4.1.0", "executable": "^4.1.1", "extract-zip": "2.0.1", "figures": "^3.2.0", "fs-extra": "^9.1.0", "hasha": "5.2.2", "is-installed-globally": "~0.4.0", "listr2": "^3.8.3", "lodash": "^4.17.21", "log-symbols": "^4.0.0", "minimist": "^1.2.8", "ospath": "^1.2.2", "pretty-bytes": "^5.6.0", "process": "^0.11.10", "proxy-from-env": "1.0.0", "request-progress": "^3.0.0", "supports-color": "^8.1.1", "systeminformation": "5.27.7", "tmp": "~0.2.4", "tree-kill": "1.2.2", "untildify": "^4.0.0", "yauzl": "^2.10.0" }, "bin": { "cypress": "bin/cypress" } }, "sha512-U3sYnJ+Cnpgr6IPycxsznTg//mGVXfPGeGV+om7VQCyp5XyVkhG4oPr3X3hTq1+OB0Om0O5DxusYmt7cbvwqMQ=="], + + "dashdash": ["dashdash@1.14.1", "", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-jRFi8UDGo6j+odZiEpjazZaWqEal3w/basFjQHQEwVtZJGDpxbH1MeYluwCS8Xq5wmLJooDlMgvVarmWfGM44g=="], + + "dayjs": ["dayjs@1.11.19", "", {}, "sha512-t5EcLVS6QPBNqM2z8fakk/NKel+Xzshgt8FFKAn+qwlD1pzZWxh0nVCrvFK7ZDb6XucZeF9z8C7CBWTRIVApAw=="], + + "debug": ["debug@4.4.3", "", { "dependencies": { "ms": "^2.1.3" } }, "sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA=="], + + "deep-is": ["deep-is@0.1.4", "", {}, "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ=="], + + "deeply": ["deeply@3.1.0", "", { "dependencies": { "fulcon": "^2.0.0", "precise-typeof": "^2.0.0" } }, "sha512-88F7c0DNfr2ESjFHhEtylkZKYEJAHDlQ4LWxqtfegJmwy9dVBH5kvOQCgk8/iv2XIjd4rgZwS/yyVmyeflVNlQ=="], + + "delayed-stream": ["delayed-stream@1.0.0", "", {}, "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ=="], + + "dotenv": ["dotenv@16.6.1", "", {}, "sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow=="], + + "dunder-proto": ["dunder-proto@1.0.1", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.1", "es-errors": "^1.3.0", "gopd": "^1.2.0" } }, "sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A=="], + + "ecc-jsbn": ["ecc-jsbn@0.1.2", "", { "dependencies": { "jsbn": "~0.1.0", "safer-buffer": "^2.1.0" } }, "sha512-eh9O+hwRHNbG4BLTjEl3nw044CkGm5X6LoaCf7LPp7UU8Qrt47JYNi6nPX8xjW97TKGKm1ouctg0QSpZe9qrnw=="], + + "emoji-regex": ["emoji-regex@8.0.0", "", {}, "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A=="], + + "end-of-stream": ["end-of-stream@1.4.5", "", { "dependencies": { "once": "^1.4.0" } }, "sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg=="], + + "enquirer": ["enquirer@2.4.1", "", { "dependencies": { "ansi-colors": "^4.1.1", "strip-ansi": "^6.0.1" } }, "sha512-rRqJg/6gd538VHvR3PSrdRBb/1Vy2YfzHqzvbhGIQpDRKIa4FgV/54b5Q1xYSxOOwKvjXweS26E0Q+nAMwp2pQ=="], + + "entities": ["entities@4.5.0", "", {}, "sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw=="], + + "es-define-property": ["es-define-property@1.0.1", "", {}, "sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g=="], + + "es-errors": ["es-errors@1.3.0", "", {}, "sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw=="], + + "es-object-atoms": ["es-object-atoms@1.1.1", "", { "dependencies": { "es-errors": "^1.3.0" } }, "sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA=="], + + "es-set-tostringtag": ["es-set-tostringtag@2.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "get-intrinsic": "^1.2.6", "has-tostringtag": "^1.0.2", "hasown": "^2.0.2" } }, "sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA=="], + + "esbuild": ["esbuild@0.27.1", "", { "optionalDependencies": { "@esbuild/aix-ppc64": "0.27.1", "@esbuild/android-arm": "0.27.1", "@esbuild/android-arm64": "0.27.1", "@esbuild/android-x64": "0.27.1", "@esbuild/darwin-arm64": "0.27.1", "@esbuild/darwin-x64": "0.27.1", "@esbuild/freebsd-arm64": "0.27.1", "@esbuild/freebsd-x64": "0.27.1", "@esbuild/linux-arm": "0.27.1", "@esbuild/linux-arm64": "0.27.1", "@esbuild/linux-ia32": "0.27.1", "@esbuild/linux-loong64": "0.27.1", "@esbuild/linux-mips64el": "0.27.1", "@esbuild/linux-ppc64": "0.27.1", "@esbuild/linux-riscv64": "0.27.1", "@esbuild/linux-s390x": "0.27.1", "@esbuild/linux-x64": "0.27.1", "@esbuild/netbsd-arm64": "0.27.1", "@esbuild/netbsd-x64": "0.27.1", "@esbuild/openbsd-arm64": "0.27.1", "@esbuild/openbsd-x64": "0.27.1", "@esbuild/openharmony-arm64": "0.27.1", "@esbuild/sunos-x64": "0.27.1", "@esbuild/win32-arm64": "0.27.1", "@esbuild/win32-ia32": "0.27.1", "@esbuild/win32-x64": "0.27.1" }, "bin": { "esbuild": "bin/esbuild" } }, "sha512-yY35KZckJJuVVPXpvjgxiCuVEJT67F6zDeVTv4rizyPrfGBUpZQsvmxnN+C371c2esD/hNMjj4tpBhuueLN7aA=="], + + "escape-string-regexp": ["escape-string-regexp@4.0.0", "", {}, "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA=="], + + "eslint": ["eslint@9.39.1", "", { "dependencies": { "@eslint-community/eslint-utils": "^4.8.0", "@eslint-community/regexpp": "^4.12.1", "@eslint/config-array": "^0.21.1", "@eslint/config-helpers": "^0.4.2", "@eslint/core": "^0.17.0", "@eslint/eslintrc": "^3.3.1", "@eslint/js": "9.39.1", "@eslint/plugin-kit": "^0.4.1", "@humanfs/node": "^0.16.6", "@humanwhocodes/module-importer": "^1.0.1", "@humanwhocodes/retry": "^0.4.2", "@types/estree": "^1.0.6", "ajv": "^6.12.4", "chalk": "^4.0.0", "cross-spawn": "^7.0.6", "debug": "^4.3.2", "escape-string-regexp": "^4.0.0", "eslint-scope": "^8.4.0", "eslint-visitor-keys": "^4.2.1", "espree": "^10.4.0", "esquery": "^1.5.0", "esutils": "^2.0.2", "fast-deep-equal": "^3.1.3", "file-entry-cache": "^8.0.0", "find-up": "^5.0.0", "glob-parent": "^6.0.2", "ignore": "^5.2.0", "imurmurhash": "^0.1.4", "is-glob": "^4.0.0", "json-stable-stringify-without-jsonify": "^1.0.1", "lodash.merge": "^4.6.2", "minimatch": "^3.1.2", "natural-compare": "^1.4.0", "optionator": "^0.9.3" }, "peerDependencies": { "jiti": "*" }, "optionalPeers": ["jiti"], "bin": { "eslint": "bin/eslint.js" } }, "sha512-BhHmn2yNOFA9H9JmmIVKJmd288g9hrVRDkdoIgRCRuSySRUHH7r/DI6aAXW9T1WwUuY3DFgrcaqB+deURBLR5g=="], + + "eslint-plugin-cypress": ["eslint-plugin-cypress@5.2.0", "", { "dependencies": { "globals": "^16.2.0" }, "peerDependencies": { "eslint": ">=9" } }, "sha512-vuCUBQloUSILxtJrUWV39vNIQPlbg0L7cTunEAzvaUzv9LFZZym+KFLH18n9j2cZuFPdlxOqTubCvg5se0DyGw=="], + + "eslint-scope": ["eslint-scope@8.4.0", "", { "dependencies": { "esrecurse": "^4.3.0", "estraverse": "^5.2.0" } }, "sha512-sNXOfKCn74rt8RICKMvJS7XKV/Xk9kA7DyJr8mJik3S7Cwgy3qlkkmyS2uQB3jiJg6VNdZd/pDBJu0nvG2NlTg=="], + + "eslint-visitor-keys": ["eslint-visitor-keys@4.2.1", "", {}, "sha512-Uhdk5sfqcee/9H/rCOJikYz67o0a2Tw2hGRPOG2Y1R2dg7brRe1uG0yaNQDHu+TO/uQPF/5eCapvYSmHUjt7JQ=="], + + "espree": ["espree@10.4.0", "", { "dependencies": { "acorn": "^8.15.0", "acorn-jsx": "^5.3.2", "eslint-visitor-keys": "^4.2.1" } }, "sha512-j6PAQ2uUr79PZhBjP5C5fhl8e39FmRnOjsD5lGnWrFU8i2G776tBK7+nP8KuQUTTyAZUwfQqXAgrVH5MbH9CYQ=="], + + "esquery": ["esquery@1.6.0", "", { "dependencies": { "estraverse": "^5.1.0" } }, "sha512-ca9pw9fomFcKPvFLXhBKUK90ZvGibiGOvRJNbjljY7s7uq/5YO4BOzcYtJqExdx99rF6aAcnRxHmcUHcz6sQsg=="], + + "esrecurse": ["esrecurse@4.3.0", "", { "dependencies": { "estraverse": "^5.2.0" } }, "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag=="], + + "estraverse": ["estraverse@5.3.0", "", {}, "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA=="], + + "esutils": ["esutils@2.0.3", "", {}, "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g=="], + + "eventemitter2": ["eventemitter2@6.4.7", "", {}, "sha512-tYUSVOGeQPKt/eC1ABfhHy5Xd96N3oIijJvN3O9+TsC28T5V9yX9oEfEK5faP0EFSNVOG97qtAS68GBrQB2hDg=="], + + "execa": ["execa@4.1.0", "", { "dependencies": { "cross-spawn": "^7.0.0", "get-stream": "^5.0.0", "human-signals": "^1.1.1", "is-stream": "^2.0.0", "merge-stream": "^2.0.0", "npm-run-path": "^4.0.0", "onetime": "^5.1.0", "signal-exit": "^3.0.2", "strip-final-newline": "^2.0.0" } }, "sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA=="], + + "executable": ["executable@4.1.1", "", { "dependencies": { "pify": "^2.2.0" } }, "sha512-8iA79xD3uAch729dUG8xaaBBFGaEa0wdD2VkYLFHwlqosEj/jT66AzcreRDSgV7ehnNLBW2WR5jIXwGKjVdTLg=="], + + "extend": ["extend@3.0.2", "", {}, "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="], + + "extract-zip": ["extract-zip@2.0.1", "", { "dependencies": { "debug": "^4.1.1", "get-stream": "^5.1.0", "yauzl": "^2.10.0" }, "optionalDependencies": { "@types/yauzl": "^2.9.1" }, "bin": { "extract-zip": "cli.js" } }, "sha512-GDhU9ntwuKyGXdZBUgTIe+vXnWj0fppUEtMDL0+idd5Sta8TGpHssn/eusA9mrPr9qNDym6SxAYZjNvCn/9RBg=="], + + "extsprintf": ["extsprintf@1.3.0", "", {}, "sha512-11Ndz7Nv+mvAC1j0ktTa7fAb0vLyGGX+rMHNBYQviQDGU0Hw7lhctJANqbPhu9nV9/izT/IntTgZ7Im/9LJs9g=="], + + "fast-deep-equal": ["fast-deep-equal@3.1.3", "", {}, "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="], + + "fast-json-stable-stringify": ["fast-json-stable-stringify@2.1.0", "", {}, "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="], + + "fast-levenshtein": ["fast-levenshtein@2.0.6", "", {}, "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw=="], + + "fd-slicer": ["fd-slicer@1.1.0", "", { "dependencies": { "pend": "~1.2.0" } }, "sha512-cE1qsB/VwyQozZ+q1dGxR8LBYNZeofhEdUNGSMbQD3Gw2lAzX9Zb3uIU6Ebc/Fmyjo9AWWfnn0AUCHqtevs/8g=="], + + "fdir": ["fdir@6.5.0", "", { "peerDependencies": { "picomatch": "^3 || ^4" }, "optionalPeers": ["picomatch"] }, "sha512-tIbYtZbucOs0BRGqPJkshJUYdL+SDH7dVM8gjy+ERp3WAUjLEFJE+02kanyHtwjWOnwrKYBiwAmM0p4kLJAnXg=="], + + "figures": ["figures@3.2.0", "", { "dependencies": { "escape-string-regexp": "^1.0.5" } }, "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg=="], + + "file-entry-cache": ["file-entry-cache@8.0.0", "", { "dependencies": { "flat-cache": "^4.0.0" } }, "sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ=="], + + "find-up": ["find-up@5.0.0", "", { "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" } }, "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng=="], + + "flat-cache": ["flat-cache@4.0.1", "", { "dependencies": { "flatted": "^3.2.9", "keyv": "^4.5.4" } }, "sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw=="], + + "flatted": ["flatted@3.3.3", "", {}, "sha512-GX+ysw4PBCz0PzosHDepZGANEuFCMLrnRTiEy9McGjmkCQYwRq4A/X786G/fjM/+OjsWSU1ZrY5qyARZmO/uwg=="], + + "forever-agent": ["forever-agent@0.6.1", "", {}, "sha512-j0KLYPhm6zeac4lz3oJ3o65qvgQCcPubiyotZrXqEaG4hNagNYO8qdlUrX5vwqv9ohqeT/Z3j6+yW067yWWdUw=="], + + "form-data": ["form-data@4.0.5", "", { "dependencies": { "asynckit": "^0.4.0", "combined-stream": "^1.0.8", "es-set-tostringtag": "^2.1.0", "hasown": "^2.0.2", "mime-types": "^2.1.12" } }, "sha512-8RipRLol37bNs2bhoV67fiTEvdTrbMUYcFTiy3+wuuOnUog2QBHCZWXDRijWQfAkhBj2Uf5UnVaiWwA5vdd82w=="], + + "fs-extra": ["fs-extra@9.1.0", "", { "dependencies": { "at-least-node": "^1.0.0", "graceful-fs": "^4.2.0", "jsonfile": "^6.0.1", "universalify": "^2.0.0" } }, "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ=="], + + "fsevents": ["fsevents@2.3.3", "", { "os": "darwin" }, "sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw=="], + + "fulcon": ["fulcon@2.0.0", "", {}, "sha512-BuOhjdlrovbIzVajxL4WcXXK7iAWoTuSATKGMF9BEwAu2En+saHTB8IF/+LbXTWIx46hX4/Nqn2rv38VTh4mrA=="], + + "function-bind": ["function-bind@1.1.2", "", {}, "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA=="], + + "get-intrinsic": ["get-intrinsic@1.3.0", "", { "dependencies": { "call-bind-apply-helpers": "^1.0.2", "es-define-property": "^1.0.1", "es-errors": "^1.3.0", "es-object-atoms": "^1.1.1", "function-bind": "^1.1.2", "get-proto": "^1.0.1", "gopd": "^1.2.0", "has-symbols": "^1.1.0", "hasown": "^2.0.2", "math-intrinsics": "^1.1.0" } }, "sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ=="], + + "get-proto": ["get-proto@1.0.1", "", { "dependencies": { "dunder-proto": "^1.0.1", "es-object-atoms": "^1.0.0" } }, "sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g=="], + + "get-stream": ["get-stream@5.2.0", "", { "dependencies": { "pump": "^3.0.0" } }, "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA=="], + + "get-tsconfig": ["get-tsconfig@4.13.0", "", { "dependencies": { "resolve-pkg-maps": "^1.0.0" } }, "sha512-1VKTZJCwBrvbd+Wn3AOgQP/2Av+TfTCOlE4AcRJE72W1ksZXbAx8PPBR9RzgTeSPzlPMHrbANMH3LbltH73wxQ=="], + + "getpass": ["getpass@0.1.7", "", { "dependencies": { "assert-plus": "^1.0.0" } }, "sha512-0fzj9JxOLfJ+XGLhR8ze3unN0KZCgZwiSSDz168VERjK8Wl8kVSdcu2kspd4s4wtAa1y/qrVRiAA0WclVsu0ng=="], + + "glob-parent": ["glob-parent@6.0.2", "", { "dependencies": { "is-glob": "^4.0.3" } }, "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A=="], + + "global-dirs": ["global-dirs@3.0.1", "", { "dependencies": { "ini": "2.0.0" } }, "sha512-NBcGGFbBA9s1VzD41QXDG+3++t9Mn5t1FpLdhESY6oKY4gYTFpX4wO3sqGUa0Srjtbfj3szX0RnemmrVRUdULA=="], + + "globals": ["globals@16.5.0", "", {}, "sha512-c/c15i26VrJ4IRt5Z89DnIzCGDn9EcebibhAOjw5ibqEHsE1wLUgkPn9RDmNcUKyU87GeaL633nyJ+pplFR2ZQ=="], + + "gopd": ["gopd@1.2.0", "", {}, "sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg=="], + + "graceful-fs": ["graceful-fs@4.2.11", "", {}, "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ=="], + + "graphemer": ["graphemer@1.4.0", "", {}, "sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag=="], + + "has-flag": ["has-flag@4.0.0", "", {}, "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ=="], + + "has-symbols": ["has-symbols@1.1.0", "", {}, "sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ=="], + + "has-tostringtag": ["has-tostringtag@1.0.2", "", { "dependencies": { "has-symbols": "^1.0.3" } }, "sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw=="], + + "hasha": ["hasha@5.2.2", "", { "dependencies": { "is-stream": "^2.0.0", "type-fest": "^0.8.0" } }, "sha512-Hrp5vIK/xr5SkeN2onO32H0MgNZ0f17HRNH39WfL0SYUNOTZ5Lz1TJ8Pajo/87dYGEFlLMm7mIc/k/s6Bvz9HQ=="], + + "hasown": ["hasown@2.0.2", "", { "dependencies": { "function-bind": "^1.1.2" } }, "sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ=="], + + "http-signature": ["http-signature@1.4.0", "", { "dependencies": { "assert-plus": "^1.0.0", "jsprim": "^2.0.2", "sshpk": "^1.18.0" } }, "sha512-G5akfn7eKbpDN+8nPS/cb57YeA1jLTVxjpCj7tmm3QKPdyDy7T+qSC40e9ptydSWvkwjSXw1VbkpyEm39ukeAg=="], + + "human-signals": ["human-signals@1.1.1", "", {}, "sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw=="], + + "ieee754": ["ieee754@1.2.1", "", {}, "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA=="], + + "ignore": ["ignore@7.0.5", "", {}, "sha512-Hs59xBNfUIunMFgWAbGX5cq6893IbWg4KnrjbYwX3tx0ztorVgTDA6B2sxf8ejHJ4wz8BqGUMYlnzNBer5NvGg=="], + + "import-fresh": ["import-fresh@3.3.1", "", { "dependencies": { "parent-module": "^1.0.0", "resolve-from": "^4.0.0" } }, "sha512-TR3KfrTZTYLPB6jUjfx6MF9WcWrHL9su5TObK4ZkYgBdWKPOFoSoQIdEuTuR82pmtxH2spWG9h6etwfr1pLBqQ=="], + + "imurmurhash": ["imurmurhash@0.1.4", "", {}, "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA=="], + + "indent-string": ["indent-string@4.0.0", "", {}, "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg=="], + + "ini": ["ini@2.0.0", "", {}, "sha512-7PnF4oN3CvZF23ADhA5wRaYEQpJ8qygSkbtTXWBeXWXmEVRXK+1ITciHWwHhsjv1TmW0MgacIv6hEi5pX5NQdA=="], + + "is-extglob": ["is-extglob@2.1.1", "", {}, "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ=="], + + "is-fullwidth-code-point": ["is-fullwidth-code-point@3.0.0", "", {}, "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg=="], + + "is-glob": ["is-glob@4.0.3", "", { "dependencies": { "is-extglob": "^2.1.1" } }, "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg=="], + + "is-installed-globally": ["is-installed-globally@0.4.0", "", { "dependencies": { "global-dirs": "^3.0.0", "is-path-inside": "^3.0.2" } }, "sha512-iwGqO3J21aaSkC7jWnHP/difazwS7SFeIqxv6wEtLU8Y5KlzFTjyqcSIT0d8s4+dDhKytsk9PJZ2BkS5eZwQRQ=="], + + "is-path-inside": ["is-path-inside@3.0.3", "", {}, "sha512-Fd4gABb+ycGAmKou8eMftCupSir5lRxqf4aD/vd0cD2qc4HL07OjCeuHMr8Ro4CoMaeCKDB0/ECBOVWjTwUvPQ=="], + + "is-stream": ["is-stream@2.0.1", "", {}, "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg=="], + + "is-typedarray": ["is-typedarray@1.0.0", "", {}, "sha512-cyA56iCMHAh5CdzjJIa4aohJyeO1YbwLi3Jc35MmRU6poroFjIGZzUzupGiRPOjgHg9TLu43xbpwXk523fMxKA=="], + + "is-unicode-supported": ["is-unicode-supported@0.1.0", "", {}, "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw=="], + + "isexe": ["isexe@2.0.0", "", {}, "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw=="], + + "isstream": ["isstream@0.1.2", "", {}, "sha512-Yljz7ffyPbrLpLngrMtZ7NduUgVvi6wG9RJ9IUcyCd59YQ911PBJphODUcbOVbqYfxe1wuYf/LJ8PauMRwsM/g=="], + + "js-yaml": ["js-yaml@4.1.1", "", { "dependencies": { "argparse": "^2.0.1" }, "bin": { "js-yaml": "bin/js-yaml.js" } }, "sha512-qQKT4zQxXl8lLwBtHMWwaTcGfFOZviOJet3Oy/xmGk2gZH677CJM9EvtfdSkgWcATZhj/55JZ0rmy3myCT5lsA=="], + + "js2xmlparser": ["js2xmlparser@4.0.2", "", { "dependencies": { "xmlcreate": "^2.0.4" } }, "sha512-6n4D8gLlLf1n5mNLQPRfViYzu9RATblzPEtm1SthMX1Pjao0r9YI9nw7ZIfRxQMERS87mcswrg+r/OYrPRX6jA=="], + + "jsbn": ["jsbn@0.1.1", "", {}, "sha512-UVU9dibq2JcFWxQPA6KCqj5O42VOmAY3zQUfEKxU0KpTGXwNoCjkX1e13eHNvw/xPynt6pU0rZ1htjWTNTSXsg=="], + + "jsdoc": ["jsdoc@4.0.5", "", { "dependencies": { "@babel/parser": "^7.20.15", "@jsdoc/salty": "^0.2.1", "@types/markdown-it": "^14.1.1", "bluebird": "^3.7.2", "catharsis": "^0.9.0", "escape-string-regexp": "^2.0.0", "js2xmlparser": "^4.0.2", "klaw": "^3.0.0", "markdown-it": "^14.1.0", "markdown-it-anchor": "^8.6.7", "marked": "^4.0.10", "mkdirp": "^1.0.4", "requizzle": "^0.2.3", "strip-json-comments": "^3.1.0", "underscore": "~1.13.2" }, "bin": { "jsdoc": "jsdoc.js" } }, "sha512-P4C6MWP9yIlMiK8nwoZvxN84vb6MsnXcHuy7XzVOvQoCizWX5JFCBsWIIWKXBltpoRZXddUOVQmCTOZt9yDj9g=="], + + "json-buffer": ["json-buffer@3.0.1", "", {}, "sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ=="], + + "json-schema": ["json-schema@0.4.0", "", {}, "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA=="], + + "json-schema-traverse": ["json-schema-traverse@0.4.1", "", {}, "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="], + + "json-stable-stringify-without-jsonify": ["json-stable-stringify-without-jsonify@1.0.1", "", {}, "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw=="], + + "json-stringify-safe": ["json-stringify-safe@5.0.1", "", {}, "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA=="], + + "jsonfile": ["jsonfile@6.2.0", "", { "dependencies": { "universalify": "^2.0.0" }, "optionalDependencies": { "graceful-fs": "^4.1.6" } }, "sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg=="], + + "jsprim": ["jsprim@2.0.2", "", { "dependencies": { "assert-plus": "1.0.0", "extsprintf": "1.3.0", "json-schema": "0.4.0", "verror": "1.10.0" } }, "sha512-gqXddjPqQ6G40VdnI6T6yObEC+pDNvyP95wdQhkWkg7crHH3km5qP1FsOXEkzEQwnz6gz5qGTn1c2Y52wP3OyQ=="], + + "keyv": ["keyv@4.5.4", "", { "dependencies": { "json-buffer": "3.0.1" } }, "sha512-oxVHkHR/EJf2CNXnWxRLW6mg7JyCCUcG0DtEGmL2ctUo1PNTin1PUil+r/+4r5MpVgC/fn1kjsx7mjSujKqIpw=="], + + "klaw": ["klaw@3.0.0", "", { "dependencies": { "graceful-fs": "^4.1.9" } }, "sha512-0Fo5oir+O9jnXu5EefYbVK+mHMBeEVEy2cmctR1O1NECcCkPRreJKrS6Qt/j3KC2C148Dfo9i3pCmCMsdqGr0g=="], + + "levn": ["levn@0.4.1", "", { "dependencies": { "prelude-ls": "^1.2.1", "type-check": "~0.4.0" } }, "sha512-+bT2uH4E5LGE7h/n3evcS/sQlJXCpIp6ym8OWJ5eV6+67Dsql/LaaT7qJBAt2rzfoa/5QBGBhxDix1dMt2kQKQ=="], + + "linkify-it": ["linkify-it@5.0.0", "", { "dependencies": { "uc.micro": "^2.0.0" } }, "sha512-5aHCbzQRADcdP+ATqnDuhhJ/MRIqDkZX5pyjFHRRysS8vZ5AbqGEoFIb6pYHPZ+L/OC2Lc+xT8uHVVR5CAK/wQ=="], + + "listr2": ["listr2@3.14.0", "", { "dependencies": { "cli-truncate": "^2.1.0", "colorette": "^2.0.16", "log-update": "^4.0.0", "p-map": "^4.0.0", "rfdc": "^1.3.0", "rxjs": "^7.5.1", "through": "^2.3.8", "wrap-ansi": "^7.0.0" }, "peerDependencies": { "enquirer": ">= 2.3.0 < 3" }, "optionalPeers": ["enquirer"] }, "sha512-TyWI8G99GX9GjE54cJ+RrNMcIFBfwMPxc3XTFiAYGN4s10hWROGtOg7+O6u6LE3mNkyld7RSLE6nrKBvTfcs3g=="], + + "lit-html": ["lit-html@3.3.1", "", { "dependencies": { "@types/trusted-types": "^2.0.2" } }, "sha512-S9hbyDu/vs1qNrithiNyeyv64c9yqiW9l+DBgI18fL+MTvOtWoFR0FWiyq1TxaYef5wNlpEmzlXoBlZEO+WjoA=="], + + "locate-path": ["locate-path@6.0.0", "", { "dependencies": { "p-locate": "^5.0.0" } }, "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw=="], + + "lodash": ["lodash@4.17.21", "", {}, "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg=="], + + "lodash.merge": ["lodash.merge@4.6.2", "", {}, "sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ=="], + + "lodash.once": ["lodash.once@4.1.1", "", {}, "sha512-Sb487aTOCr9drQVL8pIxOzVhafOjZN9UU54hiN8PU3uAiSV7lx1yYNpbNmex2PK6dSJoNTSJUUswT651yww3Mg=="], + + "log-symbols": ["log-symbols@4.1.0", "", { "dependencies": { "chalk": "^4.1.0", "is-unicode-supported": "^0.1.0" } }, "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg=="], + + "log-update": ["log-update@4.0.0", "", { "dependencies": { "ansi-escapes": "^4.3.0", "cli-cursor": "^3.1.0", "slice-ansi": "^4.0.0", "wrap-ansi": "^6.2.0" } }, "sha512-9fkkDevMefjg0mmzWFBW8YkFP91OrizzkW3diF7CpG+S2EYdy4+TVfGwz1zeF8x7hCx1ovSPTOE9Ngib74qqUg=="], + + "luxon": ["luxon@3.7.2", "", {}, "sha512-vtEhXh/gNjI9Yg1u4jX/0YVPMvxzHuGgCm6tC5kZyb08yjGWGnqAjGJvcXbqQR2P3MyMEFnRbpcdFS6PBcLqew=="], + + "markdown-it": ["markdown-it@14.1.0", "", { "dependencies": { "argparse": "^2.0.1", "entities": "^4.4.0", "linkify-it": "^5.0.0", "mdurl": "^2.0.0", "punycode.js": "^2.3.1", "uc.micro": "^2.1.0" }, "bin": { "markdown-it": "bin/markdown-it.mjs" } }, "sha512-a54IwgWPaeBCAAsv13YgmALOF1elABB08FxO9i+r4VFk5Vl4pKokRPeX8u5TCgSsPi6ec1otfLjdOpVcgbpshg=="], + + "markdown-it-anchor": ["markdown-it-anchor@8.6.7", "", { "peerDependencies": { "@types/markdown-it": "*", "markdown-it": "*" } }, "sha512-FlCHFwNnutLgVTflOYHPW2pPcl2AACqVzExlkGQNsi4CJgqOHN7YTgDd4LuhgN1BFO3TS0vLAruV1Td6dwWPJA=="], + + "marked": ["marked@4.3.0", "", { "bin": { "marked": "bin/marked.js" } }, "sha512-PRsaiG84bK+AMvxziE/lCFss8juXjNaWzVbN5tXAm4XjeaS9NAHhop+PjQxz2A9h8Q4M/xGmzP8vqNwy6JeK0A=="], + + "math-intrinsics": ["math-intrinsics@1.1.0", "", {}, "sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g=="], + + "mdurl": ["mdurl@2.0.0", "", {}, "sha512-Lf+9+2r+Tdp5wXDXC4PcIBjTDtq4UKjCPMQhKIuzpJNW0b96kVqSwW0bT7FhRSfmAiFYgP+SCRvdrDozfh0U5w=="], + + "merge-stream": ["merge-stream@2.0.0", "", {}, "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w=="], + + "mime-db": ["mime-db@1.52.0", "", {}, "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg=="], + + "mime-types": ["mime-types@2.1.35", "", { "dependencies": { "mime-db": "1.52.0" } }, "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw=="], + + "mimic-fn": ["mimic-fn@2.1.0", "", {}, "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg=="], + + "minimatch": ["minimatch@3.1.2", "", { "dependencies": { "brace-expansion": "^1.1.7" } }, "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw=="], + + "minimist": ["minimist@1.2.8", "", {}, "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA=="], + + "mkdirp": ["mkdirp@1.0.4", "", { "bin": { "mkdirp": "bin/cmd.js" } }, "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="], + + "modern-screenshot": ["modern-screenshot@4.6.8", "", {}, "sha512-GJkv/yWPOJTlxj1LZDU2k474cDyOWL+LVaqTdDWQwQ5d8zIuTz1892+1cV9V0ZpK6HYZFo/+BNLBbierO9d2TA=="], + + "mousetrap": ["mousetrap@1.6.5", "", {}, "sha512-QNo4kEepaIBwiT8CDhP98umTetp+JNfQYBWvC1pc6/OAibuXtRcxZ58Qz8skvEHYvURne/7R8T5VoOI7rDsEUA=="], + + "ms": ["ms@2.1.3", "", {}, "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA=="], + + "natural-compare": ["natural-compare@1.4.0", "", {}, "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw=="], + + "npm-run-path": ["npm-run-path@4.0.1", "", { "dependencies": { "path-key": "^3.0.0" } }, "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw=="], + + "object-inspect": ["object-inspect@1.13.4", "", {}, "sha512-W67iLl4J2EXEGTbfeHCffrjDfitvLANg0UlX3wFUUSTx92KXRFegMHUVgSqE+wvhAbi4WqjGg9czysTV2Epbew=="], + + "once": ["once@1.4.0", "", { "dependencies": { "wrappy": "1" } }, "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w=="], + + "onetime": ["onetime@5.1.2", "", { "dependencies": { "mimic-fn": "^2.1.0" } }, "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg=="], + + "optionator": ["optionator@0.9.4", "", { "dependencies": { "deep-is": "^0.1.3", "fast-levenshtein": "^2.0.6", "levn": "^0.4.1", "prelude-ls": "^1.2.1", "type-check": "^0.4.0", "word-wrap": "^1.2.5" } }, "sha512-6IpQ7mKUxRcZNLIObR0hz7lxsapSSIYNZJwXPGeF0mTVqGKFIXj1DQcMoT22S3ROcLyY/rz0PWaWZ9ayWmad9g=="], + + "ospath": ["ospath@1.2.2", "", {}, "sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA=="], + + "p-limit": ["p-limit@3.1.0", "", { "dependencies": { "yocto-queue": "^0.1.0" } }, "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ=="], + + "p-locate": ["p-locate@5.0.0", "", { "dependencies": { "p-limit": "^3.0.2" } }, "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw=="], + + "p-map": ["p-map@4.0.0", "", { "dependencies": { "aggregate-error": "^3.0.0" } }, "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ=="], + + "parent-module": ["parent-module@1.0.1", "", { "dependencies": { "callsites": "^3.0.0" } }, "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g=="], + + "path-exists": ["path-exists@4.0.0", "", {}, "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w=="], + + "path-key": ["path-key@3.1.1", "", {}, "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="], + + "pend": ["pend@1.2.0", "", {}, "sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg=="], + + "performance-now": ["performance-now@2.1.0", "", {}, "sha512-7EAHlyLHI56VEIdK57uwHdHKIaAGbnXPiw0yWbarQZOKaKpvUIgW0jWRVLiatnM+XXlSwsanIBH/hzGMJulMow=="], + + "picomatch": ["picomatch@4.0.3", "", {}, "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q=="], + + "pify": ["pify@2.3.0", "", {}, "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog=="], + + "precise-typeof": ["precise-typeof@2.0.1", "", {}, "sha512-VcSaY01jyA0vf8LjFuwplqUZLYyEPGrkCn+KZQGNqHtiEwRzGLynB7CoKl55LXvHKL3vZxfHAVRd4EHqMJG7ZQ=="], + + "prelude-ls": ["prelude-ls@1.2.1", "", {}, "sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g=="], + + "pretty-bytes": ["pretty-bytes@5.6.0", "", {}, "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg=="], + + "process": ["process@0.11.10", "", {}, "sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A=="], + + "proxy-from-env": ["proxy-from-env@1.0.0", "", {}, "sha512-F2JHgJQ1iqwnHDcQjVBsq3n/uoaFL+iPW/eAeL7kVxy/2RrWaN4WroKjjvbsoRtv0ftelNyC01bjRhn/bhcf4A=="], + + "pump": ["pump@3.0.3", "", { "dependencies": { "end-of-stream": "^1.1.0", "once": "^1.3.1" } }, "sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA=="], + + "punycode": ["punycode@2.3.1", "", {}, "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg=="], + + "punycode.js": ["punycode.js@2.3.1", "", {}, "sha512-uxFIHU0YlHYhDQtV4R9J6a52SLx28BCjT+4ieh7IGbgwVJWO+km431c4yRlREUAsAmt/uMjQUyQHNEPf0M39CA=="], + + "qs": ["qs@6.14.0", "", { "dependencies": { "side-channel": "^1.1.0" } }, "sha512-YWWTjgABSKcvs/nWBi9PycY/JiPJqOD4JA6o9Sej2AtvSGarXxKC3OQSk4pAarbdQlKAh5D4FCQkJNkW+GAn3w=="], + + "random-js": ["random-js@github:Monogatari/random-js#7dd5b5f", {}, "Monogatari-random-js-7dd5b5f"], + + "request-progress": ["request-progress@3.0.0", "", { "dependencies": { "throttleit": "^1.0.0" } }, "sha512-MnWzEHHaxHO2iWiQuHrUPBi/1WeBf5PkxQqNyNvLl9VAYSdXkP8tQ3pBSeCPD+yw0v0Aq1zosWLz0BdeXpWwZg=="], + + "requizzle": ["requizzle@0.2.4", "", { "dependencies": { "lodash": "^4.17.21" } }, "sha512-JRrFk1D4OQ4SqovXOgdav+K8EAhSB/LJZqCz8tbX0KObcdeM15Ss59ozWMBWmmINMagCwmqn4ZNryUGpBsl6Jw=="], + + "resolve-from": ["resolve-from@4.0.0", "", {}, "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g=="], + + "resolve-pkg-maps": ["resolve-pkg-maps@1.0.0", "", {}, "sha512-seS2Tj26TBVOC2NIc2rOe2y2ZO7efxITtLZcGSOnHHNOQ7CkiUBfw0Iw2ck6xkIhPwLhKNLS8BO+hEpngQlqzw=="], + + "restore-cursor": ["restore-cursor@3.1.0", "", { "dependencies": { "onetime": "^5.1.0", "signal-exit": "^3.0.2" } }, "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA=="], + + "rfdc": ["rfdc@1.4.1", "", {}, "sha512-q1b3N5QkRUWUl7iyylaaj3kOpIT0N2i9MqIEQXP73GVsN9cw3fdx8X63cEmWhJGi2PPCF23Ijp7ktmd39rawIA=="], + + "rxjs": ["rxjs@7.8.2", "", { "dependencies": { "tslib": "^2.1.0" } }, "sha512-dhKf903U/PQZY6boNNtAGdWbG85WAbjT/1xYoZIC7FAY0yWapOBQVsVrDl58W86//e1VpMNBtRV4MaXfdMySFA=="], + + "safe-buffer": ["safe-buffer@5.2.1", "", {}, "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="], + + "safer-buffer": ["safer-buffer@2.1.2", "", {}, "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="], + + "semver": ["semver@7.7.3", "", { "bin": { "semver": "bin/semver.js" } }, "sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q=="], + + "shebang-command": ["shebang-command@2.0.0", "", { "dependencies": { "shebang-regex": "^3.0.0" } }, "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA=="], + + "shebang-regex": ["shebang-regex@3.0.0", "", {}, "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="], + + "side-channel": ["side-channel@1.1.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3", "side-channel-list": "^1.0.0", "side-channel-map": "^1.0.1", "side-channel-weakmap": "^1.0.2" } }, "sha512-ZX99e6tRweoUXqR+VBrslhda51Nh5MTQwou5tnUDgbtyM0dBgmhEDtWGP/xbKn6hqfPRHujUNwz5fy/wbbhnpw=="], + + "side-channel-list": ["side-channel-list@1.0.0", "", { "dependencies": { "es-errors": "^1.3.0", "object-inspect": "^1.13.3" } }, "sha512-FCLHtRD/gnpCiCHEiJLOwdmFP+wzCmDEkc9y7NsYxeF4u7Btsn1ZuwgwJGxImImHicJArLP4R0yX4c2KCrMrTA=="], + + "side-channel-map": ["side-channel-map@1.0.1", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3" } }, "sha512-VCjCNfgMsby3tTdo02nbjtM/ewra6jPHmpThenkTYh8pG9ucZ/1P8So4u4FGBek/BjpOVsDCMoLA/iuBKIFXRA=="], + + "side-channel-weakmap": ["side-channel-weakmap@1.0.2", "", { "dependencies": { "call-bound": "^1.0.2", "es-errors": "^1.3.0", "get-intrinsic": "^1.2.5", "object-inspect": "^1.13.3", "side-channel-map": "^1.0.1" } }, "sha512-WPS/HvHQTYnHisLo9McqBHOJk2FkHO/tlpvldyrnem4aeQp4hai3gythswg6p01oSoTl58rcpiFAjF2br2Ak2A=="], + + "signal-exit": ["signal-exit@3.0.7", "", {}, "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ=="], + + "slice-ansi": ["slice-ansi@3.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ=="], + + "sshpk": ["sshpk@1.18.0", "", { "dependencies": { "asn1": "~0.2.3", "assert-plus": "^1.0.0", "bcrypt-pbkdf": "^1.0.0", "dashdash": "^1.12.0", "ecc-jsbn": "~0.1.1", "getpass": "^0.1.1", "jsbn": "~0.1.0", "safer-buffer": "^2.0.2", "tweetnacl": "~0.14.0" }, "bin": { "sshpk-conv": "bin/sshpk-conv", "sshpk-sign": "bin/sshpk-sign", "sshpk-verify": "bin/sshpk-verify" } }, "sha512-2p2KJZTSqQ/I3+HX42EpYOa2l3f8Erv8MWKsy2I9uf4wA7yFIkXRffYdsx86y6z4vHtV8u7g+pPlr8/4ouAxsQ=="], + + "string-width": ["string-width@4.2.3", "", { "dependencies": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", "strip-ansi": "^6.0.1" } }, "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g=="], + + "strip-ansi": ["strip-ansi@6.0.1", "", { "dependencies": { "ansi-regex": "^5.0.1" } }, "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A=="], + + "strip-final-newline": ["strip-final-newline@2.0.0", "", {}, "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA=="], + + "strip-json-comments": ["strip-json-comments@3.1.1", "", {}, "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig=="], + + "supports-color": ["supports-color@8.1.1", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q=="], + + "systeminformation": ["systeminformation@5.27.7", "", { "os": "!aix", "bin": { "systeminformation": "lib/cli.js" } }, "sha512-saaqOoVEEFaux4v0K8Q7caiauRwjXC4XbD2eH60dxHXbpKxQ8kH9Rf7Jh+nryKpOUSEFxtCdBlSUx0/lO6rwRg=="], + + "throttleit": ["throttleit@1.0.1", "", {}, "sha512-vDZpf9Chs9mAdfY046mcPt8fg5QSZr37hEH4TXYBnDF+izxgrbRGUAAaBvIk/fJm9aOFCGFd1EsNg5AZCbnQCQ=="], + + "through": ["through@2.3.8", "", {}, "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg=="], + + "tinyglobby": ["tinyglobby@0.2.15", "", { "dependencies": { "fdir": "^6.5.0", "picomatch": "^4.0.3" } }, "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ=="], + + "tldts": ["tldts@6.1.86", "", { "dependencies": { "tldts-core": "^6.1.86" }, "bin": { "tldts": "bin/cli.js" } }, "sha512-WMi/OQ2axVTf/ykqCQgXiIct+mSQDFdH2fkwhPwgEwvJ1kSzZRiinb0zF2Xb8u4+OqPChmyI6MEu4EezNJz+FQ=="], + + "tldts-core": ["tldts-core@6.1.86", "", {}, "sha512-Je6p7pkk+KMzMv2XXKmAE3McmolOQFdxkKw0R8EYNr7sELW46JqnNeTX8ybPiQgvg1ymCoF8LXs5fzFaZvJPTA=="], + + "tmp": ["tmp@0.2.5", "", {}, "sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow=="], + + "tough-cookie": ["tough-cookie@5.1.2", "", { "dependencies": { "tldts": "^6.1.32" } }, "sha512-FVDYdxtnj0G6Qm/DhNPSb8Ju59ULcup3tuJxkFb5K8Bv2pUXILbf0xZWU8PX8Ov19OXljbUyveOFwRMwkXzO+A=="], + + "tree-kill": ["tree-kill@1.2.2", "", { "bin": { "tree-kill": "cli.js" } }, "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="], + + "ts-api-utils": ["ts-api-utils@2.1.0", "", { "peerDependencies": { "typescript": ">=4.8.4" } }, "sha512-CUgTZL1irw8u29bzrOD/nH85jqyc74D6SshFgujOIA7osm2Rz7dYH77agkx7H4FBNxDq7Cjf+IjaX/8zwFW+ZQ=="], + + "tslib": ["tslib@2.8.1", "", {}, "sha512-oJFu94HQb+KVduSUQL7wnpmqnfmLsOA/nAh6b6EH0wCEoK0/mPeXU6c3wKDV83MkOuHPRHtSXKKU99IBazS/2w=="], + + "tsx": ["tsx@4.21.0", "", { "dependencies": { "esbuild": "~0.27.0", "get-tsconfig": "^4.7.5" }, "optionalDependencies": { "fsevents": "~2.3.3" }, "bin": { "tsx": "dist/cli.mjs" } }, "sha512-5C1sg4USs1lfG0GFb2RLXsdpXqBSEhAaA/0kPL01wxzpMqLILNxIxIOKiILz+cdg/pLnOUxFYOR5yhHU666wbw=="], + + "tunnel-agent": ["tunnel-agent@0.6.0", "", { "dependencies": { "safe-buffer": "^5.0.1" } }, "sha512-McnNiV1l8RYeY8tBgEpuodCC1mLUdbSN+CYBL7kJsJNInOP8UjDDEwdk6Mw60vdLLrr5NHKZhMAOSrR2NZuQ+w=="], + + "tweetnacl": ["tweetnacl@0.14.5", "", {}, "sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA=="], + + "type-check": ["type-check@0.4.0", "", { "dependencies": { "prelude-ls": "^1.2.1" } }, "sha512-XleUoc9uwGXqjWwXaUTZAmzMcFZ5858QA2vvx1Ur5xIcixXIP+8LnFDgRplU30us6teqdlskFfu+ae4K79Ooew=="], + + "type-fest": ["type-fest@0.8.1", "", {}, "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA=="], + + "typescript": ["typescript@5.9.3", "", { "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" } }, "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw=="], + + "typescript-eslint": ["typescript-eslint@8.48.1", "", { "dependencies": { "@typescript-eslint/eslint-plugin": "8.48.1", "@typescript-eslint/parser": "8.48.1", "@typescript-eslint/typescript-estree": "8.48.1", "@typescript-eslint/utils": "8.48.1" }, "peerDependencies": { "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "sha512-FbOKN1fqNoXp1hIl5KYpObVrp0mCn+CLgn479nmu2IsRMrx2vyv74MmsBLVlhg8qVwNFGbXSp8fh1zp8pEoC2A=="], + + "uc.micro": ["uc.micro@2.1.0", "", {}, "sha512-ARDJmphmdvUk6Glw7y9DQ2bFkKBHwQHLi2lsaH6PPmz/Ka9sFOBsBluozhDltWmnv9u/cF6Rt87znRTPV+yp/A=="], + + "underscore": ["underscore@1.13.7", "", {}, "sha512-GMXzWtsc57XAtguZgaQViUOzs0KTkk8ojr3/xAxXLITqf/3EMwxC0inyETfDFjH/Krbhuep0HNbbjI9i/q3F3g=="], + + "undici-types": ["undici-types@7.16.0", "", {}, "sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw=="], + + "universalify": ["universalify@2.0.1", "", {}, "sha512-gptHNQghINnc/vTGIk0SOFGFNXw7JVrlRUtConJRlvaw6DuX0wO5Jeko9sWrMBhh+PsYAZ7oXAiOnf/UKogyiw=="], + + "untildify": ["untildify@4.0.0", "", {}, "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw=="], + + "uri-js": ["uri-js@4.4.1", "", { "dependencies": { "punycode": "^2.1.0" } }, "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg=="], + + "uuid": ["uuid@8.3.2", "", { "bin": { "uuid": "dist/bin/uuid" } }, "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg=="], + + "verror": ["verror@1.10.0", "", { "dependencies": { "assert-plus": "^1.0.0", "core-util-is": "1.0.2", "extsprintf": "^1.2.0" } }, "sha512-ZZKSmDAEFOijERBLkmYfJ+vmk3w+7hOLYDNkRCuRuMJGEmqYNCNLyBBFwWKVMhfwaEF3WOd0Zlw86U/WC/+nYw=="], + + "which": ["which@2.0.2", "", { "dependencies": { "isexe": "^2.0.0" }, "bin": { "node-which": "./bin/node-which" } }, "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA=="], + + "word-wrap": ["word-wrap@1.2.5", "", {}, "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA=="], + + "wrap-ansi": ["wrap-ansi@7.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q=="], + + "wrappy": ["wrappy@1.0.2", "", {}, "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="], + + "xmlcreate": ["xmlcreate@2.0.4", "", {}, "sha512-nquOebG4sngPmGPICTS5EnxqhKbCmz5Ox5hsszI2T6U5qdrJizBc+0ilYSEjTSzU0yZcmvppztXe/5Al5fUwdg=="], + + "yauzl": ["yauzl@2.10.0", "", { "dependencies": { "buffer-crc32": "~0.2.3", "fd-slicer": "~1.1.0" } }, "sha512-p4a9I6X6nu6IhoGmBqAcbJy1mlC4j27vEPZX9F4L4/vZT3Lyq1VkFHw/V/PUcB9Buo+DG3iHkT0x3Qya58zc3g=="], + + "yocto-queue": ["yocto-queue@0.1.0", "", {}, "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q=="], + + "@cypress/xvfb/debug": ["debug@3.2.7", "", { "dependencies": { "ms": "^2.1.1" } }, "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ=="], + + "@eslint-community/eslint-utils/eslint-visitor-keys": ["eslint-visitor-keys@3.4.3", "", {}, "sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag=="], + + "@eslint/eslintrc/globals": ["globals@14.0.0", "", {}, "sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ=="], + + "@eslint/eslintrc/ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "@typescript-eslint/typescript-estree/minimatch": ["minimatch@9.0.5", "", { "dependencies": { "brace-expansion": "^2.0.1" } }, "sha512-G6T0ZX48xgozx7587koeX9Ys2NYy6Gmv//P89sEte9V9whIapMNF4idKxnW2QtCcLiTWlb/wfCabAtAFWhhBow=="], + + "ansi-escapes/type-fest": ["type-fest@0.21.3", "", {}, "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w=="], + + "chalk/supports-color": ["supports-color@7.2.0", "", { "dependencies": { "has-flag": "^4.0.0" } }, "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw=="], + + "eslint/ignore": ["ignore@5.3.2", "", {}, "sha512-hsBTNUqQTDwkWtcdYI2i06Y/nUBEsNEDJKjWdigLvegy8kDuJAS8uRlpkkcQpyEXL0Z/pjDy5HBmMjRCJ2gq+g=="], + + "figures/escape-string-regexp": ["escape-string-regexp@1.0.5", "", {}, "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg=="], + + "jsdoc/escape-string-regexp": ["escape-string-regexp@2.0.0", "", {}, "sha512-UpzcLCXolUWcNu5HtVMHYdXJjArjsF9C0aNnquZYY4uW/Vu0miy5YoWvbV345HauVvcAUnpRuhMMcqTcGOY2+w=="], + + "log-update/slice-ansi": ["slice-ansi@4.0.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "astral-regex": "^2.0.0", "is-fullwidth-code-point": "^3.0.0" } }, "sha512-qMCMfhY040cVHT43K9BFygqYbUPFZKHOg7K73mtTWJRb8pyP3fzf4Ixd5SzdEJQ6MRUg/WBnOLxghZtKKurENQ=="], + + "log-update/wrap-ansi": ["wrap-ansi@6.2.0", "", { "dependencies": { "ansi-styles": "^4.0.0", "string-width": "^4.1.0", "strip-ansi": "^6.0.0" } }, "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA=="], + + "@typescript-eslint/typescript-estree/minimatch/brace-expansion": ["brace-expansion@2.0.2", "", { "dependencies": { "balanced-match": "^1.0.0" } }, "sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ=="], + } +} diff --git a/cypress.config.js b/cypress.config.js new file mode 100644 index 0000000..47f7dd9 --- /dev/null +++ b/cypress.config.js @@ -0,0 +1,13 @@ +const { defineConfig } = require('cypress'); + +module.exports = defineConfig({ + projectId: 'b9jn8v', + e2e: { + // We've imported your old cypress plugins here. + // You may want to clean this up later by importing these. + setupNodeEvents (on, config) { + return require('./cypress/plugins/index.js')(on, config); + }, + specPattern: 'cypress/e2e/**/*.{js,jsx,ts,tsx}', + }, +}); diff --git a/cypress.json b/cypress.json deleted file mode 100644 index f4f9f45..0000000 --- a/cypress.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "projectId": "b9jn8v" -} diff --git a/cypress/integration/actions/choices.spec.js b/cypress/e2e/actions/choices.spec.js similarity index 90% rename from cypress/integration/actions/choices.spec.js rename to cypress/e2e/actions/choices.spec.js index 642d61b..7721c7f 100644 --- a/cypress/integration/actions/choices.spec.js +++ b/cypress/e2e/actions/choices.spec.js @@ -1,6 +1,3 @@ -const choice = - - context ('Choices', function () { beforeEach (() => { @@ -48,6 +45,50 @@ context ('Choices', function () { } } }}); + + this.monogatari.$ ('nvlChoice', {'Choice':{ + 'Dialog': 'nvl This is a choice', + 'One': { + 'Text': 'One', + 'Do': 'One' + }, + 'Two': { + 'Text': 'Two', + 'Do': 'Two' + }, + 'Three': { + 'Text': 'Three', + 'Do': 'Three' + }, + 'Disabled': { + 'Text': 'Disabled', + 'Do': 'Disabled', + 'Clickable': function () { + return false; + } + }, + 'Hidden': { + 'Text': 'Hidden', + 'Do': 'Hidden', + 'Condition': function () { + return false; + } + }, + 'OnClick': { + 'Text': 'On Click', + 'Do': 'On Click', + 'onClick': function () { + this.storage ('clicked', true); + } + }, + 'OnChosen': { + 'Text': 'On Chosen', + 'Do': 'On Chosen', + 'onChosen': function () { + this.storage ({ clicked: true }); + } + } + }}); }); }); @@ -527,5 +568,37 @@ context ('Choices', function () { // }); + it ('Works with NVL mode', function () { + cy.loadTestAssets ({nvl: true}); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'nvl Before', + '$ nvlChoice', + 'nvl After' + ] + }); + + cy.start (); + cy.proceed (); + + cy.get ('text-box').contains ('Before'); + cy.proceed (); + + cy.get ('text-box').contains ('This is a choice'); + + cy.get ('[data-choice="One"]').click (); + + cy.get ('text-box').contains ('One'); + + cy.rollback (); + cy.get ('text-box').contains ('This is a choice'); + + cy.rollback (); + cy.get ('text-box').contains ('Before'); + + cy.rollback (); + cy.get ('text-box').contains ('Before'); + }); }); \ No newline at end of file diff --git a/cypress/integration/actions/clear.spec.js b/cypress/e2e/actions/clear.spec.js similarity index 100% rename from cypress/integration/actions/clear.spec.js rename to cypress/e2e/actions/clear.spec.js diff --git a/cypress/integration/actions/conditionals.spec.js b/cypress/e2e/actions/conditionals.spec.js similarity index 100% rename from cypress/integration/actions/conditionals.spec.js rename to cypress/e2e/actions/conditionals.spec.js diff --git a/cypress/e2e/actions/dialog.spec.js b/cypress/e2e/actions/dialog.spec.js new file mode 100644 index 0000000..2f5c8ba --- /dev/null +++ b/cypress/e2e/actions/dialog.spec.js @@ -0,0 +1,1147 @@ +context ('Dialog', function () { + + beforeEach (() => { + cy.open (); + cy.loadTestAssets (); + }); + + it ('Displays narrator dialog correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'This is a narrator dialog', + 'Another line' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('This is a narrator dialog'); + cy.get ('[data-content="character-name"]').should ('be.empty'); + cy.get ('[data-content="character-expression"]').should ('not.be.visible'); + + cy.proceed (); + cy.get ('text-box').contains ('Another line'); + }); + + it ('Displays centered dialog correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'centered This is centered', + 'Normal dialog' + ] + }); + + cy.start (); + cy.get ('centered-dialog').should ('exist'); + cy.get ('centered-dialog').contains ('This is centered'); + cy.get ('text-box').should ('not.be.visible'); + + cy.proceed (); + cy.get ('centered-dialog').should ('not.exist'); + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('Normal dialog'); + }); + + it ('Removes centered dialog on rollback', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'First dialog', + 'centered This is centered', + 'Third dialog' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('First dialog'); + + cy.proceed (); + cy.get ('centered-dialog').should ('exist'); + cy.get ('centered-dialog').contains ('This is centered'); + + cy.rollback (); + cy.get ('centered-dialog').should ('not.exist'); + cy.get ('text-box').contains ('First dialog'); + }); + + it ('Displays the character\'s name and side image correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y:happy Hello!' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Hello!'); + cy.get ('[data-content="character-expression"]').should ('be.visible'); + }); + + it ('Displays the character\'s default side image correctly when an image path is provided', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'yd1 Hello!' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Hello!'); + cy.get ('[data-content="character-expression"]').should ('be.visible'); + }); + + it ('Displays the character\'s default side image correctly when an expression name is provided', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'yd2 Hello!' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Hello!'); + cy.get ('[data-content="character-expression"]').should ('be.visible'); + }); + + it ('Changes the character name color correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y Hello!', + 'm Hi!' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Hello!'); + cy.get ('[data-content="character-name"]').should ('have.css', 'color', 'rgb(0, 0, 255)'); + + cy.proceed (); + + cy.get ('text-box').contains ('Hi!'); + cy.get ('[data-content="character-name"]').should ('have.css', 'color', 'rgb(255, 255, 255)'); + }); + + it ('Adds the dialog-footer class to the last dialog of an nvl character when the character speaking changes', function () { + cy.loadTestAssets ({nvl: true}); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y:happy Hello!', + 'y Some other text', + 'y More text', + 'm This is a dialog', + 'm this is another dialog', + 'nvl Now the narrator' + ] + }); + + cy.start (); + cy.wait (100); + cy.proceed (); + cy.wait (100); + cy.proceed (); + cy.wait (100); + + cy.proceed (); + cy.wait (100); + cy.get ('[data-spoke="y"]').last().should ('have.class', 'nvl-dialog-footer'); + + cy.proceed (); + cy.wait (100); + cy.proceed (); + cy.wait (100); + cy.proceed (); + cy.wait (100); + cy.get ('[data-spoke="m"]').last().should ('have.class', 'nvl-dialog-footer'); + }); + + it ('Restores NVL dialogs correctly when rolling back through scenes', function () { + cy.loadTestAssets ({nvl: true}); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show scene black', + 'nvl Zero', + 'nvl One', + 'nvl Two', + 'show scene red', + 'nvl Three', + 'show scene green', + 'nvl Four', + ] + }); + cy.start (); + cy.get ('#background').should ('have.css', 'background-color', 'rgb(0, 0, 0)'); + cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 0); + cy.get ('text-box').contains ('Zero'); + cy.proceed (); + cy.get ('text-box').contains ('Zero'); + cy.get ('text-box').contains ('One'); + cy.proceed (); + cy.get ('text-box').contains ('Zero'); + cy.get ('text-box').contains ('One'); + cy.get ('text-box').contains ('Two'); + cy.proceed (); + cy.get ('#background').should ('have.css', 'background-color', 'rgb(255, 0, 0)'); + cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 1); + cy.get ('text-box').contains ('Three'); + cy.proceed (); + cy.get ('#background').should ('have.css', 'background-color', 'rgb(0, 128, 0)'); + cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 2); + cy.get ('text-box').contains ('Four'); + cy.wait (100); + cy.rollback (); + cy.get ('#background').should ('have.css', 'background-color', 'rgb(255, 0, 0)'); + cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 1); + cy.get ('text-box').contains ('Three'); + cy.wait (100); + cy.rollback (); + cy.get ('#background').should ('have.css', 'background-color', 'rgb(0, 0, 0)'); + cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 0); + cy.get ('text-box').contains ('Zero'); + cy.get ('text-box').contains ('One'); + cy.get ('text-box').contains ('Two'); + cy.wait (100); + cy.rollback (); + cy.get ('text-box').contains ('Zero'); + cy.get ('text-box').contains ('One'); + cy.wait (100); + cy.rollback (); + cy.get ('text-box').contains ('Zero'); + }); + + it ('Restores NVL dialogs correctly when rolling back through different textbox modes', function () { + cy.loadTestAssets ({nvl: true}); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'show scene black', + 'nvl One', + 'nvl Two', + 'Three', + 'show scene red', + 'Four', + 'show scene green', + 'nvl Five', + 'show scene black', + 'Six' + ] + }); + cy.start (); + cy.get ('text-box').contains ('Zero'); + cy.proceed (); + cy.get ('#background').should ('have.css', 'background-color', 'rgb(0, 0, 0)'); + cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 0); + cy.get ('text-box').contains ('One'); + cy.proceed (); + cy.get ('text-box').contains ('One'); + cy.get ('text-box').contains ('Two'); + cy.proceed (); + cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 1); + cy.get ('text-box').contains ('Three'); + cy.proceed (); + cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 1); + cy.get ('text-box').contains ('Four'); + cy.proceed (); + cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 1); + cy.get ('text-box').contains ('Five'); + cy.proceed (); + cy.get ('#background').should ('have.css', 'background-color', 'rgb(0, 0, 0)'); + cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 2); + cy.get ('text-box').contains ('Six'); + cy.wait (100); + cy.rollback (); + cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 1); + cy.get ('text-box').contains ('Five'); + cy.wait (100); + cy.rollback (); + cy.get ('text-box').contains ('Four'); + cy.wait (100); + cy.rollback (); + // cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 2); + cy.get ('text-box').contains ('Three'); + cy.wait (100); + cy.rollback (); + cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 0); + cy.get ('text-box').contains ('One'); + cy.get ('text-box').contains ('Two'); + cy.wait (100); + cy.rollback (); + cy.get ('text-box').contains ('One'); + cy.wait (100); + cy.rollback (); + cy.get ('text-box').contains ('Zero'); + }); + + it ('Restores NVL dialogs correctly when rolling back through different textbox modes', function () { + cy.loadTestAssets ({nvl: true}); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show background red', + 'Zero', + 'show scene black', + 'nvl One', + 'nvl Two', + 'show background green', + 'Three', + ] + }); + cy.start (); + cy.get ('text-box').contains ('Zero'); + cy.proceed (); + cy.get ('text-box').contains ('One'); + cy.proceed (); + cy.get ('text-box').contains ('One'); + cy.get ('text-box').contains ('Two'); + cy.proceed (); + cy.get ('text-box').contains ('Three'); + cy.wait (100); + cy.rollback (); + cy.wait (1500); + cy.get ('text-box').contains ('One'); + cy.get ('text-box').contains ('Two'); + cy.wait (100); + cy.rollback (); + cy.wait (1500); + cy.get ('text-box').contains ('One'); + cy.wait (100); + cy.rollback (); + cy.get ('text-box').contains ('Zero'); + }); + + it ('Updates the Dialog Log Correctly', function () { + cy.loadTestAssets ({nvl: true}); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'Two', + 'Three' + ] + }); + cy.start (); + cy.get ('dialog-log').contains ('One'); + cy.proceed (); + + cy.get ('dialog-log').contains ('Two'); + cy.proceed (); + + cy.get ('dialog-log').contains ('Three'); + + cy.rollback (); + cy.get ('dialog-log').contains ('One'); + cy.get ('dialog-log').contains ('Two'); + + cy.rollback (); + cy.get ('dialog-log').contains ('One'); + + }); + + it ('Allows having defaults for the narrator character', function () { + this.monogatari.character('_narrator', { + nvl: true, + }); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'Two', + 'Three' + ] + }); + cy.start (); + + cy.get ('text-box').contains ('One'); + cy.get ('text-box').should ('have.attr', 'mode', 'nvl'); + }); + + it ('Applies custom classes to text-box when specified in dialog syntax', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y:happy:custom-class Hello!', + 'm:sad:another-class|second-class Hi there!' + ] + }); + + cy.start (); + cy.get ('text-box').should ('have.class', 'custom-class'); + cy.get ('text-box').contains ('Hello!'); + + cy.proceed (); + cy.get ('text-box').should ('have.class', 'another-class'); + cy.get ('text-box').should ('have.class', 'second-class'); + cy.get ('text-box').should ('not.have.class', 'custom-class'); + cy.get ('text-box').contains ('Hi there!'); + }); + + it ('Removes custom classes when rolling back dialogs', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y:happy:first-class Hello!', + 'm:sad:second-class Hi there!' + ] + }); + + cy.start (); + cy.get ('text-box').should ('have.class', 'first-class'); + cy.get ('text-box').contains ('Hello!'); + + cy.proceed (); + cy.get ('text-box').should ('have.class', 'second-class'); + cy.get ('text-box').should ('not.have.class', 'first-class'); + cy.get ('text-box').contains ('Hi there!'); + + cy.rollback (); + cy.get ('text-box').should ('have.class', 'first-class'); + cy.get ('text-box').should ('not.have.class', 'second-class'); + cy.get ('text-box').contains ('Hello!'); + }); + + it ('Applies custom classes to centered dialog', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'centered:normal:centered-style This is a centered dialog!', + 'y:happy:character-style Hello from character!' + ] + }); + + cy.start (); + cy.get ('centered-dialog').should ('have.class', 'centered-style'); + cy.get ('centered-dialog').contains ('This is a centered dialog!'); + + cy.proceed (); + cy.get ('text-box').should ('have.class', 'character-style'); + cy.get ('text-box').should ('not.have.class', 'centered-style'); + cy.get ('text-box').contains ('Hello from character!'); + }); + + it ('Applies custom classes to NVL dialog', function () { + cy.loadTestAssets ({nvl: true}); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'nvl:normal:nvl-style This is an NVL dialog!', + 'y:happy:character-style Hello from character!' + ] + }); + + cy.start (); + cy.get ('text-box').should ('have.class', 'nvl-style'); + cy.get ('text-box').contains ('This is an NVL dialog!'); + + cy.proceed (); + cy.get ('text-box').should ('have.class', 'character-style'); + cy.get ('text-box').should ('not.have.class', 'nvl-style'); + cy.get ('text-box').contains ('Hello from character!'); + }); + + it ('Supports multiple classes with pipe separator', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y:happy:class1|class2|class3 Multiple classes test!' + ] + }); + + cy.start (); + cy.get ('text-box').should ('have.class', 'class1'); + cy.get ('text-box').should ('have.class', 'class2'); + cy.get ('text-box').should ('have.class', 'class3'); + cy.get ('text-box').contains ('Multiple classes test!'); + }); + + it ('Sets classes correctly after loading a save', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y:happy:highlight Hello!', + 'm:sad:warning|urgent This is important!', + 'centered:normal:centered-style Centered message!' + ] + }); + + cy.start (); + cy.get ('text-box').should ('have.class', 'highlight'); + cy.get ('text-box').contains ('Hello!'); + + cy.proceed (); + cy.get ('text-box').should ('have.class', 'warning'); + cy.get ('text-box').should ('have.class', 'urgent'); + cy.get ('text-box').contains ('This is important!'); + + cy.save(1).then(() => { + cy.load(1).then(() => { + cy.get ('text-box').should ('have.class', 'warning'); + cy.get ('text-box').should ('have.class', 'urgent'); + cy.get ('text-box').contains ('This is important!'); + }); + }); + }); + + it ('Removes classes after ending the game', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y:happy:highlight One', + 'm:sad:warning Two', + 'centered:normal:centered-style Three', + 'end' + ] + }); + + cy.start (); + cy.get ('text-box').should ('have.class', 'highlight'); + cy.get ('text-box').contains ('One'); + + cy.proceed (); + cy.get ('text-box').should ('have.class', 'warning'); + cy.get ('text-box').contains ('Two'); + + cy.proceed (); + cy.get ('centered-dialog').should ('have.class', 'centered-style'); + cy.get ('centered-dialog').contains ('Three'); + + + cy.proceed (); + + cy.get ('[data-component="main-menu"]').should ('be.visible'); + + cy.get ('text-box').should ('not.have.class', 'highlight'); + cy.get ('text-box').should ('not.have.class', 'warning'); + cy.get ('text-box').should ('not.have.class', 'centered-style'); + cy.get ('centered-dialog').should ('not.exist'); + }); + + it ('Types dialog character by character when TypeAnimation is enabled', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 50); + this.monogatari.script ({ + 'Start': [ + 'Hello World!' + ] + }); + + cy.start (); + // Initially, not all characters should be visible + cy.get ('type-writer').should ('exist'); + // Wait for animation to complete + cy.wait (700); + cy.get ('text-box').contains ('Hello World!'); + }); + + it ('Stops typing and shows full text when clicking during animation', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 100); + this.monogatari.script ({ + 'Start': [ + 'This is a very long dialog that would take a while to type out completely.', + 'Second dialog' + ] + }); + + cy.start (); + cy.get ('type-writer').should ('exist'); + // Click to skip animation + cy.wait (200); + cy.proceed (); + // Full text should now be visible + cy.get ('text-box').contains ('This is a very long dialog that would take a while to type out completely.'); + + // Next proceed should advance to next dialog + cy.proceed (); + cy.get ('text-box').contains ('Second dialog'); + }); + + it ('Handles special characters in dialog correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + '"Hello!" said the character.', + 'Special chars: <>&\'', + 'Unicode: こんにごは 你儽 Ł…Ų±Ų­ŲØŲ§' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('"Hello!" said the character.'); + + cy.proceed (); + cy.get ('text-box').contains ('Special chars:'); + + cy.proceed (); + cy.get ('text-box').contains ('Unicode: こんにごは 你儽 Ł…Ų±Ų­ŲØŲ§'); + }); + + it ('Shows character expression side image correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y:happy Yui is happy!', + 'y:sad Now Yui is sad.' + ] + }); + + cy.start (); + cy.get ('[data-content="character-expression"]').should ('be.visible'); + cy.get ('text-box').contains ('Yui is happy!'); + + cy.proceed (); + cy.get ('[data-content="character-expression"]').should ('be.visible'); + cy.get ('text-box').contains ('Now Yui is sad.'); + }); + + it ('Handles dialog without expression gracefully', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y Hello without expression!', + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Hello without expression!'); + }); + + it ('Updates finished_typing global correctly with animation', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 25); + this.monogatari.script ({ + 'Start': [ + 'Hi', + 'Done' + ] + }); + + cy.start (); + // Check that finished_typing is eventually true after animation + cy.wait (200); + cy.wrap (this.monogatari).invoke ('global', 'finished_typing').should ('eq', true); + + cy.proceed (); + cy.get ('text-box').contains ('Done'); + }); + + it ('Updates finished_typing global correctly without animation', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Instant text', + 'Done' + ] + }); + + cy.start (); + cy.wrap (this.monogatari).invoke ('global', 'finished_typing').should ('eq', true); + cy.get ('text-box').contains ('Instant text'); + }); + + it ('Handles text-box modes correctly', function () { + cy.loadTestAssets ({nvl: true}); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Normal ADV mode', + 'nvl This is NVL mode', + 'centered This is centered', + 'Back to normal' + ] + }); + + cy.start (); + cy.get ('text-box').should ('have.attr', 'mode', 'adv'); + cy.get ('text-box').contains ('Normal ADV mode'); + + cy.proceed (); + cy.get ('text-box').should ('have.attr', 'mode', 'nvl'); + cy.get ('text-box').contains ('This is NVL mode'); + + cy.proceed (); + cy.get ('centered-dialog').should ('exist'); + + cy.proceed (); + cy.get ('text-box').should ('have.attr', 'mode', 'adv'); + cy.get ('text-box').contains ('Back to normal'); + }); + + it ('Clears NVL text when switching to ADV mode', function () { + cy.loadTestAssets ({nvl: true}); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'nvl First NVL line', + 'nvl Second NVL line', + 'This is ADV mode now' + ] + }); + + cy.start (); + cy.get ('text-box').should ('have.attr', 'mode', 'nvl'); + cy.get ('text-box').contains ('First NVL line'); + + cy.proceed (); + cy.get ('text-box').contains ('First NVL line'); + cy.get ('text-box').contains ('Second NVL line'); + + cy.proceed (); + cy.get ('text-box').should ('have.attr', 'mode', 'adv'); + cy.get ('text-box').contains ('This is ADV mode now'); + cy.get ('text-box').should ('not.contain', 'First NVL line'); + }); + + it ('Handles voice playback with dialog', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'play voice sample', + 'y Hello with voice!', + 'y Next line stops voice' + ] + }); + + cy.start (); + cy.proceed (); + cy.get ('text-box').contains ('Hello with voice!'); + + cy.proceed (); + cy.get ('text-box').contains ('Next line stops voice'); + }); + + it ('Handles long dialogs with scrolling', function () { + this.monogatari.setting ('TypeAnimation', false); + const longText = 'This is a very long dialog. '.repeat (20); + this.monogatari.script ({ + 'Start': [ + longText + ] + }); + + cy.start (); + cy.get ('text-box').contains ('This is a very long dialog.'); + }); + + it ('Preserves dialog entries in dialog log component', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y First message', + 'm Second message', + 'Third message' + ] + }); + + cy.start (); + cy.get ('dialog-log [data-spoke]').should ('have.length', 1); + + cy.proceed (); + cy.get ('dialog-log [data-spoke]').should ('have.length', 2); + + cy.proceed (); + cy.get ('dialog-log [data-spoke]').should ('have.length', 3); + + cy.rollback (); + cy.get ('dialog-log [data-spoke]').should ('have.length', 2); + }); + + it ('Correctly identifies when dialog is from same character', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y Hello!', + 'y Still talking', + 'm Different character' + ] + }); + + cy.start (); + cy.get ('[data-content="character-name"]').contains ('Yui'); + + cy.proceed (); + cy.get ('[data-content="character-name"]').contains ('Yui'); + + cy.proceed (); + cy.get ('[data-content="character-name"]').contains ('Mio'); + }); + + it ('Handles inline actions in dialog text', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 25); + this.monogatari.script ({ + 'Start': [ + 'Hello {pause:100} World!' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('text-box').contains ('Hello'); + cy.get ('text-box').contains ('World!'); + }); + + it ('Handles speed changes in dialog text', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 25); + this.monogatari.script ({ + 'Start': [ + 'Fast{speed:200}...slow{speed:25}...fast again!' + ] + }); + + cy.start (); + cy.wait (1000); + cy.get ('text-box').contains ('Fast'); + cy.get ('text-box').contains ('slow'); + cy.get ('text-box').contains ('fast again!'); + }); + + // ========================================================================= + // Text Effect Tests + // ========================================================================= + + describe ('Text Effects', function () { + + it ('Applies shake effect to characters', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + 'Hello {shake}shaking{/shake} world!' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('text-box').contains ('Hello'); + cy.get ('text-box').contains ('shaking'); + cy.get ('text-box').contains ('world!'); + // Check that shake effect data attribute is applied + cy.get ('type-character[data-effect-shake]').should ('have.length.at.least', 1); + }); + + it ('Applies wave effect to characters', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + 'This is {wave}wavy text{/wave}!' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('text-box').contains ('wavy text'); + cy.get ('type-character[data-effect-wave]').should ('have.length.at.least', 1); + }); + + it ('Applies glitch effect to characters', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + 'A {glitch}corrupted{/glitch} message' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('text-box').contains ('corrupted'); + cy.get ('type-character[data-effect-glitch]').should ('have.length.at.least', 1); + }); + + it ('Applies emotion preset effects', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + '{angry}I AM FURIOUS!{/angry}' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('text-box').contains ('I AM FURIOUS!'); + cy.get ('type-character[data-effect-angry]').should ('have.length.at.least', 1); + }); + + it ('Applies emphasis effects (bold, italic, big)', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + 'This is {bold}important{/bold} and {italic}emphasized{/italic}!' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('text-box').contains ('important'); + cy.get ('text-box').contains ('emphasized'); + cy.get ('type-character[data-effect-bold]').should ('have.length.at.least', 1); + cy.get ('type-character[data-effect-italic]').should ('have.length.at.least', 1); + }); + + it ('Applies reveal style effects', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + 'The {redacted}CLASSIFIED{/redacted} information' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('text-box').contains ('CLASSIFIED'); + cy.get ('type-character[data-effect-redacted]').should ('have.length.at.least', 1); + }); + + it ('Supports multiple effects on different parts of text', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + '{shake}Scary{/shake} and {happy}joyful{/happy}!' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('text-box').contains ('Scary'); + cy.get ('text-box').contains ('joyful'); + cy.get ('type-character[data-effect-shake]').should ('have.length.at.least', 1); + cy.get ('type-character[data-effect-happy]').should ('have.length.at.least', 1); + }); + + it ('Strips effect markers when TypeAnimation is disabled', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Hello {shake}world{/shake}!' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Hello world!'); + // Effect markers should not appear in text + cy.get ('text-box').should ('not.contain', '{/shake}'); + cy.get ('text-box').should ('not.contain', '{/'); + }); + + it ('Strips multiple effect markers when TypeAnimation is disabled', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + '{angry}FURIOUS{/angry} and {wave}wavy{/wave} and {glitch}glitchy{/glitch}!' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('FURIOUS and wavy and glitchy!'); + cy.get ('text-box').should ('not.contain', '{/angry}'); + cy.get ('text-box').should ('not.contain', '{/wave}'); + cy.get ('text-box').should ('not.contain', '{/glitch}'); + }); + + it ('Combines effects with pause and speed actions', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + 'Hello{pause:50} {shake}shaking{/shake}{speed:50}...done!' + ] + }); + + cy.start (); + cy.wait (800); + cy.get ('text-box').contains ('Hello'); + cy.get ('text-box').contains ('shaking'); + cy.get ('text-box').contains ('done!'); + cy.get ('type-character[data-effect-shake]').should ('have.length.at.least', 1); + }); + + it ('Applies effects in centered dialog', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('CenteredTypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + 'centered {mysterious}A mysterious message{/mysterious}' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('centered-dialog').should ('exist'); + cy.get ('centered-dialog').contains ('A mysterious message'); + cy.get ('centered-dialog type-character[data-effect-mysterious]').should ('have.length.at.least', 1); + }); + + it ('Applies effects in NVL mode', function () { + cy.loadTestAssets ({nvl: true}); + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('NVLTypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + 'nvl {scared}Trembling with fear{/scared}' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('text-box').contains ('Trembling with fear'); + cy.get ('type-character[data-effect-scared]').should ('have.length.at.least', 1); + }); + + it ('Handles all shake variants', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + '{shake-hard}HARD{/shake-hard} {shake-slow}slow{/shake-slow} {shake-little}little{/shake-little}' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('type-character[data-effect-shake-hard]').should ('have.length.at.least', 1); + cy.get ('type-character[data-effect-shake-slow]').should ('have.length.at.least', 1); + cy.get ('type-character[data-effect-shake-little]').should ('have.length.at.least', 1); + }); + + it ('Handles all wave variants', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + '{wave-slow}slow{/wave-slow} {wave-fast}fast{/wave-fast}' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('type-character[data-effect-wave-slow]').should ('have.length.at.least', 1); + cy.get ('type-character[data-effect-wave-fast]').should ('have.length.at.least', 1); + }); + + it ('Handles all glitch variants', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + '{glitch-hard}HARD{/glitch-hard} {glitch-slow}slow{/glitch-slow}' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('type-character[data-effect-glitch-hard]').should ('have.length.at.least', 1); + cy.get ('type-character[data-effect-glitch-slow]').should ('have.length.at.least', 1); + }); + + it ('Handles fade and scale reveal effects', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + '{fade}fading{/fade} {scale}scaling{/scale} {blur}blurry{/blur}' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('type-character[data-effect-fade]').should ('have.length.at.least', 1); + cy.get ('type-character[data-effect-scale]').should ('have.length.at.least', 1); + cy.get ('type-character[data-effect-blur]').should ('have.length.at.least', 1); + }); + + it ('Handles color effects', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + '{rainbow}colorful{/rainbow} {glow}glowing{/glow}' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('type-character[data-effect-rainbow]').should ('have.length.at.least', 1); + cy.get ('type-character[data-effect-glow]').should ('have.length.at.least', 1); + }); + + it ('Handles all emotion presets', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 5); + this.monogatari.script ({ + 'Start': [ + '{happy}joy{/happy} {sad}tears{/sad} {excited}wow{/excited} {whisper}shh{/whisper}' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('type-character[data-effect-happy]').should ('have.length.at.least', 1); + cy.get ('type-character[data-effect-sad]').should ('have.length.at.least', 1); + cy.get ('type-character[data-effect-excited]').should ('have.length.at.least', 1); + cy.get ('type-character[data-effect-whisper]').should ('have.length.at.least', 1); + }); + + it ('Sets char-index CSS variable for staggered animations', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + '{wave}Hello{/wave}' + ] + }); + + cy.start (); + cy.wait (500); + // Check that characters have --char-index CSS variable set + cy.get ('type-character[data-effect-wave]').first ().should (($el) => { + const style = $el[0].style; + expect (style.getPropertyValue ('--char-index')).to.not.be.empty; + }); + }); + + it ('Effects work with character dialog', function () { + this.monogatari.setting ('TypeAnimation', true); + this.monogatari.setting ('TypeAnimationSpeed', 10); + this.monogatari.script ({ + 'Start': [ + 'y:happy {excited}I am so happy!{/excited}' + ] + }); + + cy.start (); + cy.wait (500); + cy.get ('[data-content="character-name"]').contains ('Yui'); + cy.get ('text-box').contains ('I am so happy!'); + cy.get ('type-character[data-effect-excited]').should ('have.length.at.least', 1); + }); + + it ('Strips all effect types when animation disabled', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + '{shake}a{/shake}{wave}b{/wave}{glitch}c{/glitch}{bold}d{/bold}{angry}e{/angry}{redacted}f{/redacted}{pause:100}{speed:50}g' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('abcdefg'); + cy.get ('text-box').should ('not.contain', '{/'); + cy.get ('text-box').should ('not.contain', '{pause'); + cy.get ('text-box').should ('not.contain', '{speed'); + }); + + }); + +}); \ No newline at end of file diff --git a/cypress/integration/actions/functions.spec.js b/cypress/e2e/actions/functions.spec.js similarity index 100% rename from cypress/integration/actions/functions.spec.js rename to cypress/e2e/actions/functions.spec.js diff --git a/cypress/integration/actions/hide_canvas.spec.js b/cypress/e2e/actions/hide_canvas.spec.js similarity index 100% rename from cypress/integration/actions/hide_canvas.spec.js rename to cypress/e2e/actions/hide_canvas.spec.js diff --git a/cypress/integration/actions/hide_character.spec.js b/cypress/e2e/actions/hide_character.spec.js similarity index 91% rename from cypress/integration/actions/hide_character.spec.js rename to cypress/e2e/actions/hide_character.spec.js index 7b70cb3..ae77a2c 100644 --- a/cypress/integration/actions/hide_character.spec.js +++ b/cypress/e2e/actions/hide_character.spec.js @@ -119,17 +119,32 @@ context ('Hide Character', function () { cy.get ('[data-sprite="normal"]').should ('be.visible'); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at center with fadeIn end-fadeOut']); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at center with fadeIn end-fadeOut']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at center with fadeIn end-fadeOut', + previous: null + } + ]); cy.get ('text-box').contains ('Before'); cy.proceed (); cy.get ('[data-sprite="normal"]').should ('not.exist'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at center with fadeIn end-fadeOut']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at center with fadeIn end-fadeOut', + previous: null + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('be.empty'); cy.get ('text-box').contains ('After'); cy.rollback (); cy.get ('[data-sprite="normal"]').should ('be.visible'); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at center with fadeIn end-fadeOut']); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at center with fadeIn end-fadeOut']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at center with fadeIn end-fadeOut', + previous: null + } + ]); cy.get ('text-box').contains ('Before'); }); }); \ No newline at end of file diff --git a/cypress/integration/actions/hide_image.spec.js b/cypress/e2e/actions/hide_image.spec.js similarity index 100% rename from cypress/integration/actions/hide_image.spec.js rename to cypress/e2e/actions/hide_image.spec.js diff --git a/cypress/integration/actions/hide_particles.spec.js b/cypress/e2e/actions/hide_particles.spec.js similarity index 85% rename from cypress/integration/actions/hide_particles.spec.js rename to cypress/e2e/actions/hide_particles.spec.js index 701652c..23202b2 100644 --- a/cypress/integration/actions/hide_particles.spec.js +++ b/cypress/e2e/actions/hide_particles.spec.js @@ -21,14 +21,14 @@ context ('Hide Particles', function () { cy.wrap (this.monogatari).invoke ('history', 'particle').should ('deep.equal', ['show particles snow']); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', 'show particles snow'); - cy.get ('.tsparticles-canvas-el').should ('be.visible'); + cy.get ('[data-ui="particles"] canvas').should ('be.visible'); cy.get ('text-box').contains ('One'); cy.proceed (); cy.wrap (this.monogatari).invoke ('history', 'particle').should ('deep.equal', ['show particles snow']); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', ''); - cy.get ('.tsparticles-canvas-el').should ('not.exist'); + cy.get ('[data-ui="particles"] canvas').should ('not.exist'); cy.get ('text-box').contains ('Two'); }); @@ -47,21 +47,21 @@ context ('Hide Particles', function () { cy.wrap (this.monogatari).invoke ('history', 'particle').should ('deep.equal', ['show particles snow']); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', 'show particles snow'); - cy.get ('.tsparticles-canvas-el').should ('be.visible'); + cy.get ('[data-ui="particles"] canvas').should ('be.visible'); cy.get ('text-box').contains ('One'); cy.proceed (); cy.wrap (this.monogatari).invoke ('history', 'particle').should ('deep.equal', ['show particles snow']); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', ''); - cy.get ('.tsparticles-canvas-el').should ('not.exist'); + cy.get ('[data-ui="particles"] canvas').should ('not.exist'); cy.get ('text-box').contains ('Two'); cy.rollback (); cy.wrap (this.monogatari).invoke ('history', 'particle').should ('deep.equal', ['show particles snow']); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', 'show particles snow'); - cy.get ('.tsparticles-canvas-el').should ('be.visible'); + cy.get ('[data-ui="particles"] canvas').should ('be.visible'); cy.get ('text-box').contains ('One'); }); }); \ No newline at end of file diff --git a/cypress/e2e/actions/hide_textbox.spec.js b/cypress/e2e/actions/hide_textbox.spec.js new file mode 100644 index 0000000..67d0c34 --- /dev/null +++ b/cypress/e2e/actions/hide_textbox.spec.js @@ -0,0 +1,262 @@ +context ('Hide TextBox', function () { + + beforeEach (() => { + cy.open (); + cy.loadTestAssets (); + }); + + it ('Hides the textbox correctly', function () { + this.monogatari.debug.level (0); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'hide textbox', + 'show image polaroid', + 'Two', + 'show textbox', + 'Three' + ] + }); + + cy.start (); + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('One'); + cy.proceed (); + + cy.get ('text-box').should ('not.be.visible'); + cy.get ('text-box').contains ('Two'); + cy.get ('[data-image="polaroid"]').should ('be.visible'); + + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('Three'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + }); + + it ('Updates state correctly when hidden', function () { + this.monogatari.debug.level (0); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'hide textbox', + 'Two' + ] + }); + + cy.start (); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', true); + cy.get ('text-box').should ('not.be.visible'); + }); + + it ('Restores textbox on rollback of hide', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'hide textbox', + 'show image polaroid', + 'show textbox', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('One'); + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('Two'); + + cy.rollback (); + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('One'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + }); + + it ('Keeps textbox hidden through non-dialog actions', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'hide textbox', + 'show image polaroid', + 'show image christmas', + 'show textbox', + 'One' + ] + }); + + cy.start (); + + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('One'); + cy.get ('[data-image="polaroid"]').should ('be.visible'); + cy.get ('[data-image="christmas"]').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + }); + + it ('Preserves hidden state after save and load', function () { + this.monogatari.debug.level (0); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'hide textbox', + 'Two', + 'show textbox', + 'Three', + 'end' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('One'); + cy.proceed (); + + // Textbox should be hidden, save at this point + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', true); + cy.get ('text-box').should ('not.be.visible'); + cy.save (1); + + cy.proceed (); + cy.proceed (); + + cy.get ('[data-component="main-menu"] [data-action="open-screen"][data-open="load"]').click (); + cy.get ('[data-component="load-screen"] [data-component="save-slot"]').first ().click (); + cy.get ('[data-component="game-screen"]').should ('be.visible'); + + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', true); + cy.get ('text-box').should ('not.be.visible'); + }); + + it ('Preserves visible state after save and load when textbox was shown', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'hide textbox', + 'show textbox', + 'Two', + 'Three', + 'end' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('One'); + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('Two'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + cy.save (1); + + cy.proceed (); + cy.proceed (); + + cy.get ('[data-component="main-menu"] [data-action="open-screen"][data-open="load"]').click (); + cy.get ('[data-component="load-screen"] [data-component="save-slot"]').first ().click (); + cy.get ('[data-component="game-screen"]').should ('be.visible'); + + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + cy.get ('text-box').should ('be.visible'); + }); + + it ('Shows FancyError when dialog is shown while textbox is hidden and debug is active', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'hide textbox', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('One'); + cy.proceed (); + + cy.get ('.fancy-error').should ('be.visible'); + }); + + it ('Does not show FancyError when debug level is NONE', function () { + this.monogatari.debug.level (0); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'hide textbox', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('One'); + cy.proceed (); + + // No FancyError should appear + cy.get ('.fancy-error').should ('not.exist'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', true); + }); + + it ('Hides the textbox correctly in NVL mode', function () { + this.monogatari.debug.level (0); + cy.loadTestAssets ({ nvl: true }); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y Hello!', + 'hide textbox', + 'show image polaroid', + 'y Hidden dialog', + 'show textbox', + 'y Back again' + ] + }); + + cy.start (); + cy.get ('text-box').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('element').invoke ('find', 'text-box').invoke ('get', 0).its ('props.mode').should ('equal', 'nvl'); + + cy.proceed (); + + cy.get ('text-box').should ('not.be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', true); + cy.get ('[data-image="polaroid"]').should ('be.visible'); + + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + }); + + it ('Updates state correctly when hidden in NVL mode', function () { + this.monogatari.debug.level (0); + cy.loadTestAssets ({ nvl: true }); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y One', + 'hide textbox', + 'y Two' + ] + }); + + cy.start (); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + cy.get ('text-box').should ('be.visible'); + + cy.proceed (); + + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', true); + cy.get ('text-box').should ('not.be.visible'); + }); +}); diff --git a/cypress/integration/actions/hide_video.spec.js b/cypress/e2e/actions/hide_video.spec.js similarity index 54% rename from cypress/integration/actions/hide_video.spec.js rename to cypress/e2e/actions/hide_video.spec.js index b2c5776..add7334 100644 --- a/cypress/integration/actions/hide_video.spec.js +++ b/cypress/e2e/actions/hide_video.spec.js @@ -22,6 +22,23 @@ context ('Hide Video', function () { cy.get ('[data-video="kirino"]').should ('not.exist'); }); + it ('Removes video element immediately without animation', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino displayable loop', + 'One', + 'hide video kirino', + 'y Tada!' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"]').should ('be.visible'); + cy.proceed (); + cy.get ('[data-video="kirino"]').should ('not.exist'); + }); + it ('Restores video element when rolling back', function () { this.monogatari.setting ('TypeAnimation', false); this.monogatari.script ({ @@ -91,4 +108,91 @@ context ('Hide Video', function () { cy.get ('text-box').contains ('One'); }); + + it ('Updates state correctly when hiding a video', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino displayable loop', + 'One', + 'hide video kirino', + 'Two' + ] + }); + + cy.start (); + cy.wrap (this.monogatari).invoke ('state', 'videos').should ('deep.equal', ['show video kirino displayable loop']); + cy.get ('text-box').contains ('One'); + + cy.proceed (); + cy.wrap (this.monogatari).invoke ('state', 'videos').should ('be.empty'); + cy.get ('text-box').contains ('Two'); + }); + + it ('Preserves history when hiding a video', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino displayable loop', + 'One', + 'hide video kirino', + 'Two' + ] + }); + + cy.start (); + cy.wrap (this.monogatari).invoke ('history', 'video').should ('deep.equal', ['show video kirino displayable loop']); + cy.get ('text-box').contains ('One'); + + cy.proceed (); + // History should still contain the video even after hiding + cy.wrap (this.monogatari).invoke ('history', 'video').should ('deep.equal', ['show video kirino displayable loop']); + cy.get ('text-box').contains ('Two'); + }); + + it ('Hides video with animation class', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino displayable loop', + 'One', + 'hide video kirino with fadeOut', + 'Two' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"]').should ('be.visible'); + cy.get ('text-box').contains ('One'); + + cy.proceed (); + // After animation ends, video should be removed + cy.get ('[data-video="kirino"]').should ('not.exist'); + cy.get ('text-box').contains ('Two'); + }); + + it ('Hides only the specified video when multiple exist', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino displayable loop', + 'show video dandelion displayable loop', + 'One', + 'hide video kirino', + 'Two' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"]').should ('be.visible'); + cy.get ('[data-video="dandelion"]').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'videos').should ('have.length', 2); + cy.get ('text-box').contains ('One'); + + cy.proceed (); + cy.get ('[data-video="kirino"]').should ('not.exist'); + cy.get ('[data-video="dandelion"]').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'videos').should ('deep.equal', ['show video dandelion displayable loop']); + cy.get ('text-box').contains ('Two'); + }); }); diff --git a/cypress/e2e/actions/input.spec.js b/cypress/e2e/actions/input.spec.js new file mode 100644 index 0000000..cdee7f4 --- /dev/null +++ b/cypress/e2e/actions/input.spec.js @@ -0,0 +1,646 @@ +context ('Input', function () { + + beforeEach (() => { + cy.open (); + }); + + it ('Saves data and rolls back correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Before', + { + 'Input': { + 'Text': 'Input', + 'Validation': function (input) { + return input.trim ().length > 0; + }, + 'Save': function (input) { + this.storage ({ + player: { + name: input + } + }); + return true; + }, + 'Revert': function () { + this.storage ({ + player: { + name: '' + } + }); + }, + 'Warning': 'You must enter a name!' + } + }, + 'After {{player.name}}' + ] + }); + + cy.start (); + cy.wrap (this.monogatari).invoke ('storage', 'player').should ('deep.equal', { name: '' }); + cy.get ('text-box').contains ('Before'); + cy.proceed (); + + cy.get ('text-input').should ('exist'); + cy.get ('[data-content="message"]').contains ('Input'); + cy.get ('[data-content="field"]').should ('be.visible'); + cy.get ('[data-content="field"]').type ('My Name'); + + cy.get ('[type="submit"]').click (); + + cy.wrap (this.monogatari).invoke ('storage', 'player').should ('deep.equal', { name: 'My Name' }); + cy.get ('text-input').should ('not.exist'); + + cy.get ('text-box').contains ('After My Name'); + + cy.rollback (); + + cy.get ('text-input').should ('exist'); + cy.get ('[data-content="message"]').contains ('Input'); + cy.get ('[data-content="field"]').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('storage', 'player').should ('deep.equal', { name: '' }); + + cy.rollback (); + + cy.wrap (this.monogatari).invoke ('storage', 'player').should ('deep.equal', { name: '' }); + cy.get ('text-box').contains ('Before'); + + }); + + it ('Shows the default value when provided', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + { + 'Input': { + 'Text': 'Input', + 'Default': 'My Name', + 'Validation': function (input) { + return input.trim ().length > 0; + }, + 'Save': function (input) { + this.storage ({ + player: { + name: input + } + }); + return true; + }, + 'Revert': function () { + this.storage ({ + player: { + name: '' + } + }); + }, + 'Warning': 'You must enter a name!' + } + }, + ] + }); + + cy.start (); + + cy.get ('text-input').should ('exist'); + cy.get ('[data-content="message"]').contains ('Input'); + cy.get ('[data-content="field"]').should ('be.visible'); + cy.get ('[data-content="field"]').should ('have.value','My Name'); + }); + + it ('Shows a warning when the Validation function returns false', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + { + 'Input': { + 'Text': 'Input', + 'Validation': function (input) { + return input.trim ().length > 0; + }, + 'Save': function (input) { + this.storage ({ + player: { + name: input + } + }); + return true; + }, + 'Revert': function () { + this.storage ({ + player: { + name: '' + } + }); + }, + 'Warning': 'You must enter a name!' + } + }, + ] + }); + + cy.start (); + + cy.get ('text-input').should ('exist'); + cy.get ('[data-content="message"]').contains ('Input'); + cy.get ('[data-content="field"]').should ('be.visible'); + cy.get ('[type="submit"]').click (); + + cy.get ('[data-content="warning"]').contains ('You must enter a name!'); + }); + + it ('Shows a timer when one is provided', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + { + 'Input': { + 'Text': 'Input', + 'Validation': function (input) { + return input.trim ().length > 0; + }, + 'Save': function (input) { + this.storage ({ + player: { + name: input + } + }); + return true; + }, + 'Revert': function () { + this.storage ({ + player: { + name: '' + } + }); + }, + 'Timer': { + // Time in milliseconds + time: 5000, + // The function to run when the time is over + callback: () => { + // Get all choices being shown and that are not disabled + // const choices = window.monogatari.element ().find ('[data-choice]:not([disabled])'); + + // // Pick one of those options randomly + // const random = choices.get (window.monogatari.random (0, choices.length - 1)); + + // // Fake a click on it + // random.click (); + + // Promise friendly! + return Promise.resolve (); + } + }, + 'Warning': 'You must enter a name!' + } + }, + 'Two', + ] + }); + + cy.start (); + + cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('equal', undefined); + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + cy.get ('text-input').should ('exist'); + cy.get ('[data-content="message"]').contains ('Input'); + cy.get ('[data-content="field"]').should ('be.visible'); + cy.get ('timer-display').should ('be.visible'); + + cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('not.equal', undefined); + + cy.get ('[data-content="field"]').type ('My Name'); + + cy.get ('[type="submit"]').click (); + + cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('equal', undefined); + cy.get ('text-box').contains ('Two'); + + cy.rollback (); + + cy.get ('text-input').should ('exist'); + cy.get ('[data-content="message"]').contains ('Input'); + cy.get ('[data-content="field"]').should ('be.visible'); + cy.get ('timer-display').should ('be.visible'); + + cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('not.equal', undefined); + + cy.rollback (); + + cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('equal', undefined); + cy.get ('text-box').contains ('One'); + + }); + + it ('Gets filled automatically when timer is done', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + { + 'Input': { + 'Text': 'Input', + 'Validation': function (input) { + return input.trim ().length > 0; + }, + 'Save': function (input) { + this.storage ({ + player: { + name: input + } + }); + return true; + }, + 'Revert': function () { + this.storage ({ + player: { + name: '' + } + }); + }, + 'Timer': { + // Time in milliseconds + time: 5000, + // The function to run when the time is over + callback: function () { + // Get all choices being shown and that are not disabled + const input = this.element ().find ('text-input').get (0); + + input.content ('field').value ('My Name'); + + // // Pick one of those options randomly + const submit = input.element ().find ('button').get (0); + + // // Fake a click on it + submit.click (); + + // Promise friendly! + return Promise.resolve (); + } + }, + 'Warning': 'You must enter a name!' + } + }, + '{{player.name}}', + ] + }); + + cy.start (); + + cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('equal', undefined); + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + cy.get ('text-input').should ('exist'); + cy.get ('[data-content="message"]').contains ('Input'); + cy.get ('[data-content="field"]').should ('be.visible'); + cy.get ('timer-display').should ('be.visible'); + + cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('not.equal', undefined); + + cy.wait (6000); + + cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('equal', undefined); + cy.get ('text-box').contains ('My Name'); + + cy.rollback (); + + cy.get ('text-input').should ('exist'); + cy.get ('[data-content="message"]').contains ('Input'); + cy.get ('[data-content="field"]').should ('be.visible'); + cy.get ('timer-display').should ('be.visible'); + + cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('not.equal', undefined); + + cy.rollback (); + + cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('equal', undefined); + cy.get ('text-box').contains ('One'); + + }); + + it ('Renders a select input with options', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + { + 'Input': { + 'Text': 'Choose your class', + 'Type': 'select', + 'Options': [ + { value: 'warrior', label: 'Warrior' }, + { value: 'mage', label: 'Mage' }, + { value: 'rogue', label: 'Rogue' } + ], + 'Default': 'mage', + 'Save': function (input) { + this.storage ({ + player: { + class: input + } + }); + return true; + }, + 'Revert': function () { + this.storage ({ + player: { + class: '' + } + }); + } + } + }, + 'You chose {{player.class}}' + ] + }); + + cy.start (); + + cy.get ('text-input').should ('exist'); + cy.get ('[data-content="message"]').contains ('Choose your class'); + cy.get ('select[data-content="field"]').should ('be.visible'); + cy.get ('select[data-content="field"]').should ('have.value', 'mage'); + cy.get ('select[data-content="field"] option').should ('have.length', 3); + + cy.get ('select[data-content="field"]').select ('warrior'); + cy.get ('[type="submit"]').click (); + + cy.wrap (this.monogatari).invoke ('storage', 'player').its ('class').should ('equal', 'warrior'); + cy.get ('text-box').contains ('You chose warrior'); + }); + + it ('Renders radio buttons with options', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + { + 'Input': { + 'Text': 'Choose difficulty', + 'Type': 'radio', + 'Options': [ + { value: 'easy', label: 'Easy' }, + { value: 'normal', label: 'Normal' }, + { value: 'hard', label: 'Hard' } + ], + 'Default': 'normal', + 'Save': function (input) { + this.storage ({ + game: { + difficulty: input + } + }); + return true; + }, + 'Revert': function () { + this.storage ({ + game: { + difficulty: '' + } + }); + } + } + }, + 'Difficulty: {{game.difficulty}}' + ] + }); + + cy.start (); + + cy.get ('text-input').should ('exist'); + cy.get ('[data-content="message"]').contains ('Choose difficulty'); + cy.get ('input[type="radio"][data-content="field"]').should ('have.length', 3); + cy.get ('input[type="radio"][value="normal"]').should ('be.checked'); + + cy.get ('input[type="radio"][value="hard"]').check (); + cy.get ('[type="submit"]').click (); + + cy.wrap (this.monogatari).invoke ('storage', 'game').its ('difficulty').should ('equal', 'hard'); + cy.get ('text-box').contains ('Difficulty: hard'); + }); + + it ('Renders checkboxes with options and returns array', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + { + 'Input': { + 'Text': 'Select your skills', + 'Type': 'checkbox', + 'Options': [ + { value: 'sword', label: 'Sword Fighting' }, + { value: 'magic', label: 'Magic' }, + { value: 'stealth', label: 'Stealth' } + ], + 'Save': function (input) { + this.storage ({ + player: { + skills: input + } + }); + return true; + }, + 'Revert': function () { + this.storage ({ + player: { + skills: [] + } + }); + } + } + }, + 'Done' + ] + }); + + cy.start (); + + cy.get ('text-input').should ('exist'); + cy.get ('[data-content="message"]').contains ('Select your skills'); + cy.get ('input[type="checkbox"][data-content="field"]').should ('have.length', 3); + + cy.get ('input[type="checkbox"][value="sword"]').check (); + cy.get ('input[type="checkbox"][value="magic"]').check (); + cy.get ('[type="submit"]').click (); + + cy.wrap (this.monogatari).invoke ('storage', 'player').its ('skills').should ('deep.equal', ['sword', 'magic']); + cy.get ('text-box').contains ('Done'); + }); + + it ('Renders a textarea input', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + { + 'Input': { + 'Text': 'Write your backstory', + 'Type': 'textarea', + 'Default': 'Once upon a time...', + 'Validation': function (input) { + return input.trim ().length > 0; + }, + 'Save': function (input) { + this.storage ({ + player: { + backstory: input + } + }); + return true; + }, + 'Revert': function () { + this.storage ({ + player: { + backstory: '' + } + }); + }, + 'Warning': 'Please write something!' + } + }, + 'Done' + ] + }); + + cy.start (); + + cy.get ('text-input').should ('exist'); + cy.get ('[data-content="message"]').contains ('Write your backstory'); + cy.get ('textarea[data-content="field"]').should ('be.visible'); + cy.get ('textarea[data-content="field"]').should ('have.value', 'Once upon a time...'); + + cy.get ('textarea[data-content="field"]').clear ().type ('A hero was born.'); + cy.get ('[type="submit"]').click (); + + cy.wrap (this.monogatari).invoke ('storage', 'player').its ('backstory').should ('equal', 'A hero was born.'); + }); + + it ('Applies custom classes to the input', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + { + 'Input': { + 'Text': 'Enter name', + 'Class': 'custom-class another-class', + 'Validation': function (input) { + return input.trim ().length > 0; + }, + 'Save': function (input) { + this.storage ({ + player: { + name: input + } + }); + return true; + }, + 'Revert': function () { + this.storage ({ + player: { + name: '' + } + }); + }, + 'Warning': 'Required' + } + }, + ] + }); + + cy.start (); + + cy.get ('text-input').should ('exist'); + cy.get ('text-input').should ('have.class', 'custom-class'); + cy.get ('text-input').should ('have.class', 'another-class'); + }); + + it ('Applies custom attributes to the input field', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + { + 'Input': { + 'Text': 'Enter age', + 'Type': 'number', + 'Attributes': { + 'min': 0, + 'max': 120, + 'placeholder': 'Your age' + }, + 'Validation': function (input) { + return input >= 0 && input <= 120; + }, + 'Save': function (input) { + this.storage ({ + player: { + age: parseInt (input, 10) + } + }); + return true; + }, + 'Revert': function () { + this.storage ({ + player: { + age: 0 + } + }); + }, + 'Warning': 'Enter a valid age' + } + }, + ] + }); + + cy.start (); + + cy.get ('text-input').should ('exist'); + cy.get ('input[data-content="field"]').should ('have.attr', 'min', '0'); + cy.get ('input[data-content="field"]').should ('have.attr', 'max', '120'); + cy.get ('input[data-content="field"]').should ('have.attr', 'placeholder', 'Your age'); + }); + + it ('Displays custom action string on the button', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.translation ('English', { + 'Submit': 'Submit' + }); + this.monogatari.script ({ + 'Start': [ + { + 'Input': { + 'Text': 'Enter name', + 'actionString': 'Submit', + 'Validation': function (input) { + return input.trim ().length > 0; + }, + 'Save': function (input) { + this.storage ({ + player: { + name: input + } + }); + return true; + }, + 'Revert': function () { + this.storage ({ + player: { + name: '' + } + }); + }, + 'Warning': 'Required' + } + }, + ] + }); + + cy.start (); + + cy.get ('text-input').should ('exist'); + cy.get ('text-input button[type="submit"]').contains ('Submit'); + }); +}); \ No newline at end of file diff --git a/cypress/integration/actions/next.spec.js b/cypress/e2e/actions/next.spec.js similarity index 100% rename from cypress/integration/actions/next.spec.js rename to cypress/e2e/actions/next.spec.js diff --git a/cypress/integration/actions/pause.spec.js b/cypress/e2e/actions/pause.spec.js similarity index 80% rename from cypress/integration/actions/pause.spec.js rename to cypress/e2e/actions/pause.spec.js index d25436c..77c872a 100644 --- a/cypress/integration/actions/pause.spec.js +++ b/cypress/e2e/actions/pause.spec.js @@ -6,6 +6,47 @@ context ('Pause', function () { cy.window ().its ('Monogatari.default').as ('monogatari'); }); + it ('Pauses sound correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'play sound beep loop', + 'One', + 'pause sound beep', + 'Two' + ] + }); + + cy.start (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 0); + + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('deep.equal', [{ statement: 'play sound beep loop', paused: false }]); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 1); + cy.wrap (this.monogatari.mediaPlayers ('sound', true)).its ('beep.paused').should ('equal', false); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + cy.wait(100); + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('deep.equal', [{ statement: 'play sound beep loop', paused: true }]); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 1); + cy.wrap (this.monogatari.mediaPlayers ('sound', true)).its ('beep.paused').should ('equal', true); + + cy.get ('text-box').contains ('Two'); + + cy.rollback (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('deep.equal', [{ statement: 'play sound beep loop', paused: false }]); + cy.wrap (this.monogatari.mediaPlayers ('sound', true)).its ('beep.paused').should ('equal', false); + }); + it ('Pauses music correctly', function () { this.monogatari.setting ('TypeAnimation', false); this.monogatari.script ({ @@ -36,6 +77,7 @@ context ('Pause', function () { cy.get ('text-box').contains ('One'); cy.proceed (); + cy.wait(100); // Add a small delay to ensure async operations complete cy.wrap (this.monogatari).invoke ('state', 'music').should ('deep.equal', [{ statement: 'play music theme', paused: true }]); cy.wrap (this.monogatari).invoke ('history', 'music').should ('deep.equal', ['play music theme']); cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 1); @@ -89,6 +131,7 @@ context ('Pause', function () { cy.get ('text-box').contains ('One'); cy.proceed (); + cy.wait(100); // Add a small delay to ensure async operations complete cy.wrap (this.monogatari).invoke ('state', 'music').should ('deep.equal', [{ statement: 'play music theme loop', paused: true }, { statement: 'play music subspace loop', paused: true }]); cy.wrap (this.monogatari).invoke ('history', 'music').should ('deep.equal', ['play music theme loop', 'play music subspace loop']); cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 2); @@ -143,6 +186,7 @@ context ('Pause', function () { cy.get ('text-box').contains ('One'); cy.proceed (); + cy.wait(100); // Add a small delay to ensure async operations complete cy.wrap (this.monogatari).invoke ('state', 'music').should ('deep.equal', [{ statement: 'play music theme', paused: true }]); cy.wrap (this.monogatari).invoke ('history', 'music').should ('deep.equal', ['play music theme']); cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 1); @@ -158,6 +202,7 @@ context ('Pause', function () { cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 0); cy.load(1).then(() => { + cy.wait(100); // Add a small delay to ensure media is properly restored cy.wrap (this.monogatari).invoke ('state', 'music').should ('deep.equal', [{ statement: 'play music theme', paused: true }]); cy.wrap (this.monogatari).invoke ('history', 'music').should ('deep.equal', ['play music theme']); cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 1); diff --git a/cypress/integration/actions/play.spec.js b/cypress/e2e/actions/play.spec.js similarity index 55% rename from cypress/integration/actions/play.spec.js rename to cypress/e2e/actions/play.spec.js index 585e89f..9b43e6d 100644 --- a/cypress/integration/actions/play.spec.js +++ b/cypress/e2e/actions/play.spec.js @@ -2,6 +2,7 @@ context ('Play', function () { beforeEach (() => { cy.open (); + cy.clearStorage(); cy.loadTestAssets (); cy.window ().its ('Monogatari.default').as ('monogatari'); }); @@ -12,7 +13,7 @@ context ('Play', function () { 'Start': [ 'Zero', 'play music theme', - 'One', + 'One' ] }); @@ -32,6 +33,7 @@ context ('Play', function () { cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.paused').should ('equal', false); cy.get ('text-box').contains ('One'); + cy.rollback (); cy.wrap (this.monogatari).invoke ('state', 'music').should ('be.empty'); @@ -39,6 +41,89 @@ context ('Play', function () { cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 0); }); + it ('Plays music with loop correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'play music theme loop', + 'One' + ] + }); + + cy.start (); + + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + cy.wrap (this.monogatari).invoke ('state', 'music').should ('deep.equal', [{ statement: 'play music theme loop', paused: false }]); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 1); + cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.loop').should ('equal', true); + + cy.get ('text-box').contains ('One'); + }); + + it ('Plays sound correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'play sound beep', + 'One' + ] + }); + + cy.start (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('history', 'sound').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 0); + + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('deep.equal', [{ statement: 'play sound beep', paused: false }]); + cy.wrap (this.monogatari).invoke ('history', 'sound').should ('deep.equal', ['play sound beep']); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 1); + + cy.get ('text-box').contains ('One'); + + cy.rollback (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('history', 'sound').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 0); + }); + + it ('Plays voice correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'play voice sample', + 'One' + ] + }); + + cy.start (); + + cy.wrap (this.monogatari).invoke ('state', 'voice').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('history', 'voice').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'voice').should ('have.length', 0); + + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + cy.wrap (this.monogatari).invoke ('state', 'voice').should ('deep.equal', [{ statement: 'play voice sample', paused: false }]); + cy.wrap (this.monogatari).invoke ('history', 'voice').should ('deep.equal', ['play voice sample']); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'voice').should ('have.length', 1); + + cy.get ('text-box').contains ('One'); + }); + it ('Plays all music correctly', function () { this.monogatari.setting ('TypeAnimation', false); this.monogatari.script ({ @@ -73,7 +158,16 @@ context ('Play', function () { cy.get ('text-box').contains ('One'); cy.proceed (); - cy.wrap (this.monogatari).invoke ('state', 'music').should ('deep.equal', [{ statement: 'play music theme loop', paused: true }, { statement: 'play music subspace loop', paused: true }]); + cy.wait(100); + cy.wrap(this.monogatari).invoke('history', 'music').should('have.length', 2); + cy.wrap(this.monogatari).invoke('history', 'music').should('deep.equal', [ + 'play music theme loop', + 'play music subspace loop' + ]); + cy.wrap(this.monogatari).invoke('state', 'music').should('deep.equal', [ + { statement: 'play music theme loop', paused: true }, + { statement: 'play music subspace loop', paused: true } + ]); cy.wrap (this.monogatari).invoke ('history', 'music').should ('deep.equal', ['play music theme loop', 'play music subspace loop']); cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 2); cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.paused').should ('equal', true); @@ -162,7 +256,7 @@ context ('Play', function () { it ('Sets player volume correctly', function () { this.monogatari.setting ('TypeAnimation', false); - this.monogatari.preference('Volume').Music = 0.25; + this.monogatari.preference('Volume', { ...this.monogatari.preference('Volume'), Music: 0.25 }); this.monogatari.script ({ 'Start': [ @@ -175,15 +269,15 @@ context ('Play', function () { cy.start (); cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 2); - cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.volume').should ('equal', 0.25); - cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('subspace.volume').should ('equal', 0.075); + cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.volume').should ('be.closeTo', 0.25, 0.001); + cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('subspace.volume').should ('be.closeTo', 0.075, 0.001); cy.get ('text-box').contains ('One'); }); it ('Handles volume change correctly', function () { this.monogatari.setting ('TypeAnimation', false); - this.monogatari.preference('Volume').Music = 0.25; + this.monogatari.preference('Volume', { ...this.monogatari.preference('Volume'), Music: 0.25 }); this.monogatari.script ({ 'Start': [ @@ -196,17 +290,140 @@ context ('Play', function () { cy.start (); cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 2); - cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.volume').should ('equal', 0.25); - cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('subspace.volume').should ('equal', 0.075); + cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.volume').should ('be.closeTo', 0.25, 0.001); + cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('subspace.volume').should ('be.closeTo', 0.075, 0.001); cy.get ('text-box').contains ('One'); cy.get ('[data-component="quick-menu"] [data-open="settings"]').click (); cy.get ('settings-screen').should ('be.visible'); - cy.get('[data-action="set-volume"][data-target="music"]').as('range').invoke('val', 0.7).trigger('mouseover'); - cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.volume').should ('equal', 0.7); - cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('subspace.volume').should ('equal', 0.21); + // Set the range value using native property setting and trigger input event + cy.get('[data-action="set-volume"][data-target="music"]') + .then($input => { + $input[0].value = '0.7'; + + $input[0].dispatchEvent(new Event('click', { bubbles: true })); + }); + + // Use a function to re-evaluate the volume on each retry + const monogatari = this.monogatari; + cy.wrap(null).should(() => { + const players = monogatari.mediaPlayers('music', true); + expect(players.theme.volume).to.be.closeTo(0.7, 0.001); + expect(players.subspace.volume).to.be.closeTo(0.21, 0.001); + }); + }); + + it ('Plays music with fade in correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'play music theme with fade 0.5', + 'One' + ] + }); + + cy.start (); + + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + cy.wrap (this.monogatari).invoke ('state', 'music').should ('deep.equal', [{ statement: 'play music theme with fade 0.5', paused: false }]); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 1); + cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.paused').should ('equal', false); + + cy.get ('text-box').contains ('One'); + }); + + it ('Resumes paused music correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'play music theme loop', + 'One', + 'pause music theme', + 'Two', + 'play music theme', + 'Three' + ] + }); + + cy.start (); + + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.paused').should ('equal', false); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + cy.wait(100); + + cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.paused').should ('equal', true); + + cy.get ('text-box').contains ('Two'); + + cy.proceed (); + + cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.paused').should ('equal', false); + + cy.get ('text-box').contains ('Three'); + }); + + it ('Stops voice on new dialog', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'play voice sample', + 'One', + 'Two' + ] + }); + + cy.start (); + + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'voice').should ('have.length', 1); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + // Voice should be stopped when proceeding to next dialog + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'voice').should ('have.length', 0); + cy.wrap (this.monogatari).invoke ('state', 'voice').should ('be.empty'); + + cy.get ('text-box').contains ('Two'); + }); + + it ('Plays multiple sounds simultaneously', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'play sound beep loop', + 'play sound coin loop', + 'One' + ] + }); + + cy.start (); + + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + // Wait for the dialog to appear first, which confirms all actions have been processed + cy.get ('text-box').contains ('One'); + + // Then check the state - use retries to handle async loading + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('have.length', 2); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 2); }); }); \ No newline at end of file diff --git a/cypress/e2e/actions/preload.spec.js b/cypress/e2e/actions/preload.spec.js new file mode 100644 index 0000000..3dc41a1 --- /dev/null +++ b/cypress/e2e/actions/preload.spec.js @@ -0,0 +1,409 @@ +context ('Preload', function () { + + beforeEach (() => { + cy.open (); + cy.loadTestAssets (); + cy.window ().its ('Monogatari.default').as ('monogatari'); + }); + + it ('Preloads single music asset (non-blocking)', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload music theme', + 'One', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + // Should advance immediately (non-blocking) + cy.get ('text-box').contains ('One'); + + // Wait for async preload to complete + cy.wait (500); + + // Verify audio buffer is cached + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('not.be.undefined'); + }); + + it ('Preloads single music asset (blocking)', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload music theme blocking', + 'One' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + // Wait for blocking preload to complete + cy.wait (500); + + // Should have the buffer cached after blocking preload completes + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('not.be.undefined'); + + cy.get ('text-box').contains ('One'); + }); + + it ('Preloads sound asset', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload sound beep blocking', + 'One' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (500); + + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'sounds/beep').should ('not.be.undefined'); + cy.get ('text-box').contains ('One'); + }); + + it ('Preloads voice asset', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload voice sample blocking', + 'One' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (500); + + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'voices/sample').should ('not.be.undefined'); + cy.get ('text-box').contains ('One'); + }); + + it ('Preloads scene image (non-blocking)', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload scene christmas', + 'One' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + // Should advance immediately (non-blocking) + cy.get ('text-box').contains ('One'); + + // Wait for async preload to complete + cy.wait (500); + + // Verify image is cached (use then() to avoid DOM element tracking issues) + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('scenes/christmas')).to.not.be.undefined; + }); + }); + + it ('Preloads scene image (blocking)', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload scene christmas blocking', + 'One' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (500); + + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('scenes/christmas')).to.not.be.undefined; + }); + cy.get ('text-box').contains ('One'); + }); + + it ('Preloads image asset', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload image polaroid blocking', + 'One' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (500); + + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('images/polaroid')).to.not.be.undefined; + }); + cy.get ('text-box').contains ('One'); + }); + + it ('Preloads character sprite', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload character y happy blocking', + 'One' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (500); + + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('characters/y/happy')).to.not.be.undefined; + }); + cy.get ('text-box').contains ('One'); + }); + + it ('Preloads configured block', function () { + this.monogatari.setting ('TypeAnimation', false); + + // Configure a preload block + this.monogatari.action ('Preload').blocks ({ + 'test_block': { + music: ['theme'], + scenes: ['christmas'] + } + }); + + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload block test_block blocking', + 'One' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (1000); + + // Verify all block assets are cached + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('not.be.undefined'); + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('scenes/christmas')).to.not.be.undefined; + }); + + cy.get ('text-box').contains ('One'); + }); + + it ('Preloads block with character sprites', function () { + this.monogatari.setting ('TypeAnimation', false); + + // Configure a preload block with characters + this.monogatari.action ('Preload').blocks ({ + 'character_block': { + characters: { + 'y': ['happy', 'sad'] + } + } + }); + + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload block character_block blocking', + 'One' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (1000); + + // Verify character sprites are cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('characters/y/happy')).to.not.be.undefined; + expect (this.monogatari.imageCache ('characters/y/sad')).to.not.be.undefined; + }); + + cy.get ('text-box').contains ('One'); + }); + + it ('Play action uses cached audio', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload music theme blocking', + 'One', + 'play music theme loop', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (500); + + // Verify audio is cached + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('not.be.undefined'); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + // Music should be playing using cached buffer + cy.wrap (this.monogatari).invoke ('state', 'music').should ('deep.equal', [{ statement: 'play music theme loop', paused: false }]); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 1); + + cy.get ('text-box').contains ('Two'); + }); + + it ('Does not re-preload already cached assets', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload sound beep blocking', + 'One', + 'preload sound beep blocking', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + // Wait for blocking preload to complete (indicated by text advancing to "One") + cy.get ('text-box').contains ('One'); + + // Capture the cached buffer after blocking preload completes + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'sounds/beep').should ('not.be.undefined').then ((cachedBuffer) => { + cy.proceed (); + // Wait for second blocking preload to complete + cy.get ('text-box').contains ('Two'); + + // Same buffer should still be in cache (not re-fetched) + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'sounds/beep').should ('equal', cachedBuffer); + }); + }); + + it ('Supports custom category registration with existing loader', function () { + this.monogatari.setting ('TypeAnimation', false); + + // Register a custom category 'posters' that uses the 'image' loader + this.monogatari.action ('Preload').registerCategory ('posters', 'image'); + + // Configure AssetsPath for posters (same as images for testing) + const assetsPath = this.monogatari.setting ('AssetsPath'); + assetsPath.posters = 'images'; + this.monogatari.setting ('AssetsPath', assetsPath); + + // Register a poster asset (using an existing image file) + this.monogatari.assets ('posters', { + 'movie_poster': 'blurry_polaroid.jpg' + }); + + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload posters movie_poster blocking', + 'One' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + // Wait for blocking preload to complete (indicated by text advancing to "One") + cy.get ('text-box').contains ('One'); + + // Verify the custom category asset is cached using the image cache + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('posters/movie_poster')).to.not.be.undefined; + }); + }); + + it ('Supports custom category in preload blocks', function () { + this.monogatari.setting ('TypeAnimation', false); + + // Register a custom category + this.monogatari.action ('Preload').registerCategory ('posters', 'image'); + + // Configure AssetsPath for posters + const assetsPath = this.monogatari.setting ('AssetsPath'); + assetsPath.posters = 'images'; + this.monogatari.setting ('AssetsPath', assetsPath); + + // Register poster assets + this.monogatari.assets ('posters', { + 'poster1': 'blurry_polaroid.jpg', + 'poster2': 'christmas.png' + }); + + // Configure a preload block with custom category + this.monogatari.action ('Preload').blocks ({ + 'custom_block': { + posters: ['poster1', 'poster2'], + music: ['theme'] + } + }); + + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload block custom_block blocking', + 'One' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (1000); + + // Verify all block assets are cached including custom category + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('posters/poster1')).to.not.be.undefined; + expect (this.monogatari.imageCache ('posters/poster2')).to.not.be.undefined; + }); + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('not.be.undefined'); + + cy.get ('text-box').contains ('One'); + }); + +}); diff --git a/cypress/integration/actions/reversible_functions.spec.js b/cypress/e2e/actions/reversible_functions.spec.js similarity index 100% rename from cypress/integration/actions/reversible_functions.spec.js rename to cypress/e2e/actions/reversible_functions.spec.js diff --git a/cypress/integration/actions/show_canvas.spec.js b/cypress/e2e/actions/show_canvas.spec.js similarity index 100% rename from cypress/integration/actions/show_canvas.spec.js rename to cypress/e2e/actions/show_canvas.spec.js diff --git a/cypress/integration/actions/show_character.spec.js b/cypress/e2e/actions/show_character.spec.js similarity index 74% rename from cypress/integration/actions/show_character.spec.js rename to cypress/e2e/actions/show_character.spec.js index c178296..c4ead44 100644 --- a/cypress/integration/actions/show_character.spec.js +++ b/cypress/e2e/actions/show_character.spec.js @@ -170,11 +170,25 @@ context ('Show Character', function () { cy.proceed (); cy.get ('[data-sprite="normal"]').should ('be.visible'); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at left']); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + } + ]); cy.proceed (); cy.get ('[data-sprite="angry"]').should ('be.visible'); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y angry at left with fadeIn']); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character y angry at left with fadeIn']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character y angry at left with fadeIn', + previous: 'show character y normal at left' + } + ]); cy.get ('[data-image="polaroid"]').should ('not.exist'); cy.get ('[data-image="christmas.png"]').should ('be.visible'); cy.get ('text-box').contains ('Three'); @@ -188,7 +202,20 @@ context ('Show Character', function () { cy.proceed (); cy.get ('[data-sprite="normal"]').should ('be.visible'); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at left with fadeIn']); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character y angry at left with fadeIn', 'show character y normal at left with fadeIn']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character y angry at left with fadeIn', + previous: 'show character y normal at left' + }, + { + statement: 'show character y normal at left with fadeIn', + previous: 'show character y angry at left with fadeIn' + } + ]); cy.get ('[data-sprite="angry"]').should ('not.exist'); cy.get ('text-box').contains ('Seven'); cy.proceed (); @@ -200,7 +227,16 @@ context ('Show Character', function () { cy.rollback (); cy.get ('[data-sprite="angry"]').should ('be.visible'); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y angry at left with fadeIn']); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character y angry at left with fadeIn']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character y angry at left with fadeIn', + previous: 'show character y normal at left' + } + ]); cy.get ('[data-sprite="normal"]').should ('not.exist'); cy.get ('text-box').contains ('Six'); cy.rollback (); @@ -214,7 +250,12 @@ context ('Show Character', function () { cy.get ('[data-sprite="angry"]').should ('not.exist'); cy.get ('[data-sprite="normal"]').should ('be.visible'); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at left']); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + } + ]); cy.get ('[data-image="polaroid"]').should ('be.visible'); cy.get ('[data-image="christmas.png"]').should ('not.exist'); cy.get ('text-box').contains ('Two'); @@ -279,31 +320,92 @@ context ('Show Character', function () { // Going forward cy.get ('[data-character="y"][data-sprite="normal"]').should ('be.visible'); cy.get ('[data-character="m"][data-sprite="normal"]').should ('be.visible'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); cy.get ('text-box').contains ('One'); cy.proceed (); cy.get ('[data-character="y"][data-sprite="normal"]').should ('be.visible'); cy.get ('[data-character="m"][data-sprite="angry"]').should ('be.visible'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right', 'show character m angry at right']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + }, + { + statement: 'show character m angry at right', + previous: 'show character m normal at right' + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at left', 'show character m angry at right']); cy.get ('text-box').contains ('Two'); cy.proceed (); cy.get ('[data-character="y"][data-sprite="angry"]').should ('be.visible'); cy.get ('[data-character="m"][data-sprite="angry"]').should ('be.visible'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right', 'show character m angry at right', 'show character y angry at left']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + }, + { + statement: 'show character m angry at right', + previous: 'show character m normal at right' + }, + { + statement: 'show character y angry at left', + previous: 'show character y normal at left' + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character m angry at right', 'show character y angry at left']); cy.get ('text-box').contains ('Three'); cy.rollback (); cy.get ('[data-character="y"][data-sprite="normal"]').should ('be.visible'); cy.get ('[data-character="m"][data-sprite="angry"]').should ('be.visible'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right', 'show character m angry at right']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + }, + { + statement: 'show character m angry at right', + previous: 'show character m normal at right' + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character m angry at right', 'show character y normal at left']); cy.get ('text-box').contains ('Two'); cy.rollback (); cy.get ('[data-character="y"][data-sprite="normal"]').should ('be.visible'); cy.get ('[data-character="m"][data-sprite="normal"]').should ('be.visible'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); cy.get ('text-box').contains ('One'); }); @@ -324,7 +426,16 @@ context ('Show Character', function () { // Going forward cy.get ('[data-character="y"][data-sprite="normal"]').should ('be.visible'); cy.get ('[data-character="m"][data-sprite="normal"]').should ('be.visible'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); cy.get ('text-box').contains ('One'); cy.save(1).then(() => { @@ -337,10 +448,73 @@ context ('Show Character', function () { cy.get('game-screen').should ('be.visible'); cy.get ('[data-character="y"][data-sprite="normal"]').should ('be.visible'); cy.get ('[data-character="m"][data-sprite="normal"]').should ('be.visible'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); cy.get ('text-box').contains ('One'); }); }); }); + + it ('Shows the character on rollback only when it was previously visible.', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show character y normal', + 'One', + 'hide character y', + 'show character m normal at center with fadeIn', + 'Two', + 'Three', + 'hide character m', + 'show character y angry at centre with fadeIn', + 'Four', + ] + }); + + cy.start (); + + cy.get ('[data-character="y"][data-sprite="normal"]').should ('be.visible'); + cy.get ('text-box').contains ('One'); + cy.proceed (); + + cy.get ('[data-character="y"]').should ('not.exist'); + cy.get ('[data-character="m"][data-sprite="normal"]').should ('be.visible'); + cy.get ('text-box').contains ('Two'); + cy.proceed (); + + cy.get ('[data-character="y"]').should ('not.exist'); + cy.get ('[data-character="m"][data-sprite="normal"]').should ('be.visible'); + cy.get ('text-box').contains ('Three'); + cy.proceed (); + + cy.get ('[data-character="m"]').should ('not.exist'); + cy.get ('[data-character="y"][data-sprite="angry"]').should ('be.visible'); + cy.get ('text-box').contains ('Four'); + + cy.rollback (); + + cy.get ('[data-character="y"]').should ('not.exist'); + cy.get ('[data-character="m"][data-sprite="normal"]').should ('be.visible'); + cy.get ('text-box').contains ('Three'); + + cy.rollback (); + + cy.get ('text-box').contains ('Two'); + cy.get ('[data-character="y"]').should ('not.exist'); + cy.get ('[data-character="m"][data-sprite="normal"]').should ('be.visible'); + + cy.rollback (); + + cy.get ('[data-character="y"][data-sprite="normal"]').should ('be.visible'); + cy.get ('text-box').contains ('One'); + }); }); diff --git a/cypress/e2e/actions/show_character_layer.spec.js b/cypress/e2e/actions/show_character_layer.spec.js new file mode 100644 index 0000000..8c9f68e --- /dev/null +++ b/cypress/e2e/actions/show_character_layer.spec.js @@ -0,0 +1,485 @@ +context ('Show Character', function () { + + beforeEach (() => { + cy.open (); + cy.loadTestAssets (); + }); + + it ('Displays the character correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'show character y angry_layered with fadeIn', + 'Two', + 'hide character y', + 'Three', + 'show character y angry_layered with fadeIn', + 'Four', + 'hide character y:mouth', + 'Five', + 'show character y happy_layered with fadeIn', + 'Six', + 'show character y:mouth alone with fadeIn', + 'Seven', + 'show character y happy', + 'Eight', + 'show character y happy_layered with fadeIn', + 'Nine' + ] + }); + + cy.start (); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + cy.get ('[data-sprite="angry_layered"]').should ('be.visible'); + cy.get ('[data-sprite="angry_layered"]').should('have.class', 'fadeIn'); + + cy.get ('[data-layer="base"]').should ('be.visible'); + cy.get ('[data-layer="mouth"]').should ('be.visible'); + cy.get ('[data-layer="eyes"]').should ('be.visible'); + + + cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y angry_layered with fadeIn']); + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', [ + 'show character y:base normal', + 'show character y:mouth alone', + 'show character y:eyes alone' + ]); + cy.wrap (this.monogatari).invoke ('history', 'characterLayer').should ('deep.equal', [ + { + parent: 'show character y angry_layered with fadeIn', + layers: [ + { + statement: 'show character y:base normal', + previous: null + }, + { + statement: 'show character y:mouth alone', + previous: null + }, + { + statement: 'show character y:eyes alone', + previous: null + } + ] + } + ]); + + cy.get ('text-box').contains ('Two'); + + cy.proceed(); + + cy.get ('[data-sprite="angry_layered"]').should ('not.exist'); + + cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', []); + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', []); + + cy.get ('text-box').contains ('Three'); + + + cy.proceed(); + + cy.get ('[data-sprite="angry_layered"]').should ('be.visible'); + cy.get ('[data-sprite="angry_layered"]').should('have.class', 'fadeIn'); + + cy.get ('[data-layer="base"]').should ('be.visible'); + cy.get ('[data-layer="mouth"]').should ('be.visible'); + cy.get ('[data-layer="eyes"]').should ('be.visible'); + + + cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y angry_layered with fadeIn']); + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', [ + 'show character y:base normal', + 'show character y:mouth alone', + 'show character y:eyes alone' + ]); + cy.wrap (this.monogatari).invoke ('history', 'characterLayer').should ('deep.equal', [ + { + parent: 'show character y angry_layered with fadeIn', + layers: [ + { + statement: 'show character y:base normal', + previous: null + }, + { + statement: 'show character y:mouth alone', + previous: null + }, + { + statement: 'show character y:eyes alone', + previous: null + } + ] + }, + { + parent: 'show character y angry_layered with fadeIn', + layers: [ + { + statement: 'show character y:base normal', + previous: null + }, + { + statement: 'show character y:mouth alone', + previous: null + }, + { + statement: 'show character y:eyes alone', + previous: null + } + ] + } + ]); + + cy.get ('text-box').contains ('Four'); + + cy.proceed(); + + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', [ + 'show character y:base normal', + 'show character y:eyes alone' + ]); + + cy.get ('[data-layer="mouth"]').should ('not.exist'); + + cy.get ('text-box').contains ('Five'); + + cy.proceed(); + + + cy.get ('[data-sprite="happy_layered"]').should ('be.visible'); + cy.get ('[data-sprite="happy_layered"]').should('have.class', 'fadeIn'); + + cy.get ('[data-layer="base"]').should ('be.visible'); + cy.get ('[data-layer="mouth"]').should ('be.visible'); + cy.get ('[data-layer="eyes"]').should ('be.visible'); + cy.get ('[data-layer="eyebrows"]').should ('be.visible'); + + + + cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y happy_layered with fadeIn']); + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', [ + 'show character y:base arm_raised', + 'show character y:mouth smile', + 'show character y:eyes alone', + 'show character y:eyebrows normal' + ]); + cy.wrap (this.monogatari).invoke ('history', 'characterLayer').should ('deep.equal', [ + { + parent: 'show character y angry_layered with fadeIn', + layers: [ + { + statement: 'show character y:base normal', + previous: null + }, + { + statement: 'show character y:mouth alone', + previous: null + }, + { + statement: 'show character y:eyes alone', + previous: null + } + ] + }, + { + parent: 'show character y angry_layered with fadeIn', + layers: [ + { + statement: 'show character y:base normal', + previous: null + }, + { + statement: 'show character y:mouth alone', + previous: null + }, + { + statement: 'show character y:eyes alone', + previous: null + } + ] + }, + { + parent: 'show character y happy_layered with fadeIn', + layers: [ + { + statement: 'show character y:base arm_raised', + previous: 'show character y:base normal' + }, + { + statement: 'show character y:mouth smile', + previous: null + }, + { + statement: 'show character y:eyes alone', + previous: 'show character y:eyes alone' + }, + { + statement: 'show character y:eyebrows normal', + previous: null + }, + ] + } + ]); + + cy.get ('text-box').contains ('Six'); + + cy.proceed(); + + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', [ + 'show character y:base arm_raised', + 'show character y:eyes alone', + 'show character y:eyebrows normal', + 'show character y:mouth alone with fadeIn', + ]); + + cy.get ('text-box').contains ('Seven'); + + cy.proceed(); + + // show character y happy + + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', []); + cy.get ('[data-layer]:not([data-layer="base"])').should ('not.exist'); + + cy.get ('text-box').contains ('Eight'); + + cy.proceed(); + + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', [ + 'show character y:base arm_raised', + 'show character y:mouth smile', + 'show character y:eyes alone', + 'show character y:eyebrows normal' + ]); + + cy.get ('text-box').contains ('Nine'); + + cy.rollback(); + + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', []); + cy.get ('[data-layer]:not([data-layer="base"])').should ('not.exist'); + + cy.get ('text-box').contains ('Eight'); + + cy.rollback(); + + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', [ + 'show character y:base arm_raised', + + 'show character y:eyes alone', + 'show character y:eyebrows normal', + 'show character y:mouth alone with fadeIn', + + ]); + + cy.get ('text-box').contains ('Seven'); + + cy.rollback(); + + cy.get ('[data-sprite="happy_layered"]').should ('be.visible'); + cy.get ('[data-sprite="happy_layered"]').should('have.class', 'fadeIn'); + + cy.get ('[data-layer="base"]').should ('be.visible'); + cy.get ('[data-layer="mouth"]').should ('be.visible'); + cy.get ('[data-layer="eyes"]').should ('be.visible'); + cy.get ('[data-layer="eyebrows"]').should ('be.visible'); + + + + cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y happy_layered with fadeIn']); + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', [ + 'show character y:base arm_raised', + + 'show character y:eyes alone', + 'show character y:eyebrows normal', + 'show character y:mouth smile', + ]); + cy.wrap (this.monogatari).invoke ('history', 'characterLayer').should ('deep.equal', [ + { + parent: 'show character y angry_layered with fadeIn', + layers: [ + { + statement: 'show character y:base normal', + previous: null + }, + { + statement: 'show character y:mouth alone', + previous: null + }, + { + statement: 'show character y:eyes alone', + previous: null + } + ] + }, + { + parent: 'show character y angry_layered with fadeIn', + layers: [ + { + statement: 'show character y:base normal', + previous: null + }, + { + statement: 'show character y:mouth alone', + previous: null + }, + { + statement: 'show character y:eyes alone', + previous: null + } + ] + }, + { + parent: 'show character y happy_layered with fadeIn', + layers: [ + { + statement: 'show character y:base arm_raised', + previous: 'show character y:base normal' + }, + { + statement: 'show character y:mouth smile', + previous: null + }, + { + statement: 'show character y:eyes alone', + previous: 'show character y:eyes alone' + }, + { + statement: 'show character y:eyebrows normal', + previous: null + }, + ] + } + ]); + + cy.get ('text-box').contains ('Six'); + + cy.rollback(); + + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', [ + 'show character y:base normal', + 'show character y:eyes alone' + ]); + + cy.get ('[data-layer="mouth"]').should ('not.exist'); + + cy.get ('text-box').contains ('Five'); + + cy.rollback(); + + cy.get ('[data-sprite="angry_layered"]').should ('be.visible'); + cy.get ('[data-sprite="angry_layered"]').should('have.class', 'fadeIn'); + + cy.get ('[data-layer="base"]').should ('be.visible'); + cy.get ('[data-layer="mouth"]').should ('be.visible'); + cy.get ('[data-layer="eyes"]').should ('be.visible'); + + + cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y angry_layered with fadeIn']); + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', [ + 'show character y:base normal', + + 'show character y:eyes alone', + 'show character y:mouth alone', + ]); + cy.wrap (this.monogatari).invoke ('history', 'characterLayer').should ('deep.equal', [ + { + parent: 'show character y angry_layered with fadeIn', + layers: [ + { + statement: 'show character y:base normal', + previous: null + }, + { + statement: 'show character y:mouth alone', + previous: null + }, + { + statement: 'show character y:eyes alone', + previous: null + } + ] + }, + { + parent: 'show character y angry_layered with fadeIn', + layers: [ + { + statement: 'show character y:base normal', + previous: null + }, + { + statement: 'show character y:mouth alone', + previous: null + }, + { + statement: 'show character y:eyes alone', + previous: null + } + ] + } + ]); + + cy.get ('text-box').contains ('Four'); + + cy.rollback(); + + cy.get ('[data-sprite="angry_layered"]').should ('not.exist'); + + cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', []); + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', []); + + cy.get ('text-box').contains ('Three'); + + cy.rollback(); + + cy.get ('[data-sprite="angry_layered"]').should ('be.visible'); + cy.get ('[data-sprite="angry_layered"]').should('have.class', 'fadeIn'); + + cy.get ('[data-layer="base"]').should ('be.visible'); + cy.get ('[data-layer="mouth"]').should ('be.visible'); + cy.get ('[data-layer="eyes"]').should ('be.visible'); + + + cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y angry_layered with fadeIn']); + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', [ + 'show character y:base normal', + 'show character y:mouth alone', + 'show character y:eyes alone' + ]); + cy.wrap (this.monogatari).invoke ('history', 'characterLayer').should ('deep.equal', [ + { + parent: 'show character y angry_layered with fadeIn', + layers: [ + { + statement: 'show character y:base normal', + previous: null + }, + { + statement: 'show character y:mouth alone', + previous: null + }, + { + statement: 'show character y:eyes alone', + previous: null + } + ] + } + ]); + + cy.get ('text-box').contains ('Two'); + + cy.rollback(); + + cy.get ('text-box').contains ('One'); + + cy.wrap (this.monogatari).invoke ('history', 'characterLayer').should ('deep.equal', []); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', []); + + cy.wrap (this.monogatari).invoke ('state', 'characterLayers').should ('deep.equal', []); + cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', []); + }); +}); diff --git a/cypress/integration/actions/show_image.spec.js b/cypress/e2e/actions/show_image.spec.js similarity index 78% rename from cypress/integration/actions/show_image.spec.js rename to cypress/e2e/actions/show_image.spec.js index 00cf9b3..b2d9384 100644 --- a/cypress/integration/actions/show_image.spec.js +++ b/cypress/e2e/actions/show_image.spec.js @@ -140,4 +140,58 @@ context ('Show Image', function () { }); }); }); + + it ('Shows the image on rollback only when it was previously visible.', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show image polaroid', + 'One', + 'hide image polaroid', + 'show image christmas', + 'Two', + 'Three', + 'hide image christmas', + 'show image polaroid', + 'Four', + ] + }); + + cy.start (); + + cy.get ('[data-image="polaroid"]').should ('be.visible'); + cy.get ('text-box').contains ('One'); + cy.proceed (); + + cy.get ('[data-image="polaroid"]').should ('not.exist'); + cy.get ('[data-image="christmas"]').should ('be.visible'); + cy.get ('text-box').contains ('Two'); + cy.proceed (); + + cy.get ('[data-image="polaroid"]').should ('not.exist'); + cy.get ('[data-image="christmas"]').should ('be.visible'); + cy.get ('text-box').contains ('Three'); + cy.proceed (); + + cy.get ('[data-image="christmas"]').should ('not.exist'); + cy.get ('[data-image="polaroid"]').should ('be.visible'); + cy.get ('text-box').contains ('Four'); + + cy.rollback (); + + cy.get ('[data-image="polaroid"]').should ('not.exist'); + cy.get ('[data-image="christmas"]').should ('be.visible'); + cy.get ('text-box').contains ('Three'); + + cy.rollback (); + + cy.get ('text-box').contains ('Two'); + cy.get ('[data-image="polaroid"]').should ('not.exist'); + cy.get ('[data-image="christmas"]').should ('be.visible'); + + cy.rollback (); + + cy.get ('[data-image="polaroid"]').should ('be.visible'); + cy.get ('text-box').contains ('One'); + }); }); \ No newline at end of file diff --git a/cypress/integration/actions/show_particles.spec.js b/cypress/e2e/actions/show_particles.spec.js similarity index 83% rename from cypress/integration/actions/show_particles.spec.js rename to cypress/e2e/actions/show_particles.spec.js index 32fadcd..e8cbd3c 100644 --- a/cypress/integration/actions/show_particles.spec.js +++ b/cypress/e2e/actions/show_particles.spec.js @@ -19,7 +19,7 @@ context ('Show Particles', function () { cy.wrap (this.monogatari).invoke ('history', 'particle').should ('deep.equal', ['show particles snow']); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', 'show particles snow'); - cy.get ('.tsparticles-canvas-el').should ('be.visible'); + cy.get ('[data-ui="particles"] canvas').should ('be.visible'); }); it ('Restores the particle system when rolled back', function () { @@ -37,32 +37,32 @@ context ('Show Particles', function () { cy.start (); cy.wrap (this.monogatari).invoke ('history', 'particle').should ('be.empty'); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', ''); - cy.get ('.tsparticles-canvas-el').should ('not.exist'); + cy.get ('[data-ui="particles"] canvas').should ('not.exist'); cy.get ('text-box').contains ('Zero'); cy.proceed (); cy.wrap (this.monogatari).invoke ('history', 'particle').should ('deep.equal', ['show particles snow']); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', 'show particles snow'); - cy.get ('.tsparticles-canvas-el').should ('be.visible'); + cy.get ('[data-ui="particles"] canvas').should ('be.visible'); cy.get ('text-box').contains ('One'); cy.proceed (); cy.wrap (this.monogatari).invoke ('history', 'particle').should ('deep.equal', ['show particles snow']); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', ''); - cy.get ('.tsparticles-canvas-el').should ('not.exist'); + cy.get ('[data-ui="particles"] canvas').should ('not.exist'); cy.get ('text-box').contains ('Two'); cy.rollback (); cy.wrap (this.monogatari).invoke ('history', 'particle').should ('deep.equal', ['show particles snow']); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', 'show particles snow'); - cy.get ('.tsparticles-canvas-el').should ('be.visible'); + cy.get ('[data-ui="particles"] canvas').should ('be.visible'); cy.get ('text-box').contains ('One'); cy.rollback (); cy.wrap (this.monogatari).invoke ('history', 'particle').should ('be.empty'); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', ''); - cy.get ('.tsparticles-canvas-el').should ('not.exist'); + cy.get ('[data-ui="particles"] canvas').should ('not.exist'); cy.get ('text-box').contains ('Zero'); }); @@ -80,19 +80,19 @@ context ('Show Particles', function () { cy.start (); cy.wrap (this.monogatari).invoke ('history', 'particle').should ('be.empty'); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', ''); - cy.get ('.tsparticles-canvas-el').should ('not.exist'); + cy.get ('[data-ui="particles"] canvas').should ('not.exist'); cy.get ('text-box').contains ('One'); cy.proceed (); cy.wrap (this.monogatari).invoke ('history', 'particle').should ('deep.equal', ['show particles snow', 'show particles fireflies']); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', 'show particles fireflies'); - cy.get ('.tsparticles-canvas-el').should ('be.visible'); + cy.get ('[data-ui="particles"] canvas').should ('be.visible'); cy.get ('text-box').contains ('Two'); cy.rollback (); cy.wrap (this.monogatari).invoke ('history', 'particle').should ('be.empty'); cy.wrap (this.monogatari).invoke ('state', 'particles').should ('equal', ''); - cy.get ('.tsparticles-canvas-el').should ('not.exist'); + cy.get ('[data-ui="particles"] canvas').should ('not.exist'); cy.get ('text-box').contains ('One'); }); diff --git a/cypress/integration/actions/show_scene.spec.js b/cypress/e2e/actions/show_scene.spec.js similarity index 63% rename from cypress/integration/actions/show_scene.spec.js rename to cypress/e2e/actions/show_scene.spec.js index a2de905..8ed788f 100644 --- a/cypress/integration/actions/show_scene.spec.js +++ b/cypress/e2e/actions/show_scene.spec.js @@ -24,7 +24,16 @@ context ('Show Scene', function () { cy.start (); cy.get ('[data-character="y"][data-sprite="normal"]').should ('be.visible'); cy.get ('[data-character="m"][data-sprite="normal"]').should ('be.visible'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); cy.get ('text-box').contains ('One'); @@ -33,7 +42,20 @@ context ('Show Scene', function () { cy.get ('[data-character="y"][data-sprite="normal"]').should ('not.exist'); cy.get ('[data-character="m"][data-sprite="normal"]').should ('not.exist'); cy.get ('[data-character="m"][data-sprite="angry"]').should ('be.visible'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right', 'show character m angry at right']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + }, + { + statement: 'show character m angry at right', + previous: null + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character m angry at right']); cy.get ('text-box').contains ('Two'); @@ -41,7 +63,25 @@ context ('Show Scene', function () { cy.get ('[data-character="y"][data-sprite="angry"]').should ('be.visible'); cy.get ('[data-character="m"][data-sprite="angry"]').should ('not.exist'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right', 'show character m angry at right', 'show character y angry at left']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + }, + { + statement: 'show character m angry at right', + previous: null + }, + { + statement: 'show character y angry at left', + previous: null + } + ]); + cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y angry at left']); cy.get ('text-box').contains ('Three'); cy.rollback (); @@ -50,7 +90,20 @@ context ('Show Scene', function () { cy.get ('[data-character="m"][data-sprite="normal"]').should ('not.exist'); cy.get ('[data-character="m"][data-sprite="angry"]').should ('be.visible'); cy.get ('[data-character="y"][data-sprite="angry"]').should ('not.exist'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right', 'show character m angry at right']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + }, + { + statement: 'show character m angry at right', + previous: null + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character m angry at right']); cy.get ('text-box').contains ('Two'); cy.rollback (); @@ -59,7 +112,16 @@ context ('Show Scene', function () { cy.get ('[data-character="m"][data-sprite="normal"]').should ('be.visible'); cy.get ('[data-character="m"][data-sprite="angry"]').should ('not.exist'); cy.get ('[data-character="y"][data-sprite="angry"]').should ('not.exist'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); cy.get ('text-box').contains ('One'); @@ -82,7 +144,16 @@ context ('Show Scene', function () { cy.get ('#background').should ('have.css', 'background-color', 'rgb(0, 128, 0)'); cy.get ('[data-character="y"][data-sprite="normal"]').should ('be.visible'); cy.get ('[data-character="m"][data-sprite="normal"]').should ('be.visible'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); cy.wrap (this.monogatari).invoke ('state', 'scene').should ('equal', 'show scene green'); @@ -111,7 +182,16 @@ context ('Show Scene', function () { cy.get ('#background').should ('have.css', 'background-color', 'rgb(0, 128, 0)'); cy.get ('[data-character="y"][data-sprite="normal"]').should ('be.visible'); cy.get ('[data-character="m"][data-sprite="normal"]').should ('be.visible'); - cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); + cy.wrap (this.monogatari).invoke ('history', 'character').should ('deep.equal', [ + { + statement: 'show character y normal at left', + previous: null + }, + { + statement: 'show character m normal at right', + previous: null + } + ]); cy.wrap (this.monogatari).invoke ('state', 'characters').should ('deep.equal', ['show character y normal at left', 'show character m normal at right']); cy.wrap (this.monogatari).invoke ('history', 'scene').should ('deep.equal', ['show scene green']); @@ -128,4 +208,48 @@ context ('Show Scene', function () { }); + + it ('Shows the correct background on when both scene and background are used', function () { + // https://github.com/Monogatari/Monogatari/pull/154 + + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show scene #555555 with fadeIn', + 'show background christmas with fadeIn', + 'Hello.', + 'end', + ] + }); + + cy.start (); + + cy.wrap (this.monogatari).invoke ('state', 'scene').should ('equal', 'show scene #555555 with fadeIn'); + cy.wrap (this.monogatari).invoke ('history', 'scene').should ('deep.equal', ['show scene #555555 with fadeIn']); + + cy.wrap (this.monogatari).invoke ('state', 'background').should ('equal', 'show background christmas with fadeIn'); + cy.wrap (this.monogatari).invoke ('history', 'background').should ('deep.equal', ['show background #555555 with fadeIn', 'show background christmas with fadeIn']); + + + cy.get ('text-box').contains ('Hello'); + + cy.save (1); + cy.proceed (); + cy.get ('[data-component="main-menu"] [data-action="open-screen"][data-open="load"]').click (); + cy.get ('[data-component="load-screen"]').should ('be.visible'); + cy.get ('[data-component="load-screen"] [data-component="save-slot"]').last ().click (); + + cy.get ('text-box').contains ('Hello'); + + cy.wrap (this.monogatari).invoke ('history', 'background').should ('deep.equal', ['show background #555555 with fadeIn', 'show background christmas with fadeIn']); + cy.wrap (this.monogatari).invoke ('state', 'background').should ('equal', 'show background christmas with fadeIn'); + + cy.get ('#background').should ('have.css', 'background-image', 'url("https://datadyne.perfectdark.space/monogatari/assets/images/christmas.png")'); + + }); + + + + + }); \ No newline at end of file diff --git a/cypress/e2e/actions/show_textbox.spec.js b/cypress/e2e/actions/show_textbox.spec.js new file mode 100644 index 0000000..d415528 --- /dev/null +++ b/cypress/e2e/actions/show_textbox.spec.js @@ -0,0 +1,232 @@ +context ('Show TextBox', function () { + + beforeEach (() => { + cy.open (); + cy.loadTestAssets (); + }); + + it ('Shows the textbox after being hidden', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'hide textbox', + 'show textbox', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('One'); + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('Two'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + }); + + it ('Reverts back to hidden state on rollback', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'hide textbox', + 'show image polaroid', + 'show textbox', + 'One', + 'Two' + ] + }); + + cy.start (); + + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('One'); + cy.get ('[data-image="polaroid"]').should ('be.visible'); + + cy.proceed (); + cy.get ('text-box').contains ('Two'); + + cy.rollback (); + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('One'); + }); + + it ('Handles multiple hide/show cycles', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'hide textbox', + 'show textbox', + 'Two', + 'hide textbox', + 'show textbox', + 'Three' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('One'); + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('Two'); + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('Three'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + }); + + it ('Works with character show while hidden', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'hide textbox', + 'show character y normal', + 'show textbox', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('One'); + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('Two'); + cy.get ('[data-character="y"]').should ('be.visible'); + }); + + it ('Restores shown textbox state after save and load', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'hide textbox', + 'show textbox', + 'Two', + 'Three', + 'end' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('One'); + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('Two'); + cy.save (1); + + cy.proceed (); + cy.proceed (); + + cy.get ('[data-component="main-menu"] [data-action="open-screen"][data-open="load"]').click (); + cy.get ('[data-component="load-screen"] [data-component="save-slot"]').first ().click (); + cy.get ('[data-component="game-screen"]').should ('be.visible'); + + cy.get ('text-box').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + }); + + it ('Restores shown textbox with images after save and load', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'hide textbox', + 'show image polaroid', + 'show textbox', + 'One', + 'Two', + 'end' + ] + }); + + cy.start (); + + cy.get ('text-box').should ('be.visible'); + cy.get ('text-box').contains ('One'); + cy.get ('[data-image="polaroid"]').should ('be.visible'); + cy.save (1); + + cy.proceed (); + cy.proceed (); + + cy.get ('[data-component="main-menu"] [data-action="open-screen"][data-open="load"]').click (); + cy.get ('[data-component="load-screen"] [data-component="save-slot"]').first ().click (); + cy.get ('[data-component="game-screen"]').should ('be.visible'); + + cy.get ('text-box').should ('be.visible'); + cy.get ('[data-image="polaroid"]').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + }); + + it ('Shows the textbox after being hidden in NVL mode', function () { + cy.loadTestAssets ({ nvl: true }); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y One', + 'hide textbox', + 'show textbox', + 'y Two' + ] + }); + + cy.start (); + cy.get ('text-box').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('element').invoke ('find', 'text-box').invoke ('get', 0).its ('props.mode').should ('equal', 'nvl'); + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + }); + + it ('Handles multiple hide/show cycles in NVL mode', function () { + cy.loadTestAssets ({ nvl: true }); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y One', + 'hide textbox', + 'show textbox', + 'y Two', + 'hide textbox', + 'show textbox', + 'y Three' + ] + }); + + cy.start (); + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'textboxHidden').should ('equal', false); + }); + + it ('Works with character show while hidden in NVL mode', function () { + cy.loadTestAssets ({ nvl: true }); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y One', + 'hide textbox', + 'show character y normal', + 'show textbox', + 'y Two' + ] + }); + + cy.start (); + cy.proceed (); + + cy.get ('text-box').should ('be.visible'); + cy.get ('[data-character="y"]').should ('be.visible'); + }); +}); diff --git a/cypress/integration/actions/show_video.spec.js b/cypress/e2e/actions/show_video.spec.js similarity index 62% rename from cypress/integration/actions/show_video.spec.js rename to cypress/e2e/actions/show_video.spec.js index 2ac160d..bcc12a7 100644 --- a/cypress/integration/actions/show_video.spec.js +++ b/cypress/e2e/actions/show_video.spec.js @@ -6,6 +6,35 @@ context ('Show Video', function () { cy.window ().its ('Monogatari.default').as ('monogatari'); }); + it ('Displays a video in modal mode correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino modal with fadeIn close', + 'y Tada!' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"][data-mode="modal"]').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'videos').should ('deep.equal', ['show video kirino modal with fadeIn close']); + }); + + it ('Displays a video in displayable mode correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino displayable with fadeIn loop', + 'y Tada!' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"][data-mode="displayable"]').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'videos').should ('deep.equal', ['show video kirino displayable with fadeIn loop']); + cy.get ('text-box').contains ('Tada!'); + }); + it ('Allows the game to continue while playing a background video', function () { this.monogatari.setting ('TypeAnimation', false); this.monogatari.script ({ @@ -211,4 +240,126 @@ context ('Show Video', function () { }); }); }); + + it ('Applies loop attribute when specified', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino displayable loop', + 'y Tada!' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"]').should ('have.attr', 'loop'); + }); + + it ('Applies controls attribute when specified', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino displayable controls', + 'y Tada!' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"]').should ('have.attr', 'controls'); + }); + + it ('Blocks game progression in modal mode until video ends', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino modal', + 'y Tada!' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"][data-mode="modal"]').should ('be.visible'); + // Game should be blocked - trying to proceed shouldn't work immediately + cy.wrap (this.monogatari).invoke ('action', 'Video').its('blocking').should ('eq', true); + }); + + it ('Blocks game progression in immersive mode', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino immersive', + 'y Tada!' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"][data-mode="immersive"]').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('action', 'Video').its('blocking').should ('eq', true); + }); + + it ('Does not block game progression in displayable mode', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino displayable loop', + 'y Tada!' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"][data-mode="displayable"]').should ('be.visible'); + cy.get ('text-box').contains ('Tada!'); + }); + + it ('Handles multiple videos of different modes', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino background loop', + 'show video dandelion displayable loop', + 'y Tada!' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"][data-mode="background"]').should ('exist'); + cy.get ('[data-video="dandelion"][data-mode="displayable"]').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'videos').should ('have.length', 2); + cy.get ('text-box').contains ('Tada!'); + }); + + it ('Applies animation classes correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino displayable with fadeIn loop', + 'y Tada!' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"]').should ('have.class', 'animated'); + cy.get ('[data-video="kirino"]').should ('have.class', 'fadeIn'); + }); + + it ('Clears all videos on game reset', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show video kirino displayable loop', + 'show video dandelion background loop', + 'y Tada!', + 'end' + ] + }); + + cy.start (); + cy.get ('[data-video="kirino"]').should ('be.visible'); + cy.wrap (this.monogatari).invoke ('state', 'videos').should ('have.length', 2); + + cy.proceed (); + cy.get('main-screen').should ('be.visible'); + cy.get ('[data-video]').should ('not.exist'); + cy.wrap (this.monogatari).invoke ('state', 'videos').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('history', 'video').should ('be.empty'); + }); }); diff --git a/cypress/integration/actions/stop.spec.js b/cypress/e2e/actions/stop.spec.js similarity index 76% rename from cypress/integration/actions/stop.spec.js rename to cypress/e2e/actions/stop.spec.js index 5b53680..37cf3c2 100644 --- a/cypress/integration/actions/stop.spec.js +++ b/cypress/e2e/actions/stop.spec.js @@ -6,6 +6,48 @@ context ('Stop', function () { cy.window ().its ('Monogatari.default').as ('monogatari'); }); + it ('Stops sound correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'play sound beep loop', + 'One', + 'stop sound beep', + 'Two' + ] + }); + + cy.start (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('history', 'sound').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 0); + + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('deep.equal', [{ statement: 'play sound beep loop', paused: false }]); + cy.wrap (this.monogatari).invoke ('history', 'sound').should ('deep.equal', ['play sound beep loop']); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 1); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('history', 'sound').should ('deep.equal', ['play sound beep loop']); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 0); + + cy.get ('text-box').contains ('Two'); + + cy.rollback (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('deep.equal', [{ statement: 'play sound beep loop', paused: false }]); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 1); + }); + it ('Stops music correctly', function () { this.monogatari.setting ('TypeAnimation', false); this.monogatari.script ({ @@ -234,4 +276,79 @@ context ('Stop', function () { cy.get ('text-box').contains ('Two'); }); + it ('Stops music with fade out correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'play music theme', + 'One', + 'stop music theme with fade 0.3', + 'Two' + ] + }); + + cy.start (); + + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 0); + + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 1); + cy.wrap (this.monogatari.mediaPlayers ('music', true)).its ('theme.paused').should ('equal', false); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + // Wait for fade to complete + cy.wait(400); + + cy.wrap (this.monogatari).invoke ('state', 'music').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'music').should ('have.length', 0); + + cy.get ('text-box').contains ('Two'); + }); + + it ('Stops all sounds correctly', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'play sound beep loop', + 'play sound coin loop', + 'One', + 'stop sound', + 'Two' + ] + }); + + cy.start (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 0); + + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('have.length', 2); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 2); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('be.empty'); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 0); + + cy.get ('text-box').contains ('Two'); + + cy.rollback (); + + cy.wrap (this.monogatari).invoke ('state', 'sound').should ('have.length', 2); + cy.wrap (this.monogatari).invoke ('mediaPlayers', 'sound').should ('have.length', 2); + }); + }); \ No newline at end of file diff --git a/cypress/e2e/actions/unload.spec.js b/cypress/e2e/actions/unload.spec.js new file mode 100644 index 0000000..2b3fbf4 --- /dev/null +++ b/cypress/e2e/actions/unload.spec.js @@ -0,0 +1,464 @@ +context ('Unload', function () { + + beforeEach (() => { + cy.open (); + cy.loadTestAssets (); + cy.window ().its ('Monogatari.default').as ('monogatari'); + }); + + it ('Unloads single audio asset', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload music theme blocking', + 'One', + 'unload music theme', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (500); + + // Verify audio is cached + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('not.be.undefined'); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + // Verify audio is no longer cached + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('be.undefined'); + + cy.get ('text-box').contains ('Two'); + }); + + it ('Unloads single image asset', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload scene christmas blocking', + 'One', + 'unload scene christmas', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (500); + + // Verify image is cached (use then() to avoid DOM element tracking issues) + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('scenes/christmas')).to.not.be.undefined; + }); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + // Verify image is no longer cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('scenes/christmas')).to.be.undefined; + }); + + cy.get ('text-box').contains ('Two'); + }); + + it ('Unloads character sprite', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload character y happy blocking', + 'One', + 'unload character y happy', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (500); + + // Verify sprite is cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('characters/y/happy')).to.not.be.undefined; + }); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + // Verify sprite is no longer cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('characters/y/happy')).to.be.undefined; + }); + + cy.get ('text-box').contains ('Two'); + }); + + it ('Unloads all sprites for a character', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload character y happy blocking', + 'preload character y sad blocking', + 'One', + 'unload character y', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (1000); + + // Verify sprites are cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('characters/y/happy')).to.not.be.undefined; + expect (this.monogatari.imageCache ('characters/y/sad')).to.not.be.undefined; + }); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + // Verify all sprites are no longer cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('characters/y/happy')).to.be.undefined; + expect (this.monogatari.imageCache ('characters/y/sad')).to.be.undefined; + }); + + cy.get ('text-box').contains ('Two'); + }); + + it ('Unloads entire block', function () { + this.monogatari.setting ('TypeAnimation', false); + + // Configure a preload block + this.monogatari.action ('Preload').blocks ({ + 'test_block': { + music: ['theme'], + scenes: ['christmas'] + } + }); + + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload block test_block blocking', + 'One', + 'unload block test_block', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (1000); + + // Verify all block assets are cached + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('not.be.undefined'); + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('scenes/christmas')).to.not.be.undefined; + }); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + // Verify all block assets are no longer cached + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('be.undefined'); + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('scenes/christmas')).to.be.undefined; + }); + + cy.get ('text-box').contains ('Two'); + }); + + it ('Unloads entire audio category', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload music theme blocking', + 'preload music subspace blocking', + 'One', + 'unload music', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (1000); + + // Verify both music assets are cached + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('not.be.undefined'); + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/subspace').should ('not.be.undefined'); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + // Verify all music assets are no longer cached + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('be.undefined'); + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/subspace').should ('be.undefined'); + + cy.get ('text-box').contains ('Two'); + }); + + it ('Unloads entire image category', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload image polaroid blocking', + 'preload image christmas blocking', + 'One', + 'unload images', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + cy.wait (1000); + + // Verify both images are cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('images/polaroid')).to.not.be.undefined; + expect (this.monogatari.imageCache ('images/christmas')).to.not.be.undefined; + }); + + cy.get ('text-box').contains ('One'); + + cy.proceed (); + + // Verify all images are no longer cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('images/polaroid')).to.be.undefined; + expect (this.monogatari.imageCache ('images/christmas')).to.be.undefined; + }); + + cy.get ('text-box').contains ('Two'); + }); + + it ('Unloads all cached assets', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload music theme blocking', + 'preload scene christmas blocking', + 'preload character y happy blocking', + 'One', + 'unload all', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + // Wait for blocking preload to complete (indicated by text advancing to "One") + cy.get ('text-box').contains ('One'); + + // Verify assets are cached after preload completes + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('not.be.undefined'); + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('scenes/christmas')).to.not.be.undefined; + expect (this.monogatari.imageCache ('characters/y/happy')).to.not.be.undefined; + }); + + cy.proceed (); + // Wait for unload to complete + cy.get ('text-box').contains ('Two'); + + // Verify all assets are no longer cached + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('be.undefined'); + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('scenes/christmas')).to.be.undefined; + expect (this.monogatari.imageCache ('characters/y/happy')).to.be.undefined; + }); + }); + + it ('Unloads custom category single asset', function () { + this.monogatari.setting ('TypeAnimation', false); + + // Register a custom category 'posters' that uses the 'image' loader + this.monogatari.action ('Preload').registerCategory ('posters', 'image'); + + // Configure AssetsPath for posters + const assetsPath = this.monogatari.setting ('AssetsPath'); + assetsPath.posters = 'images'; + this.monogatari.setting ('AssetsPath', assetsPath); + + // Register a poster asset + this.monogatari.assets ('posters', { + 'movie_poster': 'blurry_polaroid.jpg' + }); + + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload posters movie_poster blocking', + 'One', + 'unload posters movie_poster', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + // Wait for blocking preload to complete + cy.get ('text-box').contains ('One'); + + // Verify the custom category asset is cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('posters/movie_poster')).to.not.be.undefined; + }); + + cy.proceed (); + // Wait for unload to complete + cy.get ('text-box').contains ('Two'); + + // Verify the asset is no longer cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('posters/movie_poster')).to.be.undefined; + }); + }); + + it ('Unloads entire custom category', function () { + this.monogatari.setting ('TypeAnimation', false); + + // Register a custom category + this.monogatari.action ('Preload').registerCategory ('posters', 'image'); + + // Configure AssetsPath for posters + const assetsPath = this.monogatari.setting ('AssetsPath'); + assetsPath.posters = 'images'; + this.monogatari.setting ('AssetsPath', assetsPath); + + // Register poster assets + this.monogatari.assets ('posters', { + 'poster1': 'blurry_polaroid.jpg', + 'poster2': 'christmas.png' + }); + + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload posters poster1 blocking', + 'preload posters poster2 blocking', + 'One', + 'unload posters', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + // Wait for both blocking preloads to complete + cy.get ('text-box').contains ('One'); + + // Verify both posters are cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('posters/poster1')).to.not.be.undefined; + expect (this.monogatari.imageCache ('posters/poster2')).to.not.be.undefined; + }); + + cy.proceed (); + // Wait for unload to complete + cy.get ('text-box').contains ('Two'); + + // Verify all posters are no longer cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('posters/poster1')).to.be.undefined; + expect (this.monogatari.imageCache ('posters/poster2')).to.be.undefined; + }); + }); + + it ('Unloads custom category in block', function () { + this.monogatari.setting ('TypeAnimation', false); + + // Register a custom category + this.monogatari.action ('Preload').registerCategory ('posters', 'image'); + + // Configure AssetsPath for posters + const assetsPath = this.monogatari.setting ('AssetsPath'); + assetsPath.posters = 'images'; + this.monogatari.setting ('AssetsPath', assetsPath); + + // Register poster assets + this.monogatari.assets ('posters', { + 'poster1': 'blurry_polaroid.jpg' + }); + + // Configure a preload block with custom category + this.monogatari.action ('Preload').blocks ({ + 'custom_block': { + posters: ['poster1'], + music: ['theme'] + } + }); + + this.monogatari.script ({ + 'Start': [ + 'Zero', + 'preload block custom_block blocking', + 'One', + 'unload block custom_block', + 'Two' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Zero'); + + cy.proceed (); + // Wait for blocking preload to complete + cy.get ('text-box').contains ('One'); + + // Verify all block assets are cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('posters/poster1')).to.not.be.undefined; + }); + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('not.be.undefined'); + + cy.proceed (); + // Wait for unload to complete + cy.get ('text-box').contains ('Two'); + + // Verify all block assets are no longer cached + cy.wrap (null).then (() => { + expect (this.monogatari.imageCache ('posters/poster1')).to.be.undefined; + }); + cy.wrap (this.monogatari).invoke ('audioBufferCache', 'music/theme').should ('be.undefined'); + }); + +}); diff --git a/cypress/integration/actions/wait.spec.js b/cypress/e2e/actions/wait.spec.js similarity index 86% rename from cypress/integration/actions/wait.spec.js rename to cypress/e2e/actions/wait.spec.js index f9e8576..7375730 100644 --- a/cypress/integration/actions/wait.spec.js +++ b/cypress/e2e/actions/wait.spec.js @@ -77,18 +77,4 @@ context ('Wait', function () { cy.rollback (); cy.get ('text-box').contains ('Before'); }); - - it ('Shows an error if the time provided is not numeric', function () { - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'wait s', - 'After' - ] - }); - - cy.start (); - cy.get ('.fancy-error').should ('be.visible'); - }); - }); \ No newline at end of file diff --git a/cypress/e2e/components/dialog-log-scroll.spec.js b/cypress/e2e/components/dialog-log-scroll.spec.js new file mode 100644 index 0000000..971e1b5 --- /dev/null +++ b/cypress/e2e/components/dialog-log-scroll.spec.js @@ -0,0 +1,100 @@ +context ('Dialog Log Scrolling', function () { + + beforeEach (() => { + cy.open (); + cy.loadTestAssets (); + }); + + it ('Scrolls to the bottom when opened', function () { + this.monogatari.setting ('TypeAnimation', false); + + // Create enough dialogs to guarantee the log overflows + const dialogs = []; + for (let i = 1; i <= 30; i++) { + dialogs.push (`Dialog entry number ${i} with some extra text to ensure overflow`); + } + + this.monogatari.script ({ + 'Start': dialogs + }); + + cy.start (); + + for (let i = 0; i < 29; i++) { + cy.proceed (); + } + + cy.get ('[data-component="quick-menu"] [data-action="dialog-log"]').click (); + cy.get ('dialog-log').should ('have.class', 'modal--active'); + + cy.get ('dialog-log [data-content="log"]').should (($log) => { + const log = $log[0]; + + expect (log.scrollHeight).to.be.greaterThan (log.clientHeight); + expect (log.scrollTop + log.clientHeight).to.be.closeTo (log.scrollHeight, 5); + }); + }); + + it ('Contains all dialog entries', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y First', + 'm Second', + 'Third' + ] + }); + + cy.start (); + cy.proceed (); + cy.proceed (); + + cy.get ('dialog-log [data-spoke]').should ('have.length', 3); + cy.get ('dialog-log [data-spoke="y"]').contains ('First'); + cy.get ('dialog-log [data-spoke="m"]').contains ('Second'); + cy.get ('dialog-log [data-spoke="_narrator"]').contains ('Third'); + }); + + it ('Removes entries on rollback', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'Two', + 'Three' + ] + }); + + cy.start (); + cy.proceed (); + cy.proceed (); + + cy.get ('dialog-log [data-spoke]').should ('have.length', 3); + + cy.rollback (); + cy.get ('dialog-log [data-spoke]').should ('have.length', 2); + + cy.rollback (); + cy.get ('dialog-log [data-spoke]').should ('have.length', 1); + }); + + it ('Displays placeholder when no dialogs exist', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'One', + 'end' + ] + }); + + cy.start (); + + cy.get ('dialog-log [data-spoke]').should ('have.length', 1); + + cy.wrap (this.monogatari).invoke ('resetGame'); + cy.wait (200); + + cy.get ('dialog-log [data-content="placeholder"]').should ('exist'); + cy.get ('dialog-log [data-content="placeholder"]').contains ('No dialogs available'); + }); +}); diff --git a/cypress/integration/components/load-screen.spec.js b/cypress/e2e/components/load-screen.spec.js similarity index 61% rename from cypress/integration/components/load-screen.spec.js rename to cypress/e2e/components/load-screen.spec.js index 4a7ddea..fb0a437 100644 --- a/cypress/integration/components/load-screen.spec.js +++ b/cypress/e2e/components/load-screen.spec.js @@ -2,6 +2,8 @@ context ('Load Screen', function () { beforeEach (() => { cy.open (); + cy.clearStorage(); + cy.loadTestAssets (); }); it ('Gets open when clicking the load button on the main menu', function () { @@ -74,5 +76,35 @@ context ('Load Screen', function () { cy.get ('text-box').contains ('After'); }); + it ('Gives priority to the last known background', function () { + // https://github.com/Monogatari/Monogatari/pull/154 + + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'show scene #555555 with fadeIn', + 'show background christmas with fadeIn', + 'Hello.', + 'end', + ] + }); + + cy.start (); + + cy.wrap (this.monogatari).invoke ('state', 'scene').should ('equal', 'show scene #555555 with fadeIn'); + cy.wrap (this.monogatari).invoke ('history', 'scene').should ('deep.equal', ['show scene #555555 with fadeIn']); + + cy.wrap (this.monogatari).invoke ('state', 'background').should ('equal', 'show background christmas with fadeIn'); + cy.wrap (this.monogatari).invoke ('history', 'background').should ('deep.equal', ['show background #555555 with fadeIn', 'show background christmas with fadeIn']); + + + cy.get ('text-box').contains ('Hello'); + + cy.save (1); + cy.proceed (); + cy.get ('[data-component="main-menu"] [data-action="open-screen"][data-open="load"]').click (); + cy.get ('[data-component="load-screen"]').should ('be.visible'); + cy.get ('[data-component="load-screen"] [data-component="save-slot"] [data-content="background"]').last ().should ('have.css', 'background-image', 'url("https://datadyne.perfectdark.space/monogatari/assets/images/christmas.png")'); + }); }); \ No newline at end of file diff --git a/cypress/e2e/components/save-screen-screenshots.spec.js b/cypress/e2e/components/save-screen-screenshots.spec.js new file mode 100644 index 0000000..df28fec --- /dev/null +++ b/cypress/e2e/components/save-screen-screenshots.spec.js @@ -0,0 +1,111 @@ +context ('Save Screen Screenshots', function () { + + beforeEach (() => { + cy.open (); + cy.clearStorage(); + }); + + it ('Saves without screenshot when Screenshots setting is false', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.setting ('Screenshots', false); + this.monogatari.script ({ + 'Start': [ + 'show scene #333333 with fadeIn', + 'Hello world', + 'end' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Hello world'); + cy.get ('[data-action="open-screen"][data-open="save"]').click (); + cy.get ('[data-action="save"]').click (); + + cy.get ('[data-component="save-screen"] [data-component="save-slot"]').should ('have.length', 1); + }); + + it ('Creates a save slot when Screenshots is enabled with IndexedDB', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.setting ('Screenshots', true); + this.monogatari.settings ({ + Storage: { + Adapter: 'IndexedDB', + Store: 'TestGameData', + Endpoint: '' + } + }); + this.monogatari.script ({ + 'Start': [ + 'show scene #333333 with fadeIn', + 'Hello world', + 'end' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Hello world'); + cy.get ('[data-action="open-screen"][data-open="save"]').click (); + cy.get ('[data-action="save"]').click (); + + cy.get ('[data-component="save-screen"] [data-component="save-slot"]').should ('have.length', 1); + }); + + it ('Does not include __screenshot keys as save slots', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.setting ('Screenshots', true); + this.monogatari.settings ({ + Storage: { + Adapter: 'IndexedDB', + Store: 'TestGameData', + Endpoint: '' + } + }); + this.monogatari.script ({ + 'Start': [ + 'show scene #333333 with fadeIn', + 'Hello world', + 'end' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Hello world'); + cy.get ('[data-action="open-screen"][data-open="save"]').click (); + cy.get ('[data-action="save"]').click (); + + cy.get ('[data-component="save-screen"] [data-component="save-slot"]').should ('have.length', 1); + }); + + it ('Falls back to scene image when screenshot capture fails', function () { + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.setting ('Screenshots', true); + this.monogatari.settings ({ + Storage: { + Adapter: 'IndexedDB', + Store: 'TestGameData', + Endpoint: '' + } + }); + + // Override onSaveScreenshot to simulate failure + this.monogatari.onSaveScreenshot = async () => { + throw new Error ('Simulated failure'); + }; + + this.monogatari.script ({ + 'Start': [ + 'show scene #333333 with fadeIn', + 'Hello world', + 'end' + ] + }); + + cy.start (); + cy.get ('text-box').contains ('Hello world'); + cy.get ('[data-action="open-screen"][data-open="save"]').click (); + cy.get ('[data-action="save"]').click (); + + // Slot should still be created despite screenshot failure + cy.get ('[data-component="save-screen"] [data-component="save-slot"]').should ('have.length', 1); + }); +}); diff --git a/cypress/integration/components/save-screen.spec.js b/cypress/e2e/components/save-screen.spec.js similarity index 99% rename from cypress/integration/components/save-screen.spec.js rename to cypress/e2e/components/save-screen.spec.js index 662a3a8..b885f5b 100644 --- a/cypress/integration/components/save-screen.spec.js +++ b/cypress/e2e/components/save-screen.spec.js @@ -2,6 +2,7 @@ context ('Save Screen', function () { beforeEach (() => { cy.open (); + cy.clearStorage(); }); it ('Gets open when clicking the save button on the quick menu', function () { diff --git a/cypress/e2e/components/text-box-scroll.spec.js b/cypress/e2e/components/text-box-scroll.spec.js new file mode 100644 index 0000000..93e127b --- /dev/null +++ b/cypress/e2e/components/text-box-scroll.spec.js @@ -0,0 +1,144 @@ +context ('Text Box Scrolling and Unread', function () { + + beforeEach (() => { + cy.open (); + cy.loadTestAssets (); + }); + + it ('Auto-scrolls to bottom when new NVL dialog is added', function () { + cy.loadTestAssets ({ nvl: true }); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y Line 1', + 'y Line 2', + 'y Line 3', + 'y Line 4', + 'y Line 5', + 'y Line 6', + 'y Line 7', + 'y Line 8', + 'y Line 9', + 'y Line 10', + 'y Line 11', + 'y Line 12' + ] + }); + + cy.start (); + + for (let i = 0; i < 11; i++) { + cy.proceed (); + } + + cy.get ('text-box [data-content="text"]').then (($text) => { + const text = $text[0]; + if (text.scrollHeight > text.clientHeight) { + expect (text.scrollTop).to.be.greaterThan (0); + } + }); + }); + + it ('Adds unread class when NVL content overflows', function () { + cy.loadTestAssets ({ nvl: true }); + this.monogatari.setting ('TypeAnimation', false); + + const dialogs = []; + for (let i = 1; i <= 20; i++) { + dialogs.push (`y Dialog line ${i}`); + } + + this.monogatari.script ({ + 'Start': dialogs + }); + + cy.start (); + + for (let i = 0; i < 19; i++) { + cy.proceed (); + } + + cy.get ('text-box [data-content="text"]').then (($text) => { + $text[0].scrollTop = 0; + }); + + cy.get ('text-box [data-content="text"]').trigger ('scroll'); + + cy.get ('text-box').should ('have.class', 'unread'); + }); + + it ('Removes unread class when scrolled to bottom', function () { + cy.loadTestAssets ({ nvl: true }); + this.monogatari.setting ('TypeAnimation', false); + + const dialogs = []; + for (let i = 1; i <= 20; i++) { + dialogs.push (`y Dialog line ${i}`); + } + + this.monogatari.script ({ + 'Start': dialogs + }); + + cy.start (); + + for (let i = 0; i < 19; i++) { + cy.proceed (); + } + + cy.get ('text-box [data-content="text"]').then (($text) => { + $text[0].scrollTop = 0; + }); + cy.get ('text-box [data-content="text"]').trigger ('scroll'); + cy.get ('text-box').should ('have.class', 'unread'); + + cy.get ('text-box [data-content="text"]').then (($text) => { + const text = $text[0]; + text.scrollTop = text.scrollHeight; + }); + cy.get ('text-box [data-content="text"]').trigger ('scroll'); + + cy.get ('text-box').should ('not.have.class', 'unread'); + }); + + it ('Switches to NVL mode when NVL character speaks', function () { + cy.loadTestAssets ({ nvl: true }); + this.monogatari.setting ('TypeAnimation', false); + this.monogatari.script ({ + 'Start': [ + 'y Hello from NVL', + 'y More NVL text' + ] + }); + + cy.start (); + cy.get ('text-box').should ('have.attr', 'mode', 'nvl'); + }); + + it ('Text content area is scrollable in NVL mode', function () { + cy.loadTestAssets ({ nvl: true }); + this.monogatari.setting ('TypeAnimation', false); + + const dialogs = []; + for (let i = 1; i <= 15; i++) { + dialogs.push (`y Long dialog line number ${i} with some extra text to make it longer`); + } + + this.monogatari.script ({ + 'Start': dialogs + }); + + cy.start (); + + for (let i = 0; i < 14; i++) { + cy.proceed (); + } + + cy.get ('text-box [data-content="text"]').then (($text) => { + const text = $text[0]; + expect (text.scrollHeight).to.be.greaterThan (text.clientHeight); + }); + + cy.get ('text-box [data-content="text"]').should ('have.css', 'overflow-y', 'auto'); + }); +}); diff --git a/cypress/integration/main_menu_after_load.js b/cypress/e2e/main_menu_after_load.spec.js similarity index 77% rename from cypress/integration/main_menu_after_load.js rename to cypress/e2e/main_menu_after_load.spec.js index 919bda0..70daf2e 100644 --- a/cypress/integration/main_menu_after_load.js +++ b/cypress/e2e/main_menu_after_load.spec.js @@ -8,10 +8,6 @@ describe ('Main menu gets shown after the loading is over.', function () { it ('Opens the game', function () { cy.wait(2500); - }); - - it ('Should start the game when the button is clicked', function () { cy.get('main-screen').should ('be.visible'); }); - }); \ No newline at end of file diff --git a/cypress/fixtures/example.json b/cypress/fixtures/example.json index da18d93..02e4254 100644 --- a/cypress/fixtures/example.json +++ b/cypress/fixtures/example.json @@ -2,4 +2,4 @@ "name": "Using fixtures to represent data", "email": "hello@cypress.io", "body": "Fixtures are a great way to mock data for responses to routes" -} \ No newline at end of file +} diff --git a/cypress/integration/actions/dialog.spec.js b/cypress/integration/actions/dialog.spec.js deleted file mode 100644 index df6f671..0000000 --- a/cypress/integration/actions/dialog.spec.js +++ /dev/null @@ -1,283 +0,0 @@ -context ('Dialog', function () { - - beforeEach (() => { - cy.open (); - cy.loadTestAssets (); - }); - - it ('Displays the character\'s name and side image correctly', function () { - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'y:happy Hello!' - ] - }); - - cy.start (); - cy.get ('text-box').contains ('Hello!'); - cy.get ('[data-content="character-expression"]').should ('be.visible'); - }); - - it ('Displays the character\'s default side image correctly when an image path is provided', function () { - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'yd1 Hello!' - ] - }); - - cy.start (); - cy.get ('text-box').contains ('Hello!'); - cy.get ('[data-content="character-expression"]').should ('be.visible'); - }); - - it ('Displays the character\'s default side image correctly when an expression name is provided', function () { - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'yd2 Hello!' - ] - }); - - cy.start (); - cy.get ('text-box').contains ('Hello!'); - cy.get ('[data-content="character-expression"]').should ('be.visible'); - }); - - it ('Changes the character name color correctly', function () { - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'y Hello!', - 'm Hi!' - ] - }); - - cy.start (); - cy.get ('text-box').contains ('Hello!'); - cy.get ('[data-content="character-name"]').should ('have.css', 'color', 'rgb(0, 0, 255)'); - - cy.proceed (); - - cy.get ('text-box').contains ('Hi!'); - cy.get ('[data-content="character-name"]').should ('have.css', 'color', 'rgb(255, 255, 255)'); - }); - - it ('Adds the dialog-footer class to the last dialog of an nvl character when the character speaking changes', function () { - cy.loadTestAssets ({nvl: true}); - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'y:happy Hello!', - 'y Some other text', - 'y More text', - 'm This is a dialog', - 'm this is another dialog', - 'nvl Now the narrator' - ] - }); - - cy.start (); - cy.wait (100); - cy.proceed (); - cy.wait (100); - cy.proceed (); - cy.wait (100); - - cy.proceed (); - cy.wait (100); - cy.get ('[data-spoke="y"]').last().should ('have.class', 'nvl-dialog-footer'); - - cy.proceed (); - cy.wait (100); - cy.proceed (); - cy.wait (100); - cy.proceed (); - cy.wait (100); - cy.get ('[data-spoke="m"]').last().should ('have.class', 'nvl-dialog-footer'); - }); - - it ('Restores NVL dialogs correctly when rolling back through scenes', function () { - cy.loadTestAssets ({nvl: true}); - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'show scene black', - 'nvl Zero', - 'nvl One', - 'nvl Two', - 'show scene red', - 'nvl Three', - 'show scene green', - 'nvl Four', - ] - }); - cy.start (); - cy.get ('#background').should ('have.css', 'background-color', 'rgb(0, 0, 0)'); - cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 0); - cy.get ('text-box').contains ('Zero'); - cy.proceed (); - cy.get ('text-box').contains ('Zero'); - cy.get ('text-box').contains ('One'); - cy.proceed (); - cy.get ('text-box').contains ('Zero'); - cy.get ('text-box').contains ('One'); - cy.get ('text-box').contains ('Two'); - cy.proceed (); - cy.get ('#background').should ('have.css', 'background-color', 'rgb(255, 0, 0)'); - cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 1); - cy.get ('text-box').contains ('Three'); - cy.proceed (); - cy.get ('#background').should ('have.css', 'background-color', 'rgb(0, 128, 0)'); - cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 2); - cy.get ('text-box').contains ('Four'); - cy.wait (100); - cy.rollback (); - cy.get ('#background').should ('have.css', 'background-color', 'rgb(255, 0, 0)'); - cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 1); - cy.get ('text-box').contains ('Three'); - cy.wait (100); - cy.rollback (); - cy.get ('#background').should ('have.css', 'background-color', 'rgb(0, 0, 0)'); - cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 0); - cy.get ('text-box').contains ('Zero'); - cy.get ('text-box').contains ('One'); - cy.get ('text-box').contains ('Two'); - cy.wait (100); - cy.rollback (); - cy.get ('text-box').contains ('Zero'); - cy.get ('text-box').contains ('One'); - cy.wait (100); - cy.rollback (); - cy.get ('text-box').contains ('Zero'); - }); - - it ('Restores NVL dialogs correctly when rolling back through different textbox modes', function () { - cy.loadTestAssets ({nvl: true}); - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'Zero', - 'show scene black', - 'nvl One', - 'nvl Two', - 'Three', - 'show scene red', - 'Four', - 'show scene green', - 'nvl Five', - 'show scene black', - 'Six' - ] - }); - cy.start (); - cy.get ('text-box').contains ('Zero'); - cy.proceed (); - cy.get ('#background').should ('have.css', 'background-color', 'rgb(0, 0, 0)'); - cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 0); - cy.get ('text-box').contains ('One'); - cy.proceed (); - cy.get ('text-box').contains ('One'); - cy.get ('text-box').contains ('Two'); - cy.proceed (); - cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 1); - cy.get ('text-box').contains ('Three'); - cy.proceed (); - cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 1); - cy.get ('text-box').contains ('Four'); - cy.proceed (); - cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 1); - cy.get ('text-box').contains ('Five'); - cy.proceed (); - cy.get ('#background').should ('have.css', 'background-color', 'rgb(0, 0, 0)'); - cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 2); - cy.get ('text-box').contains ('Six'); - cy.wait (100); - cy.rollback (); - cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 1); - cy.get ('text-box').contains ('Five'); - cy.wait (100); - cy.rollback (); - cy.get ('text-box').contains ('Four'); - cy.wait (100); - cy.rollback (); - // cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 2); - cy.get ('text-box').contains ('Three'); - cy.wait (100); - cy.rollback (); - cy.wrap (this.monogatari).invoke ('history', 'nvl').should ('have.length', 0); - cy.get ('text-box').contains ('One'); - cy.get ('text-box').contains ('Two'); - cy.wait (100); - cy.rollback (); - cy.get ('text-box').contains ('One'); - cy.wait (100); - cy.rollback (); - cy.get ('text-box').contains ('Zero'); - }); - - it ('Restores NVL dialogs correctly when rolling back through different textbox modes', function () { - cy.loadTestAssets ({nvl: true}); - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'show background red', - 'Zero', - 'show scene black', - 'nvl One', - 'nvl Two', - 'show background green', - 'Three', - ] - }); - cy.start (); - cy.get ('text-box').contains ('Zero'); - cy.proceed (); - cy.get ('text-box').contains ('One'); - cy.proceed (); - cy.get ('text-box').contains ('One'); - cy.get ('text-box').contains ('Two'); - cy.proceed (); - cy.get ('text-box').contains ('Three'); - cy.wait (100); - cy.rollback (); - cy.wait (1500); - cy.get ('text-box').contains ('One'); - cy.get ('text-box').contains ('Two'); - cy.wait (100); - cy.rollback (); - cy.wait (1500); - cy.get ('text-box').contains ('One'); - cy.wait (100); - cy.rollback (); - cy.get ('text-box').contains ('Zero'); - }); - - it ('Updates the Dialog Log Correctly', function () { - cy.loadTestAssets ({nvl: true}); - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'One', - 'Two', - 'Three' - ] - }); - cy.start (); - cy.get ('dialog-log').contains ('One'); - cy.proceed (); - - cy.get ('dialog-log').contains ('Two'); - cy.proceed (); - - cy.get ('dialog-log').contains ('Three'); - - cy.rollback (); - cy.get ('dialog-log').contains ('One'); - cy.get ('dialog-log').contains ('Two'); - - cy.rollback (); - cy.get ('dialog-log').contains ('One'); - - }); -}); \ No newline at end of file diff --git a/cypress/integration/actions/input.spec.js b/cypress/integration/actions/input.spec.js deleted file mode 100644 index 152f794..0000000 --- a/cypress/integration/actions/input.spec.js +++ /dev/null @@ -1,328 +0,0 @@ -context ('Input', function () { - - beforeEach (() => { - cy.open (); - }); - - it ('Saves data and rolls back correctly', function () { - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'Before', - { - 'Input': { - 'Text': 'Input', - 'Validation': function (input) { - return input.trim ().length > 0; - }, - 'Save': function (input) { - this.storage ({ - player: { - name: input - } - }); - return true; - }, - 'Revert': function () { - this.storage ({ - player: { - name: '' - } - }); - }, - 'Warning': 'You must enter a name!' - } - }, - 'After {{player.name}}' - ] - }); - - cy.start (); - cy.wrap (this.monogatari).invoke ('storage', 'player').should ('deep.equal', { name: '' }); - cy.get ('text-box').contains ('Before'); - cy.proceed (); - - cy.get ('text-input').should ('exist'); - cy.get ('[data-content="message"]').contains ('Input'); - cy.get ('[data-content="field"]').should ('be.visible'); - cy.get ('[data-content="field"]').type ('My Name'); - - cy.get ('[type="submit"]').click (); - - cy.wrap (this.monogatari).invoke ('storage', 'player').should ('deep.equal', { name: 'My Name' }); - cy.get ('text-input').should ('not.exist'); - - cy.get ('text-box').contains ('After My Name'); - - cy.rollback (); - - cy.get ('text-input').should ('exist'); - cy.get ('[data-content="message"]').contains ('Input'); - cy.get ('[data-content="field"]').should ('be.visible'); - cy.wrap (this.monogatari).invoke ('storage', 'player').should ('deep.equal', { name: '' }); - - cy.rollback (); - - cy.wrap (this.monogatari).invoke ('storage', 'player').should ('deep.equal', { name: '' }); - cy.get ('text-box').contains ('Before'); - - }); - - it ('Shows the default value when provided', function () { - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - { - 'Input': { - 'Text': 'Input', - 'Default': 'My Name', - 'Validation': function (input) { - return input.trim ().length > 0; - }, - 'Save': function (input) { - this.storage ({ - player: { - name: input - } - }); - return true; - }, - 'Revert': function () { - this.storage ({ - player: { - name: '' - } - }); - }, - 'Warning': 'You must enter a name!' - } - }, - ] - }); - - cy.start (); - - cy.get ('text-input').should ('exist'); - cy.get ('[data-content="message"]').contains ('Input'); - cy.get ('[data-content="field"]').should ('be.visible'); - cy.get ('[data-content="field"]').should ('have.value','My Name'); - }); - - it ('Shows a warning when the Validation function returns false', function () { - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - { - 'Input': { - 'Text': 'Input', - 'Validation': function (input) { - return input.trim ().length > 0; - }, - 'Save': function (input) { - this.storage ({ - player: { - name: input - } - }); - return true; - }, - 'Revert': function () { - this.storage ({ - player: { - name: '' - } - }); - }, - 'Warning': 'You must enter a name!' - } - }, - ] - }); - - cy.start (); - - cy.get ('text-input').should ('exist'); - cy.get ('[data-content="message"]').contains ('Input'); - cy.get ('[data-content="field"]').should ('be.visible'); - cy.get ('[type="submit"]').click (); - - cy.get ('[data-content="warning"]').contains ('You must enter a name!'); - }); - - it ('Shows a timer when one is provided', function () { - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'One', - { - 'Input': { - 'Text': 'Input', - 'Validation': function (input) { - return input.trim ().length > 0; - }, - 'Save': function (input) { - this.storage ({ - player: { - name: input - } - }); - return true; - }, - 'Revert': function () { - this.storage ({ - player: { - name: '' - } - }); - }, - 'Timer': { - // Time in milliseconds - time: 5000, - // The function to run when the time is over - callback: () => { - // Get all choices being shown and that are not disabled - // const choices = window.monogatari.element ().find ('[data-choice]:not([disabled])'); - - // // Pick one of those options randomly - // const random = choices.get (window.monogatari.random (0, choices.length - 1)); - - // // Fake a click on it - // random.click (); - - // Promise friendly! - return Promise.resolve (); - } - }, - 'Warning': 'You must enter a name!' - } - }, - 'Two', - ] - }); - - cy.start (); - - cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('equal', null); - cy.get ('text-box').contains ('One'); - - cy.proceed (); - - cy.get ('text-input').should ('exist'); - cy.get ('[data-content="message"]').contains ('Input'); - cy.get ('[data-content="field"]').should ('be.visible'); - cy.get ('timer-display').should ('be.visible'); - - cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('not.equal', null); - - cy.get ('[data-content="field"]').type ('My Name'); - - cy.get ('[type="submit"]').click (); - - cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('equal', null); - cy.get ('text-box').contains ('Two'); - - cy.rollback (); - - cy.get ('text-input').should ('exist'); - cy.get ('[data-content="message"]').contains ('Input'); - cy.get ('[data-content="field"]').should ('be.visible'); - cy.get ('timer-display').should ('be.visible'); - - cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('not.equal', null); - - cy.rollback (); - - cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('equal', null); - cy.get ('text-box').contains ('One'); - - }); - - it ('Gets filled automatically when timer is done', function () { - this.monogatari.setting ('TypeAnimation', false); - this.monogatari.script ({ - 'Start': [ - 'One', - { - 'Input': { - 'Text': 'Input', - 'Validation': function (input) { - return input.trim ().length > 0; - }, - 'Save': function (input) { - this.storage ({ - player: { - name: input - } - }); - return true; - }, - 'Revert': function () { - this.storage ({ - player: { - name: '' - } - }); - }, - 'Timer': { - // Time in milliseconds - time: 5000, - // The function to run when the time is over - callback: function () { - console.log ('DONE'); - // Get all choices being shown and that are not disabled - const input = this.element ().find ('text-input').get (0); - - input.content ('field').value ('My Name'); - - // // Pick one of those options randomly - const submit = input.element ().find ('button').get (0); - - // // Fake a click on it - submit.click (); - - // Promise friendly! - return Promise.resolve (); - } - }, - 'Warning': 'You must enter a name!' - } - }, - '{{player.name}}', - ] - }); - - cy.start (); - - cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('equal', null); - cy.get ('text-box').contains ('One'); - - cy.proceed (); - - cy.get ('text-input').should ('exist'); - cy.get ('[data-content="message"]').contains ('Input'); - cy.get ('[data-content="field"]').should ('be.visible'); - cy.get ('timer-display').should ('be.visible'); - - cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('not.equal', null); - - cy.wait (6000); - - cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('equal', null); - cy.get ('text-box').contains ('My Name'); - - cy.rollback (); - - cy.get ('text-input').should ('exist'); - cy.get ('[data-content="message"]').contains ('Input'); - cy.get ('[data-content="field"]').should ('be.visible'); - cy.get ('timer-display').should ('be.visible'); - - cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('not.equal', null); - - cy.rollback (); - - cy.wrap (this.monogatari).invoke ('global', '_InputTimer').should ('equal', null); - cy.get ('text-box').contains ('One'); - - }); -}); \ No newline at end of file diff --git a/cypress/plugins/index.js b/cypress/plugins/index.js index 701ce48..e2696f9 100644 --- a/cypress/plugins/index.js +++ b/cypress/plugins/index.js @@ -1,3 +1,4 @@ +/// // *********************************************************** // This example plugins/index.js can be used to load plugins // @@ -10,7 +11,11 @@ // This function is called when a project is opened or re-opened (e.g. due to // the project's config changing) -/* global module */ + +/** + * @type {Cypress.PluginConfig} + */ +// eslint-disable-next-line no-unused-vars module.exports = (on, config) => { // `on` is used to hook into various events Cypress emits // `config` is the resolved Cypress config diff --git a/cypress/support/commands.js b/cypress/support/commands.js index 15e60b6..224e65d 100644 --- a/cypress/support/commands.js +++ b/cypress/support/commands.js @@ -45,13 +45,18 @@ Cypress.Commands.add ('proceed',function () { }); Cypress.Commands.add ('rollback', function () { - this.monogatari.global ('block', false); this.monogatari.rollback (); // Prevent False Positives by waiting a bit cy.wait (150); }); +Cypress.Commands.add('clearStorage', function () { + this.monogatari.Storage.clear(); + + cy.wait (150); +}); + Cypress.Commands.add ('loadTestAssets', function (args) { const { nvl } = Object.assign ({ nvl: false @@ -59,8 +64,15 @@ Cypress.Commands.add ('loadTestAssets', function (args) { this.monogatari.settings ({ 'AssetsPath': { - root: 'https://datadyne.perfectdark.space/monogatari/assets' - } + root: 'https://datadyne.perfectdark.space/monogatari/assets', + music: 'music', + sounds: 'sounds', + voices: 'voices', + scenes: 'images', + images: 'images', + characters: 'characters', + }, + 'ExperimentalFeatures': true }); this.monogatari.assets ('videos', { @@ -73,11 +85,25 @@ Cypress.Commands.add ('loadTestAssets', function (args) { 'christmas': 'christmas.png' }); + this.monogatari.assets ('scenes', { + 'christmas': 'christmas.png' + }); + this.monogatari.assets ('music', { 'theme': 'theme.mp3', 'subspace': 'subspace.mp3' }); + // Use same audio files for sounds and voices since they exist on test server + this.monogatari.assets ('sounds', { + 'beep': 'theme.mp3', + 'coin': 'subspace.mp3' + }); + + this.monogatari.assets ('voices', { + 'sample': 'theme.mp3' + }); + this.monogatari.action ('particles').particles ({ 'snow': { 'particles': { @@ -437,12 +463,24 @@ Cypress.Commands.add ('loadTestAssets', function (args) { color: 'blue', name: 'Yui', directory: 'yui', + layers: ['base', 'mouth', 'eyes', 'eyebrows'], sprites: { angry: 'angry.png', happy: 'happy.png', normal: 'normal.png', sad: 'sad.png', surprised: 'surprised.png', + angry_layered: { + 'base': 'normal', + 'mouth': 'alone', + 'eyes': 'alone' + }, + happy_layered: { + 'base': 'arm_raised', + 'mouth': 'smile', + 'eyes': 'alone', + 'eyebrows': 'normal' + }, }, expressions: { angry: 'expressions/angry.png', @@ -451,6 +489,22 @@ Cypress.Commands.add ('loadTestAssets', function (args) { sad: 'expressions/sad.png', surprised: 'expressions/surprised.png', }, + layer_assets: { + base: { + normal: 'layers/base.png', + arm_raised: 'body/arm_raised.png' + }, + mouth: { + alone: 'layers/mouth_alone.png', + smile: 'mouth/smile.png' + }, + eyes: { + alone: 'layers/eyes_alone.png' + }, + eyebrows: { + normal: 'eyebrows/normal.png' + } + }, nvl }, 'yd1': { @@ -516,6 +570,19 @@ Cypress.Commands.add ('loadTestAssets', function (args) { } }); + this.monogatari.action ('Preload').blocks({ + 'default': { + 'music': ['theme.mp3', 'subspace.mp3'], + 'sounds': ['beep.mp3', 'coin.mp3'], + 'voices': ['sample.mp3'], + 'scenes': ['christmas.png'], + 'images': ['polaroid.jpg', 'christmas.png'], + 'characters': { + 'y': ['angry.png', 'happy.png', 'normal.png', 'sad.png', 'surprised.png'], + } + } + }); + // We'll add for a while to ensure all assets have been loaded // cy.wait (5000); }); @@ -528,4 +595,4 @@ Cypress.Commands.add ('load', function (slot) { return this.monogatari.loadFromSlot ('Save_' + slot).then (() => { this.monogatari.run (this.monogatari.label ()[this.monogatari.state ('step')]); }); -}); \ No newline at end of file +}); diff --git a/cypress/support/index.js b/cypress/support/e2e.js similarity index 82% rename from cypress/support/index.js rename to cypress/support/e2e.js index 37a498f..1fb1315 100644 --- a/cypress/support/index.js +++ b/cypress/support/e2e.js @@ -18,3 +18,8 @@ import './commands'; // Alternatively you can use CommonJS syntax: // require('./commands') + +Cypress.on('uncaught:exception', (error, runnable) => { + // Returning false here prevents Cypress from failing the test + return false; +}); \ No newline at end of file diff --git a/debug/index.js b/debug/index.js index 95e456a..f23d9e7 100644 --- a/debug/index.js +++ b/debug/index.js @@ -1,25 +1,806 @@ import './vendor/prism.js'; -import { FancyError } from '../src/lib/FancyError'; -import { $_ready } from '@aegis-framework/artemis'; - -/* global window */ - -window.addEventListener('error', (event) => { - const { message, lineno, filename } = event; - - // Once the DOM is ready, a Fancy Error will be shown providing more information - $_ready (() => { - FancyError.show ( - 'An Unknown Error Occurred', - message, - { - 'File': filename, - 'Line': lineno, - 'Help': { - '_': 'This is most likely a scripting error, please check your script and JavaScript code for missing commas or incorrect syntax.', - '_1': 'There may be additional information on your browser’s console. You can open your console by pressing Ctrl + Shift + I' - } - } - ); - }); -}); + + +// This global object signals to FancyError that we're in debug mode and +// fancy errors should be displayed. Without this, FancyError.show() will +// not display any errors. +if (typeof window === 'object') { + window.MonogatariDebug = { + enabled: true, + version: '1.0.0' + }; +} + +/** + * Register all error templates with the FancyError class. + * This is called after the Monogatari engine is loaded to ensure we use + * the same FancyError instance that the engine uses. + * @param FancyError + */ +function registerErrors(FancyError) { + // Canvas Action + FancyError.register('action:canvas:invalid_mode', { + title: 'The canvas mode provided ("{{mode}}") is not valid.', + message: 'Monogatari attempted to show a canvas object but the mode "{{mode}}" was not found in the canvas action configuration as a valid mode.', + props: { + 'Mode Provided': '{{mode}}', + 'You may have meant one of these': '{{validModes}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check your statement and make sure there are no typos on the mode you provided.' + } + } + }); + + FancyError.register('action:canvas:object_not_found', { + title: 'The canvas object "{{name}}" was not found or is invalid', + message: 'Monogatari attempted to retrieve an object named "{{name}}" but it didn\'t exist in the canvas objects.', + props: { + 'Canvas': '{{name}}', + 'You may have meant': '{{availableObjects}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check the object\'s name is correct and that you have defined it previously. A canvas object is defined as follows:', + '_1': ` +
+            
+              this.engine.action ('Canvas').objects ({
+                stars: {
+                  start: () => {},
+                  stop: () => {},
+                  restart: () => {},
+                  layers: [],
+                  state: {},
+                  props: {}
+                }
+              });
+            
+          
+ `, + '_2': 'Notice the object defined uses a name or an id, in this case it was set to "stars" and to show it, you must use that exact name:', + '_3': ` +
"show canvas stars background"
+ ` + } + } + }); + + // Dialog Action + FancyError.register('action:dialog:textbox_hidden', { + title: 'A dialog is being shown while the textbox is hidden', + message: 'Monogatari attempted to display a dialog but the textbox is currently hidden. The dialog will still be shown, but the player may not be able to see it.', + props: { + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'If you intentionally hid the textbox, make sure to show it again before displaying dialog:', + '_1': ` +
"show textbox"
+ `, + '_2': 'If you want to show visual elements without dialog while the textbox is hidden, use non-dialog actions like show image or show character.' + } + } + }); + + // Message Action + FancyError.register('action:message:not_found', { + title: 'The message "{{id}}" was not found', + message: 'Monogatari attempted to retrieve a message named "{{id}}" but it didn\'t exist in the messages object.', + props: { + 'Message': '{{id}}', + 'You may have meant': '{{availableMessages}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check the message name is correct and that you have defined it previously. A Message is defined as follows:', + '_1': ` +
+            
+              this.engine.action ('message').mesages ({
+                'Welcome': {
+                  title: 'Welcome!',
+                  subtitle: 'This is the Monogatari VN Engine',
+                  body: 'This is where the magic gets done!'
+                }
+              });
+            
+          
+ `, + '_2': 'Notice the message defined uses a name or an id, in this case it was set to "Welcome" and to show it, you must use that exact name:', + '_3': ` +
"show message Welcome"
+ ` + } + } + }); + + // HideCharacterLayer Action + FancyError.register('action:hide_character_layer:character_not_found', { + title: 'The character "{{asset}}" does not exist', + message: 'Monogatari attempted to get information about the character "{{asset}}" but it wasn\'t found on the characters object.', + props: { + 'Missing Character': '{{asset}}', + 'You may have meant one of these': '{{availableCharacters}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check your characters object and your script to make sure the character exists and that it does not have a typo in it.' + } + } + }); + + FancyError.register('action:hide_character_layer:layer_not_shown', { + title: 'The character layer "{{layer}}" can\'t hide because it\'s not being shown', + message: 'Monogatari attempted to hide the layer "{{layer}}" of the character "{{asset}}" but it was not being shown.', + props: { + 'Missing Layer': '{{layer}}', + 'Character': '{{asset}}', + 'You may have meant one of these': '{{availableCharacters}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check that before this hide action you have a show action that shows the character you want to hide.' + } + } + }); + + // HideCharacter Action + FancyError.register('action:hide_character:character_not_found', { + title: 'The character "{{asset}}" does not exist', + message: 'Monogatari attempted to get information about the character "{{asset}}" but it wasn\'t found on the characters object.', + props: { + 'Missing Character': '{{asset}}', + 'You may have meant one of these': '{{availableCharacters}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check your characters object and your script to make sure the character exists and that it does not have a typo in it.' + } + } + }); + + FancyError.register('action:hide_character:not_shown', { + title: 'The character "{{asset}}" can\'t hide because it\'s not being shown', + message: 'Monogatari attempted to hide the character "{{asset}}" but it was not being shown.', + props: { + 'Missing Character': '{{asset}}', + 'You may have meant one of these': '{{availableCharacters}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check that before this hide action you have a show action that shows the character you want to hide.' + } + } + }); + + // ShowCharacter Action + FancyError.register('action:show_character:character_not_found', { + title: 'The character "{{asset}}" does not exist', + message: 'Monogatari attempted to show the character "{{asset}}" but it wasn\'t found on the characters object.', + props: { + 'Missing Character': '{{asset}}', + 'You may have meant one of these': '{{availableCharacters}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check your characters object and your script to make sure the character exists and that it does not have a typo in it.' + } + } + }); + + FancyError.register('action:show_character:sprite_not_found', { + title: 'The sprite "{{sprite}}" for character "{{asset}}" does not exist', + message: 'Monogatari attempted to show the character "{{asset}}" with sprite "{{sprite}}" but the sprite wasn\'t found.', + props: { + 'Character': '{{asset}}', + 'Missing Sprite': '{{sprite}}', + 'Available Sprites': '{{availableSprites}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check that the sprite name is correctly defined in your character\'s sprites object.' + } + } + }); + + // ShowCharacterLayer Action + FancyError.register('action:show_character_layer:character_not_found', { + title: 'The character "{{asset}}" does not exist', + message: 'Monogatari attempted to show a layer for character "{{asset}}" but the character wasn\'t found on the characters object.', + props: { + 'Missing Character': '{{asset}}', + 'Layer': '{{layer}}', + 'You may have meant one of these': '{{availableCharacters}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check your characters object and your script to make sure the character exists and that it does not have a typo in it.' + } + } + }); + + FancyError.register('action:show_character_layer:sprite_not_found', { + title: 'The sprite "{{sprite}}" for layer "{{layer}}" of character "{{asset}}" does not exist', + message: 'Monogatari attempted to show a character layer but the sprite wasn\'t found in the layer assets.', + props: { + 'Character': '{{asset}}', + 'Layer': '{{layer}}', + 'Missing Sprite': '{{sprite}}', + 'Available Sprites': '{{availableSprites}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check that the sprite name is correctly defined in your character\'s layer_assets object for this layer.' + } + } + }); + + // HideImage Action + FancyError.register('action:hide_image:not_shown', { + title: 'The image "{{asset}}" can\'t hide because it\'s not being shown', + message: 'Monogatari attempted to hide the image "{{asset}}" but it was not being shown.', + props: { + 'Missing Image': '{{asset}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check that before this hide action you have a show action that shows the image you want to hide.' + } + } + }); + + // HideCanvas Action + FancyError.register('action:hide_canvas:not_shown', { + title: 'The canvas "{{name}}" can\'t hide because it\'s not being shown', + message: 'Monogatari attempted to hide the canvas "{{name}}" but it was not being shown.', + props: { + 'Canvas': '{{name}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check that before this hide action you have a show action that shows the canvas you want to hide.' + } + } + }); + + // Conditional Action + FancyError.register('action:conditional:negative_value', { + title: 'Conditional condition returned a negative number "{{value}}".', + message: 'The `Condition` function returned "{{value}}" and only positive numbers are allowed for numeric values.', + props: { + 'Problematic Value': '{{value}}', + 'You may have meant one of these': '{{availableBranches}}' + } + }); + + FancyError.register('action:conditional:non_integer_value', { + title: 'Conditional condition returned a non-integer value "{{value}}".', + message: 'The `Condition` function returned "{{value}}" and only integer numbers are allowed for numeric values.', + props: { + 'Problematic Value': '{{value}}', + 'You may have meant one of these': '{{availableBranches}}' + } + }); + + FancyError.register('action:conditional:branch_not_found', { + title: 'Conditional attempted to execute a non existent branch "{{branch}}"', + message: 'The `Condition` function returned "{{branch}}" as the branch to execute but it does not exist.', + props: { + 'Problematic Branch': '{{branch}}', + 'You may have meant one of these': '{{availableBranches}}' + } + }); + + // Notification Action + FancyError.register('action:notification:invalid_time', { + title: 'The specified time was not an integer', + message: 'Monogatari attempted to transform the given time into an integer value but failed.', + props: { + 'Specified time': '{{time}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.', + '_1': 'For example, the following statement would make a notification go away after 5 seconds:', + '_3': ` +
"show notification Welcome 5000"
+ ` + } + } + }); + + FancyError.register('action:notification:not_found', { + title: 'The notification "{{name}}" was not found', + message: 'Monogatari attempted to retrieve a notification named "{{name}}" but it didn\'t exist in the notifications object.', + props: { + 'Notification': '{{name}}', + 'You may have meant': '{{availableNotifications}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check the notification\'s name is correct and that you have defined it previously. A Notification is defined as follows:', + '_1': ` +
+            
+              this.engine.action ('Notification').notifications ({
+                'Welcome': {
+                  title: 'Welcome!',
+                  body: 'This is the Monogatari VN Engine',
+                  icon: ''
+                }
+              });
+            
+          
+ `, + '_2': 'Notice the notification defined uses a name or an id, in this case it was set to "Welcome" and to show it, you must use that exact name:', + '_3': ` +
"show notification Welcome"
+ ` + } + } + }); + + // Function Action + FancyError.register('action:function:apply_error', { + title: 'An error occurred while trying to revert a Reversible Function.', + message: 'Monogatari attempted to run the `Apply` method of a Reversible Function but an error occurred.', + props: { + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check the code for your function, there may be additional information in the console.', + } + } + }); + + FancyError.register('action:function:revert_error', { + title: 'An error occurred while trying to revert a Reversible Function.', + message: 'Monogatari attempted to run the `Revert` method of a Reversible Function but an error occurred.', + props: { + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check the code for your function, there may be additional information in the console.', + } + } + }); + + // Video Action + FancyError.register('action:video:invalid_mode', { + title: 'The video mode provided ("{{mode}}") is not valid.', + message: 'Monogatari attempted to play a video but the mode "{{mode}}" was not found in the video action configuration as a valid mode.', + props: { + 'Mode Provided': '{{mode}}', + 'You may have meant one of these': '{{validModes}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check your statement and make sure there are no typos on the mode you provided.' + } + } + }); + + // Wait Action + FancyError.register('action:wait:invalid_time', { + title: 'The specified time was not an integer', + message: 'Monogatari attempted to transform the given time into an integer value but failed.', + props: { + 'Specified time': '{{time}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.', + '_1': 'For example, the following statement would make the game wait for 5 seconds:', + '_3': ` +
"wait 5000"
+ ` + } + } + }); + + // Vibrate Action + FancyError.register('action:vibrate:invalid_time', { + title: 'The specified time was not an integer', + message: 'Monogatari attempted to transform the given time into an integer value but failed.', + props: { + 'Specified time': '{{time}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.', + '_1': 'For example, the following statement would make the device vibrate for 5 seconds:', + '_3': ` +
"vibrate 5000"
+ `, + '_4': 'If you wanted to make the device vibrate on a pattern, this is a correct syntax:', + '_5': ` +
"vibrate 5000 100 4000 200 3000"
+ ` + } + } + }); + + // Jump Action + FancyError.register('action:jump:label_not_found', { + title: 'The label "{{targetLabel}}" does not exist', + message: 'Monogatari attempted to jump to the label named "{{targetLabel}}" but it wasn\'t found on the script.', + props: { + 'Missing Label': '{{targetLabel}}', + 'You may have meant one of these': '{{availableLabels}}', + 'Statement': '{{statement}}', + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'Check if the label in your jump statement is correct and that you have also defined it correctly.' + } + } + }); + + // Language Selection Screen + FancyError.register('component:language_selection_screen:metadata_not_found', { + title: 'Metadata for language "{{language}}" could not be found.', + message: 'Monogatari attempted to retrieve the metadata for this language but it does not exists', + props: { + 'Language Not Found': '{{language}}', + 'You may have meant one of these': '{{availableLanguages}}', + 'Help': { + '_': 'Please check that you have defined the metadata for this language. Remember the metadata is defined as follows:', + '_1': ` +
+            
+            monogatari.languageMetadata ("EspaƱol", {
+              "code": "es",
+              "icon": "šŸ‡²šŸ‡½"
+            });
+            
+          
+ `, + 'Documentation': 'Internationalization' + } + } + }); + + // ---------------------------------------------------------------------------- + // Engine Errors + // ---------------------------------------------------------------------------- + + // Translation Errors + FancyError.register('engine:translation:key_not_found', { + title: 'Translation for string "{{key}}" could not be found', + message: 'Monogatari attempted to find a translation for the current language set in the preferences but there was none.', + props: { + 'String Not Found': '{{key}}', + 'Language': '{{language}}', + 'Found in these elements': '{{elements}}', + 'You may have meant one of these': '{{availableStrings}}', + 'Help': { + '_': 'Please check that this string has been correctly defined in your translations. A translation is defined as follows:', + '_1': ` +
+            
+            monogatari.translation ("YourLanguage", {
+              "SomeString": "Your Translation"
+            });
+            
+          
+ `, + '_2': 'You may also want to check if the [data-string] property of the HTML elements above is correct or if they have a typo.', + 'Documentation': 'Internationalization' + } + } + }); + + FancyError.register('engine:translation:language_not_found', { + title: 'Language could not be found', + message: 'Monogatari attempted to translate the UI using the current language set in the preferences but no translations could be found for it.', + props: { + 'Problematic Language': '{{language}}', + 'You may have meant one of these': '{{availableLanguages}}', + 'Help': { + '_': 'Please check if you have defined correctly the translations for this language, translations are defined as follows:', + '_1': ` +
+            
+            monogatari.translation ("YourLanguage", {
+              "SomeString": "Your Translation"
+            });
+            
+          
+ `, + '_2': 'You may also want to check if the value of your language selector is right:', + '_3': '{{languageSelectorValue}}', + 'Documentation': 'Internationalization' + } + } + }); + + // Component Registration Errors + FancyError.register('engine:component:already_registered', { + title: 'Unable to register component "{{tag}}"', + message: 'Monogatari attempted to register a component but another component had already been registered for the same tag.', + props: { + 'Component / Tag': '{{component}}', + 'Help': { + '_': 'Once a component for a tag has been registered and the setup has completed, it can not be replaced or removed. Try removing the conflicting component first:', + '_1': '{{unregisterCode}}', + } + } + }); + + FancyError.register('engine:component:unregister_after_setup', { + title: 'Unable to unregister component "{{component}}"', + message: 'Monogatari attempted to unregister a component but the setup had already happened.', + props: { + 'Component': '{{component}}', + 'Help': { + '_': 'Components can only be unregistered before the setup step is completed.', + '_1': 'Try performing this action before the monogatari.init () function is called.' + } + } + }); + + // Script Errors + FancyError.register('engine:script:language_not_found', { + title: 'Script Language "{{language}}" Was Not Found', + message: 'Monogatari attempted to retrieve the script for this language but it does not exists', + props: { + 'Language Not Found': '{{language}}', + 'MultiLanguage Setting': '{{multiLanguageSetting}}', + 'You may have meant one of these': '{{availableLanguages}}', + 'Help': { + '_': 'If your game is not a multilanguage game, change the setting on your options.js file', + '_1': ` +
+            
+            "MultiLanguage": false,
+            
+          
+ `, + '_2': 'If your game is a multilanguage game, please check that the language label is correctly written on your script. Remember a multilanguage script looks like this:', + '_3': ` +
+            
+            monogatari.script ({
+              'English': {
+                'Start': [
+                  'Hi, welcome to your first Visual Novel with Monogatari.'
+                ]
+              },
+              'EspaƱol': {
+                'Start': [
+                  'Hola, bienvenido a tu primer Novela Visual con Monogatari'
+                ]
+              }
+            });
+            
+          
+ ` + } + } + }); + + FancyError.register('engine:script:label_not_found', { + title: '"{{startLabel}}" Label was not found', + message: 'Monogatari tried to get your start label but it couldn\'t find it in your script.', + props: { + 'Start Label on your Settings': '{{startLabel}}', + 'Labels Available': '{{availableLabels}}', + 'Help': { + '_': 'Please check that the label exists in your script.' + } + } + }); + + // Storage Errors + FancyError.register('engine:storage:variable_not_found', { + title: 'Variable "{{variable}}" does not exists in your storage', + message: 'Monogatari attempted to interpolate a variable from your storage but it doesn\'t exists.', + props: { + 'Script Statement': '{{statement}}', + 'Part Not Found': '{{partNotFound}}', + 'Variables Available in Storage': '{{availableVariables}}', + 'Help': { + '_': 'Please check your storage object and make sure the variable you are using exists.', + '_1': 'You should also make sure that there is no typo in your script and that the variable names in your script and storage match.', + 'Documentation': 'Storage' + } + } + }); + + // Runtime Errors + FancyError.register('engine:run:function_error', { + title: 'An error occurred while trying to run a Function.', + message: 'Monogatari attempted to run a function on the script but an error occurred.', + props: { + 'Label': '{{label}}', + 'Step': '{{step}}', + 'Help': { + '_': 'More details should be available at the console.', + } + } + }); + + // Lifecycle Errors + FancyError.register('engine:lifecycle:should_proceed_error', { + title: 'An error ocurred while trying to execute a shouldProceed function.', + message: 'Monogatari attempted to execute the function but an error ocurred.', + props: { + 'Error Message': '{{errorMessage}}', + 'Help': { + '_': 'More details should be available at the console.', + } + } + }); + + FancyError.register('engine:lifecycle:will_proceed_error', { + title: 'An error ocurred while trying to execute a willProceed function.', + message: 'Monogatari attempted to execute the function but an error ocurred.', + props: { + 'Error Message': '{{errorMessage}}', + 'Help': { + '_': 'More details should be available at the console.', + } + } + }); + + FancyError.register('engine:lifecycle:should_rollback_error', { + title: 'An error ocurred while trying to execute a shouldRollback function.', + message: 'Monogatari attempted to execute the function but an error ocurred.', + props: { + 'Error Message': '{{errorMessage}}', + 'Help': { + '_': 'More details should be available at the console.', + } + } + }); + + FancyError.register('engine:lifecycle:will_rollback_error', { + title: 'An error ocurred while trying to execute a willRollback function.', + message: 'Monogatari attempted to execute the function but an error ocurred.', + props: { + 'Error Message': '{{errorMessage}}', + 'Help': { + '_': 'More details should be available at the console.', + } + } + }); + + // Music Errors + FancyError.register('engine:music:not_defined', { + title: 'The music "{{music}}" is not defined.', + message: 'Monogatari attempted to find a definition of a music asset but there was none.', + props: { + 'Music Not Found': '{{music}}', + 'You may have meant one of these': '{{availableMusic}}', + 'Help': { + '_': 'Please check that you have correctly defined this music asset and wrote its name correctly in the `MainScreenMusic` variable', + '_1': ` +
+            
+            'MainScreenMusic': 'TheKeyToYourMusicAsset'
+            
+          
+ `, + } + } + }); + + // Element Errors + FancyError.register('engine:element:not_ready', { + title: 'Main element is not ready yet', + message: 'Monogatari attempted to execute a function when the main element was not fully loaded yet.', + props: { + 'Trace': 'You should be able to see an error with the order in which functions were executed in your browser\'s console (Ctrl + Shift + i). The last one should be part of your code and that\'s the one that needs to be changed.', + 'Help': { + '_': 'Please wrap or move your code into a $_ready () function block to wait for the page to be fully loaded before executing it.', + '_1': ` +
+            
+            monogatari.ready ('#monogatari', () => {
+              // Your code should go here
+            });
+            
+          
+ ` + } + } + }); + + // Component Lifecycle Errors + FancyError.register('engine:component:lifecycle_error', { + title: 'Error in component <{{tag}}> during {{lifecycle}}', + message: 'An error occurred while executing the {{lifecycle}} lifecycle method.', + props: { + 'Component': '{{tag}}', + 'Lifecycle Method': '{{lifecycle}}', + 'Error Message': '{{errorMessage}}', + 'Stack Trace': '{{stackTrace}}', + 'Help': { + '_': 'Check the console for more details about this error.', + '_1': 'Make sure all async operations in lifecycle methods are properly handled.' + } + } + }); + + FancyError.register('engine:storage:filesystem_no_bridge', { + title: 'FileSystem storage requires a desktop environment', + message: 'The FileSystem storage adapter is only available in Electron or Electrobun. Change your Storage adapter to IndexedDB or LocalStorage for browser-based games.', + props: { + 'Suggested Fix': 'Set Storage.Adapter to "IndexedDB" in your game settings, or run your game in an Electron or Electrobun wrapper.', + } + }); + + FancyError.register('engine:screenshots:storage_incompatible', { + title: 'Screenshot saving requires IndexedDB or custom storage', + message: 'Automatic screenshot saving is not supported with LocalStorage or SessionStorage due to storage size limits. Either change your Storage adapter to IndexedDB or provide custom onSaveScreenshot and onLoadScreenshot callbacks.', + props: { + 'Current Adapter': '{{adapter}}', + 'Suggested Fix': 'Set Storage.Adapter to "IndexedDB" in your game settings, or provide custom onSaveScreenshot/onLoadScreenshot callbacks.', + } + }); +} + +// Wait for Monogatari to be available, then register all errors with its +// FancyError instance. This ensures we use the same instance the engine uses. +if (typeof window === 'object') { + // Poll for Monogatari to be available (it loads after this script) + const waitForMonogatari = () => { + if (window.Monogatari && window.Monogatari.FancyError) { + registerErrors(window.Monogatari.FancyError); + } else { + // Check again on next frame + requestAnimationFrame(waitForMonogatari); + } + }; + + // Start checking + if (document.readyState === 'loading') { + document.addEventListener('DOMContentLoaded', waitForMonogatari); + } else { + waitForMonogatari(); + } +} + +if (typeof window === 'object') { + window.addEventListener('error', (event) => { + const { message, lineno, filename } = event; + + // Once the DOM is ready, a Fancy Error will be shown providing more information + window.addEventListener('DOMContentLoaded', () => { + // Use Monogatari's FancyError if available + const FancyError = window.Monogatari?.FancyError; + if (FancyError) { + FancyError.show ( + 'An Unknown Error Occurred', + message, + { + 'File': filename, + 'Line': lineno, + 'Help': { + '_': 'This is most likely a scripting error, please check your script and JavaScript code for missing commas or incorrect syntax.', + '_1': 'There may be additional information on your browser\'s console. You can open your console by pressing Ctrl + Shift + I' + } + } + ); + } + }); + }); +} diff --git a/dist/.htaccess b/dist/.htaccess deleted file mode 100755 index 28f9166..0000000 --- a/dist/.htaccess +++ /dev/null @@ -1,96 +0,0 @@ -# ---------------------------------------------------------------------- -# UTF-8 encoding -# ---------------------------------------------------------------------- - -# Use UTF-8 encoding for anything served text/plain or text/html -AddDefaultCharset utf-8 - -# Force UTF-8 for a number of file formats -AddCharset utf-8 .atom .css .js .json .rss .vtt .xml - -# ---------------------------------------------------------------------- -# Some Security -# ---------------------------------------------------------------------- - -IndexIgnore .htaccess */.??* *~ *# */HEADER* */README* */_vti* -SetEnvIfNoCase User-Agent "^libwww-perl*" block_bad_bots -Deny from env=block_bad_bots - - - order deny,allow - deny from all - allow from all - - - - order deny,allow - deny from all - - -# Prevent Folder's browsing - - Options -Indexes - - -# Block access to "hidden" directories or files - - RewriteCond %{SCRIPT_FILENAME} -d [OR] - RewriteCond %{SCRIPT_FILENAME} -f - RewriteRule "(^|/)\." - [F] - - -# Block access to backup and source files. - - Order allow,deny - Deny from all - Satisfy All - - -# Increase cookie security - - php_value session.cookie_httponly true - - -# Disable server signature -ServerSignature Off - -# ---------------------------------------------------------------------- -# Make the index handle all Request's -# ---------------------------------------------------------------------- - - - RewriteEngine On - RewriteBase / - RewriteCond %{REQUEST_URI} ^system.* - RewriteRule ^(.*)$ /index.html?/$1 [L] - RewriteCond %{REQUEST_FILENAME} !-f - RewriteCond %{REQUEST_FILENAME} !-d - RewriteRule ^(.*)$ index.html?/$1 [L] - - -# ---------------------------------------------------------------------- -# Error Documents -# ---------------------------------------------------------------------- -ErrorDocument 400 /engine/error/400.html -ErrorDocument 401 /engine/error/401.html -ErrorDocument 403 /engine/error/403.html -ErrorDocument 404 /engine/error/404.html -ErrorDocument 405 /engine/error/405.html -ErrorDocument 408 /engine/error/408.html -ErrorDocument 429 /engine/error/429.html -ErrorDocument 500 /engine/error/500.html -ErrorDocument 503 /engine/error/503.html - -# ---------------------------------------------------------------------- -# Enable Gzip -# ---------------------------------------------------------------------- - - mod_gzip_on Yes - mod_gzip_dechunk Yes - mod_gzip_item_include file .(html?|txt|css|js|php|pl)$ - mod_gzip_item_include handler ^cgi-script$ - mod_gzip_item_include mime ^text/.* - mod_gzip_item_include mime ^application/x-javascript.* - mod_gzip_item_exclude mime ^image/.* - mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* - \ No newline at end of file diff --git a/dist/build-web.ts b/dist/build-web.ts new file mode 100644 index 0000000..0beaf03 --- /dev/null +++ b/dist/build-web.ts @@ -0,0 +1,33 @@ +import { cpSync, mkdirSync, readFileSync, rmSync, writeFileSync } from "fs"; +import { join } from "path"; + +const OUT_DIR = "./build/web"; + +// Clean output directory +rmSync(OUT_DIR, { recursive: true, force: true }); +mkdirSync(OUT_DIR, { recursive: true }); + +// Copy game files +const include = [ + "assets", + "engine/core", + "engine/LICENSE", + "js", + "style", + "favicon.ico", + "manifest.json", + "service-worker.js", +]; + +for (const entry of include) { + cpSync(entry, join(OUT_DIR, entry), { recursive: true }); +} + +// Copy index.html with debug script removed +const html = readFileSync("index.html", "utf-8"); +const cleanedHtml = html + .replace(/\s*\s*\n/s, "\n") + .replace(/\s*\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n }\n\n if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-auto-a11y', 'autoA11y'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n\n var val = coerce(getAttrConfig(attr));\n\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n }\n\n var _default = {\n familyPrefix: DEFAULT_FAMILY_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n autoA11y: true,\n searchPseudoElements: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n };\n\n var _config = _objectSpread({}, _default, initial);\n\n if (!_config.autoReplaceSvg) _config.observeMutations = false;\n\n var config = _objectSpread({}, _config);\n\n WINDOW.FontAwesomeConfig = config;\n\n var w = WINDOW || {};\n if (!w[NAMESPACE_IDENTIFIER]) w[NAMESPACE_IDENTIFIER] = {};\n if (!w[NAMESPACE_IDENTIFIER].styles) w[NAMESPACE_IDENTIFIER].styles = {};\n if (!w[NAMESPACE_IDENTIFIER].hooks) w[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w[NAMESPACE_IDENTIFIER].shims) w[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w[NAMESPACE_IDENTIFIER];\n\n var functions = [];\n\n var listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n };\n\n var loaded = false;\n\n if (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', listener);\n }\n\n function domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n }\n\n var PENDING = 'pending';\n var SETTLED = 'settled';\n var FULFILLED = 'fulfilled';\n var REJECTED = 'rejected';\n\n var NOOP = function NOOP() {};\n\n var isNode = typeof global !== 'undefined' && typeof global.process !== 'undefined' && typeof global.process.emit === 'function';\n var asyncSetTimer = typeof setImmediate === 'undefined' ? setTimeout : setImmediate;\n var asyncQueue = [];\n var asyncTimer;\n\n function asyncFlush() {\n // run promise callbacks\n for (var i = 0; i < asyncQueue.length; i++) {\n asyncQueue[i][0](asyncQueue[i][1]);\n } // reset async asyncQueue\n\n\n asyncQueue = [];\n asyncTimer = false;\n }\n\n function asyncCall(callback, arg) {\n asyncQueue.push([callback, arg]);\n\n if (!asyncTimer) {\n asyncTimer = true;\n asyncSetTimer(asyncFlush, 0);\n }\n }\n\n function invokeResolver(resolver, promise) {\n function resolvePromise(value) {\n resolve(promise, value);\n }\n\n function rejectPromise(reason) {\n reject(promise, reason);\n }\n\n try {\n resolver(resolvePromise, rejectPromise);\n } catch (e) {\n rejectPromise(e);\n }\n }\n\n function invokeCallback(subscriber) {\n var owner = subscriber.owner;\n var settled = owner._state;\n var value = owner._data;\n var callback = subscriber[settled];\n var promise = subscriber.then;\n\n if (typeof callback === 'function') {\n settled = FULFILLED;\n\n try {\n value = callback(value);\n } catch (e) {\n reject(promise, e);\n }\n }\n\n if (!handleThenable(promise, value)) {\n if (settled === FULFILLED) {\n resolve(promise, value);\n }\n\n if (settled === REJECTED) {\n reject(promise, value);\n }\n }\n }\n\n function handleThenable(promise, value) {\n var resolved;\n\n try {\n if (promise === value) {\n throw new TypeError('A promises callback cannot return that same promise.');\n }\n\n if (value && (typeof value === 'function' || _typeof(value) === 'object')) {\n // then should be retrieved only once\n var then = value.then;\n\n if (typeof then === 'function') {\n then.call(value, function (val) {\n if (!resolved) {\n resolved = true;\n\n if (value === val) {\n fulfill(promise, val);\n } else {\n resolve(promise, val);\n }\n }\n }, function (reason) {\n if (!resolved) {\n resolved = true;\n reject(promise, reason);\n }\n });\n return true;\n }\n }\n } catch (e) {\n if (!resolved) {\n reject(promise, e);\n }\n\n return true;\n }\n\n return false;\n }\n\n function resolve(promise, value) {\n if (promise === value || !handleThenable(promise, value)) {\n fulfill(promise, value);\n }\n }\n\n function fulfill(promise, value) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = value;\n asyncCall(publishFulfillment, promise);\n }\n }\n\n function reject(promise, reason) {\n if (promise._state === PENDING) {\n promise._state = SETTLED;\n promise._data = reason;\n asyncCall(publishRejection, promise);\n }\n }\n\n function publish(promise) {\n promise._then = promise._then.forEach(invokeCallback);\n }\n\n function publishFulfillment(promise) {\n promise._state = FULFILLED;\n publish(promise);\n }\n\n function publishRejection(promise) {\n promise._state = REJECTED;\n publish(promise);\n\n if (!promise._handled && isNode) {\n global.process.emit('unhandledRejection', promise._data, promise);\n }\n }\n\n function notifyRejectionHandled(promise) {\n global.process.emit('rejectionHandled', promise);\n }\n /**\n * @class\n */\n\n\n function P(resolver) {\n if (typeof resolver !== 'function') {\n throw new TypeError('Promise resolver ' + resolver + ' is not a function');\n }\n\n if (this instanceof P === false) {\n throw new TypeError('Failed to construct \\'Promise\\': Please use the \\'new\\' operator, this object constructor cannot be called as a function.');\n }\n\n this._then = [];\n invokeResolver(resolver, this);\n }\n\n P.prototype = {\n constructor: P,\n _state: PENDING,\n _then: null,\n _data: undefined,\n _handled: false,\n then: function then(onFulfillment, onRejection) {\n var subscriber = {\n owner: this,\n then: new this.constructor(NOOP),\n fulfilled: onFulfillment,\n rejected: onRejection\n };\n\n if ((onRejection || onFulfillment) && !this._handled) {\n this._handled = true;\n\n if (this._state === REJECTED && isNode) {\n asyncCall(notifyRejectionHandled, this);\n }\n }\n\n if (this._state === FULFILLED || this._state === REJECTED) {\n // already resolved, call callback async\n asyncCall(invokeCallback, subscriber);\n } else {\n // subscribe\n this._then.push(subscriber);\n }\n\n return subscriber.then;\n },\n catch: function _catch(onRejection) {\n return this.then(null, onRejection);\n }\n };\n\n P.all = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.all().');\n }\n\n return new P(function (resolve, reject) {\n var results = [];\n var remaining = 0;\n\n function resolver(index) {\n remaining++;\n return function (value) {\n results[index] = value;\n\n if (! --remaining) {\n resolve(results);\n }\n };\n }\n\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolver(i), reject);\n } else {\n results[i] = promise;\n }\n }\n\n if (!remaining) {\n resolve(results);\n }\n });\n };\n\n P.race = function (promises) {\n if (!Array.isArray(promises)) {\n throw new TypeError('You must pass an array to Promise.race().');\n }\n\n return new P(function (resolve, reject) {\n for (var i = 0, promise; i < promises.length; i++) {\n promise = promises[i];\n\n if (promise && typeof promise.then === 'function') {\n promise.then(resolve, reject);\n } else {\n resolve(promise);\n }\n }\n });\n };\n\n P.resolve = function (value) {\n if (value && _typeof(value) === 'object' && value.constructor === P) {\n return value;\n }\n\n return new P(function (resolve) {\n resolve(value);\n });\n };\n\n P.reject = function (reason) {\n return new P(function (resolve, reject) {\n reject(reason);\n });\n };\n\n var picked = typeof Promise === 'function' ? Promise : P;\n\n var d = UNITS_IN_GRID;\n var meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n };\n\n function isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n }\n\n function bunker(fn) {\n try {\n fn();\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n function insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n }\n var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n function nextUniqueId() {\n var size = 12;\n var id = '';\n\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n\n return id;\n }\n function toArray(obj) {\n var array = [];\n\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n\n return array;\n }\n function classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n }\n function getIconName(familyPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n\n if (prefix === familyPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n }\n function htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n }\n function joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n }\n function joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName], \";\");\n }, '');\n }\n function transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n }\n function transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n }\n function transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d - width / 2, \"em, \").concat(transform.y / d - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d, \"em), calc(-50% + \").concat(transform.y / d, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d, \"em, \").concat(transform.y / d, \"em) \");\n }\n\n val += \"scale(\".concat(transform.size / d * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n }\n\n var ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n };\n\n function fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n\n return abstract;\n }\n\n function deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n }\n\n function makeIconMasking (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread({}, ALL_SPACE, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [fillBlack(_objectSpread({\n tag: mainPath.tag,\n attributes: _objectSpread({}, mainPath.attributes, trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread({}, ALL_SPACE, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread({\n fill: 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n mask: \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n }\n\n function makeIconStandard (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n transform = _ref.transform,\n styles = _ref.styles;\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n if (transformIsMeaningful(transform)) {\n var trans = transformForSvg({\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n children.push({\n tag: 'g',\n attributes: _objectSpread({}, trans.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread({}, trans.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread({}, main.icon.attributes, trans.path)\n }]\n }]\n });\n } else {\n children.push(main.icon);\n }\n\n return {\n children: children,\n attributes: attributes\n };\n }\n\n function asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread({}, styles, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n }\n\n function asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.familyPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread({}, attributes, {\n id: id\n }),\n children: children\n }]\n }];\n }\n\n function makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n title = params.title,\n maskId = params.maskId,\n titleId = params.titleId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n\n var isUploadedIcon = prefix === 'fak';\n var widthClass = isUploadedIcon ? '' : \"fa-w-\".concat(Math.ceil(width / height * 16));\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.familyPrefix, \"-\").concat(iconName) : '', widthClass].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread({}, extra.attributes, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'xmlns': 'http://www.w3.org/2000/svg',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n var uploadedIconWidthStyle = isUploadedIcon && !~extra.classes.indexOf('fa-fw') ? {\n width: \"\".concat(width / height * 16 * 0.0625, \"em\")\n } : {};\n\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n\n if (title) content.children.push({\n tag: 'title',\n attributes: {\n id: content.attributes['aria-labelledby'] || \"title-\".concat(titleId || nextUniqueId())\n },\n children: [title]\n });\n\n var args = _objectSpread({}, content, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread({}, uploadedIconWidthStyle, extra.styles)\n });\n\n var _ref2 = mask.found && main.found ? makeIconMasking(args) : makeIconStandard(args),\n children = _ref2.children,\n attributes = _ref2.attributes;\n\n args.children = children;\n args.attributes = attributes;\n\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n }\n function makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n title = params.title,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n\n var styles = _objectSpread({}, extra.styles);\n\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n\n var styleString = joinStyles(styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n }\n function makeLayersCounterAbstract(params) {\n var content = params.content,\n title = params.title,\n extra = params.extra;\n\n var attributes = _objectSpread({}, extra.attributes, title ? {\n 'title': title\n } : {}, {\n 'class': extra.classes.join(' ')\n });\n\n var styleString = joinStyles(extra.styles);\n\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n\n if (title) {\n val.push({\n tag: 'span',\n attributes: {\n class: 'sr-only'\n },\n children: [title]\n });\n }\n\n return val;\n }\n\n var noop$1 = function noop() {};\n\n var p = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n };\n var preamble = \"FA \\\"5.15.2\\\"\";\n\n var begin = function begin(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n };\n\n var end = function end(name) {\n p.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n };\n\n var perf = {\n begin: begin,\n end: end\n };\n\n /**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n\n var bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n };\n\n /**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n\n\n var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n\n return result;\n };\n\n function toHex(unicode) {\n var result = '';\n\n for (var i = 0; i < unicode.length; i++) {\n var hex = unicode.charCodeAt(i).toString(16);\n result += ('000' + hex).slice(-4);\n }\n\n return result;\n }\n\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n\n return acc;\n }, {});\n\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalized);\n } else {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, normalized);\n }\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll easy the upgrade process for our users by automatically defining\n * this as well.\n */\n\n\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var styles = namespace.styles,\n shims = namespace.shims;\n var _byUnicode = {};\n var _byLigature = {};\n var _byOldName = {};\n var build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o, style, prefix) {\n o[prefix] = reduce(style, reducer, {});\n return o;\n }, {});\n };\n\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n var ligatures = icon[2];\n acc[iconName] = iconName;\n ligatures.forEach(function (ligature) {\n acc[ligature] = iconName;\n });\n return acc;\n });\n var hasRegular = 'far' in styles;\n _byOldName = reduce(shims, function (acc, shim) {\n var oldName = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n\n acc[oldName] = {\n prefix: prefix,\n iconName: iconName\n };\n return acc;\n }, {});\n };\n build();\n function byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n }\n function byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n }\n function byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n }\n\n var styles$1 = namespace.styles;\n var emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n };\n function getCanonicalIcon(values) {\n return values.reduce(function (acc, cls) {\n var iconName = getIconName(config.familyPrefix, cls);\n\n if (styles$1[cls]) {\n acc.prefix = cls;\n } else if (config.autoFetchSvg && Object.keys(PREFIX_TO_STYLE).indexOf(cls) > -1) {\n acc.prefix = cls;\n } else if (iconName) {\n var shim = acc.prefix === 'fa' ? byOldName(iconName) : {};\n acc.iconName = shim.iconName || iconName;\n acc.prefix = shim.prefix || acc.prefix;\n } else if (cls !== config.replacementClass && cls.indexOf('fa-w-') !== 0) {\n acc.rest.push(cls);\n }\n\n return acc;\n }, emptyCanonicalIcon());\n }\n function iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n }\n\n function toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n }\n\n var noop$2 = function noop() {};\n\n function isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n }\n\n function getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n }\n\n var mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n var newOuterHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n\n if (node.parentNode && node.outerHTML) {\n node.outerHTML = newOuterHTML + (config.keepOriginalSource && node.tagName.toLowerCase() !== 'svg' ? \"\") : '');\n } else if (node.parentNode) {\n var newNode = document.createElement('span');\n node.parentNode.replaceChild(newNode, node);\n newNode.outerHTML = newOuterHTML;\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1]; // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n\n var forSvg = new RegExp(\"\".concat(config.familyPrefix, \"-.*\"));\n delete abstract[0].attributes.style;\n delete abstract[0].attributes.id;\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute('class', splitClasses.toNode.join(' '));\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n };\n\n function performOperationSync(op) {\n op();\n }\n\n function perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n }\n var disabled = false;\n function disableObservation() {\n disabled = true;\n }\n function enableObservation() {\n disabled = false;\n }\n var mo = null;\n function observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n\n if (!config.observeMutations) {\n return;\n }\n\n var treeCallback = options.treeCallback,\n nodeCallback = options.nodeCallback,\n pseudoElementsCallback = options.pseudoElementsCallback,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n\n treeCallback(mutationRecord.target);\n }\n\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target.parentNode);\n }\n\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class') {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n\n if (prefix) mutationRecord.target.setAttribute('data-prefix', prefix);\n if (iconName) mutationRecord.target.setAttribute('data-icon', iconName);\n } else {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n }\n function disconnect() {\n if (!mo) return;\n mo.disconnect();\n }\n\n function styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n\n return acc;\n }, {});\n }\n\n return val;\n }\n\n function classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n\n if (val.prefix && innerText.length > 1) {\n val.iconName = byLigature(val.prefix, node.innerText);\n } else if (val.prefix && innerText.length === 1) {\n val.iconName = byUnicode(val.prefix, toHex(node.innerText));\n }\n\n return val;\n }\n\n var parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n\n if (!transformString) {\n return transform;\n } else {\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n\n rest = parseFloat(rest);\n\n if (isNaN(rest)) {\n return acc;\n }\n\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n\n case 'left':\n acc.x = acc.x - rest;\n break;\n\n case 'right':\n acc.x = acc.x + rest;\n break;\n\n case 'up':\n acc.y = acc.y - rest;\n break;\n\n case 'down':\n acc.y = acc.y + rest;\n break;\n\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n\n return acc;\n }, transform);\n }\n };\n function transformParser (node) {\n return parseTransformString(node.getAttribute('data-fa-transform'));\n }\n\n function symbolParser (node) {\n var symbol = node.getAttribute('data-fa-symbol');\n return symbol === null ? false : symbol === '' ? true : symbol;\n }\n\n function attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n\n return acc;\n }, {});\n var title = node.getAttribute('title');\n var titleId = node.getAttribute('data-fa-title-id');\n\n if (config.autoA11y) {\n if (title) {\n extraAttributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n extraAttributes['aria-hidden'] = 'true';\n extraAttributes['focusable'] = 'false';\n }\n }\n\n return extraAttributes;\n }\n\n function maskParser (node) {\n var mask = node.getAttribute('data-fa-mask');\n\n if (!mask) {\n return emptyCanonicalIcon();\n } else {\n return getCanonicalIcon(mask.split(' ').map(function (i) {\n return i.trim();\n }));\n }\n }\n\n function blankMeta() {\n return {\n iconName: null,\n title: null,\n titleId: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: null,\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n }\n function parseMeta(node) {\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n\n var extraStyles = styleParser(node);\n var transform = transformParser(node);\n var symbol = symbolParser(node);\n var extraAttributes = attributesParser(node);\n var mask = maskParser(node);\n return {\n iconName: iconName,\n title: node.getAttribute('title'),\n titleId: node.getAttribute('data-fa-title-id'),\n prefix: prefix,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: node.getAttribute('data-fa-mask-id'),\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n };\n }\n\n function MissingIcon(error) {\n this.name = 'MissingIcon';\n this.message = error || 'Icon unavailable';\n this.stack = new Error().stack;\n }\n MissingIcon.prototype = Object.create(Error.prototype);\n MissingIcon.prototype.constructor = MissingIcon;\n\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n var RING = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n };\n\n var OPACITY_ANIMATE = _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'opacity'\n });\n\n var DOT = {\n tag: 'circle',\n attributes: _objectSpread({}, FILL, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, ANIMATION_BASE, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;1;1;0;1;'\n })\n }]\n };\n var QUESTION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '1;0;0;0;0;1;'\n })\n }]\n };\n var EXCLAMATION = {\n tag: 'path',\n attributes: _objectSpread({}, FILL, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread({}, OPACITY_ANIMATE, {\n values: '0;0;1;1;0;0;'\n })\n }]\n };\n var missing = {\n tag: 'g',\n children: [RING, DOT, QUESTION, EXCLAMATION]\n };\n\n var styles$2 = namespace.styles;\n function asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n\n var element = null;\n\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.familyPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n }\n function findIcon(iconName, prefix) {\n return new picked(function (resolve, reject) {\n var val = {\n found: false,\n width: 512,\n height: 512,\n icon: missing\n };\n\n if (iconName && prefix && styles$2[prefix] && styles$2[prefix][iconName]) {\n var icon = styles$2[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n\n if (iconName && prefix && !config.showMissingIcons) {\n reject(new MissingIcon(\"Icon is missing for prefix \".concat(prefix, \" with icon name \").concat(iconName)));\n } else {\n resolve(val);\n }\n });\n }\n\n var styles$3 = namespace.styles;\n\n function generateSvgReplacementMutation(node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n title = nodeMeta.title,\n titleId = nodeMeta.titleId,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new picked(function (resolve, reject) {\n picked.all([findIcon(iconName, prefix), findIcon(mask.iconName, mask.prefix)]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n mask: mask,\n maskId: maskId,\n title: title,\n titleId: titleId,\n extra: extra,\n watchable: true\n })]);\n });\n });\n }\n\n function generateLayersText(node, nodeMeta) {\n var title = nodeMeta.title,\n transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n\n if (config.autoA11y && !title) {\n extra.attributes['aria-hidden'] = 'true';\n }\n\n return picked.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n title: title,\n extra: extra,\n watchable: true\n })]);\n }\n\n function generateMutation(node) {\n var nodeMeta = parseMeta(node);\n\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return generateLayersText(node, nodeMeta);\n } else {\n return generateSvgReplacementMutation(node, nodeMeta);\n }\n }\n\n function onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return;\n var htmlClassList = DOCUMENT.documentElement.classList;\n\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n\n var prefixes = config.autoFetchSvg ? Object.keys(PREFIX_TO_STYLE) : Object.keys(styles$3);\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p) {\n return \".\".concat(p, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n\n if (prefixesDomQuery.length === 0) {\n return;\n }\n\n var candidates = [];\n\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e) {// noop\n }\n\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return;\n }\n\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e) {\n if (!PRODUCTION) {\n if (e instanceof MissingIcon) {\n console.error(e);\n }\n }\n }\n\n return acc;\n }, []);\n return new picked(function (resolve, reject) {\n picked.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function () {\n mark();\n reject();\n });\n });\n }\n function onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n }\n\n function replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new picked(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c) {\n return c.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family').match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n\n if (alreadyProcessedPseudoElement && !fontFamily) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamily && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n\n var prefix = ~['Solid', 'Regular', 'Light', 'Duotone', 'Brands', 'Kit'].indexOf(fontFamily[2]) ? STYLE_TO_PREFIX[fontFamily[2].toLowerCase()] : FONT_WEIGHT_TO_PREFIX[fontWeight];\n var hexValue = toHex(_content.length === 3 ? _content.substr(1, 1) : _content);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName; // Only convert the pseudo element in this :before/:after position into an icon if we haven't\n // already done so with the same prefix and iconName\n\n if (iconName && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread({}, meta, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElement('svg');\n\n if (position === ':before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n\n element.outerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n }\n\n function replace(node) {\n return picked.all([replaceForPosition(node, ':before'), replaceForPosition(node, ':after')]);\n }\n\n function processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n }\n\n function searchPseudoElements (root) {\n if (!IS_DOM) return;\n return new picked(function (resolve, reject) {\n var operations = toArray(root.querySelectorAll('*')).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n picked.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n }\n\n var baseStyles = \"svg:not(:root).svg-inline--fa{overflow:visible}.svg-inline--fa{display:inline-block;font-size:inherit;height:1em;overflow:visible;vertical-align:-.125em}.svg-inline--fa.fa-lg{vertical-align:-.225em}.svg-inline--fa.fa-w-1{width:.0625em}.svg-inline--fa.fa-w-2{width:.125em}.svg-inline--fa.fa-w-3{width:.1875em}.svg-inline--fa.fa-w-4{width:.25em}.svg-inline--fa.fa-w-5{width:.3125em}.svg-inline--fa.fa-w-6{width:.375em}.svg-inline--fa.fa-w-7{width:.4375em}.svg-inline--fa.fa-w-8{width:.5em}.svg-inline--fa.fa-w-9{width:.5625em}.svg-inline--fa.fa-w-10{width:.625em}.svg-inline--fa.fa-w-11{width:.6875em}.svg-inline--fa.fa-w-12{width:.75em}.svg-inline--fa.fa-w-13{width:.8125em}.svg-inline--fa.fa-w-14{width:.875em}.svg-inline--fa.fa-w-15{width:.9375em}.svg-inline--fa.fa-w-16{width:1em}.svg-inline--fa.fa-w-17{width:1.0625em}.svg-inline--fa.fa-w-18{width:1.125em}.svg-inline--fa.fa-w-19{width:1.1875em}.svg-inline--fa.fa-w-20{width:1.25em}.svg-inline--fa.fa-pull-left{margin-right:.3em;width:auto}.svg-inline--fa.fa-pull-right{margin-left:.3em;width:auto}.svg-inline--fa.fa-border{height:1.5em}.svg-inline--fa.fa-li{width:2em}.svg-inline--fa.fa-fw{width:1.25em}.fa-layers svg.svg-inline--fa{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.fa-layers{display:inline-block;height:1em;position:relative;text-align:center;vertical-align:-.125em;width:1em}.fa-layers svg.svg-inline--fa{-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter,.fa-layers-text{display:inline-block;position:absolute;text-align:center}.fa-layers-text{left:50%;top:50%;-webkit-transform:translate(-50%,-50%);transform:translate(-50%,-50%);-webkit-transform-origin:center center;transform-origin:center center}.fa-layers-counter{background-color:#ff253a;border-radius:1em;-webkit-box-sizing:border-box;box-sizing:border-box;color:#fff;height:1.5em;line-height:1;max-width:5em;min-width:1.5em;overflow:hidden;padding:.25em;right:0;text-overflow:ellipsis;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-bottom-right{bottom:0;right:0;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom right;transform-origin:bottom right}.fa-layers-bottom-left{bottom:0;left:0;right:auto;top:auto;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:bottom left;transform-origin:bottom left}.fa-layers-top-right{right:0;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top right;transform-origin:top right}.fa-layers-top-left{left:0;right:auto;top:0;-webkit-transform:scale(.25);transform:scale(.25);-webkit-transform-origin:top left;transform-origin:top left}.fa-lg{font-size:1.3333333333em;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:solid .08em #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{-webkit-animation:fa-spin 2s infinite linear;animation:fa-spin 2s infinite linear}.fa-pulse{-webkit-animation:fa-spin 1s infinite steps(8);animation:fa-spin 1s infinite steps(8)}@-webkit-keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}@keyframes fa-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}100%{-webkit-transform:rotate(360deg);transform:rotate(360deg)}}.fa-rotate-90{-webkit-transform:rotate(90deg);transform:rotate(90deg)}.fa-rotate-180{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.fa-rotate-270{-webkit-transform:rotate(270deg);transform:rotate(270deg)}.fa-flip-horizontal{-webkit-transform:scale(-1,1);transform:scale(-1,1)}.fa-flip-vertical{-webkit-transform:scale(1,-1);transform:scale(1,-1)}.fa-flip-both,.fa-flip-horizontal.fa-flip-vertical{-webkit-transform:scale(-1,-1);transform:scale(-1,-1)}:root .fa-flip-both,:root .fa-flip-horizontal,:root .fa-flip-vertical,:root .fa-rotate-180,:root .fa-rotate-270,:root .fa-rotate-90{-webkit-filter:none;filter:none}.fa-stack{display:inline-block;height:2em;position:relative;width:2.5em}.fa-stack-1x,.fa-stack-2x{bottom:0;left:0;margin:auto;position:absolute;right:0;top:0}.svg-inline--fa.fa-stack-1x{height:1em;width:1.25em}.svg-inline--fa.fa-stack-2x{height:2em;width:2.5em}.fa-inverse{color:#fff}.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}.svg-inline--fa .fa-primary{fill:var(--fa-primary-color,currentColor);opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa .fa-secondary{fill:var(--fa-secondary-color,currentColor);opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-primary{opacity:.4;opacity:var(--fa-secondary-opacity,.4)}.svg-inline--fa.fa-swap-opacity .fa-secondary{opacity:1;opacity:var(--fa-primary-opacity,1)}.svg-inline--fa mask .fa-primary,.svg-inline--fa mask .fa-secondary{fill:#000}.fad.fa-inverse{color:#fff}\";\n\n function css () {\n var dfp = DEFAULT_FAMILY_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.familyPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n\n if (fp !== dfp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dfp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dfp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n\n return s;\n }\n\n var Library =\n /*#__PURE__*/\n function () {\n function Library() {\n _classCallCheck(this, Library);\n\n this.definitions = {};\n }\n\n _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread({}, _this.definitions[key] || {}, additions[key]);\n defineIcons(key, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n if (!additions[prefix]) additions[prefix] = {};\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n\n return Library;\n }();\n\n function ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n }\n\n function apiObject(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n }\n\n function findIconDefinition(iconLookup) {\n var _iconLookup$prefix = iconLookup.prefix,\n prefix = _iconLookup$prefix === void 0 ? 'fa' : _iconLookup$prefix,\n iconName = iconLookup.iconName;\n if (!iconName) return;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n }\n\n function resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n\n return next(iconDefinition, _objectSpread({}, params, {\n mask: mask\n }));\n };\n }\n\n var library = new Library();\n var noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n disconnect();\n };\n var _cssInserted = false;\n var dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (IS_DOM) {\n ensureCss();\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n\n return onTree(node, callback);\n } else {\n return picked.reject('Operation requires a DOM of some kind.');\n }\n },\n css: css,\n insertCss: function insertCss$$1() {\n if (!_cssInserted) {\n insertCss(css());\n\n _cssInserted = true;\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot,\n observeMutationsRoot = params.observeMutationsRoot;\n\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements,\n observeMutationsRoot: observeMutationsRoot\n });\n });\n }\n };\n var parse = {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n };\n var icon = resolveIcons(function (iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$titleId = params.titleId,\n titleId = _params$titleId === void 0 ? null : _params$titleId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return apiObject(_objectSpread({\n type: 'icon'\n }, iconDefinition), function () {\n ensureCss();\n\n if (config.autoA11y) {\n if (title) {\n attributes['aria-labelledby'] = \"\".concat(config.replacementClass, \"-title-\").concat(titleId || nextUniqueId());\n } else {\n attributes['aria-hidden'] = 'true';\n attributes['focusable'] = 'false';\n }\n }\n\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread({}, meaninglessTransform, transform),\n symbol: symbol,\n title: title,\n maskId: maskId,\n titleId: titleId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n });\n var text = function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform2 = params.transform,\n transform = _params$transform2 === void 0 ? meaninglessTransform : _params$transform2,\n _params$title2 = params.title,\n title = _params$title2 === void 0 ? null : _params$title2,\n _params$classes2 = params.classes,\n classes = _params$classes2 === void 0 ? [] : _params$classes2,\n _params$attributes2 = params.attributes,\n attributes = _params$attributes2 === void 0 ? {} : _params$attributes2,\n _params$styles2 = params.styles,\n styles = _params$styles2 === void 0 ? {} : _params$styles2;\n return apiObject({\n type: 'text',\n content: content\n }, function () {\n ensureCss();\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread({}, meaninglessTransform, transform),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n };\n var counter = function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title3 = params.title,\n title = _params$title3 === void 0 ? null : _params$title3,\n _params$classes3 = params.classes,\n classes = _params$classes3 === void 0 ? [] : _params$classes3,\n _params$attributes3 = params.attributes,\n attributes = _params$attributes3 === void 0 ? {} : _params$attributes3,\n _params$styles3 = params.styles,\n styles = _params$styles3 === void 0 ? {} : _params$styles3;\n return apiObject({\n type: 'counter',\n content: content\n }, function () {\n ensureCss();\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.familyPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n };\n var layer = function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes4 = params.classes,\n classes = _params$classes4 === void 0 ? [] : _params$classes4;\n return apiObject({\n type: 'layer'\n }, function () {\n ensureCss();\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.familyPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n };\n var api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n library: library,\n parse: parse,\n findIconDefinition: findIconDefinition,\n icon: icon,\n text: text,\n counter: counter,\n layer: layer,\n toHtml: toHtml\n };\n\n var autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n };\n\n function bootstrap() {\n if (IS_BROWSER) {\n if (!WINDOW.FontAwesome) {\n WINDOW.FontAwesome = api;\n }\n\n domready(function () {\n autoReplace();\n observe({\n treeCallback: onTree,\n nodeCallback: onNode,\n pseudoElementsCallback: searchPseudoElements\n });\n });\n }\n\n namespace.hooks = _objectSpread({}, namespace.hooks, {\n addPack: function addPack(prefix, icons) {\n namespace.styles[prefix] = _objectSpread({}, namespace.styles[prefix] || {}, icons);\n build();\n autoReplace();\n },\n addShims: function addShims(shims) {\n var _namespace$shims;\n\n (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));\n\n build();\n autoReplace();\n }\n });\n }\n\n bunker(bootstrap);\n\n}());\n","/**\n * ==============================\n * Debug\n * ==============================\n */\n\n/* eslint no-console: \"off\" */\n\n/**\n * List of Log Levels available.\n */\nexport const DebugLevel = {\n\tNONE: 0,\n\tERROR: 1,\n\tWARNING: 2,\n\tINFO: 3,\n\tDEBUG: 4,\n\tALL: 5\n};\n\n/**\n * This class acts as a proxy for the console. It shares the same methods as the\n * web console but they are conditioned to a debug level.\n *\n * @class\n */\nexport class Debug {\n\n\t/**\n\t * @static level - Set the log level\n\t *\n\t * @param {DebugLevel} level The debug level to use\n\t *\n\t * @return {void}\n\t */\n\tstatic level (level) {\n\t\tif (typeof level === 'number') {\n\t\t\tthis._level = level;\n\t\t}\n\t\treturn this._level;\n\t}\n\n\t/**\n\t * @static log - Log the given elements.\n\t *\n\t * Logs will only be made if the level is set to DEBUG or above\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic log (...args) {\n\t\tif (this.level () >= DebugLevel.DEBUG) {\n\t\t\tconsole.log (...args);\n\t\t}\n\t}\n\n\t/**\n\t * @static debug - Show a debugging log\n\t *\n\t * Logs will only be made if the level is set DEBUG or above\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic debug (...args) {\n\t\tif (this.level () >= DebugLevel.DEBUG) {\n\t\t\tconsole.debug (...args);\n\t\t}\n\t}\n\n\t/**\n\t * @static info - Show an info log\n\t *\n\t * Logs will only be made if the level is set to INFO or above\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic info (...args) {\n\t\tif (this.level () >= DebugLevel.INFO) {\n\t\t\tconsole.info (...args);\n\t\t}\n\t}\n\n\t/**\n\t * @static error - Show an error log\n\t *\n\t * Logs will only be made if the level is set to ERROR or above\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic error (...args) {\n\t\tif (this.level () >= DebugLevel.ERROR) {\n\t\t\tconsole.error (...args);\n\t\t}\n\t}\n\n\t/**\n\t * @static warning - Show an warning log\n\t *\n\t * Logs will only be made if the level is set to WARNING or above\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic warning (...args) {\n\t\tif (this.level () >= DebugLevel.WARNING) {\n\t\t\tconsole.warn (...args);\n\t\t}\n\t}\n\n\t/**\n\t * @static table - Show data as a table\n\t *\n\t * Table will only be made if the level is set to DEBUG or above\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic table (...args) {\n\t\tif (this.level () >= DebugLevel.DEBUG) {\n\t\t\tconsole.table (...args);\n\t\t}\n\t}\n\n\t/**\n\t * @static group - Start an indented group\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic group (...args) {\n\t\tif (this.level () >= DebugLevel.DEBUG) {\n\t\t\tconsole.group (...args);\n\t\t}\n\t}\n\n\t/**\n\t * @static groupCollapsed - Start an indented group collapsed by default\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic groupCollapsed (...args) {\n\t\tif (this.level () >= DebugLevel.DEBUG) {\n\t\t\tconsole.groupCollapsed (...args);\n\t\t}\n\t}\n\n\t/**\n\t * @static groupEnd - End a previously started group\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic groupEnd (...args) {\n\t\tif (this.level () >= DebugLevel.DEBUG) {\n\t\t\tconsole.groupEnd (...args);\n\t\t}\n\t}\n\n\t/**\n\t * @static time - Start a timer\n\t *\n\t * The timer will only start if the level is set to DEBUG or above\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic time (...args) {\n\t\tif (this.level () >= DebugLevel.DEBUG) {\n\t\t\tconsole.time (...args);\n\t\t}\n\t}\n\n\t/**\n\t * @static timeLog - Log the time a timer has been running for\n\t *\n\t * The time will only be logged if the level is set to DEBUG or above\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic timeLog (...args) {\n\t\tif (this.level () >= DebugLevel.DEBUG) {\n\t\t\tconsole.timeLog (...args);\n\t\t}\n\t}\n\n\t/**\n\t * @static timeEnd - End a timer\n\t *\n\t * The timer will only be available if the level is set to DEBUG or above\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic timeEnd (...args) {\n\t\tif (this.level () >= DebugLevel.DEBUG) {\n\t\t\tconsole.timeEnd (...args);\n\t\t}\n\t}\n\n\t/**\n\t * @static trace - Show the stack trace\n\t *\n\t * The stack trace will only be available if the level is set to DEBUG or above\n\t *\n\t * @param {...any} args\n\t *\n\t * @return {void}\n\t */\n\tstatic trace (...args) {\n\t\tif (this.level () >= DebugLevel.DEBUG) {\n\t\t\tconsole.trace (...args);\n\t\t}\n\t}\n}\n\nDebug._level = DebugLevel.NONE;","/**\n * ==============================\n * DOM\n * ==============================\n */\n\n/**\n * Simple DOM manipulation functions\n *\n * @class\n */\nexport class DOM {\n\n\t/**\n\t * Create a new DOM object\n\t *\n\t * @constructor\n\t * @param {string|Object|array} selector - Selector or DOM element to use\n\t * @return {DOM} - New instance of DOM\n\t */\n\tconstructor (selector) {\n\n\t\tif (selector === null) {\n\t\t\tthis.collection = [];\n\t\t\tthis.length = 0;\n\t\t\treturn;\n\t\t}\n\n\t\tif (typeof selector == 'string') {\n\t\t\tthis.collection = document.querySelectorAll (selector);\n\t\t\tthis.length = this.collection.length;\n\t\t\tthis._selector = selector;\n\t\t} else if (selector instanceof NodeList) {\n\t\t\tthis.collection = selector;\n\t\t\tthis.length = selector.length;\n\t\t\tthis._selector = selector;\n\t\t} else if (selector instanceof DOM) {\n\t\t\tthis.collection = selector.collection;\n\t\t\tthis.length = this.collection.length;\n\t\t\tthis._selector = selector._selector;\n\t\t} else if (selector instanceof HTMLElement) {\n\t\t\tthis.collection = [selector];\n\t\t\tthis.length = this.collection.length;\n\t\t\tthis._selector = selector;\n\t\t} else if (typeof selector == 'object') {\n\t\t\tif (selector.length >= 1) {\n\t\t\t\tthis.collection = selector;\n\t\t\t} else {\n\t\t\t\tthis.collection = [selector];\n\t\t\t}\n\t\t\tthis.length = this.collection.length;\n\t\t\tthis._selector = selector;\n\t\t} else {\n\t\t\treturn undefined;\n\t\t}\n\n\t}\n\n\t/**\n\t * Hide elements by setting their `display` property to 'none'.\n\t */\n\thide () {\n\t\tfor (const element of this.collection) {\n\t\t\telement.style.display = 'none';\n\t\t}\n\t}\n\n\t/**\n\t * Show elements by setting their `display` property to the given value.\n\t *\n\t * @param {string} [display='block'] - Display property to set\n\t */\n\tshow (display = 'block') {\n\t\tfor (const element of this.collection) {\n\t\t\telement.style.display = display;\n\t\t}\n\t}\n\n\t/**\n\t * Add a class to the classList object\n\t *\n\t * @param {string} newClass - Class name to add\n\t */\n\taddClass (newClass) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.classList.add (newClass);\n\t\t}\n\t}\n\n\t/**\n\t * Remove a given class from the classList object\n\t *\n\t * @param {string} [oldClass=null] - Class to remove. If it's empty or null,\n\t * all classes will be removed\n\t */\n\tremoveClass (oldClass = null) {\n\t\tif (oldClass !== null) {\n\t\t\tfor (const element of this.collection) {\n\t\t\t\telement.classList.remove (oldClass);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (const element of this.collection) {\n\t\t\t\twhile (element.classList.length > 0) {\n\t\t\t\t\telement.classList.remove (element.classList.item (0));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Toggle between two classes\n\t *\n\t * @param {string} classes - Space separated class names\n\t */\n\ttoggleClass (classes) {\n\t\tclasses = classes.split (' ');\n\t\tfor (const element of this.collection) {\n\t\t\tfor (let j = 0; j < classes.length; j++) {\n\t\t\t\telement.classList.toggle (classes[j]);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Check if the first element matching the selector has the given class\n\t *\n\t * @param {string} classToCheck - Class name to check for\n\t * @return {boolean} - Whether the class is present or not\n\t */\n\thasClass (classToCheck) {\n\t\tfor (const element of this.collection) {\n\t\t\tif (!element.classList.contains (classToCheck)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\t/**\n\t * Get or set the value from the first element matching the selector\n\t *\n\t * @param {string} value - Value to set to the element.\n\t * @return {string} - If no value was provided, this returns the value of the\n\t * element instead of setting it\n\t */\n\tvalue (value) {\n\t\tif (typeof value !== 'undefined') {\n\t\t\tfor (const element of this.collection) {\n\t\t\t\telement.value = value;\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.length > 0) {\n\t\t\t\treturn this.collection[0].value;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Focus on the first element matching the selector\n\t */\n\tfocus () {\n\t\tif (this.length > 0) {\n\t\t\tthis.collection[0].focus ();\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback for the 'click' event on every element matching the selector\n\t *\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\tclick (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.addEventListener ('click', callback, false);\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback for the 'keyup' event on every element matching the selector\n\t *\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\tkeyup (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.addEventListener ('keyup', callback, false);\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback for the 'keydown' event on every element matching the selector\n\t *\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\tkeydown (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.addEventListener ('keydown', callback, false);\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback for the 'submit' event on every element matching the selector\n\t *\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\tsubmit (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.addEventListener ('submit', callback, false);\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback for the 'change' event on every element matching the selector\n\t *\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\tchange (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.addEventListener ('change', callback, false);\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback for the 'scroll' event on every element matching the selector\n\t *\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\tscroll (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.addEventListener ('scroll', callback, false);\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback function to a given event\n\t *\n\t * @param {string} event - Event to add the listener to\n\t * @param {string} target - Target element on which to detect the event\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\ton (event, target, callback) {\n\t\tevent = event.split(' ');\n\t\tfor (const element of this.collection) {\n\t\t\tfor (let j = 0; j < event.length; j++) {\n\n\t\t\t\t// Check if no target was defined and just a function was provided\n\t\t\t\tif (typeof target === 'function') {\n\t\t\t\t\telement.addEventListener(event[j], target, false);\n\t\t\t\t} else if (typeof target === 'string' && typeof callback === 'function') {\n\t\t\t\t\telement.addEventListener(event[j], (e) => {\n\t\t\t\t\t\tif (!e.target) {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tconst targetElement = $_(e.target).closestParent (target, this._selector);\n\n\t\t\t\t\t\tif (targetElement.exists ()) {\n\t\t\t\t\t\t\tcallback.call (targetElement.get (0), e);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Filter from the current collection to only those matching the new selector\n\t *\n\t * @param {string} element - Selector to filter the collection with\n\t * @return {DOM} - New DOM instance with the filtered collection\n\t */\n\tfilter (selector) {\n\t\tif (this.length > 0) {\n\t\t\treturn new DOM (this.collection[0].querySelector (selector));\n\t\t}\n\n\t\treturn new DOM (null);\n\t}\n\n\t/**\n\t * Check if there are any elements that match the selector.\n\t *\n\t * @return {boolean} - Whether elements matching the selector existed or not\n\t */\n\texists () {\n\t\treturn this.length > 0;\n\t}\n\n\t/**\n\t * Get or set a `data` property\n\t *\n\t * @param {string} name - Name of the data property\n\t * @param {string} [value] - Value of the property\n\t * @return {string} - If no value is set, this function returns it's current value\n\t */\n\tdata (name, value) {\n\t\tif (typeof value !== 'undefined') {\n\t\t\tfor (const element of this.collection) {\n\t\t\t\telement.dataset[name] = value;\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.length > 0) {\n\t\t\t\treturn this.collection[0].dataset[name];\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Remove a data property from all the elements on the collection given its\n\t * name.\n\t *\n\t * @param {string} name - Name of the data property to remove\n\t *\n\t * @return {void}\n\t */\n\tremoveData (name) {\n\t\tfor (const element of this.collection) {\n\t\t\tdelete element.dataset[name];\n\t\t}\n\t}\n\n\t/**\n\t * Get or set the text of the first element matching the selector\n\t *\n\t * @param {string} [value] - Value to set the text to\n\t * @return {type} - If no value is present, this function returns its the\n\t * element's current text.\n\t */\n\ttext (value) {\n\t\tif (typeof value !== 'undefined') {\n\t\t\tfor (const element of this.collection) {\n\t\t\t\telement.textContent = value;\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.length > 0) {\n\t\t\t\treturn this.collection[0].textContent;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Get or set the inner HTML of the first element matching the selector\n\t *\n\t * @param {string} [value] - Value to set the HTML to\n\t * @return {type} - If no value is present, this function returns its the\n\t * element's current HTML.\n\t */\n\thtml (value) {\n\t\tif (typeof value !== 'undefined') {\n\t\t\tfor (const element of this.collection) {\n\t\t\t\telement.innerHTML = value;\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.length > 0) {\n\t\t\t\treturn this.collection[0].innerHTML;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Append an element to the first element matching the selector\n\t *\n\t * @param {string} element - String representation of the element to add\n\t */\n\tappend (element) {\n\t\tif (this.length > 0) {\n\t\t\tif (typeof element === 'string') {\n\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\tif (typeof element === 'string') {\n\t\t\t\t\tdiv.innerHTML = element.trim ();\n\t\t\t\t} else {\n\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t}\n\t\t\t\tthis.collection[0].appendChild (div.firstChild);\n\t\t\t} else {\n\t\t\t\tthis.collection[0].appendChild (element);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Prepend an element to the first element matching the selector\n\t *\n\t * @param {string} element - String representation of the element to add\n\t */\n\tprepend (element) {\n\t\tif (this.length > 0) {\n\t\t\tif (typeof element === 'string') {\n\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\tif (typeof element === 'string') {\n\t\t\t\t\tdiv.innerHTML = element.trim ();\n\t\t\t\t} else {\n\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t}\n\t\t\t\tif (this.collection[0].childNodes.length > 0) {\n\t\t\t\t\tthis.collection[0].insertBefore (div.firstChild, this.collection[0].childNodes[0]);\n\t\t\t\t} else {\n\t\t\t\t\tthis.collection[0].appendChild (div.firstChild);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.collection[0].childNodes.length > 0) {\n\t\t\t\t\tthis.collection[0].insertBefore (element, this.collection[0].childNodes[0]);\n\t\t\t\t} else {\n\t\t\t\t\tthis.collection[0].appendChild (element);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Iterate over the collection of elements matching the selector\n\t *\n\t * @param {function} callback - Callback to run for every element\n\t */\n\teach (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\tcallback (element);\n\t\t}\n\t}\n\n\t/**\n\t * Get an element from the collection given it's index\n\t *\n\t * @param {int} index - Index of the element to retrieve\n\t * @return {HTMLElement} - HTML Element in the position indicated by the index\n\t */\n\tget (index) {\n\t\treturn this.collection[index];\n\t}\n\n\t/**\n\t * Get the first element in the collection\n\t *\n\t * @return {DOM} - DOM instance with the first element\n\t */\n\tfirst () {\n\t\tif (this.length > 0) {\n\t\t\treturn new DOM (this.collection[0]);\n\t\t}\n\n\t\treturn new DOM (null);\n\t}\n\n\t/**\n\t * Get the last element in the collection\n\t *\n\t * @return {DOM} - DOM instance with the last element\n\t */\n\tlast () {\n\t\tif (this.length > 0) {\n\t\t\treturn new DOM (this.collection[this.collection.length - 1]);\n\t\t}\n\n\t\treturn new DOM (null);\n\t}\n\n\t/**\n\t * Check if the elements in the collection are visible by checking their\n\t * display, offsetWidth and offsetHeight properties\n\t *\n\t * @return {boolean} - Whether the elements are visible or not\n\t */\n\tisVisible () {\n\t\tfor (const element of this.collection) {\n\t\t\tif (element.display != 'none' && element.offsetWidth > 0 && element.offsetHeight > 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Get the parent of the first element matching the selector\n\t *\n\t * @return {DOM} - DOM instance of the parent element\n\t */\n\tparent () {\n\t\tif (this.length > 0) {\n\t\t\treturn new DOM (this.collection[0].parentElement);\n\t\t}\n\n\t\treturn new DOM (null);\n\t}\n\n\t/**\n\t * Find an element that matches the given selector in the first element of the collection\n\t *\n\t * @param {string} selector - Selector to find the element with\n\t * @return {DOM} - Aegis instance with the element if found\n\t */\n\tfind (selector) {\n\t\tif (this.length > 0) {\n\t\t\treturn new DOM (this.collection[0].querySelectorAll (selector));\n\t\t}\n\n\t\treturn new DOM (null);\n\t}\n\n\t/**\n\t * Get the top and left offsets of the first element matching the selector\n\t *\n\t * @return {Object} - Object with `top` and `left` offsets\n\t */\n\toffset () {\n\t\tif (this.length > 0) {\n\t\t\tconst rect = this.collection[0].getBoundingClientRect ();\n\t\t\treturn {\n\t\t\t\ttop: rect.top + document.body.scrollTop,\n\t\t\t\tleft: rect.left + document.body.scrollLeft\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * Find the closest element matching the given selector. This bubbles up\n\t * from the initial object and then follows to its parents.\n\t *\n\t * @param {string} selector - Selector to match the closest element with\n\t * @return {DOM} - DOM instance with the closest HTML element matching the selector\n\t */\n\tclosest (selector) {\n\t\tlet found = null;\n\t\tlet element = this;\n\t\twhile (element.exists () && found === null) {\n\t\t\t// Check if the current element matches the selector\n\t\t\tconst matches = element.matches (selector);\n\n\t\t\tif (matches === true) {\n\t\t\t\treturn element;\n\t\t\t}\n\n\t\t\tconst search = element.find (selector);\n\t\t\tif (search) {\n\t\t\t\tif (search.length > 0) {\n\t\t\t\t\tfound = search;\n\t\t\t\t}\n\t\t\t}\n\t\t\telement = element.parent ();\n\t\t}\n\n\t\tif (found !== null) {\n\t\t\treturn found;\n\t\t}\n\n\t\treturn element;\n\t}\n\n\tclosestParent (selector, limit) {\n\t\tlet element = this;\n\t\twhile (element.exists ()) {\n\n\t\t\t// Check if the current element matches the selector\n\t\t\tconst matches = element.matches (selector);\n\n\t\t\tif (matches === true) {\n\t\t\t\treturn element;\n\t\t\t}\n\n\t\t\tif (typeof limit === 'string') {\n\t\t\t\tif (element.matches (limit)) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement = element.parent ();\n\t\t}\n\n\t\treturn new DOM (null);\n\t}\n\n\t/**\n\t * Get or set the value of a given attribute\n\t *\n\t * @param {string} attribute - Attribute's name\n\t * @param {string|Number} [value] - Value to set the attribute to\n\t * @return {type} - If no value is provided, this function returns the current\n\t * value of the provided attribute\n\t */\n\tattribute (attribute, value) {\n\t\tif (typeof value !== 'undefined') {\n\t\t\tfor (const element of this.collection) {\n\t\t\t\telement.setAttribute (attribute, value);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.length > 0) {\n\t\t\t\treturn this.collection[0].getAttribute (attribute);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Check whether an element has an attribute or not\n\t *\n\t * @param {string} attribute - The name of the attribute to check existance for\n\t * @returns {boolean} - Whether or not the attribute is present\n\t */\n\thasAttribute (attribute) {\n\t\tfor (const element of this.collection) {\n\t\t\tif (!element.hasAttribute (attribute)) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t}\n\n\t/**\n\t * Insert content to the `after` property of an element\n\t *\n\t * @param {string} content - String representation of the content to add\n\t */\n\tafter (content) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.insertAdjacentHTML ('afterend', content);\n\t\t}\n\t}\n\n\t/**\n\t * Insert content to the `before` property of an element\n\t *\n\t * @param {string} content - String representation of the content to add\n\t */\n\tbefore (content) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.insertAdjacentHTML ('beforebegin', content);\n\t\t}\n\t}\n\n\t/**\n\t * Get or modify the `style` properties of the elements matching the selector\n\t *\n\t * @param {string|Object} properties - Properties to change or get. Can be\n\t * either an individual property or a JSON object with key-value pairs\n\t * @param {string} [value] - Value to set the property to when only changing\n\t * one property\n\t * @return {string} - If a property is given but not a value for it, this\n\t * function will return its current value\n\t */\n\tstyle (properties, value) {\n\t\tfor (let i = 0; i < this.collection.length; i++) {\n\t\t\tif (typeof properties === 'string' && value !== 'undefined') {\n\t\t\t\tthis.collection[i].style[properties] = value;\n\t\t\t} else if (typeof properties === 'string' && value === 'undefined') {\n\t\t\t\treturn this.collection[i].style[properties];\n\t\t\t} else if (typeof properties === 'object') {\n\t\t\t\tfor (const property in properties) {\n\t\t\t\t\tthis.collection[i].style[property] = properties[property];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Animate the given `style` properties on all elements in the collection in\n\t * with a given time duration\n\t *\n\t * @param {Object} style - JSON object with the key-value pairs of properties\n\t * to animate\n\t * @param {int} time - Time in milliseconds during which the properties will\n\t * be animated\n\t */\n\tanimate (style, time) {\n\t\tfor (let i = 0; i < this.collection.length; i++) {\n\t\t\tfor (const property in style) {\n\n\t\t\t\tconst start = new Date().getTime();\n\t\t\t\tconst collection = this.collection;\n\t\t\t\tlet timer;\n\t\t\t\tlet initialValue;\n\t\t\t\tif (typeof this.collection[i].style[property] !== 'undefined') {\n\t\t\t\t\tinitialValue = this.collection[i].style[property];\n\n\t\t\t\t\ttimer = setInterval (() => {\n\t\t\t\t\t\tconst step = Math.min (1, (new Date ().getTime () - start) / time);\n\n\t\t\t\t\t\tcollection[i].style[property] = (initialValue + step * (style[property] - initialValue));\n\n\t\t\t\t\t\tif (step == 1) {\n\t\t\t\t\t\t\tclearInterval (timer);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 25);\n\t\t\t\t\tthis.collection[i].style[property] = initialValue;\n\n\t\t\t\t} else if (typeof (this.collection[i])[property] !== 'undefined') {\n\t\t\t\t\tinitialValue = (this.collection[i])[property];\n\n\t\t\t\t\ttimer = setInterval(() => {\n\t\t\t\t\t\tconst step = Math.min (1, (new Date ().getTime () - start) / time);\n\n\t\t\t\t\t\t(collection[i])[property] = (initialValue + step * (style[property] - initialValue));\n\n\t\t\t\t\t\tif (step == 1) {\n\t\t\t\t\t\t\tclearInterval (timer);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 25);\n\t\t\t\t\t(this.collection[i])[property] = initialValue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Use a fade in animation i the first element matching the selector\n\t *\n\t * @param {type} [time=400] - Time duration for the animation\n\t * @param {type} callback - Callback function to run once the animation is over\n\t */\n\tfadeIn (time = 400, callback) {\n\t\tif (this.length > 0) {\n\t\t\tconst element = this.collection[0];\n\t\t\telement.style.opacity = 0;\n\n\t\t\tlet last = +new Date();\n\n\t\t\tconst tick = () => {\n\t\t\t\telement.style.opacity = +element.style.opacity + (new Date() - last) / time;\n\t\t\t\tlast = +new Date();\n\n\t\t\t\tif (+element.style.opacity < 1) {\n\t\t\t\t\t(window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof callback === 'function') {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\ttick();\n\t\t}\n\t}\n\n\t/**\n\t * Use a fade out animation i the first element matching the selector\n\t *\n\t * @param {type} [time=400] - Time duration for the animation\n\t * @param {type} callback - Callback function to run once the animation is over\n\t */\n\tfadeOut (time = 400, callback) {\n\t\tif (this.length > 0) {\n\t\t\tlet last = +new Date ();\n\t\t\tconst element = this.collection[0];\n\t\t\tconst tick = () => {\n\t\t\t\telement.style.opacity = +element.style.opacity - (new Date() - last) / time;\n\t\t\t\tlast = +new Date ();\n\n\t\t\t\tif (+element.style.opacity > 0) {\n\t\t\t\t\t(window.requestAnimationFrame && requestAnimationFrame (tick)) || setTimeout(tick, 16);\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof callback === 'function') {\n\t\t\t\t\t\tcallback ();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\ttick ();\n\t\t}\n\t}\n\n\t/**\tCheck if the first element in the collection matches a given selector\n\t *\n\t * @param {string} selector - Selector to match\n\t * @return {boolean} - Whether the element matches the selector or not\n\t */\n\tmatches (selector) {\n\t\tconst check = Element.prototype;\n\t\tconst polyfill = check.matches || check.webkitMatchesSelector || check.mozMatchesSelector || check.msMatchesSelector || function () {\n\t\t\treturn [].indexOf.call (document.querySelectorAll (selector), this) !== -1;\n\t\t};\n\n\t\tif (this.length > 0) {\n\t\t\treturn polyfill.call (this.collection[0], selector);\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Remove all elements in the collection\n\t */\n\tremove () {\n\t\tfor (const element of this.collection) {\n\t\t\telement.parentNode.removeChild (element);\n\t\t}\n\t}\n\n\t/**\n\t * Replace the first element in the collection with a new one\n\t */\n\treplaceWith (newElement) {\n\t\tlet replaceElement = newElement;\n\n\t\tif (typeof newElement === 'string') {\n\t\t\tconst div = document.createElement ('div');\n\t\t\tdiv.innerHTML = newElement;\n\t\t\treplaceElement = div.firstChild;\n\t\t}\n\n\t\tfor (const element of this.collection) {\n\t\t\telement.parentElement.replaceChild (replaceElement, element);\n\t\t}\n\t}\n\n\t/**\n\t * Reset every element in the collection\n\t */\n\treset () {\n\t\tfor (const element of this.collection) {\n\t\t\telement.reset ();\n\t\t}\n\t}\n\n\t/**\n\t * Get or set a property for the first element in the collection\n\t *\n\t * @param {string} property - Property name to set or get\n\t * @param {string|Number} [value] - Value to set the property to\n\t * @return {string|Number} - If no value is provided, this function will return the\n\t * current value of the indicated property\n\t */\n\tproperty (property, value) {\n\t\tif (typeof value !== 'undefined') {\n\t\t\tfor (const element of this.collection) {\n\t\t\t\telement[property] = value;\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.length > 0) {\n\t\t\t\treturn this.collection[0][property];\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Simple wrapper function to use the DOM library\n *\n * @param {string|Object|array} selector - Selector or DOM element to use\n * @return {DOM} - DOM instance or class if no selector is used\n */\nexport function $_ (selector) {\n\tif (typeof selector !== 'undefined') {\n\t\treturn new DOM (selector);\n\t} else {\n\t\treturn DOM;\n\t}\n}\n\n/**\n * Utility function to attach the 'load' listener to the window\n *\n * @param {function} callback - Callback function to run when the window is ready\n */\nexport function $_ready (callback) {\n\twindow.addEventListener ('load', callback);\n}","/**\n* ==============================\n* Request\n* ==============================\n*/\n\n/**\n * Simple Wrapper for the fetch API, providing simple functions to handle requests\n *\n * @class\n */\nexport class Request {\n\n\t/**\n\t * @static serialize - Serialize an object of data into a URI encoded format\n\t *\n\t * @param {Object} data - Key-value object of data to serialize\n\t * @return {string} - Serialized Data\n\t */\n\tstatic serialize (data) {\n\t\treturn Object.keys (data).map ((key) => {\n\t\t\treturn encodeURIComponent (key) + '=' + encodeURIComponent (data[key]);\n\t\t}).join ('&');\n\t}\n\n\t/**\n\t * @static get - Make a GET request to a given URL with the provided data\n\t * parameters and an optional configuration object for the request.\n\t *\n\t * @param {string} url - URL to make the request to\n\t * @param {Object} [data = {}] - Parameters to send in the URL, represented\n\t * as a JSON object. These parameters will be sent as a query in the URL\n\t * @param {Object} [options = {}] - Options object for configurations you want\n\t * to use in the fetch () request made.\n\t * @return {Promise} - Resolves to the response of the request\n\t */\n\tstatic get (url, data = {}, options = {}) {\n\t\tconst query = Request.serialize (data);\n\n\t\t// Check if there is actually any data parameters and join them to the\n\t\t// url as query parameters\n\t\tif (query !== '') {\n\t\t\turl = `${url}?${query}`;\n\t\t}\n\n\t\treturn fetch (url, options);\n\t}\n\n\t/**\n\t * @static post - Make a POST request to a given URL with the provided data\n\t * and an optional configuration object for the request.\n\t *\n\t * @param {string} url - URL to make the request\n\t * @param {Object} [data = {}] - Set of data to send in the URL, represented\n\t * as a JSON object\n \t * @param {Object} [options = {}] - Options object for configurations you want\n\t * to use in the fetch () request made. The Content-Type header is used to\n\t * serialize data in the correct format and defaults to application/x-www-form-urlencoded\n\t * @return {Promise} - Resolves to the response of the request\n\t */\n\tstatic post (url, data, options = {}) {\n\t\tlet formData;\n\n\t\tif (typeof options.headers !== 'undefined') {\n\t\t\tconst contentType = options.headers['Content-Type'];\n\t\t\tif (typeof contentType !== 'undefined') {\n\t\t\t\tif (contentType == 'multipart/form-data') {\n\t\t\t\t\tformData = new FormData ();\n\t\t\t\t\tfor (const value in data) {\n\t\t\t\t\t\tformData.append (value, data[value]);\n\t\t\t\t\t}\n\t\t\t\t} else if (contentType == 'application/json') {\n\t\t\t\t\tformData = JSON.stringify (data);\n\t\t\t\t} else {\n\t\t\t\t\tformData = Request.serialize (data);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tformData = Request.serialize (data);\n\t\t}\n\n\t\tconst props = Object.assign ({}, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tbody: formData\n\t\t}, options);\n\n\t\t// Delete the explicit multipart/form-data header to allow boundary automatic filling\n\t\tif (typeof props.headers !== 'undefined') {\n\t\t\tif (props.headers['Content-Type'] === 'multipart/form-data') {\n\t\t\t\tdelete props.headers['Content-Type'];\n\t\t\t}\n\t\t}\n\n\t\treturn fetch (url, props);\n\t}\n\n\t/**\n\t * @static put - Make a PUT request to a given URL with the provided data\n\t * and an optional configuration object for the request.\n\t *\n\t * @param {string} url - URL to make the request\n\t * @param {Object} [data = {}] - Set of data to send in the URL, represented\n\t * as a JSON object\n \t * @param {Object} [options = {}] - Options object for configurations you want\n\t * to use in the fetch () request made. The Content-Type header is used to\n\t * serialize data in the correct format and defaults to application/x-www-form-urlencoded\n\t * @return {Promise} - Resolves to the response of the request\n\t */\n\tstatic put (url, data, options = {}) {\n\t\treturn Request.post (url, data, Object.assign ({}, {method: 'PUT'}, options));\n\t}\n\n\t/**\n\t * @static delete - Make a DELETE request to a given URL with the provided data\n\t * and an optional configuration object for the request.\n\t *\n\t * @param {string} url - URL to make the request\n\t * @param {Object} [data = {}] - Parameters to send in the URL, represented\n\t * as a JSON object. These parameters will be sent as a query in the URL\n \t * @param {Object} [options = {}] - Options object for configurations you want\n\t * to use in the fetch () request made. The Content-Type header is used to\n\t * serialize data in the correct format and defaults to application/x-www-form-urlencoded\n\t * @return {Promise} - Resolves to the response of the request\n\t */\n\tstatic delete (url, data, options = {}) {\n\t\treturn Request.get (url, data, Object.assign ({}, {method: 'DELETE'}, options));\n\t}\n\n\t/**\n \t * @static json - Request a JSON object from a given URL through a GET request\n \t *\n \t * @param {string} url - URL to make the request to\n \t * @param {Object} [data = {}] - Parameters to send in the URL, represented\n \t * as a JSON object. These parameters will be sent as a query in the URL\n \t * @param {Object} [options = {}] - Options object for configurations you want\n \t * to use in the fetch () request made.\n \t * @return {Promise} - Resolves to the json object obtained from the request response\n \t */\n\tstatic json (url, data = {}, options = {}) {\n\t\treturn Request.get (url, data, options).then ((response) => {\n\t\t\treturn response.json ();\n\t\t});\n\t}\n\n\t/**\n \t * @static blob - Request a Blob from a given URL through a GET request\n \t *\n \t * @param {string} url - URL to make the request to\n \t * @param {Object} [data = {}] - Parameters to send in the URL, represented\n \t * as a JSON object. These parameters will be sent as a query in the URL\n \t * @param {Object} [options = {}] - Options object for configurations you want\n \t * to use in the fetch () request made.\n \t * @return {Promise} - Resolves to the blob obtained from the request response\n \t */\n\tstatic blob (url, data = {}, options = {}) {\n\t\treturn Request.get (url, data, options).then ((response) => {\n\t\t\treturn response.blob ();\n\t\t});\n\t}\n}","/**\n * ==============================\n * File System\n * ==============================\n */\n\nimport { Request } from './Request';\n\n/**\n * A simple class wrapper for the File and FileReader web API, while this class\n * doesn't actually provide acces to the host file system, it does provide useful\n * utilities for form file inputs and remote content loading.\n *\n * @class\n */\nexport class FileSystem {\n\n\n\t/**\n\t * @static readRemote - Read a file from a remote location given a URL. This\n\t * function will fetch the file blob using the Request class and then use the\n\t * read () function to read the blob in the format required.\n\t *\n\t * @param {type} url - URL to fetch the file from\n\t * @param {type} [type = 'base64'] - Type of data to be read, values can be\n\t * 'text', 'base64' and 'buffer'. This parameter is used for the read () function.\n\t * @param {Object} [props = {}] - Props to send to the Request object\n\t * @return {Promise} - Content of the file. The format\n\t * depends on the type parameter used.\n\t */\n\tstatic readRemote (url, type = 'base64', props = {}) {\n\t\treturn Request.blob (url, {}, props).then ((file) => {\n\t\t\treturn FileSystem.read (file, type);\n\t\t});\n\t}\n\n\t/**\n\t * @static read - Read a given File or Blob object.\n\t *\n\t * @param {File|Blob} file - File to read\n\t * @param {string} [type = 'text'] - Type of data to be read, values can be\n\t * 'text', 'base64' and 'buffer'.\n\t * @return {Promise} - Promise that resolves to\n\t * the Load event and content of the file. The format depends on the type\n\t * parameter used.\n\t */\n\tstatic read (file, type = 'text') {\n\t\treturn new Promise ((resolve, reject) => {\n\t\t\tconst reader = new FileReader ();\n\n\t\t\treader.onload = (event) => {\n\t\t\t\t// Pass down the event object and the content\n\t\t\t\tresolve (event, event.target.result);\n\t\t\t};\n\n\t\t\treader.onerror = (error) => {\n\t\t\t\treject (error);\n\t\t\t};\n\n\t\t\tif (type === 'base64') {\n\t\t\t\treader.readAsDataURL (file);\n\t\t\t} else if (type === 'buffer') {\n\t\t\t\treader.readAsArrayBuffer (file);\n\t\t\t} else {\n\t\t\t\treader.readAsText (file, 'UTF-8');\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @static create - Create a new File, this uses the File API and will note\n\t * actually create a file in the user's file system, however using it with\n\t * other features, that may be possible\n\t *\n\t * @param {string} file - Name of the file (Including extension)\n\t * @param {ArrayBuffer|ArrayBufferView|Blob|string} content - Content to save in the file\n\t * @param {string} [type = 'text/plain'] - Mime Type for the file\n\t * @return {Promise}\n\t */\n\tstatic create (name, content, type = 'text/plain') {\n\t\treturn Promise.resolve (new File ([content], name, {type}));\n\t}\n\n\t/**\n\t * @static extension - Returns the extension of a file given its file name.\n\t *\n\t * @param {string} name - Name or full path of the file\n\t * @return {string} - File extension without the leading dot (.)\n\t */\n\tstatic extension (name) {\n\t\treturn name.split ('.').pop ();\n\t}\n\n\t/**\n\t * @static isImage - Check if a file is an image by its extension.\n\t *\n\t * @param {string} name - Name or full path of the file\n\t * @return {boolean}\n\t */\n\tstatic isImage (name) {\n\t\tconst extensions = ['jpg', 'jpeg', 'png', 'gif', 'svg', 'webp', 'bmp'];\n\t\treturn extensions.indexOf (FileSystem.extension (name).toLowerCase ()) > -1;\n\t}\n\n}","/**\n* ==============================\n* Form\n* ==============================\n*/\n\nimport { $_ } from './DOM';\n\n/**\n * Utility class that provides simple function for filling and retrieving values\n * from froms. This class requires the use of the `data-form` attribute.\n *\n * @class\n */\nexport class Form {\n\n\t/**\n\t * @static fill - Fill a form's inputs with the given values. Each key in the\n\t * provided object must match the `name` attribute of the input to fill.\n\t *\n\t * @param {string} name - Form name. Must match the `data-form` attribute of the Form.\n\t * @param {Object} data - JSON object with key-value pairs to fill the inputs.\n\t */\n\tstatic fill (name, data) {\n\t\tfor (const field in data) {\n\t\t\tconst element = $_(`form[data-form='${name}'] [name='${field}']`).get (0);\n\t\t\tif (typeof element != 'undefined') {\n\t\t\t\tswitch (element.type) {\n\n\t\t\t\t\tcase 'file':\n\t\t\t\t\tcase 'file[]':\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\telement.value = data[field];\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\t/**\n\t * @static values - Get all the values from a form's input. The keys are mapped\n\t * using the `name` attribute of each input.\n\t *\n\t * @param {string} name - Form name. Must match the `data-form` attribute of the Form.\n\t * @return {Object} - Key-value JSON object\n\t */\n\tstatic values (name) {\n\t\tconst data = {};\n\t\t$_(`form[data-form='${name}'] [name]`).each ((element) => {\n\t\t\tlet value;\n\t\t\tswitch (element.type) {\n\t\t\t\tcase 'file[]':\n\t\t\t\t\tvalue = element.files;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'file':\n\t\t\t\t\tvalue = element.files[0];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tvalue = element.value;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (typeof value != 'undefined' && value !== null) {\n\t\t\t\tdata[element.name] = value;\n\t\t\t}\n\t\t});\n\n\t\treturn data;\n\t}\n}","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n* ==============================\n* Platform\n* ==============================\n*/\n\n/**\n * General checks for what kind of platform is the being used to run the app.\n * @class\n */\nexport class Platform {\n\n\t/**\n\t * Check if the screen has a retina pixel ratio\n\t * @returns {boolean}\n\t */\n\tstatic retina () {\n\t\treturn window.devicePixelRatio >= 2;\n\t}\n\n\t/**\n\t * Check if the device is on portrait orientation\n\t * @returns {boolean}\n\t */\n\tstatic portrait () {\n\t\treturn window.orientation === 0 || window.orientation === 180;\n\t}\n\n\t/**\n\t * Check if the device is on landscape orientation\n\t * @returns {boolean}\n\t */\n\tstatic landscape () {\n\t\treturn (window.orientation === 90 || window.orientation === -90);\n\t}\n\n\t/**\n\t * Get device Orientation\n\t * @returns {string} portrait | landscape\n\t */\n\tstatic orientation () {\n\t\treturn Platform.portrait () ? 'portrait' : 'landscape';\n\t}\n\n\t/**\n\t * Check if the app is running over Electron\n\t * @returns {boolean}\n\t */\n\tstatic electron () {\n\t\t// Renderer process\n\t\tif (typeof window !== 'undefined' && typeof window.process === 'object' && window.process.type === 'renderer') {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Main process\n\t\tif (typeof process !== 'undefined' && typeof process.versions === 'object' && !!process.versions.electron) {\n\t\t\treturn true;\n\t\t}\n\n\t\t// Detect the user agent when the `nodeIntegration` option is set to true\n\t\tif (typeof navigator === 'object' && typeof navigator.userAgent === 'string' && navigator.userAgent.indexOf('Electron') > -1) {\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Check if the app is running over Cordova\n\t * @returns {boolean}\n\t */\n\tstatic cordova () {\n\t\treturn !!window.cordova;\n\t}\n\n\t/**\n\t * Check if the app is running in a desktop platform\n\t * @returns {boolean}\n\t */\n\tstatic desktop (platform = 'Any') {\n\t\tlet match = false;\n\t\tswitch (platform) {\n\t\t\tcase 'Windows':\n\t\t\t\tmatch = navigator.platform.includes ('Win');\n\t\t\t\tbreak;\n\n\t\t\tcase 'macOS':\n\t\t\t\tmatch = navigator.platform.includes ('Mac');\n\t\t\t\tbreak;\n\n\t\t\tcase 'Linux':\n\t\t\t\tmatch = navigator.platform.includes ('Linux');\n\t\t\t\tbreak;\n\n\t\t\tcase 'FreeBSD':\n\t\t\t\tmatch = navigator.platform.includes ('FreeBSD');\n\t\t\t\tbreak;\n\n\t\t\tcase 'webOS':\n\t\t\t\tmatch = navigator.platform.includes ('WebTV');\n\t\t\t\tbreak;\n\n\t\t\tcase 'Any':\n\t\t\tdefault:\n\t\t\t\tmatch = navigator.platform.includes ('Win')\n\t\t\t\t\t\t|| navigator.platform.includes ('Mac')\n\t\t\t\t\t\t|| navigator.platform.includes ('Linux')\n\t\t\t\t\t\t|| navigator.platform.includes ('FreeBSD')\n\t\t\t\t\t\t|| navigator.platform.includes ('WebTV');\n\t\t\t\tbreak;\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * Check if the app is running in a mobile platform\n\t * @param {string } [platform='Any'] - Check for a specific mobile platform [Android | iOS | Opera | Windows | BlackBerry | Any]\n\t * @returns {boolean}\n\t */\n\tstatic mobile (platform = 'Any') {\n\t\tlet match = false;\n\t\tswitch (platform) {\n\t\t\tcase 'Android':\n\t\t\t\tmatch = /Android/i.test (navigator.userAgent);\n\t\t\t\tbreak;\n\n\t\t\tcase 'iOS':\n\t\t\t\tmatch = /iPhone|iPad|iPod/i.test (navigator.userAgent);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Opera':\n\t\t\t\tmatch = /Opera Mini/i.test (navigator.userAgent);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Windows':\n\t\t\t\tmatch = /Windows Phone|IEMobile|WPDesktop/i.test (navigator.userAgent);\n\t\t\t\tbreak;\n\n\t\t\tcase 'BlackBerry':\n\t\t\t\tmatch = /BlackBerry|BB10/i.test (navigator.userAgent);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Any':\n\t\t\tdefault:\n\t\t\t\tmatch = /Android|iPhone|iPad|iPod|Windows Phone|IEMobile|WPDesktop|BlackBerry|BB10/i.test (navigator.userAgent);\n\t\t\t\tbreak;\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @static serviceWorkers - Check if the platform allows the use of service\n\t * workers\n\t *\n\t * @return {boolean} - Whether they're supported or not\n\t */\n\tstatic serviceWorkers () {\n\t\tif (typeof navigator !== 'undefined') {\n\t\t\tif ('serviceWorker' in navigator && location.protocol.indexOf ('http') > -1) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}","/**\n * ==============================\n * Preload\n * ==============================\n */\n\nimport { Request } from './Request';\n\n/**\n * A simple class for asset preloading. This class assumes you have a service\n * worker set up that will be caching all requests.\n * @class\n */\nexport class Preload {\n\n\t/**\n\t * @static image - Preload an image file\n\t *\n\t * @param {string} route - Route to the image\n\t * @return {Promise} - Resolves to the image object or gets rejected with\n\t * the rejection event\n\t */\n\tstatic image (route) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst image = new Image ();\n\n\t\t\timage.onload = () => {\n\t\t\t\tresolve (image);\n\t\t\t};\n\n\t\t\timage.onerror = (e) => {\n\t\t\t\treject (e);\n\t\t\t};\n\n\t\t\timage.src = route;\n\t\t});\n\t}\n\n\t/**\n\t * @static file - Preload any kind of file\n\t *\n\t * @param {string} route - Route to the file\n\t * @return {Promise} - Resolves or rejects depending on request success\n\t */\n\tstatic file (route) {\n\t\treturn Request.blob (route);\n\t}\n}","/**\n* ==============================\n* Local Storage Adapter\n* ==============================\n*/\n\n/**\n * The Local Storage Adapter provides the Space Class the ability to interact\n * with the localStorage api found in most modern browsers.\n *\n * @class\n */\nexport class LocalStorage {\n\n\t/**\n\t * Create a new LocalStorage. If no configuration is provided, the LocalStorage\n\t * global object is used. The LocalStorage Adapter can provide independency\n\t * by store name and space name.\n\t *\n\t * @constructor\n\t * @param {Object} [configuration={name = '', version = '', store = ''}] - Configuration Object for the Adapter\n\t * @param {string} configuration.name - Name of the Space\n\t * @param {string} configuration.version - Version of the Space in Semantic versioning syntax\n\t * @param {string} configuration.store - Name of the Object Store to use\n\t *\n\t */\n\tconstructor ({name = '', version = '', store = ''}) {\n\t\tthis.name = name;\n\t\tthis.version = version;\n\t\tthis.store = store;\n\n\t\tthis.upgrades = {};\n\n\t\tif (this.version === '') {\n\t\t\tthis.numericVersion = 0;\n\t\t} else {\n\t\t\tthis.numericVersion = parseInt (version.replace (/\\./g, ''));\n\t\t}\n\n\t\tif (name !== '' && version !== '' && store !== '') {\n\t\t\tthis.id = `${this.name}::${this.store}::${this.version}_`;\n\t\t} else if (name !== '' && version !== '') {\n\t\t\tthis.id = `${this.name}::${this.version}_`;\n\t\t} else if (name !== '') {\n\t\t\tthis.id = `${this.name}::_`;\n\t\t} else {\n\t\t\tthis.id = '';\n\t\t}\n\t}\n\n\t/**\n\t * Open the Storage Object\n\t *\n\t * @return {Promise}\n\t */\n\topen () {\n\t\tif (typeof this.storage === 'object' && !(this.storage instanceof Promise)) {\n\t\t\treturn Promise.resolve (this);\n\t\t} else if (this.storage instanceof Promise) {\n\t\t\treturn this.storage;\n\t\t} else {\n\t\t\tthis.storage = new Promise ((resolve) => {\n\t\t\t\tlet upgradesToApply = [];\n\n\t\t\t\t// Check if this space is versioned\n\t\t\t\tif (this.version !== '') {\n\t\t\t\t\t// Get the versionless part of the ID to check if an upgrade needs\n\t\t\t\t\t// to ocurr based on the version available on storage and the current\n\t\t\t\t\t// version.\n\t\t\t\t\tlet versionless = '';\n\t\t\t\t\tif (this.name !== '' && this.version !== '' && this.store !== '') {\n\t\t\t\t\t\tversionless = `${this.name}::${this.store}::`;\n\t\t\t\t\t} else if (this.name !== '' && this.version !== '') {\n\t\t\t\t\t\tversionless = `${this.name}::`;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Get all the currently stored keys that contain the versionless\n\t\t\t\t\t// ID, which means they belong to this space\n\t\t\t\t\tconst storedVersions = Object.keys (window.localStorage).filter ((key) => {\n\t\t\t\t\t\treturn key.indexOf (versionless) === 0;\n\t\t\t\t\t}).map ((key) => {\n\t\t\t\t\t\t// Remove the versionless part of the ID and keep only the\n\t\t\t\t\t\t// part of the key belonging to the ID\n\t\t\t\t\t\treturn key.replace (versionless, '').split ('_')[0];\n\t\t\t\t\t}). filter ((key) => {\n\t\t\t\t\t\t// Filter all that didn't match the versionless part fully\n\t\t\t\t\t\treturn key.indexOf ('::') === -1;\n\t\t\t\t\t}).sort ();\n\n\t\t\t\t\tif (storedVersions.length > 0) {\n\t\t\t\t\t\t// We'll only take the lowest one every time\n\t\t\t\t\t\tconst oldVersion = storedVersions[0];\n\t\t\t\t\t\tconst oldVersionNumeric = parseInt (oldVersion.replace (/\\./g, ''));\n\n\t\t\t\t\t\tif (oldVersionNumeric < this.numericVersion) {\n\t\t\t\t\t\t\t// Check what upgrade functions have been declared in their respective order\n\t\t\t\t\t\t\tconst availableUpgrades = Object.keys (this.upgrades).sort ();\n\n\t\t\t\t\t\t\t// Find the first update that needs to be applied to the database given\n\t\t\t\t\t\t\t// the old version it currently has.\n\t\t\t\t\t\t\tconst startFrom = availableUpgrades.findIndex (u => {\n\t\t\t\t\t\t\t\tconst [old, ] = u.split ('::');\n\t\t\t\t\t\t\t\treturn parseInt (old) === oldVersionNumeric;\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif (startFrom > -1) {\n\t\t\t\t\t\t\t\tupgradesToApply = availableUpgrades.slice (startFrom).filter ((u) => {\n\t\t\t\t\t\t\t\t\tconst [old, next] = u.split ('::');\n\t\t\t\t\t\t\t\t\treturn parseInt (old) < this.numericVersion && parseInt (next) <= this.numericVersion;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Get the previous ID using the old version\n\t\t\t\t\t\t\tlet previousId = `${this.name}::${oldVersion}_`;\n\n\t\t\t\t\t\t\tif (this.name !== '' && this.version !== '' && this.store !== '') {\n\t\t\t\t\t\t\t\tpreviousId = `${this.name}::${this.store}::${oldVersion}_`;\n\t\t\t\t\t\t\t} else if (this.name !== '' && this.version !== '') {\n\t\t\t\t\t\t\t\tpreviousId = `${this.name}::${oldVersion}_`;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t// Get all keys from the previous version\n\t\t\t\t\t\t\tconst keys = Object.keys (window.localStorage).filter ((key) => {\n\t\t\t\t\t\t\t\treturn key.indexOf (previousId) === 0;\n\t\t\t\t\t\t\t}).map ((key) => {\n\t\t\t\t\t\t\t\treturn key.replace (previousId, '');\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tfor (const key of keys) {\n\t\t\t\t\t\t\t\t// Get the value stored with the previous version\n\t\t\t\t\t\t\t\tconst previous = window.localStorage.getItem (`${previousId}${key}`);\n\n\t\t\t\t\t\t\t\t// Re-insert the value using the new ID as a key\n\t\t\t\t\t\t\t\twindow.localStorage.setItem (this.id + key, previous);\n\n\t\t\t\t\t\t\t\t// Delete the previous value.\n\t\t\t\t\t\t\t\twindow.localStorage.removeItem (`${previousId}${key}`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresolve ({ upgrades: upgradesToApply });\n\t\t\t}).then (({ upgrades }) => {\n\t\t\t\tthis.storage = window.localStorage;\n\t\t\t\treturn new Promise ((resolve) => {\n\t\t\t\t\tconst res = () => resolve (this);\n\t\t\t\t\tthis._upgrade (upgrades, res);\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn this.storage;\n\t\t}\n\t}\n\n\t/**\n\t * Store a key-value pair\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object|string|Number} - Value to save\n\t * @return {Promise<{key, value}>}\n\t */\n\tset (key, value) {\n\t\treturn this.open ().then (() => {\n\n\t\t\tif (typeof value === 'object') {\n\t\t\t\tthis.storage.setItem (this.id + key, JSON.stringify (value));\n\t\t\t} else {\n\t\t\t\tthis.storage.setItem (this.id + key, value);\n\t\t\t}\n\n\t\t\treturn Promise.resolve ({key, value});\n\t\t});\n\t}\n\n\t/**\n\t * Update a key-value pair. In difference with the set () method, the update\n\t * method will use an Object.assign () in the case of objects so no value is\n\t * lost.\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object|string|Number} - Value to save\n\t * @return {Promise<{key, value}>}\n\t */\n\tupdate (key, value) {\n\t\treturn this.get (key).then ((currentValue) => {\n\t\t\tif (typeof currentValue === 'object') {\n\t\t\t\tif (typeof value === 'object') {\n\t\t\t\t\tvalue = Object.assign ({}, currentValue, value);\n\t\t\t\t}\n\t\t\t\tthis.storage.setItem (this.id + key, JSON.stringify (value));\n\t\t\t} else {\n\t\t\t\tthis.storage.setItem (this.id + key, value);\n\t\t\t}\n\t\t\treturn Promise.resolve ({key, value});\n\t\t}).catch (() => {\n\t\t\treturn this.set (key, value);\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves a value from storage given it's key\n\t *\n\t * @param {string} - Key with which the value was saved\n\t * @return {Promise|Promise|Promise} - Resolves to the retreived value\n\t * or its rejected if it doesn't exist\n\t */\n\tget (key) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tlet value = null;\n\t\t\t\tvalue = this.storage.getItem (this.id + key);\n\t\t\t\ttry {\n\t\t\t\t\tconst o = JSON.parse (value);\n\t\t\t\t\tif (o && typeof o === 'object') {\n\t\t\t\t\t\tvalue = o;\n\t\t\t\t\t}\n\t\t\t\t} catch (exception) {\n\t\t\t\t\t// Unable to parse to JSON\n\t\t\t\t}\n\n\t\t\t\tif (typeof value !== 'undefined' && value !== null) {\n\t\t\t\t\tresolve (value);\n\t\t\t\t} else {\n\t\t\t\t\treject ();\n\t\t\t\t}\n\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves all the values in the space in a key-value JSON object\n\t *\n\t * @return {Promise} - Resolves to the retreived values\n\t */\n\tgetAll () {\n\t\treturn this.keys ().then ((keys) => {\n\t\t\tconst values = {};\n\t\t\tconst promises = [];\n\t\t\tfor (const key of keys) {\n\t\t\t\tpromises.push (this.get (key).then ((value) => {\n\t\t\t\t\tvalues[key] = value;\n\t\t\t\t}));\n\t\t\t}\n\t\t\treturn Promise.all (promises).then (() => {\n\t\t\t\treturn values;\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Check if the space contains a given key.\n\t *\n\t * @param {string} key - Key to look for.\n\t * @return {Promise} Promise gets resolved if it exists and rejected if\n\t * doesn't\n\t */\n\tcontains (key) {\n\t\treturn this.keys ().then ((keys) => {\n\t\t\tif (keys.includes (key)) {\n\t\t\t\tPromise.resolve ();\n\t\t\t} else {\n\t\t\t\treturn Promise.reject ();\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Upgrade a Space Version\n\t *\n\t * @param oldVersion {string} - The version of the storage to be upgraded\n\t * @param newVersion {string} - The version to be upgraded to\n\t * @param callback {function} - Function to transform the old stored values to the new version's format\n\t * @returns {Promise}\n\t */\n\tupgrade (oldVersion, newVersion, callback) {\n\t\tthis.upgrades[`${parseInt (oldVersion.replace (/\\./g, ''))}::${parseInt (newVersion.replace (/\\./g, ''))}`] = callback;\n\t\treturn Promise.resolve ();\n\t}\n\n\t// This function acts as a helper for the upgrade progress by executing the\n\t// needed upgrade callbacks in the correct order and sychronously.\n\t_upgrade (upgradesToApply, resolve) {\n\t\t// Check if there are still upgrades to apply\n\t\tif (upgradesToApply.length > 0) {\n\t\t\tthis.upgrades[upgradesToApply[0]].call (this, this).then (() => {\n\t\t\t\tthis._upgrade (upgradesToApply.slice (1), resolve);\n\t\t\t}).catch ((e) => console.error (e));\n\t\t} else {\n\t\t\tresolve ();\n\t\t}\n\t}\n\n\t/**\n\t * Rename a Space\n\t *\n\t * @param {string} name - New name to be used.\n\t * @returns {Promise} - Result of the rename operation\n\t */\n\trename (name) {\n\t\t// Check if the name is different\n\t\tif (this.name !== name) {\n\t\t\treturn this.keys ().then ((keys) => {\n\t\t\t\t// Save the previous Space id\n\t\t\t\tconst oldId = this.id;\n\n\t\t\t\t// Set new object properties with the new name\n\t\t\t\tthis.name = name;\n\n\t\t\t\tif (this.name !== '' && this.version !== '' && this.store !== '') {\n\t\t\t\t\tthis.id = `${this.name}::${this.store}::${this.version}_`;\n\t\t\t\t} else if (this.name !== '' && this.version !== '') {\n\t\t\t\t\tthis.id = `${this.name}::${this.version}_`;\n\t\t\t\t} else if (this.name !== '') {\n\t\t\t\t\tthis.id = `${this.name}::_`;\n\t\t\t\t} else {\n\t\t\t\t\tthis.id = '';\n\t\t\t\t}\n\n\t\t\t\tconst promises = [];\n\t\t\t\tfor (const key of keys) {\n\t\t\t\t\tpromises.push (this.set (key, this.storage.getItem (`${oldId}${key}`)).then (() => {\n\t\t\t\t\t\tthis.storage.removeItem (`${oldId}${key}`);\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\treturn Promise.all (promises);\n\t\t\t});\n\t\t} else {\n\t\t\treturn Promise.reject ();\n\t\t}\n\t}\n\n\t/**\n\t * Get the key that corresponds to a given index in the storage\n\t *\n\t * @param {Number} index - Index to get the key from\n\t * @param {boolean} [full=false] - Whether to return the full key name including space id or just the key name\n\t * @return {Promise} - Resolves to the key's name\n\t */\n\tkey (index, full = false) {\n\t\treturn this.open ().then (() => {\n\t\t\tif (full === true) {\n\t\t\t\treturn Promise.resolve (this.storage.key (index));\n\t\t\t} else {\n\t\t\t\treturn Promise.resolve (this.storage.key (index).replace (this.id, ''));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Return all keys stored in the space.\n\t *\n\t * @param {boolean} [full=false] - Whether to return the full key name including space id or just the key name\n\t * @return {Promise} - Array of keys\n\t */\n\tkeys (full = false) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn Promise.resolve (Object.keys (this.storage).filter ((key) => {\n\t\t\t\treturn key.indexOf (this.id) === 0;\n\t\t\t}).map ((key) => {\n\t\t\t\tif (full === true) {\n\t\t\t\t\treturn key;\n\t\t\t\t} else {\n\t\t\t\t\treturn key.replace (this.id, '');\n\t\t\t\t}\n\t\t\t}));\n\t\t});\n\t}\n\n\t/**\n\t * Delete a value from the space given its key\n\t *\n\t * @param {string} key - Key of the item to delete\n\t * @return {Promise} - Resolves to the value of the deleted object\n\t */\n\tremove (key) {\n\t\treturn this.get (key).then ((value) => {\n\t\t\tthis.storage.removeItem (this.id + key);\n\t\t\treturn Promise.resolve (value);\n\t\t});\n\t}\n\n\t/**\n\t * Clear the entire space\n\t *\n\t * @return {Promise} - Result of the clear operation\n\t */\n\tclear () {\n\t\treturn this.keys ().then ((keys) => {\n\t\t\tfor (const key of keys) {\n\t\t\t\tthis.remove (key);\n\t\t\t}\n\t\t\treturn Promise.resolve ();\n\t\t});\n\t}\n}","/**\n* ==============================\n* Session Storage Adapter\n* ==============================\n*/\n\nimport { LocalStorage } from './LocalStorage';\n\n/**\n * The Session Storage Adapter provides the Space Class the ability to interact\n * with the sessionStorage api found in most modern browsers. Since this API\n * shares pretty much the same methods to the local storage one, this class\n * inherits from the LocalStorage adapter.\n *\n * @class\n */\nexport class SessionStorage extends LocalStorage {\n\n\t/**\n\t * Create a new SessionStorage. If no configuration is provided, the SessionStorage\n\t * global object is used.The SessionStorage Adapter can provide independency\n\t * by store name and space name.\n\t *\n\t * @constructor\n\t * @param {Object} [configuration={name = '', version = '', store = ''}] - Configuration Object for the Adapter\n\t * @param {string} configuration.name - Name of the Space\n\t * @param {string} configuration.version - Version of the Space in Semantic versioning syntax\n\t * @param {string} configuration.store - Name of the Object Store to use\n\t *\n\t */\n\tconstructor ({name = '', version = '', store = ''}) {\n\t\tsuper ({name, version, store});\n\t}\n\n\t/**\n\t * Open the Storage Object\n\n\t * @return {Promise}\n\t */\n\topen () {\n\t\tif (typeof this.storage === 'undefined') {\n\t\t\tthis.storage = window.sessionStorage;\n\t\t}\n\t\treturn Promise.resolve (this);\n\t}\n}","/**\n* ==============================\n* IndexedDB Adapter\n* ==============================\n*/\n\n/**\n * The IndexedDB Adapter provides the Space Class the ability to interact\n * with the IndexedDB API found in most modern browsers.\n *\n * @class\n */\nexport class IndexedDB {\n\n\t/**\n\t * Create a new IndexedDB. Differently from Local and Session Storages, the\n\t * IndexedDB Adapter requires a mandatory name, version and store name.\n\t *\n\t * @constructor\n\t * @param {Object} [configuration={name = '', version = '', store = '', props = {}, index = {}}] - Configuration Object for the Adapter\n\t * @param {string} configuration.name - Name of the Space\n\t * @param {string} configuration.version - Version of the Space in Semantic versioning syntax\n\t * @param {string} configuration.store - Name of the Object Store to use\n\t * @param {Object} configuration.props - Optional Parameters for the Object Store\n\t * @param {Object} configuration.index - Object of the indexes to declare for\n\t * the Object Store. Each index is a JSON object with the following properties:\n\t * @param {String} configuration.index[...].name - Name for the Index\n\t * @param {String} configuration.index[...].field - Field on the store to apply the index to\n\t * @param {Object} configuration.index[...].props - Index properties object\n\t */\n\tconstructor ({name = '', version = '', store = '', props = {}, index = {}}) {\n\t\tthis.name = name;\n\t\tthis.version = version;\n\t\tthis.store = store;\n\t\tthis.props = props;\n\t\tthis.index = index;\n\n\t\tthis.upgrades = {};\n\n\t\tif (this.version === '') {\n\t\t\tthis.numericVersion = 0;\n\t\t} else {\n\t\t\tthis.numericVersion = parseInt (version.replace (/\\./g, ''));\n\t\t}\n\t}\n\n\t/**\n\t * Open the Storage Object\n\t *\n\t * @return {Promise}\n\t */\n\topen () {\n\n\t\tif (this.name === '') {\n\t\t\tconsole.error ('No name has been defined for IndexedDB space.');\n\t\t\treturn Promise.reject ();\n\t\t}\n\n\t\tif (this.store === '') {\n\t\t\tconsole.error ('No store has been defined for IndexedDB space.');\n\t\t\treturn Promise.reject ();\n\t\t}\n\n\t\tif (this.storage instanceof IDBDatabase) {\n\t\t\treturn Promise.resolve (this);\n\t\t} else if (this.storage instanceof Promise) {\n\t\t\treturn this.storage;\n\t\t} else {\n\t\t\tthis.storage = new Promise ((resolve, reject) => {\n\t\t\t\tlet upgradesToApply = [];\n\t\t\t\tconst storage = window.indexedDB.open (this.name, this.numericVersion);\n\n\t\t\t\tstorage.onerror = (event) => {\n\t\t\t\t\treject (event);\n\t\t\t\t};\n\n\t\t\t\tstorage.onsuccess = (event) => {\n\t\t\t\t\tresolve ({ storage: event.target.result, upgrades: upgradesToApply });\n\t\t\t\t};\n\n\t\t\t\tstorage.onupgradeneeded = (event) => {\n\t\t\t\t\t// If the previous version is less than one, it means that\n\t\t\t\t\t// the database needs to be created first\n\t\t\t\t\tif (event.oldVersion < 1) {\n\t\t\t\t\t\t// Create all the needed Stores\n\t\t\t\t\t\tconst store = event.target.result.createObjectStore (this.store, this.props);\n\t\t\t\t\t\tfor (const index of Object.keys (this.index)) {\n\t\t\t\t\t\t\tstore.createIndex (this.index[index].name, this.index[index].field, this.index[index].props);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Check what upgrade functions have been declared in their respective order\n\t\t\t\t\t\tconst availableUpgrades = Object.keys (this.upgrades).sort ();\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Find the first update that needs to be applied to the database given\n\t\t\t\t\t\t// the old version it currently has.\n\t\t\t\t\t\tconst startFrom = availableUpgrades.findIndex (u => {\n\t\t\t\t\t\t\tconst [old, ] = u.split ('::');\n\t\t\t\t\t\t\treturn parseInt (old) === event.oldVersion;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (startFrom > -1) {\n\t\t\t\t\t\t\tupgradesToApply = availableUpgrades.slice (startFrom).filter ((u) => {\n\t\t\t\t\t\t\t\tconst [old, next] = u.split ('::');\n\t\t\t\t\t\t\t\treturn parseInt (old) < this.numericVersion && parseInt (next) <= this.numericVersion;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Once the transaction is done, resolve the storage object\n\t\t\t\t\tconst transaction = event.target.transaction;\n\t\t\t\t\ttransaction.addEventListener ('success', () => {\n\t\t\t\t\t\tresolve ({ storage: event.target.result, upgrades: upgradesToApply });\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t}).then (({ storage, upgrades }) => {\n\t\t\t\tthis.storage = storage;\n\t\t\t\treturn new Promise ((resolve) => {\n\t\t\t\t\tconst res = () => resolve (storage);\n\t\t\t\t\tthis._upgrade (upgrades, res, event);\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn this.storage;\n\t\t}\n\t}\n\n\t/**\n\t * Store a key-value pair. Because of the nature of a IndexedDB Database, the\n\t * stored values must be JSON objects.\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object} - Value to save\n\t * @return {Promise} - When resolved, a {key, value} object is handed\n\t * down, when it's rejected, the event is handed down.\n\t */\n\tset (key = null, value) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store, 'readwrite').objectStore (this.store);\n\t\t\t\tlet op;\n\t\t\t\tif (key !== null) {\n\t\t\t\t\top = transaction.put (Object.assign ({}, {id: key}, value));\n\t\t\t\t} else {\n\t\t\t\t\top = transaction.add (value);\n\t\t\t\t}\n\t\t\t\top.addEventListener ('success', (event) => { resolve ({key: event.target.result, value: value});});\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Update a key-value pair. In difference with the set () method, the update\n\t * method will use an Object.assign () in the case of objects so no value is\n\t * lost.\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object} - Value to save\n\t * @return {Promise} - When resolved, a {key, value} object is handed\n\t * down, when it's rejected, the event is handed down.\n\t */\n\tupdate (key, value) {\n\t\treturn this.get (key).then ((currentValue) => {\n\t\t\t// If this key did not exist on the storage, then create it using the\n\t\t\t// set method\n\t\t\tif (typeof currentValue === 'undefined') {\n\t\t\t\treturn this.set (key, value);\n\t\t\t}\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store, 'readwrite').objectStore (this.store);\n\t\t\t\tconst op = transaction.put (Object.assign ({}, currentValue, value));\n\t\t\t\top.addEventListener ('success', (event) => {resolve ({key: event.target.result, value: value});});\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves a value from storage given it's key\n\t *\n\t * @param {string} - Key with which the value was saved\n\t * @return {Promise} - Resolves to the retreived value or its rejected\n\t * if it doesn't exist\n\t */\n\tget (key) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store).objectStore (this.store);\n\t\t\t\tconst op = transaction.get (key);\n\n\t\t\t\top.addEventListener ('success', (event) => {resolve (event.target.result);});\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves all the values in the space in a key-value JSON object\n\t *\n\t * @return {Promise} - Resolves to the retreived values\n\t */\n\tgetAll () {\n\t\treturn this.open ().then (() => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store).objectStore (this.store);\n\t\t\t\tconst op = transaction.getAll ();\n\n\t\t\t\top.addEventListener ('success', (event) => {resolve (event.target.result);});\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Check if the space contains a given key.\n\t *\n\t * @param {string} key - Key to look for.\n\t * @return {Promise} - Promise gets resolved if it exists and rejected if it\n\t * doesn't\n\t */\n\tcontains (key) {\n\t\treturn this.get (key).then ((keys) => {\n\t\t\tif (keys.includes (key)) {\n\t\t\t\tPromise.resolve ();\n\t\t\t} else {\n\t\t\t\treturn Promise.reject ();\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Upgrade a Space Version. Upgrades must be declared before the open ()\n\t * method is executed.\n\t *\n\t * @param {string} oldVersion - The version to be upgraded\n\t * @param {string} newVersion - The version to be upgraded to\n\t * @param {function} callback - Function to transform the old stored values to the new version's format\n\t * @returns {Promise}\n\t */\n\tupgrade (oldVersion, newVersion, callback) {\n\t\tthis.upgrades[`${parseInt (oldVersion.replace (/\\./g, ''))}::${parseInt (newVersion.replace (/\\./g, ''))}`] = callback;\n\t\treturn Promise.resolve ();\n\t}\n\n\t// This function acts as a helper for the upgrade progress by executing the\n\t// needed upgrade callbacks in the correct order and sychronously.\n\t_upgrade (upgradesToApply, resolve, event) {\n\t\t// Check if there are still upgrades to apply\n\t\tif (upgradesToApply.length > 0) {\n\t\t\tthis.upgrades[upgradesToApply[0]].call (this, this, event).then (() => {\n\t\t\t\tthis._upgrade (upgradesToApply.slice (1), resolve, event);\n\t\t\t}).catch ((e) => console.error (e));\n\t\t} else {\n\t\t\tresolve ();\n\t\t}\n\t}\n\n\t/**\n\t * Renaming the space is not possible with the IndexedDB adapter therefore\n\t * this function always gets a rejection.\n\t *\n\t * @returns {Promise} - Result of the rename operation\n\t */\n\trename () {\n\t\treturn Promise.reject ();\n\t}\n\n\t/**\n\t * Getting a key by its index is not possible in this adapter, therefore this\n\t * function always gets rejected.\n\t *\n\t * @return {Promise} - Promise Rejection\n\t */\n\tkey () {\n\t\treturn Promise.reject ();\n\t}\n\n\t/**\n\t * Return all keys stored in the space.\n\t *\n\t * @return {Promise} - Array of keys\n\t */\n\tkeys () {\n\t\treturn this.open ().then (() => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store, 'readwrite').objectStore (this.store);\n\t\t\t\tconst op = transaction.getAllKeys ();\n\t\t\t\top.addEventListener ('success', (event) => {resolve (event.target.result);}, false);\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);}, false);\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Delete a value from the space given its key\n\t *\n\t * @param {string} key - Key of the item to delete\n\t * @return {Promise} - Resolves to the key and value of the deleted object\n\t */\n\tremove (key) {\n\t\treturn this.get (key).then ((value) => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store, 'readwrite').objectStore (this.store);\n\t\t\t\tconst op = transaction.delete (key);\n\t\t\t\top.addEventListener ('success', () => {resolve (value);}, false);\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);}, false);\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Clear the entire space\n\t *\n\t * @return {Promise} - Result of the clear operation\n\t */\n\tclear () {\n\t\treturn this.open ().then (() => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store, 'readwrite').objectStore (this.store);\n\t\t\t\tconst op = transaction.clear ();\n\t\t\t\top.addEventListener ('success', () => {resolve ();}, false);\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);}, false);\n\t\t\t});\n\t\t});\n\t}\n}","/**\n* ==============================\n* Remote Storage Adapter\n* ==============================\n*/\n\nimport { Request } from './../Request';\n\n/**\n * The Remote Storage Adapter provides the Space Class the ability to interact\n * with a server in order to handle data persistance. The server's implementation\n * is up to the developer but it will need to respond to this adapter's request\n * formatting. This adapter uses the Request class to perfom its tasks.\n *\n * @class\n */\nexport class RemoteStorage {\n\n\t/**\n\t * Create a new Remote Storage. This adapter requires an endpoint url where\n\t * it will make the requests. If a store is defined, the request will be made\n\t * using the store as an URL, for example, let's assume the following endpoint:\n\t *\n\t * https://example.com/api/v1/\n\t *\n\t * If no store is defined, then the requests will be made to that simple route,\n\t * with a store definition, requests will be made to:\n\t *\n\t * https://example.com/api/v1/{myStore}/\n\t *\n\t * The key of each item in this store represents another part of the request\n\t *\n\t * https://example.com/api/v1/{key}/\n\t *\n\t * Or:\n\t *\n\t * https://example.com/api/v1/{myStore}/{key}/\n\t *\n\t * This adapter just as the IndexedDB, works with JSON objects instead of string or\n\t * numeric values.\n\t *\n\t * @constructor\n\t * @param {object} [configuration={name = '', version = '', store = '', endpoint = '', props = {}] - Configuration Object for the Adapter\n\t * @param {string} configuration.name - Name of the Space\n\t * @param {string} configuration.version - Version of the Space in Semantic versioning syntax\n\t * @param {string} configuration.store - Name of the Object Store to use\n\t * @param {string} configuration.endpoint - Endpoint URL where the requests will be made\n\t * @param {string} configuration.props - Properties object to use for the fetch requests\n\t */\n\tconstructor ({name = '', version = '', store = '', endpoint = '', props = {}}) {\n\t\tthis.name = name;\n\t\tthis.version = version;\n\t\tthis.store = store;\n\t\tthis.endpoint = `${endpoint}${store}/`;\n\t\tthis.props = props;\n\t}\n\n\t/**\n\t * Open the Storage Object\n\t *\n\t * @return {Promise}\n\t */\n\topen () {\n\t\tif (typeof this.storage === 'undefined') {\n\t\t\tthis.storage = Request;\n\t\t}\n\t\treturn Promise.resolve (this);\n\t}\n\n\t/**\n\t * Store a key-value pair. This function sends a POST request to the server\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object} value - Value to save\n\t * @return {Promise}\n\t */\n\tset (key, value) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn this.storage.post (this.endpoint + key, value, this.props).then ((response) => {\n\t\t\t\treturn Promise.resolve ({ key, response: response.json () });\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Update a key-value pair. In difference with the set () method, the update\n\t * method will use an Object.assign () in the case of objects so no value is\n\t * lost. This function sends a PUT request to the server.\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object} value - Value to save\n\t * @return {Promise}\n\t */\n\tupdate (key, value) {\n\t\treturn this.get (key).then ((currentValue) => {\n\t\t\treturn this.storage.put (this.endpoint + key, Object.assign ({}, currentValue, value), this.props).then ((response) => {\n\t\t\t\treturn Promise.resolve ({ key, response: response.json () });\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves a value from storage given it's key\n\t *\n\t * @param {string} - Key with which the value was saved\n\t * @return {Promise} - Resolves to the retreived value or its rejected\n\t * if it doesn't exist\n\t */\n\tget (key) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn this.storage.json (this.endpoint + key, {}, this.props);\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves all the values in the space in a key-value JSON object\n\t *\n\t * @return {Promise} - Resolves to the retreived values\n\t */\n\tgetAll () {\n\t\treturn this.open ().then (() => {\n\t\t\treturn this.storage.json (this.endpoint, {}, this.props);\n\t\t});\n\t}\n\n\t/**\n\t * Check if a space contains a given key.\n\t *\n\t * @param {string} key - Key to look for.\n\t * @return {Promise} Promise gets resolved if it exists and rejected if it\n\t * doesn't\n\t */\n\tcontains (key) {\n\t\treturn this.keys ().then ((keys) => {\n\t\t\tif (keys.includes (key)) {\n\t\t\t\tPromise.resolve ();\n\t\t\t} else {\n\t\t\t\treturn Promise.reject ();\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Upgrading the Storage must be done on the server side, therefore this function\n\t * always gets rejected.\n\t *\n\t * @returns {Promise}\n\t */\n\tupgrade () {\n\t\treturn Promise.reject ();\n\t}\n\n\t/**\n\t * Renaming the Storage must be done on the server side, therefore this function\n\t * always gets rejected.\n\t *\n\t * @returns {Promise}\n\t */\n\trename () {\n\t\treturn Promise.reject ();\n\t}\n\n\t/**\n\t * Getting a key by its index is not possible in this adapter, therefore this\n\t * function always gets rejected.\n\t *\n\t * @return {Promise} - Promise Rejection\n\t */\n\tkey () {\n\t\treturn Promise.reject ();\n\t}\n\n\t/**\n\t * Return all keys stored in the space. This makes a GET request to the full\n\t * endpoint (the URL of the endpoint and store name) with a keys query\n\t * parameter:\n\t *\n\t * https://example.com/api/v1/?keys=true\n \t *\n\t * Or:\n \t *\n \t * https://example.com/api/v1/{myStore}/?keys=true\n\t *\n\t * @return {Promise} - Array of keys\n\t */\n\tkeys () {\n\t\treturn this.open ().then (() => {\n\t\t\treturn this.storage.json (this.endpoint, {keys: true}, this.props);\n\t\t});\n\t}\n\n\t/**\n\t * Delete a value from the space given it's key. This function sends a DELETE\n\t * request to the server.\n\t *\n\t * @param {string} key - Key of the item to delete\n\t * @return {Promise} - Resolves to the key and value of the deleted object\n\t */\n\tremove (key) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn this.storage.delete (this.endpoint + key, {}, this.props).then ((response) => {\n\t\t\t\treturn Promise.resolve (key, response.json ());\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Clear the entire space. This function sends a DELETE request to the server.\n\t * The difference between a clear () and remove () operation is that the clear\n\t * operation does not uses a key in the URL where the request is made.\n\t *\n\t * @return {Promise} - Result of the clear operation\n\t */\n\tclear () {\n\t\treturn this.open ().then (() => {\n\t\t\treturn this.storage.delete (this.endpoint, {}, this.props);\n\t\t});\n\t}\n}","/**\n* ==============================\n* Space\n* ==============================\n*/\n\nimport { LocalStorage } from './SpaceAdapter/LocalStorage';\nimport { SessionStorage } from './SpaceAdapter/SessionStorage';\nimport { IndexedDB } from './SpaceAdapter/IndexedDB';\nimport { RemoteStorage } from './SpaceAdapter/RemoteStorage';\n\n/**\n * List of Adapters Available\n */\nexport const SpaceAdapter = {\n\tLocalStorage,\n\tSessionStorage,\n\tIndexedDB,\n\tRemoteStorage\n};\n\n/**\n * Space provides a simple wrapper for different Storage APIs. It aims to\n * provide data independence through storage namespaces and versioning, allowing\n * transparent data formatting and content modifications through versions.\n *\n * While this class documentation provides some information, specific details may\n * be addressed on the documentation of each adapter.\n *\n * @class\n */\nexport class Space {\n\n\t/**\n\t * Create a new Space Object. If no name and version is defined, the global LocalSpace space is used.\n\t *\n\t * @constructor\n\t * @param {SpaceAdapter} [adapter = SpaceAdapter.LocalStorage] - Space Adapter\n\t * to use. Currently LocalStorage, SessionStorage, IndexedDB and Server are\n\t * available\n\t * @param {Object} [configuration = {}] - Configuration object for the space.\n\t * This configuration may change depending on the adapter used, however all\n\t * adapters have support for a name, version and store properties.\n\t * @param {string} configuration.name - Name of the Space\n\t * @param {string} configuration.version - Version of the Space in Semantic versioning syntax\n\t * @param {string} configuration.store - Name of the Object Store to use\n\t */\n\tconstructor (adapter = SpaceAdapter.LocalStorage, configuration = {}) {\n\t\t// Assign the provided configuration to the default one\n\t\tthis._configuration = Object.assign ({}, {name: '', version: '', store: ''}, configuration);\n\n\t\t// Set up the adapter instance to use\n\t\tthis.adapter = new adapter (this._configuration);\n\n\t\t// This object stores all the callbacks the user can define for the\n\t\t// space operations\n\t\tthis.callbacks = {\n\t\t\t'create': [],\n\t\t\t'update': [],\n\t\t\t'delete': []\n\t\t};\n\n\t\t// A transformation is an object that can contain a set and get functions\n\t\t// every transformation will be applied to the retrieved value or to the\n\t\t// value before storing it.\n\t\tthis.transformations = {\n\n\t\t};\n\t}\n\n\t/**\n\t * Modify the space configuration, it will also be passed down to the adapter\n\t * using its configuration () function.\n\t *\n\t * @param {object} - Configuration object to set up\n\t * @return {object} - Configuration object if no param was passed\n\t */\n\tconfiguration (object = null) {\n\t\tif (object !== null) {\n\t\t\tthis._configuration = Object.assign ({}, this._configuration, object);\n\t\t\tthis.adapter.configuration (object);\n\t\t} else {\n\t\t\treturn this._configuration;\n\t\t}\n\t}\n\n\t/**\n\t * Open the Storage Object to be used depending on the SpaceAdapter\n\t *\n\t * @return {Promise}\n\t */\n\topen () {\n\t\treturn this.adapter.open ().then (() => {\n\t\t\treturn Promise.resolve (this);\n\t\t});\n\t}\n\n\t/**\n\t * Store a key-value pair\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object|string|Number} - Value to save\n\t * @return {Promise<{key, value}>}\n\t */\n\tset (key, value) {\n\t\t// Apply all set transformations to the value\n\t\tfor (const id of Object.keys (this.transformations)) {\n\t\t\tif (typeof this.transformations[id].set === 'function') {\n\t\t\t\tvalue = this.transformations[id].set.call (null, key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn this.adapter.set (key, value).then (({key, value}) => {\n\t\t\tfor (const callback of this.callbacks.create) {\n\t\t\t\tcallback.call (null, key, value);\n\t\t\t}\n\t\t\treturn Promise.resolve ({key, value});\n\t\t});\n\t}\n\n\t/**\n\t * Update a key-value pair. In difference with the set () method, the update\n\t * method will use an Object.assign () in the case of objects so no value is\n\t * lost.\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object|string|Number} - Value to save\n\t * @return {Promise<{key, value}>}\n\t */\n\tupdate (key, value) {\n\t\t// Apply all set transformations to the value\n\t\tfor (const id of Object.keys (this.transformations)) {\n\t\t\tif (typeof this.transformations[id].set === 'function') {\n\t\t\t\tvalue = this.transformations[id].set.call (null, key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn this.adapter.update (key, value).then (({key, value}) => {\n\t\t\tfor (const callback of this.callbacks.update) {\n\t\t\t\tcallback.call (null, key, value);\n\t\t\t}\n\t\t\treturn Promise.resolve ({key, value});\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves a value from storage given it's key\n\t *\n\t * @param {string} - Key with which the value was saved\n\t * @return {Promise|Promise|Promise} - Resolves to the retreived value\n\t * or its rejected if it doesn't exist.\n\t */\n\tget (key) {\n\t\treturn this.adapter.get (key).then ((value) => {\n\t\t\t// Apply all get transformations to the value\n\t\t\tfor (const id of Object.keys (this.transformations)) {\n\t\t\t\tif (typeof this.transformations[id].get === 'function') {\n\t\t\t\t\tvalue = this.transformations[id].get.call (null, key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves all the values in the space in a key-value JSON object\n\t *\n\t * @return {Promise} - Resolves to the retreived values\n\t */\n\tgetAll () {\n\t\treturn this.adapter.getAll ().then ((values) => {\n\t\t\t// Apply all get transformations to the value\n\t\t\tfor (const key of Object.keys (values)) {\n\t\t\t\tfor (const id of Object.keys (this.transformations)) {\n\t\t\t\t\tif (typeof this.transformations[id].get === 'function') {\n\t\t\t\t\t\tvalues[key] = this.transformations[id].get.call (null, key, values[key]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn values;\n\t\t});\n\t}\n\n\t/**\n\t * Iterate over every value in the space\n\t *\n\t * @param {function (key, value)} callback - A callback function receiving the\n\t * key and value of a value. Must return a callback\n\t * @return {Promise} - Resolves when all callbacks have been resolved.\n\t */\n\teach (callback) {\n\t\treturn this.getAll ().then ((values) => {\n\t\t\tconst promises = [];\n\t\t\tfor (const i of Object.keys (values)) {\n\t\t\t\tpromises.push (callback.call (this, i, values[i]));\n\t\t\t}\n\t\t\treturn Promise.all (promises);\n\t\t});\n\t}\n\n\t/**\n\t * Check if a space contains a given key. Not all adapters may give this information\n\t *\n\t * @param {string} key - Key to look for.\n\t * @return {Promise} - Promise gets resolved if it exists and rejected if\n\t * doesn't\n\t */\n\tcontains (key) {\n\t\treturn this.adapter.contains (key);\n\t}\n\n\t/**\n\t * Upgrade a Space Version. Not all adapters may provide this functionality\n\t *\n\t * @param oldVersion {string} - The version of the storage to be upgraded\n\t * @param newVersion {string} - The version to be upgraded to\n\t * @param callback {function} - Function to transform the old stored values to the new version's format\n\t *\n\t * @returns {Promise} - Result of the upgrade operation\n\t */\n\tupgrade (oldVersion, newVersion, callback) {\n\t\treturn this.adapter.upgrade (oldVersion, newVersion, callback).then (() => {\n\t\t\treturn Promise.resolve (this);\n\t\t});\n\t}\n\n\t/**\n\t * Rename a Space. Not all adapters may provide this functionality\n\t *\n\t * @param {string} name - New name to be used.\n\t * @returns {Promise} Result of the rename operation\n\t */\n\trename (name) {\n\t\treturn this.adapter.rename (name);\n\t}\n\n\t/**\n\t * Add a callback function to be run every time a value is created.\n\t *\n\t * @param {function (key, value)} callback - Callback Function. Key and Value pair will be sent as parameters when run.\n\t */\n\tonCreate (callback) {\n\t\tthis.callbacks.create.push (callback);\n\t}\n\n\t/**\n\t * Add a callback function to be run every time a value is updated.\n\t *\n\t * @param {function (key, value)} callback - Callback Function. Key and Value pair will be sent as parameters when run.\n\t */\n\tonUpdate (callback) {\n\t\tthis.callbacks.update.push (callback);\n\t}\n\n\t/**\n\t * Add a callback function to be run every time a value is deleted.\n\t *\n\t * @param {function (key, value)} callback - Callback Function. Key and Value pair will be sent as parameters when run.\n\t */\n\tonDelete (callback) {\n\t\tthis.callbacks.delete.push (callback);\n\t}\n\n\t/**\n\t * Add a transformation function to the space.\n\t *\n\t * @param {string} id - Unique transformation name or identifier\n\t * @param {function (key, value)|null} get - Transformation function to apply to the content before\n\t * returning the value when using the get () function .\n\t * @param {function (key, value)|null} set - Transformation function to apply to the content before\n\t * saving it when using the set () function befo.\n\t */\n\taddTransformation ({id, get, set}) {\n\t\tthis.transformations[id] = {\n\t\t\tid,\n\t\t\tget,\n\t\t\tset\n\t\t};\n\t}\n\n\t/**\n\t * Remove a transformation function given its id\n\t *\n\t * @param {string} id - Name or identifier of the transformation to remove\n\t */\n\tremoveTransformation (id) {\n\t\tdelete this.transformations[id];\n\t}\n\n\t/**\n\t * Get the key that corresponds to a given index in the storage. Not all adapters may provide this functionality\n\t *\n\t * @param {Number} index - Index to get the key from\n\t * @param {boolean} [full = false] - Whether to return the full key name including space id or just the key name\n\t * @return {Promise} - Resolves to the key's name\n\t */\n\tkey (index, full = false) {\n\t\treturn this.adapter.key (index, full);\n\t}\n\n\t/**\n\t * Return all keys stored in the space. Not all adapters may provide this functionality\n\t *\n\t * @param {boolean} [full = false] - Whether to return the full key name including space id or just the key name\n\t * @return {Promise} - Array of keys\n\t */\n\tkeys (full = false) {\n\t\treturn this.adapter.keys (full);\n\t}\n\n\t/**\n\t * Delete a value from the space given it's key\n\t *\n\t * @param {string} key - Key of the item to delete\n\t * @return {Promise} - Resolves to the key and value of the deleted object\n\t */\n\tremove (key) {\n\t\treturn this.adapter.remove (key).then ((value) => {\n\t\t\t// Run the callback for deletions\n\t\t\tfor (const callback of this.callbacks.delete) {\n\t\t\t\tcallback.call (null, key, value);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Clear the entire space\n\t *\n\t * @return {Promise} - Result of the clear operation\n\t */\n\tclear () {\n\t\treturn this.adapter.clear ();\n\t}\n}","/**\n* ==============================\n* Text\n* ==============================\n*/\n\n/**\n * Provides utility functions for texts\n * @class\n */\nexport class Text {\n\n\t/**\n\t * @static capitalize - Capatalizes every word in a string\n\t *\n\t * @param {string} text - Text string to capitalize\n\t * @return {string} - Capitalized string\n\t */\n\tstatic capitalize (text) {\n\t\treturn text.replace (/\\w\\S*/g, (txt) => {\n\t\t\treturn txt.charAt (0).toUpperCase () + txt.substr (1).toLowerCase ();\n\t\t});\n\t}\n\n\t/**\n\t * @static suffix - Gets the suffix of a string given a key\n\t *\n\t * @param {string} key - Key part of the string\n\t * @param {string} text - Full string to extract the suffix from\n\t * @return {string} - Suffix\n\t */\n\tstatic suffix (key, text) {\n\t\tlet suffix = '';\n\t\tlet position = text.indexOf (key);\n\t\tif (position !== -1) {\n\t\t\tposition += key.length;\n\t\t\tsuffix = text.substr (position, text.length - position);\n\t\t}\n\t\treturn suffix;\n\t}\n\n\n\t/**\n\t * @static selection - Get the currently selected text\n\t *\n\t * @return {string} - Text selection\n\t */\n\tstatic selection () {\n\t\tif (window.getSelection) {\n\t\t\treturn window.getSelection ().toString ();\n\t\t} else if (document.selection && document.selection.type != 'Control') {\n\t\t\treturn document.selection.createRange ().text;\n\t\t}\n\t}\n\n\t/**\n\t * @static prefix - Gets the prefix of a string given a key\n\t *\n\t * @param {string} key - Key part of the string\n\t * @param {string} text - Full string to extract the prefix from\n\t * @return {string} - Prefix\n\t */\n\tstatic prefix (key, text) {\n\t\tlet prefix = '';\n\t\tconst position = text.indexOf (key);\n\t\tif (position != -1) {\n\t\t\tprefix = text.substr (0, position);\n\t\t}\n\t\treturn prefix;\n\t}\n\n\t/**\n\t * @static friendly - Transforms a given text into a friendly URL string replacing all special characters\n\t *\n\t * @param {string} text - The text to build the url from\n\t * @return {string} - Friendly URL\n\t */\n\tstatic friendly (text) {\n\t\tconst regex = [\n\t\t\t/[Ôàâãªä]/,\n\t\t\t/[ƁƀƂƃƄ]/,\n\t\t\t/[ƍƌƎƏ]/,\n\t\t\t/[íìîï]/,\n\t\t\t/[éèêë]/,\n\t\t\t/[ƉƈƊƋ]/,\n\t\t\t/[óòÓõºö]/,\n\t\t\t/[ƓƒƔƕƖ]/,\n\t\t\t/[úùûü]/,\n\t\t\t/[ƚƙƛƜ]/,\n\t\t\t/Ƨ/,\n\t\t\t/Ƈ/,\n\t\t\t/Ʊ/,\n\t\t\t/Ƒ/,\n\t\t\t/_/,\n\t\t\t/[ā€™ā€˜ā€¹ā€ŗ<>']/,\n\t\t\t/[ā€œā€Ā«Ā»ā€ž\"]/,\n\t\t\t/[(){}[\\]]/,\n\t\t\t/[?Āæ!Ā”#$%&^*Ā“`~/°|]/,\n\t\t\t/[,.:;]/,\n\t\t\t/ /\n\t\t];\n\n\t\tconst replacements = [\n\t\t\t'a',\n\t\t\t'A',\n\t\t\t'I',\n\t\t\t'i',\n\t\t\t'e',\n\t\t\t'E',\n\t\t\t'o',\n\t\t\t'O',\n\t\t\t'u',\n\t\t\t'U',\n\t\t\t'c',\n\t\t\t'C',\n\t\t\t'n',\n\t\t\t'N',\n\t\t\t'-',\n\t\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t'-'\n\t\t];\n\n\t\tfor (const index in regex) {\n\t\t\ttext = text.replace(new RegExp(regex[index], 'g'), replacements[index]);\n\t\t}\n\n\t\treturn text;\n\t}\n}","/**\n* ==============================\n* Util\n* ==============================\n*/\n\n/**\n * Provides diverse utility functions\n * @class\n */\nexport class Util {\n\n\n\t/**\n\t * @static callAsync - Calls any function using promises to keep a standard\n\t * behavior between async and sync functions.\n\t *\n\t * @param {funcion} callable - The function to run\n\t * @param {Object} context - The object `this` will be mapped to\n\t * @param {any} ...args - List of parameters to pass to the function when called\n\t * @return {Promise} - A promise that resolves to the result of the function\n\t */\n\tstatic callAsync (callable, context, ...args) {\n\t\ttry {\n\t\t\t// Call the provided function using the context and arguments given\n\t\t\tconst result = callable.apply (context, args);\n\n\t\t\t// Check if the function returned a simple value or a Promise\n\t\t\tif (result instanceof Promise) {\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn Promise.resolve (result);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn Promise.reject (e);\n\t\t}\n\t}\n\n\t/**\n\t * @static uuid - Creates a UUID. This UUIDs should not be trusted for uniqueness\n\t *\n\t * @return {string} - Generated UUID\n\t */\n\tstatic uuid () {\n\t\tif (window.crypto) {\n\t\t\treturn ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, (c) =>\n\t\t\t\t(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString (16)\n\t\t\t);\n\t\t} else {\n\t\t\tconst generate = () => Math.floor ((1 + Math.random()) * 0x10000).toString (16).substring (1);\n\t\t\treturn generate () + generate () + '-' + generate () + '-' + generate () + '-' +\n\t\t\tgenerate () + '-' + generate () + generate () + generate ();\n\t\t}\n\t}\n}","export * from './src/Debug';\nexport * from './src/DOM';\nexport * from './src/FileSystem';\nexport * from './src/Form';\nexport * from './src/Platform';\nexport * from './src/Preload';\nexport * from './src/Request';\nexport * from './src/Space';\nexport * from './src/Text';\nexport * from './src/Util';","/*!\n * \n * typed.js - A JavaScript Typing Animation Library\n * Author: Matt Boldt \n * Version: v2.0.11\n * Url: https://github.com/mattboldt/typed.js\n * License(s): MIT\n * \n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Typed\"] = factory();\n\telse\n\t\troot[\"Typed\"] = factory();\n})(this, function() {\nreturn /******/ (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/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\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.loaded = 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// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar _initializerJs = __webpack_require__(1);\n\t\n\tvar _htmlParserJs = __webpack_require__(3);\n\t\n\t/**\n\t * Welcome to Typed.js!\n\t * @param {string} elementId HTML element ID _OR_ HTML element\n\t * @param {object} options options object\n\t * @returns {object} a new Typed object\n\t */\n\t\n\tvar Typed = (function () {\n\t function Typed(elementId, options) {\n\t _classCallCheck(this, Typed);\n\t\n\t // Initialize it up\n\t _initializerJs.initializer.load(this, options, elementId);\n\t // All systems go!\n\t this.begin();\n\t\n\t this.inlineSpeed = this.typeSpeed;\n\t }\n\t\n\t /**\n\t * Toggle start() and stop() of the Typed instance\n\t * @public\n\t */\n\t\n\t _createClass(Typed, [{\n\t key: 'toggle',\n\t value: function toggle() {\n\t this.pause.status ? this.start() : this.stop();\n\t }\n\t\n\t /**\n\t * Stop typing / backspacing and enable cursor blinking\n\t * @public\n\t */\n\t }, {\n\t key: 'stop',\n\t value: function stop() {\n\t if (this.typingComplete) return;\n\t if (this.pause.status) return;\n\t this.toggleBlinking(true);\n\t this.pause.status = true;\n\t this.options.onStop(this.arrayPos, this);\n\t }\n\t\n\t /**\n\t * Start typing / backspacing after being stopped\n\t * @public\n\t */\n\t }, {\n\t key: 'start',\n\t value: function start() {\n\t if (this.typingComplete) return;\n\t if (!this.pause.status) return;\n\t this.pause.status = false;\n\t if (this.pause.typewrite) {\n\t this.typewrite(this.pause.curString, this.pause.curStrPos);\n\t } else {\n\t this.backspace(this.pause.curString, this.pause.curStrPos);\n\t }\n\t this.options.onStart(this.arrayPos, this);\n\t }\n\t\n\t /**\n\t * Destroy this instance of Typed\n\t * @public\n\t */\n\t }, {\n\t key: 'destroy',\n\t value: function destroy() {\n\t this.reset(false);\n\t this.options.onDestroy(this);\n\t }\n\t\n\t /**\n\t * Reset Typed and optionally restarts\n\t * @param {boolean} restart\n\t * @public\n\t */\n\t }, {\n\t key: 'reset',\n\t value: function reset() {\n\t var restart = arguments.length <= 0 || arguments[0] === undefined ? true : arguments[0];\n\t\n\t clearInterval(this.timeout);\n\t this.replaceText('');\n\t if (this.cursor && this.cursor.parentNode) {\n\t this.cursor.parentNode.removeChild(this.cursor);\n\t this.cursor = null;\n\t }\n\t this.strPos = 0;\n\t this.arrayPos = 0;\n\t this.curLoop = 0;\n\t if (restart) {\n\t this.insertCursor();\n\t this.options.onReset(this);\n\t this.begin();\n\t }\n\t }\n\t\n\t /**\n\t * Begins the typing animation\n\t * @private\n\t */\n\t }, {\n\t key: 'begin',\n\t value: function begin() {\n\t var _this = this;\n\t\n\t this.options.onBegin(this);\n\t this.typingComplete = false;\n\t this.shuffleStringsIfNeeded(this);\n\t this.insertCursor();\n\t if (this.bindInputFocusEvents) this.bindFocusEvents();\n\t this.timeout = setTimeout(function () {\n\t // Check if there is some text in the element, if yes start by backspacing the default message\n\t if (!_this.currentElContent || _this.currentElContent.length === 0) {\n\t _this.typewrite(_this.strings[_this.sequence[_this.arrayPos]], _this.strPos);\n\t } else {\n\t // Start typing\n\t _this.backspace(_this.currentElContent, _this.currentElContent.length);\n\t }\n\t }, this.startDelay);\n\t }\n\t\n\t /**\n\t * Called for each character typed\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @private\n\t */\n\t }, {\n\t key: 'typewrite',\n\t value: function typewrite(curString, curStrPos) {\n\t var _this2 = this;\n\t\n\t if (this.fadeOut && this.el.classList.contains(this.fadeOutClass)) {\n\t this.el.classList.remove(this.fadeOutClass);\n\t if (this.cursor) this.cursor.classList.remove(this.fadeOutClass);\n\t }\n\t\n\t var humanize = this.humanizer(this.inlineSpeed);\n\t var numChars = 1;\n\t\n\t if (this.pause.status === true) {\n\t this.setPauseStatus(curString, curStrPos, true);\n\t return;\n\t }\n\t\n\t // contain typing function in a timeout humanize'd delay\n\t this.timeout = setTimeout(function () {\n\t // skip over any HTML chars\n\t curStrPos = _htmlParserJs.htmlParser.typeHtmlChars(curString, curStrPos, _this2);\n\t\n\t var pauseTime = 0;\n\t var substr = curString.substr(curStrPos);\n\t // check for an escape character before a pause value\n\t // format: \\{pause:\\d+\\} .. eg: {pause:1000}\n\t if (substr.charAt(0) === '{' && substr.charAt(1) === 'p' && substr.charAt(2) === 'a' && substr.charAt(3) === 'u' && substr.charAt(4) === 's' && substr.charAt(5) === 'e' && substr.charAt(6) === ':') {\n\t if (/^\\{pause:(\\d+)\\}/.test(substr)) {\n\t var skip = 1; // skip at least 1\n\t substr = /\\{pause:(\\d+)\\}/.exec(substr)[0];\n\t skip += substr.length;\n\t pauseTime = parseInt(substr.replace(/\\{pause:(\\d+)\\}/, '$1'));\n\t _this2.temporaryPause = true;\n\t _this2.options.onTypingPaused(_this2.arrayPos, _this2);\n\t // strip out the escape character and pause value so they're not printed\n\t curString = curString.substring(0, curStrPos) + curString.substring(curStrPos + skip);\n\t _this2.toggleBlinking(true);\n\t }\n\t }\n\t\n\t if (substr.charAt(0) === '{' && substr.charAt(1) === 's' && substr.charAt(2) === 'p' && substr.charAt(3) === 'e' && substr.charAt(4) === 'e' && substr.charAt(5) === 'd' && substr.charAt(6) === ':') {\n\t if (/^\\{speed:(\\d+)\\}/.test(substr)) {\n\t var skip = 1; // skip at least 1\n\t substr = /\\{speed:(\\d+)\\}/.exec(substr)[0];\n\t skip += substr.length;\n\t var percentage = parseInt(substr.replace(/\\{speed:(\\d+)\\}/, '$1'));\n\t var calculatedSpeed = Math.floor(_this2.typeSpeed * 100 / percentage);\n\t _this2.inlineSpeed = calculatedSpeed > 0 ? calculatedSpeed : 0;\n\t\n\t // strip out the escape character and pause value so they're not printed\n\t curString = curString.substring(0, curStrPos) + curString.substring(curStrPos + skip);\n\t }\n\t }\n\t\n\t // check for skip characters formatted as\n\t // \"this is a `string to print NOW` ...\"\n\t if (substr.charAt(0) === '`') {\n\t while (curString.substr(curStrPos + numChars).charAt(0) !== '`') {\n\t numChars++;\n\t if (curStrPos + numChars > curString.length) break;\n\t }\n\t // strip out the escape characters and append all the string in between\n\t var stringBeforeSkip = curString.substring(0, curStrPos);\n\t var stringSkipped = curString.substring(stringBeforeSkip.length + 1, curStrPos + numChars);\n\t var stringAfterSkip = curString.substring(curStrPos + numChars + 1);\n\t curString = stringBeforeSkip + stringSkipped + stringAfterSkip;\n\t numChars--;\n\t }\n\t\n\t // timeout for any pause after a character\n\t _this2.timeout = setTimeout(function () {\n\t // Accounts for blinking while paused\n\t _this2.toggleBlinking(false);\n\t\n\t // We're done with this sentence!\n\t if (curStrPos >= curString.length) {\n\t _this2.doneTyping(curString, curStrPos);\n\t } else {\n\t _this2.keepTyping(curString, curStrPos, numChars);\n\t }\n\t // end of character pause\n\t if (_this2.temporaryPause) {\n\t _this2.temporaryPause = false;\n\t _this2.options.onTypingResumed(_this2.arrayPos, _this2);\n\t }\n\t }, pauseTime);\n\t\n\t // humanized value for typing\n\t }, humanize);\n\t }\n\t\n\t /**\n\t * Continue to the next string & begin typing\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @private\n\t */\n\t }, {\n\t key: 'keepTyping',\n\t value: function keepTyping(curString, curStrPos, numChars) {\n\t // call before functions if applicable\n\t if (curStrPos === 0) {\n\t this.toggleBlinking(false);\n\t this.options.preStringTyped(this.arrayPos, this);\n\t }\n\t // start typing each new char into existing string\n\t // curString: arg, this.el.html: original text inside element\n\t curStrPos += numChars;\n\t var nextString = curString.substr(0, curStrPos);\n\t this.replaceText(nextString);\n\t // loop the function\n\t this.typewrite(curString, curStrPos);\n\t }\n\t\n\t /**\n\t * We're done typing the current string\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @private\n\t */\n\t }, {\n\t key: 'doneTyping',\n\t value: function doneTyping(curString, curStrPos) {\n\t var _this3 = this;\n\t\n\t // fires callback function\n\t this.options.onStringTyped(this.arrayPos, this);\n\t this.toggleBlinking(true);\n\t // is this the final string\n\t if (this.arrayPos === this.strings.length - 1) {\n\t // callback that occurs on the last typed string\n\t this.complete();\n\t // quit if we wont loop back\n\t if (this.loop === false || this.curLoop === this.loopCount) {\n\t return;\n\t }\n\t }\n\t this.timeout = setTimeout(function () {\n\t _this3.backspace(curString, curStrPos);\n\t }, this.backDelay);\n\t }\n\t\n\t /**\n\t * Backspaces 1 character at a time\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @private\n\t */\n\t }, {\n\t key: 'backspace',\n\t value: function backspace(curString, curStrPos) {\n\t var _this4 = this;\n\t\n\t if (this.pause.status === true) {\n\t this.setPauseStatus(curString, curStrPos, true);\n\t return;\n\t }\n\t if (this.fadeOut) return this.initFadeOut();\n\t\n\t this.toggleBlinking(false);\n\t var humanize = this.humanizer(this.backSpeed);\n\t\n\t this.timeout = setTimeout(function () {\n\t curStrPos = _htmlParserJs.htmlParser.backSpaceHtmlChars(curString, curStrPos, _this4);\n\t // replace text with base text + typed characters\n\t var curStringAtPosition = curString.substr(0, curStrPos);\n\t _this4.replaceText(curStringAtPosition);\n\t\n\t // if smartBack is enabled\n\t if (_this4.smartBackspace) {\n\t // the remaining part of the current string is equal of the same part of the new string\n\t var nextString = _this4.strings[_this4.arrayPos + 1];\n\t if (nextString && curStringAtPosition === nextString.substr(0, curStrPos)) {\n\t _this4.stopNum = curStrPos;\n\t } else {\n\t _this4.stopNum = 0;\n\t }\n\t }\n\t\n\t // if the number (id of character in current string) is\n\t // less than the stop number, keep going\n\t if (curStrPos > _this4.stopNum) {\n\t // subtract characters one by one\n\t curStrPos--;\n\t // loop the function\n\t _this4.backspace(curString, curStrPos);\n\t } else if (curStrPos <= _this4.stopNum) {\n\t // if the stop number has been reached, increase\n\t // array position to next string\n\t _this4.arrayPos++;\n\t // When looping, begin at the beginning after backspace complete\n\t if (_this4.arrayPos === _this4.strings.length) {\n\t _this4.arrayPos = 0;\n\t _this4.options.onLastStringBackspaced();\n\t _this4.shuffleStringsIfNeeded();\n\t _this4.begin();\n\t } else {\n\t _this4.typewrite(_this4.strings[_this4.sequence[_this4.arrayPos]], curStrPos);\n\t }\n\t }\n\t // humanized value for typing\n\t }, humanize);\n\t }\n\t\n\t /**\n\t * Full animation is complete\n\t * @private\n\t */\n\t }, {\n\t key: 'complete',\n\t value: function complete() {\n\t this.options.onComplete(this);\n\t if (this.loop) {\n\t this.curLoop++;\n\t } else {\n\t this.typingComplete = true;\n\t }\n\t }\n\t\n\t /**\n\t * Has the typing been stopped\n\t * @param {string} curString the current string in the strings array\n\t * @param {number} curStrPos the current position in the curString\n\t * @param {boolean} isTyping\n\t * @private\n\t */\n\t }, {\n\t key: 'setPauseStatus',\n\t value: function setPauseStatus(curString, curStrPos, isTyping) {\n\t this.pause.typewrite = isTyping;\n\t this.pause.curString = curString;\n\t this.pause.curStrPos = curStrPos;\n\t }\n\t\n\t /**\n\t * Toggle the blinking cursor\n\t * @param {boolean} isBlinking\n\t * @private\n\t */\n\t }, {\n\t key: 'toggleBlinking',\n\t value: function toggleBlinking(isBlinking) {\n\t if (!this.cursor) return;\n\t // if in paused state, don't toggle blinking a 2nd time\n\t if (this.pause.status) return;\n\t if (this.cursorBlinking === isBlinking) return;\n\t this.cursorBlinking = isBlinking;\n\t if (isBlinking) {\n\t this.cursor.classList.add('typed-cursor--blink');\n\t } else {\n\t this.cursor.classList.remove('typed-cursor--blink');\n\t }\n\t }\n\t\n\t /**\n\t * Speed in MS to type\n\t * @param {number} speed\n\t * @private\n\t */\n\t }, {\n\t key: 'humanizer',\n\t value: function humanizer(speed) {\n\t return Math.round(Math.random() * speed / 2) + speed;\n\t }\n\t\n\t /**\n\t * Shuffle the sequence of the strings array\n\t * @private\n\t */\n\t }, {\n\t key: 'shuffleStringsIfNeeded',\n\t value: function shuffleStringsIfNeeded() {\n\t if (!this.shuffle) return;\n\t this.sequence = this.sequence.sort(function () {\n\t return Math.random() - 0.5;\n\t });\n\t }\n\t\n\t /**\n\t * Adds a CSS class to fade out current string\n\t * @private\n\t */\n\t }, {\n\t key: 'initFadeOut',\n\t value: function initFadeOut() {\n\t var _this5 = this;\n\t\n\t this.el.className += ' ' + this.fadeOutClass;\n\t if (this.cursor) this.cursor.className += ' ' + this.fadeOutClass;\n\t return setTimeout(function () {\n\t _this5.arrayPos++;\n\t _this5.replaceText('');\n\t\n\t // Resets current string if end of loop reached\n\t if (_this5.strings.length > _this5.arrayPos) {\n\t _this5.typewrite(_this5.strings[_this5.sequence[_this5.arrayPos]], 0);\n\t } else {\n\t _this5.typewrite(_this5.strings[0], 0);\n\t _this5.arrayPos = 0;\n\t }\n\t }, this.fadeOutDelay);\n\t }\n\t\n\t /**\n\t * Replaces current text in the HTML element\n\t * depending on element type\n\t * @param {string} str\n\t * @private\n\t */\n\t }, {\n\t key: 'replaceText',\n\t value: function replaceText(str) {\n\t if (this.attr) {\n\t this.el.setAttribute(this.attr, str);\n\t } else {\n\t if (this.isInput) {\n\t this.el.value = str;\n\t } else if (this.contentType === 'html') {\n\t this.el.innerHTML = str;\n\t } else {\n\t this.el.textContent = str;\n\t }\n\t }\n\t }\n\t\n\t /**\n\t * If using input elements, bind focus in order to\n\t * start and stop the animation\n\t * @private\n\t */\n\t }, {\n\t key: 'bindFocusEvents',\n\t value: function bindFocusEvents() {\n\t var _this6 = this;\n\t\n\t if (!this.isInput) return;\n\t this.el.addEventListener('focus', function (e) {\n\t _this6.stop();\n\t });\n\t this.el.addEventListener('blur', function (e) {\n\t if (_this6.el.value && _this6.el.value.length !== 0) {\n\t return;\n\t }\n\t _this6.start();\n\t });\n\t }\n\t\n\t /**\n\t * On init, insert the cursor element\n\t * @private\n\t */\n\t }, {\n\t key: 'insertCursor',\n\t value: function insertCursor() {\n\t if (!this.showCursor) return;\n\t if (this.cursor) return;\n\t this.cursor = document.createElement('span');\n\t this.cursor.className = 'typed-cursor';\n\t this.cursor.innerHTML = this.cursorChar;\n\t this.el.parentNode && this.el.parentNode.insertBefore(this.cursor, this.el.nextSibling);\n\t }\n\t }]);\n\t\n\t return Typed;\n\t})();\n\t\n\texports['default'] = Typed;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 1 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar _defaultsJs = __webpack_require__(2);\n\t\n\tvar _defaultsJs2 = _interopRequireDefault(_defaultsJs);\n\t\n\t/**\n\t * Initialize the Typed object\n\t */\n\t\n\tvar Initializer = (function () {\n\t function Initializer() {\n\t _classCallCheck(this, Initializer);\n\t }\n\t\n\t _createClass(Initializer, [{\n\t key: 'load',\n\t\n\t /**\n\t * Load up defaults & options on the Typed instance\n\t * @param {Typed} self instance of Typed\n\t * @param {object} options options object\n\t * @param {string} elementId HTML element ID _OR_ instance of HTML element\n\t * @private\n\t */\n\t\n\t value: function load(self, options, elementId) {\n\t // chosen element to manipulate text\n\t if (typeof elementId === 'string') {\n\t self.el = document.querySelector(elementId);\n\t } else {\n\t self.el = elementId;\n\t }\n\t\n\t self.options = _extends({}, _defaultsJs2['default'], options);\n\t\n\t // attribute to type into\n\t self.isInput = self.el.tagName.toLowerCase() === 'input';\n\t self.attr = self.options.attr;\n\t self.bindInputFocusEvents = self.options.bindInputFocusEvents;\n\t\n\t // show cursor\n\t self.showCursor = self.isInput ? false : self.options.showCursor;\n\t\n\t // custom cursor\n\t self.cursorChar = self.options.cursorChar;\n\t\n\t // Is the cursor blinking\n\t self.cursorBlinking = true;\n\t\n\t // text content of element\n\t self.elContent = self.attr ? self.el.getAttribute(self.attr) : self.el.textContent;\n\t\n\t // html or plain text\n\t self.contentType = self.options.contentType;\n\t\n\t // typing speed\n\t self.typeSpeed = self.options.typeSpeed;\n\t\n\t // add a delay before typing starts\n\t self.startDelay = self.options.startDelay;\n\t\n\t // backspacing speed\n\t self.backSpeed = self.options.backSpeed;\n\t\n\t // only backspace what doesn't match the previous string\n\t self.smartBackspace = self.options.smartBackspace;\n\t\n\t // amount of time to wait before backspacing\n\t self.backDelay = self.options.backDelay;\n\t\n\t // Fade out instead of backspace\n\t self.fadeOut = self.options.fadeOut;\n\t self.fadeOutClass = self.options.fadeOutClass;\n\t self.fadeOutDelay = self.options.fadeOutDelay;\n\t\n\t // variable to check whether typing is currently paused\n\t self.isPaused = false;\n\t\n\t // input strings of text\n\t self.strings = self.options.strings.map(function (s) {\n\t return s.trim();\n\t });\n\t\n\t // div containing strings\n\t if (typeof self.options.stringsElement === 'string') {\n\t self.stringsElement = document.querySelector(self.options.stringsElement);\n\t } else {\n\t self.stringsElement = self.options.stringsElement;\n\t }\n\t\n\t if (self.stringsElement) {\n\t self.strings = [];\n\t self.stringsElement.style.display = 'none';\n\t var strings = Array.prototype.slice.apply(self.stringsElement.children);\n\t var stringsLength = strings.length;\n\t\n\t if (stringsLength) {\n\t for (var i = 0; i < stringsLength; i += 1) {\n\t var stringEl = strings[i];\n\t self.strings.push(stringEl.innerHTML.trim());\n\t }\n\t }\n\t }\n\t\n\t // character number position of current string\n\t self.strPos = 0;\n\t\n\t // current array position\n\t self.arrayPos = 0;\n\t\n\t // index of string to stop backspacing on\n\t self.stopNum = 0;\n\t\n\t // Looping logic\n\t self.loop = self.options.loop;\n\t self.loopCount = self.options.loopCount;\n\t self.curLoop = 0;\n\t\n\t // shuffle the strings\n\t self.shuffle = self.options.shuffle;\n\t // the order of strings\n\t self.sequence = [];\n\t\n\t self.pause = {\n\t status: false,\n\t typewrite: true,\n\t curString: '',\n\t curStrPos: 0\n\t };\n\t\n\t // When the typing is complete (when not looped)\n\t self.typingComplete = false;\n\t\n\t // Set the order in which the strings are typed\n\t for (var i in self.strings) {\n\t self.sequence[i] = i;\n\t }\n\t\n\t // If there is some text in the element\n\t self.currentElContent = this.getCurrentElContent(self);\n\t\n\t self.autoInsertCss = self.options.autoInsertCss;\n\t\n\t this.appendAnimationCss(self);\n\t }\n\t }, {\n\t key: 'getCurrentElContent',\n\t value: function getCurrentElContent(self) {\n\t var elContent = '';\n\t if (self.attr) {\n\t elContent = self.el.getAttribute(self.attr);\n\t } else if (self.isInput) {\n\t elContent = self.el.value;\n\t } else if (self.contentType === 'html') {\n\t elContent = self.el.innerHTML;\n\t } else {\n\t elContent = self.el.textContent;\n\t }\n\t return elContent;\n\t }\n\t }, {\n\t key: 'appendAnimationCss',\n\t value: function appendAnimationCss(self) {\n\t var cssDataName = 'data-typed-js-css';\n\t if (!self.autoInsertCss) {\n\t return;\n\t }\n\t if (!self.showCursor && !self.fadeOut) {\n\t return;\n\t }\n\t if (document.querySelector('[' + cssDataName + ']')) {\n\t return;\n\t }\n\t\n\t var css = document.createElement('style');\n\t css.type = 'text/css';\n\t css.setAttribute(cssDataName, true);\n\t\n\t var innerCss = '';\n\t if (self.showCursor) {\n\t innerCss += '\\n .typed-cursor{\\n opacity: 1;\\n }\\n .typed-cursor.typed-cursor--blink{\\n animation: typedjsBlink 0.7s infinite;\\n -webkit-animation: typedjsBlink 0.7s infinite;\\n animation: typedjsBlink 0.7s infinite;\\n }\\n @keyframes typedjsBlink{\\n 50% { opacity: 0.0; }\\n }\\n @-webkit-keyframes typedjsBlink{\\n 0% { opacity: 1; }\\n 50% { opacity: 0.0; }\\n 100% { opacity: 1; }\\n }\\n ';\n\t }\n\t if (self.fadeOut) {\n\t innerCss += '\\n .typed-fade-out{\\n opacity: 0;\\n transition: opacity .25s;\\n }\\n .typed-cursor.typed-cursor--blink.typed-fade-out{\\n -webkit-animation: 0;\\n animation: 0;\\n }\\n ';\n\t }\n\t if (css.length === 0) {\n\t return;\n\t }\n\t css.innerHTML = innerCss;\n\t document.body.appendChild(css);\n\t }\n\t }]);\n\t\n\t return Initializer;\n\t})();\n\t\n\texports['default'] = Initializer;\n\tvar initializer = new Initializer();\n\texports.initializer = initializer;\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Defaults & options\n\t * @returns {object} Typed defaults & options\n\t * @public\n\t */\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\tvar defaults = {\n\t /**\n\t * @property {array} strings strings to be typed\n\t * @property {string} stringsElement ID of element containing string children\n\t */\n\t strings: ['These are the default values...', 'You know what you should do?', 'Use your own!', 'Have a great day!'],\n\t stringsElement: null,\n\t\n\t /**\n\t * @property {number} typeSpeed type speed in milliseconds\n\t */\n\t typeSpeed: 0,\n\t\n\t /**\n\t * @property {number} startDelay time before typing starts in milliseconds\n\t */\n\t startDelay: 0,\n\t\n\t /**\n\t * @property {number} backSpeed backspacing speed in milliseconds\n\t */\n\t backSpeed: 0,\n\t\n\t /**\n\t * @property {boolean} smartBackspace only backspace what doesn't match the previous string\n\t */\n\t smartBackspace: true,\n\t\n\t /**\n\t * @property {boolean} shuffle shuffle the strings\n\t */\n\t shuffle: false,\n\t\n\t /**\n\t * @property {number} backDelay time before backspacing in milliseconds\n\t */\n\t backDelay: 700,\n\t\n\t /**\n\t * @property {boolean} fadeOut Fade out instead of backspace\n\t * @property {string} fadeOutClass css class for fade animation\n\t * @property {boolean} fadeOutDelay Fade out delay in milliseconds\n\t */\n\t fadeOut: false,\n\t fadeOutClass: 'typed-fade-out',\n\t fadeOutDelay: 500,\n\t\n\t /**\n\t * @property {boolean} loop loop strings\n\t * @property {number} loopCount amount of loops\n\t */\n\t loop: false,\n\t loopCount: Infinity,\n\t\n\t /**\n\t * @property {boolean} showCursor show cursor\n\t * @property {string} cursorChar character for cursor\n\t * @property {boolean} autoInsertCss insert CSS for cursor and fadeOut into HTML \n\t */\n\t showCursor: true,\n\t cursorChar: '|',\n\t autoInsertCss: true,\n\t\n\t /**\n\t * @property {string} attr attribute for typing\n\t * Ex: input placeholder, value, or just HTML text\n\t */\n\t attr: null,\n\t\n\t /**\n\t * @property {boolean} bindInputFocusEvents bind to focus and blur if el is text input\n\t */\n\t bindInputFocusEvents: false,\n\t\n\t /**\n\t * @property {string} contentType 'html' or 'null' for plaintext\n\t */\n\t contentType: 'html',\n\t\n\t /**\n\t * Before it begins typing\n\t * @param {Typed} self\n\t */\n\t onBegin: function onBegin(self) {},\n\t\n\t /**\n\t * All typing is complete\n\t * @param {Typed} self\n\t */\n\t onComplete: function onComplete(self) {},\n\t\n\t /**\n\t * Before each string is typed\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t preStringTyped: function preStringTyped(arrayPos, self) {},\n\t\n\t /**\n\t * After each string is typed\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onStringTyped: function onStringTyped(arrayPos, self) {},\n\t\n\t /**\n\t * During looping, after last string is typed\n\t * @param {Typed} self\n\t */\n\t onLastStringBackspaced: function onLastStringBackspaced(self) {},\n\t\n\t /**\n\t * Typing has been stopped\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onTypingPaused: function onTypingPaused(arrayPos, self) {},\n\t\n\t /**\n\t * Typing has been started after being stopped\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onTypingResumed: function onTypingResumed(arrayPos, self) {},\n\t\n\t /**\n\t * After reset\n\t * @param {Typed} self\n\t */\n\t onReset: function onReset(self) {},\n\t\n\t /**\n\t * After stop\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onStop: function onStop(arrayPos, self) {},\n\t\n\t /**\n\t * After start\n\t * @param {number} arrayPos\n\t * @param {Typed} self\n\t */\n\t onStart: function onStart(arrayPos, self) {},\n\t\n\t /**\n\t * After destroy\n\t * @param {Typed} self\n\t */\n\t onDestroy: function onDestroy(self) {}\n\t};\n\t\n\texports['default'] = defaults;\n\tmodule.exports = exports['default'];\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * TODO: These methods can probably be combined somehow\n\t * Parse HTML tags & HTML Characters\n\t */\n\t\n\t'use strict';\n\t\n\tObject.defineProperty(exports, '__esModule', {\n\t value: true\n\t});\n\t\n\tvar _createClass = (function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ('value' in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })();\n\t\n\tfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\t\n\tvar HTMLParser = (function () {\n\t function HTMLParser() {\n\t _classCallCheck(this, HTMLParser);\n\t }\n\t\n\t _createClass(HTMLParser, [{\n\t key: 'typeHtmlChars',\n\t\n\t /**\n\t * Type HTML tags & HTML Characters\n\t * @param {string} curString Current string\n\t * @param {number} curStrPos Position in current string\n\t * @param {Typed} self instance of Typed\n\t * @returns {number} a new string position\n\t * @private\n\t */\n\t\n\t value: function typeHtmlChars(curString, curStrPos, self) {\n\t if (self.contentType !== 'html') return curStrPos;\n\t var curChar = curString.substr(curStrPos).charAt(0);\n\t if (curChar === '<' || curChar === '&') {\n\t var endTag = '';\n\t if (curChar === '<') {\n\t endTag = '>';\n\t } else {\n\t endTag = ';';\n\t }\n\t while (curString.substr(curStrPos + 1).charAt(0) !== endTag) {\n\t curStrPos++;\n\t if (curStrPos + 1 > curString.length) {\n\t break;\n\t }\n\t }\n\t curStrPos++;\n\t }\n\t return curStrPos;\n\t }\n\t\n\t /**\n\t * Backspace HTML tags and HTML Characters\n\t * @param {string} curString Current string\n\t * @param {number} curStrPos Position in current string\n\t * @param {Typed} self instance of Typed\n\t * @returns {number} a new string position\n\t * @private\n\t */\n\t }, {\n\t key: 'backSpaceHtmlChars',\n\t value: function backSpaceHtmlChars(curString, curStrPos, self) {\n\t if (self.contentType !== 'html') return curStrPos;\n\t var curChar = curString.substr(curStrPos).charAt(0);\n\t if (curChar === '>' || curChar === ';') {\n\t var endTag = '';\n\t if (curChar === '>') {\n\t endTag = '<';\n\t } else {\n\t endTag = '&';\n\t }\n\t while (curString.substr(curStrPos - 1).charAt(0) !== endTag) {\n\t curStrPos--;\n\t if (curStrPos < 0) {\n\t break;\n\t }\n\t }\n\t curStrPos--;\n\t }\n\t return curStrPos;\n\t }\n\t }]);\n\t\n\t return HTMLParser;\n\t})();\n\t\n\texports['default'] = HTMLParser;\n\tvar htmlParser = new HTMLParser();\n\texports.htmlParser = htmlParser;\n\n/***/ })\n/******/ ])\n});\n;","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","var toString = {}.toString;\n\nmodule.exports = Array.isArray || function (arr) {\n return toString.call(arr) == '[object Array]';\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","/*! safe-buffer. MIT License. Feross Aboukhadijeh */\n/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.prototype = Object.create(Buffer.prototype)\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","if (typeof Object.create === 'function') {\n // implementation from standard node.js 'util' module\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n ctor.prototype = Object.create(superCtor.prototype, {\n constructor: {\n value: ctor,\n enumerable: false,\n writable: true,\n configurable: true\n }\n })\n }\n };\n} else {\n // old school shim for old browsers\n module.exports = function inherits(ctor, superCtor) {\n if (superCtor) {\n ctor.super_ = superCtor\n var TempCtor = function () {}\n TempCtor.prototype = superCtor.prototype\n ctor.prototype = new TempCtor()\n ctor.prototype.constructor = ctor\n }\n }\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function eventListener() {\n if (errorListener !== undefined) {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n var errorListener;\n\n // Adding an error listener is not optional because\n // if an error is thrown on an event emitter we cannot\n // guarantee that the actual event we are waiting will\n // be fired. The result could be a silent way to create\n // memory or file descriptor leaks, which is something\n // we should avoid.\n if (name !== 'error') {\n errorListener = function errorListener(err) {\n emitter.removeListener(name, eventListener);\n reject(err);\n };\n\n emitter.once('error', errorListener);\n }\n\n emitter.once(name, eventListener);\n });\n}\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","\n/**\n * Module exports.\n */\n\nmodule.exports = deprecate;\n\n/**\n * Mark that a method should not be used.\n * Returns a modified function which warns once by default.\n *\n * If `localStorage.noDeprecation = true` is set, then it is a no-op.\n *\n * If `localStorage.throwDeprecation = true` is set, then deprecated functions\n * will throw an Error when invoked.\n *\n * If `localStorage.traceDeprecation = true` is set, then deprecated functions\n * will invoke `console.trace()` instead of `console.error()`.\n *\n * @param {Function} fn - the function to deprecate\n * @param {String} msg - the string to print to the console when `fn` is invoked\n * @returns {Function} a new \"deprecated\" version of `fn`\n * @api public\n */\n\nfunction deprecate (fn, msg) {\n if (config('noDeprecation')) {\n return fn;\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (config('throwDeprecation')) {\n throw new Error(msg);\n } else if (config('traceDeprecation')) {\n console.trace(msg);\n } else {\n console.warn(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n}\n\n/**\n * Checks `localStorage` for boolean values for the given `name`.\n *\n * @param {String} name\n * @returns {Boolean}\n * @api private\n */\n\nfunction config (name) {\n // accessing global.localStorage can trigger a DOMException in sandboxed iframes\n try {\n if (!global.localStorage) return false;\n } catch (_) {\n return false;\n }\n var val = global.localStorage[name];\n if (null == val) return false;\n return String(val).toLowerCase() === 'true';\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\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// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\n}","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\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// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict'\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('readable-stream').Transform\nvar inherits = require('inherits')\n\nfunction throwIfNotStringOrBuffer (val, prefix) {\n if (!Buffer.isBuffer(val) && typeof val !== 'string') {\n throw new TypeError(prefix + ' must be a string or a buffer')\n }\n}\n\nfunction HashBase (blockSize) {\n Transform.call(this)\n\n this._block = Buffer.allocUnsafe(blockSize)\n this._blockSize = blockSize\n this._blockOffset = 0\n this._length = [0, 0, 0, 0]\n\n this._finalized = false\n}\n\ninherits(HashBase, Transform)\n\nHashBase.prototype._transform = function (chunk, encoding, callback) {\n var error = null\n try {\n this.update(chunk, encoding)\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype._flush = function (callback) {\n var error = null\n try {\n this.push(this.digest())\n } catch (err) {\n error = err\n }\n\n callback(error)\n}\n\nHashBase.prototype.update = function (data, encoding) {\n throwIfNotStringOrBuffer(data, 'Data')\n if (this._finalized) throw new Error('Digest already called')\n if (!Buffer.isBuffer(data)) data = Buffer.from(data, encoding)\n\n // consume data\n var block = this._block\n var offset = 0\n while (this._blockOffset + data.length - offset >= this._blockSize) {\n for (var i = this._blockOffset; i < this._blockSize;) block[i++] = data[offset++]\n this._update()\n this._blockOffset = 0\n }\n while (offset < data.length) block[this._blockOffset++] = data[offset++]\n\n // update length\n for (var j = 0, carry = data.length * 8; carry > 0; ++j) {\n this._length[j] += carry\n carry = (this._length[j] / 0x0100000000) | 0\n if (carry > 0) this._length[j] -= 0x0100000000 * carry\n }\n\n return this\n}\n\nHashBase.prototype._update = function () {\n throw new Error('_update is not implemented')\n}\n\nHashBase.prototype.digest = function (encoding) {\n if (this._finalized) throw new Error('Digest already called')\n this._finalized = true\n\n var digest = this._digest()\n if (encoding !== undefined) digest = digest.toString(encoding)\n\n // reset state\n this._block.fill(0)\n this._blockOffset = 0\n for (var i = 0; i < 4; ++i) this._length[i] = 0\n\n return digest\n}\n\nHashBase.prototype._digest = function () {\n throw new Error('_digest is not implemented')\n}\n\nmodule.exports = HashBase\n","'use strict'\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\nvar Buffer = require('safe-buffer').Buffer\n\nvar ARRAY16 = new Array(16)\n\nfunction MD5 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n}\n\ninherits(MD5, HashBase)\n\nMD5.prototype._update = function () {\n var M = ARRAY16\n for (var i = 0; i < 16; ++i) M[i] = this._block.readInt32LE(i * 4)\n\n var a = this._a\n var b = this._b\n var c = this._c\n var d = this._d\n\n a = fnF(a, b, c, d, M[0], 0xd76aa478, 7)\n d = fnF(d, a, b, c, M[1], 0xe8c7b756, 12)\n c = fnF(c, d, a, b, M[2], 0x242070db, 17)\n b = fnF(b, c, d, a, M[3], 0xc1bdceee, 22)\n a = fnF(a, b, c, d, M[4], 0xf57c0faf, 7)\n d = fnF(d, a, b, c, M[5], 0x4787c62a, 12)\n c = fnF(c, d, a, b, M[6], 0xa8304613, 17)\n b = fnF(b, c, d, a, M[7], 0xfd469501, 22)\n a = fnF(a, b, c, d, M[8], 0x698098d8, 7)\n d = fnF(d, a, b, c, M[9], 0x8b44f7af, 12)\n c = fnF(c, d, a, b, M[10], 0xffff5bb1, 17)\n b = fnF(b, c, d, a, M[11], 0x895cd7be, 22)\n a = fnF(a, b, c, d, M[12], 0x6b901122, 7)\n d = fnF(d, a, b, c, M[13], 0xfd987193, 12)\n c = fnF(c, d, a, b, M[14], 0xa679438e, 17)\n b = fnF(b, c, d, a, M[15], 0x49b40821, 22)\n\n a = fnG(a, b, c, d, M[1], 0xf61e2562, 5)\n d = fnG(d, a, b, c, M[6], 0xc040b340, 9)\n c = fnG(c, d, a, b, M[11], 0x265e5a51, 14)\n b = fnG(b, c, d, a, M[0], 0xe9b6c7aa, 20)\n a = fnG(a, b, c, d, M[5], 0xd62f105d, 5)\n d = fnG(d, a, b, c, M[10], 0x02441453, 9)\n c = fnG(c, d, a, b, M[15], 0xd8a1e681, 14)\n b = fnG(b, c, d, a, M[4], 0xe7d3fbc8, 20)\n a = fnG(a, b, c, d, M[9], 0x21e1cde6, 5)\n d = fnG(d, a, b, c, M[14], 0xc33707d6, 9)\n c = fnG(c, d, a, b, M[3], 0xf4d50d87, 14)\n b = fnG(b, c, d, a, M[8], 0x455a14ed, 20)\n a = fnG(a, b, c, d, M[13], 0xa9e3e905, 5)\n d = fnG(d, a, b, c, M[2], 0xfcefa3f8, 9)\n c = fnG(c, d, a, b, M[7], 0x676f02d9, 14)\n b = fnG(b, c, d, a, M[12], 0x8d2a4c8a, 20)\n\n a = fnH(a, b, c, d, M[5], 0xfffa3942, 4)\n d = fnH(d, a, b, c, M[8], 0x8771f681, 11)\n c = fnH(c, d, a, b, M[11], 0x6d9d6122, 16)\n b = fnH(b, c, d, a, M[14], 0xfde5380c, 23)\n a = fnH(a, b, c, d, M[1], 0xa4beea44, 4)\n d = fnH(d, a, b, c, M[4], 0x4bdecfa9, 11)\n c = fnH(c, d, a, b, M[7], 0xf6bb4b60, 16)\n b = fnH(b, c, d, a, M[10], 0xbebfbc70, 23)\n a = fnH(a, b, c, d, M[13], 0x289b7ec6, 4)\n d = fnH(d, a, b, c, M[0], 0xeaa127fa, 11)\n c = fnH(c, d, a, b, M[3], 0xd4ef3085, 16)\n b = fnH(b, c, d, a, M[6], 0x04881d05, 23)\n a = fnH(a, b, c, d, M[9], 0xd9d4d039, 4)\n d = fnH(d, a, b, c, M[12], 0xe6db99e5, 11)\n c = fnH(c, d, a, b, M[15], 0x1fa27cf8, 16)\n b = fnH(b, c, d, a, M[2], 0xc4ac5665, 23)\n\n a = fnI(a, b, c, d, M[0], 0xf4292244, 6)\n d = fnI(d, a, b, c, M[7], 0x432aff97, 10)\n c = fnI(c, d, a, b, M[14], 0xab9423a7, 15)\n b = fnI(b, c, d, a, M[5], 0xfc93a039, 21)\n a = fnI(a, b, c, d, M[12], 0x655b59c3, 6)\n d = fnI(d, a, b, c, M[3], 0x8f0ccc92, 10)\n c = fnI(c, d, a, b, M[10], 0xffeff47d, 15)\n b = fnI(b, c, d, a, M[1], 0x85845dd1, 21)\n a = fnI(a, b, c, d, M[8], 0x6fa87e4f, 6)\n d = fnI(d, a, b, c, M[15], 0xfe2ce6e0, 10)\n c = fnI(c, d, a, b, M[6], 0xa3014314, 15)\n b = fnI(b, c, d, a, M[13], 0x4e0811a1, 21)\n a = fnI(a, b, c, d, M[4], 0xf7537e82, 6)\n d = fnI(d, a, b, c, M[11], 0xbd3af235, 10)\n c = fnI(c, d, a, b, M[2], 0x2ad7d2bb, 15)\n b = fnI(b, c, d, a, M[9], 0xeb86d391, 21)\n\n this._a = (this._a + a) | 0\n this._b = (this._b + b) | 0\n this._c = (this._c + c) | 0\n this._d = (this._d + d) | 0\n}\n\nMD5.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.allocUnsafe(16)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fnF (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnG (a, b, c, d, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnH (a, b, c, d, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + b) | 0\n}\n\nfunction fnI (a, b, c, d, m, k, s) {\n return (rotl((a + ((c ^ (b | (~d)))) + m + k) | 0, s) + b) | 0\n}\n\nmodule.exports = MD5\n","'use strict'\nvar Buffer = require('buffer').Buffer\nvar inherits = require('inherits')\nvar HashBase = require('hash-base')\n\nvar ARRAY16 = new Array(16)\n\nvar zl = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n]\n\nvar zr = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n]\n\nvar sl = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n]\n\nvar sr = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n]\n\nvar hl = [0x00000000, 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xa953fd4e]\nvar hr = [0x50a28be6, 0x5c4dd124, 0x6d703ef3, 0x7a6d76e9, 0x00000000]\n\nfunction RIPEMD160 () {\n HashBase.call(this, 64)\n\n // state\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n}\n\ninherits(RIPEMD160, HashBase)\n\nRIPEMD160.prototype._update = function () {\n var words = ARRAY16\n for (var j = 0; j < 16; ++j) words[j] = this._block.readInt32LE(j * 4)\n\n var al = this._a | 0\n var bl = this._b | 0\n var cl = this._c | 0\n var dl = this._d | 0\n var el = this._e | 0\n\n var ar = this._a | 0\n var br = this._b | 0\n var cr = this._c | 0\n var dr = this._d | 0\n var er = this._e | 0\n\n // computation\n for (var i = 0; i < 80; i += 1) {\n var tl\n var tr\n if (i < 16) {\n tl = fn1(al, bl, cl, dl, el, words[zl[i]], hl[0], sl[i])\n tr = fn5(ar, br, cr, dr, er, words[zr[i]], hr[0], sr[i])\n } else if (i < 32) {\n tl = fn2(al, bl, cl, dl, el, words[zl[i]], hl[1], sl[i])\n tr = fn4(ar, br, cr, dr, er, words[zr[i]], hr[1], sr[i])\n } else if (i < 48) {\n tl = fn3(al, bl, cl, dl, el, words[zl[i]], hl[2], sl[i])\n tr = fn3(ar, br, cr, dr, er, words[zr[i]], hr[2], sr[i])\n } else if (i < 64) {\n tl = fn4(al, bl, cl, dl, el, words[zl[i]], hl[3], sl[i])\n tr = fn2(ar, br, cr, dr, er, words[zr[i]], hr[3], sr[i])\n } else { // if (i<80) {\n tl = fn5(al, bl, cl, dl, el, words[zl[i]], hl[4], sl[i])\n tr = fn1(ar, br, cr, dr, er, words[zr[i]], hr[4], sr[i])\n }\n\n al = el\n el = dl\n dl = rotl(cl, 10)\n cl = bl\n bl = tl\n\n ar = er\n er = dr\n dr = rotl(cr, 10)\n cr = br\n br = tr\n }\n\n // update state\n var t = (this._b + cl + dr) | 0\n this._b = (this._c + dl + er) | 0\n this._c = (this._d + el + ar) | 0\n this._d = (this._e + al + br) | 0\n this._e = (this._a + bl + cr) | 0\n this._a = t\n}\n\nRIPEMD160.prototype._digest = function () {\n // create padding and handle blocks\n this._block[this._blockOffset++] = 0x80\n if (this._blockOffset > 56) {\n this._block.fill(0, this._blockOffset, 64)\n this._update()\n this._blockOffset = 0\n }\n\n this._block.fill(0, this._blockOffset, 56)\n this._block.writeUInt32LE(this._length[0], 56)\n this._block.writeUInt32LE(this._length[1], 60)\n this._update()\n\n // produce result\n var buffer = Buffer.alloc ? Buffer.alloc(20) : new Buffer(20)\n buffer.writeInt32LE(this._a, 0)\n buffer.writeInt32LE(this._b, 4)\n buffer.writeInt32LE(this._c, 8)\n buffer.writeInt32LE(this._d, 12)\n buffer.writeInt32LE(this._e, 16)\n return buffer\n}\n\nfunction rotl (x, n) {\n return (x << n) | (x >>> (32 - n))\n}\n\nfunction fn1 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ c ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn2 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & c) | ((~b) & d)) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn3 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b | (~c)) ^ d) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn4 (a, b, c, d, e, m, k, s) {\n return (rotl((a + ((b & d) | (c & (~d))) + m + k) | 0, s) + e) | 0\n}\n\nfunction fn5 (a, b, c, d, e, m, k, s) {\n return (rotl((a + (b ^ (c | (~d))) + m + k) | 0, s) + e) | 0\n}\n\nmodule.exports = RIPEMD160\n","var Buffer = require('safe-buffer').Buffer\n\n// prototype class for hash functions\nfunction Hash (blockSize, finalSize) {\n this._block = Buffer.alloc(blockSize)\n this._finalSize = finalSize\n this._blockSize = blockSize\n this._len = 0\n}\n\nHash.prototype.update = function (data, enc) {\n if (typeof data === 'string') {\n enc = enc || 'utf8'\n data = Buffer.from(data, enc)\n }\n\n var block = this._block\n var blockSize = this._blockSize\n var length = data.length\n var accum = this._len\n\n for (var offset = 0; offset < length;) {\n var assigned = accum % blockSize\n var remainder = Math.min(length - offset, blockSize - assigned)\n\n for (var i = 0; i < remainder; i++) {\n block[assigned + i] = data[offset + i]\n }\n\n accum += remainder\n offset += remainder\n\n if ((accum % blockSize) === 0) {\n this._update(block)\n }\n }\n\n this._len += length\n return this\n}\n\nHash.prototype.digest = function (enc) {\n var rem = this._len % this._blockSize\n\n this._block[rem] = 0x80\n\n // zero (rem + 1) trailing bits, where (rem + 1) is the smallest\n // non-negative solution to the equation (length + 1 + (rem + 1)) === finalSize mod blockSize\n this._block.fill(0, rem + 1)\n\n if (rem >= this._finalSize) {\n this._update(this._block)\n this._block.fill(0)\n }\n\n var bits = this._len * 8\n\n // uint32\n if (bits <= 0xffffffff) {\n this._block.writeUInt32BE(bits, this._blockSize - 4)\n\n // uint64\n } else {\n var lowBits = (bits & 0xffffffff) >>> 0\n var highBits = (bits - lowBits) / 0x100000000\n\n this._block.writeUInt32BE(highBits, this._blockSize - 8)\n this._block.writeUInt32BE(lowBits, this._blockSize - 4)\n }\n\n this._update(this._block)\n var hash = this._hash()\n\n return enc ? hash.toString(enc) : hash\n}\n\nHash.prototype._update = function () {\n throw new Error('_update must be implemented by subclass')\n}\n\nmodule.exports = Hash\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-0, as defined\n * in FIPS PUB 180-1\n * This source code is derived from sha1.js of the same repository.\n * The difference between SHA-0 and SHA-1 is just a bitwise rotate left\n * operation was added.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha, Hash)\n\nSha.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16]\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha\n","/*\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-1, as defined\n * in FIPS PUB 180-1\n * Version 2.1a Copyright Paul Johnston 2000 - 2002.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for details.\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc | 0, 0xca62c1d6 | 0\n]\n\nvar W = new Array(80)\n\nfunction Sha1 () {\n this.init()\n this._w = W\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha1, Hash)\n\nSha1.prototype.init = function () {\n this._a = 0x67452301\n this._b = 0xefcdab89\n this._c = 0x98badcfe\n this._d = 0x10325476\n this._e = 0xc3d2e1f0\n\n return this\n}\n\nfunction rotl1 (num) {\n return (num << 1) | (num >>> 31)\n}\n\nfunction rotl5 (num) {\n return (num << 5) | (num >>> 27)\n}\n\nfunction rotl30 (num) {\n return (num << 30) | (num >>> 2)\n}\n\nfunction ft (s, b, c, d) {\n if (s === 0) return (b & c) | ((~b) & d)\n if (s === 2) return (b & c) | (b & d) | (c & d)\n return b ^ c ^ d\n}\n\nSha1.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 80; ++i) W[i] = rotl1(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16])\n\n for (var j = 0; j < 80; ++j) {\n var s = ~~(j / 20)\n var t = (rotl5(a) + ft(s, b, c, d) + e + W[j] + K[s]) | 0\n\n e = d\n d = c\n c = rotl30(b)\n b = a\n a = t\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n}\n\nSha1.prototype._hash = function () {\n var H = Buffer.allocUnsafe(20)\n\n H.writeInt32BE(this._a | 0, 0)\n H.writeInt32BE(this._b | 0, 4)\n H.writeInt32BE(this._c | 0, 8)\n H.writeInt32BE(this._d | 0, 12)\n H.writeInt32BE(this._e | 0, 16)\n\n return H\n}\n\nmodule.exports = Sha1\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428A2F98, 0x71374491, 0xB5C0FBCF, 0xE9B5DBA5,\n 0x3956C25B, 0x59F111F1, 0x923F82A4, 0xAB1C5ED5,\n 0xD807AA98, 0x12835B01, 0x243185BE, 0x550C7DC3,\n 0x72BE5D74, 0x80DEB1FE, 0x9BDC06A7, 0xC19BF174,\n 0xE49B69C1, 0xEFBE4786, 0x0FC19DC6, 0x240CA1CC,\n 0x2DE92C6F, 0x4A7484AA, 0x5CB0A9DC, 0x76F988DA,\n 0x983E5152, 0xA831C66D, 0xB00327C8, 0xBF597FC7,\n 0xC6E00BF3, 0xD5A79147, 0x06CA6351, 0x14292967,\n 0x27B70A85, 0x2E1B2138, 0x4D2C6DFC, 0x53380D13,\n 0x650A7354, 0x766A0ABB, 0x81C2C92E, 0x92722C85,\n 0xA2BFE8A1, 0xA81A664B, 0xC24B8B70, 0xC76C51A3,\n 0xD192E819, 0xD6990624, 0xF40E3585, 0x106AA070,\n 0x19A4C116, 0x1E376C08, 0x2748774C, 0x34B0BCB5,\n 0x391C0CB3, 0x4ED8AA4A, 0x5B9CCA4F, 0x682E6FF3,\n 0x748F82EE, 0x78A5636F, 0x84C87814, 0x8CC70208,\n 0x90BEFFFA, 0xA4506CEB, 0xBEF9A3F7, 0xC67178F2\n]\n\nvar W = new Array(64)\n\nfunction Sha256 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha256, Hash)\n\nSha256.prototype.init = function () {\n this._a = 0x6a09e667\n this._b = 0xbb67ae85\n this._c = 0x3c6ef372\n this._d = 0xa54ff53a\n this._e = 0x510e527f\n this._f = 0x9b05688c\n this._g = 0x1f83d9ab\n this._h = 0x5be0cd19\n\n return this\n}\n\nfunction ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x) {\n return (x >>> 2 | x << 30) ^ (x >>> 13 | x << 19) ^ (x >>> 22 | x << 10)\n}\n\nfunction sigma1 (x) {\n return (x >>> 6 | x << 26) ^ (x >>> 11 | x << 21) ^ (x >>> 25 | x << 7)\n}\n\nfunction gamma0 (x) {\n return (x >>> 7 | x << 25) ^ (x >>> 18 | x << 14) ^ (x >>> 3)\n}\n\nfunction gamma1 (x) {\n return (x >>> 17 | x << 15) ^ (x >>> 19 | x << 13) ^ (x >>> 10)\n}\n\nSha256.prototype._update = function (M) {\n var W = this._w\n\n var a = this._a | 0\n var b = this._b | 0\n var c = this._c | 0\n var d = this._d | 0\n var e = this._e | 0\n var f = this._f | 0\n var g = this._g | 0\n var h = this._h | 0\n\n for (var i = 0; i < 16; ++i) W[i] = M.readInt32BE(i * 4)\n for (; i < 64; ++i) W[i] = (gamma1(W[i - 2]) + W[i - 7] + gamma0(W[i - 15]) + W[i - 16]) | 0\n\n for (var j = 0; j < 64; ++j) {\n var T1 = (h + sigma1(e) + ch(e, f, g) + K[j] + W[j]) | 0\n var T2 = (sigma0(a) + maj(a, b, c)) | 0\n\n h = g\n g = f\n f = e\n e = (d + T1) | 0\n d = c\n c = b\n b = a\n a = (T1 + T2) | 0\n }\n\n this._a = (a + this._a) | 0\n this._b = (b + this._b) | 0\n this._c = (c + this._c) | 0\n this._d = (d + this._d) | 0\n this._e = (e + this._e) | 0\n this._f = (f + this._f) | 0\n this._g = (g + this._g) | 0\n this._h = (h + this._h) | 0\n}\n\nSha256.prototype._hash = function () {\n var H = Buffer.allocUnsafe(32)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n H.writeInt32BE(this._h, 28)\n\n return H\n}\n\nmodule.exports = Sha256\n","/**\n * A JavaScript implementation of the Secure Hash Algorithm, SHA-256, as defined\n * in FIPS 180-2\n * Version 2.2-beta Copyright Angel Marin, Paul Johnston 2000 - 2009.\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n *\n */\n\nvar inherits = require('inherits')\nvar Sha256 = require('./sha256')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(64)\n\nfunction Sha224 () {\n this.init()\n\n this._w = W // new Array(64)\n\n Hash.call(this, 64, 56)\n}\n\ninherits(Sha224, Sha256)\n\nSha224.prototype.init = function () {\n this._a = 0xc1059ed8\n this._b = 0x367cd507\n this._c = 0x3070dd17\n this._d = 0xf70e5939\n this._e = 0xffc00b31\n this._f = 0x68581511\n this._g = 0x64f98fa7\n this._h = 0xbefa4fa4\n\n return this\n}\n\nSha224.prototype._hash = function () {\n var H = Buffer.allocUnsafe(28)\n\n H.writeInt32BE(this._a, 0)\n H.writeInt32BE(this._b, 4)\n H.writeInt32BE(this._c, 8)\n H.writeInt32BE(this._d, 12)\n H.writeInt32BE(this._e, 16)\n H.writeInt32BE(this._f, 20)\n H.writeInt32BE(this._g, 24)\n\n return H\n}\n\nmodule.exports = Sha224\n","var inherits = require('inherits')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n]\n\nvar W = new Array(160)\n\nfunction Sha512 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha512, Hash)\n\nSha512.prototype.init = function () {\n this._ah = 0x6a09e667\n this._bh = 0xbb67ae85\n this._ch = 0x3c6ef372\n this._dh = 0xa54ff53a\n this._eh = 0x510e527f\n this._fh = 0x9b05688c\n this._gh = 0x1f83d9ab\n this._hh = 0x5be0cd19\n\n this._al = 0xf3bcc908\n this._bl = 0x84caa73b\n this._cl = 0xfe94f82b\n this._dl = 0x5f1d36f1\n this._el = 0xade682d1\n this._fl = 0x2b3e6c1f\n this._gl = 0xfb41bd6b\n this._hl = 0x137e2179\n\n return this\n}\n\nfunction Ch (x, y, z) {\n return z ^ (x & (y ^ z))\n}\n\nfunction maj (x, y, z) {\n return (x & y) | (z & (x | y))\n}\n\nfunction sigma0 (x, xl) {\n return (x >>> 28 | xl << 4) ^ (xl >>> 2 | x << 30) ^ (xl >>> 7 | x << 25)\n}\n\nfunction sigma1 (x, xl) {\n return (x >>> 14 | xl << 18) ^ (x >>> 18 | xl << 14) ^ (xl >>> 9 | x << 23)\n}\n\nfunction Gamma0 (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7)\n}\n\nfunction Gamma0l (x, xl) {\n return (x >>> 1 | xl << 31) ^ (x >>> 8 | xl << 24) ^ (x >>> 7 | xl << 25)\n}\n\nfunction Gamma1 (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6)\n}\n\nfunction Gamma1l (x, xl) {\n return (x >>> 19 | xl << 13) ^ (xl >>> 29 | x << 3) ^ (x >>> 6 | xl << 26)\n}\n\nfunction getCarry (a, b) {\n return (a >>> 0) < (b >>> 0) ? 1 : 0\n}\n\nSha512.prototype._update = function (M) {\n var W = this._w\n\n var ah = this._ah | 0\n var bh = this._bh | 0\n var ch = this._ch | 0\n var dh = this._dh | 0\n var eh = this._eh | 0\n var fh = this._fh | 0\n var gh = this._gh | 0\n var hh = this._hh | 0\n\n var al = this._al | 0\n var bl = this._bl | 0\n var cl = this._cl | 0\n var dl = this._dl | 0\n var el = this._el | 0\n var fl = this._fl | 0\n var gl = this._gl | 0\n var hl = this._hl | 0\n\n for (var i = 0; i < 32; i += 2) {\n W[i] = M.readInt32BE(i * 4)\n W[i + 1] = M.readInt32BE(i * 4 + 4)\n }\n for (; i < 160; i += 2) {\n var xh = W[i - 15 * 2]\n var xl = W[i - 15 * 2 + 1]\n var gamma0 = Gamma0(xh, xl)\n var gamma0l = Gamma0l(xl, xh)\n\n xh = W[i - 2 * 2]\n xl = W[i - 2 * 2 + 1]\n var gamma1 = Gamma1(xh, xl)\n var gamma1l = Gamma1l(xl, xh)\n\n // W[i] = gamma0 + W[i - 7] + gamma1 + W[i - 16]\n var Wi7h = W[i - 7 * 2]\n var Wi7l = W[i - 7 * 2 + 1]\n\n var Wi16h = W[i - 16 * 2]\n var Wi16l = W[i - 16 * 2 + 1]\n\n var Wil = (gamma0l + Wi7l) | 0\n var Wih = (gamma0 + Wi7h + getCarry(Wil, gamma0l)) | 0\n Wil = (Wil + gamma1l) | 0\n Wih = (Wih + gamma1 + getCarry(Wil, gamma1l)) | 0\n Wil = (Wil + Wi16l) | 0\n Wih = (Wih + Wi16h + getCarry(Wil, Wi16l)) | 0\n\n W[i] = Wih\n W[i + 1] = Wil\n }\n\n for (var j = 0; j < 160; j += 2) {\n Wih = W[j]\n Wil = W[j + 1]\n\n var majh = maj(ah, bh, ch)\n var majl = maj(al, bl, cl)\n\n var sigma0h = sigma0(ah, al)\n var sigma0l = sigma0(al, ah)\n var sigma1h = sigma1(eh, el)\n var sigma1l = sigma1(el, eh)\n\n // t1 = h + sigma1 + ch + K[j] + W[j]\n var Kih = K[j]\n var Kil = K[j + 1]\n\n var chh = Ch(eh, fh, gh)\n var chl = Ch(el, fl, gl)\n\n var t1l = (hl + sigma1l) | 0\n var t1h = (hh + sigma1h + getCarry(t1l, hl)) | 0\n t1l = (t1l + chl) | 0\n t1h = (t1h + chh + getCarry(t1l, chl)) | 0\n t1l = (t1l + Kil) | 0\n t1h = (t1h + Kih + getCarry(t1l, Kil)) | 0\n t1l = (t1l + Wil) | 0\n t1h = (t1h + Wih + getCarry(t1l, Wil)) | 0\n\n // t2 = sigma0 + maj\n var t2l = (sigma0l + majl) | 0\n var t2h = (sigma0h + majh + getCarry(t2l, sigma0l)) | 0\n\n hh = gh\n hl = gl\n gh = fh\n gl = fl\n fh = eh\n fl = el\n el = (dl + t1l) | 0\n eh = (dh + t1h + getCarry(el, dl)) | 0\n dh = ch\n dl = cl\n ch = bh\n cl = bl\n bh = ah\n bl = al\n al = (t1l + t2l) | 0\n ah = (t1h + t2h + getCarry(al, t1l)) | 0\n }\n\n this._al = (this._al + al) | 0\n this._bl = (this._bl + bl) | 0\n this._cl = (this._cl + cl) | 0\n this._dl = (this._dl + dl) | 0\n this._el = (this._el + el) | 0\n this._fl = (this._fl + fl) | 0\n this._gl = (this._gl + gl) | 0\n this._hl = (this._hl + hl) | 0\n\n this._ah = (this._ah + ah + getCarry(this._al, al)) | 0\n this._bh = (this._bh + bh + getCarry(this._bl, bl)) | 0\n this._ch = (this._ch + ch + getCarry(this._cl, cl)) | 0\n this._dh = (this._dh + dh + getCarry(this._dl, dl)) | 0\n this._eh = (this._eh + eh + getCarry(this._el, el)) | 0\n this._fh = (this._fh + fh + getCarry(this._fl, fl)) | 0\n this._gh = (this._gh + gh + getCarry(this._gl, gl)) | 0\n this._hh = (this._hh + hh + getCarry(this._hl, hl)) | 0\n}\n\nSha512.prototype._hash = function () {\n var H = Buffer.allocUnsafe(64)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n writeInt64BE(this._gh, this._gl, 48)\n writeInt64BE(this._hh, this._hl, 56)\n\n return H\n}\n\nmodule.exports = Sha512\n","var inherits = require('inherits')\nvar SHA512 = require('./sha512')\nvar Hash = require('./hash')\nvar Buffer = require('safe-buffer').Buffer\n\nvar W = new Array(160)\n\nfunction Sha384 () {\n this.init()\n this._w = W\n\n Hash.call(this, 128, 112)\n}\n\ninherits(Sha384, SHA512)\n\nSha384.prototype.init = function () {\n this._ah = 0xcbbb9d5d\n this._bh = 0x629a292a\n this._ch = 0x9159015a\n this._dh = 0x152fecd8\n this._eh = 0x67332667\n this._fh = 0x8eb44a87\n this._gh = 0xdb0c2e0d\n this._hh = 0x47b5481d\n\n this._al = 0xc1059ed8\n this._bl = 0x367cd507\n this._cl = 0x3070dd17\n this._dl = 0xf70e5939\n this._el = 0xffc00b31\n this._fl = 0x68581511\n this._gl = 0x64f98fa7\n this._hl = 0xbefa4fa4\n\n return this\n}\n\nSha384.prototype._hash = function () {\n var H = Buffer.allocUnsafe(48)\n\n function writeInt64BE (h, l, offset) {\n H.writeInt32BE(h, offset)\n H.writeInt32BE(l, offset + 4)\n }\n\n writeInt64BE(this._ah, this._al, 0)\n writeInt64BE(this._bh, this._bl, 8)\n writeInt64BE(this._ch, this._cl, 16)\n writeInt64BE(this._dh, this._dl, 24)\n writeInt64BE(this._eh, this._el, 32)\n writeInt64BE(this._fh, this._fl, 40)\n\n return H\n}\n\nmodule.exports = Sha384\n","var exports = module.exports = function SHA (algorithm) {\n algorithm = algorithm.toLowerCase()\n\n var Algorithm = exports[algorithm]\n if (!Algorithm) throw new Error(algorithm + ' is not supported (we accept pull requests)')\n\n return new Algorithm()\n}\n\nexports.sha = require('./sha')\nexports.sha1 = require('./sha1')\nexports.sha224 = require('./sha224')\nexports.sha256 = require('./sha256')\nexports.sha384 = require('./sha384')\nexports.sha512 = require('./sha512')\n","'use strict';\n\nif (typeof process === 'undefined' ||\n !process.version ||\n process.version.indexOf('v0.') === 0 ||\n process.version.indexOf('v1.') === 0 && process.version.indexOf('v1.8.') !== 0) {\n module.exports = { nextTick: nextTick };\n} else {\n module.exports = process\n}\n\nfunction nextTick(fn, arg1, arg2, arg3) {\n if (typeof fn !== 'function') {\n throw new TypeError('\"callback\" argument must be a function');\n }\n var len = arguments.length;\n var args, i;\n switch (len) {\n case 0:\n case 1:\n return process.nextTick(fn);\n case 2:\n return process.nextTick(function afterTickOne() {\n fn.call(null, arg1);\n });\n case 3:\n return process.nextTick(function afterTickTwo() {\n fn.call(null, arg1, arg2);\n });\n case 4:\n return process.nextTick(function afterTickThree() {\n fn.call(null, arg1, arg2, arg3);\n });\n default:\n args = new Array(len - 1);\n i = 0;\n while (i < args.length) {\n args[i++] = arguments[i];\n }\n return process.nextTick(function afterTick() {\n fn.apply(null, args);\n });\n }\n}\n\n","module.exports = require('events').EventEmitter;\n","/* eslint-disable node/no-deprecated-api */\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\n// alternative to using Object.keys for old browsers\nfunction copyProps (src, dst) {\n for (var key in src) {\n dst[key] = src[key]\n }\n}\nif (Buffer.from && Buffer.alloc && Buffer.allocUnsafe && Buffer.allocUnsafeSlow) {\n module.exports = buffer\n} else {\n // Copy properties from require('buffer')\n copyProps(buffer, exports)\n exports.Buffer = SafeBuffer\n}\n\nfunction SafeBuffer (arg, encodingOrOffset, length) {\n return Buffer(arg, encodingOrOffset, length)\n}\n\n// Copy static methods from Buffer\ncopyProps(Buffer, SafeBuffer)\n\nSafeBuffer.from = function (arg, encodingOrOffset, length) {\n if (typeof arg === 'number') {\n throw new TypeError('Argument must not be a number')\n }\n return Buffer(arg, encodingOrOffset, length)\n}\n\nSafeBuffer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n var buf = Buffer(size)\n if (fill !== undefined) {\n if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n } else {\n buf.fill(0)\n }\n return buf\n}\n\nSafeBuffer.allocUnsafe = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return Buffer(size)\n}\n\nSafeBuffer.allocUnsafeSlow = function (size) {\n if (typeof size !== 'number') {\n throw new TypeError('Argument must be a number')\n }\n return buffer.SlowBuffer(size)\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\n\nfunction isArray(arg) {\n if (Array.isArray) {\n return Array.isArray(arg);\n }\n return objectToString(arg) === '[object Array]';\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = Buffer.isBuffer;\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n","'use strict';\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nvar Buffer = require('safe-buffer').Buffer;\nvar util = require('util');\n\nfunction copyBuffer(src, target, offset) {\n src.copy(target, offset);\n}\n\nmodule.exports = function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n BufferList.prototype.push = function push(v) {\n var entry = { data: v, next: null };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n };\n\n BufferList.prototype.unshift = function unshift(v) {\n var entry = { data: v, next: this.head };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n };\n\n BufferList.prototype.shift = function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n };\n\n BufferList.prototype.clear = function clear() {\n this.head = this.tail = null;\n this.length = 0;\n };\n\n BufferList.prototype.join = function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) {\n ret += s + p.data;\n }return ret;\n };\n\n BufferList.prototype.concat = function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n if (this.length === 1) return this.head.data;\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n };\n\n return BufferList;\n}();\n\nif (util && util.inspect && util.inspect.custom) {\n module.exports.prototype[util.inspect.custom] = function () {\n var obj = util.inspect({ length: this.length });\n return this.constructor.name + ' ' + obj;\n };\n}","'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err && (!this._writableState || !this._writableState.errorEmitted)) {\n pna.nextTick(emitErrorNT, this, err);\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n pna.nextTick(emitErrorNT, _this, err);\n if (_this._writableState) {\n _this._writableState.errorEmitted = true;\n }\n } else if (cb) {\n cb(err);\n }\n });\n\n return this;\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy\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// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar asyncWrite = !process.browser && ['v0.10', 'v0.9.'].indexOf(process.version.slice(0, 5)) > -1 ? setImmediate : pna.nextTick;\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nutil.inherits(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n var hwm = options.highWaterMark;\n var writableHwm = options.writableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (writableHwm || writableHwm === 0)) this.highWaterMark = writableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function () {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function (object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function (object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n if (!realHasInstance.call(Writable, this) && !(this instanceof Duplex)) {\n return new Writable(options);\n }\n\n this._writableState = new WritableState(options, this);\n\n // legacy.\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n\n if (typeof options.writev === 'function') this._writev = options.writev;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n this.emit('error', new Error('Cannot pipe, not readable'));\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new Error('write after end');\n // TODO: defer error events consistently everywhere, not just the cb\n stream.emit('error', er);\n pna.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var valid = true;\n var er = false;\n\n if (chunk === null) {\n er = new TypeError('May not write null values to stream');\n } else if (typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n if (er) {\n stream.emit('error', er);\n pna.nextTick(cb, er);\n valid = false;\n }\n return valid;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n\n if (typeof cb !== 'function') cb = nop;\n\n if (state.ended) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n\n return ret;\n};\n\nWritable.prototype.cork = function () {\n var state = this._writableState;\n\n state.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n\n if (!state.writing && !state.corked && !state.finished && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new TypeError('Unknown encoding: ' + encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n\n state.length += len;\n\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n pna.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n pna.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n stream.emit('error', er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n\n onwriteStateUpdate(state);\n\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state);\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n /**/\n asyncWrite(afterWrite, stream, state, finished, cb);\n /**/\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new Error('_write() is not implemented'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending && !state.finished) endWritable(this, state, cb);\n};\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n stream.emit('error', err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function') {\n state.pendingcb++;\n state.finalCalled = true;\n pna.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n }\n }\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) pna.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n if (state.corkedRequestsFree) {\n state.corkedRequestsFree.next = corkReq;\n } else {\n state.corkedRequestsFree = corkReq;\n }\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n get: function () {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\n\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n this.end();\n cb(err);\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// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\n\nvar pna = require('process-nextick-args');\n/**/\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) {\n keys.push(key);\n }return keys;\n};\n/**/\n\nmodule.exports = Duplex;\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\n\nutil.inherits(Duplex, Readable);\n\n{\n // avoid scope creep, the keys array can then be collected\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n\n Readable.call(this, options);\n Writable.call(this, options);\n\n if (options && options.readable === false) this.readable = false;\n\n if (options && options.writable === false) this.writable = false;\n\n this.allowHalfOpen = true;\n if (options && options.allowHalfOpen === false) this.allowHalfOpen = false;\n\n this.once('end', onend);\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._writableState.highWaterMark;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // if we allow half-open state, or if the writable side ended,\n // then we're ok.\n if (this.allowHalfOpen || this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n pna.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});\n\nDuplex.prototype._destroy = function (err, cb) {\n this.push(null);\n this.end();\n\n pna.nextTick(cb, err);\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\nvar Buffer = require('safe-buffer').Buffer;\n/**/\n\nvar isEncoding = Buffer.isEncoding || function (encoding) {\n encoding = '' + encoding;\n switch (encoding && encoding.toLowerCase()) {\n case 'hex':case 'utf8':case 'utf-8':case 'ascii':case 'binary':case 'base64':case 'ucs2':case 'ucs-2':case 'utf16le':case 'utf-16le':case 'raw':\n return true;\n default:\n return false;\n }\n};\n\nfunction _normalizeEncoding(enc) {\n if (!enc) return 'utf8';\n var retried;\n while (true) {\n switch (enc) {\n case 'utf8':\n case 'utf-8':\n return 'utf8';\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return 'utf16le';\n case 'latin1':\n case 'binary':\n return 'latin1';\n case 'base64':\n case 'ascii':\n case 'hex':\n return enc;\n default:\n if (retried) return; // undefined\n enc = ('' + enc).toLowerCase();\n retried = true;\n }\n }\n};\n\n// Do not cache `Buffer.isEncoding` when checking encoding names as some\n// modules monkey-patch it to support additional encodings\nfunction normalizeEncoding(enc) {\n var nenc = _normalizeEncoding(enc);\n if (typeof nenc !== 'string' && (Buffer.isEncoding === isEncoding || !isEncoding(enc))) throw new Error('Unknown encoding: ' + enc);\n return nenc || enc;\n}\n\n// StringDecoder provides an interface for efficiently splitting a series of\n// buffers into a series of JS strings without breaking apart multi-byte\n// characters.\nexports.StringDecoder = StringDecoder;\nfunction StringDecoder(encoding) {\n this.encoding = normalizeEncoding(encoding);\n var nb;\n switch (this.encoding) {\n case 'utf16le':\n this.text = utf16Text;\n this.end = utf16End;\n nb = 4;\n break;\n case 'utf8':\n this.fillLast = utf8FillLast;\n nb = 4;\n break;\n case 'base64':\n this.text = base64Text;\n this.end = base64End;\n nb = 3;\n break;\n default:\n this.write = simpleWrite;\n this.end = simpleEnd;\n return;\n }\n this.lastNeed = 0;\n this.lastTotal = 0;\n this.lastChar = Buffer.allocUnsafe(nb);\n}\n\nStringDecoder.prototype.write = function (buf) {\n if (buf.length === 0) return '';\n var r;\n var i;\n if (this.lastNeed) {\n r = this.fillLast(buf);\n if (r === undefined) return '';\n i = this.lastNeed;\n this.lastNeed = 0;\n } else {\n i = 0;\n }\n if (i < buf.length) return r ? r + this.text(buf, i) : this.text(buf, i);\n return r || '';\n};\n\nStringDecoder.prototype.end = utf8End;\n\n// Returns only complete characters in a Buffer\nStringDecoder.prototype.text = utf8Text;\n\n// Attempts to complete a partial non-UTF-8 character using bytes from a Buffer\nStringDecoder.prototype.fillLast = function (buf) {\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, this.lastTotal - this.lastNeed, 0, buf.length);\n this.lastNeed -= buf.length;\n};\n\n// Checks the type of a UTF-8 byte, whether it's ASCII, a leading byte, or a\n// continuation byte. If an invalid byte is detected, -2 is returned.\nfunction utf8CheckByte(byte) {\n if (byte <= 0x7F) return 0;else if (byte >> 5 === 0x06) return 2;else if (byte >> 4 === 0x0E) return 3;else if (byte >> 3 === 0x1E) return 4;\n return byte >> 6 === 0x02 ? -1 : -2;\n}\n\n// Checks at most 3 bytes at the end of a Buffer in order to detect an\n// incomplete multi-byte UTF-8 character. The total number of bytes (2, 3, or 4)\n// needed to complete the UTF-8 character (if applicable) are returned.\nfunction utf8CheckIncomplete(self, buf, i) {\n var j = buf.length - 1;\n if (j < i) return 0;\n var nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 1;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) self.lastNeed = nb - 2;\n return nb;\n }\n if (--j < i || nb === -2) return 0;\n nb = utf8CheckByte(buf[j]);\n if (nb >= 0) {\n if (nb > 0) {\n if (nb === 2) nb = 0;else self.lastNeed = nb - 3;\n }\n return nb;\n }\n return 0;\n}\n\n// Validates as many continuation bytes for a multi-byte UTF-8 character as\n// needed or are available. If we see a non-continuation byte where we expect\n// one, we \"replace\" the validated continuation bytes we've seen so far with\n// a single UTF-8 replacement character ('\\ufffd'), to match v8's UTF-8 decoding\n// behavior. The continuation byte check is included three times in the case\n// where all of the continuation bytes for a character exist in the same buffer.\n// It is also done this way as a slight performance increase instead of using a\n// loop.\nfunction utf8CheckExtraBytes(self, buf, p) {\n if ((buf[0] & 0xC0) !== 0x80) {\n self.lastNeed = 0;\n return '\\ufffd';\n }\n if (self.lastNeed > 1 && buf.length > 1) {\n if ((buf[1] & 0xC0) !== 0x80) {\n self.lastNeed = 1;\n return '\\ufffd';\n }\n if (self.lastNeed > 2 && buf.length > 2) {\n if ((buf[2] & 0xC0) !== 0x80) {\n self.lastNeed = 2;\n return '\\ufffd';\n }\n }\n }\n}\n\n// Attempts to complete a multi-byte UTF-8 character using bytes from a Buffer.\nfunction utf8FillLast(buf) {\n var p = this.lastTotal - this.lastNeed;\n var r = utf8CheckExtraBytes(this, buf, p);\n if (r !== undefined) return r;\n if (this.lastNeed <= buf.length) {\n buf.copy(this.lastChar, p, 0, this.lastNeed);\n return this.lastChar.toString(this.encoding, 0, this.lastTotal);\n }\n buf.copy(this.lastChar, p, 0, buf.length);\n this.lastNeed -= buf.length;\n}\n\n// Returns all complete UTF-8 characters in a Buffer. If the Buffer ended on a\n// partial character, the character's bytes are buffered until the required\n// number of bytes are available.\nfunction utf8Text(buf, i) {\n var total = utf8CheckIncomplete(this, buf, i);\n if (!this.lastNeed) return buf.toString('utf8', i);\n this.lastTotal = total;\n var end = buf.length - (total - this.lastNeed);\n buf.copy(this.lastChar, 0, end);\n return buf.toString('utf8', i, end);\n}\n\n// For UTF-8, a replacement character is added when ending on a partial\n// character.\nfunction utf8End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + '\\ufffd';\n return r;\n}\n\n// UTF-16LE typically needs two bytes per character, but even if we have an even\n// number of bytes available, we need to check if we end on a leading/high\n// surrogate. In that case, we need to wait for the next two bytes in order to\n// decode the last character properly.\nfunction utf16Text(buf, i) {\n if ((buf.length - i) % 2 === 0) {\n var r = buf.toString('utf16le', i);\n if (r) {\n var c = r.charCodeAt(r.length - 1);\n if (c >= 0xD800 && c <= 0xDBFF) {\n this.lastNeed = 2;\n this.lastTotal = 4;\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n return r.slice(0, -1);\n }\n }\n return r;\n }\n this.lastNeed = 1;\n this.lastTotal = 2;\n this.lastChar[0] = buf[buf.length - 1];\n return buf.toString('utf16le', i, buf.length - 1);\n}\n\n// For UTF-16LE we do not explicitly append special replacement characters if we\n// end on a partial character, we simply let v8 handle that.\nfunction utf16End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) {\n var end = this.lastTotal - this.lastNeed;\n return r + this.lastChar.toString('utf16le', 0, end);\n }\n return r;\n}\n\nfunction base64Text(buf, i) {\n var n = (buf.length - i) % 3;\n if (n === 0) return buf.toString('base64', i);\n this.lastNeed = 3 - n;\n this.lastTotal = 3;\n if (n === 1) {\n this.lastChar[0] = buf[buf.length - 1];\n } else {\n this.lastChar[0] = buf[buf.length - 2];\n this.lastChar[1] = buf[buf.length - 1];\n }\n return buf.toString('base64', i, buf.length - n);\n}\n\nfunction base64End(buf) {\n var r = buf && buf.length ? this.write(buf) : '';\n if (this.lastNeed) return r + this.lastChar.toString('base64', 0, 3 - this.lastNeed);\n return r;\n}\n\n// Pass bytes on through for single-byte encodings (e.g. ascii, latin1, hex)\nfunction simpleWrite(buf) {\n return buf.toString(this.encoding);\n}\n\nfunction simpleEnd(buf) {\n return buf && buf.length ? this.write(buf) : '';\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\nvar pna = require('process-nextick-args');\n/**/\n\nmodule.exports = Readable;\n\n/**/\nvar isArray = require('isarray');\n/**/\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function (emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\n/**/\n\nvar Buffer = require('safe-buffer').Buffer;\nvar OurUint8Array = global.Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\n/**/\nvar debugUtil = require('util');\nvar debug = void 0;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function () {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/BufferList');\nvar destroyImpl = require('./internal/streams/destroy');\nvar StringDecoder;\n\nutil.inherits(Readable, Stream);\n\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream) {\n Duplex = Duplex || require('./_stream_duplex');\n\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n var isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n var hwm = options.highWaterMark;\n var readableHwm = options.readableHighWaterMark;\n var defaultHwm = this.objectMode ? 16 : 16 * 1024;\n\n if (hwm || hwm === 0) this.highWaterMark = hwm;else if (isDuplex && (readableHwm || readableHwm === 0)) this.highWaterMark = readableHwm;else this.highWaterMark = defaultHwm;\n\n // cast to ints.\n this.highWaterMark = Math.floor(this.highWaterMark);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n if (!(this instanceof Readable)) return new Readable(options);\n\n this._readableState = new ReadableState(options, this);\n\n // legacy\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n get: function () {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function (value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\n\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n this.push(null);\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n stream.emit('error', er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) stream.emit('error', new Error('stream.unshift() after end event'));else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n stream.emit('error', new Error('stream.push() after EOF'));\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n }\n }\n\n return needMoreData(state);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n stream.emit('data', chunk);\n stream.read(0);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new TypeError('Invalid non-string/buffer chunk');\n }\n return er;\n}\n\n// if it's past the high water mark, we can push in some more.\n// Also, if we have no data yet, we can stand some\n// more bytes. This is to work around cases where hwm=0,\n// such as the repl. Also, if the push() triggered a\n// readable event, and the user called read(largeNumber) such that\n// needReadable was set, then we ought to push more, so that another\n// 'readable' event will be triggered.\nfunction needMoreData(state) {\n return !state.ended && (state.needReadable || state.length < state.highWaterMark || state.length === 0);\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this._readableState.decoder = new StringDecoder(enc);\n this._readableState.encoding = enc;\n return this;\n};\n\n// Don't raise the hwm > 8MB\nvar MAX_HWM = 0x800000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && (state.length >= state.highWaterMark || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = true;\n n = 0;\n } else {\n state.length -= n;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n\n // emit 'readable' now to make sure it gets picked up.\n emitReadable(stream);\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n if (state.sync) pna.nextTick(emitReadable_, stream);else emitReadable_(stream);\n }\n}\n\nfunction emitReadable_(stream) {\n debug('emit readable');\n stream.emit('readable');\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n pna.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n var len = state.length;\n while (!state.reading && !state.flowing && !state.ended && state.length < state.highWaterMark) {\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;else len = state.length;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n this.emit('error', new Error('_read() is not implemented'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) pna.nextTick(endFn);else src.once('end', endFn);\n\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n // If the user pushes more data while we're writing to dest then we'll end up\n // in ondata again. However, we only want to increase awaitDrain once because\n // dest will only emit one 'drain' event for the multiple writes.\n // => Introduce a guard on increasing awaitDrain.\n var increasedAwaitDrain = false;\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n increasedAwaitDrain = false;\n var ret = dest.write(chunk);\n if (false === ret && !increasedAwaitDrain) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', src._readableState.awaitDrain);\n src._readableState.awaitDrain++;\n increasedAwaitDrain = true;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) dest.emit('error', er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function () {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = { hasUnpiped: false };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, unpipeInfo);\n }return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n\n dest.emit('unpipe', this, unpipeInfo);\n\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n\n if (ev === 'data') {\n // Start flowing on next tick if stream isn't explicitly paused\n if (this._readableState.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n var state = this._readableState;\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.emittedReadable = false;\n if (!state.reading) {\n pna.nextTick(nReadingNextTick, this);\n } else if (state.length) {\n emitReadable(this);\n }\n }\n }\n\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n state.flowing = true;\n resume(this, state);\n }\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n pna.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n if (!state.reading) {\n debug('resume read 0');\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n state.awaitDrain = 0;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (false !== this._readableState.flowing) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null) {}\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function (method) {\n return function () {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function () {\n return this._readableState.highWaterMark;\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.head.data;else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = fromListPartial(n, state.buffer, state.decoder);\n }\n\n return ret;\n}\n\n// Extracts only enough buffered data to satisfy the amount requested.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromListPartial(n, list, hasStrings) {\n var ret;\n if (n < list.head.data.length) {\n // slice is the same for buffers and strings\n ret = list.head.data.slice(0, n);\n list.head.data = list.head.data.slice(n);\n } else if (n === list.head.data.length) {\n // first chunk is a perfect match\n ret = list.shift();\n } else {\n // result spans more than one buffer\n ret = hasStrings ? copyFromBufferString(n, list) : copyFromBuffer(n, list);\n }\n return ret;\n}\n\n// Copies a specified amount of characters from the list of buffered data\n// chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBufferString(n, list) {\n var p = list.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\n// Copies a specified amount of bytes from the list of buffered data chunks.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction copyFromBuffer(n, list) {\n var ret = Buffer.allocUnsafe(n);\n var p = list.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) list.head = p.next;else list.head = list.tail = null;\n } else {\n list.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n list.length -= c;\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n\n // If we get here before consuming all the bytes, then that is a\n // bug in node. Should never happen.\n if (state.length > 0) throw new Error('\"endReadable()\" called on non-empty stream');\n\n if (!state.endEmitted) {\n state.ended = true;\n pna.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n }\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\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// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\n\nvar Duplex = require('./_stream_duplex');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n\n var cb = ts.writecb;\n\n if (!cb) {\n return this.emit('error', new Error('write callback called multiple times'));\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n\n cb(er);\n\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n\n Duplex.call(this, options);\n\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function') {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n throw new Error('_transform() is not implemented');\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && ts.writecb && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n var _this2 = this;\n\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n _this2.emit('close');\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new Error('Calling transform done when ws.length != 0');\n\n if (stream._transformState.transforming) throw new Error('Calling transform done when still transforming');\n\n return stream.push(null);\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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\n/**/\nvar util = Object.create(require('core-util-is'));\nutil.inherits = require('inherits');\n/**/\n\nutil.inherits(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\n","module.exports = require('./lib/_stream_writable.js');\n","module.exports = require('./lib/_stream_duplex.js');\n","module.exports = require('./readable').Transform\n","module.exports = require('./readable').PassThrough\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\nmodule.exports = Stream;\n\nvar EE = require('events').EventEmitter;\nvar inherits = require('inherits');\n\ninherits(Stream, EE);\nStream.Readable = require('readable-stream/readable.js');\nStream.Writable = require('readable-stream/writable.js');\nStream.Duplex = require('readable-stream/duplex.js');\nStream.Transform = require('readable-stream/transform.js');\nStream.PassThrough = require('readable-stream/passthrough.js');\n\n// Backwards-compat with node 0.4.x\nStream.Stream = Stream;\n\n\n\n// old-style streams. Note that the pipe method (the only relevant\n// part of this class) is overridden in the Readable class.\n\nfunction Stream() {\n EE.call(this);\n}\n\nStream.prototype.pipe = function(dest, options) {\n var source = this;\n\n function ondata(chunk) {\n if (dest.writable) {\n if (false === dest.write(chunk) && source.pause) {\n source.pause();\n }\n }\n }\n\n source.on('data', ondata);\n\n function ondrain() {\n if (source.readable && source.resume) {\n source.resume();\n }\n }\n\n dest.on('drain', ondrain);\n\n // If the 'end' option is not supplied, dest.end() will be called when\n // source gets the 'end' or 'close' events. Only dest.end() once.\n if (!dest._isStdio && (!options || options.end !== false)) {\n source.on('end', onend);\n source.on('close', onclose);\n }\n\n var didOnEnd = false;\n function onend() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n dest.end();\n }\n\n\n function onclose() {\n if (didOnEnd) return;\n didOnEnd = true;\n\n if (typeof dest.destroy === 'function') dest.destroy();\n }\n\n // don't leave dangling pipes when there are errors.\n function onerror(er) {\n cleanup();\n if (EE.listenerCount(this, 'error') === 0) {\n throw er; // Unhandled stream error in pipe.\n }\n }\n\n source.on('error', onerror);\n dest.on('error', onerror);\n\n // remove all the event listeners that were added.\n function cleanup() {\n source.removeListener('data', ondata);\n dest.removeListener('drain', ondrain);\n\n source.removeListener('end', onend);\n source.removeListener('close', onclose);\n\n source.removeListener('error', onerror);\n dest.removeListener('error', onerror);\n\n source.removeListener('end', cleanup);\n source.removeListener('close', cleanup);\n\n dest.removeListener('close', cleanup);\n }\n\n source.on('end', cleanup);\n source.on('close', cleanup);\n\n dest.on('close', cleanup);\n\n dest.emit('pipe', source);\n\n // Allow for unix-like usage: A.pipe(B).pipe(C)\n return dest;\n};\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","'use strict'\nvar inherits = require('inherits')\nvar MD5 = require('md5.js')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Base = require('cipher-base')\n\nfunction Hash (hash) {\n Base.call(this, 'digest')\n\n this._hash = hash\n}\n\ninherits(Hash, Base)\n\nHash.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHash.prototype._final = function () {\n return this._hash.digest()\n}\n\nmodule.exports = function createHash (alg) {\n alg = alg.toLowerCase()\n if (alg === 'md5') return new MD5()\n if (alg === 'rmd160' || alg === 'ripemd160') return new RIPEMD160()\n\n return new Hash(sha(alg))\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","var MD5 = require('md5.js')\n\nmodule.exports = function (buffer) {\n return new MD5().update(buffer).digest()\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Legacy = require('./legacy')\nvar Base = require('cipher-base')\nvar Buffer = require('safe-buffer').Buffer\nvar md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\n\nvar sha = require('sha.js')\n\nvar ZEROS = Buffer.alloc(128)\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n this._alg = alg\n this._key = key\n if (key.length > blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","module.exports={sha224WithRSAEncryption:{sign:\"rsa\",hash:\"sha224\",id:\"302d300d06096086480165030402040500041c\"},\"RSA-SHA224\":{sign:\"ecdsa/rsa\",hash:\"sha224\",id:\"302d300d06096086480165030402040500041c\"},sha256WithRSAEncryption:{sign:\"rsa\",hash:\"sha256\",id:\"3031300d060960864801650304020105000420\"},\"RSA-SHA256\":{sign:\"ecdsa/rsa\",hash:\"sha256\",id:\"3031300d060960864801650304020105000420\"},sha384WithRSAEncryption:{sign:\"rsa\",hash:\"sha384\",id:\"3041300d060960864801650304020205000430\"},\"RSA-SHA384\":{sign:\"ecdsa/rsa\",hash:\"sha384\",id:\"3041300d060960864801650304020205000430\"},sha512WithRSAEncryption:{sign:\"rsa\",hash:\"sha512\",id:\"3051300d060960864801650304020305000440\"},\"RSA-SHA512\":{sign:\"ecdsa/rsa\",hash:\"sha512\",id:\"3051300d060960864801650304020305000440\"},\"RSA-SHA1\":{sign:\"rsa\",hash:\"sha1\",id:\"3021300906052b0e03021a05000414\"},\"ecdsa-with-SHA1\":{sign:\"ecdsa\",hash:\"sha1\",id:\"\"},sha256:{sign:\"ecdsa\",hash:\"sha256\",id:\"\"},sha224:{sign:\"ecdsa\",hash:\"sha224\",id:\"\"},sha384:{sign:\"ecdsa\",hash:\"sha384\",id:\"\"},sha512:{sign:\"ecdsa\",hash:\"sha512\",id:\"\"},\"DSA-SHA\":{sign:\"dsa\",hash:\"sha1\",id:\"\"},\"DSA-SHA1\":{sign:\"dsa\",hash:\"sha1\",id:\"\"},DSA:{sign:\"dsa\",hash:\"sha1\",id:\"\"},\"DSA-WITH-SHA224\":{sign:\"dsa\",hash:\"sha224\",id:\"\"},\"DSA-SHA224\":{sign:\"dsa\",hash:\"sha224\",id:\"\"},\"DSA-WITH-SHA256\":{sign:\"dsa\",hash:\"sha256\",id:\"\"},\"DSA-SHA256\":{sign:\"dsa\",hash:\"sha256\",id:\"\"},\"DSA-WITH-SHA384\":{sign:\"dsa\",hash:\"sha384\",id:\"\"},\"DSA-SHA384\":{sign:\"dsa\",hash:\"sha384\",id:\"\"},\"DSA-WITH-SHA512\":{sign:\"dsa\",hash:\"sha512\",id:\"\"},\"DSA-SHA512\":{sign:\"dsa\",hash:\"sha512\",id:\"\"},\"DSA-RIPEMD160\":{sign:\"dsa\",hash:\"rmd160\",id:\"\"},ripemd160WithRSA:{sign:\"rsa\",hash:\"rmd160\",id:\"3021300906052b2403020105000414\"},\"RSA-RIPEMD160\":{sign:\"rsa\",hash:\"rmd160\",id:\"3021300906052b2403020105000414\"},md5WithRSAEncryption:{sign:\"rsa\",hash:\"md5\",id:\"3020300c06082a864886f70d020505000410\"},\"RSA-MD5\":{sign:\"rsa\",hash:\"md5\",id:\"3020300c06082a864886f70d020505000410\"}};","module.exports = require('./browser/algorithms.json')\n","var MAX_ALLOC = Math.pow(2, 30) - 1 // default in iojs\n\nmodule.exports = function (iterations, keylen) {\n if (typeof iterations !== 'number') {\n throw new TypeError('Iterations not a number')\n }\n\n if (iterations < 0) {\n throw new TypeError('Bad iterations')\n }\n\n if (typeof keylen !== 'number') {\n throw new TypeError('Key length not a number')\n }\n\n if (keylen < 0 || keylen > MAX_ALLOC || keylen !== keylen) { /* eslint no-self-compare: 0 */\n throw new TypeError('Bad key length')\n }\n}\n","var defaultEncoding\n/* istanbul ignore next */\nif (process.browser) {\n defaultEncoding = 'utf-8'\n} else if (process.version) {\n var pVersionMajor = parseInt(process.version.split('.')[0].slice(1), 10)\n\n defaultEncoding = pVersionMajor >= 6 ? 'utf-8' : 'binary'\n} else {\n defaultEncoding = 'utf-8'\n}\nmodule.exports = defaultEncoding\n","var Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (thing, encoding, name) {\n if (Buffer.isBuffer(thing)) {\n return thing\n } else if (typeof thing === 'string') {\n return Buffer.from(thing, encoding)\n } else if (ArrayBuffer.isView(thing)) {\n return Buffer.from(thing.buffer)\n } else {\n throw new TypeError(name + ' must be a string, a Buffer, a typed array or a DataView')\n }\n}\n","var md5 = require('create-hash/md5')\nvar RIPEMD160 = require('ripemd160')\nvar sha = require('sha.js')\nvar Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar toBuffer = require('./to-buffer')\n\nvar ZEROS = Buffer.alloc(128)\nvar sizes = {\n md5: 16,\n sha1: 20,\n sha224: 28,\n sha256: 32,\n sha384: 48,\n sha512: 64,\n rmd160: 20,\n ripemd160: 20\n}\n\nfunction Hmac (alg, key, saltLen) {\n var hash = getDigest(alg)\n var blocksize = (alg === 'sha512' || alg === 'sha384') ? 128 : 64\n\n if (key.length > blocksize) {\n key = hash(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = Buffer.allocUnsafe(blocksize + sizes[alg])\n var opad = Buffer.allocUnsafe(blocksize + sizes[alg])\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n var ipad1 = Buffer.allocUnsafe(blocksize + saltLen + 4)\n ipad.copy(ipad1, 0, 0, blocksize)\n this.ipad1 = ipad1\n this.ipad2 = ipad\n this.opad = opad\n this.alg = alg\n this.blocksize = blocksize\n this.hash = hash\n this.size = sizes[alg]\n}\n\nHmac.prototype.run = function (data, ipad) {\n data.copy(ipad, this.blocksize)\n var h = this.hash(ipad)\n h.copy(this.opad, this.blocksize)\n return this.hash(this.opad)\n}\n\nfunction getDigest (alg) {\n function shaFunc (data) {\n return sha(alg).update(data).digest()\n }\n function rmd160Func (data) {\n return new RIPEMD160().update(data).digest()\n }\n\n if (alg === 'rmd160' || alg === 'ripemd160') return rmd160Func\n if (alg === 'md5') return md5\n return shaFunc\n}\n\nfunction pbkdf2 (password, salt, iterations, keylen, digest) {\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n\n digest = digest || 'sha1'\n\n var hmac = new Hmac(digest, password, salt.length)\n\n var DK = Buffer.allocUnsafe(keylen)\n var block1 = Buffer.allocUnsafe(salt.length + 4)\n salt.copy(block1, 0, 0, salt.length)\n\n var destPos = 0\n var hLen = sizes[digest]\n var l = Math.ceil(keylen / hLen)\n\n for (var i = 1; i <= l; i++) {\n block1.writeUInt32BE(i, salt.length)\n\n var T = hmac.run(block1, hmac.ipad1)\n var U = T\n\n for (var j = 1; j < iterations; j++) {\n U = hmac.run(U, hmac.ipad2)\n for (var k = 0; k < hLen; k++) T[k] ^= U[k]\n }\n\n T.copy(DK, destPos)\n destPos += hLen\n }\n\n return DK\n}\n\nmodule.exports = pbkdf2\n","var Buffer = require('safe-buffer').Buffer\n\nvar checkParameters = require('./precondition')\nvar defaultEncoding = require('./default-encoding')\nvar sync = require('./sync')\nvar toBuffer = require('./to-buffer')\n\nvar ZERO_BUF\nvar subtle = global.crypto && global.crypto.subtle\nvar toBrowser = {\n sha: 'SHA-1',\n 'sha-1': 'SHA-1',\n sha1: 'SHA-1',\n sha256: 'SHA-256',\n 'sha-256': 'SHA-256',\n sha384: 'SHA-384',\n 'sha-384': 'SHA-384',\n 'sha-512': 'SHA-512',\n sha512: 'SHA-512'\n}\nvar checks = []\nfunction checkNative (algo) {\n if (global.process && !global.process.browser) {\n return Promise.resolve(false)\n }\n if (!subtle || !subtle.importKey || !subtle.deriveBits) {\n return Promise.resolve(false)\n }\n if (checks[algo] !== undefined) {\n return checks[algo]\n }\n ZERO_BUF = ZERO_BUF || Buffer.alloc(8)\n var prom = browserPbkdf2(ZERO_BUF, ZERO_BUF, 10, 128, algo)\n .then(function () {\n return true\n }).catch(function () {\n return false\n })\n checks[algo] = prom\n return prom\n}\n\nfunction browserPbkdf2 (password, salt, iterations, length, algo) {\n return subtle.importKey(\n 'raw', password, { name: 'PBKDF2' }, false, ['deriveBits']\n ).then(function (key) {\n return subtle.deriveBits({\n name: 'PBKDF2',\n salt: salt,\n iterations: iterations,\n hash: {\n name: algo\n }\n }, key, length << 3)\n }).then(function (res) {\n return Buffer.from(res)\n })\n}\n\nfunction resolvePromise (promise, callback) {\n promise.then(function (out) {\n process.nextTick(function () {\n callback(null, out)\n })\n }, function (e) {\n process.nextTick(function () {\n callback(e)\n })\n })\n}\nmodule.exports = function (password, salt, iterations, keylen, digest, callback) {\n if (typeof digest === 'function') {\n callback = digest\n digest = undefined\n }\n\n digest = digest || 'sha1'\n var algo = toBrowser[digest.toLowerCase()]\n\n if (!algo || typeof global.Promise !== 'function') {\n return process.nextTick(function () {\n var out\n try {\n out = sync(password, salt, iterations, keylen, digest)\n } catch (e) {\n return callback(e)\n }\n callback(null, out)\n })\n }\n\n checkParameters(iterations, keylen)\n password = toBuffer(password, defaultEncoding, 'Password')\n salt = toBuffer(salt, defaultEncoding, 'Salt')\n if (typeof callback !== 'function') throw new Error('No callback provided to pbkdf2')\n\n resolvePromise(checkNative(algo).then(function (resp) {\n if (resp) return browserPbkdf2(password, salt, iterations, keylen, algo)\n\n return sync(password, salt, iterations, keylen, digest)\n }), callback)\n}\n","exports.pbkdf2 = require('./lib/async')\nexports.pbkdf2Sync = require('./lib/sync')\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","module.exports = assert;\n\nfunction assert(val, msg) {\n if (!val)\n throw new Error(msg || 'Assertion failed');\n}\n\nassert.equal = function assertEqual(l, r, msg) {\n if (l != r)\n throw new Error(msg || ('Assertion failed: ' + l + ' != ' + r));\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","module.exports={\"aes-128-ecb\":{cipher:\"AES\",key:128,iv:0,mode:\"ECB\",type:\"block\"},\"aes-192-ecb\":{cipher:\"AES\",key:192,iv:0,mode:\"ECB\",type:\"block\"},\"aes-256-ecb\":{cipher:\"AES\",key:256,iv:0,mode:\"ECB\",type:\"block\"},\"aes-128-cbc\":{cipher:\"AES\",key:128,iv:16,mode:\"CBC\",type:\"block\"},\"aes-192-cbc\":{cipher:\"AES\",key:192,iv:16,mode:\"CBC\",type:\"block\"},\"aes-256-cbc\":{cipher:\"AES\",key:256,iv:16,mode:\"CBC\",type:\"block\"},aes128:{cipher:\"AES\",key:128,iv:16,mode:\"CBC\",type:\"block\"},aes192:{cipher:\"AES\",key:192,iv:16,mode:\"CBC\",type:\"block\"},aes256:{cipher:\"AES\",key:256,iv:16,mode:\"CBC\",type:\"block\"},\"aes-128-cfb\":{cipher:\"AES\",key:128,iv:16,mode:\"CFB\",type:\"stream\"},\"aes-192-cfb\":{cipher:\"AES\",key:192,iv:16,mode:\"CFB\",type:\"stream\"},\"aes-256-cfb\":{cipher:\"AES\",key:256,iv:16,mode:\"CFB\",type:\"stream\"},\"aes-128-cfb8\":{cipher:\"AES\",key:128,iv:16,mode:\"CFB8\",type:\"stream\"},\"aes-192-cfb8\":{cipher:\"AES\",key:192,iv:16,mode:\"CFB8\",type:\"stream\"},\"aes-256-cfb8\":{cipher:\"AES\",key:256,iv:16,mode:\"CFB8\",type:\"stream\"},\"aes-128-cfb1\":{cipher:\"AES\",key:128,iv:16,mode:\"CFB1\",type:\"stream\"},\"aes-192-cfb1\":{cipher:\"AES\",key:192,iv:16,mode:\"CFB1\",type:\"stream\"},\"aes-256-cfb1\":{cipher:\"AES\",key:256,iv:16,mode:\"CFB1\",type:\"stream\"},\"aes-128-ofb\":{cipher:\"AES\",key:128,iv:16,mode:\"OFB\",type:\"stream\"},\"aes-192-ofb\":{cipher:\"AES\",key:192,iv:16,mode:\"OFB\",type:\"stream\"},\"aes-256-ofb\":{cipher:\"AES\",key:256,iv:16,mode:\"OFB\",type:\"stream\"},\"aes-128-ctr\":{cipher:\"AES\",key:128,iv:16,mode:\"CTR\",type:\"stream\"},\"aes-192-ctr\":{cipher:\"AES\",key:192,iv:16,mode:\"CTR\",type:\"stream\"},\"aes-256-ctr\":{cipher:\"AES\",key:256,iv:16,mode:\"CTR\",type:\"stream\"},\"aes-128-gcm\":{cipher:\"AES\",key:128,iv:12,mode:\"GCM\",type:\"auth\"},\"aes-192-gcm\":{cipher:\"AES\",key:192,iv:12,mode:\"GCM\",type:\"auth\"},\"aes-256-gcm\":{cipher:\"AES\",key:256,iv:12,mode:\"GCM\",type:\"auth\"}};","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho VƤhƤ-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","var bn = require('bn.js');\nvar brorand = require('brorand');\n\nfunction MillerRabin(rand) {\n this.rand = rand || new brorand.Rand();\n}\nmodule.exports = MillerRabin;\n\nMillerRabin.create = function create(rand) {\n return new MillerRabin(rand);\n};\n\nMillerRabin.prototype._randbelow = function _randbelow(n) {\n var len = n.bitLength();\n var min_bytes = Math.ceil(len / 8);\n\n // Generage random bytes until a number less than n is found.\n // This ensures that 0..n-1 have an equal probability of being selected.\n do\n var a = new bn(this.rand.generate(min_bytes));\n while (a.cmp(n) >= 0);\n\n return a;\n};\n\nMillerRabin.prototype._randrange = function _randrange(start, stop) {\n // Generate a random number greater than or equal to start and less than stop.\n var size = stop.sub(start);\n return start.add(this._randbelow(size));\n};\n\nMillerRabin.prototype.test = function test(n, k, cb) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n var prime = true;\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n if (cb)\n cb(a);\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return false;\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s)\n return false;\n }\n\n return prime;\n};\n\nMillerRabin.prototype.getDivisor = function getDivisor(n, k) {\n var len = n.bitLength();\n var red = bn.mont(n);\n var rone = new bn(1).toRed(red);\n\n if (!k)\n k = Math.max(1, (len / 48) | 0);\n\n // Find d and s, (n - 1) = (2 ^ s) * d;\n var n1 = n.subn(1);\n for (var s = 0; !n1.testn(s); s++) {}\n var d = n.shrn(s);\n\n var rn1 = n1.toRed(red);\n\n for (; k > 0; k--) {\n var a = this._randrange(new bn(2), n1);\n\n var g = n.gcd(a);\n if (g.cmpn(1) !== 0)\n return g;\n\n var x = a.toRed(red).redPow(d);\n if (x.cmp(rone) === 0 || x.cmp(rn1) === 0)\n continue;\n\n for (var i = 1; i < s; i++) {\n x = x.redSqr();\n\n if (x.cmp(rone) === 0)\n return x.fromRed().subn(1).gcd(n);\n if (x.cmp(rn1) === 0)\n break;\n }\n\n if (i === s) {\n x = x.redSqr();\n return x.fromRed().subn(1).gcd(n);\n }\n }\n\n return false;\n};\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","module.exports={modp1:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a63a3620ffffffffffffffff\"},modp2:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece65381ffffffffffffffff\"},modp5:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca237327ffffffffffffffff\"},modp14:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aacaa68ffffffffffffffff\"},modp15:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a93ad2caffffffffffffffff\"},modp16:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c934063199ffffffffffffffff\"},modp17:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dcc4024ffffffffffffffff\"},modp18:{gen:\"02\",prime:\"ffffffffffffffffc90fdaa22168c234c4c6628b80dc1cd129024e088a67cc74020bbea63b139b22514a08798e3404ddef9519b3cd3a431b302b0a6df25f14374fe1356d6d51c245e485b576625e7ec6f44c42e9a637ed6b0bff5cb6f406b7edee386bfb5a899fa5ae9f24117c4b1fe649286651ece45b3dc2007cb8a163bf0598da48361c55d39a69163fa8fd24cf5f83655d23dca3ad961c62f356208552bb9ed529077096966d670c354e4abc9804f1746c08ca18217c32905e462e36ce3be39e772c180e86039b2783a2ec07a28fb5c55df06f4c52c9de2bcbf6955817183995497cea956ae515d2261898fa051015728e5a8aaac42dad33170d04507a33a85521abdf1cba64ecfb850458dbef0a8aea71575d060c7db3970f85a6e1e4c7abf5ae8cdb0933d71e8c94e04a25619dcee3d2261ad2ee6bf12ffa06d98a0864d87602733ec86a64521f2b18177b200cbbe117577a615d6c770988c0bad946e208e24fa074e5ab3143db5bfce0fd108e4b82d120a92108011a723c12a787e6d788719a10bdba5b2699c327186af4e23c1a946834b6150bda2583e9ca2ad44ce8dbbbc2db04de8ef92e8efc141fbecaa6287c59474e6bc05d99b2964fa090c3a2233ba186515be7ed1f612970cee2d7afb81bdd762170481cd0069127d5b05aa993b4ea988d8fddc186ffb7dc90a6c08f4df435c93402849236c3fab4d27c7026c1d4dcb2602646dec9751e763dba37bdf8ff9406ad9e530ee5db382f413001aeb06a53ed9027d831179727b0865a8918da3edbebcf9b14ed44ce6cbaced4bb1bdb7f1447e6cc254b332051512bd7af426fb8f401378cd2bf5983ca01c64b92ecf032ea15d1721d03f482d7ce6e74fef6d55e702f46980c82b5a84031900b1c9e59e7c97fbec7e8f323a97a7e36cc88be0f1d45b7ff585ac54bd407b22b4154aacc8f6d7ebf48e1d814cc5ed20f8037e0a79715eef29be32806a1d58bb7c5da76f550aa3d8a1fbff0eb19ccb1a313d55cda56c9ec2ef29632387fe8d76e3c0468043e8f663f4860ee12bf2d5b0b7474d6e694f91e6dbe115974a3926f12fee5e438777cb6a932df8cd8bec4d073b931ba3bc832b68d9dd300741fa7bf8afc47ed2576f6936ba424663aab639c5ae4f5683423b4742bf1c978238f16cbe39d652de3fdb8befc848ad922222e04a4037c0713eb57a81a23f0c73473fc646cea306b4bcbc8862f8385ddfa9d4b7fa2c087e879683303ed5bdd3a062b3cf5b3a278a66d2a13f83f44f82ddf310ee074ab6a364597e899a0255dc164f31cc50846851df9ab48195ded7ea1b1d510bd7ee74d73faf36bc31ecfa268359046f4eb879f924009438b481c6cd7889a002ed5ee382bc9190da6fc026e479558e4475677e9aa9e3050e2765694dfc81f56e880b96e7160c980dd98edd3dfffffffffffffffff\"}};","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","module.exports = require('events').EventEmitter;\n","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\n\nvar _require2 = require('util'),\n inspect = _require2.inspect;\n\nvar custom = inspect && inspect.custom || 'inspect';\n\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\n\nmodule.exports =\n/*#__PURE__*/\nfunction () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n\n while (p = p.next) {\n ret += s + p.data;\n }\n\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n\n return ret;\n } // Consumes a specified amount of bytes or characters from the buffered data.\n\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n } // Consumes a specified amount of characters from the buffered data.\n\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Consumes a specified amount of bytes from the buffered data.\n\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n\n break;\n }\n\n ++c;\n }\n\n this.length -= c;\n return ret;\n } // Make sure the linked list only shows the minimal necessary information.\n\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread({}, options, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n\n return BufferList;\n}();","'use strict'; // undocumented cb() API, needed for core, not for public API\n\nfunction destroy(err, cb) {\n var _this = this;\n\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n\n return this;\n } // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n } // if this is a duplex stream mark the writable part as destroyed as well\n\n\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n\n return this;\n}\n\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\n\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\n\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\n\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\n\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\n\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\n\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\n\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n\n return Math.floor(hwm);\n } // Default value\n\n\n return state.objectMode ? 16 : 16 * 1024;\n}\n\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\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// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n'use strict';\n\nmodule.exports = Writable;\n/* */\n\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n} // It seems a linked list but it is not\n// there will be only 2 of these for each stream\n\n\nfunction CorkedRequest(state) {\n var _this = this;\n\n this.next = null;\n this.entry = null;\n\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\n\n\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n/**/\n\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\n\nrequire('inherits')(Writable, Stream);\n\nfunction nop() {}\n\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode; // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex); // if _final has been called\n\n this.finalCalled = false; // drain event flag.\n\n this.needDrain = false; // at the start of calling end()\n\n this.ending = false; // when end() has been called, and returned\n\n this.ended = false; // when 'finish' is emitted\n\n this.finished = false; // has it been destroyed\n\n this.destroyed = false; // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n\n this.length = 0; // a flag to see when we're in the middle of a write.\n\n this.writing = false; // when true all writes will be buffered until .uncork() call\n\n this.corked = 0; // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n\n this.sync = true; // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n\n this.bufferProcessing = false; // the callback that's passed to _write(chunk,cb)\n\n this.onwrite = function (er) {\n onwrite(stream, er);\n }; // the callback that the user supplies to write(chunk,encoding,cb)\n\n\n this.writecb = null; // the amount that is being written when _write is called.\n\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null; // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n\n this.pendingcb = 0; // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n\n this.prefinished = false; // True if the error was already emitted and should not be thrown again\n\n this.errorEmitted = false; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'finish' (and potentially 'end')\n\n this.autoDestroy = !!options.autoDestroy; // count buffered requests\n\n this.bufferedRequestCount = 0; // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n\n this.corkedRequestsFree = new CorkedRequest(this);\n}\n\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n\n while (current) {\n out.push(current);\n current = current.next;\n }\n\n return out;\n};\n\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})(); // Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\n\n\nvar realHasInstance;\n\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\n\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex'); // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex); // legacy.\n\n this.writable = true;\n\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n\n Stream.call(this);\n} // Otherwise people can pipe Writable streams, which is just wrong.\n\n\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\n\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END(); // TODO: defer error events consistently everywhere, not just the cb\n\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n} // Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\n\n\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n\n return true;\n}\n\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\n\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\n\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\n\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\n\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n\n return chunk;\n}\n\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n}); // if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\n\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark; // we must ensure that previous needDrain will not be reset to false.\n\n if (!ret) state.needDrain = true;\n\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n\n return ret;\n}\n\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\n\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er); // this can emit finish, and it will always happen\n // after error\n\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er); // this can emit finish, but finish must\n // always follow error\n\n finishMaybe(stream, state);\n }\n}\n\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\n\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\n\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n} // Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\n\n\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n} // if there's something in the buffer waiting, then process it\n\n\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish); // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n\n state.pendingcb++;\n state.lastBufferedRequest = null;\n\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--; // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n\n if (state.writing) {\n break;\n }\n }\n\n if (entry === null) state.lastBufferedRequest = null;\n }\n\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\n\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\n\nWritable.prototype._writev = null;\n\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding); // .end() fully uncorks\n\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n } // ignore unnecessary end() calls.\n\n\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\n\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\n\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n\n if (err) {\n errorOrDestroy(stream, err);\n }\n\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\n\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\n\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n\n if (need) {\n prefinish(stream, state);\n\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n\n return need;\n}\n\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n\n state.ended = true;\n stream.writable = false;\n}\n\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n } // reuse the free corkReq.\n\n\n state.corkedRequestsFree.next = corkReq;\n}\n\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\n\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\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// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n'use strict';\n/**/\n\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n\n for (var key in obj) {\n keys.push(key);\n }\n\n return keys;\n};\n/**/\n\n\nmodule.exports = Duplex;\n\nvar Readable = require('./_stream_readable');\n\nvar Writable = require('./_stream_writable');\n\nrequire('inherits')(Duplex, Readable);\n\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\n\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\n\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n}); // the no-half-open enforcer\n\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return; // no more data can be written.\n // But allow more writes to happen in this tick.\n\n process.nextTick(onEndNT, this);\n}\n\nfunction onEndNT(self) {\n self.end();\n}\n\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n callback.apply(this, args);\n };\n}\n\nfunction noop() {}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n\n var writableEnded = stream._writableState && stream._writableState.finished;\n\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n\n var onclose = function onclose() {\n var err;\n\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\n\nmodule.exports = eos;","'use strict';\n\nvar _Object$setPrototypeO;\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nvar finished = require('./end-of-stream');\n\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\n\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\n\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n\n if (resolve !== null) {\n var data = iter[kStream].read(); // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\n\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\n\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\n\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n\n next: function next() {\n var _this = this;\n\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n\n if (error !== null) {\n return Promise.reject(error);\n }\n\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n } // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n\n\n var lastPromise = this[kLastPromise];\n var promise;\n\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n\n promise = new Promise(this[kHandlePromise]);\n }\n\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\n\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject]; // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n\n iterator[kError] = err;\n return;\n }\n\n var resolve = iterator[kLastResolve];\n\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\n\nmodule.exports = createReadableStreamAsyncIterator;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n'use strict';\n\nmodule.exports = Readable;\n/**/\n\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n/**/\n\nvar EE = require('events').EventEmitter;\n\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\n\n\nvar Stream = require('./internal/streams/stream');\n/**/\n\n\nvar Buffer = require('buffer').Buffer;\n\nvar OurUint8Array = global.Uint8Array || function () {};\n\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\n\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n/**/\n\n\nvar debugUtil = require('util');\n\nvar debug;\n\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\n\nvar BufferList = require('./internal/streams/buffer_list');\n\nvar destroyImpl = require('./internal/streams/destroy');\n\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\n\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT; // Lazy loaded to improve the startup performance.\n\n\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\n\nrequire('inherits')(Readable, Stream);\n\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\n\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn); // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\n\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {}; // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex; // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode; // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex); // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false; // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n\n this.sync = true; // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true; // Should close be emitted on destroy. Defaults to true.\n\n this.emitClose = options.emitClose !== false; // Should .destroy() be called after 'end' (and potentially 'finish')\n\n this.autoDestroy = !!options.autoDestroy; // has it been destroyed\n\n this.destroyed = false; // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n\n this.defaultEncoding = options.defaultEncoding || 'utf8'; // the number of writers that are awaiting a drain event in .pipe()s\n\n this.awaitDrain = 0; // if true, a maybeReadMore has been scheduled\n\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\n\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options); // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex); // legacy\n\n this.readable = true;\n\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n\n Stream.call(this);\n}\n\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n } // backward compatibility, the user is explicitly\n // managing destroyed\n\n\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\n\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n}; // Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\n\n\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n}; // Unshift should *always* be something directly out of read()\n\n\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\n\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n } // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n\n\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\n\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n\n maybeReadMore(stream, state);\n}\n\nfunction chunkInvalid(state, chunk) {\n var er;\n\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n\n return er;\n}\n\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n}; // backwards compatibility.\n\n\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder; // If setEncoding(null), decoder.encoding equals utf8\n\n this._readableState.encoding = this._readableState.decoder.encoding; // Iterate over current buffer to convert already stored Buffers:\n\n var p = this._readableState.buffer.head;\n var content = '';\n\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n\n this._readableState.buffer.clear();\n\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n}; // Don't raise the hwm > 1GB\n\n\nvar MAX_HWM = 0x40000000;\n\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n\n return n;\n} // This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\n\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n } // If we're asking for more than the current hwm, then raise the hwm.\n\n\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n; // Don't have enough\n\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n\n return state.length;\n} // you can override either this method, or the async _read(n) below.\n\n\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false; // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n\n n = howMuchToRead(n, state); // if we've ended, and we're now clear, then finish it up.\n\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n } // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n // if we need a readable event, then we need to do some reading.\n\n\n var doRead = state.needReadable;\n debug('need readable', doRead); // if we currently have less than the highWaterMark, then also read some\n\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n } // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n\n\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true; // if the length is currently zero, then we *need* a readable event.\n\n if (state.length === 0) state.needReadable = true; // call internal read method\n\n this._read(state.highWaterMark);\n\n state.sync = false; // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true; // If we tried to read() past the EOF, then emit end on the next tick.\n\n if (nOrig !== n && state.ended) endReadable(this);\n }\n\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\n\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n\n if (state.decoder) {\n var chunk = state.decoder.end();\n\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n\n state.ended = true;\n\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n} // Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\n\n\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\n\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n } // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n\n\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n} // at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\n\n\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\n\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length) // didn't get any data, stop spinning.\n break;\n }\n\n state.readingMore = false;\n} // abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\n\n\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\n\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n\n default:\n state.pipes.push(dest);\n break;\n }\n\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n\n function onend() {\n debug('onend');\n dest.end();\n } // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n\n\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n\n function cleanup() {\n debug('cleanup'); // cleanup event handlers once the pipe is broken\n\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true; // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n\n src.on('data', ondata);\n\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n\n src.pause();\n }\n } // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n\n\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n } // Make sure our error handler is attached before userland ones.\n\n\n prependListener(dest, 'error', onerror); // Both close and finish should trigger unpipe, but only once.\n\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n\n dest.once('close', onclose);\n\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n\n dest.once('finish', onfinish);\n\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n } // tell the dest that it's being piped to\n\n\n dest.emit('pipe', src); // start the flow if it hasn't been started already.\n\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n\n return dest;\n};\n\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\n\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n }; // if we're not piping anywhere, then do nothing.\n\n if (state.pipesCount === 0) return this; // just one destination. most common case.\n\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes; // got a match.\n\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n } // slow case. multiple pipe destinations.\n\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n\n for (var i = 0; i < len; i++) {\n dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n }\n\n return this;\n } // try to find the right one.\n\n\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n}; // set up data events if they are asked for\n// Ensure readable listeners eventually get something\n\n\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0; // Try start flowing on next tick if stream isn't explicitly paused\n\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n\n return res;\n};\n\nReadable.prototype.addListener = Readable.prototype.on;\n\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n\n return res;\n};\n\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true; // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\n\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n} // pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\n\n\nReadable.prototype.resume = function () {\n var state = this._readableState;\n\n if (!state.flowing) {\n debug('resume'); // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n\n state.paused = false;\n return this;\n};\n\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\n\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n\n if (!state.reading) {\n stream.read(0);\n }\n\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\n\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n\n this._readableState.paused = true;\n return this;\n};\n\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n\n while (state.flowing && stream.read() !== null) {\n ;\n }\n} // wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\n\n\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk); // don't skip over falsy values in objectMode\n\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n\n var ret = _this.push(chunk);\n\n if (!ret) {\n paused = true;\n stream.pause();\n }\n }); // proxy all the other methods.\n // important when wrapping filters and duplexes.\n\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n } // proxy certain important events.\n\n\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n } // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n\n\n this._read = function (n) {\n debug('wrapped _read', n);\n\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n\n return this;\n};\n\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n\n return createReadableStreamAsyncIterator(this);\n };\n}\n\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n}); // exposed for testing purposes only.\n\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n}); // Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\n\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\n\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\n\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length); // Check that we didn't get one last unshift.\n\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\n\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n\n return from(Readable, iterable, opts);\n };\n}\n\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n\n return -1;\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// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n'use strict';\n\nmodule.exports = Transform;\n\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\n\nvar Duplex = require('./_stream_duplex');\n\nrequire('inherits')(Transform, Duplex);\n\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null) // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\n\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n }; // start out asking for a readable event once data is transformed.\n\n this._readableState.needReadable = true; // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n\n this._readableState.sync = false;\n\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n } // When the writable side finishes, then flush out anything remaining.\n\n\n this.on('prefinish', prefinish);\n}\n\nfunction prefinish() {\n var _this = this;\n\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\n\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n}; // This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\n\n\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\n\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n}; // Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\n\n\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\n\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\n\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null) // single equals check for both `null` and `undefined`\n stream.push(data); // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\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// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n'use strict';\n\nmodule.exports = PassThrough;\n\nvar Transform = require('./_stream_transform');\n\nrequire('inherits')(PassThrough, Transform);\n\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\n\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n'use strict';\n\nvar eos;\n\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\n\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\n\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\n\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\n\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true; // request.destroy just do .end - .abort is what we want\n\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\n\nfunction call(fn) {\n fn();\n}\n\nfunction pipe(from, to) {\n return from.pipe(to);\n}\n\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\n\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\n\nmodule.exports = pipeline;","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","module.exports={name:\"elliptic\",version:\"6.5.4\",description:\"EC cryptography\",main:\"lib/elliptic.js\",files:[\"lib\"],scripts:{lint:\"eslint lib test\",\"lint:fix\":\"npm run lint -- --fix\",unit:\"istanbul test _mocha --reporter=spec test/index.js\",test:\"npm run lint && npm run unit\",version:\"grunt dist && git add dist/\"},repository:{type:\"git\",url:\"git@github.com:indutny/elliptic\"},keywords:[\"EC\",\"Elliptic\",\"curve\",\"Cryptography\"],author:\"Fedor Indutny \",license:\"MIT\",bugs:{url:\"https://github.com/indutny/elliptic/issues\"},homepage:\"https://github.com/indutny/elliptic\",devDependencies:{brfs:\"^2.0.2\",coveralls:\"^3.1.0\",eslint:\"^7.6.0\",grunt:\"^1.2.1\",\"grunt-browserify\":\"^5.3.0\",\"grunt-cli\":\"^1.3.2\",\"grunt-contrib-connect\":\"^3.0.0\",\"grunt-contrib-copy\":\"^1.0.0\",\"grunt-contrib-uglify\":\"^5.0.0\",\"grunt-mocha-istanbul\":\"^5.0.2\",\"grunt-saucelabs\":\"^9.0.1\",istanbul:\"^0.4.5\",mocha:\"^8.0.1\"},dependencies:{\"bn.js\":\"^4.11.9\",brorand:\"^1.1.0\",\"hash.js\":\"^1.0.0\",\"hmac-drbg\":\"^1.0.1\",inherits:\"^2.0.4\",\"minimalistic-assert\":\"^1.0.1\",\"minimalistic-crypto-utils\":\"^1.0.1\"}};","'use strict';\n\nvar utils = exports;\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg !== 'string') {\n for (var i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n return res;\n }\n if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (var i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n } else {\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n var hi = c >> 8;\n var lo = c & 0xff;\n if (hi)\n res.push(hi, lo);\n else\n res.push(lo);\n }\n }\n return res;\n}\nutils.toArray = toArray;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nutils.zero2 = zero2;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nutils.toHex = toHex;\n\nutils.encode = function encode(arr, enc) {\n if (enc === 'hex')\n return toHex(arr);\n else\n return arr;\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nexports.inherits = inherits;\n\nfunction isSurrogatePair(msg, i) {\n if ((msg.charCodeAt(i) & 0xFC00) !== 0xD800) {\n return false;\n }\n if (i < 0 || i + 1 >= msg.length) {\n return false;\n }\n return (msg.charCodeAt(i + 1) & 0xFC00) === 0xDC00;\n}\n\nfunction toArray(msg, enc) {\n if (Array.isArray(msg))\n return msg.slice();\n if (!msg)\n return [];\n var res = [];\n if (typeof msg === 'string') {\n if (!enc) {\n // Inspired by stringToUtf8ByteArray() in closure-library by Google\n // https://github.com/google/closure-library/blob/8598d87242af59aac233270742c8984e2b2bdbe0/closure/goog/crypt/crypt.js#L117-L143\n // Apache License 2.0\n // https://github.com/google/closure-library/blob/master/LICENSE\n var p = 0;\n for (var i = 0; i < msg.length; i++) {\n var c = msg.charCodeAt(i);\n if (c < 128) {\n res[p++] = c;\n } else if (c < 2048) {\n res[p++] = (c >> 6) | 192;\n res[p++] = (c & 63) | 128;\n } else if (isSurrogatePair(msg, i)) {\n c = 0x10000 + ((c & 0x03FF) << 10) + (msg.charCodeAt(++i) & 0x03FF);\n res[p++] = (c >> 18) | 240;\n res[p++] = ((c >> 12) & 63) | 128;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n } else {\n res[p++] = (c >> 12) | 224;\n res[p++] = ((c >> 6) & 63) | 128;\n res[p++] = (c & 63) | 128;\n }\n }\n } else if (enc === 'hex') {\n msg = msg.replace(/[^a-z0-9]+/ig, '');\n if (msg.length % 2 !== 0)\n msg = '0' + msg;\n for (i = 0; i < msg.length; i += 2)\n res.push(parseInt(msg[i] + msg[i + 1], 16));\n }\n } else {\n for (i = 0; i < msg.length; i++)\n res[i] = msg[i] | 0;\n }\n return res;\n}\nexports.toArray = toArray;\n\nfunction toHex(msg) {\n var res = '';\n for (var i = 0; i < msg.length; i++)\n res += zero2(msg[i].toString(16));\n return res;\n}\nexports.toHex = toHex;\n\nfunction htonl(w) {\n var res = (w >>> 24) |\n ((w >>> 8) & 0xff00) |\n ((w << 8) & 0xff0000) |\n ((w & 0xff) << 24);\n return res >>> 0;\n}\nexports.htonl = htonl;\n\nfunction toHex32(msg, endian) {\n var res = '';\n for (var i = 0; i < msg.length; i++) {\n var w = msg[i];\n if (endian === 'little')\n w = htonl(w);\n res += zero8(w.toString(16));\n }\n return res;\n}\nexports.toHex32 = toHex32;\n\nfunction zero2(word) {\n if (word.length === 1)\n return '0' + word;\n else\n return word;\n}\nexports.zero2 = zero2;\n\nfunction zero8(word) {\n if (word.length === 7)\n return '0' + word;\n else if (word.length === 6)\n return '00' + word;\n else if (word.length === 5)\n return '000' + word;\n else if (word.length === 4)\n return '0000' + word;\n else if (word.length === 3)\n return '00000' + word;\n else if (word.length === 2)\n return '000000' + word;\n else if (word.length === 1)\n return '0000000' + word;\n else\n return word;\n}\nexports.zero8 = zero8;\n\nfunction join32(msg, start, end, endian) {\n var len = end - start;\n assert(len % 4 === 0);\n var res = new Array(len / 4);\n for (var i = 0, k = start; i < res.length; i++, k += 4) {\n var w;\n if (endian === 'big')\n w = (msg[k] << 24) | (msg[k + 1] << 16) | (msg[k + 2] << 8) | msg[k + 3];\n else\n w = (msg[k + 3] << 24) | (msg[k + 2] << 16) | (msg[k + 1] << 8) | msg[k];\n res[i] = w >>> 0;\n }\n return res;\n}\nexports.join32 = join32;\n\nfunction split32(msg, endian) {\n var res = new Array(msg.length * 4);\n for (var i = 0, k = 0; i < msg.length; i++, k += 4) {\n var m = msg[i];\n if (endian === 'big') {\n res[k] = m >>> 24;\n res[k + 1] = (m >>> 16) & 0xff;\n res[k + 2] = (m >>> 8) & 0xff;\n res[k + 3] = m & 0xff;\n } else {\n res[k + 3] = m >>> 24;\n res[k + 2] = (m >>> 16) & 0xff;\n res[k + 1] = (m >>> 8) & 0xff;\n res[k] = m & 0xff;\n }\n }\n return res;\n}\nexports.split32 = split32;\n\nfunction rotr32(w, b) {\n return (w >>> b) | (w << (32 - b));\n}\nexports.rotr32 = rotr32;\n\nfunction rotl32(w, b) {\n return (w << b) | (w >>> (32 - b));\n}\nexports.rotl32 = rotl32;\n\nfunction sum32(a, b) {\n return (a + b) >>> 0;\n}\nexports.sum32 = sum32;\n\nfunction sum32_3(a, b, c) {\n return (a + b + c) >>> 0;\n}\nexports.sum32_3 = sum32_3;\n\nfunction sum32_4(a, b, c, d) {\n return (a + b + c + d) >>> 0;\n}\nexports.sum32_4 = sum32_4;\n\nfunction sum32_5(a, b, c, d, e) {\n return (a + b + c + d + e) >>> 0;\n}\nexports.sum32_5 = sum32_5;\n\nfunction sum64(buf, pos, ah, al) {\n var bh = buf[pos];\n var bl = buf[pos + 1];\n\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n buf[pos] = hi >>> 0;\n buf[pos + 1] = lo;\n}\nexports.sum64 = sum64;\n\nfunction sum64_hi(ah, al, bh, bl) {\n var lo = (al + bl) >>> 0;\n var hi = (lo < al ? 1 : 0) + ah + bh;\n return hi >>> 0;\n}\nexports.sum64_hi = sum64_hi;\n\nfunction sum64_lo(ah, al, bh, bl) {\n var lo = al + bl;\n return lo >>> 0;\n}\nexports.sum64_lo = sum64_lo;\n\nfunction sum64_4_hi(ah, al, bh, bl, ch, cl, dh, dl) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n\n var hi = ah + bh + ch + dh + carry;\n return hi >>> 0;\n}\nexports.sum64_4_hi = sum64_4_hi;\n\nfunction sum64_4_lo(ah, al, bh, bl, ch, cl, dh, dl) {\n var lo = al + bl + cl + dl;\n return lo >>> 0;\n}\nexports.sum64_4_lo = sum64_4_lo;\n\nfunction sum64_5_hi(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var carry = 0;\n var lo = al;\n lo = (lo + bl) >>> 0;\n carry += lo < al ? 1 : 0;\n lo = (lo + cl) >>> 0;\n carry += lo < cl ? 1 : 0;\n lo = (lo + dl) >>> 0;\n carry += lo < dl ? 1 : 0;\n lo = (lo + el) >>> 0;\n carry += lo < el ? 1 : 0;\n\n var hi = ah + bh + ch + dh + eh + carry;\n return hi >>> 0;\n}\nexports.sum64_5_hi = sum64_5_hi;\n\nfunction sum64_5_lo(ah, al, bh, bl, ch, cl, dh, dl, eh, el) {\n var lo = al + bl + cl + dl + el;\n\n return lo >>> 0;\n}\nexports.sum64_5_lo = sum64_5_lo;\n\nfunction rotr64_hi(ah, al, num) {\n var r = (al << (32 - num)) | (ah >>> num);\n return r >>> 0;\n}\nexports.rotr64_hi = rotr64_hi;\n\nfunction rotr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.rotr64_lo = rotr64_lo;\n\nfunction shr64_hi(ah, al, num) {\n return ah >>> num;\n}\nexports.shr64_hi = shr64_hi;\n\nfunction shr64_lo(ah, al, num) {\n var r = (ah << (32 - num)) | (al >>> num);\n return r >>> 0;\n}\nexports.shr64_lo = shr64_lo;\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction BlockHash() {\n this.pending = null;\n this.pendingTotal = 0;\n this.blockSize = this.constructor.blockSize;\n this.outSize = this.constructor.outSize;\n this.hmacStrength = this.constructor.hmacStrength;\n this.padLength = this.constructor.padLength / 8;\n this.endian = 'big';\n\n this._delta8 = this.blockSize / 8;\n this._delta32 = this.blockSize / 32;\n}\nexports.BlockHash = BlockHash;\n\nBlockHash.prototype.update = function update(msg, enc) {\n // Convert message to array, pad it, and join into 32bit blocks\n msg = utils.toArray(msg, enc);\n if (!this.pending)\n this.pending = msg;\n else\n this.pending = this.pending.concat(msg);\n this.pendingTotal += msg.length;\n\n // Enough data, try updating\n if (this.pending.length >= this._delta8) {\n msg = this.pending;\n\n // Process pending data in blocks\n var r = msg.length % this._delta8;\n this.pending = msg.slice(msg.length - r, msg.length);\n if (this.pending.length === 0)\n this.pending = null;\n\n msg = utils.join32(msg, 0, msg.length - r, this.endian);\n for (var i = 0; i < msg.length; i += this._delta32)\n this._update(msg, i, i + this._delta32);\n }\n\n return this;\n};\n\nBlockHash.prototype.digest = function digest(enc) {\n this.update(this._pad());\n assert(this.pending === null);\n\n return this._digest(enc);\n};\n\nBlockHash.prototype._pad = function pad() {\n var len = this.pendingTotal;\n var bytes = this._delta8;\n var k = bytes - ((len + this.padLength) % bytes);\n var res = new Array(k + this.padLength);\n res[0] = 0x80;\n for (var i = 1; i < k; i++)\n res[i] = 0;\n\n // Append length\n len <<= 3;\n if (this.endian === 'big') {\n for (var t = 8; t < this.padLength; t++)\n res[i++] = 0;\n\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = len & 0xff;\n } else {\n res[i++] = len & 0xff;\n res[i++] = (len >>> 8) & 0xff;\n res[i++] = (len >>> 16) & 0xff;\n res[i++] = (len >>> 24) & 0xff;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n res[i++] = 0;\n\n for (t = 8; t < this.padLength; t++)\n res[i++] = 0;\n }\n\n return res;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar rotr32 = utils.rotr32;\n\nfunction ft_1(s, x, y, z) {\n if (s === 0)\n return ch32(x, y, z);\n if (s === 1 || s === 3)\n return p32(x, y, z);\n if (s === 2)\n return maj32(x, y, z);\n}\nexports.ft_1 = ft_1;\n\nfunction ch32(x, y, z) {\n return (x & y) ^ ((~x) & z);\n}\nexports.ch32 = ch32;\n\nfunction maj32(x, y, z) {\n return (x & y) ^ (x & z) ^ (y & z);\n}\nexports.maj32 = maj32;\n\nfunction p32(x, y, z) {\n return x ^ y ^ z;\n}\nexports.p32 = p32;\n\nfunction s0_256(x) {\n return rotr32(x, 2) ^ rotr32(x, 13) ^ rotr32(x, 22);\n}\nexports.s0_256 = s0_256;\n\nfunction s1_256(x) {\n return rotr32(x, 6) ^ rotr32(x, 11) ^ rotr32(x, 25);\n}\nexports.s1_256 = s1_256;\n\nfunction g0_256(x) {\n return rotr32(x, 7) ^ rotr32(x, 18) ^ (x >>> 3);\n}\nexports.g0_256 = g0_256;\n\nfunction g1_256(x) {\n return rotr32(x, 17) ^ rotr32(x, 19) ^ (x >>> 10);\n}\nexports.g1_256 = g1_256;\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_5 = utils.sum32_5;\nvar ft_1 = shaCommon.ft_1;\nvar BlockHash = common.BlockHash;\n\nvar sha1_K = [\n 0x5A827999, 0x6ED9EBA1,\n 0x8F1BBCDC, 0xCA62C1D6\n];\n\nfunction SHA1() {\n if (!(this instanceof SHA1))\n return new SHA1();\n\n BlockHash.call(this);\n this.h = [\n 0x67452301, 0xefcdab89, 0x98badcfe,\n 0x10325476, 0xc3d2e1f0 ];\n this.W = new Array(80);\n}\n\nutils.inherits(SHA1, BlockHash);\nmodule.exports = SHA1;\n\nSHA1.blockSize = 512;\nSHA1.outSize = 160;\nSHA1.hmacStrength = 80;\nSHA1.padLength = 64;\n\nSHA1.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n\n for(; i < W.length; i++)\n W[i] = rotl32(W[i - 3] ^ W[i - 8] ^ W[i - 14] ^ W[i - 16], 1);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n\n for (i = 0; i < W.length; i++) {\n var s = ~~(i / 20);\n var t = sum32_5(rotl32(a, 5), ft_1(s, b, c, d), e, W[i], sha1_K[s]);\n e = d;\n d = c;\n c = rotl32(b, 30);\n b = a;\n a = t;\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n};\n\nSHA1.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar shaCommon = require('./common');\nvar assert = require('minimalistic-assert');\n\nvar sum32 = utils.sum32;\nvar sum32_4 = utils.sum32_4;\nvar sum32_5 = utils.sum32_5;\nvar ch32 = shaCommon.ch32;\nvar maj32 = shaCommon.maj32;\nvar s0_256 = shaCommon.s0_256;\nvar s1_256 = shaCommon.s1_256;\nvar g0_256 = shaCommon.g0_256;\nvar g1_256 = shaCommon.g1_256;\n\nvar BlockHash = common.BlockHash;\n\nvar sha256_K = [\n 0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5,\n 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,\n 0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3,\n 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,\n 0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc,\n 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,\n 0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7,\n 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,\n 0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13,\n 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,\n 0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3,\n 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,\n 0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5,\n 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,\n 0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208,\n 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2\n];\n\nfunction SHA256() {\n if (!(this instanceof SHA256))\n return new SHA256();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,\n 0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19\n ];\n this.k = sha256_K;\n this.W = new Array(64);\n}\nutils.inherits(SHA256, BlockHash);\nmodule.exports = SHA256;\n\nSHA256.blockSize = 512;\nSHA256.outSize = 256;\nSHA256.hmacStrength = 192;\nSHA256.padLength = 64;\n\nSHA256.prototype._update = function _update(msg, start) {\n var W = this.W;\n\n for (var i = 0; i < 16; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i++)\n W[i] = sum32_4(g1_256(W[i - 2]), W[i - 7], g0_256(W[i - 15]), W[i - 16]);\n\n var a = this.h[0];\n var b = this.h[1];\n var c = this.h[2];\n var d = this.h[3];\n var e = this.h[4];\n var f = this.h[5];\n var g = this.h[6];\n var h = this.h[7];\n\n assert(this.k.length === W.length);\n for (i = 0; i < W.length; i++) {\n var T1 = sum32_5(h, s1_256(e), ch32(e, f, g), this.k[i], W[i]);\n var T2 = sum32(s0_256(a), maj32(a, b, c));\n h = g;\n g = f;\n f = e;\n e = sum32(d, T1);\n d = c;\n c = b;\n b = a;\n a = sum32(T1, T2);\n }\n\n this.h[0] = sum32(this.h[0], a);\n this.h[1] = sum32(this.h[1], b);\n this.h[2] = sum32(this.h[2], c);\n this.h[3] = sum32(this.h[3], d);\n this.h[4] = sum32(this.h[4], e);\n this.h[5] = sum32(this.h[5], f);\n this.h[6] = sum32(this.h[6], g);\n this.h[7] = sum32(this.h[7], h);\n};\n\nSHA256.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar SHA256 = require('./256');\n\nfunction SHA224() {\n if (!(this instanceof SHA224))\n return new SHA224();\n\n SHA256.call(this);\n this.h = [\n 0xc1059ed8, 0x367cd507, 0x3070dd17, 0xf70e5939,\n 0xffc00b31, 0x68581511, 0x64f98fa7, 0xbefa4fa4 ];\n}\nutils.inherits(SHA224, SHA256);\nmodule.exports = SHA224;\n\nSHA224.blockSize = 512;\nSHA224.outSize = 224;\nSHA224.hmacStrength = 192;\nSHA224.padLength = 64;\n\nSHA224.prototype._digest = function digest(enc) {\n // Just truncate output\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 7), 'big');\n else\n return utils.split32(this.h.slice(0, 7), 'big');\n};\n\n","'use strict';\n\nvar utils = require('../utils');\nvar common = require('../common');\nvar assert = require('minimalistic-assert');\n\nvar rotr64_hi = utils.rotr64_hi;\nvar rotr64_lo = utils.rotr64_lo;\nvar shr64_hi = utils.shr64_hi;\nvar shr64_lo = utils.shr64_lo;\nvar sum64 = utils.sum64;\nvar sum64_hi = utils.sum64_hi;\nvar sum64_lo = utils.sum64_lo;\nvar sum64_4_hi = utils.sum64_4_hi;\nvar sum64_4_lo = utils.sum64_4_lo;\nvar sum64_5_hi = utils.sum64_5_hi;\nvar sum64_5_lo = utils.sum64_5_lo;\n\nvar BlockHash = common.BlockHash;\n\nvar sha512_K = [\n 0x428a2f98, 0xd728ae22, 0x71374491, 0x23ef65cd,\n 0xb5c0fbcf, 0xec4d3b2f, 0xe9b5dba5, 0x8189dbbc,\n 0x3956c25b, 0xf348b538, 0x59f111f1, 0xb605d019,\n 0x923f82a4, 0xaf194f9b, 0xab1c5ed5, 0xda6d8118,\n 0xd807aa98, 0xa3030242, 0x12835b01, 0x45706fbe,\n 0x243185be, 0x4ee4b28c, 0x550c7dc3, 0xd5ffb4e2,\n 0x72be5d74, 0xf27b896f, 0x80deb1fe, 0x3b1696b1,\n 0x9bdc06a7, 0x25c71235, 0xc19bf174, 0xcf692694,\n 0xe49b69c1, 0x9ef14ad2, 0xefbe4786, 0x384f25e3,\n 0x0fc19dc6, 0x8b8cd5b5, 0x240ca1cc, 0x77ac9c65,\n 0x2de92c6f, 0x592b0275, 0x4a7484aa, 0x6ea6e483,\n 0x5cb0a9dc, 0xbd41fbd4, 0x76f988da, 0x831153b5,\n 0x983e5152, 0xee66dfab, 0xa831c66d, 0x2db43210,\n 0xb00327c8, 0x98fb213f, 0xbf597fc7, 0xbeef0ee4,\n 0xc6e00bf3, 0x3da88fc2, 0xd5a79147, 0x930aa725,\n 0x06ca6351, 0xe003826f, 0x14292967, 0x0a0e6e70,\n 0x27b70a85, 0x46d22ffc, 0x2e1b2138, 0x5c26c926,\n 0x4d2c6dfc, 0x5ac42aed, 0x53380d13, 0x9d95b3df,\n 0x650a7354, 0x8baf63de, 0x766a0abb, 0x3c77b2a8,\n 0x81c2c92e, 0x47edaee6, 0x92722c85, 0x1482353b,\n 0xa2bfe8a1, 0x4cf10364, 0xa81a664b, 0xbc423001,\n 0xc24b8b70, 0xd0f89791, 0xc76c51a3, 0x0654be30,\n 0xd192e819, 0xd6ef5218, 0xd6990624, 0x5565a910,\n 0xf40e3585, 0x5771202a, 0x106aa070, 0x32bbd1b8,\n 0x19a4c116, 0xb8d2d0c8, 0x1e376c08, 0x5141ab53,\n 0x2748774c, 0xdf8eeb99, 0x34b0bcb5, 0xe19b48a8,\n 0x391c0cb3, 0xc5c95a63, 0x4ed8aa4a, 0xe3418acb,\n 0x5b9cca4f, 0x7763e373, 0x682e6ff3, 0xd6b2b8a3,\n 0x748f82ee, 0x5defb2fc, 0x78a5636f, 0x43172f60,\n 0x84c87814, 0xa1f0ab72, 0x8cc70208, 0x1a6439ec,\n 0x90befffa, 0x23631e28, 0xa4506ceb, 0xde82bde9,\n 0xbef9a3f7, 0xb2c67915, 0xc67178f2, 0xe372532b,\n 0xca273ece, 0xea26619c, 0xd186b8c7, 0x21c0c207,\n 0xeada7dd6, 0xcde0eb1e, 0xf57d4f7f, 0xee6ed178,\n 0x06f067aa, 0x72176fba, 0x0a637dc5, 0xa2c898a6,\n 0x113f9804, 0xbef90dae, 0x1b710b35, 0x131c471b,\n 0x28db77f5, 0x23047d84, 0x32caab7b, 0x40c72493,\n 0x3c9ebe0a, 0x15c9bebc, 0x431d67c4, 0x9c100d4c,\n 0x4cc5d4be, 0xcb3e42b6, 0x597f299c, 0xfc657e2a,\n 0x5fcb6fab, 0x3ad6faec, 0x6c44198c, 0x4a475817\n];\n\nfunction SHA512() {\n if (!(this instanceof SHA512))\n return new SHA512();\n\n BlockHash.call(this);\n this.h = [\n 0x6a09e667, 0xf3bcc908,\n 0xbb67ae85, 0x84caa73b,\n 0x3c6ef372, 0xfe94f82b,\n 0xa54ff53a, 0x5f1d36f1,\n 0x510e527f, 0xade682d1,\n 0x9b05688c, 0x2b3e6c1f,\n 0x1f83d9ab, 0xfb41bd6b,\n 0x5be0cd19, 0x137e2179 ];\n this.k = sha512_K;\n this.W = new Array(160);\n}\nutils.inherits(SHA512, BlockHash);\nmodule.exports = SHA512;\n\nSHA512.blockSize = 1024;\nSHA512.outSize = 512;\nSHA512.hmacStrength = 192;\nSHA512.padLength = 128;\n\nSHA512.prototype._prepareBlock = function _prepareBlock(msg, start) {\n var W = this.W;\n\n // 32 x 32bit words\n for (var i = 0; i < 32; i++)\n W[i] = msg[start + i];\n for (; i < W.length; i += 2) {\n var c0_hi = g1_512_hi(W[i - 4], W[i - 3]); // i - 2\n var c0_lo = g1_512_lo(W[i - 4], W[i - 3]);\n var c1_hi = W[i - 14]; // i - 7\n var c1_lo = W[i - 13];\n var c2_hi = g0_512_hi(W[i - 30], W[i - 29]); // i - 15\n var c2_lo = g0_512_lo(W[i - 30], W[i - 29]);\n var c3_hi = W[i - 32]; // i - 16\n var c3_lo = W[i - 31];\n\n W[i] = sum64_4_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n W[i + 1] = sum64_4_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo);\n }\n};\n\nSHA512.prototype._update = function _update(msg, start) {\n this._prepareBlock(msg, start);\n\n var W = this.W;\n\n var ah = this.h[0];\n var al = this.h[1];\n var bh = this.h[2];\n var bl = this.h[3];\n var ch = this.h[4];\n var cl = this.h[5];\n var dh = this.h[6];\n var dl = this.h[7];\n var eh = this.h[8];\n var el = this.h[9];\n var fh = this.h[10];\n var fl = this.h[11];\n var gh = this.h[12];\n var gl = this.h[13];\n var hh = this.h[14];\n var hl = this.h[15];\n\n assert(this.k.length === W.length);\n for (var i = 0; i < W.length; i += 2) {\n var c0_hi = hh;\n var c0_lo = hl;\n var c1_hi = s1_512_hi(eh, el);\n var c1_lo = s1_512_lo(eh, el);\n var c2_hi = ch64_hi(eh, el, fh, fl, gh, gl);\n var c2_lo = ch64_lo(eh, el, fh, fl, gh, gl);\n var c3_hi = this.k[i];\n var c3_lo = this.k[i + 1];\n var c4_hi = W[i];\n var c4_lo = W[i + 1];\n\n var T1_hi = sum64_5_hi(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n var T1_lo = sum64_5_lo(\n c0_hi, c0_lo,\n c1_hi, c1_lo,\n c2_hi, c2_lo,\n c3_hi, c3_lo,\n c4_hi, c4_lo);\n\n c0_hi = s0_512_hi(ah, al);\n c0_lo = s0_512_lo(ah, al);\n c1_hi = maj64_hi(ah, al, bh, bl, ch, cl);\n c1_lo = maj64_lo(ah, al, bh, bl, ch, cl);\n\n var T2_hi = sum64_hi(c0_hi, c0_lo, c1_hi, c1_lo);\n var T2_lo = sum64_lo(c0_hi, c0_lo, c1_hi, c1_lo);\n\n hh = gh;\n hl = gl;\n\n gh = fh;\n gl = fl;\n\n fh = eh;\n fl = el;\n\n eh = sum64_hi(dh, dl, T1_hi, T1_lo);\n el = sum64_lo(dl, dl, T1_hi, T1_lo);\n\n dh = ch;\n dl = cl;\n\n ch = bh;\n cl = bl;\n\n bh = ah;\n bl = al;\n\n ah = sum64_hi(T1_hi, T1_lo, T2_hi, T2_lo);\n al = sum64_lo(T1_hi, T1_lo, T2_hi, T2_lo);\n }\n\n sum64(this.h, 0, ah, al);\n sum64(this.h, 2, bh, bl);\n sum64(this.h, 4, ch, cl);\n sum64(this.h, 6, dh, dl);\n sum64(this.h, 8, eh, el);\n sum64(this.h, 10, fh, fl);\n sum64(this.h, 12, gh, gl);\n sum64(this.h, 14, hh, hl);\n};\n\nSHA512.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'big');\n else\n return utils.split32(this.h, 'big');\n};\n\nfunction ch64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ ((~xh) & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction ch64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ ((~xl) & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_hi(xh, xl, yh, yl, zh) {\n var r = (xh & yh) ^ (xh & zh) ^ (yh & zh);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction maj64_lo(xh, xl, yh, yl, zh, zl) {\n var r = (xl & yl) ^ (xl & zl) ^ (yl & zl);\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 28);\n var c1_hi = rotr64_hi(xl, xh, 2); // 34\n var c2_hi = rotr64_hi(xl, xh, 7); // 39\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 28);\n var c1_lo = rotr64_lo(xl, xh, 2); // 34\n var c2_lo = rotr64_lo(xl, xh, 7); // 39\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 14);\n var c1_hi = rotr64_hi(xh, xl, 18);\n var c2_hi = rotr64_hi(xl, xh, 9); // 41\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction s1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 14);\n var c1_lo = rotr64_lo(xh, xl, 18);\n var c2_lo = rotr64_lo(xl, xh, 9); // 41\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 1);\n var c1_hi = rotr64_hi(xh, xl, 8);\n var c2_hi = shr64_hi(xh, xl, 7);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g0_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 1);\n var c1_lo = rotr64_lo(xh, xl, 8);\n var c2_lo = shr64_lo(xh, xl, 7);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_hi(xh, xl) {\n var c0_hi = rotr64_hi(xh, xl, 19);\n var c1_hi = rotr64_hi(xl, xh, 29); // 61\n var c2_hi = shr64_hi(xh, xl, 6);\n\n var r = c0_hi ^ c1_hi ^ c2_hi;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n\nfunction g1_512_lo(xh, xl) {\n var c0_lo = rotr64_lo(xh, xl, 19);\n var c1_lo = rotr64_lo(xl, xh, 29); // 61\n var c2_lo = shr64_lo(xh, xl, 6);\n\n var r = c0_lo ^ c1_lo ^ c2_lo;\n if (r < 0)\n r += 0x100000000;\n return r;\n}\n","'use strict';\n\nvar utils = require('../utils');\n\nvar SHA512 = require('./512');\n\nfunction SHA384() {\n if (!(this instanceof SHA384))\n return new SHA384();\n\n SHA512.call(this);\n this.h = [\n 0xcbbb9d5d, 0xc1059ed8,\n 0x629a292a, 0x367cd507,\n 0x9159015a, 0x3070dd17,\n 0x152fecd8, 0xf70e5939,\n 0x67332667, 0xffc00b31,\n 0x8eb44a87, 0x68581511,\n 0xdb0c2e0d, 0x64f98fa7,\n 0x47b5481d, 0xbefa4fa4 ];\n}\nutils.inherits(SHA384, SHA512);\nmodule.exports = SHA384;\n\nSHA384.blockSize = 1024;\nSHA384.outSize = 384;\nSHA384.hmacStrength = 192;\nSHA384.padLength = 128;\n\nSHA384.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h.slice(0, 12), 'big');\n else\n return utils.split32(this.h.slice(0, 12), 'big');\n};\n","'use strict';\n\nexports.sha1 = require('./sha/1');\nexports.sha224 = require('./sha/224');\nexports.sha256 = require('./sha/256');\nexports.sha384 = require('./sha/384');\nexports.sha512 = require('./sha/512');\n","'use strict';\n\nvar utils = require('./utils');\nvar common = require('./common');\n\nvar rotl32 = utils.rotl32;\nvar sum32 = utils.sum32;\nvar sum32_3 = utils.sum32_3;\nvar sum32_4 = utils.sum32_4;\nvar BlockHash = common.BlockHash;\n\nfunction RIPEMD160() {\n if (!(this instanceof RIPEMD160))\n return new RIPEMD160();\n\n BlockHash.call(this);\n\n this.h = [ 0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0 ];\n this.endian = 'little';\n}\nutils.inherits(RIPEMD160, BlockHash);\nexports.ripemd160 = RIPEMD160;\n\nRIPEMD160.blockSize = 512;\nRIPEMD160.outSize = 160;\nRIPEMD160.hmacStrength = 192;\nRIPEMD160.padLength = 64;\n\nRIPEMD160.prototype._update = function update(msg, start) {\n var A = this.h[0];\n var B = this.h[1];\n var C = this.h[2];\n var D = this.h[3];\n var E = this.h[4];\n var Ah = A;\n var Bh = B;\n var Ch = C;\n var Dh = D;\n var Eh = E;\n for (var j = 0; j < 80; j++) {\n var T = sum32(\n rotl32(\n sum32_4(A, f(j, B, C, D), msg[r[j] + start], K(j)),\n s[j]),\n E);\n A = E;\n E = D;\n D = rotl32(C, 10);\n C = B;\n B = T;\n T = sum32(\n rotl32(\n sum32_4(Ah, f(79 - j, Bh, Ch, Dh), msg[rh[j] + start], Kh(j)),\n sh[j]),\n Eh);\n Ah = Eh;\n Eh = Dh;\n Dh = rotl32(Ch, 10);\n Ch = Bh;\n Bh = T;\n }\n T = sum32_3(this.h[1], C, Dh);\n this.h[1] = sum32_3(this.h[2], D, Eh);\n this.h[2] = sum32_3(this.h[3], E, Ah);\n this.h[3] = sum32_3(this.h[4], A, Bh);\n this.h[4] = sum32_3(this.h[0], B, Ch);\n this.h[0] = T;\n};\n\nRIPEMD160.prototype._digest = function digest(enc) {\n if (enc === 'hex')\n return utils.toHex32(this.h, 'little');\n else\n return utils.split32(this.h, 'little');\n};\n\nfunction f(j, x, y, z) {\n if (j <= 15)\n return x ^ y ^ z;\n else if (j <= 31)\n return (x & y) | ((~x) & z);\n else if (j <= 47)\n return (x | (~y)) ^ z;\n else if (j <= 63)\n return (x & z) | (y & (~z));\n else\n return x ^ (y | (~z));\n}\n\nfunction K(j) {\n if (j <= 15)\n return 0x00000000;\n else if (j <= 31)\n return 0x5a827999;\n else if (j <= 47)\n return 0x6ed9eba1;\n else if (j <= 63)\n return 0x8f1bbcdc;\n else\n return 0xa953fd4e;\n}\n\nfunction Kh(j) {\n if (j <= 15)\n return 0x50a28be6;\n else if (j <= 31)\n return 0x5c4dd124;\n else if (j <= 47)\n return 0x6d703ef3;\n else if (j <= 63)\n return 0x7a6d76e9;\n else\n return 0x00000000;\n}\n\nvar r = [\n 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15,\n 7, 4, 13, 1, 10, 6, 15, 3, 12, 0, 9, 5, 2, 14, 11, 8,\n 3, 10, 14, 4, 9, 15, 8, 1, 2, 7, 0, 6, 13, 11, 5, 12,\n 1, 9, 11, 10, 0, 8, 12, 4, 13, 3, 7, 15, 14, 5, 6, 2,\n 4, 0, 5, 9, 7, 12, 2, 10, 14, 1, 3, 8, 11, 6, 15, 13\n];\n\nvar rh = [\n 5, 14, 7, 0, 9, 2, 11, 4, 13, 6, 15, 8, 1, 10, 3, 12,\n 6, 11, 3, 7, 0, 13, 5, 10, 14, 15, 8, 12, 4, 9, 1, 2,\n 15, 5, 1, 3, 7, 14, 6, 9, 11, 8, 12, 2, 10, 0, 4, 13,\n 8, 6, 4, 1, 3, 11, 15, 0, 5, 12, 2, 13, 9, 7, 10, 14,\n 12, 15, 10, 4, 1, 5, 8, 7, 6, 2, 13, 14, 0, 3, 9, 11\n];\n\nvar s = [\n 11, 14, 15, 12, 5, 8, 7, 9, 11, 13, 14, 15, 6, 7, 9, 8,\n 7, 6, 8, 13, 11, 9, 7, 15, 7, 12, 15, 9, 11, 7, 13, 12,\n 11, 13, 6, 7, 14, 9, 13, 15, 14, 8, 13, 6, 5, 12, 7, 5,\n 11, 12, 14, 15, 14, 15, 9, 8, 9, 14, 5, 6, 8, 6, 5, 12,\n 9, 15, 5, 11, 6, 8, 13, 12, 5, 12, 13, 14, 11, 8, 5, 6\n];\n\nvar sh = [\n 8, 9, 9, 11, 13, 15, 15, 5, 7, 7, 8, 11, 14, 14, 12, 6,\n 9, 13, 15, 7, 12, 8, 9, 11, 7, 7, 12, 7, 6, 15, 13, 11,\n 9, 7, 15, 11, 8, 6, 6, 14, 12, 13, 5, 14, 13, 13, 7, 5,\n 15, 5, 8, 11, 14, 14, 6, 14, 6, 9, 12, 9, 12, 5, 15, 8,\n 8, 5, 12, 9, 12, 5, 14, 6, 8, 13, 6, 5, 15, 13, 11, 11\n];\n","'use strict';\n\nvar utils = require('./utils');\nvar assert = require('minimalistic-assert');\n\nfunction Hmac(hash, key, enc) {\n if (!(this instanceof Hmac))\n return new Hmac(hash, key, enc);\n this.Hash = hash;\n this.blockSize = hash.blockSize / 8;\n this.outSize = hash.outSize / 8;\n this.inner = null;\n this.outer = null;\n\n this._init(utils.toArray(key, enc));\n}\nmodule.exports = Hmac;\n\nHmac.prototype._init = function init(key) {\n // Shorten key, if needed\n if (key.length > this.blockSize)\n key = new this.Hash().update(key).digest();\n assert(key.length <= this.blockSize);\n\n // Add padding to key\n for (var i = key.length; i < this.blockSize; i++)\n key.push(0);\n\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x36;\n this.inner = new this.Hash().update(key);\n\n // 0x36 ^ 0x5c = 0x6a\n for (i = 0; i < key.length; i++)\n key[i] ^= 0x6a;\n this.outer = new this.Hash().update(key);\n};\n\nHmac.prototype.update = function update(msg, enc) {\n this.inner.update(msg, enc);\n return this;\n};\n\nHmac.prototype.digest = function digest(enc) {\n this.outer.update(this.inner.digest());\n return this.outer.digest(enc);\n};\n","var hash = exports;\n\nhash.utils = require('./hash/utils');\nhash.common = require('./hash/common');\nhash.sha = require('./hash/sha');\nhash.ripemd = require('./hash/ripemd');\nhash.hmac = require('./hash/hmac');\n\n// Proxy hash functions to the main object\nhash.sha1 = hash.sha.sha1;\nhash.sha256 = hash.sha.sha256;\nhash.sha224 = hash.sha.sha224;\nhash.sha384 = hash.sha.sha384;\nhash.sha512 = hash.sha.sha512;\nhash.ripemd160 = hash.ripemd.ripemd160;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar hash = require('hash.js');\nvar utils = require('minimalistic-crypto-utils');\nvar assert = require('minimalistic-assert');\n\nfunction HmacDRBG(options) {\n if (!(this instanceof HmacDRBG))\n return new HmacDRBG(options);\n this.hash = options.hash;\n this.predResist = !!options.predResist;\n\n this.outLen = this.hash.outSize;\n this.minEntropy = options.minEntropy || this.hash.hmacStrength;\n\n this._reseed = null;\n this.reseedInterval = null;\n this.K = null;\n this.V = null;\n\n var entropy = utils.toArray(options.entropy, options.entropyEnc || 'hex');\n var nonce = utils.toArray(options.nonce, options.nonceEnc || 'hex');\n var pers = utils.toArray(options.pers, options.persEnc || 'hex');\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n this._init(entropy, nonce, pers);\n}\nmodule.exports = HmacDRBG;\n\nHmacDRBG.prototype._init = function init(entropy, nonce, pers) {\n var seed = entropy.concat(nonce).concat(pers);\n\n this.K = new Array(this.outLen / 8);\n this.V = new Array(this.outLen / 8);\n for (var i = 0; i < this.V.length; i++) {\n this.K[i] = 0x00;\n this.V[i] = 0x01;\n }\n\n this._update(seed);\n this._reseed = 1;\n this.reseedInterval = 0x1000000000000; // 2^48\n};\n\nHmacDRBG.prototype._hmac = function hmac() {\n return new hash.hmac(this.hash, this.K);\n};\n\nHmacDRBG.prototype._update = function update(seed) {\n var kmac = this._hmac()\n .update(this.V)\n .update([ 0x00 ]);\n if (seed)\n kmac = kmac.update(seed);\n this.K = kmac.digest();\n this.V = this._hmac().update(this.V).digest();\n if (!seed)\n return;\n\n this.K = this._hmac()\n .update(this.V)\n .update([ 0x01 ])\n .update(seed)\n .digest();\n this.V = this._hmac().update(this.V).digest();\n};\n\nHmacDRBG.prototype.reseed = function reseed(entropy, entropyEnc, add, addEnc) {\n // Optional entropy enc\n if (typeof entropyEnc !== 'string') {\n addEnc = add;\n add = entropyEnc;\n entropyEnc = null;\n }\n\n entropy = utils.toArray(entropy, entropyEnc);\n add = utils.toArray(add, addEnc);\n\n assert(entropy.length >= (this.minEntropy / 8),\n 'Not enough entropy. Minimum is: ' + this.minEntropy + ' bits');\n\n this._update(entropy.concat(add || []));\n this._reseed = 1;\n};\n\nHmacDRBG.prototype.generate = function generate(len, enc, add, addEnc) {\n if (this._reseed > this.reseedInterval)\n throw new Error('Reseed is required');\n\n // Optional encoding\n if (typeof enc !== 'string') {\n addEnc = add;\n add = enc;\n enc = null;\n }\n\n // Optional additional data\n if (add) {\n add = utils.toArray(add, addEnc || 'hex');\n this._update(add);\n }\n\n var temp = [];\n while (temp.length < len) {\n this.V = this._hmac().update(this.V).digest();\n temp = temp.concat(this.V);\n }\n\n var res = temp.slice(0, len);\n this._update(add);\n this._reseed++;\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","/* eslint-disable node/no-deprecated-api */\n\n'use strict'\n\nvar buffer = require('buffer')\nvar Buffer = buffer.Buffer\n\nvar safer = {}\n\nvar key\n\nfor (key in buffer) {\n if (!buffer.hasOwnProperty(key)) continue\n if (key === 'SlowBuffer' || key === 'Buffer') continue\n safer[key] = buffer[key]\n}\n\nvar Safer = safer.Buffer = {}\nfor (key in Buffer) {\n if (!Buffer.hasOwnProperty(key)) continue\n if (key === 'allocUnsafe' || key === 'allocUnsafeSlow') continue\n Safer[key] = Buffer[key]\n}\n\nsafer.Buffer.prototype = Buffer.prototype\n\nif (!Safer.from || Safer.from === Uint8Array.from) {\n Safer.from = function (value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('The \"value\" argument must not be of type number. Received type ' + typeof value)\n }\n if (value && typeof value.length === 'undefined') {\n throw new TypeError('The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type ' + typeof value)\n }\n return Buffer(value, encodingOrOffset, length)\n }\n}\n\nif (!Safer.alloc) {\n Safer.alloc = function (size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new TypeError('The \"size\" argument must be of type number. Received type ' + typeof size)\n }\n if (size < 0 || size >= 2 * (1 << 30)) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n var buf = Buffer(size)\n if (!fill || fill.length === 0) {\n buf.fill(0)\n } else if (typeof encoding === 'string') {\n buf.fill(fill, encoding)\n } else {\n buf.fill(fill)\n }\n return buf\n }\n}\n\nif (!safer.kStringMaxLength) {\n try {\n safer.kStringMaxLength = process.binding('buffer').kStringMaxLength\n } catch (e) {\n // we can't determine kStringMaxLength in environments where process.binding\n // is unsupported, so let's not set it\n }\n}\n\nif (!safer.constants) {\n safer.constants = {\n MAX_LENGTH: safer.kMaxLength\n }\n if (safer.kStringMaxLength) {\n safer.constants.MAX_STRING_LENGTH = safer.kStringMaxLength\n }\n}\n\nmodule.exports = safer\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n const buf = DEREncoder.prototype.encode.call(this, data);\n\n const p = buf.toString('base64');\n const out = [ '-----BEGIN ' + options.label + '-----' ];\n for (let i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\n\nconst DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n const lines = data.toString().split(/[\\r\\n]+/g);\n\n const label = options.label.toUpperCase();\n\n const re = /^-----(BEGIN|END) ([^-]+)-----$/;\n let start = -1;\n let end = -1;\n for (let i = 0; i < lines.length; i++) {\n const match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n const base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9+/=]+/gi, '');\n\n const input = Buffer.from(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst encoders = require('./encoders');\nconst decoders = require('./decoders');\nconst inherits = require('inherits');\n\nconst api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n const name = this.name;\n\n function Generated(entity) {\n this._initNamed(entity, name);\n }\n inherits(Generated, Base);\n Generated.prototype._initNamed = function _initNamed(entity, name) {\n Base.call(this, entity, name);\n };\n\n return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","'use strict';\n\nconst base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","'use strict';\n\nconst constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","// from https://github.com/Rantanen/node-dtls/blob/25a7dc861bda38cfeac93a723500eea4f0ac2e86/Certificate.js\n// thanks to @Rantanen\n\n'use strict'\n\nvar asn = require('asn1.js')\n\nvar Time = asn.define('Time', function () {\n this.choice({\n utcTime: this.utctime(),\n generalTime: this.gentime()\n })\n})\n\nvar AttributeTypeValue = asn.define('AttributeTypeValue', function () {\n this.seq().obj(\n this.key('type').objid(),\n this.key('value').any()\n )\n})\n\nvar AlgorithmIdentifier = asn.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('parameters').optional(),\n this.key('curve').objid().optional()\n )\n})\n\nvar SubjectPublicKeyInfo = asn.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\n\nvar RelativeDistinguishedName = asn.define('RelativeDistinguishedName', function () {\n this.setof(AttributeTypeValue)\n})\n\nvar RDNSequence = asn.define('RDNSequence', function () {\n this.seqof(RelativeDistinguishedName)\n})\n\nvar Name = asn.define('Name', function () {\n this.choice({\n rdnSequence: this.use(RDNSequence)\n })\n})\n\nvar Validity = asn.define('Validity', function () {\n this.seq().obj(\n this.key('notBefore').use(Time),\n this.key('notAfter').use(Time)\n )\n})\n\nvar Extension = asn.define('Extension', function () {\n this.seq().obj(\n this.key('extnID').objid(),\n this.key('critical').bool().def(false),\n this.key('extnValue').octstr()\n )\n})\n\nvar TBSCertificate = asn.define('TBSCertificate', function () {\n this.seq().obj(\n this.key('version').explicit(0).int().optional(),\n this.key('serialNumber').int(),\n this.key('signature').use(AlgorithmIdentifier),\n this.key('issuer').use(Name),\n this.key('validity').use(Validity),\n this.key('subject').use(Name),\n this.key('subjectPublicKeyInfo').use(SubjectPublicKeyInfo),\n this.key('issuerUniqueID').implicit(1).bitstr().optional(),\n this.key('subjectUniqueID').implicit(2).bitstr().optional(),\n this.key('extensions').explicit(3).seqof(Extension).optional()\n )\n})\n\nvar X509Certificate = asn.define('X509Certificate', function () {\n this.seq().obj(\n this.key('tbsCertificate').use(TBSCertificate),\n this.key('signatureAlgorithm').use(AlgorithmIdentifier),\n this.key('signatureValue').bitstr()\n )\n})\n\nmodule.exports = X509Certificate\n","// from https://github.com/indutny/self-signed/blob/gh-pages/lib/asn1.js\n// Fedor, you are amazing.\n'use strict'\n\nvar asn1 = require('asn1.js')\n\nexports.certificate = require('./certificate')\n\nvar RSAPrivateKey = asn1.define('RSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('modulus').int(),\n this.key('publicExponent').int(),\n this.key('privateExponent').int(),\n this.key('prime1').int(),\n this.key('prime2').int(),\n this.key('exponent1').int(),\n this.key('exponent2').int(),\n this.key('coefficient').int()\n )\n})\nexports.RSAPrivateKey = RSAPrivateKey\n\nvar RSAPublicKey = asn1.define('RSAPublicKey', function () {\n this.seq().obj(\n this.key('modulus').int(),\n this.key('publicExponent').int()\n )\n})\nexports.RSAPublicKey = RSAPublicKey\n\nvar PublicKey = asn1.define('SubjectPublicKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPublicKey').bitstr()\n )\n})\nexports.PublicKey = PublicKey\n\nvar AlgorithmIdentifier = asn1.define('AlgorithmIdentifier', function () {\n this.seq().obj(\n this.key('algorithm').objid(),\n this.key('none').null_().optional(),\n this.key('curve').objid().optional(),\n this.key('params').seq().obj(\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int()\n ).optional()\n )\n})\n\nvar PrivateKeyInfo = asn1.define('PrivateKeyInfo', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('algorithm').use(AlgorithmIdentifier),\n this.key('subjectPrivateKey').octstr()\n )\n})\nexports.PrivateKey = PrivateKeyInfo\nvar EncryptedPrivateKeyInfo = asn1.define('EncryptedPrivateKeyInfo', function () {\n this.seq().obj(\n this.key('algorithm').seq().obj(\n this.key('id').objid(),\n this.key('decrypt').seq().obj(\n this.key('kde').seq().obj(\n this.key('id').objid(),\n this.key('kdeparams').seq().obj(\n this.key('salt').octstr(),\n this.key('iters').int()\n )\n ),\n this.key('cipher').seq().obj(\n this.key('algo').objid(),\n this.key('iv').octstr()\n )\n )\n ),\n this.key('subjectPrivateKey').octstr()\n )\n})\n\nexports.EncryptedPrivateKey = EncryptedPrivateKeyInfo\n\nvar DSAPrivateKey = asn1.define('DSAPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('p').int(),\n this.key('q').int(),\n this.key('g').int(),\n this.key('pub_key').int(),\n this.key('priv_key').int()\n )\n})\nexports.DSAPrivateKey = DSAPrivateKey\n\nexports.DSAparam = asn1.define('DSAparam', function () {\n this.int()\n})\n\nvar ECPrivateKey = asn1.define('ECPrivateKey', function () {\n this.seq().obj(\n this.key('version').int(),\n this.key('privateKey').octstr(),\n this.key('parameters').optional().explicit(0).use(ECParameters),\n this.key('publicKey').optional().explicit(1).bitstr()\n )\n})\nexports.ECPrivateKey = ECPrivateKey\n\nvar ECParameters = asn1.define('ECParameters', function () {\n this.choice({\n namedCurve: this.objid()\n })\n})\n\nexports.signature = asn1.define('signature', function () {\n this.seq().obj(\n this.key('r').int(),\n this.key('s').int()\n )\n})\n","module.exports={\"2.16.840.1.101.3.4.1.1\":\"aes-128-ecb\",\"2.16.840.1.101.3.4.1.2\":\"aes-128-cbc\",\"2.16.840.1.101.3.4.1.3\":\"aes-128-ofb\",\"2.16.840.1.101.3.4.1.4\":\"aes-128-cfb\",\"2.16.840.1.101.3.4.1.21\":\"aes-192-ecb\",\"2.16.840.1.101.3.4.1.22\":\"aes-192-cbc\",\"2.16.840.1.101.3.4.1.23\":\"aes-192-ofb\",\"2.16.840.1.101.3.4.1.24\":\"aes-192-cfb\",\"2.16.840.1.101.3.4.1.41\":\"aes-256-ecb\",\"2.16.840.1.101.3.4.1.42\":\"aes-256-cbc\",\"2.16.840.1.101.3.4.1.43\":\"aes-256-ofb\",\"2.16.840.1.101.3.4.1.44\":\"aes-256-cfb\"};","// adapted from https://github.com/apatil/pemstrip\nvar findProc = /Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m\nvar startRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m\nvar fullRegex = /^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m\nvar evp = require('evp_bytestokey')\nvar ciphers = require('browserify-aes')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = function (okey, password) {\n var key = okey.toString()\n var match = key.match(findProc)\n var decrypted\n if (!match) {\n var match2 = key.match(fullRegex)\n decrypted = Buffer.from(match2[2].replace(/[\\r\\n]/g, ''), 'base64')\n } else {\n var suite = 'aes' + match[1]\n var iv = Buffer.from(match[2], 'hex')\n var cipherText = Buffer.from(match[3].replace(/[\\r\\n]/g, ''), 'base64')\n var cipherKey = evp(password, iv.slice(0, 8), parseInt(match[1], 10)).key\n var out = []\n var cipher = ciphers.createDecipheriv(suite, cipherKey, iv)\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n decrypted = Buffer.concat(out)\n }\n var tag = key.match(startRegex)[1]\n return {\n tag: tag,\n data: decrypted\n }\n}\n","var asn1 = require('./asn1')\nvar aesid = require('./aesid.json')\nvar fixProc = require('./fixProc')\nvar ciphers = require('browserify-aes')\nvar compat = require('pbkdf2')\nvar Buffer = require('safe-buffer').Buffer\nmodule.exports = parseKeys\n\nfunction parseKeys (buffer) {\n var password\n if (typeof buffer === 'object' && !Buffer.isBuffer(buffer)) {\n password = buffer.passphrase\n buffer = buffer.key\n }\n if (typeof buffer === 'string') {\n buffer = Buffer.from(buffer)\n }\n\n var stripped = fixProc(buffer, password)\n\n var type = stripped.tag\n var data = stripped.data\n var subtype, ndata\n switch (type) {\n case 'CERTIFICATE':\n ndata = asn1.certificate.decode(data, 'der').tbsCertificate.subjectPublicKeyInfo\n // falls through\n case 'PUBLIC KEY':\n if (!ndata) {\n ndata = asn1.PublicKey.decode(data, 'der')\n }\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data, 'der')\n case '1.2.840.10045.2.1':\n ndata.subjectPrivateKey = ndata.subjectPublicKey\n return {\n type: 'ec',\n data: ndata\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.pub_key = asn1.DSAparam.decode(ndata.subjectPublicKey.data, 'der')\n return {\n type: 'dsa',\n data: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'ENCRYPTED PRIVATE KEY':\n data = asn1.EncryptedPrivateKey.decode(data, 'der')\n data = decrypt(data, password)\n // falls through\n case 'PRIVATE KEY':\n ndata = asn1.PrivateKey.decode(data, 'der')\n subtype = ndata.algorithm.algorithm.join('.')\n switch (subtype) {\n case '1.2.840.113549.1.1.1':\n return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey, 'der')\n case '1.2.840.10045.2.1':\n return {\n curve: ndata.algorithm.curve,\n privateKey: asn1.ECPrivateKey.decode(ndata.subjectPrivateKey, 'der').privateKey\n }\n case '1.2.840.10040.4.1':\n ndata.algorithm.params.priv_key = asn1.DSAparam.decode(ndata.subjectPrivateKey, 'der')\n return {\n type: 'dsa',\n params: ndata.algorithm.params\n }\n default: throw new Error('unknown key id ' + subtype)\n }\n // throw new Error('unknown key type ' + type)\n case 'RSA PUBLIC KEY':\n return asn1.RSAPublicKey.decode(data, 'der')\n case 'RSA PRIVATE KEY':\n return asn1.RSAPrivateKey.decode(data, 'der')\n case 'DSA PRIVATE KEY':\n return {\n type: 'dsa',\n params: asn1.DSAPrivateKey.decode(data, 'der')\n }\n case 'EC PRIVATE KEY':\n data = asn1.ECPrivateKey.decode(data, 'der')\n return {\n curve: data.parameters.value,\n privateKey: data.privateKey\n }\n default: throw new Error('unknown key type ' + type)\n }\n}\nparseKeys.signature = asn1.signature\nfunction decrypt (data, password) {\n var salt = data.algorithm.decrypt.kde.kdeparams.salt\n var iters = parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(), 10)\n var algo = aesid[data.algorithm.decrypt.cipher.algo.join('.')]\n var iv = data.algorithm.decrypt.cipher.iv\n var cipherText = data.subjectPrivateKey\n var keylen = parseInt(algo.split('-')[1], 10) / 8\n var key = compat.pbkdf2Sync(password, salt, iters, keylen, 'sha1')\n var cipher = ciphers.createDecipheriv(algo, key, iv)\n var out = []\n out.push(cipher.update(cipherText))\n out.push(cipher.final())\n return Buffer.concat(out)\n}\n","module.exports={\"1.3.132.0.10\":\"secp256k1\",\"1.3.132.0.33\":\"p224\",\"1.2.840.10045.3.1.1\":\"p192\",\"1.2.840.10045.3.1.7\":\"p256\",\"1.3.132.0.34\":\"p384\",\"1.3.132.0.35\":\"p521\"};","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","var elliptic = require('elliptic')\nvar BN = require('bn.js')\n\nmodule.exports = function createECDH (curve) {\n return new ECDH(curve)\n}\n\nvar aliases = {\n secp256k1: {\n name: 'secp256k1',\n byteLength: 32\n },\n secp224r1: {\n name: 'p224',\n byteLength: 28\n },\n prime256v1: {\n name: 'p256',\n byteLength: 32\n },\n prime192v1: {\n name: 'p192',\n byteLength: 24\n },\n ed25519: {\n name: 'ed25519',\n byteLength: 32\n },\n secp384r1: {\n name: 'p384',\n byteLength: 48\n },\n secp521r1: {\n name: 'p521',\n byteLength: 66\n }\n}\n\naliases.p224 = aliases.secp224r1\naliases.p256 = aliases.secp256r1 = aliases.prime256v1\naliases.p192 = aliases.secp192r1 = aliases.prime192v1\naliases.p384 = aliases.secp384r1\naliases.p521 = aliases.secp521r1\n\nfunction ECDH (curve) {\n this.curveType = aliases[curve]\n if (!this.curveType) {\n this.curveType = {\n name: curve\n }\n }\n this.curve = new elliptic.ec(this.curveType.name) // eslint-disable-line new-cap\n this.keys = void 0\n}\n\nECDH.prototype.generateKeys = function (enc, format) {\n this.keys = this.curve.genKeyPair()\n return this.getPublicKey(enc, format)\n}\n\nECDH.prototype.computeSecret = function (other, inenc, enc) {\n inenc = inenc || 'utf8'\n if (!Buffer.isBuffer(other)) {\n other = new Buffer(other, inenc)\n }\n var otherPub = this.curve.keyFromPublic(other).getPublic()\n var out = otherPub.mul(this.keys.getPrivate()).getX()\n return formatReturnValue(out, enc, this.curveType.byteLength)\n}\n\nECDH.prototype.getPublicKey = function (enc, format) {\n var key = this.keys.getPublic(format === 'compressed', true)\n if (format === 'hybrid') {\n if (key[key.length - 1] % 2) {\n key[0] = 7\n } else {\n key[0] = 6\n }\n }\n return formatReturnValue(key, enc)\n}\n\nECDH.prototype.getPrivateKey = function (enc) {\n return formatReturnValue(this.keys.getPrivate(), enc)\n}\n\nECDH.prototype.setPublicKey = function (pub, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc)\n }\n this.keys._importPublic(pub)\n return this\n}\n\nECDH.prototype.setPrivateKey = function (priv, enc) {\n enc = enc || 'utf8'\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc)\n }\n\n var _priv = new BN(priv)\n _priv = _priv.toString(16)\n this.keys = this.curve.genKeyPair()\n this.keys._importPrivate(_priv)\n return this\n}\n\nfunction formatReturnValue (bn, enc, len) {\n if (!Array.isArray(bn)) {\n bn = bn.toArray()\n }\n var buf = new Buffer(bn)\n if (len && buf.length < len) {\n var zeros = new Buffer(len - buf.length)\n zeros.fill(0)\n buf = Buffer.concat([zeros, buf])\n }\n if (!enc) {\n return buf\n } else {\n return buf.toString(enc)\n }\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","import { Distribution } from \"../types\";\nimport { sliceArray } from \"../utils/sliceArray\";\nimport { integer } from \"./integer\";\n\n/**\n * Returns a Distribution to random value within the provided `source`\n * within the sliced bounds of `begin` and `end`.\n * @param source an array of items to pick from\n * @param begin the beginning slice index (defaults to `0`)\n * @param end the ending slice index (defaults to `source.length`)\n */\nexport function picker(\n source: ArrayLike,\n begin?: number,\n end?: number\n): Distribution {\n const clone = sliceArray.call(source, begin, end);\n if (clone.length === 0) {\n throw new RangeError(`Cannot pick from a source with no items`);\n }\n const distribution = integer(0, clone.length - 1);\n return engine => clone[distribution(engine)];\n}\n","export const SMALLEST_UNSAFE_INTEGER = 0x20000000000000;\nexport const LARGEST_SAFE_INTEGER = SMALLEST_UNSAFE_INTEGER - 1;\nexport const UINT32_MAX = -1 >>> 0;\nexport const UINT32_SIZE = UINT32_MAX + 1;\nexport const INT32_SIZE = UINT32_SIZE / 2;\nexport const INT32_MAX = INT32_SIZE - 1;\nexport const UINT21_SIZE = 1 << 21;\nexport const UINT21_MAX = UINT21_SIZE - 1;\n","import { Engine } from \"../types\";\n\n/**\n * Returns a value within [-0x80000000, 0x7fffffff]\n */\nexport function int32(engine: Engine): number {\n return engine.next() | 0;\n}\n","import { Distribution } from \"../types\";\n\nexport function add(distribution: Distribution, addend: number): Distribution {\n if (addend === 0) {\n return distribution;\n } else {\n return engine => distribution(engine) + addend;\n }\n}\n","import { Engine } from \"../types\";\nimport {\n SMALLEST_UNSAFE_INTEGER,\n UINT21_MAX,\n UINT21_SIZE,\n UINT32_SIZE\n} from \"../utils/constants\";\n\n/**\n * Returns a value within [-0x20000000000000, 0x1fffffffffffff]\n */\nexport function int53(engine: Engine): number {\n const high = engine.next() | 0;\n const low = engine.next() >>> 0;\n return (\n (high & UINT21_MAX) * UINT32_SIZE +\n low +\n (high & UINT21_SIZE ? -SMALLEST_UNSAFE_INTEGER : 0)\n );\n}\n","import { Engine } from \"../types\";\nimport {\n SMALLEST_UNSAFE_INTEGER,\n UINT21_MAX,\n UINT21_SIZE,\n UINT32_SIZE\n} from \"../utils/constants\";\n\n/**\n * Returns a value within [-0x20000000000000, 0x20000000000000]\n */\nexport function int53Full(engine: Engine): number {\n while (true) {\n const high = engine.next() | 0;\n if (high & 0x400000) {\n if ((high & 0x7fffff) === 0x400000 && (engine.next() | 0) === 0) {\n return SMALLEST_UNSAFE_INTEGER;\n }\n } else {\n const low = engine.next() >>> 0;\n return (\n (high & UINT21_MAX) * UINT32_SIZE +\n low +\n (high & UINT21_SIZE ? -SMALLEST_UNSAFE_INTEGER : 0)\n );\n }\n }\n}\n","import { Engine } from \"../types\";\n\n/**\n * Returns a value within [0, 0xffffffff]\n */\nexport function uint32(engine: Engine): number {\n return engine.next() >>> 0;\n}\n","import { Engine } from \"../types\";\nimport { UINT21_MAX, UINT32_SIZE } from \"../utils/constants\";\n\n/**\n * Returns a value within [0, 0x1fffffffffffff]\n */\nexport function uint53(engine: Engine): number {\n const high = engine.next() & UINT21_MAX;\n const low = engine.next() >>> 0;\n return high * UINT32_SIZE + low;\n}\n","import { Engine } from \"../types\";\nimport {\n SMALLEST_UNSAFE_INTEGER,\n UINT21_MAX,\n UINT21_SIZE,\n UINT32_SIZE\n} from \"../utils/constants\";\n\n/**\n * Returns a value within [0, 0x20000000000000]\n */\nexport function uint53Full(engine: Engine): number {\n while (true) {\n const high = engine.next() | 0;\n if (high & UINT21_SIZE) {\n if ((high & UINT21_MAX) === 0 && (engine.next() | 0) === 0) {\n return SMALLEST_UNSAFE_INTEGER;\n }\n } else {\n const low = engine.next() >>> 0;\n return (high & UINT21_MAX) * UINT32_SIZE + low;\n }\n }\n}\n","import { Distribution, Engine } from \"../types\";\nimport { add } from \"../utils/add\";\nimport {\n INT32_SIZE,\n LARGEST_SAFE_INTEGER,\n SMALLEST_UNSAFE_INTEGER,\n UINT21_MAX,\n UINT21_SIZE,\n UINT32_MAX,\n UINT32_SIZE\n} from \"../utils/constants\";\nimport { int32 } from \"./int32\";\nimport { int53 } from \"./int53\";\nimport { int53Full } from \"./int53Full\";\nimport { uint32 } from \"./uint32\";\nimport { uint53 } from \"./uint53\";\nimport { uint53Full } from \"./uint53Full\";\n\nfunction isPowerOfTwoMinusOne(value: number): boolean {\n return ((value + 1) & value) === 0;\n}\n\nfunction bitmask(masking: number): Distribution {\n return (engine: Engine) => engine.next() & masking;\n}\n\nfunction downscaleToLoopCheckedRange(range: number): Distribution {\n const extendedRange = range + 1;\n const maximum = extendedRange * Math.floor(UINT32_SIZE / extendedRange);\n return engine => {\n let value = 0;\n do {\n value = engine.next() >>> 0;\n } while (value >= maximum);\n return value % extendedRange;\n };\n}\n\nfunction downscaleToRange(range: number): Distribution {\n if (isPowerOfTwoMinusOne(range)) {\n return bitmask(range);\n } else {\n return downscaleToLoopCheckedRange(range);\n }\n}\n\nfunction isEvenlyDivisibleByMaxInt32(value: number): boolean {\n return (value | 0) === 0;\n}\n\nfunction upscaleWithHighMasking(masking: number): Distribution {\n return engine => {\n const high = engine.next() & masking;\n const low = engine.next() >>> 0;\n return high * UINT32_SIZE + low;\n };\n}\n\nfunction upscaleToLoopCheckedRange(extendedRange: number): Distribution {\n const maximum =\n extendedRange * Math.floor(SMALLEST_UNSAFE_INTEGER / extendedRange);\n return engine => {\n let ret = 0;\n do {\n const high = engine.next() & UINT21_MAX;\n const low = engine.next() >>> 0;\n ret = high * UINT32_SIZE + low;\n } while (ret >= maximum);\n return ret % extendedRange;\n };\n}\n\nfunction upscaleWithinU53(range: number): Distribution {\n const extendedRange = range + 1;\n if (isEvenlyDivisibleByMaxInt32(extendedRange)) {\n const highRange = ((extendedRange / UINT32_SIZE) | 0) - 1;\n if (isPowerOfTwoMinusOne(highRange)) {\n return upscaleWithHighMasking(highRange);\n }\n }\n return upscaleToLoopCheckedRange(extendedRange);\n}\n\nfunction upscaleWithinI53AndLoopCheck(min: number, max: number): Distribution {\n return engine => {\n let ret = 0;\n do {\n const high = engine.next() | 0;\n const low = engine.next() >>> 0;\n ret =\n (high & UINT21_MAX) * UINT32_SIZE +\n low +\n (high & UINT21_SIZE ? -SMALLEST_UNSAFE_INTEGER : 0);\n } while (ret < min || ret > max);\n return ret;\n };\n}\n\n/**\n * Returns a Distribution to return a value within [min, max]\n * @param min The minimum integer value, inclusive. No less than -0x20000000000000.\n * @param max The maximum integer value, inclusive. No greater than 0x20000000000000.\n */\nexport function integer(min: number, max: number): Distribution {\n min = Math.floor(min);\n max = Math.floor(max);\n if (min < -SMALLEST_UNSAFE_INTEGER || !isFinite(min)) {\n throw new RangeError(\n `Expected min to be at least ${-SMALLEST_UNSAFE_INTEGER}`\n );\n } else if (max > SMALLEST_UNSAFE_INTEGER || !isFinite(max)) {\n throw new RangeError(\n `Expected max to be at most ${SMALLEST_UNSAFE_INTEGER}`\n );\n }\n\n const range = max - min;\n if (range <= 0 || !isFinite(range)) {\n return () => min;\n } else if (range === UINT32_MAX) {\n if (min === 0) {\n return uint32;\n } else {\n return add(int32, min + INT32_SIZE);\n }\n } else if (range < UINT32_MAX) {\n return add(downscaleToRange(range), min);\n } else if (range === LARGEST_SAFE_INTEGER) {\n return add(uint53, min);\n } else if (range < LARGEST_SAFE_INTEGER) {\n return add(upscaleWithinU53(range), min);\n } else if (max - 1 - min === LARGEST_SAFE_INTEGER) {\n return add(uint53Full, min);\n } else if (\n min === -SMALLEST_UNSAFE_INTEGER &&\n max === SMALLEST_UNSAFE_INTEGER\n ) {\n return int53Full;\n } else if (min === -SMALLEST_UNSAFE_INTEGER && max === LARGEST_SAFE_INTEGER) {\n return int53;\n } else if (min === -LARGEST_SAFE_INTEGER && max === SMALLEST_UNSAFE_INTEGER) {\n return add(int53, 1);\n } else if (max === SMALLEST_UNSAFE_INTEGER) {\n return add(upscaleWithinI53AndLoopCheck(min - 1, max - 1), 1);\n } else {\n return upscaleWithinI53AndLoopCheck(min, max);\n }\n}\n","import { Distribution, Engine } from \"../types\";\nimport { INT32_SIZE, SMALLEST_UNSAFE_INTEGER, UINT32_SIZE } from \"../utils/constants\";\nimport { int32 } from \"./int32\";\nimport { integer } from \"./integer\";\nimport { uint53 } from \"./uint53\";\n\nfunction isLeastBitTrue(engine: Engine) {\n return (engine.next() & 1) === 1;\n}\n\nfunction lessThan(\n distribution: Distribution,\n value: number\n): Distribution {\n return engine => distribution(engine) < value;\n}\n\nfunction probability(percentage: number) {\n if (percentage <= 0) {\n return () => false;\n } else if (percentage >= 1) {\n return () => true;\n } else {\n const scaled = percentage * UINT32_SIZE;\n if (scaled % 1 === 0) {\n return lessThan(int32, (scaled - INT32_SIZE) | 0);\n } else {\n return lessThan(uint53, Math.round(percentage * SMALLEST_UNSAFE_INTEGER));\n }\n }\n}\n\n// tslint:disable:unified-signatures\n\n/**\n * Returns a boolean Distribution with 50% probability of being true or false\n */\nexport function bool(): Distribution;\n/**\n * Returns a boolean Distribution with the provided `percentage` of being true\n * @param percentage A number within [0, 1] of how often the result should be `true`\n */\nexport function bool(percentage: number): Distribution;\n/**\n * Returns a boolean Distribution with a probability of\n * `numerator` divided by `denominator` of being true\n * @param numerator The numerator of the probability\n * @param denominator The denominator of the probability\n */\nexport function bool(\n numerator: number,\n denominator: number\n): Distribution;\nexport function bool(\n numerator?: number,\n denominator?: number\n): Distribution {\n if (denominator == null) {\n if (numerator == null) {\n return isLeastBitTrue;\n }\n return probability(numerator);\n } else {\n if (numerator! <= 0) {\n return () => false;\n } else if (numerator! >= denominator) {\n return () => true;\n }\n return lessThan(integer(0, denominator - 1), numerator!);\n }\n}\n","import { Distribution } from \"../types\";\nimport { integer } from \"./integer\";\n\n/**\n * Returns a Distribution that returns a random `Date` within the inclusive\n * range of [`start`, `end`].\n * @param start The minimum `Date`\n * @param end The maximum `Date`\n */\nexport function date(start: Date, end: Date): Distribution {\n const distribution = integer(+start, +end);\n return engine => new Date(distribution(engine));\n}\n","import { Distribution } from \"../types\";\nimport { integer } from \"./integer\";\n\n/**\n * Returns a Distribution to return a value within [1, sideCount]\n * @param sideCount The number of sides of the die\n */\nexport function die(sideCount: number): Distribution {\n return integer(1, sideCount);\n}\n","import { Distribution } from \"../types\";\nimport { die } from \"./die\";\n\n/**\n * Returns a distribution that returns an array of length `dieCount` of values\n * within [1, `sideCount`]\n * @param sideCount The number of sides of each die\n * @param dieCount The number of dice\n */\nexport function dice(\n sideCount: number,\n dieCount: number\n): Distribution {\n const distribution = die(sideCount);\n return engine => {\n const result = [];\n for (let i = 0; i < dieCount; ++i) {\n result.push(distribution(engine));\n }\n return result;\n };\n}\n","import { StringDistribution } from \"../types\";\nimport { integer } from \"./integer\";\n\n// tslint:disable:unified-signatures\n\n// has 2**x chars, for faster uniform distribution\nconst DEFAULT_STRING_POOL =\n \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\";\n\n/**\n * Returns a distribution that returns a random string using numbers,\n * uppercase and lowercase letters, `_`, and `-` of length `length`.\n * @param length Length of the result string\n */\nexport function string(): StringDistribution;\n/**\n * Returns a distribution that returns a random string using the provided\n * string pool as the possible characters to choose from of length `length`.\n * @param length Length of the result string\n */\nexport function string(pool: string): StringDistribution;\nexport function string(pool: string = DEFAULT_STRING_POOL): StringDistribution {\n const poolLength = pool.length;\n if (!poolLength) {\n throw new Error(\"Expected pool not to be an empty string\");\n }\n\n const distribution = integer(0, poolLength - 1);\n return (engine, length) => {\n let result = \"\";\n for (let i = 0; i < length; ++i) {\n const j = distribution(engine);\n result += pool.charAt(j);\n }\n return result;\n };\n}\n","import { StringDistribution } from \"../types\";\nimport { string } from \"./string\";\n\nconst LOWER_HEX_POOL = \"0123456789abcdef\";\nconst lowerHex = string(LOWER_HEX_POOL);\nconst upperHex = string(LOWER_HEX_POOL.toUpperCase());\n\n/**\n * Returns a Distribution that returns a random string comprised of numbers\n * or the characters `abcdef` (or `ABCDEF`) of length `length`.\n * @param length Length of the result string\n * @param uppercase Whether the string should use `ABCDEF` instead of `abcdef`\n */\nexport function hex(uppercase?: boolean): StringDistribution {\n if (uppercase) {\n return upperHex;\n } else {\n return lowerHex;\n }\n}\n","export function convertSliceArgument(value: number, length: number): number {\n if (value < 0) {\n return Math.max(value + length, 0);\n } else {\n return Math.min(value, length);\n }\n}\n","export function toInteger(value: number) {\n const num = +value;\n if (num < 0) {\n return Math.ceil(num);\n } else {\n return Math.floor(num);\n }\n}\n","import { Engine } from \"../types\";\nimport { convertSliceArgument } from \"../utils/convertSliceArgument\";\nimport { toInteger } from \"../utils/toInteger\";\nimport { integer } from \"./integer\";\n\n/**\n * Returns a random value within the provided `source` within the sliced\n * bounds of `begin` and `end`.\n * @param source an array of items to pick from\n * @param begin the beginning slice index (defaults to `0`)\n * @param end the ending slice index (defaults to `source.length`)\n */\nexport function pick(\n engine: Engine,\n source: ArrayLike,\n begin?: number,\n end?: number\n): T {\n const length = source.length;\n if (length === 0) {\n throw new RangeError(\"Cannot pick from an empty array\");\n }\n const start =\n begin == null ? 0 : convertSliceArgument(toInteger(begin), length);\n const finish =\n end === void 0 ? length : convertSliceArgument(toInteger(end), length);\n if (start >= finish) {\n throw new RangeError(`Cannot pick between bounds ${start} and ${finish}`);\n }\n const distribution = integer(start, finish - 1);\n return source[distribution(engine)];\n}\n","import { Distribution } from \"../types\";\n\nexport function multiply(\n distribution: Distribution,\n multiplier: number\n): Distribution {\n if (multiplier === 1) {\n return distribution;\n } else if (multiplier === 0) {\n return () => 0;\n } else {\n return engine => distribution(engine) * multiplier;\n }\n}\n","import { Engine } from \"../types\";\nimport { SMALLEST_UNSAFE_INTEGER } from \"../utils/constants\";\nimport { uint53 } from \"./uint53\";\n\n/**\n * Returns a floating-point value within [0.0, 1.0)\n */\nexport function realZeroToOneExclusive(engine: Engine): number {\n return uint53(engine) / SMALLEST_UNSAFE_INTEGER;\n}\n","import { Engine } from \"../types\";\nimport { SMALLEST_UNSAFE_INTEGER } from \"../utils/constants\";\nimport { uint53Full } from \"./uint53Full\";\n\n/**\n * Returns a floating-point value within [0.0, 1.0]\n */\nexport function realZeroToOneInclusive(engine: Engine): number {\n return uint53Full(engine) / SMALLEST_UNSAFE_INTEGER;\n}\n","import { Distribution } from \"../types\";\nimport { add } from \"../utils/add\";\nimport { multiply } from \"../utils/multiply\";\nimport { realZeroToOneExclusive } from \"./realZeroToOneExclusive\";\nimport { realZeroToOneInclusive } from \"./realZeroToOneInclusive\";\n\n/**\n * Returns a floating-point value within [min, max) or [min, max]\n * @param min The minimum floating-point value, inclusive.\n * @param max The maximum floating-point value.\n * @param inclusive If true, `max` will be inclusive.\n */\nexport function real(\n min: number,\n max: number,\n inclusive: boolean = false\n): Distribution {\n if (!isFinite(min)) {\n throw new RangeError(\"Expected min to be a finite number\");\n } else if (!isFinite(max)) {\n throw new RangeError(\"Expected max to be a finite number\");\n }\n return add(\n multiply(\n inclusive ? realZeroToOneInclusive : realZeroToOneExclusive,\n max - min\n ),\n min\n );\n}\n","export const sliceArray = Array.prototype.slice;\n","import { Engine } from \"../types\";\nimport { integer } from \"./integer\";\n\n/**\n * Shuffles an array in-place\n * @param engine The Engine to use when choosing random values\n * @param array The array to shuffle\n * @param downTo minimum index to shuffle. Only used internally.\n */\nexport function shuffle(\n engine: Engine,\n array: T[],\n downTo: number = 0\n): T[] {\n const length = array.length;\n if (length) {\n for (let i = (length - 1) >>> 0; i > downTo; --i) {\n const distribution = integer(0, i);\n const j = distribution(engine);\n if (i !== j) {\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n }\n }\n return array;\n}\n","import { Engine } from \"../types\";\nimport { sliceArray } from \"../utils/sliceArray\";\nimport { shuffle } from \"./shuffle\";\n\n/**\n * From the population array, produce an array with sampleSize elements that\n * are randomly chosen without repeats.\n * @param engine The Engine to use when choosing random values\n * @param population An array that has items to choose a sample from\n * @param sampleSize The size of the result array\n */\nexport function sample(\n engine: Engine,\n population: ArrayLike,\n sampleSize: number\n): T[] {\n if (\n sampleSize < 0 ||\n sampleSize > population.length ||\n !isFinite(sampleSize)\n ) {\n throw new RangeError(\n \"Expected sampleSize to be within 0 and the length of the population\"\n );\n }\n\n if (sampleSize === 0) {\n return [];\n }\n\n const clone = sliceArray.call(population);\n const length = clone.length;\n if (length === sampleSize) {\n return shuffle(engine, clone, 0);\n }\n const tailLength = length - sampleSize;\n return shuffle(engine, clone, tailLength - 1).slice(tailLength);\n}\n","export const stringRepeat = (() => {\n try {\n if ((\"x\" as any).repeat(3) === \"xxx\") {\n return (pattern: string, count: number): string =>\n (pattern as any).repeat(count);\n }\n } catch (_) {\n // nothing to do here\n }\n return (pattern: string, count: number): string => {\n let result = \"\";\n while (count > 0) {\n if (count & 1) {\n result += pattern;\n }\n count >>= 1;\n pattern += pattern;\n }\n return result;\n };\n})();\n","import { Engine } from \"../types\";\nimport { stringRepeat } from \"../utils/stringRepeat\";\n\nfunction zeroPad(text: string, zeroCount: number) {\n return stringRepeat(\"0\", zeroCount - text.length) + text;\n}\n\n/**\n * Returns a Universally Unique Identifier Version 4.\n *\n * See http://en.wikipedia.org/wiki/Universally_unique_identifier\n */\nexport function uuid4(engine: Engine) {\n const a = engine.next() >>> 0;\n const b = engine.next() | 0;\n const c = engine.next() | 0;\n const d = engine.next() >>> 0;\n\n return (\n zeroPad(a.toString(16), 8) +\n \"-\" +\n zeroPad((b & 0xffff).toString(16), 4) +\n \"-\" +\n zeroPad((((b >> 4) & 0x0fff) | 0x4000).toString(16), 4) +\n \"-\" +\n zeroPad(((c & 0x3fff) | 0x8000).toString(16), 4) +\n \"-\" +\n zeroPad(((c >> 4) & 0xffff).toString(16), 4) +\n zeroPad(d.toString(16), 8)\n );\n}\n","import { Engine } from \"../types\";\nimport { UINT32_SIZE } from \"../utils/constants\";\n\n/**\n * An int32-producing Engine that uses `Math.random()`\n */\nexport const nativeMath: Engine = {\n next() {\n return (Math.random() * UINT32_SIZE) | 0;\n }\n};\n","import { bool } from \"./distribution/bool\";\nimport { date } from \"./distribution/date\";\nimport { dice } from \"./distribution/dice\";\nimport { die } from \"./distribution/die\";\nimport { hex } from \"./distribution/hex\";\nimport { int32 } from \"./distribution/int32\";\nimport { int53 } from \"./distribution/int53\";\nimport { int53Full } from \"./distribution/int53Full\";\nimport { integer } from \"./distribution/integer\";\nimport { pick } from \"./distribution/pick\";\nimport { real } from \"./distribution/real\";\nimport { realZeroToOneExclusive } from \"./distribution/realZeroToOneExclusive\";\nimport { realZeroToOneInclusive } from \"./distribution/realZeroToOneInclusive\";\nimport { sample } from \"./distribution/sample\";\nimport { shuffle } from \"./distribution/shuffle\";\nimport { string } from \"./distribution/string\";\nimport { uint32 } from \"./distribution/uint32\";\nimport { uint53 } from \"./distribution/uint53\";\nimport { uint53Full } from \"./distribution/uint53Full\";\nimport { uuid4 } from \"./distribution/uuid4\";\nimport { nativeMath } from \"./engine/nativeMath\";\nimport { Engine } from \"./types\";\n\n// tslint:disable:unified-signatures\n\n/**\n * A wrapper around an Engine that provides easy-to-use methods for\n * producing values based on known distributions\n */\nexport class Random {\n private readonly engine: Engine;\n\n /**\n * Creates a new Random wrapper\n * @param engine The engine to use (defaults to a `Math.random`-based implementation)\n */\n constructor(engine: Engine = nativeMath) {\n this.engine = engine;\n }\n\n /**\n * Returns a value within [-0x80000000, 0x7fffffff]\n */\n public int32(): number {\n return int32(this.engine);\n }\n\n /**\n * Returns a value within [0, 0xffffffff]\n */\n public uint32(): number {\n return uint32(this.engine);\n }\n\n /**\n * Returns a value within [0, 0x1fffffffffffff]\n */\n public uint53(): number {\n return uint53(this.engine);\n }\n\n /**\n * Returns a value within [0, 0x20000000000000]\n */\n public uint53Full(): number {\n return uint53Full(this.engine);\n }\n\n /**\n * Returns a value within [-0x20000000000000, 0x1fffffffffffff]\n */\n public int53(): number {\n return int53(this.engine);\n }\n\n /**\n * Returns a value within [-0x20000000000000, 0x20000000000000]\n */\n public int53Full(): number {\n return int53Full(this.engine);\n }\n\n /**\n * Returns a value within [min, max]\n * @param min The minimum integer value, inclusive. No less than -0x20000000000000.\n * @param max The maximum integer value, inclusive. No greater than 0x20000000000000.\n */\n public integer(min: number, max: number): number {\n return integer(min, max)(this.engine);\n }\n\n /**\n * Returns a floating-point value within [0.0, 1.0]\n */\n public realZeroToOneInclusive(): number {\n return realZeroToOneInclusive(this.engine);\n }\n\n /**\n * Returns a floating-point value within [0.0, 1.0)\n */\n public realZeroToOneExclusive(): number {\n return realZeroToOneExclusive(this.engine);\n }\n\n /**\n * Returns a floating-point value within [min, max) or [min, max]\n * @param min The minimum floating-point value, inclusive.\n * @param max The maximum floating-point value.\n * @param inclusive If true, `max` will be inclusive.\n */\n public real(min: number, max: number, inclusive: boolean = false): number {\n return real(min, max, inclusive)(this.engine);\n }\n\n /**\n * Returns a boolean with 50% probability of being true or false\n */\n public bool(): boolean;\n /**\n * Returns a boolean with the provided `percentage` of being true\n * @param percentage A number within [0, 1] of how often the result should be `true`\n */\n public bool(percentage: number): boolean;\n /**\n * Returns a boolean with a probability of `numerator`/`denominator` of being true\n * @param numerator The numerator of the probability\n * @param denominator The denominator of the probability\n */\n public bool(numerator: number, denominator: number): boolean;\n public bool(numerator?: number, denominator?: number): boolean {\n return bool(numerator!, denominator!)(this.engine);\n }\n\n /**\n * Return a random value within the provided `source` within the sliced\n * bounds of `begin` and `end`.\n * @param source an array of items to pick from\n * @param begin the beginning slice index (defaults to `0`)\n * @param end the ending slice index (defaults to `source.length`)\n */\n public pick(source: ArrayLike, begin?: number, end?: number): T {\n return pick(this.engine, source, begin, end);\n }\n\n /**\n * Shuffles an array in-place\n * @param array The array to shuffle\n */\n public shuffle(array: T[]): T[] {\n return shuffle(this.engine, array);\n }\n\n /**\n * From the population array, returns an array with sampleSize elements that\n * are randomly chosen without repeats.\n * @param population An array that has items to choose a sample from\n * @param sampleSize The size of the result array\n */\n public sample(population: ArrayLike, sampleSize: number): T[] {\n return sample(this.engine, population, sampleSize);\n }\n\n /**\n * Returns a value within [1, sideCount]\n * @param sideCount The number of sides of the die\n */\n public die(sideCount: number): number {\n return die(sideCount)(this.engine);\n }\n\n /**\n * Returns an array of length `dieCount` of values within [1, sideCount]\n * @param sideCount The number of sides of each die\n * @param dieCount The number of dice\n */\n public dice(sideCount: number, dieCount: number): number[] {\n return dice(sideCount, dieCount)(this.engine);\n }\n\n /**\n * Returns a Universally Unique Identifier Version 4.\n *\n * See http://en.wikipedia.org/wiki/Universally_unique_identifier\n */\n public uuid4(): string {\n return uuid4(this.engine);\n }\n\n /**\n * Returns a random string using numbers, uppercase and lowercase letters,\n * `_`, and `-` of length `length`.\n * @param length Length of the result string\n */\n public string(length: number): string;\n /**\n * Returns a random string using the provided string pool as the possible\n * characters to choose from of length `length`.\n * @param length Length of the result string\n */\n public string(length: number, pool: string): string;\n public string(length: number, pool?: string): string {\n return string(pool!)(this.engine, length);\n }\n\n /**\n * Returns a random string comprised of numbers or the characters `abcdef`\n * (or `ABCDEF`) of length `length`.\n * @param length Length of the result string\n * @param uppercase Whether the string should use `ABCDEF` instead of `abcdef`\n */\n public hex(length: number, uppercase?: boolean): string {\n return hex(uppercase)(this.engine, length);\n }\n\n /**\n * Returns a random `Date` within the inclusive range of [`start`, `end`].\n * @param start The minimum `Date`\n * @param end The maximum `Date`\n */\n public date(start: Date, end: Date): Date {\n return date(start, end)(this.engine);\n }\n}\n","import { INT32_SIZE } from \"./constants\";\n\n/**\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array\n */\nconst I32Array: typeof Int32Array = (() => {\n try {\n const buffer = new ArrayBuffer(4);\n const view = new Int32Array(buffer);\n view[0] = INT32_SIZE;\n if (view[0] === -INT32_SIZE) {\n return Int32Array;\n }\n } catch (_) {\n // nothing to do here\n }\n return (Array as unknown) as typeof Int32Array;\n})();\nexport { I32Array as Int32Array };\n","import { Engine } from \"../types\";\nimport { Int32Array } from \"../utils/Int32Array\";\n\nlet data: Int32Array | null = null;\nconst COUNT = 128;\nlet index = COUNT;\n\n/**\n * An Engine that relies on the globally-available `crypto.getRandomValues`,\n * which is typically available in modern browsers.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\n *\n * If unavailable or otherwise non-functioning, then `browserCrypto` will\n * likely `throw` on the first call to `next()`.\n */\nexport const browserCrypto: Engine = {\n next() {\n if (index >= COUNT) {\n if (data === null) {\n data = new Int32Array(COUNT);\n }\n crypto.getRandomValues(data);\n index = 0;\n }\n return data![index++] | 0;\n }\n};\n","import { nativeMath } from \"../engine/nativeMath\";\nimport { Engine } from \"../types\";\n\n/**\n * Returns an array of random int32 values, based on current time\n * and a random number engine\n *\n * @param engine an Engine to pull random values from, default `nativeMath`\n * @param length the length of the Array, minimum 1, default 16\n */\nexport function createEntropy(\n engine: Engine = nativeMath,\n length: number = 16\n): number[] {\n const array: number[] = [];\n array.push(new Date().getTime() | 0);\n for (let i = 1; i < length; ++i) {\n array[i] = engine.next() | 0;\n }\n return array;\n}\n","import { UINT32_MAX } from \"./constants\";\n\n/**\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul\n */\nexport const imul: (a: number, b: number) => number = (() => {\n try {\n if ((Math as any).imul(UINT32_MAX, 5) === -5) {\n return (Math as any).imul;\n }\n } catch (_) {\n // nothing to do here\n }\n const UINT16_MAX = 0xffff;\n return (a: number, b: number) => {\n const ah = (a >>> 16) & UINT16_MAX;\n const al = a & UINT16_MAX;\n const bh = (b >>> 16) & UINT16_MAX;\n const bl = b & UINT16_MAX;\n // the shift by 0 fixes the sign on the high part\n // the final |0 converts the unsigned value into a signed value\n return (al * bl + (((ah * bl + al * bh) << 16) >>> 0)) | 0;\n };\n})();\n","import { Engine } from \"../types\";\nimport { INT32_MAX, INT32_SIZE } from \"../utils/constants\";\nimport { createEntropy } from \"../utils/createEntropy\";\nimport { imul } from \"../utils/imul\";\nimport { Int32Array } from \"../utils/Int32Array\";\n\nconst ARRAY_SIZE = 624;\nconst ARRAY_MAX = ARRAY_SIZE - 1;\nconst M = 397;\nconst ARRAY_SIZE_MINUS_M = ARRAY_SIZE - M;\nconst A = 0x9908b0df;\n\n/**\n * An Engine that is a pseudorandom number generator using the Mersenne\n * Twister algorithm based on the prime 2**19937 āˆ’ 1\n *\n * See http://en.wikipedia.org/wiki/Mersenne_twister\n */\nexport class MersenneTwister19937 implements Engine {\n /**\n * Returns a MersenneTwister19937 seeded with an initial int32 value\n * @param initial the initial seed value\n */\n public static seed(initial: number): MersenneTwister19937 {\n return new MersenneTwister19937().seed(initial);\n }\n\n /**\n * Returns a MersenneTwister19937 seeded with zero or more int32 values\n * @param source A series of int32 values\n */\n public static seedWithArray(source: ArrayLike): MersenneTwister19937 {\n return new MersenneTwister19937().seedWithArray(source);\n }\n\n /**\n * Returns a MersenneTwister19937 seeded with the current time and\n * a series of natively-generated random values\n */\n public static autoSeed(): MersenneTwister19937 {\n return MersenneTwister19937.seedWithArray(createEntropy());\n }\n\n private readonly data = new Int32Array(ARRAY_SIZE);\n private index = 0; // integer within [0, 624]\n private uses = 0;\n\n /**\n * MersenneTwister19937 should not be instantiated directly.\n * Instead, use the static methods `seed`, `seedWithArray`, or `autoSeed`.\n */\n private constructor() {}\n\n /**\n * Returns the next int32 value of the sequence\n */\n public next(): number {\n if ((this.index | 0) >= ARRAY_SIZE) {\n refreshData(this.data);\n this.index = 0;\n }\n\n const value = this.data[this.index];\n this.index = (this.index + 1) | 0;\n this.uses += 1;\n return temper(value) | 0;\n }\n\n /**\n * Returns the number of times that the Engine has been used.\n *\n * This can be provided to an unused MersenneTwister19937 with the same\n * seed, bringing it to the exact point that was left off.\n */\n public getUseCount(): number {\n return this.uses;\n }\n\n /**\n * Discards one or more items from the engine\n * @param count The count of items to discard\n */\n public discard(count: number): this {\n if (count <= 0) {\n return this;\n }\n this.uses += count;\n if ((this.index | 0) >= ARRAY_SIZE) {\n refreshData(this.data);\n this.index = 0;\n }\n while (count + this.index > ARRAY_SIZE) {\n count -= ARRAY_SIZE - this.index;\n refreshData(this.data);\n this.index = 0;\n }\n this.index = (this.index + count) | 0;\n return this;\n }\n\n private seed(initial: number): this {\n let previous = 0;\n this.data[0] = previous = initial | 0;\n\n for (let i = 1; i < ARRAY_SIZE; i = (i + 1) | 0) {\n this.data[i] = previous =\n (imul(previous ^ (previous >>> 30), 0x6c078965) + i) | 0;\n }\n this.index = ARRAY_SIZE;\n this.uses = 0;\n return this;\n }\n\n private seedWithArray(source: ArrayLike): this {\n this.seed(0x012bd6aa);\n seedWithArray(this.data, source);\n return this;\n }\n}\n\nfunction refreshData(data: Int32Array) {\n let k = 0;\n let tmp = 0;\n for (; (k | 0) < ARRAY_SIZE_MINUS_M; k = (k + 1) | 0) {\n tmp = (data[k] & INT32_SIZE) | (data[(k + 1) | 0] & INT32_MAX);\n data[k] = data[(k + M) | 0] ^ (tmp >>> 1) ^ (tmp & 0x1 ? A : 0);\n }\n\n for (; (k | 0) < ARRAY_MAX; k = (k + 1) | 0) {\n tmp = (data[k] & INT32_SIZE) | (data[(k + 1) | 0] & INT32_MAX);\n data[k] =\n data[(k - ARRAY_SIZE_MINUS_M) | 0] ^ (tmp >>> 1) ^ (tmp & 0x1 ? A : 0);\n }\n\n tmp = (data[ARRAY_MAX] & INT32_SIZE) | (data[0] & INT32_MAX);\n data[ARRAY_MAX] = data[M - 1] ^ (tmp >>> 1) ^ (tmp & 0x1 ? A : 0);\n}\n\nfunction temper(value: number) {\n value ^= value >>> 11;\n value ^= (value << 7) & 0x9d2c5680;\n value ^= (value << 15) & 0xefc60000;\n return value ^ (value >>> 18);\n}\n\nfunction seedWithArray(data: Int32Array, source: ArrayLike) {\n let i = 1;\n let j = 0;\n const sourceLength = source.length;\n let k = Math.max(sourceLength, ARRAY_SIZE) | 0;\n let previous = data[0] | 0;\n for (; (k | 0) > 0; --k) {\n data[i] = previous =\n ((data[i] ^ imul(previous ^ (previous >>> 30), 0x0019660d)) +\n (source[j] | 0) +\n (j | 0)) |\n 0;\n i = (i + 1) | 0;\n ++j;\n if ((i | 0) > ARRAY_MAX) {\n data[0] = data[ARRAY_MAX];\n i = 1;\n }\n if (j >= sourceLength) {\n j = 0;\n }\n }\n for (k = ARRAY_MAX; (k | 0) > 0; --k) {\n data[i] = previous =\n ((data[i] ^ imul(previous ^ (previous >>> 30), 0x5d588b65)) - i) | 0;\n i = (i + 1) | 0;\n if ((i | 0) > ARRAY_MAX) {\n data[0] = data[ARRAY_MAX];\n i = 1;\n }\n }\n data[0] = INT32_SIZE;\n}\n","import { Engine } from \"../types\";\n\nlet data: Int32Array | null = null;\nconst COUNT = 128;\nlet index = COUNT;\n\n/**\n * An Engine that relies on the node-available\n * `require('crypto').randomBytes`, which has been available since 0.58.\n *\n * See https://nodejs.org/api/crypto.html#crypto_crypto_randombytes_size_callback\n *\n * If unavailable or otherwise non-functioning, then `nodeCrypto` will\n * likely `throw` on the first call to `next()`.\n */\nexport const nodeCrypto: Engine = {\n next() {\n if (index >= COUNT) {\n data = new Int32Array(\n new Int8Array(require(\"crypto\").randomBytes(4 * COUNT)).buffer\n );\n index = 0;\n }\n return data![index++] | 0;\n }\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.initPjs = void 0;\nconst initPjs = (main) => {\n const particlesJS = (tagId, options) => {\n return main.load(tagId, options);\n };\n particlesJS.load = (tagId, pathConfigJson, callback) => {\n main.loadJSON(tagId, pathConfigJson).then((container) => {\n if (container) {\n callback(container);\n }\n });\n };\n particlesJS.setOnClickHandler = (callback) => {\n main.setOnClickHandler(callback);\n };\n const pJSDom = main.dom();\n return { particlesJS, pJSDom };\n};\nexports.initPjs = initPjs;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SquareDrawer = void 0;\nclass SquareDrawer {\n getSidesCount() {\n return 4;\n }\n draw(context, particle, radius) {\n context.rect(-radius, -radius, radius * 2, radius * 2);\n }\n}\nexports.SquareDrawer = SquareDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OutModeDirection = void 0;\nvar OutModeDirection;\n(function (OutModeDirection) {\n OutModeDirection[\"bottom\"] = \"bottom\";\n OutModeDirection[\"left\"] = \"left\";\n OutModeDirection[\"right\"] = \"right\";\n OutModeDirection[\"top\"] = \"top\";\n})(OutModeDirection = exports.OutModeDirection || (exports.OutModeDirection = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MoveDirection = void 0;\nvar MoveDirection;\n(function (MoveDirection) {\n MoveDirection[\"bottom\"] = \"bottom\";\n MoveDirection[\"bottomLeft\"] = \"bottom-left\";\n MoveDirection[\"bottomRight\"] = \"bottom-right\";\n MoveDirection[\"left\"] = \"left\";\n MoveDirection[\"none\"] = \"none\";\n MoveDirection[\"right\"] = \"right\";\n MoveDirection[\"top\"] = \"top\";\n MoveDirection[\"topLeft\"] = \"top-left\";\n MoveDirection[\"topRight\"] = \"top-right\";\n})(MoveDirection = exports.MoveDirection || (exports.MoveDirection = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RotateDirection = void 0;\nvar RotateDirection;\n(function (RotateDirection) {\n RotateDirection[\"clockwise\"] = \"clockwise\";\n RotateDirection[\"counterClockwise\"] = \"counter-clockwise\";\n RotateDirection[\"random\"] = \"random\";\n})(RotateDirection = exports.RotateDirection || (exports.RotateDirection = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./MoveDirection\"), exports);\n__exportStar(require(\"./RotateDirection\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NumberUtils = void 0;\nconst Directions_1 = require(\"../Enums/Directions\");\nclass NumberUtils {\n static clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n }\n static mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n }\n static randomInRange(r1, r2) {\n const max = Math.max(r1, r2), min = Math.min(r1, r2);\n return Math.random() * (max - min) + min;\n }\n static getValue(options) {\n const random = options.random;\n const { enable, minimumValue } = typeof random === \"boolean\" ? { enable: random, minimumValue: 0 } : random;\n return enable ? NumberUtils.randomInRange(minimumValue, options.value) : options.value;\n }\n static getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x;\n const dy = pointA.y - pointB.y;\n return { dx: dx, dy: dy, distance: Math.sqrt(dx * dx + dy * dy) };\n }\n static getDistance(pointA, pointB) {\n return NumberUtils.getDistances(pointA, pointB).distance;\n }\n static getParticleBaseVelocity(particle) {\n let velocityBase;\n switch (particle.direction) {\n case Directions_1.MoveDirection.top:\n velocityBase = { x: 0, y: -1 };\n break;\n case Directions_1.MoveDirection.topRight:\n velocityBase = { x: 0.5, y: -0.5 };\n break;\n case Directions_1.MoveDirection.right:\n velocityBase = { x: 1, y: -0 };\n break;\n case Directions_1.MoveDirection.bottomRight:\n velocityBase = { x: 0.5, y: 0.5 };\n break;\n case Directions_1.MoveDirection.bottom:\n velocityBase = { x: 0, y: 1 };\n break;\n case Directions_1.MoveDirection.bottomLeft:\n velocityBase = { x: -0.5, y: 1 };\n break;\n case Directions_1.MoveDirection.left:\n velocityBase = { x: -1, y: 0 };\n break;\n case Directions_1.MoveDirection.topLeft:\n velocityBase = { x: -0.5, y: -0.5 };\n break;\n default:\n velocityBase = { x: 0, y: 0 };\n break;\n }\n return velocityBase;\n }\n static rotateVelocity(velocity, angle) {\n return {\n horizontal: velocity.horizontal * Math.cos(angle) - velocity.vertical * Math.sin(angle),\n vertical: velocity.horizontal * Math.sin(angle) + velocity.vertical * Math.cos(angle),\n };\n }\n static collisionVelocity(v1, v2, m1, m2) {\n return {\n horizontal: (v1.horizontal * (m1 - m2)) / (m1 + m2) + (v2.horizontal * 2 * m2) / (m1 + m2),\n vertical: v1.vertical,\n };\n }\n}\nexports.NumberUtils = NumberUtils;\n","\"use strict\";\nvar __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Utils = void 0;\nconst OutModeDirection_1 = require(\"../Enums/Directions/OutModeDirection\");\nconst NumberUtils_1 = require(\"./NumberUtils\");\nfunction rectSideBounce(pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor) {\n const res = { bounced: false };\n if (pOtherSide.min >= rectOtherSide.min &&\n pOtherSide.min <= rectOtherSide.max &&\n pOtherSide.max >= rectOtherSide.min &&\n pOtherSide.max <= rectOtherSide.max) {\n if ((pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) / 2 && velocity > 0) ||\n (pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) / 2 && velocity < 0)) {\n res.velocity = velocity * -factor;\n res.bounced = true;\n }\n }\n return res;\n}\nfunction checkSelector(element, selectors) {\n if (selectors instanceof Array) {\n for (const selector of selectors) {\n if (element.matches(selector)) {\n return true;\n }\n }\n return false;\n }\n else {\n return element.matches(selectors);\n }\n}\nclass Utils {\n static isSsr() {\n return typeof window === \"undefined\" || !window;\n }\n static get animate() {\n return Utils.isSsr()\n ? (callback) => setTimeout(callback)\n : (callback) => (window.requestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.oRequestAnimationFrame ||\n window.msRequestAnimationFrame ||\n window.setTimeout)(callback);\n }\n static get cancelAnimation() {\n return Utils.isSsr()\n ? (handle) => clearTimeout(handle)\n : (handle) => (window.cancelAnimationFrame ||\n window.webkitCancelRequestAnimationFrame ||\n window.mozCancelRequestAnimationFrame ||\n window.oCancelRequestAnimationFrame ||\n window.msCancelRequestAnimationFrame ||\n window.clearTimeout)(handle);\n }\n static isInArray(value, array) {\n return value === array || (array instanceof Array && array.indexOf(value) > -1);\n }\n static loadFont(character) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n yield document.fonts.load(`${character.weight} 36px '${character.font}'`);\n }\n catch (_a) {\n }\n });\n }\n static arrayRandomIndex(array) {\n return Math.floor(Math.random() * array.length);\n }\n static itemFromArray(array, index, useIndex = true) {\n const fixedIndex = index !== undefined && useIndex ? index % array.length : Utils.arrayRandomIndex(array);\n return array[fixedIndex];\n }\n static isPointInside(point, size, radius, direction) {\n return Utils.areBoundsInside(Utils.calculateBounds(point, radius !== null && radius !== void 0 ? radius : 0), size, direction);\n }\n static areBoundsInside(bounds, size, direction) {\n let inside = true;\n if (!direction || direction === OutModeDirection_1.OutModeDirection.bottom) {\n inside = bounds.top < size.height;\n }\n if (inside && (!direction || direction === OutModeDirection_1.OutModeDirection.left)) {\n inside = bounds.right > 0;\n }\n if (inside && (!direction || direction === OutModeDirection_1.OutModeDirection.right)) {\n inside = bounds.left < size.width;\n }\n if (inside && (!direction || direction === OutModeDirection_1.OutModeDirection.top)) {\n inside = bounds.bottom > 0;\n }\n return inside;\n }\n static calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius,\n };\n }\n static loadImage(source) {\n return new Promise((resolve, reject) => {\n if (!source) {\n reject(\"Error tsParticles - No image.src\");\n return;\n }\n const image = {\n source: source,\n type: source.substr(source.length - 3),\n };\n const img = new Image();\n img.addEventListener(\"load\", () => {\n image.element = img;\n resolve(image);\n });\n img.addEventListener(\"error\", () => {\n reject(`Error tsParticles - loading image: ${source}`);\n });\n img.src = source;\n });\n }\n static downloadSvgImage(source) {\n return __awaiter(this, void 0, void 0, function* () {\n if (!source) {\n throw new Error(\"Error tsParticles - No image.src\");\n }\n const image = {\n source: source,\n type: source.substr(source.length - 3),\n };\n if (image.type !== \"svg\") {\n return Utils.loadImage(source);\n }\n const response = yield fetch(image.source);\n if (!response.ok) {\n throw new Error(\"Error tsParticles - Image not found\");\n }\n image.svgData = yield response.text();\n return image;\n });\n }\n static deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (typeof source !== \"object\") {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && (typeof destination !== \"object\" || !destination || !Array.isArray(destination))) {\n destination = [];\n }\n else if (!sourceIsArray &&\n (typeof destination !== \"object\" || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source;\n const value = sourceDict[key];\n const isObject = typeof value === \"object\";\n const destDict = destination;\n destDict[key] =\n isObject && Array.isArray(value)\n ? value.map((v) => Utils.deepExtend(destDict[key], v))\n : Utils.deepExtend(destDict[key], value);\n }\n }\n return destination;\n }\n static isDivModeEnabled(mode, divs) {\n return divs instanceof Array\n ? !!divs.find((t) => t.enable && Utils.isInArray(mode, t.mode))\n : Utils.isInArray(mode, divs.mode);\n }\n static divModeExecute(mode, divs, callback) {\n if (divs instanceof Array) {\n for (const div of divs) {\n const divMode = div.mode;\n const divEnabled = div.enable;\n if (divEnabled && Utils.isInArray(mode, divMode)) {\n Utils.singleDivModeExecute(div, callback);\n }\n }\n }\n else {\n const divMode = divs.mode;\n const divEnabled = divs.enable;\n if (divEnabled && Utils.isInArray(mode, divMode)) {\n Utils.singleDivModeExecute(divs, callback);\n }\n }\n }\n static singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n if (selectors instanceof Array) {\n for (const selector of selectors) {\n callback(selector, div);\n }\n }\n else {\n callback(selectors, div);\n }\n }\n static divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n if (divs instanceof Array) {\n return divs.find((d) => checkSelector(element, d.selectors));\n }\n else if (checkSelector(element, divs.selectors)) {\n return divs;\n }\n }\n static circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n velocity: p.velocity,\n factor: {\n horizontal: NumberUtils_1.NumberUtils.getValue(p.particlesOptions.bounce.horizontal),\n vertical: NumberUtils_1.NumberUtils.getValue(p.particlesOptions.bounce.vertical),\n },\n };\n }\n static circleBounce(p1, p2) {\n const xVelocityDiff = p1.velocity.horizontal;\n const yVelocityDiff = p1.velocity.vertical;\n const pos1 = p1.position;\n const pos2 = p2.position;\n const xDist = pos2.x - pos1.x;\n const yDist = pos2.y - pos1.y;\n if (xVelocityDiff * xDist + yVelocityDiff * yDist >= 0) {\n const angle = -Math.atan2(pos2.y - pos1.y, pos2.x - pos1.x);\n const m1 = p1.radius;\n const m2 = p2.radius;\n const u1 = NumberUtils_1.NumberUtils.rotateVelocity(p1.velocity, angle);\n const u2 = NumberUtils_1.NumberUtils.rotateVelocity(p2.velocity, angle);\n const v1 = NumberUtils_1.NumberUtils.collisionVelocity(u1, u2, m1, m2);\n const v2 = NumberUtils_1.NumberUtils.collisionVelocity(u2, u1, m1, m2);\n const vFinal1 = NumberUtils_1.NumberUtils.rotateVelocity(v1, -angle);\n const vFinal2 = NumberUtils_1.NumberUtils.rotateVelocity(v2, -angle);\n p1.velocity.horizontal = vFinal1.horizontal * p1.factor.horizontal;\n p1.velocity.vertical = vFinal1.vertical * p1.factor.vertical;\n p2.velocity.horizontal = vFinal2.horizontal * p2.factor.horizontal;\n p2.velocity.vertical = vFinal2.vertical * p2.factor.vertical;\n }\n }\n static rectBounce(particle, divBounds) {\n const pPos = particle.getPosition();\n const size = particle.getRadius();\n const bounds = Utils.calculateBounds(pPos, size);\n const resH = rectSideBounce({\n min: bounds.left,\n max: bounds.right,\n }, {\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, particle.velocity.horizontal, NumberUtils_1.NumberUtils.getValue(particle.particlesOptions.bounce.horizontal));\n if (resH.bounced) {\n if (resH.velocity !== undefined) {\n particle.velocity.horizontal = resH.velocity;\n }\n if (resH.position !== undefined) {\n particle.position.x = resH.position;\n }\n }\n const resV = rectSideBounce({\n min: bounds.top,\n max: bounds.bottom,\n }, {\n min: bounds.left,\n max: bounds.right,\n }, {\n min: divBounds.top,\n max: divBounds.bottom,\n }, {\n min: divBounds.left,\n max: divBounds.right,\n }, particle.velocity.vertical, NumberUtils_1.NumberUtils.getValue(particle.particlesOptions.bounce.vertical));\n if (resV.bounced) {\n if (resV.velocity !== undefined) {\n particle.velocity.vertical = resV.velocity;\n }\n if (resV.position !== undefined) {\n particle.position.y = resV.position;\n }\n }\n }\n}\nexports.Utils = Utils;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Constants = void 0;\nclass Constants {\n}\nexports.Constants = Constants;\nConstants.canvasClass = \"tsparticles-canvas-el\";\nConstants.randomColorValue = \"random\";\nConstants.midColorValue = \"mid\";\nConstants.touchEndEvent = \"touchend\";\nConstants.mouseDownEvent = \"mousedown\";\nConstants.mouseUpEvent = \"mouseup\";\nConstants.mouseMoveEvent = \"mousemove\";\nConstants.touchStartEvent = \"touchstart\";\nConstants.touchMoveEvent = \"touchmove\";\nConstants.mouseLeaveEvent = \"mouseleave\";\nConstants.mouseOutEvent = \"mouseout\";\nConstants.touchCancelEvent = \"touchcancel\";\nConstants.resizeEvent = \"resize\";\nConstants.visibilityChangeEvent = \"visibilitychange\";\nConstants.noPolygonDataLoaded = \"No polygon data loaded.\";\nConstants.noPolygonFound = \"No polygon found, you need to specify SVG url in config.\";\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ColorUtils = void 0;\nconst Utils_1 = require(\"./Utils\");\nconst Constants_1 = require(\"./Constants\");\nconst NumberUtils_1 = require(\"./NumberUtils\");\nfunction hue2rgb(p, q, t) {\n let tCalc = t;\n if (tCalc < 0) {\n tCalc += 1;\n }\n if (tCalc > 1) {\n tCalc -= 1;\n }\n if (tCalc < 1 / 6) {\n return p + (q - p) * 6 * tCalc;\n }\n if (tCalc < 1 / 2) {\n return q;\n }\n if (tCalc < 2 / 3) {\n return p + (q - p) * (2 / 3 - tCalc) * 6;\n }\n return p;\n}\nfunction stringToRgba(input) {\n if (input.startsWith(\"rgb\")) {\n const regex = /rgba?\\(\\s*(\\d+)\\s*,\\s*(\\d+)\\s*,\\s*(\\d+)\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? {\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n b: parseInt(result[3], 10),\n g: parseInt(result[2], 10),\n r: parseInt(result[1], 10),\n }\n : undefined;\n }\n else if (input.startsWith(\"hsl\")) {\n const regex = /hsla?\\(\\s*(\\d+)\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? ColorUtils.hslaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n l: parseInt(result[3], 10),\n s: parseInt(result[2], 10),\n })\n : undefined;\n }\n else if (input.startsWith(\"hsv\")) {\n const regex = /hsva?\\(\\s*(\\d+)°\\s*,\\s*(\\d+)%\\s*,\\s*(\\d+)%\\s*(,\\s*([\\d.]+)\\s*)?\\)/i;\n const result = regex.exec(input);\n return result\n ? ColorUtils.hsvaToRgba({\n a: result.length > 4 ? parseFloat(result[5]) : 1,\n h: parseInt(result[1], 10),\n s: parseInt(result[2], 10),\n v: parseInt(result[3], 10),\n })\n : undefined;\n }\n else {\n const shorthandRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i;\n const hexFixed = input.replace(shorthandRegex, (_m, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n });\n const regex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i;\n const result = regex.exec(hexFixed);\n return result\n ? {\n a: result[4] !== undefined ? parseInt(result[4], 16) / 0xff : 1,\n b: parseInt(result[3], 16),\n g: parseInt(result[2], 16),\n r: parseInt(result[1], 16),\n }\n : undefined;\n }\n}\nclass ColorUtils {\n static colorToRgb(input, index, useIndex = true) {\n var _a, _b, _c;\n if (input === undefined) {\n return;\n }\n const color = typeof input === \"string\" ? { value: input } : input;\n let res;\n if (typeof color.value === \"string\") {\n if (color.value === Constants_1.Constants.randomColorValue) {\n res = ColorUtils.getRandomRgbColor();\n }\n else {\n res = ColorUtils.stringToRgb(color.value);\n }\n }\n else {\n if (color.value instanceof Array) {\n const colorSelected = Utils_1.Utils.itemFromArray(color.value, index, useIndex);\n res = ColorUtils.colorToRgb({ value: colorSelected });\n }\n else {\n const colorValue = color.value;\n const rgbColor = (_a = colorValue.rgb) !== null && _a !== void 0 ? _a : color.value;\n if (rgbColor.r !== undefined) {\n res = rgbColor;\n }\n else {\n const hslColor = (_b = colorValue.hsl) !== null && _b !== void 0 ? _b : color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n res = ColorUtils.hslToRgb(hslColor);\n }\n else {\n const hsvColor = (_c = colorValue.hsv) !== null && _c !== void 0 ? _c : color.value;\n if (hsvColor.h !== undefined && hsvColor.v !== undefined) {\n res = ColorUtils.hsvToRgb(hsvColor);\n }\n }\n }\n }\n }\n return res;\n }\n static colorToHsl(color, index, useIndex = true) {\n const rgb = ColorUtils.colorToRgb(color, index, useIndex);\n return rgb !== undefined ? ColorUtils.rgbToHsl(rgb) : undefined;\n }\n static rgbToHsl(color) {\n const r1 = color.r / 255;\n const g1 = color.g / 255;\n const b1 = color.b / 255;\n const max = Math.max(r1, g1, b1);\n const min = Math.min(r1, g1, b1);\n const res = {\n h: 0,\n l: (max + min) / 2,\n s: 0,\n };\n if (max != min) {\n res.s = res.l < 0.5 ? (max - min) / (max + min) : (max - min) / (2.0 - max - min);\n res.h =\n r1 === max\n ? (g1 - b1) / (max - min)\n : (res.h = g1 === max ? 2.0 + (b1 - r1) / (max - min) : 4.0 + (r1 - g1) / (max - min));\n }\n res.l *= 100;\n res.s *= 100;\n res.h *= 60;\n if (res.h < 0) {\n res.h += 360;\n }\n return res;\n }\n static stringToAlpha(input) {\n var _a;\n return (_a = stringToRgba(input)) === null || _a === void 0 ? void 0 : _a.a;\n }\n static stringToRgb(input) {\n return stringToRgba(input);\n }\n static hslToRgb(hsl) {\n const result = { b: 0, g: 0, r: 0 };\n const hslPercent = {\n h: hsl.h / 360,\n l: hsl.l / 100,\n s: hsl.s / 100,\n };\n if (hslPercent.s === 0) {\n result.b = hslPercent.l;\n result.g = hslPercent.l;\n result.r = hslPercent.l;\n }\n else {\n const q = hslPercent.l < 0.5\n ? hslPercent.l * (1 + hslPercent.s)\n : hslPercent.l + hslPercent.s - hslPercent.l * hslPercent.s;\n const p = 2 * hslPercent.l - q;\n result.r = hue2rgb(p, q, hslPercent.h + 1 / 3);\n result.g = hue2rgb(p, q, hslPercent.h);\n result.b = hue2rgb(p, q, hslPercent.h - 1 / 3);\n }\n result.r = Math.floor(result.r * 255);\n result.g = Math.floor(result.g * 255);\n result.b = Math.floor(result.b * 255);\n return result;\n }\n static hslaToRgba(hsla) {\n const rgbResult = ColorUtils.hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n }\n static hslToHsv(hsl) {\n const l = hsl.l / 100, sl = hsl.s / 100;\n const v = l + sl * Math.min(l, 1 - l), sv = !v ? 0 : 2 * (1 - l / v);\n return {\n h: hsl.h,\n s: sv * 100,\n v: v * 100,\n };\n }\n static hslaToHsva(hsla) {\n const hsvResult = ColorUtils.hslToHsv(hsla);\n return {\n a: hsla.a,\n h: hsvResult.h,\n s: hsvResult.s,\n v: hsvResult.v,\n };\n }\n static hsvToHsl(hsv) {\n const v = hsv.v / 100, sv = hsv.s / 100;\n const l = v * (1 - sv / 2), sl = l === 0 || l === 1 ? 0 : (v - l) / Math.min(l, 1 - l);\n return {\n h: hsv.h,\n l: l * 100,\n s: sl * 100,\n };\n }\n static hsvaToHsla(hsva) {\n const hslResult = ColorUtils.hsvToHsl(hsva);\n return {\n a: hsva.a,\n h: hslResult.h,\n l: hslResult.l,\n s: hslResult.s,\n };\n }\n static hsvToRgb(hsv) {\n const result = { b: 0, g: 0, r: 0 };\n const hsvPercent = {\n h: hsv.h / 60,\n s: hsv.s / 100,\n v: hsv.v / 100,\n };\n const c = hsvPercent.v * hsvPercent.s, x = c * (1 - Math.abs((hsvPercent.h % 2) - 1));\n let tempRgb;\n if (hsvPercent.h >= 0 && hsvPercent.h <= 1) {\n tempRgb = {\n r: c,\n g: x,\n b: 0,\n };\n }\n else if (hsvPercent.h > 1 && hsvPercent.h <= 2) {\n tempRgb = {\n r: x,\n g: c,\n b: 0,\n };\n }\n else if (hsvPercent.h > 2 && hsvPercent.h <= 3) {\n tempRgb = {\n r: 0,\n g: c,\n b: x,\n };\n }\n else if (hsvPercent.h > 3 && hsvPercent.h <= 4) {\n tempRgb = {\n r: 0,\n g: x,\n b: c,\n };\n }\n else if (hsvPercent.h > 4 && hsvPercent.h <= 5) {\n tempRgb = {\n r: x,\n g: 0,\n b: c,\n };\n }\n else if (hsvPercent.h > 5 && hsvPercent.h <= 6) {\n tempRgb = {\n r: c,\n g: 0,\n b: x,\n };\n }\n if (tempRgb) {\n const m = hsvPercent.v - c;\n result.r = Math.floor((tempRgb.r + m) * 255);\n result.g = Math.floor((tempRgb.g + m) * 255);\n result.b = Math.floor((tempRgb.b + m) * 255);\n }\n return result;\n }\n static hsvaToRgba(hsva) {\n const rgbResult = ColorUtils.hsvToRgb(hsva);\n return {\n a: hsva.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n }\n static rgbToHsv(rgb) {\n const rgbPercent = {\n r: rgb.r / 255,\n g: rgb.g / 255,\n b: rgb.b / 255,\n }, xMax = Math.max(rgbPercent.r, rgbPercent.g, rgbPercent.b), xMin = Math.min(rgbPercent.r, rgbPercent.g, rgbPercent.b), v = xMax, c = xMax - xMin;\n let h = 0;\n if (v === rgbPercent.r) {\n h = 60 * ((rgbPercent.g - rgbPercent.b) / c);\n }\n else if (v === rgbPercent.g) {\n h = 60 * (2 + (rgbPercent.b - rgbPercent.r) / c);\n }\n else if (v === rgbPercent.b) {\n h = 60 * (4 + (rgbPercent.r - rgbPercent.g) / c);\n }\n const s = !v ? 0 : c / v;\n return {\n h,\n s: s * 100,\n v: v * 100,\n };\n }\n static rgbaToHsva(rgba) {\n const hsvResult = ColorUtils.rgbToHsv(rgba);\n return {\n a: rgba.a,\n h: hsvResult.h,\n s: hsvResult.s,\n v: hsvResult.v,\n };\n }\n static getRandomRgbColor(min) {\n const fixedMin = min !== null && min !== void 0 ? min : 0;\n return {\n b: Math.floor(NumberUtils_1.NumberUtils.randomInRange(fixedMin, 256)),\n g: Math.floor(NumberUtils_1.NumberUtils.randomInRange(fixedMin, 256)),\n r: Math.floor(NumberUtils_1.NumberUtils.randomInRange(fixedMin, 256)),\n };\n }\n static getStyleFromRgb(color, opacity) {\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n }\n static getStyleFromHsl(color, opacity) {\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity !== null && opacity !== void 0 ? opacity : 1})`;\n }\n static getStyleFromHsv(color, opacity) {\n return ColorUtils.getStyleFromHsl(ColorUtils.hsvToHsl(color), opacity);\n }\n static mix(color1, color2, size1, size2) {\n let rgb1 = color1;\n let rgb2 = color2;\n if (rgb1.r === undefined) {\n rgb1 = ColorUtils.hslToRgb(color1);\n }\n if (rgb2.r === undefined) {\n rgb2 = ColorUtils.hslToRgb(color2);\n }\n return {\n b: NumberUtils_1.NumberUtils.mix(rgb1.b, rgb2.b, size1, size2),\n g: NumberUtils_1.NumberUtils.mix(rgb1.g, rgb2.g, size1, size2),\n r: NumberUtils_1.NumberUtils.mix(rgb1.r, rgb2.r, size1, size2),\n };\n }\n static replaceColorSvg(image, color, opacity) {\n if (!image.svgData) {\n return \"\";\n }\n const svgXml = image.svgData;\n const rgbHex = /#([0-9A-F]{3,6})/gi;\n return svgXml.replace(rgbHex, () => ColorUtils.getStyleFromHsl(color, opacity));\n }\n static getLinkColor(p1, p2, linkColor) {\n var _a, _b;\n if (linkColor === Constants_1.Constants.randomColorValue) {\n return ColorUtils.getRandomRgbColor();\n }\n else if (linkColor === \"mid\") {\n const sourceColor = (_a = p1.getFillColor()) !== null && _a !== void 0 ? _a : p1.getStrokeColor();\n const destColor = (_b = p2 === null || p2 === void 0 ? void 0 : p2.getFillColor()) !== null && _b !== void 0 ? _b : p2 === null || p2 === void 0 ? void 0 : p2.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return ColorUtils.mix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n }\n else {\n const hslColor = sourceColor !== null && sourceColor !== void 0 ? sourceColor : destColor;\n if (hslColor) {\n return ColorUtils.hslToRgb(hslColor);\n }\n }\n }\n else {\n return linkColor;\n }\n }\n static getLinkRandomColor(optColor, blink, consent) {\n const color = typeof optColor === \"string\" ? optColor : optColor.value;\n if (color === Constants_1.Constants.randomColorValue) {\n if (consent) {\n return ColorUtils.colorToRgb({\n value: color,\n });\n }\n else if (blink) {\n return Constants_1.Constants.randomColorValue;\n }\n else {\n return Constants_1.Constants.midColorValue;\n }\n }\n else {\n return ColorUtils.colorToRgb({\n value: color,\n });\n }\n }\n}\nexports.ColorUtils = ColorUtils;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CanvasUtils = void 0;\nconst ColorUtils_1 = require(\"./ColorUtils\");\nconst NumberUtils_1 = require(\"./NumberUtils\");\nfunction drawLine(context, begin, end) {\n context.beginPath();\n context.moveTo(begin.x, begin.y);\n context.lineTo(end.x, end.y);\n context.closePath();\n}\nfunction drawTriangle(context, p1, p2, p3) {\n context.beginPath();\n context.moveTo(p1.x, p1.y);\n context.lineTo(p2.x, p2.y);\n context.lineTo(p3.x, p3.y);\n context.closePath();\n}\nclass CanvasUtils {\n static paintBase(context, dimension, baseColor) {\n context.save();\n context.fillStyle = baseColor !== null && baseColor !== void 0 ? baseColor : \"rgba(0,0,0,0)\";\n context.fillRect(0, 0, dimension.width, dimension.height);\n context.restore();\n }\n static clear(context, dimension) {\n context.clearRect(0, 0, dimension.width, dimension.height);\n }\n static drawLinkLine(context, width, begin, end, maxDistance, canvasSize, warp, backgroundMask, composite, colorLine, opacity, shadow) {\n let drawn = false;\n if (NumberUtils_1.NumberUtils.getDistance(begin, end) <= maxDistance) {\n drawLine(context, begin, end);\n drawn = true;\n }\n else if (warp) {\n let pi1;\n let pi2;\n const endNE = {\n x: end.x - canvasSize.width,\n y: end.y,\n };\n const d1 = NumberUtils_1.NumberUtils.getDistances(begin, endNE);\n if (d1.distance <= maxDistance) {\n const yi = begin.y - (d1.dy / d1.dx) * begin.x;\n pi1 = { x: 0, y: yi };\n pi2 = { x: canvasSize.width, y: yi };\n }\n else {\n const endSW = {\n x: end.x,\n y: end.y - canvasSize.height,\n };\n const d2 = NumberUtils_1.NumberUtils.getDistances(begin, endSW);\n if (d2.distance <= maxDistance) {\n const yi = begin.y - (d2.dy / d2.dx) * begin.x;\n const xi = -yi / (d2.dy / d2.dx);\n pi1 = { x: xi, y: 0 };\n pi2 = { x: xi, y: canvasSize.height };\n }\n else {\n const endSE = {\n x: end.x - canvasSize.width,\n y: end.y - canvasSize.height,\n };\n const d3 = NumberUtils_1.NumberUtils.getDistances(begin, endSE);\n if (d3.distance <= maxDistance) {\n const yi = begin.y - (d3.dy / d3.dx) * begin.x;\n const xi = -yi / (d3.dy / d3.dx);\n pi1 = { x: xi, y: yi };\n pi2 = { x: pi1.x + canvasSize.width, y: pi1.y + canvasSize.height };\n }\n }\n }\n if (pi1 && pi2) {\n drawLine(context, begin, pi1);\n drawLine(context, end, pi2);\n drawn = true;\n }\n }\n if (!drawn) {\n return;\n }\n context.lineWidth = width;\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n context.strokeStyle = ColorUtils_1.ColorUtils.getStyleFromRgb(colorLine, opacity);\n if (shadow.enable) {\n const shadowColor = ColorUtils_1.ColorUtils.colorToRgb(shadow.color);\n if (shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = ColorUtils_1.ColorUtils.getStyleFromRgb(shadowColor);\n }\n }\n context.stroke();\n }\n static drawLinkTriangle(context, pos1, pos2, pos3, backgroundMask, composite, colorTriangle, opacityTriangle) {\n drawTriangle(context, pos1, pos2, pos3);\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n context.fillStyle = ColorUtils_1.ColorUtils.getStyleFromRgb(colorTriangle, opacityTriangle);\n context.fill();\n }\n static drawConnectLine(context, width, lineStyle, begin, end) {\n context.save();\n drawLine(context, begin, end);\n context.lineWidth = width;\n context.strokeStyle = lineStyle;\n context.stroke();\n context.restore();\n }\n static gradient(context, p1, p2, opacity) {\n const gradStop = Math.floor(p2.getRadius() / p1.getRadius());\n const color1 = p1.getFillColor();\n const color2 = p2.getFillColor();\n if (!color1 || !color2) {\n return;\n }\n const sourcePos = p1.getPosition();\n const destPos = p2.getPosition();\n const midRgb = ColorUtils_1.ColorUtils.mix(color1, color2, p1.getRadius(), p2.getRadius());\n const grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y);\n grad.addColorStop(0, ColorUtils_1.ColorUtils.getStyleFromHsl(color1, opacity));\n grad.addColorStop(gradStop > 1 ? 1 : gradStop, ColorUtils_1.ColorUtils.getStyleFromRgb(midRgb, opacity));\n grad.addColorStop(1, ColorUtils_1.ColorUtils.getStyleFromHsl(color2, opacity));\n return grad;\n }\n static drawGrabLine(context, width, begin, end, colorLine, opacity) {\n context.save();\n drawLine(context, begin, end);\n context.strokeStyle = ColorUtils_1.ColorUtils.getStyleFromRgb(colorLine, opacity);\n context.lineWidth = width;\n context.stroke();\n context.restore();\n }\n static drawLight(container, context, mousePos) {\n const lightOptions = container.options.interactivity.modes.light.area;\n context.beginPath();\n context.arc(mousePos.x, mousePos.y, lightOptions.radius, 0, 2 * Math.PI);\n const gradientAmbientLight = context.createRadialGradient(mousePos.x, mousePos.y, 0, mousePos.x, mousePos.y, lightOptions.radius);\n const gradient = lightOptions.gradient;\n const gradientRgb = {\n start: ColorUtils_1.ColorUtils.colorToRgb(gradient.start),\n stop: ColorUtils_1.ColorUtils.colorToRgb(gradient.stop),\n };\n if (!gradientRgb.start || !gradientRgb.stop) {\n return;\n }\n gradientAmbientLight.addColorStop(0, ColorUtils_1.ColorUtils.getStyleFromRgb(gradientRgb.start));\n gradientAmbientLight.addColorStop(1, ColorUtils_1.ColorUtils.getStyleFromRgb(gradientRgb.stop));\n context.fillStyle = gradientAmbientLight;\n context.fill();\n }\n static drawParticleShadow(container, context, particle, mousePos) {\n const pos = particle.getPosition();\n const shadowOptions = container.options.interactivity.modes.light.shadow;\n context.save();\n const radius = particle.getRadius();\n const sides = particle.sides;\n const full = (Math.PI * 2) / sides;\n const angle = -particle.rotate.value + Math.PI / 4;\n const factor = 1;\n const dots = [];\n for (let i = 0; i < sides; i++) {\n dots.push({\n x: pos.x + radius * Math.sin(angle + full * i) * factor,\n y: pos.y + radius * Math.cos(angle + full * i) * factor,\n });\n }\n const points = [];\n const shadowLength = shadowOptions.length;\n for (const dot of dots) {\n const dotAngle = Math.atan2(mousePos.y - dot.y, mousePos.x - dot.x);\n const endX = dot.x + shadowLength * Math.sin(-dotAngle - Math.PI / 2);\n const endY = dot.y + shadowLength * Math.cos(-dotAngle - Math.PI / 2);\n points.push({\n endX: endX,\n endY: endY,\n startX: dot.x,\n startY: dot.y,\n });\n }\n const shadowRgb = ColorUtils_1.ColorUtils.colorToRgb(shadowOptions.color);\n if (!shadowRgb) {\n return;\n }\n const shadowColor = ColorUtils_1.ColorUtils.getStyleFromRgb(shadowRgb);\n for (let i = points.length - 1; i >= 0; i--) {\n const n = i == points.length - 1 ? 0 : i + 1;\n context.beginPath();\n context.moveTo(points[i].startX, points[i].startY);\n context.lineTo(points[n].startX, points[n].startY);\n context.lineTo(points[n].endX, points[n].endY);\n context.lineTo(points[i].endX, points[i].endY);\n context.fillStyle = shadowColor;\n context.fill();\n }\n context.restore();\n }\n static drawParticle(container, context, particle, delta, fillColorValue, strokeColorValue, backgroundMask, composite, radius, opacity, shadow) {\n const pos = particle.getPosition();\n context.save();\n context.translate(pos.x, pos.y);\n context.beginPath();\n const angle = particle.rotate.value + (particle.particlesOptions.rotate.path ? particle.pathAngle : 0);\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n const shadowColor = particle.shadowColor;\n if (shadow.enable && shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = ColorUtils_1.ColorUtils.getStyleFromRgb(shadowColor);\n context.shadowOffsetX = shadow.offset.x;\n context.shadowOffsetY = shadow.offset.y;\n }\n if (fillColorValue) {\n context.fillStyle = fillColorValue;\n }\n const stroke = particle.stroke;\n context.lineWidth = particle.strokeWidth;\n if (strokeColorValue) {\n context.strokeStyle = strokeColorValue;\n }\n CanvasUtils.drawShape(container, context, particle, radius, opacity, delta);\n if (stroke.width > 0) {\n context.stroke();\n }\n if (particle.close) {\n context.closePath();\n }\n if (particle.fill) {\n context.fill();\n }\n context.restore();\n context.save();\n context.translate(pos.x, pos.y);\n if (angle !== 0) {\n context.rotate(angle);\n }\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n CanvasUtils.drawShapeAfterEffect(container, context, particle, radius, opacity, delta);\n context.restore();\n }\n static drawShape(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!drawer) {\n return;\n }\n drawer.draw(context, particle, radius, opacity, delta.value, container.retina.pixelRatio);\n }\n static drawShapeAfterEffect(container, context, particle, radius, opacity, delta) {\n if (!particle.shape) {\n return;\n }\n const drawer = container.drawers.get(particle.shape);\n if (!(drawer === null || drawer === void 0 ? void 0 : drawer.afterEffect)) {\n return;\n }\n drawer.afterEffect(context, particle, radius, opacity, delta.value, container.retina.pixelRatio);\n }\n static drawPlugin(context, plugin, delta) {\n if (plugin.draw !== undefined) {\n context.save();\n plugin.draw(context, delta);\n context.restore();\n }\n }\n}\nexports.CanvasUtils = CanvasUtils;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Range = void 0;\nclass Range {\n constructor(x, y) {\n this.position = {\n x: x,\n y: y,\n };\n }\n}\nexports.Range = Range;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Circle = void 0;\nconst Range_1 = require(\"./Range\");\nclass Circle extends Range_1.Range {\n constructor(x, y, radius) {\n super(x, y);\n this.radius = radius;\n }\n contains(point) {\n const d = Math.pow(point.x - this.position.x, 2) + Math.pow(point.y - this.position.y, 2);\n return d <= this.radius * this.radius;\n }\n intersects(range) {\n const rect = range;\n const circle = range;\n const pos1 = this.position;\n const pos2 = range.position;\n const xDist = Math.abs(pos2.x - pos1.x);\n const yDist = Math.abs(pos2.y - pos1.y);\n const r = this.radius;\n if (circle.radius !== undefined) {\n const rSum = r + circle.radius;\n const dist = Math.sqrt(xDist * xDist + yDist + yDist);\n return rSum > dist;\n }\n else if (rect.size !== undefined) {\n const w = rect.size.width;\n const h = rect.size.height;\n const edges = Math.pow(xDist - w, 2) + Math.pow(yDist - h, 2);\n if (xDist > r + w || yDist > r + h) {\n return false;\n }\n if (xDist <= w || yDist <= h) {\n return true;\n }\n return edges <= r * r;\n }\n return false;\n }\n}\nexports.Circle = Circle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Rectangle = void 0;\nconst Range_1 = require(\"./Range\");\nclass Rectangle extends Range_1.Range {\n constructor(x, y, width, height) {\n super(x, y);\n this.size = {\n height: height,\n width: width,\n };\n }\n contains(point) {\n const w = this.size.width;\n const h = this.size.height;\n const pos = this.position;\n return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h;\n }\n intersects(range) {\n const rect = range;\n const circle = range;\n const w = this.size.width;\n const h = this.size.height;\n const pos1 = this.position;\n const pos2 = range.position;\n if (circle.radius !== undefined) {\n return circle.intersects(this);\n }\n else if (rect.size !== undefined) {\n const size2 = rect.size;\n const w2 = size2.width;\n const h2 = size2.height;\n return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y;\n }\n return false;\n }\n}\nexports.Rectangle = Rectangle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CircleWarp = void 0;\nconst Rectangle_1 = require(\"./Rectangle\");\nconst Circle_1 = require(\"./Circle\");\nclass CircleWarp extends Circle_1.Circle {\n constructor(x, y, radius, canvasSize) {\n super(x, y, radius);\n this.canvasSize = canvasSize;\n this.canvasSize = {\n height: canvasSize.height,\n width: canvasSize.width,\n };\n }\n contains(point) {\n if (super.contains(point)) {\n return true;\n }\n const posNE = {\n x: point.x - this.canvasSize.width,\n y: point.y,\n };\n if (super.contains(posNE)) {\n return true;\n }\n const posSE = {\n x: point.x - this.canvasSize.width,\n y: point.y - this.canvasSize.height,\n };\n if (super.contains(posSE)) {\n return true;\n }\n const posSW = {\n x: point.x,\n y: point.y - this.canvasSize.height,\n };\n return super.contains(posSW);\n }\n intersects(range) {\n if (super.intersects(range)) {\n return true;\n }\n const rect = range;\n const circle = range;\n const newPos = {\n x: range.position.x - this.canvasSize.width,\n y: range.position.y - this.canvasSize.height,\n };\n if (circle.radius !== undefined) {\n const biggerCircle = new Circle_1.Circle(newPos.x, newPos.y, circle.radius * 2);\n return super.intersects(biggerCircle);\n }\n else if (rect.size !== undefined) {\n const rectSW = new Rectangle_1.Rectangle(newPos.x, newPos.y, rect.size.width * 2, rect.size.height * 2);\n return super.intersects(rectSW);\n }\n return false;\n }\n}\nexports.CircleWarp = CircleWarp;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClickMode = void 0;\nvar ClickMode;\n(function (ClickMode) {\n ClickMode[\"attract\"] = \"attract\";\n ClickMode[\"bubble\"] = \"bubble\";\n ClickMode[\"push\"] = \"push\";\n ClickMode[\"remove\"] = \"remove\";\n ClickMode[\"repulse\"] = \"repulse\";\n ClickMode[\"pause\"] = \"pause\";\n ClickMode[\"trail\"] = \"trail\";\n})(ClickMode = exports.ClickMode || (exports.ClickMode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DivMode = void 0;\nvar DivMode;\n(function (DivMode) {\n DivMode[\"bounce\"] = \"bounce\";\n DivMode[\"bubble\"] = \"bubble\";\n DivMode[\"repulse\"] = \"repulse\";\n})(DivMode = exports.DivMode || (exports.DivMode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HoverMode = void 0;\nvar HoverMode;\n(function (HoverMode) {\n HoverMode[\"attract\"] = \"attract\";\n HoverMode[\"bounce\"] = \"bounce\";\n HoverMode[\"bubble\"] = \"bubble\";\n HoverMode[\"connect\"] = \"connect\";\n HoverMode[\"grab\"] = \"grab\";\n HoverMode[\"light\"] = \"light\";\n HoverMode[\"repulse\"] = \"repulse\";\n HoverMode[\"slow\"] = \"slow\";\n HoverMode[\"trail\"] = \"trail\";\n})(HoverMode = exports.HoverMode || (exports.HoverMode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CollisionMode = void 0;\nvar CollisionMode;\n(function (CollisionMode) {\n CollisionMode[\"absorb\"] = \"absorb\";\n CollisionMode[\"bounce\"] = \"bounce\";\n CollisionMode[\"destroy\"] = \"destroy\";\n})(CollisionMode = exports.CollisionMode || (exports.CollisionMode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OutMode = void 0;\nvar OutMode;\n(function (OutMode) {\n OutMode[\"bounce\"] = \"bounce\";\n OutMode[\"bounceHorizontal\"] = \"bounce-horizontal\";\n OutMode[\"bounceVertical\"] = \"bounce-vertical\";\n OutMode[\"none\"] = \"none\";\n OutMode[\"out\"] = \"out\";\n OutMode[\"destroy\"] = \"destroy\";\n})(OutMode = exports.OutMode || (exports.OutMode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SizeMode = void 0;\nvar SizeMode;\n(function (SizeMode) {\n SizeMode[\"precise\"] = \"precise\";\n SizeMode[\"percent\"] = \"percent\";\n})(SizeMode = exports.SizeMode || (exports.SizeMode = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ThemeMode = void 0;\nvar ThemeMode;\n(function (ThemeMode) {\n ThemeMode[\"any\"] = \"any\";\n ThemeMode[\"dark\"] = \"dark\";\n ThemeMode[\"light\"] = \"light\";\n})(ThemeMode = exports.ThemeMode || (exports.ThemeMode = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./ClickMode\"), exports);\n__exportStar(require(\"./DivMode\"), exports);\n__exportStar(require(\"./HoverMode\"), exports);\n__exportStar(require(\"./CollisionMode\"), exports);\n__exportStar(require(\"./OutMode\"), exports);\n__exportStar(require(\"./SizeMode\"), exports);\n__exportStar(require(\"./ThemeMode\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnimationStatus = void 0;\nvar AnimationStatus;\n(function (AnimationStatus) {\n AnimationStatus[AnimationStatus[\"increasing\"] = 0] = \"increasing\";\n AnimationStatus[AnimationStatus[\"decreasing\"] = 1] = \"decreasing\";\n})(AnimationStatus = exports.AnimationStatus || (exports.AnimationStatus = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DestroyType = void 0;\nvar DestroyType;\n(function (DestroyType) {\n DestroyType[\"none\"] = \"none\";\n DestroyType[\"max\"] = \"max\";\n DestroyType[\"min\"] = \"min\";\n})(DestroyType = exports.DestroyType || (exports.DestroyType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ProcessBubbleType = void 0;\nvar ProcessBubbleType;\n(function (ProcessBubbleType) {\n ProcessBubbleType[\"color\"] = \"color\";\n ProcessBubbleType[\"opacity\"] = \"opacity\";\n ProcessBubbleType[\"size\"] = \"size\";\n})(ProcessBubbleType = exports.ProcessBubbleType || (exports.ProcessBubbleType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ShapeType = void 0;\nvar ShapeType;\n(function (ShapeType) {\n ShapeType[\"char\"] = \"char\";\n ShapeType[\"character\"] = \"character\";\n ShapeType[\"circle\"] = \"circle\";\n ShapeType[\"edge\"] = \"edge\";\n ShapeType[\"image\"] = \"image\";\n ShapeType[\"images\"] = \"images\";\n ShapeType[\"line\"] = \"line\";\n ShapeType[\"polygon\"] = \"polygon\";\n ShapeType[\"square\"] = \"square\";\n ShapeType[\"star\"] = \"star\";\n ShapeType[\"triangle\"] = \"triangle\";\n})(ShapeType = exports.ShapeType || (exports.ShapeType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StartValueType = void 0;\nvar StartValueType;\n(function (StartValueType) {\n StartValueType[\"max\"] = \"max\";\n StartValueType[\"min\"] = \"min\";\n StartValueType[\"random\"] = \"random\";\n})(StartValueType = exports.StartValueType || (exports.StartValueType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DivType = void 0;\nvar DivType;\n(function (DivType) {\n DivType[\"circle\"] = \"circle\";\n DivType[\"rectangle\"] = \"rectangle\";\n})(DivType = exports.DivType || (exports.DivType = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./DestroyType\"), exports);\n__exportStar(require(\"./ProcessBubbleType\"), exports);\n__exportStar(require(\"./ShapeType\"), exports);\n__exportStar(require(\"./StartValueType\"), exports);\n__exportStar(require(\"./DivType\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InteractivityDetect = void 0;\nvar InteractivityDetect;\n(function (InteractivityDetect) {\n InteractivityDetect[\"canvas\"] = \"canvas\";\n InteractivityDetect[\"parent\"] = \"parent\";\n InteractivityDetect[\"window\"] = \"window\";\n})(InteractivityDetect = exports.InteractivityDetect || (exports.InteractivityDetect = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./Directions\"), exports);\n__exportStar(require(\"./Modes\"), exports);\n__exportStar(require(\"./AnimationStatus\"), exports);\n__exportStar(require(\"./Types\"), exports);\n__exportStar(require(\"./InteractivityDetect\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EventListeners = void 0;\nconst Enums_1 = require(\"../Enums\");\nconst Constants_1 = require(\"./Constants\");\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = { passive: true };\n if (typeof options === \"boolean\") {\n addOptions.capture = options;\n }\n else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n }\n else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nclass EventListeners {\n constructor(container) {\n this.container = container;\n this.canPush = true;\n this.mouseMoveHandler = (e) => this.mouseTouchMove(e);\n this.touchStartHandler = (e) => this.mouseTouchMove(e);\n this.touchMoveHandler = (e) => this.mouseTouchMove(e);\n this.touchEndHandler = () => this.mouseTouchFinish();\n this.mouseLeaveHandler = () => this.mouseTouchFinish();\n this.touchCancelHandler = () => this.mouseTouchFinish();\n this.touchEndClickHandler = (e) => this.mouseTouchClick(e);\n this.mouseUpHandler = (e) => this.mouseTouchClick(e);\n this.mouseDownHandler = () => this.mouseDown();\n this.visibilityChangeHandler = () => this.handleVisibilityChange();\n this.resizeHandler = () => this.handleWindowResize();\n }\n addListeners() {\n this.manageListeners(true);\n }\n removeListeners() {\n this.manageListeners(false);\n }\n manageListeners(add) {\n var _a;\n const container = this.container;\n const options = container.options;\n const detectType = options.interactivity.detectsOn;\n let mouseLeaveEvent = Constants_1.Constants.mouseLeaveEvent;\n if (detectType === Enums_1.InteractivityDetect.window) {\n container.interactivity.element = window;\n mouseLeaveEvent = Constants_1.Constants.mouseOutEvent;\n }\n else if (detectType === Enums_1.InteractivityDetect.parent && container.canvas.element) {\n const canvasEl = container.canvas.element;\n container.interactivity.element = (_a = canvasEl.parentElement) !== null && _a !== void 0 ? _a : canvasEl.parentNode;\n }\n else {\n container.interactivity.element = container.canvas.element;\n }\n const interactivityEl = container.interactivity.element;\n if (!interactivityEl) {\n return;\n }\n const html = interactivityEl;\n if (options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, Constants_1.Constants.mouseMoveEvent, this.mouseMoveHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.touchStartEvent, this.touchStartHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.touchMoveEvent, this.touchMoveHandler, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, Constants_1.Constants.touchEndEvent, this.touchEndHandler, add);\n }\n else {\n manageListener(interactivityEl, Constants_1.Constants.touchEndEvent, this.touchEndClickHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.mouseUpEvent, this.mouseUpHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.mouseDownEvent, this.mouseDownHandler, add);\n }\n manageListener(interactivityEl, mouseLeaveEvent, this.mouseLeaveHandler, add);\n manageListener(interactivityEl, Constants_1.Constants.touchCancelEvent, this.touchCancelHandler, add);\n }\n if (container.canvas.element) {\n container.canvas.element.style.pointerEvents = html === container.canvas.element ? \"initial\" : \"none\";\n }\n if (options.interactivity.events.resize) {\n manageListener(window, Constants_1.Constants.resizeEvent, this.resizeHandler, add);\n }\n if (document) {\n manageListener(document, Constants_1.Constants.visibilityChangeEvent, this.visibilityChangeHandler, add, false);\n }\n }\n handleWindowResize() {\n var _a;\n (_a = this.container.canvas) === null || _a === void 0 ? void 0 : _a.windowResize();\n }\n handleVisibilityChange() {\n const container = this.container;\n const options = container.options;\n this.mouseTouchFinish();\n if (!options.pauseOnBlur) {\n return;\n }\n if (document === null || document === void 0 ? void 0 : document.hidden) {\n container.pageHidden = true;\n container.pause();\n }\n else {\n container.pageHidden = false;\n if (container.getAnimationStatus()) {\n container.play(true);\n }\n else {\n container.draw();\n }\n }\n }\n mouseDown() {\n const interactivity = this.container.interactivity;\n if (interactivity) {\n const mouse = interactivity.mouse;\n mouse.clicking = true;\n mouse.downPosition = mouse.position;\n }\n }\n mouseTouchMove(e) {\n var _a, _b, _c, _d, _e, _f, _g;\n const container = this.container;\n const options = container.options;\n if (((_a = container.interactivity) === null || _a === void 0 ? void 0 : _a.element) === undefined) {\n return;\n }\n container.interactivity.mouse.inside = true;\n let pos;\n const canvas = container.canvas.element;\n if (e.type.startsWith(\"mouse\")) {\n this.canPush = true;\n const mouseEvent = e;\n if (container.interactivity.element === window) {\n if (canvas) {\n const clientRect = canvas.getBoundingClientRect();\n pos = {\n x: mouseEvent.clientX - clientRect.left,\n y: mouseEvent.clientY - clientRect.top,\n };\n }\n }\n else if (options.interactivity.detectsOn === Enums_1.InteractivityDetect.parent) {\n const source = mouseEvent.target;\n const target = mouseEvent.currentTarget;\n const canvasEl = container.canvas.element;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect();\n const targetRect = target.getBoundingClientRect();\n const canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.offsetX + 2 * sourceRect.left - (targetRect.left + canvasRect.left),\n y: mouseEvent.offsetY + 2 * sourceRect.top - (targetRect.top + canvasRect.top),\n };\n }\n else {\n pos = {\n x: (_b = mouseEvent.offsetX) !== null && _b !== void 0 ? _b : mouseEvent.clientX,\n y: (_c = mouseEvent.offsetY) !== null && _c !== void 0 ? _c : mouseEvent.clientY,\n };\n }\n }\n else {\n if (mouseEvent.target === container.canvas.element) {\n pos = {\n x: (_d = mouseEvent.offsetX) !== null && _d !== void 0 ? _d : mouseEvent.clientX,\n y: (_e = mouseEvent.offsetY) !== null && _e !== void 0 ? _e : mouseEvent.clientY,\n };\n }\n }\n }\n else {\n this.canPush = e.type !== \"touchmove\";\n const touchEvent = e;\n const lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n const canvasRect = canvas === null || canvas === void 0 ? void 0 : canvas.getBoundingClientRect();\n pos = {\n x: lastTouch.clientX - ((_f = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _f !== void 0 ? _f : 0),\n y: lastTouch.clientY - ((_g = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _g !== void 0 ? _g : 0),\n };\n }\n const pxRatio = container.retina.pixelRatio;\n if (pos) {\n pos.x *= pxRatio;\n pos.y *= pxRatio;\n }\n container.interactivity.mouse.position = pos;\n container.interactivity.status = Constants_1.Constants.mouseMoveEvent;\n }\n mouseTouchFinish() {\n const interactivity = this.container.interactivity;\n if (interactivity === undefined) {\n return;\n }\n const mouse = interactivity.mouse;\n delete mouse.position;\n delete mouse.clickPosition;\n delete mouse.downPosition;\n interactivity.status = Constants_1.Constants.mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n }\n mouseTouchClick(e) {\n const container = this.container;\n const options = container.options;\n const mouse = container.interactivity.mouse;\n mouse.inside = true;\n let handled = false;\n const mousePosition = mouse.position;\n if (mousePosition === undefined || !options.interactivity.events.onClick.enable) {\n return;\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.clickPositionValid !== undefined) {\n handled = plugin.clickPositionValid(mousePosition);\n if (handled) {\n break;\n }\n }\n }\n if (!handled) {\n this.doMouseTouchClick(e);\n }\n mouse.clicking = false;\n }\n doMouseTouchClick(e) {\n const container = this.container;\n const options = container.options;\n if (this.canPush) {\n const mousePos = container.interactivity.mouse.position;\n if (mousePos) {\n container.interactivity.mouse.clickPosition = {\n x: mousePos.x,\n y: mousePos.y,\n };\n }\n else {\n return;\n }\n container.interactivity.mouse.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n if (onClick.mode instanceof Array) {\n for (const mode of onClick.mode) {\n this.handleClickMode(mode);\n }\n }\n else {\n this.handleClickMode(onClick.mode);\n }\n }\n if (e.type === \"touchend\") {\n setTimeout(() => this.mouseTouchFinish(), 500);\n }\n }\n handleClickMode(mode) {\n const container = this.container;\n const options = container.options;\n const pushNb = options.interactivity.modes.push.quantity;\n const removeNb = options.interactivity.modes.remove.quantity;\n switch (mode) {\n case Enums_1.ClickMode.push: {\n if (pushNb > 0) {\n container.particles.push(pushNb, container.interactivity.mouse);\n }\n break;\n }\n case Enums_1.ClickMode.remove:\n container.particles.removeQuantity(removeNb);\n break;\n case Enums_1.ClickMode.bubble:\n container.bubble.clicking = true;\n break;\n case Enums_1.ClickMode.repulse:\n container.repulse.clicking = true;\n container.repulse.count = 0;\n for (const particle of container.repulse.particles) {\n particle.velocity.horizontal = particle.initialVelocity.horizontal;\n particle.velocity.vertical = particle.initialVelocity.vertical;\n }\n container.repulse.particles = [];\n container.repulse.finish = false;\n setTimeout(() => {\n if (!container.destroyed) {\n container.repulse.clicking = false;\n }\n }, options.interactivity.modes.repulse.duration * 1000);\n break;\n case Enums_1.ClickMode.attract:\n container.attract.clicking = true;\n container.attract.count = 0;\n for (const particle of container.attract.particles) {\n particle.velocity.horizontal = particle.initialVelocity.horizontal;\n particle.velocity.vertical = particle.initialVelocity.vertical;\n }\n container.attract.particles = [];\n container.attract.finish = false;\n setTimeout(() => {\n if (!container.destroyed) {\n container.attract.clicking = false;\n }\n }, options.interactivity.modes.attract.duration * 1000);\n break;\n case Enums_1.ClickMode.pause:\n if (container.getAnimationStatus()) {\n container.pause();\n }\n else {\n container.play();\n }\n break;\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.handleClickMode) {\n plugin.handleClickMode(mode);\n }\n }\n }\n}\nexports.EventListeners = EventListeners;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Plugins = void 0;\nconst plugins = [];\nconst presets = new Map();\nconst drawers = new Map();\nclass Plugins {\n static getPlugin(plugin) {\n return plugins.find((t) => t.id === plugin);\n }\n static addPlugin(plugin) {\n if (!Plugins.getPlugin(plugin.id)) {\n plugins.push(plugin);\n }\n }\n static getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of plugins) {\n if (!plugin.needsPlugin(container.options)) {\n continue;\n }\n res.set(plugin.id, plugin.getPlugin(container));\n }\n return res;\n }\n static loadOptions(options, sourceOptions) {\n for (const plugin of plugins) {\n plugin.loadOptions(options, sourceOptions);\n }\n }\n static getPreset(preset) {\n return presets.get(preset);\n }\n static addPreset(presetKey, options) {\n if (!Plugins.getPreset(presetKey)) {\n presets.set(presetKey, options);\n }\n }\n static addShapeDrawer(type, drawer) {\n if (!Plugins.getShapeDrawer(type)) {\n drawers.set(type, drawer);\n }\n }\n static getShapeDrawer(type) {\n return drawers.get(type);\n }\n static getSupportedShapes() {\n return drawers.keys();\n }\n}\nexports.Plugins = Plugins;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Point = void 0;\nclass Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}\nexports.Point = Point;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.QuadTree = void 0;\nconst Rectangle_1 = require(\"./Rectangle\");\nconst Circle_1 = require(\"./Circle\");\nconst CircleWarp_1 = require(\"./CircleWarp\");\nclass QuadTree {\n constructor(rectangle, capacity) {\n this.rectangle = rectangle;\n this.capacity = capacity;\n this.points = [];\n this.divided = false;\n }\n subdivide() {\n const x = this.rectangle.position.x;\n const y = this.rectangle.position.y;\n const w = this.rectangle.size.width;\n const h = this.rectangle.size.height;\n const capacity = this.capacity;\n this.northEast = new QuadTree(new Rectangle_1.Rectangle(x, y, w / 2, h / 2), capacity);\n this.northWest = new QuadTree(new Rectangle_1.Rectangle(x + w / 2, y, w / 2, h / 2), capacity);\n this.southEast = new QuadTree(new Rectangle_1.Rectangle(x, y + h / 2, w / 2, h / 2), capacity);\n this.southWest = new QuadTree(new Rectangle_1.Rectangle(x + w / 2, y + h / 2, w / 2, h / 2), capacity);\n this.divided = true;\n }\n insert(point) {\n var _a, _b, _c, _d, _e;\n if (!this.rectangle.contains(point.position)) {\n return false;\n }\n if (this.points.length < this.capacity) {\n this.points.push(point);\n return true;\n }\n if (!this.divided) {\n this.subdivide();\n }\n return ((_e = (((_a = this.northEast) === null || _a === void 0 ? void 0 : _a.insert(point)) || ((_b = this.northWest) === null || _b === void 0 ? void 0 : _b.insert(point)) || ((_c = this.southEast) === null || _c === void 0 ? void 0 : _c.insert(point)) || ((_d = this.southWest) === null || _d === void 0 ? void 0 : _d.insert(point)))) !== null && _e !== void 0 ? _e : false);\n }\n queryCircle(position, radius) {\n return this.query(new Circle_1.Circle(position.x, position.y, radius));\n }\n queryCircleWarp(position, radius, containerOrSize) {\n const container = containerOrSize;\n const size = containerOrSize;\n return this.query(new CircleWarp_1.CircleWarp(position.x, position.y, radius, container.canvas !== undefined ? container.canvas.size : size));\n }\n queryRectangle(position, size) {\n return this.query(new Rectangle_1.Rectangle(position.x, position.y, size.width, size.height));\n }\n query(range, found) {\n var _a, _b, _c, _d;\n const res = found !== null && found !== void 0 ? found : [];\n if (!range.intersects(this.rectangle)) {\n return [];\n }\n else {\n for (const p of this.points) {\n if (!range.contains(p.position)) {\n continue;\n }\n res.push(p.particle);\n }\n if (this.divided) {\n (_a = this.northEast) === null || _a === void 0 ? void 0 : _a.query(range, res);\n (_b = this.northWest) === null || _b === void 0 ? void 0 : _b.query(range, res);\n (_c = this.southEast) === null || _c === void 0 ? void 0 : _c.query(range, res);\n (_d = this.southWest) === null || _d === void 0 ? void 0 : _d.query(range, res);\n }\n }\n return res;\n }\n}\nexports.QuadTree = QuadTree;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./CanvasUtils\"), exports);\n__exportStar(require(\"./Circle\"), exports);\n__exportStar(require(\"./CircleWarp\"), exports);\n__exportStar(require(\"./ColorUtils\"), exports);\n__exportStar(require(\"./Constants\"), exports);\n__exportStar(require(\"./EventListeners\"), exports);\n__exportStar(require(\"./NumberUtils\"), exports);\n__exportStar(require(\"./Plugins\"), exports);\n__exportStar(require(\"./Point\"), exports);\n__exportStar(require(\"./QuadTree\"), exports);\n__exportStar(require(\"./Range\"), exports);\n__exportStar(require(\"./Rectangle\"), exports);\n__exportStar(require(\"./Utils\"), exports);\n","\"use strict\";\nvar __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TextDrawer = void 0;\nconst Utils_1 = require(\"../Utils\");\nconst Enums_1 = require(\"../Enums\");\nclass TextDrawer {\n getSidesCount() {\n return 12;\n }\n init(container) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const options = container.options;\n if (Utils_1.Utils.isInArray(Enums_1.ShapeType.char, options.particles.shape.type) ||\n Utils_1.Utils.isInArray(Enums_1.ShapeType.character, options.particles.shape.type)) {\n const shapeOptions = ((_a = options.particles.shape.options[Enums_1.ShapeType.character]) !== null && _a !== void 0 ? _a : options.particles.shape.options[Enums_1.ShapeType.char]);\n if (shapeOptions instanceof Array) {\n for (const character of shapeOptions) {\n yield Utils_1.Utils.loadFont(character);\n }\n }\n else {\n if (shapeOptions !== undefined) {\n yield Utils_1.Utils.loadFont(shapeOptions);\n }\n }\n }\n });\n }\n draw(context, particle, radius) {\n const character = particle.shapeData;\n if (character === undefined) {\n return;\n }\n const textData = character.value;\n if (textData === undefined) {\n return;\n }\n const textParticle = particle;\n if (textParticle.text === undefined) {\n textParticle.text =\n textData instanceof Array ? Utils_1.Utils.itemFromArray(textData, particle.randomIndexData) : textData;\n }\n const text = textParticle.text;\n const style = character.style;\n const weight = character.weight;\n const size = Math.round(radius) * 2;\n const font = character.font;\n const fill = particle.fill;\n const offsetX = (text.length * radius) / 2;\n context.font = `${style} ${weight} ${size}px \"${font}\"`;\n const pos = {\n x: -offsetX,\n y: radius / 2,\n };\n if (fill) {\n context.fillText(text, pos.x, pos.y);\n }\n else {\n context.strokeText(text, pos.x, pos.y);\n }\n }\n}\nexports.TextDrawer = TextDrawer;\n","\"use strict\";\nvar __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ImageDrawer = void 0;\nconst Utils_1 = require(\"../Utils\");\nconst Enums_1 = require(\"../Enums\");\nclass ImageDrawer {\n constructor() {\n this.images = [];\n }\n getSidesCount() {\n return 12;\n }\n getImages(container) {\n const containerImages = this.images.filter((t) => t.id === container.id);\n if (!containerImages.length) {\n this.images.push({\n id: container.id,\n images: [],\n });\n return this.getImages(container);\n }\n else {\n return containerImages[0];\n }\n }\n addImage(container, image) {\n const containerImages = this.getImages(container);\n containerImages === null || containerImages === void 0 ? void 0 : containerImages.images.push(image);\n }\n init(container) {\n var _a;\n return __awaiter(this, void 0, void 0, function* () {\n const options = container.options;\n const shapeOptions = options.particles.shape;\n if (!Utils_1.Utils.isInArray(Enums_1.ShapeType.image, shapeOptions.type) &&\n !Utils_1.Utils.isInArray(Enums_1.ShapeType.images, shapeOptions.type)) {\n return;\n }\n const imageOptions = (_a = shapeOptions.options[Enums_1.ShapeType.images]) !== null && _a !== void 0 ? _a : shapeOptions.options[Enums_1.ShapeType.image];\n if (imageOptions instanceof Array) {\n for (const optionsImage of imageOptions) {\n yield this.loadImageShape(container, optionsImage);\n }\n }\n else {\n yield this.loadImageShape(container, imageOptions);\n }\n });\n }\n destroy() {\n this.images = [];\n }\n loadImageShape(container, imageShape) {\n return __awaiter(this, void 0, void 0, function* () {\n try {\n const image = imageShape.replaceColor\n ? yield Utils_1.Utils.downloadSvgImage(imageShape.src)\n : yield Utils_1.Utils.loadImage(imageShape.src);\n this.addImage(container, image);\n }\n catch (_a) {\n console.warn(`tsParticles error - ${imageShape.src} not found`);\n }\n });\n }\n draw(context, particle, radius, opacity) {\n var _a, _b;\n if (!context) {\n return;\n }\n const image = particle.image;\n const element = (_a = image === null || image === void 0 ? void 0 : image.data) === null || _a === void 0 ? void 0 : _a.element;\n if (!element) {\n return;\n }\n const ratio = (_b = image === null || image === void 0 ? void 0 : image.ratio) !== null && _b !== void 0 ? _b : 1;\n const pos = {\n x: -radius,\n y: -radius,\n };\n if (!(image === null || image === void 0 ? void 0 : image.data.svgData) || !(image === null || image === void 0 ? void 0 : image.replaceColor)) {\n context.globalAlpha = opacity;\n }\n context.drawImage(element, pos.x, pos.y, radius * 2, (radius * 2) / ratio);\n if (!(image === null || image === void 0 ? void 0 : image.data.svgData) || !(image === null || image === void 0 ? void 0 : image.replaceColor)) {\n context.globalAlpha = 1;\n }\n }\n}\nexports.ImageDrawer = ImageDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LineDrawer = void 0;\nclass LineDrawer {\n getSidesCount() {\n return 1;\n }\n draw(context, particle, radius) {\n context.moveTo(0, -radius / 2);\n context.lineTo(0, radius / 2);\n }\n}\nexports.LineDrawer = LineDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CircleDrawer = void 0;\nclass CircleDrawer {\n getSidesCount() {\n return 12;\n }\n draw(context, particle, radius) {\n context.arc(0, 0, radius, 0, Math.PI * 2, false);\n }\n}\nexports.CircleDrawer = CircleDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonDrawerBase = void 0;\nclass PolygonDrawerBase {\n getSidesCount(particle) {\n var _a, _b;\n const polygon = particle.shapeData;\n return (_b = (_a = polygon === null || polygon === void 0 ? void 0 : polygon.sides) !== null && _a !== void 0 ? _a : polygon === null || polygon === void 0 ? void 0 : polygon.nb_sides) !== null && _b !== void 0 ? _b : 5;\n }\n draw(context, particle, radius) {\n const start = this.getCenter(particle, radius);\n const side = this.getSidesData(particle, radius);\n const sideCount = side.count.numerator * side.count.denominator;\n const decimalSides = side.count.numerator / side.count.denominator;\n const interiorAngleDegrees = (180 * (decimalSides - 2)) / decimalSides;\n const interiorAngle = Math.PI - (Math.PI * interiorAngleDegrees) / 180;\n if (!context) {\n return;\n }\n context.beginPath();\n context.translate(start.x, start.y);\n context.moveTo(0, 0);\n for (let i = 0; i < sideCount; i++) {\n context.lineTo(side.length, 0);\n context.translate(side.length, 0);\n context.rotate(interiorAngle);\n }\n }\n}\nexports.PolygonDrawerBase = PolygonDrawerBase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TriangleDrawer = void 0;\nconst PolygonDrawerBase_1 = require(\"./PolygonDrawerBase\");\nclass TriangleDrawer extends PolygonDrawerBase_1.PolygonDrawerBase {\n getSidesCount() {\n return 3;\n }\n getSidesData(particle, radius) {\n return {\n count: {\n denominator: 2,\n numerator: 3,\n },\n length: radius * 2,\n };\n }\n getCenter(particle, radius) {\n return {\n x: -radius,\n y: radius / 1.66,\n };\n }\n}\nexports.TriangleDrawer = TriangleDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.StarDrawer = void 0;\nclass StarDrawer {\n getSidesCount(particle) {\n var _a, _b;\n const star = particle.shapeData;\n return (_b = (_a = star === null || star === void 0 ? void 0 : star.sides) !== null && _a !== void 0 ? _a : star === null || star === void 0 ? void 0 : star.nb_sides) !== null && _b !== void 0 ? _b : 5;\n }\n draw(context, particle, radius) {\n var _a;\n const star = particle.shapeData;\n const sides = this.getSidesCount(particle);\n const inset = (_a = star === null || star === void 0 ? void 0 : star.inset) !== null && _a !== void 0 ? _a : 2;\n context.moveTo(0, 0 - radius);\n for (let i = 0; i < sides; i++) {\n context.rotate(Math.PI / sides);\n context.lineTo(0, 0 - radius * inset);\n context.rotate(Math.PI / sides);\n context.lineTo(0, 0 - radius);\n }\n }\n}\nexports.StarDrawer = StarDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonDrawer = void 0;\nconst PolygonDrawerBase_1 = require(\"./PolygonDrawerBase\");\nclass PolygonDrawer extends PolygonDrawerBase_1.PolygonDrawerBase {\n getSidesData(particle, radius) {\n var _a, _b;\n const polygon = particle.shapeData;\n const sides = (_b = (_a = polygon === null || polygon === void 0 ? void 0 : polygon.sides) !== null && _a !== void 0 ? _a : polygon === null || polygon === void 0 ? void 0 : polygon.nb_sides) !== null && _b !== void 0 ? _b : 5;\n return {\n count: {\n denominator: 1,\n numerator: sides,\n },\n length: (radius * 2.66) / (sides / 3),\n };\n }\n getCenter(particle, radius) {\n const sides = this.getSidesCount(particle);\n return {\n x: -radius / (sides / 3.5),\n y: -radius / (2.66 / 3.5),\n };\n }\n}\nexports.PolygonDrawer = PolygonDrawer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Canvas = void 0;\nconst Utils_1 = require(\"../Utils\");\nclass Canvas {\n constructor(container) {\n this.container = container;\n this.size = {\n height: 0,\n width: 0,\n };\n this.context = null;\n this.generatedCanvas = false;\n }\n init() {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m;\n this.resize();\n const options = this.container.options;\n const element = this.element;\n if (element) {\n if (options.backgroundMode.enable) {\n this.originalStyle = Utils_1.Utils.deepExtend({}, element.style);\n element.style.position = \"fixed\";\n element.style.zIndex = options.backgroundMode.zIndex.toString(10);\n element.style.top = \"0\";\n element.style.left = \"0\";\n element.style.width = \"100%\";\n element.style.height = \"100%\";\n }\n else {\n element.style.position = (_b = (_a = this.originalStyle) === null || _a === void 0 ? void 0 : _a.position) !== null && _b !== void 0 ? _b : \"\";\n element.style.zIndex = (_d = (_c = this.originalStyle) === null || _c === void 0 ? void 0 : _c.zIndex) !== null && _d !== void 0 ? _d : \"\";\n element.style.top = (_f = (_e = this.originalStyle) === null || _e === void 0 ? void 0 : _e.top) !== null && _f !== void 0 ? _f : \"\";\n element.style.left = (_h = (_g = this.originalStyle) === null || _g === void 0 ? void 0 : _g.left) !== null && _h !== void 0 ? _h : \"\";\n element.style.width = (_k = (_j = this.originalStyle) === null || _j === void 0 ? void 0 : _j.width) !== null && _k !== void 0 ? _k : \"\";\n element.style.height = (_m = (_l = this.originalStyle) === null || _l === void 0 ? void 0 : _l.height) !== null && _m !== void 0 ? _m : \"\";\n }\n }\n const cover = options.backgroundMask.cover;\n const color = cover.color;\n const trail = options.particles.move.trail;\n const coverRgb = Utils_1.ColorUtils.colorToRgb(color);\n this.coverColor =\n coverRgb !== undefined\n ? {\n r: coverRgb.r,\n g: coverRgb.g,\n b: coverRgb.b,\n a: cover.opacity,\n }\n : undefined;\n this.trailFillColor = Utils_1.ColorUtils.colorToRgb(trail.fillColor);\n this.initBackground();\n this.paint();\n }\n loadCanvas(canvas, generatedCanvas) {\n var _a;\n if (!canvas.className) {\n canvas.className = Utils_1.Constants.canvasClass;\n }\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n this.generatedCanvas = generatedCanvas !== null && generatedCanvas !== void 0 ? generatedCanvas : this.generatedCanvas;\n this.element = canvas;\n this.originalStyle = Utils_1.Utils.deepExtend({}, this.element.style);\n this.size.height = canvas.offsetHeight;\n this.size.width = canvas.offsetWidth;\n this.context = this.element.getContext(\"2d\");\n this.container.retina.init();\n this.initBackground();\n }\n destroy() {\n var _a;\n if (this.generatedCanvas) {\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n }\n if (this.context) {\n Utils_1.CanvasUtils.clear(this.context, this.size);\n }\n }\n resize() {\n if (!this.element) {\n return;\n }\n this.element.width = this.size.width;\n this.element.height = this.size.height;\n }\n paint() {\n const options = this.container.options;\n if (!this.context) {\n return;\n }\n if (options.backgroundMask.enable && options.backgroundMask.cover && this.coverColor) {\n Utils_1.CanvasUtils.clear(this.context, this.size);\n this.paintBase(Utils_1.ColorUtils.getStyleFromRgb(this.coverColor, this.coverColor.a));\n }\n else {\n this.paintBase();\n }\n }\n clear() {\n const options = this.container.options;\n const trail = options.particles.move.trail;\n if (options.backgroundMask.enable) {\n this.paint();\n }\n else if (trail.enable && trail.length > 0 && this.trailFillColor) {\n this.paintBase(Utils_1.ColorUtils.getStyleFromRgb(this.trailFillColor, 1 / trail.length));\n }\n else if (this.context) {\n Utils_1.CanvasUtils.clear(this.context, this.size);\n }\n }\n windowResize() {\n if (!this.element) {\n return;\n }\n const container = this.container;\n container.canvas.initSize();\n container.particles.setDensity();\n for (const [, plugin] of container.plugins) {\n if (plugin.resize !== undefined) {\n plugin.resize();\n }\n }\n }\n initSize() {\n if (!this.element) {\n return;\n }\n const container = this.container;\n const pxRatio = container.retina.pixelRatio;\n container.canvas.size.width = this.element.offsetWidth * pxRatio;\n container.canvas.size.height = this.element.offsetHeight * pxRatio;\n this.element.width = container.canvas.size.width;\n this.element.height = container.canvas.size.height;\n }\n drawConnectLine(p1, p2) {\n var _a;\n const lineStyle = this.lineStyle(p1, p2);\n if (!lineStyle) {\n return;\n }\n const ctx = this.context;\n if (!ctx) {\n return;\n }\n const pos1 = p1.getPosition();\n const pos2 = p2.getPosition();\n Utils_1.CanvasUtils.drawConnectLine(ctx, (_a = p1.linksWidth) !== null && _a !== void 0 ? _a : this.container.retina.linksWidth, lineStyle, pos1, pos2);\n }\n drawGrabLine(particle, lineColor, opacity, mousePos) {\n var _a;\n const container = this.container;\n const ctx = container.canvas.context;\n if (!ctx) {\n return;\n }\n const beginPos = particle.getPosition();\n Utils_1.CanvasUtils.drawGrabLine(ctx, (_a = particle.linksWidth) !== null && _a !== void 0 ? _a : container.retina.linksWidth, beginPos, mousePos, lineColor, opacity);\n }\n drawParticleShadow(particle, mousePos) {\n if (!this.context) {\n return;\n }\n Utils_1.CanvasUtils.drawParticleShadow(this.container, this.context, particle, mousePos);\n }\n drawLinkTriangle(p1, link1, link2) {\n var _a;\n const container = this.container;\n const options = container.options;\n const p2 = link1.destination;\n const p3 = link2.destination;\n const triangleOptions = p1.particlesOptions.links.triangles;\n const opacityTriangle = (_a = triangleOptions.opacity) !== null && _a !== void 0 ? _a : (link1.opacity + link2.opacity) / 2;\n if (opacityTriangle <= 0) {\n return;\n }\n const pos1 = p1.getPosition();\n const pos2 = p2.getPosition();\n const pos3 = p3.getPosition();\n const ctx = this.context;\n if (!ctx) {\n return;\n }\n if (Utils_1.NumberUtils.getDistance(pos1, pos2) > container.retina.linksDistance ||\n Utils_1.NumberUtils.getDistance(pos3, pos2) > container.retina.linksDistance ||\n Utils_1.NumberUtils.getDistance(pos3, pos1) > container.retina.linksDistance) {\n return;\n }\n let colorTriangle = Utils_1.ColorUtils.colorToRgb(triangleOptions.color);\n if (!colorTriangle) {\n const linksOptions = p1.particlesOptions.links;\n const linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorTriangle = Utils_1.ColorUtils.getLinkColor(p1, p2, linkColor);\n }\n if (!colorTriangle) {\n return;\n }\n Utils_1.CanvasUtils.drawLinkTriangle(ctx, pos1, pos2, pos3, options.backgroundMask.enable, options.backgroundMask.composite, colorTriangle, opacityTriangle);\n }\n drawLinkLine(p1, link) {\n var _a, _b;\n const container = this.container;\n const options = container.options;\n const p2 = link.destination;\n let opacity = link.opacity;\n const pos1 = p1.getPosition();\n const pos2 = p2.getPosition();\n const ctx = this.context;\n if (!ctx) {\n return;\n }\n let colorLine;\n const twinkle = p1.particlesOptions.twinkle.lines;\n if (twinkle.enable) {\n const twinkleFreq = twinkle.frequency;\n const twinkleRgb = Utils_1.ColorUtils.colorToRgb(twinkle.color);\n const twinkling = Math.random() < twinkleFreq;\n if (twinkling && twinkleRgb !== undefined) {\n colorLine = twinkleRgb;\n opacity = twinkle.opacity;\n }\n }\n if (!colorLine) {\n const linksOptions = p1.particlesOptions.links;\n const linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorLine = Utils_1.ColorUtils.getLinkColor(p1, p2, linkColor);\n }\n if (!colorLine) {\n return;\n }\n const width = (_a = p1.linksWidth) !== null && _a !== void 0 ? _a : container.retina.linksWidth;\n const maxDistance = (_b = p1.linksDistance) !== null && _b !== void 0 ? _b : container.retina.linksDistance;\n Utils_1.CanvasUtils.drawLinkLine(ctx, width, pos1, pos2, maxDistance, container.canvas.size, p1.particlesOptions.links.warp, options.backgroundMask.enable, options.backgroundMask.composite, colorLine, opacity, p1.particlesOptions.links.shadow);\n }\n drawParticle(particle, delta) {\n var _a, _b, _c, _d;\n if (((_a = particle.image) === null || _a === void 0 ? void 0 : _a.loaded) === false || particle.spawning || particle.destroyed) {\n return;\n }\n const pfColor = particle.getFillColor();\n const psColor = (_b = particle.getStrokeColor()) !== null && _b !== void 0 ? _b : pfColor;\n if (!pfColor && !psColor) {\n return;\n }\n const options = this.container.options;\n const pOptions = particle.particlesOptions;\n const twinkle = pOptions.twinkle.particles;\n const twinkleFreq = twinkle.frequency;\n const twinkleRgb = Utils_1.ColorUtils.colorToRgb(twinkle.color);\n const twinkling = twinkle.enable && Math.random() < twinkleFreq;\n const radius = particle.getRadius();\n const opacity = twinkling ? twinkle.opacity : (_c = particle.bubble.opacity) !== null && _c !== void 0 ? _c : particle.opacity.value;\n const infectionStage = particle.infecter.infectionStage;\n const infection = options.infection;\n const infectionStages = infection.stages;\n const infectionColor = infectionStage !== undefined ? infectionStages[infectionStage].color : undefined;\n const infectionRgb = Utils_1.ColorUtils.colorToRgb(infectionColor);\n const fColor = twinkling && twinkleRgb !== undefined\n ? twinkleRgb\n : infectionRgb !== null && infectionRgb !== void 0 ? infectionRgb : (pfColor ? Utils_1.ColorUtils.hslToRgb(pfColor) : undefined);\n const sColor = twinkling && twinkleRgb !== undefined\n ? twinkleRgb\n : infectionRgb !== null && infectionRgb !== void 0 ? infectionRgb : (psColor ? Utils_1.ColorUtils.hslToRgb(psColor) : undefined);\n const fillColorValue = fColor !== undefined ? Utils_1.ColorUtils.getStyleFromRgb(fColor, opacity) : undefined;\n if (!this.context || (!fillColorValue && !sColor)) {\n return;\n }\n const strokeColorValue = sColor !== undefined\n ? Utils_1.ColorUtils.getStyleFromRgb(sColor, (_d = particle.stroke.opacity) !== null && _d !== void 0 ? _d : opacity)\n : fillColorValue;\n this.drawParticleLinks(particle);\n if (radius > 0) {\n Utils_1.CanvasUtils.drawParticle(this.container, this.context, particle, delta, fillColorValue, strokeColorValue, options.backgroundMask.enable, options.backgroundMask.composite, radius, opacity, particle.particlesOptions.shadow);\n }\n }\n drawParticleLinks(particle) {\n if (!this.context) {\n return;\n }\n const container = this.container;\n const particles = container.particles;\n const pOptions = particle.particlesOptions;\n if (particle.links.length > 0) {\n this.context.save();\n const p1Links = particle.links.filter((l) => {\n const linkFreq = container.particles.getLinkFrequency(particle, l.destination);\n return linkFreq <= pOptions.links.frequency;\n });\n for (const link of p1Links) {\n const p2 = link.destination;\n if (pOptions.links.triangles.enable) {\n const links = p1Links.map((l) => l.destination);\n const vertices = p2.links.filter((t) => {\n const linkFreq = container.particles.getLinkFrequency(p2, t.destination);\n return linkFreq <= p2.particlesOptions.links.frequency && links.indexOf(t.destination) >= 0;\n });\n if (vertices.length) {\n for (const vertex of vertices) {\n const p3 = vertex.destination;\n const triangleFreq = particles.getTriangleFrequency(particle, p2, p3);\n if (triangleFreq > pOptions.links.triangles.frequency) {\n continue;\n }\n this.drawLinkTriangle(particle, link, vertex);\n }\n }\n }\n if (link.opacity > 0 && container.retina.linksWidth > 0) {\n this.drawLinkLine(particle, link);\n }\n }\n this.context.restore();\n }\n }\n drawPlugin(plugin, delta) {\n if (!this.context) {\n return;\n }\n Utils_1.CanvasUtils.drawPlugin(this.context, plugin, delta);\n }\n drawLight(mousePos) {\n if (!this.context) {\n return;\n }\n Utils_1.CanvasUtils.drawLight(this.container, this.context, mousePos);\n }\n paintBase(baseColor) {\n if (!this.context) {\n return;\n }\n Utils_1.CanvasUtils.paintBase(this.context, this.size, baseColor);\n }\n lineStyle(p1, p2) {\n const options = this.container.options;\n const connectOptions = options.interactivity.modes.connect;\n if (this.context) {\n return Utils_1.CanvasUtils.gradient(this.context, p1, p2, connectOptions.links.opacity);\n }\n }\n initBackground() {\n const options = this.container.options;\n const background = options.background;\n const element = this.element;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (background.color) {\n const color = Utils_1.ColorUtils.colorToRgb(background.color);\n if (color) {\n elementStyle.backgroundColor = Utils_1.ColorUtils.getStyleFromRgb(color, background.opacity);\n }\n }\n if (background.image) {\n elementStyle.backgroundImage = background.image;\n }\n if (background.position) {\n elementStyle.backgroundPosition = background.position;\n }\n if (background.repeat) {\n elementStyle.backgroundRepeat = background.repeat;\n }\n if (background.size) {\n elementStyle.backgroundSize = background.size;\n }\n }\n}\nexports.Canvas = Canvas;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Updater = void 0;\nconst Utils_1 = require(\"../../Utils\");\nconst Enums_1 = require(\"../../Enums\");\nconst OutModeDirection_1 = require(\"../../Enums/Directions/OutModeDirection\");\nfunction bounceHorizontal(data) {\n if (data.outMode === Enums_1.OutMode.bounce ||\n data.outMode === Enums_1.OutMode.bounceHorizontal ||\n data.outMode === \"bounceHorizontal\") {\n const velocity = data.particle.velocity.horizontal;\n let bounced = false;\n if ((data.direction === OutModeDirection_1.OutModeDirection.right && data.bounds.right >= data.canvasSize.width && velocity > 0) ||\n (data.direction === OutModeDirection_1.OutModeDirection.left && data.bounds.left <= 0 && velocity < 0)) {\n const newVelocity = Utils_1.NumberUtils.getValue(data.particle.particlesOptions.bounce.horizontal);\n data.particle.velocity.horizontal *= -newVelocity;\n bounced = true;\n }\n if (bounced) {\n const minPos = data.offset.x + data.size;\n if (data.bounds.right >= data.canvasSize.width) {\n data.particle.position.x = data.canvasSize.width - minPos;\n }\n else if (data.bounds.left <= 0) {\n data.particle.position.x = minPos;\n }\n }\n }\n}\nfunction bounceVertical(data) {\n if (data.outMode === Enums_1.OutMode.bounce ||\n data.outMode === Enums_1.OutMode.bounceVertical ||\n data.outMode === \"bounceVertical\") {\n const velocity = data.particle.velocity.vertical;\n let bounced = false;\n if ((data.direction === OutModeDirection_1.OutModeDirection.bottom &&\n data.bounds.bottom >= data.canvasSize.height &&\n velocity > 0) ||\n (data.direction === OutModeDirection_1.OutModeDirection.top && data.bounds.top <= 0 && velocity < 0)) {\n const newVelocity = Utils_1.NumberUtils.getValue(data.particle.particlesOptions.bounce.vertical);\n data.particle.velocity.vertical *= -newVelocity;\n bounced = true;\n }\n if (bounced) {\n const minPos = data.offset.y + data.size;\n if (data.bounds.bottom >= data.canvasSize.height) {\n data.particle.position.y = data.canvasSize.height - minPos;\n }\n else if (data.bounds.top <= 0) {\n data.particle.position.y = minPos;\n }\n }\n }\n}\nfunction checkDestroy(particle, destroy, value, minValue, maxValue) {\n switch (destroy) {\n case Enums_1.DestroyType.max:\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case Enums_1.DestroyType.min:\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nclass Updater {\n constructor(container, particle) {\n this.container = container;\n this.particle = particle;\n }\n update(delta) {\n if (this.particle.destroyed) {\n return;\n }\n this.updateLife(delta);\n if (this.particle.destroyed || this.particle.spawning) {\n return;\n }\n this.updateOpacity(delta);\n this.updateSize(delta);\n this.updateAngle(delta);\n this.updateColor(delta);\n this.updateStrokeColor(delta);\n this.updateOutModes(delta);\n }\n updateLife(delta) {\n const particle = this.particle;\n let justSpawned = false;\n if (particle.spawning) {\n particle.lifeDelayTime += delta.value;\n if (particle.lifeDelayTime >= particle.lifeDelay) {\n justSpawned = true;\n particle.spawning = false;\n particle.lifeDelayTime = 0;\n particle.lifeTime = 0;\n }\n }\n if (particle.lifeDuration === -1) {\n return;\n }\n if (!particle.spawning) {\n if (justSpawned) {\n particle.lifeTime = 0;\n }\n else {\n particle.lifeTime += delta.value;\n }\n if (particle.lifeTime >= particle.lifeDuration) {\n particle.lifeTime = 0;\n if (particle.livesRemaining > 0) {\n particle.livesRemaining--;\n }\n if (particle.livesRemaining === 0) {\n particle.destroy();\n return;\n }\n const canvasSize = this.container.canvas.size;\n particle.position.x = Utils_1.NumberUtils.randomInRange(0, canvasSize.width);\n particle.position.y = Utils_1.NumberUtils.randomInRange(0, canvasSize.height);\n particle.spawning = true;\n particle.lifeDelayTime = 0;\n particle.lifeTime = 0;\n const lifeOptions = particle.particlesOptions.life;\n particle.lifeDelay = Utils_1.NumberUtils.getValue(lifeOptions.delay) * 1000;\n particle.lifeDuration = Utils_1.NumberUtils.getValue(lifeOptions.duration) * 1000;\n }\n }\n }\n updateOpacity(delta) {\n var _a, _b;\n const particle = this.particle;\n const opacityAnim = particle.particlesOptions.opacity.anim;\n const minValue = opacityAnim.minimumValue;\n const maxValue = particle.particlesOptions.opacity.value;\n if (opacityAnim.enable) {\n switch (particle.opacity.status) {\n case Enums_1.AnimationStatus.increasing:\n if (particle.opacity.value >= maxValue) {\n particle.opacity.status = Enums_1.AnimationStatus.decreasing;\n }\n else {\n particle.opacity.value += ((_a = particle.opacity.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n }\n break;\n case Enums_1.AnimationStatus.decreasing:\n if (particle.opacity.value <= minValue) {\n particle.opacity.status = Enums_1.AnimationStatus.increasing;\n }\n else {\n particle.opacity.value -= ((_b = particle.opacity.velocity) !== null && _b !== void 0 ? _b : 0) * delta.factor;\n }\n break;\n }\n checkDestroy(particle, opacityAnim.destroy, particle.opacity.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.opacity.value = Utils_1.NumberUtils.clamp(particle.opacity.value, minValue, maxValue);\n }\n }\n }\n updateSize(delta) {\n var _a, _b;\n const container = this.container;\n const particle = this.particle;\n const sizeOpt = particle.particlesOptions.size;\n const sizeAnim = sizeOpt.animation;\n const sizeVelocity = ((_a = particle.size.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n const maxValue = (_b = particle.sizeValue) !== null && _b !== void 0 ? _b : container.retina.sizeValue;\n const minValue = sizeAnim.minimumValue * container.retina.pixelRatio;\n if (sizeAnim.enable) {\n switch (particle.size.status) {\n case Enums_1.AnimationStatus.increasing:\n if (particle.size.value >= maxValue) {\n particle.size.status = Enums_1.AnimationStatus.decreasing;\n }\n else {\n particle.size.value += sizeVelocity;\n }\n break;\n case Enums_1.AnimationStatus.decreasing:\n if (particle.size.value <= minValue) {\n particle.size.status = Enums_1.AnimationStatus.increasing;\n }\n else {\n particle.size.value -= sizeVelocity;\n }\n }\n checkDestroy(particle, sizeAnim.destroy, particle.size.value, minValue, maxValue);\n if (!particle.destroyed) {\n particle.size.value = Utils_1.NumberUtils.clamp(particle.size.value, minValue, maxValue);\n }\n }\n }\n updateAngle(delta) {\n var _a;\n const particle = this.particle;\n const rotate = particle.particlesOptions.rotate;\n const rotateAnimation = rotate.animation;\n const speed = ((_a = particle.rotate.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n const max = 2 * Math.PI;\n if (rotate.path) {\n particle.pathAngle = Math.atan2(particle.velocity.vertical, particle.velocity.horizontal);\n }\n else if (rotateAnimation.enable) {\n switch (particle.rotate.status) {\n case Enums_1.AnimationStatus.increasing:\n particle.rotate.value += speed;\n if (particle.rotate.value > max) {\n particle.rotate.value -= max;\n }\n break;\n case Enums_1.AnimationStatus.decreasing:\n default:\n particle.rotate.value -= speed;\n if (particle.rotate.value < 0) {\n particle.rotate.value += max;\n }\n break;\n }\n }\n }\n updateColor(delta) {\n var _a;\n const particle = this.particle;\n if (particle.color.value === undefined) {\n return;\n }\n if (particle.particlesOptions.color.animation.enable) {\n particle.color.value.h += ((_a = particle.color.velocity) !== null && _a !== void 0 ? _a : 0) * delta.factor;\n if (particle.color.value.h > 360) {\n particle.color.value.h -= 360;\n }\n }\n }\n updateStrokeColor(delta) {\n var _a, _b;\n const particle = this.particle;\n const color = particle.stroke.color;\n if (typeof color === \"string\" || color === undefined) {\n return;\n }\n if (particle.strokeColor.value === undefined) {\n return;\n }\n if (color.animation.enable) {\n particle.strokeColor.value.h +=\n ((_b = (_a = particle.strokeColor.velocity) !== null && _a !== void 0 ? _a : particle.color.velocity) !== null && _b !== void 0 ? _b : 0) * delta.factor;\n if (particle.strokeColor.value.h > 360) {\n particle.strokeColor.value.h -= 360;\n }\n }\n }\n updateOutModes(delta) {\n var _a, _b, _c, _d;\n const outModes = this.particle.particlesOptions.move.outModes;\n this.updateOutMode(delta, (_a = outModes.bottom) !== null && _a !== void 0 ? _a : outModes.default, OutModeDirection_1.OutModeDirection.bottom);\n this.updateOutMode(delta, (_b = outModes.left) !== null && _b !== void 0 ? _b : outModes.default, OutModeDirection_1.OutModeDirection.left);\n this.updateOutMode(delta, (_c = outModes.right) !== null && _c !== void 0 ? _c : outModes.default, OutModeDirection_1.OutModeDirection.right);\n this.updateOutMode(delta, (_d = outModes.top) !== null && _d !== void 0 ? _d : outModes.default, OutModeDirection_1.OutModeDirection.top);\n }\n updateOutMode(delta, outMode, direction) {\n const container = this.container;\n const particle = this.particle;\n switch (outMode) {\n case Enums_1.OutMode.bounce:\n case Enums_1.OutMode.bounceVertical:\n case Enums_1.OutMode.bounceHorizontal:\n case \"bounceVertical\":\n case \"bounceHorizontal\":\n this.updateBounce(delta, direction, outMode);\n break;\n case Enums_1.OutMode.destroy:\n if (!Utils_1.Utils.isPointInside(particle.position, container.canvas.size, particle.getRadius(), direction)) {\n container.particles.remove(particle);\n }\n break;\n case Enums_1.OutMode.out:\n if (!Utils_1.Utils.isPointInside(particle.position, container.canvas.size, particle.getRadius(), direction)) {\n this.fixOutOfCanvasPosition(direction);\n }\n break;\n case Enums_1.OutMode.none:\n this.bounceNone(direction);\n break;\n }\n }\n fixOutOfCanvasPosition(direction) {\n const container = this.container;\n const particle = this.particle;\n const wrap = particle.particlesOptions.move.warp;\n const canvasSize = container.canvas.size;\n const newPos = {\n bottom: canvasSize.height + particle.getRadius() - particle.offset.y,\n left: -particle.getRadius() - particle.offset.x,\n right: canvasSize.width + particle.getRadius() + particle.offset.x,\n top: -particle.getRadius() - particle.offset.y,\n };\n const sizeValue = particle.getRadius();\n const nextBounds = Utils_1.Utils.calculateBounds(particle.position, sizeValue);\n if (direction === OutModeDirection_1.OutModeDirection.right && nextBounds.left > canvasSize.width - particle.offset.x) {\n particle.position.x = newPos.left;\n if (!wrap) {\n particle.position.y = Math.random() * canvasSize.height;\n }\n }\n else if (direction === OutModeDirection_1.OutModeDirection.left && nextBounds.right < -particle.offset.x) {\n particle.position.x = newPos.right;\n if (!wrap) {\n particle.position.y = Math.random() * canvasSize.height;\n }\n }\n if (direction === OutModeDirection_1.OutModeDirection.bottom && nextBounds.top > canvasSize.height - particle.offset.y) {\n if (!wrap) {\n particle.position.x = Math.random() * canvasSize.width;\n }\n particle.position.y = newPos.top;\n }\n else if (direction === OutModeDirection_1.OutModeDirection.top && nextBounds.bottom < -particle.offset.y) {\n if (!wrap) {\n particle.position.x = Math.random() * canvasSize.width;\n }\n particle.position.y = newPos.bottom;\n }\n }\n updateBounce(delta, direction, outMode) {\n const container = this.container;\n const particle = this.particle;\n let handled = false;\n for (const [, plugin] of container.plugins) {\n if (plugin.particleBounce !== undefined) {\n handled = plugin.particleBounce(particle, delta, direction);\n }\n if (handled) {\n break;\n }\n }\n if (handled) {\n return;\n }\n const pos = particle.getPosition(), offset = particle.offset, size = particle.getRadius(), bounds = Utils_1.Utils.calculateBounds(pos, size), canvasSize = container.canvas.size;\n bounceHorizontal({ particle, outMode, direction, bounds, canvasSize, offset, size });\n bounceVertical({ particle, outMode, direction, bounds, canvasSize, offset, size });\n }\n bounceNone(direction) {\n const particle = this.particle;\n if (particle.particlesOptions.move.distance) {\n return;\n }\n const gravityOptions = particle.particlesOptions.move.gravity;\n const container = this.container;\n if (!gravityOptions.enable) {\n if (!Utils_1.Utils.isPointInside(particle.position, container.canvas.size, particle.getRadius(), direction)) {\n container.particles.remove(particle);\n }\n }\n else {\n const position = particle.position;\n if ((gravityOptions.acceleration >= 0 &&\n position.y > container.canvas.size.height &&\n direction === OutModeDirection_1.OutModeDirection.bottom) ||\n (gravityOptions.acceleration < 0 && position.y < 0 && direction === OutModeDirection_1.OutModeDirection.top)) {\n container.particles.remove(particle);\n }\n }\n }\n}\nexports.Updater = Updater;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OptionsColor = void 0;\nclass OptionsColor {\n constructor() {\n this.value = \"#fff\";\n }\n static create(source, data) {\n const color = source !== null && source !== void 0 ? source : new OptionsColor();\n if (data !== undefined) {\n color.load(typeof data === \"string\" ? { value: data } : data);\n }\n return color;\n }\n load(data) {\n if ((data === null || data === void 0 ? void 0 : data.value) === undefined) {\n return;\n }\n this.value = data.value;\n }\n}\nexports.OptionsColor = OptionsColor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinksShadow = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor_1.OptionsColor();\n this.enable = false;\n this.color.value = \"#00ff00\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\nexports.LinksShadow = LinksShadow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LinksTriangle = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.LinksTriangle = LinksTriangle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Links = void 0;\nconst LinksShadow_1 = require(\"./LinksShadow\");\nconst LinksTriangle_1 = require(\"./LinksTriangle\");\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor_1.OptionsColor();\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new LinksShadow_1.LinksShadow();\n this.triangles = new LinksTriangle_1.LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\nexports.Links = Links;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Attract = void 0;\nclass Attract {\n constructor() {\n this.enable = false;\n this.rotate = {\n x: 3000,\n y: 3000,\n };\n }\n get rotateX() {\n return this.rotate.x;\n }\n set rotateX(value) {\n this.rotate.x = value;\n }\n get rotateY() {\n return this.rotate.y;\n }\n set rotateY(value) {\n this.rotate.y = value;\n }\n load(data) {\n var _a, _b, _c, _d;\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const rotateX = (_b = (_a = data.rotate) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : data.rotateX;\n if (rotateX !== undefined) {\n this.rotate.x = rotateX;\n }\n const rotateY = (_d = (_c = data.rotate) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : data.rotateY;\n if (rotateY !== undefined) {\n this.rotate.y = rotateY;\n }\n }\n}\nexports.Attract = Attract;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Trail = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass Trail {\n constructor() {\n this.enable = false;\n this.length = 10;\n this.fillColor = new OptionsColor_1.OptionsColor();\n this.fillColor.value = \"#000000\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.fillColor = OptionsColor_1.OptionsColor.create(this.fillColor, data.fillColor);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\nexports.Trail = Trail;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Random = void 0;\nclass Random {\n constructor() {\n this.enable = false;\n this.minimumValue = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.minimumValue !== undefined) {\n this.minimumValue = data.minimumValue;\n }\n }\n}\nexports.Random = Random;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ValueWithRandom = void 0;\nconst Random_1 = require(\"./Random\");\nclass ValueWithRandom {\n constructor() {\n this.random = new Random_1.Random();\n this.value = 0;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (typeof data.random === \"boolean\") {\n this.random.enable = data.random;\n }\n else {\n this.random.load(data.random);\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.ValueWithRandom = ValueWithRandom;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NoiseDelay = void 0;\nconst ValueWithRandom_1 = require(\"../../../ValueWithRandom\");\nclass NoiseDelay extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n }\n}\nexports.NoiseDelay = NoiseDelay;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Noise = void 0;\nconst NoiseDelay_1 = require(\"./NoiseDelay\");\nclass Noise {\n constructor() {\n this.delay = new NoiseDelay_1.NoiseDelay();\n this.enable = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.delay.load(data.delay);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\nexports.Noise = Noise;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MoveAngle = void 0;\nclass MoveAngle {\n constructor() {\n this.offset = 45;\n this.value = 90;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = data.offset;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.MoveAngle = MoveAngle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MoveGravity = void 0;\nclass MoveGravity {\n constructor() {\n this.acceleration = 9.81;\n this.enable = false;\n this.maxSpeed = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = data.acceleration;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\nexports.MoveGravity = MoveGravity;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OutModes = void 0;\nconst Modes_1 = require(\"../../../../Enums/Modes\");\nclass OutModes {\n constructor() {\n this.default = Modes_1.OutMode.out;\n }\n load(data) {\n var _a, _b, _c, _d;\n if (!data) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n this.bottom = (_a = data.bottom) !== null && _a !== void 0 ? _a : data.default;\n this.left = (_b = data.left) !== null && _b !== void 0 ? _b : data.default;\n this.right = (_c = data.right) !== null && _c !== void 0 ? _c : data.default;\n this.top = (_d = data.top) !== null && _d !== void 0 ? _d : data.default;\n }\n}\nexports.OutModes = OutModes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Move = void 0;\nconst Attract_1 = require(\"./Attract\");\nconst Enums_1 = require(\"../../../../Enums\");\nconst Trail_1 = require(\"./Trail\");\nconst Noise_1 = require(\"./Noise/Noise\");\nconst MoveAngle_1 = require(\"./MoveAngle\");\nconst MoveGravity_1 = require(\"./MoveGravity\");\nconst OutModes_1 = require(\"./OutModes\");\nclass Move {\n constructor() {\n this.angle = new MoveAngle_1.MoveAngle();\n this.attract = new Attract_1.Attract();\n this.direction = Enums_1.MoveDirection.none;\n this.distance = 0;\n this.enable = false;\n this.gravity = new MoveGravity_1.MoveGravity();\n this.noise = new Noise_1.Noise();\n this.outModes = new OutModes_1.OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.straight = false;\n this.trail = new Trail_1.Trail();\n this.vibrate = false;\n this.warp = false;\n }\n get collisions() {\n return false;\n }\n set collisions(value) {\n }\n get bounce() {\n return this.collisions;\n }\n set bounce(value) {\n this.collisions = value;\n }\n get out_mode() {\n return this.outMode;\n }\n set out_mode(value) {\n this.outMode = value;\n }\n get outMode() {\n return this.outModes.default;\n }\n set outMode(value) {\n this.outModes.default = value;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\n return;\n }\n if (data.angle !== undefined) {\n if (typeof data.angle === \"number\") {\n this.angle.value = data.angle;\n }\n else {\n this.angle.load(data.angle);\n }\n }\n this.attract.load(data.attract);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n this.noise.load(data.noise);\n const outMode = (_a = data.outMode) !== null && _a !== void 0 ? _a : data.out_mode;\n if (data.outModes !== undefined || outMode !== undefined) {\n if (typeof data.outModes === \"string\" || (data.outModes === undefined && outMode !== undefined)) {\n this.outModes.load({\n default: (_b = data.outModes) !== null && _b !== void 0 ? _b : outMode,\n });\n }\n else {\n this.outModes.load(data.outModes);\n }\n }\n if (data.random !== undefined) {\n this.random = data.random;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.straight !== undefined) {\n this.straight = data.straight;\n }\n this.trail.load(data.trail);\n if (data.vibrate !== undefined) {\n this.vibrate = data.vibrate;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\nexports.Move = Move;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Density = void 0;\nclass Density {\n constructor() {\n this.enable = false;\n this.area = 800;\n this.factor = 1000;\n }\n get value_area() {\n return this.area;\n }\n set value_area(value) {\n this.area = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const area = (_a = data.area) !== null && _a !== void 0 ? _a : data.value_area;\n if (area !== undefined) {\n this.area = area;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n }\n}\nexports.Density = Density;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ParticlesNumber = void 0;\nconst Density_1 = require(\"./Density\");\nclass ParticlesNumber {\n constructor() {\n this.density = new Density_1.Density();\n this.limit = 0;\n this.value = 100;\n }\n get max() {\n return this.limit;\n }\n set max(value) {\n this.limit = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n this.density.load(data.density);\n const limit = (_a = data.limit) !== null && _a !== void 0 ? _a : data.max;\n if (limit !== undefined) {\n this.limit = limit;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.ParticlesNumber = ParticlesNumber;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.OpacityAnimation = void 0;\nconst Types_1 = require(\"../../../../Enums/Types\");\nclass OpacityAnimation {\n constructor() {\n this.destroy = Types_1.DestroyType.none;\n this.enable = false;\n this.minimumValue = 0;\n this.speed = 2;\n this.startValue = Types_1.StartValueType.random;\n this.sync = false;\n }\n get opacity_min() {\n return this.minimumValue;\n }\n set opacity_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.opacity_min;\n if (minimumValue !== undefined) {\n this.minimumValue = minimumValue;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.OpacityAnimation = OpacityAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Opacity = void 0;\nconst OpacityAnimation_1 = require(\"./OpacityAnimation\");\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass Opacity extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new OpacityAnimation_1.OpacityAnimation();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n this.animation.load((_a = data.animation) !== null && _a !== void 0 ? _a : data.anim);\n }\n}\nexports.Opacity = Opacity;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Shape = void 0;\nconst Enums_1 = require(\"../../../../Enums\");\nconst Utils_1 = require(\"../../../../Utils\");\nclass Shape {\n constructor() {\n this.options = {};\n this.type = Enums_1.ShapeType.circle;\n }\n get image() {\n var _a;\n return ((_a = this.options[Enums_1.ShapeType.image]) !== null && _a !== void 0 ? _a : this.options[Enums_1.ShapeType.images]);\n }\n set image(value) {\n this.options[Enums_1.ShapeType.image] = value;\n this.options[Enums_1.ShapeType.images] = value;\n }\n get custom() {\n return this.options;\n }\n set custom(value) {\n this.options = value;\n }\n get images() {\n return this.image instanceof Array ? this.image : [this.image];\n }\n set images(value) {\n this.image = value;\n }\n get stroke() {\n return [];\n }\n set stroke(_value) {\n }\n get character() {\n var _a;\n return ((_a = this.options[Enums_1.ShapeType.character]) !== null && _a !== void 0 ? _a : this.options[Enums_1.ShapeType.char]);\n }\n set character(value) {\n this.options[Enums_1.ShapeType.character] = value;\n this.options[Enums_1.ShapeType.char] = value;\n }\n get polygon() {\n var _a;\n return ((_a = this.options[Enums_1.ShapeType.polygon]) !== null && _a !== void 0 ? _a : this.options[Enums_1.ShapeType.star]);\n }\n set polygon(value) {\n this.options[Enums_1.ShapeType.polygon] = value;\n this.options[Enums_1.ShapeType.star] = value;\n }\n load(data) {\n var _a, _b, _c;\n if (data === undefined) {\n return;\n }\n const options = (_a = data.options) !== null && _a !== void 0 ? _a : data.custom;\n if (options !== undefined) {\n for (const shape in options) {\n const item = options[shape];\n if (item !== undefined) {\n this.options[shape] = Utils_1.Utils.deepExtend((_b = this.options[shape]) !== null && _b !== void 0 ? _b : {}, item);\n }\n }\n }\n this.loadShape(data.character, Enums_1.ShapeType.character, Enums_1.ShapeType.char, true);\n this.loadShape(data.polygon, Enums_1.ShapeType.polygon, Enums_1.ShapeType.star, false);\n this.loadShape((_c = data.image) !== null && _c !== void 0 ? _c : data.images, Enums_1.ShapeType.image, Enums_1.ShapeType.images, true);\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n loadShape(item, mainKey, altKey, altOverride) {\n var _a, _b, _c, _d;\n if (item === undefined) {\n return;\n }\n if (item instanceof Array) {\n if (!(this.options[mainKey] instanceof Array)) {\n this.options[mainKey] = [];\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = [];\n }\n }\n this.options[mainKey] = Utils_1.Utils.deepExtend((_a = this.options[mainKey]) !== null && _a !== void 0 ? _a : [], item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = Utils_1.Utils.deepExtend((_b = this.options[altKey]) !== null && _b !== void 0 ? _b : [], item);\n }\n }\n else {\n if (this.options[mainKey] instanceof Array) {\n this.options[mainKey] = {};\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = {};\n }\n }\n this.options[mainKey] = Utils_1.Utils.deepExtend((_c = this.options[mainKey]) !== null && _c !== void 0 ? _c : {}, item);\n if (!this.options[altKey] || altOverride) {\n this.options[altKey] = Utils_1.Utils.deepExtend((_d = this.options[altKey]) !== null && _d !== void 0 ? _d : {}, item);\n }\n }\n }\n}\nexports.Shape = Shape;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.SizeAnimation = void 0;\nconst Enums_1 = require(\"../../../../Enums\");\nclass SizeAnimation {\n constructor() {\n this.destroy = Enums_1.DestroyType.none;\n this.enable = false;\n this.minimumValue = 0;\n this.speed = 5;\n this.startValue = Enums_1.StartValueType.random;\n this.sync = false;\n }\n get size_min() {\n return this.minimumValue;\n }\n set size_min(value) {\n this.minimumValue = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const minimumValue = (_a = data.minimumValue) !== null && _a !== void 0 ? _a : data.size_min;\n if (minimumValue !== undefined) {\n this.minimumValue = minimumValue;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.SizeAnimation = SizeAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Size = void 0;\nconst SizeAnimation_1 = require(\"./SizeAnimation\");\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass Size extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new SizeAnimation_1.SizeAnimation();\n this.random.minimumValue = 1;\n this.value = 3;\n }\n get anim() {\n return this.animation;\n }\n set anim(value) {\n this.animation = value;\n }\n load(data) {\n var _a;\n if (!data) {\n return;\n }\n super.load(data);\n const animation = (_a = data.animation) !== null && _a !== void 0 ? _a : data.anim;\n if (animation !== undefined) {\n this.animation.load(animation);\n }\n }\n}\nexports.Size = Size;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RotateAnimation = void 0;\nclass RotateAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.sync = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.RotateAnimation = RotateAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Rotate = void 0;\nconst RotateAnimation_1 = require(\"./RotateAnimation\");\nconst Enums_1 = require(\"../../../../Enums\");\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass Rotate extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.animation = new RotateAnimation_1.RotateAnimation();\n this.direction = Enums_1.RotateDirection.clockwise;\n this.path = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.animation.load(data.animation);\n if (data.path !== undefined) {\n this.path = data.path;\n }\n }\n}\nexports.Rotate = Rotate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Shadow = void 0;\nconst OptionsColor_1 = require(\"../OptionsColor\");\nclass Shadow {\n constructor() {\n this.blur = 0;\n this.color = new OptionsColor_1.OptionsColor();\n this.enable = false;\n this.offset = {\n x: 0,\n y: 0,\n };\n this.color.value = \"#000000\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset === undefined) {\n return;\n }\n if (data.offset.x !== undefined) {\n this.offset.x = data.offset.x;\n }\n if (data.offset.y !== undefined) {\n this.offset.y = data.offset.y;\n }\n }\n}\nexports.Shadow = Shadow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ColorAnimation = void 0;\nclass ColorAnimation {\n constructor() {\n this.enable = false;\n this.speed = 1;\n this.sync = true;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.ColorAnimation = ColorAnimation;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AnimatableColor = void 0;\nconst OptionsColor_1 = require(\"../OptionsColor\");\nconst ColorAnimation_1 = require(\"./ColorAnimation\");\nclass AnimatableColor extends OptionsColor_1.OptionsColor {\n constructor() {\n super();\n this.animation = new ColorAnimation_1.ColorAnimation();\n }\n static create(source, data) {\n const color = source !== null && source !== void 0 ? source : new AnimatableColor();\n if (data !== undefined) {\n color.load(typeof data === \"string\" ? { value: data } : data);\n }\n return color;\n }\n load(data) {\n super.load(data);\n this.animation.load(data === null || data === void 0 ? void 0 : data.animation);\n }\n}\nexports.AnimatableColor = AnimatableColor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Stroke = void 0;\nconst AnimatableColor_1 = require(\"./AnimatableColor\");\nclass Stroke {\n constructor() {\n this.width = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = AnimatableColor_1.AnimatableColor.create(this.color, data.color);\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.Stroke = Stroke;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BounceFactor = void 0;\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass BounceFactor extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.1;\n this.value = 1;\n }\n}\nexports.BounceFactor = BounceFactor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bounce = void 0;\nconst BounceFactor_1 = require(\"./BounceFactor\");\nclass Bounce {\n constructor() {\n this.horizontal = new BounceFactor_1.BounceFactor();\n this.vertical = new BounceFactor_1.BounceFactor();\n }\n load(data) {\n if (!data) {\n return;\n }\n this.horizontal.load(data.horizontal);\n this.vertical.load(data.vertical);\n }\n}\nexports.Bounce = Bounce;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Collisions = void 0;\nconst Enums_1 = require(\"../../../Enums\");\nconst Bounce_1 = require(\"./Bounce/Bounce\");\nclass Collisions {\n constructor() {\n this.bounce = new Bounce_1.Bounce();\n this.enable = false;\n this.mode = Enums_1.CollisionMode.bounce;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.bounce.load(data.bounce);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n }\n}\nexports.Collisions = Collisions;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TwinkleValues = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass TwinkleValues {\n constructor() {\n this.enable = false;\n this.frequency = 0.05;\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.TwinkleValues = TwinkleValues;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Twinkle = void 0;\nconst TwinkleValues_1 = require(\"./TwinkleValues\");\nclass Twinkle {\n constructor() {\n this.lines = new TwinkleValues_1.TwinkleValues();\n this.particles = new TwinkleValues_1.TwinkleValues();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.lines.load(data.lines);\n this.particles.load(data.particles);\n }\n}\nexports.Twinkle = Twinkle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LifeDelay = void 0;\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass LifeDelay extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.LifeDelay = LifeDelay;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LifeDuration = void 0;\nconst ValueWithRandom_1 = require(\"../../ValueWithRandom\");\nclass LifeDuration extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.random.minimumValue = 0.0001;\n this.sync = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexports.LifeDuration = LifeDuration;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Life = void 0;\nconst LifeDelay_1 = require(\"./LifeDelay\");\nconst LifeDuration_1 = require(\"./LifeDuration\");\nclass Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay_1.LifeDelay();\n this.duration = new LifeDuration_1.LifeDuration();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.delay.load(data.delay);\n this.duration.load(data.duration);\n }\n}\nexports.Life = Life;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Particles = void 0;\nconst Links_1 = require(\"./Links/Links\");\nconst Move_1 = require(\"./Move/Move\");\nconst ParticlesNumber_1 = require(\"./Number/ParticlesNumber\");\nconst Opacity_1 = require(\"./Opacity/Opacity\");\nconst Shape_1 = require(\"./Shape/Shape\");\nconst Size_1 = require(\"./Size/Size\");\nconst Rotate_1 = require(\"./Rotate/Rotate\");\nconst Shadow_1 = require(\"./Shadow\");\nconst Stroke_1 = require(\"./Stroke\");\nconst Collisions_1 = require(\"./Collisions\");\nconst Twinkle_1 = require(\"./Twinkle/Twinkle\");\nconst AnimatableColor_1 = require(\"./AnimatableColor\");\nconst Life_1 = require(\"./Life/Life\");\nconst Bounce_1 = require(\"./Bounce/Bounce\");\nclass Particles {\n constructor() {\n this.bounce = new Bounce_1.Bounce();\n this.collisions = new Collisions_1.Collisions();\n this.color = new AnimatableColor_1.AnimatableColor();\n this.life = new Life_1.Life();\n this.links = new Links_1.Links();\n this.move = new Move_1.Move();\n this.number = new ParticlesNumber_1.ParticlesNumber();\n this.opacity = new Opacity_1.Opacity();\n this.reduceDuplicates = false;\n this.rotate = new Rotate_1.Rotate();\n this.shadow = new Shadow_1.Shadow();\n this.shape = new Shape_1.Shape();\n this.size = new Size_1.Size();\n this.stroke = new Stroke_1.Stroke();\n this.twinkle = new Twinkle_1.Twinkle();\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (data === undefined) {\n return;\n }\n this.bounce.load(data.bounce);\n this.color = AnimatableColor_1.AnimatableColor.create(this.color, data.color);\n this.life.load(data.life);\n const links = (_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked;\n if (links !== undefined) {\n this.links.load(links);\n }\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.rotate.load(data.rotate);\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.shadow.load(data.shadow);\n this.twinkle.load(data.twinkle);\n const collisions = (_d = (_c = data.move) === null || _c === void 0 ? void 0 : _c.collisions) !== null && _d !== void 0 ? _d : (_e = data.move) === null || _e === void 0 ? void 0 : _e.bounce;\n if (collisions !== undefined) {\n this.collisions.enable = collisions;\n }\n this.collisions.load(data.collisions);\n const strokeToLoad = (_f = data.stroke) !== null && _f !== void 0 ? _f : (_g = data.shape) === null || _g === void 0 ? void 0 : _g.stroke;\n if (strokeToLoad === undefined) {\n return;\n }\n if (strokeToLoad instanceof Array) {\n this.stroke = strokeToLoad.map((s) => {\n const tmp = new Stroke_1.Stroke();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.stroke instanceof Array) {\n this.stroke = new Stroke_1.Stroke();\n }\n this.stroke.load(strokeToLoad);\n }\n }\n}\nexports.Particles = Particles;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Infecter = void 0;\nclass Infecter {\n constructor(container) {\n this.container = container;\n }\n startInfection(stage) {\n const options = this.container.options;\n const stages = options.infection.stages;\n const stagesCount = stages.length;\n if (stage > stagesCount || stage < 0) {\n return;\n }\n this.infectionDelay = 0;\n this.infectionDelayStage = stage;\n }\n updateInfectionStage(stage) {\n const options = this.container.options;\n const stagesCount = options.infection.stages.length;\n if (stage > stagesCount || stage < 0 || (this.infectionStage !== undefined && this.infectionStage > stage)) {\n return;\n }\n this.infectionStage = stage;\n this.infectionTime = 0;\n }\n updateInfection(delta) {\n const options = this.container.options;\n const infection = options.infection;\n const stages = options.infection.stages;\n const stagesCount = stages.length;\n if (this.infectionDelay !== undefined && this.infectionDelayStage !== undefined) {\n const stage = this.infectionDelayStage;\n if (stage > stagesCount || stage < 0) {\n return;\n }\n if (this.infectionDelay > infection.delay * 1000) {\n this.infectionStage = stage;\n this.infectionTime = 0;\n delete this.infectionDelay;\n delete this.infectionDelayStage;\n }\n else {\n this.infectionDelay += delta;\n }\n }\n else {\n delete this.infectionDelay;\n delete this.infectionDelayStage;\n }\n if (this.infectionStage !== undefined && this.infectionTime !== undefined) {\n const infectionStage = stages[this.infectionStage];\n if (infectionStage.duration !== undefined && infectionStage.duration >= 0) {\n if (this.infectionTime > infectionStage.duration * 1000) {\n this.nextInfectionStage();\n }\n else {\n this.infectionTime += delta;\n }\n }\n else {\n this.infectionTime += delta;\n }\n }\n else {\n delete this.infectionStage;\n delete this.infectionTime;\n }\n }\n nextInfectionStage() {\n const options = this.container.options;\n const stagesCount = options.infection.stages.length;\n if (stagesCount <= 0 || this.infectionStage === undefined) {\n return;\n }\n this.infectionTime = 0;\n if (stagesCount <= ++this.infectionStage) {\n if (options.infection.cure) {\n delete this.infectionStage;\n delete this.infectionTime;\n return;\n }\n else {\n this.infectionStage = 0;\n this.infectionTime = 0;\n }\n }\n }\n}\nexports.Infecter = Infecter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Mover = void 0;\nconst Utils_1 = require(\"../../Utils\");\nconst Enums_1 = require(\"../../Enums\");\nclass Mover {\n constructor(container, particle) {\n this.container = container;\n this.particle = particle;\n }\n move(delta) {\n const particle = this.particle;\n particle.bubble.inRange = false;\n particle.links = [];\n for (const [, plugin] of this.container.plugins) {\n if (particle.destroyed) {\n break;\n }\n if (plugin.particleUpdate) {\n plugin.particleUpdate(particle, delta);\n }\n }\n if (particle.destroyed) {\n return;\n }\n this.moveParticle(delta);\n this.moveParallax();\n }\n moveParticle(delta) {\n var _a, _b;\n const particle = this.particle;\n const particlesOptions = particle.particlesOptions;\n if (!particlesOptions.move.enable) {\n return;\n }\n const container = this.container;\n const slowFactor = this.getProximitySpeedFactor();\n const baseSpeed = ((_a = particle.moveSpeed) !== null && _a !== void 0 ? _a : container.retina.moveSpeed) * container.retina.reduceFactor;\n const maxSize = (_b = particle.sizeValue) !== null && _b !== void 0 ? _b : container.retina.sizeValue;\n const sizeFactor = particlesOptions.move.size ? particle.getRadius() / maxSize : 1;\n const moveSpeed = (baseSpeed / 2) * sizeFactor * slowFactor * delta.factor;\n this.applyNoise(delta);\n const gravityOptions = particlesOptions.move.gravity;\n if (gravityOptions.enable) {\n particle.velocity.vertical += (gravityOptions.acceleration * delta.factor) / (60 * moveSpeed);\n }\n const velocity = {\n horizontal: particle.velocity.horizontal * moveSpeed,\n vertical: particle.velocity.vertical * moveSpeed,\n };\n if (gravityOptions.enable && velocity.vertical >= gravityOptions.maxSpeed && gravityOptions.maxSpeed > 0) {\n velocity.vertical = gravityOptions.maxSpeed;\n particle.velocity.vertical = velocity.vertical / moveSpeed;\n }\n particle.position.x += velocity.horizontal;\n particle.position.y += velocity.vertical;\n if (particlesOptions.move.vibrate) {\n particle.position.x += Math.sin(particle.position.x * Math.cos(particle.position.y));\n particle.position.y += Math.cos(particle.position.y * Math.sin(particle.position.x));\n }\n const initialPosition = particle.initialPosition;\n const initialDistance = Utils_1.NumberUtils.getDistance(initialPosition, particle.position);\n if (particle.maxDistance) {\n if (initialDistance >= particle.maxDistance && !particle.misplaced) {\n particle.misplaced = initialDistance > particle.maxDistance;\n particle.velocity.horizontal = particle.velocity.vertical / 2 - particle.velocity.horizontal;\n particle.velocity.vertical = particle.velocity.horizontal / 2 - particle.velocity.vertical;\n }\n else if (initialDistance < particle.maxDistance && particle.misplaced) {\n particle.misplaced = false;\n }\n else if (particle.misplaced) {\n if ((particle.position.x < initialPosition.x && particle.velocity.horizontal < 0) ||\n (particle.position.x > initialPosition.x && particle.velocity.horizontal > 0)) {\n particle.velocity.horizontal *= -Math.random();\n }\n if ((particle.position.y < initialPosition.y && particle.velocity.vertical < 0) ||\n (particle.position.y > initialPosition.y && particle.velocity.vertical > 0)) {\n particle.velocity.vertical *= -Math.random();\n }\n }\n }\n }\n applyNoise(delta) {\n const particle = this.particle;\n const particlesOptions = particle.particlesOptions;\n const noiseOptions = particlesOptions.move.noise;\n const noiseEnabled = noiseOptions.enable;\n if (!noiseEnabled) {\n return;\n }\n const container = this.container;\n if (particle.lastNoiseTime <= particle.noiseDelay) {\n particle.lastNoiseTime += delta.value;\n return;\n }\n const noise = container.noise.generate(particle);\n particle.velocity.horizontal += Math.cos(noise.angle) * noise.length;\n particle.velocity.horizontal = Utils_1.NumberUtils.clamp(particle.velocity.horizontal, -1, 1);\n particle.velocity.vertical += Math.sin(noise.angle) * noise.length;\n particle.velocity.vertical = Utils_1.NumberUtils.clamp(particle.velocity.vertical, -1, 1);\n particle.lastNoiseTime -= particle.noiseDelay;\n }\n moveParallax() {\n const container = this.container;\n const options = container.options;\n if (Utils_1.Utils.isSsr() || !options.interactivity.events.onHover.parallax.enable) {\n return;\n }\n const particle = this.particle;\n const parallaxForce = options.interactivity.events.onHover.parallax.force;\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const canvasCenter = {\n x: container.canvas.size.width / 2,\n y: container.canvas.size.height / 2,\n };\n const parallaxSmooth = options.interactivity.events.onHover.parallax.smooth;\n const factor = particle.getRadius() / parallaxForce;\n const tmp = {\n x: (mousePos.x - canvasCenter.x) * factor,\n y: (mousePos.y - canvasCenter.y) * factor,\n };\n particle.offset.x += (tmp.x - particle.offset.x) / parallaxSmooth;\n particle.offset.y += (tmp.y - particle.offset.y) / parallaxSmooth;\n }\n getProximitySpeedFactor() {\n const container = this.container;\n const options = container.options;\n const active = Utils_1.Utils.isInArray(Enums_1.HoverMode.slow, options.interactivity.events.onHover.mode);\n if (!active) {\n return 1;\n }\n const mousePos = this.container.interactivity.mouse.position;\n if (!mousePos) {\n return 1;\n }\n const particlePos = this.particle.getPosition();\n const dist = Utils_1.NumberUtils.getDistance(mousePos, particlePos);\n const radius = container.retina.slowModeRadius;\n if (dist > radius) {\n return 1;\n }\n const proximityFactor = dist / radius || 0;\n const slowFactor = options.interactivity.modes.slow.factor;\n return proximityFactor / slowFactor;\n }\n}\nexports.Mover = Mover;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Particle = void 0;\nconst Updater_1 = require(\"./Particle/Updater\");\nconst Particles_1 = require(\"../Options/Classes/Particles/Particles\");\nconst Shape_1 = require(\"../Options/Classes/Particles/Shape/Shape\");\nconst Enums_1 = require(\"../Enums\");\nconst Utils_1 = require(\"../Utils\");\nconst Infecter_1 = require(\"./Particle/Infecter\");\nconst Mover_1 = require(\"./Particle/Mover\");\nclass Particle {\n constructor(id, container, position, overrideOptions) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j;\n this.id = id;\n this.container = container;\n this.links = [];\n this.fill = true;\n this.close = true;\n this.lastNoiseTime = 0;\n this.destroyed = false;\n this.misplaced = false;\n const pxRatio = container.retina.pixelRatio;\n const options = container.options;\n const particlesOptions = new Particles_1.Particles();\n particlesOptions.load(options.particles);\n const shapeType = particlesOptions.shape.type;\n const reduceDuplicates = particlesOptions.reduceDuplicates;\n this.shape = shapeType instanceof Array ? Utils_1.Utils.itemFromArray(shapeType, this.id, reduceDuplicates) : shapeType;\n if (overrideOptions === null || overrideOptions === void 0 ? void 0 : overrideOptions.shape) {\n if (overrideOptions.shape.type) {\n const overrideShapeType = overrideOptions.shape.type;\n this.shape =\n overrideShapeType instanceof Array\n ? Utils_1.Utils.itemFromArray(overrideShapeType, this.id, reduceDuplicates)\n : overrideShapeType;\n }\n const shapeOptions = new Shape_1.Shape();\n shapeOptions.load(overrideOptions.shape);\n if (this.shape) {\n const shapeData = shapeOptions.options[this.shape];\n if (shapeData) {\n this.shapeData = Utils_1.Utils.deepExtend({}, shapeData instanceof Array\n ? Utils_1.Utils.itemFromArray(shapeData, this.id, reduceDuplicates)\n : shapeData);\n }\n }\n }\n else {\n const shapeData = particlesOptions.shape.options[this.shape];\n if (shapeData) {\n this.shapeData = Utils_1.Utils.deepExtend({}, shapeData instanceof Array ? Utils_1.Utils.itemFromArray(shapeData, this.id, reduceDuplicates) : shapeData);\n }\n }\n if (overrideOptions !== undefined) {\n particlesOptions.load(overrideOptions);\n }\n if (((_a = this.shapeData) === null || _a === void 0 ? void 0 : _a.particles) !== undefined) {\n particlesOptions.load((_b = this.shapeData) === null || _b === void 0 ? void 0 : _b.particles);\n }\n this.fill = (_d = (_c = this.shapeData) === null || _c === void 0 ? void 0 : _c.fill) !== null && _d !== void 0 ? _d : this.fill;\n this.close = (_f = (_e = this.shapeData) === null || _e === void 0 ? void 0 : _e.close) !== null && _f !== void 0 ? _f : this.close;\n this.particlesOptions = particlesOptions;\n this.noiseDelay = Utils_1.NumberUtils.getValue(this.particlesOptions.move.noise.delay) * 1000;\n container.retina.initParticle(this);\n const color = this.particlesOptions.color;\n const sizeOptions = this.particlesOptions.size;\n const sizeValue = Utils_1.NumberUtils.getValue(sizeOptions) * container.retina.pixelRatio;\n const randomSize = typeof sizeOptions.random === \"boolean\" ? sizeOptions.random : sizeOptions.random.enable;\n this.size = {\n value: sizeValue,\n };\n this.direction = this.particlesOptions.move.direction;\n this.bubble = {\n inRange: false,\n };\n this.initialVelocity = this.calculateVelocity();\n this.velocity = {\n horizontal: this.initialVelocity.horizontal,\n vertical: this.initialVelocity.vertical,\n };\n this.pathAngle = Math.atan2(this.initialVelocity.vertical, this.initialVelocity.horizontal);\n const rotateOptions = this.particlesOptions.rotate;\n this.rotate = {\n value: ((rotateOptions.random.enable ? Math.random() * 360 : rotateOptions.value) * Math.PI) / 180,\n };\n let rotateDirection = rotateOptions.direction;\n if (rotateDirection === Enums_1.RotateDirection.random) {\n const index = Math.floor(Math.random() * 2);\n rotateDirection = index > 0 ? Enums_1.RotateDirection.counterClockwise : Enums_1.RotateDirection.clockwise;\n }\n switch (rotateDirection) {\n case Enums_1.RotateDirection.counterClockwise:\n case \"counterClockwise\":\n this.rotate.status = Enums_1.AnimationStatus.decreasing;\n break;\n case Enums_1.RotateDirection.clockwise:\n this.rotate.status = Enums_1.AnimationStatus.increasing;\n break;\n }\n const rotateAnimation = this.particlesOptions.rotate.animation;\n if (rotateAnimation.enable) {\n this.rotate.velocity = (rotateAnimation.speed / 360) * container.retina.reduceFactor;\n if (!rotateAnimation.sync) {\n this.rotate.velocity *= Math.random();\n }\n }\n const sizeAnimation = this.particlesOptions.size.animation;\n if (sizeAnimation.enable) {\n this.size.status = Enums_1.AnimationStatus.increasing;\n if (!randomSize) {\n switch (sizeAnimation.startValue) {\n case Enums_1.StartValueType.min:\n this.size.value = sizeAnimation.minimumValue * pxRatio;\n break;\n case Enums_1.StartValueType.random:\n this.size.value = Utils_1.NumberUtils.randomInRange(sizeAnimation.minimumValue * pxRatio, this.size.value);\n break;\n case Enums_1.StartValueType.max:\n default:\n this.size.status = Enums_1.AnimationStatus.decreasing;\n break;\n }\n }\n this.size.velocity =\n (((_g = this.sizeAnimationSpeed) !== null && _g !== void 0 ? _g : container.retina.sizeAnimationSpeed) / 100) *\n container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n this.size.velocity *= Math.random();\n }\n }\n this.color = {\n value: Utils_1.ColorUtils.colorToHsl(color, this.id, reduceDuplicates),\n };\n const colorAnimation = this.particlesOptions.color.animation;\n if (colorAnimation.enable) {\n this.color.velocity = (colorAnimation.speed / 100) * container.retina.reduceFactor;\n if (!colorAnimation.sync) {\n this.color.velocity *= Math.random();\n }\n }\n this.position = this.calcPosition(this.container, position);\n this.initialPosition = {\n x: this.position.x,\n y: this.position.y,\n };\n this.offset = {\n x: 0,\n y: 0,\n };\n const opacityOptions = this.particlesOptions.opacity;\n const randomOpacity = typeof opacityOptions.random === \"boolean\" ? opacityOptions.random : opacityOptions.random.enable;\n this.opacity = {\n value: Utils_1.NumberUtils.getValue(opacityOptions),\n };\n const opacityAnimation = opacityOptions.animation;\n if (opacityAnimation.enable) {\n this.opacity.status = Enums_1.AnimationStatus.increasing;\n if (!randomOpacity) {\n switch (opacityAnimation.startValue) {\n case Enums_1.StartValueType.min:\n this.opacity.value = opacityAnimation.minimumValue;\n break;\n case Enums_1.StartValueType.random:\n this.opacity.value = Utils_1.NumberUtils.randomInRange(opacityAnimation.minimumValue, this.opacity.value);\n break;\n case Enums_1.StartValueType.max:\n default:\n this.opacity.status = Enums_1.AnimationStatus.decreasing;\n break;\n }\n }\n this.opacity.velocity = (opacityAnimation.speed / 100) * container.retina.reduceFactor;\n if (!opacityAnimation.sync) {\n this.opacity.velocity *= Math.random();\n }\n }\n this.sides = 24;\n let drawer = container.drawers.get(this.shape);\n if (!drawer) {\n drawer = Utils_1.Plugins.getShapeDrawer(this.shape);\n if (drawer) {\n container.drawers.set(this.shape, drawer);\n }\n }\n const sideCountFunc = drawer === null || drawer === void 0 ? void 0 : drawer.getSidesCount;\n if (sideCountFunc) {\n this.sides = sideCountFunc(this);\n }\n const imageShape = this.loadImageShape(container, drawer);\n if (imageShape) {\n this.image = imageShape.image;\n this.fill = imageShape.fill;\n this.close = imageShape.close;\n }\n this.stroke =\n this.particlesOptions.stroke instanceof Array\n ? Utils_1.Utils.itemFromArray(this.particlesOptions.stroke, this.id, reduceDuplicates)\n : this.particlesOptions.stroke;\n this.strokeWidth = this.stroke.width * container.retina.pixelRatio;\n this.strokeColor = {\n value: (_h = Utils_1.ColorUtils.colorToHsl(this.stroke.color)) !== null && _h !== void 0 ? _h : this.color.value,\n };\n if (typeof this.stroke.color !== \"string\") {\n const strokeColorAnimation = (_j = this.stroke.color) === null || _j === void 0 ? void 0 : _j.animation;\n if (strokeColorAnimation && this.strokeColor) {\n if (strokeColorAnimation.enable) {\n this.strokeColor.velocity = (strokeColorAnimation.speed / 100) * container.retina.reduceFactor;\n if (!strokeColorAnimation.sync) {\n this.strokeColor.velocity = this.strokeColor.velocity * Math.random();\n }\n }\n else {\n this.strokeColor.velocity = 0;\n }\n if (strokeColorAnimation.enable && !strokeColorAnimation.sync && this.strokeColor.value) {\n this.strokeColor.value.h = Math.random() * 360;\n }\n }\n }\n const lifeOptions = particlesOptions.life;\n this.lifeDelay = container.retina.reduceFactor\n ? ((Utils_1.NumberUtils.getValue(lifeOptions.delay) * (lifeOptions.delay.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0;\n this.lifeDelayTime = 0;\n this.lifeDuration = container.retina.reduceFactor\n ? ((Utils_1.NumberUtils.getValue(lifeOptions.duration) * (lifeOptions.duration.sync ? 1 : Math.random())) /\n container.retina.reduceFactor) *\n 1000\n : 0;\n this.lifeTime = 0;\n this.livesRemaining = particlesOptions.life.count;\n this.spawning = this.lifeDelay > 0;\n if (this.lifeDuration <= 0) {\n this.lifeDuration = -1;\n }\n if (this.livesRemaining <= 0) {\n this.livesRemaining = -1;\n }\n this.shadowColor = Utils_1.ColorUtils.colorToRgb(this.particlesOptions.shadow.color);\n this.updater = new Updater_1.Updater(container, this);\n this.infecter = new Infecter_1.Infecter(container);\n this.mover = new Mover_1.Mover(container, this);\n }\n move(delta) {\n this.mover.move(delta);\n }\n update(delta) {\n this.updater.update(delta);\n }\n draw(delta) {\n this.container.canvas.drawParticle(this, delta);\n }\n getPosition() {\n return {\n x: this.position.x + this.offset.x,\n y: this.position.y + this.offset.y,\n };\n }\n getRadius() {\n return this.bubble.radius || this.size.value;\n }\n getFillColor() {\n var _a;\n return (_a = this.bubble.color) !== null && _a !== void 0 ? _a : this.color.value;\n }\n getStrokeColor() {\n var _a, _b;\n return (_b = (_a = this.bubble.color) !== null && _a !== void 0 ? _a : this.strokeColor.value) !== null && _b !== void 0 ? _b : this.color.value;\n }\n destroy() {\n this.destroyed = true;\n this.bubble.inRange = false;\n this.links = [];\n }\n calcPosition(container, position) {\n var _a, _b;\n for (const [, plugin] of container.plugins) {\n const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined;\n if (pluginPos !== undefined) {\n return Utils_1.Utils.deepExtend({}, pluginPos);\n }\n }\n const pos = {\n x: (_a = position === null || position === void 0 ? void 0 : position.x) !== null && _a !== void 0 ? _a : Math.random() * container.canvas.size.width,\n y: (_b = position === null || position === void 0 ? void 0 : position.y) !== null && _b !== void 0 ? _b : Math.random() * container.canvas.size.height,\n };\n const outMode = this.particlesOptions.move.outMode;\n if (Utils_1.Utils.isInArray(outMode, Enums_1.OutMode.bounce) || Utils_1.Utils.isInArray(outMode, Enums_1.OutMode.bounceHorizontal)) {\n if (pos.x > container.canvas.size.width - this.size.value * 2) {\n pos.x -= this.size.value;\n }\n else if (pos.x < this.size.value * 2) {\n pos.x += this.size.value;\n }\n }\n if (Utils_1.Utils.isInArray(outMode, Enums_1.OutMode.bounce) || Utils_1.Utils.isInArray(outMode, Enums_1.OutMode.bounceVertical)) {\n if (pos.y > container.canvas.size.height - this.size.value * 2) {\n pos.y -= this.size.value;\n }\n else if (pos.y < this.size.value * 2) {\n pos.y += this.size.value;\n }\n }\n return pos;\n }\n calculateVelocity() {\n const baseVelocity = Utils_1.NumberUtils.getParticleBaseVelocity(this);\n const res = {\n horizontal: 0,\n vertical: 0,\n };\n const moveOptions = this.particlesOptions.move;\n let rad;\n let radOffset = Math.PI / 4;\n if (typeof moveOptions.angle === \"number\") {\n rad = (Math.PI / 180) * moveOptions.angle;\n }\n else {\n rad = (Math.PI / 180) * moveOptions.angle.value;\n radOffset = (Math.PI / 180) * moveOptions.angle.offset;\n }\n const range = {\n left: Math.sin(radOffset + rad / 2) - Math.sin(radOffset - rad / 2),\n right: Math.cos(radOffset + rad / 2) - Math.cos(radOffset - rad / 2),\n };\n if (moveOptions.straight) {\n res.horizontal = baseVelocity.x;\n res.vertical = baseVelocity.y;\n if (moveOptions.random) {\n res.horizontal += Utils_1.NumberUtils.randomInRange(range.left, range.right) / 2;\n res.vertical += Utils_1.NumberUtils.randomInRange(range.left, range.right) / 2;\n }\n }\n else {\n res.horizontal = baseVelocity.x + Utils_1.NumberUtils.randomInRange(range.left, range.right) / 2;\n res.vertical = baseVelocity.y + Utils_1.NumberUtils.randomInRange(range.left, range.right) / 2;\n }\n return res;\n }\n loadImageShape(container, drawer) {\n var _a, _b, _c, _d, _e;\n if (!(this.shape === Enums_1.ShapeType.image || this.shape === Enums_1.ShapeType.images)) {\n return;\n }\n const imageDrawer = drawer;\n const images = imageDrawer.getImages(container).images;\n const imageData = this.shapeData;\n const image = (_a = images.find((t) => t.source === imageData.src)) !== null && _a !== void 0 ? _a : images[0];\n const color = this.getFillColor();\n let imageRes;\n if (!image) {\n return;\n }\n if (image.svgData !== undefined && imageData.replaceColor && color) {\n const svgColoredData = Utils_1.ColorUtils.replaceColorSvg(image, color, this.opacity.value);\n const svg = new Blob([svgColoredData], { type: \"image/svg+xml\" });\n const domUrl = URL || window.URL || window.webkitURL || window;\n const url = domUrl.createObjectURL(svg);\n const img = new Image();\n imageRes = {\n data: image,\n loaded: false,\n ratio: imageData.width / imageData.height,\n replaceColor: (_b = imageData.replaceColor) !== null && _b !== void 0 ? _b : imageData.replace_color,\n source: imageData.src,\n };\n img.addEventListener(\"load\", () => {\n if (this.image) {\n this.image.loaded = true;\n image.element = img;\n }\n domUrl.revokeObjectURL(url);\n });\n img.addEventListener(\"error\", () => {\n domUrl.revokeObjectURL(url);\n Utils_1.Utils.loadImage(imageData.src).then((img2) => {\n if (this.image) {\n image.element = img2.element;\n this.image.loaded = true;\n }\n });\n });\n img.src = url;\n }\n else {\n imageRes = {\n data: image,\n loaded: true,\n ratio: imageData.width / imageData.height,\n replaceColor: (_c = imageData.replaceColor) !== null && _c !== void 0 ? _c : imageData.replace_color,\n source: imageData.src,\n };\n }\n if (!imageRes.ratio) {\n imageRes.ratio = 1;\n }\n const fill = (_d = imageData.fill) !== null && _d !== void 0 ? _d : this.fill;\n const close = (_e = imageData.close) !== null && _e !== void 0 ? _e : this.close;\n return {\n image: imageRes,\n fill,\n close,\n };\n }\n}\nexports.Particle = Particle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grabber = void 0;\nconst Utils_1 = require(\"../../Utils\");\nconst Modes_1 = require(\"../../Enums/Modes\");\nclass Grabber {\n constructor(container) {\n this.container = container;\n }\n isEnabled() {\n const container = this.container;\n const mouse = container.interactivity.mouse;\n const events = container.options.interactivity.events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n const hoverMode = events.onHover.mode;\n return Utils_1.Utils.isInArray(Modes_1.HoverMode.grab, hoverMode);\n }\n reset() {\n }\n interact() {\n var _a;\n const container = this.container;\n const options = container.options;\n const interactivity = options.interactivity;\n if (interactivity.events.onHover.enable && container.interactivity.status === Utils_1.Constants.mouseMoveEvent) {\n const mousePos = container.interactivity.mouse.position;\n if (mousePos === undefined) {\n return;\n }\n const distance = container.retina.grabModeDistance;\n const query = container.particles.quadTree.queryCircle(mousePos, distance);\n for (const particle of query) {\n const pos = particle.getPosition();\n const pointDistance = Utils_1.NumberUtils.getDistance(pos, mousePos);\n if (pointDistance <= distance) {\n const grabLineOptions = interactivity.modes.grab.links;\n const lineOpacity = grabLineOptions.opacity;\n const opacityLine = lineOpacity - (pointDistance * lineOpacity) / distance;\n if (opacityLine > 0) {\n const optColor = (_a = grabLineOptions.color) !== null && _a !== void 0 ? _a : particle.particlesOptions.links.color;\n if (!container.particles.grabLineColor) {\n const linksOptions = container.options.interactivity.modes.grab.links;\n container.particles.grabLineColor = Utils_1.ColorUtils.getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent);\n }\n const colorLine = Utils_1.ColorUtils.getLinkColor(particle, undefined, container.particles.grabLineColor);\n if (colorLine === undefined) {\n return;\n }\n container.canvas.drawGrabLine(particle, colorLine, opacityLine, mousePos);\n }\n }\n }\n }\n }\n}\nexports.Grabber = Grabber;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Repulser = void 0;\nconst Enums_1 = require(\"../../Enums\");\nconst Utils_1 = require(\"../../Utils\");\nclass Repulser {\n constructor(container) {\n this.container = container;\n }\n isEnabled() {\n const container = this.container;\n const options = container.options;\n const mouse = container.interactivity.mouse;\n const events = options.interactivity.events;\n const divs = events.onDiv;\n const divRepulse = Utils_1.Utils.isDivModeEnabled(Enums_1.DivMode.repulse, divs);\n if (!(divRepulse || (events.onHover.enable && mouse.position) || (events.onClick.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = events.onHover.mode;\n const clickMode = events.onClick.mode;\n return (Utils_1.Utils.isInArray(Enums_1.HoverMode.repulse, hoverMode) || Utils_1.Utils.isInArray(Enums_1.ClickMode.repulse, clickMode) || divRepulse);\n }\n reset() {\n }\n interact() {\n const container = this.container;\n const options = container.options;\n const mouseMoveStatus = container.interactivity.status === Utils_1.Constants.mouseMoveEvent;\n const events = options.interactivity.events;\n const hoverEnabled = events.onHover.enable;\n const hoverMode = events.onHover.mode;\n const clickEnabled = events.onClick.enable;\n const clickMode = events.onClick.mode;\n const divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && Utils_1.Utils.isInArray(Enums_1.HoverMode.repulse, hoverMode)) {\n this.hoverRepulse();\n }\n else if (clickEnabled && Utils_1.Utils.isInArray(Enums_1.ClickMode.repulse, clickMode)) {\n this.clickRepulse();\n }\n else {\n Utils_1.Utils.divModeExecute(Enums_1.DivMode.repulse, divs, (selector, div) => this.singleSelectorRepulse(selector, div));\n }\n }\n singleSelectorRepulse(selector, div) {\n const container = this.container;\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item;\n const pxRatio = container.retina.pixelRatio;\n const pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n };\n const repulseRadius = (elem.offsetWidth / 2) * pxRatio;\n const area = div.type === Enums_1.DivType.circle\n ? new Utils_1.Circle(pos.x, pos.y, repulseRadius)\n : new Utils_1.Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio);\n const divs = container.options.interactivity.modes.repulse.divs;\n const divRepulse = Utils_1.Utils.divMode(divs, elem);\n this.processRepulse(pos, repulseRadius, area, divRepulse);\n });\n }\n hoverRepulse() {\n const container = this.container;\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const repulseRadius = container.retina.repulseModeDistance;\n this.processRepulse(mousePos, repulseRadius, new Utils_1.Circle(mousePos.x, mousePos.y, repulseRadius));\n }\n processRepulse(position, repulseRadius, area, divRepulse) {\n var _a;\n const container = this.container;\n const query = container.particles.quadTree.query(area);\n for (const particle of query) {\n const { dx, dy, distance } = Utils_1.NumberUtils.getDistances(particle.position, position);\n const normVec = {\n x: dx / distance,\n y: dy / distance,\n };\n const velocity = ((_a = divRepulse === null || divRepulse === void 0 ? void 0 : divRepulse.speed) !== null && _a !== void 0 ? _a : container.options.interactivity.modes.repulse.speed) * 100;\n const repulseFactor = Utils_1.NumberUtils.clamp((1 - Math.pow(distance / repulseRadius, 2)) * velocity, 0, 50);\n particle.position.x = particle.position.x + normVec.x * repulseFactor;\n particle.position.y = particle.position.y + normVec.y * repulseFactor;\n }\n }\n clickRepulse() {\n const container = this.container;\n if (!container.repulse.finish) {\n if (!container.repulse.count) {\n container.repulse.count = 0;\n }\n container.repulse.count++;\n if (container.repulse.count === container.particles.count) {\n container.repulse.finish = true;\n }\n }\n if (container.repulse.clicking) {\n const repulseDistance = container.retina.repulseModeDistance;\n const repulseRadius = Math.pow(repulseDistance / 6, 3);\n const mouseClickPos = container.interactivity.mouse.clickPosition;\n if (mouseClickPos === undefined) {\n return;\n }\n const range = new Utils_1.Circle(mouseClickPos.x, mouseClickPos.y, repulseRadius);\n const query = container.particles.quadTree.query(range);\n for (const particle of query) {\n const { dx, dy, distance } = Utils_1.NumberUtils.getDistances(mouseClickPos, particle.position);\n const d = distance * distance;\n const velocity = container.options.interactivity.modes.repulse.speed;\n const force = (-repulseRadius * velocity) / d;\n if (d <= repulseRadius) {\n container.repulse.particles.push(particle);\n const angle = Math.atan2(dy, dx);\n particle.velocity.horizontal = force * Math.cos(angle);\n particle.velocity.vertical = force * Math.sin(angle);\n }\n }\n }\n else if (container.repulse.clicking === false) {\n for (const particle of container.repulse.particles) {\n particle.velocity.horizontal = particle.initialVelocity.horizontal;\n particle.velocity.vertical = particle.initialVelocity.vertical;\n }\n container.repulse.particles = [];\n }\n }\n}\nexports.Repulser = Repulser;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bubbler = void 0;\nconst Utils_1 = require(\"../../Utils\");\nconst Enums_1 = require(\"../../Enums\");\nfunction calculateBubbleValue(particleValue, modeValue, optionsValue, ratio) {\n if (modeValue > optionsValue) {\n const size = particleValue + (modeValue - optionsValue) * ratio;\n return Utils_1.NumberUtils.clamp(size, particleValue, modeValue);\n }\n else if (modeValue < optionsValue) {\n const size = particleValue - (optionsValue - modeValue) * ratio;\n return Utils_1.NumberUtils.clamp(size, modeValue, particleValue);\n }\n}\nclass Bubbler {\n constructor(container) {\n this.container = container;\n }\n isEnabled() {\n const container = this.container;\n const options = container.options;\n const mouse = container.interactivity.mouse;\n const events = options.interactivity.events;\n const divs = events.onDiv;\n const divBubble = Utils_1.Utils.isDivModeEnabled(Enums_1.DivMode.bubble, divs);\n if (!(divBubble || (events.onHover.enable && mouse.position) || (events.onClick.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = events.onHover.mode;\n const clickMode = events.onClick.mode;\n return (Utils_1.Utils.isInArray(Enums_1.HoverMode.bubble, hoverMode) || Utils_1.Utils.isInArray(Enums_1.ClickMode.bubble, clickMode) || divBubble);\n }\n reset(particle, force) {\n if (!particle.bubble.inRange || force) {\n delete particle.bubble.div;\n delete particle.bubble.opacity;\n delete particle.bubble.radius;\n delete particle.bubble.color;\n }\n }\n interact() {\n const options = this.container.options;\n const events = options.interactivity.events;\n const onHover = events.onHover;\n const onClick = events.onClick;\n const hoverEnabled = onHover.enable;\n const hoverMode = onHover.mode;\n const clickEnabled = onClick.enable;\n const clickMode = onClick.mode;\n const divs = events.onDiv;\n if (hoverEnabled && Utils_1.Utils.isInArray(Enums_1.HoverMode.bubble, hoverMode)) {\n this.hoverBubble();\n }\n else if (clickEnabled && Utils_1.Utils.isInArray(Enums_1.ClickMode.bubble, clickMode)) {\n this.clickBubble();\n }\n else {\n Utils_1.Utils.divModeExecute(Enums_1.DivMode.bubble, divs, (selector, div) => this.singleSelectorHover(selector, div));\n }\n }\n singleSelectorHover(selector, div) {\n const container = this.container;\n const selectors = document.querySelectorAll(selector);\n if (!selectors.length) {\n return;\n }\n selectors.forEach((item) => {\n const elem = item;\n const pxRatio = container.retina.pixelRatio;\n const pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n };\n const repulseRadius = (elem.offsetWidth / 2) * pxRatio;\n const area = div.type === Enums_1.DivType.circle\n ? new Utils_1.Circle(pos.x, pos.y, repulseRadius)\n : new Utils_1.Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio);\n const query = container.particles.quadTree.query(area);\n for (const particle of query) {\n if (!area.contains(particle.getPosition())) {\n continue;\n }\n particle.bubble.inRange = true;\n const divs = container.options.interactivity.modes.bubble.divs;\n const divBubble = Utils_1.Utils.divMode(divs, elem);\n if (!particle.bubble.div || particle.bubble.div !== elem) {\n this.reset(particle, true);\n particle.bubble.div = elem;\n }\n this.hoverBubbleSize(particle, 1, divBubble);\n this.hoverBubbleOpacity(particle, 1, divBubble);\n this.hoverBubbleColor(particle, divBubble);\n }\n });\n }\n process(particle, distMouse, timeSpent, data) {\n const container = this.container;\n const bubbleParam = data.bubbleObj.optValue;\n if (bubbleParam === undefined) {\n return;\n }\n const options = container.options;\n const bubbleDuration = options.interactivity.modes.bubble.duration;\n const bubbleDistance = container.retina.bubbleModeDistance;\n const particlesParam = data.particlesObj.optValue;\n const pObjBubble = data.bubbleObj.value;\n const pObj = data.particlesObj.value || 0;\n const type = data.type;\n if (bubbleParam !== particlesParam) {\n if (!container.bubble.durationEnd) {\n if (distMouse <= bubbleDistance) {\n const obj = pObjBubble !== null && pObjBubble !== void 0 ? pObjBubble : pObj;\n if (obj !== bubbleParam) {\n const value = pObj - (timeSpent * (pObj - bubbleParam)) / bubbleDuration;\n if (type === Enums_1.ProcessBubbleType.size) {\n particle.bubble.radius = value;\n }\n if (type === Enums_1.ProcessBubbleType.opacity) {\n particle.bubble.opacity = value;\n }\n }\n }\n else {\n if (type === Enums_1.ProcessBubbleType.size) {\n delete particle.bubble.radius;\n }\n if (type === Enums_1.ProcessBubbleType.opacity) {\n delete particle.bubble.opacity;\n }\n }\n }\n else if (pObjBubble) {\n if (type === Enums_1.ProcessBubbleType.size) {\n delete particle.bubble.radius;\n }\n if (type === Enums_1.ProcessBubbleType.opacity) {\n delete particle.bubble.opacity;\n }\n }\n }\n }\n clickBubble() {\n var _a;\n const container = this.container;\n const options = container.options;\n const mouseClickPos = container.interactivity.mouse.clickPosition;\n if (mouseClickPos === undefined) {\n return;\n }\n const distance = container.retina.bubbleModeDistance;\n const query = container.particles.quadTree.queryCircle(mouseClickPos, distance);\n for (const particle of query) {\n if (!container.bubble.clicking) {\n continue;\n }\n particle.bubble.inRange = !container.bubble.durationEnd;\n const pos = particle.getPosition();\n const distMouse = Utils_1.NumberUtils.getDistance(pos, mouseClickPos);\n const timeSpent = (new Date().getTime() - (container.interactivity.mouse.clickTime || 0)) / 1000;\n if (timeSpent > options.interactivity.modes.bubble.duration) {\n container.bubble.durationEnd = true;\n }\n if (timeSpent > options.interactivity.modes.bubble.duration * 2) {\n container.bubble.clicking = false;\n container.bubble.durationEnd = false;\n }\n const sizeData = {\n bubbleObj: {\n optValue: container.retina.bubbleModeSize,\n value: particle.bubble.radius,\n },\n particlesObj: {\n optValue: (_a = particle.sizeValue) !== null && _a !== void 0 ? _a : container.retina.sizeValue,\n value: particle.size.value,\n },\n type: Enums_1.ProcessBubbleType.size,\n };\n this.process(particle, distMouse, timeSpent, sizeData);\n const opacityData = {\n bubbleObj: {\n optValue: options.interactivity.modes.bubble.opacity,\n value: particle.bubble.opacity,\n },\n particlesObj: {\n optValue: particle.particlesOptions.opacity.value,\n value: particle.opacity.value,\n },\n type: Enums_1.ProcessBubbleType.opacity,\n };\n this.process(particle, distMouse, timeSpent, opacityData);\n if (!container.bubble.durationEnd) {\n if (distMouse <= container.retina.bubbleModeDistance) {\n this.hoverBubbleColor(particle);\n }\n else {\n delete particle.bubble.color;\n }\n }\n else {\n delete particle.bubble.color;\n }\n }\n }\n hoverBubble() {\n const container = this.container;\n const mousePos = container.interactivity.mouse.position;\n if (mousePos === undefined) {\n return;\n }\n const distance = container.retina.bubbleModeDistance;\n const query = container.particles.quadTree.queryCircle(mousePos, distance);\n for (const particle of query) {\n particle.bubble.inRange = true;\n const pos = particle.getPosition();\n const pointDistance = Utils_1.NumberUtils.getDistance(pos, mousePos);\n const ratio = 1 - pointDistance / distance;\n if (pointDistance <= distance) {\n if (ratio >= 0 && container.interactivity.status === Utils_1.Constants.mouseMoveEvent) {\n this.hoverBubbleSize(particle, ratio);\n this.hoverBubbleOpacity(particle, ratio);\n this.hoverBubbleColor(particle);\n }\n }\n else {\n this.reset(particle);\n }\n if (container.interactivity.status === Utils_1.Constants.mouseLeaveEvent) {\n this.reset(particle);\n }\n }\n }\n hoverBubbleSize(particle, ratio, divBubble) {\n var _a;\n const container = this.container;\n const modeSize = (divBubble === null || divBubble === void 0 ? void 0 : divBubble.size) ? divBubble.size * container.retina.pixelRatio\n : container.retina.bubbleModeSize;\n if (modeSize === undefined) {\n return;\n }\n const optSize = (_a = particle.sizeValue) !== null && _a !== void 0 ? _a : container.retina.sizeValue;\n const pSize = particle.size.value;\n const size = calculateBubbleValue(pSize, modeSize, optSize, ratio);\n if (size !== undefined) {\n particle.bubble.radius = size;\n }\n }\n hoverBubbleOpacity(particle, ratio, divBubble) {\n var _a;\n const options = this.container.options;\n const modeOpacity = (_a = divBubble === null || divBubble === void 0 ? void 0 : divBubble.opacity) !== null && _a !== void 0 ? _a : options.interactivity.modes.bubble.opacity;\n if (modeOpacity === undefined) {\n return;\n }\n const optOpacity = particle.particlesOptions.opacity.value;\n const pOpacity = particle.opacity.value;\n const opacity = calculateBubbleValue(pOpacity, modeOpacity, optOpacity, ratio);\n if (opacity !== undefined) {\n particle.bubble.opacity = opacity;\n }\n }\n hoverBubbleColor(particle, divBubble) {\n var _a;\n const options = this.container.options;\n if (particle.bubble.color === undefined) {\n const modeColor = (_a = divBubble === null || divBubble === void 0 ? void 0 : divBubble.color) !== null && _a !== void 0 ? _a : options.interactivity.modes.bubble.color;\n if (modeColor === undefined) {\n return;\n }\n const bubbleColor = modeColor instanceof Array ? Utils_1.Utils.itemFromArray(modeColor) : modeColor;\n particle.bubble.color = Utils_1.ColorUtils.colorToHsl(bubbleColor);\n }\n }\n}\nexports.Bubbler = Bubbler;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connector = void 0;\nconst Utils_1 = require(\"../../Utils\");\nconst Modes_1 = require(\"../../Enums/Modes\");\nclass Connector {\n constructor(container) {\n this.container = container;\n }\n isEnabled() {\n const container = this.container;\n const mouse = container.interactivity.mouse;\n const events = container.options.interactivity.events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n const hoverMode = events.onHover.mode;\n return Utils_1.Utils.isInArray(Modes_1.HoverMode.connect, hoverMode);\n }\n reset() {\n }\n interact() {\n const container = this.container;\n const options = container.options;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"mousemove\") {\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = Math.abs(container.retina.connectModeRadius);\n const query = container.particles.quadTree.queryCircle(mousePos, distance);\n let i = 0;\n for (const p1 of query) {\n const pos1 = p1.getPosition();\n for (const p2 of query.slice(i + 1)) {\n const pos2 = p2.getPosition();\n const distMax = Math.abs(container.retina.connectModeDistance);\n const xDiff = Math.abs(pos1.x - pos2.x);\n const yDiff = Math.abs(pos1.y - pos2.y);\n if (xDiff < distMax && yDiff < distMax) {\n container.canvas.drawConnectLine(p1, p2);\n }\n }\n ++i;\n }\n }\n }\n}\nexports.Connector = Connector;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Linker = void 0;\nconst Utils_1 = require(\"../../Utils\");\nclass Linker {\n constructor(container) {\n this.container = container;\n }\n isEnabled(particle) {\n return particle.particlesOptions.links.enable;\n }\n reset() {\n }\n interact(p1) {\n var _a;\n const container = this.container;\n const linkOpt1 = p1.particlesOptions.links;\n const optOpacity = linkOpt1.opacity;\n const optDistance = (_a = p1.linksDistance) !== null && _a !== void 0 ? _a : container.retina.linksDistance;\n const canvasSize = container.canvas.size;\n const warp = linkOpt1.warp;\n const pos1 = p1.getPosition();\n const range = warp\n ? new Utils_1.CircleWarp(pos1.x, pos1.y, optDistance, canvasSize)\n : new Utils_1.Circle(pos1.x, pos1.y, optDistance);\n const query = container.particles.quadTree.query(range);\n for (const p2 of query) {\n const linkOpt2 = p2.particlesOptions.links;\n if (p1 === p2 || !linkOpt2.enable || linkOpt1.id !== linkOpt2.id || p2.spawning || p2.destroyed) {\n continue;\n }\n const pos2 = p2.getPosition();\n let distance = Utils_1.NumberUtils.getDistance(pos1, pos2);\n if (warp) {\n if (distance > optDistance) {\n const pos2NE = {\n x: pos2.x - canvasSize.width,\n y: pos2.y,\n };\n distance = Utils_1.NumberUtils.getDistance(pos1, pos2NE);\n if (distance > optDistance) {\n const pos2SE = {\n x: pos2.x - canvasSize.width,\n y: pos2.y - canvasSize.height,\n };\n distance = Utils_1.NumberUtils.getDistance(pos1, pos2SE);\n if (distance > optDistance) {\n const pos2SW = {\n x: pos2.x,\n y: pos2.y - canvasSize.height,\n };\n distance = Utils_1.NumberUtils.getDistance(pos1, pos2SW);\n }\n }\n }\n }\n if (distance > optDistance) {\n return;\n }\n const opacityLine = (1 - distance / optDistance) * optOpacity;\n const linksOptions = p1.particlesOptions.links;\n let linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n if (!linkColor) {\n const optColor = linksOptions.color;\n linkColor = Utils_1.ColorUtils.getLinkRandomColor(optColor, linksOptions.blink, linksOptions.consent);\n if (linksOptions.id !== undefined) {\n container.particles.linksColors.set(linksOptions.id, linkColor);\n }\n else {\n container.particles.linksColor = linkColor;\n }\n }\n if (p2.links.map((t) => t.destination).indexOf(p1) === -1 &&\n p1.links.map((t) => t.destination).indexOf(p2) === -1) {\n p1.links.push({\n destination: p2,\n opacity: opacityLine,\n });\n }\n }\n }\n}\nexports.Linker = Linker;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Attractor = void 0;\nconst Utils_1 = require(\"../../Utils\");\nclass Attractor {\n constructor(container) {\n this.container = container;\n }\n interact(p1) {\n var _a;\n const container = this.container;\n const distance = (_a = p1.linksDistance) !== null && _a !== void 0 ? _a : container.retina.linksDistance;\n const pos1 = p1.getPosition();\n const query = container.particles.quadTree.queryCircle(pos1, distance);\n for (const p2 of query) {\n if (p1 === p2 || !p2.particlesOptions.move.attract.enable || p2.destroyed || p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition();\n const { dx, dy } = Utils_1.NumberUtils.getDistances(pos1, pos2);\n const rotate = p1.particlesOptions.move.attract.rotate;\n const ax = dx / (rotate.x * 1000);\n const ay = dy / (rotate.y * 1000);\n p1.velocity.horizontal -= ax;\n p1.velocity.vertical -= ay;\n p2.velocity.horizontal += ax;\n p2.velocity.vertical += ay;\n }\n }\n isEnabled(particle) {\n return particle.particlesOptions.move.attract.enable;\n }\n reset() {\n }\n}\nexports.Attractor = Attractor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Collider = void 0;\nconst Enums_1 = require(\"../../Enums\");\nconst Utils_1 = require(\"../../Utils\");\nfunction bounce(p1, p2) {\n Utils_1.Utils.circleBounce(Utils_1.Utils.circleBounceDataFromParticle(p1), Utils_1.Utils.circleBounceDataFromParticle(p2));\n}\nfunction destroy(p1, p2) {\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n if (p1.getRadius() >= p2.getRadius()) {\n p2.destroy();\n }\n else {\n p1.destroy();\n }\n }\n}\nclass Collider {\n constructor(container) {\n this.container = container;\n }\n isEnabled(particle) {\n return particle.particlesOptions.collisions.enable;\n }\n reset() {\n }\n interact(p1) {\n const container = this.container;\n const pos1 = p1.getPosition();\n const query = container.particles.quadTree.queryCircle(pos1, p1.getRadius() * 2);\n for (const p2 of query) {\n if (p1 === p2 ||\n !p2.particlesOptions.collisions.enable ||\n p1.particlesOptions.collisions.mode !== p2.particlesOptions.collisions.mode ||\n p2.destroyed ||\n p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition();\n const dist = Utils_1.NumberUtils.getDistance(pos1, pos2);\n const radius1 = p1.getRadius();\n const radius2 = p2.getRadius();\n const distP = radius1 + radius2;\n if (dist <= distP) {\n this.resolveCollision(p1, p2);\n }\n }\n }\n resolveCollision(p1, p2) {\n switch (p1.particlesOptions.collisions.mode) {\n case Enums_1.CollisionMode.absorb: {\n this.absorb(p1, p2);\n break;\n }\n case Enums_1.CollisionMode.bounce: {\n bounce(p1, p2);\n break;\n }\n case Enums_1.CollisionMode.destroy: {\n destroy(p1, p2);\n break;\n }\n }\n }\n absorb(p1, p2) {\n const container = this.container;\n const fps = container.options.fpsLimit / 1000;\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n if (p1.getRadius() >= p2.getRadius()) {\n const factor = Utils_1.NumberUtils.clamp(p1.getRadius() / p2.getRadius(), 0, p2.getRadius()) * fps;\n p1.size.value += factor;\n p2.size.value -= factor;\n if (p2.getRadius() <= container.retina.pixelRatio) {\n p2.size.value = 0;\n p2.destroy();\n }\n }\n else {\n const factor = Utils_1.NumberUtils.clamp(p2.getRadius() / p1.getRadius(), 0, p1.getRadius()) * fps;\n p1.size.value -= factor;\n p2.size.value += factor;\n if (p1.getRadius() <= container.retina.pixelRatio) {\n p1.size.value = 0;\n p1.destroy();\n }\n }\n }\n }\n}\nexports.Collider = Collider;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Infecter = void 0;\nclass Infecter {\n constructor(container) {\n this.container = container;\n }\n isEnabled() {\n return this.container.options.infection.enable;\n }\n reset() {\n }\n interact(p1, delta) {\n var _a, _b;\n const infecter1 = p1.infecter;\n infecter1.updateInfection(delta.value);\n if (infecter1.infectionStage === undefined) {\n return;\n }\n const container = this.container;\n const options = container.options;\n const infectionOptions = options.infection;\n if (!infectionOptions.enable || infectionOptions.stages.length < 1) {\n return;\n }\n const infectionStage1 = infectionOptions.stages[infecter1.infectionStage];\n const pxRatio = container.retina.pixelRatio;\n const radius = p1.getRadius() * 2 + infectionStage1.radius * pxRatio;\n const pos = p1.getPosition();\n const infectedStage1 = (_a = infectionStage1.infectedStage) !== null && _a !== void 0 ? _a : infecter1.infectionStage;\n const query = container.particles.quadTree.queryCircle(pos, radius);\n const infections = infectionStage1.rate;\n const neighbors = query.length;\n for (const p2 of query) {\n if (p2 === p1 ||\n p2.destroyed ||\n p2.spawning ||\n !(p2.infecter.infectionStage === undefined || p2.infecter.infectionStage !== infecter1.infectionStage)) {\n continue;\n }\n const infecter2 = p2.infecter;\n if (Math.random() < infections / neighbors) {\n if (infecter2.infectionStage === undefined) {\n infecter2.startInfection(infectedStage1);\n }\n else if (infecter2.infectionStage < infecter1.infectionStage) {\n infecter2.updateInfectionStage(infectedStage1);\n }\n else if (infecter2.infectionStage > infecter1.infectionStage) {\n const infectionStage2 = infectionOptions.stages[infecter2.infectionStage];\n const infectedStage2 = (_b = infectionStage2 === null || infectionStage2 === void 0 ? void 0 : infectionStage2.infectedStage) !== null && _b !== void 0 ? _b : infecter2.infectionStage;\n infecter1.updateInfectionStage(infectedStage2);\n }\n }\n }\n }\n}\nexports.Infecter = Infecter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.TrailMaker = void 0;\nconst Utils_1 = require(\"../../Utils\");\nconst Modes_1 = require(\"../../Enums/Modes\");\nclass TrailMaker {\n constructor(container) {\n this.container = container;\n this.delay = 0;\n }\n interact(delta) {\n if (!this.container.retina.reduceFactor) {\n return;\n }\n const container = this.container;\n const options = container.options;\n const trailOptions = options.interactivity.modes.trail;\n const optDelay = (trailOptions.delay * 1000) / this.container.retina.reduceFactor;\n if (this.delay < optDelay) {\n this.delay += delta.value;\n }\n if (this.delay >= optDelay) {\n container.particles.push(trailOptions.quantity, container.interactivity.mouse, trailOptions.particles);\n this.delay -= optDelay;\n }\n }\n isEnabled() {\n const container = this.container;\n const options = container.options;\n const mouse = container.interactivity.mouse;\n const events = options.interactivity.events;\n return ((mouse.clicking &&\n mouse.inside &&\n !!mouse.position &&\n Utils_1.Utils.isInArray(Modes_1.ClickMode.trail, events.onClick.mode)) ||\n (mouse.inside && !!mouse.position && Utils_1.Utils.isInArray(Modes_1.HoverMode.trail, events.onHover.mode)));\n }\n reset() {\n }\n}\nexports.TrailMaker = TrailMaker;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Attractor = void 0;\nconst Enums_1 = require(\"../../Enums\");\nconst Utils_1 = require(\"../../Utils\");\nclass Attractor {\n constructor(container) {\n this.container = container;\n }\n isEnabled() {\n const container = this.container;\n const options = container.options;\n const mouse = container.interactivity.mouse;\n const events = options.interactivity.events;\n if (!((events.onHover.enable && mouse.position) || (events.onClick.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = events.onHover.mode;\n const clickMode = events.onClick.mode;\n return Utils_1.Utils.isInArray(Enums_1.HoverMode.attract, hoverMode) || Utils_1.Utils.isInArray(Enums_1.ClickMode.attract, clickMode);\n }\n reset() {\n }\n interact() {\n const container = this.container;\n const options = container.options;\n const mouseMoveStatus = container.interactivity.status === Utils_1.Constants.mouseMoveEvent;\n const events = options.interactivity.events;\n const hoverEnabled = events.onHover.enable;\n const hoverMode = events.onHover.mode;\n const clickEnabled = events.onClick.enable;\n const clickMode = events.onClick.mode;\n if (mouseMoveStatus && hoverEnabled && Utils_1.Utils.isInArray(Enums_1.HoverMode.attract, hoverMode)) {\n this.hoverAttract();\n }\n else if (clickEnabled && Utils_1.Utils.isInArray(Enums_1.ClickMode.attract, clickMode)) {\n this.clickAttract();\n }\n }\n hoverAttract() {\n const container = this.container;\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const attractRadius = container.retina.attractModeDistance;\n this.processAttract(mousePos, attractRadius, new Utils_1.Circle(mousePos.x, mousePos.y, attractRadius));\n }\n processAttract(position, attractRadius, area) {\n const container = this.container;\n const query = container.particles.quadTree.query(area);\n for (const particle of query) {\n const { dx, dy, distance } = Utils_1.NumberUtils.getDistances(particle.position, position);\n const normVec = {\n x: dx / distance,\n y: dy / distance,\n };\n const velocity = container.options.interactivity.modes.attract.speed;\n const attractFactor = Utils_1.NumberUtils.clamp((1 - Math.pow(distance / attractRadius, 2)) * velocity, 0, 50);\n particle.position.x = particle.position.x - normVec.x * attractFactor;\n particle.position.y = particle.position.y - normVec.y * attractFactor;\n }\n }\n clickAttract() {\n const container = this.container;\n if (!container.attract.finish) {\n if (!container.attract.count) {\n container.attract.count = 0;\n }\n container.attract.count++;\n if (container.attract.count === container.particles.count) {\n container.attract.finish = true;\n }\n }\n if (container.attract.clicking) {\n const mousePos = container.interactivity.mouse.clickPosition;\n if (!mousePos) {\n return;\n }\n const attractRadius = container.retina.attractModeDistance;\n this.processAttract(mousePos, attractRadius, new Utils_1.Circle(mousePos.x, mousePos.y, attractRadius));\n }\n else if (container.attract.clicking === false) {\n container.attract.particles = [];\n }\n return;\n }\n}\nexports.Attractor = Attractor;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Lighter = void 0;\nconst Utils_1 = require(\"../../Utils\");\nconst Modes_1 = require(\"../../Enums/Modes\");\nclass Lighter {\n constructor(container) {\n this.container = container;\n }\n interact(particle) {\n const container = this.container;\n const options = container.options;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"mousemove\") {\n const mousePos = this.container.interactivity.mouse.position;\n if (mousePos) {\n container.canvas.drawParticleShadow(particle, mousePos);\n }\n }\n }\n isEnabled() {\n const container = this.container;\n const mouse = container.interactivity.mouse;\n const events = container.options.interactivity.events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n const hoverMode = events.onHover.mode;\n return Utils_1.Utils.isInArray(Modes_1.HoverMode.light, hoverMode);\n }\n reset() {\n }\n}\nexports.Lighter = Lighter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Lighter = void 0;\nconst Utils_1 = require(\"../../Utils\");\nconst Modes_1 = require(\"../../Enums/Modes\");\nclass Lighter {\n constructor(container) {\n this.container = container;\n }\n interact() {\n const container = this.container;\n const options = container.options;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"mousemove\") {\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n container.canvas.drawLight(mousePos);\n }\n }\n isEnabled() {\n const container = this.container;\n const mouse = container.interactivity.mouse;\n const events = container.options.interactivity.events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n const hoverMode = events.onHover.mode;\n return Utils_1.Utils.isInArray(Modes_1.HoverMode.light, hoverMode);\n }\n reset() {\n }\n}\nexports.Lighter = Lighter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bouncer = void 0;\nconst Utils_1 = require(\"../../Utils\");\nconst Modes_1 = require(\"../../Enums/Modes\");\nconst Utils_2 = require(\"../../Utils\");\nconst Modes_2 = require(\"../../Enums/Modes\");\nconst Types_1 = require(\"../../Enums/Types\");\nclass Bouncer {\n constructor(container) {\n this.container = container;\n }\n isEnabled() {\n const container = this.container;\n const options = container.options;\n const mouse = container.interactivity.mouse;\n const events = options.interactivity.events;\n const divs = events.onDiv;\n return ((mouse.position && events.onHover.enable && Utils_2.Utils.isInArray(Modes_1.HoverMode.bounce, events.onHover.mode)) ||\n Utils_2.Utils.isDivModeEnabled(Modes_2.DivMode.bounce, divs));\n }\n interact() {\n const container = this.container;\n const options = container.options;\n const events = options.interactivity.events;\n const mouseMoveStatus = container.interactivity.status === Utils_1.Constants.mouseMoveEvent;\n const hoverEnabled = events.onHover.enable;\n const hoverMode = events.onHover.mode;\n const divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && Utils_2.Utils.isInArray(Modes_1.HoverMode.bounce, hoverMode)) {\n this.processMouseBounce();\n }\n else {\n Utils_2.Utils.divModeExecute(Modes_2.DivMode.bounce, divs, (selector, div) => this.singleSelectorBounce(selector, div));\n }\n }\n reset() {\n }\n processMouseBounce() {\n const container = this.container;\n const pxRatio = container.retina.pixelRatio;\n const tolerance = 10 * pxRatio;\n const mousePos = container.interactivity.mouse.position;\n const radius = container.retina.bounceModeDistance;\n if (mousePos) {\n this.processBounce(mousePos, radius, new Utils_2.Circle(mousePos.x, mousePos.y, radius + tolerance));\n }\n }\n singleSelectorBounce(selector, div) {\n const container = this.container;\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach((item) => {\n const elem = item;\n const pxRatio = container.retina.pixelRatio;\n const pos = {\n x: (elem.offsetLeft + elem.offsetWidth / 2) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight / 2) * pxRatio,\n };\n const radius = (elem.offsetWidth / 2) * pxRatio;\n const tolerance = 10 * pxRatio;\n const area = div.type === Types_1.DivType.circle\n ? new Utils_2.Circle(pos.x, pos.y, radius + tolerance)\n : new Utils_2.Rectangle(elem.offsetLeft * pxRatio - tolerance, elem.offsetTop * pxRatio - tolerance, elem.offsetWidth * pxRatio + tolerance * 2, elem.offsetHeight * pxRatio + tolerance * 2);\n this.processBounce(pos, radius, area);\n });\n }\n processBounce(position, radius, area) {\n const query = this.container.particles.quadTree.query(area);\n for (const particle of query) {\n if (area instanceof Utils_2.Circle) {\n Utils_2.Utils.circleBounce(Utils_2.Utils.circleBounceDataFromParticle(particle), {\n position,\n radius,\n velocity: {\n horizontal: 0,\n vertical: 0,\n },\n factor: {\n horizontal: 0,\n vertical: 0,\n },\n });\n }\n else if (area instanceof Utils_2.Rectangle) {\n Utils_2.Utils.rectBounce(particle, Utils_2.Utils.calculateBounds(position, radius));\n }\n }\n }\n}\nexports.Bouncer = Bouncer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InteractionManager = void 0;\nconst Grabber_1 = require(\"../../Interactions/External/Grabber\");\nconst Repulser_1 = require(\"../../Interactions/External/Repulser\");\nconst Bubbler_1 = require(\"../../Interactions/External/Bubbler\");\nconst Connector_1 = require(\"../../Interactions/External/Connector\");\nconst Linker_1 = require(\"../../Interactions/Particles/Linker\");\nconst Attractor_1 = require(\"../../Interactions/Particles/Attractor\");\nconst Collider_1 = require(\"../../Interactions/Particles/Collider\");\nconst Infecter_1 = require(\"../../Interactions/Particles/Infecter\");\nconst TrailMaker_1 = require(\"../../Interactions/External/TrailMaker\");\nconst Attractor_2 = require(\"../../Interactions/External/Attractor\");\nconst Lighter_1 = require(\"../../Interactions/Particles/Lighter\");\nconst Lighter_2 = require(\"../../Interactions/External/Lighter\");\nconst Bouncer_1 = require(\"../../Interactions/External/Bouncer\");\nclass InteractionManager {\n constructor(container) {\n this.container = container;\n this.externalInteractors = [\n new Bouncer_1.Bouncer(container),\n new Bubbler_1.Bubbler(container),\n new Connector_1.Connector(container),\n new Grabber_1.Grabber(container),\n new Lighter_2.Lighter(container),\n new Attractor_2.Attractor(container),\n new Repulser_1.Repulser(container),\n new TrailMaker_1.TrailMaker(container),\n ];\n this.particleInteractors = [\n new Attractor_1.Attractor(container),\n new Lighter_1.Lighter(container),\n new Collider_1.Collider(container),\n new Infecter_1.Infecter(container),\n new Linker_1.Linker(container),\n ];\n }\n init() {\n }\n externalInteract(delta) {\n for (const interactor of this.externalInteractors) {\n if (interactor.isEnabled()) {\n interactor.interact(delta);\n }\n }\n }\n particlesInteract(particle, delta) {\n for (const interactor of this.externalInteractors) {\n interactor.reset(particle);\n }\n for (const interactor of this.particleInteractors) {\n if (interactor.isEnabled(particle)) {\n interactor.interact(particle, delta);\n }\n }\n }\n}\nexports.InteractionManager = InteractionManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Particles = void 0;\nconst Particle_1 = require(\"./Particle\");\nconst Utils_1 = require(\"../Utils\");\nconst InteractionManager_1 = require(\"./Particle/InteractionManager\");\nclass Particles {\n constructor(container) {\n this.container = container;\n this.nextId = 0;\n this.array = [];\n this.limit = 0;\n this.linksFreq = new Map();\n this.trianglesFreq = new Map();\n this.interactionManager = new InteractionManager_1.InteractionManager(container);\n const canvasSize = this.container.canvas.size;\n this.linksColors = new Map();\n this.quadTree = new Utils_1.QuadTree(new Utils_1.Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n }\n get count() {\n return this.array.length;\n }\n init() {\n const container = this.container;\n const options = container.options;\n this.linksFreq = new Map();\n this.trianglesFreq = new Map();\n let handled = false;\n for (const particle of options.manualParticles) {\n const pos = particle.position\n ? {\n x: (particle.position.x * container.canvas.size.width) / 100,\n y: (particle.position.y * container.canvas.size.height) / 100,\n }\n : undefined;\n this.addParticle(pos, particle.options);\n }\n for (const [, plugin] of container.plugins) {\n if (plugin.particlesInitialization !== undefined) {\n handled = plugin.particlesInitialization();\n }\n if (handled) {\n break;\n }\n }\n if (!handled) {\n for (let i = this.count; i < options.particles.number.value; i++) {\n this.addParticle();\n }\n }\n if (options.infection.enable) {\n for (let i = 0; i < options.infection.infections; i++) {\n const notInfected = this.array.filter((p) => p.infecter.infectionStage === undefined);\n const infected = Utils_1.Utils.itemFromArray(notInfected);\n infected.infecter.startInfection(0);\n }\n }\n this.interactionManager.init();\n container.noise.init();\n }\n redraw() {\n this.clear();\n this.init();\n this.draw({ value: 0, factor: 0 });\n }\n removeAt(index, quantity) {\n if (index >= 0 && index <= this.count) {\n for (const particle of this.array.splice(index, quantity !== null && quantity !== void 0 ? quantity : 1)) {\n particle.destroy();\n }\n }\n }\n remove(particle) {\n this.removeAt(this.array.indexOf(particle));\n }\n update(delta) {\n const container = this.container;\n const particlesToDelete = [];\n container.noise.update();\n for (const particle of this.array) {\n particle.move(delta);\n if (particle.destroyed) {\n particlesToDelete.push(particle);\n continue;\n }\n this.quadTree.insert(new Utils_1.Point(particle.getPosition(), particle));\n }\n for (const particle of particlesToDelete) {\n this.remove(particle);\n }\n this.interactionManager.externalInteract(delta);\n for (const particle of this.container.particles.array) {\n particle.update(delta);\n if (!particle.destroyed && !particle.spawning) {\n this.interactionManager.particlesInteract(particle, delta);\n }\n }\n }\n draw(delta) {\n const container = this.container;\n container.canvas.clear();\n const canvasSize = this.container.canvas.size;\n this.quadTree = new Utils_1.QuadTree(new Utils_1.Rectangle(-canvasSize.width / 4, -canvasSize.height / 4, (canvasSize.width * 3) / 2, (canvasSize.height * 3) / 2), 4);\n this.update(delta);\n for (const [, plugin] of container.plugins) {\n container.canvas.drawPlugin(plugin, delta);\n }\n for (const p of this.array) {\n p.draw(delta);\n }\n }\n clear() {\n this.array = [];\n }\n push(nb, mouse, overrideOptions) {\n const container = this.container;\n const options = container.options;\n const limit = options.particles.number.limit * container.density;\n this.pushing = true;\n if (limit > 0) {\n const countToRemove = this.count + nb - limit;\n if (countToRemove > 0) {\n this.removeQuantity(countToRemove);\n }\n }\n for (let i = 0; i < nb; i++) {\n this.addParticle(mouse === null || mouse === void 0 ? void 0 : mouse.position, overrideOptions);\n }\n this.pushing = false;\n }\n addParticle(position, overrideOptions) {\n try {\n const particle = new Particle_1.Particle(this.nextId, this.container, position, overrideOptions);\n this.array.push(particle);\n this.nextId++;\n return particle;\n }\n catch (_a) {\n console.warn(\"error adding particle\");\n return;\n }\n }\n removeQuantity(quantity) {\n this.removeAt(0, quantity);\n }\n getLinkFrequency(p1, p2) {\n const key = `${Math.min(p1.id, p2.id)}_${Math.max(p1.id, p2.id)}`;\n let res = this.linksFreq.get(key);\n if (res === undefined) {\n res = Math.random();\n this.linksFreq.set(key, res);\n }\n return res;\n }\n getTriangleFrequency(p1, p2, p3) {\n let [id1, id2, id3] = [p1.id, p2.id, p3.id];\n if (id1 > id2) {\n [id2, id1] = [id1, id2];\n }\n if (id2 > id3) {\n [id3, id2] = [id2, id3];\n }\n if (id1 > id3) {\n [id3, id1] = [id1, id3];\n }\n const key = `${id1}_${id2}_${id3}`;\n let res = this.trianglesFreq.get(key);\n if (res === undefined) {\n res = Math.random();\n this.trianglesFreq.set(key, res);\n }\n return res;\n }\n setDensity() {\n const options = this.container.options;\n this.applyDensity(options.particles);\n }\n applyDensity(options) {\n var _a;\n if (!((_a = options.number.density) === null || _a === void 0 ? void 0 : _a.enable)) {\n return;\n }\n const numberOptions = options.number;\n const densityFactor = this.initDensityFactor(numberOptions.density);\n const optParticlesNumber = numberOptions.value;\n const optParticlesLimit = numberOptions.limit > 0 ? numberOptions.limit : optParticlesNumber;\n const particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor;\n const particlesCount = this.count;\n this.limit = numberOptions.limit * densityFactor;\n if (particlesCount < particlesNumber) {\n this.push(Math.abs(particlesNumber - particlesCount), undefined, options);\n }\n else if (particlesCount > particlesNumber) {\n this.removeQuantity(particlesCount - particlesNumber);\n }\n }\n initDensityFactor(densityOptions) {\n const container = this.container;\n if (!container.canvas.element || !densityOptions.enable) {\n return 1;\n }\n const canvas = container.canvas.element;\n const pxRatio = container.retina.pixelRatio;\n return (canvas.width * canvas.height) / (densityOptions.factor * pxRatio * pxRatio * densityOptions.area);\n }\n}\nexports.Particles = Particles;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Retina = void 0;\nconst Utils_1 = require(\"../Utils\");\nclass Retina {\n constructor(container) {\n this.container = container;\n }\n init() {\n const container = this.container;\n const options = container.options;\n if (options.detectRetina) {\n this.pixelRatio = Utils_1.Utils.isSsr() ? 1 : window.devicePixelRatio;\n }\n else {\n this.pixelRatio = 1;\n }\n const motionOptions = this.container.options.motion;\n if (motionOptions && (motionOptions.disable || motionOptions.reduce.value)) {\n if (Utils_1.Utils.isSsr() || typeof matchMedia === \"undefined\" || !matchMedia) {\n this.reduceFactor = 1;\n }\n else {\n const mediaQuery = matchMedia(\"(prefers-reduced-motion: reduce)\");\n if (mediaQuery) {\n this.handleMotionChange(mediaQuery);\n const handleChange = () => {\n this.handleMotionChange(mediaQuery);\n container.refresh().catch(() => {\n });\n };\n if (mediaQuery.addEventListener !== undefined) {\n mediaQuery.addEventListener(\"change\", handleChange);\n }\n else if (mediaQuery.addListener !== undefined) {\n mediaQuery.addListener(handleChange);\n }\n }\n }\n }\n else {\n this.reduceFactor = 1;\n }\n const ratio = this.pixelRatio;\n if (container.canvas.element) {\n const element = container.canvas.element;\n container.canvas.size.width = element.offsetWidth * ratio;\n container.canvas.size.height = element.offsetHeight * ratio;\n }\n const particles = options.particles;\n this.linksDistance = particles.links.distance * ratio;\n this.linksWidth = particles.links.width * ratio;\n this.moveSpeed = particles.move.speed * ratio;\n this.sizeValue = particles.size.value * ratio;\n this.sizeAnimationSpeed = particles.size.animation.speed * ratio;\n const modes = options.interactivity.modes;\n this.connectModeDistance = modes.connect.distance * ratio;\n this.connectModeRadius = modes.connect.radius * ratio;\n this.grabModeDistance = modes.grab.distance * ratio;\n this.repulseModeDistance = modes.repulse.distance * ratio;\n this.bounceModeDistance = modes.bounce.distance * ratio;\n this.attractModeDistance = modes.attract.distance * ratio;\n this.slowModeRadius = modes.slow.radius * ratio;\n this.bubbleModeDistance = modes.bubble.distance * ratio;\n if (modes.bubble.size) {\n this.bubbleModeSize = modes.bubble.size * ratio;\n }\n }\n initParticle(particle) {\n const particlesOptions = particle.particlesOptions;\n const ratio = this.pixelRatio;\n particle.linksDistance = particlesOptions.links.distance * ratio;\n particle.linksWidth = particlesOptions.links.width * ratio;\n particle.moveSpeed = particlesOptions.move.speed * ratio;\n particle.sizeValue = particlesOptions.size.value * ratio;\n particle.sizeAnimationSpeed = particlesOptions.size.animation.speed * ratio;\n particle.maxDistance = particlesOptions.move.distance * ratio;\n }\n handleMotionChange(mediaQuery) {\n const options = this.container.options;\n if (mediaQuery.matches) {\n const motion = options.motion;\n this.reduceFactor = motion.disable ? 0 : motion.reduce.value ? 1 / motion.reduce.factor : 1;\n }\n else {\n this.reduceFactor = 1;\n }\n }\n}\nexports.Retina = Retina;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.FrameManager = void 0;\nclass FrameManager {\n constructor(container) {\n this.container = container;\n }\n nextFrame(timestamp) {\n try {\n const container = this.container;\n if (container.lastFrameTime !== undefined &&\n timestamp < container.lastFrameTime + 1000 / container.fpsLimit) {\n container.draw();\n return;\n }\n const deltaValue = timestamp - container.lastFrameTime;\n const delta = {\n value: deltaValue,\n factor: (60 * deltaValue) / 1000,\n };\n container.lastFrameTime = timestamp;\n container.particles.draw(delta);\n if (container.getAnimationStatus()) {\n container.draw();\n }\n }\n catch (e) {\n console.error(\"tsParticles error in animation loop\", e);\n }\n }\n}\nexports.FrameManager = FrameManager;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ClickEvent = void 0;\nclass ClickEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n }\n}\nexports.ClickEvent = ClickEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DivEvent = void 0;\nconst Enums_1 = require(\"../../../../Enums\");\nclass DivEvent {\n constructor() {\n this.selectors = [];\n this.enable = false;\n this.mode = [];\n this.type = Enums_1.DivType.circle;\n }\n get elementId() {\n return this.ids;\n }\n set elementId(value) {\n this.ids = value;\n }\n get el() {\n return this.elementId;\n }\n set el(value) {\n this.elementId = value;\n }\n get ids() {\n if (this.selectors instanceof Array) {\n return this.selectors.map((t) => t.replace(\"#\", \"\"));\n }\n else {\n return this.selectors.replace(\"#\", \"\");\n }\n }\n set ids(value) {\n if (value instanceof Array) {\n this.selectors = value.map((t) => `#${t}`);\n }\n else {\n this.selectors = `#${value}`;\n }\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\n return;\n }\n const ids = (_b = (_a = data.ids) !== null && _a !== void 0 ? _a : data.elementId) !== null && _b !== void 0 ? _b : data.el;\n if (ids !== undefined) {\n this.ids = ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\nexports.DivEvent = DivEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Parallax = void 0;\nclass Parallax {\n constructor() {\n this.enable = false;\n this.force = 2;\n this.smooth = 10;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.force !== undefined) {\n this.force = data.force;\n }\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n }\n}\nexports.Parallax = Parallax;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.HoverEvent = void 0;\nconst Parallax_1 = require(\"./Parallax\");\nclass HoverEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n this.parallax = new Parallax_1.Parallax();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.parallax.load(data.parallax);\n }\n}\nexports.HoverEvent = HoverEvent;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Events = void 0;\nconst ClickEvent_1 = require(\"./ClickEvent\");\nconst DivEvent_1 = require(\"./DivEvent\");\nconst HoverEvent_1 = require(\"./HoverEvent\");\nclass Events {\n constructor() {\n this.onClick = new ClickEvent_1.ClickEvent();\n this.onDiv = new DivEvent_1.DivEvent();\n this.onHover = new HoverEvent_1.HoverEvent();\n this.resize = true;\n }\n get onclick() {\n return this.onClick;\n }\n set onclick(value) {\n this.onClick = value;\n }\n get ondiv() {\n return this.onDiv;\n }\n set ondiv(value) {\n this.onDiv = value;\n }\n get onhover() {\n return this.onHover;\n }\n set onhover(value) {\n this.onHover = value;\n }\n load(data) {\n var _a, _b, _c;\n if (data === undefined) {\n return;\n }\n this.onClick.load((_a = data.onClick) !== null && _a !== void 0 ? _a : data.onclick);\n const onDiv = (_b = data.onDiv) !== null && _b !== void 0 ? _b : data.ondiv;\n if (onDiv !== undefined) {\n if (onDiv instanceof Array) {\n this.onDiv = onDiv.map((div) => {\n const tmp = new DivEvent_1.DivEvent();\n tmp.load(div);\n return tmp;\n });\n }\n else {\n this.onDiv = new DivEvent_1.DivEvent();\n this.onDiv.load(onDiv);\n }\n }\n this.onHover.load((_c = data.onHover) !== null && _c !== void 0 ? _c : data.onhover);\n if (data.resize !== undefined) {\n this.resize = data.resize;\n }\n }\n}\nexports.Events = Events;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BubbleBase = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.color !== undefined) {\n if (data.color instanceof Array) {\n this.color = data.color.map((s) => OptionsColor_1.OptionsColor.create(undefined, s));\n }\n else {\n if (this.color instanceof Array) {\n this.color = new OptionsColor_1.OptionsColor();\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}\nexports.BubbleBase = BubbleBase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BubbleDiv = void 0;\nconst BubbleBase_1 = require(\"./BubbleBase\");\nclass BubbleDiv extends BubbleBase_1.BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n if (this.selectors instanceof Array) {\n return this.selectors.map((t) => t.replace(\"#\", \"\"));\n }\n else {\n return this.selectors.replace(\"#\", \"\");\n }\n }\n set ids(value) {\n if (value instanceof Array) {\n this.selectors = value.map((t) => `#${t}`);\n }\n else {\n this.selectors = `#${value}`;\n }\n }\n load(data) {\n super.load(data);\n if (data === undefined) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\nexports.BubbleDiv = BubbleDiv;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bubble = void 0;\nconst BubbleDiv_1 = require(\"./BubbleDiv\");\nconst BubbleBase_1 = require(\"./BubbleBase\");\nclass Bubble extends BubbleBase_1.BubbleBase {\n load(data) {\n super.load(data);\n if (!(data !== undefined && data.divs !== undefined)) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new BubbleDiv_1.BubbleDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new BubbleDiv_1.BubbleDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\nexports.Bubble = Bubble;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ConnectLinks = void 0;\nclass ConnectLinks {\n constructor() {\n this.opacity = 0.5;\n }\n load(data) {\n if (!(data !== undefined && data.opacity !== undefined)) {\n return;\n }\n this.opacity = data.opacity;\n }\n}\nexports.ConnectLinks = ConnectLinks;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Connect = void 0;\nconst ConnectLinks_1 = require(\"./ConnectLinks\");\nclass Connect {\n constructor() {\n this.distance = 80;\n this.links = new ConnectLinks_1.ConnectLinks();\n this.radius = 60;\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\nexports.Connect = Connect;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.GrabLinks = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.GrabLinks = GrabLinks;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Grab = void 0;\nconst GrabLinks_1 = require(\"./GrabLinks\");\nclass Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks_1.GrabLinks();\n }\n get line_linked() {\n return this.links;\n }\n set line_linked(value) {\n this.links = value;\n }\n get lineLinked() {\n return this.links;\n }\n set lineLinked(value) {\n this.links = value;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load((_b = (_a = data.links) !== null && _a !== void 0 ? _a : data.lineLinked) !== null && _b !== void 0 ? _b : data.line_linked);\n }\n}\nexports.Grab = Grab;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Remove = void 0;\nclass Remove {\n constructor() {\n this.quantity = 2;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\nexports.Remove = Remove;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Push = void 0;\nclass Push {\n constructor() {\n this.quantity = 4;\n }\n get particles_nb() {\n return this.quantity;\n }\n set particles_nb(value) {\n this.quantity = value;\n }\n load(data) {\n var _a;\n if (data === undefined) {\n return;\n }\n const quantity = (_a = data.quantity) !== null && _a !== void 0 ? _a : data.particles_nb;\n if (quantity !== undefined) {\n this.quantity = quantity;\n }\n }\n}\nexports.Push = Push;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RepulseBase = void 0;\nclass RepulseBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.speed = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\nexports.RepulseBase = RepulseBase;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.RepulseDiv = void 0;\nconst RepulseBase_1 = require(\"./RepulseBase\");\nclass RepulseDiv extends RepulseBase_1.RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n get ids() {\n if (this.selectors instanceof Array) {\n return this.selectors.map((t) => t.replace(\"#\", \"\"));\n }\n else {\n return this.selectors.replace(\"#\", \"\");\n }\n }\n set ids(value) {\n if (value instanceof Array) {\n this.selectors = value.map(() => `#${value}`);\n }\n else {\n this.selectors = `#${value}`;\n }\n }\n load(data) {\n super.load(data);\n if (data === undefined) {\n return;\n }\n if (data.ids !== undefined) {\n this.ids = data.ids;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\nexports.RepulseDiv = RepulseDiv;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Repulse = void 0;\nconst RepulseDiv_1 = require(\"./RepulseDiv\");\nconst RepulseBase_1 = require(\"./RepulseBase\");\nclass Repulse extends RepulseBase_1.RepulseBase {\n load(data) {\n super.load(data);\n if ((data === null || data === void 0 ? void 0 : data.divs) === undefined) {\n return;\n }\n if (data.divs instanceof Array) {\n this.divs = data.divs.map((s) => {\n const tmp = new RepulseDiv_1.RepulseDiv();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.divs instanceof Array || !this.divs) {\n this.divs = new RepulseDiv_1.RepulseDiv();\n }\n this.divs.load(data.divs);\n }\n }\n}\nexports.Repulse = Repulse;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Slow = void 0;\nclass Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n get active() {\n return false;\n }\n set active(_value) {\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\nexports.Slow = Slow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Trail = void 0;\nconst Utils_1 = require(\"../../../../Utils\");\nclass Trail {\n constructor() {\n this.delay = 1;\n this.quantity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.quantity !== undefined) {\n this.quantity = data.quantity;\n }\n if (data.particles !== undefined) {\n this.particles = Utils_1.Utils.deepExtend({}, data.particles);\n }\n }\n}\nexports.Trail = Trail;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Attract = void 0;\nclass Attract {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.speed = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\nexports.Attract = Attract;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LightGradient = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass LightGradient {\n constructor() {\n this.start = new OptionsColor_1.OptionsColor();\n this.stop = new OptionsColor_1.OptionsColor();\n this.start.value = \"#ffffff\";\n this.stop.value = \"#000000\";\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.start = OptionsColor_1.OptionsColor.create(this.start, data.start);\n this.stop = OptionsColor_1.OptionsColor.create(this.stop, data.stop);\n }\n}\nexports.LightGradient = LightGradient;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LightArea = void 0;\nconst LightGradient_1 = require(\"./LightGradient\");\nclass LightArea {\n constructor() {\n this.gradient = new LightGradient_1.LightGradient();\n this.radius = 1000;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.gradient.load(data.gradient);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\nexports.LightArea = LightArea;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LightShadow = void 0;\nconst OptionsColor_1 = require(\"../../OptionsColor\");\nclass LightShadow {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.color.value = \"#000000\";\n this.length = 2000;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\nexports.LightShadow = LightShadow;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Light = void 0;\nconst LightArea_1 = require(\"./LightArea\");\nconst LightShadow_1 = require(\"./LightShadow\");\nclass Light {\n constructor() {\n this.area = new LightArea_1.LightArea();\n this.shadow = new LightShadow_1.LightShadow();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.area.load(data.area);\n this.shadow.load(data.shadow);\n }\n}\nexports.Light = Light;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Bounce = void 0;\nclass Bounce {\n constructor() {\n this.distance = 200;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n }\n}\nexports.Bounce = Bounce;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Modes = void 0;\nconst Bubble_1 = require(\"./Bubble\");\nconst Connect_1 = require(\"./Connect\");\nconst Grab_1 = require(\"./Grab\");\nconst Remove_1 = require(\"./Remove\");\nconst Push_1 = require(\"./Push\");\nconst Repulse_1 = require(\"./Repulse\");\nconst Slow_1 = require(\"./Slow\");\nconst Trail_1 = require(\"./Trail\");\nconst Attract_1 = require(\"./Attract\");\nconst Light_1 = require(\"./Light\");\nconst Bounce_1 = require(\"./Bounce\");\nclass Modes {\n constructor() {\n this.attract = new Attract_1.Attract();\n this.bounce = new Bounce_1.Bounce();\n this.bubble = new Bubble_1.Bubble();\n this.connect = new Connect_1.Connect();\n this.grab = new Grab_1.Grab();\n this.light = new Light_1.Light();\n this.push = new Push_1.Push();\n this.remove = new Remove_1.Remove();\n this.repulse = new Repulse_1.Repulse();\n this.slow = new Slow_1.Slow();\n this.trail = new Trail_1.Trail();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n this.attract.load(data.attract);\n this.bubble.load(data.bubble);\n this.connect.load(data.connect);\n this.grab.load(data.grab);\n this.light.load(data.light);\n this.push.load(data.push);\n this.remove.load(data.remove);\n this.repulse.load(data.repulse);\n this.slow.load(data.slow);\n this.trail.load(data.trail);\n }\n}\nexports.Modes = Modes;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Interactivity = void 0;\nconst Enums_1 = require(\"../../../Enums\");\nconst Events_1 = require(\"./Events/Events\");\nconst Modes_1 = require(\"./Modes/Modes\");\nclass Interactivity {\n constructor() {\n this.detectsOn = Enums_1.InteractivityDetect.canvas;\n this.events = new Events_1.Events();\n this.modes = new Modes_1.Modes();\n }\n get detect_on() {\n return this.detectsOn;\n }\n set detect_on(value) {\n this.detectsOn = value;\n }\n load(data) {\n var _a, _b, _c;\n if (data === undefined) {\n return;\n }\n const detectsOn = (_a = data.detectsOn) !== null && _a !== void 0 ? _a : data.detect_on;\n if (detectsOn !== undefined) {\n this.detectsOn = detectsOn;\n }\n this.events.load(data.events);\n this.modes.load(data.modes);\n if (((_c = (_b = data.modes) === null || _b === void 0 ? void 0 : _b.slow) === null || _c === void 0 ? void 0 : _c.active) === true) {\n if (this.events.onHover.mode instanceof Array) {\n if (this.events.onHover.mode.indexOf(Enums_1.HoverMode.slow) < 0) {\n this.events.onHover.mode.push(Enums_1.HoverMode.slow);\n }\n }\n else if (this.events.onHover.mode !== Enums_1.HoverMode.slow) {\n this.events.onHover.mode = [this.events.onHover.mode, Enums_1.HoverMode.slow];\n }\n }\n }\n}\nexports.Interactivity = Interactivity;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BackgroundMaskCover = void 0;\nconst OptionsColor_1 = require(\"../OptionsColor\");\nclass BackgroundMaskCover {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.BackgroundMaskCover = BackgroundMaskCover;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BackgroundMask = void 0;\nconst BackgroundMaskCover_1 = require(\"./BackgroundMaskCover\");\nclass BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new BackgroundMaskCover_1.BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.composite !== undefined) {\n this.composite = data.composite;\n }\n if (data.cover !== undefined) {\n const cover = data.cover;\n const color = (typeof data.cover === \"string\" ? { color: data.cover } : data.cover);\n this.cover.load(cover.color !== undefined ? cover : { color: color });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\nexports.BackgroundMask = BackgroundMask;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Background = void 0;\nconst OptionsColor_1 = require(\"../OptionsColor\");\nclass Background {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.color.value = \"\";\n this.image = \"\";\n this.position = \"\";\n this.repeat = \"\";\n this.size = \"\";\n this.opacity = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n if (data.position !== undefined) {\n this.position = data.position;\n }\n if (data.repeat !== undefined) {\n this.repeat = data.repeat;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\nexports.Background = Background;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InfectionStage = void 0;\nconst OptionsColor_1 = require(\"../OptionsColor\");\nclass InfectionStage {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.color.value = \"#ff0000\";\n this.radius = 0;\n this.rate = 1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n this.duration = data.duration;\n this.infectedStage = data.infectedStage;\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n if (data.rate !== undefined) {\n this.rate = data.rate;\n }\n }\n}\nexports.InfectionStage = InfectionStage;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Infection = void 0;\nconst InfectionStage_1 = require(\"./InfectionStage\");\nclass Infection {\n constructor() {\n this.cure = false;\n this.delay = 0;\n this.enable = false;\n this.infections = 0;\n this.stages = [];\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.cure !== undefined) {\n this.cure = data.cure;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.infections !== undefined) {\n this.infections = data.infections;\n }\n if (data.stages === undefined) {\n return;\n }\n this.stages = data.stages.map((t) => {\n const s = new InfectionStage_1.InfectionStage();\n s.load(t);\n return s;\n });\n }\n}\nexports.Infection = Infection;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ThemeDefault = void 0;\nconst Modes_1 = require(\"../../../Enums/Modes\");\nclass ThemeDefault {\n constructor() {\n this.mode = Modes_1.ThemeMode.any;\n this.value = false;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.ThemeDefault = ThemeDefault;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Theme = void 0;\nconst Utils_1 = require(\"../../../Utils\");\nconst ThemeDefault_1 = require(\"./ThemeDefault\");\nclass Theme {\n constructor() {\n this.name = \"\";\n this.default = new ThemeDefault_1.ThemeDefault();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n this.default.load(data.default);\n if (data.options !== undefined) {\n this.options = Utils_1.Utils.deepExtend({}, data.options);\n }\n }\n}\nexports.Theme = Theme;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BackgroundMode = void 0;\nclass BackgroundMode {\n constructor() {\n this.enable = false;\n this.zIndex = -1;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.zIndex !== undefined) {\n this.zIndex = data.zIndex;\n }\n }\n}\nexports.BackgroundMode = BackgroundMode;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MotionReduce = void 0;\nclass MotionReduce {\n constructor() {\n this.factor = 4;\n this.value = false;\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\nexports.MotionReduce = MotionReduce;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Motion = void 0;\nconst MotionReduce_1 = require(\"./MotionReduce\");\nclass Motion {\n constructor() {\n this.disable = false;\n this.reduce = new MotionReduce_1.MotionReduce();\n }\n load(data) {\n if (!data) {\n return;\n }\n if (data.disable !== undefined) {\n this.disable = data.disable;\n }\n this.reduce.load(data.reduce);\n }\n}\nexports.Motion = Motion;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ManualParticle = void 0;\nconst Utils_1 = require(\"../../Utils\");\nclass ManualParticle {\n load(data) {\n var _a, _b;\n if (!data) {\n return;\n }\n if (data.position !== undefined) {\n this.position = {\n x: (_a = data.position.x) !== null && _a !== void 0 ? _a : 50,\n y: (_b = data.position.y) !== null && _b !== void 0 ? _b : 50,\n };\n }\n if (data.options !== undefined) {\n this.options = Utils_1.Utils.deepExtend({}, data.options);\n }\n }\n}\nexports.ManualParticle = ManualParticle;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Options = void 0;\nconst Interactivity_1 = require(\"./Interactivity/Interactivity\");\nconst Particles_1 = require(\"./Particles/Particles\");\nconst BackgroundMask_1 = require(\"./BackgroundMask/BackgroundMask\");\nconst Background_1 = require(\"./Background/Background\");\nconst Infection_1 = require(\"./Infection/Infection\");\nconst Utils_1 = require(\"../../Utils\");\nconst Theme_1 = require(\"./Theme/Theme\");\nconst Modes_1 = require(\"../../Enums/Modes\");\nconst BackgroundMode_1 = require(\"./BackgroundMode/BackgroundMode\");\nconst Motion_1 = require(\"./Motion/Motion\");\nconst ManualParticle_1 = require(\"./ManualParticle\");\nclass Options {\n constructor() {\n this.autoPlay = true;\n this.background = new Background_1.Background();\n this.backgroundMask = new BackgroundMask_1.BackgroundMask();\n this.backgroundMode = new BackgroundMode_1.BackgroundMode();\n this.detectRetina = true;\n this.fpsLimit = 30;\n this.infection = new Infection_1.Infection();\n this.interactivity = new Interactivity_1.Interactivity();\n this.manualParticles = [];\n this.motion = new Motion_1.Motion();\n this.particles = new Particles_1.Particles();\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = false;\n this.themes = [];\n }\n get fps_limit() {\n return this.fpsLimit;\n }\n set fps_limit(value) {\n this.fpsLimit = value;\n }\n get retina_detect() {\n return this.detectRetina;\n }\n set retina_detect(value) {\n this.detectRetina = value;\n }\n load(data) {\n var _a, _b;\n if (data === undefined) {\n return;\n }\n if (data.preset !== undefined) {\n if (data.preset instanceof Array) {\n for (const preset of data.preset) {\n this.importPreset(preset);\n }\n }\n else {\n this.importPreset(data.preset);\n }\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n const detectRetina = (_a = data.detectRetina) !== null && _a !== void 0 ? _a : data.retina_detect;\n if (detectRetina !== undefined) {\n this.detectRetina = detectRetina;\n }\n const fpsLimit = (_b = data.fpsLimit) !== null && _b !== void 0 ? _b : data.fps_limit;\n if (fpsLimit !== undefined) {\n this.fpsLimit = fpsLimit;\n }\n if (data.pauseOnBlur !== undefined) {\n this.pauseOnBlur = data.pauseOnBlur;\n }\n if (data.pauseOnOutsideViewport !== undefined) {\n this.pauseOnOutsideViewport = data.pauseOnOutsideViewport;\n }\n this.background.load(data.background);\n this.backgroundMode.load(data.backgroundMode);\n this.backgroundMask.load(data.backgroundMask);\n this.infection.load(data.infection);\n this.interactivity.load(data.interactivity);\n if (data.manualParticles !== undefined) {\n this.manualParticles = data.manualParticles.map((t) => {\n const tmp = new ManualParticle_1.ManualParticle();\n tmp.load(t);\n return tmp;\n });\n }\n this.motion.load(data.motion);\n this.particles.load(data.particles);\n Utils_1.Plugins.loadOptions(this, data);\n if (data.themes !== undefined) {\n for (const theme of data.themes) {\n const optTheme = new Theme_1.Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n }\n }\n }\n setTheme(name) {\n if (name) {\n const chosenTheme = this.themes.find((theme) => theme.name === name);\n if (chosenTheme) {\n this.load(chosenTheme.options);\n }\n }\n else {\n const clientDarkMode = typeof matchMedia !== \"undefined\" && matchMedia(\"(prefers-color-scheme: dark)\").matches;\n let defaultTheme = this.themes.find((theme) => theme.default.value &&\n ((theme.default.mode === Modes_1.ThemeMode.dark && clientDarkMode) ||\n (theme.default.mode === Modes_1.ThemeMode.light && !clientDarkMode)));\n if (!defaultTheme) {\n defaultTheme = this.themes.find((theme) => theme.default.value && theme.default.mode === Modes_1.ThemeMode.any);\n }\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n importPreset(preset) {\n this.load(Utils_1.Plugins.getPreset(preset));\n }\n}\nexports.Options = Options;\n","\"use strict\";\nvar __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Container = void 0;\nconst Canvas_1 = require(\"./Canvas\");\nconst Particles_1 = require(\"./Particles\");\nconst Retina_1 = require(\"./Retina\");\nconst FrameManager_1 = require(\"./FrameManager\");\nconst Options_1 = require(\"../Options/Classes/Options\");\nconst Utils_1 = require(\"../Utils\");\nclass Container {\n constructor(id, sourceOptions, ...presets) {\n this.id = id;\n this.sourceOptions = sourceOptions;\n this.firstStart = true;\n this.started = false;\n this.destroyed = false;\n this.paused = true;\n this.lastFrameTime = 0;\n this.pageHidden = false;\n this.retina = new Retina_1.Retina(this);\n this.canvas = new Canvas_1.Canvas(this);\n this.particles = new Particles_1.Particles(this);\n this.drawer = new FrameManager_1.FrameManager(this);\n this.noise = {\n generate: () => {\n return {\n angle: Math.random() * Math.PI * 2,\n length: Math.random(),\n };\n },\n init: () => {\n },\n update: () => {\n },\n };\n this.interactivity = {\n mouse: {\n clicking: false,\n inside: false,\n },\n };\n this.bubble = {};\n this.repulse = { particles: [] };\n this.attract = { particles: [] };\n this.plugins = new Map();\n this.drawers = new Map();\n this.density = 1;\n this.options = new Options_1.Options();\n for (const preset of presets) {\n this.options.load(Utils_1.Plugins.getPreset(preset));\n }\n const shapes = Utils_1.Plugins.getSupportedShapes();\n for (const type of shapes) {\n const drawer = Utils_1.Plugins.getShapeDrawer(type);\n if (drawer) {\n this.drawers.set(type, drawer);\n }\n }\n if (this.sourceOptions) {\n this.options.load(this.sourceOptions);\n }\n this.fpsLimit = this.options.fpsLimit > 0 ? this.options.fpsLimit : 60;\n this.options.setTheme(undefined);\n this.eventListeners = new Utils_1.EventListeners(this);\n if (typeof IntersectionObserver !== \"undefined\" && IntersectionObserver) {\n this.intersectionObserver = new IntersectionObserver((entries) => this.intersectionManager(entries));\n }\n }\n play(force) {\n const needsUpdate = this.paused || force;\n if (this.firstStart && !this.options.autoPlay) {\n this.firstStart = false;\n return;\n }\n if (this.paused) {\n this.paused = false;\n }\n if (needsUpdate) {\n for (const [, plugin] of this.plugins) {\n if (plugin.play) {\n plugin.play();\n }\n }\n this.lastFrameTime = performance.now();\n }\n this.draw();\n }\n pause() {\n if (this.drawAnimationFrame !== undefined) {\n Utils_1.Utils.cancelAnimation(this.drawAnimationFrame);\n delete this.drawAnimationFrame;\n }\n if (this.paused) {\n return;\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.pause) {\n plugin.pause();\n }\n }\n if (!this.pageHidden) {\n this.paused = true;\n }\n }\n draw() {\n this.drawAnimationFrame = Utils_1.Utils.animate((timestamp) => this.drawer.nextFrame(timestamp));\n }\n getAnimationStatus() {\n return !this.paused;\n }\n setNoise(noiseOrGenerator, init, update) {\n if (!noiseOrGenerator) {\n return;\n }\n if (typeof noiseOrGenerator === \"function\") {\n this.noise.generate = noiseOrGenerator;\n if (init) {\n this.noise.init = init;\n }\n if (update) {\n this.noise.update = update;\n }\n }\n else {\n if (noiseOrGenerator.generate) {\n this.noise.generate = noiseOrGenerator.generate;\n }\n if (noiseOrGenerator.init) {\n this.noise.init = noiseOrGenerator.init;\n }\n if (noiseOrGenerator.update) {\n this.noise.update = noiseOrGenerator.update;\n }\n }\n }\n destroy() {\n this.stop();\n this.canvas.destroy();\n for (const [, drawer] of this.drawers) {\n if (drawer.destroy) {\n drawer.destroy(this);\n }\n }\n for (const key of this.drawers.keys()) {\n this.drawers.delete(key);\n }\n this.destroyed = true;\n }\n exportImg(callback) {\n this.exportImage(callback);\n }\n exportImage(callback, type, quality) {\n var _a;\n return (_a = this.canvas.element) === null || _a === void 0 ? void 0 : _a.toBlob(callback, type !== null && type !== void 0 ? type : \"image/png\", quality);\n }\n exportConfiguration() {\n return JSON.stringify(this.options, undefined, 2);\n }\n refresh() {\n return __awaiter(this, void 0, void 0, function* () {\n this.stop();\n yield this.start();\n });\n }\n stop() {\n if (!this.started) {\n return;\n }\n this.firstStart = true;\n this.started = false;\n this.eventListeners.removeListeners();\n this.pause();\n this.particles.clear();\n this.canvas.clear();\n if (this.interactivity.element instanceof HTMLElement && this.intersectionObserver) {\n this.intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.stop) {\n plugin.stop();\n }\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n this.particles.linksColors = new Map();\n delete this.particles.grabLineColor;\n delete this.particles.linksColor;\n }\n loadTheme(name) {\n return __awaiter(this, void 0, void 0, function* () {\n this.options.setTheme(name);\n yield this.refresh();\n });\n }\n start() {\n return __awaiter(this, void 0, void 0, function* () {\n if (this.started) {\n return;\n }\n yield this.init();\n this.started = true;\n this.eventListeners.addListeners();\n if (this.interactivity.element instanceof HTMLElement && this.intersectionObserver) {\n this.intersectionObserver.observe(this.interactivity.element);\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.startAsync !== undefined) {\n yield plugin.startAsync();\n }\n else if (plugin.start !== undefined) {\n plugin.start();\n }\n }\n this.play();\n });\n }\n init() {\n return __awaiter(this, void 0, void 0, function* () {\n this.retina.init();\n this.canvas.init();\n this.fpsLimit = this.options.fpsLimit > 0 ? this.options.fpsLimit : 60;\n const availablePlugins = Utils_1.Plugins.getAvailablePlugins(this);\n for (const [id, plugin] of availablePlugins) {\n this.plugins.set(id, plugin);\n }\n for (const [, drawer] of this.drawers) {\n if (drawer.init) {\n yield drawer.init(this);\n }\n }\n for (const [, plugin] of this.plugins) {\n if (plugin.init) {\n plugin.init(this.options);\n }\n else if (plugin.initAsync !== undefined) {\n yield plugin.initAsync(this.options);\n }\n }\n this.canvas.initSize();\n this.particles.init();\n this.particles.setDensity();\n });\n }\n intersectionManager(entries) {\n if (!this.options.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n if (entry.isIntersecting) {\n this.play();\n }\n else {\n this.pause();\n }\n }\n }\n}\nexports.Container = Container;\n","\"use strict\";\nvar __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Loader = void 0;\nconst Container_1 = require(\"./Container\");\nconst Utils_1 = require(\"../Utils\");\nconst tsParticlesDom = [];\nfunction fetchError(statusCode) {\n console.error(`Error tsParticles - fetch status: ${statusCode}`);\n console.error(\"Error tsParticles - File config not found\");\n}\nclass Loader {\n static dom() {\n return tsParticlesDom;\n }\n static domItem(index) {\n const dom = Loader.dom();\n const item = dom[index];\n if (item && !item.destroyed) {\n return item;\n }\n dom.splice(index, 1);\n }\n static load(tagId, options, index) {\n return __awaiter(this, void 0, void 0, function* () {\n const domContainer = document.getElementById(tagId);\n if (!domContainer) {\n return;\n }\n return Loader.set(tagId, domContainer, options, index);\n });\n }\n static set(id, domContainer, options, index) {\n return __awaiter(this, void 0, void 0, function* () {\n const currentOptions = options instanceof Array ? Utils_1.Utils.itemFromArray(options, index) : options;\n const dom = Loader.dom();\n const oldIndex = dom.findIndex((v) => v.id === id);\n if (oldIndex >= 0) {\n const old = Loader.domItem(oldIndex);\n if (old && !old.destroyed) {\n old.destroy();\n dom.splice(oldIndex, 1);\n }\n }\n let canvasEl;\n let generatedCanvas;\n if (domContainer.tagName.toLowerCase() === \"canvas\") {\n canvasEl = domContainer;\n generatedCanvas = false;\n }\n else {\n const existingCanvases = domContainer.getElementsByTagName(\"canvas\");\n if (existingCanvases.length) {\n canvasEl = existingCanvases[0];\n if (!canvasEl.className) {\n canvasEl.className = Utils_1.Constants.canvasClass;\n }\n generatedCanvas = false;\n }\n else {\n generatedCanvas = true;\n canvasEl = document.createElement(\"canvas\");\n canvasEl.className = Utils_1.Constants.canvasClass;\n canvasEl.style.width = \"100%\";\n canvasEl.style.height = \"100%\";\n domContainer.appendChild(canvasEl);\n }\n }\n const newItem = new Container_1.Container(id, currentOptions);\n if (oldIndex >= 0) {\n dom.splice(oldIndex, 0, newItem);\n }\n else {\n dom.push(newItem);\n }\n newItem.canvas.loadCanvas(canvasEl, generatedCanvas);\n yield newItem.start();\n return newItem;\n });\n }\n static loadJSON(tagId, jsonUrl, index) {\n return __awaiter(this, void 0, void 0, function* () {\n const url = jsonUrl instanceof Array ? Utils_1.Utils.itemFromArray(jsonUrl, index) : jsonUrl;\n const response = yield fetch(url);\n if (response.ok) {\n return Loader.load(tagId, yield response.json());\n }\n else {\n fetchError(response.status);\n }\n });\n }\n static setJSON(id, domContainer, jsonUrl) {\n return __awaiter(this, void 0, void 0, function* () {\n const response = yield fetch(jsonUrl);\n if (response.ok) {\n const options = yield response.json();\n return Loader.set(id, domContainer, options);\n }\n else {\n fetchError(response.status);\n }\n });\n }\n static setOnClickHandler(callback) {\n const dom = Loader.dom();\n if (dom.length === 0) {\n throw new Error(\"Can only set click handlers after calling tsParticles.load() or tsParticles.loadJSON()\");\n }\n for (const domItem of dom) {\n const el = domItem.interactivity.element;\n if (!el) {\n continue;\n }\n const clickOrTouchHandler = (e, pos) => {\n if (domItem.destroyed) {\n return;\n }\n const pxRatio = domItem.retina.pixelRatio;\n const posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio,\n };\n const particles = domItem.particles.quadTree.queryCircle(posRetina, domItem.retina.sizeValue);\n callback(e, particles);\n };\n const clickHandler = (e) => {\n if (domItem.destroyed) {\n return;\n }\n const mouseEvent = e;\n const pos = {\n x: mouseEvent.offsetX || mouseEvent.clientX,\n y: mouseEvent.offsetY || mouseEvent.clientY,\n };\n clickOrTouchHandler(e, pos);\n };\n const touchStartHandler = () => {\n if (domItem.destroyed) {\n return;\n }\n touched = true;\n touchMoved = false;\n };\n const touchMoveHandler = () => {\n if (domItem.destroyed) {\n return;\n }\n touchMoved = true;\n };\n const touchEndHandler = (e) => {\n var _a, _b, _c;\n if (domItem.destroyed) {\n return;\n }\n if (touched && !touchMoved) {\n const touchEvent = e;\n const lastTouch = touchEvent.touches[touchEvent.touches.length - 1];\n const canvasRect = (_a = domItem.canvas.element) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();\n const pos = {\n x: lastTouch.clientX - ((_b = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.left) !== null && _b !== void 0 ? _b : 0),\n y: lastTouch.clientY - ((_c = canvasRect === null || canvasRect === void 0 ? void 0 : canvasRect.top) !== null && _c !== void 0 ? _c : 0),\n };\n clickOrTouchHandler(e, pos);\n }\n touched = false;\n touchMoved = false;\n };\n const touchCancelHandler = () => {\n if (domItem.destroyed) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false;\n let touchMoved = false;\n el.addEventListener(\"click\", clickHandler);\n el.addEventListener(\"touchstart\", touchStartHandler);\n el.addEventListener(\"touchmove\", touchMoveHandler);\n el.addEventListener(\"touchend\", touchEndHandler);\n el.addEventListener(\"touchcancel\", touchCancelHandler);\n }\n }\n}\nexports.Loader = Loader;\n","\"use strict\";\nvar __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MainSlim = void 0;\nconst SquareDrawer_1 = require(\"./ShapeDrawers/SquareDrawer\");\nconst TextDrawer_1 = require(\"./ShapeDrawers/TextDrawer\");\nconst ImageDrawer_1 = require(\"./ShapeDrawers/ImageDrawer\");\nconst Utils_1 = require(\"./Utils\");\nconst Types_1 = require(\"./Enums/Types\");\nconst LineDrawer_1 = require(\"./ShapeDrawers/LineDrawer\");\nconst CircleDrawer_1 = require(\"./ShapeDrawers/CircleDrawer\");\nconst TriangleDrawer_1 = require(\"./ShapeDrawers/TriangleDrawer\");\nconst StarDrawer_1 = require(\"./ShapeDrawers/StarDrawer\");\nconst PolygonDrawer_1 = require(\"./ShapeDrawers/PolygonDrawer\");\nconst Loader_1 = require(\"./Core/Loader\");\nclass MainSlim {\n constructor() {\n this.initialized = false;\n const squareDrawer = new SquareDrawer_1.SquareDrawer();\n const textDrawer = new TextDrawer_1.TextDrawer();\n const imageDrawer = new ImageDrawer_1.ImageDrawer();\n Utils_1.Plugins.addShapeDrawer(Types_1.ShapeType.line, new LineDrawer_1.LineDrawer());\n Utils_1.Plugins.addShapeDrawer(Types_1.ShapeType.circle, new CircleDrawer_1.CircleDrawer());\n Utils_1.Plugins.addShapeDrawer(Types_1.ShapeType.edge, squareDrawer);\n Utils_1.Plugins.addShapeDrawer(Types_1.ShapeType.square, squareDrawer);\n Utils_1.Plugins.addShapeDrawer(Types_1.ShapeType.triangle, new TriangleDrawer_1.TriangleDrawer());\n Utils_1.Plugins.addShapeDrawer(Types_1.ShapeType.star, new StarDrawer_1.StarDrawer());\n Utils_1.Plugins.addShapeDrawer(Types_1.ShapeType.polygon, new PolygonDrawer_1.PolygonDrawer());\n Utils_1.Plugins.addShapeDrawer(Types_1.ShapeType.char, textDrawer);\n Utils_1.Plugins.addShapeDrawer(Types_1.ShapeType.character, textDrawer);\n Utils_1.Plugins.addShapeDrawer(Types_1.ShapeType.image, imageDrawer);\n Utils_1.Plugins.addShapeDrawer(Types_1.ShapeType.images, imageDrawer);\n }\n init() {\n if (!this.initialized) {\n this.initialized = true;\n }\n }\n loadFromArray(tagId, options, index) {\n return __awaiter(this, void 0, void 0, function* () {\n return Loader_1.Loader.load(tagId, options, index);\n });\n }\n load(tagId, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return Loader_1.Loader.load(tagId, options);\n });\n }\n set(id, element, options) {\n return __awaiter(this, void 0, void 0, function* () {\n return Loader_1.Loader.set(id, element, options);\n });\n }\n loadJSON(tagId, pathConfigJson, index) {\n return Loader_1.Loader.loadJSON(tagId, pathConfigJson, index);\n }\n setOnClickHandler(callback) {\n Loader_1.Loader.setOnClickHandler(callback);\n }\n dom() {\n return Loader_1.Loader.dom();\n }\n domItem(index) {\n return Loader_1.Loader.domItem(index);\n }\n addShape(shape, drawer, init, afterEffect, destroy) {\n let customDrawer;\n if (typeof drawer === \"function\") {\n customDrawer = {\n afterEffect: afterEffect,\n destroy: destroy,\n draw: drawer,\n init: init,\n };\n }\n else {\n customDrawer = drawer;\n }\n Utils_1.Plugins.addShapeDrawer(shape, customDrawer);\n }\n addPreset(preset, options) {\n Utils_1.Plugins.addPreset(preset, options);\n }\n addPlugin(plugin) {\n Utils_1.Plugins.addPlugin(plugin);\n }\n}\nexports.MainSlim = MainSlim;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbsorberInstance = void 0;\nconst Utils_1 = require(\"../../Utils\");\nclass AbsorberInstance {\n constructor(absorbers, container, options, position) {\n var _a, _b;\n this.absorbers = absorbers;\n this.container = container;\n this.initialPosition = position;\n this.options = options;\n this.dragging = false;\n this.opacity = this.options.opacity;\n this.size = Utils_1.NumberUtils.getValue(options.size) * container.retina.pixelRatio;\n this.mass = this.size * options.size.density * container.retina.reduceFactor;\n const limit = options.size.limit;\n this.limit = limit !== undefined ? limit * container.retina.pixelRatio * container.retina.reduceFactor : limit;\n const color = typeof options.color === \"string\" ? { value: options.color } : options.color;\n this.color = (_a = Utils_1.ColorUtils.colorToRgb(color)) !== null && _a !== void 0 ? _a : {\n b: 0,\n g: 0,\n r: 0,\n };\n this.position = (_b = this.initialPosition) !== null && _b !== void 0 ? _b : this.calcPosition();\n }\n attract(particle) {\n const options = this.options;\n if (options.draggable) {\n const mouse = this.container.interactivity.mouse;\n if (mouse.clicking && mouse.downPosition) {\n const mouseDist = Utils_1.NumberUtils.getDistance(this.position, mouse.downPosition);\n if (mouseDist <= this.size) {\n this.dragging = true;\n }\n }\n else {\n this.dragging = false;\n }\n if (this.dragging && mouse.position) {\n this.position.x = mouse.position.x;\n this.position.y = mouse.position.y;\n }\n }\n const pos = particle.getPosition();\n const { dx, dy, distance } = Utils_1.NumberUtils.getDistances(this.position, pos);\n const angle = Math.atan2(dx, dy);\n const acceleration = (this.mass / Math.pow(distance, 2)) * this.container.retina.reduceFactor;\n if (distance < this.size + particle.getRadius()) {\n const sizeFactor = particle.getRadius() * 0.033 * this.container.retina.pixelRatio;\n if (this.size > particle.getRadius() && distance < this.size - particle.getRadius()) {\n if (options.destroy) {\n particle.destroy();\n }\n else {\n particle.needsNewPosition = true;\n this.updateParticlePosition(particle, angle, acceleration);\n }\n }\n else {\n if (options.destroy) {\n particle.size.value -= sizeFactor;\n }\n this.updateParticlePosition(particle, angle, acceleration);\n }\n if (this.limit === undefined || this.size < this.limit) {\n this.size += sizeFactor;\n }\n this.mass += sizeFactor * this.options.size.density * this.container.retina.reduceFactor;\n }\n else {\n this.updateParticlePosition(particle, angle, acceleration);\n }\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position =\n initialPosition && Utils_1.Utils.isPointInside(initialPosition, this.container.canvas.size)\n ? initialPosition\n : this.calcPosition();\n }\n draw(context) {\n context.translate(this.position.x, this.position.y);\n context.beginPath();\n context.arc(0, 0, this.size, 0, Math.PI * 2, false);\n context.closePath();\n context.fillStyle = Utils_1.ColorUtils.getStyleFromRgb(this.color, this.opacity);\n context.fill();\n }\n calcPosition() {\n var _a, _b;\n const container = this.container;\n const percentPosition = this.options.position;\n return {\n x: (((_a = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.x) !== null && _a !== void 0 ? _a : Math.random() * 100) / 100) * container.canvas.size.width,\n y: (((_b = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.y) !== null && _b !== void 0 ? _b : Math.random() * 100) / 100) * container.canvas.size.height,\n };\n }\n updateParticlePosition(particle, angle, acceleration) {\n var _a;\n if (particle.destroyed) {\n return;\n }\n const canvasSize = this.container.canvas.size;\n if (particle.needsNewPosition) {\n const pSize = particle.getRadius();\n particle.position.x = Math.random() * (canvasSize.width - pSize * 2) + pSize;\n particle.position.y = Math.random() * (canvasSize.height - pSize * 2) + pSize;\n particle.needsNewPosition = false;\n }\n if (this.options.orbits) {\n if (particle.orbitRadius === undefined) {\n particle.orbitRadius = Utils_1.NumberUtils.getDistance(particle.getPosition(), this.position);\n }\n if (particle.orbitRadius <= this.size && !this.options.destroy) {\n particle.orbitRadius = Math.random() * Math.max(canvasSize.width, canvasSize.height);\n }\n if (particle.orbitAngle === undefined) {\n particle.orbitAngle = Math.random() * Math.PI * 2;\n }\n const orbitRadius = particle.orbitRadius;\n const orbitAngle = particle.orbitAngle;\n particle.velocity.horizontal = 0;\n particle.velocity.vertical = 0;\n particle.position.x = this.position.x + orbitRadius * Math.cos(orbitAngle);\n particle.position.y = this.position.y + orbitRadius * Math.sin(orbitAngle);\n particle.orbitRadius -= acceleration;\n particle.orbitAngle +=\n (((_a = particle.moveSpeed) !== null && _a !== void 0 ? _a : this.container.retina.moveSpeed) / 100) * this.container.retina.reduceFactor;\n }\n else {\n particle.velocity.horizontal += Math.sin(angle) * acceleration;\n particle.velocity.vertical += Math.cos(angle) * acceleration;\n }\n }\n}\nexports.AbsorberInstance = AbsorberInstance;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbsorberSize = void 0;\nconst ValueWithRandom_1 = require(\"../../../../Options/Classes/ValueWithRandom\");\nclass AbsorberSize extends ValueWithRandom_1.ValueWithRandom {\n constructor() {\n super();\n this.density = 5;\n this.random.minimumValue = 1;\n this.value = 50;\n }\n load(data) {\n if (!data) {\n return;\n }\n super.load(data);\n if (data.density !== undefined) {\n this.density = data.density;\n }\n if (data.limit !== undefined) {\n this.limit = data.limit;\n }\n if (data.limit !== undefined) {\n this.limit = data.limit;\n }\n }\n}\nexports.AbsorberSize = AbsorberSize;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Absorber = void 0;\nconst AbsorberSize_1 = require(\"./AbsorberSize\");\nconst OptionsColor_1 = require(\"../../../../Options/Classes/OptionsColor\");\nclass Absorber {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.color.value = \"#000000\";\n this.draggable = false;\n this.opacity = 1;\n this.destroy = true;\n this.orbits = false;\n this.size = new AbsorberSize_1.AbsorberSize();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n }\n if (data.draggable !== undefined) {\n this.draggable = data.draggable;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.position !== undefined) {\n this.position = {\n x: data.position.x,\n y: data.position.y,\n };\n }\n if (data.size !== undefined) {\n this.size.load(data.size);\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n if (data.orbits !== undefined) {\n this.orbits = data.orbits;\n }\n }\n}\nexports.Absorber = Absorber;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbsorberClickMode = void 0;\nvar AbsorberClickMode;\n(function (AbsorberClickMode) {\n AbsorberClickMode[\"absorber\"] = \"absorber\";\n})(AbsorberClickMode = exports.AbsorberClickMode || (exports.AbsorberClickMode = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./AbsorberClickMode\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Absorbers = void 0;\nconst AbsorberInstance_1 = require(\"./AbsorberInstance\");\nconst Utils_1 = require(\"../../Utils\");\nconst Absorber_1 = require(\"./Options/Classes/Absorber\");\nconst Enums_1 = require(\"./Enums\");\nclass Absorbers {\n constructor(container) {\n this.container = container;\n this.array = [];\n this.absorbers = [];\n this.interactivityAbsorbers = [];\n const overridableContainer = container;\n overridableContainer.addAbsorber = (options, position) => this.addAbsorber(options, position);\n }\n init(options) {\n var _a, _b;\n if (!options) {\n return;\n }\n if (options.absorbers) {\n if (options.absorbers instanceof Array) {\n this.absorbers = options.absorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.absorbers instanceof Array) {\n this.absorbers = new Absorber_1.Absorber();\n }\n this.absorbers.load(options.absorbers);\n }\n }\n const interactivityAbsorbers = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.absorbers;\n if (interactivityAbsorbers) {\n if (interactivityAbsorbers instanceof Array) {\n this.interactivityAbsorbers = interactivityAbsorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.interactivityAbsorbers instanceof Array) {\n this.interactivityAbsorbers = new Absorber_1.Absorber();\n }\n this.interactivityAbsorbers.load(interactivityAbsorbers);\n }\n }\n if (this.absorbers instanceof Array) {\n for (const absorberOptions of this.absorbers) {\n this.addAbsorber(absorberOptions);\n }\n }\n else {\n this.addAbsorber(this.absorbers);\n }\n }\n particleUpdate(particle) {\n for (const absorber of this.array) {\n absorber.attract(particle);\n if (particle.destroyed) {\n break;\n }\n }\n }\n draw(context) {\n for (const absorber of this.array) {\n context.save();\n absorber.draw(context);\n context.restore();\n }\n }\n stop() {\n this.array = [];\n }\n resize() {\n for (const absorber of this.array) {\n absorber.resize();\n }\n }\n handleClickMode(mode) {\n const container = this.container;\n const absorberOptions = this.absorbers;\n const modeAbsorbers = this.interactivityAbsorbers;\n if (mode === Enums_1.AbsorberClickMode.absorber) {\n let absorbersModeOptions;\n if (modeAbsorbers instanceof Array) {\n if (modeAbsorbers.length > 0) {\n absorbersModeOptions = Utils_1.Utils.itemFromArray(modeAbsorbers);\n }\n }\n else {\n absorbersModeOptions = modeAbsorbers;\n }\n const absorbersOptions = absorbersModeOptions !== null && absorbersModeOptions !== void 0 ? absorbersModeOptions : (absorberOptions instanceof Array ? Utils_1.Utils.itemFromArray(absorberOptions) : absorberOptions);\n const aPosition = container.interactivity.mouse.clickPosition;\n this.addAbsorber(absorbersOptions, aPosition);\n }\n }\n addAbsorber(options, position) {\n const absorber = new AbsorberInstance_1.AbsorberInstance(this, this.container, options, position);\n this.array.push(absorber);\n return absorber;\n }\n removeAbsorber(absorber) {\n const index = this.array.indexOf(absorber);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n}\nexports.Absorbers = Absorbers;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AbsorbersPlugin = void 0;\nconst Absorbers_1 = require(\"./Absorbers\");\nconst Utils_1 = require(\"../../Utils\");\nconst Enums_1 = require(\"./Enums\");\nconst Absorber_1 = require(\"./Options/Classes/Absorber\");\nclass AbsorbersPlugin {\n constructor() {\n this.id = \"absorbers\";\n }\n getPlugin(container) {\n return new Absorbers_1.Absorbers(container);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (options === undefined) {\n return false;\n }\n const absorbers = options.absorbers;\n let loadAbsorbers = false;\n if (absorbers instanceof Array) {\n if (absorbers.length) {\n loadAbsorbers = true;\n }\n }\n else if (absorbers !== undefined) {\n loadAbsorbers = true;\n }\n else if (((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) &&\n Utils_1.Utils.isInArray(Enums_1.AbsorberClickMode.absorber, options.interactivity.events.onClick.mode)) {\n loadAbsorbers = true;\n }\n return loadAbsorbers;\n }\n loadOptions(options, source) {\n var _a, _b;\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n if (source === null || source === void 0 ? void 0 : source.absorbers) {\n if ((source === null || source === void 0 ? void 0 : source.absorbers) instanceof Array) {\n optionsCast.absorbers = source === null || source === void 0 ? void 0 : source.absorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let absorberOptions = optionsCast.absorbers;\n if ((absorberOptions === null || absorberOptions === void 0 ? void 0 : absorberOptions.load) === undefined) {\n optionsCast.absorbers = absorberOptions = new Absorber_1.Absorber();\n }\n absorberOptions.load(source === null || source === void 0 ? void 0 : source.absorbers);\n }\n }\n const interactivityAbsorbers = (_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.absorbers;\n if (interactivityAbsorbers) {\n if (interactivityAbsorbers instanceof Array) {\n optionsCast.interactivity.modes.absorbers = interactivityAbsorbers.map((s) => {\n const tmp = new Absorber_1.Absorber();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let absorberOptions = optionsCast.interactivity.modes.absorbers;\n if ((absorberOptions === null || absorberOptions === void 0 ? void 0 : absorberOptions.load) === undefined) {\n optionsCast.interactivity.modes.absorbers = absorberOptions = new Absorber_1.Absorber();\n }\n absorberOptions.load(interactivityAbsorbers);\n }\n }\n }\n}\nconst plugin = new AbsorbersPlugin();\nexports.AbsorbersPlugin = plugin;\n__exportStar(require(\"./Enums\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmitterSize = void 0;\nconst Enums_1 = require(\"../../../../Enums\");\nclass EmitterSize {\n constructor() {\n this.mode = Enums_1.SizeMode.percent;\n this.height = 0;\n this.width = 0;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.height !== undefined) {\n this.height = data.height;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}\nexports.EmitterSize = EmitterSize;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmitterInstance = void 0;\nconst Utils_1 = require(\"../../Utils\");\nconst Enums_1 = require(\"../../Enums\");\nconst EmitterSize_1 = require(\"./Options/Classes/EmitterSize\");\nfunction randomCoordinate(position, offset) {\n return position + offset * (Math.random() - 0.5);\n}\nfunction randomPosition(position, offset) {\n return {\n x: randomCoordinate(position.x, offset.x),\n y: randomCoordinate(position.y, offset.y),\n };\n}\nclass EmitterInstance {\n constructor(emitters, container, emitterOptions, position) {\n var _a, _b, _c;\n this.emitters = emitters;\n this.container = container;\n this.initialPosition = position;\n this.emitterOptions = Utils_1.Utils.deepExtend({}, emitterOptions);\n this.position = (_a = this.initialPosition) !== null && _a !== void 0 ? _a : this.calcPosition();\n let particlesOptions = Utils_1.Utils.deepExtend({}, this.emitterOptions.particles);\n if (particlesOptions === undefined) {\n particlesOptions = {};\n }\n if (particlesOptions.move === undefined) {\n particlesOptions.move = {};\n }\n if (particlesOptions.move.direction === undefined) {\n particlesOptions.move.direction = this.emitterOptions.direction;\n }\n this.particlesOptions = particlesOptions;\n this.size = (_b = this.emitterOptions.size) !== null && _b !== void 0 ? _b : (() => {\n const size = new EmitterSize_1.EmitterSize();\n size.load({\n height: 0,\n mode: Enums_1.SizeMode.percent,\n width: 0,\n });\n return size;\n })();\n this.lifeCount = (_c = this.emitterOptions.life.count) !== null && _c !== void 0 ? _c : -1;\n this.immortal = this.lifeCount <= 0;\n this.play();\n }\n play() {\n if (this.container.retina.reduceFactor &&\n (this.lifeCount > 0 || this.immortal || !this.emitterOptions.life.count)) {\n if (this.startInterval === undefined) {\n const delay = (1000 * this.emitterOptions.rate.delay) / this.container.retina.reduceFactor;\n this.startInterval = window.setInterval(() => {\n this.emit();\n }, delay);\n }\n if (this.lifeCount > 0 || this.immortal) {\n this.prepareToDie();\n }\n }\n }\n pause() {\n const interval = this.startInterval;\n if (interval !== undefined) {\n clearInterval(interval);\n delete this.startInterval;\n }\n }\n resize() {\n const initialPosition = this.initialPosition;\n this.position =\n initialPosition && Utils_1.Utils.isPointInside(initialPosition, this.container.canvas.size)\n ? initialPosition\n : this.calcPosition();\n }\n prepareToDie() {\n var _a;\n const duration = (_a = this.emitterOptions.life) === null || _a === void 0 ? void 0 : _a.duration;\n if (this.container.retina.reduceFactor &&\n (this.lifeCount > 0 || this.immortal) &&\n duration !== undefined &&\n duration > 0) {\n setTimeout(() => {\n var _a;\n this.pause();\n if (!this.immortal) {\n this.lifeCount--;\n }\n if (this.lifeCount > 0 || this.immortal) {\n this.position = this.calcPosition();\n setTimeout(() => {\n this.play();\n }, (((_a = this.emitterOptions.life.delay) !== null && _a !== void 0 ? _a : 0) * 1000) / this.container.retina.reduceFactor);\n }\n else {\n this.destroy();\n }\n }, duration * 1000);\n }\n }\n destroy() {\n this.emitters.removeEmitter(this);\n }\n calcPosition() {\n var _a, _b;\n const container = this.container;\n const percentPosition = this.emitterOptions.position;\n return {\n x: (((_a = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.x) !== null && _a !== void 0 ? _a : Math.random() * 100) / 100) * container.canvas.size.width,\n y: (((_b = percentPosition === null || percentPosition === void 0 ? void 0 : percentPosition.y) !== null && _b !== void 0 ? _b : Math.random() * 100) / 100) * container.canvas.size.height,\n };\n }\n emit() {\n const container = this.container;\n const position = this.position;\n const offset = {\n x: this.size.mode === Enums_1.SizeMode.percent\n ? (container.canvas.size.width * this.size.width) / 100\n : this.size.width,\n y: this.size.mode === Enums_1.SizeMode.percent\n ? (container.canvas.size.height * this.size.height) / 100\n : this.size.height,\n };\n for (let i = 0; i < this.emitterOptions.rate.quantity; i++) {\n container.particles.addParticle(randomPosition(position, offset), this.particlesOptions);\n }\n }\n}\nexports.EmitterInstance = EmitterInstance;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmitterRate = void 0;\nclass EmitterRate {\n constructor() {\n this.quantity = 1;\n this.delay = 0.1;\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.quantity !== undefined) {\n this.quantity = data.quantity;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n }\n}\nexports.EmitterRate = EmitterRate;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmitterLife = void 0;\nclass EmitterLife {\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n }\n}\nexports.EmitterLife = EmitterLife;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emitter = void 0;\nconst Enums_1 = require(\"../../../../Enums\");\nconst EmitterRate_1 = require(\"./EmitterRate\");\nconst EmitterLife_1 = require(\"./EmitterLife\");\nconst Utils_1 = require(\"../../../../Utils\");\nconst EmitterSize_1 = require(\"./EmitterSize\");\nclass Emitter {\n constructor() {\n this.direction = Enums_1.MoveDirection.none;\n this.life = new EmitterLife_1.EmitterLife();\n this.rate = new EmitterRate_1.EmitterRate();\n }\n load(data) {\n if (data === undefined) {\n return;\n }\n if (data.size !== undefined) {\n if (this.size === undefined) {\n this.size = new EmitterSize_1.EmitterSize();\n }\n this.size.load(data.size);\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.life.load(data.life);\n if (data.particles !== undefined) {\n this.particles = Utils_1.Utils.deepExtend({}, data.particles);\n }\n this.rate.load(data.rate);\n if (data.position !== undefined) {\n this.position = {\n x: data.position.x,\n y: data.position.y,\n };\n }\n }\n}\nexports.Emitter = Emitter;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmitterClickMode = void 0;\nvar EmitterClickMode;\n(function (EmitterClickMode) {\n EmitterClickMode[\"emitter\"] = \"emitter\";\n})(EmitterClickMode = exports.EmitterClickMode || (exports.EmitterClickMode = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./EmitterClickMode\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Emitters = void 0;\nconst EmitterInstance_1 = require(\"./EmitterInstance\");\nconst Utils_1 = require(\"../../Utils\");\nconst Emitter_1 = require(\"./Options/Classes/Emitter\");\nconst Enums_1 = require(\"./Enums\");\nclass Emitters {\n constructor(container) {\n this.container = container;\n this.array = [];\n this.emitters = [];\n this.interactivityEmitters = [];\n const overridableContainer = container;\n overridableContainer.addEmitter = (options, position) => this.addEmitter(options, position);\n }\n init(options) {\n var _a, _b;\n if (!options) {\n return;\n }\n if (options.emitters) {\n if (options.emitters instanceof Array) {\n this.emitters = options.emitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.emitters instanceof Array) {\n this.emitters = new Emitter_1.Emitter();\n }\n this.emitters.load(options.emitters);\n }\n }\n const interactivityEmitters = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.emitters;\n if (interactivityEmitters) {\n if (interactivityEmitters instanceof Array) {\n this.interactivityEmitters = interactivityEmitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n if (this.interactivityEmitters instanceof Array) {\n this.interactivityEmitters = new Emitter_1.Emitter();\n }\n this.interactivityEmitters.load(interactivityEmitters);\n }\n }\n if (this.emitters instanceof Array) {\n for (const emitterOptions of this.emitters) {\n this.addEmitter(emitterOptions);\n }\n }\n else {\n this.addEmitter(this.emitters);\n }\n }\n play() {\n for (const emitter of this.array) {\n emitter.play();\n }\n }\n pause() {\n for (const emitter of this.array) {\n emitter.pause();\n }\n }\n stop() {\n this.array = [];\n }\n handleClickMode(mode) {\n const container = this.container;\n const emitterOptions = this.emitters;\n const modeEmitters = this.interactivityEmitters;\n if (mode === Enums_1.EmitterClickMode.emitter) {\n let emitterModeOptions;\n if (modeEmitters instanceof Array) {\n if (modeEmitters.length > 0) {\n emitterModeOptions = Utils_1.Utils.itemFromArray(modeEmitters);\n }\n }\n else {\n emitterModeOptions = modeEmitters;\n }\n const emittersOptions = emitterModeOptions !== null && emitterModeOptions !== void 0 ? emitterModeOptions : (emitterOptions instanceof Array ? Utils_1.Utils.itemFromArray(emitterOptions) : emitterOptions);\n const ePosition = container.interactivity.mouse.clickPosition;\n this.addEmitter(Utils_1.Utils.deepExtend({}, emittersOptions), ePosition);\n }\n }\n resize() {\n for (const emitter of this.array) {\n emitter.resize();\n }\n }\n addEmitter(options, position) {\n const emitter = new EmitterInstance_1.EmitterInstance(this, this.container, options, position);\n this.array.push(emitter);\n return emitter;\n }\n removeEmitter(emitter) {\n const index = this.array.indexOf(emitter);\n if (index >= 0) {\n this.array.splice(index, 1);\n }\n }\n}\nexports.Emitters = Emitters;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.EmittersPlugin = void 0;\nconst Utils_1 = require(\"../../Utils\");\nconst Emitters_1 = require(\"./Emitters\");\nconst Enums_1 = require(\"./Enums\");\nconst Emitter_1 = require(\"./Options/Classes/Emitter\");\nclass EmittersPlugin {\n constructor() {\n this.id = \"emitters\";\n }\n getPlugin(container) {\n return new Emitters_1.Emitters(container);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n if (options === undefined) {\n return false;\n }\n const emitters = options.emitters;\n let loadEmitters = false;\n if (emitters instanceof Array) {\n if (emitters.length) {\n loadEmitters = true;\n }\n }\n else if (emitters !== undefined) {\n loadEmitters = true;\n }\n else if (((_c = (_b = (_a = options.interactivity) === null || _a === void 0 ? void 0 : _a.events) === null || _b === void 0 ? void 0 : _b.onClick) === null || _c === void 0 ? void 0 : _c.mode) &&\n Utils_1.Utils.isInArray(Enums_1.EmitterClickMode.emitter, options.interactivity.events.onClick.mode)) {\n loadEmitters = true;\n }\n return loadEmitters;\n }\n loadOptions(options, source) {\n var _a, _b;\n if (!this.needsPlugin(options) && !this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n if (source === null || source === void 0 ? void 0 : source.emitters) {\n if ((source === null || source === void 0 ? void 0 : source.emitters) instanceof Array) {\n optionsCast.emitters = source === null || source === void 0 ? void 0 : source.emitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let emitterOptions = optionsCast.emitters;\n if ((emitterOptions === null || emitterOptions === void 0 ? void 0 : emitterOptions.load) === undefined) {\n optionsCast.emitters = emitterOptions = new Emitter_1.Emitter();\n }\n emitterOptions.load(source === null || source === void 0 ? void 0 : source.emitters);\n }\n }\n const interactivityEmitters = (_b = (_a = source === null || source === void 0 ? void 0 : source.interactivity) === null || _a === void 0 ? void 0 : _a.modes) === null || _b === void 0 ? void 0 : _b.emitters;\n if (interactivityEmitters) {\n if (interactivityEmitters instanceof Array) {\n optionsCast.interactivity.modes.emitters = interactivityEmitters.map((s) => {\n const tmp = new Emitter_1.Emitter();\n tmp.load(s);\n return tmp;\n });\n }\n else {\n let emitterOptions = optionsCast.interactivity.modes.emitters;\n if ((emitterOptions === null || emitterOptions === void 0 ? void 0 : emitterOptions.load) === undefined) {\n optionsCast.interactivity.modes.emitters = emitterOptions = new Emitter_1.Emitter();\n }\n emitterOptions.load(interactivityEmitters);\n }\n }\n }\n}\nconst plugin = new EmittersPlugin();\nexports.EmittersPlugin = plugin;\n__exportStar(require(\"./Enums\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.InlineArrangement = void 0;\nvar InlineArrangement;\n(function (InlineArrangement) {\n InlineArrangement[\"equidistant\"] = \"equidistant\";\n InlineArrangement[\"onePerPoint\"] = \"one-per-point\";\n InlineArrangement[\"perPoint\"] = \"per-point\";\n InlineArrangement[\"randomLength\"] = \"random-length\";\n InlineArrangement[\"randomPoint\"] = \"random-point\";\n})(InlineArrangement = exports.InlineArrangement || (exports.InlineArrangement = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.MoveType = void 0;\nvar MoveType;\n(function (MoveType) {\n MoveType[\"path\"] = \"path\";\n MoveType[\"radius\"] = \"radius\";\n})(MoveType = exports.MoveType || (exports.MoveType = {}));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Type = void 0;\nvar Type;\n(function (Type) {\n Type[\"inline\"] = \"inline\";\n Type[\"inside\"] = \"inside\";\n Type[\"outside\"] = \"outside\";\n Type[\"none\"] = \"none\";\n})(Type = exports.Type || (exports.Type = {}));\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./InlineArrangement\"), exports);\n__exportStar(require(\"./MoveType\"), exports);\n__exportStar(require(\"./Type\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.DrawStroke = void 0;\nconst OptionsColor_1 = require(\"../../../../Options/Classes/OptionsColor\");\nconst Utils_1 = require(\"../../../../Utils\");\nclass DrawStroke {\n constructor() {\n this.color = new OptionsColor_1.OptionsColor();\n this.width = 0.5;\n this.opacity = 1;\n }\n load(data) {\n var _a;\n if (data !== undefined) {\n this.color = OptionsColor_1.OptionsColor.create(this.color, data.color);\n if (typeof this.color.value === \"string\") {\n this.opacity = (_a = Utils_1.ColorUtils.stringToAlpha(this.color.value)) !== null && _a !== void 0 ? _a : this.opacity;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n }\n}\nexports.DrawStroke = DrawStroke;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Draw = void 0;\nconst DrawStroke_1 = require(\"./DrawStroke\");\nconst OptionsColor_1 = require(\"../../../../Options/Classes/OptionsColor\");\nclass Draw {\n constructor() {\n this.enable = false;\n this.stroke = new DrawStroke_1.DrawStroke();\n }\n get lineWidth() {\n return this.stroke.width;\n }\n set lineWidth(value) {\n this.stroke.width = value;\n }\n get lineColor() {\n return this.stroke.color;\n }\n set lineColor(value) {\n this.stroke.color = OptionsColor_1.OptionsColor.create(this.stroke.color, value);\n }\n load(data) {\n var _a;\n if (data !== undefined) {\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const stroke = (_a = data.stroke) !== null && _a !== void 0 ? _a : {\n color: data.lineColor,\n width: data.lineWidth,\n };\n this.stroke.load(stroke);\n }\n }\n}\nexports.Draw = Draw;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Move = void 0;\nconst Enums_1 = require(\"../../Enums\");\nclass Move {\n constructor() {\n this.radius = 10;\n this.type = Enums_1.MoveType.path;\n }\n load(data) {\n if (data !== undefined) {\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n }\n}\nexports.Move = Move;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Inline = void 0;\nconst Enums_1 = require(\"../../Enums\");\nclass Inline {\n constructor() {\n this.arrangement = Enums_1.InlineArrangement.onePerPoint;\n }\n load(data) {\n if (data !== undefined) {\n if (data.arrangement !== undefined) {\n this.arrangement = data.arrangement;\n }\n }\n }\n}\nexports.Inline = Inline;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LocalSvg = void 0;\nclass LocalSvg {\n constructor() {\n this.path = [];\n this.size = {\n height: 0,\n width: 0,\n };\n }\n load(data) {\n if (data !== undefined) {\n if (data.path !== undefined) {\n this.path = data.path;\n }\n if (data.size !== undefined) {\n if (data.size.width !== undefined) {\n this.size.width = data.size.width;\n }\n if (data.size.height !== undefined) {\n this.size.height = data.size.height;\n }\n }\n }\n }\n}\nexports.LocalSvg = LocalSvg;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonMask = void 0;\nconst Enums_1 = require(\"../../Enums\");\nconst Draw_1 = require(\"./Draw\");\nconst Move_1 = require(\"./Move\");\nconst Inline_1 = require(\"./Inline\");\nconst LocalSvg_1 = require(\"./LocalSvg\");\nclass PolygonMask {\n constructor() {\n this.draw = new Draw_1.Draw();\n this.enable = false;\n this.inline = new Inline_1.Inline();\n this.move = new Move_1.Move();\n this.scale = 1;\n this.type = Enums_1.Type.none;\n }\n get inlineArrangement() {\n return this.inline.arrangement;\n }\n set inlineArrangement(value) {\n this.inline.arrangement = value;\n }\n load(data) {\n var _a;\n if (data !== undefined) {\n this.draw.load(data.draw);\n const inline = (_a = data.inline) !== null && _a !== void 0 ? _a : {\n arrangement: data.inlineArrangement,\n };\n if (inline !== undefined) {\n this.inline.load(inline);\n }\n this.move.load(data.move);\n if (data.scale !== undefined) {\n this.scale = data.scale;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n else {\n this.enable = this.type !== Enums_1.Type.none;\n }\n if (data.url !== undefined) {\n this.url = data.url;\n }\n if (data.data !== undefined) {\n if (typeof data.data === \"string\") {\n this.data = data.data;\n }\n else {\n this.data = new LocalSvg_1.LocalSvg();\n this.data.load(data.data);\n }\n }\n if (data.position !== undefined) {\n this.position = {\n x: data.position.x,\n y: data.position.y,\n };\n }\n }\n }\n}\nexports.PolygonMask = PolygonMask;\n","\"use strict\";\nvar __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};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonMaskInstance = void 0;\nconst Enums_1 = require(\"./Enums\");\nconst Utils_1 = require(\"../../Utils\");\nconst PolygonMask_1 = require(\"./Options/Classes/PolygonMask\");\nfunction polygonBounce(particle) {\n particle.velocity.horizontal = particle.velocity.vertical / 2 - particle.velocity.horizontal;\n particle.velocity.vertical = particle.velocity.horizontal / 2 - particle.velocity.vertical;\n}\nfunction drawPolygonMask(context, rawData, stroke) {\n const color = Utils_1.ColorUtils.colorToRgb(stroke.color);\n if (!color) {\n return;\n }\n context.beginPath();\n context.moveTo(rawData[0].x, rawData[0].y);\n for (const item of rawData) {\n context.lineTo(item.x, item.y);\n }\n context.closePath();\n context.strokeStyle = Utils_1.ColorUtils.getStyleFromRgb(color);\n context.lineWidth = stroke.width;\n context.stroke();\n}\nfunction drawPolygonMaskPath(context, path, stroke, position) {\n context.translate(position.x, position.y);\n const color = Utils_1.ColorUtils.colorToRgb(stroke.color);\n if (!color) {\n return;\n }\n context.strokeStyle = Utils_1.ColorUtils.getStyleFromRgb(color, stroke.opacity);\n context.lineWidth = stroke.width;\n context.stroke(path);\n}\nfunction parsePaths(paths, scale, offset) {\n const res = [];\n for (const path of paths) {\n const segments = path.element.pathSegList;\n const len = segments.numberOfItems;\n const p = {\n x: 0,\n y: 0,\n };\n for (let i = 0; i < len; i++) {\n const segment = segments.getItem(i);\n const svgPathSeg = window.SVGPathSeg;\n switch (segment.pathSegType) {\n case svgPathSeg.PATHSEG_MOVETO_ABS:\n case svgPathSeg.PATHSEG_LINETO_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_ABS:\n case svgPathSeg.PATHSEG_ARC_ABS:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_ABS:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_ABS: {\n const absSeg = segment;\n p.x = absSeg.x;\n p.y = absSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_ABS:\n p.x = segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_ABS:\n p.y = segment.y;\n break;\n case svgPathSeg.PATHSEG_LINETO_REL:\n case svgPathSeg.PATHSEG_MOVETO_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_REL:\n case svgPathSeg.PATHSEG_ARC_REL:\n case svgPathSeg.PATHSEG_CURVETO_CUBIC_SMOOTH_REL:\n case svgPathSeg.PATHSEG_CURVETO_QUADRATIC_SMOOTH_REL: {\n const relSeg = segment;\n p.x += relSeg.x;\n p.y += relSeg.y;\n break;\n }\n case svgPathSeg.PATHSEG_LINETO_HORIZONTAL_REL:\n p.x += segment.x;\n break;\n case svgPathSeg.PATHSEG_LINETO_VERTICAL_REL:\n p.y += segment.y;\n break;\n case svgPathSeg.PATHSEG_UNKNOWN:\n case svgPathSeg.PATHSEG_CLOSEPATH:\n continue;\n }\n res.push({\n x: p.x * scale + offset.x,\n y: p.y * scale + offset.y,\n });\n }\n }\n return res;\n}\nclass PolygonMaskInstance {\n constructor(container) {\n this.container = container;\n this.dimension = {\n height: 0,\n width: 0,\n };\n this.path2DSupported = !!window.Path2D;\n this.options = new PolygonMask_1.PolygonMask();\n this.polygonMaskMoveRadius = this.options.move.radius * container.retina.pixelRatio;\n }\n initAsync(options) {\n return __awaiter(this, void 0, void 0, function* () {\n this.options.load(options === null || options === void 0 ? void 0 : options.polygon);\n const polygonMaskOptions = this.options;\n this.polygonMaskMoveRadius = polygonMaskOptions.move.radius * this.container.retina.pixelRatio;\n if (polygonMaskOptions.enable) {\n yield this.initRawData();\n }\n });\n }\n resize() {\n const container = this.container;\n const options = this.options;\n if (!(options.enable && options.type !== Enums_1.Type.none)) {\n return;\n }\n if (this.redrawTimeout) {\n clearTimeout(this.redrawTimeout);\n }\n this.redrawTimeout = window.setTimeout(() => __awaiter(this, void 0, void 0, function* () {\n yield this.initRawData(true);\n container.particles.redraw();\n }), 250);\n }\n stop() {\n delete this.raw;\n delete this.paths;\n }\n particlesInitialization() {\n const options = this.options;\n if (options.enable &&\n options.type === Enums_1.Type.inline &&\n (options.inline.arrangement === Enums_1.InlineArrangement.onePerPoint ||\n options.inline.arrangement === Enums_1.InlineArrangement.perPoint)) {\n this.drawPoints();\n return true;\n }\n return false;\n }\n particlePosition(position) {\n var _a, _b;\n const options = this.options;\n if (!(options.enable && ((_b = (_a = this.raw) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) > 0)) {\n return;\n }\n return Utils_1.Utils.deepExtend({}, position ? position : this.randomPoint());\n }\n particleBounce(particle) {\n const options = this.options;\n if (options.enable && options.type !== Enums_1.Type.none && options.type !== Enums_1.Type.inline) {\n if (!this.checkInsidePolygon(particle.getPosition())) {\n polygonBounce(particle);\n return true;\n }\n }\n else if (options.enable && options.type === Enums_1.Type.inline && particle.initialPosition) {\n const dist = Utils_1.NumberUtils.getDistance(particle.initialPosition, particle.getPosition());\n if (dist > this.polygonMaskMoveRadius) {\n polygonBounce(particle);\n return true;\n }\n }\n return false;\n }\n clickPositionValid(position) {\n const options = this.options;\n return (options.enable &&\n options.type !== Enums_1.Type.none &&\n options.type !== Enums_1.Type.inline &&\n this.checkInsidePolygon(position));\n }\n draw(context) {\n var _a;\n if (!((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n return;\n }\n const options = this.options;\n const polygonDraw = options.draw;\n if (!(options.enable && polygonDraw.enable)) {\n return;\n }\n const rawData = this.raw;\n for (const path of this.paths) {\n const path2d = path.path2d;\n const path2dSupported = this.path2DSupported;\n if (!context) {\n continue;\n }\n if (path2dSupported && path2d && this.offset) {\n drawPolygonMaskPath(context, path2d, polygonDraw.stroke, this.offset);\n }\n else if (rawData) {\n drawPolygonMask(context, rawData, polygonDraw.stroke);\n }\n }\n }\n checkInsidePolygon(position) {\n var _a, _b;\n const container = this.container;\n const options = this.options;\n if (!options.enable || options.type === Enums_1.Type.none || options.type === Enums_1.Type.inline) {\n return true;\n }\n if (!this.raw) {\n throw new Error(Utils_1.Constants.noPolygonFound);\n }\n const canvasSize = container.canvas.size;\n const x = (_a = position === null || position === void 0 ? void 0 : position.x) !== null && _a !== void 0 ? _a : Math.random() * canvasSize.width;\n const y = (_b = position === null || position === void 0 ? void 0 : position.y) !== null && _b !== void 0 ? _b : Math.random() * canvasSize.height;\n let inside = false;\n for (let i = 0, j = this.raw.length - 1; i < this.raw.length; j = i++) {\n const pi = this.raw[i];\n const pj = this.raw[j];\n const intersect = pi.y > y !== pj.y > y && x < ((pj.x - pi.x) * (y - pi.y)) / (pj.y - pi.y) + pi.x;\n if (intersect) {\n inside = !inside;\n }\n }\n return options.type === Enums_1.Type.inside ? inside : options.type === Enums_1.Type.outside ? !inside : false;\n }\n parseSvgPath(xml, force) {\n var _a, _b, _c;\n const forceDownload = force !== null && force !== void 0 ? force : false;\n if (this.paths !== undefined && !forceDownload) {\n return this.raw;\n }\n const container = this.container;\n const options = this.options;\n const parser = new DOMParser();\n const doc = parser.parseFromString(xml, \"image/svg+xml\");\n const svg = doc.getElementsByTagName(\"svg\")[0];\n let svgPaths = svg.getElementsByTagName(\"path\");\n if (!svgPaths.length) {\n svgPaths = doc.getElementsByTagName(\"path\");\n }\n this.paths = [];\n for (let i = 0; i < svgPaths.length; i++) {\n const path = svgPaths.item(i);\n if (path) {\n this.paths.push({\n element: path,\n length: path.getTotalLength(),\n });\n }\n }\n const pxRatio = container.retina.pixelRatio;\n const scale = options.scale / pxRatio;\n this.dimension.width = parseFloat((_a = svg.getAttribute(\"width\")) !== null && _a !== void 0 ? _a : \"0\") * scale;\n this.dimension.height = parseFloat((_b = svg.getAttribute(\"height\")) !== null && _b !== void 0 ? _b : \"0\") * scale;\n const position = (_c = options.position) !== null && _c !== void 0 ? _c : {\n x: 50,\n y: 50,\n };\n this.offset = {\n x: (container.canvas.size.width * position.x) / (100 * pxRatio) - this.dimension.width / 2,\n y: (container.canvas.size.height * position.y) / (100 * pxRatio) - this.dimension.height / 2,\n };\n return parsePaths(this.paths, scale, this.offset);\n }\n downloadSvgPath(svgUrl, force) {\n return __awaiter(this, void 0, void 0, function* () {\n const options = this.options;\n const url = svgUrl || options.url;\n const forceDownload = force !== null && force !== void 0 ? force : false;\n if (!url || (this.paths !== undefined && !forceDownload)) {\n return this.raw;\n }\n const req = yield fetch(url);\n if (!req.ok) {\n throw new Error(\"tsParticles Error - Error occurred during polygon mask download\");\n }\n return this.parseSvgPath(yield req.text(), force);\n });\n }\n drawPoints() {\n if (!this.raw) {\n return;\n }\n for (const item of this.raw) {\n this.container.particles.addParticle({\n x: item.x,\n y: item.y,\n });\n }\n }\n randomPoint() {\n const container = this.container;\n const options = this.options;\n let position;\n if (options.type === Enums_1.Type.inline) {\n switch (options.inline.arrangement) {\n case Enums_1.InlineArrangement.randomPoint:\n position = this.getRandomPoint();\n break;\n case Enums_1.InlineArrangement.randomLength:\n position = this.getRandomPointByLength();\n break;\n case Enums_1.InlineArrangement.equidistant:\n position = this.getEquidistantPointByIndex(container.particles.count);\n break;\n case Enums_1.InlineArrangement.onePerPoint:\n case Enums_1.InlineArrangement.perPoint:\n default:\n position = this.getPointByIndex(container.particles.count);\n }\n }\n else {\n position = {\n x: Math.random() * container.canvas.size.width,\n y: Math.random() * container.canvas.size.height,\n };\n }\n if (this.checkInsidePolygon(position)) {\n return position;\n }\n else {\n return this.randomPoint();\n }\n }\n getRandomPoint() {\n if (!this.raw || !this.raw.length) {\n throw new Error(Utils_1.Constants.noPolygonDataLoaded);\n }\n const coords = Utils_1.Utils.itemFromArray(this.raw);\n return {\n x: coords.x,\n y: coords.y,\n };\n }\n getRandomPointByLength() {\n var _a, _b, _c;\n const options = this.options;\n if (!this.raw || !this.raw.length || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n throw new Error(Utils_1.Constants.noPolygonDataLoaded);\n }\n const path = Utils_1.Utils.itemFromArray(this.paths);\n const distance = Math.floor(Math.random() * path.length) + 1;\n const point = path.element.getPointAtLength(distance);\n return {\n x: point.x * options.scale + (((_b = this.offset) === null || _b === void 0 ? void 0 : _b.x) || 0),\n y: point.y * options.scale + (((_c = this.offset) === null || _c === void 0 ? void 0 : _c.y) || 0),\n };\n }\n getEquidistantPointByIndex(index) {\n var _a, _b, _c, _d, _e, _f, _g;\n const options = this.container.options;\n const polygonMaskOptions = this.options;\n if (!this.raw || !this.raw.length || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length))\n throw new Error(Utils_1.Constants.noPolygonDataLoaded);\n let offset = 0;\n let point;\n const totalLength = this.paths.reduce((tot, path) => tot + path.length, 0);\n const distance = totalLength / options.particles.number.value;\n for (const path of this.paths) {\n const pathDistance = distance * index - offset;\n if (pathDistance <= path.length) {\n point = path.element.getPointAtLength(pathDistance);\n break;\n }\n else {\n offset += path.length;\n }\n }\n return {\n x: ((_b = point === null || point === void 0 ? void 0 : point.x) !== null && _b !== void 0 ? _b : 0) * polygonMaskOptions.scale + ((_d = (_c = this.offset) === null || _c === void 0 ? void 0 : _c.x) !== null && _d !== void 0 ? _d : 0),\n y: ((_e = point === null || point === void 0 ? void 0 : point.y) !== null && _e !== void 0 ? _e : 0) * polygonMaskOptions.scale + ((_g = (_f = this.offset) === null || _f === void 0 ? void 0 : _f.y) !== null && _g !== void 0 ? _g : 0),\n };\n }\n getPointByIndex(index) {\n if (!this.raw || !this.raw.length) {\n throw new Error(Utils_1.Constants.noPolygonDataLoaded);\n }\n const coords = this.raw[index % this.raw.length];\n return {\n x: coords.x,\n y: coords.y,\n };\n }\n createPath2D() {\n var _a, _b;\n const options = this.options;\n if (!this.path2DSupported || !((_a = this.paths) === null || _a === void 0 ? void 0 : _a.length)) {\n return;\n }\n for (const path of this.paths) {\n const pathData = (_b = path.element) === null || _b === void 0 ? void 0 : _b.getAttribute(\"d\");\n if (pathData) {\n const path2d = new Path2D(pathData);\n const matrix = document.createElementNS(\"http://www.w3.org/2000/svg\", \"svg\").createSVGMatrix();\n const finalPath = new Path2D();\n const transform = matrix.scale(options.scale);\n if (finalPath.addPath) {\n finalPath.addPath(path2d, transform);\n path.path2d = finalPath;\n }\n else {\n delete path.path2d;\n }\n }\n else {\n delete path.path2d;\n }\n if (path.path2d || !this.raw) {\n continue;\n }\n path.path2d = new Path2D();\n path.path2d.moveTo(this.raw[0].x, this.raw[0].y);\n this.raw.forEach((pos, i) => {\n var _a;\n if (i > 0) {\n (_a = path.path2d) === null || _a === void 0 ? void 0 : _a.lineTo(pos.x, pos.y);\n }\n });\n path.path2d.closePath();\n }\n }\n initRawData(force) {\n return __awaiter(this, void 0, void 0, function* () {\n const options = this.options;\n if (options.url) {\n this.raw = yield this.downloadSvgPath(options.url, force);\n }\n else if (options.data) {\n const data = options.data;\n let svg;\n if (typeof data !== \"string\") {\n const path = data.path instanceof Array\n ? data.path.map((t) => ``).join(\"\")\n : ``;\n const namespaces = 'xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\"';\n svg = `${path}`;\n }\n else {\n svg = data;\n }\n this.raw = this.parseSvgPath(svg, force);\n }\n this.createPath2D();\n });\n }\n}\nexports.PolygonMaskInstance = PolygonMaskInstance;\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PolygonMaskPlugin = void 0;\nconst PolygonMaskInstance_1 = require(\"./PolygonMaskInstance\");\nconst PolygonMask_1 = require(\"./Options/Classes/PolygonMask\");\nconst Enums_1 = require(\"./Enums\");\nclass PolygonMaskPlugin {\n constructor() {\n this.id = \"polygonMask\";\n }\n getPlugin(container) {\n return new PolygonMaskInstance_1.PolygonMaskInstance(container);\n }\n needsPlugin(options) {\n var _a, _b, _c;\n return (_b = (_a = options === null || options === void 0 ? void 0 : options.polygon) === null || _a === void 0 ? void 0 : _a.enable) !== null && _b !== void 0 ? _b : (((_c = options === null || options === void 0 ? void 0 : options.polygon) === null || _c === void 0 ? void 0 : _c.type) !== undefined && options.polygon.type !== Enums_1.Type.none);\n }\n loadOptions(options, source) {\n if (!this.needsPlugin(source)) {\n return;\n }\n const optionsCast = options;\n let polygonOptions = optionsCast.polygon;\n if ((polygonOptions === null || polygonOptions === void 0 ? void 0 : polygonOptions.load) === undefined) {\n optionsCast.polygon = polygonOptions = new PolygonMask_1.PolygonMask();\n }\n polygonOptions.load(source === null || source === void 0 ? void 0 : source.polygon);\n }\n}\nconst plugin = new PolygonMaskPlugin();\nexports.PolygonMaskPlugin = plugin;\n__exportStar(require(\"./Enums\"), exports);\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.Main = void 0;\nconst main_slim_1 = require(\"./main.slim\");\nconst AbsorbersPlugin_1 = require(\"./Plugins/Absorbers/AbsorbersPlugin\");\nconst EmittersPlugin_1 = require(\"./Plugins/Emitters/EmittersPlugin\");\nconst PolygonMaskPlugin_1 = require(\"./Plugins/PolygonMask/PolygonMaskPlugin\");\nclass Main extends main_slim_1.MainSlim {\n constructor() {\n super();\n this.addPlugin(AbsorbersPlugin_1.AbsorbersPlugin);\n this.addPlugin(EmittersPlugin_1.EmittersPlugin);\n this.addPlugin(PolygonMaskPlugin_1.PolygonMaskPlugin);\n }\n}\nexports.Main = Main;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n__exportStar(require(\"./RecursivePartial\"), exports);\n__exportStar(require(\"./ShapeData\"), exports);\n__exportStar(require(\"./ShapeDrawerFunctions\"), exports);\n__exportStar(require(\"./SingleOrMultiple\"), exports);\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.tsParticles = exports.pJSDom = exports.particlesJS = exports.Utils = exports.Constants = exports.ColorUtils = exports.CanvasUtils = void 0;\nconst pjs_1 = require(\"./pjs\");\nconst main_1 = require(\"./main\");\nconst Utils_1 = require(\"./Utils\");\nObject.defineProperty(exports, \"CanvasUtils\", { enumerable: true, get: function () { return Utils_1.CanvasUtils; } });\nObject.defineProperty(exports, \"ColorUtils\", { enumerable: true, get: function () { return Utils_1.ColorUtils; } });\nObject.defineProperty(exports, \"Constants\", { enumerable: true, get: function () { return Utils_1.Constants; } });\nObject.defineProperty(exports, \"Utils\", { enumerable: true, get: function () { return Utils_1.Utils; } });\nconst tsParticles = new main_1.Main();\nexports.tsParticles = tsParticles;\ntsParticles.init();\nconst { particlesJS, pJSDom } = pjs_1.initPjs(tsParticles);\nexports.particlesJS = particlesJS;\nexports.pJSDom = pJSDom;\n__exportStar(require(\"./Core/Container\"), exports);\n__exportStar(require(\"./Enums\"), exports);\n__exportStar(require(\"./Plugins/Absorbers/Enums\"), exports);\n__exportStar(require(\"./Plugins/Emitters/Enums\"), exports);\n__exportStar(require(\"./Plugins/PolygonMask/Enums\"), exports);\n__exportStar(require(\"./Types\"), exports);\n",";(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n global.moment = factory()\n}(this, (function () { 'use strict';\n\n var hookCallback;\n\n function 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.\n function setHookCallback(callback) {\n hookCallback = callback;\n }\n\n function isArray(input) {\n return (\n input instanceof Array ||\n Object.prototype.toString.call(input) === '[object Array]'\n );\n }\n\n function 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\n function hasOwnProp(a, b) {\n return Object.prototype.hasOwnProperty.call(a, b);\n }\n\n function 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\n function isUndefined(input) {\n return input === void 0;\n }\n\n function isNumber(input) {\n return (\n typeof input === 'number' ||\n Object.prototype.toString.call(input) === '[object Number]'\n );\n }\n\n function isDate(input) {\n return (\n input instanceof Date ||\n Object.prototype.toString.call(input) === '[object Date]'\n );\n }\n\n function 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\n function 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\n function createUTC(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, true).utc();\n }\n\n function 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\n function getParsingFlags(m) {\n if (m._pf == null) {\n m._pf = defaultParsingFlags();\n }\n return m._pf;\n }\n\n var some;\n if (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\n function 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\n function 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.\n var momentProperties = (hooks.momentProperties = []),\n updateInProgress = false;\n\n function 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\n function 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\n function isMoment(obj) {\n return (\n obj instanceof Moment || (obj != null && obj._isAMomentObject != null)\n );\n }\n\n function 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\n function 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\n var deprecations = {};\n\n function 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\n hooks.suppressDeprecationWarnings = false;\n hooks.deprecationHandler = null;\n\n function isFunction(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n function 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\n function 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\n function Locale(config) {\n if (config != null) {\n this.set(config);\n }\n }\n\n var keys;\n\n if (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\n var 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\n function calendar(key, mom, now) {\n var output = this._calendar[key] || this._calendar['sameElse'];\n return isFunction(output) ? output.call(mom, now) : output;\n }\n\n function 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\n var 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 }\n function 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\n function removeFormattingTokens(input) {\n if (input.match(/\\[[\\s\\S]/)) {\n return input.replace(/^\\[|\\]$/g, '');\n }\n return input.replace(/\\\\/g, '');\n }\n\n function 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\n function 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\n function 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\n var 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\n function 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\n var defaultInvalidDate = 'Invalid date';\n\n function invalidDate() {\n return this._invalidDate;\n }\n\n var defaultOrdinal = '%d',\n defaultDayOfMonthOrdinalParse = /\\d{1,2}/;\n\n function ordinal(number) {\n return this._ordinal.replace('%d', number);\n }\n\n var 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\n function 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\n function 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\n var aliases = {};\n\n function addUnitAlias(unit, shorthand) {\n var lowerCase = unit.toLowerCase();\n aliases[lowerCase] = aliases[lowerCase + 's'] = aliases[shorthand] = unit;\n }\n\n function normalizeUnits(units) {\n return typeof units === 'string'\n ? aliases[units] || aliases[units.toLowerCase()]\n : undefined;\n }\n\n function 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\n var priorities = {};\n\n function addUnitPriority(unit, priority) {\n priorities[unit] = priority;\n }\n\n function 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\n function isLeapYear(year) {\n return (year % 4 === 0 && year % 100 !== 0) || year % 400 === 0;\n }\n\n function 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\n function 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\n function 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\n function get(mom, unit) {\n return mom.isValid()\n ? mom._d['get' + (mom._isUTC ? 'UTC' : '') + unit]()\n : NaN;\n }\n\n function 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\n function stringGet(units) {\n units = normalizeUnits(units);\n if (isFunction(this[units])) {\n return this[units]();\n }\n return this;\n }\n\n function 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\n var 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\n regexes = {};\n\n function addRegexToken(token, regex, strictRegex) {\n regexes[token] = isFunction(regex)\n ? regex\n : function (isStrict, localeData) {\n return isStrict && strictRegex ? strictRegex : regex;\n };\n }\n\n function 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\n function 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\n function regexEscape(s) {\n return s.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g, '\\\\$&');\n }\n\n var tokens = {};\n\n function 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\n function 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\n function addTimeToArrayFromToken(token, input, config) {\n if (input != null && hasOwnProp(tokens, token)) {\n tokens[token](input, config._a, config, token);\n }\n }\n\n var 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\n function mod(n, x) {\n return ((n % x) + x) % x;\n }\n\n var indexOf;\n\n if (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\n function 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\n addFormatToken('M', ['MM', 2], 'Mo', function () {\n return this.month() + 1;\n });\n\n addFormatToken('MMM', 0, 0, function (format) {\n return this.localeData().monthsShort(this, format);\n });\n\n addFormatToken('MMMM', 0, 0, function (format) {\n return this.localeData().months(this, format);\n });\n\n // ALIASES\n\n addUnitAlias('month', 'M');\n\n // PRIORITY\n\n addUnitPriority('month', 8);\n\n // PARSING\n\n addRegexToken('M', match1to2);\n addRegexToken('MM', match1to2, match2);\n addRegexToken('MMM', function (isStrict, locale) {\n return locale.monthsShortRegex(isStrict);\n });\n addRegexToken('MMMM', function (isStrict, locale) {\n return locale.monthsRegex(isStrict);\n });\n\n addParseToken(['M', 'MM'], function (input, array) {\n array[MONTH] = toInt(input) - 1;\n });\n\n addParseToken(['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\n var 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function getDaysInMonth() {\n return daysInMonth(this.year(), this.month());\n }\n\n function 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\n function 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\n function 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\n addFormatToken('Y', 0, 0, function () {\n var y = this.year();\n return y <= 9999 ? zeroFill(y, 4) : '+' + y;\n });\n\n addFormatToken(0, ['YY', 2], 0, function () {\n return this.year() % 100;\n });\n\n addFormatToken(0, ['YYYY', 4], 0, 'year');\n addFormatToken(0, ['YYYYY', 5], 0, 'year');\n addFormatToken(0, ['YYYYYY', 6, true], 0, 'year');\n\n // ALIASES\n\n addUnitAlias('year', 'y');\n\n // PRIORITIES\n\n addUnitPriority('year', 1);\n\n // PARSING\n\n addRegexToken('Y', matchSigned);\n addRegexToken('YY', match1to2, match2);\n addRegexToken('YYYY', match1to4, match4);\n addRegexToken('YYYYY', match1to6, match6);\n addRegexToken('YYYYYY', match1to6, match6);\n\n addParseToken(['YYYYY', 'YYYYYY'], YEAR);\n addParseToken('YYYY', function (input, array) {\n array[YEAR] =\n input.length === 2 ? hooks.parseTwoDigitYear(input) : toInt(input);\n });\n addParseToken('YY', function (input, array) {\n array[YEAR] = hooks.parseTwoDigitYear(input);\n });\n addParseToken('Y', function (input, array) {\n array[YEAR] = parseInt(input, 10);\n });\n\n // HELPERS\n\n function daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n }\n\n // HOOKS\n\n hooks.parseTwoDigitYear = function (input) {\n return toInt(input) + (toInt(input) > 68 ? 1900 : 2000);\n };\n\n // MOMENTS\n\n var getSetYear = makeGetSet('FullYear', true);\n\n function getIsLeapYear() {\n return isLeapYear(this.year());\n }\n\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n addFormatToken('w', ['ww', 2], 'wo', 'week');\n addFormatToken('W', ['WW', 2], 'Wo', 'isoWeek');\n\n // ALIASES\n\n addUnitAlias('week', 'w');\n addUnitAlias('isoWeek', 'W');\n\n // PRIORITIES\n\n addUnitPriority('week', 5);\n addUnitPriority('isoWeek', 5);\n\n // PARSING\n\n addRegexToken('w', match1to2);\n addRegexToken('ww', match1to2, match2);\n addRegexToken('W', match1to2);\n addRegexToken('WW', match1to2, match2);\n\n addWeekParseToken(['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\n function localeWeek(mom) {\n return weekOfYear(mom, this._week.dow, this._week.doy).week;\n }\n\n var 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\n function localeFirstDayOfWeek() {\n return this._week.dow;\n }\n\n function localeFirstDayOfYear() {\n return this._week.doy;\n }\n\n // MOMENTS\n\n function getSetWeek(input) {\n var week = this.localeData().week(this);\n return input == null ? week : this.add((input - week) * 7, 'd');\n }\n\n function 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\n addFormatToken('d', 0, 'do', 'day');\n\n addFormatToken('dd', 0, 0, function (format) {\n return this.localeData().weekdaysMin(this, format);\n });\n\n addFormatToken('ddd', 0, 0, function (format) {\n return this.localeData().weekdaysShort(this, format);\n });\n\n addFormatToken('dddd', 0, 0, function (format) {\n return this.localeData().weekdays(this, format);\n });\n\n addFormatToken('e', 0, 0, 'weekday');\n addFormatToken('E', 0, 0, 'isoWeekday');\n\n // ALIASES\n\n addUnitAlias('day', 'd');\n addUnitAlias('weekday', 'e');\n addUnitAlias('isoWeekday', 'E');\n\n // PRIORITY\n addUnitPriority('day', 11);\n addUnitPriority('weekday', 11);\n addUnitPriority('isoWeekday', 11);\n\n // PARSING\n\n addRegexToken('d', match1to2);\n addRegexToken('e', match1to2);\n addRegexToken('E', match1to2);\n addRegexToken('dd', function (isStrict, locale) {\n return locale.weekdaysMinRegex(isStrict);\n });\n addRegexToken('ddd', function (isStrict, locale) {\n return locale.weekdaysShortRegex(isStrict);\n });\n addRegexToken('dddd', function (isStrict, locale) {\n return locale.weekdaysRegex(isStrict);\n });\n\n addWeekParseToken(['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\n addWeekParseToken(['d', 'e', 'E'], function (input, week, config, token) {\n week[token] = toInt(input);\n });\n\n // HELPERS\n\n function 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\n function 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\n function shiftWeekdays(ws, n) {\n return ws.slice(n, 7).concat(ws.slice(0, n));\n }\n\n var 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function hFormat() {\n return this.hours() % 12 || 12;\n }\n\n function kFormat() {\n return this.hours() || 24;\n }\n\n addFormatToken('H', ['HH', 2], 0, 'hour');\n addFormatToken('h', ['hh', 2], 0, hFormat);\n addFormatToken('k', ['kk', 2], 0, kFormat);\n\n addFormatToken('hmm', 0, 0, function () {\n return '' + hFormat.apply(this) + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('hmmss', 0, 0, function () {\n return (\n '' +\n hFormat.apply(this) +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n addFormatToken('Hmm', 0, 0, function () {\n return '' + this.hours() + zeroFill(this.minutes(), 2);\n });\n\n addFormatToken('Hmmss', 0, 0, function () {\n return (\n '' +\n this.hours() +\n zeroFill(this.minutes(), 2) +\n zeroFill(this.seconds(), 2)\n );\n });\n\n function 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\n meridiem('a', true);\n meridiem('A', false);\n\n // ALIASES\n\n addUnitAlias('hour', 'h');\n\n // PRIORITY\n addUnitPriority('hour', 13);\n\n // PARSING\n\n function matchMeridiem(isStrict, locale) {\n return locale._meridiemParse;\n }\n\n addRegexToken('a', matchMeridiem);\n addRegexToken('A', matchMeridiem);\n addRegexToken('H', match1to2);\n addRegexToken('h', match1to2);\n addRegexToken('k', match1to2);\n addRegexToken('HH', match1to2, match2);\n addRegexToken('hh', match1to2, match2);\n addRegexToken('kk', match1to2, match2);\n\n addRegexToken('hmm', match3to4);\n addRegexToken('hmmss', match5to6);\n addRegexToken('Hmm', match3to4);\n addRegexToken('Hmmss', match5to6);\n\n addParseToken(['H', 'HH'], HOUR);\n addParseToken(['k', 'kk'], function (input, array, config) {\n var kInput = toInt(input);\n array[HOUR] = kInput === 24 ? 0 : kInput;\n });\n addParseToken(['a', 'A'], function (input, array, config) {\n config._isPm = config._locale.isPM(input);\n config._meridiem = input;\n });\n addParseToken(['h', 'hh'], function (input, array, config) {\n array[HOUR] = toInt(input);\n getParsingFlags(config).bigHour = true;\n });\n addParseToken('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 });\n addParseToken('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 });\n addParseToken('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 });\n addParseToken('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\n function 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\n var 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\n function localeMeridiem(hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'pm' : 'PM';\n } else {\n return isLower ? 'am' : 'AM';\n }\n }\n\n var 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\n var locales = {},\n localeFamilies = {},\n globalLocale;\n\n function 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\n function 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\n function 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\n function 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.\n function 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\n function 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\n function 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\n function 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\n function listLocales() {\n return keys(locales);\n }\n\n function 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)\n var 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n hooks.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. Please refer to 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.\n function 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\n function 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]\n function 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\n function 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\n hooks.ISO_8601 = function () {};\n\n // constant that refers to the RFC 2822 form\n hooks.RFC_2822 = function () {};\n\n // date from string and format string\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function createLocal(input, format, locale, strict) {\n return createLocalOrUTC(input, format, locale, strict, false);\n }\n\n var 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.\n function 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?\n function min() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isBefore', args);\n }\n\n function max() {\n var args = [].slice.call(arguments, 0);\n\n return pickBy('isAfter', args);\n }\n\n var now = function () {\n return Date.now ? Date.now() : +new Date();\n };\n\n var ordering = [\n 'year',\n 'quarter',\n 'month',\n 'week',\n 'day',\n 'hour',\n 'minute',\n 'second',\n 'millisecond',\n ];\n\n function 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\n function isValid$1() {\n return this._isValid;\n }\n\n function createInvalid$1() {\n return createDuration(NaN);\n }\n\n function 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\n function isDuration(obj) {\n return obj instanceof Duration;\n }\n\n function 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\n function 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\n function 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\n offset('Z', ':');\n offset('ZZ', '');\n\n // PARSING\n\n addRegexToken('Z', matchShortOffset);\n addRegexToken('ZZ', matchShortOffset);\n addParseToken(['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']\n var chunkOffset = /([\\+\\-]|\\d\\d)/gi;\n\n function 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.\n function 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\n function 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.\n hooks.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.\n function 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\n function 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\n function setOffsetToUTC(keepLocalTime) {\n return this.utcOffset(0, keepLocalTime);\n }\n\n function 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\n function 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\n function 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\n function isDaylightSavingTime() {\n return (\n this.utcOffset() > this.clone().month(0).utcOffset() ||\n this.utcOffset() > this.clone().month(5).utcOffset()\n );\n }\n\n function 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\n function isLocal() {\n return this.isValid() ? !this._isUTC : false;\n }\n\n function isUtcOffset() {\n return this.isValid() ? this._isUTC : false;\n }\n\n function isUtc() {\n return this.isValid() ? this._isUTC && this._offset === 0 : false;\n }\n\n // ASP.NET json date format regex\n var 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\n function 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\n createDuration.fn = Duration.prototype;\n createDuration.invalid = createInvalid$1;\n\n function 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\n function 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\n function 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\n function 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\n function 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\n var add = createAdder(1, 'add'),\n subtract = createAdder(-1, 'subtract');\n\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function calendar$1(time, formats) {\n // Support for single parameter, formats only overload to the calendar function\n if (arguments.length === 1) {\n if (!arguments[0]) {\n time = undefined;\n formats = undefined;\n } else 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\n function clone() {\n return new Moment(this);\n }\n\n function 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\n function 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\n function 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\n function 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\n function isSameOrAfter(input, units) {\n return this.isSame(input, units) || this.isAfter(input, units);\n }\n\n function isSameOrBefore(input, units) {\n return this.isSame(input, units) || this.isBefore(input, units);\n }\n\n function 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\n function 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\n hooks.defaultFormat = 'YYYY-MM-DDTHH:mm:ssZ';\n hooks.defaultFormatUtc = 'YYYY-MM-DDTHH:mm:ss[Z]';\n\n function toString() {\n return this.clone().locale('en').format('ddd MMM DD YYYY HH:mm:ss [GMT]ZZ');\n }\n\n function 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 */\n function 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\n function 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\n function 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\n function fromNow(withoutSuffix) {\n return this.from(createLocal(), withoutSuffix);\n }\n\n function 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\n function 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.\n function 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\n var 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\n function localeData() {\n return this._locale;\n }\n\n var 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):\n function mod$1(dividend, divisor) {\n return ((dividend % divisor) + divisor) % divisor;\n }\n\n function 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\n function 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\n function 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\n function 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\n function valueOf() {\n return this._d.valueOf() - (this._offset || 0) * 60000;\n }\n\n function unix() {\n return Math.floor(this.valueOf() / 1000);\n }\n\n function toDate() {\n return new Date(this.valueOf());\n }\n\n function 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\n function 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\n function toJSON() {\n // new Date(NaN).toJSON() === null\n return this.isValid() ? this.toISOString() : null;\n }\n\n function isValid$2() {\n return isValid(this);\n }\n\n function parsingFlags() {\n return extend({}, getParsingFlags(this));\n }\n\n function invalidAt() {\n return getParsingFlags(this).overflow;\n }\n\n function 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\n addFormatToken('N', 0, 0, 'eraAbbr');\n addFormatToken('NN', 0, 0, 'eraAbbr');\n addFormatToken('NNN', 0, 0, 'eraAbbr');\n addFormatToken('NNNN', 0, 0, 'eraName');\n addFormatToken('NNNNN', 0, 0, 'eraNarrow');\n\n addFormatToken('y', ['y', 1], 'yo', 'eraYear');\n addFormatToken('y', ['yy', 2], 0, 'eraYear');\n addFormatToken('y', ['yyy', 3], 0, 'eraYear');\n addFormatToken('y', ['yyyy', 4], 0, 'eraYear');\n\n addRegexToken('N', matchEraAbbr);\n addRegexToken('NN', matchEraAbbr);\n addRegexToken('NNN', matchEraAbbr);\n addRegexToken('NNNN', matchEraName);\n addRegexToken('NNNNN', matchEraNarrow);\n\n addParseToken(['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\n addRegexToken('y', matchUnsigned);\n addRegexToken('yy', matchUnsigned);\n addRegexToken('yyy', matchUnsigned);\n addRegexToken('yyyy', matchUnsigned);\n addRegexToken('yo', matchEraYearOrdinal);\n\n addParseToken(['y', 'yy', 'yyy', 'yyyy'], YEAR);\n addParseToken(['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\n function 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\n function 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\n function 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\n function 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.clone().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\n function 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.clone().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\n function 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.clone().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\n function 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.clone().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\n function erasNameRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNameRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNameRegex : this._erasRegex;\n }\n\n function erasAbbrRegex(isStrict) {\n if (!hasOwnProp(this, '_erasAbbrRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasAbbrRegex : this._erasRegex;\n }\n\n function erasNarrowRegex(isStrict) {\n if (!hasOwnProp(this, '_erasNarrowRegex')) {\n computeErasParse.call(this);\n }\n return isStrict ? this._erasNarrowRegex : this._erasRegex;\n }\n\n function matchEraAbbr(isStrict, locale) {\n return locale.erasAbbrRegex(isStrict);\n }\n\n function matchEraName(isStrict, locale) {\n return locale.erasNameRegex(isStrict);\n }\n\n function matchEraNarrow(isStrict, locale) {\n return locale.erasNarrowRegex(isStrict);\n }\n\n function matchEraYearOrdinal(isStrict, locale) {\n return locale._eraYearOrdinalRegex || matchUnsigned;\n }\n\n function 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\n addFormatToken(0, ['gg', 2], 0, function () {\n return this.weekYear() % 100;\n });\n\n addFormatToken(0, ['GG', 2], 0, function () {\n return this.isoWeekYear() % 100;\n });\n\n function addWeekYearFormatToken(token, getter) {\n addFormatToken(0, [token, token.length], 0, getter);\n }\n\n addWeekYearFormatToken('gggg', 'weekYear');\n addWeekYearFormatToken('ggggg', 'weekYear');\n addWeekYearFormatToken('GGGG', 'isoWeekYear');\n addWeekYearFormatToken('GGGGG', 'isoWeekYear');\n\n // ALIASES\n\n addUnitAlias('weekYear', 'gg');\n addUnitAlias('isoWeekYear', 'GG');\n\n // PRIORITY\n\n addUnitPriority('weekYear', 1);\n addUnitPriority('isoWeekYear', 1);\n\n // PARSING\n\n addRegexToken('G', matchSigned);\n addRegexToken('g', matchSigned);\n addRegexToken('GG', match1to2, match2);\n addRegexToken('gg', match1to2, match2);\n addRegexToken('GGGG', match1to4, match4);\n addRegexToken('gggg', match1to4, match4);\n addRegexToken('GGGGG', match1to6, match6);\n addRegexToken('ggggg', match1to6, match6);\n\n addWeekParseToken(['gggg', 'ggggg', 'GGGG', 'GGGGG'], function (\n input,\n week,\n config,\n token\n ) {\n week[token.substr(0, 2)] = toInt(input);\n });\n\n addWeekParseToken(['gg', 'GG'], function (input, week, config, token) {\n week[token] = hooks.parseTwoDigitYear(input);\n });\n\n // MOMENTS\n\n function 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\n function getSetISOWeekYear(input) {\n return getSetWeekYearHelper.call(\n this,\n input,\n this.isoWeek(),\n this.isoWeekday(),\n 1,\n 4\n );\n }\n\n function getISOWeeksInYear() {\n return weeksInYear(this.year(), 1, 4);\n }\n\n function getISOWeeksInISOWeekYear() {\n return weeksInYear(this.isoWeekYear(), 1, 4);\n }\n\n function getWeeksInYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.year(), weekInfo.dow, weekInfo.doy);\n }\n\n function getWeeksInWeekYear() {\n var weekInfo = this.localeData()._week;\n return weeksInYear(this.weekYear(), weekInfo.dow, weekInfo.doy);\n }\n\n function 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\n function 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\n addFormatToken('Q', 0, 'Qo', 'quarter');\n\n // ALIASES\n\n addUnitAlias('quarter', 'Q');\n\n // PRIORITY\n\n addUnitPriority('quarter', 7);\n\n // PARSING\n\n addRegexToken('Q', match1);\n addParseToken('Q', function (input, array) {\n array[MONTH] = (toInt(input) - 1) * 3;\n });\n\n // MOMENTS\n\n function 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\n addFormatToken('D', ['DD', 2], 'Do', 'date');\n\n // ALIASES\n\n addUnitAlias('date', 'D');\n\n // PRIORITY\n addUnitPriority('date', 9);\n\n // PARSING\n\n addRegexToken('D', match1to2);\n addRegexToken('DD', match1to2, match2);\n addRegexToken('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\n addParseToken(['D', 'DD'], DATE);\n addParseToken('Do', function (input, array) {\n array[DATE] = toInt(input.match(match1to2)[0]);\n });\n\n // MOMENTS\n\n var getSetDayOfMonth = makeGetSet('Date', true);\n\n // FORMATTING\n\n addFormatToken('DDD', ['DDDD', 3], 'DDDo', 'dayOfYear');\n\n // ALIASES\n\n addUnitAlias('dayOfYear', 'DDD');\n\n // PRIORITY\n addUnitPriority('dayOfYear', 4);\n\n // PARSING\n\n addRegexToken('DDD', match1to3);\n addRegexToken('DDDD', match3);\n addParseToken(['DDD', 'DDDD'], function (input, array, config) {\n config._dayOfYear = toInt(input);\n });\n\n // HELPERS\n\n // MOMENTS\n\n function 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\n addFormatToken('m', ['mm', 2], 0, 'minute');\n\n // ALIASES\n\n addUnitAlias('minute', 'm');\n\n // PRIORITY\n\n addUnitPriority('minute', 14);\n\n // PARSING\n\n addRegexToken('m', match1to2);\n addRegexToken('mm', match1to2, match2);\n addParseToken(['m', 'mm'], MINUTE);\n\n // MOMENTS\n\n var getSetMinute = makeGetSet('Minutes', false);\n\n // FORMATTING\n\n addFormatToken('s', ['ss', 2], 0, 'second');\n\n // ALIASES\n\n addUnitAlias('second', 's');\n\n // PRIORITY\n\n addUnitPriority('second', 15);\n\n // PARSING\n\n addRegexToken('s', match1to2);\n addRegexToken('ss', match1to2, match2);\n addParseToken(['s', 'ss'], SECOND);\n\n // MOMENTS\n\n var getSetSecond = makeGetSet('Seconds', false);\n\n // FORMATTING\n\n addFormatToken('S', 0, 0, function () {\n return ~~(this.millisecond() / 100);\n });\n\n addFormatToken(0, ['SS', 2], 0, function () {\n return ~~(this.millisecond() / 10);\n });\n\n addFormatToken(0, ['SSS', 3], 0, 'millisecond');\n addFormatToken(0, ['SSSS', 4], 0, function () {\n return this.millisecond() * 10;\n });\n addFormatToken(0, ['SSSSS', 5], 0, function () {\n return this.millisecond() * 100;\n });\n addFormatToken(0, ['SSSSSS', 6], 0, function () {\n return this.millisecond() * 1000;\n });\n addFormatToken(0, ['SSSSSSS', 7], 0, function () {\n return this.millisecond() * 10000;\n });\n addFormatToken(0, ['SSSSSSSS', 8], 0, function () {\n return this.millisecond() * 100000;\n });\n addFormatToken(0, ['SSSSSSSSS', 9], 0, function () {\n return this.millisecond() * 1000000;\n });\n\n // ALIASES\n\n addUnitAlias('millisecond', 'ms');\n\n // PRIORITY\n\n addUnitPriority('millisecond', 16);\n\n // PARSING\n\n addRegexToken('S', match1to3, match1);\n addRegexToken('SS', match1to3, match2);\n addRegexToken('SSS', match1to3, match3);\n\n var token, getSetMillisecond;\n for (token = 'SSSS'; token.length <= 9; token += 'S') {\n addRegexToken(token, matchUnsigned);\n }\n\n function parseMs(input, array) {\n array[MILLISECOND] = toInt(('0.' + input) * 1000);\n }\n\n for (token = 'S'; token.length <= 9; token += 'S') {\n addParseToken(token, parseMs);\n }\n\n getSetMillisecond = makeGetSet('Milliseconds', false);\n\n // FORMATTING\n\n addFormatToken('z', 0, 0, 'zoneAbbr');\n addFormatToken('zz', 0, 0, 'zoneName');\n\n // MOMENTS\n\n function getZoneAbbr() {\n return this._isUTC ? 'UTC' : '';\n }\n\n function getZoneName() {\n return this._isUTC ? 'Coordinated Universal Time' : '';\n }\n\n var proto = Moment.prototype;\n\n proto.add = add;\n proto.calendar = calendar$1;\n proto.clone = clone;\n proto.diff = diff;\n proto.endOf = endOf;\n proto.format = format;\n proto.from = from;\n proto.fromNow = fromNow;\n proto.to = to;\n proto.toNow = toNow;\n proto.get = stringGet;\n proto.invalidAt = invalidAt;\n proto.isAfter = isAfter;\n proto.isBefore = isBefore;\n proto.isBetween = isBetween;\n proto.isSame = isSame;\n proto.isSameOrAfter = isSameOrAfter;\n proto.isSameOrBefore = isSameOrBefore;\n proto.isValid = isValid$2;\n proto.lang = lang;\n proto.locale = locale;\n proto.localeData = localeData;\n proto.max = prototypeMax;\n proto.min = prototypeMin;\n proto.parsingFlags = parsingFlags;\n proto.set = stringSet;\n proto.startOf = startOf;\n proto.subtract = subtract;\n proto.toArray = toArray;\n proto.toObject = toObject;\n proto.toDate = toDate;\n proto.toISOString = toISOString;\n proto.inspect = inspect;\n if (typeof Symbol !== 'undefined' && Symbol.for != null) {\n proto[Symbol.for('nodejs.util.inspect.custom')] = function () {\n return 'Moment<' + this.format() + '>';\n };\n }\n proto.toJSON = toJSON;\n proto.toString = toString;\n proto.unix = unix;\n proto.valueOf = valueOf;\n proto.creationData = creationData;\n proto.eraName = getEraName;\n proto.eraNarrow = getEraNarrow;\n proto.eraAbbr = getEraAbbr;\n proto.eraYear = getEraYear;\n proto.year = getSetYear;\n proto.isLeapYear = getIsLeapYear;\n proto.weekYear = getSetWeekYear;\n proto.isoWeekYear = getSetISOWeekYear;\n proto.quarter = proto.quarters = getSetQuarter;\n proto.month = getSetMonth;\n proto.daysInMonth = getDaysInMonth;\n proto.week = proto.weeks = getSetWeek;\n proto.isoWeek = proto.isoWeeks = getSetISOWeek;\n proto.weeksInYear = getWeeksInYear;\n proto.weeksInWeekYear = getWeeksInWeekYear;\n proto.isoWeeksInYear = getISOWeeksInYear;\n proto.isoWeeksInISOWeekYear = getISOWeeksInISOWeekYear;\n proto.date = getSetDayOfMonth;\n proto.day = proto.days = getSetDayOfWeek;\n proto.weekday = getSetLocaleDayOfWeek;\n proto.isoWeekday = getSetISODayOfWeek;\n proto.dayOfYear = getSetDayOfYear;\n proto.hour = proto.hours = getSetHour;\n proto.minute = proto.minutes = getSetMinute;\n proto.second = proto.seconds = getSetSecond;\n proto.millisecond = proto.milliseconds = getSetMillisecond;\n proto.utcOffset = getSetOffset;\n proto.utc = setOffsetToUTC;\n proto.local = setOffsetToLocal;\n proto.parseZone = setOffsetToParsedOffset;\n proto.hasAlignedHourOffset = hasAlignedHourOffset;\n proto.isDST = isDaylightSavingTime;\n proto.isLocal = isLocal;\n proto.isUtcOffset = isUtcOffset;\n proto.isUtc = isUtc;\n proto.isUTC = isUtc;\n proto.zoneAbbr = getZoneAbbr;\n proto.zoneName = getZoneName;\n proto.dates = deprecate(\n 'dates accessor is deprecated. Use date instead.',\n getSetDayOfMonth\n );\n proto.months = deprecate(\n 'months accessor is deprecated. Use month instead',\n getSetMonth\n );\n proto.years = deprecate(\n 'years accessor is deprecated. Use year instead',\n getSetYear\n );\n proto.zone = deprecate(\n 'moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/',\n getSetZone\n );\n proto.isDSTShifted = deprecate(\n 'isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information',\n isDaylightSavingTimeShifted\n );\n\n function createUnix(input) {\n return createLocal(input * 1000);\n }\n\n function createInZone() {\n return createLocal.apply(null, arguments).parseZone();\n }\n\n function preParsePostFormat(string) {\n return string;\n }\n\n var proto$1 = Locale.prototype;\n\n proto$1.calendar = calendar;\n proto$1.longDateFormat = longDateFormat;\n proto$1.invalidDate = invalidDate;\n proto$1.ordinal = ordinal;\n proto$1.preparse = preParsePostFormat;\n proto$1.postformat = preParsePostFormat;\n proto$1.relativeTime = relativeTime;\n proto$1.pastFuture = pastFuture;\n proto$1.set = set;\n proto$1.eras = localeEras;\n proto$1.erasParse = localeErasParse;\n proto$1.erasConvertYear = localeErasConvertYear;\n proto$1.erasAbbrRegex = erasAbbrRegex;\n proto$1.erasNameRegex = erasNameRegex;\n proto$1.erasNarrowRegex = erasNarrowRegex;\n\n proto$1.months = localeMonths;\n proto$1.monthsShort = localeMonthsShort;\n proto$1.monthsParse = localeMonthsParse;\n proto$1.monthsRegex = monthsRegex;\n proto$1.monthsShortRegex = monthsShortRegex;\n proto$1.week = localeWeek;\n proto$1.firstDayOfYear = localeFirstDayOfYear;\n proto$1.firstDayOfWeek = localeFirstDayOfWeek;\n\n proto$1.weekdays = localeWeekdays;\n proto$1.weekdaysMin = localeWeekdaysMin;\n proto$1.weekdaysShort = localeWeekdaysShort;\n proto$1.weekdaysParse = localeWeekdaysParse;\n\n proto$1.weekdaysRegex = weekdaysRegex;\n proto$1.weekdaysShortRegex = weekdaysShortRegex;\n proto$1.weekdaysMinRegex = weekdaysMinRegex;\n\n proto$1.isPM = localeIsPM;\n proto$1.meridiem = localeMeridiem;\n\n function get$1(format, index, field, setter) {\n var locale = getLocale(),\n utc = createUTC().set(setter, index);\n return locale[field](utc, format);\n }\n\n function 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)\n function 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\n function listMonths(format, index) {\n return listMonthsImpl(format, index, 'months');\n }\n\n function listMonthsShort(format, index) {\n return listMonthsImpl(format, index, 'monthsShort');\n }\n\n function listWeekdays(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdays');\n }\n\n function listWeekdaysShort(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysShort');\n }\n\n function listWeekdaysMin(localeSorted, format, index) {\n return listWeekdaysImpl(localeSorted, format, index, 'weekdaysMin');\n }\n\n getSetGlobalLocale('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\n hooks.lang = deprecate(\n 'moment.lang is deprecated. Use moment.locale instead.',\n getSetGlobalLocale\n );\n hooks.langData = deprecate(\n 'moment.langData is deprecated. Use moment.localeData instead.',\n getLocale\n );\n\n var mathAbs = Math.abs;\n\n function 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\n function 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)\n function 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)\n function subtract$1(input, value) {\n return addSubtract$1(this, input, value, -1);\n }\n\n function absCeil(number) {\n if (number < 0) {\n return Math.floor(number);\n } else {\n return Math.ceil(number);\n }\n }\n\n function 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\n function 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\n function monthsToDays(months) {\n // the reverse of daysToMonths\n return (months * 146097) / 4800;\n }\n\n function 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')?\n function 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\n function makeAs(alias) {\n return function () {\n return this.as(alias);\n };\n }\n\n var 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\n function clone$1() {\n return createDuration(this);\n }\n\n function get$2(units) {\n units = normalizeUnits(units);\n return this.isValid() ? this[units + 's']() : NaN;\n }\n\n function makeGetter(name) {\n return function () {\n return this.isValid() ? this._data[name] : NaN;\n };\n }\n\n var 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\n function weeks() {\n return absFloor(this.days() / 7);\n }\n\n var 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\n function substituteTimeAgo(string, number, withoutSuffix, isFuture, locale) {\n return locale.relativeTime(number || 1, !!withoutSuffix, string, isFuture);\n }\n\n function 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\n function 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\n function 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\n function 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\n var abs$1 = Math.abs;\n\n function sign(x) {\n return (x > 0) - (x < 0) || +x;\n }\n\n function 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\n var proto$2 = Duration.prototype;\n\n proto$2.isValid = isValid$1;\n proto$2.abs = abs;\n proto$2.add = add$1;\n proto$2.subtract = subtract$1;\n proto$2.as = as;\n proto$2.asMilliseconds = asMilliseconds;\n proto$2.asSeconds = asSeconds;\n proto$2.asMinutes = asMinutes;\n proto$2.asHours = asHours;\n proto$2.asDays = asDays;\n proto$2.asWeeks = asWeeks;\n proto$2.asMonths = asMonths;\n proto$2.asQuarters = asQuarters;\n proto$2.asYears = asYears;\n proto$2.valueOf = valueOf$1;\n proto$2._bubble = bubble;\n proto$2.clone = clone$1;\n proto$2.get = get$2;\n proto$2.milliseconds = milliseconds;\n proto$2.seconds = seconds;\n proto$2.minutes = minutes;\n proto$2.hours = hours;\n proto$2.days = days;\n proto$2.weeks = weeks;\n proto$2.months = months;\n proto$2.years = years;\n proto$2.humanize = humanize;\n proto$2.toISOString = toISOString$1;\n proto$2.toString = toISOString$1;\n proto$2.toJSON = toISOString$1;\n proto$2.locale = locale;\n proto$2.localeData = localeData;\n\n proto$2.toIsoString = deprecate(\n 'toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)',\n toISOString$1\n );\n proto$2.lang = lang;\n\n // FORMATTING\n\n addFormatToken('X', 0, 0, 'unix');\n addFormatToken('x', 0, 0, 'valueOf');\n\n // PARSING\n\n addRegexToken('x', matchSigned);\n addRegexToken('X', matchTimestamp);\n addParseToken('X', function (input, array, config) {\n config._d = new Date(parseFloat(input) * 1000);\n });\n addParseToken('x', function (input, array, config) {\n config._d = new Date(toInt(input));\n });\n\n //! moment.js\n\n hooks.version = '2.29.1';\n\n setHookCallback(createLocal);\n\n hooks.fn = proto;\n hooks.min = min;\n hooks.max = max;\n hooks.now = now;\n hooks.utc = createUTC;\n hooks.unix = createUnix;\n hooks.months = listMonths;\n hooks.isDate = isDate;\n hooks.locale = getSetGlobalLocale;\n hooks.invalid = createInvalid;\n hooks.duration = createDuration;\n hooks.isMoment = isMoment;\n hooks.weekdays = listWeekdays;\n hooks.parseZone = createInZone;\n hooks.localeData = getLocale;\n hooks.isDuration = isDuration;\n hooks.monthsShort = listMonthsShort;\n hooks.weekdaysMin = listWeekdaysMin;\n hooks.defineLocale = defineLocale;\n hooks.updateLocale = updateLocale;\n hooks.locales = listLocales;\n hooks.weekdaysShort = listWeekdaysShort;\n hooks.normalizeUnits = normalizeUnits;\n hooks.relativeTimeRounding = getSetRelativeTimeRounding;\n hooks.relativeTimeThreshold = getSetRelativeTimeThreshold;\n hooks.calendarFormat = getCalendarFormat;\n hooks.prototype = proto;\n\n // currently HTML5 input type only supports 24-hour formats\n hooks.HTML5_FMT = {\n DATETIME_LOCAL: 'YYYY-MM-DDTHH:mm', // \n DATETIME_LOCAL_SECONDS: 'YYYY-MM-DDTHH:mm:ss', // \n DATETIME_LOCAL_MS: 'YYYY-MM-DDTHH:mm:ss.SSS', // \n DATE: 'YYYY-MM-DD', // \n TIME: 'HH:mm', // \n TIME_SECONDS: 'HH:mm:ss', // \n TIME_MS: 'HH:mm:ss.SSS', // \n WEEK: 'GGGG-[W]WW', // \n MONTH: 'YYYY-MM', // \n };\n\n //! moment.js locale configuration\n\n hooks.defineLocale('af', {\n months: 'Januarie_Februarie_Maart_April_Mei_Junie_Julie_Augustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mrt_Apr_Mei_Jun_Jul_Aug_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Sondag_Maandag_Dinsdag_Woensdag_Donderdag_Vrydag_Saterdag'.split(\n '_'\n ),\n weekdaysShort: 'Son_Maa_Din_Woe_Don_Vry_Sat'.split('_'),\n weekdaysMin: 'So_Ma_Di_Wo_Do_Vr_Sa'.split('_'),\n meridiemParse: /vm|nm/i,\n isPM: function (input) {\n return /^nm$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'vm' : 'VM';\n } else {\n return isLower ? 'nm' : 'NM';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Vandag om] LT',\n nextDay: '[MĆ“re om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[Gister om] LT',\n lastWeek: '[Laas] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oor %s',\n past: '%s gelede',\n s: \"'n paar sekondes\",\n ss: '%d sekondes',\n m: \"'n minuut\",\n mm: '%d minute',\n h: \"'n uur\",\n hh: '%d ure',\n d: \"'n dag\",\n dd: '%d dae',\n M: \"'n maand\",\n MM: '%d maande',\n y: \"'n jaar\",\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n ); // Thanks to Joris Rƶling : https://github.com/jjupiter\n },\n week: {\n dow: 1, // Maandag is die eerste dag van die week.\n doy: 4, // Die week wat die 4de Januarie bevat is die eerste week van die jaar.\n },\n });\n\n //! moment.js locale configuration\n\n var pluralForm = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals = {\n s: [\n 'أقل من Ų«Ų§Ł†ŁŠŲ©',\n 'Ų«Ų§Ł†ŁŠŲ© واحدة',\n ['Ų«Ų§Ł†ŁŠŲŖŲ§Ł†', 'Ų«Ų§Ł†ŁŠŲŖŁŠŁ†'],\n '%d Ų«ŁˆŲ§Ł†',\n '%d Ų«Ų§Ł†ŁŠŲ©',\n '%d Ų«Ų§Ł†ŁŠŲ©',\n ],\n m: [\n 'أقل من ŲÆŁ‚ŁŠŁ‚Ų©',\n 'ŲÆŁ‚ŁŠŁ‚Ų© واحدة',\n ['ŲÆŁ‚ŁŠŁ‚ŲŖŲ§Ł†', 'ŲÆŁ‚ŁŠŁ‚ŲŖŁŠŁ†'],\n '%d دقائق',\n '%d ŲÆŁ‚ŁŠŁ‚Ų©',\n '%d ŲÆŁ‚ŁŠŁ‚Ų©',\n ],\n h: [\n 'أقل من Ų³Ų§Ų¹Ų©',\n 'Ų³Ų§Ų¹Ų© واحدة',\n ['ساعتان', 'Ų³Ų§Ų¹ŲŖŁŠŁ†'],\n '%d Ų³Ų§Ų¹Ų§ŲŖ',\n '%d Ų³Ų§Ų¹Ų©',\n '%d Ų³Ų§Ų¹Ų©',\n ],\n d: [\n 'أقل من ŁŠŁˆŁ…',\n 'ŁŠŁˆŁ… واحد',\n ['ŁŠŁˆŁ…Ų§Ł†', 'ŁŠŁˆŁ…ŁŠŁ†'],\n '%d Ų£ŁŠŲ§Ł…',\n '%d ŁŠŁˆŁ…Ł‹Ų§',\n '%d ŁŠŁˆŁ…',\n ],\n M: [\n 'أقل من ؓهر',\n 'ؓهر واحد',\n ['ؓهران', 'Ų“Ł‡Ų±ŁŠŁ†'],\n '%d أؓهر',\n '%d ؓهرا',\n '%d ؓهر',\n ],\n y: [\n 'أقل من Ų¹Ų§Ł…',\n 'Ų¹Ų§Ł… واحد',\n ['عامان', 'Ų¹Ų§Ł…ŁŠŁ†'],\n '%d Ų£Ų¹ŁˆŲ§Ł…',\n '%d عامًا',\n '%d Ų¹Ų§Ł…',\n ],\n },\n pluralize = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm(number),\n str = plurals[u][pluralForm(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months$1 = [\n 'Ų¬Ų§Ł†ŁŁŠ',\n 'فيفري',\n 'Ł…Ų§Ų±Ų³',\n 'Ų£ŁŲ±ŁŠŁ„',\n 'Ł…Ų§ŁŠ',\n 'Ų¬ŁˆŲ§Ł†',\n 'Ų¬ŁˆŁŠŁ„ŁŠŲ©',\n 'أوت',\n 'Ų³ŲØŲŖŁ…ŲØŲ±',\n 'أكتوبر',\n 'Ł†ŁˆŁŁ…ŲØŲ±',\n 'ŲÆŁŠŲ³Ł…ŲØŲ±',\n ];\n\n hooks.defineLocale('ar-dz', {\n months: months$1,\n monthsShort: months$1,\n weekdays: 'الأحد_Ų§Ł„Ų„Ų«Ł†ŁŠŁ†_الثلاثاؔ_الأربعاؔ_Ų§Ł„Ų®Ł…ŁŠŲ³_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ų£Ų­ŲÆ_Ų„Ų«Ł†ŁŠŁ†_ثلاثاؔ_Ų£Ų±ŲØŲ¹Ų§Ų”_Ų®Ł…ŁŠŲ³_جمعة_Ų³ŲØŲŖ'.split('_'),\n weekdaysMin: 'Ų­_ن_Ų«_Ų±_Ų®_Ų¬_Ų³'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /Ųµ|Ł…/,\n isPM: function (input) {\n return 'Ł…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Ųµ';\n } else {\n return 'Ł…';\n }\n },\n calendar: {\n sameDay: '[Ų§Ł„ŁŠŁˆŁ… عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ŲØŲ¹ŲÆ %s',\n past: 'منذ %s',\n s: pluralize('s'),\n ss: pluralize('s'),\n m: pluralize('m'),\n mm: pluralize('m'),\n h: pluralize('h'),\n hh: pluralize('h'),\n d: pluralize('d'),\n dd: pluralize('d'),\n M: pluralize('M'),\n MM: pluralize('M'),\n y: pluralize('y'),\n yy: pluralize('y'),\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ar-kw', {\n months: 'ŁŠŁ†Ų§ŁŠŲ±_فبراير_Ł…Ų§Ų±Ų³_Ų£ŲØŲ±ŁŠŁ„_Ł…Ų§ŁŠ_ŁŠŁˆŁ†ŁŠŁˆ_ŁŠŁˆŁ„ŁŠŁˆŲ²_ŲŗŲ“ŲŖ_ؓتنبر_أكتوبر_Ł†ŁˆŁ†ŲØŲ±_دجنبر'.split(\n '_'\n ),\n monthsShort: 'ŁŠŁ†Ų§ŁŠŲ±_فبراير_Ł…Ų§Ų±Ų³_Ų£ŲØŲ±ŁŠŁ„_Ł…Ų§ŁŠ_ŁŠŁˆŁ†ŁŠŁˆ_ŁŠŁˆŁ„ŁŠŁˆŲ²_ŲŗŲ“ŲŖ_ؓتنبر_أكتوبر_Ł†ŁˆŁ†ŲØŲ±_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_Ų§Ł„Ų„ŲŖŁ†ŁŠŁ†_الثلاثاؔ_الأربعاؔ_Ų§Ł„Ų®Ł…ŁŠŲ³_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ų§Ų­ŲÆ_Ų§ŲŖŁ†ŁŠŁ†_ثلاثاؔ_Ų§Ų±ŲØŲ¹Ų§Ų”_Ų®Ł…ŁŠŲ³_جمعة_Ų³ŲØŲŖ'.split('_'),\n weekdaysMin: 'Ų­_ن_Ų«_Ų±_Ų®_Ų¬_Ų³'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ų§Ł„ŁŠŁˆŁ… على الساعة] LT',\n nextDay: '[ŲŗŲÆŲ§ على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'Ų«ŁˆŲ§Ł†',\n ss: '%d Ų«Ų§Ł†ŁŠŲ©',\n m: 'ŲÆŁ‚ŁŠŁ‚Ų©',\n mm: '%d دقائق',\n h: 'Ų³Ų§Ų¹Ų©',\n hh: '%d Ų³Ų§Ų¹Ų§ŲŖ',\n d: 'ŁŠŁˆŁ…',\n dd: '%d Ų£ŁŠŲ§Ł…',\n M: 'ؓهر',\n MM: '%d أؓهر',\n y: 'سنة',\n yy: '%d Ų³Ł†ŁˆŲ§ŲŖ',\n },\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap = {\n 1: '1',\n 2: '2',\n 3: '3',\n 4: '4',\n 5: '5',\n 6: '6',\n 7: '7',\n 8: '8',\n 9: '9',\n 0: '0',\n },\n pluralForm$1 = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals$1 = {\n s: [\n 'أقل من Ų«Ų§Ł†ŁŠŲ©',\n 'Ų«Ų§Ł†ŁŠŲ© واحدة',\n ['Ų«Ų§Ł†ŁŠŲŖŲ§Ł†', 'Ų«Ų§Ł†ŁŠŲŖŁŠŁ†'],\n '%d Ų«ŁˆŲ§Ł†',\n '%d Ų«Ų§Ł†ŁŠŲ©',\n '%d Ų«Ų§Ł†ŁŠŲ©',\n ],\n m: [\n 'أقل من ŲÆŁ‚ŁŠŁ‚Ų©',\n 'ŲÆŁ‚ŁŠŁ‚Ų© واحدة',\n ['ŲÆŁ‚ŁŠŁ‚ŲŖŲ§Ł†', 'ŲÆŁ‚ŁŠŁ‚ŲŖŁŠŁ†'],\n '%d دقائق',\n '%d ŲÆŁ‚ŁŠŁ‚Ų©',\n '%d ŲÆŁ‚ŁŠŁ‚Ų©',\n ],\n h: [\n 'أقل من Ų³Ų§Ų¹Ų©',\n 'Ų³Ų§Ų¹Ų© واحدة',\n ['ساعتان', 'Ų³Ų§Ų¹ŲŖŁŠŁ†'],\n '%d Ų³Ų§Ų¹Ų§ŲŖ',\n '%d Ų³Ų§Ų¹Ų©',\n '%d Ų³Ų§Ų¹Ų©',\n ],\n d: [\n 'أقل من ŁŠŁˆŁ…',\n 'ŁŠŁˆŁ… واحد',\n ['ŁŠŁˆŁ…Ų§Ł†', 'ŁŠŁˆŁ…ŁŠŁ†'],\n '%d Ų£ŁŠŲ§Ł…',\n '%d ŁŠŁˆŁ…Ł‹Ų§',\n '%d ŁŠŁˆŁ…',\n ],\n M: [\n 'أقل من ؓهر',\n 'ؓهر واحد',\n ['ؓهران', 'Ų“Ł‡Ų±ŁŠŁ†'],\n '%d أؓهر',\n '%d ؓهرا',\n '%d ؓهر',\n ],\n y: [\n 'أقل من Ų¹Ų§Ł…',\n 'Ų¹Ų§Ł… واحد',\n ['عامان', 'Ų¹Ų§Ł…ŁŠŁ†'],\n '%d Ų£Ų¹ŁˆŲ§Ł…',\n '%d عامًا',\n '%d Ų¹Ų§Ł…',\n ],\n },\n pluralize$1 = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm$1(number),\n str = plurals$1[u][pluralForm$1(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months$2 = [\n 'ŁŠŁ†Ų§ŁŠŲ±',\n 'فبراير',\n 'Ł…Ų§Ų±Ų³',\n 'Ų£ŲØŲ±ŁŠŁ„',\n 'Ł…Ų§ŁŠŁˆ',\n 'ŁŠŁˆŁ†ŁŠŁˆ',\n 'ŁŠŁˆŁ„ŁŠŁˆ',\n 'Ų£ŲŗŲ³Ų·Ų³',\n 'Ų³ŲØŲŖŁ…ŲØŲ±',\n 'أكتوبر',\n 'Ł†ŁˆŁŁ…ŲØŲ±',\n 'ŲÆŁŠŲ³Ł…ŲØŲ±',\n ];\n\n hooks.defineLocale('ar-ly', {\n months: months$2,\n monthsShort: months$2,\n weekdays: 'الأحد_Ų§Ł„Ų„Ų«Ł†ŁŠŁ†_الثلاثاؔ_الأربعاؔ_Ų§Ł„Ų®Ł…ŁŠŲ³_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ų£Ų­ŲÆ_Ų„Ų«Ł†ŁŠŁ†_ثلاثاؔ_Ų£Ų±ŲØŲ¹Ų§Ų”_Ų®Ł…ŁŠŲ³_جمعة_Ų³ŲØŲŖ'.split('_'),\n weekdaysMin: 'Ų­_ن_Ų«_Ų±_Ų®_Ų¬_Ų³'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /Ųµ|Ł…/,\n isPM: function (input) {\n return 'Ł…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Ųµ';\n } else {\n return 'Ł…';\n }\n },\n calendar: {\n sameDay: '[Ų§Ł„ŁŠŁˆŁ… عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ŲØŲ¹ŲÆ %s',\n past: 'منذ %s',\n s: pluralize$1('s'),\n ss: pluralize$1('s'),\n m: pluralize$1('m'),\n mm: pluralize$1('m'),\n h: pluralize$1('h'),\n hh: pluralize$1('h'),\n d: pluralize$1('d'),\n dd: pluralize$1('d'),\n M: pluralize$1('M'),\n MM: pluralize$1('M'),\n y: pluralize$1('y'),\n yy: pluralize$1('y'),\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ar-ma', {\n months: 'ŁŠŁ†Ų§ŁŠŲ±_فبراير_Ł…Ų§Ų±Ų³_Ų£ŲØŲ±ŁŠŁ„_Ł…Ų§ŁŠ_ŁŠŁˆŁ†ŁŠŁˆ_ŁŠŁˆŁ„ŁŠŁˆŲ²_ŲŗŲ“ŲŖ_ؓتنبر_أكتوبر_Ł†ŁˆŁ†ŲØŲ±_دجنبر'.split(\n '_'\n ),\n monthsShort: 'ŁŠŁ†Ų§ŁŠŲ±_فبراير_Ł…Ų§Ų±Ų³_Ų£ŲØŲ±ŁŠŁ„_Ł…Ų§ŁŠ_ŁŠŁˆŁ†ŁŠŁˆ_ŁŠŁˆŁ„ŁŠŁˆŲ²_ŲŗŲ“ŲŖ_ؓتنبر_أكتوبر_Ł†ŁˆŁ†ŲØŲ±_دجنبر'.split(\n '_'\n ),\n weekdays: 'الأحد_Ų§Ł„Ų„Ų«Ł†ŁŠŁ†_الثلاثاؔ_الأربعاؔ_Ų§Ł„Ų®Ł…ŁŠŲ³_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ų§Ų­ŲÆ_Ų§Ų«Ł†ŁŠŁ†_ثلاثاؔ_Ų§Ų±ŲØŲ¹Ų§Ų”_Ų®Ł…ŁŠŲ³_جمعة_Ų³ŲØŲŖ'.split('_'),\n weekdaysMin: 'Ų­_ن_Ų«_Ų±_Ų®_Ų¬_Ų³'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ų§Ł„ŁŠŁˆŁ… على الساعة] LT',\n nextDay: '[ŲŗŲÆŲ§ على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'Ų«ŁˆŲ§Ł†',\n ss: '%d Ų«Ų§Ł†ŁŠŲ©',\n m: 'ŲÆŁ‚ŁŠŁ‚Ų©',\n mm: '%d دقائق',\n h: 'Ų³Ų§Ų¹Ų©',\n hh: '%d Ų³Ų§Ų¹Ų§ŲŖ',\n d: 'ŁŠŁˆŁ…',\n dd: '%d Ų£ŁŠŲ§Ł…',\n M: 'ؓهر',\n MM: '%d أؓهر',\n y: 'سنة',\n yy: '%d Ų³Ł†ŁˆŲ§ŲŖ',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$1 = {\n 1: 'Ł”',\n 2: 'Ł¢',\n 3: 'Ł£',\n 4: '٤',\n 5: 'Ł„',\n 6: '٦',\n 7: '٧',\n 8: 'ŁØ',\n 9: 'Ł©',\n 0: 'Ł ',\n },\n numberMap = {\n 'Ł”': '1',\n 'Ł¢': '2',\n 'Ł£': '3',\n '٤': '4',\n 'Ł„': '5',\n '٦': '6',\n '٧': '7',\n 'ŁØ': '8',\n 'Ł©': '9',\n 'Ł ': '0',\n };\n\n hooks.defineLocale('ar-sa', {\n months: 'ŁŠŁ†Ų§ŁŠŲ±_فبراير_Ł…Ų§Ų±Ų³_Ų£ŲØŲ±ŁŠŁ„_Ł…Ų§ŁŠŁˆ_ŁŠŁˆŁ†ŁŠŁˆ_ŁŠŁˆŁ„ŁŠŁˆ_Ų£ŲŗŲ³Ų·Ų³_Ų³ŲØŲŖŁ…ŲØŲ±_أكتوبر_Ł†ŁˆŁŁ…ŲØŲ±_ŲÆŁŠŲ³Ł…ŲØŲ±'.split(\n '_'\n ),\n monthsShort: 'ŁŠŁ†Ų§ŁŠŲ±_فبراير_Ł…Ų§Ų±Ų³_Ų£ŲØŲ±ŁŠŁ„_Ł…Ų§ŁŠŁˆ_ŁŠŁˆŁ†ŁŠŁˆ_ŁŠŁˆŁ„ŁŠŁˆ_Ų£ŲŗŲ³Ų·Ų³_Ų³ŲØŲŖŁ…ŲØŲ±_أكتوبر_Ł†ŁˆŁŁ…ŲØŲ±_ŲÆŁŠŲ³Ł…ŲØŲ±'.split(\n '_'\n ),\n weekdays: 'الأحد_Ų§Ł„Ų„Ų«Ł†ŁŠŁ†_الثلاثاؔ_الأربعاؔ_Ų§Ł„Ų®Ł…ŁŠŲ³_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ų£Ų­ŲÆ_Ų„Ų«Ł†ŁŠŁ†_ثلاثاؔ_Ų£Ų±ŲØŲ¹Ų§Ų”_Ų®Ł…ŁŠŲ³_جمعة_Ų³ŲØŲŖ'.split('_'),\n weekdaysMin: 'Ų­_ن_Ų«_Ų±_Ų®_Ų¬_Ų³'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /Ųµ|Ł…/,\n isPM: function (input) {\n return 'Ł…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Ųµ';\n } else {\n return 'Ł…';\n }\n },\n calendar: {\n sameDay: '[Ų§Ł„ŁŠŁˆŁ… على الساعة] LT',\n nextDay: '[ŲŗŲÆŲ§ على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'Ų«ŁˆŲ§Ł†',\n ss: '%d Ų«Ų§Ł†ŁŠŲ©',\n m: 'ŲÆŁ‚ŁŠŁ‚Ų©',\n mm: '%d دقائق',\n h: 'Ų³Ų§Ų¹Ų©',\n hh: '%d Ų³Ų§Ų¹Ų§ŲŖ',\n d: 'ŁŠŁˆŁ…',\n dd: '%d Ų£ŁŠŲ§Ł…',\n M: 'ؓهر',\n MM: '%d أؓهر',\n y: 'سنة',\n yy: '%d Ų³Ł†ŁˆŲ§ŲŖ',\n },\n preparse: function (string) {\n return string\n .replace(/[ٔ٢٣٤ل٦٧٨٩٠]/g, function (match) {\n return numberMap[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$1[match];\n })\n .replace(/,/g, '،');\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ar-tn', {\n months: 'Ų¬Ų§Ł†ŁŁŠ_فيفري_Ł…Ų§Ų±Ų³_Ų£ŁŲ±ŁŠŁ„_Ł…Ų§ŁŠ_Ų¬ŁˆŲ§Ł†_Ų¬ŁˆŁŠŁ„ŁŠŲ©_أوت_Ų³ŲØŲŖŁ…ŲØŲ±_أكتوبر_Ł†ŁˆŁŁ…ŲØŲ±_ŲÆŁŠŲ³Ł…ŲØŲ±'.split(\n '_'\n ),\n monthsShort: 'Ų¬Ų§Ł†ŁŁŠ_فيفري_Ł…Ų§Ų±Ų³_Ų£ŁŲ±ŁŠŁ„_Ł…Ų§ŁŠ_Ų¬ŁˆŲ§Ł†_Ų¬ŁˆŁŠŁ„ŁŠŲ©_أوت_Ų³ŲØŲŖŁ…ŲØŲ±_أكتوبر_Ł†ŁˆŁŁ…ŲØŲ±_ŲÆŁŠŲ³Ł…ŲØŲ±'.split(\n '_'\n ),\n weekdays: 'الأحد_Ų§Ł„Ų„Ų«Ł†ŁŠŁ†_الثلاثاؔ_الأربعاؔ_Ų§Ł„Ų®Ł…ŁŠŲ³_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ų£Ų­ŲÆ_Ų„Ų«Ł†ŁŠŁ†_ثلاثاؔ_Ų£Ų±ŲØŲ¹Ų§Ų”_Ų®Ł…ŁŠŲ³_جمعة_Ų³ŲØŲŖ'.split('_'),\n weekdaysMin: 'Ų­_ن_Ų«_Ų±_Ų®_Ų¬_Ų³'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ų§Ł„ŁŠŁˆŁ… على الساعة] LT',\n nextDay: '[ŲŗŲÆŲ§ على الساعة] LT',\n nextWeek: 'dddd [على الساعة] LT',\n lastDay: '[أمس على الساعة] LT',\n lastWeek: 'dddd [على الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'في %s',\n past: 'منذ %s',\n s: 'Ų«ŁˆŲ§Ł†',\n ss: '%d Ų«Ų§Ł†ŁŠŲ©',\n m: 'ŲÆŁ‚ŁŠŁ‚Ų©',\n mm: '%d دقائق',\n h: 'Ų³Ų§Ų¹Ų©',\n hh: '%d Ų³Ų§Ų¹Ų§ŲŖ',\n d: 'ŁŠŁˆŁ…',\n dd: '%d Ų£ŁŠŲ§Ł…',\n M: 'ؓهر',\n MM: '%d أؓهر',\n y: 'سنة',\n yy: '%d Ų³Ł†ŁˆŲ§ŲŖ',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$2 = {\n 1: 'Ł”',\n 2: 'Ł¢',\n 3: 'Ł£',\n 4: '٤',\n 5: 'Ł„',\n 6: '٦',\n 7: '٧',\n 8: 'ŁØ',\n 9: 'Ł©',\n 0: 'Ł ',\n },\n numberMap$1 = {\n 'Ł”': '1',\n 'Ł¢': '2',\n 'Ł£': '3',\n '٤': '4',\n 'Ł„': '5',\n '٦': '6',\n '٧': '7',\n 'ŁØ': '8',\n 'Ł©': '9',\n 'Ł ': '0',\n },\n pluralForm$2 = function (n) {\n return n === 0\n ? 0\n : n === 1\n ? 1\n : n === 2\n ? 2\n : n % 100 >= 3 && n % 100 <= 10\n ? 3\n : n % 100 >= 11\n ? 4\n : 5;\n },\n plurals$2 = {\n s: [\n 'أقل من Ų«Ų§Ł†ŁŠŲ©',\n 'Ų«Ų§Ł†ŁŠŲ© واحدة',\n ['Ų«Ų§Ł†ŁŠŲŖŲ§Ł†', 'Ų«Ų§Ł†ŁŠŲŖŁŠŁ†'],\n '%d Ų«ŁˆŲ§Ł†',\n '%d Ų«Ų§Ł†ŁŠŲ©',\n '%d Ų«Ų§Ł†ŁŠŲ©',\n ],\n m: [\n 'أقل من ŲÆŁ‚ŁŠŁ‚Ų©',\n 'ŲÆŁ‚ŁŠŁ‚Ų© واحدة',\n ['ŲÆŁ‚ŁŠŁ‚ŲŖŲ§Ł†', 'ŲÆŁ‚ŁŠŁ‚ŲŖŁŠŁ†'],\n '%d دقائق',\n '%d ŲÆŁ‚ŁŠŁ‚Ų©',\n '%d ŲÆŁ‚ŁŠŁ‚Ų©',\n ],\n h: [\n 'أقل من Ų³Ų§Ų¹Ų©',\n 'Ų³Ų§Ų¹Ų© واحدة',\n ['ساعتان', 'Ų³Ų§Ų¹ŲŖŁŠŁ†'],\n '%d Ų³Ų§Ų¹Ų§ŲŖ',\n '%d Ų³Ų§Ų¹Ų©',\n '%d Ų³Ų§Ų¹Ų©',\n ],\n d: [\n 'أقل من ŁŠŁˆŁ…',\n 'ŁŠŁˆŁ… واحد',\n ['ŁŠŁˆŁ…Ų§Ł†', 'ŁŠŁˆŁ…ŁŠŁ†'],\n '%d Ų£ŁŠŲ§Ł…',\n '%d ŁŠŁˆŁ…Ł‹Ų§',\n '%d ŁŠŁˆŁ…',\n ],\n M: [\n 'أقل من ؓهر',\n 'ؓهر واحد',\n ['ؓهران', 'Ų“Ł‡Ų±ŁŠŁ†'],\n '%d أؓهر',\n '%d ؓهرا',\n '%d ؓهر',\n ],\n y: [\n 'أقل من Ų¹Ų§Ł…',\n 'Ų¹Ų§Ł… واحد',\n ['عامان', 'Ų¹Ų§Ł…ŁŠŁ†'],\n '%d Ų£Ų¹ŁˆŲ§Ł…',\n '%d عامًا',\n '%d Ų¹Ų§Ł…',\n ],\n },\n pluralize$2 = function (u) {\n return function (number, withoutSuffix, string, isFuture) {\n var f = pluralForm$2(number),\n str = plurals$2[u][pluralForm$2(number)];\n if (f === 2) {\n str = str[withoutSuffix ? 0 : 1];\n }\n return str.replace(/%d/i, number);\n };\n },\n months$3 = [\n 'ŁŠŁ†Ų§ŁŠŲ±',\n 'فبراير',\n 'Ł…Ų§Ų±Ų³',\n 'Ų£ŲØŲ±ŁŠŁ„',\n 'Ł…Ų§ŁŠŁˆ',\n 'ŁŠŁˆŁ†ŁŠŁˆ',\n 'ŁŠŁˆŁ„ŁŠŁˆ',\n 'Ų£ŲŗŲ³Ų·Ų³',\n 'Ų³ŲØŲŖŁ…ŲØŲ±',\n 'أكتوبر',\n 'Ł†ŁˆŁŁ…ŲØŲ±',\n 'ŲÆŁŠŲ³Ł…ŲØŲ±',\n ];\n\n hooks.defineLocale('ar', {\n months: months$3,\n monthsShort: months$3,\n weekdays: 'الأحد_Ų§Ł„Ų„Ų«Ł†ŁŠŁ†_الثلاثاؔ_الأربعاؔ_Ų§Ł„Ų®Ł…ŁŠŲ³_الجمعة_السبت'.split('_'),\n weekdaysShort: 'Ų£Ų­ŲÆ_Ų„Ų«Ł†ŁŠŁ†_ثلاثاؔ_Ų£Ų±ŲØŲ¹Ų§Ų”_Ų®Ł…ŁŠŲ³_جمعة_Ų³ŲØŲŖ'.split('_'),\n weekdaysMin: 'Ų­_ن_Ų«_Ų±_Ų®_Ų¬_Ų³'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/\\u200FM/\\u200FYYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /Ųµ|Ł…/,\n isPM: function (input) {\n return 'Ł…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'Ųµ';\n } else {\n return 'Ł…';\n }\n },\n calendar: {\n sameDay: '[Ų§Ł„ŁŠŁˆŁ… عند الساعة] LT',\n nextDay: '[غدًا عند الساعة] LT',\n nextWeek: 'dddd [عند الساعة] LT',\n lastDay: '[أمس عند الساعة] LT',\n lastWeek: 'dddd [عند الساعة] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ŲØŲ¹ŲÆ %s',\n past: 'منذ %s',\n s: pluralize$2('s'),\n ss: pluralize$2('s'),\n m: pluralize$2('m'),\n mm: pluralize$2('m'),\n h: pluralize$2('h'),\n hh: pluralize$2('h'),\n d: pluralize$2('d'),\n dd: pluralize$2('d'),\n M: pluralize$2('M'),\n MM: pluralize$2('M'),\n y: pluralize$2('y'),\n yy: pluralize$2('y'),\n },\n preparse: function (string) {\n return string\n .replace(/[ٔ٢٣٤ل٦٧٨٩٠]/g, function (match) {\n return numberMap$1[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$2[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes = {\n 1: '-inci',\n 5: '-inci',\n 8: '-inci',\n 70: '-inci',\n 80: '-inci',\n 2: '-nci',\n 7: '-nci',\n 20: '-nci',\n 50: '-nci',\n 3: '-üncü',\n 4: '-üncü',\n 100: '-üncü',\n 6: '-ncı',\n 9: '-uncu',\n 10: '-uncu',\n 30: '-uncu',\n 60: '-ıncı',\n 90: '-ıncı',\n };\n\n hooks.defineLocale('az', {\n months: 'yanvar_fevral_mart_aprel_may_iyun_iyul_avqust_sentyabr_oktyabr_noyabr_dekabr'.split(\n '_'\n ),\n monthsShort: 'yan_fev_mar_apr_may_iyn_iyl_avq_sen_okt_noy_dek'.split('_'),\n weekdays: 'Bazar_Bazar ertəsi_Ƈərşənbə axşamı_Ƈərşənbə_Cümə axşamı_Cümə_Şənbə'.split(\n '_'\n ),\n weekdaysShort: 'Baz_BzE_ƇAx_Ƈər_CAx_Cüm_Şən'.split('_'),\n weekdaysMin: 'Bz_BE_ƇA_Ƈə_CA_Cü_Şə'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[sabah saat] LT',\n nextWeek: '[gələn həftə] dddd [saat] LT',\n lastDay: '[dünən] LT',\n lastWeek: '[keƧən həftə] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s əvvəl',\n s: 'bir neƧə saniyə',\n ss: '%d saniyə',\n m: 'bir dəqiqə',\n mm: '%d dəqiqə',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir il',\n yy: '%d il',\n },\n meridiemParse: /gecə|səhər|gündüz|axşam/,\n isPM: function (input) {\n return /^(gündüz|axşam)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'gecə';\n } else if (hour < 12) {\n return 'səhər';\n } else if (hour < 17) {\n return 'gündüz';\n } else {\n return 'axşam';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ıncı|inci|nci|üncü|ncı|uncu)/,\n ordinal: function (number) {\n if (number === 0) {\n // special case for zero\n return number + '-ıncı';\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes[a] || suffixes[b] || suffixes[c]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function plural(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунГа_ŃŠµŠŗŃƒŠ½Š“Ń‹_секунГ' : 'секунГу_ŃŠµŠŗŃƒŠ½Š“Ń‹_секунГ',\n mm: withoutSuffix ? 'хвіліна_хвіліны_хвілін' : 'Ń…Š²Ń–Š»Ń–Š½Ńƒ_хвіліны_хвілін',\n hh: withoutSuffix ? 'гаГзіна_гаГзіны_гаГзін' : 'Š³Š°Š“Š·Ń–Š½Ńƒ_гаГзіны_гаГзін',\n dd: 'Гзень_Гні_Гзён',\n MM: 'Š¼ŠµŃŃŃ†_Š¼ŠµŃŃŃ†Ń‹_Š¼ŠµŃŃŃ†Š°Ńž',\n yy: 'гоГ_гаГы_Š³Š°Š“Š¾Ńž',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвіліна' : 'Ń…Š²Ń–Š»Ń–Š½Ńƒ';\n } else if (key === 'h') {\n return withoutSuffix ? 'гаГзіна' : 'Š³Š°Š“Š·Ń–Š½Ńƒ';\n } else {\n return number + ' ' + plural(format[key], +number);\n }\n }\n\n hooks.defineLocale('be', {\n months: {\n format: 'ŃŃ‚ŃƒŠ“Š·ŠµŠ½Ń_Š»ŃŽŃ‚Š°Š³Š°_сакавіка_красавіка_Ń‚Ń€Š°ŃžŠ½Ń_Ń‡ŃŃ€Š²ŠµŠ½Ń_Š»Ń–ŠæŠµŠ½Ń_Š¶Š½Ń–ŃžŠ½Ń_Š²ŠµŃ€Š°ŃŠ½Ń_кастрычніка_лістапаГа_ŃŠ½ŠµŠ¶Š½Ń'.split(\n '_'\n ),\n standalone: 'ŃŃ‚ŃƒŠ“Š·ŠµŠ½ŃŒ_Š»ŃŽŃ‚Ń‹_сакавік_красавік_Ń‚Ń€Š°Š²ŠµŠ½ŃŒ_Ń‡ŃŃ€Š²ŠµŠ½ŃŒ_Š»Ń–ŠæŠµŠ½ŃŒ_Š¶Š½Ń–Š²ŠµŠ½ŃŒ_Š²ŠµŃ€Š°ŃŠµŠ½ŃŒ_кастрычнік_лістапаГ_снежань'.split(\n '_'\n ),\n },\n monthsShort: 'ŃŃ‚ŃƒŠ“_Š»ŃŽŃ‚_сак_крас_трав_Ń‡ŃŃ€Š²_ліп_жнів_вер_каст_ліст_снеж'.split(\n '_'\n ),\n weekdays: {\n format: 'Š½ŃŠ“Š·ŠµŠ»ŃŽ_ŠæŠ°Š½ŃŠ“Š·ŠµŠ»Š°Šŗ_Š°ŃžŃ‚Š¾Ń€Š°Šŗ_ŃŠµŃ€Š°Š“Ńƒ_чацвер_ŠæŃŃ‚Š½Ń–Ń†Ńƒ_ŃŃƒŠ±Š¾Ń‚Ńƒ'.split(\n '_'\n ),\n standalone: 'Š½ŃŠ“Š·ŠµŠ»Ń_ŠæŠ°Š½ŃŠ“Š·ŠµŠ»Š°Šŗ_Š°ŃžŃ‚Š¾Ń€Š°Šŗ_сераГа_чацвер_ŠæŃŃ‚Š½Ń–Ń†Š°_ŃŃƒŠ±Š¾Ń‚Š°'.split(\n '_'\n ),\n isFormat: /\\[ ?[Š£ŃƒŃž] ?(?:Š¼Ń–Š½ŃƒŠ»ŃƒŃŽ|Š½Š°ŃŃ‚ŃƒŠæŠ½ŃƒŃŽ)? ?\\] ?dddd/,\n },\n weekdaysShort: 'нГ_пн_ат_ср_чц_пт_сб'.split('_'),\n weekdaysMin: 'нГ_пн_ат_ср_чц_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., HH:mm',\n LLLL: 'dddd, D MMMM YYYY г., HH:mm',\n },\n calendar: {\n sameDay: '[Š”Ń‘Š½Š½Ń ў] LT',\n nextDay: '[Š—Š°ŃžŃ‚Ń€Š° ў] LT',\n lastDay: '[Учора ў] LT',\n nextWeek: function () {\n return '[Š£] dddd [ў] LT';\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return '[Š£ Š¼Ń–Š½ŃƒŠ»ŃƒŃŽ] dddd [ў] LT';\n case 1:\n case 2:\n case 4:\n return '[Š£ Š¼Ń–Š½ŃƒŠ»Ń‹] dddd [ў] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'праз %s',\n past: '%s Ń‚Š°Š¼Ńƒ',\n s: 'Š½ŠµŠŗŠ°Š»ŃŒŠŗŃ– секунГ',\n m: relativeTimeWithPlural,\n mm: relativeTimeWithPlural,\n h: relativeTimeWithPlural,\n hh: relativeTimeWithPlural,\n d: 'Гзень',\n dd: relativeTimeWithPlural,\n M: 'Š¼ŠµŃŃŃ†',\n MM: relativeTimeWithPlural,\n y: 'гоГ',\n yy: relativeTimeWithPlural,\n },\n meridiemParse: /ночы|раніцы|Š“Š½Ń|вечара/,\n isPM: function (input) {\n return /^(Š“Š½Ń|вечара)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночы';\n } else if (hour < 12) {\n return 'раніцы';\n } else if (hour < 17) {\n return 'Š“Š½Ń';\n } else {\n return 'вечара';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(і|ы|га)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return (number % 10 === 2 || number % 10 === 3) &&\n number % 100 !== 12 &&\n number % 100 !== 13\n ? number + '-і'\n : number + '-ы';\n case 'D':\n return number + '-га';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('bg', {\n months: 'ŃŠ½ŃƒŠ°Ń€Šø_Ń„ŠµŠ²Ń€ŃƒŠ°Ń€Šø_март_април_май_ŃŽŠ½Šø_ŃŽŠ»Šø_Š°Š²Š³ŃƒŃŃ‚_септември_октомври_ноември_Гекември'.split(\n '_'\n ),\n monthsShort: 'ŃŠ½Ńƒ_фев_мар_апр_май_ŃŽŠ½Šø_ŃŽŠ»Šø_авг_сеп_окт_ное_Гек'.split('_'),\n weekdays: 'Š½ŠµŠ“ŠµŠ»Ń_понеГелник_вторник_ŃŃ€ŃŠ“Š°_Ń‡ŠµŃ‚Š²ŃŠŃ€Ń‚ŃŠŠŗ_ŠæŠµŃ‚ŃŠŠŗ_ŃŃŠŠ±Š¾Ń‚Š°'.split(\n '_'\n ),\n weekdaysShort: 'неГ_пон_вто_сря_чет_пет_съб'.split('_'),\n weekdaysMin: 'нГ_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Днес в] LT',\n nextDay: '[Утре в] LT',\n nextWeek: 'dddd [в] LT',\n lastDay: '[Вчера в] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[ŠœŠøŠ½Š°Š»Š°Ń‚Š°] dddd [в] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[ŠœŠøŠ½Š°Š»ŠøŃ] dddd [в] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'слеГ %s',\n past: 'преГи %s',\n s: 'Š½ŃŠŗŠ¾Š»ŠŗŠ¾ секунГи',\n ss: '%d секунГи',\n m: 'Š¼ŠøŠ½ŃƒŃ‚Š°',\n mm: '%d Š¼ŠøŠ½ŃƒŃ‚Šø',\n h: 'час',\n hh: '%d часа',\n d: 'Ген',\n dd: '%d Гена',\n w: 'сеГмица',\n ww: '%d сеГмици',\n M: 'месец',\n MM: '%d месеца',\n y: 'гоГина',\n yy: '%d гоГини',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('bm', {\n months: 'Zanwuyekalo_Fewuruyekalo_Marisikalo_Awirilikalo_Mɛkalo_Zuwɛnkalo_Zuluyekalo_Utikalo_Sɛtanburukalo_ɔkutɔburukalo_Nowanburukalo_Desanburukalo'.split(\n '_'\n ),\n monthsShort: 'Zan_Few_Mar_Awi_Mɛ_Zuw_Zul_Uti_Sɛt_ɔku_Now_Des'.split('_'),\n weekdays: 'Kari_Ntɛnɛn_Tarata_Araba_Alamisa_Juma_Sibiri'.split('_'),\n weekdaysShort: 'Kar_Ntɛ_Tar_Ara_Ala_Jum_Sib'.split('_'),\n weekdaysMin: 'Ka_Nt_Ta_Ar_Al_Ju_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'MMMM [tile] D [san] YYYY',\n LLL: 'MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n LLLL: 'dddd MMMM [tile] D [san] YYYY [lɛrɛ] HH:mm',\n },\n calendar: {\n sameDay: '[Bi lɛrɛ] LT',\n nextDay: '[Sini lɛrɛ] LT',\n nextWeek: 'dddd [don lɛrɛ] LT',\n lastDay: '[Kunu lɛrɛ] LT',\n lastWeek: 'dddd [tɛmɛnen lɛrɛ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s kɔnɔ',\n past: 'a bɛ %s bɔ',\n s: 'sanga dama dama',\n ss: 'sekondi %d',\n m: 'miniti kelen',\n mm: 'miniti %d',\n h: 'lɛrɛ kelen',\n hh: 'lɛrɛ %d',\n d: 'tile kelen',\n dd: 'tile %d',\n M: 'kalo kelen',\n MM: 'kalo %d',\n y: 'san kelen',\n yy: 'san %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$3 = {\n 1: 'ą§§',\n 2: 'ą§Ø',\n 3: 'ą§©',\n 4: 'ą§Ŗ',\n 5: 'ą§«',\n 6: '৬',\n 7: 'ą§­',\n 8: 'ą§®',\n 9: 'ą§Æ',\n 0: '০',\n },\n numberMap$2 = {\n 'ą§§': '1',\n 'ą§Ø': '2',\n 'ą§©': '3',\n 'ą§Ŗ': '4',\n 'ą§«': '5',\n '৬': '6',\n 'ą§­': '7',\n 'ą§®': '8',\n 'ą§Æ': '9',\n '০': '0',\n };\n\n hooks.defineLocale('bn-bd', {\n months: 'জানুয়ারি_ą¦«ą§‡ą¦¬ą§ą¦°ą§ą§Ÿą¦¾ą¦°ą¦æ_ą¦®ą¦¾ą¦°ą§ą¦š_ą¦ą¦Ŗą§ą¦°ą¦æą¦²_মে_জুন_ą¦œą§ą¦²ą¦¾ą¦‡_ą¦†ą¦—ą¦øą§ą¦Ÿ_ą¦øą§‡ą¦Ŗą§ą¦Ÿą§‡ą¦®ą§ą¦¬ą¦°_ą¦…ą¦•ą§ą¦Ÿą§‹ą¦¬ą¦°_ą¦Øą¦­ą§‡ą¦®ą§ą¦¬ą¦°_ą¦”ą¦æą¦øą§‡ą¦®ą§ą¦¬ą¦°'.split(\n '_'\n ),\n monthsShort: 'জানু_ą¦«ą§‡ą¦¬ą§ą¦°ą§_ą¦®ą¦¾ą¦°ą§ą¦š_ą¦ą¦Ŗą§ą¦°ą¦æą¦²_মে_জুন_ą¦œą§ą¦²ą¦¾ą¦‡_ą¦†ą¦—ą¦øą§ą¦Ÿ_ą¦øą§‡ą¦Ŗą§ą¦Ÿ_ą¦…ą¦•ą§ą¦Ÿą§‹_নভে_ঔিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_ą¦®ą¦™ą§ą¦—ą¦²ą¦¬ą¦¾ą¦°_বুধবার_ą¦¬ą§ƒą¦¹ą¦øą§ą¦Ŗą¦¤ą¦æą¦¬ą¦¾ą¦°_ą¦¶ą§ą¦•ą§ą¦°ą¦¬ą¦¾ą¦°_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_ą¦®ą¦™ą§ą¦—ą¦²_বুধ_ą¦¬ą§ƒą¦¹ą¦øą§ą¦Ŗą¦¤ą¦æ_ą¦¶ą§ą¦•ą§ą¦°_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_ą¦®ą¦™ą§ą¦—ą¦²_বুধ_বৃহ_ą¦¶ą§ą¦•ą§ą¦°_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[ą¦†ą¦œ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'ą¦•ą§Ÿą§‡ą¦• ą¦øą§‡ą¦•ą§‡ą¦Øą§ą¦”',\n ss: '%d ą¦øą§‡ą¦•ą§‡ą¦Øą§ą¦”',\n m: 'ą¦ą¦• মিনিট',\n mm: '%d মিনিট',\n h: 'ą¦ą¦• ą¦˜ą¦Øą§ą¦Ÿą¦¾',\n hh: '%d ą¦˜ą¦Øą§ą¦Ÿą¦¾',\n d: 'ą¦ą¦• দিন',\n dd: '%d দিন',\n M: 'ą¦ą¦• মাস',\n MM: '%d মাস',\n y: 'ą¦ą¦• বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap$2[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$3[match];\n });\n },\n\n meridiemParse: /রাত|ভোর|সকাল|দুপুর|বিকাল|ą¦øą¦Øą§ą¦§ą§ą¦Æą¦¾|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'রাত') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ভোর') {\n return hour;\n } else if (meridiem === 'সকাল') {\n return hour;\n } else if (meridiem === 'দুপুর') {\n return hour >= 3 ? hour : hour + 12;\n } else if (meridiem === 'বিকাল') {\n return hour + 12;\n } else if (meridiem === 'ą¦øą¦Øą§ą¦§ą§ą¦Æą¦¾') {\n return hour + 12;\n }\n },\n\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 6) {\n return 'ভোর';\n } else if (hour < 12) {\n return 'সকাল';\n } else if (hour < 15) {\n return 'দুপুর';\n } else if (hour < 18) {\n return 'বিকাল';\n } else if (hour < 20) {\n return 'ą¦øą¦Øą§ą¦§ą§ą¦Æą¦¾';\n } else {\n return 'রাত';\n }\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n var symbolMap$4 = {\n 1: 'ą§§',\n 2: 'ą§Ø',\n 3: 'ą§©',\n 4: 'ą§Ŗ',\n 5: 'ą§«',\n 6: '৬',\n 7: 'ą§­',\n 8: 'ą§®',\n 9: 'ą§Æ',\n 0: '০',\n },\n numberMap$3 = {\n 'ą§§': '1',\n 'ą§Ø': '2',\n 'ą§©': '3',\n 'ą§Ŗ': '4',\n 'ą§«': '5',\n '৬': '6',\n 'ą§­': '7',\n 'ą§®': '8',\n 'ą§Æ': '9',\n '০': '0',\n };\n\n hooks.defineLocale('bn', {\n months: 'জানুয়ারি_ą¦«ą§‡ą¦¬ą§ą¦°ą§ą§Ÿą¦¾ą¦°ą¦æ_ą¦®ą¦¾ą¦°ą§ą¦š_ą¦ą¦Ŗą§ą¦°ą¦æą¦²_মে_জুন_ą¦œą§ą¦²ą¦¾ą¦‡_ą¦†ą¦—ą¦øą§ą¦Ÿ_ą¦øą§‡ą¦Ŗą§ą¦Ÿą§‡ą¦®ą§ą¦¬ą¦°_ą¦…ą¦•ą§ą¦Ÿą§‹ą¦¬ą¦°_ą¦Øą¦­ą§‡ą¦®ą§ą¦¬ą¦°_ą¦”ą¦æą¦øą§‡ą¦®ą§ą¦¬ą¦°'.split(\n '_'\n ),\n monthsShort: 'জানু_ą¦«ą§‡ą¦¬ą§ą¦°ą§_ą¦®ą¦¾ą¦°ą§ą¦š_ą¦ą¦Ŗą§ą¦°ą¦æą¦²_মে_জুন_ą¦œą§ą¦²ą¦¾ą¦‡_ą¦†ą¦—ą¦øą§ą¦Ÿ_ą¦øą§‡ą¦Ŗą§ą¦Ÿ_ą¦…ą¦•ą§ą¦Ÿą§‹_নভে_ঔিসে'.split(\n '_'\n ),\n weekdays: 'রবিবার_সোমবার_ą¦®ą¦™ą§ą¦—ą¦²ą¦¬ą¦¾ą¦°_বুধবার_ą¦¬ą§ƒą¦¹ą¦øą§ą¦Ŗą¦¤ą¦æą¦¬ą¦¾ą¦°_ą¦¶ą§ą¦•ą§ą¦°ą¦¬ą¦¾ą¦°_শনিবার'.split(\n '_'\n ),\n weekdaysShort: 'রবি_সোম_ą¦®ą¦™ą§ą¦—ą¦²_বুধ_ą¦¬ą§ƒą¦¹ą¦øą§ą¦Ŗą¦¤ą¦æ_ą¦¶ą§ą¦•ą§ą¦°_শনি'.split('_'),\n weekdaysMin: 'রবি_সোম_ą¦®ą¦™ą§ą¦—ą¦²_বুধ_বৃহ_ą¦¶ą§ą¦•ą§ą¦°_শনি'.split('_'),\n longDateFormat: {\n LT: 'A h:mm সময়',\n LTS: 'A h:mm:ss সময়',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm সময়',\n LLLL: 'dddd, D MMMM YYYY, A h:mm সময়',\n },\n calendar: {\n sameDay: '[ą¦†ą¦œ] LT',\n nextDay: '[আগামীকাল] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[গতকাল] LT',\n lastWeek: '[গত] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s পরে',\n past: '%s আগে',\n s: 'ą¦•ą§Ÿą§‡ą¦• ą¦øą§‡ą¦•ą§‡ą¦Øą§ą¦”',\n ss: '%d ą¦øą§‡ą¦•ą§‡ą¦Øą§ą¦”',\n m: 'ą¦ą¦• মিনিট',\n mm: '%d মিনিট',\n h: 'ą¦ą¦• ą¦˜ą¦Øą§ą¦Ÿą¦¾',\n hh: '%d ą¦˜ą¦Øą§ą¦Ÿą¦¾',\n d: 'ą¦ą¦• দিন',\n dd: '%d দিন',\n M: 'ą¦ą¦• মাস',\n MM: '%d মাস',\n y: 'ą¦ą¦• বছর',\n yy: '%d বছর',\n },\n preparse: function (string) {\n return string.replace(/[১২৩৪৫৬৭৮৯০]/g, function (match) {\n return numberMap$3[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$4[match];\n });\n },\n meridiemParse: /রাত|সকাল|দুপুর|বিকাল|রাত/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'রাত' && hour >= 4) ||\n (meridiem === 'দুপুর' && hour < 5) ||\n meridiem === 'বিকাল'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'রাত';\n } else if (hour < 10) {\n return 'সকাল';\n } else if (hour < 17) {\n return 'দুপুর';\n } else if (hour < 20) {\n return 'বিকাল';\n } else {\n return 'রাত';\n }\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n var symbolMap$5 = {\n 1: 'ą¼”',\n 2: 'ą¼¢',\n 3: 'ą¼£',\n 4: '༤',\n 5: '༄',\n 6: '༦',\n 7: 'ą¼§',\n 8: '༨',\n 9: '༩',\n 0: 'ą¼ ',\n },\n numberMap$4 = {\n 'ą¼”': '1',\n 'ą¼¢': '2',\n 'ą¼£': '3',\n '༤': '4',\n '༄': '5',\n '༦': '6',\n 'ą¼§': '7',\n '༨': '8',\n '༩': '9',\n 'ą¼ ': '0',\n };\n\n hooks.defineLocale('bo', {\n months: 'ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½‘ą½„ą¼‹ą½”ą½¼_ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½‚ą½‰ą½²ą½¦ą¼‹ą½”_ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½‚ą½¦ą½“ą½˜ą¼‹ą½”_ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½–ą½žą½²ą¼‹ą½”_ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½£ą¾”ą¼‹ą½”_ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½‘ą¾²ą½“ą½‚ą¼‹ą½”_ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½–ą½‘ą½“ą½“ą¼‹ą½”_ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½–ą½¢ą¾’ą¾±ą½‘ą¼‹ą½”_ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½‘ą½‚ą½“ą¼‹ą½”_ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½–ą½…ą½“ą¼‹ą½”_ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½–ą½…ą½“ą¼‹ą½‚ą½…ą½²ą½‚ą¼‹ą½”_ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½–ą½…ą½“ą¼‹ą½‚ą½‰ą½²ą½¦ą¼‹ą½”'.split(\n '_'\n ),\n monthsShort: 'ą½Ÿą¾³ą¼‹1_ą½Ÿą¾³ą¼‹2_ą½Ÿą¾³ą¼‹3_ą½Ÿą¾³ą¼‹4_ą½Ÿą¾³ą¼‹5_ą½Ÿą¾³ą¼‹6_ą½Ÿą¾³ą¼‹7_ą½Ÿą¾³ą¼‹8_ą½Ÿą¾³ą¼‹9_ą½Ÿą¾³ą¼‹10_ą½Ÿą¾³ą¼‹11_ą½Ÿą¾³ą¼‹12'.split(\n '_'\n ),\n monthsShortRegex: /^(ą½Ÿą¾³ą¼‹\\d{1,2})/,\n monthsParseExact: true,\n weekdays: 'ą½‚ą½Ÿą½ ą¼‹ą½‰ą½²ą¼‹ą½˜ą¼‹_ą½‚ą½Ÿą½ ą¼‹ą½Ÿą¾³ą¼‹ą½–ą¼‹_ą½‚ą½Ÿą½ ą¼‹ą½˜ą½²ą½‚ą¼‹ą½‘ą½˜ą½¢ą¼‹_ą½‚ą½Ÿą½ ą¼‹ą½£ą¾·ą½‚ą¼‹ą½”ą¼‹_ą½‚ą½Ÿą½ ą¼‹ą½•ą½“ą½¢ą¼‹ą½–ą½“_ą½‚ą½Ÿą½ ą¼‹ą½”ą¼‹ą½¦ą½„ą½¦ą¼‹_ą½‚ą½Ÿą½ ą¼‹ą½¦ą¾¤ą½ŗą½“ą¼‹ą½”ą¼‹'.split(\n '_'\n ),\n weekdaysShort: 'ą½‰ą½²ą¼‹ą½˜ą¼‹_ą½Ÿą¾³ą¼‹ą½–ą¼‹_ą½˜ą½²ą½‚ą¼‹ą½‘ą½˜ą½¢ą¼‹_ལྷག་པ་_ཕནར་བན_པ་སངས་_སྤེན་པ་'.split(\n '_'\n ),\n weekdaysMin: 'ཉི_ཟླ_ą½˜ą½²ą½‚_ལྷག_ཕནར_སངས_སྤེན'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[དི་རིང] LT',\n nextDay: '[སང་ཉིན] LT',\n nextWeek: '[ą½–ą½‘ą½“ą½“ą¼‹ą½•ą¾²ą½‚ą¼‹ą½¢ą¾—ą½ŗą½¦ą¼‹ą½˜], LT',\n lastDay: '[ཁ་སང] LT',\n lastWeek: '[ą½–ą½‘ą½“ą½“ą¼‹ą½•ą¾²ą½‚ą¼‹ą½˜ą½ą½ ą¼‹ą½˜] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ལ་',\n past: '%s སྔན་ལ',\n s: 'ą½£ą½˜ą¼‹ą½¦ą½„',\n ss: '%d ą½¦ą¾ą½¢ą¼‹ą½†ą¼',\n m: 'ą½¦ą¾ą½¢ą¼‹ą½˜ą¼‹ą½‚ą½…ą½²ą½‚',\n mm: '%d ą½¦ą¾ą½¢ą¼‹ą½˜',\n h: 'ą½†ą½“ą¼‹ą½šą½¼ą½‘ą¼‹ą½‚ą½…ą½²ą½‚',\n hh: '%d ą½†ą½“ą¼‹ą½šą½¼ą½‘',\n d: 'ཉིན་གཅིག',\n dd: '%d ཉིན་',\n M: 'ą½Ÿą¾³ą¼‹ą½–ą¼‹ą½‚ą½…ą½²ą½‚',\n MM: '%d ą½Ÿą¾³ą¼‹ą½–',\n y: 'ལོ་གཅིག',\n yy: '%d ལོ',\n },\n preparse: function (string) {\n return string.replace(/[༔༢༣༤༄༦༧༨༩༠]/g, function (match) {\n return numberMap$4[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$5[match];\n });\n },\n meridiemParse: /ą½˜ą½šą½“ą¼‹ą½˜ą½¼|ą½žą½¼ą½‚ą½¦ą¼‹ą½€ą½¦|ཉིན་གནང|དགོང་དག|ą½˜ą½šą½“ą¼‹ą½˜ą½¼/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'ą½˜ą½šą½“ą¼‹ą½˜ą½¼' && hour >= 4) ||\n (meridiem === 'ཉིན་གནང' && hour < 5) ||\n meridiem === 'དགོང་དག'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ą½˜ą½šą½“ą¼‹ą½˜ą½¼';\n } else if (hour < 10) {\n return 'ą½žą½¼ą½‚ą½¦ą¼‹ą½€ą½¦';\n } else if (hour < 17) {\n return 'ཉིན་གནང';\n } else if (hour < 20) {\n return 'དགོང་དག';\n } else {\n return 'ą½˜ą½šą½“ą¼‹ą½˜ą½¼';\n }\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n function relativeTimeWithMutation(number, withoutSuffix, key) {\n var format = {\n mm: 'munutenn',\n MM: 'miz',\n dd: 'devezh',\n };\n return number + ' ' + mutation(format[key], number);\n }\n function specialMutationForYears(number) {\n switch (lastNumber(number)) {\n case 1:\n case 3:\n case 4:\n case 5:\n case 9:\n return number + ' bloaz';\n default:\n return number + ' vloaz';\n }\n }\n function lastNumber(number) {\n if (number > 9) {\n return lastNumber(number % 10);\n }\n return number;\n }\n function mutation(text, number) {\n if (number === 2) {\n return softMutation(text);\n }\n return text;\n }\n function softMutation(text) {\n var mutationTable = {\n m: 'v',\n b: 'v',\n d: 'z',\n };\n if (mutationTable[text.charAt(0)] === undefined) {\n return text;\n }\n return mutationTable[text.charAt(0)] + text.substring(1);\n }\n\n var monthsParse = [\n /^gen/i,\n /^c[ʼ\\']hwe/i,\n /^meu/i,\n /^ebr/i,\n /^mae/i,\n /^(mez|eve)/i,\n /^gou/i,\n /^eos/i,\n /^gwe/i,\n /^her/i,\n /^du/i,\n /^ker/i,\n ],\n monthsRegex$1 = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu|gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n monthsStrictRegex = /^(genver|c[ʼ\\']hwevrer|meurzh|ebrel|mae|mezheven|gouere|eost|gwengolo|here|du|kerzu)/i,\n monthsShortStrictRegex = /^(gen|c[ʼ\\']hwe|meu|ebr|mae|eve|gou|eos|gwe|her|du|ker)/i,\n fullWeekdaysParse = [\n /^sul/i,\n /^lun/i,\n /^meurzh/i,\n /^merc[ʼ\\']her/i,\n /^yaou/i,\n /^gwener/i,\n /^sadorn/i,\n ],\n shortWeekdaysParse = [\n /^Sul/i,\n /^Lun/i,\n /^Meu/i,\n /^Mer/i,\n /^Yao/i,\n /^Gwe/i,\n /^Sad/i,\n ],\n minWeekdaysParse = [\n /^Su/i,\n /^Lu/i,\n /^Me([^r]|$)/i,\n /^Mer/i,\n /^Ya/i,\n /^Gw/i,\n /^Sa/i,\n ];\n\n hooks.defineLocale('br', {\n months: 'Genver_Cʼhwevrer_Meurzh_Ebrel_Mae_Mezheven_Gouere_Eost_Gwengolo_Here_Du_Kerzu'.split(\n '_'\n ),\n monthsShort: 'Gen_Cʼhwe_Meu_Ebr_Mae_Eve_Gou_Eos_Gwe_Her_Du_Ker'.split('_'),\n weekdays: 'Sul_Lun_Meurzh_Mercʼher_Yaou_Gwener_Sadorn'.split('_'),\n weekdaysShort: 'Sul_Lun_Meu_Mer_Yao_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Lu_Me_Mer_Ya_Gw_Sa'.split('_'),\n weekdaysParse: minWeekdaysParse,\n fullWeekdaysParse: fullWeekdaysParse,\n shortWeekdaysParse: shortWeekdaysParse,\n minWeekdaysParse: minWeekdaysParse,\n\n monthsRegex: monthsRegex$1,\n monthsShortRegex: monthsRegex$1,\n monthsStrictRegex: monthsStrictRegex,\n monthsShortStrictRegex: monthsShortStrictRegex,\n monthsParse: monthsParse,\n longMonthsParse: monthsParse,\n shortMonthsParse: monthsParse,\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [a viz] MMMM YYYY',\n LLL: 'D [a viz] MMMM YYYY HH:mm',\n LLLL: 'dddd, D [a viz] MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hiziv da] LT',\n nextDay: '[Warcʼhoazh da] LT',\n nextWeek: 'dddd [da] LT',\n lastDay: '[Decʼh da] LT',\n lastWeek: 'dddd [paset da] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'a-benn %s',\n past: '%s ʼzo',\n s: 'un nebeud segondennoù',\n ss: '%d eilenn',\n m: 'ur vunutenn',\n mm: relativeTimeWithMutation,\n h: 'un eur',\n hh: '%d eur',\n d: 'un devezh',\n dd: relativeTimeWithMutation,\n M: 'ur miz',\n MM: relativeTimeWithMutation,\n y: 'ur bloaz',\n yy: specialMutationForYears,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(aƱ|vet)/,\n ordinal: function (number) {\n var output = number === 1 ? 'aƱ' : 'vet';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n meridiemParse: /a.m.|g.m./, // goude merenn | a-raok merenn\n isPM: function (token) {\n return token === 'g.m.';\n },\n meridiem: function (hour, minute, isLower) {\n return hour < 12 ? 'a.m.' : 'g.m.';\n },\n });\n\n //! moment.js locale configuration\n\n function translate(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n hooks.defineLocale('bs', {\n months: 'januar_februar_mart_april_maj_juni_juli_august_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n return '[proÅ”lu] dddd [u] LT';\n case 6:\n return '[proÅ”le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ”li] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate,\n m: translate,\n mm: translate,\n h: translate,\n hh: translate,\n d: 'dan',\n dd: translate,\n M: 'mjesec',\n MM: translate,\n y: 'godinu',\n yy: translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ca', {\n months: {\n standalone: 'gener_febrer_marƧ_abril_maig_juny_juliol_agost_setembre_octubre_novembre_desembre'.split(\n '_'\n ),\n format: \"de gener_de febrer_de marƧ_d'abril_de maig_de juny_de juliol_d'agost_de setembre_d'octubre_de novembre_de desembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._marƧ_abr._maig_juny_jul._ag._set._oct._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'diumenge_dilluns_dimarts_dimecres_dijous_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dt._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dt_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a les] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a les] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[avui a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextDay: function () {\n return '[demĆ  a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastDay: function () {\n return '[ahir a ' + (this.hours() !== 1 ? 'les' : 'la') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [passat a ' +\n (this.hours() !== 1 ? 'les' : 'la') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquĆ­ %s\",\n past: 'fa %s',\n s: 'uns segons',\n ss: '%d segons',\n m: 'un minut',\n mm: '%d minuts',\n h: 'una hora',\n hh: '%d hores',\n d: 'un dia',\n dd: '%d dies',\n M: 'un mes',\n MM: '%d mesos',\n y: 'un any',\n yy: '%d anys',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|ĆØ|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'ĆØ';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$4 = 'leden_Ćŗnor_březen_duben_květen_červen_červenec_srpen_zÔří_říjen_listopad_prosinec'.split(\n '_'\n ),\n monthsShort = 'led_Ćŗno_bře_dub_kvě_čvn_čvc_srp_zÔř_říj_lis_pro'.split('_'),\n monthsParse$1 = [\n /^led/i,\n /^Ćŗno/i,\n /^bře/i,\n /^dub/i,\n /^kvě/i,\n /^(čvn|červen$|června)/i,\n /^(čvc|červenec|července)/i,\n /^srp/i,\n /^zÔř/i,\n /^říj/i,\n /^lis/i,\n /^pro/i,\n ],\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsRegex$2 = /^(leden|Ćŗnor|březen|duben|květen|červenec|července|červen|června|srpen|zÔří|říjen|listopad|prosinec|led|Ćŗno|bře|dub|kvě|čvn|čvc|srp|zÔř|říj|lis|pro)/i;\n\n function plural$1(n) {\n return n > 1 && n < 5 && ~~(n / 10) !== 1;\n }\n function translate$1(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pĆ”r sekund' : 'pĆ”r sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'sekundy' : 'sekund');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minuta' : isFuture ? 'minutu' : 'minutou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'minuty' : 'minut');\n } else {\n return result + 'minutami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'hodiny' : 'hodin');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'den' : 'dnem';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'dny' : 'dnĆ­');\n } else {\n return result + 'dny';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'měsĆ­c' : 'měsĆ­cem';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'měsĆ­ce' : 'měsĆ­cÅÆ');\n } else {\n return result + 'měsĆ­ci';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokem';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural$1(number) ? 'roky' : 'let');\n } else {\n return result + 'lety';\n }\n }\n }\n\n hooks.defineLocale('cs', {\n months: months$4,\n monthsShort: monthsShort,\n monthsRegex: monthsRegex$2,\n monthsShortRegex: monthsRegex$2,\n // NOTE: 'červen' is substring of 'červenec'; therefore 'červenec' must precede 'červen' in the regex to be fully matched.\n // Otherwise parser matches '1. červenec' as '1. červen' + 'ec'.\n monthsStrictRegex: /^(leden|ledna|Ćŗnora|Ćŗnor|březen|března|duben|dubna|květen|května|červenec|července|červen|června|srpen|srpna|zÔří|říjen|října|listopadu|listopad|prosinec|prosince)/i,\n monthsShortStrictRegex: /^(led|Ćŗno|bře|dub|kvě|čvn|čvc|srp|zÔř|říj|lis|pro)/i,\n monthsParse: monthsParse$1,\n longMonthsParse: monthsParse$1,\n shortMonthsParse: monthsParse$1,\n weekdays: 'neděle_pondělĆ­_Ćŗterý_středa_čtvrtek_pĆ”tek_sobota'.split('_'),\n weekdaysShort: 'ne_po_Ćŗt_st_čt_pĆ”_so'.split('_'),\n weekdaysMin: 'ne_po_Ćŗt_st_čt_pĆ”_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n l: 'D. M. YYYY',\n },\n calendar: {\n sameDay: '[dnes v] LT',\n nextDay: '[zĆ­tra v] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v neděli v] LT';\n case 1:\n case 2:\n return '[v] dddd [v] LT';\n case 3:\n return '[ve středu v] LT';\n case 4:\n return '[ve čtvrtek v] LT';\n case 5:\n return '[v pĆ”tek v] LT';\n case 6:\n return '[v sobotu v] LT';\n }\n },\n lastDay: '[včera v] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulou neděli v] LT';\n case 1:\n case 2:\n return '[minulĆ©] dddd [v] LT';\n case 3:\n return '[minulou středu v] LT';\n case 4:\n case 5:\n return '[minulý] dddd [v] LT';\n case 6:\n return '[minulou sobotu v] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'před %s',\n s: translate$1,\n ss: translate$1,\n m: translate$1,\n mm: translate$1,\n h: translate$1,\n hh: translate$1,\n d: translate$1,\n dd: translate$1,\n M: translate$1,\n MM: translate$1,\n y: translate$1,\n yy: translate$1,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('cv', {\n months: 'кӑрлач_нарӑс_пуш_ака_май_ҫӗртме_утӑ_Ņ«ŃƒŃ€Š»Š°_авӑн_ŃŽŠæŠ°_чӳк_Ń€Š°ŃˆŃ‚Š°Š²'.split(\n '_'\n ),\n monthsShort: 'ŠŗÓ‘Ń€_нар_пуш_ака_май_ҫӗр_утӑ_Ņ«ŃƒŃ€_авн_ŃŽŠæŠ°_чӳк_Ń€Š°Ńˆ'.split('_'),\n weekdays: 'Š²Ń‹Ń€ŃŠ°Ń€Š½ŠøŠŗŃƒŠ½_Ń‚ŃƒŠ½Ń‚ŠøŠŗŃƒŠ½_Ń‹Ń‚Š»Š°Ń€ŠøŠŗŃƒŠ½_ŃŽŠ½ŠŗŃƒŠ½_ŠŗÓ—Ņ«Š½ŠµŃ€Š½ŠøŠŗŃƒŠ½_ŃŃ€Š½ŠµŠŗŃƒŠ½_ŃˆÓ‘Š¼Š°Ń‚ŠŗŃƒŠ½'.split(\n '_'\n ),\n weekdaysShort: 'выр_Ń‚ŃƒŠ½_ытл_ŃŽŠ½_ŠŗÓ—Ņ«_ŃŃ€Š½_ŃˆÓ‘Š¼'.split('_'),\n weekdaysMin: 'вр_тн_ыт_ŃŽŠ½_ŠŗŅ«_эр_шм'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'YYYY [Ņ«ŃƒŠ»Ń…Šø] MMMM [ŃƒŠ¹Ó‘Ń…Ó—Š½] D[-Š¼Ó—ŃˆÓ—]',\n LLL: 'YYYY [Ņ«ŃƒŠ»Ń…Šø] MMMM [ŃƒŠ¹Ó‘Ń…Ó—Š½] D[-Š¼Ó—ŃˆÓ—], HH:mm',\n LLLL: 'dddd, YYYY [Ņ«ŃƒŠ»Ń…Šø] MMMM [ŃƒŠ¹Ó‘Ń…Ó—Š½] D[-Š¼Ó—ŃˆÓ—], HH:mm',\n },\n calendar: {\n sameDay: '[ŠŸŠ°ŃŠ½] LT [сехетре]',\n nextDay: '[Ыран] LT [сехетре]',\n lastDay: '[Ӗнер] LT [сехетре]',\n nextWeek: '[Ҫитес] dddd LT [сехетре]',\n lastWeek: '[Š˜Ń€Ń‚Š½Ó—] dddd LT [сехетре]',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (output) {\n var affix = /сехет$/i.exec(output)\n ? 'рен'\n : /ҫул$/i.exec(output)\n ? 'тан'\n : 'ран';\n return output + affix;\n },\n past: '%s ŠŗŠ°ŃŠ»Š»Š°',\n s: 'ŠæÓ—Ń€-ŠøŠŗ Ņ«ŠµŠŗŠŗŃƒŠ½Ń‚',\n ss: '%d Ņ«ŠµŠŗŠŗŃƒŠ½Ń‚',\n m: 'ŠæÓ—Ń€ Š¼ŠøŠ½ŃƒŃ‚',\n mm: '%d Š¼ŠøŠ½ŃƒŃ‚',\n h: 'ŠæÓ—Ń€ сехет',\n hh: '%d сехет',\n d: 'ŠæÓ—Ń€ кун',\n dd: '%d кун',\n M: 'ŠæÓ—Ń€ ŃƒŠ¹Ó‘Ń…',\n MM: '%d ŃƒŠ¹Ó‘Ń…',\n y: 'ŠæÓ—Ń€ ҫул',\n yy: '%d ҫул',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-Š¼Ó—Ńˆ/,\n ordinal: '%d-Š¼Ó—Ńˆ',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('cy', {\n months: 'Ionawr_Chwefror_Mawrth_Ebrill_Mai_Mehefin_Gorffennaf_Awst_Medi_Hydref_Tachwedd_Rhagfyr'.split(\n '_'\n ),\n monthsShort: 'Ion_Chwe_Maw_Ebr_Mai_Meh_Gor_Aws_Med_Hyd_Tach_Rhag'.split(\n '_'\n ),\n weekdays: 'Dydd Sul_Dydd Llun_Dydd Mawrth_Dydd Mercher_Dydd Iau_Dydd Gwener_Dydd Sadwrn'.split(\n '_'\n ),\n weekdaysShort: 'Sul_Llun_Maw_Mer_Iau_Gwe_Sad'.split('_'),\n weekdaysMin: 'Su_Ll_Ma_Me_Ia_Gw_Sa'.split('_'),\n weekdaysParseExact: true,\n // time formats are the same as en-gb\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Heddiw am] LT',\n nextDay: '[Yfory am] LT',\n nextWeek: 'dddd [am] LT',\n lastDay: '[Ddoe am] LT',\n lastWeek: 'dddd [diwethaf am] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'mewn %s',\n past: '%s yn Ć“l',\n s: 'ychydig eiliadau',\n ss: '%d eiliad',\n m: 'munud',\n mm: '%d munud',\n h: 'awr',\n hh: '%d awr',\n d: 'diwrnod',\n dd: '%d diwrnod',\n M: 'mis',\n MM: '%d mis',\n y: 'blwyddyn',\n yy: '%d flynedd',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(fed|ain|af|il|ydd|ed|eg)/,\n // traditional ordinal numbers above 31 are not commonly used in colloquial Welsh\n ordinal: function (number) {\n var b = number,\n output = '',\n lookup = [\n '',\n 'af',\n 'il',\n 'ydd',\n 'ydd',\n 'ed',\n 'ed',\n 'ed',\n 'fed',\n 'fed',\n 'fed', // 1af to 10fed\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'eg',\n 'fed',\n 'eg',\n 'fed', // 11eg to 20fed\n ];\n if (b > 20) {\n if (b === 40 || b === 50 || b === 60 || b === 80 || b === 100) {\n output = 'fed'; // not 30ain, 70ain or 90ain\n } else {\n output = 'ain';\n }\n } else if (b > 0) {\n output = lookup[b];\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('da', {\n months: 'januar_februar_marts_april_maj_juni_juli_august_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'sĆøndag_mandag_tirsdag_onsdag_torsdag_fredag_lĆørdag'.split('_'),\n weekdaysShort: 'sĆøn_man_tir_ons_tor_fre_lĆør'.split('_'),\n weekdaysMin: 'sĆø_ma_ti_on_to_fr_lĆø'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd [d.] D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'pĆ„ dddd [kl.] LT',\n lastDay: '[i gĆ„r kl.] LT',\n lastWeek: '[i] dddd[s kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'fĆ„ sekunder',\n ss: '%d sekunder',\n m: 'et minut',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dage',\n M: 'en mĆ„ned',\n MM: '%d mĆ„neder',\n y: 'et Ć„r',\n yy: '%d Ć„r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n hooks.defineLocale('de-at', {\n months: 'JƤnner_Februar_MƤrz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'JƤn._Feb._MƤrz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime,\n mm: '%d Minuten',\n h: processRelativeTime,\n hh: '%d Stunden',\n d: processRelativeTime,\n dd: processRelativeTime,\n w: processRelativeTime,\n ww: '%d Wochen',\n M: processRelativeTime,\n MM: processRelativeTime,\n y: processRelativeTime,\n yy: processRelativeTime,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$1(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n hooks.defineLocale('de-ch', {\n months: 'Januar_Februar_MƤrz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._MƤrz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime$1,\n mm: '%d Minuten',\n h: processRelativeTime$1,\n hh: '%d Stunden',\n d: processRelativeTime$1,\n dd: processRelativeTime$1,\n w: processRelativeTime$1,\n ww: '%d Wochen',\n M: processRelativeTime$1,\n MM: processRelativeTime$1,\n y: processRelativeTime$1,\n yy: processRelativeTime$1,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$2(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eine Minute', 'einer Minute'],\n h: ['eine Stunde', 'einer Stunde'],\n d: ['ein Tag', 'einem Tag'],\n dd: [number + ' Tage', number + ' Tagen'],\n w: ['eine Woche', 'einer Woche'],\n M: ['ein Monat', 'einem Monat'],\n MM: [number + ' Monate', number + ' Monaten'],\n y: ['ein Jahr', 'einem Jahr'],\n yy: [number + ' Jahre', number + ' Jahren'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n\n hooks.defineLocale('de', {\n months: 'Januar_Februar_MƤrz_April_Mai_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Feb._MƤrz_Apr._Mai_Juni_Juli_Aug._Sep._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonntag_Montag_Dienstag_Mittwoch_Donnerstag_Freitag_Samstag'.split(\n '_'\n ),\n weekdaysShort: 'So._Mo._Di._Mi._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_Mo_Di_Mi_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY HH:mm',\n LLLL: 'dddd, D. MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[heute um] LT [Uhr]',\n sameElse: 'L',\n nextDay: '[morgen um] LT [Uhr]',\n nextWeek: 'dddd [um] LT [Uhr]',\n lastDay: '[gestern um] LT [Uhr]',\n lastWeek: '[letzten] dddd [um] LT [Uhr]',\n },\n relativeTime: {\n future: 'in %s',\n past: 'vor %s',\n s: 'ein paar Sekunden',\n ss: '%d Sekunden',\n m: processRelativeTime$2,\n mm: '%d Minuten',\n h: processRelativeTime$2,\n hh: '%d Stunden',\n d: processRelativeTime$2,\n dd: processRelativeTime$2,\n w: processRelativeTime$2,\n ww: '%d Wochen',\n M: processRelativeTime$2,\n MM: processRelativeTime$2,\n y: processRelativeTime$2,\n yy: processRelativeTime$2,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$5 = [\n 'Ž–Ž¬Ž‚ŽŖŽ‡Ž¦ŽƒŽ©',\n 'ŽŠŽ¬Ž„Ž°ŽƒŽŖŽ‡Ž¦ŽƒŽ©',\n 'Ž‰Ž§ŽƒŽØŽ—ŽŖ',\n 'Ž‡Ž­Ž•Ž°ŽƒŽ©ŽŽŖ',\n 'މޭ',\n 'ޖޫން',\n 'Ž–ŽŖŽŽ¦Ž‡ŽØ',\n 'Ž‡ŽÆŽŽŽ¦ŽŽ°Ž“ŽŖ',\n 'ŽŽ¬Ž•Ž°Ž“Ž¬Ž‰Ž°Ž„Ž¦ŽƒŽŖ',\n 'Ž‡Ž®Ž†Ž°Ž“ŽÆŽ„Ž¦ŽƒŽŖ',\n 'Ž‚Ž®ŽˆŽ¬Ž‰Ž°Ž„Ž¦ŽƒŽŖ',\n 'Ž‘ŽØŽŽ¬Ž‰Ž°Ž„Ž¦ŽƒŽŖ',\n ],\n weekdays = [\n 'Ž‡Ž§Ž‹ŽØŽ‡Ž°ŽŒŽ¦',\n 'ހޯމަ',\n 'Ž‡Ž¦Ž‚Ž°ŽŽŽ§ŽƒŽ¦',\n 'ބުދަ',\n 'Ž„ŽŖŽƒŽ§ŽŽ°ŽŠŽ¦ŽŒŽØ',\n 'Ž€ŽŖŽ†ŽŖŽƒŽŖ',\n 'Ž€Ž®Ž‚ŽØŽ€ŽØŽƒŽŖ',\n ];\n\n hooks.defineLocale('dv', {\n months: months$5,\n monthsShort: months$5,\n weekdays: weekdays,\n weekdaysShort: weekdays,\n weekdaysMin: 'އާދި_ހޯމަ_އަން_ބުދަ_Ž„ŽŖŽƒŽ§_ހުކު_ހޮނި'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'D/M/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /މކ|Ž‰ŽŠ/,\n isPM: function (input) {\n return 'Ž‰ŽŠ' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'މކ';\n } else {\n return 'Ž‰ŽŠ';\n }\n },\n calendar: {\n sameDay: '[މިއަދު] LT',\n nextDay: '[މާދަމާ] LT',\n nextWeek: 'dddd LT',\n lastDay: '[އިއްޔެ] LT',\n lastWeek: '[ŽŠŽ§Ž‡ŽØŽŒŽŖŽˆŽØ] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ŽŒŽ¬ŽƒŽ­ŽŽŽ¦Ž‡ŽØ %s',\n past: 'Ž†ŽŖŽƒŽØŽ‚Ž° %s',\n s: 'ŽŽØŽ†ŽŖŽ‚Ž°ŽŒŽŖŽ†Ž®Ž…Ž¬Ž‡Ž°',\n ss: 'd% ŽŽØŽ†ŽŖŽ‚Ž°ŽŒŽŖ',\n m: 'މިނިޓެއް',\n mm: 'މިނިޓު %d',\n h: 'ŽŽŽ¦Ž‘ŽØŽ‡ŽØŽƒŽ¬Ž‡Ž°',\n hh: 'ŽŽŽ¦Ž‘ŽØŽ‡ŽØŽƒŽŖ %d',\n d: 'Ž‹ŽŖŽˆŽ¦Ž€Ž¬Ž‡Ž°',\n dd: 'Ž‹ŽŖŽˆŽ¦ŽŽ° %d',\n M: 'މަހެއް',\n MM: 'މަސް %d',\n y: 'Ž‡Ž¦Ž€Ž¦ŽƒŽ¬Ž‡Ž°',\n yy: 'Ž‡Ž¦Ž€Ž¦ŽƒŽŖ %d',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 7, // Sunday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function isFunction$1(input) {\n return (\n (typeof Function !== 'undefined' && input instanceof Function) ||\n Object.prototype.toString.call(input) === '[object Function]'\n );\n }\n\n hooks.defineLocale('el', {\n monthsNominativeEl: 'Ιανουάριος_Φεβρουάριος_ĪœĪ¬ĻĻ„Ī¹ĪæĻ‚_Απρίλιος_ĪœĪ¬Ī¹ĪæĻ‚_Ī™ĪæĻĪ½Ī¹ĪæĻ‚_Ī™ĪæĻĪ»Ī¹ĪæĻ‚_Ī‘ĻĪ³ĪæĻ…ĻƒĻ„ĪæĻ‚_Σεπτέμβριος_ĪŸĪŗĻ„ĻŽĪ²ĻĪ¹ĪæĻ‚_ĪĪæĪ­Ī¼Ī²ĻĪ¹ĪæĻ‚_Δεκέμβριος'.split(\n '_'\n ),\n monthsGenitiveEl: 'Ιανουαρίου_Φεβρουαρίου_ĪœĪ±ĻĻ„ĪÆĪæĻ…_Απριλίου_ĪœĪ±ĪĪæĻ…_Ιουνίου_Ιουλίου_Ī‘Ļ…Ī³ĪæĻĻƒĻ„ĪæĻ…_Σεπτεμβρίου_ĪŸĪŗĻ„Ļ‰Ī²ĻĪÆĪæĻ…_ĪĪæĪµĪ¼Ī²ĻĪÆĪæĻ…_Δεκεμβρίου'.split(\n '_'\n ),\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return this._monthsNominativeEl;\n } else if (\n typeof format === 'string' &&\n /D/.test(format.substring(0, format.indexOf('MMMM')))\n ) {\n // if there is a day number before 'MMMM'\n return this._monthsGenitiveEl[momentToFormat.month()];\n } else {\n return this._monthsNominativeEl[momentToFormat.month()];\n }\n },\n monthsShort: 'Ιαν_Φεβ_Μαρ_Απρ_Μαϊ_Ιουν_Ιουλ_Αυγ_Σεπ_ĪŸĪŗĻ„_ĪĪæĪµ_Δεκ'.split('_'),\n weekdays: 'ĪšĻ…ĻĪ¹Ī±ĪŗĪ®_Δευτέρα_Τρίτη_Τετάρτη_Πέμπτη_Ī Ī±ĻĪ±ĻƒĪŗĪµĻ…Ī®_Σάββατο'.split(\n '_'\n ),\n weekdaysShort: 'ĪšĻ…Ļ_Δευ_Τρι_Τετ_Πεμ_Παρ_Σαβ'.split('_'),\n weekdaysMin: 'ĪšĻ…_Δε_Τρ_Τε_Πε_Πα_Σα'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'μμ' : 'ΜΜ';\n } else {\n return isLower ? 'πμ' : 'ΠΜ';\n }\n },\n isPM: function (input) {\n return (input + '').toLowerCase()[0] === 'μ';\n },\n meridiemParse: /[ΠΜ]\\.?Μ?\\.?/i,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendarEl: {\n sameDay: '[Σήμερα {}] LT',\n nextDay: '[Ī‘ĻĻĪ¹Īæ {}] LT',\n nextWeek: 'dddd [{}] LT',\n lastDay: '[Χθες {}] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 6:\n return '[το Ļ€ĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Īæ] dddd [{}] LT';\n default:\n return '[την Ļ€ĻĪæĪ·Ī³ĪæĻĪ¼ĪµĪ½Ī·] dddd [{}] LT';\n }\n },\n sameElse: 'L',\n },\n calendar: function (key, mom) {\n var output = this._calendarEl[key],\n hours = mom && mom.hours();\n if (isFunction$1(output)) {\n output = output.apply(mom);\n }\n return output.replace('{}', hours % 12 === 1 ? 'ĻƒĻ„Ī·' : 'ĻƒĻ„Ī¹Ļ‚');\n },\n relativeTime: {\n future: 'σε %s',\n past: '%s πριν',\n s: 'λίγα Ī“ĪµĻ…Ļ„ĪµĻĻŒĪ»ĪµĻ€Ļ„Ī±',\n ss: '%d Ī“ĪµĻ…Ļ„ĪµĻĻŒĪ»ĪµĻ€Ļ„Ī±',\n m: 'ένα Ī»ĪµĻ€Ļ„ĻŒ',\n mm: '%d λεπτά',\n h: 'μία ĻŽĻĪ±',\n hh: '%d ĻŽĻĪµĻ‚',\n d: 'μία μέρα',\n dd: '%d μέρες',\n M: 'ένας μήνας',\n MM: '%d μήνες',\n y: 'ένας Ļ‡ĻĻŒĪ½ĪæĻ‚',\n yy: '%d Ļ‡ĻĻŒĪ½Ī¹Ī±',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Ī·/,\n ordinal: '%dĪ·',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('en-au', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('en-ca', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'YYYY-MM-DD',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY h:mm A',\n LLLL: 'dddd, MMMM D, YYYY h:mm A',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 //! moment.js locale configuration\n\n hooks.defineLocale('en-gb', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('en-ie', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('en-il', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 //! moment.js locale configuration\n\n hooks.defineLocale('en-in', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 6, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('en-nz', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('en-sg', {\n months: 'January_February_March_April_May_June_July_August_September_October_November_December'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_May_Jun_Jul_Aug_Sep_Oct_Nov_Dec'.split('_'),\n weekdays: 'Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday'.split(\n '_'\n ),\n weekdaysShort: 'Sun_Mon_Tue_Wed_Thu_Fri_Sat'.split('_'),\n weekdaysMin: 'Su_Mo_Tu_We_Th_Fr_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\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 relativeTime: {\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 M: 'a month',\n MM: '%d months',\n y: 'a year',\n yy: '%d years',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('eo', {\n months: 'januaro_februaro_marto_aprilo_majo_junio_julio_aÅ­gusto_septembro_oktobro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mart_apr_maj_jun_jul_aÅ­g_sept_okt_nov_dec'.split('_'),\n weekdays: 'dimanĉo_lundo_mardo_merkredo_ĵaÅ­do_vendredo_sabato'.split('_'),\n weekdaysShort: 'dim_lun_mard_merk_ĵaÅ­_ven_sab'.split('_'),\n weekdaysMin: 'di_lu_ma_me_ĵa_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: '[la] D[-an de] MMMM, YYYY',\n LLL: '[la] D[-an de] MMMM, YYYY HH:mm',\n LLLL: 'dddd[n], [la] D[-an de] MMMM, YYYY HH:mm',\n llll: 'ddd, [la] D[-an de] MMM, YYYY HH:mm',\n },\n meridiemParse: /[ap]\\.t\\.m/i,\n isPM: function (input) {\n return input.charAt(0).toLowerCase() === 'p';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'p.t.m.' : 'P.T.M.';\n } else {\n return isLower ? 'a.t.m.' : 'A.T.M.';\n }\n },\n calendar: {\n sameDay: '[HodiaÅ­ je] LT',\n nextDay: '[MorgaÅ­ je] LT',\n nextWeek: 'dddd[n je] LT',\n lastDay: '[HieraÅ­ je] LT',\n lastWeek: '[pasintan] dddd[n je] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'post %s',\n past: 'antaÅ­ %s',\n s: 'kelkaj sekundoj',\n ss: '%d sekundoj',\n m: 'unu minuto',\n mm: '%d minutoj',\n h: 'unu horo',\n hh: '%d horoj',\n d: 'unu tago', //ne 'diurno', ĉar estas uzita por proksimumo\n dd: '%d tagoj',\n M: 'unu monato',\n MM: '%d monatoj',\n y: 'unu jaro',\n yy: '%d jaroj',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}a/,\n ordinal: '%da',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort$1 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse$2 = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex$3 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n hooks.defineLocale('es-do', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$1[m.month()];\n } else {\n return monthsShortDot[m.month()];\n }\n },\n monthsRegex: monthsRegex$3,\n monthsShortRegex: monthsRegex$3,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$2,\n longMonthsParse: monthsParse$2,\n shortMonthsParse: monthsParse$2,\n weekdays: 'domingo_lunes_martes_miĆ©rcoles_jueves_viernes_sĆ”bado'.split('_'),\n weekdaysShort: 'dom._lun._mar._miĆ©._jue._vie._sĆ”b.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sĆ”'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[maƱana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dĆ­a',\n dd: '%d dĆ­as',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un aƱo',\n yy: '%d aƱos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Āŗ/,\n ordinal: '%dĀŗ',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot$1 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort$2 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse$3 = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex$4 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n hooks.defineLocale('es-mx', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$2[m.month()];\n } else {\n return monthsShortDot$1[m.month()];\n }\n },\n monthsRegex: monthsRegex$4,\n monthsShortRegex: monthsRegex$4,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$3,\n longMonthsParse: monthsParse$3,\n shortMonthsParse: monthsParse$3,\n weekdays: 'domingo_lunes_martes_miĆ©rcoles_jueves_viernes_sĆ”bado'.split('_'),\n weekdaysShort: 'dom._lun._mar._miĆ©._jue._vie._sĆ”b.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sĆ”'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[maƱana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dĆ­a',\n dd: '%d dĆ­as',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un aƱo',\n yy: '%d aƱos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Āŗ/,\n ordinal: '%dĀŗ',\n week: {\n dow: 0, // Sunday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha invĆ”lida',\n });\n\n //! moment.js locale configuration\n\n var monthsShortDot$2 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort$3 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse$4 = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex$5 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n hooks.defineLocale('es-us', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$3[m.month()];\n } else {\n return monthsShortDot$2[m.month()];\n }\n },\n monthsRegex: monthsRegex$5,\n monthsShortRegex: monthsRegex$5,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$4,\n longMonthsParse: monthsParse$4,\n shortMonthsParse: monthsParse$4,\n weekdays: 'domingo_lunes_martes_miĆ©rcoles_jueves_viernes_sĆ”bado'.split('_'),\n weekdaysShort: 'dom._lun._mar._miĆ©._jue._vie._sĆ”b.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sĆ”'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'MM/DD/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY h:mm A',\n LLLL: 'dddd, D [de] MMMM [de] YYYY h:mm A',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[maƱana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dĆ­a',\n dd: '%d dĆ­as',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un aƱo',\n yy: '%d aƱos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Āŗ/,\n ordinal: '%dĀŗ',\n week: {\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 });\n\n //! moment.js locale configuration\n\n var monthsShortDot$3 = 'ene._feb._mar._abr._may._jun._jul._ago._sep._oct._nov._dic.'.split(\n '_'\n ),\n monthsShort$4 = 'ene_feb_mar_abr_may_jun_jul_ago_sep_oct_nov_dic'.split('_'),\n monthsParse$5 = [\n /^ene/i,\n /^feb/i,\n /^mar/i,\n /^abr/i,\n /^may/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^sep/i,\n /^oct/i,\n /^nov/i,\n /^dic/i,\n ],\n monthsRegex$6 = /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre|ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i;\n\n hooks.defineLocale('es', {\n months: 'enero_febrero_marzo_abril_mayo_junio_julio_agosto_septiembre_octubre_noviembre_diciembre'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortDot$3;\n } else if (/-MMM-/.test(format)) {\n return monthsShort$4[m.month()];\n } else {\n return monthsShortDot$3[m.month()];\n }\n },\n monthsRegex: monthsRegex$6,\n monthsShortRegex: monthsRegex$6,\n monthsStrictRegex: /^(enero|febrero|marzo|abril|mayo|junio|julio|agosto|septiembre|octubre|noviembre|diciembre)/i,\n monthsShortStrictRegex: /^(ene\\.?|feb\\.?|mar\\.?|abr\\.?|may\\.?|jun\\.?|jul\\.?|ago\\.?|sep\\.?|oct\\.?|nov\\.?|dic\\.?)/i,\n monthsParse: monthsParse$5,\n longMonthsParse: monthsParse$5,\n shortMonthsParse: monthsParse$5,\n weekdays: 'domingo_lunes_martes_miĆ©rcoles_jueves_viernes_sĆ”bado'.split('_'),\n weekdaysShort: 'dom._lun._mar._miĆ©._jue._vie._sĆ”b.'.split('_'),\n weekdaysMin: 'do_lu_ma_mi_ju_vi_sĆ”'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoy a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextDay: function () {\n return '[maƱana a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastDay: function () {\n return '[ayer a la' + (this.hours() !== 1 ? 's' : '') + '] LT';\n },\n lastWeek: function () {\n return (\n '[el] dddd [pasado a la' +\n (this.hours() !== 1 ? 's' : '') +\n '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'en %s',\n past: 'hace %s',\n s: 'unos segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'una hora',\n hh: '%d horas',\n d: 'un dĆ­a',\n dd: '%d dĆ­as',\n w: 'una semana',\n ww: '%d semanas',\n M: 'un mes',\n MM: '%d meses',\n y: 'un aƱo',\n yy: '%d aƱos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Āŗ/,\n ordinal: '%dĀŗ',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n invalidDate: 'Fecha invĆ”lida',\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$3(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['mƵne sekundi', 'mƵni sekund', 'paar sekundit'],\n ss: [number + 'sekundi', number + 'sekundit'],\n m: ['ühe minuti', 'üks minut'],\n mm: [number + ' minuti', number + ' minutit'],\n h: ['ühe tunni', 'tund aega', 'üks tund'],\n hh: [number + ' tunni', number + ' tundi'],\n d: ['ühe pƤeva', 'üks pƤev'],\n M: ['kuu aja', 'kuu aega', 'üks kuu'],\n MM: [number + ' kuu', number + ' kuud'],\n y: ['ühe aasta', 'aasta', 'üks aasta'],\n yy: [number + ' aasta', number + ' aastat'],\n };\n if (withoutSuffix) {\n return format[key][2] ? format[key][2] : format[key][1];\n }\n return isFuture ? format[key][0] : format[key][1];\n }\n\n hooks.defineLocale('et', {\n months: 'jaanuar_veebruar_mƤrts_aprill_mai_juuni_juuli_august_september_oktoober_november_detsember'.split(\n '_'\n ),\n monthsShort: 'jaan_veebr_mƤrts_apr_mai_juuni_juuli_aug_sept_okt_nov_dets'.split(\n '_'\n ),\n weekdays: 'pühapƤev_esmaspƤev_teisipƤev_kolmapƤev_neljapƤev_reede_laupƤev'.split(\n '_'\n ),\n weekdaysShort: 'P_E_T_K_N_R_L'.split('_'),\n weekdaysMin: 'P_E_T_K_N_R_L'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[TƤna,] LT',\n nextDay: '[Homme,] LT',\n nextWeek: '[JƤrgmine] dddd LT',\n lastDay: '[Eile,] LT',\n lastWeek: '[Eelmine] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pƤrast',\n past: '%s tagasi',\n s: processRelativeTime$3,\n ss: processRelativeTime$3,\n m: processRelativeTime$3,\n mm: processRelativeTime$3,\n h: processRelativeTime$3,\n hh: processRelativeTime$3,\n d: processRelativeTime$3,\n dd: '%d pƤeva',\n M: processRelativeTime$3,\n MM: processRelativeTime$3,\n y: processRelativeTime$3,\n yy: processRelativeTime$3,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('eu', {\n months: 'urtarrila_otsaila_martxoa_apirila_maiatza_ekaina_uztaila_abuztua_iraila_urria_azaroa_abendua'.split(\n '_'\n ),\n monthsShort: 'urt._ots._mar._api._mai._eka._uzt._abu._ira._urr._aza._abe.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'igandea_astelehena_asteartea_asteazkena_osteguna_ostirala_larunbata'.split(\n '_'\n ),\n weekdaysShort: 'ig._al._ar._az._og._ol._lr.'.split('_'),\n weekdaysMin: 'ig_al_ar_az_og_ol_lr'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY[ko] MMMM[ren] D[a]',\n LLL: 'YYYY[ko] MMMM[ren] D[a] HH:mm',\n LLLL: 'dddd, YYYY[ko] MMMM[ren] D[a] HH:mm',\n l: 'YYYY-M-D',\n ll: 'YYYY[ko] MMM D[a]',\n lll: 'YYYY[ko] MMM D[a] HH:mm',\n llll: 'ddd, YYYY[ko] MMM D[a] HH:mm',\n },\n calendar: {\n sameDay: '[gaur] LT[etan]',\n nextDay: '[bihar] LT[etan]',\n nextWeek: 'dddd LT[etan]',\n lastDay: '[atzo] LT[etan]',\n lastWeek: '[aurreko] dddd LT[etan]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s barru',\n past: 'duela %s',\n s: 'segundo batzuk',\n ss: '%d segundo',\n m: 'minutu bat',\n mm: '%d minutu',\n h: 'ordu bat',\n hh: '%d ordu',\n d: 'egun bat',\n dd: '%d egun',\n M: 'hilabete bat',\n MM: '%d hilabete',\n y: 'urte bat',\n yy: '%d urte',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$6 = {\n 1: 'Ū±',\n 2: 'Ū²',\n 3: 'Ū³',\n 4: 'Ū“',\n 5: 'Ūµ',\n 6: 'Ū¶',\n 7: 'Ū·',\n 8: 'Ūø',\n 9: 'Ū¹',\n 0: 'Ū°',\n },\n numberMap$5 = {\n 'Ū±': '1',\n 'Ū²': '2',\n 'Ū³': '3',\n 'Ū“': '4',\n 'Ūµ': '5',\n 'Ū¶': '6',\n 'Ū·': '7',\n 'Ūø': '8',\n 'Ū¹': '9',\n 'Ū°': '0',\n };\n\n hooks.defineLocale('fa', {\n months: 'Ś˜Ų§Ł†ŁˆŪŒŁ‡_ŁŁˆŲ±ŪŒŁ‡_Ł…Ų§Ų±Ų³_Ų¢ŁˆŲ±ŪŒŁ„_مه_Ś˜ŁˆŲ¦Ł†_Ś˜ŁˆŲ¦ŪŒŁ‡_اوت_سپتامبر_اکتبر_Ł†ŁˆŲ§Ł…ŲØŲ±_ŲÆŲ³Ų§Ł…ŲØŲ±'.split(\n '_'\n ),\n monthsShort: 'Ś˜Ų§Ł†ŁˆŪŒŁ‡_ŁŁˆŲ±ŪŒŁ‡_Ł…Ų§Ų±Ų³_Ų¢ŁˆŲ±ŪŒŁ„_مه_Ś˜ŁˆŲ¦Ł†_Ś˜ŁˆŲ¦ŪŒŁ‡_اوت_سپتامبر_اکتبر_Ł†ŁˆŲ§Ł…ŲØŲ±_ŲÆŲ³Ų§Ł…ŲØŲ±'.split(\n '_'\n ),\n weekdays: 'یک\\u200cؓنبه_ŲÆŁˆŲ“Ł†ŲØŁ‡_سه\\u200cؓنبه_چهارؓنبه_پنج\\u200cؓنبه_جمعه_ؓنبه'.split(\n '_'\n ),\n weekdaysShort: 'یک\\u200cؓنبه_ŲÆŁˆŲ“Ł†ŲØŁ‡_سه\\u200cؓنبه_چهارؓنبه_پنج\\u200cؓنبه_جمعه_ؓنبه'.split(\n '_'\n ),\n weekdaysMin: 'ی_ŲÆ_Ų³_چ_پ_Ų¬_Ų“'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /قبل Ų§Ų² ظهر|ŲØŲ¹ŲÆ Ų§Ų² ظهر/,\n isPM: function (input) {\n return /ŲØŲ¹ŲÆ Ų§Ų² ظهر/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'قبل Ų§Ų² ظهر';\n } else {\n return 'ŲØŲ¹ŲÆ Ų§Ų² ظهر';\n }\n },\n calendar: {\n sameDay: '[Ų§Ł…Ų±ŁˆŲ² Ų³Ų§Ų¹ŲŖ] LT',\n nextDay: '[فردا Ų³Ų§Ų¹ŲŖ] LT',\n nextWeek: 'dddd [Ų³Ų§Ų¹ŲŖ] LT',\n lastDay: '[دیروز Ų³Ų§Ų¹ŲŖ] LT',\n lastWeek: 'dddd [پیؓ] [Ų³Ų§Ų¹ŲŖ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ŲÆŲ± %s',\n past: '%s پیؓ',\n s: 'چند Ų«Ų§Ł†ŪŒŁ‡',\n ss: '%d Ų«Ų§Ł†ŪŒŁ‡',\n m: 'یک ŲÆŁ‚ŪŒŁ‚Ł‡',\n mm: '%d ŲÆŁ‚ŪŒŁ‚Ł‡',\n h: 'یک Ų³Ų§Ų¹ŲŖ',\n hh: '%d Ų³Ų§Ų¹ŲŖ',\n d: 'یک روز',\n dd: '%d روز',\n M: 'یک ماه',\n MM: '%d ماه',\n y: 'یک Ų³Ų§Ł„',\n yy: '%d Ų³Ų§Ł„',\n },\n preparse: function (string) {\n return string\n .replace(/[Ū°-Ū¹]/g, function (match) {\n return numberMap$5[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$6[match];\n })\n .replace(/,/g, '،');\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Ł…/,\n ordinal: '%dŁ…',\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var numbersPast = 'nolla yksi kaksi kolme neljƤ viisi kuusi seitsemƤn kahdeksan yhdeksƤn'.split(\n ' '\n ),\n numbersFuture = [\n 'nolla',\n 'yhden',\n 'kahden',\n 'kolmen',\n 'neljƤn',\n 'viiden',\n 'kuuden',\n numbersPast[7],\n numbersPast[8],\n numbersPast[9],\n ];\n function translate$2(number, withoutSuffix, key, isFuture) {\n var result = '';\n switch (key) {\n case 's':\n return isFuture ? 'muutaman sekunnin' : 'muutama sekunti';\n case 'ss':\n result = isFuture ? 'sekunnin' : 'sekuntia';\n break;\n case 'm':\n return isFuture ? 'minuutin' : 'minuutti';\n case 'mm':\n result = isFuture ? 'minuutin' : 'minuuttia';\n break;\n case 'h':\n return isFuture ? 'tunnin' : 'tunti';\n case 'hh':\n result = isFuture ? 'tunnin' : 'tuntia';\n break;\n case 'd':\n return isFuture ? 'pƤivƤn' : 'pƤivƤ';\n case 'dd':\n result = isFuture ? 'pƤivƤn' : 'pƤivƤƤ';\n break;\n case 'M':\n return isFuture ? 'kuukauden' : 'kuukausi';\n case 'MM':\n result = isFuture ? 'kuukauden' : 'kuukautta';\n break;\n case 'y':\n return isFuture ? 'vuoden' : 'vuosi';\n case 'yy':\n result = isFuture ? 'vuoden' : 'vuotta';\n break;\n }\n result = verbalNumber(number, isFuture) + ' ' + result;\n return result;\n }\n function verbalNumber(number, isFuture) {\n return number < 10\n ? isFuture\n ? numbersFuture[number]\n : numbersPast[number]\n : number;\n }\n\n hooks.defineLocale('fi', {\n months: 'tammikuu_helmikuu_maaliskuu_huhtikuu_toukokuu_kesƤkuu_heinƤkuu_elokuu_syyskuu_lokakuu_marraskuu_joulukuu'.split(\n '_'\n ),\n monthsShort: 'tammi_helmi_maalis_huhti_touko_kesƤ_heinƤ_elo_syys_loka_marras_joulu'.split(\n '_'\n ),\n weekdays: 'sunnuntai_maanantai_tiistai_keskiviikko_torstai_perjantai_lauantai'.split(\n '_'\n ),\n weekdaysShort: 'su_ma_ti_ke_to_pe_la'.split('_'),\n weekdaysMin: 'su_ma_ti_ke_to_pe_la'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM[ta] YYYY',\n LLL: 'Do MMMM[ta] YYYY, [klo] HH.mm',\n LLLL: 'dddd, Do MMMM[ta] YYYY, [klo] HH.mm',\n l: 'D.M.YYYY',\n ll: 'Do MMM YYYY',\n lll: 'Do MMM YYYY, [klo] HH.mm',\n llll: 'ddd, Do MMM YYYY, [klo] HH.mm',\n },\n calendar: {\n sameDay: '[tƤnƤƤn] [klo] LT',\n nextDay: '[huomenna] [klo] LT',\n nextWeek: 'dddd [klo] LT',\n lastDay: '[eilen] [klo] LT',\n lastWeek: '[viime] dddd[na] [klo] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s pƤƤstƤ',\n past: '%s sitten',\n s: translate$2,\n ss: translate$2,\n m: translate$2,\n mm: translate$2,\n h: translate$2,\n hh: translate$2,\n d: translate$2,\n dd: translate$2,\n M: translate$2,\n MM: translate$2,\n y: translate$2,\n yy: translate$2,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('fil', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('fo', {\n months: 'januar_februar_mars_aprĆ­l_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jun_jul_aug_sep_okt_nov_des'.split('_'),\n weekdays: 'sunnudagur_mĆ”nadagur_týsdagur_mikudagur_hósdagur_frĆ­ggjadagur_leygardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mĆ”n_týs_mik_hós_frĆ­_ley'.split('_'),\n weekdaysMin: 'su_mĆ”_tý_mi_hó_fr_le'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D. MMMM, YYYY HH:mm',\n },\n calendar: {\n sameDay: '[ƍ dag kl.] LT',\n nextDay: '[ƍ morgin kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[ƍ gjĆ”r kl.] LT',\n lastWeek: '[sƭưstu] dddd [kl] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'um %s',\n past: '%s sƭưani',\n s: 'fĆ” sekund',\n ss: '%d sekundir',\n m: 'ein minuttur',\n mm: '%d minuttir',\n h: 'ein tĆ­mi',\n hh: '%d tĆ­mar',\n d: 'ein dagur',\n dd: '%d dagar',\n M: 'ein mĆ”naưur',\n MM: '%d mĆ”naưir',\n y: 'eitt Ć”r',\n yy: '%d Ć”r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('fr-ca', {\n months: 'janvier_fĆ©vrier_mars_avril_mai_juin_juillet_aoĆ»t_septembre_octobre_novembre_dĆ©cembre'.split(\n '_'\n ),\n monthsShort: 'janv._fĆ©vr._mars_avr._mai_juin_juil._aoĆ»t_sept._oct._nov._dĆ©c.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui Ć ] LT',\n nextDay: '[Demain Ć ] LT',\n nextWeek: 'dddd [Ć ] LT',\n lastDay: '[Hier Ć ] LT',\n lastWeek: 'dddd [dernier Ć ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('fr-ch', {\n months: 'janvier_fĆ©vrier_mars_avril_mai_juin_juillet_aoĆ»t_septembre_octobre_novembre_dĆ©cembre'.split(\n '_'\n ),\n monthsShort: 'janv._fĆ©vr._mars_avr._mai_juin_juil._aoĆ»t_sept._oct._nov._dĆ©c.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui Ć ] LT',\n nextDay: '[Demain Ć ] LT',\n nextWeek: 'dddd [Ć ] LT',\n lastDay: '[Hier Ć ] LT',\n lastWeek: 'dddd [dernier Ć ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|e)/,\n ordinal: function (number, period) {\n switch (period) {\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'D':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsStrictRegex$1 = /^(janvier|fĆ©vrier|mars|avril|mai|juin|juillet|aoĆ»t|septembre|octobre|novembre|dĆ©cembre)/i,\n monthsShortStrictRegex$1 = /(janv\\.?|fĆ©vr\\.?|mars|avr\\.?|mai|juin|juil\\.?|aoĆ»t|sept\\.?|oct\\.?|nov\\.?|dĆ©c\\.?)/i,\n monthsRegex$7 = /(janv\\.?|fĆ©vr\\.?|mars|avr\\.?|mai|juin|juil\\.?|aoĆ»t|sept\\.?|oct\\.?|nov\\.?|dĆ©c\\.?|janvier|fĆ©vrier|mars|avril|mai|juin|juillet|aoĆ»t|septembre|octobre|novembre|dĆ©cembre)/i,\n monthsParse$6 = [\n /^janv/i,\n /^fĆ©vr/i,\n /^mars/i,\n /^avr/i,\n /^mai/i,\n /^juin/i,\n /^juil/i,\n /^aoĆ»t/i,\n /^sept/i,\n /^oct/i,\n /^nov/i,\n /^dĆ©c/i,\n ];\n\n hooks.defineLocale('fr', {\n months: 'janvier_fĆ©vrier_mars_avril_mai_juin_juillet_aoĆ»t_septembre_octobre_novembre_dĆ©cembre'.split(\n '_'\n ),\n monthsShort: 'janv._fĆ©vr._mars_avr._mai_juin_juil._aoĆ»t_sept._oct._nov._dĆ©c.'.split(\n '_'\n ),\n monthsRegex: monthsRegex$7,\n monthsShortRegex: monthsRegex$7,\n monthsStrictRegex: monthsStrictRegex$1,\n monthsShortStrictRegex: monthsShortStrictRegex$1,\n monthsParse: monthsParse$6,\n longMonthsParse: monthsParse$6,\n shortMonthsParse: monthsParse$6,\n weekdays: 'dimanche_lundi_mardi_mercredi_jeudi_vendredi_samedi'.split('_'),\n weekdaysShort: 'dim._lun._mar._mer._jeu._ven._sam.'.split('_'),\n weekdaysMin: 'di_lu_ma_me_je_ve_sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Aujourd’hui Ć ] LT',\n nextDay: '[Demain Ć ] LT',\n nextWeek: 'dddd [Ć ] LT',\n lastDay: '[Hier Ć ] LT',\n lastWeek: 'dddd [dernier Ć ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dans %s',\n past: 'il y a %s',\n s: 'quelques secondes',\n ss: '%d secondes',\n m: 'une minute',\n mm: '%d minutes',\n h: 'une heure',\n hh: '%d heures',\n d: 'un jour',\n dd: '%d jours',\n w: 'une semaine',\n ww: '%d semaines',\n M: 'un mois',\n MM: '%d mois',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er|)/,\n ordinal: function (number, period) {\n switch (period) {\n // TODO: Return 'e' when day of month > 1. Move this case inside\n // block for masculine words below.\n // See https://github.com/moment/moment/issues/3375\n case 'D':\n return number + (number === 1 ? 'er' : '');\n\n // Words with masculine grammatical gender: mois, trimestre, jour\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n return number + (number === 1 ? 'er' : 'e');\n\n // Words with feminine grammatical gender: semaine\n case 'w':\n case 'W':\n return number + (number === 1 ? 're' : 'e');\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortWithDots = 'jan._feb._mrt._apr._mai_jun._jul._aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsShortWithoutDots = 'jan_feb_mrt_apr_mai_jun_jul_aug_sep_okt_nov_des'.split(\n '_'\n );\n\n hooks.defineLocale('fy', {\n months: 'jannewaris_febrewaris_maart_april_maaie_juny_july_augustus_septimber_oktober_novimber_desimber'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots[m.month()];\n } else {\n return monthsShortWithDots[m.month()];\n }\n },\n monthsParseExact: true,\n weekdays: 'snein_moandei_tiisdei_woansdei_tongersdei_freed_sneon'.split(\n '_'\n ),\n weekdaysShort: 'si._mo._ti._wo._to._fr._so.'.split('_'),\n weekdaysMin: 'Si_Mo_Ti_Wo_To_Fr_So'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[hjoed om] LT',\n nextDay: '[moarn om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[juster om] LT',\n lastWeek: '[Ć“frĆ»ne] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'oer %s',\n past: '%s lyn',\n s: 'in pear sekonden',\n ss: '%d sekonden',\n m: 'ien minĆŗt',\n mm: '%d minuten',\n h: 'ien oere',\n hh: '%d oeren',\n d: 'ien dei',\n dd: '%d dagen',\n M: 'ien moanne',\n MM: '%d moannen',\n y: 'ien jier',\n yy: '%d jierren',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$6 = [\n 'EanĆ”ir',\n 'Feabhra',\n 'MĆ”rta',\n 'AibreĆ”n',\n 'Bealtaine',\n 'Meitheamh',\n 'IĆŗil',\n 'LĆŗnasa',\n 'MeĆ”n Fómhair',\n 'Deireadh Fómhair',\n 'Samhain',\n 'Nollaig',\n ],\n monthsShort$5 = [\n 'Ean',\n 'Feabh',\n 'MĆ”rt',\n 'Aib',\n 'Beal',\n 'Meith',\n 'IĆŗil',\n 'LĆŗn',\n 'M.F.',\n 'D.F.',\n 'Samh',\n 'Noll',\n ],\n weekdays$1 = [\n 'DĆ© Domhnaigh',\n 'DĆ© Luain',\n 'DĆ© MĆ”irt',\n 'DĆ© CĆ©adaoin',\n 'DĆ©ardaoin',\n 'DĆ© hAoine',\n 'DĆ© Sathairn',\n ],\n weekdaysShort = ['Domh', 'Luan', 'MĆ”irt', 'CĆ©ad', 'DĆ©ar', 'Aoine', 'Sath'],\n weekdaysMin = ['Do', 'Lu', 'MĆ”', 'CĆ©', 'DĆ©', 'A', 'Sa'];\n\n hooks.defineLocale('ga', {\n months: months$6,\n monthsShort: monthsShort$5,\n monthsParseExact: true,\n weekdays: weekdays$1,\n weekdaysShort: weekdaysShort,\n weekdaysMin: weekdaysMin,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Inniu ag] LT',\n nextDay: '[AmĆ”rach ag] LT',\n nextWeek: 'dddd [ag] LT',\n lastDay: '[InnĆ© ag] LT',\n lastWeek: 'dddd [seo caite] [ag] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i %s',\n past: '%s ó shin',\n s: 'cĆŗpla soicind',\n ss: '%d soicind',\n m: 'nóimĆ©ad',\n mm: '%d nóimĆ©ad',\n h: 'uair an chloig',\n hh: '%d uair an chloig',\n d: 'lĆ”',\n dd: '%d lĆ”',\n M: 'mĆ­',\n MM: '%d mĆ­onna',\n y: 'bliain',\n yy: '%d bliain',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$7 = [\n 'Am Faoilleach',\n 'An Gearran',\n 'Am MĆ rt',\n 'An Giblean',\n 'An CĆØitean',\n 'An t-ƒgmhios',\n 'An t-Iuchar',\n 'An Lùnastal',\n 'An t-Sultain',\n 'An DĆ mhair',\n 'An t-Samhain',\n 'An Dùbhlachd',\n ],\n monthsShort$6 = [\n 'Faoi',\n 'Gear',\n 'MĆ rt',\n 'Gibl',\n 'CĆØit',\n 'ƒgmh',\n 'Iuch',\n 'Lùn',\n 'Sult',\n 'DĆ mh',\n 'Samh',\n 'Dùbh',\n ],\n weekdays$2 = [\n 'Didòmhnaich',\n 'Diluain',\n 'DimĆ irt',\n 'Diciadain',\n 'Diardaoin',\n 'Dihaoine',\n 'Disathairne',\n ],\n weekdaysShort$1 = ['Did', 'Dil', 'Dim', 'Dic', 'Dia', 'Dih', 'Dis'],\n weekdaysMin$1 = ['Dò', 'Lu', 'MĆ ', 'Ci', 'Ar', 'Ha', 'Sa'];\n\n hooks.defineLocale('gd', {\n months: months$7,\n monthsShort: monthsShort$6,\n monthsParseExact: true,\n weekdays: weekdays$2,\n weekdaysShort: weekdaysShort$1,\n weekdaysMin: weekdaysMin$1,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[An-diugh aig] LT',\n nextDay: '[A-mĆ ireach aig] LT',\n nextWeek: 'dddd [aig] LT',\n lastDay: '[An-dĆØ aig] LT',\n lastWeek: 'dddd [seo chaidh] [aig] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ann an %s',\n past: 'bho chionn %s',\n s: 'beagan diogan',\n ss: '%d diogan',\n m: 'mionaid',\n mm: '%d mionaidean',\n h: 'uair',\n hh: '%d uairean',\n d: 'latha',\n dd: '%d latha',\n M: 'mƬos',\n MM: '%d mƬosan',\n y: 'bliadhna',\n yy: '%d bliadhna',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(d|na|mh)/,\n ordinal: function (number) {\n var output = number === 1 ? 'd' : number % 10 === 2 ? 'na' : 'mh';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('gl', {\n months: 'xaneiro_febreiro_marzo_abril_maio_xuƱo_xullo_agosto_setembro_outubro_novembro_decembro'.split(\n '_'\n ),\n monthsShort: 'xan._feb._mar._abr._mai._xuƱ._xul._ago._set._out._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'domingo_luns_martes_mĆ©rcores_xoves_venres_sĆ”bado'.split('_'),\n weekdaysShort: 'dom._lun._mar._mĆ©r._xov._ven._sĆ”b.'.split('_'),\n weekdaysMin: 'do_lu_ma_mĆ©_xo_ve_sĆ”'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY H:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY H:mm',\n },\n calendar: {\n sameDay: function () {\n return '[hoxe ' + (this.hours() !== 1 ? 'Ć”s' : 'Ć”') + '] LT';\n },\n nextDay: function () {\n return '[maƱƔ ' + (this.hours() !== 1 ? 'Ć”s' : 'Ć”') + '] LT';\n },\n nextWeek: function () {\n return 'dddd [' + (this.hours() !== 1 ? 'Ć”s' : 'a') + '] LT';\n },\n lastDay: function () {\n return '[onte ' + (this.hours() !== 1 ? 'Ć”' : 'a') + '] LT';\n },\n lastWeek: function () {\n return (\n '[o] dddd [pasado ' + (this.hours() !== 1 ? 'Ć”s' : 'a') + '] LT'\n );\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (str) {\n if (str.indexOf('un') === 0) {\n return 'n' + str;\n }\n return 'en ' + str;\n },\n past: 'hai %s',\n s: 'uns segundos',\n ss: '%d segundos',\n m: 'un minuto',\n mm: '%d minutos',\n h: 'unha hora',\n hh: '%d horas',\n d: 'un dĆ­a',\n dd: '%d dĆ­as',\n M: 'un mes',\n MM: '%d meses',\n y: 'un ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Āŗ/,\n ordinal: '%dĀŗ',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$4(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['ą¤„ą„‹ą¤”ą¤Æą¤¾ ą¤øą„…ą¤•ą¤‚ą¤”ą¤¾ą¤‚ą¤Øą„€', 'ą¤„ą„‹ą¤”ą„‡ ą¤øą„…ą¤•ą¤‚ą¤”'],\n ss: [number + ' ą¤øą„…ą¤•ą¤‚ą¤”ą¤¾ą¤‚ą¤Øą„€', number + ' ą¤øą„…ą¤•ą¤‚ą¤”'],\n m: ['ą¤ą¤•ą¤¾ मिणटान', 'ą¤ą¤• ą¤®ą¤æą¤Øą„‚ą¤Ÿ'],\n mm: [number + ' ą¤®ą¤æą¤£ą¤Ÿą¤¾ą¤‚ą¤Øą„€', number + ' ą¤®ą¤æą¤£ą¤Ÿą¤¾ą¤‚'],\n h: ['ą¤ą¤•ą¤¾ वरान', 'ą¤ą¤• वर'],\n hh: [number + ' ą¤µą¤°ą¤¾ą¤‚ą¤Øą„€', number + ' वरां'],\n d: ['ą¤ą¤•ą¤¾ दिसान', 'ą¤ą¤• ą¤¦ą„€ą¤ø'],\n dd: [number + ' ą¤¦ą¤æą¤øą¤¾ą¤‚ą¤Øą„€', number + ' ą¤¦ą„€ą¤ø'],\n M: ['ą¤ą¤•ą¤¾ ą¤®ą„ą¤¹ą¤Æą¤Øą„ą¤Æą¤¾ą¤Ø', 'ą¤ą¤• ą¤®ą„ą¤¹ą¤Æą¤Øą„‹'],\n MM: [number + ' ą¤®ą„ą¤¹ą¤Æą¤Øą„ą¤Æą¤¾ą¤Øą„€', number + ' ą¤®ą„ą¤¹ą¤Æą¤Øą„‡'],\n y: ['ą¤ą¤•ą¤¾ ą¤µą¤°ą„ą¤øą¤¾ą¤Ø', 'ą¤ą¤• ą¤µą¤°ą„ą¤ø'],\n yy: [number + ' ą¤µą¤°ą„ą¤øą¤¾ą¤‚ą¤Øą„€', number + ' ą¤µą¤°ą„ą¤øą¤¾ą¤‚'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n hooks.defineLocale('gom-deva', {\n months: {\n standalone: 'ą¤œą¤¾ą¤Øą„‡ą¤µą¤¾ą¤°ą„€_ą¤«ą„‡ą¤¬ą„ą¤°ą„ą¤µą¤¾ą¤°ą„€_ą¤®ą¤¾ą¤°ą„ą¤š_ą¤ą¤Ŗą„ą¤°ą„€ą¤²_ą¤®ą„‡_ą¤œą„‚ą¤Ø_ą¤œą„ą¤²ą¤Æ_ą¤‘ą¤—ą¤øą„ą¤Ÿ_ą¤øą¤Ŗą„ą¤Ÿą„‡ą¤‚ą¤¬ą¤°_ą¤‘ą¤•ą„ą¤Ÿą„‹ą¤¬ą¤°_ą¤Øą„‹ą¤µą„ą¤¹ą„‡ą¤‚ą¤¬ą¤°_ą¤”ą¤æą¤øą„‡ą¤‚ą¤¬ą¤°'.split(\n '_'\n ),\n format: 'ą¤œą¤¾ą¤Øą„‡ą¤µą¤¾ą¤°ą„€ą¤šą„ą¤Æą¤¾_ą¤«ą„‡ą¤¬ą„ą¤°ą„ą¤µą¤¾ą¤°ą„€ą¤šą„ą¤Æą¤¾_ą¤®ą¤¾ą¤°ą„ą¤šą¤¾ą¤šą„ą¤Æą¤¾_ą¤ą¤Ŗą„ą¤°ą„€ą¤²ą¤¾ą¤šą„ą¤Æą¤¾_ą¤®ą„‡ą¤Æą¤¾ą¤šą„ą¤Æą¤¾_ą¤œą„‚ą¤Øą¤¾ą¤šą„ą¤Æą¤¾_ą¤œą„ą¤²ą¤Æą¤¾ą¤šą„ą¤Æą¤¾_ą¤‘ą¤—ą¤øą„ą¤Ÿą¤¾ą¤šą„ą¤Æą¤¾_ą¤øą¤Ŗą„ą¤Ÿą„‡ą¤‚ą¤¬ą¤°ą¤¾ą¤šą„ą¤Æą¤¾_ą¤‘ą¤•ą„ą¤Ÿą„‹ą¤¬ą¤°ą¤¾ą¤šą„ą¤Æą¤¾_ą¤Øą„‹ą¤µą„ą¤¹ą„‡ą¤‚ą¤¬ą¤°ą¤¾ą¤šą„ą¤Æą¤¾_ą¤”ą¤æą¤øą„‡ą¤‚ą¤¬ą¤°ą¤¾ą¤šą„ą¤Æą¤¾'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'ą¤œą¤¾ą¤Øą„‡._ą¤«ą„‡ą¤¬ą„ą¤°ą„._ą¤®ą¤¾ą¤°ą„ą¤š_ą¤ą¤Ŗą„ą¤°ą„€._ą¤®ą„‡_ą¤œą„‚ą¤Ø_ą¤œą„ą¤²._ऑग._ą¤øą¤Ŗą„ą¤Ÿą„‡ą¤‚._ą¤‘ą¤•ą„ą¤Ÿą„‹._ą¤Øą„‹ą¤µą„ą¤¹ą„‡ą¤‚._ą¤”ą¤æą¤øą„‡ą¤‚.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आयतार_ą¤øą„‹ą¤®ą¤¾ą¤°_मंगळार_ą¤¬ą„ą¤§ą¤µą¤¾ą¤°_ą¤¬ą¤æą¤°ą„‡ą¤øą„ą¤¤ą¤¾ą¤°_ą¤øą„ą¤•ą„ą¤°ą¤¾ą¤°_ą¤¶ą„‡ą¤Øą¤µą¤¾ą¤°'.split('_'),\n weekdaysShort: 'आयत._ą¤øą„‹ą¤®._मंगळ._ą¤¬ą„ą¤§._ą¤¬ą„ą¤°ą„‡ą¤øą„ą¤¤._ą¤øą„ą¤•ą„ą¤°._ą¤¶ą„‡ą¤Ø.'.split('_'),\n weekdaysMin: 'आ_ą¤øą„‹_मं_ą¤¬ą„_ą¤¬ą„ą¤°ą„‡_ą¤øą„_ą¤¶ą„‡'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [ą¤µą¤¾ą¤œą¤¤ą¤¾ą¤‚]',\n LTS: 'A h:mm:ss [ą¤µą¤¾ą¤œą¤¤ą¤¾ą¤‚]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [ą¤µą¤¾ą¤œą¤¤ą¤¾ą¤‚]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [ą¤µą¤¾ą¤œą¤¤ą¤¾ą¤‚]',\n llll: 'ddd, D MMM YYYY, A h:mm [ą¤µą¤¾ą¤œą¤¤ą¤¾ą¤‚]',\n },\n calendar: {\n sameDay: '[ą¤†ą¤Æą¤œ] LT',\n nextDay: '[ą¤«ą¤¾ą¤²ą„ą¤Æą¤¾ą¤‚] LT',\n nextWeek: '[ą¤«ą„ą¤”ą¤²ą„‹] dddd[,] LT',\n lastDay: '[काल] LT',\n lastWeek: '[ą¤«ą¤¾ą¤Ÿą¤²ą„‹] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s ą¤†ą¤¦ą„€ą¤‚',\n s: processRelativeTime$4,\n ss: processRelativeTime$4,\n m: processRelativeTime$4,\n mm: processRelativeTime$4,\n h: processRelativeTime$4,\n hh: processRelativeTime$4,\n d: processRelativeTime$4,\n dd: processRelativeTime$4,\n M: processRelativeTime$4,\n MM: processRelativeTime$4,\n y: processRelativeTime$4,\n yy: processRelativeTime$4,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ą¤µą„‡ą¤°)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'ą¤µą„‡ą¤°' only applies to day of the month\n case 'D':\n return number + 'ą¤µą„‡ą¤°';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /ą¤°ą¤¾ą¤¤ą„€|ą¤øą¤•ą¤¾ą¤³ą„€ą¤‚|दनपारां|ą¤øą¤¾ą¤‚ą¤œą„‡/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ą¤°ą¤¾ą¤¤ą„€') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ą¤øą¤•ą¤¾ą¤³ą„€ą¤‚') {\n return hour;\n } else if (meridiem === 'दनपारां') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'ą¤øą¤¾ą¤‚ą¤œą„‡') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ą¤°ą¤¾ą¤¤ą„€';\n } else if (hour < 12) {\n return 'ą¤øą¤•ą¤¾ą¤³ą„€ą¤‚';\n } else if (hour < 16) {\n return 'दनपारां';\n } else if (hour < 20) {\n return 'ą¤øą¤¾ą¤‚ą¤œą„‡';\n } else {\n return 'ą¤°ą¤¾ą¤¤ą„€';\n }\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$5(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['thoddea sekondamni', 'thodde sekond'],\n ss: [number + ' sekondamni', number + ' sekond'],\n m: ['eka mintan', 'ek minut'],\n mm: [number + ' mintamni', number + ' mintam'],\n h: ['eka voran', 'ek vor'],\n hh: [number + ' voramni', number + ' voram'],\n d: ['eka disan', 'ek dis'],\n dd: [number + ' disamni', number + ' dis'],\n M: ['eka mhoinean', 'ek mhoino'],\n MM: [number + ' mhoineamni', number + ' mhoine'],\n y: ['eka vorsan', 'ek voros'],\n yy: [number + ' vorsamni', number + ' vorsam'],\n };\n return isFuture ? format[key][0] : format[key][1];\n }\n\n hooks.defineLocale('gom-latn', {\n months: {\n standalone: 'Janer_Febrer_Mars_Abril_Mai_Jun_Julai_Agost_Setembr_Otubr_Novembr_Dezembr'.split(\n '_'\n ),\n format: 'Janerachea_Febrerachea_Marsachea_Abrilachea_Maiachea_Junachea_Julaiachea_Agostachea_Setembrachea_Otubrachea_Novembrachea_Dezembrachea'.split(\n '_'\n ),\n isFormat: /MMMM(\\s)+D[oD]?/,\n },\n monthsShort: 'Jan._Feb._Mars_Abr._Mai_Jun_Jul._Ago._Set._Otu._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: \"Aitar_Somar_Mongllar_Budhvar_Birestar_Sukrar_Son'var\".split('_'),\n weekdaysShort: 'Ait._Som._Mon._Bud._Bre._Suk._Son.'.split('_'),\n weekdaysMin: 'Ai_Sm_Mo_Bu_Br_Su_Sn'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'A h:mm [vazta]',\n LTS: 'A h:mm:ss [vazta]',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY A h:mm [vazta]',\n LLLL: 'dddd, MMMM Do, YYYY, A h:mm [vazta]',\n llll: 'ddd, D MMM YYYY, A h:mm [vazta]',\n },\n calendar: {\n sameDay: '[Aiz] LT',\n nextDay: '[Faleam] LT',\n nextWeek: '[Fuddlo] dddd[,] LT',\n lastDay: '[Kal] LT',\n lastWeek: '[Fattlo] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s',\n past: '%s adim',\n s: processRelativeTime$5,\n ss: processRelativeTime$5,\n m: processRelativeTime$5,\n mm: processRelativeTime$5,\n h: processRelativeTime$5,\n hh: processRelativeTime$5,\n d: processRelativeTime$5,\n dd: processRelativeTime$5,\n M: processRelativeTime$5,\n MM: processRelativeTime$5,\n y: processRelativeTime$5,\n yy: processRelativeTime$5,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(er)/,\n ordinal: function (number, period) {\n switch (period) {\n // the ordinal 'er' only applies to day of the month\n case 'D':\n return number + 'er';\n default:\n case 'M':\n case 'Q':\n case 'DDD':\n case 'd':\n case 'w':\n case 'W':\n return number;\n }\n },\n week: {\n dow: 0, // Sunday is the first day of the week\n doy: 3, // The week that contains Jan 4th is the first week of the year (7 + 0 - 4)\n },\n meridiemParse: /rati|sokallim|donparam|sanje/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'rati') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'sokallim') {\n return hour;\n } else if (meridiem === 'donparam') {\n return hour > 12 ? hour : hour + 12;\n } else if (meridiem === 'sanje') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'rati';\n } else if (hour < 12) {\n return 'sokallim';\n } else if (hour < 16) {\n return 'donparam';\n } else if (hour < 20) {\n return 'sanje';\n } else {\n return 'rati';\n }\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$7 = {\n 1: 'ą«§',\n 2: '૨',\n 3: 'ą«©',\n 4: '૪',\n 5: 'ą««',\n 6: '૬',\n 7: 'ą«­',\n 8: 'ą«®',\n 9: '૯',\n 0: '૦',\n },\n numberMap$6 = {\n 'ą«§': '1',\n '૨': '2',\n 'ą«©': '3',\n '૪': '4',\n 'ą««': '5',\n '૬': '6',\n 'ą«­': '7',\n 'ą«®': '8',\n '૯': '9',\n '૦': '0',\n };\n\n hooks.defineLocale('gu', {\n months: 'ąŖœąŖ¾ąŖØą«ąŖÆą«ąŖ†ąŖ°ą«€_ąŖ«ą«‡ąŖ¬ą«ąŖ°ą«ąŖ†ąŖ°ą«€_ąŖ®ąŖ¾ąŖ°ą«ąŖš_ąŖąŖŖą«ąŖ°ąŖæąŖ²_મે_ąŖœą«‚ąŖØ_જુલાઈ_ąŖ‘ąŖ—ąŖøą«ąŖŸ_ąŖøąŖŖą«ąŖŸą«‡ąŖ®ą«ąŖ¬ąŖ°_ąŖ‘ąŖ•ą«ąŖŸą«ąŖ¬ąŖ°_ąŖØąŖµą«‡ąŖ®ą«ąŖ¬ąŖ°_ąŖ”ąŖæąŖøą«‡ąŖ®ą«ąŖ¬ąŖ°'.split(\n '_'\n ),\n monthsShort: 'ąŖœąŖ¾ąŖØą«ąŖÆą«._ąŖ«ą«‡ąŖ¬ą«ąŖ°ą«._ąŖ®ąŖ¾ąŖ°ą«ąŖš_ąŖąŖŖą«ąŖ°ąŖæ._મે_ąŖœą«‚ąŖØ_જુલા._ąŖ‘ąŖ—._ąŖøąŖŖą«ąŖŸą«‡._ąŖ‘ąŖ•ą«ąŖŸą«._નવે._ઔિસે.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'રવિવાર_સોમવાર_મંગળવાર_ąŖ¬ą«ąŖ§ą«ąŖµąŖ¾ąŖ°_ગુરુવાર_ąŖ¶ą«ąŖ•ą«ąŖ°ąŖµąŖ¾ąŖ°_શનિવાર'.split(\n '_'\n ),\n weekdaysShort: 'રવિ_ąŖøą«‹ąŖ®_મંગળ_ąŖ¬ą«ąŖ§ą«_ગુરુ_ąŖ¶ą«ąŖ•ą«ąŖ°_ąŖ¶ąŖØąŖæ'.split('_'),\n weekdaysMin: 'ąŖ°_ąŖøą«‹_મં_બુ_ગુ_શુ_ąŖ¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ąŖµąŖ¾ąŖ—ą«ąŖÆą«‡',\n LTS: 'A h:mm:ss ąŖµąŖ¾ąŖ—ą«ąŖÆą«‡',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ąŖµąŖ¾ąŖ—ą«ąŖÆą«‡',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ąŖµąŖ¾ąŖ—ą«ąŖÆą«‡',\n },\n calendar: {\n sameDay: '[ąŖ†ąŖœ] LT',\n nextDay: '[કાલે] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ગઇકાલે] LT',\n lastWeek: '[પાછલા] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s મા',\n past: '%s પહેલા',\n s: 'અમુક પળો',\n ss: '%d સેકંઔ',\n m: 'ąŖąŖ• મિનિટ',\n mm: '%d મિનિટ',\n h: 'ąŖąŖ• કલાક',\n hh: '%d કલાક',\n d: 'ąŖąŖ• દિવસ',\n dd: '%d દિવસ',\n M: 'ąŖąŖ• મહિનો',\n MM: '%d મહિનો',\n y: 'ąŖąŖ• ąŖµąŖ°ą«ąŖ·',\n yy: '%d ąŖµąŖ°ą«ąŖ·',\n },\n preparse: function (string) {\n return string.replace(/[૧૨૩૪૫૬૭૮૯૦]/g, function (match) {\n return numberMap$6[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$7[match];\n });\n },\n // Gujarati notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Gujarati.\n meridiemParse: /રાત|બપોર|સવાર|ąŖøąŖ¾ąŖ‚ąŖœ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'રાત') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'સવાર') {\n return hour;\n } else if (meridiem === 'બપોર') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ąŖøąŖ¾ąŖ‚ąŖœ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'રાત';\n } else if (hour < 10) {\n return 'સવાર';\n } else if (hour < 17) {\n return 'બપોર';\n } else if (hour < 20) {\n return 'ąŖøąŖ¾ąŖ‚ąŖœ';\n } else {\n return 'રાત';\n }\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('he', {\n months: 'ינואר_פברואר_×ž×Ø×„_××¤×Ø×™×œ_מאי_יוני_יולי_אוגוהט_×”×¤×˜×ž×‘×Ø_××•×§×˜×•×‘×Ø_× ×•×‘×ž×‘×Ø_×“×¦×ž×‘×Ø'.split(\n '_'\n ),\n monthsShort: 'ינו׳_פבר׳_×ž×Ø×„_אפר׳_מאי_יוני_יולי_אוג׳_הפט׳_אוק׳_נוב׳_דצמ׳'.split(\n '_'\n ),\n weekdays: '×Ø××©×•×Ÿ_שני_שלישי_רביעי_חמישי_שישי_שבת'.split('_'),\n weekdaysShort: 'א׳_ב׳_ג׳_ד׳_ה׳_ו׳_ש׳'.split('_'),\n weekdaysMin: 'א_ב_ג_ד_ה_ו_ש'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [ב]MMMM YYYY',\n LLL: 'D [ב]MMMM YYYY HH:mm',\n LLLL: 'dddd, D [ב]MMMM YYYY HH:mm',\n l: 'D/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[היום ב־]LT',\n nextDay: '[×ž×—×Ø ב־]LT',\n nextWeek: 'dddd [בשעה] LT',\n lastDay: '[××Ŗ×ž×•×œ ב־]LT',\n lastWeek: '[ביום] dddd [×”××—×Ø×•×Ÿ בשעה] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'בעוד %s',\n past: 'לפני %s',\n s: '×ž×”×¤×Ø שניות',\n ss: '%d שניות',\n m: 'דקה',\n mm: '%d דקות',\n h: 'שעה',\n hh: function (number) {\n if (number === 2) {\n return '×©×¢×Ŗ×™×™×';\n }\n return number + ' שעות';\n },\n d: 'יום',\n dd: function (number) {\n if (number === 2) {\n return 'יומיים';\n }\n return number + ' ימים';\n },\n M: 'חודש',\n MM: function (number) {\n if (number === 2) {\n return 'חודשיים';\n }\n return number + ' חודשים';\n },\n y: 'שנה',\n yy: function (number) {\n if (number === 2) {\n return '×©× ×Ŗ×™×™×';\n } else if (number % 10 === 0 && number !== 10) {\n return number + ' שנה';\n }\n return number + ' שנים';\n },\n },\n meridiemParse: /אחה\"צ|לפנה\"צ|אחרי ×”×¦×”×Ø×™×™×|לפני ×”×¦×”×Ø×™×™×|×œ×¤× ×•×Ŗ בוקר|בבוקר|בערב/i,\n isPM: function (input) {\n return /^(אחה\"צ|אחרי ×”×¦×”×Ø×™×™×|בערב)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 5) {\n return '×œ×¤× ×•×Ŗ בוקר';\n } else if (hour < 10) {\n return 'בבוקר';\n } else if (hour < 12) {\n return isLower ? 'לפנה\"צ' : 'לפני ×”×¦×”×Ø×™×™×';\n } else if (hour < 18) {\n return isLower ? 'אחה\"צ' : 'אחרי ×”×¦×”×Ø×™×™×';\n } else {\n return 'בערב';\n }\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$8 = {\n 1: 'ą„§',\n 2: 'ą„Ø',\n 3: 'ą„©',\n 4: 'ą„Ŗ',\n 5: 'ą„«',\n 6: 'ą„¬',\n 7: 'ą„­',\n 8: 'ą„®',\n 9: 'ą„Æ',\n 0: 'ą„¦',\n },\n numberMap$7 = {\n 'ą„§': '1',\n 'ą„Ø': '2',\n 'ą„©': '3',\n 'ą„Ŗ': '4',\n 'ą„«': '5',\n 'ą„¬': '6',\n 'ą„­': '7',\n 'ą„®': '8',\n 'ą„Æ': '9',\n 'ą„¦': '0',\n },\n monthsParse$7 = [\n /^जन/i,\n /^फ़र|फर/i,\n /^ą¤®ą¤¾ą¤°ą„ą¤š/i,\n /^ą¤…ą¤Ŗą„ą¤°ą„ˆ/i,\n /^मई/i,\n /^ą¤œą„‚ą¤Ø/i,\n /^ą¤œą„ą¤²/i,\n /^अग/i,\n /^सितं|सित/i,\n /^ą¤…ą¤•ą„ą¤Ÿą„‚/i,\n /^नव|नवं/i,\n /^दिसं|दिस/i,\n ],\n shortMonthsParse = [\n /^जन/i,\n /^फ़र/i,\n /^ą¤®ą¤¾ą¤°ą„ą¤š/i,\n /^ą¤…ą¤Ŗą„ą¤°ą„ˆ/i,\n /^मई/i,\n /^ą¤œą„‚ą¤Ø/i,\n /^ą¤œą„ą¤²/i,\n /^अग/i,\n /^सित/i,\n /^ą¤…ą¤•ą„ą¤Ÿą„‚/i,\n /^नव/i,\n /^दिस/i,\n ];\n\n hooks.defineLocale('hi', {\n months: {\n format: 'ą¤œą¤Øą¤µą¤°ą„€_ą¤«ą¤¼ą¤°ą¤µą¤°ą„€_ą¤®ą¤¾ą¤°ą„ą¤š_ą¤…ą¤Ŗą„ą¤°ą„ˆą¤²_मई_ą¤œą„‚ą¤Ø_ą¤œą„ą¤²ą¤¾ą¤ˆ_ą¤…ą¤—ą¤øą„ą¤¤_ą¤øą¤æą¤¤ą¤®ą„ą¤¬ą¤°_ą¤…ą¤•ą„ą¤Ÿą„‚ą¤¬ą¤°_ą¤Øą¤µą¤®ą„ą¤¬ą¤°_ą¤¦ą¤æą¤øą¤®ą„ą¤¬ą¤°'.split(\n '_'\n ),\n standalone: 'ą¤œą¤Øą¤µą¤°ą„€_ą¤«ą¤°ą¤µą¤°ą„€_ą¤®ą¤¾ą¤°ą„ą¤š_ą¤…ą¤Ŗą„ą¤°ą„ˆą¤²_मई_ą¤œą„‚ą¤Ø_ą¤œą„ą¤²ą¤¾ą¤ˆ_ą¤…ą¤—ą¤øą„ą¤¤_सितंबर_ą¤…ą¤•ą„ą¤Ÿą„‚ą¤¬ą¤°_नवंबर_दिसंबर'.split(\n '_'\n ),\n },\n monthsShort: 'जन._फ़र._ą¤®ą¤¾ą¤°ą„ą¤š_ą¤…ą¤Ŗą„ą¤°ą„ˆ._मई_ą¤œą„‚ą¤Ø_ą¤œą„ą¤²._अग._सित._ą¤…ą¤•ą„ą¤Ÿą„‚._नव._दिस.'.split(\n '_'\n ),\n weekdays: 'रविवार_ą¤øą„‹ą¤®ą¤µą¤¾ą¤°_मंगलवार_ą¤¬ą„ą¤§ą¤µą¤¾ą¤°_ą¤—ą„ą¤°ą„‚ą¤µą¤¾ą¤°_ą¤¶ą„ą¤•ą„ą¤°ą¤µą¤¾ą¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_ą¤øą„‹ą¤®_मंगल_ą¤¬ą„ą¤§_ą¤—ą„ą¤°ą„‚_ą¤¶ą„ą¤•ą„ą¤°_शनि'.split('_'),\n weekdaysMin: 'र_ą¤øą„‹_मं_ą¤¬ą„_ą¤—ą„_ą¤¶ą„_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ą¤¬ą¤œą„‡',\n LTS: 'A h:mm:ss ą¤¬ą¤œą„‡',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ą¤¬ą¤œą„‡',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ą¤¬ą¤œą„‡',\n },\n\n monthsParse: monthsParse$7,\n longMonthsParse: monthsParse$7,\n shortMonthsParse: shortMonthsParse,\n\n monthsRegex: /^(ą¤œą¤Øą¤µą¤°ą„€|जन\\.?|ą¤«ą¤¼ą¤°ą¤µą¤°ą„€|ą¤«ą¤°ą¤µą¤°ą„€|फ़र\\.?|ą¤®ą¤¾ą¤°ą„ą¤š?|ą¤…ą¤Ŗą„ą¤°ą„ˆą¤²|ą¤…ą¤Ŗą„ą¤°ą„ˆ\\.?|मई?|ą¤œą„‚ą¤Ø?|ą¤œą„ą¤²ą¤¾ą¤ˆ|ą¤œą„ą¤²\\.?|ą¤…ą¤—ą¤øą„ą¤¤|अग\\.?|ą¤øą¤æą¤¤ą¤®ą„ą¤¬ą¤°|सितंबर|सित\\.?|ą¤…ą¤•ą„ą¤Ÿą„‚ą¤¬ą¤°|ą¤…ą¤•ą„ą¤Ÿą„‚\\.?|ą¤Øą¤µą¤®ą„ą¤¬ą¤°|नवंबर|नव\\.?|ą¤¦ą¤æą¤øą¤®ą„ą¤¬ą¤°|दिसंबर|दिस\\.?)/i,\n\n monthsShortRegex: /^(ą¤œą¤Øą¤µą¤°ą„€|जन\\.?|ą¤«ą¤¼ą¤°ą¤µą¤°ą„€|ą¤«ą¤°ą¤µą¤°ą„€|फ़र\\.?|ą¤®ą¤¾ą¤°ą„ą¤š?|ą¤…ą¤Ŗą„ą¤°ą„ˆą¤²|ą¤…ą¤Ŗą„ą¤°ą„ˆ\\.?|मई?|ą¤œą„‚ą¤Ø?|ą¤œą„ą¤²ą¤¾ą¤ˆ|ą¤œą„ą¤²\\.?|ą¤…ą¤—ą¤øą„ą¤¤|अग\\.?|ą¤øą¤æą¤¤ą¤®ą„ą¤¬ą¤°|सितंबर|सित\\.?|ą¤…ą¤•ą„ą¤Ÿą„‚ą¤¬ą¤°|ą¤…ą¤•ą„ą¤Ÿą„‚\\.?|ą¤Øą¤µą¤®ą„ą¤¬ą¤°|नवंबर|नव\\.?|ą¤¦ą¤æą¤øą¤®ą„ą¤¬ą¤°|दिसंबर|दिस\\.?)/i,\n\n monthsStrictRegex: /^(ą¤œą¤Øą¤µą¤°ą„€?|ą¤«ą¤¼ą¤°ą¤µą¤°ą„€|ą¤«ą¤°ą¤µą¤°ą„€?|ą¤®ą¤¾ą¤°ą„ą¤š?|ą¤…ą¤Ŗą„ą¤°ą„ˆą¤²?|मई?|ą¤œą„‚ą¤Ø?|ą¤œą„ą¤²ą¤¾ą¤ˆ?|ą¤…ą¤—ą¤øą„ą¤¤?|ą¤øą¤æą¤¤ą¤®ą„ą¤¬ą¤°|सितंबर|सित?\\.?|ą¤…ą¤•ą„ą¤Ÿą„‚ą¤¬ą¤°|ą¤…ą¤•ą„ą¤Ÿą„‚\\.?|ą¤Øą¤µą¤®ą„ą¤¬ą¤°|नवंबर?|ą¤¦ą¤æą¤øą¤®ą„ą¤¬ą¤°|दिसंबर?)/i,\n\n monthsShortStrictRegex: /^(जन\\.?|फ़र\\.?|ą¤®ą¤¾ą¤°ą„ą¤š?|ą¤…ą¤Ŗą„ą¤°ą„ˆ\\.?|मई?|ą¤œą„‚ą¤Ø?|ą¤œą„ą¤²\\.?|अग\\.?|सित\\.?|ą¤…ą¤•ą„ą¤Ÿą„‚\\.?|नव\\.?|दिस\\.?)/i,\n\n calendar: {\n sameDay: '[ą¤†ą¤œ] LT',\n nextDay: '[कल] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[कल] LT',\n lastWeek: '[ą¤Ŗą¤æą¤›ą¤²ą„‡] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ą¤®ą„‡ą¤‚',\n past: '%s ą¤Ŗą¤¹ą¤²ą„‡',\n s: 'ą¤•ą„ą¤› ą¤¹ą„€ ą¤•ą„ą¤·ą¤£',\n ss: '%d ą¤øą„‡ą¤•ą¤‚ą¤”',\n m: 'ą¤ą¤• मिनट',\n mm: '%d मिनट',\n h: 'ą¤ą¤• ą¤˜ą¤‚ą¤Ÿą¤¾',\n hh: '%d ą¤˜ą¤‚ą¤Ÿą„‡',\n d: 'ą¤ą¤• दिन',\n dd: '%d दिन',\n M: 'ą¤ą¤• ą¤®ą¤¹ą„€ą¤Øą„‡',\n MM: '%d ą¤®ą¤¹ą„€ą¤Øą„‡',\n y: 'ą¤ą¤• ą¤µą¤°ą„ą¤·',\n yy: '%d ą¤µą¤°ą„ą¤·',\n },\n preparse: function (string) {\n return string.replace(/[ą„§ą„Øą„©ą„Ŗą„«ą„¬ą„­ą„®ą„Æą„¦]/g, function (match) {\n return numberMap$7[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$8[match];\n });\n },\n // Hindi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Hindi.\n meridiemParse: /रात|ą¤øą„ą¤¬ą¤¹|ą¤¦ą„‹ą¤Ŗą¤¹ą¤°|शाम/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'रात') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ą¤øą„ą¤¬ą¤¹') {\n return hour;\n } else if (meridiem === 'ą¤¦ą„‹ą¤Ŗą¤¹ą¤°') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'शाम') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'रात';\n } else if (hour < 10) {\n return 'ą¤øą„ą¤¬ą¤¹';\n } else if (hour < 17) {\n return 'ą¤¦ą„‹ą¤Ŗą¤¹ą¤°';\n } else if (hour < 20) {\n return 'शाम';\n } else {\n return 'रात';\n }\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n function translate$3(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n if (number === 1) {\n result += 'sekunda';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sekunde';\n } else {\n result += 'sekundi';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'jedna minuta' : 'jedne minute';\n case 'mm':\n if (number === 1) {\n result += 'minuta';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'minute';\n } else {\n result += 'minuta';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'jedan sat' : 'jednog sata';\n case 'hh':\n if (number === 1) {\n result += 'sat';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'sata';\n } else {\n result += 'sati';\n }\n return result;\n case 'dd':\n if (number === 1) {\n result += 'dan';\n } else {\n result += 'dana';\n }\n return result;\n case 'MM':\n if (number === 1) {\n result += 'mjesec';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'mjeseca';\n } else {\n result += 'mjeseci';\n }\n return result;\n case 'yy':\n if (number === 1) {\n result += 'godina';\n } else if (number === 2 || number === 3 || number === 4) {\n result += 'godine';\n } else {\n result += 'godina';\n }\n return result;\n }\n }\n\n hooks.defineLocale('hr', {\n months: {\n format: 'siječnja_veljače_ožujka_travnja_svibnja_lipnja_srpnja_kolovoza_rujna_listopada_studenoga_prosinca'.split(\n '_'\n ),\n standalone: 'siječanj_veljača_ožujak_travanj_svibanj_lipanj_srpanj_kolovoz_rujan_listopad_studeni_prosinac'.split(\n '_'\n ),\n },\n monthsShort: 'sij._velj._ožu._tra._svi._lip._srp._kol._ruj._lis._stu._pro.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'Do MMMM YYYY',\n LLL: 'Do MMMM YYYY H:mm',\n LLLL: 'dddd, Do MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[jučer u] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[proÅ”lu] [nedjelju] [u] LT';\n case 3:\n return '[proÅ”lu] [srijedu] [u] LT';\n case 6:\n return '[proÅ”le] [subote] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[proÅ”li] dddd [u] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'par sekundi',\n ss: translate$3,\n m: translate$3,\n mm: translate$3,\n h: translate$3,\n hh: translate$3,\n d: 'dan',\n dd: translate$3,\n M: 'mjesec',\n MM: translate$3,\n y: 'godinu',\n yy: translate$3,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var weekEndings = 'vasĆ”rnap hĆ©tfőn kedden szerdĆ”n csütƶrtƶkƶn pĆ©nteken szombaton'.split(\n ' '\n );\n function translate$4(number, withoutSuffix, key, isFuture) {\n var num = number;\n switch (key) {\n case 's':\n return isFuture || withoutSuffix\n ? 'nĆ©hĆ”ny mĆ”sodperc'\n : 'nĆ©hĆ”ny mĆ”sodperce';\n case 'ss':\n return num + (isFuture || withoutSuffix)\n ? ' mĆ”sodperc'\n : ' mĆ”sodperce';\n case 'm':\n return 'egy' + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'mm':\n return num + (isFuture || withoutSuffix ? ' perc' : ' perce');\n case 'h':\n return 'egy' + (isFuture || withoutSuffix ? ' óra' : ' órĆ”ja');\n case 'hh':\n return num + (isFuture || withoutSuffix ? ' óra' : ' órĆ”ja');\n case 'd':\n return 'egy' + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'dd':\n return num + (isFuture || withoutSuffix ? ' nap' : ' napja');\n case 'M':\n return 'egy' + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'MM':\n return num + (isFuture || withoutSuffix ? ' hónap' : ' hónapja');\n case 'y':\n return 'egy' + (isFuture || withoutSuffix ? ' Ć©v' : ' Ć©ve');\n case 'yy':\n return num + (isFuture || withoutSuffix ? ' Ć©v' : ' Ć©ve');\n }\n return '';\n }\n function week(isFuture) {\n return (\n (isFuture ? '' : '[mĆŗlt] ') +\n '[' +\n weekEndings[this.day()] +\n '] LT[-kor]'\n );\n }\n\n hooks.defineLocale('hu', {\n months: 'januĆ”r_februĆ”r_mĆ”rcius_Ć”prilis_mĆ”jus_jĆŗnius_jĆŗlius_augusztus_szeptember_október_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mĆ”rc._Ć”pr._mĆ”j._jĆŗn._jĆŗl._aug._szept._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'vasĆ”rnap_hĆ©tfő_kedd_szerda_csütƶrtƶk_pĆ©ntek_szombat'.split('_'),\n weekdaysShort: 'vas_hĆ©t_kedd_sze_csüt_pĆ©n_szo'.split('_'),\n weekdaysMin: 'v_h_k_sze_cs_p_szo'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYY. MMMM D.',\n LLL: 'YYYY. MMMM D. H:mm',\n LLLL: 'YYYY. MMMM D., dddd H:mm',\n },\n meridiemParse: /de|du/i,\n isPM: function (input) {\n return input.charAt(1).toLowerCase() === 'u';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower === true ? 'de' : 'DE';\n } else {\n return isLower === true ? 'du' : 'DU';\n }\n },\n calendar: {\n sameDay: '[ma] LT[-kor]',\n nextDay: '[holnap] LT[-kor]',\n nextWeek: function () {\n return week.call(this, true);\n },\n lastDay: '[tegnap] LT[-kor]',\n lastWeek: function () {\n return week.call(this, false);\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s mĆŗlva',\n past: '%s',\n s: translate$4,\n ss: translate$4,\n m: translate$4,\n mm: translate$4,\n h: translate$4,\n hh: translate$4,\n d: translate$4,\n dd: translate$4,\n M: translate$4,\n MM: translate$4,\n y: translate$4,\n yy: translate$4,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('hy-am', {\n months: {\n format: 'Õ°ÕøÖ‚Õ¶Õ¾Õ”Ö€Õ«_ÖƒÕ„ÕæÖ€Õ¾Õ”Ö€Õ«_Õ“Õ”Ö€ÕæÕ«_Õ”ÕŗÖ€Õ«Õ¬Õ«_Õ“Õ”ÕµÕ«Õ½Õ«_Õ°ÕøÖ‚Õ¶Õ«Õ½Õ«_Õ°ÕøÖ‚Õ¬Õ«Õ½Õ«_Ö…Õ£ÕøÕ½ÕæÕøÕ½Õ«_Õ½Õ„ÕŗÕæÕ„Õ“Õ¢Õ„Ö€Õ«_Õ°ÕøÕÆÕæÕ„Õ“Õ¢Õ„Ö€Õ«_Õ¶ÕøÕµÕ„Õ“Õ¢Õ„Ö€Õ«_Õ¤Õ„ÕÆÕæÕ„Õ“Õ¢Õ„Ö€Õ«'.split(\n '_'\n ),\n standalone: 'Õ°ÕøÖ‚Õ¶Õ¾Õ”Ö€_ÖƒÕ„ÕæÖ€Õ¾Õ”Ö€_Õ“Õ”Ö€Õæ_Õ”ÕŗÖ€Õ«Õ¬_Õ“Õ”ÕµÕ«Õ½_Õ°ÕøÖ‚Õ¶Õ«Õ½_Õ°ÕøÖ‚Õ¬Õ«Õ½_Ö…Õ£ÕøÕ½ÕæÕøÕ½_Õ½Õ„ÕŗÕæÕ„Õ“Õ¢Õ„Ö€_Õ°ÕøÕÆÕæÕ„Õ“Õ¢Õ„Ö€_Õ¶ÕøÕµÕ„Õ“Õ¢Õ„Ö€_Õ¤Õ„ÕÆÕæÕ„Õ“Õ¢Õ„Ö€'.split(\n '_'\n ),\n },\n monthsShort: 'Õ°Õ¶Õ¾_ÖƒÕæÖ€_Õ“Ö€Õæ_Õ”ÕŗÖ€_Õ“ÕµÕ½_Õ°Õ¶Õ½_Õ°Õ¬Õ½_օգս_Õ½ÕŗÕæ_Õ°ÕÆÕæ_Õ¶Õ“Õ¢_Õ¤ÕÆÕæ'.split('_'),\n weekdays: 'ÕÆÕ«Ö€Õ”ÕÆÕ«_Õ„Ö€ÕÆÕøÖ‚Õ·Õ”Õ¢Õ©Õ«_Õ„Ö€Õ„Ö„Õ·Õ”Õ¢Õ©Õ«_Õ¹ÕøÖ€Õ„Ö„Õ·Õ”Õ¢Õ©Õ«_Õ°Õ«Õ¶Õ£Õ·Õ”Õ¢Õ©Õ«_ÕøÖ‚Ö€Õ¢Õ”Õ©_Õ·Õ”Õ¢Õ”Õ©'.split(\n '_'\n ),\n weekdaysShort: 'ÕÆÖ€ÕÆ_Õ„Ö€ÕÆ_Õ„Ö€Ö„_չրք_Õ°Õ¶Õ£_ÕøÖ‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n weekdaysMin: 'ÕÆÖ€ÕÆ_Õ„Ö€ÕÆ_Õ„Ö€Ö„_չրք_Õ°Õ¶Õ£_ÕøÖ‚Ö€Õ¢_Õ·Õ¢Õ©'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY Õ©.',\n LLL: 'D MMMM YYYY Õ©., HH:mm',\n LLLL: 'dddd, D MMMM YYYY Õ©., HH:mm',\n },\n calendar: {\n sameDay: '[Õ”ÕµÕ½Ö…Ö€] LT',\n nextDay: '[Õ¾Õ”Õ²ÕØ] LT',\n lastDay: '[Õ„Ö€Õ„ÕÆ] LT',\n nextWeek: function () {\n return 'dddd [Ö…Ö€ÕØ ÕŖÕ”Õ“ÕØ] LT';\n },\n lastWeek: function () {\n return '[ՔնցՔծ] dddd [Ö…Ö€ÕØ ÕŖÕ”Õ“ÕØ] LT';\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s Õ°Õ„ÕæÕø',\n past: '%s Õ”Õ¼Õ”Õ»',\n s: 'Õ“Õ« Ö„Õ”Õ¶Õ« Õ¾Õ”ÕµÖ€ÕÆÕµÕ”Õ¶',\n ss: '%d Õ¾Õ”ÕµÖ€ÕÆÕµÕ”Õ¶',\n m: 'Ö€ÕøÕŗÕ„',\n mm: '%d Ö€ÕøÕŗÕ„',\n h: 'ÕŖÕ”Õ“',\n hh: '%d ÕŖÕ”Õ“',\n d: 'օր',\n dd: '%d օր',\n M: 'Õ”Õ“Õ«Õ½',\n MM: '%d Õ”Õ“Õ«Õ½',\n y: 'ÕæÕ”Ö€Õ«',\n yy: '%d ÕæÕ”Ö€Õ«',\n },\n meridiemParse: /Õ£Õ«Õ·Õ„Ö€Õ¾Õ”|Õ”Õ¼Õ”Õ¾ÕøÕæÕ¾Õ”|ցՄրՄկվՔ|Õ„Ö€Õ„ÕÆÕøÕµÕ”Õ¶/,\n isPM: function (input) {\n return /^(ցՄրՄկվՔ|Õ„Ö€Õ„ÕÆÕøÕµÕ”Õ¶)$/.test(input);\n },\n meridiem: function (hour) {\n if (hour < 4) {\n return 'Õ£Õ«Õ·Õ„Ö€Õ¾Õ”';\n } else if (hour < 12) {\n return 'Õ”Õ¼Õ”Õ¾ÕøÕæÕ¾Õ”';\n } else if (hour < 17) {\n return 'ցՄրՄկվՔ';\n } else {\n return 'Õ„Ö€Õ„ÕÆÕøÕµÕ”Õ¶';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}|\\d{1,2}-(Õ«Õ¶|րդ)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'DDD':\n case 'w':\n case 'W':\n case 'DDDo':\n if (number === 1) {\n return number + '-Õ«Õ¶';\n }\n return number + '-րդ';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('id', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_November_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Agt_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Minggu_Senin_Selasa_Rabu_Kamis_Jumat_Sabtu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Rab_Kam_Jum_Sab'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|siang|sore|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'siang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sore' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'siang';\n } else if (hours < 19) {\n return 'sore';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Besok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kemarin pukul] LT',\n lastWeek: 'dddd [lalu pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lalu',\n s: 'beberapa detik',\n ss: '%d detik',\n m: 'semenit',\n mm: '%d menit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n function plural$2(n) {\n if (n % 100 === 11) {\n return true;\n } else if (n % 10 === 1) {\n return false;\n }\n return true;\n }\n function translate$5(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nokkrar sekĆŗndur'\n : 'nokkrum sekĆŗndum';\n case 'ss':\n if (plural$2(number)) {\n return (\n result +\n (withoutSuffix || isFuture ? 'sekĆŗndur' : 'sekĆŗndum')\n );\n }\n return result + 'sekĆŗnda';\n case 'm':\n return withoutSuffix ? 'mĆ­nĆŗta' : 'mĆ­nĆŗtu';\n case 'mm':\n if (plural$2(number)) {\n return (\n result + (withoutSuffix || isFuture ? 'mĆ­nĆŗtur' : 'mĆ­nĆŗtum')\n );\n } else if (withoutSuffix) {\n return result + 'mĆ­nĆŗta';\n }\n return result + 'mĆ­nĆŗtu';\n case 'hh':\n if (plural$2(number)) {\n return (\n result +\n (withoutSuffix || isFuture\n ? 'klukkustundir'\n : 'klukkustundum')\n );\n }\n return result + 'klukkustund';\n case 'd':\n if (withoutSuffix) {\n return 'dagur';\n }\n return isFuture ? 'dag' : 'degi';\n case 'dd':\n if (plural$2(number)) {\n if (withoutSuffix) {\n return result + 'dagar';\n }\n return result + (isFuture ? 'daga' : 'dƶgum');\n } else if (withoutSuffix) {\n return result + 'dagur';\n }\n return result + (isFuture ? 'dag' : 'degi');\n case 'M':\n if (withoutSuffix) {\n return 'mĆ”nuưur';\n }\n return isFuture ? 'mĆ”nuư' : 'mĆ”nuưi';\n case 'MM':\n if (plural$2(number)) {\n if (withoutSuffix) {\n return result + 'mĆ”nuưir';\n }\n return result + (isFuture ? 'mĆ”nuưi' : 'mĆ”nuưum');\n } else if (withoutSuffix) {\n return result + 'mĆ”nuưur';\n }\n return result + (isFuture ? 'mĆ”nuư' : 'mĆ”nuưi');\n case 'y':\n return withoutSuffix || isFuture ? 'Ć”r' : 'Ć”ri';\n case 'yy':\n if (plural$2(number)) {\n return result + (withoutSuffix || isFuture ? 'Ć”r' : 'Ć”rum');\n }\n return result + (withoutSuffix || isFuture ? 'Ć”r' : 'Ć”ri');\n }\n }\n\n hooks.defineLocale('is', {\n months: 'janĆŗar_febrĆŗar_mars_aprĆ­l_maĆ­_jĆŗnĆ­_jĆŗlĆ­_Ć”gĆŗst_september_október_nóvember_desember'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maĆ­_jĆŗn_jĆŗl_Ć”gĆŗ_sep_okt_nóv_des'.split('_'),\n weekdays: 'sunnudagur_mĆ”nudagur_þriưjudagur_miưvikudagur_fimmtudagur_fƶstudagur_laugardagur'.split(\n '_'\n ),\n weekdaysShort: 'sun_mĆ”n_þri_miư_fim_fƶs_lau'.split('_'),\n weekdaysMin: 'Su_MĆ”_ƞr_Mi_Fi_Fƶ_La'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd, D. MMMM YYYY [kl.] H:mm',\n },\n calendar: {\n sameDay: '[Ć­ dag kl.] LT',\n nextDay: '[Ć” morgun kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[Ć­ gƦr kl.] LT',\n lastWeek: '[sƭưasta] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'eftir %s',\n past: 'fyrir %s sƭưan',\n s: translate$5,\n ss: translate$5,\n m: translate$5,\n mm: translate$5,\n h: 'klukkustund',\n hh: translate$5,\n d: translate$5,\n dd: translate$5,\n M: translate$5,\n MM: translate$5,\n y: translate$5,\n yy: translate$5,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('it-ch', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedƬ_martedƬ_mercoledƬ_giovedƬ_venerdƬ_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Oggi alle] LT',\n nextDay: '[Domani alle] LT',\n nextWeek: 'dddd [alle] LT',\n lastDay: '[Ieri alle] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[la scorsa] dddd [alle] LT';\n default:\n return '[lo scorso] dddd [alle] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return (/^[0-9].+$/.test(s) ? 'tra' : 'in') + ' ' + s;\n },\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Āŗ/,\n ordinal: '%dĀŗ',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('it', {\n months: 'gennaio_febbraio_marzo_aprile_maggio_giugno_luglio_agosto_settembre_ottobre_novembre_dicembre'.split(\n '_'\n ),\n monthsShort: 'gen_feb_mar_apr_mag_giu_lug_ago_set_ott_nov_dic'.split('_'),\n weekdays: 'domenica_lunedƬ_martedƬ_mercoledƬ_giovedƬ_venerdƬ_sabato'.split(\n '_'\n ),\n weekdaysShort: 'dom_lun_mar_mer_gio_ven_sab'.split('_'),\n weekdaysMin: 'do_lu_ma_me_gi_ve_sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: function () {\n return (\n '[Oggi a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextDay: function () {\n return (\n '[Domani a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n nextWeek: function () {\n return (\n 'dddd [a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastDay: function () {\n return (\n '[Ieri a' +\n (this.hours() > 1 ? 'lle ' : this.hours() === 0 ? ' ' : \"ll'\") +\n ']LT'\n );\n },\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return (\n '[La scorsa] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n default:\n return (\n '[Lo scorso] dddd [a' +\n (this.hours() > 1\n ? 'lle '\n : this.hours() === 0\n ? ' '\n : \"ll'\") +\n ']LT'\n );\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'tra %s',\n past: '%s fa',\n s: 'alcuni secondi',\n ss: '%d secondi',\n m: 'un minuto',\n mm: '%d minuti',\n h: \"un'ora\",\n hh: '%d ore',\n d: 'un giorno',\n dd: '%d giorni',\n w: 'una settimana',\n ww: '%d settimane',\n M: 'un mese',\n MM: '%d mesi',\n y: 'un anno',\n yy: '%d anni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Āŗ/,\n ordinal: '%dĀŗ',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ja', {\n eras: [\n {\n since: '2019-05-01',\n offset: 1,\n name: '令和',\n narrow: '㋿',\n abbr: 'R',\n },\n {\n since: '1989-01-08',\n until: '2019-04-30',\n offset: 1,\n name: '平成',\n narrow: 'ć»',\n abbr: 'H',\n },\n {\n since: '1926-12-25',\n until: '1989-01-07',\n offset: 1,\n name: 'ę˜­å’Œ',\n narrow: 'ć¼',\n abbr: 'S',\n },\n {\n since: '1912-07-30',\n until: '1926-12-24',\n offset: 1,\n name: '大正',\n narrow: 'ć½',\n abbr: 'T',\n },\n {\n since: '1873-01-01',\n until: '1912-07-29',\n offset: 6,\n name: 'ę˜Žę²»',\n narrow: 'ć¾',\n abbr: 'M',\n },\n {\n since: '0001-01-01',\n until: '1873-12-31',\n offset: 1,\n name: '脿暦',\n narrow: 'AD',\n abbr: 'AD',\n },\n {\n since: '0000-12-31',\n until: -Infinity,\n offset: 1,\n name: 'ē“€å…ƒå‰',\n narrow: 'BC',\n abbr: 'BC',\n },\n ],\n eraYearOrdinalRegex: /(元|\\d+)幓/,\n eraYearOrdinalParse: function (input, match) {\n return match[1] === '元' ? 1 : parseInt(match[1] || input, 10);\n },\n months: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split('_'),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: 'ę—„ę›œę—„_ęœˆę›œę—„_ē«ę›œę—„_ę°“ę›œę—„_ęœØę›œę—„_é‡‘ę›œę—„_åœŸę›œę—„'.split('_'),\n weekdaysShort: 'ę—„_月_火_ę°“_木_金_土'.split('_'),\n weekdaysMin: 'ę—„_月_火_ę°“_木_金_土'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY幓M月Dę—„',\n LLL: 'YYYY幓M月Dę—„ HH:mm',\n LLLL: 'YYYY幓M月Dę—„ dddd HH:mm',\n l: 'YYYY/MM/DD',\n ll: 'YYYY幓M月Dę—„',\n lll: 'YYYY幓M月Dę—„ HH:mm',\n llll: 'YYYY幓M月Dę—„(ddd) HH:mm',\n },\n meridiemParse: /午前|午後/i,\n isPM: function (input) {\n return input === '午後';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return '午前';\n } else {\n return '午後';\n }\n },\n calendar: {\n sameDay: '[今ꗄ] LT',\n nextDay: '[ę˜Žę—„] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[ę„é€±]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n lastDay: '[ę˜Øę—„] LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[先週]dddd LT';\n } else {\n return 'dddd LT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}ę—„/,\n ordinal: function (number, period) {\n switch (period) {\n case 'y':\n return number === 1 ? '元幓' : number + '幓';\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ę—„';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: 'ę•°ē§’',\n ss: '%dē§’',\n m: '1分',\n mm: '%d分',\n h: '1Ꙃ間',\n hh: '%dꙂ間',\n d: '1ę—„',\n dd: '%dę—„',\n M: '1ヶ月',\n MM: '%dヶ月',\n y: '1幓',\n yy: '%d幓',\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('jv', {\n months: 'Januari_Februari_Maret_April_Mei_Juni_Juli_Agustus_September_Oktober_Nopember_Desember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mar_Apr_Mei_Jun_Jul_Ags_Sep_Okt_Nop_Des'.split('_'),\n weekdays: 'Minggu_Senen_Seloso_Rebu_Kemis_Jemuwah_Septu'.split('_'),\n weekdaysShort: 'Min_Sen_Sel_Reb_Kem_Jem_Sep'.split('_'),\n weekdaysMin: 'Mg_Sn_Sl_Rb_Km_Jm_Sp'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /enjing|siyang|sonten|ndalu/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'enjing') {\n return hour;\n } else if (meridiem === 'siyang') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'sonten' || meridiem === 'ndalu') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'enjing';\n } else if (hours < 15) {\n return 'siyang';\n } else if (hours < 19) {\n return 'sonten';\n } else {\n return 'ndalu';\n }\n },\n calendar: {\n sameDay: '[Dinten puniko pukul] LT',\n nextDay: '[Mbenjang pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kala wingi pukul] LT',\n lastWeek: 'dddd [kepengker pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'wonten ing %s',\n past: '%s ingkang kepengker',\n s: 'sawetawis detik',\n ss: '%d detik',\n m: 'setunggal menit',\n mm: '%d menit',\n h: 'setunggal jam',\n hh: '%d jam',\n d: 'sedinten',\n dd: '%d dinten',\n M: 'sewulan',\n MM: '%d wulan',\n y: 'setaun',\n yy: '%d taun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ka', {\n months: 'įƒ˜įƒįƒœįƒ•įƒįƒ įƒ˜_įƒ—įƒ”įƒ‘įƒ”įƒ įƒ•įƒįƒšįƒ˜_įƒ›įƒįƒ įƒ¢įƒ˜_įƒįƒžįƒ įƒ˜įƒšįƒ˜_įƒ›įƒįƒ˜įƒ”įƒ˜_įƒ˜įƒ•įƒœįƒ˜įƒ”įƒ˜_įƒ˜įƒ•įƒšįƒ˜įƒ”įƒ˜_įƒįƒ’įƒ•įƒ˜įƒ”įƒ¢įƒ_įƒ”įƒ”įƒ„įƒ¢įƒ”įƒ›įƒ‘įƒ”įƒ įƒ˜_įƒįƒ„įƒ¢įƒįƒ›įƒ‘įƒ”įƒ įƒ˜_įƒœįƒįƒ”įƒ›įƒ‘įƒ”įƒ įƒ˜_įƒ“įƒ”įƒ™įƒ”įƒ›įƒ‘įƒ”įƒ įƒ˜'.split(\n '_'\n ),\n monthsShort: 'იან_įƒ—įƒ”įƒ‘_įƒ›įƒįƒ _įƒįƒžįƒ _įƒ›įƒįƒ˜_įƒ˜įƒ•įƒœ_įƒ˜įƒ•įƒš_įƒįƒ’įƒ•_įƒ”įƒ”įƒ„_įƒįƒ„įƒ¢_įƒœįƒįƒ”_įƒ“įƒ”įƒ™'.split('_'),\n weekdays: {\n standalone: 'įƒ™įƒ•įƒ˜įƒ įƒ_įƒįƒ įƒØįƒįƒ‘įƒįƒ—įƒ˜_įƒ”įƒįƒ›įƒØįƒįƒ‘įƒįƒ—įƒ˜_įƒįƒ—įƒ®įƒØįƒįƒ‘įƒįƒ—įƒ˜_įƒ®įƒ£įƒ—įƒØįƒįƒ‘įƒįƒ—įƒ˜_įƒžįƒįƒ įƒįƒ”įƒ™įƒ”įƒ•įƒ˜_įƒØįƒįƒ‘įƒįƒ—įƒ˜'.split(\n '_'\n ),\n format: 'įƒ™įƒ•įƒ˜įƒ įƒįƒ”_įƒįƒ įƒØįƒįƒ‘įƒįƒ—įƒ”_įƒ”įƒįƒ›įƒØįƒįƒ‘įƒįƒ—įƒ”_įƒįƒ—įƒ®įƒØįƒįƒ‘įƒįƒ—įƒ”_įƒ®įƒ£įƒ—įƒØįƒįƒ‘įƒįƒ—įƒ”_įƒžįƒįƒ įƒįƒ”įƒ™įƒ”įƒ•įƒ”_įƒØįƒįƒ‘įƒįƒ—įƒ”'.split(\n '_'\n ),\n isFormat: /(წინა|įƒØįƒ”įƒ›įƒ“įƒ”įƒ’)/,\n },\n weekdaysShort: 'įƒ™įƒ•įƒ˜_įƒįƒ įƒØ_įƒ”įƒįƒ›_įƒįƒ—įƒ®_įƒ®įƒ£įƒ—_įƒžįƒįƒ _įƒØįƒįƒ‘'.split('_'),\n weekdaysMin: 'įƒ™įƒ•_įƒįƒ _ეა_įƒįƒ—_ხუ_įƒžįƒ_შა'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[įƒ“įƒ¦įƒ”įƒ”] LT[-įƒ–įƒ”]',\n nextDay: '[įƒ®įƒ•įƒįƒš] LT[-įƒ–įƒ”]',\n lastDay: '[įƒ’įƒ£įƒØįƒ˜įƒœ] LT[-įƒ–įƒ”]',\n nextWeek: '[įƒØįƒ”įƒ›įƒ“įƒ”įƒ’] dddd LT[-įƒ–įƒ”]',\n lastWeek: '[წინა] dddd LT-įƒ–įƒ”',\n sameElse: 'L',\n },\n relativeTime: {\n future: function (s) {\n return s.replace(/(įƒ¬įƒįƒ›|įƒ¬įƒ£įƒ—|įƒ”įƒįƒįƒ—|įƒ¬įƒ”įƒš|įƒ“įƒ¦|įƒ—įƒ•)(ი|įƒ”)/, function (\n $0,\n $1,\n $2\n ) {\n return $2 === 'ი' ? $1 + 'ში' : $1 + $2 + 'ში';\n });\n },\n past: function (s) {\n if (/(įƒ¬įƒįƒ›įƒ˜|įƒ¬įƒ£įƒ—įƒ˜|įƒ”įƒįƒįƒ—įƒ˜|įƒ“įƒ¦įƒ”|įƒ—įƒ•įƒ”)/.test(s)) {\n return s.replace(/(ი|įƒ”)$/, 'იე წინ');\n }\n if (/įƒ¬įƒ”įƒšįƒ˜/.test(s)) {\n return s.replace(/įƒ¬įƒ”įƒšįƒ˜$/, 'წლიე წინ');\n }\n return s;\n },\n s: 'įƒ įƒįƒ›įƒ“įƒ”įƒœįƒ˜įƒ›įƒ” įƒ¬įƒįƒ›įƒ˜',\n ss: '%d įƒ¬įƒįƒ›įƒ˜',\n m: 'įƒ¬įƒ£įƒ—įƒ˜',\n mm: '%d įƒ¬įƒ£įƒ—įƒ˜',\n h: 'įƒ”įƒįƒįƒ—įƒ˜',\n hh: '%d įƒ”įƒįƒįƒ—įƒ˜',\n d: 'įƒ“įƒ¦įƒ”',\n dd: '%d įƒ“įƒ¦įƒ”',\n M: 'įƒ—įƒ•įƒ”',\n MM: '%d įƒ—įƒ•įƒ”',\n y: 'įƒ¬įƒ”įƒšįƒ˜',\n yy: '%d įƒ¬įƒ”įƒšįƒ˜',\n },\n dayOfMonthOrdinalParse: /0|1-ლი|įƒ›įƒ”-\\d{1,2}|\\d{1,2}-įƒ”/,\n ordinal: function (number) {\n if (number === 0) {\n return number;\n }\n if (number === 1) {\n return number + '-ლი';\n }\n if (\n number < 20 ||\n (number <= 100 && number % 20 === 0) ||\n number % 100 === 0\n ) {\n return 'įƒ›įƒ”-' + number;\n }\n return number + '-įƒ”';\n },\n week: {\n dow: 1,\n doy: 7,\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$1 = {\n 0: '-ші',\n 1: '-ші',\n 2: '-ші',\n 3: '-ші',\n 4: '-ші',\n 5: '-ші',\n 6: '-шы',\n 7: '-ші',\n 8: '-ші',\n 9: '-шы',\n 10: '-шы',\n 20: '-шы',\n 30: '-шы',\n 40: '-шы',\n 50: '-ші',\n 60: '-шы',\n 70: '-ші',\n 80: '-ші',\n 90: '-шы',\n 100: '-ші',\n };\n\n hooks.defineLocale('kk', {\n months: 'қаңтар_ақпан_Š½Š°ŃƒŃ€Ń‹Š·_сәуір_мамыр_Š¼Š°ŃƒŃŃ‹Š¼_ŃˆŃ–Š»Š“Šµ_тамыз_қыркүйек_қазан_Ņ›Š°Ń€Š°ŃˆŠ°_желтоқсан'.split(\n '_'\n ),\n monthsShort: 'қаң_ақп_нау_сәу_мам_мау_ŃˆŃ–Š»_там_қыр_қаз_қар_жел'.split('_'),\n weekdays: 'жексенбі_Гүйсенбі_сейсенбі_сәрсенбі_бейсенбі_жұма_сенбі'.split(\n '_'\n ),\n weekdaysShort: 'жек_Гүй_сей_сәр_бей_жұм_сен'.split('_'),\n weekdaysMin: 'жк_Гй_сй_ср_бй_жм_сн'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгін сағат] LT',\n nextDay: '[Ертең сағат] LT',\n nextWeek: 'dddd [сағат] LT',\n lastDay: '[Кеше сағат] LT',\n lastWeek: '[Өткен аптаның] dddd [сағат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s Ń–ŃˆŃ–Š½Š“Šµ',\n past: '%s бұрын',\n s: 'Š±Ń–Ń€Š½ŠµŃˆŠµ секунГ',\n ss: '%d секунГ',\n m: 'бір Š¼ŠøŠ½ŃƒŃ‚',\n mm: '%d Š¼ŠøŠ½ŃƒŃ‚',\n h: 'бір сағат',\n hh: '%d сағат',\n d: 'бір күн',\n dd: '%d күн',\n M: 'бір ай',\n MM: '%d ай',\n y: 'бір жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ші|шы)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes$1[number] || suffixes$1[a] || suffixes$1[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$9 = {\n 1: '។',\n 2: '២',\n 3: '៣',\n 4: '៤',\n 5: 'ោ',\n 6: '៦',\n 7: '៧',\n 8: '៨',\n 9: '៩',\n 0: '០',\n },\n numberMap$8 = {\n '។': '1',\n '២': '2',\n '៣': '3',\n '៤': '4',\n 'ោ': '5',\n '៦': '6',\n '៧': '7',\n '៨': '8',\n '៩': '9',\n '០': '0',\n };\n\n hooks.defineLocale('km', {\n months: 'įž˜įž€įžšįž¶_įž€įž»įž˜įŸ’įž—įŸˆ_įž˜įžøįž“įž¶_įž˜įŸįžŸįž¶_įž§įžŸįž—įž¶_įž˜įž·įžįž»įž“įž¶_įž€įž€įŸ’įž€įžŠįž¶_įžŸįžøįž įž¶_įž€įž‰įŸ’įž‰įž¶_įžįž»įž›įž¶_įžœįž·įž…įŸ’įž†įž·įž€įž¶_įž’įŸ’įž“įž¼'.split(\n '_'\n ),\n monthsShort: 'įž˜įž€įžšįž¶_įž€įž»įž˜įŸ’įž—įŸˆ_įž˜įžøįž“įž¶_įž˜įŸįžŸįž¶_įž§įžŸįž—įž¶_įž˜įž·įžįž»įž“įž¶_įž€įž€įŸ’įž€įžŠįž¶_įžŸįžøįž įž¶_įž€įž‰įŸ’įž‰įž¶_įžįž»įž›įž¶_įžœįž·įž…įŸ’įž†įž·įž€įž¶_įž’įŸ’įž“įž¼'.split(\n '_'\n ),\n weekdays: 'įž¢įž¶įž‘įž·įžįŸ’įž™_įž…įŸįž“įŸ’įž‘_įž¢įž„įŸ’įž‚įž¶įžš_įž–įž»įž’_įž–įŸ’įžšįž įžŸįŸ’įž”įžįž·įŸ_įžŸįž»įž€įŸ’įžš_įžŸįŸ…įžšįŸ'.split('_'),\n weekdaysShort: 'įž¢įž¶_įž…_įž¢_įž–_įž–įŸ’įžš_įžŸįž»_įžŸ'.split('_'),\n weekdaysMin: 'įž¢įž¶_įž…_įž¢_įž–_įž–įŸ’įžš_įžŸįž»_įžŸ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /įž–įŸ’įžšįž¹įž€|įž›įŸ’įž„įž¶įž…/,\n isPM: function (input) {\n return input === 'įž›įŸ’įž„įž¶įž…';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'įž–įŸ’įžšįž¹įž€';\n } else {\n return 'įž›įŸ’įž„įž¶įž…';\n }\n },\n calendar: {\n sameDay: '[įžįŸ’įž„įŸƒįž“įŸįŸ‡ įž˜įŸ‰įŸ„įž„] LT',\n nextDay: '[įžŸįŸ’įž¢įŸ‚įž€ įž˜įŸ‰įŸ„įž„] LT',\n nextWeek: 'dddd [įž˜įŸ‰įŸ„įž„] LT',\n lastDay: '[įž˜įŸ’įžŸįž·įž›įž˜įž·įž‰ įž˜įŸ‰įŸ„įž„] LT',\n lastWeek: 'dddd [įžŸįž”įŸ’įžįž¶įž įŸįž˜įž»įž“] [įž˜įŸ‰įŸ„įž„] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sįž‘įŸ€įž',\n past: '%sįž˜įž»įž“',\n s: 'įž”įŸ‰įž»įž“įŸ’įž˜įž¶įž“įžœįž·įž“įž¶įž‘įžø',\n ss: '%d įžœįž·įž“įž¶įž‘įžø',\n m: 'įž˜įž½įž™įž“įž¶įž‘įžø',\n mm: '%d įž“įž¶įž‘įžø',\n h: 'įž˜įž½įž™įž˜įŸ‰įŸ„įž„',\n hh: '%d įž˜įŸ‰įŸ„įž„',\n d: 'įž˜įž½įž™įžįŸ’įž„įŸƒ',\n dd: '%d įžįŸ’įž„įŸƒ',\n M: 'įž˜įž½įž™įžįŸ‚',\n MM: '%d įžįŸ‚',\n y: 'įž˜įž½įž™įž†įŸ’įž“įž¶įŸ†',\n yy: '%d įž†įŸ’įž“įž¶įŸ†',\n },\n dayOfMonthOrdinalParse: /įž‘įžø\\d{1,2}/,\n ordinal: 'įž‘įžø%d',\n preparse: function (string) {\n return string.replace(/[។២៣៤ោ៦៧៨៩០]/g, function (match) {\n return numberMap$8[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$9[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$a = {\n 1: 'ą³§',\n 2: '೨',\n 3: '೩',\n 4: 'ą³Ŗ',\n 5: '೫',\n 6: '೬',\n 7: 'ą³­',\n 8: 'ą³®',\n 9: '೯',\n 0: '೦',\n },\n numberMap$9 = {\n 'ą³§': '1',\n '೨': '2',\n '೩': '3',\n 'ą³Ŗ': '4',\n '೫': '5',\n '೬': '6',\n 'ą³­': '7',\n 'ą³®': '8',\n '೯': '9',\n '೦': '0',\n };\n\n hooks.defineLocale('kn', {\n months: 'ಜನವರಿ_ą²«ą³†ą²¬ą³ą²°ą²µą²°ą²æ_ą²®ą²¾ą²°ą³ą²šą³_ą²ą²Ŗą³ą²°ą²æą²²ą³_ಮೇ_ą²œą³‚ą²Øą³_ą²œą³ą²²ą³†ą³–_ą²†ą²—ą²øą³ą²Ÿą³_ą²øą³†ą²Ŗą³ą²Ÿą³†ą²‚ą²¬ą²°ą³_ą²…ą²•ą³ą²Ÿą³†ą³‚ą³•ą²¬ą²°ą³_ą²Øą²µą³†ą²‚ą²¬ą²°ą³_ą²”ą²æą²øą³†ą²‚ą²¬ą²°ą³'.split(\n '_'\n ),\n monthsShort: 'ಜನ_ą²«ą³†ą²¬ą³ą²°_ą²®ą²¾ą²°ą³ą²šą³_ą²ą²Ŗą³ą²°ą²æą²²ą³_ಮೇ_ą²œą³‚ą²Øą³_ą²œą³ą²²ą³†ą³–_ą²†ą²—ą²øą³ą²Ÿą³_ą²øą³†ą²Ŗą³ą²Ÿą³†ą²‚_ą²…ą²•ą³ą²Ÿą³†ą³‚ą³•_ನವೆಂ_ಔಿಸೆಂ'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ಭಾನುವಾರ_ಸೋಮವಾರ_ಮಂಗಳವಾರ_ಬುಧವಾರ_ಗುರುವಾರ_ą²¶ą³ą²•ą³ą²°ą²µą²¾ą²°_ಶನಿವಾರ'.split(\n '_'\n ),\n weekdaysShort: 'ಭಾನು_ಸೋಮ_ಮಂಗಳ_ಬುಧ_ಗುರು_ą²¶ą³ą²•ą³ą²°_ಶನಿ'.split('_'),\n weekdaysMin: 'ą²­ą²¾_ಸೋ_ಮಂ_ಬು_ಗು_ಶು_ą²¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[ಇಂದು] LT',\n nextDay: '[ನಾಳೆ] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ą²Øą²æą²Øą³ą²Øą³†] LT',\n lastWeek: '[ಕೊನೆಯ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ನಂತರ',\n past: '%s ಹಿಂದೆ',\n s: 'ಕೆಲವು ą²•ą³ą²·ą²£ą²—ą²³ą³',\n ss: '%d ಸೆಕೆಂಔುಗಳು',\n m: 'ಒಂದು ನಿಮಿಷ',\n mm: '%d ನಿಮಿಷ',\n h: 'ಒಂದು ą²—ą²‚ą²Ÿą³†',\n hh: '%d ą²—ą²‚ą²Ÿą³†',\n d: 'ಒಂದು ದಿನ',\n dd: '%d ದಿನ',\n M: 'ಒಂದು ತಿಂಗಳು',\n MM: '%d ತಿಂಗಳು',\n y: 'ಒಂದು ą²µą²°ą³ą²·',\n yy: '%d ą²µą²°ą³ą²·',\n },\n preparse: function (string) {\n return string.replace(/[೧೨೩೪೫೬೭೮೯೦]/g, function (match) {\n return numberMap$9[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$a[match];\n });\n },\n meridiemParse: /ą²°ą²¾ą²¤ą³ą²°ą²æ|ą²¬ą³†ą²³ą²æą²—ą³ą²—ą³†|ą²®ą²§ą³ą²Æą²¾ą²¹ą³ą²Ø|ą²øą²‚ą²œą³†/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ą²°ą²¾ą²¤ą³ą²°ą²æ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ą²¬ą³†ą²³ą²æą²—ą³ą²—ą³†') {\n return hour;\n } else if (meridiem === 'ą²®ą²§ą³ą²Æą²¾ą²¹ą³ą²Ø') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ą²øą²‚ą²œą³†') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ą²°ą²¾ą²¤ą³ą²°ą²æ';\n } else if (hour < 10) {\n return 'ą²¬ą³†ą²³ą²æą²—ą³ą²—ą³†';\n } else if (hour < 17) {\n return 'ą²®ą²§ą³ą²Æą²¾ą²¹ą³ą²Ø';\n } else if (hour < 20) {\n return 'ą²øą²‚ą²œą³†';\n } else {\n return 'ą²°ą²¾ą²¤ą³ą²°ą²æ';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ನೇ)/,\n ordinal: function (number) {\n return number + 'ನೇ';\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ko', {\n months: '1ģ›”_2ģ›”_3ģ›”_4ģ›”_5ģ›”_6ģ›”_7ģ›”_8ģ›”_9ģ›”_10ģ›”_11ģ›”_12ģ›”'.split('_'),\n monthsShort: '1ģ›”_2ģ›”_3ģ›”_4ģ›”_5ģ›”_6ģ›”_7ģ›”_8ģ›”_9ģ›”_10ģ›”_11ģ›”_12ģ›”'.split(\n '_'\n ),\n weekdays: 'ģ¼ģš”ģ¼_ģ›”ģš”ģ¼_ķ™”ģš”ģ¼_ģˆ˜ģš”ģ¼_ėŖ©ģš”ģ¼_źøˆģš”ģ¼_ķ† ģš”ģ¼'.split('_'),\n weekdaysShort: 'ģ¼_ģ›”_ķ™”_수_ėŖ©_금_토'.split('_'),\n weekdaysMin: 'ģ¼_ģ›”_ķ™”_수_ėŖ©_금_토'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'YYYY.MM.DD.',\n LL: 'YYYYė…„ MMMM Dģ¼',\n LLL: 'YYYYė…„ MMMM Dģ¼ A h:mm',\n LLLL: 'YYYYė…„ MMMM Dģ¼ dddd A h:mm',\n l: 'YYYY.MM.DD.',\n ll: 'YYYYė…„ MMMM Dģ¼',\n lll: 'YYYYė…„ MMMM Dģ¼ A h:mm',\n llll: 'YYYYė…„ MMMM Dģ¼ dddd A h:mm',\n },\n calendar: {\n sameDay: '오늘 LT',\n nextDay: 'ė‚“ģ¼ LT',\n nextWeek: 'dddd LT',\n lastDay: 'ģ–“ģ œ LT',\n lastWeek: 'ģ§€ė‚œģ£¼ dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s 후',\n past: '%s ģ „',\n s: 'ėŖ‡ 쓈',\n ss: '%d쓈',\n m: '1ė¶„',\n mm: '%dė¶„',\n h: 'ķ•œ ģ‹œź°„',\n hh: '%dģ‹œź°„',\n d: 'ķ•˜ė£Ø',\n dd: '%dģ¼',\n M: 'ķ•œ 달',\n MM: '%d달',\n y: 'ģ¼ ė…„',\n yy: '%dė…„',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ģ¼|ģ›”|주)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ģ¼';\n case 'M':\n return number + 'ģ›”';\n case 'w':\n case 'W':\n return number + '주';\n default:\n return number;\n }\n },\n meridiemParse: /ģ˜¤ģ „|ģ˜¤ķ›„/,\n isPM: function (token) {\n return token === 'ģ˜¤ķ›„';\n },\n meridiem: function (hour, minute, isUpper) {\n return hour < 12 ? 'ģ˜¤ģ „' : 'ģ˜¤ķ›„';\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$b = {\n 1: 'Ł”',\n 2: 'Ł¢',\n 3: 'Ł£',\n 4: '٤',\n 5: 'Ł„',\n 6: '٦',\n 7: '٧',\n 8: 'ŁØ',\n 9: 'Ł©',\n 0: 'Ł ',\n },\n numberMap$a = {\n 'Ł”': '1',\n 'Ł¢': '2',\n 'Ł£': '3',\n '٤': '4',\n 'Ł„': '5',\n '٦': '6',\n '٧': '7',\n 'ŁØ': '8',\n 'Ł©': '9',\n 'Ł ': '0',\n },\n months$8 = [\n 'Ś©Ų§Ł†ŁˆŁ†ŪŒ ŲÆŁˆŁˆŪ•Ł…',\n 'ؓوبات',\n 'Ų¦Ų§Ų²Ų§Ų±',\n 'Ł†ŪŒŲ³Ų§Ł†',\n 'ئایار',\n 'Ų­ŁˆŲ²Ū•ŪŒŲ±Ų§Ł†',\n 'ŲŖŪ•Ł…Ł…ŁˆŲ²',\n 'Ų¦Ų§ŲØ',\n 'Ų¦Ū•ŪŒŁ„ŁˆŁˆŁ„',\n 'ŲŖŲ“Ų±ŪŒŁ†ŪŒ ŪŒŪ•ŁƒŪ•Ł…',\n 'ŲŖŲ“Ų±ŪŒŁ†ŪŒ ŲÆŁˆŁˆŪ•Ł…',\n 'ŁƒŲ§Ł†ŁˆŁ†ŪŒ ŪŒŪ•Ś©Ū•Ł…',\n ];\n\n hooks.defineLocale('ku', {\n months: months$8,\n monthsShort: months$8,\n weekdays: 'ŪŒŁ‡ā€ŒŁƒŲ“Ł‡ā€ŒŁ…Ł…Ł‡ā€Œ_ŲÆŁˆŁˆŲ“Ł‡ā€ŒŁ…Ł…Ł‡ā€Œ_Ų³ŪŽŲ“Ł‡ā€ŒŁ…Ł…Ł‡ā€Œ_Ś†ŁˆŲ§Ų±Ų“Ł‡ā€ŒŁ…Ł…Ł‡ā€Œ_Ł¾ŪŽŁ†Ų¬Ų“Ł‡ā€ŒŁ…Ł…Ł‡ā€Œ_Ł‡Ł‡ā€ŒŪŒŁ†ŪŒ_Ų“Ł‡ā€ŒŁ…Ł…Ł‡ā€Œ'.split(\n '_'\n ),\n weekdaysShort: 'ŪŒŁ‡ā€ŒŁƒŲ“Ł‡ā€ŒŁ…_ŲÆŁˆŁˆŲ“Ł‡ā€ŒŁ…_Ų³ŪŽŲ“Ł‡ā€ŒŁ…_Ś†ŁˆŲ§Ų±Ų“Ł‡ā€ŒŁ…_Ł¾ŪŽŁ†Ų¬Ų“Ł‡ā€ŒŁ…_Ł‡Ł‡ā€ŒŪŒŁ†ŪŒ_Ų“Ł‡ā€ŒŁ…Ł…Ł‡ā€Œ'.split(\n '_'\n ),\n weekdaysMin: 'ی_ŲÆ_Ų³_چ_پ_ه_Ų“'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n meridiemParse: /Ų¦ŪŽŁˆŲ§Ų±Ł‡ā€Œ|ŲØŁ‡ā€ŒŪŒŲ§Ł†ŪŒ/,\n isPM: function (input) {\n return /Ų¦ŪŽŁˆŲ§Ų±Ł‡ā€Œ/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ŲØŁ‡ā€ŒŪŒŲ§Ł†ŪŒ';\n } else {\n return 'Ų¦ŪŽŁˆŲ§Ų±Ł‡ā€Œ';\n }\n },\n calendar: {\n sameDay: '[Ų¦Ł‡ā€ŒŁ…Ų±Ū† ŁƒŲ§ŲŖŚ˜Ł…ŪŽŲ±] LT',\n nextDay: '[ŲØŁ‡ā€ŒŪŒŲ§Ł†ŪŒ ŁƒŲ§ŲŖŚ˜Ł…ŪŽŲ±] LT',\n nextWeek: 'dddd [ŁƒŲ§ŲŖŚ˜Ł…ŪŽŲ±] LT',\n lastDay: '[ŲÆŁˆŪŽŁ†ŪŽ ŁƒŲ§ŲŖŚ˜Ł…ŪŽŲ±] LT',\n lastWeek: 'dddd [ŁƒŲ§ŲŖŚ˜Ł…ŪŽŲ±] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Ł„Ł‡ā€Œ %s',\n past: '%s',\n s: 'Ś†Ł‡ā€ŒŁ†ŲÆ Ś†Ų±ŁƒŁ‡ā€ŒŪŒŁ‡ā€ŒŁƒ',\n ss: 'Ś†Ų±ŁƒŁ‡ā€Œ %d',\n m: 'ŪŒŁ‡ā€ŒŁƒ Ų®ŁˆŁ„Ł‡ā€ŒŁƒ',\n mm: '%d Ų®ŁˆŁ„Ł‡ā€ŒŁƒ',\n h: 'ŪŒŁ‡ā€ŒŁƒ ŁƒŲ§ŲŖŚ˜Ł…ŪŽŲ±',\n hh: '%d ŁƒŲ§ŲŖŚ˜Ł…ŪŽŲ±',\n d: 'ŪŒŁ‡ā€ŒŁƒ Ś•Ū†Ś˜',\n dd: '%d Ś•Ū†Ś˜',\n M: 'ŪŒŁ‡ā€ŒŁƒ مانگ',\n MM: '%d مانگ',\n y: 'ŪŒŁ‡ā€ŒŁƒ ساڵ',\n yy: '%d ساڵ',\n },\n preparse: function (string) {\n return string\n .replace(/[ٔ٢٣٤ل٦٧٨٩٠]/g, function (match) {\n return numberMap$a[match];\n })\n .replace(/،/g, ',');\n },\n postformat: function (string) {\n return string\n .replace(/\\d/g, function (match) {\n return symbolMap$b[match];\n })\n .replace(/,/g, '،');\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$2 = {\n 0: '-чү',\n 1: '-чи',\n 2: '-чи',\n 3: '-чү',\n 4: '-чү',\n 5: '-чи',\n 6: '-чы',\n 7: '-чи',\n 8: '-чи',\n 9: '-чу',\n 10: '-чу',\n 20: '-чы',\n 30: '-чу',\n 40: '-чы',\n 50: '-чү',\n 60: '-чы',\n 70: '-чи',\n 80: '-чи',\n 90: '-чу',\n 100: '-чү',\n };\n\n hooks.defineLocale('ky', {\n months: 'ŃŠ½Š²Š°Ń€ŃŒ_Ń„ŠµŠ²Ń€Š°Š»ŃŒ_март_Š°ŠæŃ€ŠµŠ»ŃŒ_май_ŠøŃŽŠ½ŃŒ_ŠøŃŽŠ»ŃŒ_Š°Š²Š³ŃƒŃŃ‚_ŃŠµŠ½Ń‚ŃŠ±Ń€ŃŒ_Š¾ŠŗŃ‚ŃŠ±Ń€ŃŒ_Š½Š¾ŃŠ±Ń€ŃŒ_Š“ŠµŠŗŠ°Š±Ń€ŃŒ'.split(\n '_'\n ),\n monthsShort: 'ŃŠ½Š²_фев_март_апр_май_ŠøŃŽŠ½ŃŒ_ŠøŃŽŠ»ŃŒ_авг_сен_окт_Š½Š¾Ń_Гек'.split(\n '_'\n ),\n weekdays: 'Š–ŠµŠŗŃˆŠµŠ¼Š±Šø_Š”ŅÆŠ¹ŃˆÓ©Š¼Š±ŅÆ_Шейшемби_ŠØŠ°Ń€ŃˆŠµŠ¼Š±Šø_Š‘ŠµŠ¹ŃˆŠµŠ¼Š±Šø_Š–ŃƒŠ¼Š°_Ишемби'.split(\n '_'\n ),\n weekdaysShort: 'Жек_Дүй_Шей_Шар_Бей_Š–ŃƒŠ¼_Ише'.split('_'),\n weekdaysMin: 'Š–Šŗ_Дй_Шй_ŠØŃ€_Бй_Жм_Иш'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Бүгүн саат] LT',\n nextDay: '[Эртең саат] LT',\n nextWeek: 'dddd [саат] LT',\n lastDay: '[ŠšŠµŃ‡ŃŃ саат] LT',\n lastWeek: '[Өткөн аптанын] dddd [күнү] [саат] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ичинГе',\n past: '%s Š¼ŃƒŃ€ŃƒŠ½',\n s: 'бирнече секунГ',\n ss: '%d секунГ',\n m: 'бир мүнөт',\n mm: '%d мүнөт',\n h: 'бир саат',\n hh: '%d саат',\n d: 'бир күн',\n dd: '%d күн',\n M: 'бир ай',\n MM: '%d ай',\n y: 'бир жыл',\n yy: '%d жыл',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(чи|чы|чү|чу)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes$2[number] || suffixes$2[a] || suffixes$2[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$6(number, withoutSuffix, key, isFuture) {\n var format = {\n m: ['eng Minutt', 'enger Minutt'],\n h: ['eng Stonn', 'enger Stonn'],\n d: ['een Dag', 'engem Dag'],\n M: ['ee Mount', 'engem Mount'],\n y: ['ee Joer', 'engem Joer'],\n };\n return withoutSuffix ? format[key][0] : format[key][1];\n }\n function processFutureTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'a ' + string;\n }\n return 'an ' + string;\n }\n function processPastTime(string) {\n var number = string.substr(0, string.indexOf(' '));\n if (eifelerRegelAppliesToNumber(number)) {\n return 'viru ' + string;\n }\n return 'virun ' + string;\n }\n /**\n * Returns true if the word before the given number loses the '-n' ending.\n * e.g. 'an 10 Deeg' but 'a 5 Deeg'\n *\n * @param number {integer}\n * @returns {boolean}\n */\n function eifelerRegelAppliesToNumber(number) {\n number = parseInt(number, 10);\n if (isNaN(number)) {\n return false;\n }\n if (number < 0) {\n // Negative Number --> always true\n return true;\n } else if (number < 10) {\n // Only 1 digit\n if (4 <= number && number <= 7) {\n return true;\n }\n return false;\n } else if (number < 100) {\n // 2 digits\n var lastDigit = number % 10,\n firstDigit = number / 10;\n if (lastDigit === 0) {\n return eifelerRegelAppliesToNumber(firstDigit);\n }\n return eifelerRegelAppliesToNumber(lastDigit);\n } else if (number < 10000) {\n // 3 or 4 digits --> recursively check first digit\n while (number >= 10) {\n number = number / 10;\n }\n return eifelerRegelAppliesToNumber(number);\n } else {\n // Anything larger than 4 digits: recursively check first n-3 digits\n number = number / 1000;\n return eifelerRegelAppliesToNumber(number);\n }\n }\n\n hooks.defineLocale('lb', {\n months: 'Januar_Februar_MƤerz_AbrĆ«ll_Mee_Juni_Juli_August_September_Oktober_November_Dezember'.split(\n '_'\n ),\n monthsShort: 'Jan._Febr._Mrz._Abr._Mee_Jun._Jul._Aug._Sept._Okt._Nov._Dez.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'Sonndeg_MĆ©indeg_DĆ«nschdeg_MĆ«ttwoch_Donneschdeg_Freideg_Samschdeg'.split(\n '_'\n ),\n weekdaysShort: 'So._MĆ©._DĆ«._MĆ«._Do._Fr._Sa.'.split('_'),\n weekdaysMin: 'So_MĆ©_DĆ«_MĆ«_Do_Fr_Sa'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm [Auer]',\n LTS: 'H:mm:ss [Auer]',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm [Auer]',\n LLLL: 'dddd, D. MMMM YYYY H:mm [Auer]',\n },\n calendar: {\n sameDay: '[Haut um] LT',\n sameElse: 'L',\n nextDay: '[Muer um] LT',\n nextWeek: 'dddd [um] LT',\n lastDay: '[GĆ«schter um] LT',\n lastWeek: function () {\n // Different date string for 'DĆ«nschdeg' (Tuesday) and 'Donneschdeg' (Thursday) due to phonological rule\n switch (this.day()) {\n case 2:\n case 4:\n return '[Leschten] dddd [um] LT';\n default:\n return '[Leschte] dddd [um] LT';\n }\n },\n },\n relativeTime: {\n future: processFutureTime,\n past: processPastTime,\n s: 'e puer Sekonnen',\n ss: '%d Sekonnen',\n m: processRelativeTime$6,\n mm: '%d Minutten',\n h: processRelativeTime$6,\n hh: '%d Stonnen',\n d: processRelativeTime$6,\n dd: '%d Deeg',\n M: processRelativeTime$6,\n MM: '%d MĆ©int',\n y: processRelativeTime$6,\n yy: '%d Joer',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('lo', {\n months: 'ດັງກອນ_ąŗąŗøąŗ”ąŗžąŗ²_ດີນາ_ເດສາ_ąŗžąŗ¶ąŗ”ąŗŖąŗ°ąŗžąŗ²_ດຓຖຸນາ_ąŗą»ąŗ„ąŗ°ąŗąŗ»ąŗ”_ສຓງຫາ_ąŗąŗ±ąŗ™ąŗąŗ²_ąŗ•ąŗøąŗ„ąŗ²_ąŗžąŗ°ąŗˆąŗ“ąŗ_ທັນວາ'.split(\n '_'\n ),\n monthsShort: 'ດັງກອນ_ąŗąŗøąŗ”ąŗžąŗ²_ດີນາ_ເດສາ_ąŗžąŗ¶ąŗ”ąŗŖąŗ°ąŗžąŗ²_ດຓຖຸນາ_ąŗą»ąŗ„ąŗ°ąŗąŗ»ąŗ”_ສຓງຫາ_ąŗąŗ±ąŗ™ąŗąŗ²_ąŗ•ąŗøąŗ„ąŗ²_ąŗžąŗ°ąŗˆąŗ“ąŗ_ທັນວາ'.split(\n '_'\n ),\n weekdays: 'ອາທຓດ_ąŗˆąŗ±ąŗ™_ອັງຄານ_ąŗžąŗøąŗ”_ąŗžąŗ°ąŗ«ąŗ±ąŗ”_ສຸກ_ເສົາ'.split('_'),\n weekdaysShort: 'ąŗ—ąŗ“ąŗ”_ąŗˆąŗ±ąŗ™_ອັງຄານ_ąŗžąŗøąŗ”_ąŗžąŗ°ąŗ«ąŗ±ąŗ”_ສຸກ_ເສົາ'.split('_'),\n weekdaysMin: 'ąŗ—_ຈ_ąŗ­ąŗ„_ąŗž_ąŗžąŗ«_ສກ_ąŗŖ'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'ວັນdddd D MMMM YYYY HH:mm',\n },\n meridiemParse: /ąŗ•ąŗ­ąŗ™ą»€ąŗŠąŗ»ą»‰ąŗ²|ຕອນແຄງ/,\n isPM: function (input) {\n return input === 'ຕອນແຄງ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ąŗ•ąŗ­ąŗ™ą»€ąŗŠąŗ»ą»‰ąŗ²';\n } else {\n return 'ຕອນແຄງ';\n }\n },\n calendar: {\n sameDay: '[ດື້ນີ້ເວຄາ] LT',\n nextDay: '[ąŗ”ąŗ·ą»‰ąŗ­ąŗ·ą»ˆąŗ™ą»€ąŗ§ąŗ„ąŗ²] LT',\n nextWeek: '[ວັນ]dddd[ą»œą»‰ąŗ²ą»€ąŗ§ąŗ„ąŗ²] LT',\n lastDay: '[ດື້ວານນີ້ເວຄາ] LT',\n lastWeek: '[ວັນ]dddd[ແຄ້ວນີ້ເວຄາ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ອີກ %s',\n past: '%sąŗœą»ˆąŗ²ąŗ™ąŗ”ąŗ²',\n s: 'ąŗšą»ą»ˆą»€ąŗ—ąŗ»ą»ˆąŗ²ą»ƒąŗ”ąŗ§ąŗ“ąŗ™ąŗ²ąŗ—ąŗµ',\n ss: '%d ວຓນາທີ',\n m: '1 ນາທີ',\n mm: '%d ນາທີ',\n h: '1 ąŗŠąŗ»ą»ˆąŗ§ą»‚ąŗ”ąŗ‡',\n hh: '%d ąŗŠąŗ»ą»ˆąŗ§ą»‚ąŗ”ąŗ‡',\n d: '1 ດື້',\n dd: '%d ດື້',\n M: '1 ເດືອນ',\n MM: '%d ເດືອນ',\n y: '1 ປີ',\n yy: '%d ປີ',\n },\n dayOfMonthOrdinalParse: /(ąŗ—ąŗµą»ˆ)\\d{1,2}/,\n ordinal: function (number) {\n return 'ąŗ—ąŗµą»ˆ' + number;\n },\n });\n\n //! moment.js locale configuration\n\n var units = {\n ss: 'sekundė_sekundžių_sekundes',\n m: 'minutė_minutės_minutę',\n mm: 'minutės_minučių_minutes',\n h: 'valanda_valandos_valandą',\n hh: 'valandos_valandų_valandas',\n d: 'diena_dienos_dieną',\n dd: 'dienos_dienų_dienas',\n M: 'mėnuo_mėnesio_mėnesÄÆ',\n MM: 'mėnesiai_mėnesių_mėnesius',\n y: 'metai_metų_metus',\n yy: 'metai_metų_metus',\n };\n function translateSeconds(number, withoutSuffix, key, isFuture) {\n if (withoutSuffix) {\n return 'kelios sekundės';\n } else {\n return isFuture ? 'kelių sekundžių' : 'kelias sekundes';\n }\n }\n function translateSingular(number, withoutSuffix, key, isFuture) {\n return withoutSuffix\n ? forms(key)[0]\n : isFuture\n ? forms(key)[1]\n : forms(key)[2];\n }\n function special(number) {\n return number % 10 === 0 || (number > 10 && number < 20);\n }\n function forms(key) {\n return units[key].split('_');\n }\n function translate$6(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n if (number === 1) {\n return (\n result + translateSingular(number, withoutSuffix, key[0], isFuture)\n );\n } else if (withoutSuffix) {\n return result + (special(number) ? forms(key)[1] : forms(key)[0]);\n } else {\n if (isFuture) {\n return result + forms(key)[1];\n } else {\n return result + (special(number) ? forms(key)[1] : forms(key)[2]);\n }\n }\n }\n hooks.defineLocale('lt', {\n months: {\n format: 'sausio_vasario_kovo_balandžio_gegužės_birželio_liepos_rugpjūčio_rugsėjo_spalio_lapkričio_gruodžio'.split(\n '_'\n ),\n standalone: 'sausis_vasaris_kovas_balandis_gegužė_birželis_liepa_rugpjÅ«tis_rugsėjis_spalis_lapkritis_gruodis'.split(\n '_'\n ),\n isFormat: /D[oD]?(\\[[^\\[\\]]*\\]|\\s)+MMMM?|MMMM?(\\[[^\\[\\]]*\\]|\\s)+D[oD]?/,\n },\n monthsShort: 'sau_vas_kov_bal_geg_bir_lie_rgp_rgs_spa_lap_grd'.split('_'),\n weekdays: {\n format: 'sekmadienÄÆ_pirmadienÄÆ_antradienÄÆ_trečiadienÄÆ_ketvirtadienÄÆ_penktadienÄÆ_Å”eÅ”tadienÄÆ'.split(\n '_'\n ),\n standalone: 'sekmadienis_pirmadienis_antradienis_trečiadienis_ketvirtadienis_penktadienis_Å”eÅ”tadienis'.split(\n '_'\n ),\n isFormat: /dddd HH:mm/,\n },\n weekdaysShort: 'Sek_Pir_Ant_Tre_Ket_Pen_Å eÅ”'.split('_'),\n weekdaysMin: 'S_P_A_T_K_Pn_Å '.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY [m.] MMMM D [d.]',\n LLL: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n LLLL: 'YYYY [m.] MMMM D [d.], dddd, HH:mm [val.]',\n l: 'YYYY-MM-DD',\n ll: 'YYYY [m.] MMMM D [d.]',\n lll: 'YYYY [m.] MMMM D [d.], HH:mm [val.]',\n llll: 'YYYY [m.] MMMM D [d.], ddd, HH:mm [val.]',\n },\n calendar: {\n sameDay: '[Å iandien] LT',\n nextDay: '[Rytoj] LT',\n nextWeek: 'dddd LT',\n lastDay: '[Vakar] LT',\n lastWeek: '[PraėjusÄÆ] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'po %s',\n past: 'prieÅ” %s',\n s: translateSeconds,\n ss: translate$6,\n m: translateSingular,\n mm: translate$6,\n h: translateSingular,\n hh: translate$6,\n d: translateSingular,\n dd: translate$6,\n M: translateSingular,\n MM: translate$6,\n y: translateSingular,\n yy: translate$6,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-oji/,\n ordinal: function (number) {\n return number + '-oji';\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var units$1 = {\n ss: 'sekundes_sekundēm_sekunde_sekundes'.split('_'),\n m: 'minÅ«tes_minÅ«tēm_minÅ«te_minÅ«tes'.split('_'),\n mm: 'minÅ«tes_minÅ«tēm_minÅ«te_minÅ«tes'.split('_'),\n h: 'stundas_stundām_stunda_stundas'.split('_'),\n hh: 'stundas_stundām_stunda_stundas'.split('_'),\n d: 'dienas_dienām_diena_dienas'.split('_'),\n dd: 'dienas_dienām_diena_dienas'.split('_'),\n M: 'mēneÅ”a_mēneÅ”iem_mēnesis_mēneÅ”i'.split('_'),\n MM: 'mēneÅ”a_mēneÅ”iem_mēnesis_mēneÅ”i'.split('_'),\n y: 'gada_gadiem_gads_gadi'.split('_'),\n yy: 'gada_gadiem_gads_gadi'.split('_'),\n };\n /**\n * @param withoutSuffix boolean true = a length of time; false = before/after a period of time.\n */\n function format$1(forms, number, withoutSuffix) {\n if (withoutSuffix) {\n // E.g. \"21 minÅ«te\", \"3 minÅ«tes\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[2] : forms[3];\n } else {\n // E.g. \"21 minÅ«tes\" as in \"pēc 21 minÅ«tes\".\n // E.g. \"3 minÅ«tēm\" as in \"pēc 3 minÅ«tēm\".\n return number % 10 === 1 && number % 100 !== 11 ? forms[0] : forms[1];\n }\n }\n function relativeTimeWithPlural$1(number, withoutSuffix, key) {\n return number + ' ' + format$1(units$1[key], number, withoutSuffix);\n }\n function relativeTimeWithSingular(number, withoutSuffix, key) {\n return format$1(units$1[key], number, withoutSuffix);\n }\n function relativeSeconds(number, withoutSuffix) {\n return withoutSuffix ? 'dažas sekundes' : 'dažām sekundēm';\n }\n\n hooks.defineLocale('lv', {\n months: 'janvāris_februāris_marts_aprÄ«lis_maijs_jÅ«nijs_jÅ«lijs_augusts_septembris_oktobris_novembris_decembris'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_mai_jÅ«n_jÅ«l_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'svētdiena_pirmdiena_otrdiena_treÅ”diena_ceturtdiena_piektdiena_sestdiena'.split(\n '_'\n ),\n weekdaysShort: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysMin: 'Sv_P_O_T_C_Pk_S'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY.',\n LL: 'YYYY. [gada] D. MMMM',\n LLL: 'YYYY. [gada] D. MMMM, HH:mm',\n LLLL: 'YYYY. [gada] D. MMMM, dddd, HH:mm',\n },\n calendar: {\n sameDay: '[Å odien pulksten] LT',\n nextDay: '[RÄ«t pulksten] LT',\n nextWeek: 'dddd [pulksten] LT',\n lastDay: '[Vakar pulksten] LT',\n lastWeek: '[PagājuŔā] dddd [pulksten] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'pēc %s',\n past: 'pirms %s',\n s: relativeSeconds,\n ss: relativeTimeWithPlural$1,\n m: relativeTimeWithSingular,\n mm: relativeTimeWithPlural$1,\n h: relativeTimeWithSingular,\n hh: relativeTimeWithPlural$1,\n d: relativeTimeWithSingular,\n dd: relativeTimeWithPlural$1,\n M: relativeTimeWithSingular,\n MM: relativeTimeWithPlural$1,\n y: relativeTimeWithSingular,\n yy: relativeTimeWithPlural$1,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var translator = {\n words: {\n //Different grammatical cases\n ss: ['sekund', 'sekunda', 'sekundi'],\n m: ['jedan minut', 'jednog minuta'],\n mm: ['minut', 'minuta', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mjesec', 'mjeseca', 'mjeseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n hooks.defineLocale('me', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedjelja_ponedjeljak_utorak_srijeda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sri._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sjutra u] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedjelju] [u] LT';\n case 3:\n return '[u] [srijedu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[proÅ”le] [nedjelje] [u] LT',\n '[proÅ”log] [ponedjeljka] [u] LT',\n '[proÅ”log] [utorka] [u] LT',\n '[proÅ”le] [srijede] [u] LT',\n '[proÅ”log] [četvrtka] [u] LT',\n '[proÅ”log] [petka] [u] LT',\n '[proÅ”le] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'prije %s',\n s: 'nekoliko sekundi',\n ss: translator.translate,\n m: translator.translate,\n mm: translator.translate,\n h: translator.translate,\n hh: translator.translate,\n d: 'dan',\n dd: translator.translate,\n M: 'mjesec',\n MM: translator.translate,\n y: 'godinu',\n yy: translator.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('mi', {\n months: 'Kohi-tāte_Hui-tanguru_PoutÅ«-te-rangi_Paenga-whāwhā_Haratua_Pipiri_Hōngoingoi_Here-turi-kōkā_Mahuru_Whiringa-ā-nuku_Whiringa-ā-rangi_Hakihea'.split(\n '_'\n ),\n monthsShort: 'Kohi_Hui_Pou_Pae_Hara_Pipi_Hōngoi_Here_Mahu_Whi-nu_Whi-ra_Haki'.split(\n '_'\n ),\n monthsRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,3}/i,\n monthsShortStrictRegex: /(?:['a-z\\u0101\\u014D\\u016B]+\\-?){1,2}/i,\n weekdays: 'Rātapu_Mane_TÅ«rei_Wenerei_Tāite_Paraire_Hātarei'.split('_'),\n weekdaysShort: 'Ta_Ma_TÅ«_We_Tāi_Pa_Hā'.split('_'),\n weekdaysMin: 'Ta_Ma_TÅ«_We_Tāi_Pa_Hā'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [i] HH:mm',\n LLLL: 'dddd, D MMMM YYYY [i] HH:mm',\n },\n calendar: {\n sameDay: '[i teie mahana, i] LT',\n nextDay: '[apopo i] LT',\n nextWeek: 'dddd [i] LT',\n lastDay: '[inanahi i] LT',\n lastWeek: 'dddd [whakamutunga i] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'i roto i %s',\n past: '%s i mua',\n s: 'te hēkona ruarua',\n ss: '%d hēkona',\n m: 'he meneti',\n mm: '%d meneti',\n h: 'te haora',\n hh: '%d haora',\n d: 'he ra',\n dd: '%d ra',\n M: 'he marama',\n MM: '%d marama',\n y: 'he tau',\n yy: '%d tau',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Āŗ/,\n ordinal: '%dĀŗ',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('mk', {\n months: 'Ń˜Š°Š½ŃƒŠ°Ń€Šø_Ń„ŠµŠ²Ń€ŃƒŠ°Ń€Šø_март_април_мај_јуни_јули_Š°Š²Š³ŃƒŃŃ‚_септември_октомври_ноември_Гекември'.split(\n '_'\n ),\n monthsShort: 'јан_фев_мар_апр_мај_јун_јул_авг_сеп_окт_ное_Гек'.split('_'),\n weekdays: 'неГела_понеГелник_вторник_среГа_четврток_петок_сабота'.split(\n '_'\n ),\n weekdaysShort: 'неГ_пон_вто_сре_чет_пет_саб'.split('_'),\n weekdaysMin: 'нe_Šæo_вт_ср_че_пе_сa'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[Денес во] LT',\n nextDay: '[Утре во] LT',\n nextWeek: '[Во] dddd [во] LT',\n lastDay: '[Вчера во] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 6:\n return '[Š˜Š·Š¼ŠøŠ½Š°Ń‚Š°Ń‚Š°] dddd [во] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[Š˜Š·Š¼ŠøŠ½Š°Ń‚ŠøŠ¾Ń‚] dddd [во] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'преГ %s',\n s: 'неколку секунГи',\n ss: '%d секунГи',\n m: 'еГна Š¼ŠøŠ½ŃƒŃ‚а',\n mm: '%d Š¼ŠøŠ½ŃƒŃ‚Šø',\n h: 'еГен час',\n hh: '%d часа',\n d: 'еГен Ген',\n dd: '%d Гена',\n M: 'еГен месец',\n MM: '%d месеци',\n y: 'еГна гоГина',\n yy: '%d гоГини',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ев|ен|ти|ви|ри|ми)/,\n ordinal: function (number) {\n var lastDigit = number % 10,\n last2Digits = number % 100;\n if (number === 0) {\n return number + '-ев';\n } else if (last2Digits === 0) {\n return number + '-ен';\n } else if (last2Digits > 10 && last2Digits < 20) {\n return number + '-ти';\n } else if (lastDigit === 1) {\n return number + '-ви';\n } else if (lastDigit === 2) {\n return number + '-ри';\n } else if (lastDigit === 7 || lastDigit === 8) {\n return number + '-ми';\n } else {\n return number + '-ти';\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ml', {\n months: 'ą“œą“Øąµą“µą“°ą“æ_ą“«ąµ†ą“¬ąµą“°ąµą“µą“°ą“æ_ą“®ą“¾ąµ¼ą“šąµą“šąµ_ą“ą“Ŗąµą“°ą“æąµ½_ą“®ąµ‡ą“Æąµ_ą“œąµ‚ąµŗ_ą“œąµ‚ą“²ąµˆ_ą““ą“—ą“øąµą“±ąµą“±ąµ_ą“øąµ†ą“Ŗąµą“±ąµą“±ą“‚ą“¬ąµ¼_ą“’ą“•ąµą“Ÿąµ‹ą“¬ąµ¼_ą“Øą“µą“‚ą“¬ąµ¼_ą“”ą“æą“øą“‚ą“¬ąµ¼'.split(\n '_'\n ),\n monthsShort: 'ą“œą“Øąµ._ą“«ąµ†ą“¬ąµą“°ąµ._ą“®ą“¾ąµ¼._ą“ą“Ŗąµą“°ą“æ._ą“®ąµ‡ą“Æąµ_ą“œąµ‚ąµŗ_ą“œąµ‚ą“²ąµˆ._ą““ą“—._ą“øąµ†ą“Ŗąµą“±ąµą“±._ą“’ą“•ąµą“Ÿąµ‹._ą“Øą“µą“‚._ą“”ą“æą“øą“‚.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ą“žą“¾ą“Æą“±ą“¾ą““ąµą“š_ą“¤ą“æą“™ąµą“•ą“³ą“¾ą““ąµą“š_ą“šąµŠą“µąµą“µą“¾ą““ąµą“š_ą“¬ąµą“§ą“Øą“¾ą““ąµą“š_ą“µąµą“Æą“¾ą““ą“¾ą““ąµą“š_ą“µąµ†ą“³ąµą“³ą“æą“Æą“¾ą““ąµą“š_ą“¶ą“Øą“æą“Æą“¾ą““ąµą“š'.split(\n '_'\n ),\n weekdaysShort: 'ą“žą“¾ą“Æąµ¼_ą“¤ą“æą“™ąµą“•ąµ¾_ą“šąµŠą“µąµą“µ_ą“¬ąµą“§ąµ»_ą“µąµą“Æą“¾ą““ą“‚_ą“µąµ†ą“³ąµą“³ą“æ_ą“¶ą“Øą“æ'.split('_'),\n weekdaysMin: 'ą“žą“¾_ą“¤ą“æ_ą“šąµŠ_ą“¬ąµ_ą“µąµą“Æą“¾_ą“µąµ†_ą“¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm -ą“Øąµ',\n LTS: 'A h:mm:ss -ą“Øąµ',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm -ą“Øąµ',\n LLLL: 'dddd, D MMMM YYYY, A h:mm -ą“Øąµ',\n },\n calendar: {\n sameDay: '[ą“‡ą“Øąµą“Øąµ] LT',\n nextDay: '[ą“Øą“¾ą“³ąµ†] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ą“‡ą“Øąµą“Øą“²ąµ†] LT',\n lastWeek: '[ą“•ą““ą“æą“žąµą“ž] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ą“•ą““ą“æą“žąµą“žąµ',\n past: '%s ą“®ąµąµ»ą“Ŗąµ',\n s: 'ą“…ąµ½ą“Ŗ ą“Øą“æą“®ą“æą“·ą“™ąµą“™ąµ¾',\n ss: '%d ą“øąµ†ą“•ąµą“•ąµ»ą“”ąµ',\n m: 'ą“’ą“°ąµ ą“®ą“æą“Øą“æą“±ąµą“±ąµ',\n mm: '%d ą“®ą“æą“Øą“æą“±ąµą“±ąµ',\n h: 'ą“’ą“°ąµ ą“®ą“£ą“æą“•ąµą“•ąµ‚ąµ¼',\n hh: '%d ą“®ą“£ą“æą“•ąµą“•ąµ‚ąµ¼',\n d: 'ą“’ą“°ąµ ą“¦ą“æą“µą“øą“‚',\n dd: '%d ą“¦ą“æą“µą“øą“‚',\n M: 'ą“’ą“°ąµ ą“®ą“¾ą“øą“‚',\n MM: '%d ą“®ą“¾ą“øą“‚',\n y: 'ą“’ą“°ąµ ą“µąµ¼ą“·ą“‚',\n yy: '%d ą“µąµ¼ą“·ą“‚',\n },\n meridiemParse: /ą“°ą“¾ą“¤ąµą“°ą“æ|ą“°ą“¾ą“µą“æą“²ąµ†|ą“‰ą“šąµą“š ą“•ą““ą“æą“žąµą“žąµ|ą“µąµˆą“•ąµą“Øąµą“Øąµ‡ą“°ą“‚|ą“°ą“¾ą“¤ąµą“°ą“æ/i,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n (meridiem === 'ą“°ą“¾ą“¤ąµą“°ą“æ' && hour >= 4) ||\n meridiem === 'ą“‰ą“šąµą“š ą“•ą““ą“æą“žąµą“žąµ' ||\n meridiem === 'ą“µąµˆą“•ąµą“Øąµą“Øąµ‡ą“°ą“‚'\n ) {\n return hour + 12;\n } else {\n return hour;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ą“°ą“¾ą“¤ąµą“°ą“æ';\n } else if (hour < 12) {\n return 'ą“°ą“¾ą“µą“æą“²ąµ†';\n } else if (hour < 17) {\n return 'ą“‰ą“šąµą“š ą“•ą““ą“æą“žąµą“žąµ';\n } else if (hour < 20) {\n return 'ą“µąµˆą“•ąµą“Øąµą“Øąµ‡ą“°ą“‚';\n } else {\n return 'ą“°ą“¾ą“¤ąµą“°ą“æ';\n }\n },\n });\n\n //! moment.js locale configuration\n\n function translate$7(number, withoutSuffix, key, isFuture) {\n switch (key) {\n case 's':\n return withoutSuffix ? 'Ń…ŃŠ“Ń…ŃŠ½ секунГ' : 'Ń…ŃŠ“Ń…ŃŠ½ ŃŠµŠŗŃƒŠ½Š“Ń‹Š½';\n case 'ss':\n return number + (withoutSuffix ? ' секунГ' : ' ŃŠµŠŗŃƒŠ½Š“Ń‹Š½');\n case 'm':\n case 'mm':\n return number + (withoutSuffix ? ' Š¼ŠøŠ½ŃƒŃ‚' : ' Š¼ŠøŠ½ŃƒŃ‚Ń‹Š½');\n case 'h':\n case 'hh':\n return number + (withoutSuffix ? ' цаг' : ' цагийн');\n case 'd':\n case 'dd':\n return number + (withoutSuffix ? ' өГөр' : ' өГрийн');\n case 'M':\n case 'MM':\n return number + (withoutSuffix ? ' сар' : ' сарын');\n case 'y':\n case 'yy':\n return number + (withoutSuffix ? ' жил' : ' жилийн');\n default:\n return number;\n }\n }\n\n hooks.defineLocale('mn', {\n months: 'ŠŃŠ³Š“ŅÆŠ³ŃŃŃ€ сар_Š„Š¾Ń‘Ń€Š“ŃƒŠ³Š°Š°Ń€ сар_Š“ŃƒŃ€Š°Š²Š“ŃƒŠ³Š°Š°Ń€ сар_Š”Ó©Ń€Ó©Š²Š“ŅÆŠ³ŃŃŃ€ сар_Š¢Š°Š²Š“ŃƒŠ³Š°Š°Ń€ сар_Š—ŃƒŃ€Š³Š°Š“ŃƒŠ³Š°Š°Ń€ сар_Š”Š¾Š»Š“ŃƒŠ³Š°Š°Ń€ сар_ŠŠ°Š¹Š¼Š“ŃƒŠ³Š°Š°Ń€ сар_Š•ŃŠ“ŅÆŠ³ŃŃŃ€ сар_ŠŃ€Š°Š²Š“ŃƒŠ³Š°Š°Ń€ сар_Арван Š½ŃŠ³Š“ŅÆŠ³ŃŃŃ€ сар_Арван Ń…Š¾Ń‘Ń€Š“ŃƒŠ³Š°Š°Ń€ сар'.split(\n '_'\n ),\n monthsShort: '1 сар_2 сар_3 сар_4 сар_5 сар_6 сар_7 сар_8 сар_9 сар_10 сар_11 сар_12 сар'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ŠŃŠ¼_Даваа_ŠœŃŠ³Š¼Š°Ń€_Лхагва_ŠŸŅÆŃ€ŃŠ²_Баасан_Š‘ŃŠ¼Š±Š°'.split('_'),\n weekdaysShort: 'ŠŃŠ¼_Дав_ŠœŃŠ³_Лха_ŠŸŅÆŃ€_Баа_Š‘ŃŠ¼'.split('_'),\n weekdaysMin: 'ŠŃ_Да_ŠœŃ_Лх_Пү_Ба_Š‘Ń'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY оны MMMMын D',\n LLL: 'YYYY оны MMMMын D HH:mm',\n LLLL: 'dddd, YYYY оны MMMMын D HH:mm',\n },\n meridiemParse: /ҮӨ|ҮЄ/i,\n isPM: function (input) {\n return input === 'ҮЄ';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ҮӨ';\n } else {\n return 'ҮЄ';\n }\n },\n calendar: {\n sameDay: '[ӨнөөГөр] LT',\n nextDay: '[ŠœŠ°Ń€Š³Š°Š°Ńˆ] LT',\n nextWeek: '[Š˜Ń€ŃŃ…] dddd LT',\n lastDay: '[ӨчигГөр] LT',\n lastWeek: '[Өнгөрсөн] dddd LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s Гараа',\n past: '%s өмнө',\n s: translate$7,\n ss: translate$7,\n m: translate$7,\n mm: translate$7,\n h: translate$7,\n hh: translate$7,\n d: translate$7,\n dd: translate$7,\n M: translate$7,\n MM: translate$7,\n y: translate$7,\n yy: translate$7,\n },\n dayOfMonthOrdinalParse: /\\d{1,2} өГөр/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + ' өГөр';\n default:\n return number;\n }\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$c = {\n 1: 'ą„§',\n 2: 'ą„Ø',\n 3: 'ą„©',\n 4: 'ą„Ŗ',\n 5: 'ą„«',\n 6: 'ą„¬',\n 7: 'ą„­',\n 8: 'ą„®',\n 9: 'ą„Æ',\n 0: 'ą„¦',\n },\n numberMap$b = {\n 'ą„§': '1',\n 'ą„Ø': '2',\n 'ą„©': '3',\n 'ą„Ŗ': '4',\n 'ą„«': '5',\n 'ą„¬': '6',\n 'ą„­': '7',\n 'ą„®': '8',\n 'ą„Æ': '9',\n 'ą„¦': '0',\n };\n\n function relativeTimeMr(number, withoutSuffix, string, isFuture) {\n var output = '';\n if (withoutSuffix) {\n switch (string) {\n case 's':\n output = 'ą¤•ą¤¾ą¤¹ą„€ ą¤øą„‡ą¤•ą¤‚ą¤¦';\n break;\n case 'ss':\n output = '%d ą¤øą„‡ą¤•ą¤‚ą¤¦';\n break;\n case 'm':\n output = 'ą¤ą¤• मिनिट';\n break;\n case 'mm':\n output = '%d ą¤®ą¤æą¤Øą¤æą¤Ÿą„‡';\n break;\n case 'h':\n output = 'ą¤ą¤• तास';\n break;\n case 'hh':\n output = '%d तास';\n break;\n case 'd':\n output = 'ą¤ą¤• दिवस';\n break;\n case 'dd':\n output = '%d दिवस';\n break;\n case 'M':\n output = 'ą¤ą¤• महिना';\n break;\n case 'MM':\n output = '%d ą¤®ą¤¹ą¤æą¤Øą„‡';\n break;\n case 'y':\n output = 'ą¤ą¤• ą¤µą¤°ą„ą¤·';\n break;\n case 'yy':\n output = '%d ą¤µą¤°ą„ą¤·ą„‡';\n break;\n }\n } else {\n switch (string) {\n case 's':\n output = 'ą¤•ą¤¾ą¤¹ą„€ ą¤øą„‡ą¤•ą¤‚ą¤¦ą¤¾ą¤‚';\n break;\n case 'ss':\n output = '%d ą¤øą„‡ą¤•ą¤‚ą¤¦ą¤¾ą¤‚';\n break;\n case 'm':\n output = 'ą¤ą¤•ą¤¾ मिनिटा';\n break;\n case 'mm':\n output = '%d ą¤®ą¤æą¤Øą¤æą¤Ÿą¤¾ą¤‚';\n break;\n case 'h':\n output = 'ą¤ą¤•ą¤¾ तासा';\n break;\n case 'hh':\n output = '%d तासां';\n break;\n case 'd':\n output = 'ą¤ą¤•ą¤¾ दिवसा';\n break;\n case 'dd':\n output = '%d दिवसां';\n break;\n case 'M':\n output = 'ą¤ą¤•ą¤¾ ą¤®ą¤¹ą¤æą¤Øą„ą¤Æą¤¾';\n break;\n case 'MM':\n output = '%d ą¤®ą¤¹ą¤æą¤Øą„ą¤Æą¤¾ą¤‚';\n break;\n case 'y':\n output = 'ą¤ą¤•ą¤¾ ą¤µą¤°ą„ą¤·ą¤¾';\n break;\n case 'yy':\n output = '%d ą¤µą¤°ą„ą¤·ą¤¾ą¤‚';\n break;\n }\n }\n return output.replace(/%d/i, number);\n }\n\n hooks.defineLocale('mr', {\n months: 'ą¤œą¤¾ą¤Øą„‡ą¤µą¤¾ą¤°ą„€_ą¤«ą„‡ą¤¬ą„ą¤°ą„ą¤µą¤¾ą¤°ą„€_ą¤®ą¤¾ą¤°ą„ą¤š_ą¤ą¤Ŗą„ą¤°ą¤æą¤²_ą¤®ą„‡_ą¤œą„‚ą¤Ø_ą¤œą„ą¤²ą„ˆ_ą¤‘ą¤—ą¤øą„ą¤Ÿ_ą¤øą¤Ŗą„ą¤Ÿą„‡ą¤‚ą¤¬ą¤°_ą¤‘ą¤•ą„ą¤Ÿą„‹ą¤¬ą¤°_ą¤Øą„‹ą¤µą„ą¤¹ą„‡ą¤‚ą¤¬ą¤°_ą¤”ą¤æą¤øą„‡ą¤‚ą¤¬ą¤°'.split(\n '_'\n ),\n monthsShort: 'ą¤œą¤¾ą¤Øą„‡._ą¤«ą„‡ą¤¬ą„ą¤°ą„._ą¤®ą¤¾ą¤°ą„ą¤š._ą¤ą¤Ŗą„ą¤°ą¤æ._ą¤®ą„‡._ą¤œą„‚ą¤Ø._ą¤œą„ą¤²ą„ˆ._ऑग._ą¤øą¤Ŗą„ą¤Ÿą„‡ą¤‚._ą¤‘ą¤•ą„ą¤Ÿą„‹._ą¤Øą„‹ą¤µą„ą¤¹ą„‡ą¤‚._ą¤”ą¤æą¤øą„‡ą¤‚.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'रविवार_ą¤øą„‹ą¤®ą¤µą¤¾ą¤°_मंगळवार_ą¤¬ą„ą¤§ą¤µą¤¾ą¤°_ą¤—ą„ą¤°ą„‚ą¤µą¤¾ą¤°_ą¤¶ą„ą¤•ą„ą¤°ą¤µą¤¾ą¤°_शनिवार'.split('_'),\n weekdaysShort: 'रवि_ą¤øą„‹ą¤®_मंगळ_ą¤¬ą„ą¤§_ą¤—ą„ą¤°ą„‚_ą¤¶ą„ą¤•ą„ą¤°_शनि'.split('_'),\n weekdaysMin: 'र_ą¤øą„‹_मं_ą¤¬ą„_ą¤—ą„_ą¤¶ą„_श'.split('_'),\n longDateFormat: {\n LT: 'A h:mm वाजता',\n LTS: 'A h:mm:ss वाजता',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm वाजता',\n LLLL: 'dddd, D MMMM YYYY, A h:mm वाजता',\n },\n calendar: {\n sameDay: '[ą¤†ą¤œ] LT',\n nextDay: '[ą¤‰ą¤¦ą„ą¤Æą¤¾] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[काल] LT',\n lastWeek: '[ą¤®ą¤¾ą¤—ą„€ą¤²] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%są¤®ą¤§ą„ą¤Æą„‡',\n past: '%są¤Ŗą„‚ą¤°ą„ą¤µą„€',\n s: relativeTimeMr,\n ss: relativeTimeMr,\n m: relativeTimeMr,\n mm: relativeTimeMr,\n h: relativeTimeMr,\n hh: relativeTimeMr,\n d: relativeTimeMr,\n dd: relativeTimeMr,\n M: relativeTimeMr,\n MM: relativeTimeMr,\n y: relativeTimeMr,\n yy: relativeTimeMr,\n },\n preparse: function (string) {\n return string.replace(/[ą„§ą„Øą„©ą„Ŗą„«ą„¬ą„­ą„®ą„Æą„¦]/g, function (match) {\n return numberMap$b[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$c[match];\n });\n },\n meridiemParse: /ą¤Ŗą¤¹ą¤¾ą¤Ÿą„‡|ą¤øą¤•ą¤¾ą¤³ą„€|ą¤¦ą„ą¤Ŗą¤¾ą¤°ą„€|ą¤øą¤¾ą¤Æą¤‚ą¤•ą¤¾ą¤³ą„€|ą¤°ą¤¾ą¤¤ą„ą¤°ą„€/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ą¤Ŗą¤¹ą¤¾ą¤Ÿą„‡' || meridiem === 'ą¤øą¤•ą¤¾ą¤³ą„€') {\n return hour;\n } else if (\n meridiem === 'ą¤¦ą„ą¤Ŗą¤¾ą¤°ą„€' ||\n meridiem === 'ą¤øą¤¾ą¤Æą¤‚ą¤•ą¤¾ą¤³ą„€' ||\n meridiem === 'ą¤°ą¤¾ą¤¤ą„ą¤°ą„€'\n ) {\n return hour >= 12 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour >= 0 && hour < 6) {\n return 'ą¤Ŗą¤¹ą¤¾ą¤Ÿą„‡';\n } else if (hour < 12) {\n return 'ą¤øą¤•ą¤¾ą¤³ą„€';\n } else if (hour < 17) {\n return 'ą¤¦ą„ą¤Ŗą¤¾ą¤°ą„€';\n } else if (hour < 20) {\n return 'ą¤øą¤¾ą¤Æą¤‚ą¤•ą¤¾ą¤³ą„€';\n } else {\n return 'ą¤°ą¤¾ą¤¤ą„ą¤°ą„€';\n }\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ms-my', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ms', {\n months: 'Januari_Februari_Mac_April_Mei_Jun_Julai_Ogos_September_Oktober_November_Disember'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ogs_Sep_Okt_Nov_Dis'.split('_'),\n weekdays: 'Ahad_Isnin_Selasa_Rabu_Khamis_Jumaat_Sabtu'.split('_'),\n weekdaysShort: 'Ahd_Isn_Sel_Rab_Kha_Jum_Sab'.split('_'),\n weekdaysMin: 'Ah_Is_Sl_Rb_Km_Jm_Sb'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [pukul] HH.mm',\n LLLL: 'dddd, D MMMM YYYY [pukul] HH.mm',\n },\n meridiemParse: /pagi|tengahari|petang|malam/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'pagi') {\n return hour;\n } else if (meridiem === 'tengahari') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'petang' || meridiem === 'malam') {\n return hour + 12;\n }\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'pagi';\n } else if (hours < 15) {\n return 'tengahari';\n } else if (hours < 19) {\n return 'petang';\n } else {\n return 'malam';\n }\n },\n calendar: {\n sameDay: '[Hari ini pukul] LT',\n nextDay: '[Esok pukul] LT',\n nextWeek: 'dddd [pukul] LT',\n lastDay: '[Kelmarin pukul] LT',\n lastWeek: 'dddd [lepas pukul] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dalam %s',\n past: '%s yang lepas',\n s: 'beberapa saat',\n ss: '%d saat',\n m: 'seminit',\n mm: '%d minit',\n h: 'sejam',\n hh: '%d jam',\n d: 'sehari',\n dd: '%d hari',\n M: 'sebulan',\n MM: '%d bulan',\n y: 'setahun',\n yy: '%d tahun',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('mt', {\n months: 'Jannar_Frar_Marzu_April_Mejju_Ä unju_Lulju_Awwissu_Settembru_Ottubru_Novembru_Diċembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fra_Mar_Apr_Mej_Ä un_Lul_Aww_Set_Ott_Nov_Diċ'.split('_'),\n weekdays: 'Il-Ħadd_It-Tnejn_It-Tlieta_L-Erbgħa_Il-Ħamis_Il-Ä imgħa_Is-Sibt'.split(\n '_'\n ),\n weekdaysShort: 'Ħad_Tne_Tli_Erb_Ħam_Ä im_Sib'.split('_'),\n weekdaysMin: 'Ħa_Tn_Tl_Er_Ħa_Ä i_Si'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Illum fil-]LT',\n nextDay: '[Għada fil-]LT',\n nextWeek: 'dddd [fil-]LT',\n lastDay: '[Il-bieraħ fil-]LT',\n lastWeek: 'dddd [li għadda] [fil-]LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'f’ %s',\n past: '%s ilu',\n s: 'ftit sekondi',\n ss: '%d sekondi',\n m: 'minuta',\n mm: '%d minuti',\n h: 'siegħa',\n hh: '%d siegħat',\n d: 'Ä”urnata',\n dd: '%d Ä”ranet',\n M: 'xahar',\n MM: '%d xhur',\n y: 'sena',\n yy: '%d sni',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Āŗ/,\n ordinal: '%dĀŗ',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$d = {\n 1: '၁',\n 2: '၂',\n 3: '၃',\n 4: '၄',\n 5: '၅',\n 6: '၆',\n 7: '၇',\n 8: '၈',\n 9: '၉',\n 0: '၀',\n },\n numberMap$c = {\n '၁': '1',\n '၂': '2',\n '၃': '3',\n '၄': '4',\n '၅': '5',\n '၆': '6',\n '၇': '7',\n '၈': '8',\n '၉': '9',\n '၀': '0',\n };\n\n hooks.defineLocale('my', {\n months: 'į€‡į€”į€ŗį€”į€į€«į€›į€®_į€–į€±į€–į€±į€¬į€ŗį€į€«į€›į€®_မတ်_ဧပြီ_မေ_ဇွန်_į€‡į€°į€œį€­į€Æį€„į€ŗ_į€žį€¼į€‚į€Æį€į€ŗ_į€…į€€į€ŗį€į€„į€ŗį€˜į€¬_į€”į€±į€¬į€€į€ŗį€į€­į€Æį€˜į€¬_į€”į€­į€Æį€į€„į€ŗį€˜į€¬_į€’į€®į€‡į€„į€ŗį€˜į€¬'.split(\n '_'\n ),\n monthsShort: 'ဇန်_ဖေ_မတ်_ပြီ_မေ_ဇွန်_į€œį€­į€Æį€„į€ŗ_į€žį€¼_စက်_နောက်_နို_ဒီ'.split('_'),\n weekdays: 'တနင်္ဂနွေ_į€į€”į€„į€ŗį€¹į€œį€¬_နင်္ဂါ_į€—į€Æį€’į€¹į€“į€Ÿį€°į€ø_į€€į€¼į€¬į€žį€•į€į€±į€ø_į€žį€±į€¬į€€į€¼į€¬_စနေ'.split(\n '_'\n ),\n weekdaysShort: 'နွေ_į€œį€¬_ဂါ_į€Ÿį€°į€ø_ကြာ_į€žį€±į€¬_နေ'.split('_'),\n weekdaysMin: 'နွေ_į€œį€¬_ဂါ_į€Ÿį€°į€ø_ကြာ_į€žį€±į€¬_နေ'.split('_'),\n\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[į€šį€”į€±.] LT [မှာ]',\n nextDay: '[မနက်ဖြန်] LT [မှာ]',\n nextWeek: 'dddd LT [မှာ]',\n lastDay: '[မနေ.က] LT [မှာ]',\n lastWeek: '[į€•į€¼į€®į€øį€į€²į€·į€žį€±į€¬] dddd LT [မှာ]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'į€œį€¬į€™į€Šį€ŗį€· %s မှာ',\n past: 'į€œį€½į€”į€ŗį€į€²į€·į€žį€±į€¬ %s က',\n s: 'စက္ကန်.į€”į€”į€Šį€ŗį€øį€„į€šį€ŗ',\n ss: '%d စက္ကန့်',\n m: 'တစ်မိနစ်',\n mm: '%d မိနစ်',\n h: 'တစ်နာရီ',\n hh: '%d နာရီ',\n d: 'တစ်ရက်',\n dd: '%d ရက်',\n M: 'į€į€…į€ŗį€œ',\n MM: '%d į€œ',\n y: 'တစ်နှစ်',\n yy: '%d နှစ်',\n },\n preparse: function (string) {\n return string.replace(/[įį‚įƒį„į…į†į‡įˆį‰į€]/g, function (match) {\n return numberMap$c[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$d[match];\n });\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('nb', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'sĆøndag_mandag_tirsdag_onsdag_torsdag_fredag_lĆørdag'.split('_'),\n weekdaysShort: 'sĆø._ma._ti._on._to._fr._lĆø.'.split('_'),\n weekdaysMin: 'sĆø_ma_ti_on_to_fr_lĆø'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[i dag kl.] LT',\n nextDay: '[i morgen kl.] LT',\n nextWeek: 'dddd [kl.] LT',\n lastDay: '[i gĆ„r kl.] LT',\n lastWeek: '[forrige] dddd [kl.] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s siden',\n s: 'noen sekunder',\n ss: '%d sekunder',\n m: 'ett minutt',\n mm: '%d minutter',\n h: 'en time',\n hh: '%d timer',\n d: 'en dag',\n dd: '%d dager',\n w: 'en uke',\n ww: '%d uker',\n M: 'en mĆ„ned',\n MM: '%d mĆ„neder',\n y: 'ett Ć„r',\n yy: '%d Ć„r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$e = {\n 1: 'ą„§',\n 2: 'ą„Ø',\n 3: 'ą„©',\n 4: 'ą„Ŗ',\n 5: 'ą„«',\n 6: 'ą„¬',\n 7: 'ą„­',\n 8: 'ą„®',\n 9: 'ą„Æ',\n 0: 'ą„¦',\n },\n numberMap$d = {\n 'ą„§': '1',\n 'ą„Ø': '2',\n 'ą„©': '3',\n 'ą„Ŗ': '4',\n 'ą„«': '5',\n 'ą„¬': '6',\n 'ą„­': '7',\n 'ą„®': '8',\n 'ą„Æ': '9',\n 'ą„¦': '0',\n };\n\n hooks.defineLocale('ne', {\n months: 'ą¤œą¤Øą¤µą¤°ą„€_ą¤«ą„‡ą¤¬ą„ą¤°ą„ą¤µą¤°ą„€_ą¤®ą¤¾ą¤°ą„ą¤š_ą¤…ą¤Ŗą„ą¤°ą¤æą¤²_मई_ą¤œą„ą¤Ø_ą¤œą„ą¤²ą¤¾ą¤ˆ_ą¤…ą¤—ą¤·ą„ą¤Ÿ_ą¤øą„‡ą¤Ŗą„ą¤Ÿą„‡ą¤®ą„ą¤¬ą¤°_ą¤…ą¤•ą„ą¤Ÿą„‹ą¤¬ą¤°_ą¤Øą„‹ą¤­ą„‡ą¤®ą„ą¤¬ą¤°_ą¤”ą¤æą¤øą„‡ą¤®ą„ą¤¬ą¤°'.split(\n '_'\n ),\n monthsShort: 'जन._ą¤«ą„‡ą¤¬ą„ą¤°ą„._ą¤®ą¤¾ą¤°ą„ą¤š_ą¤…ą¤Ŗą„ą¤°ą¤æ._मई_ą¤œą„ą¤Ø_ą¤œą„ą¤²ą¤¾ą¤ˆ._अग._ą¤øą„‡ą¤Ŗą„ą¤Ÿ._ą¤…ą¤•ą„ą¤Ÿą„‹._ą¤Øą„‹ą¤­ą„‡._ą¤”ą¤æą¤øą„‡.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'आइतबार_ą¤øą„‹ą¤®ą¤¬ą¤¾ą¤°_ą¤®ą¤™ą„ą¤—ą¤²ą¤¬ą¤¾ą¤°_ą¤¬ą„ą¤§ą¤¬ą¤¾ą¤°_बिहिबार_ą¤¶ą„ą¤•ą„ą¤°ą¤¬ą¤¾ą¤°_शनिबार'.split(\n '_'\n ),\n weekdaysShort: 'आइत._ą¤øą„‹ą¤®._ą¤®ą¤™ą„ą¤—ą¤²._ą¤¬ą„ą¤§._बिहि._ą¤¶ą„ą¤•ą„ą¤°._शनि.'.split('_'),\n weekdaysMin: 'आ._ą¤øą„‹._मं._ą¤¬ą„._बि._ą¤¶ą„._श.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'Aą¤•ą„‹ h:mm ą¤¬ą¤œą„‡',\n LTS: 'Aą¤•ą„‹ h:mm:ss ą¤¬ą¤œą„‡',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, Aą¤•ą„‹ h:mm ą¤¬ą¤œą„‡',\n LLLL: 'dddd, D MMMM YYYY, Aą¤•ą„‹ h:mm ą¤¬ą¤œą„‡',\n },\n preparse: function (string) {\n return string.replace(/[ą„§ą„Øą„©ą„Ŗą„«ą„¬ą„­ą„®ą„Æą„¦]/g, function (match) {\n return numberMap$d[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$e[match];\n });\n },\n meridiemParse: /राति|बिहान|ą¤¦ą¤æą¤‰ą¤ą¤øą„‹|ą¤øą¤¾ą¤ą¤/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'राति') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'बिहान') {\n return hour;\n } else if (meridiem === 'ą¤¦ą¤æą¤‰ą¤ą¤øą„‹') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ą¤øą¤¾ą¤ą¤') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 3) {\n return 'राति';\n } else if (hour < 12) {\n return 'बिहान';\n } else if (hour < 16) {\n return 'ą¤¦ą¤æą¤‰ą¤ą¤øą„‹';\n } else if (hour < 20) {\n return 'ą¤øą¤¾ą¤ą¤';\n } else {\n return 'राति';\n }\n },\n calendar: {\n sameDay: '[ą¤†ą¤œ] LT',\n nextDay: '[ą¤­ą„‹ą¤²ą¤æ] LT',\n nextWeek: '[ą¤†ą¤‰ą¤ą¤¦ą„‹] dddd[,] LT',\n lastDay: '[ą¤¹ą¤æą¤œą„‹] LT',\n lastWeek: '[ą¤—ą¤ą¤•ą„‹] dddd[,] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%sमा',\n past: '%s अगाऔि',\n s: 'ą¤•ą„‡ą¤¹ą„€ ą¤•ą„ą¤·ą¤£',\n ss: '%d ą¤øą„‡ą¤•ą„‡ą¤£ą„ą¤”',\n m: 'ą¤ą¤• ą¤®ą¤æą¤Øą„‡ą¤Ÿ',\n mm: '%d ą¤®ą¤æą¤Øą„‡ą¤Ÿ',\n h: 'ą¤ą¤• ą¤˜ą¤£ą„ą¤Ÿą¤¾',\n hh: '%d ą¤˜ą¤£ą„ą¤Ÿą¤¾',\n d: 'ą¤ą¤• दिन',\n dd: '%d दिन',\n M: 'ą¤ą¤• महिना',\n MM: '%d महिना',\n y: 'ą¤ą¤• ą¤¬ą¤°ą„ą¤·',\n yy: '%d ą¤¬ą¤°ą„ą¤·',\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n var monthsShortWithDots$1 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots$1 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse$8 = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex$8 = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n hooks.defineLocale('nl-be', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots$1;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$1[m.month()];\n } else {\n return monthsShortWithDots$1[m.month()];\n }\n },\n\n monthsRegex: monthsRegex$8,\n monthsShortRegex: monthsRegex$8,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse$8,\n longMonthsParse: monthsParse$8,\n shortMonthsParse: monthsParse$8,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'ƩƩn minuut',\n mm: '%d minuten',\n h: 'ƩƩn uur',\n hh: '%d uur',\n d: 'ƩƩn dag',\n dd: '%d dagen',\n M: 'ƩƩn maand',\n MM: '%d maanden',\n y: 'ƩƩn jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var monthsShortWithDots$2 = 'jan._feb._mrt._apr._mei_jun._jul._aug._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsShortWithoutDots$2 = 'jan_feb_mrt_apr_mei_jun_jul_aug_sep_okt_nov_dec'.split(\n '_'\n ),\n monthsParse$9 = [\n /^jan/i,\n /^feb/i,\n /^maart|mrt.?$/i,\n /^apr/i,\n /^mei$/i,\n /^jun[i.]?$/i,\n /^jul[i.]?$/i,\n /^aug/i,\n /^sep/i,\n /^okt/i,\n /^nov/i,\n /^dec/i,\n ],\n monthsRegex$9 = /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december|jan\\.?|feb\\.?|mrt\\.?|apr\\.?|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i;\n\n hooks.defineLocale('nl', {\n months: 'januari_februari_maart_april_mei_juni_juli_augustus_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: function (m, format) {\n if (!m) {\n return monthsShortWithDots$2;\n } else if (/-MMM-/.test(format)) {\n return monthsShortWithoutDots$2[m.month()];\n } else {\n return monthsShortWithDots$2[m.month()];\n }\n },\n\n monthsRegex: monthsRegex$9,\n monthsShortRegex: monthsRegex$9,\n monthsStrictRegex: /^(januari|februari|maart|april|mei|ju[nl]i|augustus|september|oktober|november|december)/i,\n monthsShortStrictRegex: /^(jan\\.?|feb\\.?|mrt\\.?|apr\\.?|mei|ju[nl]\\.?|aug\\.?|sep\\.?|okt\\.?|nov\\.?|dec\\.?)/i,\n\n monthsParse: monthsParse$9,\n longMonthsParse: monthsParse$9,\n shortMonthsParse: monthsParse$9,\n\n weekdays: 'zondag_maandag_dinsdag_woensdag_donderdag_vrijdag_zaterdag'.split(\n '_'\n ),\n weekdaysShort: 'zo._ma._di._wo._do._vr._za.'.split('_'),\n weekdaysMin: 'zo_ma_di_wo_do_vr_za'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD-MM-YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[vandaag om] LT',\n nextDay: '[morgen om] LT',\n nextWeek: 'dddd [om] LT',\n lastDay: '[gisteren om] LT',\n lastWeek: '[afgelopen] dddd [om] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'over %s',\n past: '%s geleden',\n s: 'een paar seconden',\n ss: '%d seconden',\n m: 'ƩƩn minuut',\n mm: '%d minuten',\n h: 'ƩƩn uur',\n hh: '%d uur',\n d: 'ƩƩn dag',\n dd: '%d dagen',\n w: 'ƩƩn week',\n ww: '%d weken',\n M: 'ƩƩn maand',\n MM: '%d maanden',\n y: 'ƩƩn jaar',\n yy: '%d jaar',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ste|de)/,\n ordinal: function (number) {\n return (\n number +\n (number === 1 || number === 8 || number >= 20 ? 'ste' : 'de')\n );\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('nn', {\n months: 'januar_februar_mars_april_mai_juni_juli_august_september_oktober_november_desember'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mars_apr._mai_juni_juli_aug._sep._okt._nov._des.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'sundag_mĆ„ndag_tysdag_onsdag_torsdag_fredag_laurdag'.split('_'),\n weekdaysShort: 'su._mĆ„._ty._on._to._fr._lau.'.split('_'),\n weekdaysMin: 'su_mĆ„_ty_on_to_fr_la'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY [kl.] H:mm',\n LLLL: 'dddd D. MMMM YYYY [kl.] HH:mm',\n },\n calendar: {\n sameDay: '[I dag klokka] LT',\n nextDay: '[I morgon klokka] LT',\n nextWeek: 'dddd [klokka] LT',\n lastDay: '[I gĆ„r klokka] LT',\n lastWeek: '[FĆøregĆ„ande] dddd [klokka] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: '%s sidan',\n s: 'nokre sekund',\n ss: '%d sekund',\n m: 'eit minutt',\n mm: '%d minutt',\n h: 'ein time',\n hh: '%d timar',\n d: 'ein dag',\n dd: '%d dagar',\n w: 'ei veke',\n ww: '%d veker',\n M: 'ein mĆ„nad',\n MM: '%d mĆ„nader',\n y: 'eit Ć„r',\n yy: '%d Ć„r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('oc-lnc', {\n months: {\n standalone: 'geniĆØr_febriĆØr_marƧ_abril_mai_junh_julhet_agost_setembre_octòbre_novembre_decembre'.split(\n '_'\n ),\n format: \"de geniĆØr_de febriĆØr_de marƧ_d'abril_de mai_de junh_de julhet_d'agost_de setembre_d'octòbre_de novembre_de decembre\".split(\n '_'\n ),\n isFormat: /D[oD]?(\\s)+MMMM/,\n },\n monthsShort: 'gen._febr._marƧ_abr._mai_junh_julh._ago._set._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'dimenge_diluns_dimars_dimĆØcres_dijòus_divendres_dissabte'.split(\n '_'\n ),\n weekdaysShort: 'dg._dl._dm._dc._dj._dv._ds.'.split('_'),\n weekdaysMin: 'dg_dl_dm_dc_dj_dv_ds'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [de] YYYY',\n ll: 'D MMM YYYY',\n LLL: 'D MMMM [de] YYYY [a] H:mm',\n lll: 'D MMM YYYY, H:mm',\n LLLL: 'dddd D MMMM [de] YYYY [a] H:mm',\n llll: 'ddd D MMM YYYY, H:mm',\n },\n calendar: {\n sameDay: '[uĆØi a] LT',\n nextDay: '[deman a] LT',\n nextWeek: 'dddd [a] LT',\n lastDay: '[iĆØr a] LT',\n lastWeek: 'dddd [passat a] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: \"d'aquĆ­ %s\",\n past: 'fa %s',\n s: 'unas segondas',\n ss: '%d segondas',\n m: 'una minuta',\n mm: '%d minutas',\n h: 'una ora',\n hh: '%d oras',\n d: 'un jorn',\n dd: '%d jorns',\n M: 'un mes',\n MM: '%d meses',\n y: 'un an',\n yy: '%d ans',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(r|n|t|ĆØ|a)/,\n ordinal: function (number, period) {\n var output =\n number === 1\n ? 'r'\n : number === 2\n ? 'n'\n : number === 3\n ? 'r'\n : number === 4\n ? 't'\n : 'ĆØ';\n if (period === 'w' || period === 'W') {\n output = 'a';\n }\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4,\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$f = {\n 1: 'ą©§',\n 2: '੨',\n 3: 'ą©©',\n 4: '੪',\n 5: 'ą©«',\n 6: '੬',\n 7: 'ą©­',\n 8: 'ą©®',\n 9: '੯',\n 0: '੦',\n },\n numberMap$e = {\n 'ą©§': '1',\n '੨': '2',\n 'ą©©': '3',\n '੪': '4',\n 'ą©«': '5',\n '੬': '6',\n 'ą©­': '7',\n 'ą©®': '8',\n '੯': '9',\n '੦': '0',\n };\n\n hooks.defineLocale('pa-in', {\n // There are months name as per Nanakshahi Calendar but they are not used as rigidly in modern Punjabi.\n months: 'ąØœąØØąØµąØ°ą©€_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ąØ…ąØŖą©ąØ°ą©ˆąØ²_ਮਈ_ąØœą©‚ąØØ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n monthsShort: 'ąØœąØØąØµąØ°ą©€_ਫ਼ਰਵਰੀ_ਮਾਰਚ_ąØ…ąØŖą©ąØ°ą©ˆąØ²_ਮਈ_ąØœą©‚ąØØ_ਜੁਲਾਈ_ਅਗਸਤ_ਸਤੰਬਰ_ਅਕਤੂਬਰ_ਨਵੰਬਰ_ਦਸੰਬਰ'.split(\n '_'\n ),\n weekdays: 'ਐਤਵਾਰ_ਸੋਮਵਾਰ_ਮੰਗਲਵਾਰ_ਬੁਧਵਾਰ_ਵੀਰਵਾਰ_ਸ਼ੁੱਕਰਵਾਰ_ąØøąØ¼ąØØą©€ąØšąØ°ąØµąØ¾ąØ°'.split(\n '_'\n ),\n weekdaysShort: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n weekdaysMin: 'ਐਤ_ਸੋਮ_ਮੰਗਲ_ਬੁਧ_ਵੀਰ_ਸ਼ੁਕਰ_ਸ਼ਨੀ'.split('_'),\n longDateFormat: {\n LT: 'A h:mm ąØµąØœą©‡',\n LTS: 'A h:mm:ss ąØµąØœą©‡',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm ąØµąØœą©‡',\n LLLL: 'dddd, D MMMM YYYY, A h:mm ąØµąØœą©‡',\n },\n calendar: {\n sameDay: '[ąØ…ąØœ] LT',\n nextDay: '[ਕਲ] LT',\n nextWeek: '[ਅਗਲਾ] dddd, LT',\n lastDay: '[ਕਲ] LT',\n lastWeek: '[ਪਿਛਲੇ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ਵਿੱਚ',\n past: '%s ਪਿਛਲੇ',\n s: 'ąØ•ą©ąØ ąØøąØ•ąØæą©°ąØŸ',\n ss: '%d ąØøąØ•ąØæą©°ąØŸ',\n m: 'ਇਕ ਮਿੰਟ',\n mm: '%d ਮਿੰਟ',\n h: 'ਇੱਕ ਘੰਟਾ',\n hh: '%d ąØ˜ą©°ąØŸą©‡',\n d: 'ਇੱਕ ਦਿਨ',\n dd: '%d ਦਿਨ',\n M: 'ਇੱਕ ਮਹੀਨਾ',\n MM: '%d ਮਹੀਨੇ',\n y: 'ਇੱਕ ਸਾਲ',\n yy: '%d ਸਾਲ',\n },\n preparse: function (string) {\n return string.replace(/[੧੨੩੪੫੬੭੮੯੦]/g, function (match) {\n return numberMap$e[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$f[match];\n });\n },\n // Punjabi notation for meridiems are quite fuzzy in practice. While there exists\n // a rigid notion of a 'Pahar' it is not used as rigidly in modern Punjabi.\n meridiemParse: /ਰਾਤ|ਸਵੇਰ|ਦੁਪਹਿਰ|ਸ਼ਾਮ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ਰਾਤ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ਸਵੇਰ') {\n return hour;\n } else if (meridiem === 'ਦੁਪਹਿਰ') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ਸ਼ਾਮ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ਰਾਤ';\n } else if (hour < 10) {\n return 'ਸਵੇਰ';\n } else if (hour < 17) {\n return 'ਦੁਪਹਿਰ';\n } else if (hour < 20) {\n return 'ਸ਼ਾਮ';\n } else {\n return 'ਰਾਤ';\n }\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n var monthsNominative = 'styczeń_luty_marzec_kwiecień_maj_czerwiec_lipiec_sierpień_wrzesień_paÅŗdziernik_listopad_grudzień'.split(\n '_'\n ),\n monthsSubjective = 'stycznia_lutego_marca_kwietnia_maja_czerwca_lipca_sierpnia_września_paÅŗdziernika_listopada_grudnia'.split(\n '_'\n ),\n monthsParse$a = [\n /^sty/i,\n /^lut/i,\n /^mar/i,\n /^kwi/i,\n /^maj/i,\n /^cze/i,\n /^lip/i,\n /^sie/i,\n /^wrz/i,\n /^paÅŗ/i,\n /^lis/i,\n /^gru/i,\n ];\n function plural$3(n) {\n return n % 10 < 5 && n % 10 > 1 && ~~(n / 10) % 10 !== 1;\n }\n function translate$8(number, withoutSuffix, key) {\n var result = number + ' ';\n switch (key) {\n case 'ss':\n return result + (plural$3(number) ? 'sekundy' : 'sekund');\n case 'm':\n return withoutSuffix ? 'minuta' : 'minutę';\n case 'mm':\n return result + (plural$3(number) ? 'minuty' : 'minut');\n case 'h':\n return withoutSuffix ? 'godzina' : 'godzinę';\n case 'hh':\n return result + (plural$3(number) ? 'godziny' : 'godzin');\n case 'ww':\n return result + (plural$3(number) ? 'tygodnie' : 'tygodni');\n case 'MM':\n return result + (plural$3(number) ? 'miesiące' : 'miesięcy');\n case 'yy':\n return result + (plural$3(number) ? 'lata' : 'lat');\n }\n }\n\n hooks.defineLocale('pl', {\n months: function (momentToFormat, format) {\n if (!momentToFormat) {\n return monthsNominative;\n } else if (/D MMMM/.test(format)) {\n return monthsSubjective[momentToFormat.month()];\n } else {\n return monthsNominative[momentToFormat.month()];\n }\n },\n monthsShort: 'sty_lut_mar_kwi_maj_cze_lip_sie_wrz_paÅŗ_lis_gru'.split('_'),\n monthsParse: monthsParse$a,\n longMonthsParse: monthsParse$a,\n shortMonthsParse: monthsParse$a,\n weekdays: 'niedziela_poniedziałek_wtorek_środa_czwartek_piątek_sobota'.split(\n '_'\n ),\n weekdaysShort: 'ndz_pon_wt_śr_czw_pt_sob'.split('_'),\n weekdaysMin: 'Nd_Pn_Wt_Śr_Cz_Pt_So'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Dziś o] LT',\n nextDay: '[Jutro o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W niedzielę o] LT';\n\n case 2:\n return '[We wtorek o] LT';\n\n case 3:\n return '[W środę o] LT';\n\n case 6:\n return '[W sobotę o] LT';\n\n default:\n return '[W] dddd [o] LT';\n }\n },\n lastDay: '[Wczoraj o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[W zeszłą niedzielę o] LT';\n case 3:\n return '[W zeszłą środę o] LT';\n case 6:\n return '[W zeszłą sobotę o] LT';\n default:\n return '[W zeszły] dddd [o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: '%s temu',\n s: 'kilka sekund',\n ss: translate$8,\n m: translate$8,\n mm: translate$8,\n h: translate$8,\n hh: translate$8,\n d: '1 dzień',\n dd: '%d dni',\n w: 'tydzień',\n ww: translate$8,\n M: 'miesiąc',\n MM: translate$8,\n y: 'rok',\n yy: translate$8,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('pt-br', {\n months: 'janeiro_fevereiro_marƧo_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'domingo_segunda-feira_terƧa-feira_quarta-feira_quinta-feira_sexta-feira_sĆ”bado'.split(\n '_'\n ),\n weekdaysShort: 'dom_seg_ter_qua_qui_sex_sĆ”b'.split('_'),\n weekdaysMin: 'do_2ĀŖ_3ĀŖ_4ĀŖ_5ĀŖ_6ĀŖ_sĆ”'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY [Ć s] HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY [Ć s] HH:mm',\n },\n calendar: {\n sameDay: '[Hoje Ć s] LT',\n nextDay: '[AmanhĆ£ Ć s] LT',\n nextWeek: 'dddd [Ć s] LT',\n lastDay: '[Ontem Ć s] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [Ć s] LT' // Saturday + Sunday\n : '[Última] dddd [Ć s] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'hĆ” %s',\n s: 'poucos segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n M: 'um mĆŖs',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Āŗ/,\n ordinal: '%dĀŗ',\n invalidDate: 'Data invĆ”lida',\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('pt', {\n months: 'janeiro_fevereiro_marƧo_abril_maio_junho_julho_agosto_setembro_outubro_novembro_dezembro'.split(\n '_'\n ),\n monthsShort: 'jan_fev_mar_abr_mai_jun_jul_ago_set_out_nov_dez'.split('_'),\n weekdays: 'Domingo_Segunda-feira_TerƧa-feira_Quarta-feira_Quinta-feira_Sexta-feira_SĆ”bado'.split(\n '_'\n ),\n weekdaysShort: 'Dom_Seg_Ter_Qua_Qui_Sex_SĆ”b'.split('_'),\n weekdaysMin: 'Do_2ĀŖ_3ĀŖ_4ĀŖ_5ĀŖ_6ĀŖ_SĆ”'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D [de] MMMM [de] YYYY',\n LLL: 'D [de] MMMM [de] YYYY HH:mm',\n LLLL: 'dddd, D [de] MMMM [de] YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Hoje Ć s] LT',\n nextDay: '[AmanhĆ£ Ć s] LT',\n nextWeek: 'dddd [Ć s] LT',\n lastDay: '[Ontem Ć s] LT',\n lastWeek: function () {\n return this.day() === 0 || this.day() === 6\n ? '[Último] dddd [Ć s] LT' // Saturday + Sunday\n : '[Última] dddd [Ć s] LT'; // Monday - Friday\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'em %s',\n past: 'hĆ” %s',\n s: 'segundos',\n ss: '%d segundos',\n m: 'um minuto',\n mm: '%d minutos',\n h: 'uma hora',\n hh: '%d horas',\n d: 'um dia',\n dd: '%d dias',\n w: 'uma semana',\n ww: '%d semanas',\n M: 'um mĆŖs',\n MM: '%d meses',\n y: 'um ano',\n yy: '%d anos',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}Āŗ/,\n ordinal: '%dĀŗ',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function relativeTimeWithPlural$2(number, withoutSuffix, key) {\n var format = {\n ss: 'secunde',\n mm: 'minute',\n hh: 'ore',\n dd: 'zile',\n ww: 'săptămĆ¢ni',\n MM: 'luni',\n yy: 'ani',\n },\n separator = ' ';\n if (number % 100 >= 20 || (number >= 100 && number % 100 === 0)) {\n separator = ' de ';\n }\n return number + separator + format[key];\n }\n\n hooks.defineLocale('ro', {\n months: 'ianuarie_februarie_martie_aprilie_mai_iunie_iulie_august_septembrie_octombrie_noiembrie_decembrie'.split(\n '_'\n ),\n monthsShort: 'ian._feb._mart._apr._mai_iun._iul._aug._sept._oct._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'duminică_luni_marți_miercuri_joi_vineri_sĆ¢mbătă'.split('_'),\n weekdaysShort: 'Dum_Lun_Mar_Mie_Joi_Vin_SĆ¢m'.split('_'),\n weekdaysMin: 'Du_Lu_Ma_Mi_Jo_Vi_SĆ¢'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY H:mm',\n LLLL: 'dddd, D MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[azi la] LT',\n nextDay: '[mĆ¢ine la] LT',\n nextWeek: 'dddd [la] LT',\n lastDay: '[ieri la] LT',\n lastWeek: '[fosta] dddd [la] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'peste %s',\n past: '%s Ć®n urmă',\n s: 'cĆ¢teva secunde',\n ss: relativeTimeWithPlural$2,\n m: 'un minut',\n mm: relativeTimeWithPlural$2,\n h: 'o oră',\n hh: relativeTimeWithPlural$2,\n d: 'o zi',\n dd: relativeTimeWithPlural$2,\n w: 'o săptămĆ¢nă',\n ww: relativeTimeWithPlural$2,\n M: 'o lună',\n MM: relativeTimeWithPlural$2,\n y: 'un an',\n yy: relativeTimeWithPlural$2,\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function plural$4(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural$3(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунГа_ŃŠµŠŗŃƒŠ½Š“Ń‹_секунГ' : 'секунГу_ŃŠµŠŗŃƒŠ½Š“Ń‹_секунГ',\n mm: withoutSuffix ? 'Š¼ŠøŠ½ŃƒŃ‚Š°_Š¼ŠøŠ½ŃƒŃ‚Ń‹_Š¼ŠøŠ½ŃƒŃ‚' : 'Š¼ŠøŠ½ŃƒŃ‚Ńƒ_Š¼ŠøŠ½ŃƒŃ‚Ń‹_Š¼ŠøŠ½ŃƒŃ‚',\n hh: 'час_часа_часов',\n dd: 'Гень_Š“Š½Ń_Гней',\n ww: 'Š½ŠµŠ“ŠµŠ»Ń_неГели_неГель',\n MM: 'Š¼ŠµŃŃŃ†_Š¼ŠµŃŃŃ†Š°_Š¼ŠµŃŃŃ†ŠµŠ²',\n yy: 'гоГ_гоГа_лет',\n };\n if (key === 'm') {\n return withoutSuffix ? 'Š¼ŠøŠ½ŃƒŃ‚Š°' : 'Š¼ŠøŠ½ŃƒŃ‚Ńƒ';\n } else {\n return number + ' ' + plural$4(format[key], +number);\n }\n }\n var monthsParse$b = [\n /^ŃŠ½Š²/i,\n /^фев/i,\n /^мар/i,\n /^апр/i,\n /^ма[Š¹Ń]/i,\n /^ŠøŃŽŠ½/i,\n /^ŠøŃŽŠ»/i,\n /^авг/i,\n /^сен/i,\n /^окт/i,\n /^Š½Š¾Ń/i,\n /^Гек/i,\n ];\n\n // http://new.gramota.ru/spravka/rules/139-prop : § 103\n // Š”Š¾ŠŗŃ€Š°Ń‰ŠµŠ½ŠøŃ Š¼ŠµŃŃŃ†ŠµŠ²: http://new.gramota.ru/spravka/buro/search-answer?s=242637\n // CLDR data: http://www.unicode.org/cldr/charts/28/summary/ru.html#1753\n hooks.defineLocale('ru', {\n months: {\n format: 'ŃŠ½Š²Š°Ń€Ń_Ń„ŠµŠ²Ń€Š°Š»Ń_марта_Š°ŠæŃ€ŠµŠ»Ń_Š¼Š°Ń_ŠøŃŽŠ½Ń_ŠøŃŽŠ»Ń_Š°Š²Š³ŃƒŃŃ‚Š°_ŃŠµŠ½Ń‚ŃŠ±Ń€Ń_Š¾ŠŗŃ‚ŃŠ±Ń€Ń_Š½Š¾ŃŠ±Ń€Ń_Š“ŠµŠŗŠ°Š±Ń€Ń'.split(\n '_'\n ),\n standalone: 'ŃŠ½Š²Š°Ń€ŃŒ_Ń„ŠµŠ²Ń€Š°Š»ŃŒ_март_Š°ŠæŃ€ŠµŠ»ŃŒ_май_ŠøŃŽŠ½ŃŒ_ŠøŃŽŠ»ŃŒ_Š°Š²Š³ŃƒŃŃ‚_ŃŠµŠ½Ń‚ŃŠ±Ń€ŃŒ_Š¾ŠŗŃ‚ŃŠ±Ń€ŃŒ_Š½Š¾ŃŠ±Ń€ŃŒ_Š“ŠµŠŗŠ°Š±Ń€ŃŒ'.split(\n '_'\n ),\n },\n monthsShort: {\n // по CLDR именно \"ŠøŃŽŠ».\" Šø \"ŠøŃŽŠ½.\", но какой смысл Š¼ŠµŠ½ŃŃ‚ŃŒ букву на Ń‚Š¾Ń‡ŠŗŃƒ?\n format: 'ŃŠ½Š²._февр._мар._апр._Š¼Š°Ń_ŠøŃŽŠ½Ń_ŠøŃŽŠ»Ń_авг._сент._окт._Š½Š¾ŃŠ±._Гек.'.split(\n '_'\n ),\n standalone: 'ŃŠ½Š²._февр._март_апр._май_ŠøŃŽŠ½ŃŒ_ŠøŃŽŠ»ŃŒ_авг._сент._окт._Š½Š¾ŃŠ±._Гек.'.split(\n '_'\n ),\n },\n weekdays: {\n standalone: 'Š²Š¾ŃŠŗŃ€ŠµŃŠµŠ½ŃŒŠµ_понеГельник_вторник_среГа_четверг_ŠæŃŃ‚Š½ŠøŃ†Š°_ŃŃƒŠ±Š±Š¾Ń‚Š°'.split(\n '_'\n ),\n format: 'Š²Š¾ŃŠŗŃ€ŠµŃŠµŠ½ŃŒŠµ_понеГельник_вторник_ŃŃ€ŠµŠ“Ńƒ_четверг_ŠæŃŃ‚Š½ŠøŃ†Ńƒ_ŃŃƒŠ±Š±Š¾Ń‚Ńƒ'.split(\n '_'\n ),\n isFormat: /\\[ ?[Вв] ?(?:ŠæŃ€Š¾ŃˆŠ»ŃƒŃŽ|ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŃƒŃŽ|эту)? ?] ?dddd/,\n },\n weekdaysShort: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'вс_пн_вт_ср_чт_пт_сб'.split('_'),\n monthsParse: monthsParse$b,\n longMonthsParse: monthsParse$b,\n shortMonthsParse: monthsParse$b,\n\n // полные Š½Š°Š·Š²Š°Š½ŠøŃ с паГежами, по три Š±ŃƒŠŗŠ²Ń‹, Š“Š»Ń некоторых, по 4 Š±ŃƒŠŗŠ²Ń‹, ŃŠ¾ŠŗŃ€Š°Ń‰ŠµŠ½ŠøŃ с точкой Šø без точки\n monthsRegex: /^(ŃŠ½Š²Š°Ń€[ья]|ŃŠ½Š²\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[Š¹Ń]|ŠøŃŽŠ½[ья]|ŠøŃŽŠ½\\.?|ŠøŃŽŠ»[ья]|ŠøŃŽŠ»\\.?|Š°Š²Š³ŃƒŃŃ‚Š°?|авг\\.?|ŃŠµŠ½Ń‚ŃŠ±Ń€[ья]|сент?\\.?|Š¾ŠŗŃ‚ŃŠ±Ń€[ья]|окт\\.?|Š½Š¾ŃŠ±Ń€[ья]|Š½Š¾ŃŠ±?\\.?|Гекабр[ья]|Гек\\.?)/i,\n\n // ŠŗŠ¾ŠæŠøŃ ŠæŃ€ŠµŠ“Ń‹Š“ŃƒŃ‰ŠµŠ³Š¾\n monthsShortRegex: /^(ŃŠ½Š²Š°Ń€[ья]|ŃŠ½Š²\\.?|феврал[ья]|февр?\\.?|марта?|мар\\.?|апрел[ья]|апр\\.?|ма[Š¹Ń]|ŠøŃŽŠ½[ья]|ŠøŃŽŠ½\\.?|ŠøŃŽŠ»[ья]|ŠøŃŽŠ»\\.?|Š°Š²Š³ŃƒŃŃ‚Š°?|авг\\.?|ŃŠµŠ½Ń‚ŃŠ±Ń€[ья]|сент?\\.?|Š¾ŠŗŃ‚ŃŠ±Ń€[ья]|окт\\.?|Š½Š¾ŃŠ±Ń€[ья]|Š½Š¾ŃŠ±?\\.?|Гекабр[ья]|Гек\\.?)/i,\n\n // полные Š½Š°Š·Š²Š°Š½ŠøŃ с паГежами\n monthsStrictRegex: /^(ŃŠ½Š²Š°Ń€[яь]|феврал[яь]|марта?|апрел[яь]|ма[ŃŠ¹]|ŠøŃŽŠ½[яь]|ŠøŃŽŠ»[яь]|Š°Š²Š³ŃƒŃŃ‚Š°?|ŃŠµŠ½Ń‚ŃŠ±Ń€[яь]|Š¾ŠŗŃ‚ŃŠ±Ń€[яь]|Š½Š¾ŃŠ±Ń€[яь]|Гекабр[яь])/i,\n\n // Выражение, которое ŃŠ¾Š¾Ń‚Š²ŠµŃ‚ŃŃ‚Š²ŃƒŠµŃ‚ Ń‚Š¾Š»ŃŒŠŗŠ¾ сокращённым формам\n monthsShortStrictRegex: /^(ŃŠ½Š²\\.|февр?\\.|мар[т.]|апр\\.|ма[ŃŠ¹]|ŠøŃŽŠ½[ья.]|ŠøŃŽŠ»[ья.]|авг\\.|сент?\\.|окт\\.|Š½Š¾ŃŠ±?\\.|Гек\\.)/i,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY г.',\n LLL: 'D MMMM YYYY г., H:mm',\n LLLL: 'dddd, D MMMM YYYY г., H:mm',\n },\n calendar: {\n sameDay: '[Š”ŠµŠ³Š¾Š“Š½Ń, в] LT',\n nextDay: '[Завтра, в] LT',\n lastDay: '[Вчера, в] LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Š’ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠµŠµ] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Š’ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŠøŠ¹] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Š’ ŃŠ»ŠµŠ“ŃƒŃŽŃ‰ŃƒŃŽ] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Š’] dddd, [в] LT';\n }\n }\n },\n lastWeek: function (now) {\n if (now.week() !== this.week()) {\n switch (this.day()) {\n case 0:\n return '[Š’ ŠæŃ€Š¾ŃˆŠ»Š¾Šµ] dddd, [в] LT';\n case 1:\n case 2:\n case 4:\n return '[Š’ ŠæŃ€Š¾ŃˆŠ»Ń‹Š¹] dddd, [в] LT';\n case 3:\n case 5:\n case 6:\n return '[Š’ ŠæŃ€Š¾ŃˆŠ»ŃƒŃŽ] dddd, [в] LT';\n }\n } else {\n if (this.day() === 2) {\n return '[Во] dddd, [в] LT';\n } else {\n return '[Š’] dddd, [в] LT';\n }\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'через %s',\n past: '%s назаГ',\n s: 'несколько секунГ',\n ss: relativeTimeWithPlural$3,\n m: relativeTimeWithPlural$3,\n mm: relativeTimeWithPlural$3,\n h: 'час',\n hh: relativeTimeWithPlural$3,\n d: 'Гень',\n dd: relativeTimeWithPlural$3,\n w: 'Š½ŠµŠ“ŠµŠ»Ń',\n ww: relativeTimeWithPlural$3,\n M: 'Š¼ŠµŃŃŃ†',\n MM: relativeTimeWithPlural$3,\n y: 'гоГ',\n yy: relativeTimeWithPlural$3,\n },\n meridiemParse: /ночи|ŃƒŃ‚Ń€Š°|Š“Š½Ń|вечера/i,\n isPM: function (input) {\n return /^(Š“Š½Ń|вечера)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночи';\n } else if (hour < 12) {\n return 'ŃƒŃ‚Ń€Š°';\n } else if (hour < 17) {\n return 'Š“Š½Ń';\n } else {\n return 'вечера';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го|я)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n return number + '-й';\n case 'D':\n return number + '-го';\n case 'w':\n case 'W':\n return number + '-я';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$9 = [\n 'Ų¬Ł†ŁˆŲ±ŁŠ',\n 'فيبروري',\n 'مارچ',\n 'Ų§Ł¾Ų±ŁŠŁ„',\n 'Ł…Ų¦ŁŠ',\n 'Ų¬ŁˆŁ†',\n 'Ų¬ŁˆŁ„Ų§Ų”Ł',\n 'آگسٽ',\n 'Ų³ŁŠŁ¾Ł½Ł…ŲØŲ±',\n 'آڪٽوبر',\n 'Ł†ŁˆŁ…ŲØŲ±',\n 'ŚŠŲ³Ł…ŲØŲ±',\n ],\n days$1 = ['آچر', 'Ų³ŁˆŁ…Ų±', 'اڱارو', 'Ų§Ų±ŲØŲ¹', 'Ų®Ł…ŁŠŲ³', 'جمع', 'ڇنڇر'];\n\n hooks.defineLocale('sd', {\n months: months$9,\n monthsShort: months$9,\n weekdays: days$1,\n weekdaysShort: days$1,\n weekdaysMin: days$1,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /ŲµŲØŲ­|Ų“Ų§Ł…/,\n isPM: function (input) {\n return 'Ų“Ų§Ł…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ŲµŲØŲ­';\n }\n return 'Ų“Ų§Ł…';\n },\n calendar: {\n sameDay: '[Ų§Ś„] LT',\n nextDay: '[Ų³Ś€Ų§Ś»ŁŠ] LT',\n nextWeek: 'dddd [Ų§Ś³ŁŠŁ† Ł‡ŁŲŖŁŠ تي] LT',\n lastDay: '[ڪالهه] LT',\n lastWeek: '[ŚÆŲ²Ų±ŁŠŁ„ Ł‡ŁŲŖŁŠ] dddd [تي] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s پوؔ',\n past: '%s اڳ',\n s: 'چند Ų³ŁŠŚŖŁ†ŚŠ',\n ss: '%d Ų³ŁŠŚŖŁ†ŚŠ',\n m: 'هڪ منٽ',\n mm: '%d منٽ',\n h: 'هڪ ڪلاڪ',\n hh: '%d ڪلاڪ',\n d: 'هڪ ŚŁŠŁ†Ł‡Ł†',\n dd: '%d ŚŁŠŁ†Ł‡Ł†',\n M: 'هڪ Ł…Ł‡ŁŠŁ†Łˆ',\n MM: '%d Ł…Ł‡ŁŠŁ†Ų§',\n y: 'هڪ Ų³Ų§Ł„',\n yy: '%d Ų³Ų§Ł„',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('se', {\n months: 'ođđajagemĆ”nnu_guovvamĆ”nnu_njukčamĆ”nnu_cuoŋomĆ”nnu_miessemĆ”nnu_geassemĆ”nnu_suoidnemĆ”nnu_borgemĆ”nnu_čakčamĆ”nnu_golggotmĆ”nnu_skĆ”bmamĆ”nnu_juovlamĆ”nnu'.split(\n '_'\n ),\n monthsShort: 'ođđj_guov_njuk_cuo_mies_geas_suoi_borg_čakč_golg_skĆ”b_juov'.split(\n '_'\n ),\n weekdays: 'sotnabeaivi_vuossĆ”rga_maŋŋebĆ”rga_gaskavahkku_duorastat_bearjadat_lĆ”vvardat'.split(\n '_'\n ),\n weekdaysShort: 'sotn_vuos_maŋ_gask_duor_bear_lĆ”v'.split('_'),\n weekdaysMin: 's_v_m_g_d_b_L'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'MMMM D. [b.] YYYY',\n LLL: 'MMMM D. [b.] YYYY [ti.] HH:mm',\n LLLL: 'dddd, MMMM D. [b.] YYYY [ti.] HH:mm',\n },\n calendar: {\n sameDay: '[otne ti] LT',\n nextDay: '[ihttin ti] LT',\n nextWeek: 'dddd [ti] LT',\n lastDay: '[ikte ti] LT',\n lastWeek: '[ovddit] dddd [ti] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s geažes',\n past: 'maŋit %s',\n s: 'moadde sekunddat',\n ss: '%d sekunddat',\n m: 'okta minuhta',\n mm: '%d minuhtat',\n h: 'okta diimmu',\n hh: '%d diimmut',\n d: 'okta beaivi',\n dd: '%d beaivvit',\n M: 'okta mĆ”nnu',\n MM: '%d mĆ”nut',\n y: 'okta jahki',\n yy: '%d jagit',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n /*jshint -W100*/\n hooks.defineLocale('si', {\n months: 'ą¶¢ą¶±ą·€ą·ą¶»ą·’_ą¶“ą·™ą¶¶ą¶»ą·€ą·ą¶»ą·’_ą¶øą·ą¶»ą·Šą¶­ą·”_ą¶…ą¶“ą·Šā€ą¶»ą·šą¶½ą·Š_මැයි_ජූනි_ජූලි_ą¶…ą¶œą·ą·ƒą·Šą¶­ą·”_සැඓ්තැම්බර්_ą¶”ą¶šą·Šą¶­ą·ą¶¶ą¶»ą·Š_ą¶±ą·œą·€ą·ą¶øą·Šą¶¶ą¶»ą·Š_ą¶Æą·™ą·ƒą·ą¶øą·Šą¶¶ą¶»ą·Š'.split(\n '_'\n ),\n monthsShort: 'ජන_ඓෙබ_ą¶øą·ą¶»ą·Š_ą¶…ą¶“ą·Š_මැයි_ජූනි_ජූලි_ą¶…ą¶œą·_සැඓ්_ą¶”ą¶šą·Š_ą¶±ą·œą·€ą·_ą¶Æą·™ą·ƒą·'.split(\n '_'\n ),\n weekdays: 'ą¶‰ą¶»ą·’ą¶Æą·_ą·ƒą¶³ą·”ą¶Æą·_ą¶…ą¶Ÿą·„ą¶»ą·”ą·€ą·ą¶Æą·_ą¶¶ą¶Æą·ą¶Æą·_ą¶¶ą·Šā€ą¶»ą·„ą·ƒą·Šą¶“ą¶­ą·’ą¶±ą·Šą¶Æą·_ą·ƒą·’ą¶šą·”ą¶»ą·ą¶Æą·_ą·ƒą·™ą¶±ą·ƒą·”ą¶»ą·ą¶Æą·'.split(\n '_'\n ),\n weekdaysShort: 'ඉරි_ą·ƒą¶³ą·”_ą¶…ą¶Ÿ_ą¶¶ą¶Æą·_ą¶¶ą·Šā€ą¶»ą·„_ą·ƒą·’ą¶šą·”_ą·ƒą·™ą¶±'.split('_'),\n weekdaysMin: 'ඉ_ස_ą¶…_ą¶¶_ą¶¶ą·Šā€ą¶»_ą·ƒą·’_ą·ƒą·™'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'a h:mm',\n LTS: 'a h:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY MMMM D',\n LLL: 'YYYY MMMM D, a h:mm',\n LLLL: 'YYYY MMMM D [වැනි] dddd, a h:mm:ss',\n },\n calendar: {\n sameDay: '[ą¶…ą¶Æ] LT[ą¶§]',\n nextDay: '[හෙට] LT[ą¶§]',\n nextWeek: 'dddd LT[ą¶§]',\n lastDay: '[ඊයේ] LT[ą¶§]',\n lastWeek: '[ą¶“ą·ƒą·”ą¶œą·’ą¶ŗ] dddd LT[ą¶§]',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%są¶šą·’ą¶±ą·Š',\n past: '%sකට ඓෙර',\n s: 'තත්ඓර ą¶šą·’ą·„ą·’ą¶“ą¶ŗ',\n ss: 'තත්ඓර %d',\n m: 'ą¶øą·’ą¶±ą·’ą¶­ą·Šą¶­ą·”ą·€',\n mm: 'ą¶øą·’ą¶±ą·’ą¶­ą·Šą¶­ą·” %d',\n h: 'ඓැය',\n hh: 'ඓැය %d',\n d: 'දිනය',\n dd: 'ą¶Æą·’ą¶± %d',\n M: 'ą¶øą·ą·ƒą¶ŗ',\n MM: 'ą¶øą·ą·ƒ %d',\n y: 'ą·€ą·ƒą¶»',\n yy: 'ą·€ą·ƒą¶» %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2} වැනි/,\n ordinal: function (number) {\n return number + ' වැනි';\n },\n meridiemParse: /ඓෙර වරු|ඓස් වරු|ą¶“ą·™.ą·€|ą¶“.ą·€./,\n isPM: function (input) {\n return input === 'ą¶“.ą·€.' || input === 'ඓස් වරු';\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? 'ą¶“.ą·€.' : 'ඓස් වරු';\n } else {\n return isLower ? 'ą¶“ą·™.ą·€.' : 'ඓෙර වරු';\n }\n },\n });\n\n //! moment.js locale configuration\n\n var months$a = 'januĆ”r_februĆ”r_marec_aprĆ­l_mĆ”j_jĆŗn_jĆŗl_august_september_október_november_december'.split(\n '_'\n ),\n monthsShort$7 = 'jan_feb_mar_apr_mĆ”j_jĆŗn_jĆŗl_aug_sep_okt_nov_dec'.split('_');\n function plural$5(n) {\n return n > 1 && n < 5;\n }\n function translate$9(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's': // a few seconds / in a few seconds / a few seconds ago\n return withoutSuffix || isFuture ? 'pĆ”r sekĆŗnd' : 'pĆ”r sekundami';\n case 'ss': // 9 seconds / in 9 seconds / 9 seconds ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'sekundy' : 'sekĆŗnd');\n } else {\n return result + 'sekundami';\n }\n case 'm': // a minute / in a minute / a minute ago\n return withoutSuffix ? 'minĆŗta' : isFuture ? 'minĆŗtu' : 'minĆŗtou';\n case 'mm': // 9 minutes / in 9 minutes / 9 minutes ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'minĆŗty' : 'minĆŗt');\n } else {\n return result + 'minĆŗtami';\n }\n case 'h': // an hour / in an hour / an hour ago\n return withoutSuffix ? 'hodina' : isFuture ? 'hodinu' : 'hodinou';\n case 'hh': // 9 hours / in 9 hours / 9 hours ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'hodiny' : 'hodĆ­n');\n } else {\n return result + 'hodinami';\n }\n case 'd': // a day / in a day / a day ago\n return withoutSuffix || isFuture ? 'deň' : 'dňom';\n case 'dd': // 9 days / in 9 days / 9 days ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'dni' : 'dnĆ­');\n } else {\n return result + 'dňami';\n }\n case 'M': // a month / in a month / a month ago\n return withoutSuffix || isFuture ? 'mesiac' : 'mesiacom';\n case 'MM': // 9 months / in 9 months / 9 months ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'mesiace' : 'mesiacov');\n } else {\n return result + 'mesiacmi';\n }\n case 'y': // a year / in a year / a year ago\n return withoutSuffix || isFuture ? 'rok' : 'rokom';\n case 'yy': // 9 years / in 9 years / 9 years ago\n if (withoutSuffix || isFuture) {\n return result + (plural$5(number) ? 'roky' : 'rokov');\n } else {\n return result + 'rokmi';\n }\n }\n }\n\n hooks.defineLocale('sk', {\n months: months$a,\n monthsShort: monthsShort$7,\n weekdays: 'nedeľa_pondelok_utorok_streda_Å”tvrtok_piatok_sobota'.split('_'),\n weekdaysShort: 'ne_po_ut_st_Å”t_pi_so'.split('_'),\n weekdaysMin: 'ne_po_ut_st_Å”t_pi_so'.split('_'),\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[dnes o] LT',\n nextDay: '[zajtra o] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v nedeľu o] LT';\n case 1:\n case 2:\n return '[v] dddd [o] LT';\n case 3:\n return '[v stredu o] LT';\n case 4:\n return '[vo Å”tvrtok o] LT';\n case 5:\n return '[v piatok o] LT';\n case 6:\n return '[v sobotu o] LT';\n }\n },\n lastDay: '[včera o] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[minulĆŗ nedeľu o] LT';\n case 1:\n case 2:\n return '[minulý] dddd [o] LT';\n case 3:\n return '[minulĆŗ stredu o] LT';\n case 4:\n case 5:\n return '[minulý] dddd [o] LT';\n case 6:\n return '[minulĆŗ sobotu o] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pred %s',\n s: translate$9,\n ss: translate$9,\n m: translate$9,\n mm: translate$9,\n h: translate$9,\n hh: translate$9,\n d: translate$9,\n dd: translate$9,\n M: translate$9,\n MM: translate$9,\n y: translate$9,\n yy: translate$9,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function processRelativeTime$7(number, withoutSuffix, key, isFuture) {\n var result = number + ' ';\n switch (key) {\n case 's':\n return withoutSuffix || isFuture\n ? 'nekaj sekund'\n : 'nekaj sekundami';\n case 'ss':\n if (number === 1) {\n result += withoutSuffix ? 'sekundo' : 'sekundi';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'sekundi' : 'sekundah';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'sekunde' : 'sekundah';\n } else {\n result += 'sekund';\n }\n return result;\n case 'm':\n return withoutSuffix ? 'ena minuta' : 'eno minuto';\n case 'mm':\n if (number === 1) {\n result += withoutSuffix ? 'minuta' : 'minuto';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'minuti' : 'minutama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'minute' : 'minutami';\n } else {\n result += withoutSuffix || isFuture ? 'minut' : 'minutami';\n }\n return result;\n case 'h':\n return withoutSuffix ? 'ena ura' : 'eno uro';\n case 'hh':\n if (number === 1) {\n result += withoutSuffix ? 'ura' : 'uro';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'uri' : 'urama';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'ure' : 'urami';\n } else {\n result += withoutSuffix || isFuture ? 'ur' : 'urami';\n }\n return result;\n case 'd':\n return withoutSuffix || isFuture ? 'en dan' : 'enim dnem';\n case 'dd':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'dan' : 'dnem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevoma';\n } else {\n result += withoutSuffix || isFuture ? 'dni' : 'dnevi';\n }\n return result;\n case 'M':\n return withoutSuffix || isFuture ? 'en mesec' : 'enim mesecem';\n case 'MM':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'mesec' : 'mesecem';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'meseca' : 'mesecema';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'mesece' : 'meseci';\n } else {\n result += withoutSuffix || isFuture ? 'mesecev' : 'meseci';\n }\n return result;\n case 'y':\n return withoutSuffix || isFuture ? 'eno leto' : 'enim letom';\n case 'yy':\n if (number === 1) {\n result += withoutSuffix || isFuture ? 'leto' : 'letom';\n } else if (number === 2) {\n result += withoutSuffix || isFuture ? 'leti' : 'letoma';\n } else if (number < 5) {\n result += withoutSuffix || isFuture ? 'leta' : 'leti';\n } else {\n result += withoutSuffix || isFuture ? 'let' : 'leti';\n }\n return result;\n }\n }\n\n hooks.defineLocale('sl', {\n months: 'januar_februar_marec_april_maj_junij_julij_avgust_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj._jun._jul._avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljek_torek_sreda_četrtek_petek_sobota'.split('_'),\n weekdaysShort: 'ned._pon._tor._sre._čet._pet._sob.'.split('_'),\n weekdaysMin: 'ne_po_to_sr_če_pe_so'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD. MM. YYYY',\n LL: 'D. MMMM YYYY',\n LLL: 'D. MMMM YYYY H:mm',\n LLLL: 'dddd, D. MMMM YYYY H:mm',\n },\n calendar: {\n sameDay: '[danes ob] LT',\n nextDay: '[jutri ob] LT',\n\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[v] [nedeljo] [ob] LT';\n case 3:\n return '[v] [sredo] [ob] LT';\n case 6:\n return '[v] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[v] dddd [ob] LT';\n }\n },\n lastDay: '[včeraj ob] LT',\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n return '[prejÅ”njo] [nedeljo] [ob] LT';\n case 3:\n return '[prejÅ”njo] [sredo] [ob] LT';\n case 6:\n return '[prejÅ”njo] [soboto] [ob] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[prejÅ”nji] dddd [ob] LT';\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'čez %s',\n past: 'pred %s',\n s: processRelativeTime$7,\n ss: processRelativeTime$7,\n m: processRelativeTime$7,\n mm: processRelativeTime$7,\n h: processRelativeTime$7,\n hh: processRelativeTime$7,\n d: processRelativeTime$7,\n dd: processRelativeTime$7,\n M: processRelativeTime$7,\n MM: processRelativeTime$7,\n y: processRelativeTime$7,\n yy: processRelativeTime$7,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('sq', {\n months: 'Janar_Shkurt_Mars_Prill_Maj_Qershor_Korrik_Gusht_Shtator_Tetor_NĆ«ntor_Dhjetor'.split(\n '_'\n ),\n monthsShort: 'Jan_Shk_Mar_Pri_Maj_Qer_Kor_Gus_Sht_Tet_NĆ«n_Dhj'.split('_'),\n weekdays: 'E Diel_E HĆ«nĆ«_E MartĆ«_E MĆ«rkurĆ«_E Enjte_E Premte_E ShtunĆ«'.split(\n '_'\n ),\n weekdaysShort: 'Die_HĆ«n_Mar_MĆ«r_Enj_Pre_Sht'.split('_'),\n weekdaysMin: 'D_H_Ma_MĆ«_E_P_Sh'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /PD|MD/,\n isPM: function (input) {\n return input.charAt(0) === 'M';\n },\n meridiem: function (hours, minutes, isLower) {\n return hours < 12 ? 'PD' : 'MD';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Sot nĆ«] LT',\n nextDay: '[NesĆ«r nĆ«] LT',\n nextWeek: 'dddd [nĆ«] LT',\n lastDay: '[Dje nĆ«] LT',\n lastWeek: 'dddd [e kaluar nĆ«] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nĆ« %s',\n past: '%s mĆ« parĆ«',\n s: 'disa sekonda',\n ss: '%d sekonda',\n m: 'njĆ« minutĆ«',\n mm: '%d minuta',\n h: 'njĆ« orĆ«',\n hh: '%d orĆ«',\n d: 'njĆ« ditĆ«',\n dd: '%d ditĆ«',\n M: 'njĆ« muaj',\n MM: '%d muaj',\n y: 'njĆ« vit',\n yy: '%d vite',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var translator$1 = {\n words: {\n //Different grammatical cases\n ss: ['секунГа', 'секунГе', 'секунГи'],\n m: ['јеГан Š¼ŠøŠ½ŃƒŃ‚', 'јеГне Š¼ŠøŠ½ŃƒŃ‚е'],\n mm: ['Š¼ŠøŠ½ŃƒŃ‚', 'Š¼ŠøŠ½ŃƒŃ‚Šµ', 'Š¼ŠøŠ½ŃƒŃ‚Š°'],\n h: ['јеГан сат', 'јеГног сата'],\n hh: ['сат', 'сата', 'сати'],\n dd: ['Ган', 'Гана', 'Гана'],\n MM: ['месец', 'месеца', 'месеци'],\n yy: ['гоГина', 'гоГине', 'гоГина'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator$1.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator$1.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n hooks.defineLocale('sr-cyrl', {\n months: 'Ń˜Š°Š½ŃƒŠ°Ń€_Ń„ŠµŠ±Ń€ŃƒŠ°Ń€_март_април_мај_јун_јул_Š°Š²Š³ŃƒŃŃ‚_септембар_октобар_новембар_Гецембар'.split(\n '_'\n ),\n monthsShort: 'јан._феб._мар._апр._мај_јун_јул_авг._сеп._окт._нов._Гец.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'неГеља_понеГељак_ŃƒŃ‚Š¾Ń€Š°Šŗ_среГа_четвртак_петак_ŃŃƒŠ±Š¾Ń‚Š°'.split('_'),\n weekdaysShort: 'неГ._пон._ŃƒŃ‚Š¾._сре._чет._пет._суб.'.split('_'),\n weekdaysMin: 'не_по_ут_ср_че_пе_су'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[Ганас у] LT',\n nextDay: '[ŃŃƒŃ‚Ń€Š° у] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[у] [Š½ŠµŠ“ŠµŃ™Ńƒ] [у] LT';\n case 3:\n return '[у] [ŃŃ€ŠµŠ“Ńƒ] [у] LT';\n case 6:\n return '[у] [ŃŃƒŠ±Š¾Ń‚Ńƒ] [у] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[у] dddd [у] LT';\n }\n },\n lastDay: '[Ń˜ŃƒŃ‡Šµ у] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[ŠæŃ€Š¾ŃˆŠ»Šµ] [неГеље] [у] LT',\n '[ŠæŃ€Š¾ŃˆŠ»Š¾Š³] [понеГељка] [у] LT',\n '[ŠæŃ€Š¾ŃˆŠ»Š¾Š³] [ŃƒŃ‚Š¾Ń€ŠŗŠ°] [у] LT',\n '[ŠæŃ€Š¾ŃˆŠ»Šµ] [среГе] [у] LT',\n '[ŠæŃ€Š¾ŃˆŠ»Š¾Š³] [четвртка] [у] LT',\n '[ŠæŃ€Š¾ŃˆŠ»Š¾Š³] [петка] [у] LT',\n '[ŠæŃ€Š¾ŃˆŠ»Šµ] [ŃŃƒŠ±Š¾Ń‚Šµ] [у] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: 'пре %s',\n s: 'неколико секунГи',\n ss: translator$1.translate,\n m: translator$1.translate,\n mm: translator$1.translate,\n h: translator$1.translate,\n hh: translator$1.translate,\n d: 'Ган',\n dd: translator$1.translate,\n M: 'месец',\n MM: translator$1.translate,\n y: 'гоГину',\n yy: translator$1.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var translator$2 = {\n words: {\n //Different grammatical cases\n ss: ['sekunda', 'sekunde', 'sekundi'],\n m: ['jedan minut', 'jedne minute'],\n mm: ['minut', 'minute', 'minuta'],\n h: ['jedan sat', 'jednog sata'],\n hh: ['sat', 'sata', 'sati'],\n dd: ['dan', 'dana', 'dana'],\n MM: ['mesec', 'meseca', 'meseci'],\n yy: ['godina', 'godine', 'godina'],\n },\n correctGrammaticalCase: function (number, wordKey) {\n return number === 1\n ? wordKey[0]\n : number >= 2 && number <= 4\n ? wordKey[1]\n : wordKey[2];\n },\n translate: function (number, withoutSuffix, key) {\n var wordKey = translator$2.words[key];\n if (key.length === 1) {\n return withoutSuffix ? wordKey[0] : wordKey[1];\n } else {\n return (\n number +\n ' ' +\n translator$2.correctGrammaticalCase(number, wordKey)\n );\n }\n },\n };\n\n hooks.defineLocale('sr', {\n months: 'januar_februar_mart_april_maj_jun_jul_avgust_septembar_oktobar_novembar_decembar'.split(\n '_'\n ),\n monthsShort: 'jan._feb._mar._apr._maj_jun_jul_avg._sep._okt._nov._dec.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'nedelja_ponedeljak_utorak_sreda_četvrtak_petak_subota'.split(\n '_'\n ),\n weekdaysShort: 'ned._pon._uto._sre._čet._pet._sub.'.split('_'),\n weekdaysMin: 'ne_po_ut_sr_če_pe_su'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'D. M. YYYY.',\n LL: 'D. MMMM YYYY.',\n LLL: 'D. MMMM YYYY. H:mm',\n LLLL: 'dddd, D. MMMM YYYY. H:mm',\n },\n calendar: {\n sameDay: '[danas u] LT',\n nextDay: '[sutra u] LT',\n nextWeek: function () {\n switch (this.day()) {\n case 0:\n return '[u] [nedelju] [u] LT';\n case 3:\n return '[u] [sredu] [u] LT';\n case 6:\n return '[u] [subotu] [u] LT';\n case 1:\n case 2:\n case 4:\n case 5:\n return '[u] dddd [u] LT';\n }\n },\n lastDay: '[juče u] LT',\n lastWeek: function () {\n var lastWeekDays = [\n '[proÅ”le] [nedelje] [u] LT',\n '[proÅ”log] [ponedeljka] [u] LT',\n '[proÅ”log] [utorka] [u] LT',\n '[proÅ”le] [srede] [u] LT',\n '[proÅ”log] [četvrtka] [u] LT',\n '[proÅ”log] [petka] [u] LT',\n '[proÅ”le] [subote] [u] LT',\n ];\n return lastWeekDays[this.day()];\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'za %s',\n past: 'pre %s',\n s: 'nekoliko sekundi',\n ss: translator$2.translate,\n m: translator$2.translate,\n mm: translator$2.translate,\n h: translator$2.translate,\n hh: translator$2.translate,\n d: 'dan',\n dd: translator$2.translate,\n M: 'mesec',\n MM: translator$2.translate,\n y: 'godinu',\n yy: translator$2.translate,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ss', {\n months: \"Bhimbidvwane_Indlovana_Indlov'lenkhulu_Mabasa_Inkhwekhweti_Inhlaba_Kholwane_Ingci_Inyoni_Imphala_Lweti_Ingongoni\".split(\n '_'\n ),\n monthsShort: 'Bhi_Ina_Inu_Mab_Ink_Inh_Kho_Igc_Iny_Imp_Lwe_Igo'.split('_'),\n weekdays: 'Lisontfo_Umsombuluko_Lesibili_Lesitsatfu_Lesine_Lesihlanu_Umgcibelo'.split(\n '_'\n ),\n weekdaysShort: 'Lis_Umb_Lsb_Les_Lsi_Lsh_Umg'.split('_'),\n weekdaysMin: 'Li_Us_Lb_Lt_Ls_Lh_Ug'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[Namuhla nga] LT',\n nextDay: '[Kusasa nga] LT',\n nextWeek: 'dddd [nga] LT',\n lastDay: '[Itolo nga] LT',\n lastWeek: 'dddd [leliphelile] [nga] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'nga %s',\n past: 'wenteka nga %s',\n s: 'emizuzwana lomcane',\n ss: '%d mzuzwana',\n m: 'umzuzu',\n mm: '%d emizuzu',\n h: 'lihora',\n hh: '%d emahora',\n d: 'lilanga',\n dd: '%d emalanga',\n M: 'inyanga',\n MM: '%d tinyanga',\n y: 'umnyaka',\n yy: '%d iminyaka',\n },\n meridiemParse: /ekuseni|emini|entsambama|ebusuku/,\n meridiem: function (hours, minutes, isLower) {\n if (hours < 11) {\n return 'ekuseni';\n } else if (hours < 15) {\n return 'emini';\n } else if (hours < 19) {\n return 'entsambama';\n } else {\n return 'ebusuku';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ekuseni') {\n return hour;\n } else if (meridiem === 'emini') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'entsambama' || meridiem === 'ebusuku') {\n if (hour === 0) {\n return 0;\n }\n return hour + 12;\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: '%d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('sv', {\n months: 'januari_februari_mars_april_maj_juni_juli_augusti_september_oktober_november_december'.split(\n '_'\n ),\n monthsShort: 'jan_feb_mar_apr_maj_jun_jul_aug_sep_okt_nov_dec'.split('_'),\n weekdays: 'sƶndag_mĆ„ndag_tisdag_onsdag_torsdag_fredag_lƶrdag'.split('_'),\n weekdaysShort: 'sƶn_mĆ„n_tis_ons_tor_fre_lƶr'.split('_'),\n weekdaysMin: 'sƶ_mĆ„_ti_on_to_fr_lƶ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY [kl.] HH:mm',\n LLLL: 'dddd D MMMM YYYY [kl.] HH:mm',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Idag] LT',\n nextDay: '[Imorgon] LT',\n lastDay: '[IgĆ„r] LT',\n nextWeek: '[PĆ„] dddd LT',\n lastWeek: '[I] dddd[s] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'om %s',\n past: 'fƶr %s sedan',\n s: 'nĆ„gra sekunder',\n ss: '%d sekunder',\n m: 'en minut',\n mm: '%d minuter',\n h: 'en timme',\n hh: '%d timmar',\n d: 'en dag',\n dd: '%d dagar',\n M: 'en mĆ„nad',\n MM: '%d mĆ„nader',\n y: 'ett Ć„r',\n yy: '%d Ć„r',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(\\:e|\\:a)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((number % 100) / 10) === 1\n ? ':e'\n : b === 1\n ? ':a'\n : b === 2\n ? ':a'\n : b === 3\n ? ':e'\n : ':e';\n return number + output;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('sw', {\n months: 'Januari_Februari_Machi_Aprili_Mei_Juni_Julai_Agosti_Septemba_Oktoba_Novemba_Desemba'.split(\n '_'\n ),\n monthsShort: 'Jan_Feb_Mac_Apr_Mei_Jun_Jul_Ago_Sep_Okt_Nov_Des'.split('_'),\n weekdays: 'Jumapili_Jumatatu_Jumanne_Jumatano_Alhamisi_Ijumaa_Jumamosi'.split(\n '_'\n ),\n weekdaysShort: 'Jpl_Jtat_Jnne_Jtan_Alh_Ijm_Jmos'.split('_'),\n weekdaysMin: 'J2_J3_J4_J5_Al_Ij_J1'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'hh:mm A',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[leo saa] LT',\n nextDay: '[kesho saa] LT',\n nextWeek: '[wiki ijayo] dddd [saat] LT',\n lastDay: '[jana] LT',\n lastWeek: '[wiki iliyopita] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s baadaye',\n past: 'tokea %s',\n s: 'hivi punde',\n ss: 'sekunde %d',\n m: 'dakika moja',\n mm: 'dakika %d',\n h: 'saa limoja',\n hh: 'masaa %d',\n d: 'siku moja',\n dd: 'siku %d',\n M: 'mwezi mmoja',\n MM: 'miezi %d',\n y: 'mwaka mmoja',\n yy: 'miaka %d',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var symbolMap$g = {\n 1: '௧',\n 2: '௨',\n 3: '௩',\n 4: '௪',\n 5: '௫',\n 6: '௬',\n 7: '௭',\n 8: '௮',\n 9: '௯',\n 0: '௦',\n },\n numberMap$f = {\n '௧': '1',\n '௨': '2',\n '௩': '3',\n '௪': '4',\n '௫': '5',\n '௬': '6',\n '௭': '7',\n '௮': '8',\n '௯': '9',\n '௦': '0',\n };\n\n hooks.defineLocale('ta', {\n months: 'ஜனவரி_ą®Ŗą®æą®ŖąÆą®°ą®µą®°ą®æ_ą®®ą®¾ą®°ąÆą®šąÆ_ą®ą®ŖąÆą®°ą®²ąÆ_மே_ą®œąÆ‚ą®©ąÆ_ą®œąÆ‚ą®²ąÆˆ_ą®†ą®•ą®øąÆą®ŸąÆ_ą®šąÆ†ą®ŖąÆą®ŸąÆ†ą®®ąÆą®Ŗą®°ąÆ_ą®…ą®•ąÆą®ŸąÆ‡ą®¾ą®Ŗą®°ąÆ_ą®Øą®µą®®ąÆą®Ŗą®°ąÆ_ą®Ÿą®æą®šą®®ąÆą®Ŗą®°ąÆ'.split(\n '_'\n ),\n monthsShort: 'ஜனவரி_ą®Ŗą®æą®ŖąÆą®°ą®µą®°ą®æ_ą®®ą®¾ą®°ąÆą®šąÆ_ą®ą®ŖąÆą®°ą®²ąÆ_மே_ą®œąÆ‚ą®©ąÆ_ą®œąÆ‚ą®²ąÆˆ_ą®†ą®•ą®øąÆą®ŸąÆ_ą®šąÆ†ą®ŖąÆą®ŸąÆ†ą®®ąÆą®Ŗą®°ąÆ_ą®…ą®•ąÆą®ŸąÆ‡ą®¾ą®Ŗą®°ąÆ_ą®Øą®µą®®ąÆą®Ŗą®°ąÆ_ą®Ÿą®æą®šą®®ąÆą®Ŗą®°ąÆ'.split(\n '_'\n ),\n weekdays: 'ą®žą®¾ą®Æą®æą®±ąÆą®±ąÆą®•ąÆą®•ą®æą®“ą®®ąÆˆ_ą®¤ą®æą®™ąÆą®•ą®ŸąÆą®•ą®æą®“ą®®ąÆˆ_ą®šąÆ†ą®µąÆą®µą®¾ą®ÆąÆą®•ą®æą®“ą®®ąÆˆ_ą®ŖąÆą®¤ą®©ąÆą®•ą®æą®“ą®®ąÆˆ_ą®µą®æą®Æą®¾ą®“ą®•ąÆą®•ą®æą®“ą®®ąÆˆ_ą®µąÆ†ą®³ąÆą®³ą®æą®•ąÆą®•ą®æą®“ą®®ąÆˆ_ą®šą®©ą®æą®•ąÆą®•ą®æą®“ą®®ąÆˆ'.split(\n '_'\n ),\n weekdaysShort: 'ą®žą®¾ą®Æą®æą®±ąÆ_ą®¤ą®æą®™ąÆą®•ą®³ąÆ_ą®šąÆ†ą®µąÆą®µą®¾ą®ÆąÆ_ą®ŖąÆą®¤ą®©ąÆ_ą®µą®æą®Æą®¾ą®“ą®©ąÆ_ą®µąÆ†ą®³ąÆą®³ą®æ_சனி'.split(\n '_'\n ),\n weekdaysMin: 'ą®žą®¾_தி_ą®šąÆ†_பு_வி_வெ_ச'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, HH:mm',\n LLLL: 'dddd, D MMMM YYYY, HH:mm',\n },\n calendar: {\n sameDay: '[ą®‡ą®©ąÆą®±ąÆ] LT',\n nextDay: '[நாளை] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ą®ØąÆ‡ą®±ąÆą®±ąÆ] LT',\n lastWeek: '[ą®•ą®Ÿą®ØąÆą®¤ ą®µą®¾ą®°ą®®ąÆ] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ą®‡ą®²ąÆ',\n past: '%s ą®®ąÆą®©ąÆ',\n s: 'ஒரு சில ą®µą®æą®Øą®¾ą®Ÿą®æą®•ą®³ąÆ',\n ss: '%d ą®µą®æą®Øą®¾ą®Ÿą®æą®•ą®³ąÆ',\n m: 'ஒரு ą®Øą®æą®®ą®æą®Ÿą®®ąÆ',\n mm: '%d ą®Øą®æą®®ą®æą®Ÿą®™ąÆą®•ą®³ąÆ',\n h: 'ஒரு மணி ą®ØąÆ‡ą®°ą®®ąÆ',\n hh: '%d மணி ą®ØąÆ‡ą®°ą®®ąÆ',\n d: 'ஒரு ą®Øą®¾ą®³ąÆ',\n dd: '%d ą®Øą®¾ą®ŸąÆą®•ą®³ąÆ',\n M: 'ஒரு ą®®ą®¾ą®¤ą®®ąÆ',\n MM: '%d ą®®ą®¾ą®¤ą®™ąÆą®•ą®³ąÆ',\n y: 'ஒரு ą®µą®°ąÆą®Ÿą®®ąÆ',\n yy: '%d ą®†ą®£ąÆą®ŸąÆą®•ą®³ąÆ',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}வது/,\n ordinal: function (number) {\n return number + 'வது';\n },\n preparse: function (string) {\n return string.replace(/[௧௨௩௪௫௬௭௮௯௦]/g, function (match) {\n return numberMap$f[match];\n });\n },\n postformat: function (string) {\n return string.replace(/\\d/g, function (match) {\n return symbolMap$g[match];\n });\n },\n // refer http://ta.wikipedia.org/s/1er1\n meridiemParse: /ą®Æą®¾ą®®ą®®ąÆ|ą®µąÆˆą®•ą®±ąÆˆ|ą®•ą®¾ą®²ąÆˆ|ą®Øą®£ąÆą®Ŗą®•ą®²ąÆ|ą®Žą®±ąÆą®Ŗą®¾ą®ŸąÆ|மாலை/,\n meridiem: function (hour, minute, isLower) {\n if (hour < 2) {\n return ' ą®Æą®¾ą®®ą®®ąÆ';\n } else if (hour < 6) {\n return ' ą®µąÆˆą®•ą®±ąÆˆ'; // ą®µąÆˆą®•ą®±ąÆˆ\n } else if (hour < 10) {\n return ' ą®•ą®¾ą®²ąÆˆ'; // ą®•ą®¾ą®²ąÆˆ\n } else if (hour < 14) {\n return ' ą®Øą®£ąÆą®Ŗą®•ą®²ąÆ'; // ą®Øą®£ąÆą®Ŗą®•ą®²ąÆ\n } else if (hour < 18) {\n return ' ą®Žą®±ąÆą®Ŗą®¾ą®ŸąÆ'; // ą®Žą®±ąÆą®Ŗą®¾ą®ŸąÆ\n } else if (hour < 22) {\n return ' மாலை'; // மாலை\n } else {\n return ' ą®Æą®¾ą®®ą®®ąÆ';\n }\n },\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ą®Æą®¾ą®®ą®®ąÆ') {\n return hour < 2 ? hour : hour + 12;\n } else if (meridiem === 'ą®µąÆˆą®•ą®±ąÆˆ' || meridiem === 'ą®•ą®¾ą®²ąÆˆ') {\n return hour;\n } else if (meridiem === 'ą®Øą®£ąÆą®Ŗą®•ą®²ąÆ') {\n return hour >= 10 ? hour : hour + 12;\n } else {\n return hour + 12;\n }\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('te', {\n months: 'జనవరి_ą°«ą°æą°¬ą±ą°°ą°µą°°ą°æ_ą°®ą°¾ą°°ą±ą°šą°æ_ą°ą°Ŗą±ą°°ą°æą°²ą±_మే_ą°œą±‚ą°Øą±_జులై_ą°†ą°—ą°øą±ą°Ÿą±_ą°øą±†ą°Ŗą±ą°Ÿą±†ą°‚ą°¬ą°°ą±_ą°…ą°•ą±ą°Ÿą±‹ą°¬ą°°ą±_ą°Øą°µą°‚ą°¬ą°°ą±_ą°”ą°æą°øą±†ą°‚ą°¬ą°°ą±'.split(\n '_'\n ),\n monthsShort: 'జన._ą°«ą°æą°¬ą±ą°°._ą°®ą°¾ą°°ą±ą°šą°æ_ą°ą°Ŗą±ą°°ą°æ._మే_ą°œą±‚ą°Øą±_జులై_ఆగ._ą°øą±†ą°Ŗą±._ą°…ą°•ą±ą°Ÿą±‹._ą°Øą°µ._ఔిసె.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ఆదివారం_సోమవారం_మంగళవారం_బుధవారం_గురువారం_ą°¶ą±ą°•ą±ą°°ą°µą°¾ą°°ą°‚_శనివారం'.split(\n '_'\n ),\n weekdaysShort: 'ఆది_సోమ_మంగళ_బుధ_గురు_ą°¶ą±ą°•ą±ą°°_ą°¶ą°Øą°æ'.split('_'),\n weekdaysMin: 'ą°†_సో_మం_బు_గు_శు_ą°¶'.split('_'),\n longDateFormat: {\n LT: 'A h:mm',\n LTS: 'A h:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY, A h:mm',\n LLLL: 'dddd, D MMMM YYYY, A h:mm',\n },\n calendar: {\n sameDay: '[నేఔు] LT',\n nextDay: '[రేపు] LT',\n nextWeek: 'dddd, LT',\n lastDay: '[ą°Øą°æą°Øą±ą°Ø] LT',\n lastWeek: '[ą°—ą°¤] dddd, LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s లో',\n past: '%s ą°•ą±ą°°ą°æą°¤ą°‚',\n s: 'ą°•ą±Šą°Øą±ą°Øą°æ ą°•ą±ą°·ą°£ą°¾ą°²ą±',\n ss: '%d ą°øą±†ą°•ą°Øą±ą°²ą±',\n m: 'ą°’ą°• నిమిషం',\n mm: '%d నిమిషాలు',\n h: 'ą°’ą°• ą°—ą°‚ą°Ÿ',\n hh: '%d ą°—ą°‚ą°Ÿą°²ą±',\n d: 'ą°’ą°• ą°°ą±‹ą°œą±',\n dd: '%d ą°°ą±‹ą°œą±ą°²ą±',\n M: 'ą°’ą°• నెల',\n MM: '%d నెలలు',\n y: 'ą°’ą°• ą°øą°‚ą°µą°¤ą±ą°øą°°ą°‚',\n yy: '%d ą°øą°‚ą°µą°¤ą±ą°øą°°ą°¾ą°²ą±',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}ą°µ/,\n ordinal: '%dą°µ',\n meridiemParse: /ą°°ą°¾ą°¤ą±ą°°ą°æ|ఉదయం|ą°®ą°§ą±ą°Æą°¾ą°¹ą±ą°Øą°‚|ą°øą°¾ą°Æą°‚ą°¤ą±ą°°ą°‚/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'ą°°ą°¾ą°¤ą±ą°°ą°æ') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'ఉదయం') {\n return hour;\n } else if (meridiem === 'ą°®ą°§ą±ą°Æą°¾ą°¹ą±ą°Øą°‚') {\n return hour >= 10 ? hour : hour + 12;\n } else if (meridiem === 'ą°øą°¾ą°Æą°‚ą°¤ą±ą°°ą°‚') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ą°°ą°¾ą°¤ą±ą°°ą°æ';\n } else if (hour < 10) {\n return 'ఉదయం';\n } else if (hour < 17) {\n return 'ą°®ą°§ą±ą°Æą°¾ą°¹ą±ą°Øą°‚';\n } else if (hour < 20) {\n return 'ą°øą°¾ą°Æą°‚ą°¤ą±ą°°ą°‚';\n } else {\n return 'ą°°ą°¾ą°¤ą±ą°°ą°æ';\n }\n },\n week: {\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 });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('tet', {\n months: 'Janeiru_Fevereiru_Marsu_Abril_Maiu_JuƱu_Jullu_Agustu_Setembru_Outubru_Novembru_Dezembru'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Abr_Mai_Jun_Jul_Ago_Set_Out_Nov_Dez'.split('_'),\n weekdays: 'Domingu_Segunda_Tersa_Kuarta_Kinta_Sesta_Sabadu'.split('_'),\n weekdaysShort: 'Dom_Seg_Ters_Kua_Kint_Sest_Sab'.split('_'),\n weekdaysMin: 'Do_Seg_Te_Ku_Ki_Ses_Sa'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Ohin iha] LT',\n nextDay: '[Aban iha] LT',\n nextWeek: 'dddd [iha] LT',\n lastDay: '[Horiseik iha] LT',\n lastWeek: 'dddd [semana kotuk] [iha] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'iha %s',\n past: '%s liuba',\n s: 'segundu balun',\n ss: 'segundu %d',\n m: 'minutu ida',\n mm: 'minutu %d',\n h: 'oras ida',\n hh: 'oras %d',\n d: 'loron ida',\n dd: 'loron %d',\n M: 'fulan ida',\n MM: 'fulan %d',\n y: 'tinan ida',\n yy: 'tinan %d',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(st|nd|rd|th)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$3 = {\n 0: '-ум',\n 1: '-ум',\n 2: '-ŃŽŠ¼',\n 3: '-ŃŽŠ¼',\n 4: '-ум',\n 5: '-ум',\n 6: '-ум',\n 7: '-ум',\n 8: '-ум',\n 9: '-ум',\n 10: '-ум',\n 12: '-ум',\n 13: '-ум',\n 20: '-ум',\n 30: '-ŃŽŠ¼',\n 40: '-ум',\n 50: '-ум',\n 60: '-ум',\n 70: '-ум',\n 80: '-ум',\n 90: '-ум',\n 100: '-ум',\n };\n\n hooks.defineLocale('tg', {\n months: {\n format: 'ŃŠ½Š²Š°Ń€Šø_феврали_марти_апрели_майи_ŠøŃŽŠ½Šø_ŠøŃŽŠ»Šø_Š°Š²Š³ŃƒŃŃ‚Šø_ŃŠµŠ½Ń‚ŃŠ±Ń€Šø_Š¾ŠŗŃ‚ŃŠ±Ń€Šø_Š½Š¾ŃŠ±Ń€Šø_Гекабри'.split(\n '_'\n ),\n standalone: 'ŃŠ½Š²Š°Ń€_феврал_март_апрел_май_ŠøŃŽŠ½_ŠøŃŽŠ»_Š°Š²Š³ŃƒŃŃ‚_ŃŠµŠ½Ń‚ŃŠ±Ń€_Š¾ŠŗŃ‚ŃŠ±Ń€_Š½Š¾ŃŠ±Ń€_Гекабр'.split(\n '_'\n ),\n },\n monthsShort: 'ŃŠ½Š²_фев_мар_апр_май_ŠøŃŽŠ½_ŠøŃŽŠ»_авг_сен_окт_Š½Š¾Ń_Гек'.split('_'),\n weekdays: 'ŃŠŗŃˆŠ°Š½Š±Šµ_Гушанбе_сешанбе_Ń‡Š¾Ń€ŃˆŠ°Š½Š±Šµ_панҷшанбе_ҷумъа_шанбе'.split(\n '_'\n ),\n weekdaysShort: 'ŃŃˆŠ±_Гшб_сшб_Ń‡ŃˆŠ±_пшб_ҷум_шнб'.split('_'),\n weekdaysMin: 'яш_Гш_сш_чш_пш_ҷм_шб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[Š˜Š¼Ń€ÓÆŠ· соати] LT',\n nextDay: '[ФарГо соати] LT',\n lastDay: '[Дирӯз соати] LT',\n nextWeek: 'dddd[Šø] [ҳафтаи Š¾ŃŠ½Š“а соати] LT',\n lastWeek: 'dddd[Šø] [ҳафтаи Š³ŃƒŠ·Š°ŃˆŃ‚а соати] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'баъГи %s',\n past: '%s пеш',\n s: 'ŃŠŗŃ‡Š°Š½Š“ ŃŠ¾Š½ŠøŃ',\n m: 'ŃŠŗ Гақиқа',\n mm: '%d Гақиқа',\n h: 'ŃŠŗ соат',\n hh: '%d соат',\n d: 'ŃŠŗ Ń€ÓÆŠ·',\n dd: '%d Ń€ÓÆŠ·',\n M: 'ŃŠŗ моҳ',\n MM: '%d моҳ',\n y: 'ŃŠŗ сол',\n yy: '%d сол',\n },\n meridiemParse: /шаб|субҳ|Ń€ÓÆŠ·|бегоҳ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'шаб') {\n return hour < 4 ? hour : hour + 12;\n } else if (meridiem === 'субҳ') {\n return hour;\n } else if (meridiem === 'Ń€ÓÆŠ·') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'бегоҳ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'шаб';\n } else if (hour < 11) {\n return 'субҳ';\n } else if (hour < 16) {\n return 'Ń€ÓÆŠ·';\n } else if (hour < 19) {\n return 'бегоҳ';\n } else {\n return 'шаб';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(ум|ŃŽŠ¼)/,\n ordinal: function (number) {\n var a = number % 10,\n b = number >= 100 ? 100 : null;\n return number + (suffixes$3[number] || suffixes$3[a] || suffixes$3[b]);\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('th', {\n months: 'ดกราคด_ąøąøøąø”ąø ąø²ąøžąø±ąø™ąø˜ą¹Œ_ดีนาคด_เดษายน_ąøžąø¤ąø©ąø ąø²ąø„ąø”_ดณถุนายน_ąøąø£ąøąøŽąø²ąø„ąø”_สณงหาคด_กันยายน_ตุคาคด_ąøžąø¤ąøØąøˆąø“ąøąø²ąø¢ąø™_ąø˜ąø±ąø™ąø§ąø²ąø„ąø”'.split(\n '_'\n ),\n monthsShort: 'ąø”.ąø„._ก.ąøž._ดี.ąø„._เด.ąø¢._ąøž.ąø„._ดณ.ąø¢._ก.ąø„._ąøŖ.ąø„._ก.ąø¢._ąø•.ąø„._ąøž.ąø¢._ธ.ąø„.'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'ąø­ąø²ąø—ąø“ąø•ąø¢ą¹Œ_ąøˆąø±ąø™ąø—ąø£ą¹Œ_อังคาร_ąøžąøøąø˜_ąøžąø¤ąø«ąø±ąøŖąøšąø”ąøµ_ศุกร์_ą¹€ąøŖąø²ąø£ą¹Œ'.split('_'),\n weekdaysShort: 'ąø­ąø²ąø—ąø“ąø•ąø¢ą¹Œ_ąøˆąø±ąø™ąø—ąø£ą¹Œ_อังคาร_ąøžąøøąø˜_ąøžąø¤ąø«ąø±ąøŖ_ศุกร์_ą¹€ąøŖąø²ąø£ą¹Œ'.split('_'), // yes, three characters difference\n weekdaysMin: 'ąø­ąø²._จ._ąø­._ąøž._ąøžąø¤._ąøØ._ąøŖ.'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'H:mm',\n LTS: 'H:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY เวคา H:mm',\n LLLL: 'วันddddąø—ąøµą¹ˆ D MMMM YYYY เวคา H:mm',\n },\n meridiemParse: /ąøą¹ˆąø­ąø™ą¹€ąø—ąøµą¹ˆąø¢ąø‡|ąø«ąø„ąø±ąø‡ą¹€ąø—ąøµą¹ˆąø¢ąø‡/,\n isPM: function (input) {\n return input === 'ąø«ąø„ąø±ąø‡ą¹€ąø—ąøµą¹ˆąø¢ąø‡';\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ąøą¹ˆąø­ąø™ą¹€ąø—ąøµą¹ˆąø¢ąø‡';\n } else {\n return 'ąø«ąø„ąø±ąø‡ą¹€ąø—ąøµą¹ˆąø¢ąø‡';\n }\n },\n calendar: {\n sameDay: '[วันนี้ เวคา] LT',\n nextDay: '[ąøžąø£ąøøą¹ˆąø‡ąø™ąøµą¹‰ เวคา] LT',\n nextWeek: 'dddd[หน้า เวคา] LT',\n lastDay: '[ą¹€ąø”ąø·ą¹ˆąø­ąø§ąø²ąø™ąø™ąøµą¹‰ เวคา] LT',\n lastWeek: '[วัน]dddd[ąø—ąøµą¹ˆą¹ąø„ą¹‰ąø§ เวคา] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'อีก %s',\n past: '%sąø—ąøµą¹ˆą¹ąø„ą¹‰ąø§',\n s: 'ą¹„ąø”ą¹ˆąøąøµą¹ˆąø§ąø“ąø™ąø²ąø—ąøµ',\n ss: '%d วณนาที',\n m: '1 นาที',\n mm: '%d นาที',\n h: '1 ąøŠąø±ą¹ˆąø§ą¹‚ąø”ąø‡',\n hh: '%d ąøŠąø±ą¹ˆąø§ą¹‚ąø”ąø‡',\n d: '1 วัน',\n dd: '%d วัน',\n w: '1 ąøŖąø±ąø›ąø”ąø²ąø«ą¹Œ',\n ww: '%d ąøŖąø±ąø›ąø”ąø²ąø«ą¹Œ',\n M: '1 เดือน',\n MM: '%d เดือน',\n y: '1 ปี',\n yy: '%d ปี',\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$4 = {\n 1: \"'inji\",\n 5: \"'inji\",\n 8: \"'inji\",\n 70: \"'inji\",\n 80: \"'inji\",\n 2: \"'nji\",\n 7: \"'nji\",\n 20: \"'nji\",\n 50: \"'nji\",\n 3: \"'ünji\",\n 4: \"'ünji\",\n 100: \"'ünji\",\n 6: \"'njy\",\n 9: \"'unjy\",\n 10: \"'unjy\",\n 30: \"'unjy\",\n 60: \"'ynjy\",\n 90: \"'ynjy\",\n };\n\n hooks.defineLocale('tk', {\n months: 'Ɲanwar_Fewral_Mart_Aprel_Maý_Iýun_Iýul_Awgust_Sentýabr_Oktýabr_Noýabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Ɲan_Few_Mar_Apr_Maý_Iýn_Iýl_Awg_Sen_Okt_Noý_Dek'.split('_'),\n weekdays: 'Ɲekşenbe_Duşenbe_Sişenbe_Ƈarşenbe_Penşenbe_Anna_Şenbe'.split(\n '_'\n ),\n weekdaysShort: 'Ɲek_Duş_Siş_Ƈar_Pen_Ann_Şen'.split('_'),\n weekdaysMin: 'Ɲk_Dş_Sş_Ƈr_Pn_An_Şn'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün sagat] LT',\n nextDay: '[ertir sagat] LT',\n nextWeek: '[indiki] dddd [sagat] LT',\n lastDay: '[düýn] LT',\n lastWeek: '[geƧen] dddd [sagat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s soň',\n past: '%s öň',\n s: 'birnƤƧe sekunt',\n m: 'bir minut',\n mm: '%d minut',\n h: 'bir sagat',\n hh: '%d sagat',\n d: 'bir gün',\n dd: '%d gün',\n M: 'bir aý',\n MM: '%d aý',\n y: 'bir ýyl',\n yy: '%d ýyl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'unjy\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes$4[a] || suffixes$4[b] || suffixes$4[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('tl-ph', {\n months: 'Enero_Pebrero_Marso_Abril_Mayo_Hunyo_Hulyo_Agosto_Setyembre_Oktubre_Nobyembre_Disyembre'.split(\n '_'\n ),\n monthsShort: 'Ene_Peb_Mar_Abr_May_Hun_Hul_Ago_Set_Okt_Nob_Dis'.split('_'),\n weekdays: 'Linggo_Lunes_Martes_Miyerkules_Huwebes_Biyernes_Sabado'.split(\n '_'\n ),\n weekdaysShort: 'Lin_Lun_Mar_Miy_Huw_Biy_Sab'.split('_'),\n weekdaysMin: 'Li_Lu_Ma_Mi_Hu_Bi_Sab'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'MM/D/YYYY',\n LL: 'MMMM D, YYYY',\n LLL: 'MMMM D, YYYY HH:mm',\n LLLL: 'dddd, MMMM DD, YYYY HH:mm',\n },\n calendar: {\n sameDay: 'LT [ngayong araw]',\n nextDay: '[Bukas ng] LT',\n nextWeek: 'LT [sa susunod na] dddd',\n lastDay: 'LT [kahapon]',\n lastWeek: 'LT [noong nakaraang] dddd',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'sa loob ng %s',\n past: '%s ang nakalipas',\n s: 'ilang segundo',\n ss: '%d segundo',\n m: 'isang minuto',\n mm: '%d minuto',\n h: 'isang oras',\n hh: '%d oras',\n d: 'isang araw',\n dd: '%d araw',\n M: 'isang buwan',\n MM: '%d buwan',\n y: 'isang taon',\n yy: '%d taon',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var numbersNouns = 'pagh_wa’_cha’_wej_loS_vagh_jav_Soch_chorgh_Hut'.split('_');\n\n function translateFuture(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'leS'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'waQ'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'nem'\n : time + ' pIq';\n return time;\n }\n\n function translatePast(output) {\n var time = output;\n time =\n output.indexOf('jaj') !== -1\n ? time.slice(0, -3) + 'Hu’'\n : output.indexOf('jar') !== -1\n ? time.slice(0, -3) + 'wen'\n : output.indexOf('DIS') !== -1\n ? time.slice(0, -3) + 'ben'\n : time + ' ret';\n return time;\n }\n\n function translate$a(number, withoutSuffix, string, isFuture) {\n var numberNoun = numberAsNoun(number);\n switch (string) {\n case 'ss':\n return numberNoun + ' lup';\n case 'mm':\n return numberNoun + ' tup';\n case 'hh':\n return numberNoun + ' rep';\n case 'dd':\n return numberNoun + ' jaj';\n case 'MM':\n return numberNoun + ' jar';\n case 'yy':\n return numberNoun + ' DIS';\n }\n }\n\n function numberAsNoun(number) {\n var hundred = Math.floor((number % 1000) / 100),\n ten = Math.floor((number % 100) / 10),\n one = number % 10,\n word = '';\n if (hundred > 0) {\n word += numbersNouns[hundred] + 'vatlh';\n }\n if (ten > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[ten] + 'maH';\n }\n if (one > 0) {\n word += (word !== '' ? ' ' : '') + numbersNouns[one];\n }\n return word === '' ? 'pagh' : word;\n }\n\n hooks.defineLocale('tlh', {\n months: 'tera’ jar wa’_tera’ jar cha’_tera’ jar wej_tera’ jar loS_tera’ jar vagh_tera’ jar jav_tera’ jar Soch_tera’ jar chorgh_tera’ jar Hut_tera’ jar wa’maH_tera’ jar wa’maH wa’_tera’ jar wa’maH cha’'.split(\n '_'\n ),\n monthsShort: 'jar wa’_jar cha’_jar wej_jar loS_jar vagh_jar jav_jar Soch_jar chorgh_jar Hut_jar wa’maH_jar wa’maH wa’_jar wa’maH cha’'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysShort: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n weekdaysMin: 'lojmItjaj_DaSjaj_povjaj_ghItlhjaj_loghjaj_buqjaj_ghInjaj'.split(\n '_'\n ),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[DaHjaj] LT',\n nextDay: '[wa’leS] LT',\n nextWeek: 'LLL',\n lastDay: '[wa’Hu’] LT',\n lastWeek: 'LLL',\n sameElse: 'L',\n },\n relativeTime: {\n future: translateFuture,\n past: translatePast,\n s: 'puS lup',\n ss: translate$a,\n m: 'wa’ tup',\n mm: translate$a,\n h: 'wa’ rep',\n hh: translate$a,\n d: 'wa’ jaj',\n dd: translate$a,\n M: 'wa’ jar',\n MM: translate$a,\n y: 'wa’ DIS',\n yy: translate$a,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var suffixes$5 = {\n 1: \"'inci\",\n 5: \"'inci\",\n 8: \"'inci\",\n 70: \"'inci\",\n 80: \"'inci\",\n 2: \"'nci\",\n 7: \"'nci\",\n 20: \"'nci\",\n 50: \"'nci\",\n 3: \"'üncü\",\n 4: \"'üncü\",\n 100: \"'üncü\",\n 6: \"'ncı\",\n 9: \"'uncu\",\n 10: \"'uncu\",\n 30: \"'uncu\",\n 60: \"'ıncı\",\n 90: \"'ıncı\",\n };\n\n hooks.defineLocale('tr', {\n months: 'Ocak_Şubat_Mart_Nisan_Mayıs_Haziran_Temmuz_Ağustos_Eylül_Ekim_Kasım_Aralık'.split(\n '_'\n ),\n monthsShort: 'Oca_Şub_Mar_Nis_May_Haz_Tem_Ağu_Eyl_Eki_Kas_Ara'.split('_'),\n weekdays: 'Pazar_Pazartesi_Salı_Ƈarşamba_Perşembe_Cuma_Cumartesi'.split(\n '_'\n ),\n weekdaysShort: 'Paz_Pts_Sal_Ƈar_Per_Cum_Cts'.split('_'),\n weekdaysMin: 'Pz_Pt_Sa_Ƈa_Pe_Cu_Ct'.split('_'),\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'ƶƶ' : 'ƖƖ';\n } else {\n return isLower ? 'ƶs' : 'ƖS';\n }\n },\n meridiemParse: /ƶƶ|ƖƖ|ƶs|ƖS/,\n isPM: function (input) {\n return input === 'ƶs' || input === 'ƖS';\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[bugün saat] LT',\n nextDay: '[yarın saat] LT',\n nextWeek: '[gelecek] dddd [saat] LT',\n lastDay: '[dün] LT',\n lastWeek: '[geƧen] dddd [saat] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s sonra',\n past: '%s ƶnce',\n s: 'birkaƧ saniye',\n ss: '%d saniye',\n m: 'bir dakika',\n mm: '%d dakika',\n h: 'bir saat',\n hh: '%d saat',\n d: 'bir gün',\n dd: '%d gün',\n w: 'bir hafta',\n ww: '%d hafta',\n M: 'bir ay',\n MM: '%d ay',\n y: 'bir yıl',\n yy: '%d yıl',\n },\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'Do':\n case 'DD':\n return number;\n default:\n if (number === 0) {\n // special case for zero\n return number + \"'ıncı\";\n }\n var a = number % 10,\n b = (number % 100) - a,\n c = number >= 100 ? 100 : null;\n return number + (suffixes$5[a] || suffixes$5[b] || suffixes$5[c]);\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n // After the year there should be a slash and the amount of years since December 26, 1979 in Roman numerals.\n // This is currently too difficult (maybe even impossible) to add.\n hooks.defineLocale('tzl', {\n months: 'Januar_Fevraglh_MarƧ_AvrĆÆu_Mai_Gün_Julia_Guscht_Setemvar_ListopƤts_Noemvar_Zecemvar'.split(\n '_'\n ),\n monthsShort: 'Jan_Fev_Mar_Avr_Mai_Gün_Jul_Gus_Set_Lis_Noe_Zec'.split('_'),\n weekdays: 'SĆŗladi_LĆŗneƧi_Maitzi_MĆ”rcuri_XhĆŗadi_ViĆ©nerƧi_SĆ”turi'.split('_'),\n weekdaysShort: 'SĆŗl_LĆŗn_Mai_MĆ”r_XhĆŗ_ViĆ©_SĆ”t'.split('_'),\n weekdaysMin: 'SĆŗ_LĆŗ_Ma_MĆ”_Xh_Vi_SĆ”'.split('_'),\n longDateFormat: {\n LT: 'HH.mm',\n LTS: 'HH.mm.ss',\n L: 'DD.MM.YYYY',\n LL: 'D. MMMM [dallas] YYYY',\n LLL: 'D. MMMM [dallas] YYYY HH.mm',\n LLLL: 'dddd, [li] D. MMMM [dallas] YYYY HH.mm',\n },\n meridiemParse: /d\\'o|d\\'a/i,\n isPM: function (input) {\n return \"d'o\" === input.toLowerCase();\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours > 11) {\n return isLower ? \"d'o\" : \"D'O\";\n } else {\n return isLower ? \"d'a\" : \"D'A\";\n }\n },\n calendar: {\n sameDay: '[oxhi Ć ] LT',\n nextDay: '[demĆ  Ć ] LT',\n nextWeek: 'dddd [Ć ] LT',\n lastDay: '[ieiri Ć ] LT',\n lastWeek: '[sür el] dddd [lasteu Ć ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'osprei %s',\n past: 'ja%s',\n s: processRelativeTime$8,\n ss: processRelativeTime$8,\n m: processRelativeTime$8,\n mm: processRelativeTime$8,\n h: processRelativeTime$8,\n hh: processRelativeTime$8,\n d: processRelativeTime$8,\n dd: processRelativeTime$8,\n M: processRelativeTime$8,\n MM: processRelativeTime$8,\n y: processRelativeTime$8,\n yy: processRelativeTime$8,\n },\n dayOfMonthOrdinalParse: /\\d{1,2}\\./,\n ordinal: '%d.',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n function processRelativeTime$8(number, withoutSuffix, key, isFuture) {\n var format = {\n s: ['viensas secunds', \"'iensas secunds\"],\n ss: [number + ' secunds', '' + number + ' secunds'],\n m: [\"'n mĆ­ut\", \"'iens mĆ­ut\"],\n mm: [number + ' mĆ­uts', '' + number + ' mĆ­uts'],\n h: [\"'n þora\", \"'iensa þora\"],\n hh: [number + ' þoras', '' + number + ' þoras'],\n d: [\"'n ziua\", \"'iensa ziua\"],\n dd: [number + ' ziuas', '' + number + ' ziuas'],\n M: [\"'n mes\", \"'iens mes\"],\n MM: [number + ' mesen', '' + number + ' mesen'],\n y: [\"'n ar\", \"'iens ar\"],\n yy: [number + ' ars', '' + number + ' ars'],\n };\n return isFuture\n ? format[key][0]\n : withoutSuffix\n ? format[key][0]\n : format[key][1];\n }\n\n //! moment.js locale configuration\n\n hooks.defineLocale('tzm-latn', {\n months: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ”t_Å”wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n monthsShort: 'innayr_brˤayrˤ_marˤsˤ_ibrir_mayyw_ywnyw_ywlywz_É£wÅ”t_Å”wtanbir_ktˤwbrˤ_nwwanbir_dwjnbir'.split(\n '_'\n ),\n weekdays: 'asamas_aynas_asinas_akras_akwas_asimwas_asiįøyas'.split('_'),\n weekdaysShort: 'asamas_aynas_asinas_akras_akwas_asimwas_asiįøyas'.split('_'),\n weekdaysMin: 'asamas_aynas_asinas_akras_akwas_asimwas_asiįøyas'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[asdkh g] LT',\n nextDay: '[aska g] LT',\n nextWeek: 'dddd [g] LT',\n lastDay: '[assant g] LT',\n lastWeek: 'dddd [g] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'dadkh s yan %s',\n past: 'yan %s',\n s: 'imik',\n ss: '%d imik',\n m: 'minuįø',\n mm: '%d minuįø',\n h: 'saɛa',\n hh: '%d tassaɛin',\n d: 'ass',\n dd: '%d ossan',\n M: 'ayowr',\n MM: '%d iyyirn',\n y: 'asgas',\n yy: '%d isgasn',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('tzm', {\n months: 'āµ‰āµāµā“°āµ¢āµ”_⓱ⵕ⓰ⵢⵕ_āµŽā“°āµ•āµš_ⵉ⓱ⵔⵉⵔ_āµŽā“°āµ¢āµ¢āµ“_āµ¢āµ“āµāµ¢āµ“_āµ¢āµ“āµāµ¢āµ“āµ£_āµ–āµ“āµ›āµœ_āµ›āµ“āµœā“°āµā“±āµ‰āµ”_ā“½āµŸāµ“ā“±āµ•_āµāµ“āµ”ā“°āµā“±āµ‰āµ”_ā“·āµ“āµŠāµā“±āµ‰āµ”'.split(\n '_'\n ),\n monthsShort: 'āµ‰āµāµā“°āµ¢āµ”_⓱ⵕ⓰ⵢⵕ_āµŽā“°āµ•āµš_ⵉ⓱ⵔⵉⵔ_āµŽā“°āµ¢āµ¢āµ“_āµ¢āµ“āµāµ¢āµ“_āµ¢āµ“āµāµ¢āµ“āµ£_āµ–āµ“āµ›āµœ_āµ›āµ“āµœā“°āµā“±āµ‰āµ”_ā“½āµŸāµ“ā“±āµ•_āµāµ“āµ”ā“°āµā“±āµ‰āµ”_ā“·āµ“āµŠāµā“±āµ‰āµ”'.split(\n '_'\n ),\n weekdays: 'ā“°āµ™ā“°āµŽā“°āµ™_ā“°āµ¢āµā“°āµ™_ā“°āµ™āµ‰āµā“°āµ™_⓰⓽ⵔ⓰ⵙ_⓰⓽ⵔ⓰ⵙ_ā“°āµ™āµ‰āµŽāµ”ā“°āµ™_⓰ⵙⵉ⓹ⵢ⓰ⵙ'.split('_'),\n weekdaysShort: 'ā“°āµ™ā“°āµŽā“°āµ™_ā“°āµ¢āµā“°āµ™_ā“°āµ™āµ‰āµā“°āµ™_⓰⓽ⵔ⓰ⵙ_⓰⓽ⵔ⓰ⵙ_ā“°āµ™āµ‰āµŽāµ”ā“°āµ™_⓰ⵙⵉ⓹ⵢ⓰ⵙ'.split('_'),\n weekdaysMin: 'ā“°āµ™ā“°āµŽā“°āµ™_ā“°āµ¢āµā“°āµ™_ā“°āµ™āµ‰āµā“°āµ™_⓰⓽ⵔ⓰ⵙ_⓰⓽ⵔ⓰ⵙ_ā“°āµ™āµ‰āµŽāµ”ā“°āµ™_⓰ⵙⵉ⓹ⵢ⓰ⵙ'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[⓰ⵙ⓷ⵅ ā““] LT',\n nextDay: '[⓰ⵙ⓽⓰ ā““] LT',\n nextWeek: 'dddd [ā““] LT',\n lastDay: '[ā“°āµšā“°āµāµœ ā““] LT',\n lastWeek: 'dddd [ā““] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ā“·ā“°ā“·āµ… āµ™ āµ¢ā“°āµ %s',\n past: 'āµ¢ā“°āµ %s',\n s: 'āµ‰āµŽāµ‰ā“½',\n ss: '%d āµ‰āµŽāµ‰ā“½',\n m: 'āµŽāµ‰āµāµ“ā“ŗ',\n mm: '%d āµŽāµ‰āµāµ“ā“ŗ',\n h: 'ⵙ⓰ⵄ⓰',\n hh: '%d āµœā“°āµ™āµ™ā“°āµ„āµ‰āµ',\n d: '⓰ⵙⵙ',\n dd: '%d oāµ™āµ™ā“°āµ',\n M: 'ā“°āµ¢oⵓⵔ',\n MM: '%d āµ‰āµ¢āµ¢āµ‰āµ”āµ',\n y: '⓰ⵙ⓳⓰ⵙ',\n yy: '%d āµ‰āµ™ā“³ā“°āµ™āµ',\n },\n week: {\n dow: 6, // Saturday is the first day of the week.\n doy: 12, // The week that contains Jan 12th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('ug-cn', {\n months: 'ŁŠŲ§Ł†Ū‹Ų§Ų±_فېۋرال_Ł…Ų§Ų±ŲŖ_ئاپرېل_Ł…Ų§ŁŠ_Ų¦Ł‰ŁŠŪ‡Ł†_Ų¦Ł‰ŁŠŪ‡Ł„_Ų¦Ų§Ū‹ŲŗŪ‡Ų³ŲŖ_سېنتەبىر_Ų¦Ū†ŁƒŲŖŪ•ŲØŁ‰Ų±_Ł†ŁˆŁŠŲ§ŲØŁ‰Ų±_ŲÆŪŁƒŲ§ŲØŁ‰Ų±'.split(\n '_'\n ),\n monthsShort: 'ŁŠŲ§Ł†Ū‹Ų§Ų±_فېۋرال_Ł…Ų§Ų±ŲŖ_ئاپرېل_Ł…Ų§ŁŠ_Ų¦Ł‰ŁŠŪ‡Ł†_Ų¦Ł‰ŁŠŪ‡Ł„_Ų¦Ų§Ū‹ŲŗŪ‡Ų³ŲŖ_سېنتەبىر_Ų¦Ū†ŁƒŲŖŪ•ŲØŁ‰Ų±_Ł†ŁˆŁŠŲ§ŲØŁ‰Ų±_ŲÆŪŁƒŲ§ŲØŁ‰Ų±'.split(\n '_'\n ),\n weekdays: 'ŁŠŪ•ŁƒŲ“Ū•Ł†ŲØŪ•_ŲÆŪˆŲ“Ū•Ł†ŲØŪ•_Ų³Ū•ŁŠŲ“Ū•Ł†ŲØŪ•_چارؓەنبە_Ł¾Ū•ŁŠŲ“Ū•Ł†ŲØŪ•_Ų¬ŪˆŁ…Ū•_ؓەنبە'.split(\n '_'\n ),\n weekdaysShort: 'ŁŠŪ•_دۈ_Ų³Ū•_چا_پە_جۈ_Ų“Ū•'.split('_'),\n weekdaysMin: 'ŁŠŪ•_دۈ_Ų³Ū•_چا_پە_جۈ_Ų“Ū•'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY-MM-DD',\n LL: 'YYYY-ŁŠŁ‰Ł„Ł‰M-Ų¦Ų§ŁŠŁ†Ł‰Ś­D-ŁƒŪˆŁ†Ł‰',\n LLL: 'YYYY-ŁŠŁ‰Ł„Ł‰M-Ų¦Ų§ŁŠŁ†Ł‰Ś­D-ŁƒŪˆŁ†Ł‰ŲŒ HH:mm',\n LLLL: 'dddd، YYYY-ŁŠŁ‰Ł„Ł‰M-Ų¦Ų§ŁŠŁ†Ł‰Ś­D-ŁƒŪˆŁ†Ł‰ŲŒ HH:mm',\n },\n meridiemParse: /ŁŠŪŲ±Ł‰Ł… ŁƒŪŚ†Ū•|سەھەر|Ś†ŪˆŲ“ŲŖŁ‰Ł† بۇرۇن|Ś†ŪˆŲ“|Ś†ŪˆŲ“ŲŖŁ‰Ł† ŁƒŪŁŠŁ‰Ł†|ŁƒŪ•Ś†/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (\n meridiem === 'ŁŠŪŲ±Ł‰Ł… ŁƒŪŚ†Ū•' ||\n meridiem === 'سەھەر' ||\n meridiem === 'Ś†ŪˆŲ“ŲŖŁ‰Ł† بۇرۇن'\n ) {\n return hour;\n } else if (meridiem === 'Ś†ŪˆŲ“ŲŖŁ‰Ł† ŁƒŪŁŠŁ‰Ł†' || meridiem === 'ŁƒŪ•Ś†') {\n return hour + 12;\n } else {\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'ŁŠŪŲ±Ł‰Ł… ŁƒŪŚ†Ū•';\n } else if (hm < 900) {\n return 'سەھەر';\n } else if (hm < 1130) {\n return 'Ś†ŪˆŲ“ŲŖŁ‰Ł† بۇرۇن';\n } else if (hm < 1230) {\n return 'Ś†ŪˆŲ“';\n } else if (hm < 1800) {\n return 'Ś†ŪˆŲ“ŲŖŁ‰Ł† ŁƒŪŁŠŁ‰Ł†';\n } else {\n return 'ŁƒŪ•Ś†';\n }\n },\n calendar: {\n sameDay: '[ŲØŪˆŚÆŪˆŁ† Ų³Ų§Ų¦Ū•ŲŖ] LT',\n nextDay: '[Ų¦Ū•ŲŖŪ• Ų³Ų§Ų¦Ū•ŲŖ] LT',\n nextWeek: '[ŁƒŪŁ„Ū•Ų±ŁƒŁ‰] dddd [Ų³Ų§Ų¦Ū•ŲŖ] LT',\n lastDay: '[ŲŖŪ†Ł†ŪˆŚÆŪˆŁ†] LT',\n lastWeek: '[ئالدىنقى] dddd [Ų³Ų§Ų¦Ū•ŲŖ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ŁƒŪŁŠŁ‰Ł†',\n past: '%s بۇرۇن',\n s: 'نەچچە Ų³ŪŁƒŁˆŁ†ŲŖ',\n ss: '%d Ų³ŪŁƒŁˆŁ†ŲŖ',\n m: 'بىر مىنۇت',\n mm: '%d مىنۇت',\n h: 'بىر Ų³Ų§Ų¦Ū•ŲŖ',\n hh: '%d Ų³Ų§Ų¦Ū•ŲŖ',\n d: 'بىر ŁƒŪˆŁ†',\n dd: '%d ŁƒŪˆŁ†',\n M: 'بىر ئاي',\n MM: '%d ئاي',\n y: 'بىر ŁŠŁ‰Ł„',\n yy: '%d ŁŠŁ‰Ł„',\n },\n\n dayOfMonthOrdinalParse: /\\d{1,2}(-ŁƒŪˆŁ†Ł‰|-ئاي|-ھەپتە)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + '-ŁƒŪˆŁ†Ł‰';\n case 'w':\n case 'W':\n return number + '-ھەپتە';\n default:\n return number;\n }\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n // GB/T 7408-1994ć€Šę•°ę®å…ƒå’Œäŗ¤ę¢ę ¼å¼Ā·äæ”ęÆäŗ¤ę¢Ā·ę—„ęœŸå’Œę—¶é—“č”Øē¤ŗę³•ć€‹äøŽISO 8601:1988ē­‰ę•ˆ\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 1st is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n function plural$6(word, num) {\n var forms = word.split('_');\n return num % 10 === 1 && num % 100 !== 11\n ? forms[0]\n : num % 10 >= 2 && num % 10 <= 4 && (num % 100 < 10 || num % 100 >= 20)\n ? forms[1]\n : forms[2];\n }\n function relativeTimeWithPlural$4(number, withoutSuffix, key) {\n var format = {\n ss: withoutSuffix ? 'секунГа_секунГи_секунГ' : 'секунГу_секунГи_секунГ',\n mm: withoutSuffix ? 'хвилина_хвилини_хвилин' : 'Ń…Š²ŠøŠ»ŠøŠ½Ńƒ_хвилини_хвилин',\n hh: withoutSuffix ? 'гоГина_гоГини_гоГин' : 'гоГину_гоГини_гоГин',\n dd: 'Гень_Гні_Гнів',\n MM: 'Š¼Ń–ŃŃŃ†ŃŒ_Š¼Ń–ŃŃŃ†Ń–_Š¼Ń–ŃŃŃ†Ń–Š²',\n yy: 'рік_роки_років',\n };\n if (key === 'm') {\n return withoutSuffix ? 'хвилина' : 'Ń…Š²ŠøŠ»ŠøŠ½Ńƒ';\n } else if (key === 'h') {\n return withoutSuffix ? 'гоГина' : 'гоГину';\n } else {\n return number + ' ' + plural$6(format[key], +number);\n }\n }\n function weekdaysCaseReplace(m, format) {\n var weekdays = {\n nominative: 'Š½ŠµŠ“Ń–Š»Ń_понеГілок_вівторок_сереГа_четвер_Šæā€™ŃŃ‚Š½ŠøŃ†Ń_ŃŃƒŠ±Š¾Ń‚Š°'.split(\n '_'\n ),\n accusative: 'Š½ŠµŠ“Ń–Š»ŃŽ_понеГілок_вівторок_ŃŠµŃ€ŠµŠ“Ńƒ_четвер_Šæā€™ŃŃ‚Š½ŠøŃ†ŃŽ_ŃŃƒŠ±Š¾Ń‚Ńƒ'.split(\n '_'\n ),\n genitive: 'неГілі_понеГілка_вівторка_сереГи_четверга_Šæā€™ŃŃ‚Š½ŠøŃ†Ń–_ŃŃƒŠ±Š¾Ń‚Šø'.split(\n '_'\n ),\n },\n nounCase;\n\n if (m === true) {\n return weekdays['nominative']\n .slice(1, 7)\n .concat(weekdays['nominative'].slice(0, 1));\n }\n if (!m) {\n return weekdays['nominative'];\n }\n\n nounCase = /(\\[[Š’Š²Š£Ńƒ]\\]) ?dddd/.test(format)\n ? 'accusative'\n : /\\[?(?:Š¼ŠøŠ½ŃƒŠ»Š¾Ń—|Š½Š°ŃŃ‚ŃƒŠæŠ½Š¾Ń—)? ?\\] ?dddd/.test(format)\n ? 'genitive'\n : 'nominative';\n return weekdays[nounCase][m.day()];\n }\n function processHoursFunction(str) {\n return function () {\n return str + 'о' + (this.hours() === 11 ? 'б' : '') + '] LT';\n };\n }\n\n hooks.defineLocale('uk', {\n months: {\n format: 'ŃŃ–Ń‡Š½Ń_Š»ŃŽŃ‚Š¾Š³Š¾_Š±ŠµŃ€ŠµŠ·Š½Ń_ŠŗŠ²Ń–Ń‚Š½Ń_Ń‚Ń€Š°Š²Š½Ń_Ń‡ŠµŃ€Š²Š½Ń_Š»ŠøŠæŠ½Ń_ŃŠµŃ€ŠæŠ½Ń_Š²ŠµŃ€ŠµŃŠ½Ń_Š¶Š¾Š²Ń‚Š½Ń_листопаГа_Š³Ń€ŃƒŠ“Š½Ń'.split(\n '_'\n ),\n standalone: 'ŃŃ–Ń‡ŠµŠ½ŃŒ_Š»ŃŽŃ‚ŠøŠ¹_Š±ŠµŃ€ŠµŠ·ŠµŠ½ŃŒ_ŠŗŠ²Ń–Ń‚ŠµŠ½ŃŒ_Ń‚Ń€Š°Š²ŠµŠ½ŃŒ_Ń‡ŠµŃ€Š²ŠµŠ½ŃŒ_липень_ŃŠµŃ€ŠæŠµŠ½ŃŒ_Š²ŠµŃ€ŠµŃŠµŠ½ŃŒ_Š¶Š¾Š²Ń‚ŠµŠ½ŃŒ_листопаГ_Š³Ń€ŃƒŠ“ŠµŠ½ŃŒ'.split(\n '_'\n ),\n },\n monthsShort: 'січ_Š»ŃŽŃ‚_бер_квіт_трав_черв_лип_серп_вер_жовт_лист_Š³Ń€ŃƒŠ“'.split(\n '_'\n ),\n weekdays: weekdaysCaseReplace,\n weekdaysShort: 'нГ_пн_вт_ср_чт_пт_сб'.split('_'),\n weekdaysMin: 'нГ_пн_вт_ср_чт_пт_сб'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD.MM.YYYY',\n LL: 'D MMMM YYYY р.',\n LLL: 'D MMMM YYYY р., HH:mm',\n LLLL: 'dddd, D MMMM YYYY р., HH:mm',\n },\n calendar: {\n sameDay: processHoursFunction('[Š”ŃŒŠ¾Š³Š¾Š“Š½Ń– '),\n nextDay: processHoursFunction('[Завтра '),\n lastDay: processHoursFunction('[Вчора '),\n nextWeek: processHoursFunction('[Š£] dddd ['),\n lastWeek: function () {\n switch (this.day()) {\n case 0:\n case 3:\n case 5:\n case 6:\n return processHoursFunction('[ŠœŠøŠ½ŃƒŠ»Š¾Ń—] dddd [').call(this);\n case 1:\n case 2:\n case 4:\n return processHoursFunction('[Минулого] dddd [').call(this);\n }\n },\n sameElse: 'L',\n },\n relativeTime: {\n future: 'за %s',\n past: '%s Ń‚Š¾Š¼Ńƒ',\n s: 'Š“ŠµŠŗŃ–Š»ŃŒŠŗŠ° секунГ',\n ss: relativeTimeWithPlural$4,\n m: relativeTimeWithPlural$4,\n mm: relativeTimeWithPlural$4,\n h: 'гоГину',\n hh: relativeTimeWithPlural$4,\n d: 'Гень',\n dd: relativeTimeWithPlural$4,\n M: 'Š¼Ń–ŃŃŃ†ŃŒ',\n MM: relativeTimeWithPlural$4,\n y: 'рік',\n yy: relativeTimeWithPlural$4,\n },\n // M. E.: those two are virtually unused but a user might want to implement them for his/her website for some reason\n meridiemParse: /ночі|Ń€Š°Š½ŠŗŃƒ|Š“Š½Ń|вечора/,\n isPM: function (input) {\n return /^(Š“Š½Ń|вечора)$/.test(input);\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 4) {\n return 'ночі';\n } else if (hour < 12) {\n return 'Ń€Š°Š½ŠŗŃƒ';\n } else if (hour < 17) {\n return 'Š“Š½Ń';\n } else {\n return 'вечора';\n }\n },\n dayOfMonthOrdinalParse: /\\d{1,2}-(й|го)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'M':\n case 'd':\n case 'DDD':\n case 'w':\n case 'W':\n return number + '-й';\n case 'D':\n return number + '-го';\n default:\n return number;\n }\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n var months$b = [\n 'Ų¬Ł†ŁˆŲ±ŪŒ',\n 'فروری',\n 'مارچ',\n 'Ų§Ł¾Ų±ŪŒŁ„',\n 'Ł…Ų¦ŪŒ',\n 'Ų¬ŁˆŁ†',\n 'Ų¬ŁˆŁ„Ų§Ų¦ŪŒ',\n 'Ų§ŚÆŲ³ŲŖ',\n 'Ų³ŲŖŁ…ŲØŲ±',\n 'اکتوبر',\n 'Ł†ŁˆŁ…ŲØŲ±',\n 'دسمبر',\n ],\n days$2 = ['اتوار', 'پیر', 'منگل', 'بدھ', 'جمعرات', 'جمعہ', 'ہفتہ'];\n\n hooks.defineLocale('ur', {\n months: months$b,\n monthsShort: months$b,\n weekdays: days$2,\n weekdaysShort: days$2,\n weekdaysMin: days$2,\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd، D MMMM YYYY HH:mm',\n },\n meridiemParse: /ŲµŲØŲ­|Ų“Ų§Ł…/,\n isPM: function (input) {\n return 'Ų“Ų§Ł…' === input;\n },\n meridiem: function (hour, minute, isLower) {\n if (hour < 12) {\n return 'ŲµŲØŲ­';\n }\n return 'Ų“Ų§Ł…';\n },\n calendar: {\n sameDay: '[Ų¢Ų¬ ŲØŁˆŁ‚ŲŖ] LT',\n nextDay: '[کل ŲØŁˆŁ‚ŲŖ] LT',\n nextWeek: 'dddd [ŲØŁˆŁ‚ŲŖ] LT',\n lastDay: '[گذؓتہ روز ŲØŁˆŁ‚ŲŖ] LT',\n lastWeek: '[گذؓتہ] dddd [ŲØŁˆŁ‚ŲŖ] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s ŲØŲ¹ŲÆ',\n past: '%s قبل',\n s: 'چند Ų³ŪŒŚ©Ł†Śˆ',\n ss: '%d Ų³ŪŒŚ©Ł†Śˆ',\n m: 'ایک منٹ',\n mm: '%d منٹ',\n h: 'ایک گھنٹہ',\n hh: '%d گھنٹے',\n d: 'ایک دن',\n dd: '%d دن',\n M: 'ایک ماہ',\n MM: '%d ماہ',\n y: 'ایک Ų³Ų§Ł„',\n yy: '%d Ų³Ų§Ł„',\n },\n preparse: function (string) {\n return string.replace(/،/g, ',');\n },\n postformat: function (string) {\n return string.replace(/,/g, '،');\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('uz-latn', {\n months: 'Yanvar_Fevral_Mart_Aprel_May_Iyun_Iyul_Avgust_Sentabr_Oktabr_Noyabr_Dekabr'.split(\n '_'\n ),\n monthsShort: 'Yan_Fev_Mar_Apr_May_Iyun_Iyul_Avg_Sen_Okt_Noy_Dek'.split('_'),\n weekdays: 'Yakshanba_Dushanba_Seshanba_Chorshanba_Payshanba_Juma_Shanba'.split(\n '_'\n ),\n weekdaysShort: 'Yak_Dush_Sesh_Chor_Pay_Jum_Shan'.split('_'),\n weekdaysMin: 'Ya_Du_Se_Cho_Pa_Ju_Sha'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Bugun soat] LT [da]',\n nextDay: '[Ertaga] LT [da]',\n nextWeek: 'dddd [kuni soat] LT [da]',\n lastDay: '[Kecha soat] LT [da]',\n lastWeek: \"[O'tgan] dddd [kuni soat] LT [da]\",\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Yaqin %s ichida',\n past: 'Bir necha %s oldin',\n s: 'soniya',\n ss: '%d soniya',\n m: 'bir daqiqa',\n mm: '%d daqiqa',\n h: 'bir soat',\n hh: '%d soat',\n d: 'bir kun',\n dd: '%d kun',\n M: 'bir oy',\n MM: '%d oy',\n y: 'bir yil',\n yy: '%d yil',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 7th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('uz', {\n months: 'ŃŠ½Š²Š°Ń€_феврал_март_апрел_май_ŠøŃŽŠ½_ŠøŃŽŠ»_Š°Š²Š³ŃƒŃŃ‚_ŃŠµŠ½Ń‚ŃŠ±Ń€_Š¾ŠŗŃ‚ŃŠ±Ń€_Š½Š¾ŃŠ±Ń€_Гекабр'.split(\n '_'\n ),\n monthsShort: 'ŃŠ½Š²_фев_мар_апр_май_ŠøŃŽŠ½_ŠøŃŽŠ»_авг_сен_окт_Š½Š¾Ń_Гек'.split('_'),\n weekdays: 'Якшанба_Š”ŃƒŃˆŠ°Š½Š±Š°_Дешанба_Š§Š¾Ń€ŃˆŠ°Š½Š±Š°_Пайшанба_Š–ŃƒŠ¼Š°_Шанба'.split('_'),\n weekdaysShort: 'Якш_Š”ŃƒŃˆ_Деш_Чор_Пай_Š–ŃƒŠ¼_Шан'.split('_'),\n weekdaysMin: 'ŠÆŠŗ_Š”Ńƒ_Де_Чо_Па_Š–Ńƒ_Ша'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'D MMMM YYYY, dddd HH:mm',\n },\n calendar: {\n sameDay: '[Š‘ŃƒŠ³ŃƒŠ½ соат] LT [Га]',\n nextDay: '[Эртага] LT [Га]',\n nextWeek: 'dddd [куни соат] LT [Га]',\n lastDay: '[ŠšŠµŃ‡Š° соат] LT [Га]',\n lastWeek: '[Утган] dddd [куни соат] LT [Га]',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Якин %s ичиГа',\n past: 'Бир неча %s олГин',\n s: 'Ń„ŃƒŃ€ŃŠ°Ń‚',\n ss: '%d Ń„ŃƒŃ€ŃŠ°Ń‚',\n m: 'бир Гакика',\n mm: '%d Гакика',\n h: 'бир соат',\n hh: '%d соат',\n d: 'бир кун',\n dd: '%d кун',\n M: 'бир ой',\n MM: '%d ой',\n y: 'бир йил',\n yy: '%d йил',\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 7, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('vi', {\n months: 'thĆ”ng 1_thĆ”ng 2_thĆ”ng 3_thĆ”ng 4_thĆ”ng 5_thĆ”ng 6_thĆ”ng 7_thĆ”ng 8_thĆ”ng 9_thĆ”ng 10_thĆ”ng 11_thĆ”ng 12'.split(\n '_'\n ),\n monthsShort: 'Thg 01_Thg 02_Thg 03_Thg 04_Thg 05_Thg 06_Thg 07_Thg 08_Thg 09_Thg 10_Thg 11_Thg 12'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'chį»§ nhįŗ­t_thứ hai_thứ ba_thứ tʰ_thứ năm_thứ sĆ”u_thứ bįŗ£y'.split(\n '_'\n ),\n weekdaysShort: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysMin: 'CN_T2_T3_T4_T5_T6_T7'.split('_'),\n weekdaysParseExact: true,\n meridiemParse: /sa|ch/i,\n isPM: function (input) {\n return /^ch$/i.test(input);\n },\n meridiem: function (hours, minutes, isLower) {\n if (hours < 12) {\n return isLower ? 'sa' : 'SA';\n } else {\n return isLower ? 'ch' : 'CH';\n }\n },\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM [năm] YYYY',\n LLL: 'D MMMM [năm] YYYY HH:mm',\n LLLL: 'dddd, D MMMM [năm] YYYY HH:mm',\n l: 'DD/M/YYYY',\n ll: 'D MMM YYYY',\n lll: 'D MMM YYYY HH:mm',\n llll: 'ddd, D MMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[HĆ“m nay lĆŗc] LT',\n nextDay: '[NgĆ y mai lĆŗc] LT',\n nextWeek: 'dddd [tuįŗ§n tį»›i lĆŗc] LT',\n lastDay: '[HĆ“m qua lĆŗc] LT',\n lastWeek: 'dddd [tuįŗ§n trước lĆŗc] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: '%s tį»›i',\n past: '%s trước',\n s: 'vĆ i giĆ¢y',\n ss: '%d giĆ¢y',\n m: 'mį»™t phĆŗt',\n mm: '%d phĆŗt',\n h: 'mį»™t giį»',\n hh: '%d giį»',\n d: 'mį»™t ngĆ y',\n dd: '%d ngĆ y',\n w: 'mį»™t tuįŗ§n',\n ww: '%d tuįŗ§n',\n M: 'mį»™t thĆ”ng',\n MM: '%d thĆ”ng',\n y: 'mį»™t năm',\n yy: '%d năm',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}/,\n ordinal: function (number) {\n return number;\n },\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('x-pseudo', {\n months: 'J~ÔñúÔ~rý_F~Ć©brĆŗ~Ć”rý_~MĆ”rc~h_Ɓp~rĆ­l_~MÔý_~Júñé~_JĆŗl~ý_Áú~gĆŗst~_SĆ©p~tĆ©mb~Ć©r_Ɠ~ctób~Ć©r_Ƒ~óvĆ©m~bĆ©r_~DĆ©cĆ©~mbĆ©r'.split(\n '_'\n ),\n monthsShort: 'J~ƔƱ_~FĆ©b_~MĆ”r_~Ɓpr_~MÔý_~Júñ_~JĆŗl_~Áúg_~SĆ©p_~Ɠct_~Ñóv_~DĆ©c'.split(\n '_'\n ),\n monthsParseExact: true,\n weekdays: 'S~úñdĆ”~ý_Mó~ƱdÔý~_TĆŗĆ©~sdÔý~_WĆ©d~ƱƩsd~Ôý_T~hĆŗrs~dÔý_~FrĆ­d~Ôý_S~Ć”tĆŗr~dÔý'.split(\n '_'\n ),\n weekdaysShort: 'S~úñ_~Móñ_~TĆŗĆ©_~WĆ©d_~ThĆŗ_~FrĆ­_~SĆ”t'.split('_'),\n weekdaysMin: 'S~Ćŗ_Mó~_TĆŗ_~WĆ©_T~h_Fr~_SĆ”'.split('_'),\n weekdaysParseExact: true,\n longDateFormat: {\n LT: 'HH:mm',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY HH:mm',\n LLLL: 'dddd, D MMMM YYYY HH:mm',\n },\n calendar: {\n sameDay: '[T~ódĆ”~ý Ć”t] LT',\n nextDay: '[T~ómó~rró~w Ć”t] LT',\n nextWeek: 'dddd [Ć”t] LT',\n lastDay: '[Ɲ~Ć©st~Ć©rdĆ”~ý Ć”t] LT',\n lastWeek: '[L~Ć”st] dddd [Ć”t] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'Ć­~Ʊ %s',\n past: '%s Ć”~gó',\n s: 'Ć” ~fĆ©w ~sĆ©có~Ʊds',\n ss: '%d s~Ć©cóñ~ds',\n m: 'Ć” ~mƭƱ~ĆŗtĆ©',\n mm: '%d m~íñú~tĆ©s',\n h: 'Ć”~Ʊ hó~Ćŗr',\n hh: '%d h~óúrs',\n d: 'Ć” ~dÔý',\n dd: '%d d~Ôýs',\n M: 'Ć” ~móñ~th',\n MM: '%d m~óñt~hs',\n y: 'Ć” ~ýéÔr',\n yy: '%d ý~ƩƔrs',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(th|st|nd|rd)/,\n ordinal: function (number) {\n var b = number % 10,\n output =\n ~~((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 week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('yo', {\n months: 'Sẹ́rẹ́_EĢ€reĢ€leĢ€_įŗørẹ̀naĢ€_IĢ€gbé_EĢ€bibi_OĢ€kuĢ€du_Agįŗ¹mo_OĢ€gún_Owewe_į»ŒĢ€waĢ€raĢ€_Bélú_į»ŒĢ€pẹ̀̀'.split(\n '_'\n ),\n monthsShort: 'Sẹ́r_EĢ€rl_įŗørn_IĢ€gb_EĢ€bi_OĢ€kuĢ€_Agįŗ¹_OĢ€gú_Owe_į»ŒĢ€waĢ€_Bél_į»ŒĢ€pẹ̀̀'.split('_'),\n weekdays: 'AĢ€iĢ€kú_Ajé_IĢ€sẹ́gun_Ọjį»Ģrú_Ọjį»Ģbį»_įŗøtiĢ€_AĢ€bámẹ́ta'.split('_'),\n weekdaysShort: 'AĢ€iĢ€k_Ajé_IĢ€sẹ́_Ọjr_Ọjb_įŗøtiĢ€_AĢ€bá'.split('_'),\n weekdaysMin: 'AĢ€iĢ€_Aj_IĢ€s_Ọr_Ọb_įŗøt_AĢ€b'.split('_'),\n longDateFormat: {\n LT: 'h:mm A',\n LTS: 'h:mm:ss A',\n L: 'DD/MM/YYYY',\n LL: 'D MMMM YYYY',\n LLL: 'D MMMM YYYY h:mm A',\n LLLL: 'dddd, D MMMM YYYY h:mm A',\n },\n calendar: {\n sameDay: '[OĢ€niĢ€ ni] LT',\n nextDay: '[į»ŒĢ€la ni] LT',\n nextWeek: \"dddd [Ọsẹ̀ tón'bį»] [ni] LT\",\n lastDay: '[AĢ€na ni] LT',\n lastWeek: 'dddd [Ọsẹ̀ tólį»Ģ] [ni] LT',\n sameElse: 'L',\n },\n relativeTime: {\n future: 'ní %s',\n past: '%s kį»já',\n s: 'iĢ€sįŗ¹jú aayá die',\n ss: 'aayá %d',\n m: 'iĢ€sįŗ¹jú kan',\n mm: 'iĢ€sįŗ¹jú %d',\n h: 'wákati kan',\n hh: 'wákati %d',\n d: 'į»jį»Ģ kan',\n dd: 'į»jį»Ģ %d',\n M: 'osuĢ€ kan',\n MM: 'osuĢ€ %d',\n y: 'į»dún kan',\n yy: 'į»dún %d',\n },\n dayOfMonthOrdinalParse: /į»jį»Ģ\\s\\d{1,2}/,\n ordinal: 'į»jį»Ģ %d',\n week: {\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('zh-cn', {\n months: 'äø€ęœˆ_二月_äø‰ęœˆ_å››ęœˆ_äŗ”ęœˆ_å…­ęœˆ_七月_å…«ęœˆ_ä¹ęœˆ_åęœˆ_åäø€ęœˆ_åäŗŒęœˆ'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: 'ę˜ŸęœŸę—„_ę˜ŸęœŸäø€_星期二_ę˜ŸęœŸäø‰_ę˜ŸęœŸå››_ę˜ŸęœŸäŗ”_ę˜ŸęœŸå…­'.split('_'),\n weekdaysShort: '周旄_周一_å‘ØäŗŒ_周三_周四_周五_周六'.split('_'),\n weekdaysMin: 'ę—„_äø€_二_äø‰_四_äŗ”_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY幓M月Dę—„',\n LLL: 'YYYY幓M月Dę—„Ah点mm分',\n LLLL: 'YYYY幓M月Dę—„ddddAh点mm分',\n l: 'YYYY/M/D',\n ll: 'YYYY幓M月Dę—„',\n lll: 'YYYY幓M月Dę—„ HH:mm',\n llll: 'YYYY幓M月Dę—„dddd HH:mm',\n },\n meridiemParse: /å‡Œę™Ø|ę—©äøŠ|äøŠåˆ|äø­åˆ|äø‹åˆ|ę™šäøŠ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'å‡Œę™Ø' || meridiem === 'ę—©äøŠ' || meridiem === 'äøŠåˆ') {\n return hour;\n } else if (meridiem === 'äø‹åˆ' || meridiem === 'ę™šäøŠ') {\n return hour + 12;\n } else {\n // 'äø­åˆ'\n return hour >= 11 ? hour : hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'å‡Œę™Ø';\n } else if (hm < 900) {\n return 'ę—©äøŠ';\n } else if (hm < 1130) {\n return 'äøŠåˆ';\n } else if (hm < 1230) {\n return 'äø­åˆ';\n } else if (hm < 1800) {\n return 'äø‹åˆ';\n } else {\n return 'ę™šäøŠ';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[ę˜Žå¤©]LT',\n nextWeek: function (now) {\n if (now.week() !== this.week()) {\n return '[äø‹]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n lastDay: '[昨天]LT',\n lastWeek: function (now) {\n if (this.week() !== now.week()) {\n return '[上]dddLT';\n } else {\n return '[本]dddLT';\n }\n },\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ę—„|月|周)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ę—„';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '周';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s后',\n past: '%s前',\n s: '几秒',\n ss: '%d ē§’',\n m: '1 分钟',\n mm: '%d 分钟',\n h: '1 å°ę—¶',\n hh: '%d å°ę—¶',\n d: '1 天',\n dd: '%d 天',\n w: '1 周',\n ww: '%d 周',\n M: '1 个月',\n MM: '%d 个月',\n y: '1 幓',\n yy: '%d 幓',\n },\n week: {\n // GB/T 7408-1994ć€Šę•°ę®å…ƒå’Œäŗ¤ę¢ę ¼å¼Ā·äæ”ęÆäŗ¤ę¢Ā·ę—„ęœŸå’Œę—¶é—“č”Øē¤ŗę³•ć€‹äøŽISO 8601:1988ē­‰ę•ˆ\n dow: 1, // Monday is the first day of the week.\n doy: 4, // The week that contains Jan 4th is the first week of the year.\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('zh-hk', {\n months: 'äø€ęœˆ_二月_äø‰ęœˆ_å››ęœˆ_äŗ”ęœˆ_å…­ęœˆ_七月_å…«ęœˆ_ä¹ęœˆ_åęœˆ_åäø€ęœˆ_åäŗŒęœˆ'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: 'ę˜ŸęœŸę—„_ę˜ŸęœŸäø€_星期二_ę˜ŸęœŸäø‰_ę˜ŸęœŸå››_ę˜ŸęœŸäŗ”_ę˜ŸęœŸå…­'.split('_'),\n weekdaysShort: '週ꗄ_週一_é€±äŗŒ_週三_週四_週五_週六'.split('_'),\n weekdaysMin: 'ę—„_äø€_二_äø‰_四_äŗ”_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY幓M月Dę—„',\n LLL: 'YYYY幓M月Dę—„ HH:mm',\n LLLL: 'YYYY幓M月Dę—„dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY幓M月Dę—„',\n lll: 'YYYY幓M月Dę—„ HH:mm',\n llll: 'YYYY幓M月Dę—„dddd HH:mm',\n },\n meridiemParse: /å‡Œę™Ø|ę—©äøŠ|äøŠåˆ|äø­åˆ|äø‹åˆ|ę™šäøŠ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'å‡Œę™Ø' || meridiem === 'ę—©äøŠ' || meridiem === 'äøŠåˆ') {\n return hour;\n } else if (meridiem === 'äø­åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'äø‹åˆ' || meridiem === 'ę™šäøŠ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'å‡Œę™Ø';\n } else if (hm < 900) {\n return 'ę—©äøŠ';\n } else if (hm < 1200) {\n return 'äøŠåˆ';\n } else if (hm === 1200) {\n return 'äø­åˆ';\n } else if (hm < 1800) {\n return 'äø‹åˆ';\n } else {\n return 'ę™šäøŠ';\n }\n },\n calendar: {\n sameDay: '[今天]LT',\n nextDay: '[ę˜Žå¤©]LT',\n nextWeek: '[äø‹]ddddLT',\n lastDay: '[昨天]LT',\n lastWeek: '[上]ddddLT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ę—„|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ę—„';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d ē§’',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 å°ę™‚',\n hh: '%d å°ę™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 å€‹ęœˆ',\n MM: '%d å€‹ęœˆ',\n y: '1 幓',\n yy: '%d 幓',\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('zh-mo', {\n months: 'äø€ęœˆ_二月_äø‰ęœˆ_å››ęœˆ_äŗ”ęœˆ_å…­ęœˆ_七月_å…«ęœˆ_ä¹ęœˆ_åęœˆ_åäø€ęœˆ_åäŗŒęœˆ'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: 'ę˜ŸęœŸę—„_ę˜ŸęœŸäø€_星期二_ę˜ŸęœŸäø‰_ę˜ŸęœŸå››_ę˜ŸęœŸäŗ”_ę˜ŸęœŸå…­'.split('_'),\n weekdaysShort: '週ꗄ_週一_é€±äŗŒ_週三_週四_週五_週六'.split('_'),\n weekdaysMin: 'ę—„_äø€_二_äø‰_四_äŗ”_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'DD/MM/YYYY',\n LL: 'YYYY幓M月Dę—„',\n LLL: 'YYYY幓M月Dę—„ HH:mm',\n LLLL: 'YYYY幓M月Dę—„dddd HH:mm',\n l: 'D/M/YYYY',\n ll: 'YYYY幓M月Dę—„',\n lll: 'YYYY幓M月Dę—„ HH:mm',\n llll: 'YYYY幓M月Dę—„dddd HH:mm',\n },\n meridiemParse: /å‡Œę™Ø|ę—©äøŠ|äøŠåˆ|äø­åˆ|äø‹åˆ|ę™šäøŠ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'å‡Œę™Ø' || meridiem === 'ę—©äøŠ' || meridiem === 'äøŠåˆ') {\n return hour;\n } else if (meridiem === 'äø­åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'äø‹åˆ' || meridiem === 'ę™šäøŠ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'å‡Œę™Ø';\n } else if (hm < 900) {\n return 'ę—©äøŠ';\n } else if (hm < 1130) {\n return 'äøŠåˆ';\n } else if (hm < 1230) {\n return 'äø­åˆ';\n } else if (hm < 1800) {\n return 'äø‹åˆ';\n } else {\n return 'ę™šäøŠ';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[ę˜Žå¤©] LT',\n nextWeek: '[äø‹]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ę—„|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ę—„';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s內',\n past: '%s前',\n s: '幾秒',\n ss: '%d ē§’',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 å°ę™‚',\n hh: '%d å°ę™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 å€‹ęœˆ',\n MM: '%d å€‹ęœˆ',\n y: '1 幓',\n yy: '%d 幓',\n },\n });\n\n //! moment.js locale configuration\n\n hooks.defineLocale('zh-tw', {\n months: 'äø€ęœˆ_二月_äø‰ęœˆ_å››ęœˆ_äŗ”ęœˆ_å…­ęœˆ_七月_å…«ęœˆ_ä¹ęœˆ_åęœˆ_åäø€ęœˆ_åäŗŒęœˆ'.split(\n '_'\n ),\n monthsShort: '1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月'.split(\n '_'\n ),\n weekdays: 'ę˜ŸęœŸę—„_ę˜ŸęœŸäø€_星期二_ę˜ŸęœŸäø‰_ę˜ŸęœŸå››_ę˜ŸęœŸäŗ”_ę˜ŸęœŸå…­'.split('_'),\n weekdaysShort: '週ꗄ_週一_é€±äŗŒ_週三_週四_週五_週六'.split('_'),\n weekdaysMin: 'ę—„_äø€_二_äø‰_四_äŗ”_六'.split('_'),\n longDateFormat: {\n LT: 'HH:mm',\n LTS: 'HH:mm:ss',\n L: 'YYYY/MM/DD',\n LL: 'YYYY幓M月Dę—„',\n LLL: 'YYYY幓M月Dę—„ HH:mm',\n LLLL: 'YYYY幓M月Dę—„dddd HH:mm',\n l: 'YYYY/M/D',\n ll: 'YYYY幓M月Dę—„',\n lll: 'YYYY幓M月Dę—„ HH:mm',\n llll: 'YYYY幓M月Dę—„dddd HH:mm',\n },\n meridiemParse: /å‡Œę™Ø|ę—©äøŠ|äøŠåˆ|äø­åˆ|äø‹åˆ|ę™šäøŠ/,\n meridiemHour: function (hour, meridiem) {\n if (hour === 12) {\n hour = 0;\n }\n if (meridiem === 'å‡Œę™Ø' || meridiem === 'ę—©äøŠ' || meridiem === 'äøŠåˆ') {\n return hour;\n } else if (meridiem === 'äø­åˆ') {\n return hour >= 11 ? hour : hour + 12;\n } else if (meridiem === 'äø‹åˆ' || meridiem === 'ę™šäøŠ') {\n return hour + 12;\n }\n },\n meridiem: function (hour, minute, isLower) {\n var hm = hour * 100 + minute;\n if (hm < 600) {\n return 'å‡Œę™Ø';\n } else if (hm < 900) {\n return 'ę—©äøŠ';\n } else if (hm < 1130) {\n return 'äøŠåˆ';\n } else if (hm < 1230) {\n return 'äø­åˆ';\n } else if (hm < 1800) {\n return 'äø‹åˆ';\n } else {\n return 'ę™šäøŠ';\n }\n },\n calendar: {\n sameDay: '[今天] LT',\n nextDay: '[ę˜Žå¤©] LT',\n nextWeek: '[äø‹]dddd LT',\n lastDay: '[昨天] LT',\n lastWeek: '[上]dddd LT',\n sameElse: 'L',\n },\n dayOfMonthOrdinalParse: /\\d{1,2}(ę—„|月|週)/,\n ordinal: function (number, period) {\n switch (period) {\n case 'd':\n case 'D':\n case 'DDD':\n return number + 'ę—„';\n case 'M':\n return number + '月';\n case 'w':\n case 'W':\n return number + '週';\n default:\n return number;\n }\n },\n relativeTime: {\n future: '%s後',\n past: '%s前',\n s: '幾秒',\n ss: '%d ē§’',\n m: '1 分鐘',\n mm: '%d 分鐘',\n h: '1 å°ę™‚',\n hh: '%d å°ę™‚',\n d: '1 天',\n dd: '%d 天',\n M: '1 å€‹ęœˆ',\n MM: '%d å€‹ęœˆ',\n y: '1 幓',\n yy: '%d 幓',\n },\n });\n\n hooks.locale('en');\n\n return hooks;\n\n})));\n","/*global define:false */\n/**\n * Copyright 2012-2017 Craig Campbell\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 * Mousetrap is a simple keyboard shortcut library for Javascript with\n * no external dependencies\n *\n * @version 1.6.5\n * @url craig.is/killing/mice\n */\n(function(window, document, undefined) {\n\n // Check if mousetrap is used inside browser, if not, return\n if (!window) {\n return;\n }\n\n /**\n * mapping of special keycodes to their corresponding keys\n *\n * everything in this dictionary cannot use keypress events\n * so it has to be here to map to the correct keycodes for\n * keyup/keydown events\n *\n * @type {Object}\n */\n var _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\n /**\n * mapping for special characters so they can support\n *\n * this dictionary is only used incase you want to bind a\n * keyup or keydown event to one of these keys\n *\n * @type {Object}\n */\n var _KEYCODE_MAP = {\n 106: '*',\n 107: '+',\n 109: '-',\n 110: '.',\n 111 : '/',\n 186: ';',\n 187: '=',\n 188: ',',\n 189: '-',\n 190: '.',\n 191: '/',\n 192: '`',\n 219: '[',\n 220: '\\\\',\n 221: ']',\n 222: '\\''\n };\n\n /**\n * this is a mapping of keys that require shift on a US keypad\n * back to the non shift equivelents\n *\n * this is so you can use keyup events with these keys\n *\n * note that this will only work reliably on US keyboards\n *\n * @type {Object}\n */\n var _SHIFT_MAP = {\n '~': '`',\n '!': '1',\n '@': '2',\n '#': '3',\n '$': '4',\n '%': '5',\n '^': '6',\n '&': '7',\n '*': '8',\n '(': '9',\n ')': '0',\n '_': '-',\n '+': '=',\n ':': ';',\n '\\\"': '\\'',\n '<': ',',\n '>': '.',\n '?': '/',\n '|': '\\\\'\n };\n\n /**\n * this is a list of special strings you can use to map\n * to modifier keys when you specify your keyboard shortcuts\n *\n * @type {Object}\n */\n var _SPECIAL_ALIASES = {\n 'option': 'alt',\n 'command': 'meta',\n 'return': 'enter',\n 'escape': 'esc',\n 'plus': '+',\n 'mod': /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl'\n };\n\n /**\n * variable to store the flipped version of _MAP from above\n * needed to check if we should use keypress or not when no action\n * is specified\n *\n * @type {Object|undefined}\n */\n var _REVERSE_MAP;\n\n /**\n * loop through the f keys, f1 to f19 and add them to the map\n * programatically\n */\n for (var i = 1; i < 20; ++i) {\n _MAP[111 + i] = 'f' + i;\n }\n\n /**\n * loop through to map numbers on the numeric keypad\n */\n for (i = 0; i <= 9; ++i) {\n\n // This needs to use a string cause otherwise since 0 is falsey\n // mousetrap will never fire for numpad 0 pressed as part of a keydown\n // event.\n //\n // @see https://github.com/ccampbell/mousetrap/pull/258\n _MAP[i + 96] = i.toString();\n }\n\n /**\n * cross browser add event method\n *\n * @param {Element|HTMLDocument} object\n * @param {string} type\n * @param {Function} callback\n * @returns void\n */\n function _addEvent(object, type, callback) {\n if (object.addEventListener) {\n object.addEventListener(type, callback, false);\n return;\n }\n\n object.attachEvent('on' + type, callback);\n }\n\n /**\n * takes the event and returns the key character\n *\n * @param {Event} e\n * @return {string}\n */\n function _characterFromEvent(e) {\n\n // for keypress events we should return the character as is\n if (e.type == 'keypress') {\n var character = String.fromCharCode(e.which);\n\n // if the shift key is not pressed then it is safe to assume\n // that we want the character to be lowercase. this means if\n // you accidentally have caps lock on then your key bindings\n // will continue to work\n //\n // the only side effect that might not be desired is if you\n // bind something like 'A' cause you want to trigger an\n // event when capital A is pressed caps lock will no longer\n // trigger the event. shift+a will though.\n if (!e.shiftKey) {\n character = character.toLowerCase();\n }\n\n return character;\n }\n\n // for non keypress events the special maps are needed\n if (_MAP[e.which]) {\n return _MAP[e.which];\n }\n\n if (_KEYCODE_MAP[e.which]) {\n return _KEYCODE_MAP[e.which];\n }\n\n // if it is not in the special map\n\n // with keydown and keyup events the character seems to always\n // come in as an uppercase character whether you are pressing shift\n // or not. we should make sure it is always lowercase for comparisons\n return String.fromCharCode(e.which).toLowerCase();\n }\n\n /**\n * checks if two arrays are equal\n *\n * @param {Array} modifiers1\n * @param {Array} modifiers2\n * @returns {boolean}\n */\n function _modifiersMatch(modifiers1, modifiers2) {\n return modifiers1.sort().join(',') === modifiers2.sort().join(',');\n }\n\n /**\n * takes a key event and figures out what the modifiers are\n *\n * @param {Event} e\n * @returns {Array}\n */\n function _eventModifiers(e) {\n var modifiers = [];\n\n if (e.shiftKey) {\n modifiers.push('shift');\n }\n\n if (e.altKey) {\n modifiers.push('alt');\n }\n\n if (e.ctrlKey) {\n modifiers.push('ctrl');\n }\n\n if (e.metaKey) {\n modifiers.push('meta');\n }\n\n return modifiers;\n }\n\n /**\n * prevents default for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _preventDefault(e) {\n if (e.preventDefault) {\n e.preventDefault();\n return;\n }\n\n e.returnValue = false;\n }\n\n /**\n * stops propogation for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _stopPropagation(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n return;\n }\n\n e.cancelBubble = true;\n }\n\n /**\n * determines if the keycode specified is a modifier key or not\n *\n * @param {string} key\n * @returns {boolean}\n */\n function _isModifier(key) {\n return key == 'shift' || key == 'ctrl' || key == 'alt' || key == 'meta';\n }\n\n /**\n * reverses the map lookup so that we can look for specific keys\n * to see what can and can't use keypress\n *\n * @return {Object}\n */\n function _getReverseMap() {\n if (!_REVERSE_MAP) {\n _REVERSE_MAP = {};\n for (var key in _MAP) {\n\n // pull out the numeric keypad from here cause keypress should\n // be able to detect the keys from the character\n if (key > 95 && key < 112) {\n continue;\n }\n\n if (_MAP.hasOwnProperty(key)) {\n _REVERSE_MAP[_MAP[key]] = key;\n }\n }\n }\n return _REVERSE_MAP;\n }\n\n /**\n * picks the best action based on the key combination\n *\n * @param {string} key - character for key\n * @param {Array} modifiers\n * @param {string=} action passed in\n */\n function _pickBestAction(key, modifiers, action) {\n\n // if no action was picked in we should try to pick the one\n // that we think would work best for this key\n if (!action) {\n action = _getReverseMap()[key] ? 'keydown' : 'keypress';\n }\n\n // modifier keys don't work as expected with keypress,\n // switch to keydown\n if (action == 'keypress' && modifiers.length) {\n action = 'keydown';\n }\n\n return action;\n }\n\n /**\n * Converts from a string key combination to an array\n *\n * @param {string} combination like \"command+shift+l\"\n * @return {Array}\n */\n function _keysFromString(combination) {\n if (combination === '+') {\n return ['+'];\n }\n\n combination = combination.replace(/\\+{2}/g, '+plus');\n return combination.split('+');\n }\n\n /**\n * Gets info for a specific key combination\n *\n * @param {string} combination key combination (\"command+s\" or \"a\" or \"*\")\n * @param {string=} action\n * @returns {Object}\n */\n function _getKeyInfo(combination, action) {\n var keys;\n var key;\n var i;\n var modifiers = [];\n\n // take the keys from this pattern and figure out what the actual\n // pattern is all about\n keys = _keysFromString(combination);\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n\n // normalize key names\n if (_SPECIAL_ALIASES[key]) {\n key = _SPECIAL_ALIASES[key];\n }\n\n // if this is not a keypress event then we should\n // be smart about using shift keys\n // this will only work for US keyboards however\n if (action && action != 'keypress' && _SHIFT_MAP[key]) {\n key = _SHIFT_MAP[key];\n modifiers.push('shift');\n }\n\n // if this key is a modifier then add it to the list of modifiers\n if (_isModifier(key)) {\n modifiers.push(key);\n }\n }\n\n // depending on what the key combination is\n // we will try to pick the best event for it\n action = _pickBestAction(key, modifiers, action);\n\n return {\n key: key,\n modifiers: modifiers,\n action: action\n };\n }\n\n function _belongsTo(element, ancestor) {\n if (element === null || element === document) {\n return false;\n }\n\n if (element === ancestor) {\n return true;\n }\n\n return _belongsTo(element.parentNode, ancestor);\n }\n\n function Mousetrap(targetElement) {\n var self = this;\n\n targetElement = targetElement || document;\n\n if (!(self instanceof Mousetrap)) {\n return new Mousetrap(targetElement);\n }\n\n /**\n * element to attach key events to\n *\n * @type {Element}\n */\n self.target = targetElement;\n\n /**\n * a list of all the callbacks setup via Mousetrap.bind()\n *\n * @type {Object}\n */\n self._callbacks = {};\n\n /**\n * direct map of string combinations to callbacks used for trigger()\n *\n * @type {Object}\n */\n self._directMap = {};\n\n /**\n * keeps track of what level each sequence is at since multiple\n * sequences can start out with the same sequence\n *\n * @type {Object}\n */\n var _sequenceLevels = {};\n\n /**\n * variable to store the setTimeout call\n *\n * @type {null|number}\n */\n var _resetTimer;\n\n /**\n * temporary state where we will ignore the next keyup\n *\n * @type {boolean|string}\n */\n var _ignoreNextKeyup = false;\n\n /**\n * temporary state where we will ignore the next keypress\n *\n * @type {boolean}\n */\n var _ignoreNextKeypress = false;\n\n /**\n * are we currently inside of a sequence?\n * type of action (\"keyup\" or \"keydown\" or \"keypress\") or false\n *\n * @type {boolean|string}\n */\n var _nextExpectedAction = false;\n\n /**\n * resets all sequence counters except for the ones passed in\n *\n * @param {Object} doNotReset\n * @returns void\n */\n function _resetSequences(doNotReset) {\n doNotReset = doNotReset || {};\n\n var activeSequences = false,\n key;\n\n for (key in _sequenceLevels) {\n if (doNotReset[key]) {\n activeSequences = true;\n continue;\n }\n _sequenceLevels[key] = 0;\n }\n\n if (!activeSequences) {\n _nextExpectedAction = false;\n }\n }\n\n /**\n * finds all callbacks that match based on the keycode, modifiers,\n * and action\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event|Object} e\n * @param {string=} sequenceName - name of the sequence we are looking for\n * @param {string=} combination\n * @param {number=} level\n * @returns {Array}\n */\n function _getMatches(character, modifiers, e, sequenceName, combination, level) {\n var i;\n var callback;\n var matches = [];\n var action = e.type;\n\n // if there are no events related to this keycode\n if (!self._callbacks[character]) {\n return [];\n }\n\n // if a modifier key is coming up on its own we should allow it\n if (action == 'keyup' && _isModifier(character)) {\n modifiers = [character];\n }\n\n // loop through all callbacks for the key that was pressed\n // and see if any of them match\n for (i = 0; i < self._callbacks[character].length; ++i) {\n callback = self._callbacks[character][i];\n\n // if a sequence name is not specified, but this is a sequence at\n // the wrong level then move onto the next match\n if (!sequenceName && callback.seq && _sequenceLevels[callback.seq] != callback.level) {\n continue;\n }\n\n // if the action we are looking for doesn't match the action we got\n // then we should keep going\n if (action != callback.action) {\n continue;\n }\n\n // if this is a keypress event and the meta key and control key\n // are not pressed that means that we need to only look at the\n // character, otherwise check the modifiers as well\n //\n // chrome will not fire a keypress if meta or control is down\n // safari will fire a keypress if meta or meta+shift is down\n // firefox will fire a keypress if meta or control is down\n if ((action == 'keypress' && !e.metaKey && !e.ctrlKey) || _modifiersMatch(modifiers, callback.modifiers)) {\n\n // when you bind a combination or sequence a second time it\n // should overwrite the first one. if a sequenceName or\n // combination is specified in this call it does just that\n //\n // @todo make deleting its own method?\n var deleteCombo = !sequenceName && callback.combo == combination;\n var deleteSequence = sequenceName && callback.seq == sequenceName && callback.level == level;\n if (deleteCombo || deleteSequence) {\n self._callbacks[character].splice(i, 1);\n }\n\n matches.push(callback);\n }\n }\n\n return matches;\n }\n\n /**\n * actually calls the callback function\n *\n * if your callback function returns false this will use the jquery\n * convention - prevent default and stop propogation on the event\n *\n * @param {Function} callback\n * @param {Event} e\n * @returns void\n */\n function _fireCallback(callback, e, combo, sequence) {\n\n // if this event should not happen stop here\n if (self.stopCallback(e, e.target || e.srcElement, combo, sequence)) {\n return;\n }\n\n if (callback(e, combo) === false) {\n _preventDefault(e);\n _stopPropagation(e);\n }\n }\n\n /**\n * handles a character key event\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event} e\n * @returns void\n */\n self._handleKey = function(character, modifiers, e) {\n var callbacks = _getMatches(character, modifiers, e);\n var i;\n var doNotReset = {};\n var maxLevel = 0;\n var processedSequenceCallback = false;\n\n // Calculate the maxLevel for sequences so we can only execute the longest callback sequence\n for (i = 0; i < callbacks.length; ++i) {\n if (callbacks[i].seq) {\n maxLevel = Math.max(maxLevel, callbacks[i].level);\n }\n }\n\n // loop through matching callbacks for this key event\n for (i = 0; i < callbacks.length; ++i) {\n\n // fire for all sequence callbacks\n // this is because if for example you have multiple sequences\n // bound such as \"g i\" and \"g t\" they both need to fire the\n // callback for matching g cause otherwise you can only ever\n // match the first one\n if (callbacks[i].seq) {\n\n // only fire callbacks for the maxLevel to prevent\n // subsequences from also firing\n //\n // for example 'a option b' should not cause 'option b' to fire\n // even though 'option b' is part of the other sequence\n //\n // any sequences that do not match here will be discarded\n // below by the _resetSequences call\n if (callbacks[i].level != maxLevel) {\n continue;\n }\n\n processedSequenceCallback = true;\n\n // keep a list of which sequences were matches for later\n doNotReset[callbacks[i].seq] = 1;\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo, callbacks[i].seq);\n continue;\n }\n\n // if there were no sequence matches but we are still here\n // that means this is a regular match so we should fire that\n if (!processedSequenceCallback) {\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo);\n }\n }\n\n // if the key you pressed matches the type of sequence without\n // being a modifier (ie \"keyup\" or \"keypress\") then we should\n // reset all sequences that were not matched by this event\n //\n // this is so, for example, if you have the sequence \"h a t\" and you\n // type \"h e a r t\" it does not match. in this case the \"e\" will\n // cause the sequence to reset\n //\n // modifier keys are ignored because you can have a sequence\n // that contains modifiers such as \"enter ctrl+space\" and in most\n // cases the modifier key will be pressed before the next key\n //\n // also if you have a sequence such as \"ctrl+b a\" then pressing the\n // \"b\" key will trigger a \"keypress\" and a \"keydown\"\n //\n // the \"keydown\" is expected when there is a modifier, but the\n // \"keypress\" ends up matching the _nextExpectedAction since it occurs\n // after and that causes the sequence to reset\n //\n // we ignore keypresses in a sequence that directly follow a keydown\n // for the same character\n var ignoreThisKeypress = e.type == 'keypress' && _ignoreNextKeypress;\n if (e.type == _nextExpectedAction && !_isModifier(character) && !ignoreThisKeypress) {\n _resetSequences(doNotReset);\n }\n\n _ignoreNextKeypress = processedSequenceCallback && e.type == 'keydown';\n };\n\n /**\n * handles a keydown event\n *\n * @param {Event} e\n * @returns void\n */\n function _handleKeyEvent(e) {\n\n // normalize e.which for key events\n // @see http://stackoverflow.com/questions/4285627/javascript-keycode-vs-charcode-utter-confusion\n if (typeof e.which !== 'number') {\n e.which = e.keyCode;\n }\n\n var character = _characterFromEvent(e);\n\n // no character found then stop\n if (!character) {\n return;\n }\n\n // need to use === for the character check because the character can be 0\n if (e.type == 'keyup' && _ignoreNextKeyup === character) {\n _ignoreNextKeyup = false;\n return;\n }\n\n self.handleKey(character, _eventModifiers(e), e);\n }\n\n /**\n * called to set a 1 second timeout on the specified sequence\n *\n * this is so after each key press in the sequence you have 1 second\n * to press the next key before you have to start over\n *\n * @returns void\n */\n function _resetSequenceTimer() {\n clearTimeout(_resetTimer);\n _resetTimer = setTimeout(_resetSequences, 1000);\n }\n\n /**\n * binds a key sequence to an event\n *\n * @param {string} combo - combo specified in bind call\n * @param {Array} keys\n * @param {Function} callback\n * @param {string=} action\n * @returns void\n */\n function _bindSequence(combo, keys, callback, action) {\n\n // start off by adding a sequence level record for this combination\n // and setting the level to 0\n _sequenceLevels[combo] = 0;\n\n /**\n * callback to increase the sequence level for this sequence and reset\n * all other sequences that were active\n *\n * @param {string} nextAction\n * @returns {Function}\n */\n function _increaseSequence(nextAction) {\n return function() {\n _nextExpectedAction = nextAction;\n ++_sequenceLevels[combo];\n _resetSequenceTimer();\n };\n }\n\n /**\n * wraps the specified callback inside of another function in order\n * to reset all sequence counters as soon as this sequence is done\n *\n * @param {Event} e\n * @returns void\n */\n function _callbackAndReset(e) {\n _fireCallback(callback, e, combo);\n\n // we should ignore the next key up if the action is key down\n // or keypress. this is so if you finish a sequence and\n // release the key the final key will not trigger a keyup\n if (action !== 'keyup') {\n _ignoreNextKeyup = _characterFromEvent(e);\n }\n\n // weird race condition if a sequence ends with the key\n // another sequence begins with\n setTimeout(_resetSequences, 10);\n }\n\n // loop through keys one at a time and bind the appropriate callback\n // function. for any key leading up to the final one it should\n // increase the sequence. after the final, it should reset all sequences\n //\n // if an action is specified in the original bind call then that will\n // be used throughout. otherwise we will pass the action that the\n // next key in the sequence should match. this allows a sequence\n // to mix and match keypress and keydown events depending on which\n // ones are better suited to the key provided\n for (var i = 0; i < keys.length; ++i) {\n var isFinal = i + 1 === keys.length;\n var wrappedCallback = isFinal ? _callbackAndReset : _increaseSequence(action || _getKeyInfo(keys[i + 1]).action);\n _bindSingle(keys[i], wrappedCallback, action, combo, i);\n }\n }\n\n /**\n * binds a single keyboard combination\n *\n * @param {string} combination\n * @param {Function} callback\n * @param {string=} action\n * @param {string=} sequenceName - name of sequence if part of sequence\n * @param {number=} level - what part of the sequence the command is\n * @returns void\n */\n function _bindSingle(combination, callback, action, sequenceName, level) {\n\n // store a direct mapped reference for use with Mousetrap.trigger\n self._directMap[combination + ':' + action] = callback;\n\n // make sure multiple spaces in a row become a single space\n combination = combination.replace(/\\s+/g, ' ');\n\n var sequence = combination.split(' ');\n var info;\n\n // if this pattern is a sequence of keys then run through this method\n // to reprocess each pattern one key at a time\n if (sequence.length > 1) {\n _bindSequence(combination, sequence, callback, action);\n return;\n }\n\n info = _getKeyInfo(combination, action);\n\n // make sure to initialize array if this is the first time\n // a callback is added for this key\n self._callbacks[info.key] = self._callbacks[info.key] || [];\n\n // remove an existing match if there is one\n _getMatches(info.key, info.modifiers, {type: info.action}, sequenceName, combination, level);\n\n // add this call back to the array\n // if it is a sequence put it at the beginning\n // if not put it at the end\n //\n // this is important because the way these are processed expects\n // the sequence ones to come first\n self._callbacks[info.key][sequenceName ? 'unshift' : 'push']({\n callback: callback,\n modifiers: info.modifiers,\n action: info.action,\n seq: sequenceName,\n level: level,\n combo: combination\n });\n }\n\n /**\n * binds multiple combinations to the same callback\n *\n * @param {Array} combinations\n * @param {Function} callback\n * @param {string|undefined} action\n * @returns void\n */\n self._bindMultiple = function(combinations, callback, action) {\n for (var i = 0; i < combinations.length; ++i) {\n _bindSingle(combinations[i], callback, action);\n }\n };\n\n // start!\n _addEvent(targetElement, 'keypress', _handleKeyEvent);\n _addEvent(targetElement, 'keydown', _handleKeyEvent);\n _addEvent(targetElement, 'keyup', _handleKeyEvent);\n }\n\n /**\n * binds an event to mousetrap\n *\n * can be a single key, a combination of keys separated with +,\n * an array of keys, or a sequence of keys separated by spaces\n *\n * be sure to list the modifier keys first to make sure that the\n * correct key ends up getting bound (the last key in the pattern)\n *\n * @param {string|Array} keys\n * @param {Function} callback\n * @param {string=} action - 'keypress', 'keydown', or 'keyup'\n * @returns void\n */\n Mousetrap.prototype.bind = function(keys, callback, action) {\n var self = this;\n keys = keys instanceof Array ? keys : [keys];\n self._bindMultiple.call(self, keys, callback, action);\n return self;\n };\n\n /**\n * unbinds an event to mousetrap\n *\n * the unbinding sets the callback function of the specified key combo\n * to an empty function and deletes the corresponding key in the\n * _directMap dict.\n *\n * TODO: actually remove this from the _callbacks dictionary instead\n * of binding an empty function\n *\n * the keycombo+action has to be exactly the same as\n * it was defined in the bind method\n *\n * @param {string|Array} keys\n * @param {string} action\n * @returns void\n */\n Mousetrap.prototype.unbind = function(keys, action) {\n var self = this;\n return self.bind.call(self, keys, function() {}, action);\n };\n\n /**\n * triggers an event that has already been bound\n *\n * @param {string} keys\n * @param {string=} action\n * @returns void\n */\n Mousetrap.prototype.trigger = function(keys, action) {\n var self = this;\n if (self._directMap[keys + ':' + action]) {\n self._directMap[keys + ':' + action]({}, keys);\n }\n return self;\n };\n\n /**\n * resets the library back to its initial state. this is useful\n * if you want to clear out the current keyboard shortcuts and bind\n * new ones - for example if you switch to another page\n *\n * @returns void\n */\n Mousetrap.prototype.reset = function() {\n var self = this;\n self._callbacks = {};\n self._directMap = {};\n return self;\n };\n\n /**\n * should we stop this event before firing off callbacks\n *\n * @param {Event} e\n * @param {Element} element\n * @return {boolean}\n */\n Mousetrap.prototype.stopCallback = function(e, element) {\n var self = this;\n\n // if the element has the class \"mousetrap\" then no need to stop\n if ((' ' + element.className + ' ').indexOf(' mousetrap ') > -1) {\n return false;\n }\n\n if (_belongsTo(element, self.target)) {\n return false;\n }\n\n // Events originating from a shadow DOM are re-targetted and `e.target` is the shadow host,\n // not the initial event target in the shadow tree. Note that not all events cross the\n // shadow boundary.\n // For shadow trees with `mode: 'open'`, the initial event target is the first element in\n // the event’s composed path. For shadow trees with `mode: 'closed'`, the initial event\n // target cannot be obtained.\n if ('composedPath' in e && typeof e.composedPath === 'function') {\n // For open shadow trees, update `element` so that the following check works.\n var initialEventTarget = e.composedPath()[0];\n if (initialEventTarget !== e.target) {\n element = initialEventTarget;\n }\n }\n\n // stop for input, select, and textarea\n return element.tagName == 'INPUT' || element.tagName == 'SELECT' || element.tagName == 'TEXTAREA' || element.isContentEditable;\n };\n\n /**\n * exposes _handleKey publicly so it can be overwritten by extensions\n */\n Mousetrap.prototype.handleKey = function() {\n var self = this;\n return self._handleKey.apply(self, arguments);\n };\n\n /**\n * allow custom key mappings\n */\n Mousetrap.addKeycodes = function(object) {\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n _MAP[key] = object[key];\n }\n }\n _REVERSE_MAP = null;\n };\n\n /**\n * Init the global mousetrap functions\n *\n * This method is needed to allow the global mousetrap functions to work\n * now that mousetrap is a constructor function.\n */\n Mousetrap.init = function() {\n var documentMousetrap = Mousetrap(document);\n for (var method in documentMousetrap) {\n if (method.charAt(0) !== '_') {\n Mousetrap[method] = (function(method) {\n return function() {\n return documentMousetrap[method].apply(documentMousetrap, arguments);\n };\n } (method));\n }\n }\n };\n\n Mousetrap.init();\n\n // expose mousetrap to the global object\n window.Mousetrap = Mousetrap;\n\n // expose as a common js module\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Mousetrap;\n }\n\n // expose mousetrap as an AMD module\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Mousetrap;\n });\n }\n}) (typeof window !== 'undefined' ? window : null, typeof window !== 'undefined' ? document : null);\n","import { $_, Text, Util, $_ready } from '@aegis-framework/artemis';\n/* global Prism */\n\nexport class FancyError {\n\n\tstatic init () {\n\n\t}\n\n\tstatic pop () {\n\t\tif ((window.location.protocol.indexOf ('file') === 0 || window.location.host === 'localhost') && typeof Prism !== 'undefined') {\n\t\t\tif (FancyError.queue.length > 0) {\n\t\t\t\tconst object = FancyError.queue.pop ();\n\n\t\t\t\t$_('body').prepend (`\n\t\t\t\t\t\n\t\t\t\t`);\n\n\t\t\t\t$_(`[data-error=\"${object.id}\"] button`).click (function () {\n\t\t\t\t\t$_(`[data-error=\"${object.id}\"]`).remove ();\n\t\t\t\t\tFancyError.pop ();\n\t\t\t\t});\n\t\t\t\tPrism.highlightAll ();\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic show (title = 'Error', message = 'An error has ocurred! Please check the console so you get more insight.', props = {}) {\n\t\tif (typeof MonogatariDebug === 'object') {\n\t\t\tconst id = Util.uuid ();\n\n\t\t\tconst object = {\n\t\t\t\tid,\n\t\t\t\ttitle,\n\t\t\t\tmessage,\n\t\t\t\tprops\n\t\t\t};\n\n\n\t\t\tif ($_('[data-error]').isVisible ()) {\n\t\t\t\tFancyError.queue.unshift (object);\n\t\t\t} else {\n\t\t\t\tif ($_('body').length > 0) {\n\t\t\t\t\t$_('body').prepend (`\n\t\t\t\t\t\t\n\t\t\t\t\t`);\n\n\t\t\t\t\t$_(`[data-error=\"${id}\"] button`).click (function () {\n\t\t\t\t\t\t$_(`[data-error=\"${id}\"]`).remove ();\n\t\t\t\t\t\tFancyError.pop ();\n\t\t\t\t\t});\n\t\t\t\t\tPrism.highlightAll ();\n\t\t\t\t} else {\n\t\t\t\t\t$_ready (() => {\n\t\t\t\t\t\t$_('body').prepend (`\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t`);\n\n\t\t\t\t\t\t$_(`[data-error=\"${id}\"] button`).click (function () {\n\t\t\t\t\t\t\t$_(`[data-error=\"${id}\"]`).remove ();\n\t\t\t\t\t\t\tFancyError.pop ();\n\t\t\t\t\t\t});\n\t\t\t\t\t\tPrism.highlightAll ();\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic render (props = {}) {\n\t\tlet html = '
';\n\t\tfor (const key of Object.keys (props)) {\n\t\t\tif (typeof props[key] === 'string' || typeof props[key] === 'number') {\n\t\t\t\thtml += `

${key}: ${props[key]}

`;\n\t\t\t} else if (props[key] instanceof Array) {\n\t\t\t\thtml += `
${key}:
    `;\n\t\t\t\tfor (const item of props[key]) {\n\t\t\t\t\thtml += `
  • ${item}
  • `;\n\t\t\t\t}\n\t\t\t\thtml += '

';\n\t\t\t} else if (props[key] instanceof NodeList) {\n\t\t\t\thtml += `

${key}:

`;\n\t\t\t\tfor (const item of props[key]) {\n\t\t\t\t\thtml += `${item.outerHTML.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')}`;\n\t\t\t\t}\n\t\t\t\thtml += '

';\n\t\t\t}\n\t\t}\n\t\thtml += '
';\n\n\t\tfor (const key of Object.keys (props)) {\n\t\t\tif (typeof props[key] === 'object' && !(props[key] instanceof Array) && !(props[key] instanceof NodeList)) {\n\t\t\t\thtml += `

${Text.capitalize (key)}

`;\n\t\t\t\tfor (const property of Object.keys (props[key])) {\n\t\t\t\t\tif (property.indexOf ('_') === 0) {\n\t\t\t\t\t\thtml += `

${props[key][property]}

`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (typeof props[key][property] === 'string' || typeof props[key][property] === 'number') {\n\t\t\t\t\t\t\thtml += `

${property}: ${props[key][property]}

`;\n\t\t\t\t\t\t} else if (props[key][property] instanceof Array) {\n\t\t\t\t\t\t\thtml += `
${key}:
    `;\n\t\t\t\t\t\t\tfor (const item of props[key]) {\n\t\t\t\t\t\t\t\thtml += `
  • ${item}
  • `;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thtml += '

';\n\t\t\t\t\t\t} else if (props[key][property] instanceof NodeList) {\n\t\t\t\t\t\t\thtml += `

${property}:

`;\n\t\t\t\t\t\t\tfor (const item of props[key][property]) {\n\t\t\t\t\t\t\t\thtml += `${item.outerHTML.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')}`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thtml += '

';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thtml += '
';\n\t\t\t}\n\t\t}\n\t\treturn html;\n\t}\n\n\n}\n\nFancyError.queue = [];","// list of available flags\nmodule.exports =\n{\n // allow (original) unsafe behavior of merge all properties, including ones like `__proto__`\n allowDangerousObjectKeys: 'deeply:allowDangerousObjectKeys:' + Math.random(),\n\n // to prevent (reduce chance of) accidental leaking of the global variables into runtime flags\n useCustomAdapters: 'deeply:useCustomAdapters:' + Math.random(),\n useCustomTypeOf: 'deeply:useCustomTypeOf:' + Math.random()\n};\n","// Public API\nmodule.exports = arrayAdapter;\n\n/**\n * Adapter to merge arrays\n *\n * Note: resets target value\n *\n * @param {array} to - target array to update\n * @param {array} from - array to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {array} - modified target object\n */\nfunction arrayAdapter(to, from, merge)\n{\n // reset target array\n to.splice(0);\n\n // transfer actual values\n from.reduce(function(target, value, index)\n {\n // use `undefined` as always-override value\n target[index] = merge(undefined, value);\n\n return target;\n }, to);\n\n return to;\n}\n","// Public API\nmodule.exports = dateAdapter;\n\n/**\n * Custom `initialValue` method\n * used when default approach of creating\n * initial value for the target object\n * isn't good enough\n *\n * @returns {object.Date} - new Date object\n */\nmodule.exports.initialValue = function()\n{\n return new Date();\n};\n\n/**\n * Adapter to merge Date objects\n *\n * @param {object.Date} to - target object to update\n * @param {object.Date} from - Date object to clone\n * @returns {object.Date} - modified target object\n */\nfunction dateAdapter(to, from)\n{\n // transfer actual value\n to.setTime(from.valueOf());\n\n return to;\n}\n","var behaviors = require('../flags.js');\n\n// Public API\nmodule.exports = reduceObject;\n\n/**\n * Iterates over own properties of the provided object\n * and copies then over to the target object.\n * While recursively running merge on the elements.\n *\n * @param {mixed} target - target object to modify\n * @param {mixed} source - source object to read from\n * @param {function} merge - iterator to merge sub elements\n * @returns {mixed} - modified target object\n */\nfunction reduceObject(target, source, merge)\n{\n var context = this;\n\n // clone exposed properties\n Object.keys(source).reduce(function(acc, key)\n {\n if (context.allowDangerousObjectKeys !== behaviors.allowDangerousObjectKeys && isUnsafeKey(key))\n {\n return acc;\n }\n\n acc[key] = merge(acc[key], source[key]);\n\n return acc;\n }, target);\n\n return target;\n}\n\n\n/**\n * Checks if provide key is unsafe to use within object\n *\n * @param {string} key - object key to check against\n * @returns {boolean} - `true` if key is unsafe to use (e.g. __proto__), `false` otherwise\n */\nfunction isUnsafeKey(key) {\n return ['__proto__'].indexOf(key) != -1;\n}\n","var reduceObject = require('../lib/reduce_object.js');\n\n// Public API\nmodule.exports = objectAdapter;\n\n/**\n * Adapter to merge regular (user land) objects\n *\n * Note: overrides target value\n * if it's not a regular object\n *\n * @param {object} to - target object to update\n * @param {object} from - object to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {object} - modified target object\n */\nfunction objectAdapter(to, from, merge)\n{\n // transfer source values\n // pass context down the line, to allow behavior overrides\n reduceObject.call(this, to, from, merge);\n\n return to;\n}\n","// Public API\nmodule.exports = arraysCombineAdapter;\n\n/**\n * Adapter to merge arrays\n * by combining/merging it's elements\n *\n * @param {array} to - target array to update\n * @param {array} from - array to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {array} - modified target object\n */\nfunction arraysCombineAdapter(to, from, merge)\n{\n // transfer actual values\n from.reduce(function(target, value, index)\n {\n // combine elements index to index\n target[index] = merge(target[index], value);\n\n return target;\n }, to);\n\n return to;\n}\n","// Public API\nmodule.exports = arraysAppendAdapter;\n\n/**\n * Adapter to merge arrays\n * by appending cloned elements\n * of the second array to the first\n *\n * @param {array} to - target array to update\n * @param {array} from - array to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {array} - modified target object\n */\nfunction arraysAppendAdapter(to, from, merge)\n{\n // transfer actual values\n from.reduce(function(target, value)\n {\n target.push(merge(undefined, value));\n\n return target;\n }, to);\n\n return to;\n}\n","// Public API\nmodule.exports = arraysAppendUniqueAdapter;\n\n/**\n * Adapter to merge arrays\n * by appending cloned elements\n * of the second array to the first\n * unless they already exist in the target array\n *\n * @param {array} to - target array to update\n * @param {array} from - array to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {array} - modified target object\n */\nfunction arraysAppendUniqueAdapter(to, from, merge)\n{\n // transfer actual values\n from.reduce(function(target, value)\n {\n // append only if new element isn't present yet\n if (target.indexOf(value) == -1)\n {\n target.push(merge(undefined, value));\n }\n\n return target;\n }, to);\n\n return to;\n}\n","// Public API\nmodule.exports = fulcon;\n\n/**\n * Creates wrapper function with the same signature\n *\n * @param {function} source - function to clone\n * @returns {function} - wrapped function\n */\nfunction fulcon(source)\n{\n // makes \"clone\" look and smell the same\n // strip `bound ` prefix from the function name\n return Function('source', 'return function ' + source.name.replace(/^bound /, '') + '(' + Array(source.length + 1).join('a').split('').join(',') + '){ return source.apply(this, arguments); }')(source);\n}\n","var cloneFunction = require('fulcon')\n , reduceObject = require('../lib/reduce_object.js')\n ;\n\n// Public API\nmodule.exports = functionsCloneAdapter;\n\n/**\n * Clones provided source function and replaces\n * target function with the clone.\n * Also cloning the prototype tree.\n *\n * @param {function} to - target function to ignore\n * @param {function} from - function to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {function} - cloned source function\n */\nfunction functionsCloneAdapter(to, from, merge)\n{\n var copy = cloneFunction(from);\n\n // to fully stand up to Ludicrous name\n // let's clone prototype chain\n copy.prototype = merge(undefined, from.prototype);\n\n // duplicate function's properties\n reduceObject(copy, from, merge);\n\n return copy;\n}\n","var cloneFunction = require('fulcon')\n , reduceObject = require('../lib/reduce_object.js')\n ;\n\n// Public API\nmodule.exports = functionsExtendAdapter;\n\n/**\n * Clones provided source function and replaces\n * target function with the clone.\n * While keeping original prototype in the prototype chain.\n *\n * @param {function} to - target function to ignore\n * @param {function} from - function to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {function} - cloned source function\n */\nfunction functionsExtendAdapter(to, from, merge)\n{\n var copy = cloneFunction(from);\n\n // keep from.prototype in the prototype chain\n copy.prototype = from.prototype;\n\n // duplicate function's properties\n reduceObject(copy, from, merge);\n\n return copy;\n}\n","// collect available adapters\nmodule.exports =\n{\n 'array' : require('./adapters/array.js'),\n 'date' : require('./adapters/date.js'),\n 'object': require('./adapters/object.js'),\n\n // extra adapters\n arraysCombine : require('./extra/arrays_combine.js'),\n arraysAppend : require('./extra/arrays_append.js'),\n arraysAppendUnique: require('./extra/arrays_append_unique.js'),\n functionsClone : require('./extra/functions_clone.js'),\n functionsExtend : require('./extra/functions_extend.js')\n};\n","'use strict';\n\n// Public API\nmodule.exports = preciseTypeOf;\n\n/**\n * Detects real type of the objects like 'Array()', `new Number(1)`, `new Boolean(true)`, etc\n *\n * @param {mixed} obj - object to get type of\n * @param {object} [options] - object to get type of\n * @returns {string} precise type\n */\nfunction preciseTypeOf(obj, options)\n{\n var type, stamp = Object.prototype.toString.call(obj);\n\n options = options || {};\n\n if (!type && obj === undefined) type = 'undefined';\n if (!type && obj === null) type = 'null';\n\n if (!type && obj.constructor && typeof obj.constructor.isBuffer == 'function' && obj.constructor.isBuffer(obj)) type = 'buffer';\n\n if (!type && typeof window == 'object' && obj === window) type = 'global';\n if (!type && typeof global == 'object' && obj === global) type = 'global';\n\n if (!type && typeof obj == 'number' && isNaN(obj)) type = 'nan';\n if (!type && typeof obj == 'object' && stamp == '[object Number]' && isNaN(obj)) type = 'nan';\n\n if (!type && typeof obj == 'object' && stamp.substr(-6) == 'Event]') type = 'event';\n if (!type && stamp.substr(0, 12) == '[object HTML') type = 'html';\n if (!type && stamp.substr(0, 12) == '[object Node') type = 'html';\n\n // last resort\n if (!type) type = stamp.match(/\\[object\\s*([^\\]]+)\\]/)[1].toLowerCase();\n\n // be even more precise by reporting \"instance of\" names\n // Note: only check objects that were created by constructors\n if (type == 'object' && options.pojoOnly && obj.constructor) {\n // some constructors don't have names\n type = obj.constructor.name || 'unknown';\n\n // preserve `object` response for POJOs\n if (type == 'Object') type = 'object';\n }\n\n return type;\n}\n","var preciseTypeOf = require('precise-typeof')\n , adapters = require('./adapters.js')\n , behaviors = require('./flags.js')\n ;\n\n// Public API\nmodule.exports = merge;\n\n/**\n * Merges provided values, utilizing available adapters\n * if no adapter found, reference to the same object\n * will be returned, considering it as primitive value\n *\n * @param {mixed} to - value to merge into\n * @param {mixed} from - value to merge\n * @returns {mixed} - result of the merge\n */\nfunction merge(to, from)\n{\n // if no suitable adapters found\n // just return overriding value\n var result = from\n , typeOf = getTypeOfAdapter.call(this)\n , type = typeOf(from)\n , adapter = getMergeByTypeAdapter.call(this, type)\n ;\n\n // if target object isn't the same type as the source object,\n // then override with new instance of the same type\n if (typeOf(to) != type)\n {\n to = getInitialValue(type, adapter);\n }\n\n // bind merge callback to the current context\n // so not to loose runtime flags\n result = adapter.call(this, to, from, merge.bind(this));\n\n return result;\n}\n\n/**\n * Returns typeof adapter, either default one or custom one if provided\n *\n * @returns {function} - typeof custom adapter or default one\n */\nfunction getTypeOfAdapter()\n{\n var adapter = preciseTypeOf;\n\n // only if usage of custom adapters is authorized\n // to prevent global context leaking in\n if (this.useCustomTypeOf === behaviors.useCustomTypeOf)\n {\n adapter = this['typeof'];\n }\n\n return adapter;\n}\n\n/**\n * Returns merge adapter for the requested type\n * either default one or custom one if provided\n *\n * @param {string} type - hook type to look for\n * @returns {function} - merge adapter or pass-thru function, if not adapter found\n */\nfunction getMergeByTypeAdapter(type)\n{\n var adapter = adapters[type] || passThru;\n\n // only if usage of custom adapters is authorized\n // to prevent global context leaking in\n if (this.useCustomAdapters === behaviors.useCustomAdapters\n && typeof this[type] == 'function'\n )\n {\n adapter = this[type];\n }\n\n return adapter;\n}\n\n/**\n * Creates initial value for the provided type\n *\n * @param {string} type - type to create new value of\n * @param {function} adapter - adapter function with custom `initialValue` method\n * @returns {mixed} - new value of the requested type\n */\nfunction getInitialValue(type, adapter)\n{\n var value\n // should be either `window` or `global`\n , glob = typeof window == 'object' ? window : global\n // capitalize the first letter to make object constructor\n , objectType = type[0].toUpperCase() + type.substr(1)\n ;\n\n if (typeof adapter.initialValue == 'function')\n {\n value = adapter.initialValue();\n }\n else if (objectType in glob)\n {\n // create new type object and get it's actual value\n // e.g. `new String().valueOf() // -> ''`\n value = new glob[objectType]().valueOf();\n }\n\n // set initial value as `undefined` if no initialValue method found\n return value;\n}\n\n/**\n * Returns provided `from` value\n *\n * @param {mixed} to - value to ignore\n * @param {mixed} from - value to pass back\n * @returns {mixed} - passed `from` value\n */\nfunction passThru(to, from)\n{\n return from;\n}\n","var merge = require('./merge.js');\n\n// Public API\nmodule.exports = mutable;\n\n/**\n * Deeply merges properties of the provided objects, into the first object.\n *\n * @param {...mixed} value - values to merge\n * @returns {mixed} first value with merged in properties from other values\n */\nfunction mutable(/* a[, b[, ...]] */)\n{\n var args = Array.prototype.slice.call(arguments)\n , result = args.shift()\n ;\n\n while (args.length)\n {\n result = merge.call(this, result, args.shift());\n }\n\n return result;\n}\n","var mutable = require('./mutable.js');\n\n// Public API\nmodule.exports = immutable;\n\n/**\n * Creates untangled copy (deep clone) of the provided value,\n * and deeply merges rest of the provided values.\n *\n * @param {...mixed} value - value(s) to merge/clone\n * @returns {mixed} - deep merged copy of all the provided values\n */\nfunction immutable(/* a[, b[, ...]] */)\n{\n // invoke mutable with new object as first argument\n var args = Array.prototype.slice.call(arguments, 0);\n // use `undefined` as always-override value\n return mutable.apply(this, [undefined].concat(args));\n}\n","var behaviors = require('./flags.js')\n , adapters = require('./adapters.js')\n , mutable = require('./mutable.js')\n , immutable = require('./immutable.js')\n ;\n\n// Public API\n// keep immutable behavior as default\nmodule.exports = immutable;\n// expose both variants\nmodule.exports.mutable = mutable;\nmodule.exports.immutable = immutable;\n// expose behavior flags\nmodule.exports.behaviors = behaviors;\n// expose available adapters\nmodule.exports.adapters = adapters;\n","module.exports={name:\"@monogatari/core\",version:\"2.0.2\",main:\"./dist/engine/core/monogatari.js\",module:\"./dist/engine/core/monogatari.js\",description:\"Monogatari is a simple web visual novel engine created to bring Visual Novels to the web.\",repository:{type:\"git\",url:\"https://github.com/Monogatari/Monogatari.git\"},author:\"Diego Islas Ocampo\",license:\"MIT\",bugs:{url:\"https://github.com/Monogatari/Monogatari/issues\"},homepage:\"https://monogatari.io\",scripts:{start:\"yarn parcel serve index.html --open --no-cache\",build:\"yarn parcel build ./src/index.html\",\"build:core\":\"yarn run build:js && yarn build:css\",\"build:js\":\"yarn parcel build ./src/index.js --global Monogatari --out-file monogatari.js --out-dir dist/engine/core --no-cache --public-url .\",\"build:debug\":\"yarn parcel build ./debug/index.js --global MonogatariDebug --out-file debug.js --out-dir dist/engine/debug --no-cache --public-url .\",\"build:css\":\"yarn parcel build ./src/index.css --out-file monogatari.css --out-dir dist/engine/core --no-cache --no-source-maps\",\"watch:js\":\"yarn parcel watch ./src/index.js --global Monogatari --out-file monogatari.js --out-dir dist/engine/core --no-cache --public-url .\",\"watch:css\":\"yarn parcel watch ./src/index.css --out-file monogatari.css --out-dir dist/engine/core --no-cache --no-source-maps\",\"lint:html\":\"yarn htmlhint ./dist/index.html\",\"lint:js\":\"yarn eslint ./src --ext .js --ignore-pattern *.min.js && yarn eslint ./dist/js --ext .js --ignore-pattern *.min.js && yarn eslint ./dist/engine/electron --ext .js && yarn eslint ./dist/service-worker.js\",\"lint:css\":\"yarn stylelint ./src/**/*.css ./dist/style/**/*.css --ignore-pattern *.min.css\",lint:\"yarn lint:html && yarn lint:js && yarn lint:css\",test:\"yarn run cypress\"},devDependencies:{\"@babel/core\":\"^7.13.8\",\"@babel/plugin-proposal-class-properties\":\"^7.13.0\",\"@babel/plugin-syntax-object-rest-spread\":\"^7.8.3\",\"@babel/preset-env\":\"^7.13.8\",autoprefixer:\"^9.8.6\",\"babel-eslint\":\"^10.1.0\",\"core-js\":\"^3.9.0\",cypress:\"^6.5.0\",dotenv:\"^8.2.0\",\"electron-notarize\":\"^1.0.0\",eslint:\"^7.20.0\",htmlhint:\"^0.14.2\",jsdoc:\"^3.6.6\",parcel:\"^1.12.4\",\"postcss-calc\":\"^7.0.5\",precss:\"^4.0.0\",stylelint:\"^13.11.0\",\"stylelint-config-standard\":\"^20.0.0\"},dependencies:{\"@aegis-framework/artemis\":\"^0.3.24\",\"@aegis-framework/kayros.css\":\"^0.4.5\",\"@aegis-framework/pandora\":\"^0.1.7\",\"@fortawesome/fontawesome-free\":\"^5.15.2\",\"animate.css\":\"^4.1.1\",deeply:\"^3.1.0\",electron:\"^11.3.0\",\"mixins.css\":\"^1.0.0\",moment:\"^2.29.1\",mousetrap:\"^1.6.5\",\"random-js\":\"^2.1.0\",tsparticles:\"^1.18.12\"},files:[\"README.md\",\"LICENSE\",\"package.json\",\"src/*\",\"dist/engine/*\"]};","import { $_, $_ready, Space, SpaceAdapter, Platform, Preload, Util, FileSystem, Text, Debug } from '@aegis-framework/artemis';\nimport moment from 'moment/min/moment-with-locales';\nimport mousetrap from 'mousetrap';\nimport { FancyError } from './lib/FancyError';\nimport merge from 'deeply';\nimport * as package_json from './../package.json';\nimport { Random, browserCrypto } from 'random-js';\n\n/**\n * Every Monogatari Game is composed mainly of the following items:\n *\n * Actions: The list of capabilities a Monogatari script can run.\n *\n * Components: The list of screens and other HTML elements available in the game.\n *\n * State: The current state of the game, this simple object contains the current\n * label and step as well as the things being shown or played by every action.\n *\n * History: Every action and even components may keep a history on what statements\n *\t\t\thave been applied. The history is\n *\n * Assets: The list of different assets declared by the developer to use in throughout\n * \t\t the game.\n *\n * Script: All the labels and statements that make up the story and game play.\n *\n * Characters: The list of characters that participate in the script of the game.\n *\n * Monogatari follows a 3-step life cycle:\n *\n * 1. Setup - All needed elements are added to the DOM and all variables get\n * \t\t\t initialized. This first step is all about preparing all the needed\n * \t\t\t elements.\n *\n * 2. Bind - Once the game has been setup, its time to bind all the necessary\n * event listeners or perform more operations on the DOM.\n *\n * 3. Init - Finally, once the game was setup and it performed all the needed\n * bindings, it may declare or modify variables that needed the HTML to\n * be setup first or perform any other needed final operations. In this\n * \t\t\t step, all needed elements will now be shown and the game will begin.\n *\n * @class Monogatari\n */\nclass Monogatari {\n\n\t/**\n\t * @static onStart - This is the main onStart function, it acts as an event\n\t * listener when the game is started. This function will call its action\n\t * counterparts.\n\t *\n\t * @return {Promise} - The promise is resolved if all action's onStart function\n\t * was resolved and is rejected if any were rejected.\n\t */\n\tstatic onStart () {\n\t\tconst promises = [];\n\n\t\tfor (const component of this.components ()) {\n\t\t\tpromises.push (component.onStart ());\n\t\t}\n\n\t\tfor (const action of this.actions ()) {\n\t\t\tpromises.push (action.onStart ());\n\t\t}\n\n\t\treturn Promise.all (promises);\n\t}\n\n\t/**\n\t * @static onLoad - This is the main onStart function, it acts as an event\n\t * listener when a game is loaded. This function will call its action\n\t * counterparts so that each action is able to run any operations needed\n\t * when a game is loaded such as restoring their state.\n\t *\n\t * @return {Promise} - The promise is resolved is all action's onLoad function\n\t * was resolved and is rejected if any were rejected.\n\t */\n\tstatic onLoad () {\n\t\tconst promises = [];\n\n\t\tthis.global ('_restoring_state', true);\n\n\t\tfor (const action of this.actions ()) {\n\t\t\tpromises.push (action.onLoad ());\n\t\t}\n\n\t\tfor (const component of this.components ()) {\n\t\t\tpromises.push (component.onLoad ());\n\t\t}\n\n\t\treturn Promise.all (promises).then ((promises) => {\n\t\t\tthis.global ('_restoring_state', false);\n\t\t\treturn Promise.resolve (promises);\n\t\t});\n\t}\n\n\t/**\n\t * @static width - Determines the real width of the Monogatari element, pretty\n\t * useful when dealing with canvas or other things that require specific measurements.\n\t *\n\t * @return {number} - Computed Width of the element\n\t */\n\tstatic width () {\n\t\treturn parseInt (getComputedStyle(this.element (true)).width.replace ('px', ''));\n\t}\n\n\t/**\n\t * @static height - Determines the real height of the Monogatari element, pretty\n\t * useful when dealing with canvas or other things that require specific measurements.\n\t *\n\t * @return {number} - Computed Width of the element\n\t */\n\tstatic height () {\n\t\treturn getComputedStyle(this.element (true)).height.replace ('px', '');\n\t}\n\n\t/**\n\t * @static debug - If the Monogatari debug file is present, this function\n\t * will give access to the debug tools that are a replacement for the console\n\t * log functions.\n\t *\n\t * @return {Proxy } - Proxy to the Artemis Debug Class\n\t */\n\tstatic get debug () {\n\t\treturn new Proxy (Debug, {\n\t\t\tapply (target, receiver, args) {\n\t\t\t\tif (typeof MonogatariDebug === 'object') {\n\t\t\t\t\treturn Reflect.apply (target, receiver, args);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic set debug (value) {\n\t\tthrow new Error ('Debug reference cannot be overriden.');\n\t}\n\n\t/**\n\t * @static string - Gets the translation of a string. This is of course limited\n\t * to the translations defined for each language using the translation\n\t * function.\n\t *\n\t * @param {string} key - The key of the string whose translation is needed\n\t *\n\t * @return {string} - String translation in the current language given the\n\t * user's preferences.\n\t */\n\tstatic string (key) {\n\t\tif (typeof this._translations[this.preference ('Language')] !== 'undefined') {\n\t\t\tif (typeof this._translations[this.preference ('Language')][key] !== 'undefined') {\n\t\t\t\treturn this._translations[this.preference ('Language')][key];\n\t\t\t} else {\n\t\t\t\tFancyError.show (\n\t\t\t\t\t`Translation for string \"${key}\" could not be found`,\n\t\t\t\t\t'Monogatari attempted to find a translation for the current language set in the preferences but there was none.',\n\t\t\t\t\t{\n\t\t\t\t\t\t'String Not Found': key,\n\t\t\t\t\t\t'Language': this.preference ('Language'),\n\t\t\t\t\t\t'Found in these elements': $_(`[data-string=\"${key}\"]`).collection,\n\t\t\t\t\t\t'You may have meant one of these': Object.keys (this._translations[this.preference ('Language')]),\n\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t'_': 'Please check that this string has been correctly defined in your translations. A translation is defined as follows:',\n\t\t\t\t\t\t\t'_1': `\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tmonogatari.translation (\"YourLanguage\", {\n\t\t\t\t\t\t\t\t\t\t\"SomeString\": \"Your Translation\"\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t'_2': 'You may also want to check if the [data-string] property of the HTML elements above is correct or if they have a typo.',\n\t\t\t\t\t\t\t'Documentation': 'Internationalization'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tFancyError.show (\n\t\t\t\t'Language could not be found',\n\t\t\t\t`Monogatari attempted to translate the UI using the current language set in the preferences but no translations could be found\n\t\t\t\tfor it.`,\n\t\t\t\t{\n\t\t\t\t\t'Problematic Language': this.preference ('Language'),\n\t\t\t\t\t'You may have meant one of these': Object.keys (this._translations),\n\t\t\t\t\t'Help': {\n\t\t\t\t\t\t'_': 'Please check if you have defined correctly the translations for this language, translations are defined as follows:',\n\t\t\t\t\t\t'_1': `\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tmonogatari.translation (\"YourLanguage\", {\n\t\t\t\t\t\t\t\t\t\"SomeString\": \"Your Translation\"\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t`,\n\t\t\t\t\t\t'_2': 'You may also want to check if the value of your language selector is right:',\n\t\t\t\t\t\t'_3': `\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t${$_('[data-action=\"set-language\"]').value ()}\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t`,\n\t\t\t\t\t\t'Documentation': 'Internationalization'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * @static history - Simple function to access, create and modify history\n\t * objects. Each history is a simple array.\n\t *\n\t * @param {Object|string} [object = null] - Object with which current\n\t * history object will be updated with (i.e. Object.assign) or a string to access\n\t * a specific history. If a string is given and that history does not exists,\n\t * this method will create it for us.\n\t *\n\t * @return {type} - If the parameter passed was a string, this function will\n\t * return the history associated with that name. If no argument was passed,\n\t * it will return the whole history object containing all histories.\n\t */\n\tstatic history (object = null) {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\tif (typeof this._history[object] === 'undefined') {\n\t\t\t\t\tthis._history[object] = [];\n\t\t\t\t}\n\t\t\t\treturn this._history[object];\n\t\t\t} else {\n\t\t\t\tthis._history = Object.assign ({}, this._history, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._history;\n\t\t}\n\t}\n\n\t/**\n\t * @static state - Simple function to access, create and state variables.\n\t *\n\t * @param {Object|string} [object = null] - Object with which current\n\t * state object will be updated with (i.e. Object.assign) or a string to access\n\t * a specific state variable.\n\t *\n\t * @return {type} - If the parameter passed was a string, this function will\n\t * return the variable associated with that name. If no argument was passed,\n\t * it will return the whole state object containing all variables.\n\t */\n\tstatic state (object = null) {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn this._state[object];\n\t\t\t} else {\n\t\t\t\tconst oldState = Object.assign ({}, this._state);\n\t\t\t\tconst newState = merge (this._state, object);\n\n\t\t\t\tthis.trigger ('willUpdateState', {\n\t\t\t\t\toldState,\n\t\t\t\t\tnewState\n\t\t\t\t});\n\n\t\t\t\tthis._state = newState;\n\n\t\t\t\tthis.trigger ('didUpdateState', {\n\t\t\t\t\toldState,\n\t\t\t\t\tnewState: this._state\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._state;\n\t\t}\n\t}\n\n\t/**\n\t * @static registerAction - Register an Action to the actions list. All actions\n\t * should be registered before calling the init () method so their Mounting\n\t * cycle is done correctly.\n\t *\n\t * @param {Action} action - Action to register. Remember each action must\n\t * have an unique ID.\n\t */\n\tstatic registerAction (action, naturalPosition = false) {\n\t\taction.engine = this;\n\t\tif (naturalPosition) {\n\t\t\tthis._actions.push (action);\n\t\t} else {\n\t\t\tthis._actions.unshift (action);\n\t\t}\n\t}\n\n\t/**\n\t * @static unregisterAction - Removes an action from the actions list. Any\n\t * action you want to remove should be removed before calling the init ()\n\t * method so that their Mounting cycle is not executed.\n\t *\n\t * @param {string} action - ID of the Action to unregister. Remember each action must\n\t * have an unique ID.\n\t */\n\tstatic unregisterAction (action) {\n\t\tthis._actions = this._actions.filter ((a) => a.id.toLowerCase () !== action.toLowerCase ());\n\t}\n\n\t/**\n\t * @static actions - Returns the list of registered Actions.\n\t *\n\t * @return {Action[]} - List of registered Actions\n\t */\n\tstatic actions () {\n\t\treturn this._actions;\n\t}\n\n\t/**\n\t * @static action - Access to an specific action class\n\t *\n\t * @param {string} id - ID of the action you want to access to.\n\t * @return {Action} - Returns the action that matches the given ID\n\t */\n\tstatic action (id) {\n\t\treturn this._actions.find ((a) => a.id.toLowerCase () === id.toLowerCase ());\n\t}\n\n\t/**\n\t * @static registerComponent - Register a Component to the components list.\n\t * All components should be registered before calling the init () method so\n\t * their Mounting cycle is done correctly.\n\t *\n\t * @param {Component} component - Component to register. Remember each\n\t * component must have an unique ID.\n\t */\n\tstatic registerComponent (component) {\n\t\tconst alreadyRegistered = this._components.findIndex (c => c.tag === component.tag) > -1;\n\n\t\tif (typeof window.customElements.get (component.tag) !== 'undefined') {\n\t\t\tFancyError.show (\n\t\t\t\t`Unable to register component \"${component.tag}\"`,\n\t\t\t\t'Monogatari attempted to register a component but another component had already been registered for the same tag.',\n\t\t\t\t{\n\t\t\t\t\t'Component / Tag': component,\n\t\t\t\t\t'Help': {\n\t\t\t\t\t\t'_': 'Once a component for a tag has been registered and the setup has completed, it can not be replaced or removed. Try removing the conflicting component first:',\n\t\t\t\t\t\t'_1': `\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tmonogatari.unregisterComponent ('${component.tag}')\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t`,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tcomponent.engine = this;\n\n\t\tif (alreadyRegistered && !this.global ('_didSetup')) {\n\t\t\t// Remove the previous one\n\t\t\tthis.unregisterComponent (component.tag);\n\t\t} else if (!alreadyRegistered && this.global ('_didSetup')) {\n\t\t\twindow.customElements.define (component.tag, component);\n\t\t}\n\n\t\tthis._components.push (component);\n\t}\n\n\t/**\n\t * @static unregisterComponent - Removes a component from the components list.\n\t * Any component you want to remove should be removed before calling the\n\t * init () method so that their Mounting cycle is not executed.\n\t *\n\t * @param {string} component - ID of the Component to unregister. Remember\n\t * each component must have an unique ID.\n\t */\n\tstatic unregisterComponent (component) {\n\t\tif (!this.global ('_didSetup')) {\n\t\t\tthis._components = this._components.filter ((c) => c.tag.toLowerCase() !== component.toLowerCase());\n\t\t} else {\n\t\t\tFancyError.show (\n\t\t\t\t`Unable to unregister component \"${component}\"`,\n\t\t\t\t'Monogatari attempted to unregister a component but the setup had already happened.',\n\t\t\t\t{\n\t\t\t\t\t'Component': component,\n\t\t\t\t\t'Help': {\n\t\t\t\t\t\t'_': 'Components can only be unregistered before the setup step is completed.',\n\t\t\t\t\t\t'_1': 'Try performing this action before the monogatari.init () function is called.'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t}\n\n\t/**\n\t * @static components - Returns the list of registered Components.\n\t *\n\t * @return {Component[]} - List of registered Components\n\t */\n\tstatic components () {\n\t\treturn this._components;\n\t}\n\n\t/**\n\t * @static component - Access to an specific component class\n\t *\n\t * @param {string} id - ID of the component you want to access to.\n\t *\n\t * @return {Component} - Returns the component class that matches the ID\n\t */\n\tstatic component (id) {\n\t\tconst normalizedId = id.toLowerCase ();\n\n\t\treturn this.components ().find ((c) => c.tag === normalizedId);\n\t}\n\n\t/**\n\t * @static assets - Simple function to modify and access the assets object,\n\t * all declared assets such as audio, videos and images should be registered\n\t * in these objects.\n\t *\n\t * @param {string} [type = null] - The type of asset you are referring to\n\t * @param {Object} [object = null] - The key/value object to assign to that asset type\n\t *\n\t * @return {Object} - If this function is called with no arguments, the whole\n\t * assets object will be returned.\n\t */\n\tstatic assets (type = null, object = null) {\n\t\tif (type !== null && object !== null) {\n\t\t\tif (typeof this._assets[type] !== 'undefined') {\n\t\t\t\tthis._assets[type] = Object.assign ({}, this._assets[type], object);\n\t\t\t} else {\n\t\t\t\tthis._assets[type] = object;\n\t\t\t}\n\t\t} else if (type !== null) {\n\t\t\tif (typeof type === 'string') {\n\t\t\t\treturn this._assets[type];\n\t\t\t} else if (typeof type === 'object') {\n\t\t\t\tthis._assets = Object.assign ({}, this._assets, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._assets;\n\t\t}\n\t}\n\n\t/**\n\t * @static asset - Simple function to modify and access an specific asset\n\t * given its type and name\n\t *\n\t * @param {string} type - The type of asset you are referring to\n\t * @param {Object} name - The name or identifier of the asset you are trying\n\t * to access\n\t * @param {Object} [value = null] - The key/value object to assign to that\n\t * asset type\n\t *\n\t * @return {Object} - If this function is called with no arguments, the whole\n\t * assets object will be returned.\n\t */\n\tstatic asset (type, name, value = null) {\n\t\tif (typeof this._assets[type] !== 'undefined') {\n\t\t\tif (value !== null) {\n\t\t\t\tthis._assets[type][name] = value;\n\t\t\t} else {\n\t\t\t\treturn this._assets[type][name];\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.error (`Tried to interact with a non-existing asset type ${type}.`);\n\t\t}\n\t}\n\n\tstatic characters (object = null) {\n\t\tif (object !== null) {\n\t\t\t// const identifiers = Object.keys (object);\n\t\t\t// for (const id of identifiers) {\n\t\t\t// \tthis.character (id, object[id]);\n\t\t\t// }\n\t\t\tthis._characters = merge (this._characters, object);\n\t\t} else {\n\t\t\treturn this._characters;\n\t\t}\n\t}\n\n\tstatic character (id, object = null) {\n\t\tif (object !== null) {\n\t\t\tif (typeof this._characters[id] !== 'undefined') {\n\t\t\t\tthis._characters[id] = merge (this._characters[id], object);\n\t\t\t} else {\n\t\t\t\tthis._characters[id] = object;\n\t\t\t}\n\t\t} else {\n\t\t\tconst character = this._characters[id];\n\n\t\t\t// Translate the old character properties into the new ones\n\t\t\tif (typeof character !== 'undefined') {\n\t\t\t\tif (typeof character.Images === 'object') {\n\t\t\t\t\tcharacter.sprites = merge ({}, character.Images);\n\t\t\t\t\tdelete character.Images;\n\t\t\t\t}\n\n\t\t\t\tif (typeof character.Directory === 'string') {\n\t\t\t\t\tcharacter.directory = character.Directory;\n\t\t\t\t\tdelete character.Directory;\n\t\t\t\t}\n\n\t\t\t\tif (typeof character.Color === 'string') {\n\t\t\t\t\tcharacter.color = character.Color;\n\t\t\t\t\tdelete character.Color;\n\t\t\t\t}\n\n\t\t\t\tif (typeof character.Name === 'string') {\n\t\t\t\t\tcharacter.name = character.Name;\n\t\t\t\t\tdelete character.Name;\n\t\t\t\t}\n\n\t\t\t\tif (typeof character.Face === 'string') {\n\t\t\t\t\tcharacter.default_expression = character.Face;\n\t\t\t\t\tdelete character.Face;\n\t\t\t\t}\n\n\t\t\t\tif (typeof character.Side === 'object') {\n\t\t\t\t\tcharacter.expressions = character.Side;\n\t\t\t\t\tdelete character.Side;\n\t\t\t\t}\n\n\t\t\t\tif (typeof character.TypeAnimation === 'object') {\n\t\t\t\t\tcharacter.type_animation = character.TypeAnimation;\n\t\t\t\t\tdelete character.TypeAnimation;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn character;\n\t\t}\n\t}\n\n\tstatic languageMetadata (language, object = null) {\n\t\tif (typeof language !== 'undefined') {\n\t\t\tif (object !== null) {\n\t\t\t\tif (typeof this._languageMetadata[language] !== 'object') {\n\t\t\t\t\tthis._languageMetadata[language] = {};\n\t\t\t\t}\n\t\t\t\tthis._languageMetadata[language] = Object.assign ({}, this._languageMetadata[language], object);\n\t\t\t}\n\t\t\treturn this._languageMetadata[language];\n\t\t}\n\t\treturn this._languageMetadata;\n\t}\n\n\tstatic translations (object = null) {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn this._translations[object];\n\t\t\t} else {\n\t\t\t\tthis._translations = Object.assign ({}, this._translations, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._translations;\n\t\t}\n\t}\n\n\tstatic translation (language, strings) {\n\t\tif (typeof strings !== 'undefined') {\n\t\t\tif (typeof this._translations[language] !== 'undefined') {\n\t\t\t\tthis._translations[language] = Object.assign ({}, this._translations[language], strings);\n\t\t\t} else {\n\t\t\t\tthis._translations[language] = strings;\n\t\t\t}\n\t\t}\n\t\treturn this._translations[language];\n\t}\n\n\tstatic setting (key, value = null) {\n\t\tif (value !== null) {\n\t\t\tthis._settings[key] = value;\n\t\t} else {\n\t\t\tif (typeof this._settings[key] !== 'undefined') {\n\t\t\t\treturn this._settings[key];\n\t\t\t} else {\n\t\t\t\tthrow new Error (`Tried to access non existent setting with name '${key}'.`);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic settings (object = null) {\n\t\tif (object !== null) {\n\t\t\tthis._settings = merge (this._settings, object);\n\t\t} else {\n\t\t\treturn this._settings;\n\t\t}\n\t}\n\n\tstatic preference (key, value = null) {\n\t\tif (value !== null) {\n\t\t\tthis._preferences[key] = value;\n\t\t\tthis.Storage.update ('Settings', this._preferences);\n\t\t} else {\n\t\t\tif (typeof this._preferences[key] !== 'undefined') {\n\t\t\t\treturn this._preferences[key];\n\t\t\t} else {\n\t\t\t\tthrow new Error (`Tried to access non existent preference with name '${key}'.`);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic preferences (object = null, save = false) {\n\t\tif (object !== null) {\n\n\t\t\tthis._preferences = merge (this._preferences, object);\n\n\t\t\tif (this.Storage.configuration ().name === '') {\n\t\t\t\tthis.setupStorage ();\n\t\t\t}\n\n\t\t\tif (save === true) {\n\t\t\t\tthis.Storage.update ('Settings', this._preferences);\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._preferences;\n\t\t}\n\t}\n\n\t/**\n\t * Get or set the configuration.\n\t *\n\t * @param {string|object} key\n\t * @param {object} object\n\t */\n\tstatic configuration (key, object) {\n\t\tif (typeof key === 'string') {\n\t\t\tif (typeof object !== 'undefined') {\n\t\t\t\tthis.trigger ('configurationElementWillUpdate');\n\n\t\t\t\tthis.trigger (`configurationElementUpdate::${key}`, {\n\t\t\t\t\tnewConfiguration: object,\n\t\t\t\t\toldConfiguration: this._configuration[key]\n\t\t\t\t});\n\n\t\t\t\tif (typeof this._configuration[key] !== 'object' || this._configuration[key] === null) {\n\t\t\t\t\tthis._configuration[key] = {};\n\t\t\t\t}\n\n\t\t\t\tthis._configuration[key] = merge (this._configuration[key], object);\n\n\t\t\t\tthis.trigger ('configurationElementDidUpdate');\n\t\t\t}\n\t\t\treturn this._configuration[key];\n\t\t} else if (typeof key === 'object') {\n\t\t\tthis.trigger ('configurationWillUpdate');\n\t\t\tthis._configuration = merge (this._configuration, object);\n\t\t\tthis.trigger ('configurationDidUpdate');\n\t\t\treturn this._configuration;\n\t\t} else if (typeof key === 'undefined') {\n\t\t\treturn this._configuration;\n\t\t}\n\t}\n\n\tstatic status (object = null) {\n\t\tif (object !== null) {\n\t\t\tthis._status = Object.assign ({}, this._status, object);\n\t\t} else {\n\t\t\treturn this._status;\n\t\t}\n\t}\n\n\tstatic storage (object = null) {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn this._storage[object];\n\t\t\t} else {\n\t\t\t\tthis._storage = merge (this._storage, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._storage;\n\t\t}\n\t}\n\n\tstatic script (object = null) {\n\n\t\tif (typeof object === 'object' && object !== null) {\n\t\t\tthis._script = Object.assign ({}, this._script, object);\n\t\t} else {\n\t\t\tlet script = this._script;\n\n\t\t\tif (this.setting ('MultiLanguage') === true) {\n\t\t\t\tif (!Object.keys (script).includes (this.preference ('Language'))) {\n\t\t\t\t\t// First check if the label exists in the current script\n\t\t\t\t\tFancyError.show (\n\t\t\t\t\t\t`Script Language \"${this.preference ('Language')}\" Was Not Found`,\n\t\t\t\t\t\t'Monogatari attempted to retrieve the script for this language but it does not exists',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'Language Not Found': this.preference ('Language'),\n\t\t\t\t\t\t\t'MultiLanguage Setting': 'The Multilanguage Setting is set to '+ this.setting ('MultiLanguage'),\n\t\t\t\t\t\t\t'You may have meant one of these': Object.keys (script),\n\t\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t\t'_': 'If your game is not a multilanguage game, change the setting on your options.js file',\n\t\t\t\t\t\t\t\t'_1': `\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t\"MultiLanguage\": false,\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t'_2': 'If your game is a multilanguage game, please check that the language label is correctly written on your script. Remember a multilanguage script looks like this:',\n\t\t\t\t\t\t\t\t'_3': `\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tmonogatari.script ({\n\t\t\t\t\t\t\t\t\t\t\t'English': {\n\t\t\t\t\t\t\t\t\t\t\t\t'Start': [\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Hi, welcome to your first Visual Novel with Monogatari.'\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\t\t\t'EspaƱol': {\n\t\t\t\t\t\t\t\t\t\t\t\t'Start': [\n\t\t\t\t\t\t\t\t\t\t\t\t\t'Hola, bienvenido a tu primer Novela Visual con Monogatari'\n\t\t\t\t\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t'Documentation': 'Internationalization',\n\t\t\t\t\t\t\t\t'_4': `If ${this.preference ('Language')} should not be the default language, you can change that preference on your options.js file.`,\n\t\t\t\t\t\t\t\t'_5': `\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\t'Language': 'English',\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t`,\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tscript = script[this.preference ('Language')];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof object === 'string') {\n\t\t\t\tscript = script[object];\n\t\t\t}\n\n\t\t\treturn script;\n\t\t}\n\t}\n\n\tstatic label (key = null, language = null, value = null) {\n\t\tif (typeof language === 'string' && value !== null) {\n\t\t\tif (typeof this._script[language] !== 'object') {\n\t\t\t\tthis._script[language] = {};\n\t\t\t}\n\t\t\tthis._script[language][key] = value;\n\t\t} else if (typeof language === 'object' && language !== null && value === null) {\n\t\t\tif (typeof this._script[key] !== 'object') {\n\t\t\t\tthis._script[key] = [];\n\t\t\t}\n\t\t\tthis._script[key] = language;\n\t\t} else if (typeof language === 'string' && value === null) {\n\t\t\treturn this._script[language][key];\n\t\t} else if (key !== null) {\n\t\t\treturn this.script (key);\n\t\t} else {\n\t\t\treturn this.script (this.state ('label'));\n\t\t}\n\t}\n\n\tstatic fn (name, { apply = () => true, revert = () => true }) {\n\t\tif (typeof apply !== 'function' && typeof revert !== 'function') {\n\t\t\treturn this._functions [name];\n\t\t} else {\n\t\t\tthis._functions [name] = {\n\t\t\t\tapply,\n\t\t\t\trevert\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * Placeholders. Saves up an action (any kind of action) for later use within\n\t * the game in a key-value manner.\n\t *\n\t * @param {string} name - The name with which the action will be saved and later used\n\t * @param {any} value - The value (an action) to save up\n\t *\n\t * @returns {(any|void)} - The value of an action given its name, the whole\n\t * object if both params are missing and void if used for assigning the value.\n\t *\n\t */\n\tstatic $ (name, value) {\n\t\tif (typeof name === 'string') {\n\t\t\tif (typeof value !== 'undefined') {\n\t\t\t\tthis._$[name] = value;\n\t\t\t} else {\n\t\t\t\treturn this._$[name];\n\t\t\t}\n\t\t} else if (typeof name === 'object') {\n\t\t\tthis._$ = Object.assign ({}, this._$, name);\n\t\t} else if (typeof name === 'undefined') {\n\t\t\treturn this._$;\n\t\t}\n\t}\n\n\tstatic globals (object = null) {\n\t\tif (object !== null) {\n\t\t\tthis._globals = merge (this._globals, object);\n\t\t} else {\n\t\t\treturn this._globals;\n\t\t}\n\t}\n\n\tstatic global (key, value) {\n\t\tif (typeof value !== 'undefined') {\n\t\t\tthis._globals[key] = value;\n\t\t} else {\n\t\t\treturn this._globals[key];\n\t\t}\n\t}\n\n\tstatic template (key, value) {\n\t\tif (typeof value !== 'undefined') {\n\t\t\tthis._templates[key] = value;\n\t\t} else {\n\t\t\treturn this._templates[key];\n\t\t}\n\t}\n\n\tstatic mediaPlayers (key, object = false) {\n\t\tif (typeof key === 'string') {\n\t\t\tif (object) {\n\t\t\t\treturn this._mediaPlayers[key];\n\t\t\t} else {\n\t\t\t\treturn Object.values (this._mediaPlayers[key]);\n\t\t\t}\n\t\t}\n\t\treturn this._mediaPlayers;\n\t}\n\n\tstatic mediaPlayer (type, key, value) {\n\t\tif (typeof value === 'undefined') {\n\t\t\treturn this.mediaPlayers (type, true)[key];\n\t\t} else {\n\t\t\tvalue.dataset.type = type;\n\t\t\tvalue.dataset.key = key;\n\t\t\tthis._mediaPlayers[type][key] = value;\n\t\t\treturn this._mediaPlayers[type][key];\n\t\t}\n\t}\n\n\tstatic removeMediaPlayer (type, key) {\n\t\tif (typeof key === 'undefined') {\n\t\t\tfor (const mediaKey of Object.keys (this.mediaPlayers (type, true))) {\n\t\t\t\tthis._mediaPlayers[type][mediaKey].pause ();\n\t\t\t\tthis._mediaPlayers[type][mediaKey].setAttribute ('src', '');\n\t\t\t\tthis._mediaPlayers[type][mediaKey].currentTime = 0;\n\t\t\t\tdelete this._mediaPlayers[type][mediaKey];\n\t\t\t}\n\t\t} else {\n\t\t\tif (typeof this._mediaPlayers[type][key] !== 'undefined') {\n\t\t\t\tthis._mediaPlayers[type][key].pause ();\n\t\t\t\tthis._mediaPlayers[type][key].setAttribute ('src', '');\n\t\t\t\tthis._mediaPlayers[type][key].currentTime = 0;\n\t\t\t\tdelete this._mediaPlayers[type][key];\n\t\t\t}\n\n\t\t}\n\t}\n\n\tstatic temp (key, value) {\n\t\tif (typeof value !== 'undefined') {\n\t\t\tthis._temp[key] = value;\n\t\t} else {\n\t\t\tconst value = this._temp[key];\n\t\t\tdelete this._temp[key];\n\t\t\treturn value;\n\t\t}\n\t}\n\n\t/**\n\t * Localize every element with a data-string property using the translations\n\t * available. If no translation is found for the current language, the current\n\t * text of the element will be kept.\n\t */\n\tstatic localize () {\n\t\tthis.trigger ('willLocalize');\n\n\t\t// Setup the correct locale for the momentjs dates\n\t\tmoment.locale (this._languageMetadata[this.preference ('Language').code]);\n\n\t\tthis.element ().find ('[data-string]').each ((element) => {\n\t\t\tconst string_translation = this.string ($_(element).data ('string'));\n\n\t\t\t// Check if the translation actually exists and is not empty before\n\t\t\t// replacing the text.\n\t\t\tif (typeof string_translation !== 'undefined' && string_translation !== '') {\n\t\t\t\t$_(element).text (string_translation);\n\t\t\t}\n\t\t});\n\t\tthis.trigger ('didLocalize');\n\t}\n\n\t/**\n\t * Preload game assets\n\t */\n\tstatic preload () {\n\t\tconst promises = [];\n\n\t\t// Check if asset preloading is enabled. Preloading will not be done in\n\t\t// electron or cordova since the assets are expected to be available\n\t\t// locally.\n\t\tif (this.setting ('Preload') && !Platform.electron () && !Platform.cordova () && location.protocol.indexOf ('file') < 0) {\n\t\t\tthis.trigger ('willPreloadAssets');\n\n\t\t\t// Iterate over every asset category: music, videos, scenes etc.\n\t\t\tfor (const category of Object.keys (this.assets ())) {\n\t\t\t\t// Iterate over every key on each category\n\t\t\t\tfor (const asset of Object.values (this.assets (category))) {\n\t\t\t\t\tif (typeof asset !== 'string') {\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\t\t\t\t\t// Get the directory from where to load this asset\n\t\t\t\t\tconst directory = `${this.setting ('AssetsPath').root}/${this.setting ('AssetsPath')[category]}`;\n\n\t\t\t\t\tif (FileSystem.isImage (asset)) {\n\n\t\t\t\t\t\tpromises.push (Preload.image (`${directory}/${asset}`).then (() => {\n\t\t\t\t\t\t\tthis.trigger ('assetLoaded', {\n\t\t\t\t\t\t\t\tname: asset,\n\t\t\t\t\t\t\t\ttype: 'image',\n\t\t\t\t\t\t\t\tcategory\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tpromises.push (Preload.file (`${directory}/${asset}`).then (() => {\n\t\t\t\t\t\t\tthis.trigger ('assetLoaded', {\n\t\t\t\t\t\t\t\tname: asset,\n\t\t\t\t\t\t\t\ttype: 'file',\n\t\t\t\t\t\t\t\tcategory\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.trigger ('assetQueued');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (const key in this.characters ()) {\n\t\t\t\tconst character = this.character (key);\n\t\t\t\tlet directory = '';\n\n\t\t\t\t// Check if the character has a directory defined where its images\n\t\t\t\t// are located\n\t\t\t\tif (typeof character.directory !== 'undefined') {\n\t\t\t\t\tdirectory = character.directory + '/';\n\t\t\t\t}\n\t\t\t\tdirectory = `${this.setting ('AssetsPath').root}/${this.setting ('AssetsPath').characters}/${directory}`;\n\n\t\t\t\tif (typeof character.sprites !== 'undefined') {\n\t\t\t\t\tfor (const image of Object.values (character.sprites)) {\n\t\t\t\t\t\tif (typeof image !== 'string') {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpromises.push (Preload.image (`${directory}${image}`).then (() => {\n\t\t\t\t\t\t\tthis.trigger ('assetLoaded', {\n\t\t\t\t\t\t\t\tname: image,\n\t\t\t\t\t\t\t\ttype: 'image',\n\t\t\t\t\t\t\t\tcategory: 'characters'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (typeof character.expressions !== 'undefined') {\n\t\t\t\t\tfor (const image of Object.values (character.expressions)) {\n\t\t\t\t\t\tif (typeof image !== 'string') {\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tpromises.push (Preload.image (`${directory}${image}`).then (() => {\n\t\t\t\t\t\t\tthis.trigger ('assetLoaded', {\n\t\t\t\t\t\t\t\tname: image,\n\t\t\t\t\t\t\t\ttype: 'image',\n\t\t\t\t\t\t\t\tcategory: 'characters'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}));\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (typeof character.default_expression === 'string') {\n\t\t\t\t\tpromises.push (Preload.image (`${directory}${character.default_expression}`).then (() => {\n\t\t\t\t\t\tthis.trigger ('assetLoaded', {\n\t\t\t\t\t\t\tname: character.default_expression,\n\t\t\t\t\t\t\ttype: 'image',\n\t\t\t\t\t\t\tcategory: 'characters'\n\t\t\t\t\t\t});\n\t\t\t\t\t}));\n\t\t\t\t}\n\n\t\t\t\tthis.trigger ('assetQueued');\n\t\t\t}\n\n\t\t\treturn Promise.all (promises).then (() => {\n\t\t\t\tthis.trigger ('didPreloadAssets');\n\t\t\t\treturn Promise.resolve ();\n\t\t\t});\n\t\t} else {\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t}\n\n\t/**\n\t * @static translate - This method will try to translate parts of a string\n\t * using the translation strings available. Any string containing a format\n\t * like this one: \"_(SomeKey)\" will get that replaced with the translated\n\t * string of that key.\n\t *\n\t * @param {string} statement - String to translate.\n\t *\n\t * @returns {string} - The translated string\n\t */\n\tstatic translate (statement) {\n\t\t// Find all elements in the string that match the \"_(key)\" format\n\t\tconst matches = statement.match (/_\\(\\S+\\)/g);\n\n\t\t// Check if any matches were found, if not then no translation is needed\n\t\tif (matches !== null) {\n\t\t\t// Go through all the found matches so we can get the string it maps to\n\t\t\tfor (const match of matches) {\n\t\t\t\t// Remove the _() from the key\n\t\t\t\tconst path = match.replace ('_(', '').replace (')', '').split ('.');\n\n\t\t\t\t// Retrieve the string from the translations using the given key\n\t\t\t\tlet data = this.translations (this.preference ('Language'))[path[0]];\n\n\t\t\t\tfor (let j = 1; j < path.length; j++) {\n\t\t\t\t\tdata = data[path[j]];\n\t\t\t\t}\n\t\t\t\tstatement = statement.replace (match, data);\n\t\t\t}\n\t\t}\n\t\treturn statement;\n\t}\n\n\t/**\n\t * @static replaceVariables - Recursively replace all occurrences of\n\t * {{variable_name}} with the actual value for that variable name on the\n\t * storage object.\n\t *\n\t * @param {string} statement - The text where to interpolate the variables\n\t *\n\t * @returns {string} - The text with the interpolated variables\n\t */\n\tstatic replaceVariables (statement) {\n\t\tstatement = this.translate (statement);\n\t\tconst matches = statement.match (/{{\\S+?}}/g);\n\t\tif (matches !== null) {\n\t\t\tfor (const match of matches) {\n\t\t\t\tconst path = match.replace ('{{', '').replace ('}}', '').split ('.');\n\n\t\t\t\tlet data = this.storage ();\n\n\t\t\t\tfor (let j = 0; j < path.length; j++) {\n\t\t\t\t\tconst name = path[j];\n\t\t\t\t\tif (name in data) {\n\t\t\t\t\t\tdata = data[name];\n\t\t\t\t\t} else {\n\t\t\t\t\t\tFancyError.show (\n\t\t\t\t\t\t\t`Variable \"${match}\" does not exists in your storage`,\n\t\t\t\t\t\t\t'Monogatari attempted to interpolate a variable from your storage but it doesn\\'t exists.',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'Script Statement': statement,\n\t\t\t\t\t\t\t\t'Part Not Found': name,\n\t\t\t\t\t\t\t\t'Variables Available in Storage': Object.keys (data),\n\t\t\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t\t\t'_': 'Please check your storage object and make sure the variable you are using exists.',\n\t\t\t\t\t\t\t\t\t'_1': 'You should also make sure that there is no typo in your script and that the variable names in your script and storage match.',\n\t\t\t\t\t\t\t\t\t'Documentation': 'Storage'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn '';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tstatement = statement.replace (match, data);\n\t\t\t}\n\t\t\treturn this.replaceVariables (statement);\n\t\t}\n\t\treturn statement;\n\t}\n\n\t/**\n\t * @static getMaxSlotId - Get the highest ID currently assigned to a slot on\n\t * the storage.\n\t *\n\t * Each slot identifier has two parts i.e SaveLabel_{number}, it's label,\n\t * defined by the 'SaveLabel' and 'AutoSaveLabel' configuration variables and\n\t * a number similar to an auto-incrementing ID on a database. This function\n\t * is used to retrieve the highest number assigned to a slot, given its\n\t * label prefix.\n\t *\n\t * @param {string} prefix - The Slot prefix from where to retrieve the numeric ID,\n\t * should be the value of either the 'SaveLabel' or 'AutoSaveLabel' configuration\n\t * variables.\n\t *\n\t * @returns {int} - Highest available ID number\n\t */\n\tstatic getMaxSlotId (prefix = 'SaveLabel') {\n\t\treturn this.Storage.keys ().then ((keys) => {\n\t\t\tlet max = 1;\n\t\t\tfor (const saveKey of keys) {\n\t\t\t\tif (saveKey.indexOf (this.setting (prefix)) === 0) {\n\t\t\t\t\tconst number = parseInt(saveKey.split (this.setting (prefix) + '_')[1]);\n\t\t\t\t\tif (number > max) {\n\t\t\t\t\t\tmax = number;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn max;\n\t\t});\n\t}\n\n\t/**\n\t * @static saveTo - Save the current game state into a given Slot\n\t *\n\t * @param {string} [prefix = 'SaveLabel'] - The prefix label to be used for the\n\t * slot. Should be either 'SaveLabel' or 'AutoSaveLabel'.\n\t * @param {int} [id = null] - The numeric ID to be used for the slot. If none\n\t * is given, it will be determined using the getMaxSlotId function and upping\n\t * it by 1\n\t * @param {string} [name = null] - The name given by the player to the slot. If none is\n\t * given, the current date will be used\n\t *\n\t * @returns {Promise} - The promise of the save operation\n\t */\n\tstatic saveTo (prefix = 'SaveLabel', id = null, name = null) {\n\t\t// Check if the player is actually playing\n\t\tif (this.global ('playing')) {\n\t\t\tconst date = moment ().format ();\n\n\t\t\tif (name === null || name.trim () === '') {\n\t\t\t\tname = date;\n\t\t\t}\n\n\t\t\t// We have to get the last ID available for the slots\n\t\t\treturn this.getMaxSlotId (prefix).then ((max) => {\n\n\t\t\t\t// Make it the next one to the max\n\t\t\t\tif (id === null) {\n\t\t\t\t\tid = max + 1;\n\t\t\t\t}\n\n\t\t\t\tlet image = '';\n\n\t\t\t\tif (this.state ('scene')) {\n\t\t\t\t\timage = this.state ('scene').split (' ')[2];\n\t\t\t\t} else if (this.state ('background')) {\n\t\t\t\t\timage = this.state ('background').split (' ')[2];\n\t\t\t\t}\n\n\t\t\t\treturn this.Storage.set (`${this.setting (prefix)}_${id}`, {\n\t\t\t\t\tname,\n\t\t\t\t\tdate,\n\t\t\t\t\timage,\n\t\t\t\t\tgame: this.object ()\n\t\t\t\t}).then ((response) => {\n\t\t\t\t\tif (response instanceof Response) {\n\t\t\t\t\t\treturn Promise.resolve (response.json ());\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Promise.resolve (response);\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t}\n\n\t/**\n\t * @static assertAsync - This function will run any function asynchronously\n\t * regardless of if the function to be run is async or not.\n\t *\n\t * @param {function} callable - The function to run\n\t * @param {Object} [self=null] - The reference to `this` in the function\n\t * @param {any[]} [args=null] - The arguments with which to call the function\n\t *\n\t * @returns {Promise} - Resolves if the function returned true and rejects if\n\t * the function returned false.\n\t */\n\tstatic assertAsync (callable, self = null, args = null) {\n\t\tconst originalBlockValue = this.global ('block');\n\n\t\tthis.global ('block', true);\n\t\treturn new Promise (function (resolve, reject) {\n\t\t\tconst result = callable.apply(self, args);\n\t\t\t// Check if the function returned a simple boolean\n\t\t\t// if the return value is true, the game will continue\n\t\t\tif (typeof result === 'boolean') {\n\t\t\t\tif (result) {\n\t\t\t\t\tresolve ();\n\t\t\t\t} else {\n\t\t\t\t\treject ();\n\t\t\t\t}\n\t\t\t} else if (typeof result === 'object') {\n\t\t\t\t// Check if the result was a promise\n\t\t\t\tif (typeof result.then != 'undefined') {\n\n\t\t\t\t\tresult.then(function (value) {\n\t\t\t\t\t\tif (typeof value === 'boolean') {\n\t\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\t\tresolve ();\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\treject ();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tresolve ();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\treject ();\n\t\t\t}\n\t\t}).finally (() => {\n\t\t\tthis.global ('block', originalBlockValue);\n\t\t});\n\t}\n\n\t/**\n\t * @static next - Advance to the next statement on the script\n\t *\n\t * @returns {void}\n\t */\n\tstatic next () {\n\t\t// Advance 1 step\n\t\tthis.state ({\n\t\t\tstep: this.state ('step') + 1\n\t\t});\n\n\t\treturn new Promise ((resolve, reject) => {\n\t\t\t// Clear the Stack using a Time Out instead of calling the function\n\t\t\t// directly, preventing an Overflow\n\t\t\tsetTimeout ((...params) => {\n\t\t\t\tthis.run.call (Monogatari, ...params).then (() => {\n\t\t\t\t\tthis.global ('_engine_block', false);\n\t\t\t\t\tresolve ();\n\t\t\t\t}).catch (() => {\n\t\t\t\t\tresolve ();\n\t\t\t\t});\n\t\t\t}, 0, this.label ()[this.state ('step')]);\n\t\t});\n\t}\n\n\t/**\n\t * @static revert - Revert to the previous statement on the script\n\t *\n\t * @returns {void}\n\t */\n\tstatic previous () {\n\t\treturn new Promise ((resolve, reject) => {\n\t\t\tsetTimeout (() => {\n\t\t\t\tthis.revert.call (Monogatari). then (() => {\n\t\t\t\t\tthis.global ('_engine_block', false);\n\t\t\t\t\tresolve ();\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tthis.debug.log ('Revert was prevented.\\n', e);\n\t\t\t\t\tthis.global ('_engine_block', false);\n\t\t\t\t\t// The game could not be reverted, either because an\n\t\t\t\t\t// action prevented it or because there are no statements\n\t\t\t\t\t// left to revert to.\n\n\t\t\t\t\tif (this.state ('step') > 0) {\n\t\t\t\t\t\tthis.state ({\n\t\t\t\t\t\t\tstep: this.state ('step') - 1\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.proceed ({ userInitiated: false, skip: false, autoPlay: false }).then (() => {\n\t\t\t\t\t\tresolve ();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}, 0);\n\t\t});\n\t\t// return Promise.resolve ();\n\t}\n\n\tstatic resetGame () {\n\n\t\t// Stop autoplay\n\t\tthis.autoPlay (false);\n\t\tif (this.setting ('Skip') > 0) {\n\t\t\tthis.skip (false);\n\t\t}\n\n\t\t// Reset Storage\n\t\tthis.storage (JSON.parse(this.global ('storageStructure')));\n\n\t\t// Reset Conditions\n\t\tthis.state ({\n\t\t\tstep: 0,\n\t\t\tlabel: this.setting ('Label')\n\t\t});\n\n\t\tthis.global ('block', false);\n\n\t\t// Reset History\n\t\tfor (const history of Object.keys (this._history)) {\n\t\t\tthis._history[history] = [];\n\t\t}\n\n\t\t// Run the reset method of all the actions so each of them can reset\n\t\t// their own elements correctly\n\t\tconst promises = [];\n\n\t\tfor (const action of this.actions ()) {\n\t\t\tpromises.push (action.reset ());\n\t\t}\n\n\t\tfor (const component of this.components ()) {\n\t\t\tpromises.push (component.onReset ());\n\t\t}\n\n\t\treturn Promise.all (promises);\n\t}\n\n\t/**\n\t * @static keyBoardShortcut - Register a new callback for a custom keyboard\n\t * shortcut\n\t *\n\t * @param {string|Array} shortcut - Sequence of keys that represent\n\t * the shortcut\n\t * @param {function} callback - The function to run when that sequence of keys\n\t * is pressed\n\t *\n\t * @returns {void}\n\t */\n\tstatic keyboardShortcut (shortcut, callback) {\n\t\tthis.debug.log (`Binding Keyboard Shortcut: ${shortcut}`);\n\t\tmousetrap.bind (shortcut, (event) => {\n\t\t\tif (event.target.tagName.toLowerCase () != 'input') {\n\t\t\t\tevent.preventDefault ();\n\t\t\t\tcallback.call (null, event);\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic upgrade (oldVersion, newVersion, callbacks) {\n\t\tthis._upgrade[`${oldVersion}::${newVersion}`] = callbacks;\n\t}\n\n\tstatic setupStorage () {\n\t\t// Check if an Adapter has been set or else, the global local storage\n\t\t// object will be used\n\t\tif (this.setting ('Storage').Adapter.trim () !== '') {\n\t\t\tlet adapter;\n\t\t\tconst props = {};\n\n\t\t\tswitch (this.setting ('Storage').Adapter) {\n\t\t\t\tcase 'LocalStorage':\n\t\t\t\t\tadapter = SpaceAdapter.LocalStorage;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'SessionStorage':\n\t\t\t\t\tadapter = SpaceAdapter.SessionStorage;\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'IndexedDB':\n\t\t\t\t\tadapter = SpaceAdapter.IndexedDB;\n\t\t\t\t\tprops.keyPath = 'id';\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase 'RemoteStorage':\n\t\t\t\t\tadapter = SpaceAdapter.RemoteStorage;\n\t\t\t\t\tprops.headers = {\n\t\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t\t};\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tadapter = SpaceAdapter.LocalStorage;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (window.navigator && !Platform.electron () && !Platform.cordova ()) {\n\t\t\t\tif (window.navigator.storage && window.navigator.storage.persist) {\n\t\t\t\t\twindow.navigator.storage.persist ().then ((persisted) => {\n\t\t\t\t\t\tif (persisted !== true) {\n\t\t\t\t\t\t\tconsole.warn ('Persistent Storage permission has been denied. When your device gets low on storage, it may choose to delete your game files.');\n\t\t\t\t\t\t}\n\t\t\t\t\t}).catch ((error) => {\n\t\t\t\t\t\tconsole.error (error);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.Storage = new Space (adapter, {\n\t\t\t\tname: Text.friendly (this.setting ('Name')),\n\t\t\t\tversion: this.setting ('Version'),\n\t\t\t\tstore: this.setting ('Storage').Store,\n\t\t\t\tendpoint: this.setting ('Storage').Endpoint,\n\t\t\t\tprops,\n\t\t\t});\n\t\t}\n\n\t\t// Setup all the upgrade functions\n\t\tfor (const upgrade of Object.keys (this._upgrade)) {\n\t\t\tconst [oldVersion, newVersion] = upgrade.split ('::');\n\t\t\tconst callback = this._upgrade[upgrade].storage;\n\n\t\t\tthis.Storage.upgrade (oldVersion, newVersion, callback);\n\t\t}\n\t}\n\n\tstatic registerListener (name, listener, replace = false) {\n\t\tlistener.name = name;\n\t\tif (replace === true) {\n\t\t\tconst index = this._listeners.findIndex (listener => listener.name === name);\n\n\t\t\tif (index > -1) {\n\t\t\t\tthis._listeners[index] = listener;\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\t// If a listener is registered post-bind, we want to register the keyboard\n\t\t// shortcut as well or else it will not happen automatically\n\t\tif (this.global ('_didBind') === true && listener.keys) {\n\t\t\tthis.keyboardShortcut (listener.keys, listener.callback);\n\t\t}\n\n\t\tthis._listeners.push (listener);\n\t}\n\n\tstatic unregisterListener (name) {\n\t\tconst listener = this._listeners.find((l) => l.name.toLowerCase () === name.toLowerCase ());\n\n\t\tif (listener) {\n\t\t\tif (listener.keys) {\n\t\t\t\tthis.debug.log (`Unbinding Keys: ${listener.keys}`);\n\t\t\t\tmousetrap.unbind (listener.keys);\n\t\t\t}\n\t\t\tthis._listeners = this._listeners.filter((l) => l.name.toLowerCase () !== name.toLowerCase ());\n\t\t}\n\t}\n\n\tstatic runListener (name, element = null, event = null) {\n\t\tconst promises = [];\n\n\t\t// Check if the click event happened on a path of an icon.\n\t\t// This fixes a bug with font-awesome icons being clicked but the\n\t\t// click being registered at an inner path instead of the svg element\n\t\t// that holds the data information\n\t\tif (element) {\n\t\t\tif (element.matches ('path')) {\n\t\t\t\telement = element.closest ('[data-action]');\n\n\t\t\t\tif (element.length > 0) {\n\t\t\t\t\tname = element.data ('action');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tfor (const listener of this._listeners) {\n\t\t\tif (listener.name === name) {\n\t\t\t\tpromises.push (Util.callAsync (listener.callback , Monogatari, element, event).then ((data) => {\n\t\t\t\t\tif (data) {\n\t\t\t\t\t\treturn Promise.resolve ();\n\t\t\t\t\t}\n\t\t\t\t\treturn Promise.reject ();\n\t\t\t\t}));\n\t\t\t\tthis.debug.debug ('Running Listener', name);\n\t\t\t}\n\t\t}\n\n\t\tPromise.all (promises).catch ((e) => {\n\t\t\tevent.stopImmediatePropagation ();\n\t\t\tevent.stopPropagation ();\n\t\t\tevent.preventDefault ();\n\t\t\tthis.debug.debug ('Listener Event Propagation Stopped', e);\n\t\t});\n\t}\n\n\t/**\n\t * @static object - Get all the relevant information of the game state\n\t *\n\t * @returns {Object} - An object containing the current histories, state and\n\t * storage variables.\n\t * @returns {Object} history - The full history object\n\t * @returns {Object} state - The full state object\n\t * @returns {Object} storage- The full storage object\n\t */\n\tstatic object () {\n\t\treturn {\n\t\t\thistory: this.history (),\n\t\t\tstate: this.state (),\n\t\t\tstorage: this.storage ()\n\t\t};\n\t}\n\n\tstatic prepareAction (statement, { cycle }) {\n\t\tif (typeof statement === 'function') {\n\t\t\treturn statement;\n\t\t}\n\n\t\tlet action;\n\t\tlet interpolatedStatement;\n\n\t\t// Use the correct matching function (matchString or matchObject)\n\t\t// depending on the type of the current statement. If the statement\n\t\t// is a pure js function, it won't be reverted since we don't\n\t\t// know what to do to revert it.\n\t\tif (typeof statement === 'string') {\n\t\t\tinterpolatedStatement = this.replaceVariables (statement).split (' ');\n\n\t\t\t// Check if it matches using the matchString method\n\t\t\taction = this.actions ().find (a => a.matchString (interpolatedStatement));\n\t\t} else if (typeof statement === 'object' && statement !== null) {\n\n\t\t\t// Check if it matches using the matchObject method\n\t\t\taction = this.actions ().find (a => a.matchObject (statement));\n\t\t}\n\n\t\tif (typeof action !== 'undefined') {\n\t\t\tconst act = new action (typeof statement === 'string' ? interpolatedStatement : statement);\n\n\t\t\t// The original statement is set just in case the action needs\n\t\t\t// access to it\n\t\t\tact._setStatement (statement);\n\n\t\t\t// The current cycle is also set just in case the action needs to\n\t\t\t// know what cycle it's currently being performed.\n\t\t\tact._setCycle (cycle);\n\n\t\t\t// Monogatari is set as the context of the action so that it can\n\t\t\t// access all its functionalities\n\t\t\tact.setContext (this);\n\n\t\t\treturn act;\n\t\t}\n\n\t\treturn null;\n\t}\n\n\t/**\n\t * @static revert - This is the function that allows to go back in the game\n\t * by reverting the statements played.\n\t *\n\t * @returns {Promise} - Whether the game was able to go back or not\n\t */\n\tstatic revert (statement = null, shouldAdvance = true, shouldStepBack = true) {\n\n\t\tconst before = [];\n\n\t\tfor (const action of this.actions ()) {\n\t\t\tbefore.push (action.beforeRevert ({ advance: shouldAdvance, step: shouldStepBack }));\n\t\t}\n\n\t\treturn Promise.all (before).then (() => {\n\t\t\tthis.debug.groupCollapsed ('Revert Cycle');\n\n\t\t\t// Check if we have steps behind us to revert to. If there aren't, then\n\t\t\t// we can't revert since we are already at the first statement.\n\t\t\tlet actionToRevert = null;\n\n\t\t\tif (statement !== null) {\n\t\t\t\tactionToRevert = statement;\n\t\t\t} else if (this.state ('step') >= 1) {\n\t\t\t\tactionToRevert = this.label ()[this.state ('step') - 1];\n\t\t\t} else {\n\t\t\t\tconst jump = [...this.history ('jump')].reverse ().find (o => {\n\t\t\t\t\treturn o.destination.label === this.state ('label') && o.destination.step === 0;\n\t\t\t\t});\n\n\t\t\t\tif (typeof jump !== 'undefined') {\n\t\t\t\t\tthis.state ({\n\t\t\t\t\t\tlabel: jump.source.label,\n\t\t\t\t\t\tstep: jump.source.step\n\t\t\t\t\t});\n\t\t\t\t\tactionToRevert = this.label ()[this.state ('step')];\n\t\t\t\t\tthis.debug.debug ('Will revert to previous label.');\n\t\t\t\t} else {\n\t\t\t\t\tthis.debug.debug ('Will not revert since this is the beginning of the game.');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Don't allow null as a valid statement\n\t\t\tif (actionToRevert === null) {\n\t\t\t\t// Clear the Stack using a Time Out instead of calling\n\t\t\t\t// the function directly, preventing an Overflow\n\t\t\t\tsetTimeout ((...params) => {\n\t\t\t\t\tthis.run.call (Monogatari, ...params);\n\t\t\t\t}, 0, this.label ()[this.state ('step')]);\n\t\t\t\tthis.debug.trace ();\n\t\t\t\tthis.debug.groupEnd ();\n\n\t\t\t\treturn Promise.resolve ();\n\t\t\t}\n\n\t\t\tconst action = this.prepareAction (actionToRevert, { cycle: 'Revert' });\n\n\t\t\tif (action === null) {\n\t\t\t\tthis.debug.trace ();\n\t\t\t\tthis.debug.groupEnd ();\n\t\t\t\treturn Promise.reject ('The action did not match any of the ones registered.');\n\t\t\t}\n\n\t\t\t// If the statement is a pure js function, it won't be reverted since we don't\n\t\t\t// know what to do to revert it.\n\t\t\tif (typeof action === 'function') {\n\t\t\t\tthis.debug.trace ();\n\t\t\t\tthis.debug.groupEnd ();\n\t\t\t\treturn Promise.reject ();\n\t\t\t}\n\n\t\t\tthis.debug.debug ('Reverting Action', actionToRevert);\n\n\t\t\tthis.trigger ('willRevertAction', { action });\n\n\t\t\t// Run the willRevert method of the action first. This method\n\t\t\t// is usually used to tell whether an action can be reverted\n\t\t\t// or not.\n\t\t\treturn action.willRevert ().then (() => {\n\t\t\t\tthis.debug.debug ('Action Will Revert');\n\t\t\t\t// If it can be reverted, then run the revert method\n\t\t\t\treturn action.revert ().then (() => {\n\t\t\t\t\tthis.debug.debug ('Action Reverting');\n\t\t\t\t\t// If the reversion was successful, run the didRevert\n\t\t\t\t\t// function. The action will return a boolean (shouldContinue)\n\t\t\t\t\t// specifying if the game should go ahead and revert\n\t\t\t\t\t// the previous statement as well or if it should\n\t\t\t\t\t// wait instead\n\t\t\t\t\treturn action.didRevert ().then (({ advance, step }) => {\n\t\t\t\t\t\tthis.debug.debug ('Action Did Revert');\n\n\t\t\t\t\t\tthis.trigger ('didRevertAction', { action });\n\n\t\t\t\t\t\tconst promises = [];\n\n\t\t\t\t\t\tfor (const action of this.actions ()) {\n\t\t\t\t\t\t\tpromises.push (action.afterRevert ({ advance, step }));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn Promise.all (promises).then (() => {\n\t\t\t\t\t\t\t// Since we reverted correctly, the step should\n\t\t\t\t\t\t\t// go back.\n\t\t\t\t\t\t\tif (step === true && shouldStepBack === true) {\n\t\t\t\t\t\t\t\tthis.state ({\n\t\t\t\t\t\t\t\t\tstep: this.state ('step') - 1\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t// Revert the previous statement if the action\n\t\t\t\t\t\t\t// told us to.\n\t\t\t\t\t\t\tif (advance === true && shouldAdvance === true) {\n\t\t\t\t\t\t\t\t// Clear the Stack using a Time Out instead\n\t\t\t\t\t\t\t\t// of calling the function directly, preventing\n\t\t\t\t\t\t\t\t// an Overflow\n\t\t\t\t\t\t\t\tsetTimeout ((...params) => {\n\t\t\t\t\t\t\t\t\tthis.revert.call (Monogatari, ...params);\n\t\t\t\t\t\t\t\t}, 0);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tthis.debug.trace ();\n\t\t\t\t\t\t\tthis.debug.groupEnd ();\n\t\t\t\t\t\t\treturn Promise.resolve ({ advance, step });\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}).catch ((e) => {\n\t\t\t\tif (typeof e === 'object' || typeof e === 'string') {\n\t\t\t\t\tconsole.error (e);\n\t\t\t\t}\n\t\t\t\t// Clear the Stack using a Time Out instead of calling\n\t\t\t\t// the function directly, preventing an Overflow\n\t\t\t\tsetTimeout ((...params) => {\n\t\t\t\t\tthis.run.call (Monogatari, ...params);\n\t\t\t\t}, 0, this.label ()[this.state ('step')]);\n\n\t\t\t\tthis.debug.trace ();\n\t\t\t\tthis.debug.groupEnd ();\n\n\t\t\t\treturn Promise.resolve ();\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * @static run - Run a specified statement.\n\t *\n\t * @param {string|Object|function} statement - The Monogatari statement to run\n\t * @param {boolean} advance - Whether the game should advance or wait for user\n\t * interaction. This parameter is mainly used to prevent the game from advancing\n\t * when loading the game or performing some actions and we don't want them to\n\t * affect the game flow.\n\t *\n\t * @returns {Promise} - Resolves if the statement was run correctly or rejects\n\t * if it couldn't be run correctly.\n\t */\n\tstatic run (statement, shouldAdvance = true) {\n\n\t\tconst before = [];\n\n\t\tfor (const action of this.actions ()) {\n\t\t\tbefore.push (action.beforeRun ({ advance: shouldAdvance }));\n\t\t}\n\n\t\treturn Promise.all (before).then (() => {\n\t\t\tthis.debug.groupCollapsed ('Run Cycle');\n\n\t\t\t// Don't allow null as a valid statement\n\t\t\tif (statement === null) {\n\t\t\t\tthis.debug.trace ();\n\t\t\t\tthis.debug.groupEnd ();\n\t\t\t\treturn Promise.reject ('Statement was null.');\n\t\t\t}\n\n\t\t\tthis.debug.debug ('Running Action', statement);\n\n\n\t\t\tconst action = this.prepareAction (statement, { cycle: 'Application' });\n\n\t\t\tif (action === null) {\n\t\t\t\tthis.debug.trace ();\n\t\t\t\tthis.debug.groupEnd ();\n\t\t\t\treturn Promise.reject ('The action did not match any of the ones registered.');\n\t\t\t}\n\n\t\t\tif (typeof action === 'function') {\n\t\t\t\t// Block the game while the function is being run\n\t\t\t\tthis.global ('block', true);\n\n\t\t\t\t// Run the function asynchronously and after it has run, unblock\n\t\t\t\t// the game so it can continue.\n\t\t\t\treturn Util.callAsync (statement, Monogatari).then ((returnValue) => {\n\t\t\t\t\tthis.global ('block', false);\n\t\t\t\t\tif (shouldAdvance && returnValue !== false) {\n\t\t\t\t\t\tthis.debug.trace ();\n\t\t\t\t\t\tthis.debug.groupEnd ();\n\t\t\t\t\t\treturn this.next ();\n\t\t\t\t\t}\n\n\t\t\t\t\treturn Promise.resolve ({ advance: false });\n\t\t\t\t}).catch((e) => {\n\t\t\t\t\tlet error = {\n\t\t\t\t\t\t'Label': this.state ('label'),\n\t\t\t\t\t\t'Step': this.state ('step'),\n\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t'_': 'Check the code for your function, there may be additional information in the console.',\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tif (typeof e === 'object') {\n\t\t\t\t\t\terror = Object.assign (error, {\n\t\t\t\t\t\t\t'Error Message': e.message,\n\t\t\t\t\t\t\t'File Name': e.fileName,\n\t\t\t\t\t\t\t'Line Number': e.lineNumber\n\t\t\t\t\t\t});\n\t\t\t\t\t} else if (typeof e === 'string') {\n\t\t\t\t\t\terror['Error Message'] = e;\n\t\t\t\t\t}\n\n\t\t\t\t\tFancyError.show (\n\t\t\t\t\t\t'An error occurred while trying to run a Function.',\n\t\t\t\t\t\t'Monogatari attempted to run a function on the script but an error occurred.',\n\t\t\t\t\t\terror\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.trigger ('willRunAction', { action });\n\n\t\t\t// Run the willApply method of the action first\n\t\t\treturn action.willApply ().then (() => {\n\t\t\t\tthis.debug.debug ('Action Will Apply');\n\n\t\t\t\t// Run the apply method\n\t\t\t\treturn action.apply (shouldAdvance).then (() => {\n\t\t\t\t\tthis.debug.debug ('Action Applying');\n\n\t\t\t\t\t// If everything has been run correctly, then run the\n\t\t\t\t\t// didApply method. The action will return a boolean\n\t\t\t\t\t// (shouldContinue) specifying if the game should run the\n\t\t\t\t\t// next statement right away or if it should wait instead\n\t\t\t\t\treturn action.didApply ().then (({ advance }) => {\n\t\t\t\t\t\tthis.debug.debug ('Action Did Apply');\n\n\t\t\t\t\t\tthis.trigger ('didRunAction', { action });\n\n\t\t\t\t\t\tconst promises = [];\n\n\t\t\t\t\t\tfor (const action of this.actions ()) {\n\t\t\t\t\t\t\tpromises.push (action.afterRun ({ advance }));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn Promise.all (promises).then (() => {\n\t\t\t\t\t\t\tif (advance === true && shouldAdvance === true) {\n\t\t\t\t\t\t\t\tthis.debug.debug ('Next action will be run right away');\n\t\t\t\t\t\t\t\tthis.next ();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tthis.debug.trace ();\n\t\t\t\t\t\t\tthis.debug.groupEnd ();\n\t\t\t\t\t\t\treturn Promise.resolve ({ advance });\n\t\t\t\t\t\t});\n\t\t\t\t\t}).catch ((e) => {\n\t\t\t\t\t\tthis.debug.debug (`Did Apply Failed.\\nReason: ${e}`);\n\t\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t\t});\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tconsole.error(e);\n\t\t\t\t\tthis.debug.debug (`Application Failed.\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t});\n\t\t\t}).catch ((e) => {\n\t\t\t\tconsole.error(e);\n\t\t\t\tthis.debug.debug (`Will Apply Failed.\\nReason: ${e}`);\n\t\t\t\tthis.debug.trace ();\n\t\t\t\tthis.debug.groupEnd ();\n\t\t\t\treturn Promise.reject (e);\n\t\t\t});\n\t\t});\n\t}\n\n\tstatic alert (id, options) {\n\t\tconst alert = document.createElement ('alert-modal');\n\t\talert.setProps (options);\n\t\tthis.element ().prepend (alert);\n\t}\n\n\tstatic dismissAlert (id = null) {\n\t\t// if (typeof id === 'string') {\n\t\t// \tthis.component ('alert-modal').instance (id).remove ();\n\t\t// } else {\n\t\tthis.element ().find ('alert-modal').remove ();\n\t\t// }\n\t}\n\n\t/**\n\t * @static loadFromSlot - Load a slot from the storage. This will recover the\n\t * state of the game from what was saved in it.\n\t *\n\t * @param {string} slot - The key with which the slot was saved on the storage\n\t */\n\tstatic loadFromSlot (slot) {\n\t\tdocument.body.style.cursor = 'wait';\n\t\tthis.global ('playing', true);\n\n\t\tthis.trigger ('willLoadGame');\n\n\t\treturn this.resetGame ().then (() => {\n\t\t\tthis.hideScreens ();\n\n\t\t\treturn this.Storage.get (slot).then ((data) => {\n\t\t\t\t// @Compability [<= v1.4.1]\n\t\t\t\t// Check if an older save format was used so we can transform\n\t\t\t\t// that information into the new format.\n\t\t\t\tif (typeof data.Engine !== 'undefined') {\n\n\t\t\t\t\t// Set the game state\n\t\t\t\t\tthis.state ({\n\t\t\t\t\t\tstep: data.Engine.Step,\n\t\t\t\t\t\tlabel: data.Engine.Label,\n\t\t\t\t\t\tscene: `show scene ${data.Engine.Scene}`,\n\t\t\t\t\t});\n\n\t\t\t\t\t// Retrieve if a song was playing so we can set it to the state\n\t\t\t\t\tif (data.Engine.Song !== '' && typeof data.Engine.Song !== 'undefined') {\n\t\t\t\t\t\tthis.state ({\n\t\t\t\t\t\t\tmusic: [{ statement: data.Engine.Song, paused: false }],\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retrieve if a sound was playing so we can set it to the state\n\t\t\t\t\tif (data.Engine.Sound !== '' && typeof data.Engine.Sound !== 'undefined') {\n\t\t\t\t\t\tthis.state ({\n\t\t\t\t\t\t\tsound: [{ statement: data.Engine.Sound, paused: false }],\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Retrieve if particles were shown so we can set it to the state\n\t\t\t\t\tif (data.Engine.Particles !== '' && typeof data.Engine.Particles !== 'undefined') {\n\t\t\t\t\t\tthis.state ({\n\t\t\t\t\t\t\tparticles: `show particles ${data.Engine.Particles}`\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\t// Check if there are images to be shown\n\t\t\t\t\tif (data.Show !== '' && typeof data.Show !== 'undefined') {\n\t\t\t\t\t\tconst show = data.Show.split (',');\n\n\t\t\t\t\t\t// For every image saved, add their element to the game\n\t\t\t\t\t\tfor (const element of show) {\n\t\t\t\t\t\t\tif (element.trim () !== '') {\n\t\t\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\t\t\tdiv.innerHTML = element.replace ('img/', 'assets/');\n\t\t\t\t\t\t\t\tconst item = $_(div.firstChild);\n\t\t\t\t\t\t\t\tif (element.indexOf ('data-character') > -1) {\n\t\t\t\t\t\t\t\t\tthis.state ('characters').push (`show character ${item.data ('character')} ${item.data ('sprite')} ${item.get (0).className}`);\n\t\t\t\t\t\t\t\t} else if (element.indexOf ('data-image') > -1) {\n\t\t\t\t\t\t\t\t\tthis.state ('characters').push (`show image ${item.data ('image')} ${item.get (0).className}`);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tconst sceneElements = data.Engine.SceneElementsHistory.map ((elements) => {\n\t\t\t\t\t\treturn elements.map (element => element.replace ('img/', 'assets/'));\n\t\t\t\t\t});\n\n\t\t\t\t\t// Set all the history variables with the ones from the old\n\t\t\t\t\t// format\n\t\t\t\t\tthis.history ({\n\t\t\t\t\t\tmusic: data.Engine.MusicHistory,\n\t\t\t\t\t\tsound: data.Engine.SoundHistory,\n\t\t\t\t\t\timage: data.Engine.ImageHistory,\n\t\t\t\t\t\tcharacter: data.Engine.CharacterHistory.map ((character) => {\n\t\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\t\tdiv.innerHTML = character.replace ('img/', 'assets/');\n\t\t\t\t\t\t\tconst item = $_(div.firstChild);\n\t\t\t\t\t\t\tconst classes = item.get (0).classList;\n\t\t\t\t\t\t\tclasses.remove ('animated');\n\t\t\t\t\t\t\treturn `show character ${item.data ('character')} ${item.data ('sprite')} with ${classes.toString ()}`;\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tscene: data.Engine.SceneHistory.map ((scene) => {\n\t\t\t\t\t\t\treturn `show scene ${scene}`;\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tsceneElements: sceneElements,\n\t\t\t\t\t\tsceneState: sceneElements.map ((elements) => {\n\t\t\t\t\t\t\tif (elements.length > 0) {\n\t\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\t\tcharacters: elements.filter(element => element.indexOf ('data-character=') > -1).map ((element) => {\n\t\t\t\t\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t\t\t\t\t\t\tconst image = $_(div.firstChild);\n\t\t\t\t\t\t\t\t\t\tconst classes = image.get(0).classList.toString ().replace ('animated', '').trim ();\n\t\t\t\t\t\t\t\t\t\treturn `show character ${image.data('character')} ${image.data('sprite')}${ classes.length > 0 ? ` with ${classes}`: ''}`;\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t\timages: elements.filter(element => element.indexOf ('data-image=') > -1).map ((element) => {\n\t\t\t\t\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t\t\t\t\t\t\tconst image = $_(div.firstChild);\n\t\t\t\t\t\t\t\t\t\tconst classes = image.get(0).classList.toString ().replace ('animated', '').trim ();\n\t\t\t\t\t\t\t\t\t\treturn `show image ${image.data('image')}${ classes.length > 0 ? ` with ${classes}`: ''}`;\n\t\t\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tcharacters: [],\n\t\t\t\t\t\t\t\timages: []\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}),\n\t\t\t\t\t\tparticle: data.Engine.ParticlesHistory.map ((particles) => {\n\t\t\t\t\t\t\treturn `show particles ${particles}`;\n\t\t\t\t\t\t}),\n\t\t\t\t\t});\n\t\t\t\t\tthis.storage (data.Storage);\n\n\t\t\t\t} else {\n\t\t\t\t\t// If the new format is being used, things are a lot more simple\n\t\t\t\t\tconst { state, history, storage } = data.game;\n\n\t\t\t\t\t// @Compability [<= v2.0.0-beta.15]\n\t\t\t\t\t// Monogatari v2.0.0-beta.15 introduced a new format to save the state of the media\n\t\t\t\t\t// being played. Therefore, we need to check if the old format is being used in the\n\t\t\t\t\t// save file and transform it to the new one.\n\t\t\t\t\tif (state.music instanceof Array) {\n\t\t\t\t\t\tif (state.music.length > 0) {\n\t\t\t\t\t\t\tconst music = [];\n\t\t\t\t\t\t\tfor (const statement of state.music) {\n\t\t\t\t\t\t\t\tif (typeof statement === 'string') {\n\t\t\t\t\t\t\t\t\tmusic.push ({\n\t\t\t\t\t\t\t\t\t\tstatement,\n\t\t\t\t\t\t\t\t\t\tpaused: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tmusic.push (statement);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstate.music = music;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (state.sound instanceof Array) {\n\t\t\t\t\t\tif (state.sound.length > 0) {\n\t\t\t\t\t\t\tconst sound = [];\n\t\t\t\t\t\t\tfor (const statement of state.sound) {\n\t\t\t\t\t\t\t\tif (typeof statement === 'string') {\n\t\t\t\t\t\t\t\t\tsound.push ({\n\t\t\t\t\t\t\t\t\t\tstatement,\n\t\t\t\t\t\t\t\t\t\tpaused: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tsound.push (statement);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstate.sound = sound;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (state.voice instanceof Array) {\n\t\t\t\t\t\tif (state.voice.length > 0) {\n\t\t\t\t\t\t\tconst voice = [];\n\t\t\t\t\t\t\tfor (const statement of state.voice) {\n\t\t\t\t\t\t\t\tif (typeof statement === 'string') {\n\t\t\t\t\t\t\t\t\tvoice.push ({\n\t\t\t\t\t\t\t\t\t\tstatement,\n\t\t\t\t\t\t\t\t\t\tpaused: false,\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tvoice.push (statement);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tstate.voice = voice;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.state (state);\n\t\t\t\t\tthis.history (history);\n\t\t\t\t\tthis.storage (storage);\n\t\t\t\t}\n\n\n\t\t\t\tif (this.state ('step') > this.label ().length - 1) {\n\t\t\t\t\twhile (this.state ('step') > this.label ().length - 1) {\n\t\t\t\t\t\tconst step = this.state ('step') - 1;\n\t\t\t\t\t\tthis.state ({ step });\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.onLoad ().then (() => {\n\t\t\t\t\t// Finally show the game and start playing\n\t\t\t\t\tthis.showScreen ('game');\n\t\t\t\t\tdocument.body.style.cursor = 'auto';\n\t\t\t\t\tthis.trigger ('didLoadGame');\n\t\t\t\t\treturn Promise.resolve ();\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tstatic proceed ({ userInitiated = false, skip = false, autoPlay = false }) {\n\t\treturn this.shouldProceed ({ userInitiated, skip, autoPlay }).then (() => {\n\t\t\tthis.global ('_engine_block', true);\n\t\t\treturn this.willProceed ().then (() => {\n\t\t\t\treturn this.next ();\n\t\t\t});\n\t\t});\n\t}\n\n\tstatic rollback () {\n\t\tif (this.state ('step') === 0) {\n\t\t\tconst jump = [...this.history ('jump')].reverse ().find (o => {\n\t\t\t\treturn o.destination.label === this.state ('label') && o.destination.step === 0;\n\t\t\t});\n\n\t\t\tif (typeof jump === 'undefined') {\n\t\t\t\tthis.debug.debug ('Will not attempt rollback since this is the beginning of the game.');\n\t\t\t\treturn Promise.resolve ();\n\t\t\t}\n\t\t}\n\n\t\treturn this.shouldRollback ().then (() => {\n\t\t\tthis.global ('_engine_block', true);\n\t\t\treturn this.willRollback ().then (() => {\n\t\t\t\treturn this.previous ().then (() => {\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * @static shouldProceed - Check if the game can proceed\n\t *\n\t * @returns {Promise} - Resolves if the game can proceed or reject if it\n\t * can't proceed right now.\n\t */\n\tstatic shouldProceed ({ userInitiated = false, skip = false, autoPlay = false }) {\n\n\t\t// Check if the game is visible, if it's not, then it probably is not\n\t\t// playing or is looking at some menu and thus the game should not\n\t\t// proceed. The game will not proceed if it's blocked or if the distraction\n\t\t// free mode is enabled.\n\n\t\tif (!$_('.modal').isVisible ()\n\t\t\t&& !this.global ('distraction_free')\n\t\t\t&& !this.global ('block')\n\t\t\t&& (!this.global ('_engine_block') || this.global ('_executing_sub_action'))) {\n\t\t\tconst promises = [];\n\n\t\t\tthis.debug.groupCollapsed ('shouldProceed Check');\n\t\t\ttry {\n\n\t\t\t\tthis.debug.debug ('Checking Actions');\n\n\t\t\t\t// Check action by action if they will allow the game to proceed\n\t\t\t\tfor (const action of this.actions ()) {\n\t\t\t\t\tpromises.push (action.shouldProceed ({ userInitiated, skip, autoPlay }).then (() => {\n\t\t\t\t\t\tthis.debug.debug (`OK ${action.id}`);\n\t\t\t\t\t}).catch ((e) => {\n\t\t\t\t\t\tthis.debug.debug (`FAIL ${action.id}\\nReason: ${e}`);\n\t\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t\t}));\n\t\t\t\t}\n\n\t\t\t\tthis.debug.debug ('Checking Components');\n\n\t\t\t\t// Check component by component if they will allow the game to proceed\n\t\t\t\tfor (const component of this.components ()) {\n\t\t\t\t\tpromises.push (component.shouldProceed ({ userInitiated, skip, autoPlay }).then (() => {\n\t\t\t\t\t\tthis.debug.debug (`OK ${component.tag}`);\n\t\t\t\t\t}).catch ((e) => {\n\t\t\t\t\t\tthis.debug.debug (`FAIL ${component.tag}\\nReason: ${e}`);\n\t\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error (e);\n\t\t\t\tFancyError.show (\n\t\t\t\t\t'An error ocurred while trying to execute a shouldProceed function.',\n\t\t\t\t\t'Monogatari attempted to execute the function but an error ocurred.',\n\t\t\t\t\t{\n\t\t\t\t\t\t'Error Message': e.message,\n\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t'_': 'More details should be available at the console.',\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tthis.debug.debug ('Checking Extra Conditions');\n\n\t\t\treturn Promise.all (promises).then ((...args) => {\n\t\t\t\tthis.debug.groupEnd ();\n\t\t\t\treturn Promise.resolve (...args);\n\t\t\t}).catch ((e) => {\n\t\t\t\tthis.debug.groupEnd ();\n\t\t\t\treturn Promise.reject (e);\n\t\t\t});\n\t\t} else {\n\t\t\treturn Promise.reject ('Extra condition check failed.');\n\t\t}\n\t}\n\n\tstatic willProceed () {\n\n\t\tconst promises = [];\n\t\tthis.debug.groupCollapsed ('Can proceed check passed, game will proceed.');\n\t\ttry {\n\t\t\t// Check action by action if they will allow the game to proceed\n\t\t\tfor (const action of this.actions ()) {\n\t\t\t\tpromises.push (action.willProceed ().then (() => {\n\t\t\t\t\tthis.debug.debug (`OK ${action.id}`);\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tthis.debug.debug (`FAIL ${action.id}\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\t// Check component by component if they will allow the game to proceed\n\t\t\tfor (const component of this.components ()) {\n\t\t\t\tpromises.push (component.willProceed ().then (() => {\n\t\t\t\t\tthis.debug.debug (`OK ${component.tag}`);\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tthis.debug.debug (`FAIL ${component.tag}\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t}));\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error (e);\n\t\t\tFancyError.show (\n\t\t\t\t'An error ocurred while trying to execute a willProceed function.',\n\t\t\t\t'Monogatari attempted to execute the function but an error ocurred.',\n\t\t\t\t{\n\t\t\t\t\t'Error Message': e.message,\n\t\t\t\t\t'Help': {\n\t\t\t\t\t\t'_': 'More details should be available at the console.',\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn Promise.all (promises).then ((...args) => {\n\t\t\tthis.debug.groupEnd ();\n\t\t\treturn Promise.resolve (...args);\n\t\t}).catch ((e) => {\n\t\t\tthis.debug.groupEnd ();\n\t\t\treturn Promise.reject (e);\n\t\t});\n\t}\n\n\t/**\n\t * @static shouldRollback - Check if the game can revert\n\t *\n\t * @returns {Promise} - Resolves if the game can be reverted or reject if it\n\t * can't be reverted right now.\n\t */\n\tstatic shouldRollback () {\n\t\t// Check if the game is visible, if it's not, then it probably is not\n\t\t// playing or is looking at some menu and thus the game should not\n\t\t// revert. The game will not revert if it's blocked or if the distraction\n\t\t// free mode is enabled.\n\t\tif (!this.global ('distraction_free')\n\t\t\t&& !this.global ('block')\n\t\t\t&& (!this.global ('_engine_block') || this.global ('_executing_sub_action'))) {\n\t\t\tconst promises = [];\n\n\t\t\tthis.debug.groupCollapsed ('shouldRollback Check');\n\t\t\ttry {\n\t\t\t\t// Check action by action if they will allow the game to revert\n\t\t\t\tfor (const action of this.actions ()) {\n\t\t\t\t\tpromises.push (action.shouldRollback ().then (() => {\n\t\t\t\t\t\tthis.debug.debug (`OK ${action.id}`);\n\t\t\t\t\t}).catch ((e) => {\n\t\t\t\t\t\tthis.debug.debug (`FAIL ${action.id}\\nReason: ${e}`);\n\t\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t\t}));\n\t\t\t\t}\n\n\t\t\t\t// Check component by component if they will allow the game to revert\n\t\t\t\tfor (const component of this.components ()) {\n\t\t\t\t\tpromises.push (component.shouldRollback ().then (() => {\n\t\t\t\t\t\tthis.debug.debug (`OK ${component.tag}`);\n\t\t\t\t\t}).catch ((e) => {\n\t\t\t\t\t\tthis.debug.debug (`FAIL ${component.tag}\\nReason: ${e}`);\n\t\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error (e);\n\t\t\t\tFancyError.show (\n\t\t\t\t\t'An error ocurred while trying to execute a shouldRollback function.',\n\t\t\t\t\t'Monogatari attempted to execute the function but an error ocurred.',\n\t\t\t\t\t{\n\t\t\t\t\t\t'Error Message': e.message,\n\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t'_': 'More details should be available at the console.',\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn Promise.all (promises).then ((...args) => {\n\t\t\t\tthis.debug.groupEnd ();\n\t\t\t\treturn Promise.resolve (...args);\n\t\t\t}).catch ((e) => {\n\t\t\t\tthis.debug.groupEnd ();\n\t\t\t\treturn Promise.reject (e);\n\t\t\t});\n\t\t} else {\n\t\t\treturn Promise.reject ('Extra condition check failed.');\n\t\t}\n\t}\n\n\tstatic willRollback () {\n\t\tconst promises = [];\n\n\t\tthis.debug.groupCollapsed ('Should Rollback Check passed, game will roll back.');\n\n\t\ttry {\n\t\t\t// Check action by action if they will allow the game to revert\n\t\t\tfor (const action of this.actions ()) {\n\t\t\t\tpromises.push (action.willRollback ().then (() => {\n\t\t\t\t\tthis.debug.debug (`OK ${action.id}`);\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tthis.debug.debug (`FAIL ${action.id}\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\t// Check component by component if they will allow the game to revert\n\t\t\tfor (const component of this.components ()) {\n\t\t\t\tpromises.push (component.willRollback ().then (() => {\n\t\t\t\t\tthis.debug.debug (`OK ${component.tag}`);\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tthis.debug.debug (`FAIL ${component.tag}\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t}));\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error (e);\n\t\t\tFancyError.show (\n\t\t\t\t'An error ocurred while trying to execute a willRollback function.',\n\t\t\t\t'Monogatari attempted to execute the function but an error ocurred.',\n\t\t\t\t{\n\t\t\t\t\t'Error Message': e.message,\n\t\t\t\t\t'Help': {\n\t\t\t\t\t\t'_': 'More details should be available at the console.',\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn Promise.all (promises).then ((...args) => {\n\t\t\tthis.debug.groupEnd ();\n\t\t\treturn Promise.resolve (...args);\n\t\t}).catch ((e) => {\n\t\t\tthis.debug.groupEnd ();\n\t\t\treturn Promise.reject (e);\n\t\t});\n\t}\n\n\t/**\n\t * @static playAmbient - Play the main menu music using the key defined in the\n\t * 'MainScreenMusic' property of the game settings.\n\t */\n\tstatic playAmbient () {\n\t\t// Check if a menu music was defined\n\t\tif (this.setting ('MainScreenMusic') !== '') {\n\n\t\t\t// Make the ambient player loop\n\t\t\tthis.ambientPlayer.loop = true;\n\t\t\tthis.ambientPlayer.volume = this.preference ('Volume').Music;\n\n\t\t\t// Check if the music was defined in the music assets object\n\t\t\tif (typeof this.asset ('music', this.setting ('MainScreenMusic')) !== 'undefined') {\n\n\t\t\t\t// Check if the player is already playing music\n\t\t\t\tif (!this.ambientPlayer.paused && !this.ambientPlayer.ended) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Get the full path to the asset and set the src to the ambient player\n\t\t\t\tthis.ambientPlayer.src = `${this.setting ('AssetsPath').root}/${this.setting ('AssetsPath').music}/${this.asset ('music', this.setting ('MainScreenMusic'))}`;\n\n\t\t\t\t// Play the music but catch any errors. Error catching is necessary\n\t\t\t\t// since some browsers like chrome, have added some protections to\n\t\t\t\t// avoid media from being autoplayed. Because of these protections,\n\t\t\t\t// the user needs to interact with the page first before the media\n\t\t\t\t// is able to play.\n\t\t\t\tthis.ambientPlayer.play ().catch ((e) => {\n\t\t\t\t\tconsole.warn(e);\n\t\t\t\t\t// Create a broadcast message\n\t\t\t\t\tconst element = `\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t

${this.string ('AllowPlayback')}.

\n\t\t\t\t\t\t
\n\t\t\t\t\t`;\n\n\t\t\t\t\t// Add it to the main menu and game screens\n\t\t\t\t\tthis.element ().prepend (element);\n\n\t\t\t\t\t// Try to play the media again once the element has been clicked\n\t\t\t\t\t// and remove it.\n\t\t\t\t\tthis.element ().on ('click', '[data-ui=\"broadcast\"][data-content=\"allow-playback\"]', () => {\n\t\t\t\t\t\tthis.playAmbient ();\n\t\t\t\t\t\tthis.element ().find ('[data-ui=\"broadcast\"][data-content=\"allow-playback\"]').remove ();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tFancyError.show (\n\t\t\t\t\t`The music \"${this.setting ('MainScreenMusic')}\" is not defined.`,\n\t\t\t\t\t'Monogatari attempted to find a definition of a music asset but there was none.',\n\t\t\t\t\t{\n\t\t\t\t\t\t'Music Not Found': this.setting ('MainScreenMusic'),\n\t\t\t\t\t\t'You may have meant one of these': Object.keys (this.assets ('music')),\n\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t'_': 'Please check that you have correctly defined this music asset and wrote its name correctly in the `MainScreenMusic` variable',\n\t\t\t\t\t\t\t'_1': `\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t'MainScreenMusic': 'TheKeyToYourMusicAsset'\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\t// Stop the main menu's music\n\tstatic stopAmbient () {\n\t\tif (!this.ambientPlayer.paused) {\n\t\t\tthis.ambientPlayer.pause ();\n\t\t}\n\t}\n\n\t// Start game automatically without going trough the main menu\n\tstatic showMainScreen () {\n\t\tthis.global ('on_splash_screen', false);\n\n\t\tif (!this.setting ('ShowMainScreen')) {\n\t\t\tthis.global ('playing', true);\n\t\t\tthis.showScreen ('game');\n\t\t\tthis.run (this.label ()[this.state ('step')]);\n\t\t} else {\n\t\t\tthis.showScreen ('main');\n\t\t}\n\t}\n\n\tstatic showSplashScreen () {\n\t\tconst labelName = this.setting ('SplashScreenLabel');\n\t\tif (typeof labelName === 'string' && labelName !== '') {\n\t\t\tconst label = this.label (labelName);\n\t\t\tif (typeof label !== 'undefined') {\n\t\t\t\tthis.global ('on_splash_screen', true);\n\n\t\t\t\tthis.state ({\n\t\t\t\t\tlabel: labelName\n\t\t\t\t});\n\n\t\t\t\tthis.element ().find ('[data-component=\"game-screen\"]').addClass ('splash-screen');\n\n\t\t\t\tthis.element ().find ('[data-component=\"quick-menu\"]').addClass ('splash-screen');\n\n\t\t\t\tthis.showScreen ('game');\n\n\t\t\t\tthis.run (this.label ()[this.state ('step')]);\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthis.showMainScreen ();\n\t}\n\n\t/**\n\t * @static autoPlay - Enable or disable the autoplay feature which allows the\n\t * game to play itself (of sorts), it will go through the dialogs alone but\n\t * will wait when user interaction is needed.\n\t *\n\t * @param {boolean} enable - Wether the auto play feature will be enabled (true)\n\t * or disabled (false);\n\t */\n\tstatic autoPlay (enable) {\n\t\tif (enable === true) {\n\t\t\t// The interval for autoplay speed is measured in minutes\n\t\t\tconst interval = this.preference ('AutoPlaySpeed') * 1000;\n\t\t\tlet expected = Date.now () + interval;\n\n\t\t\tthis.global ('_auto_play_timer', () => {\n\t\t\t\tconst now = Date.now () - expected; // the drift (positive for overshooting)\n\t\t\t\tif (now > interval) {\n\t\t\t\t\t// something really bad happened. Maybe the browser (tab) was inactive?\n\t\t\t\t\t// possibly special handling to avoid futile \"catch up\" run\n\t\t\t\t}\n\t\t\t\tthis.proceed ({ userInitiated: false, skip: false, autoPlay: true }).then (() => {\n\t\t\t\t\texpected += interval;\n\t\t\t\t\tsetTimeout (this.global ('_auto_play_timer'), Math.max (0, interval - now)); // take into account drift\n\t\t\t\t}).catch (() => {\n\t\t\t\t\t// An action waiting for user interaction or something else\n\t\t\t\t\t// is blocking the game.\n\t\t\t\t\texpected += interval;\n\t\t\t\t\tsetTimeout (this.global ('_auto_play_timer'), Math.max (0, interval - now)); // take into account drift\n\t\t\t\t});\n\t\t\t});\n\t\t\tsetTimeout (this.global ('_auto_play_timer'), interval);\n\t\t\tthis.element ().find ('[data-component=\"quick-menu\"] [data-action=\"auto-play\"] [data-string]').text (this.string ('Stop'));\n\t\t\tthis.element ().find ('[data-component=\"quick-menu\"] [data-action=\"auto-play\"] [data-icon]').replaceWith ('');\n\t\t} else {\n\t\t\tclearTimeout (this.global ('_auto_play_timer'));\n\t\t\tthis.global ('_auto_play_timer', null);\n\t\t\tthis.element ().find ('[data-component=\"quick-menu\"] [data-action=\"auto-play\"] [data-string]').text (this.string ('AutoPlay'));\n\t\t\tthis.element ().find ('[data-component=\"quick-menu\"] [data-action=\"auto-play\"] [data-icon]').replaceWith ('');\n\t\t}\n\t}\n\n\t/**\n\t * @static distractionFree - Enable or disable the distraction free mode\n\t * where the dialog box is hidden so that the player can look at the characters\n\t * and background with no other elements on the way. A 'transparent' class\n\t * is added to the quick menu when this mode is enabled.\n\t */\n\tstatic distractionFree () {\n\t\tif (this.global ('playing')) {\n\t\t\t// Check if the distraction free is currently enabled\n\t\t\tif (this.global ('distraction_free') === true) {\n\t\t\t\tthis.element ().find ('[data-component=\"quick-menu\"] [data-action=\"distraction-free\"] [data-string]').text (this.string ('Hide'));\n\t\t\t\tthis.element ().find ('[data-component=\"quick-menu\"] [data-action=\"distraction-free\"] [data-icon]').replaceWith ('');\n\t\t\t\tthis.element ().find ('[data-component=\"quick-menu\"]').removeClass ('transparent');\n\t\t\t\tthis.element ().find ('[data-component=\"text-box\"]').show ();\n\t\t\t\tthis.global ('distraction_free', false);\n\t\t\t} else {\n\t\t\t\tthis.element ().find ('[data-component=\"quick-menu\"] [data-action=\"distraction-free\"] [data-string]').text (this.string ('Show'));\n\t\t\t\tthis.element ().find ('[data-component=\"quick-menu\"] [data-action=\"distraction-free\"] [data-icon]').replaceWith ('');\n\t\t\t\tthis.element ().find ('[data-component=\"quick-menu\"]').addClass ('transparent');\n\t\t\t\tthis.element ().find ('[data-component=\"text-box\"]').hide();\n\t\t\t\tthis.global ('distraction_free', true);\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic setup (selector) {\n\n\t\t// Set the initial settings if they don't exist or load them from the\n\t\t// Storage if they do.\n\t\tthis.Storage.get ('Settings').then ((local_settings) => {\n\t\t\tthis.global ('_first_run', false);\n\t\t\tthis._preferences = merge (this._preferences, local_settings);\n\t\t}).catch ((e) => {\n\t\t\tthis.global ('_first_run', true);\n\t\t\tif (this.setting ('MultiLanguage') !== true || this.setting ('LanguageSelectionScreen') !== true) {\n\t\t\t\tthis.Storage.set ('Settings', this._preferences);\n\t\t\t}\n\t\t\tconsole.warn ('There was no settings saved. This may be the first time this game was opened, we\\'ll create them now.', e);\n\t\t});\n\n\t\t// Define all the components that were registered to this point\n\t\tfor (const component of this._components) {\n\t\t\tif (typeof window.customElements.get (component.tag) === 'undefined') {\n\t\t\t\tcomponent.engine = this;\n\t\t\t\twindow.customElements.define (component.tag, component);\n\t\t\t} else {\n\t\t\t\tFancyError.show (\n\t\t\t\t\t`Unable to register component \"${component.tag}\"`,\n\t\t\t\t\t'Monogatari attempted to register a component but another component had already been registered for the same tag.',\n\t\t\t\t\t{\n\t\t\t\t\t\t'Component / Tag': component,\n\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t'_': 'Once a component for a tag has been registered and the setup has completed, it can not be replaced or removed. Try removing the conflicting component first:',\n\t\t\t\t\t\t\t'_1': `\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tmonogatari.unregisterComponent ('${component.tag}')\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\n\t\t// Register service worker. The service worker will save all requests into\n\t\t// the cache so the game loads more quickly and we can play offline. The\n\t\t// service worker will only be used if it was allowed by the settings and\n\t\t// if we are not running in a local platform such as electron or cordova\n\t\t// where the assets are expected to be available locally and thus don't\n\t\t// require being cached.\n\t\tif (this.setting ('ServiceWorkers')) {\n\t\t\tif (!Platform.electron () && !Platform.cordova () && Platform.serviceWorkers ()) {\n\t\t\t\t// TODO: There's a place in hell for this quick fix, the splitting\n\t\t\t\t// of the sw file is just preventing parcel from trying to bundle it\n\t\t\t\t// when building the core libraries.\n\t\t\t\tnavigator.serviceWorker.register ('service-worker' + '.js').then ((registration) => {\n\n\t\t\t\t\t// Check if an update to the service worker was found\n\t\t\t\t\tregistration.onupdatefound = () => {\n\t\t\t\t\t\tconst worker = registration.installing;\n\t\t\t\t\t\tworker.onstatechange = () => {\n\t\t\t\t\t\t\t// Once the updated service worker has been installed,\n\t\t\t\t\t\t\t// show a notice to the players so that they reload the\n\t\t\t\t\t\t\t// page and get the latest content.\n\t\t\t\t\t\t\tif (worker.state === 'installed') {\n\t\t\t\t\t\t\t\tif (navigator.serviceWorker.controller) {\n\t\t\t\t\t\t\t\t\tconst element = `\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\t

${this.string ('NewContent')}.

\n\t\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t`;\n\t\t\t\t\t\t\t\t\tthis.element ().prepend (element);\n\t\t\t\t\t\t\t\t\tthis.element ().on ('click', '[data-ui=\"broadcast\"][data-content=\"new-content\"]', () => {\n\t\t\t\t\t\t\t\t\t\tthis.element ().find ('[data-ui=\"broadcast\"][data-content=\"new-content\"]').remove ();\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t};\n\t\t\t\t\t};\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconsole.warn ('Service Workers are not available in this browser or have been disabled in the engine configuration. Service Workers are available only when serving your files through a server, once you upload your game this warning will go away. You can also try using a simple server like this one for development: https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb/');\n\t\t\t}\n\t\t}\n\n\t\t// Save the structure of the storage variable. The structure is saved as\n\t\t// a string so that we have a reference to how the storage was originally\n\t\t// and we can reset the storage when the game ends.\n\t\tthis.global ('storageStructure', JSON.stringify (this.storage ()));\n\n\t\t// The open-screen action does exactly what it says, it takes the\n\t\t// data-screen property of the object it's in and then opens that\n\t\t// menu, meaning it hides everything else and shows that one.\n\t\tthis.registerListener ('open-screen', {\n\t\t\tcallback: (element) => {\n\t\t\t\tthis.element ().find ('[data-screen]').each ((screen) => {\n\t\t\t\t\tscreen.setState ({ open: false });\n\t\t\t\t});\n\t\t\t\tthis.element ().find (`[data-screen=\"${element.data('open')}\"]`).get (0).setState ({ open: true });\n\t\t\t}\n\t\t});\n\n\t\t// The start action starts the game so it shows the game screen\n\t\t// and the game starts\n\t\tthis.registerListener ('start', {\n\t\t\tcallback: () => {\n\t\t\t\tthis.global ('playing', true);\n\n\t\t\t\t// Remove the play main menu audio broadcast message if it's present\n\t\t\t\tthis.element ().find ('[data-ui=\"broadcast\"][data-content=\"allow-playback\"]').remove ();\n\n\t\t\t\tthis.onStart ().then (() => {\n\t\t\t\t\tthis.element ().find ('[data-screen]').each ((screen) => {\n\t\t\t\t\t\tscreen.setState ({ open: false });\n\t\t\t\t\t});\n\n\t\t\t\t\tthis.element ().find ('[data-screen=\"game\"]').get (0).setState ({ open: true });\n\n\t\t\t\t\t// Check if the initial label exists\n\t\t\t\t\tif (this.label ()) {\n\t\t\t\t\t\tthis.run (this.label ()[this.state ('step')]);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthis.registerListener ('dismiss-alert', {\n\t\t\tcallback: () => {\n\t\t\t\tthis.dismissAlert ();\n\t\t\t}\n\t\t});\n\n\t\tthis.registerListener ('distraction-free', {\n\t\t\tkeys: 'h',\n\t\t\tcallback: () => {\n\t\t\t\tthis.distractionFree ();\n\t\t\t}\n\t\t});\n\n\t\tthis.registerListener ('skip', {\n\t\t\tkeys: 's',\n\t\t\tcallback: () => {\n\t\t\t\tif (this.global ('playing')) {\n\t\t\t\t\tif (this.global ('skip') !== null) {\n\t\t\t\t\t\tthis.skip (false);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.skip (true);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\t// Add listener to the auto-play buttons, activating or deactivating the\n\t\t// auto-play feature\n\t\tthis.registerListener ('auto-play', {\n\t\t\tcallback: () => {\n\t\t\t\tthis.autoPlay (this.global ('_auto_play_timer') === null);\n\t\t\t}\n\t\t});\n\n\t\tconst promises = [];\n\n\t\tfor (const component of this.components ()) {\n\t\t\tcomponent.engine = this;\n\t\t\tpromises.push (component.setup (selector));\n\t\t}\n\n\t\tfor (const action of this.actions ()) {\n\t\t\taction.engine = this;\n\t\t\tpromises.push (action.setup (selector));\n\t\t}\n\t\treturn Promise.all (promises).then (() => {\n\t\t\tthis.global ('_didSetup', true);\n\t\t\treturn Promise.resolve ();\n\t\t});\n\t}\n\t/**\n\t * @static skip - Enable or disable the skip mode which is similar to auto\n\t * play but simply skips fast through the game.\n\t *\n\t * @param {boolean} enable - Wether it should be enabled (true) or disabled (false)\n\t */\n\tstatic skip (enable) {\n\t\tif (enable === true) {\n\t\t\t// Check if Skip was enabled on the settings, if it has a value greater\n\t\t\t// than 0, it represents the speed with which the game will skip through\n\t\t\t// statements. If it's lesser or equal to 0 then it's disabled.\n\t\t\tif (this.setting ('Skip') > 0) {\n\n\t\t\t\tconst button = this.element ().find ('[data-component=\"quick-menu\"] [data-action=\"skip\"] [data-icon]');\n\n\t\t\t\tif (button.data ('icon') !== 'play-circle') {\n\t\t\t\t\tbutton.replaceWith ('');\n\t\t\t\t}\n\n\t\t\t\t// Start the timeout with the time specified on the settings. We\n\t\t\t\t// save it on a global variable so that we can disable later.\n\t\t\t\tthis.global ('skip', setTimeout (() => {\n\t\t\t\t\tif (this.element ().find ('[data-screen=\"game\"]').isVisible () && this.global ('playing') === true) {\n\t\t\t\t\t\tthis.proceed ({ userInitiated: false, skip: true, autoPlay: false }).then (() => {\n\t\t\t\t\t\t\t// Nothing to do here\n\t\t\t\t\t\t}).catch ((e) => {\n\t\t\t\t\t\t\tthis.debug.log (`Proceed Prevented\\nReason: ${e}`);\n\t\t\t\t\t\t\t// An action waiting for user interaction or something else\n\t\t\t\t\t\t\t// is blocking the game.\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t// Start all over again\n\t\t\t\t\tthis.skip (true);\n\t\t\t\t}, this.setting ('Skip')));\n\t\t\t}\n\t\t} else {\n\t\t\tclearTimeout (this.global ('skip'));\n\t\t\tthis.global ('skip', null);\n\t\t\tconst button = this.element ().find ('[data-component=\"quick-menu\"] [data-action=\"skip\"] [data-icon]');\n\n\t\t\tif (button.data ('icon') !== 'fast-forward') {\n\t\t\t\tbutton.replaceWith ('');\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic showScreen (screen) {\n\t\tthis.hideScreens ();\n\n\t\tthis.element ().find (`[data-screen=\"${screen}\"]`).get (0).setState ({\n\t\t\topen: true\n\t\t});\n\t}\n\n\tstatic hideScreens () {\n\t\tthis.element ().find ('[data-screen]').each ((screen) => {\n\t\t\tscreen.setState ({ open: false });\n\t\t});\n\t}\n\n\tstatic resize (element, proportionWidth, proportionHeight) {\n\t\tconst mainElement = $_('body').get (0);\n\n\t\tconst mainWidth = mainElement.offsetWidth;\n\t\tconst mainHeight = mainElement.offsetHeight;\n\n\t\tconst h = Math.floor (mainWidth * (proportionHeight / proportionWidth));\n\n\t\tlet widthCss = '100%';\n\t\tlet heightCss = '100%';\n\t\tlet marginTopCss = 0;\n\n\t\tif (h <= mainHeight) {\n\t\t\tconst marginTop = Math.floor ((mainHeight - h)/2);\n\t\t\tmarginTopCss = marginTop + 'px';\n\t\t\theightCss = h + 'px';\n\n\t\t} else {\n\t\t\tconst w = Math.floor (mainHeight * (proportionWidth/proportionHeight));\n\t\t\twidthCss = w + 'px';\n\t\t}\n\n\t\t$_('.forceAspectRatio').style ({\n\t\t\twidth: widthCss,\n\t\t\theight: heightCss,\n\t\t\tmarginTop: marginTopCss\n\t\t});\n\t}\n\n\t/**\n\t * Every event listener should be binded in this function.\n\t */\n\tstatic bind (selector) {\n\n\n\t\t// Add the orientation checker in case that a specific orientation was\n\t\t// defined.\n\t\tif (this.setting ('Orientation') !== 'any' && Platform.mobile ()) {\n\n\t\t\t// Set the event listener for device orientation so we can display a message\n\t\t\twindow.addEventListener ('orientationchange', () => {\n\n\t\t\t\t// Display or remove the device orientation notice depending on the\n\t\t\t\t// current device orientation\n\t\t\t\tif (Platform.orientation () !== this.setting ('Orientation')) {\n\t\t\t\t\tthis.alert ('orientation-warning', {\n\t\t\t\t\t\tmessage: 'OrientationWarning'\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.dismissAlert ('orientation-warning');\n\t\t\t\t}\n\t\t\t}, false);\n\t\t}\n\n\t\t// Add event listener for back buttons. If the player is playing, the back\n\t\t// button will return to the game, if its not playing, then it'll return\n\t\t// to the main menu.\n\t\tthis.on ('click', '[data-screen]:not([data-screen=\"game\"]) [data-action=\"back\"]', (event) => {\n\n\t\t\tif (!$_(`${selector} [data-screen=\"game\"]`).isVisible ()) {\n\t\t\t\tthis.debug.debug ('Registered Back Listener on Non-Game Screen');\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\tevent.stopPropagation();\n\t\t\t\tevent.preventDefault();\n\t\t\t\tthis.element ().find ('[data-screen]').each ((screen) => {\n\t\t\t\t\tscreen.setState ({ open: false });\n\t\t\t\t});\n\n\t\t\t\tif (this.global ('playing') || this.global ('on_splash_screen')) {\n\t\t\t\t\tthis.element ().find ('[data-screen=\"game\"]').get (0).setState ({ open: true });\n\t\t\t\t} else {\n\t\t\t\t\tthis.element ().find ('[data-screen=\"main\"]').get (0).setState ({ open: true });\n\t\t\t\t}\n\t\t\t}\n\n\t\t});\n\n\t\tconst self = this;\n\n\t\t// Add listeners for the data-action properties\n\t\tthis.on ('click', '[data-action]', function (event) {\n\t\t\tconst element = $_(this);\n\n\t\t\tconst action = element.data ('action');\n\n\t\t\tif (action) {\n\t\t\t\tself.runListener (action, element, event);\n\t\t\t}\n\n\t\t\treturn false;\n\t\t});\n\n\t\tthis.keyboardShortcut (['right', 'space'], () => {\n\t\t\tthis.proceed ({ userInitiated: true, skip: false, autoPlay: false }).then (() => {\n\t\t\t\t// Nothing to do here\n\t\t\t}).catch ((e) => {\n\t\t\t\tthis.debug.log (`Proceed Prevented\\nReason: ${e}`);\n\t\t\t\t// An action waiting for user interaction or something else\n\t\t\t\t// is blocking the game.\n\t\t\t});\n\t\t});\n\n\t\tthis.keyboardShortcut ('esc', () => {\n\t\t\tif ($_(`${selector} [data-screen=\"game\"]`).isVisible () && this.global ('playing')) {\n\t\t\t\tthis.showScreen ('settings');\n\t\t\t} else if ($_(`${selector} [data-screen=\"settings\"]`).isVisible () && this.global ('playing')) {\n\t\t\t\tthis.showScreen ('game');\n\t\t\t}\n\t\t});\n\n\t\tthis.keyboardShortcut ('shift+s', () => {\n\t\t\tif (this.global ('playing')) {\n\t\t\t\tthis.showScreen ('save');\n\t\t\t}\n\t\t});\n\n\t\tthis.keyboardShortcut ('shift+l', () => {\n\t\t\tif (this.global ('playing')) {\n\t\t\t\tthis.showScreen ('load');\n\t\t\t}\n\t\t});\n\n\t\tconst forceAspectRatio = this.setting ('ForceAspectRatio');\n\t\tlet forceAspectRatioFlag = true;\n\n\t\tswitch (forceAspectRatio) {\n\t\t\tcase 'Visuals':\n\t\t\t\t$_('[data-content=\"visuals\"]').addClass('forceAspectRatio');\n\t\t\t\tbreak;\n\n\t\t\tcase 'Global':\n\t\t\t\tthis.element ().parent ().addClass('forceAspectRatio');\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tforceAspectRatioFlag = false;\n\t\t}\n\n\t\tif (forceAspectRatioFlag) {\n\t\t\tconst [w, h] = this.setting ('AspectRatio').split (':');\n\t\t\tconst proportionWidth = parseInt(w);\n\t\t\tconst proportionHeight = parseInt(h);\n\t\t\tif (!(Platform.electron () && forceAspectRatio === 'Global')) {\n\t\t\t\tthis.resize (null, proportionWidth, proportionHeight);\n\t\t\t\t$_(window).on ('resize', () => this.resize (null, proportionWidth, proportionHeight));\n\t\t\t}\n\t\t}\n\n\t\tconst promises = [];\n\n\t\tfor (const component of this.components ()) {\n\t\t\tpromises.push (component.bind (selector));\n\t\t}\n\n\t\tfor (const action of this.actions ()) {\n\t\t\tpromises.push (action.bind (selector));\n\t\t}\n\n\t\treturn Promise.all (promises).then (() => {\n\t\t\tfor (const listener of this._listeners) {\n\t\t\t\tconst { keys, callback } = listener;\n\t\t\t\tif (typeof keys !== 'undefined') {\n\t\t\t\t\tthis.keyboardShortcut (keys, callback);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.global ('_didBind', true);\n\t\t\treturn Promise.resolve ();\n\t\t});\n\t}\n\n\t/**\n\t * @static element - Get the main visual-novel element\n\t *\n\t * @param {boolean} pure - Wether to get an Artemis DOM instance of the element\n\t * or a pure HTML element\n\t * @param {boolean} handled - Wether the case of the element not existing is\n\t * being handled in some way or not. If it doesn't exist and it is not being\n\t * handled, an error will be shown.\n\t *\n\t * @returns {DOM | HTMLElement}\n\t */\n\tstatic element (pure = false, handled = false) {\n\t\tlet element = null;\n\t\tlet exists = false;\n\n\t\tif (pure === true) {\n\t\t\telement = document.querySelector ('visual-novel');\n\t\t\texists = element !== null;\n\t\t} else {\n\t\t\telement = $_('visual-novel');\n\t\t\texists = element.length > 0;\n\t\t}\n\n\t\t// In some cases, the user might be trying to execute an action using the\n\t\t// main element when the DOM has not been loaded yet, thus causing an\n\t\t// error since the element does not exists yet.\n\t\tif (exists === false && handled === false) {\n\t\t\tFancyError.show (\n\t\t\t\t'Main element is not ready yet',\n\t\t\t\t'Monogatari attempted to execute a function when the main element was not fully loaded yet.',\n\t\t\t\t{\n\t\t\t\t\t'Trace': 'You should be able to see an error with the order in which functions were executed in your browser\\'s console (Ctrl + Shift + i). The last one should be part of your code and that\\'s the one that needs to be changed.',\n\t\t\t\t\t'Help': {\n\t\t\t\t\t\t'_': 'Please wrap or move your code into a $_ready () function block to wait for the page to be fully loaded before executing it.',\n\t\t\t\t\t\t'_1': `\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\tmonogatari.ready ('#monogatari', () => {\n\t\t\t\t\t\t\t\t\t// Your code should go here\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t`\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t\treturn element;\n\t}\n\n\tstatic on (event, target, callback) {\n\t\treturn this.element ().on (event, target, callback);\n\t}\n\n\tstatic parentElement () {\n\t\treturn $_(this._selector);\n\t}\n\n\t/**\n\t * @static trigger - Trigger a custom element with custom details data\n\t *\n\t * @param {string} name - The name of the event to trigger\n\t * @param {Object} [details = {}] - A key/value object with additional details\n\t * for the event\n\t *\n\t * @returns {void}\n\t */\n\tstatic trigger (name, details = {}) {\n\t\tconst event = new CustomEvent (name, { bubbles: false, detail: details });\n\n\t\tconst element = this.element (true, true);\n\n\t\tif (element) {\n\t\t\telement.dispatchEvent (event);\n\t\t} else {\n\t\t\t$_ready (() => dispatchEvent (event));\n\t\t}\n\t}\n\n\tstatic displayInitialScreen () {\n\t\t// Preload all the game assets\n\t\tthis.preload ().then (() => {\n\n\t\t}).catch ((e) => {\n\t\t\tconsole.error (e);\n\t\t}).finally (() => {\n\t\t\tif (this.label ()) {\n\t\t\t\tthis.showSplashScreen ();\n\t\t\t} else {\n\t\t\t\tFancyError.show (\n\t\t\t\t\t`\"${this.setting ('Label')}\" Label was not found`,\n\t\t\t\t\t'Monogatari tried to get your start label but it couldn\\'t find it in your script.',\n\t\t\t\t\t{\n\t\t\t\t\t\t'Start Label on your Settings': this.setting ('Label'),\n\t\t\t\t\t\t'Labels Available': Object.keys (this.script ()),\n\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t'_': 'Please check that the label exists in your script.'\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic init (selector = '#monogatari') {\n\t\tthis._selector = selector;\n\n\t\tthis.trigger ('willInit');\n\n\t\tif (this.Storage.configuration ().name === '') {\n\t\t\tthis.setupStorage ();\n\t\t}\n\n\t\tFancyError.init ();\n\n\t\tthis.trigger ('willSetup');\n\n\t\treturn this.setup (selector).then (() => {\n\n\t\t\tthis.trigger ('didSetup');\n\n\t\t\tthis.trigger ('willBind');\n\n\t\t\treturn this.bind (selector).then (() => {\n\n\t\t\t\tthis.trigger ('didBind');\n\n\t\t\t\tthis.ambientPlayer = new Audio ();\n\n\t\t\t\t// Set the initial language translations\n\t\t\t\tthis.localize ();\n\n\t\t\t\t// Set the label in which the game will start\n\t\t\t\tthis.state ({\n\t\t\t\t\tlabel: this.setting ('Label')\n\t\t\t\t});\n\n\t\t\t\t// Check if the orientation is correct, if it's not, show the warning\n\t\t\t\t// message so the player will rotate its device.\n\t\t\t\tif (this.setting ('Orientation') !== 'any') {\n\t\t\t\t\tif (Platform.mobile () && Platform.orientation () !== this.setting ('Orientation')) {\n\t\t\t\t\t\tthis.alert ('orientation-warning', {\n\t\t\t\t\t\t\tmessage: 'OrientationWarning'\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst init = [];\n\n\t\t\t\tfor (const component of this.components ()) {\n\t\t\t\t\tinit.push (component.init (selector));\n\t\t\t\t}\n\n\t\t\t\tfor (const action of this.actions ()) {\n\t\t\t\t\tinit.push (action.init (selector));\n\t\t\t\t}\n\n\t\t\t\tif (this.setting ('AutoSave') != 0 && typeof this.setting ('AutoSave') === 'number') {\n\t\t\t\t\tthis.debug.debug ('Automatic save is enabled, setting up timeout');\n\t\t\t\t\tthis.global ('_auto_save_interval', setInterval(() => {\n\t\t\t\t\t\tthis.debug.groupCollapsed ('Automatic Save');\n\t\t\t\t\t\tconst id = this.global ('current_auto_save_slot');\n\n\t\t\t\t\t\tthis.debug.debug ('Saving data to slot', id);\n\n\t\t\t\t\t\tthis.saveTo ('AutoSaveLabel', id);\n\n\t\t\t\t\t\tif (this.global ('current_auto_save_slot') === this.setting ('Slots')) {\n\t\t\t\t\t\t\tthis.global ('current_auto_save_slot', 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.global ('current_auto_save_slot', this.global ('current_auto_save_slot') + 1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.debug.groupEnd ('Automatic Save');\n\n\t\t\t\t\t}, this.setting ('AutoSave') * 60000));\n\t\t\t\t} else {\n\t\t\t\t\tthis.debug.debug ('Automatic save is disabled. Section will be hidden from Load Screen');\n\t\t\t\t\tthis.element ().find ('[data-screen=\"load\"] [data-ui=\"autoSaveSlots\"]').hide ();\n\t\t\t\t}\n\n\t\t\t\treturn Promise.all (init).then (() => {\n\t\t\t\t\tthis.global ('_didInit', true);\n\t\t\t\t\tthis.trigger ('didInit');\n\n\t\t\t\t\tif (this.setting ('MultiLanguage') === true && this.setting ('LanguageSelectionScreen') === true && this.global ('_first_run') === true) {\n\t\t\t\t\t\tthis.showScreen ('language-selection');\n\n\t\t\t\t\t\tthis.on ('didLocalize', () => {\n\t\t\t\t\t\t\tthis.Storage.set ('Settings', this._preferences);\n\t\t\t\t\t\t\tconst languageSelectionScreen = this.element ().find ('[data-screen=\"language-selection\"]');\n\t\t\t\t\t\t\tif (languageSelectionScreen.isVisible ()) {\n\t\t\t\t\t\t\t\tthis.displayInitialScreen ();\n\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.displayInitialScreen ();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tstatic random (min, max) {\n\t\ttry {\n\t\t\treturn new Random (browserCrypto).integer (min, max);\n\t\t} catch (e) {\n\t\t\tconsole.error (e);\n\t\t\treturn new Random ().integer (min, max);\n\t\t}\n\t}\n}\n\nMonogatari._events = {\n\n};\n\nMonogatari._selector = '#monogatari';\n\nMonogatari._actions = [];\nMonogatari._components = [];\nMonogatari._translations = {};\nMonogatari._script = {};\nMonogatari._characters = {};\nMonogatari._storage = {};\n\nMonogatari.Storage = new Space ();\n\nMonogatari._mediaPlayers = {\n\tmusic: {},\n\tsound: {},\n\tvoice: {},\n\tvideo: {}\n};\n\nMonogatari._state = {\n\tstep: 0,\n\tlabel: 'Start'\n};\n\nMonogatari._history = {\n\timage: [],\n\tcharacter: [],\n\tscene: [],\n\tlabel: []\n};\n\nMonogatari._globals = {\n\n};\n\nMonogatari._functions = {\n\n};\n\nMonogatari._$ = {\n\n};\n\nMonogatari._status = {\n\tblock: false,\n\tplaying: false,\n\tfinished_typing: true\n};\n\nMonogatari._assets = {\n\tmusic: {},\n\tvoices: {},\n\tsounds: {},\n\tvideos: {},\n\timages: {},\n\tscenes: {},\n\tgallery: {}\n};\n\n// These are the default settings and they are overwritten by the user's settings\n// New elements here will no conflict with the user's settings and allows a better\n// update experience\nMonogatari._settings = {\n\n\t// The name of your game, this will be used to store all the data so once\n\t// you've released a game using one name, it shouldn't change. Please use the\n\t// Version Setting to indicate a new release of your game!\n\t'Name': 'My Visual Novel',\n\n\t// The version of your game in semantic versioning (https://semver.org/).\n\t'Version': '0.1.0',\n\n\t// Initial Label *\n\t'Label': 'Start',\n\n\t// Number of AutoSave Slots\n\t'Slots': 10,\n\n\t// Change to true for a MultiLanguage GameScreen.\n\t'MultiLanguage': false,\n\n\t// If the 'Multilanguage' setting is set to `true`. This will enable a\n\t// language selection screen that will be shown before the asset loading\n\t// screen. If set to false, the loading screen will appear first instead and\n\t// players will have to change the language from the settings screen.\n\t'LanguageSelectionScreen': true,\n\n\t// Music for the Main Menu.\n\t'MainScreenMusic': '',\n\n\t// Prefix for the Save Slots in Local Storage.\n\t'SaveLabel': 'Save',\n\t'AutoSaveLabel': 'AutoSave',\n\n\t// Turn main menu on/off; Default: true *\n\t'ShowMainScreen': true,\n\n\t// Turn image preloading on/off, Default: true\n\t'Preload': true,\n\n\t// Time interval between autosaves (In Minutes). Default: 0 (Off)\n\t'AutoSave': 0,\n\n\t// Enable service workers; Default: true *\n\t'ServiceWorkers': true,\n\n\t// The Aspect Ratio your background images are on. This has no effect on\n\t// web deployed novels.\n\t'AspectRatio': '16:9',\n\n\t// Force aspect ratio, it will make all images to comply with aspect ratio.\n\t// Values: 'None' (don't force), 'Visuals' (force only visuals)\n\t// or 'Global' (force all game)\n\t'ForceAspectRatio': 'None',\n\n\t// Enables or disables the typing text animation for the whole game.\n\t'TypeAnimation': true,\n\n\t// Enables or disables the typing text animation in NVL dialogs for the\n\t// whole game.\n\t'NVLTypeAnimation': true,\n\n\t// Enables or disables the typing animation for the narrator.\n\t// If the previous property was set to false, the narrator won't shown\n\t// the animation even if this is set to true.\n\t'NarratorTypeAnimation': true,\n\n\t// Enables or disables the typing animation for the special centered\n\t// character. If the TypeAnimation property was set to false, the centered\n\t// character won't shown the animation even if this is set to true.\n\t'CenteredTypeAnimation': true,\n\n\t// Force some orientation on mobile devices. If this setting is set either\n\t// to portrait or landscape, a warning message will be displayed so the\n\t// player rotates its device.\n\t// Possible values: any, portrait or landscape.\n\t'Orientation': 'any',\n\n\t// Allow players to skip through the game. Similar to the auto play feature,\n\t// skipping will allow players to go through the game really fast.\n\t// If this value is set to 0, no skipping will be allowed but if it's set\n\t// to a higher number, skipping will be allowed and that value will be taken\n\t// as the speed in milliseconds with which the game will skip through the script\n\t'Skip': 0,\n\n\t// Define the directories where the assets are located. The root directory is\n\t// the holder for the other asset specific directories, this directories are\n\t// used when retrieving the files on the game.\n\t'AssetsPath': {\n\t\t'root': 'assets',\n\t\t'characters': 'characters',\n\t\t'icons': 'icons',\n\t\t'images': 'images',\n\t\t'music': 'music',\n\t\t'scenes': 'scenes',\n\t\t'sounds': 'sounds',\n\t\t'ui': 'ui',\n\t\t'videos': 'videos',\n\t\t'voices': 'voices',\n\t\t'gallery': 'gallery'\n\t},\n\n\t// Name of the Splash Screen Label. If a name is given and a label with that\n\t// name exists on the game's script, it will be used to show a splash screen\n\t// right after the loading screen.\n\t'SplashScreenLabel': '_SplashScreen',\n\n\t// Define what storage engine should be used to save the game data. *\n\t// Adapters Available:\n\t// - LocalStorage: This one is used by default\n\t// - SessionStorage: Same as LocalStorage but will be cleared when the page\n\t// \t\t\t\t\t is closed.\n\t// - IndexedDB: The information is saved using the IndexedDB web API\n\t// - RemoteStorage: The information will be sent and retrieved from a given\n\t//\t\t\t\t\tURL Endpoint providing a REST API.\n\t'Storage': {\n\t\t'Adapter': 'LocalStorage',\n\t\t'Store': 'GameData',\n\t\t'Endpoint': ''\n\t}\n};\n\nMonogatari._preferences = {\n\n\t// Initial Language for Multilanguage Games or for the Default GUI Language.\n\t'Language': 'English',\n\n\t// Initial Volumes from 0.0 to 1.\n\t'Volume': {\n\t\t'Music': 1,\n\t\t'Voice': 1,\n\t\t'Sound': 1,\n\t\t'Video': 1\n\t},\n\n\t// Initial resolution used for Electron, it must match the settings inside\n\t// the electron.js file. This has no effect on web deployed novels.\n\t'Resolution': '800x600',\n\n\t// Speed at which dialog text will appear\n\t'TextSpeed': 20,\n\n\t// Speed at which the Auto Play feature will show the next statement\n\t// It is measured in seconds and starts counting after the text is\n\t// completely displayed.\n\t'AutoPlaySpeed': 5\n};\n\nMonogatari.globals ({\n\tdistraction_free: false,\n\tdelete_slot: null,\n\toverwrite_slot: null,\n\tblock: false,\n\tplaying: false,\n\tcurrent_auto_save_slot: 1,\n\t_auto_play_timer: null,\n\tskip: null,\n\t_log: [],\n\t_auto_save_interval: null,\n\t_engine_block: false,\n\t_executing_sub_action: false,\n\t_restoring_state: false,\n\ton_splash_screen: false,\n\t_didSetup: false,\n\t_didBind: false,\n\t_didInit: false,\n});\n\nMonogatari._listeners = [];\n\nMonogatari._configuration = {\n\t'main-menu': {\n\t\tbuttons: [\n\t\t\t{\n\t\t\t\tstring: 'Start',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'start'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tstring: 'Load',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'open-screen',\n\t\t\t\t\topen: 'load'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tstring: 'Settings',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'open-screen',\n\t\t\t\t\topen: 'settings'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tstring: 'Help',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'open-screen',\n\t\t\t\t\topen: 'help'\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\t'quick-menu': {\n\t\tbuttons: [\n\t\t\t{\n\t\t\t\tstring: 'Back',\n\t\t\t\ticon: 'fas fa-arrow-left',\n\t\t\t\tlink: '#',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'back'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tstring: 'Hide',\n\t\t\t\ticon: 'fas fa-eye',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'distraction-free'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tstring: 'AutoPlay',\n\t\t\t\ticon: 'fas fa-play-circle',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'auto-play'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tstring: 'Skip',\n\t\t\t\ticon: 'fas fa-fast-forward',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'skip'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tstring: 'Save',\n\t\t\t\ticon: 'fas fa-save',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'open-screen',\n\t\t\t\t\topen: 'save'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tstring: 'Load',\n\t\t\t\ticon: 'fas fa-undo',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'open-screen',\n\t\t\t\t\topen: 'load'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tstring: 'Settings',\n\t\t\t\ticon: 'fas fa-cog',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'open-screen',\n\t\t\t\t\topen: 'settings'\n\t\t\t\t}\n\t\t\t},\n\t\t\t{\n\t\t\t\tstring: 'Quit',\n\t\t\t\ticon: 'fas fa-times-circle',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'end'\n\t\t\t\t}\n\t\t\t}\n\t\t]\n\t},\n\tcredits: {}\n};\n\nMonogatari._templates = {};\n\nMonogatari._upgrade = {};\n\nMonogatari._temp = {};\n\nMonogatari.Storage = new Space ();\n\nMonogatari.version = package_json.version;\n\nMonogatari._id = 'visual-novel';\n\nexport default Monogatari;","/**\n * ============================================================\n * Arabic\n * ============================================================\n *\n * Translators:\n *\n * Ren \n */\n\n\n\nexport default {\n\t'AdvanceHelp': 'للتقدم في القصة انقز ŲØŲ²Ų± الفأره Ų§Ł„Ų£ŁŠŲ³Ų± او المس الؓاؓه في اي Ł…ŁƒŲ§Ł† او Ų§Ų¶ŲŗŲ· Ų²Ų± المسافة',\n\t'AllowPlayback': 'Ų£Ų¶ŲŗŲ· هنا Ł„ŲŖŁŲ¹ŁŠŁ„ Ų§Ł…ŁƒŲ§Ł†ŁŠŲ© ŲŖŲ“ŲŗŁŠŁ„ Ų§Ł„ŲµŁˆŲŖ',\n\t'Audio': 'Ų§Ł„Ų£ŲµŁˆŲ§ŲŖ',\n\t'AutoPlay': 'ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\t'AutoPlayButton': 'ŲŖŁŲ¹ŁŠŁ„ Ų§Ł„ŲŖŲ“ŲŗŁŠŁ„ Ų§Ł„ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\t'AutoPlaySpeed': 'Ų³Ų±Ų¹Ų© Ų§Ł„ŲŖŲ“ŲŗŁŠŁ„ Ų§Ł„ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\n\t'Back': 'ŲŖŲ±Ų§Ų¬Ų¹',\n\t'BackButton': 'Ų§Ł„Ų¹ŁˆŲÆŲ©',\n\n\t'Cancel': 'الغاؔ',\n\t'Close': 'اغلاق',\n\t'Confirm': 'هل ŲŖŲ±ŲŗŲØ ŲØŲ§Ł„Ų®Ų±ŁˆŲ¬ŲŸ',\n\t'Credits': 'Ų§Ł„Ų¹Ų§Ł…Ł„ŁŠŁ† على Ų§Ł„Ł…Ų“Ų±ŁˆŲ¹',\n\n\t'Delete': 'حذف',\n\t'DialogLogButton': 'اظهار Ų²Ų± Ų§Ł„Ų­ŁˆŲ§Ų±',\n\n\t'FullScreen': 'ملؔ الؓاؓة',\n\n\t'Gallery': 'Ł…Ų¹Ų±Ų¶ Ų§Ł„ŲµŁˆŲ±',\n\n\t'Help': 'مساعده',\n\t'Hide': 'اخفاؔ',\n\t'HideButton': 'اخفاؔ ŲµŁ†ŲÆŁˆŁ‚ Ų§Ł„Ų­ŁˆŲ§Ų±',\n\n\t'iOSAudioWarning': 'Ų§Ų¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„ŲµŁˆŲŖ غير Ł…ŲÆŲ¹ŁˆŁ…Ł‡ على أنظمة iOS',\n\n\t'KeyboardShortcuts': 'Ų„Ų®ŲŖŲµŲ§Ų±Ų§ŲŖ Ł„ŁˆŲ­Ų© Ų§Ł„Ł…ŁŲ§ŲŖŁŠŲ­',\n\n\t'Language': 'اللغة',\n\t'Load': 'Ų§Ų³ŲŖŲ±Ų¬Ų§Ų¹',\n\t'LoadAutoSaveSlots': 'خانات الحفظ Ų§Ł„ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\t'LoadButton': 'فتح Ų“Ų§Ų“Ų© الحفظ ŁˆŲ§Ł„Ų§Ų³ŲŖŲ±Ų¬Ų§Ų¹',\n\t'Loading': 'ŁŠŲŖŁ… الاسترجاع',\n\t'LoadingMessage': 'ŁŠŲ±Ų¬Ł‰ الانتظار Ų±ŁŠŲ«Ł…Ų§ ŁŠŲŖŁ… ŲŖŲ­Ł…ŁŠŁ„ الملفات',\n\t'LoadSlots': 'خانات الحفظ',\n\t'LocalStorageWarning': 'الحفظ Ų§Ł„Ł…Ų­Ł„ŁŠ غير Ł…ŲÆŲ¹ŁˆŁ… على هذا المتصفح',\n\t'Log': 'سجل',\n\n\t'Music': 'صوت Ų§Ł„Ł…ŁˆŲ³ŁŠŁ‚Ł‰',\n\n\t'NewContent': 'توجد Ł…Ų­ŲŖŁˆŁŠŲ§ŲŖ Ų¬ŲÆŁŠŲÆŁ‡ ŁŠŲ±Ų¬Ł‰ ŲŖŁ†Ų“ŁŠŲ· الصفحة لمؓاهدتها',\n\t'NoSavedGames': 'لا توجد ملفات حفظ',\n\t'NoAutoSavedGames': 'لا توجد خانات حفظ ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\t'NoDialogsAvailable': 'لا توجد حوارات. ستظهر Ų§Ł„Ų­ŁˆŲ§Ų±Ų§ŲŖ هنا عندما ŁŠŲŖŁ… ŁƒŲŖŲ§ŲØŲŖŁ‡Ų§',\n\n\t'OK': 'Ł…ŁˆŲ§ŁŁ‚',\n\t'OrientationWarning': 'الرجاؔ وضع الجهاز على الجانب الآخر Ł„ŲŖŲ³ŲŖŲ·ŁŠŲ¹ اللعب',\n\t'Overwrite': 'الاستبدال',\n\n\t'QuickButtons': 'Ų§Ų²Ų±Ų§Ų± خانات الحفظ Ų§Ł„Ų³Ų±ŁŠŲ¹',\n\t'QuickMenu': 'القائمة Ų§Ł„Ų³Ų±ŁŠŲ¹Ų©',\n\t'Quit': 'خروج',\n\t'QuitButton': 'انهاؔ اللعبه',\n\n\t'Resolution': 'Ų¹Ų±Ų¶ الؓاؓة',\n\n\t'Save': 'حفظ',\n\t'SaveButton': 'يفتح Ų“Ų§Ų“Ų© حفظ اللعبة',\n\t'SaveInSlot': 'حفظ في خانة',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'Ų„Ų¹ŲÆŲ§ŲÆŲ§ŲŖ',\n\t'SettingsButton': 'يفتح صفحة ال؄عدادات',\n\t'Show': 'Ų¹Ų±Ų¶',\n\t'Skip': 'تخطي',\n\t'SkipButton': 'ŲØŲÆŲ” وضع Ų§Ł„ŲŖŲ®Ų·ŁŠ',\n\t'SlotDeletion': 'هل أنت Ł…ŲŖŲ£ŁƒŲÆ من رغبتك في حذف هذه Ų§Ł„Ų®Ų§Ł†Ų©ŲŸ',\n\t'SlotOverwrite': 'هل أنت Ł…ŲŖŲ£ŁƒŲÆ من رغبتك في Ų§Ų³ŲŖŲØŲÆŲ§Ł„ هذه Ų§Ł„Ų®Ų§Ł†Ų©ŲŸ',\n\t'Sound': 'مقدار صوت Ų§Ł„Ų§ŲµŁˆŲ§ŲŖ',\n\t'Start': 'ŲØŲÆŲ”',\n\t'Stop': 'ŲŖŁˆŁ‚Ł',\n\n\t'TextSpeed': 'Ų³Ų±Ų¹Ų© النص',\n\n\t'Video': 'مقدار صوت Ų§Ł„ŁŁŠŲÆŁŠŁˆ',\n\t'Voice': 'مقدار صوت Ų§Ł„ŁƒŁ„Ų§Ł… Ų§Ł„Ł…Ł†Ų·ŁˆŁ‚',\n\n\t'Windowed': 'نافذة'\n};\n","/**\n * ============================================================\n * Belarusian\n * ============================================================\n *\n * Translators:\n *\n * Yakauleu \"Wiedy Mi\" Uladzislau \n */\n\nexport default {\n\t'AdvanceHelp': 'Каб Š³ŃƒŠ»ŃŃ†ŃŒ, націсніце на прабел або Š»ŠµŠ²Š°ŃŽ кнопку Š¼Ń‹ŃˆŃ‹',\n\t'AllowPlayback': 'ŠŠ°Ń†Ń–ŃŠ½Ń–Ń†Šµ тут, каб Š“Š°Š·Š²Š¾Š»Ń–Ń†ŃŒ прайграванне Š°ŃžŠ“Ń‹Ń',\n\t'Audio': 'ŠŃžŠ“Ń‹Ń',\n\t'AutoPlay': 'ŠŃžŃ‚Š°',\n\t'AutoPlayButton': 'Š£ŠŗŠ»ŃŽŃ‡Ń‹Ń†ŃŒ Š°ŃžŃ‚Š°ŠæŃ€Š°Š¹Š³Ń€Š°Š²Š°Š½Š½Šµ',\n\t'AutoPlaySpeed': 'Š„ŃƒŃ‚ŠŗŠ°ŃŃ†ŃŒ Š°ŃžŃ‚Š°ŠæŃ€Š°Š¹Š³Ń€Š°Š²Š°Š½Š½Ń',\n\n\t'Back': 'ŠŠ°Š·Š°Š“',\n\t'BackButton': 'ŠŸŠµŃ€Š°Š¹ŃŃ†Ń– назаГ',\n\n\t'Cancel': 'Š”ŠŗŠ°ŃŠ°Š²Š°Ń†ŃŒ',\n\t'Close': 'Š—Š°ŠŗŃ€Ń‹Ń†ŃŒ',\n\t'Confirm': 'Выйсці?',\n\t'Credits': 'Цітры',\n\n\t'Delete': 'Š’Ń‹Š“Š°Š»Ń–Ń†ŃŒ',\n\t'DialogLogButton': 'ŠŸŠ°ŠŗŠ°Š·Š°Ń†ŃŒ Š¶ŃƒŃ€Š½Š°Š» Š“Ń‹ŃŠ»Š¾Š³Š°Ńž',\n\n\t'FullScreen': 'ŠŸŠ¾ŃžŠ½Ń‹ ŃŠŗŃ€Š°Š½',\n\n\t'Gallery': 'Š“Š°Š»ŠµŃ€ŃŃ',\n\n\t'Help': 'Дапамога',\n\t'Hide': 'Š”Ń…Š°Š²Š°Ń†ŃŒ',\n\t'HideButton': 'Š”Ń…Š°Š²Š°Ń†ŃŒ Ń‚ŃŠŗŃŃ‚Š°Š²Š°Šµ поле',\n\n\t'iOSAudioWarning': 'ŠŠ°Š»Š°Š“Ń‹ Š°ŃžŠ“Ń‹Ń не ŠæŠ°Š“Ń‚Ń€Ń‹Š¼Š»Ń–Š²Š°ŃŽŃ†Ń†Š° на iOS',\n\n\t'KeyboardShortcuts': 'Š„ŃƒŃ‚ŠŗŃ–Ń ŠŗŠ»Š°Š²Ń–ŃˆŃ‹',\n\n\t'Language': 'Мова',\n\t'Load': 'Š—Š°Š³Ń€ŃƒŠ·Ń–Ń†ŃŒ',\n\t'LoadAutoSaveSlots': 'ŠŃžŃ‚Š°Š·Š°Ń…Š°Š²Š°Š½Ń‹Ń Š³ŃƒŠ»ŃŒŠ½Ń–',\n\t'LoadButton': 'ŠŠ“ŠŗŃ€Ń‹Ń†ŃŒ Š¼ŠµŠ½ŃŽ Š·Š°Š³Ń€ŃƒŠ·ŠŗŃ–',\n\t'Loading': 'Š—Š°Š³Ń€ŃƒŠ·ŠŗŠ°',\n\t'LoadingMessage': 'ŠŸŠ°Ń‡Š°ŠŗŠ°Š¹Ń†Šµ ŠæŠ¾ŃžŠ½Š°Š¹ Š·Š°Š³Ń€ŃƒŠ·ŠŗŃ– Ń€ŃŃŃƒŃ€ŃŠ°Ńž',\n\t'LoadSlots': 'Š—Š°Ń…Š°Š²Š°Š½Ń‹Ń Š³ŃƒŠ»ŃŒŠ½Ń–',\n\t'LocalStorageWarning': 'Š›Š°ŠŗŠ°Š»ŃŒŠ½Š°Šµ ŃŃ…Š¾Š²Ń–ŃˆŃ‡Š° Š½ŠµŠ“Š°ŃŃ‚ŃƒŠæŠ½Š° ў Š³ŃŃ‚Ń‹Š¼ Š±Ń€Š°ŃžŠ·ŠµŃ€Ń‹',\n\t'Log': 'Š–ŃƒŃ€Š½Š°Š»',\n\n\t'Music': 'Š„ŃƒŃ‡Š½Š°ŃŃ†ŃŒ Š¼ŃƒŠ·Ń‹ŠŗŃ–',\n\n\t'NewContent': 'Š”Š°ŃŃ‚ŃƒŠæŠ½Š° новае змесціва, ŠæŠµŃ€Š°Š·Š°Š³Ń€ŃƒŠ·Ń–Ń†Šµ ŃŃ‚Š°Ń€Š¾Š½ŠŗŃƒ, каб Š°Ń‚Ń€Ń‹Š¼Š°Ń†ŃŒ Š°ŠæŠ¾ŃˆŠ½ŃŽŃŽ Š²ŠµŃ€ŃŃ–ŃŽ',\n\t'NoSavedGames': 'ŠŃŠ¼Š° захаваных Š³ŃƒŠ»ŃŒŠ½ŃŃž',\n\t'NoAutoSavedGames': 'ŠŃŠ¼Š° Š°ŃžŃ‚Š°Š·Š°Ń…Š°Š²Š°Š½Ń‹Ń… Š³ŃƒŠ»ŃŒŠ½ŃŃž',\n\t'NoDialogsAvailable': 'ŠŃŠ¼Š° Š“Š°ŃŃ‚ŃƒŠæŠ½Ń‹Ń… Š“Ń‹ŃŠ»Š¾Š³Š°Ńž. Š”Ń‹ŃŠ»Š¾Š³Ń– Š±ŃƒŠ“ŃƒŃ†ŃŒ Š·\\'ŃŃžŠ»ŃŃ†Ń†Š° тут па меры ŠæŃ€Š°Ń…Š¾Š“Š¶Š°Š½Š½Ń Š³ŃƒŠ»ŃŒŠ½Ń–',\n\n\t'OK': 'ŠžŠš',\n\t'OrientationWarning': 'Каб Š³ŃƒŠ»ŃŃ†ŃŒ, ŠæŠ°Š²ŃŃ€Š½Ń–Ń†Šµ вашу ŠæŃ€Ń‹Š»Š°Š“Ńƒ',\n\t'Overwrite': 'ŠŸŠµŃ€Š°Š·Š°ŠæŃ–ŃŠ°Ń†ŃŒ',\n\n\t'QuickButtons': 'ŠšŠ½Š¾ŠæŠŗŃ– Ń…ŃƒŃ‚ŠŗŠ°Š³Š° Š¼ŠµŠ½ŃŽ',\n\t'QuickMenu': 'Š„ŃƒŃ‚ŠŗŠ°Šµ Š¼ŠµŠ½ŃŽ',\n\t'Quit': 'Выйсці',\n\t'QuitButton': 'Выйсці Š· Š³ŃƒŠ»ŃŒŠ½Ń–',\n\n\t'Resolution': 'Š Š°Š·Ń€Š¾Š·Š½Š°ŃŃ†ŃŒ',\n\n\t'Save': 'Š—Š°Ń…Š°Š²Š°Ń†ŃŒ',\n\t'SaveButton': 'ŠŠ“ŠŗŃ€Ń‹Ń†ŃŒ Š¼ŠµŠ½ŃŽ Š·Š°Ń…Š°Š²Š°Š½Š½Ń',\n\t'SaveInSlot': 'Š—Š°Ń…Š°Š²Š°Ń†ŃŒ у слот',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ŠŠ°Š»Š°Š“Ń‹',\n\t'SettingsButton': 'ŠŠ“ŠŗŃ€Ń‹Ń†ŃŒ Š¼ŠµŠ½ŃŽ налаГ',\n\t'Show': 'ŠŸŠ°ŠŗŠ°Š·Š°Ń†ŃŒ',\n\t'Skip': 'ŠŸŃ€Š°ŠæŃƒŃŃ†Ń–Ń†ŃŒ',\n\t'SkipButton': 'ŠŃžŃ‚Š°ŠæŠµŃ€Š°Ń…Š¾Š“',\n\t'SlotDeletion': 'Š’Ń‹ ŃžŠæŃŃžŠ½ŠµŠ½Ń‹, ŃˆŃ‚Š¾ хочаце Š²Ń‹Š“Š°Š»Ń–Ń†ŃŒ Š³ŃŃ‚Ń‹ слот?',\n\t'SlotOverwrite': 'Š’Ń‹ ŃžŠæŃŃžŠ½ŠµŠ½Ń‹, ŃˆŃ‚Š¾ хочаце ŠæŠµŃ€Š°Š·Š°ŠæŃ–ŃŠ°Ń†ŃŒ Š³ŃŃ‚Ń‹ слот?',\n\t'Sound': 'Š“ŃƒŃ‡Š½Š°ŃŃ†ŃŒ Š³ŃƒŠŗŠ°Ńž',\n\t'Start': 'ŠŸŠ°Ń‡Š°Ń†ŃŒ',\n\t'Stop': 'Š”ŠæŃ‹Š½Ń–Ń†ŃŒ',\n\n\t'TextSpeed': 'Š„ŃƒŃ‚ŠŗŠ°ŃŃ†ŃŒ Ń‚ŃŠŗŃŃ‚Ńƒ',\n\n\t'Video': 'Š“ŃƒŃ‡Š½Š°ŃŃ†ŃŒ Š²Ń–Š“ŃŠ°',\n\t'Voice': 'Š“ŃƒŃ‡Š½Š°ŃŃ†ŃŒ голасу',\n\n\t'Windowed': 'Аконны Ń€ŃŠ¶Ń‹Š¼'\n};","/**\n * ============================================================\n * 简体中文 (Simplified Chinese)\n * ============================================================\n *\n * Translators:\n *\n * RuolinZheng08\n */\n\nexport default {\n\t'AdvanceHelp': 'ęŒ‰äø‹ē©ŗę ¼é”®ęˆ–ē‚¹å‡»å±å¹•ä»„ē»§ē»­',\n\t'AllowPlayback': 'ē‚¹å‡»čæ™é‡Œä»„åÆē”ØčÆ­éŸ³å›žę”¾',\n\t'Audio': 'éŸ³ę•ˆ',\n\t'AutoPlay': 'č‡ŖåŠØ',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'č‡ŖåŠØę’­ę”¾é€Ÿåŗ¦',\n\n\t'Back': '后退',\n\t'BackButton': '后退',\n\n\t'Cancel': 'å–ę¶ˆ',\n\t'Close': '关闭',\n\t'Confirm': 'ē”®å®šč¦é€€å‡ŗå—ļ¼Ÿ',\n\t'Credits': 'Credits',\n\n\t'Delete': '删除',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'å…Øå±ę˜¾ē¤ŗ',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': '帮助',\n\t'Hide': '隐藏',\n\t'HideButton': 'éšč—ę–‡å­—',\n\n\t'iOSAudioWarning': 'iOSęš‚äøę”ÆęŒéŸ³ę•ˆč®¾å®š',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'Language': '语言',\n\t'Load': 'čÆ»å–',\n\t'LoadAutoSaveSlots': 'č‡ŖåŠØå­˜å‚Øēš„ęøøęˆčæ›åŗ¦',\n\t'LoadButton': 'ę˜¾ē¤ŗčÆ»å–ē•Œé¢',\n\t'Loading': '加载中',\n\t'LoadingMessage': 'ē­‰å¾…ē“ ęåŠ č½½äø­',\n\t'LoadSlots': 'å­˜å‚Øēš„ęøøęˆčæ›åŗ¦',\n\t'LocalStorageWarning': 'čÆ„ęµč§ˆå™Øęš‚äøę”ÆęŒęœ¬åœ°å­˜å‚ØåŠŸčƒ½',\n\t'Log': 'Log',\n\n\t'Music': '音乐音量',\n\n\t'NoSavedGames': 'ę²”ęœ‰å­˜å‚Øēš„ęøøęˆčæ›åŗ¦',\n\t'NoAutoSavedGames': 'ę²”ęœ‰č‡ŖåŠØå­˜å‚Øēš„ęøøęˆčæ›åŗ¦',\n\t'NewContent': 'ęœ‰ę–°ēš„å†…å®¹åÆä¾›ä½æē”Øļ¼Œé‡ę–°åŠ č½½é”µé¢ä»„čŽ·å–ęœ€ę–°ē‰ˆęœ¬',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': '確定',\n\t'OrientationWarning': 'čÆ·å°†č®¾å¤‡ę—‹č½¬ä»„ä½“éŖŒęøøęˆå†…å®¹',\n\t'Overwrite': '覆盖',\n\n\t'QuickButtons': 'åæ«ę·čœå•ęŒ‰é’®',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': '退出',\n\t'QuitButton': 'é€€å‡ŗęøøęˆ',\n\n\t'Resolution': 'åˆ†č¾ØēŽ‡',\n\n\t'Save': '存攣',\n\t'SaveButton': 'ę˜¾ē¤ŗå­˜ę”£ē•Œé¢',\n\t'SaveInSlot': 'å†™å…„å­˜ę”£ę§½ä½',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ēŽÆå¢ƒč®¾å®š',\n\t'SettingsButton': 'ę˜¾ē¤ŗēŽÆå¢ƒč®¾å®šē•Œé¢',\n\t'Show': '显示',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'ē”®å®šč¦åˆ é™¤čæ™äøŖå­˜ę”£ę§½ä½å—ļ¼Ÿ',\n\t'SlotOverwrite': 'ē”®å®šč¦č¦†ē›–čæ™äøŖå­˜ę”£ę§½ä½å—ļ¼Ÿ',\n\t'Sound': 'éŸ³ę•ˆéŸ³é‡',\n\t'Start': '开始',\n\t'Stop': '停止',\n\n\t'TextSpeed': 'ę–‡å­—ę˜¾ē¤ŗé€Ÿåŗ¦',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'čÆ­éŸ³éŸ³é‡',\n\n\t'Windowed': 'ēŖ—å£'\n};\n","/**\n * ============================================================\n * Nederlands\n * ============================================================\n *\n * Translators:\n *\n * Natsukeep\n */\n\nexport default {\n\t'AdvanceHelp': 'Gebruik de spatiebalk of linker muisknop om te spelen',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'Autoplay snelheid',\n\n\t'Back': 'Terug',\n\t'BackButton': 'Terug',\n\n\t'Cancel': 'Stop',\n\t'Close': 'Sluit',\n\t'Confirm': 'Ben je zeker dat je wilt stoppen?',\n\t'Credits': 'Credits',\n\n\t'Delete': 'Delete',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'Volledig scherm',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': 'Help',\n\t'Hide': 'Verberg',\n\t'HideButton': 'Verberg tekst',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'iOSAudioWarning': 'Audio instellingen worden niet ondersteund door iOS',\n\n\t'Language': 'Taal',\n\t'Load': 'Laad',\n\t'LoadAutoSaveSlots': 'Automatisch opgeslagen spellen',\n\t'LoadButton': 'Open het laadscherm',\n\t'Loading': 'Laden',\n\t'LoadingMessage': 'Wacht tot de onderdelen zijn geladen',\n\t'LoadSlots': 'Opgeslagen spellen',\n\t'LocalStorageWarning': 'Locale Opslag is niet mogelijk in deze Browser',\n\t'Log': 'Log',\n\n\t'Music': 'Muziek Volume',\n\n\t'NewContent': 'There is new content available, reload the page to get the latest version',\n\t'NoSavedGames': 'Geen opgeslagen spellen',\n\t'NoAutoSavedGames': 'Geen automatsch opgeslagen spellen',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Please rotate your device to play',\n\t'Overwrite': 'Overschrijven',\n\n\t'QuickButtons': 'Snelmenu knoppen',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': 'sluit',\n\t'QuitButton': 'Sluit spel',\n\n\t'Resolution': 'Resolutie',\n\n\t'Save': 'Opslaan',\n\t'SaveButton': 'Open de Save Screen',\n\t'SaveInSlot': 'Sla op in slot',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'Instellingen',\n\t'SettingsButton': 'Open de instellingen',\n\t'Show': 'Tonen',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'Weet u zeker dat u dit slot verwijderen?',\n\t'SlotOverwrite': 'Weet u zeker dat u dit slot overschrijven?',\n\t'Sound': 'Geluids volume',\n\t'Start': 'Start',\n\t'Stop': 'Stop',\n\n\t'TextSpeed': 'Tekst snelheid',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Stem Volume',\n\n\t'Windowed': 'Window modus'\n};","/**\n * ============================================================\n * English\n * ============================================================\n *\n * Translators:\n *\n * Hyuchia \n */\n\n\n\nexport default {\n\t'AdvanceHelp': 'To advance through the game, left-click or tap anywhere on the game screen or press the space key',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'Autoplay Speed',\n\n\t'Back': 'Back',\n\t'BackButton': 'Go back',\n\n\t'Cancel': 'Cancel',\n\t'Close': 'Close',\n\t'Confirm': 'Do you want to quit?',\n\t'Credits': 'Credits',\n\n\t'Delete': 'Delete',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'Full Screen',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': 'Help',\n\t'Hide': 'Hide',\n\t'HideButton': 'Hide the text box',\n\n\t'iOSAudioWarning': 'Audio settings are not supported on iOS',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'Language': 'Language',\n\t'Load': 'Load',\n\t'LoadAutoSaveSlots': 'Auto Saved Games',\n\t'LoadButton': 'Open the Load Screen',\n\t'Loading': 'Loading',\n\t'LoadingMessage': 'Wait while the assets are loaded',\n\t'LoadSlots': 'Saved Games',\n\t'LocalStorageWarning': 'Local Storage is not available in this browser',\n\t'Log': 'Log',\n\n\t'Music': 'Music Volume',\n\n\t'NewContent': 'There is new content available, reload the page to get the latest version',\n\t'NoSavedGames': 'No saved games',\n\t'NoAutoSavedGames': 'No automatically saved games',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Please rotate your device to play',\n\t'Overwrite': 'Overwrite',\n\n\t'QuickButtons': 'Quick Menu Buttons',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': 'Quit',\n\t'QuitButton': 'Quit Game',\n\n\t'Resolution': 'Resolution',\n\n\t'Save': 'Save',\n\t'SaveButton': 'Open the Save Screen',\n\t'SaveInSlot': 'Save in slot',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'Settings',\n\t'SettingsButton': 'Open the Settings Screen',\n\t'Show': 'Show',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'Are you sure you want to delete this slot?',\n\t'SlotOverwrite': 'Are you sure you want to overwrite this slot?',\n\t'Sound': 'Sound Volume',\n\t'Start': 'Start',\n\t'Stop': 'Stop',\n\n\t'TextSpeed': 'Text Speed',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Voice Volume',\n\n\t'Windowed': 'Windowed'\n};","/**\n * ============================================================\n * FranƧais\n * ============================================================\n *\n * Translators:\n *\n * BakaKiller, LoganTann (ShinProg)\n */\n\nexport default {\n\t'AdvanceHelp': 'Pour avancer dans le jeu, appuyez sur la touche espace ou cliquez',\n\t'AllowPlayback': 'Cliquez ici pour autoriser la musique de fond',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Activer la lecture automatique',\n\t'AutoPlaySpeed': 'Vitesse de lecture automatique',\n\n\t'Back': 'Retour',\n\t'BackButton': 'Retour',\n\n\t'Cancel': 'Annuler',\n\t'Close': 'Fermer',\n\t'Confirm': 'Voulez-vous vraiment quitter?',\n\t'Credits': 'CrĆ©dits',\n\n\t'Delete': 'Supprimer',\n\t'DialogLogButton': 'Afficher le journal de dialogues',\n\n\t'FullScreen': 'Plein Ɖcran',\n\n\t'Gallery': 'Gallerie',\n\n\t'Help': 'Aide',\n\t'Hide': 'Cacher',\n\t'HideButton': 'Cacher le Texte',\n\n\t'iOSAudioWarning': 'Les paramĆØtres audio ne sont pas pris en charge par iOS',\n\n\t'KeyboardShortcuts': 'Raccourcis claviers',\n\n\t'Language': 'Langue',\n\t'Load': 'Charger',\n\t'LoadAutoSaveSlots': 'Parties enregistrĆ©es automatiquement',\n\t'LoadButton': 'Ouvrir l’écran de chargement',\n\t'Loading': 'Chargement',\n\t'LoadingMessage': 'Veuillez patienter pendant le chargement des donnĆ©es du jeu',\n\t'LoadSlots': 'Parties SauvegardĆ©es',\n\t'LocalStorageWarning': 'Le stockage local n’est pas disponible sur ce navigateur !',\n\t'Log': 'Journal',\n\n\t'Music': 'Volume de la Musique',\n\n\t'NewContent': 'Un nouveau contenu est disponible, rechargez la page pour obtenir la derniĆØre version',\n\t'NoSavedGames': 'Pas de parties sauvegardĆ©es',\n\t'NoAutoSavedGames': 'Aucune partie enregistrĆ©e automatiquement',\n\t'NoDialogsAvailable': 'Aucun dialogue disponible. Les boĆ®tes de dialogue apparaĆ®tront ici au fur et Ć  mesure qu\\'elles s\\'afficheront.',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Changez l\\'orientation de votre appareil pour jouer.',\n\t'Overwrite': 'Ɖcraser',\n\n\t'QuickButtons': 'Boutons du Menu rapide',\n\t'QuickMenu': 'Menu rapide',\n\t'Quit': 'Quitter',\n\t'QuitButton': 'Quitter le Jeu',\n\n\t'Resolution': 'RĆ©solution',\n\n\t'Save': 'Sauvegarder',\n\t'SaveButton': 'Ouvrir l’écran de Sauvegarde',\n\t'SaveInSlot': 'Enregistrer Ć  l’emplacement',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'PrĆ©fĆ©rences',\n\t'SettingsButton': 'Ouvrir l’écran des PrĆ©fĆ©rences',\n\t'Show': 'Monter',\n\t'Skip': 'Passer',\n\t'SkipButton': 'Skip mode',\n\t'SlotDeletion': 'Êtes-vous sĆ»r de vouloir supprimer cet emplacement ?',\n\t'SlotOverwrite': 'Êtes vous sĆ»r de vouloir remplacer cet emplacement ?',\n\t'Sound': 'Volume des Sons',\n\t'Start': 'DĆ©marrer',\n\t'Stop': 'ArrĆŖter',\n\n\t'TextSpeed': 'Vitesse du Texte',\n\n\t'Video': 'Volume des vidĆ©os',\n\t'Voice': 'Volume de la Voix',\n\n\t'Windowed': 'FenĆŖtrĆ©'\n};\n","/**\n * ============================================================\n * Deutsch\n * ============================================================\n *\n * Translators:\n *\n * increpare \n * KazutoSensei\n */\n\nexport default {\n\t'AdvanceHelp': 'Um dich durch das Spiel zu navigieren, drücke die Leertaste oder klicke',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'AutoPlay-Geschwindigkeit',\n\n\t'Back': 'Zurück',\n\t'BackButton': 'Zurück',\n\n\t'Cancel': 'Abbrechen',\n\t'Close': 'Schließen',\n\t'Confirm': 'Mƶchtest Du das Spiel verlassen?',\n\t'Credits': 'Credits',\n\n\t'Delete': 'Lƶschen',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'Vollbildmodus',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': 'Hilfe',\n\t'Hide': 'Verbergen',\n\t'HideButton': 'Text verbergen',\n\n\t'iOSAudioWarning': 'Audioeinstellungen werden unter iOS nicht unterstützt',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'Language': 'Sprache',\n\t'Load': 'Laden',\n\t'LoadAutoSaveSlots': 'Automatisch gespeicherte Spiele',\n\t'LoadButton': 'Ɩffne den Ladebildschirm',\n\t'Loading': 'LƤdt',\n\t'LoadingMessage': 'Bitte warte, wƤhrend die Assets geladen werden',\n\t'LoadSlots': 'Gespeicherte Spiele',\n\t'LocalStorageWarning': 'Lokaler Speicher ist in diesem Browser nicht verfügbar',\n\t'Log': 'Log',\n\n\t'Music': 'Musik-LautstƤrke',\n\n\t'NewContent': 'There is new content available, reload the page to get the latest version',\n\t'NoSavedGames': 'Keine gespeicherten Spiele',\n\t'NoAutoSavedGames': 'Keine automatisch gespeicherten Spiele',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Um das Spiel zu spielen, Bitte drehen sie Ihr GerƤt',\n\t'Overwrite': 'Überschreiben',\n\n\t'QuickButtons': 'Schnellmenü SchaltflƤchen',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': 'Verlassen',\n\t'QuitButton': 'Spiel verlassen',\n\n\t'Resolution': 'Auflƶsung',\n\n\t'Save': 'Speichern',\n\t'SaveButton': 'Ɩffne den Speicherbildschirm',\n\t'SaveInSlot': 'In Slot speichern',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'Optionen',\n\t'SettingsButton': 'Ɩffne die Optionen',\n\t'Show': 'Einblenden',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'Bist Du sicher, dass Du diesen Slot lƶschen mƶchtest?',\n\t'SlotOverwrite': 'Bist Du sicher, dass Du diesen Slot überschreiben mƶchtest?',\n\t'Sound': 'Sound-LautstƤrke',\n\t'Start': 'Start',\n\t'Stop': 'Stop',\n\n\t'TextSpeed': 'Textgeschwindigkeit',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Stimmen-LautstƤrke',\n\n\t'Windowed': 'Fenstermodus'\n};","/**\n * ============================================================\n * Bahasa_Indonesia\n * ============================================================\n *\n * Translators:\n *\n * mnafisalmukhdi1 \n */\n\n\n\nexport default {\n\t'AdvanceHelp': 'Untuk melanjutkan permainan, klik kiri atau ketuk di mana saja pada layar permainan atau tekan tombol spasi',\n\t'AllowPlayback': 'Klik di sini untuk menyalakan putar balik audio',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Nyalakan main otomatis',\n\t'AutoPlaySpeed': 'Kecepatan main otomatis',\n\n\t'Back': 'Kembali',\n\t'BackButton': 'Kembali',\n\n\t'Cancel': 'Batalkan',\n\t'Close': 'Tutup',\n\t'Confirm': 'Apakah Anda ingin keluar?',\n\t'Credits': 'Kredit',\n\n\t'Delete': 'Hapus',\n\t'DialogLogButton': 'Tampilkan log dialog',\n\n\t'FullScreen': 'Layar Penuh',\n\n\t'Gallery': 'Galeri',\n\n\t'Help': 'Bantuan',\n\t'Hide': 'Sembunyikan',\n\t'HideButton': 'Sembunyikan kotak teks',\n\n\t'iOSAudioWarning': 'Pengaturan audio tidak didukung pada iOS',\n\n\t'KeyboardShortcuts': 'Pintasan papan tombol',\n\n\t'Language': 'Bahasa',\n\t'Load': 'Muat',\n\t'LoadAutoSaveSlots': 'Permainan yang Tersimpan Otomatis',\n\t'LoadButton': 'Buka layar pemuatan',\n\t'Loading': 'Memuat',\n\t'LoadingMessage': 'Tunggu sementara aset dimuat',\n\t'LoadSlots': 'Permainan yang Tersimpan',\n\t'LocalStorageWarning': 'Penyimpanan lokal tidak tersedia pada peramban ini',\n\t'Log': 'Log',\n\n\t'Music': 'Volume Musik',\n\n\t'NewContent': 'Ada konten baru tersedia, muat ulang halaman untuk mendapatkan versi terkini',\n\t'NoSavedGames': 'Tidak ada permainan yang tersimpan',\n\t'NoAutoSavedGames': 'Tidak ada permainan yang tersimpan otomatis',\n\t'NoDialogsAvailable': 'Tidak ada dialog yang tersedia. Dialog akan ditampilkan di sini ketika muncul',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Mohon putar perangkat Anda untuk bermain',\n\t'Overwrite': 'Timpa',\n\n\t'QuickButtons': 'Tombol Menu Pintas',\n\t'QuickMenu': 'Menu Pintas',\n\t'Quit': 'Keluar',\n\t'QuitButton': 'Keluar Permainan',\n\n\t'Resolution': 'Resolusi',\n\n\t'Save': 'Simpan',\n\t'SaveButton': 'Buka layar Simpan',\n\t'SaveInSlot': 'Simpan di slot',\n\t'SelectYourLanguage': 'Pilih bahasa Anda',\n\t'Settings': 'Pengaturan',\n\t'SettingsButton': 'Buka layar Pengaturan',\n\t'Show': 'Tampilkan',\n\t'Skip': 'Lewati',\n\t'SkipButton': 'Masuki mode lewati',\n\t'SlotDeletion': 'Apakah Anda yakin ingin menghapus slot ini?',\n\t'SlotOverwrite': 'Apakah Anda yakin ingin menimpa slot ini?',\n\t'Sound': 'Volume Bunyi',\n\t'Start': 'Mulai',\n\t'Stop': 'Berhenti',\n\n\t'TextSpeed': 'Kecepatan Teks',\n\n\t'Video': 'Volume Video',\n\t'Voice': 'Volume Suara',\n\n\t'Windowed': 'Berjendela'\n};","/**\n * ============================================================\n * ę—„ęœ¬čŖž\n * ============================================================\n *\n * Translators:\n *\n *\n */\n\nexport default {\n\t'AdvanceHelp': 'ć‚²ćƒ¼ćƒ ć‚’é€²ć‚ć‚‹ćŸć‚ć«ćÆć€ć‚¹ćƒšćƒ¼ć‚¹ć‚­ćƒ¼ć‚’ęŠ¼ć™ć‹ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'ć‚Ŗćƒ¼ćƒ‡ć‚£ć‚Ŗ',\n\t'AutoPlay': '自動',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'č‡Ŗå‹•å†ē”Ÿé€Ÿåŗ¦',\n\n\t'Back': 'å·»ćęˆ»ć—',\n\t'BackButton': 'å·»ćęˆ»ć—',\n\n\t'Cancel': 'ć‚­ćƒ£ćƒ³ć‚»ćƒ«',\n\t'Close': '閉悁恦',\n\t'Confirm': 'ēµ‚äŗ†ć—ć¾ć™ć‹ļ¼Ÿ',\n\t'Credits': 'Credits',\n\n\t'Delete': 'Delete',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'å…Øē”»é¢č”Øē¤ŗ',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': 'ćƒ˜ćƒ«ćƒ—',\n\t'Hide': 'ć€Œéžč”Øē¤ŗć€',\n\t'HideButton': 'ćƒ†ć‚­ć‚¹ćƒˆć‚’éš ć—ć¾ć™',\n\n\t'iOSAudioWarning': 'iOSć§ćÆć‚Ŗćƒ¼ćƒ‡ć‚£ć‚ŖčØ­å®šćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ć¾ć›ć‚“',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'Language': 'čØ€čŖž',\n\t'Load': 'ćƒ­ćƒ¼ćƒ‰',\n\t'LoadAutoSaveSlots': 'č‡Ŗå‹•ēš„ć«äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ',\n\t'LoadButton': 'ćƒ­ćƒ¼ćƒ‰ē”»é¢ć‚’é–‹ćć¾ć™',\n\t'Loading': '読み込み中',\n\t'LoadingMessage': 'ćƒ•ć‚”ć‚¤ćƒ«ćŒćƒ­ćƒ¼ćƒ‰ć•ć‚Œć‚‹ć®ć‚’å¾…ć”ć¾ć™',\n\t'LoadSlots': 'äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ',\n\t'LocalStorageWarning': 'ć“ć®ćƒ–ćƒ©ć‚¦ć‚¶ć§ćÆćƒ­ćƒ¼ć‚«ćƒ«ć‚¹ćƒˆćƒ¬ćƒ¼ć‚øćÆä½æē”Øć§ćć¾ć›ć‚“',\n\t'Log': 'Log',\n\n\t'Music': 'éŸ³ę„½ć®éŸ³é‡',\n\n\t'NewContent': 'There is new content available, reload the page to get the latest version',\n\t'NoSavedGames': 'äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ćÆć‚ć‚Šć¾ć›ć‚“',\n\t'NoAutoSavedGames': 'č‡Ŗå‹•ēš„ć«äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ćÆć‚ć‚Šć¾ć›ć‚“',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Please rotate your device to play',\n\t'Overwrite': 'äøŠę›øć',\n\n\t'QuickButtons': 'ć‚Æć‚¤ćƒƒć‚Æćƒ”ćƒ‹ćƒ„ćƒ¼ćƒœć‚æćƒ³',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': '終了する',\n\t'QuitButton': 'ć‚²ćƒ¼ćƒ ć‚’ēµ‚äŗ†ć—ć¾ć™',\n\n\t'Resolution': 'č§£åƒåŗ¦',\n\n\t'Save': 'ć‚»ćƒ¼ćƒ–',\n\t'SaveButton': 'äæå­˜ē”»é¢ć‚’é–‹ćć¾ć™',\n\t'SaveInSlot': 'ć‚¹ćƒ­ćƒƒćƒˆć«ć‚»ćƒ¼ćƒ–ć™ć‚‹',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ē’°å¢ƒčØ­å®š',\n\t'SettingsButton': 'čØ­å®šē”»é¢ć‚’é–‹ćć¾ć™',\n\t'Show': 'ć‚·ćƒ§ćƒ¼',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'ęœ¬å½“ć«ć“ć®ć‚¹ćƒ­ćƒƒćƒˆć‚’å‰Šé™¤ć—ć¾ć™ć‹ļ¼Ÿ',\n\t'SlotOverwrite': 'ęœ¬å½“ć«ć“ć®ć‚¹ćƒ­ćƒƒćƒˆć‚’äøŠę›øćć—ć¾ć™ć‹ļ¼Ÿ',\n\t'Sound': 'åŠ¹ęžœéŸ³ć®éŸ³é‡',\n\t'Start': 'ć‚¹ć‚æćƒ¼ćƒˆ',\n\t'Stop': '停止',\n\n\t'TextSpeed': 'ćƒ†ć‚­ć‚¹ćƒˆć‚¹ćƒ”ćƒ¼ćƒ‰',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'ćƒœć‚¤ć‚¹ć®éŸ³é‡',\n\n\t'Windowed': 'ēŖ“'\n};","/**\n * ============================================================\n * ķ•œźµ­ģ–“\n * ============================================================\n *\n * Translators:\n *\n * Lee Yunseok \n */\n\n\n\nexport default {\n\t'AdvanceHelp': 'ź²Œģž„ģ„ ģ§„ķ–‰ķ•˜ė ¤ė©“ ź²Œģž„ ķ™”ė©“ģ„ 좌큓릭 ė˜ėŠ” ķƒ­ķ•˜ź±°ė‚˜ ģŠ¤ķŽ˜ģ“ģŠ¤ 키넼 ėˆ„ė„“ģ„øģš”',\n\t'AllowPlayback': 'ģ˜¤ė””ģ˜¤ ģž¬ģƒģ„ ķ—ˆģš©ķ•˜ė ¤ė©“ 여기넼 ķ“ė¦­ķ•˜ģ„øģš”',\n\t'Audio': 'ģ˜¤ė””ģ˜¤',\n\t'AutoPlay': 'ģžė™ģž¬ģƒ',\n\t'AutoPlayButton': 'ģžė™ģž¬ģƒė‹Øģ¶”',\n\t'AutoPlaySpeed': 'ģžė™ģž¬ģƒ ģ†ė„',\n\n\t'Back': '되감기',\n\t'BackButton': 'ģ“ģ „ 지문 볓기',\n\n\t'Cancel': 'ģ·Øģ†Œ',\n\t'Close': 'ė‹«źø°',\n\t'Confirm': 'ģ¢…ė£Œķ•˜ģ‹œź² ģ–“ģš”?',\n\t'Credits': 'ė§Œė“ ģ“',\n\n\t'Delete': 'ģ‚­ģ œ',\n\t'DialogLogButton': 'ėŒ€ģ‚¬ė” 볓기',\n\n\t'FullScreen': '전첓화멓',\n\n\t'Gallery': '갤러리',\n\n\t'Help': 'ė„ģ›€ė§',\n\t'Hide': '숨기기',\n\t'HideButton': '지문 ģ°½ģ„ ģˆØź¹ė‹ˆė‹¤',\n\n\t'iOSAudioWarning': 'ģ˜¤ė””ģ˜¤ ģ„¤ģ •ģ€ iOSģ—ģ„œ ģ§€ģ›ė˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤',\n\n\t'KeyboardShortcuts': 'ķ‚¤ė³“ė“œ 단축키',\n\n\t'Language': 'ģ–øģ–“',\n\t'Load': '불러오기',\n\t'LoadAutoSaveSlots': 'ģžė™ģ €ģž„ėœ ź²Œģž„',\n\t'LoadButton': '불러오기 화멓 ģ—“źø°',\n\t'Loading': 'ė¶ˆėŸ¬ģ˜¤ėŠ” 중',\n\t'LoadingMessage': 'ģžģ‚°ģ„ ė¶ˆėŸ¬ģ˜¤ėŠ” ė™ģ•ˆ źø°ė‹¤ė ¤ģ£¼ģ„øģš”',\n\t'LoadSlots': 'ģ €ģž„ėœ ź²Œģž„',\n\t'LocalStorageWarning': '딜컬 ģ €ģž„ģ†ŒėŠ” ģ“ ėøŒė¼ģš°ģ €ģ—ģ„œ ģ‚¬ģš© ė¶ˆź°€ėŠ„ķ•©ė‹ˆė‹¤',\n\t'Log': 'ėŒ€ģ‚¬ė”',\n\n\t'Music': 'ģŒģ•… ģŒėŸ‰',\n\n\t'NewContent': 'ķŽ˜ģ“ģ§€ė„¼ ģƒˆė”œź³ ģ¹Øķ•˜ėŠ” 것으딜 ģµœģ‹  ė²„ģ „ģ˜ 새딜욓 ģ½˜ķ…ģø ė„¼ ģ‚¬ģš© ź°€ėŠ„ķ•  수 ģžˆģŠµė‹ˆė‹¤',\n\t'NoSavedGames': 'ģ €ģž„ėœ ź²Œģž„ģ“ ģ—†ģŠµė‹ˆė‹¤',\n\t'NoAutoSavedGames': 'ģžė™ģœ¼ė”œ ģ €ģž„ėœ ź²Œģž„ģ“ ģ—†ģŠµė‹ˆė‹¤',\n\t'NoDialogsAvailable': 'ėŒ€ķ™” ģƒģžė„¼ ģ‚¬ģš©ķ•  수 ģ—†ģŠµė‹ˆė‹¤. ģ‚¬ģš©ķ•  수 ģžˆź²Œ 되멓 여기에 ėŒ€ķ™” ģƒģžź°€ ė‚˜ķƒ€ė‚©ė‹ˆė‹¤',\n\n\t'OK': 'ķ™•ģø',\n\t'OrientationWarning': 'ķ”Œė ˆģ“ė„¼ ģœ„ķ•“ 기기넼 ķšŒģ „ķ•“ģ£¼ģ„øģš”',\n\t'Overwrite': 'ė®ģ–“ģ“°źø°',\n\n\t'QuickButtons': '빠넸 메뉓 단추',\n\t'QuickMenu': '빠넸 메뉓',\n\t'Quit': 'ģ¢…ė£Œ',\n\t'QuitButton': 'ź²Œģž„ ģ¢…ė£Œ',\n\n\t'Resolution': 'ķ•“ģƒė„',\n\n\t'Save': 'ģ €ģž„ķ•˜źø°',\n\t'SaveButton': 'ģ €ģž„ ķ™”ė©“ģ„ ģ—½ė‹ˆė‹¤',\n\t'SaveInSlot': 'ģŠ¬ė”Æģ— ģ €ģž„',\n\t'SelectYourLanguage': '언얓넼 ģ„ ķƒķ•“ģ£¼ģ„øģš”',\n\t'Settings': '설정',\n\t'SettingsButton': '설정 ķ™”ė©“ģ„ ģ—½ė‹ˆė‹¤',\n\t'Show': 'ė³“ģ“źø°',\n\t'Skip': 'ė„˜źø°źø°',\n\t'SkipButton': 'ė„˜źø°źø° ėŖØė“œ ģ‚¬ģš©',\n\t'SlotDeletion': 'ģ“ ģŠ¬ė”Æģ„ ģ‚­ģ œķ•˜ģ‹œź² ģ–“ģš”?',\n\t'SlotOverwrite': 'ģ“ ģŠ¬ė”Æģ— ė®ģ–“ģ“°ģ‹œź² ģ–“ģš”?',\n\t'Sound': 'ģŒķ–„ ģŒėŸ‰',\n\t'Start': 'ģ‹œģž‘',\n\t'Stop': '중지',\n\n\t'TextSpeed': 'źø€ģž ģ†ė„',\n\n\t'Video': 'ė¹„ė””ģ˜¤ ģŒėŸ‰',\n\t'Voice': 'ģŒģ„± ģŒėŸ‰',\n\n\t'Windowed': 'ģ°½ 화멓'\n};\n","/**\n * ============================================================\n * PortuguĆŖs\n * ============================================================\n *\n * Translators:\n *\n * fsvieira \n */\n\nexport default {\n\t'AdvanceHelp': 'Pode avanƧar no jogo usando o botĆ£o esquerdo do rato, tocar em qualquer sitĆ­o do ecrĆ£ de jogo ou carregar na barra de espaƧo.',\n\t'AllowPlayback': 'Clique aqui para permitir a reprodução de Ć”udio',\n\t'Audio': 'Ɓudio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Ativar reprodução automĆ”tica',\n\t'AutoPlaySpeed': 'Velocidade de reprodução automĆ”tica',\n\n\t'Back': 'Voltar',\n\t'BackButton': 'Voltar',\n\n\t'Cancel': 'Cancelar',\n\t'Close': 'Fechar',\n\t'Confirm': 'Deseja sair?',\n\t'Credits': 'CrĆ©ditos',\n\n\t'Delete': 'Apagar',\n\t'DialogLogButton': 'Mostrar registos de diĆ”logo',\n\n\t'FullScreen': 'EcrĆ£ Inteiro',\n\n\t'Gallery': 'Galeria',\n\n\t'Help': 'Ajuda',\n\t'Hide': 'Esconder',\n\t'HideButton': 'Esconder caixa de texto',\n\n\t'iOSAudioWarning': 'As configuraƧƵes de Ć”udio nĆ£o sĆ£o suportadas no iOS',\n\n\t'KeyboardShortcuts': 'Atalhos de Teclado',\n\n\t'Language': 'LĆ­ngua',\n\t'Load': 'Carregar',\n\t'LoadAutoSaveSlots': 'Jogos Salvos Automaticamente',\n\t'LoadButton': 'Abrir EcrĆ£ de Carregamento',\n\t'Loading': 'A Carregar',\n\t'LoadingMessage': 'Aguarde enquanto os recursos sĆ£o carregados',\n\t'LoadSlots': 'Jogos Salvos',\n\t'LocalStorageWarning': 'O armazenamento local nĆ£o estĆ” disponĆ­vel neste navegador',\n\t'Log': 'Registo',\n\n\t'Music': 'Volume de MĆŗsica',\n\n\t'NewContent': 'HĆ” novo conteĆŗdo disponĆ­vel, recarregue a pĆ”gina para obter a versĆ£o mais recente',\n\t'NoSavedGames': 'Nenhum jogo salvo',\n\t'NoAutoSavedGames': 'Nenhum jogo salvo automaticamente',\n\t'NoDialogsAvailable': 'NĆ£o hĆ” diĆ”logos disponĆ­veis. Os diĆ”logos aparecerĆ£o aqui quando ocorrerem no jogo',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Por favor rode o seu dispositivo para jogar',\n\t'Overwrite': 'Substituir',\n\n\t'QuickButtons': 'BotƵes de acesso rĆ”pido',\n\t'QuickMenu': 'Menu de acesso rĆ”pido',\n\t'Quit': 'Sair',\n\t'QuitButton': 'Sair do Jogo',\n\n\t'Resolution': 'Resolução',\n\n\t'Save': 'Salvar',\n\t'SaveButton': 'Abrir ecrĆ£ de salvar.',\n\t'SaveInSlot': 'Salvar em ranhura',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ConfiguraƧƵes',\n\t'SettingsButton': 'Abrir o EcrĆ£ de ConfiguraƧƵes',\n\t'Show': 'Mostrar',\n\t'Skip': 'Ignorar',\n\t'SkipButton': 'Entrar em modo de ignorar',\n\t'SlotDeletion': 'Tem a certeza de que deseja eliminar este jogo?',\n\t'SlotOverwrite': 'Tem a certeza de que deseja substituir este jogo?',\n\t'Sound': 'Volume de Som',\n\t'Start': 'InĆ­cio',\n\t'Stop': 'Parar',\n\n\t'TextSpeed': 'Velocidade de Texto',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Volume de Voz',\n\n\t'Windowed': 'Em Janela'\n};","/**\n * ============================================================\n * Russian\n * ============================================================\n *\n * Translators:\n *\n * Sergey Kuznetsov \n * Patience Daur \n */\n\nexport default {\n\t'AdvanceHelp': 'Чтобы ŠøŠ³Ń€Š°Ń‚ŃŒ, нажимайте на пробел или на Š»ŠµŠ²ŃƒŃŽ кнопку Š¼Ń‹ŃˆŠø.',\n\t'AllowPlayback': 'Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ звуковое сопровожГение',\n\t'Audio': 'Š—Š²ŃƒŠŗ',\n\t'AutoPlay': 'Авто',\n\t'AutoPlayButton': 'Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ авточтение',\n\t'AutoPlaySpeed': 'Š”ŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ Š°Š²Ń‚Š¾Ń‡Ń‚ŠµŠ½ŠøŃ',\n\n\t'Back': 'ŠŠ°Š·Š°Š“',\n\t'BackButton': 'Š’ŠµŃ€Š½ŃƒŃ‚ŃŒŃŃ назаГ',\n\n\t'Cancel': 'ŠžŃ‚Š¼ŠµŠ½Š°',\n\t'Close': 'Š—Š°ŠŗŃ€Ń‹Ń‚ŃŒ',\n\t'Confirm': 'Š’Ń‹ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾ хотите выйти?',\n\t'Credits': 'Авторы',\n\n\t'Delete': 'Š£Š“Š°Š»ŠøŃ‚ŃŒ',\n\t'DialogLogButton': 'ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚ŃŒ Š¶ŃƒŃ€Š½Š°Š» Гиалогов',\n\n\t'FullScreen': 'ŠŸŠ¾Š»Š½Ń‹Š¹ ŃŠŗŃ€Š°Š½',\n\n\t'Gallery': 'Š“Š°Š»ŠµŃ€ŠµŃ',\n\n\t'Help': 'ŠŸŠ¾Š¼Š¾Ń‰ŃŒ',\n\t'Hide': 'Š”ŠŗŃ€Ń‹Ń‚ŃŒ',\n\t'HideButton': 'Š”ŠŗŃ€Ń‹Ń‚ŃŒ текст',\n\n\t'iOSAudioWarning': 'ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø звука не ŠæŠ¾Š“Š“ŠµŃ€Š¶ŠøŠ²Š°ŃŽŃ‚ŃŃ на iOS.',\n\n\t'KeyboardShortcuts': 'Š“Š¾Ń€ŃŃ‡ŠøŠµ клавиши',\n\n\t'Language': 'Язык',\n\t'Load': 'Š—Š°Š³Ń€ŃƒŠ·ŠøŃ‚ŃŒ',\n\t'LoadAutoSaveSlots': 'Автосохранённые игры',\n\t'LoadButton': 'ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ Š·Š°Š³Ń€ŃƒŠ·ŠŗŠø',\n\t'Loading': 'Š—Š°Š³Ń€ŃƒŠ·ŠŗŠ°',\n\t'LoadingMessage': 'ŠŸŠ¾Š“Š¾Š¶Š“ŠøŃ‚Šµ, ŠæŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, игра Š·Š°Š³Ń€ŃƒŠ¶Š°ŠµŃ‚ся',\n\t'LoadSlots': 'Дохранённые игры',\n\t'LocalStorageWarning': 'Š›Š¾ŠŗŠ°Š»ŃŒŠ½Š¾Šµ хранилище Š½ŠµŠ“Š¾ŃŃ‚ŃƒŠæŠ½Š¾ в ŃŃ‚Š¾Š¼ Š±Ń€Š°ŃƒŠ·ŠµŃ€Šµ.',\n\t'Log': 'Š–ŃƒŃ€Š½Š°Š»',\n\n\t'Music': 'Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ Š¼ŃƒŠ·Ń‹ŠŗŠø',\n\n\t'NewContent': 'Š”Š¾ŃŃ‚ŃƒŠæŠ½Š¾ обновление, ŠæŠµŃ€ŠµŠ·Š°Š³Ń€ŃƒŠ·ŠøŃ‚Šµ ŃŃ‚Ń€Š°Š½ŠøŃ†Ńƒ',\n\t'NoSavedGames': 'ŠŠµŃ‚ сохранённых игр',\n\t'NoAutoSavedGames': 'ŠŠµŃ‚ автосохранённых игр',\n\t'NoDialogsAvailable': 'ŠŠµŃ‚ Гиалогов. Диалоги Š±ŃƒŠ“ŃƒŃ‚ ŠæŠ¾ŃŠ²Š»ŃŃ‚ŃŒŃŃ зГесь по мере ŠæŃ€Š¾Ń…Š¾Š¶Š“ŠµŠ½ŠøŃ игры',\n\n\t'OK': 'ŠžŠš',\n\t'OrientationWarning': 'Чтобы ŠøŠ³Ń€Š°Ń‚ŃŒ, ŠæŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, поверните Š’Š°ŃˆŠµ ŃƒŃŃ‚Ń€Š¾Š¹ŃŃ‚Š²Š¾',\n\t'Overwrite': 'ŠŸŠµŃ€ŠµŠ·Š°ŠæŠøŃŠ°Ń‚ŃŒ',\n\n\t'QuickButtons': 'Кнопки быстрого Š¼ŠµŠ½ŃŽ',\n\t'QuickMenu': 'Быстрое Š¼ŠµŠ½ŃŽ',\n\t'Quit': 'Выйти',\n\t'QuitButton': 'Выйти ŠøŠ· игры',\n\n\t'Resolution': 'Š Š°Š·Ń€ŠµŃˆŠµŠ½ŠøŠµ',\n\n\t'Save': 'Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ',\n\t'SaveButton': 'ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ ŃŠ¾Ń…Ń€Š°Š½ŠµŠ½ŠøŃ',\n\t'SaveInSlot': 'Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø',\n\t'SettingsButton': 'ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ настроек',\n\t'Show': 'ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚ŃŒ',\n\t'Skip': 'ŠŸŃ€Š¾ŠæŃƒŃŃ‚ŠøŃ‚ŃŒ',\n\t'SkipButton': 'АвтоперехоГ',\n\t'SlotDeletion': 'Š’Ń‹ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾ хотите ŃƒŠ“Š°Š»ŠøŃ‚ŃŒ ŃŃ‚Š¾ сохранение?',\n\t'SlotOverwrite': 'Š’Ń‹ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾ хотите ŠæŠµŃ€ŠµŠ·Š°ŠæŠøŃŠ°Ń‚ŃŒ ŃŃ‚Š¾ сохранение?',\n\t'Sound': 'Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ ŃŃ„Ń„ŠµŠŗŃ‚Š¾Š²',\n\t'Start': 'ŠŠ°Ń‡Š°Ń‚ŃŒ ŠøŠ³Ń€Ńƒ',\n\t'Stop': 'Дтоп',\n\n\t'TextSpeed': 'Š”ŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ текста',\n\n\t'Video': 'Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ виГео',\n\t'Voice': 'Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ голоса',\n\n\t'Windowed': 'ŠžŠŗŠ¾Š½Š½Ń‹Š¹ режим'\n};","/**\n * ============================================================\n * EspaƱol\n * ============================================================\n *\n * Translators:\n *\n * Hyuchia \n */\n\nexport default {\n\t'AdvanceHelp': 'Para avanzar en el juego, presiona espacio o haz click',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Activar juego automĆ”tico',\n\t'AutoPlaySpeed': 'Velocidad de Juego AutomĆ”tico',\n\n\t'Back': 'AtrĆ”s',\n\t'BackButton': 'AtrĆ”s',\n\n\t'Cancel': 'Cancelar',\n\t'Close': 'Cerrar',\n\t'Confirm': 'ĀæDeseas salir?',\n\t'Credits': 'CrĆ©ditos',\n\n\t'Delete': 'Eliminar',\n\t'DialogLogButton': 'Mostrar el historial de dialogos',\n\n\t'FullScreen': 'Pantalla Completa',\n\n\t'Gallery': 'GalerĆ­a',\n\n\t'Help': 'Ayuda',\n\t'Hide': 'Ocultar',\n\t'HideButton': 'Esconder el Texto',\n\n\t'iOSAudioWarning': 'Las configuraciones de Audio no estĆ”n disponibles en iOS',\n\n\t'KeyboardShortcuts': 'Atajos de Teclado',\n\n\t'Language': 'Lenguaje',\n\t'Load': 'Cargar',\n\t'LoadAutoSaveSlots': 'Juegos Guardados Automaticamente',\n\t'LoadButton': 'Abrir la Pantalla de Cargar',\n\t'Loading': 'Cargando',\n\t'LoadingMessage': 'Espere mientras se cargan los archivos',\n\t'LoadSlots': 'Juegos Guardados',\n\t'LocalStorageWarning': 'El Almacenaje Local no estĆ” disponible en este navegador',\n\t'Log': 'Historial',\n\n\t'Music': 'Volumen de la MĆŗsica',\n\n\t'NewContent': 'Un nuevo contenido estĆ” disponible, recarga la pĆ”gina para obtener la versión mĆ”s nueva',\n\t'NoSavedGames': 'No hay juegos guardados',\n\t'NoAutoSavedGames': 'No hay juegos guardados automaticamente',\n\t'NoDialogsAvailable': 'No hay dialogos disponibles. Los dialogos aparecerĆ”n aqui una vez que ocurran en el juego',\n\n\t'OK': 'Aceptar',\n\t'OrientationWarning': 'Por favor rota tu dispositivo para jugar',\n\t'Overwrite': 'Sobreescribir',\n\n\t'QuickButtons': 'Botones del MenĆŗ RĆ”pido',\n\t'QuickMenu': 'MenĆŗ RĆ”pido',\n\t'Quit': 'Salir',\n\t'QuitButton': 'Salir del Juego',\n\n\t'Resolution': 'Resolución',\n\n\t'Save': 'Guardar',\n\t'SaveButton': 'Abrir la Pantalla de Guardar',\n\t'SaveInSlot': 'Guardar en ranura',\n\t'SelectYourLanguage': 'Selecciona tu idioma',\n\t'Settings': 'Configuración',\n\t'SettingsButton': 'Abrir la Pantalla de Configuración',\n\t'Show': 'Mostrar',\n\t'Skip': 'Saltar',\n\t'SkipButton': 'Entrar al modo de salto',\n\t'SlotDeletion': 'ĀæEstĆ” seguro de querer eliminar este juego?',\n\t'SlotOverwrite': 'ĀæEstĆ” seguro de querer Sobreescribir este juego?',\n\t'Sound': 'Volumen de los Sonidos',\n\t'Start': 'Comenzar',\n\t'Stop': 'Detener',\n\n\t'TextSpeed': 'Velocidad del Texto',\n\n\t'Video': 'Volumen de los Videos',\n\t'Voice': 'Volumen de la Voz',\n\n\t'Windowed': 'Ventana'\n};","/**\n * ============================================================\n * Toki Pona\n * ============================================================\n *\n * Translators:\n *\n * jan Inkepa \n */\n\n\n\nexport default {\n\t'AdvanceHelp': 'sina ken musi e musi ni kepeken ilo luka anu nena palisa pi ilo sitelen.',\n\t'AllowPlayback': 'sina wile kute e musi ni la o luka e mi.',\n\t'Audio': 'kalama',\n\t'AutoPlay': 'luka ala',\n\t'AutoPlayButton': 'o open e pali musi kepeken luka ala.',\n\t'AutoPlaySpeed': 'tenpo tawa pi luka ala',\n\n\t'Back': 'tenpo pini',\n\t'BackButton': 'o tawa tenpo pini.',\n\n\t'Cancel': 'ala',\n\t'Close': 'pini',\n\t'Confirm': 'sina wile ala wile pini e musi?',\n\t'Credits': 'pona tawa',\n\n\t'Delete': 'weka',\n\t'DialogLogButton': 'mi wile lukin e lipu pi toki jan.',\n\n\t'FullScreen': 'ma ale pi ilo lukin',\n\n\t'Gallery': 'ma sitelen',\n\n\t'Help': 'kama sona',\n\t'Hide': 'weka',\n\t'HideButton': 'o weka e palisa nena.',\n\n\t'iOSAudioWarning': 'sina ken ala ante e kalama lon ilo iOS',\n\n\t'KeyboardShortcuts': 'pali pi ilo sitelen',\n\n\t'Language': 'toki',\n\t'Load': 'awen musi',\n\t'LoadAutoSaveSlots': 'musi li awen e musi',\n\t'LoadButton': 'lipu awen pi tenpo pini.',\n\t'Loading': 'musi li kama...',\n\t'LoadingMessage': 'pali e awen',\n\t'LoadSlots': 'lipu awen',\n\t'LocalStorageWarning': 'mi ken ala kepeken e ken Local Storage lon ilo ni',\n\t'Log': 'lipu toki',\n\n\t'Music': 'kalama musi',\n\n\t'NewContent': 'musi ni li kama sin! sina wile musi e musi sin, la o kama sin tawa lipu ni.',\n\t'NoSavedGames': 'awen musi pi tenpo pina li lon ala.',\n\t'NoAutoSavedGames': 'awen musi pi tenpo pina li lon ala.',\n\t'NoDialogsAvailable': 'tenpo pini la toki jan li lon ala. jan li toki, la sina ken lukin ni lon lipu ni.',\n\n\t'OK' : 'pona',\n\t'OrientationWarning': 'sina wile musi, la o sike e ilo sona sina.',\n\t'Overwrite': 'ante',\n\n\t'QuickButtons': 'nena pi pali wawa',\n\t'QuickMenu': 'palisa nena',\n\t'Quit': 'pini',\n\t'QuitButton': 'o pini e musi.',\n\n\t'Resolution': 'suli musi tawa ilo sitelen',\n\n\t'Save': 'o awen e musi',\n\t'SaveButton': 'o lukin e lipu pi awen musi.',\n\t'SaveInSlot': 'o awen e musi lon ma.',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ante',\n\t'SettingsButton': 'o ante e musi.',\n\t'Show': 'open',\n\t'Skip': 'tawa tenpo kama',\n\t'SkipButton': 'o tawa tenpo kama.',\n\t'SlotDeletion': 'sina wile ala wile weka e awen musi ni?',\n\t'SlotOverwrite': 'sina wile ala wile ante e awen musi ni?',\n\t'Sound': 'kalama ijo',\n\t'Start': 'musi sin',\n\t'Stop': 'pini',\n\n\t'TextSpeed': 'tenpo kama pi sitelen toki',\n\n\t'Video': 'kalama pi sitelen tawa',\n\t'Voice': 'kalama toki',\n\n\t'Windowed': 'ma lili pi ilo lukin',\n};\n","export * from './src/Component';\nexport * from './src/ShadowComponent';\nexport * from './src/Util';","/**\n *\n * @param {*} callable\n * @param {*} context\n * @param {...any} args\n */\nexport function callAsync (callable, context, ...args) {\n\ttry {\n\t\t// Call the provided function using the context and arguments given\n\t\tconst result = callable.apply (context, args);\n\n\t\t// Check if the function returned a simple value or a Promise\n\t\tif (result instanceof Promise) {\n\t\t\treturn result;\n\t\t} else {\n\t\t\treturn Promise.resolve (result);\n\t\t}\n\t} catch (e) {\n\t\treturn Promise.reject (e);\n\t}\n}\n\n/**\n *\n * @param {*} object\n * @param {*} encapsulation\n * @param {*} level\n */\nexport function deserializeCSS (object, encapsulation = '', level = 0, ) {\n\tconst keys = Object.keys (object);\n\n\tlet css = '';\n\n\tfor (const key of keys) {\n\t\tif (typeof object[key] === 'object') {\n\t\t\tif (encapsulation) {\n\t\t\t\tif (key.indexOf ('&') === 0) {\n\t\t\t\t\tcss += `${key.replace(/&/g, encapsulation)} {\\n`;\n\t\t\t\t} else {\n\t\t\t\t\tcss += `${encapsulation} ${key} {\\n`;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcss += `${key} {\\n`;\n\t\t\t}\n\n\t\t\tconst properties = Object.keys (object[key]);\n\t\t\tfor (const property of properties) {\n\t\t\t\tcss += '\\t'.repeat (level);\n\t\t\t\tif (typeof object[key][property] === 'object') {\n\t\t\t\t\tconst temp = {};\n\t\t\t\t\ttemp[property] = object[key][property];\n\n\t\t\t\t\tcss += deserializeCSS (temp, encapsulation, level + 1);\n\t\t\t\t} else {\n\t\t\t\t\tcss += `\\t${property}: ${object[key][property]};\\n`;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcss += '}\\n';\n\t\t} else {\n\t\t\tcss += '\\t'.repeat (level);\n\t\t\tcss += `\\t${key}: ${object[key]};\\n`;\n\t\t}\n\t}\n\n\treturn css;\n}\n","/* eslint-disable no-unused-vars */\nimport { callAsync, deserializeCSS } from './Util';\n\n/**\n * A component represents a custom HTML element, and has all of its functionality\n * as well as its general structure and representation self contained on it.\n *\n * @class Component\n */\nexport class Component extends HTMLElement {\n\n\t/**\n\t * _tag {String} - The tag name for the component\n\t *\n\t * @static\n\t */\n\tstatic _tag;\n\n\tstatic get tag () {\n\t\tif (typeof this._tag === 'undefined') {\n\t\t\tlet tag = this.name;\n\t\t\tconst matches = tag.match (/([A-Z])/g);\n\t\t\tif (matches !== null) {\n\t\t\t\tfor (const match of matches) {\n\t\t\t\t\ttag = tag.replace (match, `-${match}`.toLowerCase ());\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis._tag = tag.slice (1);\n\t\t}\n\t\treturn this._tag;\n\t}\n\n\tstatic set tag (value) {\n\t\tthis._tag = value;\n\t}\n\n\t/**\n\t * These are the types that can be set as properties on the HTML code of the\n\t * element.\n\t */\n\tstatic _explicitPropTypes = ['boolean', 'string', 'number'];\n\n\t/**\n\t *\n\t *\n\t * @static\n\t */\n\tstatic _template = undefined;\n\n\tstatic template (html = null, context = null) {\n\t\tif (html !== null) {\n\t\t\tthis._template = html;\n\t\t\tdocument.querySelectorAll(this.tag).forEach((instance) => {\n\t\t\t\tif (instance._isReady) {\n\t\t\t\t\tinstance.forceRender ();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\n\t\t\t// Check if no parameters were set but the HTML is still a function to be called\n\t\t\tif (typeof this._template === 'function') {\n\t\t\t\treturn this._template.call (context);\n\t\t\t}\n\n\t\t\t// If this is reached, the HTML was just a string\n\t\t\treturn this._template;\n\t\t}\n\t}\n\n\tconstructor () {\n\t\tsuper ();\n\t\tthis._children = this.innerHTML.trim ();\n\n\t\t// State Object for the component\n\t\tthis._state = {};\n\n\t\t// Props Object for the component\n\t\tthis._props = {};\n\n\t\t// List of callbacks to run once the component has been mounted successfully\n\t\tthis._ready = [];\n\n\t\tthis._connected = false;\n\t\tthis._isReady = false;\n\n\t\tthis._style = {};\n\n\t\tthis._styleElement = null;\n\t}\n\n\t/**\n\t * width - Determines the real (computed) width of the element\n\t *\n\t * @return {int} - Computed Width of the element on pixels\n\t */\n\tget width () {\n\t\treturn parseInt (getComputedStyle (this).width.replace ('px', ''));\n\t}\n\n\tset width (value) {\n\t\tthis.style.width = value;\n\t}\n\n\t/**\n\t * height - Determines the real (computed) height of the element\n\t *\n\t * @return {int} - Computed height of the element on pixels\n\t */\n\tget height () {\n\t\treturn parseInt (getComputedStyle(this).height.replace ('px', ''));\n\t}\n\n\tset height (value) {\n\t\tthis.style.height = value;\n\t}\n\n\tget static () {\n\t\treturn new Proxy (this.constructor, {});\n\t}\n\n\tset static (value) {\n\t\tthrow new Error ('Component static properties cannot be reassigned.');\n\t}\n\n\tget props () {\n\t\treturn new Proxy (this, {\n\t\t\tget: (target, key) => {\n\t\t\t\tif (this.hasAttribute (key)) {\n\t\t\t\t\tlet value = this.getAttribute (key);\n\t\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\t\tif (value === 'false') {\n\t\t\t\t\t\t\tvalue = false;\n\t\t\t\t\t\t} else if (value === 'true' || value === '') {\n\t\t\t\t\t\t\tvalue = true;\n\t\t\t\t\t\t} else if (!isNaN (value)) {\n\t\t\t\t\t\t\tif (value.indexOf ('.') > 0) {\n\t\t\t\t\t\t\t\tvalue = parseFloat (value);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tvalue = parseInt (value);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn value;\n\t\t\t\t} else if (key in this._props) {\n\t\t\t\t\treturn this._props[key];\n\t\t\t\t}\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tset: (target, key, value) => {\n\t\t\t\tthrow new Error ('Component props should be set using the `setProps` function.');\n\t\t\t}\n\t\t});\n\t}\n\n\tset props (value) {\n\t\tif (this._connected === false) {\n\t\t\tthis._props = Object.assign ({}, this._props, value);\n\t\t} else {\n\t\t\tthrow new Error ('Component props cannot be directly assigned. Use the `setProps` function instead.');\n\t\t}\n\t}\n\n\tget state () {\n\t\treturn new Proxy (this._state, {\n\t\t\tget: (target, key) => {\n\t\t\t\treturn target[key];\n\t\t\t},\n\t\t\tset: (target, key, value) => {\n\t\t\t\tif (this._connected === false) {\n\t\t\t\t\treturn target[key] = value;\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error ('Component state should be set using the `setState` function instead.');\n\t\t\t\t}\n\n\t\t\t}\n\t\t});\n\t}\n\n\tset state (value) {\n\t\tif (this._connected === false) {\n\t\t\tthis._state = Object.assign ({}, this._state, value);\n\t\t} else {\n\t\t\tthrow new Error ('Component state should be set using the `setState` function instead.');\n\t\t}\n\t}\n\n\tget dom () {\n\t\treturn this;\n\t}\n\n\tset dom (value) {\n\t\tthrow new Error ('Component DOM can not be overwritten.');\n\t}\n\n\t/**\n\t * register - Register the component as a custom HTML element\n\t * using the component's tag as the actual element tag.\n\t *\n\t * This action cannot be reverted nor the controller class for\n\t * the element can be changed.\n\t */\n\tstatic register () {\n\t\twindow.customElements.define (this.tag, this);\n\t}\n\n\t/**\n\t * template - A simple function providing access to the basic HTML\n\t * structure of the component.\n\t *\n\t * @param {function|string} html - A string or function that renders the\n\t * component into a valid HTML structure.\n\t *\n\t * @returns {void|string} - Void or the HTML structure in a string\n\t */\n\ttemplate (html = null) {\n\t\treturn this.static.template (html, this);\n\t}\n\n\t_createStyleElement () {\n\t\tconst sharedStyle = document.body.querySelector (`style#${this.static.tag}`);\n\n\t\tif (sharedStyle !== null) {\n\t\t\tthis._styleElement = sharedStyle;\n\t\t}\n\n\t\tif (!(this._styleElement instanceof HTMLStyleElement)) {\n\t\t\tthis._styleElement = document.createElement ('style');\n\t\t\tthis._styleElement.id = this.static.tag;\n\t\t\tdocument.body.prepend (this._styleElement);\n\t\t}\n\t}\n\n\tsetStyle (style, reset = false) {\n\t\tthis._createStyleElement ();\n\n\t\tif (typeof style === 'object') {\n\t\t\tif (reset === false) {\n\t\t\t\tthis._style = Object.assign ({}, this._style, style);\n\t\t\t} else {\n\t\t\t\tthis._style = Object.assign ({}, style);\n\t\t\t}\n\t\t\tthis._styleElement.innerHTML = deserializeCSS (this._style, this.static.tag);\n\t\t} else if (typeof style === 'string') {\n\t\t\tif (reset === false) {\n\t\t\t\tthis._styleElement.innerHTML += style;\n\t\t\t} else {\n\t\t\t\tthis._styleElement.innerHTML = style;\n\t\t\t}\n\t\t}\n\n\t\treturn this._style;\n\t}\n\n\tsetState (state) {\n\t\tif (typeof state === 'object') {\n\t\t\tconst oldState = Object.assign ({}, this._state);\n\n\t\t\tthis._state = Object.assign ({}, this._state, state);\n\n\t\t\tfor (const key of Object.keys (state)) {\n\t\t\t\tthis.updateCallback (key, oldState[key], this._state[key], 'state', oldState, this._state);\n\t\t\t}\n\t\t} else {\n\t\t\tthrow new TypeError(`A state must be an object. Received ${typeof state}.`);\n\t\t}\n\t}\n\n\tsetProps (props) {\n\t\tif (typeof props === 'object') {\n\t\t\tconst oldProps = Object.assign ({}, this._props);\n\n\t\t\tthis._props = Object.assign ({}, this._props, props);\n\n\t\t\tfor (const key of Object.keys (props)) {\n\t\t\t\tthis.updateCallback (key, oldProps[key], this._props[key], 'props', oldProps, this._props);\n\t\t\t}\n\t\t\tthis._setPropAttributes (true);\n\t\t} else {\n\t\t\tthrow new TypeError(`Props must be an object. Received ${typeof state}.`);\n\t\t}\n\t}\n\n\t_setPropAttributes (update = false) {\n\t\tfor (const key of Object.keys (this._props)) {\n\t\t\tconst value = this._props[key];\n\t\t\tif (this.static._explicitPropTypes.indexOf (typeof value) > -1) {\n\t\t\t\tif (update === true) {\n\t\t\t\t\tthis.setAttribute (key, this._props[key]);\n\t\t\t\t} else {\n\t\t\t\t\tthis._props[key] = this.props[key];\n\t\t\t\t\tthis.setAttribute (key, this.props[key]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/*\n\t * =========================\n\t * Update Cycle\n\t * =========================\n */\n\n\twillUpdate (origin, property, oldValue, newValue, oldObject, newObject) {\n\t\treturn Promise.resolve ();\n\t}\n\n\tupdate (origin, property, oldValue, newValue, oldObject, newObject) {\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidUpdate (origin, property, oldValue, newValue, oldObject, newObject) {\n\t\treturn Promise.resolve ();\n\t}\n\n\tonStateUpdate (property, oldValue, newValue, oldObject, newObject) {\n\t\treturn Promise.resolve ();\n\t}\n\n\tonPropsUpdate (property, oldValue, newValue, oldObject, newObject) {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/*\n\t * =========================\n\t * Mount Cycle\n\t * =========================\n */\n\n\twillMount () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidMount () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/*\n\t * =========================\n\t * Unmount Cycle\n\t * =========================\n */\n\n\twillUnmount () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tunmount () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidUnmount () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/*\n\t * =========================\n\t * Render Cycle\n\t * =========================\n */\n\n\t/**\n\t * Forces the component to be rendered again.\n\t *\n\t * @returns {string|Promise} - The HTML to render on the component\n\t */\n\tforceRender () {\n\t\treturn this._render ();\n\t}\n\n\t/**\n\t * This function is the one that defines the HTML that will be rendered\n\t * inside the component. Since some content may need to be loaded before the\n\t * component is rendered, this function can also return a promise.\n\t *\n\t * @returns {string|Promise} - The HTML to render on the component\n\t */\n\trender () {\n\t\treturn '';\n\t}\n\n\t_render () {\n\t\tlet render = this.render;\n\n\t\t// Check if a template has been set to this component, and if that's the\n\t\t// case, use that instead of the render function to render the component's\n\t\t// HTML code.\n\t\tif (this.static._template !== null) {\n\t\t\trender = this.template;\n\t\t}\n\n\t\t// Call the render function asynchronously and set the HTML from it to the\n\t\t// component.\n\t\treturn callAsync (render, this).then ((html) => {\n\t\t\tconst slot = this.dom.querySelector ('slot');\n\n\t\t\tif (typeof html === 'string') {\n\t\t\t\thtml = html.trim ();\n\n\t\t\t\tif (html === '') {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (html === null || typeof html === 'undefined') {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (slot !== null) {\n\t\t\t\tslot.replaceWith (html);\n\t\t\t} else {\n\t\t\t\tthis.innerHTML = html;\n\n\t\t\t\tif (this._children !== '' && html.indexOf(this._children) === -1) {\n\t\t\t\t\tthis.innerHTML += this._children;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tconnectedCallback () {\n\t\t// Set the state as connected\n\t\tthis._connected = true;\n\n\t\t// Add a data property with the tag of the component\n\t\tthis.dataset.component = this.static.tag;\n\n\t\t// Check if a template for this component was set. The contents on this\n\t\t// if block will only be run once.\n\t\tif (typeof this.static._template === 'undefined') {\n\n\t\t\t// Check if there is an HTML template for this component\n\t\t\tconst template = document.querySelector (`template#${this.static.tag}`);\n\n\t\t\tif (template !== null) {\n\t\t\t\t// If there is, set is as the template for the component\n\t\t\t\tthis.template (template.innerHTML);\n\t\t\t} else {\n\t\t\t\t// If not, set is as null\n\t\t\t\tthis.static._template = null;\n\t\t\t}\n\t\t}\n\n\t\t// Set the initial prop attributes for the component using the given\n\t\t// props\n\t\tthis._setPropAttributes ();\n\n\t\t// Start the Mount Cycle\n\t\treturn this.willMount ().then (() => {\n\n\t\t\treturn this._render ().then (() => {\n\t\t\t\treturn this.didMount ().then (() => {\n\n\t\t\t\t\tthis._isReady = true;\n\t\t\t\t\tfor (const callback of this._ready) {\n\t\t\t\t\t\tcallback.call (this);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Adds a callback to be run once the component has been mounted successfully\n\t *\n\t * @param {function} callback - Callback to run once the component is ready\n\t */\n\tready (callback) {\n\t\tthis._ready.push (callback);\n\t}\n\n\n\tdisconnectedCallback () {\n\t\treturn this.willUnmount ().then (() => {\n\t\t\treturn this.unmount ().then (() => {\n\t\t\t\treturn this.didUnmount ();\n\t\t\t});\n\t\t});\n\t}\n\n\tupdateCallback (property, oldValue, newValue, origin = 'props', oldObject = {}, newObject = {}) {\n\t\treturn this.willUpdate (origin, property, oldValue, newValue, oldObject, newObject).then (() => {\n\t\t\treturn this.update (origin, property, oldValue, newValue, oldObject, newObject).then (() => {\n\t\t\t\tlet promise;\n\t\t\t\tif (origin === 'state') {\n\t\t\t\t\tpromise = this.onStateUpdate (property, oldValue, newValue, oldObject, newObject);\n\t\t\t\t} else {\n\t\t\t\t\tpromise = this.onPropsUpdate (property, oldValue, newValue, oldObject, newObject);\n\t\t\t\t}\n\t\t\t\treturn promise.then (() => {\n\t\t\t\t\treturn this.didUpdate (origin, property, oldValue, newValue, oldObject, newObject);\n\t\t\t\t});\n\t\t\t});\n\t\t}).catch ((e) => {\n\t\t\tconsole.error (e);\n\t\t\t// Component should not update\n\t\t});\n\t}\n\n\tattributeChangedCallback (property, oldValue, newValue) {\n\n\t}\n}\n","import { Component } from './Component';\nimport { callAsync } from './Util';\n\n/**\n * @class ShadowComponent\n */\nexport class ShadowComponent extends Component {\n\tconstructor (...props) {\n\t\tsuper (...props);\n\n\t\tthis._shadowDOM = this.attachShadow ({ mode: 'open' });\n\t}\n\n\t_createStyleElement () {\n\t\tif (!(this._styleElement instanceof HTMLStyleElement)) {\n\t\t\tthis._styleElement = document.createElement ('style');\n\t\t\tthis.dom.prepend (this._styleElement);\n\t\t}\n\t}\n\n\t_render () {\n\t\tlet render = this.render;\n\n\t\t// Check if a template has been set to this component, and if that's the\n\t\t// case, use that instead of the render function to render the component's\n\t\t// HTML code.\n\t\tif (this.static._template !== null) {\n\t\t\trender = this.template;\n\t\t}\n\n\t\t// Call the render function asynchronously and set the HTML from it to the\n\t\t// component.\n\t\treturn callAsync (render, this).then ((html) => {\n\t\t\tthis._shadowDOM.innerHTML = '';\n\t\t\tif (this._styleElement instanceof HTMLStyleElement) {\n\t\t\t\tthis._shadowDOM.appendChild (this._styleElement);\n\t\t\t}\n\t\t\tthis._shadowDOM.innerHTML += html;\n\t\t});\n\t}\n\n\tget dom () {\n\t\treturn this._shadowDOM;\n\t}\n\n\n}\n","import { $_ } from '@aegis-framework/artemis';\nimport { Component as PandoraComponent } from '@aegis-framework/pandora';\n\n/**\n * A component represents an object or content in the game such as screens, menus\n * and all other visual or structural elements.\n *\n * The life cycle of an component follows the Mounting cycle for actions.\n *\n * The mounting cycle has 3 steps:\n *\n * 1. Setup - Here the action needs to set up everything it will need for working\n * generally, in this section a component will generally add its HTML\n * content to the global Monogatari object and will set up any needed\n * configuration or state variables.\n *\n * 2. Bind - Once the component has been setup, its time to bind all the necessary\n * event listeners or perform more operations on the DOM once all elements\n * have been setup. Components will generally bind all the listeners needed\n * for their inner elements to work correctly.\n *\n * 3. Init - Finally, once the component was setup and it performed all the needed\n * bindings, it may start performing its operations and perform all\n * further needed operations.\n *\n * @class Component\n */\nclass Component extends PandoraComponent {\n\n\tstatic _priority = 0;\n\n\tstatic all () {\n\t\treturn $_(this.tag);\n\t}\n\n\tstatic get (id) {\n\t\treturn $_(`${this.tag} [data-instance=\"${id}\"]`);\n\t}\n\n\t/**\n\t * @static onStart - This function acts as an event listener for when the game\n\t * starts. If the component needs to do any particular activities when the game\n\t * starts, then this function should be implemented and it will be automatically\n\t * called once the player starts the game.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic onStart () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static onLoad - This function acts as an event listener for when a game\n\t * is loaded. If the component needs to perform any particular actions such as\n\t * restoring some state (i.e. showing images, playing media, etc.) when a game\n\t * is loaded, this function must be implemented and it will be automatically\n\t * called when a game is loaded.\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic onLoad () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static setup - The setup is the first step of the Mounting cycle, all\n\t * operations required for the component's setup should be implemented here.\n\t *\n\t * @return {Promise} - Result of the setup operation\n\t */\n\tstatic setup () {\n\t\treturn Promise.resolve ();\n\t}\n\n\n\t/**\n\t * @static shouldProceed - Either when the user clicks in the game to proceed or\n\t * the autoPlay feature is ready to go on, Monogatari will first check with\n\t * all actions if it's ok to proceed. Every action should implement its own\n\t * logic for it according to its requirements.\n\t *\n\t * @return {Promise} - Resolved if proceeding is alright or rejected if its not\n\t */\n\tstatic shouldProceed () {\n\t\tconst promises = [];\n\t\tthis.instances ((instance) => {\n\t\t\tpromises.push (instance.shouldProceed ());\n\t\t});\n\t\treturn Promise.all (promises);\n\t}\n\n\t/**\n\t * @static willProceed - Once the shouldProceed check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game proceeding.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic willProceed () {\n\t\tconst promises = [];\n\t\tthis.instances ((instance) => {\n\t\t\tpromises.push (instance.willProceed ());\n\t\t});\n\t\treturn Promise.all (promises);\n\t}\n\n\t/**\n\t * @static shouldRollback - Similarly to the shouldProceed () function, this one takes\n\t * action when the player tries to go back in the game.Monogatari will first\n\t * check with all actions if it's ok to go back. Every action should implement\n\t * its own logic for it according to its requirements.\n\t *\n\t * @return {Promise} - Resolved if going back is alright or rejected if its not\n\t */\n\tstatic shouldRollback () {\n\t\tconst promises = [];\n\t\tthis.instances ((instance) => {\n\t\t\tpromises.push (instance.shouldRollback ());\n\t\t});\n\t\treturn Promise.all (promises);\n\t}\n\n\t/**\n\t * @static willRollback - Once the shouldRollback check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game reverting the previous action\n\t *\n\t * @return {Promise}\n\t */\n\tstatic willRollback () {\n\t\tconst promises = [];\n\t\tthis.instances ((instance) => {\n\t\t\tpromises.push (instance.willRollback ());\n\t\t});\n\t\treturn Promise.all (promises);\n\t}\n\n\t/**\n\t * @static bind - The binding is the second step of the Mounting cycle, all\n\t * operations related to event bindings or other sort of binding with the\n\t * HTML content generated in the setup phase should be implemented here.\n\t *\n\t * @param {string} selector - The CSS selector with which Monogatari has been\n\t * initialized\n\t * @return {Promise} - Result of the binding operation\n\t */\n\tstatic bind () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static init - The initialization is the last step of the Mounting cycle,\n\t * all final operations should be implemented here.\n\t *\n\t * @param {string} selector - The CSS selector with which Monogatari has been\n\t * initialized\n\t * @return {Promise} - Result of the initialization operation\n\t */\n\tstatic init () {\n\t\treturn Promise.resolve ();\n\t}\n\n\n\t/**\n\t * @static onSave - This function acts as an event listener for when a game\n\t * is saved. If the component needs to perform any particular actions when that\n\t * happens, this function must be implemented and it will be automatically\n\t * called when a game is saved.\n\t *\n\t * @param {Object} slot - The slot object that has just been saved.\n\t * @param {string} slot.key - The key used to save the slot in the local storage\n\t * @param {Object} slot.value - The actual value saved\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic onSave () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static reset - When a game ends using the 'end' statement or before a game\n\t * is loaded, Monogatari will perform a reset on all its components. If the component\n\t * needs to reset a state or any other variables/elements to an initial state\n\t * once a game is over or a new one is loaded, the logic for it must be implemented\n\t * here and the function will be automatically called when needed.\n\t *\n\t * @return {Promise} - Result of the reset operation\n\t */\n\tstatic onReset () {\n\t\tconst promises = [];\n\n\t\tthis.instances ((instance) => {\n\t\t\tpromises.push (instance.onReset ());\n\t\t});\n\n\t\treturn Promise.all (promises);\n\t}\n\n\n\tonReset () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static element - Returns this component's element as an Artemis DOM\n\t * instance, using the result of the `selector ()` function as the selector\n\t *\n\t * @returns {DOM} - Artemis DOM instance\n\t */\n\telement () {\n\t\treturn $_(this);\n\t}\n\n\tremove () {\n\t\tthis.parentNode.removeChild (this);\n\t}\n\n\tstatic instances (callback = null) {\n\t\tif (typeof callback === 'function') {\n\t\t\treturn $_(this.tag).each (callback);\n\t\t}\n\t\treturn $_(this.tag);\n\t}\n\n\n\tinstance (id) {\n\t\treturn $_(`${this.constructor.tag}[data-${this.constructor.name.toLowerCase ()}=\"${id}\"`);\n\t}\n\n\t/**\n\t * @static content - Attempts to find a content element inside of this\n\t * component or its children\n\t *\n\t * @param {string} name - Name of the content element to find\n\t *\n\t * @returns {DOM} - An Artemis DOM instance with the found elements\n\t */\n\tcontent (name) {\n\t\treturn this.element ().find (`[data-content=\"${name}\"]`);\n\t}\n\n\tparent (component) {\n\t\tif (typeof component !== 'undefined') {\n\t\t\tthis._parent = component;\n\t\t} else {\n\t\t\treturn this._parent;\n\t\t}\n\t}\n\n\tget engine () {\n\t\treturn this.constructor.engine;\n\t}\n\n\tset engine (value) {\n\t\tthrow new Error ('Component engine reference is hold at static level and cannot be modified.');\n\t}\n\n\tshouldProceed () {\n\t\treturn Promise.resolve ();\n\t}\n\n\twillProceed () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tshouldRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\twillRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tconnectedCallback () {\n\t\t// Always add the animated class for all the components\n\t\tthis.classList.add ('animated');\n\n\t\treturn super.connectedCallback ();\n\t}\n}\n\nexport { Component };","import { Component } from '../../lib/Component';\n\nclass AlertDialog extends Component {\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.props = {\n\t\t\tactive: true,\n\t\t\tmessage: '',\n\t\t\tcontext: null,\n\t\t\teditable: false,\n\t\t\tactions: []\n\t\t};\n\t}\n\n\tonPropsUpdate (property, oldValue, newValue) {\n\t\tif (property === 'active') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.classList.toggle ('modal--active');\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\twillMount () {\n\t\tthis.classList.add ('modal', 'modal--active');\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\tconst { message, context, editable, actions } = this.props;\n\t\treturn `\n\t\t\t
\n\t\t\t\t

${this.engine.string(message)}

\n\t\t\t\t${context ? `${editable ? `` : `${context}`}` : ''}\n\t\t\t\t${actions ? `
\n\t\t\t\t\t${actions.map (action => ``).join('')}\n\t\t\t\t
` : ''}\n\t\t\t
\n\t\t`;\n\t}\n}\n\n\nAlertDialog.tag = 'alert-modal';\n\n\nexport default AlertDialog;","import { Component } from '../../lib/Component';\nimport { Util } from '@aegis-framework/artemis';\n\nclass CanvasContainer extends Component {\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.props = {\n\t\t\tmode: null,\n\t\t\tcanvas: null,\n\t\t\tcharacter: null,\n\t\t\tobject: {\n\t\t\t\tstart: () => {},\n\t\t\t\tstop: () => {},\n\t\t\t\trestart: () => {},\n\t\t\t\tlayers: [],\n\t\t\t\tstate: {},\n\t\t\t\tprops: {}\n\t\t\t},\n\t\t\tclasses: []\n\t\t};\n\n\t\tthis.layers = {};\n\t}\n\n\tonPropsUpdate (property, oldValue, newValue) {\n\t\treturn Promise.resolve ();\n\t}\n\n\twillMount () {\n\t\tconst { mode, canvas, object, classes } = this.props;\n\n\t\tfor (const className of classes) {\n\t\t\tif (className) {\n\t\t\t\tthis.classList.add (className);\n\t\t\t}\n\t\t}\n\n\t\tif (mode === 'character') {\n\t\t\tthis.dataset.character = canvas;\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidMount () {\n\t\tconst { mode, canvas, object, classes } = this.props;\n\n\t\tif ( Array.isArray (object.layers)) {\n\t\t\tif (object.layers.length > 0) {\n\t\t\t\tfor (const layer of object.layers) {\n\t\t\t\t\tthis.layers[layer] = this.querySelector (`canvas[data-layer=\"${layer}\"]`);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.layers.base = this.querySelector ('canvas[data-layer=\"base\"]');\n\t\t}\n\n\t\treturn Util.callAsync (object.start, this.engine, this.layers, object.props, object.state, this);\n\t}\n\n\trender () {\n\t\tconst { object } = this.props;\n\n\t\tlet layers = '';\n\n\t\tif ( Array.isArray (object.layers)) {\n\t\t\tif (object.layers.length > 0) {\n\t\t\t\tlayers = object.layers.map (l => ``).join ('');\n\t\t\t}\n\t\t} else {\n\t\t\tlayers = '';\n\t\t}\n\n\t\treturn `\n\t\t\t
${layers}
\n\t\t`;\n\t}\n}\n\n\nCanvasContainer.tag = 'canvas-container';\n\n\nexport default CanvasContainer;","import { Component } from './../../lib/Component';\n\nclass CenteredDialog extends Component {\n\n\tconstructor () {\n\t\tsuper ();\n\t}\n\n\twillRollback () {\n\t\t// If a choice is visible right now, we can simply remove it and let the\n\t\t// game revert to the previous statement.\n\t\tthis.remove ();\n\t\treturn Promise.resolve ();\n\t}\n\n\tonReset () {\n\t\tthis.remove ();\n\t\treturn Promise.resolve ();\n\t}\n\n\twillMount () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidMount () {\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\treturn `\n\t\t\t
\n\t\t`;\n\t}\n}\n\nCenteredDialog.tag = 'centered-dialog';\n\n\n\nexport default CenteredDialog;","import { Component } from './../../lib/Component';\n\nclass ChoiceContainer extends Component {\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.props = {\n\t\t\tchoices: [],\n\t\t\tclasses: ''\n\t\t};\n\t}\n\n\tshouldProceed () {\n\t\t// If a choice is currently being displayed, the player should not be able\n\t\t// to advance until one is chosen.\n\t\treturn Promise.reject ('Choice Container awaiting for user input.');\n\t}\n\n\twillRollback () {\n\t\t// If a choice is visible right now, we can simply remove it and let the\n\t\t// game revert to the previous statement.\n\t\tthis.remove ();\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tonReset () {\n\t\tthis.remove ();\n\t\treturn Promise.resolve ();\n\t}\n\n\twillMount () {\n\t\t// Check if a list of classes has been defined and if the list is not empty\n\t\tif (typeof this.props.classes === 'string' && this.props.classes !== '') {\n\t\t\tthis.props.classes.split (' ').forEach ((className) => {\n\t\t\t\tif (className) {\n\t\t\t\t\tthis.classList.add (className);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidMount () {\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\tconst choices = this.props.choices.map ((choice) => {\n\t\t\tconst choiceText = this.engine.replaceVariables (choice.Text);\n\n\t\t\tif (typeof choice.Clickable === 'function') {\n\t\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\t\tthis.engine.assertAsync (choice.Clickable, this.engine).then (() => {\n\t\t\t\t\t\tresolve (``);\n\t\t\t\t\t}).catch (() => {\n\t\t\t\t\t\tresolve (``);\n\t\t\t\t\t});\n\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn Promise.resolve (``);\n\t\t});\n\n\t\treturn Promise.all (choices).then ((choices) => `\n\t\t\t
\n\t\t\t\t${ choices.join('') }\n\t\t\t
\n\t\t`);\n\t}\n}\n\nChoiceContainer.tag = 'choice-container';\n\n\n\nexport default ChoiceContainer;","import { Component } from './Component';\n\nclass ScreenComponent extends Component {\n\n\tconstructor () {\n\t\tsuper();\n\n\t\tthis.state = {\n\t\t\topen: false\n\t\t};\n\t}\n\n\twillMount () {\n\t\tthis.dataset.screen = this.constructor.tag.replace ('-screen', '');\n\t\treturn Promise.resolve ();\n\t}\n\n\tonStateUpdate (property, oldValue, newValue) {\n\t\tif (property === 'open') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.classList.add ('active');\n\t\t\t} else {\n\t\t\t\tthis.classList.remove ('active');\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\treturn '';\n\t}\n}\n\nexport { ScreenComponent };","import { ScreenComponent } from './../../lib/ScreenComponent';\n\nclass CreditsScreen extends ScreenComponent {\n\n\tstatic init () {\n\t\tif (Object.keys (this.engine.configuration ('credits')).length > 0) {\n\t\t\tthis.engine.component ('main-menu').addButton ({\n\t\t\t\tstring: 'Credits',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'open-screen',\n\t\t\t\t\topen: 'credits'\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.props = {\n\t\t\tcredits: {}\n\t\t};\n\t}\n\n\twillMount () {\n\t\tsuper.willMount ();\n\t\tthis.setProps ({\n\t\t\tcredits: this.engine.configuration ('credits')\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\tconst items = Object.keys (this.props.credits).map ((section) => {\n\t\t\tlet html = `

${this.engine.replaceVariables (section)}

`;\n\t\t\tconst content = this.props.credits[section];\n\n\t\t\tif (typeof content === 'string') {\n\t\t\t\treturn `\n\t\t\t\t\t

\n\t\t\t\t\t\t${content}\n\t\t\t\t\t

`;\n\t\t\t}\n\n\t\t\tfor (const key of Object.keys (content)) {\n\t\t\t\tconst title = this.engine.replaceVariables (key);\n\t\t\t\tlet value = content[key];\n\n\t\t\t\tif (value instanceof Array) {\n\t\t\t\t\tvalue = value.join (', ');\n\t\t\t\t}\n\n\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\tvalue = this.engine.replaceVariables (value);\n\t\t\t\t}\n\n\t\t\t\tif (title.indexOf ('_') === 0) {\n\t\t\t\t\thtml += `

\n\t\t\t\t\t\t\t\t${value}\n\t\t\t\t\t\t\t

`;\n\t\t\t\t} else {\n\t\t\t\t\thtml += `

\n\t\t\t\t\t\t\t\t${title}\n\t\t\t\t\t\t\t\t${value}\n\t\t\t\t\t\t\t

`;\n\t\t\t\t}\n\n\t\t\t}\n\t\t\thtml += '
';\n\n\t\t\treturn html;\n\t\t}).join ('');\n\n\t\treturn `\n\t\t\t\n\t\t\t

Credits

\n\t\t\t
\n\t\t\t\t${items}\n\t\t\t
\n\t\t`;\n\t}\n}\n\nCreditsScreen.tag = 'credits-screen';\n\n\nexport default CreditsScreen;","import { Component } from './../../lib/Component';\n\nclass DialogLog extends Component {\n\n\tstatic setup () {\n\t\tthis.engine.component ('quick-menu').addButtonAfter ('Hide', {\n\t\t\tstring: 'Log',\n\t\t\ticon: 'far fa-comments',\n\t\t\tdata: {\n\t\t\t\taction: 'dialog-log'\n\t\t\t}\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic bind () {\n\t\tthis.engine.registerListener ('dialog-log', {\n\t\t\tcallback: () => {\n\t\t\t\tthis.instances ((element) => {\n\t\t\t\t\tconst active = element.state.active;\n\t\t\t\t\telement.setState ({\n\t\t\t\t\t\tactive: !active\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tonReset () {\n\t\tthis.content ('log').html ('
No dialogs available. Dialogs will appear here as they show up.
');\n\t\treturn Promise.resolve ();\n\t}\n\n\twrite ({ id, character, dialog }) {\n\t\tthis.content ('placeholder').remove ();\n\t\tif (id !== 'narrator' && id !== 'centered') {\n\t\t\tconst { name, color } = character;\n\t\t\tthis.content ('log').append (`\n\t\t\t\t
\n\t\t\t\t\t${this.engine.replaceVariables (name)} \n\t\t\t\t\t

${dialog}

\n\t\t\t\t
\n\t\t\t`);\n\t\t} else {\n\t\t\tthis.content ('log').append (`

${dialog}

`);\n\t\t}\n\t}\n\n\tpop () {\n\t\tconst last = this.content ('log').find ('[data-spoke]').last ();\n\t\tlast.remove ();\n\t}\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.state = {\n\t\t\tactive: false\n\t\t};\n\t}\n\n\tonStateUpdate (property, oldValue, newValue) {\n\t\tif (property === 'active') {\n\t\t\tthis.classList.toggle ('modal--active');\n\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.scrollTop = this.scrollHeight;\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\twillMount () {\n\t\tthis.classList.add ('modal');\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\treturn `\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
No dialogs available. Dialogs will appear here as they show up.
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t`;\n\t}\n}\n\nDialogLog.tag = 'dialog-log';\n\n\n\nexport default DialogLog;","import { ScreenComponent } from '../../lib/ScreenComponent';\nimport { $_ } from '@aegis-framework/artemis';\n\nclass GalleryScreen extends ScreenComponent {\n\n\tstatic bind (selector) {\n\n\t\t// Now lets make it so that when a player clicks on one of the Images\n\t\t// of the gallery, the image gets shown. For that purpose, we'll use\n\t\t// create a function showImage (). You may notice we are not using a simple\n\t\t// $_().click function, instead we are using the 'on' function, this is\n\t\t// due to the images being generated automatically, we can't simply\n\t\t// attach the listerner to them so we attach it to their parent (the\n\t\t// gallery) and then check if the click was actually on an image.\n\t\tconst self = this;\n\t\tthis.instances ().on ('click', '[data-image]', function () {\n\t\t\tconst image = $_(this).closest ('[data-image]').data ('image');\n\t\t\tself.showImage (image);\n\t\t});\n\n\t\t// This listener will make it so that any click on the image viewer\n\t\t// closes it\n\t\tthis.instances ().on ('click', '[data-ui=\"image-viewer\"]', () => {\n\t\t\tthis.instances ().find ('[data-ui=\"image-viewer\"]').removeClass ('modal--active');\n\t\t\tthis.instances ().find ('[data-ui=\"image-viewer\"] figure').style ('background-image', '');\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic init (selector) {\n\t\tif (Object.keys (this.engine.assets ('gallery')).length > 0) {\n\t\t\tthis.engine.component ('main-menu').addButton ({\n\t\t\t\tstring: 'Gallery',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'open-screen',\n\t\t\t\t\topen: 'gallery'\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Hide Gallery if there are no images defined.\n\t\t\tthis.instances ().remove ();\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\t// A simple function to show an image, this will activate the image viewer\n\t// and set the image as a background for it.\n\tstatic showImage (image) {\n\t\tconst directory = `${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').gallery}/`;\n\t\tthis.instances ().find ('[data-ui=\"image-viewer\"] figure').style ('background-image', `url('${directory}${this.engine.asset ('gallery', image)}')`);\n\t\tthis.instances ().find ('[data-ui=\"image-viewer\"]').addClass ('modal--active');\n\t}\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.state = {\n\t\t\tunlocked: []\n\t\t};\n\t}\n\n\twillMount () {\n\t\tsuper.willMount ();\n\t\treturn this.engine.Storage.get ('gallery').then ((data) => {\n\t\t\tthis.setState ({\n\t\t\t\tunlocked: data.unlocked\n\t\t\t});\n\t\t\treturn Promise.resolve ();\n\t\t}).catch (() => {\n\t\t\treturn Promise.resolve ();\n\t\t});\n\t}\n\n\tonStateUpdate (property, oldValue, newValue) {\n\t\tsuper.onStateUpdate (property, oldValue, newValue);\n\n\t\tthis.engine.Storage.set ('gallery', {\n\t\t\tunlocked: this.state.unlocked\n\t\t});\n\n\t\t// Update the gallery when an image gets unlocked or locked\n\t\tthis.forceRender ();\n\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\tconst images = Object.keys (this.engine.assets ('gallery')).map ((image) => {\n\t\t\tconst directory = `${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').gallery}/`;\n\n\t\t\t// Check if the image has been unlocked or not, if it hasn't then a\n\t\t\t// lock will be shown instead of the image.\n\t\t\tif (this.state.unlocked.includes (image)) {\n\t\t\t\treturn `
`;\n\t\t\t} else {\n\t\t\t\treturn '
';\n\t\t\t}\n\t\t}).join ('');\n\n\t\treturn `\n\t\t\t\n\t\t\t\n\t\t\t

Gallery

\n\t\t\t
\n\t\t\t\t${images}\n\t\t\t
\n\t\t`;\n\t}\n}\n\nGalleryScreen.tag = 'gallery-screen';\n\n\nexport default GalleryScreen;","import { ScreenComponent } from './../../lib/ScreenComponent';\n\nclass GameScreen extends ScreenComponent {\n\n\tstatic shouldProceed () {\n\t\tif (this.engine.element ().find ('[data-screen=\"game\"]').isVisible ()) {\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t\treturn Promise.reject ('Game screen is not visible.');\n\t}\n\n\tstatic bind (selector) {\n\t\tconst self = this;\n\n\t\tthis.engine.on ('click', '[data-screen=\"game\"] *:not([data-choice])', function () {\n\t\t\tself.engine.debug.debug ('Next Statement Listener');\n\t\t\tself.engine.proceed ({ userInitiated: true, skip: false, autoPlay: false }).then (() => {\n\t\t\t\t// Nothing to do here\n\t\t\t}).catch ((e) => {\n\t\t\t\tself.engine.debug.log (`Proceed Prevented\\nReason: ${e}`);\n\t\t\t\t// An action waiting for user interaction or something else\n\t\t\t\t// is blocking the game.\n\t\t\t});\n\t\t});\n\n\t\tthis.engine.registerListener ('back', {\n\t\t\tkeys: 'left',\n\t\t\tcallback: () => {\n\t\t\t\tthis.engine.global ('block', false);\n\t\t\t\tthis.engine.rollback ().then (() => {\n\t\t\t\t\t// Nothing to do here\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tthis.engine.debug.log (`Proceed Prevented\\nReason: ${e}`);\n\t\t\t\t\t// An action waiting for user interaction or something else\n\t\t\t\t\t// is blocking the game.\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\n\tdidMount () {\n\t\tthis.engine.on ('didUpdateState', ({ detail: {newState: { label }}}) => {\n\t\t\tif (label) {\n\t\t\t\tthis.element ().data ('label', label);\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\treturn `\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n\n}\n\nGameScreen.tag = 'game-screen';\n\n\nexport default GameScreen;","import { ScreenComponent } from './../../lib/ScreenComponent';\n\nclass HelpScreen extends ScreenComponent {\n\n\trender () {\n\t\treturn `\n\t\t\t\n\t\t\t

Help

\n\t\t\t
\n\t\t\t\t

To advance through the game, left-click or tap anywhere on the game screen or press the space key

\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t

Quick Menu

\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tGo back\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tHide the text box\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tShow the dialog log\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tEnable auto play\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tEnter skip mode\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tOpen the Save Screen\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tOpen the Load Screen\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tOpen the Settings Screen\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tQuit Game\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t

Keyboard Shortcuts

\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tGo Back\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tH\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tHide the text box\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tA\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tEnable auto play\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tS\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tEnter skip mode\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t⇧ S\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tOpen the Save Screen\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t⇧ L\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tOpen the Load Screen\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tESC\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tOpen the Settings Screen.\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t⇧ Q\n\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tQuit Game\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nHelpScreen.tag = 'help-screen';\n\n\n\nexport default HelpScreen;","import { $_ } from '@aegis-framework/artemis';\n\nimport { FancyError } from './../../lib/FancyError';\nimport { ScreenComponent } from './../../lib/ScreenComponent';\n\nclass LanguageSelectionScreen extends ScreenComponent {\n\n\tconstructor (...args) {\n\t\tsuper (...args);\n\n\t\tthis.props = {\n\t\t\tlanguages: Object.keys (this.engine._script),\n\t\t\ttimeout: 2000,\n\t\t};\n\n\t\tthis.setState ({\n\t\t\tindex: 0,\n\t\t});\n\n\t\tthis.timer = null;\n\t}\n\n\tonStateUpdate (property, oldValue, newValue) {\n\t\tsuper.onStateUpdate (property, oldValue, newValue);\n\n\t\tif (property === 'index') {\n\t\t\tconst { languages } = this.props;\n\t\t\tconst translation = this.engine.translation (languages[newValue]);\n\n\t\t\tif (typeof translation === 'object') {\n\t\t\t\tconst string = translation.SelectYourLanguage;\n\t\t\t\tif (typeof string === 'string') {\n\t\t\t\t\tthis.content ('title').text (string);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tonPropsUpdate (property, oldValue, newValue) {\n\t\tsuper.onPropsUpdate (property, oldValue, newValue);\n\t}\n\n\tdidMount () {\n\t\t// Prevent doing any extra work when the game is not multilanguage\n\t\tif (this.engine.setting ('MultiLanguage') === true && this.engine.setting ('LanguageSelectionScreen') === true) {\n\t\t\tconst { languages, timeout } = this.props;\n\t\t\tthis.timer = setTimeout (() => {\n\t\t\t\tif (this.element ().isVisible ()) {\n\t\t\t\t\tconst { index } = this.state;\n\t\t\t\t\tif (index >= (languages.length - 1)) {\n\t\t\t\t\t\tthis.setState ({ index: 0});\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setState ({ index: index + 1});\n\t\t\t\t\t}\n\t\t\t\t\tthis.timer = setTimeout (() => this.didMount (), parseInt(timeout));\n\t\t\t\t} else {\n\t\t\t\t\tclearTimeout (this.timer);\n\t\t\t\t}\n\t\t\t}, parseInt(timeout));\n\t\t}\n\n\t\tthis.element ().on ('click', '[data-language]', (event) => {\n\t\t\tconst language = $_(event.target).closest('[data-language]').data ('language');\n\t\t\tthis.engine.preference ('Language', language);\n\t\t\tthis.engine.localize ();\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\tlet buttons = [];\n\t\t// Prevent doing any extra work when the game is not multilanguage\n\t\tif (this.engine.setting ('MultiLanguage') === true && this.engine.setting ('LanguageSelectionScreen') === true) {\n\t\t\tconst { languages } = this.props;\n\t\t\tbuttons = languages.map ((language) =>{\n\t\t\t\tconst metadata = this.engine._languageMetadata[language];\n\n\t\t\t\tif (typeof metadata === 'object') {\n\t\t\t\t\tconst { code, icon } = metadata;\n\t\t\t\t\treturn `\n\t\t\t\t\t\t\n\t\t\t\t\t`;\n\t\t\t\t} else {\n\t\t\t\t\tFancyError.show (\n\t\t\t\t\t\t`Metadata for language \"${language}\" could not be found.`,\n\t\t\t\t\t\t'Monogatari attempted to retrieve the metadata for this language but it does not exists',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'Language Not Found': language,\n\t\t\t\t\t\t\t'You may have meant one of these': Object.keys (this.engine._script),\n\t\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t\t'_': 'Please check that you have defined the metadata for this language. Remember the metadata is defined as follows:',\n\t\t\t\t\t\t\t\t'_1': `\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tmonogatari.languageMetadata (\"EspaƱol\", {\n\t\t\t\t\t\t\t\t\t\t\t\"code\": \"es\",\n\t\t\t\t\t\t\t\t\t\t\t\"icon\": \"šŸ‡²šŸ‡½\"\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t'Documentation': 'Internationalization'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn `\n\t\t\t
\n\t\t\t\t

${this.engine.string ('SelectYourLanguage')}

\n\t\t\t\t
\n\t\t\t\t\t${buttons.join ('')}\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nLanguageSelectionScreen.tag = 'language-selection-screen';\n\n\nexport default LanguageSelectionScreen;","import { ScreenComponent } from './../../lib/ScreenComponent';\n\nclass LoadScreen extends ScreenComponent {\n\n\trender () {\n\t\tconst autoSaveEnabled = this.engine.setting ('AutoSave') != 0 && typeof this.engine.setting ('AutoSave') === 'number';\n\n\t\treturn `\n\t\t\t\n\t\t\t

Load

\n\t\t\t
\n\t\t\t\t

Saved Games

\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t${ autoSaveEnabled ? `
\n\t\t\t\t

Auto Saved Games

\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
` : ''}\n\t\t`;\n\t}\n}\n\nLoadScreen.tag = 'load-screen';\n\n\nexport default LoadScreen;","import { ScreenComponent } from './../../lib/ScreenComponent';\n\nclass LoadingScreen extends ScreenComponent {\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.props = {\n\t\t\tmax: 0\n\t\t};\n\n\t\tthis.state = {\n\t\t\tprogress: 0\n\t\t};\n\t}\n\n\tdidMount () {\n\t\tthis.engine.on ('willPreloadAssets', () => {\n\t\t\tthis.setState ({\n\t\t\t\topen: true\n\t\t\t});\n\t\t});\n\n\t\tthis.engine.on ('assetQueued', () => {\n\t\t\tconst max = this.props.max;\n\t\t\tthis.setProps ({\n\t\t\t\tmax: max + 1\n\t\t\t});\n\t\t});\n\n\t\tthis.engine.on ('didPreloadAssets', () => {\n\t\t\tthis.setState ({\n\t\t\t\topen: false\n\t\t\t});\n\t\t});\n\n\t\tthis.engine.on ('assetLoaded', (event) => {\n\t\t\tconst progress = this.state.progress;\n\t\t\tthis.setState ({\n\t\t\t\tprogress: progress + 1\n\t\t\t});\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tonStateUpdate (property, oldValue, newValue) {\n\t\tsuper.onStateUpdate (property, oldValue, newValue);\n\t\tif (property === 'progress') {\n\t\t\tthis.content ('progress').value (newValue);\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tonPropsUpdate (property, oldValue, newValue) {\n\t\tsuper.onPropsUpdate (property, oldValue, newValue);\n\t\tif (property === 'max') {\n\t\t\tthis.content ('progress').attribute ('max', newValue);\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\treturn `\n\t\t\t
\n\t\t\t\t

Loading

\n\t\t\t\t\n\t\t\t\tWait while the assets are loaded.\n\t\t\t
\n\t\t`;\n\t}\n}\n\nLoadingScreen.tag = 'loading-screen';\n\n\nexport default LoadingScreen;","import { Component } from './Component';\n\nclass MenuComponent extends Component {\n\n\tstatic addButton (button) {\n\t\tthis.engine.configuration (this.tag, {\n\t\t\tbuttons: [...this.buttons (), button]\n\t\t});\n\n\t\tthis.onConfigurationUpdate ();\n\t}\n\n\tstatic addButtonAfter (after, button) {\n\t\tconst index = this.buttons ().findIndex (b => b.string === after);\n\t\tconst buttons = [...this.buttons ()];\n\n\t\tif (index > -1) {\n\t\t\tbuttons.splice (index + 1, 0, button);\n\n\t\t\tthis.engine.configuration (this.tag, {\n\t\t\t\tbuttons\n\t\t\t});\n\n\t\t\tthis.onConfigurationUpdate ();\n\t\t}\n\t}\n\n\tstatic addButtonBefore (before, button) {\n\t\tconst index = this.buttons ().findIndex (b => b.string === before);\n\t\tconst buttons = [...this.buttons ()];\n\n\t\tif (index > -1) {\n\t\t\tbuttons.splice (index, 0, button);\n\n\t\t\tthis.engine.configuration (this.tag, {\n\t\t\t\tbuttons\n\t\t\t});\n\n\t\t\tthis.onConfigurationUpdate ();\n\t\t}\n\t}\n\n\tstatic removeButton (string) {\n\t\tthis.engine.configuration (this.tag, {\n\t\t\tbuttons: this.buttons ().filter ((button) => button.string !== string)\n\t\t});\n\n\t\tthis.onConfigurationUpdate ();\n\t}\n\n\tstatic buttons () {\n\t\treturn this.engine.configuration (this.tag).buttons;\n\t}\n\n\tstatic button (string) {\n\t\treturn this.buttons ().find ((button) => button.string === string);\n\t}\n\n\tstatic onConfigurationUpdate () {\n\t\tconst elements = document.querySelectorAll (this.tag);\n\n\t\tfor (const element of elements) {\n\t\t\tif (element instanceof Component) {\n\t\t\t\telement.innerHTML = element.render ();\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\treturn this.static.buttons ().map ((button) => {\n\t\t\t// A user could create a custom element to display all or specific\n\t\t\t// buttons. If no element was set on the button's definition, we'll\n\t\t\t// assume it to be a simple button.\n\t\t\tif (typeof button.element !== 'string') {\n\t\t\t\tbutton.element = 'button';\n\t\t\t}\n\n\t\t\tconst element = document.createElement (button.element);\n\n\t\t\tif (typeof button.data === 'object') {\n\t\t\t\tfor (const key of Object.keys (button.data)) {\n\t\t\t\t\telement.dataset[key] = button.data[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.setAttribute ('icon', button.icon);\n\t\t\telement.setAttribute ('string', button.string);\n\n\t\t\treturn element.outerHTML;\n\t\t}).join (' ');\n\t}\n}\n\nMenuComponent.tag = 'lib-menu-component';\n\nexport { MenuComponent };","import { MenuComponent } from './../../lib/MenuComponent';\n\nclass MainMenu extends MenuComponent {\n\n\tstatic shouldRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic willRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\treturn this.static.buttons ().map ((button) => {\n\t\t\t// A user could create a custom element to display all or specific\n\t\t\t// buttons. If no element was set on the button's definition, we'll\n\t\t\t// assume it to be a simple button.\n\t\t\tif (typeof button.element !== 'string') {\n\t\t\t\tbutton.element = 'button';\n\t\t\t}\n\n\t\t\tconst element = document.createElement (button.element);\n\n\t\t\tif (typeof button.data === 'object') {\n\t\t\t\tfor (const key of Object.keys (button.data)) {\n\t\t\t\t\telement.dataset[key] = button.data[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.setAttribute ('icon', button.icon);\n\t\t\telement.setAttribute ('string', button.string);\n\n\t\t\telement.setAttribute ('tabindex', 0);\n\n\t\t\telement.innerHTML = `\n\t\t\t\t\n\t\t\t\t${this.engine.string (button.string)}\n\t\t\t`;\n\n\t\t\treturn element.outerHTML;\n\t\t}).join (' ');\n\t}\n\n}\n\nMainMenu.tag = 'main-menu';\n\n\nexport default MainMenu;","import { ScreenComponent } from './../../lib/ScreenComponent';\n\nclass MainScreen extends ScreenComponent {\n\tonStateUpdate (property, oldValue, newValue) {\n\t\tif (property === 'open') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.engine.playAmbient ();\n\t\t\t} else {\n\t\t\t\tif (this.engine.global ('playing') === true) {\n\t\t\t\t\tthis.engine.stopAmbient ();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn super.onStateUpdate(property, oldValue, newValue);\n\t}\n}\n\nMainScreen.tag = 'main-screen';\n\n\nexport default MainScreen;","import { Component } from './../../lib/Component';\n\nclass MessageModal extends Component {\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.props = {\n\t\t\ttitle: null,\n\t\t\tsubtitle: null,\n\t\t\tbody: '',\n\t\t\tactionString: 'Close'\n\t\t};\n\t}\n\n\tshouldProceed () {\n\t\treturn Promise.reject ('Message Modal awaiting for user to close the modal window.');\n\t}\n\n\twillProceed () {\n\t\tthis.remove ();\n\t\treturn Promise.resolve ();\n\t}\n\n\twillRollback () {\n\t\t// If a choice is visible right now, we can simply remove it and let the\n\t\t// game revert to the previous statement.\n\t\tthis.remove ();\n\t\treturn Promise.resolve ();\n\t}\n\n\tonReset () {\n\t\tthis.remove ();\n\t\treturn Promise.resolve ();\n\t}\n\n\twillMount () {\n\t\tthis.classList.add ('modal', 'modal--active');\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\tconst { title, subtitle, body } = this.props;\n\t\treturn `\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t${ typeof title === 'string' && title ? `

${title}

` : '' }\n\t\t\t\t\t${ typeof subtitle === 'string' && subtitle ? `

${subtitle}

` : '' }\n\t\t\t\t\t${ typeof body === 'string' && body ? `

${body}

` : '' }\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nMessageModal.tag = 'message-modal';\n\n\n\nexport default MessageModal;","import { MenuComponent } from './../../lib/MenuComponent';\n\nclass QuickMenu extends MenuComponent {\n\n\tstatic init () {\n\t\t// Remove the Skip text button if it has been disabled on the game settings\n\t\tif (!(this.engine.setting ('Skip') > 0)) {\n\t\t\tthis.removeButton ('Skip');\n\t\t}\n\t}\n\n\trender () {\n\t\treturn this.static.buttons ().map ((button) => {\n\t\t\t// A user could create a custom element to display all or specific\n\t\t\t// buttons. If no element was set on the button's definition, we'll\n\t\t\t// assume it to be a simple button.\n\t\t\tif (typeof button.element !== 'string') {\n\t\t\t\tbutton.element = 'button';\n\t\t\t}\n\n\t\t\tconst element = document.createElement (button.element);\n\n\t\t\tif (typeof button.data === 'object') {\n\t\t\t\tfor (const key of Object.keys (button.data)) {\n\t\t\t\t\telement.dataset[key] = button.data[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.setAttribute ('icon', button.icon);\n\t\t\telement.setAttribute ('string', button.string);\n\n\t\t\telement.setAttribute ('tabindex', 0);\n\n\t\t\telement.innerHTML = `\n\t\t\t\t\n\t\t\t\t${this.engine.string (button.string)}\n\t\t\t`;\n\n\t\t\treturn element.outerHTML;\n\t\t}).join (' ');\n\t}\n\n}\n\nQuickMenu.tag = 'quick-menu';\n\n\nexport default QuickMenu;","import { ScreenComponent } from './../../lib/ScreenComponent';\nimport moment from 'moment/min/moment-with-locales';\n\nclass SaveScreen extends ScreenComponent {\n\n\tstatic bind (selector) {\n\t\tthis.instances ().on ('click', '[data-action=\"save\"]', () => {\n\t\t\tconst slotName = this.instances ().find ('[data-content=\"slot-name\"]').value ().trim ();\n\t\t\tif (slotName !== '') {\n\t\t\t\tthis.engine.saveTo ('SaveLabel', null, slotName);\n\t\t\t}\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tonStateUpdate (property, oldValue, newValue) {\n\t\tsuper.onStateUpdate (property, oldValue, newValue);\n\t\tif (property === 'open' && newValue === true) {\n\t\t\tthis.content ('slot-name').value (moment ().format ('LL LTS'));\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\treturn `\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t
\n\t\t`;\n\t}\n}\n\nSaveScreen.tag = 'save-screen';\n\n\nexport default SaveScreen;","import { Component } from './../../lib/Component';\nimport { Text } from '@aegis-framework/artemis';\nimport moment from 'moment/min/moment-with-locales';\n\nclass SaveSlot extends Component {\n\n\tstatic shouldRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic willRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic bind (selector) {\n\n\t\tthis.engine.registerListener ('delete-slot', {\n\t\t\tcallback: () => {\n\t\t\t\tconst target = this.engine.global ('delete_slot');\n\n\t\t\t\t// Delete the slot from the storage\n\t\t\t\tthis.engine.Storage.remove (target);\n\n\t\t\t\t// Reset the temporal delete slot variable\n\t\t\t\tthis.engine.global ('delete_slot', null);\n\t\t\t\tthis.engine.dismissAlert ('slot-deletion');\n\n\t\t\t\tthis.engine.instances ().remove ();\n\t\t\t}\n\t\t});\n\n\t\tconst engine = this.engine;\n\n\t\tthis.engine.on ('click', '[data-component=\"slot-container\"] [data-delete]', function (event) {\n\t\t\tengine.debug.debug ('Registered Click on Slot Delete Button');\n\t\t\tevent.stopImmediatePropagation ();\n\t\t\tevent.stopPropagation ();\n\t\t\tevent.preventDefault ();\n\n\t\t\tengine.global ('delete_slot', this.dataset.delete);\n\t\t\tengine.Storage.get (engine.global ('delete_slot')).then ((data) => {\n\t\t\t\tengine.alert ('slot-deletion', {\n\t\t\t\t\tmessage: 'SlotDeletion',\n\t\t\t\t\tcontext: typeof data.name !== 'undefined' ? data.name : data.date,\n\t\t\t\t\tactions: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Delete',\n\t\t\t\t\t\t\tlistener: 'delete-slot'\n\t\t\t\t\t\t},\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tlabel: 'Cancel',\n\t\t\t\t\t\t\tlistener: 'dismiss-alert'\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tconstructor () {\n\t\tsuper ();\n\t\tthis.props = {\n\t\t\tslot: '',\n\t\t\tname: '',\n\t\t\tdate: '',\n\t\t\tscreenshot: '',\n\t\t\timage: ''\n\t\t};\n\n\t\tthis.data = null;\n\t}\n\n\twillMount () {\n\t\tthis.classList.add ('row__column', 'row_column--6', 'row__column--tablet--4', 'row__column--desktop--3', 'row__column--desktop-large--2');\n\n\t\treturn this.engine.Storage.get (this.slot).then ((data) => {\n\t\t\tthis.data = data;\n\n\t\t\tif (typeof data.Engine !== 'undefined') {\n\t\t\t\tdata.name = data.Name;\n\t\t\t\tdata.date = data.Date;\n\t\t\t\t// @Compability [<= v1.4.1]\n\t\t\t\t// In older versions the date was saved using the JavaScript native Date\n\t\t\t\t// object which is not great and moment can actually have trouble parsing\n\t\t\t\t// these old dates, specially because we used the locale date wich we have\n\t\t\t\t// no way of identifying. Therefore, we'll try to parse the date and if\n\t\t\t\t// it doesn't work as-is, we'll try swaping the month and day positions\n\t\t\t\t// which may be a common difference on the locales.\n\t\t\t\ttry {\n\t\t\t\t\t// Check if the date was saved in the old format (dd/mm/yy, hh:mm:ss)\n\t\t\t\t\tif (data.date.indexOf ('/') > -1) {\n\t\t\t\t\t\tconst [date, time] = data.date.replace (',', '').split (' ');\n\t\t\t\t\t\tconst [month, day, year] = date.split ('/');\n\t\t\t\t\t\tif (isNaN (Date.parse (date))) {\n\t\t\t\t\t\t\tdata.date = `${year}-${day}-${month} ${time}`;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdata.date = `${year}-${month}-${day} ${time}`;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} catch (e) {\n\t\t\t\t\tthis.engine.debug.debug ('Failed to convert date', e);\n\t\t\t\t}\n\n\t\t\t\tdata.image = data.Engine.Scene;\n\t\t\t}\n\n\t\t\tthis.setProps ({\n\t\t\t\tname: data.name,\n\t\t\t\tdate: data.date,\n\t\t\t\timage: data.image\n\t\t\t});\n\t\t});\n\t}\n\n\trender () {\n\t\tlet background = '';\n\n\t\tconst hasImage = this.props.image && this.engine.asset ('scenes', this.props.image);\n\n\t\tif (hasImage) {\n\t\t\tbackground = `url(${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').scenes}/${this.engine.asset ('scenes', this.props.image)})`;\n\t\t} else if ('game' in this.data) {\n\t\t\t// @Compability [<= v1.4.1]\n\t\t\t// That last if checking for the existance of game in the data is\n\t\t\t// required because older versions do not have that property.\n\t\t\tif (this.data.game.state.scene) {\n\t\t\t\tbackground = this.data.game.state.scene;\n\n\t\t\t\tif (background.indexOf (' with ') > -1) {\n\t\t\t\t\tbackground = Text.prefix (' with ', background);\n\t\t\t\t}\n\n\t\t\t\tbackground = Text.suffix ('show scene', background);\n\n\t\t\t} else if (this.data.game.state.background) {\n\t\t\t\tbackground = this.data.game.state.background;\n\n\t\t\t\tif (background.indexOf (' with ') > -1) {\n\t\t\t\t\tbackground = Text.prefix (' with ', background);\n\t\t\t\t}\n\n\t\t\t\tbackground = Text.suffix ('show background', background);\n\t\t\t}\n\t\t}\n\t\treturn `\n\t\t\t\n\t\t\t${this.props.name}\n\t\t\t
\n\t\t\t
${moment (this.props.date).format ('LL LTS')}
\n\t\t`;\n\t}\n}\n\nSaveSlot.tag = 'save-slot';\n\n\nexport default SaveSlot;","import { ScreenComponent } from './../../lib/ScreenComponent';\nimport { Platform, Text } from '@aegis-framework/artemis';\n\nclass SettingsScreen extends ScreenComponent {\n\n\tstatic bind () {\n\t\t// Fix for select labels\n\t\tthis.engine.on ('click', '[data-select]', () => {\n\t\t\tconst e = document.createEvent ('MouseEvents');\n\t\t\te.initMouseEvent ('mousedown');\n\t\t\tthis.engine.element ().find (`[data-action='${this.dataset.select}']`).first ().dispatchEvent (e);\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\telectron (selector) {\n\t\tthis.element ().find ('[data-action=\"set-resolution\"]').value (this.engine.preference ('Resolution'));\n\n\t\twindow.onbeforeunload = (event) => {\n\t\t\tevent.preventDefault ();\n\t\t\tthis.engine.alert ('quit-warning', {\n\t\t\t\tmessage: 'Confirm',\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Quit',\n\t\t\t\t\t\tlistener: 'quit'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Cancel',\n\t\t\t\t\t\tlistener: 'dismiss-alert'\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\t\t\treturn false;\n\t\t};\n\n\t\twindow.electron.send ('window-info-request', {\n\t\t\ttitle: this.engine.setting ('Name'),\n\t\t\tresizable: this.engine.setting ('ForceAspectRatio') !== 'Global'\n\t\t});\n\n\t\twindow.electron.on ('window-info-reply', (args) => {\n\t\t\tconst { resizable, minWidth, maxWidth, minHeight, maxHeight } = args;\n\n\t\t\tif (!resizable) {\n\t\t\t\tconst aspectRatio = this.engine.setting ('AspectRatio').split (':');\n\t\t\t\tconst aspectRatioWidth = parseInt (aspectRatio[0]);\n\t\t\t\tconst aspectRatioHeight = parseInt (aspectRatio[1]);\n\n\t\t\t\tfor (let i = 0; i < 488; i += 8) {\n\t\t\t\t\tconst calculatedWidth = aspectRatioWidth * i;\n\t\t\t\t\tconst calculatedHeight = aspectRatioHeight * i;\n\n\t\t\t\t\tif (calculatedWidth >= minWidth && calculatedHeight >= minHeight && calculatedWidth <= maxWidth && calculatedHeight <= maxHeight) {\n\t\t\t\t\t\tthis.element ().find ('[data-action=\"set-resolution\"]').append(``);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.element ().find ('[data-action=\"set-resolution\"]').append(``);\n\n\t\t\t\tthis.changeWindowResolution (this.engine.preference ('Resolution'));\n\t\t\t\tthis.element ().find ('[data-action=\"set-resolution\"]').change ((event) => {\n\t\t\t\t\tconst size = event.target.value;\n\t\t\t\t\tthis.changeWindowResolution (size);\n\t\t\t\t});\n\n\t\t\t\tthis.element ().find ('[data-action=\"set-resolution\"]').value (this.engine.preference ('Resolution'));\n\n\t\t\t} else {\n\t\t\t\tthis.element ().find ('[data-settings=\"resolution\"]').hide ();\n\t\t\t}\n\t\t});\n\n\t\twindow.electron.on ('resize-reply', (args) => {\n\t\t\tconst { width, height, fullscreen } = args;\n\n\t\t\tif (fullscreen) {\n\t\t\t\tthis.engine.preference ('Resolution', 'fullscreen');\n\t\t\t} else {\n\t\t\t\tthis.engine.preference ('Resolution', `${width}x${height}`);\n\t\t\t}\n\t\t});\n\t}\n\n\tchangeWindowResolution (resolution) {\n\t\tif (resolution) {\n\t\t\tif (resolution == 'fullscreen') {\n\t\t\t\twindow.electron.send ('resize-request', {\n\t\t\t\t\tfullscreen: true\n\t\t\t\t});\n\t\t\t} else if (resolution.indexOf ('x') > -1) {\n\t\t\t\tconst [ width, height ] = resolution.split ('x');\n\t\t\t\twindow.electron.send ('resize-request', {\n\t\t\t\t\twidth: parseInt (width),\n\t\t\t\t\theight: parseInt (height),\n\t\t\t\t\tfullscreen: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tdidMount () {\n\t\tthis.engine.on ('didInit', () => {\n\t\t\tif (this.engine.setting ('MultiLanguage') === true) {\n\t\t\t\tthis.content ('wrapper').html (`\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t`);\n\t\t\t\tthis.content ('language-selector').value (this.engine.preference ('Language'));\n\n\t\t\t\t// Bind Language select so that every time a language is selected, the\n\t\t\t\t// ui and game get correctly localized.\n\t\t\t\tthis.content ('language-selector').change (() => {\n\t\t\t\t\tthis.engine.preference ('Language', this.content ('language-selector').value ());\n\t\t\t\t\tthis.engine.localize ();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.content ('language-settings').remove ();\n\t\t\t}\n\n\t\t\tfor (const mediaType of Object.keys (this.engine.mediaPlayers ())) {\n\t\t\t\tthis.content (`${mediaType}-audio-controller`).value ('value', this.engine.preference ('Volume')[Text.capitalize (mediaType)]);\n\t\t\t}\n\n\t\t\t// Set the electron quit handler.\n\t\t\tif (Platform.electron () && typeof window.electron === 'object') {\n\t\t\t\tif (typeof window.electron.send === 'function' && typeof window.electron.on === 'function') {\n\t\t\t\t\tthis.electron ();\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.element ().find ('[data-platform=\"electron\"]').remove ();\n\t\t\t}\n\n\t\t\tthis.element ().find ('[data-action=\"set-text-speed\"]').value (this.engine.setting ('maxTextSpeed') - this.engine.preference ('TextSpeed'));\n\t\t});\n\n\t\t// Disable audio settings in iOS since they are not supported\n\t\tif (Platform.mobile ('iOS')) {\n\t\t\t// iOS handles the volume using the system volume, therefore there is now way to\n\t\t\t// handle each of the sound sources individually and as such, this is disabled.\n\t\t\tthis.content ('audio-settings').html (`

${this.engine.string ('iOSAudioWarning')}

`);\n\t\t}\n\n\t\tconst engine = this.engine;\n\t\tthis.content ('auto-play-speed-controller').on ('change mouseover', function () {\n\t\t\tconst value = engine.setting ('MaxAutoPlaySpeed') - parseInt(this.value);\n\t\t\tengine.preference ('AutoPlaySpeed', value);\n\t\t});\n\n\t\tthis.engine.setting ('MaxAutoPlaySpeed', parseInt (this.content ('auto-play-speed-controller').property ('max')));\n\t\tthis.content ('auto-play-speed-controller').value (this.engine.preference ('AutoPlaySpeed'));\n\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\treturn `\n\t\t\t\n\t\t\t

Settings

\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t

Audio

\n\t\t\t\t\t\tMusic Volume:\n\t\t\t\t\t\t\n\t\t\t\t\t\tSound Volume:\n\t\t\t\t\t\t\n\t\t\t\t\t\tVoice Volume:\n\t\t\t\t\t\t\n\t\t\t\t\t\tVideo Volume:\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t

Text Speed

\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t

Auto Play Speed

\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t

Language

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t

Resolution

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nSettingsScreen.tag = 'settings-screen';\n\n\n\nexport default SettingsScreen;","import { Component } from './../../lib/Component';\nimport { $_ } from '@aegis-framework/artemis';\n\nclass SlotContainer extends Component {\n\n\tstatic shouldRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic willRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic bind () {\n\t\tthis.engine.registerListener ('overwrite-slot', {\n\t\t\tcallback: (element) => {\n\t\t\t\tconst customName = $_(element).closest ('[data-content=\"context\"]').value ().trim ();\n\t\t\t\tif (customName !== '') {\n\t\t\t\t\tthis.engine.saveTo ('SaveLabel', this.engine.global ('overwrite_slot'), customName);\n\n\t\t\t\t\tthis.engine.global ('overwrite_slot', null);\n\t\t\t\t\tthis.engine.dismissAlert ('slot-overwrite');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn Promise.resolve();\n\t}\n\n\tconstructor () {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\ttype: 'load',\n\t\t\tlabel: ''\n\t\t};\n\n\t\tthis.state = {\n\t\t\tslots: []\n\t\t};\n\t}\n\n\twillMount () {\n\t\tthis.classList.add('row', 'row--spaced');\n\t\tconst fullLabel = `${this.props.label}_`;\n\n\t\treturn this.engine.Storage.each ((key, value) => {\n\t\t\tif (key.indexOf(fullLabel) === 0) {\n\t\t\t\t// If any of the save files has somehow become corrupted and is\n\t\t\t\t// no longer a valid object, we'll want to exclude it.\n\t\t\t\tif (typeof value === 'object' && value !== null) {\n\t\t\t\t\treturn Promise.resolve ({\n\t\t\t\t\t\tvalid: true,\n\t\t\t\t\t\tid: parseInt (key.split(fullLabel)[1]),\n\t\t\t\t\t\tkey,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Promise.resolve ({ valid: false });\n\t\t}).then((data) => {\n\t\t\t// Filter only those that are marked as valid and then, sort them\n\t\t\t// using their id as the pivot\n\t\t\tconst validSlots = data.filter (d => d.valid).sort ((a, b) => {\n\t\t\t\tif (a.id > b.id) {\n\t\t\t\t\treturn 1;\n\t\t\t\t} else if (a.id < b.id) {\n\t\t\t\t\treturn -1;\n\t\t\t\t} else {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t}).map (({ key }) => {\n\t\t\t\treturn key;\n\t\t\t});\n\n\t\t\tthis.setState({\n\t\t\t\tslots: validSlots\n\t\t\t});\n\t\t});\n\t}\n\n\tdidMount () {\n\t\tconst engine = this.engine;\n\n\t\tif (this.props.type === 'load') {\n\t\t\t// Load a saved game slot when it is pressed\n\t\t\tthis.element().on ('click', '[data-component=\"save-slot\"]', function (event) {\n\t\t\t\tconst isDeleteButton = $_(event.target).closestParent ('[data-delete]', '[data-component=\"save-slot\"]').exists ();\n\t\t\t\tif (!isDeleteButton) {\n\t\t\t\t\tengine.loadFromSlot($_(this).attribute ('slot')).then (() => {\n\t\t\t\t\t\tengine.run (engine.label ()[engine.state ('step')]);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (this.props.type === 'save') {\n\n\t\t\tconst self = this;\n\t\t\t// Save to slot when a slot is pressed.\n\t\t\tthis.element().on('click', '[data-component=\"save-slot\"]', function (event) {\n\t\t\t\tconst isDeleteButton = $_(event.target).closestParent ('[data-delete]', '[data-component=\"save-slot\"]').exists ();\n\n\t\t\t\tif (!isDeleteButton) {\n\t\t\t\t\tengine.debug.debug('Registered Click on Slot');\n\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tengine.global('overwrite_slot', $_(this).attribute ('slot').split ('_').pop ());\n\t\t\t\t\tengine.Storage.get (self.props.label + '_' + engine.global('overwrite_slot')).then((data) => {\n\t\t\t\t\t\tengine.alert('slot-overwrite', {\n\t\t\t\t\t\t\tmessage: 'SlotOverwrite',\n\t\t\t\t\t\t\tcontext: typeof data.name !== 'undefined' ? data.name : data.date,\n\t\t\t\t\t\t\teditable: true,\n\t\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: 'Overwrite',\n\t\t\t\t\t\t\t\t\tlistener: 'overwrite-slot'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: 'Cancel',\n\t\t\t\t\t\t\t\t\tlistener: 'dismiss-alert'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.engine.Storage.onCreate ((key, value) => {\n\t\t\t// We only want to react to those items that we believe are save files\n\t\t\t// by their key and making sure they're an actual object\n\t\t\tif (key.indexOf (`${this.props.label}_`) === 0) {\n\t\t\t\tif (typeof value === 'object' && value !== null) {\n\t\t\t\t\tthis.setState ({\n\t\t\t\t\t\tslots: [...new Set([...this.state.slots, key])]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.engine.Storage.onUpdate ((key, value) => {\n\t\t\t// We only want to react to those items that we believe are save files\n\t\t\t// by their key and making sure they're an actual object\n\t\t\tif (key.indexOf (`${this.props.label}_`) === 0) {\n\t\t\t\tif (typeof value === 'object' && value !== null) {\n\t\t\t\t\tthis.element ().find (`[slot=\"${key}\"]`).get (0).setProps (value);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.engine.Storage.onDelete ((key, value) => {\n\t\t\tif (key.indexOf (`${this.props.label}_`) === 0) {\n\t\t\t\tthis.setState ({\n\t\t\t\t\tslots: this.state.slots.filter (s => s !== key)\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthis.engine.on ('didLocalize', () => {\n\t\t\tthis.forceRender ();\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\tonStateUpdate (property, oldValue, newValue) {\n\t\tif (property === 'slots') {\n\t\t\tthis.forceRender ();\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\trender () {\n\t\tconst slots = this.state.slots.map(slot => ``).join('');\n\n\t\tif (slots !== '') {\n\t\t\treturn slots;\n\t\t}\n\n\t\treturn `

${this.engine.string('NoSavedGames')}

`;\n\t}\n}\n\nSlotContainer.tag = 'slot-container';\n\n\nexport default SlotContainer;","import { Component } from './../../lib/Component';\n\nclass TextBox extends Component {\n\n\tconstructor (...args) {\n\t\tsuper (...args);\n\t\tthis.props = {\n\t\t\tmode: 'adv',\n\t\t};\n\t}\n\n\tshow () {\n\t\tthis.element ().show ('grid');\n\t}\n\n\t/**\n\t * checkUnread - This function is used to add the unread class to the\n\t * text box if new contents (dialogs) were added to it causing it to overflow\n\t * but are not visible on screen right now so the player knows there is more\n\t * and scrolls the element.\n\t */\n\tcheckUnread () {\n\t\tconst text = this.content ('text').get (0);\n\t\tif ((text.clientHeight + text.scrollTop) < text.scrollHeight) {\n\t\t\tthis.classList.add ('unread');\n\t\t} else {\n\t\t\tthis.classList.remove ('unread');\n\t\t}\n\t}\n\n\trender () {\n\t\treturn `\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\"\"\n\t\t\t
\n\t\t\t
\n\t\t\t\t

\n\t\t\t
\n\t\t`;\n\t}\n}\n\nTextBox.tag = 'text-box';\n\n\nexport default TextBox;","import { $_ } from '@aegis-framework/artemis';\nimport { Component } from './../../lib/Component';\n\nclass TextInput extends Component {\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.state = {\n\t\t\tactive: true,\n\t\t};\n\n\t\tthis.props = {\n\t\t\ttext: '',\n\t\t\ttype: 'text',\n\t\t\tdefault: null,\n\t\t\toptions: [],\n\t\t\twarning: '',\n\t\t\tactionString: 'OK',\n\t\t\tonSubmit: () => {},\n\t\t\tvalidate: () => {},\n\t\t\tcallback: () => {},\n\t\t\tclasses: '',\n\t\t\tattributes: {},\n\t\t};\n\t}\n\n\tshouldProceed () {\n\t\treturn Promise.reject ('Input is awaiting user input.');\n\t}\n\n\twillRollback () {\n\t\tthis.remove ();\n\t\treturn Promise.resolve ();\n\t}\n\n\tonStateUpdate (property, oldValue, newValue) {\n\t\tif (property === 'active') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.classList.toggle ('modal--active');\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\twillMount () {\n\t\tthis.classList.add ('modal', 'modal--active');\n\n\t\t// Check if a list of classes has been defined and if the list is not empty\n\t\tif (typeof this.props.classes === 'string' && this.props.classes !== '') {\n\t\t\tthis.props.classes.split (' ').forEach ((className) => {\n\t\t\t\tif (className) {\n\t\t\t\t\tthis.classList.add (className);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidMount () {\n\t\tthis.addEventListener ('submit', (event) => {\n\t\t\tevent.stopPropagation ();\n\t\t\tevent.preventDefault ();\n\t\t\tlet inputValue = '';\n\t\t\t// Retrieve the value submitted\n\t\t\tif (this.props.type === 'radio') {\n\t\t\t\tconst checked = this.element ().find ('[data-content=\"field\"]:checked');\n\t\t\t\tif (checked.exists () > 0) {\n\t\t\t\t\tinputValue = checked.value ();\n\t\t\t\t} else {\n\t\t\t\t\tinputValue = '';\n\t\t\t\t}\n\n\t\t\t} else if (this.props.type === 'checkbox') {\n\t\t\t\tinputValue = [];\n\t\t\t\tthis.element ().find ('[data-content=\"field\"]:checked').each ((element) => {\n\t\t\t\t\tinputValue.push($_(element).value ());\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tinputValue = this.content ('field').value ();\n\t\t\t}\n\n\n\t\t\t// Run the validation function asynchronously. If it returns false,\n\t\t\t// it means the input is invalid and we have to show the warning message.\n\t\t\tthis.engine.assertAsync (this.props.validate, this.engine, [inputValue]).then (() => {\n\n\t\t\t\t// Once validation was done, we run the Save function where usually,\n\t\t\t\t// the input received will be saved on the storage or used for other\n\t\t\t\t// actions.\n\t\t\t\tthis.engine.assertAsync (this.props.onSubmit, this.engine, [inputValue]).then (() => {\n\t\t\t\t\t// Nothing to do here\n\t\t\t\t}).catch (() => {\n\t\t\t\t\t// Nothing to do here\n\t\t\t\t}).finally (() => {\n\t\t\t\t\tthis.remove ();\n\t\t\t\t\tthis.props.callback ();\n\t\t\t\t});\n\t\t\t}).catch (() => {\n\t\t\t\t// Show the warning message since the input was invalid\n\t\t\t\tthis.content ('warning').text (this.engine.replaceVariables (this.props.warning));\n\t\t\t});\n\t\t});\n\n\t\t// For inputs that require a text field, we place the default value after\n\t\t// mount instead of in-creation because this way, the cursor will be placed\n\t\t// at the end of the default value. If we did it in-creation, it would\n\t\t// be placed at the start.\n\t\tconst text = ['text', 'textarea', 'password', 'email', 'url', 'number', 'color'];\n\t\tconst { type, default: defaultValue, options } = this.props;\n\n\t\tif (text.indexOf (type) > -1) {\n\t\t\tif (defaultValue !== null && defaultValue !== '') {\n\t\t\t\tthis.content ('field').value (defaultValue);\n\t\t\t}\n\t\t}\n\t\tthis.content ('field').get (0).focus ();\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\tconst { type, default: defaultValue, options, attributes } = this.props;\n\t\tconst text = ['text', 'password', 'email', 'url', 'number', 'color', 'file', 'date', 'datetime-local', 'month', 'time', 'week', 'tel', 'range'];\n\t\tlet input = '';\n\t\tlet attr = '';\n\n\t\tif (typeof attributes === 'object' && attributes !== null) {\n\t\t\tattr = Object.keys (attributes).map ((key) => {\n\t\t\t\tlet value = attributes[key];\n\n\t\t\t\t// If it's a string value, we'll do the variable interpolation\n\t\t\t\t// for it.\n\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\tvalue = this.engine.replaceVariables (value);\n\t\t\t\t}\n\n\t\t\t\treturn `${key}=\"${value}\"`;\n\t\t\t}).join (' ');\n\t\t}\n\n\t\tif (text.indexOf (type) > -1) {\n\t\t\tinput = ``;\n\t\t} else if (type === 'textarea') {\n\t\t\tinput = ``;\n\t\t} else if (type === 'select') {\n\t\t\tconst optionElements = options.map ((o) => {\n\t\t\t\tlet selected = '';\n\t\t\t\tlet parsedDefault = defaultValue;\n\n\t\t\t\t// If the default value provided is a string, we need to do the variable\n\t\t\t\t// interpolation for it.\n\t\t\t\tif (typeof defaultValue === 'string' && defaultValue !== null && defaultValue !== '') {\n\t\t\t\t\tparsedDefault = this.engine.replaceVariables (defaultValue);\n\t\t\t\t\t// We're doing a == comparisson instead of === since the numeric\n\t\t\t\t\t// values could be a string.\n\t\t\t\t\tif (parsedDefault == this.engine.replaceVariables (o.value)) {\n\t\t\t\t\t\tselected = 'selected';\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof defaultValue === 'number') {\n\t\t\t\t\t// We're doing a == comparisson instead of === since the numeric\n\t\t\t\t\t// values could be a string.\n\t\t\t\t\tif (parsedDefault == o.value) {\n\t\t\t\t\t\tselected = 'selected';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ``;\n\t\t\t}).join ('');\n\n\t\t\tinput = ``;\n\n\t\t} else if (type === 'radio' || type === 'checkbox') {\n\t\t\tinput = options.map ((o, index) => {\n\t\t\t\tlet checked = '';\n\t\t\t\tlet parsedDefault = defaultValue;\n\n\t\t\t\t// If the default value provided is a string, we need to do the variable\n\t\t\t\t// interpolation for it.\n\t\t\t\tif (typeof defaultValue === 'string' && defaultValue !== null && defaultValue !== '') {\n\t\t\t\t\tparsedDefault = this.engine.replaceVariables (defaultValue);\n\t\t\t\t\t// We're doing a == comparisson instead of === since the numeric\n\t\t\t\t\t// values could be a string.\n\t\t\t\t\tif (parsedDefault == this.engine.replaceVariables (o.value)) {\n\t\t\t\t\t\tchecked = 'checked';\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof defaultValue === 'number') {\n\t\t\t\t\t// We're doing a == comparisson instead of === since the numeric\n\t\t\t\t\t// values could be a string.\n\t\t\t\t\tif (parsedDefault == o.value) {\n\t\t\t\t\t\tchecked = 'checked';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn `\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t`;\n\t\t\t}).join ('');\n\t\t}\n\t\treturn `\n\t\t\t
\n\t\t\t\t

${this.props.text}

\n\t\t\t\t${input}\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t`;\n\t}\n}\n\n\nTextInput.tag = 'text-input';\n\n\nexport default TextInput;","import { Component } from './../../lib/Component';\nimport { Util } from '@aegis-framework/artemis';\n\nclass TimerDisplay extends Component {\n\n\tconstructor (...args) {\n\t\tsuper (...args);\n\n\t\tthis.props = {\n\t\t\tcallback: () => {},\n\t\t\ttime: 0,\n\t\t\tstep: 0,\n\t\t\ttimer: null,\n\t\t\ttick: null\n\t\t};\n\n\t\tthis.state = {\n\t\t\telapsed: 0,\n\t\t\tremaining: 0,\n\t\t\tvalue: 100\n\t\t};\n\t}\n\n\twillMount () {\n\t\tthis.setProps ({\n\t\t\tstep: this.props.time / 100\n\t\t});\n\n\t\tthis.setState ({\n\t\t\tremaining: this.props.time\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidMount () {\n\t\tthis.setProps ({\n\t\t\ttick: () => {\n\t\t\t\tthis.setProps({\n\t\t\t\t\ttimer: setTimeout (() => {\n\t\t\t\t\t\tif (this.state.elapsed >= this.props.time) {\n\t\t\t\t\t\t\tUtil.callAsync (this.props.callback, this.engine).then (() => {\n\t\t\t\t\t\t\t\tclearTimeout (this.props.timer);\n\t\t\t\t\t\t\t\tif (this.parentNode) {\n\t\t\t\t\t\t\t\t\tthis.element ().remove ();\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.setState ({\n\t\t\t\t\t\t\t\telapsed: this.state.elapsed + this.props.step,\n\t\t\t\t\t\t\t\tremaining: this.state.remaining - this.props.step,\n\t\t\t\t\t\t\t\tvalue: (1 - (this.state.elapsed / this.props.time)) * 100\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tthis.forceRender ();\n\t\t\t\t\t\t\tthis.props.tick ();\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t}, this.props.step)\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthis.props.tick ();\n\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\treturn `\n\t\t\t
\n\t\t`;\n\t}\n}\n\nTimerDisplay.tag = 'timer-display';\n\n\nexport default TimerDisplay;","import { Component } from './../../lib/Component';\n\nclass VisualNovel extends Component {\n\n\tstatic shouldRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic willRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\trender () {\n\t\treturn '';\n\t}\n\n}\n\nVisualNovel.tag = 'visual-novel';\n\n\nexport default VisualNovel;","\n/**\n * An action describes the functionality for a Monogatari statement, when Monogatari\n * reads a part of the script (a statement), it will look for an action that matches\n * the statement and run it.\n *\n * The life cycle of an action is divided in three parts: Mounting, Application\n * and Reverting.\n *\n * The mounting cycle has 3 steps:\n *\n * 1. Setup - Here the action needs to set up everything it will need for working\n * generally, in this section an action will register the variables it\n * needs such as object histories and state variables or even add the\n * HTML contents to the document.\n *\n * 2. Bind - Once the action has been setup, its time to bind all the necessary\n * event listeners or perfom more operations on the DOM once all elements\n * have been setup.\n *\n * 3. Init - Finally, once the action was setup and it performed all the needed\n * bindings, it may declare or modify variables that needed the HTML to\n * be setup first or perform any other needed final operations.\n *\n * As noted, the Mounting cycle is mostly about getting everything setup for a\n * correct operation of the action. Thr Application and Reverting cycles are used\n * for the actual workings of an action in a game.\n *\n * Before executing an action Monogatari will check if the current statement matches\n * with the action, therefore the Action must implement a matching function. If\n * the statement to match should be a String, the action must implement the\n * matchString () method, if it should be an Object, the action must implement\n * the matchObject () method. Both should return a boolean on whether the action\n * matches the given statement or not.\n *\n *\n * The Application cycle refers to the cycle of an Action when it is run because of\n * a statement in the script.\n *\n * The Application Cycle has 3 steps as well:\n *\n * 1. Will Apply - Executed when the action will be applied, if any operations\n * need to be done before its application, this is the place.\n *\n * 2. Apply - The application itself, this is where all the logic regarding the\n * action must be applied. Of course every action will implement its\n * own logic depending on what it has to do.\n *\n * 3. Did Apply - Executed after the action was applied, this function is great\n * for cleanup operations or any other thing that needs to be done\n * after the action was applied.\n *\n * While the Application clycle is all about executing the action, the Revert\n * cycle is the opposite and it reverts the things the Application cycle does.\n * Reverting is used when the player goes back in the game and has equivalent\n * steps to the Application Cycle:\n *\n * 1. Will Revert - Executed when the action will be reverted, if any operations\n * need to be done before its revertion such as checking for history\n * elements or any other check, this is the place.\n *\n * 2. Revert - The reversion of the action, its common that the actions revert to\n * previous states or revert other changes done by the application of\n * an action. Every action will implement its own logic depending on\n * what it has to do.\n *\n * 3. Did Revert - Executed after the action was reverted, this function is great\n * for cleanup operations or any other thing that needs to be done\n * after the action was reverted.\n *\n * @class Action\n */\nclass Action {\n\n\t/**\n\t * If needed, every action should declare its configuration as follows. This\n\t * configuration object should be used to store action-specific settings as well\n\t * as other objects/assets used by the action. If any specific object needs\n\t * recurrent access such as the declarations in the script.js file, provinding\n\t * a static function for that specific object could be great.\n\t */\n\tstatic _configuration = {};\n\n\t/**\n\t * All actions must have an ID, with this ID the developers will be able to\n\t * access the action classes, remove actions or register new ones. They must also\n\t * be unique.\n\t */\n\tstatic id = 'Action';\n\n\t/**\n\t * @static configuration - A simple function providing access to the configuration\n\t * object of the function. If the action has a configuration object it must\n\t * also include this method.\n\t *\n\t * @param {Object|string} [object = null] - Object with which current\n\t * configuration will be updated with (i.e. Object.assign) or a string to access\n\t * a property.\n\t *\n\t * @return {any} - If the parameter sent was a string, the function will\n\t * return the value of the property whose name matches the parameter. If no\n\t * parameter was sent, then the function will return the whole configuration\n\t * object.\n\t */\n\tstatic configuration (object = null) {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn this._configuration[object];\n\t\t\t} else {\n\t\t\t\tthis._configuration = Object.assign ({}, this._configuration, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._configuration;\n\t\t}\n\t}\n\n\t/**\n\t * @static shouldProceed - Either when the user clicks in the game to proceed or\n\t * the autoPlay feature is ready to go on, Monogatari will first check with\n\t * all actions if it's ok to proceed. Every action should implement its own\n\t * logic for it according to its requirements.\n\t *\n\t * @return {Promise} - Resolved if proceeding is alright or rejected if its not\n\t */\n\tstatic shouldProceed () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static willProceed - Once the shouldProceed check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game proceeding.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic willProceed () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static shouldRollback - Similarly to the shouldProceed () function, this one takes\n\t * action when the player tries to go back in the game.Monogatari will first\n\t * check with all actions if it's ok to go back. Every action should implement\n\t * its own logic for it according to its requirements.\n\t *\n\t * @return {Promise} - Resolved if going back is alright or rejected if its not\n\t */\n\tstatic shouldRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static willRollback - Once the shouldRollback check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game reverting the previous action\n\t *\n\t * @return {Promise}\n\t */\n\tstatic willRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static onStart - This function acts as an event listener for when the game\n\t * starts. If the action needs to do any particular activities when the game\n\t * starts, then this function should be implemented and it will be automatically\n\t * called once the player starts the game.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic onStart () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static onLoad - This function acts as an event listener for when a game\n\t * is loaded. If the action needs to perform any particular actions such as\n\t * restoring some state (i.e. showing images, playing media, etc.) when a game\n\t * is loaded, this function must be implemented and it will be automatically\n\t * called when a game is loaded.\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic onLoad () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static onSave - This function acts as an event listener for when a game\n\t * is saved. If the action needs to perform any particular actions when that\n\t * happens, this function must be implemented and it will be automatically\n\t * called when a game is saved.\n\t *\n\t * @param {Object} slot - The slot object that has just been saved.\n\t * @param {string} slot.key - The key used to save the slot in the local storage\n\t * @param {Object} slot.value - The actual value saved\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic onSave () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static reset - When a game ends using the 'end' statement or before a game\n\t * is loaded, Monogatari will perform a reset on all its actions. If the action\n\t * needs to reset a state or any other variables/elements to an initial state\n\t * once a game is over or a new one is loaded, the logic for it must be implemented\n\t * here and the function will be automatically called when needed.\n\t *\n\t * @return {Promise} - Result of the reset operation\n\t */\n\tstatic reset () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static setup - The setup is the first step of the Mounting cycle, all\n\t * operations required for the action's setup should be implemented here.\n\t *\n\t * @param {string} selector - The CSS selector with which Monogatari has been\n\t * initialized\n\t * @return {Promise} - Result of the setup operation\n\t */\n\tstatic setup (selector) {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static bind - The binding is the second step of the Mounting cycle, all\n\t * operations related to event bindings or other sort of binding with the\n\t * HTML content generated in the setup phase should be implemented here.\n\t *\n\t * @param {string} selector - The CSS selector with which Monogatari has been\n\t * initialized\n\t * @return {Promise} - Result of the binding operation\n\t */\n\tstatic bind (selector) {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static init - The initialization is the last step of the Mounting cycle,\n\t * all final operations should be implemented here.\n\t *\n\t * @param {string} selector - The CSS selector with which Monogatari has been\n\t * initialized\n\t * @return {Promise} - Result of the initialization operation\n\t */\n\tstatic init (selector) {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static match - Currently this function is saved up for future uses.\n\t *\n\t * @param {any} - Statement to match\n\t *\n\t * @return {type} - Whether the action matches the statement or not\n\t */\n\tstatic match (statement) {\n\t\treturn false;\n\t}\n\n\t/**\n\t * @static matchString - When Monogatari goes through a string statement, it\n\t * will use this function to find which action it corresponds to.\n\t *\n\t * @param {string[]} statement - The statement to match, splitted into an array by spaces\n\t * @return {boolean} - Whether the action matches the statement or not\n\t */\n\tstatic matchString (statement) {\n\t\treturn false;\n\t}\n\n\t/**\n\t * @static matchObject - Similarly to its string counterpart, this function\n\t * is used when Monogatari goes through an Object (generally JSON) statement\n\t * to find which action the statement corresponds to.\n\t *\n\t * @param {Object} statement - The statement to match,\n\t * @return {boolean} - Whether the action matches the statement or not\n\t */\n\tstatic matchObject (statement) {\n\t\treturn false;\n\t}\n\n\tstatic beforeRun ({ advance }) {\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic beforeRevert ({ advance, step }) {\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic afterRun ({ advance }) {\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic afterRevert ({ advance, step }) {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * constuctor - Once the action has been matched through one of the match\n\t * functions, an instance of the action is created with the statement it\n\t * matched as argument. As in the match functions, the string statements will\n\t * actually be received as arrays of words splitted by spaces.\n\t *\n\t * @param {string[]|Object} statement - The statement it matched\n\t */\n\tconstuctor (statement) {\n\n\t}\n\n\t/**\n\t * The engine to which this action registered to.\n\t *\n\t * @type {Monogatari}\n\t */\n\tget engine () {\n\t\treturn this.constructor.engine;\n\t}\n\n\tset engine (value) {\n\t\tthrow new Error ('Component engine reference is hold at static level and cannot be modified.');\n\t}\n\n\t/**\n\t * setContext - This is a built in function in every action, the context of\n\t * the action will always be the Monogatari class. This is mainly used for\n\t * cases where the action can't import or reference directly the Monogatari\n\t * class so it can simply use this.context instead.\n\t *\n\t * @param {Monogatari} context - The Monogatari Class\n\t */\n\tsetContext (context) {\n\t\tthis.context = context;\n\t}\n\n\t/**\n\t * _setStatement - Since the original statement used to match an action tends\n\t * to be transformed by monogatari (i.e. by splitting it or other things),\n\t * this action built-in function is automatically used by Monogatari to\n\t * set the original statement to the action once it has been instantiated.\n\t * Because of this function, you can always refere to the original statement\n\t * in the Application and Reverting cycles with this._statement;\n\t *\n\t * @param {string|Object|function} statement - The statement with which the action was run\n\t */\n\t_setStatement (statement) {\n\t\tthis._statement = statement;\n\t}\n\n\t/**\n\t * _setCycle - This simple method is used to set what cycle the action is\n\t * currently performing. This is useful to know on those actions that may\n\t * use the apply or revert methods on any situation but that have slight\n\t * differences on the logic.\n\t *\n\t * @param {string} cycle - 'Application' if the action is running the application\n\t * cycle or 'Revert' if it's running the revert cycle.\n\t */\n\t_setCycle (cycle) {\n\t\tthis._cycle = cycle;\n\t}\n\n\t/**\n\t * willApply - Method called before the application of an action\n\t *\n\t * @return {Promise} - Result of the willApply operation, if this function\n\t * returns a rejected promise, the cycle will be interrupted and the action\n\t * will not be applied.\n\t */\n\twillApply () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * apply - Method for the actual application of an action, this is where\n\t * the core operations of an action must be done.\n\t *\n\t * @return {Promise} - Result of the application operation\n\t */\n\tapply () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * didApply - If the cycle has reached this far, it means the action has\n\t * correctly gone through the willApply and apply functions. Now that it has\n\t * been applied, we can perform any cleanup operations.\n\t *\n\t * @return {Promise} - Result of the didApply operation. When resolved,\n\t * it should resolve to a boolean value, true if the game should go to the\n\t * next statement right away, false if it should wait for user's interaction.\n\t */\n\tdidApply () {\n\t\treturn Promise.resolve ({\n\t\t\tadvance: false\n\t\t});\n\t}\n\n\t/**\n\t * interrupt - Currently saved for future purposes, the interrupt function\n\t * would be used to interrupt a function when its still doing something, like\n\t * when the typing animation of dialogs is interrupted if you click again.\n\t *\n\t * @return {Promsie} - Result of the interruption\n\t */\n\tinterrupt () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * willRevert - Method called before an action is reverted\n\t *\n\t * @return {Promise} - Result of the willRevert operation, if this function\n\t * returns a rejected promise, the cycle will be interrupted and the action\n\t * will not be reverted.\n\t */\n\twillRevert () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * revert - Method called for the actual reversion of an action, this is where\n\t * the core operations needed to revert an action must be done.\n\t *\n\t * @return {Promise} - Result of the reversion operation\n\t */\n\trevert () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * didApply - If the cycle has reached this far, it means the action has\n\t * correctly gone through the willRevert and revert functions. Now that it has\n\t * been reverted, we can perform any cleanup operations.\n\t *\n\t * @return {Promise} - Result of the didRevert operation. When resolved,\n\t * it should resolve to a boolean value, true if the game should go to the\n\t * previous statement right away, false if it should wait for user's interaction.\n\t */\n\tdidRevert () {\n\t\treturn Promise.resolve ({\n\t\t\tadvance: false,\n\t\t\tstep: true\n\t\t});\n\t}\n}\n\nexport { Action };","import { Action } from '../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { FancyError } from './../lib/FancyError';\n\nexport class Canvas extends Action {\n\n\tstatic configuration (object = null) {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn Canvas._configuration[object];\n\t\t\t} else {\n\t\t\t\tCanvas._configuration = Object.assign ({}, Canvas._configuration, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn Canvas._configuration;\n\t\t}\n\t}\n\n\tstatic shouldProceed () {\n\t\treturn new Promise ((resolve, reject) => {\n\t\t\tthis.engine.element ().find ('[data-component=\"canvas-container\"]').each ((element) => {\n\t\t\t\tconst { mode, canvas } = element.props;\n\t\t\t\tif (['immersive', 'modal'].indexOf (mode) > -1) {\n\t\t\t\t\treject (`Canvas \"${canvas}\" must be removed before proceeding.`);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tresolve ();\n\t\t});\n\t}\n\n\tstatic onLoad () {\n\t\tif (this.engine.state ('canvas').length > 0) {\n\t\t\tconst promises = [];\n\t\t\tfor (const canvas of this.engine.state ('canvas')) {\n\t\t\t\tconst action = this.engine.prepareAction (canvas, { cycle: 'Application' });\n\t\t\t\tconst promise = action.willApply ().then (() => {\n\t\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: false });\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tpromises.push (promise);\n\t\t\t}\n\n\t\t\tif (promises.length > 0) {\n\t\t\t\treturn Promise.all (promises);\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic setup () {\n\t\tthis.engine.history ('canvas');\n\t\tthis.engine.state ({\n\t\t\tcanvas: []\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic bind () {\n\t\twindow.addEventListener ('resize', () => {\n\t\t\tthis.engine.element ().find ('[data-component=\"canvas-container\"][mode=\"background\"], [data-component=\"canvas-container\"][mode=\"immersive\"]').each ((canvasContainer) => {\n\t\t\t\tconst { object } = canvasContainer.props;\n\t\t\t\tif (typeof object.resize === 'function') {\n\t\t\t\t\tUtil.callAsync (object.resize, this.engine, canvasContainer.layers, object.props, object.state, canvasContainer);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic reset () {\n\t\tconst promises = [];\n\n\t\t// Go through each canvas element being shown so it can be properly\n\t\t// stopped and then removed.\n\t\tthis.engine.element ().find ('[data-component=\"canvas-container\"]').each ((canvasContainer) => {\n\t\t\tconst { object } = canvasContainer.props;\n\n\t\t\tpromises.push (Util.callAsync (object.stop, this.engine, canvasContainer.layers, object.props, object.state, canvasContainer).then (() => {\n\t\t\t\tcanvasContainer.remove ();\n\t\t\t}));\n\t\t});\n\n\t\tthis.engine.history ({\n\t\t\tcanvas: []\n\t\t});\n\n\t\tthis.engine.state ({\n\t\t\tcanvas: []\n\t\t});\n\n\t\treturn Promise.all (promises);\n\t}\n\n\tstatic matchString ([ show, type ]) {\n\t\treturn show === 'show' && type === 'canvas';\n\t}\n\n\tstatic objects (object = null) {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn Canvas._configuration.objects[object];\n\t\t\t} else {\n\t\t\t\tCanvas._configuration.objects = Object.assign ({}, Canvas._configuration.objects, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn Canvas._configuration.objects;\n\t\t}\n\t}\n\n\t/**\n\t * Creates an instance of a Canvas Action\n\t *\n\t * @param {string[]} parameters - List of parameters received from the script statement.\n\t * @param {string} parameters.action - In this case, action will always be 'canvas'\n\t * @param {string} [parameters.mode='displayable'] - Mode in which the canvas element will be shown (displayable, background, immersive)\n\t * @param {string} parameters.mode\n\t */\n\tconstructor ([ show, canvas, name, mode = 'displayable', separator, ...classes ]) {\n\t\tsuper ();\n\n\t\tthis.mode = mode;\n\t\tthis.name = name;\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = ['animated', ...classes.filter((c) => c !== 'with')];\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\twillApply () {\n\t\tif (this.constructor._configuration.modes.indexOf (this.mode) === -1) {\n\t\t\tFancyError.show (\n\t\t\t\t`The canvas mode provided (\"${this.mode}\") is not valid.`,\n\t\t\t\t`Monogatari attempted to show a canvas object but the mode \"${this.mode}\" was not found in the canvas action configuration as a valid mode.`,\n\t\t\t\t{\n\t\t\t\t\t'Mode Provided': this.mode,\n\t\t\t\t\t'You may have meant one of these': this.constructor._configuration.modes,\n\t\t\t\t\t'Statement': `\"${this._statement}\"`,\n\t\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t\t'Help': {\n\t\t\t\t\t\t'_': 'Check your statement and make sure there are no typos on the mode you provided.'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\treturn Promise.reject ('Invalid canvas mode provided.');\n\t\t}\n\n\t\tthis.object = Canvas.objects (this.name);\n\n\t\tif (typeof this.object !== 'object') {\n\t\t\tFancyError.show (\n\t\t\t\t`The canvas object \"${this.name}\" was not found or is invalid`,\n\t\t\t\t`Monogatari attempted to retrieve an object named \"${this.name}\" but it didn't exist in the canvas objects.`,\n\t\t\t\t{\n\t\t\t\t\t'Canvas': this.name,\n\t\t\t\t\t'You may have meant': Object.keys (Canvas.objects ()),\n\t\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t\t'Help': {\n\t\t\t\t\t\t'_': 'Check the object\\'s name is correct and that you have defined it previously. A canvas object is defined as follows:',\n\t\t\t\t\t\t'_1':`\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.engine.action ('Canvas').objects ({\n\t\t\t\t\t\t\t\t\t\tstars: {\n\t\t\t\t\t\t\t\t\t\t\tstart: () => {},\n\t\t\t\t\t\t\t\t\t\t\tstop: () => {},\n\t\t\t\t\t\t\t\t\t\t\trestart: () => {},\n\t\t\t\t\t\t\t\t\t\t\tlayers: [],\n\t\t\t\t\t\t\t\t\t\t\tstate: {},\n\t\t\t\t\t\t\t\t\t\t\tprops: {}\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t`,\n\t\t\t\t\t\t'_2': 'Notice the object defined uses a name or an id, in this case it was set to \"stars\" and to show it, you must use that exact name:',\n\t\t\t\t\t\t'_3':`\n\t\t\t\t\t\t\t
\"show canvas stars background\"
\n\t\t\t\t\t\t`\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\n\t\t\treturn Promise.reject ('Canvas object did not exist or is invalid');\n\t\t}\n\n\t\tthis.element = document.createElement ('canvas-container');\n\n\t\tthis.containerSelector = `[data-component=\"canvas-container\"][canvas=\"${this.name}\"][mode=\"${this.mode}\"]`;\n\n\t\treturn Promise.resolve ();\n\n\t}\n\n\tapply () {\n\t\tconst defaultFunction = () => Promise.resolve ();\n\n\t\tthis.element.setProps ({\n\t\t\tmode: this.mode,\n\t\t\tcanvas: this.name,\n\t\t\t// We need to pass the object this way so we can clone the state\n\t\t\t// property instead of pasing it by reference. Otherwise, any changes\n\t\t\t// made to it during execution would be kept there and the next time we\n\t\t\t// use the same object, we'll receive the modified state object instead\n\t\t\t// of a clean one.\n\t\t\tobject: {\n\t\t\t\tlayers: this.object.layers || ['base'],\n\t\t\t\tprops: this.object.props || {},\n\t\t\t\tstate: { ...(this.object.state || {}) },\n\t\t\t\tstart: this.object.start || defaultFunction,\n\t\t\t\tstop: this.object.stop || defaultFunction,\n\t\t\t\tresize: this.object.resize || defaultFunction,\n\t\t\t},\n\t\t\tclasses: this.classes\n\t\t});\n\n\t\tconst gameScreen = this.engine.element ().find ('[data-screen=\"game\"]');\n\n\t\tif (this.mode === 'background') {\n\t\t\tgameScreen.find ('[data-ui=\"background\"]').append (this.element);\n\t\t} else if (this.mode === 'immersive') {\n\t\t\tgameScreen.append (this.element);\n\t\t} else if (this.mode === 'displayable' || this.mode === 'modal' || this.mode === 'character') {\n\t\t\tgameScreen.get (0).content ('visuals').append (this.element);\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply ({ updateHistory = true, updateState = true } = {}) {\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history ('canvas').push (this._statement);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state ('canvas').push (this._statement);\n\t\t}\n\n\t\tif (this.mode === 'background' || this.mode === 'character' || this.mode === 'displayable') {\n\t\t\treturn Promise.resolve ({ advance: true });\n\t\t}\n\n\t\treturn Promise.resolve ({ advance: false });\n\t}\n\n\twillRevert () {\n\t\tthis.containerSelector = `[data-component=\"canvas-container\"][canvas=\"${this.name}\"][mode=\"${this.mode}\"]`;\n\t\tthis.element = document.querySelector (this.containerSelector);\n\t\tthis.object = this.element.props.object;\n\n\t\treturn Promise.resolve ();\n\t}\n\n\trevert () {\n\t\treturn Util.callAsync (this.element.props.object.stop, this.engine, this.element.layers, this.element.props.object.props, this.element.props.object.state, this.element).then (() => {\n\t\t\tthis.engine.element ().find (this.containerSelector).remove ();\n\t\t});\n\t}\n\n\tdidRevert () {\n\t\tfor (let i = this.engine.state ('canvas').length - 1; i >= 0; i--) {\n\t\t\tconst last = this.engine.state ('canvas')[i];\n\t\t\tconst [show, canvas, name, mode] = last.split (' ');\n\t\t\tif (name === this.name && mode === this.mode) {\n\t\t\t\tthis.engine.state ('canvas').splice (i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfor (let i = this.engine.history ('canvas').length - 1; i >= 0; i--) {\n\t\t\tconst last = this.engine.history ('canvas')[i];\n\t\t\tconst [show, canvas, name, mode] = last.split (' ');\n\t\t\tif (name === this.name) {\n\t\t\t\tthis.engine.history ('canvas').splice (i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nCanvas.id = 'Canvas';\nCanvas._configuration = {\n\tobjects: {\n\n\t},\n\tmodes: ['modal', 'displayable', 'immersive', 'background', 'character']\n};\n\nexport default Canvas;","import { Action } from '../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\n\nexport class Choice extends Action {\n\n\tstatic setup () {\n\t\tthis.engine.global ('_CurrentChoice', []);\n\t\tthis.engine.global ('_ChoiceTimer', []);\n\n\t\tthis.engine.global ('_choice_pending_rollback', []);\n\t\tthis.engine.global ('_choice_just_rolled_back', []);\n\n\t\tthis.engine.history ('choice');\n\n\t\treturn Promise.resolve ();\n\t}\n\n\n\tstatic afterRevert () {\n\t\t// When a choice gets reverted, it pushes a `true` value to this global variable.\n\t\t// As soon as it gets reverted, this function is run and it pops the `true` out of\n\t\t// the array, meaning it was just reverted and the choice should be showing on screeen again.\n\t\tif (this.engine.global ('_choice_just_rolled_back').pop ()) {\n\t\t\treturn Promise.resolve ();\n\t\t}\n\n\t\t// If the player reverts once more while the choice is being shown, then we'll reach this part\n\t\t// and we can clean up any variables we need to.\n\t\tif (this.engine.global ('_choice_pending_rollback').pop ()) {\n\t\t\tthis.engine.global ('_ChoiceTimer').pop ();\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic bind () {\n\t\tconst engine = this.engine;\n\t\t// Bind the click event on data-do elements. This property is used for\n\t\t// every choice button.\n\t\tthis.engine.on ('click', '[data-choice]:not([disabled])', function (event) {\n\t\t\tengine.debug.debug ('Registered Click on Choice Button');\n\t\t\tevent.stopImmediatePropagation ();\n\t\t\tevent.stopPropagation ();\n\t\t\tevent.preventDefault ();\n\n\t\t\tengine.global ('block', false);\n\n\t\t\tlet doAction = this.dataset.do;\n\n\t\t\t// Check that the data property was not created with\n\t\t\t// a null property\n\t\t\tif (doAction != 'null') {\n\n\t\t\t\t// Remove all the choices\n\t\t\t\tengine.element ().find ('choice-container').remove ();\n\n\t\t\t\tconst choice = this.dataset.choice;\n\n\t\t\t\tconst current = engine.global ('_CurrentChoice').pop().Choice;\n\n\t\t\t\tif (typeof current.Timer !== 'undefined') {\n\t\t\t\t\tconst timer = engine.global ('_ChoiceTimer').pop ();\n\t\t\t\t\tengine.global ('_choice_pending_rollback').pop ();\n\t\t\t\t\tif (typeof timer !== 'undefined') {\n\t\t\t\t\t\tclearTimeout (timer.props.timer);\n\t\t\t\t\t\tif (timer.parentNode !== null) {\n\t\t\t\t\t\t\ttimer.element ().remove ();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (current) {\n\t\t\t\t\tdoAction = current[choice].Do;\n\t\t\t\t}\n\n\t\t\t\tconst run = () => {\n\t\t\t\t\tengine.global ('_executing_sub_action', true);\n\t\t\t\t\tengine.run (doAction).then ((result) => {\n\t\t\t\t\t\tengine.global ('_executing_sub_action', false);\n\t\t\t\t\t\tengine.history ('choice').push (choice);\n\n\t\t\t\t\t\treturn Promise.resolve (result);\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\t// Remove the reference to the current choice object\n\t\t\t\tif (current) {\n\t\t\t\t\tif (current[choice] !== 'undefined') {\n\t\t\t\t\t\tif (typeof current[choice].onChosen === 'function') {\n\t\t\t\t\t\t\treturn Util.callAsync (current[choice].onChosen, engine).then (() => {\n\t\t\t\t\t\t\t\trun ();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\trun ();\n\t\t\t}\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic reset () {\n\t\tthis.engine.global ('_CurrentChoice', []);\n\t\tthis.engine.global ('_ChoiceTimer', []);\n\n\t\tthis.engine.global ('_choice_pending_rollback', []);\n\t\tthis.engine.global ('_choice_just_rolled_back', []);\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchObject (statement) {\n\t\treturn typeof statement.Choice !== 'undefined';\n\t}\n\n\tconstructor (statement) {\n\t\tsuper ();\n\n\t\tthis.statement = statement.Choice;\n\n\t\tthis.result = { advance: false, step: false };\n\t}\n\n\tapply ({ updateLog = true } = {}) {\n\t\tthis.engine.global ('block', true);\n\n\t\t// Save a reference to the choice object globally. Since the choice buttons\n\t\t// are set a data-do property to know what the choice should do, it is\n\t\t// limited to a string and thus object or function actions would not be\n\t\t// able to be used in choices.\n\t\tthis.engine.global ('_CurrentChoice').push (this._statement);\n\n\t\tconst promises = [];\n\n\t\t// Go over all the objects defined in the choice object which should be\n\t\t// call the options to chose from or the string to show as dialog\n\t\tfor (const i in this.statement) {\n\t\t\tconst choice = this.statement[i];\n\n\t\t\t// Check if the option is an object (a option to choose from) or\n\t\t\t// if it's text (dialog to be shown)\n\t\t\tif (typeof choice == 'object') {\n\t\t\t\tif (i === 'Timer') {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tthis.statement[i]._key = i;\n\n\t\t\t\t// Check if the current option has a condition to be shown\n\t\t\t\tif (typeof choice.Condition !== 'undefined' && choice.Condition !== '') {\n\t\t\t\t\tpromises.push (\n\t\t\t\t\t\tnew Promise ((resolve) => {\n\t\t\t\t\t\t\t// First check if the condition is met before we add the button\n\t\t\t\t\t\t\tthis.engine.assertAsync (this.statement[i].Condition, this.engine).then (() => {\n\t\t\t\t\t\t\t\tresolve (this.statement[i]);\n\t\t\t\t\t\t\t}).catch (() => {\n\t\t\t\t\t\t\t\tresolve ();\n\t\t\t\t\t\t\t}).finally (() => {\n\t\t\t\t\t\t\t\t//this.engine.global ('block', false);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t})\n\t\t\t\t\t);\n\t\t\t\t} else {\n\t\t\t\t\tpromises.push (Promise.resolve (this.statement[i]));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.all (promises).then ((choices) => {\n\t\t\tconst element = document.createElement ('choice-container');\n\n\t\t\t// Check if the choice object defined a list of class names\n\t\t\tconst classes = typeof this.statement.Class === 'string' ? this.statement.Class.trim () : '';\n\n\t\t\telement.setProps ({\n\t\t\t\tchoices: choices.filter(c => typeof c !== 'undefined'),\n\t\t\t\tclasses\n\t\t\t});\n\n\t\t\tconst dialog = this.statement.Dialog;\n\t\t\tconst timer = this.statement.Timer;\n\t\t\tconst textBox = this.engine.element ().find ('[data-component=\"text-box\"]').get (0);\n\n\t\t\tlet promise = Promise.resolve ();\n\n\t\t\tif (typeof dialog === 'string') {\n\t\t\t\t// If there's a dialog, we'll wait until showing that up to show\n\t\t\t\t// the choices, in order to avoid showing the choices in an incorrect\n\t\t\t\t// format if the dialog was NVL or not\n\t\t\t\tconst action = this.engine.prepareAction (dialog, { cycle: 'Application' });\n\t\t\t\tpromise = action.willApply ().then (() => {\n\t\t\t\t\treturn action.apply ({ updateLog }).then (() => {\n\t\t\t\t\t\treturn action.didApply ();\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn promise.then (() => {\n\t\t\t\tif (textBox.props.mode === 'nvl') {\n\t\t\t\t\ttextBox.content ('text').append (element);\n\t\t\t\t} else {\n\t\t\t\t\tthis.engine.element ().find ('[data-screen=\"game\"]').append (element);\n\t\t\t\t}\n\n\t\t\t\tif (typeof timer === 'object') {\n\t\t\t\t\tconst timer_display = document.createElement ('timer-display');\n\t\t\t\t\ttimer_display.setProps (timer);\n\t\t\t\t\tthis.engine.global ('_ChoiceTimer').push(timer_display);\n\t\t\t\t\tthis.engine.global ('_choice_pending_rollback').push (true);\n\t\t\t\t\tthis.engine.element ().find ('[data-screen=\"game\"]').prepend (timer_display);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\twillRevert () {\n\t\tif (this.engine.history ('choice').length > 0) {\n\t\t\tconst choice = this.engine.history ('choice')[this.engine.history ('choice').length - 1];\n\t\t\tif (this.statement[choice] !== 'undefined') {\n\n\t\t\t\t// Check if the choice had an onChosen function with it's matching\n\t\t\t\t// onRevert functionality, or if no onChosen function was provided\n\t\t\t\t// which are the only cases where it can be reverted.\n\t\t\t\tconst functionReversible = (typeof this.statement[choice].onRevert === 'function' && typeof this.statement[choice].onChosen === 'function') || typeof this.statement[choice].onChosen !== 'function';\n\n\t\t\t\tif (functionReversible) {\n\t\t\t\t\treturn Promise.resolve ();\n\t\t\t\t} else {\n\t\t\t\t\treturn Promise.reject ('The choice taken is not reversible because it did not defined a `onRevert` function.');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn Promise.reject ('Choice history was empty');\n\t}\n\n\trevert () {\n\t\tconst choice = this.engine.history ('choice')[this.engine.history ('choice').length - 1];\n\n\n\t\treturn this.engine.revert (this.statement[choice].Do, false).then (() => {\n\t\t\tif (typeof this.statement[choice].onRevert === 'function') {\n\t\t\t\treturn Util.callAsync (this.statement[choice].onRevert, this.engine);\n\t\t\t}\n\t\t\treturn Promise.resolve ();\n\t\t}).then (() => {\n\t\t\tif (typeof this.statement.Timer === 'object' && this.statement.Timer !== null) {\n\t\t\t\tthis.engine.global ('_ChoiceTimer').pop ();\n\t\t\t}\n\n\t\t\tif (typeof this.statement.Dialog === 'string') {\n\t\t\t\tconst dialogLog = this.engine.component ('dialog-log');\n\t\t\t\tif (typeof dialogLog !== 'undefined') {\n\t\t\t\t\tdialogLog.instances (instance => instance.pop ());\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst action = this.engine.prepareAction (this._statement, { cycle: 'Application' });\n\t\t\treturn action.willApply ().then (() => {\n\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: false });\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tdidRevert () {\n\t\tthis.engine.global ('_choice_just_rolled_back').push (true);\n\t\tthis.engine.history ('choice').pop ();\n\t\treturn Promise.resolve ({ advance: false, step: false });\n\t}\n}\n\nChoice.id = 'Choice';\n\nexport default Choice;","import { Action } from './../lib/Action';\n\nexport class Clear extends Action {\n\n\tstatic setup () {\n\t\tthis.engine.history ('clear');\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchString ([ action ]) {\n\t\treturn action === 'clear';\n\t}\n\n\tapply () {\n\t\tthis.engine.action ('Dialog').reset ({ keepNVL: true, saveNVL: true });\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply () {\n\t\tconst textBox = this.engine.element ().find ('[data-component=\"text-box\"]').get (0);\n\t\tthis.engine.history ('clear').push (textBox.props.mode);\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\twillRevert () {\n\t\tif (this.engine.history ('clear').length > 0) {\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t\treturn Promise.reject ('No items left on the clear history to revert it.');\n\t}\n\n\trevert () {\n\t\tconst last = this.engine.history ('clear').pop ();\n\n\t\tif (last === 'nvl') {\n\t\t\tthis.engine.global ('_should_restore_nvl', true);\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nClear.id = 'Clear';\n\nexport default Clear;","import { Action } from '../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { FancyError } from '../lib/FancyError';\n\nexport class Conditional extends Action {\n\n\tstatic setup () {\n\t\t// In here we'll save up what branch was taken every time we execute a\n\t\t// conditional.\n\t\tthis.engine.history ('conditional');\n\n\t\t// Whether a conditional that was run is pending rollback on the next time\n\t\t// a revert is issued.\n\t\tthis.engine.global ('_conditional_pending_rollback', []);\n\n\t\t// Whether a conditional was just reverted\n\t\tthis.engine.global ('_conditional_just_rolled_back', []);\n\n\t\treturn Promise.resolve();\n\t}\n\n\tstatic reset () {\n\t\t// Whether a conditional that was run is pending rollback on the next time\n\t\t// a revert is issued.\n\t\tthis.engine.global ('_conditional_pending_rollback', []);\n\n\t\t// Whether a conditional was just reverted\n\t\tthis.engine.global ('_conditional_just_rolled_back', []);\n\n\t\treturn Promise.resolve();\n\t}\n\n\tstatic matchObject (statement) {\n\t\treturn typeof statement.Conditional !== 'undefined';\n\t}\n\n\tstatic afterRevert ({ advance, step }) {\n\t\t// Prevent modifying the history if the action that was just reverted was\n\t\t// this conditional\n\t\tif (this.engine.global ('_conditional_just_rolled_back').pop ()) {\n\t\t\treturn Promise.resolve ();\n\t\t}\n\n\t\twhile (this.engine.global ('_conditional_pending_rollback').pop ()) {\n\t\t\tconst currentStatement = this.engine.label () [this.engine.state ('step')];\n\t\t\tif (typeof currentStatement !== 'undefined') {\n\t\t\t\tif (typeof currentStatement.Conditional === 'object') {\n\t\t\t\t\tthis.engine.history ('conditional').pop ();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic beforeRun () {\n\t\t// const restoringState = this.engine.global ('_restoring_state');\n\n\t\t// if (!restoringState) {\n\t\tthis.engine.global ('_conditional_pending_rollback').pop ();\n\t\t// }\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tconstructor (statement) {\n\t\tsuper ();\n\t\tthis.statement = statement.Conditional;\n\t\tthis.branch = '';\n\t\tthis.result = { advance: true, step: false };\n\t}\n\n\tapply () {\n\t\treturn new Promise ((resolve, reject) => {\n\n\t\t\t// Call the condition function. Since the function might use a\n\t\t\t// Promise.reject () to return as false, we also define a catch\n\t\t\t// block to run the False branch of the condition.\n\t\t\tUtil.callAsync (this.statement.Condition, this.engine).then ((returnValue) => {\n\t\t\t\tthis.engine.global ('_executing_sub_action', true);\n\n\t\t\t\tif (typeof returnValue === 'number') {\n\t\t\t\t\tif (returnValue < 0) {\n\t\t\t\t\t\tFancyError.show (\n\t\t\t\t\t\t\t`Conditional condition returned a negative numer \"${returnValue}\".`,\n\t\t\t\t\t\t\t`The \\`Condition\\` function returned \"${returnValue}\" and only positive numbers are allowed for numeric values.`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'Problematic Value': returnValue,\n\t\t\t\t\t\t\t\t'You may have meant one of these': Object.keys(this.statement).filter (b => b !== 'Condition')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject ('Invalid negative value');\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!Number.isInteger(returnValue)) {\n\t\t\t\t\t\tFancyError.show (\n\t\t\t\t\t\t\t`Conditional condition returned a non-integer value \"${returnValue}\".`,\n\t\t\t\t\t\t\t`The \\`Condition\\` function returned \"${returnValue}\" and only integer numbers are allowed for numeric values.`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'Problematic Value': returnValue,\n\t\t\t\t\t\t\t\t'You may have meant one of these': Object.keys(this.statement).filter (b => b !== 'Condition')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject ('Invalid non-integer value');\n\t\t\t\t\t}\n\n\t\t\t\t\treturnValue = `${returnValue}`;\n\t\t\t\t}\n\n\t\t\t\t// Check if the function returned true so we run the True branch\n\t\t\t\t// of the conditional. If false is returned, we run the False\n\t\t\t\t// branch of the conditional and if a string is returned, we use\n\t\t\t\t// it as a key so we run the branch that has that key\n\t\t\t\tif (returnValue === true) {\n\t\t\t\t\tthis.branch = 'True';\n\t\t\t\t\tresolve (this.engine.run (this.statement.True).then ((result) => {\n\t\t\t\t\t\tthis.engine.global ('_executing_sub_action', false);\n\t\t\t\t\t\tthis.result = result;\n\t\t\t\t\t\treturn Promise.resolve (result);\n\t\t\t\t\t}));\n\t\t\t\t} else if (typeof returnValue === 'string') {\n\t\t\t\t\tconst branch = this.statement[returnValue];\n\n\t\t\t\t\tif (typeof branch === 'undefined') {\n\t\t\t\t\t\tFancyError.show (\n\t\t\t\t\t\t\t`Conditional attempted to execute a non existent branch \"${returnValue}\"`,\n\t\t\t\t\t\t\t`The \\`Condition\\` function returned \"${returnValue}\" as the branch to execute but it does not exist.`,\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'Problematic Branch': returnValue,\n\t\t\t\t\t\t\t\t'You may have meant one of these': Object.keys(this.statement).filter (b => b !== 'Condition')\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t\treject ('Non existent branch');\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.branch = returnValue;\n\t\t\t\t\tresolve (this.engine.run (branch).then ((result) => {\n\t\t\t\t\t\tthis.engine.global ('_executing_sub_action', false);\n\t\t\t\t\t\tthis.result = result;\n\t\t\t\t\t\treturn Promise.resolve (result);\n\t\t\t\t\t}));\n\t\t\t\t} else {\n\t\t\t\t\tthis.branch = 'False';\n\t\t\t\t\tresolve (this.engine.run (this.statement.False).then ((result) => {\n\t\t\t\t\t\tthis.engine.global ('_executing_sub_action', false);\n\t\t\t\t\t\tthis.result = result;\n\t\t\t\t\t\treturn Promise.resolve (result);\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}).catch (() => {\n\t\t\t\tthis.branch = 'False';\n\t\t\t\tresolve (this.engine.run (this.statement.False).then ((result) => {\n\t\t\t\t\tthis.engine.global ('_executing_sub_action', false);\n\t\t\t\t\tthis.result = result;\n\t\t\t\t\treturn Promise.resolve (result);\n\t\t\t\t}));\n\t\t\t});\n\t\t});\n\t}\n\n\tdidApply () {\n\t\t// const restoringState = this.engine.global ('_restoring_state');\n\n\t\t// if (!restoringState) {\n\t\tif (!this.result.advance) {\n\t\t\tthis.engine.global ('_conditional_pending_rollback').push (true);\n\t\t}\n\n\t\tthis.engine.history ('conditional').push (this.branch);\n\t\t// }\n\n\t\tthis.engine.global ('_executing_sub_action', false);\n\n\t\treturn Promise.resolve ({ advance: false });\n\t}\n\n\twillRevert () {\n\t\tif (this.engine.history ('conditional').length > 0) {\n\t\t\tconst conditional = this.engine.history ('conditional')[this.engine.history ('conditional').length - 1];\n\t\t\tif (this.statement[conditional] !== 'undefined') {\n\t\t\t\treturn Promise.resolve ();\n\t\t\t}\n\t\t}\n\t\treturn Promise.reject ('Conditional history was empty.');\n\t}\n\n\trevert () {\n\t\tconst conditional = this.engine.history ('conditional')[this.engine.history ('conditional').length - 1];\n\t\tthis.engine.global ('_executing_sub_action', true);\n\t\treturn this.engine.revert (this.statement[conditional]).then ((result) => {\n\t\t\tthis.engine.global ('_executing_sub_action', false);\n\t\t\tthis.result = result;\n\t\t\treturn Promise.resolve (result);\n\t\t});\n\t}\n\n\tdidRevert () {\n\t\tthis.engine.global ('_conditional_pending_rollback').push (true);\n\t\tthis.engine.global ('_conditional_just_rolled_back').push (true);\n\t\treturn Promise.resolve ({ advance: false, step: false });\n\t}\n}\n\nConditional.id = 'Conditional';\n\nexport default Conditional;","import { Action } from './../lib/Action';\nimport Typed from './../lib/vendor/typed.min.js';\nimport { $_ } from '@aegis-framework/artemis';\n\nexport class Dialog extends Action {\n\n\tstatic shouldProceed () {\n\t\t// Check if the type animation has finished and the Typed object still exists\n\t\tif (!this.engine.global ('finished_typing') && this.engine.global ('textObject') !== null) {\n\n\t\t\t// Get the string it was typing\n\t\t\tconst str = this.engine.global ('textObject').strings [0];\n\n\t\t\t// Get the element it was typing to\n\t\t\tconst element = this.engine.global ('textObject').el;\n\t\t\tthis.engine.global ('textObject').destroy ();\n\n\t\t\telement.innerHTML = str.replace (/\\{pause:(\\d+)\\}/g, '').replace (/\\{speed:(\\d+)\\}/g, '');\n\n\t\t\tthis.engine.global ('finished_typing', true);\n\n\t\t\tthis.engine.trigger ('didFinishTyping');\n\n\t\t\treturn Promise.reject ('TypeWriter effect has not finished.');\n\t\t}\n\n\t\treturn Promise.resolve (this.engine.global ('finished_typing'));\n\t}\n\n\tstatic willProceed () {\n\t\tconst centeredDialog = this.engine.element ().find ('[data-component=\"centered-dialog\"]');\n\t\tif (centeredDialog.isVisible ()) {\n\t\t\tcenteredDialog.remove ();\n\t\t}\n\n\t\tthis.engine.global ('_dialog_pending_revert', false);\n\n\t\treturn Promise.resolve (this.engine.global ('finished_typing'));\n\t}\n\n\tstatic willRollback () {\n\t\tconst textBox = this.engine.element ().find ('[data-component=\"text-box\"]').get (0);\n\t\tif (this.engine.global ('textObject') !== null && textBox.props.mode !== 'nvl') {\n\t\t\tthis.engine.global ('textObject').destroy ();\n\t\t}\n\n\t\tthis.engine.global ('finished_typing', true);\n\n\t\t// this.engine.global ('_CurrentChoice');\n\n\t\tthis.engine.element ().find ('[data-component=\"text-box\"]').get (0).show ();\n\n\t\tconst dialogLog = this.engine.component ('dialog-log');\n\n\t\tconst centeredDialog = this.engine.element ().find ('[data-component=\"centered-dialog\"]');\n\t\tif (centeredDialog.isVisible ()) {\n\t\t\tcenteredDialog.remove ();\n\t\t\tthis.engine.element ().find ('[data-component=\"text-box\"]').get (0).show ();\n\t\t}\n\n\t\tdocument.querySelector ('[data-ui=\"who\"]').innerHTML = '';\n\n\t\tif (typeof dialogLog !== 'undefined' && this.engine.global ('_dialog_pending_revert') === true) {\n\t\t\tdialogLog.instances (instance => instance.pop ());\n\t\t\tthis.engine.global ('_dialog_pending_revert', false);\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic setup () {\n\t\tthis.engine.globals ({\n\t\t\ttextObject: null,\n\t\t\tfinished_typing: false,\n\t\t\ttypedConfiguration: {\n\t\t\t\tstrings: [],\n\t\t\t\ttypeSpeed: this.engine.preference ('TextSpeed'),\n\t\t\t\tfadeOut: true,\n\t\t\t\tloop: false,\n\t\t\t\tshowCursor: false,\n\t\t\t\tcontentType: 'html',\n\t\t\t\tpreStringTyped: () => {\n\t\t\t\t\tthis.engine.global ('finished_typing', false);\n\t\t\t\t},\n\t\t\t\tonStringTyped: () => {\n\t\t\t\t\tthis.engine.global ('finished_typing', true);\n\t\t\t\t\tthis.engine.trigger ('didFinishTyping');\n\t\t\t\t},\n\t\t\t\tonDestroy: () => {\n\t\t\t\t\tthis.engine.global ('finished_typing', true);\n\t\t\t\t}\n\t\t\t},\n\t\t\t_dialog_pending_revert: false,\n\t\t});\n\n\t\t// The NVL mode has its own history so that when going back, all dialogs\n\t\t// that were shown on screen can be shown again instead of just showing\n\t\t// the last one.\n\t\tthis.engine.history ('nvl');\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic bind (selector) {\n\t\tconst self = this;\n\n\t\t// Add listener for the text speed setting\n\t\t$_(`${selector} [data-action=\"set-text-speed\"]`).on ('change mouseover', function () {\n\t\t\tconst value = self.engine.setting ('maxTextSpeed') - parseInt(this.value);\n\t\t\tself.engine.global ('typedConfiguration').typeSpeed = value;\n\t\t\tself.engine.preference ('TextSpeed', value);\n\t\t});\n\n\t\t// Detect scroll on the text element to remove the unread class used when\n\t\t// there's text not being shown in NVL mode.\n\t\t$_(`${selector} [data-component=\"text-box\"] [data-content=\"text\"]`).on ('scroll', () => {\n\t\t\tconst text_box = this.engine.element ().find ('[data-component=\"text-box\"]');\n\t\t\tif (text_box.exists ()) {\n\t\t\t\tif (typeof text_box.get (0).checkUnread === 'function') {\n\t\t\t\t\ttext_box.get (0).checkUnread ();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic init (selector) {\n\t\t// Remove the Text Speed setting if the type animation was disabled\n\t\tif (this.engine.setting ('TypeAnimation') === false) {\n\t\t\t$_(`${selector} [data-settings=\"text-speed\"]`).hide ();\n\t\t}\n\n\t\tthis.engine.setting ('maxTextSpeed', parseInt ($_(`${selector} [data-action=\"set-text-speed\"]`).property ('max')));\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic reset ({ keepNVL = false, saveNVL = false } = {}) {\n\t\tconst textBox = this.engine.element ().find ('[data-component=\"text-box\"]').get (0);\n\n\t\tif (saveNVL === true && textBox.props.mode === 'nvl') {\n\t\t\tthis.engine.history ('nvl').push (textBox.content ('dialog').html ());\n\t\t}\n\n\t\tif (keepNVL !== true) {\n\t\t\ttextBox.setProps ({ mode: 'adv' });\n\t\t}\n\n\t\tif (this.engine.global ('textObject') !== null) {\n\t\t\tthis.engine.global ('textObject').destroy ();\n\t\t}\n\n\t\tthis.engine.element ().find ('[data-component=\"text-box\"]').data ('speaking', '');\n\n\t\tthis.engine.element ().find ('[data-ui=\"who\"]').style ('color', '');\n\n\t\tthis.engine.element ().find ('[data-ui=\"who\"]').html ('');\n\t\tthis.engine.element ().find ('[data-ui=\"say\"]').html ('');\n\n\t\tthis.engine.element ().find ('[data-ui=\"face\"]').attribute ('src', '');\n\t\tthis.engine.element ().find ('[data-ui=\"face\"]').hide ();\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchString () {\n\t\treturn true;\n\t}\n\n\tconstructor ([ character, ...dialog ]) {\n\t\tsuper ();\n\n\t\tconst [ id, expression ] = character.split (':');\n\n\t\tthis.dialog = dialog.join (' ');\n\t\tthis.clearDialog = this.dialog.replace (/\\{pause:(\\d+)\\}/g, '').replace (/\\{speed:(\\d+)\\}/g, '');\n\n\t\tthis.nvl = false;\n\n\t\tif (typeof this.engine.character (id) !== 'undefined') {\n\t\t\tthis.character = this.engine.character (id);\n\t\t\tthis.id = id;\n\n\t\t\tif (typeof this.character.nvl !== 'undefined') {\n\t\t\t\tthis.nvl = this.character.nvl;\n\t\t\t}\n\n\t\t\tif (typeof expression !== 'undefined') {\n\t\t\t\tif (typeof this.character.expressions !== 'undefined') {\n\t\t\t\t\tthis.image = this.character.expressions[expression];\n\t\t\t\t\tthis.expression = expression;\n\t\t\t\t}\n\n\t\t\t} else if (typeof this.character.default_expression !== 'undefined') {\n\t\t\t\tif (typeof this.character.expressions[this.character.default_expression] !== 'undefined') {\n\t\t\t\t\tthis.image = this.character.expressions[this.character.default_expression];\n\t\t\t\t} else {\n\t\t\t\t\tthis.image = this.character.default_expression;\n\t\t\t\t}\n\t\t\t\tthis.expression = 'default';\n\t\t\t}\n\t\t} else if (id === 'centered') {\n\t\t\tthis.id = 'centered';\n\t\t} else {\n\t\t\tthis.id = 'narrator';\n\t\t\tif (id === 'nvl') {\n\t\t\t\tthis.nvl = true;\n\t\t\t} else {\n\t\t\t\tthis.dialog = `${character} ${this.dialog}`;\n\t\t\t\tthis.clearDialog = `${character} ${this.clearDialog}`;\n\t\t\t}\n\t\t}\n\t}\n\n\twillApply () {\n\t\tthis.engine.element ().find ('[data-character]').removeClass ('focus');\n\t\tthis.engine.element ().find ('[data-ui=\"face\"]').hide ();\n\n\t\tdocument.querySelector ('[data-ui=\"who\"]').innerHTML = '';\n\n\t\tthis.engine.element ().find ('[data-component=\"text-box\"]').removeData ('expression');\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdisplayCenteredDialog (dialog, clearDialog, character, animation) {\n\t\tconst element = document.createElement ('centered-dialog');\n\t\tthis.engine.element ().find ('[data-component=\"text-box\"]').hide ();\n\t\tthis.engine.element ().find ('[data-screen=\"game\"]').append (element);\n\n\t\telement.ready (() => {\n\t\t\tif (animation && this.engine.setting ('TypeAnimation') === true) {\n\t\t\t\tthis.engine.global ('typedConfiguration').strings = [dialog];\n\t\t\t\tthis.engine.global ('finished_typing', false);\n\t\t\t\tthis.engine.global ('textObject', new Typed (element.content ('wrapper').get (0), this.engine.global ('typedConfiguration')));\n\t\t\t} else {\n\t\t\t\telement.content ('wrapper').html (clearDialog);\n\t\t\t\tthis.engine.global ('finished_typing', true);\n\t\t\t\tthis.engine.trigger ('didFinishTyping');\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdisplayNvlDialog (dialog, clearDialog, character, animation) {\n\t\tconst textBox = this.engine.element ().find ('[data-component=\"text-box\"]').get (0);\n\n\t\tif (textBox.props.mode !== 'nvl') {\n\t\t\tDialog.reset ();\n\t\t\ttextBox.setProps ({ mode: 'nvl' });\n\t\t}\n\n\t\t// Remove contents from the dialog area.\n\t\tconst previous = this.engine.element ().find ('[data-component=\"text-box\"]').data ('speaking');\n\t\tthis.engine.element ().find ('[data-component=\"text-box\"]').data ('speaking', character);\n\n\t\t// Check if the typing animation flag is set to true in order to show it\n\t\tif (animation === true && this.engine.setting ('TypeAnimation') === true && this.engine.setting ('NVLTypeAnimation') === true) {\n\n\t\t\t// If the property is set to true, the animation will be shown\n\t\t\t// if it is set to false, even if the flag was set to true,\n\t\t\t// no animation will be shown in the game.\n\t\t\tif (character !== 'narrator') {\n\t\t\t\tif (previous !== character) {\n\t\t\t\t\tthis.engine.element ().find ('[data-ui=\"say\"] [data-spoke]').last().addClass ('nvl-dialog-footer');\n\t\t\t\t\tthis.engine.element ().find ('[data-ui=\"say\"]').append (`
${this.engine.replaceVariables (this.engine.character (character).name)}:

`);\n\t\t\t\t} else {\n\t\t\t\t\tthis.engine.element ().find ('[data-ui=\"say\"]').append (`

`);\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tif (previous !== character) {\n\t\t\t\t\tthis.engine.element ().find ('[data-ui=\"say\"] [data-spoke]').last().addClass ('nvl-dialog-footer');\n\t\t\t\t}\n\t\t\t\tthis.engine.element ().find ('[data-ui=\"say\"]').append (`

`);\n\t\t\t}\n\n\t\t\tconst elements = $_('[data-ui=\"say\"] [data-spoke] p');\n\t\t\tconst last = elements.last ().get (0);\n\n\t\t\tthis.engine.global ('typedConfiguration').strings = [dialog];\n\t\t\tthis.engine.global ('finished_typing', false);\n\t\t\tthis.engine.global ('textObject', new Typed (last, this.engine.global ('typedConfiguration')));\n\n\t\t} else {\n\t\t\tif (character !== 'narrator') {\n\t\t\t\tif (previous !== character) {\n\t\t\t\t\tthis.engine.element ().find ('[data-ui=\"say\"] [data-spoke]').last().addClass ('nvl-dialog-footer');\n\t\t\t\t\tthis.engine.element ().find ('[data-ui=\"say\"]').append (`
${this.engine.replaceVariables (this.engine.character (character).name)}:

${clearDialog}

`);\n\t\t\t\t} else {\n\t\t\t\t\tthis.engine.element ().find ('[data-ui=\"say\"]').append (`

${dialog}

`);\n\t\t\t\t}\n\n\t\t\t} else {\n\t\t\t\tif (previous !== character) {\n\t\t\t\t\tthis.engine.element ().find ('[data-ui=\"say\"] [data-spoke]').last().addClass ('nvl-dialog-footer');\n\t\t\t\t}\n\t\t\t\tthis.engine.element ().find ('[data-ui=\"say\"]').append (`

${clearDialog}

`);\n\t\t\t}\n\t\t\tthis.engine.global ('finished_typing', true);\n\t\t\tthis.engine.trigger ('didFinishTyping');\n\t\t}\n\n\t\tconst text_box = this.engine.element ().find ('[data-component=\"text-box\"]');\n\t\tif (text_box.exists ()) {\n\t\t\tif (typeof text_box.get (0).checkUnread === 'function') {\n\t\t\t\ttext_box.get (0).checkUnread ();\n\t\t\t}\n\t\t}\n\n\t}\n\n\tdisplayDialog (dialog, clearDialog, character, animation) {\n\t\tif (this.nvl === false) {\n\t\t\tconst textBox = this.engine.element ().find ('[data-component=\"text-box\"]').get (0);\n\n\t\t\tif (textBox.props.mode === 'nvl' && this._cycle === 'Application' && this.engine.global ('_restoring_state') === false) {\n\t\t\t\tthis.engine.history ('nvl').push (textBox.content ('dialog').html ());\n\t\t\t}\n\n\t\t\ttextBox.setProps ({ mode: 'adv' });\n\n\t\t\t// Destroy the previous textObject so the text is rewritten.\n\t\t\t// If not destroyed, the text would be appended instead of replaced.\n\t\t\tif (this.engine.global ('textObject') !== null) {\n\t\t\t\tthis.engine.global ('textObject').destroy ();\n\t\t\t}\n\n\t\t\t// Remove contents from the dialog area.\n\t\t\tthis.engine.element ().find ('[data-ui=\"say\"]').html ('');\n\t\t\tthis.engine.element ().find ('[data-component=\"text-box\"]').data ('speaking', character);\n\n\t\t\t// Check if the typing animation flag is set to true in order to show it\n\t\t\tif (animation === true && this.engine.setting ('TypeAnimation') === true) {\n\n\t\t\t\t// If the property is set to true, the animation will be shown\n\t\t\t\t// if it is set to false, even if the flag was set to true,\n\t\t\t\t// no animation will be shown in the game.\n\t\t\t\tthis.engine.global ('typedConfiguration').strings = [dialog];\n\t\t\t\tthis.engine.global ('finished_typing', false);\n\t\t\t\tthis.engine.global ('textObject', new Typed ('[data-ui=\"say\"]', this.engine.global ('typedConfiguration')));\n\t\t\t} else {\n\t\t\t\tthis.engine.element ().find ('[data-ui=\"say\"]').html (clearDialog);\n\t\t\t\tthis.engine.global ('finished_typing', true);\n\t\t\t\tthis.engine.trigger ('didFinishTyping');\n\t\t\t}\n\t\t} else {\n\t\t\tthis.displayNvlDialog (dialog, clearDialog, character, animation);\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\n\tcharacterDialog () {\n\t\t// Check if the character has a name to show\n\t\tif (typeof this.character.name !== 'undefined' && !this.nvl) {\n\t\t\tthis.engine.element ().find ('[data-ui=\"who\"]').html (this.engine.replaceVariables (this.character.name));\n\t\t}\n\n\t\tlet directory = this.character.directory;\n\n\t\tif (typeof directory == 'undefined') {\n\t\t\tdirectory = '';\n\t\t} else {\n\t\t\tdirectory += '/';\n\t\t}\n\n\t\t// Focus the character's sprite and colorize it's name with the defined\n\t\t// color on its declaration\n\t\tthis.engine.element ().find (`[data-character=\"${this.id}\"]`).addClass ('focus');\n\n\t\tif (typeof this.character.color === 'string' && this.character.color !== '') {\n\t\t\tthis.engine.element ().find ('[data-ui=\"who\"]').style ('color', this.character.color);\n\t\t} else {\n\t\t\tthis.engine.element ().find ('[data-ui=\"who\"]').style ('color', 'var(--character-name-color)');\n\t\t}\n\t\t// Check if an expression or face image was used and if it exists and\n\t\t// display it\n\t\tif (typeof this.image !== 'undefined' && !this.nvl) {\n\t\t\t`${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').characters}/${directory}${this.image}`;\n\t\t\tthis.engine.element ().find ('[data-ui=\"face\"]').attribute ('src', `${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').characters}/${directory}${this.image}`);\n\t\t\tthis.engine.element ().find ('[data-ui=\"face\"]').show ();\n\t\t\tthis.engine.element ().find ('[data-component=\"text-box\"]').data ('expression', this.expression);\n\t\t}\n\n\t\t// Check if the character object defines if the type animation should be used.\n\t\tif (typeof this.character.type_animation !== 'undefined') {\n\t\t\treturn this.displayDialog (this.dialog, this.clearDialog, this.id, this.character.type_animation);\n\t\t} else {\n\t\t\treturn this.displayDialog (this.dialog, this.clearDialog, this.id, true);\n\t\t}\n\t}\n\n\tapply ({ updateLog = true } = {}) {\n\t\ttry {\n\t\t\tconst dialogLog = this.engine.component ('dialog-log');\n\t\t\tif (typeof dialogLog !== 'undefined') {\n\t\t\t\tif (this._cycle === 'Application' && updateLog === true) {\n\t\t\t\t\tdialogLog.instances (instance => instance.write ({\n\t\t\t\t\t\tid: this.id,\n\t\t\t\t\t\tcharacter: this.character,\n\t\t\t\t\t\tdialog: this.clearDialog\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tthis.engine.debug.error (e);\n\t\t}\n\n\t\tif (typeof this.character !== 'undefined') {\n\t\t\tthis.engine.element ().find ('[data-component=\"text-box\"]').get (0).show ();\n\t\t\treturn this.characterDialog ();\n\t\t} else if (this.id === 'centered') {\n\t\t\treturn this.displayCenteredDialog (this.dialog, this.clearDialog, this.id, this.engine.setting ('CenteredTypeAnimation'));\n\t\t} else {\n\t\t\tthis.engine.element ().find ('[data-component=\"text-box\"]').get (0).show ();\n\t\t\treturn this.displayDialog (this.dialog, this.clearDialog, 'narrator', this.engine.setting ('NarratorTypeAnimation'));\n\t\t}\n\t}\n\n\tdidApply () {\n\t\tthis.engine.global ('_dialog_pending_revert', true);\n\t\treturn Promise.resolve ({ advance: false });\n\t}\n\n\twillRevert () {\n\t\tthis.engine.element ().find ('[data-character]').removeClass ('focus');\n\t\tthis.engine.element ().find ('[data-ui=\"face\"]').hide ();\n\t\tdocument.querySelector ('[data-ui=\"who\"]').innerHTML = '';\n\t\treturn Promise.resolve ();\n\t}\n\n\trevert () {\n\t\t// Check if the dialog to replay is a NVL one or not\n\t\tif (this.nvl === true) {\n\t\t\t// Check if the NVL screen is currently being shown\n\t\t\tconst textBox = this.engine.element ().find ('[data-component=\"text-box\"]').get (0);\n\n\t\t\tif (textBox.props.mode === 'nvl') {\n\t\t\t\tif (this.engine.global ('_should_restore_nvl') === true) {\n\t\t\t\t\tthis.engine.global ('_should_restore_nvl', false);\n\t\t\t\t\tif (this.engine.history ('nvl').length > 0) {\n\t\t\t\t\t\ttextBox.content ('dialog').html (this.engine.history ('nvl').pop ());\n\t\t\t\t\t\treturn Promise.resolve ();\n\t\t\t\t\t}\n\t\t\t\t\treturn Promise.reject ('No more dialogs on history from where to recover previous state.');\n\t\t\t\t}\n\t\t\t\tconst dialogs = textBox.content ('dialog').find ('[data-spoke]');\n\t\t\t\t// If it is being shown, then to go back, we need to remove the last dialog from it\n\t\t\t\tdialogs.last ().remove ();\n\t\t\t\treturn Promise.resolve ();\n\t\t\t} else {\n\t\t\t\t// If it is not shown right now, then we need to recover the dialogs\n\t\t\t\t// that were being shown the last time we hid it\n\t\t\t\tif (this.engine.history ('nvl').length > 0) {\n\t\t\t\t\tif (this.engine.global ('_should_restore_nvl') === true) {\n\t\t\t\t\t\tthis.engine.global ('_should_restore_nvl', false);\n\t\t\t\t\t}\n\t\t\t\t\ttextBox.setProps ({ mode: 'nvl' });\n\t\t\t\t\ttextBox.content ('dialog').html (this.engine.history ('nvl').pop ());\n\t\t\t\t\treturn Promise.resolve ();\n\t\t\t\t}\n\t\t\t\treturn Promise.reject ('No more dialogs on history from where to recover previous state.');\n\t\t\t}\n\t\t} else {\n\t\t\t// If the dialog was not NVL, we can simply show it as if we were\n\t\t\t// doing a simple application\n\t\t\treturn this.apply ().then (() => {\n\t\t\t\treturn this.didApply ();\n\t\t\t});\n\t\t}\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: false, step: true });\n\t}\n\n}\n\nDialog.id = 'Dialog';\n\nexport default Dialog;","import { Action } from './../lib/Action';\n\nexport class End extends Action {\n\n\tstatic bind () {\n\n\t\tthis.engine.registerListener ('end', {\n\t\t\tkeys: 'shift+q',\n\t\t\tcallback: () => {\n\t\t\t\tif (this.engine.global ('playing')) {\n\t\t\t\t\tthis.engine.alert ('quit-warning', {\n\t\t\t\t\t\tmessage: 'Confirm',\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Quit',\n\t\t\t\t\t\t\t\tlistener: 'quit'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Cancel',\n\t\t\t\t\t\t\t\tlistener: 'dismiss-alert'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.engine.registerListener ('quit', {\n\t\t\tcallback: () => {\n\t\t\t\tthis.engine.dismissAlert ('quit-warning');\n\n\t\t\t\tif (this.engine.global ('playing') === true) {\n\t\t\t\t\tthis.engine.run ('end');\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof window.electron === 'object') {\n\t\t\t\t\t\tif (typeof window.electron.send === 'function') {\n\t\t\t\t\t\t\twindow.electron.send ('quit-request');\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchString ([ action ]) {\n\t\treturn action === 'end';\n\t}\n\n\twillApply () {\n\t\tthis.engine.hideScreens ();\n\t\treturn Promise.resolve ();\n\t}\n\n\tapply () {\n\t\tthis.engine.global ('playing', false);\n\n\t\tthis.engine.resetGame ();\n\t\tthis.engine.showMainScreen ();\n\n\t\tthis.engine.element ().find ('[data-component=\"quick-menu\"]').removeClass ('splash-screen');\n\t\tthis.engine.element ().find ('[data-component=\"game-screen\"]').removeClass ('splash-screen');\n\n\t\treturn Promise.resolve ();\n\t}\n\n\twillRevert () {\n\t\treturn Promise.reject ('End is not reversible');\n\t}\n}\n\nEnd.id = 'End';\n\nexport default End;","import { Action } from './../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { FancyError } from '../lib/FancyError';\n\nexport class ReversibleFunction extends Action {\n\n\tstatic matchObject ({ Function: fn }) {\n\t\treturn typeof fn !== 'undefined';\n\t}\n\n\tconstructor ({ Function: fn }) {\n\t\tsuper ();\n\t\tthis.statement = fn;\n\t\tthis.shouldContinue = true;\n\t}\n\n\tapply () {\n\t\t// The function will be run asynchronously (No matter if its code isn't)\n\t\t// if the function returns false, the next statement will not be run\n\t\t// automatically and the game will wait for user interaction or some other\n\t\t// code inside the function to keep going. Any other returnValue will\n\t\t// allow the game to keep going right away.\n\t\treturn Util.callAsync (this.statement.Apply, this.engine).then ((returnValue) => {\n\t\t\tthis.engine.global ('block', false);\n\t\t\tif (returnValue === false) {\n\t\t\t\tthis.shouldContinue = false;\n\t\t\t}\n\t\t}).catch ((e) => {\n\t\t\tlet error = {\n\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t'Help': {\n\t\t\t\t\t'_': 'Check the code for your function, there may be additional information in the console.',\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (typeof e === 'object') {\n\t\t\t\terror = Object.assign (error, {\n\t\t\t\t\t'Error Message': e.message,\n\t\t\t\t\t'File Name': e.fileName,\n\t\t\t\t\t'Line Number': e.lineNumber\n\t\t\t\t});\n\t\t\t} else if (typeof e === 'string') {\n\t\t\t\terror['Error Message'] = e;\n\t\t\t}\n\n\t\t\tFancyError.show (\n\t\t\t\t'An error occurred while trying to revert a Reversible Function.',\n\t\t\t\t'Monogatari attempted to run the `Apply` method of a Reversible Function but an error occurred.',\n\t\t\t\terror\n\t\t\t);\n\t\t});\n\t}\n\n\tdidApply () {\n\t\treturn Promise.resolve ({ advance: this.shouldContinue });\n\t}\n\n\twillApply () {\n\t\t// @Compatibility [<= v2.0.0-beta.15]\n\t\t// To make everything more standardized, we decided to change the\n\t\t// 'Reverse' key to 'Revert' which actually follows the language being\n\t\t// used in other actions and parts of Monogatari\n\t\tif (typeof this.statement.Reverse === 'function' && typeof this.statement.Revert !== 'function') {\n\t\t\tthis.statement.Revert = this.statement.Reverse;\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\trevert () {\n\t\t// The function will be run asynchronously (No matter if its code isn't)\n\t\t// if the function returns false, the previous statement will not be run\n\t\t// automatically and the game will wait for user interaction or some other\n\t\t// code inside the function to keep going. Any other returnValue will\n\t\t// allow the game to keep going right away.\n\t\treturn Util.callAsync (this.statement.Revert, this.engine).then ((returnValue) => {\n\t\t\tthis.engine.global ('block', false);\n\t\t\tif (returnValue === false) {\n\t\t\t\tthis.shouldContinue = false;\n\t\t\t}\n\t\t}).catch ((e) => {\n\t\t\tlet error = {\n\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t'Help': {\n\t\t\t\t\t'_': 'Check the code for your function, there may be additional information in the console.',\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (typeof e === 'object') {\n\t\t\t\terror = Object.assign (error, {\n\t\t\t\t\t'Error Message': e.message,\n\t\t\t\t\t'File Name': e.fileName,\n\t\t\t\t\t'Line Number': e.lineNumber\n\t\t\t\t});\n\t\t\t} else if (typeof e === 'string') {\n\t\t\t\terror['Error Message'] = e;\n\t\t\t}\n\n\t\t\tFancyError.show (\n\t\t\t\t'An error occurred while trying to revert a Reversible Function.',\n\t\t\t\t'Monogatari attempted to run the `Revert` method of a Reversible Function but an error occurred.',\n\t\t\t\terror\n\t\t\t);\n\t\t});\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: this.shouldContinue, step: true });\n\t}\n}\n\nReversibleFunction.id = 'Function';\n\nexport default ReversibleFunction;","import { Action } from './../lib/Action';\n\nexport class Gallery extends Action {\n\n\tstatic matchString ([ action ]) {\n\t\treturn action === 'gallery';\n\t}\n\n\tconstructor ([ action, mode, asset ]) {\n\t\tsuper ();\n\t\tthis.mode = mode;\n\t\tthis.asset = asset;\n\t}\n\n\tapply () {\n\t\tif (this.mode === 'unlock') {\n\n\t\t\tthis.engine.component ('gallery-screen').instances ((instance) => {\n\t\t\t\tconst unlocked = [...instance.state.unlocked, this.asset];\n\t\t\t\tinstance.setState ({\n\t\t\t\t\tunlocked\n\t\t\t\t});\n\t\t\t});\n\n\n\t\t} else if (this.mode === 'lock') {\n\t\t\tthis.engine.component ('gallery-screen').instances ((instance) => {\n\t\t\t\tconst unlocked = instance.state.unlocked.filter ((item) => item !== this.asset);\n\t\t\t\tinstance.setState ({\n\t\t\t\t\tunlocked\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply () {\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\trevert () {\n\t\tif (this.mode === 'lock') {\n\t\t\tthis.mode = 'unlock';\n\t\t\treturn this.apply ();\n\t\t} else if (this.mode === 'unlock') {\n\t\t\tthis.mode = 'lock';\n\t\t\treturn this.apply ();\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nGallery.id = 'Gallery';\n\nexport default Gallery;","import { Action } from './../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\n\nexport class HideCanvas extends Action {\n\n\n\tstatic matchString ([ hide, type ]) {\n\t\treturn hide === 'hide' && type === 'canvas';\n\t}\n\n\tconstructor ([ hide, canvas, name, separator, ...classes ]) {\n\t\tsuper ();\n\n\t\tthis.name = name;\n\t\tthis.object = this.engine.action ('Canvas').objects (name);\n\n\t\tthis.element = document.querySelector (`[data-component=\"canvas-container\"][canvas=\"${this.name}\"]`);\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\tapply () {\n\t\tconst { object } = this.element.props;\n\n\t\treturn Util.callAsync (object.stop, this.engine, this.element.layers, object.props, object.state, this.element).then (() => {\n\t\t\tif (this.classes.length > 0) {\n\t\t\t\tconst el = this.element.element ();\n\t\t\t\tel.addClass ('animated');\n\t\t\t\tfor (const newClass of this.classes) {\n\t\t\t\t\tif (newClass) {\n\t\t\t\t\t\tel.addClass (newClass);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tel.data ('visibility', 'invisible');\n\n\t\t\t\t// Remove item after a while to prevent it from showing randomly\n\t\t\t\t// when coming from a menu to the game because of its animation\n\t\t\t\tel.on ('animationend', (e) => {\n\t\t\t\t\tif (e.target.dataset.visibility === 'invisible') {\n\t\t\t\t\t\t// Remove only if the animation ends while the element is not visible\n\t\t\t\t\t\te.target.remove ();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.engine.element ().find (`[data-component=\"canvas-container\"][canvas=\"${this.name}\"]`).remove ();\n\t\t\t}\n\n\t\t\treturn Promise.resolve ();\n\t\t});\n\t}\n\n\tdidApply () {\n\t\tfor (let i = this.engine.state ('canvas').length - 1; i >= 0; i--) {\n\t\t\tconst last = this.engine.state ('canvas')[i];\n\t\t\tconst [show, canvas, name, mode] = last.split (' ');\n\t\t\tif (name === this.name) {\n\t\t\t\tthis.engine.state ('canvas').splice (i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\trevert () {\n\t\tfor (let i = this.engine.history ('canvas').length - 1; i >= 0; i--) {\n\t\t\tconst last = this.engine.history ('canvas')[i];\n\t\t\tconst [show, canvas, name, mode] = last.split (' ');\n\t\t\tif (name === this.name) {\n\t\t\t\tthis.engine.history ('canvas').splice (i, 1);\n\t\t\t\treturn this.engine.run (last, false);\n\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nHideCanvas.id = 'Hide::Canvas';\n\nexport default HideCanvas;","import { Action } from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\n\nexport class HideCharacter extends Action {\n\n\tstatic matchString ([ hide, type ]) {\n\t\treturn hide === 'hide' && type === 'character';\n\t}\n\n\tconstructor ([ hide, type, asset, ...classes ]) {\n\t\tsuper ();\n\t\tthis.asset = asset;\n\n\t\tif (typeof this.engine.character (this.asset) !== 'undefined') {\n\t\t\tthis.element = this.engine.element ().find (`[data-character=\"${this.asset}\"]`).last ();\n\t\t} else {\n\t\t\tFancyError.show (\n\t\t\t\t`The character \"${this.asset}\" does not exist`,\n\t\t\t\t`Monogatari attempted to get information about the character \"${this.asset}\" but it wasn't found on the characters object.`,\n\t\t\t\t{\n\t\t\t\t\t'Missing Character': this.asset,\n\t\t\t\t\t'You may have meant one of these': Object.keys (this.engine.characters ()),\n\t\t\t\t\t'Statement': `\"${this._statement}\"`,\n\t\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t\t'Help': {\n\t\t\t\t\t\t'_': 'Check your characters object and your script to make sure the character exists and that it does not have a typo in it.'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t\tthis.classes = this.classes.filter ((c) => (c !== 'at' && c !== 'with'));\n\t}\n\n\twillApply () {\n\n\t\tif (!this.element.exists ()) {\n\t\t\tFancyError.show (\n\t\t\t\t`The character \"${this.asset}\" can't hide because it's not being shown`,\n\t\t\t\t`Monogatari attempted to hide the character \"${this.asset}\" but it was not being shown.`,\n\t\t\t\t{\n\t\t\t\t\t'Missing Character': this.asset,\n\t\t\t\t\t'You may have meant one of these': Object.keys (this.engine.characters ()),\n\t\t\t\t\t'Statement': `\"${this._statement}\"`,\n\t\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t\t'Help': {\n\t\t\t\t\t\t'_': 'Check that before this hide action you have a show action that shows the character you want to hide.'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\treturn Promise.reject ('Attempted to hide a character that was not being shown.');\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\n\tapply () {\n\t\tconst currentPosition = this.element.data ('position');\n\t\tconst position = this._statement.match (/at\\s(\\S*)/);\n\n\t\tconst oldClasses = [...this.element.get (0).classList];\n\n\t\tfor (const oldClass of oldClasses) {\n\t\t\tif (oldClass !== currentPosition || position instanceof Array) {\n\t\t\t\tthis.element.removeClass (oldClass);\n\t\t\t}\n\t\t}\n\n\t\tif (position instanceof Array) {\n\t\t\t// If it was, we'll set that position to the character\n\t\t\tconst [at, positionClass] = position;\n\t\t\tthis.element.data ('position', positionClass);\n\t\t}\n\n\t\tthis.element.addClass ('animated');\n\n\t\t// Check if there is any end-animation, here's what this matches:\n\t\t// 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ \"end-fadeIn\", \"fadeIn\" ]\n\t\tconst endAnimation = oldClasses.find(c => c.match (/end-([A-Za-z]+)/) !== null);\n\n\t\tif (typeof endAnimation !== 'undefined') {\n\t\t\tconst [end, animation] = endAnimation.split('-');\n\t\t\tthis.element.addClass (animation);\n\t\t}\n\n\t\tconst durationPosition = this.classes.indexOf ('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\tthis.element.style ('animation-duration', this.classes[durationPosition + 1]);\n\t\t} else {\n\t\t\tthis.element.style ('animation-duration', '');\n\t\t}\n\n\t\tif (this.classes.length > 0 || typeof endAnimation !== 'undefined') {\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\tthis.element.addClass (className);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.element.data ('visibility', 'invisible');\n\n\t\t\tthis.element.on ('animationend', (e) => {\n\t\t\t\tif (e.target.dataset.visibility === 'invisible') {\n\t\t\t\t\t// Remove only if the animation ends while the element is not visible\n\t\t\t\t\te.target.remove ();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.element.remove ();\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply () {\n\t\tconst show = this.engine.state ('characters').filter ((item) => {\n\t\t\tconst [ show, character, asset, ] = item.split (' ');\n\t\t\treturn asset !== this.asset;\n\t\t});\n\n\t\tthis.engine.state ({ characters: show });\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\twillRevert () {\n\t\tif (this.engine.history ('character').length <= 0) {\n\t\t\treturn Promise.reject ();\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\trevert () {\n\t\tfor (let i = this.engine.history ('character').length - 1; i >= 0; i--) {\n\t\t\tconst last = this.engine.history ('character')[i];\n\t\t\tconst [show, character, asset, name] = last.split (' ');\n\n\t\t\tif (asset === this.asset) {\n\t\t\t\tconst action = this.engine.prepareAction (last, { cycle: 'Application' });\n\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: true });\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn Promise.reject ();\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nHideCharacter.id = 'Hide::Character';\n\nexport default HideCharacter;\n","import { Action } from './../lib/Action';\n\nexport class HideImage extends Action {\n\n\tstatic matchString ([ hide, type ]) {\n\t\treturn hide === 'hide' && type === 'image';\n\t}\n\n\tconstructor ([ hide, type, asset, ...classes ]) {\n\t\tsuper ();\n\t\tthis.asset = asset;\n\n\t\tthis.element = this.engine.element ().find (`[data-image=\"${this.asset}\"]`);\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t\tthis.classes = this.classes.filter ((c) => (c !== 'at' && c !== 'with'));\n\t}\n\n\tapply () {\n\t\tconst currentPosition = this.element.data ('position');\n\t\tconst position = this._statement.match (/at\\s(\\S*)/);\n\n\t\tconst oldClasses = [...this.element.get (0).classList];\n\n\t\tfor (const oldClass of oldClasses) {\n\t\t\tif (oldClass !== currentPosition || position instanceof Array) {\n\t\t\t\tthis.element.removeClass (oldClass);\n\t\t\t}\n\t\t}\n\n\t\tif (position instanceof Array) {\n\t\t\t// If it was, we'll set that position to the character\n\t\t\tconst [at, positionClass] = position;\n\t\t\tthis.element.data ('position', positionClass);\n\t\t}\n\n\t\tthis.element.addClass ('animated');\n\n\t\tconst durationPosition = this.classes.indexOf ('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\tthis.element.style ('animation-duration', this.classes[durationPosition + 1]);\n\t\t} else {\n\t\t\tthis.element.style ('animation-duration', '');\n\t\t}\n\n\t\tif (this.classes.length > 0) {\n\t\t\tfor (const newClass of this.classes) {\n\t\t\t\tthis.element.addClass (newClass);\n\t\t\t}\n\t\t\tthis.element.data ('visibility', 'invisible');\n\t\t\tthis.element.on ('animationend', (e) => {\n\t\t\t\tif (e.target.dataset.visibility === 'invisible') {\n\t\t\t\t\t// Remove only if the animation ends while the element is not visible\n\t\t\t\t\te.target.remove ();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.element.remove ();\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply () {\n\t\tconst show = this.engine.state ('images').filter ((item) => {\n\t\t\tconst [ show, type, asset, ] = item.split (' ');\n\t\t\treturn asset !== this.asset;\n\t\t});\n\n\t\tthis.engine.state ({ images: show });\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\twillRevert () {\n\t\tif (this.engine.history ('image').length === 0) {\n\t\t\treturn Promise.reject ('Image history was empty.');\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\trevert () {\n\t\t// return this.engine.run (this.engine.history ('image').pop (), false);\n\t\tfor (let i = this.engine.history ('image').length - 1; i >= 0; i--) {\n\t\t\tconst last = this.engine.history ('image')[i];\n\t\t\tconst [show, image, asset] = last.split (' ');\n\t\t\tif (asset === this.asset) {\n\t\t\t\tconst action = this.engine.prepareAction (last, { cycle: 'Application' });\n\t\t\t\treturn action.willApply ().then (() => {\n\t\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: true });\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tPromise.reject ('Could not find a previous state to revert to');\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nHideImage.id = 'Hide::Image';\n\nexport default HideImage;","import { Action } from './../lib/Action';\n\nexport class HideParticles extends Action {\n\n\tstatic matchString ([ hide, type ]) {\n\t\treturn hide === 'hide' && type === 'particles';\n\t}\n\n\tconstructor ([ hide, type ]) {\n\t\tsuper ();\n\t}\n\n\tapply () {\n\t\tthis.engine.action ('Particles').stop ();\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply () {\n\t\tthis.engine.state ({\n\t\t\tparticles: ''\n\t\t});\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\trevert () {\n\t\tif (this.engine.history ('particle').length > 0) {\n\t\t\tconst last = this.engine.history ('particle')[this.engine.history ('particle').length - 1];\n\n\t\t\tconst action = this.engine.prepareAction (last, { cycle: 'Application' });\n\t\t\treturn action.willApply ().then (() => {\n\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: true });\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nHideParticles.id = 'Hide::Particles';\n\nexport default HideParticles;","import { Action } from './../lib/Action';\n\nexport class HideVideo extends Action {\n\n\n\tstatic matchString ([ hide, type ]) {\n\t\treturn hide === 'hide' && type === 'video';\n\t}\n\n\tconstructor ([ hide, type, name, separator, ...classes ]) {\n\t\tsuper ();\n\t\tthis.name = name;\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\tapply () {\n\t\tconst element = this.engine.element ().find (`[data-video=\"${this.name}\"]`);\n\t\tif (this.classes.length > 0) {\n\t\t\telement.addClass ('animated');\n\t\t\tfor (const newClass of this.classes) {\n\t\t\t\tif (newClass) {\n\t\t\t\t\telement.addClass (newClass);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.data ('visibility', 'invisible');\n\t\t\telement.on ('animationend', (e) => {\n\t\t\t\tif (e.target.dataset.visibility === 'invisible') {\n\t\t\t\t\t// Remove only if the animation ends while the element is not visible\n\t\t\t\t\te.target.remove ();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.engine.element ().find (`[data-video=\"${this.name}\"]`).remove ();\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply () {\n\t\tfor (let i = this.engine.state ('videos').length - 1; i >= 0; i--) {\n\t\t\tconst last = this.engine.state ('videos')[i];\n\t\t\tconst [show, video, name, mode] = last.split (' ');\n\t\t\tif (name === this.name) {\n\t\t\t\tthis.engine.state ('videos').splice (i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\trevert () {\n\t\tfor (let i = this.engine.history ('video').length - 1; i >= 0; i--) {\n\t\t\tconst last = this.engine.history ('video')[i];\n\t\t\tconst [show, video, name, mode] = last.split (' ');\n\t\t\tif (name === this.name) {\n\t\t\t\tthis.engine.history ('video').splice (i, 1);\n\t\t\t\treturn this.engine.run (last, false);\n\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nHideVideo.id = 'Hide::Video';\n\nexport default HideVideo;","import { Action } from './../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\n\nexport class InputModal extends Action {\n\n\tstatic setup () {\n\t\tthis.engine.global ('_InputTimer', null);\n\n\t\tthis.engine.global ('_input_just_rolled_back', false);\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic reset () {\n\t\tthis.engine.global ('_InputTimer', null);\n\n\t\tthis.engine.global ('_input_just_rolled_back', false);\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic afterRevert () {\n\t\t// When a choice gets reverted, it pushes a `true` value to this global variable.\n\t\t// As soon as it gets reverted, this function is run and it pops the `true` out of\n\t\t// the array, meaning it was just reverted and the choice should be showing on screeen again.\n\t\tif (this.engine.global ('_input_just_rolled_back')) {\n\t\t\tthis.engine.global ('_input_just_rolled_back', false);\n\t\t\treturn Promise.resolve ();\n\t\t}\n\n\t\t// If the player reverts once more while the choice is being shown, then we'll reach this part\n\t\t// and we can clean up any variables we need to.\n\t\tconst timer = this.engine.global ('_InputTimer');\n\n\t\tif (timer !== null) {\n\t\t\tclearTimeout (timer.props.timer);\n\t\t\tif (timer.parentNode !== null) {\n\t\t\t\ttimer.element ().remove ();\n\t\t\t}\n\t\t\tthis.engine.global ('_InputTimer', null);\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\n\tstatic matchObject ({ Input }) {\n\t\treturn typeof Input !== 'undefined';\n\t}\n\n\tconstructor ({ Input }) {\n\t\tsuper ();\n\t\tthis.statement = Input;\n\n\t\tif (typeof this.statement.Validation !== 'function') {\n\t\t\tthis.statement.Validation = () => true;\n\t\t}\n\n\t\tif (typeof this.statement.Save !== 'function') {\n\t\t\tthis.statement.Save = () => true;\n\t\t}\n\n\t\tif (typeof this.statement.Warning !== 'string') {\n\t\t\tthis.statement.Warning = '';\n\t\t}\n\n\t\tif (typeof this.statement.actionString !== 'string') {\n\t\t\tthis.statement.actionString = 'OK';\n\t\t}\n\n\t\tif (typeof this.statement.Class !== 'string') {\n\t\t\tthis.statement.Class = '';\n\t\t}\n\n\t\tif (['string', 'number'].indexOf (typeof this.statement.Default) === -1 || this.statement.Default === '') {\n\t\t\tthis.statement.Default = null;\n\t\t}\n\n\t\tif (typeof this.statement.Type !== 'string') {\n\t\t\tthis.statement.Type = 'text';\n\t\t}\n\n\t\tif (typeof this.statement.Options !== 'object' || this.statement.Options === null) {\n\t\t\tthis.statement.Options = [];\n\t\t}\n\n\t\tif (typeof this.statement.Timer !== 'object') {\n\t\t\tthis.statement.Timer = null;\n\t\t}\n\n\t\tif (typeof this.statement.Attributes !== 'object') {\n\t\t\tthis.statement.Attributes = {};\n\t\t}\n\t}\n\n\tapply () {\n\t\tthis.engine.global ('block', true);\n\n\t\tconst input = document.createElement ('text-input');\n\n\t\tconst { Text, Warning, Save, Validation, actionString, Class, Type, Options, Default, Timer, Attributes } = this.statement;\n\n\t\tinput.setProps ({\n\t\t\ttext: this.engine.replaceVariables (Text),\n\t\t\ttype: Type,\n\t\t\toptions: Options,\n\t\t\tdefault: Default,\n\t\t\twarning: Warning,\n\t\t\tonSubmit: Save,\n\t\t\tvalidate: Validation,\n\t\t\tattributes: Attributes,\n\t\t\tactionString,\n\t\t\tcallback: () => {\n\t\t\t\tconst timer = this.engine.global ('_InputTimer');\n\n\t\t\t\tif (timer !== null) {\n\t\t\t\t\tclearTimeout (timer.props.timer);\n\t\t\t\t\tif (timer.parentNode !== null) {\n\t\t\t\t\t\ttimer.element ().remove ();\n\t\t\t\t\t}\n\t\t\t\t\tthis.engine.global ('_InputTimer', null);\n\t\t\t\t}\n\n\t\t\t\tthis.engine.global ('block', false);\n\t\t\t\tthis.engine.proceed ({ userInitiated: true, skip: false, autoPlay: false });\n\t\t\t},\n\t\t\tclasses: Class.trim ()\n\t\t});\n\n\t\tif (Timer !== null) {\n\t\t\tconst timer_display = document.createElement ('timer-display');\n\t\t\ttimer_display.setProps (Timer);\n\t\t\tthis.engine.global ('_InputTimer', timer_display);\n\t\t\tthis.engine.element ().find ('[data-screen=\"game\"]').prepend (timer_display);\n\t\t}\n\n\t\tthis.engine.element ().find ('[data-screen=\"game\"]').append (input);\n\n\t\treturn Promise.resolve ();\n\t}\n\n\twillRevert () {\n\t\tif (typeof this.statement.Revert === 'function') {\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t\treturn Promise.reject ('Input is missing a `Revert` function.');\n\t}\n\n\trevert () {\n\t\treturn Util.callAsync (this.statement.Revert, this.engine).then (() => {\n\t\t\treturn this.apply ();\n\t\t});\n\t}\n\n\tdidRevert () {\n\t\tthis.engine.global ('_input_just_rolled_back', true);\n\t\treturn Promise.resolve ({ advance: false, step: true });\n\t}\n}\n\nInputModal.id = 'Input';\n\nexport default InputModal;","import { Action } from './../lib/Action';\nimport { FancyError } from '../lib/FancyError';\n\nexport class Jump extends Action {\n\n\tstatic setup () {\n\t\tthis.engine.history ('label');\n\t\tthis.engine.history ('jump');\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic bind (selector) {\n\t\tthis.engine.registerListener ('jump', {\n\t\t\tcallback: (element) => {\n\t\t\t\tthis.engine.run (`jump ${element.data('jump')}`, false);\n\t\t\t}\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchString ([ action ]) {\n\t\treturn action === 'jump';\n\t}\n\n\tconstructor ([ action, label ]) {\n\t\tsuper ();\n\t\tthis.label = label;\n\t}\n\n\twillApply () {\n\t\tif (typeof this.engine.script (this.label) !== 'undefined') {\n\t\t\tthis.engine.stopAmbient ();\n\t\t\tthis.engine.showScreen ('game');\n\t\t\treturn Promise.resolve ();\n\t\t}\n\n\t\tFancyError.show (\n\t\t\t`The label \"${this.label}\" does not exist`,\n\t\t\t`Monogatari attempted to jump to the label named \"${this.label}\" but it wasn't found on the script.`,\n\t\t\t{\n\t\t\t\t'Missing Label': this.label,\n\t\t\t\t'You may have meant one of these': Object.keys (this.engine.script ()),\n\t\t\t\t'Statement': `\"${this._statement}\"`,\n\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t'Help': {\n\t\t\t\t\t'_': 'Check if the label in your jump statement is correct and that you have also defined it correctly.'\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\n\t\treturn Promise.reject ('Label does not exist.');\n\t}\n\n\tapply () {\n\t\tthis.engine.history ('jump').push ({\n\t\t\tsource: {\n\t\t\t\tlabel: this.engine.state ('label'),\n\t\t\t\tstep: this.engine.state ('step')\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\tlabel: this.label,\n\t\t\t\tstep: 0\n\t\t\t}\n\t\t});\n\t\tthis.engine.state ({\n\t\t\tstep: 0,\n\t\t\tlabel: this.label\n\t\t});\n\n\t\tconst textBox = this.engine.element ().find ('[data-component=\"text-box\"]').get (0);\n\n\t\tif (textBox.props.mode !== 'nvl') {\n\t\t\tthis.engine.action ('Dialog').reset ();\n\t\t}\n\n\t\tthis.engine.run (this.engine.label ()[this.engine.state ('step')]);\n\t\tthis.engine.history ('label').push (this.label);\n\n\t\treturn Promise.resolve ();\n\t}\n\n\t// Jump is right now not reversible due to complications with the logic for it\n\twillRevert () {\n\t\tif (this.engine.history ('jump').length > 0) {\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t\treturn Promise.reject ('No elements in history available.');\n\t}\n\n\trevert () {\n\t\tconst last = this.engine.history ('jump')[this.engine.history ('jump').length - 1];\n\t\tif (typeof last !== 'undefined') {\n\t\t\tthis.engine.state ({\n\t\t\t\tstep: last.source.step,\n\t\t\t\tlabel: last.source.label\n\t\t\t});\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t\treturn Promise.reject ('No elements in history available.');\n\t}\n\n\tdidRevert () {\n\t\tthis.engine.history ('jump').pop ();\n\t\tthis.engine.history ('label').pop ();\n\t\treturn Promise.resolve ({ advance: true, step: false });\n\t}\n}\n\nJump.id = 'Jump';\n\nexport default Jump;","import { Action } from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\n\n\nexport class Message extends Action {\n\n\tstatic bind () {\n\t\t// The close action removes the active class from the element it\n\t\t// points to.\n\t\tthis.engine.on ('click', '[data-component=\"message-modal\"] [data-action=\"close\"]', () => {\n\t\t\tthis.engine.global ('block', false);\n\t\t\tthis.engine.element ().find ('[data-component=\"message-modal\"]').remove ();\n\t\t\tthis.engine.proceed ({ userInitiated: true, skip: false, autoPlay: false });\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchString ([ show, type ]) {\n\t\treturn show === 'show' && type === 'message';\n\t}\n\n\tstatic messages (object = null) {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn Message._configuration.messages[object];\n\t\t\t} else {\n\t\t\t\tMessage._configuration.messages = Object.assign ({}, Message._configuration.messages, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn Message._configuration.messages;\n\t\t}\n\t}\n\n\tconstructor ([ show, type, message, ...classes ]) {\n\t\tsuper ();\n\t\tthis.id = message;\n\t\tthis.message = this.constructor.messages (message);\n\t\tthis.classes = classes;\n\t}\n\n\twillApply () {\n\t\tif (typeof this.message !== 'undefined') {\n\t\t\t// Check if the old format is being use and translate it to the new one\n\t\t\tif (this.message.Title && this.message.Subtitle && this.message.Message) {\n\t\t\t\tthis.message.title = this.message.Title;\n\t\t\t\tthis.message.subtitle = this.message.Subtitle;\n\t\t\t\tthis.message.body = this.message.Message;\n\t\t\t}\n\t\t\treturn Promise.resolve ();\n\t\t} else {\n\t\t\tFancyError.show (\n\t\t\t\t`The message \"${this.id}\" was not found`,\n\t\t\t\t`Monogatari attempted to retrieve a message named \"${this.id}\" but it didn't exist in the messages object.`,\n\t\t\t\t{\n\t\t\t\t\t'Message': this.id,\n\t\t\t\t\t'You may have meant': Object.keys (Message.messages ()),\n\t\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t\t'Help': {\n\t\t\t\t\t\t'_': 'Check the message name is correct and that you have defined it previously. A Message is defined as follows:',\n\t\t\t\t\t\t'_1':`\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.engine.action ('message').mesages ({\n\t\t\t\t\t\t\t\t\t\t'Welcome': {\n\t\t\t\t\t\t\t\t\t\t\ttitle: 'Welcome!',\n\t\t\t\t\t\t\t\t\t\t\tsubtitle: 'This is the Monogatari VN Engine',\n\t\t\t\t\t\t\t\t\t\t\tbody: 'This is where the magic gets done!'\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t`,\n\t\t\t\t\t\t'_2': 'Notice the message defined uses a name or an id, in this case it was set to \"Welcome\" and to show it, you must use that exact name:',\n\t\t\t\t\t\t'_3':`\n\t\t\t\t\t\t\t
\"show message Welcome\"
\n\t\t\t\t\t\t`\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\treturn Promise.reject ();\n\t}\n\n\tapply () {\n\n\t\tthis.engine.global ('block', true);\n\n\t\tconst element = document.createElement ('message-modal');\n\n\t\tif (typeof this.message.title === 'string') {\n\t\t\telement.setProps ({\n\t\t\t\ttitle: this.engine.replaceVariables (this.message.title)\n\t\t\t});\n\t\t}\n\n\t\tif (typeof this.message.subtitle === 'string') {\n\t\t\telement.setProps ({\n\t\t\t\tsubtitle: this.engine.replaceVariables (this.message.subtitle)\n\t\t\t});\n\t\t}\n\n\t\tif (typeof this.message.body === 'string') {\n\t\t\telement.setProps ({\n\t\t\t\tbody: this.engine.replaceVariables (this.message.body)\n\t\t\t});\n\t\t}\n\n\t\tif (typeof this.message.actionString === 'string') {\n\t\t\telement.setProps ({\n\t\t\t\tactionString: this.engine.replaceVariables (this.message.actionString)\n\t\t\t});\n\t\t}\n\n\t\tfor (const newClass of this.classes) {\n\t\t\tif (newClass) {\n\t\t\t\telement.classList.add (newClass);\n\t\t\t}\n\t\t}\n\n\t\tthis.engine.element ().find ('[data-screen=\"game\"]').append (element);\n\n\n\t\treturn Promise.resolve ();\n\t}\n\n\trevert () {\n\t\tthis.engine.component ('message-modal').instances ().remove ();\n\t\treturn this.apply ();\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: false, step: true });\n\t}\n}\n\nMessage.id = 'Message';\nMessage._configuration = {\n\tmessages: {}\n};\n\nexport default Message;","import { Action } from './../lib/Action';\n\nexport class Next extends Action {\n\n\tstatic matchString ([ action ]) {\n\t\treturn action === 'next';\n\t}\n\n\tdidApply () {\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nNext.id = 'Next';\n\nexport default Next;","import { Action } from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\n\nexport class Notify extends Action {\n\n\tstatic matchString ([ show, type ]) {\n\t\treturn show === 'show' && type === 'notification';\n\t}\n\n\tstatic notifications (object = null) {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn Notify._configuration.notifications[object];\n\t\t\t} else {\n\t\t\t\tNotify._configuration.notifications = Object.assign ({}, Notify._configuration.notifications, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn Notify._configuration.notifications;\n\t\t}\n\t}\n\n\tconstructor ([ show, type, name, time ]) {\n\t\tsuper ();\n\n\t\tthis.hasPermission = false;\n\n\t\t// First check if HTML5 notifications are available\n\t\tif ('Notification' in window) {\n\n\t\t\t// Finally check if the given notification exists in the object\n\t\t\tif (typeof Notify.notifications (name) !== 'undefined') {\n\t\t\t\tthis.notification = Object.assign ({}, Notify.notifications (name));\n\n\t\t\t\tif (typeof time !== 'undefined') {\n\t\t\t\t\tif (!isNaN (time)) {\n\t\t\t\t\t\tthis.time = parseInt (time);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tFancyError.show (\n\t\t\t\t\t\t\t'The specified time was not an integer',\n\t\t\t\t\t\t\t'Monogatari attempted to transform the given time into an integer value but failed.',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'Specified time': time,\n\t\t\t\t\t\t\t\t'Statement': `\"${this._statement}\"`,\n\t\t\t\t\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t\t\t'_': 'Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.',\n\t\t\t\t\t\t\t\t\t'_1': 'For example, the following statement would make a notification go away after 5 seconds:',\n\t\t\t\t\t\t\t\t\t'_3':`\n\t\t\t\t\t\t\t\t\t\t
\"show notification Welcome 5000\"
\n\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tFancyError.show (\n\t\t\t\t\t`The notification \"${name}\" was not found`,\n\t\t\t\t\t`Monogatari attempted to retrieve a notification named \"${name}\" but it didn't exist in the notifications object.`,\n\t\t\t\t\t{\n\t\t\t\t\t\t'Notification': name,\n\t\t\t\t\t\t'You may have meant': Object.keys (Notify.notifications ()),\n\t\t\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t'_': 'Check the notification\\'s name is correct and that you have defined it previously. A Notification is defined as follows:',\n\t\t\t\t\t\t\t'_1':`\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t\tthis.engine.action ('Notification').notifications ({\n\t\t\t\t\t\t\t\t\t\t\t'Welcome': {\n\t\t\t\t\t\t\t\t\t\t\t\ttitle: 'Welcome!',\n\t\t\t\t\t\t\t\t\t\t\t\tbody: 'This is the Monogatari VN Engine',\n\t\t\t\t\t\t\t\t\t\t\t\ticon: ''\n\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t'_2': 'Notice the notification defined uses a name or an id, in this case it was set to \"Welcome\" and to show it, you must use that exact name:',\n\t\t\t\t\t\t\t'_3':`\n\t\t\t\t\t\t\t\t
\"show notification Welcome\"
\n\t\t\t\t\t\t\t`\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn ('Notifications are not supported in this platform.');\n\t\t}\n\t}\n\n\twillApply () {\n\t\tif (typeof this.notification !== 'undefined') {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\t// Let's check whether notification permissions have already been granted\n\t\t\t\tif (Notification.permission === 'granted') {\n\t\t\t\t\tthis.hasPermission = true;\n\t\t\t\t\tresolve ();\n\t\t\t\t} else if (Notification.permission !== 'denied') {\n\t\t\t\t\tNotification.requestPermission((permission) => {\n\t\t\t\t\t\t// If the user accepts, let's create a notification\n\t\t\t\t\t\tif (permission === 'granted') {\n\t\t\t\t\t\t\tthis.hasPermission = true;\n\t\t\t\t\t\t\tresolve ();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconsole.warn ('User denied notifications permission, none will be shown.');\n\t\t\t\t\t\t\tresolve ();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tconsole.warn ('The permission to display notifications was denied by the user.');\n\t\t\t\t\tresolve ();\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tapply () {\n\t\tfor (const key of Object.keys (this.notification)) {\n\t\t\tif (typeof this.notification[key] === 'string') {\n\t\t\t\tthis.notification[key] = this.engine.replaceVariables (this.notification[key]);\n\t\t\t}\n\t\t}\n\n\t\tif (this.hasPermission) {\n\t\t\tconst notification = new Notification (this.notification.title, this.notification);\n\n\t\t\tif (typeof this.time !== 'undefined') {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tnotification.close ();\n\t\t\t\t}, this.time);\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply () {\n\t\t// Advance the game instead of waiting for another click\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nNotify.id = 'Notification';\nNotify._configuration = {\n\tnotifications: {}\n};\n\nexport default Notify;","import { Action } from '../lib/Action';\nimport { tsParticles } from 'tsparticles';\n\nexport class Particles extends Action {\n\n\tstatic stop () {\n\t\ttry {\n\t\t\tconst particles = tsParticles.domItem(0);\n\t\t\tif (typeof particles !== 'undefined') {\n\t\t\t\tparticles.stop ();\n\t\t\t\tthis.engine.element ().find ('#tsparticles').html ('');\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error ('An error ocurred while trying to stop particle system.', e);\n\t\t}\n\t}\n\n\n\tstatic setup () {\n\t\tthis.engine.history ('particle');\n\t\tthis.engine.state ({\n\t\t\tparticles: ''\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic reset () {\n\t\tthis.engine.state ({\n\t\t\tparticles: ''\n\t\t});\n\t\tthis.stop ();\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic onLoad () {\n\t\tconst { particles } = this.engine.state ();\n\t\tif (particles !== '') {\n\t\t\tconst action = this.engine.prepareAction (particles, { cycle: 'Application' });\n\t\t\tconst promise = action.willApply ().then (() => {\n\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: false });\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn promise;\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchString ([ show, type ]) {\n\t\treturn show === 'show' && type === 'particles';\n\t}\n\n\tstatic particles (object = null) {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn Particles._configuration.particles[object];\n\t\t\t} else {\n\t\t\t\tParticles._configuration.particles = Object.assign ({}, Particles._configuration.particles, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn Particles._configuration.particles;\n\t\t}\n\t}\n\n\tconstructor ([ show, type, name ]) {\n\t\tsuper ();\n\t\tif (typeof Particles.particles (name) !== 'undefined') {\n\t\t\tthis.particles = Particles.particles (name);\n\t\t\tthis.name = name;\n\t\t} else {\n\t\t\tconsole.error (`The Particles ${name} could not be shown because it doesn't exist in the particles object.`);\n\t\t}\n\t}\n\n\twillApply () {\n\t\tif (typeof this.particles !== 'undefined') {\n\t\t\treturn Promise.resolve ();\n\t\t} else {\n\t\t\treturn Promise.reject ('Particle system object does not exist.');\n\t\t}\n\t}\n\n\tapply () {\n\t\treturn tsParticles.load ('tsparticles', this.particles);\n\t}\n\n\tdidApply ({ updateHistory = true, updateState = true } = {}) {\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history ('particle').push (this._statement);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state ({\n\t\t\t\tparticles: this._statement\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\trevert () {\n\t\tParticles.stop ();\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidRevert () {\n\t\tthis.engine.history ('particle').pop ();\n\t\tthis.engine.state ({\n\t\t\tparticles: ''\n\t\t});\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nParticles.id = 'Particles';\nParticles._configuration = {\n\tparticles: {}\n};\n\nexport default Particles;","import { Action } from './../lib/Action';\n\nexport class Pause extends Action {\n\n\tstatic matchString ([ action ]) {\n\t\treturn action === 'pause';\n\t}\n\n\tconstructor ([ pause, type, media ]) {\n\t\tsuper ();\n\n\t\tthis.type = type;\n\t\tthis.media = media;\n\n\t\tif (typeof media === 'undefined') {\n\t\t\tthis.player = this.engine.mediaPlayers (type);\n\t\t} else {\n\t\t\tthis.player = this.engine.mediaPlayer (type, media);\n\t\t}\n\t}\n\n\twillApply () {\n\t\tif (this.player) {\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t\treturn Promise.reject ('Media player was not defined.');\n\t}\n\n\tapply () {\n\t\tif (this.player instanceof Array) {\n\t\t\tfor (const player of this.player) {\n\t\t\t\tplayer.pause ();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.player.pause ();\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply () {\n\t\tconst state = {};\n\t\tif (this.player instanceof Array) {\n\t\t\tstate[this.type] = this.engine.state (this.type).map ((s) => {\n\t\t\t\ts.paused = true;\n\t\t\t\treturn s;\n\t\t\t});\n\t\t} else {\n\t\t\tstate[this.type] = [...this.engine.state (this.type).map ((item) => {\n\t\t\t\tif (typeof item.statement === 'string') {\n\t\t\t\t\tconst [play, type, media] = item.statement.split (' ');\n\n\t\t\t\t\tif (media === this.media) {\n\t\t\t\t\t\titem.paused = true;\n\t\t\t\t\t}\n\t\t\t\t\treturn item;\n\t\t\t\t}\n\t\t\t\treturn item;\n\t\t\t})];\n\t\t}\n\t\tthis.engine.state (state);\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\twillRevert () {\n\t\tif (this.player) {\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t\treturn Promise.reject ('Media player was not defined.');\n\t}\n\n\trevert () {\n\t\tif (this.player instanceof Array) {\n\t\t\tconst promises = [];\n\t\t\tfor (const player of this.player) {\n\t\t\t\tpromises.push (player.play ());\n\t\t\t}\n\t\t\treturn Promise.all (promises);\n\t\t} else {\n\t\t\treturn this.player.play ();\n\t\t}\n\t}\n\n\tdidRevert () {\n\t\tconst state = {};\n\t\tif (this.player instanceof Array) {\n\t\t\tstate[this.type] = this.engine.state (this.type).map ((s) => {\n\t\t\t\ts.paused = false;\n\t\t\t\treturn s;\n\t\t\t});\n\t\t} else {\n\t\t\tstate[this.type] = [...this.engine.state (this.type).map ((item) => {\n\t\t\t\tif (typeof item.statement === 'string') {\n\t\t\t\t\tconst [play, type, media] = item.statement.split (' ');\n\n\t\t\t\t\tif (media === this.media) {\n\t\t\t\t\t\titem.paused = false;\n\t\t\t\t\t}\n\t\t\t\t\treturn item;\n\t\t\t\t}\n\t\t\t})];\n\t\t}\n\t\tthis.engine.state (state);\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nPause.id = 'Pause';\n\nexport default Pause;","import { Action } from './../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\n\nexport class Placeholder extends Action {\n\n\tstatic matchString ([ action ]) {\n\t\treturn action === '$';\n\t}\n\n\tconstructor ([action, name, ...args]) {\n\t\tsuper ();\n\n\t\tthis.name = name;\n\t\tthis.action = this.engine.$ (name);\n\t\tthis.arguments = args;\n\t}\n\n\twillApply () {\n\t\tlet promise = Promise.resolve (this.action);\n\n\t\tif (this.name.indexOf ('_') === 0) {\n\t\t\tpromise = Util.callAsync (this.action, this.engine, ...this.arguments);\n\t\t}\n\n\t\treturn promise.then ((action) => {\n\t\t\tthis.action = this.engine.prepareAction (action, { cycle: this._cycle });\n\t\t\treturn this.action.willApply ();\n\t\t});\n\t}\n\n\tapply () {\n\t\treturn this.action.apply ();\n\t}\n\n\tdidApply () {\n\t\treturn this.action.didApply ();\n\t}\n\n\twillRevert () {\n\t\tlet promise = Promise.resolve (this.action);\n\n\t\tif (this.name.indexOf ('_') === 0) {\n\t\t\tpromise = Util.callAsync (this.action, this.engine, ...this.arguments);\n\t\t}\n\n\t\treturn promise.then ((action) => {\n\t\t\tthis.action = this.engine.prepareAction (action, { cycle: this._cycle });\n\t\t\treturn this.action.willRevert ();\n\t\t});\n\t}\n\n\trevert () {\n\t\treturn this.action.revert ();\n\t}\n\n\tdidRevert () {\n\t\treturn this.action.didRevert ();\n\t}\n}\n\nPlaceholder.id = 'Placeholder';\n\nexport default Placeholder;\n","import { Action } from './../lib/Action';\nimport { $_, Text } from '@aegis-framework/artemis';\n\nexport class Play extends Action {\n\n\tstatic shouldProceed ({ userInitiated, skip }) {\n\t\tif (userInitiated === false && skip === false) {\n\t\t\tconst voicePlayers = this.engine.mediaPlayers ('voice');\n\n\t\t\tfor (const player of voicePlayers) {\n\t\t\t\tif (!player.ended) {\n\t\t\t\t\treturn Promise.reject('Voice player still playing.');\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic willProceed () {\n\t\tPlay.shutUp ();\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic willRollback () {\n\t\tPlay.shutUp ();\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic setup () {\n\t\tthis.engine.history ('music');\n\t\tthis.engine.history ('sound');\n\t\tthis.engine.history ('voice');\n\t\tthis.engine.state ({\n\t\t\tmusic: [],\n\t\t\tsound: [],\n\t\t\tvoice: []\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic init (selector) {\n\n\t\tconst mediaPlayers = Object.keys (this.engine.mediaPlayers ());\n\t\t// Set the volume of all the media components on the settings screen\n\t\tfor (const mediaType of mediaPlayers) {\n\t\t\tconst element = document.querySelector (`${selector} [data-target=\"${mediaType}\"]`);\n\t\t\tif (element !== null) {\n\t\t\t\telement.value = this.engine.preference ('Volume')[Text.capitalize (mediaType)];\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic bind (selector) {\n\t\tconst engine = this.engine;\n\n\t\t// Volume bars listeners\n\t\t$_(`${selector} [data-action=\"set-volume\"]`).on ('change mouseover', function () {\n\t\t\tconst target = this.dataset.target;\n\t\t\tconst value = this.value;\n\n\t\t\tif (target === 'video') {\n\t\t\t\t$_('[data-video]').each ((element) => {\n\t\t\t\t\telement.volume = value;\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tconst players = engine.mediaPlayers (target);\n\n\t\t\t\t// Music volume should also affect the main screen\n\t\t\t\t// ambient music\n\t\t\t\tif (target === 'music') {\n\t\t\t\t\tif (engine.ambientPlayer instanceof Audio) {\n\t\t\t\t\t\tengine.ambientPlayer.volume = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const player of players) {\n\t\t\t\t\tif (!isNaN (player.dataset.volumePercentage)) {\n\t\t\t\t\t\tplayer.volume = (parseInt(player.dataset.volumePercentage) / 100 ) * value;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tplayer.volume = value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tengine.preference ('Volume')[Text.capitalize (target)] = value;\n\n\t\t\tengine.preferences (engine.preferences (), true);\n\t\t});\n\n\t\tthis.engine.state ({\n\t\t\tmusic: [],\n\t\t\tsound: [],\n\t\t\tvoice: [],\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic onLoad () {\n\t\tconst mediaPlayers = Object.keys (this.engine.mediaPlayers ());\n\t\tconst promises = [];\n\n\t\tfor (const mediaType of mediaPlayers) {\n\t\t\tconst state = this.engine.state (mediaType);\n\n\t\t\tif (typeof state !== 'undefined') {\n\t\t\t\tif (state.length > 0) {\n\t\t\t\t\tfor (const s of state) {\n\t\t\t\t\t\tconst action = this.engine.prepareAction (s.statement, { cycle: 'Application' });\n\t\t\t\t\t\tconst promise = action.willApply ().then (() => {\n\t\t\t\t\t\t\treturn action.apply ({ paused: s.paused }).then (() => {\n\t\t\t\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: false });\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tpromises.push (promise);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\treturn Promise.all (promises);\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic reset () {\n\n\t\tconst players = this.engine.mediaPlayers ();\n\n\t\t// Stop and remove all the media players\n\t\tfor (const playerType of Object.keys (players)) {\n\t\t\tthis.engine.removeMediaPlayer (playerType);\n\t\t}\n\n\t\tthis.engine.state ({\n\t\t\tmusic: [],\n\t\t\tsound: [],\n\t\t\tvoice: []\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchString ([ action ]) {\n\t\treturn action === 'play';\n\t}\n\n\t// Stop the voice player\n\tstatic shutUp () {\n\t\tconst players = this.engine.mediaPlayers ('voice', true);\n\t\tfor (const media of Object.keys (players)) {\n\t\t\tthis.engine.removeMediaPlayer ('voice', media);\n\t\t}\n\n\t\tthis.engine.state ({ voice : [] });\n\t}\n\n\t/**\n\t * Prepare the needed values to run the fade function on the given player\n\t *\n\t * @param {string} fadeTime - The time it will take the audio to reach it's maximum audio\n\t * @param {Audio} player - The Audio object to modify\n\t *\n\t * @return {Promise} - This promise will resolve once the fadeIn has ended\n\t */\n\tstatic fadeIn (fadeTime, player) {\n\t\tconst time = parseFloat (fadeTime.match (/\\d*(\\.\\d*)?/));\n\t\tconst increments = time / 0.1;\n\n\t\tconst targetVolume = player.volume;\n\t\tconst maxVolume = targetVolume * 100;\n\n\t\tconst volume = (maxVolume / increments) / maxVolume;\n\n\t\tconst interval = (1000 * time) / increments;\n\n\t\tconst expected = Date.now () + interval;\n\n\t\tplayer.volume = 0;\n\n\t\tplayer.dataset.fade = 'in';\n\t\tplayer.dataset.maxVolume = maxVolume;\n\n\t\tif (Math.sign (volume) === 1) {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tsetTimeout (() => {\n\t\t\t\t\tPlay.fade (player, volume, targetVolume, interval, expected, resolve);\n\t\t\t\t}, interval);\n\t\t\t});\n\t\t} else {\n\t\t\t// If the volume is set to zero or not valid, the fade effect is disabled\n\t\t\t// to prevent errors\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t}\n\n\t/**\n\t * Fade the player's audio on small iterations until it reaches the maximum value for it\n\t *\n\t * @param {Audio} player The Audio player to which the audio will fadeIn\n\t * @param {number} volume The amount to increase the volume on each iteration\n\t * @param {number} interval The time in milliseconds between each iteration\n\t * @param {Date} expected The expected time the next iteration will happen\n\t * @param {function} resolve The resolve function of the promise returned by the fadeIn function\n\t *\n\t * @return {void}\n\t */\n\tstatic fade (player, volume, targetVolume, interval, expected, resolve) {\n\t\tconst now = Date.now () - expected; // the drift (positive for overshooting)\n\n\t\tif (now > interval) {\n\t\t\t// something really bad happened. Maybe the browser (tab) was inactive?\n\t\t\t// possibly special handling to avoid futile \"catch up\" run\n\t\t}\n\n\t\tif (player.volume !== 1 && player.dataset.fade === 'in') {\n\t\t\tif (player.volume + volume > targetVolume) {\n\t\t\t\tplayer.volume = targetVolume;\n\t\t\t\tdelete player.dataset.fade;\n\t\t\t\tresolve ();\n\t\t\t} else {\n\t\t\t\tplayer.volume += volume;\n\t\t\t\texpected += interval;\n\t\t\t\tsetTimeout (() => {\n\t\t\t\t\tPlay.fade (player, volume, targetVolume, interval, expected, resolve);\n\t\t\t\t}, Math.max (0, interval - now)); // take into account drift\n\t\t\t}\n\t\t}\n\t}\n\n\tconstructor ([ action, type, media, ...props ]) {\n\t\tsuper ();\n\t\tthis.type = type;\n\n\t\tif (this.type === 'music') {\n\t\t\tthis.directory = this.type;\n\t\t} else {\n\t\t\t// Directories are always plural so we need to add an \"s\"\n\t\t\tthis.directory = this.type + 's';\n\t\t}\n\n\t\tthis.mediaKey = media;\n\t\tthis.props = props;\n\n\t\tthis.mediaVolume = this.engine.preference ('Volume')[Text.capitalize (this.type)];\n\n\t\t// Check if a media was defined or just a `play music` was stated\n\t\tif (typeof media !== 'undefined' && media !== 'with') {\n\t\t\tif (typeof this.engine.asset (this.directory, media) !== 'undefined') {\n\t\t\t\tthis.media = this.engine.asset (this.directory, media);\n\t\t\t} else {\n\t\t\t\tthis.media = media;\n\t\t\t}\n\n\t\t\tlet player = this.engine.mediaPlayer (this.type, this.mediaKey);\n\t\t\tif (typeof player === 'undefined') {\n\t\t\t\tplayer = new Audio ();\n\t\t\t\tplayer.volume = this.mediaVolume;\n\t\t\t\tthis.player = this.engine.mediaPlayer (this.type, this.mediaKey, player);\n\t\t\t} else {\n\t\t\t\tthis.player = player;\n\t\t\t}\n\t\t} else {\n\t\t\tthis.player = this.engine.mediaPlayers (this.type);\n\t\t}\n\t}\n\n\twillApply () {\n\t\tif (this.player) {\n\t\t\tif (this.player instanceof Audio) {\n\t\t\t\tthis.player.loop = false;\n\t\t\t}\n\t\t\treturn Promise.resolve ();\n\t\t} else {\n\t\t\treturn Promise.reject ('Media player was not defined.');\n\t\t}\n\t}\n\n\tapply ({ paused = false } = {}) {\n\t\t// Check if the audio should have a fade time\n\t\tconst fadePosition = this.props.indexOf ('fade');\n\n\t\tif (this.player instanceof Audio) {\n\t\t\t// Make the audio loop if it was provided as a prop\n\t\t\tif (this.props.indexOf ('loop') > -1) {\n\t\t\t\tthis.player.loop = true;\n\t\t\t}\n\n\t\t\tif (this.props.indexOf ('volume') > -1) {\n\t\t\t\tconst percentage = parseInt (this.props[this.props.indexOf ('volume') + 1]);\n\t\t\t\tthis.player.dataset.volumePercentage = percentage;\n\t\t\t\tthis.player.volume = (percentage * this.mediaVolume) / 100;\n\t\t\t}\n\n\t\t\tthis.player.src = `${this.engine.setting ('AssetsPath').root}/${this.engine.setting('AssetsPath')[this.directory]}/${this.media}`;\n\n\t\t\tthis.player.onended = () => {\n\t\t\t\tconst endState = {};\n\t\t\t\tendState[this.type] = this.engine.state (this.type).filter ((s) => s.statement !== this._statement);\n\t\t\t\tthis.engine.state (endState);\n\t\t\t\tthis.engine.removeMediaPlayer (this.type, this.mediaKey);\n\t\t\t};\n\n\t\t\tif (fadePosition > -1) {\n\t\t\t\tPlay.fadeIn (this.props[fadePosition + 1], this.player);\n\t\t\t}\n\n\t\t\tif (paused !== true) {\n\t\t\t\treturn this.player.play ();\n\t\t\t}\n\t\t\tthis.player.pause ();\n\t\t\treturn Promise.resolve ();\n\t\t} else if (this.player instanceof Array) {\n\t\t\tconst promises = [];\n\t\t\tfor (const player of this.player) {\n\t\t\t\tif (player.paused && !player.ended) {\n\t\t\t\t\tif (fadePosition > -1) {\n\t\t\t\t\t\tPlay.fadeIn (this.props[fadePosition + 1], player);\n\t\t\t\t\t}\n\t\t\t\t\tpromises.push (player.play ());\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Promise.all (promises);\n\t\t}\n\t\treturn Promise.reject('An error occurred, you probably have a typo on the media you want to play.');\n\t}\n\n\tdidApply ({ updateHistory = true, updateState = true } = {}) {\n\t\tif (updateHistory === true) {\n\t\t\tif (this.player instanceof Audio) {\n\t\t\t\tthis.engine.history (this.type).push (this._statement);\n\t\t\t}\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tif (this.player instanceof Audio) {\n\t\t\t\tconst state = {};\n\t\t\t\tstate[this.type] = [...this.engine.state (this.type), { statement: this._statement, paused: false }];\n\t\t\t\tthis.engine.state (state);\n\t\t\t} else if (this.player instanceof Array) {\n\t\t\t\tconst state = {};\n\t\t\t\tstate[this.type] = [...this.engine.state (this.type).map ((item) => {\n\t\t\t\t\titem.paused = false;\n\t\t\t\t\treturn item;\n\t\t\t\t})];\n\t\t\t\tthis.engine.state (state);\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\trevert () {\n\t\tif (typeof this.mediaKey !== 'undefined') {\n\t\t\tthis.engine.removeMediaPlayer (this.type, this.mediaKey);\n\t\t} else if (this.player instanceof Array) {\n\t\t\tfor (const player of this.player) {\n\t\t\t\tif (!player.paused && !player.ended) {\n\t\t\t\t\tplayer.pause ();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidRevert () {\n\t\tif (typeof this.mediaKey !== 'undefined') {\n\t\t\tthis.engine.history (this.type).pop ();\n\n\t\t\tconst state = {};\n\t\t\tstate[this.type] = this.engine.state (this.type).filter ((m) => m.statement !== this._statement);\n\t\t\tthis.engine.state (state);\n\t\t} else if (this.player instanceof Array) {\n\t\t\tconst state = {};\n\t\t\tstate[this.type] = [...this.engine.state (this.type).map ((item) => {\n\t\t\t\titem.paused = true;\n\t\t\t\treturn item;\n\t\t\t})];\n\t\t\tthis.engine.state (state);\n\t\t}\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nPlay.id = 'Play';\n\nexport default Play;\n","import { $_ } from '@aegis-framework/artemis';\nimport { Action } from './../lib/Action';\n\nexport class Scene extends Action {\n\n\tstatic setup () {\n\t\tthis.engine.history ('scene');\n\t\tthis.engine.history ('sceneElements');\n\t\tthis.engine.history ('sceneState');\n\n\t\tthis.engine.global ('_should_restore_nvl', false);\n\n\t\tthis.engine.state ({\n\t\t\tscene: ''\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic onLoad () {\n\t\tconst sceneState = this.engine.history ('sceneState');\n\t\tconst sceneElements = this.engine.history ('sceneElements');\n\n\t\tif (sceneState.length !== sceneElements.length) {\n\t\t\tconst states = sceneElements.map ((elements) => {\n\t\t\t\tif (elements.length > 0) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcharacters: elements.filter(element => element.indexOf ('data-character=') > -1).map ((element) => {\n\t\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t\t\t\tconst image = $_(div.firstChild);\n\t\t\t\t\t\t\tconst classes = image.get(0).classList.toString ().replace ('animated', '').trim ();\n\t\t\t\t\t\t\treturn `show character ${image.data('character')} ${image.data('sprite')}${ classes.length > 0 ? ` with ${classes}`: ''}`;\n\t\t\t\t\t\t}),\n\t\t\t\t\t\timages: elements.filter(element => element.indexOf ('data-image=') > -1).map ((element) => {\n\t\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t\t\t\tconst image = $_(div.firstChild);\n\t\t\t\t\t\t\tconst classes = image.get(0).classList.toString ().replace ('animated', '').trim ();\n\t\t\t\t\t\t\treturn `show image ${image.data('image')}${ classes.length > 0 ? ` with ${classes}`: ''}`;\n\t\t\t\t\t\t}),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tcharacters: [],\n\t\t\t\t\timages: []\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tfor (const state of states) {\n\t\t\t\tthis.engine.history ('sceneState').push (state);\n\t\t\t}\n\t\t}\n\n\t\tconst { scene } = this.engine.state ();\n\t\tif (scene !== '') {\n\t\t\tconst action = this.engine.prepareAction (scene, { cycle: 'Application' });\n\t\t\treturn action.willApply ().then (() => {\n\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: false });\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic reset () {\n\t\tthis.engine.state ({\n\t\t\tscene: ''\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchString ([ show, type ]) {\n\t\treturn show === 'show' && type === 'scene';\n\t}\n\n\tconstructor ([ show, type, scene, ...classes ]) {\n\t\tsuper ();\n\t\tthis.scene = scene;\n\n\t\tthis.scene_elements = [];\n\t\tthis.scene_state = {};\n\t}\n\n\twillApply () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tapply () {\n\t\tconst selectors = [\n\t\t\t'[data-screen=\"game\"] [data-character]:not([data-visibility=\"invisible\"])',\n\t\t\t'[data-screen=\"game\"] [data-image]:not([data-visibility=\"invisible\"])'\n\t\t];\n\n\t\tthis.engine.element ().find (selectors.join (',')).each ((element) => {\n\t\t\tthis.scene_elements.push (element.outerHTML);\n\t\t});\n\n\t\tconst textBox = this.engine.element ().find ('[data-component=\"text-box\"]').get (0);\n\n\t\tthis.scene_state = {\n\t\t\tcharacters: [...this.engine.state ('characters')],\n\t\t\timages: [...this.engine.state ('images')],\n\t\t\ttextBoxMode: textBox.props.mode,\n\t\t};\n\n\t\tconst restoringState = this.engine.global ('_restoring_state');\n\n\t\tconst action = this.engine.prepareAction (this._statement.replace('show scene', 'show background'), { cycle: 'Application' });\n\t\treturn action.willApply ().then (() => {\n\t\t\treturn action.apply ().then (() => {\n\t\t\t\treturn action.didApply ({ updateHistory: !restoringState, updateState: !restoringState }).then (() => {\n\t\t\t\t\t// Check if the engine is no loading a save file, since loading a file applies the actions on that state\n\t\t\t\t\t// asynchronously, there's a chance this would run after a show image/character action and would remove them\n\t\t\t\t\t// from the scene, which is something we don't want\n\t\t\t\t\tif (restoringState === false) {\n\t\t\t\t\t\tthis.engine.state ({\n\t\t\t\t\t\t\tcharacters: [],\n\t\t\t\t\t\t\timages: []\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tthis.engine.element ().find ('[data-character]').remove ();\n\t\t\t\t\t\tthis.engine.element ().find ('[data-image]').remove ();\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}\n\n\tdidApply ({ updateHistory = true, updateState = true } = {}) {\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history ('sceneElements').push (this.scene_elements);\n\t\t\tthis.engine.history ('sceneState').push (this.scene_state);\n\t\t\tthis.engine.history ('scene').push (this._statement);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state ({\n\t\t\t\tscene: this._statement\n\t\t\t});\n\t\t}\n\n\t\tconst restoringState = this.engine.global ('_restoring_state');\n\t\tif (restoringState === false) {\n\t\t\tthis.engine.action ('Dialog').reset ({ saveNVL: true });\n\t\t}\n\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\twillRevert () {\n\t\tthis.engine.element ().find ('[data-character]').remove ();\n\t\tthis.engine.element ().find ('[data-image]').remove ();\n\t\treturn Promise.resolve ();\n\t}\n\n\trevert () {\n\t\treturn this.engine.revert (this._statement.replace('show scene', 'show background'), false, false).then(() => {\n\t\t\t// this.engine.history ('scene').pop ();\n\t\t\tconst restoreSceneItems = () => {\n\t\t\t\tif (this.engine.history ('sceneElements').length > 0) {\n\t\t\t\t\tconst scene_elements = this.engine.history ('sceneElements').pop ();\n\n\t\t\t\t\tif (typeof scene_elements === 'object') {\n\t\t\t\t\t\tfor (const element of scene_elements) {\n\t\t\t\t\t\t\tthis.engine.element ().find ('[data-screen=\"game\"]').append (element);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.engine.history ('sceneState').length > 0) {\n\t\t\t\t\tconst scene_state = this.engine.history ('sceneState').pop ();\n\n\t\t\t\t\tif (typeof scene_state === 'object') {\n\t\t\t\t\t\tconst state = { ...scene_state };\n\t\t\t\t\t\tconst textBox = this.engine.element ().find ('[data-component=\"text-box\"]').get (0);\n\n\t\t\t\t\t\ttextBox.setProps ({ mode: state.textBoxMode });\n\n\t\t\t\t\t\tif (state.textBoxMode === 'nvl') {\n\t\t\t\t\t\t\tthis.engine.global ('_should_restore_nvl', true);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tdelete state.textBoxMode;\n\t\t\t\t\t\tthis.engine.state (scene_state);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t// Check if the scene history still has elements left, if it doesn't then we need to roll back\n\t\t\t// to the initial background defined in the CSS and not in the script.\n\t\t\tif (this.engine.history ('scene').length > 0) {\n\t\t\t\tthis.engine.global ('_scene_history_cleared_by_background', false);\n\t\t\t\tconst last = this.engine.history ('scene')[this.engine.history ('scene').length - 1];\n\n\t\t\t\tthis.engine.state ({\n\t\t\t\t\tscene: last\n\t\t\t\t});\n\n\t\t\t\tthis.engine.history ('scene').pop ();\n\n\t\t\t\trestoreSceneItems ();\n\t\t\t\treturn this.engine.action ('Dialog').reset ();\n\t\t\t}\n\n\t\t\t// If the scene history was empty, we just need to check if it was the background\n\t\t\t// action who cleared it. If that was the case, we still need to restore the other\n\t\t\t// items that we save for each scene apart from the background.\n\t\t\tif (this.engine.global ('_scene_history_cleared_by_background') === true) {\n\t\t\t\tthis.engine.global ('_scene_history_cleared_by_background', false);\n\t\t\t\trestoreSceneItems ();\n\t\t\t\treturn this.engine.action ('Dialog').reset ();\n\t\t\t}\n\t\t});\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nScene.id = 'Scene';\n\nexport default Scene;","import { Action } from './../lib/Action';\nimport { Text } from '@aegis-framework/artemis';\n\nexport class ShowBackground extends Action {\n\n\tstatic setup () {\n\t\tthis.engine.history ('background');\n\n\t\tthis.engine.state ({\n\t\t\tbackground: ''\n\t\t});\n\n\t\tthis.engine.global ('_scene_history_cleared_by_background', false);\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic onLoad () {\n\t\tconst { background, scene } = this.engine.state ();\n\t\tif (typeof background === 'string' && background !== '' && scene === '') {\n\t\t\tconst action = this.engine.prepareAction (background, { cycle: 'Application' });\n\t\t\treturn action.willApply ().then (() => {\n\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: false });\n\t\t\t\t});\n\t\t\t});\n\t\t} else {\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t}\n\n\tstatic reset () {\n\t\tconst background = this.engine.element ().find ('[data-ui=\"background\"]');\n\n\t\tbackground.style ('background-image', 'initial');\n\t\tbackground.style ('background-color', 'initial');\n\n\t\tthis.engine.state ({\n\t\t\tbackground: ''\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchString ([ show, type ]) {\n\t\treturn show === 'show' && type === 'background';\n\t}\n\n\tconstructor ([ show, type, background, ...classes ]) {\n\t\tsuper ();\n\t\tthis.background = background;\n\t\tthis.property = 'background-image';\n\t\tif (typeof this.engine.asset ('scenes', background) !== 'undefined') {\n\t\t\tthis.value = `url(${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').scenes}/${this.engine.asset ('scenes', background)})`;\n\t\t} else {\n\t\t\tconst rest = [background, ...classes].join (' ');\n\t\t\tif (classes.indexOf ('with') > -1) {\n\t\t\t\tthis.value = Text.prefix ('with', rest);\n\t\t\t} else {\n\t\t\t\tthis.value = rest;\n\t\t\t}\n\n\t\t\tconst isColorProperty = ['#', 'rgb', 'hsl'].findIndex ((color) => {\n\t\t\t\treturn this.value.indexOf (color) === 0;\n\t\t\t}) > -1;\n\n\t\t\tconst isNamed = this.value.indexOf (' ') > -1 ? false : new RegExp(/\\w+/).test (this.value) && !(new RegExp (/(url|gradient)\\(/).test (this.value));\n\n\t\t\tif (isColorProperty === true || isNamed === true) {\n\t\t\t\tthis.property = 'background-color';\n\t\t\t}\n\t\t}\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = ['animated', ...classes];\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\twillApply () {\n\t\tconst background = this.engine.element ().find ('[data-ui=\"background\"]');\n\n\t\tbackground.removeClass ();\n\t\tvoid background.get (0).offsetWidth;\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tapply () {\n\t\tconst background = this.engine.element ().find ('[data-ui=\"background\"]');\n\n\t\tthis.engine.element ().find ('[data-ui=\"background\"]').style ('background-image', 'initial');\n\t\tthis.engine.element ().find ('[data-ui=\"background\"]').style ('background-color', 'initial');\n\t\tthis.engine.element ().find ('[data-ui=\"background\"]').style ('animation-duration', '');\n\n\t\tthis.engine.element ().find ('[data-ui=\"background\"]').style (this.property, this.value);\n\n\t\tconst durationPosition = this.classes.indexOf ('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\tbackground.style ('animation-duration', this.classes[durationPosition + 1]);\n\t\t}\n\n\t\tfor (const newClass of this.classes) {\n\t\t\tbackground.addClass (newClass);\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply ({ updateHistory = true, updateState = true } = {}) {\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state ({\n\t\t\t\tbackground: this._statement\n\t\t\t});\n\t\t}\n\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history ('background').push (this._statement);\n\t\t}\n\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\twillRevert () {\n\t\tthis.engine.element ().find ('[data-ui=\"background\"]').removeClass ();\n\t\treturn Promise.resolve ();\n\t}\n\n\trevert () {\n\t\tlet history = this.engine.history ('background');\n\n\t\thistory.pop ();\n\n\t\tif (history.length === 0) {\n\t\t\thistory = this.engine.history ('scene');\n\t\t\thistory.pop ();\n\t\t\tthis.engine.global ('_scene_history_cleared_by_background', true);\n\t\t}\n\n\t\tif (history.length > 0) {\n\t\t\tconst background = this.engine.element ().find ('[data-ui=\"background\"]');\n\t\t\tconst last = history[history.length - 1].replace ('show scene', 'show background');\n\t\t\tconst action = this.engine.prepareAction (last, { cycle: 'Application' });\n\n\t\t\tbackground.style ('background-image', 'initial');\n\t\t\tbackground.style ('background-color', 'initial');\n\t\t\tbackground.style (action.property, action.value);\n\n\t\t\tfor (const newClass of this.classes) {\n\t\t\t\tbackground.addClass (newClass);\n\t\t\t}\n\n\t\t\tthis.engine.state ({\n\t\t\t\tbackground: last\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nShowBackground.id = 'Show::Background';\n\nexport default ShowBackground;","import { Action } from './../lib/Action';\nimport { $_ } from '@aegis-framework/artemis';\n\nexport class ShowCharacter extends Action {\n\n\tstatic setup () {\n\t\t// The character history saves what characters have been displayed\n\t\tthis.engine.history ('character');\n\n\t\t// The characters state variable holds what characters are being shown\n\t\t// right now\n\t\tthis.engine.state ({\n\t\t\tcharacters: []\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic reset () {\n\t\tthis.engine.element ().find ('[data-screen=\"game\"] [data-character]').remove ();\n\n\t\tthis.engine.state ({\n\t\t\tcharacters: []\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic onLoad () {\n\t\tconst { characters } = this.engine.state ();\n\t\tconst promises = [];\n\n\t\tfor (const item of characters) {\n\t\t\tconst action = this.engine.prepareAction (item, { cycle: 'Application' });\n\t\t\tconst promise = action.willApply ().then (() => {\n\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: false });\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tpromises.push (promise);\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\treturn Promise.all (promises);\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchString ([ show, type ]) {\n\t\treturn show === 'show' && type === 'character';\n\t}\n\n\tconstructor ([ show, type, asset, sprite, ...classes ]) {\n\t\tsuper ();\n\t\tthis.asset = asset;\n\n\t\tif (typeof this.engine.character (asset) !== 'undefined') {\n\t\t\t// show [character] [expression] at [position] with [animation] [infinite]\n\t\t\tthis.sprite = sprite;\n\n\t\t\tthis.character = this.engine.character (asset);\n\t\t\tthis.image = this.character.sprites[this.sprite];\n\n\t\t\tif (typeof classes !== 'undefined') {\n\t\t\t\tthis.classes = ['animated', ...classes.filter ((item) => item !== 'at' && item !== 'with')];\n\t\t\t} else {\n\t\t\t\tthis.classes = [];\n\t\t\t}\n\n\t\t} else {\n\t\t\t// TODO: Add Fancy Error when the specified character does not exist\n\t\t}\n\t}\n\n\tapply () {\n\t\t// show [character] [expression] at [position] with [animation] [infinite]\n\t\t// 0 1 2 3 4 5 6 7\n\n\t\t// show [character] [expression] with [animation] [infinite]\n\t\t// 0 1 2 3 4 5\n\n\t\t// show [character] [expression]\n\t\t// 0 1 2\n\n\t\tlet directory = this.character.directory;\n\t\tif (typeof directory == 'undefined') {\n\t\t\tdirectory = '';\n\t\t} else {\n\t\t\tdirectory += '/';\n\t\t}\n\n\t\tlet oneSpriteOnly = true;\n\n\t\tconst imgSrc = `${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').characters}/${directory}${this.image}`;\n\t\tconst sprite = this.engine.element ().find (`[data-character=\"${this.asset}\"]:not([data-visibility=\"invisible\"])`);\n\n\t\tif (sprite.isVisible ()) {\n\t\t\tconst oldClasses = [...sprite.get(0).classList];\n\n\t\t\t// Check if there is any end-animation, here's what this matches:\n\t\t\t// 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ \"end-fadeIn\", \"fadeIn\" ]\n\t\t\tconst endAnimation = oldClasses.find(c => c.match (/end-([A-Za-z]+)/) !== null);\n\n\t\t\tif (typeof endAnimation !== 'undefined') {\n\t\t\t\t// If there was, get the animation-only part\n\t\t\t\tconst [end, animation] = endAnimation.split('-');\n\t\t\t\tconst watchAnimation = oldClasses[oldClasses.indexOf(endAnimation) - 1];\n\t\t\t\tsprite.removeClass (watchAnimation);\n\t\t\t\tsprite.addClass (animation);\n\t\t\t\tsprite.data ('visibility', 'invisible');\n\t\t\t\tsprite.on ('animationend', (e) => {\n\t\t\t\t\te.target.remove ();\n\t\t\t\t});\n\n\t\t\t\toneSpriteOnly = false;\n\t\t\t}\n\n\t\t\tfor (const oldClass of oldClasses) {\n\t\t\t\tif (this.classes.indexOf (oldClass) === -1) {\n\t\t\t\t\tsprite.removeClass (oldClass);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst position = this._statement.match (/at\\s(\\S*)/);\n\n\t\tif (oneSpriteOnly && sprite.isVisible ()) {\n\t\t\tsprite.attribute ('src', imgSrc);\n\t\t\tsprite.data ('sprite', this.sprite);\n\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\tsprite.addClass (className);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst durationPosition = this.classes.indexOf ('duration');\n\t\t\tif (durationPosition > -1) {\n\t\t\t\tsprite.style ('animation-duration', this.classes[durationPosition + 1]);\n\t\t\t} else {\n\t\t\t\tsprite.style ('animation-duration', '');\n\t\t\t}\n\n\t\t\tconst transitionPosition = this.classes.indexOf ('transition');\n\n\t\t\tif (transitionPosition > -1) {\n\t\t\t\tsprite.style ('transition-duration', this.classes[transitionPosition + 1]);\n\t\t\t} else {\n\t\t\t\tsprite.style ('transition-duration', '');\n\t\t\t}\n\n\t\t\t// Check if a position was provided. (show character y at left)\n\t\t\tif (position instanceof Array) {\n\t\t\t\t// If it was, we'll set that position to the character\n\t\t\t\tconst [at, positionClass] = position;\n\t\t\t\tsprite.data ('position', positionClass);\n\t\t\t} else {\n\t\t\t\t// If it wasn't, we'll check if the sprite already had one position set\n\t\t\t\t// const currentPosition = sprite.data ('position');\n\t\t\t\t// if (typeof currentPosition === 'string') {\n\t\t\t\t// \t// If it did, we'll add that position\n\t\t\t\t// \tif (currentPosition.trim () !== '') {\n\t\t\t\t// \t\tconsole.log (currentPosition);\n\t\t\t\t// \t\tsprite.addClass (currentPosition.trim ());\n\t\t\t\t// \t}\n\t\t\t\t// } else {\n\t\t\t\t// \t// If it didn't, we'll set the center position by default\n\t\t\t\t// \tsprite.addClass ('center');\n\t\t\t\t// \tsprite.data ('position', 'center');\n\t\t\t\t// }\n\n\t\t\t\tsprite.addClass ('center');\n\t\t\t\tsprite.data ('position', 'center');\n\t\t\t}\n\n\t\t\tsprite.data ('sprite', this.sprite);\n\t\t} else {\n\t\t\tconst image = document.createElement ('img');\n\t\t\t$_(image).attribute ('src', imgSrc);\n\t\t\t$_(image).addClass ('animated');\n\t\t\t$_(image).data ('character', this.asset);\n\t\t\t$_(image).data ('sprite', this.sprite);\n\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\timage.classList.add (className);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Check if a position was provided. (show character y at left)\n\t\t\tif (position instanceof Array) {\n\t\t\t\t// If it was, we'll set that position to the character\n\t\t\t\tconst [at, positionClass] = position;\n\t\t\t\t$_(image).data ('position', positionClass);\n\t\t\t} else {\n\t\t\t\t// If it wasn't, we'll set the center position by default\n\t\t\t\timage.classList.add ('center');\n\t\t\t\t$_(image).data ('position', 'center');\n\t\t\t}\n\n\t\t\tconst durationPosition = this.classes.indexOf ('duration');\n\t\t\tif (durationPosition > -1) {\n\t\t\t\t$_(image).style ('animation-duration', this.classes[durationPosition + 1]);\n\t\t\t}\n\n\t\t\tthis.engine.element ().find ('[data-screen=\"game\"] [data-content=\"visuals\"]').append (image);\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply ({ updateHistory = true, updateState = true } = {}) {\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history ('character').push (this._statement);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state ({\n\t\t\t\tcharacters: [\n\t\t\t\t\t...this.engine.state ('characters').filter ((item) => {\n\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\tconst [show, character, asset, sprite] = item.split (' ');\n\t\t\t\t\t\t\treturn asset !== this.asset;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}),\n\t\t\t\t\tthis._statement\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\trevert () {\n\t\tthis.engine.element ().find (`[data-character=\"${this.asset}\"]`).remove ();\n\n\t\t// First, we remove the last instance of the character from the history since\n\t\t// that's the one being currently displayed and we want the one before that\n\t\tfor (let i = this.engine.history ('character').length - 1; i >= 0; i--) {\n\t\t\tconst last = this.engine.history ('character')[i];\n\t\t\tconst [show, character, asset, name] = last.split (' ');\n\t\t\tif (asset === this.asset) {\n\t\t\t\tthis.engine.history ('character').splice (i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// Now, we go through the remaining history to find the last instance of the\n\t\t// character.\n\t\tfor (let i = this.engine.history ('character').length - 1; i >= 0; i--) {\n\t\t\tconst last = this.engine.history ('character')[i];\n\t\t\tconst [show, character, asset, name] = last.split (' ');\n\n\t\t\tif (asset === this.asset) {\n\t\t\t\t// this.engine.history ('character').splice (i, 1);\n\t\t\t\tconst action = this.engine.prepareAction (last, { cycle: 'Apply' });\n\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: true });\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t// If the script didn't return on the for cycle above, it means either the\n\t\t// history didn't have any items left or, the character was not found.\n\t\t// In that case, we simply remove the character from the state.\n\t\tthis.engine.state ({\n\t\t\tcharacters: [\n\t\t\t\t...this.engine.state ('characters').filter ((item) => {\n\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\tconst [show, character, asset, sprite] = item.split (' ');\n\t\t\t\t\t\treturn asset !== this.asset;\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t}),\n\t\t\t],\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nShowCharacter.id = 'Show::Character';\n\nexport default ShowCharacter;\n","import { Action } from './../lib/Action';\nimport { $_ } from '@aegis-framework/artemis';\n\nexport class ShowImage extends Action {\n\n\tstatic setup () {\n\t\tthis.engine.history ('image');\n\t\tthis.engine.state ({\n\t\t\timages: []\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic reset () {\n\t\tthis.engine.element ().find ('[data-screen=\"game\"] [data-image]').remove ();\n\n\t\tthis.engine.state ({\n\t\t\timages: []\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic onLoad () {\n\t\tconst { images } = this.engine.state ();\n\t\tconst promises = [];\n\n\t\tfor (const item of images) {\n\t\t\tconst action = this.engine.prepareAction (item, { cycle: 'Application' });\n\t\t\tconst promise = action.willApply ().then (() => {\n\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: false });\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tpromises.push (promise);\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\treturn Promise.all (promises);\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchString ([ show, type ]) {\n\t\treturn show === 'show' && type === 'image';\n\t}\n\n\tconstructor ([ show, type, asset, ...props ]) {\n\t\tsuper ();\n\t\tthis.asset = asset;\n\n\t\tthis.classes = (' ' + props.join (' ')).replace(' at ', ' ').replace (' with ', ' ').trim ().split (' ');\n\n\t\tif (typeof this.engine.asset ('images', asset) !== 'undefined') {\n\t\t\tthis.image = this.engine.asset ('images', asset);\n\t\t} else {\n\t\t\tthis.image = asset;\n\t\t}\n\t}\n\n\tapply () {\n\t\tconst image = document.createElement ('img');\n\t\tconst position = this._statement.match (/at\\s(\\S*)/);\n\n\n\t\t$_(image).attribute ('src', `${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').images}/${this.image}`);\n\t\t$_(image).addClass ('animated');\n\t\t$_(image).data ('image', this.asset);\n\n\t\tfor (const className of this.classes) {\n\t\t\tif (className) {\n\t\t\t\t$_(image).addClass (className);\n\t\t\t}\n\t\t}\n\n\t\tif (position instanceof Array) {\n\t\t\t// If it was, we'll set that position to the character\n\t\t\tconst [at, positionClass] = position;\n\t\t\t$_(image).data ('position', positionClass);\n\t\t} else {\n\t\t\t$_(image).addClass ('center');\n\t\t\t$_(image).data ('position', 'center');\n\t\t}\n\n\t\tconst durationPosition = this.classes.indexOf ('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\t$_(image).style ('animation-duration', this.classes[durationPosition + 1]);\n\t\t}\n\n\t\tthis.engine.element ().find ('[data-screen=\"game\"] [data-content=\"visuals\"]').append (image.outerHTML);\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply ({ updateHistory = true, updateState = true } = {}) {\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history ('image').push (this._statement);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state ({\n\t\t\t\timages: [...this.engine.state ('images'), this._statement]\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\trevert () {\n\t\tthis.engine.element ().find (`[data-image=\"${this.asset}\"]`).remove ();\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidRevert () {\n\t\tthis.engine.history ('image').pop ();\n\t\tthis.engine.state ({\n\t\t\timages: [...this.engine.state ('images').filter ((item) => {\n\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\tconst [show, image, asset] = item.split (' ');\n\t\t\t\t\treturn asset !== this.asset;\n\t\t\t\t}\n\t\t\t})]\n\t\t});\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nShowImage.id = 'Show::Image';\n\nexport default ShowImage;","import { Action } from './../lib/Action';\n\nexport class Stop extends Action {\n\n\tstatic matchString ([ action ]) {\n\t\treturn action === 'stop';\n\t}\n\n\t/**\n\t * Prepare the needed values to run the fade function on the given player\n\t *\n\t * @param {string} fadeTime - The time it will take the audio to reach 0\n\t * @param {Audio} player - The Audio object to modify\n\t *\n\t * @return {Promise} - This promise will resolve once the fadeOut has ended\n\t */\n\tstatic fadeOut (fadeTime, player) {\n\t\tconst time = parseFloat (fadeTime.match (/\\d*(\\.\\d*)?/));\n\n\t\tconst increments = time / 0.1;\n\t\tlet maxVolume = parseFloat (player.dataset.maxVolume);\n\n\t\tif (isNaN(maxVolume)) {\n\t\t\tmaxVolume = player.volume * 100;\n\t\t}\n\n\t\tconst volume = (maxVolume / increments) / maxVolume;\n\n\t\tconst interval = (1000 * time) / increments;\n\n\t\tconst expected = Date.now () + interval;\n\n\t\tplayer.dataset.fade = 'out';\n\n\t\tif (Math.sign (volume) === 1) {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tsetTimeout (() => {\n\t\t\t\t\tStop.fade (player, volume, interval, expected, resolve);\n\t\t\t\t}, interval);\n\t\t\t});\n\t\t} else {\n\t\t\t// If the volume is set to zero or not valid, the fade effect is disabled\n\t\t\t// to prevent errors\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t}\n\n\t/**\n\t * Fade the player's audio on small iterations until it reaches 0\n\t *\n\t * @param {Audio} player The Audio player to which the audio will fadeOut\n\t * @param {number} volume The amount to decrease the volume on each iteration\n\t * @param {number} interval The time in milliseconds between each iteration\n\t * @param {Date} expected The expected time the next iteration will happen\n\t * @param {function} resolve The resolve function of the promise returned by the fadeOut function\n\t *\n\t * @return {void}\n\t */\n\tstatic fade (player, volume, interval, expected, resolve) {\n\t\tconst now = Date.now () - expected; // the drift (positive for overshooting)\n\n\t\tif (now > interval) {\n\t\t\t// something really bad happened. Maybe the browser (tab) was inactive?\n\t\t\t// possibly special handling to avoid futile \"catch up\" run\n\t\t}\n\n\t\tif (player.volume !== 0 && player.dataset.fade === 'out') {\n\t\t\tif ((player.volume - volume) < 0) {\n\t\t\t\tresolve ();\n\t\t\t} else {\n\t\t\t\tplayer.volume -= volume;\n\t\t\t\texpected += interval;\n\t\t\t\tsetTimeout (() => {\n\t\t\t\t\tStop.fade (player, volume, interval, expected, resolve);\n\t\t\t\t}, Math.max (0, interval - now)); // take into account drift\n\t\t\t}\n\t\t}\n\t}\n\n\tconstructor ([ action, type, media, ...props ]) {\n\t\tsuper ();\n\n\t\tthis.type = type;\n\t\tthis.media = media;\n\t\tthis.props = props;\n\n\t\tif (typeof media === 'undefined' || media === 'with') {\n\t\t\tthis.player = this.engine.mediaPlayers (type);\n\t\t} else {\n\t\t\tthis.player = this.engine.mediaPlayer (type, media);\n\t\t}\n\t}\n\n\twillApply () {\n\t\tif (this.player) {\n\t\t\tif (typeof this.player === 'object' && !(this.player instanceof Audio)) {\n\t\t\t\tfor (const player of Object.values (this.player)) {\n\t\t\t\t\tplayer.loop = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.player.loop = false;\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tapply () {\n\t\t// Check if the audio should have a fade time\n\t\tconst fadePosition = this.props.indexOf ('fade');\n\n\t\tif (typeof this.player === 'object' && !(this.player instanceof Audio)) {\n\t\t\tif (fadePosition > -1) {\n\t\t\t\tfor (const player of this.player) {\n\t\t\t\t\tStop.fadeOut (this.props[fadePosition + 1], player).then (() => {\n\t\t\t\t\t\tthis.engine.removeMediaPlayer (this.type, player.dataset.key);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.engine.removeMediaPlayer (this.type);\n\t\t\t}\n\t\t} else {\n\n\t\t\tif (fadePosition > -1) {\n\t\t\t\tStop.fadeOut (this.props[fadePosition + 1], this.player).then (() => {\n\t\t\t\t\tthis.engine.removeMediaPlayer (this.type, this.media);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.engine.removeMediaPlayer (this.type, this.media);\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply () {\n\t\tconst state = {};\n\n\t\tif (typeof this.media !== 'undefined') {\n\t\t\tstate[this.type] = [...this.engine.state (this.type).filter ((item) => {\n\t\t\t\tif (typeof item.statement === 'string') {\n\t\t\t\t\tconst [play, type, media] = item.statement.split (' ');\n\t\t\t\t\treturn !(type === this.type && media === this.media);\n\t\t\t\t}\n\t\t\t})];\n\t\t} else {\n\t\t\tthis.engine.history (this.type).push (this.engine.state (this.type));\n\t\t\tstate[this.type] = [];\n\t\t}\n\n\t\tthis.engine.state (state);\n\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\trevert () {\n\t\tif (typeof this.media !== 'undefined') {\n\t\t\tfor (let i = this.engine.history (this.type).length - 1; i >= 0; i--) {\n\t\t\t\tconst last = this.engine.history (this.type)[i];\n\t\t\t\tif (typeof last !== 'undefined') {\n\t\t\t\t\tconst [play, type, media] = last.split (' ');\n\n\t\t\t\t\tif (this.type === type && this.media === media) {\n\t\t\t\t\t\tconst action = this.engine.prepareAction (last, { cycle: 'Application'});\n\t\t\t\t\t\treturn action.willApply ().then (() => {\n\t\t\t\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: true });\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Promise.resolve ();\n\t\t} else {\n\t\t\tconst statements = this.engine.history (this.type).pop ();\n\t\t\tconst promises = [];\n\t\t\tfor (const state of statements) {\n\t\t\t\tconst action = this.engine.prepareAction (state.statement, { cycle: 'Application'});\n\t\t\t\tconst promise = action.willApply ().then (() => {\n\t\t\t\t\treturn action.apply ({ paused: state.paused }).then (() => {\n\t\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: true });\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tpromises.push (promise);\n\t\t\t}\n\t\t\treturn Promise.all (promises);\n\t\t}\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nStop.id = 'Stop';\n\nexport default Stop;","import { Action } from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\n\nexport class Vibrate extends Action {\n\n\tstatic matchString ([ action ]) {\n\t\treturn action === 'vibrate';\n\t}\n\n\tconstructor ([ action, ...time ]) {\n\t\tsuper ();\n\n\t\t// First check if vibration is available available\n\t\tif (navigator) {\n\t\t\tif (navigator.vibrate) {\n\t\t\t\t// Since time can be a pattern made of different lengths, we have\n\t\t\t\t// to use an array\n\t\t\t\tthis.time = [];\n\t\t\t\tfor (const i in time) {\n\t\t\t\t\t// Check if all times are valid integers\n\t\t\t\t\tif (!isNaN (time[i])) {\n\t\t\t\t\t\tthis.time[i] = parseInt (time[i]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tFancyError.show (\n\t\t\t\t\t\t\t'The specified time was not an integer',\n\t\t\t\t\t\t\t'Monogatari attempted to transform the given time into an integer value but failed.',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'Specified time': time[i],\n\t\t\t\t\t\t\t\t'Statement': `\"${this._statement}\"`,\n\t\t\t\t\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t\t\t'_': 'Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.',\n\t\t\t\t\t\t\t\t\t'_1': 'For example, the following statement would make the device vibrate for 5 seconds:',\n\t\t\t\t\t\t\t\t\t'_3':`\n\t\t\t\t\t\t\t\t\t\t
\"vibrate 5000\"
\n\t\t\t\t\t\t\t\t\t`,\n\t\t\t\t\t\t\t\t\t'_4': 'If you wanted to make the device vibrate on a pattern, this is a correct syntax:',\n\t\t\t\t\t\t\t\t\t'_5':`\n\t\t\t\t\t\t\t\t\t\t
\"vibrate 5000 100 4000 200 3000\"
\n\t\t\t\t\t\t\t\t\t`\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.warn ('Vibration is not supported in this platform.');\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn ('Vibration is not supported in this platform.');\n\t\t}\n\t}\n\n\twillApply () {\n\t\tif (typeof this.time !== 'undefined') {\n\t\t\treturn Promise.resolve ();\n\t\t}\n\t\treturn Promise.reject ('Time for vibration was not provided');\n\t}\n\n\tapply () {\n\t\tnavigator.vibrate (0);\n\t\tnavigator.vibrate (this.time);\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply () {\n\t\treturn Promise.resolve ({ advance: true });\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nVibrate.id = 'Vibrate';\n\nexport default Vibrate;","import { $_ } from '@aegis-framework/artemis';\n\nimport { Action } from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\n\nexport class Video extends Action {\n\n\tstatic shouldProceed () {\n\t\treturn new Promise ((resolve, reject) => {\n\t\t\t$_('[data-video]').each ((element) => {\n\t\t\t\tif (element.ended !== true && element.dataset.mode !== 'background' && element.dataset.mode !== 'displayable') {\n\t\t\t\t\treject ('Playing video must end before proceeding.');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tresolve ();\n\t\t});\n\t}\n\n\tstatic onLoad () {\n\t\tif (this.engine.state ('videos').length > 0) {\n\t\t\tconst promises = [];\n\n\t\t\tfor (const video of this.engine.state ('videos')) {\n\t\t\t\tconst action = this.engine.prepareAction (video, { cycle: 'Application' });\n\t\t\t\tconst promise = action.willApply ().then (() => {\n\t\t\t\t\treturn action.apply ().then (() => {\n\t\t\t\t\t\treturn action.didApply ({ updateHistory: false, updateState: false });\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\tpromises.push (promise);\n\t\t\t}\n\n\t\t\tif (promises.length > 0) {\n\t\t\t\treturn Promise.all (promises);\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic setup () {\n\t\tthis.engine.history ('video');\n\t\tthis.engine.state ({\n\t\t\tvideos: []\n\t\t});\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic reset () {\n\t\tthis.engine.element ().find ('[data-video]').remove ();\n\n\t\tthis.engine.history ({\n\t\t\tvideo: []\n\t\t});\n\n\t\tthis.engine.state ({\n\t\t\tvideos: []\n\t\t});\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tstatic matchString ([ show, type ]) {\n\t\treturn show === 'show' && type === 'video';\n\t}\n\n\t/**\n\t * Creates an instance of a Video Action\n\t *\n\t * @param {string[]} parameters - List of parameters received from the script statement.\n\t * @param {string} parameters.action - In this case, action will always be 'video'\n\t * @param {string} [parameters.mode='modal'] - Mode in which the video element will be shown (modal, displayable, background, immersive, full-screen)\n\t * @param {string} parameters.name\n\t * @param {string} parameters.props\n\t */\n\tconstructor ([ show, type, name, mode = 'modal', ...props]) {\n\t\tsuper ();\n\t\tthis.mode = mode;\n\t\tthis.name = name;\n\t\tthis.props = props;\n\n\t\tif (typeof this.engine.asset ('videos', name) !== 'undefined') {\n\t\t\tthis.src = this.engine.asset ('videos', name);\n\t\t}\n\n\t\tif (typeof props !== 'undefined') {\n\t\t\tthis.classes = ['animated', ...props.filter((item) => item !== 'with')];\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\twillApply () {\n\t\tif (this.constructor._configuration.modes.indexOf (this.mode) === -1) {\n\t\t\tFancyError.show (\n\t\t\t\t`The video mode provided (\"${this.mode}\") is not valid.`,\n\t\t\t\t`Monogatari attempted to play a video but the mode \"${this.mode}\" was not found in the video action configuration as a valid mode.`,\n\t\t\t\t{\n\t\t\t\t\t'Mode Provided': this.mode,\n\t\t\t\t\t'You may have meant one of these': this.constructor._configuration.modes,\n\t\t\t\t\t'Statement': `\"${this._statement}\"`,\n\t\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t\t'Help': {\n\t\t\t\t\t\t'_': 'Check your statement and make sure there are no typos on the mode you provided.'\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t);\n\t\t\treturn Promise.reject ('Invalid video mode provided.');\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tapply () {\n\t\t// TODO: Find a way to remove the resize listeners once the video is stopped\n\t\tconst element = document.createElement ('video');\n\n\t\telement.volume = this.engine.preference ('Volume').Video;\n\n\t\telement.dataset.video = this.name;\n\t\telement.dataset.mode = this.mode;\n\n\t\tfor (const newClass of this.classes) {\n\t\t\telement.classList.add (newClass);\n\t\t}\n\n\t\t$_(element).attribute ('src', `${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').videos}/${this.src}`);\n\n\t\tif (this.props.indexOf ('close') > -1) {\n\t\t\telement.onended = () => {\n\t\t\t\tthis.engine.element ().find (`[data-video=\"${this.name}\"][data-mode=\"${this.mode}\"]`).remove ();\n\n\t\t\t\tlet index = -1;\n\t\t\t\tfor (let i = this.engine.state ('videos').length - 1; i >= 0; i--) {\n\t\t\t\t\tconst last = this.engine.state ('videos')[i];\n\t\t\t\t\tconst [show, video, name, mode] = last.split (' ');\n\t\t\t\t\tif (name === this.name && mode === this.mode) {\n\t\t\t\t\t\tindex = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (this.mode === 'immersive' || this.mode === 'fullscreen' || this.mode === 'modal') {\n\t\t\t\t\tif (index > -1) {\n\t\t\t\t\t\tthis.engine.state ('videos').splice (index, 1);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.engine.global ('block', false);\n\t\t\t\t\tthis.engine.proceed ({ userInitiated: false, skip: false, autoPlay: false });\n\t\t\t\t} else if (this.mode === 'background' || this.mode === 'displayable') {\n\t\t\t\t\tif (index > -1) {\n\t\t\t\t\t\tthis.engine.state ('videos').splice (index, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tif (this.props.indexOf ('loop') > -1) {\n\t\t\t$_(element).attribute ('loop', '');\n\t\t}\n\n\t\tif (this.props.indexOf ('controls') > -1) {\n\t\t\t$_(element).attribute ('controls', '');\n\t\t}\n\n\t\tif (this.mode === 'background') {\n\t\t\tthis.engine.element ().find ('[data-ui=\"background\"]').append (element);\n\t\t} else if (this.mode === 'immersive') {\n\t\t\tthis.engine.global ('block', true);\n\t\t\tthis.engine.element ().find ('[data-screen=\"game\"]').prepend (element);\n\t\t} else if (this.mode === 'fullscreen') {\n\t\t\tthis.engine.global ('block', true);\n\t\t\tif (element.requestFullscreen) {\n\t\t\t\tthis.engine.element ().find ('[data-screen=\"game\"]').append (element);\n\t\t\t\telement.requestFullscreen ();\n\t\t\t} else {\n\t\t\t\t$_(element).addClass ('immersive');\n\t\t\t\tthis.engine.element ().find ('[data-screen=\"game\"]').prepend (element);\n\t\t\t}\n\t\t} else if (this.mode === 'displayable') {\n\t\t\tthis.engine.element ().find ('[data-screen=\"game\"]').append (element);\n\t\t} else if (this.mode === 'modal') {\n\t\t\tthis.engine.global ('block', true);\n\t\t\tthis.engine.element ().find ('[data-screen=\"game\"]').append (element);\n\t\t} else {\n\t\t\treturn Promise.reject ('Invalid video mode.');\n\t\t}\n\n\t\telement.play ();\n\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidApply ({ updateHistory = true, updateState = true } = {}) {\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history ('video').push (this._statement);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state ('videos').push (this._statement);\n\t\t}\n\n\t\tif (this.mode === 'background' || this.mode === 'modal' || this.mode === 'displayable') {\n\t\t\treturn Promise.resolve ({ advance: true });\n\t\t}\n\n\t\treturn Promise.resolve ({ advance: false });\n\t}\n\n\trevert () {\n\t\tthis.engine.element ().find (`[data-video=\"${this.name}\"][data-mode=\"${this.mode}\"]`).remove ();\n\t\treturn Promise.resolve ();\n\t}\n\n\tdidRevert () {\n\t\tfor (let i = this.engine.state ('videos').length - 1; i >= 0; i--) {\n\t\t\tconst last = this.engine.state ('videos')[i];\n\t\t\tconst [show, video, name, mode] = last.split (' ');\n\t\t\tif (name === this.name && mode === this.mode) {\n\t\t\t\tthis.engine.state ('videos').splice (i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tfor (let i = this.engine.history ('video').length - 1; i >= 0; i--) {\n\t\t\tconst last = this.engine.history ('video')[i];\n\t\t\tconst [show, video, name, mode] = last.split (' ');\n\t\t\tif (name === this.name && mode === this.mode) {\n\t\t\t\tthis.engine.history ('video').splice (i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nVideo.id = 'Video';\nVideo._configuration = {\n\tobjects: {\n\n\t},\n\tmodes: ['modal', 'displayable', 'immersive', 'fullscreen', 'background']\n};\n\nexport default Video;","import { Action } from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\n\nexport class Wait extends Action {\n\n\tstatic matchString ([ action ]) {\n\t\treturn action === 'wait';\n\t}\n\n\tconstructor ([ action, time ]) {\n\t\tsuper ();\n\t\t// Check if the provided time is a valid integer\n\t\tif (!isNaN (time)) {\n\t\t\tthis.time = parseInt (time);\n\t\t} else {\n\t\t\tif (typeof time !== 'undefined') {\n\t\t\t\tFancyError.show (\n\t\t\t\t\t'The specified time was not an integer',\n\t\t\t\t\t'Monogatari attempted to transform the given time into an integer value but failed.',\n\t\t\t\t\t{\n\t\t\t\t\t\t'Specified time': time,\n\t\t\t\t\t\t'Statement': `\"${this._statement}\"`,\n\t\t\t\t\t\t'Label': this.engine.state ('label'),\n\t\t\t\t\t\t'Step': this.engine.state ('step'),\n\t\t\t\t\t\t'Help': {\n\t\t\t\t\t\t\t'_': 'Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.',\n\t\t\t\t\t\t\t'_1': 'For example, the following statement would make the game wait for 5 seconds:',\n\t\t\t\t\t\t\t'_3':`\n\t\t\t\t\t\t\t\t
\"wait 5000\"
\n\t\t\t\t\t\t\t`\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\tapply () {\n\t\treturn new Promise ((resolve) => {\n\t\t\tif (typeof this.time === 'number') {\n\t\t\t\t// Block the game so the player can't advance\n\t\t\t\tthis.engine.global ('block', true);\n\t\t\t\t// Set the timeout for the specified time\n\t\t\t\tsetTimeout (() => {\n\t\t\t\t\t// Unlock the game when the timeout ends.\n\t\t\t\t\tthis.engine.global ('block', false);\n\t\t\t\t\tresolve ();\n\t\t\t\t}, this.time);\n\t\t\t} else {\n\t\t\t\tresolve ();\n\t\t\t}\n\t\t});\n\t}\n\n\tdidApply () {\n\t\tif (typeof this.time === 'number') {\n\t\t\treturn Promise.resolve ({ advance: true });\n\t\t}\n\t\treturn Promise.resolve ({ advance: false });\n\t}\n\n\tdidRevert () {\n\t\treturn Promise.resolve ({ advance: true, step: true });\n\t}\n}\n\nWait.id = 'Wait';\n\nexport default Wait;","import { $_ } from '@aegis-framework/artemis';\nimport { ShadowComponent as PandoraShadowComponent } from '@aegis-framework/pandora';\n\n/**\n * A component represents an object or content in the game such as screens, menus\n * and all other visual or structural elements.\n *\n * The life cycle of an component follows the Mounting cycle for actions.\n *\n * The mounting cycle has 3 steps:\n *\n * 1. Setup - Here the action needs to set up everything it will need for working\n * generally, in this section a component will generally add its HTML\n * content to the global Monogatari object and will set up any needed\n * configuration or state variables.\n *\n * 2. Bind - Once the component has been setup, its time to bind all the necessary\n * event listeners or perform more operations on the DOM once all elements\n * have been setup. Components will generally bind all the listeners needed\n * for their inner elements to work correctly.\n *\n * 3. Init - Finally, once the component was setup and it performed all the needed\n * bindings, it may start performing its operations and perform all\n * further needed operations.\n *\n * @class Component\n */\nclass ShadowComponent extends PandoraShadowComponent {\n\n\tstatic _priority = 0;\n\n\tstatic all () {\n\t\treturn $_(this.tag);\n\t}\n\n\tstatic get (id) {\n\t\treturn $_(`${this.tag} [data-instance=\"${id}\"]`);\n\t}\n\n\t/**\n\t * @static onStart - This function acts as an event listener for when the game\n\t * starts. If the component needs to do any particular activities when the game\n\t * starts, then this function should be implemented and it will be automatically\n\t * called once the player starts the game.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic onStart () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static onLoad - This function acts as an event listener for when a game\n\t * is loaded. If the component needs to perform any particular actions such as\n\t * restoring some state (i.e. showing images, playing media, etc.) when a game\n\t * is loaded, this function must be implemented and it will be automatically\n\t * called when a game is loaded.\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic onLoad () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static setup - The setup is the first step of the Mounting cycle, all\n\t * operations required for the component's setup should be implemented here.\n\t *\n\t * @return {Promise} - Result of the setup operation\n\t */\n\tstatic setup () {\n\t\treturn Promise.resolve ();\n\t}\n\n\n\t/**\n\t * @static shouldProceed - Either when the user clicks in the game to proceed or\n\t * the autoPlay feature is ready to go on, Monogatari will first check with\n\t * all actions if it's ok to proceed. Every action should implement its own\n\t * logic for it according to its requirements.\n\t *\n\t * @return {Promise} - Resolved if proceeding is alright or rejected if its not\n\t */\n\tstatic shouldProceed () {\n\t\tconst promises = [];\n\t\tthis.instances ((instance) => {\n\t\t\tpromises.push (instance.shouldProceed ());\n\t\t});\n\t\treturn Promise.all (promises);\n\t}\n\n\t/**\n\t * @static willProceed - Once the shouldProceed check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game proceeding.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic willProceed () {\n\t\tconst promises = [];\n\t\tthis.instances ((instance) => {\n\t\t\tpromises.push (instance.willProceed ());\n\t\t});\n\t\treturn Promise.all (promises);\n\t}\n\n\t/**\n\t * @static shouldRollback - Similarly to the shouldProceed () function, this one takes\n\t * action when the player tries to go back in the game.Monogatari will first\n\t * check with all actions if it's ok to go back. Every action should implement\n\t * its own logic for it according to its requirements.\n\t *\n\t * @return {Promise} - Resolved if going back is alright or rejected if its not\n\t */\n\tstatic shouldRollback () {\n\t\tconst promises = [];\n\t\tthis.instances ((instance) => {\n\t\t\tpromises.push (instance.shouldRollback ());\n\t\t});\n\t\treturn Promise.all (promises);\n\t}\n\n\t/**\n\t * @static willRollback - Once the shouldRollback check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game reverting the previous action\n\t *\n\t * @return {Promise}\n\t */\n\tstatic willRollback () {\n\t\tconst promises = [];\n\t\tthis.instances ((instance) => {\n\t\t\tpromises.push (instance.willRollback ());\n\t\t});\n\t\treturn Promise.all (promises);\n\t}\n\n\t/**\n\t * @static bind - The binding is the second step of the Mounting cycle, all\n\t * operations related to event bindings or other sort of binding with the\n\t * HTML content generated in the setup phase should be implemented here.\n\t *\n\t * @param {string} selector - The CSS selector with which Monogatari has been\n\t * initialized\n\t * @return {Promise} - Result of the binding operation\n\t */\n\tstatic bind () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static init - The initialization is the last step of the Mounting cycle,\n\t * all final operations should be implemented here.\n\t *\n\t * @param {string} selector - The CSS selector with which Monogatari has been\n\t * initialized\n\t * @return {Promise} - Result of the initialization operation\n\t */\n\tstatic init () {\n\t\treturn Promise.resolve ();\n\t}\n\n\n\t/**\n\t * @static onSave - This function acts as an event listener for when a game\n\t * is saved. If the component needs to perform any particular actions when that\n\t * happens, this function must be implemented and it will be automatically\n\t * called when a game is saved.\n\t *\n\t * @param {Object} slot - The slot object that has just been saved.\n\t * @param {string} slot.key - The key used to save the slot in the local storage\n\t * @param {Object} slot.value - The actual value saved\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic onSave () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static reset - When a game ends using the 'end' statement or before a game\n\t * is loaded, Monogatari will perform a reset on all its components. If the component\n\t * needs to reset a state or any other variables/elements to an initial state\n\t * once a game is over or a new one is loaded, the logic for it must be implemented\n\t * here and the function will be automatically called when needed.\n\t *\n\t * @return {Promise} - Result of the reset operation\n\t */\n\tstatic onReset () {\n\t\tconst promises = [];\n\n\t\tthis.instances ((instance) => {\n\t\t\tpromises.push (instance.onReset ());\n\t\t});\n\n\t\treturn Promise.all (promises);\n\t}\n\n\n\tonReset () {\n\t\treturn Promise.resolve ();\n\t}\n\n\t/**\n\t * @static element - Returns this component's element as an Artemis DOM\n\t * instance, using the result of the `selector ()` function as the selector\n\t *\n\t * @returns {DOM} - Artemis DOM instance\n\t */\n\telement () {\n\t\treturn $_(this);\n\t}\n\n\tremove () {\n\t\tthis.parentNode.removeChild (this);\n\t}\n\n\tstatic instances (callback = null) {\n\t\tif (typeof callback === 'function') {\n\t\t\treturn $_(this.tag).each (callback);\n\t\t}\n\t\treturn $_(this.tag);\n\t}\n\n\n\tinstance (id) {\n\t\treturn $_(`${this.constructor.tag}[data-${this.constructor.name.toLowerCase ()}=\"${id}\"`);\n\t}\n\n\t/**\n\t * @static content - Attempts to find a content element inside of this\n\t * component or its children\n\t *\n\t * @param {string} name - Name of the content element to find\n\t *\n\t * @returns {DOM} - An Artemis DOM instance with the found elements\n\t */\n\tcontent (name) {\n\t\treturn this.element ().find (`[data-content=\"${name}\"]`);\n\t}\n\n\tparent (component) {\n\t\tif (typeof component !== 'undefined') {\n\t\t\tthis._parent = component;\n\t\t} else {\n\t\t\treturn this._parent;\n\t\t}\n\t}\n\n\tget engine () {\n\t\treturn this.constructor.engine;\n\t}\n\n\tset engine (value) {\n\t\tthrow new Error ('Component engine reference is hold at static level and cannot be modified.');\n\t}\n\n\tshouldProceed () {\n\t\treturn Promise.resolve ();\n\t}\n\n\twillProceed () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tshouldRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\twillRollback () {\n\t\treturn Promise.resolve ();\n\t}\n\n\tconnectedCallback () {\n\t\t// Always add the animated class for all the components\n\t\tthis.classList.add ('animated');\n\n\t\treturn super.connectedCallback ();\n\t}\n}\n\nexport { ShadowComponent };"]} \ No newline at end of file +{ + "version": 3, + "sources": ["node:buffer", "node:util", "node:events", "node:stream", "node:crypto", "../../../node_modules/deeply/flags.js", "../../../node_modules/deeply/adapters/array.js", "../../../node_modules/deeply/adapters/date.js", "../../../node_modules/deeply/lib/reduce_object.js", "../../../node_modules/deeply/adapters/object.js", "../../../node_modules/deeply/extra/arrays_combine.js", "../../../node_modules/deeply/extra/arrays_append.js", "../../../node_modules/deeply/extra/arrays_append_unique.js", "../../../node_modules/fulcon/index.js", "../../../node_modules/deeply/extra/functions_clone.js", "../../../node_modules/deeply/extra/functions_extend.js", "../../../node_modules/deeply/adapters.js", "../../../node_modules/precise-typeof/index.js", "../../../node_modules/deeply/merge.js", "../../../node_modules/deeply/mutable.js", "../../../node_modules/deeply/immutable.js", "../../../node_modules/deeply/index.js", "../../../node_modules/mousetrap/mousetrap.js", "../../../node_modules/modern-screenshot/dist/index.mjs", "../../../node_modules/@fortawesome/fontawesome-free/js/all.js", "../../../node_modules/@aegis-framework/artemis/dist/artemis.js", "../../../node_modules/@tsparticles/engine/browser/Core/Utils/Constants.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Directions/MoveDirection.js", "../../../node_modules/@tsparticles/engine/browser/Utils/TypeUtils.js", "../../../node_modules/@tsparticles/engine/browser/Core/Utils/Vectors.js", "../../../node_modules/@tsparticles/engine/browser/Utils/NumberUtils.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Modes/AnimationMode.js", "../../../node_modules/@tsparticles/engine/browser/Enums/AnimationStatus.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Types/DestroyType.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Directions/OutModeDirection.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Modes/PixelMode.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Types/StartValueType.js", "../../../node_modules/@tsparticles/engine/browser/Utils/Utils.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Types/AlterType.js", "../../../node_modules/@tsparticles/engine/browser/Utils/ColorUtils.js", "../../../node_modules/@tsparticles/engine/browser/Utils/CanvasUtils.js", "../../../node_modules/@tsparticles/engine/browser/Core/Canvas.js", "../../../node_modules/@tsparticles/engine/browser/Enums/InteractivityDetect.js", "../../../node_modules/@tsparticles/engine/browser/Core/Utils/EventListeners.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Types/EventType.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/OptionsColor.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Background/Background.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/BackgroundMask/BackgroundMask.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/FullScreen/FullScreen.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/ClickEvent.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Types/DivType.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/DivEvent.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/Parallax.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/HoverEvent.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/ResizeEvent.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/Events.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Modes/Modes.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Interactivity.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/ManualParticle.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Modes/ResponsiveMode.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Responsive.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Modes/ThemeMode.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Theme/ThemeDefault.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Theme/Theme.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/AnimationOptions.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/ColorAnimation.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/HslAnimation.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/AnimatableColor.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Modes/CollisionMode.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Collisions/CollisionsAbsorb.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Collisions/CollisionsOverlap.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/ValueWithRandom.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Collisions/Collisions.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Effect/Effect.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveAngle.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveAttract.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveCenter.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveGravity.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/Path/MovePath.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveTrailFill.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveTrail.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Modes/OutMode.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/OutModes.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/Spin.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/Move.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Opacity/Opacity.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Number/ParticlesDensity.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Modes/LimitMode.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Number/ParticlesNumber.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Shadow.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Shape/Shape.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Size/SizeAnimation.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Size/Size.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Stroke.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/ZIndex/ZIndex.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/ParticlesOptions.js", "../../../node_modules/@tsparticles/engine/browser/Utils/OptionsUtils.js", "../../../node_modules/@tsparticles/engine/browser/Options/Classes/Options.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Types/InteractorType.js", "../../../node_modules/@tsparticles/engine/browser/Core/Utils/InteractionManager.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Types/ParticleOutType.js", "../../../node_modules/@tsparticles/engine/browser/Core/Particle.js", "../../../node_modules/@tsparticles/engine/browser/Core/Utils/Point.js", "../../../node_modules/@tsparticles/engine/browser/Types/RangeType.js", "../../../node_modules/@tsparticles/engine/browser/Core/Utils/Ranges.js", "../../../node_modules/@tsparticles/engine/browser/Core/Utils/QuadTree.js", "../../../node_modules/@tsparticles/engine/browser/Core/Particles.js", "../../../node_modules/@tsparticles/engine/browser/Core/Retina.js", "../../../node_modules/@tsparticles/engine/browser/Core/Container.js", "../../../node_modules/@tsparticles/engine/browser/Utils/EventDispatcher.js", "../../../node_modules/@tsparticles/engine/browser/Core/Engine.js", "../../../node_modules/@tsparticles/engine/browser/init.js", "../../../node_modules/@tsparticles/engine/browser/Core/Utils/ExternalInteractorBase.js", "../../../node_modules/@tsparticles/engine/browser/Core/Utils/ParticlesInteractorBase.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Directions/RotateDirection.js", "../../../node_modules/@tsparticles/engine/browser/Enums/Types/EasingType.js", "../../../node_modules/@tsparticles/engine/browser/index.js", "../../../node_modules/@tsparticles/move-base/browser/Utils.js", "../../../node_modules/@tsparticles/move-base/browser/BaseMover.js", "../../../node_modules/@tsparticles/move-base/browser/index.js", "../../../node_modules/@tsparticles/shape-circle/browser/Utils.js", "../../../node_modules/@tsparticles/shape-circle/browser/CircleDrawer.js", "../../../node_modules/@tsparticles/shape-circle/browser/index.js", "../../../node_modules/@tsparticles/updater-color/browser/ColorUpdater.js", "../../../node_modules/@tsparticles/updater-color/browser/index.js", "../../../node_modules/@tsparticles/plugin-hex-color/browser/HexColorManager.js", "../../../node_modules/@tsparticles/plugin-hex-color/browser/index.js", "../../../node_modules/@tsparticles/plugin-hsl-color/browser/HslColorManager.js", "../../../node_modules/@tsparticles/plugin-hsl-color/browser/index.js", "../../../node_modules/@tsparticles/updater-opacity/browser/OpacityUpdater.js", "../../../node_modules/@tsparticles/updater-opacity/browser/index.js", "../../../node_modules/@tsparticles/updater-out-modes/browser/Utils.js", "../../../node_modules/@tsparticles/updater-out-modes/browser/BounceOutMode.js", "../../../node_modules/@tsparticles/updater-out-modes/browser/DestroyOutMode.js", "../../../node_modules/@tsparticles/updater-out-modes/browser/NoneOutMode.js", "../../../node_modules/@tsparticles/updater-out-modes/browser/OutOutMode.js", "../../../node_modules/@tsparticles/updater-out-modes/browser/OutOfCanvasUpdater.js", "../../../node_modules/@tsparticles/updater-out-modes/browser/index.js", "../../../node_modules/@tsparticles/plugin-rgb-color/browser/RgbColorManager.js", "../../../node_modules/@tsparticles/plugin-rgb-color/browser/index.js", "../../../node_modules/@tsparticles/updater-size/browser/SizeUpdater.js", "../../../node_modules/@tsparticles/updater-size/browser/index.js", "../../../node_modules/@tsparticles/basic/browser/index.js", "../../../node_modules/@tsparticles/plugin-easing-quad/browser/index.js", "../../../node_modules/@tsparticles/shape-emoji/browser/Utils.js", "../../../node_modules/@tsparticles/shape-emoji/browser/EmojiDrawer.js", "../../../node_modules/@tsparticles/shape-emoji/browser/index.js", "../../../node_modules/@tsparticles/interaction-external-attract/browser/Utils.js", "../../../node_modules/@tsparticles/interaction-external-attract/browser/Options/Classes/Attract.js", "../../../node_modules/@tsparticles/interaction-external-attract/browser/Attractor.js", "../../../node_modules/@tsparticles/interaction-external-attract/browser/index.js", "../../../node_modules/@tsparticles/interaction-external-bounce/browser/Utils.js", "../../../node_modules/@tsparticles/interaction-external-bounce/browser/Options/Classes/Bounce.js", "../../../node_modules/@tsparticles/interaction-external-bounce/browser/Bouncer.js", "../../../node_modules/@tsparticles/interaction-external-bounce/browser/index.js", "../../../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/BubbleBase.js", "../../../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/BubbleDiv.js", "../../../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/Bubble.js", "../../../node_modules/@tsparticles/interaction-external-bubble/browser/Enums.js", "../../../node_modules/@tsparticles/interaction-external-bubble/browser/Utils.js", "../../../node_modules/@tsparticles/interaction-external-bubble/browser/Bubbler.js", "../../../node_modules/@tsparticles/interaction-external-bubble/browser/index.js", "../../../node_modules/@tsparticles/interaction-external-connect/browser/Options/Classes/ConnectLinks.js", "../../../node_modules/@tsparticles/interaction-external-connect/browser/Options/Classes/Connect.js", "../../../node_modules/@tsparticles/interaction-external-connect/browser/Utils.js", "../../../node_modules/@tsparticles/interaction-external-connect/browser/Connector.js", "../../../node_modules/@tsparticles/interaction-external-connect/browser/index.js", "../../../node_modules/@tsparticles/interaction-external-grab/browser/Options/Classes/GrabLinks.js", "../../../node_modules/@tsparticles/interaction-external-grab/browser/Options/Classes/Grab.js", "../../../node_modules/@tsparticles/interaction-external-grab/browser/Utils.js", "../../../node_modules/@tsparticles/interaction-external-grab/browser/Grabber.js", "../../../node_modules/@tsparticles/interaction-external-grab/browser/index.js", "../../../node_modules/@tsparticles/interaction-external-pause/browser/Pauser.js", "../../../node_modules/@tsparticles/interaction-external-pause/browser/index.js", "../../../node_modules/@tsparticles/interaction-external-push/browser/Options/Classes/Push.js", "../../../node_modules/@tsparticles/interaction-external-push/browser/Pusher.js", "../../../node_modules/@tsparticles/interaction-external-push/browser/index.js", "../../../node_modules/@tsparticles/interaction-external-remove/browser/Options/Classes/Remove.js", "../../../node_modules/@tsparticles/interaction-external-remove/browser/Remover.js", "../../../node_modules/@tsparticles/interaction-external-remove/browser/index.js", "../../../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/RepulseBase.js", "../../../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/RepulseDiv.js", "../../../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/Repulse.js", "../../../node_modules/@tsparticles/interaction-external-repulse/browser/Repulser.js", "../../../node_modules/@tsparticles/interaction-external-repulse/browser/index.js", "../../../node_modules/@tsparticles/interaction-external-slow/browser/Options/Classes/Slow.js", "../../../node_modules/@tsparticles/interaction-external-slow/browser/Slower.js", "../../../node_modules/@tsparticles/interaction-external-slow/browser/index.js", "../../../node_modules/@tsparticles/shape-image/browser/Utils.js", "../../../node_modules/@tsparticles/shape-image/browser/GifUtils/Constants.js", "../../../node_modules/@tsparticles/shape-image/browser/GifUtils/ByteStream.js", "../../../node_modules/@tsparticles/shape-image/browser/GifUtils/Enums/DisposalMethod.js", "../../../node_modules/@tsparticles/shape-image/browser/GifUtils/Types/GIFDataHeaders.js", "../../../node_modules/@tsparticles/shape-image/browser/GifUtils/Utils.js", "../../../node_modules/@tsparticles/shape-image/browser/ImageDrawer.js", "../../../node_modules/@tsparticles/shape-image/browser/Options/Classes/Preload.js", "../../../node_modules/@tsparticles/shape-image/browser/ImagePreloader.js", "../../../node_modules/@tsparticles/shape-image/browser/index.js", "../../../node_modules/@tsparticles/updater-life/browser/Options/Classes/LifeDelay.js", "../../../node_modules/@tsparticles/updater-life/browser/Options/Classes/LifeDuration.js", "../../../node_modules/@tsparticles/updater-life/browser/Options/Classes/Life.js", "../../../node_modules/@tsparticles/updater-life/browser/Utils.js", "../../../node_modules/@tsparticles/updater-life/browser/LifeUpdater.js", "../../../node_modules/@tsparticles/updater-life/browser/index.js", "../../../node_modules/@tsparticles/shape-line/browser/Utils.js", "../../../node_modules/@tsparticles/shape-line/browser/LineDrawer.js", "../../../node_modules/@tsparticles/shape-line/browser/index.js", "../../../node_modules/@tsparticles/move-parallax/browser/ParallaxMover.js", "../../../node_modules/@tsparticles/move-parallax/browser/index.js", "../../../node_modules/@tsparticles/interaction-particles-attract/browser/Attractor.js", "../../../node_modules/@tsparticles/interaction-particles-attract/browser/index.js", "../../../node_modules/@tsparticles/interaction-particles-collisions/browser/Absorb.js", "../../../node_modules/@tsparticles/interaction-particles-collisions/browser/Bounce.js", "../../../node_modules/@tsparticles/interaction-particles-collisions/browser/Destroy.js", "../../../node_modules/@tsparticles/interaction-particles-collisions/browser/ResolveCollision.js", "../../../node_modules/@tsparticles/interaction-particles-collisions/browser/Collider.js", "../../../node_modules/@tsparticles/interaction-particles-collisions/browser/index.js", "../../../node_modules/@tsparticles/interaction-particles-links/browser/CircleWarp.js", "../../../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/LinksShadow.js", "../../../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/LinksTriangle.js", "../../../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/Links.js", "../../../node_modules/@tsparticles/interaction-particles-links/browser/Linker.js", "../../../node_modules/@tsparticles/interaction-particles-links/browser/interaction.js", "../../../node_modules/@tsparticles/interaction-particles-links/browser/Utils.js", "../../../node_modules/@tsparticles/interaction-particles-links/browser/LinkInstance.js", "../../../node_modules/@tsparticles/interaction-particles-links/browser/LinksPlugin.js", "../../../node_modules/@tsparticles/interaction-particles-links/browser/plugin.js", "../../../node_modules/@tsparticles/interaction-particles-links/browser/index.js", "../../../node_modules/@tsparticles/shape-polygon/browser/Utils.js", "../../../node_modules/@tsparticles/shape-polygon/browser/PolygonDrawerBase.js", "../../../node_modules/@tsparticles/shape-polygon/browser/PolygonDrawer.js", "../../../node_modules/@tsparticles/shape-polygon/browser/TriangleDrawer.js", "../../../node_modules/@tsparticles/shape-polygon/browser/index.js", "../../../node_modules/@tsparticles/updater-rotate/browser/Options/Classes/RotateAnimation.js", "../../../node_modules/@tsparticles/updater-rotate/browser/Options/Classes/Rotate.js", "../../../node_modules/@tsparticles/updater-rotate/browser/RotateUpdater.js", "../../../node_modules/@tsparticles/updater-rotate/browser/index.js", "../../../node_modules/@tsparticles/shape-square/browser/Utils.js", "../../../node_modules/@tsparticles/shape-square/browser/SquareDrawer.js", "../../../node_modules/@tsparticles/shape-square/browser/index.js", "../../../node_modules/@tsparticles/shape-star/browser/Utils.js", "../../../node_modules/@tsparticles/shape-star/browser/StarDrawer.js", "../../../node_modules/@tsparticles/shape-star/browser/index.js", "../../../node_modules/@tsparticles/updater-stroke-color/browser/StrokeColorUpdater.js", "../../../node_modules/@tsparticles/updater-stroke-color/browser/index.js", "../../../node_modules/@tsparticles/slim/browser/index.js", "../../../node_modules/random-js/dist/random-js.esm.js", "../../../node_modules/luxon/build/es6/luxon.mjs", "../../../node_modules/@aegis-framework/pandora/dist/pandora.js", "../../../src/lib/FancyError.ts", "../../../src/lib/AudioPlayer.ts", "../../../src/monogatari.ts", "../../../src/engine/characters.ts", "../../../src/engine/i18n.ts", "../../../src/engine/assets.ts", "../../../src/engine/input.ts", "../../../src/engine/ui.ts", "../../../src/migrations/20211223-add-previous-statement-to-show-history.ts", "../../../src/migrations/20200310-add-pause-state-to-media-state.ts", "../../../src/migrations/index.ts", "../../../src/lib/FileSystemStorage.ts", "../../../src/lib/DesktopBridge.ts", "../../../src/engine/persistence.ts", "../../../src/engine/lifecycle.ts", "../../../src/translations/Ų§Ł„Ų¹Ų±ŲØŁŠŲ©.ts", "../../../src/translations/Š‘ŠµŠ»Š°Ń€ŃƒŃŠŗŠ°Ń.ts", "../../../src/translations/Portugues_Brasil.ts", "../../../src/translations/繁體中文.ts", "../../../src/translations/简体中文.ts", "../../../src/translations/Nederlands.ts", "../../../src/translations/English.ts", "../../../src/translations/Francais.ts", "../../../src/translations/Deutsch.ts", "../../../src/translations/Hungarian.ts", "../../../src/translations/Bahasa_Indonesia.ts", "../../../src/translations/ę—„ęœ¬čŖž.ts", "../../../src/translations/ķ•œźµ­ģ–“.ts", "../../../src/translations/Portugues.ts", "../../../src/translations/Russian.ts", "../../../src/translations/Espanol.ts", "../../../src/translations/tokipona.ts", "../../../src/translations/Bulgarian.ts", "../../../src/lib/Component.ts", "../../../src/components/alert-modal/index.ts", "../../../src/components/canvas-container/index.ts", "../../../src/components/centered-dialog/index.ts", "../../../src/components/character-sprite/index.ts", "../../../src/components/choice-container/index.ts", "../../../src/lib/ScreenComponent.ts", "../../../src/components/credits-screen/index.ts", "../../../src/components/dialog-log/index.ts", "../../../src/components/gallery-screen/index.ts", "../../../src/components/game-screen/index.ts", "../../../src/components/help-screen/index.ts", "../../../src/components/language-selection-screen/index.ts", "../../../src/components/load-screen/index.ts", "../../../src/components/loading-screen/index.ts", "../../../src/lib/MenuComponent.ts", "../../../src/components/main-menu/index.ts", "../../../src/components/main-screen/index.ts", "../../../src/components/message-modal/index.ts", "../../../src/components/quick-menu/index.ts", "../../../src/components/save-screen/index.ts", "../../../src/components/save-slot/index.ts", "../../../src/components/settings-screen/index.ts", "../../../src/components/slot-container/index.ts", "../../../src/components/text-box/index.ts", "../../../src/components/text-input/index.ts", "../../../src/components/timer-display/index.ts", "../../../src/components/visual-novel/index.ts", "../../../src/lib/typing-utils.ts", "../../../src/components/type-writer/index.ts", "../../../src/components/type-character/index.ts", "../../../src/lib/Action.ts", "../../../src/actions/Canvas.ts", "../../../src/actions/Choice.ts", "../../../src/actions/Clear.ts", "../../../src/actions/Conditional.ts", "../../../src/actions/Dialog.ts", "../../../src/actions/End.ts", "../../../src/actions/Function.ts", "../../../src/actions/Gallery.ts", "../../../src/actions/HideCanvas.ts", "../../../src/actions/HideCharacter.ts", "../../../src/actions/HideCharacterLayer.ts", "../../../src/actions/HideImage.ts", "../../../src/actions/HideParticles.ts", "../../../src/actions/HideTextBox.ts", "../../../src/actions/Video.ts", "../../../src/actions/HideVideo.ts", "../../../src/actions/InputModal.ts", "../../../src/actions/Jump.ts", "../../../src/actions/Message.ts", "../../../src/actions/Next.ts", "../../../src/actions/Notify.ts", "../../../src/actions/Particles.ts", "../../../src/actions/Pause.ts", "../../../src/actions/Placeholder.ts", "../../../src/actions/Play.ts", "../../../src/actions/Preload.ts", "../../../src/actions/Scene.ts", "../../../src/actions/ShowBackground.ts", "../../../src/actions/ShowCharacter.ts", "../../../src/actions/ShowCharacterLayer.ts", "../../../src/actions/ShowImage.ts", "../../../src/actions/ShowTextBox.ts", "../../../src/actions/Stop.ts", "../../../src/actions/Unload.ts", "../../../src/actions/Vibrate.ts", "../../../src/actions/Wait.ts", "../../../src/lib/ShadowComponent.ts", "../../../src/index.ts", "../../../src/browser.ts"], + "sourcesContent": [ + "var lookup=[],revLookup=[],code=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";for(i=0,len=code.length;i0)throw Error(\"Invalid string. Length must be a multiple of 4\");var validLen=b64.indexOf(\"=\");if(validLen===-1)validLen=len2;var placeHoldersLen=validLen===len2?0:4-validLen%4;return[validLen,placeHoldersLen]}function _byteLength(validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Uint8Array(_byteLength(validLen,placeHoldersLen)),curByte=0,len2=placeHoldersLen>0?validLen-4:validLen,i2;for(i2=0;i2>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255;if(placeHoldersLen===2)tmp=revLookup[b64.charCodeAt(i2)]<<2|revLookup[b64.charCodeAt(i2+1)]>>4,arr[curByte++]=tmp&255;if(placeHoldersLen===1)tmp=revLookup[b64.charCodeAt(i2)]<<10|revLookup[b64.charCodeAt(i2+1)]<<4|revLookup[b64.charCodeAt(i2+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255;return arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){var tmp,output=[];for(var i2=start;i2len22?len22:i2+maxChunkLength));if(extraBytes===1)tmp=uint8[len2-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+\"==\");else if(extraBytes===2)tmp=(uint8[len2-2]<<8)+uint8[len2-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+\"=\");return parts.join(\"\")}function read(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=nBytes*8-mLen-1,eMax=(1<>1,nBits=-7,i2=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i2];i2+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i2],i2+=d,nBits-=8);m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i2],i2+=d,nBits-=8);if(e===0)e=1-eBias;else if(e===eMax)return m?NaN:(s?-1:1)*(1/0);else m=m+Math.pow(2,mLen),e=e-eBias;return(s?-1:1)*m*Math.pow(2,e-mLen)}function write(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=nBytes*8-mLen-1,eMax=(1<>1,rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0,i2=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||value===0&&1/value<0?1:0;if(value=Math.abs(value),isNaN(value)||value===1/0)m=isNaN(value)?1:0,e=eMax;else{if(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1)e--,c*=2;if(e+eBias>=1)value+=rt/c;else value+=rt*Math.pow(2,1-eBias);if(value*c>=2)e++,c/=2;if(e+eBias>=eMax)m=0,e=eMax;else if(e+eBias>=1)m=(value*c-1)*Math.pow(2,mLen),e=e+eBias;else m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0}for(;mLen>=8;buffer[offset+i2]=m&255,i2+=d,m/=256,mLen-=8);e=e<0;buffer[offset+i2]=e&255,i2+=d,e/=256,eLen-=8);buffer[offset+i2-d]|=s*128}var customInspectSymbol=typeof Symbol===\"function\"&&typeof Symbol.for===\"function\"?Symbol.for(\"nodejs.util.inspect.custom\"):null,INSPECT_MAX_BYTES=50,kMaxLength=2147483647,kStringMaxLength=536870888,btoa=globalThis.btoa,atob=globalThis.atob,File=globalThis.File,Blob=globalThis.Blob,constants={MAX_LENGTH:kMaxLength,MAX_STRING_LENGTH:kStringMaxLength};function createBuffer(length){if(length>kMaxLength)throw RangeError('The value \"'+length+'\" is invalid for option \"size\"');let buf=new Uint8Array(length);return Object.setPrototypeOf(buf,Buffer.prototype),buf}function E(sym,getMessage,Base){return class extends Base{constructor(){super();Object.defineProperty(this,\"message\",{value:getMessage.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${sym}]`,this.stack,delete this.name}get code(){return sym}set code(value){Object.defineProperty(this,\"code\",{configurable:!0,enumerable:!0,value,writable:!0})}toString(){return`${this.name} [${sym}]: ${this.message}`}}}var ERR_BUFFER_OUT_OF_BOUNDS=E(\"ERR_BUFFER_OUT_OF_BOUNDS\",function(name){if(name)return`${name} is outside of buffer bounds`;return\"Attempt to access memory outside buffer bounds\"},RangeError),ERR_INVALID_ARG_TYPE=E(\"ERR_INVALID_ARG_TYPE\",function(name,actual){return`The \"${name}\" argument must be of type number. Received type ${typeof actual}`},TypeError),ERR_OUT_OF_RANGE=E(\"ERR_OUT_OF_RANGE\",function(str,range,input){let msg=`The value of \"${str}\" is out of range.`,received=input;if(Number.isInteger(input)&&Math.abs(input)>4294967296)received=addNumericalSeparator(String(input));else if(typeof input===\"bigint\"){if(received=String(input),input>BigInt(2)**BigInt(32)||input<-(BigInt(2)**BigInt(32)))received=addNumericalSeparator(received);received+=\"n\"}return msg+=` It must be ${range}. Received ${received}`,msg},RangeError);function Buffer(arg,encodingOrOffset,length){if(typeof arg===\"number\"){if(typeof encodingOrOffset===\"string\")throw TypeError('The \"string\" argument must be of type string. Received type number');return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}Object.defineProperty(Buffer.prototype,\"parent\",{enumerable:!0,get:function(){if(!Buffer.isBuffer(this))return;return this.buffer}});Object.defineProperty(Buffer.prototype,\"offset\",{enumerable:!0,get:function(){if(!Buffer.isBuffer(this))return;return this.byteOffset}});Buffer.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value===\"string\")return fromString(value,encodingOrOffset);if(ArrayBuffer.isView(value))return fromArrayView(value);if(value==null)throw TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof value);if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer))return fromArrayBuffer(value,encodingOrOffset,length);if(typeof SharedArrayBuffer<\"u\"&&(isInstance(value,SharedArrayBuffer)||value&&isInstance(value.buffer,SharedArrayBuffer)))return fromArrayBuffer(value,encodingOrOffset,length);if(typeof value===\"number\")throw TypeError('The \"value\" argument must not be of type number. Received type number');let valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value)return Buffer.from(valueOf,encodingOrOffset,length);let b=fromObject(value);if(b)return b;if(typeof Symbol<\"u\"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]===\"function\")return Buffer.from(value[Symbol.toPrimitive](\"string\"),encodingOrOffset,length);throw TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof value)}Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Object.setPrototypeOf(Buffer.prototype,Uint8Array.prototype);Object.setPrototypeOf(Buffer,Uint8Array);function assertSize(size){if(typeof size!==\"number\")throw TypeError('\"size\" argument must be of type number');else if(size<0)throw RangeError('The value \"'+size+'\" is invalid for option \"size\"')}function alloc(size,fill,encoding){if(assertSize(size),size<=0)return createBuffer(size);if(fill!==void 0)return typeof encoding===\"string\"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill);return createBuffer(size)}Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){return assertSize(size),createBuffer(size<0?0:checked(size)|0)}Buffer.allocUnsafe=function(size){return allocUnsafe(size)};Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if(typeof encoding!==\"string\"||encoding===\"\")encoding=\"utf8\";if(!Buffer.isEncoding(encoding))throw TypeError(\"Unknown encoding: \"+encoding);let length=byteLength(string,encoding)|0,buf=createBuffer(length),actual=buf.write(string,encoding);if(actual!==length)buf=buf.slice(0,actual);return buf}function fromArrayLike(array){let length=array.length<0?0:checked(array.length)|0,buf=createBuffer(length);for(let i2=0;i2=kMaxLength)throw RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+kMaxLength.toString(16)+\" bytes\");return length|0}Buffer.isBuffer=function(b){return b!=null&&b._isBuffer===!0&&b!==Buffer.prototype};Buffer.compare=function(a,b){if(isInstance(a,Uint8Array))a=Buffer.from(a,a.offset,a.byteLength);if(isInstance(b,Uint8Array))b=Buffer.from(b,b.offset,b.byteLength);if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b))throw TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');if(a===b)return 0;let x=a.length,y=b.length;for(let i2=0,len2=Math.min(x,y);i2buffer.length){if(!Buffer.isBuffer(buf))buf=Buffer.from(buf);buf.copy(buffer,pos)}else Uint8Array.prototype.set.call(buffer,buf,pos);else if(!Buffer.isBuffer(buf))throw TypeError('\"list\" argument must be an Array of Buffers');else buf.copy(buffer,pos);pos+=buf.length}return buffer};function byteLength(string,encoding){if(Buffer.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if(typeof string!==\"string\")throw TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof string);let len2=string.length,mustMatch=arguments.length>2&&arguments[2]===!0;if(!mustMatch&&len2===0)return 0;let loweredCase=!1;for(;;)switch(encoding){case\"ascii\":case\"latin1\":case\"binary\":return len2;case\"utf8\":case\"utf-8\":return utf8ToBytes(string).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return len2*2;case\"hex\":return len2>>>1;case\"base64\":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(\"\"+encoding).toLowerCase(),loweredCase=!0}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){let loweredCase=!1;if(start===void 0||start<0)start=0;if(start>this.length)return\"\";if(end===void 0||end>this.length)end=this.length;if(end<=0)return\"\";if(end>>>=0,start>>>=0,end<=start)return\"\";if(!encoding)encoding=\"utf8\";while(!0)switch(encoding){case\"hex\":return hexSlice(this,start,end);case\"utf8\":case\"utf-8\":return utf8Slice(this,start,end);case\"ascii\":return asciiSlice(this,start,end);case\"latin1\":case\"binary\":return latin1Slice(this,start,end);case\"base64\":return base64Slice(this,start,end);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return utf16leSlice(this,start,end);default:if(loweredCase)throw TypeError(\"Unknown encoding: \"+encoding);encoding=(encoding+\"\").toLowerCase(),loweredCase=!0}}Buffer.prototype._isBuffer=!0;function swap(b,n,m){let i2=b[n];b[n]=b[m],b[m]=i2}Buffer.prototype.swap16=function(){let len2=this.length;if(len2%2!==0)throw RangeError(\"Buffer size must be a multiple of 16-bits\");for(let i2=0;i2max)str+=\" ... \";return\"\"};if(customInspectSymbol)Buffer.prototype[customInspectSymbol]=Buffer.prototype.inspect;Buffer.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array))target=Buffer.from(target,target.offset,target.byteLength);if(!Buffer.isBuffer(target))throw TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type '+typeof target);if(start===void 0)start=0;if(end===void 0)end=target?target.length:0;if(thisStart===void 0)thisStart=0;if(thisEnd===void 0)thisEnd=this.length;if(start<0||end>target.length||thisStart<0||thisEnd>this.length)throw RangeError(\"out of range index\");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;let x=thisEnd-thisStart,y=end-start,len2=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end);for(let i2=0;i22147483647)byteOffset=2147483647;else if(byteOffset<-2147483648)byteOffset=-2147483648;if(byteOffset=+byteOffset,Number.isNaN(byteOffset))byteOffset=dir?0:buffer.length-1;if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length)if(dir)return-1;else byteOffset=buffer.length-1;else if(byteOffset<0)if(dir)byteOffset=0;else return-1;if(typeof val===\"string\")val=Buffer.from(val,encoding);if(Buffer.isBuffer(val)){if(val.length===0)return-1;return arrayIndexOf(buffer,val,byteOffset,encoding,dir)}else if(typeof val===\"number\"){if(val=val&255,typeof Uint8Array.prototype.indexOf===\"function\")if(dir)return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset);else return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset);return arrayIndexOf(buffer,[val],byteOffset,encoding,dir)}throw TypeError(\"val must be string, number or Buffer\")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){let indexSize=1,arrLength=arr.length,valLength=val.length;if(encoding!==void 0){if(encoding=String(encoding).toLowerCase(),encoding===\"ucs2\"||encoding===\"ucs-2\"||encoding===\"utf16le\"||encoding===\"utf-16le\"){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}}function read2(buf,i3){if(indexSize===1)return buf[i3];else return buf.readUInt16BE(i3*indexSize)}let i2;if(dir){let foundIndex=-1;for(i2=byteOffset;i2arrLength)byteOffset=arrLength-valLength;for(i2=byteOffset;i2>=0;i2--){let found=!0;for(let j=0;jremaining)length=remaining;let strLen=string.length;if(length>strLen/2)length=strLen/2;let i2;for(i2=0;i2>>0,isFinite(length)){if(length=length>>>0,encoding===void 0)encoding=\"utf8\"}else encoding=length,length=void 0;else throw Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");let remaining=this.length-offset;if(length===void 0||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length)throw RangeError(\"Attempt to write outside buffer bounds\");if(!encoding)encoding=\"utf8\";let loweredCase=!1;for(;;)switch(encoding){case\"hex\":return hexWrite(this,string,offset,length);case\"utf8\":case\"utf-8\":return utf8Write(this,string,offset,length);case\"ascii\":case\"latin1\":case\"binary\":return asciiWrite(this,string,offset,length);case\"base64\":return base64Write(this,string,offset,length);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw TypeError(\"Unknown encoding: \"+encoding);encoding=(\"\"+encoding).toLowerCase(),loweredCase=!0}};Buffer.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length)return fromByteArray(buf);else return fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);let res=[],i2=start;while(i2239?4:firstByte>223?3:firstByte>191?2:1;if(i2+bytesPerSequence<=end){let secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128)codePoint=firstByte;break;case 2:if(secondByte=buf[i2+1],(secondByte&192)===128){if(tempCodePoint=(firstByte&31)<<6|secondByte&63,tempCodePoint>127)codePoint=tempCodePoint}break;case 3:if(secondByte=buf[i2+1],thirdByte=buf[i2+2],(secondByte&192)===128&&(thirdByte&192)===128){if(tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63,tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343))codePoint=tempCodePoint}break;case 4:if(secondByte=buf[i2+1],thirdByte=buf[i2+2],fourthByte=buf[i2+3],(secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){if(tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63,tempCodePoint>65535&&tempCodePoint<1114112)codePoint=tempCodePoint}}}if(codePoint===null)codePoint=65533,bytesPerSequence=1;else if(codePoint>65535)codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|codePoint&1023;res.push(codePoint),i2+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){let len2=codePoints.length;if(len2<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);let res=\"\",i2=0;while(i2len2)end=len2;let out=\"\";for(let i2=start;i2len2)start=len2;if(end<0){if(end+=len2,end<0)end=0}else if(end>len2)end=len2;if(endlength)throw RangeError(\"Trying to access beyond buffer length\")}Buffer.prototype.readUintLE=Buffer.prototype.readUIntLE=function(offset,byteLength2,noAssert){if(offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert)checkOffset(offset,byteLength2,this.length);let val=this[offset],mul=1,i2=0;while(++i2>>0,byteLength2=byteLength2>>>0,!noAssert)checkOffset(offset,byteLength2,this.length);let val=this[offset+--byteLength2],mul=1;while(byteLength2>0&&(mul*=256))val+=this[offset+--byteLength2]*mul;return val};Buffer.prototype.readUint8=Buffer.prototype.readUInt8=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUint16LE=Buffer.prototype.readUInt16LE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUint16BE=Buffer.prototype.readUInt16BE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUint32LE=Buffer.prototype.readUInt32LE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUint32BE=Buffer.prototype.readUInt32BE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readBigUInt64LE=defineBigIntMethod(function(offset){offset=offset>>>0,validateNumber(offset,\"offset\");let first=this[offset],last=this[offset+7];if(first===void 0||last===void 0)boundsError(offset,this.length-8);let lo=first+this[++offset]*256+this[++offset]*65536+this[++offset]*16777216,hi=this[++offset]+this[++offset]*256+this[++offset]*65536+last*16777216;return BigInt(lo)+(BigInt(hi)<>>0,validateNumber(offset,\"offset\");let first=this[offset],last=this[offset+7];if(first===void 0||last===void 0)boundsError(offset,this.length-8);let hi=first*16777216+this[++offset]*65536+this[++offset]*256+this[++offset],lo=this[++offset]*16777216+this[++offset]*65536+this[++offset]*256+last;return(BigInt(hi)<>>0,byteLength2=byteLength2>>>0,!noAssert)checkOffset(offset,byteLength2,this.length);let val=this[offset],mul=1,i2=0;while(++i2=mul)val-=Math.pow(2,8*byteLength2);return val};Buffer.prototype.readIntBE=function(offset,byteLength2,noAssert){if(offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert)checkOffset(offset,byteLength2,this.length);let i2=byteLength2,mul=1,val=this[offset+--i2];while(i2>0&&(mul*=256))val+=this[offset+--i2]*mul;if(mul*=128,val>=mul)val-=Math.pow(2,8*byteLength2);return val};Buffer.prototype.readInt8=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,2,this.length);let val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,2,this.length);let val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readBigInt64LE=defineBigIntMethod(function(offset){offset=offset>>>0,validateNumber(offset,\"offset\");let first=this[offset],last=this[offset+7];if(first===void 0||last===void 0)boundsError(offset,this.length-8);let val=this[offset+4]+this[offset+5]*256+this[offset+6]*65536+(last<<24);return(BigInt(val)<>>0,validateNumber(offset,\"offset\");let first=this[offset],last=this[offset+7];if(first===void 0||last===void 0)boundsError(offset,this.length-8);let val=(first<<24)+this[++offset]*65536+this[++offset]*256+this[++offset];return(BigInt(val)<>>0,!noAssert)checkOffset(offset,4,this.length);return read(this,offset,!0,23,4)};Buffer.prototype.readFloatBE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,4,this.length);return read(this,offset,!1,23,4)};Buffer.prototype.readDoubleLE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,8,this.length);return read(this,offset,!0,52,8)};Buffer.prototype.readDoubleBE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,8,this.length);return read(this,offset,!1,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw TypeError('\"buffer\" argument must be a Buffer instance');if(value>max||valuebuf.length)throw RangeError(\"Index out of range\")}Buffer.prototype.writeUintLE=Buffer.prototype.writeUIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){let maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}let mul=1,i2=0;this[offset]=value&255;while(++i2>>0,byteLength2=byteLength2>>>0,!noAssert){let maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}let i2=byteLength2-1,mul=1;this[offset+i2]=value&255;while(--i2>=0&&(mul*=256))this[offset+i2]=value/mul&255;return offset+byteLength2};Buffer.prototype.writeUint8=Buffer.prototype.writeUInt8=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,1,255,0);return this[offset]=value&255,offset+1};Buffer.prototype.writeUint16LE=Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,2,65535,0);return this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer.prototype.writeUint16BE=Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,2,65535,0);return this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer.prototype.writeUint32LE=Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,4,4294967295,0);return this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=value&255,offset+4};Buffer.prototype.writeUint32BE=Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,4,4294967295,0);return this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};function wrtBigUInt64LE(buf,value,offset,min,max){checkIntBI(value,min,max,buf,offset,7);let lo=Number(value&BigInt(4294967295));buf[offset++]=lo,lo=lo>>8,buf[offset++]=lo,lo=lo>>8,buf[offset++]=lo,lo=lo>>8,buf[offset++]=lo;let hi=Number(value>>BigInt(32)&BigInt(4294967295));return buf[offset++]=hi,hi=hi>>8,buf[offset++]=hi,hi=hi>>8,buf[offset++]=hi,hi=hi>>8,buf[offset++]=hi,offset}function wrtBigUInt64BE(buf,value,offset,min,max){checkIntBI(value,min,max,buf,offset,7);let lo=Number(value&BigInt(4294967295));buf[offset+7]=lo,lo=lo>>8,buf[offset+6]=lo,lo=lo>>8,buf[offset+5]=lo,lo=lo>>8,buf[offset+4]=lo;let hi=Number(value>>BigInt(32)&BigInt(4294967295));return buf[offset+3]=hi,hi=hi>>8,buf[offset+2]=hi,hi=hi>>8,buf[offset+1]=hi,hi=hi>>8,buf[offset]=hi,offset+8}Buffer.prototype.writeBigUInt64LE=defineBigIntMethod(function(value,offset=0){return wrtBigUInt64LE(this,value,offset,BigInt(0),BigInt(\"0xffffffffffffffff\"))});Buffer.prototype.writeBigUInt64BE=defineBigIntMethod(function(value,offset=0){return wrtBigUInt64BE(this,value,offset,BigInt(0),BigInt(\"0xffffffffffffffff\"))});Buffer.prototype.writeIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){let limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}let i2=0,mul=1,sub=0;this[offset]=value&255;while(++i2>0)-sub&255}return offset+byteLength2};Buffer.prototype.writeIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){let limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}let i2=byteLength2-1,mul=1,sub=0;this[offset+i2]=value&255;while(--i2>=0&&(mul*=256)){if(value<0&&sub===0&&this[offset+i2+1]!==0)sub=1;this[offset+i2]=(value/mul>>0)-sub&255}return offset+byteLength2};Buffer.prototype.writeInt8=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,1,127,-128);if(value<0)value=255+value+1;return this[offset]=value&255,offset+1};Buffer.prototype.writeInt16LE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,2,32767,-32768);return this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer.prototype.writeInt16BE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,2,32767,-32768);return this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer.prototype.writeInt32LE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);return this[offset]=value&255,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4};Buffer.prototype.writeInt32BE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;return this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};Buffer.prototype.writeBigInt64LE=defineBigIntMethod(function(value,offset=0){return wrtBigUInt64LE(this,value,offset,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))});Buffer.prototype.writeBigInt64BE=defineBigIntMethod(function(value,offset=0){return wrtBigUInt64BE(this,value,offset,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))});function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw RangeError(\"Index out of range\");if(offset<0)throw RangeError(\"Index out of range\")}function writeFloat(buf,value,offset,littleEndian,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkIEEE754(buf,value,offset,4,340282346638528860000000000000000000000,-340282346638528860000000000000000000000);return write(buf,value,offset,littleEndian,23,4),offset+4}Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)};Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkIEEE754(buf,value,offset,8,179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000);return write(buf,value,offset,littleEndian,52,8),offset+8}Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)};Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)};Buffer.prototype.copy=function(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw TypeError(\"argument should be a Buffer\");if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end=this.length)throw RangeError(\"Index out of range\");if(end<0)throw RangeError(\"sourceEnd out of bounds\");if(end>this.length)end=this.length;if(target.length-targetStart>>0,end=end===void 0?this.length:end>>>0,!val)val=0;let i2;if(typeof val===\"number\")for(i2=start;i2=start+4;i2-=3)res=`_${val.slice(i2-3,i2)}${res}`;return`${val.slice(0,i2)}${res}`}function checkBounds(buf,offset,byteLength2){if(validateNumber(offset,\"offset\"),buf[offset]===void 0||buf[offset+byteLength2]===void 0)boundsError(offset,buf.length-(byteLength2+1))}function checkIntBI(value,min,max,buf,offset,byteLength2){if(value>max||value3)if(min===0||min===BigInt(0))range=`>= 0${n} and < 2${n} ** ${(byteLength2+1)*8}${n}`;else range=`>= -(2${n} ** ${(byteLength2+1)*8-1}${n}) and < 2 ** ${(byteLength2+1)*8-1}${n}`;else range=`>= ${min}${n} and <= ${max}${n}`;throw new ERR_OUT_OF_RANGE(\"value\",range,value)}checkBounds(buf,offset,byteLength2)}function validateNumber(value,name){if(typeof value!==\"number\")throw new ERR_INVALID_ARG_TYPE(name,\"number\",value)}function boundsError(value,length,type){if(Math.floor(value)!==value)throw validateNumber(value,type),new ERR_OUT_OF_RANGE(type||\"offset\",\"an integer\",value);if(length<0)throw new ERR_BUFFER_OUT_OF_BOUNDS;throw new ERR_OUT_OF_RANGE(type||\"offset\",`>= ${type?1:0} and <= ${length}`,value)}var INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){if(str=str.split(\"=\")[0],str=str.trim().replace(INVALID_BASE64_RE,\"\"),str.length<2)return\"\";while(str.length%4!==0)str=str+\"=\";return str}function utf8ToBytes(string,units){units=units||1/0;let codePoint,length=string.length,leadSurrogate=null,bytes=[];for(let i2=0;i255295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i2+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else throw Error(\"Invalid code point\")}return bytes}function asciiToBytes(str){let byteArray=[];for(let i2=0;i2>8,lo=c%256,byteArray.push(lo),byteArray.push(hi)}return byteArray}function base64ToBytes(str){return toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){let i2;for(i2=0;i2=dst.length||i2>=src.length)break;dst[i2+offset]=src[i2]}return i2}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}var hexSliceLookupTable=function(){let table=Array(256);for(let i2=0;i2<16;++i2){let i16=i2*16;for(let j=0;j<16;++j)table[i16+j]=\"0123456789abcdef\"[i2]+\"0123456789abcdef\"[j]}return table}();function defineBigIntMethod(fn){return typeof BigInt>\"u\"?BufferBigIntNotDefined:fn}function BufferBigIntNotDefined(){throw Error(\"BigInt not supported\")}function notimpl(name){return()=>{throw Error(name+\" is not implemented for node:buffer browser polyfill\")}}var resolveObjectURL=notimpl(\"resolveObjectURL\"),isUtf8=notimpl(\"isUtf8\"),isAscii=(str)=>{for(let char of str)if(char.charCodeAt(0)>127)return!1;return!0},transcode=notimpl(\"transcode\"),buffer_default=Buffer;export{transcode,resolveObjectURL,kStringMaxLength,kMaxLength,isUtf8,isAscii,buffer_default as default,constants,btoa,atob,INSPECT_MAX_BYTES,File,Buffer,Blob};", + "var formatRegExp=/%[sdj%]/g;function format(f,...args){if(!isString(f)){var objects=[f];for(var i=0;i=len)return x2;switch(x2){case\"%s\":return String(args[i++]);case\"%d\":return Number(args[i++]);case\"%j\":try{return JSON.stringify(args[i++])}catch(_){return\"[Circular]\"}default:return x2}});for(var x=args[i];i\"u\"||process?.noDeprecation===!0)return fn;var warned=!1;function deprecated(...args){if(!warned){if(process.throwDeprecation)throw Error(msg);else if(process.traceDeprecation)console.trace(msg);else console.error(msg);warned=!0}return fn.apply(this,...args)}return deprecated}var debuglog=((debugs={},debugEnvRegex={},debugEnv)=>((debugEnv=typeof process<\"u\"&&!1)&&(debugEnv=debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g,\"\\\\$&\").replace(/\\*/g,\".*\").replace(/,/g,\"$|^\").toUpperCase()),debugEnvRegex=new RegExp(\"^\"+debugEnv+\"$\",\"i\"),(set)=>{if(set=set.toUpperCase(),!debugs[set])if(debugEnvRegex.test(set))debugs[set]=function(...args){console.error(\"%s: %s\",set,pid,format.apply(null,...args))};else debugs[set]=function(){};return debugs[set]}))(),inspect=((i)=>(i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},i.custom=Symbol.for(\"nodejs.util.inspect.custom\"),i))(function(obj,opts,...rest){var ctx={seen:[],stylize:stylizeNoColor};if(rest.length>=1)ctx.depth=rest[0];if(rest.length>=2)ctx.colors=rest[1];if(isBoolean(opts))ctx.showHidden=opts;else if(opts)_extend(ctx,opts);if(isUndefined(ctx.showHidden))ctx.showHidden=!1;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=!1;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)});function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style)return\"\\x1B[\"+inspect.colors[style][0]+\"m\"+str+\"\\x1B[\"+inspect.colors[style][1]+\"m\";else return str}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};return array.forEach(function(val,idx){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret))ret=formatValue(ctx,ret,recurseTimes);return ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden)keys=Object.getOwnPropertyNames(value);if(isError(value)&&(keys.indexOf(\"message\")>=0||keys.indexOf(\"description\")>=0))return formatError(value);if(keys.length===0){if(isFunction(value)){var name=value.name?\": \"+value.name:\"\";return ctx.stylize(\"[Function\"+name+\"]\",\"special\")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),\"regexp\");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),\"date\");if(isError(value))return formatError(value)}var base=\"\",array=!1,braces=[\"{\",\"}\"];if(isArray(value))array=!0,braces=[\"[\",\"]\"];if(isFunction(value)){var n=value.name?\": \"+value.name:\"\";base=\" [Function\"+n+\"]\"}if(isRegExp(value))base=\" \"+RegExp.prototype.toString.call(value);if(isDate(value))base=\" \"+Date.prototype.toUTCString.call(value);if(isError(value))base=\" \"+formatError(value);if(keys.length===0&&(!array||value.length==0))return braces[0]+base+braces[1];if(recurseTimes<0)if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),\"regexp\");else return ctx.stylize(\"[Object]\",\"special\");ctx.seen.push(value);var output;if(array)output=formatArray(ctx,value,recurseTimes,visibleKeys,keys);else output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)});return ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize(\"undefined\",\"undefined\");if(isString(value)){var simple=\"'\"+JSON.stringify(value).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return ctx.stylize(simple,\"string\")}if(isNumber(value))return ctx.stylize(\"\"+value,\"number\");if(isBoolean(value))return ctx.stylize(\"\"+value,\"boolean\");if(isNull(value))return ctx.stylize(\"null\",\"null\")}function formatError(value){return\"[\"+Error.prototype.toString.call(value)+\"]\"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1)if(array)str=str.split(`\n`).map(function(line){return\" \"+line}).join(`\n`).slice(2);else str=`\n`+str.split(`\n`).map(function(line){return\" \"+line}).join(`\n`)}else str=ctx.stylize(\"[Circular]\",\"special\");if(isUndefined(name)){if(array&&key.match(/^\\d+$/))return str;if(name=JSON.stringify(\"\"+key),name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/))name=name.slice(1,-1),name=ctx.stylize(name,\"name\");else name=name.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),name=ctx.stylize(name,\"string\")}return name+\": \"+str}function reduceToSingleString(output,base,braces){var numLinesEst=0,length=output.reduce(function(prev,cur){if(numLinesEst++,cur.indexOf(`\n`)>=0)numLinesEst++;return prev+cur.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1},0);if(length>60)return braces[0]+(base===\"\"?\"\":base+`\n `)+\" \"+output.join(`,\n `)+\" \"+braces[1];return braces[0]+base+\" \"+output.join(\", \")+\" \"+braces[1]}var types=()=>{};function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return typeof arg===\"boolean\"}function isNull(arg){return arg===null}function isNullOrUndefined(arg){return arg==null}function isNumber(arg){return typeof arg===\"number\"}function isString(arg){return typeof arg===\"string\"}function isSymbol(arg){return typeof arg===\"symbol\"}function isUndefined(arg){return arg===void 0}function isRegExp(re){return isObject(re)&&objectToString(re)===\"[object RegExp]\"}function isObject(arg){return typeof arg===\"object\"&&arg!==null}function isDate(d){return isObject(d)&&objectToString(d)===\"[object Date]\"}function isError(e){return isObject(e)&&(objectToString(e)===\"[object Error]\"||e instanceof Error)}function isFunction(arg){return typeof arg===\"function\"}function isPrimitive(arg){return arg===null||typeof arg===\"boolean\"||typeof arg===\"number\"||typeof arg===\"string\"||typeof arg===\"symbol\"||typeof arg>\"u\"}function isBuffer(arg){return arg instanceof Buffer}function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?\"0\"+n.toString(10):n.toString(10)}var months=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(\":\");return[d.getDate(),months[d.getMonth()],time].join(\" \")}function log(...args){console.log(\"%s - %s\",timestamp(),format.apply(null,args))}function inherits(ctor,superCtor){if(superCtor)ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})}function _extend(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add),i=keys.length;while(i--)origin[keys[i]]=add[keys[i]];return origin}function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var promisify=((x)=>(x.custom=Symbol.for(\"nodejs.util.promisify.custom\"),x))(function(original){if(typeof original!==\"function\")throw TypeError('The \"original\" argument must be of type Function');if(kCustomPromisifiedSymbol&&original[kCustomPromisifiedSymbol]){var fn=original[kCustomPromisifiedSymbol];if(typeof fn!==\"function\")throw TypeError('The \"nodejs.util.promisify.custom\" argument must be of type Function');return Object.defineProperty(fn,kCustomPromisifiedSymbol,{value:fn,enumerable:!1,writable:!1,configurable:!0}),fn}function fn(...args){var promiseResolve,promiseReject,promise=new Promise(function(resolve,reject){promiseResolve=resolve,promiseReject=reject});args.push(function(err,value){if(err)promiseReject(err);else promiseResolve(value)});try{original.apply(this,args)}catch(err){promiseReject(err)}return promise}if(Object.setPrototypeOf(fn,Object.getPrototypeOf(original)),kCustomPromisifiedSymbol)Object.defineProperty(fn,kCustomPromisifiedSymbol,{value:fn,enumerable:!1,writable:!1,configurable:!0});return Object.defineProperties(fn,Object.getOwnPropertyDescriptors(original))});function callbackifyOnRejected(reason,cb){if(!reason){var newReason=Error(\"Promise was rejected with a falsy value\");newReason.reason=reason,reason=newReason}return cb(reason)}function callbackify(original){if(typeof original!==\"function\")throw TypeError('The \"original\" argument must be of type Function');function callbackified(...args){var maybeCb=args.pop();if(typeof maybeCb!==\"function\")throw TypeError(\"The last argument must be of type Function\");var self=this,cb=function(...args2){return maybeCb.apply(self,...args2)};original.apply(this,args).then(function(ret){process.nextTick(cb.bind(null,null,ret))},function(rej){process.nextTick(callbackifyOnRejected.bind(null,rej,cb))})}return Object.setPrototypeOf(callbackified,Object.getPrototypeOf(original)),Object.defineProperties(callbackified,Object.getOwnPropertyDescriptors(original)),callbackified}var{TextEncoder,TextDecoder}=globalThis,util_default={TextEncoder,TextDecoder,promisify,log,inherits,_extend,callbackifyOnRejected,callbackify};export{types,promisify,log,isUndefined,isSymbol,isString,isRegExp,isPrimitive,isObject,isNumber,isNullOrUndefined,isNull,isFunction,isError,isDate,isBuffer,isBoolean,isArray,inspect,inherits,format,deprecate,util_default as default,debuglog,callbackifyOnRejected,callbackify,_extend,TextEncoder,TextDecoder};", + "var SymbolFor=Symbol.for,kCapture=Symbol(\"kCapture\"),kErrorMonitor=SymbolFor(\"events.errorMonitor\"),kMaxEventTargetListeners=Symbol(\"events.maxEventTargetListeners\"),kMaxEventTargetListenersWarned=Symbol(\"events.maxEventTargetListenersWarned\"),kRejection=SymbolFor(\"nodejs.rejection\"),captureRejectionSymbol=SymbolFor(\"nodejs.rejection\"),ArrayPrototypeSlice=Array.prototype.slice,defaultMaxListeners=10,EventEmitter=function(opts){if(this._events===void 0||this._events===this.__proto__._events)this._events={__proto__:null},this._eventsCount=0;if(this._maxListeners??=void 0,this[kCapture]=opts?.captureRejections?Boolean(opts?.captureRejections):EventEmitterPrototype[kCapture])this.emit=emitWithRejectionCapture},EventEmitterPrototype=EventEmitter.prototype={};EventEmitterPrototype._events=void 0;EventEmitterPrototype._eventsCount=0;EventEmitterPrototype._maxListeners=void 0;EventEmitterPrototype.setMaxListeners=function(n){return validateNumber(n,\"setMaxListeners\",0),this._maxListeners=n,this};EventEmitterPrototype.constructor=EventEmitter;EventEmitterPrototype.getMaxListeners=function(){return this?._maxListeners??defaultMaxListeners};function emitError(emitter,args){var{_events:events}=emitter;if(args[0]??=Error(\"Unhandled error.\"),!events)throw args[0];var errorMonitor=events[kErrorMonitor];if(errorMonitor)for(var handler of ArrayPrototypeSlice.call(errorMonitor))handler.apply(emitter,args);var handlers=events.error;if(!handlers)throw args[0];for(var handler of ArrayPrototypeSlice.call(handlers))handler.apply(emitter,args);return!0}function addCatch(emitter,promise,type,args){promise.then(void 0,function(err){queueMicrotask(()=>emitUnhandledRejectionOrErr(emitter,err,type,args))})}function emitUnhandledRejectionOrErr(emitter,err,type,args){if(typeof emitter[kRejection]===\"function\")emitter[kRejection](err,type,...args);else try{emitter[kCapture]=!1,emitter.emit(\"error\",err)}finally{emitter[kCapture]=!0}}var emitWithoutRejectionCapture=function(type,...args){if(type===\"error\")return emitError(this,args);var{_events:events}=this;if(events===void 0)return!1;var handlers=events[type];if(handlers===void 0)return!1;let maybeClonedHandlers=handlers.length>1?handlers.slice():handlers;for(let i=0,{length}=maybeClonedHandlers;i1?handlers.slice():handlers;for(let i=0,{length}=maybeClonedHandlers;i0&&handlers.length>m&&!handlers.warned)overflowWarning(this,type,handlers)}return this};EventEmitterPrototype.on=EventEmitterPrototype.addListener;EventEmitterPrototype.prependListener=function(type,fn){checkListener(fn);var events=this._events;if(!events)events=this._events={__proto__:null},this._eventsCount=0;else if(events.newListener)this.emit(\"newListener\",type,fn.listener??fn);var handlers=events[type];if(!handlers)events[type]=[fn],this._eventsCount++;else{handlers.unshift(fn);var m=this._maxListeners??defaultMaxListeners;if(m>0&&handlers.length>m&&!handlers.warned)overflowWarning(this,type,handlers)}return this};function overflowWarning(emitter,type,handlers){handlers.warned=!0;let warn=Error(`Possible EventEmitter memory leak detected. ${handlers.length} ${String(type)} listeners added to [${emitter.constructor.name}]. Use emitter.setMaxListeners() to increase limit`);warn.name=\"MaxListenersExceededWarning\",warn.emitter=emitter,warn.type=type,warn.count=handlers.length,console.warn(warn)}function onceWrapper(type,listener,...args){this.removeListener(type,listener),listener.apply(this,args)}EventEmitterPrototype.once=function(type,fn){checkListener(fn);let bound=onceWrapper.bind(this,type,fn);return bound.listener=fn,this.addListener(type,bound),this};EventEmitterPrototype.prependOnceListener=function(type,fn){checkListener(fn);let bound=onceWrapper.bind(this,type,fn);return bound.listener=fn,this.prependListener(type,bound),this};EventEmitterPrototype.removeListener=function(type,fn){checkListener(fn);var{_events:events}=this;if(!events)return this;var handlers=events[type];if(!handlers)return this;var length=handlers.length;let position=-1;for(let i=length-1;i>=0;i--)if(handlers[i]===fn||handlers[i].listener===fn){position=i;break}if(position<0)return this;if(position===0)handlers.shift();else handlers.splice(position,1);if(handlers.length===0)delete events[type],this._eventsCount--;return this};EventEmitterPrototype.off=EventEmitterPrototype.removeListener;EventEmitterPrototype.removeAllListeners=function(type){var{_events:events}=this;if(type&&events){if(events[type])delete events[type],this._eventsCount--}else this._events={__proto__:null};return this};EventEmitterPrototype.listeners=function(type){var{_events:events}=this;if(!events)return[];var handlers=events[type];if(!handlers)return[];return handlers.map((x)=>x.listener??x)};EventEmitterPrototype.rawListeners=function(type){var{_events}=this;if(!_events)return[];var handlers=_events[type];if(!handlers)return[];return handlers.slice()};EventEmitterPrototype.listenerCount=function(type){var{_events:events}=this;if(!events)return 0;return events[type]?.length??0};EventEmitterPrototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};EventEmitterPrototype[kCapture]=!1;function once2(emitter,type,options){var signal=options?.signal;if(validateAbortSignal(signal,\"options.signal\"),signal?.aborted)throw new AbortError(void 0,{cause:signal?.reason});let{resolve,reject,promise}=$newPromiseCapability(Promise),errorListener=(err)=>{if(emitter.removeListener(type,resolver),signal!=null)eventTargetAgnosticRemoveListener(signal,\"abort\",abortListener);reject(err)},resolver=(...args)=>{if(typeof emitter.removeListener===\"function\")emitter.removeListener(\"error\",errorListener);if(signal!=null)eventTargetAgnosticRemoveListener(signal,\"abort\",abortListener);resolve(args)};if(eventTargetAgnosticAddListener(emitter,type,resolver,{once:!0}),type!==\"error\"&&typeof emitter.once===\"function\")emitter.once(\"error\",errorListener);function abortListener(){eventTargetAgnosticRemoveListener(emitter,type,resolver),eventTargetAgnosticRemoveListener(emitter,\"error\",errorListener),reject(new AbortError(void 0,{cause:signal?.reason}))}if(signal!=null)eventTargetAgnosticAddListener(signal,\"abort\",abortListener,{once:!0});return promise}function getEventListeners(emitter,type){return emitter.listeners(type)}function setMaxListeners2(n,...eventTargets){validateNumber(n,\"setMaxListeners\",0);var length;if(eventTargets&&(length=eventTargets.length))for(let i=0;imax||(min!=null||max!=null)&&Number.isNaN(value))throw ERR_OUT_OF_RANGE(name,`${min!=null?`>= ${min}`:\"\"}${min!=null&&max!=null?\" && \":\"\"}${max!=null?`<= ${max}`:\"\"}`,value)}function checkListener(listener){if(typeof listener!==\"function\")throw TypeError(\"The listener must be a function\")}function validateBoolean(value,name){if(typeof value!==\"boolean\")throw ERR_INVALID_ARG_TYPE(name,\"boolean\",value)}function getMaxListeners2(emitterOrTarget){return emitterOrTarget?._maxListeners??defaultMaxListeners}function addAbortListener(signal,listener){if(signal===void 0)throw ERR_INVALID_ARG_TYPE(\"signal\",\"AbortSignal\",signal);if(validateAbortSignal(signal,\"signal\"),typeof listener!==\"function\")throw ERR_INVALID_ARG_TYPE(\"listener\",\"function\",listener);let removeEventListener;if(signal.aborted)queueMicrotask(()=>listener());else signal.addEventListener(\"abort\",listener,{__proto__:null,once:!0}),removeEventListener=()=>{signal.removeEventListener(\"abort\",listener)};return{__proto__:null,[Symbol.dispose](){removeEventListener?.()}}}Object.defineProperties(EventEmitter,{captureRejections:{get(){return EventEmitterPrototype[kCapture]},set(value){validateBoolean(value,\"EventEmitter.captureRejections\"),EventEmitterPrototype[kCapture]=value},enumerable:!0},defaultMaxListeners:{enumerable:!0,get:()=>{return defaultMaxListeners},set:(arg)=>{validateNumber(arg,\"defaultMaxListeners\",0),defaultMaxListeners=arg}},kMaxEventTargetListeners:{value:kMaxEventTargetListeners,enumerable:!1,configurable:!1,writable:!1},kMaxEventTargetListenersWarned:{value:kMaxEventTargetListenersWarned,enumerable:!1,configurable:!1,writable:!1}});Object.assign(EventEmitter,{once:once2,getEventListeners,getMaxListeners:getMaxListeners2,setMaxListeners:setMaxListeners2,EventEmitter,usingDomains:!1,captureRejectionSymbol,errorMonitor:kErrorMonitor,addAbortListener,init:EventEmitter,listenerCount:listenerCount2});var events_default=EventEmitter;export{setMaxListeners2 as setMaxListeners,once2 as once,listenerCount2 as listenerCount,EventEmitter as init,getMaxListeners2 as getMaxListeners,getEventListeners,events_default as default,captureRejectionSymbol,addAbortListener,EventEmitter};", + "var __commonJS=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports);var require_primordials=__commonJS((exports2,module2)=>{class AggregateError extends Error{constructor(errors){if(!Array.isArray(errors))throw TypeError(`Expected input to be an Array, got ${typeof errors}`);let message=\"\";for(let i=0;i{module2.exports={format(format,...args){return format.replace(/%([sdifj])/g,function(...[_unused,type]){let replacement=args.shift();if(type===\"f\")return replacement.toFixed(6);else if(type===\"j\")return JSON.stringify(replacement);else if(type===\"s\"&&typeof replacement===\"object\")return`${replacement.constructor!==Object?replacement.constructor.name:\"\"} {}`.trim();else return replacement.toString()})},inspect(value){switch(typeof value){case\"string\":if(value.includes(\"'\")){if(!value.includes('\"'))return`\"${value}\"`;else if(!value.includes(\"`\")&&!value.includes(\"${\"))return`\\`${value}\\``}return`'${value}'`;case\"number\":if(isNaN(value))return\"NaN\";else if(Object.is(value,-0))return String(value);return value;case\"bigint\":return`${String(value)}n`;case\"boolean\":case\"undefined\":return String(value);case\"object\":return\"{}\"}}}});var require_errors=__commonJS((exports2,module2)=>{var{format,inspect}=require_inspect(),{AggregateError:CustomAggregateError}=require_primordials(),AggregateError=globalThis.AggregateError||CustomAggregateError,kIsNodeError=Symbol(\"kIsNodeError\"),kTypes=[\"string\",\"function\",\"number\",\"object\",\"Function\",\"Object\",\"boolean\",\"bigint\",\"symbol\"],classRegExp=/^([A-Z][a-z0-9]*)+$/,codes={};function assert(value,message){if(!value)throw new codes.ERR_INTERNAL_ASSERTION(message)}function addNumericalSeparator(val){let res=\"\",i=val.length,start=val[0]===\"-\"?1:0;for(;i>=start+4;i-=3)res=`_${val.slice(i-3,i)}${res}`;return`${val.slice(0,i)}${res}`}function getMessage(key,msg,args){if(typeof msg===\"function\")return assert(msg.length<=args.length,`Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`),msg(...args);let expectedLength=(msg.match(/%[dfijoOs]/g)||[]).length;if(assert(expectedLength===args.length,`Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`),args.length===0)return msg;return format(msg,...args)}function E(code,message,Base){if(!Base)Base=Error;class NodeError extends Base{constructor(...args){super(getMessage(code,message,args))}toString(){return`${this.name} [${code}]: ${this.message}`}}Object.defineProperties(NodeError.prototype,{name:{value:Base.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${code}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),NodeError.prototype.code=code,NodeError.prototype[kIsNodeError]=!0,codes[code]=NodeError}function hideStackFrames(fn){let hidden=\"__node_internal_\"+fn.name;return Object.defineProperty(fn,\"name\",{value:hidden}),fn}function aggregateTwoErrors(innerError,outerError){if(innerError&&outerError&&innerError!==outerError){if(Array.isArray(outerError.errors))return outerError.errors.push(innerError),outerError;let err=new AggregateError([outerError,innerError],outerError.message);return err.code=outerError.code,err}return innerError||outerError}class AbortError extends Error{constructor(message=\"The operation was aborted\",options=void 0){if(options!==void 0&&typeof options!==\"object\")throw new codes.ERR_INVALID_ARG_TYPE(\"options\",\"Object\",options);super(message,options);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}}E(\"ERR_ASSERTION\",\"%s\",Error);E(\"ERR_INVALID_ARG_TYPE\",(name,expected,actual)=>{if(assert(typeof name===\"string\",\"'name' must be a string\"),!Array.isArray(expected))expected=[expected];let msg=\"The \";if(name.endsWith(\" argument\"))msg+=`${name} `;else msg+=`\"${name}\" ${name.includes(\".\")?\"property\":\"argument\"} `;msg+=\"must be \";let types=[],instances=[],other=[];for(let value of expected)if(assert(typeof value===\"string\",\"All expected entries have to be of type string\"),kTypes.includes(value))types.push(value.toLowerCase());else if(classRegExp.test(value))instances.push(value);else assert(value!==\"object\",'The value \"object\" should be written as \"Object\"'),other.push(value);if(instances.length>0){let pos=types.indexOf(\"object\");if(pos!==-1)types.splice(types,pos,1),instances.push(\"Object\")}if(types.length>0){switch(types.length){case 1:msg+=`of type ${types[0]}`;break;case 2:msg+=`one of type ${types[0]} or ${types[1]}`;break;default:{let last=types.pop();msg+=`one of type ${types.join(\", \")}, or ${last}`}}if(instances.length>0||other.length>0)msg+=\" or \"}if(instances.length>0){switch(instances.length){case 1:msg+=`an instance of ${instances[0]}`;break;case 2:msg+=`an instance of ${instances[0]} or ${instances[1]}`;break;default:{let last=instances.pop();msg+=`an instance of ${instances.join(\", \")}, or ${last}`}}if(other.length>0)msg+=\" or \"}switch(other.length){case 0:break;case 1:if(other[0].toLowerCase()!==other[0])msg+=\"an \";msg+=`${other[0]}`;break;case 2:msg+=`one of ${other[0]} or ${other[1]}`;break;default:{let last=other.pop();msg+=`one of ${other.join(\", \")}, or ${last}`}}if(actual==null)msg+=`. Received ${actual}`;else if(typeof actual===\"function\"&&actual.name)msg+=`. Received function ${actual.name}`;else if(typeof actual===\"object\"){var _actual$constructor;if((_actual$constructor=actual.constructor)!==null&&_actual$constructor!==void 0&&_actual$constructor.name)msg+=`. Received an instance of ${actual.constructor.name}`;else{let inspected=inspect(actual,{depth:-1});msg+=`. Received ${inspected}`}}else{let inspected=inspect(actual,{colors:!1});if(inspected.length>25)inspected=`${inspected.slice(0,25)}...`;msg+=`. Received type ${typeof actual} (${inspected})`}return msg},TypeError);E(\"ERR_INVALID_ARG_VALUE\",(name,value,reason=\"is invalid\")=>{let inspected=inspect(value);if(inspected.length>128)inspected=inspected.slice(0,128)+\"...\";return`The ${name.includes(\".\")?\"property\":\"argument\"} '${name}' ${reason}. Received ${inspected}`},TypeError);E(\"ERR_INVALID_RETURN_VALUE\",(input,name,value)=>{var _value$constructor;let type=value!==null&&value!==void 0&&(_value$constructor=value.constructor)!==null&&_value$constructor!==void 0&&_value$constructor.name?`instance of ${value.constructor.name}`:`type ${typeof value}`;return`Expected ${input} to be returned from the \"${name}\" function but got ${type}.`},TypeError);E(\"ERR_MISSING_ARGS\",(...args)=>{assert(args.length>0,\"At least one arg needs to be specified\");let msg,len=args.length;switch(args=(Array.isArray(args)?args:[args]).map((a)=>`\"${a}\"`).join(\" or \"),len){case 1:msg+=`The ${args[0]} argument`;break;case 2:msg+=`The ${args[0]} and ${args[1]} arguments`;break;default:{let last=args.pop();msg+=`The ${args.join(\", \")}, and ${last} arguments`}break}return`${msg} must be specified`},TypeError);E(\"ERR_OUT_OF_RANGE\",(str,range,input)=>{assert(range,'Missing \"range\" argument');let received;if(Number.isInteger(input)&&Math.abs(input)>4294967296)received=addNumericalSeparator(String(input));else if(typeof input===\"bigint\"){received=String(input);let limit=BigInt(2)**BigInt(32);if(input>limit||input<-limit)received=addNumericalSeparator(received);received+=\"n\"}else received=inspect(input);return`The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`},RangeError);E(\"ERR_MULTIPLE_CALLBACK\",\"Callback called multiple times\",Error);E(\"ERR_METHOD_NOT_IMPLEMENTED\",\"The %s method is not implemented\",Error);E(\"ERR_STREAM_ALREADY_FINISHED\",\"Cannot call %s after a stream was finished\",Error);E(\"ERR_STREAM_CANNOT_PIPE\",\"Cannot pipe, not readable\",Error);E(\"ERR_STREAM_DESTROYED\",\"Cannot call %s after a stream was destroyed\",Error);E(\"ERR_STREAM_NULL_VALUES\",\"May not write null values to stream\",TypeError);E(\"ERR_STREAM_PREMATURE_CLOSE\",\"Premature close\",Error);E(\"ERR_STREAM_PUSH_AFTER_EOF\",\"stream.push() after EOF\",Error);E(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\",\"stream.unshift() after end event\",Error);E(\"ERR_STREAM_WRITE_AFTER_END\",\"write after end\",Error);E(\"ERR_UNKNOWN_ENCODING\",\"Unknown encoding: %s\",TypeError);module2.exports={AbortError,aggregateTwoErrors:hideStackFrames(aggregateTwoErrors),hideStackFrames,codes}});var require_event_target_shim=__commonJS((exports2,module2)=>{Object.defineProperty(exports2,\"__esModule\",{value:!0});var privateData=new WeakMap,wrappers=new WeakMap;function pd(event){let retv=privateData.get(event);return console.assert(retv!=null,\"'this' is expected an Event object, but got\",event),retv}function setCancelFlag(data){if(data.passiveListener!=null){if(typeof console<\"u\"&&typeof console.error===\"function\")console.error(\"Unable to preventDefault inside passive event listener invocation.\",data.passiveListener);return}if(!data.event.cancelable)return;if(data.canceled=!0,typeof data.event.preventDefault===\"function\")data.event.preventDefault()}function Event(eventTarget,event){privateData.set(this,{eventTarget,event,eventPhase:2,currentTarget:eventTarget,canceled:!1,stopped:!1,immediateStopped:!1,passiveListener:null,timeStamp:event.timeStamp||Date.now()}),Object.defineProperty(this,\"isTrusted\",{value:!1,enumerable:!0});let keys=Object.keys(event);for(let i=0;i0){let types=Array(arguments.length);for(let i=0;i{Object.defineProperty(exports2,\"__esModule\",{value:!0});var eventTargetShim=require_event_target_shim();class AbortSignal extends eventTargetShim.EventTarget{constructor(){super();throw TypeError(\"AbortSignal cannot be constructed directly\")}get aborted(){let aborted=abortedFlags.get(this);if(typeof aborted!==\"boolean\")throw TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this===null?\"null\":typeof this}`);return aborted}}eventTargetShim.defineEventAttribute(AbortSignal.prototype,\"abort\");function createAbortSignal(){let signal=Object.create(AbortSignal.prototype);return eventTargetShim.EventTarget.call(signal),abortedFlags.set(signal,!1),signal}function abortSignal(signal){if(abortedFlags.get(signal)!==!1)return;abortedFlags.set(signal,!0),signal.dispatchEvent({type:\"abort\"})}var abortedFlags=new WeakMap;Object.defineProperties(AbortSignal.prototype,{aborted:{enumerable:!0}});if(typeof Symbol===\"function\"&&typeof Symbol.toStringTag===\"symbol\")Object.defineProperty(AbortSignal.prototype,Symbol.toStringTag,{configurable:!0,value:\"AbortSignal\"});class AbortController{constructor(){signals.set(this,createAbortSignal())}get signal(){return getSignal(this)}abort(){abortSignal(getSignal(this))}}var signals=new WeakMap;function getSignal(controller){let signal=signals.get(controller);if(signal==null)throw TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller===null?\"null\":typeof controller}`);return signal}Object.defineProperties(AbortController.prototype,{signal:{enumerable:!0},abort:{enumerable:!0}});if(typeof Symbol===\"function\"&&typeof Symbol.toStringTag===\"symbol\")Object.defineProperty(AbortController.prototype,Symbol.toStringTag,{configurable:!0,value:\"AbortController\"});exports2.AbortController=AbortController;exports2.AbortSignal=AbortSignal;exports2.default=AbortController;module2.exports=AbortController;module2.exports.AbortController=module2.exports.default=AbortController;module2.exports.AbortSignal=AbortSignal});var require_util=__commonJS((exports2,module2)=>{var bufferModule=require(\"buffer\"),{format,inspect}=require_inspect(),{codes:{ERR_INVALID_ARG_TYPE}}=require_errors(),{kResistStopPropagation,AggregateError,SymbolDispose}=require_primordials(),AbortSignal=globalThis.AbortSignal||require_abort_controller().AbortSignal,AbortController=globalThis.AbortController||require_abort_controller().AbortController,AsyncFunction=Object.getPrototypeOf(async function(){}).constructor,Blob=globalThis.Blob||bufferModule.Blob,isBlob=typeof Blob<\"u\"?function(b){return b instanceof Blob}:function(b){return!1},validateAbortSignal=(signal,name)=>{if(signal!==void 0&&(signal===null||typeof signal!==\"object\"||!(\"aborted\"in signal)))throw new ERR_INVALID_ARG_TYPE(name,\"AbortSignal\",signal)},validateFunction=(value,name)=>{if(typeof value!==\"function\")throw new ERR_INVALID_ARG_TYPE(name,\"Function\",value)};module2.exports={AggregateError,kEmptyObject:Object.freeze({}),once(callback){let called=!1;return function(...args){if(called)return;called=!0,callback.apply(this,args)}},createDeferredPromise:function(){let resolve,reject;return{promise:new Promise((res,rej)=>{resolve=res,reject=rej}),resolve,reject}},promisify(fn){return new Promise((resolve,reject)=>{fn((err,...args)=>{if(err)return reject(err);return resolve(...args)})})},debuglog(){return function(){}},format,inspect,types:{isAsyncFunction(fn){return fn instanceof AsyncFunction},isArrayBufferView(arr){return ArrayBuffer.isView(arr)}},isBlob,deprecate(fn,message){return fn},addAbortListener:require(\"events\").addAbortListener||function(signal,listener){if(signal===void 0)throw new ERR_INVALID_ARG_TYPE(\"signal\",\"AbortSignal\",signal);validateAbortSignal(signal,\"signal\"),validateFunction(listener,\"listener\");let removeEventListener;if(signal.aborted)queueMicrotask(()=>listener());else signal.addEventListener(\"abort\",listener,{__proto__:null,once:!0,[kResistStopPropagation]:!0}),removeEventListener=()=>{signal.removeEventListener(\"abort\",listener)};return{__proto__:null,[SymbolDispose](){var _removeEventListener;(_removeEventListener=removeEventListener)===null||_removeEventListener===void 0||_removeEventListener()}}},AbortSignalAny:AbortSignal.any||function(signals){if(signals.length===1)return signals[0];let ac=new AbortController,abort=()=>ac.abort();return signals.forEach((signal)=>{validateAbortSignal(signal,\"signals\"),signal.addEventListener(\"abort\",abort,{once:!0})}),ac.signal.addEventListener(\"abort\",()=>{signals.forEach((signal)=>signal.removeEventListener(\"abort\",abort))},{once:!0}),ac.signal}};module2.exports.promisify.custom=Symbol.for(\"nodejs.util.promisify.custom\")});var require_validators=__commonJS((exports2,module2)=>{var{ArrayIsArray,ArrayPrototypeIncludes,ArrayPrototypeJoin,ArrayPrototypeMap,NumberIsInteger,NumberIsNaN,NumberMAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER,NumberParseInt,ObjectPrototypeHasOwnProperty,RegExpPrototypeExec,String:String2,StringPrototypeToUpperCase,StringPrototypeTrim}=require_primordials(),{hideStackFrames,codes:{ERR_SOCKET_BAD_PORT,ERR_INVALID_ARG_TYPE,ERR_INVALID_ARG_VALUE,ERR_OUT_OF_RANGE,ERR_UNKNOWN_SIGNAL}}=require_errors(),{normalizeEncoding}=require_util(),{isAsyncFunction,isArrayBufferView}=require_util().types,signals={};function isInt32(value){return value===(value|0)}function isUint32(value){return value===value>>>0}var octalReg=/^[0-7]+$/,modeDesc=\"must be a 32-bit unsigned integer or an octal string\";function parseFileMode(value,name,def){if(typeof value>\"u\")value=def;if(typeof value===\"string\"){if(RegExpPrototypeExec(octalReg,value)===null)throw new ERR_INVALID_ARG_VALUE(name,value,modeDesc);value=NumberParseInt(value,8)}return validateUint32(value,name),value}var validateInteger=hideStackFrames((value,name,min=NumberMIN_SAFE_INTEGER,max=NumberMAX_SAFE_INTEGER)=>{if(typeof value!==\"number\")throw new ERR_INVALID_ARG_TYPE(name,\"number\",value);if(!NumberIsInteger(value))throw new ERR_OUT_OF_RANGE(name,\"an integer\",value);if(valuemax)throw new ERR_OUT_OF_RANGE(name,`>= ${min} && <= ${max}`,value)}),validateInt32=hideStackFrames((value,name,min=-2147483648,max=2147483647)=>{if(typeof value!==\"number\")throw new ERR_INVALID_ARG_TYPE(name,\"number\",value);if(!NumberIsInteger(value))throw new ERR_OUT_OF_RANGE(name,\"an integer\",value);if(valuemax)throw new ERR_OUT_OF_RANGE(name,`>= ${min} && <= ${max}`,value)}),validateUint32=hideStackFrames((value,name,positive=!1)=>{if(typeof value!==\"number\")throw new ERR_INVALID_ARG_TYPE(name,\"number\",value);if(!NumberIsInteger(value))throw new ERR_OUT_OF_RANGE(name,\"an integer\",value);let min=positive?1:0,max=4294967295;if(valuemax)throw new ERR_OUT_OF_RANGE(name,`>= ${min} && <= ${max}`,value)});function validateString(value,name){if(typeof value!==\"string\")throw new ERR_INVALID_ARG_TYPE(name,\"string\",value)}function validateNumber(value,name,min=void 0,max){if(typeof value!==\"number\")throw new ERR_INVALID_ARG_TYPE(name,\"number\",value);if(min!=null&&valuemax||(min!=null||max!=null)&&NumberIsNaN(value))throw new ERR_OUT_OF_RANGE(name,`${min!=null?`>= ${min}`:\"\"}${min!=null&&max!=null?\" && \":\"\"}${max!=null?`<= ${max}`:\"\"}`,value)}var validateOneOf=hideStackFrames((value,name,oneOf)=>{if(!ArrayPrototypeIncludes(oneOf,value)){let reason=\"must be one of: \"+ArrayPrototypeJoin(ArrayPrototypeMap(oneOf,(v)=>typeof v===\"string\"?`'${v}'`:String2(v)),\", \");throw new ERR_INVALID_ARG_VALUE(name,value,reason)}});function validateBoolean(value,name){if(typeof value!==\"boolean\")throw new ERR_INVALID_ARG_TYPE(name,\"boolean\",value)}function getOwnPropertyValueOrDefault(options,key,defaultValue){return options==null||!ObjectPrototypeHasOwnProperty(options,key)?defaultValue:options[key]}var validateObject=hideStackFrames((value,name,options=null)=>{let allowArray=getOwnPropertyValueOrDefault(options,\"allowArray\",!1),allowFunction=getOwnPropertyValueOrDefault(options,\"allowFunction\",!1);if(!getOwnPropertyValueOrDefault(options,\"nullable\",!1)&&value===null||!allowArray&&ArrayIsArray(value)||typeof value!==\"object\"&&(!allowFunction||typeof value!==\"function\"))throw new ERR_INVALID_ARG_TYPE(name,\"Object\",value)}),validateDictionary=hideStackFrames((value,name)=>{if(value!=null&&typeof value!==\"object\"&&typeof value!==\"function\")throw new ERR_INVALID_ARG_TYPE(name,\"a dictionary\",value)}),validateArray=hideStackFrames((value,name,minLength=0)=>{if(!ArrayIsArray(value))throw new ERR_INVALID_ARG_TYPE(name,\"Array\",value);if(value.length{if(!isArrayBufferView(buffer))throw new ERR_INVALID_ARG_TYPE(name,[\"Buffer\",\"TypedArray\",\"DataView\"],buffer)});function validateEncoding(data,encoding){let normalizedEncoding=normalizeEncoding(encoding),length=data.length;if(normalizedEncoding===\"hex\"&&length%2!==0)throw new ERR_INVALID_ARG_VALUE(\"encoding\",encoding,`is invalid for data of length ${length}`)}function validatePort(port,name=\"Port\",allowZero=!0){if(typeof port!==\"number\"&&typeof port!==\"string\"||typeof port===\"string\"&&StringPrototypeTrim(port).length===0||+port!==+port>>>0||port>65535||port===0&&!allowZero)throw new ERR_SOCKET_BAD_PORT(name,port,allowZero);return port|0}var validateAbortSignal=hideStackFrames((signal,name)=>{if(signal!==void 0&&(signal===null||typeof signal!==\"object\"||!(\"aborted\"in signal)))throw new ERR_INVALID_ARG_TYPE(name,\"AbortSignal\",signal)}),validateFunction=hideStackFrames((value,name)=>{if(typeof value!==\"function\")throw new ERR_INVALID_ARG_TYPE(name,\"Function\",value)}),validatePlainFunction=hideStackFrames((value,name)=>{if(typeof value!==\"function\"||isAsyncFunction(value))throw new ERR_INVALID_ARG_TYPE(name,\"Function\",value)}),validateUndefined=hideStackFrames((value,name)=>{if(value!==void 0)throw new ERR_INVALID_ARG_TYPE(name,\"undefined\",value)});function validateUnion(value,name,union){if(!ArrayPrototypeIncludes(union,value))throw new ERR_INVALID_ARG_TYPE(name,`('${ArrayPrototypeJoin(union,\"|\")}')`,value)}var linkValueRegExp=/^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/;function validateLinkHeaderFormat(value,name){if(typeof value>\"u\"||!RegExpPrototypeExec(linkValueRegExp,value))throw new ERR_INVALID_ARG_VALUE(name,value,'must be an array or string of format \"; rel=preload; as=style\"')}function validateLinkHeaderValue(hints){if(typeof hints===\"string\")return validateLinkHeaderFormat(hints,\"hints\"),hints;else if(ArrayIsArray(hints)){let hintsLength=hints.length,result=\"\";if(hintsLength===0)return result;for(let i=0;i; rel=preload; as=style\"')}module2.exports={isInt32,isUint32,parseFileMode,validateArray,validateStringArray,validateBooleanArray,validateAbortSignalArray,validateBoolean,validateBuffer,validateDictionary,validateEncoding,validateFunction,validateInt32,validateInteger,validateNumber,validateObject,validateOneOf,validatePlainFunction,validatePort,validateSignalName,validateString,validateUint32,validateUndefined,validateUnion,validateAbortSignal,validateLinkHeaderValue}});var require_process=__commonJS((exports2,module2)=>{module2.exports=globalThis.process});var require_utils=__commonJS((exports2,module2)=>{var{SymbolAsyncIterator,SymbolIterator,SymbolFor}=require_primordials(),kIsDestroyed=SymbolFor(\"nodejs.stream.destroyed\"),kIsErrored=SymbolFor(\"nodejs.stream.errored\"),kIsReadable=SymbolFor(\"nodejs.stream.readable\"),kIsWritable=SymbolFor(\"nodejs.stream.writable\"),kIsDisturbed=SymbolFor(\"nodejs.stream.disturbed\"),kIsClosedPromise=SymbolFor(\"nodejs.webstream.isClosedPromise\"),kControllerErrorFunction=SymbolFor(\"nodejs.webstream.controllerErrorFunction\");function isReadableNodeStream(obj,strict=!1){var _obj$_readableState;return!!(obj&&typeof obj.pipe===\"function\"&&typeof obj.on===\"function\"&&(!strict||typeof obj.pause===\"function\"&&typeof obj.resume===\"function\")&&(!obj._writableState||((_obj$_readableState=obj._readableState)===null||_obj$_readableState===void 0?void 0:_obj$_readableState.readable)!==!1)&&(!obj._writableState||obj._readableState))}function isWritableNodeStream(obj){var _obj$_writableState;return!!(obj&&typeof obj.write===\"function\"&&typeof obj.on===\"function\"&&(!obj._readableState||((_obj$_writableState=obj._writableState)===null||_obj$_writableState===void 0?void 0:_obj$_writableState.writable)!==!1))}function isDuplexNodeStream(obj){return!!(obj&&typeof obj.pipe===\"function\"&&obj._readableState&&typeof obj.on===\"function\"&&typeof obj.write===\"function\")}function isNodeStream(obj){return obj&&(obj._readableState||obj._writableState||typeof obj.write===\"function\"&&typeof obj.on===\"function\"||typeof obj.pipe===\"function\"&&typeof obj.on===\"function\")}function isReadableStream(obj){return!!(obj&&!isNodeStream(obj)&&typeof obj.pipeThrough===\"function\"&&typeof obj.getReader===\"function\"&&typeof obj.cancel===\"function\")}function isWritableStream(obj){return!!(obj&&!isNodeStream(obj)&&typeof obj.getWriter===\"function\"&&typeof obj.abort===\"function\")}function isTransformStream(obj){return!!(obj&&!isNodeStream(obj)&&typeof obj.readable===\"object\"&&typeof obj.writable===\"object\")}function isWebStream(obj){return isReadableStream(obj)||isWritableStream(obj)||isTransformStream(obj)}function isIterable(obj,isAsync){if(obj==null)return!1;if(isAsync===!0)return typeof obj[SymbolAsyncIterator]===\"function\";if(isAsync===!1)return typeof obj[SymbolIterator]===\"function\";return typeof obj[SymbolAsyncIterator]===\"function\"||typeof obj[SymbolIterator]===\"function\"}function isDestroyed(stream){if(!isNodeStream(stream))return null;let{_writableState:wState,_readableState:rState}=stream,state=wState||rState;return!!(stream.destroyed||stream[kIsDestroyed]||state!==null&&state!==void 0&&state.destroyed)}function isWritableEnded(stream){if(!isWritableNodeStream(stream))return null;if(stream.writableEnded===!0)return!0;let wState=stream._writableState;if(wState!==null&&wState!==void 0&&wState.errored)return!1;if(typeof(wState===null||wState===void 0?void 0:wState.ended)!==\"boolean\")return null;return wState.ended}function isWritableFinished(stream,strict){if(!isWritableNodeStream(stream))return null;if(stream.writableFinished===!0)return!0;let wState=stream._writableState;if(wState!==null&&wState!==void 0&&wState.errored)return!1;if(typeof(wState===null||wState===void 0?void 0:wState.finished)!==\"boolean\")return null;return!!(wState.finished||strict===!1&&wState.ended===!0&&wState.length===0)}function isReadableEnded(stream){if(!isReadableNodeStream(stream))return null;if(stream.readableEnded===!0)return!0;let rState=stream._readableState;if(!rState||rState.errored)return!1;if(typeof(rState===null||rState===void 0?void 0:rState.ended)!==\"boolean\")return null;return rState.ended}function isReadableFinished(stream,strict){if(!isReadableNodeStream(stream))return null;let rState=stream._readableState;if(rState!==null&&rState!==void 0&&rState.errored)return!1;if(typeof(rState===null||rState===void 0?void 0:rState.endEmitted)!==\"boolean\")return null;return!!(rState.endEmitted||strict===!1&&rState.ended===!0&&rState.length===0)}function isReadable(stream){if(stream&&stream[kIsReadable]!=null)return stream[kIsReadable];if(typeof(stream===null||stream===void 0?void 0:stream.readable)!==\"boolean\")return null;if(isDestroyed(stream))return!1;return isReadableNodeStream(stream)&&stream.readable&&!isReadableFinished(stream)}function isWritable(stream){if(stream&&stream[kIsWritable]!=null)return stream[kIsWritable];if(typeof(stream===null||stream===void 0?void 0:stream.writable)!==\"boolean\")return null;if(isDestroyed(stream))return!1;return isWritableNodeStream(stream)&&stream.writable&&!isWritableEnded(stream)}function isFinished(stream,opts){if(!isNodeStream(stream))return null;if(isDestroyed(stream))return!0;if((opts===null||opts===void 0?void 0:opts.readable)!==!1&&isReadable(stream))return!1;if((opts===null||opts===void 0?void 0:opts.writable)!==!1&&isWritable(stream))return!1;return!0}function isWritableErrored(stream){var _stream$_writableStat,_stream$_writableStat2;if(!isNodeStream(stream))return null;if(stream.writableErrored)return stream.writableErrored;return(_stream$_writableStat=(_stream$_writableStat2=stream._writableState)===null||_stream$_writableStat2===void 0?void 0:_stream$_writableStat2.errored)!==null&&_stream$_writableStat!==void 0?_stream$_writableStat:null}function isReadableErrored(stream){var _stream$_readableStat,_stream$_readableStat2;if(!isNodeStream(stream))return null;if(stream.readableErrored)return stream.readableErrored;return(_stream$_readableStat=(_stream$_readableStat2=stream._readableState)===null||_stream$_readableStat2===void 0?void 0:_stream$_readableStat2.errored)!==null&&_stream$_readableStat!==void 0?_stream$_readableStat:null}function isClosed(stream){if(!isNodeStream(stream))return null;if(typeof stream.closed===\"boolean\")return stream.closed;let{_writableState:wState,_readableState:rState}=stream;if(typeof(wState===null||wState===void 0?void 0:wState.closed)===\"boolean\"||typeof(rState===null||rState===void 0?void 0:rState.closed)===\"boolean\")return(wState===null||wState===void 0?void 0:wState.closed)||(rState===null||rState===void 0?void 0:rState.closed);if(typeof stream._closed===\"boolean\"&&isOutgoingMessage(stream))return stream._closed;return null}function isOutgoingMessage(stream){return typeof stream._closed===\"boolean\"&&typeof stream._defaultKeepAlive===\"boolean\"&&typeof stream._removedConnection===\"boolean\"&&typeof stream._removedContLen===\"boolean\"}function isServerResponse(stream){return typeof stream._sent100===\"boolean\"&&isOutgoingMessage(stream)}function isServerRequest(stream){var _stream$req;return typeof stream._consuming===\"boolean\"&&typeof stream._dumped===\"boolean\"&&((_stream$req=stream.req)===null||_stream$req===void 0?void 0:_stream$req.upgradeOrConnect)===void 0}function willEmitClose(stream){if(!isNodeStream(stream))return null;let{_writableState:wState,_readableState:rState}=stream,state=wState||rState;return!state&&isServerResponse(stream)||!!(state&&state.autoDestroy&&state.emitClose&&state.closed===!1)}function isDisturbed(stream){var _stream$kIsDisturbed;return!!(stream&&((_stream$kIsDisturbed=stream[kIsDisturbed])!==null&&_stream$kIsDisturbed!==void 0?_stream$kIsDisturbed:stream.readableDidRead||stream.readableAborted))}function isErrored(stream){var _ref,_ref2,_ref3,_ref4,_ref5,_stream$kIsErrored,_stream$_readableStat3,_stream$_writableStat3,_stream$_readableStat4,_stream$_writableStat4;return!!(stream&&((_ref=(_ref2=(_ref3=(_ref4=(_ref5=(_stream$kIsErrored=stream[kIsErrored])!==null&&_stream$kIsErrored!==void 0?_stream$kIsErrored:stream.readableErrored)!==null&&_ref5!==void 0?_ref5:stream.writableErrored)!==null&&_ref4!==void 0?_ref4:(_stream$_readableStat3=stream._readableState)===null||_stream$_readableStat3===void 0?void 0:_stream$_readableStat3.errorEmitted)!==null&&_ref3!==void 0?_ref3:(_stream$_writableStat3=stream._writableState)===null||_stream$_writableStat3===void 0?void 0:_stream$_writableStat3.errorEmitted)!==null&&_ref2!==void 0?_ref2:(_stream$_readableStat4=stream._readableState)===null||_stream$_readableStat4===void 0?void 0:_stream$_readableStat4.errored)!==null&&_ref!==void 0?_ref:(_stream$_writableStat4=stream._writableState)===null||_stream$_writableStat4===void 0?void 0:_stream$_writableStat4.errored))}module2.exports={isDestroyed,kIsDestroyed,isDisturbed,kIsDisturbed,isErrored,kIsErrored,isReadable,kIsReadable,kIsClosedPromise,kControllerErrorFunction,kIsWritable,isClosed,isDuplexNodeStream,isFinished,isIterable,isReadableNodeStream,isReadableStream,isReadableEnded,isReadableFinished,isReadableErrored,isNodeStream,isWebStream,isWritable,isWritableNodeStream,isWritableStream,isWritableEnded,isWritableFinished,isWritableErrored,isServerRequest,isServerResponse,willEmitClose,isTransformStream}});var require_end_of_stream=__commonJS((exports2,module2)=>{var process=require_process(),{AbortError,codes}=require_errors(),{ERR_INVALID_ARG_TYPE,ERR_STREAM_PREMATURE_CLOSE}=codes,{kEmptyObject,once}=require_util(),{validateAbortSignal,validateFunction,validateObject,validateBoolean}=require_validators(),{Promise:Promise2,PromisePrototypeThen,SymbolDispose}=require_primordials(),{isClosed,isReadable,isReadableNodeStream,isReadableStream,isReadableFinished,isReadableErrored,isWritable,isWritableNodeStream,isWritableStream,isWritableFinished,isWritableErrored,isNodeStream,willEmitClose:_willEmitClose,kIsClosedPromise}=require_utils(),addAbortListener;function isRequest(stream){return stream.setHeader&&typeof stream.abort===\"function\"}var nop=()=>{};function eos(stream,options,callback){var _options$readable,_options$writable;if(arguments.length===2)callback=options,options=kEmptyObject;else if(options==null)options=kEmptyObject;else validateObject(options,\"options\");if(validateFunction(callback,\"callback\"),validateAbortSignal(options.signal,\"options.signal\"),callback=once(callback),isReadableStream(stream)||isWritableStream(stream))return eosWeb(stream,options,callback);if(!isNodeStream(stream))throw new ERR_INVALID_ARG_TYPE(\"stream\",[\"ReadableStream\",\"WritableStream\",\"Stream\"],stream);let readable=(_options$readable=options.readable)!==null&&_options$readable!==void 0?_options$readable:isReadableNodeStream(stream),writable=(_options$writable=options.writable)!==null&&_options$writable!==void 0?_options$writable:isWritableNodeStream(stream),wState=stream._writableState,rState=stream._readableState,onlegacyfinish=()=>{if(!stream.writable)onfinish()},willEmitClose=_willEmitClose(stream)&&isReadableNodeStream(stream)===readable&&isWritableNodeStream(stream)===writable,writableFinished=isWritableFinished(stream,!1),onfinish=()=>{if(writableFinished=!0,stream.destroyed)willEmitClose=!1;if(willEmitClose&&(!stream.readable||readable))return;if(!readable||readableFinished)callback.call(stream)},readableFinished=isReadableFinished(stream,!1),onend=()=>{if(readableFinished=!0,stream.destroyed)willEmitClose=!1;if(willEmitClose&&(!stream.writable||writable))return;if(!writable||writableFinished)callback.call(stream)},onerror=(err)=>{callback.call(stream,err)},closed=isClosed(stream),onclose=()=>{closed=!0;let errored=isWritableErrored(stream)||isReadableErrored(stream);if(errored&&typeof errored!==\"boolean\")return callback.call(stream,errored);if(readable&&!readableFinished&&isReadableNodeStream(stream,!0)){if(!isReadableFinished(stream,!1))return callback.call(stream,new ERR_STREAM_PREMATURE_CLOSE)}if(writable&&!writableFinished){if(!isWritableFinished(stream,!1))return callback.call(stream,new ERR_STREAM_PREMATURE_CLOSE)}callback.call(stream)},onclosed=()=>{closed=!0;let errored=isWritableErrored(stream)||isReadableErrored(stream);if(errored&&typeof errored!==\"boolean\")return callback.call(stream,errored);callback.call(stream)},onrequest=()=>{stream.req.on(\"finish\",onfinish)};if(isRequest(stream)){if(stream.on(\"complete\",onfinish),!willEmitClose)stream.on(\"abort\",onclose);if(stream.req)onrequest();else stream.on(\"request\",onrequest)}else if(writable&&!wState)stream.on(\"end\",onlegacyfinish),stream.on(\"close\",onlegacyfinish);if(!willEmitClose&&typeof stream.aborted===\"boolean\")stream.on(\"aborted\",onclose);if(stream.on(\"end\",onend),stream.on(\"finish\",onfinish),options.error!==!1)stream.on(\"error\",onerror);if(stream.on(\"close\",onclose),closed)process.nextTick(onclose);else if(wState!==null&&wState!==void 0&&wState.errorEmitted||rState!==null&&rState!==void 0&&rState.errorEmitted){if(!willEmitClose)process.nextTick(onclosed)}else if(!readable&&(!willEmitClose||isReadable(stream))&&(writableFinished||isWritable(stream)===!1))process.nextTick(onclosed);else if(!writable&&(!willEmitClose||isWritable(stream))&&(readableFinished||isReadable(stream)===!1))process.nextTick(onclosed);else if(rState&&stream.req&&stream.aborted)process.nextTick(onclosed);let cleanup=()=>{if(callback=nop,stream.removeListener(\"aborted\",onclose),stream.removeListener(\"complete\",onfinish),stream.removeListener(\"abort\",onclose),stream.removeListener(\"request\",onrequest),stream.req)stream.req.removeListener(\"finish\",onfinish);stream.removeListener(\"end\",onlegacyfinish),stream.removeListener(\"close\",onlegacyfinish),stream.removeListener(\"finish\",onfinish),stream.removeListener(\"end\",onend),stream.removeListener(\"error\",onerror),stream.removeListener(\"close\",onclose)};if(options.signal&&!closed){let abort=()=>{let endCallback=callback;cleanup(),endCallback.call(stream,new AbortError(void 0,{cause:options.signal.reason}))};if(options.signal.aborted)process.nextTick(abort);else{addAbortListener=addAbortListener||require_util().addAbortListener;let disposable=addAbortListener(options.signal,abort),originalCallback=callback;callback=once((...args)=>{disposable[SymbolDispose](),originalCallback.apply(stream,args)})}}return cleanup}function eosWeb(stream,options,callback){let isAborted=!1,abort=nop;if(options.signal)if(abort=()=>{isAborted=!0,callback.call(stream,new AbortError(void 0,{cause:options.signal.reason}))},options.signal.aborted)process.nextTick(abort);else{addAbortListener=addAbortListener||require_util().addAbortListener;let disposable=addAbortListener(options.signal,abort),originalCallback=callback;callback=once((...args)=>{disposable[SymbolDispose](),originalCallback.apply(stream,args)})}let resolverFn=(...args)=>{if(!isAborted)process.nextTick(()=>callback.apply(stream,args))};return PromisePrototypeThen(stream[kIsClosedPromise].promise,resolverFn,resolverFn),nop}function finished(stream,opts){var _opts;let autoCleanup=!1;if(opts===null)opts=kEmptyObject;if((_opts=opts)!==null&&_opts!==void 0&&_opts.cleanup)validateBoolean(opts.cleanup,\"cleanup\"),autoCleanup=opts.cleanup;return new Promise2((resolve,reject)=>{let cleanup=eos(stream,opts,(err)=>{if(autoCleanup)cleanup();if(err)reject(err);else resolve()})})}module2.exports=eos;module2.exports.finished=finished});var require_destroy=__commonJS((exports2,module2)=>{var process=require_process(),{aggregateTwoErrors,codes:{ERR_MULTIPLE_CALLBACK},AbortError}=require_errors(),{Symbol:Symbol2}=require_primordials(),{kIsDestroyed,isDestroyed,isFinished,isServerRequest}=require_utils(),kDestroy=Symbol2(\"kDestroy\"),kConstruct=Symbol2(\"kConstruct\");function checkError(err,w,r){if(err){if(err.stack,w&&!w.errored)w.errored=err;if(r&&!r.errored)r.errored=err}}function destroy(err,cb){let r=this._readableState,w=this._writableState,s=w||r;if(w!==null&&w!==void 0&&w.destroyed||r!==null&&r!==void 0&&r.destroyed){if(typeof cb===\"function\")cb();return this}if(checkError(err,w,r),w)w.destroyed=!0;if(r)r.destroyed=!0;if(!s.constructed)this.once(kDestroy,function(er){_destroy(this,aggregateTwoErrors(er,err),cb)});else _destroy(this,err,cb);return this}function _destroy(self,err,cb){let called=!1;function onDestroy(err2){if(called)return;called=!0;let{_readableState:r,_writableState:w}=self;if(checkError(err2,w,r),w)w.closed=!0;if(r)r.closed=!0;if(typeof cb===\"function\")cb(err2);if(err2)process.nextTick(emitErrorCloseNT,self,err2);else process.nextTick(emitCloseNT,self)}try{self._destroy(err||null,onDestroy)}catch(err2){onDestroy(err2)}}function emitErrorCloseNT(self,err){emitErrorNT(self,err),emitCloseNT(self)}function emitCloseNT(self){let{_readableState:r,_writableState:w}=self;if(w)w.closeEmitted=!0;if(r)r.closeEmitted=!0;if(w!==null&&w!==void 0&&w.emitClose||r!==null&&r!==void 0&&r.emitClose)self.emit(\"close\")}function emitErrorNT(self,err){let{_readableState:r,_writableState:w}=self;if(w!==null&&w!==void 0&&w.errorEmitted||r!==null&&r!==void 0&&r.errorEmitted)return;if(w)w.errorEmitted=!0;if(r)r.errorEmitted=!0;self.emit(\"error\",err)}function undestroy(){let r=this._readableState,w=this._writableState;if(r)r.constructed=!0,r.closed=!1,r.closeEmitted=!1,r.destroyed=!1,r.errored=null,r.errorEmitted=!1,r.reading=!1,r.ended=r.readable===!1,r.endEmitted=r.readable===!1;if(w)w.constructed=!0,w.destroyed=!1,w.closed=!1,w.closeEmitted=!1,w.errored=null,w.errorEmitted=!1,w.finalCalled=!1,w.prefinished=!1,w.ended=w.writable===!1,w.ending=w.writable===!1,w.finished=w.writable===!1}function errorOrDestroy(stream,err,sync){let{_readableState:r,_writableState:w}=stream;if(w!==null&&w!==void 0&&w.destroyed||r!==null&&r!==void 0&&r.destroyed)return this;if(r!==null&&r!==void 0&&r.autoDestroy||w!==null&&w!==void 0&&w.autoDestroy)stream.destroy(err);else if(err){if(err.stack,w&&!w.errored)w.errored=err;if(r&&!r.errored)r.errored=err;if(sync)process.nextTick(emitErrorNT,stream,err);else emitErrorNT(stream,err)}}function construct(stream,cb){if(typeof stream._construct!==\"function\")return;let{_readableState:r,_writableState:w}=stream;if(r)r.constructed=!1;if(w)w.constructed=!1;if(stream.once(kConstruct,cb),stream.listenerCount(kConstruct)>1)return;process.nextTick(constructNT,stream)}function constructNT(stream){let called=!1;function onConstruct(err){if(called){errorOrDestroy(stream,err!==null&&err!==void 0?err:new ERR_MULTIPLE_CALLBACK);return}called=!0;let{_readableState:r,_writableState:w}=stream,s=w||r;if(r)r.constructed=!0;if(w)w.constructed=!0;if(s.destroyed)stream.emit(kDestroy,err);else if(err)errorOrDestroy(stream,err,!0);else process.nextTick(emitConstructNT,stream)}try{stream._construct((err)=>{process.nextTick(onConstruct,err)})}catch(err){process.nextTick(onConstruct,err)}}function emitConstructNT(stream){stream.emit(kConstruct)}function isRequest(stream){return(stream===null||stream===void 0?void 0:stream.setHeader)&&typeof stream.abort===\"function\"}function emitCloseLegacy(stream){stream.emit(\"close\")}function emitErrorCloseLegacy(stream,err){stream.emit(\"error\",err),process.nextTick(emitCloseLegacy,stream)}function destroyer(stream,err){if(!stream||isDestroyed(stream))return;if(!err&&!isFinished(stream))err=new AbortError;if(isServerRequest(stream))stream.socket=null,stream.destroy(err);else if(isRequest(stream))stream.abort();else if(isRequest(stream.req))stream.req.abort();else if(typeof stream.destroy===\"function\")stream.destroy(err);else if(typeof stream.close===\"function\")stream.close();else if(err)process.nextTick(emitErrorCloseLegacy,stream,err);else process.nextTick(emitCloseLegacy,stream);if(!stream.destroyed)stream[kIsDestroyed]=!0}module2.exports={construct,destroyer,destroy,undestroy,errorOrDestroy}});var require_legacy=__commonJS((exports2,module2)=>{var{ArrayIsArray,ObjectSetPrototypeOf}=require_primordials(),{EventEmitter:EE}=require(\"events\");function Stream(opts){EE.call(this,opts)}ObjectSetPrototypeOf(Stream.prototype,EE.prototype);ObjectSetPrototypeOf(Stream,EE);Stream.prototype.pipe=function(dest,options){let source=this;function ondata(chunk){if(dest.writable&&dest.write(chunk)===!1&&source.pause)source.pause()}source.on(\"data\",ondata);function ondrain(){if(source.readable&&source.resume)source.resume()}if(dest.on(\"drain\",ondrain),!dest._isStdio&&(!options||options.end!==!1))source.on(\"end\",onend),source.on(\"close\",onclose);let didOnEnd=!1;function onend(){if(didOnEnd)return;didOnEnd=!0,dest.end()}function onclose(){if(didOnEnd)return;if(didOnEnd=!0,typeof dest.destroy===\"function\")dest.destroy()}function onerror(er){if(cleanup(),EE.listenerCount(this,\"error\")===0)this.emit(\"error\",er)}prependListener(source,\"error\",onerror),prependListener(dest,\"error\",onerror);function cleanup(){source.removeListener(\"data\",ondata),dest.removeListener(\"drain\",ondrain),source.removeListener(\"end\",onend),source.removeListener(\"close\",onclose),source.removeListener(\"error\",onerror),dest.removeListener(\"error\",onerror),source.removeListener(\"end\",cleanup),source.removeListener(\"close\",cleanup),dest.removeListener(\"close\",cleanup)}return source.on(\"end\",cleanup),source.on(\"close\",cleanup),dest.on(\"close\",cleanup),dest.emit(\"pipe\",source),dest};function prependListener(emitter,event,fn){if(typeof emitter.prependListener===\"function\")return emitter.prependListener(event,fn);if(!emitter._events||!emitter._events[event])emitter.on(event,fn);else if(ArrayIsArray(emitter._events[event]))emitter._events[event].unshift(fn);else emitter._events[event]=[fn,emitter._events[event]]}module2.exports={Stream,prependListener}});var require_add_abort_signal=__commonJS((exports2,module2)=>{var{SymbolDispose}=require_primordials(),{AbortError,codes}=require_errors(),{isNodeStream,isWebStream,kControllerErrorFunction}=require_utils(),eos=require_end_of_stream(),{ERR_INVALID_ARG_TYPE}=codes,addAbortListener,validateAbortSignal=(signal,name)=>{if(typeof signal!==\"object\"||!(\"aborted\"in signal))throw new ERR_INVALID_ARG_TYPE(name,\"AbortSignal\",signal)};module2.exports.addAbortSignal=function(signal,stream){if(validateAbortSignal(signal,\"signal\"),!isNodeStream(stream)&&!isWebStream(stream))throw new ERR_INVALID_ARG_TYPE(\"stream\",[\"ReadableStream\",\"WritableStream\",\"Stream\"],stream);return module2.exports.addAbortSignalNoValidate(signal,stream)};module2.exports.addAbortSignalNoValidate=function(signal,stream){if(typeof signal!==\"object\"||!(\"aborted\"in signal))return stream;let onAbort=isNodeStream(stream)?()=>{stream.destroy(new AbortError(void 0,{cause:signal.reason}))}:()=>{stream[kControllerErrorFunction](new AbortError(void 0,{cause:signal.reason}))};if(signal.aborted)onAbort();else{addAbortListener=addAbortListener||require_util().addAbortListener;let disposable=addAbortListener(signal,onAbort);eos(stream,disposable[SymbolDispose])}return stream}});var require_buffer_list=__commonJS((exports2,module2)=>{var{StringPrototypeSlice,SymbolIterator,TypedArrayPrototypeSet,Uint8Array:Uint8Array2}=require_primordials(),{Buffer}=require(\"buffer\"),{inspect}=require_util();module2.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(v){let entry={data:v,next:null};if(this.length>0)this.tail.next=entry;else this.head=entry;this.tail=entry,++this.length}unshift(v){let entry={data:v,next:this.head};if(this.length===0)this.tail=entry;this.head=entry,++this.length}shift(){if(this.length===0)return;let ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;return--this.length,ret}clear(){this.head=this.tail=null,this.length=0}join(s){if(this.length===0)return\"\";let p=this.head,ret=\"\"+p.data;while((p=p.next)!==null)ret+=s+p.data;return ret}concat(n){if(this.length===0)return Buffer.alloc(0);let ret=Buffer.allocUnsafe(n>>>0),p=this.head,i=0;while(p)TypedArrayPrototypeSet(ret,p.data,i),i+=p.data.length,p=p.next;return ret}consume(n,hasStrings){let data=this.head.data;if(nstr.length)ret+=str,n-=str.length;else{if(n===str.length)if(ret+=str,++c,p.next)this.head=p.next;else this.head=this.tail=null;else ret+=StringPrototypeSlice(str,0,n),this.head=p,p.data=StringPrototypeSlice(str,n);break}++c}while((p=p.next)!==null);return this.length-=c,ret}_getBuffer(n){let ret=Buffer.allocUnsafe(n),retLen=n,p=this.head,c=0;do{let buf=p.data;if(n>buf.length)TypedArrayPrototypeSet(ret,buf,retLen-n),n-=buf.length;else{if(n===buf.length)if(TypedArrayPrototypeSet(ret,buf,retLen-n),++c,p.next)this.head=p.next;else this.head=this.tail=null;else TypedArrayPrototypeSet(ret,new Uint8Array2(buf.buffer,buf.byteOffset,n),retLen-n),this.head=p,p.data=buf.slice(n);break}++c}while((p=p.next)!==null);return this.length-=c,ret}[Symbol.for(\"nodejs.util.inspect.custom\")](_,options){return inspect(this,{...options,depth:0,customInspect:!1})}}});var require_state=__commonJS((exports2,module2)=>{var{MathFloor,NumberIsInteger}=require_primordials(),{validateInteger}=require_validators(),{ERR_INVALID_ARG_VALUE}=require_errors().codes,defaultHighWaterMarkBytes=16384,defaultHighWaterMarkObjectMode=16;function highWaterMarkFrom(options,isDuplex,duplexKey){return options.highWaterMark!=null?options.highWaterMark:isDuplex?options[duplexKey]:null}function getDefaultHighWaterMark(objectMode){return objectMode?defaultHighWaterMarkObjectMode:defaultHighWaterMarkBytes}function setDefaultHighWaterMark(objectMode,value){if(validateInteger(value,\"value\",0),objectMode)defaultHighWaterMarkObjectMode=value;else defaultHighWaterMarkBytes=value}function getHighWaterMark(state,options,duplexKey,isDuplex){let hwm=highWaterMarkFrom(options,isDuplex,duplexKey);if(hwm!=null){if(!NumberIsInteger(hwm)||hwm<0){let name=isDuplex?`options.${duplexKey}`:\"options.highWaterMark\";throw new ERR_INVALID_ARG_VALUE(name,hwm)}return MathFloor(hwm)}return getDefaultHighWaterMark(state.objectMode)}module2.exports={getHighWaterMark,getDefaultHighWaterMark,setDefaultHighWaterMark}});var require_safe_buffer=__commonJS((exports2,module2)=>{/*! safe-buffer. MIT License. Feross Aboukhadijeh */var buffer=require(\"buffer\"),Buffer=buffer.Buffer;function copyProps(src,dst){for(var key in src)dst[key]=src[key]}if(Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow)module2.exports=buffer;else copyProps(buffer,exports2),exports2.Buffer=SafeBuffer;function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length)}SafeBuffer.prototype=Object.create(Buffer.prototype);copyProps(Buffer,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg===\"number\")throw TypeError(\"Argument must not be a number\");return Buffer(arg,encodingOrOffset,length)};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!==\"number\")throw TypeError(\"Argument must be a number\");var buf=Buffer(size);if(fill!==void 0)if(typeof encoding===\"string\")buf.fill(fill,encoding);else buf.fill(fill);else buf.fill(0);return buf};SafeBuffer.allocUnsafe=function(size){if(typeof size!==\"number\")throw TypeError(\"Argument must be a number\");return Buffer(size)};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!==\"number\")throw TypeError(\"Argument must be a number\");return buffer.SlowBuffer(size)}});var require_string_decoder=__commonJS((exports2)=>{var Buffer=require_safe_buffer().Buffer,isEncoding=Buffer.isEncoding||function(encoding){switch(encoding=\"\"+encoding,encoding&&encoding.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return!0;default:return!1}};function _normalizeEncoding(enc){if(!enc)return\"utf8\";var retried;while(!0)switch(enc){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return enc;default:if(retried)return;enc=(\"\"+enc).toLowerCase(),retried=!0}}function normalizeEncoding(enc){var nenc=_normalizeEncoding(enc);if(typeof nenc!==\"string\"&&(Buffer.isEncoding===isEncoding||!isEncoding(enc)))throw Error(\"Unknown encoding: \"+enc);return nenc||enc}exports2.StringDecoder=StringDecoder;function StringDecoder(encoding){this.encoding=normalizeEncoding(encoding);var nb;switch(this.encoding){case\"utf16le\":this.text=utf16Text,this.end=utf16End,nb=4;break;case\"utf8\":this.fillLast=utf8FillLast,nb=4;break;case\"base64\":this.text=base64Text,this.end=base64End,nb=3;break;default:this.write=simpleWrite,this.end=simpleEnd;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Buffer.allocUnsafe(nb)}StringDecoder.prototype.write=function(buf){if(buf.length===0)return\"\";var r,i;if(this.lastNeed){if(r=this.fillLast(buf),r===void 0)return\"\";i=this.lastNeed,this.lastNeed=0}else i=0;if(i>5===6)return 2;else if(byte>>4===14)return 3;else if(byte>>3===30)return 4;return byte>>6===2?-1:-2}function utf8CheckIncomplete(self,buf,i){var j=buf.length-1;if(j=0){if(nb>0)self.lastNeed=nb-1;return nb}if(--j=0){if(nb>0)self.lastNeed=nb-2;return nb}if(--j=0){if(nb>0)if(nb===2)nb=0;else self.lastNeed=nb-3;return nb}return 0}function utf8CheckExtraBytes(self,buf,p){if((buf[0]&192)!==128)return self.lastNeed=0,\"ļæ½\";if(self.lastNeed>1&&buf.length>1){if((buf[1]&192)!==128)return self.lastNeed=1,\"ļæ½\";if(self.lastNeed>2&&buf.length>2){if((buf[2]&192)!==128)return self.lastNeed=2,\"ļæ½\"}}}function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed,r=utf8CheckExtraBytes(this,buf,p);if(r!==void 0)return r;if(this.lastNeed<=buf.length)return buf.copy(this.lastChar,p,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);buf.copy(this.lastChar,p,0,buf.length),this.lastNeed-=buf.length}function utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString(\"utf8\",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);return buf.copy(this.lastChar,0,end),buf.toString(\"utf8\",i,end)}function utf8End(buf){var r=buf&&buf.length?this.write(buf):\"\";if(this.lastNeed)return r+\"ļæ½\";return r}function utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString(\"utf16le\",i);if(r){var c=r.charCodeAt(r.length-1);if(c>=55296&&c<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=buf[buf.length-1],buf.toString(\"utf16le\",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):\"\";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString(\"utf16le\",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;if(n===0)return buf.toString(\"base64\",i);if(this.lastNeed=3-n,this.lastTotal=3,n===1)this.lastChar[0]=buf[buf.length-1];else this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1];return buf.toString(\"base64\",i,buf.length-n)}function base64End(buf){var r=buf&&buf.length?this.write(buf):\"\";if(this.lastNeed)return r+this.lastChar.toString(\"base64\",0,3-this.lastNeed);return r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):\"\"}});var require_from=__commonJS((exports2,module2)=>{var process=require_process(),{PromisePrototypeThen,SymbolAsyncIterator,SymbolIterator}=require_primordials(),{Buffer}=require(\"buffer\"),{ERR_INVALID_ARG_TYPE,ERR_STREAM_NULL_VALUES}=require_errors().codes;function from(Readable,iterable,opts){let iterator;if(typeof iterable===\"string\"||iterable instanceof Buffer)return new Readable({objectMode:!0,...opts,read(){this.push(iterable),this.push(null)}});let isAsync;if(iterable&&iterable[SymbolAsyncIterator])isAsync=!0,iterator=iterable[SymbolAsyncIterator]();else if(iterable&&iterable[SymbolIterator])isAsync=!1,iterator=iterable[SymbolIterator]();else throw new ERR_INVALID_ARG_TYPE(\"iterable\",[\"Iterable\"],iterable);let readable=new Readable({objectMode:!0,highWaterMark:1,...opts}),reading=!1;readable._read=function(){if(!reading)reading=!0,next()},readable._destroy=function(error,cb){PromisePrototypeThen(close(error),()=>process.nextTick(cb,error),(e)=>process.nextTick(cb,e||error))};async function close(error){let hadError=error!==void 0&&error!==null,hasThrow=typeof iterator.throw===\"function\";if(hadError&&hasThrow){let{value,done}=await iterator.throw(error);if(await value,done)return}if(typeof iterator.return===\"function\"){let{value}=await iterator.return();await value}}async function next(){for(;;){try{let{value,done}=isAsync?await iterator.next():iterator.next();if(done)readable.push(null);else{let res=value&&typeof value.then===\"function\"?await value:value;if(res===null)throw reading=!1,new ERR_STREAM_NULL_VALUES;else if(readable.push(res))continue;else reading=!1}}catch(err){readable.destroy(err)}break}}return readable}module2.exports=from});var require_readable=__commonJS((exports2,module2)=>{var process=require_process(),{ArrayPrototypeIndexOf,NumberIsInteger,NumberIsNaN,NumberParseInt,ObjectDefineProperties,ObjectKeys,ObjectSetPrototypeOf,Promise:Promise2,SafeSet,SymbolAsyncDispose,SymbolAsyncIterator,Symbol:Symbol2}=require_primordials();module2.exports=Readable;Readable.ReadableState=ReadableState;var{EventEmitter:EE}=require(\"events\"),{Stream,prependListener}=require_legacy(),{Buffer}=require(\"buffer\"),{addAbortSignal}=require_add_abort_signal(),eos=require_end_of_stream(),debug=require_util().debuglog(\"stream\",(fn)=>{debug=fn}),BufferList=require_buffer_list(),destroyImpl=require_destroy(),{getHighWaterMark,getDefaultHighWaterMark}=require_state(),{aggregateTwoErrors,codes:{ERR_INVALID_ARG_TYPE,ERR_METHOD_NOT_IMPLEMENTED,ERR_OUT_OF_RANGE,ERR_STREAM_PUSH_AFTER_EOF,ERR_STREAM_UNSHIFT_AFTER_END_EVENT},AbortError}=require_errors(),{validateObject}=require_validators(),kPaused=Symbol2(\"kPaused\"),{StringDecoder}=require_string_decoder(),from=require_from();ObjectSetPrototypeOf(Readable.prototype,Stream.prototype);ObjectSetPrototypeOf(Readable,Stream);var nop=()=>{},{errorOrDestroy}=destroyImpl,kObjectMode=1,kEnded=2,kEndEmitted=4,kReading=8,kConstructed=16,kSync=32,kNeedReadable=64,kEmittedReadable=128,kReadableListening=256,kResumeScheduled=512,kErrorEmitted=1024,kEmitClose=2048,kAutoDestroy=4096,kDestroyed=8192,kClosed=16384,kCloseEmitted=32768,kMultiAwaitDrain=65536,kReadingMore=131072,kDataEmitted=262144;function makeBitMapDescriptor(bit){return{enumerable:!1,get(){return(this.state&bit)!==0},set(value){if(value)this.state|=bit;else this.state&=~bit}}}ObjectDefineProperties(ReadableState.prototype,{objectMode:makeBitMapDescriptor(kObjectMode),ended:makeBitMapDescriptor(kEnded),endEmitted:makeBitMapDescriptor(kEndEmitted),reading:makeBitMapDescriptor(kReading),constructed:makeBitMapDescriptor(kConstructed),sync:makeBitMapDescriptor(kSync),needReadable:makeBitMapDescriptor(kNeedReadable),emittedReadable:makeBitMapDescriptor(kEmittedReadable),readableListening:makeBitMapDescriptor(kReadableListening),resumeScheduled:makeBitMapDescriptor(kResumeScheduled),errorEmitted:makeBitMapDescriptor(kErrorEmitted),emitClose:makeBitMapDescriptor(kEmitClose),autoDestroy:makeBitMapDescriptor(kAutoDestroy),destroyed:makeBitMapDescriptor(kDestroyed),closed:makeBitMapDescriptor(kClosed),closeEmitted:makeBitMapDescriptor(kCloseEmitted),multiAwaitDrain:makeBitMapDescriptor(kMultiAwaitDrain),readingMore:makeBitMapDescriptor(kReadingMore),dataEmitted:makeBitMapDescriptor(kDataEmitted)});function ReadableState(options,stream,isDuplex){if(typeof isDuplex!==\"boolean\")isDuplex=stream instanceof require_duplex();if(this.state=kEmitClose|kAutoDestroy|kConstructed|kSync,options&&options.objectMode)this.state|=kObjectMode;if(isDuplex&&options&&options.readableObjectMode)this.state|=kObjectMode;if(this.highWaterMark=options?getHighWaterMark(this,options,\"readableHighWaterMark\",isDuplex):getDefaultHighWaterMark(!1),this.buffer=new BufferList,this.length=0,this.pipes=[],this.flowing=null,this[kPaused]=null,options&&options.emitClose===!1)this.state&=~kEmitClose;if(options&&options.autoDestroy===!1)this.state&=~kAutoDestroy;if(this.errored=null,this.defaultEncoding=options&&options.defaultEncoding||\"utf8\",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,options&&options.encoding)this.decoder=new StringDecoder(options.encoding),this.encoding=options.encoding}function Readable(options){if(!(this instanceof Readable))return new Readable(options);let isDuplex=this instanceof require_duplex();if(this._readableState=new ReadableState(options,this,isDuplex),options){if(typeof options.read===\"function\")this._read=options.read;if(typeof options.destroy===\"function\")this._destroy=options.destroy;if(typeof options.construct===\"function\")this._construct=options.construct;if(options.signal&&!isDuplex)addAbortSignal(options.signal,this)}Stream.call(this,options),destroyImpl.construct(this,()=>{if(this._readableState.needReadable)maybeReadMore(this,this._readableState)})}Readable.prototype.destroy=destroyImpl.destroy;Readable.prototype._undestroy=destroyImpl.undestroy;Readable.prototype._destroy=function(err,cb){cb(err)};Readable.prototype[EE.captureRejectionSymbol]=function(err){this.destroy(err)};Readable.prototype[SymbolAsyncDispose]=function(){let error;if(!this.destroyed)error=this.readableEnded?null:new AbortError,this.destroy(error);return new Promise2((resolve,reject)=>eos(this,(err)=>err&&err!==error?reject(err):resolve(null)))};Readable.prototype.push=function(chunk,encoding){return readableAddChunk(this,chunk,encoding,!1)};Readable.prototype.unshift=function(chunk,encoding){return readableAddChunk(this,chunk,encoding,!0)};function readableAddChunk(stream,chunk,encoding,addToFront){debug(\"readableAddChunk\",chunk);let state=stream._readableState,err;if((state.state&kObjectMode)===0){if(typeof chunk===\"string\"){if(encoding=encoding||state.defaultEncoding,state.encoding!==encoding)if(addToFront&&state.encoding)chunk=Buffer.from(chunk,encoding).toString(state.encoding);else chunk=Buffer.from(chunk,encoding),encoding=\"\"}else if(chunk instanceof Buffer)encoding=\"\";else if(Stream._isUint8Array(chunk))chunk=Stream._uint8ArrayToBuffer(chunk),encoding=\"\";else if(chunk!=null)err=new ERR_INVALID_ARG_TYPE(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],chunk)}if(err)errorOrDestroy(stream,err);else if(chunk===null)state.state&=~kReading,onEofChunk(stream,state);else if((state.state&kObjectMode)!==0||chunk&&chunk.length>0)if(addToFront)if((state.state&kEndEmitted)!==0)errorOrDestroy(stream,new ERR_STREAM_UNSHIFT_AFTER_END_EVENT);else if(state.destroyed||state.errored)return!1;else addChunk(stream,state,chunk,!0);else if(state.ended)errorOrDestroy(stream,new ERR_STREAM_PUSH_AFTER_EOF);else if(state.destroyed||state.errored)return!1;else if(state.state&=~kReading,state.decoder&&!encoding)if(chunk=state.decoder.write(chunk),state.objectMode||chunk.length!==0)addChunk(stream,state,chunk,!1);else maybeReadMore(stream,state);else addChunk(stream,state,chunk,!1);else if(!addToFront)state.state&=~kReading,maybeReadMore(stream,state);return!state.ended&&(state.length0){if((state.state&kMultiAwaitDrain)!==0)state.awaitDrainWriters.clear();else state.awaitDrainWriters=null;state.dataEmitted=!0,stream.emit(\"data\",chunk)}else{if(state.length+=state.objectMode?1:chunk.length,addToFront)state.buffer.unshift(chunk);else state.buffer.push(chunk);if((state.state&kNeedReadable)!==0)emitReadable(stream)}maybeReadMore(stream,state)}Readable.prototype.isPaused=function(){let state=this._readableState;return state[kPaused]===!0||state.flowing===!1};Readable.prototype.setEncoding=function(enc){let decoder=new StringDecoder(enc);this._readableState.decoder=decoder,this._readableState.encoding=this._readableState.decoder.encoding;let buffer=this._readableState.buffer,content=\"\";for(let data of buffer)content+=decoder.write(data);if(buffer.clear(),content!==\"\")buffer.push(content);return this._readableState.length=content.length,this};var MAX_HWM=1073741824;function computeNewHighWaterMark(n){if(n>MAX_HWM)throw new ERR_OUT_OF_RANGE(\"size\",\"<= 1GiB\",n);else n--,n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,n|=n>>>16,n++;return n}function howMuchToRead(n,state){if(n<=0||state.length===0&&state.ended)return 0;if((state.state&kObjectMode)!==0)return 1;if(NumberIsNaN(n)){if(state.flowing&&state.length)return state.buffer.first().length;return state.length}if(n<=state.length)return n;return state.ended?state.length:0}Readable.prototype.read=function(n){if(debug(\"read\",n),n===void 0)n=NaN;else if(!NumberIsInteger(n))n=NumberParseInt(n,10);let state=this._readableState,nOrig=n;if(n>state.highWaterMark)state.highWaterMark=computeNewHighWaterMark(n);if(n!==0)state.state&=~kEmittedReadable;if(n===0&&state.needReadable&&((state.highWaterMark!==0?state.length>=state.highWaterMark:state.length>0)||state.ended)){if(debug(\"read: emitReadable\",state.length,state.ended),state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null}if(n=howMuchToRead(n,state),n===0&&state.ended){if(state.length===0)endReadable(this);return null}let doRead=(state.state&kNeedReadable)!==0;if(debug(\"need readable\",doRead),state.length===0||state.length-n0)ret=fromList(n,state);else ret=null;if(ret===null)state.needReadable=state.length<=state.highWaterMark,n=0;else if(state.length-=n,state.multiAwaitDrain)state.awaitDrainWriters.clear();else state.awaitDrainWriters=null;if(state.length===0){if(!state.ended)state.needReadable=!0;if(nOrig!==n&&state.ended)endReadable(this)}if(ret!==null&&!state.errorEmitted&&!state.closeEmitted)state.dataEmitted=!0,this.emit(\"data\",ret);return ret};function onEofChunk(stream,state){if(debug(\"onEofChunk\"),state.ended)return;if(state.decoder){let chunk=state.decoder.end();if(chunk&&chunk.length)state.buffer.push(chunk),state.length+=state.objectMode?1:chunk.length}if(state.ended=!0,state.sync)emitReadable(stream);else state.needReadable=!1,state.emittedReadable=!0,emitReadable_(stream)}function emitReadable(stream){let state=stream._readableState;if(debug(\"emitReadable\",state.needReadable,state.emittedReadable),state.needReadable=!1,!state.emittedReadable)debug(\"emitReadable\",state.flowing),state.emittedReadable=!0,process.nextTick(emitReadable_,stream)}function emitReadable_(stream){let state=stream._readableState;if(debug(\"emitReadable_\",state.destroyed,state.length,state.ended),!state.destroyed&&!state.errored&&(state.length||state.ended))stream.emit(\"readable\"),state.emittedReadable=!1;state.needReadable=!state.flowing&&!state.ended&&state.length<=state.highWaterMark,flow(stream)}function maybeReadMore(stream,state){if(!state.readingMore&&state.constructed)state.readingMore=!0,process.nextTick(maybeReadMore_,stream,state)}function maybeReadMore_(stream,state){while(!state.reading&&!state.ended&&(state.length1&&state.pipes.includes(dest))debug(\"false write response, pause\",state.awaitDrainWriters.size),state.awaitDrainWriters.add(dest);src.pause()}if(!ondrain)ondrain=pipeOnDrain(src,dest),dest.on(\"drain\",ondrain)}src.on(\"data\",ondata);function ondata(chunk){debug(\"ondata\");let ret=dest.write(chunk);if(debug(\"dest.write\",ret),ret===!1)pause()}function onerror(er){if(debug(\"onerror\",er),unpipe(),dest.removeListener(\"error\",onerror),dest.listenerCount(\"error\")===0){let s=dest._writableState||dest._readableState;if(s&&!s.errorEmitted)errorOrDestroy(dest,er);else dest.emit(\"error\",er)}}prependListener(dest,\"error\",onerror);function onclose(){dest.removeListener(\"finish\",onfinish),unpipe()}dest.once(\"close\",onclose);function onfinish(){debug(\"onfinish\"),dest.removeListener(\"close\",onclose),unpipe()}dest.once(\"finish\",onfinish);function unpipe(){debug(\"unpipe\"),src.unpipe(dest)}if(dest.emit(\"pipe\",src),dest.writableNeedDrain===!0)pause();else if(!state.flowing)debug(\"pipe resume\"),src.resume();return dest};function pipeOnDrain(src,dest){return function(){let state=src._readableState;if(state.awaitDrainWriters===dest)debug(\"pipeOnDrain\",1),state.awaitDrainWriters=null;else if(state.multiAwaitDrain)debug(\"pipeOnDrain\",state.awaitDrainWriters.size),state.awaitDrainWriters.delete(dest);if((!state.awaitDrainWriters||state.awaitDrainWriters.size===0)&&src.listenerCount(\"data\"))src.resume()}}Readable.prototype.unpipe=function(dest){let state=this._readableState,unpipeInfo={hasUnpiped:!1};if(state.pipes.length===0)return this;if(!dest){let dests=state.pipes;state.pipes=[],this.pause();for(let i=0;i0,state.flowing!==!1)this.resume()}else if(ev===\"readable\"){if(!state.endEmitted&&!state.readableListening){if(state.readableListening=state.needReadable=!0,state.flowing=!1,state.emittedReadable=!1,debug(\"on readable\",state.length,state.reading),state.length)emitReadable(this);else if(!state.reading)process.nextTick(nReadingNextTick,this)}}return res};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(ev,fn){let res=Stream.prototype.removeListener.call(this,ev,fn);if(ev===\"readable\")process.nextTick(updateReadableListening,this);return res};Readable.prototype.off=Readable.prototype.removeListener;Readable.prototype.removeAllListeners=function(ev){let res=Stream.prototype.removeAllListeners.apply(this,arguments);if(ev===\"readable\"||ev===void 0)process.nextTick(updateReadableListening,this);return res};function updateReadableListening(self){let state=self._readableState;if(state.readableListening=self.listenerCount(\"readable\")>0,state.resumeScheduled&&state[kPaused]===!1)state.flowing=!0;else if(self.listenerCount(\"data\")>0)self.resume();else if(!state.readableListening)state.flowing=null}function nReadingNextTick(self){debug(\"readable nexttick read 0\"),self.read(0)}Readable.prototype.resume=function(){let state=this._readableState;if(!state.flowing)debug(\"resume\"),state.flowing=!state.readableListening,resume(this,state);return state[kPaused]=!1,this};function resume(stream,state){if(!state.resumeScheduled)state.resumeScheduled=!0,process.nextTick(resume_,stream,state)}function resume_(stream,state){if(debug(\"resume\",state.reading),!state.reading)stream.read(0);if(state.resumeScheduled=!1,stream.emit(\"resume\"),flow(stream),state.flowing&&!state.reading)stream.read(0)}Readable.prototype.pause=function(){if(debug(\"call pause flowing=%j\",this._readableState.flowing),this._readableState.flowing!==!1)debug(\"pause\"),this._readableState.flowing=!1,this.emit(\"pause\");return this._readableState[kPaused]=!0,this};function flow(stream){let state=stream._readableState;debug(\"flow\",state.flowing);while(state.flowing&&stream.read()!==null);}Readable.prototype.wrap=function(stream){let paused=!1;stream.on(\"data\",(chunk)=>{if(!this.push(chunk)&&stream.pause)paused=!0,stream.pause()}),stream.on(\"end\",()=>{this.push(null)}),stream.on(\"error\",(err)=>{errorOrDestroy(this,err)}),stream.on(\"close\",()=>{this.destroy()}),stream.on(\"destroy\",()=>{this.destroy()}),this._read=()=>{if(paused&&stream.resume)paused=!1,stream.resume()};let streamKeys=ObjectKeys(stream);for(let j=1;j{error=err?aggregateTwoErrors(error,err):null,callback(),callback=nop});try{while(!0){let chunk=stream.destroyed?null:stream.read();if(chunk!==null)yield chunk;else if(error)throw error;else if(error===null)return;else await new Promise2(next)}}catch(err){throw error=aggregateTwoErrors(error,err),error}finally{if((error||(options===null||options===void 0?void 0:options.destroyOnReturn)!==!1)&&(error===void 0||stream._readableState.autoDestroy))destroyImpl.destroyer(stream,null);else stream.off(\"readable\",next),cleanup()}}ObjectDefineProperties(Readable.prototype,{readable:{__proto__:null,get(){let r=this._readableState;return!!r&&r.readable!==!1&&!r.destroyed&&!r.errorEmitted&&!r.endEmitted},set(val){if(this._readableState)this._readableState.readable=!!val}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(state){if(this._readableState)this._readableState.flowing=state}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(value){if(!this._readableState)return;this._readableState.destroyed=value}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}});ObjectDefineProperties(ReadableState.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[kPaused]!==!1},set(value){this[kPaused]=!!value}}});Readable._fromList=fromList;function fromList(n,state){if(state.length===0)return null;let ret;if(state.objectMode)ret=state.buffer.shift();else if(!n||n>=state.length){if(state.decoder)ret=state.buffer.join(\"\");else if(state.buffer.length===1)ret=state.buffer.first();else ret=state.buffer.concat(state.length);state.buffer.clear()}else ret=state.buffer.consume(n,state.decoder);return ret}function endReadable(stream){let state=stream._readableState;if(debug(\"endReadable\",state.endEmitted),!state.endEmitted)state.ended=!0,process.nextTick(endReadableNT,state,stream)}function endReadableNT(state,stream){if(debug(\"endReadableNT\",state.endEmitted,state.length),!state.errored&&!state.closeEmitted&&!state.endEmitted&&state.length===0){if(state.endEmitted=!0,stream.emit(\"end\"),stream.writable&&stream.allowHalfOpen===!1)process.nextTick(endWritableNT,stream);else if(state.autoDestroy){let wState=stream._writableState;if(!wState||wState.autoDestroy&&(wState.finished||wState.writable===!1))stream.destroy()}}}function endWritableNT(stream){if(stream.writable&&!stream.writableEnded&&!stream.destroyed)stream.end()}Readable.from=function(iterable,opts){return from(Readable,iterable,opts)};var webStreamsAdapters;function lazyWebStreams(){if(webStreamsAdapters===void 0)webStreamsAdapters={};return webStreamsAdapters}Readable.fromWeb=function(readableStream,options){return lazyWebStreams().newStreamReadableFromReadableStream(readableStream,options)};Readable.toWeb=function(streamReadable,options){return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable,options)};Readable.wrap=function(src,options){var _ref,_src$readableObjectMo;return new Readable({objectMode:(_ref=(_src$readableObjectMo=src.readableObjectMode)!==null&&_src$readableObjectMo!==void 0?_src$readableObjectMo:src.objectMode)!==null&&_ref!==void 0?_ref:!0,...options,destroy(err,callback){destroyImpl.destroyer(src,err),callback(err)}}).wrap(src)}});var require_writable=__commonJS((exports2,module2)=>{var process=require_process(),{ArrayPrototypeSlice,Error:Error2,FunctionPrototypeSymbolHasInstance,ObjectDefineProperty,ObjectDefineProperties,ObjectSetPrototypeOf,StringPrototypeToLowerCase,Symbol:Symbol2,SymbolHasInstance}=require_primordials();module2.exports=Writable;Writable.WritableState=WritableState;var{EventEmitter:EE}=require(\"events\"),Stream=require_legacy().Stream,{Buffer}=require(\"buffer\"),destroyImpl=require_destroy(),{addAbortSignal}=require_add_abort_signal(),{getHighWaterMark,getDefaultHighWaterMark}=require_state(),{ERR_INVALID_ARG_TYPE,ERR_METHOD_NOT_IMPLEMENTED,ERR_MULTIPLE_CALLBACK,ERR_STREAM_CANNOT_PIPE,ERR_STREAM_DESTROYED,ERR_STREAM_ALREADY_FINISHED,ERR_STREAM_NULL_VALUES,ERR_STREAM_WRITE_AFTER_END,ERR_UNKNOWN_ENCODING}=require_errors().codes,{errorOrDestroy}=destroyImpl;ObjectSetPrototypeOf(Writable.prototype,Stream.prototype);ObjectSetPrototypeOf(Writable,Stream);function nop(){}var kOnFinished=Symbol2(\"kOnFinished\");function WritableState(options,stream,isDuplex){if(typeof isDuplex!==\"boolean\")isDuplex=stream instanceof require_duplex();if(this.objectMode=!!(options&&options.objectMode),isDuplex)this.objectMode=this.objectMode||!!(options&&options.writableObjectMode);this.highWaterMark=options?getHighWaterMark(this,options,\"writableHighWaterMark\",isDuplex):getDefaultHighWaterMark(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;let noDecode=!!(options&&options.decodeStrings===!1);this.decodeStrings=!noDecode,this.defaultEncoding=options&&options.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=onwrite.bind(void 0,stream),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,resetBuffer(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!options||options.emitClose!==!1,this.autoDestroy=!options||options.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[kOnFinished]=[]}function resetBuffer(state){state.buffered=[],state.bufferedIndex=0,state.allBuffers=!0,state.allNoop=!0}WritableState.prototype.getBuffer=function(){return ArrayPrototypeSlice(this.buffered,this.bufferedIndex)};ObjectDefineProperty(WritableState.prototype,\"bufferedRequestCount\",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function Writable(options){let isDuplex=this instanceof require_duplex();if(!isDuplex&&!FunctionPrototypeSymbolHasInstance(Writable,this))return new Writable(options);if(this._writableState=new WritableState(options,this,isDuplex),options){if(typeof options.write===\"function\")this._write=options.write;if(typeof options.writev===\"function\")this._writev=options.writev;if(typeof options.destroy===\"function\")this._destroy=options.destroy;if(typeof options.final===\"function\")this._final=options.final;if(typeof options.construct===\"function\")this._construct=options.construct;if(options.signal)addAbortSignal(options.signal,this)}Stream.call(this,options),destroyImpl.construct(this,()=>{let state=this._writableState;if(!state.writing)clearBuffer(this,state);finishMaybe(this,state)})}ObjectDefineProperty(Writable,SymbolHasInstance,{__proto__:null,value:function(object){if(FunctionPrototypeSymbolHasInstance(this,object))return!0;if(this!==Writable)return!1;return object&&object._writableState instanceof WritableState}});Writable.prototype.pipe=function(){errorOrDestroy(this,new ERR_STREAM_CANNOT_PIPE)};function _write(stream,chunk,encoding,cb){let state=stream._writableState;if(typeof encoding===\"function\")cb=encoding,encoding=state.defaultEncoding;else{if(!encoding)encoding=state.defaultEncoding;else if(encoding!==\"buffer\"&&!Buffer.isEncoding(encoding))throw new ERR_UNKNOWN_ENCODING(encoding);if(typeof cb!==\"function\")cb=nop}if(chunk===null)throw new ERR_STREAM_NULL_VALUES;else if(!state.objectMode)if(typeof chunk===\"string\"){if(state.decodeStrings!==!1)chunk=Buffer.from(chunk,encoding),encoding=\"buffer\"}else if(chunk instanceof Buffer)encoding=\"buffer\";else if(Stream._isUint8Array(chunk))chunk=Stream._uint8ArrayToBuffer(chunk),encoding=\"buffer\";else throw new ERR_INVALID_ARG_TYPE(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],chunk);let err;if(state.ending)err=new ERR_STREAM_WRITE_AFTER_END;else if(state.destroyed)err=new ERR_STREAM_DESTROYED(\"write\");if(err)return process.nextTick(cb,err),errorOrDestroy(stream,err,!0),err;return state.pendingcb++,writeOrBuffer(stream,state,chunk,encoding,cb)}Writable.prototype.write=function(chunk,encoding,cb){return _write(this,chunk,encoding,cb)===!0};Writable.prototype.cork=function(){this._writableState.corked++};Writable.prototype.uncork=function(){let state=this._writableState;if(state.corked){if(state.corked--,!state.writing)clearBuffer(this,state)}};Writable.prototype.setDefaultEncoding=function(encoding){if(typeof encoding===\"string\")encoding=StringPrototypeToLowerCase(encoding);if(!Buffer.isEncoding(encoding))throw new ERR_UNKNOWN_ENCODING(encoding);return this._writableState.defaultEncoding=encoding,this};function writeOrBuffer(stream,state,chunk,encoding,callback){let len=state.objectMode?1:chunk.length;state.length+=len;let ret=state.lengthstate.bufferedIndex)clearBuffer(stream,state);if(sync)if(state.afterWriteTickInfo!==null&&state.afterWriteTickInfo.cb===cb)state.afterWriteTickInfo.count++;else state.afterWriteTickInfo={count:1,cb,stream,state},process.nextTick(afterWriteTick,state.afterWriteTickInfo);else afterWrite(stream,state,1,cb)}}function afterWriteTick({stream,state,count,cb}){return state.afterWriteTickInfo=null,afterWrite(stream,state,count,cb)}function afterWrite(stream,state,count,cb){if(!state.ending&&!stream.destroyed&&state.length===0&&state.needDrain)state.needDrain=!1,stream.emit(\"drain\");while(count-- >0)state.pendingcb--,cb();if(state.destroyed)errorBuffer(state);finishMaybe(stream,state)}function errorBuffer(state){if(state.writing)return;for(let n=state.bufferedIndex;n1&&stream._writev){state.pendingcb-=bufferedLength-1;let callback=state.allNoop?nop:(err)=>{for(let n=i;n256)buffered.splice(0,i),state.bufferedIndex=0;else state.bufferedIndex=i}state.bufferProcessing=!1}Writable.prototype._write=function(chunk,encoding,cb){if(this._writev)this._writev([{chunk,encoding}],cb);else throw new ERR_METHOD_NOT_IMPLEMENTED(\"_write()\")};Writable.prototype._writev=null;Writable.prototype.end=function(chunk,encoding,cb){let state=this._writableState;if(typeof chunk===\"function\")cb=chunk,chunk=null,encoding=null;else if(typeof encoding===\"function\")cb=encoding,encoding=null;let err;if(chunk!==null&&chunk!==void 0){let ret=_write(this,chunk,encoding);if(ret instanceof Error2)err=ret}if(state.corked)state.corked=1,this.uncork();if(err);else if(!state.errored&&!state.ending)state.ending=!0,finishMaybe(this,state,!0),state.ended=!0;else if(state.finished)err=new ERR_STREAM_ALREADY_FINISHED(\"end\");else if(state.destroyed)err=new ERR_STREAM_DESTROYED(\"end\");if(typeof cb===\"function\")if(err||state.finished)process.nextTick(cb,err);else state[kOnFinished].push(cb);return this};function needFinish(state){return state.ending&&!state.destroyed&&state.constructed&&state.length===0&&!state.errored&&state.buffered.length===0&&!state.finished&&!state.writing&&!state.errorEmitted&&!state.closeEmitted}function callFinal(stream,state){let called=!1;function onFinish(err){if(called){errorOrDestroy(stream,err!==null&&err!==void 0?err:ERR_MULTIPLE_CALLBACK());return}if(called=!0,state.pendingcb--,err){let onfinishCallbacks=state[kOnFinished].splice(0);for(let i=0;i{if(needFinish(state2))finish(stream2,state2);else state2.pendingcb--},stream,state);else if(needFinish(state))state.pendingcb++,finish(stream,state)}}}function finish(stream,state){state.pendingcb--,state.finished=!0;let onfinishCallbacks=state[kOnFinished].splice(0);for(let i=0;i{var process=require_process(),bufferModule=require(\"buffer\"),{isReadable,isWritable,isIterable,isNodeStream,isReadableNodeStream,isWritableNodeStream,isDuplexNodeStream,isReadableStream,isWritableStream}=require_utils(),eos=require_end_of_stream(),{AbortError,codes:{ERR_INVALID_ARG_TYPE,ERR_INVALID_RETURN_VALUE}}=require_errors(),{destroyer}=require_destroy(),Duplex=require_duplex(),Readable=require_readable(),Writable=require_writable(),{createDeferredPromise}=require_util(),from=require_from(),Blob=globalThis.Blob||bufferModule.Blob,isBlob=typeof Blob<\"u\"?function(b){return b instanceof Blob}:function(b){return!1},AbortController=globalThis.AbortController||require_abort_controller().AbortController,{FunctionPrototypeCall}=require_primordials();class Duplexify extends Duplex{constructor(options){super(options);if((options===null||options===void 0?void 0:options.readable)===!1)this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0;if((options===null||options===void 0?void 0:options.writable)===!1)this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0}}module2.exports=function duplexify(body,name){if(isDuplexNodeStream(body))return body;if(isReadableNodeStream(body))return _duplexify({readable:body});if(isWritableNodeStream(body))return _duplexify({writable:body});if(isNodeStream(body))return _duplexify({writable:!1,readable:!1});if(isReadableStream(body))return _duplexify({readable:Readable.fromWeb(body)});if(isWritableStream(body))return _duplexify({writable:Writable.fromWeb(body)});if(typeof body===\"function\"){let{value,write,final,destroy}=fromAsyncGen(body);if(isIterable(value))return from(Duplexify,value,{objectMode:!0,write,final,destroy});let then2=value===null||value===void 0?void 0:value.then;if(typeof then2===\"function\"){let d,promise=FunctionPrototypeCall(then2,value,(val)=>{if(val!=null)throw new ERR_INVALID_RETURN_VALUE(\"nully\",\"body\",val)},(err)=>{destroyer(d,err)});return d=new Duplexify({objectMode:!0,readable:!1,write,final(cb){final(async()=>{try{await promise,process.nextTick(cb,null)}catch(err){process.nextTick(cb,err)}})},destroy})}throw new ERR_INVALID_RETURN_VALUE(\"Iterable, AsyncIterable or AsyncFunction\",name,value)}if(isBlob(body))return duplexify(body.arrayBuffer());if(isIterable(body))return from(Duplexify,body,{objectMode:!0,writable:!1});if(isReadableStream(body===null||body===void 0?void 0:body.readable)&&isWritableStream(body===null||body===void 0?void 0:body.writable))return Duplexify.fromWeb(body);if(typeof(body===null||body===void 0?void 0:body.writable)===\"object\"||typeof(body===null||body===void 0?void 0:body.readable)===\"object\"){let readable=body!==null&&body!==void 0&&body.readable?isReadableNodeStream(body===null||body===void 0?void 0:body.readable)?body===null||body===void 0?void 0:body.readable:duplexify(body.readable):void 0,writable=body!==null&&body!==void 0&&body.writable?isWritableNodeStream(body===null||body===void 0?void 0:body.writable)?body===null||body===void 0?void 0:body.writable:duplexify(body.writable):void 0;return _duplexify({readable,writable})}let then=body===null||body===void 0?void 0:body.then;if(typeof then===\"function\"){let d;return FunctionPrototypeCall(then,body,(val)=>{if(val!=null)d.push(val);d.push(null)},(err)=>{destroyer(d,err)}),d=new Duplexify({objectMode:!0,writable:!1,read(){}})}throw new ERR_INVALID_ARG_TYPE(name,[\"Blob\",\"ReadableStream\",\"WritableStream\",\"Stream\",\"Iterable\",\"AsyncIterable\",\"Function\",\"{ readable, writable } pair\",\"Promise\"],body)};function fromAsyncGen(fn){let{promise,resolve}=createDeferredPromise(),ac=new AbortController,signal=ac.signal;return{value:fn(async function*(){while(!0){let _promise=promise;promise=null;let{chunk,done,cb}=await _promise;if(process.nextTick(cb),done)return;if(signal.aborted)throw new AbortError(void 0,{cause:signal.reason});({promise,resolve}=createDeferredPromise()),yield chunk}}(),{signal}),write(chunk,encoding,cb){let _resolve=resolve;resolve=null,_resolve({chunk,done:!1,cb})},final(cb){let _resolve=resolve;resolve=null,_resolve({done:!0,cb})},destroy(err,cb){ac.abort(),cb(err)}}}function _duplexify(pair){let r=pair.readable&&typeof pair.readable.read!==\"function\"?Readable.wrap(pair.readable):pair.readable,w=pair.writable,readable=!!isReadable(r),writable=!!isWritable(w),ondrain,onfinish,onreadable,onclose,d;function onfinished(err){let cb=onclose;if(onclose=null,cb)cb(err);else if(err)d.destroy(err)}if(d=new Duplexify({readableObjectMode:!!(r!==null&&r!==void 0&&r.readableObjectMode),writableObjectMode:!!(w!==null&&w!==void 0&&w.writableObjectMode),readable,writable}),writable)eos(w,(err)=>{if(writable=!1,err)destroyer(r,err);onfinished(err)}),d._write=function(chunk,encoding,callback){if(w.write(chunk,encoding))callback();else ondrain=callback},d._final=function(callback){w.end(),onfinish=callback},w.on(\"drain\",function(){if(ondrain){let cb=ondrain;ondrain=null,cb()}}),w.on(\"finish\",function(){if(onfinish){let cb=onfinish;onfinish=null,cb()}});if(readable)eos(r,(err)=>{if(readable=!1,err)destroyer(r,err);onfinished(err)}),r.on(\"readable\",function(){if(onreadable){let cb=onreadable;onreadable=null,cb()}}),r.on(\"end\",function(){d.push(null)}),d._read=function(){while(!0){let buf=r.read();if(buf===null){onreadable=d._read;return}if(!d.push(buf))return}};return d._destroy=function(err,callback){if(!err&&onclose!==null)err=new AbortError;if(onreadable=null,ondrain=null,onfinish=null,onclose===null)callback(err);else onclose=callback,destroyer(w,err),destroyer(r,err)},d}});var require_duplex=__commonJS((exports2,module2)=>{var{ObjectDefineProperties,ObjectGetOwnPropertyDescriptor,ObjectKeys,ObjectSetPrototypeOf}=require_primordials();module2.exports=Duplex;var Readable=require_readable(),Writable=require_writable();ObjectSetPrototypeOf(Duplex.prototype,Readable.prototype);ObjectSetPrototypeOf(Duplex,Readable);{let keys=ObjectKeys(Writable.prototype);for(let i=0;i{var{ObjectSetPrototypeOf,Symbol:Symbol2}=require_primordials();module2.exports=Transform;var{ERR_METHOD_NOT_IMPLEMENTED}=require_errors().codes,Duplex=require_duplex(),{getHighWaterMark}=require_state();ObjectSetPrototypeOf(Transform.prototype,Duplex.prototype);ObjectSetPrototypeOf(Transform,Duplex);var kCallback=Symbol2(\"kCallback\");function Transform(options){if(!(this instanceof Transform))return new Transform(options);let readableHighWaterMark=options?getHighWaterMark(this,options,\"readableHighWaterMark\",!0):null;if(readableHighWaterMark===0)options={...options,highWaterMark:null,readableHighWaterMark,writableHighWaterMark:options.writableHighWaterMark||0};if(Duplex.call(this,options),this._readableState.sync=!1,this[kCallback]=null,options){if(typeof options.transform===\"function\")this._transform=options.transform;if(typeof options.flush===\"function\")this._flush=options.flush}this.on(\"prefinish\",prefinish)}function final(cb){if(typeof this._flush===\"function\"&&!this.destroyed)this._flush((er,data)=>{if(er){if(cb)cb(er);else this.destroy(er);return}if(data!=null)this.push(data);if(this.push(null),cb)cb()});else if(this.push(null),cb)cb()}function prefinish(){if(this._final!==final)final.call(this)}Transform.prototype._final=final;Transform.prototype._transform=function(chunk,encoding,callback){throw new ERR_METHOD_NOT_IMPLEMENTED(\"_transform()\")};Transform.prototype._write=function(chunk,encoding,callback){let rState=this._readableState,wState=this._writableState,length=rState.length;this._transform(chunk,encoding,(err,val)=>{if(err){callback(err);return}if(val!=null)this.push(val);if(wState.ended||length===rState.length||rState.length{var{ObjectSetPrototypeOf}=require_primordials();module2.exports=PassThrough;var Transform=require_transform();ObjectSetPrototypeOf(PassThrough.prototype,Transform.prototype);ObjectSetPrototypeOf(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options)}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}});var require_pipeline=__commonJS((exports2,module2)=>{var process=require_process(),{ArrayIsArray,Promise:Promise2,SymbolAsyncIterator,SymbolDispose}=require_primordials(),eos=require_end_of_stream(),{once}=require_util(),destroyImpl=require_destroy(),Duplex=require_duplex(),{aggregateTwoErrors,codes:{ERR_INVALID_ARG_TYPE,ERR_INVALID_RETURN_VALUE,ERR_MISSING_ARGS,ERR_STREAM_DESTROYED,ERR_STREAM_PREMATURE_CLOSE},AbortError}=require_errors(),{validateFunction,validateAbortSignal}=require_validators(),{isIterable,isReadable,isReadableNodeStream,isNodeStream,isTransformStream,isWebStream,isReadableStream,isReadableFinished}=require_utils(),AbortController=globalThis.AbortController||require_abort_controller().AbortController,PassThrough,Readable,addAbortListener;function destroyer(stream,reading,writing){let finished=!1;stream.on(\"close\",()=>{finished=!0});let cleanup=eos(stream,{readable:reading,writable:writing},(err)=>{finished=!err});return{destroy:(err)=>{if(finished)return;finished=!0,destroyImpl.destroyer(stream,err||new ERR_STREAM_DESTROYED(\"pipe\"))},cleanup}}function popCallback(streams){return validateFunction(streams[streams.length-1],\"streams[stream.length - 1]\"),streams.pop()}function makeAsyncIterable(val){if(isIterable(val))return val;else if(isReadableNodeStream(val))return fromReadable(val);throw new ERR_INVALID_ARG_TYPE(\"val\",[\"Readable\",\"Iterable\",\"AsyncIterable\"],val)}async function*fromReadable(val){if(!Readable)Readable=require_readable();yield*Readable.prototype[SymbolAsyncIterator].call(val)}async function pumpToNode(iterable,writable,finish,{end}){let error,onresolve=null,resume=(err)=>{if(err)error=err;if(onresolve){let callback=onresolve;onresolve=null,callback()}},wait=()=>new Promise2((resolve,reject)=>{if(error)reject(error);else onresolve=()=>{if(error)reject(error);else resolve()}});writable.on(\"drain\",resume);let cleanup=eos(writable,{readable:!1},resume);try{if(writable.writableNeedDrain)await wait();for await(let chunk of iterable)if(!writable.write(chunk))await wait();if(end)writable.end(),await wait();finish()}catch(err){finish(error!==err?aggregateTwoErrors(error,err):err)}finally{cleanup(),writable.off(\"drain\",resume)}}async function pumpToWeb(readable,writable,finish,{end}){if(isTransformStream(writable))writable=writable.writable;let writer=writable.getWriter();try{for await(let chunk of readable)await writer.ready,writer.write(chunk).catch(()=>{});if(await writer.ready,end)await writer.close();finish()}catch(err){try{await writer.abort(err),finish(err)}catch(err2){finish(err2)}}}function pipeline(...streams){return pipelineImpl(streams,once(popCallback(streams)))}function pipelineImpl(streams,callback,opts){if(streams.length===1&&ArrayIsArray(streams[0]))streams=streams[0];if(streams.length<2)throw new ERR_MISSING_ARGS(\"streams\");let ac=new AbortController,signal=ac.signal,outerSignal=opts===null||opts===void 0?void 0:opts.signal,lastStreamCleanup=[];validateAbortSignal(outerSignal,\"options.signal\");function abort(){finishImpl(new AbortError)}addAbortListener=addAbortListener||require_util().addAbortListener;let disposable;if(outerSignal)disposable=addAbortListener(outerSignal,abort);let error,value,destroys=[],finishCount=0;function finish(err){finishImpl(err,--finishCount===0)}function finishImpl(err,final){var _disposable;if(err&&(!error||error.code===\"ERR_STREAM_PREMATURE_CLOSE\"))error=err;if(!error&&!final)return;while(destroys.length)destroys.shift()(error);if((_disposable=disposable)===null||_disposable===void 0||_disposable[SymbolDispose](),ac.abort(),final){if(!error)lastStreamCleanup.forEach((fn)=>fn());process.nextTick(callback,error,value)}}let ret;for(let i=0;i0,end=reading||(opts===null||opts===void 0?void 0:opts.end)!==!1,isLastStream=i===streams.length-1;if(isNodeStream(stream)){let onError2=function(err){if(err&&err.name!==\"AbortError\"&&err.code!==\"ERR_STREAM_PREMATURE_CLOSE\")finish(err)};var onError=onError2;if(end){let{destroy,cleanup}=destroyer(stream,reading,writing);if(destroys.push(destroy),isReadable(stream)&&isLastStream)lastStreamCleanup.push(cleanup)}if(stream.on(\"error\",onError2),isReadable(stream)&&isLastStream)lastStreamCleanup.push(()=>{stream.removeListener(\"error\",onError2)})}if(i===0)if(typeof stream===\"function\"){if(ret=stream({signal}),!isIterable(ret))throw new ERR_INVALID_RETURN_VALUE(\"Iterable, AsyncIterable or Stream\",\"source\",ret)}else if(isIterable(stream)||isReadableNodeStream(stream)||isTransformStream(stream))ret=stream;else ret=Duplex.from(stream);else if(typeof stream===\"function\"){if(isTransformStream(ret)){var _ret;ret=makeAsyncIterable((_ret=ret)===null||_ret===void 0?void 0:_ret.readable)}else ret=makeAsyncIterable(ret);if(ret=stream(ret,{signal}),reading){if(!isIterable(ret,!0))throw new ERR_INVALID_RETURN_VALUE(\"AsyncIterable\",`transform[${i-1}]`,ret)}else{var _ret2;if(!PassThrough)PassThrough=require_passthrough();let pt=new PassThrough({objectMode:!0}),then=(_ret2=ret)===null||_ret2===void 0?void 0:_ret2.then;if(typeof then===\"function\")finishCount++,then.call(ret,(val)=>{if(value=val,val!=null)pt.write(val);if(end)pt.end();process.nextTick(finish)},(err)=>{pt.destroy(err),process.nextTick(finish,err)});else if(isIterable(ret,!0))finishCount++,pumpToNode(ret,pt,finish,{end});else if(isReadableStream(ret)||isTransformStream(ret)){let toRead=ret.readable||ret;finishCount++,pumpToNode(toRead,pt,finish,{end})}else throw new ERR_INVALID_RETURN_VALUE(\"AsyncIterable or Promise\",\"destination\",ret);ret=pt;let{destroy,cleanup}=destroyer(ret,!1,!0);if(destroys.push(destroy),isLastStream)lastStreamCleanup.push(cleanup)}}else if(isNodeStream(stream)){if(isReadableNodeStream(ret)){finishCount+=2;let cleanup=pipe(ret,stream,finish,{end});if(isReadable(stream)&&isLastStream)lastStreamCleanup.push(cleanup)}else if(isTransformStream(ret)||isReadableStream(ret)){let toRead=ret.readable||ret;finishCount++,pumpToNode(toRead,stream,finish,{end})}else if(isIterable(ret))finishCount++,pumpToNode(ret,stream,finish,{end});else throw new ERR_INVALID_ARG_TYPE(\"val\",[\"Readable\",\"Iterable\",\"AsyncIterable\",\"ReadableStream\",\"TransformStream\"],ret);ret=stream}else if(isWebStream(stream)){if(isReadableNodeStream(ret))finishCount++,pumpToWeb(makeAsyncIterable(ret),stream,finish,{end});else if(isReadableStream(ret)||isIterable(ret))finishCount++,pumpToWeb(ret,stream,finish,{end});else if(isTransformStream(ret))finishCount++,pumpToWeb(ret.readable,stream,finish,{end});else throw new ERR_INVALID_ARG_TYPE(\"val\",[\"Readable\",\"Iterable\",\"AsyncIterable\",\"ReadableStream\",\"TransformStream\"],ret);ret=stream}else ret=Duplex.from(stream)}if(signal!==null&&signal!==void 0&&signal.aborted||outerSignal!==null&&outerSignal!==void 0&&outerSignal.aborted)process.nextTick(abort);return ret}function pipe(src,dst,finish,{end}){let ended=!1;if(dst.on(\"close\",()=>{if(!ended)finish(new ERR_STREAM_PREMATURE_CLOSE)}),src.pipe(dst,{end:!1}),end){let endFn2=function(){ended=!0,dst.end()};var endFn=endFn2;if(isReadableFinished(src))process.nextTick(endFn2);else src.once(\"end\",endFn2)}else finish();return eos(src,{readable:!0,writable:!1},(err)=>{let rState=src._readableState;if(err&&err.code===\"ERR_STREAM_PREMATURE_CLOSE\"&&rState&&rState.ended&&!rState.errored&&!rState.errorEmitted)src.once(\"end\",finish).once(\"error\",finish);else finish(err)}),eos(dst,{readable:!1,writable:!0},finish)}module2.exports={pipelineImpl,pipeline}});var require_compose=__commonJS((exports2,module2)=>{var{pipeline}=require_pipeline(),Duplex=require_duplex(),{destroyer}=require_destroy(),{isNodeStream,isReadable,isWritable,isWebStream,isTransformStream,isWritableStream,isReadableStream}=require_utils(),{AbortError,codes:{ERR_INVALID_ARG_VALUE,ERR_MISSING_ARGS}}=require_errors(),eos=require_end_of_stream();module2.exports=function(...streams){if(streams.length===0)throw new ERR_MISSING_ARGS(\"streams\");if(streams.length===1)return Duplex.from(streams[0]);let orgStreams=[...streams];if(typeof streams[0]===\"function\")streams[0]=Duplex.from(streams[0]);if(typeof streams[streams.length-1]===\"function\"){let idx=streams.length-1;streams[idx]=Duplex.from(streams[idx])}for(let n=0;n0&&!(isWritable(streams[n])||isWritableStream(streams[n])||isTransformStream(streams[n])))throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`,orgStreams[n],\"must be writable\")}let ondrain,onfinish,onreadable,onclose,d;function onfinished(err){let cb=onclose;if(onclose=null,cb)cb(err);else if(err)d.destroy(err);else if(!readable&&!writable)d.destroy()}let head=streams[0],tail=pipeline(streams,onfinished),writable=!!(isWritable(head)||isWritableStream(head)||isTransformStream(head)),readable=!!(isReadable(tail)||isReadableStream(tail)||isTransformStream(tail));if(d=new Duplex({writableObjectMode:!!(head!==null&&head!==void 0&&head.writableObjectMode),readableObjectMode:!!(tail!==null&&tail!==void 0&&tail.readableObjectMode),writable,readable}),writable){if(isNodeStream(head))d._write=function(chunk,encoding,callback){if(head.write(chunk,encoding))callback();else ondrain=callback},d._final=function(callback){head.end(),onfinish=callback},head.on(\"drain\",function(){if(ondrain){let cb=ondrain;ondrain=null,cb()}});else if(isWebStream(head)){let writer=(isTransformStream(head)?head.writable:head).getWriter();d._write=async function(chunk,encoding,callback){try{await writer.ready,writer.write(chunk).catch(()=>{}),callback()}catch(err){callback(err)}},d._final=async function(callback){try{await writer.ready,writer.close().catch(()=>{}),onfinish=callback}catch(err){callback(err)}}}let toRead=isTransformStream(tail)?tail.readable:tail;eos(toRead,()=>{if(onfinish){let cb=onfinish;onfinish=null,cb()}})}if(readable){if(isNodeStream(tail))tail.on(\"readable\",function(){if(onreadable){let cb=onreadable;onreadable=null,cb()}}),tail.on(\"end\",function(){d.push(null)}),d._read=function(){while(!0){let buf=tail.read();if(buf===null){onreadable=d._read;return}if(!d.push(buf))return}};else if(isWebStream(tail)){let reader=(isTransformStream(tail)?tail.readable:tail).getReader();d._read=async function(){while(!0)try{let{value,done}=await reader.read();if(!d.push(value))return;if(done){d.push(null);return}}catch{return}}}}return d._destroy=function(err,callback){if(!err&&onclose!==null)err=new AbortError;if(onreadable=null,ondrain=null,onfinish=null,onclose===null)callback(err);else if(onclose=callback,isNodeStream(tail))destroyer(tail,err)},d}});var require_operators=__commonJS((exports2,module2)=>{var AbortController=globalThis.AbortController||require_abort_controller().AbortController,{codes:{ERR_INVALID_ARG_VALUE,ERR_INVALID_ARG_TYPE,ERR_MISSING_ARGS,ERR_OUT_OF_RANGE},AbortError}=require_errors(),{validateAbortSignal,validateInteger,validateObject}=require_validators(),kWeakHandler=require_primordials().Symbol(\"kWeak\"),kResistStopPropagation=require_primordials().Symbol(\"kResistStopPropagation\"),{finished}=require_end_of_stream(),staticCompose=require_compose(),{addAbortSignalNoValidate}=require_add_abort_signal(),{isWritable,isNodeStream}=require_utils(),{deprecate}=require_util(),{ArrayPrototypePush,Boolean:Boolean2,MathFloor,Number:Number2,NumberIsNaN,Promise:Promise2,PromiseReject,PromiseResolve,PromisePrototypeThen,Symbol:Symbol2}=require_primordials(),kEmpty=Symbol2(\"kEmpty\"),kEof=Symbol2(\"kEof\");function compose(stream,options){if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");if(isNodeStream(stream)&&!isWritable(stream))throw new ERR_INVALID_ARG_VALUE(\"stream\",stream,\"must be writable\");let composedStream=staticCompose(this,stream);if(options!==null&&options!==void 0&&options.signal)addAbortSignalNoValidate(options.signal,composedStream);return composedStream}function map(fn,options){if(typeof fn!==\"function\")throw new ERR_INVALID_ARG_TYPE(\"fn\",[\"Function\",\"AsyncFunction\"],fn);if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");let concurrency=1;if((options===null||options===void 0?void 0:options.concurrency)!=null)concurrency=MathFloor(options.concurrency);let highWaterMark=concurrency-1;if((options===null||options===void 0?void 0:options.highWaterMark)!=null)highWaterMark=MathFloor(options.highWaterMark);return validateInteger(concurrency,\"options.concurrency\",1),validateInteger(highWaterMark,\"options.highWaterMark\",0),highWaterMark+=concurrency,async function*(){let signal=require_util().AbortSignalAny([options===null||options===void 0?void 0:options.signal].filter(Boolean2)),stream=this,queue=[],signalOpt={signal},next,resume,done=!1,cnt=0;function onCatch(){done=!0,afterItemProcessed()}function afterItemProcessed(){cnt-=1,maybeResume()}function maybeResume(){if(resume&&!done&&cnt=highWaterMark||cnt>=concurrency))await new Promise2((resolve)=>{resume=resolve})}queue.push(kEof)}catch(err){let val=PromiseReject(err);PromisePrototypeThen(val,afterItemProcessed,onCatch),queue.push(val)}finally{if(done=!0,next)next(),next=null}}pump();try{while(!0){while(queue.length>0){let val=await queue[0];if(val===kEof)return;if(signal.aborted)throw new AbortError;if(val!==kEmpty)yield val;queue.shift(),maybeResume()}await new Promise2((resolve)=>{next=resolve})}}finally{if(done=!0,resume)resume(),resume=null}}.call(this)}function asIndexedPairs(options=void 0){if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");return async function*(){let index=0;for await(let val of this){var _options$signal;if(options!==null&&options!==void 0&&(_options$signal=options.signal)!==null&&_options$signal!==void 0&&_options$signal.aborted)throw new AbortError({cause:options.signal.reason});yield[index++,val]}}.call(this)}async function some(fn,options=void 0){for await(let unused of filter.call(this,fn,options))return!0;return!1}async function every(fn,options=void 0){if(typeof fn!==\"function\")throw new ERR_INVALID_ARG_TYPE(\"fn\",[\"Function\",\"AsyncFunction\"],fn);return!await some.call(this,async(...args)=>{return!await fn(...args)},options)}async function find(fn,options){for await(let result of filter.call(this,fn,options))return result;return}async function forEach(fn,options){if(typeof fn!==\"function\")throw new ERR_INVALID_ARG_TYPE(\"fn\",[\"Function\",\"AsyncFunction\"],fn);async function forEachFn(value,options2){return await fn(value,options2),kEmpty}for await(let unused of map.call(this,forEachFn,options));}function filter(fn,options){if(typeof fn!==\"function\")throw new ERR_INVALID_ARG_TYPE(\"fn\",[\"Function\",\"AsyncFunction\"],fn);async function filterFn(value,options2){if(await fn(value,options2))return value;return kEmpty}return map.call(this,filterFn,options)}class ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS{constructor(){super(\"reduce\");this.message=\"Reduce of an empty stream requires an initial value\"}}async function reduce(reducer,initialValue,options){var _options$signal2;if(typeof reducer!==\"function\")throw new ERR_INVALID_ARG_TYPE(\"reducer\",[\"Function\",\"AsyncFunction\"],reducer);if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");let hasInitialValue=arguments.length>1;if(options!==null&&options!==void 0&&(_options$signal2=options.signal)!==null&&_options$signal2!==void 0&&_options$signal2.aborted){let err=new AbortError(void 0,{cause:options.signal.reason});throw this.once(\"error\",()=>{}),await finished(this.destroy(err)),err}let ac=new AbortController,signal=ac.signal;if(options!==null&&options!==void 0&&options.signal){let opts={once:!0,[kWeakHandler]:this,[kResistStopPropagation]:!0};options.signal.addEventListener(\"abort\",()=>ac.abort(),opts)}let gotAnyItemFromStream=!1;try{for await(let value of this){var _options$signal3;if(gotAnyItemFromStream=!0,options!==null&&options!==void 0&&(_options$signal3=options.signal)!==null&&_options$signal3!==void 0&&_options$signal3.aborted)throw new AbortError;if(!hasInitialValue)initialValue=value,hasInitialValue=!0;else initialValue=await reducer(initialValue,value,{signal})}if(!gotAnyItemFromStream&&!hasInitialValue)throw new ReduceAwareErrMissingArgs}finally{ac.abort()}return initialValue}async function toArray(options){if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");let result=[];for await(let val of this){var _options$signal4;if(options!==null&&options!==void 0&&(_options$signal4=options.signal)!==null&&_options$signal4!==void 0&&_options$signal4.aborted)throw new AbortError(void 0,{cause:options.signal.reason});ArrayPrototypePush(result,val)}return result}function flatMap(fn,options){let values=map.call(this,fn,options);return async function*(){for await(let val of values)yield*val}.call(this)}function toIntegerOrInfinity(number){if(number=Number2(number),NumberIsNaN(number))return 0;if(number<0)throw new ERR_OUT_OF_RANGE(\"number\",\">= 0\",number);return number}function drop(number,options=void 0){if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");return number=toIntegerOrInfinity(number),async function*(){var _options$signal5;if(options!==null&&options!==void 0&&(_options$signal5=options.signal)!==null&&_options$signal5!==void 0&&_options$signal5.aborted)throw new AbortError;for await(let val of this){var _options$signal6;if(options!==null&&options!==void 0&&(_options$signal6=options.signal)!==null&&_options$signal6!==void 0&&_options$signal6.aborted)throw new AbortError;if(number--<=0)yield val}}.call(this)}function take(number,options=void 0){if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");return number=toIntegerOrInfinity(number),async function*(){var _options$signal7;if(options!==null&&options!==void 0&&(_options$signal7=options.signal)!==null&&_options$signal7!==void 0&&_options$signal7.aborted)throw new AbortError;for await(let val of this){var _options$signal8;if(options!==null&&options!==void 0&&(_options$signal8=options.signal)!==null&&_options$signal8!==void 0&&_options$signal8.aborted)throw new AbortError;if(number-- >0)yield val;if(number<=0)return}}.call(this)}module2.exports.streamReturningOperators={asIndexedPairs:deprecate(asIndexedPairs,\"readable.asIndexedPairs will be removed in a future version.\"),drop,filter,flatMap,map,take,compose};module2.exports.promiseReturningOperators={every,forEach,reduce,toArray,some,find}});var require_promises=__commonJS((exports2,module2)=>{var{ArrayPrototypePop,Promise:Promise2}=require_primordials(),{isIterable,isNodeStream,isWebStream}=require_utils(),{pipelineImpl:pl}=require_pipeline(),{finished}=require_end_of_stream();require_stream();function pipeline(...streams){return new Promise2((resolve,reject)=>{let signal,end,lastArg=streams[streams.length-1];if(lastArg&&typeof lastArg===\"object\"&&!isNodeStream(lastArg)&&!isIterable(lastArg)&&!isWebStream(lastArg)){let options=ArrayPrototypePop(streams);signal=options.signal,end=options.end}pl(streams,(err,value)=>{if(err)reject(err);else resolve(value)},{signal,end})})}module2.exports={finished,pipeline}});var require_stream=__commonJS((exports2,module2)=>{var{Buffer}=require(\"buffer\"),{ObjectDefineProperty,ObjectKeys,ReflectApply}=require_primordials(),{promisify:{custom:customPromisify}}=require_util(),{streamReturningOperators,promiseReturningOperators}=require_operators(),{codes:{ERR_ILLEGAL_CONSTRUCTOR}}=require_errors(),compose=require_compose(),{setDefaultHighWaterMark,getDefaultHighWaterMark}=require_state(),{pipeline}=require_pipeline(),{destroyer}=require_destroy(),eos=require_end_of_stream(),promises=require_promises(),utils=require_utils(),Stream=module2.exports=require_legacy().Stream;Stream.isDestroyed=utils.isDestroyed;Stream.isDisturbed=utils.isDisturbed;Stream.isErrored=utils.isErrored;Stream.isReadable=utils.isReadable;Stream.isWritable=utils.isWritable;Stream.Readable=require_readable();for(let key of ObjectKeys(streamReturningOperators)){let fn=function(...args){if(new.target)throw ERR_ILLEGAL_CONSTRUCTOR();return Stream.Readable.from(ReflectApply(op,this,args))},op=streamReturningOperators[key];ObjectDefineProperty(fn,\"name\",{__proto__:null,value:op.name}),ObjectDefineProperty(fn,\"length\",{__proto__:null,value:op.length}),ObjectDefineProperty(Stream.Readable.prototype,key,{__proto__:null,value:fn,enumerable:!1,configurable:!0,writable:!0})}for(let key of ObjectKeys(promiseReturningOperators)){let fn=function(...args){if(new.target)throw ERR_ILLEGAL_CONSTRUCTOR();return ReflectApply(op,this,args)},op=promiseReturningOperators[key];ObjectDefineProperty(fn,\"name\",{__proto__:null,value:op.name}),ObjectDefineProperty(fn,\"length\",{__proto__:null,value:op.length}),ObjectDefineProperty(Stream.Readable.prototype,key,{__proto__:null,value:fn,enumerable:!1,configurable:!0,writable:!0})}Stream.Writable=require_writable();Stream.Duplex=require_duplex();Stream.Transform=require_transform();Stream.PassThrough=require_passthrough();Stream.pipeline=pipeline;var{addAbortSignal}=require_add_abort_signal();Stream.addAbortSignal=addAbortSignal;Stream.finished=eos;Stream.destroy=destroyer;Stream.compose=compose;Stream.setDefaultHighWaterMark=setDefaultHighWaterMark;Stream.getDefaultHighWaterMark=getDefaultHighWaterMark;ObjectDefineProperty(Stream,\"promises\",{__proto__:null,configurable:!0,enumerable:!0,get(){return promises}});ObjectDefineProperty(pipeline,customPromisify,{__proto__:null,enumerable:!0,get(){return promises.pipeline}});ObjectDefineProperty(eos,customPromisify,{__proto__:null,enumerable:!0,get(){return promises.finished}});Stream.Stream=Stream;Stream._isUint8Array=function(value){return value instanceof Uint8Array};Stream._uint8ArrayToBuffer=function(chunk){return Buffer.from(chunk.buffer,chunk.byteOffset,chunk.byteLength)}});var require_ours=__commonJS((exports2,module2)=>{var Stream=require(\"stream\");{let CustomStream=require_stream(),promises=require_promises(),originalDestroy=CustomStream.Readable.destroy;module2.exports=CustomStream.Readable,module2.exports._uint8ArrayToBuffer=CustomStream._uint8ArrayToBuffer,module2.exports._isUint8Array=CustomStream._isUint8Array,module2.exports.isDisturbed=CustomStream.isDisturbed,module2.exports.isErrored=CustomStream.isErrored,module2.exports.isReadable=CustomStream.isReadable,module2.exports.Readable=CustomStream.Readable,module2.exports.Writable=CustomStream.Writable,module2.exports.Duplex=CustomStream.Duplex,module2.exports.Transform=CustomStream.Transform,module2.exports.PassThrough=CustomStream.PassThrough,module2.exports.addAbortSignal=CustomStream.addAbortSignal,module2.exports.finished=CustomStream.finished,module2.exports.destroy=CustomStream.destroy,module2.exports.destroy=originalDestroy,module2.exports.pipeline=CustomStream.pipeline,module2.exports.compose=CustomStream.compose,Object.defineProperty(CustomStream,\"promises\",{configurable:!0,enumerable:!0,get(){return promises}}),module2.exports.Stream=CustomStream.Stream}module2.exports.default=module2.exports});module.exports=require_ours();", + "var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames}=Object;var __hasOwnProp=Object.prototype.hasOwnProperty;var __toESM=(mod,isNodeMode,target)=>{target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:()=>mod[key],enumerable:!0});return to};var __commonJS=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports);var __require=('');var require_randombytes=__commonJS((exports,module)=>{module.exports=require(\"crypto\").randomBytes});var require_create_hash=__commonJS((exports,module)=>{module.exports=require(\"crypto\").createHash});var require_create_hmac=__commonJS((exports,module)=>{module.exports=require(\"crypto\").createHmac});var require_algorithms=__commonJS((exports,module)=>{module.exports={sha224WithRSAEncryption:{sign:\"rsa\",hash:\"sha224\",id:\"302d300d06096086480165030402040500041c\"},\"RSA-SHA224\":{sign:\"ecdsa/rsa\",hash:\"sha224\",id:\"302d300d06096086480165030402040500041c\"},sha256WithRSAEncryption:{sign:\"rsa\",hash:\"sha256\",id:\"3031300d060960864801650304020105000420\"},\"RSA-SHA256\":{sign:\"ecdsa/rsa\",hash:\"sha256\",id:\"3031300d060960864801650304020105000420\"},sha384WithRSAEncryption:{sign:\"rsa\",hash:\"sha384\",id:\"3041300d060960864801650304020205000430\"},\"RSA-SHA384\":{sign:\"ecdsa/rsa\",hash:\"sha384\",id:\"3041300d060960864801650304020205000430\"},sha512WithRSAEncryption:{sign:\"rsa\",hash:\"sha512\",id:\"3051300d060960864801650304020305000440\"},\"RSA-SHA512\":{sign:\"ecdsa/rsa\",hash:\"sha512\",id:\"3051300d060960864801650304020305000440\"},\"RSA-SHA1\":{sign:\"rsa\",hash:\"sha1\",id:\"3021300906052b0e03021a05000414\"},\"ecdsa-with-SHA1\":{sign:\"ecdsa\",hash:\"sha1\",id:\"\"},sha256:{sign:\"ecdsa\",hash:\"sha256\",id:\"\"},sha224:{sign:\"ecdsa\",hash:\"sha224\",id:\"\"},sha384:{sign:\"ecdsa\",hash:\"sha384\",id:\"\"},sha512:{sign:\"ecdsa\",hash:\"sha512\",id:\"\"},\"DSA-SHA\":{sign:\"dsa\",hash:\"sha1\",id:\"\"},\"DSA-SHA1\":{sign:\"dsa\",hash:\"sha1\",id:\"\"},DSA:{sign:\"dsa\",hash:\"sha1\",id:\"\"},\"DSA-WITH-SHA224\":{sign:\"dsa\",hash:\"sha224\",id:\"\"},\"DSA-SHA224\":{sign:\"dsa\",hash:\"sha224\",id:\"\"},\"DSA-WITH-SHA256\":{sign:\"dsa\",hash:\"sha256\",id:\"\"},\"DSA-SHA256\":{sign:\"dsa\",hash:\"sha256\",id:\"\"},\"DSA-WITH-SHA384\":{sign:\"dsa\",hash:\"sha384\",id:\"\"},\"DSA-SHA384\":{sign:\"dsa\",hash:\"sha384\",id:\"\"},\"DSA-WITH-SHA512\":{sign:\"dsa\",hash:\"sha512\",id:\"\"},\"DSA-SHA512\":{sign:\"dsa\",hash:\"sha512\",id:\"\"},\"DSA-RIPEMD160\":{sign:\"dsa\",hash:\"rmd160\",id:\"\"},ripemd160WithRSA:{sign:\"rsa\",hash:\"rmd160\",id:\"3021300906052b2403020105000414\"},\"RSA-RIPEMD160\":{sign:\"rsa\",hash:\"rmd160\",id:\"3021300906052b2403020105000414\"},md5WithRSAEncryption:{sign:\"rsa\",hash:\"md5\",id:\"3020300c06082a864886f70d020505000410\"},\"RSA-MD5\":{sign:\"rsa\",hash:\"md5\",id:\"3020300c06082a864886f70d020505000410\"}}});var require_precondition=__commonJS((exports,module)=>{var $isFinite=isFinite,MAX_ALLOC=Math.pow(2,30)-1;module.exports=function(iterations,keylen){if(typeof iterations!==\"number\")throw TypeError(\"Iterations not a number\");if(iterations<0||!$isFinite(iterations))throw TypeError(\"Bad iterations\");if(typeof keylen!==\"number\")throw TypeError(\"Key length not a number\");if(keylen<0||keylen>MAX_ALLOC||keylen!==keylen)throw TypeError(\"Bad key length\")}});var require_default_encoding=__commonJS((exports,module)=>{var defaultEncoding;if(globalThis.process&&globalThis.process.browser)defaultEncoding=\"utf-8\";else if(globalThis.process&&globalThis.process.version)pVersionMajor=parseInt(process.version.split(\".\")[0].slice(1),10),defaultEncoding=pVersionMajor>=6?\"utf-8\":\"binary\";else defaultEncoding=\"utf-8\";var pVersionMajor;module.exports=defaultEncoding});var require_safe_buffer=__commonJS((exports,module)=>{/*! safe-buffer. MIT License. Feross Aboukhadijeh */var buffer=require(\"buffer\"),Buffer2=buffer.Buffer;function copyProps(src,dst){for(var key in src)dst[key]=src[key]}if(Buffer2.from&&Buffer2.alloc&&Buffer2.allocUnsafe&&Buffer2.allocUnsafeSlow)module.exports=buffer;else copyProps(buffer,exports),exports.Buffer=SafeBuffer;function SafeBuffer(arg,encodingOrOffset,length){return Buffer2(arg,encodingOrOffset,length)}SafeBuffer.prototype=Object.create(Buffer2.prototype);copyProps(Buffer2,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg===\"number\")throw TypeError(\"Argument must not be a number\");return Buffer2(arg,encodingOrOffset,length)};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!==\"number\")throw TypeError(\"Argument must be a number\");var buf=Buffer2(size);if(fill!==void 0)if(typeof encoding===\"string\")buf.fill(fill,encoding);else buf.fill(fill);else buf.fill(0);return buf};SafeBuffer.allocUnsafe=function(size){if(typeof size!==\"number\")throw TypeError(\"Argument must be a number\");return Buffer2(size)};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!==\"number\")throw TypeError(\"Argument must be a number\");return buffer.SlowBuffer(size)}});var require_isarray=__commonJS((exports,module)=>{var toString={}.toString;module.exports=Array.isArray||function(arr){return toString.call(arr)==\"[object Array]\"}});var require_type=__commonJS((exports,module)=>{module.exports=TypeError});var require_es_object_atoms=__commonJS((exports,module)=>{module.exports=Object});var require_es_errors=__commonJS((exports,module)=>{module.exports=Error});var require_eval=__commonJS((exports,module)=>{module.exports=EvalError});var require_range=__commonJS((exports,module)=>{module.exports=RangeError});var require_ref=__commonJS((exports,module)=>{module.exports=ReferenceError});var require_syntax=__commonJS((exports,module)=>{module.exports=SyntaxError});var require_uri=__commonJS((exports,module)=>{module.exports=URIError});var require_abs=__commonJS((exports,module)=>{module.exports=Math.abs});var require_floor=__commonJS((exports,module)=>{module.exports=Math.floor});var require_max=__commonJS((exports,module)=>{module.exports=Math.max});var require_min=__commonJS((exports,module)=>{module.exports=Math.min});var require_pow=__commonJS((exports,module)=>{module.exports=Math.pow});var require_round=__commonJS((exports,module)=>{module.exports=Math.round});var require_isNaN=__commonJS((exports,module)=>{module.exports=Number.isNaN||function(a){return a!==a}});var require_sign=__commonJS((exports,module)=>{var $isNaN=require_isNaN();module.exports=function(number){if($isNaN(number)||number===0)return number;return number<0?-1:1}});var require_gOPD=__commonJS((exports,module)=>{module.exports=Object.getOwnPropertyDescriptor});var require_gopd=__commonJS((exports,module)=>{var $gOPD=require_gOPD();if($gOPD)try{$gOPD([],\"length\")}catch(e){$gOPD=null}module.exports=$gOPD});var require_es_define_property=__commonJS((exports,module)=>{var $defineProperty=Object.defineProperty||!1;if($defineProperty)try{$defineProperty({},\"a\",{value:1})}catch(e){$defineProperty=!1}module.exports=$defineProperty});var require_shams=__commonJS((exports,module)=>{module.exports=function(){if(typeof Symbol!==\"function\"||typeof Object.getOwnPropertySymbols!==\"function\")return!1;if(typeof Symbol.iterator===\"symbol\")return!0;var obj={},sym=Symbol(\"test\"),symObj=Object(sym);if(typeof sym===\"string\")return!1;if(Object.prototype.toString.call(sym)!==\"[object Symbol]\")return!1;if(Object.prototype.toString.call(symObj)!==\"[object Symbol]\")return!1;var symVal=42;obj[sym]=symVal;for(var _ in obj)return!1;if(typeof Object.keys===\"function\"&&Object.keys(obj).length!==0)return!1;if(typeof Object.getOwnPropertyNames===\"function\"&&Object.getOwnPropertyNames(obj).length!==0)return!1;var syms=Object.getOwnPropertySymbols(obj);if(syms.length!==1||syms[0]!==sym)return!1;if(!Object.prototype.propertyIsEnumerable.call(obj,sym))return!1;if(typeof Object.getOwnPropertyDescriptor===\"function\"){var descriptor=Object.getOwnPropertyDescriptor(obj,sym);if(descriptor.value!==symVal||descriptor.enumerable!==!0)return!1}return!0}});var require_has_symbols=__commonJS((exports,module)=>{var origSymbol=typeof Symbol<\"u\"&&Symbol,hasSymbolSham=require_shams();module.exports=function(){if(typeof origSymbol!==\"function\")return!1;if(typeof Symbol!==\"function\")return!1;if(typeof origSymbol(\"foo\")!==\"symbol\")return!1;if(typeof Symbol(\"bar\")!==\"symbol\")return!1;return hasSymbolSham()}});var require_Reflect_getPrototypeOf=__commonJS((exports,module)=>{module.exports=typeof Reflect<\"u\"&&Reflect.getPrototypeOf||null});var require_Object_getPrototypeOf=__commonJS((exports,module)=>{var $Object=require_es_object_atoms();module.exports=$Object.getPrototypeOf||null});var require_implementation=__commonJS((exports,module)=>{var ERROR_MESSAGE=\"Function.prototype.bind called on incompatible \",toStr=Object.prototype.toString,max=Math.max,funcType=\"[object Function]\",concatty=function(a,b){var arr=[];for(var i=0;i{var implementation=require_implementation();module.exports=Function.prototype.bind||implementation});var require_functionCall=__commonJS((exports,module)=>{module.exports=Function.prototype.call});var require_functionApply=__commonJS((exports,module)=>{module.exports=Function.prototype.apply});var require_reflectApply=__commonJS((exports,module)=>{module.exports=typeof Reflect<\"u\"&&Reflect&&Reflect.apply});var require_actualApply=__commonJS((exports,module)=>{var bind=require_function_bind(),$apply=require_functionApply(),$call=require_functionCall(),$reflectApply=require_reflectApply();module.exports=$reflectApply||bind.call($call,$apply)});var require_call_bind_apply_helpers=__commonJS((exports,module)=>{var bind=require_function_bind(),$TypeError=require_type(),$call=require_functionCall(),$actualApply=require_actualApply();module.exports=function(args){if(args.length<1||typeof args[0]!==\"function\")throw new $TypeError(\"a function is required\");return $actualApply(bind,$call,args)}});var require_get=__commonJS((exports,module)=>{var callBind=require_call_bind_apply_helpers(),gOPD=require_gopd(),hasProtoAccessor;try{hasProtoAccessor=[].__proto__===Array.prototype}catch(e){if(!e||typeof e!==\"object\"||!(\"code\"in e)||e.code!==\"ERR_PROTO_ACCESS\")throw e}var desc=!!hasProtoAccessor&&gOPD&&gOPD(Object.prototype,\"__proto__\"),$Object=Object,$getPrototypeOf=$Object.getPrototypeOf;module.exports=desc&&typeof desc.get===\"function\"?callBind([desc.get]):typeof $getPrototypeOf===\"function\"?function(value){return $getPrototypeOf(value==null?value:$Object(value))}:!1});var require_get_proto=__commonJS((exports,module)=>{var reflectGetProto=require_Reflect_getPrototypeOf(),originalGetProto=require_Object_getPrototypeOf(),getDunderProto=require_get();module.exports=reflectGetProto?function(O){return reflectGetProto(O)}:originalGetProto?function(O){if(!O||typeof O!==\"object\"&&typeof O!==\"function\")throw TypeError(\"getProto: not an object\");return originalGetProto(O)}:getDunderProto?function(O){return getDunderProto(O)}:null});var require_hasown=__commonJS((exports,module)=>{var call=Function.prototype.call,$hasOwn=Object.prototype.hasOwnProperty,bind=require_function_bind();module.exports=bind.call(call,$hasOwn)});var require_get_intrinsic=__commonJS((exports,module)=>{var undefined2,$Object=require_es_object_atoms(),$Error=require_es_errors(),$EvalError=require_eval(),$RangeError=require_range(),$ReferenceError=require_ref(),$SyntaxError=require_syntax(),$TypeError=require_type(),$URIError=require_uri(),abs=require_abs(),floor=require_floor(),max=require_max(),min=require_min(),pow=require_pow(),round=require_round(),sign=require_sign(),$Function=Function,getEvalledConstructor=function(expressionSyntax){try{return $Function('\"use strict\"; return ('+expressionSyntax+\").constructor;\")()}catch(e){}},$gOPD=require_gopd(),$defineProperty=require_es_define_property(),throwTypeError=function(){throw new $TypeError},ThrowTypeError=$gOPD?function(){try{return arguments.callee,throwTypeError}catch(calleeThrows){try{return $gOPD(arguments,\"callee\").get}catch(gOPDthrows){return throwTypeError}}}():throwTypeError,hasSymbols=require_has_symbols()(),getProto=require_get_proto(),$ObjectGPO=require_Object_getPrototypeOf(),$ReflectGPO=require_Reflect_getPrototypeOf(),$apply=require_functionApply(),$call=require_functionCall(),needsEval={},TypedArray=typeof Uint8Array>\"u\"||!getProto?undefined2:getProto(Uint8Array),INTRINSICS={__proto__:null,\"%AggregateError%\":typeof AggregateError>\"u\"?undefined2:AggregateError,\"%Array%\":Array,\"%ArrayBuffer%\":typeof ArrayBuffer>\"u\"?undefined2:ArrayBuffer,\"%ArrayIteratorPrototype%\":hasSymbols&&getProto?getProto([][Symbol.iterator]()):undefined2,\"%AsyncFromSyncIteratorPrototype%\":undefined2,\"%AsyncFunction%\":needsEval,\"%AsyncGenerator%\":needsEval,\"%AsyncGeneratorFunction%\":needsEval,\"%AsyncIteratorPrototype%\":needsEval,\"%Atomics%\":typeof Atomics>\"u\"?undefined2:Atomics,\"%BigInt%\":typeof BigInt>\"u\"?undefined2:BigInt,\"%BigInt64Array%\":typeof BigInt64Array>\"u\"?undefined2:BigInt64Array,\"%BigUint64Array%\":typeof BigUint64Array>\"u\"?undefined2:BigUint64Array,\"%Boolean%\":Boolean,\"%DataView%\":typeof DataView>\"u\"?undefined2:DataView,\"%Date%\":Date,\"%decodeURI%\":decodeURI,\"%decodeURIComponent%\":decodeURIComponent,\"%encodeURI%\":encodeURI,\"%encodeURIComponent%\":encodeURIComponent,\"%Error%\":$Error,\"%eval%\":eval,\"%EvalError%\":$EvalError,\"%Float16Array%\":typeof Float16Array>\"u\"?undefined2:Float16Array,\"%Float32Array%\":typeof Float32Array>\"u\"?undefined2:Float32Array,\"%Float64Array%\":typeof Float64Array>\"u\"?undefined2:Float64Array,\"%FinalizationRegistry%\":typeof FinalizationRegistry>\"u\"?undefined2:FinalizationRegistry,\"%Function%\":$Function,\"%GeneratorFunction%\":needsEval,\"%Int8Array%\":typeof Int8Array>\"u\"?undefined2:Int8Array,\"%Int16Array%\":typeof Int16Array>\"u\"?undefined2:Int16Array,\"%Int32Array%\":typeof Int32Array>\"u\"?undefined2:Int32Array,\"%isFinite%\":isFinite,\"%isNaN%\":isNaN,\"%IteratorPrototype%\":hasSymbols&&getProto?getProto(getProto([][Symbol.iterator]())):undefined2,\"%JSON%\":typeof JSON===\"object\"?JSON:undefined2,\"%Map%\":typeof Map>\"u\"?undefined2:Map,\"%MapIteratorPrototype%\":typeof Map>\"u\"||!hasSymbols||!getProto?undefined2:getProto(new Map()[Symbol.iterator]()),\"%Math%\":Math,\"%Number%\":Number,\"%Object%\":$Object,\"%Object.getOwnPropertyDescriptor%\":$gOPD,\"%parseFloat%\":parseFloat,\"%parseInt%\":parseInt,\"%Promise%\":typeof Promise>\"u\"?undefined2:Promise,\"%Proxy%\":typeof Proxy>\"u\"?undefined2:Proxy,\"%RangeError%\":$RangeError,\"%ReferenceError%\":$ReferenceError,\"%Reflect%\":typeof Reflect>\"u\"?undefined2:Reflect,\"%RegExp%\":RegExp,\"%Set%\":typeof Set>\"u\"?undefined2:Set,\"%SetIteratorPrototype%\":typeof Set>\"u\"||!hasSymbols||!getProto?undefined2:getProto(new Set()[Symbol.iterator]()),\"%SharedArrayBuffer%\":typeof SharedArrayBuffer>\"u\"?undefined2:SharedArrayBuffer,\"%String%\":String,\"%StringIteratorPrototype%\":hasSymbols&&getProto?getProto(\"\"[Symbol.iterator]()):undefined2,\"%Symbol%\":hasSymbols?Symbol:undefined2,\"%SyntaxError%\":$SyntaxError,\"%ThrowTypeError%\":ThrowTypeError,\"%TypedArray%\":TypedArray,\"%TypeError%\":$TypeError,\"%Uint8Array%\":typeof Uint8Array>\"u\"?undefined2:Uint8Array,\"%Uint8ClampedArray%\":typeof Uint8ClampedArray>\"u\"?undefined2:Uint8ClampedArray,\"%Uint16Array%\":typeof Uint16Array>\"u\"?undefined2:Uint16Array,\"%Uint32Array%\":typeof Uint32Array>\"u\"?undefined2:Uint32Array,\"%URIError%\":$URIError,\"%WeakMap%\":typeof WeakMap>\"u\"?undefined2:WeakMap,\"%WeakRef%\":typeof WeakRef>\"u\"?undefined2:WeakRef,\"%WeakSet%\":typeof WeakSet>\"u\"?undefined2:WeakSet,\"%Function.prototype.call%\":$call,\"%Function.prototype.apply%\":$apply,\"%Object.defineProperty%\":$defineProperty,\"%Object.getPrototypeOf%\":$ObjectGPO,\"%Math.abs%\":abs,\"%Math.floor%\":floor,\"%Math.max%\":max,\"%Math.min%\":min,\"%Math.pow%\":pow,\"%Math.round%\":round,\"%Math.sign%\":sign,\"%Reflect.getPrototypeOf%\":$ReflectGPO};if(getProto)try{null.error}catch(e){errorProto=getProto(getProto(e)),INTRINSICS[\"%Error.prototype%\"]=errorProto}var errorProto,doEval=function doEval(name){var value;if(name===\"%AsyncFunction%\")value=getEvalledConstructor(\"async function () {}\");else if(name===\"%GeneratorFunction%\")value=getEvalledConstructor(\"function* () {}\");else if(name===\"%AsyncGeneratorFunction%\")value=getEvalledConstructor(\"async function* () {}\");else if(name===\"%AsyncGenerator%\"){var fn=doEval(\"%AsyncGeneratorFunction%\");if(fn)value=fn.prototype}else if(name===\"%AsyncIteratorPrototype%\"){var gen=doEval(\"%AsyncGenerator%\");if(gen&&getProto)value=getProto(gen.prototype)}return INTRINSICS[name]=value,value},LEGACY_ALIASES={__proto__:null,\"%ArrayBufferPrototype%\":[\"ArrayBuffer\",\"prototype\"],\"%ArrayPrototype%\":[\"Array\",\"prototype\"],\"%ArrayProto_entries%\":[\"Array\",\"prototype\",\"entries\"],\"%ArrayProto_forEach%\":[\"Array\",\"prototype\",\"forEach\"],\"%ArrayProto_keys%\":[\"Array\",\"prototype\",\"keys\"],\"%ArrayProto_values%\":[\"Array\",\"prototype\",\"values\"],\"%AsyncFunctionPrototype%\":[\"AsyncFunction\",\"prototype\"],\"%AsyncGenerator%\":[\"AsyncGeneratorFunction\",\"prototype\"],\"%AsyncGeneratorPrototype%\":[\"AsyncGeneratorFunction\",\"prototype\",\"prototype\"],\"%BooleanPrototype%\":[\"Boolean\",\"prototype\"],\"%DataViewPrototype%\":[\"DataView\",\"prototype\"],\"%DatePrototype%\":[\"Date\",\"prototype\"],\"%ErrorPrototype%\":[\"Error\",\"prototype\"],\"%EvalErrorPrototype%\":[\"EvalError\",\"prototype\"],\"%Float32ArrayPrototype%\":[\"Float32Array\",\"prototype\"],\"%Float64ArrayPrototype%\":[\"Float64Array\",\"prototype\"],\"%FunctionPrototype%\":[\"Function\",\"prototype\"],\"%Generator%\":[\"GeneratorFunction\",\"prototype\"],\"%GeneratorPrototype%\":[\"GeneratorFunction\",\"prototype\",\"prototype\"],\"%Int8ArrayPrototype%\":[\"Int8Array\",\"prototype\"],\"%Int16ArrayPrototype%\":[\"Int16Array\",\"prototype\"],\"%Int32ArrayPrototype%\":[\"Int32Array\",\"prototype\"],\"%JSONParse%\":[\"JSON\",\"parse\"],\"%JSONStringify%\":[\"JSON\",\"stringify\"],\"%MapPrototype%\":[\"Map\",\"prototype\"],\"%NumberPrototype%\":[\"Number\",\"prototype\"],\"%ObjectPrototype%\":[\"Object\",\"prototype\"],\"%ObjProto_toString%\":[\"Object\",\"prototype\",\"toString\"],\"%ObjProto_valueOf%\":[\"Object\",\"prototype\",\"valueOf\"],\"%PromisePrototype%\":[\"Promise\",\"prototype\"],\"%PromiseProto_then%\":[\"Promise\",\"prototype\",\"then\"],\"%Promise_all%\":[\"Promise\",\"all\"],\"%Promise_reject%\":[\"Promise\",\"reject\"],\"%Promise_resolve%\":[\"Promise\",\"resolve\"],\"%RangeErrorPrototype%\":[\"RangeError\",\"prototype\"],\"%ReferenceErrorPrototype%\":[\"ReferenceError\",\"prototype\"],\"%RegExpPrototype%\":[\"RegExp\",\"prototype\"],\"%SetPrototype%\":[\"Set\",\"prototype\"],\"%SharedArrayBufferPrototype%\":[\"SharedArrayBuffer\",\"prototype\"],\"%StringPrototype%\":[\"String\",\"prototype\"],\"%SymbolPrototype%\":[\"Symbol\",\"prototype\"],\"%SyntaxErrorPrototype%\":[\"SyntaxError\",\"prototype\"],\"%TypedArrayPrototype%\":[\"TypedArray\",\"prototype\"],\"%TypeErrorPrototype%\":[\"TypeError\",\"prototype\"],\"%Uint8ArrayPrototype%\":[\"Uint8Array\",\"prototype\"],\"%Uint8ClampedArrayPrototype%\":[\"Uint8ClampedArray\",\"prototype\"],\"%Uint16ArrayPrototype%\":[\"Uint16Array\",\"prototype\"],\"%Uint32ArrayPrototype%\":[\"Uint32Array\",\"prototype\"],\"%URIErrorPrototype%\":[\"URIError\",\"prototype\"],\"%WeakMapPrototype%\":[\"WeakMap\",\"prototype\"],\"%WeakSetPrototype%\":[\"WeakSet\",\"prototype\"]},bind=require_function_bind(),hasOwn=require_hasown(),$concat=bind.call($call,Array.prototype.concat),$spliceApply=bind.call($apply,Array.prototype.splice),$replace=bind.call($call,String.prototype.replace),$strSlice=bind.call($call,String.prototype.slice),$exec=bind.call($call,RegExp.prototype.exec),rePropName=/[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g,reEscapeChar=/\\\\(\\\\)?/g,stringToPath=function(string){var first=$strSlice(string,0,1),last=$strSlice(string,-1);if(first===\"%\"&&last!==\"%\")throw new $SyntaxError(\"invalid intrinsic syntax, expected closing `%`\");else if(last===\"%\"&&first!==\"%\")throw new $SyntaxError(\"invalid intrinsic syntax, expected opening `%`\");var result=[];return $replace(string,rePropName,function(match,number,quote,subString){result[result.length]=quote?$replace(subString,reEscapeChar,\"$1\"):number||match}),result},getBaseIntrinsic=function(name,allowMissing){var intrinsicName=name,alias;if(hasOwn(LEGACY_ALIASES,intrinsicName))alias=LEGACY_ALIASES[intrinsicName],intrinsicName=\"%\"+alias[0]+\"%\";if(hasOwn(INTRINSICS,intrinsicName)){var value=INTRINSICS[intrinsicName];if(value===needsEval)value=doEval(intrinsicName);if(typeof value>\"u\"&&!allowMissing)throw new $TypeError(\"intrinsic \"+name+\" exists, but is not available. Please file an issue!\");return{alias,name:intrinsicName,value}}throw new $SyntaxError(\"intrinsic \"+name+\" does not exist!\")};module.exports=function(name,allowMissing){if(typeof name!==\"string\"||name.length===0)throw new $TypeError(\"intrinsic name must be a non-empty string\");if(arguments.length>1&&typeof allowMissing!==\"boolean\")throw new $TypeError('\"allowMissing\" argument must be a boolean');if($exec(/^%?[^%]*%?$/,name)===null)throw new $SyntaxError(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\");var parts=stringToPath(name),intrinsicBaseName=parts.length>0?parts[0]:\"\",intrinsic=getBaseIntrinsic(\"%\"+intrinsicBaseName+\"%\",allowMissing),intrinsicRealName=intrinsic.name,value=intrinsic.value,skipFurtherCaching=!1,alias=intrinsic.alias;if(alias)intrinsicBaseName=alias[0],$spliceApply(parts,$concat([0,1],alias));for(var i=1,isOwn=!0;i=parts.length){var desc=$gOPD(value,part);if(isOwn=!!desc,isOwn&&\"get\"in desc&&!(\"originalValue\"in desc.get))value=desc.get;else value=value[part]}else isOwn=hasOwn(value,part),value=value[part];if(isOwn&&!skipFurtherCaching)INTRINSICS[intrinsicRealName]=value}}return value}});var require_call_bound=__commonJS((exports,module)=>{var GetIntrinsic=require_get_intrinsic(),callBindBasic=require_call_bind_apply_helpers(),$indexOf=callBindBasic([GetIntrinsic(\"%String.prototype.indexOf%\")]);module.exports=function(name,allowMissing){var intrinsic=GetIntrinsic(name,!!allowMissing);if(typeof intrinsic===\"function\"&&$indexOf(name,\".prototype.\")>-1)return callBindBasic([intrinsic]);return intrinsic}});var require_is_callable=__commonJS((exports,module)=>{var fnToStr=Function.prototype.toString,reflectApply=typeof Reflect===\"object\"&&Reflect!==null&&Reflect.apply,badArrayLike,isCallableMarker;if(typeof reflectApply===\"function\"&&typeof Object.defineProperty===\"function\")try{badArrayLike=Object.defineProperty({},\"length\",{get:function(){throw isCallableMarker}}),isCallableMarker={},reflectApply(function(){throw 42},null,badArrayLike)}catch(_){if(_!==isCallableMarker)reflectApply=null}else reflectApply=null;var constructorRegex=/^\\s*class\\b/,isES6ClassFn=function(value){try{var fnStr=fnToStr.call(value);return constructorRegex.test(fnStr)}catch(e){return!1}},tryFunctionObject=function(value){try{if(isES6ClassFn(value))return!1;return fnToStr.call(value),!0}catch(e){return!1}},toStr=Object.prototype.toString,objectClass=\"[object Object]\",fnClass=\"[object Function]\",genClass=\"[object GeneratorFunction]\",ddaClass=\"[object HTMLAllCollection]\",ddaClass2=\"[object HTML document.all class]\",ddaClass3=\"[object HTMLCollection]\",hasToStringTag=typeof Symbol===\"function\"&&!!Symbol.toStringTag,isIE68=!(0 in[,]),isDDA=function(){return!1};if(typeof document===\"object\"){if(all=document.all,toStr.call(all)===toStr.call(document.all))isDDA=function(value){if((isIE68||!value)&&(typeof value>\"u\"||typeof value===\"object\"))try{var str=toStr.call(value);return(str===ddaClass||str===ddaClass2||str===ddaClass3||str===objectClass)&&value(\"\")==null}catch(e){}return!1}}var all;module.exports=reflectApply?function(value){if(isDDA(value))return!0;if(!value)return!1;if(typeof value!==\"function\"&&typeof value!==\"object\")return!1;try{reflectApply(value,null,badArrayLike)}catch(e){if(e!==isCallableMarker)return!1}return!isES6ClassFn(value)&&tryFunctionObject(value)}:function(value){if(isDDA(value))return!0;if(!value)return!1;if(typeof value!==\"function\"&&typeof value!==\"object\")return!1;if(hasToStringTag)return tryFunctionObject(value);if(isES6ClassFn(value))return!1;var strClass=toStr.call(value);if(strClass!==fnClass&&strClass!==genClass&&!/^\\[object HTML/.test(strClass))return!1;return tryFunctionObject(value)}});var require_for_each=__commonJS((exports,module)=>{var isCallable=require_is_callable(),toStr=Object.prototype.toString,hasOwnProperty=Object.prototype.hasOwnProperty,forEachArray=function(array,iterator,receiver){for(var i=0,len=array.length;i=3)receiver=thisArg;if(isArray(list))forEachArray(list,iterator,receiver);else if(typeof list===\"string\")forEachString(list,iterator,receiver);else forEachObject(list,iterator,receiver)}});var require_possible_typed_array_names=__commonJS((exports,module)=>{module.exports=[\"Float16Array\",\"Float32Array\",\"Float64Array\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"BigInt64Array\",\"BigUint64Array\"]});var require_available_typed_arrays=__commonJS((exports,module)=>{var possibleNames=require_possible_typed_array_names(),g=typeof globalThis>\"u\"?globalThis:globalThis;module.exports=function(){var out=[];for(var i=0;i{var $defineProperty=require_es_define_property(),$SyntaxError=require_syntax(),$TypeError=require_type(),gopd=require_gopd();module.exports=function(obj,property,value){if(!obj||typeof obj!==\"object\"&&typeof obj!==\"function\")throw new $TypeError(\"`obj` must be an object or a function`\");if(typeof property!==\"string\"&&typeof property!==\"symbol\")throw new $TypeError(\"`property` must be a string or a symbol`\");if(arguments.length>3&&typeof arguments[3]!==\"boolean\"&&arguments[3]!==null)throw new $TypeError(\"`nonEnumerable`, if provided, must be a boolean or null\");if(arguments.length>4&&typeof arguments[4]!==\"boolean\"&&arguments[4]!==null)throw new $TypeError(\"`nonWritable`, if provided, must be a boolean or null\");if(arguments.length>5&&typeof arguments[5]!==\"boolean\"&&arguments[5]!==null)throw new $TypeError(\"`nonConfigurable`, if provided, must be a boolean or null\");if(arguments.length>6&&typeof arguments[6]!==\"boolean\")throw new $TypeError(\"`loose`, if provided, must be a boolean\");var nonEnumerable=arguments.length>3?arguments[3]:null,nonWritable=arguments.length>4?arguments[4]:null,nonConfigurable=arguments.length>5?arguments[5]:null,loose=arguments.length>6?arguments[6]:!1,desc=!!gopd&&gopd(obj,property);if($defineProperty)$defineProperty(obj,property,{configurable:nonConfigurable===null&&desc?desc.configurable:!nonConfigurable,enumerable:nonEnumerable===null&&desc?desc.enumerable:!nonEnumerable,value,writable:nonWritable===null&&desc?desc.writable:!nonWritable});else if(loose||!nonEnumerable&&!nonWritable&&!nonConfigurable)obj[property]=value;else throw new $SyntaxError(\"This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.\")}});var require_has_property_descriptors=__commonJS((exports,module)=>{var $defineProperty=require_es_define_property(),hasPropertyDescriptors=function(){return!!$defineProperty};hasPropertyDescriptors.hasArrayLengthDefineBug=function(){if(!$defineProperty)return null;try{return $defineProperty([],\"length\",{value:1}).length!==1}catch(e){return!0}};module.exports=hasPropertyDescriptors});var require_set_function_length=__commonJS((exports,module)=>{var GetIntrinsic=require_get_intrinsic(),define=require_define_data_property(),hasDescriptors=require_has_property_descriptors()(),gOPD=require_gopd(),$TypeError=require_type(),$floor=GetIntrinsic(\"%Math.floor%\");module.exports=function(fn,length){if(typeof fn!==\"function\")throw new $TypeError(\"`fn` is not a function\");if(typeof length!==\"number\"||length<0||length>4294967295||$floor(length)!==length)throw new $TypeError(\"`length` must be a positive 32-bit integer\");var loose=arguments.length>2&&!!arguments[2],functionLengthIsConfigurable=!0,functionLengthIsWritable=!0;if(\"length\"in fn&&gOPD){var desc=gOPD(fn,\"length\");if(desc&&!desc.configurable)functionLengthIsConfigurable=!1;if(desc&&!desc.writable)functionLengthIsWritable=!1}if(functionLengthIsConfigurable||functionLengthIsWritable||!loose)if(hasDescriptors)define(fn,\"length\",length,!0,!0);else define(fn,\"length\",length);return fn}});var require_applyBind=__commonJS((exports,module)=>{var bind=require_function_bind(),$apply=require_functionApply(),actualApply=require_actualApply();module.exports=function(){return actualApply(bind,$apply,arguments)}});var require_call_bind=__commonJS((exports,module)=>{var setFunctionLength=require_set_function_length(),$defineProperty=require_es_define_property(),callBindBasic=require_call_bind_apply_helpers(),applyBind=require_applyBind();module.exports=function(originalFunction){var func=callBindBasic(arguments),adjustedLength=originalFunction.length-(arguments.length-1);return setFunctionLength(func,1+(adjustedLength>0?adjustedLength:0),!0)};if($defineProperty)$defineProperty(module.exports,\"apply\",{value:applyBind});else module.exports.apply=applyBind});var require_shams2=__commonJS((exports,module)=>{var hasSymbols=require_shams();module.exports=function(){return hasSymbols()&&!!Symbol.toStringTag}});var require_which_typed_array=__commonJS((exports,module)=>{var forEach=require_for_each(),availableTypedArrays=require_available_typed_arrays(),callBind=require_call_bind(),callBound=require_call_bound(),gOPD=require_gopd(),getProto=require_get_proto(),$toString=callBound(\"Object.prototype.toString\"),hasToStringTag=require_shams2()(),g=typeof globalThis>\"u\"?globalThis:globalThis,typedArrays=availableTypedArrays(),$slice=callBound(\"String.prototype.slice\"),$indexOf=callBound(\"Array.prototype.indexOf\",!0)||function(array,value){for(var i=0;i-1)return tag;if(tag!==\"Object\")return!1;return trySlices(value)}if(!gOPD)return null;return tryTypedArrays(value)}});var require_is_typed_array=__commonJS((exports,module)=>{var whichTypedArray=require_which_typed_array();module.exports=function(value){return!!whichTypedArray(value)}});var require_typed_array_buffer=__commonJS((exports,module)=>{var $TypeError=require_type(),callBound=require_call_bound(),$typedArrayBuffer=callBound(\"TypedArray.prototype.buffer\",!0),isTypedArray=require_is_typed_array();module.exports=$typedArrayBuffer||function(x){if(!isTypedArray(x))throw new $TypeError(\"Not a Typed Array\");return x.buffer}});var require_to_buffer=__commonJS((exports,module)=>{var Buffer2=require_safe_buffer().Buffer,isArray=require_isarray(),typedArrayBuffer=require_typed_array_buffer(),isView=ArrayBuffer.isView||function(obj){try{return typedArrayBuffer(obj),!0}catch(e){return!1}},useUint8Array=typeof Uint8Array<\"u\",useArrayBuffer=typeof ArrayBuffer<\"u\"&&typeof Uint8Array<\"u\",useFromArrayBuffer=useArrayBuffer&&(Buffer2.prototype instanceof Uint8Array||Buffer2.TYPED_ARRAY_SUPPORT);module.exports=function(data,encoding){if(Buffer2.isBuffer(data)){if(data.constructor&&!(\"isBuffer\"in data))return Buffer2.from(data);return data}if(typeof data===\"string\")return Buffer2.from(data,encoding);if(useArrayBuffer&&isView(data)){if(data.byteLength===0)return Buffer2.alloc(0);if(useFromArrayBuffer){var res=Buffer2.from(data.buffer,data.byteOffset,data.byteLength);if(res.byteLength===data.byteLength)return res}var uint8=data instanceof Uint8Array?data:new Uint8Array(data.buffer,data.byteOffset,data.byteLength),result=Buffer2.from(uint8);if(result.length===data.byteLength)return result}if(useUint8Array&&data instanceof Uint8Array)return Buffer2.from(data);var isArr=isArray(data);if(isArr)for(var i=0;i255||~~x!==x)throw RangeError(\"Array items must be numbers in the range 0-255.\")}if(isArr||Buffer2.isBuffer(data)&&data.constructor&&typeof data.constructor.isBuffer===\"function\"&&data.constructor.isBuffer(data))return Buffer2.from(data);throw TypeError('The \"data\" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.')}});var require_to_buffer2=__commonJS((exports,module)=>{var Buffer2=require_safe_buffer().Buffer,toBuffer=require_to_buffer(),useUint8Array=typeof Uint8Array<\"u\",useArrayBuffer=useUint8Array&&typeof ArrayBuffer<\"u\",isView=useArrayBuffer&&ArrayBuffer.isView;module.exports=function(thing,encoding,name){if(typeof thing===\"string\"||Buffer2.isBuffer(thing)||useUint8Array&&thing instanceof Uint8Array||isView&&isView(thing))return toBuffer(thing,encoding);throw TypeError(name+\" must be a string, a Buffer, a Uint8Array, or a DataView\")}});var require_sync=__commonJS((exports,module)=>{var sizes={__proto__:null,md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,\"sha512-256\":32,rmd160:20,ripemd160:20},mapping={__proto__:null,\"sha-1\":\"sha1\",\"sha-224\":\"sha224\",\"sha-256\":\"sha256\",\"sha-384\":\"sha384\",\"sha-512\":\"sha512\",\"ripemd-160\":\"ripemd160\"},createHmac=require_create_hmac(),Buffer2=require_safe_buffer().Buffer,checkParameters=require_precondition(),defaultEncoding=require_default_encoding(),toBuffer=require_to_buffer2();function pbkdf2(password,salt,iterations,keylen,digest){checkParameters(iterations,keylen),password=toBuffer(password,defaultEncoding,\"Password\"),salt=toBuffer(salt,defaultEncoding,\"Salt\");var lowerDigest=(digest||\"sha1\").toLowerCase(),mappedDigest=mapping[lowerDigest]||lowerDigest,size=sizes[mappedDigest];if(typeof size!==\"number\"||!size)throw TypeError(\"Digest algorithm not supported: \"+digest);var DK=Buffer2.allocUnsafe(keylen),block1=Buffer2.allocUnsafe(salt.length+4);salt.copy(block1,0,0,salt.length);var destPos=0,hLen=size,l=Math.ceil(keylen/hLen);for(var i=1;i<=l;i++){block1.writeUInt32BE(i,salt.length);var T=createHmac(mappedDigest,password).update(block1).digest(),U=T;for(var j=1;j{var Buffer2=require_safe_buffer().Buffer,checkParameters=require_precondition(),defaultEncoding=require_default_encoding(),sync=require_sync(),toBuffer=require_to_buffer2(),ZERO_BUF,subtle=globalThis.crypto&&globalThis.crypto.subtle,toBrowser={sha:\"SHA-1\",\"sha-1\":\"SHA-1\",sha1:\"SHA-1\",sha256:\"SHA-256\",\"sha-256\":\"SHA-256\",sha384:\"SHA-384\",\"sha-384\":\"SHA-384\",\"sha-512\":\"SHA-512\",sha512:\"SHA-512\"},checks=[],nextTick;function getNextTick(){if(nextTick)return nextTick;if(globalThis.process&&globalThis.process.nextTick)nextTick=globalThis.process.nextTick;else if(globalThis.queueMicrotask)nextTick=globalThis.queueMicrotask;else if(globalThis.setImmediate)nextTick=globalThis.setImmediate;else nextTick=globalThis.setTimeout;return nextTick}function browserPbkdf2(password,salt,iterations,length,algo){return subtle.importKey(\"raw\",password,{name:\"PBKDF2\"},!1,[\"deriveBits\"]).then(function(key){return subtle.deriveBits({name:\"PBKDF2\",salt,iterations,hash:{name:algo}},key,length<<3)}).then(function(res){return Buffer2.from(res)})}function checkNative(algo){if(globalThis.process&&!globalThis.process.browser)return Promise.resolve(!1);if(!subtle||!subtle.importKey||!subtle.deriveBits)return Promise.resolve(!1);if(checks[algo]!==void 0)return checks[algo];ZERO_BUF=ZERO_BUF||Buffer2.alloc(8);var prom=browserPbkdf2(ZERO_BUF,ZERO_BUF,10,128,algo).then(function(){return!0},function(){return!1});return checks[algo]=prom,prom}function resolvePromise(promise,callback){promise.then(function(out){getNextTick()(function(){callback(null,out)})},function(e){getNextTick()(function(){callback(e)})})}module.exports=function(password,salt,iterations,keylen,digest,callback){if(typeof digest===\"function\")callback=digest,digest=void 0;if(checkParameters(iterations,keylen),password=toBuffer(password,defaultEncoding,\"Password\"),salt=toBuffer(salt,defaultEncoding,\"Salt\"),typeof callback!==\"function\")throw Error(\"No callback provided to pbkdf2\");digest=digest||\"sha1\";var algo=toBrowser[digest.toLowerCase()];if(!algo||typeof globalThis.Promise!==\"function\"){getNextTick()(function(){var out;try{out=sync(password,salt,iterations,keylen,digest)}catch(e){callback(e);return}callback(null,out)});return}resolvePromise(checkNative(algo).then(function(resp){if(resp)return browserPbkdf2(password,salt,iterations,keylen,algo);return sync(password,salt,iterations,keylen,digest)}),callback)}});var require_pbkdf2=__commonJS((exports)=>{var nativeImpl=require(\"crypto\"),checkParameters=require_precondition(),defaultEncoding=require_default_encoding(),toBuffer=require_to_buffer2();function nativePBKDF2(password,salt,iterations,keylen,digest,callback){if(checkParameters(iterations,keylen),password=toBuffer(password,defaultEncoding,\"Password\"),salt=toBuffer(salt,defaultEncoding,\"Salt\"),typeof digest===\"function\")callback=digest,digest=\"sha1\";if(typeof callback!==\"function\")throw Error(\"No callback provided to pbkdf2\");return nativeImpl.pbkdf2(password,salt,iterations,keylen,digest,callback)}function nativePBKDF2Sync(password,salt,iterations,keylen,digest){return checkParameters(iterations,keylen),password=toBuffer(password,defaultEncoding,\"Password\"),salt=toBuffer(salt,defaultEncoding,\"Salt\"),digest=digest||\"sha1\",nativeImpl.pbkdf2Sync(password,salt,iterations,keylen,digest)}if(!nativeImpl.pbkdf2Sync||nativeImpl.pbkdf2Sync.toString().indexOf(\"keylen, digest\")===-1)exports.pbkdf2Sync=require_sync(),exports.pbkdf2=require_async();else exports.pbkdf2Sync=nativePBKDF2Sync,exports.pbkdf2=nativePBKDF2});var require_browserify_cipher=__commonJS((exports)=>{var crypto2=require(\"crypto\");exports.createCipher=exports.Cipher=crypto2.createCipher;exports.createCipheriv=exports.Cipheriv=crypto2.createCipheriv;exports.createDecipher=exports.Decipher=crypto2.createDecipher;exports.createDecipheriv=exports.Decipheriv=crypto2.createDecipheriv;exports.listCiphers=exports.getCiphers=crypto2.getCiphers});var require_diffie_hellman=__commonJS((exports)=>{var crypto2=require(\"crypto\");exports.DiffieHellmanGroup=crypto2.DiffieHellmanGroup;exports.createDiffieHellmanGroup=crypto2.createDiffieHellmanGroup;exports.getDiffieHellman=crypto2.getDiffieHellman;exports.createDiffieHellman=crypto2.createDiffieHellman;exports.DiffieHellman=crypto2.DiffieHellman});var require_browserify_sign=__commonJS((exports)=>{var crypto2=require(\"crypto\");exports.createSign=crypto2.createSign;exports.Sign=crypto2.Sign;exports.createVerify=crypto2.createVerify;exports.Verify=crypto2.Verify});var require_package=__commonJS((exports,module)=>{module.exports={name:\"elliptic\",version:\"6.6.1\",description:\"EC cryptography\",main:\"lib/elliptic.js\",files:[\"lib\"],scripts:{lint:\"eslint lib test\",\"lint:fix\":\"npm run lint -- --fix\",unit:\"istanbul test _mocha --reporter=spec test/index.js\",test:\"npm run lint && npm run unit\",version:\"grunt dist && git add dist/\"},repository:{type:\"git\",url:\"git@github.com:indutny/elliptic\"},keywords:[\"EC\",\"Elliptic\",\"curve\",\"Cryptography\"],author:\"Fedor Indutny \",license:\"MIT\",bugs:{url:\"https://github.com/indutny/elliptic/issues\"},homepage:\"https://github.com/indutny/elliptic\",devDependencies:{brfs:\"^2.0.2\",coveralls:\"^3.1.0\",eslint:\"^7.6.0\",grunt:\"^1.2.1\",\"grunt-browserify\":\"^5.3.0\",\"grunt-cli\":\"^1.3.2\",\"grunt-contrib-connect\":\"^3.0.0\",\"grunt-contrib-copy\":\"^1.0.0\",\"grunt-contrib-uglify\":\"^5.0.0\",\"grunt-mocha-istanbul\":\"^5.0.2\",\"grunt-saucelabs\":\"^9.0.1\",istanbul:\"^0.4.5\",mocha:\"^8.0.1\"},dependencies:{\"bn.js\":\"^4.11.9\",brorand:\"^1.1.0\",\"hash.js\":\"^1.0.0\",\"hmac-drbg\":\"^1.0.1\",inherits:\"^2.0.4\",\"minimalistic-assert\":\"^1.0.1\",\"minimalistic-crypto-utils\":\"^1.0.1\"}}});var require_bn=__commonJS((exports,module)=>{(function(module2,exports2){function assert(val,msg){if(!val)throw Error(msg||\"Assertion failed\")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;if(this.negative=0,this.words=null,this.length=0,this.red=null,number!==null){if(base===\"le\"||base===\"be\")endian=base,base=10;this._init(number||0,base||10,endian||\"be\")}}if(typeof module2===\"object\")module2.exports=BN;else exports2.BN=BN;BN.BN=BN,BN.wordSize=26;var Buffer2;try{if(typeof window<\"u\"&&typeof window.Buffer<\"u\")Buffer2=window.Buffer;else Buffer2=require(\"buffer\").Buffer}catch(e){}BN.isBN=function(num){if(num instanceof BN)return!0;return num!==null&&typeof num===\"object\"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){if(left.cmp(right)>0)return left;return right},BN.min=function(left,right){if(left.cmp(right)<0)return left;return right},BN.prototype._init=function(number,base,endian){if(typeof number===\"number\")return this._initNumber(number,base,endian);if(typeof number===\"object\")return this._initArray(number,base,endian);if(base===\"hex\")base=16;assert(base===(base|0)&&base>=2&&base<=36),number=number.toString().replace(/\\s+/g,\"\");var start=0;if(number[0]===\"-\")start++,this.negative=1;if(start=0;i-=3)if(w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,off+=24,off>=26)off-=26,j++}else if(endian===\"le\"){for(i=0,j=0;i>>26-off&67108863,off+=24,off>=26)off-=26,j++}return this.strip()};function parseHex4Bits(string,index){var c=string.charCodeAt(index);if(c>=65&&c<=70)return c-55;else if(c>=97&&c<=102)return c-87;else return c-48&15}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);if(index-1>=lowerBound)r|=parseHex4Bits(string,index-1)<<4;return r}BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=Array(this.length);for(var i=0;i=start;i-=2)if(w=parseHexByte(number,start,i)<=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8;else{var parseLength=number.length-start;for(i=parseLength%2===0?start+1:start;i=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8}this.strip()};function parseBase(str,start,end,mul){var r=0,len=Math.min(str.length,end);for(var i=start;i=49)r+=c-49+10;else if(c>=17)r+=c-17+10;else r+=c}return r}BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0;for(var i=start;i1&&this.words[this.length-1]===0)this.length--;return this._normSign()},BN.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},BN.prototype.inspect=function(){return(this.red?\"\"};var zeros=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(BN.prototype.toString=function(base,padding){base=base||10,padding=padding|0||1;var out;if(base===16||base===\"hex\"){out=\"\";var off=0,carry=0;for(var i=0;i>>24-off&16777215,off+=2,off>=26)off-=26,i--;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out=\"\";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modn(groupBase).toString(base);if(c=c.idivn(groupBase),!c.isZero())out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.isZero())out=\"0\"+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}assert(!1,\"Base should be between 2 and 36\")},BN.prototype.toNumber=function(){var ret=this.words[0];if(this.length===2)ret+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)ret+=4503599627370496+this.words[1]*67108864;else if(this.length>2)assert(!1,\"Number can only safely store up to 53 bits\");return this.negative!==0?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(typeof Buffer2<\"u\"),this.toArrayLike(Buffer2,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,\"byte array longer than desired length\"),assert(reqLength>0,\"Requested array length <= 0\"),this.strip();var littleEndian=endian===\"le\",res=new ArrayType(reqLength),b,i,q=this.clone();if(!littleEndian){for(i=0;i=4096)r+=13,t>>>=13;if(t>=64)r+=7,t>>>=7;if(t>=8)r+=4,t>>>=4;if(t>=2)r+=2,t>>>=2;return r+t};BN.prototype._zeroBits=function(w){if(w===0)return 26;var t=w,r=0;if((t&8191)===0)r+=13,t>>>=13;if((t&127)===0)r+=7,t>>>=7;if((t&15)===0)r+=4,t>>>=4;if((t&3)===0)r+=2,t>>>=2;if((t&1)===0)r++;return r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=Array(num.bitLength());for(var bit=0;bit>>wbit}return w}BN.prototype.zeroBits=function(){if(this.isZero())return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);return num.clone().ior(this)},BN.prototype.uor=function(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;if(this.length>num.length)b=num;else b=this;for(var i=0;inum.length)return this.clone().iand(num);return num.clone().iand(this)},BN.prototype.uand=function(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;if(this.length>num.length)a=this,b=num;else a=num,b=this;for(var i=0;inum.length)return this.clone().ixor(num);return num.clone().ixor(this)},BN.prototype.uxor=function(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert(typeof width===\"number\"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0,bitsLeft=width%26;if(this._expand(bytesNeeded),bitsLeft>0)bytesNeeded--;for(var i=0;i0)this.words[i]=~this.words[i]&67108863>>26-bitsLeft;return this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert(typeof bit===\"number\"&&bit>=0);var off=bit/26|0,wbit=bit%26;if(this._expand(off+1),val)this.words[off]=this.words[off]|1<num.length)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>>26;for(;carry!==0&&i>>26;if(this.length=a.length,carry!==0)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length)return this.clone().iadd(num);return num.clone().iadd(this)},BN.prototype.isub=function(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var cmp=this.cmp(num);if(cmp===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,b;if(cmp>0)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>26,this.words[i]=r&67108863;for(;carry!==0&&i>26,this.words[i]=r&67108863;if(carry===0&&i>>26,rword=carry&67108863,maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self2.length+1);j<=maxJ;j++){var i=k-j|0;a=self2.words[i]|0,b=num.words[j]|0,r=a*b+rword,ncarry+=r/67108864|0,rword=r&67108863}out.words[k]=rword|0,carry=ncarry|0}if(carry!==0)out.words[k]=carry|0;else out.length--;return out.strip()}var comb10MulTo=function(self2,num,out){var a=self2.words,b=num.words,o=out.words,c=0,lo,mid,hi,a0=a[0]|0,al0=a0&8191,ah0=a0>>>13,a1=a[1]|0,al1=a1&8191,ah1=a1>>>13,a2=a[2]|0,al2=a2&8191,ah2=a2>>>13,a3=a[3]|0,al3=a3&8191,ah3=a3>>>13,a4=a[4]|0,al4=a4&8191,ah4=a4>>>13,a5=a[5]|0,al5=a5&8191,ah5=a5>>>13,a6=a[6]|0,al6=a6&8191,ah6=a6>>>13,a7=a[7]|0,al7=a7&8191,ah7=a7>>>13,a8=a[8]|0,al8=a8&8191,ah8=a8>>>13,a9=a[9]|0,al9=a9&8191,ah9=a9>>>13,b0=b[0]|0,bl0=b0&8191,bh0=b0>>>13,b1=b[1]|0,bl1=b1&8191,bh1=b1>>>13,b2=b[2]|0,bl2=b2&8191,bh2=b2>>>13,b3=b[3]|0,bl3=b3&8191,bh3=b3>>>13,b4=b[4]|0,bl4=b4&8191,bh4=b4>>>13,b5=b[5]|0,bl5=b5&8191,bh5=b5>>>13,b6=b[6]|0,bl6=b6&8191,bh6=b6>>>13,b7=b[7]|0,bl7=b7&8191,bh7=b7>>>13,b8=b[8]|0,bl8=b8&8191,bh8=b8>>>13,b9=b[9]|0,bl9=b9&8191,bh9=b9>>>13;out.negative=self2.negative^num.negative,out.length=19,lo=Math.imul(al0,bl0),mid=Math.imul(al0,bh0),mid=mid+Math.imul(ah0,bl0)|0,hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=Math.imul(al1,bh0),mid=mid+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0),lo=lo+Math.imul(al0,bl1)|0,mid=mid+Math.imul(al0,bh1)|0,mid=mid+Math.imul(ah0,bl1)|0,hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=Math.imul(al2,bh0),mid=mid+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=mid+Math.imul(al1,bh1)|0,mid=mid+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0,lo=lo+Math.imul(al0,bl2)|0,mid=mid+Math.imul(al0,bh2)|0,mid=mid+Math.imul(ah0,bl2)|0,hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=Math.imul(al3,bh0),mid=mid+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=mid+Math.imul(al2,bh1)|0,mid=mid+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=mid+Math.imul(al1,bh2)|0,mid=mid+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0,lo=lo+Math.imul(al0,bl3)|0,mid=mid+Math.imul(al0,bh3)|0,mid=mid+Math.imul(ah0,bl3)|0,hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=Math.imul(al4,bh0),mid=mid+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=mid+Math.imul(al3,bh1)|0,mid=mid+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=mid+Math.imul(al2,bh2)|0,mid=mid+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=mid+Math.imul(al1,bh3)|0,mid=mid+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0,lo=lo+Math.imul(al0,bl4)|0,mid=mid+Math.imul(al0,bh4)|0,mid=mid+Math.imul(ah0,bl4)|0,hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=Math.imul(al5,bh0),mid=mid+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=mid+Math.imul(al4,bh1)|0,mid=mid+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=mid+Math.imul(al3,bh2)|0,mid=mid+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=mid+Math.imul(al2,bh3)|0,mid=mid+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=mid+Math.imul(al1,bh4)|0,mid=mid+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0,lo=lo+Math.imul(al0,bl5)|0,mid=mid+Math.imul(al0,bh5)|0,mid=mid+Math.imul(ah0,bl5)|0,hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=Math.imul(al6,bh0),mid=mid+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=mid+Math.imul(al5,bh1)|0,mid=mid+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=mid+Math.imul(al4,bh2)|0,mid=mid+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=mid+Math.imul(al3,bh3)|0,mid=mid+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=mid+Math.imul(al2,bh4)|0,mid=mid+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=mid+Math.imul(al1,bh5)|0,mid=mid+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0,lo=lo+Math.imul(al0,bl6)|0,mid=mid+Math.imul(al0,bh6)|0,mid=mid+Math.imul(ah0,bl6)|0,hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=Math.imul(al7,bh0),mid=mid+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=mid+Math.imul(al6,bh1)|0,mid=mid+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=mid+Math.imul(al5,bh2)|0,mid=mid+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=mid+Math.imul(al4,bh3)|0,mid=mid+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=mid+Math.imul(al3,bh4)|0,mid=mid+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=mid+Math.imul(al2,bh5)|0,mid=mid+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=mid+Math.imul(al1,bh6)|0,mid=mid+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0,lo=lo+Math.imul(al0,bl7)|0,mid=mid+Math.imul(al0,bh7)|0,mid=mid+Math.imul(ah0,bl7)|0,hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=Math.imul(al8,bh0),mid=mid+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=mid+Math.imul(al7,bh1)|0,mid=mid+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=mid+Math.imul(al6,bh2)|0,mid=mid+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=mid+Math.imul(al5,bh3)|0,mid=mid+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=mid+Math.imul(al4,bh4)|0,mid=mid+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=mid+Math.imul(al3,bh5)|0,mid=mid+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=mid+Math.imul(al2,bh6)|0,mid=mid+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=mid+Math.imul(al1,bh7)|0,mid=mid+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0,lo=lo+Math.imul(al0,bl8)|0,mid=mid+Math.imul(al0,bh8)|0,mid=mid+Math.imul(ah0,bl8)|0,hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=Math.imul(al9,bh0),mid=mid+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=mid+Math.imul(al8,bh1)|0,mid=mid+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=mid+Math.imul(al7,bh2)|0,mid=mid+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=mid+Math.imul(al6,bh3)|0,mid=mid+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=mid+Math.imul(al5,bh4)|0,mid=mid+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=mid+Math.imul(al4,bh5)|0,mid=mid+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=mid+Math.imul(al3,bh6)|0,mid=mid+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=mid+Math.imul(al2,bh7)|0,mid=mid+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=mid+Math.imul(al1,bh8)|0,mid=mid+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0,lo=lo+Math.imul(al0,bl9)|0,mid=mid+Math.imul(al0,bh9)|0,mid=mid+Math.imul(ah0,bl9)|0,hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=Math.imul(al9,bh1),mid=mid+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=mid+Math.imul(al8,bh2)|0,mid=mid+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=mid+Math.imul(al7,bh3)|0,mid=mid+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=mid+Math.imul(al6,bh4)|0,mid=mid+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=mid+Math.imul(al5,bh5)|0,mid=mid+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=mid+Math.imul(al4,bh6)|0,mid=mid+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=mid+Math.imul(al3,bh7)|0,mid=mid+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=mid+Math.imul(al2,bh8)|0,mid=mid+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0,lo=lo+Math.imul(al1,bl9)|0,mid=mid+Math.imul(al1,bh9)|0,mid=mid+Math.imul(ah1,bl9)|0,hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=Math.imul(al9,bh2),mid=mid+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=mid+Math.imul(al8,bh3)|0,mid=mid+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=mid+Math.imul(al7,bh4)|0,mid=mid+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=mid+Math.imul(al6,bh5)|0,mid=mid+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=mid+Math.imul(al5,bh6)|0,mid=mid+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=mid+Math.imul(al4,bh7)|0,mid=mid+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=mid+Math.imul(al3,bh8)|0,mid=mid+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0,lo=lo+Math.imul(al2,bl9)|0,mid=mid+Math.imul(al2,bh9)|0,mid=mid+Math.imul(ah2,bl9)|0,hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=Math.imul(al9,bh3),mid=mid+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=mid+Math.imul(al8,bh4)|0,mid=mid+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=mid+Math.imul(al7,bh5)|0,mid=mid+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=mid+Math.imul(al6,bh6)|0,mid=mid+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=mid+Math.imul(al5,bh7)|0,mid=mid+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=mid+Math.imul(al4,bh8)|0,mid=mid+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0,lo=lo+Math.imul(al3,bl9)|0,mid=mid+Math.imul(al3,bh9)|0,mid=mid+Math.imul(ah3,bl9)|0,hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=Math.imul(al9,bh4),mid=mid+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=mid+Math.imul(al8,bh5)|0,mid=mid+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=mid+Math.imul(al7,bh6)|0,mid=mid+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=mid+Math.imul(al6,bh7)|0,mid=mid+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=mid+Math.imul(al5,bh8)|0,mid=mid+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0,lo=lo+Math.imul(al4,bl9)|0,mid=mid+Math.imul(al4,bh9)|0,mid=mid+Math.imul(ah4,bl9)|0,hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=Math.imul(al9,bh5),mid=mid+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=mid+Math.imul(al8,bh6)|0,mid=mid+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=mid+Math.imul(al7,bh7)|0,mid=mid+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=mid+Math.imul(al6,bh8)|0,mid=mid+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0,lo=lo+Math.imul(al5,bl9)|0,mid=mid+Math.imul(al5,bh9)|0,mid=mid+Math.imul(ah5,bl9)|0,hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=Math.imul(al9,bh6),mid=mid+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=mid+Math.imul(al8,bh7)|0,mid=mid+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=mid+Math.imul(al7,bh8)|0,mid=mid+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0,lo=lo+Math.imul(al6,bl9)|0,mid=mid+Math.imul(al6,bh9)|0,mid=mid+Math.imul(ah6,bl9)|0,hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=Math.imul(al9,bh7),mid=mid+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=mid+Math.imul(al8,bh8)|0,mid=mid+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0,lo=lo+Math.imul(al7,bl9)|0,mid=mid+Math.imul(al7,bh9)|0,mid=mid+Math.imul(ah7,bl9)|0,hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=Math.imul(al9,bh8),mid=mid+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8),lo=lo+Math.imul(al8,bl9)|0,mid=mid+Math.imul(al8,bh9)|0,mid=mid+Math.imul(ah8,bl9)|0,hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863,lo=Math.imul(al9,bl9),mid=Math.imul(al9,bh9),mid=mid+Math.imul(ah9,bl9)|0,hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;if(c=(hi+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,c!==0)o[19]=c,out.length++;return out};if(!Math.imul)comb10MulTo=smallMulTo;function bigMulTo(self2,num,out){out.negative=num.negative^self2.negative,out.length=self2.length+num.length;var carry=0,hncarry=0;for(var k=0;k>>26)|0,hncarry+=ncarry>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}if(carry!==0)out.words[k]=carry;else out.length--;return out.strip()}function jumboMulTo(self2,num,out){var fftm=new FFTM;return fftm.mulp(self2,num,out)}BN.prototype.mulTo=function(num,out){var res,len=this.length+num.length;if(this.length===10&&num.length===10)res=comb10MulTo(this,num,out);else if(len<63)res=smallMulTo(this,num,out);else if(len<1024)res=bigMulTo(this,num,out);else res=jumboMulTo(this,num,out);return res};function FFTM(x,y){this.x=x,this.y=y}FFTM.prototype.makeRBT=function(N){var t=Array(N),l=BN.prototype._countBits(N)-1;for(var i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1)i++;return 1<>>13,rws[2*i+1]=carry&8191,carry=carry>>>13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=lo&67108863}if(carry!==0)this.words[i]=carry,this.length++;return this.length=num===0?1:this.length,this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i=0);var r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r,i;if(r!==0){var carry=0;for(i=0;i>>26-r}if(carry)this.words[i]=carry,this.length++}if(s!==0){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0);var h;if(hint)h=(hint-hint%26)/26;else h=0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s){this.length-=s;for(i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r,carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0)this.words[0]=0,this.length=1;return this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(this.negative===0),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert(typeof bit===\"number\"&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(this.negative===0,\"imaskn works only with positive numbers\"),this.length<=s)return this;if(r!==0)s++;if(this.length=Math.min(s,this.length),r!==0){var mask=67108863^67108863>>>r<=67108864;i++)if(this.words[i]-=67108864,i===this.length-1)this.words[i+1]=1;else this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert(typeof num===\"number\"),assert(num<67108864),num<0)return this.iaddn(-num);if(this.negative!==0)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=w&67108863}for(;i>26,this.words[i+shift]=w&67108863;if(carry===0)return this.strip();assert(carry===-1),carry=0;for(i=0;i>26,this.words[i]=w&67108863;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=this.length-num.length,a=this.clone(),b=num,bhi=b.words[b.length-1]|0,bhiBits=this._countBits(bhi);if(shift=26-bhiBits,shift!==0)b=b.ushln(shift),a.iushln(shift),bhi=b.words[b.length-1]|0;var m=a.length-b.length,q;if(mode!==\"mod\"){q=new BN(null),q.length=m+1,q.words=Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);while(a.negative!==0)if(qj--,a.negative=0,a._ishlnsubmul(b,1,j),!a.isZero())a.negative^=1;if(q)q.words[j]=qj}if(q)q.strip();if(a.strip(),mode!==\"div\"&&shift!==0)a.iushrn(shift);return{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){if(assert(!num.isZero()),this.isZero())return{div:new BN(0),mod:new BN(0)};var div,mod,res;if(this.negative!==0&&num.negative===0){if(res=this.neg().divmod(num,mode),mode!==\"mod\")div=res.div.neg();if(mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.iadd(num)}return{div,mod}}if(this.negative===0&&num.negative!==0){if(res=this.divmod(num.neg(),mode),mode!==\"mod\")div=res.div.neg();return{div,mod:res.mod}}if((this.negative&num.negative)!==0){if(res=this.neg().divmod(num.neg(),mode),mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.isub(num)}return{div:res.div,mod}}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode===\"div\")return{div:this.divn(num.words[0]),mod:null};if(mode===\"mod\")return{div:null,mod:new BN(this.modn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)},BN.prototype.div=function(num){return this.divmod(num,\"div\",!1).div},BN.prototype.mod=function(num){return this.divmod(num,\"mod\",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,\"mod\",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);var p=67108864%num,acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+(this.words[i]|0))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(p.negative===0),assert(!p.isZero());var x=this,y=p.clone();if(x.negative!==0)x=x.umod(p);else x=x.clone();var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;while(x.isEven()&&y.isEven())x.iushrn(1),y.iushrn(1),++g;var yp=y.clone(),xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd())A.iadd(yp),B.isub(xp);A.iushrn(1),B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd())C.iadd(yp),D.isub(xp);C.iushrn(1),D.iushrn(1)}}if(x.cmp(y)>=0)x.isub(y),A.isub(C),B.isub(D);else y.isub(x),C.isub(A),D.isub(B)}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(p.negative===0),assert(!p.isZero());var a=this,b=p.clone();if(a.negative!==0)a=a.umod(p);else a=a.clone();var x1=new BN(1),x2=new BN(0),delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd())x1.iadd(delta);x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd())x2.iadd(delta);x2.iushrn(1)}}if(a.cmp(b)>=0)a.isub(b),x1.isub(x2);else b.isub(a),x2.isub(x1)}var res;if(a.cmpn(1)===0)res=x1;else res=x2;if(res.cmpn(0)<0)res.iadd(p);return res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);do{while(a.isEven())a.iushrn(1);while(b.isEven())b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(r===0||b.cmpn(1)===0)break;a.isub(b)}while(!0);return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return(this.words[0]&1)===0},BN.prototype.isOdd=function(){return(this.words[0]&1)===1},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert(typeof bit===\"number\");var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}if(carry!==0)this.words[i]=carry,this.length++;return this},BN.prototype.isZero=function(){return this.length===1&&this.words[0]===0},BN.prototype.cmpn=function(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this.strip();var res;if(this.length>1)res=1;else{if(negative)num=-num;assert(num<=67108863,\"Number is too big\");var w=this.words[0]|0;res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=this.words[i]|0,b=num.words[i]|0;if(a===b)continue;if(ab)res=1;break}return res},BN.prototype.gtn=function(num){return this.cmpn(num)===1},BN.prototype.gt=function(num){return this.cmp(num)===1},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return this.cmpn(num)===-1},BN.prototype.lt=function(num){return this.cmp(num)===-1},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return this.cmpn(num)===0},BN.prototype.eq=function(num){return this.cmp(num)===0},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),assert(this.negative===0,\"red works only with positives\"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,\"redAdd works only with red numbers\"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,\"redSub works only with red numbers\"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,\"redISub works only with red numbers\"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,\"redShl works only with red numbers\"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var r=num,rlen;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),rlen=r.bitLength();while(rlen>this.n);var cmp=rlen0)r.isub(this.p);else if(r.strip!==void 0)r.strip();else r._strip();return r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)};function K256(){MPrime.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}inherits(K256,MPrime),K256.prototype.split=function(input,output){var mask=4194303,outLen=Math.min(input.length,9);for(var i=0;i>>22,prev=next}if(prev>>>=22,input.words[i-10]=prev,prev===0&&input.length>10)input.length-=10;else input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;var lo=0;for(var i=0;i>>=26,num.words[i]=lo,carry=hi}if(carry!==0)num.words[num.length++]=carry;return num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if(name===\"k256\")prime=new K256;else if(name===\"p224\")prime=new P224;else if(name===\"p192\")prime=new P192;else if(name===\"p25519\")prime=new P25519;else throw Error(\"Unknown prime \"+name);return primes[name]=prime,prime};function Red(m){if(typeof m===\"string\"){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),\"modulus must be greater than 1\"),this.m=m,this.prime=null}Red.prototype._verify1=function(a){assert(a.negative===0,\"red works only with positives\"),assert(a.red,\"red works only with red numbers\")},Red.prototype._verify2=function(a,b){assert((a.negative|b.negative)===0,\"red works only with positives\"),assert(a.red&&a.red===b.red,\"red works only with red numbers\")},Red.prototype.imod=function(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){if(a.isZero())return a.clone();return this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2===1),mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1),s=0;while(!q.isZero()&&q.andln(1)===0)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0])res=this.sqr(res);if(bit===0&¤t===0){currentLen=0;continue}if(current<<=1,current|=bit,currentLen++,currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]),currentLen=0,current=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)};function Mont(m){if(Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.invm=function(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module>\"u\"||module,exports)});var require_minimalistic_assert=__commonJS((exports,module)=>{module.exports=assert;function assert(val,msg){if(!val)throw Error(msg||\"Assertion failed\")}assert.equal=function(l,r,msg){if(l!=r)throw Error(msg||\"Assertion failed: \"+l+\" != \"+r)}});var require_utils=__commonJS((exports)=>{var utils=exports;function toArray(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if(typeof msg!==\"string\"){for(var i=0;i>8,lo=c&255;if(hi)res.push(hi,lo);else res.push(lo)}return res}utils.toArray=toArray;function zero2(word){if(word.length===1)return\"0\"+word;else return word}utils.zero2=zero2;function toHex(msg){var res=\"\";for(var i=0;i{var utils=exports,BN=require_bn(),minAssert=require_minimalistic_assert(),minUtils=require_utils();utils.assert=minAssert;utils.toArray=minUtils.toArray;utils.zero2=minUtils.zero2;utils.toHex=minUtils.toHex;utils.encode=minUtils.encode;function getNAF(num,w,bits){var naf=Array(Math.max(num.bitLength(),bits)+1),i;for(i=0;i(ws>>1)-1)z=(ws>>1)-mod;else z=mod;k.isubn(z)}else z=0;naf[i]=z,k.iushrn(1)}return naf}utils.getNAF=getNAF;function getJSF(k1,k2){var jsf=[[],[]];k1=k1.clone(),k2=k2.clone();var d1=0,d2=0,m8;while(k1.cmpn(-d1)>0||k2.cmpn(-d2)>0){var m14=k1.andln(3)+d1&3,m24=k2.andln(3)+d2&3;if(m14===3)m14=-1;if(m24===3)m24=-1;var u1;if((m14&1)===0)u1=0;else if(m8=k1.andln(7)+d1&7,(m8===3||m8===5)&&m24===2)u1=-m14;else u1=m14;jsf[0].push(u1);var u2;if((m24&1)===0)u2=0;else if(m8=k2.andln(7)+d2&7,(m8===3||m8===5)&&m14===2)u2=-m24;else u2=m24;if(jsf[1].push(u2),2*d1===u1+1)d1=1-d1;if(2*d2===u2+1)d2=1-d2;k1.iushrn(1),k2.iushrn(1)}return jsf}utils.getJSF=getJSF;function cachedProperty(obj,name,computer){var key=\"_\"+name;obj.prototype[name]=function(){return this[key]!==void 0?this[key]:this[key]=computer.call(this)}}utils.cachedProperty=cachedProperty;function parseBytes(bytes){return typeof bytes===\"string\"?utils.toArray(bytes,\"hex\"):bytes}utils.parseBytes=parseBytes;function intFromLE(bytes){return new BN(bytes,\"hex\",\"le\")}utils.intFromLE=intFromLE});var require_brorand=__commonJS((exports,module)=>{var r;module.exports=function(len){if(!r)r=new Rand(null);return r.generate(len)};function Rand(rand){this.rand=rand}module.exports.Rand=Rand;Rand.prototype.generate=function(len){return this._rand(len)};Rand.prototype._rand=function(n){if(this.rand.getBytes)return this.rand.getBytes(n);var res=new Uint8Array(n);for(var i=0;i{var BN=require_bn(),utils=require_utils2(),getNAF=utils.getNAF,getJSF=utils.getJSF,assert=utils.assert;function BaseCurve(type,conf){this.type=type,this.p=new BN(conf.p,16),this.red=conf.prime?BN.red(conf.prime):BN.mont(this.p),this.zero=new BN(0).toRed(this.red),this.one=new BN(1).toRed(this.red),this.two=new BN(2).toRed(this.red),this.n=conf.n&&new BN(conf.n,16),this.g=conf.g&&this.pointFromJSON(conf.g,conf.gRed),this._wnafT1=[,,,,],this._wnafT2=[,,,,],this._wnafT3=[,,,,],this._wnafT4=[,,,,],this._bitLength=this.n?this.n.bitLength():0;var adjustCount=this.n&&this.p.div(this.n);if(!adjustCount||adjustCount.cmpn(100)>0)this.redN=null;else this._maxwellTrick=!0,this.redN=this.n.toRed(this.red)}module.exports=BaseCurve;BaseCurve.prototype.point=function(){throw Error(\"Not implemented\")};BaseCurve.prototype.validate=function(){throw Error(\"Not implemented\")};BaseCurve.prototype._fixedNafMul=function(p,k){assert(p.precomputed);var doubles=p._getDoubles(),naf=getNAF(k,1,this._bitLength),I=(1<=j;l--)nafW=(nafW<<1)+naf[l];repr.push(nafW)}var a=this.jpoint(null,null,null),b=this.jpoint(null,null,null);for(var i=I;i>0;i--){for(j=0;j=0;i--){for(var l=0;i>=0&&naf[i]===0;i--)l++;if(i>=0)l++;if(acc=acc.dblp(l),i<0)break;var z=naf[i];if(assert(z!==0),p.type===\"affine\")if(z>0)acc=acc.mixedAdd(wnd[z-1>>1]);else acc=acc.mixedAdd(wnd[-z-1>>1].neg());else if(z>0)acc=acc.add(wnd[z-1>>1]);else acc=acc.add(wnd[-z-1>>1].neg())}return p.type===\"affine\"?acc.toP():acc};BaseCurve.prototype._wnafMulAdd=function(defW,points,coeffs,len,jacobianResult){var wndWidth=this._wnafT1,wnd=this._wnafT2,naf=this._wnafT3,max=0,i,j,p;for(i=0;i=1;i-=2){var a=i-1,b=i;if(wndWidth[a]!==1||wndWidth[b]!==1){naf[a]=getNAF(coeffs[a],wndWidth[a],this._bitLength),naf[b]=getNAF(coeffs[b],wndWidth[b],this._bitLength),max=Math.max(naf[a].length,max),max=Math.max(naf[b].length,max);continue}var comb=[points[a],null,null,points[b]];if(points[a].y.cmp(points[b].y)===0)comb[1]=points[a].add(points[b]),comb[2]=points[a].toJ().mixedAdd(points[b].neg());else if(points[a].y.cmp(points[b].y.redNeg())===0)comb[1]=points[a].toJ().mixedAdd(points[b]),comb[2]=points[a].add(points[b].neg());else comb[1]=points[a].toJ().mixedAdd(points[b]),comb[2]=points[a].toJ().mixedAdd(points[b].neg());var index=[-3,-1,-5,-7,0,7,5,1,3],jsf=getJSF(coeffs[a],coeffs[b]);max=Math.max(jsf[0].length,max),naf[a]=Array(max),naf[b]=Array(max);for(j=0;j=0;i--){var k=0;while(i>=0){var zero=!0;for(j=0;j=0)k++;if(acc=acc.dblp(k),i<0)break;for(j=0;j0)p=wnd[j][z-1>>1];else if(z<0)p=wnd[j][-z-1>>1].neg();if(p.type===\"affine\")acc=acc.mixedAdd(p);else acc=acc.add(p)}}for(i=0;i=Math.ceil((k.bitLength()+1)/doubles.step)};BasePoint.prototype._getDoubles=function(step,power){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;var doubles=[this],acc=this;for(var i=0;i{if(typeof Object.create===\"function\")module.exports=function(ctor,superCtor){if(superCtor)ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})};else module.exports=function(ctor,superCtor){if(superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}}});var require_inherits=__commonJS((exports,module)=>{try{if(util=require(\"util\"),typeof util.inherits!==\"function\")throw\"\";module.exports=util.inherits}catch(e){module.exports=require_inherits_browser()}var util});var require_short=__commonJS((exports,module)=>{var utils=require_utils2(),BN=require_bn(),inherits=require_inherits(),Base=require_base(),assert=utils.assert;function ShortCurve(conf){Base.call(this,\"short\",conf),this.a=new BN(conf.a,16).toRed(this.red),this.b=new BN(conf.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(conf),this._endoWnafT1=[,,,,],this._endoWnafT2=[,,,,]}inherits(ShortCurve,Base);module.exports=ShortCurve;ShortCurve.prototype._getEndomorphism=function(conf){if(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)return;var beta,lambda;if(conf.beta)beta=new BN(conf.beta,16).toRed(this.red);else{var betas=this._getEndoRoots(this.p);beta=betas[0].cmp(betas[1])<0?betas[0]:betas[1],beta=beta.toRed(this.red)}if(conf.lambda)lambda=new BN(conf.lambda,16);else{var lambdas=this._getEndoRoots(this.n);if(this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta))===0)lambda=lambdas[0];else lambda=lambdas[1],assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta))===0)}var basis;if(conf.basis)basis=conf.basis.map(function(vec){return{a:new BN(vec.a,16),b:new BN(vec.b,16)}});else basis=this._getEndoBasis(lambda);return{beta,lambda,basis}};ShortCurve.prototype._getEndoRoots=function(num){var red=num===this.p?this.red:BN.mont(num),tinv=new BN(2).toRed(red).redInvm(),ntinv=tinv.redNeg(),s=new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv),l1=ntinv.redAdd(s).fromRed(),l2=ntinv.redSub(s).fromRed();return[l1,l2]};ShortCurve.prototype._getEndoBasis=function(lambda){var aprxSqrt=this.n.ushrn(Math.floor(this.n.bitLength()/2)),u=lambda,v=this.n.clone(),x1=new BN(1),y1=new BN(0),x2=new BN(0),y2=new BN(1),a0,b0,a1,b1,a2,b2,prevR,i=0,r,x;while(u.cmpn(0)!==0){var q=v.div(u);r=v.sub(q.mul(u)),x=x2.sub(q.mul(x1));var y=y2.sub(q.mul(y1));if(!a1&&r.cmp(aprxSqrt)<0)a0=prevR.neg(),b0=x1,a1=r.neg(),b1=x;else if(a1&&++i===2)break;prevR=r,v=u,u=r,x2=x1,x1=x,y2=y1,y1=y}a2=r.neg(),b2=x;var len1=a1.sqr().add(b1.sqr()),len2=a2.sqr().add(b2.sqr());if(len2.cmp(len1)>=0)a2=a0,b2=b0;if(a1.negative)a1=a1.neg(),b1=b1.neg();if(a2.negative)a2=a2.neg(),b2=b2.neg();return[{a:a1,b:b1},{a:a2,b:b2}]};ShortCurve.prototype._endoSplit=function(k){var basis=this.endo.basis,v1=basis[0],v2=basis[1],c1=v2.b.mul(k).divRound(this.n),c2=v1.b.neg().mul(k).divRound(this.n),p1=c1.mul(v1.a),p2=c2.mul(v2.a),q1=c1.mul(v1.b),q2=c2.mul(v2.b),k1=k.sub(p1).sub(p2),k2=q1.add(q2).neg();return{k1,k2}};ShortCurve.prototype.pointFromX=function(x,odd){if(x=new BN(x,16),!x.red)x=x.toRed(this.red);var y2=x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b),y=y2.redSqrt();if(y.redSqr().redSub(y2).cmp(this.zero)!==0)throw Error(\"invalid point\");var isOdd=y.fromRed().isOdd();if(odd&&!isOdd||!odd&&isOdd)y=y.redNeg();return this.point(x,y)};ShortCurve.prototype.validate=function(point){if(point.inf)return!0;var{x,y}=point,ax=this.a.redMul(x),rhs=x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);return y.redSqr().redISub(rhs).cmpn(0)===0};ShortCurve.prototype._endoWnafMulAdd=function(points,coeffs,jacobianResult){var npoints=this._endoWnafT1,ncoeffs=this._endoWnafT2;for(var i=0;i\";return\"\"};Point.prototype.isInfinity=function(){return this.inf};Point.prototype.add=function(p){if(this.inf)return p;if(p.inf)return this;if(this.eq(p))return this.dbl();if(this.neg().eq(p))return this.curve.point(null,null);if(this.x.cmp(p.x)===0)return this.curve.point(null,null);var c=this.y.redSub(p.y);if(c.cmpn(0)!==0)c=c.redMul(this.x.redSub(p.x).redInvm());var nx=c.redSqr().redISub(this.x).redISub(p.x),ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)};Point.prototype.dbl=function(){if(this.inf)return this;var ys1=this.y.redAdd(this.y);if(ys1.cmpn(0)===0)return this.curve.point(null,null);var a=this.curve.a,x2=this.x.redSqr(),dyinv=ys1.redInvm(),c=x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv),nx=c.redSqr().redISub(this.x.redAdd(this.x)),ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)};Point.prototype.getX=function(){return this.x.fromRed()};Point.prototype.getY=function(){return this.y.fromRed()};Point.prototype.mul=function(k){if(k=new BN(k,16),this.isInfinity())return this;else if(this._hasDoubles(k))return this.curve._fixedNafMul(this,k);else if(this.curve.endo)return this.curve._endoWnafMulAdd([this],[k]);else return this.curve._wnafMul(this,k)};Point.prototype.mulAdd=function(k1,p2,k2){var points=[this,p2],coeffs=[k1,k2];if(this.curve.endo)return this.curve._endoWnafMulAdd(points,coeffs);else return this.curve._wnafMulAdd(1,points,coeffs,2)};Point.prototype.jmulAdd=function(k1,p2,k2){var points=[this,p2],coeffs=[k1,k2];if(this.curve.endo)return this.curve._endoWnafMulAdd(points,coeffs,!0);else return this.curve._wnafMulAdd(1,points,coeffs,2,!0)};Point.prototype.eq=function(p){return this===p||this.inf===p.inf&&(this.inf||this.x.cmp(p.x)===0&&this.y.cmp(p.y)===0)};Point.prototype.neg=function(_precompute){if(this.inf)return this;var res=this.curve.point(this.x,this.y.redNeg());if(_precompute&&this.precomputed){var pre=this.precomputed,negate=function(p){return p.neg()};res.precomputed={naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(negate)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(negate)}}}return res};Point.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var res=this.curve.jpoint(this.x,this.y,this.curve.one);return res};function JPoint(curve,x,y,z){if(Base.BasePoint.call(this,curve,\"jacobian\"),x===null&&y===null&&z===null)this.x=this.curve.one,this.y=this.curve.one,this.z=new BN(0);else this.x=new BN(x,16),this.y=new BN(y,16),this.z=new BN(z,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);this.zOne=this.z===this.curve.one}inherits(JPoint,Base.BasePoint);ShortCurve.prototype.jpoint=function(x,y,z){return new JPoint(this,x,y,z)};JPoint.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var zinv=this.z.redInvm(),zinv2=zinv.redSqr(),ax=this.x.redMul(zinv2),ay=this.y.redMul(zinv2).redMul(zinv);return this.curve.point(ax,ay)};JPoint.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};JPoint.prototype.add=function(p){if(this.isInfinity())return p;if(p.isInfinity())return this;var pz2=p.z.redSqr(),z2=this.z.redSqr(),u1=this.x.redMul(pz2),u2=p.x.redMul(z2),s1=this.y.redMul(pz2.redMul(p.z)),s2=p.y.redMul(z2.redMul(this.z)),h=u1.redSub(u2),r=s1.redSub(s2);if(h.cmpn(0)===0)if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl();var h2=h.redSqr(),h3=h2.redMul(h),v=u1.redMul(h2),nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v),ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)),nz=this.z.redMul(p.z).redMul(h);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.mixedAdd=function(p){if(this.isInfinity())return p.toJ();if(p.isInfinity())return this;var z2=this.z.redSqr(),u1=this.x,u2=p.x.redMul(z2),s1=this.y,s2=p.y.redMul(z2).redMul(this.z),h=u1.redSub(u2),r=s1.redSub(s2);if(h.cmpn(0)===0)if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl();var h2=h.redSqr(),h3=h2.redMul(h),v=u1.redMul(h2),nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v),ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)),nz=this.z.redMul(h);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.dblp=function(pow){if(pow===0)return this;if(this.isInfinity())return this;if(!pow)return this.dbl();var i;if(this.curve.zeroA||this.curve.threeA){var r=this;for(i=0;i=0)return!1;if(rx.redIAdd(t),this.x.cmp(rx)===0)return!0}};JPoint.prototype.inspect=function(){if(this.isInfinity())return\"\";return\"\"};JPoint.prototype.isInfinity=function(){return this.z.cmpn(0)===0}});var require_mont=__commonJS((exports,module)=>{var BN=require_bn(),inherits=require_inherits(),Base=require_base(),utils=require_utils2();function MontCurve(conf){Base.call(this,\"mont\",conf),this.a=new BN(conf.a,16).toRed(this.red),this.b=new BN(conf.b,16).toRed(this.red),this.i4=new BN(4).toRed(this.red).redInvm(),this.two=new BN(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits(MontCurve,Base);module.exports=MontCurve;MontCurve.prototype.validate=function(point){var x=point.normalize().x,x2=x.redSqr(),rhs=x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x),y=rhs.redSqrt();return y.redSqr().cmp(rhs)===0};function Point(curve,x,z){if(Base.BasePoint.call(this,curve,\"projective\"),x===null&&z===null)this.x=this.curve.one,this.z=this.curve.zero;else{if(this.x=new BN(x,16),this.z=new BN(z,16),!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red)}}inherits(Point,Base.BasePoint);MontCurve.prototype.decodePoint=function(bytes,enc){return this.point(utils.toArray(bytes,enc),1)};MontCurve.prototype.point=function(x,z){return new Point(this,x,z)};MontCurve.prototype.pointFromJSON=function(obj){return Point.fromJSON(this,obj)};Point.prototype.precompute=function(){};Point.prototype._encode=function(){return this.getX().toArray(\"be\",this.curve.p.byteLength())};Point.fromJSON=function(curve,obj){return new Point(curve,obj[0],obj[1]||curve.one)};Point.prototype.inspect=function(){if(this.isInfinity())return\"\";return\"\"};Point.prototype.isInfinity=function(){return this.z.cmpn(0)===0};Point.prototype.dbl=function(){var a=this.x.redAdd(this.z),aa=a.redSqr(),b=this.x.redSub(this.z),bb=b.redSqr(),c=aa.redSub(bb),nx=aa.redMul(bb),nz=c.redMul(bb.redAdd(this.curve.a24.redMul(c)));return this.curve.point(nx,nz)};Point.prototype.add=function(){throw Error(\"Not supported on Montgomery curve\")};Point.prototype.diffAdd=function(p,diff){var a=this.x.redAdd(this.z),b=this.x.redSub(this.z),c=p.x.redAdd(p.z),d=p.x.redSub(p.z),da=d.redMul(a),cb=c.redMul(b),nx=diff.z.redMul(da.redAdd(cb).redSqr()),nz=diff.x.redMul(da.redISub(cb).redSqr());return this.curve.point(nx,nz)};Point.prototype.mul=function(k){var t=k.clone(),a=this,b=this.curve.point(null,null),c=this;for(var bits=[];t.cmpn(0)!==0;t.iushrn(1))bits.push(t.andln(1));for(var i=bits.length-1;i>=0;i--)if(bits[i]===0)a=a.diffAdd(b,c),b=b.dbl();else b=a.diffAdd(b,c),a=a.dbl();return b};Point.prototype.mulAdd=function(){throw Error(\"Not supported on Montgomery curve\")};Point.prototype.jumlAdd=function(){throw Error(\"Not supported on Montgomery curve\")};Point.prototype.eq=function(other){return this.getX().cmp(other.getX())===0};Point.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this};Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()}});var require_edwards=__commonJS((exports,module)=>{var utils=require_utils2(),BN=require_bn(),inherits=require_inherits(),Base=require_base(),assert=utils.assert;function EdwardsCurve(conf){this.twisted=(conf.a|0)!==1,this.mOneA=this.twisted&&(conf.a|0)===-1,this.extended=this.mOneA,Base.call(this,\"edwards\",conf),this.a=new BN(conf.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new BN(conf.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new BN(conf.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),assert(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(conf.c|0)===1}inherits(EdwardsCurve,Base);module.exports=EdwardsCurve;EdwardsCurve.prototype._mulA=function(num){if(this.mOneA)return num.redNeg();else return this.a.redMul(num)};EdwardsCurve.prototype._mulC=function(num){if(this.oneC)return num;else return this.c.redMul(num)};EdwardsCurve.prototype.jpoint=function(x,y,z,t){return this.point(x,y,z,t)};EdwardsCurve.prototype.pointFromX=function(x,odd){if(x=new BN(x,16),!x.red)x=x.toRed(this.red);var x2=x.redSqr(),rhs=this.c2.redSub(this.a.redMul(x2)),lhs=this.one.redSub(this.c2.redMul(this.d).redMul(x2)),y2=rhs.redMul(lhs.redInvm()),y=y2.redSqrt();if(y.redSqr().redSub(y2).cmp(this.zero)!==0)throw Error(\"invalid point\");var isOdd=y.fromRed().isOdd();if(odd&&!isOdd||!odd&&isOdd)y=y.redNeg();return this.point(x,y)};EdwardsCurve.prototype.pointFromY=function(y,odd){if(y=new BN(y,16),!y.red)y=y.toRed(this.red);var y2=y.redSqr(),lhs=y2.redSub(this.c2),rhs=y2.redMul(this.d).redMul(this.c2).redSub(this.a),x2=lhs.redMul(rhs.redInvm());if(x2.cmp(this.zero)===0)if(odd)throw Error(\"invalid point\");else return this.point(this.zero,y);var x=x2.redSqrt();if(x.redSqr().redSub(x2).cmp(this.zero)!==0)throw Error(\"invalid point\");if(x.fromRed().isOdd()!==odd)x=x.redNeg();return this.point(x,y)};EdwardsCurve.prototype.validate=function(point){if(point.isInfinity())return!0;point.normalize();var x2=point.x.redSqr(),y2=point.y.redSqr(),lhs=x2.redMul(this.a).redAdd(y2),rhs=this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));return lhs.cmp(rhs)===0};function Point(curve,x,y,z,t){if(Base.BasePoint.call(this,curve,\"projective\"),x===null&&y===null&&z===null)this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0;else{if(this.x=new BN(x,16),this.y=new BN(y,16),this.z=z?new BN(z,16):this.curve.one,this.t=t&&new BN(t,16),!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);if(this.t&&!this.t.red)this.t=this.t.toRed(this.curve.red);if(this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t){if(this.t=this.x.redMul(this.y),!this.zOne)this.t=this.t.redMul(this.z.redInvm())}}}inherits(Point,Base.BasePoint);EdwardsCurve.prototype.pointFromJSON=function(obj){return Point.fromJSON(this,obj)};EdwardsCurve.prototype.point=function(x,y,z,t){return new Point(this,x,y,z,t)};Point.fromJSON=function(curve,obj){return new Point(curve,obj[0],obj[1],obj[2])};Point.prototype.inspect=function(){if(this.isInfinity())return\"\";return\"\"};Point.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};Point.prototype._extDbl=function(){var a=this.x.redSqr(),b=this.y.redSqr(),c=this.z.redSqr();c=c.redIAdd(c);var d=this.curve._mulA(a),e=this.x.redAdd(this.y).redSqr().redISub(a).redISub(b),g=d.redAdd(b),f=g.redSub(c),h=d.redSub(b),nx=e.redMul(f),ny=g.redMul(h),nt=e.redMul(h),nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)};Point.prototype._projDbl=function(){var b=this.x.redAdd(this.y).redSqr(),c=this.x.redSqr(),d=this.y.redSqr(),nx,ny,nz,e,h,j;if(this.curve.twisted){e=this.curve._mulA(c);var f=e.redAdd(d);if(this.zOne)nx=b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)),ny=f.redMul(e.redSub(d)),nz=f.redSqr().redSub(f).redSub(f);else h=this.z.redSqr(),j=f.redSub(h).redISub(h),nx=b.redSub(c).redISub(d).redMul(j),ny=f.redMul(e.redSub(d)),nz=f.redMul(j)}else e=c.redAdd(d),h=this.curve._mulC(this.z).redSqr(),j=e.redSub(h).redSub(h),nx=this.curve._mulC(b.redISub(e)).redMul(j),ny=this.curve._mulC(e).redMul(c.redISub(d)),nz=e.redMul(j);return this.curve.point(nx,ny,nz)};Point.prototype.dbl=function(){if(this.isInfinity())return this;if(this.curve.extended)return this._extDbl();else return this._projDbl()};Point.prototype._extAdd=function(p){var a=this.y.redSub(this.x).redMul(p.y.redSub(p.x)),b=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)),c=this.t.redMul(this.curve.dd).redMul(p.t),d=this.z.redMul(p.z.redAdd(p.z)),e=b.redSub(a),f=d.redSub(c),g=d.redAdd(c),h=b.redAdd(a),nx=e.redMul(f),ny=g.redMul(h),nt=e.redMul(h),nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)};Point.prototype._projAdd=function(p){var a=this.z.redMul(p.z),b=a.redSqr(),c=this.x.redMul(p.x),d=this.y.redMul(p.y),e=this.curve.d.redMul(c).redMul(d),f=b.redSub(e),g=b.redAdd(e),tmp=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d),nx=a.redMul(f).redMul(tmp),ny,nz;if(this.curve.twisted)ny=a.redMul(g).redMul(d.redSub(this.curve._mulA(c))),nz=f.redMul(g);else ny=a.redMul(g).redMul(d.redSub(c)),nz=this.curve._mulC(f).redMul(g);return this.curve.point(nx,ny,nz)};Point.prototype.add=function(p){if(this.isInfinity())return p;if(p.isInfinity())return this;if(this.curve.extended)return this._extAdd(p);else return this._projAdd(p)};Point.prototype.mul=function(k){if(this._hasDoubles(k))return this.curve._fixedNafMul(this,k);else return this.curve._wnafMul(this,k)};Point.prototype.mulAdd=function(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,!1)};Point.prototype.jmulAdd=function(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,!0)};Point.prototype.normalize=function(){if(this.zOne)return this;var zi=this.z.redInvm();if(this.x=this.x.redMul(zi),this.y=this.y.redMul(zi),this.t)this.t=this.t.redMul(zi);return this.z=this.curve.one,this.zOne=!0,this};Point.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()};Point.prototype.getY=function(){return this.normalize(),this.y.fromRed()};Point.prototype.eq=function(other){return this===other||this.getX().cmp(other.getX())===0&&this.getY().cmp(other.getY())===0};Point.prototype.eqXToP=function(x){var rx=x.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(rx)===0)return!0;var xc=x.clone(),t=this.curve.redN.redMul(this.z);for(;;){if(xc.iadd(this.curve.n),xc.cmp(this.curve.p)>=0)return!1;if(rx.redIAdd(t),this.x.cmp(rx)===0)return!0}};Point.prototype.toP=Point.prototype.normalize;Point.prototype.mixedAdd=Point.prototype.add});var require_curve=__commonJS((exports)=>{var curve=exports;curve.base=require_base();curve.short=require_short();curve.mont=require_mont();curve.edwards=require_edwards()});var require_utils3=__commonJS((exports)=>{var assert=require_minimalistic_assert(),inherits=require_inherits();exports.inherits=inherits;function isSurrogatePair(msg,i){if((msg.charCodeAt(i)&64512)!==55296)return!1;if(i<0||i+1>=msg.length)return!1;return(msg.charCodeAt(i+1)&64512)===56320}function toArray(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if(typeof msg===\"string\"){if(!enc){var p=0;for(var i=0;i>6|192,res[p++]=c&63|128;else if(isSurrogatePair(msg,i))c=65536+((c&1023)<<10)+(msg.charCodeAt(++i)&1023),res[p++]=c>>18|240,res[p++]=c>>12&63|128,res[p++]=c>>6&63|128,res[p++]=c&63|128;else res[p++]=c>>12|224,res[p++]=c>>6&63|128,res[p++]=c&63|128}}else if(enc===\"hex\"){if(msg=msg.replace(/[^a-z0-9]+/ig,\"\"),msg.length%2!==0)msg=\"0\"+msg;for(i=0;i>>24|w>>>8&65280|w<<8&16711680|(w&255)<<24;return res>>>0}exports.htonl=htonl;function toHex32(msg,endian){var res=\"\";for(var i=0;i>>0}return res}exports.join32=join32;function split32(msg,endian){var res=Array(msg.length*4);for(var i=0,k=0;i>>24,res[k+1]=m>>>16&255,res[k+2]=m>>>8&255,res[k+3]=m&255;else res[k+3]=m>>>24,res[k+2]=m>>>16&255,res[k+1]=m>>>8&255,res[k]=m&255}return res}exports.split32=split32;function rotr32(w,b){return w>>>b|w<<32-b}exports.rotr32=rotr32;function rotl32(w,b){return w<>>32-b}exports.rotl32=rotl32;function sum32(a,b){return a+b>>>0}exports.sum32=sum32;function sum32_3(a,b,c){return a+b+c>>>0}exports.sum32_3=sum32_3;function sum32_4(a,b,c,d){return a+b+c+d>>>0}exports.sum32_4=sum32_4;function sum32_5(a,b,c,d,e){return a+b+c+d+e>>>0}exports.sum32_5=sum32_5;function sum64(buf,pos,ah,al){var bh=buf[pos],bl=buf[pos+1],lo=al+bl>>>0,hi=(lo>>0,buf[pos+1]=lo}exports.sum64=sum64;function sum64_hi(ah,al,bh,bl){var lo=al+bl>>>0,hi=(lo>>0}exports.sum64_hi=sum64_hi;function sum64_lo(ah,al,bh,bl){var lo=al+bl;return lo>>>0}exports.sum64_lo=sum64_lo;function sum64_4_hi(ah,al,bh,bl,ch,cl,dh,dl){var carry=0,lo=al;lo=lo+bl>>>0,carry+=lo>>0,carry+=lo>>0,carry+=lo>>0}exports.sum64_4_hi=sum64_4_hi;function sum64_4_lo(ah,al,bh,bl,ch,cl,dh,dl){var lo=al+bl+cl+dl;return lo>>>0}exports.sum64_4_lo=sum64_4_lo;function sum64_5_hi(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var carry=0,lo=al;lo=lo+bl>>>0,carry+=lo>>0,carry+=lo>>0,carry+=lo>>0,carry+=lo>>0}exports.sum64_5_hi=sum64_5_hi;function sum64_5_lo(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var lo=al+bl+cl+dl+el;return lo>>>0}exports.sum64_5_lo=sum64_5_lo;function rotr64_hi(ah,al,num){var r=al<<32-num|ah>>>num;return r>>>0}exports.rotr64_hi=rotr64_hi;function rotr64_lo(ah,al,num){var r=ah<<32-num|al>>>num;return r>>>0}exports.rotr64_lo=rotr64_lo;function shr64_hi(ah,al,num){return ah>>>num}exports.shr64_hi=shr64_hi;function shr64_lo(ah,al,num){var r=ah<<32-num|al>>>num;return r>>>0}exports.shr64_lo=shr64_lo});var require_common=__commonJS((exports)=>{var utils=require_utils3(),assert=require_minimalistic_assert();function BlockHash(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian=\"big\",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}exports.BlockHash=BlockHash;BlockHash.prototype.update=function(msg,enc){if(msg=utils.toArray(msg,enc),!this.pending)this.pending=msg;else this.pending=this.pending.concat(msg);if(this.pendingTotal+=msg.length,this.pending.length>=this._delta8){msg=this.pending;var r=msg.length%this._delta8;if(this.pending=msg.slice(msg.length-r,msg.length),this.pending.length===0)this.pending=null;msg=utils.join32(msg,0,msg.length-r,this.endian);for(var i=0;i>>24&255,res[i++]=len>>>16&255,res[i++]=len>>>8&255,res[i++]=len&255}else{res[i++]=len&255,res[i++]=len>>>8&255,res[i++]=len>>>16&255,res[i++]=len>>>24&255,res[i++]=0,res[i++]=0,res[i++]=0,res[i++]=0;for(t=8;t{var utils=require_utils3(),rotr32=utils.rotr32;function ft_1(s,x,y,z){if(s===0)return ch32(x,y,z);if(s===1||s===3)return p32(x,y,z);if(s===2)return maj32(x,y,z)}exports.ft_1=ft_1;function ch32(x,y,z){return x&y^~x&z}exports.ch32=ch32;function maj32(x,y,z){return x&y^x&z^y&z}exports.maj32=maj32;function p32(x,y,z){return x^y^z}exports.p32=p32;function s0_256(x){return rotr32(x,2)^rotr32(x,13)^rotr32(x,22)}exports.s0_256=s0_256;function s1_256(x){return rotr32(x,6)^rotr32(x,11)^rotr32(x,25)}exports.s1_256=s1_256;function g0_256(x){return rotr32(x,7)^rotr32(x,18)^x>>>3}exports.g0_256=g0_256;function g1_256(x){return rotr32(x,17)^rotr32(x,19)^x>>>10}exports.g1_256=g1_256});var require_1=__commonJS((exports,module)=>{var utils=require_utils3(),common=require_common(),shaCommon=require_common2(),rotl32=utils.rotl32,sum32=utils.sum32,sum32_5=utils.sum32_5,ft_1=shaCommon.ft_1,BlockHash=common.BlockHash,sha1_K=[1518500249,1859775393,2400959708,3395469782];function SHA1(){if(!(this instanceof SHA1))return new SHA1;BlockHash.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=Array(80)}utils.inherits(SHA1,BlockHash);module.exports=SHA1;SHA1.blockSize=512;SHA1.outSize=160;SHA1.hmacStrength=80;SHA1.padLength=64;SHA1.prototype._update=function(msg,start){var W=this.W;for(var i=0;i<16;i++)W[i]=msg[start+i];for(;i{var utils=require_utils3(),common=require_common(),shaCommon=require_common2(),assert=require_minimalistic_assert(),sum32=utils.sum32,sum32_4=utils.sum32_4,sum32_5=utils.sum32_5,ch32=shaCommon.ch32,maj32=shaCommon.maj32,s0_256=shaCommon.s0_256,s1_256=shaCommon.s1_256,g0_256=shaCommon.g0_256,g1_256=shaCommon.g1_256,BlockHash=common.BlockHash,sha256_K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function SHA256(){if(!(this instanceof SHA256))return new SHA256;BlockHash.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=sha256_K,this.W=Array(64)}utils.inherits(SHA256,BlockHash);module.exports=SHA256;SHA256.blockSize=512;SHA256.outSize=256;SHA256.hmacStrength=192;SHA256.padLength=64;SHA256.prototype._update=function(msg,start){var W=this.W;for(var i=0;i<16;i++)W[i]=msg[start+i];for(;i{var utils=require_utils3(),SHA256=require_256();function SHA224(){if(!(this instanceof SHA224))return new SHA224;SHA256.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}utils.inherits(SHA224,SHA256);module.exports=SHA224;SHA224.blockSize=512;SHA224.outSize=224;SHA224.hmacStrength=192;SHA224.padLength=64;SHA224.prototype._digest=function(enc){if(enc===\"hex\")return utils.toHex32(this.h.slice(0,7),\"big\");else return utils.split32(this.h.slice(0,7),\"big\")}});var require_512=__commonJS((exports,module)=>{var utils=require_utils3(),common=require_common(),assert=require_minimalistic_assert(),rotr64_hi=utils.rotr64_hi,rotr64_lo=utils.rotr64_lo,shr64_hi=utils.shr64_hi,shr64_lo=utils.shr64_lo,sum64=utils.sum64,sum64_hi=utils.sum64_hi,sum64_lo=utils.sum64_lo,sum64_4_hi=utils.sum64_4_hi,sum64_4_lo=utils.sum64_4_lo,sum64_5_hi=utils.sum64_5_hi,sum64_5_lo=utils.sum64_5_lo,BlockHash=common.BlockHash,sha512_K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function SHA512(){if(!(this instanceof SHA512))return new SHA512;BlockHash.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=sha512_K,this.W=Array(160)}utils.inherits(SHA512,BlockHash);module.exports=SHA512;SHA512.blockSize=1024;SHA512.outSize=512;SHA512.hmacStrength=192;SHA512.padLength=128;SHA512.prototype._prepareBlock=function(msg,start){var W=this.W;for(var i=0;i<32;i++)W[i]=msg[start+i];for(;i{var utils=require_utils3(),SHA512=require_512();function SHA384(){if(!(this instanceof SHA384))return new SHA384;SHA512.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}utils.inherits(SHA384,SHA512);module.exports=SHA384;SHA384.blockSize=1024;SHA384.outSize=384;SHA384.hmacStrength=192;SHA384.padLength=128;SHA384.prototype._digest=function(enc){if(enc===\"hex\")return utils.toHex32(this.h.slice(0,12),\"big\");else return utils.split32(this.h.slice(0,12),\"big\")}});var require_sha=__commonJS((exports)=>{exports.sha1=require_1();exports.sha224=require_224();exports.sha256=require_256();exports.sha384=require_384();exports.sha512=require_512()});var require_ripemd=__commonJS((exports)=>{var utils=require_utils3(),common=require_common(),rotl32=utils.rotl32,sum32=utils.sum32,sum32_3=utils.sum32_3,sum32_4=utils.sum32_4,BlockHash=common.BlockHash;function RIPEMD160(){if(!(this instanceof RIPEMD160))return new RIPEMD160;BlockHash.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian=\"little\"}utils.inherits(RIPEMD160,BlockHash);exports.ripemd160=RIPEMD160;RIPEMD160.blockSize=512;RIPEMD160.outSize=160;RIPEMD160.hmacStrength=192;RIPEMD160.padLength=64;RIPEMD160.prototype._update=function(msg,start){var A=this.h[0],B=this.h[1],C=this.h[2],D=this.h[3],E=this.h[4],Ah=A,Bh=B,Ch=C,Dh=D,Eh=E;for(var j=0;j<80;j++){var T=sum32(rotl32(sum32_4(A,f(j,B,C,D),msg[r[j]+start],K(j)),s[j]),E);A=E,E=D,D=rotl32(C,10),C=B,B=T,T=sum32(rotl32(sum32_4(Ah,f(79-j,Bh,Ch,Dh),msg[rh[j]+start],Kh(j)),sh[j]),Eh),Ah=Eh,Eh=Dh,Dh=rotl32(Ch,10),Ch=Bh,Bh=T}T=sum32_3(this.h[1],C,Dh),this.h[1]=sum32_3(this.h[2],D,Eh),this.h[2]=sum32_3(this.h[3],E,Ah),this.h[3]=sum32_3(this.h[4],A,Bh),this.h[4]=sum32_3(this.h[0],B,Ch),this.h[0]=T};RIPEMD160.prototype._digest=function(enc){if(enc===\"hex\")return utils.toHex32(this.h,\"little\");else return utils.split32(this.h,\"little\")};function f(j,x,y,z){if(j<=15)return x^y^z;else if(j<=31)return x&y|~x&z;else if(j<=47)return(x|~y)^z;else if(j<=63)return x&z|y&~z;else return x^(y|~z)}function K(j){if(j<=15)return 0;else if(j<=31)return 1518500249;else if(j<=47)return 1859775393;else if(j<=63)return 2400959708;else return 2840853838}function Kh(j){if(j<=15)return 1352829926;else if(j<=31)return 1548603684;else if(j<=47)return 1836072691;else if(j<=63)return 2053994217;else return 0}var r=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],rh=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],s=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sh=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]});var require_hmac=__commonJS((exports,module)=>{var utils=require_utils3(),assert=require_minimalistic_assert();function Hmac(hash,key,enc){if(!(this instanceof Hmac))return new Hmac(hash,key,enc);this.Hash=hash,this.blockSize=hash.blockSize/8,this.outSize=hash.outSize/8,this.inner=null,this.outer=null,this._init(utils.toArray(key,enc))}module.exports=Hmac;Hmac.prototype._init=function(key){if(key.length>this.blockSize)key=new this.Hash().update(key).digest();assert(key.length<=this.blockSize);for(var i=key.length;i{var hash=exports;hash.utils=require_utils3();hash.common=require_common();hash.sha=require_sha();hash.ripemd=require_ripemd();hash.hmac=require_hmac();hash.sha1=hash.sha.sha1;hash.sha256=hash.sha.sha256;hash.sha224=hash.sha.sha224;hash.sha384=hash.sha.sha384;hash.sha512=hash.sha.sha512;hash.ripemd160=hash.ripemd.ripemd160});var require_secp256k1=__commonJS((exports,module)=>{module.exports={doubles:{step:4,points:[[\"e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a\",\"f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821\"],[\"8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508\",\"11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf\"],[\"175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739\",\"d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695\"],[\"363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640\",\"4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9\"],[\"8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c\",\"4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36\"],[\"723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda\",\"96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f\"],[\"eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa\",\"5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999\"],[\"100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0\",\"cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09\"],[\"e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d\",\"9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d\"],[\"feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d\",\"e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088\"],[\"da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1\",\"9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d\"],[\"53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0\",\"5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8\"],[\"8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047\",\"10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a\"],[\"385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862\",\"283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453\"],[\"6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7\",\"7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160\"],[\"3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd\",\"56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0\"],[\"85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83\",\"7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6\"],[\"948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a\",\"53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589\"],[\"6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8\",\"bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17\"],[\"e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d\",\"4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda\"],[\"e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725\",\"7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd\"],[\"213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754\",\"4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2\"],[\"4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c\",\"17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6\"],[\"fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6\",\"6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f\"],[\"76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39\",\"c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01\"],[\"c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891\",\"893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3\"],[\"d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b\",\"febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f\"],[\"b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03\",\"2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7\"],[\"e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d\",\"eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78\"],[\"a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070\",\"7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1\"],[\"90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4\",\"e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150\"],[\"8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da\",\"662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82\"],[\"e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11\",\"1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc\"],[\"8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e\",\"efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b\"],[\"e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41\",\"2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51\"],[\"b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef\",\"67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45\"],[\"d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8\",\"db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120\"],[\"324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d\",\"648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84\"],[\"4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96\",\"35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d\"],[\"9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd\",\"ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d\"],[\"6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5\",\"9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8\"],[\"a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266\",\"40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8\"],[\"7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71\",\"34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac\"],[\"928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac\",\"c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f\"],[\"85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751\",\"1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962\"],[\"ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e\",\"493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907\"],[\"827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241\",\"c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec\"],[\"eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3\",\"be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d\"],[\"e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f\",\"4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414\"],[\"1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19\",\"aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd\"],[\"146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be\",\"b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0\"],[\"fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9\",\"6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811\"],[\"da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2\",\"8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1\"],[\"a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13\",\"7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c\"],[\"174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c\",\"ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73\"],[\"959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba\",\"2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd\"],[\"d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151\",\"e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405\"],[\"64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073\",\"d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589\"],[\"8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458\",\"38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e\"],[\"13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b\",\"69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27\"],[\"bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366\",\"d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1\"],[\"8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa\",\"40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482\"],[\"8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0\",\"620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945\"],[\"dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787\",\"7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573\"],[\"f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e\",\"ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82\"]]},naf:{wnd:7,points:[[\"f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9\",\"388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672\"],[\"2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4\",\"d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6\"],[\"5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc\",\"6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da\"],[\"acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe\",\"cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37\"],[\"774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb\",\"d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b\"],[\"f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8\",\"ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81\"],[\"d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e\",\"581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58\"],[\"defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34\",\"4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77\"],[\"2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c\",\"85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a\"],[\"352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5\",\"321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c\"],[\"2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f\",\"2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67\"],[\"9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714\",\"73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402\"],[\"daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729\",\"a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55\"],[\"c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db\",\"2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482\"],[\"6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4\",\"e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82\"],[\"1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5\",\"b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396\"],[\"605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479\",\"2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49\"],[\"62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d\",\"80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf\"],[\"80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f\",\"1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a\"],[\"7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb\",\"d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7\"],[\"d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9\",\"eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933\"],[\"49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963\",\"758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a\"],[\"77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74\",\"958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6\"],[\"f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530\",\"e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37\"],[\"463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b\",\"5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e\"],[\"f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247\",\"cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6\"],[\"caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1\",\"cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476\"],[\"2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120\",\"4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40\"],[\"7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435\",\"91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61\"],[\"754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18\",\"673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683\"],[\"e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8\",\"59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5\"],[\"186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb\",\"3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b\"],[\"df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f\",\"55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417\"],[\"5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143\",\"efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868\"],[\"290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba\",\"e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a\"],[\"af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45\",\"f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6\"],[\"766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a\",\"744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996\"],[\"59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e\",\"c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e\"],[\"f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8\",\"e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d\"],[\"7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c\",\"30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2\"],[\"948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519\",\"e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e\"],[\"7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab\",\"100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437\"],[\"3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca\",\"ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311\"],[\"d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf\",\"8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4\"],[\"1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610\",\"68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575\"],[\"733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4\",\"f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d\"],[\"15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c\",\"d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d\"],[\"a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940\",\"edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629\"],[\"e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980\",\"a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06\"],[\"311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3\",\"66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374\"],[\"34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf\",\"9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee\"],[\"f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63\",\"4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1\"],[\"d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448\",\"fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b\"],[\"32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf\",\"5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661\"],[\"7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5\",\"8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6\"],[\"ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6\",\"8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e\"],[\"16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5\",\"5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d\"],[\"eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99\",\"f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc\"],[\"78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51\",\"f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4\"],[\"494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5\",\"42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c\"],[\"a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5\",\"204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b\"],[\"c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997\",\"4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913\"],[\"841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881\",\"73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154\"],[\"5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5\",\"39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865\"],[\"36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66\",\"d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc\"],[\"336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726\",\"ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224\"],[\"8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede\",\"6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e\"],[\"1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94\",\"60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6\"],[\"85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31\",\"3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511\"],[\"29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51\",\"b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b\"],[\"a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252\",\"ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2\"],[\"4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5\",\"cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c\"],[\"d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b\",\"6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3\"],[\"ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4\",\"322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d\"],[\"af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f\",\"6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700\"],[\"e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889\",\"2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4\"],[\"591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246\",\"b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196\"],[\"11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984\",\"998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4\"],[\"3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a\",\"b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257\"],[\"cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030\",\"bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13\"],[\"c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197\",\"6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096\"],[\"c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593\",\"c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38\"],[\"a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef\",\"21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f\"],[\"347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38\",\"60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448\"],[\"da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a\",\"49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a\"],[\"c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111\",\"5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4\"],[\"4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502\",\"7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437\"],[\"3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea\",\"be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7\"],[\"cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26\",\"8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d\"],[\"b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986\",\"39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a\"],[\"d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e\",\"62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54\"],[\"48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4\",\"25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77\"],[\"dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda\",\"ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517\"],[\"6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859\",\"cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10\"],[\"e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f\",\"f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125\"],[\"eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c\",\"6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e\"],[\"13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942\",\"fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1\"],[\"ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a\",\"1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2\"],[\"b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80\",\"5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423\"],[\"ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d\",\"438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8\"],[\"8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1\",\"cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758\"],[\"52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63\",\"c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375\"],[\"e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352\",\"6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d\"],[\"7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193\",\"ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec\"],[\"5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00\",\"9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0\"],[\"32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58\",\"ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c\"],[\"e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7\",\"d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4\"],[\"8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8\",\"c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f\"],[\"4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e\",\"67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649\"],[\"3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d\",\"cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826\"],[\"674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b\",\"299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5\"],[\"d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f\",\"f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87\"],[\"30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6\",\"462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b\"],[\"be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297\",\"62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc\"],[\"93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a\",\"7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c\"],[\"b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c\",\"ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f\"],[\"d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52\",\"4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a\"],[\"d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb\",\"bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46\"],[\"463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065\",\"bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f\"],[\"7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917\",\"603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03\"],[\"74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9\",\"cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08\"],[\"30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3\",\"553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8\"],[\"9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57\",\"712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373\"],[\"176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66\",\"ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3\"],[\"75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8\",\"9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8\"],[\"809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721\",\"9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1\"],[\"1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180\",\"4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9\"]]}}});var require_curves=__commonJS((exports)=>{var curves=exports,hash=require_hash(),curve=require_curve(),utils=require_utils2(),assert=utils.assert;function PresetCurve(options){if(options.type===\"short\")this.curve=new curve.short(options);else if(options.type===\"edwards\")this.curve=new curve.edwards(options);else this.curve=new curve.mont(options);this.g=this.curve.g,this.n=this.curve.n,this.hash=options.hash,assert(this.g.validate(),\"Invalid curve\"),assert(this.g.mul(this.n).isInfinity(),\"Invalid curve, G*N != O\")}curves.PresetCurve=PresetCurve;function defineCurve(name,options){Object.defineProperty(curves,name,{configurable:!0,enumerable:!0,get:function(){var curve2=new PresetCurve(options);return Object.defineProperty(curves,name,{configurable:!0,enumerable:!0,value:curve2}),curve2}})}defineCurve(\"p192\",{type:\"short\",prime:\"p192\",p:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc\",b:\"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1\",n:\"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831\",hash:hash.sha256,gRed:!1,g:[\"188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012\",\"07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811\"]});defineCurve(\"p224\",{type:\"short\",prime:\"p224\",p:\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe\",b:\"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4\",n:\"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d\",hash:hash.sha256,gRed:!1,g:[\"b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21\",\"bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34\"]});defineCurve(\"p256\",{type:\"short\",prime:null,p:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff\",a:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc\",b:\"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b\",n:\"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551\",hash:hash.sha256,gRed:!1,g:[\"6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296\",\"4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5\"]});defineCurve(\"p384\",{type:\"short\",prime:null,p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff\",a:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc\",b:\"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef\",n:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973\",hash:hash.sha384,gRed:!1,g:[\"aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7\",\"3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f\"]});defineCurve(\"p521\",{type:\"short\",prime:null,p:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff\",a:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc\",b:\"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00\",n:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409\",hash:hash.sha512,gRed:!1,g:[\"000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66\",\"00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650\"]});defineCurve(\"curve25519\",{type:\"mont\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"76d06\",b:\"1\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:hash.sha256,gRed:!1,g:[\"9\"]});defineCurve(\"ed25519\",{type:\"edwards\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"-1\",c:\"1\",d:\"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:hash.sha256,gRed:!1,g:[\"216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a\",\"6666666666666666666666666666666666666666666666666666666666666658\"]});var pre;try{pre=require_secp256k1()}catch(e){pre=void 0}defineCurve(\"secp256k1\",{type:\"short\",prime:\"k256\",p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\",a:\"0\",b:\"7\",n:\"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141\",h:\"1\",hash:hash.sha256,beta:\"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee\",lambda:\"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72\",basis:[{a:\"3086d221a7d46bcde86c90e49284eb15\",b:\"-e4437ed6010e88286f547fa90abfe4c3\"},{a:\"114ca50f7a8e2f3f657c1108d9d44cfd8\",b:\"3086d221a7d46bcde86c90e49284eb15\"}],gRed:!1,g:[\"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\",\"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8\",pre]})});var require_hmac_drbg=__commonJS((exports,module)=>{var hash=require_hash(),utils=require_utils(),assert=require_minimalistic_assert();function HmacDRBG(options){if(!(this instanceof HmacDRBG))return new HmacDRBG(options);this.hash=options.hash,this.predResist=!!options.predResist,this.outLen=this.hash.outSize,this.minEntropy=options.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var entropy=utils.toArray(options.entropy,options.entropyEnc||\"hex\"),nonce=utils.toArray(options.nonce,options.nonceEnc||\"hex\"),pers=utils.toArray(options.pers,options.persEnc||\"hex\");assert(entropy.length>=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\"),this._init(entropy,nonce,pers)}module.exports=HmacDRBG;HmacDRBG.prototype._init=function(entropy,nonce,pers){var seed=entropy.concat(nonce).concat(pers);this.K=Array(this.outLen/8),this.V=Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\"),this._update(entropy.concat(add||[])),this._reseed=1};HmacDRBG.prototype.generate=function(len,enc,add,addEnc){if(this._reseed>this.reseedInterval)throw Error(\"Reseed is required\");if(typeof enc!==\"string\")addEnc=add,add=enc,enc=null;if(add)add=utils.toArray(add,addEnc||\"hex\"),this._update(add);var temp=[];while(temp.length{var BN=require_bn(),utils=require_utils2(),assert=utils.assert;function KeyPair(ec,options){if(this.ec=ec,this.priv=null,this.pub=null,options.priv)this._importPrivate(options.priv,options.privEnc);if(options.pub)this._importPublic(options.pub,options.pubEnc)}module.exports=KeyPair;KeyPair.fromPublic=function(ec,pub,enc){if(pub instanceof KeyPair)return pub;return new KeyPair(ec,{pub,pubEnc:enc})};KeyPair.fromPrivate=function(ec,priv,enc){if(priv instanceof KeyPair)return priv;return new KeyPair(ec,{priv,privEnc:enc})};KeyPair.prototype.validate=function(){var pub=this.getPublic();if(pub.isInfinity())return{result:!1,reason:\"Invalid public key\"};if(!pub.validate())return{result:!1,reason:\"Public key is not a point\"};if(!pub.mul(this.ec.curve.n).isInfinity())return{result:!1,reason:\"Public key * N != O\"};return{result:!0,reason:null}};KeyPair.prototype.getPublic=function(compact,enc){if(typeof compact===\"string\")enc=compact,compact=null;if(!this.pub)this.pub=this.ec.g.mul(this.priv);if(!enc)return this.pub;return this.pub.encode(enc,compact)};KeyPair.prototype.getPrivate=function(enc){if(enc===\"hex\")return this.priv.toString(16,2);else return this.priv};KeyPair.prototype._importPrivate=function(key,enc){this.priv=new BN(key,enc||16),this.priv=this.priv.umod(this.ec.curve.n)};KeyPair.prototype._importPublic=function(key,enc){if(key.x||key.y){if(this.ec.curve.type===\"mont\")assert(key.x,\"Need x coordinate\");else if(this.ec.curve.type===\"short\"||this.ec.curve.type===\"edwards\")assert(key.x&&key.y,\"Need both x and y coordinate\");this.pub=this.ec.curve.point(key.x,key.y);return}this.pub=this.ec.curve.decodePoint(key,enc)};KeyPair.prototype.derive=function(pub){if(!pub.validate())assert(pub.validate(),\"public point not validated\");return pub.mul(this.priv).getX()};KeyPair.prototype.sign=function(msg,enc,options){return this.ec.sign(msg,this,enc,options)};KeyPair.prototype.verify=function(msg,signature,options){return this.ec.verify(msg,signature,this,void 0,options)};KeyPair.prototype.inspect=function(){return\"\"}});var require_signature=__commonJS((exports,module)=>{var BN=require_bn(),utils=require_utils2(),assert=utils.assert;function Signature(options,enc){if(options instanceof Signature)return options;if(this._importDER(options,enc))return;if(assert(options.r&&options.s,\"Signature without r or s\"),this.r=new BN(options.r,16),this.s=new BN(options.s,16),options.recoveryParam===void 0)this.recoveryParam=null;else this.recoveryParam=options.recoveryParam}module.exports=Signature;function Position(){this.place=0}function getLength(buf,p){var initial=buf[p.place++];if(!(initial&128))return initial;var octetLen=initial&15;if(octetLen===0||octetLen>4)return!1;if(buf[p.place]===0)return!1;var val=0;for(var i=0,off=p.place;i>>=0;if(val<=127)return!1;return p.place=off,val}function rmPadding(buf){var i=0,len=buf.length-1;while(!buf[i]&&!(buf[i+1]&128)&&i>>3);arr.push(octets|128);while(--octets)arr.push(len>>>(octets<<3)&255);arr.push(len)}Signature.prototype.toDER=function(enc){var r=this.r.toArray(),s=this.s.toArray();if(r[0]&128)r=[0].concat(r);if(s[0]&128)s=[0].concat(s);r=rmPadding(r),s=rmPadding(s);while(!s[0]&&!(s[1]&128))s=s.slice(1);var arr=[2];constructLength(arr,r.length),arr=arr.concat(r),arr.push(2),constructLength(arr,s.length);var backHalf=arr.concat(s),res=[48];return constructLength(res,backHalf.length),res=res.concat(backHalf),utils.encode(res,enc)}});var require_ec=__commonJS((exports,module)=>{var BN=require_bn(),HmacDRBG=require_hmac_drbg(),utils=require_utils2(),curves=require_curves(),rand=require_brorand(),assert=utils.assert,KeyPair=require_key(),Signature=require_signature();function EC(options){if(!(this instanceof EC))return new EC(options);if(typeof options===\"string\")assert(Object.prototype.hasOwnProperty.call(curves,options),\"Unknown curve \"+options),options=curves[options];if(options instanceof curves.PresetCurve)options={curve:options};this.curve=options.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=options.curve.g,this.g.precompute(options.curve.n.bitLength()+1),this.hash=options.hash||options.curve.hash}module.exports=EC;EC.prototype.keyPair=function(options){return new KeyPair(this,options)};EC.prototype.keyFromPrivate=function(priv,enc){return KeyPair.fromPrivate(this,priv,enc)};EC.prototype.keyFromPublic=function(pub,enc){return KeyPair.fromPublic(this,pub,enc)};EC.prototype.genKeyPair=function(options){if(!options)options={};var drbg=new HmacDRBG({hash:this.hash,pers:options.pers,persEnc:options.persEnc||\"utf8\",entropy:options.entropy||rand(this.hash.hmacStrength),entropyEnc:options.entropy&&options.entropyEnc||\"utf8\",nonce:this.n.toArray()}),bytes=this.n.byteLength(),ns2=this.n.sub(new BN(2));for(;;){var priv=new BN(drbg.generate(bytes));if(priv.cmp(ns2)>0)continue;return priv.iaddn(1),this.keyFromPrivate(priv)}};EC.prototype._truncateToN=function(msg,truncOnly,bitLength){var byteLength;if(BN.isBN(msg)||typeof msg===\"number\")msg=new BN(msg,16),byteLength=msg.byteLength();else if(typeof msg===\"object\")byteLength=msg.length,msg=new BN(msg,16);else{var str=msg.toString();byteLength=str.length+1>>>1,msg=new BN(str,16)}if(typeof bitLength!==\"number\")bitLength=byteLength*8;var delta=bitLength-this.n.bitLength();if(delta>0)msg=msg.ushrn(delta);if(!truncOnly&&msg.cmp(this.n)>=0)return msg.sub(this.n);else return msg};EC.prototype.sign=function(msg,key,enc,options){if(typeof enc===\"object\")options=enc,enc=null;if(!options)options={};if(typeof msg!==\"string\"&&typeof msg!==\"number\"&&!BN.isBN(msg)){assert(typeof msg===\"object\"&&msg&&typeof msg.length===\"number\",\"Expected message to be an array-like, a hex string, or a BN instance\"),assert(msg.length>>>0===msg.length);for(var i=0;i=0)continue;var kp=this.g.mul(k);if(kp.isInfinity())continue;var kpX=kp.getX(),r=kpX.umod(this.n);if(r.cmpn(0)===0)continue;var s=k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));if(s=s.umod(this.n),s.cmpn(0)===0)continue;var recoveryParam=(kp.getY().isOdd()?1:0)|(kpX.cmp(r)!==0?2:0);if(options.canonical&&s.cmp(this.nh)>0)s=this.n.sub(s),recoveryParam^=1;return new Signature({r,s,recoveryParam})}};EC.prototype.verify=function(msg,signature,key,enc,options){if(!options)options={};msg=this._truncateToN(msg,!1,options.msgBitLength),key=this.keyFromPublic(key,enc),signature=new Signature(signature,\"hex\");var{r,s}=signature;if(r.cmpn(1)<0||r.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var sinv=s.invm(this.n),u1=sinv.mul(msg).umod(this.n),u2=sinv.mul(r).umod(this.n),p;if(!this.curve._maxwellTrick){if(p=this.g.mulAdd(u1,key.getPublic(),u2),p.isInfinity())return!1;return p.getX().umod(this.n).cmp(r)===0}if(p=this.g.jmulAdd(u1,key.getPublic(),u2),p.isInfinity())return!1;return p.eqXToP(r)};EC.prototype.recoverPubKey=function(msg,signature,j,enc){assert((3&j)===j,\"The recovery param is more than two bits\"),signature=new Signature(signature,enc);var n=this.n,e=new BN(msg),r=signature.r,s=signature.s,isYOdd=j&1,isSecondKey=j>>1;if(r.cmp(this.curve.p.umod(this.curve.n))>=0&&isSecondKey)throw Error(\"Unable to find sencond key candinate\");if(isSecondKey)r=this.curve.pointFromX(r.add(this.curve.n),isYOdd);else r=this.curve.pointFromX(r,isYOdd);var rInv=signature.r.invm(n),s1=n.sub(e).mul(rInv).umod(n),s2=s.mul(rInv).umod(n);return this.g.mulAdd(s1,r,s2)};EC.prototype.getKeyRecoveryParam=function(e,signature,Q,enc){if(signature=new Signature(signature,enc),signature.recoveryParam!==null)return signature.recoveryParam;for(var i=0;i<4;i++){var Qprime;try{Qprime=this.recoverPubKey(e,signature,i)}catch(e2){continue}if(Qprime.eq(Q))return i}throw Error(\"Unable to find valid recovery factor\")}});var require_key2=__commonJS((exports,module)=>{var utils=require_utils2(),assert=utils.assert,parseBytes=utils.parseBytes,cachedProperty=utils.cachedProperty;function KeyPair(eddsa,params){if(this.eddsa=eddsa,this._secret=parseBytes(params.secret),eddsa.isPoint(params.pub))this._pub=params.pub;else this._pubBytes=parseBytes(params.pub)}KeyPair.fromPublic=function(eddsa,pub){if(pub instanceof KeyPair)return pub;return new KeyPair(eddsa,{pub})};KeyPair.fromSecret=function(eddsa,secret){if(secret instanceof KeyPair)return secret;return new KeyPair(eddsa,{secret})};KeyPair.prototype.secret=function(){return this._secret};cachedProperty(KeyPair,\"pubBytes\",function(){return this.eddsa.encodePoint(this.pub())});cachedProperty(KeyPair,\"pub\",function(){if(this._pubBytes)return this.eddsa.decodePoint(this._pubBytes);return this.eddsa.g.mul(this.priv())});cachedProperty(KeyPair,\"privBytes\",function(){var eddsa=this.eddsa,hash=this.hash(),lastIx=eddsa.encodingLength-1,a=hash.slice(0,eddsa.encodingLength);return a[0]&=248,a[lastIx]&=127,a[lastIx]|=64,a});cachedProperty(KeyPair,\"priv\",function(){return this.eddsa.decodeInt(this.privBytes())});cachedProperty(KeyPair,\"hash\",function(){return this.eddsa.hash().update(this.secret()).digest()});cachedProperty(KeyPair,\"messagePrefix\",function(){return this.hash().slice(this.eddsa.encodingLength)});KeyPair.prototype.sign=function(message){return assert(this._secret,\"KeyPair can only verify\"),this.eddsa.sign(message,this)};KeyPair.prototype.verify=function(message,sig){return this.eddsa.verify(message,sig,this)};KeyPair.prototype.getSecret=function(enc){return assert(this._secret,\"KeyPair is public only\"),utils.encode(this.secret(),enc)};KeyPair.prototype.getPublic=function(enc){return utils.encode(this.pubBytes(),enc)};module.exports=KeyPair});var require_signature2=__commonJS((exports,module)=>{var BN=require_bn(),utils=require_utils2(),assert=utils.assert,cachedProperty=utils.cachedProperty,parseBytes=utils.parseBytes;function Signature(eddsa,sig){if(this.eddsa=eddsa,typeof sig!==\"object\")sig=parseBytes(sig);if(Array.isArray(sig))assert(sig.length===eddsa.encodingLength*2,\"Signature has invalid size\"),sig={R:sig.slice(0,eddsa.encodingLength),S:sig.slice(eddsa.encodingLength)};if(assert(sig.R&&sig.S,\"Signature without R or S\"),eddsa.isPoint(sig.R))this._R=sig.R;if(sig.S instanceof BN)this._S=sig.S;this._Rencoded=Array.isArray(sig.R)?sig.R:sig.Rencoded,this._Sencoded=Array.isArray(sig.S)?sig.S:sig.Sencoded}cachedProperty(Signature,\"S\",function(){return this.eddsa.decodeInt(this.Sencoded())});cachedProperty(Signature,\"R\",function(){return this.eddsa.decodePoint(this.Rencoded())});cachedProperty(Signature,\"Rencoded\",function(){return this.eddsa.encodePoint(this.R())});cachedProperty(Signature,\"Sencoded\",function(){return this.eddsa.encodeInt(this.S())});Signature.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())};Signature.prototype.toHex=function(){return utils.encode(this.toBytes(),\"hex\").toUpperCase()};module.exports=Signature});var require_eddsa=__commonJS((exports,module)=>{var hash=require_hash(),curves=require_curves(),utils=require_utils2(),assert=utils.assert,parseBytes=utils.parseBytes,KeyPair=require_key2(),Signature=require_signature2();function EDDSA(curve){if(assert(curve===\"ed25519\",\"only tested with ed25519 so far\"),!(this instanceof EDDSA))return new EDDSA(curve);curve=curves[curve].curve,this.curve=curve,this.g=curve.g,this.g.precompute(curve.n.bitLength()+1),this.pointClass=curve.point().constructor,this.encodingLength=Math.ceil(curve.n.bitLength()/8),this.hash=hash.sha512}module.exports=EDDSA;EDDSA.prototype.sign=function(message,secret){message=parseBytes(message);var key=this.keyFromSecret(secret),r=this.hashInt(key.messagePrefix(),message),R=this.g.mul(r),Rencoded=this.encodePoint(R),s_=this.hashInt(Rencoded,key.pubBytes(),message).mul(key.priv()),S=r.add(s_).umod(this.curve.n);return this.makeSignature({R,S,Rencoded})};EDDSA.prototype.verify=function(message,sig,pub){if(message=parseBytes(message),sig=this.makeSignature(sig),sig.S().gte(sig.eddsa.curve.n)||sig.S().isNeg())return!1;var key=this.keyFromPublic(pub),h=this.hashInt(sig.Rencoded(),key.pubBytes(),message),SG=this.g.mul(sig.S()),RplusAh=sig.R().add(key.pub().mul(h));return RplusAh.eq(SG)};EDDSA.prototype.hashInt=function(){var hash2=this.hash();for(var i=0;i{var elliptic=exports;elliptic.version=require_package().version;elliptic.utils=require_utils2();elliptic.rand=require_brorand();elliptic.curve=require_curve();elliptic.curves=require_curves();elliptic.ec=require_ec();elliptic.eddsa=require_eddsa()});var require_bn2=__commonJS((exports,module)=>{(function(module2,exports2){function assert(val,msg){if(!val)throw Error(msg||\"Assertion failed\")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;if(this.negative=0,this.words=null,this.length=0,this.red=null,number!==null){if(base===\"le\"||base===\"be\")endian=base,base=10;this._init(number||0,base||10,endian||\"be\")}}if(typeof module2===\"object\")module2.exports=BN;else exports2.BN=BN;BN.BN=BN,BN.wordSize=26;var Buffer2;try{if(typeof window<\"u\"&&typeof window.Buffer<\"u\")Buffer2=window.Buffer;else Buffer2=require(\"buffer\").Buffer}catch(e){}BN.isBN=function(num){if(num instanceof BN)return!0;return num!==null&&typeof num===\"object\"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){if(left.cmp(right)>0)return left;return right},BN.min=function(left,right){if(left.cmp(right)<0)return left;return right},BN.prototype._init=function(number,base,endian){if(typeof number===\"number\")return this._initNumber(number,base,endian);if(typeof number===\"object\")return this._initArray(number,base,endian);if(base===\"hex\")base=16;assert(base===(base|0)&&base>=2&&base<=36),number=number.toString().replace(/\\s+/g,\"\");var start=0;if(number[0]===\"-\")start++,this.negative=1;if(start=0;i-=3)if(w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,off+=24,off>=26)off-=26,j++}else if(endian===\"le\"){for(i=0,j=0;i>>26-off&67108863,off+=24,off>=26)off-=26,j++}return this.strip()};function parseHex4Bits(string,index){var c=string.charCodeAt(index);if(c>=65&&c<=70)return c-55;else if(c>=97&&c<=102)return c-87;else return c-48&15}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);if(index-1>=lowerBound)r|=parseHex4Bits(string,index-1)<<4;return r}BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=Array(this.length);for(var i=0;i=start;i-=2)if(w=parseHexByte(number,start,i)<=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8;else{var parseLength=number.length-start;for(i=parseLength%2===0?start+1:start;i=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8}this.strip()};function parseBase(str,start,end,mul){var r=0,len=Math.min(str.length,end);for(var i=start;i=49)r+=c-49+10;else if(c>=17)r+=c-17+10;else r+=c}return r}BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0;for(var i=start;i1&&this.words[this.length-1]===0)this.length--;return this._normSign()},BN.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},BN.prototype.inspect=function(){return(this.red?\"\"};var zeros=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(BN.prototype.toString=function(base,padding){base=base||10,padding=padding|0||1;var out;if(base===16||base===\"hex\"){out=\"\";var off=0,carry=0;for(var i=0;i>>24-off&16777215,off+=2,off>=26)off-=26,i--;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out=\"\";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modn(groupBase).toString(base);if(c=c.idivn(groupBase),!c.isZero())out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.isZero())out=\"0\"+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}assert(!1,\"Base should be between 2 and 36\")},BN.prototype.toNumber=function(){var ret=this.words[0];if(this.length===2)ret+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)ret+=4503599627370496+this.words[1]*67108864;else if(this.length>2)assert(!1,\"Number can only safely store up to 53 bits\");return this.negative!==0?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(typeof Buffer2<\"u\"),this.toArrayLike(Buffer2,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,\"byte array longer than desired length\"),assert(reqLength>0,\"Requested array length <= 0\"),this.strip();var littleEndian=endian===\"le\",res=new ArrayType(reqLength),b,i,q=this.clone();if(!littleEndian){for(i=0;i=4096)r+=13,t>>>=13;if(t>=64)r+=7,t>>>=7;if(t>=8)r+=4,t>>>=4;if(t>=2)r+=2,t>>>=2;return r+t};BN.prototype._zeroBits=function(w){if(w===0)return 26;var t=w,r=0;if((t&8191)===0)r+=13,t>>>=13;if((t&127)===0)r+=7,t>>>=7;if((t&15)===0)r+=4,t>>>=4;if((t&3)===0)r+=2,t>>>=2;if((t&1)===0)r++;return r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=Array(num.bitLength());for(var bit=0;bit>>wbit}return w}BN.prototype.zeroBits=function(){if(this.isZero())return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);return num.clone().ior(this)},BN.prototype.uor=function(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;if(this.length>num.length)b=num;else b=this;for(var i=0;inum.length)return this.clone().iand(num);return num.clone().iand(this)},BN.prototype.uand=function(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;if(this.length>num.length)a=this,b=num;else a=num,b=this;for(var i=0;inum.length)return this.clone().ixor(num);return num.clone().ixor(this)},BN.prototype.uxor=function(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert(typeof width===\"number\"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0,bitsLeft=width%26;if(this._expand(bytesNeeded),bitsLeft>0)bytesNeeded--;for(var i=0;i0)this.words[i]=~this.words[i]&67108863>>26-bitsLeft;return this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert(typeof bit===\"number\"&&bit>=0);var off=bit/26|0,wbit=bit%26;if(this._expand(off+1),val)this.words[off]=this.words[off]|1<num.length)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>>26;for(;carry!==0&&i>>26;if(this.length=a.length,carry!==0)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length)return this.clone().iadd(num);return num.clone().iadd(this)},BN.prototype.isub=function(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var cmp=this.cmp(num);if(cmp===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,b;if(cmp>0)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>26,this.words[i]=r&67108863;for(;carry!==0&&i>26,this.words[i]=r&67108863;if(carry===0&&i>>26,rword=carry&67108863,maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self2.length+1);j<=maxJ;j++){var i=k-j|0;a=self2.words[i]|0,b=num.words[j]|0,r=a*b+rword,ncarry+=r/67108864|0,rword=r&67108863}out.words[k]=rword|0,carry=ncarry|0}if(carry!==0)out.words[k]=carry|0;else out.length--;return out.strip()}var comb10MulTo=function(self2,num,out){var a=self2.words,b=num.words,o=out.words,c=0,lo,mid,hi,a0=a[0]|0,al0=a0&8191,ah0=a0>>>13,a1=a[1]|0,al1=a1&8191,ah1=a1>>>13,a2=a[2]|0,al2=a2&8191,ah2=a2>>>13,a3=a[3]|0,al3=a3&8191,ah3=a3>>>13,a4=a[4]|0,al4=a4&8191,ah4=a4>>>13,a5=a[5]|0,al5=a5&8191,ah5=a5>>>13,a6=a[6]|0,al6=a6&8191,ah6=a6>>>13,a7=a[7]|0,al7=a7&8191,ah7=a7>>>13,a8=a[8]|0,al8=a8&8191,ah8=a8>>>13,a9=a[9]|0,al9=a9&8191,ah9=a9>>>13,b0=b[0]|0,bl0=b0&8191,bh0=b0>>>13,b1=b[1]|0,bl1=b1&8191,bh1=b1>>>13,b2=b[2]|0,bl2=b2&8191,bh2=b2>>>13,b3=b[3]|0,bl3=b3&8191,bh3=b3>>>13,b4=b[4]|0,bl4=b4&8191,bh4=b4>>>13,b5=b[5]|0,bl5=b5&8191,bh5=b5>>>13,b6=b[6]|0,bl6=b6&8191,bh6=b6>>>13,b7=b[7]|0,bl7=b7&8191,bh7=b7>>>13,b8=b[8]|0,bl8=b8&8191,bh8=b8>>>13,b9=b[9]|0,bl9=b9&8191,bh9=b9>>>13;out.negative=self2.negative^num.negative,out.length=19,lo=Math.imul(al0,bl0),mid=Math.imul(al0,bh0),mid=mid+Math.imul(ah0,bl0)|0,hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=Math.imul(al1,bh0),mid=mid+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0),lo=lo+Math.imul(al0,bl1)|0,mid=mid+Math.imul(al0,bh1)|0,mid=mid+Math.imul(ah0,bl1)|0,hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=Math.imul(al2,bh0),mid=mid+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=mid+Math.imul(al1,bh1)|0,mid=mid+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0,lo=lo+Math.imul(al0,bl2)|0,mid=mid+Math.imul(al0,bh2)|0,mid=mid+Math.imul(ah0,bl2)|0,hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=Math.imul(al3,bh0),mid=mid+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=mid+Math.imul(al2,bh1)|0,mid=mid+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=mid+Math.imul(al1,bh2)|0,mid=mid+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0,lo=lo+Math.imul(al0,bl3)|0,mid=mid+Math.imul(al0,bh3)|0,mid=mid+Math.imul(ah0,bl3)|0,hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=Math.imul(al4,bh0),mid=mid+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=mid+Math.imul(al3,bh1)|0,mid=mid+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=mid+Math.imul(al2,bh2)|0,mid=mid+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=mid+Math.imul(al1,bh3)|0,mid=mid+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0,lo=lo+Math.imul(al0,bl4)|0,mid=mid+Math.imul(al0,bh4)|0,mid=mid+Math.imul(ah0,bl4)|0,hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=Math.imul(al5,bh0),mid=mid+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=mid+Math.imul(al4,bh1)|0,mid=mid+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=mid+Math.imul(al3,bh2)|0,mid=mid+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=mid+Math.imul(al2,bh3)|0,mid=mid+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=mid+Math.imul(al1,bh4)|0,mid=mid+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0,lo=lo+Math.imul(al0,bl5)|0,mid=mid+Math.imul(al0,bh5)|0,mid=mid+Math.imul(ah0,bl5)|0,hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=Math.imul(al6,bh0),mid=mid+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=mid+Math.imul(al5,bh1)|0,mid=mid+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=mid+Math.imul(al4,bh2)|0,mid=mid+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=mid+Math.imul(al3,bh3)|0,mid=mid+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=mid+Math.imul(al2,bh4)|0,mid=mid+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=mid+Math.imul(al1,bh5)|0,mid=mid+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0,lo=lo+Math.imul(al0,bl6)|0,mid=mid+Math.imul(al0,bh6)|0,mid=mid+Math.imul(ah0,bl6)|0,hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=Math.imul(al7,bh0),mid=mid+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=mid+Math.imul(al6,bh1)|0,mid=mid+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=mid+Math.imul(al5,bh2)|0,mid=mid+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=mid+Math.imul(al4,bh3)|0,mid=mid+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=mid+Math.imul(al3,bh4)|0,mid=mid+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=mid+Math.imul(al2,bh5)|0,mid=mid+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=mid+Math.imul(al1,bh6)|0,mid=mid+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0,lo=lo+Math.imul(al0,bl7)|0,mid=mid+Math.imul(al0,bh7)|0,mid=mid+Math.imul(ah0,bl7)|0,hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=Math.imul(al8,bh0),mid=mid+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=mid+Math.imul(al7,bh1)|0,mid=mid+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=mid+Math.imul(al6,bh2)|0,mid=mid+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=mid+Math.imul(al5,bh3)|0,mid=mid+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=mid+Math.imul(al4,bh4)|0,mid=mid+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=mid+Math.imul(al3,bh5)|0,mid=mid+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=mid+Math.imul(al2,bh6)|0,mid=mid+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=mid+Math.imul(al1,bh7)|0,mid=mid+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0,lo=lo+Math.imul(al0,bl8)|0,mid=mid+Math.imul(al0,bh8)|0,mid=mid+Math.imul(ah0,bl8)|0,hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=Math.imul(al9,bh0),mid=mid+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=mid+Math.imul(al8,bh1)|0,mid=mid+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=mid+Math.imul(al7,bh2)|0,mid=mid+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=mid+Math.imul(al6,bh3)|0,mid=mid+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=mid+Math.imul(al5,bh4)|0,mid=mid+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=mid+Math.imul(al4,bh5)|0,mid=mid+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=mid+Math.imul(al3,bh6)|0,mid=mid+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=mid+Math.imul(al2,bh7)|0,mid=mid+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=mid+Math.imul(al1,bh8)|0,mid=mid+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0,lo=lo+Math.imul(al0,bl9)|0,mid=mid+Math.imul(al0,bh9)|0,mid=mid+Math.imul(ah0,bl9)|0,hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=Math.imul(al9,bh1),mid=mid+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=mid+Math.imul(al8,bh2)|0,mid=mid+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=mid+Math.imul(al7,bh3)|0,mid=mid+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=mid+Math.imul(al6,bh4)|0,mid=mid+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=mid+Math.imul(al5,bh5)|0,mid=mid+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=mid+Math.imul(al4,bh6)|0,mid=mid+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=mid+Math.imul(al3,bh7)|0,mid=mid+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=mid+Math.imul(al2,bh8)|0,mid=mid+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0,lo=lo+Math.imul(al1,bl9)|0,mid=mid+Math.imul(al1,bh9)|0,mid=mid+Math.imul(ah1,bl9)|0,hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=Math.imul(al9,bh2),mid=mid+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=mid+Math.imul(al8,bh3)|0,mid=mid+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=mid+Math.imul(al7,bh4)|0,mid=mid+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=mid+Math.imul(al6,bh5)|0,mid=mid+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=mid+Math.imul(al5,bh6)|0,mid=mid+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=mid+Math.imul(al4,bh7)|0,mid=mid+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=mid+Math.imul(al3,bh8)|0,mid=mid+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0,lo=lo+Math.imul(al2,bl9)|0,mid=mid+Math.imul(al2,bh9)|0,mid=mid+Math.imul(ah2,bl9)|0,hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=Math.imul(al9,bh3),mid=mid+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=mid+Math.imul(al8,bh4)|0,mid=mid+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=mid+Math.imul(al7,bh5)|0,mid=mid+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=mid+Math.imul(al6,bh6)|0,mid=mid+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=mid+Math.imul(al5,bh7)|0,mid=mid+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=mid+Math.imul(al4,bh8)|0,mid=mid+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0,lo=lo+Math.imul(al3,bl9)|0,mid=mid+Math.imul(al3,bh9)|0,mid=mid+Math.imul(ah3,bl9)|0,hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=Math.imul(al9,bh4),mid=mid+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=mid+Math.imul(al8,bh5)|0,mid=mid+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=mid+Math.imul(al7,bh6)|0,mid=mid+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=mid+Math.imul(al6,bh7)|0,mid=mid+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=mid+Math.imul(al5,bh8)|0,mid=mid+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0,lo=lo+Math.imul(al4,bl9)|0,mid=mid+Math.imul(al4,bh9)|0,mid=mid+Math.imul(ah4,bl9)|0,hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=Math.imul(al9,bh5),mid=mid+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=mid+Math.imul(al8,bh6)|0,mid=mid+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=mid+Math.imul(al7,bh7)|0,mid=mid+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=mid+Math.imul(al6,bh8)|0,mid=mid+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0,lo=lo+Math.imul(al5,bl9)|0,mid=mid+Math.imul(al5,bh9)|0,mid=mid+Math.imul(ah5,bl9)|0,hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=Math.imul(al9,bh6),mid=mid+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=mid+Math.imul(al8,bh7)|0,mid=mid+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=mid+Math.imul(al7,bh8)|0,mid=mid+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0,lo=lo+Math.imul(al6,bl9)|0,mid=mid+Math.imul(al6,bh9)|0,mid=mid+Math.imul(ah6,bl9)|0,hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=Math.imul(al9,bh7),mid=mid+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=mid+Math.imul(al8,bh8)|0,mid=mid+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0,lo=lo+Math.imul(al7,bl9)|0,mid=mid+Math.imul(al7,bh9)|0,mid=mid+Math.imul(ah7,bl9)|0,hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=Math.imul(al9,bh8),mid=mid+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8),lo=lo+Math.imul(al8,bl9)|0,mid=mid+Math.imul(al8,bh9)|0,mid=mid+Math.imul(ah8,bl9)|0,hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863,lo=Math.imul(al9,bl9),mid=Math.imul(al9,bh9),mid=mid+Math.imul(ah9,bl9)|0,hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;if(c=(hi+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,c!==0)o[19]=c,out.length++;return out};if(!Math.imul)comb10MulTo=smallMulTo;function bigMulTo(self2,num,out){out.negative=num.negative^self2.negative,out.length=self2.length+num.length;var carry=0,hncarry=0;for(var k=0;k>>26)|0,hncarry+=ncarry>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}if(carry!==0)out.words[k]=carry;else out.length--;return out.strip()}function jumboMulTo(self2,num,out){var fftm=new FFTM;return fftm.mulp(self2,num,out)}BN.prototype.mulTo=function(num,out){var res,len=this.length+num.length;if(this.length===10&&num.length===10)res=comb10MulTo(this,num,out);else if(len<63)res=smallMulTo(this,num,out);else if(len<1024)res=bigMulTo(this,num,out);else res=jumboMulTo(this,num,out);return res};function FFTM(x,y){this.x=x,this.y=y}FFTM.prototype.makeRBT=function(N){var t=Array(N),l=BN.prototype._countBits(N)-1;for(var i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1)i++;return 1<>>13,rws[2*i+1]=carry&8191,carry=carry>>>13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=lo&67108863}if(carry!==0)this.words[i]=carry,this.length++;return this.length=num===0?1:this.length,this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i=0);var r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r,i;if(r!==0){var carry=0;for(i=0;i>>26-r}if(carry)this.words[i]=carry,this.length++}if(s!==0){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0);var h;if(hint)h=(hint-hint%26)/26;else h=0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s){this.length-=s;for(i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r,carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0)this.words[0]=0,this.length=1;return this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(this.negative===0),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert(typeof bit===\"number\"&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(this.negative===0,\"imaskn works only with positive numbers\"),this.length<=s)return this;if(r!==0)s++;if(this.length=Math.min(s,this.length),r!==0){var mask=67108863^67108863>>>r<=67108864;i++)if(this.words[i]-=67108864,i===this.length-1)this.words[i+1]=1;else this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert(typeof num===\"number\"),assert(num<67108864),num<0)return this.iaddn(-num);if(this.negative!==0)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=w&67108863}for(;i>26,this.words[i+shift]=w&67108863;if(carry===0)return this.strip();assert(carry===-1),carry=0;for(i=0;i>26,this.words[i]=w&67108863;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=this.length-num.length,a=this.clone(),b=num,bhi=b.words[b.length-1]|0,bhiBits=this._countBits(bhi);if(shift=26-bhiBits,shift!==0)b=b.ushln(shift),a.iushln(shift),bhi=b.words[b.length-1]|0;var m=a.length-b.length,q;if(mode!==\"mod\"){q=new BN(null),q.length=m+1,q.words=Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);while(a.negative!==0)if(qj--,a.negative=0,a._ishlnsubmul(b,1,j),!a.isZero())a.negative^=1;if(q)q.words[j]=qj}if(q)q.strip();if(a.strip(),mode!==\"div\"&&shift!==0)a.iushrn(shift);return{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){if(assert(!num.isZero()),this.isZero())return{div:new BN(0),mod:new BN(0)};var div,mod,res;if(this.negative!==0&&num.negative===0){if(res=this.neg().divmod(num,mode),mode!==\"mod\")div=res.div.neg();if(mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.iadd(num)}return{div,mod}}if(this.negative===0&&num.negative!==0){if(res=this.divmod(num.neg(),mode),mode!==\"mod\")div=res.div.neg();return{div,mod:res.mod}}if((this.negative&num.negative)!==0){if(res=this.neg().divmod(num.neg(),mode),mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.isub(num)}return{div:res.div,mod}}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode===\"div\")return{div:this.divn(num.words[0]),mod:null};if(mode===\"mod\")return{div:null,mod:new BN(this.modn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)},BN.prototype.div=function(num){return this.divmod(num,\"div\",!1).div},BN.prototype.mod=function(num){return this.divmod(num,\"mod\",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,\"mod\",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);var p=67108864%num,acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+(this.words[i]|0))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(p.negative===0),assert(!p.isZero());var x=this,y=p.clone();if(x.negative!==0)x=x.umod(p);else x=x.clone();var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;while(x.isEven()&&y.isEven())x.iushrn(1),y.iushrn(1),++g;var yp=y.clone(),xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd())A.iadd(yp),B.isub(xp);A.iushrn(1),B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd())C.iadd(yp),D.isub(xp);C.iushrn(1),D.iushrn(1)}}if(x.cmp(y)>=0)x.isub(y),A.isub(C),B.isub(D);else y.isub(x),C.isub(A),D.isub(B)}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(p.negative===0),assert(!p.isZero());var a=this,b=p.clone();if(a.negative!==0)a=a.umod(p);else a=a.clone();var x1=new BN(1),x2=new BN(0),delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd())x1.iadd(delta);x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd())x2.iadd(delta);x2.iushrn(1)}}if(a.cmp(b)>=0)a.isub(b),x1.isub(x2);else b.isub(a),x2.isub(x1)}var res;if(a.cmpn(1)===0)res=x1;else res=x2;if(res.cmpn(0)<0)res.iadd(p);return res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);do{while(a.isEven())a.iushrn(1);while(b.isEven())b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(r===0||b.cmpn(1)===0)break;a.isub(b)}while(!0);return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return(this.words[0]&1)===0},BN.prototype.isOdd=function(){return(this.words[0]&1)===1},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert(typeof bit===\"number\");var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}if(carry!==0)this.words[i]=carry,this.length++;return this},BN.prototype.isZero=function(){return this.length===1&&this.words[0]===0},BN.prototype.cmpn=function(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this.strip();var res;if(this.length>1)res=1;else{if(negative)num=-num;assert(num<=67108863,\"Number is too big\");var w=this.words[0]|0;res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=this.words[i]|0,b=num.words[i]|0;if(a===b)continue;if(ab)res=1;break}return res},BN.prototype.gtn=function(num){return this.cmpn(num)===1},BN.prototype.gt=function(num){return this.cmp(num)===1},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return this.cmpn(num)===-1},BN.prototype.lt=function(num){return this.cmp(num)===-1},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return this.cmpn(num)===0},BN.prototype.eq=function(num){return this.cmp(num)===0},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),assert(this.negative===0,\"red works only with positives\"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,\"redAdd works only with red numbers\"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,\"redSub works only with red numbers\"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,\"redISub works only with red numbers\"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,\"redShl works only with red numbers\"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var r=num,rlen;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),rlen=r.bitLength();while(rlen>this.n);var cmp=rlen0)r.isub(this.p);else if(r.strip!==void 0)r.strip();else r._strip();return r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)};function K256(){MPrime.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}inherits(K256,MPrime),K256.prototype.split=function(input,output){var mask=4194303,outLen=Math.min(input.length,9);for(var i=0;i>>22,prev=next}if(prev>>>=22,input.words[i-10]=prev,prev===0&&input.length>10)input.length-=10;else input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;var lo=0;for(var i=0;i>>=26,num.words[i]=lo,carry=hi}if(carry!==0)num.words[num.length++]=carry;return num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if(name===\"k256\")prime=new K256;else if(name===\"p224\")prime=new P224;else if(name===\"p192\")prime=new P192;else if(name===\"p25519\")prime=new P25519;else throw Error(\"Unknown prime \"+name);return primes[name]=prime,prime};function Red(m){if(typeof m===\"string\"){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),\"modulus must be greater than 1\"),this.m=m,this.prime=null}Red.prototype._verify1=function(a){assert(a.negative===0,\"red works only with positives\"),assert(a.red,\"red works only with red numbers\")},Red.prototype._verify2=function(a,b){assert((a.negative|b.negative)===0,\"red works only with positives\"),assert(a.red&&a.red===b.red,\"red works only with red numbers\")},Red.prototype.imod=function(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){if(a.isZero())return a.clone();return this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2===1),mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1),s=0;while(!q.isZero()&&q.andln(1)===0)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0])res=this.sqr(res);if(bit===0&¤t===0){currentLen=0;continue}if(current<<=1,current|=bit,currentLen++,currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]),currentLen=0,current=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)};function Mont(m){if(Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.invm=function(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module>\"u\"||module,exports)});var require_browser=__commonJS((exports,module)=>{var elliptic=require_elliptic(),BN=require_bn2();module.exports=function(curve){return new ECDH(curve)};var aliases={secp256k1:{name:\"secp256k1\",byteLength:32},secp224r1:{name:\"p224\",byteLength:28},prime256v1:{name:\"p256\",byteLength:32},prime192v1:{name:\"p192\",byteLength:24},ed25519:{name:\"ed25519\",byteLength:32},secp384r1:{name:\"p384\",byteLength:48},secp521r1:{name:\"p521\",byteLength:66}};aliases.p224=aliases.secp224r1;aliases.p256=aliases.secp256r1=aliases.prime256v1;aliases.p192=aliases.secp192r1=aliases.prime192v1;aliases.p384=aliases.secp384r1;aliases.p521=aliases.secp521r1;function ECDH(curve){if(this.curveType=aliases[curve],!this.curveType)this.curveType={name:curve};this.curve=new elliptic.ec(this.curveType.name),this.keys=void 0}ECDH.prototype.generateKeys=function(enc,format){return this.keys=this.curve.genKeyPair(),this.getPublicKey(enc,format)};ECDH.prototype.computeSecret=function(other,inenc,enc){if(inenc=inenc||\"utf8\",!Buffer.isBuffer(other))other=new Buffer(other,inenc);var otherPub=this.curve.keyFromPublic(other).getPublic(),out=otherPub.mul(this.keys.getPrivate()).getX();return formatReturnValue(out,enc,this.curveType.byteLength)};ECDH.prototype.getPublicKey=function(enc,format){var key=this.keys.getPublic(format===\"compressed\",!0);if(format===\"hybrid\")if(key[key.length-1]%2)key[0]=7;else key[0]=6;return formatReturnValue(key,enc)};ECDH.prototype.getPrivateKey=function(enc){return formatReturnValue(this.keys.getPrivate(),enc)};ECDH.prototype.setPublicKey=function(pub,enc){if(enc=enc||\"utf8\",!Buffer.isBuffer(pub))pub=new Buffer(pub,enc);return this.keys._importPublic(pub),this};ECDH.prototype.setPrivateKey=function(priv,enc){if(enc=enc||\"utf8\",!Buffer.isBuffer(priv))priv=new Buffer(priv,enc);var _priv=new BN(priv);return _priv=_priv.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(_priv),this};function formatReturnValue(bn,enc,len){if(!Array.isArray(bn))bn=bn.toArray();var buf=new Buffer(bn);if(len&&buf.length{var createECDH=require(\"crypto\").createECDH;module.exports=createECDH||require_browser()});var require_bn3=__commonJS((exports,module)=>{(function(module2,exports2){function assert(val,msg){if(!val)throw Error(msg||\"Assertion failed\")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;if(this.negative=0,this.words=null,this.length=0,this.red=null,number!==null){if(base===\"le\"||base===\"be\")endian=base,base=10;this._init(number||0,base||10,endian||\"be\")}}if(typeof module2===\"object\")module2.exports=BN;else exports2.BN=BN;BN.BN=BN,BN.wordSize=26;var Buffer2;try{if(typeof window<\"u\"&&typeof window.Buffer<\"u\")Buffer2=window.Buffer;else Buffer2=require(\"buffer\").Buffer}catch(e){}BN.isBN=function(num){if(num instanceof BN)return!0;return num!==null&&typeof num===\"object\"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){if(left.cmp(right)>0)return left;return right},BN.min=function(left,right){if(left.cmp(right)<0)return left;return right},BN.prototype._init=function(number,base,endian){if(typeof number===\"number\")return this._initNumber(number,base,endian);if(typeof number===\"object\")return this._initArray(number,base,endian);if(base===\"hex\")base=16;assert(base===(base|0)&&base>=2&&base<=36),number=number.toString().replace(/\\s+/g,\"\");var start=0;if(number[0]===\"-\")start++,this.negative=1;if(start=0;i-=3)if(w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,off+=24,off>=26)off-=26,j++}else if(endian===\"le\"){for(i=0,j=0;i>>26-off&67108863,off+=24,off>=26)off-=26,j++}return this.strip()};function parseHex4Bits(string,index){var c=string.charCodeAt(index);if(c>=65&&c<=70)return c-55;else if(c>=97&&c<=102)return c-87;else return c-48&15}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);if(index-1>=lowerBound)r|=parseHex4Bits(string,index-1)<<4;return r}BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=Array(this.length);for(var i=0;i=start;i-=2)if(w=parseHexByte(number,start,i)<=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8;else{var parseLength=number.length-start;for(i=parseLength%2===0?start+1:start;i=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8}this.strip()};function parseBase(str,start,end,mul){var r=0,len=Math.min(str.length,end);for(var i=start;i=49)r+=c-49+10;else if(c>=17)r+=c-17+10;else r+=c}return r}BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0;for(var i=start;i1&&this.words[this.length-1]===0)this.length--;return this._normSign()},BN.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},BN.prototype.inspect=function(){return(this.red?\"\"};var zeros=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(BN.prototype.toString=function(base,padding){base=base||10,padding=padding|0||1;var out;if(base===16||base===\"hex\"){out=\"\";var off=0,carry=0;for(var i=0;i>>24-off&16777215,off+=2,off>=26)off-=26,i--;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out=\"\";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modn(groupBase).toString(base);if(c=c.idivn(groupBase),!c.isZero())out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.isZero())out=\"0\"+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}assert(!1,\"Base should be between 2 and 36\")},BN.prototype.toNumber=function(){var ret=this.words[0];if(this.length===2)ret+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)ret+=4503599627370496+this.words[1]*67108864;else if(this.length>2)assert(!1,\"Number can only safely store up to 53 bits\");return this.negative!==0?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(typeof Buffer2<\"u\"),this.toArrayLike(Buffer2,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,\"byte array longer than desired length\"),assert(reqLength>0,\"Requested array length <= 0\"),this.strip();var littleEndian=endian===\"le\",res=new ArrayType(reqLength),b,i,q=this.clone();if(!littleEndian){for(i=0;i=4096)r+=13,t>>>=13;if(t>=64)r+=7,t>>>=7;if(t>=8)r+=4,t>>>=4;if(t>=2)r+=2,t>>>=2;return r+t};BN.prototype._zeroBits=function(w){if(w===0)return 26;var t=w,r=0;if((t&8191)===0)r+=13,t>>>=13;if((t&127)===0)r+=7,t>>>=7;if((t&15)===0)r+=4,t>>>=4;if((t&3)===0)r+=2,t>>>=2;if((t&1)===0)r++;return r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=Array(num.bitLength());for(var bit=0;bit>>wbit}return w}BN.prototype.zeroBits=function(){if(this.isZero())return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);return num.clone().ior(this)},BN.prototype.uor=function(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;if(this.length>num.length)b=num;else b=this;for(var i=0;inum.length)return this.clone().iand(num);return num.clone().iand(this)},BN.prototype.uand=function(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;if(this.length>num.length)a=this,b=num;else a=num,b=this;for(var i=0;inum.length)return this.clone().ixor(num);return num.clone().ixor(this)},BN.prototype.uxor=function(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert(typeof width===\"number\"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0,bitsLeft=width%26;if(this._expand(bytesNeeded),bitsLeft>0)bytesNeeded--;for(var i=0;i0)this.words[i]=~this.words[i]&67108863>>26-bitsLeft;return this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert(typeof bit===\"number\"&&bit>=0);var off=bit/26|0,wbit=bit%26;if(this._expand(off+1),val)this.words[off]=this.words[off]|1<num.length)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>>26;for(;carry!==0&&i>>26;if(this.length=a.length,carry!==0)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length)return this.clone().iadd(num);return num.clone().iadd(this)},BN.prototype.isub=function(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var cmp=this.cmp(num);if(cmp===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,b;if(cmp>0)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>26,this.words[i]=r&67108863;for(;carry!==0&&i>26,this.words[i]=r&67108863;if(carry===0&&i>>26,rword=carry&67108863,maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self2.length+1);j<=maxJ;j++){var i=k-j|0;a=self2.words[i]|0,b=num.words[j]|0,r=a*b+rword,ncarry+=r/67108864|0,rword=r&67108863}out.words[k]=rword|0,carry=ncarry|0}if(carry!==0)out.words[k]=carry|0;else out.length--;return out.strip()}var comb10MulTo=function(self2,num,out){var a=self2.words,b=num.words,o=out.words,c=0,lo,mid,hi,a0=a[0]|0,al0=a0&8191,ah0=a0>>>13,a1=a[1]|0,al1=a1&8191,ah1=a1>>>13,a2=a[2]|0,al2=a2&8191,ah2=a2>>>13,a3=a[3]|0,al3=a3&8191,ah3=a3>>>13,a4=a[4]|0,al4=a4&8191,ah4=a4>>>13,a5=a[5]|0,al5=a5&8191,ah5=a5>>>13,a6=a[6]|0,al6=a6&8191,ah6=a6>>>13,a7=a[7]|0,al7=a7&8191,ah7=a7>>>13,a8=a[8]|0,al8=a8&8191,ah8=a8>>>13,a9=a[9]|0,al9=a9&8191,ah9=a9>>>13,b0=b[0]|0,bl0=b0&8191,bh0=b0>>>13,b1=b[1]|0,bl1=b1&8191,bh1=b1>>>13,b2=b[2]|0,bl2=b2&8191,bh2=b2>>>13,b3=b[3]|0,bl3=b3&8191,bh3=b3>>>13,b4=b[4]|0,bl4=b4&8191,bh4=b4>>>13,b5=b[5]|0,bl5=b5&8191,bh5=b5>>>13,b6=b[6]|0,bl6=b6&8191,bh6=b6>>>13,b7=b[7]|0,bl7=b7&8191,bh7=b7>>>13,b8=b[8]|0,bl8=b8&8191,bh8=b8>>>13,b9=b[9]|0,bl9=b9&8191,bh9=b9>>>13;out.negative=self2.negative^num.negative,out.length=19,lo=Math.imul(al0,bl0),mid=Math.imul(al0,bh0),mid=mid+Math.imul(ah0,bl0)|0,hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=Math.imul(al1,bh0),mid=mid+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0),lo=lo+Math.imul(al0,bl1)|0,mid=mid+Math.imul(al0,bh1)|0,mid=mid+Math.imul(ah0,bl1)|0,hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=Math.imul(al2,bh0),mid=mid+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=mid+Math.imul(al1,bh1)|0,mid=mid+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0,lo=lo+Math.imul(al0,bl2)|0,mid=mid+Math.imul(al0,bh2)|0,mid=mid+Math.imul(ah0,bl2)|0,hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=Math.imul(al3,bh0),mid=mid+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=mid+Math.imul(al2,bh1)|0,mid=mid+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=mid+Math.imul(al1,bh2)|0,mid=mid+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0,lo=lo+Math.imul(al0,bl3)|0,mid=mid+Math.imul(al0,bh3)|0,mid=mid+Math.imul(ah0,bl3)|0,hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=Math.imul(al4,bh0),mid=mid+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=mid+Math.imul(al3,bh1)|0,mid=mid+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=mid+Math.imul(al2,bh2)|0,mid=mid+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=mid+Math.imul(al1,bh3)|0,mid=mid+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0,lo=lo+Math.imul(al0,bl4)|0,mid=mid+Math.imul(al0,bh4)|0,mid=mid+Math.imul(ah0,bl4)|0,hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=Math.imul(al5,bh0),mid=mid+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=mid+Math.imul(al4,bh1)|0,mid=mid+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=mid+Math.imul(al3,bh2)|0,mid=mid+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=mid+Math.imul(al2,bh3)|0,mid=mid+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=mid+Math.imul(al1,bh4)|0,mid=mid+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0,lo=lo+Math.imul(al0,bl5)|0,mid=mid+Math.imul(al0,bh5)|0,mid=mid+Math.imul(ah0,bl5)|0,hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=Math.imul(al6,bh0),mid=mid+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=mid+Math.imul(al5,bh1)|0,mid=mid+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=mid+Math.imul(al4,bh2)|0,mid=mid+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=mid+Math.imul(al3,bh3)|0,mid=mid+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=mid+Math.imul(al2,bh4)|0,mid=mid+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=mid+Math.imul(al1,bh5)|0,mid=mid+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0,lo=lo+Math.imul(al0,bl6)|0,mid=mid+Math.imul(al0,bh6)|0,mid=mid+Math.imul(ah0,bl6)|0,hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=Math.imul(al7,bh0),mid=mid+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=mid+Math.imul(al6,bh1)|0,mid=mid+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=mid+Math.imul(al5,bh2)|0,mid=mid+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=mid+Math.imul(al4,bh3)|0,mid=mid+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=mid+Math.imul(al3,bh4)|0,mid=mid+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=mid+Math.imul(al2,bh5)|0,mid=mid+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=mid+Math.imul(al1,bh6)|0,mid=mid+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0,lo=lo+Math.imul(al0,bl7)|0,mid=mid+Math.imul(al0,bh7)|0,mid=mid+Math.imul(ah0,bl7)|0,hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=Math.imul(al8,bh0),mid=mid+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=mid+Math.imul(al7,bh1)|0,mid=mid+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=mid+Math.imul(al6,bh2)|0,mid=mid+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=mid+Math.imul(al5,bh3)|0,mid=mid+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=mid+Math.imul(al4,bh4)|0,mid=mid+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=mid+Math.imul(al3,bh5)|0,mid=mid+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=mid+Math.imul(al2,bh6)|0,mid=mid+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=mid+Math.imul(al1,bh7)|0,mid=mid+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0,lo=lo+Math.imul(al0,bl8)|0,mid=mid+Math.imul(al0,bh8)|0,mid=mid+Math.imul(ah0,bl8)|0,hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=Math.imul(al9,bh0),mid=mid+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=mid+Math.imul(al8,bh1)|0,mid=mid+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=mid+Math.imul(al7,bh2)|0,mid=mid+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=mid+Math.imul(al6,bh3)|0,mid=mid+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=mid+Math.imul(al5,bh4)|0,mid=mid+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=mid+Math.imul(al4,bh5)|0,mid=mid+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=mid+Math.imul(al3,bh6)|0,mid=mid+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=mid+Math.imul(al2,bh7)|0,mid=mid+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=mid+Math.imul(al1,bh8)|0,mid=mid+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0,lo=lo+Math.imul(al0,bl9)|0,mid=mid+Math.imul(al0,bh9)|0,mid=mid+Math.imul(ah0,bl9)|0,hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=Math.imul(al9,bh1),mid=mid+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=mid+Math.imul(al8,bh2)|0,mid=mid+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=mid+Math.imul(al7,bh3)|0,mid=mid+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=mid+Math.imul(al6,bh4)|0,mid=mid+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=mid+Math.imul(al5,bh5)|0,mid=mid+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=mid+Math.imul(al4,bh6)|0,mid=mid+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=mid+Math.imul(al3,bh7)|0,mid=mid+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=mid+Math.imul(al2,bh8)|0,mid=mid+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0,lo=lo+Math.imul(al1,bl9)|0,mid=mid+Math.imul(al1,bh9)|0,mid=mid+Math.imul(ah1,bl9)|0,hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=Math.imul(al9,bh2),mid=mid+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=mid+Math.imul(al8,bh3)|0,mid=mid+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=mid+Math.imul(al7,bh4)|0,mid=mid+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=mid+Math.imul(al6,bh5)|0,mid=mid+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=mid+Math.imul(al5,bh6)|0,mid=mid+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=mid+Math.imul(al4,bh7)|0,mid=mid+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=mid+Math.imul(al3,bh8)|0,mid=mid+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0,lo=lo+Math.imul(al2,bl9)|0,mid=mid+Math.imul(al2,bh9)|0,mid=mid+Math.imul(ah2,bl9)|0,hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=Math.imul(al9,bh3),mid=mid+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=mid+Math.imul(al8,bh4)|0,mid=mid+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=mid+Math.imul(al7,bh5)|0,mid=mid+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=mid+Math.imul(al6,bh6)|0,mid=mid+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=mid+Math.imul(al5,bh7)|0,mid=mid+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=mid+Math.imul(al4,bh8)|0,mid=mid+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0,lo=lo+Math.imul(al3,bl9)|0,mid=mid+Math.imul(al3,bh9)|0,mid=mid+Math.imul(ah3,bl9)|0,hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=Math.imul(al9,bh4),mid=mid+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=mid+Math.imul(al8,bh5)|0,mid=mid+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=mid+Math.imul(al7,bh6)|0,mid=mid+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=mid+Math.imul(al6,bh7)|0,mid=mid+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=mid+Math.imul(al5,bh8)|0,mid=mid+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0,lo=lo+Math.imul(al4,bl9)|0,mid=mid+Math.imul(al4,bh9)|0,mid=mid+Math.imul(ah4,bl9)|0,hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=Math.imul(al9,bh5),mid=mid+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=mid+Math.imul(al8,bh6)|0,mid=mid+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=mid+Math.imul(al7,bh7)|0,mid=mid+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=mid+Math.imul(al6,bh8)|0,mid=mid+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0,lo=lo+Math.imul(al5,bl9)|0,mid=mid+Math.imul(al5,bh9)|0,mid=mid+Math.imul(ah5,bl9)|0,hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=Math.imul(al9,bh6),mid=mid+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=mid+Math.imul(al8,bh7)|0,mid=mid+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=mid+Math.imul(al7,bh8)|0,mid=mid+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0,lo=lo+Math.imul(al6,bl9)|0,mid=mid+Math.imul(al6,bh9)|0,mid=mid+Math.imul(ah6,bl9)|0,hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=Math.imul(al9,bh7),mid=mid+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=mid+Math.imul(al8,bh8)|0,mid=mid+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0,lo=lo+Math.imul(al7,bl9)|0,mid=mid+Math.imul(al7,bh9)|0,mid=mid+Math.imul(ah7,bl9)|0,hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=Math.imul(al9,bh8),mid=mid+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8),lo=lo+Math.imul(al8,bl9)|0,mid=mid+Math.imul(al8,bh9)|0,mid=mid+Math.imul(ah8,bl9)|0,hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863,lo=Math.imul(al9,bl9),mid=Math.imul(al9,bh9),mid=mid+Math.imul(ah9,bl9)|0,hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;if(c=(hi+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,c!==0)o[19]=c,out.length++;return out};if(!Math.imul)comb10MulTo=smallMulTo;function bigMulTo(self2,num,out){out.negative=num.negative^self2.negative,out.length=self2.length+num.length;var carry=0,hncarry=0;for(var k=0;k>>26)|0,hncarry+=ncarry>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}if(carry!==0)out.words[k]=carry;else out.length--;return out.strip()}function jumboMulTo(self2,num,out){var fftm=new FFTM;return fftm.mulp(self2,num,out)}BN.prototype.mulTo=function(num,out){var res,len=this.length+num.length;if(this.length===10&&num.length===10)res=comb10MulTo(this,num,out);else if(len<63)res=smallMulTo(this,num,out);else if(len<1024)res=bigMulTo(this,num,out);else res=jumboMulTo(this,num,out);return res};function FFTM(x,y){this.x=x,this.y=y}FFTM.prototype.makeRBT=function(N){var t=Array(N),l=BN.prototype._countBits(N)-1;for(var i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1)i++;return 1<>>13,rws[2*i+1]=carry&8191,carry=carry>>>13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=lo&67108863}if(carry!==0)this.words[i]=carry,this.length++;return this.length=num===0?1:this.length,this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i=0);var r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r,i;if(r!==0){var carry=0;for(i=0;i>>26-r}if(carry)this.words[i]=carry,this.length++}if(s!==0){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0);var h;if(hint)h=(hint-hint%26)/26;else h=0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s){this.length-=s;for(i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r,carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0)this.words[0]=0,this.length=1;return this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(this.negative===0),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert(typeof bit===\"number\"&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(this.negative===0,\"imaskn works only with positive numbers\"),this.length<=s)return this;if(r!==0)s++;if(this.length=Math.min(s,this.length),r!==0){var mask=67108863^67108863>>>r<=67108864;i++)if(this.words[i]-=67108864,i===this.length-1)this.words[i+1]=1;else this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert(typeof num===\"number\"),assert(num<67108864),num<0)return this.iaddn(-num);if(this.negative!==0)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=w&67108863}for(;i>26,this.words[i+shift]=w&67108863;if(carry===0)return this.strip();assert(carry===-1),carry=0;for(i=0;i>26,this.words[i]=w&67108863;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=this.length-num.length,a=this.clone(),b=num,bhi=b.words[b.length-1]|0,bhiBits=this._countBits(bhi);if(shift=26-bhiBits,shift!==0)b=b.ushln(shift),a.iushln(shift),bhi=b.words[b.length-1]|0;var m=a.length-b.length,q;if(mode!==\"mod\"){q=new BN(null),q.length=m+1,q.words=Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);while(a.negative!==0)if(qj--,a.negative=0,a._ishlnsubmul(b,1,j),!a.isZero())a.negative^=1;if(q)q.words[j]=qj}if(q)q.strip();if(a.strip(),mode!==\"div\"&&shift!==0)a.iushrn(shift);return{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){if(assert(!num.isZero()),this.isZero())return{div:new BN(0),mod:new BN(0)};var div,mod,res;if(this.negative!==0&&num.negative===0){if(res=this.neg().divmod(num,mode),mode!==\"mod\")div=res.div.neg();if(mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.iadd(num)}return{div,mod}}if(this.negative===0&&num.negative!==0){if(res=this.divmod(num.neg(),mode),mode!==\"mod\")div=res.div.neg();return{div,mod:res.mod}}if((this.negative&num.negative)!==0){if(res=this.neg().divmod(num.neg(),mode),mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.isub(num)}return{div:res.div,mod}}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode===\"div\")return{div:this.divn(num.words[0]),mod:null};if(mode===\"mod\")return{div:null,mod:new BN(this.modn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)},BN.prototype.div=function(num){return this.divmod(num,\"div\",!1).div},BN.prototype.mod=function(num){return this.divmod(num,\"mod\",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,\"mod\",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);var p=67108864%num,acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+(this.words[i]|0))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(p.negative===0),assert(!p.isZero());var x=this,y=p.clone();if(x.negative!==0)x=x.umod(p);else x=x.clone();var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;while(x.isEven()&&y.isEven())x.iushrn(1),y.iushrn(1),++g;var yp=y.clone(),xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd())A.iadd(yp),B.isub(xp);A.iushrn(1),B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd())C.iadd(yp),D.isub(xp);C.iushrn(1),D.iushrn(1)}}if(x.cmp(y)>=0)x.isub(y),A.isub(C),B.isub(D);else y.isub(x),C.isub(A),D.isub(B)}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(p.negative===0),assert(!p.isZero());var a=this,b=p.clone();if(a.negative!==0)a=a.umod(p);else a=a.clone();var x1=new BN(1),x2=new BN(0),delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd())x1.iadd(delta);x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd())x2.iadd(delta);x2.iushrn(1)}}if(a.cmp(b)>=0)a.isub(b),x1.isub(x2);else b.isub(a),x2.isub(x1)}var res;if(a.cmpn(1)===0)res=x1;else res=x2;if(res.cmpn(0)<0)res.iadd(p);return res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);do{while(a.isEven())a.iushrn(1);while(b.isEven())b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(r===0||b.cmpn(1)===0)break;a.isub(b)}while(!0);return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return(this.words[0]&1)===0},BN.prototype.isOdd=function(){return(this.words[0]&1)===1},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert(typeof bit===\"number\");var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}if(carry!==0)this.words[i]=carry,this.length++;return this},BN.prototype.isZero=function(){return this.length===1&&this.words[0]===0},BN.prototype.cmpn=function(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this.strip();var res;if(this.length>1)res=1;else{if(negative)num=-num;assert(num<=67108863,\"Number is too big\");var w=this.words[0]|0;res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=this.words[i]|0,b=num.words[i]|0;if(a===b)continue;if(ab)res=1;break}return res},BN.prototype.gtn=function(num){return this.cmpn(num)===1},BN.prototype.gt=function(num){return this.cmp(num)===1},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return this.cmpn(num)===-1},BN.prototype.lt=function(num){return this.cmp(num)===-1},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return this.cmpn(num)===0},BN.prototype.eq=function(num){return this.cmp(num)===0},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),assert(this.negative===0,\"red works only with positives\"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,\"redAdd works only with red numbers\"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,\"redSub works only with red numbers\"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,\"redISub works only with red numbers\"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,\"redShl works only with red numbers\"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var r=num,rlen;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),rlen=r.bitLength();while(rlen>this.n);var cmp=rlen0)r.isub(this.p);else if(r.strip!==void 0)r.strip();else r._strip();return r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)};function K256(){MPrime.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}inherits(K256,MPrime),K256.prototype.split=function(input,output){var mask=4194303,outLen=Math.min(input.length,9);for(var i=0;i>>22,prev=next}if(prev>>>=22,input.words[i-10]=prev,prev===0&&input.length>10)input.length-=10;else input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;var lo=0;for(var i=0;i>>=26,num.words[i]=lo,carry=hi}if(carry!==0)num.words[num.length++]=carry;return num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if(name===\"k256\")prime=new K256;else if(name===\"p224\")prime=new P224;else if(name===\"p192\")prime=new P192;else if(name===\"p25519\")prime=new P25519;else throw Error(\"Unknown prime \"+name);return primes[name]=prime,prime};function Red(m){if(typeof m===\"string\"){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),\"modulus must be greater than 1\"),this.m=m,this.prime=null}Red.prototype._verify1=function(a){assert(a.negative===0,\"red works only with positives\"),assert(a.red,\"red works only with red numbers\")},Red.prototype._verify2=function(a,b){assert((a.negative|b.negative)===0,\"red works only with positives\"),assert(a.red&&a.red===b.red,\"red works only with red numbers\")},Red.prototype.imod=function(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){if(a.isZero())return a.clone();return this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2===1),mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1),s=0;while(!q.isZero()&&q.andln(1)===0)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0])res=this.sqr(res);if(bit===0&¤t===0){currentLen=0;continue}if(current<<=1,current|=bit,currentLen++,currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]),currentLen=0,current=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)};function Mont(m){if(Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.invm=function(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module>\"u\"||module,exports)});var require_api=__commonJS((exports)=>{var asn1=require_asn1(),inherits=require_inherits(),api=exports;api.define=function(name,body){return new Entity(name,body)};function Entity(name,body){this.name=name,this.body=body,this.decoders={},this.encoders={}}Entity.prototype._createNamed=function(base){var named;try{named=require(\"vm\").runInThisContext(\"(function \"+this.name+`(entity) {\n this._initNamed(entity);\n})`)}catch(e){named=function(entity){this._initNamed(entity)}}return inherits(named,base),named.prototype._initNamed=function(entity){base.call(this,entity)},new named(this)};Entity.prototype._getDecoder=function(enc){if(enc=enc||\"der\",!this.decoders.hasOwnProperty(enc))this.decoders[enc]=this._createNamed(asn1.decoders[enc]);return this.decoders[enc]};Entity.prototype.decode=function(data,enc,options){return this._getDecoder(enc).decode(data,options)};Entity.prototype._getEncoder=function(enc){if(enc=enc||\"der\",!this.encoders.hasOwnProperty(enc))this.encoders[enc]=this._createNamed(asn1.encoders[enc]);return this.encoders[enc]};Entity.prototype.encode=function(data,enc,reporter){return this._getEncoder(enc).encode(data,reporter)}});var require_reporter=__commonJS((exports)=>{var inherits=require_inherits();function Reporter(options){this._reporterState={obj:null,path:[],options:options||{},errors:[]}}exports.Reporter=Reporter;Reporter.prototype.isError=function(obj){return obj instanceof ReporterError};Reporter.prototype.save=function(){var state=this._reporterState;return{obj:state.obj,pathLen:state.path.length}};Reporter.prototype.restore=function(data){var state=this._reporterState;state.obj=data.obj,state.path=state.path.slice(0,data.pathLen)};Reporter.prototype.enterKey=function(key){return this._reporterState.path.push(key)};Reporter.prototype.exitKey=function(index){var state=this._reporterState;state.path=state.path.slice(0,index-1)};Reporter.prototype.leaveKey=function(index,key,value){var state=this._reporterState;if(this.exitKey(index),state.obj!==null)state.obj[key]=value};Reporter.prototype.path=function(){return this._reporterState.path.join(\"/\")};Reporter.prototype.enterObject=function(){var state=this._reporterState,prev=state.obj;return state.obj={},prev};Reporter.prototype.leaveObject=function(prev){var state=this._reporterState,now=state.obj;return state.obj=prev,now};Reporter.prototype.error=function(msg){var err,state=this._reporterState,inherited=msg instanceof ReporterError;if(inherited)err=msg;else err=new ReporterError(state.path.map(function(elem){return\"[\"+JSON.stringify(elem)+\"]\"}).join(\"\"),msg.message||msg,msg.stack);if(!state.options.partial)throw err;if(!inherited)state.errors.push(err);return err};Reporter.prototype.wrapResult=function(result){var state=this._reporterState;if(!state.options.partial)return result;return{result:this.isError(result)?null:result,errors:state.errors}};function ReporterError(path,msg){this.path=path,this.rethrow(msg)}inherits(ReporterError,Error);ReporterError.prototype.rethrow=function(msg){if(this.message=msg+\" at: \"+(this.path||\"(shallow)\"),Error.captureStackTrace)Error.captureStackTrace(this,ReporterError);if(!this.stack)try{throw Error(this.message)}catch(e){this.stack=e.stack}return this}});var require_buffer=__commonJS((exports)=>{var inherits=require_inherits(),Reporter=require_base2().Reporter,Buffer2=require(\"buffer\").Buffer;function DecoderBuffer(base,options){if(Reporter.call(this,options),!Buffer2.isBuffer(base)){this.error(\"Input not Buffer\");return}this.base=base,this.offset=0,this.length=base.length}inherits(DecoderBuffer,Reporter);exports.DecoderBuffer=DecoderBuffer;DecoderBuffer.prototype.save=function(){return{offset:this.offset,reporter:Reporter.prototype.save.call(this)}};DecoderBuffer.prototype.restore=function(save){var res=new DecoderBuffer(this.base);return res.offset=save.offset,res.length=this.offset,this.offset=save.offset,Reporter.prototype.restore.call(this,save.reporter),res};DecoderBuffer.prototype.isEmpty=function(){return this.offset===this.length};DecoderBuffer.prototype.readUInt8=function(fail){if(this.offset+1<=this.length)return this.base.readUInt8(this.offset++,!0);else return this.error(fail||\"DecoderBuffer overrun\")};DecoderBuffer.prototype.skip=function(bytes,fail){if(!(this.offset+bytes<=this.length))return this.error(fail||\"DecoderBuffer overrun\");var res=new DecoderBuffer(this.base);return res._reporterState=this._reporterState,res.offset=this.offset,res.length=this.offset+bytes,this.offset+=bytes,res};DecoderBuffer.prototype.raw=function(save){return this.base.slice(save?save.offset:this.offset,this.length)};function EncoderBuffer(value,reporter){if(Array.isArray(value))this.length=0,this.value=value.map(function(item){if(!(item instanceof EncoderBuffer))item=new EncoderBuffer(item,reporter);return this.length+=item.length,item},this);else if(typeof value===\"number\"){if(!(0<=value&&value<=255))return reporter.error(\"non-byte EncoderBuffer value\");this.value=value,this.length=1}else if(typeof value===\"string\")this.value=value,this.length=Buffer2.byteLength(value);else if(Buffer2.isBuffer(value))this.value=value,this.length=value.length;else return reporter.error(\"Unsupported type: \"+typeof value)}exports.EncoderBuffer=EncoderBuffer;EncoderBuffer.prototype.join=function(out,offset){if(!out)out=new Buffer2(this.length);if(!offset)offset=0;if(this.length===0)return out;if(Array.isArray(this.value))this.value.forEach(function(item){item.join(out,offset),offset+=item.length});else{if(typeof this.value===\"number\")out[offset]=this.value;else if(typeof this.value===\"string\")out.write(this.value,offset);else if(Buffer2.isBuffer(this.value))this.value.copy(out,offset);offset+=this.length}return out}});var require_node=__commonJS((exports,module)=>{var Reporter=require_base2().Reporter,EncoderBuffer=require_base2().EncoderBuffer,DecoderBuffer=require_base2().DecoderBuffer,assert=require_minimalistic_assert(),tags=[\"seq\",\"seqof\",\"set\",\"setof\",\"objid\",\"bool\",\"gentime\",\"utctime\",\"null_\",\"enum\",\"int\",\"objDesc\",\"bitstr\",\"bmpstr\",\"charstr\",\"genstr\",\"graphstr\",\"ia5str\",\"iso646str\",\"numstr\",\"octstr\",\"printstr\",\"t61str\",\"unistr\",\"utf8str\",\"videostr\"],methods=[\"key\",\"obj\",\"use\",\"optional\",\"explicit\",\"implicit\",\"def\",\"choice\",\"any\",\"contains\"].concat(tags),overrided=[\"_peekTag\",\"_decodeTag\",\"_use\",\"_decodeStr\",\"_decodeObjid\",\"_decodeTime\",\"_decodeNull\",\"_decodeInt\",\"_decodeBool\",\"_decodeList\",\"_encodeComposite\",\"_encodeStr\",\"_encodeObjid\",\"_encodeTime\",\"_encodeNull\",\"_encodeInt\",\"_encodeBool\"];function Node(enc,parent){var state={};if(this._baseState=state,state.enc=enc,state.parent=parent||null,state.children=null,state.tag=null,state.args=null,state.reverseArgs=null,state.choice=null,state.optional=!1,state.any=!1,state.obj=!1,state.use=null,state.useDecoder=null,state.key=null,state.default=null,state.explicit=null,state.implicit=null,state.contains=null,!state.parent)state.children=[],this._wrap()}module.exports=Node;var stateProps=[\"enc\",\"parent\",\"children\",\"tag\",\"args\",\"reverseArgs\",\"choice\",\"optional\",\"any\",\"obj\",\"use\",\"alteredUse\",\"key\",\"default\",\"explicit\",\"implicit\",\"contains\"];Node.prototype.clone=function(){var state=this._baseState,cstate={};stateProps.forEach(function(prop){cstate[prop]=state[prop]});var res=new this.constructor(cstate.parent);return res._baseState=cstate,res};Node.prototype._wrap=function(){var state=this._baseState;methods.forEach(function(method){this[method]=function(){var clone=new this.constructor(this);return state.children.push(clone),clone[method].apply(clone,arguments)}},this)};Node.prototype._init=function(body){var state=this._baseState;assert(state.parent===null),body.call(this),state.children=state.children.filter(function(child){return child._baseState.parent===this},this),assert.equal(state.children.length,1,\"Root node can have only one child\")};Node.prototype._useArgs=function(args){var state=this._baseState,children=args.filter(function(arg){return arg instanceof this.constructor},this);if(args=args.filter(function(arg){return!(arg instanceof this.constructor)},this),children.length!==0)assert(state.children===null),state.children=children,children.forEach(function(child){child._baseState.parent=this},this);if(args.length!==0)assert(state.args===null),state.args=args,state.reverseArgs=args.map(function(arg){if(typeof arg!==\"object\"||arg.constructor!==Object)return arg;var res={};return Object.keys(arg).forEach(function(key){if(key==(key|0))key|=0;var value=arg[key];res[value]=key}),res})};overrided.forEach(function(method){Node.prototype[method]=function(){var state=this._baseState;throw Error(method+\" not implemented for encoding: \"+state.enc)}});tags.forEach(function(tag){Node.prototype[tag]=function(){var state=this._baseState,args=Array.prototype.slice.call(arguments);return assert(state.tag===null),state.tag=tag,this._useArgs(args),this}});Node.prototype.use=function(item){assert(item);var state=this._baseState;return assert(state.use===null),state.use=item,this};Node.prototype.optional=function(){var state=this._baseState;return state.optional=!0,this};Node.prototype.def=function(val){var state=this._baseState;return assert(state.default===null),state.default=val,state.optional=!0,this};Node.prototype.explicit=function(num){var state=this._baseState;return assert(state.explicit===null&&state.implicit===null),state.explicit=num,this};Node.prototype.implicit=function(num){var state=this._baseState;return assert(state.explicit===null&&state.implicit===null),state.implicit=num,this};Node.prototype.obj=function(){var state=this._baseState,args=Array.prototype.slice.call(arguments);if(state.obj=!0,args.length!==0)this._useArgs(args);return this};Node.prototype.key=function(newKey){var state=this._baseState;return assert(state.key===null),state.key=newKey,this};Node.prototype.any=function(){var state=this._baseState;return state.any=!0,this};Node.prototype.choice=function(obj){var state=this._baseState;return assert(state.choice===null),state.choice=obj,this._useArgs(Object.keys(obj).map(function(key){return obj[key]})),this};Node.prototype.contains=function(item){var state=this._baseState;return assert(state.use===null),state.contains=item,this};Node.prototype._decode=function(input,options){var state=this._baseState;if(state.parent===null)return input.wrapResult(state.children[0]._decode(input,options));var result=state.default,present=!0,prevKey=null;if(state.key!==null)prevKey=input.enterKey(state.key);if(state.optional){var tag=null;if(state.explicit!==null)tag=state.explicit;else if(state.implicit!==null)tag=state.implicit;else if(state.tag!==null)tag=state.tag;if(tag===null&&!state.any){var save=input.save();try{if(state.choice===null)this._decodeGeneric(state.tag,input,options);else this._decodeChoice(input,options);present=!0}catch(e){present=!1}input.restore(save)}else if(present=this._peekTag(input,tag,state.any),input.isError(present))return present}var prevObj;if(state.obj&&present)prevObj=input.enterObject();if(present){if(state.explicit!==null){var explicit=this._decodeTag(input,state.explicit);if(input.isError(explicit))return explicit;input=explicit}var start=input.offset;if(state.use===null&&state.choice===null){if(state.any)var save=input.save();var body=this._decodeTag(input,state.implicit!==null?state.implicit:state.tag,state.any);if(input.isError(body))return body;if(state.any)result=input.raw(save);else input=body}if(options&&options.track&&state.tag!==null)options.track(input.path(),start,input.length,\"tagged\");if(options&&options.track&&state.tag!==null)options.track(input.path(),input.offset,input.length,\"content\");if(state.any)result=result;else if(state.choice===null)result=this._decodeGeneric(state.tag,input,options);else result=this._decodeChoice(input,options);if(input.isError(result))return result;if(!state.any&&state.choice===null&&state.children!==null)state.children.forEach(function(child){child._decode(input,options)});if(state.contains&&(state.tag===\"octstr\"||state.tag===\"bitstr\")){var data=new DecoderBuffer(result);result=this._getUse(state.contains,input._reporterState.obj)._decode(data,options)}}if(state.obj&&present)result=input.leaveObject(prevObj);if(state.key!==null&&(result!==null||present===!0))input.leaveKey(prevKey,state.key,result);else if(prevKey!==null)input.exitKey(prevKey);return result};Node.prototype._decodeGeneric=function(tag,input,options){var state=this._baseState;if(tag===\"seq\"||tag===\"set\")return null;if(tag===\"seqof\"||tag===\"setof\")return this._decodeList(input,tag,state.args[0],options);else if(/str$/.test(tag))return this._decodeStr(input,tag,options);else if(tag===\"objid\"&&state.args)return this._decodeObjid(input,state.args[0],state.args[1],options);else if(tag===\"objid\")return this._decodeObjid(input,null,null,options);else if(tag===\"gentime\"||tag===\"utctime\")return this._decodeTime(input,tag,options);else if(tag===\"null_\")return this._decodeNull(input,options);else if(tag===\"bool\")return this._decodeBool(input,options);else if(tag===\"objDesc\")return this._decodeStr(input,tag,options);else if(tag===\"int\"||tag===\"enum\")return this._decodeInt(input,state.args&&state.args[0],options);if(state.use!==null)return this._getUse(state.use,input._reporterState.obj)._decode(input,options);else return input.error(\"unknown tag: \"+tag)};Node.prototype._getUse=function(entity,obj){var state=this._baseState;if(state.useDecoder=this._use(entity,obj),assert(state.useDecoder._baseState.parent===null),state.useDecoder=state.useDecoder._baseState.children[0],state.implicit!==state.useDecoder._baseState.implicit)state.useDecoder=state.useDecoder.clone(),state.useDecoder._baseState.implicit=state.implicit;return state.useDecoder};Node.prototype._decodeChoice=function(input,options){var state=this._baseState,result=null,match=!1;if(Object.keys(state.choice).some(function(key){var save=input.save(),node=state.choice[key];try{var value=node._decode(input,options);if(input.isError(value))return!1;result={type:key,value},match=!0}catch(e){return input.restore(save),!1}return!0},this),!match)return input.error(\"Choice not matched\");return result};Node.prototype._createEncoderBuffer=function(data){return new EncoderBuffer(data,this.reporter)};Node.prototype._encode=function(data,reporter,parent){var state=this._baseState;if(state.default!==null&&state.default===data)return;var result=this._encodeValue(data,reporter,parent);if(result===void 0)return;if(this._skipDefault(result,reporter,parent))return;return result};Node.prototype._encodeValue=function(data,reporter,parent){var state=this._baseState;if(state.parent===null)return state.children[0]._encode(data,reporter||new Reporter);var result=null;if(this.reporter=reporter,state.optional&&data===void 0)if(state.default!==null)data=state.default;else return;var content=null,primitive=!1;if(state.any)result=this._createEncoderBuffer(data);else if(state.choice)result=this._encodeChoice(data,reporter);else if(state.contains)content=this._getUse(state.contains,parent)._encode(data,reporter),primitive=!0;else if(state.children)content=state.children.map(function(child2){if(child2._baseState.tag===\"null_\")return child2._encode(null,reporter,data);if(child2._baseState.key===null)return reporter.error(\"Child should have a key\");var prevKey=reporter.enterKey(child2._baseState.key);if(typeof data!==\"object\")return reporter.error(\"Child expected, but input is not object\");var res=child2._encode(data[child2._baseState.key],reporter,data);return reporter.leaveKey(prevKey),res},this).filter(function(child2){return child2}),content=this._createEncoderBuffer(content);else if(state.tag===\"seqof\"||state.tag===\"setof\"){if(!(state.args&&state.args.length===1))return reporter.error(\"Too many args for : \"+state.tag);if(!Array.isArray(data))return reporter.error(\"seqof/setof, but data is not Array\");var child=this.clone();child._baseState.implicit=null,content=this._createEncoderBuffer(data.map(function(item){var state2=this._baseState;return this._getUse(state2.args[0],data)._encode(item,reporter)},child))}else if(state.use!==null)result=this._getUse(state.use,parent)._encode(data,reporter);else content=this._encodePrimitive(state.tag,data),primitive=!0;var result;if(!state.any&&state.choice===null){var tag=state.implicit!==null?state.implicit:state.tag,cls=state.implicit===null?\"universal\":\"context\";if(tag===null){if(state.use===null)reporter.error(\"Tag could be omitted only for .use()\")}else if(state.use===null)result=this._encodeComposite(tag,primitive,cls,content)}if(state.explicit!==null)result=this._encodeComposite(state.explicit,!1,\"context\",result);return result};Node.prototype._encodeChoice=function(data,reporter){var state=this._baseState,node=state.choice[data.type];if(!node)assert(!1,data.type+\" not found in \"+JSON.stringify(Object.keys(state.choice)));return node._encode(data.value,reporter)};Node.prototype._encodePrimitive=function(tag,data){var state=this._baseState;if(/str$/.test(tag))return this._encodeStr(data,tag);else if(tag===\"objid\"&&state.args)return this._encodeObjid(data,state.reverseArgs[0],state.args[1]);else if(tag===\"objid\")return this._encodeObjid(data,null,null);else if(tag===\"gentime\"||tag===\"utctime\")return this._encodeTime(data,tag);else if(tag===\"null_\")return this._encodeNull();else if(tag===\"int\"||tag===\"enum\")return this._encodeInt(data,state.args&&state.reverseArgs[0]);else if(tag===\"bool\")return this._encodeBool(data);else if(tag===\"objDesc\")return this._encodeStr(data,tag);else throw Error(\"Unsupported tag: \"+tag)};Node.prototype._isNumstr=function(str){return/^[0-9 ]*$/.test(str)};Node.prototype._isPrintstr=function(str){return/^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str)}});var require_base2=__commonJS((exports)=>{var base=exports;base.Reporter=require_reporter().Reporter;base.DecoderBuffer=require_buffer().DecoderBuffer;base.EncoderBuffer=require_buffer().EncoderBuffer;base.Node=require_node()});var require_der=__commonJS((exports)=>{var constants=require_constants();exports.tagClass={0:\"universal\",1:\"application\",2:\"context\",3:\"private\"};exports.tagClassByName=constants._reverse(exports.tagClass);exports.tag={0:\"end\",1:\"bool\",2:\"int\",3:\"bitstr\",4:\"octstr\",5:\"null_\",6:\"objid\",7:\"objDesc\",8:\"external\",9:\"real\",10:\"enum\",11:\"embed\",12:\"utf8str\",13:\"relativeOid\",16:\"seq\",17:\"set\",18:\"numstr\",19:\"printstr\",20:\"t61str\",21:\"videostr\",22:\"ia5str\",23:\"utctime\",24:\"gentime\",25:\"graphstr\",26:\"iso646str\",27:\"genstr\",28:\"unistr\",29:\"charstr\",30:\"bmpstr\"};exports.tagByName=constants._reverse(exports.tag)});var require_constants=__commonJS((exports)=>{var constants=exports;constants._reverse=function(map){var res={};return Object.keys(map).forEach(function(key){if((key|0)==key)key=key|0;var value=map[key];res[value]=key}),res};constants.der=require_der()});var require_der2=__commonJS((exports,module)=>{var inherits=require_inherits(),asn1=require_asn1(),base=asn1.base,bignum=asn1.bignum,der=asn1.constants.der;function DERDecoder(entity){this.enc=\"der\",this.name=entity.name,this.entity=entity,this.tree=new DERNode,this.tree._init(entity.body)}module.exports=DERDecoder;DERDecoder.prototype.decode=function(data,options){if(!(data instanceof base.DecoderBuffer))data=new base.DecoderBuffer(data,options);return this.tree._decode(data,options)};function DERNode(parent){base.Node.call(this,\"der\",parent)}inherits(DERNode,base.Node);DERNode.prototype._peekTag=function(buffer,tag,any){if(buffer.isEmpty())return!1;var state=buffer.save(),decodedTag=derDecodeTag(buffer,'Failed to peek tag: \"'+tag+'\"');if(buffer.isError(decodedTag))return decodedTag;return buffer.restore(state),decodedTag.tag===tag||decodedTag.tagStr===tag||decodedTag.tagStr+\"of\"===tag||any};DERNode.prototype._decodeTag=function(buffer,tag,any){var decodedTag=derDecodeTag(buffer,'Failed to decode tag of \"'+tag+'\"');if(buffer.isError(decodedTag))return decodedTag;var len=derDecodeLen(buffer,decodedTag.primitive,'Failed to get length of \"'+tag+'\"');if(buffer.isError(len))return len;if(!any&&decodedTag.tag!==tag&&decodedTag.tagStr!==tag&&decodedTag.tagStr+\"of\"!==tag)return buffer.error('Failed to match tag: \"'+tag+'\"');if(decodedTag.primitive||len!==null)return buffer.skip(len,'Failed to match body of: \"'+tag+'\"');var state=buffer.save(),res=this._skipUntilEnd(buffer,'Failed to skip indefinite length body: \"'+this.tag+'\"');if(buffer.isError(res))return res;return len=buffer.offset-state.offset,buffer.restore(state),buffer.skip(len,'Failed to match body of: \"'+tag+'\"')};DERNode.prototype._skipUntilEnd=function(buffer,fail){while(!0){var tag=derDecodeTag(buffer,fail);if(buffer.isError(tag))return tag;var len=derDecodeLen(buffer,tag.primitive,fail);if(buffer.isError(len))return len;var res;if(tag.primitive||len!==null)res=buffer.skip(len);else res=this._skipUntilEnd(buffer,fail);if(buffer.isError(res))return res;if(tag.tagStr===\"end\")break}};DERNode.prototype._decodeList=function(buffer,tag,decoder,options){var result=[];while(!buffer.isEmpty()){var possibleEnd=this._peekTag(buffer,\"end\");if(buffer.isError(possibleEnd))return possibleEnd;var res=decoder.decode(buffer,\"der\",options);if(buffer.isError(res)&&possibleEnd)break;result.push(res)}return result};DERNode.prototype._decodeStr=function(buffer,tag){if(tag===\"bitstr\"){var unused=buffer.readUInt8();if(buffer.isError(unused))return unused;return{unused,data:buffer.raw()}}else if(tag===\"bmpstr\"){var raw=buffer.raw();if(raw.length%2===1)return buffer.error(\"Decoding of string type: bmpstr length mismatch\");var str=\"\";for(var i=0;i>6],primitive=(tag&32)===0;if((tag&31)===31){var oct=tag;tag=0;while((oct&128)===128){if(oct=buf.readUInt8(fail),buf.isError(oct))return oct;tag<<=7,tag|=oct&127}}else tag&=31;var tagStr=der.tag[tag];return{cls,primitive,tag,tagStr}}function derDecodeLen(buf,primitive,fail){var len=buf.readUInt8(fail);if(buf.isError(len))return len;if(!primitive&&len===128)return null;if((len&128)===0)return len;var num=len&127;if(num>4)return buf.error(\"length octect is too long\");len=0;for(var i=0;i{var inherits=require_inherits(),Buffer2=require(\"buffer\").Buffer,DERDecoder=require_der2();function PEMDecoder(entity){DERDecoder.call(this,entity),this.enc=\"pem\"}inherits(PEMDecoder,DERDecoder);module.exports=PEMDecoder;PEMDecoder.prototype.decode=function(data,options){var lines=data.toString().split(/[\\r\\n]+/g),label=options.label.toUpperCase(),re=/^-----(BEGIN|END) ([^-]+)-----$/,start=-1,end=-1;for(var i=0;i{var decoders=exports;decoders.der=require_der2();decoders.pem=require_pem()});var require_der3=__commonJS((exports,module)=>{var inherits=require_inherits(),Buffer2=require(\"buffer\").Buffer,asn1=require_asn1(),base=asn1.base,der=asn1.constants.der;function DEREncoder(entity){this.enc=\"der\",this.name=entity.name,this.entity=entity,this.tree=new DERNode,this.tree._init(entity.body)}module.exports=DEREncoder;DEREncoder.prototype.encode=function(data,reporter){return this.tree._encode(data,reporter).join()};function DERNode(parent){base.Node.call(this,\"der\",parent)}inherits(DERNode,base.Node);DERNode.prototype._encodeComposite=function(tag,primitive,cls,content){var encodedTag=encodeTag(tag,primitive,cls,this.reporter);if(content.length<128){var header=new Buffer2(2);return header[0]=encodedTag,header[1]=content.length,this._createEncoderBuffer([header,content])}var lenOctets=1;for(var i=content.length;i>=256;i>>=8)lenOctets++;var header=new Buffer2(2+lenOctets);header[0]=encodedTag,header[1]=128|lenOctets;for(var i=1+lenOctets,j=content.length;j>0;i--,j>>=8)header[i]=j&255;return this._createEncoderBuffer([header,content])};DERNode.prototype._encodeStr=function(str,tag){if(tag===\"bitstr\")return this._createEncoderBuffer([str.unused|0,str.data]);else if(tag===\"bmpstr\"){var buf=new Buffer2(str.length*2);for(var i=0;i=40)return this.reporter.error(\"Second objid identifier OOB\");id.splice(0,2,id[0]*40+id[1])}var size=0;for(var i=0;i=128;ident>>=7)size++}var objid=new Buffer2(size),offset=objid.length-1;for(var i=id.length-1;i>=0;i--){var ident=id[i];objid[offset--]=ident&127;while((ident>>=7)>0)objid[offset--]=128|ident&127}return this._createEncoderBuffer(objid)};function two(num){if(num<10)return\"0\"+num;else return num}DERNode.prototype._encodeTime=function(time,tag){var str,date=new Date(time);if(tag===\"gentime\")str=[two(date.getFullYear()),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),\"Z\"].join(\"\");else if(tag===\"utctime\")str=[two(date.getFullYear()%100),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),\"Z\"].join(\"\");else this.reporter.error(\"Encoding \"+tag+\" time is not supported yet\");return this._encodeStr(str,\"octstr\")};DERNode.prototype._encodeNull=function(){return this._createEncoderBuffer(\"\")};DERNode.prototype._encodeInt=function(num,values){if(typeof num===\"string\"){if(!values)return this.reporter.error(\"String int or enum given, but no values map\");if(!values.hasOwnProperty(num))return this.reporter.error(\"Values map doesn't contain: \"+JSON.stringify(num));num=values[num]}if(typeof num!==\"number\"&&!Buffer2.isBuffer(num)){var numArray=num.toArray();if(!num.sign&&numArray[0]&128)numArray.unshift(0);num=new Buffer2(numArray)}if(Buffer2.isBuffer(num)){var size=num.length;if(num.length===0)size++;var out=new Buffer2(size);if(num.copy(out),num.length===0)out[0]=0;return this._createEncoderBuffer(out)}if(num<128)return this._createEncoderBuffer(num);if(num<256)return this._createEncoderBuffer([0,num]);var size=1;for(var i=num;i>=256;i>>=8)size++;var out=Array(size);for(var i=out.length-1;i>=0;i--)out[i]=num&255,num>>=8;if(out[0]&128)out.unshift(0);return this._createEncoderBuffer(new Buffer2(out))};DERNode.prototype._encodeBool=function(value){return this._createEncoderBuffer(value?255:0)};DERNode.prototype._use=function(entity,obj){if(typeof entity===\"function\")entity=entity(obj);return entity._getEncoder(\"der\").tree};DERNode.prototype._skipDefault=function(dataBuffer,reporter,parent){var state=this._baseState,i;if(state.default===null)return!1;var data=dataBuffer.join();if(state.defaultBuffer===void 0)state.defaultBuffer=this._encodeValue(state.default,reporter,parent).join();if(data.length!==state.defaultBuffer.length)return!1;for(i=0;i=31)return reporter.error(\"Multi-octet tag encoding unsupported\");if(!primitive)res|=32;return res|=der.tagClassByName[cls||\"universal\"]<<6,res}});var require_pem2=__commonJS((exports,module)=>{var inherits=require_inherits(),DEREncoder=require_der3();function PEMEncoder(entity){DEREncoder.call(this,entity),this.enc=\"pem\"}inherits(PEMEncoder,DEREncoder);module.exports=PEMEncoder;PEMEncoder.prototype.encode=function(data,options){var buf=DEREncoder.prototype.encode.call(this,data),p=buf.toString(\"base64\"),out=[\"-----BEGIN \"+options.label+\"-----\"];for(var i=0;i{var encoders=exports;encoders.der=require_der3();encoders.pem=require_pem2()});var require_asn1=__commonJS((exports)=>{var asn1=exports;asn1.bignum=require_bn3();asn1.define=require_api().define;asn1.base=require_base2();asn1.constants=require_constants();asn1.decoders=require_decoders();asn1.encoders=require_encoders()});var require_certificate=__commonJS((exports,module)=>{var asn=require_asn1(),Time=asn.define(\"Time\",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),AttributeTypeValue=asn.define(\"AttributeTypeValue\",function(){this.seq().obj(this.key(\"type\").objid(),this.key(\"value\").any())}),AlgorithmIdentifier=asn.define(\"AlgorithmIdentifier\",function(){this.seq().obj(this.key(\"algorithm\").objid(),this.key(\"parameters\").optional(),this.key(\"curve\").objid().optional())}),SubjectPublicKeyInfo=asn.define(\"SubjectPublicKeyInfo\",function(){this.seq().obj(this.key(\"algorithm\").use(AlgorithmIdentifier),this.key(\"subjectPublicKey\").bitstr())}),RelativeDistinguishedName=asn.define(\"RelativeDistinguishedName\",function(){this.setof(AttributeTypeValue)}),RDNSequence=asn.define(\"RDNSequence\",function(){this.seqof(RelativeDistinguishedName)}),Name=asn.define(\"Name\",function(){this.choice({rdnSequence:this.use(RDNSequence)})}),Validity=asn.define(\"Validity\",function(){this.seq().obj(this.key(\"notBefore\").use(Time),this.key(\"notAfter\").use(Time))}),Extension=asn.define(\"Extension\",function(){this.seq().obj(this.key(\"extnID\").objid(),this.key(\"critical\").bool().def(!1),this.key(\"extnValue\").octstr())}),TBSCertificate=asn.define(\"TBSCertificate\",function(){this.seq().obj(this.key(\"version\").explicit(0).int().optional(),this.key(\"serialNumber\").int(),this.key(\"signature\").use(AlgorithmIdentifier),this.key(\"issuer\").use(Name),this.key(\"validity\").use(Validity),this.key(\"subject\").use(Name),this.key(\"subjectPublicKeyInfo\").use(SubjectPublicKeyInfo),this.key(\"issuerUniqueID\").implicit(1).bitstr().optional(),this.key(\"subjectUniqueID\").implicit(2).bitstr().optional(),this.key(\"extensions\").explicit(3).seqof(Extension).optional())}),X509Certificate=asn.define(\"X509Certificate\",function(){this.seq().obj(this.key(\"tbsCertificate\").use(TBSCertificate),this.key(\"signatureAlgorithm\").use(AlgorithmIdentifier),this.key(\"signatureValue\").bitstr())});module.exports=X509Certificate});var require_asn12=__commonJS((exports)=>{var asn1=require_asn1();exports.certificate=require_certificate();var RSAPrivateKey=asn1.define(\"RSAPrivateKey\",function(){this.seq().obj(this.key(\"version\").int(),this.key(\"modulus\").int(),this.key(\"publicExponent\").int(),this.key(\"privateExponent\").int(),this.key(\"prime1\").int(),this.key(\"prime2\").int(),this.key(\"exponent1\").int(),this.key(\"exponent2\").int(),this.key(\"coefficient\").int())});exports.RSAPrivateKey=RSAPrivateKey;var RSAPublicKey=asn1.define(\"RSAPublicKey\",function(){this.seq().obj(this.key(\"modulus\").int(),this.key(\"publicExponent\").int())});exports.RSAPublicKey=RSAPublicKey;var AlgorithmIdentifier=asn1.define(\"AlgorithmIdentifier\",function(){this.seq().obj(this.key(\"algorithm\").objid(),this.key(\"none\").null_().optional(),this.key(\"curve\").objid().optional(),this.key(\"params\").seq().obj(this.key(\"p\").int(),this.key(\"q\").int(),this.key(\"g\").int()).optional())}),PublicKey=asn1.define(\"SubjectPublicKeyInfo\",function(){this.seq().obj(this.key(\"algorithm\").use(AlgorithmIdentifier),this.key(\"subjectPublicKey\").bitstr())});exports.PublicKey=PublicKey;var PrivateKeyInfo=asn1.define(\"PrivateKeyInfo\",function(){this.seq().obj(this.key(\"version\").int(),this.key(\"algorithm\").use(AlgorithmIdentifier),this.key(\"subjectPrivateKey\").octstr())});exports.PrivateKey=PrivateKeyInfo;var EncryptedPrivateKeyInfo=asn1.define(\"EncryptedPrivateKeyInfo\",function(){this.seq().obj(this.key(\"algorithm\").seq().obj(this.key(\"id\").objid(),this.key(\"decrypt\").seq().obj(this.key(\"kde\").seq().obj(this.key(\"id\").objid(),this.key(\"kdeparams\").seq().obj(this.key(\"salt\").octstr(),this.key(\"iters\").int())),this.key(\"cipher\").seq().obj(this.key(\"algo\").objid(),this.key(\"iv\").octstr()))),this.key(\"subjectPrivateKey\").octstr())});exports.EncryptedPrivateKey=EncryptedPrivateKeyInfo;var DSAPrivateKey=asn1.define(\"DSAPrivateKey\",function(){this.seq().obj(this.key(\"version\").int(),this.key(\"p\").int(),this.key(\"q\").int(),this.key(\"g\").int(),this.key(\"pub_key\").int(),this.key(\"priv_key\").int())});exports.DSAPrivateKey=DSAPrivateKey;exports.DSAparam=asn1.define(\"DSAparam\",function(){this.int()});var ECParameters=asn1.define(\"ECParameters\",function(){this.choice({namedCurve:this.objid()})}),ECPrivateKey=asn1.define(\"ECPrivateKey\",function(){this.seq().obj(this.key(\"version\").int(),this.key(\"privateKey\").octstr(),this.key(\"parameters\").optional().explicit(0).use(ECParameters),this.key(\"publicKey\").optional().explicit(1).bitstr())});exports.ECPrivateKey=ECPrivateKey;exports.signature=asn1.define(\"signature\",function(){this.seq().obj(this.key(\"r\").int(),this.key(\"s\").int())})});var require_aesid=__commonJS((exports,module)=>{module.exports={\"2.16.840.1.101.3.4.1.1\":\"aes-128-ecb\",\"2.16.840.1.101.3.4.1.2\":\"aes-128-cbc\",\"2.16.840.1.101.3.4.1.3\":\"aes-128-ofb\",\"2.16.840.1.101.3.4.1.4\":\"aes-128-cfb\",\"2.16.840.1.101.3.4.1.21\":\"aes-192-ecb\",\"2.16.840.1.101.3.4.1.22\":\"aes-192-cbc\",\"2.16.840.1.101.3.4.1.23\":\"aes-192-ofb\",\"2.16.840.1.101.3.4.1.24\":\"aes-192-cfb\",\"2.16.840.1.101.3.4.1.41\":\"aes-256-ecb\",\"2.16.840.1.101.3.4.1.42\":\"aes-256-cbc\",\"2.16.840.1.101.3.4.1.43\":\"aes-256-ofb\",\"2.16.840.1.101.3.4.1.44\":\"aes-256-cfb\"}});var require_hash_base=__commonJS((exports,module)=>{var Buffer2=require_safe_buffer().Buffer,Transform=require(\"stream\").Transform,inherits=require_inherits();function HashBase(blockSize){Transform.call(this),this._block=Buffer2.allocUnsafe(blockSize),this._blockSize=blockSize,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}inherits(HashBase,Transform);HashBase.prototype._transform=function(chunk,encoding,callback){var error=null;try{this.update(chunk,encoding)}catch(err){error=err}callback(error)};HashBase.prototype._flush=function(callback){var error=null;try{this.push(this.digest())}catch(err){error=err}callback(error)};var useUint8Array=typeof Uint8Array<\"u\",useArrayBuffer=typeof ArrayBuffer<\"u\"&&typeof Uint8Array<\"u\"&&ArrayBuffer.isView&&(Buffer2.prototype instanceof Uint8Array||Buffer2.TYPED_ARRAY_SUPPORT);function toBuffer(data,encoding){if(data instanceof Buffer2)return data;if(typeof data===\"string\")return Buffer2.from(data,encoding);if(useArrayBuffer&&ArrayBuffer.isView(data)){if(data.byteLength===0)return Buffer2.alloc(0);var res=Buffer2.from(data.buffer,data.byteOffset,data.byteLength);if(res.byteLength===data.byteLength)return res}if(useUint8Array&&data instanceof Uint8Array)return Buffer2.from(data);if(Buffer2.isBuffer(data)&&data.constructor&&typeof data.constructor.isBuffer===\"function\"&&data.constructor.isBuffer(data))return Buffer2.from(data);throw TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}HashBase.prototype.update=function(data,encoding){if(this._finalized)throw Error(\"Digest already called\");data=toBuffer(data,encoding);var block=this._block,offset=0;while(this._blockOffset+data.length-offset>=this._blockSize){for(var i=this._blockOffset;i0;++j)if(this._length[j]+=carry,carry=this._length[j]/4294967296|0,carry>0)this._length[j]-=4294967296*carry;return this};HashBase.prototype._update=function(){throw Error(\"_update is not implemented\")};HashBase.prototype.digest=function(encoding){if(this._finalized)throw Error(\"Digest already called\");this._finalized=!0;var digest=this._digest();if(encoding!==void 0)digest=digest.toString(encoding);this._block.fill(0),this._blockOffset=0;for(var i=0;i<4;++i)this._length[i]=0;return digest};HashBase.prototype._digest=function(){throw Error(\"_digest is not implemented\")};module.exports=HashBase});var require_md5=__commonJS((exports,module)=>{var inherits=require_inherits(),HashBase=require_hash_base(),Buffer2=require_safe_buffer().Buffer,ARRAY16=Array(16);function MD5(){HashBase.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}inherits(MD5,HashBase);MD5.prototype._update=function(){var M=ARRAY16;for(var i=0;i<16;++i)M[i]=this._block.readInt32LE(i*4);var a=this._a,b=this._b,c=this._c,d=this._d;a=fnF(a,b,c,d,M[0],3614090360,7),d=fnF(d,a,b,c,M[1],3905402710,12),c=fnF(c,d,a,b,M[2],606105819,17),b=fnF(b,c,d,a,M[3],3250441966,22),a=fnF(a,b,c,d,M[4],4118548399,7),d=fnF(d,a,b,c,M[5],1200080426,12),c=fnF(c,d,a,b,M[6],2821735955,17),b=fnF(b,c,d,a,M[7],4249261313,22),a=fnF(a,b,c,d,M[8],1770035416,7),d=fnF(d,a,b,c,M[9],2336552879,12),c=fnF(c,d,a,b,M[10],4294925233,17),b=fnF(b,c,d,a,M[11],2304563134,22),a=fnF(a,b,c,d,M[12],1804603682,7),d=fnF(d,a,b,c,M[13],4254626195,12),c=fnF(c,d,a,b,M[14],2792965006,17),b=fnF(b,c,d,a,M[15],1236535329,22),a=fnG(a,b,c,d,M[1],4129170786,5),d=fnG(d,a,b,c,M[6],3225465664,9),c=fnG(c,d,a,b,M[11],643717713,14),b=fnG(b,c,d,a,M[0],3921069994,20),a=fnG(a,b,c,d,M[5],3593408605,5),d=fnG(d,a,b,c,M[10],38016083,9),c=fnG(c,d,a,b,M[15],3634488961,14),b=fnG(b,c,d,a,M[4],3889429448,20),a=fnG(a,b,c,d,M[9],568446438,5),d=fnG(d,a,b,c,M[14],3275163606,9),c=fnG(c,d,a,b,M[3],4107603335,14),b=fnG(b,c,d,a,M[8],1163531501,20),a=fnG(a,b,c,d,M[13],2850285829,5),d=fnG(d,a,b,c,M[2],4243563512,9),c=fnG(c,d,a,b,M[7],1735328473,14),b=fnG(b,c,d,a,M[12],2368359562,20),a=fnH(a,b,c,d,M[5],4294588738,4),d=fnH(d,a,b,c,M[8],2272392833,11),c=fnH(c,d,a,b,M[11],1839030562,16),b=fnH(b,c,d,a,M[14],4259657740,23),a=fnH(a,b,c,d,M[1],2763975236,4),d=fnH(d,a,b,c,M[4],1272893353,11),c=fnH(c,d,a,b,M[7],4139469664,16),b=fnH(b,c,d,a,M[10],3200236656,23),a=fnH(a,b,c,d,M[13],681279174,4),d=fnH(d,a,b,c,M[0],3936430074,11),c=fnH(c,d,a,b,M[3],3572445317,16),b=fnH(b,c,d,a,M[6],76029189,23),a=fnH(a,b,c,d,M[9],3654602809,4),d=fnH(d,a,b,c,M[12],3873151461,11),c=fnH(c,d,a,b,M[15],530742520,16),b=fnH(b,c,d,a,M[2],3299628645,23),a=fnI(a,b,c,d,M[0],4096336452,6),d=fnI(d,a,b,c,M[7],1126891415,10),c=fnI(c,d,a,b,M[14],2878612391,15),b=fnI(b,c,d,a,M[5],4237533241,21),a=fnI(a,b,c,d,M[12],1700485571,6),d=fnI(d,a,b,c,M[3],2399980690,10),c=fnI(c,d,a,b,M[10],4293915773,15),b=fnI(b,c,d,a,M[1],2240044497,21),a=fnI(a,b,c,d,M[8],1873313359,6),d=fnI(d,a,b,c,M[15],4264355552,10),c=fnI(c,d,a,b,M[6],2734768916,15),b=fnI(b,c,d,a,M[13],1309151649,21),a=fnI(a,b,c,d,M[4],4149444226,6),d=fnI(d,a,b,c,M[11],3174756917,10),c=fnI(c,d,a,b,M[2],718787259,15),b=fnI(b,c,d,a,M[9],3951481745,21),this._a=this._a+a|0,this._b=this._b+b|0,this._c=this._c+c|0,this._d=this._d+d|0};MD5.prototype._digest=function(){if(this._block[this._blockOffset++]=128,this._blockOffset>56)this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0;this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var buffer=Buffer2.allocUnsafe(16);return buffer.writeInt32LE(this._a,0),buffer.writeInt32LE(this._b,4),buffer.writeInt32LE(this._c,8),buffer.writeInt32LE(this._d,12),buffer};function rotl(x,n){return x<>>32-n}function fnF(a,b,c,d,m,k,s){return rotl(a+(b&c|~b&d)+m+k|0,s)+b|0}function fnG(a,b,c,d,m,k,s){return rotl(a+(b&d|c&~d)+m+k|0,s)+b|0}function fnH(a,b,c,d,m,k,s){return rotl(a+(b^c^d)+m+k|0,s)+b|0}function fnI(a,b,c,d,m,k,s){return rotl(a+(c^(b|~d))+m+k|0,s)+b|0}module.exports=MD5});var require_evp_bytestokey=__commonJS((exports,module)=>{var Buffer2=require_safe_buffer().Buffer,MD5=require_md5();function EVP_BytesToKey(password,salt,keyBits,ivLen){if(!Buffer2.isBuffer(password))password=Buffer2.from(password,\"binary\");if(salt){if(!Buffer2.isBuffer(salt))salt=Buffer2.from(salt,\"binary\");if(salt.length!==8)throw RangeError(\"salt should be Buffer with 8 byte length\")}var keyLen=keyBits/8,key=Buffer2.alloc(keyLen),iv=Buffer2.alloc(ivLen||0),tmp=Buffer2.alloc(0);while(keyLen>0||ivLen>0){var hash=new MD5;if(hash.update(tmp),hash.update(password),salt)hash.update(salt);tmp=hash.digest();var used=0;if(keyLen>0){var keyStart=key.length-keyLen;used=Math.min(keyLen,tmp.length),tmp.copy(key,keyStart,0,used),keyLen-=used}if(used0){var ivStart=iv.length-ivLen,length=Math.min(ivLen,tmp.length-used);tmp.copy(iv,ivStart,used,used+length),ivLen-=length}}return tmp.fill(0),{key,iv}}module.exports=EVP_BytesToKey});var require_browserify_aes=__commonJS((exports)=>{var crypto2=require(\"crypto\");exports.createCipher=exports.Cipher=crypto2.createCipher;exports.createCipheriv=exports.Cipheriv=crypto2.createCipheriv;exports.createDecipher=exports.Decipher=crypto2.createDecipher;exports.createDecipheriv=exports.Decipheriv=crypto2.createDecipheriv;exports.listCiphers=exports.getCiphers=crypto2.getCiphers});var require_fixProc=__commonJS((exports,module)=>{var findProc=/Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m,startRegex=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,fullRegex=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m,evp=require_evp_bytestokey(),ciphers=require_browserify_aes(),Buffer2=require_safe_buffer().Buffer;module.exports=function(okey,password){var key=okey.toString(),match=key.match(findProc),decrypted;if(!match){var match2=key.match(fullRegex);decrypted=Buffer2.from(match2[2].replace(/[\\r\\n]/g,\"\"),\"base64\")}else{var suite=\"aes\"+match[1],iv=Buffer2.from(match[2],\"hex\"),cipherText=Buffer2.from(match[3].replace(/[\\r\\n]/g,\"\"),\"base64\"),cipherKey=evp(password,iv.slice(0,8),parseInt(match[1],10)).key,out=[],cipher=ciphers.createDecipheriv(suite,cipherKey,iv);out.push(cipher.update(cipherText)),out.push(cipher.final()),decrypted=Buffer2.concat(out)}var tag=key.match(startRegex)[1];return{tag,data:decrypted}}});var require_parse_asn1=__commonJS((exports,module)=>{var asn1=require_asn12(),aesid=require_aesid(),fixProc=require_fixProc(),ciphers=require_browserify_aes(),pbkdf2Sync=require_pbkdf2().pbkdf2Sync,Buffer2=require_safe_buffer().Buffer;function decrypt(data,password){var salt=data.algorithm.decrypt.kde.kdeparams.salt,iters=parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(),10),algo=aesid[data.algorithm.decrypt.cipher.algo.join(\".\")],iv=data.algorithm.decrypt.cipher.iv,cipherText=data.subjectPrivateKey,keylen=parseInt(algo.split(\"-\")[1],10)/8,key=pbkdf2Sync(password,salt,iters,keylen,\"sha1\"),cipher=ciphers.createDecipheriv(algo,key,iv),out=[];return out.push(cipher.update(cipherText)),out.push(cipher.final()),Buffer2.concat(out)}function parseKeys(buffer){var password;if(typeof buffer===\"object\"&&!Buffer2.isBuffer(buffer))password=buffer.passphrase,buffer=buffer.key;if(typeof buffer===\"string\")buffer=Buffer2.from(buffer);var stripped=fixProc(buffer,password),type=stripped.tag,data=stripped.data,subtype,ndata;switch(type){case\"CERTIFICATE\":ndata=asn1.certificate.decode(data,\"der\").tbsCertificate.subjectPublicKeyInfo;case\"PUBLIC KEY\":if(!ndata)ndata=asn1.PublicKey.decode(data,\"der\");switch(subtype=ndata.algorithm.algorithm.join(\".\"),subtype){case\"1.2.840.113549.1.1.1\":return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data,\"der\");case\"1.2.840.10045.2.1\":return ndata.subjectPrivateKey=ndata.subjectPublicKey,{type:\"ec\",data:ndata};case\"1.2.840.10040.4.1\":return ndata.algorithm.params.pub_key=asn1.DSAparam.decode(ndata.subjectPublicKey.data,\"der\"),{type:\"dsa\",data:ndata.algorithm.params};default:throw Error(\"unknown key id \"+subtype)}case\"ENCRYPTED PRIVATE KEY\":data=asn1.EncryptedPrivateKey.decode(data,\"der\"),data=decrypt(data,password);case\"PRIVATE KEY\":switch(ndata=asn1.PrivateKey.decode(data,\"der\"),subtype=ndata.algorithm.algorithm.join(\".\"),subtype){case\"1.2.840.113549.1.1.1\":return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey,\"der\");case\"1.2.840.10045.2.1\":return{curve:ndata.algorithm.curve,privateKey:asn1.ECPrivateKey.decode(ndata.subjectPrivateKey,\"der\").privateKey};case\"1.2.840.10040.4.1\":return ndata.algorithm.params.priv_key=asn1.DSAparam.decode(ndata.subjectPrivateKey,\"der\"),{type:\"dsa\",params:ndata.algorithm.params};default:throw Error(\"unknown key id \"+subtype)}case\"RSA PUBLIC KEY\":return asn1.RSAPublicKey.decode(data,\"der\");case\"RSA PRIVATE KEY\":return asn1.RSAPrivateKey.decode(data,\"der\");case\"DSA PRIVATE KEY\":return{type:\"dsa\",params:asn1.DSAPrivateKey.decode(data,\"der\")};case\"EC PRIVATE KEY\":return data=asn1.ECPrivateKey.decode(data,\"der\"),{curve:data.parameters.value,privateKey:data.privateKey};default:throw Error(\"unknown key type \"+type)}}parseKeys.signature=asn1.signature;module.exports=parseKeys});var require_mgf=__commonJS((exports,module)=>{var createHash=require_create_hash(),Buffer2=require_safe_buffer().Buffer;module.exports=function(seed,len){var t=Buffer2.alloc(0),i=0,c;while(t.length{module.exports=function(a,b){var len=a.length,i=-1;while(++i{(function(module2,exports2){function assert(val,msg){if(!val)throw Error(msg||\"Assertion failed\")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;if(this.negative=0,this.words=null,this.length=0,this.red=null,number!==null){if(base===\"le\"||base===\"be\")endian=base,base=10;this._init(number||0,base||10,endian||\"be\")}}if(typeof module2===\"object\")module2.exports=BN;else exports2.BN=BN;BN.BN=BN,BN.wordSize=26;var Buffer2;try{if(typeof window<\"u\"&&typeof window.Buffer<\"u\")Buffer2=window.Buffer;else Buffer2=require(\"buffer\").Buffer}catch(e){}BN.isBN=function(num){if(num instanceof BN)return!0;return num!==null&&typeof num===\"object\"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){if(left.cmp(right)>0)return left;return right},BN.min=function(left,right){if(left.cmp(right)<0)return left;return right},BN.prototype._init=function(number,base,endian){if(typeof number===\"number\")return this._initNumber(number,base,endian);if(typeof number===\"object\")return this._initArray(number,base,endian);if(base===\"hex\")base=16;assert(base===(base|0)&&base>=2&&base<=36),number=number.toString().replace(/\\s+/g,\"\");var start=0;if(number[0]===\"-\")start++,this.negative=1;if(start=0;i-=3)if(w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,off+=24,off>=26)off-=26,j++}else if(endian===\"le\"){for(i=0,j=0;i>>26-off&67108863,off+=24,off>=26)off-=26,j++}return this.strip()};function parseHex4Bits(string,index){var c=string.charCodeAt(index);if(c>=65&&c<=70)return c-55;else if(c>=97&&c<=102)return c-87;else return c-48&15}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);if(index-1>=lowerBound)r|=parseHex4Bits(string,index-1)<<4;return r}BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=Array(this.length);for(var i=0;i=start;i-=2)if(w=parseHexByte(number,start,i)<=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8;else{var parseLength=number.length-start;for(i=parseLength%2===0?start+1:start;i=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8}this.strip()};function parseBase(str,start,end,mul){var r=0,len=Math.min(str.length,end);for(var i=start;i=49)r+=c-49+10;else if(c>=17)r+=c-17+10;else r+=c}return r}BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0;for(var i=start;i1&&this.words[this.length-1]===0)this.length--;return this._normSign()},BN.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},BN.prototype.inspect=function(){return(this.red?\"\"};var zeros=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(BN.prototype.toString=function(base,padding){base=base||10,padding=padding|0||1;var out;if(base===16||base===\"hex\"){out=\"\";var off=0,carry=0;for(var i=0;i>>24-off&16777215,off+=2,off>=26)off-=26,i--;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out=\"\";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modn(groupBase).toString(base);if(c=c.idivn(groupBase),!c.isZero())out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.isZero())out=\"0\"+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}assert(!1,\"Base should be between 2 and 36\")},BN.prototype.toNumber=function(){var ret=this.words[0];if(this.length===2)ret+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)ret+=4503599627370496+this.words[1]*67108864;else if(this.length>2)assert(!1,\"Number can only safely store up to 53 bits\");return this.negative!==0?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(typeof Buffer2<\"u\"),this.toArrayLike(Buffer2,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,\"byte array longer than desired length\"),assert(reqLength>0,\"Requested array length <= 0\"),this.strip();var littleEndian=endian===\"le\",res=new ArrayType(reqLength),b,i,q=this.clone();if(!littleEndian){for(i=0;i=4096)r+=13,t>>>=13;if(t>=64)r+=7,t>>>=7;if(t>=8)r+=4,t>>>=4;if(t>=2)r+=2,t>>>=2;return r+t};BN.prototype._zeroBits=function(w){if(w===0)return 26;var t=w,r=0;if((t&8191)===0)r+=13,t>>>=13;if((t&127)===0)r+=7,t>>>=7;if((t&15)===0)r+=4,t>>>=4;if((t&3)===0)r+=2,t>>>=2;if((t&1)===0)r++;return r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=Array(num.bitLength());for(var bit=0;bit>>wbit}return w}BN.prototype.zeroBits=function(){if(this.isZero())return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);return num.clone().ior(this)},BN.prototype.uor=function(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;if(this.length>num.length)b=num;else b=this;for(var i=0;inum.length)return this.clone().iand(num);return num.clone().iand(this)},BN.prototype.uand=function(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;if(this.length>num.length)a=this,b=num;else a=num,b=this;for(var i=0;inum.length)return this.clone().ixor(num);return num.clone().ixor(this)},BN.prototype.uxor=function(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert(typeof width===\"number\"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0,bitsLeft=width%26;if(this._expand(bytesNeeded),bitsLeft>0)bytesNeeded--;for(var i=0;i0)this.words[i]=~this.words[i]&67108863>>26-bitsLeft;return this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert(typeof bit===\"number\"&&bit>=0);var off=bit/26|0,wbit=bit%26;if(this._expand(off+1),val)this.words[off]=this.words[off]|1<num.length)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>>26;for(;carry!==0&&i>>26;if(this.length=a.length,carry!==0)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length)return this.clone().iadd(num);return num.clone().iadd(this)},BN.prototype.isub=function(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var cmp=this.cmp(num);if(cmp===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,b;if(cmp>0)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>26,this.words[i]=r&67108863;for(;carry!==0&&i>26,this.words[i]=r&67108863;if(carry===0&&i>>26,rword=carry&67108863,maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self2.length+1);j<=maxJ;j++){var i=k-j|0;a=self2.words[i]|0,b=num.words[j]|0,r=a*b+rword,ncarry+=r/67108864|0,rword=r&67108863}out.words[k]=rword|0,carry=ncarry|0}if(carry!==0)out.words[k]=carry|0;else out.length--;return out.strip()}var comb10MulTo=function(self2,num,out){var a=self2.words,b=num.words,o=out.words,c=0,lo,mid,hi,a0=a[0]|0,al0=a0&8191,ah0=a0>>>13,a1=a[1]|0,al1=a1&8191,ah1=a1>>>13,a2=a[2]|0,al2=a2&8191,ah2=a2>>>13,a3=a[3]|0,al3=a3&8191,ah3=a3>>>13,a4=a[4]|0,al4=a4&8191,ah4=a4>>>13,a5=a[5]|0,al5=a5&8191,ah5=a5>>>13,a6=a[6]|0,al6=a6&8191,ah6=a6>>>13,a7=a[7]|0,al7=a7&8191,ah7=a7>>>13,a8=a[8]|0,al8=a8&8191,ah8=a8>>>13,a9=a[9]|0,al9=a9&8191,ah9=a9>>>13,b0=b[0]|0,bl0=b0&8191,bh0=b0>>>13,b1=b[1]|0,bl1=b1&8191,bh1=b1>>>13,b2=b[2]|0,bl2=b2&8191,bh2=b2>>>13,b3=b[3]|0,bl3=b3&8191,bh3=b3>>>13,b4=b[4]|0,bl4=b4&8191,bh4=b4>>>13,b5=b[5]|0,bl5=b5&8191,bh5=b5>>>13,b6=b[6]|0,bl6=b6&8191,bh6=b6>>>13,b7=b[7]|0,bl7=b7&8191,bh7=b7>>>13,b8=b[8]|0,bl8=b8&8191,bh8=b8>>>13,b9=b[9]|0,bl9=b9&8191,bh9=b9>>>13;out.negative=self2.negative^num.negative,out.length=19,lo=Math.imul(al0,bl0),mid=Math.imul(al0,bh0),mid=mid+Math.imul(ah0,bl0)|0,hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=Math.imul(al1,bh0),mid=mid+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0),lo=lo+Math.imul(al0,bl1)|0,mid=mid+Math.imul(al0,bh1)|0,mid=mid+Math.imul(ah0,bl1)|0,hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=Math.imul(al2,bh0),mid=mid+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=mid+Math.imul(al1,bh1)|0,mid=mid+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0,lo=lo+Math.imul(al0,bl2)|0,mid=mid+Math.imul(al0,bh2)|0,mid=mid+Math.imul(ah0,bl2)|0,hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=Math.imul(al3,bh0),mid=mid+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=mid+Math.imul(al2,bh1)|0,mid=mid+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=mid+Math.imul(al1,bh2)|0,mid=mid+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0,lo=lo+Math.imul(al0,bl3)|0,mid=mid+Math.imul(al0,bh3)|0,mid=mid+Math.imul(ah0,bl3)|0,hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=Math.imul(al4,bh0),mid=mid+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=mid+Math.imul(al3,bh1)|0,mid=mid+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=mid+Math.imul(al2,bh2)|0,mid=mid+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=mid+Math.imul(al1,bh3)|0,mid=mid+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0,lo=lo+Math.imul(al0,bl4)|0,mid=mid+Math.imul(al0,bh4)|0,mid=mid+Math.imul(ah0,bl4)|0,hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=Math.imul(al5,bh0),mid=mid+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=mid+Math.imul(al4,bh1)|0,mid=mid+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=mid+Math.imul(al3,bh2)|0,mid=mid+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=mid+Math.imul(al2,bh3)|0,mid=mid+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=mid+Math.imul(al1,bh4)|0,mid=mid+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0,lo=lo+Math.imul(al0,bl5)|0,mid=mid+Math.imul(al0,bh5)|0,mid=mid+Math.imul(ah0,bl5)|0,hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=Math.imul(al6,bh0),mid=mid+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=mid+Math.imul(al5,bh1)|0,mid=mid+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=mid+Math.imul(al4,bh2)|0,mid=mid+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=mid+Math.imul(al3,bh3)|0,mid=mid+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=mid+Math.imul(al2,bh4)|0,mid=mid+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=mid+Math.imul(al1,bh5)|0,mid=mid+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0,lo=lo+Math.imul(al0,bl6)|0,mid=mid+Math.imul(al0,bh6)|0,mid=mid+Math.imul(ah0,bl6)|0,hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=Math.imul(al7,bh0),mid=mid+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=mid+Math.imul(al6,bh1)|0,mid=mid+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=mid+Math.imul(al5,bh2)|0,mid=mid+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=mid+Math.imul(al4,bh3)|0,mid=mid+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=mid+Math.imul(al3,bh4)|0,mid=mid+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=mid+Math.imul(al2,bh5)|0,mid=mid+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=mid+Math.imul(al1,bh6)|0,mid=mid+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0,lo=lo+Math.imul(al0,bl7)|0,mid=mid+Math.imul(al0,bh7)|0,mid=mid+Math.imul(ah0,bl7)|0,hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=Math.imul(al8,bh0),mid=mid+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=mid+Math.imul(al7,bh1)|0,mid=mid+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=mid+Math.imul(al6,bh2)|0,mid=mid+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=mid+Math.imul(al5,bh3)|0,mid=mid+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=mid+Math.imul(al4,bh4)|0,mid=mid+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=mid+Math.imul(al3,bh5)|0,mid=mid+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=mid+Math.imul(al2,bh6)|0,mid=mid+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=mid+Math.imul(al1,bh7)|0,mid=mid+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0,lo=lo+Math.imul(al0,bl8)|0,mid=mid+Math.imul(al0,bh8)|0,mid=mid+Math.imul(ah0,bl8)|0,hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=Math.imul(al9,bh0),mid=mid+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=mid+Math.imul(al8,bh1)|0,mid=mid+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=mid+Math.imul(al7,bh2)|0,mid=mid+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=mid+Math.imul(al6,bh3)|0,mid=mid+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=mid+Math.imul(al5,bh4)|0,mid=mid+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=mid+Math.imul(al4,bh5)|0,mid=mid+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=mid+Math.imul(al3,bh6)|0,mid=mid+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=mid+Math.imul(al2,bh7)|0,mid=mid+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=mid+Math.imul(al1,bh8)|0,mid=mid+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0,lo=lo+Math.imul(al0,bl9)|0,mid=mid+Math.imul(al0,bh9)|0,mid=mid+Math.imul(ah0,bl9)|0,hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=Math.imul(al9,bh1),mid=mid+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=mid+Math.imul(al8,bh2)|0,mid=mid+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=mid+Math.imul(al7,bh3)|0,mid=mid+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=mid+Math.imul(al6,bh4)|0,mid=mid+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=mid+Math.imul(al5,bh5)|0,mid=mid+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=mid+Math.imul(al4,bh6)|0,mid=mid+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=mid+Math.imul(al3,bh7)|0,mid=mid+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=mid+Math.imul(al2,bh8)|0,mid=mid+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0,lo=lo+Math.imul(al1,bl9)|0,mid=mid+Math.imul(al1,bh9)|0,mid=mid+Math.imul(ah1,bl9)|0,hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=Math.imul(al9,bh2),mid=mid+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=mid+Math.imul(al8,bh3)|0,mid=mid+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=mid+Math.imul(al7,bh4)|0,mid=mid+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=mid+Math.imul(al6,bh5)|0,mid=mid+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=mid+Math.imul(al5,bh6)|0,mid=mid+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=mid+Math.imul(al4,bh7)|0,mid=mid+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=mid+Math.imul(al3,bh8)|0,mid=mid+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0,lo=lo+Math.imul(al2,bl9)|0,mid=mid+Math.imul(al2,bh9)|0,mid=mid+Math.imul(ah2,bl9)|0,hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=Math.imul(al9,bh3),mid=mid+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=mid+Math.imul(al8,bh4)|0,mid=mid+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=mid+Math.imul(al7,bh5)|0,mid=mid+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=mid+Math.imul(al6,bh6)|0,mid=mid+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=mid+Math.imul(al5,bh7)|0,mid=mid+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=mid+Math.imul(al4,bh8)|0,mid=mid+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0,lo=lo+Math.imul(al3,bl9)|0,mid=mid+Math.imul(al3,bh9)|0,mid=mid+Math.imul(ah3,bl9)|0,hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=Math.imul(al9,bh4),mid=mid+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=mid+Math.imul(al8,bh5)|0,mid=mid+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=mid+Math.imul(al7,bh6)|0,mid=mid+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=mid+Math.imul(al6,bh7)|0,mid=mid+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=mid+Math.imul(al5,bh8)|0,mid=mid+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0,lo=lo+Math.imul(al4,bl9)|0,mid=mid+Math.imul(al4,bh9)|0,mid=mid+Math.imul(ah4,bl9)|0,hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=Math.imul(al9,bh5),mid=mid+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=mid+Math.imul(al8,bh6)|0,mid=mid+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=mid+Math.imul(al7,bh7)|0,mid=mid+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=mid+Math.imul(al6,bh8)|0,mid=mid+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0,lo=lo+Math.imul(al5,bl9)|0,mid=mid+Math.imul(al5,bh9)|0,mid=mid+Math.imul(ah5,bl9)|0,hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=Math.imul(al9,bh6),mid=mid+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=mid+Math.imul(al8,bh7)|0,mid=mid+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=mid+Math.imul(al7,bh8)|0,mid=mid+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0,lo=lo+Math.imul(al6,bl9)|0,mid=mid+Math.imul(al6,bh9)|0,mid=mid+Math.imul(ah6,bl9)|0,hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=Math.imul(al9,bh7),mid=mid+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=mid+Math.imul(al8,bh8)|0,mid=mid+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0,lo=lo+Math.imul(al7,bl9)|0,mid=mid+Math.imul(al7,bh9)|0,mid=mid+Math.imul(ah7,bl9)|0,hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=Math.imul(al9,bh8),mid=mid+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8),lo=lo+Math.imul(al8,bl9)|0,mid=mid+Math.imul(al8,bh9)|0,mid=mid+Math.imul(ah8,bl9)|0,hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863,lo=Math.imul(al9,bl9),mid=Math.imul(al9,bh9),mid=mid+Math.imul(ah9,bl9)|0,hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;if(c=(hi+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,c!==0)o[19]=c,out.length++;return out};if(!Math.imul)comb10MulTo=smallMulTo;function bigMulTo(self2,num,out){out.negative=num.negative^self2.negative,out.length=self2.length+num.length;var carry=0,hncarry=0;for(var k=0;k>>26)|0,hncarry+=ncarry>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}if(carry!==0)out.words[k]=carry;else out.length--;return out.strip()}function jumboMulTo(self2,num,out){var fftm=new FFTM;return fftm.mulp(self2,num,out)}BN.prototype.mulTo=function(num,out){var res,len=this.length+num.length;if(this.length===10&&num.length===10)res=comb10MulTo(this,num,out);else if(len<63)res=smallMulTo(this,num,out);else if(len<1024)res=bigMulTo(this,num,out);else res=jumboMulTo(this,num,out);return res};function FFTM(x,y){this.x=x,this.y=y}FFTM.prototype.makeRBT=function(N){var t=Array(N),l=BN.prototype._countBits(N)-1;for(var i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1)i++;return 1<>>13,rws[2*i+1]=carry&8191,carry=carry>>>13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=lo&67108863}if(carry!==0)this.words[i]=carry,this.length++;return this.length=num===0?1:this.length,this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i=0);var r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r,i;if(r!==0){var carry=0;for(i=0;i>>26-r}if(carry)this.words[i]=carry,this.length++}if(s!==0){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0);var h;if(hint)h=(hint-hint%26)/26;else h=0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s){this.length-=s;for(i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r,carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0)this.words[0]=0,this.length=1;return this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(this.negative===0),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert(typeof bit===\"number\"&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(this.negative===0,\"imaskn works only with positive numbers\"),this.length<=s)return this;if(r!==0)s++;if(this.length=Math.min(s,this.length),r!==0){var mask=67108863^67108863>>>r<=67108864;i++)if(this.words[i]-=67108864,i===this.length-1)this.words[i+1]=1;else this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert(typeof num===\"number\"),assert(num<67108864),num<0)return this.iaddn(-num);if(this.negative!==0)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=w&67108863}for(;i>26,this.words[i+shift]=w&67108863;if(carry===0)return this.strip();assert(carry===-1),carry=0;for(i=0;i>26,this.words[i]=w&67108863;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=this.length-num.length,a=this.clone(),b=num,bhi=b.words[b.length-1]|0,bhiBits=this._countBits(bhi);if(shift=26-bhiBits,shift!==0)b=b.ushln(shift),a.iushln(shift),bhi=b.words[b.length-1]|0;var m=a.length-b.length,q;if(mode!==\"mod\"){q=new BN(null),q.length=m+1,q.words=Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);while(a.negative!==0)if(qj--,a.negative=0,a._ishlnsubmul(b,1,j),!a.isZero())a.negative^=1;if(q)q.words[j]=qj}if(q)q.strip();if(a.strip(),mode!==\"div\"&&shift!==0)a.iushrn(shift);return{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){if(assert(!num.isZero()),this.isZero())return{div:new BN(0),mod:new BN(0)};var div,mod,res;if(this.negative!==0&&num.negative===0){if(res=this.neg().divmod(num,mode),mode!==\"mod\")div=res.div.neg();if(mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.iadd(num)}return{div,mod}}if(this.negative===0&&num.negative!==0){if(res=this.divmod(num.neg(),mode),mode!==\"mod\")div=res.div.neg();return{div,mod:res.mod}}if((this.negative&num.negative)!==0){if(res=this.neg().divmod(num.neg(),mode),mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.isub(num)}return{div:res.div,mod}}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode===\"div\")return{div:this.divn(num.words[0]),mod:null};if(mode===\"mod\")return{div:null,mod:new BN(this.modn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)},BN.prototype.div=function(num){return this.divmod(num,\"div\",!1).div},BN.prototype.mod=function(num){return this.divmod(num,\"mod\",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,\"mod\",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);var p=67108864%num,acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+(this.words[i]|0))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(p.negative===0),assert(!p.isZero());var x=this,y=p.clone();if(x.negative!==0)x=x.umod(p);else x=x.clone();var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;while(x.isEven()&&y.isEven())x.iushrn(1),y.iushrn(1),++g;var yp=y.clone(),xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd())A.iadd(yp),B.isub(xp);A.iushrn(1),B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd())C.iadd(yp),D.isub(xp);C.iushrn(1),D.iushrn(1)}}if(x.cmp(y)>=0)x.isub(y),A.isub(C),B.isub(D);else y.isub(x),C.isub(A),D.isub(B)}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(p.negative===0),assert(!p.isZero());var a=this,b=p.clone();if(a.negative!==0)a=a.umod(p);else a=a.clone();var x1=new BN(1),x2=new BN(0),delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd())x1.iadd(delta);x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd())x2.iadd(delta);x2.iushrn(1)}}if(a.cmp(b)>=0)a.isub(b),x1.isub(x2);else b.isub(a),x2.isub(x1)}var res;if(a.cmpn(1)===0)res=x1;else res=x2;if(res.cmpn(0)<0)res.iadd(p);return res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);do{while(a.isEven())a.iushrn(1);while(b.isEven())b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(r===0||b.cmpn(1)===0)break;a.isub(b)}while(!0);return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return(this.words[0]&1)===0},BN.prototype.isOdd=function(){return(this.words[0]&1)===1},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert(typeof bit===\"number\");var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}if(carry!==0)this.words[i]=carry,this.length++;return this},BN.prototype.isZero=function(){return this.length===1&&this.words[0]===0},BN.prototype.cmpn=function(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this.strip();var res;if(this.length>1)res=1;else{if(negative)num=-num;assert(num<=67108863,\"Number is too big\");var w=this.words[0]|0;res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=this.words[i]|0,b=num.words[i]|0;if(a===b)continue;if(ab)res=1;break}return res},BN.prototype.gtn=function(num){return this.cmpn(num)===1},BN.prototype.gt=function(num){return this.cmp(num)===1},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return this.cmpn(num)===-1},BN.prototype.lt=function(num){return this.cmp(num)===-1},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return this.cmpn(num)===0},BN.prototype.eq=function(num){return this.cmp(num)===0},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),assert(this.negative===0,\"red works only with positives\"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,\"redAdd works only with red numbers\"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,\"redSub works only with red numbers\"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,\"redISub works only with red numbers\"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,\"redShl works only with red numbers\"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var r=num,rlen;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),rlen=r.bitLength();while(rlen>this.n);var cmp=rlen0)r.isub(this.p);else if(r.strip!==void 0)r.strip();else r._strip();return r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)};function K256(){MPrime.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}inherits(K256,MPrime),K256.prototype.split=function(input,output){var mask=4194303,outLen=Math.min(input.length,9);for(var i=0;i>>22,prev=next}if(prev>>>=22,input.words[i-10]=prev,prev===0&&input.length>10)input.length-=10;else input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;var lo=0;for(var i=0;i>>=26,num.words[i]=lo,carry=hi}if(carry!==0)num.words[num.length++]=carry;return num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if(name===\"k256\")prime=new K256;else if(name===\"p224\")prime=new P224;else if(name===\"p192\")prime=new P192;else if(name===\"p25519\")prime=new P25519;else throw Error(\"Unknown prime \"+name);return primes[name]=prime,prime};function Red(m){if(typeof m===\"string\"){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),\"modulus must be greater than 1\"),this.m=m,this.prime=null}Red.prototype._verify1=function(a){assert(a.negative===0,\"red works only with positives\"),assert(a.red,\"red works only with red numbers\")},Red.prototype._verify2=function(a,b){assert((a.negative|b.negative)===0,\"red works only with positives\"),assert(a.red&&a.red===b.red,\"red works only with red numbers\")},Red.prototype.imod=function(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){if(a.isZero())return a.clone();return this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2===1),mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1),s=0;while(!q.isZero()&&q.andln(1)===0)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0])res=this.sqr(res);if(bit===0&¤t===0){currentLen=0;continue}if(current<<=1,current|=bit,currentLen++,currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]),currentLen=0,current=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)};function Mont(m){if(Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.invm=function(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module>\"u\"||module,exports)});var require_withPublic=__commonJS((exports,module)=>{var BN=require_bn4(),Buffer2=require_safe_buffer().Buffer;function withPublic(paddedMsg,key){return Buffer2.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray())}module.exports=withPublic});var require_bn5=__commonJS((exports,module)=>{(function(module2,exports2){function assert(val,msg){if(!val)throw Error(msg||\"Assertion failed\")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;if(this.negative=0,this.words=null,this.length=0,this.red=null,number!==null){if(base===\"le\"||base===\"be\")endian=base,base=10;this._init(number||0,base||10,endian||\"be\")}}if(typeof module2===\"object\")module2.exports=BN;else exports2.BN=BN;BN.BN=BN,BN.wordSize=26;var Buffer2;try{if(typeof window<\"u\"&&typeof window.Buffer<\"u\")Buffer2=window.Buffer;else Buffer2=require(\"buffer\").Buffer}catch(e){}BN.isBN=function(num){if(num instanceof BN)return!0;return num!==null&&typeof num===\"object\"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){if(left.cmp(right)>0)return left;return right},BN.min=function(left,right){if(left.cmp(right)<0)return left;return right},BN.prototype._init=function(number,base,endian){if(typeof number===\"number\")return this._initNumber(number,base,endian);if(typeof number===\"object\")return this._initArray(number,base,endian);if(base===\"hex\")base=16;assert(base===(base|0)&&base>=2&&base<=36),number=number.toString().replace(/\\s+/g,\"\");var start=0;if(number[0]===\"-\")start++,this.negative=1;if(start=0;i-=3)if(w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,off+=24,off>=26)off-=26,j++}else if(endian===\"le\"){for(i=0,j=0;i>>26-off&67108863,off+=24,off>=26)off-=26,j++}return this._strip()};function parseHex4Bits(string,index){var c=string.charCodeAt(index);if(c>=48&&c<=57)return c-48;else if(c>=65&&c<=70)return c-55;else if(c>=97&&c<=102)return c-87;else assert(!1,\"Invalid character in \"+string)}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);if(index-1>=lowerBound)r|=parseHex4Bits(string,index-1)<<4;return r}BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=Array(this.length);for(var i=0;i=start;i-=2)if(w=parseHexByte(number,start,i)<=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8;else{var parseLength=number.length-start;for(i=parseLength%2===0?start+1:start;i=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8}this._strip()};function parseBase(str,start,end,mul){var r=0,b=0,len=Math.min(str.length,end);for(var i=start;i=49)b=c-49+10;else if(c>=17)b=c-17+10;else b=c;assert(c>=0&&b1&&this.words[this.length-1]===0)this.length--;return this._normSign()},BN.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},typeof Symbol<\"u\"&&typeof Symbol.for===\"function\")try{BN.prototype[Symbol.for(\"nodejs.util.inspect.custom\")]=inspect}catch(e){BN.prototype.inspect=inspect}else BN.prototype.inspect=inspect;function inspect(){return(this.red?\"\"}var zeros=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(BN.prototype.toString=function(base,padding){base=base||10,padding=padding|0||1;var out;if(base===16||base===\"hex\"){out=\"\";var off=0,carry=0;for(var i=0;i>>24-off&16777215,off+=2,off>=26)off-=26,i--;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out=\"\";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modrn(groupBase).toString(base);if(c=c.idivn(groupBase),!c.isZero())out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.isZero())out=\"0\"+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}assert(!1,\"Base should be between 2 and 36\")},BN.prototype.toNumber=function(){var ret=this.words[0];if(this.length===2)ret+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)ret+=4503599627370496+this.words[1]*67108864;else if(this.length>2)assert(!1,\"Number can only safely store up to 53 bits\");return this.negative!==0?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16,2)},Buffer2)BN.prototype.toBuffer=function(endian,length){return this.toArrayLike(Buffer2,endian,length)};BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)};var allocate=function(ArrayType,size){if(ArrayType.allocUnsafe)return ArrayType.allocUnsafe(size);return new ArrayType(size)};if(BN.prototype.toArrayLike=function(ArrayType,endian,length){this._strip();var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,\"byte array longer than desired length\"),assert(reqLength>0,\"Requested array length <= 0\");var res=allocate(ArrayType,reqLength),postfix=endian===\"le\"?\"LE\":\"BE\";return this[\"_toArrayLike\"+postfix](res,byteLength),res},BN.prototype._toArrayLikeLE=function(res,byteLength){var position=0,carry=0;for(var i=0,shift=0;i>8&255;if(position>16&255;if(shift===6){if(position>24&255;carry=0,shift=0}else carry=word>>>24,shift+=2}if(position=0)res[position--]=word>>8&255;if(position>=0)res[position--]=word>>16&255;if(shift===6){if(position>=0)res[position--]=word>>24&255;carry=0,shift=0}else carry=word>>>24,shift+=2}if(position>=0){res[position--]=carry;while(position>=0)res[position--]=0}},Math.clz32)BN.prototype._countBits=function(w){return 32-Math.clz32(w)};else BN.prototype._countBits=function(w){var t=w,r=0;if(t>=4096)r+=13,t>>>=13;if(t>=64)r+=7,t>>>=7;if(t>=8)r+=4,t>>>=4;if(t>=2)r+=2,t>>>=2;return r+t};BN.prototype._zeroBits=function(w){if(w===0)return 26;var t=w,r=0;if((t&8191)===0)r+=13,t>>>=13;if((t&127)===0)r+=7,t>>>=7;if((t&15)===0)r+=4,t>>>=4;if((t&3)===0)r+=2,t>>>=2;if((t&1)===0)r++;return r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=Array(num.bitLength());for(var bit=0;bit>>wbit&1}return w}BN.prototype.zeroBits=function(){if(this.isZero())return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);return num.clone().ior(this)},BN.prototype.uor=function(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;if(this.length>num.length)b=num;else b=this;for(var i=0;inum.length)return this.clone().iand(num);return num.clone().iand(this)},BN.prototype.uand=function(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;if(this.length>num.length)a=this,b=num;else a=num,b=this;for(var i=0;inum.length)return this.clone().ixor(num);return num.clone().ixor(this)},BN.prototype.uxor=function(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert(typeof width===\"number\"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0,bitsLeft=width%26;if(this._expand(bytesNeeded),bitsLeft>0)bytesNeeded--;for(var i=0;i0)this.words[i]=~this.words[i]&67108863>>26-bitsLeft;return this._strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert(typeof bit===\"number\"&&bit>=0);var off=bit/26|0,wbit=bit%26;if(this._expand(off+1),val)this.words[off]=this.words[off]|1<num.length)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>>26;for(;carry!==0&&i>>26;if(this.length=a.length,carry!==0)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length)return this.clone().iadd(num);return num.clone().iadd(this)},BN.prototype.isub=function(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var cmp=this.cmp(num);if(cmp===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,b;if(cmp>0)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>26,this.words[i]=r&67108863;for(;carry!==0&&i>26,this.words[i]=r&67108863;if(carry===0&&i>>26,rword=carry&67108863,maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self2.length+1);j<=maxJ;j++){var i=k-j|0;a=self2.words[i]|0,b=num.words[j]|0,r=a*b+rword,ncarry+=r/67108864|0,rword=r&67108863}out.words[k]=rword|0,carry=ncarry|0}if(carry!==0)out.words[k]=carry|0;else out.length--;return out._strip()}var comb10MulTo=function(self2,num,out){var a=self2.words,b=num.words,o=out.words,c=0,lo,mid,hi,a0=a[0]|0,al0=a0&8191,ah0=a0>>>13,a1=a[1]|0,al1=a1&8191,ah1=a1>>>13,a2=a[2]|0,al2=a2&8191,ah2=a2>>>13,a3=a[3]|0,al3=a3&8191,ah3=a3>>>13,a4=a[4]|0,al4=a4&8191,ah4=a4>>>13,a5=a[5]|0,al5=a5&8191,ah5=a5>>>13,a6=a[6]|0,al6=a6&8191,ah6=a6>>>13,a7=a[7]|0,al7=a7&8191,ah7=a7>>>13,a8=a[8]|0,al8=a8&8191,ah8=a8>>>13,a9=a[9]|0,al9=a9&8191,ah9=a9>>>13,b0=b[0]|0,bl0=b0&8191,bh0=b0>>>13,b1=b[1]|0,bl1=b1&8191,bh1=b1>>>13,b2=b[2]|0,bl2=b2&8191,bh2=b2>>>13,b3=b[3]|0,bl3=b3&8191,bh3=b3>>>13,b4=b[4]|0,bl4=b4&8191,bh4=b4>>>13,b5=b[5]|0,bl5=b5&8191,bh5=b5>>>13,b6=b[6]|0,bl6=b6&8191,bh6=b6>>>13,b7=b[7]|0,bl7=b7&8191,bh7=b7>>>13,b8=b[8]|0,bl8=b8&8191,bh8=b8>>>13,b9=b[9]|0,bl9=b9&8191,bh9=b9>>>13;out.negative=self2.negative^num.negative,out.length=19,lo=Math.imul(al0,bl0),mid=Math.imul(al0,bh0),mid=mid+Math.imul(ah0,bl0)|0,hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=Math.imul(al1,bh0),mid=mid+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0),lo=lo+Math.imul(al0,bl1)|0,mid=mid+Math.imul(al0,bh1)|0,mid=mid+Math.imul(ah0,bl1)|0,hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=Math.imul(al2,bh0),mid=mid+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=mid+Math.imul(al1,bh1)|0,mid=mid+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0,lo=lo+Math.imul(al0,bl2)|0,mid=mid+Math.imul(al0,bh2)|0,mid=mid+Math.imul(ah0,bl2)|0,hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=Math.imul(al3,bh0),mid=mid+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=mid+Math.imul(al2,bh1)|0,mid=mid+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=mid+Math.imul(al1,bh2)|0,mid=mid+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0,lo=lo+Math.imul(al0,bl3)|0,mid=mid+Math.imul(al0,bh3)|0,mid=mid+Math.imul(ah0,bl3)|0,hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=Math.imul(al4,bh0),mid=mid+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=mid+Math.imul(al3,bh1)|0,mid=mid+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=mid+Math.imul(al2,bh2)|0,mid=mid+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=mid+Math.imul(al1,bh3)|0,mid=mid+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0,lo=lo+Math.imul(al0,bl4)|0,mid=mid+Math.imul(al0,bh4)|0,mid=mid+Math.imul(ah0,bl4)|0,hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=Math.imul(al5,bh0),mid=mid+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=mid+Math.imul(al4,bh1)|0,mid=mid+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=mid+Math.imul(al3,bh2)|0,mid=mid+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=mid+Math.imul(al2,bh3)|0,mid=mid+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=mid+Math.imul(al1,bh4)|0,mid=mid+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0,lo=lo+Math.imul(al0,bl5)|0,mid=mid+Math.imul(al0,bh5)|0,mid=mid+Math.imul(ah0,bl5)|0,hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=Math.imul(al6,bh0),mid=mid+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=mid+Math.imul(al5,bh1)|0,mid=mid+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=mid+Math.imul(al4,bh2)|0,mid=mid+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=mid+Math.imul(al3,bh3)|0,mid=mid+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=mid+Math.imul(al2,bh4)|0,mid=mid+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=mid+Math.imul(al1,bh5)|0,mid=mid+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0,lo=lo+Math.imul(al0,bl6)|0,mid=mid+Math.imul(al0,bh6)|0,mid=mid+Math.imul(ah0,bl6)|0,hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=Math.imul(al7,bh0),mid=mid+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=mid+Math.imul(al6,bh1)|0,mid=mid+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=mid+Math.imul(al5,bh2)|0,mid=mid+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=mid+Math.imul(al4,bh3)|0,mid=mid+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=mid+Math.imul(al3,bh4)|0,mid=mid+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=mid+Math.imul(al2,bh5)|0,mid=mid+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=mid+Math.imul(al1,bh6)|0,mid=mid+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0,lo=lo+Math.imul(al0,bl7)|0,mid=mid+Math.imul(al0,bh7)|0,mid=mid+Math.imul(ah0,bl7)|0,hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=Math.imul(al8,bh0),mid=mid+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=mid+Math.imul(al7,bh1)|0,mid=mid+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=mid+Math.imul(al6,bh2)|0,mid=mid+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=mid+Math.imul(al5,bh3)|0,mid=mid+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=mid+Math.imul(al4,bh4)|0,mid=mid+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=mid+Math.imul(al3,bh5)|0,mid=mid+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=mid+Math.imul(al2,bh6)|0,mid=mid+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=mid+Math.imul(al1,bh7)|0,mid=mid+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0,lo=lo+Math.imul(al0,bl8)|0,mid=mid+Math.imul(al0,bh8)|0,mid=mid+Math.imul(ah0,bl8)|0,hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=Math.imul(al9,bh0),mid=mid+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=mid+Math.imul(al8,bh1)|0,mid=mid+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=mid+Math.imul(al7,bh2)|0,mid=mid+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=mid+Math.imul(al6,bh3)|0,mid=mid+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=mid+Math.imul(al5,bh4)|0,mid=mid+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=mid+Math.imul(al4,bh5)|0,mid=mid+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=mid+Math.imul(al3,bh6)|0,mid=mid+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=mid+Math.imul(al2,bh7)|0,mid=mid+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=mid+Math.imul(al1,bh8)|0,mid=mid+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0,lo=lo+Math.imul(al0,bl9)|0,mid=mid+Math.imul(al0,bh9)|0,mid=mid+Math.imul(ah0,bl9)|0,hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=Math.imul(al9,bh1),mid=mid+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=mid+Math.imul(al8,bh2)|0,mid=mid+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=mid+Math.imul(al7,bh3)|0,mid=mid+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=mid+Math.imul(al6,bh4)|0,mid=mid+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=mid+Math.imul(al5,bh5)|0,mid=mid+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=mid+Math.imul(al4,bh6)|0,mid=mid+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=mid+Math.imul(al3,bh7)|0,mid=mid+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=mid+Math.imul(al2,bh8)|0,mid=mid+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0,lo=lo+Math.imul(al1,bl9)|0,mid=mid+Math.imul(al1,bh9)|0,mid=mid+Math.imul(ah1,bl9)|0,hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=Math.imul(al9,bh2),mid=mid+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=mid+Math.imul(al8,bh3)|0,mid=mid+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=mid+Math.imul(al7,bh4)|0,mid=mid+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=mid+Math.imul(al6,bh5)|0,mid=mid+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=mid+Math.imul(al5,bh6)|0,mid=mid+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=mid+Math.imul(al4,bh7)|0,mid=mid+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=mid+Math.imul(al3,bh8)|0,mid=mid+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0,lo=lo+Math.imul(al2,bl9)|0,mid=mid+Math.imul(al2,bh9)|0,mid=mid+Math.imul(ah2,bl9)|0,hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=Math.imul(al9,bh3),mid=mid+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=mid+Math.imul(al8,bh4)|0,mid=mid+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=mid+Math.imul(al7,bh5)|0,mid=mid+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=mid+Math.imul(al6,bh6)|0,mid=mid+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=mid+Math.imul(al5,bh7)|0,mid=mid+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=mid+Math.imul(al4,bh8)|0,mid=mid+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0,lo=lo+Math.imul(al3,bl9)|0,mid=mid+Math.imul(al3,bh9)|0,mid=mid+Math.imul(ah3,bl9)|0,hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=Math.imul(al9,bh4),mid=mid+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=mid+Math.imul(al8,bh5)|0,mid=mid+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=mid+Math.imul(al7,bh6)|0,mid=mid+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=mid+Math.imul(al6,bh7)|0,mid=mid+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=mid+Math.imul(al5,bh8)|0,mid=mid+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0,lo=lo+Math.imul(al4,bl9)|0,mid=mid+Math.imul(al4,bh9)|0,mid=mid+Math.imul(ah4,bl9)|0,hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=Math.imul(al9,bh5),mid=mid+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=mid+Math.imul(al8,bh6)|0,mid=mid+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=mid+Math.imul(al7,bh7)|0,mid=mid+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=mid+Math.imul(al6,bh8)|0,mid=mid+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0,lo=lo+Math.imul(al5,bl9)|0,mid=mid+Math.imul(al5,bh9)|0,mid=mid+Math.imul(ah5,bl9)|0,hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=Math.imul(al9,bh6),mid=mid+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=mid+Math.imul(al8,bh7)|0,mid=mid+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=mid+Math.imul(al7,bh8)|0,mid=mid+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0,lo=lo+Math.imul(al6,bl9)|0,mid=mid+Math.imul(al6,bh9)|0,mid=mid+Math.imul(ah6,bl9)|0,hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=Math.imul(al9,bh7),mid=mid+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=mid+Math.imul(al8,bh8)|0,mid=mid+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0,lo=lo+Math.imul(al7,bl9)|0,mid=mid+Math.imul(al7,bh9)|0,mid=mid+Math.imul(ah7,bl9)|0,hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=Math.imul(al9,bh8),mid=mid+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8),lo=lo+Math.imul(al8,bl9)|0,mid=mid+Math.imul(al8,bh9)|0,mid=mid+Math.imul(ah8,bl9)|0,hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863,lo=Math.imul(al9,bl9),mid=Math.imul(al9,bh9),mid=mid+Math.imul(ah9,bl9)|0,hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;if(c=(hi+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,c!==0)o[19]=c,out.length++;return out};if(!Math.imul)comb10MulTo=smallMulTo;function bigMulTo(self2,num,out){out.negative=num.negative^self2.negative,out.length=self2.length+num.length;var carry=0,hncarry=0;for(var k=0;k>>26)|0,hncarry+=ncarry>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}if(carry!==0)out.words[k]=carry;else out.length--;return out._strip()}function jumboMulTo(self2,num,out){return bigMulTo(self2,num,out)}BN.prototype.mulTo=function(num,out){var res,len=this.length+num.length;if(this.length===10&&num.length===10)res=comb10MulTo(this,num,out);else if(len<63)res=smallMulTo(this,num,out);else if(len<1024)res=bigMulTo(this,num,out);else res=jumboMulTo(this,num,out);return res};function FFTM(x,y){this.x=x,this.y=y}FFTM.prototype.makeRBT=function(N){var t=Array(N),l=BN.prototype._countBits(N)-1;for(var i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1)i++;return 1<>>13,rws[2*i+1]=carry&8191,carry=carry>>>13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=lo&67108863}if(carry!==0)this.words[i]=carry,this.length++;return this.length=num===0?1:this.length,isNegNum?this.ineg():this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i=0);var r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r,i;if(r!==0){var carry=0;for(i=0;i>>26-r}if(carry)this.words[i]=carry,this.length++}if(s!==0){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0);var h;if(hint)h=(hint-hint%26)/26;else h=0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s){this.length-=s;for(i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r,carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0)this.words[0]=0,this.length=1;return this._strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(this.negative===0),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert(typeof bit===\"number\"&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(this.negative===0,\"imaskn works only with positive numbers\"),this.length<=s)return this;if(r!==0)s++;if(this.length=Math.min(s,this.length),r!==0){var mask=67108863^67108863>>>r<=67108864;i++)if(this.words[i]-=67108864,i===this.length-1)this.words[i+1]=1;else this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert(typeof num===\"number\"),assert(num<67108864),num<0)return this.iaddn(-num);if(this.negative!==0)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=w&67108863}for(;i>26,this.words[i+shift]=w&67108863;if(carry===0)return this._strip();assert(carry===-1),carry=0;for(i=0;i>26,this.words[i]=w&67108863;return this.negative=1,this._strip()},BN.prototype._wordDiv=function(num,mode){var shift=this.length-num.length,a=this.clone(),b=num,bhi=b.words[b.length-1]|0,bhiBits=this._countBits(bhi);if(shift=26-bhiBits,shift!==0)b=b.ushln(shift),a.iushln(shift),bhi=b.words[b.length-1]|0;var m=a.length-b.length,q;if(mode!==\"mod\"){q=new BN(null),q.length=m+1,q.words=Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);while(a.negative!==0)if(qj--,a.negative=0,a._ishlnsubmul(b,1,j),!a.isZero())a.negative^=1;if(q)q.words[j]=qj}if(q)q._strip();if(a._strip(),mode!==\"div\"&&shift!==0)a.iushrn(shift);return{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){if(assert(!num.isZero()),this.isZero())return{div:new BN(0),mod:new BN(0)};var div,mod,res;if(this.negative!==0&&num.negative===0){if(res=this.neg().divmod(num,mode),mode!==\"mod\")div=res.div.neg();if(mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.iadd(num)}return{div,mod}}if(this.negative===0&&num.negative!==0){if(res=this.divmod(num.neg(),mode),mode!==\"mod\")div=res.div.neg();return{div,mod:res.mod}}if((this.negative&num.negative)!==0){if(res=this.neg().divmod(num.neg(),mode),mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.isub(num)}return{div:res.div,mod}}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode===\"div\")return{div:this.divn(num.words[0]),mod:null};if(mode===\"mod\")return{div:null,mod:new BN(this.modrn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modrn(num.words[0]))}}return this._wordDiv(num,mode)},BN.prototype.div=function(num){return this.divmod(num,\"div\",!1).div},BN.prototype.mod=function(num){return this.divmod(num,\"mod\",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,\"mod\",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modrn=function(num){var isNegNum=num<0;if(isNegNum)num=-num;assert(num<=67108863);var p=67108864%num,acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+(this.words[i]|0))%num;return isNegNum?-acc:acc},BN.prototype.modn=function(num){return this.modrn(num)},BN.prototype.idivn=function(num){var isNegNum=num<0;if(isNegNum)num=-num;assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0,carry=w%num}return this._strip(),isNegNum?this.ineg():this},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(p.negative===0),assert(!p.isZero());var x=this,y=p.clone();if(x.negative!==0)x=x.umod(p);else x=x.clone();var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;while(x.isEven()&&y.isEven())x.iushrn(1),y.iushrn(1),++g;var yp=y.clone(),xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd())A.iadd(yp),B.isub(xp);A.iushrn(1),B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd())C.iadd(yp),D.isub(xp);C.iushrn(1),D.iushrn(1)}}if(x.cmp(y)>=0)x.isub(y),A.isub(C),B.isub(D);else y.isub(x),C.isub(A),D.isub(B)}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(p.negative===0),assert(!p.isZero());var a=this,b=p.clone();if(a.negative!==0)a=a.umod(p);else a=a.clone();var x1=new BN(1),x2=new BN(0),delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd())x1.iadd(delta);x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd())x2.iadd(delta);x2.iushrn(1)}}if(a.cmp(b)>=0)a.isub(b),x1.isub(x2);else b.isub(a),x2.isub(x1)}var res;if(a.cmpn(1)===0)res=x1;else res=x2;if(res.cmpn(0)<0)res.iadd(p);return res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);do{while(a.isEven())a.iushrn(1);while(b.isEven())b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(r===0||b.cmpn(1)===0)break;a.isub(b)}while(!0);return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return(this.words[0]&1)===0},BN.prototype.isOdd=function(){return(this.words[0]&1)===1},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert(typeof bit===\"number\");var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}if(carry!==0)this.words[i]=carry,this.length++;return this},BN.prototype.isZero=function(){return this.length===1&&this.words[0]===0},BN.prototype.cmpn=function(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this._strip();var res;if(this.length>1)res=1;else{if(negative)num=-num;assert(num<=67108863,\"Number is too big\");var w=this.words[0]|0;res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=this.words[i]|0,b=num.words[i]|0;if(a===b)continue;if(ab)res=1;break}return res},BN.prototype.gtn=function(num){return this.cmpn(num)===1},BN.prototype.gt=function(num){return this.cmp(num)===1},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return this.cmpn(num)===-1},BN.prototype.lt=function(num){return this.cmp(num)===-1},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return this.cmpn(num)===0},BN.prototype.eq=function(num){return this.cmp(num)===0},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),assert(this.negative===0,\"red works only with positives\"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,\"redAdd works only with red numbers\"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,\"redSub works only with red numbers\"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,\"redISub works only with red numbers\"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,\"redShl works only with red numbers\"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var r=num,rlen;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),rlen=r.bitLength();while(rlen>this.n);var cmp=rlen0)r.isub(this.p);else if(r.strip!==void 0)r.strip();else r._strip();return r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)};function K256(){MPrime.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}inherits(K256,MPrime),K256.prototype.split=function(input,output){var mask=4194303,outLen=Math.min(input.length,9);for(var i=0;i>>22,prev=next}if(prev>>>=22,input.words[i-10]=prev,prev===0&&input.length>10)input.length-=10;else input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;var lo=0;for(var i=0;i>>=26,num.words[i]=lo,carry=hi}if(carry!==0)num.words[num.length++]=carry;return num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if(name===\"k256\")prime=new K256;else if(name===\"p224\")prime=new P224;else if(name===\"p192\")prime=new P192;else if(name===\"p25519\")prime=new P25519;else throw Error(\"Unknown prime \"+name);return primes[name]=prime,prime};function Red(m){if(typeof m===\"string\"){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),\"modulus must be greater than 1\"),this.m=m,this.prime=null}Red.prototype._verify1=function(a){assert(a.negative===0,\"red works only with positives\"),assert(a.red,\"red works only with red numbers\")},Red.prototype._verify2=function(a,b){assert((a.negative|b.negative)===0,\"red works only with positives\"),assert(a.red&&a.red===b.red,\"red works only with red numbers\")},Red.prototype.imod=function(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return move(a,a.umod(this.m)._forceRed(this)),a},Red.prototype.neg=function(a){if(a.isZero())return a.clone();return this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2===1),mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1),s=0;while(!q.isZero()&&q.andln(1)===0)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0])res=this.sqr(res);if(bit===0&¤t===0){currentLen=0;continue}if(current<<=1,current|=bit,currentLen++,currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]),currentLen=0,current=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)};function Mont(m){if(Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.invm=function(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module>\"u\"||module,exports)});var require_browserify_rsa=__commonJS((exports,module)=>{var BN=require_bn5(),randomBytes=require_randombytes(),Buffer2=require_safe_buffer().Buffer;function getr(priv){var len=priv.modulus.byteLength(),r;do r=new BN(randomBytes(len));while(r.cmp(priv.modulus)>=0||!r.umod(priv.prime1)||!r.umod(priv.prime2));return r}function blind(priv){var r=getr(priv),blinder=r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();return{blinder,unblinder:r.invm(priv.modulus)}}function crt(msg,priv){var blinds=blind(priv),len=priv.modulus.byteLength(),blinded=new BN(msg).mul(blinds.blinder).umod(priv.modulus),c1=blinded.toRed(BN.mont(priv.prime1)),c2=blinded.toRed(BN.mont(priv.prime2)),qinv=priv.coefficient,p=priv.prime1,q=priv.prime2,m1=c1.redPow(priv.exponent1).fromRed(),m2=c2.redPow(priv.exponent2).fromRed(),h=m1.isub(m2).imul(qinv).umod(p).imul(q);return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer2,\"be\",len)}crt.getr=getr;module.exports=crt});var require_publicEncrypt=__commonJS((exports,module)=>{var parseKeys=require_parse_asn1(),randomBytes=require_randombytes(),createHash=require_create_hash(),mgf=require_mgf(),xor=require_xor(),BN=require_bn4(),withPublic=require_withPublic(),crt=require_browserify_rsa(),Buffer2=require_safe_buffer().Buffer;module.exports=function(publicKey,msg,reverse){var padding;if(publicKey.padding)padding=publicKey.padding;else if(reverse)padding=1;else padding=4;var key=parseKeys(publicKey),paddedMsg;if(padding===4)paddedMsg=oaep(key,msg);else if(padding===1)paddedMsg=pkcs1(key,msg,reverse);else if(padding===3){if(paddedMsg=new BN(msg),paddedMsg.cmp(key.modulus)>=0)throw Error(\"data too long for modulus\")}else throw Error(\"unknown padding\");if(reverse)return crt(paddedMsg,key);else return withPublic(paddedMsg,key)};function oaep(key,msg){var k=key.modulus.byteLength(),mLen=msg.length,iHash=createHash(\"sha1\").update(Buffer2.alloc(0)).digest(),hLen=iHash.length,hLen2=2*hLen;if(mLen>k-hLen2-2)throw Error(\"message too long\");var ps=Buffer2.alloc(k-mLen-hLen2-2),dblen=k-hLen-1,seed=randomBytes(hLen),maskedDb=xor(Buffer2.concat([iHash,ps,Buffer2.alloc(1,1),msg],dblen),mgf(seed,dblen)),maskedSeed=xor(seed,mgf(maskedDb,hLen));return new BN(Buffer2.concat([Buffer2.alloc(1),maskedSeed,maskedDb],k))}function pkcs1(key,msg,reverse){var mLen=msg.length,k=key.modulus.byteLength();if(mLen>k-11)throw Error(\"message too long\");var ps;if(reverse)ps=Buffer2.alloc(k-mLen-3,255);else ps=nonZero(k-mLen-3);return new BN(Buffer2.concat([Buffer2.from([0,reverse?1:2]),ps,Buffer2.alloc(1),msg],k))}function nonZero(len){var out=Buffer2.allocUnsafe(len),i=0,cache=randomBytes(len*2),cur=0,num;while(i{var parseKeys=require_parse_asn1(),mgf=require_mgf(),xor=require_xor(),BN=require_bn4(),crt=require_browserify_rsa(),createHash=require_create_hash(),withPublic=require_withPublic(),Buffer2=require_safe_buffer().Buffer;module.exports=function(privateKey,enc,reverse){var padding;if(privateKey.padding)padding=privateKey.padding;else if(reverse)padding=1;else padding=4;var key=parseKeys(privateKey),k=key.modulus.byteLength();if(enc.length>k||new BN(enc).cmp(key.modulus)>=0)throw Error(\"decryption error\");var msg;if(reverse)msg=withPublic(new BN(enc),key);else msg=crt(enc,key);var zBuffer=Buffer2.alloc(k-msg.length);if(msg=Buffer2.concat([zBuffer,msg],k),padding===4)return oaep(key,msg);else if(padding===1)return pkcs1(key,msg,reverse);else if(padding===3)return msg;else throw Error(\"unknown padding\")};function oaep(key,msg){var k=key.modulus.byteLength(),iHash=createHash(\"sha1\").update(Buffer2.alloc(0)).digest(),hLen=iHash.length;if(msg[0]!==0)throw Error(\"decryption error\");var maskedSeed=msg.slice(1,hLen+1),maskedDb=msg.slice(hLen+1),seed=xor(maskedSeed,mgf(maskedDb,hLen)),db=xor(maskedDb,mgf(seed,k-hLen-1));if(compare(iHash,db.slice(0,hLen)))throw Error(\"decryption error\");var i=hLen;while(db[i]===0)i++;if(db[i++]!==1)throw Error(\"decryption error\");return db.slice(i)}function pkcs1(key,msg,reverse){var p1=msg.slice(0,2),i=2,status=0;while(msg[i++]!==0)if(i>=msg.length){status++;break}var ps=msg.slice(2,i-1);if(p1.toString(\"hex\")!==\"0002\"&&!reverse||p1.toString(\"hex\")!==\"0001\"&&reverse)status++;if(ps.length<8)status++;if(status)throw Error(\"decryption error\");return msg.slice(i)}function compare(a,b){a=Buffer2.from(a),b=Buffer2.from(b);var dif=0,len=a.length;if(a.length!==b.length)dif++,len=Math.min(a.length,b.length);var i=-1;while(++i{exports.publicEncrypt=require_publicEncrypt();exports.privateDecrypt=require_privateDecrypt();exports.privateEncrypt=function(key,buf){return exports.publicEncrypt(key,buf,!0)};exports.publicDecrypt=function(key,buf){return exports.privateDecrypt(key,buf,!0)}});var require_public_encrypt=__commonJS((exports)=>{var crypto2=require(\"crypto\");if(typeof crypto2.publicEncrypt!==\"function\")crypto2=require_browser2();exports.publicEncrypt=crypto2.publicEncrypt;exports.privateDecrypt=crypto2.privateDecrypt;if(typeof crypto2.privateEncrypt!==\"function\")exports.privateEncrypt=require_browser2().privateEncrypt;else exports.privateEncrypt=crypto2.privateEncrypt;if(typeof crypto2.publicDecrypt!==\"function\")exports.publicDecrypt=require_browser2().publicDecrypt;else exports.publicDecrypt=crypto2.publicDecrypt});var require_browser3=__commonJS((exports)=>{var safeBuffer=require_safe_buffer(),randombytes=require_randombytes(),Buffer2=safeBuffer.Buffer,kBufferMaxLength=safeBuffer.kMaxLength,crypto2=globalThis.crypto||globalThis.msCrypto,kMaxUint32=Math.pow(2,32)-1;function assertOffset(offset,length){if(typeof offset!==\"number\"||offset!==offset)throw TypeError(\"offset must be a number\");if(offset>kMaxUint32||offset<0)throw TypeError(\"offset must be a uint32\");if(offset>kBufferMaxLength||offset>length)throw RangeError(\"offset out of range\")}function assertSize(size,offset,length){if(typeof size!==\"number\"||size!==size)throw TypeError(\"size must be a number\");if(size>kMaxUint32||size<0)throw TypeError(\"size must be a uint32\");if(size+offset>length||size>kBufferMaxLength)throw RangeError(\"buffer too small\")}crypto2&&crypto2.getRandomValues,exports.randomFill=randomFill,exports.randomFillSync=randomFillSync;function randomFill(buf,offset,size,cb){if(!Buffer2.isBuffer(buf)&&!(buf instanceof globalThis.Uint8Array))throw TypeError('\"buf\" argument must be a Buffer or Uint8Array');if(typeof offset===\"function\")cb=offset,offset=0,size=buf.length;else if(typeof size===\"function\")cb=size,size=buf.length-offset;else if(typeof cb!==\"function\")throw TypeError('\"cb\" argument must be a function');return assertOffset(offset,buf.length),assertSize(size,offset,buf.length),actualFill(buf,offset,size,cb)}function actualFill(buf,offset,size,cb){if(!1)var ourBuf,uint;if(cb){randombytes(size,function(err,bytes2){if(err)return cb(err);bytes2.copy(buf,offset),cb(null,buf)});return}var bytes=randombytes(size);return bytes.copy(buf,offset),buf}function randomFillSync(buf,offset,size){if(typeof offset>\"u\")offset=0;if(!Buffer2.isBuffer(buf)&&!(buf instanceof globalThis.Uint8Array))throw TypeError('\"buf\" argument must be a Buffer or Uint8Array');if(assertOffset(offset,buf.length),size===void 0)size=buf.length-offset;return assertSize(size,offset,buf.length),actualFill(buf,offset,size)}});var require_randomfill=__commonJS((exports,module)=>{var crypto2=require(\"crypto\");if(typeof crypto2.randomFill===\"function\"&&typeof crypto2.randomFillSync===\"function\")exports.randomFill=crypto2.randomFill,exports.randomFillSync=crypto2.randomFillSync;else module.exports=require_browser3()});var require_crypto_browserify=__commonJS((exports)=>{exports.randomBytes=exports.rng=exports.pseudoRandomBytes=exports.prng=require_randombytes();exports.createHash=exports.Hash=require_create_hash();exports.createHmac=exports.Hmac=require_create_hmac();var algos=require_algorithms(),algoKeys=Object.keys(algos),hashes=[\"sha1\",\"sha224\",\"sha256\",\"sha384\",\"sha512\",\"md5\",\"rmd160\"].concat(algoKeys);exports.getHashes=function(){return hashes};var p=require_pbkdf2();exports.pbkdf2=p.pbkdf2;exports.pbkdf2Sync=p.pbkdf2Sync;var aes=require_browserify_cipher();exports.Cipher=aes.Cipher;exports.createCipher=aes.createCipher;exports.Cipheriv=aes.Cipheriv;exports.createCipheriv=aes.createCipheriv;exports.Decipher=aes.Decipher;exports.createDecipher=aes.createDecipher;exports.Decipheriv=aes.Decipheriv;exports.createDecipheriv=aes.createDecipheriv;exports.getCiphers=aes.getCiphers;exports.listCiphers=aes.listCiphers;var dh=require_diffie_hellman();exports.DiffieHellmanGroup=dh.DiffieHellmanGroup;exports.createDiffieHellmanGroup=dh.createDiffieHellmanGroup;exports.getDiffieHellman=dh.getDiffieHellman;exports.createDiffieHellman=dh.createDiffieHellman;exports.DiffieHellman=dh.DiffieHellman;var sign=require_browserify_sign();exports.createSign=sign.createSign;exports.Sign=sign.Sign;exports.createVerify=sign.createVerify;exports.Verify=sign.Verify;exports.createECDH=require_create_ecdh();var publicEncrypt=require_public_encrypt();exports.publicEncrypt=publicEncrypt.publicEncrypt;exports.privateEncrypt=publicEncrypt.privateEncrypt;exports.publicDecrypt=publicEncrypt.publicDecrypt;exports.privateDecrypt=publicEncrypt.privateDecrypt;var rf=require_randomfill();exports.randomFill=rf.randomFill;exports.randomFillSync=rf.randomFillSync;exports.createCredentials=function(){throw Error(`sorry, createCredentials is not implemented yet\nwe accept pull requests\nhttps://github.com/browserify/crypto-browserify`)};exports.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}});var cryptoBrowserify=__toESM(require_crypto_browserify(),1),prng2=cryptoBrowserify.prng,pseudoRandomBytes2=cryptoBrowserify.pseudoRandomBytes,rng2=cryptoBrowserify.rng,randomBytes2=cryptoBrowserify.randomBytes,Hash2=cryptoBrowserify.Hash,createHash2=cryptoBrowserify.createHash,Hmac2=cryptoBrowserify.Hmac,createHmac2=cryptoBrowserify.createHmac,getHashes2=cryptoBrowserify.getHashes,pbkdf22=cryptoBrowserify.pbkdf2,pbkdf2Sync2=cryptoBrowserify.pbkdf2Sync,Cipher2=cryptoBrowserify.Cipher,createCipher2=cryptoBrowserify.createCipher,Cipheriv2=cryptoBrowserify.Cipheriv,createCipheriv2=cryptoBrowserify.createCipheriv,Decipher2=cryptoBrowserify.Decipher,createDecipher2=cryptoBrowserify.createDecipher,Decipheriv2=cryptoBrowserify.Decipheriv,createDecipheriv2=cryptoBrowserify.createDecipheriv,getCiphers2=cryptoBrowserify.getCiphers,listCiphers2=cryptoBrowserify.listCiphers,DiffieHellmanGroup2=cryptoBrowserify.DiffieHellmanGroup,createDiffieHellmanGroup2=cryptoBrowserify.createDiffieHellmanGroup,getDiffieHellman2=cryptoBrowserify.getDiffieHellman,createDiffieHellman2=cryptoBrowserify.createDiffieHellman,DiffieHellman2=cryptoBrowserify.DiffieHellman,createSign2=cryptoBrowserify.createSign,Sign2=cryptoBrowserify.Sign,createVerify2=cryptoBrowserify.createVerify,Verify2=cryptoBrowserify.Verify,createECDH2=cryptoBrowserify.createECDH,publicEncrypt2=cryptoBrowserify.publicEncrypt,privateEncrypt2=cryptoBrowserify.privateEncrypt,publicDecrypt2=cryptoBrowserify.publicDecrypt,privateDecrypt2=cryptoBrowserify.privateDecrypt,randomFill2=cryptoBrowserify.randomFill,randomFillSync2=cryptoBrowserify.randomFillSync,createCredentials2=cryptoBrowserify.createCredentials,constants2=cryptoBrowserify.constants,DEFAULT_ENCODING=\"buffer\",getRandomValues=(array)=>{return crypto.getRandomValues(array)},randomUUID=()=>{return crypto.randomUUID()},hardcoded_curves=[\"p192\",\"p224\",\"p256\",\"p384\",\"p521\",\"curve25519\",\"ed25519\",\"secp256k1\",\"secp224r1\",\"prime256v1\",\"prime192v1\",\"ed25519\",\"secp384r1\",\"secp521r1\"];function getCurves(){return hardcoded_curves}var webcrypto=crypto,crypto_default=crypto;export{webcrypto,rng2 as rng,randomUUID,randomFillSync2 as randomFillSync,randomFill2 as randomFill,randomBytes2 as randomBytes,publicEncrypt2 as publicEncrypt,publicDecrypt2 as publicDecrypt,pseudoRandomBytes2 as pseudoRandomBytes,prng2 as prng,privateEncrypt2 as privateEncrypt,privateDecrypt2 as privateDecrypt,pbkdf2Sync2 as pbkdf2Sync,pbkdf22 as pbkdf2,listCiphers2 as listCiphers,getRandomValues,getHashes2 as getHashes,getDiffieHellman2 as getDiffieHellman,getCurves,getCiphers2 as getCiphers,crypto_default as default,createVerify2 as createVerify,createSign2 as createSign,createHmac2 as createHmac,createHash2 as createHash,createECDH2 as createECDH,createDiffieHellmanGroup2 as createDiffieHellmanGroup,createDiffieHellman2 as createDiffieHellman,createDecipheriv2 as createDecipheriv,createDecipher2 as createDecipher,createCredentials2 as createCredentials,createCipheriv2 as createCipheriv,createCipher2 as createCipher,constants2 as constants,Verify2 as Verify,Sign2 as Sign,Hmac2 as Hmac,Hash2 as Hash,DiffieHellmanGroup2 as DiffieHellmanGroup,DiffieHellman2 as DiffieHellman,Decipheriv2 as Decipheriv,Decipher2 as Decipher,DEFAULT_ENCODING,Cipheriv2 as Cipheriv,Cipher2 as Cipher};", + "// list of available flags\nmodule.exports =\n{\n // allow (original) unsafe behavior of merge all properties, including ones like `__proto__`\n allowDangerousObjectKeys: 'deeply:allowDangerousObjectKeys:' + Math.random(),\n\n // to prevent (reduce chance of) accidental leaking of the global variables into runtime flags\n useCustomAdapters: 'deeply:useCustomAdapters:' + Math.random(),\n useCustomTypeOf: 'deeply:useCustomTypeOf:' + Math.random()\n};\n", + "// Public API\nmodule.exports = arrayAdapter;\n\n/**\n * Adapter to merge arrays\n *\n * Note: resets target value\n *\n * @param {array} to - target array to update\n * @param {array} from - array to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {array} - modified target object\n */\nfunction arrayAdapter(to, from, merge)\n{\n // reset target array\n to.splice(0);\n\n // transfer actual values\n from.reduce(function(target, value, index)\n {\n // use `undefined` as always-override value\n target[index] = merge(undefined, value);\n\n return target;\n }, to);\n\n return to;\n}\n", + "// Public API\nmodule.exports = dateAdapter;\n\n/**\n * Custom `initialValue` method\n * used when default approach of creating\n * initial value for the target object\n * isn't good enough\n *\n * @returns {object.Date} - new Date object\n */\nmodule.exports.initialValue = function()\n{\n return new Date();\n};\n\n/**\n * Adapter to merge Date objects\n *\n * @param {object.Date} to - target object to update\n * @param {object.Date} from - Date object to clone\n * @returns {object.Date} - modified target object\n */\nfunction dateAdapter(to, from)\n{\n // transfer actual value\n to.setTime(from.valueOf());\n\n return to;\n}\n", + "var behaviors = require('../flags.js');\n\n// Public API\nmodule.exports = reduceObject;\n\n/**\n * Iterates over own properties of the provided object\n * and copies then over to the target object.\n * While recursively running merge on the elements.\n *\n * @param {mixed} target - target object to modify\n * @param {mixed} source - source object to read from\n * @param {function} merge - iterator to merge sub elements\n * @returns {mixed} - modified target object\n */\nfunction reduceObject(target, source, merge)\n{\n var context = this;\n\n // clone exposed properties\n Object.keys(source).reduce(function(acc, key)\n {\n if (context.allowDangerousObjectKeys !== behaviors.allowDangerousObjectKeys && isUnsafeKey(key))\n {\n return acc;\n }\n\n acc[key] = merge(acc[key], source[key]);\n\n return acc;\n }, target);\n\n return target;\n}\n\n\n/**\n * Checks if provide key is unsafe to use within object\n *\n * @param {string} key - object key to check against\n * @returns {boolean} - `true` if key is unsafe to use (e.g. __proto__), `false` otherwise\n */\nfunction isUnsafeKey(key) {\n return ['__proto__'].indexOf(key) != -1;\n}\n", + "var reduceObject = require('../lib/reduce_object.js');\n\n// Public API\nmodule.exports = objectAdapter;\n\n/**\n * Adapter to merge regular (user land) objects\n *\n * Note: overrides target value\n * if it's not a regular object\n *\n * @param {object} to - target object to update\n * @param {object} from - object to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {object} - modified target object\n */\nfunction objectAdapter(to, from, merge)\n{\n // transfer source values\n // pass context down the line, to allow behavior overrides\n reduceObject.call(this, to, from, merge);\n\n return to;\n}\n", + "// Public API\nmodule.exports = arraysCombineAdapter;\n\n/**\n * Adapter to merge arrays\n * by combining/merging it's elements\n *\n * @param {array} to - target array to update\n * @param {array} from - array to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {array} - modified target object\n */\nfunction arraysCombineAdapter(to, from, merge)\n{\n // transfer actual values\n from.reduce(function(target, value, index)\n {\n // combine elements index to index\n target[index] = merge(target[index], value);\n\n return target;\n }, to);\n\n return to;\n}\n", + "// Public API\nmodule.exports = arraysAppendAdapter;\n\n/**\n * Adapter to merge arrays\n * by appending cloned elements\n * of the second array to the first\n *\n * @param {array} to - target array to update\n * @param {array} from - array to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {array} - modified target object\n */\nfunction arraysAppendAdapter(to, from, merge)\n{\n // transfer actual values\n from.reduce(function(target, value)\n {\n target.push(merge(undefined, value));\n\n return target;\n }, to);\n\n return to;\n}\n", + "// Public API\nmodule.exports = arraysAppendUniqueAdapter;\n\n/**\n * Adapter to merge arrays\n * by appending cloned elements\n * of the second array to the first\n * unless they already exist in the target array\n *\n * @param {array} to - target array to update\n * @param {array} from - array to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {array} - modified target object\n */\nfunction arraysAppendUniqueAdapter(to, from, merge)\n{\n // transfer actual values\n from.reduce(function(target, value)\n {\n // append only if new element isn't present yet\n if (target.indexOf(value) == -1)\n {\n target.push(merge(undefined, value));\n }\n\n return target;\n }, to);\n\n return to;\n}\n", + "// Public API\nmodule.exports = fulcon;\n\n/**\n * Creates wrapper function with the same signature\n *\n * @param {function} source - function to clone\n * @returns {function} - wrapped function\n */\nfunction fulcon(source)\n{\n // makes \"clone\" look and smell the same\n // strip `bound ` prefix from the function name\n return Function('source', 'return function ' + source.name.replace(/^bound /, '') + '(' + Array(source.length + 1).join('a').split('').join(',') + '){ return source.apply(this, arguments); }')(source);\n}\n", + "var cloneFunction = require('fulcon')\n , reduceObject = require('../lib/reduce_object.js')\n ;\n\n// Public API\nmodule.exports = functionsCloneAdapter;\n\n/**\n * Clones provided source function and replaces\n * target function with the clone.\n * Also cloning the prototype tree.\n *\n * @param {function} to - target function to ignore\n * @param {function} from - function to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {function} - cloned source function\n */\nfunction functionsCloneAdapter(to, from, merge)\n{\n var copy = cloneFunction(from);\n\n // to fully stand up to Ludicrous name\n // let's clone prototype chain\n copy.prototype = merge(undefined, from.prototype);\n\n // duplicate function's properties\n reduceObject(copy, from, merge);\n\n return copy;\n}\n", + "var cloneFunction = require('fulcon')\n , reduceObject = require('../lib/reduce_object.js')\n ;\n\n// Public API\nmodule.exports = functionsExtendAdapter;\n\n/**\n * Clones provided source function and replaces\n * target function with the clone.\n * While keeping original prototype in the prototype chain.\n *\n * @param {function} to - target function to ignore\n * @param {function} from - function to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {function} - cloned source function\n */\nfunction functionsExtendAdapter(to, from, merge)\n{\n var copy = cloneFunction(from);\n\n // keep from.prototype in the prototype chain\n copy.prototype = from.prototype;\n\n // duplicate function's properties\n reduceObject(copy, from, merge);\n\n return copy;\n}\n", + "// collect available adapters\nmodule.exports =\n{\n 'array' : require('./adapters/array.js'),\n 'date' : require('./adapters/date.js'),\n 'object': require('./adapters/object.js'),\n\n // extra adapters\n arraysCombine : require('./extra/arrays_combine.js'),\n arraysAppend : require('./extra/arrays_append.js'),\n arraysAppendUnique: require('./extra/arrays_append_unique.js'),\n functionsClone : require('./extra/functions_clone.js'),\n functionsExtend : require('./extra/functions_extend.js')\n};\n", + "'use strict';\n\n// Public API\nmodule.exports = preciseTypeOf;\n\n/**\n * Detects real type of the objects like 'Array()', `new Number(1)`, `new Boolean(true)`, etc\n *\n * @param {mixed} obj - object to get type of\n * @param {object} [options] - object to get type of\n * @returns {string} precise type\n */\nfunction preciseTypeOf(obj, options)\n{\n var type, stamp = Object.prototype.toString.call(obj);\n\n options = options || {};\n\n if (!type && obj === undefined) type = 'undefined';\n if (!type && obj === null) type = 'null';\n\n if (!type && obj.constructor && typeof obj.constructor.isBuffer == 'function' && obj.constructor.isBuffer(obj)) type = 'buffer';\n\n if (!type && typeof window == 'object' && obj === window) type = 'global';\n if (!type && typeof global == 'object' && obj === global) type = 'global';\n\n if (!type && typeof obj == 'number' && isNaN(obj)) type = 'nan';\n if (!type && typeof obj == 'object' && stamp == '[object Number]' && isNaN(obj)) type = 'nan';\n\n if (!type && typeof obj == 'object' && stamp.substr(-6) == 'Event]') type = 'event';\n if (!type && stamp.substr(0, 12) == '[object HTML') type = 'html';\n if (!type && stamp.substr(0, 12) == '[object Node') type = 'html';\n\n // last resort\n if (!type) type = stamp.match(/\\[object\\s*([^\\]]+)\\]/)[1].toLowerCase();\n\n // be even more precise by reporting \"instance of\" names\n // Note: only check objects that were created by constructors\n if (type == 'object' && options.pojoOnly && obj.constructor) {\n // some constructors don't have names\n type = obj.constructor.name || 'unknown';\n\n // preserve `object` response for POJOs\n if (type == 'Object') type = 'object';\n }\n\n return type;\n}\n", + "var preciseTypeOf = require('precise-typeof')\n , adapters = require('./adapters.js')\n , behaviors = require('./flags.js')\n ;\n\n// Public API\nmodule.exports = merge;\n\n/**\n * Merges provided values, utilizing available adapters\n * if no adapter found, reference to the same object\n * will be returned, considering it as primitive value\n *\n * @param {mixed} to - value to merge into\n * @param {mixed} from - value to merge\n * @returns {mixed} - result of the merge\n */\nfunction merge(to, from)\n{\n // if no suitable adapters found\n // just return overriding value\n var result = from\n , typeOf = getTypeOfAdapter.call(this)\n , type = typeOf(from)\n , adapter = getMergeByTypeAdapter.call(this, type)\n ;\n\n // if target object isn't the same type as the source object,\n // then override with new instance of the same type\n if (typeOf(to) != type)\n {\n to = getInitialValue(type, adapter);\n }\n\n // bind merge callback to the current context\n // so not to loose runtime flags\n result = adapter.call(this, to, from, merge.bind(this));\n\n return result;\n}\n\n/**\n * Returns typeof adapter, either default one or custom one if provided\n *\n * @returns {function} - typeof custom adapter or default one\n */\nfunction getTypeOfAdapter()\n{\n var adapter = preciseTypeOf;\n\n // only if usage of custom adapters is authorized\n // to prevent global context leaking in\n if (this.useCustomTypeOf === behaviors.useCustomTypeOf)\n {\n adapter = this['typeof'];\n }\n\n return adapter;\n}\n\n/**\n * Returns merge adapter for the requested type\n * either default one or custom one if provided\n *\n * @param {string} type - hook type to look for\n * @returns {function} - merge adapter or pass-thru function, if not adapter found\n */\nfunction getMergeByTypeAdapter(type)\n{\n var adapter = adapters[type] || passThru;\n\n // only if usage of custom adapters is authorized\n // to prevent global context leaking in\n if (this.useCustomAdapters === behaviors.useCustomAdapters\n && typeof this[type] == 'function'\n )\n {\n adapter = this[type];\n }\n\n return adapter;\n}\n\n/**\n * Creates initial value for the provided type\n *\n * @param {string} type - type to create new value of\n * @param {function} adapter - adapter function with custom `initialValue` method\n * @returns {mixed} - new value of the requested type\n */\nfunction getInitialValue(type, adapter)\n{\n var value\n // should be either `window` or `global`\n , glob = typeof window == 'object' ? window : global\n // capitalize the first letter to make object constructor\n , objectType = type[0].toUpperCase() + type.substr(1)\n ;\n\n if (typeof adapter.initialValue == 'function')\n {\n value = adapter.initialValue();\n }\n else if (objectType in glob)\n {\n // create new type object and get it's actual value\n // e.g. `new String().valueOf() // -> ''`\n value = new glob[objectType]().valueOf();\n }\n\n // set initial value as `undefined` if no initialValue method found\n return value;\n}\n\n/**\n * Returns provided `from` value\n *\n * @param {mixed} to - value to ignore\n * @param {mixed} from - value to pass back\n * @returns {mixed} - passed `from` value\n */\nfunction passThru(to, from)\n{\n return from;\n}\n", + "var merge = require('./merge.js');\n\n// Public API\nmodule.exports = mutable;\n\n/**\n * Deeply merges properties of the provided objects, into the first object.\n *\n * @param {...mixed} value - values to merge\n * @returns {mixed} first value with merged in properties from other values\n */\nfunction mutable(/* a[, b[, ...]] */)\n{\n var args = Array.prototype.slice.call(arguments)\n , result = args.shift()\n ;\n\n while (args.length)\n {\n result = merge.call(this, result, args.shift());\n }\n\n return result;\n}\n", + "var mutable = require('./mutable.js');\n\n// Public API\nmodule.exports = immutable;\n\n/**\n * Creates untangled copy (deep clone) of the provided value,\n * and deeply merges rest of the provided values.\n *\n * @param {...mixed} value - value(s) to merge/clone\n * @returns {mixed} - deep merged copy of all the provided values\n */\nfunction immutable(/* a[, b[, ...]] */)\n{\n // invoke mutable with new object as first argument\n var args = Array.prototype.slice.call(arguments, 0);\n // use `undefined` as always-override value\n return mutable.apply(this, [undefined].concat(args));\n}\n", + "var behaviors = require('./flags.js')\n , adapters = require('./adapters.js')\n , mutable = require('./mutable.js')\n , immutable = require('./immutable.js')\n ;\n\n// Public API\n// keep immutable behavior as default\nmodule.exports = immutable;\n// expose both variants\nmodule.exports.mutable = mutable;\nmodule.exports.immutable = immutable;\n// expose behavior flags\nmodule.exports.behaviors = behaviors;\n// expose available adapters\nmodule.exports.adapters = adapters;\n", + "/*global define:false */\n/**\n * Copyright 2012-2017 Craig Campbell\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 * Mousetrap is a simple keyboard shortcut library for Javascript with\n * no external dependencies\n *\n * @version 1.6.5\n * @url craig.is/killing/mice\n */\n(function(window, document, undefined) {\n\n // Check if mousetrap is used inside browser, if not, return\n if (!window) {\n return;\n }\n\n /**\n * mapping of special keycodes to their corresponding keys\n *\n * everything in this dictionary cannot use keypress events\n * so it has to be here to map to the correct keycodes for\n * keyup/keydown events\n *\n * @type {Object}\n */\n var _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\n /**\n * mapping for special characters so they can support\n *\n * this dictionary is only used incase you want to bind a\n * keyup or keydown event to one of these keys\n *\n * @type {Object}\n */\n var _KEYCODE_MAP = {\n 106: '*',\n 107: '+',\n 109: '-',\n 110: '.',\n 111 : '/',\n 186: ';',\n 187: '=',\n 188: ',',\n 189: '-',\n 190: '.',\n 191: '/',\n 192: '`',\n 219: '[',\n 220: '\\\\',\n 221: ']',\n 222: '\\''\n };\n\n /**\n * this is a mapping of keys that require shift on a US keypad\n * back to the non shift equivelents\n *\n * this is so you can use keyup events with these keys\n *\n * note that this will only work reliably on US keyboards\n *\n * @type {Object}\n */\n var _SHIFT_MAP = {\n '~': '`',\n '!': '1',\n '@': '2',\n '#': '3',\n '$': '4',\n '%': '5',\n '^': '6',\n '&': '7',\n '*': '8',\n '(': '9',\n ')': '0',\n '_': '-',\n '+': '=',\n ':': ';',\n '\\\"': '\\'',\n '<': ',',\n '>': '.',\n '?': '/',\n '|': '\\\\'\n };\n\n /**\n * this is a list of special strings you can use to map\n * to modifier keys when you specify your keyboard shortcuts\n *\n * @type {Object}\n */\n var _SPECIAL_ALIASES = {\n 'option': 'alt',\n 'command': 'meta',\n 'return': 'enter',\n 'escape': 'esc',\n 'plus': '+',\n 'mod': /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl'\n };\n\n /**\n * variable to store the flipped version of _MAP from above\n * needed to check if we should use keypress or not when no action\n * is specified\n *\n * @type {Object|undefined}\n */\n var _REVERSE_MAP;\n\n /**\n * loop through the f keys, f1 to f19 and add them to the map\n * programatically\n */\n for (var i = 1; i < 20; ++i) {\n _MAP[111 + i] = 'f' + i;\n }\n\n /**\n * loop through to map numbers on the numeric keypad\n */\n for (i = 0; i <= 9; ++i) {\n\n // This needs to use a string cause otherwise since 0 is falsey\n // mousetrap will never fire for numpad 0 pressed as part of a keydown\n // event.\n //\n // @see https://github.com/ccampbell/mousetrap/pull/258\n _MAP[i + 96] = i.toString();\n }\n\n /**\n * cross browser add event method\n *\n * @param {Element|HTMLDocument} object\n * @param {string} type\n * @param {Function} callback\n * @returns void\n */\n function _addEvent(object, type, callback) {\n if (object.addEventListener) {\n object.addEventListener(type, callback, false);\n return;\n }\n\n object.attachEvent('on' + type, callback);\n }\n\n /**\n * takes the event and returns the key character\n *\n * @param {Event} e\n * @return {string}\n */\n function _characterFromEvent(e) {\n\n // for keypress events we should return the character as is\n if (e.type == 'keypress') {\n var character = String.fromCharCode(e.which);\n\n // if the shift key is not pressed then it is safe to assume\n // that we want the character to be lowercase. this means if\n // you accidentally have caps lock on then your key bindings\n // will continue to work\n //\n // the only side effect that might not be desired is if you\n // bind something like 'A' cause you want to trigger an\n // event when capital A is pressed caps lock will no longer\n // trigger the event. shift+a will though.\n if (!e.shiftKey) {\n character = character.toLowerCase();\n }\n\n return character;\n }\n\n // for non keypress events the special maps are needed\n if (_MAP[e.which]) {\n return _MAP[e.which];\n }\n\n if (_KEYCODE_MAP[e.which]) {\n return _KEYCODE_MAP[e.which];\n }\n\n // if it is not in the special map\n\n // with keydown and keyup events the character seems to always\n // come in as an uppercase character whether you are pressing shift\n // or not. we should make sure it is always lowercase for comparisons\n return String.fromCharCode(e.which).toLowerCase();\n }\n\n /**\n * checks if two arrays are equal\n *\n * @param {Array} modifiers1\n * @param {Array} modifiers2\n * @returns {boolean}\n */\n function _modifiersMatch(modifiers1, modifiers2) {\n return modifiers1.sort().join(',') === modifiers2.sort().join(',');\n }\n\n /**\n * takes a key event and figures out what the modifiers are\n *\n * @param {Event} e\n * @returns {Array}\n */\n function _eventModifiers(e) {\n var modifiers = [];\n\n if (e.shiftKey) {\n modifiers.push('shift');\n }\n\n if (e.altKey) {\n modifiers.push('alt');\n }\n\n if (e.ctrlKey) {\n modifiers.push('ctrl');\n }\n\n if (e.metaKey) {\n modifiers.push('meta');\n }\n\n return modifiers;\n }\n\n /**\n * prevents default for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _preventDefault(e) {\n if (e.preventDefault) {\n e.preventDefault();\n return;\n }\n\n e.returnValue = false;\n }\n\n /**\n * stops propogation for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _stopPropagation(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n return;\n }\n\n e.cancelBubble = true;\n }\n\n /**\n * determines if the keycode specified is a modifier key or not\n *\n * @param {string} key\n * @returns {boolean}\n */\n function _isModifier(key) {\n return key == 'shift' || key == 'ctrl' || key == 'alt' || key == 'meta';\n }\n\n /**\n * reverses the map lookup so that we can look for specific keys\n * to see what can and can't use keypress\n *\n * @return {Object}\n */\n function _getReverseMap() {\n if (!_REVERSE_MAP) {\n _REVERSE_MAP = {};\n for (var key in _MAP) {\n\n // pull out the numeric keypad from here cause keypress should\n // be able to detect the keys from the character\n if (key > 95 && key < 112) {\n continue;\n }\n\n if (_MAP.hasOwnProperty(key)) {\n _REVERSE_MAP[_MAP[key]] = key;\n }\n }\n }\n return _REVERSE_MAP;\n }\n\n /**\n * picks the best action based on the key combination\n *\n * @param {string} key - character for key\n * @param {Array} modifiers\n * @param {string=} action passed in\n */\n function _pickBestAction(key, modifiers, action) {\n\n // if no action was picked in we should try to pick the one\n // that we think would work best for this key\n if (!action) {\n action = _getReverseMap()[key] ? 'keydown' : 'keypress';\n }\n\n // modifier keys don't work as expected with keypress,\n // switch to keydown\n if (action == 'keypress' && modifiers.length) {\n action = 'keydown';\n }\n\n return action;\n }\n\n /**\n * Converts from a string key combination to an array\n *\n * @param {string} combination like \"command+shift+l\"\n * @return {Array}\n */\n function _keysFromString(combination) {\n if (combination === '+') {\n return ['+'];\n }\n\n combination = combination.replace(/\\+{2}/g, '+plus');\n return combination.split('+');\n }\n\n /**\n * Gets info for a specific key combination\n *\n * @param {string} combination key combination (\"command+s\" or \"a\" or \"*\")\n * @param {string=} action\n * @returns {Object}\n */\n function _getKeyInfo(combination, action) {\n var keys;\n var key;\n var i;\n var modifiers = [];\n\n // take the keys from this pattern and figure out what the actual\n // pattern is all about\n keys = _keysFromString(combination);\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n\n // normalize key names\n if (_SPECIAL_ALIASES[key]) {\n key = _SPECIAL_ALIASES[key];\n }\n\n // if this is not a keypress event then we should\n // be smart about using shift keys\n // this will only work for US keyboards however\n if (action && action != 'keypress' && _SHIFT_MAP[key]) {\n key = _SHIFT_MAP[key];\n modifiers.push('shift');\n }\n\n // if this key is a modifier then add it to the list of modifiers\n if (_isModifier(key)) {\n modifiers.push(key);\n }\n }\n\n // depending on what the key combination is\n // we will try to pick the best event for it\n action = _pickBestAction(key, modifiers, action);\n\n return {\n key: key,\n modifiers: modifiers,\n action: action\n };\n }\n\n function _belongsTo(element, ancestor) {\n if (element === null || element === document) {\n return false;\n }\n\n if (element === ancestor) {\n return true;\n }\n\n return _belongsTo(element.parentNode, ancestor);\n }\n\n function Mousetrap(targetElement) {\n var self = this;\n\n targetElement = targetElement || document;\n\n if (!(self instanceof Mousetrap)) {\n return new Mousetrap(targetElement);\n }\n\n /**\n * element to attach key events to\n *\n * @type {Element}\n */\n self.target = targetElement;\n\n /**\n * a list of all the callbacks setup via Mousetrap.bind()\n *\n * @type {Object}\n */\n self._callbacks = {};\n\n /**\n * direct map of string combinations to callbacks used for trigger()\n *\n * @type {Object}\n */\n self._directMap = {};\n\n /**\n * keeps track of what level each sequence is at since multiple\n * sequences can start out with the same sequence\n *\n * @type {Object}\n */\n var _sequenceLevels = {};\n\n /**\n * variable to store the setTimeout call\n *\n * @type {null|number}\n */\n var _resetTimer;\n\n /**\n * temporary state where we will ignore the next keyup\n *\n * @type {boolean|string}\n */\n var _ignoreNextKeyup = false;\n\n /**\n * temporary state where we will ignore the next keypress\n *\n * @type {boolean}\n */\n var _ignoreNextKeypress = false;\n\n /**\n * are we currently inside of a sequence?\n * type of action (\"keyup\" or \"keydown\" or \"keypress\") or false\n *\n * @type {boolean|string}\n */\n var _nextExpectedAction = false;\n\n /**\n * resets all sequence counters except for the ones passed in\n *\n * @param {Object} doNotReset\n * @returns void\n */\n function _resetSequences(doNotReset) {\n doNotReset = doNotReset || {};\n\n var activeSequences = false,\n key;\n\n for (key in _sequenceLevels) {\n if (doNotReset[key]) {\n activeSequences = true;\n continue;\n }\n _sequenceLevels[key] = 0;\n }\n\n if (!activeSequences) {\n _nextExpectedAction = false;\n }\n }\n\n /**\n * finds all callbacks that match based on the keycode, modifiers,\n * and action\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event|Object} e\n * @param {string=} sequenceName - name of the sequence we are looking for\n * @param {string=} combination\n * @param {number=} level\n * @returns {Array}\n */\n function _getMatches(character, modifiers, e, sequenceName, combination, level) {\n var i;\n var callback;\n var matches = [];\n var action = e.type;\n\n // if there are no events related to this keycode\n if (!self._callbacks[character]) {\n return [];\n }\n\n // if a modifier key is coming up on its own we should allow it\n if (action == 'keyup' && _isModifier(character)) {\n modifiers = [character];\n }\n\n // loop through all callbacks for the key that was pressed\n // and see if any of them match\n for (i = 0; i < self._callbacks[character].length; ++i) {\n callback = self._callbacks[character][i];\n\n // if a sequence name is not specified, but this is a sequence at\n // the wrong level then move onto the next match\n if (!sequenceName && callback.seq && _sequenceLevels[callback.seq] != callback.level) {\n continue;\n }\n\n // if the action we are looking for doesn't match the action we got\n // then we should keep going\n if (action != callback.action) {\n continue;\n }\n\n // if this is a keypress event and the meta key and control key\n // are not pressed that means that we need to only look at the\n // character, otherwise check the modifiers as well\n //\n // chrome will not fire a keypress if meta or control is down\n // safari will fire a keypress if meta or meta+shift is down\n // firefox will fire a keypress if meta or control is down\n if ((action == 'keypress' && !e.metaKey && !e.ctrlKey) || _modifiersMatch(modifiers, callback.modifiers)) {\n\n // when you bind a combination or sequence a second time it\n // should overwrite the first one. if a sequenceName or\n // combination is specified in this call it does just that\n //\n // @todo make deleting its own method?\n var deleteCombo = !sequenceName && callback.combo == combination;\n var deleteSequence = sequenceName && callback.seq == sequenceName && callback.level == level;\n if (deleteCombo || deleteSequence) {\n self._callbacks[character].splice(i, 1);\n }\n\n matches.push(callback);\n }\n }\n\n return matches;\n }\n\n /**\n * actually calls the callback function\n *\n * if your callback function returns false this will use the jquery\n * convention - prevent default and stop propogation on the event\n *\n * @param {Function} callback\n * @param {Event} e\n * @returns void\n */\n function _fireCallback(callback, e, combo, sequence) {\n\n // if this event should not happen stop here\n if (self.stopCallback(e, e.target || e.srcElement, combo, sequence)) {\n return;\n }\n\n if (callback(e, combo) === false) {\n _preventDefault(e);\n _stopPropagation(e);\n }\n }\n\n /**\n * handles a character key event\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event} e\n * @returns void\n */\n self._handleKey = function(character, modifiers, e) {\n var callbacks = _getMatches(character, modifiers, e);\n var i;\n var doNotReset = {};\n var maxLevel = 0;\n var processedSequenceCallback = false;\n\n // Calculate the maxLevel for sequences so we can only execute the longest callback sequence\n for (i = 0; i < callbacks.length; ++i) {\n if (callbacks[i].seq) {\n maxLevel = Math.max(maxLevel, callbacks[i].level);\n }\n }\n\n // loop through matching callbacks for this key event\n for (i = 0; i < callbacks.length; ++i) {\n\n // fire for all sequence callbacks\n // this is because if for example you have multiple sequences\n // bound such as \"g i\" and \"g t\" they both need to fire the\n // callback for matching g cause otherwise you can only ever\n // match the first one\n if (callbacks[i].seq) {\n\n // only fire callbacks for the maxLevel to prevent\n // subsequences from also firing\n //\n // for example 'a option b' should not cause 'option b' to fire\n // even though 'option b' is part of the other sequence\n //\n // any sequences that do not match here will be discarded\n // below by the _resetSequences call\n if (callbacks[i].level != maxLevel) {\n continue;\n }\n\n processedSequenceCallback = true;\n\n // keep a list of which sequences were matches for later\n doNotReset[callbacks[i].seq] = 1;\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo, callbacks[i].seq);\n continue;\n }\n\n // if there were no sequence matches but we are still here\n // that means this is a regular match so we should fire that\n if (!processedSequenceCallback) {\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo);\n }\n }\n\n // if the key you pressed matches the type of sequence without\n // being a modifier (ie \"keyup\" or \"keypress\") then we should\n // reset all sequences that were not matched by this event\n //\n // this is so, for example, if you have the sequence \"h a t\" and you\n // type \"h e a r t\" it does not match. in this case the \"e\" will\n // cause the sequence to reset\n //\n // modifier keys are ignored because you can have a sequence\n // that contains modifiers such as \"enter ctrl+space\" and in most\n // cases the modifier key will be pressed before the next key\n //\n // also if you have a sequence such as \"ctrl+b a\" then pressing the\n // \"b\" key will trigger a \"keypress\" and a \"keydown\"\n //\n // the \"keydown\" is expected when there is a modifier, but the\n // \"keypress\" ends up matching the _nextExpectedAction since it occurs\n // after and that causes the sequence to reset\n //\n // we ignore keypresses in a sequence that directly follow a keydown\n // for the same character\n var ignoreThisKeypress = e.type == 'keypress' && _ignoreNextKeypress;\n if (e.type == _nextExpectedAction && !_isModifier(character) && !ignoreThisKeypress) {\n _resetSequences(doNotReset);\n }\n\n _ignoreNextKeypress = processedSequenceCallback && e.type == 'keydown';\n };\n\n /**\n * handles a keydown event\n *\n * @param {Event} e\n * @returns void\n */\n function _handleKeyEvent(e) {\n\n // normalize e.which for key events\n // @see http://stackoverflow.com/questions/4285627/javascript-keycode-vs-charcode-utter-confusion\n if (typeof e.which !== 'number') {\n e.which = e.keyCode;\n }\n\n var character = _characterFromEvent(e);\n\n // no character found then stop\n if (!character) {\n return;\n }\n\n // need to use === for the character check because the character can be 0\n if (e.type == 'keyup' && _ignoreNextKeyup === character) {\n _ignoreNextKeyup = false;\n return;\n }\n\n self.handleKey(character, _eventModifiers(e), e);\n }\n\n /**\n * called to set a 1 second timeout on the specified sequence\n *\n * this is so after each key press in the sequence you have 1 second\n * to press the next key before you have to start over\n *\n * @returns void\n */\n function _resetSequenceTimer() {\n clearTimeout(_resetTimer);\n _resetTimer = setTimeout(_resetSequences, 1000);\n }\n\n /**\n * binds a key sequence to an event\n *\n * @param {string} combo - combo specified in bind call\n * @param {Array} keys\n * @param {Function} callback\n * @param {string=} action\n * @returns void\n */\n function _bindSequence(combo, keys, callback, action) {\n\n // start off by adding a sequence level record for this combination\n // and setting the level to 0\n _sequenceLevels[combo] = 0;\n\n /**\n * callback to increase the sequence level for this sequence and reset\n * all other sequences that were active\n *\n * @param {string} nextAction\n * @returns {Function}\n */\n function _increaseSequence(nextAction) {\n return function() {\n _nextExpectedAction = nextAction;\n ++_sequenceLevels[combo];\n _resetSequenceTimer();\n };\n }\n\n /**\n * wraps the specified callback inside of another function in order\n * to reset all sequence counters as soon as this sequence is done\n *\n * @param {Event} e\n * @returns void\n */\n function _callbackAndReset(e) {\n _fireCallback(callback, e, combo);\n\n // we should ignore the next key up if the action is key down\n // or keypress. this is so if you finish a sequence and\n // release the key the final key will not trigger a keyup\n if (action !== 'keyup') {\n _ignoreNextKeyup = _characterFromEvent(e);\n }\n\n // weird race condition if a sequence ends with the key\n // another sequence begins with\n setTimeout(_resetSequences, 10);\n }\n\n // loop through keys one at a time and bind the appropriate callback\n // function. for any key leading up to the final one it should\n // increase the sequence. after the final, it should reset all sequences\n //\n // if an action is specified in the original bind call then that will\n // be used throughout. otherwise we will pass the action that the\n // next key in the sequence should match. this allows a sequence\n // to mix and match keypress and keydown events depending on which\n // ones are better suited to the key provided\n for (var i = 0; i < keys.length; ++i) {\n var isFinal = i + 1 === keys.length;\n var wrappedCallback = isFinal ? _callbackAndReset : _increaseSequence(action || _getKeyInfo(keys[i + 1]).action);\n _bindSingle(keys[i], wrappedCallback, action, combo, i);\n }\n }\n\n /**\n * binds a single keyboard combination\n *\n * @param {string} combination\n * @param {Function} callback\n * @param {string=} action\n * @param {string=} sequenceName - name of sequence if part of sequence\n * @param {number=} level - what part of the sequence the command is\n * @returns void\n */\n function _bindSingle(combination, callback, action, sequenceName, level) {\n\n // store a direct mapped reference for use with Mousetrap.trigger\n self._directMap[combination + ':' + action] = callback;\n\n // make sure multiple spaces in a row become a single space\n combination = combination.replace(/\\s+/g, ' ');\n\n var sequence = combination.split(' ');\n var info;\n\n // if this pattern is a sequence of keys then run through this method\n // to reprocess each pattern one key at a time\n if (sequence.length > 1) {\n _bindSequence(combination, sequence, callback, action);\n return;\n }\n\n info = _getKeyInfo(combination, action);\n\n // make sure to initialize array if this is the first time\n // a callback is added for this key\n self._callbacks[info.key] = self._callbacks[info.key] || [];\n\n // remove an existing match if there is one\n _getMatches(info.key, info.modifiers, {type: info.action}, sequenceName, combination, level);\n\n // add this call back to the array\n // if it is a sequence put it at the beginning\n // if not put it at the end\n //\n // this is important because the way these are processed expects\n // the sequence ones to come first\n self._callbacks[info.key][sequenceName ? 'unshift' : 'push']({\n callback: callback,\n modifiers: info.modifiers,\n action: info.action,\n seq: sequenceName,\n level: level,\n combo: combination\n });\n }\n\n /**\n * binds multiple combinations to the same callback\n *\n * @param {Array} combinations\n * @param {Function} callback\n * @param {string|undefined} action\n * @returns void\n */\n self._bindMultiple = function(combinations, callback, action) {\n for (var i = 0; i < combinations.length; ++i) {\n _bindSingle(combinations[i], callback, action);\n }\n };\n\n // start!\n _addEvent(targetElement, 'keypress', _handleKeyEvent);\n _addEvent(targetElement, 'keydown', _handleKeyEvent);\n _addEvent(targetElement, 'keyup', _handleKeyEvent);\n }\n\n /**\n * binds an event to mousetrap\n *\n * can be a single key, a combination of keys separated with +,\n * an array of keys, or a sequence of keys separated by spaces\n *\n * be sure to list the modifier keys first to make sure that the\n * correct key ends up getting bound (the last key in the pattern)\n *\n * @param {string|Array} keys\n * @param {Function} callback\n * @param {string=} action - 'keypress', 'keydown', or 'keyup'\n * @returns void\n */\n Mousetrap.prototype.bind = function(keys, callback, action) {\n var self = this;\n keys = keys instanceof Array ? keys : [keys];\n self._bindMultiple.call(self, keys, callback, action);\n return self;\n };\n\n /**\n * unbinds an event to mousetrap\n *\n * the unbinding sets the callback function of the specified key combo\n * to an empty function and deletes the corresponding key in the\n * _directMap dict.\n *\n * TODO: actually remove this from the _callbacks dictionary instead\n * of binding an empty function\n *\n * the keycombo+action has to be exactly the same as\n * it was defined in the bind method\n *\n * @param {string|Array} keys\n * @param {string} action\n * @returns void\n */\n Mousetrap.prototype.unbind = function(keys, action) {\n var self = this;\n return self.bind.call(self, keys, function() {}, action);\n };\n\n /**\n * triggers an event that has already been bound\n *\n * @param {string} keys\n * @param {string=} action\n * @returns void\n */\n Mousetrap.prototype.trigger = function(keys, action) {\n var self = this;\n if (self._directMap[keys + ':' + action]) {\n self._directMap[keys + ':' + action]({}, keys);\n }\n return self;\n };\n\n /**\n * resets the library back to its initial state. this is useful\n * if you want to clear out the current keyboard shortcuts and bind\n * new ones - for example if you switch to another page\n *\n * @returns void\n */\n Mousetrap.prototype.reset = function() {\n var self = this;\n self._callbacks = {};\n self._directMap = {};\n return self;\n };\n\n /**\n * should we stop this event before firing off callbacks\n *\n * @param {Event} e\n * @param {Element} element\n * @return {boolean}\n */\n Mousetrap.prototype.stopCallback = function(e, element) {\n var self = this;\n\n // if the element has the class \"mousetrap\" then no need to stop\n if ((' ' + element.className + ' ').indexOf(' mousetrap ') > -1) {\n return false;\n }\n\n if (_belongsTo(element, self.target)) {\n return false;\n }\n\n // Events originating from a shadow DOM are re-targetted and `e.target` is the shadow host,\n // not the initial event target in the shadow tree. Note that not all events cross the\n // shadow boundary.\n // For shadow trees with `mode: 'open'`, the initial event target is the first element in\n // the event’s composed path. For shadow trees with `mode: 'closed'`, the initial event\n // target cannot be obtained.\n if ('composedPath' in e && typeof e.composedPath === 'function') {\n // For open shadow trees, update `element` so that the following check works.\n var initialEventTarget = e.composedPath()[0];\n if (initialEventTarget !== e.target) {\n element = initialEventTarget;\n }\n }\n\n // stop for input, select, and textarea\n return element.tagName == 'INPUT' || element.tagName == 'SELECT' || element.tagName == 'TEXTAREA' || element.isContentEditable;\n };\n\n /**\n * exposes _handleKey publicly so it can be overwritten by extensions\n */\n Mousetrap.prototype.handleKey = function() {\n var self = this;\n return self._handleKey.apply(self, arguments);\n };\n\n /**\n * allow custom key mappings\n */\n Mousetrap.addKeycodes = function(object) {\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n _MAP[key] = object[key];\n }\n }\n _REVERSE_MAP = null;\n };\n\n /**\n * Init the global mousetrap functions\n *\n * This method is needed to allow the global mousetrap functions to work\n * now that mousetrap is a constructor function.\n */\n Mousetrap.init = function() {\n var documentMousetrap = Mousetrap(document);\n for (var method in documentMousetrap) {\n if (method.charAt(0) !== '_') {\n Mousetrap[method] = (function(method) {\n return function() {\n return documentMousetrap[method].apply(documentMousetrap, arguments);\n };\n } (method));\n }\n }\n };\n\n Mousetrap.init();\n\n // expose mousetrap to the global object\n window.Mousetrap = Mousetrap;\n\n // expose as a common js module\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Mousetrap;\n }\n\n // expose mousetrap as an AMD module\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Mousetrap;\n });\n }\n}) (typeof window !== 'undefined' ? window : null, typeof window !== 'undefined' ? document : null);\n", + "function changeJpegDpi(uint8Array, dpi) {\n uint8Array[13] = 1;\n uint8Array[14] = dpi >> 8;\n uint8Array[15] = dpi & 255;\n uint8Array[16] = dpi >> 8;\n uint8Array[17] = dpi & 255;\n return uint8Array;\n}\n\nconst _P = \"p\".charCodeAt(0);\nconst _H = \"H\".charCodeAt(0);\nconst _Y = \"Y\".charCodeAt(0);\nconst _S = \"s\".charCodeAt(0);\nlet pngDataTable;\nfunction createPngDataTable() {\n const crcTable = new Int32Array(256);\n for (let n = 0; n < 256; n++) {\n let c = n;\n for (let k = 0; k < 8; k++) {\n c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;\n }\n crcTable[n] = c;\n }\n return crcTable;\n}\nfunction calcCrc(uint8Array) {\n let c = -1;\n if (!pngDataTable)\n pngDataTable = createPngDataTable();\n for (let n = 0; n < uint8Array.length; n++) {\n c = pngDataTable[(c ^ uint8Array[n]) & 255] ^ c >>> 8;\n }\n return c ^ -1;\n}\nfunction searchStartOfPhys(uint8Array) {\n const length = uint8Array.length - 1;\n for (let i = length; i >= 4; i--) {\n if (uint8Array[i - 4] === 9 && uint8Array[i - 3] === _P && uint8Array[i - 2] === _H && uint8Array[i - 1] === _Y && uint8Array[i] === _S) {\n return i - 3;\n }\n }\n return 0;\n}\nfunction changePngDpi(uint8Array, dpi, overwritepHYs = false) {\n const physChunk = new Uint8Array(13);\n dpi *= 39.3701;\n physChunk[0] = _P;\n physChunk[1] = _H;\n physChunk[2] = _Y;\n physChunk[3] = _S;\n physChunk[4] = dpi >>> 24;\n physChunk[5] = dpi >>> 16;\n physChunk[6] = dpi >>> 8;\n physChunk[7] = dpi & 255;\n physChunk[8] = physChunk[4];\n physChunk[9] = physChunk[5];\n physChunk[10] = physChunk[6];\n physChunk[11] = physChunk[7];\n physChunk[12] = 1;\n const crc = calcCrc(physChunk);\n const crcChunk = new Uint8Array(4);\n crcChunk[0] = crc >>> 24;\n crcChunk[1] = crc >>> 16;\n crcChunk[2] = crc >>> 8;\n crcChunk[3] = crc & 255;\n if (overwritepHYs) {\n const startingIndex = searchStartOfPhys(uint8Array);\n uint8Array.set(physChunk, startingIndex);\n uint8Array.set(crcChunk, startingIndex + 13);\n return uint8Array;\n } else {\n const chunkLength = new Uint8Array(4);\n chunkLength[0] = 0;\n chunkLength[1] = 0;\n chunkLength[2] = 0;\n chunkLength[3] = 9;\n const finalHeader = new Uint8Array(54);\n finalHeader.set(uint8Array, 0);\n finalHeader.set(chunkLength, 33);\n finalHeader.set(physChunk, 37);\n finalHeader.set(crcChunk, 50);\n return finalHeader;\n }\n}\nconst b64PhysSignature1 = \"AAlwSFlz\";\nconst b64PhysSignature2 = \"AAAJcEhZ\";\nconst b64PhysSignature3 = \"AAAACXBI\";\nfunction detectPhysChunkFromDataUrl(dataUrl) {\n let b64index = dataUrl.indexOf(b64PhysSignature1);\n if (b64index === -1) {\n b64index = dataUrl.indexOf(b64PhysSignature2);\n }\n if (b64index === -1) {\n b64index = dataUrl.indexOf(b64PhysSignature3);\n }\n return b64index;\n}\n\nconst PREFIX = \"[modern-screenshot]\";\nconst IN_BROWSER = typeof window !== \"undefined\";\nconst SUPPORT_WEB_WORKER = IN_BROWSER && \"Worker\" in window;\nconst SUPPORT_ATOB = IN_BROWSER && \"atob\" in window;\nconst SUPPORT_BTOA = IN_BROWSER && \"btoa\" in window;\nconst USER_AGENT = IN_BROWSER ? window.navigator?.userAgent : \"\";\nconst IN_CHROME = USER_AGENT.includes(\"Chrome\");\nconst IN_SAFARI = USER_AGENT.includes(\"AppleWebKit\") && !IN_CHROME;\nconst IN_FIREFOX = USER_AGENT.includes(\"Firefox\");\nconst isContext = (value) => value && \"__CONTEXT__\" in value;\nconst isCssFontFaceRule = (rule) => rule.constructor.name === \"CSSFontFaceRule\";\nconst isCSSImportRule = (rule) => rule.constructor.name === \"CSSImportRule\";\nconst isLayerBlockRule = (rule) => rule.constructor.name === \"CSSLayerBlockRule\";\nconst isElementNode = (node) => node.nodeType === 1;\nconst isSVGElementNode = (node) => typeof node.className === \"object\";\nconst isSVGImageElementNode = (node) => node.tagName === \"image\";\nconst isSVGUseElementNode = (node) => node.tagName === \"use\";\nconst isHTMLElementNode = (node) => isElementNode(node) && typeof node.style !== \"undefined\" && !isSVGElementNode(node);\nconst isCommentNode = (node) => node.nodeType === 8;\nconst isTextNode = (node) => node.nodeType === 3;\nconst isImageElement = (node) => node.tagName === \"IMG\";\nconst isVideoElement = (node) => node.tagName === \"VIDEO\";\nconst isCanvasElement = (node) => node.tagName === \"CANVAS\";\nconst isTextareaElement = (node) => node.tagName === \"TEXTAREA\";\nconst isInputElement = (node) => node.tagName === \"INPUT\";\nconst isStyleElement = (node) => node.tagName === \"STYLE\";\nconst isScriptElement = (node) => node.tagName === \"SCRIPT\";\nconst isSelectElement = (node) => node.tagName === \"SELECT\";\nconst isSlotElement = (node) => node.tagName === \"SLOT\";\nconst isIFrameElement = (node) => node.tagName === \"IFRAME\";\nconst consoleWarn = (...args) => console.warn(PREFIX, ...args);\nfunction supportWebp(ownerDocument) {\n const canvas = ownerDocument?.createElement?.(\"canvas\");\n if (canvas) {\n canvas.height = canvas.width = 1;\n }\n return Boolean(canvas) && \"toDataURL\" in canvas && Boolean(canvas.toDataURL(\"image/webp\").includes(\"image/webp\"));\n}\nconst isDataUrl = (url) => url.startsWith(\"data:\");\nfunction resolveUrl(url, baseUrl) {\n if (url.match(/^[a-z]+:\\/\\//i))\n return url;\n if (IN_BROWSER && url.match(/^\\/\\//))\n return window.location.protocol + url;\n if (url.match(/^[a-z]+:/i))\n return url;\n if (!IN_BROWSER)\n return url;\n const doc = getDocument().implementation.createHTMLDocument();\n const base = doc.createElement(\"base\");\n const a = doc.createElement(\"a\");\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl)\n base.href = baseUrl;\n a.href = url;\n return a.href;\n}\nfunction getDocument(target) {\n return (target && isElementNode(target) ? target?.ownerDocument : target) ?? window.document;\n}\nconst XMLNS = \"http://www.w3.org/2000/svg\";\nfunction createSvg(width, height, ownerDocument) {\n const svg = getDocument(ownerDocument).createElementNS(XMLNS, \"svg\");\n svg.setAttributeNS(null, \"width\", width.toString());\n svg.setAttributeNS(null, \"height\", height.toString());\n svg.setAttributeNS(null, \"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n}\nfunction svgToDataUrl(svg, removeControlCharacter) {\n let xhtml = new XMLSerializer().serializeToString(svg);\n if (removeControlCharacter) {\n xhtml = xhtml.replace(/[\\u0000-\\u0008\\v\\f\\u000E-\\u001F\\uD800-\\uDFFF\\uFFFE\\uFFFF]/gu, \"\");\n }\n return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(xhtml)}`;\n}\nasync function canvasToBlob(canvas, type = \"image/png\", quality = 1) {\n try {\n return await new Promise((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n resolve(blob);\n } else {\n reject(new Error(\"Blob is null\"));\n }\n }, type, quality);\n });\n } catch (error) {\n if (SUPPORT_ATOB) {\n return dataUrlToBlob(canvas.toDataURL(type, quality));\n }\n throw error;\n }\n}\nfunction dataUrlToBlob(dataUrl) {\n const [header, base64] = dataUrl.split(\",\");\n const type = header.match(/data:(.+);/)?.[1] ?? void 0;\n const decoded = window.atob(base64);\n const length = decoded.length;\n const buffer = new Uint8Array(length);\n for (let i = 0; i < length; i += 1) {\n buffer[i] = decoded.charCodeAt(i);\n }\n return new Blob([buffer], { type });\n}\nfunction readBlob(blob, type) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(reader.result);\n reader.onerror = () => reject(reader.error);\n reader.onabort = () => reject(new Error(`Failed read blob to ${type}`));\n if (type === \"dataUrl\") {\n reader.readAsDataURL(blob);\n } else if (type === \"arrayBuffer\") {\n reader.readAsArrayBuffer(blob);\n }\n });\n}\nconst blobToDataUrl = (blob) => readBlob(blob, \"dataUrl\");\nconst blobToArrayBuffer = (blob) => readBlob(blob, \"arrayBuffer\");\nfunction createImage(url, ownerDocument) {\n const img = getDocument(ownerDocument).createElement(\"img\");\n img.decoding = \"sync\";\n img.loading = \"eager\";\n img.src = url;\n return img;\n}\nfunction loadMedia(media, options) {\n return new Promise((resolve) => {\n const { timeout, ownerDocument, onError: userOnError, onWarn } = options ?? {};\n const node = typeof media === \"string\" ? createImage(media, getDocument(ownerDocument)) : media;\n let timer = null;\n let removeEventListeners = null;\n function onResolve() {\n resolve(node);\n timer && clearTimeout(timer);\n removeEventListeners?.();\n }\n if (timeout) {\n timer = setTimeout(onResolve, timeout);\n }\n if (isVideoElement(node)) {\n const currentSrc = node.currentSrc || node.src;\n if (!currentSrc) {\n if (node.poster) {\n return loadMedia(node.poster, options).then(resolve);\n }\n return onResolve();\n }\n if (node.readyState >= 2) {\n return onResolve();\n }\n const onLoadeddata = onResolve;\n const onError = (error) => {\n onWarn?.(\n \"Failed video load\",\n currentSrc,\n error\n );\n userOnError?.(error);\n onResolve();\n };\n removeEventListeners = () => {\n node.removeEventListener(\"loadeddata\", onLoadeddata);\n node.removeEventListener(\"error\", onError);\n };\n node.addEventListener(\"loadeddata\", onLoadeddata, { once: true });\n node.addEventListener(\"error\", onError, { once: true });\n } else {\n const currentSrc = isSVGImageElementNode(node) ? node.href.baseVal : node.currentSrc || node.src;\n if (!currentSrc) {\n return onResolve();\n }\n const onLoad = async () => {\n if (isImageElement(node) && \"decode\" in node) {\n try {\n await node.decode();\n } catch (error) {\n onWarn?.(\n \"Failed to decode image, trying to render anyway\",\n node.dataset.originalSrc || currentSrc,\n error\n );\n }\n }\n onResolve();\n };\n const onError = (error) => {\n onWarn?.(\n \"Failed image load\",\n node.dataset.originalSrc || currentSrc,\n error\n );\n onResolve();\n };\n if (isImageElement(node) && node.complete) {\n return onLoad();\n }\n removeEventListeners = () => {\n node.removeEventListener(\"load\", onLoad);\n node.removeEventListener(\"error\", onError);\n };\n node.addEventListener(\"load\", onLoad, { once: true });\n node.addEventListener(\"error\", onError, { once: true });\n }\n });\n}\nasync function waitUntilLoad(node, options) {\n if (isHTMLElementNode(node)) {\n if (isImageElement(node) || isVideoElement(node)) {\n await loadMedia(node, options);\n } else {\n await Promise.all(\n [\"img\", \"video\"].flatMap((selectors) => {\n return Array.from(node.querySelectorAll(selectors)).map((el) => loadMedia(el, options));\n })\n );\n }\n }\n}\nconst uuid = /* @__PURE__ */ function uuid2() {\n let counter = 0;\n const random = () => `0000${(Math.random() * 36 ** 4 << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n}();\nfunction splitFontFamily(fontFamily) {\n return fontFamily?.split(\",\").map((val) => val.trim().replace(/\"|'/g, \"\").toLowerCase()).filter(Boolean);\n}\n\nlet uid = 0;\nfunction createLogger(debug) {\n const prefix = `${PREFIX}[#${uid}]`;\n uid++;\n return {\n // eslint-disable-next-line no-console\n time: (label) => debug && console.time(`${prefix} ${label}`),\n // eslint-disable-next-line no-console\n timeEnd: (label) => debug && console.timeEnd(`${prefix} ${label}`),\n warn: (...args) => debug && consoleWarn(...args)\n };\n}\n\nfunction getDefaultRequestInit(bypassingCache) {\n return {\n cache: bypassingCache ? \"no-cache\" : \"force-cache\"\n };\n}\n\nasync function orCreateContext(node, options) {\n return isContext(node) ? node : createContext(node, { ...options, autoDestruct: true });\n}\nasync function createContext(node, options) {\n const { scale = 1, workerUrl, workerNumber = 1 } = options || {};\n const debug = Boolean(options?.debug);\n const features = options?.features ?? true;\n const ownerDocument = node.ownerDocument ?? (IN_BROWSER ? window.document : void 0);\n const ownerWindow = node.ownerDocument?.defaultView ?? (IN_BROWSER ? window : void 0);\n const requests = /* @__PURE__ */ new Map();\n const context = {\n // Options\n width: 0,\n height: 0,\n quality: 1,\n type: \"image/png\",\n scale,\n backgroundColor: null,\n style: null,\n filter: null,\n maximumCanvasSize: 0,\n timeout: 3e4,\n progress: null,\n debug,\n fetch: {\n requestInit: getDefaultRequestInit(options?.fetch?.bypassingCache),\n placeholderImage: \"data:image/png;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\",\n bypassingCache: false,\n ...options?.fetch\n },\n fetchFn: null,\n font: {},\n drawImageInterval: 100,\n workerUrl: null,\n workerNumber,\n onCloneEachNode: null,\n onCloneNode: null,\n onEmbedNode: null,\n onCreateForeignObjectSvg: null,\n includeStyleProperties: null,\n autoDestruct: false,\n ...options,\n // InternalContext\n __CONTEXT__: true,\n log: createLogger(debug),\n node,\n ownerDocument,\n ownerWindow,\n dpi: scale === 1 ? null : 96 * scale,\n svgStyleElement: createStyleElement(ownerDocument),\n svgDefsElement: ownerDocument?.createElementNS(XMLNS, \"defs\"),\n svgStyles: /* @__PURE__ */ new Map(),\n defaultComputedStyles: /* @__PURE__ */ new Map(),\n workers: [\n ...Array.from({\n length: SUPPORT_WEB_WORKER && workerUrl && workerNumber ? workerNumber : 0\n })\n ].map(() => {\n try {\n const worker = new Worker(workerUrl);\n worker.onmessage = async (event) => {\n const { url, result } = event.data;\n if (result) {\n requests.get(url)?.resolve?.(result);\n } else {\n requests.get(url)?.reject?.(new Error(`Error receiving message from worker: ${url}`));\n }\n };\n worker.onmessageerror = (event) => {\n const { url } = event.data;\n requests.get(url)?.reject?.(new Error(`Error receiving message from worker: ${url}`));\n };\n return worker;\n } catch (error) {\n context.log.warn(\"Failed to new Worker\", error);\n return null;\n }\n }).filter(Boolean),\n fontFamilies: /* @__PURE__ */ new Map(),\n fontCssTexts: /* @__PURE__ */ new Map(),\n acceptOfImage: `${[\n supportWebp(ownerDocument) && \"image/webp\",\n \"image/svg+xml\",\n \"image/*\",\n \"*/*\"\n ].filter(Boolean).join(\",\")};q=0.8`,\n requests,\n drawImageCount: 0,\n tasks: [],\n features,\n isEnable: (key) => {\n if (key === \"restoreScrollPosition\") {\n return typeof features === \"boolean\" ? false : features[key] ?? false;\n }\n if (typeof features === \"boolean\") {\n return features;\n }\n return features[key] ?? true;\n },\n shadowRoots: []\n };\n context.log.time(\"wait until load\");\n await waitUntilLoad(node, { timeout: context.timeout, onWarn: context.log.warn });\n context.log.timeEnd(\"wait until load\");\n const { width, height } = resolveBoundingBox(node, context);\n context.width = width;\n context.height = height;\n return context;\n}\nfunction createStyleElement(ownerDocument) {\n if (!ownerDocument)\n return void 0;\n const style = ownerDocument.createElement(\"style\");\n const cssText = style.ownerDocument.createTextNode(`\n.______background-clip--text {\n background-clip: text;\n -webkit-background-clip: text;\n}\n`);\n style.appendChild(cssText);\n return style;\n}\nfunction resolveBoundingBox(node, context) {\n let { width, height } = context;\n if (isElementNode(node) && (!width || !height)) {\n const box = node.getBoundingClientRect();\n width = width || box.width || Number(node.getAttribute(\"width\")) || 0;\n height = height || box.height || Number(node.getAttribute(\"height\")) || 0;\n }\n return { width, height };\n}\n\nasync function imageToCanvas(image, context) {\n const {\n log,\n timeout,\n drawImageCount,\n drawImageInterval\n } = context;\n log.time(\"image to canvas\");\n const loaded = await loadMedia(image, { timeout, onWarn: context.log.warn });\n const { canvas, context2d } = createCanvas(image.ownerDocument, context);\n const drawImage = () => {\n try {\n context2d?.drawImage(loaded, 0, 0, canvas.width, canvas.height);\n } catch (error) {\n context.log.warn(\"Failed to drawImage\", error);\n }\n };\n drawImage();\n if (context.isEnable(\"fixSvgXmlDecode\")) {\n for (let i = 0; i < drawImageCount; i++) {\n await new Promise((resolve) => {\n setTimeout(() => {\n context2d?.clearRect(0, 0, canvas.width, canvas.height);\n drawImage();\n resolve();\n }, i + drawImageInterval);\n });\n }\n }\n context.drawImageCount = 0;\n log.timeEnd(\"image to canvas\");\n return canvas;\n}\nfunction createCanvas(ownerDocument, context) {\n const { width, height, scale, backgroundColor, maximumCanvasSize: max } = context;\n const canvas = ownerDocument.createElement(\"canvas\");\n canvas.width = Math.floor(width * scale);\n canvas.height = Math.floor(height * scale);\n canvas.style.width = `${width}px`;\n canvas.style.height = `${height}px`;\n if (max) {\n if (canvas.width > max || canvas.height > max) {\n if (canvas.width > max && canvas.height > max) {\n if (canvas.width > canvas.height) {\n canvas.height *= max / canvas.width;\n canvas.width = max;\n } else {\n canvas.width *= max / canvas.height;\n canvas.height = max;\n }\n } else if (canvas.width > max) {\n canvas.height *= max / canvas.width;\n canvas.width = max;\n } else {\n canvas.width *= max / canvas.height;\n canvas.height = max;\n }\n }\n }\n const context2d = canvas.getContext(\"2d\");\n if (context2d && backgroundColor) {\n context2d.fillStyle = backgroundColor;\n context2d.fillRect(0, 0, canvas.width, canvas.height);\n }\n return { canvas, context2d };\n}\n\nfunction cloneCanvas(canvas, context) {\n if (canvas.ownerDocument) {\n try {\n const dataURL = canvas.toDataURL();\n if (dataURL !== \"data:,\") {\n return createImage(dataURL, canvas.ownerDocument);\n }\n } catch (error) {\n context.log.warn(\"Failed to clone canvas\", error);\n }\n }\n const cloned = canvas.cloneNode(false);\n const ctx = canvas.getContext(\"2d\");\n const clonedCtx = cloned.getContext(\"2d\");\n try {\n if (ctx && clonedCtx) {\n clonedCtx.putImageData(\n ctx.getImageData(0, 0, canvas.width, canvas.height),\n 0,\n 0\n );\n }\n return cloned;\n } catch (error) {\n context.log.warn(\"Failed to clone canvas\", error);\n }\n return cloned;\n}\n\nfunction cloneIframe(iframe, context) {\n try {\n if (iframe?.contentDocument?.body) {\n return cloneNode(iframe.contentDocument.body, context);\n }\n } catch (error) {\n context.log.warn(\"Failed to clone iframe\", error);\n }\n return iframe.cloneNode(false);\n}\n\nfunction cloneImage(image) {\n const cloned = image.cloneNode(false);\n if (image.currentSrc && image.currentSrc !== image.src) {\n cloned.src = image.currentSrc;\n cloned.srcset = \"\";\n }\n if (cloned.loading === \"lazy\") {\n cloned.loading = \"eager\";\n }\n return cloned;\n}\n\nasync function cloneVideo(video, context) {\n if (video.ownerDocument && !video.currentSrc && video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n const cloned = video.cloneNode(false);\n cloned.crossOrigin = \"anonymous\";\n if (video.currentSrc && video.currentSrc !== video.src) {\n cloned.src = video.currentSrc;\n }\n const ownerDocument = cloned.ownerDocument;\n if (ownerDocument) {\n let canPlay = true;\n await loadMedia(cloned, { onError: () => canPlay = false, onWarn: context.log.warn });\n if (!canPlay) {\n if (video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n return cloned;\n }\n cloned.currentTime = video.currentTime;\n await new Promise((resolve) => {\n cloned.addEventListener(\"seeked\", resolve, { once: true });\n });\n const canvas = ownerDocument.createElement(\"canvas\");\n canvas.width = video.offsetWidth;\n canvas.height = video.offsetHeight;\n try {\n const ctx = canvas.getContext(\"2d\");\n if (ctx)\n ctx.drawImage(cloned, 0, 0, canvas.width, canvas.height);\n } catch (error) {\n context.log.warn(\"Failed to clone video\", error);\n if (video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n return cloned;\n }\n return cloneCanvas(canvas, context);\n }\n return cloned;\n}\n\nfunction cloneElement(node, context) {\n if (isCanvasElement(node)) {\n return cloneCanvas(node, context);\n }\n if (isIFrameElement(node)) {\n return cloneIframe(node, context);\n }\n if (isImageElement(node)) {\n return cloneImage(node);\n }\n if (isVideoElement(node)) {\n return cloneVideo(node, context);\n }\n return node.cloneNode(false);\n}\n\nfunction getSandBox(context) {\n let sandbox = context.sandbox;\n if (!sandbox) {\n const { ownerDocument } = context;\n try {\n if (ownerDocument) {\n sandbox = ownerDocument.createElement(\"iframe\");\n sandbox.id = `__SANDBOX__${uuid()}`;\n sandbox.width = \"0\";\n sandbox.height = \"0\";\n sandbox.style.visibility = \"hidden\";\n sandbox.style.position = \"fixed\";\n ownerDocument.body.appendChild(sandbox);\n sandbox.srcdoc = '';\n context.sandbox = sandbox;\n }\n } catch (error) {\n context.log.warn(\"Failed to getSandBox\", error);\n }\n }\n return sandbox;\n}\n\nconst ignoredStyles = [\n \"width\",\n \"height\",\n \"-webkit-text-fill-color\"\n];\nconst includedAttributes = [\n \"stroke\",\n \"fill\"\n];\nfunction getDefaultStyle(node, pseudoElement, context) {\n const { defaultComputedStyles } = context;\n const nodeName = node.nodeName.toLowerCase();\n const isSvgNode = isSVGElementNode(node) && nodeName !== \"svg\";\n const attributes = isSvgNode ? includedAttributes.map((name) => [name, node.getAttribute(name)]).filter(([, value]) => value !== null) : [];\n const key = [\n isSvgNode && \"svg\",\n nodeName,\n attributes.map((name, value) => `${name}=${value}`).join(\",\"),\n pseudoElement\n ].filter(Boolean).join(\":\");\n if (defaultComputedStyles.has(key))\n return defaultComputedStyles.get(key);\n const sandbox = getSandBox(context);\n const sandboxWindow = sandbox?.contentWindow;\n if (!sandboxWindow)\n return /* @__PURE__ */ new Map();\n const sandboxDocument = sandboxWindow?.document;\n let root;\n let el;\n if (isSvgNode) {\n root = sandboxDocument.createElementNS(XMLNS, \"svg\");\n el = root.ownerDocument.createElementNS(root.namespaceURI, nodeName);\n attributes.forEach(([name, value]) => {\n el.setAttributeNS(null, name, value);\n });\n root.appendChild(el);\n } else {\n root = el = sandboxDocument.createElement(nodeName);\n }\n el.textContent = \" \";\n sandboxDocument.body.appendChild(root);\n const computedStyle = sandboxWindow.getComputedStyle(el, pseudoElement);\n const styles = /* @__PURE__ */ new Map();\n for (let len = computedStyle.length, i = 0; i < len; i++) {\n const name = computedStyle.item(i);\n if (ignoredStyles.includes(name))\n continue;\n styles.set(name, computedStyle.getPropertyValue(name));\n }\n sandboxDocument.body.removeChild(root);\n defaultComputedStyles.set(key, styles);\n return styles;\n}\n\nfunction getDiffStyle(style, defaultStyle, includeStyleProperties) {\n const diffStyle = /* @__PURE__ */ new Map();\n const prefixs = [];\n const prefixTree = /* @__PURE__ */ new Map();\n if (includeStyleProperties) {\n for (const name of includeStyleProperties) {\n applyTo(name);\n }\n } else {\n for (let len = style.length, i = 0; i < len; i++) {\n const name = style.item(i);\n applyTo(name);\n }\n }\n for (let len = prefixs.length, i = 0; i < len; i++) {\n prefixTree.get(prefixs[i])?.forEach((value, name) => diffStyle.set(name, value));\n }\n function applyTo(name) {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n const subIndex = name.lastIndexOf(\"-\");\n const prefix = subIndex > -1 ? name.substring(0, subIndex) : void 0;\n if (prefix) {\n let map = prefixTree.get(prefix);\n if (!map) {\n map = /* @__PURE__ */ new Map();\n prefixTree.set(prefix, map);\n }\n map.set(name, [value, priority]);\n }\n if (defaultStyle.get(name) === value && !priority)\n return;\n if (prefix) {\n prefixs.push(prefix);\n } else {\n diffStyle.set(name, [value, priority]);\n }\n }\n return diffStyle;\n}\n\nfunction copyCssStyles(node, cloned, isRoot, context) {\n const { ownerWindow, includeStyleProperties, currentParentNodeStyle } = context;\n const clonedStyle = cloned.style;\n const computedStyle = ownerWindow.getComputedStyle(node);\n const defaultStyle = getDefaultStyle(node, null, context);\n currentParentNodeStyle?.forEach((_, key) => {\n defaultStyle.delete(key);\n });\n const style = getDiffStyle(computedStyle, defaultStyle, includeStyleProperties);\n style.delete(\"transition-property\");\n style.delete(\"all\");\n style.delete(\"d\");\n style.delete(\"content\");\n if (isRoot) {\n style.delete(\"margin-top\");\n style.delete(\"margin-right\");\n style.delete(\"margin-bottom\");\n style.delete(\"margin-left\");\n style.delete(\"margin-block-start\");\n style.delete(\"margin-block-end\");\n style.delete(\"margin-inline-start\");\n style.delete(\"margin-inline-end\");\n style.set(\"box-sizing\", [\"border-box\", \"\"]);\n }\n if (style.get(\"background-clip\")?.[0] === \"text\") {\n cloned.classList.add(\"______background-clip--text\");\n }\n if (IN_CHROME) {\n if (!style.has(\"font-kerning\"))\n style.set(\"font-kerning\", [\"normal\", \"\"]);\n if ((style.get(\"overflow-x\")?.[0] === \"hidden\" || style.get(\"overflow-y\")?.[0] === \"hidden\") && style.get(\"text-overflow\")?.[0] === \"ellipsis\" && node.scrollWidth === node.clientWidth) {\n style.set(\"text-overflow\", [\"clip\", \"\"]);\n }\n }\n for (let len = clonedStyle.length, i = 0; i < len; i++) {\n clonedStyle.removeProperty(clonedStyle.item(i));\n }\n style.forEach(([value, priority], name) => {\n clonedStyle.setProperty(name, value, priority);\n });\n return style;\n}\n\nfunction copyInputValue(node, cloned) {\n if (isTextareaElement(node) || isInputElement(node) || isSelectElement(node)) {\n cloned.setAttribute(\"value\", node.value);\n }\n}\n\nconst pseudoClasses = [\n \"::before\",\n \"::after\"\n // '::placeholder', TODO\n];\nconst scrollbarPseudoClasses = [\n \"::-webkit-scrollbar\",\n \"::-webkit-scrollbar-button\",\n // '::-webkit-scrollbar:horizontal', TODO\n \"::-webkit-scrollbar-thumb\",\n \"::-webkit-scrollbar-track\",\n \"::-webkit-scrollbar-track-piece\",\n // '::-webkit-scrollbar:vertical', TODO\n \"::-webkit-scrollbar-corner\",\n \"::-webkit-resizer\"\n];\nfunction copyPseudoClass(node, cloned, copyScrollbar, context, addWordToFontFamilies) {\n const { ownerWindow, svgStyleElement, svgStyles, currentNodeStyle } = context;\n if (!svgStyleElement || !ownerWindow)\n return;\n function copyBy(pseudoClass) {\n const computedStyle = ownerWindow.getComputedStyle(node, pseudoClass);\n let content = computedStyle.getPropertyValue(\"content\");\n if (!content || content === \"none\")\n return;\n addWordToFontFamilies?.(content);\n content = content.replace(/(')|(\")|(counter\\(.+\\))/g, \"\");\n const klasses = [uuid()];\n const defaultStyle = getDefaultStyle(node, pseudoClass, context);\n currentNodeStyle?.forEach((_, key) => {\n defaultStyle.delete(key);\n });\n const style = getDiffStyle(computedStyle, defaultStyle, context.includeStyleProperties);\n style.delete(\"content\");\n style.delete(\"-webkit-locale\");\n if (style.get(\"background-clip\")?.[0] === \"text\") {\n cloned.classList.add(\"______background-clip--text\");\n }\n const cloneStyle = [\n `content: '${content}';`\n ];\n style.forEach(([value, priority], name) => {\n cloneStyle.push(`${name}: ${value}${priority ? \" !important\" : \"\"};`);\n });\n if (cloneStyle.length === 1)\n return;\n try {\n cloned.className = [cloned.className, ...klasses].join(\" \");\n } catch (err) {\n context.log.warn(\"Failed to copyPseudoClass\", err);\n return;\n }\n const cssText = cloneStyle.join(\"\\n \");\n let allClasses = svgStyles.get(cssText);\n if (!allClasses) {\n allClasses = [];\n svgStyles.set(cssText, allClasses);\n }\n allClasses.push(`.${klasses[0]}${pseudoClass}`);\n }\n pseudoClasses.forEach(copyBy);\n if (copyScrollbar)\n scrollbarPseudoClasses.forEach(copyBy);\n}\n\nconst excludeParentNodes = /* @__PURE__ */ new Set([\n \"symbol\"\n // test/fixtures/svg.symbol.html\n]);\nasync function appendChildNode(node, cloned, child, context, addWordToFontFamilies) {\n if (isElementNode(child) && (isStyleElement(child) || isScriptElement(child)))\n return;\n if (context.filter && !context.filter(child))\n return;\n if (excludeParentNodes.has(cloned.nodeName) || excludeParentNodes.has(child.nodeName)) {\n context.currentParentNodeStyle = void 0;\n } else {\n context.currentParentNodeStyle = context.currentNodeStyle;\n }\n const childCloned = await cloneNode(child, context, false, addWordToFontFamilies);\n if (context.isEnable(\"restoreScrollPosition\")) {\n restoreScrollPosition(node, childCloned);\n }\n cloned.appendChild(childCloned);\n}\nasync function cloneChildNodes(node, cloned, context, addWordToFontFamilies) {\n let firstChild = node.firstChild;\n if (isElementNode(node)) {\n if (node.shadowRoot) {\n firstChild = node.shadowRoot?.firstChild;\n context.shadowRoots.push(node.shadowRoot);\n }\n }\n for (let child = firstChild; child; child = child.nextSibling) {\n if (isCommentNode(child))\n continue;\n if (isElementNode(child) && isSlotElement(child) && typeof child.assignedNodes === \"function\") {\n const nodes = child.assignedNodes();\n for (let i = 0; i < nodes.length; i++) {\n await appendChildNode(node, cloned, nodes[i], context, addWordToFontFamilies);\n }\n } else {\n await appendChildNode(node, cloned, child, context, addWordToFontFamilies);\n }\n }\n}\nfunction restoreScrollPosition(node, chlidCloned) {\n if (!isHTMLElementNode(node) || !isHTMLElementNode(chlidCloned))\n return;\n const { scrollTop, scrollLeft } = node;\n if (!scrollTop && !scrollLeft) {\n return;\n }\n const { transform } = chlidCloned.style;\n const matrix = new DOMMatrix(transform);\n const { a, b, c, d } = matrix;\n matrix.a = 1;\n matrix.b = 0;\n matrix.c = 0;\n matrix.d = 1;\n matrix.translateSelf(-scrollLeft, -scrollTop);\n matrix.a = a;\n matrix.b = b;\n matrix.c = c;\n matrix.d = d;\n chlidCloned.style.transform = matrix.toString();\n}\nfunction applyCssStyleWithOptions(cloned, context) {\n const { backgroundColor, width, height, style: styles } = context;\n const clonedStyle = cloned.style;\n if (backgroundColor)\n clonedStyle.setProperty(\"background-color\", backgroundColor, \"important\");\n if (width)\n clonedStyle.setProperty(\"width\", `${width}px`, \"important\");\n if (height)\n clonedStyle.setProperty(\"height\", `${height}px`, \"important\");\n if (styles) {\n for (const name in styles) clonedStyle[name] = styles[name];\n }\n}\nconst NORMAL_ATTRIBUTE_RE = /^[\\w-:]+$/;\nasync function cloneNode(node, context, isRoot = false, addWordToFontFamilies) {\n const { ownerDocument, ownerWindow, fontFamilies, onCloneEachNode } = context;\n if (ownerDocument && isTextNode(node)) {\n if (addWordToFontFamilies && /\\S/.test(node.data)) {\n addWordToFontFamilies(node.data);\n }\n return ownerDocument.createTextNode(node.data);\n }\n if (ownerDocument && ownerWindow && isElementNode(node) && (isHTMLElementNode(node) || isSVGElementNode(node))) {\n const cloned2 = await cloneElement(node, context);\n if (context.isEnable(\"removeAbnormalAttributes\")) {\n const names = cloned2.getAttributeNames();\n for (let len = names.length, i = 0; i < len; i++) {\n const name = names[i];\n if (!NORMAL_ATTRIBUTE_RE.test(name)) {\n cloned2.removeAttribute(name);\n }\n }\n }\n const style = context.currentNodeStyle = copyCssStyles(node, cloned2, isRoot, context);\n if (isRoot)\n applyCssStyleWithOptions(cloned2, context);\n let copyScrollbar = false;\n if (context.isEnable(\"copyScrollbar\")) {\n const overflow = [\n style.get(\"overflow-x\")?.[0],\n style.get(\"overflow-y\")?.[0]\n ];\n copyScrollbar = overflow.includes(\"scroll\") || (overflow.includes(\"auto\") || overflow.includes(\"overlay\")) && (node.scrollHeight > node.clientHeight || node.scrollWidth > node.clientWidth);\n }\n const textTransform = style.get(\"text-transform\")?.[0];\n const families = splitFontFamily(style.get(\"font-family\")?.[0]);\n const addWordToFontFamilies2 = families ? (word) => {\n if (textTransform === \"uppercase\") {\n word = word.toUpperCase();\n } else if (textTransform === \"lowercase\") {\n word = word.toLowerCase();\n } else if (textTransform === \"capitalize\") {\n word = word[0].toUpperCase() + word.substring(1);\n }\n families.forEach((family) => {\n let fontFamily = fontFamilies.get(family);\n if (!fontFamily) {\n fontFamilies.set(family, fontFamily = /* @__PURE__ */ new Set());\n }\n word.split(\"\").forEach((text) => fontFamily.add(text));\n });\n } : void 0;\n copyPseudoClass(\n node,\n cloned2,\n copyScrollbar,\n context,\n addWordToFontFamilies2\n );\n copyInputValue(node, cloned2);\n if (!isVideoElement(node)) {\n await cloneChildNodes(\n node,\n cloned2,\n context,\n addWordToFontFamilies2\n );\n }\n await onCloneEachNode?.(cloned2);\n return cloned2;\n }\n const cloned = node.cloneNode(false);\n await cloneChildNodes(node, cloned, context);\n await onCloneEachNode?.(cloned);\n return cloned;\n}\n\nfunction destroyContext(context) {\n context.ownerDocument = void 0;\n context.ownerWindow = void 0;\n context.svgStyleElement = void 0;\n context.svgDefsElement = void 0;\n context.svgStyles.clear();\n context.defaultComputedStyles.clear();\n if (context.sandbox) {\n try {\n context.sandbox.remove();\n } catch (err) {\n context.log.warn(\"Failed to destroyContext\", err);\n }\n context.sandbox = void 0;\n }\n context.workers = [];\n context.fontFamilies.clear();\n context.fontCssTexts.clear();\n context.requests.clear();\n context.tasks = [];\n context.shadowRoots = [];\n}\n\nfunction baseFetch(options) {\n const { url, timeout, responseType, ...requestInit } = options;\n const controller = new AbortController();\n const timer = timeout ? setTimeout(() => controller.abort(), timeout) : void 0;\n return fetch(url, { signal: controller.signal, ...requestInit }).then((response) => {\n if (!response.ok) {\n throw new Error(\"Failed fetch, not 2xx response\", { cause: response });\n }\n switch (responseType) {\n case \"arrayBuffer\":\n return response.arrayBuffer();\n case \"dataUrl\":\n return response.blob().then(blobToDataUrl);\n case \"text\":\n default:\n return response.text();\n }\n }).finally(() => clearTimeout(timer));\n}\nfunction contextFetch(context, options) {\n const { url: rawUrl, requestType = \"text\", responseType = \"text\", imageDom } = options;\n let url = rawUrl;\n const {\n timeout,\n acceptOfImage,\n requests,\n fetchFn,\n fetch: {\n requestInit,\n bypassingCache,\n placeholderImage\n },\n font,\n workers,\n fontFamilies\n } = context;\n if (requestType === \"image\" && (IN_SAFARI || IN_FIREFOX)) {\n context.drawImageCount++;\n }\n let request = requests.get(rawUrl);\n if (!request) {\n if (bypassingCache) {\n if (bypassingCache instanceof RegExp && bypassingCache.test(url)) {\n url += (/\\?/.test(url) ? \"&\" : \"?\") + (/* @__PURE__ */ new Date()).getTime();\n }\n }\n const canFontMinify = requestType.startsWith(\"font\") && font && font.minify;\n const fontTexts = /* @__PURE__ */ new Set();\n if (canFontMinify) {\n const families = requestType.split(\";\")[1].split(\",\");\n families.forEach((family) => {\n if (!fontFamilies.has(family))\n return;\n fontFamilies.get(family).forEach((text) => fontTexts.add(text));\n });\n }\n const needFontMinify = canFontMinify && fontTexts.size;\n const baseFetchOptions = {\n url,\n timeout,\n responseType: needFontMinify ? \"arrayBuffer\" : responseType,\n headers: requestType === \"image\" ? { accept: acceptOfImage } : void 0,\n ...requestInit\n };\n request = {\n type: requestType,\n resolve: void 0,\n reject: void 0,\n response: null\n };\n request.response = (async () => {\n if (fetchFn && requestType === \"image\") {\n const result = await fetchFn(rawUrl);\n if (result)\n return result;\n }\n if (!IN_SAFARI && rawUrl.startsWith(\"http\") && workers.length) {\n return new Promise((resolve, reject) => {\n const worker = workers[requests.size & workers.length - 1];\n worker.postMessage({ rawUrl, ...baseFetchOptions });\n request.resolve = resolve;\n request.reject = reject;\n });\n }\n return baseFetch(baseFetchOptions);\n })().catch((error) => {\n requests.delete(rawUrl);\n if (requestType === \"image\" && placeholderImage) {\n context.log.warn(\"Failed to fetch image base64, trying to use placeholder image\", url);\n return typeof placeholderImage === \"string\" ? placeholderImage : placeholderImage(imageDom);\n }\n throw error;\n });\n requests.set(rawUrl, request);\n }\n return request.response;\n}\n\nasync function replaceCssUrlToDataUrl(cssText, baseUrl, context, isImage) {\n if (!hasCssUrl(cssText))\n return cssText;\n for (const [rawUrl, url] of parseCssUrls(cssText, baseUrl)) {\n try {\n const dataUrl = await contextFetch(\n context,\n {\n url,\n requestType: isImage ? \"image\" : \"text\",\n responseType: \"dataUrl\"\n }\n );\n cssText = cssText.replace(toRE(rawUrl), `$1${dataUrl}$3`);\n } catch (error) {\n context.log.warn(\"Failed to fetch css data url\", rawUrl, error);\n }\n }\n return cssText;\n}\nfunction hasCssUrl(cssText) {\n return /url\\((['\"]?)([^'\"]+?)\\1\\)/.test(cssText);\n}\nconst URL_RE = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nfunction parseCssUrls(cssText, baseUrl) {\n const result = [];\n cssText.replace(URL_RE, (raw, quotation, url) => {\n result.push([url, resolveUrl(url, baseUrl)]);\n return raw;\n });\n return result.filter(([url]) => !isDataUrl(url));\n}\nfunction toRE(url) {\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\");\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, \"g\");\n}\n\nconst properties = [\n \"background-image\",\n \"border-image-source\",\n \"-webkit-border-image\",\n \"-webkit-mask-image\",\n \"list-style-image\"\n];\nfunction embedCssStyleImage(style, context) {\n return properties.map((property) => {\n const value = style.getPropertyValue(property);\n if (!value || value === \"none\") {\n return null;\n }\n if (IN_SAFARI || IN_FIREFOX) {\n context.drawImageCount++;\n }\n return replaceCssUrlToDataUrl(value, null, context, true).then((newValue) => {\n if (!newValue || value === newValue)\n return;\n style.setProperty(\n property,\n newValue,\n style.getPropertyPriority(property)\n );\n });\n }).filter(Boolean);\n}\n\nfunction embedImageElement(cloned, context) {\n if (isImageElement(cloned)) {\n const originalSrc = cloned.currentSrc || cloned.src;\n if (!isDataUrl(originalSrc)) {\n return [\n contextFetch(context, {\n url: originalSrc,\n imageDom: cloned,\n requestType: \"image\",\n responseType: \"dataUrl\"\n }).then((url) => {\n if (!url)\n return;\n cloned.srcset = \"\";\n cloned.dataset.originalSrc = originalSrc;\n cloned.src = url || \"\";\n })\n ];\n }\n if (IN_SAFARI || IN_FIREFOX) {\n context.drawImageCount++;\n }\n } else if (isSVGElementNode(cloned) && !isDataUrl(cloned.href.baseVal)) {\n const originalSrc = cloned.href.baseVal;\n return [\n contextFetch(context, {\n url: originalSrc,\n imageDom: cloned,\n requestType: \"image\",\n responseType: \"dataUrl\"\n }).then((url) => {\n if (!url)\n return;\n cloned.dataset.originalSrc = originalSrc;\n cloned.href.baseVal = url || \"\";\n })\n ];\n }\n return [];\n}\n\nfunction embedSvgUse(cloned, context) {\n const { ownerDocument, svgDefsElement } = context;\n const href = cloned.getAttribute(\"href\") ?? cloned.getAttribute(\"xlink:href\");\n if (!href)\n return [];\n const [svgUrl, id] = href.split(\"#\");\n if (id) {\n const query = `#${id}`;\n const definition = context.shadowRoots.reduce(\n (res, root) => {\n return res ?? root.querySelector(`svg ${query}`);\n },\n ownerDocument?.querySelector(`svg ${query}`)\n );\n if (svgUrl) {\n cloned.setAttribute(\"href\", query);\n }\n if (svgDefsElement?.querySelector(query))\n return [];\n if (definition) {\n svgDefsElement?.appendChild(definition.cloneNode(true));\n return [];\n } else if (svgUrl) {\n return [\n contextFetch(context, {\n url: svgUrl,\n responseType: \"text\"\n }).then((svgData) => {\n svgDefsElement?.insertAdjacentHTML(\"beforeend\", svgData);\n })\n ];\n }\n }\n return [];\n}\n\nfunction embedNode(cloned, context) {\n const { tasks } = context;\n if (isElementNode(cloned)) {\n if (isImageElement(cloned) || isSVGImageElementNode(cloned)) {\n tasks.push(...embedImageElement(cloned, context));\n }\n if (isSVGUseElementNode(cloned)) {\n tasks.push(...embedSvgUse(cloned, context));\n }\n }\n if (isHTMLElementNode(cloned)) {\n tasks.push(...embedCssStyleImage(cloned.style, context));\n }\n cloned.childNodes.forEach((child) => {\n embedNode(child, context);\n });\n}\n\nasync function embedWebFont(clone, context) {\n const {\n ownerDocument,\n svgStyleElement,\n fontFamilies,\n fontCssTexts,\n tasks,\n font\n } = context;\n if (!ownerDocument || !svgStyleElement || !fontFamilies.size) {\n return;\n }\n if (font && font.cssText) {\n const cssText = filterPreferredFormat(font.cssText, context);\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText}\n`));\n } else {\n const styleSheets = Array.from(ownerDocument.styleSheets).filter((styleSheet) => {\n try {\n return \"cssRules\" in styleSheet && Boolean(styleSheet.cssRules.length);\n } catch (error) {\n context.log.warn(`Error while reading CSS rules from ${styleSheet.href}`, error);\n return false;\n }\n });\n await Promise.all(\n styleSheets.flatMap((styleSheet) => {\n return Array.from(styleSheet.cssRules).map(async (cssRule, index) => {\n if (isCSSImportRule(cssRule)) {\n let importIndex = index + 1;\n const baseUrl = cssRule.href;\n let cssText = \"\";\n try {\n cssText = await contextFetch(context, {\n url: baseUrl,\n requestType: \"text\",\n responseType: \"text\"\n });\n } catch (error) {\n context.log.warn(`Error fetch remote css import from ${baseUrl}`, error);\n }\n const replacedCssText = cssText.replace(\n URL_RE,\n (raw, quotation, url) => raw.replace(url, resolveUrl(url, baseUrl))\n );\n for (const rule of parseCss(replacedCssText)) {\n try {\n styleSheet.insertRule(\n rule,\n rule.startsWith(\"@import\") ? importIndex += 1 : styleSheet.cssRules.length\n );\n } catch (error) {\n context.log.warn(\"Error inserting rule from remote css import\", { rule, error });\n }\n }\n }\n });\n })\n );\n const cssRules = [];\n styleSheets.forEach((sheet) => {\n unwrapCssLayers(sheet.cssRules, cssRules);\n });\n cssRules.filter((cssRule) => isCssFontFaceRule(cssRule) && hasCssUrl(cssRule.style.getPropertyValue(\"src\")) && splitFontFamily(cssRule.style.getPropertyValue(\"font-family\"))?.some((val) => fontFamilies.has(val))).forEach((value) => {\n const rule = value;\n const cssText = fontCssTexts.get(rule.cssText);\n if (cssText) {\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText}\n`));\n } else {\n tasks.push(\n replaceCssUrlToDataUrl(\n rule.cssText,\n rule.parentStyleSheet ? rule.parentStyleSheet.href : null,\n context\n ).then((cssText2) => {\n cssText2 = filterPreferredFormat(cssText2, context);\n fontCssTexts.set(rule.cssText, cssText2);\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText2}\n`));\n })\n );\n }\n });\n }\n}\nconst COMMENTS_RE = /(\\/\\*[\\s\\S]*?\\*\\/)/g;\nconst KEYFRAMES_RE = /((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})/gi;\nfunction parseCss(source) {\n if (source == null)\n return [];\n const result = [];\n let cssText = source.replace(COMMENTS_RE, \"\");\n while (true) {\n const matches = KEYFRAMES_RE.exec(cssText);\n if (!matches)\n break;\n result.push(matches[0]);\n }\n cssText = cssText.replace(KEYFRAMES_RE, \"\");\n const IMPORT_RE = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n const UNIFIED_RE = new RegExp(\n // eslint-disable-next-line\n \"((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})\",\n \"gi\"\n );\n while (true) {\n let matches = IMPORT_RE.exec(cssText);\n if (!matches) {\n matches = UNIFIED_RE.exec(cssText);\n if (!matches) {\n break;\n } else {\n IMPORT_RE.lastIndex = UNIFIED_RE.lastIndex;\n }\n } else {\n UNIFIED_RE.lastIndex = IMPORT_RE.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nconst URL_WITH_FORMAT_RE = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_RE = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction filterPreferredFormat(str, context) {\n const { font } = context;\n const preferredFormat = font ? font?.preferredFormat : void 0;\n return preferredFormat ? str.replace(FONT_SRC_RE, (match) => {\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_RE.exec(match) || [];\n if (!format)\n return \"\";\n if (format === preferredFormat)\n return `src: ${src};`;\n }\n }) : str;\n}\nfunction unwrapCssLayers(rules, out = []) {\n for (const rule of Array.from(rules)) {\n if (isLayerBlockRule(rule)) {\n out.push(...unwrapCssLayers(rule.cssRules));\n } else if (\"cssRules\" in rule) {\n unwrapCssLayers(rule.cssRules, out);\n } else {\n out.push(rule);\n }\n }\n return out;\n}\n\nasync function domToForeignObjectSvg(node, options) {\n const context = await orCreateContext(node, options);\n if (isElementNode(context.node) && isSVGElementNode(context.node))\n return context.node;\n const {\n ownerDocument,\n log,\n tasks,\n svgStyleElement,\n svgDefsElement,\n svgStyles,\n font,\n progress,\n autoDestruct,\n onCloneNode,\n onEmbedNode,\n onCreateForeignObjectSvg\n } = context;\n log.time(\"clone node\");\n const clone = await cloneNode(context.node, context, true);\n if (svgStyleElement && ownerDocument) {\n let allCssText = \"\";\n svgStyles.forEach((klasses, cssText) => {\n allCssText += `${klasses.join(\",\\n\")} {\n ${cssText}\n}\n`;\n });\n svgStyleElement.appendChild(ownerDocument.createTextNode(allCssText));\n }\n log.timeEnd(\"clone node\");\n await onCloneNode?.(clone);\n if (font !== false && isElementNode(clone)) {\n log.time(\"embed web font\");\n await embedWebFont(clone, context);\n log.timeEnd(\"embed web font\");\n }\n log.time(\"embed node\");\n embedNode(clone, context);\n const count = tasks.length;\n let current = 0;\n const runTask = async () => {\n while (true) {\n const task = tasks.pop();\n if (!task)\n break;\n try {\n await task;\n } catch (error) {\n context.log.warn(\"Failed to run task\", error);\n }\n progress?.(++current, count);\n }\n };\n progress?.(current, count);\n await Promise.all([...Array.from({ length: 4 })].map(runTask));\n log.timeEnd(\"embed node\");\n await onEmbedNode?.(clone);\n const svg = createForeignObjectSvg(clone, context);\n svgDefsElement && svg.insertBefore(svgDefsElement, svg.children[0]);\n svgStyleElement && svg.insertBefore(svgStyleElement, svg.children[0]);\n autoDestruct && destroyContext(context);\n await onCreateForeignObjectSvg?.(svg);\n return svg;\n}\nfunction createForeignObjectSvg(clone, context) {\n const { width, height } = context;\n const svg = createSvg(width, height, clone.ownerDocument);\n const foreignObject = svg.ownerDocument.createElementNS(svg.namespaceURI, \"foreignObject\");\n foreignObject.setAttributeNS(null, \"x\", \"0%\");\n foreignObject.setAttributeNS(null, \"y\", \"0%\");\n foreignObject.setAttributeNS(null, \"width\", \"100%\");\n foreignObject.setAttributeNS(null, \"height\", \"100%\");\n foreignObject.append(clone);\n svg.appendChild(foreignObject);\n return svg;\n}\n\nasync function domToCanvas(node, options) {\n const context = await orCreateContext(node, options);\n const svg = await domToForeignObjectSvg(context);\n const dataUrl = svgToDataUrl(svg, context.isEnable(\"removeControlCharacter\"));\n if (!context.autoDestruct) {\n context.svgStyleElement = createStyleElement(context.ownerDocument);\n context.svgDefsElement = context.ownerDocument?.createElementNS(XMLNS, \"defs\");\n context.svgStyles.clear();\n }\n const image = createImage(dataUrl, svg.ownerDocument);\n return await imageToCanvas(image, context);\n}\n\nasync function domToBlob(node, options) {\n const context = await orCreateContext(node, options);\n const { log, type, quality, dpi } = context;\n const canvas = await domToCanvas(context);\n log.time(\"canvas to blob\");\n const blob = await canvasToBlob(canvas, type, quality);\n if ([\"image/png\", \"image/jpeg\"].includes(type) && dpi) {\n const arrayBuffer = await blobToArrayBuffer(blob.slice(0, 33));\n let uint8Array = new Uint8Array(arrayBuffer);\n if (type === \"image/png\") {\n uint8Array = changePngDpi(uint8Array, dpi);\n } else if (type === \"image/jpeg\") {\n uint8Array = changeJpegDpi(uint8Array, dpi);\n }\n log.timeEnd(\"canvas to blob\");\n return new Blob([uint8Array, blob.slice(33)], { type });\n }\n log.timeEnd(\"canvas to blob\");\n return blob;\n}\n\nasync function domToDataUrl(node, options) {\n const context = await orCreateContext(node, options);\n const { log, quality, type, dpi } = context;\n const canvas = await domToCanvas(context);\n log.time(\"canvas to data url\");\n let dataUrl = canvas.toDataURL(type, quality);\n if ([\"image/png\", \"image/jpeg\"].includes(type) && dpi && SUPPORT_ATOB && SUPPORT_BTOA) {\n const [format, body] = dataUrl.split(\",\");\n let headerLength = 0;\n let overwritepHYs = false;\n if (type === \"image/png\") {\n const b64Index = detectPhysChunkFromDataUrl(body);\n if (b64Index >= 0) {\n headerLength = Math.ceil((b64Index + 28) / 3) * 4;\n overwritepHYs = true;\n } else {\n headerLength = 33 / 3 * 4;\n }\n } else if (type === \"image/jpeg\") {\n headerLength = 18 / 3 * 4;\n }\n const stringHeader = body.substring(0, headerLength);\n const restOfData = body.substring(headerLength);\n const headerBytes = window.atob(stringHeader);\n const uint8Array = new Uint8Array(headerBytes.length);\n for (let i = 0; i < uint8Array.length; i++) {\n uint8Array[i] = headerBytes.charCodeAt(i);\n }\n const finalArray = type === \"image/png\" ? changePngDpi(uint8Array, dpi, overwritepHYs) : changeJpegDpi(uint8Array, dpi);\n const base64Header = window.btoa(String.fromCharCode(...finalArray));\n dataUrl = [format, \",\", base64Header, restOfData].join(\"\");\n }\n log.timeEnd(\"canvas to data url\");\n return dataUrl;\n}\n\nasync function domToSvg(node, options) {\n const context = await orCreateContext(node, options);\n const { width, height, ownerDocument } = context;\n const dataUrl = await domToDataUrl(context);\n const svg = createSvg(width, height, ownerDocument);\n const svgImage = svg.ownerDocument.createElementNS(svg.namespaceURI, \"image\");\n svgImage.setAttributeNS(null, \"href\", dataUrl);\n svgImage.setAttributeNS(null, \"height\", \"100%\");\n svgImage.setAttributeNS(null, \"width\", \"100%\");\n svg.appendChild(svgImage);\n return svgToDataUrl(svg, context.isEnable(\"removeControlCharacter\"));\n}\n\nasync function domToImage(node, options) {\n const context = await orCreateContext(node, options);\n const { ownerDocument, width, height, scale, type } = context;\n const url = type === \"image/svg+xml\" ? await domToSvg(context) : await domToDataUrl(context);\n const image = createImage(url, ownerDocument);\n image.width = Math.floor(width * scale);\n image.height = Math.floor(height * scale);\n image.style.width = `${width}px`;\n image.style.height = `${height}px`;\n return image;\n}\n\nasync function domToJpeg(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/jpeg\" })\n );\n}\n\nasync function domToPixel(node, options) {\n const context = await orCreateContext(node, options);\n const canvas = await domToCanvas(context);\n return canvas.getContext(\"2d\").getImageData(0, 0, canvas.width, canvas.height).data;\n}\n\nasync function domToPng(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/png\" })\n );\n}\n\nasync function domToWebp(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/webp\" })\n );\n}\n\nexport { createContext, destroyContext, domToBlob, domToCanvas, domToDataUrl, domToForeignObjectSvg, domToImage, domToJpeg, domToPixel, domToPng, domToSvg, domToWebp, loadMedia, waitUntilLoad };\n", + "/*!\n * Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2025 Fonticons, Inc.\n */\n(function () {\n 'use strict';\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n } catch (e) {} // eslint-disable-line no-empty\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n }\n function _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n }\n function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n }\n\n var _dt;\n var q = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n slab: {\n \"fa-regular\": \"regular\",\n faslr: \"regular\"\n },\n \"slab-press\": {\n \"fa-regular\": \"regular\",\n faslpr: \"regular\"\n },\n thumbprint: {\n \"fa-light\": \"light\",\n fatl: \"light\"\n },\n whiteboard: {\n \"fa-semibold\": \"semibold\",\n fawsb: \"semibold\"\n },\n notdog: {\n \"fa-solid\": \"solid\",\n fans: \"solid\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"solid\",\n fands: \"solid\"\n },\n etch: {\n \"fa-solid\": \"solid\",\n faes: \"solid\"\n },\n jelly: {\n \"fa-regular\": \"regular\",\n fajr: \"regular\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"regular\",\n fajfr: \"regular\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"regular\",\n fajdr: \"regular\"\n },\n chisel: {\n \"fa-regular\": \"regular\",\n facr: \"regular\"\n },\n utility: {\n \"fa-semibold\": \"semibold\",\n fausb: \"semibold\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"semibold\",\n faudsb: \"semibold\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"semibold\",\n faufsb: \"semibold\"\n }\n };\n var i = \"classic\",\n t = \"duotone\",\n d = \"sharp\",\n l = \"sharp-duotone\",\n f = \"chisel\",\n n = \"etch\",\n h = \"jelly\",\n o = \"jelly-duo\",\n u = \"jelly-fill\",\n g = \"notdog\",\n s = \"notdog-duo\",\n y = \"slab\",\n m = \"slab-press\",\n e = \"thumbprint\",\n p = \"utility\",\n a = \"utility-duo\",\n w = \"utility-fill\",\n x = \"whiteboard\",\n b = \"Classic\",\n c = \"Duotone\",\n I = \"Sharp\",\n F = \"Sharp Duotone\",\n v = \"Chisel\",\n S = \"Etch\",\n A = \"Jelly\",\n P = \"Jelly Duo\",\n j = \"Jelly Fill\",\n B = \"Notdog\",\n N = \"Notdog Duo\",\n k = \"Slab\",\n D = \"Slab Press\",\n T = \"Thumbprint\",\n C = \"Utility\",\n W = \"Utility Duo\",\n K = \"Utility Fill\",\n R = \"Whiteboard\",\n dt = (_dt = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, i, b), t, c), d, I), l, F), f, v), n, S), h, A), o, P), u, j), g, B), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, s, N), y, k), m, D), e, T), p, C), a, W), w, K), x, R));\n var gt = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n slab: {\n 400: \"faslr\"\n },\n \"slab-press\": {\n 400: \"faslpr\"\n },\n whiteboard: {\n 600: \"fawsb\"\n },\n thumbprint: {\n 300: \"fatl\"\n },\n notdog: {\n 900: \"fans\"\n },\n \"notdog-duo\": {\n 900: \"fands\"\n },\n etch: {\n 900: \"faes\"\n },\n chisel: {\n 400: \"facr\"\n },\n jelly: {\n 400: \"fajr\"\n },\n \"jelly-fill\": {\n 400: \"fajfr\"\n },\n \"jelly-duo\": {\n 400: \"fajdr\"\n },\n utility: {\n 600: \"fausb\"\n },\n \"utility-duo\": {\n 600: \"faudsb\"\n },\n \"utility-fill\": {\n 600: \"faufsb\"\n }\n };\n var _t = {\n chisel: {\n regular: \"facr\"\n },\n classic: {\n brands: \"fab\",\n light: \"fal\",\n regular: \"far\",\n solid: \"fas\",\n thin: \"fat\"\n },\n duotone: {\n light: \"fadl\",\n regular: \"fadr\",\n solid: \"fad\",\n thin: \"fadt\"\n },\n etch: {\n solid: \"faes\"\n },\n jelly: {\n regular: \"fajr\"\n },\n \"jelly-duo\": {\n regular: \"fajdr\"\n },\n \"jelly-fill\": {\n regular: \"fajfr\"\n },\n notdog: {\n solid: \"fans\"\n },\n \"notdog-duo\": {\n solid: \"fands\"\n },\n sharp: {\n light: \"fasl\",\n regular: \"fasr\",\n solid: \"fass\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n light: \"fasdl\",\n regular: \"fasdr\",\n solid: \"fasds\",\n thin: \"fasdt\"\n },\n slab: {\n regular: \"faslr\"\n },\n \"slab-press\": {\n regular: \"faslpr\"\n },\n thumbprint: {\n light: \"fatl\"\n },\n utility: {\n semibold: \"fausb\"\n },\n \"utility-duo\": {\n semibold: \"faudsb\"\n },\n \"utility-fill\": {\n semibold: \"faufsb\"\n },\n whiteboard: {\n semibold: \"fawsb\"\n }\n };\n var qt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n Ht = [\"kit\"];\n var L = \"kit\",\n r = \"kit-duotone\",\n U = \"Kit\",\n J = \"Kit Duotone\",\n $t = _defineProperty(_defineProperty({}, L, U), r, J);\n var ol = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n };\n var fl = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\n var ul = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\n var _ml;\n var l$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n };\n var n$1 = \"classic\",\n o$1 = \"duotone\",\n u$1 = \"sharp\",\n s$1 = \"sharp-duotone\",\n h$1 = \"chisel\",\n g$1 = \"etch\",\n y$1 = \"jelly\",\n e$1 = \"jelly-duo\",\n m$1 = \"jelly-fill\",\n p$1 = \"notdog\",\n a$1 = \"notdog-duo\",\n w$1 = \"slab\",\n b$1 = \"slab-press\",\n r$1 = \"thumbprint\",\n c$1 = \"utility\",\n i$1 = \"utility-duo\",\n x$1 = \"utility-fill\",\n I$1 = \"whiteboard\",\n F$1 = \"Classic\",\n v$1 = \"Duotone\",\n S$1 = \"Sharp\",\n A$1 = \"Sharp Duotone\",\n P$1 = \"Chisel\",\n j$1 = \"Etch\",\n B$1 = \"Jelly\",\n N$1 = \"Jelly Duo\",\n k$1 = \"Jelly Fill\",\n D$1 = \"Notdog\",\n C$1 = \"Notdog Duo\",\n T$1 = \"Slab\",\n L$1 = \"Slab Press\",\n W$1 = \"Thumbprint\",\n R$1 = \"Utility\",\n K$1 = \"Utility Duo\",\n U$1 = \"Utility Fill\",\n J$1 = \"Whiteboard\",\n ml$1 = (_ml = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, n$1, F$1), o$1, v$1), u$1, S$1), s$1, A$1), h$1, P$1), g$1, j$1), y$1, B$1), e$1, N$1), m$1, k$1), p$1, D$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, a$1, C$1), w$1, T$1), b$1, L$1), r$1, W$1), c$1, R$1), i$1, K$1), x$1, U$1), I$1, J$1));\n var E$1 = \"kit\",\n d$1 = \"kit-duotone\",\n _$1 = \"Kit\",\n M$1 = \"Kit Duotone\",\n rt$1 = _defineProperty(_defineProperty({}, E$1, _$1), d$1, M$1);\n var $t$1 = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n },\n slab: {\n \"fa-regular\": \"faslr\"\n },\n \"slab-press\": {\n \"fa-regular\": \"faslpr\"\n },\n whiteboard: {\n \"fa-semibold\": \"fawsb\"\n },\n thumbprint: {\n \"fa-light\": \"fatl\"\n },\n notdog: {\n \"fa-solid\": \"fans\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"fands\"\n },\n etch: {\n \"fa-solid\": \"faes\"\n },\n jelly: {\n \"fa-regular\": \"fajr\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"fajfr\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"fajdr\"\n },\n chisel: {\n \"fa-regular\": \"facr\"\n },\n utility: {\n \"fa-semibold\": \"fausb\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"faudsb\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"faufsb\"\n }\n },\n z = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"],\n slab: [\"faslr\"],\n \"slab-press\": [\"faslpr\"],\n whiteboard: [\"fawsb\"],\n thumbprint: [\"fatl\"],\n notdog: [\"fans\"],\n \"notdog-duo\": [\"fands\"],\n etch: [\"faes\"],\n jelly: [\"fajr\"],\n \"jelly-fill\": [\"fajfr\"],\n \"jelly-duo\": [\"fajdr\"],\n chisel: [\"facr\"],\n utility: [\"fausb\"],\n \"utility-duo\": [\"faudsb\"],\n \"utility-fill\": [\"faufsb\"]\n },\n Ht$1 = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n },\n slab: {\n faslr: \"fa-regular\"\n },\n \"slab-press\": {\n faslpr: \"fa-regular\"\n },\n whiteboard: {\n fawsb: \"fa-semibold\"\n },\n thumbprint: {\n fatl: \"fa-light\"\n },\n notdog: {\n fans: \"fa-solid\"\n },\n \"notdog-duo\": {\n fands: \"fa-solid\"\n },\n etch: {\n faes: \"fa-solid\"\n },\n jelly: {\n fajr: \"fa-regular\"\n },\n \"jelly-fill\": {\n fajfr: \"fa-regular\"\n },\n \"jelly-duo\": {\n fajdr: \"fa-regular\"\n },\n chisel: {\n facr: \"fa-regular\"\n },\n utility: {\n fausb: \"fa-semibold\"\n },\n \"utility-duo\": {\n faudsb: \"fa-semibold\"\n },\n \"utility-fill\": {\n faufsb: \"fa-semibold\"\n }\n },\n G$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\", \"semibold\"],\n O$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n V$1 = O$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n $$1 = [\"aw\", \"fw\", \"pull-left\", \"pull-right\"],\n to = [].concat(_toConsumableArray(Object.keys(z)), G$1, $$1, [\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"inverse\", \"layers\", \"layers-bottom-left\", \"layers-bottom-right\", \"layers-counter\", \"layers-text\", \"layers-top-left\", \"layers-top-right\", \"li\", \"pull-end\", \"pull-start\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", \"width-auto\", \"width-fixed\", l$1.GROUP, l$1.SWAP_OPACITY, l$1.PRIMARY, l$1.SECONDARY]).concat(O$1.map(function (t) {\n return \"\".concat(t, \"x\");\n })).concat(V$1.map(function (t) {\n return \"w-\".concat(t);\n }));\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e$$1) {\n return false;\n }\n }();\n function familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[i];\n }\n });\n }\n var _PREFIX_TO_STYLE = _objectSpread2({}, q);\n\n // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n // {'fa-duotone': 'duotone'}\n _PREFIX_TO_STYLE[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n }), q[i]), qt['kit']), qt['kit-duotone']);\n var PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\n var _STYLE_TO_PREFIX = _objectSpread2({}, _t);\n\n // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n _STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n }), _STYLE_TO_PREFIX[i]), ul['kit']), ul['kit-duotone']);\n var STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\n var _PREFIX_TO_LONG_STYLE = _objectSpread2({}, Ht$1);\n _PREFIX_TO_LONG_STYLE[i] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[i]), fl['kit']);\n var PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\n var _LONG_STYLE_TO_PREFIX = _objectSpread2({}, $t$1);\n _LONG_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[i]), ol['kit']);\n var LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\n var _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, gt);\n var FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\n var RESERVED_CLASSES = [].concat(_toConsumableArray(Ht), _toConsumableArray(to));\n\n function bunker(fn) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n fn.apply(void 0, args);\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n var w$2 = WINDOW || {};\n if (!w$2[NAMESPACE_IDENTIFIER]) w$2[NAMESPACE_IDENTIFIER] = {};\n if (!w$2[NAMESPACE_IDENTIFIER].styles) w$2[NAMESPACE_IDENTIFIER].styles = {};\n if (!w$2[NAMESPACE_IDENTIFIER].hooks) w$2[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w$2[NAMESPACE_IDENTIFIER].shims) w$2[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w$2[NAMESPACE_IDENTIFIER];\n\n function normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n }\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var icons = {\n \"square-github\": [448, 512, [\"github-square\"], \"f092\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM265.8 407.7c0-1.8 0-6 .1-11.6 .1-11.4 .1-28.8 .1-43.7 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-26.6-7.5-56.6-7.5-83.2 0 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 9 .1 21.7 .1 30.6 0 4.8 .1 8.6 .1 10 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3-8.4 1.5-11.5-3.7-11.5-8zm-90.5-54.8c-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7 .6 3.9 1.9 .3 1.3-1 2.6-3 3-1.9 .4-3.7-.4-3.9-1.7zm-9.1 3.2c-2.2 .2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7 .9 3.7 2.4 0 1.3-1.5 2.4-3.5 2.4zm-14.3-2.2c-1.9-.4-3.2-1.9-2.8-3.2s2.4-1.9 4.1-1.5c2 .6 3.3 2.1 2.8 3.4-.4 1.3-2.4 1.9-4.1 1.3zm-12.5-7.3c-1.5-1.3-1.9-3.2-.9-4.1 .9-1.1 2.8-.9 4.3 .6 1.3 1.3 1.8 3.3 .9 4.1-.9 1.1-2.8 .9-4.3-.6zm-8.5-10c-1.1-1.5-1.1-3.2 0-3.9 1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1-.9 .6-2.6 0-3.7-1.5zm-6.3-8.8c-1.1-1.3-1.3-2.8-.4-3.5 .9-.9 2.4-.4 3.5 .6 1.1 1.3 1.3 2.8 .4 3.5-.9 .9-2.4 .4-3.5-.6zm-6-6.4c-1.3-.6-1.9-1.7-1.5-2.6 .4-.6 1.5-.9 2.8-.4 1.3 .7 1.9 1.8 1.5 2.6-.4 .9-1.7 1.1-2.8 .4z\"],\n \"think-peaks\": [576, 512, [], \"f731\", \"M465.4 409.4l87.1-150.2-32-.3-55.1 95-206.2-353.9-236.2 407.4 32 .3 204.2-352.1 206.2 353.8zM110.1 365.3l32.1 0 117.4-202.5 203.4 349.1 32.5 .1-235.8-404.6-149.6 257.9z\"],\n \"google-drive\": [512, 512, [], \"f3aa\", \"M339 314.9L175.4 32 336.6 32 500.2 314.9 339 314.9zM201.5 338.5l-80.6 141.5 310.5 0 80.6-141.5-310.5 0zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"],\n \"autoprefixer\": [640, 512, [], \"f41c\", \"M318.4 16l-161 480 77.5 0 25.4-81.4 119.5 0 25.2 81.4 77.5 0-164.1-480zM278.1 357.9l41.2-130.4 1.5 0 40.9 130.4-83.6 0zM640 405L630 373.6 462.1 358 481.5 414.5 640 405zM177.9 358L10 373.7 0 405 158.5 414.4 177.9 358z\"],\n \"square-viadeo\": [448, 512, [\"viadeo-square\"], \"f2aa\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM118.3 381.2c-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1l0 .4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4 .2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6-42.4 46.2-120 46.6-162.4 0zM274.6 217.6c21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 8.3-7.9 18-10.9 27.9-14.1 16-5.1 32.5-10.3 44.5-35.9 32.5 46.2 13.1 130.3-36.3 130.3-13.3 0-25.1-7.1-34.4-16.1z\"],\n \"cpanel\": [640, 512, [], \"f388\", \"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2l-37 0c-7.1 0-12.5 4.5-14.3 10.9L73.1 320 97.8 319.9c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7 19.8 0c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6l-10.3 0c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8 32 0c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28l18.6 0c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6-40 0C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320l12.4 0 7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3l-11.3 0c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8l-77.9 0-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5l57.5 0c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3l-34.9 0c-5.3 0-5.3-7.9 0-7.9l21.6 0c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2-48.4 0c-39.2 0-43.6 63.8-.7 63.8l57.5 .2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179l-18.9 0c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zM396.8 213.7l0 .1-48.3 0-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3l18.9 0c4.8 0 9.2-3 10.4-7.8l17.2-64 19.8 0c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3l19.1 0c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6l32.9 0c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3l-21.6 0c-7 0-12.6 4.6-14.2 10.8l-3.5 13 53.4 0c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8l-47.3 0c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7l66.7 0c6.8 0 12.3-4.5 14.2-10.7l5.7-21-73.3 0z\"],\n \"mendeley\": [640, 512, [], \"f7b3\", \"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4 .7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1 .1-.2 .2-.3 .4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zM320.7 306.1l-.6 0c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8l.6 0c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"],\n \"draft2digital\": [512, 512, [], \"f396\", \"M496 398.1l-144-82.2 0 64.7-91.3 0c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6-76.6 87-142.8 155.7-161.1 174.8l336-.1 0 64.2 144-81.9zM385.9 371l47.1 27.2-47.1 27.2 0-54.4zM105.4 161.4a22.4 22.4 0 1 1 44.8 0 22.4 22.4 0 1 1 -44.8 0zM98.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7l-114.4 0z\"],\n \"replyd\": [448, 512, [], \"f3e6\", \"M320 480l-192 0C57.6 480 0 422.4 0 352L0 160C0 89.6 57.6 32 128 32l192 0c70.4 0 128 57.6 128 128l0 192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6s-9.6 9-12.8 15.8l-1.1 0-4.2-18.3-28 0 0 138.9 36.1 0 0-89.7c1.5-5.4 4.4-9.8 8.7-13.2s9.8-5.1 16.2-5.1c4.6 0 9.8 1 15.6 3.1l4.8-34zM308.6 376.6c-3.2 2.4-7.7 4.8-13.7 7.1s-12.8 3.5-20.4 3.5c-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4l83.3 0c.9-4.8 1.6-9.4 2.1-13.9 .5-4.4 .7-8.6 .7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6s17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1l-51.7 0c.9-9.4 3.7-17 8.2-22.6s11.5-8.5 21-8.5c8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4-9.6-5.7-16.7-5.7c-6.7 0-12 1.9-16.1 5.7s-6.1 8.9-6.1 15.4 2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4-9.6-5.7-16.7-5.7c-6.7 0-12 1.9-16.1 5.7s-6.1 8.9-6.1 15.4c0 6.6 2 11.7 6.1 15.6z\"],\n \"empire\": [512, 512, [], \"f1d1\", \"M295.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6l0-18.2c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM61.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C42 181 32.1 217.5 32.1 256s10 75 27.1 106.6L75 353.5c-5.3-10-9.7-20.3-13.6-31.1zM221.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6l0-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM101.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6l0-18.2C171.9 34.6 103.9 76.4 65.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zM410.7 391.1l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6l0 18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm483.8 0a235.8 235.8 0 1 0 -471.6 0 235.8 235.8 0 1 0 471.6 0zm-39-106.6L437 158.5c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C470 331 479.9 294.5 479.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8s-18.5 .8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8s18.5-1.1 27.1-2.8l-13.3-66.7z\"],\n \"accessible-icon\": [448, 512, [62107], \"f368\", \"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46C105.5 165.3 64.9 120 95 93.1l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6l-58.4 66.5 106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zM359 101.8A50.9 50.9 0 1 0 359 0 50.9 50.9 0 1 0 359 101.8zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1L57.2 260.7C36.4 287 24 320.3 24 356.4 24 487.1 174.7 557.8 275.4 478.9l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"],\n \"quora\": [448, 512, [], \"f2c4\", \"M440.7 386.7l-29.3 0c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153 .1-117.5-96.6-196.7-198.4-196.7-99.7 0-197.7 79.7-197.7 196.7 0 134.1 131.3 221.6 249 189 19.7 33.6 45.7 62.3 95.2 62.3 81.8 0 90.8-75.3 89-93.3zM297.2 329.2c-19.5-29.2-43.7-52.2-91.5-52.2-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7 0-104.4 32.5-157.9 107.5-157.9 76.2 0 108.7 53.5 108.7 157.7 .1 41.8-5.4 75.6-16.7 100.5z\"],\n \"cc-jcb\": [576, 512, [], \"f24b\", \"M431.5 244.3l0-32.3c41.2 0 38.5 .2 38.5 .2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2 .4-3.3 .3-38.5 .3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5l0 35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM182 192.3l-57 0c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8l0 28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2l0-28.3C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2l0-28zM544 286.5c0-18.5-16.5-30.5-38-32l0-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3l0 127.5 122.7 0c24.3 .1 42.3-12.9 42.3-33.2z\"],\n \"fedora\": [448, 512, [], \"f798\", \"M0 255.8C.1 132.2 100.3 32 224 32S448 132.3 448 256 347.8 479.9 224.1 480L50.9 480C22.8 480 .1 457.3 0 429.2l0 0 0-173.4 0 0zm342.6-63.1c0-39.7-35.6-68.5-73.2-68.5-34.9 0-65.8 26.3-70.1 59.9-.2 3.8-.4 5-.4 8.5-.1 21.1 0 42.8-.8 64.4 .9 26.1 1 52.1 0 76.6 0 27.1-19.4 45.5-44.7 45.5s-45.8-20.2-45.8-45.5c.5-27.7 22.6-45.3 48.5-46.1l.2 0 26.3-.2 0-37.3-26.3 .2c-47.1-.4-84.6 36.5-85.9 83.4 0 45.6 37.5 82.9 83 82.9 43 0 78.7-33.6 82.6-75.6l.2-53.5 32.6-.3c25.3 .2 25-37.8-.2-37.3l-32.4 .3c0-6.4 .1-12.8 .1-19.2 .1-12.7 .1-25.4-.1-38.2 .1-16.5 15.8-31.2 33.2-31.2 17.5 0 35.9 8.7 35.9 31.2 0 3.2-.1 5.1-.3 6.3-1.9 10.5 5.2 20.4 15.7 21.9 10.6 1.5 20.2-6.1 21.2-16.6 .6-4.2 .7-7.9 .7-11.6z\"],\n \"duolingo\": [576, 512, [], \"e812\", \"M504.3 230.5c10.4 88.5-43.4 172.1-128.2 199s-176.6-10.3-218.9-88.7c-72 3-137.4-39.8-163.2-105.5-2.6-6.6-1.9-14 1.9-19.9s10.2-9.7 17.2-10.1l96.1-6-23.8-75.9c-6.3-20-2.2-41.9 11-58.3s33.7-25 54.5-23c52.2 5 86.8 4.8 104-.6S300 16.7 339-16.9c15.9-13.7 37.7-18.5 57.8-12.7s36.1 21.3 42.4 41.4L462.8 87 543.6 37.3c6-3.7 13.4-4.3 19.9-1.6s11.3 8.3 12.9 15.2c16.2 68.2-12.4 140.3-72.1 179.5zM258.5 475.9l0 0c15.1 7.5 21.5 25.8 14.2 41s-25.4 21.9-40.7 14.9l-43.9-21c-15.1-7.5-21.5-25.8-14.2-41s25.4-21.9 40.7-14.9l43.8 21zM564.6 345.7c14.8 8.4 20 27.3 11.6 42.2l-23.9 42.4c-8.7 14.3-27.1 19.2-41.6 10.9s-19.9-26.6-12-41.4l23.9-42.4c4-7.1 10.7-12.4 18.6-14.6s16.3-1.2 23.4 2.9z\"],\n \"firstdraft\": [384, 512, [], \"f3a1\", \"M384 192l-64 0 0 128-128 0 0 128-192 0 0-25.6 166.4 0 0-128 128 0 0-128 89.6 0 0 25.6zm-25.6 38.4l0 128-128 0 0 128-166.4 0 0 25.6 192 0 0-128 128 0 0-153.6-25.6 0zm25.6 192l-89.6 0 0 89.6 25.6 0 0-64 64 0 0-25.6zM0 0l0 384 128 0 0-128 128 0 0-128 128 0 0-128-384 0z\"],\n \"freebsd\": [448, 512, [], \"f3a4\", \"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2s-39.4 .9-63.1-22.9c-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1-11 57.7 12.7 110.5 33.5 146.8 52 114.6 78.3 87.5 109.9 68.1zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"],\n \"odysee\": [512, 512, [], \"e5c6\", \"M406.7 463c-42.3 30.8-94.4 49-150.7 49-111.1 0-205.7-70.8-241.1-169.8 2.4 1.7 5.9 3.6 7.9 4.4 16.3 7.4 40.1-5.4 62.9-28.7 6.9-6.9 14.4-12.4 22.8-17.3 18.3-11.9 37.6-20.8 58.4-27.2 0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1-11-.5-70-3-56 51.1 14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4 .8 4.6 1.1 9.9 1.4 15.5 1.1 21.2 2.3 45.6 35.3 46.4 5.3 0 10.6-.8 15.5-2l0-.1zm-95.3-23.7c-2-.5-3.5-2.5-3-5 1-2.5 3-3.5 5-3s3.5 3 3 5-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3 0 2-1 4-3 4-1.5 .5-3.5-1-4-3-.5-1.5 1-3.5 3-4zM451.8 421c37.5-44.6 60.2-102.2 60.2-165 0-67.5-26.1-128.9-68.8-174.7-.1 23.5-6.1 48.2-16.8 69.2-11.9 20.3-49 58.9-69.8 78.7-.7 .3-1.1 .9-1.5 1.4-.2 .2-.3 .4-.5 .6-5 6.9-4 16.8 3 21.8 21.3 15.8 56.4 45.6 59.4 72.8 3.5 34.9 27.9 75.6 34.2 86.2 .8 1.3 1.3 2.1 1.4 2.4 0 2.2-.4 4.3-.8 6.5l0 .1zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4-.3 1.4-.7 2.8-1 4.2-9.5 38.5-30.6 37.6-41.7 37.2-1.1 0-2-.1-2.9-.1-5.1 0-6-4-8.9-17.1-2.6-12.1-6.9-32-17.9-63.6-22.7-65.8-82.7-49.4-128.2-22.2-55.3 33.1-34.4 101.9-19.8 149.4 .7 2.2 1.4 4.4 2 6.6-4 4-13.8 7.5-26 11.9-12.1 4.3-26.6 9.5-40.3 16.9-33.9 18-70.3 49-79.8 62.6-1.3-10.7-2-21.5-2-32.5 0-141.4 114.6-256 256-256 51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4 4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5 1.5 2.5 1 5.4-1.5 6.4-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3 1.5 .5 3-.5 3-2 .5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54 44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9-61.9-4.5-64.9-42.6l0 .1zm89.6 14.9l1 0c2.5 0 5-2 5-5 2-6.9 1-14.4-2-20.8-1.5-2-4-3.5-6.4-2.5-3 1-4.5 4-3.5 6.9 2 4.5 3 9.9 1.5 14.9-.5 3 1.5 5.9 4.5 6.4l-.1 .1zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3-.2 .1-.4 .2-.6 .2l0 .1z\"],\n \"gg-circle\": [512, 512, [], \"f261\", \"M257.5 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM208 382.8l-125.7-125.7 125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75 125.7 125.7-125.7 125.6z\"],\n \"cloudflare\": [640, 512, [], \"e07d\", \"M407.9 319.9L177.1 317c-.7 0-1.4-.2-2-.5s-1.2-.8-1.6-1.4c-.4-.6-.7-1.3-.7-2s0-1.4 .2-2.1c.4-1.1 1.1-2.1 2.1-2.8s2.1-1.2 3.3-1.2l232.9-2.9c27.6-1.3 57.5-23.6 68-50.8l13.3-34.5c.4-.9 .5-1.9 .5-2.9 0-.5-.1-1.1-.2-1.6-7.4-32.2-25-61.1-50.3-82.3s-56.7-33.7-89.7-35.5-65.6 7.3-93 25.7-48 45.3-58.8 76.5c-11.3-8.5-24.9-13.3-39-13.7s-28 3.5-39.8 11.4-20.8 19.1-25.9 32.3-5.9 27.6-2.4 41.3c-52.3 1.5-94.2 44.1-94.2 96.5 0 4.7 .3 9.3 1 14 .2 1.1 .7 2.1 1.5 2.8s1.9 1.1 2.9 1.1l426.1 .1c0 0 .1 0 .1 0 1.2 0 2.3-.4 3.3-1.1s1.6-1.7 2-2.9l3.3-11.3c3.9-13.4 2.4-25.8-4.1-34.9-6-8.4-16.1-13.3-28.2-13.9zm105.9-98.8c-2.1 0-4.3 .1-6.4 .2-.8 .1-1.5 .3-2.1 .8s-1 1.1-1.3 1.8l-9.1 31.2c-3.9 13.4-2.4 25.8 4.1 34.9 6 8.4 16.1 13.3 28.2 13.9l49.2 2.9c.7 0 1.4 .2 2 .5s1.1 .8 1.5 1.4c.4 .6 .7 1.3 .8 2s0 1.5-.2 2.1c-.4 1.1-1.1 2.1-2.1 2.8s-2.1 1.2-3.3 1.2l-51.1 2.9c-27.8 1.3-57.7 23.6-68.1 50.8l-3.7 9.6c-.2 .4-.2 .8-.2 1.3s.2 .8 .4 1.2 .6 .7 .9 .9 .8 .3 1.2 .3c0 0 .1 0 .1 0l175.9 0c1 0 2-.3 2.8-.9s1.4-1.5 1.7-2.4c3.1-11.1 4.7-22.5 4.7-34 0-69.3-56.5-125.5-126.1-125.5z\"],\n \"hackerrank\": [512, 512, [], \"f5f7\", \"M477.9 128C463.4 103 285.5 0 256.5 0s-206.9 102.8-221.3 128-14.5 230.8 0 256 192.4 128 221.3 128 206.8-102.9 221.3-128 14.5-231 0-256zM316.5 414.2c-4 0-40.9-35.8-38-38.7 .9-.9 6.3-1.5 17.5-1.8 0-26.2 .6-68.6 .9-86.3 0-2-.4-3.4-.4-5.8l-79.9 0c0 7.1-.5 36.2 1.4 72.9 .2 4.5-1.6 6-5.7 5.9-10.1 0-20.3-.1-30.4-.1-4.1 0-5.9-1.5-5.7-6.1 .9-33.4 3-84-.2-212.7l0-3.2c-9.7-.4-16.4-1-17.3-1.8-2.9-2.9 34.5-38.7 38.5-38.7s41.2 35.8 38.3 38.7c-.9 .9-7.9 1.5-16.8 1.8l0 3.2c-2.4 25.8-2 79.6-2.6 105.4l80.3 0c0-4.6 .4-34.7-1.2-83.6-.1-3.4 1-5.2 4.2-5.2 11.1-.1 22.2-.1 33.2-.1 3.5 0 4.6 1.7 4.5 5.4-3.7 191.3-.7 177.9-.7 210.3 8.9 .4 16.8 1 17.7 1.8 2.9 2.9-33.6 38.7-37.6 38.7l0 0z\"],\n \"skyatlas\": [640, 512, [], \"f216\", \"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4 .1-154-59-154-144.9S67.5 149.6 152.8 149.6c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"],\n \"deskpro\": [512, 512, [], \"f38f\", \"M222 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4l79.1 0c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zM422.4 344.3c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zM378.8 120.4l0 168.3-73.5 0-32.7 55.5-6.5 0c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1l-91 0c-25.5 0-110.8-26.8-107-114l0-213.3c0-16 9.7-16.6 15-16.8l82 0c.2 0 .3 .1 .5 .1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7l84.2 0C361-.2 378.8 79.6 378.8 120.4zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"],\n \"resolving\": [512, 512, [], \"f3e7\", \"M289.2 278.2c46-13.3 49.6-23.5 44-43.4L322 195.5c-6.1-20.9-18.4-28.1-71.1-12.8l-188.2 54.1 28.6 98.6 197.9-57.2zM256.5 8C139.4 8 41.2 88.7 15.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2l-92.6 26.6 220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2C166 491.3 209.5 504 255.5 504 392.5 504 504 392.6 504 255.7 505 119.4 393.5 8 256.5 8zM46.3 388.6L8 256.8c0 48.5 14.3 93.4 38.3 131.8z\"],\n \"blackberry\": [512, 512, [], \"f37b\", \"M166 116.9c0 23.4-16.4 49.1-72.5 49.1l-70.1 0 21-88.8 67.8 0c42.1 0 53.8 23.3 53.8 39.7zM292.2 77.2l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-25.7 70.1-49.1 .1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1l-67.8 0-21 88.8 70.1 0c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-23.4 70.1-49.1 .1-16.3-11.6-39.7-53.7-39.7zm-28 137.9l-67.8 0-18.7 88.8 70.1 0c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346l-67.8 0-18.7 88.8 70.1 0c56.1 0 70.1-25.7 70.1-49.1 .1-16.3-11.6-39.7-53.7-39.7z\"],\n \"stripe-s\": [384, 512, [], \"f42a\", \"M155.6 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7l0-134.3c-47.3-18.9-94.5-26.1-141.8-26.1-115.7 0-192.8 60.4-192.8 161.4 0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5l0 128.5c49.3 21.3 102.3 32.3 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"],\n \"square-behance\": [448, 512, [\"behance-square\"], \"f1b5\", \"M155.3 318.4c17.2 0 31.2-6.1 31.2-25.4 0-19.7-11.7-27.4-30.3-27.5l-46 0 0 52.9 45.1 0zm-5.4-129.6l-39.6 0 0 44.8 42.7 0c15.1 0 25.8-6.6 25.8-22.9 0-17.7-13.7-21.9-28.9-21.9zm129.5 74.8l62.2 0c-1.7-18.5-11.3-29.7-30.5-29.7-18.3 0-30.5 11.4-31.7 29.7zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM349.5 185l-77.8 0 0-18.9 77.8 0 0 18.9zM193.7 243.7c23.6 6.7 35 27.5 35 51.6 0 39-32.7 55.7-67.6 55.9l-93.1 0 0-192 90.5 0c32.9 0 61.4 9.3 61.4 47.5 0 19.3-9 28.8-26.2 37zm118.7-38.6c43.5 0 67.6 34.3 67.6 75.4 0 1.6-.1 3.3-.2 5 0 .8-.1 1.5-.1 2.2l-100.2 0c0 22.2 11.7 35.3 34.1 35.3 11.6 0 26.5-6.2 30.2-18.1l33.7 0c-10.4 31.9-31.9 46.8-65.1 46.8-43.8 0-71.1-29.7-71.1-73 0-41.8 28.7-73.6 71.1-73.6z\"],\n \"servicestack\": [512, 512, [], \"f3ec\", \"M96 216c81.7 10.2 273.7 102.3 304 232L8 448c99.5-8.1 184.5-137 88-232zM128 64c32.3 35.6 47.7 83.9 46.4 133.6 82.9 33.7 207.3 123.7 233.6 250.4l96 0C463.3 231.9 230.8 79.5 128 64z\"],\n \"rocketchat\": [576, 512, [], \"f3e8\", \"M284.5 224.8c-6.7 0-13.3 2.1-18.9 5.8s-9.9 9.1-12.5 15.4-3.2 13.1-1.9 19.7 4.6 12.7 9.4 17.4 10.9 8 17.5 9.3 13.5 .6 19.7-2 11.5-7 15.3-12.6 5.7-12.2 5.7-18.9c0-9.1-3.7-17.8-10.1-24.2s-15.1-10-24.2-9.9zm-110.4 0c-6.7 0-13.3 2.1-18.9 5.8s-9.9 9.1-12.5 15.4-3.2 13.1-1.9 19.7 4.6 12.7 9.4 17.4 10.9 8 17.5 9.3 13.5 .6 19.7-2 11.5-7 15.3-12.6 5.7-12.2 5.7-18.9c0-9.1-3.7-17.8-10.1-24.2s-15.1-10-24.2-10l0 0zm220.9 0a34.1 34.1 0 1 0 .4 68.2 34.1 34.1 0 1 0 -.4-68.2zm153.8-55.3c-15.5-24.2-37.3-45.6-64.7-63.6-52.9-34.8-122.4-54-195.7-54-24.2 0-48.3 2.1-72 6.4-14.9-14.3-31.5-26.6-49.5-36.6-66.8-33.3-125.6-20.9-155.3-10.2-2.3 .8-4.3 2.1-5.9 3.9s-2.7 3.9-3.3 6.2-.5 4.7 .1 7.1 1.8 4.4 3.5 6.1C27 56.5 61.6 99.3 53.1 138.3 20 172.2 2 213 2 255.6 2 299 20 339.8 53.1 373.7 61.6 412.7 27 455.6 6 477.2 4.3 479 3.2 481.1 2.5 483.4s-.7 4.7-.1 7 1.7 4.5 3.3 6.2 3.6 3.1 5.9 3.9c29.7 10.7 88.5 23.1 155.3-10.2 18-10 34.7-22.3 49.5-36.6 23.8 4.3 47.9 6.4 72 6.4 73.3 0 142.8-19.2 195.7-54 27.4-18 49.1-39.4 64.7-63.6 17.3-26.9 26.1-55.9 26.1-86.1 0-31-8.8-60-26.1-86.9l0 0zM285.4 409.9c-30.2 .1-60.3-3.8-89.4-11.5l-20.1 19.4c-11.2 10.7-23.6 20-37.1 27.6-16.4 8.2-34.2 13.3-52.5 14.9 1-1.8 1.9-3.6 2.8-5.4 20.2-37.1 25.6-70.5 16.3-100.1-33-26-52.8-59.2-52.8-95.4 0-83.1 104.3-150.5 232.8-150.5s232.9 67.4 232.9 150.5c0 83.1-104.3 150.5-232.9 150.5z\"],\n \"rebel\": [512, 512, [], \"f1d0\", \"M256.9 504c-139.3 0-247.5-116.2-243.3-254.1 2.8-79.2 43.2-152.2 116.5-200.4 .3 0 1.9-.6 1.1 .8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7 .8-29.6-21.9-61.4-21.9-61.4L255.5 8 299.8 58.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4 .6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5 .8-2.8 .8-2.8 50.1 36.5 114.6 84.4 116.2 204.8 2 145.6-99.9 249.4-242.4 249.4z\"],\n \"square-web-awesome\": [448, 512, [], \"e683\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM235 177.6l53 46.4 52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224c-12.9-.4-23.2-11-23.2-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224 213.1 177.6c-8.9-4.1-15-13.1-15-23.6 0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"],\n \"linktree\": [448, 512, [], \"e7d8\", \"M32 173.4l125.8 0-89.4-85.4 49.5-51 85.2 87.8 0-124.8 73.9 0 0 124.8 85.2-87.6 49.4 50.8-89.4 85.2 125.7 0 0 70.5-126.4 0 90 87.6-49.3 49.8-122.2-123-122.2 123-49.5-49.6 90-87.6-126.4 0 0-70.5zM202.9 344.8l73.9 0 0 167.2-73.9 0 0-167.2z\"],\n \"simplybuilt\": [512, 512, [], \"f215\", \"M481.6 64l-106 0C361.1 64 349 75.8 349 90.3l0 39.6-185.3 0 0-39.6c0-14.5-12-26.3-26.6-26.3l-106 0C16.5 64 4.7 75.8 4.7 90.3l0 331.4c0 14.5 11.8 26.3 26.6 26.3l450.4 0c14.8 0 26.6-11.8 26.6-26.3l0-331.4c-.2-14.5-12-26.3-26.7-26.3zM150.5 222.7a66.5 66.5 0 1 1 -.3 133.1 66.5 66.5 0 1 1 .3-133.1zm211.9 .1a66.5 66.5 0 1 1 .3 132.9 66.5 66.5 0 1 1 -.3-132.9z\"],\n \"stubber\": [448, 512, [], \"e5c7\", \"M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1 49.4 0 71.4 63.6 142.4 63.6 15.6 0 35.9-2.8 55.3-13.3l0 61.7c0 61.8-50.4 112-112.3 112L0 480 41.8 424 0 368 41.7 312 0 256.1 41.8 200.1 0 144.1 41.8 88 0 32 335.7 32C397.6 32 448 82.3 448 144.1l0 51.3c-9.2 36.3-25.9 60.6-55 60.6-49.6 0-71.6-63.5-142.4-63.5-35.9 0-95.2 14.6-114.1 101.6l0 .1z\"],\n \"apper\": [640, 512, [], \"f371\", \"M42.1 239.1c22.2 0 29 2.8 33.5 14.6l.8 0 0-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8l-38.6 0c.3-13.9 1.5-19.1 5.8-24.4 7.3-8.8 18.9-11.8 46.1-11.8 33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7l0 76.3-38.3 0 1.3-19.1-1 0c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zM137 192.3l38.3 0-1.5 20.6 .8 0c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2l-.8 0 0 70.3-39.5 0 0-169zM217.9 253c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7l38.3 0-1.5 20.6 .8 0c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2l-.8 0 0 70.3-39.5 0 0-169 .1 0zM356.7 253c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7l0 11.1-75.3 0c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9l37.5 0 0 2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3 38.3 0zm55.6-45.3l38.3 0-1.8 19.9 .7 0c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3l-35 0c.3-1.8 .3-3.3 .3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3l0 68-38.3 0 0-118.5 .1 0z\"],\n \"google-scholar\": [512, 512, [], \"e63b\", \"M390.9 298.5s0 .1 .1 .1c9.2 19.4 14.4 41.1 14.4 64-.1 82.5-66.9 149.4-149.4 149.4S106.7 445.1 106.7 362.7c0-22.9 5.2-44.6 14.4-64 1.7-3.6 3.6-7.2 5.6-10.7 4.4-7.6 9.4-14.7 15-21.3 27.4-32.6 68.5-53.3 114.4-53.3 33.6 0 64.6 11.1 89.6 29.9 9.1 6.9 17.4 14.7 24.8 23.5 5.6 6.6 10.6 13.8 15 21.3 2 3.4 3.8 7 5.5 10.5l-.1-.1zm26.4-18.8c-30.1-58.4-91-98.4-161.3-98.4s-131.2 40-161.3 98.4l-94.7-77 256-202.7 256 202.7-94.7 77.1 0-.1z\"],\n \"yarn\": [512, 512, [], \"f7e3\", \"M401.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4 .1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3 .8-10.8-5.7 .8-19.2 .8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3 .8 1.4 13.7 .8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm416.7 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2 .9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4l.1 0c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4 .2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"],\n \"stack-overflow\": [384, 512, [], \"f16c\", \"M291 311l-195.7-41.3-8.2 39.3 195.7 41 8.2-39zm51-87L188.5 95.7 163 126.5 316.5 254.8 342 224zm-31.2 39.7L129.5 179 112.8 215.5 294 300 310.8 263.7zM262.3 32l-32 24 119.3 160.3 32-24-119.3-160.3zm20.5 328l-200 0 0 39.7 200 0 0-39.7zm39.7 80l-279.5 0 0-120-40 0 0 160 359.5 0 0-160-40 0 0 120z\"],\n \"bluetooth\": [384, 512, [], \"f293\", \"M260.6 171.1l-42.9 42.9-.3-86 43.2 43.1zM217.4 390.9l43.1-43.1-42.9-42.9-.2 86zM384 259.4C384 465 312.1 512 198.9 512S0 465 0 259.4 83.4 0 196.6 0 384 53.9 384 259.4zm-158.5 0l79.4-88.6-125.1-134.3 0 176.9-73.8-73.8-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"],\n \"creative-commons-nc-jp\": [512, 512, [], \"f4ea\", \"M255.7 8C111.6 8 8 124.8 8 256 8 392.4 119.8 504 255.7 504 385.9 504 504 403.2 504 256 504 117.2 396.5 8 255.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5-27.9 0 0 38.6 58.1 0 5.7 11.8 0 18.7-63.8 0 0 38.7 63.8 0 0 56 61.7 0 0-56 64.2 0 0-35.7 81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3l-57.6 0 0-18.7 2.9-5.6 54.7 24.3zm6.5-51.4l0-17.8-38.6 0 63-116-65.8 0-43.4 96-23-10.2-39.6-85.7-65.8 0 27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59L350.4 270z\"],\n \"reddit\": [512, 512, [], \"f1a1\", \"M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256 397.4 512 256 512L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1-10.1-7.8-22.8-12.5-36.5-12.5-33 0-59.8 26.8-59.8 59.8 0 24 14.1 44.6 34.4 54.1 2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54 0-33-26.8-59.8-59.8-59.8-13.7 0-26.3 4.6-36.4 12.4-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9 4.4 18.8 21.3 32.8 41.5 32.8l.1 .2zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6-31.4-8.8-30.4-30.5 15.4-38.3 32.1-38.3l.1-.1zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6 11.8-39.3 28.5-39.3 31.2 16.6 32.1 38.3l.1 .1zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5 18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z\"],\n \"connectdevelop\": [576, 512, [], \"f20e\", \"M550.8 241l-50.1-86.8c1.1-2.1 1.9-4.6 1.9-7.2 0-8-6.7-14.7-14.7-15L432.4 36.1c.5-1.6 1.1-3.2 1.1-4.8 0-8.6-7-15.3-15.3-15.3-4.8 0-8.8 2.1-11.8 5.6l-106.6 0c-2.7-3.5-6.7-5.6-11.5-5.6s-8.8 2.1-11.5 5.6l-106.1 0c-2.9-3.5-7-5.6-11.8-5.6-8.3 0-15.3 6.7-15.3 15.3 0 1.6 .5 3.5 1.1 4.8l-56 97.2c-5.4 2.4-9.1 7.5-9.1 13.7 0 .5 .3 1.1 .3 1.6L26.6 240.7c-7.2 1.3-12.6 7.5-12.6 15 0 7.2 5.1 13.4 12.1 15l55.2 95.4c-.5 1.6-.8 2.9-.8 4.8 0 7.2 5.1 13.4 12.1 14.7l51.7 89.7c-.5 1.6-1.1 3.5-1.1 5.4 0 8.6 7 15.3 15.3 15.3 4.8 0 8.8-2.1 11.5-5.4l106.9 0c2.7 3.2 7 5.4 11.5 5.4s8.8-2.1 11.5-5.4l107.1 0c2.7 2.9 6.7 4.8 11 4.8 8.6 0 15.3-7 15.3-15.3 0-1.6-.3-2.9-.8-4.3l51.7-90.3c7-1.3 12.1-7.5 12.1-14.7 0-1.6-.3-3.2-.8-4.8l54.9-95.4c7-1.3 12.3-7.5 12.3-15 0-7.2-5.1-13.4-11.8-14.7zm-397 209.7l-43.7-75.8 43.7 0 0 75.8zm0-83.8l-43.7 0c-.3-1.1-.8-2.1-1.3-3.2l45-47.4 0 50.6zm0-62.4l-50.4 53.3c-1.3-.5-2.7-1.3-4-1.6L43.7 259.8c.5-1.3 .5-2.7 .5-4s0-2.4-.3-3.5l52-90c2.7-.3 5.4-1.1 7.8-2.7l50.1 52 0 92.9zm0-102.3L108 154.8c1.3-2.1 2.1-4.8 2.1-7.8 0-.3-.3-.8-.3-1.1l43.9-15.8 0 72.1zm0-80.6l-43.7 15.8 43.7-75.5 0 59.7zm326.5 39.1l.8 1.3-35.4 167.1-63.8-67.2 98-101.5 .3 .3zM292.1 355.1l11.5 11.8-22.8 0 11.3-11.8zm-.3-11.3l-83.3-85.4 79.6-84.4 83 87.6-79.3 82.2zm5.4 5.9l79.3-82.2 67.5 71.3-5.9 28.1-124 0-16.9-17.1zM410.7 44.4c1.1 .5 2.1 1.1 3.5 1.3l57.9 100.7 0 .5c0 2.9 .8 5.6 2.1 7.8l-97.5 101.2-83-87.6 117.1-124zm-9.1-2.1l-113.6 120.3-57.1-60.3 166.3-60 4.3 0zm-123.5 0c2.7 2.7 6.2 4.3 10.2 4.3s7.5-1.6 10.2-4.3l75 0-148.4 53.6-50.9-53.6 103.9 0zM161.9 47.9l1.1-2.1c.9-.2 1.8-.5 2.7-.8l51.2 53.8-54.9 19.8 0-70.7zm0 79.3l60.8-22 59.7 63.2-79.6 84.1-41-42.1 0-83.3zm0 92.7l36.4 37.8-36.4 38.3 0-76.1zm0 87.9l42.1-44.5 82.8 86-17.1 17.7-107.7 0 0-59.2zm7 162.1c-1.6-1.6-3.5-2.7-5.9-3.5l-1.1-1.6 0-89.7 99.9 0-91.6 94.8-1.3 0zm129.9 0c-2.7-2.4-6.4-4.3-10.4-4.3s-7.8 1.9-10.4 4.3l-96.4 0 91.6-94.8 38.3 0 91.6 94.8-104.2 0zm120-11.8l-4.3 7.5c-1.3 .3-2.4 .8-3.5 1.3l-89.2-91.9 114.4 0-17.4 83zm12.9-22.2l12.9-60.8 22 0-34.8 60.8zm34.8-68.8l-20.4 0 4.6-21.2 17.1 18.2c-.5 .8-1.1 1.9-1.3 2.9zm66.2-107.4l-55.4 96.7c-1.3 .5-2.7 1.1-4 1.9l-20.6-22 34.6-163.9 45.8 79.3c-.3 1.3-.8 2.7-.8 4.3 0 1.3 .3 2.4 .5 3.7z\"],\n \"researchgate\": [448, 512, [], \"f4f8\", \"M0 32l0 448 448 0 0-448-448 0zM262.2 366.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6l0 46.4c0 23.5 6 21.2 25.8 23.9l0 8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1 .6-33.6 .8l0-8.1c15.5-2.9 22-1.3 22-23.9l0-109.4c0-22.6-6.4-21-22-23.9l0-8.1c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7l0 7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2l0-32.2c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7l0 26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8l-17.9 0 0-10.7 30.4 0c0 20.5 4.7 49.9-34 49.9zM168.6 276.1c-9.4 0-13.6-.3-20-.8l0-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"],\n \"signal-messenger\": [512, 512, [], \"e663\", \"M256 0c-13.3 0-26.3 1-39.1 3l3.7 23.7C232.1 24.9 244 24 256 24s23.9 .9 35.4 2.7L295.1 3C282.3 1 269.3 0 256 0zm60.8 7.3l-5.7 23.3c23.4 5.7 45.4 14.9 65.4 27.1l12.5-20.5c-22.1-13.4-46.4-23.6-72.2-29.9zm76.4 61.6c19.1 14 36 30.9 50.1 50.1l19.4-14.2C447 83.6 428.4 65 407.3 49.5L393.1 68.8zm81.7 54.2l-20.5 12.5c12.2 20 21.4 42 27.1 65.4l23.3-5.7c-6.3-25.8-16.5-50.1-29.9-72.2zm10.5 97.5c1.8 11.5 2.7 23.4 2.7 35.4s-.9 23.9-2.7 35.4l23.7 3.7c1.9-12.7 3-25.8 3-39.1s-1-26.3-3-39.1l-23.7 3.7zm-31 155.9l20.5 12.5c13.4-22.1 23.6-46.4 29.9-72.2l-23.3-5.7c-5.7 23.4-14.9 45.4-27.1 65.4zm8.2 30.8l-19.4-14.2c-14 19.1-30.9 36-50.1 50.1l14.2 19.4c21.1-15.5 39.8-34.1 55.2-55.2zm-86.1 47c-20 12.2-42 21.4-65.4 27.1l5.7 23.3c25.8-6.3 50.1-16.5 72.2-29.9l-12.5-20.5zM295.1 509l-3.7-23.7C279.9 487.1 268 488 256 488s-23.9-.9-35.4-2.7L216.9 509c12.7 1.9 25.8 3 39.1 3s26.3-1 39.1-3zm-94.1-27.6c-17.6-4.3-34.4-10.6-50.1-18.6l-7.8-4-32.8 7.7 5.5 23.4 24.3-5.7c17.4 8.9 35.9 15.8 55.3 20.5l5.7-23.3zM95.4 494.6L90 471.3 48.3 481c-10.4 2.4-19.7-6.9-17.3-17.3l9.7-41.6-23.4-5.5-9.7 41.6C1.2 486 26 510.8 53.8 504.4l41.6-9.7zm-50-92.9l7.7-32.8-4-7.8c-8-15.7-14.3-32.5-18.6-50.1L7.3 316.7C12 336.1 18.9 354.7 27.7 372l-5.7 24.3 23.4 5.5zM3 295.1l23.7-3.7C24.9 279.9 24 268 24 256s.9-23.9 2.7-35.4L3 216.9C1 229.7 0 242.7 0 256s1 26.3 3 39.1zm27.6-94.1c5.7-23.4 14.9-45.4 27.1-65.4L37.2 123.1c-13.4 22.1-23.6 46.4-29.9 72.2l23.3 5.7zm18.9-96.2l19.4 14.2c14-19.1 30.9-36 50.1-50.1L104.7 49.5C83.6 65 65 83.6 49.5 104.7zm86.1-47c20-12.2 42-21.4 65.4-27.1L195.2 7.3c-25.8 6.3-50.1 16.5-72.2 29.9l12.5 20.5zM256 464c114.9 0 208-93.1 208-208S370.9 48 256 48 48 141.1 48 256c0 36.4 9.4 70.7 25.8 100.5 1.6 2.9 2.1 6.2 1.4 9.4l-21.6 92.5 92.5-21.6c3.2-.7 6.5-.2 9.4 1.4 29.8 16.5 64 25.8 100.5 25.8z\"],\n \"xing\": [384, 512, [], \"f168\", \"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5L9.8 346c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3L26.4 134.4c-4.3-7.8 .3-14.1 8.5-14.1l65.1 0c7.3 0 13.3 4.1 18 12.2L162.7 210zM382.6 46.1l-144 253 0 .3 91.6 166.6c3.9 7.1 .2 14.1-8.5 14.1l-65.2 0c-7.6 0-13.6-4-18-12.2L146.1 299.4c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2l65.7 0c8 0 12.3 6.7 8.5 14.1z\"],\n \"square-js\": [448, 512, [\"js-square\"], \"f3b9\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5l0-143.1 42.1 0 0 143.7c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6-39.1 0-64.4-18.6-76.7-43z\"],\n \"fonticons\": [448, 512, [], \"f280\", \"M0 32l0 448 448 0 0-448-448 0zM187 172.9c-18.4 0-19 9.9-19 27.4l0 23.3c0 2.4-3.5 4.4-.6 4.4l67.4 0-11.1 37.3-55.7 0 0 112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1 0 25.1-130.7 0 0-25.7 21.3-2c5.2-.6 6.7-2.3 6.7-7.9l0-111.4c0-2.3-2.9-2.3-5.8-2.3l-22.2 0 0-37.4 28 0 0-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8l0-25.1 20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3l0-107.9c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5 80.2 0 0 151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6 0 25.1-102.6 0zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6 27.7 0 15.5-28 9.3 0 15.5 28 27.7 0 3.5 9.6-21.9 24.2z\"],\n \"ups\": [384, 512, [], \"f7e0\", \"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19l0-104-32.7 0 0 102.6c0 74.9 80.2 51.1 97.9 39l0-141.6-32.6 0 0 123zM4 74.8L4 295.7c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1l0-220.9C263.1 13.2 97.6 25.2 4 74.8zM362.1 295.7c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3l0-126.4c102.3-93.8 231.6-100 340.9-89.8l0 216.2zM152.5 188.3l0 212.8 32.7 0 0-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.9-104.4-65.6zm32.7 117.3l0-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4 .6 23.5-30.4 23-50.8 4.9l0 30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2 .6-20.3 30.6-20.5 48.5-2.2l0-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"],\n \"amazon-pay\": [640, 512, [], \"f42c\", \"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.6 20.2 83.3 35.8 127.4 46.3 20.8 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.2-6.6 111.1-21 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-3 2.7-6.2 5.2-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.5 7.9-49.6 13.8-75.1 17.6-17.6 2.7-35.4 4.3-53.2 4.8-.8 0-1.7 .2-2.5 .3l-21.1 0c-.8-.1-1.7-.2-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.8-33.7-2.5-50.4-5.3-27.4-4.5-54.3-11.5-80.4-20.9-53.7-19.4-103.1-48.9-145.6-87-1.8-1.6-3-3.8-4.4-5.7l0-2zM172 65.1l-4.3 .6c-13.8 1.7-26.8 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.4-.3-.9-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6l-11.5 0c-6.9 0-8.2 1.3-8.2 8.2l0 209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1 .1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3l0-72.4c1.1 .9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1 .5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107c-.1-.7 .1-1.3 .4-1.9s.8-1.1 1.3-1.4c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-.6-.3-1-.8-1.3-1.4s-.4-1.2-.4-1.9c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zM330.3 65.1c-1 .1-2 .3-2.9 .4-9.7 .4-19.4 1.8-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7 .1 3.3-.1 6.6 0 9.9 .1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4 .3 8.3 .2 16.6 .3 24.9 0 .5-.1 .9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.6-21.2-4.2-32-4.9-11.3-.6-22.5 .1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4 .5-.4 1-.8 1.6-1.1 .6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4 .1 10.9 .1 16.3 0 1.3 0 2.5-.5 3.4-1.4s1.4-2.1 1.5-3.3c.1-.9 .1-1.9 .1-2.8l0-106c0-4.3-.3-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9 .1-7.9 .1-11.9 .1zm35 127.7c0 .6-.1 1.2-.3 1.7s-.7 1-1.2 1.3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7 .6-11.4 .4-16.8-1.8-3-1.1-5.6-2.9-7.8-5.2s-3.7-5.1-4.6-8.1c-2-6.3-2-13.1-.1-19.4 2.5-8.3 8.4-13 16.4-15.6 8-2.4 16.5-3.2 24.8-2.2 8.4 .7 16.6 2.3 25 3.4 1.6 .2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zM625.2 322.2c-1-5-4.8-6.9-9.1-8.3-6.8-2.1-13.9-3.5-21-3.9-13.1-1.1-26.3-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 .9-2.7 2.1-3.7 3.5-.4 .6-.6 1.3-.7 1.9s0 1.4 .2 2.1c.4 1.5 2.1 1.9 3.6 1.8 .7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.9 .4 9.7 1.3 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4 .4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.8-.4 3.4-1.3 4.8-2.5 4.5-4.2 8.8-8.7 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6 .8-3.6 1.4-7.3 2.1-10.9l0-17.3zM493.1 199c-12.9-35.7-25.8-71.4-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5 .5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97 59.1 145.5 1.7 4.1 2.1 7.6 .2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5 1.3-10.2 1.7-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9 .1 5.5 2 8 7.4 8.9 5.6 1.1 11.2 1.8 16.9 2 17.1 .4 30.7-6.5 39.5-21.4 3.5-5.9 6.6-12 9.2-18.4 23.7-59.8 47.2-119.7 70.6-179.6 .7-1.8 1.3-3.6 1.6-5.5 .4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-1.7-.1-3.4 .3-4.7 1.3s-2.4 2.3-3 3.9c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"],\n \"pandora\": [384, 512, [], \"e7da\", \"M201.3 32L0 32 0 480 120.2 480c11.2 0 20.3-9.1 20.3-20.3l0-86.1 30.1 0c147.1 0 207.3-82.9 207.3-179.9 0-119.7-90.9-161.8-176.5-161.8z\"],\n \"openid\": [448, 512, [], \"f19b\", \"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2 0 246.7 82.5 187.2 191.7 173.9l0 43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103l0-340 68-33.2 0 384 .1 0zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8l0-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8 9.2 97.5z\"],\n \"vsco\": [512, 512, [], \"e7dd\", \"M357.6 256c0-27.1-10.6-52.5-29.7-71.7s-44.6-29.7-71.7-29.7l-.1 0c-27.1 0-52.6 10.6-71.7 29.7s-29.7 44.6-29.7 71.7c0 27.1 10.6 52.5 29.7 71.7 19.2 19.2 44.6 29.7 71.7 29.7l.1 0c27.1 0 52.6-10.6 71.7-29.7 19.2-19.2 29.7-44.6 29.7-71.7zM176.3 482.1c23 8.1 47 12.6 71.6 13.4l0-59.1c-17.1-.7-33.5-3.8-49-8.9l-22.6 54.6zm137-54.6c-15.5 5.1-32 8.2-49 8.9l0 59.1c24.6-.8 48.6-5.3 71.6-13.4l-22.6-54.6zM92.5 431.2c20.2 18.9 43.3 34 68.7 45l22.5-54.5c-18.3-7.9-35.1-18.8-49.8-31.9L92.5 431.2zm285.9-41.4c-14.6 13.2-31.4 24-49.8 31.9l22.5 54.5c25.4-11 48.4-26.1 68.7-45l-41.4-41.4zM145.4 378.2c13.6 12.1 29 21.9 45.8 29 18 7.6 37.1 12 56.7 12.9l0-46.8c-26.4-1.8-50.3-12.3-69.1-28.6l-33.4 33.4zm188-33.4c-18.8 16.3-42.7 26.8-69.1 28.6l0 46.8c19.6-.9 38.7-5.3 56.7-12.9 16.8-7.1 32.2-16.9 45.8-29l-33.4-33.4zM38.5 356.6c10.7 23.2 25 44.3 42.5 63.1l41.3-41.3c-12.4-13.4-22.9-28.6-30.9-45.2L38.5 356.6zm382.4-23.5c-8 16.6-18.5 31.9-30.9 45.2l41.3 41.3c17.5-18.7 31.8-39.9 42.5-63.1l-52.9-23.5zm-331-69c1.1 18.8 5.4 37.2 12.8 54.5 7.5 17.8 18 34 31.2 48.2l33.5-33.5c-16.4-18.8-26.9-42.8-28.7-69.2l-48.8 0zm283.7 0c-1.8 26.4-12.3 50.4-28.7 69.2l33.5 33.5c13.1-14.2 23.6-30.4 31.2-48.2 7.3-17.4 11.6-35.7 12.7-54.5l-48.7 0zm-357.1 0c.9 26.7 6.1 52.7 15.6 77.5L85 318.2c-6.4-17-10.3-35.1-11.3-54l-57.1 0zm422.1 0c-1 18.9-5 37.1-11.3 54l52.8 23.5c9.5-24.8 14.7-50.8 15.6-77.5l-57.1 0zM32.1 170.4c-9.5 24.8-14.7 50.8-15.6 77.5l57.1 0c1-18.9 5-37.1 11.3-54L32.1 170.4zm101.7-25.2c-13.1 14.2-23.6 30.4-31.2 48.2-7.3 17.4-11.6 35.7-12.8 54.5l48.8 0c1.8-26.4 12.3-50.4 28.7-69.2l-33.5-33.5zm211.1 33.5c16.4 18.8 26.9 42.8 28.7 69.2l48.7 0c-1.1-18.8-5.4-37.2-12.7-54.5-7.5-17.8-18-34-31.2-48.2l-33.5 33.5zm82.4 15.2c6.4 17 10.3 35.1 11.3 54l57.1 0c-.9-26.7-6.1-52.7-15.6-77.5l-52.8 23.5zM81 92.3C63.4 111 49.2 132.2 38.5 155.4l52.9 23.5c8-16.6 18.5-31.9 30.9-45.2L81 92.3zm309 41.3c12.4 13.4 22.9 28.6 30.9 45.2l52.9-23.5c-10.7-23.2-25-44.3-42.5-63.1L390 133.7zM248 91.8c-19.6 .9-38.7 5.3-56.7 12.9-16.8 7.1-32.2 16.9-45.8 29l33.4 33.4c18.8-16.3 42.7-26.8 69.1-28.6l0-46.7zm16.3 46.7c26.4 1.8 50.3 12.3 69.1 28.6l33.4-33.4c-13.6-12.1-29-21.9-45.8-29-18-7.6-37.1-12-56.7-12.9l0 46.7zM161.2 35.8c-25.4 11-48.4 26.1-68.7 45l41.4 41.4c14.7-13.2 31.4-24 49.8-31.9L161.2 35.8zM328.6 90.3c18.3 7.9 35.1 18.8 49.8 31.9l41.4-41.4c-20.2-18.9-43.3-34-68.7-45L328.6 90.3zM248 16.4c-24.6 .8-48.6 5.3-71.6 13.4l22.6 54.6c15.5-5.1 32-8.2 49-8.9l0-59.1zm16.3 59.1c17.1 .7 33.5 3.8 49 8.9l22.6-54.6c-23-8.1-47-12.6-71.6-13.4l0 59.1zM512.2 264.2l-.2 0C507.8 399 399.2 507.7 264.3 511.9l0 .1-16.3 0 0-.1C113.1 507.7 4.5 399 .2 264.1l-.2 0 0-16.3 .2 0C4.5 113 113.1 4.3 248 .1l0-.1 16.3 0 0 .1C399.2 4.3 507.8 113 512 247.9l.2 0 0 16.3z\"],\n \"ubuntu\": [576, 512, [], \"f7df\", \"M469.2 75c0-20.1-8-39.3-22.2-53.5s-33.4-22.2-53.5-22.2-39.3 8-53.5 22.2-22.2 33.4-22.2 53.5c0 20.1 8 39.3 22.1 53.5s33.4 22.1 53.5 22.1 39.3-8 53.5-22.1 22.1-33.4 22.1-53.5l.1 0zm-315 165.7a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM57 346c18.6 46.9 51 87 93 115.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2-6.8-.9-13.3-2.1-19.5-3.4-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2l.1 .1zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2 33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6 15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6l.1 0zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3 16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7 3.6-16.7 11.1-32.3 21.8-45.5-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3 7.5 0 15 .8 22.4 2.3l-.1 0z\"],\n \"viacoin\": [384, 512, [], \"f237\", \"M384 32l-64 0-80.7 192-94.5 0-80.8-192-64 0 48 112-48 0 0 48 68.5 0 13.8 32-82.3 0 0 48 102.8 0 89.2 208 89.2-208 102.8 0 0-48-82.3 0 13.8-32 68.5 0 0-48-48 0 48-112zM192 336l-27-64 54 0-27 64z\"],\n \"zhihu\": [640, 512, [], \"f63f\", \"M170.5 148.1l0 217.5 23.4 0 7.7 26.4 42-26.4 49.5 0 0-217.5-122.7 0zm97.8 193.9l-27.9 0-27.9 17.5-5.1-17.5-11.9 0 0-170.3 72.8 0 0 170.3zM149.8 247.7l-52.3 0c1.7-27.1 2.2-51.6 2.2-73.5l51.2 0s2-22.6-8.6-22.3l-88.5 0c3.5-13.1 7.9-26.7 13.1-40.7 0 0-24.1 0-32.3 21.6-3.4 8.9-13.2 43.1-30.7 78.1 5.9-.6 25.4-1.2 36.8-22.2 2.1-5.9 2.5-6.7 5.1-14.5l28.9 0c0 10.5-1.2 66.9-1.7 73.4l-52.3 0c-11.7 0-15.6 23.6-15.6 23.6l65.6 0c-4.4 49.9-28 91.9-70.8 125.1 20.5 5.9 40.9-.9 51-9.9 0 0 23-20.9 35.6-69.3l54 64.9s7.9-26.9-1.2-40c-7.6-8.9-28.1-33.1-36.8-41.8L87.9 312c4.4-14 7-27.6 7.9-40.7l61.6 0s-.1-23.6-7.6-23.6l0 0zm412-1.6c20.8-25.6 45-58.6 45-58.6s-18.6-14.8-27.4-4.1c-6 8.2-36.8 48.2-36.8 48.2l19.2 14.4zM411.8 187c-9-8.2-25.9 2.1-25.9 2.1s39.5 55 41.1 57.4l19.5-13.7s-25.7-37.6-34.7-45.9l0 0 0 0zM640 258.4c-19.8 0-130.9 .9-131.1 .9l0-101c4.8 0 12.4-.4 22.8-1.2 40.9-2.4 70.1-4 87.8-4.8 0 0 12.2-27.2-.6-33.4-3.1-1.2-23.2 4.6-23.2 4.6s-165.2 16.5-232.4 18c1.6 8.8 7.6 17.1 15.8 19.6 13.3 3.5 22.7 1.7 49.2 .9 24.8-1.6 43.7-2.4 56.5-2.4l0 99.8-133.5 0s2.8 22.3 25.5 22.9l107.9 0 0 70.9c0 14-11.2 22-24.5 21.1-14.1 .1-26.1-1.1-41.7-1.8 2 4 6.3 14.4 19.3 21.8 9.9 4.8 16.2 6.6 26 6.6 29.6 0 45.7-17.3 44.9-45.3l0-73.3 122.4 0c9.7 0 8.7-23.8 8.7-23.8l0 0z\"],\n \"yandex\": [256, 512, [], \"f413\", \"M153.1 315.8L65.7 512 2 512 98 302.2C52.9 279.3 22.8 237.8 22.8 161.1 22.7 53.7 90.8 0 171.7 0l82.3 0 0 512-55.1 0 0-196.2-45.8 0zM198.9 46.5l-29.4 0c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8l29.4 0 0-223.4z\"],\n \"pixiv\": [448, 512, [], \"e640\", \"M96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96L96 32zm77.7 217.3a60.1 60.1 0 1 0 120.3 0 60.1 60.1 0 1 0 -120.3 0zM119.1 387.8c-.3-.8-.5-1.7-.5-2.6l0-244.3c0-1.8 .7-3.6 2-4.9s3-2 4.9-2l16.9 0c1.2 0 2.3 .3 3.3 .8s1.9 1.3 2.5 2.3l14 21.8c19.7-15.6 44.5-25 71.6-25 63.6 0 115.2 51.6 115.2 115.2S297.5 364.5 233.8 364.5c-22 0-42.6-6.2-60.1-16.9l0 37.6c0 .9-.2 1.8-.5 2.6s-.9 1.6-1.5 2.2-1.4 1.1-2.2 1.5-1.7 .5-2.6 .5l-41.3 0c-.9 0-1.8-.2-2.6-.5s-1.6-.9-2.2-1.5-1.1-1.4-1.5-2.2z\"],\n \"openai\": [512, 512, [], \"e7cf\", \"M196.4 185.8l0-48.6c0-4.1 1.5-7.2 5.1-9.2l97.8-56.3c13.3-7.7 29.2-11.3 45.6-11.3 61.4 0 100.4 47.6 100.4 98.3 0 3.6 0 7.7-.5 11.8L343.3 111.1c-6.1-3.6-12.3-3.6-18.4 0L196.4 185.8zM424.7 375.2l0-116.2c0-7.2-3.1-12.3-9.2-15.9L287 168.4 329 144.3c3.6-2 6.7-2 10.2 0L437 200.7c28.2 16.4 47.1 51.2 47.1 85 0 38.9-23 74.8-59.4 89.6l0 0zM166.2 272.8l-42-24.6c-3.6-2-5.1-5.1-5.1-9.2l0-112.6c0-54.8 42-96.3 98.8-96.3 21.5 0 41.5 7.2 58.4 20L175.4 108.5c-6.1 3.6-9.2 8.7-9.2 15.9l0 148.5 0 0zm90.4 52.2l-60.2-33.8 0-71.7 60.2-33.8 60.2 33.8 0 71.7-60.2 33.8zm38.7 155.7c-21.5 0-41.5-7.2-58.4-20l100.9-58.4c6.1-3.6 9.2-8.7 9.2-15.9l0-148.5 42.5 24.6c3.6 2 5.1 5.1 5.1 9.2l0 112.6c0 54.8-42.5 96.3-99.3 96.3l0 0zM173.8 366.5L76.1 310.2c-28.2-16.4-47.1-51.2-47.1-85 0-39.4 23.6-74.8 59.9-89.6l0 116.7c0 7.2 3.1 12.3 9.2 15.9l128 74.2-42 24.1c-3.6 2-6.7 2-10.2 0zm-5.6 84c-57.9 0-100.4-43.5-100.4-97.3 0-4.1 .5-8.2 1-12.3l100.9 58.4c6.1 3.6 12.3 3.6 18.4 0l128.5-74.2 0 48.6c0 4.1-1.5 7.2-5.1 9.2l-97.8 56.3c-13.3 7.7-29.2 11.3-45.6 11.3l0 0zm127 60.9c62 0 113.7-44 125.4-102.4 57.3-14.9 94.2-68.6 94.2-123.4 0-35.8-15.4-70.7-43-95.7 2.6-10.8 4.1-21.5 4.1-32.3 0-73.2-59.4-128-128-128-13.8 0-27.1 2-40.4 6.7-23-22.5-54.8-36.9-89.6-36.9-62 0-113.7 44-125.4 102.4-57.3 14.8-94.2 68.6-94.2 123.4 0 35.8 15.4 70.7 43 95.7-2.6 10.8-4.1 21.5-4.1 32.3 0 73.2 59.4 128 128 128 13.8 0 27.1-2 40.4-6.7 23 22.5 54.8 36.9 89.6 36.9z\"],\n \"sith\": [448, 512, [], \"f512\", \"M0 32l69.7 118.8-58.9-11.5 69.8 91c-3 17-3 34.4 0 51.4l-69.8 91 58.9-11.5-69.7 118.8 118.8-69.7-11.5 58.9 91-69.8c17 3 34.5 3 51.5 0l91 69.8-11.5-58.9 118.7 69.7-69.7-118.8 58.9 11.5-69.8-91c3-17 3-34.4 0-51.4l69.8-91-58.9 11.5 69.7-118.8-118.7 69.7 11.5-58.9-91.1 69.9c-8.5-1.5-17.1-2.3-25.7-2.3s-17.2 .8-25.7 2.3L107.2 42.8 118.8 101.7 0 32zM224 380.2a124.2 124.2 0 1 1 0-248.4 124.2 124.2 0 1 1 0 248.4zm0-211.8a87.6 87.6 0 1 0 0 175.1 87.6 87.6 0 1 0 0-175.1z\"],\n \"nfc-directional\": [512, 512, [], \"e530\", \"M211.8 488.6c1.6 2.5 2.1 5.6 1.4 8.5-.6 2.9-2.4 5.5-4.9 7.1-2.6 1.6-5.6 2.1-8.6 1.5-61.4-13.9-115.6-49.9-152.2-101.2S-5.4 290.3 1.6 227.7c7-62.7 36.8-120.5 83.7-162.5 46.9-42 107.7-65.2 170.7-65.2 1.5 0 2.1 .3 4.3 .9 1.4 .6 1.8 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7 .5 1.4 .8 2.8 .8 4.3l0 101 24.5-25.9c1-1.1 2.2-2 3.6-2.6 1.3-.6 2.8-.9 4.3-1 1.5-.1 2.9 .2 4.3 .7s2.7 1.3 3.8 2.4c1 1 1.9 2.2 2.5 3.6 .6 1.3 1 2.8 1 4.3s-.2 3-.7 4.3c-.6 1.4-1.4 2.6-2.4 3.7l-44 46.6c-1.1 1.1-2.3 2-3.7 2.6-1.5 .6-3 .9-5.4 .9-.6 0-2.2-.3-3.6-.9s-2.7-1.5-3.7-2.6l-44.1-46.6c-2-2.2-3.1-5.1-3-8.1 0-3 1.3-6.7 3.5-7.9 2.2-2.1 5.1-3.2 8.1-3.1 3 .1 5.8 1.3 7.9 3.5l24.5 26 0-89.5c-56.4 2.8-109.8 25.8-150.5 65-40.6 39.1-65.7 91.7-70.6 147.9S34.4 348.1 67.7 393.7c32.4 45.5 82 77.5 137 89.9 2.9 .7 5.5 2.5 7.1 5zM171.4 126.1c-.8 1.3-1.9 2.4-3.1 3.2-20.5 13.9-37.2 32.6-48.8 54.5s-17.7 46.3-17.7 71.1 6.1 49.2 17.7 70.2c11.6 22.8 28.3 41.5 48.8 55.4 2.5 1.7 4.2 4.3 4.7 7.3 .6 2.9-.9 6-1.7 8.4-1.7 2.5-5.2 4.2-7.3 3.9-2.9 1.4-6 .8-8.4-.9-23.6-16-42.8-37.5-56.1-62.7-13.3-25.1-20.3-53.1-20.3-81.6 0-28.4 7-56.5 20.3-81.6 13.3-25.2 32.5-46.7 56.1-62.7 1.2-.8 2.6-1.4 4-1.8 1.5-.3 3-.3 4.5 0 1.4 .2 2.8 .8 4.1 1.6s2.3 1.9 3.2 3.1c.8 1.2 1.4 2.6 1.7 4.1s.3 3 0 4.4c-.3 1.5-.8 2.9-1.7 4.1zM340.9 383.5c.8-1.2 1.9-2.3 2.2-3.1l0-.1c21.3-14 38-32.7 49.6-54.6 11.5-21.8 17.5-46.2 17.5-70.9s-6-49.1-17.5-71c-11.6-22.7-28.3-40.5-49.6-54.5-.3-.8-1.4-1.9-2.2-3.1-.8-1.3-1.4-2.7-1.6-4.1-1.2-1.5-.3-3 0-4.4 .3-1.5 .9-2.9 1.7-4.1 .9-1.2 1.1-2.3 3.2-3.1 1.2-.8 2.6-1.3 4.1-1.6s2.9-.3 4.4 0 2.8 .9 4.1 1.8c23.4 16 42.7 37.5 55.9 62.6 13.3 25.1 19.4 53.1 19.4 81.5 0 28.5-6.1 56.5-19.4 81.6-13.2 25.1-32.5 46.6-55.9 62.6-1.3 .9-2.6 1.5-4.1 1.8s-2.9 .3-4.4 0-2.9-1.7-4.1-1.6c-2.1-.8-2.3-1.9-3.2-3.1-.8-1.2-1.4-2.6-1.7-4.1-.3-1.4-1.2-2.9 0-4.4 .2-1.4 .8-2.8 1.6-4.1zM312.3 6.3c56.2 12.7 106.4 44 142.7 88.7 30.4 37.6 49.6 83 55.3 131 5.6 48-2.4 96.7-23.2 140.3-20.9 43.6-53.6 80.5-94.5 106.3-40.9 25.7-88.2 39.4-136.6 39.4-1.5 0-2.9-.3-4.3-.9-1.4-.5-2.6-1.4-3.7-2.4-1.9-1.1-1.9-2.3-2.4-3.7-.6-1.4-.9-2.8-.9-4.3l0-99.2-24.5 26c-2.1 2.2-4.9 2.6-7.9 3.6-3 .1-5.9-1.1-8.1-4-2.2-1.2-3.5-4-3.5-7-.1-3 1-5.9 3-8.1l44.1-46.6c1.3-2.2 5.1-3.4 7.3-3.4 4 0 6.9 1.2 9.1 3.4l44 46.6c2.1 2.2 3.2 5.1 3.1 8.1s-1.4 5.8-3.5 7c-2.2 2.9-5.1 4.1-8.1 4-3-1-5.9-1.4-7.9-3.6l-24.5-25.9 0 87.5c56.4-2.8 109.8-25.8 150.5-65 40.7-40 65.8-91.7 70.7-147.9 4.8-57.1-10.8-112.3-44.1-157.9-33.3-45.6-82-77.5-137-89.9-1.5-.3-2.8-.9-4.1-1.8-1.2-.9-2.2-1.9-3-3.2-.8-1.2-2.2-2.6-1.6-4.1-.2-1.5-.2-3 .1-4.4 .4-1.4 1-2.8 1.8-4 .9-1.2 2-2.2 3.2-3 1.3-.8 2.7-1.3 4.1-1.6 1.5-.3 3-.2 4.4 .1zm40.8 249.8c0 31.4-17.5 61.1-49.3 83.5-2.1 1.5-4.8 2.3-7.4 2-2.7-.2-5.2-1.3-7-3.2l-70.1-69.8c-2.2-2.1-4.2-5-3.4-8 0-3 1.2-5.9 3.3-8 2.2-2.1 5-3.3 8-3.3s5.9 1.2 8 3.3l63.1 62.8c20.8-17.1 32.2-37.9 32.2-59.3 0-23.9-14.1-47-39.7-65.1-2.5-1.7-4.1-4.3-4.6-7.3-.5-2.9 .1-6 1.9-8.4 1.7-2.5 4.3-4.1 7.3-4.6 2.9-.5 6 .1 8.4 1.9 31.8 22.4 49.3 52.1 49.3 83.5zM216.7 341.5c-3 .5-6-.2-8.5-1.9-31.7-22.4-50.1-52.1-50.1-83.5s18.4-61.1 50.1-83.5c2.2-1.6 4.9-2.3 7.5-2.1 2.7 .3 5.1 1.4 7 3.3l70.1 69.8c2.1 2.1 3.3 5 3.3 8s-2 5.8-3.3 8c-2.1 2.1-5 3.3-7.9 3.3-3 0-6.8-1.2-8-3.3l-63.1-62.9c-20.9 17.3-32.2 38-32.2 59.4 0 23 14.1 47 39.7 65 2.4 1.8 4.1 4.4 4.6 7.4 .5 2.9-.2 5.9-1.9 8.4-1.7 2.4-4.4 4.1-7.3 4.6z\"],\n \"creative-commons-by\": [512, 512, [], \"f4e7\", \"M322.9 194.4l0 101.4-28.3 0 0 120.5-77.1 0 0-120.4-28.3 0 0-101.5c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7l101.9 0c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-32.5-64.5a34.5 34.5 0 1 1 -69 .8 34.5 34.5 0 1 1 69-.8zM255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3z\"],\n \"umbraco\": [512, 512, [], \"f8e8\", \"M256.3 8a248 248 0 1 0 -.7 496 248 248 0 1 0 .7-496zm145 266c-.8 27.1-5.4 48.8-14 65s-23.1 27.9-43.5 35c-20.4 7.1-48.9 10.6-85.4 10.5l-4.6 0c-36.5 .1-65-3.3-85.4-10.5s-34.9-18.8-43.5-35c-8.6-16.2-13.2-37.9-14-65-.7-10.2-.7-20.5 0-30.7 .4-14.7 1.6-29.3 3.6-43.9 1.9-13.4 3.6-22.6 5.4-32 1-4.9 1.3-6.4 1.8-8.4 .3-1.1 .9-2.1 1.8-2.8s2-1.1 3.1-1.1l.7 0 32 5c1.2 .2 2.2 .8 3 1.7s1.2 2.1 1.2 3.3c0 .3 0 .5 0 .8l-1.7 8.8c-1.6 8.8-3.2 20.1-4.8 33.7-1.7 14-2.5 28.1-2.6 42.2-.2 27 2.5 46.9 8.1 59.8 2.8 6.4 7.2 12 12.6 16.4s11.9 7.4 18.7 8.8c18.8 4 38.1 5.7 57.3 5.1l10.3 0c19.2 .6 38.5-1.2 57.3-5.2 6.8-1.4 13.2-4.5 18.6-8.8s9.7-10 12.5-16.4c5.7-12.9 8.4-32.9 8.1-59.8-.1-14.1-1-28.2-2.6-42.1-1.7-13.6-3.3-24.8-4.9-33.7l-1.7-8.8c0-.3 0-.5 0-.8 0-1.2 .4-2.4 1.2-3.3s1.8-1.5 3-1.7l32-5 .8 0c1.1 0 2.2 .4 3.1 1.1s1.5 1.7 1.8 2.8c.6 2 .8 3.6 1.8 8.4 1.8 9.6 3.5 18.8 5.4 32 2 14.6 3.2 29.2 3.6 43.9 .7 10.2 .7 20.5 0 30.7l0 0z\"],\n \"hooli\": [640, 512, [], \"f427\", \"M144.5 352l38.3 .8c-13.2-4.6-26-10.2-38.3-16.8l0 16zm57.7-5.3l0 5.3-19.4 .8c36.5 12.5 69.9 14.2 94.7 7.2-19.9 .2-45.8-2.6-75.3-13.3zM611.1 231.5c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM582.1 352l57.9 0 0-110.5-57.9 0 0 110.5zm-73.7 0l57.9 0 0-195.3-57.9 27.3 0 168zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5l0-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9l0 40.4zM331.4 232.6c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1l0-20.7-22.5 10.6c-54.4-22.1-89-18.2-97.3 .1 0 0-24.9 32.8 61.8 110.8l0 73.7 57.9 0 0-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4l0-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6 0-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15l0 48.7c18 12.2 37.3 22.1 57.7 29.6l0-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9l0-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184l0 63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1L65.2 184zM291.7 304.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5l0-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9l0 40.4z\"],\n \"square-git\": [448, 512, [\"git-square\"], \"f1d2\", \"M120.8 335.5c-5.9-.4-12.6-.8-20.2-1.3-3.3 4.1-6.6 8.4-6.6 13.5 0 18.5 65.5 18.5 65.5-1.5 0-8.3-7.4-8.7-38.8-10.7l.1 0zm7.8-117.9c-32.3 0-33.7 44.5-.7 44.5 32.5 0 31.7-44.5 .7-44.5zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM243.9 172.2c-14.5 0-22.9-8.4-22.9-22.9s8.4-22.3 22.9-22.3c14.7 0 23.1 7.8 23.1 22.3s-8.4 22.9-23.1 22.9zM149.6 195l49.5 0 0 21.6-23.4 1.8c4.6 5.8 9.4 14 9.4 25.7 0 48.7-57.2 47.2-74.2 42.4l-8.4 13.4c5 .3 9.8 .6 14.3 .8 56.3 3.2 80.5 4.6 80.5 38.5 0 29.2-25.7 45.7-69.9 45.7-46 0-63.5-11.6-63.5-31.7 0-11.4 5.1-17.5 14-25.9-8.4-3.5-11.2-9.9-11.2-16.8 0-9.6 7.4-16.3 23-30.6l.2-.2c-12.4-6.1-21.8-19.3-21.8-38.1 0-51.6 56.6-53.3 81.6-46.8l-.1 .2zM270.5 303.1l13 1.8 0 20.1-72.4 0 0-20.1c2.7-.4 5-.7 6.9-.9 9.9-1.2 10.1-1.3 10.1-6l0-74.7c0-4.4-.9-4.7-10.1-7.8-1.9-.7-4.2-1.4-6.9-2.4l2.8-20.6 52.6 0 0 105.5c0 4.1 .2 4.6 4.1 5.1l-.1 0zm106.6-10.4L384 315c-10.9 5.4-26.9 10.2-41.4 10.2-30.2 0-41.7-12.2-41.7-40.9l0-66.6c0-.8 0-1.4-.2-1.8-.8-1.2-4.2-.7-19.6-.7l0-22.6c22.3-2.5 31.2-13.7 34-41.4l24.2 0c0 33.3-.6 38 .7 38.6 .3 .1 .7 0 1.3 0l35.8 0 0 25.4-37.8 0 0 61.6c-.2 6.3-.9 30.4 37.9 15.9l-.1 0z\"],\n \"odnoklassniki\": [320, 512, [], \"f263\", \"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9S255 269.2 255 269.2c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zm14.6-204.7a129.7 129.7 0 1 1 -259.4 .4 129.7 129.7 0 1 1 259.4-.4zm-193.4 .4a63.7 63.7 0 1 0 127.4-.4 63.7 63.7 0 1 0 -127.4 .4z\"],\n \"drupal\": [384, 512, [], \"f1a9\", \"M272.3 108.1C236.5 72.5 202.5 38.4 192.4 0 182.4 38.4 148.1 72.5 112.4 108.1 58.8 161.7-1.9 222.4-1.9 313.4-4.3 420.7 80.8 509.6 188.1 512s196.2-82.8 198.5-190.1c.1-2.8 .1-5.6 0-8.5 0-91.1-60.8-151.7-114.3-205.3zM98 331.1c-5.9 7.5-11 15.6-15.2 24.2-.3 .7-.8 1.3-1.3 1.8s-1.2 .8-2 1l-1.7 0c-4.3 0-9.2-8.5-9.2-8.5-1.3-2-2.5-4.2-3.7-6.4l-.8-1.8c-11.2-25.7-1.5-62.3-1.5-62.3 4.8-17.8 12.7-34.7 23.2-49.9 6.4-9.6 13.5-18.9 21-27.7l9.2 9.2 43.5 44.4c.8 .9 1.3 2.1 1.3 3.3s-.5 2.4-1.3 3.3L114.1 312.3 98 331.1zm96.6 127.3c-12.9-.1-25.6-3.9-36.4-11s-19.4-17.1-24.6-28.9-7-24.9-5-37.7 7.6-24.7 16.2-34.4c14.2-16.9 31.5-33.5 50.3-55.3 22.3 23.8 36.9 40.1 51.2 58 1.1 1.4 2.1 2.9 3 4.4 7.8 11.1 12 24.4 12 38 0 8.8-1.7 17.4-5 25.5s-8.2 15.5-14.4 21.7-13.5 11.1-21.6 14.5-16.7 5.1-25.5 5.1l-.2 0zM320.7 351.6c-.4 1.4-1.2 2.6-2.3 3.6s-2.4 1.6-3.8 1.8l-1.3 0c-2.6-.9-4.9-2.7-6.3-5.1-11.6-17.5-24.9-33.9-39.5-49l-17.8-18.4-59.1-61.3c-12.4-11.5-24.2-23.6-35.4-36.3-.3-.5-.6-.9-.9-1.4-2-2.8-3.6-5.9-4.7-9.2l0-1.8c-.8-5-.4-10.1 1.2-15s4.4-9.2 8-12.7c11.4-11.4 23-23 33.8-34.9 12 13.3 24.8 26 37.4 38.6 25.8 24 49.1 50.5 69.6 79.1 17.3 24.5 26.7 53.8 27 83.8-.1 12.9-2.2 25.8-6 38.2z\"],\n \"blogger-b\": [448, 512, [], \"f37d\", \"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8 .6-108.4 10-43.5 17.2-74.7 53.8-86.1 100.6-2.1 8.8-2.6 22.9-3.1 103.9-.6 101.5 .1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zM124.5 159.1c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4 .1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5 .2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zM316.3 358.9l-14.9 2.4-77.5 .9c-68.1 .8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"],\n \"invision\": [448, 512, [], \"f7b0\", \"M407.4 32L40.6 32C18.2 32 0 50.2 0 72.6L0 439.4C0 461.8 18.2 480 40.6 480l366.8 0c22.4 0 40.6-18.2 40.6-40.6l0-366.8C448 50.2 429.8 32 407.4 32zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9 .7l-25.8 103.3-45.1 0 8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3 .1-14.3 .9-14 23-104.1l-31.8 0 9.7-35.6 76.4 0c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4-32.3 0 9.7-35.6 68.8 0-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"],\n \"facebook-f\": [320, 512, [], \"f39e\", \"M80 299.3l0 212.7 116 0 0-212.7 86.5 0 18-97.8-104.5 0 0-34.6c0-51.7 20.3-71.5 72.7-71.5 16.3 0 29.4 .4 37 1.2l0-88.7C291.4 4 256.4 0 236.2 0 129.3 0 80 50.5 80 159.4l0 42.1-66 0 0 97.8 66 0z\"],\n \"centos\": [448, 512, [], \"f789\", \"M289.6 97.5l31.6 31.7-76.3 76.5 0-108.2 44.7 0zM127.2 129.2l76.3 76.5 0-108.2-44.7 0-31.6 31.7zm41.5-41.6l44.7 0 0 127.9 10.8 10.8 10.8-10.8 0-127.9 44.7 0-55.5-55.6-55.5 55.6zm26.2 168.1l-10.8-10.8-128.6 0 0-44.8-55.5 55.6 55.5 55.6 0-44.8 128.6 0 10.8-10.8zM274.2 235l107.9 0 0-44.8-31.6-31.7-76.3 76.5zm173.3 20.7l-55.5-55.6 0 44.8-127.7 0-10.8 10.8 10.8 10.8 127.7 0 0 44.8 55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5 15.3 0 0-15.3-90.3-90.5 31.6-31.7-79.4 0 0 78.7zM382.1 97.5l-78.5 0 31.6 31.7-90.3 90.5 0 15.3 15.3 0 90.3-90.5 31.6 31.7 0-78.7zM203.5 413.9l0-108.1-76.3 76.5 31.6 31.7 44.7 0 0-.1zM65.4 235l108.8 0-76.3-76.5-32.5 31.7 0 44.8zM382.1 335.2l-31.6 31.7-90.3-90.5-15.3 0 0 15.3 90.3 90.5-31.6 31.7 78.5 0 0-78.7zm0-58.8l-107.9 0 76.3 76.5 31.6-31.7 0-44.8zM321.2 382.2l-76.3-76.5 0 108.1 44.7 0 31.6-31.6zM97.9 352.9l76.3-76.5-108.8 0 0 44.8 32.5 31.7zm181.8 70.9l-44.7 0 0-127.9-10.8-10.8-10.8 10.8 0 127.9-44.7 0 55.5 55.6 55.5-55.6zM113.2 382.2l90.3-90.5 0-15.3-15.3 0-90.3 90.5-32.5-31.7 0 78.7 79.4 0-31.6-31.7z\"],\n \"cc-amazon-pay\": [576, 512, [], \"f42d\", \"M124.7 201.8c.1-11.8 0-23.5 0-35.3l0-35.3c0-1.3 .4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5 .9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5 .9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8 .1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM368.5 103.9c.4 1.7 .9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4 .2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9 .9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3 .1 4.6 1.6 6.7 6.2 7.5 4.7 .8 9.4 1.6 14.2 1.7 14.3 .3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5 .6-1.5 1.1-3 1.3-4.6 .4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5 .4-.3 .8-.6 1.4-1 .5 3.2 .9 6.2 1.5 9.2 .5 2.6 2.1 4.3 4.5 4.4 4.6 .1 9.1 .1 13.7 0 2.3-.1 3.8-1.6 4-3.9 .1-.8 .1-1.6 .1-2.3l0-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1l-10 0c-.8 .1-1.6 .3-2.5 .3-8.2 .4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5 .1 2.8-.1 5.6 0 8.3 .1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4 .8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7 .3 6.9 .2 13.9 .3 20.8 0 .4-.1 .7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9 .1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9l0 175.3c0 .8 0 1.7 .1 2.5 .2 2.5 1.7 4.1 4.1 4.2 5.9 .1 11.8 .1 17.7 0 2.5 0 4-1.7 4.1-4.1 .1-.8 .1-1.7 .1-2.5l0-60.7c.9 .7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2l-7 0c-1.2 .2-2.4 .3-3.6 .5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6l-9.7 0c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6 .7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1l0 1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4 .7 0 1.4 .2 2.1 .3l17.7 0c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zM544 311.3c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2 .8-2.4 1.8-3.1 3-.6 .9-.7 2.3-.5 3.4 .3 1.3 1.7 1.6 3 1.5 .6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1 .3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7 .3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3 .8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6 .7-3 1.2-6.1 1.7-9.1 .2-4.7 .2-9.6 .2-14.5z\"],\n \"ebay\": [640, 512, [], \"f4f4\", \"M606.5 189.5l-54.8 109.9-54.9-109.9-37.5 0 10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1l33.7 0c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33l0 3.4c-12.7 0-28 .1-41.7 .4-42.4 .9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2l0-80.6-32.1 0 0 169.5c0 10.3-.6 22.9-1.1 33.1l31.5 0c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6 .3 13.3 1.1 20.2l29.8 0c-.7-8.2-1-17.5-1-26.8l0-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1 35.9 0 99.2-194.8-34 0zM244.2 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6l0 3.3zM33.2 268.1l128.8 0 0-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1l-33.1 0c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4l-94.4 0c6.9-56.6 92.1-54.7 94.4 0z\"],\n \"contao\": [512, 512, [], \"f26d\", \"M45.4 305c14.4 67.1 26.4 129 68.2 175L34 480c-18.7 0-34-15.2-34-34L0 66C0 47.3 15.2 32 34 32l57.7 0c-13.8 12.6-26.1 27.2-36.9 43.6-45.4 70-27 146.8-9.4 229.4zM478 32l-90.2 0c21.4 21.4 39.2 49.5 52.7 84.1L303.4 145.4c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6l52.1 0c18.7 0 34-15.2 34-34L512 66c0-18.8-15.2-34-34-34z\"],\n \"ello\": [512, 512, [], \"f5f1\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM399.8 293.2C383.3 358.5 323.8 404.8 256 404.8S128.7 358.5 112.2 293.2c-1.6-7.4 2.5-15.7 9.9-17.4s15.7 2.5 17.4 9.9c14 52.9 62 90.1 116.6 90.1s102.5-37.2 116.6-90.1c1.7-7.4 9.9-12.4 17.4-9.9 7.4 1.7 12.4 9.9 9.9 17.4z\"],\n \"sistrix\": [448, 512, [], \"f3ee\", \"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9-91.9-.1-166.6 75.7-166.6 168.8S74.7 369.8 166.5 369.8c39.8 0 76.3-14.2 105-37.9L417.5 480 448 449zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71 294.6 129.3 294.6 200.9 237.2 330.8 166.5 330.8z\"],\n \"periscope\": [448, 512, [], \"f3da\", \"M370 63.6c-38.6-41-89.5-63.6-143.4-63.6-114.7 0-208.1 96.2-208.1 214.4 0 75.1 57.8 159.8 82.7 192.7 36.6 48.4 91.4 104.9 125.4 104.9 41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3 .1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8l0 .4c0 24.5 20.1 44.4 44.8 44.4s44.8-19.9 44.8-44.4c0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"],\n \"expeditedssl\": [512, 512, [], \"f23e\", \"M256 43.4a212.6 212.6 0 1 0 0 425.2 212.6 212.6 0 1 0 0-425.2zM158.6 176.3c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4l0 26.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-26.6c0-82.1-124-82.1-124 0l0 26.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-26.6 .2 0zM397.7 380c0 9.7-8 17.7-17.7 17.7l-248 0c-9.7 0-17.7-8-17.7-17.7l0-141.7c0-9.7 8-17.7 17.7-17.7l248 0c9.7 0 17.7 8 17.7 17.7l0 141.7zm-248-137.3l0 132.9c0 2.5-1.9 4.4-4.4 4.4l-8.9 0c-2.5 0-4.4-1.9-4.4-4.4l0-132.9c0-2.5 1.9-4.4 4.4-4.4l8.9 0c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4l0 31.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 17.7a230.3 230.3 0 1 1 0 460.6 230.3 230.3 0 1 1 0-460.6z\"],\n \"napster\": [512, 512, [], \"f3d2\", \"M306.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5l100.7 0zm44-199.6c20-16.9 43.6-29.2 69.6-36.2l0 161.2c0 219.4-328 217.6-328 .3l0-161.6c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zM141.5 115.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9 .1-6.3-4-13.9-8.2-20.4-11.4zM51.8 93.2l0 69.3c-58.4 36.5-58.4 121.1 .1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7 .2-158.2l0-69.2c-17.3 .5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5 .1-16.3-4.4-33.1-7-50.6-7.5zM267.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zM131.7 296.7c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zM300.8 420.1c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"],\n \"delicious\": [448, 512, [], \"f1a5\", \"M446.6 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5l-352 0C21.6 32 .1 53.5 .1 80l0 352c0 4.1 .5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5l352 0c26.5 0 48-21.5 48-48l0-352.1c-.1-4.1-.6-8.2-1.6-12zM416.1 432c0 8.8-7.2 16-16 16l-176 0 0-192-192 0 0-176c0-8.8 7.2-16 16-16l176 0 0 192 192 0 0 176z\"],\n \"guilded\": [448, 512, [], \"e07e\", \"M443.9 64L5 64c0 103.3 22.2 180.1 43.4 222.4 64.1 127.8 176 161.6 177.3 161.6 55.7-20.5 104.5-56.3 140.6-103.5 25.9-33.9 53.1-87.2 65.9-145.8l-259.9 0c4.1 36.4 22.2 67.9 45.1 86.9l88.6 0c-17 28.2-48.2 54.4-80.5 69.5-31.2-13.3-69.1-46.5-96.5-98.4-26.7-53.8-27.1-105.9-27.1-105.9l336.1 0c4-28.8 5.9-57.9 5.9-86.9z\"],\n \"xbox\": [512, 512, [], \"f412\", \"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39-27.9-18.2-34.2-25.7-34.2-40.6 0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5c-16.9-80-67.5-130.3-74.6-130.3-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8 42.4 53.3 102.2 139.4 122.9 202.3 6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43c47.7-2.5 109.7 34.5 114.3 35.4 .7 .1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"],\n \"untappd\": [640, 512, [], \"f405\", \"M401.5 49.9C321.7 210 316.9 202.4 313.6 223.1l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.8 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4L169.1 198.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1 .6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4 .9-2.5 4.4-2.3 7.4 .1 2.8-2.3 3.6-6.5 6.1zM230.3 36.4c3.4 .9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3 .5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5 .1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6 .3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620.2 406.7L471.4 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6 .5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4L494.8 497.2c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"],\n \"google-plus-g\": [640, 512, [], \"f0d5\", \"M386.3 228.5c1.8 9.7 3.1 19.4 3.1 32 0 109.8-73.6 187.5-184.4 187.5-106.1 0-192-85.9-192-192S98.9 64 205 64c51.9 0 95.1 18.9 128.6 50.3l-52.1 50c-14.1-13.6-39-29.6-76.5-29.6-65.5 0-118.9 54.2-118.9 121.3S139.5 377.3 205 377.3c76 0 104.5-54.7 109-82.8l-109 0 0-66 181.3 0 0 0zm185.4 6.4l0-55.7-56 0 0 55.7-55.7 0 0 56 55.7 0 0 55.7 56 0 0-55.7 55.7 0 0-56-55.7 0z\"],\n \"github-alt\": [512, 512, [], \"f113\", \"M202.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM496 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3l48.2 0c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"],\n \"get-pocket\": [448, 512, [], \"f265\", \"M407.6 64l-367 0C18.5 64 0 82.5 0 104.6L0 239.8C0 364.5 99.7 464 224.2 464 348.2 464 448 364.5 448 239.8l0-135.2C448 82.2 430.3 64 407.6 64zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0-113.7-108.9-114.9-105.1-114.9-123.2 0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3s30.7 13.8 30.7 30.7c0 17.8-2.9 15.7-114.8 123.2z\"],\n \"glide\": [448, 512, [], \"f2a5\", \"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM384 267c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8 .1 4.1-1.7 4.1-3.5z\"],\n \"bity\": [512, 512, [], \"f37a\", \"M86.5 67.2c95.4-89.2 246.1-91.2 343.1 3.8 14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30-112.2-33.9-175.8-149.7-147.5-261 5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8s-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0l0 71.6c0 69.3 60.7 90.9 118 90.1 57.3 .8 118-20.8 118-90.1l0-71.6c0-19.6-32.5-21.8-32.5 0z\"],\n \"wpexplorer\": [512, 512, [], \"f2de\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm480 0a224 224 0 1 0 -448 0 224 224 0 1 0 448 0zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94-14.6 0-50-100-48.9 100-14 0 51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zM259.1 177.4l68.6 29.4-29.4 68.3-68.3-29.1 29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"],\n \"megaport\": [512, 512, [], \"f5a3\", \"M222.5 209.6l0 66.2 33.5 33.5 33.3-33.3 0-66.4-33.4-33.4-33.4 33.4zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM401.1 422.4l-26.1 19.2-26-19.2 0-65.5-33.4-33.4-33.4 33.4 0 65.5-26.2 19.2-26.1-19.2 0-65.5-33.4-33.4-33.5 33.4 0 65.5-26.1 19.2-26.1-19.2 0-87 59.5-59.5 0-87.9 59.5-59.5 0-75.6 26.1-19.2 26.1 19.2 0 75.6 59.5 59.5 0 87.6 59.7 59.7 0 87.1-.1 0z\"],\n \"mdb\": [576, 512, [], \"f8ca\", \"M17.4 160.4l-10.4 191.6 43.9 0 5.6-79.8 27.9 79.8 44.7 0 25.5-77.4 4.8 77.4 45.5 0-12.8-191.6-45.5 0-40.7 117.3-42.3-117.3-46.3 0zm281 0l-47.9 0 0 191.6 47.9 0s95 .8 94.2-95.8c-.8-94.2-94.2-95.8-94.2-95.8l0 0zm-1.2 146.5l0-102.1s46 4.3 46.8 50.6-46.8 51.5-46.8 51.5l0 0zm238.3-74.2c7.2-11.4 10-25 8-38.3-5.3-35.8-55.1-34.3-55.1-34.3l-51.9 0 0 191.6 45.5 0s87 4.8 87-63.8c0-43.1-33.5-55.1-33.5-55.1l0 0zm-51.9-31.9s13.6-1.6 16 9.6c1.4 6.7-4 12-4 12l-12 0 0-21.6zm-.1 109.5l.1-24.9 0-18.2 .1 0s41.6-4.7 41.2 22.4c-.3 25.7-41.3 20.7-41.3 20.7l0 0z\"],\n \"page4\": [512, 512, [], \"f3d7\", \"M256 504C119 504 8 393 8 256S119 8 256 8c20.9 0 41.3 2.6 60.7 7.5L50.3 392 256 392 256 504zm0-143.6l0-213.6-149.4 213.6 149.4 0zM352 392l0 92.7c45.7-19.2 84.5-51.7 111.4-92.7L352 392zm57.4-138.2l-21.2 8.4 21.2 8.3 0-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9l0 7.7 16.2 0 0-10c0-5.9-2.3-10.6-8.2-10.6zM504 256c0 37.3-8.2 72.7-23 104.4l-129 0 0-333.1C441.3 64.8 504 153.1 504 256zM368.4 143.6l68.2 0 0-47.6-13.9 0 0 32.6-13.9 0 0-29.6-13.9 0 0 29.6-12.7 0 0-32.6-13.9 0 0 47.6 .1 0zm68.1 185.3l-26.5 0 0-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9l0 25.3 68.2 0 0-15-.1 0zm0-103l-68.2 29.7 0 12.4 68.2 29.5 0-16.6-14.4-5.7 0-26.5 14.4-5.9 0-16.9zm-4.8-68.5l-35.6 0 0 26.6 13.9 0 0-12.2 11 0c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"],\n \"the-red-yeti\": [512, 512, [], \"f69d\", \"M488.7 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9-9.1 4.4-17.6 10-25.3 16.5-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5 .5c-22-7.7-45.1-12.2-68.4-13.3-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2-1.8-.5c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27-3.3 8.1-3.5 17.1-.5 25.3 3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0l-3.7 0 33 14.3c-20.2 18.9-36.1 41.9-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8-10.9 12.2-20.2 25.8-27.8 40.3-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7 .7 3.4 1.2 5.2 0 25.5 .4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5c-1.8-11.7-4.8-23.1-8.9-34.2-1.5-4.8-3.8-9.3-6.8-13.3l0 0zM398.5 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4c-9 .5-18 .5-27 0 12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9c-1.3-5-1.8-10.1-1.7-15.2 5.4 .5 8.8 3.4 9.3 10.1 .5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8 .9-.7 14.8l-2.5 0c-1.2-8.2-4.1-16-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2l20.3-11.8zm-267.4 42l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5 .5 20.9 1.2 5.2 1.7 10.6 2.5 16 2.5l.5-1.7-8.4-35.8 13.5 29c2.8-4.4 4.8-9.2 5.9-14.3 1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3c-2.6 8.3-4.7 16.8-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5c21.9-13.5 45.5-19.4 71.3-18.9l21.1 .5c-11.8 13.5-27.8 21.9-48.5 24.8-7.7 1.4-15.6 2.4-23.4 2.9l-.2-.5-2.5-1.2c-4.8-1-9.7-.3-14 2-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7 .5 1.2c2 .2 3.9 .5 6.2 .7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4 1.2 0c6.1-8.2 15.2-13.6 25.3-15.2l0-3c6.4 .5 13 1 19.4 1.2 6.4 0 8.4 .5 5.4 1.2 7.2 4 14.1 8.6 20.7 13.5 13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6 0 9.5-1 19-3 28.3-3.5 15.9-8.9 31.3-16 46l2.5 .5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2 .2-.2 .2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.3-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1l10.6-8.4c-8.8-3-18.2-3-28.3 .5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zM368 473.1c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3 11.1 9.2 22.9 17.5 35.4 24.8 3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1 8.7 7.3 15.8 16.4 20.7 26.6-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2 .7 89.5zM483.3 258.7l-2.5 .5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2-1.2 0-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2c-31.2 4.7-63 2.5-93.2-6.4-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4L29.3 284.8 7 307.1c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2 1.2-.7 2.4-1.3 3.7-1.7 .6-3.2 .4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7 .5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6l0-.5 1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8 0-2-5.4-4.2 10.1 0 5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5c11.1 .4 22.1 1.8 33 4.2l-23.6 2.5-1.2 3 26.6 23.1c9.9 9.9 18.9 20.6 27 32-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5-8.9-12.8zm-6.1-71.3l-3.9 13-14.3-11.8 18.2-1.2zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2c8.3 1.3 16.9 .4 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7c-3.5-5.7-8.4-10.5-14.3-13.8l0 0zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6l0-4.7-1.2 .5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5 .5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6 .3 9.3-1.1 9.3-14.8l-.5 0c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2 .5 1.1 1.3 2 2.2 2.8s2 1.2 3.2 1.4l0 0zm40.1-50.1l-2.5 .5 .5 3c9.1-.5 18.1 1.5 26.1 5.9-2.5-5.5-10-14.3-28.3-14.3l.5 2.5 3.7 2.4zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7c8.4-7.2 13.7-17.3 14.8-28.3 1.7-16-1.2-29.5-8.8-41.3l13-7.6c0-.3 0-.6-.1-.9s-.2-.6-.4-.8c-2.2-.9-4.6-1.2-7-.9s-4.6 1.2-6.5 2.6c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5-1.9 7.7-2.9 15.6-2.9 23.6-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3 2.5 8.2 3.5 16.8 3 25.3-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6-3.8 .4-7.6 .2-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9 .5 .5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6-1.7 11.2-1.2 22.7 1.7 33.7 .1 .5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2 .5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6l2.5 0-11.8-7.6-7.1 .5c-5.9 1.2-12.3 4.2-19.4 8.4l3.1-6.5z\"],\n \"jira\": [512, 512, [], \"f7b1\", \"M498.5 241.7c-72.9-72.7-169.4-169.9-241.5-241.7-165.5 164.9-242.5 241.7-242.5 241.7-7.9 7.9-7.9 20.7 0 28.7 132.8 132.3 61.8 61.5 242.5 241.6 379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zM257 331.7l-76-75.7 76-75.7 76 75.7-76 75.7z\"],\n \"fedex\": [640, 512, [], \"f797\", \"M586 284.5l53.3-59.9-62.4 0-21.7 24.8-22.5-24.8-118.7 0 0-16 56.1 0 0-48.1-151.2 0 0 75.5-.5 0c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14l0-24.2-54.8 0 0-26.2 60 0 0-41.1-109 0 0 184.4 49 0 0-77.5 48.9 0c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7l-42 0c-14.7 20.9-45.8 8.9-45.8-14.6l85.5 0c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6l.5 0 0 11.9 212.2 0 22.1-25 22.3 25 64.4 0-54-60.5zM139.3 267.9c6.1-26.3 41.7-25.6 46.5 0l-46.5 0zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1l-94.4 0 0-166.5 95 0 0 30.2-56.1 0 0 33.9 55.5 0 0 28.1-56.1 0 0 44.7 56.1 0 0 29.6zm-45.9-39.8l0-24.4 56.1 0 0-44 50.7 57-50.7 57 0-45.6-56.1 0zm138.6 10.3l-26.1 29.5-38.1 0 45.6-51.2-45.6-51.2 39.7 0 26.6 29.3 25.6-29.3 38.5 0-45.4 51 46 51.4-40.5 0-26.3-29.5z\"],\n \"evernote\": [384, 512, [], \"f839\", \"M121.1 132.2c1.6 22.3-17.6 21.6-21.6 21.6-68.9 0-73.6-1-83.6 3.3-.6 .2-.7 0-.4-.4L124.1 46.4c.4-.4 .6-.2 .4 .4-4.4 10-3.4 15.1-3.4 85.4zm79 308c-14.7-37.1 13-76.9 52.5-76.6 17.5 0 22.6 23.2 7.9 31.4-6.2 3.3-24.9 1.7-25.1 19.2 0 17.1 19.7 25 31.2 24.9 6 0 11.9-1.2 17.5-3.5s10.6-5.7 14.8-9.9 7.6-9.3 9.9-14.8 3.5-11.5 3.5-17.5l0-.1c0-11.6-7.8-47.2-47.5-55.3-7.7-1.5-65-6.3-68.4-50.5-3.7 16.9-17.4 63.5-43.1 69.1-8.7 1.9-69.7 7.6-112.9-36.8 0 0-18.6-15.2-28.2-58-3.4-15.7-9.3-39.7-11.1-62 0-18 11.1-30.4 25.1-32.2 81 0 90 2.3 101-7.8 9.8-9.2 7.8-15.5 7.8-102.8 1-8.3 7.8-30.8 53.4-24.1 6 .9 31.9 4.2 37.5 30.6L290 74.8c20.4 3.7 70.9 7 80.6 57.9 22.7 121.1 8.9 238.5 7.8 238.5-16 114.4-111.1 108.9-111.1 108.9-19-.2-54.2-9.4-67.3-39.8l0 0zM281 235.4c-1 1.9-2.2 6 .9 7 14.1 4.9 39.8 6.8 45.9 5.5 3.1-.2 3.1-4.4 2.5-6.6-3.5-21.8-40.8-26.5-49.2-5.9l0 0z\"],\n \"usb\": [640, 512, [], \"f287\", \"M633.5 256c0 3.1-1.7 6.1-4.5 7.5L539.9 317c-1.4 .8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8l0-35.6-230.7 0c25.3 39.6 40.5 106.9 69.6 106.9l26.7 0 0-26.8c0-5 3.9-8.9 8.9-8.9l89.1 0c5 0 8.9 3.9 8.9 8.9l0 89.1c0 5-3.9 8.9-8.9 8.9l-89.1 0c-5 0-8.9-3.9-8.9-8.9l0-26.7-26.7 0c-75.4 0-81.1-142.5-124.7-142.5l-100.3 0c-8.1 30.6-35.9 53.5-69 53.5-39.3-.1-71.3-32.1-71.3-71.4s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4 40.1-89.1 58.1-82.1 108.9-82.1 7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6l-29.8 0c-29.1 0-44.3 67.4-69.6 106.9l302.1 0 0-35.6c0-3.3 1.7-6.1 4.5-7.8s6.4-1.4 8.9 .3L629 248.8c2.8 1.1 4.5 4.1 4.5 7.2z\"],\n \"angrycreative\": [640, 512, [], \"f36e\", \"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2-47.3 115.4-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8 12.9-120.1-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8-32.8 2-59.7-20.9-56.4-58.2 2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6 32.1 110.6 8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7c-6.7-12.4-14.4-16.6-26.3-15.8-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4L145 326.3c14.2-.9 27.5-2.1 28.8-16.1zM194.9 381l5.8-60c-5 13.5-14.7 21.1-27.9 26.6L194.9 381zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zM160.2 261.4l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8 .3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1 .6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"],\n \"mizuni\": [512, 512, [], \"f3cc\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM176 359.9c-31.4 10.6-58.8 27.3-80 48.2L96 136c0-22.1 17.9-40 40-40s40 17.9 40 40l0 223.9zM296 350c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1l0-214c0-22.1 17.9-40 40-40s40 17.9 40 40l0 214zm120 57.7c-21.2-20.8-48.6-37.4-80-48L336 136c0-22.1 17.9-40 40-40s40 17.9 40 40l0 271.7z\"],\n \"itch-io\": [512, 512, [], \"f83a\", \"M71.9 34.8C50.2 47.7 7.4 96.8 7 109.7l0 21.3c0 27.1 25.3 50.8 48.2 50.8 27.6 0 50.5-22.8 50.5-50 0 27.1 22.2 50 49.8 50s49-22.8 49-50c0 27.1 23.6 50 51.2 50l.5 0c27.6 0 51.2-22.8 51.2-50 0 27.1 21.5 50 49 50s49.8-22.8 49.8-50c0 27.1 23 50 50.5 50 23 0 48.3-23.8 48.3-50.8l0-21.3c-.4-12.9-43.2-62.1-64.9-75-67.4-2.3-114.2-2.7-184-2.7S91.1 33.1 71.9 34.8zM204.2 169.2c-22 38.4-77.9 38.7-99.8 .2-13.2 23.1-43.2 32.1-56 27.7-3.9 40.2-13.7 237.1 17.7 269.2 80 18.7 302.1 18.1 379.8 0 31.6-32.3 21.3-232 17.7-269.2-12.9 4.4-42.9-4.6-56-27.7-22 38.5-77.8 38.1-99.8-.2-7.1 12.5-23 28.9-51.8 28.9-10.4 .3-20.8-2.2-29.9-7.3s-16.7-12.6-21.9-21.6l0 0zm-41.6 53.8c16.5 0 31.1 0 49.2 19.8 29.3-3 58.9-3 88.2 0 18.2-19.7 32.8-19.7 49.2-19.7 52.3 0 65.2 77.5 83.9 144.4 17.3 62.2-5.5 63.7-34 63.7-42.1-1.6-65.5-32.2-65.5-62.8-39.3 6.4-101.9 8.8-155.6 0 0 30.6-23.3 61.2-65.5 62.8-28.4-.1-51.2-1.6-33.9-63.7 18.7-67 31.6-144.4 83.9-144.4l0-.1zM256 270.8s-44.4 40.8-52.4 55.2l29-1.2 0 25.3c0 1.5 21.3 .2 23.3 .2 11.6 .5 23.3 1 23.3-.2l0-25.3 29 1.2c-8-14.5-52.4-55.2-52.4-55.2l.1 0z\"],\n \"windows\": [448, 512, [], \"f17a\", \"M0 93.7l183.6-25.3 0 177.4-183.6 0 0-152.1zM0 418.3l183.6 25.3 0-175.2-183.6 0 0 149.9zm203.8 28l244.2 33.7 0-211.6-244.2 0 0 177.9zm0-380.6l0 180.1 244.2 0 0-213.8-244.2 33.7z\"],\n \"stumbleupon\": [512, 512, [], \"f1a4\", \"M502.9 266l0 69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3l0-70.2 34.3 16 51.1-15.2 0 70.6c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338l0-72 85.9 0zM278.2 207.8l34.3 16 51.1-15.2 0-35.6c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2l0 162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6l0-68.6-86 0 0 69.7c0 62 50.3 112.3 112.4 112.3 61.6 0 112.4-49.5 112.4-110.8l0-160.3c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7l0 30.9z\"],\n \"google\": [512, 512, [], \"f1a0\", \"M500 261.8C500 403.3 403.1 504 260 504 122.8 504 12 393.2 12 256S122.8 8 260 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9c-88.3-85.2-252.5-21.2-252.5 118.2 0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9l-140.8 0 0-85.3 236.1 0c2.3 12.7 3.9 24.9 3.9 41.4z\"],\n \"discord\": [576, 512, [], \"f392\", \"M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1 .1s-.6 .4-.8 .8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2c-41.3 7.1-81.6 19.6-119.7 37.1-.3 .1-.6 .4-.8 .7-76.2 113.8-97.1 224.9-86.9 334.5 0 .3 .1 .5 .2 .8s.3 .4 .5 .6c44.4 32.9 94 58 146.8 74.2 .4 .1 .8 .1 1.1 0s.7-.4 .9-.7c11.3-15.4 21.4-31.8 30-48.8 .1-.2 .2-.5 .2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6 .2-.9 .3-.5 .6-.7c3.1-2.3 6.2-4.7 9.1-7.1 .3-.2 .6-.4 .9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1 .7-.2 1-.2s.7 .2 .9 .4c2.9 2.4 6 4.9 9.1 7.2 .2 .2 .4 .4 .6 .7s.2 .6 .2 .9-.1 .6-.3 .9-.4 .5-.6 .6c-14.7 8.6-30 15.9-45.9 21.8-.2 .1-.5 .2-.7 .4s-.3 .4-.4 .7-.1 .5-.1 .8 .1 .5 .2 .8c8.8 17 18.8 33.3 30 48.8 .2 .3 .6 .6 .9 .7s.8 .1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2 .2-.2 .4-.4 .5-.6s.2-.5 .2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2zm195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2z\"],\n \"hacker-news\": [448, 512, [], \"f1d4\", \"M0 32l0 448 448 0 0-448-448 0zM21.2 229.2l-.2 0c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4zm218 53.9l0 100.9-31.4 0 0-102.7-79.8-153.3 37.3 0c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6l34.8 0-80.8 155.1z\"],\n \"eleventy\": [640, 512, [\"11ty\"], \"e7d6\", \"M615.3 168.5c2.3 0 4.6 .7 6.6 2.2 1.9 1.4 3.1 3.3 3.8 5 1.4 3.3 1.8 7.3 1.8 11.3 0 2.2-.3 4.9-.7 7.6l0 .4-50.9 264.9 0 0c-4 22.1-8.5 39.4-13.6 51.7-5 12.1-10.9 21.6-18.6 27l0 0c-7.5 5.3-16.9 7.7-27.6 8l-3 0c-16 0-29.3-4.2-36.9-14.8-.1-.1-.1-.1-.2-.2-.1-.2-.3-.4-.5-.6l0 0c-1.8-2.4-2.5-5.2-2.9-7.4-.5-2.8-.7-6.1-.7-9.8 0-7.3 .6-13.5 2.1-18.2 1.4-4.4 4.8-10.4 12.2-10.4l1.3 .1c.2 0 .4 .1 .5 .1 .3 .1 .6 .1 .8 .2 .6 .1 1.3 .3 2.2 .6l7.6 2.2 .1 0 7.6 2.1c.9 .2 1.7 .4 2.2 .5 .4 .1 .6 .1 .7 .1 0 0 .1 0 .2-.1 .1-.1 .4-.2 .8-.6 .9-.9 2.2-2.6 3.6-5.7 2.6-5.8 4.2-14.7 4.2-27.4 0-.7-.3-3.4-1.3-8.9-.9-5.1-2.3-12.2-4.2-21.1l-56-232.9-.1-.4 0-.3c-.4-2.7-.7-5.3-.7-7.3 0-3.7 .4-7.5 1.7-10.6 .7-1.6 1.8-3.4 3.5-4.9 1.9-1.5 4.2-2.3 6.5-2.3l34.6 0c4.6 0 8.7 1.7 11.9 5l1.3 1.5c1.2 1.6 2 3.4 2.7 5.2 .9 2.4 1.5 5.1 2 8.1l30.4 161.2 23.8-160c.8-5.8 2.2-11.4 5.1-15.1 3-3.8 7.2-5.8 12-5.8l24 0zM375.1 34.6c2.6 0 5.1 .7 7.4 2.3 2.2 1.5 3.7 3.6 4.7 5.7 1.9 4 2.5 9.1 2.5 14.5l0 111.2c0 .1 0 .2 0 .3l32.4 0c2.5 0 5 .6 7.2 2.1 2.2 1.4 3.7 3.4 4.8 5.5 2 3.9 2.6 8.8 2.6 13.9l0 15.4c0 5-.6 9.8-2.6 13.7-1.1 2-2.6 4-4.8 5.4-2.2 1.4-4.7 2-7.1 2l-32.5 0 0 145.8c0 10.8 .7 19.5 2 26.2 1.4 6.9 3.1 10.9 4.7 12.9 1.2 1.5 2.2 2.5 3.1 3.2l2.2 1.4 .1 .1 2.9 .8c1.2 .2 2.6 .3 4.3 .3l20.3 0c4.5 0 8.9 1.7 11.8 5.8 2.6 3.6 3.3 8.1 3.3 12.2l0 17.2c0 4.5-.8 9.3-3.4 13.1-3 4.2-7.5 6-12.3 6l0 0-29.1 .1c-8 0-15-.6-21.2-1.7-6.7-1.3-13.4-4.1-20.1-8.1-7.2-4.4-13-10.3-17.5-17.8-4.5-7.5-7.9-17.5-10.5-29.5-2.6-12.2-3.9-26.6-3.9-43l0-144.9-13.4 0c-2.4 0-4.9-.6-7.1-2-2.2-1.4-3.7-3.4-4.8-5.4-2-3.9-2.6-8.7-2.6-13.7l0-15.4c0-5.1 .6-10 2.6-13.9 1.1-2.1 2.6-4 4.8-5.5 2.2-1.5 4.7-2.1 7.2-2.1l13.4 0 0-.6 5.2-111.2 0-.1 .3-3.9c.5-3.8 1.3-7.4 2.7-10.3 2.1-4.2 6-7.9 11.8-7.9l28.6 0zm-268 11.7c1.8 .3 3.6 .9 5.3 2.1 2.1 1.5 3.5 3.5 4.4 5.4 1.7 3.7 2.3 8.4 2.3 13.2l0 377.8c0 6.7-.6 12.6-2.4 17.1-.9 2.3-2.3 4.7-4.4 6.5-2.3 2-5.1 3-8.1 3l-43.7 0c-3 0-5.8-1.1-8.1-3.1-2.1-1.9-3.4-4.3-4.2-6.5-1.7-4.5-2.3-10.3-2.3-17l0-315.8c-4.8 1.2-8.7 2.2-11.5 2.9-1.9 .5-3.4 .8-4.4 1.1-.5 .1-.9 .2-1.2 .3-.1 0-.3 .1-.5 .1-.1 0-.2 0-.3 .1 0 0-.2 0-.3 0 0 0-.2 0-.4 0l0 0c-.1 0-.3 0-.4 0-.1 0-.2 0-.2 0-2.2 .1-4.5-.4-6.6-1.7-2.3-1.4-3.8-3.4-4.7-5.3-1.8-3.7-2.3-8.4-2.3-13l0-27.4c0-4.4 .7-8.8 2.6-12.4 2.1-3.9 5.5-6.6 9.8-7.6l75.5-19.5c1.4-.4 2.9-.5 4.4-.5l1.8 .1zm143.8-.5c1.8 .3 3.6 .9 5.2 2.1 2.1 1.5 3.5 3.5 4.4 5.4 1.7 3.7 2.2 8.4 2.2 13.2l0 377.8c0 6.7-.6 12.6-2.4 17.1-.9 2.3-2.3 4.7-4.4 6.5-2.3 2-5.1 3-8.1 3l-43.7 0c-3 0-5.8-1.1-8.1-3.1-2.1-1.9-3.4-4.3-4.2-6.5-1.7-4.5-2.3-10.3-2.3-17l0-315.8c-4.8 1.2-8.7 2.2-11.5 2.9-1.9 .5-3.4 .8-4.4 1.1-.5 .1-.9 .2-1.2 .3-.1 0-.3 .1-.5 .1-.1 0-.2 0-.3 .1-.1 0-.2 0-.3 0 0 0-.2 0-.4 0l0 0c-.1 0-.2 0-.3 0-.1 0-.2 0-.3 0-2.2 .1-4.5-.4-6.6-1.7-2.3-1.4-3.8-3.4-4.7-5.3-1.8-3.7-2.3-8.3-2.3-13l0-27.4c0-4.4 .7-8.7 2.6-12.4 2.1-3.9 5.5-6.6 9.8-7.6l75.4-19.4c1.4-.4 2.9-.5 4.4-.5l1.8 .1z\"],\n \"teamspeak\": [576, 512, [], \"f4f9\", \"M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5 0 .2-.1 .3-.1 .5-39.3 16.2-66.8 54.8-66.8 99.8 0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5 15.7-41.8 40.4-79.6 72.3-110.7 1.8-1.6 4-2.6 6.3-3.1 37.2-11.5 76.7-13.3 114.8-5.2 119.3 25.1 198.6 138.2 181.7 258.8-8.4 62.6-38.6 112.7-87.7 151.4-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3 40.7 4.2 81.4 2.1 120.1-12.5 94-35.5 149.3-102.3 162.9-202.5 4.8-52.6-5.8-105.4-30.8-152-70.4-131.9-234.2-181.6-366-111.2-2.4 1.4-4.5 3.1-6.3 5.2l.1 0zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3 53.2-1 123.2-29.2 161.8-97.1 39.7-69.9 37.6-139.9-6.3-207.8-36.5-55.3-89.8-82.4-156.6-86.6 1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5 2.1 15.7-1 30.3-13.6 41.8-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7 29.3 54.3c5.2 11.5 4.2 19.8-6.3 28.2-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7-2.5 2.4-3.8 5.9-3.1 9.4 2.1 11.5-2.1 19.8-12.5 25.1-2.1 1-4.2 5.2-5.2 7.3l0-.1zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1 24 5.2 41.8-6.3 44.9-30.3 1-8.4 5.2-14.6 12.5-17.7 7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5-1.4-3-2.4-6.2-3.1-9.4-3.1-14.6-2.1-15.7 11.5-18.8 8.4-3.1 15.7-6.3 21.9-12.5 3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7-6.4-11.7-13-23.6-15.7-37.1-2.1-9.4-1-17.7 8.4-24 5.2-4.2 8.4-9.4 8.4-16.7-.4-10.1-1.5-20.3-3.1-30.3-6.3-37.6-23-68.9-51.2-95-5.2-4.2-9.4-6.3-16.7-4.2l-35.6 12.7 6 3.6c6.3 3.7 12.2 7.3 17 12.1 30.3 26.1 41.8 61.6 45.9 100.2 1 8.4 0 16.7-7.3 21.9-8.4 5.2-10.4 12.5-7.3 20.9 4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6-12.5 3.1-14.6 7.3-10.4 20.9 .6 1.5 1.4 2.8 2.1 4.2 2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4-7.3 4.2-11.5 9.4-11.5 17.7 0 12.5-7.3 19.8-18.8 24-3.8 1-7.6 1.5-11.5 1l-34.5-2.1 .1 .2z\"],\n \"supple\": [640, 512, [], \"f3f9\", \"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7 .4 15.5 .6 23.4 .6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6 .2 23.3 .5-22.5-3.2-46.3-4.9-71-4.9-134.5 .4-243.4 52.6-243.3 116.7 .1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9S118.4 281 137.2 281c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6l0 3.9 14.2 0 0-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6l0 54.4c0 11.3-7.1 17.8-17.8 17.8s-17.8-6.5-17.8-17.7l0-54.5-15.8 0 0 55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9l0-55-15.7 0zm34.4 85.4l15.8 0 0-29.5 15.5 0c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8l-39.1 0 0 13.4 7.8 0 0 72zm15.8-43l0-29.1 12.9 0c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7l-12.6 0zm57 43l15.8 0 0-29.5 15.5 0c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8l-39.1 0 0 13.4 7.8 0 0 72zm15.7-43l0-29.1 12.9 0c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7l-12.6 0zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2l37.6 0c5.8 0 8.2-2.4 8.2-8.2l0-13-14.3 0 0 5.2c0 1.7-1 2.6-2.6 2.6l-18.6 0c-1.7 0-2.6-1-2.6-2.6l0-61.2c0-5.7-2.4-8.2-8.2-8.2l-15.4 0 0 13.4 5.2 0c1.7 0 2.6 1 2.6 2.6l0 61.2-.1 0zm63.4 0c0 5.8 2.4 8.2 8.2 8.2l38.7 0c5.7 0 8.2-2.4 8.2-8.2l0-13-14.3 0 0 5.2c0 1.7-1 2.6-2.6 2.6l-19.7 0c-1.7 0-2.6-1-2.6-2.6l0-20.3 27.7 0 0-13.4-27.7 0 0-22.4 19.2 0c1.7 0 2.6 1 2.6 2.6l0 5.2 14.2 0 0-13c0-5.7-2.5-8.2-8.2-8.2l-51.6 0 0 13.4 7.8 0 0 63.9 .1 0zm58.9-76l0 5.9 1.6 0 0-5.9 2.7 0 0-1.2-7 0 0 1.2 2.7 0zm5.7-1.2l0 7.1 1.5 0 0-5.7 2.3 5.7 1.3 0 2.3-5.7 0 5.7 1.5 0 0-7.1-2.3 0-2.1 5.1-2.1-5.1-2.4 0z\"],\n \"square-twitter\": [448, 512, [\"twitter-square\"], \"f081\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM351.3 199.3c0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3 .6 10.4 .8 15.8 .8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4l0-.8c8.7 4.9 18.9 7.9 29.6 8.3-9-6-16.4-14.1-21.5-23.6s-7.8-20.2-7.7-31c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34 .2 2.8 .2 5.7 .2 8.5z\"],\n \"font-awesome\": [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"],\n \"wirsindhandwerk\": [448, 512, [\"wsh\"], \"e2d0\", \"M18.9 479.8l83.4 0 0-112-83.4 47 0 65zm329 0l82.4 0 0-65-82.4-47 0 112zm0-448l0 219.8-123.6-72.4-121.7 72.4 0-219.8-83.7 0 0 360.8 205.4-122.3 206 122.3 0-360.8-82.3 0z\"],\n \"confluence\": [512, 512, [], \"f78d\", \"M2.8 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1 .1-.2 .1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8 .4 21.7-7.7 .1-.1 .1-.3 .2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3-247.9-120.6-330.8 45.7-373.1 112.6zM510.2 100.1c4.5-7.6 2.1-17.5-5.5-22.2L398.9 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2 .3-.4 .6-.6 1-67.3 112.6-81.1 95.6-280.6 .9-8.1-3.9-17.8-.4-21.7 7.7-.1 .1-.1 .3-.2 .4L22.7 141.3c-3.6 8.1 .1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"],\n \"digg\": [512, 512, [], \"f1a6\", \"M81.7 172.3l-81.7 0 0 174.4 132.7 0 0-250.7-51 0 0 76.3zm0 133.4l-30.8 0 0-92.3 30.8 0 0 92.3zM378.9 172.3l0 174.4 81.8 0 0 28.5-81.8 0 0 40.8 133.1 0 0-243.7-133.1 0zm81.8 133.4l-30.8 0 0-92.3 30.8 0 0 92.3zm-235.6 41l82.1 0 0 28.5-82.1 0 0 40.8 133.3 0 0-243.7-133.3 0 0 174.4zm51.2-133.3l30.8 0 0 92.3-30.8 0 0-92.3zM153.3 96l51.3 0 0 51-51.3 0 0-51zm0 76.3l51.3 0 0 174.4-51.3 0 0-174.4z\"],\n \"threads\": [448, 512, [], \"e618\", \"M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8 29.2 14.1 50.6 35.2 61.8 61.4 15.7 36.5 17.2 95.8-30.3 143.2-36.2 36.2-80.3 52.5-142.6 53l-.3 0c-70.2-.5-124.1-24.1-160.4-70.2-32.3-41-48.9-98.1-49.5-169.6l0-.5C17 184.3 33.6 127.2 65.9 86.2 102.2 40.1 156.2 16.5 226.4 16l.3 0c70.3 .5 124.9 24 162.3 69.9 18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4-29.2-35.8-73-54.2-130.5-54.6-57 .5-100.1 18.8-128.2 54.4-26.2 33.3-39.8 81.5-40.3 143.2 .5 61.7 14.1 109.9 40.3 143.3 28 35.6 71.2 53.9 128.2 54.4 51.4-.4 85.4-12.6 113.7-40.9 32.3-32.2 31.7-71.8 21.4-95.9-6.1-14.2-17.1-26-31.9-34.9-3.7 26.9-11.8 48.3-24.7 64.8-17.1 21.8-41.4 33.6-72.7 35.3-23.6 1.3-46.3-4.4-63.9-16-20.8-13.8-33-34.8-34.3-59.3-2.5-48.3 35.7-83 95.2-86.4 21.1-1.2 40.9-.3 59.2 2.8-2.4-14.8-7.3-26.6-14.6-35.2-10-11.7-25.6-17.7-46.2-17.8l-.7 0c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1l.8 0c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2 .1 0zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3 25.6-1.4 54.6-11.4 59.5-73.2-13.2-2.9-27.8-4.4-43.4-4.4-4.8 0-9.6 .1-14.4 .4-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z\"],\n \"wpressr\": [512, 512, [\"rendact\"], \"f3e4\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM427.3 166.6c-15.2 34.5-30.4 69-45.6 103.5-2.4 5.5-6.9 8.2-13 8.2-23 0-46 .1-69 0-5.1 0-8.2 1.9-10.3 6.7-10.2 23.6-20.6 47-31 70.5-1.5 3.5-4.1 5.3-7.9 5.3-45.9 0-91.9 0-137.8 0-3.1 0-5.6-1.1-7.7-3.4-11.2-12.3-22.5-24.6-33.7-36.9-2.7-3-2.8-6.2-1.2-9.7 8.7-19.5 17.3-39.1 25.9-58.7 12.9-29.4 25.9-58.7 38.7-88.1 1.7-3.9 4.3-5.7 8.5-5.7 14.2 .1 28.5 0 42.7 0 6.2 0 9.2 4.8 6.7 10.6-13.6 30.8-27.2 61.6-40.7 92.3-5.7 13-11.4 26-17.1 39-3.9 9 7.1 12 11 5.6 .2-.4-1.4 4.2 30-67.7 1.4-3.1 3.4-4.4 6.8-4.4 15.2 .1 30.4 0 45.6 0 5.6 0 7.9 3.6 5.7 8.7-8.3 19-16.7 37.9-25 56.9-5 11.4 8.1 12.5 11.3 5.3 0-.1 27.9-63.3 32.2-73.2 2-4.6 5.4-6.5 10.3-6.5 26.4 .1 52.9 0 79.3 0 12.4 0 13.9-13.6 3.9-13.6-25.3 0-50.5 0-75.8 0-6.3 0-7.8-2.5-5.3-8.3 5.8-13.1 11.6-26.1 17.3-39.2 1.7-4 4.5-5.8 8.8-5.8 23.1 .1 26 0 130.8 0 6.1 0 8 2.8 5.6 8.3z\"],\n \"yoast\": [448, 512, [], \"f2b1\", \"M91.3 76l186 0-7 18.9-179 0c-39.7 0-71.9 31.6-71.9 70.3l0 205.4c0 35.4 24.9 70.3 84 70.3l0 19.1-12.1 0C41.2 460 0 419.8 0 370.5L0 165.2C0 115.9 40.7 76 91.3 76zM320.4 20l66.5 0c-143.8 378.1-145.7 398.9-184.7 439.3-20.8 21.6-49.3 31.7-78.3 32.7l0-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1 .6-12.6-82.1-223.2l61.4 0 50.4 156.6 102.2-279zM448 161.5l0 298.5-214 0c6.6-9.6 10.7-16.3 12.1-19.4l182.5 0 0-279.1c0-32.5-17.1-51.9-48.2-62.9L387.1 81c41.7 13.6 60.9 43.1 60.9 80.5z\"],\n \"nimblr\": [384, 512, [], \"f5a8\", \"M246.6 353.3a27 27 0 1 1 0-54 27 27 0 1 1 0 54zm-79.4-27a27.1 27.1 0 1 1 -54.3 0 27.1 27.1 0 1 1 54.3 0zM191.8 159C157 159 89.4 178.8 59.2 227L14 0 14 335.5C14 433.1 93.6 512 191.8 512S369.5 433 369.5 335.5 290.1 159 191.8 159zm0 308.1c-73.3 0-132.5-58.9-132.5-131.6s59.2-131.6 132.5-131.6 132.5 58.9 132.5 131.5-59.3 131.6-132.5 131.6l0 .1z\"],\n \"pixelfed\": [512, 512, [], \"e7db\", \"M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM235.7 311.9l47 0c44.2 0 80.1-34.9 80.1-78s-35.9-78-80.1-78l-67.8 0c-25.5 0-46.2 20.1-46.2 45l0 175.1 67-64.1z\"],\n \"yahoo\": [512, 512, [], \"f19e\", \"M223.8 141.1l-56.7 143.2-56-143.2-96.1 0 105.8 249.1-38.6 89.8 94.2 0 140.9-338.9-93.6 0zM329.2 276.9a58.2 58.2 0 1 0 0 116.4 58.2 58.2 0 1 0 0-116.4zM394.7 32l-93 223.5 104.8 0 92.6-223.5-104.4 0z\"],\n \"bluesky\": [576, 512, [], \"e671\", \"M407.8 294.7c-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3zM288 227.1C261.9 176.4 190.9 81.9 124.9 35.3 61.6-9.4 37.5-1.7 21.6 5.5 3.3 13.8 0 41.9 0 58.4S9.1 194 15 213.9c19.5 65.7 89.1 87.9 153.2 80.7 3.3-.5 6.6-.9 10-1.4-3.3 .5-6.6 1-10 1.4-93.9 14-177.3 48.2-67.9 169.9 120.3 124.6 164.8-26.7 187.7-103.4 22.9 76.7 49.2 222.5 185.6 103.4 102.4-103.4 28.1-156-65.8-169.9-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3 64.1 7.1 133.6-15.1 153.2-80.7 5.9-19.9 15-138.9 15-155.5s-3.3-44.7-21.6-52.9c-15.8-7.1-40-14.9-103.2 29.8-66.1 46.6-137.1 141.1-163.2 191.8z\"],\n \"scribd\": [384, 512, [], \"f28a\", \"M42.6 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9 .6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9 .2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4-60.8 71.8 15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"],\n \"creative-commons-pd\": [512, 512, [], \"f4ec\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L305 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6L87.6 145.6c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"],\n \"earlybirds\": [512, 512, [], \"f39a\", \"M329.3 47.5c1.2-13 21.3-14 36.6-8.7 .9 .3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM335.5 160a16 16 0 1 0 0 32 16 16 0 1 0 0-32zm-159.7 0a16 16 0 1 0 0 32 16 16 0 1 0 0-32zM494.3 323.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2 .3 .9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2 .8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7 .9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2 .8-10.5-25.4 21.5-42.6 66.8-73.4 .7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1 .3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3-15.3-19.4-3.4-39.9-2.4-40.4 1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1 .6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7 .6 11.6 .8 12.7 2.6 .3 .5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM223.5 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"],\n \"square-odnoklassniki\": [448, 512, [\"odnoklassniki-square\"], \"f264\", \"M224 137.1c-5.4-.3-10.8 .6-15.9 2.4s-9.7 4.8-13.6 8.5-7 8.2-9.2 13.2-3.2 10.3-3.2 15.7 1.1 10.8 3.2 15.7 5.3 9.5 9.2 13.2 8.6 6.6 13.6 8.5 10.5 2.7 15.9 2.4c5.4 .3 10.8-.6 15.9-2.4s9.7-4.8 13.6-8.5 7-8.2 9.2-13.2 3.2-10.3 3.2-15.7-1.1-10.8-3.2-15.7-5.3-9.5-9.2-13.2-8.6-6.6-13.6-8.5-10.5-2.7-15.9-2.4zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM224 258a81 81 0 1 1 0-162.1 81 81 0 1 1 0 162.1zm59.3 6.2c16.8-13.2 29.5-5.5 34.1 3.6 7.8 16-1.1 23.7-21.5 37-17.1 10.9-40.7 15.2-56.2 16.8l13 12.9 47.7 47.7c17.4 17.9-11 45.8-28.6 28.6-12-12.2-29.5-29.7-47.7-47.9l-47.7 47.9c-17.7 17.2-46-11-28.4-28.6 3.7-3.7 7.9-7.9 12.5-12.5 10.4-10.4 22.6-22.7 35.2-35.2l12.9-12.9c-15.4-1.6-39.3-5.7-56.6-16.8-20.3-13.3-29.3-20.9-21.4-37 4.6-9.1 17.3-16.8 34.1-3.6 0 0 22.7 18 59.3 18s59.3-18 59.3-18z\"],\n \"markdown\": [640, 512, [], \"f60f\", \"M593.8 59.1l-547.6 0C20.7 59.1 0 79.8 0 105.2L0 406.7c0 25.5 20.7 46.2 46.2 46.2l547.7 0c25.5 0 46.2-20.7 46.1-46.1l0-301.6c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6l-61.5 0 0-120-61.5 76.9-61.5-76.9 0 120-61.7 0 0-209.2 61.5 0 61.5 76.9 61.5-76.9 61.5 0 0 209.2 .2 0zm135.3 3.1l-92.3-107.7 61.5 0 0-104.6 61.5 0 0 104.6 61.5 0-92.2 107.7z\"],\n \"typo3\": [448, 512, [], \"f42b\", \"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1 0 103.5 106.8 337.5 184.1 337.5 36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"],\n \"joomla\": [448, 512, [], \"f1aa\", \"M.6 92.1c0-33.3 26.8-60.1 59.8-60.1 30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1 .6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9-26.9-5.8-46.7-29.7-46.7-58.3zM130.1 208.5l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zM396.4 360.7c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2 0 33.3 26.8 60.1 59.8 60.1 28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"],\n \"weixin\": [576, 512, [], \"f1d7\", \"M385.2 167.6c6.4 0 12.6 .3 18.8 1.1-16.6-78.4-100.7-136.7-196.3-136.7-107.2 0-194.7 72.8-194.7 165.4 0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zM280.7 114.7c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2 .1-14.7 14.6-24.4 29.3-24.4zM144.3 163.3c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zM343.9 294.9c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3 .1 10-9.9 19.6-24.4 19.6z\"],\n \"grunt\": [384, 512, [], \"f3ad\", \"M61.6 189.3c-1.1 10 5.2 19.1 5.2 19.1 .7-7.5 2.2-12.8 4-16.6 .4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1l-.1 0c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zM232 233.3c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8l-.1 0c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zm-134.4 231l-29.4 0c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8 .6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zM349.5 317.3c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6 .6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1 .4-4.7 .8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2-29.5 10.4-36.9 26.3-39.1 40.7-7.6-5.4-6.7-23.1-7.2-27.6-7.5 .9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5l-8.1 9.4 12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3 .2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7 .3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7 .5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6 14.4 11.8 34.4 19.5 63.6 19.5l.2 0c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM306 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2 .8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.9 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6 .7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4 .1-6.6 .5-9 .9zM90.6 85.4c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7-3.3-4.4-3.8-10.5-4.3-16.9-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4 .3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.4 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6 .9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7 .2 .2 .4 .3 .4 .3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1 .4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5 .6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9 .7 .6 1.5 1.2 2.2 1.8l.5 .4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6 .9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7l-117 0c-4.4 0-8.3 .3-11.7 .7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM35.1 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zm111.5 50.1c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2 .9-23.1 2.9-3.3 9.5-7.2 24.6-7.2l118.8 0c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6 .9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM192.2 187.7l.2 0c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7l-29.4 0c-4.2 0-7.2 .9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"],\n \"rockrms\": [512, 512, [], \"f3e9\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM413.4 427.5l-90 0-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1l75.3 0-84.6-99.3-84.3 98.9-90 0 147.1-172.5c14.4-18.4 41.3-17.3 54.5 0L413.7 252.3c19 22.8 2 57.2-27.6 56.1-.6 0-74.2 .2-74.2 .2L413.4 427.5z\"],\n \"unsplash\": [448, 512, [], \"e07c\", \"M448 230.2l0 249.8-448 0 0-249.8 141.1 0 0 124.9 165.7 0 0-124.9 141.1 0zM306.9 32l-165.7 0 0 124.9 165.7 0 0-124.9z\"],\n \"square-instagram\": [448, 512, [\"instagram-square\"], \"e055\", \"M194.4 211.7a53.3 53.3 0 1 0 59.2 88.6 53.3 53.3 0 1 0 -59.2-88.6zm142.3-68.4c-5.2-5.2-11.5-9.3-18.4-12-18.1-7.1-57.6-6.8-83.1-6.5-4.1 0-7.9 .1-11.2 .1s-7.2 0-11.4-.1c-25.5-.3-64.8-.7-82.9 6.5-6.9 2.7-13.1 6.8-18.4 12s-9.3 11.5-12 18.4c-7.1 18.1-6.7 57.7-6.5 83.2 0 4.1 .1 7.9 .1 11.1s0 7-.1 11.1c-.2 25.5-.6 65.1 6.5 83.2 2.7 6.9 6.8 13.1 12 18.4s11.5 9.3 18.4 12c18.1 7.1 57.6 6.8 83.1 6.5 4.1 0 7.9-.1 11.2-.1s7.2 0 11.4 .1c25.5 .3 64.8 .7 82.9-6.5 6.9-2.7 13.1-6.8 18.4-12s9.3-11.5 12-18.4c7.2-18 6.8-57.4 6.5-83 0-4.2-.1-8.1-.1-11.4s0-7.1 .1-11.4c.3-25.5 .7-64.9-6.5-83-2.7-6.9-6.8-13.1-12-18.4l0 .2zm-67.1 44.5c18.1 12.1 30.6 30.9 34.9 52.2s-.2 43.5-12.3 61.6c-6 9-13.7 16.6-22.6 22.6s-19 10.1-29.6 12.2c-21.3 4.2-43.5-.2-61.6-12.3s-30.6-30.9-34.9-52.2 .2-43.5 12.2-61.6 30.9-30.6 52.2-34.9 43.5 .2 61.6 12.2l.1 0zm29.2-1.3c-3.1-2.1-5.6-5.1-7.1-8.6s-1.8-7.3-1.1-11.1 2.6-7.1 5.2-9.8 6.1-4.5 9.8-5.2 7.6-.4 11.1 1.1 6.5 3.9 8.6 7 3.2 6.8 3.2 10.6c0 2.5-.5 5-1.4 7.3s-2.4 4.4-4.1 6.2-3.9 3.2-6.2 4.2-4.8 1.5-7.3 1.5c-3.8 0-7.5-1.1-10.6-3.2l-.1 0zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM357 389c-18.7 18.7-41.4 24.6-67 25.9-26.4 1.5-105.6 1.5-132 0-25.6-1.3-48.3-7.2-67-25.9s-24.6-41.4-25.8-67c-1.5-26.4-1.5-105.6 0-132 1.3-25.6 7.1-48.3 25.8-67s41.5-24.6 67-25.8c26.4-1.5 105.6-1.5 132 0 25.6 1.3 48.3 7.1 67 25.8s24.6 41.4 25.8 67c1.5 26.3 1.5 105.4 0 131.9-1.3 25.6-7.1 48.3-25.8 67l0 .1z\"],\n \"first-order-alt\": [512, 512, [], \"f50a\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 7.8a240.2 240.2 0 1 1 0 480.4 240.2 240.2 0 1 1 0-480.4zm0 20.5a219.7 219.7 0 1 0 0 439.4 219.7 219.7 0 1 0 0-439.4zm0 8.2a211.5 211.5 0 1 1 0 423 211.5 211.5 0 1 1 0-423zm186.2 260c-4.4 17.1-11.2 33.5-20.1 48.7l-74.1-35.9 61.5 54.8c-10.6 14.1-23.2 26.6-37.2 37.3l-54.8-61.6 35.9 74.3c-15.2 9-31.6 15.8-48.6 20.2l-27.3-78.5 4.8 82.9c-8.6 1.2-17.4 1.8-26.3 1.8s-17.7-.6-26.3-1.8l4.8-82.5-27.2 78c-17.1-4.5-33.4-11.3-48.7-20.2l35.9-74.3-54.9 61.6c-14-10.7-26.6-23.2-37.2-37.3l61.6-54.9-74.3 35.9C80.7 338 74 321.7 69.5 304.6l77.8-27.1-82.2 4.8c-1.2-8.6-1.8-17.3-1.8-26.2 0-9 .6-17.8 1.8-26.5l82.4 4.8-77.9-27.2c4.5-17.1 11.3-33.5 20.2-48.7l74.2 35.9-61.5-54.9c10.7-14 23.2-26.6 37.3-37.2l54.8 61.5-35.8-74.2c15.2-8.9 31.6-15.7 48.6-20.1l26.9 77.2-4.7-81.6c8.6-1.2 17.4-1.8 26.3-1.8s17.7 .6 26.3 1.8l-4.7 82.2 27-77.8c17.3 4.5 33.6 11.4 48.6 20.2l-35.8 74.1 54.7-61.5c14.1 10.7 26.6 23.2 37.2 37.2l-61.4 54.8 74.1-35.9c8.9 15.2 15.7 31.6 20.2 48.6l-77.8 27.1 82.2-4.7c1.2 8.7 1.8 17.5 1.8 26.5 0 8.9-.6 17.6-1.8 26.2l-82.1-4.7 77.7 27.1z\"],\n \"fulcrum\": [256, 512, [], \"f50b\", \"M63.8 164.1L28.4 207.7-7 164.1 28.4 120.6 63.8 164.1zM112.2 0l-20.5 198.2-51 57.8 51 57.8 20.5 198.2 0-211.1-41.1-44.9 41.1-44.9 0-211.1zm79.7 164.1l35.4 43.6 35.4-43.6-35.4-43.5-35.4 43.5zm-48.5 47l41.1 44.9-41.1 44.9 0 211.1 20.6-198.2 51-57.8-51-57.8-20.6-198.2 0 211.1z\"],\n \"brave-reverse\": [448, 512, [], \"e63d\", \"M298.5 0c3 0 5.8 1.3 7.8 3.6l38.1 44c.5-.1 1-.2 1.5-.3 9.2-1.6 18.6-2.2 27.7-1.2 11.6 1.4 21.5 5.4 28.9 12.9 7.7 7.8 15.4 15.8 22.6 23.6 2.5 2.7 4.9 5.2 6.9 7.4 .7 .8 1.4 1.5 1.9 2 3.4 3.7 4.2 8.1 2.7 11.9l-9.8 24.6 13.1 38.1c.7 2 .8 4.1 .2 6.2-.1 .4-.1 .4-.5 2.1l-1.5 5.8c-1.6 6.3-3.5 13.3-5.4 20.9-5.6 21.6-11.2 43.2-16.4 63.4-12.9 49.9-21.4 82.7-23.4 90.9-11.1 44.5-19.9 60-48.3 80.3-24.9 17.8-76.8 53.6-86.8 60-1 .6-2 1.3-3.4 2.3-.5 .4-3.2 2.2-3.9 2.7-4.9 3.3-8.3 5.5-12.1 7.3-4.7 2.2-9.3 3.5-13.9 3.5s-9.1-1.2-13.9-3.5c-3.7-1.8-7.2-3.9-12.1-7.3-.8-.5-3.4-2.4-3.9-2.7-1.4-1-2.5-1.7-3.4-2.3-10-6.4-61.9-42.1-86.8-60-28.4-20.4-37.2-35.8-48.3-80.3-2-8.2-10.5-41-23.3-90.5-5.3-20.6-10.9-42.2-16.5-63.8-2-7.6-3.8-14.6-5.4-20.9l-1.5-5.8-.5-2.1c-.5-2-.4-4.2 .2-6.2l13.1-38.1-9.9-24.5c-1.5-3.8-.7-8.2 2-11.2 1.2-1.3 1.8-2 2.6-2.8 2-2.2 4.4-4.7 6.9-7.4 7.3-7.7 15-15.7 22.7-23.5 7.4-7.5 17.3-11.6 28.9-12.9 9.1-1.1 18.5-.5 27.7 1.2 .5 .1 1 .2 1.5 .3l38.1-44c2-2.4 4.8-3.7 7.8-3.7l148 0zm-4.7 21.1l-138.6 0-39.1 45.1c-2.6 3-6.7 4.3-10.6 3.2-.2-.1-.7-.2-1.5-.4-1.3-.3-2.9-.6-4.5-.9-7.4-1.3-14.9-1.8-21.7-1-7.3 .9-13 3.2-16.6 6.9-7.6 7.7-15.2 15.6-22.3 23.3-1.7 1.8-3.3 3.5-4.8 5.1l8.8 22c1 2.4 1 5 .2 7.5L29.7 170.6c.4 1.4 .5 1.9 1.2 4.8 1.6 6.3 3.5 13.3 5.4 20.9 5.6 21.6 11.2 43.2 16.4 63.4 12.9 50 21.4 82.8 23.4 91 10.1 40.1 16.4 51.3 40.2 68.3 24.6 17.6 76.3 53.2 85.9 59.3 1.2 .8 2.5 1.6 4 2.7 .6 .4 3.2 2.2 3.9 2.7 4 2.8 6.7 4.4 9.2 5.6 2.2 1 3.9 1.5 5.1 1.5s2.9-.5 5.1-1.5c2.5-1.2 5.2-2.8 9.2-5.6 .7-.5 3.3-2.3 3.9-2.7 1.6-1.1 2.8-1.9 4-2.7 9.6-6.1 61.3-41.7 85.9-59.3 23.8-17.1 30.2-28.2 40.1-68.3 2.1-8.3 10.5-41.1 23.3-90.7 5.3-20.6 10.9-42.2 16.5-63.8 2-7.6 3.8-14.6 5.4-20.9 .7-2.9 .9-3.4 1.2-4.8l-13.3-38.8c-.8-2.4-.8-5.1 .2-7.5l8.8-22c-1.5-1.6-3.1-3.3-4.8-5.1-7.2-7.6-14.7-15.5-22.3-23.3-3.7-3.7-9.3-6-16.6-6.9-6.8-.8-14.4-.3-21.7 1-1.7 .3-3.2 .6-4.5 .9-.8 .2-1.3 .3-1.5 .4-3.8 1.1-7.9-.2-10.6-3.2L293.8 21.1zM224.5 316c2.8 0 20.9 6.5 35.4 14.1s25 13 28.3 15.2 1.3 6.2-1.7 8.4-44.1 34.6-48.1 38.2-9.8 9.5-13.8 9.5-9.8-5.9-13.8-9.5-45.1-36-48.1-38.2-5.1-6.2-1.7-8.4 13.9-7.5 28.3-15.2 32.5-14.1 35.4-14.1l-.2 0zm.1-230.7c.7 0 8.8 .2 20.5 4.2 12.3 4.2 25.7 9.4 31.9 9.4s51.9-8.9 51.9-8.9 54.2 66.7 54.2 81-6.8 18-13.7 25.4-36.8 39.8-40.7 43.9-11.9 10.5-7.1 21.8 11.7 25.8 3.9 40.4-21 24.4-29.4 22.8-28.4-12.2-35.7-17.1-30.5-24.3-30.5-31.8 24-20.8 28.4-23.9 24.7-14.8 25.1-19.4 .3-6-5.7-17.4-16.7-26.7-14.9-36.8 19.1-15.4 31.5-20.2 36.2-13.7 39.2-15.1 2.2-2.7-6.8-3.6-34.6-4.3-46.1-1.1-31.2 8.2-32.8 10.9-3 2.7-1.4 11.8 10.1 52.8 10.9 60.6 2.4 12.9-5.8 14.8-22.1 5.2-26.8 5.2-18.6-3.3-26.8-5.2-6.6-7-5.8-14.8 9.3-51.5 10.9-60.6 .2-9.2-1.4-11.8-21.3-7.6-32.8-10.9-37.1 .2-46.1 1.1-9.8 2.2-6.8 3.6 26.8 10.4 39.2 15.1 29.7 10 31.5 20.2-9 25.4-14.9 36.8-6.1 12.8-5.7 17.4 20.6 16.4 25.1 19.4 28.4 16.4 28.4 23.9-23.2 27-30.5 31.8-27.2 15.4-35.7 17.1-21.7-8.2-29.4-22.8-.8-29.1 3.9-40.4-3.3-17.7-7.1-21.8-33.8-36.5-40.7-43.9-13.7-11.2-13.7-25.4 54.2-81 54.2-81 45.8 8.9 51.9 8.9 19.5-5.2 31.9-9.4 20.6-4.2 20.6-4.2l-.3 0z\"],\n \"avianex\": [512, 512, [], \"f374\", \"M453.2 32l-312 0C102.3 32 65 63.2 57.9 101.7L1.3 410.3C-5.8 448.8 20 480 59 480l312 0c38.9 0 76.2-31.2 83.3-69.7L511 101.8C518 63.2 492.2 32 453.2 32zM395 379.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9l-20.5-29.6-68.8-99.8 18.8-28.9 8.9-4.8 103.1 112.4 4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"],\n \"ns8\": [640, 512, [], \"f3d5\", \"M104.3 269.2l26.1 0 0-26.2-26.1 0 0 26.2zM156.8 243l-.1-26.2 0-.9c-.2-10.4-4.4-20.3-11.9-27.6s-17.5-11.3-27.9-11.1-20.3 4.4-27.6 11.8-11.3 17.5-11.2 27.9l0 .2 26.4 0 0-.2c.1-3.4 1.5-6.6 3.9-9s5.7-3.7 9.1-3.7 6.7 1.3 9.1 3.7 3.8 5.6 3.9 9l0 26.2 26.3 0zm52.4 25.8c0 12-2.4 23.8-6.9 34.9s-11.3 21.1-19.7 29.6-18.5 15.2-29.6 19.7-22.9 6.9-34.9 6.9l-.6 0c-24.2 0-47.3-9.6-64.4-26.7S26.3 293 26.3 268.8l-26.3 0 0 .2c0 15.4 3.1 30.7 9 44.9s14.6 27.2 25.5 38.1 23.9 19.5 38.1 25.4 29.5 8.9 44.9 8.9l.8 0c15.4 0 30.7-3 44.9-9s27.2-14.6 38.1-25.5 19.5-23.8 25.4-38.1 8.9-29.5 8.9-44.9l0-26-26.3 0 0 26zm-157.2 0c.1 17.3 7 33.9 19.2 46.1s28.8 19.1 46.1 19.1 33.9-6.9 46.1-19.1 19.2-28.8 19.2-46.1l-26.3 0c-.2 10.2-4.4 20-11.7 27.2s-17.1 11.2-27.4 11.2-20.1-4-27.4-11.2-11.5-16.9-11.7-27.2l0-26-26.3 0 0-26.6c.3-17.3 7.4-33.8 19.7-45.8s29-18.8 46.3-18.6 33.8 7.2 45.9 19.5 18.9 28.9 18.9 46.2l0 25.3 26.3 0 0-25.3c0-24.3-9.7-47.7-26.9-64.9s-40.5-26.9-64.9-26.9-47.7 9.7-64.9 26.9-26.9 40.5-26.9 64.9l0 25.4 26.3 0 0 26zm418.4-71.2c13.7 0 24.6 6.6 30.1 18.3l.7 1.5 23.2-11.5-.6-1.4c-8-19.3-28.5-31.3-53.4-31.3-23.1 0-43.6 11.4-51 28.4-.1 26.9-.2 23.9 0 24.8 4.7 11 14.6 19.4 28.7 24.2 6.5 2 13.1 3.3 19.8 4 5.5 .7 10.6 1.4 15.8 3.1 6.4 2.1 10.5 5.3 12.8 9.8l0 9.9c-3.7 7.5-13.8 12.3-25.8 12.3-14.3 0-26-6.9-31.9-19l-.7-1.5-23 11.5 .6 1.4c7.9 19.4 29.6 32 55.3 32 23.6 0 44.6-11.4 52.3-28.4l.2-25.9-.2-.7c-4.9-11-15.2-19.6-28.9-24.2-7.7-2.7-14.3-3.6-20.7-4.4-5-.5-10-1.5-14.8-2.9-6.3-1.9-10.4-5.1-12.6-9.6l0-8.4c3.4-7.4 12.9-12.1 24.2-12.1l0 0zM287.6 311.3l26.1 0 0-68.4-26.1 0 0 68.4zM639.8 258c-2.9-6.3-8.3-12-15.4-16.7 5.6-3.8 10.1-9.1 13-15.3l.2-25.3-.2-.7c-7.4-16-26.7-26.7-48.2-26.7S548.5 184 541.1 200l-.2 25.3 .2 .7c2.9 6.1 7.4 11.4 13 15.3-7.2 4.7-12.5 10.5-15.4 16.7l-.2 28.9 .2 .7c7.6 16 27.9 26.7 50.6 26.7s43.1-10.7 50.6-26.7l.2-28.9-.2-.7zm-73.2-50.8c3.6-6.3 12.6-10.5 22.6-10.5s19 4.2 22.6 10.5l0 13.7c-3.5 6.2-12.6 10.3-22.6 10.3s-19.1-4.2-22.6-10.3l0-13.7zm47.3 72.2c-3.8 6.6-13.3 10.9-24.7 10.9-11.1 0-21-4.4-24.7-10.9l0-16.2c3.7-6.3 13.5-10.5 24.7-10.5 11.3 0 20.9 4.1 24.7 10.5l0 16.2zM376.4 266l-59.8-89.7-29 0 0 40.6 26.5 0 0 .4 62.5 94.1 25.7 0 0-135.1-25.9 0 0 89.7z\"],\n \"square-pinterest\": [448, 512, [\"pinterest-square\"], \"f0d3\", \"M384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l72.6 0-2.2-.8c-5.4-48.1-3.1-57.5 15.7-134.7 3.9-16 8.5-35 13.9-57.9 0 0-7.3-14.8-7.3-36.5 0-70.7 75.5-78 75.5-25 0 13.5-5.4 31.1-11.2 49.8-3.3 10.6-6.6 21.5-9.1 32-5.7 24.5 12.3 44.4 36.4 44.4 43.7 0 77.2-46 77.2-112.4 0-58.8-42.3-99.9-102.6-99.9-69.9 0-110.9 52.4-110.9 106.6 0 21.1 8.2 43.7 18.3 56 2 2.4 2.3 4.5 1.7 7-1.1 4.7-3.1 12.9-4.7 19.2-1 4-1.8 7.3-2.1 8.6-1.1 4.5-3.5 5.5-8.2 3.3-30.6-14.3-49.8-59.1-49.8-95.1 0-77.5 56.2-148.6 162.2-148.6 85.2 0 151.4 60.7 151.4 141.8 0 84.6-53.3 152.7-127.4 152.7-24.9 0-48.3-12.9-56.3-28.2 0 0-12.3 46.9-15.3 58.4-5 19.3-17.6 42.9-27.4 59.3L384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64z\"],\n \"bluetooth-b\": [256, 512, [], \"f294\", \"M164.9 260L257.5 156.7 111.6 0 111.6 206.3 25.4 120.2-6 151.6 102.1 260-6 368.4 25.4 399.8 111.6 313.7 114.3 512 262.8 363.4 164.9 260zm40.9-103l-50 50-.3-100.3 50.3 50.3zm-50 156l50 50-50.3 50.3 .3-100.3z\"],\n \"gripfire\": [320, 512, [], \"f3ac\", \"M80.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4 .4 3.3 .6 6.7 .6 10 0 92.1-147.1 153.9-147.1 268.6 0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"],\n \"square-google-plus\": [448, 512, [\"google-plus-square\"], \"f0d4\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM64 256c0-55.3 44.7-100 100-100 27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1l-56.9 0 0-34.4 94.4 0c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6-55.3 0-100-44.7-100-100zm291 18.2l0 29-29.2 0 0-29-29 0 0-29.2 29 0 0-29 29.2 0 0 29 29 0 0 29.2-29 0z\"],\n \"app-store\": [512, 512, [], \"f36f\", \"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5s13.1 18.1 7.5 27.9l-87.5 151.5 63.3 0c20.5 0 32 24.1 23.1 40.8l-185.5 0c-11.3 0-20.4-9.1-20.4-20.4s9.1-20.4 20.4-20.4l52 0 66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5s-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7l53.1 0c11.3 0 20.4 9.1 20.4 20.4S410.5 318 399.2 318l-29.5 0 19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM40 256a216 216 0 1 1 432 0 216 216 0 1 1 -432 0z\"],\n \"wix\": [640, 512, [], \"f5cf\", \"M393.4 131.7c0 13 2.1 32.7-28.7 43.8-9.5 3.4-16 9.7-16 9.7 0-31 4.7-42.2 17.4-48.9 9.8-5.1 27.2-4.6 27.2-4.6zM277.6 167.2l-34.2 132.7-28.5-108.6c-7.7-32-20.8-48.5-48.4-48.5-27.4 0-40.7 16.2-48.4 48.5L89.5 299.9 55.3 167.2C49.7 140.5 23.9 129 0 132L65.6 379.9s21.6 1.6 32.5-4c14.2-7.2 21-12.8 29.6-46.6 7.7-30.1 29.1-118.4 31.1-124.7 4.8-14.9 11.1-13.8 15.4 0 2 6.3 23.5 94.6 31.1 124.7 8.6 33.7 15.4 39.3 29.6 46.6 10.8 5.5 32.5 4 32.5 4L332.9 132c-24.4-3.1-49.8 8.9-55.3 35.3zm115.8 5.2s-4.1 6.3-13.5 11.6c-6 3.4-11.8 5.6-18 8.6-15.1 7.3-13.2 13.9-13.2 35.2l0 152.1s16.6 2.1 27.4-3.4c13.9-7.1 17.1-14 17.3-44.8l0-150.3 0 0 0-9zm163.4 84.1L640 132.8s-35.1-6-52.5 9.8c-13.3 12.1-24.4 29.6-54.2 72.5-.5 .7-6.3 10.5-13.1 0-29.3-42.2-40.8-60.3-54.2-72.5-17.4-15.8-52.5-9.8-52.5-9.8l83.2 123.7-83 123.4s36.6 4.6 54-11.2c11.5-10.5 17.6-20.4 52.5-70.7 6.8-10.5 12.6-.8 13.1 0 29.4 42.4 39.2 58.1 53.1 70.7 17.4 15.8 53.3 11.2 53.3 11.2l-83-123.4z\"],\n \"intercom\": [448, 512, [], \"f7af\", \"M392 32L56 32C25.1 32 0 57.1 0 88L0 424c0 30.9 25.1 56 56 56l336 0c30.9 0 56-25.1 56-56l0-336c0-30.9-25.1-56-56-56zM283.7 114.1c0-19.8 29.9-19.8 29.9 0l0 199.5c0 19.8-29.9 19.8-29.9 0l0-199.5zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0l0 216.5c0 19.8-29.9 19.8-29.9 0l0-216.5zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0l0 199.5c0 19.8-29.9 19.8-29.9 0l0-199.5zM59.7 144c0-19.8 29.9-19.8 29.9 0l0 134.3c0 19.8-29.9 19.8-29.9 0l0-134.3zM383.1 371.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0l0-134.3c0-19.8 29.9-19.8 29.9 0l0 134.3z\"],\n \"reacteurope\": [576, 512, [], \"f75d\", \"M250.7 211.7l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2 .1 5.7 4.3-2 6.8zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2 .1 5.7 4.3-1.9 6.8zm-91.3 50.5l-3.4 0c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1l0-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5l3.4 0c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1l-.2 0c-10.1 0-16.8 4.2-16.8 14.1l0 40.1c0 10.4 6.7 14.1 16.8 14.1l.2 0c10.1 0 16.8-3.8 16.8-14.1 0-9.9 1.1-13.8-3.8-13.8zm-80.7 17.4l-14.7 0 0-19.3 11.4 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-11.4 0 0-18.3 14.4 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-21.7 0c-2.4-.1-3.7 1.3-3.7 3.8l0 59.1c0 2.5 1.3 3.8 3.8 3.8l21.9 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4l0-11.9c0-10.1-6.7-14.1-16.8-14.1l-13.4 0c-2.5 0-3.8 1.3-3.8 3.8l0 59.1c0 2.5 1.3 3.8 3.8 3.8l3.4 0c2.5 0 3.8-1.3 3.8-3.8l0-22.9 5.6 0 7.4 23.5c.2 1 .8 1.8 1.6 2.4s1.8 .9 2.7 .8l3.3 0c2.8 0 4-1.8 3.2-4.4l-8.1-23.9zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1l-5.8 0 0-20.9 5.8 0c3.6 0 6.1 1.3 6.1 6.1l0 8.7zM176.1 226c-.1-.5-.2-1-.4-1.4s-.6-.8-1-1.1-.8-.6-1.3-.7-1-.2-1.5-.1l-6.9 0c-.5 0-1 0-1.4 .2s-.9 .4-1.3 .7-.7 .7-.9 1.1-.4 .9-.4 1.4l-11 59.2c-.5 2.7 .9 4.1 3.4 4.1l3 0c.5 .1 1 0 1.5-.2s.9-.4 1.3-.7 .7-.7 .9-1.2 .4-.9 .4-1.4l1.8-11.3 12.2 0 1.8 11.3c0 .5 .2 1 .4 1.4s.5 .9 .9 1.2 .8 .6 1.3 .7 1 .2 1.5 .2l3.5 0c2.6 0 3.9-1.4 3.4-4.1L176.1 226zm-12.3 39.3l4.7-29.7 4.7 29.7-9.4 0zm89.3 20.2l0-53.2 7.5 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-25.8 0c-2.5 0-3.8 1.3-3.8 3.8l0 2.1c0 2.5 1.3 3.8 3.8 3.8l7.3 0 0 53.2c0 2.5 1.3 3.8 3.8 3.8l3.4 0c2.5 0 3.8-1.3 3.8-3.8l0 0zm248-.8l-19.4 0 0-26.7 16.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-16.1 0 0-25.8 19.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-22.2 0c-.3-.1-.5-.1-.8 0s-.5 .2-.7 .4-.3 .4-.4 .7-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l22.5 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l0 0zM408 221.8l-.8 0c-10.1 0-15.3 4.7-15.3 14.1l0 40.1c0 9.3 5.2 14.1 15.3 14.1l.8 0c10.1 0 15.3-4.8 15.3-14.1l0-40.1c0-9.4-5.2-14.1-15.3-14.1l0 0zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1l0-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1l0 36.6zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3l0-9.7c0-9.4-5.2-14.1-15.3-14.1l-13.7 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l1.2 0c.3 0 .5 0 .8-.1s.5-.2 .6-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-26.9 11.6 0 10.4 27.2c.2 .5 .5 .9 .9 1.1s.9 .4 1.4 .4l1.5 0c1.4 0 2-1 1.5-2.3l-10.6-27.3zm-6.4-3.9l-10.2 0 0-28.5 10.2 0c7.5 0 10.5 3.1 10.5 11.1l0 6.4c0 7.8-3 11-10.5 11l0 0zm85.9-33.1l-13.7 0c-.3-.1-.5-.1-.8 0s-.5 .2-.7 .4-.3 .4-.4 .7-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l1.2 0c.3 0 .5 0 .8-.1s.5-.2 .6-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-26.1 10.6 0c10.1 0 15.3-4.8 15.3-14.1l0-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1l-10.2 0 0-29.2 10.2 0c7.5-.1 10.5 3.1 10.5 11l0 7.1zM259.6 308l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zM487.2 171.9c-11.7-4.4-23.5-8.1-35.6-11.3 19.6-78 11.6-134.7-22.3-153.9-34.5-19.4-85.9 4.3-138.2 55.2 3.4 3.3 6.8 6.7 10.2 10.2 82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8-27.8-6.4-56.1-10.7-84.6-13-71.9-100.5-140.6-142.1-182.2-142.1-30.8 0-43.8 21-47.6 27.7-18.1 32-13.3 84.2 .1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2-3.4-3.3-6.8-6.7-10.2-10.2-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3l0 0zM136 36.8c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2-31.3-1.8-62.7-1.5-93.9 .9 13-18.3 27.1-35.8 42.2-52.4-3.4-3.5-6.8-6.9-10.2-10.2-18.3 20.2-35.3 41.7-50.7 64.2-28.5 2.7-56.7 7.6-84.4 14.6-.2-1.4-24.3-82.2-1.2-123l0 0zM440.8 475.1c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2 31.3 1.8 62.7 1.5 93.9-.9-13 18.3-27.1 35.8-42.2 52.4 3.4 3.5 6.8 6.9 10.2 10.2 18.4-20.2 35.3-41.7 50.7-64.2 47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4-2.1 0-4.2-.5-6.1-1.5s-3.5-2.4-4.6-4.2l-.1 .1c-1.6 1.5-3.4 2.7-5.4 3.6 5.7 14.3 10.6 28.4 14.7 42.2-23.7 6-47.7 10.3-72 13 3.5-5.3 17.2-26.2 32.2-54.2-2.1-.8-4.2-1.9-6-3.2-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2-37.4 3.3-75 3.6-112.4 1-7.9-11.2-21.5-31.1-36.8-57.8-1-.4-2-.9-3-1.5-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6-24.3-2.3-48.4-6.2-72.2-11.7 3.9-14 8.6-28.3 14.1-42.9-3.2 0-5.4 .2-8.4-1-2.2 .8-4.6 1.1-6.9 1-4.9 13.4-9.1 26.5-12.7 39.4-159.9-42.6-140.3-123.6-1.5-164 3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3 .7-.8 1.4-1.6 2.3-2.2-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3 3.1 1.8 5.3 4.6 6.4 8 2.5-3.7 6.1-6.6 10.2-8.4 6.5-11.7 17.9-31.9 34.8-56.9 37.4-3.3 75-3.6 112.4-1 31.5 44.6 28.9 48.1 42.5 64.5 2.6-3.5 6.3-6 10.4-7.4-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2 2.5 1 4.8 2.4 6.8 4.3l.1 .1c1-1.5 2.3-2.8 3.8-3.8s3.3-1.6 5.1-1.8c4.9-13.4 9.2-26.6 12.8-39.5 11.7 3.1 23.2 6.8 34.5 11 106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114l-1.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.6 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1l0-49.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-1.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 51.5c0 9.6 5 14.1 15.1 14.1l.4 0c10.1 0 15.1-4.6 15.1-14.1l0-51.5c0-.3-.1-.5-.2-.8s-.3-.5-.5-.6-.4-.3-.7-.4-.5-.1-.8-.1zM321.8 308l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zm5.1-30.8l-19.4 0 0-26.7 16.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-16.1 0 0-25.8 19.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-22.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l22.5 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.6-.1-.8s-.2-.5-.4-.7-.4-.4-.7-.4-.5-.1-.8-.1l0 0zm-7.4-99.4l-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8z\"],\n \"waze\": [512, 512, [], \"f83f\", \"M502.6 201.7c14.5 85.9-30.9 167.9-113.2 208.1 13 34.1-12.4 70.2-48.3 70.2-13.2 0-26-5.1-35.6-14.2s-15.3-21.6-16-34.8c-6.4 .2-64.2 0-76.3-.6-.3 6.8-1.9 13.5-4.7 19.6s-6.9 11.7-11.9 16.3-10.8 8.2-17.2 10.5-13.2 3.4-19.9 3.1c-33.9-1.4-58-34.8-47-67.9-37.2-13.1-72.5-34.9-99.6-70.8-13-17.3-.5-41.8 20.8-41.8 46.3 0 32.2-54.2 43.2-110.3 18.4-93.9 116.8-157.1 211.7-157.1 102.5 0 197.2 70.7 214.1 169.7zM373.9 388.3c42-19.2 81.3-56.7 96.3-102.1 40.5-123.1-64.2-228-181.7-228-83.4 0-170.3 55.4-186.1 136-9.5 48.9 5 131.4-68.7 131.4 24.9 33.1 58.3 52.6 93.7 64 24.7-21.8 63.9-15.5 79.8 14.3 14.2 1 79.2 1.2 87.9 .8 3.5-6.9 8.5-12.9 14.7-17.5s13.2-7.9 20.8-9.5 15.4-1.4 22.9 .4 14.5 5.3 20.5 10.2zM205.5 187.1c0-34.7 50.8-34.7 50.8 0s-50.8 34.7-50.8 0zm116.6 0c0-34.7 50.9-34.7 50.9 0s-50.9 34.8-50.9 0zM199.5 257.8c-3.4-16.9 22.2-22.2 25.6-5.2l.1 .3c4.1 21.4 29.8 44 64.1 43.1 35.7-.9 59.3-22.2 64.1-42.8 4.5-16.1 28.6-10.4 25.5 6-5.2 22.2-31.2 62-91.5 62.9-42.6 0-80.9-27.8-87.9-64.2l0 0z\"],\n \"creative-commons-remix\": [512, 512, [], \"f4ee\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zM418.1 260.4l4.9 2.2 0 70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5 0-63.8 59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7 151.9 62.9 0 61.6 49.1 20.3zm-70.4 81.5l0-43.8-.4 0 0-1.8-113.8-46.5 0 45.2 113.8 46.9 0-.4 .4 .4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1l0-43-44.3 18.6 0 43.4 44.3-19z\"],\n \"bandcamp\": [512, 512, [], \"f2d5\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm48.2 326.1l-181 0 84.7-156.1 181 0-84.7 156.1z\"],\n \"square-web-awesome-stroke\": [448, 512, [], \"e684\", \"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm235 81.6l53 46.4 52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224c-12.9-.4-23.2-11-23.2-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224 213.1 177.6c-8.9-4.1-15-13.1-15-23.6 0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"],\n \"vimeo-v\": [448, 512, [], \"f27d\", \"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3-35.2-129.2-50.2-204.9-79.3-204.9-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"],\n \"strava\": [384, 512, [], \"f428\", \"M158.4 0L7 292 96.2 292 158.4 175.9 220.1 292 308.6 292 158.4 0zM308.6 292l-43.9 88.2-44.6-88.2-67.6 0 112.2 220 111.5-220-67.6 0z\"],\n \"uniregistry\": [384, 512, [], \"f404\", \"M192 480c39.5 0 76.2-11.8 106.8-32.2l-213.5 0C115.8 468.2 152.5 480 192 480zM102.9 286.9l0-12.4-102.9 0 0 12.4c0 2.5 0 5 .1 7.4l103.1 0c-.2-2.4-.3-4.9-.3-7.4zm20.5 57l-114.9 0c2.6 8.5 5.8 16.8 9.6 24.8l138.3 0c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7l-104.4 0c.9 7.6 2.2 15 3.9 22.3l109.7 0c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3l-102.9 0 0 17.3 102.9 0 0-17.3zm0-173.2l-102.9 0 0 4.9 102.9 0 0-4.9zm0-34.7l-102.9 0 0 2.5 102.9 0 0-2.5zm0 69.3l-102.9 0 0 7.4 102.9 0 0-7.4zm0 104l-102.9 0 0 14.8 102.9 0 0-14.8zm0-69.3l-102.9 0 0 9.9 102.9 0 0-9.9zm0 34.6l-102.9 0 0 12.4 102.9 0 0-12.4zM269.1 331.5l109.7 0c1.8-7.3 3.1-14.7 3.9-22.3l-104.4 0c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7l102.9 0 0-9.8-102.9 0 0 9.8zm0 37.2l102.9 0 0-12.4-102.9 0 0 12.4zm0-74.3l102.9 0 0-7.4-102.9 0 0 7.4zm0-76.7l0 2.5 102.9 0 0-2.5-102.9 0zM78.1 442.9l227.7 0c11.8-8.7 22.7-18.6 32.2-29.7l-293.1 0c9.6 11 21.4 21 33.2 29.7zm203-371.3l102.9 0 0-4.9-102.9 0 0 4.9zm0 148.5l102.9 0 0-14.8-102.9 0 0 14.8zM38.8 405.7l305.3 0c6.7-8.5 12.6-17.6 17.8-27.2L23 378.5c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1l139.4 0c3.7-8 5.8-16.2 8.5-24.8l-115 0c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4l103.1 0c.1-2.5 .2-4.9 .2-7.4l0-12.4-102.9 0 0 12.4zm0-29.7l102.9 0 0-17.3-102.9 0 0 17.3z\"],\n \"cc-diners-club\": [576, 512, [], \"f24c\", \"M239.7 79.9a175.8 175.8 0 1 0 0 351.6 175.8 175.8 0 1 0 0-351.6zM199.8 359.5c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1l0 207.9zm79.8 .3l0-208.2c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM329.7 448l-90.3 0C133.2 448 45.6 362.5 45.6 257.8 45.6 143.2 133.2 64 239.4 64l90.3 0c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"],\n \"pinterest\": [512, 512, [], \"f0d2\", \"M504 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3 .8-3.4 5-20.3 6.9-28.1 .6-2.5 .3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2C161.5 437.2 163.5 467.4 165.6 487 73.4 450.9 8 361.1 8 256 8 119 119 8 256 8S504 119 504 256z\"],\n \"algolia\": [512, 512, [], \"f36c\", \"M256 0c-139.9 0-254 112.7-256 252.1-2 141.5 112.9 258.7 254.5 259.5 43.7 .3 85.9-10.4 123.3-30.7 3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3-26.1 11.1-54.5 16.8-83.7 16.4-114.4-1.5-206.9-96.6-205.1-211 1.8-112.9 94.3-204.2 207.7-204.2l207.7 0 0 369-117.8-104.7c-3.8-3.4-9.7-2.7-12.7 1.3-18.9 25-49.7 40.6-83.9 38.2-47.5-3.3-85.9-41.5-89.5-88.9-4.2-56.6 40.6-103.9 96.3-103.9 50.4 0 91.9 38.8 96.2 88 .4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4 2.2-11.8 3-24.2 2.1-36.8-4.9-72-63.3-130-135.4-134.4-82.7-5.1-151.8 59.5-154 140.6-2.1 78.9 62.6 147 141.6 148.7 33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7l0-492c0-5.4-4.4-9.7-9.7-9.7L256 0z\"],\n \"stackpath\": [448, 512, [], \"f842\", \"M244.6 232.4c0 8.5-4.3 20.5-21.3 20.5l-19.6 0 0-41.5 19.6 0c17.1 0 21.3 12.4 21.3 21zM448 32l0 448-448 0 0-448 448 0zM151.3 287.8c0-21.2-12.1-34.5-46.7-44.8-20.6-7.4-26-10.9-26-18.6s7-14.6 20.4-14.6c14.1 0 20.8 8.4 20.8 18.4l30.7 0 .2-.6c.5-19.6-15.1-41.6-51.1-41.6-23.4 0-52.6 10.8-52.6 38.3 0 19.4 9.2 31.3 50.7 44.4 17.3 6.2 21.9 10.4 21.9 19.5 0 15.2-19.1 14.2-19.5 14.2-20.4 0-25.7-9.1-25.7-21.9l-30.8 0-.2 .6c-.7 31.3 28.4 45.2 56.6 45.2 30 0 51.1-13.6 51.1-38.3zm125.4-55.6c0-25.3-18.4-45.5-53.4-45.5l-51.8 0 0 138.2 32.2 0 0-47.4 19.6 0c30.3 0 53.4-16 53.4-45.4zM297.9 325l49.1-138.2-31.1 0-47.9 138.2 29.9 0zM404.5 186.8l-31.1 0-47.9 138.2 29.9 0 49.1-138.2z\"],\n \"octopus-deploy\": [512, 512, [], \"e082\", \"M455.7 349.2c-45.9-39.1-36.7-77.9-16.1-128.1 35.7-87-23.5-186.9-109.6-212.8-92.9-27.9-195.7 16-230.3 108.8-8.7 23.5-12.5 48.5-11 73.5 1.7 29.5 14.7 53 24.1 80.3 17.2 50.2-28.1 92.7-66.7 117.6-46.8 30.2-36.3 39.9-8.4 41.9 23.4 1.7 44.5-4.5 65.3-15 9.2-4.6 40.7-18.9 45.1-28.6-12.2 26.6-37 72.7-21.5 102.1 19.1 36.2 67.1-31.8 76.7-45.8 8.6-12.6 43-81.3 63.6-46.9 18.9 31.4 8.6 76.4 35.7 104.6 32.9 34.2 51.2-18.3 51.4-44.2 .2-16.4-6.1-95.9 29.9-59.9 21.4 21.4 52.9 71.2 88.6 67 38.7-4.5-22.1-68-28.3-78.7 5.4 4.3 53.7 34.1 53.8 9.5 .1-18.8-30.1-34.7-42.5-45.3z\"],\n \"yammer\": [512, 512, [], \"f840\", \"M500.7 159.5c-.4-1.8-1.2-3.4-2.3-4.8s-2.5-2.6-4.1-3.5c-3.1-1.6-6.7-2-10.1-1.1l-26.4 6.6 0-.2-22.3 5.8-1.2 .3-.6-2.2c-15.5-58.3-45-111.9-86.1-156.2-2.6-2.7-6.1-4.2-9.8-4.3s-7.3 1.3-10 3.8l-102.9 102.7-199.9 0c-6.6 0-12.9 2.6-17.6 7.3S0 124.8 0 131.4l0 249C0 387 2.6 393.3 7.3 398s11 7.3 17.6 7.3L225 405.3 328.1 508c2.6 2.6 6 4 9.7 4s7.1-1.4 9.7-4c.1-.1 .2-.3 .4-.4 29.3-31.5 52.8-67.8 69.6-107.4 6.9-16.5 12.7-33.5 17.3-50.8l0 0 20.4 5.3 0-.1 28.3 7.3c.9 .2 1.7 .4 2.6 .5 1.4 .2 2.8 .2 4.1-.1 2.5-.5 4.8-1.7 6.7-3.4s3.2-4 3.8-6.5c15.2-63.4 15.2-129.6 .1-193l0 0zM337.1 24.7l0 0 0 0 0 0zM226.9 189.8l-52.6 91.3c-1 1.7-1.5 3.7-1.5 5.7l0 46.2c0 5.8-2.3 11.4-6.5 15.6s-9.7 6.4-15.6 6.4l-3.4 0c-5.8 0-11.4-2.3-15.6-6.4s-6.5-9.7-6.5-15.6l0-45.7c0-1.9-.5-3.8-1.4-5.5L72.3 189.6c-1.9-3.4-2.8-7.1-2.8-11s1.1-7.6 3-10.9 4.7-6.1 8.1-8 7.1-2.9 11-2.9l3.3 0c4 0 8 1.1 11.5 3.2s6.3 5.1 8.1 8.7l36.4 70.3 37.5-70.5c1.8-3.5 4.6-6.4 7.9-8.4s7.2-3.2 11.1-3.2 7.8 .9 11.2 2.8 6.3 4.7 8.2 8.1c2 3.3 3 7.1 3 11s-1 7.7-3 11l0 0zM337.1 24.7c35.9 40.6 61.9 89 75.8 141.3l.6 2-114.1 29.6 0-66.1c0-6.6-2.7-12.9-7.3-17.6s-11-7.3-17.6-7.3l-19.4 0 82.1-81.8zM397.6 392l0 0 0 0c-14.7 34.8-35.1 67-60.2 95.2l-82.2-81.9 19.2 0c6.6 0 12.9-2.6 17.6-7.3s7.3-11 7.3-17.6l0-66.2 114.6 29.9c-4.4 16.3-9.8 32.3-16.3 47.9l0 0zm84-52.4l0 0-50.6-13.1-131.7-34.3 0-72.5 119.7-31 4.5-1.2c29.9-7.7 49.2-12.8 58.1-15.1 12 55.1 12 112.1 0 167.2z\"],\n \"modx\": [448, 512, [], \"f285\", \"M356 241.8l36.7 23.7 0 214.5-133-83.8 96.3-154.4zM440 75l-213.7 0-23 37.8 153.5 96.5 83.2-134.3zM351 217.8l-295.8-185.8 0 214.5 46 29 249.8-57.7zM97 294.2L8 437 221.7 437 346.7 236.5 97 294.2z\"],\n \"square-threads\": [448, 512, [], \"e619\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM294.2 244.3c19.5 9.3 33.7 23.5 41.2 40.9 10.4 24.3 11.4 63.9-20.2 95.4-24.2 24.1-53.5 35-95.1 35.3l-.2 0c-46.8-.3-82.8-16.1-106.9-46.8-21.5-27.3-32.6-65.4-33-113.1l0-.2c.4-47.7 11.5-85.7 33-113.1 24.2-30.7 60.2-46.5 106.9-46.8l.2 0c46.9 .3 83.3 16 108.2 46.6 12.3 15.1 21.3 33.3 27 54.4l-26.9 7.2c-4.7-17.2-11.9-31.9-21.4-43.6-19.4-23.9-48.7-36.1-87-36.4-38 .3-66.8 12.5-85.5 36.2-17.5 22.3-26.6 54.4-26.9 95.5 .3 41.1 9.4 73.3 26.9 95.5 18.7 23.8 47.4 36 85.5 36.2 34.3-.3 56.9-8.4 75.8-27.3 21.5-21.5 21.1-47.9 14.2-64-4-9.4-11.4-17.3-21.3-23.3-2.4 18-7.9 32.2-16.5 43.2-11.4 14.5-27.7 22.4-48.4 23.5-15.7 .9-30.8-2.9-42.6-10.7-13.9-9.2-22-23.2-22.9-39.5-1.7-32.2 23.8-55.3 63.5-57.6 14.1-.8 27.3-.2 39.5 1.9-1.6-9.9-4.9-17.7-9.8-23.4-6.7-7.8-17.1-11.8-30.8-11.9l-.4 0c-11 0-26 3.1-35.6 17.6l-23-15.8c12.8-19.4 33.6-30.1 58.5-30.1l.6 0c41.8 .3 66.6 26.3 69.1 71.8 1.4 .6 2.8 1.2 4.2 1.9l.1 .5zm-71.8 67.5c17-.9 36.4-7.6 39.7-48.8-8.8-1.9-18.6-2.9-29-2.9-3.2 0-6.4 .1-9.6 .3-28.6 1.6-38.1 15.5-37.4 27.9 .9 16.7 19 24.5 36.4 23.6l-.1-.1z\"],\n \"old-republic\": [512, 512, [], \"f510\", \"M243.8 10.2c7.5-.3 15-.3 22.5-.1 3.6 .1 7.2 .4 10.8 .7 4.9 .3 9.8 1 14.7 1.6 2.9 .4 5.8 1 8.7 1.5 7.9 1.3 15.7 3.3 23.4 5.4 12.2 3.5 24.2 7.9 35.8 13.2 26.6 12.2 50.9 29.2 71.6 49.9 20 20.1 36.7 43.5 48.9 69.2 1.1 2.6 2.4 5.1 3.5 7.7 2.8 6.4 5.4 13 7.6 19.6 4.1 12.3 7.3 25 9.4 37.8 .6 3.1 1 6.3 1.4 9.5 .5 3.8 .9 7.7 1.2 11.6 .8 8.3 .8 16.7 .8 25.1-.1 5-.3 9.9-.7 14.9-.2 3.4-.5 6.8-1 10.1-.4 2.7-.6 5.5-1.1 8.2-.9 5.1-1.7 10.3-2.9 15.4-4.1 18.5-10.3 36.6-18.5 53.6-15.8 32.8-38.8 62.2-67.1 85.1-17.3 14.1-36.4 25.9-56.9 34.9-6.2 2.7-12.5 5.3-18.9 7.4-3.5 1.2-7 2.4-10.6 3.4-6.6 1.9-13.3 3.6-20 5-4.7 .9-9.3 1.7-14 2.5-5.3 .7-10.5 1.4-15.8 1.7-6.7 .7-13.4 .8-20.1 .8-6.8 0-13.6-.1-20.4-.8-3.3-.2-6.6-.5-9.8-1-2.7-.4-5.5-.6-8.2-1.1-4.1-.7-8.2-1.4-12.4-2.2-4.2-.9-8.5-1.9-12.7-3-8.6-2.2-17.1-5-25.4-8.1-10.5-4.1-20.8-8.7-30.6-14.2-2.1-1.2-4.3-2.3-6.4-3.6-11.2-6.6-21.9-14.1-31.9-22.3-34.7-28.4-61.4-66.4-76.4-108.7-3.1-8.7-5.7-17.6-7.8-26.7-1.5-6.2-2.5-12.4-3.6-18.7-.4-2.3-.6-4.7-1-7.1-.6-4-.8-8-1.2-11.9-.8-9.5-.7-19-.5-28.5 .1-3.5 .3-7 .7-10.5 .3-3.2 .5-6.4 .9-9.5 .4-2.8 .7-5.6 1.2-8.4 .7-3.9 1.3-7.9 2.1-11.8 3.4-16.5 8.5-32.7 15.3-48.2 1.2-2.9 2.6-5.7 3.9-8.6 8.1-16.7 17.9-32.6 29.5-47.1 20-25.4 45.1-46.7 73.3-62.5 7.5-4.2 15.2-8 23.1-11.4 15.8-6.9 32.4-12 49.3-15.4 3.5-.7 7-1.2 10.6-1.8 2.6-.5 5.3-.7 7.9-1.1 3.5-.5 7.1-.7 10.6-1 2.5-.2 4.9-.4 7.4-.5zm8.6 24.4c-9.2 .1-18.4 1-27.6 2.2-7.3 1.1-14.5 2.6-21.7 4.3-13.9 3.5-27.5 8.3-40.5 14.4-10.5 5-20.6 10.7-30.2 17.2-4.2 2.9-8.4 5.8-12.3 9-5.1 4-10 8.2-14.7 12.6-2.5 2.2-4.8 4.7-7.2 7.1-28.2 28.8-48.4 65.4-57.5 104.7-2 8.4-3.5 17-4.4 25.6-1.1 8.9-1.4 17.9-1.4 26.8 .1 7.1 .4 14.3 1.2 21.4 .6 7.1 1.9 14.2 3.2 21.2 1.1 4.6 2 9.3 3.3 13.9 6.3 23.4 16.5 45.7 30.1 65.8 8.6 13 18.8 24.9 30 35.8 16.3 15.8 35 29 55.3 39.2 7.3 3.5 14.7 6.9 22.3 9.6 5 1.8 10.1 3.6 15.2 5 11.3 3.2 22.8 5.6 34.4 7.1 2.9 .3 5.8 .6 8.7 .9 13.8 1.1 27.7 1 41.5-.4 4.4-.6 8.9-1 13.3-1.8 3.6-.7 7.3-1.2 10.9-2.1 4.1-1 8.3-1.9 12.4-3.1 26.5-7.3 51.6-19.7 73.6-36.2 15.8-11.8 30-25.8 42.1-41.3 3.3-4 6.2-8.3 9.1-12.6 3.4-5.1 6.6-10.2 9.6-15.5 2.4-4.4 4.7-8.9 7-13.4 5.7-12.1 10.3-24.6 13.8-37.5 2.6-10 4.7-20.2 5.9-30.4 1.8-13.5 1.9-27.1 1.3-40.7-.3-3.9-.7-7.8-1-11.7-2.2-19.1-6.8-37.9-13.8-55.8-6-15.1-13.5-29.6-22.6-43.1-12.7-18.8-28.2-35.7-46-49.8-25-20-54.5-34.5-85.6-42.1-7.8-1.9-15.7-3.3-23.6-4.4-3.9-.6-7.8-.8-11.8-1.2-7.4-.6-14.8-.7-22.2-.6zM147.3 83.5c13.3-8.9 28.1-15.4 43.3-20.2-3.2 1.8-6.4 3.4-9.5 5.3-11.2 6.7-21.5 14.9-30.4 24.5-6.8 7.4-12.8 15.7-17 24.9-3.3 6.9-5.6 14.2-6.9 21.7-.9 4.8-1.3 9.8-1.2 14.8 .1 13.7 4.4 27.1 11.3 38.8 5.9 10.2 13.6 19.3 22.4 27.3 4.9 4.4 10.2 8.1 15 12.6 2.3 2.2 4.5 4.4 6.4 6.9 2.6 3.3 4.9 7 6 11.1 .9 3 .7 6.2 .7 9.3 0 4.1 0 8.2 0 12.3 .1 3.5 0 7.1 .1 10.6 .1 2.4 0 4.8 .1 7.1 .2 5.8 .1 11.5 .1 17.3 .1 2.9 0 5.8 .1 8.7 0 1.6 .1 3.3 0 4.9-.9 .1-1.8 .2-2.7 .2-11 0-21.9-2.6-32-6.9-6-2.7-11.8-5.9-17.1-9.8-5.8-4.2-11.1-9-15.8-14.3-6.5-7.2-12-15.4-16.6-23.9-1.1-2-2.2-4-3.2-6.1-1.2-2.6-2.6-5.1-3.7-7.8-4-9.7-6.6-19.9-8.1-30.3-.5-4.4-1.1-8.9-1.2-13.3-.7-15.7 .8-31.6 4.7-46.8 2.1-8.2 4.8-16.2 8.3-23.8 6.3-14.2 15.3-27.2 26.3-38.2 6.3-6.2 13.1-11.8 20.5-16.7zM322.7 63.4c2.7 .7 5.4 1.7 8.1 2.7 6.4 2.3 12.7 4.8 18.7 8 13.1 6.4 25.3 14.8 35.8 25 10.2 10 18.7 21.6 25.1 34.3 1.3 2.7 2.6 5.5 3.8 8.3 6.3 15.1 10 31.3 11.2 47.6 .4 4.5 .4 9.1 .5 13.6 .1 11.6-1.5 23.3-4.3 34.5-2 7.3-4.3 14.5-7.9 21.2-3.2 6.6-6.7 13.2-10.8 19.2-6.9 10.5-15.6 19.9-25.8 27.2-10.5 7.6-22.6 13-35.4 15.4-3.5 .7-7.1 1.1-10.7 1.2-1.8 .1-3.7 .2-5.6-.1-.3-2.1 0-4.3 0-6.5 0-3.7 .1-7.4 .1-11.2 .2-7 0-14.1 .2-21.1 0-2.4 0-4.8 0-7.1 .2-5.1 0-10.1 .1-15.2 .1-3-.2-6 .5-9 .7-2.5 1.8-4.9 3.1-7.1 4.5-7.3 11.1-13 17.7-18.3 5.4-4.2 10.5-8.8 15-13.8 7.7-8.4 14.2-17.9 18.8-28.3 2.5-5.9 4.5-12.1 5.5-18.5 .9-4.4 1.1-8.8 1-13.3 0-7.8-1.4-15.6-3.6-23.2-1.8-5.7-4.3-11.2-7.1-16.4-3.9-6.9-8.6-13.3-14-19.2-9.9-10.8-21.8-19.9-34.6-27.1-1.8-1-3.8-1.8-5.6-3zM221.9 121.9c1-1.2 2-2.3 3.1-3.4-.6 .9-1.3 1.8-2 2.7-3.1 3.9-5.5 8.3-7 13.1-.9 3.3-1.7 6.6-1.7 10-.1 2.5-.1 5.1 .3 7.6 1.1 7.6 4.3 14.9 8.8 21.1 2 2.7 4.2 5.3 6.9 7.3 1.6 1.3 3.5 2.1 5.3 3 3.1 1.7 6.3 3.2 9.1 5.5 2.7 2.1 4.6 5.3 4.4 8.8 0 73.7 0 147.3 0 221 0 1.4-.1 2.7 0 4 .1 1.5 .8 2.8 1.5 4.1 .9 1.7 1.8 3.3 3.2 4.6 .9 .8 2 1.4 3.2 1.2 1.5-.2 2.7-1.4 3.4-2.6 1-1.5 1.7-3.2 2.3-4.9 .8-2.1 .4-4.4 .5-6.6 .1-4 0-8.1 .1-12.1 0-5.9 0-11.8 .1-17.7 .1-3.6 0-7.2 .1-10.9 .2-4 0-8.1 .1-12.1 0-6 0-12 .1-18 .1-3.6 0-7.2 .1-10.9 .1-3.9 0-7.9 .1-11.8 0-6 0-12 .1-18 .2-3.9 0-7.9 .2-11.8 .3 1.4 .1 2.9 .2 4.4 .2 3.6 .4 7.2 .8 10.8 .3 3.4 .4 6.9 .9 10.3 .4 3.1 .5 6.2 1 9.3 .6 4.1 .9 8.2 1.5 12.3 1.5 9 2.8 18.1 5.1 27 1.1 4.8 2.4 9.6 4 14.3 2.5 7.9 5.7 15.7 10.3 22.6 1.7 2.6 3.9 5 6.1 7.2 .3 .2 .6 .5 .9 .7 .6 .3 1.3-.1 1.7-.6 .7-.9 1.2-1.9 1.7-2.9 4.1-7.8 8.2-15.6 12.3-23.3 .7-1.3 1.4-2.6 2.6-3.6 1.8-1.6 3.8-2.7 6-3.6 2.9-1.2 5.9-2.2 9-2.4 6.6-.6 13.1 .7 19.6 1.8 3.7 .6 7.4 1.2 11.1 1.4 3.7 .1 7.5 .1 11.2-.3 8.6-.9 17-3 24.9-6.2 5.3-2.2 10.5-4.8 15.3-7.9 11.5-7.2 21.5-16.6 30-27 1.2-1.4 2.2-2.9 3.5-4.3-1.2 3.2-2.7 6.4-4.2 9.5-1.3 2.9-2.8 5.6-4.3 8.4-5.2 9.6-11 18.9-17.8 27.5-4 5.2-8.5 10.1-13.3 14.6-6.6 6.1-14.1 11.4-22.4 14.8-8.2 3.4-17.3 4.6-26.1 3.3-3.6-.6-7-1.7-10.4-2.9-2.8-1-5.4-2.4-8-3.7-3.4-1.7-6.6-3.8-9.7-6.1 2.7 3.1 5.7 5.9 8.7 8.6 4.3 3.8 8.7 7.3 13.6 10.2 4 2.5 8.3 4.4 12.8 5.5 1.5 .4 3 .5 4.5 .6-1.3 1.1-2.6 2-4 3-9.6 6.5-20 11.9-30.7 16.4-20.9 8.7-43.2 14-65.7 15.3-4.7 .2-9.3 .4-14 .4-5-.1-10-.1-14.9-.7-11.2-.8-22.3-2.7-33.2-5.4-10.4-2.7-20.6-6.1-30.3-10.6-8.7-3.9-17.1-8.4-25-13.8-1.8-1.3-3.7-2.5-5.4-4.1 6.6-1.2 13-3.4 19-6.5 5.7-2.9 11-6.7 15.6-11.1 2.2-2.2 4.3-4.6 6.2-7.1-3.4 2.1-6.9 4.2-10.6 5.8-4.4 2.2-9.1 3.8-13.8 5-5.7 1.5-11.7 1.7-17.6 1.1-8.1-1-15.9-4.3-22.5-9-4.3-2.9-8.2-6.4-12-10.1-9.9-10.2-18.2-21.8-25.7-33.9-3.9-6.3-7.5-12.7-11.1-19.2-1-2-2.1-4.1-3.2-6.1 2.8 2.9 5.6 6 8.4 8.9 19.2 19.2 37.6 32.3 53.7 35.5 3.1 .7 6.3 .5 9.5 .8 2.8 .3 5.6 .2 8.3 .3 5 .1 10.1 0 15.2-.2 3.6-.2 7.3-.7 10.9-1.1 2.1-.2 4.1-.7 6.1-1.2 3.9-1 8.1-1 11.8 .6 4.8 1.8 8.4 5.6 11.4 9.7 2.2 3 4.1 6.2 5.7 9.6 1.2 2.4 2.5 4.8 3.6 7.3 1 2.2 2.2 4.4 3.4 6.5 .7 1 1.4 2.2 2.6 2.6 1.1-.8 1.7-1.9 2.3-3 2.1-4.2 3.4-8.6 4.9-13 2-6.6 3.8-13.3 5.2-20 2.2-9.3 3.2-18.7 4.5-28.1 .6-4 .8-8 1.3-12 .9-10.6 1.9-21.3 2.2-31.9 .1-1.9 .2-3.7 .3-5.6 0-4.3 .2-8.7 .2-13 0-2.4 0-4.8 0-7.1 0-5.1-.2-10.1-.2-15.2-.2-6.6-.7-13.2-1.3-19.8-.7-5.9-1.5-11.8-3.1-17.5-2-7.7-5.6-15-9.8-21.8-3.2-5.1-6.8-9.9-11.1-14-3.9-3.9-8.6-7.1-13.9-8.4-1.5-.4-3.1-.4-4.6-.6 .1-3 .7-5.9 1.3-8.8 1.6-7.7 3.8-15.3 6.8-22.6 1.5-4 3.4-7.9 5.4-11.7 3.4-6.6 7.6-12.8 12.5-18.5zm31.3 1.7c.4-.1 .7-.1 1.1-.2 .2 1.8 .1 3.6 .1 5.4l0 38.1c0 1.7 .1 3.5-.2 5.2-.4 0-.7 0-1.1 0-.9-3.8-1.7-7.6-2.6-11.3-.4-1.5-.6-3.1-1.1-4.6-1.7-.2-3.4-.2-5.2-.2-5.1 0-10.1 0-15.2 0-1.7 0-3.3 .1-5 0 0-.4-.3-.9 .2-1.2 1.3-.7 2.7-.9 4.1-1.4 3.4-1.1 6.9-2.2 10.3-3.3 1.4-.5 2.9-.7 4.2-1.5 0-.6 0-1.1 0-1.7-1.2-.6-2.5-.9-3.8-1.3-3.1-1-6.3-2-9.4-3-1.8-.6-3.7-1-5.4-1.8 0-.4-.1-.7-.1-1.1 5.1-.2 10.2 .1 15.3-.1 3.4-.1 6.7 .1 10.1-.1 .1-.4 .3-.8 .4-1.2 1.1-4.9 2.3-9.8 3.4-14.7zm6-.2c.4 0 .7 .1 1.1 .2 1 3.8 1.7 7.8 2.7 11.6 .4 1.4 .6 2.9 1 4.3 2.5 .2 5.1 0 7.6 0 5.2 .1 10.3 .1 15.5 .1 .8 0 1.5 0 2.3 .1 0 .4-.1 .7-.1 1.1-1.8 .8-3.8 1.2-5.7 1.9-3.7 1.2-7.5 2.4-11.2 3.6-.6 .2-1.1 .4-1.7 .6-.2 .6-.2 1.1-.1 1.7 .9 .5 1.8 .8 2.8 1.1 4.9 1.5 9.7 3.1 14.6 4.6 .4 .1 .8 .3 1.1 .5 .4 .3 .2 .8 .2 1.2-1.7 .1-3.3 0-5 0-5.2 0-10.3 0-15.5 0-1.6 0-3.2 0-4.8 .2-.5 1.7-.7 3.4-1.2 5.1-.9 3.6-1.5 7.2-2.5 10.8-.4 0-.7 0-1.1 .1-.3-1.7-.2-3.5-.2-5.2l0-38.1c0-1.8-.1-3.6 .1-5.4zm-186 45c1.1-2.2 2.1-4.4 3.4-6.5-1.8 7.6-2.9 15.3-3.6 23-.8 7.7-.8 15.5-.5 23.2 1.1 19.9 5.5 39.8 14.2 57.9 3 6 6.4 11.8 10.5 17.1 6.1 7.5 12.5 14.8 19.8 21.1 4.8 4.1 10 7.8 15.5 10.8 3.3 1.7 6.5 3.4 9.9 4.7 5 2 10.2 3.6 15.4 4.9 3.8 1 7.8 1.4 11.5 2.7 5 1.6 9.5 4.6 13 8.4 4.9 5.2 8.1 11.9 10.2 18.7 1 2.9 1.6 5.9 2.2 8.9 .2 .8 .2 1.5 .2 2.3-6.5 2.8-13.3 5.1-20.3 6.2-4.1 .8-8.3 1-12.5 1.1-10.2 .2-20.5-1.8-30.1-5.1-3.7-1.4-7.5-2.9-11-4.7-8.1-3.8-15.6-8.7-22.5-14.5-2.9-2.6-5.8-5.1-8.4-8-9.2-9.8-16.3-21.4-21.8-33.7-2.4-5.5-4.6-11.2-6.4-17-1.2-3.9-2.4-7.9-3.3-11.9-.7-2.9-1.2-5.9-1.9-8.9-.5-2.1-.7-4.3-1-6.5-.8-5.4-1.3-10.9-1.3-16.4 .1-6.2 .2-12.4 1.1-18.5 .4-2.9 .7-5.7 1.2-8.6 1-5.7 2.1-11.4 3.7-16.9 3.1-11.6 7.5-23 12.7-33.8zm363.7-6.4c1.1 1.7 1.9 3.5 2.8 5.3 2.1 4.5 4.2 8.9 6 13.5 7.6 18.8 12.3 38.8 13 59 0 1.8 .1 3.5 .1 5.3 .1 9.6-1.3 19.1-3.2 28.5-.7 3.6-1.5 7.2-2.6 10.7-4 14.7-10 29-18.4 41.8-8.2 12.6-19 23.5-31.8 31.4-5.7 3.6-11.8 6.6-18 9.2-5.8 2.2-11.7 4-17.8 5.1-6.4 1-12.9 1.5-19.4 1.2-7.9-.5-15.8-2.1-23.2-4.8-1.9-.8-3.9-1.5-5.8-2.3-.2-1.5 .2-3 .5-4.5 1.2-5.7 3-11.4 5.7-16.6 2.4-4.5 5.5-8.7 9.5-11.9 2.4-2.1 5.2-3.6 8.2-4.8 3.6-1.5 7.5-2 11.2-2.8 7.2-1.7 14.4-3.9 21.2-7 10.3-4.7 19.7-11.4 27.6-19.5 1.6-1.6 3.2-3.2 4.7-4.9 3.4-3.8 6.7-7.6 9.8-11.5 7.5-10.1 12.8-21.6 16.7-33.5 1.6-5.3 3.2-10.6 4.2-16.1 .6-2.9 1-5.8 1.5-8.7 .9-6.1 1.6-12.2 1.7-18.4 .1-6.6 .1-13.3-.5-19.9-.7-8-1.9-16-3.7-23.8z\"],\n \"suse\": [640, 512, [], \"f7d6\", \"M604.5 210a10.4 10.4 0 1 1 -11.4-17.4 10.4 10.4 0 1 1 11.4 17.4zM621 187.2a38.5 38.5 0 1 1 -75 17.6 38.5 38.5 0 1 1 75-17.6zM433.7 336.7c3.2 4.6 5.8 9 7.3 13.4 1 3.1 2.4 7.3 5.5 8.9 .2 .1 .3 .2 .5 .2 5.7 2.1 20.3 1.7 20.3 1.7l26.8 0c2.3 0 22.4 0 21.9-2.3-2.4-10.8-14.9-12.7-24.4-18.3-8.7-5.2-17-11.1-20.8-21.3-2-5.2-.8-17.4 2.6-21.8 2.5-3.2 6.1-5.3 10-6.2 4.3-.9 8.8-.1 13.1 .3 5.3 .5 10.6 1.5 15.9 2.2 10.3 1.3 20.6 1.9 31 1.6 17.1-.5 34.2-3.2 50.4-8.7 11.3-3.8 22.4-8.9 32-16.1 10.9-8.1 8.1-7.4-3-6.2-13.3 1.4-26.6 1.6-39.9 .8-12.4-.7-24.7-2.2-35.9-7.9-8.8-4.6-16.4-9.1-23.4-16.2-1-1.1-1.7-4.2 .2-6.2 1.9-1.9 5.8-.8 7 .2 12.2 10.2 30.5 18.6 49.3 19.5 10.2 .5 20.1 .7 30.4 .3 5.1-.2 12.8-.2 17.9-.3 2.6 0 9.8 .7 11.2-2.1 .4-.8 .4-1.8 .3-2.7-1.5-40.9-4.5-86.9-47.3-106.5-31.9-14.6-79.7-37.2-99.9-46.6-4.7-2.2-10.2 1.3-10.2 6.5 0 13.6 .7 33.3 .7 51.1-9.7-9.9-26-16.1-38.4-21.8-14.1-6.5-28.7-12-43.5-16.6-29.8-9.2-60.7-14.9-91.7-18-35.2-3.5-71-1.8-105.7 5.3-56.9 12.2-113.1 39.7-155.7 79.8-26.1 24.6-46.6 59.7-48 95.2-2 50.3 12.1 77.3 38 105.2 41.3 44.4 130.2 50.6 166.2-2 16.2-23.7 19.7-55.8 8-82-11.8-26.2-38.8-45.1-67.4-46-22.2-.7-45.9 10.6-54.5 31.1-6.5 15.7-2.8 35.1 9 47.3 4.6 4.8 10.9 8.7 17.7 7.1 4-.9 7.4-3.9 8-8 .9-6-4.4-9.9-7.6-14.5-5.8-8.3-4.7-20.9 2.7-27.9 6.2-6 15.3-7.8 23.9-7.7 8 0 16.2 1.4 23.1 5.5 9.7 5.7 16.2 16.2 18.4 27.2 6.7 33-20.2 59.9-56.6 62-18.6 1.1-37.6-3.8-52.1-15.5-36.9-29.8-45.9-90.3-3.8-122.7 40-30.7 90.4-22.8 120.2-6.8 23.8 12.8 41.5 33.6 55 56.7 6.7 11.6 12.5 23.7 17.8 36.1 5.1 11.8 9.9 23.8 20.2 32.5 6.8 5.8 15.2 5.6 24.1 5.6l50.8 0c6.9 0 5.2-4.6 2.2-7.7-6.7-6.9-16.4-8.4-25.4-10.9-20.5-5.6-18.4-32.8-12.7-32.8 18.3 0 18.9 .6 34.9 .3 23.2-.3 30.2-1.7 48.3 5 9.7 3.6 19 13.1 25.1 21.7z\"],\n \"app-store-ios\": [448, 512, [], \"f370\", \"M400 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9L84 330.6c-11 0-20-9-20-20s9-20 20-20l51 0 65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6 62.1 0c20.2 0 31.5 23.7 22.7 40zm98.1 0l-29 0 19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102l52 0c11 0 20 9 20 20 0 11.1-9 20-20 20z\"],\n \"square-dribbble\": [448, 512, [\"dribbble-square\"], \"f397\", \"M165.9 132.5c-38.3 18-66.8 53.3-75.7 95.7 6.1 .1 62.4 .3 126.4-16.7-22.7-40.2-47.1-74.1-50.7-79zm26.1-9.1c3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4-33.6-29.8-79.3-41.1-122.6-30.6zM277.4 382c-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6 40.5 31.6 93.3 36.7 137.3 18zM227.8 232.6C159.6 253 93.4 252.2 87.4 252l0 4.2c0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8-3.4-7.8-7.2-15.5-11.1-23.2l-.1 0zm72.5 136.9c30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8 17.9 49.1 25.1 89.1 26.5 97.4zm-34.8-119c45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9 4.8 9.8 8.3 17.8 12 26.8zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM224 96a160 160 0 1 1 0 320 160 160 0 1 1 0-320z\"],\n \"uikit\": [448, 512, [], \"f403\", \"M443.9 128l0 256-225.9 128-218-128 0-214.3 87.6 45.1 0 117 133.5 75.5 135.8-75.5 0-151-101.1-57.6 87.6-53.1 100.5 57.9zM308.6 49.1l-84.8-49.1-88.6 54.8 86 47.3 87.4-53z\"],\n \"superpowers\": [448, 512, [], \"f2dd\", \"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zM368.3 264.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"],\n \"youtube\": [576, 512, [61802], \"f167\", \"M549.7 124.1C543.5 100.4 524.9 81.8 501.4 75.5 458.9 64 288.1 64 288.1 64S117.3 64 74.7 75.5C51.2 81.8 32.7 100.4 26.4 124.1 15 167 15 256.4 15 256.4s0 89.4 11.4 132.3c6.3 23.6 24.8 41.5 48.3 47.8 42.6 11.5 213.4 11.5 213.4 11.5s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zM232.2 337.6l0-162.4 142.7 81.2-142.7 81.2z\"],\n \"ember\": [640, 512, [], \"f423\", \"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6 .5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7 .8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5 .3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7 .3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9l1.6 0s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2 1.9 0s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zM334.7 136.1s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"],\n \"bootstrap\": [576, 512, [], \"f836\", \"M333.5 201.4c0-22.1-15.6-34.3-43-34.3l-50.4 0 0 71.2 42.5 0c32.8-.1 50.9-13.3 50.9-36.9zM517 188.6c-9.5-30.9-10.9-68.8-9.8-98.1 1.1-30.5-22.7-58.5-54.7-58.5L123.7 32c-32.1 0-55.8 28.1-54.7 58.5 1 29.3-.3 67.2-9.8 98.1-9.6 31-25.7 50.6-52.2 53.1l0 28.5c26.4 2.5 42.6 22.1 52.2 53.1 9.5 30.9 10.9 68.8 9.8 98.1-1.1 30.5 22.7 58.5 54.7 58.5l328.7 0c32.1 0 55.8-28.1 54.7-58.5-1-29.3 .3-67.2 9.8-98.1 9.6-31 25.7-50.6 52.1-53.1l0-28.5c-26.3-2.5-42.5-22.1-52-53.1zM300.2 375.1l-97.9 0 0-238.3 97.4 0c43.3 0 71.7 23.4 71.7 59.4 0 25.3-19.1 47.9-43.5 51.8l0 1.3c33.2 3.6 55.5 26.6 55.5 58.3 0 42.1-31.3 67.5-83.2 67.5zm-10-108.7l-50.1 0 0 78.4 52.3 0c34.2 0 52.3-13.7 52.3-39.5 0-25.7-18.6-38.9-54.5-38.9z\"],\n \"itunes\": [448, 512, [], \"f3b4\", \"M223.6 80.3a171.3 171.3 0 1 0 .2 342.5 171.3 171.3 0 1 0 -.2-342.5zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1 .5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7 .9-127 2.6-133.7 .4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6 .4 161.4-1 167.6zM345.2 32L102.8 32C45.9 32 0 77.9 0 134.8L0 377.2C0 434.1 45.9 480 102.8 480l242.4 0c57 0 102.8-45.9 102.8-102.8l0-242.4C448 77.9 402.1 32 345.2 32zM223.6 59a192.5 192.5 0 1 1 0 385 192.5 192.5 0 1 1 0-385z\"],\n \"square-xing\": [448, 512, [\"xing-square\"], \"f169\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM93.8 320.2c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6 .2-10.1 6-10.1l46.6 0c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1l-46.6 0zm163.5-33.4l0 .2 65.5 119c2.8 5.1 .1 10.1-6 10.1l-46.6 0c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c1.8-3.2 22.9-40.4 63.3-111.6 11.7-20.7 25.1-44.3 40.1-70.8 3.3-5.8 7.4-8.7 12.5-8.7l46.9 0c5.7-.1 8.8 4.7 6 10L257.3 286.8z\"],\n \"css3-alt\": [384, 512, [], \"f38b\", \"M0 32L34.9 427.8 192 480 349.1 427.8 384 32 0 32zm313.1 80l-4.8 47.3-115.3 49.3-.3 .1 111.5 0-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9 48.9 0 3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5 0-.1-.2 .1-3.6-46.3 112.1-46.7 6.5-2.7-122.9 0-5.8-47.3 242.2 0z\"],\n \"squarespace\": [512, 512, [], \"f5be\", \"M186.1 343.3c-9.7 9.7-9.7 25.3 0 34.9s25.3 9.6 34.9 0L378.3 221.1c19.3-19.3 50.6-19.3 69.9 0s19.3 50.6 0 69.9L294 445.1c19.3 19.3 50.5 19.3 69.8 0l0 0 119.3-119.2c38.6-38.6 38.6-101.1 0-139.7-38.6-38.6-101.2-38.6-139.7 0L186.1 343.3zM430.7 238.5c-9.7-9.7-25.3-9.7-34.9 0L238.5 395.7c-19.3 19.3-50.5 19.3-69.8 0l0 0c-9.6-9.6-25.3-9.7-34.9 0l0 0c-9.7 9.6-9.7 25.3 0 34.9l0 0c38.6 38.6 101.1 38.6 139.7 0L430.7 273.5c9.6-9.7 9.6-25.3 0-34.9zm-262 87.3L325.9 168.7c9.6-9.6 9.6-25.3 0-34.9-9.6-9.6-25.3-9.6-34.9 0L133.7 290.9c-19.3 19.3-50.6 19.3-69.9 0l0 0c-19.3-19.3-19.3-50.5 0-69.8l0 0 154.2-154.2c-19.3-19.3-50.5-19.3-69.8 0l0 0-119.2 119.3c-38.6 38.6-38.6 101.1 0 139.7 38.6 38.6 101.1 38.6 139.7 0zM81.3 273.5c9.6 9.6 25.3 9.6 34.9 0L273.5 116.3c19.3-19.3 50.6-19.3 69.8 0l0 0c9.7 9.6 25.3 9.6 34.9 0s9.6-25.3 0-34.9c-38.6-38.6-101.1-38.6-139.7 0L81.3 238.5c-9.6 9.6-9.6 25.3 0 34.9l0 0z\"],\n \"trello\": [448, 512, [], \"f181\", \"M392.3 32L56.1 32c-31 0-56.1 25.1-56.1 56-.1 0 0-4 0 336 0 30.9 25.1 56 56 56l336.2 0c30.8-.2 55.7-25.2 55.7-56l0-336c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6l-82.7 0c-14.8 .1-26.9-11.8-27-26.6l0-254.2c0-14.8 12-26.9 26.9-26.9l82.9 0c14.8 0 26.9 12 26.9 26.9l0 254.2-.1 0zm193.1-112c0 14.8-12 26.9-26.9 26.9l-81 0c-14.8 0-26.9-12-26.9-26.9l0-142.1c0-14.8 12-26.9 26.8-26.9l81.1 0c14.8 0 26.9 12 26.9 26.9l0 142.1z\"],\n \"viadeo\": [448, 512, [], \"f2a9\", \"M276.4 150.5l0 .7c-17.9-52.6-42.6-103.4-70.8-151.2 43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280-65.7-11.4-111.3-68.6-111.3-137.4 0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.3 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"],\n \"searchengin\": [448, 512, [], \"f3eb\", \"M214.6 130.3l-67.2 28.2 0-115.3-54.7 190.3 54.7-24.2 0 130.3 67.2-209.3zM131.4 33.6l-1.3 4.7-15.2 52.9C74.6 106.7 46 145.8 46 191.5 46 243.8 80.3 287.4 129.4 297l0 53.6C51.5 340.1-6 272.4-6 191.6-6 111.1 53.8 44.4 131.4 33.6zM442.8 480.8c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1l0-52.1c83.2 5.1 148.8 74.5 148.8 159.3 0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"],\n \"paypal\": [384, 512, [], \"f1ed\", \"M111.9 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5l-74.6 0c-7.6 0-13.1-6.6-12.1-13.9L59.3 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4 .7-69.5-7-75.3 24.2zM357.6 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9l63.5 0c8.6 0 15.7-6.3 17.4-14.9 .7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"],\n \"square-bluesky\": [448, 512, [], \"e6a3\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 247.4c14.5-30 54-85.8 90.7-113.3 26.5-19.9 69.3-35.2 69.3 13.7 0 9.8-5.6 82.1-8.9 93.8-11.4 40.8-53 51.2-90 44.9 64.7 11 81.2 47.5 45.6 84-67.5 69.3-97-17.4-104.6-39.6l-.3-.9c-.9-2.6-1.4-4.1-1.8-4.1s-.9 1.5-1.8 4.1c-.1 .3-.2 .6-.3 .9-7.6 22.2-37.1 108.8-104.6 39.6-35.5-36.5-19.1-73 45.6-84-37 6.3-78.6-4.1-90-44.9-3.3-11.7-8.9-84-8.9-93.8 0-48.9 42.9-33.5 69.3-13.7 36.7 27.5 76.2 83.4 90.7 113.3z\"],\n \"d-and-d-beyond\": [640, 512, [], \"f6ca\", \"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9 .2-5.8 1.6-7.5 .6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9 .6-.3 1.3 0 .6 1.9-.2 .6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3 .1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9 .9 7.5 .2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1 .6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6 .7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4 .2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5 .5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2 0 77.2-7.4 8.2c10.4 .8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6l0-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6 .5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9 .5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8 .5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6 .3 3 .6 4.3 1.1-2.1 .8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2 .8 .2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8 .6-2.6-.2s.3-4.3 .3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3 .6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7 .2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7 .6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8 .8-1.4 1.8-2.1 2.6l0 15.7c3.5 2.6 7.1-2.9 3-7.2 1.5 .3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9 .3 5.6 1.1l0-18.4c-1.1 .5-2.2 1-2.7 1.4l-.7 .7zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25l-56.1 0 8.3 8.6 0 29.5-11.3 0 11.4 14.6 0 32.3-8.4 8.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zM38.6 278.4c20 0 29.6-.8 29.6 9.1l0 3c0 12.1-19 8.8-29.6 8.8l0-20.9zm0 59.2l0-22.6c12.2 0 32.7-2.3 32.7 8.8l0 4.5 .2 0c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1 .2 0-.2 14.1-21.2-37.2 0 0-14.9 52.4 0-14.1-21 0-.2-73.5 .2 7.4 8.2 0 77.1-7.4 8.2 81.2 0 14.1-21.2-60.1 .2 0-15.4zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3 .3-99.3zm-.3 77.5c-37.4 0-36.9-55.3 .2-55.3 36.8 .1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2-41.7 0 6.1 7.2-20.5 37.2-.3 0-21-37.2 6.4-7.2-44.9 0 44.1 65.8 .2 19.4-7.7 8.2 42.6 0-7.2-8.2-.2-19zM234.5 176.1c1.6 1.3 2.9 2.4 2.9 6.6l0 38.8c0 4.2-.8 5.3-2.7 6.4-.1 .1-7.5 4.5-7.9 4.6l35.1 0c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5 .8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6 .3-39.9-4 .1 .8 .5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3l0-34.6zm228.9 79.6l7 8.3 0 42.5-.3 0c-5.4-14.4-42.3-41.5-45.2-50.9l-31.6 0 7.4 8.5 0 76.9-7.2 8.3 39 0-7.4-8.2 0-47.4 .3 0c3.7 10.6 44.5 42.9 48.5 55.6l21.3 0 0-85.2 7.4-8.3-39.2-.1zM378.2 165.1c-32.2 0-32.8 .2-39.9-4 .1 .7 .5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6 .3-4 1.1-6.1 2.9 .1 0 2.1-1.1 7.5-.3l0-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3l.3 0c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"],\n \"microsoft\": [448, 512, [], \"f3ca\", \"M0 32l214.6 0 0 214.6-214.6 0 0-214.6zm233.4 0l214.6 0 0 214.6-214.6 0 0-214.6zM0 265.4l214.6 0 0 214.6-214.6 0 0-214.6zm233.4 0l214.6 0 0 214.6-214.6 0 0-214.6z\"],\n \"fly\": [320, 512, [], \"f417\", \"M165.9 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9 .3 6.7 2.8zM300 67.3c-16.3-25.7-38.6-40.6-63.3-52.1-25.5-10.7-54.6-15.4-76.6-15.2-44.1 0-71.2 13.2-81.1 17.3-53.6 27.9-84.4 69.9-82.9 141.3 7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3 .1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM154.9 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7l0 325.7zM296.8 180c-16.4 56.8-77.3 128-118.9 170.3 27.8-51.9 65.2-133.3 67.2-191.9 1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"],\n \"cc-stripe\": [576, 512, [], \"f1f5\", \"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7l36.7 0c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1l0-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5l0 33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zM191 224.5l-27 0 0 50.5c0 20.9 22.5 14.4 27 12.6l0 28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4 0 30.8 26.9 0 0 30.3zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4l0 84.4-35.5 0 0-124.5 30.7 0 2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5l.1 0 0 32.7zm44.1 91.8l-35.7 0 0-124.5 35.7 0 0 124.5zm0-142.9l-35.7 7.6 0-28.9 35.7-7.6 0 28.9zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5 0-165.8 31.3 0 1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5l-69.5 0c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9l0 28.6c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"],\n \"wordpress-simple\": [512, 512, [], \"f411\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM33 256c0-32.3 6.9-63 19.3-90.7L158.7 456.7C84.3 420.5 33 344.2 33 256zM256 479c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2-48.8 146.3-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3 39.9-60.5 108.4-100.5 186.3-100.5 58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"],\n \"sellsy\": [640, 512, [], \"f213\", \"M540 237.3c3.1-12.3 4.3-24.8 4.3-37.4 0-92.5-75.4-167.9-167.9-167.9-77.2 0-144.6 53-163 127.8-15.3-13.2-34.9-20.5-55.2-20.5-46.3 0-84 37.7-84 84 0 7.4 .9 15 3.1 22.4-42.9 20.2-70.8 63.7-70.8 111.2 0 68 55.5 123.2 123.2 123.2l381.2 0c67.7 0 123.2-55.2 123.2-123.2 0-56.4-38.9-106-94.1-119.5zM200.2 401.6c0 8.3-7 15.3-15.3 15.3l-30.9 0c-8.3 0-15.3-7-15.3-15.3l0-110.9c0-8.3 7-15.3 15.3-15.3l30.9 0c8.3 0 15.3 7 15.3 15.3l0 110.9zm89.5 0c0 8.3-7 15.3-15.3 15.3l-30.9 0c-8.3 0-15.3-7-15.3-15.3l0-131.5c0-8.3 7-15.3 15.3-15.3l30.9 0c8.3 0 15.3 7 15.3 15.3l0 131.5zm89.5 0c0 8.3-7 15.3-15.3 15.3l-31 0c-8.3 0-15.3-7-15.3-15.3l0-162.7c0-8.3 7-15.3 15.3-15.3l31 0c8.3 0 15.3 7 15.3 15.3l0 162.7zm87 0c0 8.3-7 15.3-15.3 15.3l-28.5 0c-8.3 0-15.3-7-15.3-15.3l0-224.6c0-8.6 7-15.6 15.3-15.6l28.5 0c8.3 0 15.3 7 15.3 15.6l0 224.6z\"],\n \"dashcube\": [448, 512, [], \"f210\", \"M326.9 104l-216.2 0c-51.1 0-91.2 43.3-91.2 93.5l0 229.5c0 50.5 40.1 85 91.2 85l227.2 0c51.1 0 91.2-34.5 91.2-85l0-427-102.2 104zM154.2 416.5c-17.7 0-32.4-15.1-32.4-32.8l0-142.9c0-17.7 14.7-32.5 32.4-32.5l140.7 0c17.7 0 32 14.8 32 32.5l0 123.5 51.1 52.3-223.8 0 0-.1z\"],\n \"gitter\": [384, 512, [], \"f426\", \"M66.4 322.5l-50.4 0 0-322.5 50.4 0 0 322.5zM166.9 76.1l-50.4 0 0 435.9 50.4 0 0-435.9zm100.6 0l-50.4 0 0 435.9 50.4 0 0-435.9zM368 76l-50.4 0 0 247 50.4 0 0-247z\"],\n \"wolf-pack-battalion\": [448, 512, [], \"f514\", \"M236.2 471.5l10.6 15.8 5.3-12.3 5.3 7 0 29.9c21.1-7.9 21.1-66.9 25.5-97.2 4.6-31.9-.9-92.8 81.4-149.1-8.9-23.6-12-49.4-2.6-80 27.9 3.4 53.9 10.6 63.3 54.1l-30.3 8.4c11.1 23 17 46.8 13.2 72.1l-27.3-7-6.2 33.4-18.5-7-8.8 33.4-19.4-7 26.4 21.1 8.8-28.2 24.6 5.2 7-35.6 26.4 14.5c.2-20 7-58.1-8.8-84.5l26.4 5.3c4-22.1-2.4-39.2-7.9-56.7l22.4 9.7c-.4-25.1-29.9-56.8-61.6-58.5-20.2-1.1-56.7-25.2-54.1-51.9 2-19.9 17.4-42.6 43.1-49.7-44 36.5-9.7 67.3 5.3 73.5 4.4-11.4 17.5-69.1 0-130.2-40.4 22.9-89.7 65.1-93.2 147.8l-58 38.7-3.5 93.2 107.3-59.8 7 7-17.6 3.5-44 38.7-15.8-5.3-28.1 49.3-3.5 119.6 21.1 15.8-32.5 15.8-32.6-15.8 21.1-15.8-3.5-119.6-28.2-49.3-15.8 5.3-44-38.7-17.6-3.5 7-7 107.3 59.8-3.5-93.3-58.1-38.7c-3.5-82.8-52.7-125-93.2-147.9-17.5 61.1-4.4 118.8 0 130.2 15-6.2 49.3-37 5.3-73.5 25.7 7.1 41.1 29.8 43.1 49.7 2.6 26.7-33.9 50.8-54.1 51.9-31.7 1.7-61.2 33.4-61.6 58.5l22.4-9.7C13.4 224.7 7 241.8 11 263.9l26.4-5.3c-15.8 26.4-9.1 64.4-8.8 84.4l26.4-14.5 7 35.6 24.6-5.3 8.8 28.2 26.4-21.1-19.4 7-8.8-33.4-18.5 7-6.2-33.4-27.3 7C38 294.8 43.8 271 55 248l-30.3-8.4c9.4-43.5 35.5-50.8 63.3-54.1 9.4 30.6 6.2 56.5-2.6 80.1 82.3 56.3 76.8 117.2 81.4 149.1 4.4 30.3 4.4 89.3 25.5 97.2l0-29.8 5.3-7 5.3 12.3 10.6-15.8 11.4 21.1 11.4-21.1 0 0zm79.2-95L299.5 366c7.5-4.4 13.8-8.4 19.4-12.3-.6 7.2-.3 13.8-3.5 22.8l0 0zm28.2-49.3c-.4 10.9-.9 21.7-1.8 31.7-7.8-1.9-15.6-3.8-21.1-7 8.2-7.9 15.6-16.3 22.9-24.7l0 0zm24.6 5.3c0-13.4-2.1-24.2-5.3-33.4-5.5 9.5-11.7 18.6-18.5 27.3l23.8 6.2zm3.5-80.9c19.4 12.8 27.8 33.7 29.9 56.3-12.3-4.5-24.6-9.3-37-10.6 5.1-12 6.6-28.1 7-45.7l0 0zm-1.8-45.7c.8 14.3 1.8 28.8 1.8 42.2 19.2-8.1 29.8-9.7 44-14.1-10.6-19-27.2-25.5-45.8-28.2l0 0zM134.2 376.5L150 366c-7.5-4.4-13.8-8.4-19.4-12.3 .6 7.3 .3 13.9 3.5 22.9l0 0zM106 327.3c.4 10.9 .9 21.7 1.8 31.7 7.8-1.9 15.6-3.8 21.1-7-8.2-7.9-15.6-16.3-22.9-24.7zm-24.6 5.3c0-13.4 2-24.2 5.3-33.4 5.5 9.5 11.7 18.6 18.5 27.3l-23.8 6.2zm-3.5-80.9c-19.4 12.8-27.8 33.7-29.9 56.3 12.3-4.5 24.6-9.3 37-10.6-5-12-6.6-28.1-7-45.7l-.1 0zm1.8-45.7c-.8 14.3-1.8 28.8-1.8 42.2-19.2-8.1-29.8-9.7-44-14.1 10.6-19 27.2-25.5 45.8-28.1z\"],\n \"lastfm\": [512, 512, [], \"f202\", \"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163-86.1 0-131.8 54.5-131.8 147.2 0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"],\n \"shopware\": [512, 512, [], \"f5b5\", \"M403.5 455.4c-42.6 31.7-94.4 48.7-147.5 48.6-137.2 0-248-111-248-248 0-137.2 111-248 248-248 61.2-.1 120.2 22.6 165.7 63.5 .6 .5 .9 1.2 1.1 1.9s.1 1.5-.3 2.2-.8 1.3-1.5 1.6-1.4 .5-2.2 .4c-18.8-2.5-37.7-3.7-56.7-3.7-129.4 0-222.4 53.5-222.4 155.4 0 109 92.1 145.9 176.8 178.7 33.6 13 65.4 25.4 87 41.6 .4 .3 .8 .8 1.1 1.3s.4 1 .4 1.6-.1 1.1-.4 1.6-.6 .9-1.1 1.3l-.1 0zM503 233.1c-.1-.9-.5-1.8-1.3-2.4-51.8-43-93.6-60.5-144.5-60.5-84.1 0-80.3 52.2-80.3 53.6 0 42.6 52.1 62 112.3 84.5 31.1 11.6 63.2 23.6 92.7 39.9 .4 .2 .9 .4 1.4 .4s1 0 1.5-.2 .9-.4 1.3-.8 .6-.8 .8-1.2c14.1-36 19.5-74.8 16-113.3z\"],\n \"blogger\": [448, 512, [], \"f37c\", \"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1 .1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4 .1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8 .2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9 .7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zM447.2 420.6c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22S0 420.3 0 256.3c0-163.1 0-166.6 1.8-173.7 6.3-24.7 25.9-43.6 51.2-49.2 7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6 .2 115.8 0 164.5-.7 170.5zM361.8 235.4c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5 .4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7 .5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"],\n \"edge\": [512, 512, [], \"f282\", \"M120.1 37.4c41-25.2 87.6-38.2 134.9-37.4 168 0 257 123.8 257 219.5-.1 32.7-13 63.9-35.9 87.2-22.9 23.2-54 36.5-86.7 37-75.2 0-91.5-23.1-91.5-32 0-3.8 1.2-6.2 4.8-9.4l1-1.2 .4-1.6c10.5-11.5 15.9-26.2 15.9-41.6 0-78.7-82.2-142.7-184-142.7-37.5-.3-74.5 8.9-107.5 26.9 27-57.5 82.7-97.6 91.3-103.8 .8-.6 .3-.8 .3-.8zm15.6 318.1c-1.4 30 4.6 60 16.4 87.2 13.6 26.4 32.7 51 56.5 69.3-59.5-11.5-111.5-43.9-149.4-89.3-38.1-46.4-59.2-104.3-59.2-164.8 0-51.2 62.4-94.4 136-94.4 36.6-.6 72.4 10.9 101.8 32.7l-3.6 1.2c-51.5 17.6-98.5 90.7-98.5 158.1zM469.8 400l-.7 .1c-11.8 18.8-25.9 35.1-42.2 49.5-30.8 28-68.1 45.5-108.8 49.9-18.6 .3-36.8-3.2-53.8-11.4-25.6-10.3-47.1-30-61.6-53-14.4-23.9-21.1-51.7-19-79.6-.6-20.1 5.4-40.3 15-58.2 13.9 33.1 37.5 61.3 67.6 80.8s65.5 29.5 101.4 28.6c31 .3 62.1-6.7 90.2-20.5l1.9-.9c3.9-2.3 7.7-3.9 11.6 0 4.5 4.9 1.8 9.2-1.2 14-.2 .2-.3 .5-.4 .7z\"],\n \"ioxhost\": [640, 512, [], \"f208\", \"M616 160l-67.3 0C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256 72 272.4 73.6 288.5 76.7 304L24 304c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24l67.3 0c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48l52.7 0c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104L424 352c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24l-298.2 0c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104L216 160c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24l298.2 0c3.8 15.4 5.8 31.4 5.8 48zM216 232l208 0c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"],\n \"schlix\": [448, 512, [], \"f3ea\", \"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1 17.2 28.4-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zM82.4 133.2l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7-24.8 15.2zM28.4 223.1l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268L20.6 257.8 21 296 0 304.8 1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8 27.4-14.4 8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zM152.5 187.9l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"],\n \"d-and-d\": [576, 512, [], \"f38d\", \"M82.9 98.9c-.6-17.2 2-33.8 12.7-48.2 .3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1 .7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5 .6-11.4 12.5-14.1 27.4-10.9 43.6 .2 1.3 .4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6 .1 .5 .1 1.1 .1 1.6 0 .3-.1 .5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zM552.5 222.1c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5 .9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5l-2.5 0c-.6 0-1.2 .2-1.9 .3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3 .3 .3 .7 .6 1 .9 .3-.6 .5-1.2 .9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8 .7-3.5 .9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3 .4-.4 .9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6 .2-.1 .3-.2 .4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3l0-.5c-.5-.4-1.2-.8-1.7-1.4zM317.1 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8 .9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9 .8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7 .3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3 .2-.2 .4-.3 .6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8 .6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1 .1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8 .4 4.7 .8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1 .7-52.3 .3 2.2 .4 4.3 .9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8 .1-50.9-10.6 .7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.8 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6 .2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3 .8-2.4 2.3-4.6 4-6.6 .6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2 .5-1 1.1-2 1.9-3.3 .5 4.2 .6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1 .6 .5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7 .4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6 .5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2 .4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3 .3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5 .8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8 .8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3 .6-4.5 .8-9.2 .1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6 .1-23.3 1.3-.9 .1-1.7 .3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"],\n \"vuejs\": [448, 512, [], \"f41f\", \"M356.9 64.3l-76.9 0-56 88.6-48-88.6-176 0 224 383.7 224-383.7-91.1 0zM55.7 96.3l53.8 0 114.5 198.2 114.4-198.2 53.8 0-168.2 288.2-168.3-288.2z\"],\n \"meta\": [640, 512, [], \"e49b\", \"M640 317.9c0 91.3-39.4 148.5-110.3 148.5-62.6 0-95.8-34.6-156.9-136.6l-31.4-52.6c-8.3-12.5-14.5-24.2-21.2-35-20.1 33.8-47.1 83-47.1 83-67 116.6-104.6 141.2-156.9 141.2-72.8 0-116.2-57.3-116.2-145.9 0-143 79.8-278.1 183.9-278.1 50.2 0 93.8 24.7 144.8 89.5 37.1-50.1 78.1-89.5 130.6-89.5 99.1 0 180.7 125.7 180.7 275.5zM287.4 192.2c-42.9-62.1-70.9-80.5-104.4-80.5-61.9 0-113.8 106.1-113.8 210 0 48.5 18.5 75.7 49.6 75.7 30.2 0 49-19 103.2-103.8 0 0 24.7-39.1 65.4-101.4zM531.2 397.4c32.2 0 46.9-27.5 46.9-74.9 0-124.2-54.3-225.4-123.2-225.4-33.2 0-61.1 25.9-94.9 78 9.4 13.8 19.1 29 29.3 45.4l37.5 62.4c58.7 94.1 73.5 114.5 104.4 114.5z\"],\n \"creative-commons-share\": [512, 512, [], \"f4f2\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7l0 182.5c0 7.7-6.1 13.7-13.7 13.7l-135.1 0c-7.7 0-13.7-6-13.7-13.7l0-54-54 0c-7.8 0-13.7-6-13.7-13.7l0-182.5c0-8.2 6.6-12.7 12.4-13.7l136.4 0c7.7 0 13.7 6 13.7 13.7l0 54 54 0zM167.9 300.3l40.7 0 0-101.4c0-7.4 5.8-12.6 12-13.7l55.8 0 0-40.3-108.5 0 0 155.4zm176.2-88.1l-108.5 0 0 155.4 108.5 0 0-155.4z\"],\n \"studiovinari\": [512, 512, [], \"f3f8\", \"M480.7 187.7l4.2 28 0 28-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6 20.3 .7 20.3 .7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9 114.9 18.1-101.3-108 252.9 126.6-31.5-38 124.4 74.4-143.3-99 18.7 38.4-49.6-18.1-45.5-84.3 194.6 122-42.9-55.8 108 96.4 12-8.9-21-16.4 4.2-37.8 37.8-10.4 29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"],\n \"bitbucket\": [512, 512, [61810], \"f171\", \"M22.2 32c-2.1 0-4.2 .4-6.1 1.1s-3.7 1.9-5.2 3.4-2.7 3.2-3.5 5.1-1.3 4-1.3 6.1c0 .9 .1 1.9 .2 2.8L74.1 462.7c.8 5.1 3.4 9.7 7.3 13s8.8 5.2 14 5.2l325.7 0c3.8 .1 7.5-1.3 10.5-3.7s4.9-5.9 5.5-9.7L505 50.7c.7-4.2-.3-8.4-2.8-11.9s-6.2-5.7-10.4-6.4c-.9-.1-1.9-.2-2.8-.2L22.2 32zM308.1 329.8l-104 0-28.1-147 157.3 0-25.2 147z\"],\n \"vk\": [448, 512, [], \"f189\", \"M31.5 63.5C0 95 0 145.7 0 247L0 265C0 366.3 0 417 31.5 448.5S113.7 480 215 480l17.9 0c101.4 0 152.1 0 183.5-31.5S448 366.3 448 265l0-17.9c0-101.4 0-152.1-31.5-183.5S334.3 32 233 32L215 32C113.7 32 63 32 31.5 63.5zM75.6 168.3l51.1 0c1.7 85.5 39.4 121.7 69.3 129.2l0-129.2 48.2 0 0 73.7c29.5-3.2 60.5-36.8 70.9-73.7l48.2 0c-3.9 19.2-11.8 37.3-23.1 53.3s-25.7 29.5-42.5 39.6c18.7 9.3 35.2 22.4 48.4 38.5s22.9 34.9 28.3 55l-53 0c-4.9-17.5-14.8-33.1-28.6-45s-30.7-19.4-48.7-21.6l0 66.6-5.8 0c-102.1 0-160.3-70-162.8-186.5z\"],\n \"github\": [512, 512, [], \"f09b\", \"M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM252.8 8c-138.7 0-244.8 105.3-244.8 244 0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1 100-33.2 167.8-128.1 167.8-239 0-138.7-112.5-244-251.2-244zM105.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"],\n \"codiepie\": [512, 512, [], \"f284\", \"M442.5 202.9c30.7 0 33.5 53.1-.3 53.1l-10.8 0 0 44.3-26.6 0 0-97.4 37.7 0zM492 352.6C449.9 444.5 370.4 504 268 504 131 504 20 393 20 256S131 8 268 8c97.4 0 172.8 53.7 218.2 138.4L300.2 255.2 492 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6C406.5 73.9 342.5 36.5 268 36.5 146.8 36.5 48.5 134.8 48.5 256S146.8 475.5 268 475.5c78.6 0 146.5-42.1 185.5-110.4z\"],\n \"pied-piper\": [448, 512, [], \"f2ae\", \"M440.2 23.2c-26.7 6.8-68.1 28.5-114.6 67.5-30.9-17.5-65.8-26.7-101.4-26.7-114.9 0-208 93.1-208 208s93.1 208 208 208 208-93.1 208-208c.1-54.1-21-106.1-58.7-144.8-6.6 8.5-12.3 17.7-17 27.4 28.9 32.3 44.8 74.1 44.9 117.4 0 97.7-79.4 177.1-177.1 177.1-30.8 0-61-8.1-87.6-23.4 82.9-107.3 150.8-37.8 184.3-226.6 5.8-32.6 28-94.3 126.2-160.2 8.1-5.4 2.4-18.1-7-15.7zM109.3 406.4C89.8 389.8 74.2 369.2 63.5 346s-16.3-48.5-16.3-74c0-97.7 79.4-177.1 177.1-177.1 26.6 0 52.8 6.1 76.6 17.8-66 62.1-126.9 152.9-191.6 293.8z\"],\n \"raspberry-pi\": [448, 512, [], \"f7bb\", \"M392.5 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2 .7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6 .8-11.3-3.6-13.9 1.3-19.4 3.4-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9 .1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6 .1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8-17.3-2-22.7 10-16.5 21.2-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2 20.3 20.6 42.3 28.4 64.3 28.4l1 0c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80 59.8-5.6 78.8 22.8 14.6 64.2-9.9 80zM259.4 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7 .8 14.1 .6 23.9 .8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8 .4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2 .1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7 .9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6 .9 2.7 3.6 4.4 6.7 5.8-15.4 .9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zM225 143.9c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zM102 131.1c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8 .7 8.3 .1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6 .4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3 .4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6 .2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM58.7 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zM123.3 320.5c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM225.5 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9 .5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54s-59.2-23.8-59.4-53.4l0-.6c-.2-29.7 26.2-53.8 58.8-54s59.2 23.8 59.4 53.4l0 .6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"],\n \"css3\": [512, 512, [], \"f13c\", \"M480 32l-64 368-223.3 80-192.7-80 19.6-94.8 82 0-8 40.6 116.4 44.4 134.1-44.4 18.8-97.1-333.4 0 16-82 333.7 0 10.5-52.7-333.4 0 16.3-82 407.4 0z\"],\n \"hubspot\": [448, 512, [], \"f3b2\", \"M235.8 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L171.5 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8s-11.8 17.8-11.8 28.6 4.2 20.9 11.8 28.5 17.8 11.6 28.5 11.6c10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7l0-61.6c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S279.6 47 279.6 73.1c0 19.1 10.7 35.5 28.2 42.9l0 61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8 0-28.8-23.5-52.2-52.4-52.2-28.8 0-52.2 23.4-52.2 52.2 0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6L235.8 211.6zm89.5 25.6a69 69 0 1 1 0 138 69 69 0 1 1 0-138z\"],\n \"cmplid\": [640, 512, [], \"e360\", \"M226.1 388.2c0-.7-.2-1.5-.6-2.1s-1-1.1-1.7-1.4c-.5-.2-1.1-.4-1.6-.4l-149.6 0c-3.1 0-6.2-.8-8.9-2.2s-5.1-3.5-6.9-6.1-2.9-5.5-3.3-8.6 0-6.2 1.1-9.1L81.6 255.7c2-7.2 6.2-13.5 12-18.2s12.9-7.4 20.4-7.8l148.6 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6l10.8-41.1c.4-1 .3-2-.1-2.9s-1.2-1.6-2.1-2c-.4-.2-.9-.3-1.4-.3-.1 0-.1 0-.2 0l-148.5 0c-22.2 1.2-43.4 9.2-60.8 23s-30 32.7-36.2 54.1L3.5 358.8c-3.2 8.7-4.2 18-3 27.1s4.6 17.9 9.9 25.5 12.3 13.8 20.5 18 17.3 6.5 26.5 6.6c1 0 1.9 0 2.9-.1l148.6 0c1.5-.1 2.9-.7 4-1.6s2-2.2 2.4-3.6l10.7-41.1c.2-.5 .3-.9 .3-1.4zm80.5-307c.2-.4 .3-.9 .3-1.4 0-.5-.1-1-.3-1.5s-.5-.9-.8-1.2-.8-.6-1.2-.8-1-.3-1.5-.3l-41.2 0c-1.5 .1-2.9 .6-4 1.6s-2 2.2-2.4 3.6l-21.3 80.9 51.1 0 21.4-80.9zm-126.3 287l51.1 0 32-122.6-51.1 0-32 122.6zM511.9 79.7c0-1-.5-1.9-1.2-2.6s-1.7-1.1-2.6-1.1c-.1 0-.1 0-.2 0l-41 0c-1.5 .1-2.9 .6-4.1 1.5s-2 2.2-2.5 3.6L368.9 430.6c-.2 .4-.3 .9-.3 1.3 0 1 .4 2 1.1 2.7s1.7 1.1 2.7 1.1l41.2 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6L511.5 81.2c.2-.5 .3-1 .3-1.5zM324.6 384.5l-41 0c-1.5 .1-2.9 .7-4 1.6s-2 2.2-2.4 3.6l-10.7 41.1c-.2 .4-.3 .9-.3 1.4 0 .5 .1 1 .3 1.5s.5 .9 .8 1.2 .8 .6 1.2 .8 1 .3 1.5 .3c.1 0 .2 0 .3 0l40.9 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6l10.8-41.1c.2-.6 .3-1.2 .3-1.8s-.3-1.2-.6-1.7-.8-.9-1.3-1.2-1.2-.4-1.8-.4c-.1 0-.2 0-.3 0l0 0zM636 76.1l-41 0c-1.5 .1-2.9 .6-4 1.5s-2 2.2-2.4 3.6L497.1 430.6c-.2 .4-.2 .9-.2 1.3 0 1 .4 2 1.1 2.7s1.7 1.1 2.7 1.1l41.1 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6L639.7 81.2c.2-.5 .3-1 .3-1.5-.1-1-.5-1.9-1.2-2.5s-1.6-1-2.6-1c-.1 0-.1 0-.2 0l0-.1zM371.6 225.2l10.8-41.1c.2-.4 .2-.9 .2-1.4 0-1-.4-2-1.1-2.7s-1.7-1.1-2.7-1.1l-41.3 0c-1.5 .1-2.9 .7-4 1.6s-2 2.2-2.4 3.6l-10.8 41.1c-.2 .5-.3 1-.3 1.5l0 .2c.1 1 .5 1.8 1.2 2.5s1.6 1 2.6 1c.1 0 .2 0 .3 0l41.1 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6z\"],\n \"dyalog\": [448, 512, [], \"f399\", \"M16 32l0 119.2 64 0 0-55.2 107.2 0C300.6 96 368 176.2 368 255.9 368 332 309.4 416 187.2 416l-171.2 0 0 64 171.2 0C347.9 480 432 367.3 432 255.9 432 197.2 409.9 142.5 369.7 101.6 324.9 56 261.7 32 187.2 32L16 32z\"],\n \"elementor\": [512, 512, [], \"f430\", \"M.5 256c0 141 113.6 255 254.6 255 142 0 256-114 256-255 0-140-114-253.9-256-253.9-141 0-254.6 113.9-254.6 253.9zM192.1 150l0 213-43 0 0-213 43 0zm42 0l128 0 0 43-128 0 0-43zm128 85l0 43-128 0 0-43 128 0zm-128 85l128 0 0 43-128 0 0-43z\"],\n \"first-order\": [448, 512, [], \"f2b0\", \"M13.3 229.2c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4l-.2 0zM224.4 96.6c-7.1 0-14.6 .6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3L149 306.9 98.1 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9l-29.4-61.3 44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9l-22.3 64.3 4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.8 128L443.8 384 224.4 512 5 384 5 128 224.4 0 443.8 128zm-17.1 10.3l-202.3-117.4-202.3 117.4 0 235.1 202.3 117.7 202.3-117.7 0-235.1zM224.4 37.1l187.7 109.4 0 218.9-187.7 109.5-187.7-109.5 0-218.8 187.7-109.5zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"],\n \"dribbble\": [512, 512, [], \"f17d\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM420 122.4c29.5 36 47.4 82 47.8 132-7-1.5-77-15.7-147.5-6.8-5.8-14-11.2-26.4-18.6-41.6 78.3-32 113.8-77.5 118.3-83.5zM396.4 97.9c-3.8 5.4-35.7 48.3-111 76.5-34.7-63.8-73.2-116.2-79-124 67.2-16.2 138 1.3 190.1 47.5zM165.9 64.6c5.6 7.7 43.4 60.1 78.5 122.5-99.1 26.3-186.4 25.9-195.8 25.8 13.7-65.7 58-120.4 117.3-148.3zM44.2 256.3c0-2.2 0-4.3 .1-6.5 9.3 .2 111.9 1.5 217.7-30.1 6.1 11.9 11.9 23.9 17.2 35.9-76.6 21.6-146.2 83.5-180.5 142.3-33.8-37.6-54.5-87.2-54.5-141.6zM126 423.4c22.1-45.2 82.2-103.6 167.6-132.8 29.7 77.3 42 142.1 45.2 160.6-68.1 29-150 21.1-212.8-27.9zm248.4 8.5c-2.2-12.9-13.4-74.9-41.2-151 66.4-10.6 124.7 6.8 131.9 9.1-9.4 58.9-43.3 109.8-90.8 142z\"],\n \"linkedin\": [448, 512, [], \"f08c\", \"M416 32L31.9 32C14.3 32 0 46.5 0 64.3L0 447.7C0 465.5 14.3 480 31.9 480L416 480c17.6 0 32-14.5 32-32.3l0-383.4C448 46.5 433.6 32 416 32zM135.4 416l-66.4 0 0-213.8 66.5 0 0 213.8-.1 0zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77zM384.3 416l-66.4 0 0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2z\"],\n \"cc-paypal\": [576, 512, [], \"f1f4\", \"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7l-4.7 0c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0l-4.5 0c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28l-40 0c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4l19 0c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.2 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM253 322.1l63.7-92.6c.5-.5 .5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5l-19.2 0c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4l-18.7 0c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2l19.2 0c1.8-.1 3.5-1.1 4.5-2.6zM412.3 215.4c0-21-16.2-28-34.7-28l-39.7 0c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4l20.5 0c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.3 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM544 190.9c0-2-1.5-3.5-3.2-3.5l-18.5 0c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3 .5c0 1.8 1.5 3.5 3.5 3.5l16.5 0c2.5 0 5-2.9 5.2-5.7l16.2-101.2 0-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5 .1-9.8-6.9-15.5-16.2-15.5z\"],\n \"dhl\": [640, 512, [], \"f790\", \"M238 301.2l58.7 0 22.3-30.2-58.7 0-22.3 30.2zM0 282.9l0 6.4 81.8 0 4.7-6.4-86.5 0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1s2.8-5.9-2.8-5.9l-51 0-41.1 55.8 100.1 0c33.1 0 51.5-22.5 57.2-30.3l-68.2 0zm317.5-6.9l39.3-53.4-62.2 0-39.3 53.4 62.2 0zM95.3 271l-95.3 0 0 6.4 90.6 0 4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5l45.6 0s7.3-10 13.5-18.4c8.4-11.4 .7-35-29.2-35l-117.9 0-20.4 27.8 111.4 0c5.6 0 5.5 2.2 2.7 5.9zM0 301.2l73.1 0 4.7-6.4-77.8 0 0 6.4zm323 0l58.7 0 22.3-30.2-58.7 0c-.1 0-22.3 30.2-22.3 30.2zm222 .1l95 0 0-6.4-90.3 0-4.7 6.4zM567.3 271l-4.7 6.4 77.4 0 0-6.4-72.7 0zm-13.5 18.3l86.2 0 0-6.4-81.5 0-4.7 6.4zM389.6 210.7l-22.5 30.6-26.2 0 22.5-30.6-58.7 0-39.3 53.4 143.6 0 39.3-53.4-58.7 0zM423.1 271s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6l94.3 0 22.3-30.3-133.4 0z\"],\n \"tex\": [640, 512, [], \"e7ff\", \"M620.8 95.4c-30.8 .4-42.1 16.6-47.7 24.5l-.1 .1-55.7 80.5 82.8 121.1c7.5 10.6 11.3 12.5 35.4 12.5l0 9.1c-9.1-.7-28-.7-37.7-.7-12.4 0-30.8 0-42.9 .7l0-9.1c13.2-.8 16.6-7.3 16.6-10.2 0-1.1 0-2.3-3-6.4l-65.5-96.3-60.2 87.9c-1.9 2.7-3.8 5.4-3.8 10.2 0 6.1 3.4 13.6 15 14.7l0 9.1c-9.4-.7-27.1-.7-37.2-.7l-2.8 0-11.7 82.6-195.9 0 0-9.1c26.7 0 30.9 0 30.9-16.9l0-203.2c0-16.9-4.3-16.9-30.9-16.9l0-10.3 19.8 0c-4.8-61.1-10.8-71.7-68-71.8l-20.7 0c-6.8 1.5-6.8 6.1-6.8 14.4l0 205c0 13.6 1.1 17.8 32.4 17.8l10.5 0 0 9.1-.4 0c-17.9-.3-36.7-.7-54.9-.7s-36.9 .3-54.8 .7l-.6 0 0-9.1 10.7 0c31.7 0 32.8-4.1 32.8-17.8l0-205c0-8.7 0-13.2-7.2-14.3l-20.8 0c-58.4 0-63.7 10.9-68.6 73.3l-6.8 0 6.3-83.3 217.5 0 6.1 81.8 164.1 0 9 83.3-6.8 0c-5.3-49.8-12.1-73-70.3-73l-51.5 0c-15 0-15.8 1.9-15.8 14.6l0 93.3 35.5 0c35.5 0 38.9-12.8 38.9-44l6 0 0 97.9-6 0c0-31.8-3.4-44.8-38.9-44.8l-35.5 0 0 105.2c0 13 .7 14.8 15.8 14.8l52.2 0c61.1 0 69.9-25.8 77.4-73.6-7.7 0-16.3 .2-22.2 .7l0-9.1c7.2 0 31.7-.4 47.8-23.8l65.5-95.7-72.7-106.7c-8.3-11.7-15.1-12.5-35.8-12.5l0-9.1c9.1 .7 27.9 .7 37.7 .7 12.4 0 30.8 0 42.9-.7l0 9.1c-12.5 .4-16.6 6.8-16.6 10.2 0 1.1 .4 2.3 3 6.4l55.7 81.6 49.7-72.1c2.7-3.7 4.5-6.8 4.5-11.3 0-6.1-3-13.6-15-14.8l0-9.1c9.4 .7 24.8 .7 37.2 .7 9 0 23.3 0 32-.7l0 9.1z\"],\n \"shopify\": [448, 512, [], \"e057\", \"M388.5 104.1c-.2-1.1-.7-2.1-1.5-2.8s-1.8-1.2-2.9-1.2c-2 0-37.2-.8-37.2-.8s-21.6-20.8-29.6-28.8l0 432.7 125.7-31.2s-54-365.5-54.4-367.9zM288.9 70.5c-1.9-6.1-4.3-11.9-7.2-17.6-10.4-20-26-30.9-44.4-30.9-1.3 0-2.7 .1-4 .4-.4-.8-1.2-1.2-1.6-2-8-8.8-18.4-12.8-30.8-12.4-24 .8-48 18-67.2 48.8-13.6 21.6-24 48.8-26.8 70.1-27.6 8.4-46.8 14.4-47.2 14.8-14 4.4-14.4 4.8-16 18-1.2 10-38 291.8-38 291.8l302.6 52.5 0-438.3c-1.5 .1-2.9 .2-4.4 .4 0 0-5.6 1.6-14.8 4.4zM233.6 87.7c-16 4.8-33.6 10.4-50.8 15.6 4.8-18.8 14.4-37.6 25.6-50 4.4-4.4 10.4-9.6 17.2-12.8 6.8 14.4 8.4 34 8 47.2zM200.8 24.4c5-.2 10 1.1 14.4 3.6-6.4 3.2-12.8 8.4-18.8 14.4-15.2 16.4-26.8 42-31.6 66.5-14.4 4.4-28.8 8.8-42 12.8 8.8-38.4 41.2-96.4 78-97.2zM154.4 244.6c1.6 25.6 69.2 31.2 73.2 91.7 2.8 47.6-25.2 80.1-65.6 82.5-48.8 3.2-75.6-25.6-75.6-25.6l10.4-44s26.8 20.4 48.4 18.8c14-.8 19.2-12.4 18.8-20.4-2-33.6-57.2-31.6-60.8-86.9-3.2-46.4 27.2-93.3 94.5-97.7 26-1.6 39.2 4.8 39.2 4.8l-15.2 57.6s-17.2-8-37.6-6.4c-29.6 2-30 20.8-29.6 25.6zM249.6 82.9c0-12-1.6-29.2-7.2-43.6 18.4 3.6 27.2 24 31.2 36.4-7.2 2-15.2 4.4-24 7.2z\"],\n \"square-reddit\": [448, 512, [\"reddit-square\"], \"f1a2\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM305.9 166.4c20.6 0 37.3-16.7 37.3-37.3s-16.7-37.3-37.3-37.3c-18 0-33.1 12.8-36.6 29.8-30.2 3.2-53.8 28.8-53.8 59.9l0 .2c-32.8 1.4-62.8 10.7-86.6 25.5-8.8-6.8-19.9-10.9-32-10.9-28.9 0-52.3 23.4-52.3 52.3 0 21 12.3 39 30.1 47.4 1.7 60.7 67.9 109.6 149.3 109.6s147.6-48.9 149.3-109.7c17.7-8.4 29.9-26.4 29.9-47.3 0-28.9-23.4-52.3-52.3-52.3-12 0-23 4-31.9 10.8-24-14.9-54.3-24.2-87.5-25.4l0-.1c0-22.2 16.5-40.7 37.9-43.7 3.9 16.5 18.7 28.7 36.3 28.7l.2-.2zM155 248.1c14.6 0 25.8 15.4 25 34.4s-11.8 25.9-26.5 25.9-27.5-7.7-26.6-26.7 13.5-33.5 28.1-33.5l0-.1zm166.4 33.5c.9 19-12 26.7-26.6 26.7s-25.6-6.9-26.5-25.9 10.3-34.4 25-34.4 27.3 14.6 28.1 33.5l0 .1zm-42.1 49.6c-9 21.5-30.3 36.7-55.1 36.7s-46.1-15.1-55.1-36.7c-1.1-2.6 .7-5.4 3.4-5.7 16.1-1.6 33.5-2.5 51.7-2.5s35.6 .9 51.7 2.5c2.7 .3 4.5 3.1 3.4 5.7z\"],\n \"creative-commons-nc\": [512, 512, [], \"f4e8\", \"M255.6 8C395.4 8 504 115.9 504 256 504 403.2 385.5 504 255.6 504 121.1 504 8 393.2 8 256 8 123.1 112.7 8 255.6 8zM63.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4l0 38.1-28.8 0 0-38.2c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM256.4 52.3C218 52.3 144 61 85.9 145.3l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3l0-38.1 28.8 0 0 38.1c22.7 1.2 43.4 8.9 62 23L303 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"],\n \"galactic-republic\": [512, 512, [], \"f50c\", \"M256 8a248 248 0 1 1 0 496 248 248 0 1 1 0-496zm0 16.5a231.5 231.5 0 1 0 0 462.9 231.5 231.5 0 1 0 0-462.9zm27.6 21.8l0 24.6c30.3 4.5 59 16.3 83.6 34.5l17.4-17.4c-28.7-22.1-63.3-36.9-101-41.8zm-55.4 .1c-37.6 4.9-72.2 19.8-100.9 41.9l17.3 17.4 .1 0c24.1-17.8 52.6-30.1 83.5-34.7l0-24.5zm12.2 50.2l0 82.9c-10 2-19.4 5.9-27.7 11.4l-58.6-58.6-21.9 21.9 58.7 58.7c-5.5 8.2-9.4 17.6-11.5 27.6l-82.9 0 0 31 82.9 0c2 10 6 19.3 11.5 27.5l-58.7 58.7 21.9 21.9 58.6-58.6c8.4 5.6 17.8 9.5 27.7 11.5l0 82.9 31 0 0-82.9c10-2 19.4-6.1 27.6-11.5l58.7 58.7 21.9-21.9-58.7-58.7c5.5-8.2 9.5-17.5 11.5-27.5l82.9 0 0-31-82.9 0c-2-10-6-19.4-11.5-27.6l58.7-58.7-21.9-21.9-58.7 58.7c-8.2-5.5-17.6-9.5-27.6-11.5l0-82.9-31 0zm183.2 30.7l-17.4 17.4c18.3 24.6 30.2 53.4 34.7 83.7l24.6 0c-5-37.7-19.8-72.3-41.9-101zm-335.6 .1c-22.1 28.7-36.9 63.3-41.8 100.9l24.6 0c4.6-31 16.8-59.4 34.6-83.5L88.2 127.4zM46.3 283.7c4.9 37.6 19.7 72.2 41.8 100.9l17.4-17.4C87.7 343.1 75.6 314.6 71 283.7l-24.6 0 0 0zm394.7 0c-4.6 31-16.8 59.5-34.7 83.6l17.4 17.4c22.1-28.7 37-63.3 41.9-101l-24.6 0zM144.7 406.4l-17.4 17.4c28.7 22.1 63.3 37 101 41.9l0-24.6c-31-4.6-59.5-16.8-83.6-34.6zm222.5 0c-24.1 17.8-52.6 30.1-83.6 34.7l0 24.6c37.7-4.9 72.2-19.8 101-41.8l-17.3-17.4-.1 0z\"],\n \"facebook\": [512, 512, [62000], \"f09a\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5l0-170.3-52.8 0 0-78.2 52.8 0 0-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4l0 70.8c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2l0 27.8 83.6 0-14.4 78.2-69.3 0 0 175.9C413.8 494.8 512 386.9 512 256z\"],\n \"gitlab\": [512, 512, [], \"f296\", \"M504 204.6l-.7-1.8-69.7-181.8c-1.4-3.6-3.9-6.6-7.2-8.6-2.4-1.6-5.1-2.5-8-2.8s-5.7 .1-8.4 1.1-5.1 2.7-7.1 4.8c-1.9 2.1-3.3 4.7-4.1 7.4l-47 144-190.5 0-47.1-144c-.8-2.8-2.2-5.3-4.1-7.4-2-2.1-4.4-3.7-7.1-4.8-2.6-1-5.5-1.4-8.4-1.1s-5.6 1.2-8 2.8c-3.2 2-5.8 5.1-7.2 8.6L9.8 202.8 9 204.6c-10 26.2-11.3 55-3.5 82 7.7 26.9 24 50.7 46.4 67.6l.3 .2 .6 .4 106 79.5c38.5 29.1 66.7 50.3 84.6 63.9 3.7 1.9 8.3 4.3 13 4.3s9.3-2.4 13-4.3c17.9-13.5 46.1-34.9 84.6-63.9l106.7-79.9 .3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z\"],\n \"qq\": [448, 512, [], \"f1d6\", \"M434.1 420.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.1 72.2-51 101.8 16.8 5.2 54.8 19.2 45.8 34.4-7.3 12.3-125.5 7.9-159.6 4-34.1 3.8-152.3 8.3-159.6-4-9-15.2 28.9-29.2 45.8-34.4-34.9-29.5-51.1-70.4-51.1-101.8 0 0-33.3 54.1-44.9 52.7-5.4-.6-12.4-29.6 9.3-99.7 10.3-33 22-60.5 40.1-105.8-3.1-116.9 45.2-215 160.3-215 113.7 0 163.2 96.1 160.3 215 18.1 45.2 29.9 72.9 40.1 105.8 21.8 70.1 14.7 99.1 9.3 99.7z\"],\n \"stripe\": [640, 512, [], \"f429\", \"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9l0-33.8c-5.7 2.3-33.7 10.5-33.7-15.7l0-63.2 33.7 0 0-37.8-33.7 0-.1-38.5zm89.1 51.6l-2.7-13.1-38.4 0 0 153.2 44.3 0 0-103.1c10.5-13.8 28.2-11.1 33.9-9.3l0-40.8c-6-2.1-26.7-6-37.1 13.1zM346.4 124l-44.6 9.5 0 36.2 44.6-9.5 0-36.2zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4l0-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2l0 40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5l0-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9l86.9 0c.2-2.3 .6-11.6 .6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4l-45.9 0zM439.2 180.2c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11-39.1 0 0 204.8 44.4-9.4 .1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6 .1-51.6-29.3-79.7-60.5-79.7zM428.6 302.7c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4 .1 23.9-10.9 41.8-27.4 41.8zM301.9 336.4l44.6 0 0-153.2-44.6 0 0 153.2z\"],\n \"dailymotion\": [448, 512, [], \"e052\", \"M298.9 267c-7.4-4.2-15.8-6.3-24.4-6.2-13.2 0-24.4 4.4-33.4 13.3s-13.6 20-13.6 33.4c0 14.1 4.4 25.6 13.3 34.6s20 13.4 33.4 13.4c13.7 0 25-4.6 34.1-13.8S322 321.1 322 307.5c0-8.2-2.1-16.3-6.1-23.5-4-7.1-9.8-13-17-17zM0 32l0 448 448 0 0-448-448 0zM374.7 405.3l-53.1 0 0-23.9-.7 0c-10.5 17.5-29.1 26.2-55.8 26.2-18.4 0-34.7-4.4-48.9-13.1-14.1-8.6-25.5-21-32.9-35.8-7.7-15.1-11.6-32.1-11.6-50.9 0-18.4 3.9-35.1 11.8-50.2 7.5-14.7 18.9-27.1 32.9-35.8 14.1-8.7 30-13.1 47.7-13.1 10.2-.1 20.2 1.6 29.7 5.2 8.9 3.5 17.2 9.1 25 17l0-77.9 55.8-12.1 0 264.4z\"],\n \"steam\": [512, 512, [], \"f1b6\", \"M504 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5l0 1.2-59.2 85.7c-15.5-.9-30.7 3.4-43.5 12.1L8 236.1C18.2 108.4 125.1 8 255.6 8 392.8 8 504 119 504 256zM163.7 384.3l-30.5-12.6c5.6 11.6 15.3 20.8 27.2 25.8 26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3 .1-40.3S214 305.6 201 300.2c-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zM337.5 129.8a62.3 62.3 0 1 1 0 124.6 62.3 62.3 0 1 1 0-124.6zm.1 109a46.8 46.8 0 1 0 0-93.6 46.8 46.8 0 1 0 0 93.6z\"],\n \"snapchat\": [512, 512, [62124, \"snapchat-ghost\"], \"f2ab\", \"M497.1 366.6c-3.4-9.2-9.8-14.1-17.1-18.2-1.4-.8-2.6-1.5-3.7-1.9-2.2-1.1-4.4-2.2-6.6-3.4-22.8-12.1-40.6-27.3-53-45.4-3.5-5.1-6.6-10.5-9.1-16.1-1.1-3-1-4.7-.2-6.3 .8-1.2 1.7-2.2 2.9-3 3.9-2.6 8-5.2 10.7-7 4.9-3.2 8.8-5.7 11.2-7.4 9.4-6.5 15.9-13.5 20-21.3 2.9-5.4 4.5-11.3 4.9-17.4s-.6-12.2-2.8-17.8c-6.2-16.3-21.6-26.4-40.3-26.4-3.9 0-7.9 .4-11.7 1.2-1 .2-2.1 .5-3.1 .7 .2-11.2-.1-22.9-1.1-34.5-3.5-40.8-17.8-62.1-32.7-79.2-9.5-10.7-20.7-19.7-33.2-26.7-22.6-12.9-48.2-19.4-76.1-19.4s-53.4 6.5-76 19.4c-12.5 7-23.7 16.1-33.3 26.8-14.9 17-29.2 38.4-32.7 79.2-1 11.6-1.2 23.4-1.1 34.5-1-.3-2-.5-3.1-.7-3.9-.8-7.8-1.2-11.7-1.2-18.7 0-34.1 10.1-40.3 26.4-2.2 5.7-3.2 11.8-2.8 17.8s2 12 4.9 17.4c4.1 7.8 10.7 14.7 20 21.3 2.5 1.7 6.4 4.2 11.2 7.4 2.6 1.7 6.5 4.2 10.3 6.7 1.3 .9 2.4 2 3.3 3.3 .8 1.6 .8 3.4-.4 6.6-2.5 5.5-5.5 10.8-8.9 15.8-12.1 17.7-29.4 32.6-51.4 44.6-11.7 6.2-23.9 10.3-29 24.3-3.9 10.5-1.3 22.5 8.5 32.6 3.6 3.8 7.8 6.9 12.4 9.4 9.6 5.3 19.8 9.3 30.3 12.1 2.2 .6 4.3 1.5 6.1 2.7 3.6 3.1 3.1 7.9 7.8 14.8 2.4 3.6 5.4 6.7 9 9.1 10 6.9 21.3 7.4 33.2 7.8 10.8 .4 23 .9 36.9 5.5 5.8 1.9 11.8 5.6 18.7 9.9 16.7 10.3 39.6 24.3 77.8 24.3s61.3-14.1 78.1-24.4c6.9-4.2 12.9-7.9 18.5-9.8 13.9-4.6 26.2-5.1 36.9-5.5 11.9-.5 23.2-.9 33.2-7.8 4.2-2.9 7.7-6.7 10.2-11.2 3.4-5.8 3.4-9.9 6.6-12.8 1.8-1.2 3.7-2.1 5.8-2.6 10.7-2.8 21-6.9 30.8-12.2 4.9-2.6 9.3-6.1 13-10.2l.1-.2c9.2-9.9 11.5-21.5 7.8-31.8zm-34 18.3c-20.7 11.5-34.5 10.2-45.3 17.1-9.1 5.9-3.7 18.5-10.3 23.1-8.1 5.6-32.2-.4-63.2 9.9-25.6 8.5-42 32.8-88 32.8s-62-24.3-88.1-32.9c-31-10.3-55.1-4.2-63.2-9.9-6.6-4.6-1.2-17.2-10.3-23.1-10.7-6.9-24.5-5.7-45.3-17.1-13.2-7.3-5.7-11.8-1.3-13.9 75.1-36.4 87.1-92.6 87.7-96.7 .6-5 1.4-9-4.2-14.1-5.4-5-29.2-19.7-35.8-24.3-10.9-7.6-15.7-15.3-12.2-24.6 2.5-6.5 8.5-8.9 14.9-8.9 2 0 4 .2 6 .7 12 2.6 23.7 8.6 30.4 10.2 .8 .2 1.6 .3 2.5 .3 3.6 0 4.9-1.8 4.6-5.9-.8-13.1-2.6-38.7-.6-62.6 2.8-32.9 13.4-49.2 26-63.6 6.1-6.9 34.5-37 88.9-37S339 74.2 345 81.1c12.6 14.4 23.2 30.7 26 63.6 2.1 23.9 .3 49.5-.6 62.6-.3 4.3 1 5.9 4.6 5.9 .8 0 1.7-.1 2.5-.3 6.7-1.6 18.4-7.6 30.4-10.2 2-.4 4-.7 6-.7 6.4 0 12.4 2.5 14.9 8.9 3.5 9.4-1.2 17-12.2 24.6-6.6 4.6-30.4 19.3-35.8 24.3-5.6 5.1-4.8 9.1-4.2 14.2 .5 4.2 12.5 60.4 87.7 96.7 4.4 2.2 11.9 6.7-1.3 14.1z\"],\n \"galactic-senate\": [512, 512, [], \"f50d\", \"M249.9 33.5l0 26.1c-13.6 20.6-23.9 108.6-24.5 215.3 11.7-15.6 19.1-33.3 19.1-48.2l0-16.9c0-5.3 .8-10.5 2.2-15.6 .6-2.1 1.4-4.1 2.6-5.8s3.4-3.8 6.7-3.8 5.4 2.1 6.7 3.8c1.2 1.8 2 3.7 2.6 5.8 1.4 5.1 2.2 10.3 2.2 15.6l0 16.9c0 14.9 7.4 32.6 19.1 48.2-.6-106.8-10.9-194.7-24.5-215.3l0-26.1-12.3 0zM223.5 181.3c-9.5 2.1-18.7 5.2-27.5 9.1 8.9 16.1 9.8 32.6 1.7 37.3-8 4.6-21.8-4.2-31.4-19.8-11.6 8.8-21.9 19.3-30.6 31.1 14.7 9.6 22.9 22.9 18.3 30.7-4.5 7.7-20 7.1-35.5-1-5.8 13.2-9.7 27.5-11.6 42.4 9.7 .2 18.7 2.4 26.2 6 17.8-.3 32.8-2 40.5-4.2 5.6-26.4 23-48.2 46.3-59.5 .7-25.6 1.9-49.7 3.5-72.1zm65 0c1.6 22.4 2.7 46.5 3.5 72.1 23.3 11.3 40.8 33.2 46.3 59.5 7.7 2.3 22.7 3.9 40.5 4.2 7.5-3.7 16.5-5.8 26.2-6-1.9-14.9-5.9-29.2-11.7-42.4-15.4 8.1-30.9 8.7-35.5 1-4.6-7.7 3.6-21.1 18.3-30.7-8.7-11.8-19-22.3-30.6-31.1-9.5 15.6-23.4 24.4-31.4 19.8-8.1-4.6-7.2-21.2 1.7-37.3-8.8-3.9-18-7-27.4-9.1zM256 189.9c-3.2 0-5.9 8.8-6.1 19.9l0 0 0 16.9c0 41.4-49 95-93.5 95-52 0-122.8-1.4-156.4 29.2l0 2.5c9.4 17.1 20.6 33.2 33.2 48 12.5-21.1 51.6-41 108-41.4 45.7 1 79 20.3 90.8 40.9 0 0 0 0 0 .1 7.7 2.1 15.8 3.2 24 3.2 8.2 0 16.4-1.1 24-3.2 0 0 0 0 0-.1 11.7-20.5 45.1-39.8 90.8-40.9 56.4 .4 95.5 20.3 108 41.4 12.6-14.8 23.8-30.9 33.2-48l0-2.5c-33.6-30.6-104.4-29.2-156.4-29.2-44.5 0-93.5-53.6-93.5-95l0-16.9-.1 0c-.2-11.1-2.9-19.9-6.1-19.9zm0 177.9a40.6 40.6 0 1 1 0-81.3 40.6 40.6 0 1 1 0 81.3zm0-73.6a33 33 0 1 0 0 65.9 33 33 0 1 0 0-65.9zm0 59.8a26.8 26.8 0 1 1 0-53.6 26.8 26.8 0 1 1 0 53.6zm-114.8 13c-10.2 .1-21.6 .4-30.5 1.7 .4 4.4 1.5 18.6 7.1 29.8 9.1-2.6 18.4-3.9 27.6-3.9 41.3 .9 71.5 34.4 78.3 74.5l.1 4.7c10.4 1.9 21.2 2.9 32.2 2.9 11 0 21.8-1 32.2-2.9l.1-4.7c6.8-40.1 37-73.5 78.3-74.5 9.3 0 18.5 1.3 27.6 3.9 5.6-11.1 6.7-25.3 7.1-29.8-8.9-1.3-20.3-1.6-30.5-1.7-18.8 .4-35.2 4.2-48.6 9.7-12.5 16-29.2 30-49.6 33.1-.1 0-.2 0-.3 0 0 0-.1 0-.2 .1-5.2 1.1-10.6 1.6-16.2 1.6-5.5 0-10.9-.5-16.2-1.6-.1 0-.1 0-.2-.1-.1 0-.2 0-.3 0-20.4-3-37-17-49.6-33.1-13.4-5.5-29.9-9.2-48.6-9.7z\"],\n \"phoenix-framework\": [640, 512, [], \"f3dc\", \"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4 .1-.8 .2-1.1 .3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7-111.2-16.5-128.9-163.6-252.5-173.1-44.3-3.4-99.4 8.1-136.3 35-.8 .6-1.5 1.2-2.2 1.8 .1 .2 .1 .3 .2 .5 .8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7 .3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zM272.2 415.4c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1 .2-.3 .3-.4 .5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zM447 163.4c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6 .1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2 .1-.2 2.1 .6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zM549.7 280.9c-32.4 .2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2l0-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7 .3 .2 .4 .5 .7 .9-.5 0-.7 .1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1 .2-.1 .4-.2 .6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2 .1-.3 .1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7 .4-.1 .9 0 1.5 .3-.6 .4-1.2 .9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4 .6-.8 .9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5 .1-.1 .2 0 .4 .4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7 .5-.2 .8-.4 1.1-.4 13.1 .1 26.1 .7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"],\n \"git\": [512, 512, [], \"f1d3\", \"M216.3 158.4l-79.3 0c-40-10.5-130.5-7.8-130.5 74.8 0 30.1 15 51.2 35 61-25.1 23-37 33.8-37 49.2 0 11 4.5 21.1 17.9 26.8-14.3 13.4-22.4 23.1-22.4 41.4 0 32.1 28 50.8 101.6 50.8 70.8 0 111.8-26.4 111.8-73.2 0-58.7-45.2-56.5-151.6-63l13.4-21.6c27.3 7.6 118.7 10 118.7-67.9 0-18.7-7.7-31.7-15-41.1l37.4-2.8 0-34.5zM152.9 400.3c0 32.1-104.9 32.1-104.9 2.4 0-8.1 5.3-15 10.6-21.5 77.7 5.3 94.3 3.4 94.3 19.1zM102.1 265.7c-52.8 0-50.5-71.2 1.2-71.2 49.5 0 50.8 71.2-1.2 71.2zM235.4 366.2l0-32.1c26.7-3.7 27.2-2 27.2-11l0-119.5c0-8.5-2.1-7.4-27.2-16.3l4.5-32.9 84.2 0 0 168.7c0 6.5 .4 7.3 6.5 8.1l20.7 2.8 0 32.1-115.9 0zm52.5-244.3c-23.2 0-36.6-13.4-36.6-36.6s13.4-35.8 36.6-35.8c23.6 0 37 12.6 37 35.8s-13.4 36.6-37 36.6zM512 350.5c-17.5 8.5-43.1 16.3-66.3 16.3-48.4 0-66.7-19.5-66.7-65.5l0-106.5c0-5.4 1-4.1-31.7-4.1l0-36.2c35.8-4.1 50-22 54.5-66.3l38.6 0c0 65.8-1.3 61.8 3.3 61.8l57.3 0 0 40.6-60.6 0 0 97.1c0 6.9-4.9 51.4 60.6 26.8l11 35.8z\"],\n \"optin-monster\": [576, 512, [], \"f23c\", \"M572.8 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7 .3-6.5 .3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6l0-2.8c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60-69.6-59.7-167.7-53.8-244.2-37.6 19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8 .9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8 .5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4 .5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2l0 19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3 .5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1 .2-3.7-.7-7.2-1.7-10.7zM499 167.4c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3 .3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1 .5-8.1 .8-11.6 .8-1.9-21.9-6.8-44-14.3-64.6 3.7 .3 8.1 .3 11.8 .3zM47.7 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1 .8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53l0 .3 12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-10.5a76.1 76.1 0 1 1 0-152.2 76.1 76.1 0 1 1 0 152.2zm115.6 22.1c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3 .3 26.6 .3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1l0 .3c18.9-.3 38.1-.3 57 0zM278.5 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8l0 .3c1.1 8.3 3.3 51.2-1.3 53.7zM172 257.9c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6 .8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zM115 461.7c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5l.3 0c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3 .3l0-.3 .3 0c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2 .8 2.2 .8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8 .3 1.9 .5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3 .9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM373.1 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM75 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zM290.9 230.9c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68.2 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM479 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5 .9-8.4-20.2-23.5-29.1-25.1z\"],\n \"jenkins\": [448, 512, [], \"f3b6\", \"M455.4 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8 .2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2 .7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6-21.1 12.5-36.4 20.3-55.9 34.3-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8 .7 2 1.4 4.1 2.1 6l422 0c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM174.2 33.7c1.8-.5 3.4 .7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4 .7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zM69.4 127.3c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7 .3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2 .5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8 .7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1 .6-16.5zm-17.2-20c-16.8 .8-26-1.2-38.3-10.8 .2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM194.3 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3 .8 4.4-2.8 10.2-2.8 16.4zM26 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5 .7 2.3 1.4 4.7 2.2 7.2l-180.7 0 0-.1zm240.6 5.7l-.8 0c.3-.2 .5-.4 .8-.5l0 .5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3l-9.6 0zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5 .4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7l-14 0c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8l-17.4 0c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9 .8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8 .6-11.5 15.6-7.3 29 1.3 35.7 11.5l-36.3 0zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1l-27.9 0c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1 .8 5.5-2.6 18.9-3.8 25.1zM190.5 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7 .5 0 1 0 1.4 .1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm-96.8 2.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9 .9-36.6-17.1 11.9 .7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zM261.5 298.3c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zM353.7 345c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"],\n \"slideshare\": [512, 512, [], \"f1e7\", \"M187.9 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7 .1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3 0-198.3c0-27.4-20.6-49.7-46-49.7L76.8 0c-25.4 0-46 22.3-46 49.7l0 198.3c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72-56.3 191.7 137.4 222.3 134.3 124.1 0-.7 .3-56.6 .3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7 .3 92.8 .3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28l0-192.4c0-34.9 8.9-45.7 40.6-45.7l317.7 0c30.3 0 40.9 12.9 40.9 45.7l0 190.6-.1 0z\"],\n \"uber\": [448, 512, [], \"f402\", \"M414.1 32L33.9 32C15.2 32 0 47.2 0 65.9L0 446c0 18.8 15.2 34 33.9 34L414 480c18.7 0 33.9-15.2 33.9-33.9l0-380.2C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6l94.4 0 0 20.4c0 3.7 3 6.8 6.8 6.8l67.9 0c3.7 0 6.8-3 6.8-6.8l0-67.9c0-3.7-3-6.8-6.8-6.8l-67.9 0c-3.7 0-6.8 3-6.8 6.8l0 20.4-94.4 0c7-69.4 65.4-122.2 135.1-122.2s128.1 52.8 135.1 122.2c7.5 74.5-46.9 141.1-121.5 148.6z\"],\n \"digital-ocean\": [512, 512, [], \"f391\", \"M87 481.8l73.7 0 0-73.6-73.7 0 0 73.6zM25.4 346.6l0 61.6 61.6 0 0-61.6-61.6 0zM491.6 176.9C468.6 102.7 409.2 43.6 335 20.3 164.9-32.8 8 93.7 8 255.9l95.8 0c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208l0 .3-.3 0 0 95.8c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231l0-95.3-95.6 0 0 95.6 95.3 0 0-.3 .3 0z\"],\n \"soundcloud\": [640, 512, [], \"f1be\", \"M640.2 298.6c-1.3 23.1-11.5 44.8-28.4 60.5s-39.2 24.4-62.3 24.1l-218 0c-4.8 0-9.4-2-12.8-5.4s-5.3-8-5.3-12.8l0-234.8c-.2-4 .9-8 3.1-11.4s5.3-6.1 9-7.7c0 0 20.1-13.9 62.3-13.9 25.8 0 51.1 6.9 73.3 20.1 17.3 10.2 32.3 23.8 44.1 40.1s20 34.8 24.2 54.4c7.5-2.1 15.3-3.2 23.1-3.2 11.7-.1 23.3 2.2 34.2 6.7s20.5 11.3 28.7 19.7 14.6 18.3 18.9 29.3 6.3 22.6 5.9 34.3zm-354-153.5c.1-1 0-2-.3-2.9s-.8-1.8-1.5-2.6-1.5-1.3-2.4-1.7c-1.8-.8-4-.8-5.8 0-.9 .4-1.7 1-2.4 1.7s-1.2 1.6-1.5 2.6-.4 1.9-.3 2.9c-6 78.9-10.6 152.9 0 231.6 .2 1.7 1 3.3 2.3 4.5 2.6 2.4 6.8 2.4 9.4 0 1.3-1.2 2.1-2.8 2.3-4.5 11.3-79.4 6.6-152 0-231.6l.2 0zm-44 27.3c-.2-1.8-1.1-3.5-2.4-4.7s-3.1-1.9-5-1.9-3.6 .7-5 1.9-2.2 2.9-2.4 4.7c-7.9 67.9-7.9 136.5 0 204.4 .3 1.8 1.2 3.4 2.5 4.5s3.1 1.8 4.8 1.8 3.5-.6 4.8-1.8 2.2-2.8 2.5-4.5c8.8-67.8 8.8-136.5 .1-204.4l.1 0zm-44.3-6.9c-.2-1.8-1-3.4-2.3-4.6s-3-1.8-4.8-1.8-3.5 .7-4.8 1.8-2.1 2.8-2.3 4.6c-6.7 72-10.2 139.3 0 211.1 0 1.9 .7 3.7 2.1 5s3.1 2.1 5 2.1 3.7-.7 5-2.1 2.1-3.1 2.1-5c10.5-72.8 7.3-138.2 .1-211.1l-.1 0zm-44 20.6c0-1.9-.8-3.8-2.1-5.2s-3.2-2.1-5.2-2.1-3.8 .8-5.2 2.1-2.1 3.2-2.1 5.2c-8.1 63.3-8.1 127.5 0 190.8 .2 1.8 1 3.4 2.4 4.6s3.1 1.9 4.8 1.9 3.5-.7 4.8-1.9 2.2-2.8 2.4-4.6c8.8-63.3 8.9-127.5 .3-190.8l-.1 0zm-44.5 47.6c0-1.9-.8-3.8-2.1-5.1s-3.2-2.1-5.1-2.1-3.8 .8-5.1 2.1-2.1 3.2-2.1 5.1c-10.5 49.2-5.5 93.9 .4 143.6 .3 1.6 1.1 3.1 2.3 4.2s2.8 1.7 4.5 1.7 3.2-.6 4.5-1.7 2.1-2.5 2.3-4.2c6.6-50.4 11.6-94.1 .4-143.6zm-44.1-7.5c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9-3.6 .7-5 1.9-2.2 2.9-2.4 4.8c-9.3 50.2-6.2 94.4 .3 144.5 .7 7.6 13.6 7.5 14.4 0 7.2-50.9 10.5-93.8 .3-144.5l-.2 0zM20.7 250.8c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9-3.6 .7-5 1.9-2.3 2.9-2.4 4.8c-8.5 33.7-5.9 61.6 .6 95.4 .2 1.7 1 3.3 2.3 4.4s2.9 1.8 4.7 1.8 3.4-.6 4.7-1.8 2.1-2.7 2.3-4.4c7.5-34.5 11.2-61.8 .4-95.4l-.2 0z\"],\n \"square-figma\": [448, 512, [], \"e7e4\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM173.7 96c-33 0-59.8 26.8-59.8 59.8 0 21 10.8 39.4 27.2 50.1-16.4 10.7-27.2 29.1-27.2 50.1s10.8 39.5 27.2 50.1c-16.4 10.7-27.2 29.1-27.2 50.1 0 33.1 27.1 59.8 60.1 59.8 33.2 0 60.6-26.9 60.6-60.3l0-55.7c10.6 9.8 24.8 15.8 40.4 15.8l1.1 0c33 0 59.8-26.8 59.8-59.8 0-21-10.8-39.5-27.2-50.1 16.4-10.7 27.2-29.1 27.2-50.1 0-33-26.8-59.8-59.8-59.8L173.7 96zm41.6 219.8l0 39.9c0 22.6-18.6 41-41.3 41-22.4 0-40.7-18.2-40.7-40.5 0-22.3 18.1-40.4 40.3-40.4l41.7 0zm0-100.3l0 80.9-41.7 0c-22.3-.1-40.3-18.2-40.3-40.5 0-22.3 18.1-40.5 40.5-40.5l41.6 0zm60.8 0c22.3 0 40.5 18.1 40.5 40.5s-18.1 40.5-40.5 40.5l-1.1 0c-22.3 0-40.4-18.1-40.4-40.5s18.1-40.5 40.4-40.5l1.1 0zm-60.8-19.3l-41.6 0c-22.3 0-40.5-18.1-40.5-40.4s18.1-40.5 40.5-40.5l41.6 0 0 80.9zm60.8-80.9c22.3 0 40.5 18.1 40.5 40.5s-18.1 40.4-40.5 40.4l-41.5 0 0-80.9 41.5 0z\"],\n \"creative-commons-sa\": [512, 512, [], \"f4ef\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zM145.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97l62.5 0c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8l18.2 0-49.2 49.2-49-49.2 19.4 0z\"],\n \"chrome\": [512, 512, [], \"f268\", \"M0 256c0-46.6 12.5-90.4 34.3-128.9L144.1 318.3c21.9 39.2 63.8 65.7 111.9 65.7 14.3 0 27.1-2.3 40.8-6.6L220.5 509.6C95.9 492.3 0 385.3 0 256zm365.1 65.6c12.3-19.2 18.9-42.5 18.9-65.6 0-38.2-16.8-72.5-43.3-96l152.7 0c12 29.6 18.6 62.1 18.6 96 0 141.4-114.6 255.1-256 256L365.1 321.6zM477.8 128L256 128c-62.9 0-113.7 44.1-125.5 102.7L54.2 98.5C101 38.5 174 0 256 0 350.8 0 433.5 51.5 477.8 128zM344 256a88 88 0 1 1 -176 0 88 88 0 1 1 176 0z\"],\n \"trade-federation\": [512, 512, [], \"f513\", \"M256 8.8a247.2 247.2 0 1 0 0 494.4 247.2 247.2 0 1 0 0-494.4zm0 11.6a235.6 235.6 0 1 1 0 471.2 235.6 235.6 0 1 1 0-471.2zM411.1 163.1l0-46.8-193.8 0 0 81.7-155.1 0 36.7 46 117.7 0 0 196.8 48.8 0 0-195.8 83.3 0 0-47-83.3 0 0-34.8 145.7 0 0-.1zm-73.3 45.1l0 23.9-82.9 0 0 197.4-26.8 0 0-197.4-123.8 0-20.1-23.9 143.9 0 0-80.6 171.8 0 0 24.4-145 0 0 56.2 82.9 0zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1-22 9.3zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3-9.5-10.2zM312.3 264.7l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7 9.3-10.8zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17 15-17.6zM256 29.9a226.1 226.1 0 1 0 0 452.2 226.1 226.1 0 1 0 0-452.2zM350.6 196l0 51-83.3 0 0 195.7-52.7 0 0-196.8-116.7 0-40-49.9 157.4 0 0-81.6 197.8 0 0 50.7-145.7 0 0 30.9 83.2 0zM256 43.2c60.3 0 114.8 25 153.6 65.2l-199.1 0 0 81.6-157.4 0C81.1 104.8 161.4 43.2 256 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1l43.8 56.3 114.7 0 0 196.8 64.6 0 0-195.8 83.3 0 0-62.7-83.2 0 0-19.2 145.6 0 0-50.8c30.8 37 49.3 84.6 49.3 136.5 .1 117.9-95.5 213.5-213.4 213.5zM186.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1-22.7 9.3z\"],\n \"vaadin\": [448, 512, [], \"f408\", \"M224.5 140.7C226 123.1 229.4 88 274.3 88l98.6 0c20.7 0 32.1-7.8 32.1-21.6l0-12.3c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1l0 36.5c0 42.9-21.5 62-66.8 62l-100.5 0c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1l-100.7 0C21.5 152.6 0 133.5 0 90.6L0 54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1l0 12.3C43.1 80.2 54.5 88 75.2 88l98.6 0c44.8 0 48.3 35.1 49.8 52.7l.9 0zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362 157.1 244.3c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"],\n \"deviantart\": [320, 512, [], \"f1bd\", \"M320 93.2l-98.2 179.1 7.4 9.5 90.8 0 0 127.7-160.9 0-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2l-92.7 0 0-93.2 93.2-179.4-7.4-9.2-85.8 0 0-127.6 156 0 13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2l97.6 0 0 93.1z\"],\n \"medium\": [448, 512, [62407, \"medium-m\"], \"f23a\", \"M369.4 32c43.4 0 78.6 35.2 78.6 78.6l0 83.8c-1.9-.1-3.8-.2-5.7-.2l-.4 0c-10 0-22.3 2.4-31.1 6.8-10 4.6-18.7 11.5-26 20.6-11.8 14.6-18.9 34.3-20.6 56.4-.1 .7-.1 1.3-.2 2s-.1 1.2-.1 1.9c-.1 1.2-.1 2.4-.1 3.6 0 1.9-.1 3.8 0 5.8 1.2 50.1 28.2 90.2 76.3 90.2 2.7 0 5.3-.1 7.9-.4l0 20.4c0 43.4-35.2 78.6-78.6 78.6L78.6 480C35.2 480 0 444.8 0 401.4L0 110.6C0 67.2 35.2 32 78.6 32l290.8 0zM82.3 138.9l.3 .1c13.2 3 19.8 7.4 19.8 23.4l0 187.2c0 16-6.7 20.4-19.9 23.4l-.3 .1 0 2.8 52.8 0 0-2.8-.3-.1c-13.2-3-19.9-7.4-19.9-23.4l0-176.3 86.1 202.5 4.9 0 88.6-208.2 0 186.6c-1.1 12.6-7.8 16.5-19.7 19.2l-.3 .1 0 2.7 91.9 0 0-2.7-.3-.1c-11.9-2.7-18.7-6.6-19.9-19.2l-.1-191.8 .1 0c0-16 6.7-20.4 19.9-23.4l.3-.1 0-2.7-72.2 0-67 157.4-67-157.4-77.8 0 0 2.7zM448 340.3c-25.1-7.4-43-35.1-41.2-67.8l0 0 41.1 0 0 67.8zm-6.4-135.6c2.3 0 4.4 .3 6.4 .9l0 57.4-40.2 0c1.5-33.6 13.6-57.9 33.8-58.3z\"],\n \"opencart\": [640, 512, [], \"f23d\", \"M331.8 440.4a45.8 45.8 0 1 1 91.5 .3 45.8 45.8 0 1 1 -91.5-.3zM169.4 394.9a45.7 45.7 0 1 0 .3 91.3 45.7 45.7 0 1 0 -.3-91.3zm291.7-270c-302.2 0-379.2-12.8-461.1-99.2 34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"],\n \"y-combinator\": [448, 512, [], \"f23b\", \"M448 32l0 448-448 0 0-448 448 0zM236 287.5l77.5-145.5-32.7 0-45.8 91c-4.7 9.3-9 18.3-12.8 26.8l-12.2-26.8-45.2-91-35 0 76.7 143.8 0 94.5 29.5 0 0-92.8z\"],\n \"line\": [512, 512, [], \"f3c0\", \"M311 196.8l0 81.3c0 2.1-1.6 3.7-3.7 3.7l-13 0c-1.3 0-2.4-.7-3-1.5L254 230 254 278.2c0 2.1-1.6 3.7-3.7 3.7l-13 0c-2.1 0-3.7-1.6-3.7-3.7l0-81.3c0-2.1 1.6-3.7 3.7-3.7l12.9 0c1.1 0 2.4 .6 3 1.6l37.3 50.3 0-48.2c0-2.1 1.6-3.7 3.7-3.7l13 0c2.1-.1 3.8 1.6 3.8 3.5l0 .1zm-93.7-3.7l-13 0c-2.1 0-3.7 1.6-3.7 3.7l0 81.3c0 2.1 1.6 3.7 3.7 3.7l13 0c2.1 0 3.7-1.6 3.7-3.7l0-81.3c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1l-35.6 0 0-64.4c0-2.1-1.6-3.7-3.7-3.7l-13 0c-2.1 0-3.7 1.6-3.7 3.7l0 81.3c0 1 .3 1.8 1 2.5 .7 .6 1.5 1 2.5 1l52.2 0c2.1 0 3.7-1.6 3.7-3.7l0-13c0-1.9-1.6-3.7-3.5-3.7l.1 0zm193.7-68.1l-52.3 0c-1.9 0-3.7 1.6-3.7 3.7l0 81.3c0 1.9 1.6 3.7 3.7 3.7l52.2 0c2.1 0 3.7-1.6 3.7-3.7l0-13.1c0-2.1-1.6-3.7-3.7-3.7l-35.5 0 0-13.6 35.5 0c2.1 0 3.7-1.6 3.7-3.7l0-13.1c0-2.1-1.6-3.7-3.7-3.7l-35.5 0 0-13.7 35.5 0c2.1 0 3.7-1.6 3.7-3.7l0-13c-.1-1.9-1.7-3.7-3.7-3.7l.1 0zM512 93.4l0 326c-.1 51.2-42.1 92.7-93.4 92.6l-326 0C41.4 511.9-.1 469.8 0 418.6l0-326C.1 41.4 42.2-.1 93.4 0l326 0c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3S68.8 150.1 68.8 233.5c0 74.7 66.3 137.4 155.9 149.3 21.8 4.7 19.3 12.7 14.4 42.1-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1l0-.2z\"],\n \"amilia\": [448, 512, [], \"f36d\", \"M240.2 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1l0 38.5C203.1 227.7 78.3 251 46.8 264.2 11.3 280.5 16.4 357.7 16.4 376S31.6 480 141.3 480c47.8 0 113.7-20.7 153.3-42.1l0 25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5 .3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1l0-296.6c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5l0 106.7z\"],\n \"asymmetrik\": [576, 512, [], \"f372\", \"M517.5 309.2c38.8-40 58.1-80 58.5-116.1 .8-65.5-59.4-118.2-169.4-135-128.7-19.7-288.5 15.5-406.6 82.4 52-26.5 110.6-48.2 170.7-58.2 74.5-20.5 153-25.4 221.3-14.8 152.5 23.8 196.8 127.5 98.8 231.7-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7 101.6 0 22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1 135.5 0-32.6-53.1c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8 101.6 0-73.4-110.4c18.5-12.1 35-25.5 48.9-39.8zM329.9 389.7l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"],\n \"phabricator\": [512, 512, [], \"f3db\", \"M331.1 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4 .5 .2 28.9 .2 28.9l-9.1 9.1s-29.2-.9-29.7 .4L160 226.3c-.6 1.4 21 21 21 21l.1 12.9S159.4 280 160 281.4l9.5 20c.6 1.4 29.5 .5 29.5 .5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4 .6 20.7-23.5 20.7-23.5l13.1 .2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2 .9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4s-32.1-12.5-32.8-29.6 12.8-31.6 30.1-32.3c17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1 .1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM363.5 148.2a152.3 152.3 0 1 1 -215 215.6 152.3 152.3 0 1 1 215-215.6z\"],\n \"bots\": [640, 512, [], \"e340\", \"M86.3 197.8c-8-.1-15.9 1.7-23.1 5.1s-13.5 8.6-18.4 14.9l0-61.9c0-2.2-.9-4.3-2.4-5.8s-3.6-2.4-5.8-2.4l-28.4 0c-2.2 0-4.3 .9-5.8 2.4S0 153.8 0 156L0 333.6c0 1.1 .2 2.1 .6 3.1s1 1.9 1.8 2.7 1.7 1.4 2.7 1.8 2.1 .6 3.1 .6l28.4 0c1.1 0 2.1-.2 3.1-.6s1.9-1 2.7-1.8 1.4-1.7 1.8-2.7 .6-2.1 .6-3.1l0-8.1c11.6 13.4 25.9 19.8 41.6 19.8 34.6 0 61.9-26.2 61.9-73.8 0-45.9-27-73.6-61.9-73.6zM71.5 305.7c-9.6 0-21.2-4.9-26.7-12.5l0-43c5.5-7.6 17.2-12.8 26.7-12.8 17.7 0 31.1 13.1 31.1 34 0 21.2-13.4 34.3-31.1 34.3zm156.4-59a17.4 17.4 0 1 0 0 34.8 17.4 17.4 0 1 0 0-34.8zm46.1-90l0-44.7c2.8-1.2 5.2-3.3 6.6-6s1.9-5.8 1.3-8.9-2.2-5.7-4.6-7.7-5.4-3-8.4-3-6.1 1.1-8.4 3-4 4.7-4.6 7.7-.1 6.1 1.3 8.9 3.8 4.8 6.6 6l0 44.7c-28 1.3-54.4 13.6-73.6 34.1s-29.5 47.7-28.8 75.8 12.3 54.7 32.4 74.3 47 30.6 75.1 30.6 55-11 75.1-30.6 31.7-46.3 32.4-74.3-9.7-55.3-28.8-75.8-45.5-32.8-73.6-34.1zm86 107.4c0 30.5-40.8 55.3-91.1 55.3s-91.1-24.7-91.1-55.3 40.8-55.3 91.1-55.3 91.1 24.7 91.1 55.3l0 0zm-50.2 17.4c3.4 0 6.8-1 9.7-2.9s5.1-4.6 6.4-7.8 1.7-6.7 1-10.1-2.3-6.5-4.8-8.9-5.5-4.1-8.9-4.8-6.9-.3-10.1 1-5.9 3.5-7.8 6.4-2.9 6.2-2.9 9.7c0 4.6 1.8 9 5.1 12.3s7.7 5.1 12.3 5.1l0 0zm270.9-31c-14.8-2.6-22.4-3.8-22.4-9.9 0-5.5 7.3-9.9 17.7-9.9 12.2 .1 24.2 3.6 34.5 10.1 1.8 1.2 4 1.6 6.2 1.1s4-1.7 5.1-3.6c.1-.1 .1-.2 .2-.3l8.6-14.9c1.1-1.9 1.4-4.1 .8-6.1s-1.9-3.9-3.7-5c-15.7-9.4-33.7-14.3-52-14.1-39 0-60.2 21.5-60.2 46.2 0 36.3 33.7 41.9 57.6 45.6 13.4 2.3 24.1 4.4 24.1 11 0 6.4-5.5 10.8-18.9 10.8-13.6 0-31-6.2-42.6-13.6-.9-.6-1.9-1-3-1.2s-2.1-.2-3.2 .1-2.1 .7-2.9 1.3-1.6 1.4-2.2 2.3c0 .1-.1 .1-.1 .2l-10.2 16.9c-1.1 1.8-1.4 4-1 6s1.7 3.9 3.5 5c15.2 10.3 37.7 16.7 59.4 16.7 40.4 0 64-19.8 64-46.5 0-38.1-35.5-43.9-59.3-48.3zm-95.9 60.8c-.5-2-1.8-3.7-3.6-4.8s-3.9-1.5-5.9-1.1c-1.4 .3-2.8 .4-4.2 .4-7.8 0-12.5-6.1-12.5-14.2l0-51.2 20.3 0c2.2 0 4.2-.9 5.8-2.4s2.4-3.6 2.4-5.8l0-22.7c0-2.2-.9-4.2-2.4-5.8s-3.6-2.4-5.8-2.4l-20.3 0 0-30.2c0-2.2-.9-4.2-2.4-5.8s-3.6-2.4-5.8-2.4l-28.2 0c-2.2 0-4.2 .9-5.8 2.4s-2.4 3.6-2.4 5.8l0 30.2-15.1 0c-1.1 0-2.1 .2-3.1 .6s-1.9 1-2.6 1.8-1.4 1.7-1.8 2.6-.6 2-.6 3.1l0 22.7c0 1.1 .2 2.1 .6 3.1s1 1.9 1.8 2.6 1.7 1.4 2.6 1.8 2 .6 3.1 .6l15.1 0 0 63.7c0 27 15.4 41.3 43.9 41.3 12.2 0 21.4-2.2 27.6-5.4 1.6-.8 2.9-2.2 3.7-3.9s.9-3.6 .5-5.4l-5-19.3z\"],\n \"vine\": [384, 512, [], \"f1ca\", \"M384 254.7l0 52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8-27.1-16.3-129.9-100.6-164.1-365.6l74.5 0c18.7 159.1 64.5 240.7 114.8 301.8 27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"],\n \"medrt\": [576, 512, [], \"f3c8\", \"M129.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9-137.6 0-249-111-249-248S127.4 8 264.9 8c20.1 0 39.6 2.4 58.2 6.9-109.6 18.3-193.4 119.3-193.4 241.1zM427.1 356.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47s108.1-184.3 46.5-272.6c-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9zm-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8zM312 224c-4.4 0-8-3.6-8-8l0-40c0-4.4-3.6-8-8-8l-48 0c-4.4 0-8 3.6-8 8l0 40c0 4.4-3.6 8-8 8l-40 0c-4.4 0-8 3.6-8 8l0 48c0 4.4 3.6 8 8 8l40 0c4.4 0 8 3.6 8 8l0 40c0 4.4 3.6 8 8 8l48 0c4.4 0 8-3.6 8-8l0-40c0-4.4 3.6-8 8-8l40 0c4.4 0 8-3.6 8-8l0-48c0-4.4-3.6-8-8-8l-40 0z\"],\n \"osi\": [512, 512, [], \"f41a\", \"M8 266.4c2.3-135.8 97.4-232.4 213.8-248.1 138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.6-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 1.5-9.7 1-19.6-1.5-29.1s-6.9-18.4-12.9-26.1-13.6-14.1-22.2-18.8-18.1-7.5-27.9-8.3c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6 .6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4 .8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3 .6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 15.6 9 28.2 22.3 36.2 38.4s11.2 34.2 9 52c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.3 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"],\n \"gg\": [512, 512, [], \"f260\", \"M179.2 230.4l102.4 102.4-102.4 102.4-179.2-179.2 179.2-179.2 44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8l-102.4 102.4 102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8 179.2-179.2-179.2-179.2z\"],\n \"buysellads\": [448, 512, [], \"f20d\", \"M224 150.7l42.9 160.7-85.8 0 42.9-160.7zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM382.7 405.3l-94.5-298.7-128.4 0-94.5 298.7 90.7 0 111.7-91.6 24.2 91.6 90.8 0z\"],\n \"google-plus\": [512, 512, [], \"f2b3\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM185.3 380c-32.9 0-64.4-13.1-87.7-36.3s-36.3-54.8-36.3-87.7 13.1-64.4 36.3-87.7 54.8-36.3 87.7-36.3c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1S142.3 334 185.3 334c32.6 0 64.9-19.1 70.1-53.3l-70.1 0 0-42.6 116.9 0c1.3 6.8 1.9 13.8 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zM415.5 273.8l0 35.5-35.5 0 0-35.5-35.5 0 0-35.5 35.5 0 0-35.5 35.5 0 0 35.5 35.2 0 0 35.5-35.2 0z\"],\n \"screenpal\": [512, 512, [], \"e570\", \"M278.6 22.5a22.5 22.5 0 1 1 -45 0 22.5 22.5 0 1 1 45 0zM198.7 259a57.4 57.4 0 1 1 114.8 0 57.4 57.4 0 1 1 -114.8 0zm138.6 91c22.3-19.9 36.5-47.3 39.9-77l119.5 0c-3.5 61.4-30.4 119.2-75.2 161.4-44.7 42.2-103.9 65.8-165.4 65.8S135.4 476.6 90.7 434.4C45.9 392.2 19.1 334.4 15.5 273l119.7 0c3.4 29.7 17.6 57.1 39.9 77s51.2 30.9 81.1 30.9c29 0 58.7-11 81.1-30.9zM28.3 141.7a22.5 22.5 0 1 1 45-1.4 22.5 22.5 0 1 1 -45 1.4zm455.6-.7a22.4 22.4 0 1 1 -44.9 0 22.4 22.4 0 1 1 44.9 0zM318 95.3c-17.3 13.8-39.2 22.8-61.9 22.8s-44.6-9-61.9-22.8c-17.3-14.7-28.8-35.1-32.4-57.5 15.1-6.4 30.8-11.3 46.9-14.5 0 12.6 5 24.6 13.9 33.5s20.9 13.9 33.5 13.9 24.6-5 33.5-13.9 13.9-20.9 13.9-33.5c16.1 3.2 31.8 8.1 46.9 14.5-3.6 22.4-15.1 42.8-32.4 57.5zM82.9 231c-21.4 7.6-44.7 7.4-65.9-.6 2-16.3 5.6-32.3 10.8-47.9 5.4 3.1 11.3 5.1 17.5 6 6.2 .8 12.4 .4 18.5-1.2 6-1.7 11.6-4.4 16.6-8.2s9.1-8.5 12.2-13.9 5.1-11.4 6-17.5c.8-6.2 .4-12.5-1.2-18.5s-4.4-11.6-8.2-16.6c-3.8-4.9-8.5-9.1-13.9-12.2 10.8-12.3 22.9-23.5 36-33.3 17.6 14.3 29.5 34.5 33.6 56.8s.1 45.4-11.2 65c-11.4 19.6-29.4 34.5-50.7 42.1zm346.4 .1c-21.3-7.6-39.3-22.6-50.7-42.2-11.3-19.6-15.2-42.7-11.1-65 4.1-22.2 16-42.4 33.5-56.7 13.1 9.8 25.2 21 36 33.3-10.7 6.4-18.4 16.7-21.5 28.8-3.2 12-2.3 24.8 4.8 35.6 6.2 10.8 16.4 18.7 28.4 22s24.9 1.7 35.7-4.3c5.3 15.5 8.9 31.6 10.9 47.8-22.1 8.1-44.6 8.3-66 .7z\"],\n \"bitcoin\": [512, 512, [], \"f379\", \"M8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm354.3-35.3c4.9-33-20.2-50.7-54.6-62.6l11.1-44.7-27.2-6.8-10.9 43.5c-7.2-1.8-14.5-3.5-21.8-5.1l10.9-43.8-27.2-6.8-11.2 44.7c-5.9-1.3-11.7-2.7-17.4-4.1l0-.1-37.5-9.4-7.2 29.1s20.2 4.6 19.8 4.9c11 2.8 13 10 12.7 15.8l-12.7 50.9c.8 .2 1.7 .5 2.8 .9-.9-.2-1.9-.5-2.9-.7l-17.8 71.3c-1.3 3.3-4.8 8.4-12.5 6.5 .3 .4-19.8-4.9-19.8-4.9l-13.5 31.1 35.4 8.8c6.6 1.7 13 3.4 19.4 5l-11.3 45.2 27.2 6.8 11.2-44.7c7.2 2 14.4 3.8 21.7 5.6l-11.1 44.5 27.2 6.8 11.3-45.1c46.4 8.8 81.3 5.2 96-36.7 11.8-33.8-.6-53.3-25-66 17.8-4.1 31.2-15.8 34.7-39.9zm-62.2 87.2c-8.4 33.8-65.3 15.5-83.8 10.9l14.9-59.9c18.4 4.6 77.6 13.7 68.8 49zm8.4-87.7c-7.7 30.7-55 15.1-70.4 11.3l13.5-54.3c15.4 3.8 64.8 11 56.8 43z\"],\n \"swift\": [448, 512, [], \"f8e1\", \"M448 156.1c0-4.5-.1-9-.2-13.5-.1-9.9-1-19.7-2.6-29.4-1.7-9.7-4.8-19.2-9.2-28-9-17.7-23.4-32.1-41.2-41.1-8.8-4.5-18.3-7.6-28-9.2-9.7-1.6-19.6-2.5-29.4-2.6-4.5-.1-9-.2-13.5-.2L124.1 32c-4.5 0-9 .1-13.5 .2-2.4 .1-4.9 .2-7.4 .3-7.4 .3-14.8 1.1-22.1 2.3-7.3 1.3-14.4 3.3-21.2 6.1-2.3 1-4.6 2-6.8 3.1-6.6 3.4-12.8 7.5-18.4 12.3-1.9 1.6-3.7 3.3-5.4 5-7 7-12.9 15-17.4 23.8-4.4 8.8-7.6 18.3-9.2 28-1.6 9.7-2.4 19.6-2.5 29.4-.1 4.5-.2 9-.2 13.5L0 355.9c0 4.5 .1 9 .2 13.5 .1 9.9 1 19.7 2.6 29.4 1.7 9.7 4.8 19.2 9.2 28 9 17.7 23.4 32.1 41.1 41.1 8.8 4.4 18.3 7.5 28 9.2 9.7 1.6 19.6 2.5 29.4 2.6 4.5 .1 9 .2 13.5 .2l199.8 0c4.5 0 9-.1 13.5-.2 9.9-.1 19.7-1 29.4-2.6 9.7-1.7 19.2-4.8 28-9.2 17.7-9 32.1-23.4 41.1-41.2 4.4-8.8 7.6-18.3 9.2-28 1.6-9.7 2.5-19.6 2.6-29.4 .1-4.5 .2-9 .2-13.5l0-183.8c0-5.4 0-10.7 0-16zm-69.9 241c-20-38.9-57.2-29.3-76.3-19.5-1.7 1-3.5 2-5.2 3l-.4 .2c-39.5 21-92.5 22.5-145.8-.4-43.4-18.8-80.1-50.3-105.3-90.4 12.3 9.1 25.4 16.9 39.2 23.4 56.4 26.4 113 24.5 153 0-57-43.8-104.6-101-141.1-147.2-7-8.1-13.2-16.8-18.8-25.9 43.7 40 112.7 90.2 137.5 104.1-52.6-55.5-98.9-123.9-96.7-121.7 82.8 83.4 159.2 130.6 159.2 130.6 2.9 1.6 5 2.8 6.7 4 1.6-4.1 3-8.2 4.2-12.5 13.2-48.3-1.7-103.6-35.3-149.2 76.8 46.1 122.2 133.7 103.6 207.8-.4 1.7-1 3.4-1.4 5.1 38.5 47.4 28 98.2 23.1 88.6l0 0z\"],\n \"files-pinwheel\": [512, 512, [], \"e69f\", \"M253.5 246.4L137.2 130.2c-.6-.6-1-1.3-1.4-2s-.5-1.6-.5-2.4 .2-1.6 .5-2.4 .8-1.4 1.4-2L253.6 5.1c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3 2.1 1.3 2.8 2.3 1.1 2.2 1.1 3.5l0 232.5c0 1.3-.3 2.5-1 3.6s-1.7 1.9-2.9 2.4-2.5 .6-3.7 .3-2.4-.9-3.2-1.9zm40.3-4.4l0-134.4c0-.8 .1-1.6 .5-2.4s.8-1.5 1.3-2.1 1.3-1.1 2-1.4 1.6-.5 2.4-.5l134.4 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8 .6 2.4 .3 3.6-.9 2.3-1.7 3.2L304.3 246.4c-.9 .8-2 1.4-3.2 1.6s-2.4 .1-3.5-.4-2.1-1.3-2.8-2.3-1.1-2.2-1.1-3.4l.1 .1zm30.6 35c-1.2 0-2.5-.3-3.5-1s-1.9-1.6-2.4-2.8-.6-2.4-.4-3.6 .8-2.3 1.7-3.2L404 182.2c.6-.6 1.3-1 2-1.4s1.6-.5 2.4-.5 1.6 .2 2.4 .5 1.4 .8 2 1.4l84.4 84.2c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6-1.3 2.1-2.3 2.8-2.2 1.1-3.5 1.1l-168.5 0 .1-.1zm90.7 131l-95.3-95.2c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.7 1.3-2.1 2.4-2.8 2.3-1 3.5-1l95.2 0c1.7 0 3.2 .7 4.4 1.8s1.8 2.8 1.8 4.4l0 95.3c0 1.2-.4 2.5-1.1 3.5s-1.7 1.8-2.8 2.3-2.4 .6-3.6 .3-2.3-.9-3.2-1.7zM16.8 302.1l216.9 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8 .6 2.4 .3 3.6-.8 2.3-1.7 3.2L129.7 421.2c-.6 .6-1.3 1-2 1.4s-1.6 .5-2.4 .5-1.6-.2-2.4-.5-1.4-.8-2-1.4L12.3 312.8c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.6 1.3-2.1 2.3-2.8 2.3-1 3.5-1l0-.1zM264.3 465.3c0 .8-.2 1.6-.5 2.4s-.8 1.5-1.4 2-1.3 1-2 1.4-1.6 .5-2.4 .5l-128 0c-1.2 0-2.5-.4-3.5-1.1s-1.8-1.7-2.3-2.8-.6-2.4-.3-3.6 .8-2.3 1.7-3.2l128-128c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3 2.1 1.3 2.8 2.3 1.1 2.2 1.1 3.5l0 128zm40-132.5l82.8 82.7c.6 .6 1 1.3 1.4 2s.5 1.6 .5 2.4-.2 1.6-.5 2.4-.8 1.4-1.4 2L304.3 507c-.9 .9-2 1.5-3.2 1.7s-2.5 .1-3.6-.3-2.1-1.3-2.8-2.3-1.1-2.2-1.1-3.5l0-165.4c0-1.2 .4-2.5 1.1-3.5s1.7-1.8 2.8-2.3 2.4-.6 3.6-.3 2.3 .8 3.2 1.7zM79 122.4c0-1.2 .3-2.5 1-3.5s1.7-1.8 2.8-2.3 2.4-.6 3.6-.4 2.3 .8 3.2 1.7L238.1 266.4c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6-1.3 2.1-2.3 2.8-2.2 1.1-3.5 1.1l-148.4 0c-1.7 0-3.2-.7-4.4-1.8s-1.8-2.8-1.8-4.4l0-148.4-.1-.1z\"],\n \"laravel\": [512, 512, [], \"f3bd\", \"M504.6 115.8c-.1-.2-.2-.5-.3-.7-.1-.4-.3-.8-.5-1.2-.2-.2-.3-.5-.5-.7-.2-.3-.5-.6-.7-.9-.2-.2-.5-.4-.8-.6-.3-.2-.6-.5-.9-.7L404.6 55.5c-1.2-.7-2.6-1.1-4-1.1s-2.8 .4-4 1.1L300.3 111c-.3 .2-.6 .4-.9 .7-.3 .2-.5 .4-.8 .6-.3 .3-.5 .6-.7 .9-.2 .2-.4 .4-.5 .7-.2 .4-.4 .8-.5 1.2-.1 .2-.2 .4-.3 .7-.2 .7-.3 1.4-.3 2.1l0 105.2-80.2 46.2 0-205.9c0-.7-.1-1.4-.3-2.1-.1-.2-.2-.4-.3-.7-.1-.4-.3-.8-.5-1.2-.1-.3-.4-.5-.5-.7-.2-.3-.5-.6-.7-.9-.2-.2-.5-.4-.8-.6-.3-.2-.6-.5-.9-.7L115.8 1.1c-1.2-.7-2.6-1.1-4-1.1s-2.8 .4-4 1.1L11.5 56.5c-.3 .2-.6 .4-.9 .7-.3 .2-.5 .4-.8 .6-.3 .3-.5 .6-.7 .9-.2 .3-.4 .5-.6 .7-.2 .4-.4 .8-.5 1.2-.1 .2-.2 .4-.3 .7-.2 .7-.3 1.4-.3 2.1l0 329.7c0 1.4 .4 2.8 1.1 4s1.7 2.2 2.9 2.9L204 510.9c.4 .2 .9 .4 1.3 .5 .2 .1 .4 .2 .6 .3 1.3 .4 2.8 .4 4.1 0 .2-.1 .4-.2 .6-.2 .5-.2 1-.3 1.4-.6L404.6 400.1c1.2-.7 2.2-1.7 2.9-2.9s1.1-2.6 1.1-4l0-105.3 92.2-53.1c1.2-.7 2.2-1.7 2.9-3s1.1-2.6 1.1-4l0-109.8c0-.7-.1-1.4-.2-2.1zM111.8 17.3l80.2 46.1-80.2 46.2-80.2-46.2 80.2-46.2zm88.2 60l0 201.3c-33.2 19.1-59.9 34.5-80.2 46.2l0-201.3C153 104.4 179.7 89 200 77.3zm0 412.8L23.5 388.5 23.5 77.3c20.3 11.7 47.1 27.1 80.2 46.2l0 215.2c0 .3 .1 .6 .1 .9 0 .4 .1 .8 .2 1.2 .1 .3 .2 .6 .4 .9 .1 .3 .3 .7 .4 1 .2 .3 .4 .5 .6 .8 .2 .3 .4 .6 .7 .8 .2 .2 .5 .4 .8 .6 .3 .2 .6 .5 .9 .7l92.2 52.2 .1 92.4zm8-106.2L128 338.6c54.7-31.5 113.5-65.3 176.3-101.5l80.1 46.1C355 300 296.2 333.5 208 383.9zm184.5 4.6l-176.5 101.6 0-92.3C317.4 340 376.2 306.4 392.5 297l0 91.4zm0-119.1c-20.3-11.6-47.1-27-80.2-46.1l0-91.4c20.3 11.7 47.1 27.1 80.2 46.2l0 91.3zm8-105.3l-80.2-46.2 80.2-46.2 80.2 46.1-80.2 46.2zm8 105.3l0-91.3c33.2-19.1 60-34.5 80.3-46.2l0 91.4-80.3 46.2z\"],\n \"wpforms\": [448, 512, [], \"f298\", \"M448 75.2l0 361.7c0 24.3-19 43.2-43.2 43.2l-361.6 0C19.3 480 0 461.4 0 436.8L0 75.2C0 51.1 18.8 32 43.2 32l361.7 0c24 0 43.1 18.8 43.1 43.2zM410.7 436.8l0-361.6c0-3-2.6-5.8-5.8-5.8l-9.3 0-110.3 74.6-61.3-49.9-61.2 49.9-110.3-74.7-9.3 0c-3.2 0-5.8 2.8-5.8 5.8l0 361.7c0 3 2.6 5.8 5.8 5.8l361.7 0c3.2 .1 5.8-2.7 5.8-5.8zM150.2 186l0 37-73.5 0 0-37 73.5 0zm0 74.4l0 37.3-73.5 0 0-37.3 73.5 0zm11.1-147.3l54-43.7-118.5 0 64.5 43.7zm210 72.9l0 37-196 0 0-37 196 0zm0 74.4l0 37.3-196 0 0-37.3 196 0zM286.7 113.1l64.5-43.7-118.4 0 53.9 43.7zM371.3 335l0 37.3-99.4 0 0-37.3 99.4 0z\"],\n \"speaker-deck\": [512, 512, [], \"f83c\", \"M213.9 296L100 296c-26.5 0-52-10.5-70.7-29.3S0 222.5 0 196 10.5 144 29.3 125.3 73.5 96 100 96l132.8 0c10.6 0 20.8 4.2 28.3 11.7s11.7 17.7 11.7 28.3-4.2 20.8-11.7 28.3-17.7 11.7-28.3 11.7L98 176c-26.5 0-26.4 40 0 40l113.8 0c26.5 0 52 10.5 70.7 29.3s29.3 44.2 29.3 70.7-10.5 52-29.3 70.7-44.2 29.3-70.7 29.3L40 416c-10.6 0-20.8-4.2-28.3-11.7S0 386.6 0 376 4.2 355.2 11.7 347.7 29.4 336 40 336l173.9 0c26.5 0 26.5-40 0-40zM298 416c13.5-9.2 25-21 33.8-34.7s14.7-29.2 17.3-45.3l64.6 0c2.6 0 5.2-.6 7.6-1.6s4.6-2.5 6.4-4.4 3.3-4.1 4.2-6.5 1.5-5 1.4-7.6l0-120c0-2.6-.5-5.2-1.4-7.6s-2.4-4.6-4.2-6.5-4-3.3-6.4-4.4-5-1.6-7.6-1.6l-117.2 0c9.7-11.1 15-25.3 15-40s-5.3-28.9-15-40l136.9 0c43.4 0 78.6 35.8 78.6 80l0 160c0 44.2-35.2 80-78.6 80L298 416z\"],\n \"flickr\": [448, 512, [], \"f16e\", \"M400 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM144.5 192a63.5 63.5 0 1 1 0 127 63.5 63.5 0 1 1 0-127zm159 0a63.5 63.5 0 1 1 0 127 63.5 63.5 0 1 1 0-127z\"],\n \"cc-visa\": [576, 512, [], \"f1f0\", \"M470.1 231.3s7.6 37.2 9.3 45l-33.4 0c3.3-8.9 16-43.5 16-43.5-.2 .3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM152.5 331.2l63.2-155.2-42.5 0-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1l-64.7 0-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135 42.5 0zm94.4 .2l25.2-155.4-40.2 0-25.1 155.4 40.1 0zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2 .2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2 .1 69.7-20.8 70-53zM528 331.4l-32.4-155.4-31.1 0c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5 42.2 0s6.9-19.2 8.4-23.3l51.6 0c1.2 5.5 4.8 23.3 4.8 23.3l37.2 0z\"],\n \"upwork\": [640, 512, [], \"e641\", \"M493.9 295.6c-50.3 0-83.5-38.9-92.8-53.9 11.9-95.3 46.8-125.4 92.8-125.4 45.5 0 80.9 36.4 80.9 89.7s-35.4 89.7-80.9 89.7l0-.1zm0-237.8c-81.9 0-127.8 53.4-141 108.4-14.9-28-25.9-65.5-34.5-100.3l-113.2 0 0 141c0 51.1-23.3 89-68.8 89s-71.6-37.8-71.6-89l.5-141-65.3 0 0 141c0 41.1 13.3 78.4 37.6 105.1 25 27.5 59.2 41.8 98.8 41.8 78.8 0 133.8-60.4 133.8-146.9l0-94.8c8.2 31.2 27.8 91.1 65.3 143.6l-35 199.4 66.4 0 23.1-141.3c7.6 6.3 15.7 12 24.2 17 22.2 14 47.7 21.9 73.9 22.8 0 0 4 .2 6.1 .2 81.2 0 145.9-62.9 145.9-147.8S575.3 57.9 494.1 57.9l-.2-.1z\"],\n \"kakao-talk\": [576, 512, [], \"e7d7\", \"M288 2.5c159.1 0 288 101.7 288 227.1 0 125.4-128.9 227.1-288 227.1-17.5 0-34.6-1.2-51.2-3.6-16.6 11.7-112.6 79.1-121.7 80.4 0 0-3.7 1.4-6.9-.4s-2.6-6.7-2.6-6.7C106.6 519.8 130.6 437.2 135 421.9 53.9 381.8 0 310.6 0 229.5 0 104.1 128.9 2.5 288 2.5zM86.2 161.7c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3l25.9 0 0 98.7c0 8.8 7.5 15.9 16.6 15.9s16.6-7.1 16.6-15.9l0-98.7 25.9 0c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3l-85.1 0zm140.8 0c-10.8 .2-19.3 8.4-22.1 16.4L165.2 282.7c-5 15.7-.6 21.5 3.9 23.6 3.2 1.5 6.9 2.3 10.6 2.3 6.9 0 12.2-2.8 13.8-7.3l8.2-21.6 50.7 0 8.2 21.5c1.6 4.5 6.9 7.3 13.8 7.3 3.7 0 7.3-.8 10.6-2.3 4.6-2.1 9-7.9 3.9-23.6L249.2 178.1c-2.8-8-11.3-16.2-22.2-16.4zm180.9 0c-9.2 0-16.6 7.5-16.6 16.6l0 113.7c0 9.2 7.5 16.6 16.6 16.6s16.6-7.5 16.6-16.6l0-36.2 5.8-5.8 38.9 51.6c3.2 4.2 8 6.6 13.3 6.6 3.6 0 7.1-1.1 10-3.3 3.5-2.7 5.8-6.6 6.4-11s-.5-8.8-3.2-12.3l-40.9-54.2 37.9-37.8c2.6-2.6 3.9-6.2 3.7-10.1-.2-3.9-2-7.6-4.9-10.5-3.1-3.1-7.3-4.9-11.4-4.9-3.6 0-6.8 1.3-9.2 3.7l-46.3 46.4 0-35.7c0-9.2-7.5-16.6-16.6-16.6zm-91.3 0c-9.3 0-16.9 7.5-16.9 16.6l0 112.8c0 8.4 7.1 15.2 15.9 15.3l53.3 0c8.8 0 15.9-6.9 15.9-15.3s-7.2-15.2-15.9-15.2l-35.3 0 0-97.6c0-9.2-7.6-16.6-17-16.6zm-73 88.6l-33.2 0 16.6-47.1 16.6 47.1z\"],\n \"flutter\": [448, 512, [], \"e694\", \"M429.5 236.3L291.7 374.1 429.5 512 272 512c-36.1-36.1-82.1-82.1-137.9-137.9l137.9-137.8 157.5 0zM272 0L16 256 94.8 334.8 429.5 0 272 0z\"],\n \"buffer\": [448, 512, [], \"f837\", \"M428.2 380.7L231.7 478.5c-2.3 1-4.8 1.5-7.3 1.5s-5-.5-7.3-1.5L20.5 380.7c-4-2-4-5.3 0-7.3L67.6 350c2.3-1 4.8-1.5 7.3-1.5s5 .5 7.3 1.5l134.8 67c2.3 1 4.8 1.5 7.3 1.5s5-.5 7.3-1.5l134.8-67c2.3-1 4.8-1.5 7.3-1.5s5 .5 7.3 1.5l47.1 23.4c4 2 4 5.2 0 7.2zm0-136.5l-47.1-23.4c-2.3-1-4.8-1.5-7.3-1.5s-5 .5-7.3 1.5L231.7 287.8c-2.3 1-4.8 1.5-7.3 1.5s-5-.5-7.3-1.5L82.3 220.7c-2.3-1-4.8-1.5-7.3-1.5s-5 .5-7.3 1.5L20.5 244.1c-4 2-4 5.3 0 7.3l196.5 97.8c2.3 1 4.8 1.5 7.3 1.5s5-.5 7.3-1.5l196.5-97.8c4-2 4-5.3 0-7.3zM20.5 130.4L217 220.7c4.7 1.9 10 1.9 14.7 0l196.5-90.3c4-1.9 4-4.9 0-6.7L231.7 33.4c-4.7-1.9-10-1.9-14.7 0L20.5 123.7c-4 1.8-4 4.9 0 6.7z\"],\n \"gratipay\": [512, 512, [], \"f184\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM374.3 233.7L257.7 391.3 141.3 233.7c-9-12.3-19.7-52 14-74.3 29-18.7 56.4-4.3 70.7 12.3 16.4 18.5 48.1 17.4 63.7 0 14.3-16.6 41.7-31 70.3-12.3 34 22.3 23.3 61.9 14.2 74.3z\"],\n \"google-pay\": [640, 512, [], \"e079\", \"M105.7 215l0 41.2 57.1 0c-1.2 6.6-3.6 12.9-7.2 18.5s-8.4 10.4-13.9 14.1c-9.5 6.6-21.7 10.3-36 10.3-27.6 0-50.9-18.9-59.3-44.2-4.4-13.3-4.4-27.7 0-41 8.4-25.5 31.7-44.4 59.3-44.4 7.5-.1 14.9 1.2 21.9 4s13.3 6.9 18.6 12.1L176.5 155c-19.1-18.1-44.4-28.1-70.7-27.8-19.7 .1-38.9 5.7-55.6 16.1s-30.1 25.3-38.8 43C3.9 201.2 0 217.7 0 234.4s3.9 33.2 11.3 48.1l0 .2c8.7 17.7 22.1 32.5 38.8 43s35.9 16 55.6 16c28.5 0 52.5-9.5 70-25.9 20-18.6 31.4-46.2 31.4-78.9 0-7.3-.6-14.6-1.8-21.8l-99.7 0zm389.4-4c-10.1-9.4-23.9-14.1-41.4-14.1-22.5 0-39.3 8.3-50.5 24.9L424.1 235c7.6-11.3 18.1-17 31.3-17 8.4 0 16.5 3.2 22.7 8.8 3 2.6 5.5 5.9 7.1 9.6s2.5 7.6 2.5 11.7l0 5.5c-9.1-5.1-20.6-7.8-34.6-7.8-16.4 0-29.6 3.9-39.5 11.8s-14.8 18.3-14.8 31.6c-.2 5.9 1 11.8 3.4 17.2s6 10.2 10.5 14.1c9.2 8.3 21 12.5 34.8 12.5 16.3 0 29.2-7.3 39-21.9l1 0 0 17.7 22.6 0 0-78.7c.1-16.6-4.9-29.7-15-39zm-19.2 89.3c-3.5 3.5-7.6 6.3-12.2 8.2s-9.5 2.9-14.4 2.9c-6.7 .1-13.1-2.1-18.3-6.2-2.4-1.8-4.4-4.2-5.7-6.9s-2-5.7-2-8.7c0-7 3.2-12.8 9.5-17.4s14.5-7 24.1-7c13.2-.2 23.5 2.8 30.8 8.8 0 10.1-4 18.9-11.7 26.4zm-93.7-142c-5.3-5.3-11.6-9.5-18.6-12.3s-14.4-4.2-21.9-4l-62.7 0 0 186.7 23.6 0 0-75.6 39 0c16 0 29.5-5.4 40.5-15.9 .9-.9 1.8-1.8 2.6-2.7 9.6-10.5 14.8-24.4 14.3-38.6s-6.6-27.7-16.9-37.6l0 0zm-16.6 62.2c-3 3.2-6.6 5.7-10.6 7.4s-8.4 2.5-12.7 2.3l-39.6 0 0-65.2 39.6 0c8.5 0 16.6 3.3 22.6 9.2 6.1 6.1 9.6 14.3 9.8 23s-3.1 17-9 23.3l0 0zM614.3 201l-36.5 91.7-.5 0-37.4-91.7-25.7 0 51.8 119.6-29.4 64.3 24.3 0 79-183.9-25.7 0z\"],\n \"apple\": [384, 512, [], \"f179\", \"M319.1 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7-55.8 .9-115.1 44.5-115.1 133.2 0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zM262.5 104.5c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"],\n \"tumblr\": [320, 512, [], \"f173\", \"M309.9 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6l0-144-47.5 0c-5.5 0-10-4.5-10-10l0-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1 .8-11 6.5-16.3 16.1-16.3l70.9 0c5.5 0 10 4.5 10 10l0 115.2 83 0c5.5 0 10 4.4 10 9.9l0 81.7c0 5.5-4.5 10-10 10l-83.4 0 0 133.2c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5 .9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"],\n \"phoenix-squadron\": [512, 512, [], \"f511\", \"M96 63.4c46.5-36.1 105.6-56.1 164.5-54.6 29.6-.4 59.1 5.4 86.9 15.3-24.1-4.6-49-6.3-73.4-2.5-42.9 5.3-83 27.2-111.8 59.2 5.7-1 10.8-3.7 16-5.9 18.1-7.9 37.5-13.3 57.2-14.8 19.7-2.1 39.6-.4 59.3 1.9-14.4 2.8-29.1 4.6-43 9.6-34.4 11.1-65.3 33.2-86.3 62.6-13.8 19.7-23.6 42.9-24.7 67.1-.4 16.5 5.2 34.8 19.8 44 11.2 6.8 24.6 9.2 37.5 6.7 15.4-2.5 30.1-8.6 43.6-16.3 11.5-6.8 22.7-14.6 32-24.3 3.8-3.2 2.5-8.4 2.6-12.8-2.1-.3-4.4-1.1-6.3 .3-11.4 6.3-23.4 11.4-35.8 15.4-20 6.2-42.2 8.5-62.1 .8 12.8 1.7 26.1 .3 37.7-5.4 20.2-9.7 36.8-25.2 54.4-38.8 27.7-21.3 57.5-39.9 88.9-55.3 25.7-12 52.9-22.8 81.6-24.1-15.6 13.7-32.1 26.5-46.8 41.4-14.5 14-27.5 29.5-40.1 45.2-3.5 4.6-9 6.9-13.6 10.2-22.4 15-40.3 35.8-51.9 60.1-9.3 19.7-14.5 41.9-11.8 63.6 1.9 13.7 8.7 27.6 20.9 34.9 12.9 8 29 8.1 43.5 5.1 32.8-7.4 61.4-28.9 81-55.8 20.4-27.5 30.5-62.2 29.2-96.3-.5-7.5-1.6-15-1.7-22.5 8 19.5 14.8 39.7 16.6 60.8 2 14.3 .7 28.8-1.6 42.9-1.9 11-5.7 21.5-7.8 32.4 20.4-22.9 34-50.9 39.3-81.1 5.6-35.5 .7-71.9-14.2-104.6 20.8 32 32.3 69.6 35.7 107.5 .5 12.7 .5 25.5 0 38.2-2.8 34.3-12.9 67.6-29.6 97.8-26.1 47.3-68 85.6-117.2 108-78.3 36.2-174.7 31.3-248-14.7-39-23.8-70.6-58-91.4-98.7-14.7-28.9-23.3-60.5-25.4-92.9l0-31.3C3.9 172 40.9 105.8 96 63.4zm222 80.3c5.5-.9 10.8-2.4 16-4.5 5-1.8 9.2-5.9 10.3-11.2-9 5-18 9.9-26.3 15.7z\"],\n \"centercode\": [512, 512, [], \"f380\", \"M201.8 254.8a64.1 64.1 0 1 1 127.4 13.8 64.1 64.1 0 1 1 -127.4-13.8zm41.6 248.9C96.7 496-8.2 365.5 10.1 224.3 21.3 137.7 75.9 67.4 149.2 32.3 310.2-44.8 498.9 69.7 503.9 248.9 508 395.9 385.5 511.1 243.4 503.7zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"],\n \"debian\": [448, 512, [], \"e60b\", \"M380.4 245.6c3-7.6 5.5-14 5.2-24.4l-4.3 9c4.4-13.2 4-27.1 3.6-40.4-.2-6-.3-11.8 0-17.4l-1.8-.5c-1.5-45.2-40.6-93.1-75.3-109.4-30-13.8-76.1-16.2-97.3-5.8 1.3-1.1 4.2-2 6.8-2.7l.3-.1c3.3-1 6-1.7 4-2.9-19.2 1.9-24.9 5.5-31.1 9.4l-.1 0c-4.6 2.9-9.5 6-20.3 8.7-3.5 3.4 1.7 2 5.8 .9s7.2-1.9-.1 2.4c-3.5 1-6.6 1.3-9.6 1.6l-.1 0c-8.3 .8-15.8 1.6-30.7 17 .8 1.3 3.4-.2 5.3-1.3l.1-.1c2.3-1.4 3.4-2-1.7 4.4-19.1-2.4-60.3 43.7-69.1 59l4.6 .8c-3.2 8-6.8 14.8-10 20.8-4.3 8.1-7.9 14.9-8.7 21.3-.3 5.1-1 11-1.7 17.3-.1 1-.2 2-.3 3l-.1 .6c-3 27.3-6.7 60.8 3.9 73l-1.3 13c.6 1.2 1.1 2.3 1.6 3.5 .2 .4 .4 .8 .5 1.1 1 2.1 2 4.2 3.3 6.2l-3 .2c7 22.1 10.8 22.5 15.1 22.9 4.4 .4 9.3 .9 18.7 24.2-2.7-.9-5.5-1.9-9.4-7.2-.5 4.1 5.8 16.3 13.1 25.8l-3.1 3.6c2.1 3.7 4.8 6.2 7.6 8.8 1 .9 2.1 1.9 3.1 2.9-11.9-6.5 3.2 13.7 11.9 25.2 .8 1.1 1.5 2 2.2 2.9 1.4 1.9 2.5 3.4 2.9 4.1l2.4-4.2c-.3 6.1 4.3 13.9 13.1 24.7l7.3-.3c3 6 14 16.7 20.7 17.2l-4.4 5.8c8.1 2.6 10.3 4.3 12.7 6.2 2.6 2.1 5.4 4.3 16.1 8.1l-4.2-7.4c3.5 3 6.2 5.9 8.8 8.7l.1 .1c5.2 5.6 9.9 10.6 19.7 15.3 10.7 3.7 16.6 4.7 22.7 5.8 .3 0 .6 .1 .9 .1 5.4 .8 11.2 1.8 20.8 4.5-1.1-.1-2.2-.1-3.3-.1-2.3-.1-4.7-.1-7-.1-14.4-.2-29.2-.4-42.7-5.2-96.6-25.7-184.9-139-178.4-255.6-.6-9.9-.3-20.9 0-30.7 .4-13.5 .7-24.8-1.6-28.3l1-3.1c5.3-17.4 11.7-38.2 23.8-62.8l-.1-.2 0-.1c.4 .4 3.4 3.4 8.8-5.8 .8-1.8 1.6-3.7 2.4-5.6 .5-1.1 .9-2.2 1.4-3.2 2.5-6.1 5.1-12.3 8.4-17.9l2.6-.6c1.7-10.1 17-23.8 29.8-35.2l1.1-1c5.7-5.1 10.7-9.7 13.6-13.1l.7 4.4c17-15.9 44.6-27.5 65.6-36.4l.5-.2c4.8-2 9.3-3.9 13.3-5.7-3.4 3.8 2.2 2.7 10 1 4.8-1 10.4-2.1 15.3-2.4l-3.9 2.1c-2.7 1.4-5.4 2.8-8 4.6 8.1-2 11.7-1.4 15.7-.8l.3 0c3.5 .6 7.3 1.2 14.6 .2-5.6 .8-12.3 3-11.2 3.8 7.9 .9 12.8-.1 17.2-1l.2 0c5.5-1.1 10.3-2 19.3 .9l-1-4.8c7.3 2.6 12.7 4.3 17.5 5.8l.5 .1c10 3 17.6 5.3 34.2 14.1 3.2 .2 5.3-.5 7.4-1.2l.1 0c3.6-1.1 7-2.1 15.2 1.2 .3 .5 .5 1 .7 1.4 .1 .2 .2 .5 .3 .7l0 .1c1 2.6 1.8 4.6 14.6 12.1 1.7-.7-2.7-4.7-6.4-8.2l-.1-.1c-.2-.1-.3-.3-.5-.4 32.2 17.3 67.3 54.1 78 93.5-6-11.1-5.2-5.5-4.3 .5 .6 4 1.2 8.1-.2 7.5 4.5 12.1 8.1 24.5 10.4 37.4l-.8-2.9-.1-.3c-3.3-11.9-9.6-34.3-19.9-49.3-.4 4.3-2.8 3.9-5.2 3.5l-.1 0c-3.3-.6-6.2-1.1-1.9 12.6 2.6 3.8 3.1 2.4 3.5 1.1 .5-1.5 .9-2.7 4.7 5.2 .1 4.1 1 8.2 2.1 12.7l.1 .6c.1 .3 .1 .5 .2 .8l.1 .6c.6 2.6 1.3 5.4 1.8 8.4-1.1-.2-2.3-2.2-3.4-4.2-1.4-2.4-2.8-4.7-3.7-3.2 2.4 11.5 6.5 17.4 8 18.3-.3 .6-.6 .7-1.1 .7-.8 0-1.8 .1-1.9 5.3 .7 13.7 3.3 12.5 5.3 11.6 .6-.3 1.2-.6 1.7-.4-.6 2.5-1.6 5.1-2.7 7.9-2.8 7.1-6 15.4-3.4 26.1-.8-3-2-6-3.1-8.9l-.1-.4c-.2-.5-.4-1-.6-1.5-.3-.8-.6-1.6-.9-2.3-.6 4.4-.3 7.7-.1 10.6l0 .7c.4 5.3 .7 10-3 19.9 4.3-14.2 3.8-26.9-.2-20.8 1 10.9-3.7 20.4-8 28.9l-.1 .2c-3.6 7.1-6.8 13.5-5.9 19.3l-5.2-7.1c-7.5 10.9-7 13.3-6.5 15.5l0 .1c.5 1.9 1 3.8-3.4 10.8 1.7-2.9 1.3-3.6 1-4.2-.4-.8-.7-1.5 1.7-5.1-1.6 .1-5.5 3.9-10.1 8.5-3.9 3.9-8.5 8.4-12.8 11.8-37.5 30.1-82.3 34-125.6 17.8 .2-1-.2-2.1-3.1-4.1-36.8-28.2-58.5-52.1-50.9-107.5 2.1-1.6 3.6-5.8 5.3-10.8l.2-.4 .1-.3 0-.1c2.9-8.4 6.5-18.8 14.3-23.8 7.8-17.3 31.3-33.3 56.4-33.7 25.6-1.4 47.2 13.7 58.1 27.9-19.8-18.4-52.1-24-79.7-10.4-28.2 12.7-45 43.8-42.5 74.7 .3-.4 .6-.6 .9-.8l.2-.2c.6-.5 1.1-.9 1.4-3.3-.9 60.2 64.8 104.3 112.1 82l.6 1.3c12.7-3.5 15.9-6.5 20.3-10.7l.1-.1c2.2-2.1 4.7-4.5 8.9-7.3-.3 .7-1.3 1.7-2.4 2.7-2.2 2.1-4.6 4.5-1.6 4.6 5-1.3 18.5-13.4 28.5-22.3 .6-.5 1.2-1 1.7-1.5 1.5-1.3 2.8-2.5 4-3.6l.3-.3c1.9-4.2 1.6-5.6 1.3-7l0-.1c-.4-1.6-.8-3.3 2.4-9.6l7.3-3.7c.8-2.1 1.5-4.1 2.2-6 .2-.6 .5-1.2 .7-1.8l-.4-.2-.1-.1zM248 334.1c-6-3-13.7-8.9-14.8-11.4l-.4 .3c-.3 .6-.5 1.3-.2 2.2-12.2-5.7-23.4-14.3-32.6-24.9 4.9 7.1 10.1 14.1 17 19.5-6.9-2.3-15.1-11.8-21.6-19.3l-.1-.1c-4.3-5-7.9-9.1-9.7-9.5 19.8 35.5 80.5 62.3 112.3 49-14.7 .5-33.4 .3-49.9-5.8zm79.3-119.7l-.1-.2c-.5-1.5-1.1-3.1-1.7-3.4 1.4-5.8 5.4-10.7 4.4 4.6-1 3.8-1.8 1.5-2.6-1zm-4.2 22.2c-1.3 7.9-5 15.5-10.1 22.5 .2-2-1.2-2.4-2.6-2.8-2.9-.8-5.9-1.6 5.6-16.1-.5 1.9-2.1 4.6-3.7 7.3l-.3 .4c-3.6 5.9-6.7 11 4 4.3l1-1.8c2.6-4.5 5-8.8 6-13.8l.1 0zm-55.6 33.9c7.1 .6 14.1 .6 21-1.1-2.5 2.4-5.2 4.8-8.3 7.2-11.1-1.7-21.2-6-12.7-6.1zm-92.6 11.6c3.6 7.1 6.4 11.5 9 15.7l.1 .2c2.3 3.7 4.4 7.1 6.8 11.7-5.1-4.2-8.7-9.5-12.5-15l-.3-.5c-1.4-2.1-2.8-4.2-4.4-6.2l1.2-5.9 .1 0zm7.5-9.6c1.6 3.3 3.2 6.4 5.7 9.1l2.6 7.7-1.3-2.1c-3.2-5.3-6.3-10.6-8-16.7l1 2zm238.9-41.6c-2.3 17.4-7.7 34.6-16 50.3 7.6-14.9 12.5-30.9 14.8-47.2l1.2-3.1zM35.8 110.6c.4 .8 1.4 .5 2.3 .3 1.9-.5 3.6-.9-.1 7.6-.5 .3-1 .7-1.5 1-1.4 .9-2.8 1.9-3.9 3 1.9-3.8 3.5-7.4 3.2-11.9zM25.5 152.3c-.7 3.7-1.5 7.9-3.4 13.9 .2-1.9 0-3.5-.2-4.9l0-.1c-.4-3.4-.7-6.3 4.3-12.8-.3 1.2-.5 2.5-.7 3.8l0 .1z\"],\n \"mastodon\": [448, 512, [], \"f4f6\", \"M433 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.6-28.4-290.5 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.6-.9-9.3-.9-13.9 85.6 20.9 158.7 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zM357.9 304.3l-46.6 0 0-114.2c0-49.7-64-51.6-64 6.9l0 62.5-46.3 0 0-62.5c0-58.5-64-56.6-64-6.9l0 114.2-46.7 0c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175l0 0z\"],\n \"sketch\": [512, 512, [], \"f7c6\", \"M27.8 162.2l-18.5 24.9 90.5 0 6.9-130.7-78.9 105.8zM396.6 45.7L268 32 403.7 179.2 396.6 45.7zM112.5 218.3l-11.2-22-91.1 0 224.9 261.7-122.6-239.7zm2-31.2l284 0C340.6 124.3 293.3 72.9 256.6 33L114.5 187.1zm297.3 9.1l-133.9 261.8 224.8-261.7-90.9 0 0-.1zM415.7 69l-9.4-12.6 .9 17.3 6.1 113.4 90.3 0-87.9-118.1zM113.8 93.5L109.2 179.1 245 32 116.4 45.7 113.8 93.5zM401.5 196.2l-290 0c18.2 35.6 66.6 130.2 145.1 283.8L401.5 196.2z\"],\n \"web-awesome\": [640, 512, [], \"e682\", \"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192 552.4 171.1c-5.3-7.7-8.4-17.1-8.4-27.1 0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144 0 117.5 21.5 96 48 96s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1 0-28.7 23.3-52 52-52s52 23.3 52 52l.1 0z\"],\n \"sass\": [640, 512, [], \"f41e\", \"M301.8 378.9l0 0zm249.1-87c-20.1 0-40 4.6-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.3 5.9c-2.3 6.2-4.1 12.6-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.9 77.3-42.1 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4 .8-.7 1.3-.9 1.7 .3-.5 .5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7l0 .1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4 .3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.3-35.4 189.8-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8 61.8-23.8 109.9-90.1 95.8-145.6-14.4-56.4-107.9-74.9-196.3-43.5-52.7 18.7-109.7 48.1-150.7 86.4-48.7 45.6-56.5 85.3-53.3 101.9 11.4 58.9 92.6 97.3 125.1 125.7-1.6 .9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3l0 .1s.2-.4 .7-1.2c1-1.5 1.5-2.4 1.5-2.4l0-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5 1.5 8.7 3.6 17.3 6.2 25.8 2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2 0 .1 0 .1 .1 .2-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 7.2-2.6 14-6.1 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6 1.5 8.7 3.6 17.3 6.2 25.8 2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 7.7-2.6 15-6.3 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1l0 0zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3-11.9-6.9-7.2-36.5 15.5-57.9 13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9 .8-.5 1.2-.7 1.2-.7 .9-.6 1.9-1.1 2.9-1.7 8.3 30.4 .3 57.2-19.1 78.3l0 0zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5 .1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8l0 0zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.5 1.8 7.1 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4l0 0z\"],\n \"square-whatsapp\": [448, 512, [\"whatsapp-square\"], \"f40c\", \"M92.1 254.6c0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4l.1 0c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7-72.7 0-131.8 59.1-131.9 131.8zM274.8 330c-12.6 1.9-22.4 .9-47.5-9.9-36.8-15.9-61.8-51.5-66.9-58.7-.4-.6-.7-.9-.8-1.1-2-2.6-16.2-21.5-16.2-41 0-18.4 9-27.9 13.2-32.3 .3-.3 .5-.5 .7-.8 3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6 .1l.8 0c2.3 0 5.2 0 8.1 6.8 1.2 2.9 3 7.3 4.9 11.8 3.3 8 6.7 16.3 7.3 17.6 1 2 1.7 4.3 .3 6.9-3.4 6.8-6.9 10.4-9.3 13-3.1 3.2-4.5 4.7-2.3 8.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2s23.1 10.9 27.1 12.9c.8 .4 1.5 .7 2.1 1 2.8 1.4 4.7 2.3 5.5 3.6 .9 1.9 .9 9.9-2.4 19.1-3.3 9.3-19.1 17.7-26.7 18.8zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM148.1 393.9L64 416 86.5 333.8c-13.9-24-21.2-51.3-21.2-79.3 .1-87.4 71.2-158.5 158.6-158.5 42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5-26.6 0-52.7-6.7-75.8-19.3z\"],\n \"skype\": [448, 512, [], \"f17e\", \"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7-19-14.7-42.6-23.4-68.3-23.4-61.8 0-112 50.2-112 112 0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zM230.1 391.3c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"],\n \"angular\": [448, 512, [], \"f420\", \"M185.7 268.1l76.2 0-38.1-91.6-38.1 91.6zM223.8 32L16 106.4 47.8 382.1 223.8 480 399.8 382.1 431.6 106.4 223.8 32zM354 373.8l-48.6 0-26.2-65.4-110.6 0-26.2 65.4-48.7 0 130.1-292.3 130.2 292.3z\"],\n \"opensuse\": [640, 512, [], \"e62b\", \"M471.1 102.7s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7-5.5 13.3-12.6 43.3-5.5 71.4 3.3 12.8 8.9 24.9 16.5 35.7 17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2 .3 27.8 24.3 42.6 41.5 42.6 5.4 0 10.7-.9 15.8-2.7 6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9 .5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14l0-.1c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3l45.9 0c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3l48.6 0c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5 .4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3 .5-76.2-25.4-81.6-28.2-.3-.4 .1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7 .8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3 .1-.1-.9-.3-.9 .7zm60.4 72.8a37.6 37.6 0 1 1 75.2 2.6 37.6 37.6 0 1 1 -75.2-2.6zm38.6-25.3c-3.6-.3-7.1 .1-10.5 1.2s-6.5 2.9-9.2 5.3-4.8 5.3-6.3 8.5-2.4 6.7-2.5 10.3 .5 7.1 1.8 10.4 3.3 6.3 5.8 8.9 5.5 4.5 8.8 5.9 6.9 2 10.4 1.9c3.6 .3 7.1-.1 10.5-1.2s6.5-2.9 9.2-5.3 4.8-5.3 6.3-8.5 2.4-6.7 2.5-10.3-.5-7.1-1.8-10.4-3.3-6.3-5.8-8.9-5.5-4.5-8.8-5.9-6.9-2-10.4-1.9zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.6 0 15.6z\"],\n \"dropbox\": [576, 512, [], \"f16b\", \"M288.4 116.3l-132 84.3 132 84.3-132 84.3-132.4-85.1 132.3-84.3-132.3-83.5 132.3-84.3 132.1 84.3zM155.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zM288.4 284.1l132-84.3-132-83.6 131.3-84.2 132.3 84.3-132.3 84.3 132.3 84.2-132.3 84.3-131.3-85z\"],\n \"deezer\": [512, 512, [], \"e077\", \"M14.8 101.1C6.6 101.1 0 127.6 0 160.3s6.6 59.2 14.8 59.2 14.8-26.5 14.8-59.2-6.6-59.2-14.8-59.2zM448.7 40.9c-7.7 0-14.5 17.1-19.4 44.1-7.7-46.7-20.2-77-34.2-77-16.8 0-31.1 42.9-38 105.4-6.6-45.4-16.8-74.2-28.3-74.2-16.1 0-29.6 56.9-34.7 136.2-9.4-40.8-23.2-66.3-38.3-66.3s-28.8 25.5-38.3 66.3c-5.1-79.3-18.6-136.2-34.7-136.2-11.5 0-21.7 28.8-28.3 74.2-6.6-62.5-21.2-105.4-37.8-105.4-14 0-26.5 30.4-34.2 77-4.8-27-11.7-44.1-19.4-44.1-14.3 0-26 59.2-26 132.1S49 305.2 63.3 305.2c5.9 0 11.5-9.9 15.8-26.8 6.9 61.7 21.2 104.1 38 104.1 13 0 24.5-25.5 32.1-65.6 5.4 76.3 18.6 130.4 34.2 130.4 9.7 0 18.6-21.4 25.3-56.4 7.9 72.2 26.3 122.7 47.7 122.7s39.5-50.5 47.7-122.7c6.6 35 15.6 56.4 25.3 56.4 15.6 0 28.8-54.1 34.2-130.4 7.7 40.1 19.4 65.6 32.1 65.6 16.6 0 30.9-42.3 38-104.1 4.3 16.8 9.7 26.8 15.8 26.8 14.3 0 26-59.2 26-132.1S463 40.9 448.7 40.9zm48.5 60.2c-8.2 0-14.8 26.5-14.8 59.2s6.6 59.2 14.8 59.2 14.8-26.5 14.8-59.2-6.6-59.2-14.8-59.2z\"],\n \"creative-commons-sampling\": [512, 512, [], \"f4f0\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6s10.6 4.7 10.6 10.6c0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6l58 0 0 21.3-50.9 0-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9 .6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9 .5 6.7-5.8-87.7L255 383.9c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12L228 296.6c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6-4.9 56.7c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L157.7 272c-2 4-3.5 8.4-11.1 8.4l-51.4 0 0-21.3 44.8 0 13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6 .5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6 .6 0 10.6 .7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"],\n \"jedi-order\": [448, 512, [], \"f50e\", \"M398.9 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9 0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7S59.1 388.6 144.9 230.2c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7l4.1 0c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"],\n \"r-project\": [576, 512, [], \"f4f7\", \"M578.5 226.6C578.5 119.1 448.4 32 288 32S-2.5 119.1-2.5 226.6c0 95.8 103.3 175.4 239.4 191.5l0 61.9 99.1 0 0-61.5c24.3-2.7 47.6-7.4 69.4-13.9l40.1 75.4 112 0-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zM111.7 241.1c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9l-199 0 0 208.3c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3l0-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5l26.6 0c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9l0-22.1z\"],\n \"instalod\": [512, 512, [], \"e081\", \"M153.6 480l233.7 0 115.4-204.2-298.3 57.4-50.8 146.8zM505 240.1L387.4 32 155.9 32 360.5 267.9 505 240.1zM124.6 48.8L7.5 256 123.5 461.2 225.9 165.6 124.6 48.8z\"],\n \"canadian-maple-leaf\": [512, 512, [], \"f785\", \"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5-5.1-7.5-42.7-79.8-42.7-79.8s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3s-12.5 27.3-15 32.3-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167S43 226.7 45.5 234.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512l30 0s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"],\n \"ethereum\": [320, 512, [], \"f42e\", \"M311.9 260.8L160 353.6 8 260.8 160 0 311.9 260.8zM160 383.4L8 290.6 160 512 312 290.6 160 383.4z\"],\n \"houzz\": [448, 512, [], \"f27c\", \"M276 330.7l-104.6 0 0 149.3-154.3 0 0-448 109.5 0 0 104.5 305.1 85.6 0 257.9-155.7 0 0-149.3z\"],\n \"viber\": [512, 512, [], \"f409\", \"M444.3 49.9c-12.7-11.7-64.1-49-178.7-49.5 0 0-135.1-8.1-200.9 52.3-36.6 36.6-49.5 90.3-50.9 156.8s-3.1 191.1 117 224.9l.1 0-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM458.2 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9 .4-85.7 .4-85.7l0 0C43.4 372.7 49.4 266.6 50.5 211.1s11.6-101 42.6-131.6c55.7-50.5 170.4-43 170.4-43 96.9 .4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9 .6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4 .7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5 .9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9 .1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7 .5 133 51.4 133.7 139.2zM375.2 329l0 .2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8l.2 0c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1 .8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"],\n \"kickstarter\": [448, 512, [\"square-kickstarter\"], \"f3bb\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320.8 233l-23.3 23.1 23.3 22.9c24.1 23.9 24.1 63 0 86.9s-63.4 23.9-87.6 0l-8.5-8.4c-11.3 16-29.7 26.5-50.9 26.5-34.1 0-61.9-27.5-61.9-61.4l0-133.2c0-33.8 27.7-61.4 61.9-61.4 21.1 0 39.6 10.5 50.9 26.5l8.5-8.4c24.1-23.9 63.4-23.9 87.6 0s24.1 63 0 86.9z\"],\n \"spotify\": [512, 512, [], \"f1bc\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM356.7 372.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"],\n \"leanpub\": [576, 512, [], \"f212\", \"M386.6 111.5l15.1 249-11-.3c-36.2-.8-71.6 8.8-102.7 28-31-19.2-66.4-28-102.7-28-45.6 0-82.1 10.7-123.5 27.7L93.2 129.6c28.5-11.8 61.5-18.1 92.2-18.1 41.2 0 73.8 13.2 102.7 42.5 27.7-28.3 59-41.7 98.5-42.5zM569.2 448c-25.5 0-47.5-5.2-70.5-15.6-34.3-15.6-70-25-107.9-25-39 0-74.9 12.9-102.7 40.6-27.7-27.7-63.7-40.6-102.7-40.6-37.9 0-73.6 9.3-107.9 25-22.2 9.9-44.7 15.6-69.2 15.6L7 448 49.6 98.9c39.3-22.2 87-34.9 132.3-34.9 37.1 0 75.2 7.7 106.2 29.1 31-21.4 69.2-29.1 106.2-29.1 45.3 0 93 12.6 132.3 34.9L569.2 448zm-43.4-44.7L491.8 123c-30.7-14-67.2-21.4-101-21.4-38.4 0-74.4 12.1-102.7 38.7-28.3-26.6-64.2-38.7-102.7-38.7-33.8 0-70.3 7.4-101 21.4l-34 280.2c47.2-19.5 82.9-33.5 135-33.5 37.6 0 70.8 9.6 102.7 29.6 31.8-20 65.1-29.6 102.7-29.6 52.2 0 87.8 14 135 33.5z\"],\n \"java\": [384, 512, [], \"f4e4\", \"M277.8 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8 103.7-81.8 50.5-135 50.5-135 21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zM307 104.6c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9C216 188.1 195.4 169.3 307 104.6zm-6.1 270.5c-.5 1-1.2 1.8-2 2.6 128.3-33.7 81.1-118.9 19.8-97.3-3.3 1.2-6.2 3.4-8.2 6.3 3.6-1.3 7.3-2.3 11-3 31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6 .7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8zM124.5 396c-78.7 22 47.9 67.4 148.1 24.5-9.8-3.8-19.2-8.4-28.2-13.8-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.7 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9-7.8-2.8-15-7.1-21.1-12.8z\"],\n \"nfc-symbol\": [512, 512, [], \"e531\", \"M360.9 32.4c7.7-1.3 15.7 .5 21.2 5 84.1 58.7 129.9 136.3 129.9 217.7 0 83.1-45.8 160.8-129.9 219.5-4.8 4-11.7 5.9-18.6 5.3-7-.6-13.5-3.6-18.4-8.5L161.7 288.7c-5.6-5.5-8.7-13-9.6-20.9 0-7.8 4-15.3 9.5-20.9 5.6-5.5 13.1-8.7 20.9-8.7 7.9 0 15.4 3.1 20.9 8.6L368.5 411.2c54.6-44.7 84.3-99.2 84.3-156.1 0-61.6-36.9-122.2-103.9-169.3-6.4-4.5-10.8-11.4-12.1-19.1-1.4-7.7 .4-15.7 5-22.1 4.5-6.4 11.4-10.8 19.1-12.1zm-206 447.2c-7.7 1.3-15.6-.5-22.1-5-83.1-58.7-129-136.4-129-219.5 0-81.4 45.8-159 129-217.7 5.7-4 12.6-5.9 19.6-5.3 6.9 .6 13.4 3.6 18.3 8.5L354.1 223.3c5.6 5.5 8.7 13 8.7 20.9 .1 6.9-3 15.3-8.6 20.9-5.5 5.5-13 8.7-20.9 8.7-7.8 0-16.2-3.1-20.9-8.6L147.3 100.7c-54.6 45.2-84.3 99.2-84.3 154.4 0 63.4 36.9 124 103.1 171.1 7.3 4.6 11.6 11.4 13 19.2 1.3 7.7-.5 15.7-5 22.1s-11.4 10.7-19.2 12.1z\"],\n \"wodu\": [640, 512, [], \"e088\", \"M178.4 339.7l-37.3 0-28.9-116.2-.5 0-28.5 116.2-38 0-45.2-170.8 37.5 0 27 116.2 .5 0 29.7-116.2 35.2 0 29.2 117.7 .5 0 28-117.7 36.8 0-45.9 170.8zm93-127c39 0 64.1 25.8 64.1 65.3 0 39.2-25.1 65-64.1 65-38.7 0-63.9-25.8-63.9-65 0-39.5 25.1-65.3 63.9-65.3zm0 104.8c23.2 0 30.1-19.9 30.1-39.5 0-19.9-6.9-39.7-30.1-39.7-27.7 0-29.9 19.9-29.9 39.7 0 19.6 6.9 39.5 29.9 39.5zm163.7 6.5l-.5 0c-7.9 13.4-21.8 19.1-37.5 19.1-37.3 0-55.5-32-55.5-66.2 0-33.2 18.4-64.1 54.8-64.1 14.6 0 28.9 6.2 36.8 18.4l.2 0 0-62.2 34 0 0 170.8-32.3 0 0-15.8zm-29.7-85.6c-22.2 0-29.9 19.1-29.9 39.5 0 19.4 8.8 39.7 29.9 39.7 22.5 0 29.2-19.6 29.2-39.9 0-20.1-7.2-39.2-29.2-39.2zM593 339.7l-32.3 0 0-17.2-.7 0c-8.6 13.9-23.4 20.6-37.8 20.6-36.1 0-45.2-20.3-45.2-50.9l0-76.1 34 0 0 69.8c0 20.3 6 30.4 21.8 30.4 18.4 0 26.3-10.3 26.3-35.4l0-64.8 34 0 0 123.6zm9.5-36.8l37.5 0 0 36.8-37.5 0 0-36.8z\"],\n \"square-steam\": [448, 512, [\"steam-square\"], \"f1b7\", \"M165.6 309.1c18.6 7.7 27.3 28.9 19.6 47.4s-29 27.2-47.6 19.4l-28.5-11.8c5 10.6 13.8 19.4 25.4 24.2 25.2 10.5 54.1-1.4 64.6-26.5 5.1-12.1 5.1-25.5 .1-37.7-5.1-12.1-14.5-21.6-26.7-26.7-12.1-5-25-4.8-36.4-.5l29.5 12.2zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96l0 144.7 116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2 0-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM241.9 196.2a58.4 58.4 0 1 0 116.8 0 58.4 58.4 0 1 0 -116.8 0zm102.4-.1a43.9 43.9 0 1 1 -87.8 0 43.9 43.9 0 1 1 87.8 0z\"],\n \"creative-commons-nc-eu\": [512, 512, [], \"f4e9\", \"M255.7 8C111.6 8 8 124.8 8 256 8 392.3 119.7 504 255.7 504 385.9 504 504 403.1 504 256 504 117 396.4 8 255.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1-4.7 0 0 29.5 23.3 0c0 6.2-.4 3.2-.4 19.5l-22.8 0 0 29.5 27 0c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2l90.3 0 128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zM239.6 268.1l-.5-.4 .9 .4-.4 0zm77.2-19.5l3.7 0 0-29.5-70.3 0-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1L85.5 146.4c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9L316.8 248.6z\"],\n \"npm\": [576, 512, [], \"f3d4\", \"M288 288l-32 0 0-64 32 0 0 64zM576 160l0 192-288 0 0 32-128 0 0-32-160 0 0-192 576 0zM160 192l-128 0 0 128 64 0 0-96 32 0 0 96 32 0 0-128zm160 0l-128 0 0 160 64 0 0-32 64 0 0-128zm224 0l-192 0 0 128 64 0 0-96 32 0 0 96 32 0 0-96 32 0 0 96 32 0 0-128z\"],\n \"cloudscale\": [448, 512, [], \"f383\", \"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6-71.6 0-129.4 60.8-129.4 132.3 0 6.6 .4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zM213.7 246.5a14 14 0 1 1 20.6 19 14 14 0 1 1 -20.6-19zM224 32a224 224 0 1 0 0 448 224 224 0 1 0 0-448zm0 64a160 160 0 1 1 0 320 160 160 0 1 1 0-320z\"],\n \"themeco\": [448, 512, [], \"f5c6\", \"M202.9 8.4c9.9-5.7 26-5.8 36-.2L430 115.9c10 5.6 18 19.4 18 30.9L448 364c0 11.4-8.1 25.3-18 31L238.8 503.7c-9.9 5.7-26 5.6-35.8-.2L17.9 395.1C8 389.3 0 375.4 0 364L0 146.7c0-11.4 8-25.4 17.9-31.1L202.9 8.4zM125.5 208.3c-15.9 0-31.9 .1-47.8 .1l0 101.4 19.1 0 0-29.8 28.7 0c49.7 0 49.6-71.7 0-71.7zM265.6 308.6l-30.7-34.6c37-7.5 34.8-65.2-10.9-65.5-16.1 0-32.2-.1-48.3-.1l0 101.6 19.1 0 0-33.9 18.4 0 29.6 33.9 22.8 0 0-1.3zm-41.6-82.3c23.3 0 23.3 32.5 0 32.5l-29.1 0 0-32.5 29.1 0zm-95.6-1.6c21.2 0 21.1 38.9 0 38.9l-32.3 0 0-38.8 32.3 0zm192.6-18.2c-68.5 0-71 105.8 0 105.8 69.5 0 69.4-105.8 0-105.8zm0 17.4c44.1 0 44.8 70.9 0 70.9s-44.4-70.9 0-70.9z\"],\n \"google-play\": [448, 512, [], \"f3ab\", \"M293.6 234.3L72.9 13 353.7 174.2 293.6 234.3zM15.3 0C2.3 6.8-6.4 19.2-6.4 35.3l0 441.3c0 16.1 8.7 28.5 21.7 35.3L271.9 255.9 15.3 0zM440.5 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM72.9 499L353.7 337.8 293.6 277.7 72.9 499z\"],\n \"korvue\": [448, 512, [], \"f42f\", \"M387.6 34l-327 0C27.9 34 1.1 60.8 1.1 93.5l0 327.1c0 32.6 26.8 59.4 59.5 59.4l327.1 0c33 0 59.5-26.8 59.5-59.5l0-327C447.1 60.8 420.3 34 387.6 34zM88.2 120.8l96 0 0 116 61.8-116 110.9 0-81.2 132-187.5 0 0-132zM250 392.9l-65.7-113.6 0 113.6-96 0 0-130.8 191.5 0 88.6 130.8-118.4 0z\"],\n \"w3c\": [640, 512, [], \"e7de\", \"M105.2 305.3l30.9-104.7c7.9-26.7 8.6-40.6 .2-68.8l-10.1-33.9 44.1 0 61 207.4 45.7-155.5c13.3-45.3 21.1-51.9 59.4-51.9l132.8 0c-24.2 42.9-49.3 85.2-73.9 127.9 2.6 .8 5.2 1.8 7.7 2.8 17.3 7.1 32.2 19.4 42 35.5 11.2 18.5 16.8 40.2 16.8 65.2 0 30.8-8.2 56.8-24.6 77.8-14.5 18.6-35 29.5-58.2 31.2 0 .3-5.2 .4-5.8 .4-39.7-.1-70.8-32.1-83.1-68.7l42.9 0c3.5 5.3 6.8 10.7 11.2 15.5 8.1 7.3 18.5 10.9 29.3 11.1 13.1 0 23.3-9.1 29.9-19.8 8.1-13.2 12.2-29 12.2-47.5 0-13.1-1.8-24.3-5.3-33.6-.9-2.3-1.9-4.5-3-6.6-1.4-2.6-2.9-5.1-4.7-7.4-10.1-13.2-29.3-19.7-47.5-19.8l-28.2 0 70.3-122-35.6 0c-43.1 0-35.9-5.4-50.4 43.3l-75.7 255.3-4.2 0-63.1-211.1-63.1 211.1-4.2 0-101-340.7 44.2 0 61 207.4zM467 335.7c.3 .6 11.3 20.3 18.3 30.3 7.1 10.1 19.8 20.9 24.8 24.6s19.1 12.5 34.3 13.9c15.2 1.5 23.3 .2 38.7-6.6 15.4-6.8 27.9-20.4 34.9-28.1 6.9-7.6 17.9-27.3 18.2-27.7l3.3 16.8c1.7 9-1 23.7-4.1 30-4.3 8.6-7.6 13.5-14 20.3-6.1 6.5-16.7 13.5-21.3 16.4-4.6 2.9-23.1 15.1-50.1 10.3s-44.7-25.9-53.9-38.2c-9.8-13.2-16.7-28.3-19-33.2-3.8-8.4-9.9-28.2-10.1-28.8zm169.7-218c3.3 20.3-.1 28.7-9.1 46l-12.7 24.2c-.3-.6-10-20.7-25.9-31.9-13.6-9.6-22.5-11.7-36.3-8.8-17.8 3.7-38 25-46.8 51.2-10.5 31.4-10.7 46.6-11 60.6-.6 22.4 2.9 35.6 2.9 35.6s-15.4-28.5-15.2-70.1c.1-29.7 4.8-56.7 18.5-83.3 12.1-23.4 30.1-37.4 46.1-39.1 16.5-1.7 29.6 6.3 39.7 14.9 10.6 9 21.3 28.8 21.3 28.8l24.9-49.8 3.6 21.8z\"],\n \"grav\": [512, 512, [], \"f2d6\", \"M302.6 210.6c4.5 4.5 4.5 12.3 0 16.8l-10 10c-4.5 4.9-12.3 4.9-17.1 0l-10.8-10.8c-4.5-4.9-4.5-12.3 0-17.1l10-10c4.5-4.5 12.3-4.5 17.1 0l10.8 11.1zm-31.2-20.3a7.7 7.7 0 1 0 -10.6-11 7.7 7.7 0 1 0 10.6 11zm-26.8 5.5a7.5 7.5 0 1 0 10.7 10.5 7.5 7.5 0 1 0 -10.7-10.5zM319.4 182c-20.5-14.9-34.9-44.6-12.3-70.3 22.3-25.7 42-17.8 61.7 .8 12.3 11.7 30.2 25.7 17.8 49.8-12.9 24.3-46.6 34.3-67.2 19.7zm49.2-45.9c-9.2-10.3-24.1 7.1-16 16.6 7.6 9.3 33.1 2.5 16-16.6zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm443.7 44c2.6-16.6-20.9-17.1-26-26.5-14-24.9-28.6-38-56.3-31.4 12-8.3 24.3-6.3 24.3-6.3 .3-6.6 0-13.4-9.7-25.7 4-12.9 .3-23.1 .3-23.1 16-8.9 27.7-25.2 30-44.6 3.7-32-19.4-61.1-51.4-64.8-22.8-2.6-45.1 7.9-56.1 26.5-23.9 41.4 1.4 73.2 23.1 84-14.9-1.4-35.4-12.3-41.4-35.4-6.8-26.5 2.9-51.4 9.2-63.4 0 0-4.5-6-8.3-9.2 0 0-14.2 0-25.4 5.5 12.3-15.7 26-14.9 26-14.9 0-6.6-.6-15.4-3.7-22.3-5.6-11.4-24.6-13.3-32.7 2.9 .1-.2 .3-.4 .4-.5-5.2 12.3-1.1 57.7 17.4 90-2.6 1.4-9.4 6.3-13.4 10.3-22.3 10-58 62.2-58 62.2-29.1 11.1-79.7 52.5-72.9 82.3 .3 3.1 1.4 5.7 3.1 7.7-2.9 2.3-5.7 5.2-8.6 8.6-12.3 14.2-5.5 36.3 18.3 25.2 16.3-7.4 30.6-20.9 37.5-31.4 0 0-5.7-5.2-16.8-4.5 28.6-6.8 35.4-9.7 47.7-9.4 8.3 4 8.3-35.4 8.3-35.4 0-15.2-2.3-32-11.5-42.8 12.9 12.6 30 33.8 28.9 62.6-.8 18.9-15.7 23.7-15.7 23.7-9.4 17.1-44.6 68-31.4 109.4 0 0-10-15.4-10.5-22.8-18 20-48 54-25.4 66.6 27.5 15.2 112.3-91.5 130.3-146.9 35.7-21.5 57.2-48.8 66-67.1 22.7 44.9 98.4 97.5 104.4 60.9z\"],\n \"aws\": [640, 512, [], \"f375\", \"M180.4 203c-.7 22.6 10.6 32.7 10.9 39-.1 1.3-.6 2.5-1.3 3.6s-1.7 2-2.8 2.6l-12.8 9c-1.7 1.2-3.6 1.8-5.6 1.9-.4 0-8.2 1.8-20.5-25.6-7.5 9.4-17 16.9-27.9 22s-22.7 7.7-34.7 7.5c-16.3 .9-60.4-9.2-58.1-56.2-1.6-38.3 34.1-62.1 70.9-60 7.1 0 21.6 .4 47 6.3l0-15.6c2.7-26.5-14.7-47-44.8-43.9-2.4 0-19.4-.5-45.8 10.1-7.4 3.4-8.3 2.8-10.8 2.8-7.4 0-4.4-21.5-2.9-24.2 5.2-6.4 35.9-18.4 65.9-18.2 20.1-1.8 40.1 4.4 55.7 17.3 6.3 7.1 11.2 15.4 14.2 24.4s4.2 18.5 3.5 28l0 69.3zM94 235.4c32.4-.5 46.2-20 49.3-30.5 2.5-10.1 2.1-16.4 2.1-27.4-9.7-2.3-23.6-4.9-39.6-4.9-15.2-1.1-42.8 5.6-41.7 32.3-1.2 16.8 11.1 31.4 30 30.5zm170.9 23.1c-7.9 .7-11.5-4.9-12.7-10.4L202.4 83.4c-1-2.8-1.6-5.6-1.9-8.6-.2-1.2 .1-2.4 .8-3.4s1.8-1.6 3-1.8c.2 0-2.1 0 22.2 0 8.8-.9 11.6 6 12.6 10.4L274.9 220.8 308.1 80c.5-3.2 2.9-11.1 12.8-10.2l17.2 0c2.2-.2 11.1-.5 12.7 10.4L384.1 222.7 421 80.1c.5-2.2 2.7-11.4 12.7-10.4l19.7 0c.9-.1 6.2-.8 5.3 8.6-.4 1.8 3.4-10.7-52.8 169.9-1.1 5.5-4.8 11.1-12.7 10.4l-18.7 0c-10.9 1.2-12.5-9.7-12.7-10.7l-33.2-137.1-32.8 137c-.2 1.1-1.7 11.9-12.7 10.7l-18.3 0 0 0zm273.5 5.6c-5.9 0-33.9-.3-57.4-12.3-2.3-1-4.3-2.6-5.7-4.8s-2.1-4.6-2.1-7.1l0-10.7c0-8.5 6.2-6.9 8.8-5.9 10 4.1 16.5 7.1 28.8 9.6 36.7 7.5 52.8-2.3 56.7-4.5 13.2-7.8 14.2-25.7 5.3-34.9-10.5-8.8-15.5-9.1-53.1-21-4.6-1.3-43.7-13.6-43.8-52.4-.6-28.2 25-56.2 69.5-56 12.7 0 46.4 4.1 55.6 15.6 1.4 2.1 2 4.6 1.9 7l0 10.1c0 4.4-1.6 6.7-4.9 6.7-7.7-.9-21.4-11.2-49.2-10.8-6.9-.4-39.9 .9-38.4 25-.4 19 26.6 26.1 29.7 26.9 36.5 11 48.6 12.8 63.1 29.6 17.1 22.2 7.9 48.3 4.3 55.4-19.1 37.5-68.4 34.4-69.3 34.4zm40.2 104.9c-70 51.7-171.7 79.2-258.5 79.2-117.1 .8-230.3-42.3-317.3-120.7-6.5-5.9-.8-14 7.2-9.5 96.5 55.2 205.7 84.2 316.9 84.1 83-.4 165.1-17.3 241.6-49.5 11.8-5 21.8 7.8 10.1 16.4zm29.2-33.3c-9-11.5-59.3-5.4-81.8-2.7-6.8 .8-7.9-5.1-1.8-9.5 40.1-28.2 105.9-20.1 113.4-10.6 7.5 9.5-2.1 75.4-39.6 106.9-5.8 4.9-11.3 2.3-8.7-4.1 8.4-21.3 27.4-68.5 18.4-80z\"],\n \"glide-g\": [448, 512, [], \"f2a6\", \"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4 0-71.5-38.2-100.6-108.4-100.6-115.1 0-173.4 113.7-173.4 198.4 0 87.9 51.3 136.6 138.6 136.6 12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9 .1-52.4 51.2-52.4 79.3 0 51.9 32.8 87.9 85.5 87.9 77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zM231.8 126.8c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"],\n \"jsfiddle\": [576, 512, [], \"f1cc\", \"M511.1 237.5c-4.7-2.6-5.7-5.7-6.4-10.8-2.4-16.5-3.5-33.6-9.1-49.1-35.9-100-154-143.4-246.8-91.6-27.4 15.2-49 36.4-65.5 63.9-3.2-1.5-5.5-2.7-7.8-3.7-30.1-12.4-59-10.1-85.3 9.2-25.5 18.7-36.4 44.5-32.7 76.4 .4 3-2 7.6-4.5 9.5-39.7 30-56 78.1-41.9 124.6 13.8 45.6 57.5 79.8 105.6 81.4 30.3 1 60.6 .5 91 .5 84 0 168.1 .5 252.1-.5 52.7-.6 96.1-36.9 108.2-87.3 11.5-48.1-11.1-97.3-56.8-122.6zm21.1 156.9c-18.2 22.4-42.3 35.3-71.3 35.7-56.9 .8-113.8 .2-170.7 .2 0 .7-163 .2-163.7 .2-43.9-.3-76.7-19.8-95.2-60-18.9-41.2-4-90.8 34.2-116.1 9.2-6.1 12.5-11.6 10.1-23.1-5.5-26.4 4.5-48 26.4-63 23-15.7 47.4-16.1 72-3.1 10.3 5.4 14.6 11.6 22.2-2.5 14.2-26.4 34.6-46.7 60.7-61.3 97.5-54.4 228.4 7.6 230.2 132.7 .1 8.2 2.4 12.4 9.8 15.9 57.6 26.8 74.5 96.1 35.1 144.5zm-87.8-80.5c-5.8 31.2-34.6 55.1-66.7 55.1-17 0-32.1-6.5-44.1-17.7-27.7-25.7-71.1-75-95.9-93.4-20.1-14.9-42-12.3-60.3 3.8-50 44.1 15.9 121.8 67.1 77.2 4.5-4 7.8-9.5 12.7-12.8 8.2-5.5 20.8-.9 13.2 10.6-17.4 26.3-49.3 38.2-78.9 29.3-28.9-8.7-48.8-36-48.6-70.2 1.2-22.5 12.4-43.1 35.4-56 22.6-12.6 46.4-13.1 67 2.5 50.8 38.5 75.6 81.7 107.3 101.2 24.6 15.1 54.3 7.4 68.8-17.5 28.8-49.2-34.6-105-78.9-63.5-4 3.7-6.9 8.9-11.4 11.7-11 6.8-17.3-4.1-12.8-10.4 20.7-28.6 50.5-40.4 83.3-28.2 31.4 11.7 49.1 44.4 42.8 78.2z\"],\n \"keybase\": [448, 512, [], \"f4f5\", \"M286.2 419a18 18 0 1 0 0 36 18 18 0 1 0 0-36zM398.1 271.4c-9.5-14.6-39.4-52.4-87.3-73.7-6.1-2.7-12.2-5.1-18.4-7.3 4.1-9.9 6-20.6 5.8-31.4s-2.7-21.3-7.2-31.1-10.9-18.5-18.9-25.7-17.4-12.6-27.6-16c-12.4-4.1-23.3-6-32.4-5.8-.6-2-1.9-11 9.4-35l-22.9-13.5-5.5 7.6c-8.7 12.1-16.9 23.6-24.3 34.9-2.7-.6-5.5-1.1-8.3-1.2-41.5-2.4-39-2.3-41.1-2.3-50.6 0-50.8 52.1-50.8 45.9l-2.4 36.7c-1.6 27 19.8 50.2 47.6 51.8l8.9 .5C106 215.5 90.4 227.5 76.6 241.4 14 304.7 14 374 14 429.8l0 33.6 23.3-29.8c3.1 13.1 8 25.8 14.6 37.6 5.8 10.1 14.9 9.4 19.6 7.3 4.2-1.9 10-6.9 3.8-20.1-8-16.8-13.3-34.7-15.8-53.1l46.8-59.8-24.7 74.1c58.2-42.4 157.4-61.8 236.2-38.6 34.2 10.1 67.4 .7 84.7-23.8 .7-1 1.2-2.2 1.8-3.2 1.8 9.4 2.7 18.9 2.8 28.4 0 23.3-3.7 52.9-14.9 81.6-2.5 6.5 1.8 14.5 8.6 15.7 7.4 1.6 15.3-3.1 18.4-11.1 9.6-25.5 14.6-54.6 14.6-86.2 0-38.6-13-77.5-35.9-110.9zM142.4 128.6l-15.7-.9-1.4 21.8 13.1 .8c-.6 6.5-.5 13.1 .3 19.6l-22.4-1.3c-1.6-.1-3.2-.5-4.7-1.1s-2.8-1.6-3.9-2.8-1.9-2.6-2.5-4.1-.8-3.1-.7-4.7L107 119c1-12.2 13.9-11.3 13.3-11.3l29.1 1.7c-2.8 6.2-5.1 12.6-7 19.2zM290.8 300.8c-2.1 1.6-4.8 2.4-7.5 2.2s-5.1-1.5-6.9-3.5l-9.7-11.5-34.4 27c-1.6 1.3-3.7 1.9-5.8 1.7s-4-1.2-5.3-2.8l-15.8-18.6c-1.2-1.6-1.7-3.5-1.5-5.4s1.3-3.7 2.8-4.9l34.6-27.2-14.1-16.7-17.1 13.5c-1.6 1.2-3.5 1.8-5.5 1.6s-3.8-1.1-5.1-2.6c0 0-3.7-4.4-3.8-4.5-1.2-1.6-1.7-3.5-1.5-5.5s1.3-3.7 2.8-4.9L214 225.2s-18.5-22-18.6-22.1c-.8-1-1.3-2.1-1.7-3.3s-.4-2.5-.3-3.7 .6-2.4 1.2-3.5 1.5-2 2.5-2.8c2.1-1.7 4.8-2.4 7.4-2.2s5.1 1.5 6.9 3.6l81.1 96.3c.8 1 1.3 2.1 1.7 3.3s.4 2.5 .3 3.7-.6 2.5-1.2 3.5-1.5 2.1-2.5 2.8zM187.4 419a18 18 0 1 0 0 36 18 18 0 1 0 0-36z\"],\n \"lumon-drop\": [576, 512, [], \"e7e3\", \"M480 32c53 0 96 43 96 96l0 224c0 53-43 96-96 96L96 448c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l384 0zM302.4 114.7c-9.8-16.4-20.5-16.4-29.6 0l-68.9 114c-10.7 15.6-16.4 32.8-16.4 52.5 0 50.9 44.3 94.3 100.1 94.3 55 0 100.9-43.5 100.9-94.3 0-19.7-6.6-37.8-17.2-52.5l-68.9-114z\"],\n \"weebly\": [512, 512, [], \"f5cc\", \"M425.1 65.8c-39.9 0-73.3 25.7-83.7 64.3-18.2-58.1-65.5-64.3-85-64.3-19.8 0-66.8 6.3-85.3 64.3-10.4-38.6-43.4-64.3-83.7-64.3-49 0-87.5 33.9-87.5 77.2 0 29 4.2 33.3 77.2 233.5 22.4 60.6 67.8 69.4 92.7 69.4 39.2 0 70-19.5 85.9-54 15.9 34.8 46.7 54.3 85.9 54.3 25 0 70.4-9.1 92.7-69.7 76.6-208.6 77.5-205.6 77.5-227.2 .6-48.3-36-83.5-86.9-83.5zm26.3 114.8L385.9 357.1c-7.9 21.5-21.2 37.2-46.2 37.2-23.4 0-37.4-12.4-44-33.9l-39.3-117.4-1 0-39.3 117.4c-7 21.5-20.9 33.6-44 33.6-25 0-38.3-15.7-46.2-37.2L60.9 181.6c-5.4-14.8-7.9-23.9-7.9-34.5 0-16.3 15.8-29.4 38.3-29.4 18.7 0 32 11.8 36.1 29.1l44 139.8 1 0 44.7-136.8c6-19.7 16.5-32.1 39-32.1s32.9 12.1 39 32.1l44.7 136.8 1 0 44-139.8c4.1-17.2 17.4-29.1 36.1-29.1 22.2 0 38.3 13.3 38.3 35.7-.3 7.9-4.1 16-7.6 27.2z\"],\n \"docker\": [640, 512, [], \"f395\", \"M349.9 236.3l-66.1 0 0-59.4 66.1 0 0 59.4zm0-204.3l-66.1 0 0 60.7 66.1 0 0-60.7zm78.2 144.8l-66.1 0 0 59.4 66.1 0 0-59.4zM271.8 104.7l-66.1 0 0 60.1 66.1 0 0-60.1zm78.1 0l-66.1 0 0 60.1 66.1 0 0-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7l-434.7 0c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4 .4 67.6 .1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zM115.6 176.8l-66 0 0 59.4 66.1 0 0-59.4-.1 0zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm-78.1-72.1l-66.1 0 0 60.1 66.1 0 0-60.1z\"],\n \"magento\": [448, 512, [], \"f3c4\", \"M445.9 127.9l0 256.1-63.4 36.5 0-255.8-158.5-91.6-158.6 91.6 .4 255.9-63.3-36.6 0-255.9 221.9-128.1 221.5 127.9zM255.8 420.5l-31.6 18.4-31.8-18.2 0-256-63.3 36.6 .1 255.9 94.9 54.9 95.1-54.9 0-256-63.4-36.6 0 255.9z\"],\n \"git-alt\": [448, 512, [], \"f841\", \"M439.6 236.1L244 40.5C238.6 35 231.2 32 223.6 32s-15 3-20.4 8.4l-40.7 40.6 51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3l-46.3-46.3 0 121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56l0-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4L204.1 471.6c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4L439.6 276.9c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4z\"],\n \"firefox-browser\": [512, 512, [], \"e007\", \"M130.2 127.5l0 0zm351.4 45.4c-10.6-25.5-32.1-53-48.9-61.7 13.7 26.9 21.7 53.9 24.7 74 0 .1 0 .3 .1 .4-27.6-68.8-74.4-96.5-112.6-156.8-15-23.7-10.9-25.2-13.1-24.7l-.1 .1c-46.7 26-75.3 78.4-82.6 122.7-16.6 .9-32.9 5-47.9 12.1-1.4 .6-2.5 1.7-3.1 3s-.9 2.8-.6 4.3c.2 .8 .6 1.6 1.1 2.3s1.2 1.3 1.9 1.7 1.6 .7 2.4 .8 1.7 0 2.5-.3l.5-.2c15.5-7.3 32.4-11.2 49.5-11.3 62.8-.6 97.2 44 107.6 62.3-13-9.2-36.4-18.2-58.8-14.3 87.7 43.9 64.2 194.5-57.4 189.2-59.5-2.6-97.1-51-100.5-90.8 0 0 11.2-41.9 80.6-41.9 7.5 0 28.9-20.9 29.3-27-.1-2-42.5-18.9-59.1-35.2-8.8-8.7-13.1-12.9-16.8-16.1-2-1.7-4.1-3.3-6.3-4.8-5.6-19.5-5.8-40-.7-59.6-25.1 11.4-44.6 29.4-58.7 45.4l-.1 0c-9.7-12.2-9-52.6-8.4-61.1-.1-.5-7.2 3.7-8.2 4.3-8.6 6.1-16.5 12.9-23.8 20.4-16.3 16.6-44.1 50.2-55.5 101.2-4.5 20.4-6.8 44.4-6.8 52.3 0 134.7 109.2 243.9 243.9 243.9 120.6 0 223-87.2 240.4-202.6 11.6-76.7-14.7-131.1-14.7-132z\"],\n \"cloudsmith\": [512, 512, [], \"f384\", \"M512 227.6L512 284.5 284.4 512 227.6 512 0 284.4 0 227.6 227.6 0 284.5 0 512 227.6zm-256 162c17.8 .5 35.6-2.6 52.2-9.1s31.8-16.2 44.6-28.7 23-27.3 29.9-43.8 10.5-34.1 10.5-52-3.6-35.5-10.5-52-17.1-31.3-29.9-43.8-28-22.2-44.6-28.7-34.4-9.6-52.2-9.1c-17.8-.5-35.6 2.6-52.2 9.1s-31.8 16.3-44.6 28.7-23 27.3-29.9 43.8-10.5 34.1-10.5 52 3.6 35.5 10.5 52 17.1 31.3 29.9 43.8 28 22.2 44.6 28.7 34.4 9.6 52.2 9.1z\"],\n \"wizards-of-the-coast\": [640, 512, [], \"f730\", \"M219.2 345.7c-1.9 1.4-11.1 8.4-.3 23.6 4.6 6.4 14.1 12.8 21.7 6.6 6.5-4.9 7.4-12.9 .3-23-5.5-7.8-14.3-12.9-21.7-7.1zm336.8 75.9c-.3 1.7-.6 1.7 .8 0 2.1-4.2 4.2-10.2 5-19.9 3.1-38.5-40.3-71.5-101.3-78-54.7-6-124.4 9.2-188.8 60.5l-.3 1.6c2.6 5 5 10.7 3.4 21.2l.8 .3c63.9-58.4 131.2-77.2 184.4-73.8 58.4 3.7 100 34 100 68.1 0 10-2.6 15.7-3.9 20.2zM392.3 240.4c.8 7.1 4.2 10.2 9.2 10.5 5.5 .3 9.4-2.6 10.5-6.6 .8-3.4 2.1-29.8 2.1-29.8S402.8 221 399.1 225c-3.7 3.7-7.3 8.4-6.8 15.5zm-50-151.1c-204.5 0-329.2 137.5-341.5 151.9-1 .5-1.3 .8 .8 1.3 60.5 16.5 155.8 81.2 196.1 202.2l1 .3c55.2-69.9 140.9-128.1 237-128.1 80.9 0 130.2 42.2 130.2 80.4 0 18.3-6.6 33.5-22.3 46.3 0 1-.2 .8 .8 .8 14.7-10.7 27.5-28.8 27.5-48.2 0-22.8-12.1-38.2-12.1-38.2 7.1 7.1 10.7 16.2 10.7 16.2 5.8-40.9 27-62.3 27-62.3-2.4-9.7-6.8-17.8-6.8-17.8 7.6 8.1 14.4 27.5 14.4 41.4 0 10.5-3.4 22.8-12.6 31.9l.3 .5c8.1-5 16.5-16.8 16.5-38 0-15.7-4.7-25.9-4.7-25.9 5.8-5.2 11.3-9.2 16-11.8 .8 3.4 2.1 9.7 2.4 14.9 0 1 .8 1.8 1 0 .8-5.8-.3-16.2-.3-16.5 6-3.1 9.7-4.5 9.7-4.5-15.7-110.3-144-196.9-291.2-196.9zM243 378.9c-11.1 9-24.2 4.1-30.6-4.2-7.4-9.6-6.8-24.1 4.2-32.5 14.8-11.4 27.1-.5 31.2 5.5 .3 .4 12.1 16.6-4.7 31.2zm2.1-136.4l9.4-17.8 11.8 71-12.6 6-24.6-28.8 14.1-26.7 3.7 4.4-1.8-8.1zm18.6 117.6l-.3-.3c2-4.1-2.5-6.6-17.5-31.7-1.3-2.4-3.1-2.9-4.4-2.6l-.3-.5c7.9-5.8 15.4-10.2 25.4-15.7l.5 .3c1.3 1.8 2.1 2.9 3.4 4.7l-.3 .5c-1-.3-2.4-.8-5.2 .3-2.1 .8-7.9 3.7-12.3 7.6l0 1.3c1.6 2.4 3.9 6.6 5.8 9.7l.3 0c10-6.3 7.6-4.5 11.5-7.9l.3 0c.5 1.8 .5 1.8 1.8 5.5l-.3 .3c-3.1 .6-4.7 .3-11.5 5.5l0 .3c9.5 17 11 16.8 12.6 16l.3 .3c-2.3 1.6-6.3 4.2-9.7 6.6zM319 327.6c-3.1 1.6-6 2.9-10 5l-.3-.3c1.3-2.6 1.2-2.7-11.8-32.5l-.3-.3c-.2 0-8.9 3.7-10 7.3l-.5 0-1-5.8 .3-.5c7.3-4.6 25.5-11.6 27.8-12.6l.5 .3 3.1 5-.3 .5c-3.5-1.8-7.4 .8-12.3 2.6l0 .3c12.3 32 12.7 30.6 14.7 30.6l0 .2zm44.8-16.5c-4.2 1-5.2 1.3-9.7 2.9l-.3-.3 .5-4.5c-1-3.4-3.1-11.5-3.7-13.6l-.3-.3c-3.4 .8-8.9 2.6-12.8 3.9l-.3 .3c.8 2.6 3.1 9.9 4.2 13.9 .8 2.4 1.8 2.9 2.9 3.1l0 .5c-3.7 1-7.1 2.6-10.2 3.9l-.3-.3c1-1.3 1-2.9 .3-5-1-3.1-8.1-23.8-9.2-27.2-.5-1.8-1.6-3.1-2.6-3.1l0-.5c3.1-1 6-2.1 10.7-3.4l.3 .3-.3 4.7c1.3 3.9 2.4 7.6 3.1 9.7l.3 0c3.9-1.3 9.4-2.9 12.8-3.9l.3-.3-2.6-9.4c-.5-1.8-1-3.4-2.6-3.9l0-.3c4.4-1 7.3-1.8 10.7-2.4l.3 .3c-1 1.3-1 2.9-.5 4.4 1.6 6.3 4.7 20.4 6.3 26.5 .5 2.6 1.8 3.4 2.6 3.9zm32.2-6.8l-.3 .3c-4.7 .5-14.1 2.4-22.5 4.2l-.3-.3 .8-4.2c-1.6-7.9-3.4-18.6-5-26.2-.3-1.8-.8-2.9-2.6-3.7l.8-.5c9.2-1.6 20.2-2.4 24.9-2.6l.3 .3c.5 2.4 .8 3.1 1.6 5.5l-.3 .3c-1.1-1.1-3.3-3.2-16.2-.8l-.3 .3c.3 1.6 1 6.6 1.6 9.9l.3 .3c9.5-1.7 4.8-.1 10.7-2.4l.3 0c0 1.6-.3 1.8-.3 5.2l-.3 0c-4.8-1-2.2-.9-10.2 0l-.3 .3c.3 2.1 1.6 9.4 2.1 12.6l.3 .3c1.2 .4 14.2-.6 16.2-4.7l.3 0c-.5 2.4-1 4.2-1.6 6zm10.7-44.5c-4.5 2.4-8.1 2.9-11 2.9-.2 0-11.4 1.1-17.5-10-6.7-10.8-1-25.2 5.5-31.7 8.8-8.1 23.4-10.1 28.5-17 8-10.3-13-22.3-29.6-5.8l-2.6-2.9 5.2-16.2c25.6-1.6 45.2-3 50 16.2 .8 3.1 0 9.4-.3 12.1 0 2.6-1.8 18.8-2.1 23-.5 4.2-.8 18.3-.8 20.7 .3 2.4 .5 4.2 1.6 5.5 1.6 1.8 5.8 1.8 5.8 1.8l-.8 4.7c-11.8-1.1-10.3-.6-20.4-1-3.2-5.1-2.2-3.3-4.2-7.9 0 0-4.2 3.9-7.3 5.5zM443.9 281c-6.4-10.6-19.8-7.2-21.7 5.5-2.6 17.1 14.3 19.8 20.7 10.2l.3 .3c-.5 1.8-1.8 6-1.8 6.3l-.5 .5c-10.3 6.9-28.5-2.5-25.7-18.6 1.9-10.9 14.4-18.9 28.8-9.9l.3 .5c0 1.1-.3 3.4-.3 5.3zm5.8-87.7l0-6.6c.7 0 19.6 3.3 27.8 7.3l-1.6 17.5s10.2-9.4 15.4-10.7c5.2-1.6 14.9 7.3 14.9 7.3l-11.3 11.3c-12.1-6.4-19.6-.1-20.7 .8-5.3 38.7-8.6 42.2 4.4 46.1l-.5 4.7c-17.6-4.3-18.5-4.5-36.9-7.3l.8-4.7c7.3 0 7.5-5.3 7.6-6.8 0 0 5-53.2 5-55.3 0-2.9-5-3.7-5-3.7zm11 114.4c-8.1-2.1-14.1-11-10.7-20.7 3.1-9.4 12.3-12.3 18.9-10.2 9.2 2.6 12.8 11.8 10.7 19.4-2.6 8.9-9.4 13.9-18.9 11.5zm42.2 9.7c-2.4-.5-7.1-2.4-8.6-2.9l0-.3 1.6-1.8c.6-8.2 .6-7.3 .3-7.6-4.8-1.8-6.7-2.4-7.1-2.4-1.3 1.8-2.9 4.5-3.7 5.5l-.8 3.4 0 .3c-1.3-.3-3.9-1.3-6-1.6l0-.3 2.6-1.8c3.4-4.7 10-14.1 13.9-20.2l0-2.1 .5-.3c2.1 .8 5.5 2.1 7.6 2.9 .5 .5 .2-1.9-1 25.1-.2 1.8 0 2.6 .8 3.9zm-4.7-89.8c11.3-18.3 30.8-16.2 34-3.4l7.6-26.2c2.3-6.2-2.8-9.9-4.5-11.3l1.8-3.7c12.2 10.4 16.4 14 22.5 20.4-25.9 73.1-30.8 80.8-24.6 84.3l-1.8 4.4c-6.4-3.3-8.9-4.4-17.8-8.6l2.1-6.8c-.3-.3-3.9 3.9-9.7 3.7-19.1-1.3-22.9-31.7-9.7-52.9zm29.3 79.3c0-5.7-6.3-7.9-7.9-5.2-1.3 2.1 1 5 2.9 8.4 1.6 2.6 2.6 6.3 1 9.4-2.6 6.3-12.4 5.3-15.4-.8 0-.7-.3 .1 1.8-4.7l.8-.3c-.6 5.7 6.1 9.6 8.4 5 1-2.1-.5-5.5-2.1-8.4-1.6-2.6-3.7-6.3-1.8-9.7 2.7-5.1 11.3-4.5 14.7 2.4l0 .5-2.4 3.4zm21.2 13.4c-2-3.3-.9-2.1-4.5-4.7l-.3 0c-2.4 4.2-5.8 10.5-8.6 16.2-1.3 2.4-1 3.4-.8 3.9l-.3 .3-5.8-4.4 .3-.3 2.1-1.3c3.1-5.8 6.6-12.1 9.2-17l0-.3c-2.6-2-1.2-1.5-6-1.8l0-.3 3.1-3.4 .3 0c3.7 2.4 10 6.8 12.3 8.9l.3 .3-1.3 3.9zM575.8 276l-2.9-2.9c.8-2.4 1.8-5 2.1-7.6 .7-9.7-11.5-11.8-11.5-5 0 5 7.9 19.4 7.9 27.8 0 10.2-5.8 15.7-13.9 16.5-8.4 .8-20.2-10.5-20.2-10.5l5-14.4 2.9 2.1c-3 17.8 17.7 20.4 13.3 5.2-1.1-4-18.7-34.2 2.1-38.2 13.6-2.4 23 16.5 23 16.5L575.8 276zm35.6-10.2c-11-30.4-60.5-127.5-192-129.6-53.4-1-94.3 15.4-132.8 38l85.6-9.2-91.4 20.7 25.1 19.6-3.9-16.5c7.5-1.7 39.1-8.5 66.8-8.9l-22.3 80.4c13.6-.7 19-9 19.6-22.8l5-1 .3 26.7c-22.5 3.2-37.3 6.7-49.5 9.9l13.1-43.2-61.5-36.7 2.4 8.1 10.2 5c6.3 18.6 19.4 56.6 20.4 58.7 2 4.3 3.2 5.8 12 4.5l1.1 5c-16.1 4.9-23.7 7.6-39 14.4l-2.4-4.7c4.4-2.9 8.7-3.9 5.5-12.8-23.7-62.5-21.5-58.1-22.8-59.4l2.4-4.4 33.5 67.3c-3.8-11.9 1.7 1.7-33-78.8l-41.9 88.5 4.7-13.9-35.9-42.2 27.8 93.5-11.8 8.4c-111.9-101.7-105.8-98.4-113.7-98.7-5.5-.3-13.6 5.5-13.6 5.5l-5-6c30.6-23.5 31.6-24.3 58.4-42.7l4.2 7.1s-5.8 4.2-7.9 7.1c-5.9 9.3 1.7 13.3 61.8 75.7l-18.8-58.9 39.8-10.2 25.7 30.6 4.4-12.3-5-24.6 13.1-3.4 .5 3.1 3.7-10.5-94.3 29.3 11.3-5-13.6-42.4 17.3-9.2 30.1 36.1 28.5-13.1c-1.4-7.5-2.5-14.5-4.7-19.6l17.3 13.9 4.7-2.1-59.2-42.7 23.1 11.5c19-6.1 25.2-7.5 32.2-9.7l2.6 11c-12.6 12.6 1.4 16.8 6.5 19.4l-13.6-61 12 28.3c4.2-1.3 7.3-2.1 7.3-2.1l2.6 8.6s-3.1 1-6.3 2.1l8.9 21 33.8-65.7-20.7 61c42.4-24.1 81.4-36.7 132-35.9 67 1 167.3 40.8 199.8 139.8 .8 2.1 0 2.6-.8 .3zm-408-113.4s1.8-.5 4.2-1.3l9.4 7.6c-.4 0-3.4-.3-11.3 2.4l-2.4-8.6zm143.8 38.5c-1.6-.6-26.5-4.8-33.3 20.7l21.7 17 11.5-37.7zM318.4 67.1c-58.4 0-106.1 12-115 14.4l0 .8c8.4 2.1 14.4 4.2 21.2 11.8l1.6 .3c6.6-1.8 49-13.9 110.2-13.9 180.2 0 301.7 116.8 301.7 223.4l0 10c0 1.3 .8 2.6 1.1 .5 .5-2.1 .8-8.6 .8-19.6 .3-83.8-96.6-227.6-321.6-227.6zM529.5 236.8c1.3-5.8 0-12.3-7.3-13.1-9.6-1.1-16.1 23.8-17 33.5-.8 5.5-1.3 14.9 6 14.9 4.7 0 9.7-.9 18.3-35.4zM468 279.7c-2.6-.8-9.4-.8-12.6 10.5-1.8 6.8 .5 13.4 6 14.7 3.7 1.1 8.9 .5 11.8-10.7 2.6-9.9-1.8-13.6-5.2-14.4zm23 21c1.8 .5 3.1 1 5.8 1.8 0-1.8 .5-8.4 .8-12.1-1 1.3-5.5 8.1-6.6 10l0 .3z\"],\n \"creative-commons-nd\": [512, 512, [], \"f4eb\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm94 144.3l0 42.5-180.3 0 0-42.5 180.3 0zm0 79.8l0 42.5-180.3 0 0-42.5 180.3 0z\"],\n \"usps\": [512, 512, [], \"f7e1\", \"M428.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8l-27 0c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8 .1zM316.2 264.3c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3 196.6 0c-2.7-28.2-152.9-22.6-337.9-22.6L-5 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM62.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2L449.3 415.7 517 96 62.7 96z\"],\n \"square-letterboxd\": [448, 512, [], \"e62e\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM105.1 187C66.4 187 35 218.3 35 257s31.4 70 70.1 70c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5 0-13.6 3.9-26.3 10.6-37.1-12.4-19.8-34.4-32.9-59.5-32.9zM224 187c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5 0 13.6-3.9 26.3-10.6 37.1 12.4 19.7 34.4 32.9 59.5 32.9 24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5 0-13.6 3.9-26.3 10.6-37.1-12.4-19.7-34.4-32.9-59.5-32.9zm118.9 0c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5 0 13.6-3.9 26.3-10.6 37.1 12.4 19.8 34.4 32.9 59.5 32.9 38.7 0 70.1-31.3 70.1-70s-31.4-70-70.1-70z\"],\n \"mandalorian\": [384, 512, [], \"f50f\", \"M200.6 511.9c-1-3.3-1.7-15.8-1.4-24.6 .6-15.9 1-24.7 1.4-28.8 .6-6.2 2.9-20.7 3.3-21.4 .6-1 .4-27.9-.2-33.1-.3-2.6-.6-11.9-.7-20.7-.1-16.5-.5-20.1-2.7-24.8-1.1-2.3-1.2-3.8-1-11.4 .2-4.2 .1-8.5-.3-12.7-2-13-3.5-27.7-3.2-33.9s.4-7.1 2.1-9.7c3.1-4.7 6.5-14 8.6-23.3 2.3-9.9 3.9-17.2 4.6-20.7 1.1-5.1 2.6-10.1 4.4-15.1 2.3-6.2 2.5-15.4 .4-15.4-.3 0-1.4 1.2-2.4 2.7s-4.8 4.8-8.3 7.4c-8.4 6.1-11.7 9.4-12.7 12.6s-1 7.2-.2 7.8c.3 .2 1.3 2.4 2.1 4.9 1.6 5 1.9 10.3 .7 15.4-.4 1.8-1 5.5-1.5 8.2s-1 6.5-1.3 8.2c-.2 1.5-.7 3-1.5 4.3-1 1-1.1 .9-2.1-.5-.7-1.5-1.2-3.1-1.4-4.7-.2-1.7-1.6-7.1-3.1-11.9-3.3-10.9-3.5-16.2-1-21 .8-1.4 1.4-3 1.7-4.6 0-2.4-2.2-5.3-7.4-9.9-7-6.2-8.6-7.9-10.2-11.3-1.7-3.6-3.1-4.1-4.5-1.5-1.8 3-2.6 9.1-3 22l-.3 12.2 2 2.2c3.2 3.7 12.1 16.5 13.8 19.8 3.4 6.7 4.3 11.7 4.4 23.6s1 22.8 2 24.7c.4 .7 .5 1.4 .3 1.5s.4 2.1 1.3 4.3c1 2.9 1.7 5.9 2.1 9 .4 3.5 .9 7 1.7 10.4 2.2 9.6 2.8 14.1 2.4 20.1-.2 3.3-.5 11.1-.7 17.3-1.3 41.8-1.8 58-2 61.2-.1 2-.4 11.5-.6 21.1-.4 16.3-1.3 27.4-2.4 28.6-.6 .7-8.1-4.9-12.5-9.5-3.8-3.9-4-4.8-2.8-9.9 .7-3 2.3-18.3 3.3-32.6 .4-4.8 .8-10.5 1-12.7 .8-9.4 1.7-20.3 2.6-34.8 .6-8.5 1.3-16.4 1.7-17.7s.9-9.9 1.1-19.1l.4-16.8-2.3-4.3c-1.7-3.3-4.9-6.9-13.2-15.3-6-6.1-11.8-12.3-12.9-13.8l-2-2.8 .8-10.9c1.1-15.7 1.1-48.6 0-59.1l-.9-8.7-3.3-4.5c-5.9-8.1-5.8-7.7-6.2-33.3-.1-6.1-.4-11.5-.6-12.1-.8-1.9-3-2.7-8.5-3-8.9-.6-11-1.9-23.8-14.6-6.2-6-12.3-12-13.8-13.2-2.8-2.4-2.8-2-.6-9.6l1.4-4.6-1.7-3c-.8-1.4-1.6-2.8-2.6-4.1-1.3-1.5-5.5-10.9-6-13.5-.2-.7-.2-1.4-.1-2.1s.5-1.3 .9-1.8c2.2-2.9 3.4-5.7 4.5-10.7 2.3-11.2 7.7-26.1 10.6-29.2 3.2-3.5 7.7-1 9.4 5 1.3 4.8 1.4 9.8 .1 18.6-.5 3.7-.9 7.4-1 11.1 0 4 .2 4.7 2.3 7.4 3.3 4.4 7.7 7.4 15.2 10.5 1.7 .7 3.3 1.7 4.7 2.8 11.2 10.7 18.6 16.2 22.9 16.9 5.2 .8 8 4.5 10 13.4 1.3 5.7 4 11.1 5.5 11.1 1.2-.2 2.3-.7 3.3-1.4 2-1.2 2.2-1.7 2.2-4.2-.3-6-.9-11.9-2-17.8-.4-1.7-.8-4.1-.9-5.4s-.6-3.8-1-5.7c-2.6-11.2-3.6-15.5-4.1-16-1.6-2-4.1-10.2-4.9-15.9-1.6-11.1-4-14.2-12.9-17.4-4.9-1.8-9.4-4.5-13.3-7.9-1.2-1-4-3.2-6.4-5.1s-4.4-3.5-4.6-3.8c-.8-.7-1.7-1.4-2.7-2-6.2-4.2-8.8-7-11.3-12l-2.4-5c-.1-8.7-.3-17.3-.4-26l6.9-6.6c4-3.8 8.5-7.4 10.6-8.4 3.3-1.7 4.4-1.9 11.4-2 8.5-.2 10.1 0 11.7 1.6s1.4 6.4-.3 8.5c-.6 .7-1.1 1.5-1.3 2.3 0 .6-2.6 4.9-5.4 9-1.1 2.2-1.9 4.5-2.4 6.8 20.4 13.4 21.6 3.8 14.1 29l11.4 2.5c3.1-8.7 6.5-17.3 8.6-26.2 .3-7.6-12-4.2-15.4-8.7-2.3-5.9 3.1-14.2 6.1-19.2 1.6-2.3 6.6-4.7 8.8-4.1 .9 .2 4.2-.4 7.4-1.3 2.5-.8 5-1.3 7.5-1.7 2-.2 4.1-.7 6-1.3 3.7-1.1 4.5-1.2 6.3-.4 1.9 .6 3.8 1.1 5.8 1.4 2.1 .3 4.1 .9 6 1.9 1.6 .9 3.3 1.7 5 2.2 2.5 .7 3 .6 7-1.7L226 5.4 236.7 5c10.4-.4 10.8-.5 15.3-2.7L256.5 0 259 1.4c1.8 1 3.1 2.7 4.9 6 2.4 4.5 2.4 4.6 1.4 7.4-.9 2.4-.9 3.3-.1 6.4 .5 2 1.2 4 2.1 5.9 .6 1.3 1.1 2.6 1.3 4 .3 4.3 0 5.3-2.4 6.9-2.2 1.5-7 7.9-7 9.3-.2 1-.6 2-1.1 3-5 11.5-6.8 13.6-14.3 17-9.2 4.2-12.3 5.2-16.2 5.2-3.1 0-4 .2-4.5 1.3-1.2 1.4-2.5 2.7-4.1 3.7-1.8 1.2-3.3 2.9-4.4 4.8-.5 1.2-1.4 2.2-2.5 2.9-.9 .4-1.8 1-2.5 1.7-2.2 1.9-4.6 3.7-7 5.4-3.3 2.3-6.9 5-7.9 6-.7 .7-1.5 1.3-2.4 1.7-.8 .4-1.6 .9-2.1 1.6-1.3 1.4-1.5 2.1-1.1 4.6 .3 2 .8 4 1.4 5.9 1.3 3.8 1.3 7.9 0 10.6s-.9 6.7 1.4 9.6c2 2.6 2.2 4.6 .7 8.8-.8 2.9-1.1 5.9-1.1 8.9 0 4.9 .2 6.3 1.5 8.4s1.8 2.5 3.2 2.3c2-.2 2.3-1.1 4.7-12.1 2.2-10 3.7-11.9 13.8-17.1 2.9-1.5 7.5-4 10-5.4s6.8-3.7 9.4-4.9c5.9-2.6 11.2-6.6 15.2-11.7 7.1-8.8 10-16.2 12.8-33.3 .4-2.8 1.3-5.4 2.9-7.7 1.4-2.2 2.4-4.7 2.9-7.3 1-5.3 2.9-9.1 5.6-11.5 4.7-4.2 6-1.1 4.6 10.9-.5 3.9-1.1 10.3-1.4 14.4l-.6 7.4c3 2.7 5.9 5.5 8.9 8.2l.1 8.4c.1 4.6 .5 9.5 .9 10.9l.8 2.5-6.4 6.3c-8.5 8.3-12.9 13.9-16.8 21.6-1.8 3.5-3.7 7.1-4.4 8-2.2 3.1-6.5 13-8.8 20.3l-2.3 7.2-7 6.5c-3.8 3.6-8 7.2-9.2 8.2-3 2.3-4.3 5.1-4.3 10-.1 2.5 .4 5 1.6 7.3 .8 1.6 1.5 3.2 2.1 4.8 .3 1 .9 2 1.6 2.9 1.4 1.6 1.9 16.1 .8 23.2-.7 4.5-3.6 12-4.7 12-1.8 0-4.1 9.3-5.1 20.7-.2 2-.6 5.9-1 8.7s-1 10-1.4 16c-.8 12.2-.2 18.8 2 23.2 3.4 6.7 .5 12.7-11 22.8l-4 3.5 .1 5.2c.1 3 .4 6 1.1 8.9 4.6 16 4.7 16.9 4.4 37.1-.5 26.4-.3 40.3 .6 44.2 .5 2.3 .9 4.6 1.1 7 .2 2 .7 5.3 1.1 7.4 .5 2.3 .8 11 .8 22.7l0 19.1-1.8 2.6c-2.7 3.9-15.1 13.5-15.5 12.3l.1 0zm29.5-45.1c-.2-.3-.3-6.9-.3-14.6 0-14.1-.9-27.5-2.3-34.4-.4-2-.8-9.7-.9-17.1-.2-11.9-1.4-24.4-2.6-26.4-.7-1.1-3-17.7-3-21.3 0-4.2 1-6 5.3-9.1s4.9-3.1 5.5-.7c.3 1.1 1.4 5.6 2.6 10 3.9 15.1 4.1 16.3 4 21.7-.1 5.8-.1 6.1-1.7 17.7-1 7.1-1.2 12.4-1 28.4 .2 19.4-.6 35.7-2 41.3-.7 2.8-2.8 5.5-3.4 4.4l-.1 0zm-71-37.6c-.8-3.6-1.3-7.2-1.7-10.8s-1-7.2-1.7-10.8c-.5-2.1-.9-4.3-1-6.5-.3-3.2-.9-7.5-1.3-9.5-1-4.8-3.3-19.4-3.4-21.1 0-.7-.3-4-.7-7.4-.7-6.2-.8-27.7-.2-28.3 1-1 6.6 2.8 11.3 7.4l5.3 5.3-.4 6.5c-.2 3.6-.6 10.2-.8 14.8-.5 13.3-.7 8.7-1.6 28.4-.8 17.4-1.9 31.3-2.6 32-.1 .1-.2 .1-.2 .2s-.2 0-.3 0-.2 0-.3-.1-.1-.1-.2-.2l0 0zM72 162.6c21.1 12.8 17.8 14.2 28.5 17.7 13 4.3 18.9 7.1 23.2 16.9-43.7 36.1-69 57.9-76.7 70.9-31 52-6 101.6 62.8 87.2-14.2 29.2-78 28.6-98.7-4.9-24.7-40-22.1-118.3 61-187.7l0 0zm210.8 179c56.7 6.9 82.3-37.7 46.5-89.2 0 0-26.9-29.3-64.3-68 3-15.5 9.5-32.1 30.6-53.8 89.2 63.5 92 141.6 92.5 149.4 4.3 70.6-78.7 91.2-105.3 61.7l0 0z\"],\n \"slack\": [448, 512, [62447, \"slack-hash\"], \"f198\", \"M94.1 315.1c0 25.9-21.2 47.1-47.1 47.1S0 341 0 315.1 21.2 268 47.1 268l47.1 0 0 47.1zm23.7 0c0-25.9 21.2-47.1 47.1-47.1S212 289.2 212 315.1l0 117.8c0 25.9-21.2 47.1-47.1 47.1s-47.1-21.2-47.1-47.1l0-117.8zm47.1-189c-25.9 0-47.1-21.2-47.1-47.1S139 32 164.9 32 212 53.2 212 79.1l0 47.1-47.1 0zm0 23.7c25.9 0 47.1 21.2 47.1 47.1S190.8 244 164.9 244L47.1 244C21.2 244 0 222.8 0 196.9s21.2-47.1 47.1-47.1l117.8 0zm189 47.1c0-25.9 21.2-47.1 47.1-47.1S448 171 448 196.9 426.8 244 400.9 244l-47.1 0 0-47.1zm-23.7 0c0 25.9-21.2 47.1-47.1 47.1S236 222.8 236 196.9l0-117.8C236 53.2 257.2 32 283.1 32s47.1 21.2 47.1 47.1l0 117.8zm-47.1 189c25.9 0 47.1 21.2 47.1 47.1S309 480 283.1 480 236 458.8 236 432.9l0-47.1 47.1 0zm0-23.7c-25.9 0-47.1-21.2-47.1-47.1S257.2 268 283.1 268l117.8 0c25.9 0 47.1 21.2 47.1 47.1s-21.2 47.1-47.1 47.1l-117.8 0z\"],\n \"angellist\": [384, 512, [], \"f209\", \"M315.6 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1-9.7-28.5-55.1-172.5-95.1-172.5-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7-.1 72.2 68.3 148.6 164.5 148.6 118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM280.2 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM110.8 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM108.5 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7 .1-7.7 12.7-21.1 20.4-21.1zM292.8 430.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3 .3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7 .1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"],\n \"android\": [576, 512, [], \"f17b\", \"M420.5 253.9a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-265.1 0a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm273.7-96.5l47.9-83c.8-1.1 1.3-2.4 1.5-3.8s.2-2.7-.1-4.1-.9-2.6-1.7-3.7-1.8-2-3-2.7-2.5-1.1-3.9-1.3-2.7 0-4 .4-2.5 1.1-3.6 1.9-1.9 2-2.5 3.2l-48.5 84.1c-38.8-17.4-80.8-26.4-123.3-26.4s-84.5 9-123.3 26.4L116.2 64.4c-.6-1.2-1.5-2.3-2.5-3.2s-2.3-1.5-3.6-1.9-2.7-.5-4-.4-2.7 .6-3.9 1.3-2.2 1.6-3 2.7-1.4 2.4-1.7 3.7-.3 2.7-.1 4.1 .8 2.6 1.5 3.8l47.9 83C64.5 202.2 8.2 285.5 0 384l576 0c-8.2-98.5-64.5-181.8-146.9-226.6z\"],\n \"meetup\": [576, 512, [], \"f2e0\", \"M131.1 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3s11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3a11.8 11.8 0 1 0 -4.9-23 11.8 11.8 0 1 0 4.9 23zM66.5 226.3a22.2 22.2 0 1 0 -24.7 36.9 22.2 22.2 0 1 0 24.7-36.9zm272-170.9a22.1 22.1 0 1 0 -22.4-38 22.1 22.1 0 1 0 22.4 38zm-191.1 58a16.9 16.9 0 1 0 -18.8-28 16.9 16.9 0 1 0 18.8 28zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8a10.1 10.1 0 1 0 -19.8 4.3 10.1 10.1 0 1 0 19.8-4.3zm-80.3-73.7a18.8 18.8 0 1 0 20.7 31.3 18.8 18.8 0 1 0 -20.7-31.3zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1 .9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9 .6-107.4 53.4-114.9 25.1-66.2 107.6-97.6 163.6-54.2 67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3 .9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3a23.3 23.3 0 1 0 26.2 38.4 23.3 23.3 0 1 0 -26.2-38.4z\"],\n \"fonticons-fi\": [384, 512, [], \"f3a2\", \"M114.4 224l92.4 0-15.2 51.2-76.4 0 0 157.8c0 8-2.8 9.2 4.4 10l59.6 5.6 0 34.4-179.2 0 0-35.2 29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8l0-155.8c0-3.2-4-3.2-8-3.2l-30.4 0 0-51.2 38.4 0 0-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4L163.6 180c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6l0 32c0 3.2-4.8 6-.8 6zM384 483l-140.8 0 0-34.4 28-3.6c7.2-.8 10.4-2.4 10.4-10l0-148c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4 110 0 0 208c0 8-3.6 8.8 4 10l21.6 3.6 0 34.4zM354 135.8l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10 38 0 21.2-38.4 12.8 0 21.2 38.4 38 0 4.8 13.2-30 33.2z\"],\n \"palfed\": [576, 512, [], \"f3d8\", \"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8 .7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zM190.4 266.1c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4 .9 74.4 2.7 100l0 .2c.2 3.4 .6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4 .2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9 .2 2.5 .4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4l30 0 22.4 217.2s0 44.3 44.7 44.3l288.9 0s44.7-.4 44.7-44.3l22.4-217.2 30 0s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4l-30.1 0c-7.3-25.6-30.2-74.3-119.4-74.3l-28 0 0-19.1s-2.7-18.4-21.1-18.4l-85.8 0S224 31.9 224 50.3l0 19.1-28.1 0s-105 4.2-120.5 74.3l-29 0S8 142.5 8 181.1z\"],\n \"wpbeginner\": [512, 512, [], \"f297\", \"M463.2 322.4c56.2 64.3 4.2 157.6-91.9 157.6-39.6 0-78.8-17.7-100.1-50-6.9 .4-22.7 .4-29.6 0-21.4 32.4-60.6 50-100.1 50-95.5 0-148.3-93-91.9-157.6-79.1-131.9 31.3-290.4 206.8-290.4 175.6 0 285.9 158.6 206.8 290.4zm-339.6-83l41.5 0 0-58.1-41.5 0 0 58.1zm217.2 86.1l0-23.8c-60.5 20.9-132.4 9.2-187.6-34l.2 24.9c51.1 46.4 131.7 57.9 187.3 32.9zM190 239.4l166.1 0 0-58.1-166.1 0 0 58.1z\"],\n \"diaspora\": [448, 512, [], \"f791\", \"M219.7 354.6c-1.4 0-88 119.9-88.7 119.9S44.4 414 44 413.3 130.6 287.5 130.6 285.8c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1 .6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3 .4-2 1-148.6 1.7-149.6 .8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3 .8 .9 31.9 102.2 31.5 102.6-.9 .9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5l0 0z\"],\n \"product-hunt\": [512, 512, [], \"f288\", \"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2l-70.3 0 0-74.4 70.3 0c20.5 0 37.2 16.7 37.2 37.2zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm367.9-37.2c0-47.9-38.9-86.8-86.8-86.8l-119.9 0 0 248 49.6 0 0-74.4 70.3 0c47.9 0 86.8-38.9 86.8-86.8z\"],\n \"square-upwork\": [448, 512, [], \"e67c\", \"M56 32l336 0c30.9 0 56 25.1 56 56l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32zM270.9 274.2c6.6-52.9 25.9-69.5 51.4-69.5 25.3 0 44.9 20.2 44.9 49.7s-19.7 49.7-44.9 49.7c-27.9 0-46.3-21.5-51.4-29.9zm-26.7-41.8c-8.2-15.5-14.3-36.3-19.2-55.6l-62.9 0 0 78.1c0 28.4-12.9 49.4-38.2 49.4S84.1 283.4 84.1 255l.3-78.1-36.2 0 0 78.1c0 22.8 7.4 43.5 20.9 58.2 13.9 15.2 32.8 23.2 54.8 23.2 43.7 0 74.2-33.5 74.2-81.5l0-52.5c4.6 17.3 15.4 50.5 36.2 79.7l-19.3 110.5 36.8 0 12.8-78.4c4.2 3.5 8.7 6.6 13.4 9.4 12.3 7.8 26.4 12.2 40.9 12.6l3.4 0c45.1 0 80.9-34.9 80.9-81.9s-35.9-82.2-80.9-82.2c-45.4 0-70.9 29.7-78.1 60.1l0 .2z\"],\n \"cuttlefish\": [448, 512, [], \"f38c\", \"M348 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8-45.3-49.6-110.5-80.7-183-80.7-137 0-248 111-248 248S115 504 252 504c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"],\n \"medapps\": [320, 512, [], \"f3c6\", \"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7 .2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32L92 416c-21.2 0-21.2 32 0 32l136 0zm-24 64c21.2 0 21.2-32 0-32l-88 0c-21.2 0-21.2 32 0 32l88 0zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5 0-85.6-71.8-155.2-160-155.2S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6-32.6-60.4-66.1-95.6-66.1-151.7 0-67.9 57-123.2 127-123.2S287 87.3 287 155.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"],\n \"pix\": [512, 512, [], \"e43a\", \"M242.4 292.5c5.4-5.4 14.7-5.4 20.1 0l77 77c14.2 14.2 33.1 22 53.1 22l15.1 0-97.1 97.1c-30.3 29.5-79.5 29.5-109.8 0l-97.5-97.4 9.3 0c20 0 38.9-7.8 53.1-22l76.7-76.7zm20.1-73.6c-6.4 5.5-14.6 5.6-20.1 0l-76.7-76.7c-14.2-15.1-33.1-22-53.1-22l-9.3 0 97.4-97.4c30.4-30.3 79.6-30.3 109.9 0l97.2 97.1-15.2 0c-20 0-38.9 7.8-53.1 22l-77 77zM112.6 142.7c13.8 0 26.5 5.6 37.1 15.4l76.7 76.7c7.2 6.3 16.6 10.8 26.1 10.8 9.4 0 18.8-4.5 26-10.8l77-77c9.8-9.7 23.3-15.3 37.1-15.3l37.7 0 58.3 58.3c30.3 30.3 30.3 79.5 0 109.8l-58.3 58.3-37.7 0c-13.8 0-27.3-5.6-37.1-15.4l-77-77c-13.9-13.9-38.2-13.9-52.1 .1l-76.7 76.6c-10.6 9.8-23.3 15.4-37.1 15.4l-31.8 0-58-58c-30.3-30.3-30.3-79.5 0-109.8l58-58.1 31.8 0z\"],\n \"square-tumblr\": [448, 512, [\"tumblr-square\"], \"f174\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256.8 416c-75.5 0-91.9-55.5-91.9-87.9l0-90-29.7 0c-3.4 0-6.2-2.8-6.2-6.2l0-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2 .5-6.9 4.1-10.2 10-10.2l44.3 0c3.4 0 6.2 2.8 6.2 6.2l0 72 51.9 0c3.4 0 6.2 2.8 6.2 6.2l0 51.1c0 3.4-2.8 6.2-6.2 6.2l-52.1 0 0 83.3c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2 .5 3.6 2.1 4.6 4.9L318 387.1c1 3.2 2 6.7-.3 9.1-8.5 9.1-31.2 19.8-60.9 19.8z\"],\n \"react\": [512, 512, [], \"f41b\", \"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1 .9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2 .6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9-53.4 18.5-91.7 47.7-91.7 77.9 0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zM136.9 187.2c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zM115.7 320.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6 .4 19.5 .6 29.5 .6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8 .9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 301.8a45.8 45.8 0 1 0 0-91.6 45.8 45.8 0 1 0 0 91.6z\"],\n \"jxl\": [448, 512, [], \"e67b\", \"M412.2 32L35.8 32C16 32 0 48 0 67.8L0 444.2C0 464 16 480 35.8 480l376.4 0c19.8 0 35.8-16 35.8-35.8l0-376.4C448 48 432 32 412.2 32zM378.6 333.7c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0zm0-113.9c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0zm0-113.9c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0z\"],\n \"square-linkedin\": [448, 512, [], \"e7d0\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm5 170.2l66.5 0 0 213.8-66.5 0 0-213.8zm71.7-67.7a38.5 38.5 0 1 1 -77 0 38.5 38.5 0 1 1 77 0zM317.9 416l0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2-66.4 0z\"],\n \"css\": [448, 512, [], \"e6a2\", \"M376.3 32L0 32 0 408.3c0 19 7.6 37.2 21 50.7s31.7 21 50.7 21l304.6 0c19 0 37.2-7.6 50.7-21s21-31.7 21-50.7l0-304.6c0-19-7.6-37.2-21-50.7s-31.7-21-50.7-21zM332.4 431.4c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.5-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-4-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L351.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.5 12.5c7.5 8.4 11.5 20.3 11.8 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4 27.4-12.3 35.7c-8.2 8.3-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-101 0c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.4-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-3.9-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L250.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.4 12.5c7.6 8.4 11.5 20.3 11.9 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4.1 27.4-12.3 35.7s-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-105.6 1.1c-8.4-7.7-12.5-19.2-12.5-34.5l0-75.4c0-15.2 4.4-26.7 13.2-34.6c8.9-7.8 20.7-11.8 35.2-11.8c14.1 0 25.2 4 33.4 12c8.3 8 12.5 20 12.5 35.9l0 6-33.1 0 0-5.8c0-6.1-1.3-10.7-4-13.6c-1.1-1.5-2.6-2.7-4.3-3.5s-3.5-1.2-5.4-1.1c-5.4 0-9.2 1.8-11.4 5.6c-2.3 5.2-3.3 10.8-3 16.4l0 65.5c0 13.7 4.8 20.6 14.4 20.8c4.5 0 7.9-1.6 10.2-4.8c2.5-4.1 3.7-8.8 3.5-13.6l0-4.9 33.1 0 0 5.1c0 10.6-2.1 19.5-6.2 26.6c-4 6.9-9.9 12.5-17.1 16c-7.7 3.7-16.1 5.5-24.6 5.3c-14.2 0-25.5-3.9-33.8-11.6z\"],\n \"hashnode\": [512, 512, [], \"e499\", \"M35.7 171.1c-46.9 46-46.9 122.9 0 169.8L171.6 476.8c46 46.9 122.9 46.9 169.8 0L477.3 340.9c46.9-46.9 46.9-123.8 0-169.8L341.4 35.2c-46.9-46.9-123.8-46.9-169.8 0L35.7 171.1zM196 196.5a84.5 84.5 0 1 1 120 119 84.5 84.5 0 1 1 -120-119z\"],\n \"reddit-alien\": [512, 512, [], \"f281\", \"M373 138.6c-25.2 0-46.3-17.5-51.9-41-30.6 4.3-54.2 30.7-54.2 62.4l0 .2c47.4 1.8 90.6 15.1 124.9 36.3 12.6-9.7 28.4-15.5 45.5-15.5 41.3 0 74.7 33.4 74.7 74.7 0 29.8-17.4 55.5-42.7 67.5-2.4 86.8-97 156.6-213.2 156.6S45.5 410.1 43 323.4c-25.4-11.9-43-37.7-43-67.7 0-41.3 33.4-74.7 74.7-74.7 17.2 0 33 5.8 45.7 15.6 34-21.1 76.8-34.4 123.7-36.4l0-.3c0-44.3 33.7-80.9 76.8-85.5 4.9-24.2 26.3-42.4 52.1-42.4 29.4 0 53.3 23.9 53.3 53.3s-23.9 53.3-53.3 53.3zM157.5 255.3c-20.9 0-38.9 20.8-40.2 47.9s17.1 38.1 38 38.1 36.6-9.8 37.8-36.9-14.7-49.1-35.7-49.1l.1 0zM395 303.1c-1.2-27.1-19.2-47.9-40.2-47.9s-36.9 22-35.7 49.1 16.9 36.9 37.8 36.9 39.3-11 38-38.1l.1 0zm-60.1 70.8c1.5-3.6-1-7.7-4.9-8.1-23-2.3-47.9-3.6-73.8-3.6s-50.8 1.3-73.8 3.6c-3.9 .4-6.4 4.5-4.9 8.1 12.9 30.8 43.3 52.4 78.7 52.4s65.8-21.6 78.7-52.4z\"],\n \"tiktok\": [448, 512, [], \"e07b\", \"M448.5 209.9c-44 .1-87-13.6-122.8-39.2l0 178.7c0 33.1-10.1 65.4-29 92.6s-45.6 48-76.6 59.6-64.8 13.5-96.9 5.3-60.9-25.9-82.7-50.8-35.3-56-39-88.9 2.9-66.1 18.6-95.2 40-52.7 69.6-67.7 62.9-20.5 95.7-16l0 89.9c-15-4.7-31.1-4.6-46 .4s-27.9 14.6-37 27.3-14 28.1-13.9 43.9 5.2 31 14.5 43.7 22.4 22.1 37.4 26.9 31.1 4.8 46-.1 28-14.4 37.2-27.1 14.2-28.1 14.2-43.8l0-349.4 88 0c-.1 7.4 .6 14.9 1.9 22.2 3.1 16.3 9.4 31.9 18.7 45.7s21.3 25.6 35.2 34.6c19.9 13.1 43.2 20.1 67 20.1l0 87.4z\"],\n \"wordpress\": [512, 512, [], \"f19a\", \"M61.7 169.4l101.5 278c-71-34.4-119.9-107.2-119.9-191.4 0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8 .9 0 1.8 .1 2.8 .2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7 .3 13.7 .3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4 46.6-139.6-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zM259.7 274.6L195.9 460.1c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9L259.7 274.6zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9c63.3-36.9 105.8-105.4 105.8-183.9 0-37-9.4-71.8-26-102.1zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm484.6 0a236.6 236.6 0 1 0 -473.2 0 236.6 236.6 0 1 0 473.2 0z\"],\n \"ideal\": [512, 512, [], \"e013\", \"M93.8 165.5a49.1 49.1 0 1 0 0 98.1 49.1 49.1 0 1 0 0-98.1zM54.3 425.8l78.9 0 0-140.5-78.9 0 0 140.5zM205.8 214.2c0-20-10-22.5-18.7-22.5l-14 0 0 45.8 14 0c9.7 0 18.7-2.8 18.7-23.3zm201.7 46l0-91.3 22.8 0 0 68.6 33.7 0C454.6 113.1 356.8 86.2 267.8 86.2l-94.8 0 0 82.8 14 0c25.6 0 41.5 17.4 41.5 45.3 0 28.8-15.5 46-41.5 46l-14 0 0 165.6 94.8 0c144.6 0 194.9-67.2 196.7-165.6l-57.1 0zm-109.8 0l-56.2 0 0-91.2 54.4 0 0 22.7-31.7 0 0 10.6 30 0 0 22.7-30 0 0 12.5 33.5 0 0 22.7zm74.7 0l-5.2-17.7-29.7 0-5.2 17.7-23.7 0 27.5-91.3 32.3 0 27.5 91.3-23.7 0zM267.8 32L.1 32 .1 480 267.8 480c161.8 0 251-79.7 251-224.5 0-83.5-32.6-223.5-251-223.5zm0 426.9l-246.6 0 0-405.9 246.6 0c142.1 0 229.9 64.6 229.9 202.4 0 134.1-81 203.4-229.9 203.4zm83.9-264.9l-7.5 25.8 16.4 0-7.5-25.8-1.4 0z\"],\n \"pied-piper-pp\": [448, 512, [], \"f1a7\", \"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7l0-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2l0 68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6S226 95.9 185 95.9c-12 0-24.1 3.2-34.6 8.8l-45.7 0 0 206.3 51.8-10.1 0-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4 .2-9.6 .7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8l0 156.3 51.8-10.1 0-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"],\n \"ussunnah\": [512, 512, [], \"f407\", \"M496.9 268.1c0 63.9-25.4 125.2-70.6 170.3S319.9 509 256 509 130.8 483.5 85.7 438.4 15.1 331.9 15.1 268c0-63.9 25.4-125.2 70.6-170.4S192.2 27.1 256.1 27.1 381.3 52.4 426.5 97.6 497 204.1 497 268l-.1 .1zM39.5 268c-.6 28.8 4.5 57.5 15.1 84.3s26.4 51.2 46.6 71.8 44.2 37 70.8 48.1 55.1 16.9 83.9 16.9 57.4-5.8 83.9-16.9 50.6-27.5 70.8-48.1 36-45 46.6-71.8 15.7-55.5 15.1-84.3c.6-28.8-4.5-57.5-15.1-84.3s-26.4-51.2-46.6-71.8-44.2-37-70.8-48.1-55.1-16.9-83.9-16.9-57.4 5.8-83.9 16.9-50.6 27.5-70.8 48.1-36 45-46.6 71.8-15.7 55.5-15.1 84.3zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9-5.5-4.3-8.2-12.3-8.2-23.8l0-96.5c0-6.5-5.2-20.2-15.7-41.2 7 0 17-9.1 30-27.2l0 147.8c0 11 2.4 19.4 7 25.3 3.7 4.7 10.1 8.9 19 12.6 1.2 .4 2.6 .9 4.1 1.4 2.9 .9 6.3 2.1 10.3 3.5-1.8 2.7-8.3 4-19.9 4l.1 0zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4l-89.8 0c3.3-5.3 4.9-8.8 4.9-10.8s-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4 0-7.4 2.1-13.9 6.3-19.3l20-25.6-7.1-17.7 16.1-19.8 6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7 0 4.2 2.8 13.3 8.3 27.3l16.2 40.7 17.7 0c2.8 .4 7.7 5 14.6 13.9 1.8 2.4 4.3 5.8 7.7 10.2 1.4 1.9 2.9 3.9 4.6 6.1 1.3-2.3 2-4.6 2-7.1 0-2-1.3-6.6-4-13.4L178 304.1c-4-10.6-6.1-17.7-6.1-21.3 0-6.3 1.9-12.3 5.8-17.9 .5-.6 1-1.3 1.5-1.9 4.4-5.6 8.8-11.1 13.3-16.5-1.1 4.6-1.7 8.7-1.7 12 0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3l25.9 0-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32 13.4 0-6.1-15.8c-1.5-3.9-4-7-7.7-9.3l15.7-20.1 17.3 45.2 13.4 0-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20 22.4 58.7 26.2 0c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3l0-93.5c0-6.5-4.5-20.3-13.7-41.2 5.4 0 14.1-9.1 26.2-27.2l0 163.5c0 7.2 .6 12 1.7 14.6 1.6 3.4 5.3 6.2 11.1 8.2-3.9 5.6-8.7 8.5-14.5 8.5l-154.8 0-.1-.2zm-98-44c-2.7-6.7-4-11.7-4-15-.6 1.2-2.4 3.7-5.4 7.6-1.4 1.9-2.2 3.7-2.2 5.3 0 2.6 .8 5.7 2.2 9.3l5.6 13.9c5 0 9 0 11.9-.1l-8.2-20.9 .1-.1zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0zm-27.6 0c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0zm87 27.5c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0z\"],\n \"fort-awesome-alt\": [512, 512, [], \"f3a3\", \"M208 237.4l-22.2 0c-2.1 0-3.7 1.6-3.7 3.7l0 51.7c0 2.1 1.6 3.7 3.7 3.7l22.2 0c2.1 0 3.7-1.6 3.7-3.7l0-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0l-22.2 0c-2.1 0-3.7 1.6-3.7 3.7l0 51.7c0 2.1 1.6 3.7 3.7 3.7l22.2 0c2.1 0 3.7-1.6 3.7-3.7l0-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5-27.6-19.6-59.3-33.7-93.6-40.7-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5-28.9 40.6-45.8 90.1-45.8 143.6 0 2 .1 4 .1 6 .1 .7 .1 1.3 .1 2 .1 1.3 .1 2.7 .2 4 0 .8 .1 1.5 .1 2.3 0 1.3 .1 2.5 .2 3.7 .1 .8 .1 1.6 .2 2.4 .1 1.1 .2 2.3 .3 3.5 0 .8 .1 1.6 .2 2.4 .1 1.2 .3 2.4 .4 3.6 .1 .8 .2 1.5 .3 2.3 .1 1.3 .3 2.6 .5 3.9 .1 .6 .2 1.3 .3 1.9l.9 5.7c.1 .6 .2 1.1 .3 1.7 .3 1.3 .5 2.7 .8 4 .2 .8 .3 1.6 .5 2.4 .2 1 .5 2.1 .7 3.2 .2 .9 .4 1.7 .6 2.6 .2 1 .4 2 .7 3 .2 .9 .5 1.8 .7 2.7 .3 1 .5 1.9 .8 2.9 .3 .9 .5 1.8 .8 2.7 .2 .9 .5 1.9 .8 2.8s.5 1.8 .8 2.7c.3 1 .6 1.9 .9 2.8 .6 1.6 1.1 3.3 1.7 4.9 .4 1 .7 1.9 1 2.8 .3 1 .7 2 1.1 3 .3 .8 .6 1.5 .9 2.3l1.2 3c.3 .7 .6 1.5 .9 2.2 .4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3 .7 .6 1.3 .9 2 .5 1 1 2.1 1.5 3.1 .2 .6 .5 1.1 .8 1.7 .6 1.1 1.1 2.2 1.7 3.3 .1 .2 .2 .3 .3 .5 2.2 4.1 4.4 8.2 6.8 12.2 .2 .4 .5 .8 .7 1.2 .7 1.1 1.3 2.2 2 3.3 .3 .5 .6 .9 .9 1.4 .6 1.1 1.3 2.1 2 3.2 .3 .5 .6 .9 .9 1.4 .7 1.1 1.4 2.1 2.1 3.2 .2 .4 .5 .8 .8 1.2 .7 1.1 1.5 2.2 2.3 3.3 .2 .2 .3 .5 .5 .7 37.5 51.7 94.4 88.5 160 99.4 .9 .1 1.7 .3 2.6 .4 1 .2 2.1 .4 3.1 .5s1.9 .3 2.8 .4c1 .2 2 .3 3 .4 .9 .1 1.9 .2 2.9 .3s1.9 .2 2.9 .3 2.1 .2 3.1 .3c.9 .1 1.8 .1 2.7 .2 1.1 .1 2.3 .1 3.4 .2 .8 0 1.7 .1 2.5 .1 1.3 0 2.6 .1 3.9 .1 .7 .1 1.4 .1 2.1 .1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1 .8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2 .9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5 .9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4 .2-.2 .3-.5 .5-.7 .8-1.1 1.5-2.2 2.3-3.3 .2-.4 .5-.8 .8-1.2 .7-1.1 1.4-2.1 2.1-3.2 .3-.5 .6-.9 .9-1.4 .6-1.1 1.3-2.1 2-3.2 .3-.5 .6-.9 .9-1.4 .7-1.1 1.3-2.2 2-3.3 .2-.4 .5-.8 .7-1.2 2.4-4 4.6-8.1 6.8-12.2 .1-.2 .2-.3 .3-.5 .6-1.1 1.1-2.2 1.7-3.3 .2-.6 .5-1.1 .8-1.7 .5-1 1-2.1 1.5-3.1 .3-.7 .6-1.3 .9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7 .6-1.5 .9-2.2l1.2-3c.3-.8 .6-1.5 .9-2.3 .4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9 .3-1 .6-1.9 .9-2.8s.5-1.8 .8-2.7c.2-.9 .5-1.9 .8-2.8s.6-1.8 .8-2.7c.3-1 .5-1.9 .8-2.9 .2-.9 .5-1.8 .7-2.7 .2-1 .5-2 .7-3 .2-.9 .4-1.7 .6-2.6 .2-1 .5-2.1 .7-3.2 .2-.8 .3-1.6 .5-2.4 .3-1.3 .6-2.7 .8-4 .1-.6 .2-1.1 .3-1.7l.9-5.7c.1-.6 .2-1.3 .3-1.9 .1-1.3 .3-2.6 .5-3.9 .1-.8 .2-1.5 .3-2.3 .1-1.2 .3-2.4 .4-3.6 0-.8 .1-1.6 .2-2.4 .1-1.1 .2-2.3 .3-3.5 .1-.8 .1-1.6 .2-2.4 .1 1.7 .1 .5 .2-.7 0-.8 .1-1.5 .1-2.3 .1-1.3 .2-2.7 .2-4 .1-.7 .1-1.3 .1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2l0-75.8c0-58.6-88.6-58.6-88.6 0l0 75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9l0-71.3c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 25.8 29.6 0 0-144c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-4.8 6.5-3.7 9.5-3.7l0-90.2c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5l0 3.9c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7l0 48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8l0 30.7c3 0 9.5-1.1 9.5 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 144 29.5 0 0-25.8c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 71.3z\"],\n \"buromobelexperte\": [448, 512, [], \"f37f\", \"M0 32l0 128 128 0 0-128-128 0zM120 152l-112 0 0-112 112 0 0 112zM160 32l0 128 128 0 0-128-128 0zM280 152l-112 0 0-112 112 0 0 112zM320 32l0 128 128 0 0-128-128 0zM440 152l-112 0 0-112 112 0 0 112zM0 192l0 128 128 0 0-128-128 0zM120 312l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM280 312l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM440 312l-112 0 0-112 112 0 0 112zM0 352l0 128 128 0 0-128-128 0zM120 472l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM280 472l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0z\"],\n \"bilibili\": [512, 512, [], \"e3d9\", \"M488.6 104.1c16.7 18.1 24.4 39.7 23.3 65.7l0 202.4c-.4 26.4-9.2 48.1-26.5 65.1-17.2 17-39.1 25.9-65.5 26.7L92 464c-26.4-.8-48.2-9.8-65.3-27.2-17.1-17.4-26-40.3-26.7-68.6L0 169.8c.8-26 9.7-47.6 26.7-65.7 17.1-16.3 38.8-25.3 65.3-26.1l29.4 0-25.4-25.8c-5.7-5.7-8.6-13-8.6-21.8s2.9-16.1 8.6-21.8 13-8.6 21.9-8.6 16.1 2.9 21.9 8.6l73.3 69.4 88 0 74.5-69.4C381.7 2.9 389.2 0 398 0s16.1 2.9 21.9 8.6c5.7 5.7 8.6 13 8.6 21.8s-2.9 16.1-8.6 21.8L394.6 78 423.9 78c26.4 .8 48 9.8 64.7 26.1zm-38.8 69.7c-.4-9.6-3.7-17.4-10.7-23.5-5.2-6.1-14-9.4-22.7-9.8l-320.4 0c-9.6 .4-17.4 3.7-23.6 9.8-6.1 6.1-9.4 13.9-9.8 23.5l0 194.4c0 9.2 3.3 17 9.8 23.5s14.4 9.8 23.6 9.8l320.4 0c9.2 0 17-3.3 23.3-9.8s9.7-14.3 10.1-23.5l0-194.4zM185.5 216.5c6.3 6.3 9.7 14.1 10.1 23.2l0 33.3c-.4 9.2-3.7 16.9-9.8 23.2-6.2 6.3-14 9.5-23.6 9.5s-17.5-3.2-23.6-9.5-9.4-14-9.8-23.2l0-33.3c.4-9.1 3.8-16.9 10.1-23.2s13.2-9.6 23.3-10c9.2 .4 17 3.7 23.3 10zm191.5 0c6.3 6.3 9.7 14.1 10.1 23.2l0 33.3c-.4 9.2-3.7 16.9-9.8 23.2s-14 9.5-23.6 9.5-17.4-3.2-23.6-9.5c-7-6.3-9.4-14-9.7-23.2l0-33.3c.3-9.1 3.7-16.9 10-23.2s14.1-9.6 23.3-10c9.2 .4 17 3.7 23.3 10z\"],\n \"neos\": [448, 512, [], \"f612\", \"M383.8 512l-95.1 0-108.2-154.5 0 91.1-86.4 63.4-97.7 0 0-482.2 40.5-29.8 108 0 123.7 176.1 0-112.7 86.4-63.4 97.7 0 0 461.5-68.9 50.5zM7.2 35.3l0 460.7 72-52.9 0-249.1 215.5 307.6 84.8 0 52.4-38.2-78.3 0-316.1-450.5-30.2 22.3zM89.7 501.9l80-58.8 0-101-79.8-114.4 0 220.9-72.6 53.3 72.3 0 0 0zM49 10.8l310.6 442.6 82.4 0 0-442.6-79.8 0 0 317.6-222.9-317.6-90.3 0zM279.4 191.6l72 102.8 0-278.5-72 53 0 122.7z\"],\n \"dev\": [448, 512, [], \"f6cc\", \"M120.1 208.3c-3.9-2.9-7.8-4.3-11.6-4.3l-17.4 0 0 104.5 17.4 0c3.9 0 7.8-1.4 11.6-4.3s5.8-7.3 5.8-13.1l0-69.7c0-5.8-2-10.2-5.8-13.1zM404.1 32L43.9 32C19.7 32 .1 51.6 0 75.8L0 436.2C.1 460.4 19.7 480 43.9 480l360.2 0c24.2 0 43.8-19.6 43.9-43.8l0-360.4C447.9 51.6 428.3 32 404.1 32zM154.2 291.2c0 18.8-11.6 47.3-48.4 47.3l-46.4 0 0-165.5 47.4 0c35.4 0 47.4 28.5 47.4 47.3l0 70.9zm100.7-88.7l-53.3 0 0 38.4 32.6 0 0 29.6-32.6 0 0 38.4 53.3 0 0 29.6-62.2 0c-11.2 .3-20.4-8.5-20.7-19.7l0-125.1c-.3-11.1 8.6-20.4 19.7-20.7l63.2 0 0 29.5zM358.5 317.8c-13.2 30.7-36.8 24.6-47.4 0l-38.5-144.8 32.6 0 29.7 113.7 29.6-113.7 32.6 0-38.5 144.8z\"],\n \"hotjar\": [512, 512, [], \"f3b1\", \"M361.8 0c0 131.6-80.7 176.8-140.2 209.4-.6 .3-1.1 .6-1.6 .9-53.8 30.2-88.7 49.8-89.6 122l-98.1 0c0-131.5 80.7-176.7 140.2-209.3 54.8-29.8 90.3-50 90.3-123l99 0zM301.3 302.6c54.8-29.8 90.3-50 90.3-123l98 0c0 131.6-80.7 176.7-140.2 209.4-54.8 29.8-90.3 50-90.3 123l-98 0c0-131.6 80.7-176.8 140.2-209.4z\"],\n \"dochub\": [448, 512, [], \"f394\", \"M413.9 160L272 160 272 19.6 413.9 160zM320 192l0 130c0 66.8-36.5 100.1-113.3 100.1l-94.7 0 0-337.3 94.7 0c12 0 23.1 .8 33.1 2.5l0-84C228.9 1.1 217.4 0 205.2 0L16 0 16 512 205.2 512C345.7 512 416 447.4 416 318.1l0-126.1-96 0z\"],\n \"vimeo\": [448, 512, [], \"f40a\", \"M403.2 32L44.8 32C20.1 32 0 52.1 0 76.8L0 435.2C0 459.9 20.1 480 44.8 480l358.4 0c24.7 0 44.8-20.1 44.8-44.8l0-358.4C448 52.1 427.9 32 403.2 32zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2L53.4 191.3c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3 .9 49 22.5 47.1 64.7z\"],\n \"maxcdn\": [512, 512, [], \"f136\", \"M461.1 442.7l-97.4 0 51.9-242.7c2.3-10.2 .9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6l-49.3 0-59.5 278-97.4 0 59.5-278-83.4 0-59.5 278-97.4 0 59.5-278-44.6-95.4 372.1 0c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9L461.1 442.7z\"],\n \"square-font-awesome-stroke\": [448, 512, [\"font-awesome-alt\"], \"f35c\", \"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm154 58c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2 0 1.8-.4 3.7-1.1 5.4L312 264 342.9 333.4c.8 1.7 1.1 3.5 1.1 5.4 0 7.3-5.9 13.2-13.2 13.2l-186.8 0 0 32-32 0 0-209.5c-6.1-4.8-10-12.2-10-20.5 0-14.4 11.6-26 26-26s26 11.6 26 26z\"],\n \"speakap\": [448, 512, [], \"f3f3\", \"M64.4 391.8C-15 303.6-7.6 167.4 81.1 87.6s224.8-73 304.2 15.2 72 224.4-16.6 304.1c-18.7 16.9 64 43.1 42 52.3-82.1 34.2-253.9 35-346.2-67.5l0 0zM277.7 180.2l38.5-40.9c-9.6-8.9-32-26.8-76.2-27.6-52.3-.9-95.9 28.3-96.8 80-.2 11.3 .3 36.7 29.4 54.8 34.5 21.4 86.5 21.5 86 52.3-.4 21.3-26.4 25.8-38.6 25.6-3 0-30.2-.5-47.6-24.6l-40 42.6c28.2 27 59 32.6 83.5 33 10.2 .2 96.4 .3 97.8-81 .3-15.8-2.1-39.7-28.9-56.6-34.4-21.6-85-19.4-84.4-49.7 .4-23.3 31-25.4 37.5-25.3 .4 0 26.6 .3 39.6 17.4l0 0z\"],\n \"fantasy-flight-games\": [512, 512, [], \"f6dc\", \"M256 32.9L32.9 256 256 479.1 479.1 256 256 32.9zM88.3 255.8c2-2 11.9-12.3 96.5-97.5 41.4-41.8 86.2-43.8 119.8-18.7 24.6 18.4 62.1 58.9 62.1 59 .7 .7 1.1 2.9 .6 3.4-11.3 11.8-22.7 23.5-33.5 34.7-34.2-32.3-40.5-38.2-48.5-44-17.8-12.7-41.4-10.1-57 5.1-2.2 2.1-1.8 3.4 .1 5.4 2.9 2.9 28.1 28.3 35.1 35.8-11.9 11.6-23.7 23-35.7 34.7-12-12.5-24.5-25.5-36.5-38.1-21.4 21.1-41.7 41.1-61.8 61L88.3 255.8zM323.2 357.4c-35.5 35.4-78.1 38.1-107 20.5-22.1-13.5-39.4-32.1-72.9-66.8 12-12.4 23.8-24.4 35.4-36.3 33 31.9 37.1 36 44.7 42.1 18.5 14.7 42.5 13.7 59.3-1.8 3.7-3.4 3.7-3.6 .1-7.2-10.6-10.7-21.2-21.4-31.8-32.2-1.3-1.3-3-2.5-.8-4.7 10.8-10.7 21.5-21.5 32.2-32.3 .3-.3 .6-.4 1.9-1.1 12.4 12.9 24.9 25.9 37.2 38.8 21-20.7 41.2-40.7 61.3-60.4 13.7 13.4 27.1 26.6 40.9 40-20.2 20.9-81.7 82.7-100.5 101.5zM256 0L0 256 256 512 512 256 256 0zM16 256L256 16 496 256 256 496 16 256z\"],\n \"linux\": [448, 512, [], \"f17c\", \"M220.9 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5 .2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4 .2-.8 .7-.6 1.1 .3 1.3 2.3 1.1 3.4 1.7zM199 125c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6 .2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5 .1-1.3 .6-3.4 1.5-3.2 2.9 .1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72 .5-45.9 5.1-131.2-75.8-131.3-102.4-.2-76.8 103.4-77.9 135.2-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9 .6 7.9 1.2 11.8 1.2 8.1 2.5 15.7 .8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1 .6 2.3 1.4 4.6 2.5 6.7l0 .1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3 .4-8.2-4.4-17.3-15.5-29.7zM223.8 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183.1 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4 .7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4l0-.2c2.4-7.6 .6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7 .8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4 .6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1 .8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7 .4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6 .8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1 .3-.2 .7-.3 1-.5 .8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.4 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"],\n \"cotton-bureau\": [512, 512, [], \"f89e\", \"M474.3 330.4C450.6 422.3 380.1 475 272.4 478.8l0-49.2c0-48 26.4-74.4 74.4-74.4 62 0 99.2-37.2 99.2-99.2 0-61.4-36.5-98.3-97.4-99.1-33-69.3-146.5-64.7-177.2 0-60.9 .8-97.4 37.7-97.4 99.1 0 62.1 37.3 99.4 99.4 99.4 48 0 74.6 26.2 74.6 74.4l0 49.2c-134.4-5-211.1-85.1-211.1-223 0-141.8 81.4-223.2 223.2-223.2 114.8 0 189.8 53.2 214.7 148.8l25.3 0C473.9 71.5 388.2 8 259.8 8 105 8 12 101.2 12 255.8 12 411.1 105.2 504.3 259.8 504 388.1 504 473.7 440.2 499.5 330.4l-25.2 0zM357 182.3c41.4 3.4 64.2 29 64.2 73.7 0 48-26.4 74.4-74.4 74.4-28.6 0-49.3-9.6-61.6-27.3 83.1-16.5 75.6-99.7 71.8-120.7zm-81.7 97.4c-2.5-10.3-16.3-87 56.2-97 2.3 10.1 16.5 87.1-56.3 97l0 0zM260 132c28.6 0 49 9.7 61.4 27.6-28.4 5.5-49.4 20.6-61.6 43.4-12.2-22.9-33.2-38-61.6-43.4 12.4-17.7 33.3-27.4 61.6-27.4l.2-.3zm-71.5 50.7c73.2 10.6 58.9 86.8 56.5 97-72.4-9.8-59-87-56.2-97l-.2 0zM173.2 330.4c-48 0-74.4-26.4-74.4-74.4 0-44.4 22.9-70 64.2-73.7-6.8 37.2-1.4 106.5 71.6 120.7-12.1 17.6-32.8 27.3-61.1 27.3l-.3 0zm53.2 12.4c14.3-7.6 26-19.3 33.6-33.5 7.8 14.5 19.3 25.5 33.8 33.5-14.4 7.6-26.1 19.4-33.6 33.8-8-14.5-19.1-26.2-33.6-33.8l-.3 0z\"],\n \"google-wallet\": [448, 512, [], \"f1ee\", \"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200l-93.2 0c-6.5 0-10.5 7.5-6.5 12.7 42.2 54.3 71.7 117.8 91.7 187.3l103.5 0c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368L409 480c-12-138-68.4-265-143.2-368l-108.7 0zM408.9 43.5c-1.8-6.8-8.2-11.5-15.2-11.5l-88.3 0c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"],\n \"foursquare\": [384, 512, [], \"f180\", \"M331.1 3L57.9 3C20.4 3 8 31.3 8 49.1L8 482.9c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1 128.9-149.4 131.1-151.9 131.1-151.9 3.1-3.4 3.4-3.1 6.8-3.1l83.4 0c35.1 0 40.6-25.2 44.3-39.7l48.6-243C381.8 25.8 371.1 3 331.1 3zM314.8 76.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2l-106.4 0c-12 0-20.6 8.3-20.6 20.3l0 13c0 12 8.6 20.6 20.6 20.6l90.4 0c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5l-73.5 0c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9 .9-1.8 .6-1.8-.3l0-338.8c0-7.7 6.8-16.6 16.6-16.6l219 0c8.2 0 15.6 7.7 13.5 17.5z\"],\n \"shirtsinbulk\": [448, 512, [], \"f214\", \"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4-4.4 9.9zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4-4.4 9.9zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9-30.6 13.4zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4-4.4 9.6zM60.4 392.8l30.6 13.4 4.4-9.6-30.6-13.7-4.4 9.9zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9-30.6 13.4zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6-30.6 13.4zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9-30.6 13.7zM170 46.6l-33.5 0 0 10.5 33.5 0 0-10.5zm-47.2 0l-33.6 0 0 10.5 33.5 0 .1-10.5zm-47.3 0l-33.2 0 0 10.5 33.3 0-.1-10.5zm141.5 0l-33.2 0 0 10.5 33.2 0 0-10.5zm94.5 0l-33.5 0 0 10.5 33.5 0 0-10.5zm47.3 0l-33.5 0 0 10.5 33.5 0 0-10.5zm-94.6 0l-33.2 0 0 10.5 33.2 0 0-10.5zm141.5 0l-33.3 0 0 10.5 33.3 0 0-10.5zM52.8 351.1l-10.8 0 0 33.5 10.8 0 0-33.5zm70-215.9l-33.6 0 0 10.5 33.5 0 .1-10.5zm-70 10.6l22.8 0 0-10.5-33.6 0 0 33.5 10.8 0 0-23zM221.7 374.4a91.3 91.3 0 1 0 0-182.6 91.3 91.3 0 1 0 0 182.6zM173.5 263.3c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9-.9 0c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4 .9 0c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4l-10.8 0 0 33.6 10.8 0 0-33.6zM395.2 384.6l10.8 0 0-33.5-10.8 0 0 33.5zM52.8 307.9l-10.8 0 0 33.5 10.8 0 0-33.5zM0 3.7l0 406 221.7 98.6 226.3-98.6 0-406-448 0zM418.8 390.8l-196.8 85.7-192.8-85.7 0-270.1 389.7 0 0 270.1-.1 0zm0-299.3l-389.6 0 0-58.6 389.7 0 0 58.6-.1 0zM52.8 221.6l-10.8 0 0 33.5 10.8 0 0-33.5zm0 43.2l-10.8 0 0 33.5 10.8 0 0-33.5zM170 135.2l-33.5 0 0 10.5 33.5 0 0-10.5zM395.2 298.3l10.8 0 0-33.5-10.8 0 0 33.5zm0-43.2l10.8 0 0-33.5-10.8 0 0 33.5zM217 135.2l-33.2 0 0 10.5 33.2 0 0-10.5zM395.2 212l10.8 0 0-33.5-10.8 0 0 33.5zm0 129.5l10.8 0 0-33.5-10.8 0 0 33.5zm-131-206.3l-33.2 0 0 10.5 33.2 0 0-10.5zm47.3 0l-33.5 0 0 10.5 33.5 0 0-10.5zm83.7 33.6l10.8 0 0-33.5-33.5 0 0 10.5 22.8 0-.1 23zm-36.4-33.6l-33.5 0 0 10.5 33.5 0 0-10.5z\"],\n \"mintbit\": [512, 512, [], \"e62f\", \"M73.2 512l0-73.1 292.5 0 0-73.2 73.2 0 0-146.3 73.1 0 0-219.4-219.4 0 0 73.1-146.3 0 0 73.2-73.1 0 0 292.6-73.2 0 0 73.1 73.2 0zm73.1-219.4l73.2 0 0 73.1-73.2 0 0-73.1zm73.2-73.1l73.1 0 0 73.1-73.2 0 0-73.2 .1 .1zm73.1 0l0-73.2 73.2 0 0 73.1-73.2 0 0 .1zM365.7 73.1l73.2 0 0 73.2-73.2 0 0-73.2z\"],\n \"staylinked\": [448, 512, [], \"f3f5\", \"M386.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L148.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L67.2 268c-3.5-3.5-9.7-3.7-13.9-.5L7.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L215 510.7s7.4 6.8 17.3-.8L430.3 346c4-3.2 4.4-8.7 .7-12.2l-44.3-41.3zm54.5-83.4L230.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L7.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3 .4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7 .9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1 .1c-4.2 3.2-10.5 3.1-14.2-.4L113 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9 .5l160.4 159c3.7 3.5 10 3.7 14.1 .5l45.8-35.8c4.1-3.2 4.4-8.7 .7-12.2z\"],\n \"webflow\": [640, 512, [], \"e65c\", \"M640 64l-204.2 399.2-191.8 0 85.5-165.5-3.8 0C255.1 389.3 149.9 449.5 0 463.2L0 300.1s95.9-5.7 152.3-64.9l-152.3 0 0-171.2 171.1 0 0 140.8 3.8 0 70-140.8 129.4 0 0 139.9 3.8 0 72.6-139.9 189.3 0z\"],\n \"renren\": [512, 512, [], \"f18b\", \"M214 169.1C214 279.5 153 374.5 66.4 416.5 30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5l0 156.6zM255 504c-42.9 0-83.3-11-118.5-30.4 57.2-36.1 103.4-90.7 118.5-154.6 15.5 63.9 61.7 118.5 118.8 154.7-35.1 19.3-75.5 30.3-118.8 30.3zm190.6-87.5C359 374.5 298 279.6 298 169.1l0-156.6c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"],\n \"rev\": [448, 512, [], \"f5b2\", \"M158.7 274.9a65.6 65.6 0 1 1 131.2 0 65.6 65.6 0 1 1 -131.2 0zm270.7-5.1l-.1 0c-.7-29.3-7.7-58.2-20.5-84.6s-31.2-49.7-53.8-68.4L309.6 143c22 14.2 40.1 33.8 52.7 56.8s19.1 48.8 19.1 75.1c0 86.6-70.5 157.1-157.1 157.1S67.2 361.5 67.2 274.9c0-81.9 63-149.3 143-156.4l0 39.1 108.8-62.8-108.8-62.8 0 38.3c-106.7 7.2-191 96-191 204.6 0 111.6 89.1 202.3 200.1 205l0 .1 210.2 0 0-210.2z\"],\n \"keycdn\": [512, 512, [], \"f3ba\", \"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5 .7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4 .3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4-26.8-.1-47.5-21.7-47.5-48.5 0-34.3 33.1-56.6 63.8-45.6zM418.7 156.9c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3 .3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2 .7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4L92 355.6c-19.3-31.6-28.9-67.7-27.8-104.7 1-44.6 18.3-87.6 47.5-121.1L86.4 103.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4 11.9-11.2 30.6-10.9 42.4 1.2zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3 .1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9 303.3 66 344.6 81.6 377.7 109.5l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5-.1-26.7 22.3-48.4 48.3-48.4zM256.7 113.4c5.5 0 10.9 .4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7 73.7 0-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1 .8-57.3 24.8-58.2 58.3z\"],\n \"hire-a-helper\": [512, 512, [], \"f3b0\", \"M443.1 0L71.9 0C67.9 37.3 37.4 67.8 0 71.7L0 443.2c37.4 4.9 66 32.4 71.9 68.8l372.2 0c3-36.4 32.5-65.8 67.9-69.8l0-370.5C475.6 65.8 447 36.4 443.1 0zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8l-111.2 0c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8l0-101.2c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8l109.2 0c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4l0 101.2c0 83.4 .1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"],\n \"square-hacker-news\": [448, 512, [\"hacker-news-square\"], \"f3af\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM21 229.2s.1-.1 .1-.2 .1-.2 .2-.2c0 .1 0 .3-.1 .4l-.2 0zM239.2 384l-31.4 0 0-102.7-79.8-153.3 37.3 0c41.5 77.7 48.1 95.8 54.1 112 1.6 4.3 3.1 8.5 5.2 13.6 3.2-7 5.1-11.9 7.1-17.3 5.9-15.3 12.8-33.2 53.5-108.3l34.8 0-80.8 155.1 0 100.9z\"],\n \"creative-commons-pd-alt\": [512, 512, [], \"f4ed\", \"M255.6 8C112.7 8 8 123.1 8 256 8 394.5 121.6 504 255.6 504 385.5 504 504 403.1 504 256 504 118.1 397.4 8 255.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM324.7 186l-53.2 0 0 137.2 53.2 0c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5l-19.9 0 0-79.7 19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM211.7 186l-68.2 0 0 137.3 34.6 0 0-44.3 27 0c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3l-29.2 0 0-41.6 28.3 0c30.9 0 28.8 41.6 .9 41.6z\"],\n \"orcid\": [512, 512, [], \"f8d2\", \"M294.7 188.2l-45.9 0 0 153.8 47.5 0c67.6 0 83.1-51.3 83.1-76.9 0-41.6-26.5-76.9-84.7-76.9zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM175.2 368.8l-29.8 0 0-207.5 29.8 0 0 207.5zM160.3 98.5a19.6 19.6 0 1 1 0 39.2 19.6 19.6 0 1 1 0-39.2zM300 369l-81 0 0-207.7 80.6 0c76.7 0 110.4 54.8 110.4 103.9 0 53.3-41.7 103.9-110 103.9z\"],\n \"behance\": [576, 512, [], \"f1b4\", \"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8l-167.1 0 0 354.4 171.8 0c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9l73.1 0c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2l-79 0 0-82.7zm83.3 233.7l-83.3 0 0-97.6 84.9 0c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zM519.7 128.9l-143.7 0 0-34.9 143.7 0 0 34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3l-62.2 0c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3l185.1 0c.3-4.2 .6-8.7 .6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8l-114.7 0z\"],\n \"monero\": [512, 512, [], \"f3d0\", \"M360 384l108.4 0C425 455.9 346.1 504 256 504S87 455.9 43.6 384l108.4 0 0-127.8 104 104.8 104-105 0 128zM96 336l0-208 159.4 159.4 160.6-159.4 0 208 74.8 0c8.5-25.1 13.2-52 13.2-80 0-137-111-248-248-248S8 119 8 256c0 28 4.6 54.9 13.2 80L96 336z\"],\n \"figma\": [384, 512, [], \"f799\", \"M14 95.8C14 42.9 56.9 0 109.8 0L274.2 0c52.9 0 95.8 42.9 95.8 95.8 0 33.5-17.2 63-43.2 80.1 26 17.1 43.2 46.6 43.2 80.1 0 52.9-42.9 95.8-95.8 95.8l-2.1 0c-24.8 0-47.4-9.4-64.4-24.9l0 88.3c0 53.6-44 96.8-97.4 96.8-52.8 0-96.3-42.8-96.3-95.8 0-33.5 17.2-63 43.2-80.1-26-17.1-43.2-46.6-43.2-80.1s17.2-63 43.2-80.1C31.2 158.8 14 129.3 14 95.8zm162.3 95.8l-66.5 0c-35.6 0-64.4 28.8-64.4 64.4 0 35.4 28.6 64.2 64 64.4l66.9 0 0-128.8zM207.7 256c0 35.6 28.8 64.4 64.4 64.4l2.1 0c35.6 0 64.4-28.8 64.4-64.4s-28.8-64.4-64.4-64.4l-2.1 0c-35.6 0-64.4 28.8-64.4 64.4zm-97.9 95.8l-.4 0c-35.4 .2-64 29-64 64.4s29.2 64.4 64.9 64.4c36.3 0 66-29.4 66-65.5l0-63.4-66.5 0zm0-320.4c-35.6 0-64.4 28.8-64.4 64.4s28.8 64.4 64.4 64.4l66.5 0 0-128.8-66.5 0zm97.9 128.8l66.5 0c35.6 0 64.4-28.8 64.4-64.4s-28.8-64.4-64.4-64.4l-66.5 0 0 128.8z\"],\n \"instagram\": [448, 512, [], \"f16d\", \"M224.3 141a115 115 0 1 0 -.6 230 115 115 0 1 0 .6-230zm-.6 40.4a74.6 74.6 0 1 1 .6 149.2 74.6 74.6 0 1 1 -.6-149.2zm93.4-45.1a26.8 26.8 0 1 1 53.6 0 26.8 26.8 0 1 1 -53.6 0zm129.7 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM399 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"],\n \"perbyte\": [448, 512, [], \"e083\", \"M305.3 284.6l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5zM149.4 128.7l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5zM366.6 32L81.4 32c-21.6 0-42.2 8.6-57.5 23.9S0 91.8 0 113.4L0 398.6c0 21.6 8.6 42.2 23.9 57.5S59.8 480 81.4 480l285.3 0c21.6 0 42.2-8.6 57.5-23.9S448 420.2 448 398.6l0-285.3c0-21.6-8.6-42.2-23.9-57.5S388.2 32 366.6 32zm63.6 366.6c0 16.9-6.7 33-18.7 45s-28.1 18.6-45 18.7l-285.3 0c-16.9 0-33-6.7-45-18.7s-18.6-28.1-18.7-45l0-285.3c0-16.9 6.7-33 18.7-45s28.1-18.6 45-18.7l285.3 0c16.9 0 33 6.7 45 18.7s18.6 28.1 18.7 45l0 285.3zm-125-269.9l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5z\"],\n \"square-vimeo\": [448, 512, [\"vimeo-square\"], \"f194\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM318.5 309.5c-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-3.8-13.9-7.3-26.9-10.5-39-18.2-68.3-28.6-107.4-46.2-107.4-2.4 0-10.8 5-25.1 15.1L64 192c7-6.1 13.9-12.4 20.6-18.5 29.1-26.3 55.6-50.3 73.5-51.9 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64-1.4 31.1-23.2 73.8-65.3 127.9z\"],\n \"pushed\": [448, 512, [], \"f3e1\", \"M415.1 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L30.6 76.9c-15.1 2.7-26 18.3-21.4 36.6L114.3 461.8c6.5 21.3 36.7 24.2 47.7 7L197.3 388 432.5 156.7c16.4-16.8 4.3-42.9-17.4-44.8zM305.7 53.6c5.1-.7 7.5 2.5 5.2 7.4l-16.8 39.9-177.4-16.3 189-31zM30.8 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7-157.9-244.3zM144.1 456.4c-2.6 4-7.9 3.1-9.4-1.2L51.6 179.7 179.3 377.3c-7 15-35.2 79.1-35.2 79.1zM416.9 141.9l-198.7 195.4 89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"],\n \"mixcloud\": [640, 512, [], \"f289\", \"M213 346.6l-33.2 0 0-151.5 6.2-21.6-10.7 0-38.1 173.1-61 0-38.4-173.1-10.5 0 5.9 21.6 0 151.5-33.2 0 0-181.6 65.7 0 36.6 173.1 8.5 0 36.6-173.1 65.7 0 0 181.6zm331.5-63l-86 62.1 0-38.1 72.9-51.8-72.9-51.8 0-38.1 86 62.3 9.3 0 86.3-62.3 0 38.1-73.1 51.8 73.1 51.8 0 38.1-86.3-62.1-9.3 0zM430.2 272.3l-182 0 0-33.1 182 0 0 33.1z\"],\n \"yandex-international\": [320, 512, [], \"f414\", \"M129.5 512l0-166.1-111-297.9 55.8 0 81.8 229.7 94.1-277.7 51.3 0-120.7 347.8 0 164.2-51.3 0z\"],\n \"hive\": [512, 512, [], \"e07f\", \"M260.4 254.9L131.5 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3-.8 .1-1.1 .3-.6 .5-.8 .8L.3 254.9c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1L129.1 478.9c.2 .3 .5 .6 .8 .8s.7 .3 1.1 .3 .8-.1 1.1-.3 .6-.5 .8-.8L260.4 257.1c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1zm39.1-25.7c.2 .3 .5 .6 .8 .8s.7 .3 1.1 .3l66.5 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8 .3-.7 .3-1.1-.1-.8-.3-1.1L259.1 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3l-66.5 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8-.3 .7-.3 1.1 .1 .8 .3 1.1L299.4 229.2zm212.3 25.7L384.9 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3l-66.6 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8-.3 .7-.3 1.1 .1 .8 .3 1.1L440.7 256 314.5 476.7c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1 .5 .6 .8 .8 .7 .3 1.1 .3l66.6 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8L511.7 257.1c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1zM366 284.9l-66.5 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8L188.8 476.7c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1 .5 .6 .8 .8 .7 .3 1.1 .3l66.5 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8L367.9 288.3c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1-.5-.6-.8-.8-.7-.3-1.1-.3z\"],\n \"creative-commons-zero\": [512, 512, [], \"f4f3\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8S174.1 398.8 256 398.8 358.5 321.5 358.5 256 337.9 113.2 256 113.2zm0 53.9c3.3 0 6.4 .5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9L213.8 290.4c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"],\n \"square-snapchat\": [448, 512, [\"snapchat-square\"], \"f2ad\", \"M384 32L64 32c-17 0-33.3 6.7-45.3 18.7S0 79 0 96L0 416c0 17 6.7 33.3 18.7 45.3S47 480 64 480l320 0c17 0 33.3-6.7 45.3-18.7S448 433 448 416l0-320c0-17-6.7-33.3-18.7-45.3S401 32 384 32zm-3.9 319.3l-.1 .1c-2.5 2.8-5.4 5.1-8.7 6.8-6.5 3.6-13.4 6.3-20.6 8.2-1.4 .4-2.7 1-3.9 1.8-2.2 1.9-2.1 4.6-4.4 8.6-1.7 3-4 5.5-6.8 7.5-6.7 4.6-14.2 4.9-22.2 5.2-7.2 .3-15.4 .6-24.7 3.7-3.8 1.2-7.8 3.7-12.4 6.5-11.3 6.9-26.7 16.4-52.3 16.4s-40.9-9.4-52.1-16.3c-4.7-2.9-8.7-5.4-12.5-6.6-9.3-3.1-17.5-3.4-24.7-3.7-8-.3-15.5-.6-22.2-5.2-2.4-1.6-4.4-3.7-6-6.1-3.2-4.6-2.9-7.8-5.3-9.9-1.3-.8-2.6-1.5-4.1-1.8-7.1-1.9-13.9-4.6-20.3-8.1-3.1-1.6-5.9-3.8-8.3-6.3-6.6-6.8-8.3-14.8-5.7-21.8 3.4-9.3 11.6-12.1 19.4-16.3 14.8-8 26.3-18.1 34.4-29.9 2.3-3.3 4.3-6.9 6-10.6 .8-2.2 .8-3.3 .2-4.4-.6-.9-1.3-1.6-2.2-2.2-2.5-1.7-5.1-3.4-6.9-4.5-3.3-2.1-5.9-3.8-7.5-5-6.3-4.4-10.6-9-13.4-14.2-1.9-3.6-3-7.6-3.3-11.6s.4-8.1 1.9-11.9c4.1-10.9 14.5-17.7 27-17.7 2.6 0 5.3 .3 7.8 .8 .7 .2 1.4 .3 2 .5-.1-7.4 .1-15.4 .7-23.1 2.4-27.3 11.9-41.6 21.9-53 6.4-7.2 13.9-13.2 22.3-17.9 15.1-8.6 32.2-13 50.9-13s35.8 4.4 50.9 13c8.3 4.7 15.9 10.8 22.2 17.9 10 11.4 19.5 25.7 21.9 53 .6 7.7 .9 15.4 .7 23.1 .7-.2 1.4-.3 2.1-.5 2.6-.6 5.2-.8 7.8-.8 12.5 0 22.8 6.8 27 17.7 1.5 3.8 2.1 7.9 1.9 11.9s-1.4 8-3.3 11.6c-2.7 5.2-7.1 9.9-13.4 14.2-1.7 1.2-4.3 2.9-7.5 5-1.8 1.2-4.5 2.9-7.2 4.7-.8 .5-1.4 1.2-1.9 2-.5 1-.5 2.2 .2 4.2 1.7 3.8 3.7 7.4 6.1 10.8 8.3 12.1 20.2 22.3 35.5 30.4 1.5 .8 3 1.5 4.4 2.3 .7 .3 1.6 .8 2.5 1.3 4.9 2.7 9.2 6 11.5 12.2 2.5 6.9 1 14.7-5.2 21.3zm-16.7-18.5c-50.3-24.3-58.3-61.9-58.7-64.7-.4-3.4-.9-6 2.8-9.5 3.6-3.3 19.5-13.2 24-16.3 7.3-5.1 10.5-10.2 8.2-16.5-1.7-4.3-5.7-6-10-6-1.3 0-2.7 .2-4 .4-8 1.7-15.8 5.8-20.4 6.9-.5 .1-1.1 .2-1.7 .2-2.4 0-3.3-1.1-3.1-4 .6-8.8 1.8-25.9 .4-41.9-1.9-22-9-32.9-17.4-42.6-4.1-4.6-23.1-24.7-59.5-24.7s-55.4 20.1-59.5 24.8c-8.4 9.7-15.5 20.6-17.4 42.6-1.4 16-.1 33.1 .4 41.9 .2 2.8-.7 4-3.1 4-.6 0-1.1-.1-1.7-.2-4.5-1.1-12.3-5.1-20.3-6.9-1.3-.3-2.6-.4-4-.4-4.3 0-8.3 1.6-10 6-2.4 6.3 .8 11.4 8.2 16.5 4.4 3.1 20.4 13 24 16.3 3.7 3.4 3.2 6.1 2.8 9.5-.4 2.8-8.4 40.4-58.7 64.7-2.9 1.4-8 4.4 .9 9.3 13.9 7.6 23.1 6.8 30.3 11.4 6.1 3.9 2.5 12.4 6.9 15.4 5.5 3.8 21.6-.3 42.3 6.6 17.4 5.7 28.1 22 59 22s41.8-16.3 58.9-22c20.8-6.9 36.9-2.8 42.3-6.6 4.4-3.1 .8-11.5 6.9-15.4 7.2-4.6 16.4-3.8 30.3-11.5 8.8-4.9 3.8-7.9 .9-9.4z\"],\n \"themeisle\": [512, 512, [], \"f2b2\", \"M208 88.3c0-10 6.3-21.7 17.7-21.7 11.1 0 17.7 11.7 17.7 21.7 0 10.3-6.6 21.7-17.7 21.7-11.4 0-17.7-11.4-17.7-21.7zm304 160c0 36-11.4 102.3-36.3 129.7-22.9 24.9-87.4 61.1-120.9 70.6l-1.1 .3 0 32.6c0 16.3-12.6 30.6-29.1 30.6-10 0-19.4-5.7-24.6-14.3-5.4 8.6-14.9 14.3-24.9 14.3s-19.4-5.7-24.9-14.3c-5.1 8.6-14.6 14.3-24.6 14.3-10.3 0-19.4-5.7-24.9-14.3-5.1 8.6-14.6 14.3-24.6 14.3-18.9 0-29.4-15.7-29.4-32.9-16.3 12.3-35.7 19.4-56.6 19.4-22 0-43.4-8.3-60.3-22.9 10.3-.3 20.6-2.3 30.3-5.7-20.9-5.7-39.4-18.9-52-36.3 21.4 4.6 46.2 1.7 67.1-11.1-22-22-56.6-58.9-68.6-87.4-5.7-13.4-6.9-31.4-6.9-45.7 0-49.7 20.3-160 86.3-160 10.6 0 18.9 4.9 23.1 14.9 3.7-5.4 7.7-10.5 12-15.4 2-2.6 5.7-5.4 7.1-8.3 8-12.6 11.7-21.1 21.7-34 32.3-41.1 81.7-69.4 134.9-69.4 6 0 12 .3 17.7 1.1 10.9-11.7 26-18.3 41.7-18.3 14.6 0 29.7 6 40 16.3 .9 .9 1.4 2.3 1.4 3.4 0 3.7-10.3 13.4-12.9 16.3 4.3 1.4 15.7 6.9 15.7 12 0 2.9-2.9 5.1-4.6 7.1 31.4 27.7 49.4 67.1 56.3 108 4.3-5.1 10.3-8.6 17.1-8.6 10.6 0 20.9 7.1 28.6 14 20.9 18.6 25.7 53.1 25.7 79.7zM188 89.4c0 18.3 12.6 37.1 32.3 37.1s32.3-18.9 32.3-37.1c0-18-12.6-36.9-32.3-36.9S188 71.4 188 89.4zM237.7 194c0-19.7 3.7-39.1 8.6-58.3-52 79.5-13.5 184.6 68.9 184.6 21.4 0 42.6-7.7 60-20 2-7.4 3.7-14.9 3.7-22.6 0-14.3-6.3-21.4-20.6-21.4-4.6 0-9.1 .9-13.4 1.7-63.3 12.7-107.1 3.7-107.1-64zM196.6 448.9c0-11.1-8.9-20.9-20.3-20.9s-20 9.7-20 20.9l0 32.6c0 11.1 8.6 21.1 20 21.1s20.3-9.7 20.3-21.1l0-32.6zm49.1 0c0-11.1-8.6-20.9-20-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20-10 20-21.1l0-32.6zm49.7 0c0-11.1-8.9-20.9-20.3-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20.3-9.7 20.3-21.1l0-32.6zm49.7 0c0-11.1-8.9-20.9-20.3-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20.3-10 20.3-21.1l0-32.6zM421.7 286c-30.9 59.1-90.3 102.6-158.6 102.6-96.6 0-160.6-84.6-160.6-176.6 0-16.9 2-33.4 6-49.7-20 33.7-29.7 72.6-29.7 111.4 0 60.3 24.9 121.7 71.4 160.9 5.1-9.7 14.9-16.3 26-16.3 10 0 19.4 5.7 24.6 14.3 5.4-8.6 14.6-14.3 24.9-14.3 10 0 19.4 5.7 24.6 14.3 5.4-8.6 14.9-14.3 24.9-14.3s19.4 5.7 24.9 14.3c5.1-8.6 14.6-14.3 24.6-14.3 10.9 0 20.9 6.6 25.7 16 43.4-36.3 68.6-92 71.4-148.3zm10.6-99.7c0-53.7-34.6-105.7-92.6-105.7-30.3 0-58.6 15.1-78.9 36.9-20 66.4-27.4 136.6 41.4 136.6 28.8 0 97.4-28.5 84.3 36.9 28.9-26 45.7-65.7 45.7-104.6z\"],\n \"dart-lang\": [512, 512, [], \"e693\", \"M378.6 78.9c-2.8-.1-5.6-.2-8.5-.2l-264.1 0 143.2-72c7.4-4.4 18.8-6.7 30.4-6.7 13.5 0 29.4 9.2 37 16.8l62 62 0 .1zM107.3 96.5l262.8 0c16 0 25.4 1.4 35.4 9.3l106.5 106.4 0 208.8-79.3 .7-325.4-325.2zM96.5 373l0-262.2 323.8 323.8 .7 77.4-212.2 0-98.1-98.2C99.4 402.5 96.5 398.5 96.5 373zM78.7 105.3l0 267.7c0 3.3 .1 6.3 .2 9.1l-62-62C6.5 309.3 0 294.3 0 279.6 0 272.8 3.9 262.1 6.7 256l72-150.7z\"],\n \"deploydog\": [512, 512, [], \"f38e\", \"M382.2 136l51.7 0 0 239.6-51.7 0 0-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9l0-103.9zM317.5 297.8a33.2 33.2 0 1 0 66.4 1 33.2 33.2 0 1 0 -66.4-1zM188.5 136l51.7 0 0 239.6-51.7 0 0-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9l0-103.9zM123.8 297.8a33.2 33.2 0 1 0 66.4 1 33.2 33.2 0 1 0 -66.4-1zM448 96c17.5 0 32 14.4 32 32l0 256c0 17.5-14.4 32-32 32L64 416c-17.5 0-32-14.4-32-32l0-256c0-17.5 14.4-32 32-32l384 0zm0-32L64 64C28.8 64 0 92.8 0 128L0 384c0 35.2 28.8 64 64 64l384 0c35.2 0 64-28.8 64-64l0-256c0-35.2-28.8-64-64-64z\"],\n \"flipboard\": [448, 512, [], \"f44d\", \"M0 32l0 448 448 0 0-448-448 0zM358.4 211.2l-89.6 0 0 89.6-89.6 0 0 89.6-89.6 0 0-268.8 268.8 0 0 89.6z\"],\n \"buy-n-large\": [576, 512, [], \"f8a6\", \"M288.2 32C133.5 32 8 132.3 8 256S133.5 480 288.2 480 568.4 379.7 568.4 256 442.9 32 288.2 32zM202.8 389.2l-138.5 1.4 77.2-290.7 133.4 0c63.2 0 84.9 28.6 78 72.8-.4 2.3-.9 4.6-1.5 6.9-5.6-1.3-11.4-1.9-17.2-1.9-42.3 0-76.7 33.9-76.7 75.7 0 37.1 27.1 68 62.9 74.5-18.2 37.2-56.2 60.9-117.7 61.5zM358.2 207.1l32 0-22.2 90.3-35.4 0-11.2-35.6-7.8 35.6-37.8 0 26.6-90.3 31.3 0 15 36.8 9.4-36.8zM504.1 389.2l-197.1 0 15.8-61.2c3.8 .6 7.6 .8 11.5 .8 42.3 0 76.7-33.9 76.7-75.6 0-32.6-21-60.5-50.4-71.1l21.3-82.4 92.5 0-53 205.4 103.9 0-21.2 84.1zM211.9 269.4l-24.7 0-13.8 56.5 24.7 0c16.1 0 32.1-3.2 37.9-26.6 5.6-22.3-8-29.8-24.1-29.8zM233.2 170l-21.3 0-11.7 47.7 21.4 0c18 0 35.4-14.6 39.2-30.1 4.6-18.9-9.5-17.6-27.6-17.6z\"],\n \"watchman-monitoring\": [512, 512, [], \"e087\", \"M256 16a240 240 0 1 0 0 480 240 240 0 1 0 0-480zM121.7 429.1c-51.6-40.2-84.9-102.8-84.9-173.1 0-21.7 3.2-43.3 9.6-64.1l102.9-17.9-.1 11-13.9 2s-.1 12.5-.1 19.5c0 2 .4 4 1.2 5.8s2.1 3.4 3.7 4.6l9.5 7.4-27.7 204.9zM227.4 145.9l8.5-7.6s6.9-5.4-.1-9.3c-7.2-4-39.5-34.5-39.5-34.5-5.3-5.5-8.3-7.3-15.5 0 0 0-32.3 30.5-39.5 34.5-7.1 4-.1 9.3-.1 9.3l8.5 7.6 0 4.4-73.5-19.2c39.6-56.9 105.5-94.3 180-94.3 31.3 0 62.2 6.7 90.6 19.6s53.8 31.8 74.3 55.4l-193.5 37.7 0-3.6zm34.1 329.3l-33.9-250.9 9.5-7.4c1.6-1.2 2.8-2.8 3.7-4.6s1.3-3.8 1.2-5.8c0-7-.1-19.5-.1-19.5l-13.9-2-.1-10.5 241.7 31.4c3.9 16.4 5.8 33.3 5.8 50.1 0 119.1-95.4 216.2-213.8 219.1z\"],\n \"hips\": [640, 512, [], \"f452\", \"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8l-40.9 0c-1.6 0-2.7 1.4-2.7 2.8l0 201.8c0 1.4 1.1 2.8 2.7 2.8l40.9 0c1.9 0 2.8-.9 2.8-2.8l0-201.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4l0-81.2c0-1.8-.9-2.7-2.8-2.7l-40.9 0C.9 77.5 0 78.4 0 80.2L0 359.4c0 1.9 .9 2.8 2.7 2.8l41 0c1.9 0 2.8-.9 2.8-2.8l0-136.1c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27l0 122.6c0 9 7.3 16.3 16.4 16.3l27.3 0c1.8 0 2.7-.9 2.7-2.8l0-136.1c0-23.4-9.3-41.8-28-55.3zM634.9 278.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4l0-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5 .4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6L580.4 286c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4 .2-4.4 2.3l0 34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3 .7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5l0 183.5c0 .8 .6 2.7 2.7 2.7l40.9 0c1.9 0 2.8-.9 2.8-2.7l0-88.8c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7 .1-60.3-48.2-108.6-108.6-108.6zm0 46.6a62.2 62.2 0 1 1 0 124.3 62.2 62.2 0 1 1 0-124.3zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"],\n \"cloudversify\": [640, 512, [], \"f385\", \"M160.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5l0 20.4c0 10.7-8.7 19.5-19.5 19.5l-20.2 0c-10.7 0-19.5-6-19.5-16.7l0-6.6-46.8 0c-3.8 0-10.8 4.3-10.8 11.9l0 40.4c0 6.4 5.3 11.8 11.7 11.8l48.9 0 0-.1zM388 312c-10.7 46.3 21.7 72.4 55.3 86.8-107.2 33.8-171.6-50.8-135.3-110.8-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9 30.6-15.8 103.5-8.5 133.6 40.8-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM140 208l-39.8 0c-8.9 0-16.2-7.3-16.2-16.2l0-39.6c0-8.9 7.3-16.2 16.2-16.2l39.8 0c8.9 0 16.2 7.3 16.2 16.2l0 39.6c0 8.9-7.3 16.2-16.2 16.2zM22.1 168c-5.6 0-10.1-4.5-10.1-10.1l0-27.8c0-5.6 4.5-10.1 10.1-10.1l27.7 0c5.5 0 10.1 4.5 10.1 10.1l0 27.8c0 5.6-4.5 10.1-10.1 10.1l-27.7 0zM180 142.7l0-21.4c0-5.1 4.2-9.3 9.3-9.3l21.4 0c5.1 0 9.3 4.2 9.3 9.3l0 21.4c0 5.1-4.2 9.3-9.3 9.3l-21.4 0c-5.1 0-9.3-4.2-9.3-9.3zM68 235.5l0 25c0 6.3-5.1 11.5-11.4 11.5l-25.2 0c-6.3 0-11.4-5.2-11.4-11.5l0-25c0-6.3 5.1-11.5 11.4-11.5l25.1 0c6.4 0 11.5 5.2 11.5 11.5z\"],\n \"goodreads\": [448, 512, [], \"f3a8\", \"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32l336 0c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3l-29 0 0 40.3c-.8 .3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9 .4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2 .5-1 1.1-1.9 1.7-2.9 .2 .1 .4 .1 .6 .2 .3 3.8 .2 30.7 .1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3l-26.8 0c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"],\n \"tidal\": [640, 512, [], \"e7dc\", \"M107.2 48l-1.3 0c-32.3 33.1-65.4 65.5-98 98.5-2.6 2.8-6.1 5.1-7.9 8.6 35.6 35.4 71 71 106.6 106.4 35.4-35.3 70.7-70.8 106.1-106.1l0-1.3-73.2-73.2C128.8 69.8 117.3 59.6 107.2 48zm213.5 0l-1.3 0c-34.9 36.1-71.5 71-106.3 107.2 35.9 35.1 71 71 106.7 106.3 34.3-34.1 68.4-68.4 102.6-102.4 1.5-1.5 3.3-2.8 4.1-4.8-34.6-33.8-68.4-68.2-102.6-102.1-1.3-1.3-2.3-2.6-3.3-4.1zm213.5 0l-1.3 0c-17.2 18-35.1 35.3-52.6 53-17.9 17.7-35.4 35.7-53.5 53.3 .8 2.3 3 3.6 4.6 5.5L533.3 261.5c36.1-34.9 70.8-71.2 106.7-106.1-.5-2.2-2.6-3.5-4-5L555.8 70.2c-7.1-7.4-14.9-14.2-21.5-22.2zM319.6 261.7c-34.9 35.1-70 70-104.9 104.9-.3 .7-.7 1.7-1 2.3 24 23.7 47.7 47.5 71.5 71.3 11.8 11.3 22.8 23.5 34.9 34.4 8.4-7.4 16.4-16.4 24.7-24.3 25.5-25.3 51-51 76.5-76.3 1.8-2.2 4.3-3.6 5.5-6.3-35.4-34.9-70.5-70.2-105.6-105.4l-1.5-.7z\"],\n \"unity\": [448, 512, [], \"e049\", \"M243.6 91.6l80.1 46.8c2.9 1.6 3 6.2 0 7.8l-95.2 55.6c-2.9 1.7-6.3 1.6-9 0l-95.2-55.6c-2.9-1.6-3-6.3 0-7.8l80.1-46.8 0-91.6-204.4 119.4 0 238.8 78.4-45.8 0-93.6c-.1-3.3 3.8-5.7 6.7-3.9l95.2 55.6c2.9 1.7 4.5 4.7 4.5 7.8l0 111.2c.1 3.3-3.8 5.7-6.7 3.9L98 346.8 19.6 392.6 224 512 428.4 392.6 350 346.8 269.9 393.6c-2.8 1.7-6.8-.5-6.7-3.9l0-111.2c0-3.3 1.8-6.3 4.5-7.8L362.9 215c2.8-1.7 6.8 .5 6.7 3.9l0 93.6 78.4 45.8 0-238.8-204.4-119.4 0 91.6z\"],\n \"tencent-weibo\": [320, 512, [], \"f1d5\", \"M40.5 495.8c1.4 19.9-27.6 22.2-29.7 2.9-11.6-129.9 31.1-239.5 101.4-313.2-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM160.2 .1c-125.9 0-204.3 134.2-148.3 242.3 8.7 17.4 35.3 4.5 26.3-13.4-46.3-92.6 21-199.2 122-199.2 75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3 0-91.9-74.6-166.5-166.6-166.5z\"],\n \"free-code-camp\": [576, 512, [], \"f2c5\", \"M97.4 96.2c10.4-10.6 16-17.1 16-21.9 0-2.8-1.9-5.5-3.8-7.4-2.4-1.8-5.4-2.8-8.4-2.8-8.5 0-20.9 8.8-35.8 25.7-41.5 47.3-62.7 93.1-61.8 160.6S21 367.3 57.6 412.2c18.8 23.6 33.2 35.8 43.5 35.8 3.2-.3 6.1-1.6 8.4-3.8 1.9-2.8 3.8-5.6 3.8-8.4 0-5.6-3.9-12.2-13.2-20.6-44.5-42.3-67.3-97-67.5-165-.2-61.4 21.6-112.4 64.8-154zM239.6 420.1c.6 .4 .9 .6 .9 .6l-.9-.6zm93.8 .6l.2-.1c-.2 .1-.3 .2-.2 .1zm3.1-158.2c-16.2-4.2 50.4-82.9-68.1-177.2 0 0 15.5 49.4-62.8 159.6-74.3 104.4 23.5 168.7 34 175.2-6.7-4.3-47.4-35.7 9.6-128.6 11-18.3 25.5-34.9 43.5-72.2 0 0 15.9 22.4 7.6 71.1-12.5 73.6 53.8 52.5 54.8 53.5 22.8 26.8-17.7 73.5-21.6 76.6 5.5-3.7 117.7-78 33-188.1-6 6-13.8 34.2-30 30.1zM511 89.7c-14.9-16.9-27.4-25.7-35.9-25.7-3 .1-5.9 1.1-8.4 2.8-1.9 1.9-3.8 4.7-3.8 7.4 0 4.8 5.6 11.3 16 21.9 43.2 41.6 65 92.6 64.8 154.1-.2 68-23 122.6-67.5 165-9.3 8.4-13.2 14.9-13.2 20.6 0 2.7 1.9 5.6 3.8 8.4 2.3 2.2 5.2 3.6 8.4 3.8 10.3 0 24.7-12.1 43.5-35.8 36.6-44.9 53.1-94.4 54.1-161.9S552.5 137 511 89.7z\"],\n \"x-twitter\": [448, 512, [], \"e61b\", \"M357.2 48L427.8 48 273.6 224.2 455 464 313 464 201.7 318.6 74.5 464 3.8 464 168.7 275.5-5.2 48 140.4 48 240.9 180.9 357.2 48zM332.4 421.8l39.1 0-252.4-333.8-42 0 255.3 333.8z\"],\n \"sticker-mule\": [576, 512, [], \"f3f7\", \"M561.7 199.6l0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3 .5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8 .4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5 .5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5 .5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4 .5 1 1 2 1.5 3.5 .5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5 .5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5 .3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6 .5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3 .8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"],\n \"twitch\": [448, 512, [], \"f1e8\", \"M359.4 103.5l-38.6 0 0 109.7 38.6 0 0-109.7zM253.2 103l-38.6 0 0 109.8 38.6 0 0-109.8zM89 0l-96.5 91.4 0 329.2 115.8 0 0 91.4 96.5-91.4 77.3 0 173.8-164.6 0-256-366.9 0zM417.3 237.8l-77.2 73.1-77.2 0-67.6 64 0-64-86.9 0 0-274.3 308.9 0 0 201.2z\"],\n \"kickstarter-k\": [448, 512, [], \"f3bc\", \"M356.7 256.2l40.8-40.5c42.2-41.9 42.2-110.3 0-152.1s-111-41.9-153.2 0L229.3 78.4C209.6 50.3 177.1 32 140.2 32 80.5 32 32 80.2 32 139.5l0 233c0 59.4 48.5 107.5 108.2 107.5 37.1 0 69.3-18.3 89-46.4l14.9 14.7c42.2 41.9 111 41.9 153.2 0s42.2-110.3 0-152.1l-40.8-40 .1 0z\"],\n \"critical-role\": [448, 512, [], \"f6c9\", \"M225.8 0c.3 .2 216.6 124.5 217.1 124.7 3 1.2 3.7 3.5 3.7 6.6-.1 83.4-.1 166.9 0 250.4 .1 1.2-.2 2.4-.8 3.4s-1.5 1.9-2.6 2.4c-21.4 12-207.9 118.3-218.9 124.6l-3 0c-79.3-45.7-218.3-125.4-218.4-125.5-.6-.3-1.1-.7-1.4-1.3s-.5-1.2-.4-1.9c0-.9 0-225.9-.1-253.1-.1-1 .2-2 .7-2.9s1.3-1.6 2.2-2C27.2 112.1 213.2 6 224.1 0l1.8 0zM215.4 20.4l-.2-.2c-64.7 36.9-129.5 73.7-194.2 110.6 0 .1 .1 .2 .1 .4L52 142.9c-7.7 6-8.3 6-10.6 5.1-.1 0-24.2-9.3-26.8-10l0 230.4c.9-1.4 64.1-110.9 64.1-111 1.6-2.8 3-1.9 9.1-1.5 1.4 .1 1.5 .2 .8 1.4-41.2 71.3-36.4 63-67.5 116.9-.8 1.4-.6 1.1 1.2 1.1l186.5 0c1.4 0 1.7-.2 1.7-1.6l0-8.9c0-1.3 2.4-.8-18.4-1-7.5-.1-14.1-3.2-21.4-12.7-7.4-9.7-14.6-19.4-21.8-29.2-2.3-3.1-3.4-2.4-16.8-2.4-1.8 0-1.8 0-1.8 1.8 .3 26.2 .2 25.3 1 32.7 .5 4.4 2.2 4.2 9.7 4.8 3.1 .3 3.9 4.1 .5 4.9-1.6 .4-31.6 .5-33.7-.1-.5-.1-1-.5-1.3-.9s-.5-1-.4-1.6 .3-1.1 .6-1.5 .9-.7 1.4-.8c3.3-.8 6.2 .8 6.7-4.4 1.3-13.7 1.2-9 1.1-79.4 0-10.8-.4-12.6-5.4-13.6-1.2-.2-3.5-.2-4.7-.6-2.9-1-2-4.8 1.8-4.8 33.7 0 46.1-1.1 56.1 4.9 7.7 4.6 12 11.5 12.5 20.4 .9 14.6-6.5 22.3-15 32.6-.2 .1-.3 .3-.4 .5s-.1 .4-.1 .6 0 .4 .1 .6 .2 .4 .4 .5c2.6 3.2 5 6.6 7.7 9.8 27.6 33.2 24.1 30.5 41.3 33.1 .9 .1 1-.4 1-1.2l0-11c0-1 .3-1.4 1.4-1.3 7.8 1.2 15.8 1.1 23.6-.3 1.1-.1 1.5 .2 1.5 1.3 0 .1 .9 26.7 .9 26.8 0 1.5 .7 1.6 1.9 1.6l186.7 0c-27.2-47-54.2-94-81.2-140.8 2.3-.7-.4 0 6.7-1.4 2-.4 2.1-.4 3.1 1.4 7.3 12.6 77.3 134 77.4 134.1l0-230.4c-1.7 .5-103.3 38.7-105.8 39.7-1.1 .4-1.5 .2-1.9-.9-.6-1.9-1.3-3.8-2.1-5.6-.3-.8-.1-1.1 .6-1.4 .1 0 95.5-35.8 103-38.8-65.4-37.6-130.6-75-196-112.6l86.8 150.4-.3 .3c-9.6-.9-10.5-1.6-11.8-3.9-1-1.7-73.5-127.7-82-142.2-9.1 14.7-83.6 146.2-85.4 146.3-2.9 .2-5.9 .1-9.2 .1 28.8-49.8 57.6-99.5 86.2-149l0 0zm51.9 129.9c1.9-.1 3.7-.4 5.5-.8 1.7-.3 2.5 .2 2.6 1.9 0 .1 .1 19.1-.9 20.5s-1.9 1.2-2.6-.2c-5-9.7 6.2-9.7-39.1-12-.7 0-1 .2-1 .9 0 .1 3.7 122 3.7 122.1 0 .9 .5 1.2 1.2 1.5 3 1.2 5.9 2.5 8.7 4 7.3 4.3 11.4 10.8 12.4 19.3 1.4 11.8-2.8 35.8-32.2 37.1-2.8 .1-28.3 1.1-34.1-23.3-4.7-19.3 8.3-32.7 19.9-36.4 .6-.1 1.2-.4 1.5-.9s.5-1.1 .5-1.7c.1-5.6 3-107.1 3.7-121.3 0-1.1-.6-1.2-1.4-1.1-32.3 .5-36.7-.3-40.2 8.5-2.4 6.2-4.1 1.3-4 .2 1.1-6 2.2-12 3.3-18 .4-2.1 1.4-2.6 3.4-1.9 5.6 2.1 6.7 1.7 37.2 1.9 1.7 0 1.8-.1 1.8-1.8 .7-27.5 .6-22.6 1-29.6 .1-.6-.1-1.2-.3-1.7s-.7-.9-1.3-1.1c-5.6-2.9-8.8-7.6-8.9-13.9-.4-14.8 17.7-21.7 27.4-11.5 6.8 7.2 5.8 18.9-2.5 24.2-.8 .4-1.4 1.1-1.8 1.8s-.6 1.6-.4 2.5c0 .6-.1-4.3 1 30 0 .9 .4 1.1 1.2 1.1 .1 0 23-.1 34.5-.4l0-.1zM68.3 141.7c19.8-4.5 32.7-.6 52.5 1.7 2.8 .3 3.7 1.2 3.6 4-.2 5-1.2 22.3-1.2 23.1 0 .5-.2 1-.5 1.4s-.7 .7-1.2 .9c-4.1 1.7-3.6-4.4-4-7.3-3.1-22.4-73.9-32.7-74.6 25.4-.3 23.9 17 53.6 54.1 50.9 27.2-2 19-20.2 24.8-20.5 .4-.1 .9 0 1.3 .1s.8 .4 1.1 .7 .5 .7 .6 1.2 .1 .9 0 1.3c-1.8 10.8-3.4 19-3.4 19.2-1.5 9.2-86.7 22.1-93.4-42.1-2.7-25.8 10.4-53.4 40.3-60.2zm80 87.7l-19.5 0c-.6 0-1.2-.1-1.6-.4s-.8-.8-1-1.4c2.4-3.8 5.9 .9 5.9-6.1-.1-25.8 .2-38 .2-40.1 0-3.4-.5-4.6-3.3-4.9-7-.7-3.1-3.4-1.1-3.4 11.8-.1 22.6-.2 30 .7 8.8 1.1 16.7 12.6 7.9 22.6-2 2.2-4 4.4-6.1 6.7 1 1.2 6.9 8.8 17.3 19.7 2.7 2.8 6.2 3.5 9.9 3.1 .6 0 1.1-.2 1.5-.6s.7-.9 .7-1.5c.3-3.4 .3 4.7 .4-40.6 0-5.6-.3-6.6-3.2-6.8-4-.4-4-2.3-.7-3.4l19.1-.1c.3 0 4.5 .5 1 3.4 0 0-.2 0-.2 0-3.6 .3-3.9 1-4 4.6-.3 43.9 .1 40.2 .4 42.8 .1 .8 .3 2.2 5.1 2.1 2.5 0 3.9 3.4 0 3.4-10.4 .1-20.7 0-31.1 .1-10.7 0-13.5-6.2-24.2-20.8-1.6-2.2-8.3-2.4-8.2-.4 .9 16.5 0 17.8 4 17.7 4.8-.1 4.7 3.6 .8 3.5l.1 0zm275-10.1c-1.2 7.1 .2 10.4-5.3 10.3-61.5-.4-47.8-.2-50.7-.3-1.2-.1-2.4-.4-3.6-.7-2.5-.6 1.5-1.2-.4-5.6-1.4-3.4-2.8-6.8-4.1-10.2-.1-.4-.4-.8-.7-1.1s-.8-.4-1.3-.4c-4.9-.2-9.7-.2-14.6 .1-.3 0-.6 .2-.9 .3s-.5 .4-.7 .7c-1.6 3.6-3.1 7.3-4.5 11-1.3 3.2 7.9 1.3 12.2 2.2 3 .6 4.5 3.7 .7 3.7l-26.4 0c-2.9 0-3.1-3.2-.7-3.2 1.2 .1 2.4-.2 3.5-.9s1.9-1.5 2.4-2.6c1.5-3 2.8-6 4.1-9.1 18.2-42.1 17.1-40.2 18.4-41.6 .2-.2 .4-.4 .7-.6s.6-.2 .8-.2 .6 .1 .8 .2 .5 .3 .7 .6c2.9 3.3 18.4 44.7 23.6 51.9 2 2.7 5.7 2 6.4 2 3.6 .1 4-1.1 4.1-4.3 .1-1.9 .1 1.2 .1-41.2 0-4.5-2.4-3.7-5.6-4.3-.3 0-2.6-.6-.1-3.1 .2-.2-.9-.2 21.7-.2 2.3 0 5.3 2.8-1.2 3.4-.4 0-.7 0-1.1 .2s-.6 .3-.9 .6-.4 .6-.6 .9-.2 .7-.1 1.1c-.1 1.6-.2 38.9 .3 41.2 .2 .7 .6 1.4 1.2 1.8s1.3 .7 2.1 .6c13.3 .4 14.9 .4 16-3.4 1.7-5.8 4.1-2.5 3.7-.2l0 .1zM318.6 283.6c-4.2 0-4.4-3.4-.6-3.4 35.9-.2 28.1 .4 37.2-.6 1.7-.2 2.4 .2 2.3 1.9-.3 3.4-.6 6.8-1 10.2-.2 2.2-3.2 2.6-3.4-.2-.4-5.3-2.2-4.5-15.6-5.1-1.6-.1-1.6 0-1.6 1.5l0 16.1c0 1.7 0 1.6 1.6 1.5 3.1-.2 10.3 .3 15.7-1.5 .5-.2 3.3-1.8 3.1 1.8 0 .2-.8 10.4-1.2 11.4-.5 1.3-1.9 1.5-2.6 .3-1.2-2 0-5.1-3.7-5.3-15.4-.9-12.9-2.5-12.9 6 0 12.3-.8 16.1 3.9 16.2 16.6 .5 14.4 0 16.4-5.7 .8-2.4 3.5-1.8 3.2 .6-.4 3.2-.8 6.4-1.2 9.6 0 .4-.2 2.4-4.7 2.4-37.2-.1-34.5-.2-35.2-.3-2.7-.5-2.2-3 .2-3.4 1.1-.2 4 .5 4.2-2.6 2.4-56.2-.1-51.3-3.9-51.3l0 0zm-.4-109.5c2.5 .6 3.1 1.8 3 4.6-.3 5.3-.3 9-.6 9.7-.7 2.2-3.1 2.1-3.3-.3-.4-4.8-3-7.8-7.6-9.1-26.3-7.7-32.8 15.5-27.2 30.2 5.9 15.4 22 15.9 28.9 13.8 5.9-1.9 5.9-6.5 6.9-7.6 1.2-1.3 2.2-1.8 3.1 1.1 0 .1 .6 11.9-6 12.7-1.6 .2-19.4 3.7-32.7-3.4-21-11.2-16.7-35.5-6.9-45.3 14-14.1 39.9-7.1 42.3-6.5l0 0zM289.8 280.1c3.3 0 3.7 3 .2 3.4-2.6 .3-5-.4-5 5.5 0 2-.2 29 .4 41.4 .1 2.3 1.2 3.5 3.4 3.7 22 1.2 15-1.7 18.8-6.3 1.8-2.2 2.8 .8 2.8 1.1 .3 13.6-4 12.4-5.2 12.4l-38.2-.2c-1.9-.2-2.1-3-.4-3.4 2-.5 4.9 .4 5.1-2.8 1-15.9 .6-44.6 .3-47.8-.3-3.8-2.8-3.3-5.7-3.7-2.5-.4-2-3.2 .3-3.2 1.4 0 18 0 23.1 0zm-31.6-57.8c.1 4.1 2.9 3.5 6 3.6 2.6 .1 2.5 3.4-.1 3.4-6.5 0-13.7 0-21.6-.1-3.8 0-3.4-3.4 0-3.4 4.5 0 3.2 1.6 3.4-45.5 0-5.1-3.3-3.5-4.7-4.2-2.6-1.2-1.4-3.1 .4-3.2 1.3 0 20.2-.4 21.2 .2s1.9 1.6-.4 2.9c-1 .5-3.9-.3-4.2 2.5 0 .2-.8 1.6-.1 43.8l0 0zM221.3 496.6c.5 .3 1 .5 1.6 .5s1.1-.2 1.6-.5c17-9.8 182-103.6 197.4-112.5-.1-.4 11.3-.2-181.5-.3-1.2 0-1.6 .4-1.5 1.6 0 .1 1.3 44.5 1.2 50.4-.1 2.6-.6 5.2-1.4 7.7-.6 1.8 .4-.5-13.5 32.2-.7 1.7-1 2.2-2-.1-4.2-10.3-8.3-20.7-12.6-31-1.5-3.4-2.2-7.1-2-10.8 .2-2.5 .8-16.1 1.5-48 0-1.9 0-2-2-2l-183 0c2.6 1.6 178.3 102.6 196 112.8l.1 0zM130.4 307.9c0 2.4 .4 2.8 2.8 3 11.5 1.2 21 3.7 25.6-7.3 6-14.5 2.7-34.4-12.5-38.8-2-.6-16-2.8-15.9 1.5 0 8 0 11.6 0 41.6zm105.8-15c0 2.1 1.1 38.7 1.1 39.1 .3 9.9-25.6 5.8-25.2-2.6 .1-2 1.4-37.4 1.1-39.4-14.1 7.4-14.4 40.2 6.4 48.8 4 1.7 8.4 1.9 12.5 .6s7.6-4 9.9-7.7c4.9-7.8 6.8-29.5-5.4-39-.1 .1-.2 .1-.4 .1l0 0zm-12.3-198c-9.8 0-9.7 14.8-.1 14.9s10.1-14.9 .1-14.9l0 0zM143.7 198.6c0 1.8 .4 2.4 2.2 2.6 13.6 1.4 12.5-11 12.2-13.4-1.7-11.2-14.4-10.2-14.4-7.8 0 4.5 0 13.7 0 18.6zM356 205l-6.1-15.8c-2.2 5.5-4.2 10.6-6.2 15.8l12.3 0z\"],\n \"steam-symbol\": [448, 512, [], \"f3f6\", \"M273.5 177.5a61 61 0 1 1 122 0 61 61 0 1 1 -122 0zm174.5 .2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358 0 250.7 97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7C220.7 114.5 271.7 64 334.2 64 397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zM410.5 177.7a76.4 76.4 0 1 0 -152.8 0 76.4 76.4 0 1 0 152.8 0z\"],\n \"mailchimp\": [448, 512, [], \"f59e\", \"M331 243.5c3.1-.4 6.2-.4 9.3 0 1.7-3.8 2-10.4 .5-17.6-2.2-10.7-5.3-17.1-11.5-16.1s-6.5 8.7-4.2 19.4c1.3 6 3.5 11.1 6 14.3l0 0zM277.4 252c4.5 2 7.2 3.3 8.3 2.1 1.9-1.9-3.5-9.4-12.1-13.1-5-2.1-10.4-2.8-15.8-2.2s-10.5 2.7-14.8 5.8c-3 2.2-5.8 5.2-5.4 7.1 .9 3.7 10-2.7 22.6-3.5 7-.4 12.8 1.8 17.3 3.7l0 0zm-9 5.1c-9.1 1.4-15 6.5-13.5 10.1 .9 .3 1.2 .8 5.2-.8 6-2.3 12.4-2.9 18.7-1.9 2.9 .3 4.3 .5 4.9-.5 1.5-2.2-5.7-8-15.4-6.9l0 0zm54.2 17.1c3.4-6.9-10.9-13.9-14.3-7s10.9 13.9 14.3 7l0 0zm15.7-20.5c-7.7-.1-8 15.8-.3 15.9s8-15.8 .3-16l0 0zM119.5 332.7c-1.3 .3-6 1.5-8.5-2.3-5.2-8 11.1-20.4 3-35.8-9.1-17.5-27.8-13.5-35-5.5-8.7 9.6-8.7 23.5-5 24.1 4.3 .6 4.1-6.5 7.4-11.6 .9-1.4 2.1-2.6 3.5-3.6s3-1.6 4.6-2 3.4-.4 5 0 3.3 1 4.7 1.9c11.6 7.6 1.4 17.8 2.3 28.6 1.4 16.7 18.4 16.4 21.6 9 .2-.4 .3-.8 .3-1.2s-.2-.8-.5-1.1c0 .9 .7-1.3-3.4-.4l0 0zm299.7-17.1c-3.3-11.7-2.6-9.2-6.8-20.5 2.4-3.7 15.3-24-3.1-43.3-10.4-10.9-33.9-16.5-41.1-18.5-1.5-11.4 4.6-58.7-21.5-83 20.8-21.6 33.8-45.3 33.7-65.7-.1-39.2-48.2-51-107.4-26.5l-12.5 5.3c-.1 0-22.7-22.3-23.1-22.6-67.5-58.9-278.8 175.9-211.3 232.9l14.8 12.5c-4 10.7-5.4 22.2-4.1 33.5 3.4 33.4 36 60.4 67.5 60.4 57.7 133.1 267.9 133.3 322.3 3 1.7-4.5 9.1-24.6 9.1-42.4s-10.1-25.3-16.5-25.3l0 0zm-316 48.2c-22.8-.6-47.5-21.1-49.9-45.5-6.2-61.3 74.3-75.3 84-12.3 4.5 29.6-4.7 58.5-34.1 57.8l0 0zM84.7 249.6c-15.2 3-28.5 11.5-36.7 23.5-4.9-4.1-14-12-15.6-15-13-24.8 14.2-73 33.3-100.2 47.1-67.2 120.9-118.1 155-108.9 5.5 1.6 23.9 22.9 23.9 22.9s-34.1 18.9-65.8 45.3C136.2 150 104 197.7 84.7 249.6zM323.6 350.7s-35.7 5.3-69.5-7.1c6.2-20.2 27 6.1 96.4-13.8 15.3-4.4 35.4-13 51-25.4 3.4 7.8 5.8 15.9 7.1 24.3 3.7-.7 14.2-.5 11.4 18.1-3.3 19.9-11.7 36-25.9 50.8-8.9 9.6-19.4 17.5-31.2 23.3-6.5 3.4-13.3 6.3-20.3 8.6-53.5 17.5-108.3-1.7-126-43-1.4-3.1-2.6-6.4-3.6-9.7-7.5-27.2-1.1-59.8 18.8-80.4 1.2-1.3 2.5-2.9 2.5-4.8-.2-1.7-.8-3.3-1.9-4.5-7-10.1-31.2-27.4-26.3-60.8 3.5-24 24.5-40.9 44.1-39.9l5 .3c8.5 .5 15.9 1.6 22.9 1.9 11.7 .5 22.2-1.2 34.6-11.6 4.2-3.5 7.6-6.5 13.3-7.5 2.3-.6 4.7-.7 7-.3s4.6 1.2 6.6 2.5c10 6.6 11.4 22.7 11.9 34.5 .3 6.7 1.1 23 1.4 27.6 .6 10.7 3.4 12.2 9.1 14 3.2 1 6.2 1.8 10.5 3.1 13.2 3.7 21 7.5 26 12.3 2.5 2.5 4.2 5.8 4.7 9.3 1.6 11.4-8.8 25.4-36.3 38.2-46.7 21.7-93.7 14.4-100.5 13.7-20.2-2.7-31.6 23.3-19.5 41.1 22.6 33.4 122.4 20 151.4-21.4 .7-1 .1-1.6-.7-1-41.8 28.6-97.1 38.2-128.5 26-4.8-1.8-14.7-6.4-15.9-16.7 43.6 13.5 71 .7 71 .7s2-2.8-.6-2.5zM171.7 157.5c16.7-19.4 37.4-36.2 55.8-45.6 .1-.1 .3-.1 .5-.1s.3 .1 .4 .2 .2 .3 .2 .4 0 .3-.1 .5c-1.5 2.7-4.3 8.3-5.2 12.7 0 .1 0 .3 0 .4s.2 .3 .3 .4 .3 .1 .4 .1 .3 0 .4-.1c11.5-7.8 31.5-16.2 49-17.3 .2 0 .3 0 .5 .1s.2 .2 .3 .4 .1 .3 0 .5-.1 .3-.3 .4c-2.9 2.2-5.5 4.8-7.7 7.7-.1 .1-.1 .2-.1 .4s0 .3 .1 .4 .2 .2 .3 .3 .2 .1 .4 .1c12.3 .1 29.7 4.4 41 10.7 .8 .4 .2 1.9-.6 1.7-69.5-15.9-123.1 18.5-134.5 26.8-.2 .1-.3 .1-.5 .1s-.3-.1-.5-.2-.2-.3-.2-.5 .1-.4 .2-.5l-.1 0z\"],\n \"lumon\": [640, 512, [], \"e7e2\", \"M452.5 223.5c9.8 0 16.5 6.3 16.5 16.6l0 31.8c0 10.3-6.6 16.6-16.6 16.6l-56.2 0c-9.8 0-16.5-6.3-16.5-16.6l0-31.8c0-10.3 6.7-16.6 16.5-16.6l56.3 0zm-25.7 13.1c-1.5-2.6-3.2-2.6-4.6 0l-10.7 17.6c-1.7 2.4-2.6 5.1-2.6 8.2 0 7.9 6.9 14.6 15.6 14.6 8.5 0 15.6-6.7 15.6-14.6 0-3-1-5.8-2.7-8.2l-10.7-17.6zM85.8 223.8c1 0 1.5 .6 1.5 1.5l0 50.3 64.6 0c1 0 1.6 .6 1.6 1.5l0 9.7c0 .9-.6 1.5-1.6 1.5l-78.4 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l12.3 0zm88.3 0c1 0 1.5 .6 1.5 1.5l0 45c0 4 2 5.2 5.7 5.2l46.9 0c3.8 0 5.7-1.3 5.7-5.2l0-45c0-.9 .5-1.5 1.5-1.5l12.3 0c1 0 1.6 .6 1.6 1.5l0 46c0 10.5-5.3 16.8-17.6 16.8l-54 0c-12.3 0-17.6-6.3-17.6-16.8l0-46c0-.9 .6-1.5 1.6-1.5l12.3 0zm108.2 0c1 0 1.6 .5 2.2 1.4l30.5 46.4 1.4 0 30.5-46.4c.6-.9 1.2-1.4 2.2-1.4l18 0c1 0 1.5 .6 1.5 1.5l0 61.4c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-43.8-1.1 0-28.7 43.8c-.6 .9-1.3 1.5-2.4 1.5l-10.7 0c-1 0-1.7-.6-2.3-1.5l-28.7-43.8-1.1 0 0 43.8c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l17.9 0zm214.4 0c.9 0 1.3 .4 2.2 1.1l52.7 46.3 1.3 0 0-46c0-.9 .6-1.5 1.6-1.5l12.3 0c1 0 1.6 .6 1.6 1.5l0 61.4c0 .9-.6 1.5-1.6 1.5l-14.4 0c-1 0-1.4-.4-2.3-1.1l-52.6-46.3-1.4 0 0 46c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l14.4 0zM320 114.1c87.9 0 167.7 15.7 225.5 41l2.7 1.2C587.1 173.8 640 206.5 640 256s-52.9 82.2-91.8 99.6l-2.7 1.2c-57.8 25.4-137.6 41-225.5 41-76.2 0-155.1-10.5-225.5-41-39.6-17.4-94.5-50.3-94.5-100.8s54.9-83.5 94.5-100.8c70.4-30.5 149.3-41 225.5-41zm-88.9 229c20.3 29 52.8 49.6 88.9 49.6 36.2 0 68.7-20.6 89-49.7l-177.9 .1zm-96.1 0c43.3 29.7 96.7 43.5 148.4 48-24.2-9.1-44.4-26.7-58.6-48.1l-89.9 0zm280.3-.1c-14.2 21.4-34.4 39.1-58.6 48.1 51.8-4.5 105.3-18.3 148.6-48.2l-90 0zm-337.4 .1c44.1 23.1 93.7 35.4 142.7 42.6-33.4-8.6-66.5-21.9-94.4-42.6l-48.3 0zm436.2-.2c-27.9 20.8-61.1 34.2-94.6 42.8 47.3-6.9 89.6-18.5 123.9-33.6l1.7-.8c6.1-2.7 11.9-5.5 17.4-8.4l-48.5 0zM520 173.6c10.7 8.7 19.8 18.1 27 28.2 .4 .6 .5 1.3 .1 2s-1 1-1.7 1l-1.6 0c-.6 0-1.2-.3-1.5-.8-7.9-10.9-18.2-21.1-30.6-30.4l-93.5 0c5.4 8.8 9.9 18.5 13.4 28.6 .2 .6 .1 1.2-.2 1.7s-.9 .8-1.6 .8l-1.4 0c-.8 0-1.5-.5-1.8-1.3-3.8-10.7-8.7-20.8-14.5-29.9l-184.3 .1c-5.8 9.1-10.7 19.1-14.4 29.8-.3 .8-1 1.3-1.8 1.3l-1.4 0c-.6 0-1.2-.3-1.6-.8s-.5-1.1-.2-1.7c3.5-10.2 8-19.7 13.4-28.6l-93.6 0c-12.3 9.3-22.6 19.4-30.4 30.3-.4 .5-.9 .8-1.5 .8l-1.6 0c-.7 0-1.4-.4-1.7-1s-.3-1.4 .1-2c7.6-10.5 16.7-19.9 26.8-28l-51 0c-28.9 16.6-62 43.3-63.5 79.7l44.7 0c.5 0 1 .2 1.3 .6s.6 .8 .6 1.3l0 1.3c0 1.1-.9 1.9-1.9 1.9l-44.7 0C6.8 295 40 321.7 69 338.3l50.9 0c-10.3-8.4-19.1-17.4-26.1-27l-.8-1.1c-.4-.6-.5-1.3-.1-2s1-1 1.7-1l1.6 0 .2 0c.5 .1 1 .3 1.3 .8 7.9 10.9 18.1 21 30.5 30.3l93.6 0c-5.3-8.8-9.8-18.4-13.4-28.5-.2-.6-.1-1.2 .2-1.7s.9-.8 1.6-.8l1.4 0 .2 0c.7 .1 1.4 .6 1.7 1.3 3.8 10.7 8.6 20.7 14.4 29.8l184.5-.1c5.8-9.1 10.6-19.1 14.4-29.7l.1-.1c.3-.7 1-1.1 1.7-1.1l1.4 0c.6 0 1.2 .3 1.6 .8s.5 1.2 .2 1.7c-3.5 10.1-8 19.7-13.3 28.5l93.7 0c12.3-9.3 22.5-19.4 30.3-30.2l.1-.2c.4-.4 .9-.6 1.4-.6l1.6 0c.7 0 1.4 .4 1.7 1s.3 1.4-.1 2c-7.1 10-16.1 19.3-26.7 27.9l51.1 0c28.8-16.6 61.8-43.3 63.4-79.6l-44.7 0c-1 0-1.9-.9-1.9-1.9l0-1.3c0-1.1 .9-1.9 1.9-1.9l44.7 0c-1.6-36.5-34.9-63.3-63.9-79.9l-50.9 0zM220.5 126.2c-49.1 7.1-98.7 19.5-143 42.7l48.4 0c27.9-20.8 61-34.1 94.5-42.7zm62.8-5.4c-51.8 4.5-105.2 18.3-148.6 48.1l90 0c14.2-21.4 34.4-39 58.6-48.1zm36.6-1.6c-36.2 0-68.7 20.6-89 49.7l177.9-.1c-20.3-29.1-52.7-49.6-88.9-49.6zm36.6 1.6c24.2 9.1 44.4 26.6 58.5 48l89.8 0c-43.3-29.7-96.6-43.5-148.3-48zm62.8 5.4c33.4 8.5 66.4 21.9 94.3 42.5l48.3 0c-44.1-23.1-93.6-35.4-142.6-42.5z\"],\n \"nutritionix\": [448, 512, [], \"f3d6\", \"M112 8.1S245.4-.1 233 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zM424 323.7c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48-22.3-37-32-83.8-32-132.3 0-48.4 17.7-94.7 40-131.7 42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM144 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM216 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM288 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM360 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM384 256c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S118.8 180.1 80 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"],\n \"creative-commons-sampling-plus\": [512, 512, [], \"f4f1\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1 .4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7-43.9 0 0 23.2 51.3 0c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2 .2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1 .1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4 50.5 0 0-23.2-58.4 .3zm-78 5.2l-21.9 0 0 21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5l0-21.9-21.9 0c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5l21.9 0 0-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5l0 21.9 21.9 0c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"],\n \"redhat\": [512, 512, [], \"f7bc\", \"M341.5 285.6c33.7 0 82.3-6.9 82.3-47 .2-6.7 .9-1.8-20.9-96.2-4.6-19.1-8.7-27.8-42.3-44.6-26.1-13.3-82.9-35.4-99.7-35.4-15.7 0-20.2 20.2-38.9 20.2-18 0-31.3-15.1-48.1-15.1-16.1 0-26.7 11-34.8 33.6-27.5 77.6-26.3 74.3-26.1 78.3 0 24.8 97.6 106.1 228.5 106.1zM429 254.8c4.7 22 4.7 24.3 4.7 27.2 0 37.7-42.3 58.6-98 58.6-125.7 .1-235.9-73.6-235.9-122.3 0-6.8 1.4-13.5 4.1-19.7-45.2 2.3-103.8 10.3-103.8 62 0 84.7 200.6 189 359.5 189 121.8 0 152.5-55.1 152.5-98.6 0-34.2-29.6-73-82.9-96.2z\"],\n \"square-pied-piper\": [448, 512, [\"pied-piper-square\"], \"e01e\", \"M32.1 419l-32 60.2 .8-328C.9 85.3 54.1 32 120.1 32l327.2 0C354.3 60.9 257.4 126.2 193.4 200.6 122.8 282 82.7 338 32.1 419zm416-387S305.3 98.8 261.7 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66l328.4 0c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"],\n \"whatsapp\": [448, 512, [], \"f232\", \"M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z\"],\n \"imdb\": [448, 512, [], \"f2d8\", \"M89.5 323.6l-35.6 0 0-137.4 35.6 0 0 137.4zm66.6-73.1l9.1-64.3 46.3 0 0 137.4-31 0 0-92.7-13.4 92.7-21.3 0-13-90.7-.1 90.7-31.2 0 0-137.4 46.1 0c.5 8.3 2.8 18.1 4.3 29.4l4.2 34.9zm67.6 73.1l0-137.4 26.6 0c17 0 27 .9 33 2.4 6.1 1.7 10.7 4.2 13.9 7.9 3.1 3.3 5.1 6.6 5.8 12 .9 4.4 1.4 13.1 1.4 26.2l0 48.2c0 12.3-.7 20.5-1.9 24.7-1.1 4.1-3.1 7.4-6 9.7-2.8 2.4-6.4 4.1-10.7 5-4.2 .8-10.6 1.3-19.1 1.3l-43 0zm35.5-113.9l0 89.4c5.1 0 8.3-1 9.4-2.3 1.1-2 1.8-7.6 1.8-16.7l0-53.3c0-6.2-.1-10.2-.7-12-.3-1.8-1.2-3-2.6-4.7-1.4 0-4.1-.4-7.9-.4zm57.3 113.9l0-137.4 34.1 0 0 43.9c2.9-2.4 6.1-4.9 9.5-6.6 3.6-1.5 8.8-2.4 12.8-2.4 4.8 0 8.9 .8 12.3 2.2 3.4 1.5 6 3.5 8 6.2 1.7 2.6 2.7 5.3 3.1 7.8 .4 2.6-.2 8-.2 16.2l0 38.6c0 8.2 .2 14.3-.8 18.4-1.1 4-3.8 7.6-7.8 9.6-4.1 3.9-8.9 5.3-14.6 5.3-4 0-9.2-.9-12.7-2.5-3.5-1.8-6.7-4.5-9.6-8l-2.1 8.7-32 0zm45.1-20.7c.7-1.8 1-6 1-12.5l0-35.4c0-5.6-.3-9.5-1.1-11.2-.7-1.9-3.7-2.7-5.8-2.7-2 0-3.4 .8-4.1 2.3-.6 1.5-1 5.4-1 11.6l0 36.4c0 6.1 .4 10 1.2 11.6 .6 1.7 2.1 2.5 4.1 2.5 2.2 0 4.2-.8 5.7-2.6zM418.4 32c15.7 1.2 28.7 15.2 28.7 31.9l0 384.2c0 16.4-11.9 30.4-28.2 31-.3 0-.5 .9-.8 .9L29.9 480c-.3 0-.6-.9-.8-.1-15.7-1.4-27.9-13.8-29-30.2L0 61.8C1.1 45.9 13.8 33.1 30.3 31.1l387.4 0c.2 0 .5 .9 .7 .9zM30.3 41.3C19 42 10 51 9.3 62.4l0 387.3c.4 5.4 2.7 10.5 6.4 14.3 3.8 3.9 8.8 6.3 14.2 6.7l388.2 0c11.5-1 20.6-11.6 20.6-22.6l0-384.2c0-5.7-2.1-11.3-6-15.5s-9.3-6.8-15-7.2l-387.4 0z\"],\n \"python\": [448, 512, [], \"f3e2\", \"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2l-40.1 0 0 47.4c0 36.8-31.2 67.8-66.8 67.8l-106.8 0c-29.2 0-53.4 25-53.4 54.3l0 101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3l0-40.7-106.7 0 0-13.6 160.2 0c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 444.7a20.4 20.4 0 1 1 0-40.7 20.4 20.4 0 1 1 0 40.7zM167.8 248.1l106.8 0c29.7 0 53.4-24.5 53.4-54.3l0-101.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8 .1-45.2 8-53.4 24.7-53.4 55.6l0 40.7 106.9 0 0 13.6-147 0c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2l36.7 0 0-48.8c0-35.3 30.5-66.4 66.8-66.4zM161.2 64.7a20.4 20.4 0 1 1 0 40.8 20.4 20.4 0 1 1 0-40.8z\"],\n \"cash-app\": [448, 512, [], \"e7d4\", \"M440.3 96.9c-9.4-26.5-30.3-47.4-56.8-57-24.1-7.9-46.3-7.9-91.6-7.9L156 32c-44.8 0-67.2 0-91.3 7.5-26.5 9.6-47.4 30.5-57 57-7.7 24.3-7.7 46.7-7.7 91.7L0 323.8c0 45.2 0 67.4 7.5 91.5 9.6 26.5 30.5 47.4 57 57 24.3 7.7 46.7 7.7 91.6 7.7l135.7 0c45 0 67.4 0 91.6-7.7 26.5-9.6 47.4-30.5 57-57 7.7-24.3 7.7-46.7 7.7-91.5l0-135.5c0-45 0-67.4-7.7-91.5zM323.1 185.4l-25.8 21.1c-2.3 1.9-5.5 1.5-7.3-.9-13.2-16.2-33.7-25.4-56.1-25.4-25 0-40.6 10.9-40.6 26.2-.4 12.8 11.7 19.6 49.1 27.7 47.2 10 68.7 29.7 68.7 62.7 0 41.4-33.7 71.9-86.4 75.3l-5.1 24.5c-.4 2.3-2.6 4.1-5.1 4.1l-40.6 0c-3.4 0-5.8-3.2-5.1-6.4l6.4-27.3c-26-7.5-47.2-22-59.3-39.7-1.5-2.3-1.1-5.3 1.1-7l28.2-22c2.3-1.9 5.8-1.3 7.5 1.1 14.9 20.9 38 33.3 65.7 33.3 25 0 43.8-12.2 43.8-29.7 0-13.4-9.4-19.6-41.2-26.2-54.2-11.7-75.8-31.8-75.8-64.9 0-38.4 32.2-67.2 80.9-71l5.3-25.4c.4-2.3 2.6-4.1 5.1-4.1l39.9 0c3.2 0 5.8 3 5.1 6.2l-6.2 28.4c20.9 6.4 38 17.9 48.7 32.2 1.7 2.1 1.3 5.3-.9 7z\"],\n \"pinterest-p\": [384, 512, [], \"f231\", \"M204 6.5c-102.6 0-204 68.4-204 179.1 0 70.4 39.6 110.4 63.6 110.4 9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8 0-99.3-85.8-164.1-180-164.1z\"],\n \"whmcs\": [448, 512, [], \"f40d\", \"M448 161l0-21.3-28.5-8.8-2.2-10.4 20.1-20.7-10.4-19.4-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4-22.6 0-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6 .3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zM328.8 92.6a56.8 56.8 0 1 1 0 113.6 56.8 56.8 0 1 1 0-113.6zm72.3 130l46.9 14.5 0 39.9-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1 .5-40.9 53.5-14.7 5.7-19.7-38.9-39.4 20.7-35.8 53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4 22.7-6.1 11.6-52 42.4 0 11.6 45.9-22.6-5.9-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7c0 3.2-.1 9.6-.3 19.3-47.5 10.4-83.3 52.8-83.3 103.5 0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8 9.9 .1 16.6 .2 20.1 .3l1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"],\n \"joget\": [512, 512, [], \"f3b7\", \"M386.1 45C345.6 19.9 300.6 8 256.2 8 173 8 91.8 49.9 44.9 125.9-27 242.5 9.3 395.2 125.9 467.1s269.3 35.6 341.2-80.9C539 269.6 502.7 116.8 386.1 45zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zM237.1 281.9c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7-128.6 8.7-167.3 99.3-178.3 140.2-8.8-49.7-.1-102.7 28.5-149.1 61.9-100.5 193.5-131.7 294-69.8 74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3L393.5 266 440 242.6s3.6-9.5-19.1-15.5z\"],\n \"square-youtube\": [448, 512, [61798, \"youtube-square\"], \"f431\", \"M282 256.2l-95.2-54.1 0 108.2 95.2-54.1zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zm14.4 136.1c7.6 28.6 7.6 88.2 7.6 88.2s0 59.6-7.6 88.1c-4.2 15.8-16.5 27.7-32.2 31.9-28.3 7.7-142.2 7.7-142.2 7.7s-113.9 0-142.2-7.6c-15.7-4.2-28-16.1-32.2-31.9-7.6-28.6-7.6-88.2-7.6-88.2s0-59.7 7.6-88.2c4.2-15.8 16.5-28.2 32.2-32.4 28.3-7.7 142.2-7.7 142.2-7.7s113.9 0 142.2 7.7c15.7 4.2 28 16.6 32.2 32.4z\"],\n \"atlassian\": [512, 512, [], \"f77b\", \"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7l175 0c5.8 .1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4L497 512c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6 .1z\"],\n \"pied-piper-hat\": [640, 512, [], \"f4e5\", \"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9 .6 2.8 .8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6-73.4 1.1-97.5-33.5-97.5-35.1 0-1.1 .6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3 73.6-140.3 139.2-189.4 210.6-189.4 0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"],\n \"internet-explorer\": [512, 512, [], \"f26b\", \"M483.1 159.7c10.9-24.6 21.4-60.4 21.4-87.9 0-72.7-79.6-98.4-209.7-38.6-107.6-7.2-211.2 73.7-237.1 186.5 30.9-34.9 78.3-82.3 122-101.2-54.3 48.3-100.6 109.4-135.7 173.2-20.7 37.9-44 99.2-44 145 0 98.6 92.9 86.5 180.3 42 31.4 15.4 66.6 15.6 101.7 15.6 97.1 0 184.2-54.3 216.8-146l-120.8 0c-52.5 88.6-196.8 53-196.8-47.4l328.8 0c6.4-43.6-1.7-95.7-26.9-141.2zM64.6 346.9C82.3 398 118.3 442.7 164.8 470.2 76.1 519.1-8.4 499.3 64.6 346.9zM180.5 238c2-55.2 50.3-94.9 104-94.9 53.4 0 102 39.7 104 94.9l-208 0zM365.1 50.4c21.4-10.3 48.6-22 72.6-22 31.4 0 54.3 21.7 54.3 53.7 0 20-7.4 49-14.6 67.9-26.3-42.3-66-81.6-112.3-99.6z\"],\n \"airbnb\": [448, 512, [], \"f834\", \"M224.5 373.1c-25.2-31.7-40.1-59.4-45-83.2-22.5-88 112.6-88 90.1 0-5.4 24.2-20.3 52-45 83.2l-.1 0zm138.2 73.2c-42.1 18.3-83.7-10.9-119.3-50.5 103.9-130.1 46.1-200-18.8-200-54.9 0-85.2 46.5-73.3 100.5 6.9 29.2 25.2 62.4 54.4 99.5-32.5 36-60.5 52.7-85.2 54.9-50 7.4-89.1-41.1-71.3-91.1 15.1-39.2 111.7-231.2 115.9-241.6 15.8-30.1 25.6-57.4 59.4-57.4 32.3 0 43.4 25.9 60.4 59.9 36 70.6 89.4 177.5 114.8 239.1 13.2 33.1-1.4 71.3-37 86.6zm47-136.1c-128.9-274.3-136-278.2-185.1-278.2-45.5 0-64.9 31.7-84.7 72.8-106.2 212.3-116.4 242.4-117.3 245-25.2 69.3 26.7 130.2 89.6 130.2 21.7 0 60.6-6.1 112.4-62.4 58.7 63.8 101.3 62.4 112.4 62.4 62.9 .1 114.9-60.9 89.6-130.2 0-3.9-16.8-38.9-16.8-39.6l0 0z\"],\n \"js\": [448, 512, [], \"f3b8\", \"M0 32l0 448 448 0 0-448-448 0zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5l0-143.1 42.1 0 0 143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"],\n \"quinscape\": [512, 512, [], \"f459\", \"M313.7 474.6l-1 0c-41.9 0-82.1-16.7-111.8-46.3s-46.3-69.9-46.3-111.8 16.7-82.1 46.3-111.8 69.9-46.3 111.8-46.3c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7 0-135.1-109.5-244.6-244.6-244.6S12.1 117.5 12.1 252.6 121.6 497.2 256.6 497.2c23.8 .2 47.6-3.2 70.4-10.1-5.2-3.5-8.9-8.1-13.3-12.5zm78.3-169a99.2 99.2 0 1 0 0 198.4 99.2 99.2 0 1 0 0-198.4z\"],\n \"adversal\": [512, 512, [], \"f36a\", \"M482.1 32L28.7 32C5.8 32 0 37.9 0 60.9L0 451.1C0 474.4 5.8 480 28.7 480l453.4 0c24.4 0 29.9-5.2 29.9-29.7l0-388.1c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4 .4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9l-394.9 0c-7.4 0-18.2 4.8-17.8-10.7 .4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5l0 291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5l0-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6 .4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1 .2-.1 .3-.1 .5zM417.4 334.1c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2 .4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zM122.6 369.4c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"],\n \"creative-commons\": [512, 512, [], \"f25e\", \"M253.8 214.9l-33.2 17.3c-9.4-19.6-25.2-19.9-27.5-19.9-22.1 0-33.2 14.6-33.2 43.8 0 23.6 9.2 43.8 33.2 43.8 14.5 0 24.6-7.1 30.6-21.3l30.6 15.5c-6.2 11.5-25.7 39-65.1 39-22.6 0-74-10.3-74-77 0-58.7 43-77.1 72.6-77.1 30.7 0 52.7 11.9 66 35.9zm143 0l-32.8 17.3c-9.5-19.8-25.7-19.9-27.9-19.9-22.1 0-33.2 14.6-33.2 43.8 0 23.5 9.2 43.8 33.2 43.8 14.4 0 24.6-7.1 30.5-21.3l31 15.5c-2.1 3.8-21.4 39-65.1 39-22.7 0-74-9.9-74-77 0-58.7 43-77.1 72.6-77.1 30.7 0 52.6 11.9 65.6 35.9zM255.6 8C112.7 8 8 123.1 8 256.1 8 394.5 121.6 504.1 255.6 504.1 385.5 504.1 504 403.2 504 256.1 504 118.2 397.4 8 255.6 8zm.9 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.4-203.3 203.7-203.3 112.5 0 202.8 89.5 202.8 203.3 0 121.7-99.7 202.8-202.8 202.8z\"],\n \"notion\": [512, 512, [], \"e7d9\", \"M94.9 100.2c14.9 12.1 20.5 11.2 48.6 9.3L407.8 93.6c5.6 0 .9-5.6-.9-6.5L362.9 55.4c-8.4-6.5-19.6-14-41.1-12.1L65.9 61.9c-9.3 .9-11.2 5.6-7.5 9.3l36.4 28.9zm15.9 61.6l0 278.1c0 14.9 7.5 20.5 24.3 19.6l290.5-16.8c16.8-.9 18.7-11.2 18.7-23.3l0-276.2c0-12.1-4.7-18.7-15-17.7L125.7 143.1c-11.2 .9-14.9 6.5-14.9 18.7zm286.7 14.9c1.9 8.4 0 16.8-8.4 17.8l-14 2.8 0 205.3c-12.2 6.5-23.4 10.3-32.7 10.3-15 0-18.7-4.7-29.9-18.7l-91.5-143.7 0 139 29 6.5s0 16.8-23.4 16.8l-64.4 3.7c-1.9-3.7 0-13.1 6.5-14.9l16.8-4.7 0-183.8-23.3-1.9c-1.9-8.4 2.8-20.5 15.9-21.5l69.1-4.7 95.3 145.6 0-128.8-24.3-2.8c-1.9-10.3 5.6-17.7 14.9-18.7l64.5-3.8zM44.4 36.7L310.6 17.1c32.7-2.8 41.1-.9 61.6 14l85 59.7c14 10.3 18.7 13.1 18.7 24.3l0 327.6c0 20.5-7.5 32.7-33.6 34.5L133.2 495.8c-19.6 .9-29-1.9-39.2-14.9L31.4 399.7c-11.2-14.9-15.9-26.1-15.9-39.2l0-291.2c0-16.8 7.5-30.8 28.9-32.7z\"],\n \"chromecast\": [512, 512, [], \"f838\", \"M448 64L64.2 64c-23.6 0-42.7 19.1-42.7 42.7l0 63.9 42.7 0 0-63.9 383.8 0 0 298.6-149.2 0 0 42.7 149.4 0c23.6 0 42.7-19.1 42.7-42.7l0-298.6C490.9 83.1 471.6 64 448 64zM21.5 383.6l0 63.9 63.9 0c0-35.3-28.6-63.9-63.9-63.9zm0-85l0 42.4c58.9 0 106.6 48.1 106.6 107l42.7 0c.1-82.4-66.9-149.3-149.3-149.4zM213.6 448l42.7 0C255.8 318.5 151 213.7 21.5 213.4l0 42.4c106-.2 192 86.2 192.1 192.2z\"],\n \"wikipedia-w\": [640, 512, [], \"f266\", \"M640 51.2l-.3 12.2c-28.1 .8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6l-13.6 0-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3 .3-15 0-15-.3-46.9-109.7-96.1-218.6-143.1-328.6-11.4-26.7-49.4-70-75.6-69.7 0-3.1-.3-10-.3-14.2l161.9 0 0 13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7l0-13.9 142.5 .3 0 13.1c-19.4 .6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4 .3-3.6 0-10.3 .3-13.6 44.4-.3 111.1-.3 123.1-.6l0 13.6C462.4 64 439.1 76 426.8 94.9L367.6 217.7c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3l0-13.9 127.8 1.1 .2 .5z\"],\n \"sitrox\": [448, 512, [], \"e44a\", \"M212.4 0l0 0 235.6 0 0 128-384 0C64 57.6 141.8 .5 212.4 0zm24.8 192l0 0c69.9 .5 146.7 57.6 146.7 128l-173.2 0 0 0C140.9 319.6 64 262.4 64 192l173.3 0zm-1.7 320c70.7-.5 148.4-57.6 148.4-128l-384 0 0 128 235.6 0 0 0z\"],\n \"square-gitlab\": [448, 512, [\"gitlab-square\"], \"e5ae\", \"M0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96zm337.5 12.5l44.6 116.4 .4 1.2c5.6 16.8 7.2 35.2 2.3 52.5-5 17.2-15.4 32.4-29.8 43.3l-.2 .1-68.4 51.2-54.1 40.9c-.5 .2-1.1 .5-1.7 .8-2 1-4.4 2-6.7 2-3 0-6.8-1.8-8.3-2.8l-54.2-40.9-67.9-50.9-.4-.3-.2-.1c-14.3-10.8-24.8-26-29.7-43.3s-4.2-35.7 2.2-52.5l.5-1.2 44.7-116.4c.9-2.3 2.5-4.3 4.5-5.6 1.6-1 3.4-1.6 5.2-1.8 1.3-.7 2.1-.4 3.4 .1 .6 .2 1.2 .5 2 .7 1 .4 1.6 .9 2.4 1.5 .6 .4 1.2 1 2.1 1.5 1.2 1.4 2.2 3 2.7 4.8l29.2 92.2 122.9 0 30.2-92.2c.5-1.8 1.4-3.4 2.6-4.8s2.8-2.4 4.5-3.1c1.7-.6 3.6-.9 5.4-.7s3.6 .8 5.2 1.8c2 1.3 3.7 3.3 4.6 5.6z\"],\n \"shoelace\": [512, 512, [], \"e60c\", \"M405.2 331c2.2-1.1 4.4-2.3 6.5-3.7l8.3-4.8c1.5-1.1 4.4-3.4 8.7-6.7l.5-.5c3.4-3.4 7.2-5 11.3-4.9 1.8 0 3.9 .5 6.4 1.5l31-27.5c.9-.7 1.7-1.3 2.6-1.8l.2 0c3.3-1.9 6-1.8 8.2 .4 3.9 2.1 4.2 5.6 .9 10.6L457.2 322c.2 .5 .4 1 .4 1.5 .5 2.2 .3 4.4-.5 6.6-.7 1.5-1.8 2.9-3.1 4.2-1.4 1.4-2.7 2.8-4.2 4.2L431 352.2c-1.7 1.2-3.4 2.3-5.1 3.3-2.1 1.3-4.3 2.5-6.6 3.6-1 .4-1.9 .9-2.9 1.3-5.9 2.5-11.9 4.2-18.2 5-2.9 24.5-11.3 47.1-25.1 67.8-17.5 25.7-41.4 45.4-71.8 58.8-30.2 13.5-63 20.2-98.2 20.2-48.6-.5-88-11.4-118.2-32.8-35.1-25-52.6-57.9-52.6-99.1l0-5.6c1.2-28.1 9.5-54.6 24.8-79.8 15.1-24.9 37.1-41.7 66.1-50.5 14.9-4.4 29.9-6.6 45-6.6 15.5 0 31.6 2.9 48.1 8.6s35.2 15.5 55.9 29.5l54.1 36.3c15.1 9.8 28.8 16.5 41.2 20-2.6-25.1-11.7-46.6-27.3-64.5-15.7-18.1-35.6-31.3-59.9-39.7L257 220c-21.4-7.5-37.3-14.9-47.7-22.2-28.2-19.1-43.8-45.2-47-78.5l-.5-9.8c0-32.1 13-58.9 39-80.5 23-19.3 50.6-29 82.5-29 24 0 45.6 6.9 64.7 20.8 19.2 14 30.1 33.8 32.6 59.4l.5 10c0 18.6-4.8 34.5-14.4 47.7-9.8 13.2-18.5 19.9-26 19.9-1.6-.1-3.1-.3-4.5-.6l-34 32c-5.5 3-9.2 2.5-11.1-1.6-1.9-2.2-1.8-4.9 .5-8.2l.2-.2c.5-.7 1.2-1.5 2-2.4l31.6-30c-.4-1.5-.6-3.1-.6-4.8 0-4.1 1.6-7.6 4.9-10.4 13.8-12.4 20.8-26.7 20.8-42.8 0-16-6.1-29.5-18.2-40.4s-28.7-16.5-49.7-16.8c-26.2 0-47.8 7.9-64.7 23.7S192.6 89.9 192.6 112c0 17.8 6.9 33.9 20.6 48.3 13.6 14.2 34.6 25.4 63 33.5 39.8 11.5 70.2 31 91.3 58.3 18.7 24.2 29.1 51.3 31.3 81.4 2.2-.7 4.3-1.5 6.5-2.6l-.1 .1zM294.4 178.7c0 1.1 .6 1.6 1.8 1.6 .1 0 9.7-8.9 28.8-26.6 0-2.4-5.1 .9-15.3 10-10.2 9.2-15.3 14.2-15.3 14.9l0 .1zm8 6.4c0-1-.5-1.5-1.5-1.5-1.1 0-2.1 .5-2.9 1.6-1.9-.1-3.3 .1-4.2 .7-.4 .2-.5 .5-.5 .7 0 .7 .5 1.3 1.5 1.6l3.3 0c2.9-1.1 4.4-2.2 4.4-3.3l-.1 .2zM325 165.2c0-2.8-1.6-2.8-4.9 0-1.6 1.5-3.6 3.5-6 6.2-.8 .6-2.6 2.2-5.3 4.9-2.8 2.9-4.2 4.7-4.2 5.3l.2 1.3c.7 .2 1.2 .4 1.5 .4 .1 0 3.3-2.9 9.5-8.7s9.3-8.9 9.3-9.3l-.1-.1zm159.7 120l-30.6 27c1.8 1 3.2 2.4 4 4.2l30.2-27c.2-1.2 .1-2.2-.5-2.9-.6-.5-1.6-.9-3.1-1.3zm-1.6-.9l-.7-.7-27 21.9 1.6 2 26-23.1 .1-.1zM366.9 363.9c-8-2.1-15.4-4.6-22.2-7.5-15.3-6.2-34.3-17-57-32.4l-37.4-25.3c-15.8-10.1-30.2-17.6-43.2-22.6-13.1-4.9-26-7.3-38.6-7.3l-5.5 0c-32.2 1.7-57.2 13.8-75 36.2-16.6 20.8-25 45.3-25 73.6 0 31.8 12.8 56.7 38.2 74.7 25.4 18.1 60.2 27.1 104.4 27.1 34.7 0 64-6.2 87.8-18.6 23.7-12.4 42.1-28.8 55.2-49.2 9.8-15.5 15.9-31.8 18.2-48.8l.1 .1z\"],\n \"sellcast\": [448, 512, [], \"f2da\", \"M353.5 32L94.8 32C42.7 32 .1 74.6 .1 126.6l0 258.7C.1 437.4 42.7 480 94.8 480l258.7 0c52.1 0 94.7-42.6 94.7-94.6l0-258.8c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8 .1 .1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8 .1 .1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"],\n \"mix\": [448, 512, [], \"f3cb\", \"M0 64L0 412.9c0 56.2 88 58.1 88 0l0-238.6c7.9-52.9 88-50.4 88 6.5l0 175.3c0 57.9 96 58 96 0L272 240c5.3-54.7 88-52.5 88 4.3l0 23.8c0 59.9 88 56.6 88 0L448 64 0 64z\"],\n \"cc-apple-pay\": [576, 512, [], \"f416\", \"M302.2 218.4c0 17.2-10.5 27.1-29 27.1l-24.3 0 0-54.2 24.4 0c18.4 0 28.9 9.8 28.9 27.1zM349.7 281c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9l0-7.7-23.5 1.5c-13.3 .9-20.2 5.8-20.2 14.4zM576 79l0 352c0 26.5-21.5 48-48 48L48 479c-26.5 0-48-21.5-48-48L0 79C0 52.5 21.5 31 48 31l480 0c26.5 0 48 21.5 48 48zM127.8 197.2c8.4 .7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4 .3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5 .2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8l-51.2 0 0 136.4 21.2 0 0-46.6 29.3 0c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5l19.1 0c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2l0 7.5-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4l.4 0 0 16.4 19.6 0 0-68 .1 0zM516 210.9l-21.5 0-24.9 80.6-.4 0-24.9-80.6-22.3 0 35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3l0 16.4c1.2 .4 6.5 .5 8.1 .5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"],\n \"brave\": [448, 512, [], \"e63c\", \"M145.6 0l157 0 44.7 50.8s39.3-10.9 57.8 7.6 33.8 34.9 33.8 34.9l-12 29.5 15.3 43.7s-44.9 170.2-50.1 191c-10.4 40.9-17.4 56.8-46.9 77.5s-82.9 56.8-91.6 62.2c-1.9 1.2-3.9 2.5-5.9 3.9-7.5 5.1-15.8 10.8-23.5 10.8s-16.1-5.7-23.5-10.8c-2-1.4-4-2.8-5.9-3.9-8.7-5.5-62.1-41.5-91.6-62.2s-36.5-36.6-46.9-77.5c-5.3-20.8-50.1-191-50.1-191L21.5 122.8 9.3 93.3s15.3-16.4 33.8-34.9 57.8-7.6 57.8-7.6L145.6 0zm78.5 407.6c3.7 0 8.9-4.7 13-8.4 .6-.5 1.2-1.1 1.7-1.5 4.2-3.7 47.8-37.5 51-39.8s5.4-6.5 1.9-8.7c-2.8-1.7-10-5.5-20.3-10.8-3-1.6-6.3-3.2-9.7-5-15.4-8-34.5-14.7-37.5-14.7s-22.1 6.8-37.5 14.7c-3.5 1.8-6.7 3.5-9.7 5-10.3 5.3-17.6 9.1-20.3 10.8-3.6 2.2-1.4 6.4 1.9 8.7s46.8 36.1 51 39.8c.5 .5 1.1 1 1.7 1.5 4.1 3.7 9.3 8.4 13 8.4l-.2 0zm0-165.7c4.7 0 17.6-3 26.4-5l2-.5c7.8-1.8 7.3-6.3 6.4-13-.1-.8-.2-1.6-.3-2.4-.6-6.1-5.8-33.1-9.1-50.3-1.1-5.8-2-10.5-2.4-12.9-1.5-8.1-.6-9.4 .7-11.3 .2-.3 .5-.7 .7-1.1 1.4-2.3 16-6.2 27.9-9.5 2.5-.7 4.8-1.3 6.9-1.9 10.6-3 32.4-.6 44.2 .6 1.8 .2 3.4 .4 4.7 .5 9.6 .9 10.4 2.3 7.2 3.8-2.3 1.1-16.2 6.3-28.7 10.9-4.7 1.8-9.2 3.5-12.8 4.8-1.5 .5-3 1.1-4.5 1.7-12.5 4.6-27.2 10-28.9 19.4-1.5 8.3 5.2 19.9 11.3 30.3 1.6 2.8 3.2 5.5 4.6 8.1 6.3 11.9 6.5 13.3 6.1 18.1-.4 3.9-14.5 12.7-22.4 17.6-1.8 1.1-3.3 2.1-4.2 2.7-.8 .5-2.1 1.4-3.8 2.4-8.6 5.2-26.3 16-26.3 22.5 0 7.8 24.6 28.1 32.4 33.2s28.9 16.1 37.9 17.8 23-8.5 31.2-23.8c7.7-14.4 1.7-28.5-3.2-40l-.9-2.2c-4.5-10.6 1.9-17 6.2-21.3 .5-.5 1-1 1.4-1.4l43-45.7c1.3-1.3 2.5-2.6 3.7-3.8 5.8-5.7 10.8-10.5 10.8-22.8 0-14.9-57.5-84.5-57.5-84.5s-48.5 9.3-55.1 9.3c-5.2 0-15.3-3.5-25.8-7.1-2.7-.9-5.4-1.9-8-2.7-13-4.3-21.8-4.4-21.8-4.4s-8.7 0-21.8 4.4c-2.7 .9-5.4 1.8-8 2.7-10.5 3.6-20.6 7.1-25.8 7.1-6.5 0-55.1-9.3-55.1-9.3s-57.5 69.6-57.5 84.5c0 12.3 4.9 17.1 10.8 22.8 1.2 1.2 2.5 2.4 3.7 3.8l43.1 45.8c.4 .5 .9 .9 1.4 1.4 4.3 4.3 10.6 10.7 6.2 21.3l-.9 2.2c-4.9 11.5-11 25.6-3.2 40 8.2 15.3 22.2 25.5 31.2 23.8s30.1-12.7 37.9-17.8 32.4-25.4 32.4-33.2c0-6.5-17.7-17.3-26.3-22.5-1.7-1-3.1-1.9-3.8-2.4-.9-.6-2.4-1.5-4.2-2.7-7.9-4.9-22-13.7-22.4-17.6-.4-4.8-.3-6.2 6.1-18.1 1.3-2.5 2.9-5.3 4.6-8.1 6-10.4 12.8-22 11.3-30.3-1.7-9.4-16.4-14.8-28.9-19.4-1.6-.6-3.1-1.1-4.5-1.7-3.6-1.4-8.1-3.1-12.8-4.8l-.1 0c-12.5-4.7-26.4-9.9-28.7-10.9-3.2-1.5-2.3-2.8 7.2-3.8 1.3-.1 2.9-.3 4.7-.5 11.8-1.3 33.6-3.6 44.2-.6 2.1 .6 4.4 1.2 6.9 1.9 11.9 3.2 26.5 7.2 27.9 9.5 .2 .4 .5 .7 .7 1.1 1.3 1.9 2.2 3.2 .7 11.3-.4 2.4-1.3 7.1-2.4 12.9-3.3 17.2-8.5 44.2-9.1 50.3-.1 .8-.2 1.7-.3 2.4-.8 6.7-1.4 11.2 6.4 13l2 .5c8.8 2 21.8 5 26.4 5l0-.1z\"],\n \"etsy\": [384, 512, [], \"f2d7\", \"M384 348c-1.8 10.7-13.8 110-15.5 132-117.9-4.3-219.9-4.7-368.5 0l0-25.5c45.5-8.9 60.6-8 61-35.2 1.8-72.3 3.5-244.1 0-322-1-28.5-12.1-26.8-61-36L0 35.8c73.9 2.4 255.9 8.6 363-3.8-3.5 38.2-7.8 126.5-7.8 126.5l-23.2 0C320.9 115.7 313.2 68 277.3 68l-137 0c-10.2 0-10.7 3.5-10.7 9.8l0 163.8c58 .5 88.5-2.5 88.5-2.5 29.8-1 27.6-8.5 40.7-65.3l25.8 0c-4.4 101.4-3.9 61.8-1.8 160.3L257 334c-9.2-40.1-9.1-61-39.5-61.5 0 0-21.5-2-88-2l0 139c0 26 14.3 38.3 44.3 38.3l89.3 0c63.6 0 66.6-25 98.7-99.8l22.2 0z\"],\n \"btc\": [384, 512, [], \"f15a\", \"M310.4 242.6c27.7-14.2 45.4-39.4 41.3-81.3-5.4-57.4-52.5-76.6-114.8-81.9l0-79.4-48.5 0 0 77.2c-12.6 0-25.5 .3-38.4 .6l0-77.8-48.5 0 0 79.4c-17.8 .5-38.6 .3-97.4 0l0 51.7c38.3-.7 58.4-3.1 63 21.4l0 217.4c-2.9 19.5-18.5 16.7-53.3 16.1L4 443.7c88.5 0 97.4 .3 97.4 .3l0 68 48.5 0 0-67.1c13.2 .3 26.2 .3 38.4 .3l0 66.7 48.5 0 0-68c81.3-4.4 135.6-24.9 142.9-101.5 5.7-61.4-23.3-88.9-69.3-99.9zM150.8 134.6c27.4 0 113.1-8.5 113.1 48.5 0 54.5-85.7 48.2-113.1 48.2l0-96.7zm0 251.8l0-106.5c32.8 0 133.1-9.1 133.1 53.3 0 60.2-100.4 53.3-133.1 53.3z\"],\n \"adn\": [512, 512, [], \"f170\", \"M256 167.5l64.9 98.8-129.8 0 64.9-98.8zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm396.2 82.7l-148.2-223.2-148.2 223.2 30.4 0 33.6-51.7 168.6 0 33.6 51.7 30.2 0z\"],\n \"square-x-twitter\": [448, 512, [], \"e61a\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm297.1 84l-103.8 118.6 122.1 161.4-95.6 0-74.8-97.9-85.7 97.9-47.5 0 111-126.9-117.1-153.1 98 0 67.7 89.5 78.2-89.5 47.5 0zM323.3 367.6l-169.9-224.7-28.3 0 171.8 224.7 26.4 0z\"],\n \"square-font-awesome\": [448, 512, [], \"e5ad\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90 122c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2 0 1.8-.4 3.7-1.1 5.4L312 264 342.9 333.4c.7 1.7 1.1 3.5 1.1 5.4 0 7.3-5.9 13.2-13.2 13.2l-186.8 0 0 32-32 0 0-209.5c-6.1-4.8-10-12.2-10-20.5 0-14.4 11.6-26 26-26s26 11.6 26 26z\"],\n \"forumbee\": [448, 512, [], \"f211\", \"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35 239.7 35 256.4 37 272.4 40.5 149 87.5 51.9 186 5.8 309.7zM398.7 120.5c-13.7-17.5-29.7-32.7-47.8-45.3-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8-137.9 45.8-246.4 156.6-291.3 295.1 18.1 7.6 37 12.5 56.6 15.2 46.3-114.1 136.8-206.8 250.5-253.5z\"],\n \"42-group\": [640, 512, [\"innosoft\"], \"e080\", \"M320 96l0 320c21 0 41.8-4.1 61.2-12.2s37-19.8 51.9-34.7 26.6-32.5 34.7-51.9 12.2-40.2 12.2-61.2-4.1-41.8-12.2-61.2-19.8-37.1-34.7-51.9-32.5-26.6-51.9-34.7-40.2-12.2-61.2-12.2zM0 256L160 416 320 256 160 96 0 256zm480 0c0 21 4.1 41.8 12.2 61.2s19.8 37 34.7 51.9 32.5 26.6 51.9 34.7 40.2 12.2 61.2 12.2l0-320c-42.4 0-83.1 16.9-113.1 46.9S480 213.6 480 256z\"],\n \"stumbleupon-circle\": [512, 512, [], \"f1a3\", \"M264 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 177.5c-9.8 0-17.8 8-17.8 17.8l0 106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9l0-46.5 57.3 0 0 45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8l0-108.4c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6l0 23.7-34.1 10.1-22.9-10.7 0-20.6c.1-9.6-7.9-17.6-17.7-17.6zM431.6 309.1c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2l0-46.8 22.9 10.7 34.1-10.1 0 47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6l0-48 57.3 0c-.1 45.9-.1 46.4-.1 46.4z\"],\n \"symfony\": [512, 512, [], \"f83d\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM389.7 151.5c-11.5 .4-19.4-6.4-19.8-16.9-.3-9.2 6.7-13.4 6.5-18.9-.2-6.5-10.2-6.8-12.9-6.7-39.8 1.3-48.6 57-58.9 113.8 21.4 3.2 36.6-.7 45.1-6.2 12-7.7-3.3-15.7-1.4-24.6 4-18.2 32.6-19 32 5.3-.4 17.9-25.9 41.8-77.6 35.7-10.8 59.5-18.4 115-58.2 161.7-29 34.5-58.4 39.8-71.6 40.3-24.6 .9-41-12.3-41.6-29.8-.6-17 14.4-26.3 24.3-26.6 21.9-.8 30.1 25.7 14.9 34-12.1 9.7 .1 12.6 2.1 12.6 10.4-.4 17.3-5.5 22.2-9 24-20 33.2-54.9 45.4-118.3 8.2-49.7 17-78 18.2-82-16.9-12.7-27.1-28.6-49.8-34.7-15.6-4.2-25.1-.6-31.8 7.8-7.9 10-5.3 23 2.4 30.7l12.6 14c15.5 17.9 24 31.9 20.8 50.6-5.1 29.9-40.7 52.9-82.9 39.9-36-11.1-42.7-36.6-38.4-50.6 7.5-24.2 42.4-11.7 34.6 13.6-2.8 8.6-4.9 8.7-6.3 13.1-4.6 14.8 41.8 28.4 51-1.4 4.5-14.5-5.3-21.7-22.2-39.9-28.5-31.7-16-65.5 2.9-79.7 52.8-39.4 100.5 17.5 110.6 25.8 37.2-109 100.5-105.5 102.4-105.5 25.2-.8 44.2 10.6 44.8 28.6 .2 7.7-4.2 22.6-19.5 23.1z\"],\n \"salesforce\": [640, 512, [], \"f83b\", \"M249.4 245.6l-26.4 0c.7-5.2 3.3-14.1 13.6-14.1 6.8 0 12 3.8 12.7 14.1zM386 231.8c-.5 0-14.1-1.8-14.1 20s13.6 20 14.1 20c13 0 14.1-13.5 14.1-20 0-21.8-13.7-20-14.1-20zM142.8 255.5c-1.1 .9-2 2-2.5 3.2s-.8 2.7-.7 4c0 4.8 2.1 6.1 3.3 7 4.7 3.7 15.1 2.1 20.9 1l0-16.9c-5.3-1.1-16.7-2-20.9 1.6zM640.5 232c0 87.6-80 154.4-165.4 136.4-18.4 33-70.7 70.8-132.2 41.6-41.2 96-177.9 92.2-213.8-5.2-119.7 23.9-178.8-138.4-75.3-199.3-34.8-79.4 22.6-173.6 114.3-173.6 19.1 0 37.9 4.4 55 12.9s32 20.7 43.6 35.8c20.7-21.4 49.4-34.8 81.1-34.8 42.3 0 79 23.5 98.8 58.6 92.8-40.7 193.8 28.2 193.8 127.5zM120.9 263.8c0-11.8-11.7-15.2-17.9-17.2-5.3-2.1-13.4-3.5-13.4-8.9 0-9.5 17-6.7 25.2-2.1 0 0 1.2 .7 1.6-.5 .2-.7 2.4-6.6 2.6-7.3 .1-.3 .1-.6-.1-.8s-.4-.5-.6-.6c-12.3-7.6-40.7-8.5-40.7 12.7 0 12.5 11.5 15.4 17.9 17.2 4.7 1.6 13.2 3 13.2 8.7 0 4-3.5 7.1-9.2 7.1-6.9 0-13.5-2.2-19-6.3-.5-.2-1.4-.7-1.6 .7l-2.4 7.5c-.5 .9 .2 1.2 .2 1.4 1.8 1.4 10.3 6.6 22.8 6.6 13.2 0 21.4-7.1 21.4-18.1l0 0zm32-42.6c-10.1 0-18.7 3.2-21.4 5.2-.1 .1-.2 .2-.3 .3s-.1 .2-.1 .4 0 .3 0 .4 .1 .3 .2 .4l2.6 7.1c.1 .2 .2 .5 .5 .6s.5 .2 .7 .1c.6 0 6.8-4 16.9-4 4 0 7.1 .7 9.2 2.4 3.6 2.8 3.1 8.3 3.1 10.6-4.8-.3-19.1-3.4-29.4 3.8-2.3 1.6-4.3 3.8-5.5 6.3s-1.9 5.4-1.8 8.2c0 5.9 1.5 10.4 6.6 14.4 12.2 8.2 36.3 2 38.1 1.4 1.6-.3 3.5-.7 3.5-1.9l0-33.9c0-4.6 .3-21.6-22.8-21.6l0 .1zm46.6-21c0-.2 0-.3-.1-.5s-.1-.3-.3-.4-.2-.2-.4-.3-.3-.1-.5-.1l-9.8 0c-.2 0-.3 0-.5 .1s-.3 .1-.4 .3-.2 .2-.3 .4-.1 .3-.1 .5l0 79c0 .2 0 .3 .1 .5s.1 .3 .3 .4 .2 .2 .4 .3 .3 .1 .5 .1l9.9 0c.2 0 .3 0 .5-.1s.3-.1 .4-.3 .2-.2 .3-.4 .1-.3 .1-.5l-.1-79zm55.7 28.9c-2.1-2.3-6.8-7.5-17.6-7.5-3.5 0-14.2 .2-20.7 8.9-6.4 7.6-6.6 18.1-6.6 21.4 0 3.1 .2 14.3 7.1 21.2 2.6 2.9 9.1 8.2 22.8 8.2 10.8 0 16.5-2.3 18.6-3.8 .5-.2 .7-.7 .2-1.9l-2.3-6.8c-.1-.3-.3-.5-.6-.6s-.5-.2-.8-.1c-2.6 .9-6.3 2.8-15.3 2.8-17.4 0-16.8-14.7-16.9-16.7l37.2 0c.3 0 .5-.1 .7-.3s.4-.4 .4-.7c-.3 0 2.1-14.7-6.1-24.2l0 0zm36.7 52.7c13.2 0 21.4-7.1 21.4-18.1 0-11.8-11.7-15.2-17.9-17.2-4.1-1.7-13.4-3.4-13.4-8.9 0-3.8 3.3-6.4 8.5-6.4 5.8 .1 11.5 1.6 16.7 4.2 0 0 1.2 .7 1.6-.5 .2-.7 2.4-6.6 2.6-7.3 .1-.3 .1-.6-.1-.8s-.4-.5-.6-.6c-7.9-4.9-16.7-4.9-20.2-4.9-12 0-20.5 7.3-20.5 17.6 0 12.5 11.5 15.4 17.9 17.2 6.1 2 13.2 3.3 13.2 8.7 0 4-3.5 7.1-9.2 7.1-6.9 0-13.5-2.2-19-6.4-.1-.1-.3-.2-.5-.2s-.4 0-.5 .1-.3 .2-.4 .3-.2 .3-.2 .5l-2.3 7.5c-.5 .9 .2 1.2 .2 1.4 1.7 1.4 10.3 6.6 22.8 6.6l0 0zM357.6 224c0-.7-.2-1.2-1.2-1.2l-11.8 0c0-.1 .9-8.9 4.5-12.5 4.2-4.2 11.8-1.6 12-1.6 1.2 .5 1.4 0 1.6-.5l2.8-7.8c.7-.9 0-1.2-.2-1.4-5.1-2-17.4-2.9-24.5 4.2-5.5 5.5-7 13.9-8 19.5l-8.5 0c-.3 0-.6 .2-.8 .4s-.3 .5-.4 .8l-1.4 7.8c0 .7 .2 1.2 1.2 1.2l8.2 0c-8.5 47.9-8.7 50.2-10.3 55.5-1.1 3.6-3.3 6.9-5.9 7.8-.1 0-3.9 1.7-9.6-.2 0 0-.9-.5-1.4 .7-.2 .7-2.6 6.8-2.8 7.5s0 1.4 .5 1.4c5.1 2 13 1.8 17.9 0 6.3-2.3 9.7-7.9 11.5-12.9 2.8-7.7 2.8-9.8 11.8-59.7l12.2 0c.3 0 .6-.2 .8-.4s.3-.5 .4-.8l1.4-7.8zM411 240c-.6-1.7-5.1-18.1-25.2-18.1-15.2 0-23 10-25.2 18.1-1 3-3.2 14 0 23.5 .1 .3 4.4 18.1 25.2 18.1 15 0 22.9-9.6 25.2-18.1 3.2-9.6 1-20.5 0-23.5zm45.4-16.7c-5-1.7-16.6-1.9-22.1 5.4l0-4.5c0-.2 0-.3-.1-.5s-.1-.3-.3-.4-.2-.2-.4-.3-.3-.1-.5-.1l-9.4 0c-.2 0-.3 0-.5 .1s-.3 .1-.4 .3-.2 .2-.3 .4-.1 .3-.1 .5l0 55.3c0 .2 0 .3 .1 .5s.1 .3 .3 .4 .2 .2 .4 .3 .3 .1 .5 .1l9.6 0c.2 0 .3 0 .5-.1s.3-.1 .4-.3 .2-.2 .3-.4 .1-.3 .1-.5l0-27.8c0-2.9 .1-11.4 4.5-15.1 4.9-4.9 12-3.4 13.4-3.1 .3 0 .6-.1 .8-.3s.4-.4 .6-.7c1.2-2.6 2.2-5.3 3.1-8 .1-.3 .1-.5 0-.8s-.3-.5-.5-.6l0 0zm46.8 54.1l-2.1-7.3c-.5-1.2-1.4-.7-1.4-.7-4.2 1.8-10.1 1.9-11.3 1.9-4.6 0-17.2-1.1-17.2-19.8 0-6.2 1.8-19.8 16.5-19.8 3.9-.1 7.8 .5 11.5 1.6 0 0 .9 .5 1.2-.7 .9-2.6 1.6-4.5 2.6-7.5 .2-.9-.5-1.2-.7-1.2-11.6-3.9-22.3-2.5-27.8 0-1.6 .7-16.2 6.5-16.2 27.5 0 2.9-.6 30.1 28.9 30.1 5.3 0 10.6-1 15.5-2.8 .2-.2 .4-.4 .5-.6s.1-.5 0-.8l0 0zm53.9-39.5c-.8-3-5.4-16.2-22.3-16.2-16 0-23.5 10.1-25.6 18.6-1.2 3.8-1.7 7.8-1.7 11.8 0 25.9 18.8 29.4 29.9 29.4 10.8 0 16.5-2.3 18.6-3.8 .5-.2 .7-.7 .2-1.9l-2.4-6.8c-.1-.3-.3-.5-.6-.6s-.6-.2-.8-.1c-2.6 .9-6.3 2.8-15.3 2.8-17.4 0-16.9-14.7-16.9-16.7l37.2 0c.3 0 .5-.1 .7-.3s.4-.4 .4-.7c-.2 0 .9-7.1-1.4-15.5l0 0zm-23.3-6.4c-10.3 0-13 9-13.6 14.1l26.4 0c-.9-11.9-7.6-14.1-12.7-14.1l0 0z\"],\n \"sourcetree\": [448, 512, [], \"f7d3\", \"M427.4 203c0-112.1-90.9-203-203-203-112.1-.2-203 90.6-203.2 202.6-.1 43 13.5 84.8 38.7 119.6s60.9 60.6 101.8 73.8l0 101.7c0 3.8 1.5 7.4 4.2 10.1s6.3 4.2 10.1 4.2l96.4 0c3.8 0 7.4-1.5 10.1-4.2s4.2-6.3 4.2-10.1l0-101.6c40.8-13.2 76.5-39 101.7-73.7s38.9-76.5 39-119.4zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"],\n \"linkedin-in\": [448, 512, [], \"f0e1\", \"M100.3 448l-92.9 0 0-299.1 92.9 0 0 299.1zM53.8 108.1C24.1 108.1 0 83.5 0 53.8 0 39.5 5.7 25.9 15.8 15.8s23.8-15.8 38-15.8 27.9 5.7 38 15.8 15.8 23.8 15.8 38c0 29.7-24.1 54.3-53.8 54.3zM447.9 448l-92.7 0 0-145.6c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7l0 148.1-92.8 0 0-299.1 89.1 0 0 40.8 1.3 0c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3l0 164.3-.1 0z\"],\n \"html5\": [384, 512, [], \"f13b\", \"M0 32L34.9 427.8 191.5 480 349.1 427.8 384 32 0 32zM308.2 159.9l-183.8 0 4.1 49.4 175.6 0-13.6 148.4-97.9 27 0 .3-1.1 0-98.7-27.3-6-75.8 47.7 0 3.5 38.1 53.5 14.5 53.7-14.5 6-62.2-166.9 0-12.8-145.6 241.1 0-4.4 47.7z\"],\n \"rust\": [512, 512, [], \"e07a\", \"M508.5 249.8l-21.8-13.5c-.2-2-.3-3.9-.5-5.9l18.7-17.5c.9-.9 1.6-1.9 2-3.1s.5-2.5 .2-3.7-.8-2.4-1.6-3.3-1.8-1.7-3-2.1l-24-9c-.5-1.9-1.1-3.8-1.7-5.6l15-20.8c.7-1 1.2-2.2 1.3-3.4s0-2.5-.5-3.7-1.2-2.2-2.2-2.9-2.1-1.3-3.4-1.5l-25.4-4.2c-.9-1.7-1.8-3.4-2.7-5.2l10.7-23.4c.5-1.1 .7-2.4 .6-3.6s-.5-2.4-1.2-3.5-1.6-1.9-2.8-2.5-2.4-.8-3.6-.8l-25.8 .9c-1.2-1.5-2.4-2.9-3.6-4.4L439 81.8c.3-1.2 .3-2.5-.1-3.7s-1-2.3-1.9-3.2-2-1.5-3.2-1.9-2.5-.4-3.7-.1L405 78.9c-1.4-1.2-2.9-2.4-4.4-3.6l.9-25.8c.1-1.3-.2-2.5-.8-3.6s-1.4-2.1-2.5-2.8-2.2-1.1-3.5-1.2-2.5 .1-3.7 .6L367.7 53.2c-1.7-.9-3.4-1.8-5.1-2.7l-4.2-25.4c-.2-1.2-.7-2.4-1.5-3.4s-1.8-1.7-2.9-2.2-2.4-.7-3.7-.5-2.4 .6-3.4 1.3L326 35.3c-1.9-.6-3.8-1.1-5.6-1.7l-9-24c-.4-1.2-1.2-2.2-2.1-3s-2.1-1.4-3.3-1.6-2.5-.2-3.7 .2-2.3 1.1-3.1 2L281.6 25.9c-2-.2-3.9-.4-5.9-.5L262.3 3.5c-.7-1.1-1.6-1.9-2.7-2.6s-2.3-.9-3.6-.9-2.5 .3-3.6 .9-2 1.5-2.7 2.6L236.2 25.3c-2 .2-3.9 .3-5.9 .6L212.9 7.1c-.9-.9-1.9-1.6-3.1-2s-2.5-.5-3.7-.2-2.4 .8-3.3 1.6-1.7 1.8-2.1 3l-9 24c-1.9 .6-3.8 1.1-5.7 1.7l-20.8-15c-1-.7-2.2-1.2-3.4-1.3s-2.5 0-3.7 .5-2.2 1.2-2.9 2.2-1.3 2.1-1.5 3.4l-4.2 25.4c-1.7 .9-3.4 1.8-5.2 2.7L120.9 42.6c-1.1-.5-2.4-.7-3.7-.6s-2.5 .5-3.5 1.2-1.9 1.7-2.5 2.8-.8 2.4-.8 3.6l.9 25.8c-1.5 1.2-3 2.4-4.4 3.6L81.8 73c-1.2-.3-2.5-.3-3.7 .1s-2.3 1-3.2 1.9-1.5 2-1.9 3.2-.4 2.5-.1 3.7L78.9 107c-1.2 1.4-2.4 2.9-3.6 4.4l-25.8-.9c-1.3 0-2.5 .2-3.6 .8s-2.1 1.4-2.8 2.4-1.1 2.2-1.2 3.5 .1 2.5 .6 3.6l10.7 23.4c-.9 1.7-1.8 3.4-2.7 5.2l-25.4 4.1c-1.2 .2-2.4 .7-3.4 1.5s-1.7 1.8-2.2 2.9-.7 2.4-.5 3.7 .6 2.4 1.3 3.4l15 20.8c-.6 1.9-1.1 3.8-1.7 5.7l-24 9c-1.2 .4-2.2 1.2-3 2.1s-1.4 2.1-1.6 3.3-.2 2.5 .2 3.7 1.1 2.3 2 3.1l18.7 17.5c-.2 2-.4 3.9-.6 5.9L3.5 249.8c-1.1 .7-1.9 1.6-2.6 2.7s-.9 2.3-.9 3.6 .3 2.5 .9 3.6 1.5 2 2.6 2.7l21.8 13.5c.2 2 .3 3.9 .6 5.9L7.1 299.1c-.9 .9-1.6 1.9-2 3.1s-.5 2.5-.2 3.7 .8 2.4 1.6 3.3 1.8 1.7 3 2.1l24 9c.6 1.9 1.1 3.8 1.7 5.6l-15 20.8c-.7 1-1.2 2.2-1.3 3.4s0 2.5 .5 3.7 1.2 2.2 2.2 2.9 2.1 1.3 3.4 1.5l25.4 4.2c.9 1.7 1.8 3.4 2.7 5.1L42.6 391.1c-.5 1.1-.7 2.4-.6 3.6s.5 2.5 1.2 3.5c.7 1.1 1.6 1.9 2.7 2.5s2.4 .8 3.6 .8l25.8-.9c1.2 1.5 2.4 2.9 3.6 4.4L73 430.2c-.3 1.2-.3 2.5 .1 3.7s1 2.3 1.9 3.2 2 1.5 3.2 1.9 2.5 .4 3.7 .1l25.2-5.9c1.5 1.2 2.9 2.4 4.4 3.6l-.9 25.8c0 1.3 .2 2.5 .8 3.6s1.4 2.1 2.5 2.8 2.2 1.1 3.5 1.2 2.5-.1 3.6-.6l23.4-10.7c1.7 .9 3.4 1.8 5.1 2.7l4.2 25.4c.2 1.2 .7 2.4 1.5 3.4s1.8 1.8 2.9 2.2 2.4 .7 3.7 .5 2.4-.6 3.4-1.3l20.8-15c1.9 .6 3.8 1.1 5.6 1.7l9 24c.4 1.2 1.2 2.2 2.1 3s2.1 1.4 3.3 1.6 2.5 .2 3.7-.2 2.3-1.1 3.1-2l17.5-18.7c2 .2 3.9 .4 5.9 .6l13.5 21.8c.7 1.1 1.6 1.9 2.7 2.6s2.3 .9 3.6 .9 2.5-.3 3.6-.9 2-1.5 2.7-2.6l13.5-21.8c2-.2 3.9-.3 5.9-.6l17.5 18.7c.9 .9 1.9 1.6 3.1 2s2.5 .5 3.7 .2 2.4-.8 3.3-1.6 1.7-1.8 2.1-3l9-24c1.9-.6 3.8-1.1 5.6-1.7l20.8 15c1 .7 2.2 1.2 3.4 1.3s2.5 0 3.7-.5 2.2-1.2 2.9-2.2 1.3-2.1 1.5-3.4l4.2-25.4c1.7-.9 3.4-1.8 5.1-2.7l23.4 10.7c1.1 .5 2.4 .7 3.6 .6s2.4-.5 3.5-1.2 1.9-1.6 2.5-2.8 .8-2.4 .8-3.6l-.9-25.8c1.5-1.2 2.9-2.4 4.4-3.6l25.2 5.9c1.2 .3 2.5 .3 3.7-.1s2.3-1 3.2-1.9 1.5-2 1.9-3.2 .4-2.5 .1-3.7L433.1 405c1.2-1.4 2.4-2.9 3.6-4.4l25.8 .9c1.3 .1 2.5-.2 3.6-.8s2.1-1.4 2.8-2.5c.7-1 1.1-2.2 1.2-3.5s-.1-2.5-.6-3.6l-10.7-23.4c.9-1.7 1.8-3.4 2.7-5.1l25.4-4.2c1.2-.2 2.4-.7 3.4-1.5s1.8-1.8 2.2-2.9 .7-2.4 .5-3.7-.6-2.4-1.3-3.4l-15-20.8c.6-1.9 1.1-3.8 1.7-5.6l24-9c1.2-.4 2.2-1.2 3-2.1s1.4-2.1 1.6-3.3 .2-2.5-.2-3.7-1.1-2.3-2-3.1l-18.7-17.5c.2-1.9 .4-3.9 .6-5.9l21.8-13.5c1.1-.7 1.9-1.6 2.6-2.7s.9-2.3 .9-3.6-.3-2.5-.9-3.6-1.5-2-2.6-2.7l0 0zm-151 129.1c-3.6-.8-7.4-.1-10.5 1.9s-5.3 5.2-6 8.8l-7.6 35.7c-24.6 11.1-51.3 16.8-78.3 16.7s-53.6-6.1-78.1-17.4l-7.6-35.7c-.4-1.8-1.1-3.5-2.1-5s-2.4-2.8-3.9-3.8-3.2-1.7-5-2-3.6-.3-5.4 .1l-31.5 6.8c-5.8-6-11.3-12.5-16.3-19.2l153.2 0c1.7 0 2.9-.3 2.9-1.9l0-54.2c0-1.6-1.2-1.9-2.9-1.9l-44.8 0 0-34.4 48.5 0c4.4 0 23.7 1.3 29.8 25.9 1.9 7.5 6.2 32.1 9.1 40 2.9 8.8 14.6 26.5 27.1 26.5l79 0c-5.3 7.1-11.1 13.8-17.3 20.1l-32.1-6.9zm25.8 34.5c0 3-.9 6-2.6 8.5s-4 4.5-6.8 5.6-5.8 1.5-8.8 .9-5.7-2-7.8-4.2-3.6-4.8-4.2-7.8-.3-6 .8-8.8 3.1-5.2 5.6-6.9 5.4-2.6 8.5-2.6l.4 0c4 .1 7.7 1.8 10.5 4.6s4.3 6.7 4.3 10.6l.1 0zm-225.6-.7c0 3-.9 6-2.6 8.5s-4.1 4.5-6.8 5.6-5.8 1.5-8.8 .9-5.7-2-7.8-4.2-3.6-4.8-4.2-7.8-.3-6 .9-8.8 3.1-5.2 5.6-6.8 5.4-2.6 8.5-2.6l.5 0c4 .1 7.7 1.8 10.5 4.6s4.3 6.7 4.3 10.6l.1 0zM69.6 234.2l32.8-14.6c1.7-.7 3.2-1.8 4.4-3.1s2.2-2.9 2.9-4.6 1-3.5 .9-5.3-.5-3.6-1.2-5.3l-6.8-15.2 26.6 0 0 119.7-53.6 0c-6.6-23.2-8.7-47.6-6.1-71.6zM58.3 198.1c0-2 .4-4 1.2-5.8s1.9-3.5 3.3-4.9 3.1-2.5 4.9-3.3 3.8-1.2 5.8-1.2l.5 0c3 .1 5.9 1 8.3 2.8s4.3 4.1 5.4 6.9 1.3 5.8 .7 8.8-2.1 5.6-4.3 7.7-4.9 3.5-7.8 4.1-6 .2-8.7-.9-5.1-3.1-6.8-5.6-2.5-5.4-2.5-8.4l0 0zm155.2 24.5l0-35.3 63.3 0c3.3 0 23.1 3.8 23.1 18.6 0 12.3-15.2 16.7-27.7 16.7l-58.7 0zM399 306.7c-9.8 1.1-20.6-4.1-22-10.1-5.8-32.5-15.4-39.4-30.6-51.4 18.9-12 38.5-29.6 38.5-53.3 0-25.5-17.5-41.6-29.4-49.5-16.8-11-35.3-13.2-40.3-13.2l-198.9 0c27.5-30.7 64.4-51.5 104.9-59.2l23.5 24.6c1.3 1.3 2.8 2.4 4.4 3.1s3.5 1.1 5.3 1.2 3.6-.3 5.3-.9 3.2-1.7 4.6-2.9l26.3-25c26.8 5 52.1 15.8 74.3 31.6s40.6 36.2 54.1 59.9l-18 40.6c-1.5 3.4-1.5 7.2-.2 10.6s3.9 6.2 7.3 7.7l34.6 15.3c1.1 10.8 1.2 21.7 .4 32.5l-19.3 0c-1.9 0-2.7 1.3-2.7 3.1l0 8.8c0 20.8-11.7 25.3-22 26.5zM240 60.2c0-4 1.6-7.9 4.5-10.7s6.7-4.5 10.7-4.5l.4 0c3 .1 5.9 1 8.4 2.8s4.3 4.1 5.4 6.9 1.3 5.8 .7 8.8-2.1 5.6-4.3 7.7-4.9 3.5-7.8 4-6 .2-8.7-.9-5.1-3.1-6.8-5.6-2.5-5.4-2.5-8.4zM436.8 214c-2 0-4-.4-5.8-1.2s-3.5-1.9-4.9-3.3-2.5-3.1-3.3-4.9-1.2-3.8-1.2-5.8 .4-4 1.2-5.8 1.9-3.5 3.3-4.9 3.1-2.5 4.9-3.3 3.8-1.2 5.8-1.2l.4 0c4 .1 7.9 1.7 10.7 4.6s4.4 6.8 4.3 10.8-1.7 7.9-4.6 10.7-6.8 4.4-10.8 4.3z\"],\n \"hornbill\": [512, 512, [], \"f592\", \"M76.8 370.3c1 7.8-.4 15.8-4.1 22.8s-9.6 12.6-16.7 16.1-15.1 4.7-22.9 3.3-15-5.1-20.6-10.7-9.2-12.9-10.5-20.7 0-15.8 3.6-22.9 9.3-12.8 16.3-16.5 15-5 22.9-3.9c-78.3-111.3 52-190.5 52-190.5-5.9 43-8.2 91.2-8.2 91.2-67.3 41.5 .9 64.1 39.8 72.9 9.9 27 27.8 50.2 51.4 66.7s51.6 25.3 80.3 25.3c1.9 0 3.8-.2 5.7-.3l.1 18.9c-99.2 1.4-158.7-29.1-188.9-51.6zm108-327.7c.9-7.2-.2-14.6-3.4-21.2-3-6.2-7.6-11.5-13.4-15.3s-12.5-5.9-19.4-6.2-13.8 1.4-19.8 4.7-11.1 8.3-14.5 14.3-5.2 12.8-5 19.7 2.2 13.7 5.9 19.5 8.9 10.6 15.1 13.6 13.1 4.4 20 3.9c-22.6 29.9-53.8 89.6-52.4 190l21.8-.2c0-.9-.1-1.8-.1-2.7 0-28 8.4-55.3 24.1-78.5s37.9-41.2 63.8-51.6c8-37.7 30.7-114.3 73.8-44.3 0 0 48.1 2.4 91.2 8.2 0 0-77.8-128-187.6-54.1l0 0zM489 176.8c6.3-3 11.7-7.7 15.5-13.6s5.9-12.7 6.1-19.8-1.6-14-5.2-20-8.7-11-14.9-14.3-13.2-4.8-20.2-4.4-13.8 2.8-19.5 6.9-10.2 9.6-13 16.1-3.7 13.6-2.7 20.5c-31.7-21.9-89.8-49.1-183.4-47.7l.1 22.5c2.7-.2 5.4-.4 8.1-.4 28.1 0 55.6 8.5 78.9 24.3s41.2 38.3 51.6 64.5c39.1 9 105.1 31.6 38.5 72.5 0 0-2.3 48.1-8.2 91.2 0 0 133.4-81.2 49-194.6 6.6 .6 13.3-.6 19.3-3.5l0 0zM374.4 436.2c21.4-32.5 46.4-89.7 45.1-179.7l-19.5 .1c.1 2.1 .3 4.1 .3 6.2 0 28.6-8.8 56.5-25.1 80s-39.5 41.4-66.3 51.4c-8.9 39-31.4 106.7-72.8 39.5 0 0-48.1-2.3-91.2-8.2 0 0 79.9 131.3 191.9 51 .3 4.9 1.5 9.6 3.6 14 2.9 6.1 7.5 11.4 13.1 15.1s12.2 6 19 6.4 13.6-1.1 19.6-4.2 11.1-7.8 14.7-13.6 5.6-12.4 5.7-19.2-1.5-13.5-4.8-19.4-8.2-10.9-14.1-14.3-12.6-5.2-19.4-5.1l0-.1z\"],\n \"php\": [640, 512, [], \"f457\", \"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5C148.6 407.5 16.8 335.3 16.8 256S148.7 104.5 320 104.5zm0-16.8C143.3 87.7 0 163 0 256S143.3 424.3 320 424.3 640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3l36.7 0 8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7l-70.7 0-32.7 168.7zM283.1 136.7l36.5 0-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1l-37 0c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6-36.5 0 32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3l36.8 0 8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7l-70.7 0-32.8 168.7z\"],\n \"disqus\": [576, 512, [], \"e7d5\", \"M290.2 512c-62.6 0-119.9-22.9-164.2-60.8L17 466.1 59.1 362.2c-14.7-32.4-22.9-68.3-22.9-106.2 0-141.4 113.7-256 254-256 140.3 0 254 114.6 254 256 0 141.4-113.7 256-254 256zM428.9 255.3l0-.7C428.9 180.7 376.8 128 287 128l-97 0 0 256 95.6 0c90.5 0 143.4-54.9 143.4-128.7zM288 321.1l-28.4 0 0-130.2 28.4 0c41.7 0 69.3 23.8 69.3 64.7l0 .7c0 41.3-27.7 64.7-69.3 64.7z\"],\n \"500px\": [384, 512, [], \"f26e\", \"M71.8 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2l.3 0 0-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5S151 163.3 126.3 188c-.3 .3-16 16.5-21.2 23.9l-.5 .6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8L70.2 20c0-5 3.9-10.5 10.5-10.5L322 9.5c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1l-223.2 0 0 132.9 .3 0c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zM135.1 83.5c-.5 4.2 4.6 24.5 14.6 20.6 124.8-47.5 202.8 40.4 209.4 40.4 4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM361.5 414.7c-110 109.9-299 60.8-332-104.2 0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM182.1 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6 .2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2l-17.3-17.3 18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L218.2 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L202.5 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"],\n \"affiliatetheme\": [512, 512, [], \"f36b\", \"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1 105.5 88.2 170.8 48.3 199.9 69.9s11.1 96.6-40.2 167.5zm351.2-57.3c-73.8 123.4-191.9 187.7-264.5 143.6-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9 .1-8.5-.3-16.8-1-25z\"],\n \"red-river\": [448, 512, [], \"f3e3\", \"M353.2 32L94.8 32C42.4 32 0 74.4 0 126.8L0 385.2C0 437.6 42.4 480 94.8 480l258.4 0c52.4 0 94.8-42.4 94.8-94.8l0-258.4C448 74.4 405.6 32 353.2 32zM144.9 200.9l0 56.3c0 27-21.9 48.9-48.9 48.9l0-154.2c0-13.2 10.7-23.9 23.9-23.9l154.2 0c0 27-21.9 48.9-48.9 48.9l-56.3 0c-12.3-.6-24.6 11.6-24 24zm176.3 72l-56.3 0c-12.3-.6-24.6 11.6-24 24l0 56.3c0 27-21.9 48.9-48.9 48.9l0-154.2c0-13.2 10.7-23.9 23.9-23.9l154.2 0c0 27-21.9 48.9-48.9 48.9z\"],\n \"twitter\": [512, 512, [], \"f099\", \"M459.4 151.7c.3 4.5 .3 9.1 .3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103l0-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53 51.7 63.7 129.3 105.3 216.4 109.8-1.6-7.8-2.6-15.9-2.6-24 0-57.8 46.8-104.9 104.9-104.9 30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3z\"],\n \"fort-awesome\": [512, 512, [], \"f286\", \"M489.5 287.9l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-178.3c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-32c0-6-8-4.6-11.7-4.6l0-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8l0-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9l0-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3l0 111.7c-3.7 0-11.7-1.4-11.7 4.6l0 32-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.3 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 178.3-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 219.5 182.9 0 0-96c0-72.6 109.7-72.6 109.7 0l0 96 182.9 0 0-219.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6l-27.4 0c-2.6 0-4.6-2-4.6-4.6l0-64c0-2.6 2-4.6 4.6-4.6l27.4 0c2.6 0 4.6 2 4.6 4.6l0 64zm146.4 0c0 2.6-2 4.6-4.6 4.6l-27.4 0c-2.6 0-4.6-2-4.6-4.6l0-64c0-2.6 2-4.6 4.6-4.6l27.4 0c2.6 0 4.6 2 4.6 4.6l0 64z\"],\n \"mixer\": [448, 512, [], \"e056\", \"M82.6 76.1c-3.8-5.1-8.7-9.4-14.2-12.5s-11.7-5.1-18.1-5.7-12.8 .1-18.8 2.2-11.6 5.3-16.3 9.6c-17.6 16.2-19 43.5-4.8 62.8l91.8 123-92.3 124.1c-14.2 19.3-13.1 46.6 4.7 62.8 4.7 4.3 10.3 7.6 16.3 9.6s12.5 2.8 18.8 2.2 12.5-2.5 18.1-5.7 10.4-7.4 14.2-12.5L210.9 262.7c1.5-2.1 2.3-4.6 2.3-7.1s-.8-5-2.3-7.1L82.6 76.1zM438.2 379.6l-92.3-124.1 91.8-123c14.2-19.2 12.8-46.6-4.7-62.8-4.7-4.3-10.3-7.6-16.3-9.6s-12.5-2.8-18.8-2.2-12.5 2.5-18.1 5.7-10.4 7.4-14.2 12.5l-128 172.1c-1.5 2.1-2.3 4.6-2.3 7.1s.8 5 2.3 7.1L366 435.9c3.8 5.1 8.7 9.4 14.2 12.5s11.7 5.1 18.1 5.7 12.8-.1 18.8-2.2 11.6-5.3 16.3-9.6c17.8-16.2 19-43.5 4.7-62.8z\"],\n \"lyft\": [512, 512, [], \"f3c3\", \"M0 81.1l77.8 0 0 208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8-17-14-24.8-37.3-24.8-59L0 81.1zM485.9 254.6l0-22 23.8 0 0-76.8-26.1 0c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7l0 179.2c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59l0-6.7 38.8 0 0-76.8-38.8 0 0-23.3c0-34.6 52.2-34.6 52.2 0l0 77.1c0 56.6 46 102.7 102.7 102.7l0-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99l0 113c0 15.4-23.8 15.4-23.8 0l0-113-76.8 0 0 132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8l0 70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8l0-178.2-77.1 0 0 .5z\"],\n \"apple-pay\": [640, 512, [], \"f415\", \"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8zm10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9 .3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1zm100.4-36.2l0 194.9 30.3 0 0-66.6 41.9 0c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64l-73.2 0zM258.5 165l34.9 0c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8l-34.8 0 0-77.4zM420.7 335.9c19 0 36.6-9.6 44.6-24.9l.6 0 0 23.4 28 0 0-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6l27.3 0c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5l0 10.8-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5 .1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1 0 11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4l53.1-149-30.8 0-35.6 115.1-.6 0-35.6-115.1-31.6 0 51.2 141.9-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5l0 23.4c1.8 .4 9.3 .7 11.6 .7z\"],\n \"artstation\": [512, 512, [], \"f77a\", \"M2.1 377.4l43 74.3c4.3 8.5 10.8 15.7 18.9 20.7s17.4 7.6 27 7.6l285.4 0-59.2-102.6-315.1 0zM501.9 350L335.7 59.3c-4.4-8.2-10.9-15.1-18.9-20S299.7 32 290.4 32l-88.4 0 257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275.2 304.5l-115.5-200-115.5 200 231 0z\"],\n \"node-js\": [448, 512, [], \"f3d3\", \"M224.5 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6 .4l47.4 28.1c1.7 1 4.1 1 5.7 0L412 367.5c1.7-1 2.8-3 2.8-5l0-213.2c0-2.1-1.1-4-2.9-5.1L227.3 37.7c-1.7-1-4-1-5.7 0L37.1 144.3c-1.8 1-2.9 3-2.9 5.1l0 213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7l0-210.4c0-3 2.4-5.3 5.4-5.3l23.4 0c2.9 0 5.4 2.3 5.4 5.3l0 210.5c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6L20.6 396.1c-12-6.9-19.4-19.8-19.4-33.7l0-213.1c0-13.8 7.4-26.8 19.4-33.7L205.1 9c11.7-6.6 27.2-6.6 38.8 0L428.6 115.7c12 6.9 19.4 19.8 19.4 33.7l0 213.1c0 13.8-7.4 26.7-19.4 33.7L243.9 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zM373.6 297.9c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8 .5 2.4 2.7 4.2 5.2 4.2l24 0c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5l-23.9 0c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"],\n \"uncharted\": [448, 512, [], \"e084\", \"M171.8 232.8c1.1 0 2.1-.3 3-.9s1.6-1.4 2-2.4c2.2-9.8 7.4-18.6 14.9-25.3 1.2-.8 1.7-2.5 1.7-4.1-.1-.7-.3-1.3-.6-1.9s-.9-1.1-1.4-1.4L74.5 128.5 149.1 85c1.5-.8 2.7-2 3.6-3.5s1.4-3.1 1.4-4.8c0-1.7-.4-3.4-1.3-4.9s-2.2-2.7-3.7-3.4L126.7 55.6c-1.5-.8-3.1-1.2-4.8-1.2s-3.3 .4-4.8 1.2L17 113.6c-1.5 .8-2.7 2-3.6 3.5s-1.4 3.1-1.4 4.8L12 237c0 1.7 .4 3.4 1.3 4.9s2.2 2.7 3.7 3.4l22.4 12.8c1.5 .9 3.2 1.3 5 1.2 2.4 .1 4.8-.8 6.6-2.5 1.8-1.9 2.8-4.4 2.9-7l0-85.3 115.9 67.9c.6 .3 1.4 .4 2.1 .4zM323.4 377.7c-1.7 .1-3.4 .5-5 1.2l-74.5 43.1 0-134.2c0-2.9-2.9-5.8-6.2-4.6-9.4 2.8-19.5 3-29 .4-.7-.2-1.5-.2-2.2-.1s-1.4 .4-2 .9-1.1 1-1.4 1.7-.5 1.4-.5 2.1l0 133.3-74.5-43.1c-1.5-.9-3.2-1.3-5-1.2-2.5 0-4.9 1-6.7 2.8s-2.8 4.2-2.8 6.7l0 26.1c0 1.7 .4 3.4 1.3 4.9s2.2 2.7 3.7 3.4l100.2 57.6c1.5 .9 3.2 1.3 5 1.2 1.7 0 3.4-.4 5-1.2l100.2-57.6c1.5-.8 2.7-2 3.6-3.5s1.4-3.1 1.4-4.8l0-26.1c-.8-4.6-5.4-9.1-10.4-9.1zM286.1 78a23 23 0 1 0 0-46 23 23 0 1 0 0 46zm63.6-10.1a23 23 0 1 0 0 46 23 23 0 1 0 0-46zm63.2 83.7a23 23 0 1 0 0-46 23 23 0 1 0 0 46zm-63.2-9.2a23 23 0 1 0 0 46 23 23 0 1 0 0-46zm-63.6 83.2c4.5 0 9-1.3 12.8-3.9s6.7-6.1 8.5-10.3 2.2-8.8 1.3-13.3-3.1-8.6-6.3-11.8-7.3-5.4-11.8-6.3-9.1-.4-13.3 1.3-7.8 4.7-10.3 8.5-3.9 8.2-3.9 12.8c0 3 .6 6 1.8 8.8s2.9 5.3 5 7.5 4.7 3.8 7.5 5 5.8 1.8 8.8 1.8l0 0zM224 262c4.5 0 9-1.4 12.8-3.9s6.7-6.1 8.5-10.3 2.2-8.8 1.3-13.3-3.1-8.6-6.3-11.8-7.3-5.4-11.8-6.3-9.1-.4-13.3 1.3-7.8 4.7-10.3 8.5-3.9 8.2-3.9 12.8c0 3 .6 6 1.7 8.8s2.8 5.3 5 7.5 4.7 3.8 7.5 5 5.8 1.8 8.8 1.8l0 0zm188.9-82.4c-4.6 0-9 1.3-12.8 3.9s-6.7 6.1-8.5 10.3-2.2 8.8-1.3 13.3 3.1 8.6 6.3 11.8 7.3 5.4 11.8 6.3 9.1 .4 13.3-1.3 7.8-4.7 10.3-8.5 3.9-8.2 3.9-12.8c0-6.1-2.4-11.9-6.7-16.3s-10.2-6.7-16.3-6.7l0 0zm0 72.3c-4.6 0-9 1.3-12.8 3.9s-6.7 6.1-8.5 10.3-2.2 8.8-1.3 13.3 3.1 8.6 6.3 11.8 7.3 5.4 11.8 6.3 9.1 .4 13.3-1.3 7.8-4.7 10.3-8.5 3.9-8.2 3.9-12.8c0-6.1-2.4-11.9-6.7-16.3s-10.2-6.7-16.3-6.7l0 0z\"],\n \"playstation\": [576, 512, [], \"f3df\", \"M571 372.3c-11.3 14.2-38.8 24.3-38.8 24.3l-205.1 73.6 0-54.3 150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9l-100.5 35.5 0-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9 .6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zM346.6 279.8l0-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4l0 347.9-93.8-29.8 0-414.7c39.9 7.4 98 24.9 129.2 35.4 79.5 27.3 106.4 61.3 106.4 137.8 0 74.5-46 102.8-104.5 74.6zM43.3 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8 0 54.5-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4s39.1 3.3 56.2-2.9l46.4-16.9 0 48.8c-51.6 9.3-101.4 7.3-153.9-10z\"],\n \"microblog\": [448, 512, [], \"e01a\", \"M399.8 362.2c29.5-34.7 47.1-78.3 47.1-125.8 0-113-99.6-204.4-222.5-204.4S2 123.5 2 236.4 101.6 440.9 224.5 440.9c27 0 53.9-4.5 79.4-13.4 1.4-.5 3-.5 4.5-.1s2.7 1.4 3.6 2.6c18.6 25.1 47.6 42.7 79.9 49.9 1.1 .2 2.3 0 3.3-.6s1.7-1.6 1.9-2.8c.1-.6 .1-1.3 0-1.9s-.4-1.2-.8-1.7c-12.3-16-18.7-35.8-18-56s8.4-39.5 21.7-54.7l-.2 .1zM330 212.4l-57.3 43.5 20.8 68.9c.4 1.3 .4 2.7-.1 4s-1.2 2.4-2.3 3.2-2.4 1.2-3.8 1.2-2.7-.4-3.8-1.2l-59.1-41-59.1 41.1c-1.1 .8-2.4 1.2-3.8 1.2s-2.7-.4-3.8-1.2-1.9-1.9-2.3-3.2-.5-2.7-.1-4l20.8-68.9-57.3-43.5c-1.1-.8-1.9-1.9-2.3-3.2s-.4-2.7 0-4 1.2-2.4 2.3-3.2 2.4-1.3 3.7-1.3l71.9-1.5 23.7-67.9c.4-1.3 1.3-2.4 2.4-3.2s2.4-1.2 3.8-1.2 2.7 .4 3.8 1.2 1.9 1.9 2.4 3.2l23.7 67.9 71.9 1.5c1.4 0 2.7 .4 3.8 1.2s1.9 1.9 2.3 3.2 .4 2.7 0 4-1.2 2.4-2.3 3.3l0 0z\"],\n \"gitkraken\": [576, 512, [], \"f3a6\", \"M557.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7l0-123.7c7.9-1.5 15.5-3.6 23-6.2l0 104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4l0-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9l0-14.7c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0-41.2 3-129.1 126.7-129.1 164.7l0 14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5l0 92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8l0-104c7.6 2.5 15.1 4.6 23 6.2l0 123.7c-129.8-17-230.2-128.1-230.2-262.7 0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6-11.8 31.5-18.3 65.6-18.3 101.3 0 155.1 122.6 281.6 276.3 287.8l0-145.9c6.8 .4 15 .5 23.4 0l0 145.8c153.7-6.1 276.3-132.6 276.3-287.7 0-35.7-6.5-69.8-18.3-101.4zM357.9 322.9a23.7 23.7 0 1 1 0-47.4 23.7 23.7 0 1 1 0 47.4zM218.1 275.4a23.7 23.7 0 1 1 0 47.4 23.7 23.7 0 1 1 0-47.4z\"],\n \"telegram\": [512, 512, [62462, \"telegram-plane\"], \"f2c6\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM371 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5c-2.2 .5-37.1 23.5-104.6 69.1-9.9 6.8-18.9 10.1-26.9 9.9-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3 .6-4.5 6.7-9 18.4-13.7 72.3-31.5 120.5-52.3 144.6-62.3 68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9 2 1.7 3.2 4.1 3.5 6.7 .5 3.2 .6 6.5 .4 9.8z\"],\n \"itunes-note\": [384, 512, [], \"f3b5\", \"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2 .8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6 .2 344.5 1.1 326-1.8 338.5z\"],\n \"less\": [640, 512, [], \"f41d\", \"M613.2 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2l-20.5 0 0 24.2 6.3 0c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3l0 1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6l0 .5-6.3 0 0 25.2 20.5 0c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6l0-27.3c-20.5-.7-27.3-12.3-27.3-23.3zM507.6 251c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zM148.7 310.4c-3.7 0-8.4-3.2-8.4-13.1l0-178.2-74.6 0c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6l0 27.3c20.5 .5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2l20.5 0 0-24.2-6.3 0c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3l0-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1l14.1 0 0 150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1 .8-4.6 .8-6.2 .8zM380.4 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9L271 301.5c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2l95.2 0c.5-3.7 1.6-11 1.6-19.4 .6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31l-56.8 0z\"],\n \"firefox\": [512, 512, [], \"f269\", \"M503.5 241.5c-.1-1.6-.2-3.1-.2-4.7l0-.1-.4-4.7 0-.1c-1.3-13.9-3.7-27.7-7.3-41.2 0-.1 0-.1-.1-.2l-1.1-4c-.1-.2-.1-.5-.2-.6-.4-1.2-.7-2.5-1.1-3.7-.1-.2-.1-.6-.2-.8-.4-1.2-.7-2.4-1.1-3.5-.1-.4-.2-.6-.4-1-.4-1.2-.7-2.3-1.2-3.5l-.4-1.1c-.4-1.1-.8-2.3-1.2-3.4-.1-.3-.2-.7-.4-1-.5-1.1-.8-2.3-1.3-3.4-.1-.2-.2-.6-.4-.8-.5-1.2-1-2.3-1.4-3.5 0-.1-.1-.2-.1-.4-1.6-3.8-3.2-7.7-5-11.4l-.4-.7c-.5-1-.8-1.8-1.3-2.6-.2-.5-.5-1.1-.7-1.6-.4-.8-.8-1.6-1.2-2.4-.4-.6-.6-1.2-1-1.8s-.8-1.4-1.2-2.3c-.4-.6-.7-1.3-1.1-1.9s-.8-1.4-1.2-2.2c-.4-.7-.8-1.4-1.2-2-.4-.7-.8-1.3-1.2-2s-.8-1.3-1.2-2-.8-1.3-1.2-1.9-.8-1.4-1.3-2.2c-.4-.6-.8-1.2-1.2-1.8l-1.4-2.1c-.4-.6-.8-1.2-1.2-1.8-.5-.7-1.1-1.6-1.6-2.3-.4-.5-.7-1.1-1.1-1.6l-1.8-2.5c-.4-.5-.6-.8-1-1.3-1-1.3-1.8-2.5-2.8-3.7-7.2-9.4-15-18.3-23.5-26.6-5.7-6-11.8-11.5-18.3-16.7-4-3.5-8.2-6.7-12.5-9.8-7.7-5.8-16-10.8-24.6-15.1-2.4-1.3-4.8-2.5-7.2-3.7-17.7-8.6-36.3-15.2-55.4-19.6-1.9-.4-3.8-.8-5.6-1.2l-.1 0c-1-.1-1.8-.4-2.8-.5-12.5-2.4-25.2-3.7-38-4l-10.6 0c-15.3 .2-30.5 1.9-45.5 5-33.6 7.1-63.2 21.2-82.9 39-1.1 1-1.9 1.7-2.4 2.2l-.5 .5 .1 0c0 0 .1 0 .1 0s0-.1 0-.1l-.1 .1c.1-.1 .1-.1 .2-.1 14.6-8.8 34.9-16 49.4-19.6l5.9-1.4c.4-.1 .8-.1 1.2-.2 1.7-.4 3.4-.7 5.2-1.1 .2 0 .6-.1 .8-.1 64.2-11.7 132.6 7.5 180.2 53 10.3 9.8 19.3 20.8 26.9 32.8 30.4 49.2 27.5 111.1 3.8 147.6-34.4 53-111.4 71.3-159 24.8-16-15.5-25.2-36.7-25.6-59-.2-10.7 2-21.2 6.2-31 1.7-3.8 13.1-25.7 18.2-24.6-13.1-2.8-37.5 2.6-54.7 28.2-15.4 22.9-14.5 58.2-5 83.3-6-12.4-10.1-25.6-12.1-39.2-12.2-82.6 43.3-153 94.3-170.5-27.5-24-96.5-22.3-147.7 15.4-29.9 22-51.2 53.2-62.5 90.4 1.7-20.9 9.6-52.1 25.8-83.9-17.2 8.9-39 37-49.8 62.9-15.6 37.4-21 82.2-16.1 124.8 .4 3.2 .7 6.4 1.1 9.6 19.9 117.1 122 206.4 244.8 206.4 137.1 0 248.3-111.2 248.3-248.4-.1-4.5-.2-9.1-.5-13.5z\"],\n \"kaggle\": [320, 512, [], \"f5fa\", \"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5l-69.2 0c-3.5 0-7 1.8-10.5 5.3l-132.3 133.7 0-306c0-5-2.5-7.5-7.5-7.5L21.5 0C16.5 0 14 2.5 14 7.5l0 497c0 5 2.5 7.5 7.5 7.5l51.9 0c5 0 7.5-2.5 7.5-7.5l0-109 30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3l66.9 0c3.5 0 5.5-1 6-3l-1.4-7.6z\"],\n \"facebook-messenger\": [512, 512, [], \"f39f\", \"M256.6 8c-140 0-248.6 102.3-248.6 240.6 0 72.3 29.7 134.8 78.1 177.9 8.3 7.5 6.6 11.9 8 58.2 .1 3.2 1 6.4 2.6 9.2s3.9 5.2 6.7 6.9 5.9 2.8 9.1 3 6.5-.3 9.5-1.6C174.9 479 175.6 477.2 184.6 479.6 337.8 521.8 504 423.7 504 248.6 504 110.3 396.6 8 256.6 8zM405.8 193.1l-73 115.6c-2.8 4.3-6.4 8.1-10.6 11s-9.1 4.8-14.1 5.8-10.3 .8-15.3-.4-9.7-3.4-13.8-6.4l-58.1-43.5c-2.6-1.9-5.8-3-9-3s-6.4 1.1-9 3l-78.4 59.4c-10.5 7.9-24.2-4.6-17.1-15.7l73-115.6c2.8-4.3 6.4-8.1 10.6-11s9.1-4.8 14.1-5.8 10.3-.8 15.3 .4 9.7 3.4 13.9 6.4l58.1 43.5c2.6 1.9 5.8 3 9 3s6.4-1.1 9-3l78.4-59.4c10.4-8 24.1 4.5 17.1 15.6z\"],\n \"audible\": [640, 512, [], \"f373\", \"M640 199.9l0 54-320 200-320-199.9 0-54 320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6s-135.5 36.7-172.6 92.4l.3 0c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zM225.4 290.7c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1C235.4 56.8 421.8 84.7 521.1 223.2l.7 1 48.8-30.4c-53.5-81.7-145.8-135.7-250.7-135.7-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6z\"],\n \"patreon\": [512, 512, [], \"f3d9\", \"M490 153.8c-.1-65.4-51-119-110.7-138.3-74.2-24-172-20.5-242.9 12.9-85.8 40.5-112.8 129.3-113.8 217.8-.8 72.8 6.4 264.4 114.6 265.8 80.3 1 92.3-102.5 129.5-152.3 26.4-35.5 60.5-45.5 102.4-55.9 72-17.8 121.1-74.7 121-150l-.1 0z\"],\n \"vnv\": [640, 512, [], \"f40b\", \"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192l32.8 0c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1l32.8 0c20.8 0 10.4 18.1 10.4 18.1L186.4 321.6S174.2 352 140 352l-35.1 0zm395 0c-34.1 0-46.4-30.4-46.4-30.4L397.6 210.1S387.2 192 408 192l32.8 0c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1l32.9 0c20.8 0 10.4 18.1 10.4 18.1L581.5 321.6S569.3 352 535.1 352l-35.2 0zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5S450.3 352 429.5 352l-32.8 0c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1l-32.9 0c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5S268.3 192 302.5 192l35.1 0z\"],\n \"pagelines\": [384, 512, [], \"f18c\", \"M384.1 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4 .5 1.6 .5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"],\n \"amazon\": [448, 512, [], \"f270\", \"M257.7 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56s-32.3-25.3-32.3-52.8l0-147.1C341.5 89 317 32 229.2 32 141.2 32 94.5 87 94.5 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8l0 40.6zM393.7 413c-7.7 10-70 67-174.5 67S34.7 408.5 10.2 379c-6.8-7.7 1-11.3 5.5-8.3 73.3 44.5 187.8 117.8 372.5 30.3 7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"],\n \"envira\": [448, 512, [], \"f299\", \"M0 32c477.6 0 366.6 317.3 367.1 366.3l80.9 81.7-26 0-70.4-71.2C312.6 413 227.2 443.3 137.2 371.8 47 300.3 52 214.7 0 32zM79.7 78c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"],\n \"linode\": [448, 512, [], \"f2b8\", \"M366.3 186.9l-59.5 36.9-.8 36.9-29.3-19.3-39.4 24.3c2.2 55.2 2.5 59.3 2.5 59.5l-97.2 65.4-15.1-104.7 108.1-62-40.2-26-75.4 38.5-21-143.3 129-49.4-91.3-43.6-125.7 39.4 27.7 134.9 41.9 32.7-31.8 15.1 20.9 101.4 29.3 27.7-20.9 12.6 16.8 78.8 66.2 69.6c-10.8-74.8-11.7-78.6-11.7-78.8l77.9-55.3C244 365.4 242.3 367 242.3 367l.8 24.3 33.5 28.5-.8-77.1 46.9-33.5 26.8-18.4-2.5 36 25.1 17.6 6.7-74.6 58.7-43.6-71.2-39.4z\"],\n \"accusoft\": [640, 512, [], \"f369\", \"M322.1 252l0-1-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7 .8 0 114.5-36.6 114.5-36.6 .5-.6-.1-.1 .6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zM482.2 372.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8 .5-116.5 .6-19.2 .1-32.9-.3-19.2 16.9 7.7 9.5 234.2 299.7 239.9 306.6zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1 .2-9.6 .8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6 .2 2.5 2 2.6 4.6 3.5 2.7 .8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"],\n \"erlang\": [640, 512, [], \"f39d\", \"M87.2 53.5l-87.2 0 0 405 100.4 0c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9 .1-85.1 33.5-89.2 83.2l169.9 0c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6l.3 0-.1-.1-.2 .1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7 .5 6 .5 11.7 0 24.1l-372.4 0c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8l80.8 0 0-405-83.6 0z\"],\n \"cc-discover\": [576, 512, [], \"f1f2\", \"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1l-4.9 0 0 24.9 4.7 0c10.3 0 15.8-4.4 15.8-12.8zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM483.9 170.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4-19.6 0-22.2-32.8-2.2 0 0 32.8-16 0 0-82zM428 171l45.3 0 0 14-29.3 0 0 18.2 28.3 0 0 13.8-28.3 0 0 22.2 29.3 0 0 13.8-45.3 0 0-82zm-68.7 0l21.9 55.2 22.2-55.2 17.5 0-35.5 84.2-8.6 0-35-84.2 17.5 0zm-55.9 86.2a44.6 44.6 0 1 1 0-89.2 44.6 44.6 0 1 1 0 89.2zm-49.3-83.1l0 19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2l0 19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253l-23.4 0 0-82 23.4 0c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0l-16 0 0-82 16 0 0 82zM544 433c0 8.2-6.8 15-15 15l-401 0c189.6-35.6 382.7-139.2 416-160l0 145zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6l-4.2 0 0 54.2 4.2 0c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"],\n \"safari\": [512, 512, [], \"f267\", \"M274.7 274.7L237.3 237.3 166 346 274.7 274.7zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM411.8 182.8l14.8-6.1c1-.4 2-.6 3.1-.6s2.1 .2 3.1 .6 1.8 1 2.6 1.7 1.3 1.6 1.7 2.6 .6 2 .6 3.1-.2 2.1-.6 3.1-1 1.9-1.7 2.6-1.6 1.3-2.6 1.7L418 197.6c-2 .8-4.2 .8-6.1 0s-3.5-2.4-4.3-4.3-.8-4.2 0-6.1 2.4-3.5 4.3-4.3zM314.4 94l6.1-14.8c.8-2 2.4-3.5 4.3-4.3s4.2-.8 6.1 0 3.5 2.4 4.3 4.3 .8 4.2 0 6.1l-6.1 14.8c-.8 2-2.4 3.5-4.3 4.3s-4.2 .8-6.1 0c-1-.4-1.9-1-2.6-1.7s-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1zM256 60c2.1 0 4.2 .8 5.7 2.3S264 65.9 264 68l0 16c0 2.1-.8 4.2-2.3 5.7s-3.5 2.3-5.7 2.3-4.2-.8-5.7-2.3-2.3-3.5-2.3-5.7l0-16c0-2.1 .8-4.2 2.3-5.7S253.9 60 256 60zM181 74.9c1-.4 2-.6 3.1-.6s2.1 .2 3.1 .6 1.9 1 2.6 1.7 1.3 1.6 1.7 2.6L197.6 94c.4 1 .7 2 .7 3.1s-.2 2.1-.6 3.1-1 1.9-1.7 2.6-1.6 1.4-2.6 1.8-2 .6-3.1 .6-2.1-.2-3.1-.6-1.9-1-2.6-1.8-1.3-1.7-1.7-2.7l-6.1-14.8c-.8-2-.8-4.2 0-6.1s2.4-3.5 4.3-4.3zm-63.6 42.5c1.5-1.5 3.5-2.3 5.7-2.3s4.2 .8 5.7 2.3L140 128.7c1.5 1.5 2.3 3.5 2.3 5.6s-.8 4.1-2.3 5.6c-1.5 1.5-3.5 2.3-5.7 2.3s-4.2-.8-5.7-2.3l-11.3-11.3c-1.5-1.5-2.3-3.5-2.3-5.6s.8-4.1 2.3-5.6l0 0zM60 256c0-2.1 .8-4.2 2.3-5.7S65.9 248 68 248l16 0c2.1 0 4.2 .8 5.7 2.3s2.3 3.5 2.3 5.7-.8 4.2-2.3 5.7-3.5 2.3-5.7 2.3l-16 0c-2.1 0-4.2-.8-5.7-2.3S60 258.1 60 256zm40.2 73.2l-14.8 6.1c-1 .4-2 .6-3.1 .6s-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1 1-1.9 1.7-2.6 1.6-1.3 2.6-1.7L94 314.4c2-.8 4.2-.8 6.1 0s3.5 2.4 4.3 4.3 .8 4.2 0 6.1-2.4 3.5-4.3 4.3zm4.3-136c-.4 1-1 1.9-1.7 2.6s-1.6 1.3-2.6 1.7-2 .6-3.1 .6-2.1-.2-3.1-.6l-14.8-6.1c-2-.8-3.5-2.4-4.3-4.3s-.8-4.2 0-6.1 2.4-3.5 4.3-4.3 4.2-.8 6.1 0l14.8 6.1c2 .8 3.5 2.4 4.3 4.3s.8 4.2 0 6.1l0 0zM197.6 418l-6.1 14.8c-.4 1-1 1.9-1.7 2.6s-1.6 1.3-2.6 1.7-2 .6-3.1 .6-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1l6.1-14.8c.4-1 1-1.9 1.7-2.7s1.6-1.4 2.6-1.8 2-.6 3.1-.6 2.1 .2 3.1 .6 1.9 1 2.6 1.8 1.3 1.7 1.7 2.6 .6 2 .6 3.1-.2 2.1-.7 3.1zM264 444c0 2.1-.8 4.2-2.3 5.7s-3.5 2.3-5.7 2.3-4.2-.8-5.7-2.3-2.3-3.5-2.3-5.7l0-16c0-2.1 .8-4.2 2.3-5.7s3.5-2.3 5.7-2.3 4.2 .8 5.7 2.3 2.3 3.5 2.3 5.7l0 16zm67-6.9c-1 .4-2 .6-3.1 .6s-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6L314.4 418c-.8-2-.8-4.2 0-6.1s2.4-3.5 4.3-4.3 4.2-.8 6.1 0 3.5 2.4 4.3 4.3l6.1 14.8c.8 2 .8 4.2 0 6.1s-2.4 3.5-4.3 4.3zm63.6-42.5c-1.5 1.5-3.5 2.3-5.7 2.3s-4.2-.8-5.7-2.3L372 383.3c-1.5-1.5-2.3-3.5-2.3-5.6s.8-4.1 2.3-5.6 3.5-2.3 5.7-2.3 4.2 .8 5.7 2.3l11.3 11.3c1.5 1.5 2.3 3.5 2.3 5.6s-.8 4.1-2.3 5.6l0 0zM286.2 286.2L110.3 401.7 225.8 225.8 401.7 110.3 286.2 286.2zM437.1 331c-.8 2-2.4 3.5-4.3 4.3s-4.2 .8-6.1 0l-14.8-6.1c-2-.8-3.5-2.4-4.3-4.3s-.8-4.2 0-6.1c.4-1 1-1.9 1.7-2.6s1.6-1.3 2.6-1.7 2-.6 3.1-.6 2.1 .2 3.1 .6l14.8 6.1c2 .8 3.5 2.4 4.3 4.3s.8 4.2 0 6.1zm6.9-67l-16 0c-2.1 0-4.2-.8-5.7-2.3s-2.3-3.5-2.3-5.7 .8-4.2 2.3-5.7 3.5-2.3 5.7-2.3l16 0c2.1 0 4.2 .8 5.7 2.3s2.3 3.5 2.3 5.7-.8 4.2-2.3 5.7-3.5 2.3-5.7 2.3z\"],\n \"space-awesome\": [512, 512, [], \"e5ac\", \"M96 256l32 0 0 256-128 0 0-160 32 0 0-32 32 0 0-32 32 0 0-32zm416 96l0 160-128 0 0-256 32 0 0 32 32 0 0 32 32 0 0 32 32 0zM320 64l32 0 0 384-32 0 0-32-128 0 0 32-32 0 0-384 32 0 0-32 32 0 0-32 64 0 0 32 32 0 0 32zm-32 64l-64 0 0 64 64 0 0-64z\"],\n \"node\": [640, 512, [], \"f419\", \"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4 .1l14.8 8.8c.5 .3 1.3 .3 1.8 0L375 408c.5-.3 .9-.9 .9-1.6l0-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6 .3-.9 1-.9 1.6l0 66.7c0 .6 .4 1.2 .9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8l0-65.9c0-.9 .7-1.7 1.7-1.7l7.3 0c.9 0 1.7 .7 1.7 1.7l0 65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5l0-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5l0 66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zM363 386.2c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6 .2 .8 .8 1.3 1.6 1.3l7.5 0c.5 0 .9-.2 1.2-.5 .3-.4 .5-.8 .4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4l-7.5 0c-.9 0-1.7 .7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3s4.2 9.4 9.3 9.4c5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2l-2.6 0c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1l-2.2 0 0 5-2.4 0 0-12.5 4.3 0c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7 .1 1.8 1.2 2.1 2.8 .1 1 .3 2.7 .6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7l-2 0 0 3.5 1.9 0c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4L72.3 149.3c-1-.6-2.2-.9-3.4-1l-.6 0c-1.2 0-2.3 .4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3 .7 2.5 1.8 3.2s2.5 .7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4l0-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1s2.6 .3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4l0 44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1 .7 2.6 .7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3l0 176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4l0-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2l0-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6 .3-.9 .9-.9 1.6l0 24.3c0 .7 .4 1.3 .9 1.6l21 12.1c.6 .3 1.3 .3 1.8 0l21-12.1c.6-.3 .9-.9 .9-1.6l0-24.3 .1 0zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4l0-17.1c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4l0 70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2l0-22.2c0-1.3 .7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0L592.1 213c1.1 .7 1.9 1.9 1.9 3.2l0 17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4 .3-.7 .7-.7 1.2l0 13.6c0 .5 .3 1 .7 1.2l11.8 6.8c.4 .3 1 .3 1.4 0L584 235c.4-.3 .7-.7 .7-1.2l0-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zM304.8 262.5l0-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4l0 70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7 .1-.5 .2-1.1 .2-1.7zM230.5 137.6l-.8 .5 1.1 0-.3-.5zm76.2 130.2l-.4-.7 0 .9 .4-.2z\"],\n \"codepen\": [512, 512, [], \"f1cb\", \"M502.3 159.7l-234-156c-8-4.9-16.5-5-24.6 0l-234 156c-6 4-9.7 11.1-9.7 18.3L0 334c0 7.1 3.7 14.3 9.7 18.3l234 156c8 4.9 16.5 5 24.6 0l234-156c6-4 9.7-11.1 9.7-18.3l0-156c0-7.1-3.7-14.3-9.7-18.3zM278 63.1l172.3 114.9-76.9 51.4-95.4-63.7 0-102.6zm-44 0L234 165.7 138.6 229.4 61.7 178 234 63.1zM44 219.1L99.1 256 44 292.8 44 219.1zM234 448.8L61.7 334 138.6 282.6 234 346.3 234 448.8zM256 308l-77.7-52 77.7-52 77.7 52-77.7 52zm22 140.9l0-102.6 95.4-63.7 76.9 51.4-172.3 114.9zm190-156l-55.1-36.9 55.1-36.9 0 73.7z\"],\n \"ravelry\": [512, 512, [], \"f2d9\", \"M498.6 234.2c-1.2-10.3-1.7-20.8-3.7-31-2.5-12.4-5.7-24.6-9.6-36.6-6.8-20.9-17.2-40.3-30.9-57.5-5.9-7.6-12.1-14.8-18.8-21.7-14.1-14-30-26.1-47.1-36.1-17.8-10.6-36.8-18.9-56.7-24.7-11-3.1-22.3-5.4-33.5-7.6-6.8-1.3-13.7-1.7-20.6-2.5-.3 0-.6-.4-.9-.6-10.8 0-21.5 0-32.3 0-2.4 .4-4.8 .9-7.2 1.2-11.6 1.2-23.1 3.6-34.3 7.1-13.8 4.1-27.1 9.6-39.8 16.4-13.3 7-26.1 15.1-38.1 24.2-6.2 4.6-12.3 9.4-18 14.5-10.2 9.2-20.4 18.4-29.9 28.3-12.8 13.3-24.1 28.1-33.6 44-8.6 14-15.5 29-20.5 44.6-7.2 22.7-10.3 46.6-9.2 70.3 .6 13.5 2 26.9 4.4 40.2 3.4 18.4 9 36.3 16.7 53.3 13.6 29.2 32.1 51.5 50.4 67.9 12.8 11.6 26.8 21.9 41.8 30.6 17.7 10.4 36.4 18.9 55.9 25.3 13.3 4.3 26.9 7.6 40.6 9.8 6.1 1 12.3 1.3 18.4 1.9 .4 .1 .8 .3 1.2 .6l32.3 0c2.5-.4 5-.9 7.5-1.1 16.3-1.3 32.1-5.3 47.5-10.7 17.2-5.9 33.7-13.9 49-23.8 9.7-6.4 19.4-13.1 28.7-20.1 5.8-4.3 11-9.5 16.3-14.5 4-3.7 7.8-7.6 11.5-11.5 12-12.7 22.6-26.6 31.4-41.6 9.5-16 17.4-32.9 22.3-50.9 2.9-10.4 4.9-21 7-31.7 1-5.3 1.3-10.7 1.9-16.1 0-.3 .4-.6 .6-.9l0-37.1c-.2-.6-.4-1.2-.6-1.8zm-161.1-1.2s-16.6-3-28.5-3c-27.2 0-33.6 14.9-33.6 37l0 93.7-73.5 0 0-190.7 73.5 0 0 31.9c8.9-26.8 26.8-36.2 62-36.2l0 67.3z\"],\n \"alipay\": [448, 512, [], \"f642\", \"M377.7 32L70.3 32C31.4 32 0 63.4 0 102.3L0 409.7C0 448.6 31.4 480 70.3 480l307.5 0c38.5 0 69.8-31.1 70.3-69.6-46-25.6-110.6-60.3-171.6-88.4-32.1 44-84.1 81-148.6 81-70.6 0-93.7-45.3-97-76.4-4-39 14.9-81.5 99.5-81.5 35.4 0 79.4 10.2 127.1 25 16.5-30.1 26.5-60.3 26.5-60.3l-178.2 0 0-16.7 92.1 0 0-31.2-109.4 0 0-19 109.4 0 0-50.4 50.9 0 0 50.4 109.4 0 0 19-109.4 0 0 31.2 88.8 0s-15.2 46.6-38.3 90.9c48.9 16.7 100 36 148.6 52.7l0-234.4c.2-38.7-31.2-70.3-69.9-70.3zM47.3 323c1 20.2 10.2 53.7 69.9 53.7 52.1 0 92.6-39.7 117.9-72.9-44.6-18.7-84.5-31.4-109.4-31.4-67.4 0-79.4 33.1-78.4 50.6z\"],\n \"cc-amex\": [576, 512, [], \"f1f3\", \"M0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-1.1-61.7 0-31.9-35.1-31.9 35.1-203.7 0 0-163.8-65.8 0 81.7-184.7 78.6 0 28.1 63.2 0-63.2 97.2 0 16.9 47.6 17-47.6 75.5 0 0-2.4c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432zm440.4-21.7l42.2-46.3 42 46.3 51.4 0-68-72.1 68-72.1-50.6 0-42 46.7-41.5-46.7-51.4 0 67.5 72.5-67.4 71.6 0-33.1-83 0 0-22.2 80.9 0 0-32.3-80.9 0 0-22.4 83 0 0-33.1-122 0 0 143.2 171.8 0zm96.3-72l39.3 41.9 0-83.3-39.3 41.4zm-36.3-92l36.9-100.6 0 100.6 38.7 0 0-143.3-60.2 0-32.2 89.3-31.9-89.3-61.2 0 0 143.1-63.2-143.1-51.2 0-62.4 143.3 43 0 11.9-28.7 65.9 0 12 28.7 82.7 0 0-100.3 36.8 100.3 34.4 0zM282 185.4l19.5-46.9 19.4 46.9-38.9 0z\"],\n \"pied-piper-alt\": [576, 512, [], \"f1a8\", \"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9 27.7-5.7zM379.9 443.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7 6.1-12.6 11.8-25.8 12.4-39.9l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3 0-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3 .9 .6-.6 .3-1.4zM496.3 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9 .6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zM300.1 428.2l0 27.2 11.8-3.4-2.9-23.8-8.9 0zM231.4 277.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"],\n \"letterboxd\": [640, 512, [], \"e62d\", \"M521.3 128C586.9 128 640 181.1 640 246.6S586.9 365.2 521.3 365.2c-42.5 0-79.7-22.3-100.7-55.8 11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l.8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zM320 128c42.5 0 79.7 22.3 100.7 55.8-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0c-42.5 0-79.7-22.3-100.7-55.8 11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l.8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zm-201.3 0c42.5 0 79.7 22.3 100.7 55.8-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0C53.1 365.1 0 312.1 0 246.6S53.1 128 118.7 128z\"],\n \"opera\": [512, 512, [], \"f26a\", \"M321.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3-131.5-6.1-236.1-114.6-236.1-247.7 0-137 111-248 248-248l.8 0c63.1 .3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zM423.7 430.4c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"],\n \"weibo\": [512, 512, [], \"f18a\", \"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7c-106.3 0-214.8-51.4-214.8-136.3 0-44.3 28-95.4 76.3-143.7 99.7-99.7 203.2-100.9 173.6-5.7-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zM358.5 300.4c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8 .3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4 .6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"],\n \"readme\": [576, 512, [], \"f4d5\", \"M528.3 46.5l-139.8 0c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3L48 46.5C21.5 46.5 0 68 0 94.5L0 340.3c0 26.5 21.5 48 48 48l89.7 0c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75l89.7 0c26.5 0 48-21.5 48-48l0-245.7c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zM501.3 311.8c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.8c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.8-.1 0z\"],\n \"golang\": [640, 512, [], \"e40f\", \"M400.1 194.8c-10.9 2.8-19.9 4.3-29.1 7.6-7.3 1.9-14.7 3.9-23.2 6.1l-.6 .1c-4.2 1.2-4.6 1.3-8.5-3.2-4.7-5.3-8.1-8.7-14.6-11.9-19.7-9.6-38.7-6.8-56.4 4.7-21.2 13.7-32.1 34-31.8 59.2 .3 25 17.4 45.5 41.2 48.9 22 2.8 39.8-4.6 53.8-20.5 2.1-2.6 4-5.3 6.1-8.3 .8-1 1.5-2.1 2.3-3.3l-60.1 0c-6.5 0-8.1-4-5.9-9.3 4-9.7 11.5-25.9 15.9-34 .9-1.8 3.1-5.8 6.9-5.8l101.1 0c4.5-13.4 11.8-26.9 21.6-39.7 22.7-29.9 49.3-45.5 87.2-52 31.8-5.6 61.7-2.5 88.9 15.9 24.6 16.8 39.8 39.6 43.9 69.5 5.3 42.1-6.9 76.3-36.7 105.6-19.7 20.9-44.9 34-73.9 39.9-5.6 1-11.1 1.5-16.5 2-2.9 .2-5.7 .5-8.5 .8-28.3-.6-54.2-8.7-76-27.4-15.3-13.3-25.9-29.6-31.1-48.5-3.7 7.3-8 14.4-14 21.1-21.6 29.6-50.9 48-87.9 52.9-30.6 4.1-58.9-1.8-83.9-20.5-23-17.5-36.1-40.5-39.5-69.2-4.1-34 5.9-65.4 26.4-91.3 22.2-29 51.5-47.4 87.3-53.9 29.3-6.2 57.3-1.9 82.6 15.3 16.5 10.9 28.3 25.8 36.1 43.9 1.9 2.8 .6 4.4-3.1 5.3zM48.3 200.4c-1.3 0-1.6-.6-.9-1.6l6.6-8.4c.6-.9 2.2-1.5 3.4-1.5l111.3 0c1.2 0 1.5 .9 .9 1.8l-5.3 8.1c-.6 1-2.2 1.9-3.1 1.9l-112.8-.3zM1.2 229.1c-1.2 0-1.6-.7-.9-1.6l6.5-8.4c.6-.9 2.2-1.6 3.4-1.6l142.1 0c1.2 0 1.8 1 1.5 1.9l-2.5 7.5c-.3 1.2-1.5 1.9-2.8 1.9L1.2 229.1zm74.5 26.8c-.6 .9-.3 1.8 .9 1.8l68 .3c.9 0 2.2-.9 2.2-2.1l.6-7.5c0-1.3-.6-2.2-1.9-2.2l-62.3 0c-1.2 0-2.5 .9-3.1 1.9l-4.4 7.8zm501.5-18c-.2-2.6-.3-4.8-.7-7-5.6-30.8-34-48.3-63.6-41.4-29 6.5-47.7 24.9-54.5 54.2-5.6 24.3 6.2 48.9 28.6 58.9 17.2 7.5 34.3 6.6 50.8-1.9 24.6-13.6 38-32.7 39.6-59.5-.1-1.2-.1-2.3-.2-3.3z\"],\n \"stack-exchange\": [448, 512, [], \"f18d\", \"M18.1 332.3l412.7 0 0 22c0 37.7-29.3 68-65.3 68l-19 0-86.8 89.7 0-89.7-176.3 0c-36 0-65.3-30.3-65.3-68l0-22zm0-23.6l412.7 0 0-85-412.7 0 0 85zm0-109.4l412.7 0 0-85-412.7 0 0 85zM365.4 0L83.4 0c-36 0-65.3 30.3-65.3 67.7l0 22.3 412.7 0 0-22.3C430.7 30.3 401.4 0 365.4 0z\"],\n \"gulp\": [256, 512, [], \"f3ae\", \"M210 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zM14 137.8L27.6 263.3c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7 .9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3 .2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5 .9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9 .1-1.8 .3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6 .8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5 .6 .2 1.1 .4 1.6 .7 2.6 1.8 1.6 4.5 .3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3 .5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4 .5 3.2 1.5 1.7 2.2 1.3 4.5 .4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9 .9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2 .4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3 .5-.4 .9-.6 .6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3 .8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7 .2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3 .9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3 .2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8 .1 26.3 .4L167 65.1 228.3 .6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1 .1-57.3 60.5-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2 .8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2 .1-.3l.2-.7c-1.8 .6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7 .1 13.9-1.6 13.9-3.7z\"],\n \"yelp\": [384, 512, [], \"f1e9\", \"M42.9 240.3l99.6 48.6c19.2 9.4 16.2 37.5-4.5 42.7L30.5 358.5c-3.2 .8-6.4 .9-9.6 .3s-6.2-1.8-8.9-3.7-4.9-4.3-6.6-7.1-2.7-5.9-3.1-9.2c-3.3-28.8-.2-57.9 9-85.3 1-3.1 2.7-5.9 4.9-8.3s4.9-4.2 7.9-5.5 6.2-1.8 9.5-1.8 6.4 .9 9.3 2.3zm44 239.3c23.8 16.3 50.9 27.3 79.4 32.1 3.2 .6 6.5 .4 9.6-.4s6.1-2.3 8.6-4.4 4.6-4.6 6-7.5 2.3-6.1 2.4-9.4l3.9-110.8c.7-21.3-25.5-31.9-39.8-16.1L82.8 445.5c-2.2 2.4-3.8 5.3-4.8 8.4s-1.3 6.4-.9 9.6 1.5 6.3 3.1 9.1 3.9 5.2 6.6 7l0 0zM232.2 369.7l58.8 94c1.7 2.8 4 5.1 6.8 6.9s5.8 3 9 3.5 6.5 .3 9.7-.5 6.1-2.4 8.6-4.4c22.3-18.4 40.3-41.5 52.7-67.6 1.4-2.9 2.1-6.1 2.2-9.4s-.6-6.5-1.9-9.4-3.2-5.7-5.6-7.8-5.2-3.9-8.3-4.9L258.7 335.7c-20.3-6.5-37.8 15.8-26.5 33.9zM380.6 237.4c-11.5-26.5-28.7-50.2-50.4-69.3-2.4-2.1-5.3-3.7-8.4-4.7s-6.4-1.2-9.6-.8-6.3 1.5-9.1 3.2-5.1 4-6.9 6.7l-62 91.9c-11.9 17.7 4.7 40.6 25.2 34.7L366 268.6c3.1-.9 6-2.5 8.5-4.6s4.5-4.7 5.8-7.7 2.1-6.2 2.2-9.4-.6-6.5-1.9-9.5l0 0zM62.1 30.2c-2.8 1.4-5.4 3.3-7.4 5.7s-3.6 5.2-4.5 8.2-1.2 6.2-.9 9.3 1.3 6.1 2.9 8.9L156.3 242.6c11.7 20.2 42.6 11.9 42.6-11.4l0-208.3c0-3.1-.6-6.3-1.8-9.2s-3.1-5.5-5.4-7.6-5-3.8-8-4.8-6.1-1.4-9.3-1.2c-39 3.1-77 13.3-112.3 30.1z\"],\n \"gofore\": [448, 512, [], \"f3a7\", \"M348 319.8l-13.2 0 0 34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3c-41.8-42.3-97.1-65.6-156.1-65.6-122.7 0-220.7 100.6-220.7 224 0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zM335.9 207.3l-106.3 0 0 89 118.4 0c33.5 0 60.5 15.1 76 41.8l0-30.6c0-65.2-40.4-100.2-88.1-100.2z\"],\n \"aviato\": [640, 512, [], \"f421\", \"M107.2 283.5l-19-41.8-52.1 0-19 41.8-17.1 0 62.2-131.4 62.2 131.4-17.2 0zm-45-98.1l-19.6 42.5 39.2 0-19.6-42.5zM174.9 287.8l-62.2-131.4 17.1 0 45.1 96 45.1-96 17 0-62.1 131.4zm80.6-4.3l0-127.1 15.5 0 0 127.1-15.5 0zM464.6 167.9l0 115.6-17.3 0 0-115.6-41.2 0 0-11.5 99.6 0 0 11.5-41.1 0zM640 218.8c0 9.2-1.7 17.8-5.1 25.8s-8.2 15.1-14.2 21.1-13.1 10.8-21.1 14.2-16.6 5.1-25.8 5.1-17.8-1.7-25.8-5.1-15.1-8.2-21.1-14.2-10.8-13-14.2-21.1c-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8 8.2-15.1 14.2-21.1 13-8.4 21.1-11.9c8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1 15.1 5.8 21.1 11.9c6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3s-6.2-11.7-10.8-16.3-10-8.2-16.2-10.9-12.8-4-19.8-4-13.6 1.3-19.8 4-11.6 6.3-16.2 10.9-8.2 10-10.8 16.3-3.9 13.1-3.9 20.3c0 7.3 1.3 14 3.9 20.3s6.2 11.7 10.8 16.3 10 8.2 16.2 10.9 12.8 4 19.8 4 13.6-1.3 19.8-4 11.6-6.3 16.2-10.9 8.2-10 10.8-16.3 3.9-13.1 3.9-20.3zm-94.8 96.7l0-6.3 88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2 .3-2 .5-4.2 .6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3 23.8 0 19 41.8 17.1 0-62.2-131.4-62.2 131.4 17.1 0 19-41.8 23.6 0-1.1 26.4s-22.7 6.5-25.5 23.7c-.1 .3-.1 .7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3 .3 4.4 .6 6.5 .3 2.6 .8 5 1.4 7.2l-242.9-13.5 88.9 10 0 6.3c-5.9 .9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4s12.4-5.6 12.4-12.4c0-6.2-4.6-11.3-10.5-12.2l0-5.8 80.3 9 0 5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2s12.4-3.4 12.4-10.2c0-6-4.3-11-9.9-12.1l0-4.9 28.4 3.2 0 23.7-5.9 0 0 13.9 5.9 0 0-6.6 5 0 0 6.6 5.9 0 0-13.8-5.9 0 0-23.2 38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1 .2-.1 12.1 4.1 0 .1-5 5.2 0 .1 5 4.1 0-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3 0 23.2-5.9 0 0 13.8 5.9 0 0-6.6 5 0 0 6.6 5.9 0 0-13.8-5.9 0 0-23.7 28.4-3.2 0 4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2s12.4-3.4 12.4-10.2c0-6-4.3-11-9.9-12.1l0-5.4 80.3-9 0 5.8c-5.9 .9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4s12.4-5.6 12.4-12.4c-.2-6.3-4.7-11.4-10.7-12.3zM328.9 227.9l19.6-42.5 19.6 42.5-17.9 0-1.7-40.3-1.7 40.3-17.9 0z\"],\n \"padlet\": [640, 512, [], \"e4a0\", \"M297.9 0l.1 0c7.6 .1 14.4 4.7 17.5 11.8l132 308.5 .3-.1 .2 .4-2.8 10-42.9 158c-3.7 16.2-19.7 26.3-35.8 22.6l-68.4-15.6-68.5 15.6c-16.1 3.7-32.1-6.4-35.8-22.6l-42.9-158-2.7-10 .1-.4 132.1-308.4c3-7 9.9-11.6 17.5-11.8zM160.1 322.1l131 39.1 6.9 122.5 7.9-121.5 130.6-39.3 .2-.1-131 25.1-8.6-320.2-5.2 320.2-131.8-25.8zM426 222.6l94.4-41 73.8 0-157 247.6 31.6-109-42.8-97.6zm171.5-41.2l41.4 76.2c4 7.5-3.9 15.9-11.6 12.2l-47.6-22.7 17.8-65.7zM127.3 318.5L158.7 430 1.6 154.5c-5.9-10.4 5.5-22 15.9-16.2l151.8 84.2-42.1 96z\"],\n \"edge-legacy\": [448, 512, [], \"e078\", \"M-6 228.2l.4-.5c0 .2 0 .3-.1 .5l-.3 0zm460.6 15.5c0-44-7.8-84.5-28.8-122.4-41-73.4-113.6-113.3-198.6-113.3-139.9-.3-218.3 105.2-232.8 219.7 42.4-61.3 117.1-121.4 220.4-125 0 0 109.7 0 99.4 105l-175.8 0c6.4-37.4 18.5-59 34.3-78.9-75 34.9-121.8 96.1-120.8 188.3 .8 71.5 50.1 144.8 120.8 172 83.4 31.8 192.8 7.2 240.1-21.3l0-104.4c-80.9 56.5-270.9 60.9-272.3-67.6l314.1 0 0-52.1z\"],\n \"square-lastfm\": [448, 512, [\"lastfm-square\"], \"f203\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM210.7 280.8c-1.8-5.5-3.4-10.8-5-15.9-12.9-41.9-21-68.4-58-68.4-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 67.9 0 79.3 35.3 96.4 88.4 1.4 4.4 2.9 8.9 4.4 13.5 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-17.5-16.9-21.2-40-26.4-3.2-.7-6.5-1.4-9.9-2.2-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 2.2 .5 4.5 1 6.7 1.4 31.1 6.5 65.1 13.7 65.1 56.1 .1 36.7-30.7 50.6-76.1 50.6-63.4 0-85.4-28.6-97.1-64.1z\"],\n \"goodreads-g\": [320, 512, [], \"f3a9\", \"M10.8 403.3l2.8 0c12.7 0 25.5 0 38.2 .1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5 .1-5.8 .3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7 20.6-71.1 74.6-118.2 153.9-118.8 61.3-.4 101.5 38.7 116.2 70.3 .5 1.1 1.3 2.3 2.4 1.9l0-61.6 44.3 0c0 280.3 .1 332.2 .1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM157.1 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"],\n \"cc-mastercard\": [576, 512, [], \"f1f1\", \"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7s4.4-11.7 11.2-11.7c6.6 0 11.2 5.2 11.2 11.7zM172.1 398.6c-7.1 0-11.2 5.2-11.2 11.7S165 422 172.1 422c6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7l19.1 0c-.9-5.7-4.4-8.7-9.6-8.7zm107.8 .3c-6.8 0-10.9 5.2-10.9 11.7s4.1 11.7 10.9 11.7 11.2-4.9 11.2-11.7c0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3 .3 .5 .3 1.1 0 .3-.3 .5-.3 1.1-.3 .3-.3 .5-.5 .8-.3 .3-.5 .5-1.1 .5-.3 .3-.5 .3-1.1 .3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8 .3-1.1 0-.5 .3-.8 .5-1.1 .3-.3 .5-.3 .8-.5 .5-.3 .8-.3 1.1-.3 .5 0 .8 0 1.1 .3 .5 .3 .8 .3 1.1 .5s.2 .6 .5 1.1zm-2.2 1.4c.5 0 .5-.3 .8-.3 .3-.3 .3-.5 .3-.8s0-.5-.3-.8c-.3 0-.5-.3-1.1-.3l-1.6 0 0 3.5 .8 0 0-1.4 .3 0 1.1 1.4 .8 0-1.1-1.3zM576 81l0 352c0 26.5-21.5 48-48 48L48 481c-26.5 0-48-21.5-48-48L0 81C0 54.5 21.5 33 48 33l480 0c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zM288 329.4c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zM145.7 405.7c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4l0-4.4-8.2 0 0 36.7 8.2 0c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2l7.9 0c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2l8.2 0 0-23-.2 0zM190.6 392l-7.9 0 0 4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4l0 4.6 7.9 0 0-36.8zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7 .8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1l0-16.6 13.1 0 0-7.4-13.1 0 0-11.2-8.2 0 0 11.2-7.6 0 0 7.3 7.6 0 0 16.7c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4l27.5 0c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zM338.9 392c-4.6-2-11.6-1.8-15.2 4.4l0-4.4-8.2 0 0 36.7 8.2 0 0-20.7c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zM416.2 392l-8.2 0 0 4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9l0 4.6 8.2 0 0-36.8zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4l0-4.4-7.9 0 0 36.7 7.9 0 0-20.7c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9l-7.9 0 0 19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9l0 4.6 7.9 0 0-51.7zm7.6-75.1l0 4.6 .8 0 0-4.6 1.9 0 0-.8-4.6 0 0 .8 1.9 0zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1s-.8-.5-1.1-.8c-.5 0-1.1-.3-1.6-.3-.3 0-.8 .3-1.4 .3-.5 .3-.8 .5-1.1 .8-.5 .3-.8 .8-.8 1.1-.3 .5-.3 1.1-.3 1.6 0 .3 0 .8 .3 1.4 0 .3 .3 .8 .8 1.1 .3 .3 .5 .5 1.1 .8 .5 .3 1.1 .3 1.4 .3 .5 0 1.1 0 1.6-.3 .3-.3 .8-.5 1.1-.8s.5-.8 .8-1.1c.3-.6 .3-1.1 .3-1.4zm3.2-124.7l-1.4 0-1.6 3.5-1.6-3.5-1.4 0 0 5.4 .8 0 0-4.1 1.6 3.5 1.1 0 1.4-3.5 0 4.1 1.1 0 0-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4 .1 138.5-61.9 138.5-138.4z\"],\n \"discourse\": [448, 512, [], \"f393\", \"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2C348.6 479.8 448 377.5 448 255.9S348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392 111.4 317c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"],\n \"black-tie\": [448, 512, [], \"f27e\", \"M0 32l0 448 448 0 0-448-448 0zM316.5 357.2l-92.5 88.7-92.5-88.7 64.5-184-64.5-86.6 184.9 0-64.4 86.6 64.5 184z\"],\n \"square-facebook\": [448, 512, [\"facebook-square\"], \"f082\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l98.2 0 0-145.8-52.8 0 0-78.2 52.8 0 0-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4l0 70.8c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2l0 27.8 83.6 0-14.4 78.2-69.3 0 0 145.8 129 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"],\n \"battle-net\": [512, 512, [], \"f835\", \"M448.8 225.6c26.9 .2 35.6-7.4 38.9-12.4 12.5-16.3-7.1-47.6-52.8-71.3 17.8-33.6 30.1-63.7 36.3-85.3 3.4-11.8 1.1-19 .5-20.3-1.7 10.5-15.8 48.5-48.2 100-25-11.2-56.5-20.1-93.8-23.8-8.9-16.9-34.9-63.9-60.5-88.9-16.8-16.5-30.3-22.6-40.8-23.5l0 0c-13.8-1.6-22.7 5.8-27.4 11-17.2 18.5-24.3 48.9-25 84.1-7.2-12.3-17.2-24.6-28.5-25.9l-.2 0c-20.7-3.5-38.4 29.2-36 81.3-38.4 1.4-71 5.8-93 11.2-9.9 2.4-16.2 7.3-17.8 9.7 1-.4 22.4-9.2 111.6-9.2 5.2 53 29.8 101.8 26 93.2-9.7 15.4-38.2 62.4-47.3 97.7-5.9 22.9-4.4 37.6 .2 47.1 5.6 12.8 16.4 16.7 23.2 18.3 25 5.7 55.4-3.6 86.7-21.1-7.5 12.8-13.9 28.5-9.1 39.3 7.3 19.6 44.5 18.7 88.4-9.4 20.2 32.2 40.1 57.9 55.7 74.1 2.6 2.8 5.5 5.2 8.8 7.1 5.1 3.2 8.6 3.4 8.6 3.4-8.2-6.7-34-38-62.5-91.8 22.2-16 45.7-38.9 67.5-69.3 122.8 4.6 143.3-24.8 148-31.6 14.7-19.9 3.4-57.4-57.3-93.7zM371 331.8c23.8-37.7 30.3-67.8 29.4-92.3 27.9 17.6 47.2 37.6 49.1 58.8 1.1 12.9-8.1 29.1-78.5 33.5zM217.1 387.7c9.8-6.2 19.5-13.1 29.2-20.5 6.7 13.3 13.6 26.1 20.6 38.2-40.6 21.9-68.8 12.8-49.8-17.7zm215-171.3c-10.3-5.3-21.2-10.3-32.4-15 7.9-12.1 15.5-24.4 22.7-36.9 39.1 24.1 45.9 53.2 9.6 51.9zM279.4 398c-5.5-11.4-11-23.5-16.5-36.4 43.2 1.3 62.4-18.7 63.3-20.4 0 .1-25 15.6-62.5 12.2 30.6-25.6 59.1-53.7 85.1-84 8.7-10.2 17-20.6 24.9-31.1-.4-.3-1.5-3-16.5-12-51.7 60.3-102.3 98-132.8 115.9-20.6-11.2-40.8-31.8-55.7-61.5-20-39.9-30-82.4-31.6-116.1 12.3 .9 25.3 2.2 38.8 3.9-22.3 36.8-14.4 63-13.5 64.2 0-.1-1-29.2 20.1-59.6 9 52.5 24 103.8 44.7 152.8 .9-.4 1.8 .9 18.7-8.2-26.3-74.5-33.8-138.2-34-173.4 20-12.4 48.2-19.8 81.6-17.8 44.6 2.7 86.4 15.2 116.3 30.7-7.1 10.4-14.9 21.3-23.3 32.5-20.7-37.7-47.3-43.9-48.9-43.7 .1 0 25.9 14.1 41.5 47.2-37.5-13.8-76.1-24.4-115.3-31.7-13.1-2.4-26.2-4.4-39.4-6-.1 .4-1.8 1.8-2.2 20.3 77.9 14.5 136.6 39.9 167.2 57.2 .7 23.6-7 51.6-25.4 79.6-24.6 37.3-56.4 67.2-84.8 85.4zm27.4-287c-44.6-1.7-73.6 7.4-94.7 20.7 2-52.3 21.3-76.4 38.2-75.3 16.9-4.2 54.9 52.2 56.5 54.6zm-130.7 3.1c.5 12.1 1.6 24.6 3.2 37.3-14.6-.9-28.7-1.3-42.4-1.3-.1 3.2-.1-51 24.7-49.6l.1 0c5.8 1.1 10.6 6.9 14.4 13.6zm-28.1 162c20.8 39.7 43.3 60.6 65.3 72.3-46.8 24.8-77.5 20-84.9 4.5-.2-.2-11.1-15.3 19.7-76.8l0 0z\"],\n \"bimobject\": [448, 512, [], \"f378\", \"M416 32L32 32C14.4 32 0 46.4 0 64L0 448c0 17.6 14.4 32 32 32l384 0c17.6 0 32-14.4 32-32l0-384c0-17.6-14.4-32-32-32zM352 289.4c0 49.4-11.4 82.6-103.8 82.6l-16.9 0c-44.1 0-62.4-14.9-70.4-38.8l-.9 0 0 34.8-64 0 0-232 64 0 0 74.7 1.1 0c4.6-30.5 39.7-38.8 69.7-38.8l17.3 0c92.4 0 103.8 33.1 103.8 82.5l0 35 .1 0zm-64-28.9l0 22.9c0 21.7-3.4 33.8-38.4 33.8l-45.3 0c-28.9 0-44.1-6.5-44.1-35.7l0-19c0-29.3 15.2-35.7 44.1-35.7l45.3 0c35-.2 38.4 12 38.4 33.7z\"]\n };\n\n bunker(function () {\n defineIcons('fab', icons);\n defineIcons('fa-brands', icons);\n });\n\n}());\n(function () {\n 'use strict';\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n } catch (e) {} // eslint-disable-line no-empty\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n }\n function _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n }\n function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n }\n\n var _dt;\n var q = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n slab: {\n \"fa-regular\": \"regular\",\n faslr: \"regular\"\n },\n \"slab-press\": {\n \"fa-regular\": \"regular\",\n faslpr: \"regular\"\n },\n thumbprint: {\n \"fa-light\": \"light\",\n fatl: \"light\"\n },\n whiteboard: {\n \"fa-semibold\": \"semibold\",\n fawsb: \"semibold\"\n },\n notdog: {\n \"fa-solid\": \"solid\",\n fans: \"solid\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"solid\",\n fands: \"solid\"\n },\n etch: {\n \"fa-solid\": \"solid\",\n faes: \"solid\"\n },\n jelly: {\n \"fa-regular\": \"regular\",\n fajr: \"regular\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"regular\",\n fajfr: \"regular\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"regular\",\n fajdr: \"regular\"\n },\n chisel: {\n \"fa-regular\": \"regular\",\n facr: \"regular\"\n },\n utility: {\n \"fa-semibold\": \"semibold\",\n fausb: \"semibold\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"semibold\",\n faudsb: \"semibold\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"semibold\",\n faufsb: \"semibold\"\n }\n };\n var i = \"classic\",\n t = \"duotone\",\n d = \"sharp\",\n l = \"sharp-duotone\",\n f = \"chisel\",\n n = \"etch\",\n h = \"jelly\",\n o = \"jelly-duo\",\n u = \"jelly-fill\",\n g = \"notdog\",\n s = \"notdog-duo\",\n y = \"slab\",\n m = \"slab-press\",\n e = \"thumbprint\",\n p = \"utility\",\n a = \"utility-duo\",\n w = \"utility-fill\",\n x = \"whiteboard\",\n b = \"Classic\",\n c = \"Duotone\",\n I = \"Sharp\",\n F = \"Sharp Duotone\",\n v = \"Chisel\",\n S = \"Etch\",\n A = \"Jelly\",\n P = \"Jelly Duo\",\n j = \"Jelly Fill\",\n B = \"Notdog\",\n N = \"Notdog Duo\",\n k = \"Slab\",\n D = \"Slab Press\",\n T = \"Thumbprint\",\n C = \"Utility\",\n W = \"Utility Duo\",\n K = \"Utility Fill\",\n R = \"Whiteboard\",\n dt = (_dt = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, i, b), t, c), d, I), l, F), f, v), n, S), h, A), o, P), u, j), g, B), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, s, N), y, k), m, D), e, T), p, C), a, W), w, K), x, R));\n var gt = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n slab: {\n 400: \"faslr\"\n },\n \"slab-press\": {\n 400: \"faslpr\"\n },\n whiteboard: {\n 600: \"fawsb\"\n },\n thumbprint: {\n 300: \"fatl\"\n },\n notdog: {\n 900: \"fans\"\n },\n \"notdog-duo\": {\n 900: \"fands\"\n },\n etch: {\n 900: \"faes\"\n },\n chisel: {\n 400: \"facr\"\n },\n jelly: {\n 400: \"fajr\"\n },\n \"jelly-fill\": {\n 400: \"fajfr\"\n },\n \"jelly-duo\": {\n 400: \"fajdr\"\n },\n utility: {\n 600: \"fausb\"\n },\n \"utility-duo\": {\n 600: \"faudsb\"\n },\n \"utility-fill\": {\n 600: \"faufsb\"\n }\n };\n var _t = {\n chisel: {\n regular: \"facr\"\n },\n classic: {\n brands: \"fab\",\n light: \"fal\",\n regular: \"far\",\n solid: \"fas\",\n thin: \"fat\"\n },\n duotone: {\n light: \"fadl\",\n regular: \"fadr\",\n solid: \"fad\",\n thin: \"fadt\"\n },\n etch: {\n solid: \"faes\"\n },\n jelly: {\n regular: \"fajr\"\n },\n \"jelly-duo\": {\n regular: \"fajdr\"\n },\n \"jelly-fill\": {\n regular: \"fajfr\"\n },\n notdog: {\n solid: \"fans\"\n },\n \"notdog-duo\": {\n solid: \"fands\"\n },\n sharp: {\n light: \"fasl\",\n regular: \"fasr\",\n solid: \"fass\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n light: \"fasdl\",\n regular: \"fasdr\",\n solid: \"fasds\",\n thin: \"fasdt\"\n },\n slab: {\n regular: \"faslr\"\n },\n \"slab-press\": {\n regular: \"faslpr\"\n },\n thumbprint: {\n light: \"fatl\"\n },\n utility: {\n semibold: \"fausb\"\n },\n \"utility-duo\": {\n semibold: \"faudsb\"\n },\n \"utility-fill\": {\n semibold: \"faufsb\"\n },\n whiteboard: {\n semibold: \"fawsb\"\n }\n };\n var qt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n Ht = [\"kit\"];\n var L = \"kit\",\n r = \"kit-duotone\",\n U = \"Kit\",\n J = \"Kit Duotone\",\n $t = _defineProperty(_defineProperty({}, L, U), r, J);\n var ol = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n };\n var fl = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\n var ul = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\n var _ml;\n var l$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n };\n var n$1 = \"classic\",\n o$1 = \"duotone\",\n u$1 = \"sharp\",\n s$1 = \"sharp-duotone\",\n h$1 = \"chisel\",\n g$1 = \"etch\",\n y$1 = \"jelly\",\n e$1 = \"jelly-duo\",\n m$1 = \"jelly-fill\",\n p$1 = \"notdog\",\n a$1 = \"notdog-duo\",\n w$1 = \"slab\",\n b$1 = \"slab-press\",\n r$1 = \"thumbprint\",\n c$1 = \"utility\",\n i$1 = \"utility-duo\",\n x$1 = \"utility-fill\",\n I$1 = \"whiteboard\",\n F$1 = \"Classic\",\n v$1 = \"Duotone\",\n S$1 = \"Sharp\",\n A$1 = \"Sharp Duotone\",\n P$1 = \"Chisel\",\n j$1 = \"Etch\",\n B$1 = \"Jelly\",\n N$1 = \"Jelly Duo\",\n k$1 = \"Jelly Fill\",\n D$1 = \"Notdog\",\n C$1 = \"Notdog Duo\",\n T$1 = \"Slab\",\n L$1 = \"Slab Press\",\n W$1 = \"Thumbprint\",\n R$1 = \"Utility\",\n K$1 = \"Utility Duo\",\n U$1 = \"Utility Fill\",\n J$1 = \"Whiteboard\",\n ml$1 = (_ml = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, n$1, F$1), o$1, v$1), u$1, S$1), s$1, A$1), h$1, P$1), g$1, j$1), y$1, B$1), e$1, N$1), m$1, k$1), p$1, D$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, a$1, C$1), w$1, T$1), b$1, L$1), r$1, W$1), c$1, R$1), i$1, K$1), x$1, U$1), I$1, J$1));\n var E$1 = \"kit\",\n d$1 = \"kit-duotone\",\n _$1 = \"Kit\",\n M$1 = \"Kit Duotone\",\n rt$1 = _defineProperty(_defineProperty({}, E$1, _$1), d$1, M$1);\n var $t$1 = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n },\n slab: {\n \"fa-regular\": \"faslr\"\n },\n \"slab-press\": {\n \"fa-regular\": \"faslpr\"\n },\n whiteboard: {\n \"fa-semibold\": \"fawsb\"\n },\n thumbprint: {\n \"fa-light\": \"fatl\"\n },\n notdog: {\n \"fa-solid\": \"fans\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"fands\"\n },\n etch: {\n \"fa-solid\": \"faes\"\n },\n jelly: {\n \"fa-regular\": \"fajr\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"fajfr\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"fajdr\"\n },\n chisel: {\n \"fa-regular\": \"facr\"\n },\n utility: {\n \"fa-semibold\": \"fausb\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"faudsb\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"faufsb\"\n }\n },\n z = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"],\n slab: [\"faslr\"],\n \"slab-press\": [\"faslpr\"],\n whiteboard: [\"fawsb\"],\n thumbprint: [\"fatl\"],\n notdog: [\"fans\"],\n \"notdog-duo\": [\"fands\"],\n etch: [\"faes\"],\n jelly: [\"fajr\"],\n \"jelly-fill\": [\"fajfr\"],\n \"jelly-duo\": [\"fajdr\"],\n chisel: [\"facr\"],\n utility: [\"fausb\"],\n \"utility-duo\": [\"faudsb\"],\n \"utility-fill\": [\"faufsb\"]\n },\n Ht$1 = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n },\n slab: {\n faslr: \"fa-regular\"\n },\n \"slab-press\": {\n faslpr: \"fa-regular\"\n },\n whiteboard: {\n fawsb: \"fa-semibold\"\n },\n thumbprint: {\n fatl: \"fa-light\"\n },\n notdog: {\n fans: \"fa-solid\"\n },\n \"notdog-duo\": {\n fands: \"fa-solid\"\n },\n etch: {\n faes: \"fa-solid\"\n },\n jelly: {\n fajr: \"fa-regular\"\n },\n \"jelly-fill\": {\n fajfr: \"fa-regular\"\n },\n \"jelly-duo\": {\n fajdr: \"fa-regular\"\n },\n chisel: {\n facr: \"fa-regular\"\n },\n utility: {\n fausb: \"fa-semibold\"\n },\n \"utility-duo\": {\n faudsb: \"fa-semibold\"\n },\n \"utility-fill\": {\n faufsb: \"fa-semibold\"\n }\n },\n G$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\", \"semibold\"],\n O$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n V$1 = O$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n $$1 = [\"aw\", \"fw\", \"pull-left\", \"pull-right\"],\n to = [].concat(_toConsumableArray(Object.keys(z)), G$1, $$1, [\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"inverse\", \"layers\", \"layers-bottom-left\", \"layers-bottom-right\", \"layers-counter\", \"layers-text\", \"layers-top-left\", \"layers-top-right\", \"li\", \"pull-end\", \"pull-start\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", \"width-auto\", \"width-fixed\", l$1.GROUP, l$1.SWAP_OPACITY, l$1.PRIMARY, l$1.SECONDARY]).concat(O$1.map(function (t) {\n return \"\".concat(t, \"x\");\n })).concat(V$1.map(function (t) {\n return \"w-\".concat(t);\n }));\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e$$1) {\n return false;\n }\n }();\n function familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[i];\n }\n });\n }\n var _PREFIX_TO_STYLE = _objectSpread2({}, q);\n\n // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n // {'fa-duotone': 'duotone'}\n _PREFIX_TO_STYLE[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n }), q[i]), qt['kit']), qt['kit-duotone']);\n var PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\n var _STYLE_TO_PREFIX = _objectSpread2({}, _t);\n\n // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n _STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n }), _STYLE_TO_PREFIX[i]), ul['kit']), ul['kit-duotone']);\n var STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\n var _PREFIX_TO_LONG_STYLE = _objectSpread2({}, Ht$1);\n _PREFIX_TO_LONG_STYLE[i] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[i]), fl['kit']);\n var PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\n var _LONG_STYLE_TO_PREFIX = _objectSpread2({}, $t$1);\n _LONG_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[i]), ol['kit']);\n var LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\n var _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, gt);\n var FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\n var RESERVED_CLASSES = [].concat(_toConsumableArray(Ht), _toConsumableArray(to));\n\n function bunker(fn) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n fn.apply(void 0, args);\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n var w$2 = WINDOW || {};\n if (!w$2[NAMESPACE_IDENTIFIER]) w$2[NAMESPACE_IDENTIFIER] = {};\n if (!w$2[NAMESPACE_IDENTIFIER].styles) w$2[NAMESPACE_IDENTIFIER].styles = {};\n if (!w$2[NAMESPACE_IDENTIFIER].hooks) w$2[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w$2[NAMESPACE_IDENTIFIER].shims) w$2[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w$2[NAMESPACE_IDENTIFIER];\n\n function normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n }\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var icons = {\n \"square-minus\": [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM136 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"calendar-check\": [448, 512, [], \"f274\", \"M328 0c13.3 0 24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24zM64 112c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 112zm230.7 65.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 374.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z\"],\n \"face-kiss\": [512, 512, [128535, \"kiss\"], \"f596\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm240 0l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-96-48a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"paste\": [512, 512, [\"file-clipboard\"], \"f0ea\", \"M64 48l224 0c8.8 0 16 7.2 16 16l0 48 48 0 0-48c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 384c0 35.3 28.7 64 64 64l112 0 0-48-112 0c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zm176 72c0-13.3-10.7-24-24-24L104 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l105.6 0c8.8-8.6 19-15.8 30.2-21.1 .1-.9 .2-1.9 .2-2.9zM448 464l-160 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l101.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L464 448c0 8.8-7.2 16-16 16zM224 224l0 224c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-165.5c0-17-6.7-33.3-18.7-45.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7L288 160c-35.3 0-64 28.7-64 64z\"],\n \"hand-point-left\": [512, 512, [], \"f0a5\", \"M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-176 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4 .5-3.1 .7-6.2 .7-9.4 0-20-9.2-37.9-23.6-49.7 4.9-9 7.6-19.4 7.6-30.3 0-15.1-5.3-29-14-40 8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80zm32-80l0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16 0 25.3 14.7 47.2 36 57.6-2.6 7-4 14.5-4 22.4 0 20 9.2 37.9 23.6 49.7-4.9 9-7.6 19.4-7.6 30.3 0 35.3 28.7 64 64 64l88 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-34 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z\"],\n \"file-excel\": [384, 512, [], \"f1c3\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm99.2 265.6c-8-10.6-23-12.8-33.6-4.8s-12.8 23-4.8 33.6L162 344 124.8 393.6c-8 10.6-5.8 25.6 4.8 33.6s25.6 5.8 33.6-4.8L192 384 220.8 422.4c8 10.6 23 12.8 33.6 4.8s12.8-23 4.8-33.6L222 344 259.2 294.4c8-10.6 5.8-25.6-4.8-33.6s-25.6-5.8-33.6 4.8L192 304 163.2 265.6z\"],\n \"envelope\": [512, 512, [128386, 9993, 61443], \"f0e0\", \"M61.4 64C27.5 64 0 91.5 0 125.4 0 126.3 0 127.1 .1 128L0 128 0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256-.1 0c0-.9 .1-1.7 .1-2.6 0-33.9-27.5-61.4-61.4-61.4L61.4 64zM464 192.3L464 384c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-191.7 154.8 117.4c31.4 23.9 74.9 23.9 106.4 0L464 192.3zM48 125.4C48 118 54 112 61.4 112l389.2 0c7.4 0 13.4 6 13.4 13.4 0 4.2-2 8.2-5.3 10.7L280.2 271.5c-14.3 10.8-34.1 10.8-48.4 0L53.3 136.1c-3.3-2.5-5.3-6.5-5.3-10.7z\"],\n \"square-caret-down\": [448, 512, [\"caret-square-down\"], \"f150\", \"M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9S110.5 192 120 192l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"],\n \"truck\": [576, 512, [128666, 9951], \"f0d1\", \"M64 80c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l3.3 0c10.4-36.9 44.4-64 84.7-64s74.2 27.1 84.7 64l102.6 0c4.9-17.4 15.1-32.7 28.7-43.9L368 96c0-8.8-7.2-16-16-16L64 80zm3.3 368L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l288 0c35.3 0 64 28.7 64 64l0 32 55.4 0c17 0 33.3 6.7 45.3 18.7l40.6 40.6c12 12 18.7 28.3 18.7 45.3L576 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64zM416 256l112 0 0-23.4c0-4.2-1.7-8.3-4.7-11.3l-40.6-40.6c-3-3-7.1-4.7-11.3-4.7l-55.4 0 0 80zm0 48l0 32.4c2.6-.2 5.3-.4 8-.4 40.3 0 74.2 27.1 84.7 64l3.3 0c8.8 0 16-7.2 16-16l0-80-112 0zM152 464a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm272 0a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"bell\": [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-13.3 0-24 10.7-24 24l0 9.7C118.6 45.3 56 115.4 56 200l0 14.5c0 37.7-10 74.7-29 107.3L5.1 359.2C1.8 365 0 371.5 0 378.2 0 399.1 16.9 416 37.8 416l372.4 0c20.9 0 37.8-16.9 37.8-37.8 0-6.7-1.8-13.3-5.1-19L421 321.7c-19-32.6-29-69.6-29-107.3l0-14.5c0-84.6-62.6-154.7-144-166.3l0-9.7c0-13.3-10.7-24-24-24zM392.4 368l-336.9 0 12.9-22.1C91.7 306 104 260.6 104 214.5l0-14.5c0-66.3 53.7-120 120-120s120 53.7 120 120l0 14.5c0 46.2 12.3 91.5 35.5 131.4L392.4 368zM156.1 464c9.9 28 36.6 48 67.9 48s58-20 67.9-48l-135.8 0z\"],\n \"message\": [512, 512, [\"comment-alt\"], \"f27a\", \"M203.7 512.9s0 0 0 0l-37.8 26.7c-7.3 5.2-16.9 5.8-24.9 1.7S128 529 128 520l0-72-32 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l320 0c53 0 96 43 96 96l0 224c0 53-43 96-96 96l-120.4 0-91.9 64.9zm64.3-104.1c8.1-5.7 17.8-8.8 27.7-8.8L416 400c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L96 80c-26.5 0-48 21.5-48 48l0 224c0 26.5 21.5 48 48 48l56 0c10.4 0 19.3 6.6 22.6 15.9 .9 2.5 1.4 5.2 1.4 8.1l0 49.7c32.7-23.1 63.3-44.7 91.9-64.9z\"],\n \"face-dizzy\": [512, 512, [\"dizzy\"], \"f567\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM134.1 153.9l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zm192 0l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"calendar-days\": [448, 512, [\"calendar-alt\"], \"f073\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zM384 432c8.8 0 16-7.2 16-16l0-64-88 0 0 80 72 0zm16-128l0-80-88 0 0 80 88 0zm-136 0l0-80-80 0 0 80 80 0zm-128 0l0-80-88 0 0 80 88 0zM48 352l0 64c0 8.8 7.2 16 16 16l72 0 0-80-88 0zm136 0l0 80 80 0 0-80-80 0zM120 112l-56 0c-8.8 0-16 7.2-16 16l0 48 352 0 0-48c0-8.8-7.2-16-16-16l-264 0z\"],\n \"hand-point-up\": [384, 512, [9757], \"f0a6\", \"M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-176c0-8.8-7.2-16-16-16S64 55.2 64 64zM80 288c-17.7 0-32 14.3-32 32l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7-3.1 .5-6.2 .7-9.4 .7-20 0-37.9-9.2-49.7-23.6-9 4.9-19.4 7.6-30.3 7.6-15.1 0-29-5.3-40-14-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-80 0zM0 320l0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2 25.3 0 47.2 14.7 57.6 36 7-2.6 14.5-4 22.4-4 20 0 37.9 9.2 49.7 23.6 9-4.9 19.4-7.6 30.3-7.6 35.3 0 64 28.7 64 64l0 88c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-34c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z\"],\n \"hand-lizard\": [512, 512, [], \"f258\", \"M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7-46.9-29.3-145.1 0c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z\"],\n \"square-full\": [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M448 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l384 0zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0z\"],\n \"circle-pause\": [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144zm112 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144z\"],\n \"hard-drive\": [448, 512, [128436, \"hdd\"], \"f0a0\", \"M64 80c-8.8 0-16 7.2-16 16l0 162c5.1-1.3 10.5-2 16-2l320 0c5.5 0 10.9 .7 16 2l0-162c0-8.8-7.2-16-16-16L64 80zM48 320l0 96c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L64 304c-8.8 0-16 7.2-16 16zM0 320L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm216 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"file-zipper\": [384, 512, [\"file-archive\"], \"f1c6\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM80 104c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm0 80c0 13.3 10.7 24 24 24l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0c-13.3 0-24 10.7-24 24zm64 56l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"],\n \"floppy-disk\": [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-242.7c0-4.2-1.7-8.3-4.7-11.3L320 86.6 320 176c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-96-32 0zm80 0l0 80 128 0 0-80-128 0zM0 96C0 60.7 28.7 32 64 32l242.7 0c17 0 33.3 6.7 45.3 18.7L429.3 128c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM160 320a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\n \"face-grin-tongue-squint\": [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 75.9 40.7 142.4 101.5 178.7-3.6-10.9-5.5-22.6-5.5-34.7l0-37.5c-10.2-12.6-18.3-26.9-23.8-42.4-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8-5.5 15.6-13.6 29.9-23.8 42.5l0 37.5c0 12.1-1.9 23.8-5.5 34.7 60.8-36.3 101.5-102.7 101.5-178.7zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm125.8-75.7c-6.2-5.2-7.6-14.3-3.1-21.1s13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3zm263.6-21.1c4.5 6.8 3.1 15.9-3.1 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n \"camera\": [512, 512, [62258, \"camera-alt\"], \"f030\", \"M193.1 32c-18.7 0-36.2 9.4-46.6 24.9L120.5 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-56.5 0-26-39.1C355.1 41.4 337.6 32 318.9 32L193.1 32zm-6.7 51.6c1.5-2.2 4-3.6 6.7-3.6l125.7 0c2.7 0 5.2 1.3 6.7 3.6l33.2 49.8c4.5 6.7 11.9 10.7 20 10.7l69.3 0c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l69.3 0c8 0 15.5-4 20-10.7l33.2-49.8zM256 384a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 272a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\n \"face-grin-stars\": [512, 512, [129321, \"grin-stars\"], \"f587\", \"M0 256c0-29.6 5-57.9 14.2-84.4l17.3 16.9-4.6 27c-4.2 24.4 5.6 46.2 22 59.9 9.8 105.8 98.8 188.7 207.1 188.7s197.4-82.8 207.1-188.6c16.4-13.7 26.1-35.4 22-59.9l-4.6-27 17.3-16.9c9.2 26.4 14.2 54.8 14.2 84.4 0 141.4-114.6 256-256 256S0 397.4 0 256zM256 48c-15.2 0-30 1.6-44.3 4.7L201.4 31.8C197 23 191.1 15.8 184.2 10.2 207 3.6 231.1 0 256 0s49 3.6 71.8 10.2C320.9 15.8 315 23 310.6 31.8L300.3 52.7C286 49.6 271.2 48 256 48zM372.2 302.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM353.7 53.1c5.9-11.9 22.8-11.9 28.7 0l23.3 47.2 52 7.6c13.1 1.9 18.4 18 8.9 27.3l-37.7 36.7 8.9 51.8c2.2 13.1-11.5 23-23.2 16.9L368 216 321.5 240.5c-11.7 6.2-25.5-3.8-23.2-16.9l8.9-51.8-37.7-36.7c-9.5-9.3-4.3-25.4 8.9-27.3l52-7.6 23.3-47.2zm-195.3 0l23.3 47.2 52 7.6c13.1 1.9 18.4 18 8.9 27.3l-37.7 36.7 8.9 51.8c2.2 13.1-11.5 23-23.2 16.9L144 216 97.5 240.5c-11.7 6.2-25.5-3.8-23.2-16.9l8.9-51.8-37.7-36.7c-9.5-9.3-4.3-25.4 8.9-27.3l52-7.6 23.3-47.2c5.9-11.9 22.8-11.9 28.7 0z\"],\n \"eye\": [576, 512, [128065], \"f06e\", \"M288 80C222.8 80 169.2 109.6 128.1 147.7 89.6 183.5 63 226 49.4 256 63 286 89.6 328.5 128.1 364.3 169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256 513 226 486.4 183.5 447.9 147.7 406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1 3.3 7.9 3.3 16.7 0 24.6-14.9 35.7-46.2 87.7-93 131.1-47.1 43.7-111.8 80.6-192.6 80.6S142.5 443.2 95.4 399.4c-46.8-43.5-78.1-95.4-93-131.1-3.3-7.9-3.3-16.7 0-24.6 14.9-35.7 46.2-87.7 93-131.1zM288 336c44.2 0 80-35.8 80-80 0-29.6-16.1-55.5-40-69.3-1.4 59.7-49.6 107.9-109.3 109.3 13.8 23.9 39.7 40 69.3 40zm-79.6-88.4c2.5 .3 5 .4 7.6 .4 35.3 0 64-28.7 64-64 0-2.6-.2-5.1-.4-7.6-37.4 3.9-67.2 33.7-71.1 71.1zm45.6-115c10.8-3 22.2-4.5 33.9-4.5 8.8 0 17.5 .9 25.8 2.6 .3 .1 .5 .1 .8 .2 57.9 12.2 101.4 63.7 101.4 125.2 0 70.7-57.3 128-128 128-61.6 0-113-43.5-125.2-101.4-1.8-8.6-2.8-17.5-2.8-26.6 0-11 1.4-21.8 4-32 .2-.7 .3-1.3 .5-1.9 11.9-43.4 46.1-77.6 89.5-89.5z\"],\n \"face-sad-tear\": [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 41.8 12.3 80.7 33.6 113.3 8.2 44.7 47.3 78.6 94.3 78.7 24.7 10.3 51.7 16 80.1 16 114.9 0 208-93.1 208-208zM288 352c-5.5 0-10.9 .6-16 1.8 0-.6 0-1.2 0-1.8 0-16.2-4-31.5-11.1-44.9 8.7-2 17.8-3.1 27.1-3.1 40.2 0 75.7 19.8 97.5 50 7.7 10.8 5.3 25.8-5.5 33.5s-25.8 5.3-33.5-5.5c-13.1-18.2-34.4-30-58.5-30zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM185.4 276.8c6.5 7.8 12.6 16.1 18.3 24.6 9 13.4 20.3 30.2 20.3 47.4 0 28.3-21.5 51.2-48 51.2s-48-22.9-48-51.2c0-17.2 11.2-34 20.3-47.4 5.7-8.5 11.9-16.7 18.3-24.6 2.4-2.9 5.7-4.8 9.4-4.8s7 1.9 9.4 4.8z\"],\n \"share-from-square\": [576, 512, [61509, \"share-square\"], \"f14d\", \"M425.5 7c-6.9-6.9-17.2-8.9-26.2-5.2S384.5 14.3 384.5 24l0 56-48 0c-88.4 0-160 71.6-160 160 0 46.7 20.7 80.4 43.6 103.4 8.1 8.2 16.5 14.9 24.3 20.4 9.2 6.5 21.7 5.7 30.1-1.9s10.2-20 4.5-29.8c-3.6-6.3-6.5-14.9-6.5-26.7 0-36.2 29.3-65.5 65.5-65.5l46.5 0 0 56c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l136-136c9.4-9.4 9.4-24.6 0-33.9L425.5 7zm7 97l0-22.1 78.1 78.1-78.1 78.1 0-22.1c0-13.3-10.7-24-24-24L338 192c-50.9 0-93.9 33.5-108.3 79.6-3.3-9.4-5.2-19.8-5.2-31.6 0-61.9 50.1-112 112-112l72 0c13.3 0 24-10.7 24-24zm-320-8c-44.2 0-80 35.8-80 80l0 256c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0z\"],\n \"note-sticky\": [448, 512, [62026, \"sticky-note\"], \"f249\", \"M240 432L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0c8.8 0 16 7.2 16 16l0 176-88 0c-39.8 0-72 32.2-72 72l0 88zM380.1 320L288 412.1 288 344c0-13.3 10.7-24 24-24l68.1 0zM0 416c0 35.3 28.7 64 64 64l197.5 0c17 0 33.3-6.7 45.3-18.7L429.3 338.7c12-12 18.7-28.3 18.7-45.3L448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416z\"],\n \"hand-back-fist\": [384, 512, [\"hand-rock\"], \"f255\", \"M96 400c-17.7 0-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32L96 400zM73.2 352l64.6 0-79.5-88.3C51.7 256.3 48 246.8 48 236.9L48 204c0-16.1 11.9-29.5 27.4-31.7 11.8-1.7 20.6-11.8 20.6-23.8L96 72c0-13.3 10.7-24 24-24 7.2 0 13.6 3.1 18 8.1 4.6 5.2 11.1 8.1 18 8.1s13.4-3 18-8.1c4.4-5 10.8-8.1 18-8.1 8.5 0 15.9 4.4 20.2 11.1 6.9 10.7 20.9 14.2 32 8 3.5-1.9 7.4-3.1 11.8-3.1 10.6 0 19.7 6.9 22.8 16.6 3.8 11.7 15.9 18.7 28 16 1.7-.4 3.4-.6 5.2-.6 13.3 0 24 10.7 24 24l0 92.2c0 14.4-3.5 28.5-10.2 41.2l-52.2 98.6 54.3 0 40.3-76.2c10.4-19.6 15.8-41.5 15.8-63.6l0-92.2c0-38.4-30.1-69.8-68.1-71.9-12.9-19.3-34.9-32.1-59.9-32.1-5.7 0-11.2 .7-16.5 1.9-12.7-11.1-29.3-17.9-47.5-17.9-13.1 0-25.4 3.5-36 9.6-10.6-6.1-22.9-9.6-36-9.6-39.8 0-72 32.2-72 72l0 58.7C19.7 143 0 171.2 0 204l0 32.9c0 21.7 8 42.7 22.6 58.9L73.2 352z\"],\n \"chess-queen\": [512, 512, [9819], \"f445\", \"M325.3 90.8c9.1-4.8 20.6-3.3 28.2 4.3l39.8 39.8 3.7 3.3c9.1 7.1 20.9 10 32.4 7.7l46.4-9.3 3.5-.4c8-.4 15.8 3.2 20.6 9.8 5.5 7.6 6.1 17.6 1.6 25.8l-112.6 202.6 51.5 70.9 1.8 2.7c4 6.6 6.2 14.2 6.2 22 0 23.3-18.9 42.1-42.1 42.1l-299.8 0c-21.8 0-39.8-16.6-41.9-37.8l-.2-4.3 .1-3.3c.6-7.7 3.4-15.1 7.9-21.4l51.5-70.9-112.5-202.6c-4.5-8.2-3.9-18.3 1.6-25.8s14.9-11.2 24.1-9.4l46.4 9.3c13.1 2.6 26.7-1.5 36.1-10.9L159.5 95 163 92.2c8.6-5.8 20.1-5.6 28.5 1.1l40 32 2.8 2.1c14.4 9.6 33.5 8.9 47.2-2.1l40-32 3.8-2.5zM164.7 400l-46.6 64 276.7 0-46.6-64-183.6 0zM311.5 162.8c-30.1 24.1-72.1 25.6-103.8 4.5l-6.2-4.5-23.3-18.6-24.6 24.6c-19.8 19.8-47.7 28.9-75.1 24.8l88.1 158.5 179.8 0 88-158.5c-25.7 3.8-51.7-3.9-71.1-21l-4-3.7-24.6-24.6-23.2 18.6zM256.5 72a40 40 0 1 1 0-80 40 40 0 1 1 0 80z\"],\n \"face-grin-tears\": [640, 512, [128514, \"grin-tears\"], \"f588\", \"M504.1 353C512.9 367.2 525.3 379 539.8 387.2 495.1 462 413.4 512 320 512S144.9 462 100.2 387.2c14.6-8.2 26.9-20 35.8-34.3 34.9 66 104.2 111 184.1 111s149.2-45 184.1-111zm16.4-152.5C496.2 112.6 415.7 48 320 48S143.8 112.6 119.5 200.5c-10.6-4.8-22.7-6.8-35.4-5l-13.4 1.9C97.2 84.3 198.8 0 320 0S542.8 84.3 569.3 197.4l-13.4-1.9c-12.7-1.8-24.8 .2-35.4 5zM455.8 320c-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8zM212 208l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28zm188-28c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zM640 300.6c0 28.4-23 51.4-51.4 51.4-25.6 0-47.3-18.8-50.9-44.1L531 261.1c-1.5-10.6 7.5-19.6 18.1-18.1l46.7 6.7c25.3 3.6 44.1 25.3 44.1 50.9zm-640 0c0-25.6 18.8-47.3 44.1-50.9L90.9 243c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C98.7 333.2 77 352 51.4 352 23 352 0 329 0 300.6z\"],\n \"pen-to-square\": [512, 512, [\"edit\"], \"f044\", \"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z\"],\n \"face-grin-beam-sweat\": [576, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M530.2 15.9c-8.8-10.7-18.5-20.9-29-30-3-2.6-7.4-2.6-10.4 0-10.5 9.1-20.1 19.3-29 30-14.7 17.8-29.8 40.1-29.8 64.1 0 36.4 27.6 64 64 64s64-27.6 64-64c0-24-15.2-46.3-29.8-64.1zm-132 8.9C364.8 8.9 327.4 0 288 0 146.6 0 32 114.6 32 256S146.6 512 288 512 544 397.4 544 256c0-24.4-3.4-48-9.8-70.4-11.9 4.2-24.7 6.4-38.2 6.4-3.4 0-6.8-.1-10.2-.4 6.6 20.3 10.2 41.9 10.2 64.4 0 114.9-93.1 208-208 208S80 370.9 80 256 173.1 48 288 48c34.8 0 67.5 8.5 96.3 23.6 1.4-17.4 6.9-33.1 13.8-46.8zM423.8 320c4.1-11.6-7.8-21.4-19.6-17.8-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 19.8 55.9 73.1 95.9 135.8 95.9 62.7 0 116-40.1 135.8-96zM180 208c0-15.5 12.5-28 28-28s28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8zm188-28c15.5 0 28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-15.5 12.5-28 28-28z\"],\n \"clock\": [512, 512, [128339, \"clock-four\"], \"f017\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n \"face-laugh-wink\": [512, 512, [\"laugh-wink\"], \"f59c\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"],\n \"paper-plane\": [576, 512, [61913], \"f1d8\", \"M290.5 287.7L491.4 86.9 359 456.3 290.5 287.7zM457.4 53L256.6 253.8 88 185.3 457.4 53zM38.1 216.8l205.8 83.6 83.6 205.8c5.3 13.1 18.1 21.7 32.3 21.7 14.7 0 27.8-9.2 32.8-23.1L570.6 8c3.5-9.8 1-20.6-6.3-28s-18.2-9.8-28-6.3L39.4 151.7c-13.9 5-23.1 18.1-23.1 32.8 0 14.2 8.6 27 21.7 32.3z\"],\n \"heart\": [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M378.9 80c-27.3 0-53 13.1-69 35.2l-34.4 47.6c-4.5 6.2-11.7 9.9-19.4 9.9s-14.9-3.7-19.4-9.9l-34.4-47.6c-16-22.1-41.7-35.2-69-35.2-47 0-85.1 38.1-85.1 85.1 0 49.9 32 98.4 68.1 142.3 41.1 50 91.4 94 125.9 120.3 3.2 2.4 7.9 4.2 14 4.2s10.8-1.8 14-4.2c34.5-26.3 84.8-70.4 125.9-120.3 36.2-43.9 68.1-92.4 68.1-142.3 0-47-38.1-85.1-85.1-85.1zM271 87.1c25-34.6 65.2-55.1 107.9-55.1 73.5 0 133.1 59.6 133.1 133.1 0 68.6-42.9 128.9-79.1 172.8-44.1 53.6-97.3 100.1-133.8 127.9-12.3 9.4-27.5 14.1-43.1 14.1s-30.8-4.7-43.1-14.1C176.4 438 123.2 391.5 79.1 338 42.9 294.1 0 233.7 0 165.1 0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1l15 20.7 15-20.7z\"],\n \"font-awesome\": [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 48 0 0-64 389.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96zM80 400l0-256 356.4 0-48.2 108.5c-5.5 12.4-5.5 26.6 0 39L436.4 400 80 400z\"],\n \"clone\": [512, 512, [], \"f24d\", \"M288 464L64 464c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l48 0 0-48-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-48-48 0 0 48c0 8.8-7.2 16-16 16zM224 304c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-224 0zm-64-16c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224z\"],\n \"folder-open\": [576, 512, [128194, 128449, 61717], \"f07c\", \"M97.5 400l50-160 379.4 0-50 160-379.4 0zm190.7 48L477 448c21 0 39.6-13.6 45.8-33.7l50-160c9.7-30.9-13.4-62.3-45.8-62.3l-379.4 0c-21 0-39.6 13.6-45.8 33.7L80.2 294.4 80.2 96c0-8.8 7.2-16 16-16l138.7 0c3.5 0 6.8 1.1 9.6 3.2L282.9 112c13.8 10.4 30.7 16 48 16l117.3 0c8.8 0 16 7.2 16 16l48 0c0-35.3-28.7-64-64-64L330.9 80c-6.9 0-13.7-2.2-19.2-6.4L273.3 44.8C262.2 36.5 248.8 32 234.9 32L96.2 32c-35.3 0-64 28.7-64 64l0 288c0 35.3 28.7 64 64 64l192 0z\"],\n \"window-minimize\": [512, 512, [128469], \"f2d1\", \"M0 424c0-13.3 10.7-24 24-24l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 448c-13.3 0-24-10.7-24-24z\"],\n \"star-half\": [576, 512, [61731], \"f089\", \"M285.7-15.8c10.8 2.6 18.4 12.2 18.4 23.3l0 387.1c0 9-5.1 17.3-13.1 21.4L143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3L193.1 125.3 258.8-3.3c5-9.9 16.2-15 27-12.4zM256.1 107.4L230.3 158c-3.5 6.8-10 11.6-17.6 12.8l-125.5 20 89.8 89.9c5.4 5.4 7.9 13.1 6.7 20.7l-19.8 125.5 92.2-46.9 0-272.6z\"],\n \"alarm-clock\": [512, 512, [9200], \"f34e\", \"M402.6 50.2c-5.4 1.7-11.3 1.8-16.2-.9-5.8-3.2-11.8-6.2-17.8-8.9-10.4-4.7-13.7-18.3-4.1-24.6 15-9.9 33-15.7 52.3-15.7 52.6 0 95.2 42.6 95.2 95.2 0 13.2-2.7 25.8-7.6 37.3-4.5 10.5-18.4 9.8-24.9 .4-3.8-5.5-7.8-10.8-12-16-3.5-4.4-4.5-10.2-3.8-15.8 .2-1.9 .4-3.9 .4-5.9 0-26.1-21.2-47.2-47.2-47.2-4.9 0-9.7 .8-14.2 2.2zM32.5 132.9c-6.5 9.4-20.5 10.1-24.9-.4-4.9-11.5-7.6-24.1-7.6-37.3 0-52.6 42.6-95.2 95.2-95.2 19.3 0 37.3 5.8 52.3 15.7 9.6 6.3 6.3 19.9-4.1 24.6-6.1 2.8-12 5.7-17.8 8.9-4.9 2.7-10.9 2.6-16.2 .9-4.5-1.4-9.2-2.2-14.2-2.2-26.1 0-47.2 21.2-47.2 47.2 0 2 .1 4 .4 5.9 .7 5.6-.3 11.4-3.8 15.8-4.2 5.2-8.2 10.5-12 16zM432 288a176 176 0 1 0 -352 0 176 176 0 1 0 352 0zM396.5 462.5C358.1 493.4 309.2 512 256 512s-102.1-18.6-140.5-49.5L73 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l42.5-42.5C50.6 390.1 32 341.2 32 288 32 164.3 132.3 64 256 64S480 164.3 480 288c0 53.2-18.6 102.1-49.5 140.5L473 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-42.5-42.5zM280 184l0 94.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-4.5-4.5-7-10.6-7-17l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"newspaper\": [512, 512, [128240], \"f1ea\", \"M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM192 152c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zm152 24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM216 256l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"hospital\": [576, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M176 0c-35.3 0-64 28.7-64 64l0 48-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-272c0-35.3-28.7-64-64-64l-48 0 0-48c0-35.3-28.7-64-64-64L176 0zM160 64c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 72c0 13.3 10.7 24 24 24l72 0c8.8 0 16 7.2 16 16l0 272c0 8.8-7.2 16-16 16l-176 0 0-80c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 80-176 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l72 0c13.3 0 24-10.7 24-24l0-72zM112 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM96 336l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm320 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16-112c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM264 104l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"],\n \"circle-stop\": [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM160 192l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32zm48 112l0-96 96 0 0 96-96 0z\"],\n \"object-ungroup\": [640, 512, [], \"f248\", \"M48.2 66.8c-.1-.8-.2-1.7-.2-2.5l0-.2c0-8.8 7.2-16 16-16 .9 0 1.9 .1 2.8 .2 7.5 1.3 13.2 7.9 13.2 15.8 0 8.8-7.2 16-16 16-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3l0 105.3c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0 28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-105.3c16-6.5 28.9-19.3 35.3-35.3l201.3 0zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16 0-.9 .1-1.9 .2-2.8 1.3-7.5 7.9-13.2 15.8-13.2 8.8 0 16 7.2 16 16zm436.7-40c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-20.7-48 0 0 20.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64-26.9 0-49.9 16.5-59.3 40l-52.7 0 0 9.6c10.7 10.9 19.1 23.9 24.6 38.4l28 0zm59.3-8a16 16 0 1 1 0-32 16 16 0 1 1 0 32zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm301.5 13c-7.5-1.3-13.2-7.9-13.2-15.8 0-8.8 7.2-16 16-16 7.9 0 14.5 5.7 15.8 13.2l0 .1c.1 .9 .2 1.8 .2 2.7 0 8.8-7.2 16-16 16-.9 0-1.9-.1-2.8-.2z\"],\n \"comment\": [512, 512, [128489, 61669], \"f075\", \"M51.9 384.9C19.3 344.6 0 294.4 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240 397.4 480 256 480c-36.5 0-71.2-7.2-102.6-20L37 509.9c-3.7 1.6-7.5 2.1-11.5 2.1-14.1 0-25.5-11.4-25.5-25.5 0-4.3 1.1-8.5 3.1-12.2l48.8-89.4zm37.3-30.2c12.2 15.1 14.1 36.1 4.8 53.2l-18 33.1 58.5-25.1c11.8-5.1 25.2-5.2 37.1-.3 25.7 10.5 54.2 16.4 84.3 16.4 117.8 0 208-88.8 208-192S373.8 48 256 48 48 136.8 48 240c0 42.8 15.1 82.4 41.2 114.7z\"],\n \"chess-pawn\": [384, 512, [9823], \"f443\", \"M192-32c66.3 0 120 53.7 120 120 0 27.6-9.3 52.9-24.9 73.2 9.8 3 16.9 12.1 16.9 22.8 0 13.3-10.7 24-24 24l-.6 0 24.6 160 53.6 67c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L63.4 512c-26.2 0-47.4-21.2-47.4-47.4 0-10.8 3.7-21.2 10.4-29.6l53.6-67 24.6-160-.6 0c-13.3 0-24-10.7-24-24 0-10.8 7.1-19.8 16.9-22.8-15.6-20.3-24.9-45.6-24.9-73.2 0-66.3 53.7-120 120-120zM115.9 400l-51.2 64 254.7 0-51.2-64-152.2 0zm36.2-184.7l-21 136.7 121.9 0-21-136.7-1.1-7.3-77.6 0-1.1 7.3zM192 16a72 72 0 1 0 0 144 72 72 0 1 0 0-144z\"],\n \"calendar-plus\": [448, 512, [], \"f271\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm104 64c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24z\"],\n \"clipboard\": [384, 512, [128203], \"f328\", \"M232 96l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zm0 48c37.1 0 67.6-28 71.6-64L320 80c8.8 0 16 7.2 16 16l0 352c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l16.4 0c4 36 34.5 64 71.6 64l80 0zM291.9 32C279 12.7 257 0 232 0L152 0c-25 0-47 12.7-59.9 32L64 32C28.7 32 0 60.7 0 96L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64l-28.1 0z\"],\n \"thumbs-down\": [512, 512, [128078, 61576], \"f165\", \"M360 32l7.4 .4c35 3.6 62.5 32.2 64.4 67.7 17.8 11.8 30.1 31.4 32 53.9l.2 6c0 5.7-.7 11.2-2 16.5 10.2 11.5 16.8 26.3 17.8 42.7l.2 4.8c0 13.2-3.6 25.4-9.8 36 4.9 8.4 8.2 17.9 9.3 28l.4 8c0 37.3-28.3 67.9-64.6 71.6l-7.4 .4-109.7 0 14.1 30 3.1 7.6c12.5 35.7-1.8 75.5-34.2 95l-7.2 3.9c-37.5 17.6-81.7 3.6-102.6-31.2l-.6-.9-2.7-5-.6-1.2-30.1-64c-9.4 17.8-28 29.9-49.5 29.9l-32 0c-30.9 0-56-25.1-56-56L0 152c0-30.9 25.1-56 56-56l32 0c12.4 0 23.9 4.1 33.2 11 13.2-21.4 32-39.4 55-51.6l12.2-6.5 .7-.3 6.6-3.2 .7-.3 7.1-3c16.7-6.6 34.5-9.9 52.6-9.9L360 32zM255.9 80c-12 0-23.9 2.3-35.1 6.6l-4.7 2-5.3 2.6 0 0-12.2 6.5c-29.2 15.5-48.3 44.9-50.7 77.6l-.2 8 0 112.9 .1 4.1c.5 8.2 2.5 16.2 6 23.7l56.8 120.9 2.1 3.8c8.4 13.7 26 19.1 40.8 12.2l2.9-1.6c13-7.8 18.7-23.7 13.7-38l-1.2-3-30.2-64.2c-3.5-7.4-2.9-16.1 1.5-23.1s12-11.1 20.2-11.1l147.5 0 2.4-.1c11.3-1.1 20.3-10.1 21.4-21.4l.1-2.5c0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c4.4-3.9 7.4-9.3 8-15.3l.2-2.7c0-8.4-4.4-15.9-11.2-20.2-10.7-6.9-14.2-20.9-8-32 1.5-2.6 2.5-5.6 2.9-8.6l.2-3.2c0-10.6-6.9-19.6-16.6-22.8-11.7-3.8-18.7-15.9-16-28 .2-.9 .3-1.8 .4-2.6l.2-2.6c0-12.4-9.5-22.6-21.6-23.8L360 80 255.9 80zM56 144c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0z\"],\n \"id-badge\": [384, 512, [], \"f2c1\", \"M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16-64 0c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0z\"],\n \"square-check\": [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zm230.7 89.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z\"],\n \"chess-bishop\": [320, 512, [9821], \"f43a\", \"M216 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 81.8 98.1c24.7 29.6 38.2 67 38.2 105.6 0 43.7-17.4 85.7-48.3 116.6l-8.6 8.6 46.5 58.2c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L47.4 512C21.2 512 0 490.8 0 464.6 0 453.9 3.7 443.4 10.4 435l46.5-58.2-8.6-8.6C17.4 337.4 0 295.4 0 251.7 0 213.1 13.5 175.8 38.2 146.1L120 48 104 48C90.7 48 80 37.3 80 24S90.7 0 104 0L216 0zM94.4 406.8l-45.7 57.2 222.7 0-45.7-57.1-5.5-6.9-120.3 0-5.5 6.8zM156.9 78.7L75.1 176.8c-15.3 18.4-24.6 41-26.7 64.7L48 251.7c0 31 12.3 60.7 34.2 82.7l17.7 17.7 120.2 0c6.2-6.2 12.1-12.1 17.8-17.7 21.9-21.9 34.2-51.6 34.2-82.6l-.4-10.2c-1.5-17-6.7-33.3-15.2-48L209 241c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l51.8-51.8-63.7-76.5-3.1-3.8-3.1 3.8z\"],\n \"envelope-open\": [512, 512, [62135], \"f2b6\", \"M512 416c0 35.3-28.5 64-63.9 64L64 480c-35.4 0-64-28.7-64-64L0 164c.1-15.5 7.8-30 20.5-38.8L206-2.7c30.1-20.7 69.8-20.7 99.9 0L491.5 125.2c12.8 8.8 20.4 23.3 20.5 38.8l0 252zM64 432l384.1 0c8.8 0 15.9-7.1 15.9-16l0-191.7-154.8 117.4c-31.4 23.9-74.9 23.9-106.4 0L48 224.3 48 416c0 8.9 7.2 16 16 16zM463.6 164.4L278.7 36.8c-13.7-9.4-31.7-9.4-45.4 0L48.4 164.4 231.8 303.5c14.3 10.8 34.1 10.8 48.4 0L463.6 164.4z\"],\n \"circle-xmark\": [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"],\n \"square-caret-up\": [448, 512, [\"caret-square-up\"], \"f151\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9S337.5 320 328 320l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"],\n \"file-image\": [384, 512, [128443], \"f1c5\", \"M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM259.4 432l-134.8 0c-15.8 0-28.6-12.8-28.6-28.6 0-6.4 2.1-12.5 6-17.6l67.6-86.9C175 292 183.3 288 192 288s17 4 22.4 10.9L282 385.9c3.9 5 6 11.2 6 17.6 0 15.8-12.8 28.6-28.6 28.6zM112 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"square-caret-right\": [448, 512, [\"caret-square-right\"], \"f152\", \"M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4S160 369.5 160 360l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"],\n \"sun\": [576, 512, [9728], \"f185\", \"M200.6-7.9c-6.7-4.4-15.1-5.2-22.5-2.2S165.4-.5 163.9 7.3L143 110.6 39.7 131.4c-7.8 1.6-14.4 7-17.4 14.3s-2.2 15.8 2.2 22.5L82.7 256 24.5 343.8c-4.4 6.7-5.2 15.1-2.2 22.5s9.6 12.8 17.4 14.3L143 401.4 163.9 504.7c1.6 7.8 7 14.4 14.3 17.4s15.8 2.2 22.5-2.2l87.8-58.2 87.8 58.2c6.7 4.4 15.1 5.2 22.5 2.2s12.8-9.6 14.3-17.4l20.9-103.2 103.2-20.9c7.8-1.6 14.4-7 17.4-14.3s2.2-15.8-2.2-22.5l-58.2-87.8 58.2-87.8c4.4-6.7 5.2-15.1 2.2-22.5s-9.6-12.8-17.4-14.3L433.8 110.6 413 7.3C411.4-.5 406-7 398.6-10.1s-15.8-2.2-22.5 2.2L288.4 50.3 200.6-7.9zM186.9 135.7l17-83.9 71.3 47.3c8 5.3 18.5 5.3 26.5 0l71.3-47.3 17 83.9c1.9 9.5 9.3 16.8 18.8 18.8l83.9 17-47.3 71.3c-5.3 8-5.3 18.5 0 26.5l47.3 71.3-83.9 17c-9.5 1.9-16.9 9.3-18.8 18.8l-17 83.9-71.3-47.3c-8-5.3-18.5-5.3-26.5 0l-71.3 47.3-17-83.9c-1.9-9.5-9.3-16.9-18.8-18.8l-83.9-17 47.3-71.3c5.3-8 5.3-18.5 0-26.5l-47.3-71.3 83.9-17c9.5-1.9 16.8-9.3 18.8-18.8zM239.6 256a48.4 48.4 0 1 1 96.8 0 48.4 48.4 0 1 1 -96.8 0zm144.8 0a96.4 96.4 0 1 0 -192.8 0 96.4 96.4 0 1 0 192.8 0z\"],\n \"image\": [448, 512, [], \"f03e\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm128 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm136 72c8.5 0 16.4 4.5 20.7 11.8l80 136c4.4 7.4 4.4 16.6 .1 24.1S352.6 384 344 384l-240 0c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l17.2 24.6 46.5-79c4.3-7.3 12.2-11.8 20.7-11.8z\"],\n \"lightbulb\": [384, 512, [128161], \"f0eb\", \"M296.5 291.1C321 265.2 336 230.4 336 192 336 112.5 271.5 48 192 48S48 112.5 48 192c0 38.4 15 73.2 39.5 99.1 21.3 22.4 44.9 54 53.3 92.9l102.4 0c8.4-39 32-70.5 53.3-92.9zm34.8 33C307.7 349 288 379.4 288 413.7l0 18.3c0 44.2-35.8 80-80 80l-32 0c-44.2 0-80-35.8-80-80l0-18.3C96 379.4 76.3 349 52.7 324.1 20 289.7 0 243.2 0 192 0 86 86 0 192 0S384 86 384 192c0 51.2-20 97.7-52.7 132.1zM144 184c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6 39.4-88 88-88 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.1 0-40 17.9-40 40z\"],\n \"address-card\": [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm-32 40c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"],\n \"face-meh\": [512, 512, [128528, \"meh\"], \"f11a\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM176 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"map\": [512, 512, [128506, 62072], \"f279\", \"M512 48c0-8.3-4.3-16-11.3-20.4s-15.9-4.8-23.3-1.1L352.5 88.1 180 29.4c-13.7-4.7-28.7-3.8-41.9 2.3L13.8 90.3C5.4 94.2 0 102.7 0 112L0 464c0 8.2 4.2 15.9 11.1 20.3s15.6 4.9 23.1 1.4l127.3-59.9 170.7 56.9c13.7 4.6 28.5 3.7 41.6-2.5l124.4-58.5c8.4-4 13.8-12.4 13.8-21.7l0-352zM144 82.1l0 299-96 45.2 0-299 96-45.2zm48 303.3l0-301.1 128 43.5 0 300.3-128-42.7zM368 134l96-47.4 0 298.2-96 45.2 0-296z\"],\n \"hand-point-down\": [384, 512, [], \"f0a7\", \"M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7-3.1-.5-6.2-.7-9.4-.7-20 0-37.9 9.2-49.7 23.6-9-4.9-19.4-7.6-30.3-7.6-15.1 0-29 5.3-40 14-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-80 0zM0 192l0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2 25.3 0 47.2-14.7 57.6-36 7 2.6 14.5 4 22.4 4 20 0 37.9-9.2 49.7-23.6 9 4.9 19.4 7.6 30.3 7.6 35.3 0 64-28.7 64-64l0-88C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 34c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z\"],\n \"face-meh-blank\": [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256a256 256 0 1 1 -512 0 256 256 0 1 1 512 0zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"face-grin-tongue\": [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 74.1 38.8 139.2 97.1 176-.7-5.2-1.1-10.6-1.1-16l0-53.5c-10.2-12.6-18.3-26.9-23.8-42.4-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8-5.5 15.6-13.6 29.9-23.8 42.5l0 53.5c0 5.4-.4 10.8-1.1 16 58.4-36.8 97.1-101.9 97.1-176zm48 0c0 116.3-77.6 214.6-183.9 245.7-19.5 16.4-44.6 26.3-72.1 26.3s-52.6-9.9-72.1-26.3C77.6 470.6 0 372.3 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm16 208l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n \"futbol\": [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M387 228.3c-4.4-2.8-7.6-7-9.2-11.9s-1.4-10.2 .5-15L411.6 118c-19.9-22.4-44.6-40.5-72.4-52.7l-69.1 57.6c-4 3.3-9 5.1-14.1 5.1s-10.2-1.8-14.1-5.1L172.8 65.3c-27.8 12.2-52.5 30.3-72.4 52.7l33.4 83.4c1.9 4.8 2.1 10.1 .5 15s-4.9 9.1-9.2 11.9L49 276.2c3 30.9 12.7 59.7 27.6 85.2l89.7-6c5.2-.3 10.3 1.1 14.5 4.2s7.2 7.4 8.4 12.5l22 87.2c14.4 3.2 29.4 4.8 44.8 4.8s30.3-1.7 44.8-4.8l22-87.2c1.3-5 4.2-9.4 8.4-12.5s9.3-4.5 14.5-4.2l89.7 6c15-25.4 24.7-54.3 27.6-85.1L387 228.3zM256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zm62 221c8.4 6.1 11.9 16.9 8.7 26.8l-18.3 56.3c-3.2 9.9-12.4 16.6-22.8 16.6l-59.2 0c-10.4 0-19.6-6.7-22.8-16.6l-18.3-56.3c-3.2-9.9 .3-20.7 8.7-26.8l47.9-34.8c8.4-6.1 19.8-6.1 28.2 0L318 221z\"],\n \"face-surprise\": [512, 512, [128558, \"surprise\"], \"f5c2\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-48 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"folder\": [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 400l384 0c8.8 0 16-7.2 16-16l0-240c0-8.8-7.2-16-16-16l-149.3 0c-17.3 0-34.2-5.6-48-16L212.3 83.2c-2.8-2.1-6.1-3.2-9.6-3.2L64 80c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16zm384 48L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64z\"],\n \"cloud\": [576, 512, [9729], \"f0c2\", \"M80 192c0-88.4 71.6-160 160-160 47.1 0 89.4 20.4 118.7 52.7 10.6-3.1 21.8-4.7 33.3-4.7 66.3 0 120 53.7 120 120 0 13.2-2.1 25.9-6.1 37.8 41.6 21.1 70.1 64.3 70.1 114.2 0 70.7-57.3 128-128 128l-304 0c-79.5 0-144-64.5-144-144 0-56.8 32.9-105.9 80.7-129.4-.4-4.8-.7-9.7-.7-14.6zM240 80c-61.9 0-112 50.1-112 112 0 8.4 .9 16.6 2.7 24.5 2.7 12.1-4.3 24.3-16.1 28.1-38.7 12.4-66.6 48.7-66.6 91.4 0 53 43 96 96 96l304 0c44.2 0 80-35.8 80-80 0-37.4-25.7-68.9-60.5-77.6-7.5-1.9-13.6-7.2-16.5-14.3s-2.1-15.2 2-21.7c7-11.1 11-24.2 11-38.3 0-39.8-32.2-72-72-72-11.1 0-21.5 2.5-30.8 6.9-10.5 5-23.1 1.7-29.8-7.8-20.3-28.6-53.7-47.1-91.3-47.1z\"],\n \"circle\": [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"face-grin-squint\": [512, 512, [128518, \"grin-squint\"], \"f585\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zm-249.6-143c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"],\n \"circle-user\": [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6-35.6-37.3-57.5-87.9-57.5-143.6 0-114.9 93.1-208 208-208s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z\"],\n \"rectangle-list\": [512, 512, [\"list-alt\"], \"f022\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM160 320a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm104-56l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"hand\": [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M256.5 0c-25.3 0-47.2 14.7-57.6 36-7-2.6-14.5-4-22.4-4-35.3 0-64 28.7-64 64l0 165.5-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L107 437c48 48 113.1 75 181 75l16.5 0c1.5 0 3-.1 4.5-.4 91.7-6.2 165-79.4 171.1-171.1 .3-1.5 .4-3 .4-4.5l0-176c0-35.3-28.7-64-64-64-5.5 0-10.9 .7-16 2l0-2c0-35.3-28.7-64-64-64-7.9 0-15.4 1.4-22.4 4-10.4-21.3-32.3-36-57.6-36zm-16 96.1l0-.1 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 168c0 13.3 10.7 24 24 24s24-10.7 24-24l0-136c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-8.8 7.2-16 16-16s16 7.2 16 16l0 172.9c-.1 .6-.1 1.3-.2 1.9-3.4 69.7-59.3 125.6-129 129-.6 0-1.3 .1-1.9 .2L288 464C232.9 464 180 442.1 141 403.1L53.2 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l43.7 43.7c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-223.4c0-8.8 7.2-16 16-16 8.8 0 16 7.1 16 15.9l0 136.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-135.9z\"],\n \"thumbs-up\": [512, 512, [128077, 61575], \"f164\", \"M171.5 38.8C192.3 4 236.5-10 274 7.6l7.2 3.8C316 32.3 330 76.5 312.4 114l0 0-14.1 30 109.7 0 7.4 .4c36.3 3.7 64.6 34.4 64.6 71.6 0 13.2-3.6 25.4-9.8 36 6.1 10.6 9.7 22.8 9.8 36 0 18.3-6.9 34.8-18 47.5 1.3 5.3 2 10.8 2 16.5 0 25.1-12.9 47-32.2 59.9-1.9 35.5-29.4 64.2-64.4 67.7l-7.4 .4-104.1 0c-18 0-35.9-3.4-52.6-9.9l-7.1-3-.7-.3-6.6-3.2-.7-.3-12.2-6.5c-12.3-6.5-23.3-14.7-32.9-24.1-4.1 26.9-27.3 47.4-55.3 47.4l-32 0c-30.9 0-56-25.1-56-56L0 200c0-30.9 25.1-56 56-56l32 0c10.8 0 20.9 3.1 29.5 8.5l50.1-106.5 .6-1.2 2.7-5 .6-.9zM56 192c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0zM253.6 51c-14.8-6.9-32.3-1.6-40.7 12l-2.2 4-56.8 120.9c-3.5 7.5-5.5 15.5-6 23.7l-.1 4.2 0 112.9 .2 7.9c2.4 32.7 21.4 62.1 50.7 77.7l11.5 6.1 6.3 3.1c12.4 5.6 25.8 8.5 39.4 8.5l104.1 0 2.4-.1c12.1-1.2 21.6-11.5 21.6-23.9l-.2-2.6c-.1-.9-.2-1.7-.4-2.6-2.7-12.1 4.3-24.2 16-28 9.7-3.1 16.6-12.2 16.6-22.8 0-4.3-1.1-8.2-3.1-11.8-6.3-11.1-2.8-25.2 8-32 6.8-4.3 11.2-11.8 11.2-20.2 0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c5.1-4.5 8.2-10.9 8.2-18l-.1-2.4c-1.1-11.3-10.1-20.3-21.4-21.4l-2.4-.1-147.5 0c-8.2 0-15.8-4.2-20.2-11.1-4.4-6.9-5-15.7-1.5-23.1L269 93.6c7-15 1.4-32.7-12.5-41L253.6 51z\"],\n \"building\": [384, 512, [127970, 61687], \"f1ad\", \"M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 80 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"],\n \"chess-rook\": [384, 512, [9820], \"f447\", \"M352 0c17.7 0 32 14.3 32 32l0 138.7c0 13.8-4.5 27.3-12.8 38.4l-35.2 46.9 0 112 40.8 68.1c4.7 7.8 7.2 16.7 7.2 25.8 0 27.7-22.4 50.1-50.1 50.1L50.1 512c-27.7 0-50.1-22.4-50.1-50.1 0-9.1 2.5-18 7.2-25.8L48 368 48 256 12.8 209.1C4.5 198 0 184.5 0 170.7L0 32C0 14.3 14.3 0 32 0L352 0zM48.3 460.8l-.3 1.1c0 1.2 1 2.1 2.1 2.1l283.8 0c1.2 0 2.1-1 2.1-2.1l-.3-1.1-36.5-60.8-214.4 0-36.5 60.8zM48 170.7c0 2.6 .6 5.1 1.8 7.4l1.4 2.2 0 0 35.2 46.9 9.6 12.8 0 112 192 0 0-112 9.6-12.8 35.2-46.9 0 0 1.4-2.2c1.2-2.3 1.8-4.8 1.8-7.4l0-122.7-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 122.7z\"],\n \"circle-question\": [512, 512, [62108, \"question-circle\"], \"f059\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"file\": [384, 512, [128196, 128459, 61462], \"f15b\", \"M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"],\n \"face-sad-cry\": [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M400 406.1L400 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 152.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4L160 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1C72.6 368.2 48 315 48 256 48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM152 196l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm172 20c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"],\n \"calendar-minus\": [448, 512, [], \"f272\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm32 136l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"face-tired\": [512, 512, [128555, \"tired\"], \"f5c8\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3c19 17.8 32.5 41.7 32.5 63.7 0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zM122.6 159.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"],\n \"hand-point-right\": [512, 512, [], \"f0a4\", \"M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 176 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4-.5-3.1-.7-6.2-.7-9.4 0-20 9.2-37.9 23.6-49.7-4.9-9-7.6-19.4-7.6-30.3 0-15.1 5.3-29 14-40-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80zM192 64l0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16 0 25.3-14.7 47.2-36 57.6 2.6 7 4 14.5 4 22.4 0 20-9.2 37.9-23.6 49.7 4.9 9 7.6 19.4 7.6 30.3 0 35.3-28.7 64-64 64l-88 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l34 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z\"],\n \"circle-up\": [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm11.3-387.3c-6.2-6.2-16.4-6.2-22.6 0l-104 104c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l72 0 0 104c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-104 72 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-104-104z\"],\n \"hand-scissors\": [512, 512, [], \"f257\", \"M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1-8.2-1.8C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.6-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-104 0c-35.3 0-64-28.7-64-64 0-2.8 .2-5.6 .5-8.3-19.4-11-32.5-31.8-32.5-55.7 0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.6s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11 0 8.8 7.2 16 16 16 9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6 0 8.8 7.2 16 16 16l104 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l0 0-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12L262.8 171.8 74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z\"],\n \"gem\": [512, 512, [128142], \"f3a5\", \"M168.5 72l87.5 93 87.5-93-175 0zM383.9 99.1l-72.3 76.9 129 0-56.6-76.9zm50 124.9L78.1 224 256 420.3 433.9 224zM71.5 176l129 0-72.3-76.9-56.6 76.9zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z\"],\n \"rectangle-xmark\": [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm334.1 49.9c9.4 9.4 9.4 24.6 0 33.9l-44.1 44.1 44.1 44.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-44.1-44.1-44.1 44.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l44.1-44.1-44.1-44.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l44.1 44.1 44.1-44.1c9.4-9.4 24.6-9.4 33.9 0z\"],\n \"trash-can\": [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M166.2-16c-13.3 0-25.3 8.3-30 20.8L120 48 24 48C10.7 48 0 58.7 0 72S10.7 96 24 96l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0-16.2-43.2C307.1-7.7 295.2-16 281.8-16L166.2-16zM32 144l0 304c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-304-48 0 0 304c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16l0-304-48 0zm160 72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176zm112 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176z\"],\n \"life-ring\": [512, 512, [], \"f1cd\", \"M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256S489.9 137.1 453.2 92.7L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0S37.7 71.6 47 81L58.8 92.7C22.1 137.1 0 193.9 0 256S22.1 374.9 58.8 419.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\n \"copyright\": [512, 512, [169], \"f1f9\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM205.1 306.9c-28.1-28.1-28.1-73.7 0-101.8s73.7-28.1 101.8 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-46.9-46.9-122.8-46.9-169.7 0s-46.9 122.8 0 169.7 122.8 46.9 169.7 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-28.1 28.1-73.7 28.1-101.8 0z\"],\n \"circle-left\": [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M48 256a208 208 0 1 1 416 0 208 208 0 1 1 -416 0zm464 0a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM124.7 244.7c-6.2 6.2-6.2 16.4 0 22.6l104 104c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-72 104 0c13.3 0 24-10.7 24-24l0-16c0-13.3-10.7-24-24-24l-104 0 0-72c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-104 104z\"],\n \"calendar\": [448, 512, [128197, 128198], \"f133\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 48 352 0 0-48c0-8.8-7.2-16-16-16l-264 0zM48 224l0 192c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-192-352 0z\"],\n \"face-frown-open\": [512, 512, [128550, \"frown-open\"], \"f57a\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4 16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"chart-bar\": [512, 512, [\"bar-chart\"], \"f080\", \"M48 56c0-13.3-10.7-24-24-24S0 42.7 0 56L0 400c0 44.2 35.8 80 80 80l408 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L80 432c-17.7 0-32-14.3-32-32L48 56zm104 72l208 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L152 80c-13.3 0-24 10.7-24 24s10.7 24 24 24zm0 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0z\"],\n \"house\": [512, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M240 6.1c9.1-8.2 22.9-8.2 32 0l232 208c9.9 8.8 10.7 24 1.8 33.9s-24 10.7-33.9 1.8l-8-7.2 0 205.3c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-205.3-8 7.2c-9.9 8.8-25 8-33.9-1.8s-8-25 1.8-33.9L240 6.1zm16 50.1L96 199.7 96 448c0 8.8 7.2 16 16 16l48 0 0-104c0-39.8 32.2-72 72-72l48 0c39.8 0 72 32.2 72 72l0 104 48 0c8.8 0 16-7.2 16-16l0-248.3-160-143.4zM208 464l96 0 0-104c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 104z\"],\n \"face-frown\": [512, 512, [9785, \"frown\"], \"f119\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM334.7 384.6C319.7 369 293.6 352 256 352s-63.7 17-78.7 32.6c-9.2 9.6-24.4 9.9-33.9 .7s-9.9-24.4-.7-33.9c22.1-23 60-47.4 113.3-47.4s91.2 24.4 113.3 47.4c9.2 9.6 8.9 24.8-.7 33.9s-24.8 8.9-33.9-.7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"user\": [448, 512, [128100, 62144, 62470, \"user-alt\", \"user-large\"], \"f007\", \"M144 128a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zm208 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM48 480c0-70.7 57.3-128 128-128l96 0c70.7 0 128 57.3 128 128l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8c0-97.2-78.8-176-176-176l-96 0C78.8 304 0 382.8 0 480l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z\"],\n \"snowflake\": [512, 512, [10052, 10054], \"f2dc\", \"M280.1-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 78.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l57 57 0 76.5-66.2-38.2-20.9-77.8c-3.4-12.8-16.6-20.4-29.4-17S95.2 98 98.7 110.8l8.4 31.5-67.6-39C28 96.6 13.3 100.5 6.7 112S4 138.2 15.5 144.8l67.6 39-31.5 8.4c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l77.8-20.9 66.2 38.2-66.2 38.2-77.8-20.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l31.5 8.4-67.6 39C4 373.8 .1 388.5 6.7 400s21.3 15.4 32.8 8.8l67.6-39-8.4 31.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l20.9-77.8 66.2-38.2 0 76.5-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 78.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-78.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-76.5 66.2 38.2 20.9 77.8c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-8.4-31.5 67.6 39c11.5 6.6 26.2 2.7 32.8-8.8s2.7-26.2-8.8-32.8l-67.6-39 31.5-8.4c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-77.8 20.9-66.2-38.2 66.2-38.2 77.8 20.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-31.5-8.4 67.6-39c11.5-6.6 15.4-21.3 8.8-32.8s-21.3-15.4-32.8-8.8l-67.6 39 8.4-31.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-20.9 77.8-66.2 38.2 0-76.5 57-57c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-78.1z\"],\n \"bookmark\": [384, 512, [128278, 61591], \"f02e\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 417.1c0 25.6-28.5 40.8-49.8 26.6L192 412.8 49.8 507.7C28.5 521.9 0 506.6 0 481.1L0 64zM64 48c-8.8 0-16 7.2-16 16l0 387.2 117.4-78.2c16.1-10.7 37.1-10.7 53.2 0L336 451.2 336 64c0-8.8-7.2-16-16-16L64 48z\"],\n \"square-caret-left\": [448, 512, [\"caret-square-left\"], \"f191\", \"M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4S288 142.5 288 152l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"],\n \"handshake\": [640, 512, [129309, 62662, \"handshake-alt\", \"handshake-simple\"], \"f2b5\", \"M598.1 75.4c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3l-74.5 54.2-9.9-6.6C465.8 71 442.6 64 418.9 64l-59.2 0-.4 0-143.6 0c-26.7 0-52.5 8.9-73.4 25.1L70.1 36.6c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5l88 64c9.6 6.9 22.7 5.9 31.1-2.4l3.9-3.9c13.5-13.5 31.8-21.1 50.9-21.1l46.3 0-91.7 91.7c-15.6 15.6-15.6 40.9 0 56.6l.8 .8C218 308 294 308 340.9 261.1l27.1-27.1 97.8 97.8c15.6 15.6 15.6 40.9 0 56.6l-9.8 9.8-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l28 28c-17.5 10.4-37.2 16.7-57.6 18.5L313 399c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l15 15-3.8 0c-36.1 0-70.7-14.3-96.2-39.8L65 279c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L160.2 442.1c34.5 34.5 81.3 53.9 130.1 53.9l51.8 0 1 1 1-1 5.7 0c48.8 0 95.6-19.4 130.1-53.9l19.9-19.9c1.2-1.2 2.3-2.3 3.4-3.5 .7-.5 1.3-1.1 1.9-1.7L609 313c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-53.8 53.8c-4.2-12.8-11.3-24.9-21.5-35.1L385 183c-9.4-9.4-24.6-9.4-33.9 0l-44.1 44.1c-26.5 26.5-68.5 28-96.7 4.6l98.7-98.7c13.4-13.4 31.6-21 50.6-21.1l8.5 0 .2 0 50.8 0c14.2 0 28.1 4.2 39.9 12.1L482.7 140c8.4 5.6 19.3 5.3 27.4-.6l88-64z\"],\n \"face-smile-wink\": [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"],\n \"face-grin-squint-tears\": [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M403.1 403.1c67.2-67.2 78.8-168.9 34.9-248l36.7-5.2c4.5-.6 8.8-1.6 13.1-2.8 44.6 94.9 27.7 211.5-50.7 290s-195.1 95.3-290 50.7c1.2-4.2 2.1-8.6 2.8-13.1l5.2-36.7c79.1 43.9 180.8 32.3 248-34.9zM75 75c78.4-78.4 195.1-95.3 290-50.7-1.2 4.2-2.1 8.6-2.8 13.1l-5.2 36.7c-79.1-43.9-180.8-32.3-248 34.9s-78.8 168.9-34.9 248l-36.7 5.2c-4.5 .6-8.8 1.6-13.1 2.8-44.6-94.9-27.7-211.5 50.7-290zM370.9 206.5c5.8-10.9 21.1-12.4 26.4-1.3 25.6 53.5 16.2 119.6-28.2 163.9-44.3 44.3-110.3 53.7-163.8 28.2-11.1-5.3-9.6-20.6 1.3-26.4 32-17.1 64.2-40.8 93.8-70.4 29.7-29.7 53.4-61.9 70.5-94zM93.3 281.9c-1.7-8 2.9-15.9 10.6-18.4l84.6-28c5.7-1.9 12.1-.4 16.3 3.9s5.8 10.6 3.9 16.3l-28 84.6c-2.6 7.7-10.5 12.3-18.4 10.6s-13.4-9-12.7-17.1l3.9-43.1-43.1 3.9c-8.1 .7-15.5-4.7-17.1-12.7zM294.6 110.4l-3.9 43.1 43.1-3.9c8.1-.7 15.5 4.7 17.1 12.7s-2.9 15.9-10.6 18.4l-84.6 28c-5.7 1.9-12.1 .4-16.3-3.9s-5.8-10.6-3.9-16.3l28-84.6c2.6-7.7 10.5-12.3 18.4-10.6s13.4 9 12.7 17.1zM512 51.4c0 25.6-18.8 47.3-44.1 50.9L421.1 109c-10.6 1.5-19.6-7.5-18.1-18.1l6.7-46.7C413.3 18.8 435 0 460.6 0 489 0 512 23 512 51.4zM44.1 409.7L90.9 403c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C98.7 493.2 77 512 51.4 512 23 512 0 489 0 460.6 0 435 18.8 413.3 44.1 409.7z\"],\n \"file-audio\": [384, 512, [], \"f1c7\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM221.9 267.6c-4.7 10-.3 21.9 9.7 26.6 19.2 8.9 32.4 28.3 32.4 50.8s-13.2 41.9-32.4 50.8c-10 4.7-14.4 16.6-9.7 26.6s16.6 14.4 26.6 9.7C281.2 416.8 304 383.6 304 345s-22.8-71.9-55.6-87.1c-10-4.7-21.9-.3-26.6 9.7zM104 305c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24l16 0 27.2 34c3 3.8 7.6 6 12.5 6l.3 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16l-.3 0c-4.9 0-9.5 2.2-12.5 6l-27.2 34-16 0zM223.3 373c9.9-5.4 16.7-16 16.7-28.1s-6.7-22.7-16.7-28.1c-7.8-4.2-15.3 3.3-15.3 12.1l0 32c0 8.8 7.6 16.3 15.3 12.1z\"],\n \"calendar-xmark\": [448, 512, [\"calendar-times\"], \"f273\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm171.9 92.1c9.4 9.4 9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0z\"],\n \"circle-down\": [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM244.7 387.3c6.2 6.2 16.4 6.2 22.6 0l104-104c4.6-4.6 5.9-11.5 3.5-17.4S366.5 256 360 256l-72 0 0-104c0-13.3-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24l0 104-72 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l104 104z\"],\n \"file-lines\": [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"comments\": [576, 512, [128490, 61670], \"f086\", \"M76.2 258.7c6.1-15.2 4-32.6-5.6-45.9-14.5-20.1-22.6-43.7-22.6-68.8 0-66.8 60.5-128 144-128s144 61.2 144 128-60.5 128-144 128c-15.9 0-31.1-2.3-45.3-6.5-10.3-3.1-21.4-2.5-31.4 1.5l-50.4 20.2 11.4-28.5zM0 144c0 35.8 11.6 69.1 31.7 96.8L1.9 315.2c-1.3 3.2-1.9 6.6-1.9 10 0 14.8 12 26.8 26.8 26.8 3.4 0 6.8-.7 10-1.9l96.3-38.5c18.6 5.5 38.4 8.4 58.9 8.4 106 0 192-78.8 192-176S298-32 192-32 0 46.8 0 144zM384 512c20.6 0 40.3-3 58.9-8.4l96.3 38.5c3.2 1.3 6.6 1.9 10 1.9 14.8 0 26.8-12 26.8-26.8 0-3.4-.7-6.8-1.9-10l-29.7-74.4c20-27.8 31.7-61.1 31.7-96.8 0-82.4-61.7-151.5-145-170.7-1.6 16.3-5.1 31.9-10.1 46.9 63.9 14.8 107.2 67.3 107.2 123.9 0 25.1-8.1 48.7-22.6 68.8-9.6 13.3-11.7 30.6-5.6 45.9l11.4 28.5-50.4-20.2c-10-4-21.1-4.5-31.4-1.5-14.2 4.2-29.4 6.5-45.3 6.5-72.2 0-127.1-45.7-140.7-101.2-15.6 3.2-31.7 5-48.1 5.2 16.4 81.9 94.7 144 188.8 144z\"],\n \"circle-check\": [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm70.7 121.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L243.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z\"],\n \"moon\": [512, 512, [127769, 9214], \"f186\", \"M239.3 48.7c-107.1 8.5-191.3 98.1-191.3 207.3 0 114.9 93.1 208 208 208 33.3 0 64.7-7.8 92.6-21.7-103.4-23.4-180.6-115.8-180.6-226.3 0-65.8 27.4-125.1 71.3-167.3zM0 256c0-141.4 114.6-256 256-256 19.4 0 38.4 2.2 56.7 6.3 9.9 2.2 17.3 10.5 18.5 20.5s-4 19.8-13.1 24.4c-60.6 30.2-102.1 92.7-102.1 164.8 0 101.6 82.4 184 184 184 5 0 9.9-.2 14.8-.6 10.1-.8 19.6 4.8 23.8 14.1s2 20.1-5.3 27.1C387.3 484.8 324.8 512 256 512 114.6 512 0 397.4 0 256z\"],\n \"closed-captioning\": [512, 512, [], \"f20a\", \"M448 112c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l384 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm88 144l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z\"],\n \"images\": [576, 512, [], \"f302\", \"M480 80c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16l-320 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l320 0zM160 32c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L160 32zm80 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm140.7 3.8c-4.3-7.3-12.2-11.8-20.7-11.8s-16.4 4.5-20.7 11.8l-46.5 79-17.2-24.6c-4.5-6.4-11.8-10.2-19.7-10.2s-15.2 3.8-19.7 10.2l-56 80c-5.1 7.3-5.8 16.9-1.6 24.8S191.1 320 200 320l240 0c8.6 0 16.6-4.6 20.8-12.1s4.2-16.7-.1-24.1l-80-136zM48 152c0-13.3-10.7-24-24-24S0 138.7 0 152L0 448c0 35.3 28.7 64 64 64l360 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 464c-8.8 0-16-7.2-16-16l0-296z\"],\n \"circle-right\": [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3c6.2-6.2 6.2-16.4 0-22.6l-104-104c-4.6-4.6-11.5-5.9-17.4-3.5S256 145.5 256 152l0 72-104 0c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24l104 0 0 72c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l104-104z\"],\n \"id-card\": [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M48 416l0-256 480 0 0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM376 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"],\n \"circle-play\": [512, 512, [61469, \"play-circle\"], \"f144\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM212.5 147.5c-7.4-4.5-16.7-4.7-24.3-.5S176 159.3 176 168l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88zM298 256l-74 45.2 0-90.4 74 45.2z\"],\n \"face-laugh-beam\": [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"address-book\": [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M384 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16L80 64c0-8.8 7.2-16 16-16l288 0zM96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM240 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm-32 40c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z\"],\n \"hourglass\": [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5l81.5 81.5-81.5 81.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5l-81.5-81.5 81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24S373.3 0 360 0L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19-224 0 0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z\"],\n \"headphones\": [448, 512, [127911, 62863, \"headphones-alt\", \"headphones-simple\"], \"f025\", \"M48 224c0-97.2 78.8-176 176-176s176 78.8 176 176l0 44.8c-14.1-8.2-30.5-12.8-48-12.8l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-17.5 0-33.9 4.7-48 12.8L48 224zm0 128c0-26.5 21.5-48 48-48l16 0 0 128-16 0c-26.5 0-48-21.5-48-48l0-32zm352 0l0 32c0 26.5-21.5 48-48 48l-16 0 0-128 16 0c26.5 0 48 21.5 48 48z\"],\n \"file-powerpoint\": [384, 512, [], \"f1c4\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm88 256c-13.3 0-24 10.7-24 24l0 128c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 28 0c37.6 0 68-30.4 68-68s-30.4-68-68-68l-52 0zm52 88l-28 0 0-40 28 0c11 0 20 9 20 20s-9 20-20 20z\"],\n \"window-maximize\": [512, 512, [128470], \"f2d0\", \"M48 224l0 160c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-160-416 0zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z\"],\n \"comment-dots\": [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M0 240c0 54.4 19.3 104.6 51.9 144.9L3.1 474.3c-2 3.7-3.1 7.9-3.1 12.2 0 14.1 11.4 25.5 25.5 25.5 4 0 7.8-.6 11.5-2.1L153.4 460c31.4 12.9 66.1 20 102.6 20 141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240zM94 407.9c9.3-17.1 7.4-38.1-4.8-53.2-26.1-32.3-41.2-71.9-41.2-114.7 0-103.2 90.2-192 208-192s208 88.8 208 192-90.2 192-208 192c-30.2 0-58.7-5.9-84.3-16.4-11.9-4.9-25.3-4.8-37.1 .3L76 440.9 94 407.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"face-grin-tongue-wink\": [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M366.9 432c.8-5.2 1.1-10.6 1.1-16l0-53.5c10.2-12.6 18.3-26.9 23.8-42.5 4.1-11.6-7.8-21.4-19.6-17.8-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 5.5 15.5 13.6 29.9 23.8 42.4l0 53.5c0 5.4 .4 10.8 1.1 16-58.4-36.8-97.1-101.9-97.1-176 0-114.9 93.1-208 208-208s208 93.1 208 208c0 74.1-38.8 139.2-97.1 176zm-38.8 69.7C434.4 470.6 512 372.3 512 256 512 114.6 397.4 0 256 0S0 114.6 0 256C0 372.3 77.6 470.6 183.9 501.7 203.4 518.1 228.5 528 256 528s52.6-9.9 72.1-26.3zM320 378.6l0 37.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-37.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9 2.8 12.6 20.8 12.6 23.6 0 2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM132 232c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zm228.4-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM288 208a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"],\n \"hourglass-half\": [384, 512, [\"hourglass-2\"], \"f252\", \"M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5l-81.5 81.5 81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5l81.5-81.5-81.5-81.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5l-81.5-81.5-81.5 81.5zM80.8 432c-.5 4.3-.8 8.6-.8 13l0 19 224 0 0-19c0-4.4-.3-8.7-.8-13L80.8 432zM254.1 160l-124.1 0 62.1 62.1 62.1-62.1zm39.7-48C300.4 98.1 304 82.7 304 67l0-19-224 0 0 19c0 15.7 3.6 31.1 10.2 45l203.5 0z\"],\n \"credit-card\": [512, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M448 112c8.8 0 16 7.2 16 16l0 32-416 0 0-32c0-8.8 7.2-16 16-16l384 0zm16 112l0 160c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-160 416 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM80 344c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm144 0c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24z\"],\n \"hand-spock\": [512, 512, [128406], \"f259\", \"M138.3 80.8c-9.2-33.8 10.5-68.8 44.3-78.4 34-9.6 69.4 10.2 79 44.2L291.9 153.7 305.1 84c6.6-34.7 40.1-57.5 74.8-50.9 31.4 6 53 33.9 52 64.9 10-2.6 20.8-2.8 31.5-.1 34.3 8.6 55.1 43.3 46.6 77.6L454.7 397.2C437.8 464.7 377.2 512 307.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2-51.8-131.2c-13-32.9 3.2-70.1 36-83 11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L142.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37L73.8 323.4c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104c-2.9 11.7-13.4 19.9-25.5 19.9-16.5 0-28.9-15-25.8-31.2L383.7 99c1.7-8.7-4-17.1-12.7-18.7S354 84.3 352.3 93L320.5 260c-2.2 11.6-12.4 20-24.2 20-11 0-20.7-7.3-23.7-17.9L215.4 59.6z\"],\n \"bell-slash\": [576, 512, [128277, 61943], \"f1f6\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.8-87.8c17.5-3.3 30.8-18.7 30.8-37.1 0-6.7-1.8-13.3-5.1-19L485 321.7c-19-32.6-29-69.6-29-107.3l0-14.5c0-84.6-62.6-154.7-144-166.3l0-9.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 9.7c-42.2 6-79.4 27.8-105.4 59.1L41-24.9zM192.8 126.9C214.7 98.4 249.2 80 288 80 354.3 80 408 133.7 408 200l0 14.5c0 46.2 12.3 91.5 35.5 131.4l12.9 22.1-22.6 0-241.1-241.1zM132.5 345.9c19.5-33.4 31.3-70.7 34.6-109l-46.7-46.7c-.2 3.3-.3 6.6-.3 9.9l0 14.5c0 37.7-10 74.7-29 107.3L69.1 359.2c-3.4 5.8-5.1 12.3-5.1 19 0 20.9 16.9 37.8 37.8 37.8l244.4 0-48-48-178.6 0 12.9-22.1zM220.1 464c9.9 28 36.6 48 67.9 48s58-20 67.9-48l-135.8 0z\"],\n \"star\": [576, 512, [11088, 61446], \"f005\", \"M288.1-32c9 0 17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2s-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1zm0 76.8L230.3 158c-3.5 6.8-10 11.6-17.6 12.8l-125.5 20 89.8 89.9c5.4 5.4 7.9 13.1 6.7 20.7l-19.8 125.5 113.3-57.6c6.8-3.5 14.9-3.5 21.8 0l113.3 57.6-19.8-125.5c-1.2-7.6 1.3-15.3 6.7-20.7l89.8-89.9-125.5-20c-7.6-1.2-14.1-6-17.6-12.8L288.1 44.8z\"],\n \"flag\": [448, 512, [127988, 61725], \"f024\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4 44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0-35.1-17.6-75.4-22-113.5-12.5L48 52 48 24zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8 54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4-48.2-24.1-103.3-30.1-155.6-17.1l-68.6 17.2 0-237z\"],\n \"lemon\": [448, 512, [127819], \"f094\", \"M368 80c-3.2 0-6.2 .4-8.9 1.3-19.1 5.5-46.1 10.7-74.3 3.3-57.4-14.9-124.6 7.4-174.7 57.5S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3-.8 2.8-1.3 5.8-1.3 8.9 0 17.7 14.3 32 32 32 3.2 0 6.2-.4 8.9-1.3 19.1-5.5 46.1-10.7 74.3-3.3 57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3 .8-2.8 1.3-5.8 1.3-8.9 0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80 0 7.7-1.1 15.2-3.1 22.3-4.6 15.8-7.1 32.9-3 48.9 20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3-7.1 2-14.6 3.1-22.3 3.1-44.2 0-80-35.8-80-80 0-7.7 1.1-15.2 3.1-22.3 4.6-15.8 7.1-32.9 3-48.9-20.1-77.6 10.9-161.5 70-220.7S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3 7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7-3.7 12.7-17.1 20-29.8 16.3S85.2 278 89 265.3c19.8-67.7 76.6-124.5 144.3-144.3 12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"],\n \"window-restore\": [576, 512, [], \"f2d2\", \"M512 80L224 80c-8.8 0-16 7.2-16 16l0 16-48 0 0-16c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-48 48 0c8.8 0 16-7.2 16-16l0-192c0-8.8-7.2-16-16-16zM368 288l-320 0 0 128c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-128zM64 160l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z\"],\n \"face-grin-hearts\": [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M464 256c0 114.9-93.1 208-208 208S48 370.9 48 256c0-3.5 .1-7.1 .3-10.6-14-13.9-29.7-33.1-39.3-56.7-5.8 21.4-8.9 44-8.9 67.3 0 141.4 114.6 256 256 256S512 397.4 512 256c0-23.3-3.1-45.9-8.9-67.3-9.6 23.7-25.4 42.8-39.3 56.7 .2 3.5 .3 7 .3 10.6zM368 58.9c11.7-6 24.5-9.6 37.7-10.6-42.1-30.4-93.8-48.3-149.7-48.3S148.4 17.9 106.3 48.3c13.2 1 26 4.6 37.7 10.6 13.8-7.1 29.3-10.9 45.1-10.9l2.9 0c8.9 0 17.6 1.2 25.8 3.5 12.4-2.3 25.2-3.5 38.2-3.5s25.8 1.2 38.2 3.5c8.2-2.3 16.9-3.5 25.8-3.5l2.9 0c15.8 0 31.3 3.8 45.1 10.9zm4.2 243.4c-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 19.8 55.9 73.1 95.9 135.8 95.9 62.7 0 116-40.1 135.8-96 4.1-11.6-7.8-21.4-19.6-17.8zM322.9 96L320 96c-26.5 0-48 21.5-48 48 0 53.4 66.9 95.7 89 108.2 4.4 2.5 9.6 2.5 14 0 22.1-12.5 89-54.8 89-108.2 0-26.5-21.5-48-48-48l-2.9 0c-13.5 0-26.5 5.4-36 14.9l-9.1 9.1-9.1-9.1c-9.5-9.5-22.5-14.9-36-14.9zm-188 14.9c-9.5-9.5-22.5-14.9-36-14.9L96 96c-26.5 0-48 21.5-48 48 0 53.4 66.9 95.7 89 108.2 4.4 2.5 9.6 2.5 14 0 22.1-12.5 89-54.8 89-108.2 0-26.5-21.5-48-48-48l-2.9 0c-13.5 0-26.5 5.4-36 14.9l-9.1 9.1-9.1-9.1z\"],\n \"face-kiss-beam\": [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm240 16l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-64-92c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"file-pdf\": [576, 512, [], \"f1c1\", \"M208 48L96 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0 48-80 0c-35.3 0-64-28.7-64-64L32 64C32 28.7 60.7 0 96 0L229.5 0c17 0 33.3 6.7 45.3 18.7L397.3 141.3c12 12 18.7 28.3 18.7 45.3l0 149.5-48 0 0-128-88 0c-39.8 0-72-32.2-72-72l0-88zM348.1 160L256 67.9 256 136c0 13.3 10.7 24 24 24l68.1 0zM240 380l32 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-12 0 0 28c0 11-9 20-20 20s-20-9-20-20l0-128c0-11 9-20 20-20zm32 80c11 0 20-9 20-20s-9-20-20-20l-12 0 0 40 12 0zm96-80l32 0c28.7 0 52 23.3 52 52l0 64c0 28.7-23.3 52-52 52l-32 0c-11 0-20-9-20-20l0-128c0-11 9-20 20-20zm32 128c6.6 0 12-5.4 12-12l0-64c0-6.6-5.4-12-12-12l-12 0 0 88 12 0zm76-108c0-11 9-20 20-20l48 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 24 28 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-128z\"],\n \"face-grin-wide\": [512, 512, [128515, \"grin-alt\"], \"f581\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64 14.3-64 32-64 32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"],\n \"face-laugh-squint\": [512, 512, [\"laugh-squint\"], \"f59b\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm125.2 76.4c-6.5-14 5-28.4 20.4-28.4l220.8 0c15.4 0 26.8 14.4 20.4 28.4-22.8 49.4-72.8 83.6-130.8 83.6s-107.9-34.2-130.8-83.6zm-2.6-173.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"],\n \"face-kiss-wink-heart\": [640, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M386 439.5c-29.2 15.6-62.5 24.5-98 24.5-114.9 0-208-93.1-208-208S173.2 48 288 48c113.2 0 205.2 90.4 207.9 202.9 14.3 1.5 28.6 6 41.9 13.7 2 1.2 4 2.4 5.9 3.7 .2-4.1 .3-8.2 .3-12.3 0-141.4-114.6-256-256-256S32 114.6 32 256 146.6 512 288 512c41.4 0 80.5-9.8 115.1-27.3-5.8-12.9-12-28.5-17.2-45.2zM256 288c0 8.8 7.2 16 16 16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c26.5 0 48-21.5 48-48 0-12.3-4.6-23.5-12.2-32 7.6-8.5 12.2-19.7 12.2-32 0-26.5-21.5-48-48-48l-32 0c-8.8 0-16 7.2-16 16zm-48-48a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm152-44l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zM542.8 350c-2.2-18.3-12.9-34.6-28.9-43.8-28.1-16.2-63.9-6.6-80.1 21.5l-2.7 4.6c-24.5 42.5 7.9 117.9 24.4 150.8 5.1 10.1 15.5 16.1 26.8 15.5 36.7-2.2 118.2-11.7 142.8-54.2l2.7-4.6c16.2-28.1 6.6-63.9-21.5-80.1-16-9.2-35.4-10.4-52.4-3.1l-9.8 4.2-1.3-10.6z\"],\n \"copy\": [448, 512, [], \"f0c5\", \"M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-197.5c0-17-6.7-33.3-18.7-45.3L370.7 18.7C358.7 6.7 342.5 0 325.5 0L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-48 0 0 16c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0 0-48-16 0z\"],\n \"chess-king\": [448, 512, [9818], \"f43f\", \"M224-32c13.3 0 24 10.7 24 24l0 40 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 80 161.8 0c21.1 0 38.2 17.1 38.2 38.2 0 6.4-1.6 12.7-4.7 18.3L357.2 374.5 405.6 435c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L79.4 512c-26.2 0-47.4-21.2-47.4-47.4 0-10.8 3.7-21.2 10.4-29.6L90.8 374.5 4.7 216.6C1.6 210.9 0 204.6 0 198.2 0 177.1 17.1 160 38.2 160l161.8 0 0-80-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-40c0-13.3 10.7-24 24-24zM131.8 400l-3.6 4.4-47.6 59.6 286.6 0-47.6-59.6-3.6-4.4-184.3 0zm1.1-48.5l.3 .5 181.6 0 .3-.5 78.3-143.5-338.7 0 78.3 143.5z\"],\n \"square-plus\": [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\n \"file-code\": [384, 512, [], \"f1c9\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM170.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm80-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z\"],\n \"face-grin-wink\": [512, 512, [\"grin-wink\"], \"f58c\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"],\n \"money-bill-1\": [512, 512, [\"money-bill-alt\"], \"f3d1\", \"M112 112c0 35.3-28.7 64-64 64l0 160c35.3 0 64 28.7 64 64l288 0c0-35.3 28.7-64 64-64l0-160c-35.3 0-64-28.7-64-64l-288 0zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm256 16a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm-16 44c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"],\n \"eye-slash\": [576, 512, [], \"f070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM176.9 111.1c32.1-18.9 69.2-31.1 111.1-31.1 65.2 0 118.8 29.6 159.9 67.7 38.5 35.7 65.1 78.3 78.6 108.3-13.6 30-40.2 72.5-78.6 108.3-3.1 2.8-6.2 5.6-9.4 8.4L393.8 328c14-20.5 22.2-45.3 22.2-72 0-70.7-57.3-128-128-128-26.7 0-51.5 8.2-72 22.2l-39.1-39.1zm182 182l-108-108c11.1-5.8 23.7-9.1 37.1-9.1 44.2 0 80 35.8 80 80 0 13.4-3.3 26-9.1 37.1zM103.4 173.2l-34-34c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6L352.2 422c-20 6.4-41.4 10-64.2 10-65.2 0-118.8-29.6-159.9-67.7-38.5-35.7-65.1-78.3-78.6-108.3 10.4-23.1 28.6-53.6 54-82.8z\"],\n \"file-word\": [384, 512, [], \"f1c2\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm71.3 274.2c-3.2-12.9-16.2-20.7-29.1-17.5S85.5 273 88.7 285.8l32 128c2.5 10.2 11.4 17.5 21.9 18.1s20.1-5.7 23.8-15.5l25.5-68.1 25.5 68.1c3.7 9.8 13.3 16.1 23.8 15.5s19.4-7.9 21.9-18.1l32-128c3.2-12.9-4.6-25.9-17.5-29.1s-25.9 4.6-29.1 17.5l-13.3 53.2-20.9-55.8C211 262.2 202 256 192 256s-19 6.2-22.5 15.6l-20.9 55.8-13.3-53.2z\"],\n \"face-angry\": [512, 512, [128544, \"angry\"], \"f556\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-144c24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50s-75.7 19.8-97.5 50c-7.7 10.8-5.3 25.8 5.5 33.5s25.8 5.3 33.5-5.5c13.1-18.2 34.4-30 58.5-30zm-80-96c17.7 0 32-14.3 32-32l0-.3 9.7 3.2c10.5 3.5 21.8-2.2 25.3-12.6s-2.2-21.8-12.6-25.3l-96-32c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3l28.9 9.6c-4.1 5.4-6.6 12.1-6.6 19.4 0 17.7 14.3 32 32 32zm192-32c0-7.3-2.4-14-6.6-19.4l28.9-9.6c10.5-3.5 16.1-14.8 12.6-25.3s-14.8-16.1-25.3-12.6l-96 32c-10.5 3.5-16.1 14.8-12.6 25.3s14.8 16.1 25.3 12.6l9.7-3.2 0 .3c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\n \"chess-knight\": [448, 512, [9822], \"f441\", \"M232-32c110.5 0 200 89.5 200 200l0 127.7c0 18.9-6.1 37.1-17.2 52.2l-5.1 6.2-36.3 40.7 32.1 40.2c6.7 8.4 10.4 18.8 10.4 29.6l-.2 4.8c-2.4 23.9-22.6 42.5-47.1 42.5l-289.2 0-4.8-.2c-23.9-2.4-42.5-22.6-42.5-47.1 0-10.8 3.7-21.2 10.4-29.6l37.6-47 0-24.3c0-24.3 10.1-47.6 27.8-64.2l63.5-59.5-17.4 0-.2 .2c-20.3 20.3-49.6 28.2-77.1 21.1l-5.5-1.6c-30.9-10.3-52.3-38-54.9-70.1l-.2-6.4 0-1.4c0-19.7 7.1-38.8 19.9-53.8l76.1-88.8 0-47.1 .1-2.5C113.4-22.6 123.6-32 136-32l96 0zM80.7 464l286.6 0-38.4-48-209.9 0-38.4 48zM160 48c0 5.7-2.1 11.3-5.8 15.6L72.3 159.1C67 165.4 64 173.4 64 181.7l0 1.4 .4 5.2c1.9 11.9 10.3 21.9 21.9 25.8l4.5 1.1c10.5 1.9 21.3-1.4 29-9l7.2-7.2 3.7-3c3.9-2.6 8.5-4 13.3-4l88 0c9.8 0 18.7 6 22.3 15.2s1.3 19.6-5.9 26.3l-107.8 101c-8.1 7.6-12.7 18.1-12.7 29.2l0 4.3 205.2 0 40.7-45.8 2.3-2.8c5.1-6.8 7.8-15.2 7.8-23.7L384 168c0-83.9-68.1-152-152-152l-72 0 0 32zm32 72a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"],\n \"face-grin-beam\": [512, 512, [128516, \"grin-beam\"], \"f582\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"hand-peace\": [448, 512, [9996], \"f25b\", \"M219 1.4c-35.2-3.7-66.6 21.8-70.3 57l-6.4 60.6-17.4-49.4C113.2 36.3 76.6 18.8 43.3 30.5S-7.6 78.8 4.1 112.1L56.9 262.2C41.7 276.7 32.2 297.3 32.2 320l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-120c0-35.3-28.7-64-64-64-7.9 0-15.4 1.4-22.4 4-10.4-21.3-32.3-36-57.6-36-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4c-6.6 10.1-10.5 22.2-10.5 35.2l0 48c0 .7 0 1.4 0 2-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM79.6 85.6l54.3 154.4-21.7 0c-4 0-8 .3-11.9 .9L49.4 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM256.2 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36 5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64 0-.7 0-1.4 0-2 5.1 1.3 10.5 2 16 2 7.9 0 15.4-1.4 22.4-4zm73.6-28c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48z\"],\n \"compass\": [512, 512, [129517], \"f14e\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.3 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"square\": [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"],\n \"face-grin\": [512, 512, [128512, \"grin\"], \"f580\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"face-smile\": [512, 512, [128578, \"smile\"], \"f118\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"face-smile-beam\": [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"folder-closed\": [512, 512, [], \"e185\", \"M448 400L64 400c-8.8 0-16-7.2-16-16l0-144 416 0 0 144c0 8.8-7.2 16-16 16zm16-208l-416 0 0-96c0-8.8 7.2-16 16-16l138.7 0c3.5 0 6.8 1.1 9.6 3.2L250.7 112c13.8 10.4 30.7 16 48 16L448 128c8.8 0 16 7.2 16 16l0 48zM64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z\"],\n \"keyboard\": [576, 512, [9000], \"f11c\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z\"],\n \"face-rolling-eyes\": [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 376c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM160 264c-22.1 0-40-17.9-40-40 0-9.5 3.3-18.1 8.8-25 3.2 14.3 16 25 31.2 25s28-10.7 31.2-25c5.5 6.8 8.8 15.5 8.8 25 0 22.1-17.9 40-40 40zm0 40a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-40c-22.1 0-40-17.9-40-40 0-9.5 3.3-18.1 8.8-25 3.2 14.3 16 25 31.2 25s28-10.7 31.2-25c5.5 6.8 8.8 15.5 8.8 25 0 22.1-17.9 40-40 40zm0 40a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"],\n \"face-grimace\": [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256a256 256 0 1 1 -512 0 256 256 0 1 1 512 0zM152 352c0 11.9 8.6 21.8 20 23.7l0-47.3c-11.4 1.9-20 11.8-20 23.7zm84 24l0-48-24 0 0 48 24 0zm64 0l0-48-24 0 0 48 24 0zm40-.3c11.4-1.9 20-11.8 20-23.7s-8.6-21.8-20-23.7l0 47.3zM176 288l160 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-160 0c-35.3 0-64-28.7-64-64s28.7-64 64-64zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"circle-dot\": [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm0 304a96 96 0 1 1 0-192 96 96 0 1 1 0 192z\"],\n \"object-group\": [576, 512, [], \"f247\", \"M40 64a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm48 59.3c16-6.5 28.9-19.3 35.3-35.3l329.3 0c6.5 16 19.3 28.9 35.3 35.3l0 265.3c-16 6.5-28.9 19.3-35.3 35.3l-329.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-265.3zM512 0c-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0 28.7 0 0 28.7 0 64 0 90.9 16.5 113.9 40 123.3l0 265.3c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l329.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-265.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64zM488 64a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 424a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm424 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM192 176l88 0 0 56-88 0 0-56zm-8-40c-17.7 0-32 14.3-32 32l0 72c0 17.7 14.3 32 32 32l104 0c17.7 0 32-14.3 32-32l0-72c0-17.7-14.3-32-32-32l-104 0zm72 184l0 24c0 17.7 14.3 32 32 32l104 0c17.7 0 32-14.3 32-32l0-72c0-17.7-14.3-32-32-32l-24 0c0 14.6-3.9 28.2-10.7 40l26.7 0 0 56-88 0 0-16.4c-2.6 .3-5.3 .4-8 .4l-32 0z\"],\n \"face-flushed\": [512, 512, [128563, \"flushed\"], \"f579\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM160 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"],\n \"star-half-stroke\": [576, 512, [\"star-half-alt\"], \"f5c0\", \"M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9zM264.1 91.8l0 284.1-100.1 50.9 19.8-125.5c1.2-7.6-1.3-15.3-6.7-20.7l-89.8-89.9 125.5-20c7.6-1.2 14.1-6 17.6-12.8l33.8-66.2zm48 284.1l0-284.1 33.8 66.2c3.5 6.8 10 11.6 17.6 12.8l125.5 20-89.8 89.9c-5.4 5.4-7.9 13.1-6.7 20.7l19.8 125.5-100.1-50.9z\"],\n \"file-video\": [384, 512, [], \"f1c8\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM80 288l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-24 35 35c3.2 3.2 7.5 5 12 5 9.4 0 17-7.6 17-17l0-94.1c0-9.4-7.6-17-17-17-4.5 0-8.8 1.8-12 5l-35 35 0-24c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32z\"],\n \"face-laugh\": [512, 512, [\"laugh\"], \"f599\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"hand-pointer\": [448, 512, [], \"f25a\", \"M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4 8.8 0 16 7.2 16 16 0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4 7.8 0 14.3 5.6 15.7 13 1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4 8.8 0 16 7.2 16 16l0 120c0 39.8-32.2 72-72 72l-116.6 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23L160 64zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2L328 512c66.3 0 120-53.7 120-120l0-120c0-35.3-28.7-64-64-64-4.5 0-8.8 .5-13 1.3-11.7-15.4-30.2-25.3-51-25.3-6.9 0-13.5 1.1-19.7 3.1-11.6-16.4-30.7-27.1-52.3-27.1-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"],\n \"registered\": [512, 512, [174], \"f25d\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM200 144c-13.3 0-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56 34.4 0 41 68.3c6.8 11.4 21.6 15 32.9 8.2s15-21.6 8.2-32.9l-30.2-50.3c24.6-11.5 41.6-36.4 41.6-65.3 0-39.8-32.2-72-72-72l-80 0zm72 96l-48 0 0-48 56 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0z\"]\n };\n\n bunker(function () {\n defineIcons('far', icons);\n defineIcons('fa-regular', icons);\n });\n\n}());\n(function () {\n 'use strict';\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n } catch (e) {} // eslint-disable-line no-empty\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n }\n function _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n }\n function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n }\n\n var _dt;\n var q = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n slab: {\n \"fa-regular\": \"regular\",\n faslr: \"regular\"\n },\n \"slab-press\": {\n \"fa-regular\": \"regular\",\n faslpr: \"regular\"\n },\n thumbprint: {\n \"fa-light\": \"light\",\n fatl: \"light\"\n },\n whiteboard: {\n \"fa-semibold\": \"semibold\",\n fawsb: \"semibold\"\n },\n notdog: {\n \"fa-solid\": \"solid\",\n fans: \"solid\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"solid\",\n fands: \"solid\"\n },\n etch: {\n \"fa-solid\": \"solid\",\n faes: \"solid\"\n },\n jelly: {\n \"fa-regular\": \"regular\",\n fajr: \"regular\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"regular\",\n fajfr: \"regular\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"regular\",\n fajdr: \"regular\"\n },\n chisel: {\n \"fa-regular\": \"regular\",\n facr: \"regular\"\n },\n utility: {\n \"fa-semibold\": \"semibold\",\n fausb: \"semibold\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"semibold\",\n faudsb: \"semibold\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"semibold\",\n faufsb: \"semibold\"\n }\n };\n var i = \"classic\",\n t = \"duotone\",\n d = \"sharp\",\n l = \"sharp-duotone\",\n f = \"chisel\",\n n = \"etch\",\n h = \"jelly\",\n o = \"jelly-duo\",\n u = \"jelly-fill\",\n g = \"notdog\",\n s = \"notdog-duo\",\n y = \"slab\",\n m = \"slab-press\",\n e = \"thumbprint\",\n p = \"utility\",\n a = \"utility-duo\",\n w = \"utility-fill\",\n x = \"whiteboard\",\n b = \"Classic\",\n c = \"Duotone\",\n I = \"Sharp\",\n F = \"Sharp Duotone\",\n v = \"Chisel\",\n S = \"Etch\",\n A = \"Jelly\",\n P = \"Jelly Duo\",\n j = \"Jelly Fill\",\n B = \"Notdog\",\n N = \"Notdog Duo\",\n k = \"Slab\",\n D = \"Slab Press\",\n T = \"Thumbprint\",\n C = \"Utility\",\n W = \"Utility Duo\",\n K = \"Utility Fill\",\n R = \"Whiteboard\",\n dt = (_dt = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, i, b), t, c), d, I), l, F), f, v), n, S), h, A), o, P), u, j), g, B), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, s, N), y, k), m, D), e, T), p, C), a, W), w, K), x, R));\n var gt = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n slab: {\n 400: \"faslr\"\n },\n \"slab-press\": {\n 400: \"faslpr\"\n },\n whiteboard: {\n 600: \"fawsb\"\n },\n thumbprint: {\n 300: \"fatl\"\n },\n notdog: {\n 900: \"fans\"\n },\n \"notdog-duo\": {\n 900: \"fands\"\n },\n etch: {\n 900: \"faes\"\n },\n chisel: {\n 400: \"facr\"\n },\n jelly: {\n 400: \"fajr\"\n },\n \"jelly-fill\": {\n 400: \"fajfr\"\n },\n \"jelly-duo\": {\n 400: \"fajdr\"\n },\n utility: {\n 600: \"fausb\"\n },\n \"utility-duo\": {\n 600: \"faudsb\"\n },\n \"utility-fill\": {\n 600: \"faufsb\"\n }\n };\n var _t = {\n chisel: {\n regular: \"facr\"\n },\n classic: {\n brands: \"fab\",\n light: \"fal\",\n regular: \"far\",\n solid: \"fas\",\n thin: \"fat\"\n },\n duotone: {\n light: \"fadl\",\n regular: \"fadr\",\n solid: \"fad\",\n thin: \"fadt\"\n },\n etch: {\n solid: \"faes\"\n },\n jelly: {\n regular: \"fajr\"\n },\n \"jelly-duo\": {\n regular: \"fajdr\"\n },\n \"jelly-fill\": {\n regular: \"fajfr\"\n },\n notdog: {\n solid: \"fans\"\n },\n \"notdog-duo\": {\n solid: \"fands\"\n },\n sharp: {\n light: \"fasl\",\n regular: \"fasr\",\n solid: \"fass\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n light: \"fasdl\",\n regular: \"fasdr\",\n solid: \"fasds\",\n thin: \"fasdt\"\n },\n slab: {\n regular: \"faslr\"\n },\n \"slab-press\": {\n regular: \"faslpr\"\n },\n thumbprint: {\n light: \"fatl\"\n },\n utility: {\n semibold: \"fausb\"\n },\n \"utility-duo\": {\n semibold: \"faudsb\"\n },\n \"utility-fill\": {\n semibold: \"faufsb\"\n },\n whiteboard: {\n semibold: \"fawsb\"\n }\n };\n var qt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n Ht = [\"kit\"];\n var L = \"kit\",\n r = \"kit-duotone\",\n U = \"Kit\",\n J = \"Kit Duotone\",\n $t = _defineProperty(_defineProperty({}, L, U), r, J);\n var ol = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n };\n var fl = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\n var ul = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\n var _ml;\n var l$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n };\n var n$1 = \"classic\",\n o$1 = \"duotone\",\n u$1 = \"sharp\",\n s$1 = \"sharp-duotone\",\n h$1 = \"chisel\",\n g$1 = \"etch\",\n y$1 = \"jelly\",\n e$1 = \"jelly-duo\",\n m$1 = \"jelly-fill\",\n p$1 = \"notdog\",\n a$1 = \"notdog-duo\",\n w$1 = \"slab\",\n b$1 = \"slab-press\",\n r$1 = \"thumbprint\",\n c$1 = \"utility\",\n i$1 = \"utility-duo\",\n x$1 = \"utility-fill\",\n I$1 = \"whiteboard\",\n F$1 = \"Classic\",\n v$1 = \"Duotone\",\n S$1 = \"Sharp\",\n A$1 = \"Sharp Duotone\",\n P$1 = \"Chisel\",\n j$1 = \"Etch\",\n B$1 = \"Jelly\",\n N$1 = \"Jelly Duo\",\n k$1 = \"Jelly Fill\",\n D$1 = \"Notdog\",\n C$1 = \"Notdog Duo\",\n T$1 = \"Slab\",\n L$1 = \"Slab Press\",\n W$1 = \"Thumbprint\",\n R$1 = \"Utility\",\n K$1 = \"Utility Duo\",\n U$1 = \"Utility Fill\",\n J$1 = \"Whiteboard\",\n ml$1 = (_ml = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, n$1, F$1), o$1, v$1), u$1, S$1), s$1, A$1), h$1, P$1), g$1, j$1), y$1, B$1), e$1, N$1), m$1, k$1), p$1, D$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, a$1, C$1), w$1, T$1), b$1, L$1), r$1, W$1), c$1, R$1), i$1, K$1), x$1, U$1), I$1, J$1));\n var E$1 = \"kit\",\n d$1 = \"kit-duotone\",\n _$1 = \"Kit\",\n M$1 = \"Kit Duotone\",\n rt$1 = _defineProperty(_defineProperty({}, E$1, _$1), d$1, M$1);\n var $t$1 = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n },\n slab: {\n \"fa-regular\": \"faslr\"\n },\n \"slab-press\": {\n \"fa-regular\": \"faslpr\"\n },\n whiteboard: {\n \"fa-semibold\": \"fawsb\"\n },\n thumbprint: {\n \"fa-light\": \"fatl\"\n },\n notdog: {\n \"fa-solid\": \"fans\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"fands\"\n },\n etch: {\n \"fa-solid\": \"faes\"\n },\n jelly: {\n \"fa-regular\": \"fajr\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"fajfr\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"fajdr\"\n },\n chisel: {\n \"fa-regular\": \"facr\"\n },\n utility: {\n \"fa-semibold\": \"fausb\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"faudsb\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"faufsb\"\n }\n },\n z = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"],\n slab: [\"faslr\"],\n \"slab-press\": [\"faslpr\"],\n whiteboard: [\"fawsb\"],\n thumbprint: [\"fatl\"],\n notdog: [\"fans\"],\n \"notdog-duo\": [\"fands\"],\n etch: [\"faes\"],\n jelly: [\"fajr\"],\n \"jelly-fill\": [\"fajfr\"],\n \"jelly-duo\": [\"fajdr\"],\n chisel: [\"facr\"],\n utility: [\"fausb\"],\n \"utility-duo\": [\"faudsb\"],\n \"utility-fill\": [\"faufsb\"]\n },\n Ht$1 = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n },\n slab: {\n faslr: \"fa-regular\"\n },\n \"slab-press\": {\n faslpr: \"fa-regular\"\n },\n whiteboard: {\n fawsb: \"fa-semibold\"\n },\n thumbprint: {\n fatl: \"fa-light\"\n },\n notdog: {\n fans: \"fa-solid\"\n },\n \"notdog-duo\": {\n fands: \"fa-solid\"\n },\n etch: {\n faes: \"fa-solid\"\n },\n jelly: {\n fajr: \"fa-regular\"\n },\n \"jelly-fill\": {\n fajfr: \"fa-regular\"\n },\n \"jelly-duo\": {\n fajdr: \"fa-regular\"\n },\n chisel: {\n facr: \"fa-regular\"\n },\n utility: {\n fausb: \"fa-semibold\"\n },\n \"utility-duo\": {\n faudsb: \"fa-semibold\"\n },\n \"utility-fill\": {\n faufsb: \"fa-semibold\"\n }\n },\n G$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\", \"semibold\"],\n O$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n V$1 = O$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n $$1 = [\"aw\", \"fw\", \"pull-left\", \"pull-right\"],\n to = [].concat(_toConsumableArray(Object.keys(z)), G$1, $$1, [\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"inverse\", \"layers\", \"layers-bottom-left\", \"layers-bottom-right\", \"layers-counter\", \"layers-text\", \"layers-top-left\", \"layers-top-right\", \"li\", \"pull-end\", \"pull-start\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", \"width-auto\", \"width-fixed\", l$1.GROUP, l$1.SWAP_OPACITY, l$1.PRIMARY, l$1.SECONDARY]).concat(O$1.map(function (t) {\n return \"\".concat(t, \"x\");\n })).concat(V$1.map(function (t) {\n return \"w-\".concat(t);\n }));\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e$$1) {\n return false;\n }\n }();\n function familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[i];\n }\n });\n }\n var _PREFIX_TO_STYLE = _objectSpread2({}, q);\n\n // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n // {'fa-duotone': 'duotone'}\n _PREFIX_TO_STYLE[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n }), q[i]), qt['kit']), qt['kit-duotone']);\n var PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\n var _STYLE_TO_PREFIX = _objectSpread2({}, _t);\n\n // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n _STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n }), _STYLE_TO_PREFIX[i]), ul['kit']), ul['kit-duotone']);\n var STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\n var _PREFIX_TO_LONG_STYLE = _objectSpread2({}, Ht$1);\n _PREFIX_TO_LONG_STYLE[i] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[i]), fl['kit']);\n var PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\n var _LONG_STYLE_TO_PREFIX = _objectSpread2({}, $t$1);\n _LONG_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[i]), ol['kit']);\n var LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\n var _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, gt);\n var FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\n var RESERVED_CLASSES = [].concat(_toConsumableArray(Ht), _toConsumableArray(to));\n\n function bunker(fn) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n fn.apply(void 0, args);\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n var w$2 = WINDOW || {};\n if (!w$2[NAMESPACE_IDENTIFIER]) w$2[NAMESPACE_IDENTIFIER] = {};\n if (!w$2[NAMESPACE_IDENTIFIER].styles) w$2[NAMESPACE_IDENTIFIER].styles = {};\n if (!w$2[NAMESPACE_IDENTIFIER].hooks) w$2[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w$2[NAMESPACE_IDENTIFIER].shims) w$2[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w$2[NAMESPACE_IDENTIFIER];\n\n function normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n }\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var icons = {\n \"0\": [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z\"],\n \"1\": [256, 512, [], \"31\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352c0-17.7-14.3-32-32-32L32 32z\"],\n \"2\": [384, 512, [], \"32\", \"M48 64c0-17.7 14.3-32 32-32l171 0c60.2 0 109 48.8 109 109 0 43.8-26.2 83.3-66.4 100.4l-139.1 59C119 315.4 96 350.2 96 388.7l0 27.3 224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32l0-59.3c0-64.2 38.4-122.2 97.5-147.3l139.1-59c16.6-7.1 27.4-23.4 27.4-41.4 0-24.9-20.2-45-45-45L80 96C62.3 96 48 81.7 48 64z\"],\n \"3\": [320, 512, [], \"33\", \"M80 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l160 0c70.7 0 128 57.3 128 128 0 38.2-16.8 72.5-43.3 96 26.6 23.5 43.3 57.8 43.3 96 0 70.7-57.3 128-128 128L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L80 288z\"],\n \"4\": [384, 512, [], \"34\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 288c0 35.3 28.7 64 64 64l192 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224-192 0 0-224z\"],\n \"5\": [320, 512, [], \"35\", \"M0 64C0 46.3 14.3 32 32 32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0 0 112 120 0c75.1 0 136 60.9 136 136S259.1 480 184 480L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l152 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-17.7 0-32-14.3-32-32L0 64z\"],\n \"6\": [384, 512, [], \"36\", \"M256 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-88 0c-48.6 0-88 39.4-88 88l0 32.2c22.9-15.3 50.4-24.2 80-24.2l48 0c79.5 0 144 64.5 144 144S287.5 480 208 480l-48 0C80.5 480 16 415.5 16 336l0-152C16 100.1 84.1 32 168 32l88 0zM80 336c0 44.2 35.8 80 80 80l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0c-44.2 0-80 35.8-80 80z\"],\n \"7\": [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z\"],\n \"8\": [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128l-32 0c-70.7 0-128 57.3-128 128 0 34.6 13.7 66 36 89-31.5 23.3-52 60.8-52 103 0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128 0-42.2-20.5-79.7-52-103 22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l48.1 0zm0-64L144 224c-35.3 0-64-28.7-64-64 0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64 0 35.3-28.6 64-64 64z\"],\n \"9\": [384, 512, [], \"39\", \"M208 320c29.6 0 57.1-8.9 80-24.2l0 32.2c0 48.6-39.4 88-88 88L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l104 0c83.9 0 152-68.1 152-152l0-152.1C351.9 96.4 287.5 32 208 32l-48 0C80.5 32 16 96.5 16 176S80.5 320 160 320l48 0zm80-144c0 44.2-35.8 80-80 80l-48 0c-44.2 0-80-35.8-80-80s35.8-80 80-80l48 0c44.2 0 80 35.8 80 80z\"],\n \"dollar-sign\": [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M136 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-114.9 0c-24.9 0-45.1 20.2-45.1 45.1 0 22.5 16.5 41.5 38.7 44.7l91.6 13.1c53.8 7.7 93.7 53.7 93.7 108 0 60.3-48.9 109.1-109.1 109.1l-10.9 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-72 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l130.9 0c24.9 0 45.1-20.2 45.1-45.1 0-22.5-16.5-41.5-38.7-44.7l-91.6-13.1C55.9 273.5 16 227.4 16 173.1 16 112.9 64.9 64 125.1 64l10.9 0 0-40z\"],\n \"dog\": [576, 512, [128021], \"f6d3\", \"M32 112c16.6 0 30.2 12.6 31.8 28.7l.3 6.6C65.8 163.4 79.4 176 96 176l179.1 0 140.9 60.4 0 243.6c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-131.3C296 361 268.8 368 240 368s-56-7-80-19.3L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-245.6c-37.3-13.2-64-48.6-64-90.4 0-17.7 14.3-32 32-32zM355.8-32c7.7 0 14.9 3.6 19.6 9.8L392 0 444.1 0c12.7 0 24.9 5.1 33.9 14.1L496 32 552 32c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-64 0-7 28-124.7-53.4 31.6-147.2C334.3-23.9 344.2-32 355.8-32zM448 44a20 20 0 1 0 0 40 20 20 0 1 0 0-40z\"],\n \"truck-moving\": [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96L0 424c0 48.6 39.4 88 88 88 25.2 0 48-10.6 64-27.6 16 17 38.8 27.6 64 27.6 40.3 0 74.2-27.1 84.7-64l134.6 0c10.4 36.9 44.4 64 84.7 64 43 0 78.9-30.9 86.5-71.7 20-10.8 33.5-32 33.5-56.3l0-146.7c0-17-6.7-33.3-18.7-45.3L576 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM480 192l50.7 0 45.3 45.3 0 50.7-96 0 0-96zM88 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm392 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM216 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],\n \"rotate\": [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M480.1 192l7.9 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2S477.9 .2 471 7L419.3 58.8C375 22.1 318 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1C79.2 135.5 159.3 64 256 64 300.4 64 341.2 79 373.7 104.3L327 151c-6.9 6.9-8.9 17.2-5.2 26.2S334.3 192 344 192l136.1 0zm29.4 100.5c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-44.4 0-85.2-15-117.7-40.3L185 361c6.9-6.9 8.9-17.2 5.2-26.2S177.7 320 168 320L24 320c-13.3 0-24 10.7-24 24L0 488c0 9.7 5.8 18.5 14.8 22.2S34.1 511.8 41 505l51.8-51.8C137 489.9 194 512 256 512 385 512 491.7 416.6 509.4 292.5z\"],\n \"square-minus\": [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm72 200l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"align-justify\": [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z\"],\n \"calendar-check\": [448, 512, [], \"f274\", \"M320 0c17.7 0 32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32zm22 161.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 331.2 137 279.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 195.2c7.8-10.7 5.4-25.7-5.3-33.5z\"],\n \"face-kiss\": [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"kitchen-set\": [576, 512, [], \"e51a\", \"M240 144a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288 64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l128 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"dna\": [384, 512, [129516], \"f471\", \"M352 0c17.7 0 32 14.3 32 32 0 57.8-24.4 104.8-57.4 144.5-24.1 28.9-53.8 55.1-83.6 79.5 29.8 24.5 59.5 50.6 83.6 79.5 33 39.6 57.4 86.7 57.4 144.5 0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32S0 497.7 0 480C0 422.2 24.4 375.2 57.4 335.5 81.5 306.6 111.2 280.5 141 256 111.2 231.5 81.5 205.4 57.4 176.5 24.4 136.8 0 89.8 0 32 0 14.3 14.3 0 32 0S64 14.3 64 32l256 0c0-17.7 14.3-32 32-32zM283.5 384l-182.9 0c-8.2 10.5-15.1 21.1-20.6 32l224.2 0c-5.6-10.9-12.5-21.5-20.6-32zM238 336c-14.3-13-29.8-25.8-46-39-16.2 13.1-31.7 26-46 39l92 0zM100.5 128l182.9 0c8.2-10.5 15.1-21.1 20.6-32L79.9 96c5.6 10.9 12.5 21.5 20.6 32zM146 176c14.3 13 29.8 25.8 46 39 16.2-13.1 31.7-26 46-39l-92 0z\"],\n \"child-reaching\": [384, 512, [], \"e59d\", \"M256 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.3 85.4S11.6 115 21.4 129.8L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6-12.6 0-24.9-2-36.6-5.8-.9-.3-1.8-.7-2.7-.9z\"],\n \"paste\": [512, 512, [\"file-clipboard\"], \"f0ea\", \"M64 0C28.7 0 0 28.7 0 64L0 384c0 35.3 28.7 64 64 64l112 0 0-224c0-61.9 50.1-112 112-112l64 0 0-48c0-35.3-28.7-64-64-64L64 0zM248 112l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zm40 48c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-165.5c0-17-6.7-33.3-18.7-45.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7L288 160z\"],\n \"meteor\": [512, 512, [9732], \"f753\", \"M493.7 .9l-194.2 74.7 2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309 0 421.1 90.9 512 203 512 275.4 512 342.3 473.4 378.6 410.7L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3 74.7-194.2c.6-1.5 .9-3.2 .9-4.8 0-7.5-6-13.5-13.5-13.5-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\n \"gears\": [640, 512, [\"cogs\"], \"f085\", \"M415.9 210.5c12.2-3.3 25 2.5 30.5 13.8L465 261.9c10.3 1.4 20.4 4.2 29.9 8.1l35-23.3c10.5-7 24.4-5.6 33.3 3.3l19.2 19.2c8.9 8.9 10.3 22.9 3.3 33.3l-23.3 34.9c1.9 4.7 3.6 9.6 5 14.7 1.4 5.1 2.3 10.1 3 15.2l37.7 18.6c11.3 5.6 17.1 18.4 13.8 30.5l-7 26.2c-3.3 12.1-14.6 20.3-27.2 19.5l-42-2.7c-6.3 8.1-13.6 15.6-21.9 22l2.7 41.9c.8 12.6-7.4 24-19.5 27.2l-26.2 7c-12.2 3.3-24.9-2.5-30.5-13.8l-18.6-37.6c-10.3-1.4-20.4-4.2-29.9-8.1l-35 23.3c-10.5 7-24.4 5.6-33.3-3.3l-19.2-19.2c-8.9-8.9-10.3-22.8-3.3-33.3l23.3-35c-1.9-4.7-3.6-9.6-5-14.7s-2.3-10.2-3-15.2l-37.7-18.6c-11.3-5.6-17-18.4-13.8-30.5l7-26.2c3.3-12.1 14.6-20.3 27.2-19.5l41.9 2.7c6.3-8.1 13.6-15.6 21.9-22l-2.7-41.8c-.8-12.6 7.4-24 19.5-27.2l26.2-7zM448.4 340a44 44 0 1 0 .1 88 44 44 0 1 0 -.1-88zM224.9-45.5l26.2 7c12.1 3.3 20.3 14.7 19.5 27.2l-2.7 41.8c8.3 6.4 15.6 13.8 21.9 22l42-2.7c12.5-.8 23.9 7.4 27.2 19.5l7 26.2c3.2 12.1-2.5 24.9-13.8 30.5l-37.7 18.6c-.7 5.1-1.7 10.2-3 15.2s-3.1 10-5 14.7l23.3 35c7 10.5 5.6 24.4-3.3 33.3L307.3 262c-8.9 8.9-22.8 10.3-33.3 3.3L239 242c-9.5 3.9-19.6 6.7-29.9 8.1l-18.6 37.6c-5.6 11.3-18.4 17-30.5 13.8l-26.2-7c-12.2-3.3-20.3-14.7-19.5-27.2l2.7-41.9c-8.3-6.4-15.6-13.8-21.9-22l-42 2.7c-12.5 .8-23.9-7.4-27.2-19.5l-7-26.2c-3.2-12.1 2.5-24.9 13.8-30.5l37.7-18.6c.7-5.1 1.7-10.1 3-15.2 1.4-5.1 3-10 5-14.7L55.1 46.5c-7-10.5-5.6-24.4 3.3-33.3L77.6-6c8.9-8.9 22.8-10.3 33.3-3.3l35 23.3c9.5-3.9 19.6-6.7 29.9-8.1l18.6-37.6c5.6-11.3 18.3-17 30.5-13.8zM192.4 84a44 44 0 1 0 0 88 44 44 0 1 0 0-88z\"],\n \"file-circle-plus\": [576, 512, [58606], \"e494\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n \"icicles\": [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7C.3 33.2 0 30.7 0 28.2 0 12.6 12.6 0 28.2 0L482.4 0c16.3 0 29.6 13.2 29.6 29.6 0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7-9.3 0-17.5-6.2-20-15.2z\"],\n \"arrow-trend-up\": [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-169.4 169.4c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z\"],\n \"hexagon-nodes-bolt\": [576, 512, [], \"e69a\", \"M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56c30.7 0 55.6-24.7 56-55.2c-7.5-12.9-13.5-26.8-17.6-41.5c-4.2-4-9.1-7.3-14.4-9.9l0-98.8c2.8-1.3 5.5-2.9 8-4.7l10.5 6c5.5-15.3 13.1-29.5 22.4-42.5l-9.1-5.2c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8zM440.5 132C425 105.2 390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c.4 .3 .8 .6 1.3 .9c21.7-9.5 45.6-14.8 70.8-14.8c2 0 4 0 5.9 .1c12.1-17.3 13.8-40.6 2.6-60.1zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"],\n \"question\": [320, 512, [10067, 10068, 61736], \"3f\", \"M64 160c0-53 43-96 96-96s96 43 96 96c0 42.7-27.9 78.9-66.5 91.4-28.4 9.2-61.5 35.3-61.5 76.6l0 24c0 17.7 14.3 32 32 32s32-14.3 32-32l0-24c0-1.7 .6-4.1 3.5-7.3 3-3.3 7.9-6.5 13.7-8.4 64.3-20.7 110.8-81 110.8-152.3 0-88.4-71.6-160-160-160S0 71.6 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm96 352c22.1 0 40-17.9 40-40s-17.9-40-40-40-40 17.9-40 40 17.9 40 40 40z\"],\n \"hands-bound\": [576, 512, [], \"e4f9\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 213.9c0 14.2 5.1 27.9 14.3 38.7L99.6 352 96 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7L576 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8-9.7-5.7-12.1-18.7-5.1-27.5L441 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C329 209.7 320 233.4 320 258.1l0 93.9-64 0 0-93.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2S124.2 166.4 135 180l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5-8.1 4.8-18.6 2.7-24.2-4.8L64 144.8 64 32zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L96 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z\"],\n \"person-walking-luggage\": [512, 512, [], \"e554\", \"M264.3 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 12.3-7 23-17.2 28.4-.9 4.2-2.4 8.4-4.3 12.3l-69 138.1-.8-.4-27.7 55.3c-9.9 19.8-33.9 27.8-53.7 17.9L14.6 521c-19.8-9.9-27.8-33.9-17.9-53.7L47.3 366.3c9.9-19.8 33.9-27.8 53.7-17.9l30.7 15.3 28.3-56.6c.3-.6 .4-1.2 .4-1.8l0-16.9c0-.2 0-.3 0-.5l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L422.1 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3L448 507.5c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2L372 428.4c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L238 421.1c3.8-3.8 6.6-8.6 8.1-13.8L256.4 371z\"],\n \"file-arrow-down\": [384, 512, [\"file-download\"], \"f56d\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM175 441c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-86.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 86.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64z\"],\n \"person-booth\": [576, 512, [], \"f756\", \"M40 24A56 56 0 1 1 152 24 56 56 0 1 1 40 24zm51.1 88c23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c6 8.4 15.7 13.4 26 13.4l31.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C209.8 373.3 224 401.8 224 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L70.4 348.8C46.2 330.7 32 302.2 32 272l0-100.9C32 138.5 58.5 112 91.1 112zM32 512l0-132.7c3.1 2.7 6.3 5.4 9.6 7.9L96 428 96 512c0 17.7-14.3 32-32 32s-32-14.3-32-32zm544-88l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-168 0c-7.1 0-13.8-3.1-18.4-8.6s-6.5-12.6-5.3-19.6l30.7-176.7-63.1-137.6 0 72c-5.2-1-10.5-1.6-16-1.6l-32 0 0-120c0-30.9 25.1-56 56-56L520 0c30.9 0 56 25.1 56 56l0 368zM288 336c5.5 0 10.8-.6 16-1.6L304 520c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-184 32 0z\"],\n \"locust\": [576, 512, [], \"e520\", \"M328 32c137 0 248 111 248 248l0 40-.4 8.2C571.5 368.5 537.4 400 496 400l-12.3 0 25.2 44.1c6.6 11.5 2.6 26.2-8.9 32.8s-26.2 2.6-32.7-8.9l-38.8-67.9-80.4 0-48.2 69.7c-7.5 10.9-22.5 13.6-33.4 6.1s-13.6-22.5-6.1-33.4l29.3-42.3-74.5 0-51.7 70.2c-7.9 10.7-22.9 12.9-33.6 5.1s-12.9-22.9-5.1-33.6l40.5-55-43-16.4-79.3 100.5c-8.2 10.4-23.3 12.2-33.7 4s-12.2-23.3-4-33.7l240-304 2.1-2.3c5.2-5.1 12.5-7.5 19.9-6.6 8.4 1.1 15.6 6.5 18.9 14.3l21.7 50.7 40.9-55.5 2.1-2.4c5.1-5.3 12.5-8 20-7.2 8.5 1 15.9 6.5 19.3 14.4l41.8 97.5 64.2 0c10.2 0 20 2 29 5.5-16.4-94-98.3-165.5-197-165.5l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0zM488 296a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM43.5 331.1C36.2 321.4 32 309.5 32 296.8 32 265.5 57.5 240 88.9 240l27.6 0-72.9 91.1zM225.1 240l48.2 0 1.4-1.9-16.9-39.5-32.7 41.5zm107.8 0l46.7 0-17.2-40-29.5 40z\"],\n \"right-long\": [576, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M566.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S384 396.9 384 384l0-64-336 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48l336 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128z\"],\n \"truck-droplet\": [576, 512, [], \"e58c\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM208 304c-39.8 0-72-32.2-72-72 0-33.2 34.5-78 55.8-102.4 8.7-10 23.8-10 32.5 0 21.2 24.4 55.8 69.1 55.8 102.4 0 48-32.2 72-72 72z\"],\n \"hand-holding-medical\": [576, 512, [], \"e05c\", \"M240 24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l56 0 0-56zM66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z\"],\n \"hand-point-left\": [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64-208 0zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32 0 13.2-4 25.4-10.8 35.6 24.9 8.7 42.8 32.5 42.8 60.4 0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z\"],\n \"calculator\": [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm16 168a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM88 352a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM64 424c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm232-24c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"],\n \"minus\": [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z\"],\n \"arrow-up-z-a\": [512, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80zM288 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 224 320 224l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S461 32 448 32L320 32c-17.7 0-32 14.3-32 32zM412.6 273.7C407.2 262.8 396.1 256 384 256s-23.2 6.8-28.6 17.7l-80 160c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-80-160zM384 359.6l20.2 40.4-40.4 0 20.2-40.4z\"],\n \"microphone-slash\": [576, 512, [], \"f131\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L424.7 358.8C458.9 324.2 480 276.6 480 224l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 39.3-15.7 74.9-41.3 100.9L356.8 291C373.6 273.7 384 250 384 224l0-128c0-53-43-96-96-96s-96 43-96 96l0 30.2-151-151zm298.3 434l-41.4-41.4c-3.3 .2-6.5 .3-9.8 .3-79.5 0-144-64.5-144-144l0-10.2-43.6-43.6c-2.8 3.9-4.4 8.7-4.4 13.8l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c9.3-1.2 18.4-3 27.3-5.4z\"],\n \"square-pen\": [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-23.8 23.8-71-71 23.8-23.8c15.6-15.6 40.9-15.6 56.6 0zM119.9 289l91.5-91.6 71 71-91.6 91.5c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"],\n \"hand-fist\": [384, 512, [9994, \"fist-raised\"], \"f6de\", \"M160 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L37.5 357.5C13.5 333.5 0 300.9 0 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"],\n \"comment-sms\": [512, 512, [\"sms\"], \"f7cd\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM140.8 172.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6s18.6-41.6 41.6-41.6zm188.8 41.6c0-23 18.6-41.6 41.6-41.6l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6zm-98.3-33.8l24.7 41.1 24.7-41.1c3.7-6.2 11.1-9.1 18-7.2s11.7 8.2 11.7 15.4l0 102.4c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-44.6-8.7 14.5c-2.9 4.8-8.1 7.8-13.7 7.8s-10.8-3-13.7-7.8l-8.7-14.5 0 44.6c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-102.4c0-7.2 4.8-13.5 11.7-15.4s14.3 1 18 7.2z\"],\n \"sim-card\": [384, 512, [], \"f7c4\", \"M0 64C0 28.7 28.7 0 64 0L258.7 0c17 0 33.3 6.7 45.3 18.7L365.3 80c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 256c-17.7 0-32 14.3-32 32l0 40 128 0 0-72-96 0zM64 416c0 17.7 14.3 32 32 32l48 0 0-72-80 0 0 40zm256 0l0-40-128 0 0 72 96 0c17.7 0 32-14.3 32-32zm0-128c0-17.7-14.3-32-32-32l-48 0 0 72 80 0 0-40z\"],\n \"scale-balanced\": [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3l0 294.7 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288L584.4 320 512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zM126.8 195.8L54.4 320 199.3 320 126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9S11.7 382 .9 337.1z\"],\n \"car\": [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4l-26.1 74.6 293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 192c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-320 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 304a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"crop-simple\": [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-208 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64l-208 0 0 64 208 0 0 352z\"],\n \"medal\": [448, 512, [127941], \"f5a2\", \"M224.3 128L139.7-12.9c-6.5-10.8-20.1-14.7-31.3-9.1L21.8 21.3C9.9 27.2 5.1 41.6 11 53.5L80.6 192.6c-30.1 33.9-48.3 78.5-48.3 127.4 0 106 86 192 192 192s192-86 192-192c0-48.9-18.3-93.5-48.3-127.4L437.6 53.5c5.9-11.9 1.1-26.3-10.7-32.2L340.2-22.1c-11.2-5.6-24.9-1.6-31.3 9.1L224.3 128zm30.8 142.5c1.4 2.8 4 4.7 7 5.1l50.1 7.3c7.7 1.1 10.7 10.5 5.2 16l-36.3 35.4c-2.2 2.2-3.2 5.2-2.7 8.3l8.6 49.9c1.3 7.6-6.7 13.5-13.6 9.9l-44.8-23.6c-2.7-1.4-6-1.4-8.7 0l-44.8 23.6c-6.9 3.6-14.9-2.2-13.6-9.9l8.6-49.9c.5-3-.5-6.1-2.7-8.3l-36.3-35.4c-5.6-5.4-2.5-14.8 5.2-16l50.1-7.3c3-.4 5.7-2.4 7-5.1l22.4-45.4c3.4-7 13.3-7 16.8 0l22.4 45.4z\"],\n \"scroll\": [576, 512, [128220], \"f70e\", \"M0 112C0 70.5 31.6 36.4 72 32.4l0-.4 280 0c53 0 96 43 96 96l0 176-176 0c-39.8 0-72 32.2-72 72l0 60c0 24.3-19.7 44-44 44s-44-19.7-44-44l0-228-64 0c-26.5 0-48-21.5-48-48l0-48zM236.8 480c7.1-13.1 11.2-28.1 11.2-44l0-60c0-13.3 10.7-24 24-24l248 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-227.2 0zM80 80c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32z\"],\n \"file-excel\": [384, 512, [], \"f1c3\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM164 266.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3L163.2 352 124 410.7c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l28-42 28 42c7.4 11 22.3 14 33.3 6.7s14-22.3 6.7-33.3L220.8 352 260 293.3c7.4-11 4.4-25.9-6.7-33.3s-25.9-4.4-33.3 6.7l-28 42-28-42z\"],\n \"filter\": [512, 512, [], \"f0b0\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c9.2 9.2 22.9 11.9 34.9 6.9S320 492.9 320 480l0-178.7 182.6-182.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64z\"],\n \"drum\": [512, 512, [129345], \"f569\", \"M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96 114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5 38.8 15.1 44.4 30.6 44.4 41.3 0 .8-2.7 17.2-46 35.9-38.9 16.8-96 28.1-162 28.1S132.9 260.7 94 243.9c-43.3-18.7-46-35.1-46-35.9 0-10.6 5.6-26.2 44.4-41.3 38.3-14.9 95.4-22.7 163.6-22.7 18 0 35.1 .5 51.4 1.6z\"],\n \"map-pin\": [320, 512, [128205], \"f276\", \"M192 284.4C256.1 269.9 304 212.5 304 144 304 64.5 239.5 0 160 0S16 64.5 16 144c0 68.5 47.9 125.9 112 140.4L128 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-195.6zM168 96c-30.9 0-56 25.1-56 56 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4 46.6-104 104-104 13.3 0 24 10.7 24 24s-10.7 24-24 24z\"],\n \"scale-unbalanced-flip\": [640, 512, [\"balance-scale-right\"], \"f516\", \"M118.2 62.4C101.5 56.8 92.4 38.6 98 21.9S121.7-3.9 138.5 1.6l113 37.7c13.9-23.5 39.6-39.3 68.9-39.3 44.2 0 80 35.8 80 80 0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.7 145.2c-4.5 3.2-9.3 5.9-14.4 8.2l0 326.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.8 288L128.3 163.8 55.9 288 200.8 288zm-72.4 96c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zm382.8-92.2l-72.4 124.2 144.9 0-72.4-124.2zm126 141.3C626.4 478 574.1 512 511.2 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z\"],\n \"arrows-to-circle\": [512, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L128 82.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0-73.4-73.4C-3.1 42.1-3.1 21.9 9.4 9.4zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM502.6 54.6L429.3 128 448 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-45.3 448L384 429.3 384 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0 73.4 73.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM9.4 457.4L82.7 384 64 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3z\"],\n \"envelope\": [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64c-26.5 0-48 21.5-48 48 0 15.1 7.1 29.3 19.2 38.4l208 156c17.1 12.8 40.5 12.8 57.6 0l208-156c12.1-9.1 19.2-23.3 19.2-38.4 0-26.5-21.5-48-48-48L48 64zM0 196L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-188-198.4 148.8c-34.1 25.6-81.1 25.6-115.2 0L0 196z\"],\n \"baby\": [384, 512, [], \"f77c\", \"M120 88a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM7.7 144.5c13-17.9 38-21.8 55.9-8.8L99.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L16.5 200.3c-17.9-13-21.8-38-8.8-55.9zM97.5 329.3l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C38 438.6 36.1 417 47.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l24.3-24.3-26-37.2z\"],\n \"square-caret-down\": [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9S110.5 192 120 192l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"],\n \"tent\": [512, 512, [], \"e57d\", \"M26.9 206.9L3.7 444.9C1.8 463.7 16.6 480 35.5 480l172.7 0c26.5 0 48-21.5 48-48l0-129c0-8.3 6.7-15 15-15 5.5 0 10.6 3 13.2 7.9l86.1 159c8.4 15.5 24.6 25.1 42.2 25.1l64.1 0c18.9 0 33.7-16.3 31.8-35.1L485.6 207.1c-1.9-19.6-12.8-37.3-29.5-47.8L280.9 48.3c-15.7-10-35.8-9.9-51.5 .1L56.1 159.2c-16.5 10.6-27.3 28.2-29.2 47.7z\"],\n \"a\": [384, 512, [97], \"41\", \"M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7c-93.3 224-146.7 352-160 384-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2l31.8-76.3 197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8c-13.3-32-66.7-160-160-384zM264 320l-144 0 72-172.8 72 172.8z\"],\n \"parachute-box\": [512, 512, [], \"f4cd\", \"M128 224C128 152.2 144.3 88.4 169.5 43.4 195.1-2.4 226.6-24 256-24s60.9 21.6 86.5 67.4C367.7 88.4 384 152.2 384 224l-104 0 0 96 8 0c9.3 0 18.1 2 26 5.5l118.4-101.5-.5 0c0-78.4-17.7-150.6-47.6-204-6.1-11-12.9-21.3-20.3-30.9 86.5 35.9 147.8 115.1 147.8 218.9 0 7-3.1 13.7-8.4 18.2L347.4 360.1c3 7.4 4.6 15.4 4.6 23.9l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-64c0-8.4 1.6-16.5 4.6-23.9L8.4 226.2C3.1 221.7 0 215 0 208 0 104.2 61.3 24.9 147.8-10.9 140.5-1.4 133.7 9 127.6 20 97.7 73.4 80 145.6 80 224l-.5 0 118.4 101.5c8-3.5 16.8-5.5 26-5.5l8 0 0-96-104 0z\"],\n \"cart-arrow-down\": [640, 512, [], \"f218\", \"M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 187.2 0 0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1 177.4 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\n \"bridge-circle-exclamation\": [576, 512, [], \"e4ca\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"cloud-arrow-up\": [576, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM305 191c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"],\n \"at\": [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0 512 114.6 512 256l0 32c0 53-43 96-96 96-29.3 0-55.6-13.2-73.2-33.9-22.8 21-53.3 33.9-86.8 33.9-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1 5.7-5 13.1-8.1 21.3-8.1 17.7 0 32 14.3 32 32l0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"],\n \"indian-rupee-sign\": [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32l264 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-76.7 0c17.7 19.8 30.1 44.6 34.7 72l42 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-42 0c-10.4 62.2-60.8 110.9-123.8 118.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c35.8 0 66.1-23.5 76.3-56L24 200c-13.3 0-24-10.7-24-24s10.7-24 24-24l164.3 0c-10.2-32.5-40.5-56-76.3-56L32 96C14.3 96 0 81.7 0 64z\"],\n \"truck\": [576, 512, [128666, 9951], \"f0d1\", \"M0 96C0 60.7 28.7 32 64 32l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L557.3 192c12 12 18.7 28.3 18.7 45.3L576 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64L64 448c-35.3 0-64-28.7-64-64L0 96zM512 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM192 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"chalkboard-user\": [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M128 96c0-35.3 28.7-64 64-64l352 0c35.3 0 64 28.7 64 64l0 240-96 0 0-16c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 16-129.1 0c10.9-18.8 17.1-40.7 17.1-64 0-70.7-57.3-128-128-128-5.4 0-10.8 .3-16 1l0-49zM333 448c-5.1-24.2-16.3-46.1-32.1-64L608 384c0 35.3-28.7 64-64 64l-211 0zM64 272a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM0 480c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32z\"],\n \"user-check\": [640, 512, [], \"f4fc\", \"M286 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L78 512c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3l59.4 0zM585.7 105.9c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5L522.1 274.9c-4.2 5.7-10.7 9.4-17.7 9.8s-14-2.2-18.9-7.3l-46.4-48c-9.2-9.5-9-24.7 .6-33.9 9.5-9.2 24.7-8.9 33.9 .6l26.5 27.4 85.6-117.7zM256.3 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z\"],\n \"user-ninja\": [448, 512, [129399], \"f504\", \"M352 128c0 70.7-57.3 128-128 128-57.2 0-105.6-37.5-122-89.3-1.1 1.3-2.2 2.6-3.5 3.8-15.8 15.8-38.8 20.7-53.6 22.1-8.1 .8-14.6-5.7-13.8-13.8 1.4-14.7 6.3-37.8 22.1-53.6 5.8-5.8 12.6-10.1 19.6-13.4-7-3.2-13.8-7.6-19.6-13.4-15.8-15.8-20.7-38.8-22.1-53.6-.8-8.1 5.7-14.6 13.8-13.8 14.7 1.4 37.8 6.3 53.6 22.1 4.8 4.8 8.7 10.4 11.7 16.1 21.3-41.2 64.3-69.4 113.8-69.4 70.7 0 128 57.3 128 128zM144 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96c-8.8 0-16 7.2-16 16zm-1.4 211l67 50.2c8.5 6.4 20.3 6.4 28.8 0l67-50.2c6.5-4.9 15.2-6.2 22.6-2.8 61.4 28.2 104.1 90.2 104.1 162.1 0 16.4-13.3 29.7-29.7 29.7L45.7 512c-16.4 0-29.7-13.3-29.7-29.7 0-72 42.7-134 104.1-162.1 7.4-3.4 16.1-2.1 22.6 2.8z\"],\n \"plant-wilt\": [512, 512, [], \"e5aa\", \"M344-32c66.3 0 120 53.7 120 120l0 6.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3c-40.7-36.8-66-83.7-66-111.7 0-35.6 18.7-64.7 48-76.9l0-6.2c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 424c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 38.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3C25.3 405.9 0 359 0 331.1 0 295.4 18.7 266.4 48 254.2L48 216c0-66.3 53.7-120 120-120 20.2 0 39.3 5 56 13.8L224 88c0-66.3 53.7-120 120-120z\"],\n \"weight-scale\": [448, 512, [\"weight\"], \"f496\", \"M116.6 192c-3-10.1-4.6-20.9-4.6-32 0-61.9 50.1-112 112-112S336 98.1 336 160c0 11.1-1.6 21.9-4.6 32l-71 0 24.6-44.3c6.4-11.6 2.3-26.2-9.3-32.6s-26.2-2.3-32.6 9.3l-37.6 67.7-88.8 0zM128 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-64 0C293.3 11.9 260 0 224 0s-69.3 11.9-96 32z\"],\n \"caret-right\": [256, 512, [], \"f0da\", \"M249.3 235.8c10.2 12.6 9.5 31.1-2.2 42.8l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S64.5 396.9 64.5 384l0-256c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128 2.2 2.4z\"],\n \"florin-sign\": [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0-45.1 108.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z\"],\n \"bell\": [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32l0 3.2C119 50 64 114.6 64 192l0 21.7c0 48.1-16.4 94.8-46.4 132.4L7.8 358.3C2.7 364.6 0 372.4 0 380.5 0 400.1 15.9 416 35.5 416l376.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C400.4 308.5 384 261.8 384 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32zM162 464c7.1 27.6 32.2 48 62 48s54.9-20.4 62-48l-124 0z\"],\n \"lari-sign\": [384, 512, [], \"e1c8\", \"M144 0c13.3 0 24 10.7 24 24l0 41.5c7.9-1 15.9-1.5 24-1.5s16.1 .5 24 1.5L216 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 54c58.9 23.8 103.2 76 116.2 139.7 3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.7-33.2-26.4-61.8-53.4-80.2l0 81.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-101.8c-7.8-1.5-15.8-2.2-24-2.2s-16.2 .8-24 2.2L168 232c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-81.8c-33.8 23-56 61.9-56 105.8 0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 350 0 305.2 0 256 0 175.4 49.6 106.4 120 78l0-54c0-13.3 10.7-24 24-24z\"],\n \"mill-sign\": [384, 512, [], \"e1ed\", \"M297-22.2c12.3 5 18.2 19 13.2 31.3l-29 71.3C338.8 85.1 384 133.3 384 192l0 208c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-208c0-26.5-21.5-48-48-48-6.4 0-12.5 1.2-18 3.5l-30 73.8 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-21.2-57.8 142.2c-5 12.3-19 18.2-31.3 13.2s-18.2-19-13.2-31.3L160 251.3 160 192c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 208c0 17.7-14.3 32-32 32S0 417.7 0 400L0 112c0-17.7 14.3-32 32-32 10.9 0 20.5 5.4 26.3 13.7 16-8.7 34.3-13.7 53.7-13.7 31.3 0 59.7 12.9 80 33.6 9.6-9.8 20.9-17.8 33.5-23.5L265.8-9c5-12.3 19-18.2 31.3-13.2z\"],\n \"person-snowboarding\": [576, 512, [127938, \"snowboarding\"], \"f7ce\", \"M424.5 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM166.4 45.5c10.2-14.4 30.2-17.9 44.6-7.7l272 192c14.4 10.2 17.9 30.2 7.7 44.6s-30.2 17.9-44.6 7.7l-92.2-65.1-62.2 53.3 32.1 26.7c18.2 15.2 28.8 37.7 28.8 61.5l0 87.8 77.5 15.2c6.2 1.2 12.6 .9 18.7-.8l41.2-11.8c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-41.2 11.8c-13.4 3.8-27.4 4.4-41.1 1.8L87.1 443.3c-17.2-3.4-33-11.8-45.3-24.1L15.5 393c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l26.2 26.2c5.6 5.6 12.8 9.4 20.6 11l64.2 12.6 0-123.7c0-27.7 12-54 32.8-72.2l69-60.4-88.2-62.3C159.6 80 156.2 60 166.4 45.5zm58.1 375.7l64 12.5 0-75.3c0-4.7-2.1-9.3-5.8-12.3l-58.2-48.5 0 123.6z\"],\n \"tty\": [512, 512, [\"teletype\"], \"f1e4\", \"M450.2 266.8c15.8 6.5 34.1 .3 42.6-14.6l2.4-4.2c27.9-48.9 23.6-118.8-31.3-154.5-126-82-289.6-82-415.6 0-54.9 35.7-59.3 105.7-31.3 154.5l2.4 4.2c8.5 14.9 26.7 21.1 42.6 14.6l81.9-33.7c13.9-5.7 22.4-19.9 20.9-34.9l-5.1-51c62.5-21 130.8-19.9 192.6 3.3l-4.8 47.7c-1.5 15 7 29.2 20.9 34.9l81.9 33.7zM32 352a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm96 0a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM64 416a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm352 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM256 320a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm128-32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM128 448c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32z\"],\n \"users-rectangle\": [576, 512, [], \"e594\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm224 72a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 152c53 0 96 43 96 96l0 24c0 13.3-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24l0-24c0-53 43-96 96-96zm96-64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 272.3c-15.2 22.8-24 50.2-24 79.7l0 24c0 8.4 1.4 16.5 4.1 24l-46.8 0C89.6 400 80 390.4 80 378.7L80 368c0-50.3 38.7-91.6 88-95.7zM427.9 400c2.7-7.5 4.1-15.6 4.1-24l0-24c0-29.5-8.8-56.9-24-79.7 49.3 4.1 88 45.3 88 95.7l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-46.8 0zM96 192a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\n \"mobile\": [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm72 416l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"arrows-turn-to-dots\": [448, 512, [], \"e4c1\", \"M265.4-6.6c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L285.3 64 352 64c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-66.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm-82.7 272l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L162.7 400 96 400c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 481.7 0 464l0-32c0-53 43-96 96-96l66.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM320 368a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 160a64 64 0 1 1 0-128 64 64 0 1 1 0 128z\"],\n \"exclamation\": [128, 512, [10069, 10071, 61738], \"21\", \"M64 432c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40c0-22.1 17.9-40 40-40zM64 0c26.5 0 48 21.5 48 48 0 .6 0 1.1 0 1.7l-16 304c-.9 17-15 30.3-32 30.3S33 370.7 32 353.7L16 49.7c0-.6 0-1.1 0-1.7 0-26.5 21.5-48 48-48z\"],\n \"church\": [512, 512, [9962], \"f51d\", \"M280-8c0-13.3-10.7-24-24-24S232-21.3 232-8l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 48-98.6 65.8C120 186.7 112 201.6 112 217.7l0 38.3-79.8 45.6C12.3 313 0 334.2 0 357.1L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-90.9c0-23-12.3-44.2-32.2-55.6L400 256 400 217.7c0-16-8-31-21.4-39.9l-98.6-65.8 0-48 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM256 320c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z\"],\n \"toggle-off\": [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128S454.7 384 384 384l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"],\n \"shoe-prints\": [576, 512, [], \"f54b\", \"M296 192c-21.1-12.1-42.3-24.2-72-29.3l0-140.3C257.7 13 311.4 0 352 0 448 0 576 48 576 128s-119.6 96-176 96c-48 0-76-16-104-32zM128 32l48 0 0 128-48 0c-35.3 0-64-28.7-64-64s28.7-64 64-64zM232 320c28-16 56-32 104-32 56.4 0 176 16 176 96S384 512 288 512c-40.5 0-94.3-13-128-22.4l0-140.3c29.7-5.2 50.9-17.3 72-29.4zM64 480c-35.3 0-64-28.7-64-64s28.7-64 64-64l48 0 0 128-48 0z\"],\n \"file-circle-exclamation\": [576, 512, [], \"e4eb\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"wallet\": [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L72 128c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 32zM416 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"message\": [512, 512, [\"comment-alt\"], \"f27a\", \"M0 352L0 128C0 75 43 32 96 32l320 0c53 0 96 43 96 96l0 224c0 53-43 96-96 96l-120 0c-5.2 0-10.2 1.7-14.4 4.8L166.4 539.2c-4.2 3.1-9.2 4.8-14.4 4.8-13.3 0-24-10.7-24-24l0-72-32 0c-53 0-96-43-96-96z\"],\n \"trophy\": [512, 512, [127942], \"f091\", \"M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z\"],\n \"face-dizzy\": [512, 512, [\"dizzy\"], \"f567\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM134.1 153.9l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zm192 0l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zM256 304a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"bacteria\": [640, 512, [], \"e059\", \"M256-32c13.3 0 24 10.7 24 24l0 11c8.6 2.2 16.9 5.6 24.8 10.3L311 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L345 151c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L217 279c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L73 313c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L39 169c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L103 105c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9S191.6-2.3 201 7l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24zM128 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM240 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm296 40l0 11c8.6 2.2 16.9 5.6 24.8 10.3L567 199c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L601 343c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L473 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L329 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L295 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L359 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24s24 10.7 24 24zM448 384a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"ear-deaf\": [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"],\n \"people-arrows\": [512, 512, [\"people-arrows-left-right\"], \"e068\", \"M32 64A64 64 0 1 1 160 64 64 64 0 1 1 32 64zM0 224c0-35.3 28.7-64 64-64l64 0c3.2 0 6.4 .2 9.5 .7L93.1 205.1C65 233.2 65 278.8 93.1 306.9l56 56c3.4 3.4 7 6.4 10.9 9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-120.6C12.9 332.4 0 311.7 0 288l0-64zM352 64a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm66.9 141.1l-44.4-44.4c3.1-.5 6.3-.7 9.5-.7l64 0c35.3 0 64 28.7 64 64l0 64c0 23.7-12.9 44.4-32 55.4L480 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1c3.9-2.6 7.5-5.6 10.9-9l56-56c28.1-28.1 28.1-73.7 0-101.8zM302.8 177.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S288 321.7 288 312l0-24-64 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S224 190.3 224 200l0 24 64 0 0-24c0-9.7 5.8-18.5 14.8-22.2z\"],\n \"hands-clapping\": [512, 512, [], \"e1a8\", \"M344 8l0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64c0-13.3 10.7-24 24-24S344-5.3 344 8zM220 10.7l32 48c7.4 11 4.4 25.9-6.7 33.3s-25.9 4.4-33.3-6.7l-32-48c-7.4-11-4.4-25.9 6.7-33.3S212.6-.3 220 10.7zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1 48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM453.3 4c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7z\"],\n \"virus-covid-slash\": [576, 512, [], \"e4a9\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-83-83 11.4-11.4c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-11.3 11.3-23.8-23.8c17.9-23.5 29.9-51.7 34.1-82.3l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3l23.8-23.8 11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L440.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l11.3 11.3-23.8 23.8C370.8 97.9 342.7 85.8 312 81.6l0-33.6 16 0c13.3 0 24-10.7 24-24S341.3 0 328 0L248 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L157.9 92 169.2 80.6c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L123.9 58.1 41-24.9zM113.6 232l-33.6 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3l-23.8 23.8-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.3-11.3 23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c13.4-1.8 26.4-5.2 38.7-9.9L123.5 193.3c-4.7 12.3-8 25.2-9.9 38.7z\"],\n \"calendar-days\": [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM64 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"],\n \"diamond-turn-right\": [512, 512, [\"directions\"], \"f5eb\", \"M215 17L17 215C6.1 225.9 0 240.6 0 256s6.1 30.1 17 41L215 495c10.9 10.9 25.6 17 41 17s30.1-6.1 41-17L495 297c10.9-10.9 17-25.6 17-41s-6.1-30.1-17-41L297 17C286.1 6.1 271.4 0 256 0s-30.1 6.1-41 17zM385 257l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-78.1 0c-13.3 0-24 10.7-24 24l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40c0-39.8 32.2-72 72-72l78.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z\"],\n \"hand-point-up\": [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0 0-208zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"],\n \"bezier-curve\": [640, 512, [], \"f55b\", \"M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4-118.4 0C111.2 62.7 89.3 48 64 48 28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1 8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1 59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36 35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36l-118.4 0 0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z\"],\n \"person-half-dress\": [384, 512, [], \"e548\", \"M143.4-3.9c9.7-16.8 27.8-28.1 48.6-28.1 30.9 0 56 25.1 56 56 0 25.4-16.9 46.8-40 53.7l0 0c-5.1 1.5-10.4 2.3-16 2.3-30.9 0-56-25.1-56-56l0 0c0-10.1 2.7-19.7 7.4-27.9zM318.3 299.1L272 236.7 272 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160 0-.4 0-238.6c36.2 4.4 69.2 23.4 91.2 53l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 113l0 399c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c22-29.6 55.1-48.6 91.2-53z\"],\n \"square-poll-horizontal\": [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 152c0 13.3-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24zm72 80c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l208 0zM192 360c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24z\"],\n \"school-circle-xmark\": [640, 512, [], \"e56d\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"hand-lizard\": [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64l238.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 76c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8-78.1-50.2-161.9 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l128 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L48 160c-26.5 0-48-21.5-48-48z\"],\n \"chalkboard\": [576, 512, [\"blackboard\"], \"f51b\", \"M96 64c-35.3 0-64 28.7-64 64l0 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-256c0-35.3-28.7-64-64-64L96 64zM480 384l-64 0 0-32c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32l0 32-160 0 0-256 384 0 0 256z\"],\n \"up-right-from-square\": [512, 512, [\"external-link-alt\"], \"f35d\", \"M290.4 19.8C295.4 7.8 307.1 0 320 0L480 0c17.7 0 32 14.3 32 32l0 160c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L400 157.3 246.6 310.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L354.7 112 297.4 54.6c-9.2-9.2-11.9-22.9-6.9-34.9zM0 176c0-44.2 35.8-80 80-80l80 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 176z\"],\n \"square-full\": [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"],\n \"clover\": [512, 512, [], \"e139\", \"M310.4 16C346.6 16 376 45.4 376 81.7l0 5.2c0 11.2-2.7 22.3-7.8 32.2l-2.3 4.2-20.1 33.5c-1.1 1.9-1.2 3.4-1.1 4.5 .2 1.3 .9 2.7 2.1 3.9s2.6 1.9 3.9 2.1c1.1 .2 2.6 .1 4.5-1.1l33.5-20.1 4.2-2.3c10-5.1 21-7.8 32.2-7.8l5.2 0c36.2 0 65.6 29.4 65.6 65.7 0 17.4-6.9 34.1-19.2 46.4l-1.3 1.3c-3.7 3.7-3.7 9.6 0 13.3l1.3 1.3c12.3 12.3 19.2 29 19.2 46.4 0 36.2-29.4 65.6-65.6 65.6l-5.2 0c-12.8 0-25.5-3.5-36.5-10.1l-33.5-20.1c-1.9-1.1-3.4-1.2-4.5-1.1-1.3 .2-2.7 .9-3.9 2.1s-1.9 2.6-2.1 3.9c-.2 1.1-.1 2.6 1.1 4.5l20.1 33.5c6.6 11 10.1 23.6 10.1 36.5l0 5.2c0 36.2-29.4 65.6-65.6 65.6-17.4 0-34.1-6.9-46.4-19.2l-1.3-1.3c-3.7-3.7-9.6-3.7-13.3 0l-1.3 1.3c-12.3 12.3-29 19.2-46.4 19.2-36.2 0-65.6-29.4-65.7-65.6l0-5.2c0-12.8 3.5-25.5 10.1-36.5l20.1-33.5c1.1-1.9 1.2-3.4 1.1-4.5-.2-1.3-.9-2.7-2.1-3.9s-2.6-1.9-3.9-2.1c-.5-.1-1.2-.1-1.9 0l-2.5 1-33.5 20.1c-11 6.6-23.6 10.1-36.5 10.1l-5.2 0C45.4 376 16 346.6 16 310.4 16 293 22.9 276.3 35.2 264l1.3-1.3 1.2-1.5c2.1-3.1 2.1-7.2 0-10.3l-1.2-1.5-1.3-1.3C22.9 235.8 16 219.1 16 201.7 16 165.4 45.4 136 81.7 136l5.2 0c12.8 0 25.5 3.5 36.5 10.1l33.5 20.1 2.5 1c.7 .1 1.4 .1 1.9 .1 1.3-.2 2.7-.9 3.9-2.1s1.9-2.6 2.1-3.9c.1-.5 .1-1.2-.1-1.9l-1-2.5-20.1-33.5c-6.6-11-10.1-23.6-10.1-36.5l0-5.2c0-36.2 29.4-65.7 65.7-65.7 17.4 0 34.1 6.9 46.4 19.2l1.3 1.3c3.7 3.6 9.6 3.7 13.3 0l1.3-1.3 4.8-4.4C280.5 21.3 295.1 16 310.4 16z\"],\n \"teeth-open\": [512, 512, [], \"f62f\", \"M64 32C28.7 32 0 60.7 0 96l0 80c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-80c0-35.3-28.7-64-64-64L64 32zm0 272c-35.3 0-64 28.7-64 64l0 48c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-48c0-35.3-28.7-64-64-64L64 304zm80-160c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zm128 0c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM80 112c17.7 0 32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24c0-17.7 14.3-32 32-32zm320 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24zM48 384l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32zm144 48c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm128 0c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm112-16c-17.7 0-32-14.3-32-32l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32z\"],\n \"bars-staggered\": [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"],\n \"warehouse\": [576, 512, [], \"f494\", \"M0 142.1L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-240c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32l0 240c0 17.7 14.3 32 32 32s32-14.3 32-32l0-337.9c0-27.5-17.6-52-43.8-60.7L303.2 5.1c-9.9-3.3-20.5-3.3-30.4 0L43.8 81.4C17.6 90.1 0 114.6 0 142.1zM464 256l-352 0 0 64 352 0 0-64zM112 416l352 0 0-64-352 0 0 64zm352 32l-352 0 0 64 352 0 0-64z\"],\n \"swatchbook\": [512, 512, [], \"f5c3\", \"M0 48C0 21.5 21.5 0 48 0l96 0c26.5 0 48 21.5 48 48l0 368c0 53-43 96-96 96S0 469 0 416L0 48zM240 409.6l0-271.5 48.1-48.1c18.7-18.7 49.1-18.7 67.9 0l67.9 67.9c18.7 18.7 18.7 49.1 0 67.9L240 409.6zM205.5 512l192-192 66.6 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-258.5 0zM80 64c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 64zM64 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"campground\": [512, 512, [9978], \"f6bb\", \"M344.8 52.3c11.2-13.7 9.2-33.8-4.5-45s-33.8-9.2-45 4.5l-39.2 48-39.2-48C205.6-1.9 185.4-4 171.7 7.2s-15.7 31.4-4.5 45l47.4 58-202 246.9C4.5 367.1 0 379.6 0 392.6L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-39.4c0-12.9-4.5-25.5-12.7-35.5l-202-246.9 47.4-58zM256 288l112 128-224 0 112-128z\"],\n \"person-walking-arrow-right\": [576, 512, [], \"e552\", \"M104.5 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3L73.9 227.9c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L262.3 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8L130 347.5c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zM96.6 371c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5L55.1 534.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L96.6 371zM505.5 345c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72z\"],\n \"glasses\": [576, 512, [], \"f530\", \"M143.3 96c-14 0-26.5 9.2-30.6 22.6L70.4 256 224 256c17.7 0 32 14.3 32 32l64 0c0-17.7 14.3-32 32-32l153.6 0-42.3-137.4C459.2 105.2 446.8 96 432.7 96L400 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l32.7 0c42.1 0 79.4 27.5 91.8 67.8l45.4 147.5c4.1 13.2 6.1 26.9 6.1 40.7l0 96c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-32-64 0 0 32c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-96c0-13.8 2.1-27.5 6.1-40.7L51.5 99.8C63.9 59.5 101.1 32 143.3 32L176 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.7 0zM64 320l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64-128 0zm416 96c17.7 0 32-14.3 32-32l0-64-128 0 0 64c0 17.7 14.3 32 32 32l64 0z\"],\n \"circle-pause\": [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n \"memory\": [512, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128l0 7.4C0 142.2 4.4 148 10.1 151.7 23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6l0 55.4 512 0 0-55.4c0-6.8-4.4-12.6-10.1-16.3-13.2-8.6-21.9-23.4-21.9-40.3s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM512 416l0-64-512 0 0 64c0 17.7 14.3 32 32 32l64 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 64 0c17.7 0 32-14.3 32-32zM160 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n \"gift\": [512, 512, [127873], \"f06b\", \"M321.5 68.8C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-73.3 0 34.8-59.2zm-131 0l34.8 59.2-73.3 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zm89.6-24.3l-24.1 41-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0c-48.6 0-88 39.4-88 88 0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40 0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4zM480 272l-200 0 0 208 136 0c35.3 0 64-28.7 64-64l0-144zm-248 0l-200 0 0 144c0 35.3 28.7 64 64 64l136 0 0-208z\"],\n \"money-bill-wheat\": [512, 512, [], \"e52a\", \"M176-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zM56 0l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 48C42.7 48 32 37.3 32 24S42.7 0 56 0zM24 72l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 120C10.7 120 0 109.3 0 96S10.7 72 24 72zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 0c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80zM400-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 112c8.8 0 16 7.2 16 16 0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"],\n \"dungeon\": [512, 512, [], \"f6d9\", \"M347.5 144.8c6.5 5.4 12.5 11.3 18 17.7 8.7 10.2 23.7 14 35.1 6.9l54.1-33.8c11.2-7 14.7-21.7 6.9-32.2-15.3-20.5-33.5-38.6-54.1-53.8-10.4-7.6-24.7-4.3-31.8 6.4l-35.1 52.6c-7.8 11.6-3.8 27.3 7 36.2zM327.8 41.1c8.6-12.9 2.9-30.5-12.2-34.1-19.1-4.6-39.1-7-59.6-7s-40.4 2.4-59.6 7c-15.1 3.6-20.8 21.2-12.2 34.1l40 60c5.2 7.8 14.5 11.7 23.9 11.2 5.2-.3 10.6-.3 15.8 0 9.4 .5 18.7-3.4 23.9-11.2l40-60zM50.5 103.3c-7.9 10.5-4.3 25.3 6.9 32.2l54.1 33.8c11.4 7.1 26.3 3.3 35.1-6.9 5.5-6.4 11.5-12.3 18-17.7 10.8-8.9 14.8-24.6 7-36.2L136.4 55.9c-7.1-10.7-21.5-14-31.8-6.4-20.6 15.1-38.8 33.3-54.1 53.8zm62 141.1c.8-9.9-3.3-19.9-11.8-25.1L41 182c-12.9-8-29.9-2.3-33.6 12.5-4.9 19.7-7.5 40.3-7.5 61.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-3.9 .2-7.8 .5-11.6zm287.1 0c.3 3.8 .5 7.7 .5 11.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-21.2-2.6-41.8-7.5-61.6-3.6-14.7-20.7-20.5-33.6-12.5l-59.7 37.3c-8.4 5.3-12.6 15.2-11.8 25.1zM88 352l-64 0c-13.3 0-24 10.7-24 24L0 488c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm400 0l-64 0c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304zm-80 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272zm160 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272z\"],\n \"suitcase-medical\": [512, 512, [\"medkit\"], \"f0fa\", \"M192 56l0 40 128 0 0-40c0-4.4-3.6-8-8-8L200 48c-4.4 0-8 3.6-8 8zm-48 8l0-8c0-30.9 25.1-56 56-56L312 0c30.9 0 56 25.1 56 56l0 424-224 0 0-416zM96 176l0 304-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l32 0 0 80zM416 480l0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-32 0zM244 208c-8.8 0-16 7.2-16 16l0 36-36 0c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l36 0 0 36c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-36 36 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-36 0 0-36c0-8.8-7.2-16-16-16l-24 0z\"],\n \"person-cane\": [448, 512, [], \"e53c\", \"M232-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM144 236.7L97.7 299.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C142 132 181.7 112 224 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L304 236.7 304 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3zM392 384c-4.4 0-8 3.6-8 8 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-4.4-3.6-8-8-8z\"],\n \"gauge\": [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"envelope-open-text\": [576, 512, [], \"f658\", \"M288 33.9L96.4 175.8 254.5 293c5.3 3.9 11.2 6.9 17.5 8.7L272 464c0 5.5 .5 10.8 1.3 16L96 480c-35.3 0-64-28.7-64-64l0-239.9c0-20.3 9.6-39.4 25.9-51.4L254.5-21c9.7-7.2 21.4-11 33.5-11s23.8 3.9 33.5 11L518.1 124.7c7.2 5.3 13.1 12 17.4 19.6-2.5-.2-5-.3-7.5-.3L436.6 144 288 33.9zM320 240c0-26.5 21.5-48 48-48l160 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-224zm80 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0z\"],\n \"toolbox\": [512, 512, [129520], \"f552\", \"M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 76.1-136 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-144 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-136 0 0-76.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1L128 96zM0 416l0-96 136 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 144 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 136 0 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z\"],\n \"power-off\": [512, 512, [9211], \"f011\", \"M288 0c0-17.7-14.3-32-32-32S224-17.7 224 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L288 0zM146.3 98.4c14.5-10.1 18-30.1 7.9-44.6s-30.1-18-44.6-7.9C43.4 92.1 0 169 0 256 0 397.4 114.6 512 256 512S512 397.4 512 256c0-87-43.4-163.9-109.7-210.1-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6c49.8 34.8 82.3 92.4 82.3 157.6 0 106-86 192-192 192S64 362 64 256c0-65.2 32.5-122.9 82.3-157.6z\"],\n \"signal\": [512, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M488 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400zM360 128c-13.3 0-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-13.3-10.7-24-24-24zM280 248c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zM152 320c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM48 384c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24z\"],\n \"arrows-spin\": [512, 512, [], \"e4bb\", \"M481.7 240.1c-17.6-1.2-32.9 12-34.2 29.7-3.3 47-23.6 89.4-54.8 121L361 359c-6.9-6.9-17.2-8.9-26.2-5.2S320 366.3 320 376l0 112c0 13.3 10.7 24 24 24l112 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-35-35c41.7-42.2 68.9-98.8 73.4-161.8 1.2-17.6-12-32.9-29.7-34.2zM39 41L74 76c-41.7 42.2-68.9 98.8-73.4 161.8-1.2 17.6 12 32.9 29.7 34.2s32.9-12 34.2-29.7c3.3-47 23.6-89.4 54.8-121L151 153c6.9 6.9 17.2 8.9 26.2 5.2S192 145.7 192 136l0-112c0-13.3-10.7-24-24-24L56 0C46.3 0 37.5 5.8 33.8 14.8S32.2 34.1 39 41zm201-10.7c-1.2 17.6 12 32.9 29.7 34.2 47 3.3 89.4 23.6 121 54.8L359 151c-6.9 6.9-8.9 17.2-5.2 26.2S366.3 192 376 192l112 0c13.3 0 24-10.7 24-24l0-112c0-9.7-5.8-18.5-14.8-22.2S477.9 32.2 471 39L436 74c-42.2-41.7-98.8-68.9-161.8-73.4-17.6-1.2-32.9 12-34.2 29.7zM41 473l35-35c42.2 41.7 98.8 68.9 161.8 73.4 17.6 1.2 32.9-12 34.2-29.7s-12-32.9-29.7-34.2c-47-3.3-89.4-23.6-121-54.8L153 361c6.9-6.9 8.9-17.2 5.2-26.2S145.7 320 136 320L24 320c-13.3 0-24 10.7-24 24L0 456c0 9.7 5.8 18.5 14.8 22.2S34.1 479.8 41 473z\"],\n \"joint\": [576, 512, [], \"f595\", \"M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM292.7 320c5.6 0 10.7 2.9 13.6 7.6L394.6 471c1.3 2.1 0 4.9-2.4 5.2-16.1 2.5-32.4 3.7-48.7 3.7l-38.1 0c-5.6 0-10.7-2.9-13.6-7.6l-79-128.4c-6-9.8 0-22.6 11.5-23.3 6.7-.4 13.4-.6 20.2-.6l48.3 0zM459.3 465.9c-6.4 1-12.7-1.9-16.1-7.4L374.1 346.1c-6.7-10.9 1.5-24.7 14.2-22.9 1.3 .2 2.6 .4 3.8 .6l136.4 21c27.3 4.2 47.4 27.7 47.4 55.3s-20.1 51.1-47.4 55.3l-69.2 10.6zM138.7 336c6.7-1.5 13.6 1.4 17.2 7.2l68.9 112c6.6 10.7-1.2 24.4-13.8 23.1-13-1.4-25.9-3.5-38.6-6.5L31.2 439.2C12.9 435 0 418.7 0 400s12.9-35 31.2-39.2L138.7 336z\"],\n \"braille\": [384, 512, [], \"f2a1\", \"M80 144a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 136c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0 56c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm248-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm56 0c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zM304 232a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0 104a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-192a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"],\n \"basket-shopping\": [576, 512, [\"shopping-basket\"], \"f291\", \"M288 0c6.6 0 12.9 2.7 17.4 7.5l144 152 .5 .5 78.1 0c17.7 0 32 14.3 32 32 0 14.5-9.6 26.7-22.8 30.7L491.1 429.9c-6.5 29.3-32.5 50.1-62.5 50.1l-281.3 0c-30 0-56-20.8-62.5-50.1l-46-207.2c-13.2-3.9-22.8-16.2-22.8-30.7 0-17.7 14.3-32 32-32l78.1 0 .5-.5 144-152C275.1 2.7 281.4 0 288 0zm0 58.9L192.2 160 383.8 160 288 58.9zM208 264c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112zm80-24c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm128 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112z\"],\n \"bridge\": [512, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-94c0-38.8 26.4-72.6 64-82l0-112-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64z\"],\n \"plane-arrival\": [576, 512, [128748], \"f5af\", \"M386.6 193.1L265.9 3.7c-4.8-7.6-12.6-12.8-21.4-14.3l-43.1-7.6c-10.8-1.9-20.2 7.3-18.6 18.1l24 161.6-105-18.5-33.8-61.8C64.5 74.7 58.2 70.2 51.1 69L34 66c-9.8-1.7-18.8 5.9-18.8 15.8l.6 106.3c.2 30.9 22.4 57.3 52.9 62.7l13.5 2.4 0 0 417.6 73.6c30.5 5.4 59.5-15 64.9-45.4s-15-59.5-45.4-64.9L386.6 193.1zM224 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm131.2-15.3a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z\"],\n \"cash-register\": [512, 512, [], \"f788\", \"M96 0C60.7 0 32 28.7 32 64s28.7 64 64 64l48 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 48 0c35.3 0 64-28.7 64-64S291.3 0 256 0L96 0zm0 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 424c0-13.3 10.7-24 24-24l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm48-160a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"],\n \"ring\": [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3 45.4-24.2 107.7-38.3 174.9-38.3s129.5 14.1 174.9 38.3c12.8-11.6 17.1-22.5 17.1-30.3 0-12.3-10.8-32-47.9-50.6-35.2-17.6-86.1-29.4-144.1-29.4s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7 33.2 12.4 75.7 20.3 122.9 20.3s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208C0 158.4 39.4 122.2 83.3 100.2 129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8-45.9 22.9-107 36.2-172.7 36.2S129.1 434.7 83.3 411.8C39.4 389.8 0 353.6 0 304l0-96z\"],\n \"share-nodes\": [512, 512, [\"share-alt\"], \"f1e0\", \"M384 192c53 0 96-43 96-96s-43-96-96-96-96 43-96 96c0 5.4 .5 10.8 1.3 16L159.6 184.1c-16.9-15-39.2-24.1-63.6-24.1-53 0-96 43-96 96s43 96 96 96c24.4 0 46.6-9.1 63.6-24.1L289.3 400c-.9 5.2-1.3 10.5-1.3 16 0 53 43 96 96 96s96-43 96-96-43-96-96-96c-24.4 0-46.6 9.1-63.6 24.1L190.7 272c.9-5.2 1.3-10.5 1.3-16s-.5-10.8-1.3-16l129.7-72.1c16.9 15 39.2 24.1 63.6 24.1z\"],\n \"person-circle-exclamation\": [640, 512, [], \"e53f\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"binoculars\": [512, 512, [], \"f1e5\", \"M128 32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3 13.7-22.8 22.5-48.2 25.8-74.6L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6 17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z\"],\n \"kip-sign\": [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 168-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4 171.2 146.7c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L173.2 280 352 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L173.2 232 340.8 88.3z\"],\n \"hard-drive\": [448, 512, [128436, \"hdd\"], \"f0a0\", \"M64 32C28.7 32 0 60.7 0 96L0 260.1C18.1 247.4 40.2 240 64 240l320 0c23.8 0 45.9 7.4 64 20.1L448 96c0-35.3-28.7-64-64-64L64 32zM448 352c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64zM224 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"ranking-star\": [576, 512, [], \"e561\", \"M321.8 54.1L298.2 6.3c-3.9-8.3-16.1-8.6-20.4 0l-23.6 47.8-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-26.5 0-48 21.5-48 48l0 160c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0zM48 320c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-64 0zM416 432l0 32c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-64 0c-26.5 0-48 21.5-48 48z\"],\n \"user-tie\": [448, 512, [], \"f508\", \"M224 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm-30.5 56l61 0c9.7 0 17.5 7.8 17.5 17.5 0 4.2-1.5 8.2-4.2 11.4l-27.4 32 31 115.1 .6 0 34.6-138.5c2.2-8.7 11.1-14 19.5-10.8 61.9 23.6 105.9 83.6 105.9 153.8 0 15.1-12.3 27.4-27.4 27.4L43.4 512c-15.1 0-27.4-12.3-27.4-27.4 0-70.2 44-130.2 105.9-153.8 8.4-3.2 17.3 2.1 19.5 10.8l34.6 138.5 .6 0 31-115.1-27.4-32c-2.7-3.2-4.2-7.2-4.2-11.4 0-9.7 7.8-17.5 17.5-17.5z\"],\n \"ellipsis\": [448, 512, [\"ellipsis-h\"], \"f141\", \"M0 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm168 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm224-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"],\n \"store-slash\": [576, 512, [], \"e071\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-58.6-58.6c1.1-4 1.6-8.2 1.6-12.5l0-151.2c-12.5 4.6-26.1 7.2-40.5 7.2-8.1 0-15.9-.8-23.5-2.4l0 66.4-30.2 0-137.5-137.5c2.9-3.6 5.5-7.4 7.6-11.5 11.6 22 34.7 37 61.3 37 26.8 0 49.8-15.1 61.4-37.1 11.4 22.1 34.5 37.1 60.8 37.1 45.6 0 78.4-43.7 65.6-87.5L513.8 72.3C506.8 48.4 484.9 32 460 32L116 32c-5.5 0-10.8 .8-15.9 2.3L41-24.9zM151.5 221.3L48.7 118.6 38.9 152.5c-12.8 43.7 20 87.5 65.6 87.5 18.1 0 34.7-7.1 47-18.7zM410.2 480l-128-128-154.2 0 0-66.4c-7.6 1.6-15.5 2.4-23.5 2.4-14.4 0-28-2.6-40.5-7.2L64 432c0 26.5 21.5 48 48 48l298.2 0z\"],\n \"percent\": [448, 512, [62101, 62785, \"percentage\"], \"25\", \"M192 128a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM448 384a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM438.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-384 384c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l384-384z\"],\n \"file-zipper\": [384, 512, [\"file-archive\"], \"f1c6\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 72c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 48C74.7 48 64 58.7 64 72zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm64 72l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"],\n \"display\": [512, 512, [], \"e163\", \"M448 96l0 256-384 0 0-256 384 0zM64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32z\"],\n \"icons\": [512, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M174.9 272c10.7 0 20.7 5.3 26.6 14.2l11.8 17.8 26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0 11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0zm278.6-12c5.6-4.9 13.9-5.3 19.9-.9s8.3 12.4 5.3 19.3L440.3 368 496 368c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.3-12.4-5.3-19.3l38.5-89.7-55.8 0c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112zM144 360a48 48 0 1 0 0 96 48 48 0 1 0 0-96zM483.8 .4c6.5-1.1 13.1 .4 18.5 4.4 6.1 4.5 9.7 11.7 9.7 19.2l0 152-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6l0-49.3-112 33.6 0 110.2-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6L304 72c0-10.6 7-20 17.1-23l160-48 2.7-.6zM188.9 0C226 0 256 30 256 67.1l0 6.1c0 56.1-75.2 112.1-110.3 135.3-10.8 7.1-24.6 7.1-35.4 0-35.1-23.1-110.3-79.2-110.3-135.3l0-6.1C0 30 30 0 67.1 0 88.2 0 108 9.9 120.7 26.8l7.3 9.8 7.3-9.8C148 9.9 167.8 0 188.9 0z\"],\n \"ruler-vertical\": [256, 512, [], \"f548\", \"M0 16C0-10.5 21.5-32 48-32l160 0c26.5 0 48 21.5 48 48l0 24-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 24c0 26.5-21.5 48-48 48L48 544c-26.5 0-48-21.5-48-48L0 16z\"],\n \"map-location-dot\": [640, 512, [\"map-marked-alt\"], \"f5a0\", \"M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM512 224c-66.3 0-120 52.8-120 117.9 0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9zM472 344a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"],\n \"heart-crack\": [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M133.1 32c17.3 0 34.2 3.4 49.9 9.7l54.8 85.2-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.4 60.6C319.6 42.3 348.6 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32z\"],\n \"cow\": [640, 512, [128004], \"f6c8\", \"M96 224l0 192c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21 22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L144 64C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4 31.8 0 57.6-25.8 57.6-57.6L72 184c0-24.3 12.1-45.8 30.5-58.9-4.2 10.8-6.5 22.6-6.5 34.9l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6 0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"],\n \"rss\": [448, 512, [\"feed\"], \"f09e\", \"M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 160c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"magnifying-glass\": [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"],\n \"cloud-moon\": [640, 512, [], \"f6c3\", \"M480 0c14.6 0 28.8 1.6 42.5 4.7 7.4 1.7 13 7.8 13.9 15.4s-3 14.9-9.8 18.3c-45.4 22.6-76.6 69.5-76.6 123.6 0 76.2 61.8 138 138 138 3.7 0 7.4-.1 11.1-.4 7.6-.6 14.7 3.6 17.8 10.6s1.5 15.1-3.9 20.4c-26 25-59.1 42.7-95.9 49.9-11.1-25.3-30.2-46.3-54.1-59.8-7.6-63.4-61.6-112.6-127.1-112.6-11.2 0-22.1 1.5-32.5 4.2-4.8-4.2-9.9-8.2-15.2-11.8-.1-2.8-.2-5.6-.2-8.4 0-106 86-192 192-192zm-.1 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96 0-47.6 34.6-87 80-94.6-.4-52.8 42.9-97.3 96-97.3 34.9 0 65.4 18.6 82.2 46.4 13-9.1 28.8-14.4 45.8-14.4 44.2 0 80 35.8 80 80 0 5.9-.6 11.7-1.9 17.2 37.4 6.7 65.8 39.4 65.8 78.7z\"],\n \"boxes-stacked\": [512, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M224 0l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 5.5-.7 10.9-2 16l-252 0c-1.3-5.1-2-10.5-2-16l0-128c0-35.3 28.7-64 64-64l32 0zm96 512c-11.2 0-21.8-2.9-31-8 9.5-16.5 15-35.6 15-56l0-128c0-20.4-5.5-39.5-15-56 9.2-5.1 19.7-8 31-8l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64l-128 0zM0 320c0-35.3 28.7-64 64-64l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 320z\"],\n \"code-branch\": [448, 512, [], \"f126\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 70.7 176 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-176 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80S0 476.2 0 432c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"ban\": [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8c-22.4 31.4-35.5 69.8-35.5 111.2 0 106 86 192 192 192 41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3c22.4-31.4 35.5-69.8 35.5-111.2 0-106-86-192-192-192-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"jug-detergent\": [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72S74.7 48 88 48l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\n \"reply\": [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M204.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 112 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-96 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9z\"],\n \"sun-plant-wilt\": [640, 512, [], \"e57a\", \"M160 0c-5.5 0-10.6 2.8-13.5 7.4l-1.1 2.1-24.8 55.4-56.7-21.7c-5.9-2.2-12.5-.8-17 3.7S41 58 43.2 63.9l21.7 56.7-55.4 24.8C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8-21.7 56.7c-2.2 5.9-.8 12.5 3.7 17s11.1 5.9 17 3.7l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.8 21.7c5.9 2.2 12.5 .8 17-3.7s5.9-11.1 3.7-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7 .7-2.2c1.2-5.3-.4-10.9-4.3-14.8s-9.5-5.5-14.8-4.3l-2.2 .7-56.8 21.7-24.8-55.4C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm376 16l0 53.4c-14.8 7.7-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.6-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176-424 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-272c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n \"bacterium\": [576, 512, [], \"e05a\", \"M408 16c0-13.3-10.7-24-24-24S360 2.7 360 16l0 23.4c-13.9 5.3-26.9 13.5-38.2 24.5L305 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-10 10-20 20-30.1 30.1L177 175c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-11 11.3-19.2 24.3-24.5 38.2L48 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l16.3 0c1.3 18.3 7.1 36.4 17.4 52.4L71 439c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l10.6-10.6c16 10.3 34.1 16.1 52.4 17.4l0 16.3c0 13.3 10.7 24 24 24s24-10.7 24-24l0-23.4c13.9-5.3 26.9-13.5 38.2-24.5L271 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c10-10 20-20 30.1-30.1L399 337c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c11-11.3 19.2-24.3 24.5-38.2l23.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16.3 0c-1.3-18.3-7.1-36.4-17.4-52.4L505 73c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L460.4 49.7c-16-10.3-34.1-16.1-52.4-17.4L408 16zM160 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM272 240a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"record-vinyl\": [512, 512, [], \"f8d9\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-112a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"floppy-disk\": [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm32 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"toilets-portable\": [512, 512, [], \"e584\", \"M64 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16C0 28.7 28.7 0 64 0zM0 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24S0 501.3 0 488L0 128zM128 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24zM352 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16c0-35.3 28.7-64 64-64zM288 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-360zM416 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24z\"],\n \"o\": [448, 512, [111], \"4f\", \"M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256a224 224 0 1 1 -448 0 224 224 0 1 1 448 0z\"],\n \"palette\": [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"unlock\": [384, 512, [128275], \"f09c\", \"M128 96c0-35.3 28.7-64 64-64 31.7 0 58 23 63.1 53.3 2.9 17.4 19.4 29.2 36.9 26.3s29.2-19.4 26.3-36.9C308.1 14.1 255.5-32 192-32 121.3-32 64 25.3 64 96l0 64c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-192 0 0-64z\"],\n \"ear-listen\": [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M379.6 .3c-8.9 1.2-17.2 6.2-22.4 14.1-6.8 10.4-7 24.1-.4 34.6 5.6 8.9 15.5 12.7 23.8 18.5 7.5 5.2 17.6 13.2 27.7 24.2 20 21.7 39.5 54.3 39.5 100.3 0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7-13.9-15.1-27.8-26.1-38.3-33.3-11-7.6-23.5-16.6-37.6-14.7zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zM0 480a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zM240 208c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"],\n \"code-pull-request\": [512, 512, [], \"e13c\", \"M328 24c0-9.7-5.8-18.5-14.8-22.2S293.9 .2 287 7L231 63c-9.4 9.4-9.4 24.6 0 33.9l56 56c6.9 6.9 17.2 8.9 26.2 5.2S328 145.7 328 136l0-24 24 0c17.7 0 32 14.3 32 32l0 214.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3L448 144c0-53-43-96-96-96l-24 0 0-24zM72 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm56 73.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S16 35.8 16 80c0 32.8 19.7 61 48 73.3l0 205.3c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-205.3zM72 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm344-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"key\": [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0 160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],\n \"skull\": [512, 512, [128128], \"f54c\", \"M416 427.4c58.5-44 96-111.6 96-187.4 0-132.5-114.6-240-256-240S0 107.5 0 240c0 75.8 37.5 143.4 96 187.4L96 464c0 26.5 21.5 48 48 48l32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 64 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c26.5 0 48-21.5 48-48l0-36.6zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"mars-stroke-up\": [384, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M192 256a112 112 0 1 0 0 224 112 112 0 1 0 0-224zM16 368c0-86.3 62.1-158.1 144.1-173.1-.1-.9-.1-1.9-.1-2.9l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-61.4-28 22.4c-13.8 11-33.9 8.8-45-5s-8.8-33.9 5-45l80-64c11.7-9.3 28.3-9.3 40 0l80 64c13.8 11 16 31.2 5 45s-31.2 16-45 5l-28-22.4 0 61.4 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 1 0 1.9-.1 2.9 82 15 144.1 86.8 144.1 173.1 0 97.2-78.8 176-176 176S16 465.2 16 368z\"],\n \"fire-flame-simple\": [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6 0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5 0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"],\n \"tree\": [448, 512, [127794], \"f1bb\", \"M224-32c7 0 13.7 3.1 18.3 8.5l136 160c6.1 7.1 7.4 17.1 3.5 25.6S369.4 176 360 176l-24.9 0 75.2 88.5c6.1 7.1 7.4 17.1 3.5 25.6S401.4 304 392 304l-38.5 0 88.8 104.5c6.1 7.1 7.4 17.1 3.5 25.6S433.4 448 424 448l-168 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-168 0c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L94.5 304 56 304c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L112.9 176 88 176c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6l136-160C210.3-28.9 217-32 224-32z\"],\n \"smog\": [576, 512, [], \"f75f\", \"M176 288C96.5 288 32 223.5 32 144S96.5 0 176 0c27.2 0 52.6 7.5 74.3 20.6 20.1-13 44-20.6 69.7-20.6 47.4 0 88.7 25.7 110.9 64l1.1 0c61.9 0 112 50.1 112 112 0 60.3-47.6 109.4-107.2 111.9-22.6 20-52.3 32.1-84.8 32.1-32.5 0-62.1-12.1-84.7-32L176 288zM512 392c0 13.3-10.7 24-24 24L24 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l464 0c13.3 0 24 10.7 24 24zM88 464l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm176 0l288 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"s\": [320, 512, [115], \"53\", \"M0 157.5C0 88.2 56.2 32 125.5 32L272 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L125.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61L210.1 230C272.9 237.9 320 291.2 320 354.5 320 423.8 263.8 480 194.5 480L48 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-31-23.1-57.2-53.9-61L109.9 282C47.1 274.1 0 220.8 0 157.5z\"],\n \"jedi\": [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9-.1 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5c59.8-10.8 105.1-63.1 105.1-126 0-37-15.7-70.4-40.8-93.7-7-6.5-6.5-18.6 1-24.4 34-26.3 55.8-67.5 55.8-113.9 0-16.8-2.9-33-8.2-48-4.6-13 10.2-30 21.4-22 53.5 38 92.7 94.8 107.8 160.7 .5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6 .1 3.3 .2 6.6 .2 10 0 17.5-1.7 34.7-4.8 51.3-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9-44.5 89.5-136.9 151-243.7 151S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3-3.2-16.6-4.8-33.8-4.8-51.3 0-3.3 .1-6.7 .2-10 .1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9 15.2-66 54.3-122.8 107.8-160.7 11.3-8 26 8.9 21.4 22-5.3 15-8.2 31.2-8.2 48 0 46.3 21.9 87.5 55.8 113.9 7.5 5.8 8 17.9 1 24.4-25.1 23.4-40.8 56.7-40.8 93.7 0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"],\n \"person-hiking\": [448, 512, [\"hiking\"], \"f6ec\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM128 173.6c0-34 27.6-61.6 61.6-61.6 20.3 0 39.7 8.1 54 22.4l48.2 48.2c6 6 14.1 9.4 22.6 9.4l37.5 0c5.8 0 11.3 1.6 16 4.3l0-76.3c0-13.3 10.7-24 24-24s24 10.7 24 24l0 400c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-268.3c-4.7 2.7-10.2 4.3-16 4.3l-37.5 0c-25.5 0-49.9-10.1-67.9-28.1l-6.6-6.6 0 109.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-101zm-4.8 203.7c2.3 2.3 4.7 4.4 7.1 6.5l44.9 38.5c-3.6 8.4-8.5 16.3-14.4 23.4L88.6 532.5c-11.3 13.6-31.5 15.4-45.1 4.1s-15.4-31.5-4.1-45.1l72.3-86.7c2.6-3.1 4.5-6.6 5.8-10.4l5.7-17.1zM0 160c0-35.3 28.7-64 64-64 17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96z\"],\n \"arrows-up-to-line\": [448, 512, [], \"e4c2\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l384 0c17.7 0 32-14.3 32-32S433.7 0 416 0L32 0zm86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L64 237.3 64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zm256 0c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 242.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"],\n \"mars-double\": [640, 512, [9891], \"f227\", \"M288 32c0-17.7 14.3-32 32-32L448 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S0 401.2 0 304 78.8 128 176 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm160 64c-6.8 0-13.4-.4-20-1.1 23.6-18.9 43.3-42.5 57.6-69.4 43.3-15.5 74.4-56.9 74.4-105.5 0-25.2-8.3-48.5-22.4-67.2 7.1 2.1 14.6 3.2 22.4 3.2 17 0 32.7-5.3 45.7-14.3 11.7 23.6 18.3 50.2 18.3 78.3 0 97.2-78.8 176-176 176zM528 157.3L528 32c0-11.4-2.4-22.2-6.7-32L608 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-48 48z\"],\n \"thermometer\": [512, 512, [], \"f491\", \"M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l21.7-21.7 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 7.8-7.8c19.4-19.4 45.6-30.2 73-30.2 57 0 103.2 46.2 103.2 103.2 0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0-89 89c-9.4 9.4-24.6 9.4-33.9 0S-2.3 480.4 7 471l89-89z\"],\n \"paintbrush\": [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M480.5 10.3L259.1 158c-29.1 19.4-47.6 50.9-50.6 85.3 62.3 12.8 111.4 61.9 124.3 124.3 34.5-3 65.9-21.5 85.3-50.6L565.7 95.5c6.7-10.1 10.3-21.9 10.3-34.1 0-33.9-27.5-61.4-61.4-61.4-12.1 0-24 3.6-34.1 10.3zM288 400c0-61.9-50.1-112-112-112S64 338.1 64 400c0 3.9 .2 7.8 .6 11.6 1.8 17.5-10.2 36.4-27.8 36.4L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112z\"],\n \"neuter\": [384, 512, [9906], \"f22c\", \"M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-1 0-1.9-.1-2.9z\"],\n \"square-phone-flip\": [448, 512, [\"phone-square-alt\"], \"f87b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm232 96.7l2.8 .8c32.3 8.8 59.9 40.1 51.8 78.2-18.5 87.5-87.4 156.3-174.9 174.9-38.1 8.1-69.4-19.5-78.2-51.8l-.8-2.8c-2.7-9.8 2.4-20.1 11.8-24l48.7-20.3c8.3-3.4 17.8-1.1 23.5 5.9l19.3 23.6c35.1-17.4 63.4-46.6 79.6-82.4l-22.1-18c-6.9-5.7-9.3-15.2-5.9-23.5l20.3-48.7c3.9-9.4 14.2-14.4 24-11.8z\"],\n \"face-grin-tongue-squint\": [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm125.8-91.7c-6.2-5.2-7.6-14.3-3.1-21.1s13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3zm263.6-21.1c4.5 6.8 3.1 15.9-3.1 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n \"comment-dollar\": [512, 512, [], \"f651\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zm4-352c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z\"],\n \"hippo\": [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1 0 10.2 7.4 18.8 16.7 23 27.9 12.5 47.3 40.5 47.3 73 0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4-1.5-1.1-2.9-2.3-4.3-3.5-17-14.7-27.7-36.4-27.7-60.5 0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9-18.1 40.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7 0-107.5 85.2-195.2 191.8-199.1l.2-.1 64 0c41.7 0 83.4 12.1 117.2 25.7 1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\n \"bowl-food\": [512, 512, [], \"e4c6\", \"M0 176c0-35.3 28.7-64 64-64 .5 0 1.1 0 1.6 0 7.4-36.5 39.7-64 78.4-64 15 0 29 4.1 40.9 11.2 13.3-25.7 40.1-43.2 71.1-43.2s57.8 17.6 71.1 43.2c12-7.1 26-11.2 40.9-11.2 38.7 0 71 27.5 78.4 64 .5 0 1.1 0 1.6 0 35.3 0 64 28.7 64 64 0 11.7-3.1 22.6-8.6 32L8.6 208C3.1 198.6 0 187.7 0 176zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"],\n \"square-virus\": [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm160 80c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM192 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"cloud-sun-rain\": [576, 512, [127782], \"f743\", \"M303.2-3.2c-1.1-5.2-4.6-9.5-9.5-11.6s-10.5-1.5-14.9 1.4L208 33.6 137.3-13.3c-4.4-2.9-10-3.5-14.9-1.4s-8.5 6.4-9.5 11.6L96 80 12.8 96.8c-5.2 1.1-9.5 4.6-11.6 9.5s-1.5 10.5 1.4 14.9L49.6 192 2.7 262.7c-2.9 4.4-3.5 10-1.4 14.9s6.4 8.5 11.6 9.5L96 304 112.8 387.2c1.1 5.2 4.6 9.5 9.5 11.6s10.5 1.5 14.9-1.4l67.3-44.6c-15.8-19.4-26-43.5-28.2-69.9-37.5-13.1-64.4-48.7-64.4-90.7 0-53 43-96 96-96 21.7 0 41.8 7.2 57.8 19.4 15.5-17.6 36.9-30 61.1-34L320 80 303.2-3.2zM243 159.1c-8.8-9.3-21.2-15.1-35-15.1-26.5 0-48 21.5-48 48 0 17 8.9 32 22.2 40.5 10.2-31.4 32.1-57.4 60.7-73l.1-.4zM304 352l192 0c44.2 0 80-35.8 80-80 0-33.9-21.1-62.9-50.9-74.5 1.9-6.8 2.9-14 2.9-21.5 0-44.2-35.8-80-80-80-30.8 0-57.5 17.4-70.9 42.8-9.3-6.8-20.7-10.8-33.1-10.8-30.9 0-56 25.1-56 56 0 3.2 .3 6.4 .8 9.4-36.9 7.1-64.8 39.6-64.8 78.6 0 44.2 35.8 80 80 80zm-19 49.1c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4z\"],\n \"arrow-right-long\": [576, 512, [\"long-arrow-right\"], \"f178\", \"M566.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L466.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l434.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"],\n \"building-un\": [512, 512, [], \"e4d9\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 272-112 0c-20.9 0-39.5 10.1-51.2 25.6-8-6-18-9.6-28.8-9.6-26.5 0-48 21.5-48 48l0 64 64 0 0 48-144 0c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM427.4 380.5c9-2.1 18.3 2.2 22.5 10.5l26.1 52.2 0-43.3c0-11 9-20 20-20s20 9 20 20l0 128c0 9.3-6.4 17.3-15.4 19.5s-18.3-2.2-22.5-10.5L452 484.7 452 528c0 11-9 20-20 20s-20-9-20-20l0-128c0-9.3 6.4-17.3 15.4-19.5zM324 400l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-11 9-20 20-20s20 9 20 20l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-11 9-20 20-20s20 9 20 20z\"],\n \"temperature-low\": [512, 512, [], \"f76b\", \"M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z\"],\n \"door-open\": [448, 512, [], \"f52b\", \"M288 64l64 0 0 416c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-384c0-35.3-28.7-64-64-64l-96 0 0 0-160 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-416zM160 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"align-left\": [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"],\n \"camera\": [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0-10.4-31.2C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\n \"users-rays\": [640, 512, [], \"e593\", \"M31-33C21.7-23.6 21.7-8.4 31 1L87 57c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L65-33c-9.4-9.4-24.6-9.4-33.9 0zM609-33c-9.4-9.4-24.6-9.4-33.9 0L519 23c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L609 1c9.4-9.4 9.4-24.6 0-33.9zM65 545l56-56c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L31 511c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zm544 0c9.4-9.4 9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56 56c9.4 9.4 24.6 9.4 33.9 0zM320 208a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm0 32c-61.9 0-112 50.1-112 112l0 8c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24l0-8c0-61.9-50.1-112-112-112zm216-80a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM451.2 260.4C469.4 286.3 480 317.9 480 352l0 8c0 8.4-1.4 16.5-4.1 24l78.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-53-43-96-96-96-10 0-19.7 1.5-28.8 4.4zm-262.4 0c-9.1-2.9-18.8-4.4-28.8-4.4-53 0-96 43-96 96l0 10.7c0 11.8 9.6 21.3 21.3 21.3l78.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-8c0-34.1 10.6-65.7 28.8-91.6zM216 160a56 56 0 1 0 -112 0 56 56 0 1 0 112 0z\"],\n \"rainbow\": [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352l0 64c0 17.7-14.3 32-32 32S0 433.7 0 416l0-64C0 175.3 143.3 32 320 32S640 175.3 640 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64C576 210.6 461.4 96 320 96zm0 112c-79.5 0-144 64.5-144 144l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-114.9 93.1-208 208-208s208 93.1 208 208l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-79.5-64.5-144-144-144zM288 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\n \"sitemap\": [512, 512, [], \"f0e8\", \"M192 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-8 0 0 64 120 0c39.8 0 72 32.2 72 72l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-13.3-10.7-24-24-24l-120 0 0 80 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-80-120 0c-13.3 0-24 10.7-24 24l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-39.8 32.2-72 72-72l120 0 0-64-8 0c-17.7 0-32-14.3-32-32l0-64z\"],\n \"face-grin-stars\": [512, 512, [129321, \"grin-stars\"], \"f587\", \"M256 512c141.4 0 256-114.6 256-256 0-24.4-3.4-48.1-9.8-70.5 18.6-36.1-2.7-83.6-46.7-90-46.9-58.3-118.9-95.5-199.5-95.5S103.4 37.3 56.5 95.5c-44 6.4-65.3 53.9-46.7 90-6.4 22.4-9.8 46-9.8 70.5 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zm-31.6-231c5.3-10.7 20.5-10.7 25.8 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4zm-198.2 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4c5.3-10.7 20.5-10.7 25.8 0z\"],\n \"sort-up\": [384, 512, [\"sort-asc\"], \"f0de\", \"M32 224c-12.9 0-24.6-7.8-29.6-19.8S.2 178.5 9.4 169.4l160-160c12.5-12.5 32.8-12.5 45.3 0l160 160c9.2 9.2 11.9 22.9 6.9 34.9S364.9 224 352 224L32 224z\"],\n \"eye\": [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6-46.8 43.5-78.1 95.4-93 131.1-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64-11.5 0-22.3-3-31.7-8.4-1 10.9-.1 22.1 2.9 33.2 13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-12.2-45.7-55.5-74.8-101.1-70.8 5.3 9.3 8.4 20.1 8.4 31.7z\"],\n \"caret-left\": [256, 512, [], \"f0d9\", \"M7.7 235.8c-10.3 12.6-9.5 31.1 2.2 42.8l128 128c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-256c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-128 128-2.2 2.4z\"],\n \"apple-whole\": [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160 27.3 0 59.7 10.3 82.7 19.3 18.8 7.3 39.9 7.3 58.7 0 22.9-8.9 55.4-19.3 82.7-19.3 76.3 0 112 83.7 112 160 0 128-80 224-160 224-16.5 0-38.1-6.6-51.5-11.3-8.1-2.8-16.9-2.8-25 0-13.4 4.7-35 11.3-51.5 11.3-80 0-160-96-160-224z\"],\n \"scroll-torah\": [576, 512, [\"torah\"], \"f6a0\", \"M0 48C0 21.5 21.5 0 48 0 68.9 0 86.7 13.4 93.3 32l389.5 0c6.6-18.6 24.4-32 45.3-32 26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48-20.9 0-38.7-13.4-45.3-32L93.3 480c-6.6 18.6-24.4 32-45.3 32-26.5 0-48-21.5-48-48L0 48zM177.9 301c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2c-2.6-4.2-7.2-6.8-12.2-6.8s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z\"],\n \"house-lock\": [640, 512, [], \"e510\", \"M528 224.1c44.2 0 80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l185 171.8C440.2 195 400 244.8 400 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM272 320c-26.5 0-48 21.5-48 48l0 96 96 0 0-87.3c0-16.5 7-31.5 18.4-42.1-8.7-9-20.9-14.6-34.4-14.6l-32 0zm256-47.9c-17.7 0-32 14.3-32 32l0 47.9 64 0 0-47.9c0-17.7-14.3-32-32-32z\"],\n \"arrows-left-right-to-line\": [576, 512, [], \"e4ba\", \"M32 96C14.3 96 0 110.3 0 128L0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM390.6 342.6l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-133.5 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 133.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0zM576 128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256z\"],\n \"trash\": [448, 512, [], \"f1f8\", \"M136.7 5.9L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-8.7-26.1C306.9-7.2 294.7-16 280.9-16L167.1-16c-13.8 0-26 8.8-30.4 21.9zM416 144L32 144 53.1 467.1C54.7 492.4 75.7 512 101 512L347 512c25.3 0 46.3-19.6 47.9-44.9L416 144z\"],\n \"face-sad-tear\": [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm271 98c5.5-1.3 11.1-2 17-2 24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50-12.5 0-24.6 1.9-35.9 5.5 9.8 12.7 16.5 27.9 18.9 44.6zM176 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM185.4 292.8c-2.4-2.9-5.7-4.8-9.4-4.8s-7 1.9-9.4 4.8c-6.5 7.8-12.6 16.1-18.3 24.6-9 13.4-20.3 30.2-20.3 47.4 0 28.3 21.5 51.2 48 51.2s48-22.9 48-51.2c0-17.2-11.2-34-20.3-47.4-5.7-8.5-11.9-16.7-18.3-24.6z\"],\n \"fax\": [512, 512, [128224, 128439], \"f1ac\", \"M160 64l0 80 64 0 0-80 146.7 0 45.3 45.3 0 34.7 64 0 0-34.7c0-17-6.7-33.3-18.7-45.3L416 18.7C404 6.7 387.7 0 370.7 0L224 0c-35.3 0-64 28.7-64 64zM32 128c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-288c0-17.7-14.3-32-32-32l-48 0zm448 64l-320 0 0 256c0 17.7 14.3 32 32 32l288 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM224 288a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm0 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM336 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM312 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM424 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM400 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"person-circle-plus\": [640, 512, [], \"e541\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n \"hamsa\": [512, 512, [], \"f665\", \"M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6 0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71S136.6 486.2 95.4 441L9 345.9c-5.8-6.4-9-14.7-9-23.3 0-19.1 15.5-34.6 34.6-34.6zM256 288c-38.4 0-76.8 35.8-90.6 50.2-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"person-circle-question\": [640, 512, [], \"e542\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z\"],\n \"clipboard-check\": [384, 512, [], \"f46c\", \"M256 0c23.7 0 44.4 12.9 55.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0zm26.9 212.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6s-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L288.2 246.1c7.8-10.7 5.4-25.7-5.3-33.5zM136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64z\"],\n \"share-from-square\": [576, 512, [61509, \"share-square\"], \"f14d\", \"M384.5 24l0 72-64 0c-79.5 0-144 64.5-144 144 0 93.4 82.8 134.8 100.6 142.6 2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8 0-8.3-5.9-15.5-12.8-20.3-8.9-6.2-19.2-18.2-19.2-40.5 0-45 36.5-81.5 81.5-81.5l30.5 0 0 72c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l136-136c9.4-9.4 9.4-24.6 0-33.9L425.5 7c-6.9-6.9-17.2-8.9-26.2-5.2S384.5 14.3 384.5 24zm-272 72c-44.2 0-80 35.8-80 80l0 256c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 8.8-7.2 16-16 16l-256 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0z\"],\n \"receipt\": [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6S384 14.6 384 24l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6l-40.4-34.6-40.4 34.6c-9 7.7-22.2 7.7-31.2 0l-40.4-34.6-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM104 136c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0zM80 352c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24-120c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"],\n \"equals\": [448, 512, [62764], \"3d\", \"M32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320z\"],\n \"chevron-up\": [448, 512, [], \"f077\", \"M201.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 173.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"],\n \"virus-slash\": [576, 512, [], \"e075\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-88.6-88.6c1.7-12.1-2-24.8-11.3-34-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0c-31.2 31.2-84.5 9.1-84.5-35 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-9.3-9.3-22-13-34-11.3L41-24.9zM72 216c-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-21.4 12.6-37.6 29.1-45.1l-240-240C109.6 203.4 93.4 216 72 216z\"],\n \"slash\": [576, 512, [], \"f715\", \"M7-25c9.4-9.4 24.6-9.4 33.9 0L569 503c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9C-2.3-.4-2.3-15.6 7-25z\"],\n \"expand\": [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z\"],\n \"note-sticky\": [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 213.5c0 17-6.7 33.3-18.7 45.3L322.7 461.3c-12 12-28.3 18.7-45.3 18.7L64 480zM389.5 304L296 304c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5z\"],\n \"table-columns\": [448, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 128 0 0-256-128 0zm320 0l-128 0 0 256 128 0 0-256z\"],\n \"person-shelter\": [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32L64 178.6 256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 192l16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-33.2-61.7C329.7 245.1 294.4 224 256 224s-73.7 21.1-91.9 54.9l-33.2 61.7c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88z\"],\n \"circle-notch\": [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8-79.3 23.6-137.1 97.1-137.1 184.1 0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256 512 397.4 397.4 512 256 512S0 397.4 0 256c0-116 77.1-213.9 182.9-245.4 16.9-5 34.8 4.6 39.8 21.5z\"],\n \"water\": [512, 512, [], \"f773\", \"M410.6 124.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm0 144c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.7-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 144c21.3-16.1 49.9-16.1 71.2 0 20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"],\n \"delete-left\": [640, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM284.1 188.1c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"broom-ball\": [576, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M496 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zM106.8 277.2c30.6-30.6 73.1-45.9 115.8-42.2L341 353.3c3.7 42.8-11.6 85.2-42.2 115.9-27.4 27.4-64.6 42.8-103.3 42.8L22.1 512c-12.2 0-22.1-9.9-22.1-22.1 0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2 0-31.5 12.5-61.8 34.8-84l8-8zm417-270c12.6-10.3 31.1-9.5 42.8 2.2s12.4 30.2 2.2 42.8l-2.2 2.4-192 192 34.8 34.7c4.2 4.2 6.6 10 6.6 16 0 12.5-10.1 22.6-22.6 22.6l-29.1 0-108.3-108.3 0-29.1c0-12.5 10.1-22.6 22.6-22.6 6 0 11.8 2.4 16 6.6l34.8 34.7 192-192 2.4-2.2z\"],\n \"j\": [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z\"],\n \"shuttle-space\": [576, 512, [\"space-shuttle\"], \"f197\", \"M0 368l0 64c0 26.5 21.5 48 48 48l50 0c40.6 0 80.4-11 115.2-31.9l133.5-80.1-93.3 0-64.9 38.9c-14 8.4-28.9 14.7-44.5 19l0-66.4c9.7-5.6 17.8-13.7 23.4-23.4l198.8 0c67.1 0 127.8-20.6 170.3-70.6 4.6-5.4 4.6-13.3 0-18.8-42.5-50.1-103.2-70.6-170.3-70.6l-198.8 0c-5.6-9.7-13.7-17.8-23.4-23.4l0-66.4c15.6 4.2 30.6 10.6 44.5 19l64.9 38.9 93.3 0-133.5-80.1C178.4 43 138.6 32 98 32L48 32C21.5 32 0 53.5 0 80L0 368zm96 0l0 64-48 0 0-64 48 0zM96 80l0 64-48 0 0-64 48 0zM416 224c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"],\n \"yin-yang\": [512, 512, [9775], \"f6ad\", \"M224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 352a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-448c53 0 96 43 96 96s-43 96-96 96-96 43-96 96 43 96 96 96C150 448 64 362 64 256S150 64 256 64zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"stop\": [448, 512, [9209], \"f04d\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z\"],\n \"trowel\": [576, 512, [], \"e589\", \"M407.9 181.4L277.3 312 342.6 377.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9s-11.5-20.8-7.9-32.2l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L232 266.7 362.6 136.1c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"],\n \"hand-back-fist\": [384, 512, [\"hand-rock\"], \"f255\", \"M7.4 253.6C2.6 245.9 0 237.1 0 228l0-36c0-26.5 21.5-48 48-48l16 0 0-80c0-26.5 21.5-48 48-48 17.3 0 32.4 9.1 40.9 22.8 4.3-22.1 23.8-38.8 47.1-38.8 23.4 0 42.9 16.8 47.1 38.9 7.3-4.4 15.8-6.9 24.9-6.9 22.1 0 40.8 15 46.3 35.4 5.5-2.2 11.4-3.4 17.7-3.4 26.5 0 48 21.5 48 48l0 96.9c0 9.9-2.3 19.7-6.8 28.6l-39.6 79.1c-10.8 21.7-33 35.4-57.2 35.4L96 352c-16.5 0-31.8-8.4-40.6-22.4l-48-76zM32 480l0-48c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32z\"],\n \"temperature-high\": [512, 512, [], \"f769\", \"M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3L216 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z\"],\n \"greater-than\": [512, 512, [62769], \"3e\", \"M34.9 50.6c-7.4 16-.4 35.1 15.6 42.5L403.6 256 50.6 419c-16 7.4-23.1 26.4-15.6 42.5s26.4 23 42.5 15.6l416-192c11.3-5.2 18.6-16.6 18.6-29.1s-7.3-23.8-18.6-29.1L77.4 35c-16-7.4-35.1-.4-42.5 15.6z\"],\n \"crutch\": [512, 512, [], \"f7f7\", \"M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-1.4-1.4-158.6 158.6c-18 18-42.4 28.1-67.9 28.1l-59 0c-8.5 0-16.6 3.4-22.6 9.4-61.7 61.7-92.8 92.8-93.3 93.3-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l16-16 0 0 77.3-77.3c6-6 9.4-14.1 9.4-22.6l0-59c0-25.5 10.1-49.9 28.1-67.9L298.7 56 297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zM344 101.3L261.3 184 328 250.7 410.7 168 344 101.3zm-128 128l-30.6 30.6c-6 6-9.4 14.1-9.4 22.6l0 53.5 53.5 0c8.5 0 16.6-3.4 22.6-9.4L282.7 296 216 229.3z\"],\n \"septagon\": [576, 512, [\"heptagon\"], \"e820\", \"M267.4-31.5c15.9-5.5 33.5-4.6 48.8 2.7l172.4 83 6.3 3.5c14.2 9 24.5 23.3 28.3 39.9l42.6 186.5 1.2 7.2c1.6 14.3-1.7 28.8-9.4 41.1l-4.2 5.9-119.3 149.6c-12.1 15.2-30.6 24.1-50 24.1l-191.3 0c-19.5 0-37.9-8.9-50-24.1L23.5 338.4c-12.1-15.2-16.7-35.2-12.3-54.2l42.6-186.5 2-7c5.6-15.9 17.2-29 32.6-36.4l172.4-83 6.7-2.7z\"],\n \"street-view\": [512, 512, [], \"f21d\", \"M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 160l64 0c35.3 0 64 28.7 64 64l0 48c0 17.7-14.3 32-32 32l-1.8 0-11.1 99.5c-1.8 16.2-15.5 28.5-31.8 28.5l-38.7 0c-16.3 0-30-12.3-31.8-28.5l-11.1-99.5-1.8 0c-17.7 0-32-14.3-32-32l0-48c0-35.3 28.7-64 64-64zM412.4 400.2c-16.1-4.2-34.8-7.6-55.4-10.2l5.3-47.7c22.7 2.9 43.7 6.7 62.1 11.5 22.4 5.8 42.6 13.3 57.8 23.3 14.7 9.6 29.8 24.9 29.8 47s-15.1 37.4-29.8 47c-15.2 9.9-35.5 17.5-57.8 23.3-45.1 11.7-105.3 17.8-168.4 17.8s-123.3-6.1-168.4-17.8C65.2 488.4 45 480.9 29.8 471 15.1 461.4 0 446.1 0 424s15.1-37.4 29.8-47c15.2-9.9 35.5-17.5 57.8-23.3 18.5-4.8 39.5-8.6 62.1-11.5L155 390c-20.6 2.6-39.3 6.1-55.4 10.2-56.6 14.6-56.6 32.9 0 47.5 39.9 10.3 95.8 16.2 156.4 16.2s116.5-5.9 156.4-16.2c56.6-14.6 56.6-32.9 0-47.5z\"],\n \"wave-square\": [512, 512, [], \"f83e\", \"M64 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 288 96 0 0-128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-288-96 0 0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-128z\"],\n \"angle-left\": [256, 512, [8249], \"f104\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"],\n \"screwdriver\": [576, 512, [129691], \"f54a\", \"M352.1 146.7l0-49.6c0-10.7 5.3-20.7 14.2-26.6L485.2-8.7c6.3-4.2 14.8-3.4 20.2 2l45.4 45.5c5.4 5.4 6.2 13.8 2 20.2L473.6 177.8c-5.9 8.9-15.9 14.2-26.6 14.2l-49.6 0-90.7 90.7c15 33.3 8.9 73.9-18.5 101.3L162.1 510.1c-18.7 18.7-49.1 18.7-67.9 0L34.1 449.9c-18.7-18.7-18.7-49.1 0-67.9L160.1 256c27.4-27.4 67.9-33.6 101.3-18.5l90.7-90.7z\"],\n \"tractor\": [576, 512, [128668], \"f722\", \"M160 96l0 96 133.4 0-57.6-96-75.8 0zM96 223L96 64c0-17.7 14.3-32 32-32l107.8 0c22.5 0 43.3 11.8 54.9 31.1l77.4 128.9 64 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 48 0c26.5 0 48 21.5 48 48l0 41.5c0 14.2-6.3 27.8-17.3 36.9l-35 29.2c26.5 15.2 44.3 43.7 44.3 76.4 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-14.4 3.5-28 9.6-40l-101.2 0c-3 13.4-7.9 26-14.4 37.7 7.7 9.4 7.2 23.4-1.6 32.2l-22.6 22.6c-8.8 8.8-22.7 9.3-32.2 1.6-9.3 5.2-19.3 9.3-29.8 12.3-1.2 12.1-11.4 21.6-23.9 21.6l-32 0c-12.4 0-22.7-9.5-23.9-21.6-10.5-3-20.4-7.2-29.8-12.3-9.4 7.7-23.4 7.2-32.2-1.6L35.5 453.8c-8.8-8.8-9.3-22.7-1.6-32.2-5.2-9.3-9.3-19.3-12.3-29.8-12.1-1.2-21.6-11.4-21.6-23.9l0-32c0-12.4 9.5-22.7 21.6-23.9 3-10.5 7.2-20.4 12.3-29.8-7.7-9.4-7.2-23.4 1.6-32.2l22.6-22.6c8.8-8.8 22.7-9.3 32.2-1.6 1.9-1 3.7-2 5.7-3zm64 65a64 64 0 1 0 0 128 64 64 0 1 0 0-128zM440 424a40 40 0 1 0 80 0 40 40 0 1 0 -80 0z\"],\n \"bridge-circle-xmark\": [576, 512, [], \"e4cb\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"vials\": [512, 512, [], \"f493\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 352c0 53 43 96 96 96s96-43 96-96l0-352 64 0 0 352c0 53 43 96 96 96s96-43 96-96l0-352c17.7 0 32-14.3 32-32S497.7 0 480 0L32 0zM160 64l0 128-64 0 0-128 64 0zm256 0l0 128-64 0 0-128 64 0z\"],\n \"stethoscope\": [576, 512, [129658], \"f0f1\", \"M32 48C32 21.5 53.5 0 80 0l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-32 0c-17.7 0-32-14.3-32-32S238.3 0 256 0l48 0c26.5 0 48 21.5 48 48l0 144c0 77.4-55 142-128 156.8l0 19.2c0 61.9 50.1 112 112 112s112-50.1 112-112l0-85.5c-37.3-13.2-64-48.7-64-90.5 0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 85.5c0 97.2-78.8 176-176 176S160 465.2 160 368l0-19.2C87 334 32 269.4 32 192L32 48zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"podcast\": [448, 512, [], \"f2ce\", \"M336 359.8c39.1-32.3 64-81.1 64-135.8 0-97.2-78.8-176-176-176S48 126.8 48 224C48 278.7 72.9 327.5 112 359.8 112.4 377.4 115.2 400.2 118.4 421.6 48 383.9 0 309.5 0 224 0 100.3 100.3 0 224 0S448 100.3 448 224c0 85.6-48 159.9-118.5 197.6 3.3-21.4 6-44.2 6.4-61.8zm-14-53.4c-8.3-12.6-19.2-21.6-30.4-27.8-2.1-1.1-4.2-2.2-6.3-3.2 11.7-13.9 18.8-31.9 18.8-51.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 19.6 7.1 37.6 18.8 51.5-2.1 1-4.2 2-6.3 3.2-11.2 6.2-22.1 15.2-30.4 27.8-18.8-22.3-30.1-51-30.1-82.4 0-70.7 57.3-128 128-128s128 57.3 128 128c0 31.4-11.3 60.2-30.1 82.4zM224 312c32.9 0 64 8.6 64 43.8 0 33-12.9 104.1-20.6 132.9-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8 0-35.1 31.1-43.8 64-43.8zm0-128a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],\n \"arrow-up-right-dots\": [512, 512, [], \"e4b7\", \"M96 32C78.3 32 64 46.3 64 64S78.3 96 96 96L114.7 96 9.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.3 160 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 32zM403.8 70.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM279.7 194.2a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm162.2-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zM156.2 317.8a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM70.1 403.8a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0z\"],\n \"chess-queen\": [512, 512, [9819], \"f445\", \"M256 80a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM5.5 185L128 384 71.8 454.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L384 384 506.5 185c3.6-5.9 5.5-12.7 5.5-19.6l0-.6c0-20.3-16.5-36.8-36.8-36.8-7.3 0-14.4 2.2-20.4 6.2l-16.9 11.3c-12.7 8.5-29.6 6.8-40.4-4l-34.1-34.1C356.1 100.1 346.2 96 336 96s-20.1 4.1-27.3 11.3l-30.1 30.1c-12.5 12.5-32.8 12.5-45.3 0l-30.1-30.1C196.1 100.1 186.2 96 176 96s-20.1 4.1-27.3 11.3l-34.1 34.1c-10.8 10.8-27.7 12.5-40.4 4L57.3 134.2c-6.1-4-13.2-6.2-20.4-6.2-20.3 0-36.8 16.5-36.8 36.8l0 .6c0 6.9 1.9 13.7 5.5 19.6z\"],\n \"anchor-circle-exclamation\": [640, 512, [], \"e4ab\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"ellipsis-vertical\": [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 144a56 56 0 1 1 0-112 56 56 0 1 1 0 112zm0 224c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-112c0 30.9-25.1 56-56 56s-56-25.1-56-56 25.1-56 56-56 56 25.1 56 56z\"],\n \"heart-circle-exclamation\": [576, 512, [], \"e4fe\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"],\n \"building-circle-exclamation\": [576, 512, [], \"e4d3\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"person-arrow-up-from-line\": [576, 512, [], \"e539\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM208 480l0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128 32 0zM566.6 102.6c-12.5 12.5-32.8 12.5-45.3 0L496 77.3 496 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-146.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3z\"],\n \"not-equal\": [448, 512, [], \"f53e\", \"M378.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L270.9 128 32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l196.2 0-85.3 128-110.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l68.2 0-30.8 46.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9L177.1 384 416 384c17.7 0 32-14.3 32-32s-14.3-32-32-32l-196.2 0 85.3-128 110.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-68.2 0 30.8-46.2z\"],\n \"train-tram\": [384, 512, [128650], \"e5b4\", \"M0 8C0-5.3 10.7-16 24-16l336 0c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-120 0 0 64 40 0c53 0 96 43 96 96l0 160c0 31.2-14.9 59-38 76.5l64.3 76c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74.6-88.1c-3.6 .4-7.3 .6-11.1 .6l-128 0c-3.8 0-7.5-.2-11.1-.6L42.3 535.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l64.3-76C46.9 411 32 383.2 32 352l0-160c0-53 43-96 96-96l40 0 0-64-120 0 0 8c0 13.3-10.7 24-24 24S0 53.3 0 40L0 8zM128 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"plane-departure\": [576, 512, [128747], \"f5b0\", \"M372 143.9L172.7 40.2c-8-4.1-17.3-4.8-25.7-1.7l-41.1 15c-10.3 3.7-13.8 16.4-7.1 25L200.3 206.4 100.1 242.8 40 206.2c-6.2-3.8-13.8-4.5-20.7-2.1L3 210.1c-9.4 3.4-13.4 14.5-8.3 23.1l53.6 91.8c15.6 26.7 48.1 38.4 77.1 27.8l12.9-4.7 0 0 398.4-145c29.1-10.6 44-42.7 33.5-71.8s-42.7-44-71.8-33.5L372 143.9zM32.2 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-512 0z\"],\n \"right-to-bracket\": [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M345 273c9.4-9.4 9.4-24.6 0-33.9L201 95c-6.9-6.9-17.2-8.9-26.2-5.2S160 102.3 160 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L345 273zm7 143c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0z\"],\n \"sd-card\": [384, 512, [], \"f7c2\", \"M384 64c0-35.3-28.7-64-64-64L125.3 0C108.3 0 92 6.7 80 18.7L18.7 80C6.7 92 0 108.3 0 125.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"house-circle-exclamation\": [640, 512, [], \"e50a\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM496 444a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"],\n \"shekel-sign\": [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z\"],\n \"radio\": [512, 512, [128251], \"f8d7\", \"M494.8 15c12.7-3.7 20-17.1 16.3-29.8S494-34.8 481.3-31L51.8 94.9C42.4 97.6 33.9 102.1 26.6 108 10.5 119.7 0 138.6 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L218.5 96 494.8 15zM368 208a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM64 248c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 272c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 368c-13.3 0-24-10.7-24-24z\"],\n \"hand-dots\": [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM200 352a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-88 24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"book-skull\": [448, 512, [\"book-dead\"], \"f6b7\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM272 163.2l0 12.8c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-12.8c-19.4-11.7-32-30.3-32-51.2 0-35.3 35.8-64 80-64s80 28.7 80 64c0 20.9-12.6 39.5-32 51.2zM208 112a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm74.2 95.7c4.6 10.1 .1 21.9-9.9 26.5l-47.9 21.8 47.9 21.8c10.1 4.6 14.5 16.4 9.9 26.5s-16.4 14.5-26.5 9.9L224 294 144.3 330.2c-10.1 4.6-21.9 .1-26.5-9.9s-.1-21.9 9.9-26.5l47.9-21.8-47.9-21.8c-10.1-4.6-14.5-16.4-9.9-26.5s16.4-14.5 26.5-9.9L224 250 303.7 213.8c10.1-4.6 21.9-.1 26.5 9.9z\"],\n \"unlock-keyhole\": [384, 512, [\"unlock-alt\"], \"f13e\", \"M192 32c-35.3 0-64 28.7-64 64l0 64 192 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l0-64c0-70.7 57.3-128 128-128 63.5 0 116.1 46.1 126.2 106.7 2.9 17.4-8.8 33.9-26.3 36.9s-33.9-8.8-36.9-26.3C250 55.1 223.7 32 192 32zm40 328c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0z\"],\n \"file-arrow-up\": [384, 512, [\"file-upload\"], \"f574\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM209 263c-9.4-9.4-24.6-9.4-33.9 0l-64 64c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 86.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-86.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z\"],\n \"face-grin-tears\": [640, 512, [128514, \"grin-tears\"], \"f588\", \"M554.8 203.4l16.3 2.3C547.7 88.4 444.2 0 320 0S92.3 88.4 68.9 205.7l16.3-2.3c37-5.3 68.6 26.4 63.4 63.4l-6.7 46.7c-4.1 29-21.6 53.2-45.8 66.8 43.7 78.5 127.6 131.7 223.8 131.7s180.1-53.1 223.8-131.7c-24.1-13.5-41.6-37.8-45.8-66.8l-6.7-46.7c-5.3-37 26.4-68.6 63.4-63.4zM470.3 326.9C447.9 388.2 389.1 432 320 432S192.1 388.2 169.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1zM212 208l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28zm188-28c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zM640 300.6c0-25.6-18.8-47.3-44.1-50.9L549.1 243c-10.6-1.5-19.6 7.5-18.1 18.1l6.7 46.7c3.6 25.3 25.3 44.1 50.9 44.1 28.4 0 51.4-23 51.4-51.4zm-640 0C0 329 23 352 51.4 352 77 352 98.7 333.2 102.3 307.9l6.7-46.7c1.5-10.6-7.5-19.6-18.1-18.1l-46.7 6.7C18.8 253.3 0 275 0 300.6z\"],\n \"pen-to-square\": [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L368 46.1 465.9 144 490.3 119.6c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L432 177.9 334.1 80 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z\"],\n \"earth-europe\": [512, 512, [\"globe-europe\"], \"f7a2\", \"M256.2 48c114.8 .1 207.8 93.2 207.8 208 0 22.1-3.4 43.4-9.8 63.4-2 .4-4.1 .6-6.2 .6l-2.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-50.7c0-8.8 7.2-16 16-16s16-7.2 16-16-7.2-16-16-16l-24 0c-13.3 0-24 10.7-24 24s-10.7 24-24 24l-56 0c-8.8 0-16 7.2-16 16s-7.2 16-16 16l-25.4 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l70.1-70.1c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3l-14.1 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l23.1-23.1c.8-.8 1.6-1.5 2.5-2.2zM438.4 356.1c-32.8 59.6-93.9 101.4-165.2 107.2-.7-2.3-1.1-4.8-1.1-7.3 0-13.3-10.7-24-24-24l-26.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-66.7c0-17.7 14.3-32 32-32l98.7 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 14.1 9.4 22.6 9.4l5.5 0c8.5 0 16.6 3.4 22.6 9.4l16 16c4.2 4.2 10 6.6 16 6.6 4.8 0 9.3 1.5 13 4.1zM256 512l26.2-1.3c-8.6 .9-17.3 1.3-26.2 1.3zm26.2-1.3C411.3 497.6 512 388.6 512 256 512 114.6 397.4 0 256 0l0 0C114.6 0 0 114.6 0 256 0 383.5 93.2 489.3 215.3 508.8 228.5 510.9 242.1 512 256 512zM187.3 123.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"face-grin-beam-sweat\": [576, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M546.2-.1c14.7 17.8 29.8 40.1 29.8 64.1 0 36.4-27.6 64-64 64s-64-27.6-64-64c0-24 15.2-46.3 29.8-64.1 8.8-10.7 18.5-20.8 29-30 3-2.6 7.4-2.6 10.4 0 10.5 9.1 20.1 19.3 29 30zM288 0c42.5 0 82.6 10.4 117.8 28.7-3.6 10.9-5.8 22.7-5.8 35.3 0 62.9 49.1 112 112 112 6.4 0 12.7-.5 18.8-1.5 8.6 25.6 13.2 53 13.2 81.5 0 141.4-114.6 256-256 256S32 397.4 32 256 146.6 0 288 0zM418.7 308.9C379.5 321.1 335.1 328 288 328s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 22.4 61.3 81.3 105.1 150.3 105.1s127.9-43.8 150.3-105.1c4.3-11.8-7.7-21.8-19.6-18.1zM208 180c15.5 0 28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-15.5 12.5-28 28-28zm132 28c0-15.5 12.5-28 28-28s28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8z\"],\n \"circle-half-stroke\": [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"person-military-to-person\": [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8 0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0c-1.6 5.7-2.5 11.7-2.5 17.9 0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 3 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9S400 497.8 400 488.4l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"],\n \"table-cells-column-lock\": [640, 512, [], \"e678\", \"M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 368c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"truck-field-un\": [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 48c0 21.1 13.7 39.1 32.6 45.5-.4 3.4-.6 7-.6 10.5 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l144.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l.4 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-24.7 0-1.7-4.2-43.8-106.3c-12.3-30-41.6-49.5-74-49.5l-40.4 0C364.4 44.9 343.7 32 320 32L96 32zM384 224l0-96 31.9 0c6.5 0 12.3 3.9 14.8 9.9l35.4 86.1-82.1 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm280 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM256.6 132.9l27.4 41 0-29.9c0-11 9-20 20-20s20 9 20 20l0 96c0 8.8-5.8 16.6-14.2 19.1s-17.5-.7-22.4-8l-27.4-41 0 29.9c0 11-9 20-20 20s-20-9-20-20l0-96c0-8.8 5.8-16.6 14.2-19.1s17.5 .7 22.4 8zM132 144l0 64c0 6.6 5.4 12 12 12s12-5.4 12-12l0-64c0-11 9-20 20-20s20 9 20 20l0 64c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-64c0-11 9-20 20-20s20 9 20 20z\"],\n \"clock\": [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n \"book\": [448, 512, [128212], \"f02d\", \"M384 512L96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zM96 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zm32-232c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24 72c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"],\n \"face-laugh-wink\": [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"],\n \"cloud-meatball\": [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96l26.9 0c3.5-12.1 10.1-23.3 19.2-32.4l1.4-1.4c15-15 35.3-22.9 56.1-22.2 14.2-15.1 34.2-23.9 55.4-23.9l2 0c21.1 0 41.1 8.8 55.4 23.9 20.8-.6 41.1 7.3 56.1 22.2l1.4 1.4c9.2 9.2 15.7 20.4 19.2 32.4l26.9 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM156.5 424.3c9.5 6.3 14.2 17.7 11.9 28.8-1.8 9.2 1 18.7 7.7 25.3l1.4 1.4c6.6 6.6 16.1 9.5 25.3 7.7 11.1-2.2 22.5 2.5 28.8 11.9 5.2 7.8 14 12.5 23.3 12.5l2 0c9.4 0 18.1-4.7 23.3-12.5 6.3-9.5 17.7-14.2 28.8-11.9 9.2 1.8 18.7-1 25.3-7.7l1.4-1.4c6.6-6.6 9.5-16.1 7.7-25.3-2.2-11.1 2.5-22.5 11.9-28.8 7.8-5.2 12.5-14 12.5-23.3l0-2c0-9.4-4.7-18.1-12.5-23.3-9.5-6.3-14.2-17.7-11.9-28.8 1.8-9.2-1-18.7-7.7-25.3l-1.4-1.4c-6.6-6.6-16.1-9.5-25.3-7.7-11.1 2.2-22.5-2.5-28.8-11.9-5.2-7.8-14-12.5-23.3-12.5l-2 0c-9.4 0-18.1 4.7-23.3 12.5-6.3 9.5-17.7 14.2-28.8 11.9-9.2-1.8-18.7 1-25.3 7.7l-1.4 1.4c-6.6 6.6-9.5 16.1-7.7 25.3 2.2 11.1-2.5 22.5-11.9 28.8-7.8 5.2-12.5 14-12.5 23.3l0 2c0 9.4 4.7 18.1 12.5 23.3zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],\n \"chart-area\": [512, 512, [\"area-chart\"], \"f1fe\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM240 96c6.7 0 13.1 2.8 17.7 7.8L328.8 181.3 375 135c9.4-9.4 24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17l0 112c0 13.3-10.7 24-24 24l-304 0c-13.3 0-24-10.7-24-24l0-112c0-6 2.3-11.8 6.3-16.2l88-96c4.5-5 11-7.8 17.7-7.8z\"],\n \"rupiah-sign\": [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm256-32l80 0c61.9 0 112 50.1 112 112S461.9 448 400 448l-48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z\"],\n \"text-width\": [448, 512, [], \"f035\", \"M40 0C17.9 0 0 17.9 0 40L0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 128 0 0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-160 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 0zm78.6 406.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 229.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-229.5 0 9.4-9.4z\"],\n \"satellite\": [512, 512, [128752], \"f7bf\", \"M199 7c9.4-9.4 24.6-9.4 33.9 0l89.4 89.4 55-55c12.5-12.5 32.8-12.5 45.3 0l48 48c12.5 12.5 12.5 32.8 0 45.3l-55 55 89.4 89.4c9.4 9.4 9.4 24.6 0 33.9l-96 96c-9.4 9.4-24.6 9.4-33.9 0l-89.4-89.4-15.5 15.5c11.4 24.6 17.8 52 17.8 80.9 0 31.7-7.7 61.5-21.2 87.8-4.7 9-16.7 10.3-23.8 3.1l-96.3-96.3-60 60c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l60-60-96.3-96.3c-7.2-7.2-5.9-19.2 3.1-23.8 26.3-13.6 56.2-21.2 87.8-21.2 28.9 0 56.3 6.4 80.9 17.8L192.4 226.3 103 137c-9.4-9.4-9.4-24.6 0-33.9L199 7zm17 50.9l-62.1 62.1 72.4 72.4 62.1-62.1-72.4-72.4zM392 358.1l62.1-62.1-72.4-72.4-62.1 62.1 72.4 72.4z\"],\n \"magnifying-glass-minus\": [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"people-group\": [512, 512, [], \"e533\", \"M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1C172.7 359 160 337 160 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zM96 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm16 240l0 32c0 32.5 12.1 62.1 32 84.7l0 75.3c0 1.2 0 2.5 .1 3.7-8.5 7.6-19.7 12.3-32.1 12.3l-32 0c-26.5 0-48-21.5-48-48l0-56.6C12.9 364.4 0 343.7 0 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1zM368 464l0-75.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 56.6c0 26.5-21.5 48-48 48l-32 0c-12.3 0-23.6-4.6-32.1-12.3 0-1.2 .1-2.5 .1-3.7zM416 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"],\n \"square-binary\": [448, 512, [], \"e69b\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm144 4c-24.3 0-44 19.7-44 44l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0zm-4 44c0-2.2 1.8-4 4-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48zm140-44c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0zM132 296c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20zm96 24l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0c-24.3 0-44 19.7-44 44zm44-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48c0-2.2 1.8-4 4-4z\"],\n \"masks-theater\": [576, 512, [127917, \"theater-masks\"], \"f630\", \"M-5 118L23.5 279.7c14 79.5 76.3 141.8 155.8 155.8l12.7 2.2c-16.5-28.6-27.1-60.7-30.6-94.5l-24.1 4.3c-9.7 1.7-18.8-5.8-16.9-15.5 4.8-24.7 19.1-46.6 39.7-60.9l0-74.6c-1.4 .8-3 1.3-4.7 1.6l-63 11.1c-8.7 1.5-17.3-4.4-15.9-13.1 3.1-19.6 18.4-36 39.1-39.7 17.2-3 33.9 3.5 44.6 15.8l0-22.7c0-22.5 6.9-52.4 32.3-73.4 26-21.5 67.7-43.9 124.9-54.2-30.5-16.3-86.3-32-163.8-18.4-80.3 14.2-128 50.1-150.1 76.1-9 10.5-10.8 24.9-8.4 38.5zM208 138.7l0 174.8c0 80.7 50.5 152.9 126.4 180.4L362.1 504c14.1 5.1 29.6 5.1 43.7 0L433.6 494C509.5 466.4 560 394.3 560 313.5l0-174.8c0-6.9-2.1-13.8-7-18.6-22.6-22.5-78.2-56-169-56s-146.4 33.6-169 56c-4.9 4.9-7 11.7-7 18.6zm66.1 187.1c-1.4-7 7-11 12.7-6.6 26.9 20.6 60.6 32.9 97.2 32.9s70.2-12.3 97.2-32.9c5.7-4.4 14.1-.4 12.7 6.6-10.1 51.4-55.5 90.3-109.9 90.3s-99.8-38.8-109.9-90.3zm.5-101.5C281.2 205.5 299 192 320 192s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7l-64 0c-8.8 0-16.3-7.4-13.4-15.7zM480 240l-64 0c-8.8 0-16.3-7.4-13.4-15.7 6.5-18.8 24.4-32.3 45.4-32.3s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7z\"],\n \"cart-plus\": [640, 512, [], \"f217\", \"M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 412.7 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM336 78.4c-13.3 0-24 10.7-24 24l0 33.6-33.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.6 0 0 33.6c0 13.3 10.7 24 24 24s24-10.7 24-24l0-33.6 33.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-33.6 0 0-33.6c0-13.3-10.7-24-24-24z\"],\n \"hands-asl-interpreting\": [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l80 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7 8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20 8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5l-100.7 27.5 81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4l-101.9 84.9 23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-80 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20 22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.6-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"],\n \"table-cells-row-unlock\": [640, 512, [], \"e691\", \"M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48c-.1-17.6-14.4-31.9-32-31.9-17.7 0-32 14.3-32 32l0 47.9 96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80 44.2 0 79.9 35.8 80 79.9l-48 0z\"],\n \"rocket\": [512, 512, [], \"f135\", \"M128 320L24.5 320c-24.9 0-40.2-27.1-27.4-48.5L50 183.3C58.7 168.8 74.3 160 91.2 160l95 0c76.1-128.9 189.6-135.4 265.5-124.3 12.8 1.9 22.8 11.9 24.6 24.6 11.1 75.9 4.6 189.4-124.3 265.5l0 95c0 16.9-8.8 32.5-23.3 41.2l-88.2 52.9c-21.3 12.8-48.5-2.6-48.5-27.4L192 384c0-35.3-28.7-64-64-64l-.1 0zM400 160a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"shrimp\": [512, 512, [129424], \"e448\", \"M72 32C32.2 32 0 64.2 0 104 0 141.9 29.3 172.9 66.4 175.8 77.6 257.2 147.4 320 232 320l56 0 0-192-216 0c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111 0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6 0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"tenge-sign\": [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 56C0 42.7 10.7 32 24 32l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 80C10.7 80 0 69.3 0 56zM0 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256-128 0c-17.7 0-32-14.3-32-32z\"],\n \"house-chimney-medical\": [512, 512, [\"clinic-medical\"], \"f7f2\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM224 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"],\n \"users-slash\": [640, 512, [], \"e073\", \"M73-24.9c-9.4-9.4-24.6-9.4-33.9 0S29.7-.3 39 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L321.8 224c56.6-1 102.2-47.2 102.2-104 0-57.4-46.6-104-104-104-56.8 0-103 45.6-104 102.2L73-24.9zM512 288c-17.2 0-33.7 3.4-48.7 9.6l170 170c4.2-5.4 6.7-12.2 6.7-19.6l0-32c0-70.7-57.3-128-128-128zM59.9 97.7c-21.5 12.5-35.9 35.7-35.9 62.3 0 39.8 32.2 72 72 72 26.6 0 49.8-14.4 62.3-35.9L59.9 97.7zM250.2 288C196.8 313.9 160 368.7 160 432l0 16c0 17.7 14.3 32 32 32l250.2 0-192-192zM128 288C57.3 288 0 345.3 0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z\"],\n \"paper-plane\": [576, 512, [61913], \"f1d8\", \"M536.4-26.3c9.8-3.5 20.6-1 28 6.3s9.8 18.2 6.3 28l-178 496.9c-5 13.9-18.1 23.1-32.8 23.1-14.2 0-27-8.6-32.3-21.7l-64.2-158c-4.5-11-2.5-23.6 5.2-32.6l94.5-112.4c5.1-6.1 4.7-15-.9-20.6s-14.6-6-20.6-.9L229.2 276.1c-9.1 7.6-21.6 9.6-32.6 5.2L38.1 216.8c-13.1-5.3-21.7-18.1-21.7-32.3 0-14.7 9.2-27.8 23.1-32.8l496.9-178z\"],\n \"book-atlas\": [448, 512, [\"atlas\"], \"f558\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM310.6 208L279 208c-1.4 23.1-6 44.2-12.6 61.2 22.7-12.5 39.4-34.8 44.2-61.2zm-173.1 0c4.8 26.4 21.5 48.7 44.2 61.2-6.7-17-11.2-38-12.6-61.2l-31.6 0zm76.4 55c4.5 9.6 8.2 13.8 10.2 15.5 2-1.7 5.7-5.8 10.2-15.5 6.2-13.4 11.1-32.5 12.7-55l-45.8 0c1.6 22.5 6.5 41.6 12.7 55zm-12.7-87l45.8 0c-1.6-22.5-6.5-41.6-12.7-55-4.5-9.6-8.2-13.8-10.2-15.5-2 1.7-5.7 5.8-10.2 15.5-6.2 13.4-11.1 32.5-12.7 55zm109.5 0c-4.8-26.4-21.5-48.7-44.2-61.2 6.7 17 11.2 38 12.6 61.2l31.6 0zM169 176c1.4-23.1 6-44.2 12.6-61.2-22.7 12.5-39.4 34.8-44.2 61.2l31.6 0zM96 192a128 128 0 1 1 256 0 128 128 0 1 1 -256 0z\"],\n \"table\": [448, 512, [], \"f0ce\", \"M256 160l0 96 128 0 0-96-128 0zm-64 0l-128 0 0 96 128 0 0-96zM0 320L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm384 0l-128 0 0 96 128 0 0-96zM192 416l0-96-128 0 0 96 128 0z\"],\n \"heart\": [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1z\"],\n \"circle-chevron-up\": [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"],\n \"battery-half\": [640, 512, [\"battery-3\"], \"f242\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-144 0z\"],\n \"font-awesome\": [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"],\n \"handcuffs\": [576, 512, [], \"e4f8\", \"M320-32c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zM192 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM152 96c-13.3 0-24 10.7-24 24l0 16c0 1 .1 1.9 .2 2.9-74.7 26.3-128.2 97.5-128.2 181.1 0 106 86 192 192 192s192-86 192-192c0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0zM64 320a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm448 0c0 66.9-51.3 121.8-116.6 127.5-14.3 22.8-32.4 43.1-53.4 59.9 13.5 3 27.6 4.6 42 4.6 106 0 192-86 192-192 0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0c-12.3 0-22.4 9.2-23.8 21.1 30.3 19.2 56.1 45 75.2 75.4 65.4 5.8 116.6 60.6 116.6 127.5zM384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"hat-cowboy-side\": [640, 512, [], \"f8c1\", \"M640 388.3c0 16.9-7.1 32.2-18.4 43.1l-35-23.3-292.7-195.1c-36.1-24.1-78.6-36.9-122-36.9l-3.9 0c-2.7 0-5.4 0-8 .1l22.2-100c5.7-25.8 28.6-44.1 55-44.1 12.2 0 24.1 4 33.8 11.3l4.7 3.5c26.3 19.7 62.4 19.7 88.6 0l4.7-3.5c9.8-7.3 21.6-11.3 33.8-11.3 26.4 0 49.3 18.3 55 44.1l33 148.5C574.5 232.3 640 302.6 640 388.3zM171.9 224c33.9 0 67.1 10 95.4 28.9L560 448 56 448c-30.9 0-56-25.1-56-56 0-92.8 75.2-168 168-168l3.9 0z\"],\n \"industry\": [512, 512, [], \"f275\", \"M32 32C14.3 32 0 46.3 0 64L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-279.8c0-18.2-19.4-29.7-35.4-21.1l-156.6 84.3 0-63.2c0-18.2-19.4-29.7-35.4-21.1L128 215.4 128 64c0-17.7-14.3-32-32-32L32 32z\"],\n \"lines-leaning\": [384, 512, [], \"e51e\", \"M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z\"],\n \"passport\": [384, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 408c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zM278.6 208c-4.8 26.4-21.5 48.7-44.2 61.2 6.7-17 11.2-38 12.6-61.2l31.6 0zm-173.1 0l31.6 0c1.4 23.1 6 44.2 12.6 61.2-22.7-12.5-39.4-34.8-44.2-61.2zm76.4 55c-6.2-13.4-11.1-32.5-12.7-55l45.8 0c-1.6 22.5-6.5 41.6-12.7 55-4.5 9.6-8.2 13.8-10.2 15.5-2-1.7-5.7-5.8-10.2-15.5zm0-142c4.5-9.6 8.2-13.8 10.2-15.5 2 1.7 5.7 5.8 10.2 15.5 6.2 13.4 11.1 32.5 12.7 55l-45.8 0c1.6-22.5 6.5-41.6 12.7-55zm96.7 55L247 176c-1.4-23.1-6-44.2-12.6-61.2 22.7 12.5 39.4 34.8 44.2 61.2zM137 176l-31.6 0c4.8-26.4 21.5-48.7 44.2-61.2-6.7 17-11.2 38-12.6 61.2zm183 16a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"],\n \"infinity\": [640, 512, [8734, 9854], \"f534\", \"M0 256c0-88.4 71.6-160 160-160 50.4 0 97.8 23.7 128 64l32 42.7 32-42.7c30.2-40.3 77.6-64 128-64 88.4 0 160 71.6 160 160S568.4 416 480 416c-50.4 0-97.8-23.7-128-64l-32-42.7-32 42.7c-30.2 40.3-77.6 64-128 64-88.4 0-160-71.6-160-160zm280 0l-43.2-57.6c-18.1-24.2-46.6-38.4-76.8-38.4-53 0-96 43-96 96s43 96 96 96c30.2 0 58.7-14.2 76.8-38.4L280 256zm80 0l43.2 57.6c18.1 24.2 46.6 38.4 76.8 38.4 53 0 96-43 96-96s-43-96-96-96c-30.2 0-58.7 14.2-76.8 38.4L360 256z\"],\n \"clone\": [512, 512, [], \"f24d\", \"M288 448l-224 0 0-224 48 0 0-64-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-48-64 0 0 48zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z\"],\n \"forward\": [576, 512, [9193], \"f04e\", \"M371.7 43.1C360.1 32 343 28.9 328.3 35.2S304 56 304 72l0 136.3-172.3-165.1C120.1 32 103 28.9 88.3 35.2S64 56 64 72l0 368c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9L304 303.7 304 440c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9l192-184c7.9-7.5 12.3-18 12.3-28.9s-4.5-21.3-12.3-28.9l-192-184z\"],\n \"m\": [448, 512, [109], \"4d\", \"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3-133.4 200.1c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 49.9 9.2 37.5 22.7 33.4z\"],\n \"road-spikes\": [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.8-26.6 49.8L64 352 64 116.8zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"mountain\": [512, 512, [127956], \"f6fc\", \"M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4z\"],\n \"chess\": [512, 512, [], \"f439\", \"M168 56l0 40-78.1 0c-14.3 0-25.9 11.6-25.9 25.9 0 4 .9 8 2.7 11.6l33.4 66.8c-11.4 1.8-20.2 11.7-20.2 23.7 0 13.3 10.7 24 24 24l5.6 0-13.6 136-56.2 70.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l248.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L288 384 274.4 248 280 248c13.3 0 24-10.7 24-24 0-11.9-8.7-21.9-20.2-23.7l33.4-66.8c1.8-3.6 2.7-7.6 2.7-11.6 0-14.3-11.6-25.9-25.9-25.9l-78.1 0 0-40 16 0c13.3 0 24-10.7 24-24S245.3 8 232 8l-16 0 0-16c0-13.3-10.7-24-24-24S168-21.3 168-8l0 16-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0zM325.8 279.6l8.5 85.5 47.4 59.2 4.2 5.7c9.2 13.7 14.1 29.9 14.1 46.5 0 12.7-2.8 24.8-7.9 35.5l83.1 0c20.3 0 36.8-16.5 36.8-36.8 0-7.3-2.2-14.4-6.2-20.4l-25.8-38.7 0-64 13.3-13.3c12-12 18.7-28.3 18.7-45.3L512 192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 16-32 0 0-16c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 22.4-10.2 42.4-26.2 55.6z\"],\n \"temperature-three-quarters\": [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 156.7c23.5 9.5 40 32.5 40 59.3z\"],\n \"b\": [320, 512, [98], \"42\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l160 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM160 224l-96 0 0-128 96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0 0-128z\"],\n \"shield-virus\": [512, 512, [], \"e06c\", \"M253.4 2.9C249.2 1 244.7 0 240 0s-9.2 1-13.4 2.9L38.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L253.4 2.9zM240 128c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM208 264a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"litecoin-sign\": [384, 512, [], \"e1d3\", \"M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 157.9-38.6 11c-12.7 3.6-20.1 16.9-16.5 29.7s16.9 20.1 29.7 16.5L64 271.8 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-162.5 134.6-38.5c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5L128 203.6 128 64z\"],\n \"dice-d6\": [512, 512, [], \"f6d1\", \"M224.4 8.3C244-2.8 268-2.8 287.6 8.3l176 99.7c20 11.4 32.4 32.6 32.4 55.7l0 197.4c0 23-12.4 44.3-32.4 55.7l-176 99.7c-19.6 11.1-43.6 11.1-63.1 0l-176-99.7C28.4 405.5 16 384.2 16 361.2l0-197.4c0-23 12.4-44.3 32.4-55.7l176-99.7zM102.6 155.6c-8.8-3.1-18.8 .3-23.8 8.6s-3.2 18.7 3.6 25l3.2 2.4 150.2 90.2 0 148.7c0 11 9 20 20 20 11 0 20-9 20-20l0-148.7 150.3-90.2c9.5-5.7 12.6-18 6.9-27.4s-18-12.5-27.4-6.9l-149.7 89.8-149.7-89.8-3.7-1.7z\"],\n \"grip-lines-vertical\": [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z\"],\n \"golf-ball-tee\": [384, 512, [\"golf-ball\"], \"f450\", \"M298.5 384.1c12.1 1.2 21.5 11.5 21.5 23.9s-9.4 22.6-21.5 23.9l-2.5 .1-80 0 0 88c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-88-80 0c-13.3 0-24-10.7-24-24 0-12.4 9.4-22.6 21.5-23.9l2.5-.1 208 0 2.5 .1zM192 0c106 0 192 86 192 192 0 57.4-25.2 108.8-65.1 144L65.1 336C25.2 300.8 0 249.4 0 192 0 86 86 0 192 0zm32 240c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm64-64c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-80-16c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16z\"],\n \"hexagon\": [576, 512, [11043], \"f312\", \"M33.5 220.3c-12.7 22.2-12.7 49.4 0 71.5l96.2 168.1c12.8 22.4 36.7 36.2 62.5 36.2l191.6 0c25.8 0 49.7-13.8 62.5-36.2l96.2-168.1c12.7-22.2 12.7-49.4 0-71.5L446.3 52.2C433.5 29.8 409.6 16 383.8 16L192.2 16c-25.8 0-49.7 13.8-62.5 36.2L33.5 220.3z\"],\n \"folder-open\": [576, 512, [128194, 128449, 61717], \"f07c\", \"M56 225.6L32.4 296.2 32.4 96c0-35.3 28.7-64 64-64l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4l117.3 0c35.3 0 64 28.7 64 64l0 16-365.4 0c-41.3 0-78 26.4-91.1 65.6zM477.8 448L99 448c-32.8 0-55.9-32.1-45.5-63.2l48-144C108 221.2 126.4 208 147 208l378.8 0c32.8 0 55.9 32.1 45.5 63.2l-48 144c-6.5 19.6-24.9 32.8-45.5 32.8z\"],\n \"kaaba\": [512, 512, [128331], \"f66b\", \"M256 51.3L92.8 112.4 247.5 171.1c5.5 2.1 11.5 2.1 17 0L419.2 112.4 256 51.3zM0 129.3c0-20 12.4-37.9 31.1-44.9l208-78c10.9-4.1 22.8-4.1 33.7 0l208 78c18.7 7 31.1 24.9 31.1 44.9l0 36-253.2 96c-1.8 .7-3.8 .7-5.7 0l-253.2-96 0-36zm0 140l0-52.7 236.1 89.6c12.8 4.9 26.9 4.9 39.7 0l236.1-89.6 0 52.7-128 48.6 0 51.3 128-48.6 0 62.2c0 20-12.4 37.9-31.1 44.9l-208 78c-10.9 4.1-22.8 4.1-33.7 0l-208-78C12.4 420.7 0 402.7 0 382.7l0-62.2 128 48.6 0-51.3-128-48.6zM236.1 410.1c12.8 4.9 26.9 4.9 39.7 0l60.1-22.8 0-51.3-77.2 29.3c-1.8 .7-3.8 .7-5.7 0l-77.2-29.3 0 51.3 60.1 22.8z\"],\n \"hand-holding\": [576, 512, [], \"f4bd\", \"M66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z\"],\n \"single-quote-right\": [192, 512, [], \"e81c\", \"M64 416c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136c0 66.3-53.7 120-120 120l-8 0z\"],\n \"bottle-droplet\": [320, 512, [], \"e4c4\", \"M80 0c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 103.3c64.9 20.4 112 81 112 152.7l0 192c0 35.3-28.7 64-64 64L64 544c-35.3 0-64-28.7-64-64L0 288c0-71.6 47.1-132.3 112-152.7L112 32C94.3 32 80 17.7 80 0zm80 416c35.3 0 64-32.4 64-64 0-21.2-28.9-64.5-47.9-90.6-8.1-11.1-24.2-11.1-32.3 0-19 26.1-47.9 69.4-47.9 90.6 0 31.6 28.7 64 64 64z\"],\n \"window-minimize\": [512, 512, [128469], \"f2d1\", \"M0 416c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32z\"],\n \"chevron-right\": [320, 512, [9002], \"f054\", \"M311.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L243.2 256 73.9 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"],\n \"egg\": [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 394 0 288 0 176 64 16 192 16S384 176 384 288c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2-11.2 31.6-16.9 65.1-16.9 93.5 0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8 10.1-28.5 25-54.1 43.7-71.2z\"],\n \"landmark-dome\": [512, 512, [\"landmark-alt\"], \"f752\", \"M256 0c-17.7 0-32 14.3-32 32 0 .9 0 1.8 .1 2.6-80.5 13.4-144 76.9-157.5 157.4L64 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 160-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6L448 416 448 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-2.7 0c-13.5-80.4-77-143.9-157.5-157.4 .1-.9 .1-1.7 .1-2.6 0-17.7-14.3-32-32-32zm80 256l64 0 0 160-64 0 0-160zM224 416l0-160 64 0 0 160-64 0zM112 256l64 0 0 160-64 0 0-160z\"],\n \"worm\": [448, 512, [], \"e599\", \"M224 96c0-53 43-96 96-96l38.4 0C407.9 0 448 40.1 448 89.6L448 376c0 75.1-60.9 136-136 136S176 451.1 176 376l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48S0 490.5 0 464L0 296c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"user-injured\": [448, 512, [], \"f728\", \"M242.7 80L334 80c-10.7-24.6-29.5-44.9-52.9-57.6L242.7 80zm-.9-70.7C236 8.4 230 8 224 8 174.8 8 132.5 37.6 114 80l80.6 0 47.1-70.7zM224 248c66.3 0 120-53.7 120-120l-240 0c0 66.3 53.7 120 120 120zM98.7 341.8C49.3 370.2 16 423.5 16 484.6 16 499.7 28.3 512 43.4 512l151 0-95.8-170.2zm45.1-17.7l42.7 75.9 85.5 0c44.2 0 80 35.8 80 80 0 11.4-2.4 22.2-6.7 32l59.2 0c15.1 0 27.4-12.3 27.4-27.4 0-90.9-73.7-164.6-164.6-164.6l-86.9 0c-12.6 0-24.9 1.4-36.7 4.1zM213.5 448l36 64 22.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-58.5 0z\"],\n \"strikethrough\": [512, 512, [], \"f0cc\", \"M96 157.5C96 88.2 152.2 32 221.5 32L368 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L221.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61l44.1 5.5 222 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l83.1 0C103 204.6 96 181.8 96 157.5zM349.2 336l65.5 0c.9 6.1 1.4 12.2 1.4 18.5 0 69.3-56.2 125.5-125.5 125.5L144 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-6.4-1-12.7-2.8-18.5z\"],\n \"blog\": [512, 512, [], \"f781\", \"M224 24c0-13.3 10.7-24 24-24 145.8 0 264 118.2 264 264 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-119.3-96.7-216-216-216-13.3 0-24-10.7-24-24zM80 96c26.5 0 48 21.5 48 48l0 224c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16 79.5 0 144 64.5 144 144S255.5 512 176 512 32 447.5 32 368l0-224c0-26.5 21.5-48 48-48zm168 0c92.8 0 168 75.2 168 168 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3-53.7-120-120-120-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"stopwatch-20\": [448, 512, [], \"e06f\", \"M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm-60 240c0-28.7 23.3-52 52-52s52 23.3 52 52l0 3.8c0 11.7-3.2 23.1-9.3 33l-43.8 71.2 33.1 0c11 0 20 9 20 20s-9 20-20 20l-57.8 0c-14.5 0-26.2-11.7-26.2-26.2 0-4.9 1.3-9.6 3.9-13.8l56.7-92.1c2.2-3.6 3.4-7.8 3.4-12.1l0-3.8c0-6.6-5.4-12-12-12s-12 5.4-12 12c0 11-9 20-20 20s-20-9-20-20zm180-52c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12z\"],\n \"truck-pickup\": [640, 512, [128763], \"f63c\", \"M363.8 96l57.6 96-133.4 0 0-96 75.8 0zM496 192L418.6 63.1C407.1 43.8 386.2 32 363.8 32L256 32c-17.7 0-32 14.3-32 32l0 128-144 0c-26.5 0-48 21.5-48 48l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32.4 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l160.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l32.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-80c0-26.5-21.5-48-48-48l-64 0zM112 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm376-40a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],\n \"seedling\": [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 32C512 140.1 435.4 230.3 333.6 251.4 325.7 193.3 299.6 141 261.1 100.5 301.2 40 369.9 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z\"],\n \"transgender\": [576, 512, [9895, \"transgender-alt\"], \"f225\", \"M128-32c17.7 0 32 14.3 32 32s-14.3 32-32 32L97.9 32 136 70.1 151 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-15 15 14.2 14.2c27.9-23.8 64.2-38.2 103.8-38.2 36.7 0 70.6 12.4 97.6 33.2L466.7 32 448 32c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-84.4 84.4c13 23.1 20.4 49.9 20.4 78.3 0 77.4-55 142-128 156.8l0 35.2 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-35.2c-73-14.8-128-79.4-128-156.8 0-31.4 9-60.7 24.7-85.4l-16.7-16.7-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l15-15-38.1-38.1 0 30.1c0 17.7-14.3 32-32 32S0 113.7 0 96L0 0C0-17.7 14.3-32 32-32l96 0zM288 336a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"],\n \"star-half\": [576, 512, [61731], \"f089\", \"M304.1 7.6c0-11.1-7.6-20.7-18.4-23.3s-21.9 2.5-27 12.4L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L291 416.1c8-4.1 13.1-12.4 13.1-21.4l0-387.1z\"],\n \"photo-film\": [640, 512, [\"photo-video\"], \"f87c\", \"M192 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224zM320 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm156.5 11.5C472.1 100.4 464.4 96 456 96s-16.1 4.4-20.5 11.5l-54 88.3-17.9-25.6c-4.5-6.4-11.8-10.2-19.7-10.2s-15.2 3.8-19.7 10.2l-56 80c-5.1 7.3-5.8 16.9-1.6 24.8S279.1 288 288 288l256 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144zM144 128l0 160c0 61.9 50.1 112 112 112l192 0 0 16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l80 0zM52 196l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0zm0 96c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0z\"],\n \"pump-medical\": [320, 512, [], \"e06a\", \"M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm64 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"fire\": [448, 512, [128293], \"f06d\", \"M160.5-26.4c9.3-7.8 23-7.5 31.9 .9 12.3 11.6 23.3 24.4 33.9 37.4 13.5 16.5 29.7 38.3 45.3 64.2 5.2-6.8 10-12.8 14.2-17.9 1.1-1.3 2.2-2.7 3.3-4.1 7.9-9.8 17.7-22.1 30.8-22.1 13.4 0 22.8 11.9 30.8 22.1 1.3 1.7 2.6 3.3 3.9 4.8 10.3 12.4 24 30.3 37.7 52.4 27.2 43.9 55.6 106.4 55.6 176.6 0 123.7-100.3 224-224 224S0 411.7 0 288c0-91.1 41.1-170 80.5-225 19.9-27.7 39.7-49.9 54.6-65.1 8.2-8.4 16.5-16.7 25.5-24.2zM225.7 416c25.3 0 47.7-7 68.8-21 42.1-29.4 53.4-88.2 28.1-134.4-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5-17.3-22.1-49.1-62.4-65.3-83-5.4-6.9-15.2-8-21.5-1.9-18.3 17.8-51.5 56.8-51.5 104.3 0 68.6 50.6 109.2 113.7 109.2z\"],\n \"magnifying-glass-plus\": [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 112c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"],\n \"flask\": [448, 512, [], \"f0c3\", \"M288 0L128 0C110.3 0 96 14.3 96 32s14.3 32 32 32L128 215.5 7.5 426.3C2.6 435 0 444.7 0 454.7 0 486.4 25.6 512 57.3 512l333.4 0c31.6 0 57.3-25.6 57.3-57.3 0-10-2.6-19.8-7.5-28.4L320 215.5 320 64c17.7 0 32-14.3 32-32S337.7 0 320 0L288 0zM192 215.5l0-151.5 64 0 0 151.5c0 11.1 2.9 22.1 8.4 31.8l41.6 72.7-164 0 41.6-72.7c5.5-9.7 8.4-20.6 8.4-31.8z\"],\n \"align-right\": [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"],\n \"cable-car\": [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 24a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-96.2-193.4 55.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l224-64 0 0 224-64c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-206.6 59 0 109.9 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm80 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l56 0 0-96-56 0zm184 96l0-96-80 0 0 96 80 0zm48 0l56 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-56 0 0 96z\"],\n \"kit-medical\": [512, 512, [\"first-aid\"], \"f479\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l16 0 0-384-16 0zm64 0l0 384 256 0 0-384-256 0zM448 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-16 0 0 384 16 0zM224 184c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"grip-lines\": [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"],\n \"burger\": [512, 512, [\"hamburger\"], \"f805\", \"M48 384c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l288 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16L48 384zM32 202c0 12.2 9.9 22 22 22L458 224c12.2 0 22-9.9 22-22 0-17.2-2.6-34.4-10.8-49.5-22.2-40.8-82.3-120.5-213.2-120.5S65 111.6 42.8 152.5C34.6 167.6 32 184.8 32 202zM0 304c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 272c-17.7 0-32 14.3-32 32zM256 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM120 128a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm248-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"snowman\": [640, 512, [9731, 9924], \"f7d0\", \"M403 211.7c32.2-24.9 53-63.9 53-107.7 0-75.1-60.9-136-136-136S184 28.9 184 104c0 43.9 20.8 82.9 53 107.7-32.2 16.3-59 41.8-76.8 73.1L112 264.2 112 224c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 19.6-22.5-9.7c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5c36.1 15.5 75.9 32.5 119.4 51.2-3.9 14.9-6 30.6-6 46.7 0 70 39.1 130.8 96.6 161.9 7.9 4.3 16.9 6.1 25.9 6.1l123 0c9 0 18-1.8 25.9-6.1 57.5-31.1 96.6-92 96.6-161.9 0-16.2-2.1-31.8-6-46.7 43.5-18.7 83.4-35.7 119.4-51.2 12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6l-22.5 9.7 0-19.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40.2-48.2 20.6c-17.9-31.3-44.6-56.8-76.8-73.1zM296 416a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24-120a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM292.2 159.3c-2.7-4.8-4.2-10.2-4.2-15.7 0-17.5 14.2-31.6 31.6-31.6l.8 0c17.5 0 31.6 14.2 31.6 31.6 0 5.5-1.4 10.9-4.2 15.7L327 195.8c-3.1 5.4-10.8 5.4-13.9 0l-20.9-36.6z\"],\n \"hotel\": [512, 512, [127976], \"f594\", \"M16 24C16 10.7 26.7 0 40 0L472 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 416 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-416-8 0C26.7 48 16 37.3 16 24zm208 88l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM128 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm96 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM112 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 384l43.8 0c9.9 0 17.5-9 14-18.2-13.8-36.1-48.8-61.8-89.7-61.8s-75.9 25.7-89.7 61.8c-3.5 9.2 4.1 18.2 14 18.2l43.8 0 0 80 64 0 0-80z\"],\n \"print\": [512, 512, [128424, 128438, 9113], \"f02f\", \"M64 64C64 28.7 92.7 0 128 0L341.5 0c17 0 33.3 6.7 45.3 18.7l42.5 42.5c12 12 18.7 28.3 18.7 45.3l0 37.5-384 0 0-80zM0 256c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 96c0 17.7-14.3 32-32 32l-32 0 0 64c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-64-32 0c-17.7 0-32-14.3-32-32l0-96zM128 416l0 32 256 0 0-96-256 0 0 64zM456 272a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"volleyball\": [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M512 258.9c-23.4 8-47.8 13.1-72.6 15.1 5.9-98.6-30.7-191.1-94.9-258.3 97.8 36 167.5 130 167.5 240.3 0 1 0 1.9 0 2.9zm-5.9 52c-5.2 23.7-13.6 46.2-24.9 66.9-94.7 52.2-214 50-308.4-13.6 21.7-31.3 49.8-58.9 83.8-80.5 79.5 41.6 168.5 49.1 249.5 27.1zM279.7 241.6c-3.7-89.7-41.7-170.5-101.3-229.7 22.3-7.1 46-11.2 70.5-11.9 92.5 55.9 150.3 160.3 142.4 273.8-38-3.2-75.9-13.7-111.6-32.3zM130.5 32.8C149.1 49.1 165.8 67.7 179.9 88.2 91.5 132.3 29.7 210.3 3.7 299.5 1.3 285.3 0 270.8 0 256 0 160.2 52.6 76.7 130.5 32.8zm73.4 97c16.3 34.5 26.1 72.6 27.9 112.8-75.8 48-126.8 121.3-148.3 202.5-17.6-16.1-33-34.6-45.5-55 2.1-108.1 63.7-210.4 165.9-260.3zM256 512c-47.7 0-92.3-13-130.5-35.7 4.8-24.3 12.6-48 23.2-70.4 82.4 54.4 180.8 68.9 271 47-44.4 37-101.5 59.2-163.7 59.2z\"],\n \"traffic-light\": [320, 512, [128678], \"f637\", \"M64-32C28.7-32 0-3.3 0 32L0 384c0 88.4 71.6 160 160 160s160-71.6 160-160l0-352c0-35.3-28.7-64-64-64L64-32zm96 392c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-104a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zM160 152a56 56 0 1 1 0-112 56 56 0 1 1 0 112z\"],\n \"plane-circle-check\": [640, 512, [], \"e555\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"],\n \"users\": [640, 512, [], \"f0c0\", \"M320 16a104 104 0 1 1 0 208 104 104 0 1 1 0-208zM96 88a72 72 0 1 1 0 144 72 72 0 1 1 0-144zM0 416c0-70.7 57.3-128 128-128 12.8 0 25.2 1.9 36.9 5.4-32.9 36.8-52.9 85.4-52.9 138.6l0 16c0 11.4 2.4 22.2 6.7 32L32 480c-17.7 0-32-14.3-32-32l0-32zm521.3 64c4.3-9.8 6.7-20.6 6.7-32l0-16c0-53.2-20-101.8-52.9-138.6 11.7-3.5 24.1-5.4 36.9-5.4 70.7 0 128 57.3 128 128l0 32c0 17.7-14.3 32-32 32l-86.7 0zM472 160a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 432c0-88.4 71.6-160 160-160s160 71.6 160 160l0 16c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-16z\"],\n \"certificate\": [576, 512, [], \"f0a3\", \"M239.2-8c-6.1-6.2-15-8.7-23.4-6.4S200.9-5.6 198.8 2.8L183.5 63c-1.1 4.4-5.6 7-9.9 5.7L113.8 51.9c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l16.9 59.8c1.2 4.3-1.4 8.8-5.7 9.9L35.1 166.5c-8.4 2.1-15 8.7-17.3 17.1s.2 17.3 6.4 23.4l44.5 43.3c3.2 3.1 3.2 8.3 0 11.5L24.3 305.1c-6.2 6.1-8.7 15-6.4 23.4s8.9 14.9 17.3 17.1l60.2 15.3c4.4 1.1 7 5.6 5.7 9.9L84.2 430.5c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l59.8-16.9c4.3-1.2 8.8 1.4 9.9 5.7l15.3 60.2c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l43.3-44.5c3.1-3.2 8.3-3.2 11.5 0L337.3 520c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3L393.1 449c1.1-4.4 5.6-7 9.9-5.7l59.8 16.9c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-16.9-59.8c-1.2-4.3 1.4-8.8 5.7-9.9l60.2-15.3c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-44.5-43.3c-3.2-3.1-3.2-8.3 0-11.5l44.5-43.3c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-60.2-15.3c-4.4-1.1-7-5.6-5.7-9.9l16.9-59.8c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1L403 68.8c-4.3 1.2-8.8-1.4-9.9-5.7L377.8 2.8c-2.1-8.4-8.7-15-17.1-17.3s-17.3 .2-23.4 6.4L294 36.5c-3.1 3.2-8.3 3.2-11.5 0L239.2-8z\"],\n \"alarm-clock\": [512, 512, [9200], \"f34e\", \"M504.4 132.5c-4.5 10.5-18.4 9.8-24.9 .4-27.8-40-66.1-72.2-111-92.6-10.4-4.7-13.7-18.3-4.1-24.6 15-9.9 33-15.7 52.3-15.7 52.6 0 95.2 42.6 95.2 95.2 0 13.2-2.7 25.8-7.6 37.3zm-471.9 .4c-6.5 9.4-20.5 10.1-24.9-.4-4.9-11.5-7.6-24.1-7.6-37.3 0-52.6 42.6-95.2 95.2-95.2 19.3 0 37.3 5.8 52.3 15.7 9.6 6.3 6.3 19.9-4.1 24.6-44.8 20.4-83.1 52.6-111 92.6zM390.2 467.4C352.8 495.4 306.3 512 256 512s-96.8-16.6-134.1-44.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l35.2-35.2C48.6 384.8 32 338.3 32 288 32 164.3 132.3 64 256 64S480 164.3 480 288c0 50.3-16.6 96.8-44.6 134.2l35.2 35.2c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-35.2-35.2zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l56 56c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-94.1z\"],\n \"helicopter-symbol\": [512, 512, [], \"e502\", \"M445.4 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.4 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.2 368.4 66.7 288L2 288zm0-64l64.7 0C80.2 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z\"],\n \"house-chimney-crack\": [512, 512, [\"house-damage\"], \"f6f1\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-105.6 0-38.4-64 80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L218.6 263.2c-14.6-11.5-33.8 7-22.8 22L256 368 170.5 439.2c-6.1 5-7.5 13.8-3.5 20.5l31.3 52.2-86.4 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208z\"],\n \"person-military-pointing\": [512, 512, [], \"e54a\", \"M214.9 14.1C202 15.2 192 26 192 39 192 52.8 203.2 64 217 64l151 0c8.8 0 16-7.2 16-16l0-30.6C384 8 376 .7 366.7 1.4L214.9 14.1zM208 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L209.6 96c-1 5.2-1.6 10.5-1.6 16zM40 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4 162.8-162.8c-13.3-4.3-27.3-6.5-41.6-6.5L40 224zm345.7 20.9l-171.1 171.1 169.4 0 0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L430.3 290.8c-11.2-19-26.6-34.5-44.6-45.9zM192 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z\"],\n \"database\": [448, 512, [], \"f1c0\", \"M448 205.8c-14.8 9.8-31.8 17.7-49.5 24-47 16.8-108.7 26.2-174.5 26.2S96.4 246.5 49.5 229.8c-17.6-6.3-34.7-14.2-49.5-24L0 288c0 44.2 100.3 80 224 80s224-35.8 224-80l0-82.2zm0-77.8l0-48C448 35.8 347.7 0 224 0S0 35.8 0 80l0 48c0 44.2 100.3 80 224 80s224-35.8 224-80zM398.5 389.8C351.6 406.5 289.9 416 224 416S96.4 406.5 49.5 389.8c-17.6-6.3-34.7-14.2-49.5-24L0 432c0 44.2 100.3 80 224 80s224-35.8 224-80l0-66.2c-14.8 9.8-31.8 17.7-49.5 24z\"],\n \"newspaper\": [512, 512, [128240], \"f1ea\", \"M0 416L0 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 288c0 13.3 10.7 24 24 24s24-10.7 24-24L96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM160 128l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zm24 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0zm-24-72c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0c-13.3 0-24 10.7-24 24zM360 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0z\"],\n \"cloud-rain\": [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm1.6 68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm152 0c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm121.8 68.2l30.2-68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16z\"],\n \"maximize\": [448, 512, [\"expand-arrows-alt\"], \"f31e\", \"M168 32L24 32C10.7 32 0 42.7 0 56L0 200c0 9.7 5.8 18.5 14.8 22.2S34.1 223.8 41 217l40-40 79 79-79 79-40-40c-6.9-6.9-17.2-8.9-26.2-5.2S0 302.3 0 312L0 456c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2S270.3 480 280 480l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2S448 209.7 448 200l0-144c0-13.3-10.7-24-24-24L280 32c-9.7 0-18.5 5.8-22.2 14.8S256.2 66.1 263 73l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S177.7 32 168 32z\"],\n \"location-arrow\": [512, 512, [], \"f124\", \"M477.9 75.5c4.5-11.8 1.7-25.2-7.2-34.1s-22.3-11.8-34.1-7.2l-416 160C7.9 199-.3 211.2 0 224.7s9.1 25.4 21.9 29.6l176.8 58.9 58.9 176.8c4.3 12.8 16.1 21.6 29.6 21.9s25.7-7.9 30.6-20.5l160-416z\"],\n \"city\": [576, 512, [127961], \"f64f\", \"M320 0c-35.3 0-64 28.7-64 64l0 32-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72C96 10.7 85.3 0 72 0S48 10.7 48 24l0 74c-27.6 7.1-48 32.2-48 62L0 448c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-64 0 0-128c0-35.3-28.7-64-64-64L320 0zm64 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm-16 80c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm112-16c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM128 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0z\"],\n \"x-ray\": [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zm280 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 48-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0 0 48-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-48 80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0 0-48 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-16z\"],\n \"umbrella-beach\": [512, 512, [127958], \"f5ca\", \"M497.5 341.1c-5.9 16.7-25.3 23-41.1 15.1l-178.2-89.1-1.6 3.2-88.8 177.7 292.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l84.2 0 103.2-206.3 1.6-3.2-165.4-82.7c-15.8-7.9-22.4-27.3-12.5-42 45.9-68.6 124.1-113.8 212.9-113.8 141.4 0 256 114.6 256 256 0 29.8-5.1 58.5-14.5 85.1z\"],\n \"arrow-right-to-bracket\": [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"],\n \"headset\": [448, 512, [], \"f590\", \"M224 64c-79 0-144.7 57.3-157.7 132.7 9.3-3 19.3-4.7 29.7-4.7l16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0c-53 0-96-43-96-96l0-64C0 100.3 100.3 0 224 0S448 100.3 448 224l0 168.1c0 66.3-53.8 120-120.1 120l-87.9-.1-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 0 40 0c39.8 0 72-32.2 72-72l0-20.9c-14.1 8.2-30.5 12.8-48 12.8l-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l16 0c10.4 0 20.3 1.6 29.7 4.7-13-75.3-78.6-132.7-157.7-132.7z\"],\n \"splotch\": [512, 512, [], \"f5bc\", \"M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0 316.5 0 341.6 18.7 349.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2 0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6-14.8 0-29.3-5.1-40.9-14.3l-55.3-44.3c-4.5-3.6-9.3-6.7-14.5-9.2-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9c-34.6 6.3-66.4-20.3-66.4-55.4 0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1 0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9 0 110.5 30.1 85.1 63 90.7l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z\"],\n \"up-long\": [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M137.4-22.6c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S300.9 160 288 160l-64 0 0 336c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-336-64 0c-12.9 0-24.6-7.8-29.6-19.8S.2 114.5 9.4 105.4l128-128z\"],\n \"hexagon-nodes\": [448, 512, [], \"e699\", \"M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56s56-25.1 56-56c0-22.3-13.1-41.6-32-50.6l0-98.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-1.6 20.8 8.6 41.6 27.8 52.8c26.8 15.5 61 6.3 76.5-20.5s6.3-61-20.5-76.5c-1.3-.8-2.7-1.5-4-2.1l0-90.8c1.4-.6 2.7-1.3 4-2.1c26.8-15.5 36-49.7 20.5-76.5S390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c2.6 1.8 5.2 3.3 8 4.7l0 90.8c-2.8 1.3-5.5 2.9-8 4.6l-80.1-45.8c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8z\"],\n \"hospital\": [576, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M128 64c0-35.3 28.7-64 64-64L384 0c35.3 0 64 28.7 64 64l0 64 64 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l64 0 0-64zM272 352c-17.7 0-32 14.3-32 32l0 80 96 0 0-80c0-17.7-14.3-32-32-32l-32 0zM128 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM112 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM512 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM264 104l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"],\n \"person-harassing\": [576, 512, [], \"e549\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l28.1-56.3 54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3 36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"],\n \"money-bill-trend-up\": [512, 512, [], \"e529\", \"M480 8c0-13.3-10.7-24-24-24L354.2-16c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.9 0-111.3 111.3-95.1-81.5c-9-7.7-22.2-7.7-31.2 0l-112 96c-10.1 8.6-11.2 23.8-2.6 33.8s23.8 11.2 33.8 2.6l96.4-82.6 96.4 82.6c9.5 8.2 23.7 7.6 32.6-1.3l127-127 0 43.9c0 13.3 10.7 24 24 24s24-10.7 24-24L480 8zM48 256c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48L48 256zm47.3 56c-3.4 20.1-19.2 36-39.4 39.4-4.4 .7-8-2.9-8-7.3l0-32c0-4.4 3.6-8 8-8l32 0c4.4 0 8.1 3.6 7.3 8zm0 144.1c.7 4.4-2.9 8-7.3 8l-32 0c-4.4 0-8-3.6-8-8l0-32c0-4.4 3.6-8.1 8-7.3 20.1 3.4 36 19.2 39.4 39.4zM456 416.7c4.4-.7 8 2.9 8 7.3l0 32c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8.1-3.6-7.3-8 3.4-20.1 19.2-36 39.4-39.4zM416.7 312c-.7-4.4 2.9-8 7.3-8l32 0c4.4 0 8 3.6 8 8l0 32c0 4.4-3.6 8.1-8 7.3-20.1-3.4-36-19.2-39.4-39.4zM192 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\n \"pen-ruler\": [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM58.9 315.1L274.1 100 412 237.9 196.9 453.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7zM225.4 80.8L80.8 225.4 11.7 156.3c-15.6-15.6-15.6-40.9 0-56.6l88-88c15.6-15.6 40.9-15.6 56.6 0l5.9 5.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 34.9 34.9zM431.2 286.6l34.9 34.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 5.9 5.9c15.6 15.6 15.6 40.9 0 56.6l-88 88c-15.6 15.6-40.9 15.6-56.6 0l-69.1-69.1 144.6-144.6z\"],\n \"repeat\": [512, 512, [128257], \"f363\", \"M470.6 118.6c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S352 19.1 352 32l0 32-160 0C86 64 0 150 0 256 0 273.7 14.3 288 32 288s32-14.3 32-32c0-70.7 57.3-128 128-128l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64zM41.4 393.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S160 492.9 160 480l0-32 160 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"],\n \"bone\": [640, 512, [129460], \"f5d7\", \"M197.4 160c-3.9 0-7.2-2.8-8.1-6.6-10.2-42.1-48.1-73.4-93.3-73.4-53 0-96 43-96 96 0 29.1 12.9 55.1 33.3 72.7 4.3 3.7 4.3 10.8 0 14.5-20.4 17.6-33.3 43.7-33.3 72.7 0 53 43 96 96 96 45.2 0 83.1-31.3 93.3-73.4 .9-3.8 4.2-6.6 8.1-6.6l245.1 0c3.9 0 7.2 2.8 8.1 6.6 10.2 42.1 48.1 73.4 93.3 73.4 53 0 96-43 96-96 0-29.1-12.9-55.1-33.3-72.7-4.3-3.7-4.3-10.8 0-14.5 20.4-17.6 33.3-43.7 33.3-72.7 0-53-43-96-96-96-45.2 0-83.1 31.3-93.3 73.4-.9 3.8-4.2 6.6-8.1 6.6l-245.1 0z\"],\n \"fire-flame-curved\": [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0 198.4 0 208 9.6 208 21.3l0 22.1c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7 384 434 306 512 209.7 512L192 512C86 512 0 426 0 320l0-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6 12.5 0 22.6 10.1 22.6 22.6L96 288c0 35.3 28.7 64 64 64s64-28.7 64-64l0-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7 0-27.7 9-54.8 25.6-76.9z\"],\n \"bus-simple\": [448, 512, [\"bus-alt\"], \"f55e\", \"M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-96zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"venus-mars\": [640, 512, [9892], \"f228\", \"M480-64c-17.7 0-32 14.3-32 32S462.3 0 480 0L530.7 0 474 56.7c-26.3-15.7-57.1-24.7-90-24.7-35.4 0-68.4 10.5-96 28.5-27.6-18-60.6-28.5-96-28.5-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c23.3-4.3 44.9-13.1 64-25.6 27.6 18 60.6 28.5 96 28.5 97.2 0 176-78.8 176-176 0-41.1-14.1-79-37.8-109L576 45.3 576 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L480-64zM336 309.2c20.2-28.6 32-63.5 32-101.2s-11.8-72.6-32-101.2c14.6-6.9 30.8-10.8 48-10.8 61.9 0 112 50.1 112 112S445.9 320 384 320c-17.2 0-33.5-3.9-48-10.8zM288 150.3c10.2 16.9 16 36.6 16 57.7s-5.8 40.9-16 57.7c-10.2-16.9-16-36.6-16-57.7s5.8-40.9 16-57.7zm-48-43.5c-20.2 28.6-32 63.5-32 101.2s11.8 72.6 32 101.2c-14.5 6.9-30.8 10.8-48 10.8-61.9 0-112-50.1-112-112S130.1 96 192 96c17.2 0 33.5 3.9 48 10.8z\"],\n \"blender\": [512, 512, [], \"f517\", \"M0 56C0 25.1 25.1 0 56 0L437.6 0c21.3 0 36.6 20.3 30.8 40.8L457.1 80 344 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0-9.1-96-62.9 0c-30.9 0-56-25.1-56-56L0 56zM114.3 192L100.6 48 56 48c-4.4 0-8 3.6-8 8l0 128c0 4.4 3.6 8 8 8l58.3 0zM136 384l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"u\": [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z\"],\n \"share\": [512, 512, [\"mail-forward\"], \"f064\", \"M307.8 18.4c-12 5-19.8 16.6-19.8 29.6l0 80-112 0c-97.2 0-176 78.8-176 176 0 113.3 81.5 163.9 100.2 174.1 2.5 1.4 5.3 1.9 8.1 1.9 10.9 0 19.7-8.9 19.7-19.7 0-7.5-4.3-14.4-9.8-19.5-9.4-8.8-22.2-26.4-22.2-56.7 0-53 43-96 96-96l96 0 0 80c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-9.2-9.2-22.9-11.9-34.9-6.9z\"],\n \"phone-flip\": [512, 512, [128381, \"phone-alt\"], \"f879\", \"M351.8 25c7.8-18.8 28.4-28.9 48.1-23.5l5.5 1.5c64.6 17.6 119.8 80.2 103.7 156.4-37.1 175-174.8 312.7-349.8 349.8-76.3 16.2-138.8-39.1-156.4-103.7l-1.5-5.5c-5.4-19.7 4.7-40.3 23.5-48.1l97.3-40.5c16.5-6.9 35.6-2.1 47 11.8l38.6 47.2c70.3-34.9 126.8-93.3 159.3-164.9l-44.1-36.1c-13.9-11.3-18.6-30.4-11.8-47L351.8 25z\"],\n \"toilet-portable\": [320, 512, [], \"e583\", \"M0 64l0 16 320 0 0-16c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64zm24 64L0 128 0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-360-296 0zm224 96l24 0 0 96-24 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z\"],\n \"person-pregnant\": [384, 512, [], \"e31e\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm80 321.2c8.6-4.5 16.8-10 24.3-16.5l4-3.4c22.6-19.4 35.7-47.7 35.7-77.6 0-35.9-18.8-69.1-49.6-87.6l-30.4-18.2 0-1.8c0-46.5-37.7-84.1-84.1-84.1-28.1 0-54.4 14.1-70 37.5L21.4 270.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9l29-43.5-30.5 113.5c-2.6 9.6-.6 19.9 5.5 27.8S94 416 104 416l8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-110.8z\"],\n \"less-than\": [512, 512, [62774], \"3c\", \"M477.1 50.6c7.4 16 .4 35.1-15.6 42.5L108.4 256 461.4 419c16 7.4 23 26.4 15.6 42.5s-26.4 23-42.5 15.6l-416-192C7.3 279.8 0 268.5 0 256S7.3 232.2 18.6 227l416-192c16-7.4 35.1-.4 42.5 15.6z\"],\n \"superscript\": [576, 512, [], \"f12b\", \"M544 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16C449.9 27.3 443.5 46.5 451.4 62.3 457 73.5 468.3 80 480 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64z\"],\n \"circle-stop\": [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"],\n \"arrows-up-down\": [256, 512, [\"arrows-v\"], \"f07d\", \"M150.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 77.3 96 434.7 54.6 393.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-41.4 41.4 0-357.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"],\n \"poo-storm\": [512, 512, [\"poo-bolt\"], \"f75a\", \"M268.9-31.8c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1 0 21.7-8.5 37.2-21.9 47.6-13.9 10.8-34.1 17-58.1 17l-24 0c-48.6 0-88 39.4-88 88 0 14.8 3.7 28.8 10.2 41.1-42 6.6-74.2 43-74.2 86.9 0 46.6 36.2 84.7 81.9 87.8 3.1-12.4 9.9-23.8 19.6-32.5L242.7 225c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7l-12.7 42.4c28.8 1.2 52.7 21.1 59.8 47.9l26.2 0c48.6 0 88-39.4 88-88 0-43.9-32.1-80.3-74.2-86.9 6.5-12.3 10.2-26.2 10.2-41.1 0-48.6-39.4-88-88-88l-9.4 0c.9-5.4 1.4-10.9 1.4-16.6 0-48.7-36.1-88.9-83.1-95.2zM144.6 416l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L346.5 412.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L133.5 387.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z\"],\n \"video-slash\": [576, 512, [], \"f4e2\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-153-153 0-222.2c0-35.3-28.7-64-64-64L129.8 64 41-24.9zM32 128l0 256c0 35.3 28.7 64 64 64l256 0c7.8 0 15.3-1.4 22.2-4L36 105.8c-2.6 6.9-4 14.4-4 22.2zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"],\n \"square-xmark\": [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm71 135c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"hand-holding-droplet\": [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6L209.2 103C198 119.3 192 138.6 192 158.3l0 1.7c0 53 43 96 96 96s96-43 96-96l0-1.7c0-19.8-6-39-17.2-55.3L300.5 6.6C297.7 2.5 293 0 288 0s-9.7 2.5-12.5 6.6zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"],\n \"won-sign\": [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.7 28.1 21.9 33.6S-3.9 57.4 1.7 74.1L56.9 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288 279 288 321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288 480 288c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.9 0 55.3-165.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-62 186.1-54.6 0-45.9-183.8C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L179 240 124.4 240 62.4 53.9zm78 234.1l26.6 0-11.4 45.6-15.2-45.6zM245 240l11-44.1 11 44.1-22 0zm100 48l26.6 0-15.2 45.6-11.4-45.6z\"],\n \"object-ungroup\": [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zM544 279.4c-9.7-5.6-17.8-13.7-23.4-23.4l-29.2 0c-5.3-17.7-14.8-33.5-27.4-46.4l0-17.6 56.6 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-24.6 64 0 0 24.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1z\"],\n \"comment\": [512, 512, [128489, 61669], \"f075\", \"M512 240c0 132.5-114.6 240-256 240-37.1 0-72.3-7.4-104.1-20.7L33.5 510.1c-9.4 4-20.2 1.7-27.1-5.8S-2 485.8 2.8 476.8l48.8-92.2C19.2 344.3 0 294.3 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240z\"],\n \"hill-avalanche\": [576, 512, [], \"e507\", \"M440.1 401.9c34.2 23.1 81.1 19.5 111.4-10.8 34.4-34.4 34.4-90.1 0-124.5-27.8-27.8-69.5-33.1-102.6-16-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3 15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7c22.3-14.2 37.1-39.1 37.1-67.5 0-33.9-21.1-62.9-50.9-74.5 1.9-6.8 2.9-14 2.9-21.5 0-44.2-35.8-80-80-80-27.3 0-51.5 13.7-65.9 34.6-5.8-20-24.2-34.6-46.1-34.6-26.5 0-48 21.5-48 48 0 4 .5 7.9 1.4 11.6L440.1 401.9zM480.4 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.7 87C43.5 61.8 .4 79.7 .4 115.3L.4 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.7 87z\"],\n \"arrows-to-eye\": [640, 512, [], \"e4bf\", \"M176 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 38.1-63-63c-9.4-9.4-24.6-9.4-33.9 0S21.7 55.6 31 65l63 63-38.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24l0-96zm0 400l0-96c0-13.3-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l38.1 0-63 63c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l63-63 0 38.1c0 13.3 10.7 24 24 24s24-10.7 24-24zm312 24c13.3 0 24-10.7 24-24l0-38.1 63 63c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 38.1 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24l0 96c0 13.3 10.7 24 24 24zM464 56l0 96c0 13.3 10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-38.1 0 63-63c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-63 63 0-38.1c0-13.3-10.7-24-24-24s-24 10.7-24 24zM320 120c-57.3 0-99.4 34-125.6 64.3-20 23.1-32.4 45.8-37.6 56.1-2.5 5-4.9 9.7-4.9 15.6s2.3 10.6 4.9 15.6c5.2 10.3 17.6 33 37.6 56.1 26.2 30.3 68.2 64.3 125.6 64.3s99.4-34 125.6-64.3c20-23.1 32.4-45.8 37.6-56.1 2.5-5 4.9-9.7 4.9-15.6s-2.3-10.6-4.9-15.6c-5.2-10.3-17.6-33-37.6-56.1-26.2-30.3-68.2-64.3-125.6-64.3zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\n \"snowplow\": [640, 512, [], \"f7d2\", \"M128 160l0-96c0-35.3 28.7-64 64-64L296.4 0c24.2 0 46.4 13.7 57.2 35.4l87.6 175.1c4.4 8.9 6.8 18.7 6.8 28.6l0 56.9 80 0 0-80c0-48.6 39.4-88 88-88 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.1 0-40 17.9-40 40l0 208c0 22.1 17.9 40 40 40 13.3 0 24 10.7 24 24s-10.7 24-24 24c-48.6 0-88-39.4-88-88l0-80-63 0c9.5 16.5 15 35.6 15 56 0 61.9-50.1 112-112 112l-224 0c-61.9 0-112-50.1-112-112 0-30.5 12.2-58.2 32-78.4L64 224c0-35.3 28.7-64 64-64zm91.7 34.9l43.6 29.1 113.2 0-80-160-104.4 0 0 108.8 27.7 22.1zM416 400c0-26.5-21.5-48-48-48l-224 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l224 0c26.5 0 48-21.5 48-48zm-280 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm216-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM232 400a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"chart-gantt\": [512, 512, [], \"e0e4\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm64 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0zM384 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0z\"],\n \"video\": [576, 512, [\"video-camera\"], \"f03d\", \"M96 64c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L96 64zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"],\n \"chess-pawn\": [384, 512, [9823], \"f443\", \"M192-32c66.3 0 120 53.7 120 120 0 27-8.9 51.9-24 72 17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 26.7 160 56.2 70.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L51.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L80 384 106.7 224 96 224c-17.7 0-32-14.3-32-32s14.3-32 32-32c-15.1-20.1-24-45-24-72 0-66.3 53.7-120 120-120z\"],\n \"synagogue\": [576, 512, [128333], \"f69b\", \"M16 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32-128 0 0-32zm0 368l0-288 128 0 126.2-84.2c10.7-7.2 24.8-7.2 35.5 0l126.2 84.2 128 0 0 288c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64zM560 112l-128 0 0-32c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32zM224 384l0 80 128 0 0-80c0-35.3-28.7-64-64-64s-64 28.7-64 64zm64-152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"building-circle-check\": [576, 512, [], \"e4d2\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"calendar-plus\": [448, 512, [], \"f271\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm96 192c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"],\n \"wheelchair-move\": [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M312 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM205.4 124.1c-6.4-5.2-15.6-4.7-21.4 1.1l-33.4 33.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L138.8 80c29-29 75.2-31.4 107-5.5l81.3 66c21.4 17.4 23.8 49.2 5.2 69.5l-41.8 46 98 0c30.3 0 53 27.7 47.1 57.4L407.4 454.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L369 320 316.8 320c2.1 10.3 3.2 21 3.2 32 0 88.4-71.6 160-160 160S0 440.4 0 352 71.6 192 160 192c6 0 11.9 .3 17.8 1l50.4-50.4-22.7-18.5zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"],\n \"user-shield\": [576, 512, [], \"f505\", \"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l251.5 0C261 469.4 240 414.5 240 356.4l0-31.1c0-7.3 1-14.5 2.9-21.3l-48.6 0zm251 184.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"],\n \"bold\": [384, 512, [], \"f032\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l32 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM288 160c0 35.3-28.7 64-64 64l-96 0 0-128 96 0c35.3 0 64 28.7 64 64zM128 416l0-128 128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0z\"],\n \"heart-pulse\": [512, 512, [\"heartbeat\"], \"f21e\", \"M256 107.9L241 87.1C216 52.5 175.9 32 133.1 32 59.6 32 0 91.6 0 165.1l0 2.6c0 23.6 6.2 48 16.6 72.3l106 0c3.2 0 6.1-1.9 7.4-4.9l31.8-76.3c3.7-8.8 12.3-14.6 21.8-14.8s18.3 5.4 22.2 14.1l51.3 113.9 41.4-82.8c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3l23.2 46.3c1.4 2.7 4.1 4.4 7.2 4.4l123.6 0c10.5-24.3 16.6-48.7 16.6-72.3l0-2.6C512 91.6 452.4 32 378.9 32 336.2 32 296 52.5 271 87.1l-15 20.7zM469.6 288l-97.8 0c-21.2 0-40.6-12-50.1-31l-1.7-3.4-42.5 85.1c-4.1 8.3-12.7 13.5-22 13.3s-17.6-5.7-21.4-14.1l-49.3-109.5-10.5 25.2c-8.7 20.9-29.1 34.5-51.7 34.5l-80.2 0c47.2 73.8 123 141.7 170.4 177.9 12.4 9.4 27.6 14.1 43.1 14.1s30.8-4.6 43.1-14.1C346.6 429.7 422.4 361.8 469.6 288z\"],\n \"square-root-variable\": [576, 512, [\"square-root-alt\"], \"f698\", \"M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8 84.4-289.5zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0l41.4 41.4 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-41.4 41.4 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l41.4-41.4-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"],\n \"hands-bubbles\": [512, 512, [\"hands-wash\"], \"e05e\", \"M384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM128 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM0 160l.1 72.6c0 44.8 17.6 87.1 47.9 118.4 .3-77 40.1-148.4 105.4-189.3l1.9-1.2c-2.5-3.7-2.8-8.6-.4-12.7l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S182 5 175.4 16.5l-68 117.8 0 0 0 0-43.3 75 0-49.3c0-17.7-14.4-32-32-32S0 142.4 0 160zm213.6-35.9c14.1-8.8 29.8-12.7 45.2-12.1l36.5-63.3c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-67.1 116.2 27-16.9zm86.5-35.7l-16.4 28.4c15.1 5.5 28.6 15.6 38.3 29.7l19.7-34.2c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-12.5 21.7c2 8.6 2.5 17.5 1.7 26.1l4.3 0 0 0 34.4 0 13.7-23.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM283.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C127.3 234.7 96 291.2 96 352l0 8c0 8.9 .8 17.6 2.2 26.1 35.4 8.2 61.8 40 61.8 77.9 0 6.3-.7 12.5-2.1 18.4 25.2 18.6 56.4 29.6 90.1 29.6l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0 0 0 0 0-93.2 0 46.2-28.9c15-9.4 19.5-29.1 10.2-44.1z\"],\n \"marker\": [512, 512, [], \"f5a1\", \"M408.8 0c-27.4 0-53.6 10.9-73 30.2L318.1 48 305 34.9c-28.1-28.1-73.7-28.1-101.8 0L103 135c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L237.1 68.9c9.4-9.4 24.6-9.4 33.9 0L284.1 81.9 184 182.1 329.9 328 481.8 176.2c19.4-19.4 30.2-45.6 30.2-73 0-57-46.2-103.2-103.2-103.2zM102.4 263.7c-49.9 49.9-83.3 114-95.5 183.5L.4 483.8C-1 491.6 1.5 499.4 7 505s13.4 8 21.1 6.7l36.7-6.5c69.5-12.3 133.6-45.6 183.5-95.5L296 361.9 150.1 216 102.4 263.7z\"],\n \"clipboard\": [384, 512, [128203], \"f328\", \"M320 32l-8.6 0C300.4 12.9 279.7 0 256 0L128 0C104.3 0 83.6 12.9 72.6 32L64 32C28.7 32 0 60.7 0 96L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64zM136 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0z\"],\n \"place-of-worship\": [512, 512, [], \"f67f\", \"M160 79l0 81-44.8 33.6C103.1 202.7 96 216.9 96 232l0 40-60.6 30.3C13.7 313.2 0 335.3 0 359.6L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-88.4c0-24.2-13.7-46.4-35.4-57.2L416 272 416 232c0-15.1-7.1-29.3-19.2-38.4L352 160 352 79c0-9.5-4.2-18.5-11.5-24.6L271.4-3.2c-8.9-7.4-21.8-7.4-30.7 0L171.5 54.4C164.2 60.5 160 69.5 160 79zm96 241c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z\"],\n \"cannabis\": [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1 15.8 23.5 36.7 63.7 49.2 109 7.3 26.4 11.8 55.3 10.3 84 11.6-8.9 23.7-16.7 35.9-23.7 41-23.3 84.4-36.9 112.2-42.5 5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7-9.1 15.9-19.9 31.7-32.5 46.3 27.9 6.6 52.5 17.2 67.3 25.4 5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.2c1.5 6.1-.6 12.5-5.5 16.4s-11.6 4.6-17.2 1.8L280 417.2 280 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.8s-7-10.3-5.5-16.4l8.3-33.2c-22.2 2.6-45 0-65.2-4.6-28.9-6.6-54.5-17.6-69.8-26.1-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14l6.2-3.3c15-7.6 36.8-16.4 61.1-22.2-12.5-14.5-23.3-30.4-32.4-46.2-23.4-40.8-37.1-84-42.7-111.7-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5 12.2 6.9 24.3 14.8 35.8 23.7-1.4-28.7 3.1-57.6 10.3-84 12.5-45.3 33.4-85.5 49.2-109l1.2-1.6C246.9 2 251.3 0 256 0z\"],\n \"people-roof\": [576, 512, [], \"e537\", \"M302.3-12.6c-9-4.5-19.6-4.5-28.6 0l-256 128C1.9 123.3-4.5 142.5 3.4 158.3s27.1 22.2 42.9 14.3L288 51.8 529.7 172.6c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-256-128zM288 272a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 48c-53 0-96 43-96 96l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-53-43-96-96-96zM160 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm352 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM112 336c-44.2 0-80 35.8-80 80l0 33.1c0 17 13.8 30.9 30.9 30.9l87.8 0c-4.3-9.8-6.7-20.6-6.7-32l0-48c0-18.4 3.5-36 9.8-52.2-12.2-7.5-26.5-11.8-41.8-11.8zM425.4 480l87.8 0c17 0 30.9-13.8 30.9-30.9l0-33.1c0-44.2-35.8-80-80-80-15.3 0-29.6 4.3-41.8 11.8 6.3 16.2 9.8 33.8 9.8 52.2l0 48c0 11.4-2.4 22.2-6.7 32z\"],\n \"disease\": [512, 512, [], \"f7fa\", \"M236.5 29.4L224 48c-20 30-53.6 48-89.7 48L68 96c-37.5 0-67.9 30.4-67.9 67.9 0 18 7.2 35.2 19.9 47.9l27 27c11 11 17.2 25.9 17.2 41.5 0 15.8-6.4 30.9-17.7 42L33.4 335.1c-11.1 10.8-17.3 25.7-17.3 41.2 0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6 32.8 0 64.2 14.6 85.2 39.8l30.5 36.6c10.4 12.4 25.7 19.6 41.9 19.6 30.1 0 54.5-24.4 54.5-54.5l0-51.2c0-41.4 25.4-78.5 64-93.5l22.2-8.6c25.2-9.8 41.8-34.1 41.8-61.1 0-26.4-15.9-50.3-40.3-60.5L429 164.8c-33.2-13.9-57.6-43-65.5-78.1l-7.9-35.2c-6.8-30.1-33.5-51.5-64.3-51.5-22 0-42.6 11-54.8 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"book-bible\": [448, 512, [\"bible\"], \"f647\", \"M96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 512zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zM192 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-112 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"],\n \"chess-board\": [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z\"],\n \"mars\": [512, 512, [9794], \"f222\", \"M320 32c0-17.7 14.3-32 32-32L480 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S32 401.2 32 304 110.8 128 208 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM208 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"],\n \"laptop\": [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96l0 240 64 0 0-240 384 0 0 240 64 0 0-240c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2 0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8 0-10.6-8.6-19.2-19.2-19.2L19.2 384z\"],\n \"user-xmark\": [640, 512, [\"user-times\"], \"f235\", \"M136.4 128a120 120 0 1 1 240 0 120 120 0 1 1 -240 0zm-88 354.3c0-98.5 79.8-178.3 178.3-178.3l59.4 0c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L78.1 512c-16.4 0-29.7-13.3-29.7-29.7zM612.3 124.1c9.4 9.4 9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0z\"],\n \"flag-usa\": [448, 512, [], \"f74d\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 61.9-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 400 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zm80 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\n \"hand-middle-finger\": [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2-26.5 0-48 21.5-48 48l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-96c0-26.5-21.5-48-48-48-12.4 0-23.6 4.7-32.1 12.3-1.9-24.8-22.6-44.3-47.9-44.3-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z\"],\n \"mortar-pestle\": [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160 397.3 160 502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2-11.1 13.9-19.4 30.3-23.9 48.1-4.4 17.1 10.4 31.7 28.1 31.7l192 0c17.7 0 32.4-14.6 28.1-31.7-4.5-17.8-12.8-34.1-23.9-48.1 80.5-28.6 123.9-93.7 123.9-176.2 17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z\"],\n \"head-side-cough\": [512, 512, [], \"e061\", \"M96 512l64 0c53 0 96-43 96-96l0-80c0-8.8 7.2-16 16-16l1 0c26 0 47-21 47-47 0-11-3.9-21.6-10.9-30.1L273.3 200C271.4 197.6 270.1 194.7 269.7 191.7 254 83.3 160.7 0 48 0 40.4 0 32.9 .4 25.4 1.1 10.5 2.6 0 15.9 0 30.9L0 480c0 17.7 14.3 32 32 32l64 0zm16-320a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm63.1 237.2l-41.5-3.5c-12.2-1-21.6-11.2-21.6-23.4 0-10.8 7.3-20.2 17.8-22.8l40.4-10.1c19.2-4.8 37.8 9.7 37.8 29.5 0 17.8-15.2 31.8-32.9 30.3zM480 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40 24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-64 48a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm128 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM480 504a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40-72a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"plane-lock\": [640, 512, [], \"e558\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 82.1 75.2C409.7 248.1 400 274.9 400 304l0 24.4c-7.3 6.6-13.6 14.2-18.7 22.7l-37.3-12.4 0 99.7 24 19.2 0 38.3c0 13.5 2.8 26.4 7.8 38.1L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM560 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"battery-three-quarters\": [640, 512, [\"battery-4\"], \"f241\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l224 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-224 0z\"],\n \"franc-sign\": [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64l0 256-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"],\n \"filter-circle-dollar\": [576, 512, [\"funnel-dollar\"], \"f662\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM416 320c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-45.8 0c-5.6 0-10.2 4.6-10.2 10.2 0 4.9 3.5 9.1 8.3 10l45 8.2c20 3.6 34.6 21.1 34.6 41.5 0 23.3-18.9 42.2-42.2 42.2l-5.8 0 0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l53.8 0c5.6 0 10.2-4.6 10.2-10.2 0-4.9-3.5-9.1-8.3-10l-45-8.2c-20-3.6-34.6-21.1-34.6-41.5 0-22.6 17.7-41 40-42.1l0-8.1z\"],\n \"cheese\": [512, 512, [], \"f7ef\", \"M512 240.2l0 15.8-512 0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7 115 0 208.2 93.2 208.2 208.2zm0 63.8l0 112c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-112 512 0z\"],\n \"circle-h\": [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm96-344l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"school\": [576, 512, [127979], \"f549\", \"M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zM224 376l0 88 128 0 0-88c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zm-112 8c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM288 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"],\n \"dice-five\": [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"tornado\": [448, 512, [127786], \"f76f\", \"M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16 0-12.5-10.1-22.6-22.6-22.6L32 0C14.3 0 0 14.3 0 32zM355.7 144l-336 0c12.4 29.7 30.2 56.8 52.7 80l339.6 0-47.2-62.9c-3.9-5.2-7-11-9.2-17.1zM242.6 334.7c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1 0-17.1-2.9-34-8.6-49.9L136 272 242.6 334.7zM294.3 400c5.3 17 6.5 35.2 3.6 53l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4 5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c8.5-8.5 15.8-17.8 21.9-27.9l-131.8 0z\"],\n \"jet-fighter\": [576, 512, [\"fighter-jet\"], \"f0fb\", \"M496.2 206.8c-10.7-4.5-22.2-6.8-33.8-6.8L362 200 248 48 296 48c13.3 0 24-10.7 24-24S309.3 0 296 0L152 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0 152-54.4 0-52.8-66c-3-3.8-7.6-6-12.5-6L16 128c-8.8 0-16 7.2-16 16l0 88 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 88c0 8.8 7.2 16 16 16l24.3 0c4.9 0 9.5-2.2 12.5-6l52.8-66 54.4 0 0 152-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 114-152 100.4 0c11.6 0 23.1-2.3 33.8-6.8l65-27.1c8.9-3.7 14.8-12.5 14.8-22.2s-5.8-18.4-14.8-22.2l-65-27.1z\"],\n \"thumbs-down\": [512, 512, [128078, 61576], \"f165\", \"M384 32c26.5 0 48 21.5 48 48 0 6.3-1.3 12.2-3.4 17.7 20.4 5.5 35.4 24.1 35.4 46.3 0 9.1-2.6 17.6-7 24.9 22.2 4.2 39 23.7 39 47.1 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 26.5-21.5 48-48 48l-160 0 28.2 70.4c2.5 6.3 3.8 13.1 3.8 19.9l0 4.2c0 27.3-22.1 49.4-49.4 49.4-18.7 0-35.8-10.6-44.2-27.3L170.1 356.3c-6.7-13.3-10.1-28-10.1-42.9l0-186.6c0-19.4 8.9-37.8 24-50l12.2-9.7C224.6 44.4 259.8 32 296.1 32L384 32zM80 96c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l48 0z\"],\n \"broom\": [576, 512, [129529], \"f51a\", \"M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6-12.5 0-22.6 10.1-22.6 22.6l0 29.1 108.3 108.3 29.1 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8c-22.3 22.3-34.8 52.5-34.8 84 0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9 0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8 30.6-30.6 45.9-73.1 42.3-115.8z\"],\n \"file-import\": [384, 512, [\"arrow-right-to-file\"], \"f56f\", \"M64 0C28.7 0 0 28.7 0 64l0 240 182.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-182.1 0 0 96c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z\"],\n \"utensils\": [512, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M63.9 14.4C63.1 6.2 56.2 0 48 0s-15.1 6.2-16 14.3L17.9 149.7c-1.3 6-1.9 12.1-1.9 18.2 0 45.9 35.1 83.6 80 87.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7 0-6.1-.6-12.2-1.9-18.2L223.9 14.3C223.1 6.2 216.2 0 208 0s-15.1 6.2-15.9 14.4L178.5 149.9c-.6 5.7-5.4 10.1-11.1 10.1-5.8 0-10.6-4.4-11.2-10.2L143.9 14.6C143.2 6.3 136.3 0 128 0s-15.2 6.3-15.9 14.6L99.8 149.8c-.5 5.8-5.4 10.2-11.2 10.2-5.8 0-10.6-4.4-11.1-10.1L63.9 14.4zM448 0C432 0 320 32 320 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448c0-17.7-14.3-32-32-32z\"],\n \"id-badge\": [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 352l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM152 64l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"spider\": [512, 512, [128375], \"f717\", \"M369.3-31c11.9-3.5 24.4 2.7 29 13.9l.8 2.3 40 136c2.5 8.4 .1 17.5-6.1 23.7l-64.1 64.1 76.4-20.8 19.9-59.8 .9-2.3c5-11.1 17.7-16.8 29.5-12.9 11.8 3.9 18.5 16.1 15.8 28l-.7 2.4-24 72c-2.5 7.6-8.7 13.4-16.5 15.6l-91.1 24.8 91.1 24.8c7.7 2.1 13.9 8 16.5 15.6l24 72 .7 2.4c2.7 11.9-4.1 24.1-15.8 28-11.8 3.9-24.5-1.8-29.5-12.9l-.9-2.3-19.9-59.8-76.4-20.8 64.1 64.1c6.1 6.1 8.5 15.1 6.2 23.4l-40 144-.8 2.3c-4.4 11.3-16.8 17.7-28.8 14.4-12-3.3-19.3-15.2-17.2-27.2l.5-2.4 36.2-130.5-37.2-37.2C351 406 308.4 448 256 448s-95-42-96-94.1l-37 37 36 122.3 .6 2.4c2.2 11.9-4.9 23.9-16.8 27.4-11.9 3.5-24.4-2.7-29-13.9l-.8-2.3-40-136c-2.5-8.4-.1-17.5 6.1-23.8l64.1-64.1-76.4 20.8-19.9 59.8-.9 2.3c-5 11.1-17.7 16.8-29.5 12.9s-18.5-16.1-15.8-28l.7-2.4 24-72c2.5-7.6 8.7-13.4 16.5-15.6l91.1-24.8-91.1-24.8c-7.7-2.1-13.9-8-16.5-15.6l-24-72-.7-2.4c-2.7-11.9 4.1-24.1 15.8-28s24.5 1.8 29.5 12.9l.9 2.3 19.9 59.8 76.4 20.8-64.1-64.1c-6.2-6.2-8.5-15.3-6.1-23.7l40-136 .8-2.3c4.6-11.3 17.1-17.4 29-13.9 11.9 3.5 19 15.5 16.8 27.4l-.6 2.4-36 122.3 53 53c1-43.3 36.4-78.1 79.9-78.1s78.9 34.8 79.9 78.2l53.1-53.1-36-122.3-.6-2.4c-2.2-12 4.9-23.9 16.8-27.4z\"],\n \"mobile-retro\": [384, 512, [], \"e527\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm80 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32zm8 192a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zM168 40c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"],\n \"signs-post\": [512, 512, [\"map-signs\"], \"f277\", \"M256.4 0c-17.7 0-32 14.3-32 32l0 32-160 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 0 64-153.4 0c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7l153.4 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0 0-64 153.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7l-153.4 0 0-32c0-17.7-14.3-32-32-32z\"],\n \"group-arrows-rotate\": [512, 512, [], \"e4f6\", \"M37.6 122.3c-11.5 18.7-20.6 39-27 60.5-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c18.4-61.9 67.3-110.8 129.2-129.2 16.9-5 26.6-22.9 21.5-39.8S199.8 5.6 182.9 10.6C161.4 17 141.1 26.1 122.3 37.6 112.3 15.4 89.9 0 64 0 28.7 0 0 28.7 0 64 0 89.9 15.4 112.3 37.6 122.3zm436.7 0c22.2-10 37.6-32.4 37.6-58.3 0-35.3-28.7-64-64-64-25.9 0-48.3 15.4-58.3 37.6-18.7-11.5-39-20.6-60.5-27-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c61.9 18.4 110.8 67.3 129.2 129.2 5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.5zM512 448c0-25.9-15.4-48.3-37.6-58.3 11.5-18.7 20.6-39 27-60.5 5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-18.4 61.9-67.3 110.8-129.2 129.2-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.5-27 10 22.2 32.4 37.6 58.3 37.6 35.3 0 64-28.7 64-64zM37.6 389.7c-22.2 10-37.6 32.4-37.6 58.3 0 35.3 28.7 64 64 64 25.9 0 48.3-15.4 58.3-37.6 18.7 11.5 39 20.6 60.5 27 16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-61.9-18.4-110.8-67.3-129.2-129.2-5-16.9-22.9-26.6-39.8-21.5S5.6 312.2 10.6 329.1c6.4 21.5 15.5 41.8 27 60.5zM256 192c15.6 0 30 5.6 41.1 14.9l-15.3 15.3c-6.6 6.6-1.9 17.8 7.4 17.8l60.5 0c5.7 0 10.4-4.7 10.4-10.4l0-60.5c0-9.3-11.2-13.9-17.8-7.4l-11.2 11.2c-19.8-17.9-46.2-28.9-75.1-28.9-43.6 0-81.3 24.9-99.8 61.1-6 11.8-1.4 26.3 10.4 32.3s26.3 1.4 32.3-10.4c10.6-20.8 32.2-34.9 57-34.9zm58.6 93.1c-10.6 20.8-32.2 34.9-57 34.9-15.7 0-30-5.6-41.1-14.9l15.3-15.3c6.6-6.6 1.9-17.8-7.4-17.8L164 272c-5.7 0-10.4 4.7-10.4 10.4l0 60.5c0 9.3 11.2 13.9 17.8 7.4l11.2-11.2c19.8 17.9 46.2 28.9 75.1 28.9 43.6 0 81.3-24.9 99.8-61.1 6-11.8 1.4-26.3-10.4-32.3s-26.3-1.4-32.3 10.4z\"],\n \"arrows-split-up-and-left\": [512, 512, [], \"e4bc\", \"M342.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l41.4-41.4 0 195.9c-18.8-10.9-40.7-17.1-64-17.1l-114.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 320 224 320c35.3 0 64 28.7 64 64 0 70.7 57.3 128 128 128l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-35.3 0-64-28.7-64-64l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"],\n \"fill-drip\": [576, 512, [], \"f576\", \"M309.7 71.6l-64.4 64.4 33.4 33.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-33.4-33.4-96.4 96.4c-2.9 2.9-5.1 6.5-6.3 10.3l321.5 0 53.7-53.7c4.9-4.9 7.6-11.5 7.6-18.3s-2.7-13.5-7.6-18.3L346.3 71.6C341.5 66.7 334.9 64 328 64s-13.5 2.7-18.3 7.6zM58.3 232.4l96.4-96.4-49.4-49.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L200 90.7 264.4 26.3C281.3 9.5 304.1 0 328 0s46.7 9.5 63.6 26.3L517.7 152.4C534.5 169.3 544 192.1 544 216s-9.5 46.7-26.3 63.6L311.6 485.7C294.7 502.5 271.9 512 248 512s-46.7-9.5-63.6-26.3L58.3 359.6C41.5 342.7 32 319.9 32 296s9.5-46.7 26.3-63.6zM512 544c-35.3 0-64-28.7-64-64 0-25.2 32.6-79.6 51.2-108.7 6-9.4 19.5-9.4 25.5 0 18.7 29.1 51.2 83.5 51.2 108.7 0 35.3-28.7 64-64 64z\"],\n \"shield-heart\": [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM249.6 183.5l6.4 8.5 6.4-8.5c11.1-14.8 28.5-23.5 46.9-23.5 32.4 0 58.7 26.3 58.7 58.7l0 5.3c0 49.1-65.8 98.1-96.5 118.3-9.5 6.2-21.5 6.2-30.9 0-30.7-20.2-96.5-69.3-96.5-118.3l0-5.3c0-32.4 26.3-58.7 58.7-58.7 18.5 0 35.9 8.7 46.9 23.5z\"],\n \"person-skiing-nordic\": [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M424.8 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm99.8 193.7c7.6 15.2 1.9 33.6-12.6 42l0 180.3-32 0 0-164.2-10.1 5c-27.4 13.7-60.7 6.1-79.4-18.2l-19.6-25.5-39.5 68.8 24.8 12.4c29.5 14.7 42.9 49.5 31.1 80.2l-28.2 73.4 149.4 0c7.9 0 15.6-2.3 22.2-6.7l7.9-5.3c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-7.9 5.3C543 506.9 526 512 508.6 512l-189.1 0c-.5 0-1 0-1.5 0L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l88 0c0-8.2 3.1-16.4 9.4-22.6l74.1-74.1 10.2-35.9c11.3 18.3 27.7 33.8 48.4 44.2l4.8 2.4-1.9 6.8c-3 10.5-8.6 20-16.3 27.7l-51.5 51.5 101.3 0 37.1-96.4-55.6-27.8C230.4 319 215.3 267 239.3 227.1l37.7-62.7-27.7-7.7c-9-2.5-18.1 3.2-20 12.3l-5.9 29.3c-3.1 15.6-17.1 26.3-32.5 25.7l-130 208-37.7 0 140.6-225c-3.4-6.3-4.6-13.8-3.1-21.3l5.9-29.3c9.1-45.6 55.1-73.8 99.9-61.4l32.5 9c46.7 13 88 40.8 117.6 79.3l24.9 32.3 40.4-20.2c15.8-7.9 35-1.5 42.9 14.3z\"],\n \"square-check\": [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM342 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 315.2 137 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z\"],\n \"bath\": [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3 3.5 0 6.9 1.4 9.4 3.9l14.9 14.9c-3.6 9.1-5.5 18.9-5.5 29.2 0 19.9 7.2 38 19.2 52-5.3 9.2-4 21.1 3.8 29 9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9-7.8-7.9-19.8-9.1-29-3.8-14-12-32.1-19.2-52-19.2-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0 66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 48c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-48c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3z\"],\n \"chess-bishop\": [320, 512, [9821], \"f43a\", \"M64 384L48.3 368.3C17.4 337.4 0 295.4 0 251.7 0 213.1 13.5 175.8 38.2 146.1L106.7 64 96 64C78.3 64 64 49.7 64 32S78.3 0 96 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 47.6 57.1-85.9 85.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l82.3-82.3c18.7 27.3 28.7 59.7 28.7 93 0 43.7-17.4 85.7-48.3 116.6L256 384 312.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L35.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L64 384z\"],\n \"prescription-bottle-medical\": [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zM160 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"],\n \"draw-polygon\": [512, 512, [58055, \"vector-polygon\"], \"f5ee\", \"M64 0c23.7 0 44.4 12.9 55.4 32l273.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 34-26.5 61.8-60 63.9l-2.1 2.9-71.5 99.1c3.6 8 5.6 16.9 5.6 26.2s-2 18.2-5.6 26.2l2.2 3.1 69.3 96 2.1 2.9c33.5 2.1 60 29.9 60 63.9 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-273.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0zM394.2 413.4l-65.5-90.6-2.2-3.1c-2.1 .2-4.3 .3-6.5 .3-35.3 0-64-28.7-64-64s28.7-64 64-64c2.2 0 4.4 .1 6.5 .3l67.7-93.7c-.6-.9-1.1-1.7-1.6-2.6L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l273.1 0c.5-.9 1.1-1.8 1.6-2.6z\"],\n \"i-cursor\": [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3l0 95.7-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7S17 513.4 34.7 511.9l8-.7c34.1-2.8 64.2-18.9 85.4-42.9 21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7c-34.1 2.8-64.2 18.9-85.4 42.9-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"],\n \"heart-circle-plus\": [576, 512, [], \"e500\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"],\n \"shield-dog\": [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8 35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7l7.2 14.3 64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4 0-2.8 .6-5.5 1.9-8l15-30zM160 160l48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],\n \"greater-than-equal\": [448, 512, [], \"f532\", \"M21.9 94.4C5.1 88.8-3.9 70.6 1.7 53.9S25.4 28.1 42.1 33.6l384 128C439.2 166 448 178.2 448 192s-8.8 26-21.9 30.4l-384 128c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5L314.8 192 21.9 94.4zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z\"],\n \"envelope-open\": [512, 512, [62135], \"f2b6\", \"M64.4 175.8L256 33.9 447.6 175.8 289.5 293c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64.4 175.8zM256-32c-12.1 0-23.8 3.9-33.5 11L25.9 124.7C9.6 136.8 0 155.8 0 176.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5-21c-9.7-7.2-21.4-11-33.5-11z\"],\n \"mound\": [512, 512, [], \"e52d\", \"M112.4 179.2C142 127.7 196.8 96 256.2 96s114.2 31.7 143.9 83.2L508.7 368c12.3 21.3-3.1 48-27.7 48L31.5 416c-24.6 0-40-26.6-27.7-48L112.4 179.2z\"],\n \"voicemail\": [640, 512, [], \"f897\", \"M144 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM263.8 320c15.3-22.9 24.2-50.4 24.2-80 0-79.5-64.5-144-144-144S0 160.5 0 240 64.5 384 144 384l352 0c79.5 0 144-64.5 144-144S575.5 96 496 96 352 160.5 352 240c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"],\n \"vest\": [448, 512, [], \"e085\", \"M200 464l0-170.1c0-3.9-.5-7.8-1.4-11.6L144.4 65.4C162.1 77.2 188.2 88 224 88s61.9-10.8 79.6-22.6L249.4 282.3c-1 3.8-1.4 7.7-1.4 11.6L248 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6L384 48c0-26.5-21.5-48-48-48l-3.5 0c-.3 0-.6 0-1 0-.6 0-1.2 0-1.8 0-18.8 0-34.1 9.7-44.1 18.8-9.3 8.4-28.5 21.2-61.7 21.2s-52.4-12.8-61.7-21.2c-10-9.1-25.3-18.8-44.1-18.8-.6 0-1.2 0-1.8 0-.3 0-.6 0-1 0L112 0C85.5 0 64 21.5 64 48l0 97.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48z\"],\n \"audio-description\": [512, 512, [], \"f29e\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm96 96l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 48 0 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-35.3-28.7-64-64-64l-16 0c-35.3 0-64 28.7-64 64zm48 32l0-32c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 32-48 0zm152-96c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24l48 0c39.8 0 72-32.2 72-72l0-48c0-39.8-32.2-72-72-72l-48 0zm48 144l-24 0 0-96 24 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24z\"],\n \"w\": [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7L172.2 346.7 257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23L403.8 346.7 514 52.8c6.2-16.5 24.6-24.9 41.2-18.7S580.2 58.7 574 75.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"],\n \"eye-dropper\": [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2l-101.6 101.6-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 101.6-101.6c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4-26.6 39.9c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4l39.9-26.6 42.4 0c21.2 0 41.6-8.4 56.6-23.4l109.4-109.4-45.3-45.3-109.4 109.4c-3 3-7.1 4.7-11.3 4.7l-36.1 0 0-36.1c0-4.2 1.7-8.3 4.7-11.3l109.4-109.4-45.3-45.3-109.4 109.4z\"],\n \"circle-xmark\": [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"trailer\": [640, 512, [], \"e041\", \"M32 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zm408 16c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM112 136l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm176-24c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM264 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z\"],\n \"turkish-lira-sign\": [448, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M160 32c17.7 0 32 14.3 32 32l0 43.6 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 46.1 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 162.5 72 0c53 0 96-43 96-96 0-17.7 14.3-32 32-32s32 14.3 32 32c0 88.4-71.6 160-160 160l-104 0c-17.7 0-32-14.3-32-32l0-176.2-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-46.1-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-61.9c0-17.7 14.3-32 32-32z\"],\n \"volcano\": [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15 11.2-18.6 31.6-31 54.8-31s43.6 12.4 54.8 31c11.1-9.4 25.5-15 41.2-15 35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8 19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9 11.3 0 21.8-5.6 28-15l9.7-14.6-59-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4 4.7-3.5zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7 0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8 0 447.1 4.7 434.7 13.2 425.2l150.2-169z\"],\n \"wand-sparkles\": [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9c-6.3 7.1-15.3 11.1-24.8 11.1-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7c-6.2-6.2-9.7-14.7-9.7-23.5 0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"],\n \"microphone\": [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96zM48 184c0-13.3-10.7-24-24-24S0 170.7 0 184l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c94.7-11.8 168-92.6 168-190.5l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 79.5-64.5 144-144 144S48 303.5 48 224l0-40z\"],\n \"crown\": [576, 512, [128081], \"f521\", \"M313 87.2c9.2-7.3 15-18.6 15-31.2 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 12.6 5.9 23.9 15 31.2L194.6 194.8c-10 15.7-31.3 19.6-46.2 8.4L88.9 158.7c4.5-6.4 7.1-14.3 7.1-22.7 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 21.8 17.5 39.6 39.2 40L87.8 393.5c4.7 31.3 31.6 54.5 63.3 54.5l273.8 0c31.7 0 58.6-23.2 63.3-54.5L520.8 176c21.7-.4 39.2-18.2 39.2-40 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 8.4 2.6 16.3 7.1 22.7l-59.4 44.6c-14.9 11.2-36.2 7.3-46.2-8.4L313 87.2z\"],\n \"tent-arrow-turn-left\": [512, 512, [], \"e580\", \"M-.5 113l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 350.1 0c22.1 0 40 17.9 40 40l0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24c0-48.6-39.4-88-88-88l-350.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9S80.9-2.3 71.5 7L-.5 79c-9.4 9.4-9.4 24.6 0 33.9zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z\"],\n \"truck-fast\": [640, 512, [\"shipping-fast\"], \"f48b\", \"M64 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L621.3 192c12 12 18.7 28.3 18.7 45.3L640 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-3.3 0c-35.3 0-64-28.7-64-64l0-48-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 144c-13.3 0-24-10.7-24-24S10.7 96 24 96l40 0zM576 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM256 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"user-pen\": [640, 512, [\"user-edit\"], \"f4ff\", \"M256.1 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56c-98.5 0-178.3 79.8-178.3 178.3 0 16.4 13.3 29.7 29.7 29.7l196.5 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l67.3-67.3c-28-18.3-61.4-28.9-97.4-28.9l-59.4 0zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z\"],\n \"user-clock\": [576, 512, [], \"f4fd\", \"M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c3.9 0 7.9 .1 11.8 .4-16.2 28.2-25.5 60.8-25.5 95.6 0 41.8 13.4 80.5 36 112L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z\"],\n \"shower\": [512, 512, [128703], \"f2cc\", \"M64 131.9c0-19.8 16.1-35.9 35.9-35.9 9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.1-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32 44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"square-caret-up\": [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9S337.5 320 328 320l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"],\n \"map-location\": [640, 512, [\"map-marked\"], \"f59f\", \"M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM392 341.9c0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9S392 276.8 392 341.9z\"],\n \"pen-fancy\": [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1c15-17.2 36.7-27.1 59.6-27.1 43.6 0 79 35.4 79 79 0 22.8-9.9 44.6-27.1 59.6L283.7 313.8 273 303 209 239 198.2 228.3 373.5 27.1zM161.1 259C162 260 188 286 239 337l13.9 13.9-17.1 74.2c-3.9 17.1-16.9 30.7-33.8 35.4l-169.8 47.5 92.3-92.3c1.2 .1 2.3 .2 3.5 .2 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 1.2 .1 2.4 .2 3.5L3.9 479.8 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8L161.1 259z\"],\n \"euro-sign\": [448, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M73.3 192C100.8 99.5 186.5 32 288 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-65.6 0-122 39.5-146.7 96L272 192c13.3 0 24 10.7 24 24s-10.7 24-24 24l-143.2 0c-.5 5.3-.8 10.6-.8 16s.3 10.7 .8 16L272 272c13.3 0 24 10.7 24 24s-10.7 24-24 24l-130.7 0c24.7 56.5 81.1 96 146.7 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-101.5 0-187.2-67.5-214.7-160L40 320c-13.3 0-24-10.7-24-24s10.7-24 24-24l24.6 0c-.7-10.5-.7-21.5 0-32L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l33.3 0z\"],\n \"house-circle-xmark\": [640, 512, [], \"e50b\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.2 47.2-175.9 114.8-5-1.8-10.5-2.8-16.1-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 90.9 0c6.1 17.3 14.6 33.4 25.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM555.3 340.7c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7c6.2-6.2 6.2-16.4 0-22.6z\"],\n \"lira-sign\": [384, 512, [8356], \"f195\", \"M84.9 256l-28.4 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11.6 0C53.2 124.7 116.8 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-53.8 0-90.1 52.9-73.5 102l162.4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-145.1 0c2.3 10.6 3.6 21.3 3.9 32l141.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L150 336c-4.8 18.6-12.6 36.5-23.6 52.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c3.7-5.6 6.9-11.4 9.4-17.4l-26 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l34.8 0c-.5-10.8-2.6-21.6-6.4-32z\"],\n \"yen-sign\": [384, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M74.9 46.7c-9.6-14.9-29.4-19.2-44.2-9.6S11.5 66.4 21.1 81.3L143.7 272 88 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 32-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-32 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-55.7 0 122.6-190.7c9.6-14.9 5.3-34.7-9.6-44.2s-34.7-5.3-44.2 9.6L192 228.8 74.9 46.7z\"],\n \"box-open\": [640, 512, [], \"f49e\", \"M560.3 237.2c10.4 11.8 28.3 14.4 41.8 5.5 14.7-9.8 18.7-29.7 8.9-44.4l-48-72c-2.8-4.2-6.6-7.7-11.1-10.2L351.4 4.7c-19.3-10.7-42.8-10.7-62.2 0L88.8 116c-5.4 3-9.7 7.4-12.6 12.8L27.7 218.7c-12.6 23.4-3.8 52.5 19.6 65.1l33 17.7 0 53.3c0 23 12.4 44.3 32.4 55.7l176 99.7c19.6 11.1 43.5 11.1 63.1 0l176-99.7c20.1-11.4 32.4-32.6 32.4-55.7l0-117.5zm-240-9.8L170.2 144 320.3 60.6 470.4 144 320.3 227.4zm-41.5 50.2l-21.3 46.2-165.8-88.8 25.4-47.2 161.7 89.8z\"],\n \"truck-field\": [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l40.4 0c32.4 0 61.6 19.6 74 49.5l43.8 106.3 1.7 4.2 24.7 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8l-144.7 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-3.6 .2-7.1 .6-10.5-19-6.4-32.6-24.4-32.6-45.5l0-48c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zm352 32l0 96 82.1 0-35.4-86.1c-2.5-6-8.3-9.9-14.8-9.9L384 128zM192 392a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm280 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"location-pin-lock\": [512, 512, [], \"e51f\", \"M0 188.6C0 84.4 86 0 192 0 294.1 0 377.6 78.3 383.6 177 320.7 185.1 272 238.8 272 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 75.7c-9.9 11.6-18.9 21.7-26.4 29.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm240 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM288 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"person-praying\": [384, 512, [128720, \"pray\"], \"f683\", \"M320 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM200.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36c-15.6-21.5-40.6-34.2-67.2-34.2-30.9 0-59.2 17.1-73.6 44.4L47.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L126.6 432 40 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7l-116.1-85.8 45-90z\"],\n \"clipboard-list\": [384, 512, [], \"f46d\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32 0c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zm0 128c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM96 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"sack-dollar\": [512, 512, [128176], \"f81d\", \"M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM260 224c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L216 384c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z\"],\n \"mountain-sun\": [576, 512, [], \"e52f\", \"M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4zM496.5 160a80 80 0 1 1 0-160 80 80 0 1 1 0 160z\"],\n \"arrow-up-wide-short\": [576, 512, [\"sort-amount-up\"], \"f161\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"],\n \"users-line\": [576, 512, [], \"e592\", \"M224 128a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 336c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8zM392 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0c-18.2 26-28.8 57.5-28.8 91.6l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 368 32 358.4 32 346.7L32 336c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM0 440c0-13.3 10.7-24 24-24l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 464c-13.3 0-24-10.7-24-24z\"],\n \"star-of-david\": [512, 512, [10017], \"f69a\", \"M415.9 311.9l-27.8 48.1 55.7 0-27.8-48.1zM383.6 256l-60.2-104-134.8 0-60.2 104 60.2 104 134.8 0 60.2-104zm64.7 0l58.4 100.9c3.5 6 5.3 12.8 5.3 19.7 0 21.7-17.6 39.4-39.4 39.4l-117 0-61.3 105.8C286.5 535.6 271.8 544 256 544s-30.5-8.4-38.4-22.2l-61.3-105.8-117 0c-21.7 0-39.4-17.6-39.4-39.4 0-6.9 1.8-13.7 5.3-19.7L63.7 256 5.3 155.1C1.8 149.1 0 142.3 0 135.4 0 113.6 17.6 96 39.4 96l117 0 61.3-105.8C225.5-23.6 240.2-32 256-32s30.5 8.4 38.4 22.2l61.3 105.8 117 0c21.7 0 39.4 17.6 39.4 39.4 0 6.9-1.8 13.7-5.3 19.7L448.3 256zM388.1 152l27.8 48.1 27.8-48.1-55.7 0zM291 96l-35-60.4-35 60.4 70 0zM123.9 152l-55.7 0 27.8 48.1 27.8-48.1zM96.1 311.9l-27.8 48.1 55.7 0-27.8-48.1zM221 416l35 60.4 35-60.4-70 0z\"],\n \"notes-medical\": [512, 512, [], \"f481\", \"M96 352c0 35.3 28.7 64 64 64l181.5 0c17 0 33.3-6.7 45.3-18.7L493.3 290.7c12-12 18.7-28.3 18.7-45.3L512 64c0-35.3-28.7-64-64-64L160 0C124.7 0 96 28.7 96 64l0 288zM288 112l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 448c0 35.3 28.7 64 64 64l264 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 464c-8.8 0-16-7.2-16-16l0-328z\"],\n \"austral-sign\": [448, 512, [], \"e0a9\", \"M266.5 240l-85 0 42.5-106.4 42.5 106.4zm68.9 0L262.9 58.3C256.5 42.4 241.1 32 224 32s-32.5 10.4-38.9 26.3L112.6 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l61.4 0-19.2 48-42.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l23.1 0-20.8 52.1c-6.6 16.4 1.4 35 17.9 41.6s35-1.4 41.6-17.9l30.3-75.9 200 0 30.3 75.9c6.6 16.4 25.2 24.4 41.6 17.9s24.4-25.2 17.9-41.6L392.9 384 416 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-42.3 0-19.2-48 61.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80.6 0zm-49.7 48l19.2 48-161.6 0 19.2-48 123.3 0z\"],\n \"clipboard-user\": [384, 512, [], \"f7f3\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 344a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM98.3 413c-12.9 15.6 2.2 35 22.4 35l142.5 0c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29z\"],\n \"file-image\": [384, 512, [128443], \"f1c5\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM92.6 448l198.8 0c15.8 0 28.6-12.8 28.6-28.6 0-7.3-2.8-14.4-7.9-19.7L215.3 297.9c-6-6.3-14.4-9.9-23.2-9.9l-.3 0c-8.8 0-17.1 3.6-23.2 9.9L71.9 399.7C66.8 405 64 412.1 64 419.4 64 435.2 76.8 448 92.6 448z\"],\n \"square-caret-right\": [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4S160 369.5 160 360l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"],\n \"vial\": [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L306.7 64 28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1l278.6-278.6 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zM205.3 256l146.7-146.7 50.7 50.7-96 96-101.5 0z\"],\n \"helicopter\": [576, 512, [128641], \"f533\", \"M176 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0 0 48-220.8 0-32.8-39.4C69.9 83.2 63.1 80 56 80L24 80C15.7 80 8 84.3 3.6 91.4s-4.8 15.9-1.1 23.4l48 96C54.6 218.9 62.9 224 72 224l107.8 0 104 143.1c15.1 20.7 39.1 32.9 64.7 32.9l75.5 0c75.1 0 136-60.9 136-136S499.1 128 424 128l-48 0 0-48 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L176 32zM376 192l48 0c39.8 0 72 32.2 72 72s-32.2 72-72 72l-48 0 0-144zM552 416c-13.3 0-24 10.7-24 24 0 4.4-3.6 8-8 8l-272 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24z\"],\n \"mitten\": [448, 512, [], \"f7b5\", \"M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3 0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3 0 15.9-6 31.2-16.8 42.9L352 384zM32 464c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 16c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-16z\"],\n \"gas-pump\": [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-59.5-25.8-28.3c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l71.7 78.8c9.4 10.3 14.6 23.7 14.6 37.7L512 376c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 161.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z\"],\n \"envelope-circle-check\": [640, 512, [], \"e4e8\", \"M64 112c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 81.4c-24.4-11.2-51.4-17.4-80-17.4-87.7 0-161.7 58.8-184.7 139.2-7.1-1.3-14.1-4.2-20.1-8.8l-208-156C71.1 141.3 64 127.1 64 112zM304 368c0 28.6 6.2 55.6 17.4 80L128 448c-35.3 0-64-28.7-64-64l0-188 198.4 148.8c12.6 9.4 26.9 15.4 41.7 17.9 0 1.8-.1 3.5-.1 5.3zm48 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"],\n \"person-skating\": [512, 512, [\"skating\"], \"f7c5\", \"M368 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM128 128c0-17.7 14.3-32 32-32l150.1 0c49.9 0 74.9 60.3 39.6 95.6l-63.9 63.9 69.8 31c17.3 7.7 28.5 24.9 28.5 43.9l0 85.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-75.2-82.4-36.6c-41-18.2-51-72-19.3-103.7l40.4-40.4-98.7 0c-17.7 0-32-14.3-32-32zM89.4 361.4l75.9-75.9c7.7 19.7 21.6 37.3 41 49.6l-71.6 71.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm346.5 87.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM143.2 486.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L12.7 419.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"],\n \"sun\": [576, 512, [9728], \"f185\", \"M178.2-10.1c7.4-3.1 15.8-2.2 22.5 2.2l87.8 58.2 87.8-58.2c6.7-4.4 15.1-5.2 22.5-2.2S411.4-.5 413 7.3l20.9 103.2 103.2 20.9c7.8 1.6 14.4 7 17.4 14.3s2.2 15.8-2.2 22.5l-58.2 87.8 58.2 87.8c4.4 6.7 5.2 15.1 2.2 22.5s-9.6 12.8-17.4 14.3L433.8 401.4 413 504.7c-1.6 7.8-7 14.4-14.3 17.4s-15.8 2.2-22.5-2.2l-87.8-58.2-87.8 58.2c-6.7 4.4-15.1 5.2-22.5 2.2s-12.8-9.6-14.3-17.4L143 401.4 39.7 380.5c-7.8-1.6-14.4-7-17.4-14.3s-2.2-15.8 2.2-22.5L82.7 256 24.5 168.2c-4.4-6.7-5.2-15.1-2.2-22.5s9.6-12.8 17.4-14.3L143 110.6 163.9 7.3c1.6-7.8 7-14.4 14.3-17.4zM207.6 256a80.4 80.4 0 1 1 160.8 0 80.4 80.4 0 1 1 -160.8 0zm208.8 0a128.4 128.4 0 1 0 -256.8 0 128.4 128.4 0 1 0 256.8 0z\"],\n \"baseball\": [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M232.4 1.1c-122.2 11.4-219.5 108.7-230.9 230.9 16.2-.1 32-1.8 47.2-5 13-2.7 25.7 5.5 28.4 18.5s-5.5 25.7-18.5 28.4c-18.4 3.9-37.6 6-57.1 6.1 11.4 122.2 108.7 219.5 230.9 230.9 .1-19.5 2.2-38.7 6.1-57.1 2.7-13 15.5-21.3 28.4-18.5s21.3 15.5 18.5 28.4c-3.2 15.2-4.9 31-5 47.2 122.2-11.4 219.5-108.7 230.9-230.9-16.2 .1-32 1.8-47.2 5-13 2.7-25.7-5.5-28.4-18.5s5.5-25.7 18.5-28.4c18.4-3.9 37.6-6 57.1-6.1-11.4-122.2-108.7-219.5-230.9-230.9-.1 19.5-2.2 38.7-6.1 57.1-2.7 13-15.5 21.3-28.4 18.5s-21.3-15.5-18.5-28.4c3.2-15.2 4.9-31 5-47.2zm2.8 151.4c-21.4 32.9-49.5 60.9-82.3 82.3-11.1 7.2-26 4.1-33.2-7s-4.1-26 7-33.2c27.2-17.7 50.5-41 68.3-68.3 7.2-11.1 22.1-14.3 33.2-7s14.3 22.1 7 33.2zM393.1 284.2c7.2 11.1 4.1 26-7 33.2-27.2 17.7-50.5 41-68.3 68.3-7.2 11.1-22.1 14.3-33.2 7s-14.3-22.1-7-33.2c21.4-32.9 49.5-60.9 82.3-82.3 11.1-7.2 26-4.1 33.2 7z\"],\n \"image\": [448, 512, [], \"f03e\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 80a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM272 224c8.4 0 16.1 4.4 20.5 11.5l88 144c4.5 7.4 4.7 16.7 .5 24.3S368.7 416 360 416L88 416c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l26.4 37.8 61.4-100.5c4.4-7.1 12.1-11.5 20.5-11.5z\"],\n \"notdef\": [384, 512, [], \"e1fe\", \"M64 390.3L153.5 256 64 121.7 64 390.3zM102.5 448L281.5 448 192 313.7 102.5 448zm128-192L320 390.3 320 121.7 230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z\"],\n \"basketball\": [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M92.7 58.8l78.4 78.4c18.2-25 28.9-55.9 28.9-89.2 0-14.1-1.9-27.7-5.5-40.6-38 9.4-72.6 27.2-101.8 51.4zM58.8 92.7c-24.2 29.2-42 63.8-51.4 101.8 12.9 3.6 26.5 5.5 40.6 5.5 33.3 0 64.1-10.7 89.2-28.9L58.8 92.7zM256 0c-4.6 0-9.2 .1-13.7 .4 3.7 15.3 5.7 31.2 5.7 47.6 0 46.6-15.9 89.4-42.6 123.4L256 222.1 419.3 58.8C374.9 22.1 318.1 0 256 0zM48 248c-16.4 0-32.4-2-47.6-5.7-.2 4.5-.4 9.1-.4 13.7 0 62.1 22.1 118.9 58.8 163.3L222.1 256 171.4 205.4C137.4 232.1 94.6 248 48 248zm463.6 21.7c.2-4.5 .4-9.1 .4-13.7 0-62.1-22.1-118.9-58.8-163.3L289.9 256 340.6 306.6c34-26.7 76.9-42.6 123.4-42.6 16.4 0 32.4 2 47.6 5.7zm-7.1 47.8c-12.9-3.6-26.5-5.5-40.6-5.5-33.3 0-64.1 10.7-89.2 28.9l78.4 78.4c24.2-29.2 42-63.8 51.4-101.8zM340.9 374.8c-18.2 25-28.9 55.9-28.9 89.2 0 14.1 1.9 27.7 5.5 40.6 38-9.4 72.6-27.2 101.8-51.4l-78.4-78.4zm-34.3-34.3L256 289.9 92.7 453.2c44.3 36.7 101.2 58.8 163.3 58.8 4.6 0 9.2-.1 13.7-.4-3.7-15.3-5.7-31.2-5.7-47.6 0-46.6 15.9-89.4 42.6-123.4z\"],\n \"pencil\": [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M36.4 353.2c4.1-14.6 11.8-27.9 22.6-38.7l181.2-181.2 33.9-33.9c16.6 16.6 51.3 51.3 104 104l33.9 33.9-33.9 33.9-181.2 181.2c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 510.6c-8.3 2.3-17.3 0-23.4-6.2S-1.4 489.3 .9 481L36.4 353.2zm55.6-3.7c-4.4 4.7-7.6 10.4-9.3 16.6l-24.1 86.9 86.9-24.1c6.4-1.8 12.2-5.1 17-9.7L91.9 349.5zm354-146.1c-16.6-16.6-51.3-51.3-104-104L308 65.5C334.5 39 349.4 24.1 352.9 20.6 366.4 7 384.8-.6 404-.6S441.6 7 455.1 20.6l35.7 35.7C504.4 69.9 512 88.3 512 107.4s-7.6 37.6-21.2 51.1c-3.5 3.5-18.4 18.4-44.9 44.9z\"],\n \"person-walking-arrow-loop-left\": [640, 512, [], \"e551\", \"M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM359 335c-9.4 9.4-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 102.1 0c1.2 0 2.4-.1 3.5-.3 56.1-3.9 100.5-50.6 100.5-107.7 0-59.6-48.4-108-108-108l-92 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l92 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-98.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-72 72z\"],\n \"dice-six\": [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"angles-down\": [384, 512, [\"angle-double-down\"], \"f103\", \"M214.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 402.7 329.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 210.7 329.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"],\n \"syringe\": [576, 512, [128137], \"f48e\", \"M497.5-17c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l15 15-46.1 46.1-63-63c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l7 7-78.1 78.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-46.1 46.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-37.7 37.7c-10.5 10.5-16.4 24.7-16.4 39.6l0 88.8-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 88.8 0c14.9 0 29.1-5.9 39.6-16.4l229.7-229.7 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 46.1-46.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z\"],\n \"wheat-awn\": [576, 512, [\"wheat-alt\"], \"e2cd\", \"M79.7 234.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0L134.1 444.3 49.4 529c-9.4 9.4-24.5 9.4-33.9 0-9.4-9.4-9.4-24.6 0-33.9l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zm104-104c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM495.2 15c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.2L529.2 49 414.7 163.4c7.7 1 15.2 3 22.5 5.9L495.5 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-58.3 58.3c2.8 7.1 4.7 14.5 5.7 22.1L495.2 15z\"],\n \"plane-up\": [512, 512, [], \"e22d\", \"M200 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 173.6 159.2c6.6 6.1 10.4 14.6 10.4 23.6l0 43.7c0 10.9-10.7 18.6-21.1 15.2l-162.9-54.3 0 99.7 66 52.8c3.8 3 6 7.6 6 12.5l0 19.8c0 10.4-9.8 18-19.9 15.5L256 512 147.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C26.7 396.4 16 388.7 16 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L200 151.3 200 24z\"],\n \"align-center\": [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z\"],\n \"hockey-puck\": [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96 256 43 256 96-114.6 96-256 96zM0 352L0 242.7c16.9 12.3 37 22.2 58.1 30.1 53 19.9 123 31.2 197.9 31.2s144.9-11.3 197.9-31.2c21.2-7.9 41.2-17.8 58.1-30.1L512 352c0 53-114.6 96-256 96S0 405 0 352z\"],\n \"circle-arrow-left\": [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM135 239l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-39 39 150.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-150.1 0 39 39c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"plug-circle-bolt\": [640, 512, [], \"e55b\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S433.2 416 440 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S558.8 384 552 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z\"],\n \"restroom\": [640, 512, [], \"f7bd\", \"M80 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C44.4 156.9 83.6 128 128 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"],\n \"anchor-lock\": [640, 512, [], \"e4ad\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 28.3 0 55.4-5.7 80-15.9l0-.2 0-72.2c-14.4 9.6-30.6 16.7-48 20.7l0-257.9c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm272 304.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416.5 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"],\n \"timeline\": [576, 512, [], \"e29c\", \"M160 169.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3l0 54.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 0 54.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-256 0 0-54.7z\"],\n \"lightbulb\": [384, 512, [128161], \"f0eb\", \"M292.9 384c7.3-22.3 21.9-42.5 38.4-59.9 32.7-34.4 52.7-80.9 52.7-132.1 0-106-86-192-192-192S0 86 0 192c0 51.2 20 97.7 52.7 132.1 16.5 17.4 31.2 37.6 38.4 59.9l201.7 0zM288 432l-192 0 0 16c0 44.2 35.8 80 80 80l32 0c44.2 0 80-35.8 80-80l0-16zM184 112c-39.8 0-72 32.2-72 72 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3 53.7-120 120-120 13.3 0 24 10.7 24 24s-10.7 24-24 24z\"],\n \"circle-arrow-right\": [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm41-159c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39-150.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l150.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80z\"],\n \"mars-and-venus\": [512, 512, [9893], \"f224\", \"M368 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7-63 63c19.5 28.4 31 62.7 31 99.8 0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-81.9-15-144-86.8-144-173.1 0-97.2 78.8-176 176-176 37 0 71.4 11.4 99.8 31l63-63-34.7 0zM352 208a112 112 0 1 0 -224 0 112 112 0 1 0 224 0z\"],\n \"network-wired\": [576, 512, [], \"f6ff\", \"M248 88l80 0 0 48-80 0 0-48zm-8-56c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l16 0 0 32-224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 192 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-32 16 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-96 0zM448 376l8 0 0 48-80 0 0-48 72 0zm-256 0l8 0 0 48-80 0 0-48 72 0z\"],\n \"building-shield\": [576, 512, [], \"e4d8\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0c-12.5-14.7-23.2-30.8-31.8-48l-89.5 0 0-80c0-17.7 14.3-32 32-32l32 0 0-26.7c0-18.1 6.1-35.2 16.6-48.8-.4-1.4-.6-2.9-.6-4.5l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 1 86.7-28.9c3.1-1 6.2-1.8 9.3-2.5L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM445.3 488.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"],\n \"code\": [576, 512, [], \"f121\", \"M360.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm64.6 136.1c-12.5 12.5-12.5 32.8 0 45.3l73.4 73.4-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0zm-274.7 0c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 150.6 182.6c12.5-12.5 12.5-32.8 0-45.3z\"],\n \"feather-pointed\": [512, 512, [\"feather-alt\"], \"f56b\", \"M475.3 .1c9.9-.8 19.6 3 26.6 10s10.8 16.7 10 26.6c-4 49.3-17.4 126.2-46.3 199.7-1.8 4.5-5.5 7.9-10.2 9.3L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l38.6 0c12 0 19.7 12.8 13.5 23.1-4 6.7-8.3 13.2-12.7 19.6-2 2.9-5 5-8.4 6.1L310.5 366c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l16 0c14.6 0 21 17.4 8.8 25.4-68 45-137.7 43.3-182.4 31.3-12.7-3.4-24-9.9-34.4-17.9L48 496c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32l80-80 .5 .5c.7-1.3 1.6-2.5 2.7-3.6L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L89.7 326.2c-8.9 8.9-24 4.4-25-8.2-4.3-53.2 9.3-123.1 72.6-186.4 91.1-91.1 254.2-124.7 337.9-131.5z\"],\n \"file-circle-question\": [576, 512, [], \"e4ef\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z\"],\n \"signature\": [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 32.4-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72.5 0c4.2 36 34.8 64 72 64 26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8S405.7 320 416 320l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM616 416c13.3 0 24-10.7 24-24s-10.7-24-24-24l-292.9 0c-6.5 16.3-13.7 32.3-21.6 48L616 416z\"],\n \"earth-americas\": [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M55.7 199.7l30.9 30.9c6 6 14.1 9.4 22.6 9.4l21.5 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 9.4 14.1 9.4 22.6l0 37.5c0 8.5 3.4 16.6 9.4 22.6l13.3 13.3c6 6 9.4 14.1 9.4 22.6l0 18.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-2.7c0-8.5 3.4-16.6 9.4-22.6l45.3-45.3c6-6 9.4-14.1 9.4-22.6l0-34.7c0-17.7-14.3-32-32-32l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l34.7 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-19.7-19.7C242 130 240 125.1 240 120s2-10 5.7-13.7l17.3-17.3c5.8-5.8 9.1-13.7 9.1-21.9 0-7.2-2.4-13.7-6.4-18.9-3.2-.1-6.4-.2-9.6-.2-95.4 0-175.7 64.2-200.3 151.7zM464 256c0-34.6-8.4-67.2-23.4-95.8-6.4 .9-12.7 3.9-17.9 9.1l-13.4 13.4c-6 6-9.4 14.1-9.4 22.6l0 34.7c0 17.7 14.3 32 32 32l24.1 0c2.5 0 5-.3 7.3-.8 .4-5 .5-10.1 .5-15.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"carrot\": [640, 512, [129365], \"f787\", \"M453.1-36.7L440.9-24.6c-31.2 31.2-31.2 81.9 0 113.1 15.6 15.6 31.2 31.2 46.9 46.9 31.2 31.2 81.9 31.2 113.1 0l12.1-12.1c6.2-6.2 6.2-16.4 0-22.6L600.9 88.6c-31.2-31.2-81.9-31.2-113.1 0 31.2-31.2 31.2-81.9 0-113.1L475.7-36.7c-6.2-6.2-16.4-6.2-22.6 0zM331.6 96c-45.2 0-87.1 20.4-115 54.3L273.3 207c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L191.6 193.2 67.2 466.8c-5.5 12.1-2.9 26.4 6.5 35.9s23.7 12 35.9 6.5l141.6-64.4-43.8-43.8c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.5 56.5 95.3-43.3c53.1-24.1 87.2-77.1 87.2-135.5 0-82.2-66.6-148.8-148.8-148.8z\"],\n \"temperature-full\": [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 212.7c23.5 9.5 40 32.5 40 59.3z\"],\n \"table-cells-row-lock\": [640, 512, [], \"e67a\", \"M256 288l0-64 153.3 0c17.1-42.2 56-73.2 102.7-79l0-49c0-35.3-28.7-64-64-64L128 32C92.7 32 64 60.7 64 96l0 320c0 35.3 28.7 64 64 64l241.3 0c-.9-5.2-1.3-10.6-1.3-16.1l0-47.9-112 0 0-64 113.3 0c3.7-22 14.8-41.4 30.7-55.6l0-8.4-144 0zm0-192l192 0 0 64-192 0 0-64zM560 272.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416 368l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"],\n \"bolt-lightning\": [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28L228.9 0c15 0 27.1 12.1 27.1 27.1 0 3.2-.6 6.5-1.7 9.5L208 160 347.3 160c20.2 0 36.7 16.4 36.7 36.7 0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7l-2.9 0c-15.7 0-28.5-12.8-28.5-28.5 0-2.3 .3-4.6 .9-6.9L176 288 32 288c-17.7 0-32-14.3-32-32z\"],\n \"cloud-showers-water\": [512, 512, [], \"e4e4\", \"M279.2 55.7C263.9 22.8 230.6 0 192 0 139 0 96 43 96 96 60.7 96 32 124.7 32 160s28.7 64 64 64l320 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-1.6 0c-7.4-36.5-39.7-64-78.4-64-22.2 0-42.3 9.1-56.8 23.7zM410.6 476.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zM100.1 303.6c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64C29 365 35.8 378.6 48.4 382.8s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm112 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64z\"],\n \"arrow-up-long\": [320, 512, [\"long-arrow-up\"], \"f176\", \"M182.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 77.3 128 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-434.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"],\n \"address-card\": [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm240-48l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"angle-right\": [256, 512, [8250], \"f105\", \"M247.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L179.2 256 41.9 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"],\n \"face-meh\": [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM176 320l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"arrow-up-from-ground-water\": [640, 512, [], \"e4b5\", \"M303 7c9.4-9.4 24.6-9.4 33.9 0l88 88c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47 0 278.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-278.1-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L303 7zM240 192l0 163.1c-10.6-2.2-21.3-3.2-32-3.1-32.5 .2-64.9 10.7-92.3 31.4-8.8 6.6-15.9 10.9-21.7 13.5l-.8 .4c-3.7 1.7-6.4 2.9-9.8 .3-6-4.5-12.6-8-19.3-10.4L64 240c0-26.5 21.5-48 48-48l128 0zm336 48l0 155.2c-1.1 .8-2.2 1.5-3.3 2.4-4.1 3.1-8.3 .8-12.6-1.5-.6-.3-1.2-.6-1.8-1-5.2-2.7-11.1-6.6-18-11.7-28.1-21.1-61.3-31.6-94.4-31.4-15.5 .1-31 2.5-46 7.3l0-167.3 128 0c26.5 0 48 21.5 48 48zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"],\n \"map\": [512, 512, [128506, 62072], \"f279\", \"M512 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L349.5 77.5 170.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C6.8 88.8 0 99.9 0 112L0 464c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 179.4 59.8c8.1 2.7 16.8 2.1 24.4-1.7l128-64c10.8-5.4 17.7-16.5 17.7-28.6l0-352zM192 376.9l0-284.5 128 42.7 0 284.5-128-42.7z\"],\n \"user-plus\": [640, 512, [], \"f234\", \"M136 128a120 120 0 1 1 240 0 120 120 0 1 1 -240 0zM48 482.3C48 383.8 127.8 304 226.3 304l59.4 0c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3zM544 96c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24z\"],\n \"venus\": [384, 512, [9792], \"f221\", \"M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64c0-1 0-1.9-.1-2.9z\"],\n \"diagram-successor\": [448, 512, [], \"e47a\", \"M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 480L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM160 160l0-64-96 0 0 64 96 0z\"],\n \"head-side-cough-slash\": [576, 512, [], \"e062\", \"M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l25-25 0-447.2c0-15 10.5-28.3 25.4-29.8 7.4-.7 14.9-1.1 22.6-1.1 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l2.2 2.6 227.5-227.5zM133.8 512L288 357.8 288 416c0 53-43 96-96 96l-58.2 0zM176 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm336 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88 72a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-64 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm128 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"diagram-project\": [512, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 128 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-128 0 0 16c0 7.3-1.7 14.3-4.6 20.5l68.6 91.5 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-7.3 1.7-14.3 4.6-20.5L128 224 48 224c-26.5 0-48-21.5-48-48L0 80z\"],\n \"terminal\": [512, 512, [], \"f120\", \"M9.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 256 9.4 118.6zM224 384l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"house-fire\": [640, 512, [], \"e50c\", \"M448 192c14.1 .4 23.8 11.4 32.7 21.7 2 2.3 4 4.6 6 6.7l19 19.9 12.2-13.8c5.4-6.1 13.3-8.9 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.2 26.2 88.2 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.1 5.7-5.2 13.1-7.7 20.3-7.5zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l147.5 137c-19.2-4.3-40 .5-55.5 14.4-36.4 32.6-67.7 69.8-90.3 106.4-10.3 16.6-19.7 34.9-26.8 53.7L272 320c-26.5 0-48 21.5-48 48l0 96 64.6 0c7.3 17.2 16.8 33.4 28.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM489.3 343.7c-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.7 51.9-54.7 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-36.5-37-73-54.7-88.4z\"],\n \"mask\": [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176S512 64 288 64zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"hurricane\": [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6 184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5 100.3 14.9 177.3 101.3 177.3 205.7 0 103.6-75.7 189.5-174.9 205.4-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3C192 421.9 185.5 415 177.3 413.7 77 398.9 0 312.4 0 208zm288 48a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"earth-africa\": [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M447.6 175c-31.6-74.6-105.5-127-191.6-127-22.1 0-43.4 3.5-63.4 9.8-.4 2-.6 4.1-.6 6.2l0 73.4c0 12.5 10.1 22.6 22.6 22.6 6 0 11.8-2.4 16-6.6l16-16c6-6 14.1-9.4 22.6-9.4l5.5 0c28.5 0 42.8 34.5 22.6 54.6-6 6-14.1 9.4-22.6 9.4l-61.5 0c-8.5 0-16.6 3.4-22.6 9.4l-21.3 21.3c-6 6-9.4 14.1-9.4 22.6l0 42.7c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32l0 32c0 17.7 14.3 32 32 32l2.7 0c8.5 0 16.6-3.4 22.6-9.4l29.3-29.3c6-6 9.4-14.1 9.4-22.6l0-18.7c0-8.8 7.2-16 16-16s16-7.2 16-16l0-34.7c0-8.5-3.4-16.6-9.4-22.6l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l45 0c12.4 0 22.7-7.1 28-17zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"thumbtack\": [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 10.3 134.1c37.1 21.2 65.8 56.4 78.2 99.7l3.8 13.4c2.8 9.7 .8 20-5.2 28.1S362 352 352 352L32 352c-10 0-19.5-4.7-25.5-12.7s-8-18.4-5.2-28.1L5 297.8c12.4-43.3 41-78.5 78.2-99.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 400l64 0 0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-112z\"],\n \"hand-point-down\": [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6 13.2 0 25.4 4 35.6 10.8 8.7-24.9 32.5-42.8 60.4-42.8 11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z\"],\n \"face-meh-blank\": [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm208-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"temperature-empty\": [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M64 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S16 447.5 16 368c0-42.6 18.5-81 48-107.3L64 96zm96 336c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"],\n \"border-none\": [448, 512, [], \"f850\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM288 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM288 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm0-384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM416 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"],\n \"highlighter\": [576, 512, [], \"f591\", \"M315 315L473.4 99.9 444.1 70.6 229 229 315 315zm-187 5l0 0 0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0 457.6 0 468.5 4.5 476.6 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5 0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5l-71.7 0-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l51.7-51.7 70.6 70.6-19.7 19.7c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z\"],\n \"money-bill-wave\": [512, 512, [], \"f53a\", \"M0 419.6L0 109.5c0-23.2 24.1-38.6 46.3-32 87.7 26.2 149.7 5.5 212.1-15.3 64.5-21.5 129.4-43.1 223.3-13.1 18.5 5.9 30.3 23.8 30.3 43.3l0 310.1c0 23.2-24.1 38.6-46.2 32-87.7-26.2-149.8-5.5-212.1 15.3-64.5 21.5-129.4 43.1-223.3 13.1-18.5-5.9-30.3-23.8-30.3-43.3zM336 256c0-53-35.8-96-80-96s-80 43-80 96 35.8 96 80 96 80-43 80-96zM120 413.6c4.4 0 7.9-3.8 7.2-8.1-4.6-27.8-27-49.5-55.2-53-4.4-.5-8 3.1-8 7.5l0 39.9c0 3.6 2.4 6.8 6 7.7 17.9 4.2 34.3 6.1 50 6.1zm318.5-51.1c5 .8 9.5-3 9.5-8l0-42.6c0-4.4-3.6-8.1-8-7.5-25.2 3.1-45.9 20.9-53.2 44.6-1.4 4.7 2.3 9.1 7.2 9.2 14.2 .4 29 1.7 44.4 4.3zM448 152l0-39.9c0-3.6-2.5-6.8-6-7.7-17.9-4.2-34.3-6.1-50-6.1-4.4 0-7.9 3.8-7.2 8.1 4.6 27.8 27 49.5 55.2 53 4.4 .5 8-3.1 8-7.5zM125.2 162.9c1.4-4.7-2.3-9.1-7.2-9.2-14.2-.4-29-1.7-44.4-4.3-5-.8-9.5 3-9.5 8L64 200c0 4.4 3.6 8.1 8 7.5 25.2-3.1 45.9-20.9 53.2-44.6z\"],\n \"toilet-paper-slash\": [576, 512, [], \"e072\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-94.5-94.5c40.2-23 69.5-96.9 69.5-184.6 0-106-43-192-96-192s-96 86-96 192c0 24.1 2.2 47.2 6.3 68.4L304 238.2 304 224c0-58.9 11.8-114.5 33.2-157.2 5.9-11.7 13.1-23.7 21.9-34.8L128 32c-8.3 0-16.4 2.1-24.1 6.1l-63-63zM32 224l0 264c0 30.9 25.1 56 56 56l160 0c30.9 0 56-25.1 56-56l0-114.2-256-256C37.9 148.2 32 184.7 32 224zm416 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"],\n \"file-shield\": [576, 512, [], \"e4f0\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0C261 469.4 240 414.5 240 356.4l0-31.1c0-34.4 22-65 54.7-75.9l112-37.3c3.1-1 6.2-1.8 9.3-2.5l0-39.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zm87.8 312.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"],\n \"text-height\": [576, 512, [], \"f034\", \"M40 32C17.9 32 0 49.9 0 72l0 56c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 32zM438.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-229.5 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 229.5-9.4-9.4z\"],\n \"face-grin-tongue\": [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm16 240l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n \"file-signature\": [640, 512, [], \"f573\", \"M64.1 64c0-35.3 28.7-64 64-64L277.6 0c17 0 33.3 6.7 45.3 18.7L429.3 125.3c12 12 18.7 28.3 18.7 45.3l0 97.5-132 132-42.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4-11.3 0-21.9 5.1-28.9 13.9L133.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l31.5 0c-.9 3.1-1.7 6.3-2.3 9.5l-10.9 54.5-146.2 0c-35.3 0-64-28.7-64-64l0-384zm208-5.5l0 93.5c0 13.3 10.7 24 24 24l93.5 0-117.5-117.5zm60.2 408.4c2.5-12.4 8.6-23.8 17.5-32.7l118.9-118.9 80 80-118.9 118.9c-8.9 8.9-20.3 15-32.7 17.5l-59.6 11.9c-.9 .2-1.9 .3-2.9 .3-8 0-14.6-6.5-14.6-14.6 0-1 .1-1.9 .3-2.9l11.9-59.6zm267.8-123l-28.8 28.8-80-80 28.8-28.8c22.1-22.1 57.9-22.1 80 0s22.1 57.9 0 80z\"],\n \"building-wheat\": [640, 512, [], \"e4db\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l249.3 0c-6-14.8-9.3-31-9.3-48 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-25.2 14.5-46.9 35.6-57.4-2.4-7.1-3.6-14.7-3.6-22.6l0-32C368 96.7 388 70.1 415.9 60.1 413.9 26.6 386 0 352 0L96 0zM208 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM128 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm352 0l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16zm16 128c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zm0 112c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zM496 528c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zm-16-96c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0zm16-128c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zM512 64c-13.3 0-24 10.7-24 24l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-13.3-10.7-24-24-24zm96 64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM440 104c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24z\"],\n \"plug-circle-minus\": [640, 512, [], \"e55e\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"],\n \"futbol\": [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"],\n \"circle-plus\": [512, 512, [\"plus-circle\"], \"f055\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\n \"brazilian-real-sign\": [512, 512, [], \"e46c\", \"M400 16c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48.9 0c-26 0-47.1 21.1-47.1 47.1 0 22.5 15.9 41.8 37.9 46.2l32.8 6.6c51.9 10.4 89.3 56 89.3 109 0 50.6-33.8 93.3-80 106.7l0 20.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.9 0c26 0 47.1-21.1 47.1-47.1 0-22.5-15.9-41.8-37.9-46.2l-32.8-6.6c-51.9-10.4-89.3-56-89.3-109 0-50.6 33.8-93.2 80-106.7L368 48c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160z\"],\n \"star-and-crescent\": [512, 512, [9770], \"f699\", \"M0 256c0-141.4 114.6-256 256-256 33 0 64.6 6.3 93.6 17.7 7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5 7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512 114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"],\n \"face-surprise\": [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-48 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"hospital-user\": [640, 512, [], \"f80d\", \"M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM248 88c-8.8 0-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0zM416 304a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z\"],\n \"arrow-down-up-lock\": [576, 512, [], \"e4b0\", \"M262.6 422.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l25.4 25.4 0-114.7-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l256 0 0-114.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-25.4-25.4 0 94.8c-25.3 20.3-42.8 50.1-47 83.9l-145 0 0 114.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM192 32l0 144-64 0 0-144c0-17.7 14.3-32 32-32s32 14.3 32 32zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"folder\": [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z\"],\n \"holly-berry\": [512, 512, [], \"f7aa\", \"M256.2 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM277 383.8c1 .1 2.1 .2 3.2 .2 39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.9 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7 4.2 9.7 5.8 20.8 3.7 32.3l-6.3 34.8c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.8 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32c0 34.6-28.1 62.7-62.7 62.7-16.4 0-27.9 16-22.8 31.6L15 396.4c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.4 489.4 22.8 505.8 40.7 501l19.4-5.3c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7 16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5l-19.4 5.3c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384.2 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"venus-double\": [640, 512, [9890], \"f226\", \"M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144.1 173.1 .1 1 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-82-15-144.1-86.8-144.1-173.1 0-97.2 78.8-176 176-176S368 78.8 368 176zM357.5 327c14.4-15.8 26.6-33.7 36.1-53.1 16.1 9 34.7 14.1 54.5 14.1 61.9 0 112-50.1 112-112S509.9 64 448 64c-19.8 0-38.3 5.1-54.5 14.1-9.5-19.4-21.6-37.3-36.1-53.1 26.4-15.9 57.4-25 90.5-25 97.2 0 176 78.8 176 176 0 86.3-62.1 158.1-144.1 173.1 .1 .9 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-21.1-3.9-40.9-11.5-58.6-22.2z\"],\n \"clipboard-question\": [384, 512, [], \"e4e3\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 248c16.1 0 29.2 13.1 29.2 29.2 0 8.7-3.1 13.9-6.9 17.7-4.5 4.4-10.7 7.5-16.8 9.5-14.9 5-29.5 19.3-29.5 39.5 0 13.3 10.7 24 24 24 11.5 0 21.2-8.1 23.5-19 19.2-7.1 53.7-26.3 53.7-71.8 0-42.6-34.6-77.2-77.2-77.2s-77.2 34.6-77.2 77.2c0 13.3 10.7 24 24 24s24-10.7 24-24c0-16.1 13.1-29.2 29.2-29.2zm28 168c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28z\"],\n \"hotdog\": [512, 512, [127789], \"f80f\", \"M288 0c-20.5 0-40.1 8.1-54.6 22.6L22.6 233.4C8.1 247.9 0 267.5 0 288 0 300.2 2.9 312.1 8.2 322.7L322.7 8.2C312.1 2.9 300.2 0 288 0zM224 512c20.5 0 40.1-8.1 54.6-22.6L489.4 278.6c14.5-14.5 22.6-34.1 22.6-54.6 0-12.2-2.9-24.1-8.2-34.7L189.3 503.8c10.7 5.4 22.6 8.2 34.7 8.2zM456.6 168.6c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-288 288c-31.2 31.2-31.2 81.9 0 113.1s81.9 31.2 113.1 0l288-288z\"],\n \"arrow-up-from-bracket\": [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z\"],\n \"microscope\": [512, 512, [128300], \"f610\", \"M176 0c-26.5 0-48 21.5-48 48l0 208c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64 32 0c70.7 0 128 57.3 128 128S390.7 448 320 448L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16.9 0c30.4-34 48.9-78.8 48.9-128 0-106-86-192-192-192l-32 0 0-80c0-26.5-21.5-48-48-48L176 0zM120 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"],\n \"cloud\": [576, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-51.6-30.5-96.1-74.5-116.3 6.7-13.1 10.5-28 10.5-43.7 0-53-43-96-96-96-17.7 0-34.2 4.8-48.4 13.1-24.1-45.8-72.2-77.1-127.6-77.1-79.5 0-144 64.5-144 144 0 8 .7 15.9 1.9 23.5-56.9 19.2-97.9 73.1-97.9 136.5z\"],\n \"baseball-bat-ball\": [576, 512, [], \"f432\", \"M464.1 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm8.4-576c15.1 0 29.7 5.8 40.7 16.2l47.2 44.8c12.6 12 19.1 29 17.5 46.3-1.2 13.3-7 25.8-16.5 35.2L363.1 309c-7.3 7.3-15.7 13.4-25 18L206 393c-9.2 4.6-17.7 10.7-25 18l-92 92 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7l-1.8-1.7-48-48-1.7-1.8c-7.7-9.4-7.1-23.3 1.7-32.1s22.7-9.3 32.1-1.7l1.8 1.7 92-92c7.3-7.3 13.4-15.7 18-25l66.1-132.1c4.6-9.2 10.7-17.7 18-25L430.8-14.7C441.9-25.8 456.9-32 472.5-32z\"],\n \"car-rear\": [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4l26.1 74.6-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 96c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-40.6c19.1-11.1 32-31.7 32-55.4l0-96c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 288l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"thumbtack-slash\": [576, 512, [\"thumb-tack-slash\"], \"e68f\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L417.8 352 448 352c10 0 19.5-4.7 25.5-12.7s8-18.4 5.2-28.1L475 297.8c-12.4-43.3-41-78.5-78.2-99.7L386.5 64 416 64c17.7 0 32-14.3 32-32S433.7 0 416 0L160 0c-7.4 0-14.1 2.5-19.5 6.6L190.1 56.3 185.3 119.4 41-24.9zM282.2 352L149.7 219.6c-22.7 20.5-39.8 47.4-48.7 78.3l-3.8 13.4c-2.8 9.7-.8 20 5.2 28.1S118 352 128 352l154.2 0zM256 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112-64 0 0 112z\"],\n \"plus-minus\": [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-128zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z\"],\n \"house-circle-check\": [640, 512, [], \"e509\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM553.4 339.1c-7.1-5.2-17.1-3.6-22.3 3.5l-53 72.8-26.7-26.8c-6.2-6.2-16.4-6.2-22.6 0-6.2 6.2-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.7s8.9-2.8 11.7-6.6l64-88c5.2-7.1 3.6-17.1-3.5-22.3z\"],\n \"calendar-day\": [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z\"],\n \"circle\": [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"mobile-vibrate\": [576, 512, [], \"e816\", \"M384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-384c0-35.3 28.7-64 64-64L384 0zM248 416c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM48.8 133.4c9.4-7.7 23.3-7.1 32.1 1.7 9.4 9.4 9.4 24.6 0 33.9l-31 31 25.4 25.4 2.9 3.2c6.3 7.7 9.8 17.4 9.8 27.4 0 11.5-4.6 22.5-12.7 30.6l-25.4 25.4 31 31 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7L47 377 12.7 342.6C5.6 335.5 1.2 326.2 .2 316.3L0 312 .2 307.7c1-9.9 5.4-19.2 12.5-26.3L38.1 256 12.7 230.6C5.6 223.5 1.2 214.2 .2 204.3L0 200 .2 195.7c1-9.9 5.4-19.2 12.5-26.3L47 135 48.8 133.4zM495 135c8.8-8.8 22.7-9.3 32.1-1.7l1.8 1.7 34.3 34.3c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-25.4 25.4 25.4 25.4c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-34.3 34.3-1.8 1.7c-9.4 7.7-23.3 7.1-32.1-1.7s-9.3-22.7-1.7-32.1l1.7-1.8 31-31-25.4-25.4c-8.1-8.1-12.7-19.1-12.7-30.6 0-10 3.5-19.7 9.8-27.4l2.9-3.2 25.4-25.4-31-31c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"face-grin-squint\": [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM122.6 143.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"],\n \"users-between-lines\": [576, 512, [], \"e591\", \"M24 16l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 64C10.7 64 0 53.3 0 40S10.7 16 24 16zm0 448l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM392 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0C138.6 318.3 128 349.9 128 384l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 416 32 406.4 32 394.7L32 384c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm152-16a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 384c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8z\"],\n \"house-medical-circle-xmark\": [640, 512, [], \"e513\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z\"],\n \"table-list\": [448, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 224l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 352l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64z\"],\n \"flask-vial\": [640, 512, [], \"e4f3\", \"M184.6 411.5c-3.1 7.3-5.4 14.9-6.8 22.6-14.5 8.8-31.5 13.9-49.8 13.9-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 255.6-39.4 91.9zM96 64l0 128 64 0 0-128-64 0zM352 0L512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.4 91.3 213c2.3 5.4 3.8 11.1 4.4 17l.3 .6-.3 0c.2 1.8 .3 3.6 .3 5.4 0 32.3-26.2 58.6-58.6 58.6l-266.9 0c-32.3 0-58.6-26.2-58.6-58.6 0-1.8 .1-3.6 .3-5.4l-.3 0 .3-.6c.6-5.8 2.1-11.6 4.4-17L320 217.4 320 64c-17.7 0-32-14.3-32-32S302.3 0 320 0l32 0zM453.2 242.6c-3.4-8-5.2-16.5-5.2-25.2l0-153.4-64 0 0 153.4c0 8.7-1.8 17.2-5.2 25.2l-33.2 77.4 140.7 0-33.2-77.4z\"],\n \"circle-exclamation\": [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-192a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.6 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z\"],\n \"taxi\": [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32l0 32-8.9 0c-42 0-79.1 27.3-91.6 67.4l-23 73.5C14.5 219.1 0 243.9 0 272L0 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 320 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-176c0-28.1-14.5-52.9-36.4-67.1l-23-73.5C440.1 91.3 402.9 64 360.9 64l-8.9 0 0-32c0-17.7-14.3-32-32-32L192 0zM151.1 128l209.9 0c14 0 26.4 9.1 30.5 22.5l13 41.5-296.9 0 13-41.5c4.2-13.4 16.5-22.5 30.5-22.5zM96 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"text-slash\": [576, 512, [\"remove-format\"], \"f87d\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L322.7 256.9 368.2 96 471 96 465 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C545.6 61.3 522.7 32 491.5 32l-319 0c-19.8 0-37.3 12.1-44.5 30.1l-87-87zM180.4 114.5l4.6-18.5 116.7 0-30.8 109-90.5-90.5zM241 310.8L211.3 416 160 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 15.1-53.3-51.9-51.9z\"],\n \"people-pulling\": [576, 512, [], \"e535\", \"M80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32 9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8l-20.5-122.7 15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7 8.6 3.6 18 3.1 25.9-.7 3.4-1.6 6.6-3.9 9.3-6.7 3.1-3.2 5.5-7 7.1-11.4 .1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-21.4-10.7-15.3-36.8c-17.1-41.1-57.3-67.9-101.9-67.9-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"],\n \"backward\": [576, 512, [9194], \"f04a\", \"M204.3 43.1C215.9 32 233 28.9 247.7 35.2S272 56 272 72l0 136.3 172.3-165.1C455.9 32 473 28.9 487.7 35.2S512 56 512 72l0 368c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9L272 303.7 272 440c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9l-192-184C4.5 277.3 0 266.9 0 256s4.5-21.3 12.3-28.9l192-184z\"],\n \"car-burst\": [640, 512, [\"car-crash\"], \"f5e1\", \"M232 16.1l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24zM32 168.1l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM281.5 70.6c9.4 9.4 24.6 9.4 33.9 0l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L281.5 36.6c-9.4 9.4-9.4 24.6 0 33.9zm-181 215l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352.9 175.4L505 216.2c6.4 1.7 11.1 7.3 11.8 13.9l7.2 74-231.5-62 43.2-60.5c3.9-5.4 10.7-7.9 17.2-6.2zM223.6 228.5l-2.1 2.9c-21.7 5.5-39.9 22.3-46.1 45.5-4.1 15.5-12.4 46.4-24.8 92.7l-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 278.2 74.5-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6 4.1-15.5 12.4-46.4 24.8-92.7l8.3-30.9c6.2-23.2-1.1-46.8-17.2-62.5l-.3-3.6-10-103c-3.2-33.2-26.7-60.9-58.9-69.5L369.5 113.6c-32.2-8.6-66.4 3.6-85.8 30.8l-60.2 84.2zm48.7 57.8a32 32 0 1 1 -16.6 61.8 32 32 0 1 1 16.6-61.8zm208.1 88.9a32 32 0 1 1 61.8 16.6 32 32 0 1 1 -61.8-16.6z\"],\n \"link\": [576, 512, [128279, \"chain\"], \"f0c1\", \"M419.5 96c-16.6 0-32.7 4.5-46.8 12.7-15.8-16-34.2-29.4-54.5-39.5 28.2-24 64.1-37.2 101.3-37.2 86.4 0 156.5 70 156.5 156.5 0 41.5-16.5 81.3-45.8 110.6l-71.1 71.1c-29.3 29.3-69.1 45.8-110.6 45.8-86.4 0-156.5-70-156.5-156.5 0-1.5 0-3 .1-4.5 .5-17.7 15.2-31.6 32.9-31.1s31.6 15.2 31.1 32.9c0 .9 0 1.8 0 2.6 0 51.1 41.4 92.5 92.5 92.5 24.5 0 48-9.7 65.4-27.1l71.1-71.1c17.3-17.3 27.1-40.9 27.1-65.4 0-51.1-41.4-92.5-92.5-92.5zM275.2 173.3c-1.9-.8-3.8-1.9-5.5-3.1-12.6-6.5-27-10.2-42.1-10.2-24.5 0-48 9.7-65.4 27.1L91.1 258.2c-17.3 17.3-27.1 40.9-27.1 65.4 0 51.1 41.4 92.5 92.5 92.5 16.5 0 32.6-4.4 46.7-12.6 15.8 16 34.2 29.4 54.6 39.5-28.2 23.9-64 37.2-101.3 37.2-86.4 0-156.5-70-156.5-156.5 0-41.5 16.5-81.3 45.8-110.6l71.1-71.1c29.3-29.3 69.1-45.8 110.6-45.8 86.6 0 156.5 70.6 156.5 156.9 0 1.3 0 2.6 0 3.9-.4 17.7-15.1 31.6-32.8 31.2s-31.6-15.1-31.2-32.8c0-.8 0-1.5 0-2.3 0-33.7-18-63.3-44.8-79.6z\"],\n \"backward-step\": [384, 512, [\"step-backward\"], \"f048\", \"M363 36.8c-12.9-7-28.7-6.3-41 1.8L64 208.1 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144.1 258 169.6c12.3 8.1 28 8.8 41 1.8s21-20.5 21-35.2l0-368c0-14.7-8.1-28.2-21-35.2z\"],\n \"x\": [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"],\n \"circle-user\": [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2 35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z\"],\n \"rectangle-list\": [512, 512, [\"list-alt\"], \"f022\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm96 256a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm120-56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"hand\": [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z\"],\n \"van-shuttle\": [576, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 64C28.7 64 0 92.7 0 128L0 336c0 35.3 28.7 64 64 64l.4 0c4 44.9 41.7 80 87.6 80s83.6-35.1 87.6-80l104.7 0c4 44.9 41.7 80 87.6 80 46.1 0 83.9-35.4 87.7-80.5 31.7-3.8 56.3-30.8 56.3-63.5l0-101.3c0-13.8-4.5-27.3-12.8-38.4l-80-106.7C471.1 73.5 452.1 64 432 64L64 64zM504 224l-120 0 0-96 48 0 72 96zM64 224l0-96 96 0 0 96-96 0zm160 0l0-96 96 0 0 96-96 0zM392 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],\n \"stairs\": [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z\"],\n \"horse-head\": [512, 512, [], \"f7ab\", \"M0 464L0 316.9C0 208.5 68.3 111.8 170.5 75.6L340.2 15.5c21.4-7.6 43.8 8.3 43.8 30.9 0 11-5.5 21.2-14.6 27.3L336 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0c-6.3 0-12.5-.5-18.6-1.5-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2-4.4-7.7-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4 0 20.3-16.5 36.8-36.8 36.8L48 512c-26.5 0-48-21.5-48-48zM328 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"vault\": [512, 512, [], \"e2c5\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l256 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM256 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM64 256a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm384-48c0 17.8-9.7 33.3-24 41.6l0 78.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-78.4c-14.3-8.3-24-23.8-24-41.6 0-26.5 21.5-48 48-48s48 21.5 48 48z\"],\n \"drum-steelpan\": [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4 0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5 47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4-47.1 19.9-55 39.9-55 49.8s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5 0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8c-.9 4.3-1.4 8.7-1.4 13.2 0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2-19.8-1.8-40.8-2.8-62.6-2.8s-42.8 1-62.6 2.8z\"],\n \"thumbs-up\": [512, 512, [128077, 61575], \"f164\", \"M80 160c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 192c0-17.7 14.3-32 32-32l48 0zM270.6 16C297.9 16 320 38.1 320 65.4l0 4.2c0 6.8-1.3 13.6-3.8 19.9L288 160 448 160c26.5 0 48 21.5 48 48 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 23.4-16.8 42.9-39 47.1 4.4 7.3 7 15.8 7 24.9 0 22.2-15 40.8-35.4 46.3 2.2 5.5 3.4 11.5 3.4 17.7 0 26.5-21.5 48-48 48l-87.9 0c-36.3 0-71.6-12.4-99.9-35.1L184 435.2c-15.2-12.1-24-30.5-24-50l0-186.6c0-14.9 3.5-29.6 10.1-42.9L226.3 43.3C234.7 26.6 251.8 16 270.6 16z\"],\n \"stamp\": [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47 12.6-16.2 20.1-36.6 20.1-58.8 0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8 10.7 13.8 19.9 29.6 19.9 47 0 29.9-24.3 54.2-54.2 54.2L112 256c-61.9 0-112 50.1-112 112 0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM56 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L56 464z\"],\n \"menorah\": [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32S96 81.7 96 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64-192 0c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32z\"],\n \"children\": [640, 512, [], \"e4e1\", \"M160.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-72 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L86.7 285.5 58 323.3c-10.7 14.1-30.8 16.8-44.8 6.2S-3.7 298.7 7 284.7L65.9 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47L314 284.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.7-37.8 31.1 93.4c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5-12.9 20.5c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.6 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10l-12.9-20.5 0 179.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z\"],\n \"chart-line\": [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7 262.6 153.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l73.4-73.4 57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"],\n \"square-envelope\": [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM209.1 267.9L108.4 207.4c-7.7-4.6-12.4-12.9-12.4-21.9 0-14.1 11.4-25.5 25.5-25.5l204.9 0c14.1 0 25.5 11.4 25.5 25.5 0 9-4.7 17.3-12.4 21.9L238.9 267.9c-4.5 2.7-9.6 4.1-14.9 4.1s-10.4-1.4-14.9-4.1zM352 237.3l0 82.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-82.7 96.7 58C202.1 301 213 304 224 304s21.9-3 31.3-8.7l96.7-58z\"],\n \"ban-smoking\": [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8l79.2 79.2-50.7 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l146.7 0 92.5 92.5c-31.4 22.4-69.8 35.5-111.2 35.5-106 0-192-86-192-192 0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l18.7 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L269.3 224 144.8 99.5c31.4-22.4 69.8-35.5 111.2-35.5 106 0 192 86 192 192 0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16z\"],\n \"truck-front\": [448, 512, [], \"e2b7\", \"M0 112C0 67.8 35.8 32 80 32l288 0c44.2 0 80 35.8 80 80l0 256c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 112zm96 80l0 64 256 0 0-64c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32zm32 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm224 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"building\": [384, 512, [127970, 61687], \"f1ad\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"],\n \"bullseye\": [512, 512, [], \"f140\", \"M448 256a192 192 0 1 0 -384 0 192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"arrow-left-long\": [576, 512, [\"long-arrow-left\"], \"f177\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 544 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-434.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z\"],\n \"chess-rook\": [384, 512, [9820], \"f447\", \"M0 32L0 133.5c0 17 6.7 33.3 18.7 45.3L64 224 64 384 7.8 454.3C2.7 460.6 0 468.4 0 476.5 0 496.1 15.9 512 35.5 512l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-56.2-70.3 0-160 45.3-45.3c12-12 18.7-28.3 18.7-45.3L384 32c0-17.7-14.3-32-32-32L320 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32c0-17.7-14.3-32-32-32L176 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32C96 14.3 81.7 0 64 0L32 0C14.3 0 0 14.3 0 32z\"],\n \"blender-phone\": [576, 512, [], \"f6b6\", \"M151.4 13.2c10.2 5.8 14.5 18.4 10 29.3L138.2 98.8c-3.9 9.6-13.7 15.4-24 14.4l-20.2-2C78.7 152.9 78 198.9 91.9 241.1l22.4-2.2c10.3-1 20 4.8 24 14.4l23.2 56.3c4.5 10.9 .2 23.4-10 29.3l-2.9 1.6c-33.6 19.2-81.7 16.2-106.2-21.6-56.3-86.6-56.3-199.1 0-285.7 24.6-37.7 72.7-40.7 106.2-21.6l2.9 1.6zM224 336L193.7 17.5C192.8 8.1 200.2 0 209.6 0l324 0c21.3 0 36.6 20.3 30.8 40.8L553.1 80 440 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0zm8 48l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"arrow-turn-up\": [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"],\n \"bicycle\": [640, 512, [128690], \"f206\", \"M331.7 43.3C336 36.3 343.7 32 352 32l104 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-65.6 0 72.2 148.4c10.7-2.9 21.9-4.4 33.4-4.4 70.7 0 128 57.3 128 128s-57.3 128-128 128-128-57.3-128-128c0-42 20.2-79.2 51.4-102.6l-20.4-41.9-73.5 147c-2.3 4.8-6.3 8.8-11.4 11.2-.6 .3-1.2 .5-1.8 .7-2.9 1.1-5.9 1.6-8.9 1.5L271 368c-7.9 63.1-61.7 112-127 112-70.7 0-128-57.3-128-128S73.3 224 144 224c10.8 0 21.2 1.3 31.2 3.8l28.5-56.9-11.5-26.9-40.2 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c9.6 0 18.3 5.7 22.1 14.5l14.3 33.5 123.7 0-37.7-77.5c-3.6-7.4-3.2-16.2 1.2-23.2zM228.5 228.7l-45.6 91.3 84.8 0-39.1-91.3zM305.7 287l47.5-95-88.2 0 40.7 95zm168.7 75.5l-29.7-61c-12.8 13-20.7 30.8-20.7 50.5 0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72c-2.7 0-5.5 .2-8.1 .5l29.7 61c5.8 11.9 .8 26.3-11.1 32.1s-26.3 .8-32.1-11.1zM149.2 368c-20.2 0-33.4-21.3-24.3-39.4l24.2-48.5c-1.7-.1-3.4-.2-5.1-.2-39.8 0-72 32.2-72 72s32.2 72 72 72c34.3 0 62.9-23.9 70.2-56l-65 0z\"],\n \"circle-arrow-down\": [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM239 377l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l39 39 0-150.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 150.1 39-39c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0z\"],\n \"gear\": [512, 512, [9881, \"cog\"], \"f013\", \"M195.1 9.5C198.1-5.3 211.2-16 226.4-16l59.8 0c15.2 0 28.3 10.7 31.3 25.5L332 79.5c14.1 6 27.3 13.7 39.3 22.8l67.8-22.5c14.4-4.8 30.2 1.2 37.8 14.4l29.9 51.8c7.6 13.2 4.9 29.8-6.5 39.9L447 233.3c.9 7.4 1.3 15 1.3 22.7s-.5 15.3-1.3 22.7l53.4 47.5c11.4 10.1 14 26.8 6.5 39.9l-29.9 51.8c-7.6 13.1-23.4 19.2-37.8 14.4l-67.8-22.5c-12.1 9.1-25.3 16.7-39.3 22.8l-14.4 69.9c-3.1 14.9-16.2 25.5-31.3 25.5l-59.8 0c-15.2 0-28.3-10.7-31.3-25.5l-14.4-69.9c-14.1-6-27.2-13.7-39.3-22.8L73.5 432.3c-14.4 4.8-30.2-1.2-37.8-14.4L5.8 366.1c-7.6-13.2-4.9-29.8 6.5-39.9l53.4-47.5c-.9-7.4-1.3-15-1.3-22.7s.5-15.3 1.3-22.7L12.3 185.8c-11.4-10.1-14-26.8-6.5-39.9L35.7 94.1c7.6-13.2 23.4-19.2 37.8-14.4l67.8 22.5c12.1-9.1 25.3-16.7 39.3-22.8L195.1 9.5zM256.3 336a80 80 0 1 0 -.6-160 80 80 0 1 0 .6 160z\"],\n \"mars-and-venus-burst\": [640, 512, [], \"e523\", \"M464-32c0 17.7 14.3 32 32 32l34.7 0-63 63c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-37-11.4-71.4-31-99.8l63-63 0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112c0-17.7-14.3-32-32-32L496-64c-17.7 0-32 14.3-32 32zM368 96a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM190.9-21.9C188.4-28 182.6-32 176-32s-12.4 4-14.9 10.1l-29.4 74-76.2-23.1c-6.3-1.9-13.1 .2-17.2 5.3S33.8 46.5 37 52.2l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2-5.6 79.4c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L152.1 268c-5.3-19.1-8.1-39.2-8.1-60 0-65.4 28-124.2 72.6-165.1L190.9-21.9z\"],\n \"otter\": [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5 23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6 6.6 0 13.1-1.5 19.1-4.5 9.3-4.7 16.4-8.2 21.2-10.6L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4l-12.9-6.4-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-64c0-23.7 12.9-44.4 32-55.4 9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48 8.8 0 16 7.2 16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1 0 0c0 123.7-100.3 224-224 224l-160.6 0C132 480 32 380 32 256.6l0-39.8c-10.1-14.6-16-32.3-16-51.4l0-21.4 0-1.4C6.7 139.3 0 130.5 0 120 0 106.7 10.7 96 24 96l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24 0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3 12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3-5.1 .9-10.3 1.3-15.6 1.3-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"],\n \"circle-chevron-left\": [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"],\n \"circle-question\": [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-336c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"walkie-talkie\": [384, 512, [], \"f8ef\", \"M88-32c13.3 0 24 10.7 24 24l0 72 48 0c0-17.7 14.3-32 32-32s32 14.3 32 32l32 0c0-17.7 14.3-32 32-32s32 14.3 32 32l16 0c26.5 0 48 21.5 48 48l0 160.9c0 9.9-2.3 19.7-6.8 28.6l-20.2 40.4c-3.3 6.7-5.1 14-5.1 21.5l0 84.7c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-84.7c0-7.5-1.7-14.8-5.1-21.5L6.8 301.5C2.3 292.6 0 282.8 0 272.9L0 112C0 85.5 21.5 64 48 64l16 0 0-72c0-13.3 10.7-24 24-24zm32 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"user-group\": [576, 512, [128101, \"user-friends\"], \"f500\", \"M64 128a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM0 464c0-97.2 78.8-176 176-176s176 78.8 176 176l0 6c0 23.2-18.8 42-42 42L42 512c-23.2 0-42-18.8-42-42l0-6zM432 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240c79.5 0 144 64.5 144 144l0 22.4c0 23-18.6 41.6-41.6 41.6l-144.8 0c6.6-12.5 10.4-26.8 10.4-42l0-6c0-51.5-17.4-98.9-46.5-136.7 22.6-14.7 49.6-23.3 78.5-23.3z\"],\n \"house-chimney\": [512, 512, [63499, \"home-lg\"], \"e3af\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM240 320c-26.5 0-48 21.5-48 48l0 96 128 0 0-96c0-26.5-21.5-48-48-48l-32 0z\"],\n \"right-from-bracket\": [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M505 273c9.4-9.4 9.4-24.6 0-33.9L361 95c-6.9-6.9-17.2-8.9-26.2-5.2S320 102.3 320 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L505 273zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"],\n \"file\": [384, 512, [128196, 128459, 61462], \"f15b\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z\"],\n \"plane-slash\": [576, 512, [], \"e069\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-183.4-183.4 7.1-7.7 127.3 0c30.9 0 56-25.1 56-56s-25.1-56-56-56L392.7 200 233.5 26.4C227.5 19.8 218.9 16 209.9 16l-43.7 0c-10.9 0-18.6 10.7-15.2 21.1L175.1 109.2 41-24.9zM130.2 200l-24.6 0-52.8-66c-3-3.8-7.6-6-12.5-6l-19.8 0c-10.4 0-18 9.8-15.5 19.9L32 256 5 364.1C2.4 374.2 10.1 384 20.5 384l19.8 0c4.9 0 9.5-2.2 12.5-6l52.8-66 99.7 0-54.3 162.9c-3.5 10.4 4.3 21.1 15.2 21.1l43.7 0c9 0 17.5-3.8 23.6-10.4L320.7 390.5 130.2 200z\"],\n \"cloud-showers-heavy\": [512, 512, [], \"f740\", \"M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm6.8 79.6l-32 96C66.6 508.2 53 515 40.4 510.8S21 493 25.2 480.4l32-96C61.4 371.8 75 365 87.6 369.2S107 387 102.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S141 493 145.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S227 387 222.8 399.6zm112 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S253 493 257.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S339 387 334.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S373 493 377.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S459 387 454.8 399.6z\"],\n \"person-falling\": [512, 512, [], \"e546\", \"M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 5.4c0 45-23.6 86.6-62.1 109.8l-4.6 2.8C131.4 184.7 96 247.1 96 314.6L96 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-69.4c0-16.7 3.3-33 9.4-48L359.2 500.2c11.1 13.7 31.3 15.8 45 4.7s15.8-31.3 4.7-45L295.2 320 400 320 438.4 371.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C437.3 263.1 423.1 256 408 256l-89 0-62.9-75.5c40.3-36 63.9-87.9 63.9-143.1l0-5.4zM104 144a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"],\n \"turn-down\": [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S332.9 320 320 320l-64 0 0-160C256 71.6 184.4 0 96 0L32 0C14.3 0 0 14.3 0 32L0 96c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 160-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"],\n \"up-right-and-down-left-from-center\": [512, 512, [\"expand-alt\"], \"f424\", \"M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2S34.1 320.2 41 327l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S177.7 512 168 512z\"],\n \"user-tag\": [640, 512, [], \"f507\", \"M256.1 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.4 304l59.4 0c6.7 0 13.2 .4 19.7 1.1-.9 4.9-1.4 9.9-1.4 15l0 92.1c0 25.5 10.1 49.9 28.1 67.9l31.9 31.9-286.3 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zM352.1 412.2l0-92.1c0-17.7 14.3-32 32-32l92.1 0c12.7 0 24.9 5.1 33.9 14.1l96 96c18.7 18.7 18.7 49.1 0 67.9l-76.1 76.1c-18.7 18.7-49.1 18.7-67.9 0l-96-96c-9-9-14.1-21.2-14.1-33.9zm104-44.2a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"hand-sparkles\": [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.2c-19.2 5.4-34.7 20.4-40.4 40.3l-6.5 22.7-22.7 6.5c-25.2 7.2-42.5 30.2-42.5 56.4 0 22.1 12.4 42 31.4 51.9-27.5 17.8-60.2 28.1-95.4 28.1l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6l-7.3 25.4-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7l25.4 7.3 7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6l7.3-25.4 25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7l-25.4-7.3-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456 570.2 504.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456 487.7 442.2c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408 549.8 359.7c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"],\n \"arrows-to-dot\": [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9S179.1 64 192 64l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9S332.9 448 320 448l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S64 332.9 64 320l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9S448 179.1 448 192l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"face-sad-cry\": [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 171.7C44.4 421.6 0 344 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 88-44.4 165.6-112 211.7L400 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 197.4zM152 196l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm172 20c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"],\n \"dong-sign\": [384, 512, [], \"e169\", \"M288-16c-17.7 0-32 14.3-32 32l0 32-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 72.2c-22.9-15.3-50.4-24.2-80-24.2-79.5 0-144 64.5-144 144S96.5 432 176 432c30 0 57.8-9.1 80.8-24.8 3.3 14.2 16 24.8 31.2 24.8 17.7 0 32-14.3 32-32l0-304 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-32c0-17.7-14.3-32-32-32zM96 288a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464z\"],\n \"people-line\": [576, 512, [], \"e534\", \"M288 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 44.1-128 0 0-44.1C204.7 359 192 337 192 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zm16 104l0-27.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 40.6-112 0zM64 375.4C44.9 364.4 32 343.7 32 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1l0 32c0 32.5 12.1 62.1 32 84.7l0 27.3-112 0 0-40.6zM128 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm320 0a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM24 464l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"square-rss\": [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24 137 0 248 111 248 248 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24 83.9 0 152 68.1 152 152 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"calendar-minus\": [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm24 264c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"chart-diagram\": [512, 512, [], \"e695\", \"M80 32C53.5 32 32 53.5 32 80s21.5 48 48 48l152 0 0 40-48 48-72 0c-39.8 0-72 32.2-72 72l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-13.3 10.7-24 24-24l72 0 48 48 0 40-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-40 48-48 72 0c13.3 0 24 10.7 24 24l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-39.8-32.2-72-72-72l-72 0-48-48 0-40 152 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L80 32z\"],\n \"face-tired\": [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4 6.2 11.7 10.3 24.4 10.3 35.9 0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8S128 405.2 128 400c0-11.6 4.2-24.2 10.3-35.9 6.3-12 15.3-24.3 26.4-35.4zM122.6 159.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"],\n \"hand-point-right\": [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32 0 13.2 4 25.4 10.8 35.6-24.9 8.7-42.8 32.5-42.8 60.4 0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z\"],\n \"arrow-up\": [384, 512, [8593], \"f062\", \"M214.6 17.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 117.3 160 488c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 105.4 105.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"],\n \"cubes-stacked\": [512, 512, [], \"e4e6\", \"M192 32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64zm32 352l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM320 192l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm-182.6-3.9c12.5-12.5 32.8-12.5 45.3 0l45.3 45.3c12.5 12.5 12.5 32.8 0 45.3l-45.3 45.3c-12.5 12.5-32.8 12.5-45.3 0L92.1 278.6c-12.5-12.5-12.5-32.8 0-45.3l45.3-45.3zM32 384l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"],\n \"child-combatant\": [576, 512, [\"child-rifle\"], \"e4e0\", \"M176.5 128a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-16 352l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192.2 20.9 33.2c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-39.9-63.3C266.8 184 223.3 160 176.5 160S86.2 184 61.3 223.6L21.4 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10l20.9-33.2 0 192.2c0 17.7 14.3 32 32 32s32-14.3 32-32zM448.5 0l-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7l0-116.3c0-8.8-7.2-16-16-16z\"],\n \"vest-patches\": [448, 512, [], \"e086\", \"M200 293.9L200 464c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 48C64 21.5 85.5 0 112 0l3.5 0c.3 0 .6 0 1 0 .6 0 1.2 0 1.8 0 18.8 0 34.1 9.7 44.1 18.8 9.3 8.4 28.5 21.2 61.7 21.2s52.4-12.8 61.7-21.2c10-9.1 25.3-18.8 44.1-18.8 .6 0 1.2 0 1.8 0 .3 0 .6 0 1 0L336 0c26.5 0 48 21.5 48 48l0 97.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-104 0c-26.5 0-48-21.5-48-48l0-170.1c0-3.9 .5-7.8 1.4-11.6L303.6 65.4C285.9 77.2 259.8 88 224 88s-61.9-10.8-79.6-22.6l54.2 216.8c1 3.8 1.4 7.7 1.4 11.6zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305 111.5 320.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288 128.5 272.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 40c0 8.8 7.2 16 16 16l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n \"martini-glass-empty\": [512, 512, [\"glass-martini\"], \"f000\", \"M32 32C19.1 32 7.4 39.8 2.4 51.8S.2 77.5 9.4 86.6l214.6 214.6 0 146.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-146.7 214.6-214.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 32 480 32L32 32zM256 242.7L109.3 96 402.7 96 256 242.7z\"],\n \"magnet\": [448, 512, [129522], \"f076\", \"M0 176L0 288C0 411.7 100.3 512 224 512S448 411.7 448 288l0-112-128 0 0 112c0 53-43 96-96 96s-96-43-96-96l0-112-128 0zm0-48l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z\"],\n \"road-barrier\": [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 266.3 149.2 96 64 96 64 64c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3zM362.8 288l74.3 0 5.4-10.7 90.6-181.3-74.3 0-5.4 10.7-90.6 181.3zM202.8 96l-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7-85.2 170.3z\"],\n \"compass-drafting\": [512, 512, [\"drafting-compass\"], \"f568\", \"M99.3 256.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2 0-53 43-96 96-96s96 43 96 96c0 14.3-3.1 27.9-8.8 40.2l44.4 76.7c-23.1 26-53.7 45.1-88.4 53.8L256 191.9 187.9 309.5c21.5 6.8 44.3 10.5 68.1 10.5 70.7 0 133.8-32.7 174.9-84 11.1-13.8 31.2-16 45-5s16 31.2 5 45c-52.7 65.8-133.9 108-224.8 108-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7c-12.8-11.2-24.6-23.5-35.3-36.8-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1zM381.1 407.9c32.5-13 62.4-31 88.9-52.9l35.6 61.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9l-32.3-55.8zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"square-person-confined\": [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9-17.5 0-34.3-6.9-46.6-19.3l-54.7-54.7-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9l41.4 41.4 0-58.7z\"],\n \"plate-wheat\": [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S42.7 64 56 64zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6-6.3 50.2-44.4 89.4-92.6 98.4l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z\"],\n \"sign-hanging\": [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zM208 176l240 0c17.7 0 32 14.3 32 32l0 144c0 17.7-14.3 32-32 32l-240 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32z\"],\n \"car-battery\": [512, 512, [\"battery-car\"], \"f5df\", \"M80 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l16 0zM392 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM64 240c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 216c-13.3 0-24 10.7-24 24z\"],\n \"shirt\": [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M320.2 112c44.2 0 80-35.8 80-80l53.5 0c17 0 33.3 6.7 45.3 18.7L617.6 169.4c12.5 12.5 12.5 32.8 0 45.3l-50.7 50.7c-12.5 12.5-32.8 12.5-45.3 0l-41.4-41.4 0 224c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-224-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0L22.9 214.6c-12.5-12.5-12.5-32.8 0-45.3L141.5 50.7c12-12 28.3-18.7 45.3-18.7l53.5 0c0 44.2 35.8 80 80 80z\"],\n \"paragraph\": [448, 512, [182], \"f1dd\", \"M160 0L416 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-416-48 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160-48 0C71.6 320 0 248.4 0 160S71.6 0 160 0z\"],\n \"envelopes-bulk\": [576, 512, [\"mail-bulk\"], \"f674\", \"M112 0C85.5 0 64 21.5 64 48l0 160 80 0 0-32c0-53 43-96 96-96l208 0 0-32c0-26.5-21.5-48-48-48L112 0zM240 128c-26.5 0-48 21.5-48 48l0 32 80 0c53 0 96 43 96 96l0 112 160 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-288 0zm200 64l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zM48 256c-26.5 0-48 21.5-48 48l0 10.4 156.6 86.2c1.1 .6 2.2 .9 3.4 .9s2.4-.3 3.4-.9L320 314.4 320 304c0-26.5-21.5-48-48-48L48 256zM320 369.2L186.6 442.6c-8.1 4.5-17.3 6.8-26.6 6.8s-18.4-2.4-26.6-6.8L0 369.2 0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-94.8z\"],\n \"guitar\": [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6-11 11-18 24.6-21.4 39.6-3.7 16.6-19.1 30.7-36.1 31.6-25.6 1.3-49.3 10.7-67.3 28.6-44.8 44.8-36.4 125.8 18.7 180.9S183.6 528 228.4 483.2c17.9-17.9 27.4-41.7 28.6-67.3 .9-17 15-32.3 31.6-36.1 15-3.4 28.6-10.5 39.6-21.4 31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\n \"suitcase\": [512, 512, [129523], \"f0f2\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 424 224 0 0-424c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM416 96l0 384 32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0zM96 480l0-384-32 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0z\"],\n \"circle-up\": [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm11.3-387.3l104 104c4.6 4.6 5.9 11.5 3.5 17.4S366.5 256 360 256l-56 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-56 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l104-104c6.2-6.2 16.4-6.2 22.6 0z\"],\n \"f\": [320, 512, [102], \"46\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"],\n \"xmarks-lines\": [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"],\n \"earth-oceania\": [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 150.6c0-12.5 10.1-22.6 22.6-22.6l41.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16zM432 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM411.3 379.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM224 432c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-96-80c-17.7 0-32-14.3-32-32l0-18.7c0-8.5 3.4-16.6 9.4-22.6l48-48c4.2-4.2 10-6.6 16-6.6l6.6 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16 7.2-16 16-16l6.6 0c6 0 11.8 2.4 16 6.6l48 48c6 6 9.4 14.1 9.4 22.6l0 50.7c0 17.7-14.3 32-32 32l-50.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L128 352z\"],\n \"comment-slash\": [576, 512, [], \"f4b3\", \"M41-25C31.6-34.3 16.4-34.3 7-25S-2.3-.4 7 9L535 537c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.6-96.6c44.4-43.2 71.6-101.8 71.6-166.5 0-132.5-114.6-240-256-240-63 0-120.8 21.4-165.4 56.8L41-25zm19.4 155C42.2 163 32 200.3 32 239.9 32 294.2 51.2 344.2 83.6 384.4L34.8 476.7c-4.8 9-3.3 20 3.6 27.5S56.1 514 65.5 510l118.4-50.7c31.8 13.3 67.1 20.7 104.1 20.7 36.4 0 70.9-7.1 102.3-19.9L60.3 130.1z\"],\n \"play\": [448, 512, [9654], \"f04b\", \"M91.2 36.9c-12.4-6.8-27.4-6.5-39.6 .7S32 57.9 32 72l0 368c0 14.1 7.5 27.2 19.6 34.4s27.2 7.5 39.6 .7l336-184c12.8-7 20.8-20.5 20.8-35.1s-8-28.1-20.8-35.1l-336-184z\"],\n \"vial-circle-check\": [512, 512, [], \"e596\", \"M32 32C32 14.3 46.3 0 64 0L288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 161.4c-66.1 30.3-112 97.1-112 174.6 0 39.7 12 76.6 32.7 107.2-10.3 3.1-21.3 4.8-32.7 4.8-61.9 0-112-50.1-112-112L64 64C46.3 64 32 49.7 32 32zm96 32l0 128 96 0 0-128-96 0zm96 336a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"],\n \"bridge-circle-check\": [576, 512, [], \"e4c9\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"cedi-sign\": [384, 512, [], \"e0df\", \"M232 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 26.5C88.8 73.9 16 156.4 16 256S88.8 438.1 184 453.5l0 26.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24.6c46.8-3.7 89.1-23.6 121.3-53.9 12.9-12.1 13.4-32.4 1.3-45.2s-32.4-13.4-45.2-1.3c-20.7 19.6-47.6 32.7-77.3 36.2l0-270.1c29.8 3.5 56.6 16.6 77.3 36.2 12.9 12.1 33.1 11.5 45.2-1.3s11.5-33.1-1.3-45.2C321.1 80.2 278.8 60.3 232 56.6L232 32zm-48 91.8l0 264.4C124.3 373.8 80 320.1 80 256s44.3-117.8 104-132.2z\"],\n \"puzzle-piece\": [512, 512, [129513], \"f12e\", \"M224 0c35.3 0 64 21.5 64 48 0 10.4-4.4 20-12 27.9-6.6 6.9-12 15.3-12 24.9 0 15 12.2 27.2 27.2 27.2l44.8 0c26.5 0 48 21.5 48 48l0 44.8c0 15 12.2 27.2 27.2 27.2 9.5 0 18-5.4 24.9-12 7.9-7.5 17.5-12 27.9-12 26.5 0 48 28.7 48 64s-21.5 64-48 64c-10.4 0-20.1-4.4-27.9-12-6.9-6.6-15.3-12-24.9-12-15 0-27.2 12.2-27.2 27.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2 0-9.2 5.8-17.3 13.2-22.8 11.6-8.7 18.8-20.7 18.8-34 0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34 7.4 5.5 13.2 13.5 13.2 22.8 0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2c0-12.8 10.4-23.2 23.2-23.2 9.2 0 17.3 5.8 22.8 13.2 8.7 11.6 20.7 18.8 34 18.8 26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8-5.5 7.4-13.5 13.2-22.8 13.2-12.8 0-23.2-10.4-23.2-23.2L0 176c0-26.5 21.5-48 48-48l108.8 0c15 0 27.2-12.2 27.2-27.2 0-9.5-5.4-18-12-24.9-7.5-7.9-12-17.5-12-27.9 0-26.5 28.7-48 64-48z\"],\n \"helmet-un\": [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0 107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384l127.3 0 128.6 121.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5 0-174.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7 32.4-55.5 45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n \"glass-water\": [384, 512, [], \"e4f4\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5l-6.6-92.5 251.3 0-6.6 92.5-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0-20.9-10.4-45.5-10.4-66.4 0-19.4 9.7-42.2 9.7-61.6 0L73 156.5z\"],\n \"heart-circle-bolt\": [576, 512, [], \"e4fc\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S369.2 416 376 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S494.8 384 488 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z\"],\n \"pump-soap\": [320, 512, [], \"e06b\", \"M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zM224 344c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9 3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C187 263.1 224 311.5 224 344z\"],\n \"hand-scissors\": [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32 0 25.3 19.5 46 44.3 47.9-7.7 8.5-12.3 19.8-12.3 32.1 0 26.5 21.5 48 48 48l96 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3-22.8-22.8-53.6-35.6-85.8-35.6L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4l-67.1-21.4 0 .1-204-64.1C62.9 59.2 40.5 70.9 33.9 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"],\n \"dolly\": [576, 512, [\"dolly-box\"], \"f472\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l72.9 0 92.1 276.2c-22.5 17.6-37 45-37 75.8 0 53 43 96 96 96 52.4 0 95.1-42 96-94.3l202.1-67.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2L331.8 357c-17.2-22.1-43.9-36.5-74-37L165.7 43.8C156.9 17.6 132.5 0 104.9 0L32 0zM208 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM280.5 89.3c-25.2 8.2-39 35.3-30.8 60.5l39.6 121.7c8.2 25.2 35.3 39 60.5 30.8l121.7-39.6c25.2-8.2 39-35.3 30.8-60.5L462.8 80.5c-8.2-25.2-35.3-39-60.5-30.8L280.5 89.3z\"],\n \"paperclip\": [512, 512, [128206], \"f0c6\", \"M224.6 12.8c56.2-56.2 147.4-56.2 203.6 0s56.2 147.4 0 203.6l-164 164c-34.4 34.4-90.1 34.4-124.5 0s-34.4-90.1 0-124.5L292.5 103.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L185 301.3c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l164-164c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-164 164c-53.1 53.1-53.1 139.2 0 192.3s139.2 53.1 192.3 0L428.3 284.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L343.4 459.6c-78.1 78.1-204.7 78.1-282.8 0s-78.1-204.7 0-282.8l164-164z\"],\n \"democrat\": [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3 1-2.8 3.8-4.7 6.8-4.7 1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1c1.4-1.3 3.2-2.1 5.2-2.1 3 0 5.8 1.8 6.8 4.7 2.4 6.5 6.2 18.4 6.2 27.3 0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8l219.2 0 32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7 0 190.6 4.1 178.9 11.7 169.4L87.6 74.6C78.1 67.4 64 53.2 64 32zM544 352l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-128 352 0zM256 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm248-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM368 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"square-arrow-up-right\": [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM272 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l54.1 0-103 103c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l103-103 0 54.1z\"],\n \"ferry\": [640, 512, [], \"e4ea\", \"M224 32c0-17.7 14.3-32 32-32L384 0c17.7 0 32 14.3 32 32l0 32 48 0c44.2 0 80 35.8 80 80l0 128-.1 0c.1 .7 .1 1.3 .1 2 0 30.2-7.6 59.8-22 86.3l-12.7 23.3-.6 1c-22.3-11.3-46.5-16.8-70.8-16.7-32.5 .2-64.9 10.7-92.4 31.4-22.1 16.6-29.1 16.6-51.2 0-28.1-21.1-61.3-31.6-94.4-31.4-23.6 .2-47.1 5.7-68.7 16.7l-.6-1-12.7-23.3c-14.4-26.5-22-56.2-22-86.3 0-.7 0-1.4 .1-2l-.1 0 0-128c0-44.2 35.8-80 80-80l48 0 0-32zM160 256l320 0 0-112c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16l0 112zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"],\n \"mosquito\": [576, 512, [], \"e52b\", \"M178.5 495.2c-7.5 9.6-21 12.1-31.3 5.3S133.5 480 138.9 469l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.8-38.3-2.4-2.4c-5.3-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.3-2.1c-5.8-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8c0-11.8 6.5-22.1 16-27.7l0-60.5 .3-3.3c1.5-7.3 8-12.7 15.7-12.7s14.2 5.5 15.7 12.7l.3 3.2 0 60.5c9.6 5.5 16 15.8 16 27.7l0 28.9 53.4-45.8-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 46.6-37.8 84.4-84.4 84.4l-8.1 0c-22.8 0-44.9-8.5-61.9-23.8l-66.1-59.5 39.2 52.2c2.4 3.2 4 7 4.6 10.9l.3 4 0 41 36.2 58 1.2 2.1c5.4 11 2 24.7-8.3 31.5s-23.8 4.4-31.3-5.3l-1.4-2-40-64-1.6-3.1c-1.4-3.1-2.1-6.6-2.1-10.1l0-39.8-32.4-43.1 0 74.7c0 17.7-14.3 32-32 32-17.7 0-32-14.3-32-32l0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2z\"],\n \"building-circle-arrow-right\": [576, 512, [], \"e4d1\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 144.7c-35.7 2.9-68.5 15.6-96 35.4l0-4c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l4 0c-13.8 19.2-24.1 41-30.1 64.5-1.9-.4-3.9-.5-5.9-.5l-32 0c-17.7 0-32 14.3-32 32l0 80 74.9 0c6.1 17.3 14.6 33.4 25.1 48L96 512c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6l28.7 28.7-89.4 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"],\n \"left-right\": [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M502.6 406.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 492.9 352 480l0-64-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zM9.4 150.6c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 19.1 160 32l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96z\"],\n \"virus\": [512, 512, [], \"e074\", \"M296 40c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-15.6-15.6-40.9-15.6-56.6 0s-15.6 40.9 0 56.6c31.2 31.2 9.1 84.5-35 84.5-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-44.1 53.3-66.1 84.5-35 15.6 15.6 40.9 15.6 56.6 0s15.6-40.9 0-56.6c-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0C349.3 106.1 296 84.1 296 40zM160 224a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"gem\": [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5L210.5 179.8 63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8l-147.2-12.3 57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"],\n \"toilet\": [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4-15.5 13.2-26.4 31.6-26.4 54.6 0 46.9 14.3 84.1 37 112.5 14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8S85.7 512 96 512l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8 22.7-28.4 37-65.5 37-112.5 0-23.1-10.9-41.5-26.4-54.6-1.8-1.5-3.7-3-5.6-4.4l0-148.9 8 0c13.3 0 24-10.7 24-24S437.3 0 424 0L24 0zM96 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zM224 288c-88.4 0-160-14.3-160-32s71.6-32 160-32 160 14.3 160 32-71.6 32-160 32z\"],\n \"single-quote-left\": [192, 512, [], \"e81b\", \"M128 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216C0 149.7 53.7 96 120 96l8 0z\"],\n \"money-bills\": [576, 512, [], \"e1f3\", \"M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zm176 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM160 152l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 112c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM504 159.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM512 264l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM48 152c0-13.3-10.7-24-24-24S0 138.7 0 152L0 416c0 35.3 28.7 64 64 64l392 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 432c-8.8 0-16-7.2-16-16l0-264z\"],\n \"tablet-button\": [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"rectangle-xmark\": [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"wrench\": [576, 512, [128295], \"f0ad\", \"M509.4 98.6c7.6-7.6 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 88.4-71.6 160-160 160-17.5 0-34.4-2.8-50.2-8L146.9 498.9c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8L232 210.2c-5.2-15.8-8-32.6-8-50.2 0-88.4 71.6-160 160-160 20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1l-88.7 88.7c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l88.7-88.7z\"],\n \"trash-can\": [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M136.7 5.9C141.1-7.2 153.3-16 167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm88 64c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24z\"],\n \"table-cells\": [448, 512, [\"th\"], \"f00a\", \"M384 96l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zM256 288l-64 0 0-64 64 0 0 64zm-64 64l64 0 0 64-64 0 0-64zm-64-64l-64 0 0-64 64 0 0 64zM64 352l64 0 0 64-64 0 0-64zm0-192l0-64 64 0 0 64-64 0zm128 0l0-64 64 0 0 64-64 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"],\n \"ribbon\": [384, 512, [127895], \"f4d6\", \"M235.1 0c33.4 0 64.5 17.4 81.9 45.9 1.2 2 13 21.3 35.3 57.8 21.1 34.5 18.3 78.5-7 110L278.3 297.7 364.5 406c5.5 6.9 4.4 16.9-2.5 22.5l-80 64c-6.9 5.5-17 4.4-22.5-2.5L38.6 213.8C13.3 182.3 10.5 138.3 31.6 103.8 54 67.2 65.7 47.9 67 45.9 84.4 17.4 115.4 0 148.9 0l86.3 0zM192 189.2l48.6-61.2-97.3 0 48.6 61.2zM75 336.2l86.2 107.8-36.8 46c-5.5 6.9-15.6 8-22.5 2.5l-80-64c-6.9-5.5-8-15.6-2.5-22.5L75 336.2z\"],\n \"landmark-flag\": [512, 512, [], \"e51c\", \"M352-32L240-32c-8.8 0-16 7.2-16 16l0 144-176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 224-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-224 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0 0-64 80 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm48 224l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0z\"],\n \"up-down-left-right\": [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S179.1 128 192 128l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S128 332.9 128 320l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S332.9 384 320 384l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S384 179.1 384 192l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"],\n \"car-side\": [640, 512, [128663], \"f5e4\", \"M147 106.7l-29.8 85.3 122.9 0 0-96-77.9 0c-6.8 0-12.9 4.3-15.1 10.7zM48.6 193.9L86.5 85.6C97.8 53.5 128.1 32 162.1 32L360 32c25.2 0 48.9 11.9 64 32l96.2 128.3C587.1 196.5 640 252.1 640 320l0 16c0 35.3-28.7 64-64 64l-16.4 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-144.7 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-.4 0c-35.3 0-64-28.7-64-64l0-80c0-30.1 20.7-55.3 48.6-62.1zM440 192l-67.2-89.6c-3-4-7.8-6.4-12.8-6.4l-72 0 0 96 152 0zM152 432a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm360-40a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z\"],\n \"trash-arrow-up\": [448, 512, [\"trash-restore\"], \"f829\", \"M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0-21.1 323.1C393.3 492.4 372.3 512 347 512L101 512c-25.3 0-46.3-19.6-47.9-44.9L32 144zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"],\n \"life-ring\": [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3S491.8 142.1 458 98.7c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256S20.2 369.9 54 413.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\n \"copyright\": [512, 512, [169], \"f1f9\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM205.1 306.9c28.1 28.1 73.7 28.1 101.8 0 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-46.9 46.9-122.8 46.9-169.7 0s-46.9-122.8 0-169.7 122.8-46.9 169.7 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-28.1-28.1-73.7-28.1-101.8 0s-28.1 73.7 0 101.8z\"],\n \"file-prescription\": [384, 512, [], \"f572\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 192c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 22.5 0 58.4 55-33.4 31.6c-9.6 9.1-10.1 24.3-.9 33.9s24.3 10.1 33.9 .9l35.4-33.5 35.6 33.5c9.7 9.1 24.8 8.6 33.9-1s8.6-24.8-1-33.9l-33.6-31.6 33.6-31.8c9.6-9.1 10.1-24.3 .9-33.9s-24.3-10.1-33.9-.9l-35.7 33.7-40.9-38.5c12.9-11.7 21.1-28.6 21.1-47.5 0-35.3-28.7-64-64-64l-56 0zm32 80l-8 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-24 0z\"],\n \"eraser\": [576, 512, [], \"f12d\", \"M178.5 416l123 0 65.3-65.3-173.5-173.5-126.7 126.7 112 112zM224 480l-45.5 0c-17 0-33.3-6.7-45.3-18.7L17 345C6.1 334.1 0 319.4 0 304s6.1-30.1 17-41L263 17C273.9 6.1 288.6 0 304 0s30.1 6.1 41 17L527 199c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41l-135 135 120 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0z\"],\n \"hourglass-start\": [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM288 437l0 11-192 0 0-11c0-25.5 10.1-49.9 28.1-67.9l67.9-67.9 67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"],\n \"circle-left\": [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM124.7 244.7l104-104c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 56 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 56c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-104-104c-6.2-6.2-6.2-16.4 0-22.6z\"],\n \"cruzeiro-sign\": [448, 512, [], \"e152\", \"M240 96c-88.4 0-160 71.6-160 160 0 71.6 47.1 132.3 112 152.7L192 256c0-13.3 10.7-24 24-24 12.8 0 23.3 10.1 24 22.7 15.5-9.5 33.5-14.7 52.3-14.7l11.8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11.8 0c-18.8 0-36.1 10-45.4 26.3-4.5 7.9-6.9 16.8-6.9 25.9l0 75.8c42.5 0 81.1-16.6 109.8-43.6 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C353.7 456.8 299.5 480 240 480 116.3 480 16 379.7 16 256S116.3 32 240 32c59.5 0 113.7 23.2 153.7 61.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3C321.1 112.6 282.5 96 240 96z\"],\n \"smoking\": [576, 512, [128684], \"f48d\", \"M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM320 448l96 0 0-32-96 0 0 32zM0 416c0-35.3 28.7-64 64-64l384 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm576-40l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"square-poll-vertical\": [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 192c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zm184 88c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48zM224 128c13.3 0 24 10.7 24 24l0 208c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24z\"],\n \"person-circle-minus\": [640, 512, [], \"e540\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"],\n \"biohazard\": [576, 512, [9763], \"f780\", \"M260 12.6c0-8.3-7.6-14.5-15.5-12.1-60.9 18.8-105.1 75.8-105.1 143.1 0 25.1 6.1 48.7 17 69.5-21 1.8-42 8.2-61.5 19.5-57.9 33.6-84.8 100.2-70.9 162.5 1.9 8.4 11.4 12 18.9 7.6 5-2.9 7.6-8.6 7.1-14.4-.3-3.3-.4-6.6-.4-10.1 0-123.5 184.4-123.5 184.4 0 0 88.4-94.5 113.6-148.2 75.4-4.5-3.2-10.5-3.9-15.3-1.1-7 4.1-8.6 13.6-2.7 19.1 46.6 43.8 118 53.9 176.1 20.2 17.9-10.4 32.8-23.9 44.5-39.4 11.7 15.6 26.6 29.1 44.5 39.4 58.1 33.7 129.5 23.6 176.1-20.2 5.9-5.5 4.3-15.1-2.7-19.1-4.8-2.8-10.8-2.1-15.3 1.1-53.7 38.2-148.2 13-148.2-75.4 0-123.5 184.4-123.5 184.4 0 0 3.4-.1 6.8-.4 10.1-.5 5.8 2.1 11.5 7.1 14.4 7.4 4.3 17 .8 18.9-7.6 13.9-62.2-13-128.9-70.9-162.5-19.5-11.3-40.4-17.7-61.5-19.5 10.9-20.8 17-44.4 17-69.5 0-67.3-44.2-124.3-105.1-143.1-7.9-2.4-15.5 3.8-15.5 12.1 0 5.9 4 11 9.5 13.2 83.4 33.6 70.8 178.4-37.8 178.4S167.1 59.4 250.5 25.8c5.5-2.2 9.5-7.3 9.5-13.2zM248.4 288a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM435 317.7c-16.2 0-31.4 5.5-42.1 15-10.1 9.1-18.1 23.4-18.1 45.6 0 21.1 7.2 35 16.5 44.1 32.2-24.6 55.5-60.5 63.9-101.8-6.3-1.9-13.2-3-20.2-3zM202 378.3c0-22.3-8-36.6-18.1-45.6-10.7-9.6-25.9-15-42.1-15-7 0-13.9 1-20.2 3 8.4 41.3 31.6 77.2 63.9 101.8 9.4-9.1 16.5-23.1 16.5-44.2zm41.2-224.3c9 10.2 23.2 18.2 45.2 18.2s36.2-8 45.2-18.2c6.7-7.6 11.5-17.5 13.6-28.4-18.3-6.8-38.2-10.5-58.8-10.5s-40.5 3.7-58.8 10.5c2.2 10.9 6.9 20.8 13.6 28.5z\"],\n \"bell-concierge\": [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C124.8 156.7 40.2 243.7 32.6 352l446.9 0C471.8 243.7 387.2 156.7 280 145.3l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z\"],\n \"ruler-horizontal\": [576, 512, [], \"f547\", \"M48 384c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48l24 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 24 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 384z\"],\n \"horse\": [576, 512, [128014], \"f6f0\", \"M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26 20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16S568.8 0 560 0L448 0C377.3 0 320 57.3 320 128l-171.2 0C118.1 128 91.2 144.3 76.3 168.8 33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5 1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7 0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7l0 0 0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"],\n \"calendar\": [448, 512, [128197, 128198], \"f133\", \"M128 0C110.3 0 96 14.3 96 32l0 32-32 0C28.7 64 0 92.7 0 128l0 48 448 0 0-48c0-35.3-28.7-64-64-64l-32 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32zM0 224L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192-448 0z\"],\n \"hands-holding-child\": [640, 512, [], \"e4fa\", \"M320-32a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40zM384.5 149l-19.8-16.7 11.1 88.8c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8-19.8 16.7c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 72.8 295.3 64 320 64s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8z\"],\n \"italic\": [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0-133.3 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0 133.3-320-64 0c-17.7 0-32-14.3-32-32z\"],\n \"khanda\": [512, 512, [9772], \"f66d\", \"M240.7 8c8.9-7.4 21.8-7.4 30.7 0l37.8 31.5c8.7 7.3 11.1 19.6 6 29.6-1.2 2.4-2.8 5.5-4.6 9.2 34.2 19.2 57.3 55.8 57.3 97.8s-23.1 78.6-57.3 97.8c1.8 3.7 3.3 6.8 4.6 9.2 5.1 10 2.7 22.3-6 29.6l-37.2 31 0 19.8c22.9-15.7 48.4-33.3 76.7-52.7 42.8-29.4 68.4-78 68.4-130l0-11.1c0-23.9-7.1-47.3-20.4-67.2-5.1-7.7-4.6-17.8 1.7-24.6 6.6-7.1 17.2-8.1 25.2-2.8 27.5 18.1 89.4 67.5 89.4 149.1 0 46.5-20.2 88.6-41.8 120.4-21.6 32-45.6 55-55.3 63.8-7.8 7.1-19 7.9-27.6 3l-70.8-40.3-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21l-40.2-27.6 0 28.9c9.6 5.5 16 15.9 16 27.7 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7c-1.8 11.4-11.8 20.1-23.7 20.1-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-70.8 40.3c-8.7 4.9-19.8 4.1-27.6-3-9.7-8.8-33.7-31.9-55.3-63.8-21.5-31.8-41.8-73.9-41.8-120.4 0-81.7 61.9-131.1 89.4-149.1 8.1-5.3 18.6-4.3 25.2 2.8 6.4 6.9 6.8 17 1.7 24.6-13.3 19.9-20.4 43.3-20.4 67.2l0 11.1c0 51.9 25.6 100.6 68.4 130 28.4 19.6 53.7 36.9 75.6 52l0-19.1-37.2-31c-8.7-7.3-11.1-19.6-6-29.6 1.2-2.4 2.8-5.5 4.6-9.2-34.2-19.2-57.3-55.8-57.3-97.8s23.1-78.6 57.3-97.8c-1.8-3.7-3.3-6.8-4.6-9.2-5.1-10-2.7-22.3 6-29.6L240.7 8zM220.3 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1c6.8-19.2 11.8-38.4 11.8-53.1s-4.9-33.9-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1c-6.8 19.2-11.8 38.4-11.8 53.1s4.9 33.9 11.8 53.1z\"],\n \"face-frown-open\": [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4 16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"],\n \"check\": [448, 512, [10003, 10004], \"f00c\", \"M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z\"],\n \"fingerprint\": [512, 512, [], \"f577\", \"M48 256c0-114.9 93.1-208 208-208 63.1 0 119.6 28.1 157.8 72.5 8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0 114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6-15.2 5-18.7 23.7-8.3 35.9 7.1 8.3 18.8 10.8 29.4 7.9 10.6-2.9 21.8-4.4 33.4-4.4 70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3-1.7 14.6 9.4 27.8 24.2 27.8 11.8 0 21.9-8.6 23.3-20.3 3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4-23.1 29.8-36.8 67.1-36.8 107.7l0 24.9c0 24.2-2.6 48.4-7.8 71.9-3.4 15.6 7.9 31.1 23.9 31.1 10.5 0 19.9-7 22.2-17.3 6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1 7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1-3.8 14.3 6.7 29 21.5 29 9.5 0 17.9-6.2 20.4-15.4 10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9-2.7 13.9 7.7 27.2 21.8 27.2 10.2 0 19-7 21-17 7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z\"],\n \"charging-station\": [576, 512, [], \"f5e7\", \"M64 64C64 28.7 92.7 0 128 0L288 0c35.3 0 64 28.7 64 64l0 224c44.2 0 80 35.8 80 80l0 12c0 11 9 20 20 20s20-9 20-20l0-127.7c-32.5-10.2-56-40.5-56-76.3l0-32c0-8.8 7.2-16 16-16l16 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 32 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 16 0c8.8 0 16 7.2 16 16l0 32c0 35.8-23.5 66.1-56 76.3L520 380c0 37.6-30.4 68-68 68s-68-30.4-68-68l0-12c0-17.7-14.3-32-32-32l0 129.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L72 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L64 64zm82.7 125.7l39 0-20.9 66.9c-2.4 7.6 3.3 15.4 11.3 15.4 2.9 0 5.6-1 7.8-2.9l94.6-82c3.1-2.7 4.9-6.6 4.9-10.7 0-7.8-6.3-14.1-14.1-14.1l-39 0 20.9-66.9c2.4-7.6-3.3-15.4-11.3-15.4-2.9 0-5.6 1-7.8 2.9l-94.6 82c-3.1 2.7-4.9 6.6-4.9 10.7 0 7.8 6.3 14.1 14.1 14.1z\"],\n \"user-lock\": [576, 512, [], \"f502\", \"M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c29.7 0 57.7 7.3 82.3 20.1l0 4.3c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zm301.7 .1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"mobile-screen-button\": [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm64 0l0 304 224 0 0-304-224 0zM192 472c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"],\n \"anchor-circle-check\": [640, 512, [], \"e4aa\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 0c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3L80 307.9c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"person-walking-with-cane\": [576, 512, [\"blind\"], \"f29d\", \"M224-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM160 205.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l34.4-34.4c23.2-23.2 54.6-36.2 87.3-36.2 36.1 0 70.3 15.8 93.8 43.1l68.6 80c11.5 13.4 9.9 33.6-3.5 45.1s-33.6 9.9-45.1-3.5l-55.7-65 0 118.6 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L160.1 371zm233.5-62.2c10.6-8 25.6-5.8 33.6 4.8l144 192c8 10.6 5.8 25.6-4.8 33.6s-25.6 5.8-33.6-4.8l-144-192c-8-10.6-5.8-25.6 4.8-33.6z\"],\n \"file-waveform\": [384, 512, [\"file-medical-alt\"], \"f478\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-96 60.3 0 48.8 62.7c5.1 6.6 13.3 10 21.6 9.1s15.5-6.1 19.1-13.6l42.9-91.2 9.9 19.8c4.1 8.1 12.4 13.3 21.5 13.3l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-57.2 0-25.4-50.7c-4.1-8.2-12.6-13.4-21.8-13.3s-17.5 5.5-21.4 13.8l-47.3 100.6-32-41.1C86.4 307.4 79.4 304 72 304L0 304 0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5z\"],\n \"house-crack\": [512, 512, [], \"e3b1\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l86.4 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L256 368 195.8 285.2c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L256 448 294.4 512 400 512c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208z\"],\n \"hat-wizard\": [512, 512, [], \"f6e8\", \"M64 400l85.7-208.2c17-41.3 47.8-75.3 87.2-96.3L383.8 17.2c12.3-6.6 26.5 4.7 23 18.2L369.6 177.8c-1.1 4.1-1.6 8.3-1.6 12.6 0 6.3 1.2 12.6 3.6 18.5l76.4 191.1-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 260.4 230.9 256 224 256s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 323 144 329.1 144 336s4.4 13 10.9 15.2l40.4 13.5 11.8 35.4-143.1 0zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"user-doctor\": [448, 512, [\"user-md\"], \"f0f0\", \"M224 8a120 120 0 1 0 0 240 120 120 0 1 0 0-240zm60 312.8c-5.4-.5-11-.8-16.6-.8l-86.9 0c-5.6 0-11.1 .3-16.6 .8l0 67.5c16.5 7.6 28 24.3 28 43.6 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-19.4 11.5-36.1 28-43.6l0-58.4C61 353 16 413.6 16 484.6 16 499.7 28.3 512 43.4 512l361.1 0c15.1 0 27.4-12.3 27.4-27.4 0-71-45-131.5-108-154.6l0 37.4c23.3 8.2 40 30.5 40 56.6l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-11-9-20-20-20s-20 9-20 20l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-26.1 16.7-48.3 40-56.6l0-46.6z\"],\n \"chart-bar\": [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 80l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 112l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"spray-can-sparkles\": [576, 512, [\"air-freshener\"], \"f5d0\", \"M160 32l0 80 128 0 0-80c0-17.7-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32zm0 128c-53 0-96 43-96 96l0 208c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96l-128 0zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM448 48c0-1.4-1-3-2.2-3.6L416 32 403.6 2.2C403 1 401.4 0 400 0s-3 1-3.6 2.2L384 32 354.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L384 64 396.4 93.8C397 95 398.6 96 400 96s3-1 3.6-2.2L416 64 445.8 51.6C447 51 448 49.4 448 48zm76.4 45.8C525 95 526.6 96 528 96s3-1 3.6-2.2L544 64 573.8 51.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 32 531.6 2.2C531 1 529.4 0 528 0s-3 1-3.6 2.2L512 32 482.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 64 524.4 93.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L512 224 482.2 236.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 256 524.4 285.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L544 256 573.8 243.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 224 531.6 194.2zM512 144c0-1.4-1-3-2.2-3.6L480 128 467.6 98.2C467 97 465.4 96 464 96s-3 1-3.6 2.2L448 128 418.2 140.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L448 160 460.4 189.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 160 509.8 147.6c1.2-.6 2.2-2.2 2.2-3.6z\"],\n \"baht-sign\": [320, 512, [], \"e0ac\", \"M136 0c-13.3 0-24 10.7-24 24l0 40-74.4 0C16.8 64 0 80.8 0 101.6L0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 48 0c61.9 0 112-50.1 112-112 0-40.1-21.1-75.3-52.7-95.1 13.1-18.3 20.7-40.7 20.7-64.9 0-61.9-50.1-112-112-112l-16 0 0-40c0-13.3-10.7-24-24-24zM112 128l0 96-48 0 0-96 48 0zm48 96l0-96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0zm-48 64l0 96-48 0 0-96 48 0zm48 96l0-96 48 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-48 0z\"],\n \"temperature-arrow-up\": [512, 512, [\"temperature-up\"], \"e040\", \"M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-212.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 9.4l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-9.4-9.4 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-178.7-9.4 9.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c6-6 14.1-9.4 22.6-9.4s16.6 3.4 22.6 9.4z\"],\n \"web-awesome\": [640, 512, [], \"e682\", \"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192 552.4 171.1c-5.3-7.7-8.4-17.1-8.4-27.1 0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144 0 117.5 21.5 96 48 96s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1 0-28.7 23.3-52 52-52s52 23.3 52 52z\"],\n \"non-binary\": [384, 512, [], \"e807\", \"M192 544c-97.2 0-176-78.8-176-176 0-86.3 62.1-158 144-173l0-47.2-49.7 24.8-3 1.3c-15.2 5.7-32.5-.8-39.9-15.7-7.4-14.8-2.2-32.6 11.5-41.3l2.8-1.6 38.8-19.4-38.8-19.4c-15.8-7.9-22.2-27.1-14.3-42.9 7.4-14.8 24.8-21.4 40-15.6l3 1.3 49.7 24.8 0-44.2c0-17.7 14.3-32 32-32s32 14.3 32 32l0 44.2 49.7-24.8 3-1.3c15.2-5.8 32.5 .8 39.9 15.6s2.2 32.7-11.5 41.3l-2.8 1.6-38.7 19.4 38.7 19.3c15.8 7.9 22.2 27.1 14.3 42.9-7.4 14.8-24.7 21.4-39.9 15.6l-3-1.3-49.7-24.8 0 47.2c81.9 15.1 144 86.8 144 173 0 97.2-78.8 176-176 176zm0-64a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"],\n \"n\": [384, 512, [110], \"4e\", \"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 50.5 8.4 38.5 21.1 33.9z\"],\n \"arrows-up-down-left-right\": [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 114.7-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 114.7 0 0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-114.7 114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-114.7 0 0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"],\n \"house\": [512, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM240 320l32 0c26.5 0 48 21.5 48 48l0 96-128 0 0-96c0-26.5 21.5-48 48-48z\"],\n \"spinner\": [512, 512, [], \"f110\", \"M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm0 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM48 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm368 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zM75 75A48 48 0 1 1 142.9 142.9 48 48 0 1 1 75 75zM437 369.1A48 48 0 1 1 369.1 437 48 48 0 1 1 437 369.1z\"],\n \"gavel\": [576, 512, [\"legal\"], \"f0e3\", \"M169.6 153.4l-18.7-18.7c-12.5-12.5-12.5-32.8 0-45.3L265.6-25.4c12.5-12.5 32.8-12.5 45.3 0L329.6-6.6c12.5 12.5 12.5 32.8 0 45.3L214.9 153.4c-12.5 12.5-32.8 12.5-45.3 0zM276 211.7l-31.4-31.4 112-112 119.4 119.4-112 112-31.4-31.4-232 232c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l232-232zM390.9 374.6c-12.5-12.5-12.5-32.8 0-45.3L505.6 214.6c12.5-12.5 32.8-12.5 45.3 0l18.7 18.7c12.5 12.5 12.5 32.8 0 45.3L454.9 393.4c-12.5 12.5-32.8 12.5-45.3 0l-18.7-18.7z\"],\n \"ticket-simple\": [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6-18.8 6.5-32.3 24.4-32.3 45.4s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64C0 311.2 7.4 304.3 15.7 301.4 34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z\"],\n \"dove\": [512, 512, [128330], \"f4ba\", \"M496 64c13.2 0 20.7 15.1 12.8 25.6L480 128 480 304c0 79.5-64.5 144-144 144l-112 0-46.3 46.3c-10.4 10.4-26.5 12.4-39.1 4.8L41.5 440.9c-17-10.2-15-35.5 3.4-42.9L160 352C23.8 311.1 7.5 169.8 22 95.7 25.6 77.9 45.3 71.4 61.3 80.2L320 224 320 144c0-44.2 35.8-80 80-80l96 0zm-96 56a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM182.5-9.6c12.4-13.7 33.3-8.9 42.5 7.1l56.4 98.3c-5.8 14.4-9.2 30.1-9.4 46.5L138.1 68c10.1-31.6 27-58.4 44.4-77.6z\"],\n \"tarp-droplet\": [512, 512, [], \"e57c\", \"M256 160c35.3 0 64-26.9 64-60 0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60zM368 96c0 61.9-50.1 112-112 112S144 157.9 144 96c0-11.1 1.6-21.9 4.6-32L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l277.5 0c17 0 33.3-6.7 45.3-18.7L493.3 322.7c12-12 18.7-28.3 18.7-45.3L512 128c0-35.3-28.7-64-64-64l-84.6 0c3 10.1 4.6 20.9 4.6 32zm85.5 176L336 389.5 336 296c0-13.3 10.7-24 24-24l93.5 0zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"tree-city\": [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM528 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 480l0-160-16 0c-44.2 0-80-35.8-80-80 0-26.7 13.1-50.3 33.2-64.9-.8-4.9-1.2-10-1.2-15.1 0-53 43-96 96-96s96 43 96 96l0 96c0 35.3-28.7 64-64 64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"],\n \"turn-up\": [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M169.4 9.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S332.9 192 320 192l-64 0 0 160c0 88.4-71.6 160-160 160l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32-14.3 32-32l0-160-64 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128z\"],\n \"temperature-quarter\": [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-28.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 28.7c23.5 9.5 40 32.5 40 59.3z\"],\n \"sliders\": [512, 512, [\"sliders-h\"], \"f1de\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 224zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384z\"],\n \"mosque\": [576, 512, [128332], \"f678\", \"M174.8 224l226.4 0c43.5 0 78.8-35.3 78.8-78.8 0-25.5-12.3-49.4-33.1-64.2L297.3-25.4c-5.6-3.9-13-3.9-18.5 0L129.1 81C108.3 95.8 96 119.7 96 145.2 96 188.7 131.3 224 174.8 224zM512 512c35.3 0 64-28.7 64-64l0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-448 0 0-48c0-17.7-14.3-32-32-32S0 206.3 0 224L0 448c0 35.3 28.7 64 64 64l448 0zM240 384c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80-96 0 0-80z\"],\n \"h\": [384, 512, [104], \"48\", \"M320 288l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-256 0 0-160c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 256 0z\"],\n \"info\": [192, 512, [], \"f129\", \"M48 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM0 192c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 256 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-224-32 0c-17.7 0-32-14.3-32-32z\"],\n \"person-walking\": [384, 512, [128694, \"walking\"], \"f554\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM105.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L60.1 182.6C42.1 200.6 32 225 32 250.5L32 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zm12.4 179.4c-1.5 5.2-4.3 10-8.1 13.8L41.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8l-10.4 36.2z\"],\n \"arrow-turn-down\": [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"],\n \"road\": [512, 512, [128739], \"f018\", \"M223.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L1.4 420.5C-6.1 450.7 16.8 480 48 480l175.9 0 0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 176.1 0c31.2 0 54.1-29.3 46.6-59.5L426.5 80.6C419.4 52.1 393.8 32 364.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n \"spiral\": [512, 512, [], \"e80a\", \"M115.5 7.4c13.6-11.3 33.8-9.5 45.1 4.1s9.5 33.8-4.1 45.1C100.2 103.5 64 175.2 64 256 64 362 150 448 256 448s192-86 192-192c0-75.1-60.9-136-136-136S176 180.9 176 256c0 44.2 35.8 80 80 80s80-35.8 80-80c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-48.6 39.4-88 88-88s88 39.4 88 88c0 79.5-64.5 144-144 144S112 335.5 112 256c0-110.5 89.5-200 200-200s200 89.5 200 200c0 141.4-114.6 256-256 256S0 397.4 0 256C0 155.8 45 66.1 115.5 7.4z\"],\n \"face-frown\": [512, 512, [9785, \"frown\"], \"f119\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm90.6-113.9c-20.4-28-53.4-46.1-90.6-46.1s-70.2 18.1-90.6 46.1c-7.8 10.7-22.8 13.1-33.5 5.3s-13.1-22.8-5.3-33.5C155.7 330 202.8 304 256 304s100.3 26 129.4 65.9c7.8 10.7 5.4 25.7-5.3 33.5s-25.7 5.4-33.5-5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"wine-glass-empty\": [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C48.7 0 35.6 10.8 32.6 25.7L3.2 173C1.1 183.5 0 194.2 0 205l0 3c0 77.4 55 142 128 156.8l0 115.2-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-115.2C265 350 320 285.4 320 208l0-3c0-10.7-1.1-21.4-3.2-32L287.4 25.7C284.4 10.8 271.3 0 256 0L64 0zm1.9 185.6L90.2 64 229.8 64 254.1 185.6c1.3 6.4 1.9 12.9 1.9 19.4l0 3c0 53-43 96-96 96s-96-43-96-96l0-3c0-6.5 .6-13 1.9-19.4z\"],\n \"clapperboard\": [512, 512, [], \"e131\", \"M448 64c2 0 3.9 .1 5.8 .3l-95.7 95.7 67.9 0 72-72c8.8 11 14 24.9 14 40l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l70.1 0-96 96 67.9 0 95-95 1-1 92.1 0-96 96 67.9 0 95-95 1-1 86.1 0z\"],\n \"forward-step\": [384, 512, [\"step-forward\"], \"f051\", \"M21 36.8c12.9-7 28.7-6.3 41 1.8L320 208.1 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144.1-258 169.6c-12.3 8.1-28 8.8-41 1.8S0 454.7 0 440L0 72C0 57.3 8.1 43.8 21 36.8z\"],\n \"square-up-right\": [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM168 160c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l35 35-67 67c-9.4 9.4-9.4 24.6 0 33.9l24 24c9.4 9.4 24.6 9.4 33.9 0l67-67 35 35c6.9 6.9 17.2 8.9 26.2 5.2S320 321.7 320 312l0-128c0-13.3-10.7-24-24-24l-128 0z\"],\n \"book-journal-whills\": [448, 512, [\"journal-whills\"], \"f66a\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM274.1 99.2c2.6-2.6 6.7-3.1 9.9-1.1 32.1 20 53.4 55.6 53.4 96.2 0 62.6-50.7 113.3-113.3 113.3S110.7 256.9 110.7 194.3c0-40.6 21.4-76.2 53.4-96.2 3.1-2 7.2-1.5 9.9 1.1s3.1 6.7 1.2 9.8c-5.2 8.6-8.2 18.7-8.2 29.5 0 15.1 5.9 28.8 15.5 39.1 2.5 2.7 2.9 6.7 .9 9.7-4.7 7.4-7.4 16.1-7.4 25.5 0 21.6 14.3 39.9 34 45.9l1-24.8c-7.1-4.4-11.8-12.2-11.8-21.1 0-9.6 5.5-18 13.5-22.1l3.3-81.8c.2-4.3 3.7-7.7 8-7.7s7.8 3.4 8 7.7l3.3 81.8c8 4.1 13.5 12.4 13.5 22.1 0 8.9-4.7 16.7-11.8 21.1l1 24.8c19.6-6 33.9-24.1 34-45.6l0-.6c-.1-9.3-2.7-17.9-7.4-25.2-1.9-3.1-1.6-7.1 .9-9.7 9.6-10.2 15.5-23.9 15.5-39.1 0-10.8-3-20.9-8.2-29.5-1.9-3.2-1.4-7.2 1.2-9.8z\"],\n \"champagne-glasses\": [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M155.6 17.3C163 3 179.9-3.6 195 1.9l125 45.6 125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6l31.3 86.2 41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41c-47.4 17.3-94.8 34.5-142.2 51.8-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-33.9-130-95.2l-14.6-64.7-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6.1 25.2 24.4 19.1 41s-24.4 25.2-41 19.1c-47.4-17.3-94.8-34.6-142.2-51.8-16.6-6.1-25.2-24.4-19.1-41S26.3 392 42.9 398l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8 89.2 32.5 13.1-57.9-75.1-27.4zm240.9 0l-75.1 27.4 13.1 57.9 89.2-32.5-27.2-52.8z\"],\n \"dumpster\": [576, 512, [], \"f793\", \"M132.3 64L106.7 192 24 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L26.5 80.4C29.8 70.6 39 64 49.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM312 64l82.7 0 25.6 128-108.3 0 0-128zm131.7 0l83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1c0 13.3-10.7 24-24 24l-82.7 0-25.6-128zM25.7 240l524.7 0c-.4 2.1-13.3 73.4-38.9 213.7-3 16.3-17.9 27.6-34.4 26.1S448 464.6 448 448l0-16-320 0 0 16c0 16.6-12.6 30.4-29.1 31.9S67.5 470 64.5 453.7C39 313.3 26 242.1 25.7 240z\"],\n \"heart-circle-xmark\": [576, 512, [], \"e501\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"],\n \"computer\": [576, 512, [], \"e4e5\", \"M348.8 32C340.7 46.1 336 62.5 336 80l0 16-272 0 0 224 272 0 0 64-272 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l284.8 0zM336 432c0 17.5 4.7 33.9 12.8 48L120 480c-13.3 0-24-10.7-24-24s10.7-24 24-24l216 0zM432 32l96 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm24 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm56 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"wand-magic\": [512, 512, [\"magic\"], \"f0d0\", \"M398.5 12.2l-88.2 88.2 101.3 101.3 88.2-88.2C507.6 105.6 512 95 512 84s-4.4-21.6-12.2-29.5L457.5 12.2C449.6 4.4 439 0 428 0s-21.6 4.4-29.5 12.2zM276.4 134.3L12.2 398.5C4.4 406.4 0 417 0 428s4.4 21.6 12.2 29.5l42.3 42.3C62.4 507.6 73 512 84 512s21.6-4.4 29.5-12.2L377.7 235.6 276.4 134.3z\"],\n \"brain\": [512, 512, [129504], \"f5dc\", \"M120 56c0-30.9 25.1-56 56-56l24 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-32 0c-29.8 0-54.9-20.4-62-48-.7 0-1.3 0-2 0-44.2 0-80-35.8-80-80 0-18 6-34.6 16-48-19.4-14.6-32-37.8-32-64 0-30.9 17.6-57.8 43.2-71.1-7.1-12-11.2-26-11.2-40.9 0-44.2 35.8-80 80-80l0-24zm272 0l0 24c44.2 0 80 35.8 80 80 0 15-4.1 29-11.2 40.9 25.7 13.3 43.2 40.1 43.2 71.1 0 26.2-12.6 49.4-32 64 10 13.4 16 30 16 48 0 44.2-35.8 80-80 80-.7 0-1.3 0-2 0-7.1 27.6-32.2 48-62 48l-32 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32l24 0c30.9 0 56 25.1 56 56z\"],\n \"briefcase-medical\": [512, 512, [], \"f469\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zm80 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"house-medical-circle-exclamation\": [640, 512, [], \"e512\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"code-commit\": [576, 512, [], \"f386\", \"M288 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C430 361 365.4 416 288 416S146 361 131.2 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l99.2 0C146 151 210.6 96 288 96s142 55 156.8 128l99.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-99.2 0z\"],\n \"person-breastfeeding\": [448, 512, [], \"e53a\", \"M224 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5-17.6-14.1-22.7-38.1-13.5-57.7l-.7-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7-4.9-2.8-9.2-6.4-12.6-10.6-4.6-5.4-7.8-11.7-9.6-18.4-3.3-12-1.9-25.2 4.8-36.6 .6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4 2.9 6.7 4.3 13.8 4 20.8-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z\"],\n \"person-rays\": [512, 512, [], \"e54d\", \"M312.5 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C338.5 132 298.8 112 256.5 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l46.3-62.4 0 275.3c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM7.5 7c-9.4 9.4-9.4 24.6 0 33.9l80 80c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41.5 7C32.1-2.3 16.9-2.3 7.5 7zm464 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7.5 505c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9zm464 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l80 80z\"],\n \"manat-sign\": [384, 512, [], \"e1d5\", \"M192 32c-13.3 0-24 10.7-24 24l0 41.5C73.3 109.3 0 190.1 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-62.5 44.8-114.5 104-125.8L168 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-293.8c59.2 11.2 104 63.3 104 125.8l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-97.9-73.3-178.7-168-190.5L216 56c0-13.3-10.7-24-24-24z\"],\n \"sort\": [384, 512, [\"unsorted\"], \"f0dc\", \"M2.4 204.2c5 12 16.6 19.8 29.6 19.8l320 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-9.2 9.2-11.9 22.9-6.9 34.9zm0 103.5c-5 12-2.2 25.7 6.9 34.9l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288c-12.9 0-24.6 7.8-29.6 19.8z\"],\n \"circle-radiation\": [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm80 0l64.3 0c8.7 0 15.7-7.1 17.3-15.6 4.4-24.4 18.1-45.5 37.2-59.7 7.4-5.5 10.6-15.6 6-23.6l-32.5-56.3c-4.3-7.5-13.9-10.3-21.2-5.5-48.2 31.5-81.3 84.2-86.3 144.8-.7 8.8 6.5 16 15.3 16zm137.9 89.8c-8.5-3.7-18.8-1.4-23.5 6.6l-31 53.8c-4.3 7.5-1.9 17.2 5.8 21.1 26.1 13.2 55.5 20.7 86.8 20.7s60.7-7.5 86.8-20.7c7.7-3.9 10.1-13.6 5.8-21.1l-31-53.8c-4.6-8-15-10.3-23.5-6.6-11.7 5-24.5 7.8-38.1 7.8s-26.4-2.8-38.1-7.8zM350.4 240.4c1.6 8.6 8.5 15.6 17.3 15.6l64.3 0c8.8 0 16.1-7.2 15.3-16-5-60.6-38.1-113.2-86.3-144.8-7.3-4.8-16.8-2-21.2 5.5L307.3 157c-4.6 8-1.4 18.1 6 23.6 19.1 14.2 32.7 35.4 37.2 59.7zM256 305.7a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],\n \"laptop-code\": [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"],\n \"sink\": [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32 14.3 32 32 32 32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-40c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 40-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-40c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 40-64 0 0-192z\"],\n \"arrow-up-from-water-pump\": [640, 512, [], \"e4b6\", \"M144 32c-26.5 0-48 21.5-48 48l0 176-16 0c-26.5 0-48 21.5-48 48l0 79.6c17.6-2 36 2.5 51.3 14 3.4 2.6 6.1 1.4 9.8-.3l.8-.4c5.7-2.6 12.9-6.9 21.7-13.5 27.5-20.7 59.9-31.2 92.3-31.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 10.7-8.1 22.9-12.7 35.3-14.1l0-79.5c0-26.5-21.5-48-48-48l-56 0 0-142.1 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L497 39c-9.4-9.4-24.6-9.4-33.9 0l-88 88c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 0 142.1-136 0 0-176c0-26.5-21.5-48-48-48L144 32zM474.6 476.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0z\"],\n \"microphone-lines-slash\": [576, 512, [\"microphone-alt-slash\"], \"f539\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0l151 151 0-30.2c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L328 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-1.9 22.9-11.8 43.4-26.9 59l33.9 33.9c25.5-26 41.3-61.6 41.3-100.9l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 52.6-21.1 100.2-55.3 134.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM297.8 367.7l41.4 41.4c-8.8 2.4-17.9 4.3-27.3 5.4l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C169.3 402.7 96 321.9 96 224l0-40c0-5.1 1.6-9.9 4.4-13.8l43.6 43.6 0 10.2c0 79.5 64.5 144 144 144 3.3 0 6.6-.1 9.8-.3z\"],\n \"server\": [448, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"user\": [448, 512, [128100, 62144, 62470, \"user-alt\", \"user-large\"], \"f007\", \"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-59.4 0z\"],\n \"snowflake\": [512, 512, [10052, 10054], \"f2dc\", \"M288.2 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 62.1-15-15c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l49 49 0 70.6-61.2-35.3-17.9-66.9c-3.4-12.8-16.6-20.4-29.4-17S95.3 98 98.7 110.8l5.5 20.5-53.7-31C35.2 91.5 15.6 96.7 6.8 112s-3.6 34.9 11.7 43.7l53.7 31-20.5 5.5c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l66.9-17.9 61.2 35.3-61.2 35.3-66.9-17.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l20.5 5.5-53.7 31C3.2 365.1-2 384.7 6.8 400s28.4 20.6 43.7 11.7l53.7-31-5.5 20.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l17.9-66.9 61.2-35.3 0 70.6-49 49c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l15-15 0 62.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-62.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-70.6 61.2 35.3 17.9 66.9c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-5.5-20.5 53.7 31c15.3 8.8 34.9 3.6 43.7-11.7s3.6-34.9-11.7-43.7l-53.7-31 20.5-5.5c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-66.9 17.9-61.2-35.3 61.2-35.3 66.9 17.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-20.5-5.5 53.7-31c15.3-8.8 20.6-28.4 11.7-43.7s-28.4-20.5-43.7-11.7l-53.7 31 5.5-20.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-17.9 66.9-61.2 35.3 0-70.6 49-49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-15 15 0-62.1z\"],\n \"skull-crossbones\": [448, 512, [128369, 9760], \"f714\", \"M384 144C384 64.5 312.4 0 224 0S64 64.5 64 144c0 47.1 25.1 88.9 64 115.2l0 28.8c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-28.8c38.9-26.3 64-68.1 64-115.2zM160 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM445.5 339.7c-6.8-16.3-25.5-24-41.8-17.2L224 397.3 44.3 322.5c-16.3-6.8-35 .9-41.8 17.2s.9 35 17.2 41.8L140.8 432 19.7 482.5C3.4 489.3-4.3 508 2.5 524.3s25.5 24 41.8 17.2L224 466.7 403.7 541.5c16.3 6.8 35-.9 41.8-17.2s-.9-35-17.2-41.8L307.2 432 428.3 381.5c16.3-6.8 24-25.5 17.2-41.8z\"],\n \"peso-sign\": [448, 512, [], \"e222\", \"M112 32C94.3 32 80 46.3 80 64l0 64-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c65.6 0 122-39.5 146.7-96l37.3 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.8 0c.5-5.3 .8-10.6 .8-16s-.3-10.7-.8-16l24.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-37.3 0C362 71.5 305.6 32 240 32L112 32zm199.6 96l-167.6 0 0-32 96 0c28.4 0 54 12.4 71.6 32zM144 176l190.7 0c.9 5.2 1.3 10.5 1.3 16s-.5 10.8-1.3 16l-190.7 0 0-32zm167.6 80c-17.6 19.6-43.1 32-71.6 32l-96 0 0-32 167.6 0z\"],\n \"wine-glass\": [320, 512, [127863], \"f4e3\", \"M32.6 25.7C35.6 10.8 48.7 0 64 0L256 0c15.3 0 28.4 10.8 31.4 25.7L316.8 173c2.1 10.5 3.2 21.2 3.2 32l0 3c0 77.4-55 142-128 156.8l0 115.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-115.2C55 350 0 285.4 0 208l0-3c0-10.7 1.1-21.4 3.2-32L32.6 25.7zM77.4 128l165.1 0-12.8-64-139.5 0-12.8 64z\"],\n \"temperature-half\": [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-92.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 92.7c23.5 9.5 40 32.5 40 59.3z\"],\n \"ticket\": [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128l0 64C0 200.8 7.4 207.7 15.7 210.6 34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6-18.8-6.5-32.3-24.4-32.3-45.4s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zM416 336l0-160-256 0 0 160 256 0zM112 160c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32l0-192z\"],\n \"wheat-awn-circle-exclamation\": [640, 512, [], \"e598\", \"M496 576a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM81 529c-9.4 9.3-24.5 9.3-33.9 0-9.4-9.4-9.4-24.6 0-33.9L81 529zm30.2-294.4c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 31.7-7.7 66.2 1 90.6 25.3l12 12c-.8 7-1.2 14.2-1.2 21.4 0 20 3 39.3 8.7 57.4-36.8 21.8-85 17-116.6-14.7L165.6 444.3 81 529C69.7 517.7 58.4 506.3 47 495l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM496 476a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16zM215.2 130.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 24.2-5.9 50.1-2.1 71.9 10.8-32.2 24.9-56.2 59.8-67.4 100.1-3.8-2.8-7.5-6-11-9.5l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM526.7 15c9.4-9.4 24.6-9.4 33.9 0 8.8 8.8 9.3 22.7 1.7 32.1L560.6 49 446.2 163.4c7.7 1 15.3 3 22.5 5.9L527 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c3.2 3.2 4.7 7.4 4.7 11.6-17.7-5.4-36.5-8.3-55.9-8.3-34.2 0-66.3 8.9-94.1 24.6l-92.7-92.7c-37.5-37.5-37.5-98.3 0-135.8l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1L465 49 406.7 107.3c2.8 7.1 4.7 14.5 5.8 22.1L526.7 15z\"],\n \"arrows-turn-right\": [448, 512, [], \"e4c0\", \"M313.4-6.6c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 128 128 128c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32S0 241.7 0 224l0-32C0 121.3 57.3 64 128 64l210.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 384 96 384c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 465.7 0 448l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3z\"],\n \"candy-cane\": [448, 512, [], \"f786\", \"M421.8 39.6C452 85.2 456.5 142.9 435.1 192l-165.4 0 41.4-41.4c.8-.8 1.5-1.6 2.2-2.4L421.8 39.6zM268 102.9c-.8 .7-1.6 1.4-2.4 2.2l-28.1 28.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5L175 14.6C229.9-40.2 314.5-46.7 376.5-5.6L268 102.9zM125.7 336l80-80 181 0-82.5 82.5 0-2.5-178.5 0zm117 64L141.4 501.3c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5l10.7-10.7 181 0z\"],\n \"wheelchair\": [512, 512, [], \"f193\", \"M136 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM117.9 197.6l12.6 63c-38.6 12.4-66.5 48.7-66.5 91.4 0 53 43 96 96 96 35.6 0 66.7-19.4 83.3-48.2 2.3 .1 4.6 .2 7 .2l4.1 0c1 0 2.1 0 3.1 0l55.2 0c-20.4 64.9-81 112-152.7 112-88.4 0-160-71.6-160-160 0-73.8 50-135.9 117.9-154.4zm148.6-28.1l23.7 118.5 60.5 0c33.3 0 63.2 20.7 74.9 51.9l25.5 68 18.7-6.2c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5l-48 16c-16.3 5.4-34-3-40.1-19.1l-36.3-96.9c-2.3-6.2-8.3-10.4-15-10.4l-86.1 0c-.4 0-.8 0-1.3 0l-13.1 0c-30.5 0-56.8-21.5-62.8-51.4L165.3 189.7c-6.4-31.9 18-61.7 50.6-61.7 24.6 0 45.8 17.4 50.6 41.5z\"],\n \"spell-check\": [576, 512, [], \"f891\", \"M120 32c-48.6 0-88 39.4-88 88l0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-168c0-48.6-39.4-88-88-88l-16 0zm40 128l-64 0 0-40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 40zM304 32c-17.7 0-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32l72 0c48.6 0 88-39.4 88-88 0-23.6-9.3-45-24.4-60.8 10.3-14.4 16.4-32.1 16.4-51.2 0-48.6-39.4-88-88-88l-64 0zm64 112l-32 0 0-48 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zM336 256l0-48 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0zm233 84c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-105.7 132.1-38.7-38.7c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.4 6.4 15.3 9.8 24.4 9.3s17.5-4.9 23.2-12L569 340z\"],\n \"volume-off\": [320, 512, [], \"f026\", \"M96 352l-48 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l48 0 134.1-119.2c6.4-5.7 14.6-8.8 23.1-8.8 19.2 0 34.8 15.6 34.8 34.8l0 378.4c0 19.2-15.6 34.8-34.8 34.8-8.5 0-16.7-3.1-23.1-8.8L96 352z\"],\n \"lungs\": [576, 512, [129729], \"f604\", \"M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 141.9-32 19.2 0-116.7c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 22 0 43.7-5.1 63.4-15l5-2.5c37.4-18.7 61-56.9 61-98.8l0-128 64-38.4 64 38.4 0 128c0 41.8 23.6 80.1 61 98.8l5 2.5c19.7 9.8 41.4 15 63.4 15 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 118.2-32-19.2 0-141.9z\"],\n \"bookmark\": [384, 512, [128278, 61591], \"f02e\", \"M64 0C28.7 0 0 28.7 0 64L0 480c0 11.5 6.2 22.2 16.2 27.8s22.3 5.5 32.2-.4L192 421.3 335.5 507.4c9.9 5.9 22.2 6.1 32.2 .4S384 491.5 384 480l0-416c0-35.3-28.7-64-64-64L64 0z\"],\n \"barcode\": [448, 512, [], \"f02a\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64c0-17.7-14.3-32-32-32zm88 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24zm72 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32zm208-8l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24zm-96 0l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n \"list-ol\": [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M0 72C0 58.8 10.7 48 24 48l48 0c13.3 0 24 10.7 24 24l0 104 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-80-24 0C10.7 96 0 85.3 0 72zM30.4 301.2C41.8 292.6 55.7 288 70 288l4.9 0c33.7 0 61.1 27.4 61.1 61.1 0 19.6-9.4 37.9-25.2 49.4l-24 17.5 33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-90.7 0C13.1 464 0 450.9 0 434.7 0 425.3 4.5 416.5 12.1 411l70.5-51.3c3.4-2.5 5.4-6.4 5.4-10.6 0-7.2-5.9-13.1-13.1-13.1L70 336c-3.9 0-7.7 1.3-10.8 3.6L38.4 355.2c-10.6 8-25.6 5.8-33.6-4.8S-1 324.8 9.6 316.8l20.8-15.6zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"file-circle-xmark\": [576, 512, [], \"e5a1\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"cube\": [512, 512, [], \"f1b2\", \"M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z\"],\n \"tape\": [576, 512, [], \"f4db\", \"M412.8 416c41.5-40.7 67.2-97.3 67.2-160 0-123.7-100.3-224-224-224S32 132.3 32 256 132.3 480 256 480l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-131.2 0zM256 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm48 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"bomb\": [576, 512, [128163], \"f1e2\", \"M480-16c6.9 0 13 4.4 15.2 10.9l13.5 40.4 40.4 13.5C555.6 51 560 57.1 560 64s-4.4 13-10.9 15.2l-40.4 13.5-13.5 40.4C493 139.6 486.9 144 480 144s-13-4.4-15.2-10.9l-13.5-40.4-40.4-13.5C404.4 77 400 70.9 400 64s4.4-13 10.9-15.2l40.4-13.5 13.5-40.4C467-11.6 473.1-16 480-16zM321.4 97.4c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-10.9 10.9c7.9 22 12.2 45.7 12.2 70.5 0 114.9-93.1 208-208 208S32 418.9 32 304 125.1 96 240 96c24.7 0 48.5 4.3 70.5 12.3l10.9-10.9zM144 304c0-53 43-96 96-96 13.3 0 24-10.7 24-24s-10.7-24-24-24c-79.5 0-144 64.5-144 144 0 13.3 10.7 24 24 24s24-10.7 24-24z\"],\n \"scale-unbalanced\": [640, 512, [\"balance-scale-left\"], \"f515\", \"M519.8 62.4c16.8-5.6 25.8-23.7 20.2-40.5S516.3-3.9 499.6 1.6l-113 37.7c-13.9-23.5-39.6-39.3-68.9-39.3-44.2 0-80 35.8-80 80 0 3 .2 5.9 .5 8.8L115.6 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2l0 326.7c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM437.3 288l72.4-124.2 72.4 124.2-144.9 0zm72.4 96c62.9 0 115.2-34 126-78.9 2.6-11-1-22.3-6.7-32.1L533.8 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L390.4 273.1c-5.7 9.8-9.3 21.1-6.7 32.1 10.8 44.8 63.1 78.9 126 78.9zM126.8 291.8l72.4 124.2-144.9 0 72.4-124.2zM.9 433.1C11.7 478 64 512 126.8 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L150.9 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L7.6 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z\"],\n \"square-caret-left\": [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4S288 142.5 288 152l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"],\n \"ruler\": [576, 512, [128207], \"f545\", \"M209.1 516.2c-18.7 18.7-49.1 18.7-67.9 0L28.1 403.1c-18.7-18.7-18.7-49.1 0-67.9l17-17 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 17-17c18.7-18.7 49.1-18.7 67.9 0L548.5 108.9c18.7 18.7 18.7 49.1 0 67.9L209.1 516.2z\"],\n \"i\": [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"],\n \"volume-xmark\": [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM367 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"],\n \"archway\": [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-272-448 0 0 272z\"],\n \"person-digging\": [576, 512, [\"digging\"], \"f85e\", \"M208 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM10.5 181.3c5.9-11.9 20.3-16.7 32.2-10.7l24.6 12.3 12.2-20.4c18.9-31.5 53.2-50.5 89.6-50.5 46.2 0 87.7 30.5 100.5 75.4l32.2 112.7 92.9 46.4 25.8-43c5.8-9.6 16.2-15.5 27.4-15.5s21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S555.5 512 544 512l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2L370 387.8 21.3 213.5c-11.9-5.9-16.7-20.3-10.7-32.2zM94.3 307.4l112 56c10.8 5.4 17.7 16.5 17.7 28.6l0 88c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-68.2-61.3-30.7-36.3 109c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.7 469.9l48-144c2.9-8.8 9.5-15.9 18.1-19.4s18.3-3.2 26.6 .9z\"],\n \"gauge-high\": [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64 0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"genderless\": [384, 512, [], \"f22d\", \"M192 128a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 320a192 192 0 1 0 0-384 192 192 0 1 0 0 384z\"],\n \"cloud-sun\": [576, 512, [9925], \"f6c4\", \"M453.6-14.8c4.9 2 8.5 6.4 9.5 11.6L480 80 563.2 96.8c5.2 1.1 9.5 4.6 11.6 9.5s1.5 10.5-1.4 14.9l-46.9 70.7 46.9 70.7c2.9 4.4 3.5 10 1.4 14.9s-6.4 8.5-11.6 9.5L501 299.7c-11.9-8.7-25.1-15.6-39.4-20.4-2.5-12.7-6.8-24.7-12.7-35.7 9.5-14.9 15.1-32.6 15.1-51.7 0-53-43-96-96-96-47.9 0-87.6 35.1-94.8 80.9-26.5-20.3-59.5-32.5-95.4-32.9l-15.1-22.7c-2.9-4.4-3.5-10-1.4-14.9s6.4-8.5 11.6-9.5L256 80 272.8-3.2c1.1-5.2 4.6-9.5 9.5-11.6s10.5-1.5 14.9 1.4L368 33.6 438.7-13.3c4.4-2.9 10-3.5 14.9-1.4zM416 192c0 3.8-.4 7.5-1.3 11.1-21.7-17-49-27.1-78.7-27.1-4.6 0-9.1 .2-13.5 .7 6.4-19 24.4-32.7 45.5-32.7 26.5 0 48 21.5 48 48zM96 512c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 512z\"],\n \"arrow-right\": [512, 512, [8594], \"f061\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"],\n \"handshake\": [576, 512, [129309, 62662, \"handshake-alt\", \"handshake-simple\"], \"f2b5\", \"M268.9 85.2L152.3 214.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 182.7L223.4 64 183.8 64c-25.5 0-49.9 10.1-67.9 28.1L112 96 0 32 0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 441c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z\"],\n \"person-skiing\": [576, 512, [9975, \"skiing\"], \"f7c9\", \"M416 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM2.7 300.9c6.1-11.8 20.6-16.3 32.4-10.2l197.8 102.7 62.3-87.2-82-92.2c-11-12.4-16.2-27.5-16.2-42.4l111.6 53.4 42.9 48.2c14.9 16.7 16.2 41.6 3.2 59.8l-64.4 90.2 128.3 66.6c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 333.3C1.2 327.2-3.4 312.7 2.7 300.9zM103 49.6l18 8.7 8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 17 84.8 41 .4-.2 76.1-33.8c31.3-13.9 67.9-.7 83.2 29.9l28.9 57.8 68.7 27.5c16.4 6.6 24.4 25.2 17.8 41.6s-25.2 24.4-41.6 17.8L393.8 224c-10.9-4.4-19.8-12.6-25.1-23.1l-11.5-23.1c-16.4 9.4-25.9 14.8-28.5 16.3l-7.6-3.7-185.6-89.6-9.2 18.3c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-17.9-17.6-8.5C81.1 74.6 77.8 65 81.6 57S95 45.7 103 49.6z\"],\n \"bridge-water\": [640, 512, [], \"e4ce\", \"M64 64l512 0 0 112c-37.6 9.4-64 43.2-64 82l0 76.4c-21-9.7-43.5-14.5-66-14.4-10 .1-20.1 1.1-30 3.1l0-35.1c0-53-43-96-96-96s-96 43-96 96l0 32.7c-5.3-.5-10.7-.8-16-.7-27.7 .2-55.4 7.8-80 23l0-85c0-38.8-26.4-72.6-64-82L64 64zM403.4 444.1C379.1 462.3 351.1 480 320 480s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"],\n \"building-ngo\": [576, 512, [], \"e4d7\", \"M128 0C92.7 0 64 28.7 64 64l0 384c0 35.3 28.7 64 64 64l48 0 0-112c0-35.3 28.7-64 64-64l208 0 0-272c0-35.3-28.7-64-64-64L128 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM304 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM520 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-80c0-24.3-19.7-44-44-44l-16 0zm-4 44c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 80c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80zm-168 0l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-24c0-11-9-20-20-20l-8 0c-11 0-20 9-20 20 0 6.5 3.1 12.4 8 16l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l20.4 0c1.9 9.1 9.9 16 19.6 16 11 0 20-9 20-20 0-19.9-16.1-36-36-36l-24 0c-24.3 0-44 19.7-44 44zm-90.1-32.9c-4.1-8.3-13.5-12.7-22.5-10.5S220 390.7 220 400l0 128c0 11 9 20 20 20s20-9 20-20l0-43.3 26.1 52.2c4.1 8.3 13.5 12.7 22.5 10.5S324 537.3 324 528l0-128c0-11-9-20-20-20s-20 9-20 20l0 43.3-26.1-52.2z\"],\n \"igloo\": [576, 512, [], \"f7ae\", \"M320 33.8l0 126.2-271.5 0c51.7-77.2 139.6-128 239.5-128 10.8 0 21.5 .6 32 1.8zM368 160l0-116.7c66 19 122.2 61 159.5 116.7L368 160zM22.6 208l73.4 0 0 112-96 0c0-39.7 8-77.6 22.6-112zM176 320l-32 0 0-112 288 0 0 112-32 0 0 48 176 0 0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64 176 0 0-48zm304 0l0-112 73.4 0C568 242.4 576 280.3 576 320l-96 0zM288 288c-35.3 0-64 28.7-64 64l0 80 128 0 0-80c0-35.3-28.7-64-64-64z\"],\n \"circle-dollar-to-slot\": [576, 512, [\"donate\"], \"f4b9\", \"M96 224a192 192 0 1 1 384 0 192 192 0 1 1 -384 0zm176-92l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L248 272c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20zM48 344l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 344c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"y\": [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7 154-215.7c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"],\n \"face-smile-wink\": [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"],\n \"dice-four\": [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"face-grin-squint-tears\": [576, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M560 35.4c0 25.6-18.8 47.3-44.1 50.9L469.1 93c-10.6 1.5-19.6-7.5-18.1-18.1l6.7-46.7C461.3 2.8 483-16 508.6-16 537-16 560 7 560 35.4zM403.5 68.1c-6 42.2 30.2 78.4 72.4 72.4l37.8-5.4C565.7 232 550.8 355.3 469 437s-205 96.6-301.9 44.7l5.4-37.8c6-42.2-30.2-78.4-72.4-72.4l-37.8 5.4C10.3 280 25.2 156.7 107 75S312-21.7 408.9 30.3l-5.4 37.8zM417.8 201c-19.1 36.4-45.6 72.7-78.9 106s-69.6 59.8-106 78.9c-11.1 5.8-12.4 21.4-1.1 26.6 59.2 27.5 131.8 16.8 180.6-32s59.5-121.4 32-180.6c-5.3-11.3-20.8-10-26.6 1.1zM113.9 270.6c1.7 8 9 13.4 17.1 12.7l43.1-3.9-3.9 43.1c-.7 8.1 4.7 15.5 12.7 17.1s15.9-2.9 18.4-10.6l28-84.6c1.9-5.7 .4-12.1-3.9-16.3s-10.6-5.8-16.3-3.9l-84.6 28c-7.7 2.6-12.3 10.5-10.6 18.5zM315.2 99.1c.7-8.1-4.7-15.5-12.7-17.1s-15.9 2.9-18.5 10.6l-28 84.6c-1.9 5.7-.4 12.1 3.9 16.3s10.6 5.8 16.3 3.9l84.6-28c7.7-2.6 12.3-10.5 10.6-18.4s-9-13.4-17.1-12.7l-43.1 3.9 3.9-43.1zM60.1 425.7l46.7-6.7c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C114.7 509.2 93 528 67.4 528 39 528 16 505 16 476.6 16 451 34.8 429.3 60.1 425.7z\"],\n \"file-audio\": [384, 512, [], \"f1c7\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zm53.8 185.2c-9.1-6.3-21.5-4.1-27.8 5s-4.1 21.5 5 27.8c23.9 16.7 39.4 44.3 39.4 75.5s-15.6 58.9-39.4 75.5c-9.1 6.3-11.3 18.8-5 27.8s18.8 11.3 27.8 5c34.1-23.8 56.6-63.5 56.6-108.3S296 267.5 261.8 243.7zM80 312c-8.8 0-16 7.2-16 16l0 48c0 8.8 7.2 16 16 16l24 0 27.2 34c3 3.8 7.6 6 12.5 6l.3 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16l-.3 0c-4.9 0-9.5 2.2-12.5 6l-27.2 34-24 0zm128 72.2c0 10.7 10.5 18.2 18.9 11.6 12.9-10.3 21.1-26.1 21.1-43.8s-8.2-33.5-21.1-43.8c-8.4-6.7-18.9 .9-18.9 11.6l0 64.5z\"],\n \"arrows-down-to-line\": [512, 512, [], \"e4b8\", \"M214.6 310.6l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 274.7 96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm256 0l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-242.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512z\"],\n \"g\": [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6-9.5 115-105.8 205.4-223.2 205.4-123.7 0-224-100.3-224-224S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57 13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"],\n \"vihara\": [576, 512, [], \"f6a7\", \"M273.6-3.2c8.5-6.4 20.3-6.4 28.8 0L443.2 102.4c8.3 6.2 18.4 9.6 28.8 9.6 13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 48 58.7 64 13.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 48 24.4 32 15.6 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l22.1 0 17.9-32 0-48-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.3 0 58.7-64 0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24c10.4 0 20.5-3.4 28.8-9.6L273.6-3.2zM128 368l320 0 0-48-320 0 0 48zM384 160l-192 0 0 48 192 0 0-48z\"],\n \"flag-checkered\": [448, 512, [127937], \"f11e\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 384 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5-64 13.9 0 65.5 48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6l-25.3 5.5 0-75.2-64 16 0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"],\n \"gauge-simple\": [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n \"right-left\": [512, 512, [\"exchange-alt\"], \"f362\", \"M502.6 150.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 236.9 352 224l0-64-320 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 275.1 160 288l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9z\"],\n \"pills\": [512, 512, [], \"f484\", \"M64 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM176 368c0-48.7 18.1-93.2 48-127l0-129C224 50.1 173.9 0 112 0S0 50.1 0 112L0 400c0 61.9 50.1 112 112 112 37.3 0 70.3-18.2 90.7-46.3-17-28.6-26.7-62-26.7-97.7zm64.7 67.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 264c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM297.9 472c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4-4.6-8.7-16.3-9.7-23.3-2.7L297.9 472z\"],\n \"explosion\": [512, 512, [], \"e4e9\", \"M256-32c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zm0 160c12.4 0 22.7 9.4 23.9 21.7L293.4 291.6 467.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L372.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0-75.5-52.3C.6 357-2.8 344.1 2.4 333.5s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.6 9.4-11.3L75.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L214 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7zM32 464l456 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0z\"],\n \"arrows-down-to-people\": [512, 512, [], \"e4b9\", \"M113 153c-9.4 9.4-24.6 9.4-33.9 0L15 89C5.7 79.6 5.7 64.4 15 55S39.6 45.7 49 55L72 78.1 72-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zm320 0c-9.4 9.4-24.6 9.4-33.9 0L335 89c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23 0-86.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zM256 192a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 160c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32c0-53 43-96 96-96zM32 288a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm352 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM80 368c15.3 0 29.6 4.3 41.8 11.8-6.3 16.2-9.8 33.8-9.8 52.2l0 48c0 11.4 2.4 22.2 6.7 32l-87.8 0C13.8 512 0 498.2 0 481.1L0 448c0-44.2 35.8-80 80-80zM393.3 512c4.3-9.8 6.7-20.6 6.7-32l0-48c0-18.4-3.5-36-9.8-52.2 12.2-7.5 26.5-11.8 41.8-11.8 44.2 0 80 35.8 80 80l0 33.1c0 17-13.8 30.9-30.9 30.9l-87.8 0z\"],\n \"users-viewfinder\": [576, 512, [], \"e595\", \"M64 0C28.7 0 0 28.7 0 64l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-8.8 7.2-16 16-16l72 0c13.3 0 24-10.7 24-24S149.3 0 136 0L64 0zM440 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c8.8 0 16 7.2 16 16l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-35.3-28.7-64-64-64L440 0zM48 376c0-13.3-10.7-24-24-24S0 362.7 0 376l0 72c0 35.3 28.7 64 64 64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0c-8.8 0-16-7.2-16-16l0-72zm528 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72c0 8.8-7.2 16-16 16l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c35.3 0 64-28.7 64-64l0-72zM288 216a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 40c-53 0-96 43-96 96l0 24c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-24c0-53-43-96-96-96zm192-64a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM168 272.3c-49.3 4.1-88 45.3-88 95.7l0 10.7c0 11.8 9.6 21.3 21.3 21.3l46.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-24c0-29.5 8.8-56.9 24-79.7zM427.9 400l46.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-50.3-38.7-91.6-88-95.7 15.2 22.8 24 50.2 24 79.7l0 24c0 8.4-1.4 16.5-4.1 24zM192 192a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"car-on\": [448, 512, [], \"e4dd\", \"M248-8c0-13.3-10.7-24-24-24S200-21.3 200-8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM145.3 208l157.5 0c6.7 0 12.6 4.1 15 10.4l26.1 69.6-239.6 0 26.1-69.6c2.3-6.2 8.3-10.4 15-10.4zM34 292.8l-1.3 3.4C13.2 307.1 0 328 0 352L0 480c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 288 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-128c0-24-13.2-44.9-32.8-55.9l-1.3-3.4-36.3-96.9c-11.7-31.2-41.6-51.9-74.9-51.9l-157.5 0c-33.3 0-63.2 20.7-74.9 51.9L34 292.8zM96 336a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm224 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM7 7C-2.3 16.4-2.3 31.6 7 41L55 89c9.4 9.4 24.6 9.4 33.9 0S98.3 64.4 89 55L41 7C31.6-2.3 16.4-2.3 7 7zM407 7L359 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9S416.4-2.3 407 7z\"],\n \"sleigh\": [640, 512, [], \"f7cc\", \"M64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l0 160c0 41.8 26.7 77.4 64 90.5l0 69.5-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l504 0c44.2 0 80-35.8 80-80l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 17.7-14.3 32-32 32l-80 0 0-64c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 32c0 35.3-28.7 64-64 64l-48.9 0c-48.5 0-92.8-27.4-114.5-70.8l-25.2-50.5C237.7 59.4 193.4 32 144.9 32L64 32zM432 416l-256 0 0-64 256 0 0 64z\"],\n \"dumbbell\": [640, 512, [], \"f44b\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112 256 0 0-112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 16 16 0c26.5 0 48 21.5 48 48l0 48c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48c0 26.5-21.5 48-48 48l-16 0 0 16c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-112-256 0 0 112c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-16-16 0c-26.5 0-48-21.5-48-48l0-48c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-48c0-26.5 21.5-48 48-48l16 0 0-16z\"],\n \"baby-carriage\": [512, 512, [\"carriage-baby\"], \"f77d\", \"M64 208l0 80c0 53 43 96 96 96l192 0c53 0 96-43 96-96l0-112 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24l0 56-336 0zm.2-48l223.8 0 0-128c0-17.7-14.3-32-32-32L232 0C141.9 0 68.4 70.9 64.2 160zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm288 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"kiwi-bird\": [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1S576 471 576 464l0-240c0-70.7-57.3-128-128-128l-55.7 0C355.9 96 322.4 78.4 291.2 59.6 262.3 42.1 228.3 32 192 32 86 32 0 118 0 224 0 295.1 38.6 357.1 96 390.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6 5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"calendar-xmark\": [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM291.9 220.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z\"],\n \"circle-down\": [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM244.7 387.3l-104-104c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l56 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 56 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-104 104c-6.2 6.2-16.4 6.2-22.6 0z\"],\n \"file-medical\": [384, 512, [], \"f477\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM160 280l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"],\n \"xmark\": [384, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z\"],\n \"shapes\": [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M256 0c11.2 0 21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S363.5 224 352 224l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2l96-160C234.3 5.9 244.8 0 256 0zM128 272a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm200 16l112 0c22.1 0 40 17.9 40 40l0 112c0 22.1-17.9 40-40 40l-112 0c-22.1 0-40-17.9-40-40l0-112c0-22.1 17.9-40 40-40z\"],\n \"dice-one\": [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"lock-open\": [576, 512, [], \"f3c1\", \"M384 96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-70.7-57.3-128-128-128S320 25.3 320 96l0 64-160 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-32 0 0-64z\"],\n \"pepper-hot\": [576, 512, [127798], \"f816\", \"M545 65c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L478.9 63.2C452.3 43.6 419.5 32 384 32 348.9 32 316.5 43.3 290.1 62.4 274.1 74.1 284.2 96 304 96l24 0c13.3 0 24 10.7 24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24 10.7 24 24l0 24c0 19.8 21.9 29.9 33.6 13.9 19.1-26.4 30.4-58.8 30.4-93.9 0-35.5-11.6-68.3-31.2-94.9L545 65zM270 135.5l-159.6 228C101.3 376.4 86.7 384 71 384l-7 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l27.1 0c65.7 0 129.7-20.2 183.5-57.8L440.5 306.1C435 295.9 432 284.2 432 272l-56 0c-39.8 0-72-32.2-72-72l0-56c-12.2 0-23.9-3-34-8.5z\"],\n \"droplet-slash\": [576, 512, [\"tint-slash\"], \"f5c7\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L463.6 397.8c10.5-23.8 16.4-50.1 16.4-77.8 0-91.2-130.2-274.1-166.6-323.5-5.9-8-15.2-12.5-25.2-12.5l-.4 0c-10 0-19.3 4.5-25.2 12.5-15.6 21.2-48.5 66.9-80.9 119.4L41-24.9zm92 227.7c-21.6 43.8-37 85.9-37 117.2 0 106 86 192 192 192 43.4 0 83.4-14.4 115.5-38.6L133 202.8z\"],\n \"droplet\": [384, 512, [128167, \"tint\"], \"f043\", \"M192 512C86 512 0 426 0 320 0 228.8 130.2 45.9 166.6-3.5 172.5-11.5 181.8-16 191.8-16l.4 0c10 0 19.3 4.5 25.2 12.5 36.4 49.4 166.6 232.3 166.6 323.5 0 106-86 192-192 192zM112 312c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 75.1 60.9 136 136 136 13.3 0 24-10.7 24-24s-10.7-24-24-24c-48.6 0-88-39.4-88-88z\"],\n \"file-lines\": [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM120 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"comments-dollar\": [576, 512, [], \"f653\", \"M192 320c106 0 192-78.8 192-176S298-32 192-32 0 46.8 0 144c0 39.6 14.3 76.2 38.4 105.6L2.8 316.8C-2.1 326.1-.4 337.5 7 345s18.9 9.2 28.2 4.2L116.8 306c23.1 9 48.5 14 75.2 14zm3.2 48c16.4 81.9 94.7 144 188.8 144 26.7 0 52.1-5 75.2-14l81.6 43.2c9.3 4.9 20.7 3.2 28.2-4.2s9.2-18.9 4.2-28.2l-35.6-67.2c24.1-29.4 38.4-66 38.4-105.6 0-82.4-61.7-151.5-145-170.7-11.5 115.8-115.8 201.2-235.8 202.7zM196 32c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z\"],\n \"magnifying-glass-location\": [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6 6 7.3 16.8 7.3 22.7 0 22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"file-invoice\": [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM64 384l0-64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 416c-17.7 0-32-14.3-32-32zM88 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S74.7 64 88 64zm0 96l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"pentagon\": [576, 512, [], \"e790\", \"M316.4-3.1c-16.8-12.2-39.6-12.2-56.4 0L35.3 160.2c-16.8 12.2-23.9 33.9-17.4 53.7l85.8 264.1c6.4 19.8 24.9 33.2 45.7 33.2l277.7 0c20.8 0 39.2-13.4 45.7-33.2l85.8-264.1c6.4-19.8-.6-41.4-17.4-53.7L316.4-3.1z\"],\n \"republican\": [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64-544 0 0-64zm152-32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm232 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM280 160a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 288l416 0 0 112c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 96c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-160 128 0z\"],\n \"shop\": [576, 512, [\"store-alt\"], \"f54f\", \"M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l56.8 113.7c3.6 7.2 5.5 15.1 5.5 23.2 0 27.3-21.2 49.7-48 51.6L512 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-96 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0z\"],\n \"film\": [448, 512, [127902, 62368, \"film-alt\", \"film-simple\"], \"f008\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0z\"],\n \"building-circle-xmark\": [576, 512, [], \"e4d4\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L454.6 400z\"],\n \"comments\": [576, 512, [128490, 61670], \"f086\", \"M384 144c0 97.2-86 176-192 176-26.7 0-52.1-5-75.2-14L35.2 349.2c-9.3 4.9-20.7 3.2-28.2-4.2s-9.2-18.9-4.2-28.2l35.6-67.2C14.3 220.2 0 183.6 0 144 0 46.8 86-32 192-32S384 46.8 384 144zm0 368c-94.1 0-172.4-62.1-188.8-144 120-1.5 224.3-86.9 235.8-202.7 83.3 19.2 145 88.3 145 170.7 0 39.6-14.3 76.2-38.4 105.6l35.6 67.2c4.9 9.3 3.2 20.7-4.2 28.2s-18.9 9.2-28.2 4.2L459.2 498c-23.1 9-48.5 14-75.2 14z\"],\n \"tags\": [576, 512, [], \"f02c\", \"M401.2 39.1L549.4 189.4c27.7 28.1 27.7 73.1 0 101.2L393 448.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L515.3 256.8c9.2-9.3 9.2-24.4 0-33.7L367 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM32.1 229.5L32.1 96c0-35.3 28.7-64 64-64l133.5 0c17 0 33.3 6.7 45.3 18.7l144 144c25 25 25 65.5 0 90.5L285.4 418.7c-25 25-65.5 25-90.5 0l-144-144c-12-12-18.7-28.3-18.7-45.3zm144-85.5a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"gun\": [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8-448 0C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352 321.4 352c23.7 0 44.8-14.9 52.7-37.2l26.7-74.8 31.1 0c8.5 0 16.6-3.4 22.6-9.4l22.6-22.6 66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304l-92.5 0 16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n \"circle-check\": [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zM374 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L221.1 315.2 169 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.8 7.5 18.8 7s13.4-4.1 17.5-9.8L379.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z\"],\n \"id-card-clip\": [576, 512, [\"id-card-alt\"], \"f47f\", \"M256-32l64 0c17.7 0 32 14.3 32 32l0 64-128 0 0-64c0-17.7 14.3-32 32-32zM64 32l112 0 0 32c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-32 112 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM176 400c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM288 280a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"],\n \"moon\": [512, 512, [127769, 9214], \"f186\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512c68.8 0 131.3-27.2 177.3-71.4 7.3-7 9.4-17.9 5.3-27.1s-13.7-14.9-23.8-14.1c-4.9 .4-9.8 .6-14.8 .6-101.6 0-184-82.4-184-184 0-72.1 41.5-134.6 102.1-164.8 9.1-4.5 14.3-14.3 13.1-24.4S322.6 8.5 312.7 6.3C294.4 2.2 275.4 0 256 0z\"],\n \"oil-well\": [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4-108.2 28.1-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39-132.2 34.3 0-38.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0-61.4-175.4-62.2 16.1 22.1 63.2-66.6 0 19.9-56.9-74.6 19.3-46.7 133.5-41.3 0 0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l16.8-48 100.2 0 16.8 48-133.8 0z\"],\n \"tachograph-digital\": [576, 512, [\"digital-tachograph\"], \"f566\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 32c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l136 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 352zm256 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zM496 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM88 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm104-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"tablet\": [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM184 400l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"ruble-sign\": [448, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M112 32C94.3 32 80 46.3 80 64l0 208-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 48-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-152 0 0-48 112 0c79.5 0 144-64.5 144-144S335.5 32 256 32L112 32zM256 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"],\n \"closed-captioning\": [512, 512, [], \"f20a\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm152 80l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z\"],\n \"pen\": [512, 512, [128394], \"f304\", \"M352.9 21.2L308 66.1 445.9 204 490.8 159.1C504.4 145.6 512 127.2 512 108s-7.6-37.6-21.2-51.1L455.1 21.2C441.6 7.6 423.2 0 404 0s-37.6 7.6-51.1 21.2zM274.1 100L58.9 315.1c-10.7 10.7-18.5 24.1-22.6 38.7L.9 481.6c-2.3 8.3 0 17.3 6.2 23.4s15.1 8.5 23.4 6.2l127.8-35.5c14.6-4.1 27.9-11.8 38.7-22.6L412 237.9 274.1 100z\"],\n \"plane\": [576, 512, [], \"f072\", \"M520 200c30.9 0 56 25.1 56 56s-25.1 56-56 56l-127.3 0-159.2 173.6c-6.1 6.6-14.6 10.4-23.6 10.4l-43.7 0c-10.9 0-18.6-10.7-15.2-21.1l54.3-162.9-99.7 0-52.8 66c-3 3.8-7.6 6-12.5 6l-19.8 0c-10.4 0-18-9.8-15.5-19.9L32 256 5 147.9C2.4 137.8 10.1 128 20.5 128l19.8 0c4.9 0 9.5 2.2 12.5 6l52.8 66 99.7 0-54.3-162.9C147.6 26.7 155.3 16 166.2 16l43.7 0c9 0 17.5 3.8 23.6 10.4L392.7 200 520 200z\"],\n \"images\": [576, 512, [], \"f302\", \"M96 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64L96 96zM24 128c13.3 0 24 10.7 24 24l0 296c0 8.8 7.2 16 16 16l360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L64 512c-35.3 0-64-28.7-64-64L0 152c0-13.3 10.7-24 24-24zm168 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm196.5 11.5c-4.4-7.1-12.1-11.5-20.5-11.5s-16.1 4.4-20.5 11.5l-56.3 92.1-24.5-30.6c-4.6-5.7-11.4-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S174.8 352 184 352l272 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144z\"],\n \"mobile-screen\": [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM128 440c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24zM304 64l-224 0 0 304 224 0 0-304z\"],\n \"guarani-sign\": [384, 512, [], \"e19a\", \"M192 0c-13.3 0-24 10.7-24 24l0 41.5C73.3 77.3 0 158.1 0 256S73.3 434.7 168 446.5l0 41.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-41.5c94.7-11.8 168-92.6 168-190.5 0-17.7-14.3-32-32-32l-136 0 0-93.8c25.3 4.8 47.9 17 65.6 34.3 12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C297.2 90.2 258.8 70.8 216 65.5L216 24c0-13.3-10.7-24-24-24zM168 130.2l0 251.5C108.8 370.5 64 318.5 64 256s44.8-114.5 104-125.8zm48 251.5l0-93.8 100 0c-12.3 47.6-51.2 84.5-100 93.8z\"],\n \"bag-shopping\": [448, 512, [\"shopping-bag\"], \"f290\", \"M160 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 384c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48c0-61.9-50.1-112-112-112S112 18.1 112 80l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"circle-right\": [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3l-104 104c-4.6 4.6-11.5 5.9-17.4 3.5S256 366.5 256 360l0-56-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-56c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l104 104c6.2 6.2 6.2 16.4 0 22.6z\"],\n \"phone-volume\": [576, 512, [\"volume-control-phone\"], \"f2a0\", \"M344-32c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM320 88c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24zM144.1 1.4c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c32.5 71.6 89 130 159.3 164.9L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5C523.4 470.1 460.9 525.3 384.6 509.2 209.6 472.1 71.9 334.4 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5z\"],\n \"cubes\": [512, 512, [], \"f1b3\", \"M284-1.3c-17.3-10-38.7-10-56 0L143.8 47.3c-17.3 10-28 28.5-28 48.5l0 101.9-88.3 51c-17.3 10-28 28.5-28 48.5l0 97.3c0 20 10.7 38.5 28 48.5l84.3 48.6c17.3 10 38.7 10 56 0l88.3-51 88.3 51c17.3 10 38.7 10 56 0L484.5 443c17.3-10 28-28.5 28-48.5l0-97.3c0-20-10.7-38.5-28-48.5l-88.3-51 0-101.9c0-20-10.7-38.5-28-48.5L284-1.3zM232 292.6l0 106.5-88.3 51c-1.2 .7-2.6 1.1-4 1.1l0-105.3 92.3-53.3zm231.4 .6c.7 1.2 1.1 2.6 1.1 4l0 97.3c0 2.9-1.5 5.5-4 6.9l-84.3 48.6c-1.2 .7-2.6 1.1-4 1.1l0-105.3 91.2-52.6zM348.3 95.8l0 101.9-92.3 53.3 0-106.5 91.2-52.6c.7 1.2 1.1 2.6 1.1 4z\"],\n \"phone\": [512, 512, [128222, 128379], \"f095\", \"M160.2 25C152.3 6.1 131.7-3.9 112.1 1.4l-5.5 1.5c-64.6 17.6-119.8 80.2-103.7 156.4 37.1 175 174.8 312.7 349.8 349.8 76.3 16.2 138.8-39.1 156.4-103.7l1.5-5.5c5.4-19.7-4.7-40.3-23.5-48.1l-97.3-40.5c-16.5-6.9-35.6-2.1-47 11.8l-38.6 47.2C233.9 335.4 177.3 277 144.8 205.3L189 169.3c13.9-11.3 18.6-30.4 11.8-47L160.2 25z\"],\n \"torii-gate\": [448, 512, [9961], \"f6a1\", \"M0 96L0 28.5C0 21.6 5.6 16 12.5 16 14.8 16 17 16.6 19 17.8L58 41.2C82.9 56.1 111.3 64 140.3 64l167.4 0c29 0 57.5-7.9 82.3-22.8l39-23.4c1.9-1.2 4.2-1.8 6.4-1.8 6.9 0 12.5 5.6 12.5 12.5L448 96c0 35.3-28.7 64-64 64l0 64 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-192 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-64C28.7 160 0 131.3 0 96zM128 224l64 0 0-64-64 0 0 64zm128 0l64 0 0-64-64 0 0 64z\"],\n \"bacon\": [576, 512, [129363], \"f7e5\", \"M557 96.7c14.4 14.4 12.4 38.4-4.3 50.2l-64.6 45.7c-43.7 30.9-79.2 71.9-103.4 119.6l-25.3 49.8c-25.1 49.3-62.1 91.5-107.8 122.6l-74.1 50.6c-13.1 8.9-30.7 7.3-41.8-3.9l-44.9-44.9 86.5-66.5c42.3-32.5 76.7-74.3 100.6-122l24.5-49.1c24.5-49 61.8-90.6 107.9-120.2l108.7-69.9 38 38zM484.2 23.9L384.3 88.2c-53.4 34.3-96.5 82.4-124.9 139.1l-24.5 49.1c-20.6 41.3-50.3 77.3-86.9 105.4l-91.4 70.3-36.9-36.9c-14.4-14.4-12.4-38.4 4.3-50.2l64.6-45.7c43.7-30.9 79.2-71.9 103.4-119.6l25.3-49.8C242.3 100.8 279.3 58.6 325 27.4l74.1-50.6c13.1-8.9 30.6-7.3 41.8 3.9l43.3 43.3z\"],\n \"person-falling-burst\": [576, 512, [], \"e547\", \"M256 0c17.7 0 32 14.3 32 32l0 5.4c0 55.2-23.7 107-63.9 143.1l62.9 75.5 89 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L368 320 263.2 320 376.8 459.8c11.1 13.7 9.1 33.9-4.7 45s-33.9 9.1-45-4.7L137.4 266.6c-6.1 15-9.4 31.3-9.4 48l0 69.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-69.4c0-67.4 35.4-129.9 93.2-164.6l4.6-2.8C200.4 124 224 82.4 224 37.4l0-5.4c0-17.7 14.3-32 32-32zM16 88A56 56 0 1 1 128 88 56 56 0 1 1 16 88zm376-7.9c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48zm104 152c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0zm-54.5-97.5c-9.4-9.4-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0z\"],\n \"quote-right\": [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136z\"],\n \"house-medical-flag\": [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM267.5 59.1L400 186.9 400 503.4c-9.4 5.4-20.3 8.6-32 8.6l-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0C12.6 304 0 291.4 0 275.9 0 268.3 3.1 261 8.6 255.7L212.5 59.1C219.9 52 229.7 48 240 48s20.1 4 27.5 11.1zM204.8 256.8l0 44-44 0c-9.7 0-17.6 7.9-17.6 17.6l0 35.2c0 9.7 7.9 17.6 17.6 17.6l44 0 0 44c0 9.7 7.9 17.6 17.6 17.6l35.2 0c9.7 0 17.6-7.9 17.6-17.6l0-44 44 0c9.7 0 17.6-7.9 17.6-17.6l0-35.2c0-9.7-7.9-17.6-17.6-17.6l-44 0 0-44c0-9.7-7.9-17.6-17.6-17.6l-35.2 0c-9.7 0-17.6 7.9-17.6 17.6z\"],\n \"prescription\": [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7 202.2 220.9C251.4 209.1 288 164.8 288 112 288 50.1 237.9 0 176 0L32 0zM176 160l-112 0 0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"],\n \"dice-three\": [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"building-lock\": [576, 512, [], \"e4d6\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L96 512c-35.3 0-64-28.7-64-64L32 64zM176 384l0 80 80 0 0-64.1c0-13.7 1.9-27 5.5-39.6-5.7-5.2-13.2-8.3-21.5-8.3l-32 0c-17.7 0-32 14.3-32 32zM307 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm352 80.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"id-card\": [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64L0 96zm0 48l576 0 0 272c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 144zM247.3 416c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29-12.9 15.6 2.2 35 22.4 35l142.5 0zM176 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM360 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z\"],\n \"circle-play\": [512, 512, [61469, \"play-circle\"], \"f144\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"],\n \"face-laugh-beam\": [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM176 164c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"leaf\": [512, 512, [], \"f06c\", \"M471.3 6.7C477.7 .6 487-1.6 495.6 1.2 505.4 4.5 512 13.7 512 24l0 186.9c0 131.2-108.1 237.1-238.8 237.1-77 0-143.4-49.5-167.5-118.7-35.4 30.8-57.7 76.1-57.7 126.7 0 13.3-10.7 24-24 24S0 469.3 0 456C0 381.1 38.2 315.1 96.1 276.3 131.4 252.7 173.5 240 216 240l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-39.7 0-77.3 8.8-111 24.5 23.3-70 89.2-120.5 167-120.5 66.4 0 115.8-22.1 148.7-44 19.2-12.8 35.5-28.1 50.7-45.3z\"],\n \"house-chimney-user\": [512, 512, [], \"e065\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM312 256a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM144 432c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80z\"],\n \"rotate-right\": [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M488 192l-144 0c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l46.7-46.7c-75.3-58.6-184.3-53.3-253.5 15.9-75 75-75 196.5 0 271.5s196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c94.3-94.3 243.7-99.6 344.3-16.2L471 7c6.9-6.9 17.2-8.9 26.2-5.2S512 14.3 512 24l0 144c0 13.3-10.7 24-24 24z\"],\n \"tooth\": [448, 512, [129463], \"f5c9\", \"M145 5.7L224 32 303 5.7C314.3 1.9 326 0 337.9 0 398.7 0 448 49.3 448 110.1l0 68.5c0 29.4-9.5 58.1-27.2 81.6l-1.1 1.5c-12.9 17.2-21.3 37.4-24.3 58.7L373.7 471.9c-3.3 23-23 40.1-46.2 40.1-22.8 0-42.3-16.5-46-39L261.3 351.6c-3-18.2-18.8-31.6-37.3-31.6s-34.2 13.4-37.3 31.6L166.5 473c-3.8 22.5-23.2 39-46 39-23.2 0-42.9-17.1-46.2-40.1L52.6 320.5c-3-21.3-11.4-41.5-24.3-58.7l-1.1-1.5C9.5 236.7 0 208.1 0 178.7l0-68.5C0 49.3 49.3 0 110.1 0 122 0 133.7 1.9 145 5.7z\"],\n \"house-chimney-window\": [512, 512, [], \"e00d\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM216 224c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z\"],\n \"motorcycle\": [640, 512, [127949], \"f21c\", \"M280 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l56.6 0 22.5 48.7-95.1 71.3c-33.4-25.1-75-40-120-40l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c78.5 0 143.2 59.6 151.2 136l-25.4 0c-11.2-59.2-63.3-104-125.8-104-70.7 0-128 57.3-128 128S73.3 480 144 480c62.5 0 114.5-44.8 125.8-104l50.2 0c13.3 0 24-10.7 24-24l0-22.5c0-45.1 25.7-85.4 65.5-107.7l12.1 26.1c-32.4 23.2-53.5 61.2-53.5 104.1 0 70.7 57.3 128 128 128s128-57.3 128-128-57.3-128-128-128c-10.7 0-21 1.3-30.9 3.8L433.8 160 488 160c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-53.3 0c-6.9 0-13.7 2.2-19.2 6.4l-17.1 12.8-24.6-53.3C369.9 21.4 361.4 16 352 16l-72 0zM445.8 300.4l28.4 61.6c5.6 12 19.8 17.3 31.8 11.7s17.3-19.8 11.7-31.8l-28.5-61.6c2.2-.2 4.4-.3 6.7-.3 39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72c0-20.2 8.3-38.5 21.8-51.6zM144 424c-39.8 0-72-32.2-72-72s32.2-72 72-72c31.3 0 58 20 67.9 48L144 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.9 0c-9.9 28-36.6 48-67.9 48z\"],\n \"backward-fast\": [512, 512, [9198, \"fast-backward\"], \"f049\", \"M492.2 477.6c-12 5-25.7 2.2-34.9-6.9L288 301.3 288 448c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L64 301.3 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32S64 46.3 64 64L64 210.7 233.4 41.4c9.2-9.2 22.9-11.9 34.9-6.9S288 51.1 288 64l0 146.7 169.4-169.4c9.2-9.2 22.9-11.9 34.9-6.9S512 51.1 512 64l0 384c0 12.9-7.8 24.6-19.8 29.6z\"],\n \"address-book\": [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zm0 128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 320c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z\"],\n \"sailboat\": [512, 512, [], \"e445\", \"M240 35.9l0 348.1-224 0c-8.8 0-16 7.2-16 16 0 61.9 50.1 112 112 112l288 0c61.9 0 112-50.1 112-112 0-8.8-7.2-16-16-16l-208 0 0-48 161.7 0c12.9 0 20.5-14.4 13.2-25L269.2 26.9c-8.9-13-29.2-6.7-29.2 9zM192 320l0-184.2c0-16.1-21-22.1-29.6-8.5L47.3 311.5c-6.7 10.7 1 24.5 13.6 24.5L176 336c8.8 0 16-7.2 16-16z\"],\n \"book-bookmark\": [448, 512, [], \"e0bb\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48l-48 0 0 169.4c0 12.5-10.1 22.6-22.6 22.6-6 0-11.8-2.4-16-6.6L272 144 230.6 185.4c-4.2 4.2-10 6.6-16 6.6-12.5 0-22.6-10.1-22.6-22.6L192 0 96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32z\"],\n \"magnifying-glass-arrow-right\": [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM305 225c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z\"],\n \"microphone-lines\": [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L232 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-4.1 49.3-45.3 88-95.7 88-53 0-96-43-96-96L96 96zM24 160c13.3 0 24 10.7 24 24l0 40c0 79.5 64.5 144 144 144s144-64.5 144-144l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 97.9-73.3 178.7-168 190.5l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C73.3 402.7 0 321.9 0 224l0-40c0-13.3 10.7-24 24-24z\"],\n \"reply-all\": [576, 512, [\"mail-reply-all\"], \"f122\", \"M332.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 48 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-32 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9zM205.6 23.1c9.4 9.4 9.4 24.6 0 33.9L54.6 208 205.6 358.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L10 231.2c-6.4-6-10-14.4-10-23.2s3.6-17.2 10-23.2L171.6 23.1c9.4-9.4 24.6-9.4 33.9 0z\"],\n \"universal-access\": [512, 512, [], \"f29a\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2S339 397 334.8 384.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"toilet-paper\": [512, 512, [129531, 63263, \"toilet-paper-alt\", \"toilet-paper-blank\"], \"f71e\", \"M327.1 32c-8.8 11.1-16 23.1-21.9 34.8-21.4 42.7-33.2 98.4-33.2 157.2l0 264c0 30.9-25.1 56-56 56L56 544c-30.9 0-56-25.1-56-56L0 224C0 118 43 32 96 32l231.1 0zM416 416c-53 0-96-86-96-192s43-192 96-192 96 86 96 192-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64-32 28.7-32 64 14.3 64 32 64z\"],\n \"vr-cardboard\": [576, 512, [], \"f729\", \"M512 96L64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l117.5 0c17 0 33.3-6.7 45.3-18.7l33.9-33.9c7.2-7.2 17.1-11.3 27.3-11.3s20.1 4.1 27.3 11.3l33.9 33.9c12 12 28.3 18.7 45.3 18.7L512 416c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64zM80 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm352-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"pizza-slice\": [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L112.5 72C293.3 72.3 439.7 218.7 440 399.5l36.4-9.7c20.8-5.5 36.3-24.7 34.7-47.5-12.6-182.8-158.6-328.8-341.4-341.4zm222 411.5c.2-4.1 .3-8.2 .3-12.4 0-154.6-125.4-280-280-280-4.1 0-8.3 .1-12.4 .3L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1l371.6-99.1zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"spray-can\": [576, 512, [], \"f5bd\", \"M192 0l64 0c17.7 0 32 14.3 32 32l0 80-128 0 0-80c0-17.7 14.3-32 32-32zM64 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48l-224 0c-26.5 0-48-21.5-48-48l0-208zm240 80a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM320 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM512 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"volume-low\": [448, 512, [128264, \"volume-down\"], \"f027\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM380.6 181.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C361.1 227.6 368 241 368 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C402.1 312.9 416 286.1 416 256s-13.9-56.9-35.5-74.5z\"],\n \"cross\": [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z\"],\n \"person\": [384, 512, [129485, \"male\"], \"f183\", \"M248 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C274 132 234.3 112 192 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3z\"],\n \"hourglass\": [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1l-67.9 67.9 67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1l67.9-67.9-67.9-67.9C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9l67.9 67.9 67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11-192 0zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9l-67.9-67.9-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z\"],\n \"fish\": [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8 4.7 9.2 4.7 20.1 0 29.3-14.1 27.4-41.9 66.8-81 99.8-39.2 33.1-92 61.5-155.5 61.5s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9s-12.4-26-5.3-38.6L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"drumstick-bite\": [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2-4.6-1.1-9.5-1.8-14.5-1.8-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12 0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1 11.9-1.2 16.4-15.5 10.8-26-8.5-15.8-13.3-33.8-13.3-53 0-61.9 50.1-112 112-112 8 0 15.7 .8 23.2 2.4 11.7 2.5 24.1-5.9 22-17.6-14.7-82.3-86.7-144.8-173.2-144.8-97.2 0-176 78.8-176 176l0 89.2z\"],\n \"chart-simple\": [512, 512, [], \"e473\", \"M192 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM432 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z\"],\n \"atom\": [448, 512, [9883], \"f5d2\", \"M224 398.8c-11.8 5.1-23.4 9.7-34.9 13.5 16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM414 256c33 45.2 44.3 90.9 23.6 128-20.2 36.3-62.5 49.3-115.2 43.2-22 52.1-55.7 84.8-98.4 84.8s-76.4-32.7-98.4-84.8C72.9 433.3 30.6 420.3 10.4 384-10.3 346.9 1 301.2 34 256 1 210.8-10.3 165.1 10.4 128 30.6 91.7 72.9 78.7 125.6 84.8 147.6 32.7 181.2 0 224 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2 20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2 31.8 1.4 38.6-8.7 40.2-11.7 2.3-4.2 7-17.9-11.9-48.1-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2 7.6 6.1 14.8 12.3 21.6 18.6 18.9-30.2 14.2-44 11.9-48.1-1.6-2.9-8.4-13-40.2-11.7zM258.9 99.7C242.1 65.9 227.9 64 224 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5 11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2-31.8-1.4-38.6 8.7-40.2 11.7-2.3 4.2-7 17.9 11.9 48.1 6.8-6.3 14-12.5 21.6-18.6zM78.2 304.8c-18.9 30.2-14.2 44-11.9 48.1 1.6 2.9 8.4 13 40.2 11.7-2.8-13.1-5-26.9-6.7-41.2-7.6-6.1-14.8-12.3-21.6-18.6zM304 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"p\": [320, 512, [112], \"50\", \"M0 64C0 46.3 14.3 32 32 32l128 0c88.4 0 160 71.6 160 160S248.4 352 160 352l-96 0 0 96c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96l-96 0 0 192z\"],\n \"jet-fighter-up\": [512, 512, [], \"e518\", \"M206.8 47.8C202.3 58.5 200 70 200 81.6l0 100.4-152 114 0-48c0-13.3-10.7-24-24-24S0 234.7 0 248L0 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 152 0 0 54.4-66 52.8c-3.8 3-6 7.6-6 12.5l0 24.3c0 8.8 7.2 16 16 16l88 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 88 0c8.8 0 16-7.2 16-16l0-24.3c0-4.9-2.2-9.5-6-12.5l-66-52.8 0-54.4 152 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48-152-114 0-100.4c0-11.6-2.3-23.1-6.8-33.8l-27.1-65C274.4-26.2 265.7-32 256-32s-18.4 5.8-22.2 14.8l-27.1 65z\"],\n \"plug-circle-xmark\": [640, 512, [], \"e560\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"],\n \"sheet-plastic\": [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64l149.5 0c17 0 33.3-6.7 45.3-18.7L365.3 386.7c12-12 18.7-28.3 18.7-45.3L384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zm208 5.5l0-93.5c0-13.3 10.7-24 24-24l93.5 0-117.5 117.5zM153 105l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zm96 32L137 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L215 103c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\n \"v\": [384, 512, [118], \"56\", \"M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z\"],\n \"list\": [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"],\n \"solar-panel\": [576, 512, [], \"f5ba\", \"M121.8 32c-30 0-56 20.8-62.5 50.1L9.6 306.1C.7 346.1 31.1 384 72 384l184.1 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 184.1 0c40.9 0 71.4-37.9 62.5-77.9l-49.8-224C510.4 52.8 484.5 32 454.5 32L121.8 32zM245.6 96l85.2 0 7.3 88-99.8 0 7.3-88zm-55.5 88l-87.8 0 19.6-88 75.6 0-7.3 88zM91.6 232l94.5 0-7.3 88-106.7 0 19.6-88zm142.6 0l107.8 0 7.3 88-122.5 0 7.3-88zm156 0l94.5 0 19.6 88-106.7 0-7.3-88zM474 184l-87.8 0-7.3-88 75.6 0 19.6 88z\"],\n \"land-mine-on\": [576, 512, [], \"e51b\", \"M312 0l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24L264 0c0-13.3 10.7-24 24-24s24 10.7 24 24zM160 288c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l80 0 0-32zM12 114.7c7.4-11 22.3-14 33.3-6.7l96 64c11 7.4 14 22.3 6.7 33.3s-22.3 14-33.3 6.7l-96-64c-11-7.4-14-22.3-6.7-33.3zM530.7 108c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-96 64c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l96-64z\"],\n \"headphones\": [448, 512, [127911, 62863, \"headphones-alt\", \"headphones-simple\"], \"f025\", \"M64 224c0-88.4 71.6-160 160-160s160 71.6 160 160l0 37.5c-10-3.5-20.8-5.5-32-5.5l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-11.2 0-22 1.9-32 5.5L64 224z\"],\n \"bus\": [448, 512, [128653], \"f207\", \"M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 176c0-17.7 14.3-32 32-32l104 0 0 112-104 0c-17.7 0-32-14.3-32-32l0-48zm184 80l0-112 104 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-104 0zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM152 72c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24z\"],\n \"file-powerpoint\": [384, 512, [], \"f1c4\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM152 256c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 24 0c39.8 0 72-32.2 72-72s-32.2-72-72-72l-48 0zm48 96l-24 0 0-48 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z\"],\n \"quote-left\": [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-136z\"],\n \"chevron-down\": [448, 512, [], \"f078\", \"M201.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 338.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"],\n \"earth-asia\": [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M50 284.8c4.2 2.1 9 3.2 14 3.2l50.7 0c8.5 0 16.6 3.4 22.6 9.4l13.3 13.3c6 6 14.1 9.4 22.6 9.4l18.7 0c17.7 0 32-14.3 32-32l0-40c0-13.3 10.7-24 24-24s24-10.7 24-24l0-42.7c0-8.5 3.4-16.6 9.4-22.6l13.3-13.3c6-6 9.4-14.1 9.4-22.6L304 57c0-1.2-.1-2.3-.2-3.5-15.4-3.6-31.4-5.5-47.8-5.5-114.9 0-208 93.1-208 208 0 9.8 .7 19.4 2 28.8zm403.3 37.3c-3.2-1.4-6.7-2.1-10.5-2.1L432 320c-8.8 0-16-7.2-16-16s-7.2-16-16-16l-34.7 0c-8.5 0-16.6 3.4-22.6 9.4l-45.3 45.3c-6 6-9.4 14.1-9.4 22.6l0 18.7c0 17.7 14.3 32 32 32l18.7 0c8.5 0 16.6 3.4 22.6 9.4 2.2 2.2 4.7 4.1 7.3 5.5 39.3-25.4 69.5-63.6 84.6-108.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM128 368c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM272 256c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm48-112l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"],\n \"cent-sign\": [384, 512, [], \"e3f5\", \"M208 0c17.7 0 32 14.3 32 32l0 25.4c43.6 5.2 83 24.5 113.3 53.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-24.4-23-57.2-37.1-93.3-37.1-75.1 0-136 60.9-136 136s60.9 136 136 136c36.2 0 69-14.1 93.3-37.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C323 430.1 283.6 449.4 240 454.6l0 25.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-28C84.7 433.5 16 352.8 16 256S84.7 78.5 176 60l0-28c0-17.7 14.3-32 32-32z\"],\n \"shield-cat\": [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],\n \"school-circle-check\": [640, 512, [], \"e56b\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"martini-glass\": [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M2.4 51.8C7.4 39.8 19.1 32 32 32l448 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L288 301.3 288 448 352 448c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-146.7-214.6-214.6C.2 77.5-2.5 63.7 2.4 51.8zM354.7 144l48-48-293.5 0 48 48 197.5 0z\"],\n \"plug\": [448, 512, [128268], \"f1e6\", \"M128-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 95.1-69.2 174.1-160 189.3l0 66.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C101.2 398.1 32 319.1 32 224l0-64c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0 0-96c0-17.7 14.3-32 32-32z\"],\n \"panorama\": [576, 512, [], \"e209\", \"M43.9 48C19.7 48 0 67.7 0 91.9L0 420.1c0 24.3 19.7 43.9 43.9 43.9 5.5 0 10.7-1 15.7-2.9 12.9-4.9 103.4-37.1 228.4-37.1s215.5 32.3 228.4 37.1c5 1.9 10.2 2.9 15.7 2.9 24.3 0 43.9-19.7 43.9-43.9l0-328.2c0-24.3-19.7-43.9-43.9-43.9-5.5 0-10.7 1-15.7 2.9-12.9 4.9-103.4 37.1-228.4 37.1S72.5 55.7 59.6 50.9C54.6 49 49.4 48 43.9 48zM72 176a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm264.1-16c7.5 0 14.6 3.6 19.1 9.6L479.7 336.2c5.9 7.9 6.4 18.5 1.3 26.9s-14.8 12.8-24.5 11.1c-45.8-7.8-103.3-14.2-168.4-14.2-65.6 0-123.4 6.5-169.3 14.4-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L165.3 249c4.6-5.7 11.5-9 18.7-9s14.2 3.3 18.7 9l27.5 34.4 86.7-113.9c4.6-6 11.7-9.5 19.2-9.5z\"],\n \"clock-rotate-left\": [576, 512, [\"history\"], \"f1da\", \"M288 64c106 0 192 86 192 192S394 448 288 448c-65.2 0-122.9-32.5-157.6-82.3-10.1-14.5-30.1-18-44.6-7.9s-18 30.1-7.9 44.6C124.1 468.6 201 512 288 512 429.4 512 544 397.4 544 256S429.4 0 288 0C202.3 0 126.5 42.1 80 106.7L80 80c0-17.7-14.3-32-32-32S16 62.3 16 80l0 112c0 17.7 14.3 32 32 32l24.6 0c.5 0 1 0 1.5 0l86 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-38.3 0C154.9 102.6 217 64 288 64zm24 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1z\"],\n \"jar-wheat\": [320, 512, [], \"e517\", \"M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm112 32l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7z\"],\n \"cloud-arrow-down\": [576, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM377 313c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72z\"],\n \"truck-ramp-box\": [576, 512, [\"truck-loading\"], \"f4de\", \"M400 32c-44.2 0-80 35.8-80 80l0 248.2-297.2 89.2C5.9 454.4-3.7 472.3 1.4 489.2s22.9 26.5 39.8 21.5l315.5-94.6 43.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88l0-392-176 0zM528 424c0 22.1-17.9 40-40 40s-40-17.9-40-40 17.9-40 40-40c22.1 0 39.9 17.9 40 39.9l0 .1zM51.9 149.5C18.1 159.8-.9 195.6 9.4 229.4l28.1 91.8C47.8 355 83.6 374 117.4 363.7l91.8-28.1c33.8-10.3 52.8-46.1 42.5-79.9l-28.1-91.8c-10.3-33.8-46.1-52.8-79.9-42.5L51.9 149.5z\"],\n \"angle-down\": [384, 512, [8964], \"f107\", \"M169.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 306.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"],\n \"plug-circle-check\": [640, 512, [], \"e55c\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"],\n \"window-maximize\": [512, 512, [128470], \"f2d0\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm24 64l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 176c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"hands-holding-circle\": [640, 512, [], \"e4fb\", \"M320 0a128 128 0 1 1 0 256 128 128 0 1 1 0-256zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40z\"],\n \"location-pin\": [384, 512, [\"map-marker\"], \"f041\", \"M192 0C86 0 0 84.4 0 188.6 0 307.9 120.2 450.9 170.4 505.4 182.2 518.2 201.8 518.2 213.6 505.4 263.8 450.9 384 307.9 384 188.6 384 84.4 298 0 192 0z\"],\n \"bowling-ball\": [512, 512, [], \"f436\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"cart-flatbed\": [576, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 39.8 29.1 72.8 67.1 79-2 5.3-3.1 11-3.1 17 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l34.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-400 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM224 64c-26.5 0-48 21.5-48 48l0 176c0 26.5 21.5 48 48 48l240 0c26.5 0 48-21.5 48-48l0-176c0-26.5-21.5-48-48-48L224 64z\"],\n \"house-user\": [512, 512, [\"home-user\"], \"e1b0\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM144 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z\"],\n \"ghost\": [384, 512, [128123], \"f6e2\", \"M40.1 467.1l-11.2 9C25.7 478.6 21.8 480 17.8 480 8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"comment-nodes\": [640, 512, [], \"e696\", \"M480 208C503.7 208 525.6 215.3 543.7 227.9 536.9 100.9 425 0 288 0 146.6 0 32 107.5 32 240 32 294.3 51.2 344.3 83.6 384.5L34.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7c27.2 11.4 56.9 18.4 88.1 20.2 .1-18.9 4.9-38 15-55.5 17.1-29.7 45.8-48.5 77-54.2l9.2-16c-3.4-10.7-5.2-22-5.2-33.8 0-61.9 50.1-112 112-112zM328.6 448c-17.7 30.6-7.2 69.7 23.4 87.4s69.7 7.2 87.4-23.4c1.5-2.6 2.8-5.3 3.9-8l73.3 0c1.1 2.7 2.4 5.4 3.9 8 17.7 30.6 56.8 41.1 87.4 23.4s41.1-56.8 23.4-87.4c-13.4-23.2-39.1-34.8-64-31.4l-17.6-30.7c-11 11.7-25 20.6-40.6 25.6l16.5 28.9c-3.8 4.8-6.8 10-9 15.6l-73.4 0c-2.2-5.6-5.3-10.8-9-15.6l33-57.7c4.1 .8 8.4 1.3 12.8 1.3 35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64c0 13.4 4.1 25.8 11.2 36.1l-34.6 60.5c-25-3.4-50.6 8.3-64 31.4z\"],\n \"person-arrow-down-to-line\": [576, 512, [], \"e538\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 480l32 0 0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128zM566.6 166.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L432 146.7 432 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 146.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"],\n \"plug-circle-plus\": [640, 512, [], \"e55f\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"],\n \"person-swimming\": [640, 512, [127946, \"swimmer\"], \"f5c4\", \"M552 152a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM293.4 198.2l-88.6 73.9c1.1 0 2.2-.1 3.3-.1 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 4.8 0 9.7 .2 14.5 .6-8.3-30-24.3-57.7-46.8-80.2-18.4-18.4-40.6-32.7-65-41.8l-68.6-25.7c-27.4-10.3-58-7.5-83.1 7.6l-53.5 32.1c-15.2 9.1-20.1 28.7-11 43.9s28.7 20.1 43.9 11L230 187.3c8.4-5 18.6-5.9 27.7-2.5l35.7 13.4zm110 181.9c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 386.3 17.6 394.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"],\n \"comment-dots\": [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"chart-pie\": [576, 512, [\"pie-chart\"], \"f200\", \"M512.4 240l-176 0c-17.7 0-32-14.3-32-32l0-176c0-17.7 14.4-32.2 31.9-29.9 107 14.2 191.8 99 206 206 2.3 17.5-12.2 31.9-29.9 31.9zM222.6 37.2c18.1-3.8 33.8 11 33.8 29.5l0 197.3c0 5.6 2 11 5.5 15.3L394 438.7c11.7 14.1 9.2 35.4-6.9 44.1-34.1 18.6-73.2 29.2-114.7 29.2-132.5 0-240-107.5-240-240 0-115.5 81.5-211.9 190.2-234.8zM477.8 288l64 0c18.5 0 33.3 15.7 29.5 33.8-10.2 48.4-35 91.4-69.6 124.2-12.3 11.7-31.6 9.2-42.4-3.9L374.9 340.4c-17.3-20.9-2.4-52.4 24.6-52.4l78.2 0z\"],\n \"frog\": [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9 0 21.8-11.7 41.9-30.7 52.7l-144.5 82.1 92.5 92.5 50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2 27.9-18.5 65.9-15.4 90.5 9.2 24.7 24.7 27.7 62.9 9 90.9-2.6 3.8-5.6 7.5-9 10.9L261.8 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480C28.7 480 0 451.3 0 416 0 249.6 127 112.9 289.3 97.5 296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"wine-bottle\": [320, 512, [], \"f72f\", \"M80-32c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32 0 11.8-6.4 22.2-16 27.7l0 145.6c56.5 24.7 96 81.1 96 146.7l0 224c0 35.3-28.7 64-64 64L64 576c-35.3 0-64-28.7-64-64L0 288c0-65.6 39.5-122 96-146.7L96-4.3C86.4-9.8 80-20.2 80-32zM96 288c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 288z\"],\n \"inbox\": [512, 512, [], \"f01c\", \"M91.8 32C59.9 32 32.9 55.4 28.4 86.9L.6 281.2c-.4 3-.6 6-.6 9.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-125.7c0-3-.2-6.1-.6-9.1L483.6 86.9C479.1 55.4 452.1 32 420.2 32L91.8 32zm0 64l328.5 0 27.4 192-59.9 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L64.3 288 91.8 96z\"],\n \"square-h\": [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320 168l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"house-medical\": [512, 512, [], \"e3b2\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM224 248c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"circle-chevron-right\": [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"],\n \"file-csv\": [576, 512, [], \"f6dd\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM264 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-8c0-11-9-20-20-20s-20 9-20 20l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-24.3-19.7-44-44-44l-16 0zm136 0c-28.7 0-52 23.3-52 52s23.3 52 52 52c6.6 0 12 5.4 12 12s-5.4 12-12 12l-32 0c-11 0-20 9-20 20s9 20 20 20l32 0c28.7 0 52-23.3 52-52s-23.3-52-52-52c-6.6 0-12-5.4-12-12s5.4-12 12-12l24 0c11 0 20-9 20-20s-9-20-20-20l-24 0zm96 0c-11 0-20 9-20 20l0 31.6c0 35.5 10.5 70.3 30.2 99.8l5.1 7.7c3.7 5.6 10 8.9 16.6 8.9s12.9-3.3 16.6-8.9l5.1-7.7c19.7-29.6 30.2-64.3 30.2-99.8l0-31.6c0-11-9-20-20-20s-20 9-20 20l0 31.6c0 19.6-4.1 38.9-12 56.7-7.9-17.8-12-37.1-12-56.7l0-31.6c0-11-9-20-20-20z\"],\n \"hat-cowboy\": [640, 512, [], \"f8c0\", \"M182.2 76.1L130.8 307.5C145.5 324.9 167.4 336 192 336l256 0c24.6 0 46.5-11.1 61.2-28.5L457.8 76.1c-5.7-25.8-28.6-44.1-55-44.1-12.2 0-24.1 4-33.8 11.3l-4.7 3.5c-26.3 19.7-62.4 19.7-88.6 0L271 43.3c-9.8-7.3-21.6-11.3-33.8-11.3-26.4 0-49.3 18.3-55 44.1zM64 256c0-17.7-14.3-32-32-32S0 238.3 0 256C0 362 86 448 192 448l256 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-256 0c-70.7 0-128-57.3-128-128z\"],\n \"face-grin-tongue-wink\": [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M152.2 490.1C62.5 450.2 0 360.4 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 104.4-62.5 194.2-152.2 234.1 5.3-13 8.2-27.2 8.2-42.1l0-61.7c16.9-16.5 30.1-36.7 38.3-59.3 4.3-11.8-7.7-21.8-19.6-18.1-39.2 12.2-83.7 19.1-130.7 19.1s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 8.3 22.6 21.5 42.8 38.3 59.3l0 61.7c0 14.9 2.9 29.1 8.2 42.1zM152 212l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm184 60a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9 2.8 12.6 20.8 12.6 23.6 0 2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"l\": [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z\"],\n \"arrow-down-short-wide\": [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"hourglass-half\": [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9l67.9-67.9 67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9L112 384z\"],\n \"spoon\": [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8 0-80.2 96-160.2 192-160.2 53 0 96 43 96 96 0 96-80 192-160.2 192-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"],\n \"credit-card\": [512, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M0 128l0 32 512 0 0-32c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128zm0 80L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-176-512 0zM64 360c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm144 0c0-13.3 10.7-24 24-24l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0c-13.3 0-24-10.7-24-24z\"],\n \"file-invoice-dollar\": [384, 512, [], \"f571\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 88c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64C74.7 64 64 74.7 64 88zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm112 76l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L152 400c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20z\"],\n \"spaghetti-monster-flying\": [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3c-10-11.3-16-26.1-16-42.3 0-35.3 28.7-64 64-64s64 28.7 64 64-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4 7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4 10.7 11.7 16.1 13.4 19.4 13.4 2.5 0 4.3-.6 7.1-3.3 3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7 9.7-9.3 22.9-16.7 40.4-16.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7-9.7 9.3-22.9 16.7-40.4 16.7-18.5 0-32.9-8.5-44.3-18.6-3.1 4-6.6 8.3-10.5 12.7 1.4 4.3 2.8 8.5 4 12.5 .9 3 1.8 5.8 2.6 8.6 3 9.8 5.5 18.2 8.6 25.9 3.9 9.8 7.4 15.4 10.8 18.5 2.6 2.4 5.9 4.3 12.8 4.3 8.7 0 16.9-4.2 33.7-13.2 15-8 35.7-18.8 62.3-18.8 13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2-1 .6-2.1 1.1-3.2 1.7-13.1 7.1-31.6 17.1-53.1 17.1-18.4 0-33.6-6.1-45.5-17.2-11.1-10.3-17.9-23.7-22.7-36-3.6-9-6.7-19.1-9.5-28.5-16.4 12.3-36.1 23.6-58.9 31.3 3.6 10.8 8.4 23.5 14.4 36.2 7.5 15.9 16.2 30.4 25.8 40.5 9.6 10.2 17.7 13.7 24.5 13.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8-14.5-15.4-25.7-34.9-34.2-53-8-17-14.1-33.8-18.3-46.9-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9-8.5 18.1-19.8 37.6-34.2 53-14.4 15.3-34.3 28.8-59.5 28.8-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7 9.5-10.1 18.3-24.6 25.8-40.5 5.9-12.6 10.7-25.4 14.4-36.2-22.8-7.7-42.5-19-58.9-31.3-2.9 9.4-6 19.5-9.5 28.5-4.8 12.2-11.6 25.6-22.7 36-11.9 11.1-27.1 17.2-45.5 17.2-13.1 0-24.5-4.1-33.8-8.9-7.9-4-15.7-9.2-22.1-13.5l0 0-2.4-1.6c-15.3-10.2-25.8-16-37.7-16-13.3 0-24-10.7-24-24s10.7-24 24-24c28.1 0 49.6 14.2 64.3 24l2.4 1.6c6.9 4.6 12.1 8.1 17.2 10.7 5.5 2.8 9.1 3.6 12 3.6 6.8 0 10.2-1.9 12.8-4.3 3.4-3.2 7-8.8 10.8-18.5 3-7.7 5.6-16.1 8.6-25.9 .8-2.7 1.7-5.6 2.6-8.6 1.2-4 2.6-8.2 4-12.5-3.9-4.5-7.4-8.8-10.5-12.7-11.4 10.1-25.9 18.6-44.3 18.6-17.5 0-30.7-7.4-40.4-16.7-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4-2.8-2.7-4.6-3.3-7.1-3.3-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7 8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4 2.8 2.7 4.6 3.3 7.1 3.3 3.3 0 8.7-1.7 19.4-13.4 5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24 13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],\n \"martini-glass-citrus\": [640, 512, [\"cocktail\"], \"f561\", \"M576 80c0-44.2-35.8-80-80-80-18 0-34.6 6-48 16l-81 0c23.6-47.4 72.5-80 129-80 79.5 0 144 64.5 144 144S575.5 224 496 224c-6.5 0-13-.4-19.3-1.3l64-74.7c1.1-1.3 2.2-2.7 3.3-4.1 19.4-14.6 32-37.8 32-64zM66.9 82.6C72.2 71.3 83.5 64 96 64l384 0c12.5 0 23.8 7.3 29.1 18.6s3.4 24.7-4.8 34.2l-184.3 215 0 116.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-116.2-184.3-215c-8.1-9.5-10-22.8-4.8-34.2zM165.6 128L288 270.8 410.4 128 165.6 128z\"],\n \"bullhorn\": [512, 512, [128226, 128363], \"f0a1\", \"M461.2 18.9C472.7 24 480 35.4 480 48l0 416c0 12.6-7.3 24-18.8 29.1s-24.8 3.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63l0 95.7c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96C57.3 384 0 326.7 0 256S57.3 128 128 128l84.5 0c61.8-.2 121.4-22.7 167.9-63.3l46.6-40.7c9.4-8.3 22.9-10.2 34.3-5.1zM224 320l0 .2c70.3 2.7 137.8 28.5 192 73.4l0-275.3c-54.2 44.9-121.7 70.7-192 73.4L224 320z\"],\n \"box-tissue\": [512, 512, [], \"e05b\", \"M103.9 32l161 0c13.8 0 26 8.8 30.4 21.9l17.4 52.2c4.4 13.1 16.6 21.9 30.4 21.9l60.5 0c21.8 0 37.3 21.4 30.4 42.1L384 320 128 320 72.7 70.9C68.2 51 83.4 32 103.9 32zM48 256l16.6 0 16.5 74.4C86 352.4 105.5 368 128 368l256 0c20.7 0 39-13.2 45.5-32.8l26.4-79.2 8.1 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 304c0-26.5 21.5-48 48-48z\"],\n \"mattress-pillow\": [576, 512, [], \"e525\", \"M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm48 384l208 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-208 0 0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z\"],\n \"chevron-left\": [320, 512, [9001], \"f053\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"],\n \"cloud-moon-rain\": [576, 512, [], \"f73c\", \"M448 0c-68.6 0-127.1 43.1-149.8 103.8 17.1 14.1 29.6 33.5 34.9 55.8 39.9 21.7 66.9 63.9 66.9 112.5 0 13.5-2.1 26.5-5.9 38.7 16.9 6 35 9.3 53.9 9.3 43 0 82.1-17 110.8-44.6 4.6-4.4 5.9-11.2 3.3-17s-8.6-9.3-14.9-8.8c-3 .2-6.1 .4-9.2 .4-63.5 0-115-51.5-115-115 0-45.1 26-84.2 63.8-103 5.7-2.8 9-8.9 8.2-15.2S489.6 5.3 483.4 3.9C472 1.4 460.2 0 448 0zM272 352c44.2 0 80-35.8 80-80 0-39-27.9-71.5-64.8-78.6 .5-3.1 .8-6.2 .8-9.4 0-30.9-25.1-56-56-56-12.4 0-23.9 4-33.1 10.8-13.4-25.5-40.1-42.8-70.9-42.8-44.2 0-80 35.8-80 80 0 7.4 1 14.6 2.9 21.5-29.8 11.6-50.9 40.6-50.9 74.5 0 44.2 35.8 80 80 80l192 0zM69 401.1c-12.6-4.2-26.2 2.6-30.4 15.2L17.2 480.4C13 493 19.8 506.6 32.4 510.8s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4z\"],\n \"arrow-down-1-9\": [512, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M418.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM365.1 430.6l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 336a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM150.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96z\"],\n \"hand-spock\": [512, 512, [128406], \"f259\", \"M214.9 23.7C210.3 6.6 192.8-3.5 175.7 1.1s-27.2 22.1-22.6 39.2L206 237.8c2.5 9.2-4.5 18.2-14 18.2-6.4 0-12-4.2-13.9-10.3L134.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.1 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L411.5 247.1c-1.6 5.3-6.4 8.9-12 8.9-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L323.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"],\n \"wand-magic-sparkles\": [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M263.4-27L278.2 9.8 315 24.6c3 1.2 5 4.2 5 7.4s-2 6.2-5 7.4L278.2 54.2 263.4 91c-1.2 3-4.2 5-7.4 5s-6.2-2-7.4-5L233.8 54.2 197 39.4c-3-1.2-5-4.2-5-7.4s2-6.2 5-7.4L233.8 9.8 248.6-27c1.2-3 4.2-5 7.4-5s6.2 2 7.4 5zM110.7 41.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7L59.8 164.2 9.7 142.7C3.8 140.2 0 134.4 0 128s3.8-12.2 9.7-14.7L59.8 91.8 81.3 41.7C83.8 35.8 89.6 32 96 32s12.2 3.8 14.7 9.7zM464 304c6.4 0 12.2 3.8 14.7 9.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7l-21.5-50.1-50.1-21.5c-5.9-2.5-9.7-8.3-9.7-14.7s3.8-12.2 9.7-14.7l50.1-21.5 21.5-50.1c2.5-5.9 8.3-9.7 14.7-9.7zM460 0c11 0 21.6 4.4 29.5 12.2l42.3 42.3C539.6 62.4 544 73 544 84s-4.4 21.6-12.2 29.5l-88.2 88.2-101.3-101.3 88.2-88.2C438.4 4.4 449 0 460 0zM44.2 398.5L308.4 134.3 409.7 235.6 145.5 499.8C137.6 507.6 127 512 116 512s-21.6-4.4-29.5-12.2L44.2 457.5C36.4 449.6 32 439 32 428s4.4-21.6 12.2-29.5z\"],\n \"comment-medical\": [512, 512, [], \"f7f5\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM217.6 153.6c0-10.6 8.6-19.2 19.2-19.2l38.4 0c10.6 0 19.2 8.6 19.2 19.2l0 48 48 0c10.6 0 19.2 8.6 19.2 19.2l0 38.4c0 10.6-8.6 19.2-19.2 19.2l-48 0 0 48c0 10.6-8.6 19.2-19.2 19.2l-38.4 0c-10.6 0-19.2-8.6-19.2-19.2l0-48-48 0c-10.6 0-19.2-8.6-19.2-19.2l0-38.4c0-10.6 8.6-19.2 19.2-19.2l48 0 0-48z\"],\n \"bell-slash\": [576, 512, [128277, 61943], \"f1f6\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.5-87.5c17.2-2.4 30.5-17.3 30.5-35.2 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C464.4 308.5 448 261.8 448 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 3.2c-38.6 7.8-72.2 29.6-95.2 59.7L41-24.9zm87 238.5c0 48.1-16.4 94.8-46.4 132.4l-9.8 12.2c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l235.3 0-206.9-206.9 0 4.5zM288 512c29.8 0 54.9-20.4 62-48l-124 0c7.1 27.6 32.2 48 62 48z\"],\n \"handshake-slash\": [576, 512, [57439, \"handshake-alt-slash\", \"handshake-simple-slash\"], \"e060\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-288-288 14.2-14.2c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1l-55.8 62.1-34-34 44.3-49.2-39.7 0c-15.3 0-30.1 3.6-43.5 10.4L41-24.9zM0 69.8L0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c22.2 0 43.8-5.8 62.8-16.4L0 69.8z\"],\n \"bottle-water\": [320, 512, [], \"e4c5\", \"M112-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0C94.3 32 80 17.7 80 0s14.3-32 32-32zM16 144c0-35.3 28.7-64 64-64l160 0c35.3 0 64 28.7 64 64 0 24.1-13.3 45.1-33 56 19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56 0 35.3-28.7 64-64 64L80 544c-35.3 0-64-28.7-64-64 0-24.1 13.3-45.1 33-56-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56z\"],\n \"dice-d20\": [512, 512, [], \"f6cf\", \"M224.4-8.2c19.6-11.1 43.6-11.1 63.1 0l192 108.8c20 11.4 32.4 32.6 32.4 55.7l0 215.6c0 23-12.4 44.3-32.4 55.7l-192 108.8c-19.6 11.1-43.6 11.1-63.1 0L32.4 427.5C12.4 416.1 0 394.8 0 371.8L0 156.2c0-23 12.4-44.3 32.4-55.7L224.4-8.2zm52 73.2C267 49.8 245 49.8 235.6 65l-76.6 123.7-85.4-46.3-3.8-1.6c-8.9-2.7-18.8 1.1-23.4 9.6s-2.4 18.9 4.7 24.8l3.3 2.3 83.4 45.2-74.6 120.6C55.3 356.2 61 373 75 378.4l161 61.9 0 39.7c0 11 9 20 20 20s20-9 20-20l0-39.7 161-61.9c14-5.4 19.7-22.2 11.8-35l-74.7-120.6 83.4-45.2c9.7-5.3 13.3-17.4 8.1-27.1s-17.4-13.3-27.1-8.1L353 188.7 276.4 65zm-47 329.9l-122-46.9 54.5-88.1 67.5 135zM404.6 348l-122 46.9 67.5-135 54.5 88.1zM319.3 232L256 358.6 192.7 232 319.3 232zM308 192l-104.1 0 52-84 52 84z\"],\n \"arrow-down-z-a\": [512, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM288 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 160 448 160c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L370.8 96 320 96c-17.7 0-32-14.3-32-32zM412.6 273.7l80 160c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l80-160c5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 359.6l-20.2 40.4 40.4 0-20.2-40.4z\"],\n \"brush\": [384, 512, [], \"f55d\", \"M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48l0 208 384 0 0-208c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 304l0 16c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-16-384 0zM192 464c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"],\n \"person-walking-dashed-line-arrow-right\": [640, 512, [], \"e553\", \"M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM432 8c0-13.3-10.7-24-24-24S384-5.3 384 8l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zm0 128c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM408 320c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM609 273c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z\"],\n \"arrow-up-short-wide\": [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"],\n \"grip-vertical\": [320, 512, [\"grid-vertical\"], \"f58e\", \"M128 40c0-22.1-17.9-40-40-40L40 0C17.9 0 0 17.9 0 40L0 88c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM0 424l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 40c0-22.1-17.9-40-40-40L232 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM192 232l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 424c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z\"],\n \"car-tunnel\": [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-113.1c0-13.5 3.1-26.8 9-38.9l39.7-80.8c9.4-19.1 28.9-31.3 50.2-31.3L317 224c21.3 0 40.8 12.1 50.2 31.3L407 336c5.9 12.1 9 25.4 9 38.9L416 488c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-24-192 0 0 24c0 9.6-4.2 18.1-10.8 24l213.7 0zm-175-235.5l-29.3 59.5 194.9 0-29.3-59.5c-1.3-2.7-4.1-4.5-7.2-4.5L195 272c-3 0-5.8 1.7-7.2 4.5zM176 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm184-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"chart-column\": [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM144 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm144-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm80 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM512 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n \"truck-arrow-right\": [576, 512, [], \"e58b\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM305 225l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z\"],\n \"tv\": [576, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 96l0 240 448 0 0-240-448 0zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64L64 400c-35.3 0-64-28.7-64-64L0 96zM160 448l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"section\": [256, 512, [], \"e447\", \"M110 0C49.2 0 0 49.2 0 110 0 133.7 7.6 155.8 20.5 174 7.6 192 0 214.1 0 238 0 291.7 38.9 337.6 91.9 346.4l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 25.4-20.6 46-46 46l-98 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l98 0c60.7 0 110-49.2 110-110 0-23.7-7.6-45.9-20.5-64 12.9-18 20.5-40.1 20.5-64 0-53.8-38.9-99.6-91.9-108.5l-61.7-10.3C80.2 151.6 64 132.4 64 110 64 84.6 84.6 64 110 64l98 0c17.7 0 32-14.3 32-32S225.7 0 208 0L110 0zm74.7 299.1c-6.5-2.4-13.4-4.3-20.5-5.5l-61.7-10.3c-22.2-3.7-38.4-22.9-38.4-45.3 0-9.2 2.7-17.8 7.4-25 6.5 2.4 13.4 4.3 20.5 5.5l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 9.2-2.7 17.8-7.4 25z\"],\n \"peace\": [512, 512, [9774], \"f67c\", \"M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8 224 66.7c-90.8 15.2-160 94.2-160 189.3 0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5l-94.3-77.1 0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1 0-95.1-69.2-174.1-160-189.3l0 174.2 134.8 110.3zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"star\": [576, 512, [11088, 61446], \"f005\", \"M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9z\"],\n \"flag\": [448, 512, [127988, 61725], \"f024\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-121.6 62.7-18.8c41.9-12.6 87.1-8.7 126.2 10.9 42.7 21.4 92.5 24 137.2 7.2l37.1-13.9c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-11.8 5.9c-44.9 22.5-97.8 22.5-142.8 0-36.4-18.2-78.3-21.8-117.2-10.1L64 54.4 64 32z\"],\n \"triangle-exclamation\": [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.1 480 472 480L40 480c-14.1 0-27.2-7.4-34.4-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zm0 352a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.5 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z\"],\n \"school-circle-exclamation\": [640, 512, [], \"e56c\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"graduation-cap\": [576, 512, [127891, \"mortar-board\"], \"f19d\", \"M48 195.8l209.2 86.1c9.8 4 20.2 6.1 30.8 6.1s21-2.1 30.8-6.1l242.4-99.8c9-3.7 14.8-12.4 14.8-22.1s-5.8-18.4-14.8-22.1L318.8 38.1C309 34.1 298.6 32 288 32s-21 2.1-30.8 6.1L14.8 137.9C5.8 141.6 0 150.3 0 160L0 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-260.2zm48 71.7L96 384c0 53 86 96 192 96s192-43 192-96l0-116.6-142.9 58.9c-15.6 6.4-32.2 9.7-49.1 9.7s-33.5-3.3-49.1-9.7L96 267.4z\"],\n \"store\": [512, 512, [], \"f54e\", \"M30.7 72.3C37.6 48.4 59.5 32 84.4 32l344 0c24.9 0 46.8 16.4 53.8 40.3l23.4 80.2c12.8 43.7-20.1 87.5-65.6 87.5-26.3 0-49.4-14.9-60.8-37.1-11.6 21.9-34.6 37.1-61.4 37.1-26.6 0-49.7-15-61.3-37-11.6 22-34.7 37-61.3 37-26.8 0-49.8-15.1-61.4-37.1-11.4 22.1-34.5 37.1-60.8 37.1-45.6 0-78.4-43.7-65.6-87.5L30.7 72.3zM96.4 352l320 0 0-66.4c7.6 1.6 15.5 2.4 23.5 2.4 14.3 0 28-2.6 40.5-7.2l0 151.2c0 26.5-21.5 48-48 48l-352 0c-26.5 0-48-21.5-48-48l0-151.2c12.5 4.6 26.1 7.2 40.5 7.2 8.1 0 15.9-.8 23.5-2.4l0 66.4z\"],\n \"user-astronaut\": [448, 512, [], \"f4fb\", \"M224 336c74.6 0 138.4-46.4 164-112l4 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-4 0C362.4 30.4 298.6-16 224-16S85.6 30.4 60 96l-4 0c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l4 0c25.6 65.6 89.4 112 164 112zM208 80l32 0c53 0 96 43 96 96s-43 96-96 96l-32 0c-53 0-96-43-96-96s43-96 96-96zM16 484.6C16 499.7 28.3 512 43.4 512l52.6 0 0-48c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 48 52.6 0c15.1 0 27.4-12.3 27.4-27.4 0-59.8-31.9-112.2-79.6-141-36.4 25.5-80.6 40.4-128.4 40.4s-92-14.9-128.4-40.4C47.9 372.4 16 424.8 16 484.6zM183.3 141.5c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6-6-21.2zM152 488l0 24 48 0 0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24zm120-24c-13.3 0-24 10.7-24 24l0 24 48 0 0-24c0-13.3-10.7-24-24-24z\"],\n \"building-flag\": [640, 512, [], \"e4d5\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 0c-17.7 0-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L496 32c0-17.7-14.3-32-32-32z\"],\n \"mug-saucer\": [576, 512, [\"coffee\"], \"f0f4\", \"M64 64c0-17.7 14.3-32 32-32l352 0c70.7 0 128 57.3 128 128S518.7 288 448 288c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 64zm448 96c0-35.3-28.7-64-64-64l0 128c35.3 0 64-28.7 64-64zM64 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"lemon\": [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64-6.6 0-13 1-19 2.9-22.5 7-48.1 14.9-71 9-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71-1.9 6-2.9 12.4-2.9 19 0 35.3 28.7 64 64 64 6.6 0 13-1 19.1-2.9 22.5-7 48.1-14.9 71-9 75.2 19.1 156.4-11 213.7-68.3S455.2 261.2 436.1 186c-5.8-22.9 2-48.4 9-71 1.9-6 2.9-12.4 2.9-19.1zM222.7 143c-52 15.2-96.5 59.7-111.7 111.7-3.7 12.7-17.1 20-29.8 16.3S61.2 254 65 241.3c19.8-67.7 76.6-124.5 144.3-144.3 12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"],\n \"caravan\": [640, 512, [], \"f8ff\", \"M32 96c0-35.3 28.7-64 64-64l320 0c70.7 0 128 57.3 128 128l0 192 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zM352 352l64 0c17.7 0 32-14.3 32-32l0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 160c0 17.7 14.3 32 32 32zM160 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 336a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"q\": [448, 512, [113], \"51\", \"M64 256c0 88.4 71.6 160 160 160 28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1c20.4-26.8 32.5-60.3 32.5-96.6 0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480 100.3 480 0 379.7 0 256S100.3 32 224 32 448 132.3 448 256c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"],\n \"lock\": [384, 512, [128274], \"f023\", \"M128 96l0 64 128 0 0-64c0-35.3-28.7-64-64-64s-64 28.7-64 64zM64 160l0-64C64 25.3 121.3-32 192-32S320 25.3 320 96l0 64c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z\"],\n \"paint-roller\": [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l16 0c44.2 0 80 35.8 80 80l0 96c0 44.2-35.8 80-80 80l-160 0c-8.8 0-16 7.2-16 16l0 18.7c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-18.7c0-44.2 35.8-80 80-80l160 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-16 0c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64z\"],\n \"volume-high\": [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C557.5 113.8 592 180.8 592 256s-34.5 142.2-88.7 186.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C598.5 426.7 640 346.2 640 256S598.5 85.2 533.6 32.5zM473.1 107c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C475.3 170.7 496 210.9 496 256s-20.7 85.3-53.2 111.8c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5c43.2-35.2 70.9-88.9 70.9-149s-27.7-113.8-70.9-149zm-60.5 74.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C393.1 227.6 400 241 400 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C434.1 312.9 448 286.1 448 256s-13.9-56.9-35.4-74.5zM80 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L128 160 80 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48z\"],\n \"folder-plus\": [512, 512, [], \"f65e\", \"M512 384c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240zM256 160c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"],\n \"mercury\": [384, 512, [9791], \"f223\", \"M117-4C106-17.8 85.8-20 72.1-9s-16 31.2-5 45C74.9 45.7 83.7 54.5 93.5 62.1 46.7 93.7 16 147.3 16 208 16 294.3 78.1 366.1 160 381.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-60.7-30.7-114.3-77.5-145.9 9.8-7.7 18.7-16.4 26.4-26.1 11.1-13.8 8.8-33.9-5-45S278-17.8 267-4c-17.6 22-44.7 36-75 36S134.7 18 117-4zm75 324c-61.9 0-112-50.1-112-112S130.1 96 192 96 304 146.1 304 208c0 61.8-50.1 112-111.9 112l-.1 0z\"],\n \"anchor\": [576, 512, [9875], \"f13d\", \"M288 64a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM192 96c0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 257.9c62.9-14.3 110.2-69.7 111.9-136.5l-16.1 14.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3L496 307.9C493.9 421 401.6 512 288 512S82.1 421 80 307.9L63.8 322.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3l-16.1-14.1c1.8 66.8 49.1 122.2 111.9 136.5l0-257.9c-37.3-13.2-64-48.7-64-90.5z\"],\n \"square-parking\": [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-184c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z\"],\n \"hanukiah\": [640, 512, [128334], \"f6e6\", \"M314.2 3.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104 8 117.3 18.7 128 32 128s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176-192 0c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32S0 174.3 0 192l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z\"],\n \"rotate-left\": [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M24 192l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-46.7-46.7c75.3-58.6 184.3-53.3 253.5 15.9 75 75 75 196.5 0 271.5s-196.5 75-271.5 0c-10.2-10.2-19-21.3-26.4-33-9.5-14.9-29.3-19.3-44.2-9.8s-19.3 29.3-9.8 44.2C49.7 408.7 61.4 423.5 75 437 175 537 337 537 437 437S537 175 437 75C342.8-19.3 193.3-24.7 92.7 58.8L41 7C34.1 .2 23.8-1.9 14.8 1.8S0 14.3 0 24L0 168c0 13.3 10.7 24 24 24z\"],\n \"heading\": [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 320 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-320-16 0C14.3 96 0 81.7 0 64z\"],\n \"crosshairs\": [576, 512, [], \"f05b\", \"M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM131.2 288c12.7 62.7 62.1 112.1 124.8 124.8l0-12.8c0-17.7 14.3-32 32-32s32 14.3 32 32l0 12.8c62.7-12.7 112.1-62.1 124.8-124.8L432 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l12.8 0C432.1 161.3 382.7 111.9 320 99.2l0 12.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-12.8C193.3 111.9 143.9 161.3 131.2 224l12.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-12.8 0zM288 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\n \"circle-nodes\": [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9 0-44.2-35.8-80-80-80-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128 35.8 128 0 163.8 0 208s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"],\n \"window-restore\": [576, 512, [], \"f2d2\", \"M512 96L160 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-64 48 0 0-192zM0 224c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224zm64 40c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 240c-13.3 0-24 10.7-24 24z\"],\n \"r\": [320, 512, [114], \"52\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0 102.4 146.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176 320 96.5 255.5 32 176 32L32 32zM176 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"],\n \"filter-circle-xmark\": [576, 512, [], \"e17b\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"gopuram\": [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 136c26.5 0 48 21.5 48 48l0 80c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-48 0 0-224-32 0 0-128-48 0 0 128 32 0 0 224-224 0 0-224 32 0 0-128-48 0 0 128-32 0 0 224-48 0c-26.5 0-48-21.5-48-48L0 336c0-26.5 21.5-48 48-48l0-80c0-26.5 21.5-48 48-48L96 24c0-13.3 10.7-24 24-24zM256 208c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zM208 400l0 64 96 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48zM256 96c-17.7 0-32 14.3-32 32l0 32 64 0 0-32c0-17.7-14.3-32-32-32z\"],\n \"heart-circle-minus\": [576, 512, [], \"e4ff\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"],\n \"star-of-life\": [512, 512, [], \"f621\", \"M208.5 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7l-122 70.4 122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7l-122-70.4 0 140.9c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9-122 70.4c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7l122-70.4-122-70.4c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7c8.8-15.3 28.4-20.5 43.7-11.7l122 70.4 0-140.9z\"],\n \"business-time\": [640, 512, [\"briefcase-clock\"], \"f64a\", \"M264 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0c-35.3 0-64 28.7-64 64l0 96 305 0c33.8-29.9 78.3-48 127-48 28.6 0 55.6 6.2 80 17.4l0-65.4c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L264 0c-30.9 0-56 25.1-56 56zm80 296c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l193.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-16.6 2.1-32.7 6-48l-22 0zm352 48a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 320c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z\"],\n \"fire-extinguisher\": [512, 512, [129519], \"f134\", \"M512 32c0-9.6-4.3-18.7-11.7-24.7S483.1-1.3 473.7 .6l-160 32C301.5 35.1 292 44.3 289 56l-65 0 0-24c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32l0 28.4c-55.3 12.3-101.3 49.5-125.5 99.1-5.8 11.9-.9 26.3 11.1 32.1s26.3 .9 32.1-11.1C62 146.9 91.8 121.1 128 110l0 28.8c-37.8 18-64 56.5-64 101.2l0 128 224 0 0-128c0-44.7-26.2-83.2-64-101.2l0-34.8 65 0c3 11.7 12.5 20.9 24.7 23.4l160 32c9.4 1.9 19.1-.6 26.6-6.6S512 137.6 512 128l0-96zM288 448l0-32-224 0 0 32c0 35.3 28.7 64 64 64l96 0c35.3 0 64-28.7 64-64z\"],\n \"arrow-down-long\": [320, 512, [\"long-arrow-down\"], \"f175\", \"M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 434.7 192 0c0-17.7-14.3-32-32-32S128-17.7 128 0l0 434.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z\"],\n \"user-minus\": [640, 512, [], \"f503\", \"M136 128a120 120 0 1 1 240 0 120 120 0 1 1 -240 0zM48 482.3C48 383.8 127.8 304 226.3 304l59.4 0c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3zM472 168l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"money-check\": [512, 512, [], \"f53c\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM96 312c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zm24-136c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0z\"],\n \"house-laptop\": [640, 512, [\"laptop-house\"], \"e066\", \"M448 240l19.9 0c15.5 0 28.1-12.6 28.1-28.1 0-7.6-3.1-14.9-8.6-20.2L283.5-4.9C276.1-12 266.3-16 256-16s-20.1 4-27.5 11.1L24.6 191.7C19.1 197 16 204.3 16 211.9 16 227.4 28.6 240 44.1 240l19.9 0 0 144c0 35.3 28.7 64 64 64l85.7 0c7.4-6.6 16.4-11.4 26.3-14l0-130c0-5.5 .7-10.9 2-16l-10 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24 144 0zM352 352l160 0 0 128-160 0 0-128zm-64-32l0 160-32 0c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l288 0c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16l-32 0 0-160c0-17.7-14.3-32-32-32l-224 0c-17.7 0-32 14.3-32 32z\"],\n \"download\": [448, 512, [], \"f019\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 242.7 256 32zM64 320c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-46.9 0-56.6 56.6c-31.2 31.2-81.9 31.2-113.1 0L110.9 320 64 320zm304 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"couch\": [640, 512, [], \"f4b8\", \"M144 272C144 224.7 109.8 185.4 64.8 177.5 72 113.6 126.2 64 192 64l256 0c65.8 0 120 49.6 127.2 113.5-45 8-79.2 47.2-79.2 94.5l0 32-352 0 0-32zM0 384L0 272c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 448 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64z\"],\n \"road-lock\": [576, 512, [], \"e567\", \"M256 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L33.4 420.5C25.9 450.7 48.8 480 80 480l175.9 0 0-64c0-17.7 14.3-32 32-32 6.1 0 11.8 1.7 16.7 4.7 2.8-23.9 14.3-45.1 31.4-60.3l0-24.4c0-70.7 57.3-128 128-128 6.2 0 12.4 .4 18.4 1.3L458.5 80.6C451.4 52.1 425.8 32 396.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 80.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM352 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"],\n \"scissors\": [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6-28.3-28.3-74.1-28.3-102.4 0L256 192 216.5 152.5c4.9-12.6 7.5-26.2 7.5-40.5 0-61.9-50.1-112-112-112S0 50.1 0 112 50.1 224 112 224c14.3 0 27.9-2.7 40.5-7.5L192 256zm97.9 97.9L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0 7.1-7.1 7.1-18.5 0-25.6l-145.3-145.3-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\n \"bug\": [576, 512, [], \"f188\", \"M192 96c0-53 43-96 96-96s96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6zm345.6 12.8c10.6 14.1 7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 2.6-.1 5.3-.2 7.9l83.4 62.5c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4l-63.1-47.3c-23.2 44.2-66.5 76.2-117.7 83.9L312 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 230.2c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c2.5-10.4 6.5-20.2 11.8-29.1L44.8 153.6c-14.1-10.6-17-30.7-6.4-44.8s30.7-17 44.8-6.4L192 184c12.3-5.1 25.8-8 40-8l112 0c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4z\"],\n \"arrow-right-from-bracket\": [512, 512, [\"sign-out\"], \"f08b\", \"M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0zM502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"],\n \"hand-holding-hand\": [576, 512, [], \"e4f7\", \"M466.8 186.5l42.5-42.5 34.7 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L223.6 16c-29 0-57.3 9.3-80.7 26.5L16.3 135.8c-17.8 13.1-21.6 38.1-8.5 55.9s38.1 21.6 55.9 8.5L183.4 112 296 112c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l152.2 0c33.9 0 66.5-13.5 90.5-37.5zm-357.5 139L66.7 368 32 368c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 400 280 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"],\n \"stroopwafel\": [512, 512, [], \"f551\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3-33.9-33.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm67.9 67.9l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zM278.6 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm22.6-67.9l-45.3 45.3-45.3-45.3 45.3-45.3 45.3 45.3z\"],\n \"child\": [320, 512, [], \"f1ae\", \"M96 64A64 64 0 1 1 224 64 64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L80 287.8 59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z\"],\n \"ice-cream\": [384, 512, [127848], \"f810\", \"M335.1 160c.6-5.3 .9-10.6 .9-16 0-79.5-64.5-144-144-144S48 64.5 48 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l288 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM64 304L169.2 529.5c4.1 8.8 13 14.5 22.8 14.5s18.6-5.7 22.8-14.5L320 304 64 304z\"],\n \"computer-mouse\": [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192l168 0 0-192-8 0C71.6 0 0 71.6 0 160l0 32zm0 48L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-112-384 0zm384-48l0-32C384 71.6 312.4 0 224 0l-8 0 0 192 168 0z\"],\n \"faucet\": [512, 512, [], \"e005\", \"M192 64c0-17.7 14.3-32 32-32s32 14.3 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 64 18.7 0c8.5 0 16.6 3.4 22.6 9.4l22.6 22.6 32 0c88.4 0 160 71.6 160 160 0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-64-96 0c-17.7 0-32-14.3-32-32S78.3 64 96 64l96 0z\"],\n \"award\": [448, 512, [], \"f559\", \"M245.9-25.9c-13.4-8.2-30.3-8.2-43.7 0-24.4 14.9-39.5 18.9-68.1 18.3-15.7-.4-30.3 8.1-37.9 21.9-13.7 25.1-24.8 36.2-49.9 49.9-13.8 7.5-22.2 22.2-21.9 37.9 .7 28.6-3.4 43.7-18.3 68.1-8.2 13.4-8.2 30.3 0 43.7 14.9 24.4 18.9 39.5 18.3 68.1-.4 15.7 8.1 30.3 21.9 37.9 22.1 12.1 33.3 22.1 45.1 41.5L42.7 458.5c-5.9 11.9-1.1 26.3 10.7 32.2l86 43c11.5 5.7 25.5 1.4 31.7-9.8l52.8-95.1 52.8 95.1c6.2 11.2 20.2 15.6 31.7 9.8l86-43c11.9-5.9 16.7-20.3 10.7-32.2l-48.6-97.2c11.7-19.4 23-29.4 45.1-41.5 13.8-7.5 22.2-22.2 21.9-37.9-.7-28.6 3.4-43.7 18.3-68.1 8.2-13.4 8.2-30.3 0-43.7-14.9-24.4-18.9-39.5-18.3-68.1 .4-15.7-8.1-30.3-21.9-37.9-25.1-13.7-36.2-24.8-49.9-49.9-7.5-13.8-22.2-22.2-37.9-21.9-28.6 .7-43.7-3.4-68.1-18.3zM224 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\n \"person-drowning\": [640, 512, [], \"e545\", \"M264 88a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM133.9 65.6c16.8-5.6 34.9 3.5 40.5 20.2l10.9 32.8c9.4 28.3 33.2 49.5 62.5 55.6 5.6 1.2 11.3 1.8 17.1 1.8l88 0c17.2 0 34.3-2.8 50.6-8.2l114.4-38.1c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L423.7 228.5c-8.4 2.8-17 5.1-25.7 6.9l-26.5 88.3c-6.1 3.4-12.1 7.3-17.9 11.7-22.1 16.6-29.1 16.6-51.2 0-26.2-19.7-56.9-30.2-87.8-31.3l20.2-67.2c-51.5-10.7-93.5-48.1-110.2-98l-10.9-32.8c-5.6-16.8 3.5-34.9 20.2-40.5zM403.4 412.1C379.1 430.3 351.1 448 320 448s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"],\n \"camera-rotate\": [512, 512, [], \"e0d8\", \"M138.7 96l10.4-31.2C155.6 45.2 173.9 32 194.6 32l122.8 0c20.7 0 39 13.2 45.5 32.8L373.3 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l74.7 0zM96 305.9c0 3.9 1.4 7.7 4 10.6l48 54c6.4 7.2 17.6 7.2 23.9 0l48-54c2.6-2.9 4-6.7 4-10.6l0-1.9c0-8.8-7.2-16-16-16l-24 0c0-39.8 32.2-72 72-72 4.4 0 8.7 .4 12.9 1.2l34.9-39.3c-14.6-6.4-30.8-9.9-47.8-9.9-66.3 0-120 53.7-120 120l-24 0c-8.8 0-16 7.2-16 16l0 1.9zm196-46.5c-2.6 2.9-4 6.7-4 10.6l0 1.9c0 8.8 7.2 16 16 16l24 0c0 39.8-32.2 72-72 72-4.4 0-8.7-.4-12.9-1.2l-34.9 39.3c14.7 6.4 30.8 9.9 47.8 9.9 66.3 0 120-53.7 120-120l24 0c8.8 0 16-7.2 16-16l0-1.9c0-3.9-1.4-7.7-4-10.6l-48-54c-6.4-7.2-17.6-7.2-23.9 0l-48 54z\"],\n \"face-grin-hearts\": [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512c141.4 0 256-114.6 256-256 0-23.3-3.1-45.9-8.9-67.3 5.5-13.5 8.9-28.4 8.9-44.7 0-53-43-96-96-96l-2.9 0c-2.5 0-5 .1-7.4 .3-42.1-30.4-93.8-48.3-149.7-48.3S148.4 17.9 106.3 48.3c-2.5-.2-4.9-.3-7.4-.3L96 48c-53 0-96 43-96 96 0 16.3 3.5 31.2 8.9 44.7-5.8 21.4-8.9 44-8.9 67.3 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM322.9 96c13.5 0 26.5 5.4 36 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0zm-188 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0c13.5 0 26.5 5.4 36 14.9z\"],\n \"file-fragment\": [384, 512, [], \"e697\", \"M64 0C28.7 0 0 28.7 0 64l0 240 128 0c44.2 0 80 35.8 80 80l0 128 112 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM32 352c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0z\"],\n \"person-military-rifle\": [448, 512, [], \"e54b\", \"M128 39c0-13 10-23.8 22.9-24.9L302.7 1.4C312 .7 320 8 320 17.4L320 48c0 8.8-7.2 16-16 16L153 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L320 369.7 320 480c0 1.3-.1 2.5-.2 3.8L145.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L389.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l27.7 16c7.7 4.4 10.3 14.2 5.9 21.9l-55.5 96.1 1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L360.7 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM288 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1S-5.7 438.7 5.6 419.7L81.7 290.8c9.4-15.8 21.7-29.3 36-40L299.1 510c-3.5 1.3-7.2 2-11.1 2zM264 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"toggle-on\": [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192S490 64 384 64L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\n \"lungs-virus\": [576, 512, [], \"e067\", \"M288 0c-17.7 0-32 14.3-32 32l0 151.3c9.6-4.8 20.5-7.5 32-7.5s22.4 2.7 32 7.5L320 32c0-17.7-14.3-32-32-32zM450.1 451c8 18.3 8.1 39.2 .2 57.5 10.2 2.3 20.6 3.5 31.2 3.5 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 139.9c1.2 2.2 2.2 4.6 3.1 6.9 26.4-11.6 58.3-6.6 79.9 15s26.6 53.6 15 79.9C477 327.2 496 353.3 496 383.8s-19 56.7-45.9 67.1zM220.9 221.8c.9-2.4 2-4.7 3.1-6.9l0-138.5c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 10.5 0 21-1.2 31.2-3.5-7.9-18.3-7.8-39.3 .2-57.5-26.9-10.4-45.9-36.6-45.9-67.1s19-56.7 45.9-67.1c-11.6-26.4-6.6-58.3 15-79.9s53.6-26.6 79.9-15zM152 408c28.8 0 43.2 34.8 22.9 55.2-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-20.4-20.4-5.9-55.2 22.9-55.2 13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-20.4 20.4-55.2 5.9-55.2-22.9 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-80a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"table-tennis-paddle-ball\": [512, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M97 127l67.4-67.4c38.2-38.2 90-59.6 144-59.6 112.5 0 203.7 91.2 203.7 203.6 0 46.4-15.8 91.1-44.5 127-23.6-16.8-52.4-26.7-83.5-26.7-31.1 0-59.9 9.9-83.4 26.6L97 127zM240 448c0 9.7 1 19.1 2.8 28.2-19.8-5.2-38-15.5-52.7-30.2-12.2-12.2-31.9-12.2-44.1 0L96.6 495.4c-10.6 10.6-25 16.6-40 16.6-31.2 0-56.6-25.3-56.6-56.6 0-15 6-29.4 16.6-40l49.4-49.4c12.2-12.2 12.2-31.9 0-44.1-21.7-21.7-33.9-51.2-33.9-81.9 0-29.4 11.1-57.6 31.1-79L266.6 364.6C249.9 388.1 240 416.9 240 448zm144-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\n \"boxes-packing\": [576, 512, [], \"e4c7\", \"M208 0l80 0 0 56c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-56 80 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-108.8 0c8.2-14.1 12.8-30.5 12.8-48l0-160c10-13.4 16-30 16-48l0-32c0-44.2-35.8-80-80-80l-176 0 0-96c0-26.5 21.5-48 48-48zM32 336l320 0 0 128c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-128zM48 192l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z\"],\n \"person-chalkboard\": [640, 512, [], \"e53d\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM176 512l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-48 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 64-122.7 0c-45.6 0-88.5 21.6-115.6 58.2L14.3 260.9c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\n \"dice-two\": [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"arrow-right-arrow-left\": [512, 512, [8644, \"exchange\"], \"f0ec\", \"M502.6 150.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L402.7 160 32 160c-17.7 0-32-14.3-32-32S14.3 96 32 96l370.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 352 480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-370.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"],\n \"football\": [512, 512, [127944, \"football-ball\"], \"f44e\", \"M261.1 22.6c-89 18-150.5 63.4-190 123.9-23.3 35.6-38.1 75.3-46.7 115.5L251.9 489.4c89-18 150.5-63.4 190.1-123.9 23.3-35.6 38.1-75.3 46.7-115.5L261.1 22.6zm236 168.1c3.2-42.3 .7-83.3-4.8-118.7-4.4-27.8-26.8-48-53.1-51.6-43-5.9-82.2-7.5-117.8-5.4L497.1 190.6zM191.7 497.1L15.9 321.4c-3.2 42.3-.7 83.3 4.8 118.7 4.4 27.8 26.8 48 53.1 51.6 43 5.9 82.2 7.5 117.8 5.4zM271.5 143c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"truck-monster\": [576, 512, [], \"f63b\", \"M336 96l48 64-128 0 0-64 80 0zm128 64L387.2 57.6C375.1 41.5 356.1 32 336 32L224 32c-17.7 0-32 14.3-32 32l0 96-144 0c-26.5 0-48 21.5-48 48l0 64c0 18.1 10.1 33.9 24.9 42.1-.5 5.7 1.1 11.6 4.7 16.4-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.3 31.3l11.3 11.3c8.6 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.7-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.3-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 2.4-3.2 3.9-6.8 4.5-10.5l114.2 0c.6 3.7 2.1 7.3 4.5 10.5-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.2 31.3l11.3 11.3c8.5 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.8-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.2-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 3.6-4.8 5.2-10.7 4.7-16.4 14.8-8.2 24.9-23.9 24.9-42.1l0-64c0-26.5-21.5-48-48-48l-64 0zM128 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\n \"asterisk\": [448, 512, [10033, 61545], \"2a\", \"M224 0c17.7 0 32 14.3 32 32l0 168.6 144-83.1c15.3-8.8 34.9-3.6 43.7 11.7s3.6 34.9-11.7 43.7L288 256 432 339.1c15.3 8.8 20.6 28.4 11.7 43.7s-28.4 20.6-43.7 11.7L256 311.4 256 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-168.6-144 83.1c-15.3 8.8-34.9 3.6-43.7-11.7S.7 348 16 339.1L160 256 16 172.9C.7 164-4.5 144.5 4.3 129.1S32.7 108.6 48 117.4L192 200.6 192 32c0-17.7 14.3-32 32-32z\"],\n \"battery-full\": [640, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l304 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-304 0z\"],\n \"child-dress\": [320, 512, [], \"e59c\", \"M224 64A64 64 0 1 0 96 64 64 64 0 1 0 224 64zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.7 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2L86.2 285.5 55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z\"],\n \"face-kiss-beam\": [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"trash-can-arrow-up\": [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"],\n \"font\": [512, 512, [], \"f031\", \"M285.1 50.7C279.9 39.3 268.5 32 256 32s-23.9 7.3-29.1 18.7L59.5 416 48 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-6.1 0 22-48 208.3 0 22 48-6.1 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0-167.4-365.3zM330.8 304L181.2 304 256 140.8 330.8 304z\"],\n \"bore-hole\": [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32l0 232.6c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM0 384l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-272c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48l0 144c0 61.9-50.1 112-112 112S144 381.9 144 320l0-144c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48L0 384z\"],\n \"virus-covid\": [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-11.3-11.3-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3l23.8 23.8 11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l11.3-11.3-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1l-23.8 23.8 11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l11.3 11.3 23.8-23.8C97.9 338.8 85.8 310.7 81.6 280l-33.6 0 0 16c0 13.3-10.7 24-24 24S0 309.3 0 296l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92 149.7 115.7c23.5-17.9 51.7-29.9 82.3-34.1l0-33.6-16 0c-13.3 0-24-10.7-24-24zm32 200a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"file-pdf\": [576, 512, [], \"f1c1\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM240 380c-11 0-20 9-20 20l0 128c0 11 9 20 20 20s20-9 20-20l0-28 12 0c33.1 0 60-26.9 60-60s-26.9-60-60-60l-32 0zm32 80l-12 0 0-40 12 0c11 0 20 9 20 20s-9 20-20 20zm96-80c-11 0-20 9-20 20l0 128c0 11 9 20 20 20l32 0c28.7 0 52-23.3 52-52l0-64c0-28.7-23.3-52-52-52l-32 0zm20 128l0-88 12 0c6.6 0 12 5.4 12 12l0 64c0 6.6-5.4 12-12 12l-12 0zm88-108l0 128c0 11 9 20 20 20s20-9 20-20l0-44 28 0c11 0 20-9 20-20s-9-20-20-20l-28 0 0-24 28 0c11 0 20-9 20-20s-9-20-20-20l-48 0c-11 0-20 9-20 20z\"],\n \"language\": [576, 512, [], \"f1ab\", \"M160 0c17.7 0 32 14.3 32 32l0 32 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-9.6 0-8.4 23.1c-16.4 45.2-41.1 86.5-72.2 122 14.2 8.8 29 16.6 44.4 23.5l50.4 22.4 62.2-140c5.1-11.6 16.6-19 29.2-19s24.1 7.4 29.2 19l128 288c7.2 16.2-.1 35.1-16.2 42.2s-35.1-.1-42.2-16.2l-20-45-157.5 0-20 45c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l39.8-89.5-50.4-22.4c-23-10.2-45-22.4-65.8-36.4-21.3 17.2-44.6 32.2-69.5 44.7L78.3 380.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l34.5-17.3c16.3-8.2 31.8-17.7 46.4-28.3-13.8-12.7-26.8-26.4-38.9-40.9L81.6 224.7c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l10.2 12.2c11.5 13.9 24.1 26.8 37.4 38.7 27.5-30.4 49.2-66.1 63.5-105.4l.5-1.2-210.3 0C14.3 128 0 113.7 0 96S14.3 64 32 64l96 0 0-32c0-17.7 14.3-32 32-32zM416 270.8L365.7 384 466.3 384 416 270.8z\"],\n \"shield-halved\": [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0zm0 66.8l0 378.1c138-66.8 175.1-214.8 176-303.4l-176-74.6 0 0z\"],\n \"caret-up\": [320, 512, [], \"f0d8\", \"M140.3 135.2c12.6-10.3 31.1-9.5 42.8 2.2l128 128c9.2 9.2 11.9 22.9 6.9 34.9S301.4 320 288.5 320l-256 0c-12.9 0-24.6-7.8-29.6-19.8S.7 274.5 9.9 265.4l128-128 2.4-2.2z\"],\n \"file-pen\": [640, 512, [128221, \"file-edit\"], \"f31c\", \"M128.1 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l146.2 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l132.2-132.2 0-97.5c0-17-6.7-33.3-18.7-45.3L322.8 18.7C310.8 6.7 294.5 0 277.6 0L128.1 0zM389.6 176l-93.5 0c-13.3 0-24-10.7-24-24l0-93.5 117.5 117.5zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z\"],\n \"person-biking\": [576, 512, [128692, \"biking\"], \"f84a\", \"M368 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L256 305.1 256 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L263 232.9 323.3 184.4 364 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM112 512a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm352 0a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"],\n \"book-open-reader\": [512, 512, [\"book-reader\"], \"f5da\", \"M256 152a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm0 298.7l0-149.3c16.3-6.8 32.9-13.7 49.7-20.7 39-16.2 80.8-24.6 123.1-24.6l19.2 0 0 160-19.2 0c-59.1 0-117.7 11.7-172.3 34.5l-.5 .2zM256 232l-25.1-10.5C184.1 202 133.9 192 83.2 192L48 192c-26.5 0-48 21.5-48 48L0 432c0 26.5 21.5 48 48 48l35.2 0c50.7 0 100.9 10 147.7 29.5l12.8 5.3c7.9 3.3 16.7 3.3 24.6 0l12.8-5.3c46.8-19.5 97-29.5 147.7-29.5l35.2 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-35.2 0c-50.7 0-100.9 10-147.7 29.5L256 232z\"],\n \"glass-water-droplet\": [384, 512, [], \"e4f5\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64 317.6 64 301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60s64-26.9 64-60z\"],\n \"tower-broadcast\": [576, 512, [\"broadcast-tower\"], \"f519\", \"M87.9 11.5c-11.3-6.9-26.1-3.2-33 8.1-24.8 41-39 89.1-39 140.4s14.2 99.4 39 140.4c6.9 11.3 21.6 15 33 8.1s15-21.6 8.1-33C75.7 241.9 64 202.3 64 160S75.7 78.1 96.1 44.4c6.9-11.3 3.2-26.1-8.1-33zm400.1 0c-11.3 6.9-15 21.6-8.1 33 20.4 33.7 32.1 73.3 32.1 115.6s-11.7 81.9-32.1 115.6c-6.9 11.3-3.2 26.1 8.1 33s26.1 3.2 33-8.1c24.8-41 39-89.1 39-140.4S545.8 60.6 521 19.6c-6.9-11.3-21.6-15-33-8.1zM320 215.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.7 12.9 44.4 32 55.4L256 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-264.6zM180.2 91c7.2-11.2 3.9-26-7.2-33.2s-26-3.9-33.2 7.2c-17.6 27.4-27.8 60-27.8 95s10.2 67.6 27.8 95c7.2 11.2 22 14.4 33.2 7.2s14.4-22 7.2-33.2c-12.8-19.9-20.2-43.6-20.2-69s7.4-49.1 20.2-69zM436.2 65c-7.2-11.2-22-14.4-33.2-7.2s-14.4 22-7.2 33.2c12.8 19.9 20.2 43.6 20.2 69s-7.4 49.1-20.2 69c-7.2 11.2-3.9 26 7.2 33.2s26 3.9 33.2-7.2c17.6-27.4 27.8-60 27.8-95s-10.2-67.6-27.8-95z\"],\n \"minimize\": [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2S322.1 32.2 329 39l40 40 73.4-73.4C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143 473 183c6.9 6.9 8.9 17.2 5.2 26.2S465.7 224 456 224zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433 329 473c-6.9 6.9-17.2 8.9-26.2 5.2S288 465.7 288 456l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40-73.4 73.4C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2S46.3 288 56 288l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8S32.2 189.9 39 183L79 143 5.7 69.7C2 66 0 61.1 0 56S2 46 5.7 42.3L42.3 5.7C46 2 50.9 0 56 0S66 2 69.7 5.7L143 79 183 39c6.9-6.9 17.2-8.9 26.2-5.2S224 46.3 224 56l0 144c0 13.3-10.7 24-24 24L56 224z\"],\n \"arrow-right-to-city\": [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 80 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 336l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM153 167l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"],\n \"laptop-medical\": [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"bread-slice\": [512, 512, [], \"f7ec\", \"M64 432l0-176c-35.3 0-64-28.7-64-64 0-216.5 512-216.5 512 0 0 35.3-28.7 64-64 64l0 176c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48z\"],\n \"globe\": [512, 512, [127760], \"f0ac\", \"M351.9 280l-190.9 0c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zM160.9 232l190.9 0C349 167.5 334.7 108.1 314.4 64.6 303 40.2 290.7 22.8 279.3 12.2 268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4zm-48 0C116.4 146.4 138.5 66.9 170.8 14.7 78.7 47.3 10.9 131.2 1.5 232l111.4 0zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3L1.5 280zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3l-111.4 0zm111.4-48C501.9 131.2 434.1 47.3 342 14.7 374.3 66.9 396.4 146.4 399.9 232l111.4 0z\"],\n \"folder-minus\": [512, 512, [], \"f65d\", \"M448 448L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64zM184 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"mask-face\": [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1L64 128c-35.3 0-64 28.7-64 64l0 78.7c0 62.6 45.2 116 107 126.3l97.9 16.3c33 22 72.6 34.7 115.1 34.7s82.2-12.8 115.1-34.7L533 396.9c61.7-10.3 107-63.7 107-126.3l0-78.7c0-35.3-28.7-64-64-64l-89.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM135.9 336.9l-18.4-3.1C86.6 328.7 64 302 64 270.7l0-78.7 48 0 0 48c0 35 8.6 67.9 23.9 96.9zm386.6-3.1l-18.4 3.1C519.4 307.9 528 275 528 240l0-48 48 0 0 78.7c0 31.3-22.6 58-53.5 63.1zM192 232c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm56 56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"bong\": [512, 512, [], \"f55c\", \"M448.5 384c0 41.5-13.1 79.9-35.5 111.3-7.9 11.1-21.2 16.7-34.8 16.7l-243.3 0c-13.7 0-26.9-5.6-34.8-16.7-22.4-31.4-35.5-69.8-35.5-111.3 0-71.1 38.6-133.1 96-166.3l0-153.7c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.7c14.2 8.2 27.2 18.2 38.8 29.6l39.3-39.3-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16 16 32 32 48 48 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3c17.3 28.9 27.3 62.6 27.3 98.8zM288.5 64l-64 0 0 190.6-32 18.5c-19.5 11.3-35.7 27.5-46.9 46.9l221.8 0c-11.2-19.4-27.4-35.6-46.9-46.9l-32-18.5 0-190.6z\"],\n \"road-bridge\": [576, 512, [], \"e563\", \"M32 32l208 0 0 64-24 0 0 64 24 0 0 129.3c-45.4 7.6-80 47.1-80 94.7l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64S14.3 32 32 32zM88 96l0 64 80 0 0-64-80 0zM336 32l72 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 72 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-72 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-72 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm96 160c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24z\"],\n \"arrow-up-9-1\": [512, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM365.1 206.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 112a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm42.7 182c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26z\"],\n \"mountain-city\": [640, 512, [], \"e52e\", \"M256.3 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-77.8 0c4-15.4 2.4-32.6-6.7-48.2L354.6 256 368.3 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-6.1 0-11.4 3.4-14.1 8.5l-42.6-73c-6-10.2-14.1-18-23.3-23.3l0-56.2zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm160 96l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm-272-64.7l-65.1 111.6 33.1 33.1 48-48 40.4 0-56.4-96.7zm-27.6-47.9c12.3-21.2 42.9-21.2 55.3 0L420.3 463.9c12.4 21.3-2.9 48.1-27.6 48.1L56 512c-24.7 0-40.1-26.8-27.6-48.1L196.7 175.4z\"],\n \"arrow-down-9-1\": [512, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm134.5-184l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 112a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-5.3 182c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4z\"],\n \"face-grin-wide\": [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64 14.3-64 32-64 32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"],\n \"poop\": [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7 46.9 6.3 83.1 46.5 83.1 95.1 0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64 0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72 0 23.2-11 43.8-28 57 34.1 5.7 60 35.3 60 71 0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72 0-35.7 25.9-65.3 60-71-17-13.2-28-33.8-28-57 0-39.8 32.2-72 72-72l13.7 0c-13.3-11.7-21.7-28.9-21.7-48 0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80 0-9.2-1.5-17.9-4.3-26.1-1.8-5.2-.8-11.1 2.8-15.4z\"],\n \"dharmachakra\": [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10.1 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.6 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.6-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"battery-quarter\": [640, 512, [\"battery-2\"], \"f243\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-64 0z\"],\n \"ankh\": [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1-5.9 6.2-11.8 11.8-17.4 16.7-5.6-4.9-11.5-10.5-17.4-16.7-25.9-27.5-46.6-62.6-46.6-104.1zM160 0C89.3 0 32 57.3 32 128 32 180.4 53.5 223.5 78.8 256L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0C266.5 223.5 288 180.4 288 128 288 57.3 230.7 0 160 0z\"],\n \"diamond\": [512, 512, [9830], \"f219\", \"M17 215L215 17C225.9 6.1 240.6 0 256 0s30.1 6.1 41 17L495 215c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L297 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17L17 297C6.1 286.1 0 271.4 0 256s6.1-30.1 17-41z\"],\n \"subscript\": [576, 512, [], \"f12c\", \"M96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64zM544 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9 5.6 11.2 16.9 17.7 28.6 17.7l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z\"],\n \"rupee-sign\": [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm285.1-32l34.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1 0 5.7 3.7 10.7 9.1 12.5l49.4 15.9c31.9 10.3 53.5 39.9 53.5 73.4 0 42.6-34.5 77.1-77.1 77.1L320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l50.9 0c7.2 0 13.1-5.9 13.1-13.1 0-5.7-3.7-10.7-9.1-12.5l-49.4-15.9c-31.9-10.3-53.5-39.9-53.5-73.4 0-42.6 34.5-77.1 77.1-77.1z\"],\n \"person-rifle\": [512, 512, [], \"e54e\", \"M416 0L384 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7L432 16c0-8.8-7.2-16-16-16zM224 208C118 208 32 294 32 400l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-32.5 12.1-62.1 32-84.7l0 196.7 160 0 0-293.1c-20-7.1-41.6-10.9-64-10.9zM280 88a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z\"],\n \"d\": [384, 512, [100], \"44\", \"M0 64C0 46.3 14.3 32 32 32l128 0c123.7 0 224 100.3 224 224S283.7 480 160 480L32 480c-17.7 0-32-14.3-32-32L0 64zM64 96l0 320 96 0c88.4 0 160-71.6 160-160S248.4 96 160 96L64 96z\"],\n \"square-nfi\": [448, 512, [], \"e576\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM93 172.3l35 63 0-51.4c0-13.3 10.7-24 24-24s24 10.7 24 24l0 144c0 10.9-7.4 20.5-18 23.2s-21.7-2-27-11.6l-35-63 0 51.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-10.9 7.4-20.5 18-23.2s21.7 2 27 11.6zM208 184c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 32 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144zm192 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"teeth\": [512, 512, [], \"f62e\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM144 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm128 0l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM80 176c-17.7 0-32 14.3-32 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32zm320 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32zM48 336c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16zm144 48c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm128 0c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm112-16c17.7 0 32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16c0 17.7 14.3 32 32 32z\"],\n \"magnifying-glass-dollar\": [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM212 96c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L168 256c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z\"],\n \"dumpster-fire\": [640, 512, [], \"f794\", \"M164.3 64L138.7 192 56 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L58.5 80.4C61.8 70.6 71 64 81.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM344 64l82.7 0 16 80c-14.7 .2-29.3 5.5-40.9 15.9-11.5 10.3-22.5 21-32.8 32.1l-24.9 0 0-128zM96 240l233.2 0c-6.4 8.8-12.3 17.6-17.7 26.3-21.4 34.7-39.5 76.1-39.5 115.8 0 17.1 2.1 33.8 6 49.9l-120.4 0 1.9 10.3c3.2 17.4-8.4 34-25.8 37.2s-34-8.4-37.2-25.8C71 313.3 58 242.1 57.7 240L96 240zm512-72c0 11-7.4 20.3-17.5 23.1-.9-.8-1.7-1.6-2.6-2.4-21.8-20-54.3-21.8-78-5.5-4.2-4.3-8.5-8.5-12.9-12.6l-21.3-106.6 83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1zM505.7 240.3L518 226.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM544 432.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n \"upload\": [448, 512, [], \"f093\", \"M256 109.3L256 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-210.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 109.3zM224 400c44.2 0 80-35.8 80-80l80 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64l80 0c0 44.2 35.8 80 80 80zm144 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"user-slash\": [576, 512, [62714, \"user-alt-slash\", \"user-large-slash\"], \"f506\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L311.5 245.7c55-10.9 96.5-59.5 96.5-117.7 0-66.3-53.7-120-120-120-58.2 0-106.8 41.5-117.7 96.5L41-24.9zM235.6 305.4C147.9 316.6 80 391.5 80 482.3 80 498.7 93.3 512 109.7 512l332.5 0-206.6-206.6z\"],\n \"arrow-left\": [512, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 105.4-105.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"],\n \"vial-virus\": [576, 512, [], \"e597\", \"M64 32C64 14.3 78.3 0 96 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 151.7c-18.5 0-37 7-51.1 21.1-21.6 21.6-26.6 53.6-15 79.9-26.9 10.4-45.9 36.6-45.9 67.1s19 56.7 45.9 67.1c-7.3 16.5-8 35.2-2.3 52.2-13.4 5.7-28.2 8.8-43.6 8.8-61.9 0-112-50.1-112-112L96 64C78.3 64 64 49.7 64 32zm96 32l0 128 96 0 0-128-96 0zM280 408c-13.3 0-24-10.7-24-24s10.7-24 24-24c28.8 0 43.2-34.8 22.9-55.2-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.4 20.4 55.2 5.9 55.2-22.9 0-13.3 10.7-24 24-24s24 10.7 24 24c0 28.8 34.8 43.2 55.2 22.9 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.4 20.4-5.9 55.2 22.9 55.2 13.3 0 24 10.7 24 24s-10.7 24-24 24c-28.8 0-43.2 34.8-22.9 55.2 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.4-20.4-55.2-5.9-55.2 22.9 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-28.8-34.8-43.2-55.2-22.9-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.4-20.4 5.9-55.2-22.9-55.2zm104-32a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"check-double\": [384, 512, [], \"f560\", \"M249.9 66.8c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-106 145.7-37.5-37.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l128-176zm128 136c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-170 233.7-69.5-69.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l192-264z\"],\n \"paw\": [512, 512, [], \"f1b0\", \"M234.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5 .3-86.2 32.6-96.8 70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3-14.3-70.1 10.2-84.1 59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2-25.8 0-46.7-20.9-46.7-46.7l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3 29.1 51.7 10.2 84.1-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5 46.9 53.9 32.6 96.8-52.1 69.1-84.4 58.5z\"],\n \"helmet-safety\": [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M352 264l0-200c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 200c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-185.9C90 109.8 32 191.8 32 288l0 64 512 0 0-64c-1-95.2-58.4-177.7-144-209.8L400 264c0 13.3-10.7 24-24 24s-24-10.7-24-24zM40 400c-22.1 0-40 17.9-40 40s17.9 40 40 40l496 0c22.1 0 40-17.9 40-40s-17.9-40-40-40L40 400z\"],\n \"e\": [320, 512, [101], \"45\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"],\n \"face-laugh-squint\": [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM107.7 332.1C102 318 113.4 304 128.6 304l254.9 0c15.2 0 26.6 14 20.9 28.1-23.8 58.6-81.2 99.9-148.3 99.9s-124.6-41.3-148.3-99.9zm15-188.8c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"],\n \"down-left-and-up-right-to-center\": [512, 512, [\"compress-alt\"], \"f422\", \"M439.5 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S450.2 240 440.5 240l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87zM72.5 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S62.8 272 72.5 272z\"],\n \"gifts\": [576, 512, [], \"f79c\", \"M202-30.6c12.5 4.4 19 18.1 14.6 30.6l-8.2 23.1 25.4-18.5c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5L233.8 64 272 64c26.5 0 48 21.5 48 48l0 2.1c-54.7 10.4-96 58.4-96 116l0 1.9c0 8.9 1 17.5 2.8 25.9-11.9 17.8-18.8 39.1-18.8 62.1l0 128c0 23.8 7.4 45.9 20.1 64L48 512c-26.5 0-48-21.5-48-48L0 112C0 85.5 21.5 64 48 64l38.2 0-28.3-20.6C47.2 35.6 44.8 20.6 52.6 9.9S75.4-3.2 86.1 4.6l27.4 20-8.3-25C101-13 107.8-26.6 120.4-30.8s26.2 2.6 30.4 15.2l9.9 29.8 10.7-30.2c4.4-12.5 18.1-19 30.6-14.6zM489.9 208c-7.5 0-14.5 3.8-18.6 10.1L446.9 256 488 256c13.3 0 24-10.7 24-24l0-1.9c0-12.2-9.9-22.1-22.1-22.1zM385.1 256l-24.4-37.9c-4.1-6.3-11.1-10.1-18.6-10.1-12.2 0-22.1 9.9-22.1 22.1l0 1.9c0 13.3 10.7 24 24 24l41.1 0zM281.9 268.5c-6.3-10.7-9.9-23.2-9.9-36.5l0-1.9c0-38.7 31.4-70.1 70.1-70.1 23.8 0 46 12.1 58.9 32.1l15 23.2 15-23.2c12.9-20 35.1-32.1 58.9-32.1 38.7 0 70.1 31.4 70.1 70.1l0 1.9c0 13.3-3.6 25.8-9.9 36.5 15.7 11.7 25.9 30.4 25.9 51.5l0 128c0 35.3-28.7 64-64 64l-72 0 0-208-48 0 0 208-72 0c-35.3 0-64-28.7-64-64l0-128c0-21.1 10.2-39.8 25.9-51.5z\"],\n \"bed\": [576, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32l0 224 224 0 0-128c0-17.7 14.3-32 32-32l160 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32zm80 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\n \"money-bill-transfer\": [640, 512, [], \"e528\", \"M31 105c-9.4-9.4-9.4-24.6 0-33.9L103-1c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 67.7 0 0 0 338.3 0c35.3 0 64 28.7 64 64l0 178.2-5.1-5.1c-28.1-28.1-73.7-28.1-101.8 0-27.2 27.2-28.1 70.6-2.8 98.9l67.7 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-406.1 0c-35.3 0-64-28.7-64-64l0-178.2 5.1 5.1c28.1 28.1 73.7 28.1 101.8 0 27.2-27.2 28.1-70.6 2.8-98.9l-67.7 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L31 105zM416 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm88-64.5c4.4 .5 8-3.1 8-7.5l0-48c0-4.4-3.6-8-8-8l-48 0c-4.4 0-8.1 3.6-7.5 8 3.6 29 26.6 51.9 55.5 55.5zm-368 129c-4.4-.5-8 3.1-8 7.5l0 48c0 4.4 3.6 8 8 8l48 0c4.4 0 8.1-3.6 7.5-8-3.6-29-26.6-51.9-55.5-55.5z\"],\n \"person-running\": [448, 512, [127939, \"running\"], \"f70c\", \"M256.5-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM123.6 176c-3.3 0-6.2 2-7.4 5L94.2 235.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9C67.7 129.9 94.1 112 123.6 112l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L285.7 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zm-8 181c13.3 14.9 30.7 26.3 51.2 32.4l4.7 1.4-6.9 19.3c-5.8 16.3-16 30.8-29.3 41.8L52.9 519.8c-13.6 11.2-33.8 9.3-45-4.3s-9.3-33.8 4.3-45l82.4-67.9c4.5-3.7 7.8-8.5 9.8-13.9L115.6 357z\"],\n \"circle-chevron-down\": [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"],\n \"user-nurse\": [448, 512, [], \"f82f\", \"M96 44.9c0-12.7 7.5-24.2 19.2-29.3l96-42c8.2-3.6 17.5-3.6 25.7 0l96 42C344.5 20.7 352 32.2 352 44.9l0 99.1c0 70.7-57.3 128-128 128S96 214.7 96 144l0-99.1zM304 128l-111.6 0-.4 0-48 0 0 16c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16zM208 16l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8L216 8c-4.4 0-8 3.6-8 8zM142.6 323c-6.5-4.9-15.2-6.2-22.6-2.8-61.4 28.2-104.1 90.2-104.1 162.1 0 16.4 13.3 29.7 29.7 29.7l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-67 50.2c-8.5 6.4-20.3 6.4-28.8 0l-67-50.2z\"],\n \"face-kiss-wink-heart\": [640, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M543.7 268.3c.2-4.1 .3-8.2 .3-12.3 0-141.4-114.6-256-256-256S32 114.6 32 256 146.6 512 288 512c41.4 0 80.5-9.8 115.1-27.3-7.6-17.1-16.1-38.8-21.8-61.7-7.7-30.5-14.1-76.2 8.2-114.7l2.7-4.6c29.5-51 94.7-68.5 145.7-39 2 1.2 4 2.4 5.9 3.7zM240 304c0-8.8 7.2-16 16-16l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16zM208 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm152 20c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM542.8 350c-2.2-18.3-12.9-34.6-28.9-43.8-28.1-16.2-63.9-6.6-80.1 21.5l-2.7 4.6c-24.5 42.5 7.9 117.9 24.4 150.8 5.1 10.1 15.5 16.1 26.8 15.5 36.7-2.2 118.2-11.7 142.8-54.2l2.7-4.6c16.2-28.1 6.6-63.9-21.5-80.1-16-9.2-35.4-10.4-52.4-3.1l-9.8 4.2-1.3-10.6z\"],\n \"fill\": [512, 512, [], \"f575\", \"M296 64c6.9 0 13.5 2.7 18.3 7.6L440.4 197.7c4.9 4.9 7.6 11.5 7.6 18.3s-2.7 13.5-7.6 18.3L386.7 288 65.3 288c1.3-3.9 3.4-7.4 6.3-10.3l96.4-96.4 33.4 33.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136 277.7 71.6c4.9-4.9 11.5-7.6 18.3-7.6zM122.7 136L26.3 232.4C9.5 249.3 0 272.1 0 296s9.5 46.7 26.3 63.6L152.4 485.7C169.3 502.5 192.1 512 216 512s46.7-9.5 63.6-26.3L485.7 279.6C502.5 262.7 512 239.9 512 216s-9.5-46.7-26.3-63.6L359.6 26.3C342.7 9.5 319.9 0 296 0s-46.7 9.5-63.6 26.3L168 90.7 118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L122.7 136z\"],\n \"money-bill-1-wave\": [512, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 109.5L0 419.6c0 19.4 11.8 37.3 30.3 43.3 94 30 158.8 8.4 223.3-13.1 62.4-20.8 124.4-41.5 212.1-15.3 22.2 6.6 46.2-8.8 46.2-32l0-310.1c0-19.4-11.8-37.3-30.3-43.3-94-30-158.8-8.4-223.3 13.1-62.4 20.8-124.4 41.5-212.1 15.3-22.2-6.6-46.3 8.8-46.3 32zM256 368c-53 0-96-50.1-96-112s43-112 96-112 96 50.1 96 112-43 112-96 112zM127.1 405.5c.7 4.4-2.8 8.1-7.2 8.1-15.7 0-32.1-1.8-50-6.1-3.5-.8-6-4-6-7.7L64 360c0-4.4 3.6-8.1 8-7.5 28.1 3.5 50.6 25.2 55.2 53zM448 354.6c0 5-4.6 8.8-9.5 8-15.4-2.5-30.2-3.9-44.4-4.3-4.9-.1-8.7-4.5-7.2-9.2 7.3-23.7 28-41.4 53.2-44.6 4.4-.5 8 3.1 8 7.5l0 42.6zm-8-195.1c-28.1-3.5-50.6-25.2-55.2-53-.7-4.4 2.8-8.1 7.2-8.1 15.7 0 32.1 1.8 50 6.1 3.5 .8 6 4 6 7.7l0 39.9c0 4.4-3.6 8.1-8 7.5zm-322.1-5.8c4.9 .1 8.7 4.5 7.2 9.2-7.3 23.7-28 41.4-53.2 44.6-4.4 .5-8-3.1-8-7.5l0-42.6c0-5 4.6-8.8 9.5-8 15.4 2.5 30.2 3.9 44.4 4.3zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"],\n \"landmark\": [512, 512, [127963], \"f66f\", \"M238.7 5.1c10.5-6.8 24.1-6.8 34.6 0l224 144c11.9 7.7 17.4 22.3 13.4 35.9s-16.5 23-30.7 23l-32 0 0 208 51.2 38.4c8.1 6 12.8 15.5 12.8 25.6 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32 0-10.1 4.7-19.6 12.8-25.6l51.2-38.4 0 0 0-208-32 0c-14.2 0-26.7-9.4-30.7-23s1.5-28.3 13.4-35.9l224-144zM336 208l0 208 64 0 0-208-64 0zM224 416l64 0 0-208-64 0 0 208zM112 208l0 208 64 0 0-208-64 0z\"],\n \"music\": [512, 512, [127925], \"f001\", \"M468 7c7.6 6.1 12 15.3 12 25l0 304c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6l0-116.7-224 49.8 0 206.3c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6L128 96c0-15 10.4-28 25.1-31.2l288-64c9.5-2.1 19.4 .2 27 6.3z\"],\n \"book-medical\": [448, 512, [], \"f7e6\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM192 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"shuffle\": [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S384 204.9 384 192l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8l-32.4 43.2-40-53.3 21.2-28.3C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM154 296l40 53.3-21.2 28.3C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L154 296zM438.6 470.6c-9.2 9.2-22.9 11.9-34.9 6.9S384 460.9 384 448l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"],\n \"underline\": [384, 512, [], \"f0cd\", \"M0 32C0 14.3 14.3 0 32 0L96 0c17.7 0 32 14.3 32 32S113.7 64 96 64l0 160c0 53 43 96 96 96s96-43 96-96l0-160c-17.7 0-32-14.3-32-32S270.3 0 288 0l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 160c0 88.4-71.6 160-160 160S32 312.4 32 224L32 64C14.3 64 0 49.7 0 32zM0 480c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32z\"],\n \"building-user\": [640, 512, [], \"e4da\", \"M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM339 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM176 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm240 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z\"],\n \"robot\": [640, 512, [129302], \"f544\", \"M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z\"],\n \"plus\": [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-160z\"],\n \"copy\": [448, 512, [], \"f0c5\", \"M192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-200.6c0-17.4-7.1-34.1-19.7-46.2L370.6 17.8C358.7 6.4 342.8 0 326.3 0L192 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-64 0 0 16-192 0 0-256 16 0 0-64-16 0z\"],\n \"chess-king\": [448, 512, [9818], \"f43f\", \"M224-32c17.7 0 32 14.3 32 32l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64 153.8 0c21.1 0 38.2 17.1 38.2 38.2 0 6.4-1.6 12.7-4.7 18.3L352 384 408.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L67.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L96 384 4.7 216.6C1.6 210.9 0 204.6 0 198.2 0 177.1 17.1 160 38.2 160l153.8 0 0-64-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-32c0-17.7 14.3-32 32-32z\"],\n \"house-flood-water\": [640, 512, [], \"e50e\", \"M496 208l4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L348 10.5C340.3 3.7 330.3 0 320 0s-20.3 3.7-28 10.5L121.4 159.8c-6 5.2-9.4 12.8-9.4 20.7 0 15.2 12.3 27.5 27.5 27.5l4.5 0 0 94.4c20.3-9.4 42.1-14.2 64-14.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 16.9-.1 33.8 2.6 50 8l0-88zm-224-8c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM474.6 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 418.3 17.6 426.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 514.3 17.6 522.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"],\n \"bitcoin-sign\": [320, 512, [], \"e0b4\", \"M64 24C64 10.7 74.7 0 88 0s24 10.7 24 24l0 40 32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 41.1c54.3 7.8 96 54.4 96 110.9 0 24.2-7.7 46.6-20.7 64.9 31.7 19.8 52.7 55 52.7 95.1 0 61.9-50.1 112-112 112l-16 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-32 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-22.3 0C18.7 448 0 429.3 0 406.3L0 101.6C0 80.8 16.8 64 37.6 64L64 64 64 24zm0 200l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-112 0 0 96zm112 64l-112 0 0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z\"],\n \"box\": [448, 512, [128230], \"f466\", \"M369.4 128l-34.3-48-222.1 0-34.3 48 290.7 0zM0 148.5c0-13.3 4.2-26.3 11.9-37.2L60.9 42.8C72.9 26 92.3 16 112.9 16l222.1 0c20.7 0 40.1 10 52.1 26.8l48.9 68.5c7.8 10.9 11.9 23.9 11.9 37.2L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 148.5z\"],\n \"square-plus\": [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\n \"arrows-left-right\": [576, 512, [\"arrows-h\"], \"f07e\", \"M470.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l41.4 41.4-357.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-41.4-41.4 357.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"],\n \"fan\": [512, 512, [], \"f863\", \"M160 144c0-79.5 64.5-144 144-144 8.8 0 16 7.2 16 16l0 152.2c15-5.3 31.2-8.2 48-8.2 79.5 0 144 64.5 144 144 0 8.8-7.2 16-16 16l-152.2 0c5.3 15 8.2 31.2 8.2 48 0 79.5-64.5 144-144 144-8.8 0-16-7.2-16-16l0-152.2c-15 5.3-31.2 8.2-48 8.2-79.5 0-144-64.5-144-144 0-8.8 7.2-16 16-16l152.2 0c-5.3-15-8.2-31.2-8.2-48zm96 144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"crow\": [640, 512, [], \"f520\", \"M456.5 0c-48.6 0-88 39.4-88 88l0 36-355.2 266.4C-.8 401-3.7 421 6.9 435.2s30.6 17 44.8 6.4l76.8-57.6 131.3 0 46.6 113.1 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-39.1-94.9 40.9 0c1.1 0 2.2 0 3.2 0l46.6 113.2 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-42-102C485.3 354.1 544.5 280 544.5 192l0-72 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4-7.1-28.5-32.7-48.5-62.1-48.5l-50.1 0C508.2 12.5 483.8 0 456.5 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"file-circle-check\": [576, 512, [], \"e5a0\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"link-slash\": [576, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-122-122c4.2-3.4 8.3-7.1 12.1-10.9l71.1-71.1c29.3-29.3 45.8-69.1 45.8-110.6 0-86.4-70-156.5-156.5-156.5-37.3 0-73.1 13.3-101.3 37.2 20.3 10.1 38.7 23.5 54.5 39.5 14.1-8.3 30.2-12.7 46.8-12.7 51.1 0 92.5 41.4 92.5 92.5 0 24.5-9.7 48-27.1 65.4l-71.1 71.1c-3.9 3.9-8.1 7.4-12.6 10.5l-47.5-47.5c16.5-.9 29.7-14.4 30.2-31.1 0-1.3 0-2.6 0-3.9 0-86.3-69.9-156.9-156.5-156.9-19.2 0-37.9 3.5-55.5 10.2L41-24.9zM225.9 160c.6 0 1.1 0 1.7 0 15.1 0 29.5 3.7 42.1 10.2 1.8 1.2 3.6 2.3 5.5 3.1 26.8 16.3 44.8 45.9 44.8 79.6 0 .4 0 .8 0 1.2L225.9 160zM346.2 416L192 261.8c1.2 84.6 69.6 152.9 154.1 154.1zM139.7 209.5l-45.3-45.3-48.6 48.6c-29.3 29.3-45.8 69.1-45.8 110.6 0 86.4 70 156.5 156.5 156.5 37.2 0 73.1-13.3 101.3-37.2-20.3-10.1-38.8-23.5-54.6-39.5-14 8.2-30.1 12.6-46.7 12.6-51.1 0-92.5-41.4-92.5-92.5 0-24.5 9.7-48 27.1-65.4l48.6-48.6z\"],\n \"arrow-rotate-right\": [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M436.7 74.7L448 85.4 448 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l47.9 0-7.6-7.2c-.2-.2-.4-.4-.6-.6-75-75-196.5-75-271.5 0s-75 196.5 0 271.5 196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c99.9-99.9 261.7-100 361.7-.3z\"],\n \"pen-clip\": [512, 512, [\"pen-alt\"], \"f305\", \"M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM274.1 100l0 0 137.9 137.9-215.1 215.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7L240.1 133.9 223 116.9c-9.4-9.4-24.6-9.4-33.9 0L89 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L155.1 82.9c28.1-28.1 73.7-28.1 101.8 0L274.1 100z\"],\n \"door-closed\": [448, 512, [128682], \"f52a\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM320 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"arrow-down-wide-short\": [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z\"],\n \"caret-down\": [320, 512, [], \"f0d7\", \"M140.3 376.8c12.6 10.2 31.1 9.5 42.8-2.2l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301.4 192 288.5 192l-256 0c-12.9 0-24.6 7.8-29.6 19.8S.7 237.5 9.9 246.6l128 128 2.4 2.2z\"],\n \"k\": [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7C143.4 167.2 76.4 236.3 64 249L64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"],\n \"check-to-slot\": [576, 512, [\"vote-yea\"], \"f772\", \"M552 288c13.3 0 24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 312c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24zM416 32c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64L96 96c0-35.3 28.7-64 64-64l256 0zm-37.1 84.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6-9.5 9.2-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L384.2 150.1c7.8-10.7 5.4-25.7-5.3-33.5z\"],\n \"fish-fins\": [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9s-12.4 26-5.3 38.6L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3 15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8 39.2-29.4 67.2-64.7 81.6-89.5 5.8-9.9 5.8-22.2 0-32.1-14.4-24.8-42.5-60.1-81.6-89.5-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"compress\": [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32S96 46.3 96 64l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z\"],\n \"arrow-up-a-z\": [512, 512, [\"sort-alpha-up\"], \"f15e\", \"M412.6 49.7C407.2 38.8 396.1 32 384 32s-23.2 6.8-28.6 17.7c-50.7 101.3-77.3 154.7-80 160-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9c-2.7-5.3-29.3-58.7-80-160zM384 135.6l20.2 40.4-40.4 0 20.2-40.4zM288 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 480 320 480l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S460.9 288 448 288l-128 0c-17.7 0-32 14.3-32 32zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80z\"],\n \"user-graduate\": [448, 512, [], \"f501\", \"M241.3-13c-11.4-2.3-23.1-2.3-34.5 0L19.3 24.5C8.1 26.7 0 36.6 0 48 0 58.3 6.5 67.3 16 70.6L16 144 .3 222.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6l34.9 0c8 0 14.6-6.5 14.6-14.6 0-1-.1-1.9-.3-2.9L48 144 48 77.3 96 86.9 96 144c0 70.7 57.3 128 128 128s128-57.3 128-128l0-57.1 76.7-15.3C439.9 69.3 448 59.4 448 48s-8.1-21.3-19.3-23.5L241.3-13zM224 224c-44.2 0-80-35.8-80-80l160 0c0 44.2-35.8 80-80 80zM120.1 320.1C58.7 348.3 16 410.3 16 482.3 16 498.7 29.3 512 45.7 512l154.3 0 0-146-57.4-43c-6.5-4.9-15.2-6.2-22.6-2.8zM248 512l154.3 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-57.4 43 0 146z\"],\n \"file-code\": [384, 512, [], \"f1c9\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM154.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm112-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z\"],\n \"soap\": [512, 512, [129532], \"e06e\", \"M208-32a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM320 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 160l112 0c0 23.8 7.4 45.9 20.1 64L160 224c-53 0-96 43-96 96s43 96 96 96l192 0c53 0 96-43 96-96 0-35.1-18.9-65.9-47-82.6 19-19.8 30.7-46.6 31-76.1 45.4 7.6 80 47.1 80 94.7l0 128c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 256c0-53 43-96 96-96zm64 112l192 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48s21.5-48 48-48z\"],\n \"recycle\": [512, 512, [9842, 9850, 9851], \"f1b8\", \"M152.3 60C198.5-20 314-20 360.2 60l37.3 64.6 27.7-16c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3L436.9 223c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l27.7-16-37.3-64.6c-21.6-37.3-75.4-37.3-97 0l-5.3 9.1c-8.8 15.3-28.4 20.5-43.7 11.7S138.2 84.5 147 69.1l5.3-9.1zM449.7 279.1c15.3-8.8 34.9-3.6 43.7 11.7l5.3 9.1c46.2 80-11.5 180-103.9 180l-74.6 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 74.6 0c43.1 0 70.1-46.7 48.5-84l-5.3-9.1c-8.8-15.3-3.6-34.9 11.7-43.7zM51 235.4l-27.7-16c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20L116.5 152c12.8-3.4 26 4.2 29.4 17l23.4 87.4c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-27.7-16-37.3 64.6c-21.6 37.3 5.4 84 48.5 84l10.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.6 0C25.3 480-32.4 380 13.8 300L51 235.4z\"],\n \"face-grin-wink\": [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM328 196c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"water-ladder\": [640, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M374.5 405.7c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.8 25.7-4.8 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0-24.2 18.3-52.3 35.9-83.4 35.9s-59.1-17.7-83.3-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.6-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3zM511.8 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.8 14.2-31.8 31.8l0 211.8c-23.1-5.1-44.9-4.4-64-.4l0-51.2-192 0 0 48.7c-5.3-.5-10.7-.8-16-.7-16.2 .1-32.4 2.7-48 8l0-216.2c0-52.9 42.9-95.8 95.7-95.8 48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.7 14.2-31.7 31.8l0 96.2 192 0 0-96.2C416 74.9 458.9 32 511.8 32z\"],\n \"tower-cell\": [576, 512, [], \"e585\", \"M59.6 9.8C47.3 4.8 33.3 10.7 28.4 23 15.2 55.5 8 90.9 8 128s7.2 72.5 20.4 105c5 12.3 19 18.2 31.3 13.2s18.2-19 13.2-31.3C62 188.2 56 158.8 56 128s6-60.2 16.9-87c5-12.3-1-26.3-13.2-31.3zm456.8 0c-12.3 5-18.2 19-13.2 31.3 10.9 26.8 16.9 56.2 16.9 87s-6 60.2-16.9 87c-5 12.3 1 26.3 13.2 31.3s26.3-1 31.3-13.2c13.1-32.5 20.4-67.9 20.4-105s-7.2-72.5-20.4-105c-5-12.3-19-18.2-31.3-13.2zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9l20.6-45.2 220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM376.5 400l-177 0 21.8-48 133.3 0 21.8 48zM288 205.3l44.8 98.7-89.7 0 44.8-98.7zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"],\n \"colon-sign\": [384, 512, [], \"e140\", \"M213.8 8.7c12.9 3.2 20.7 16.2 17.5 29.1l-4.6 18.5c15.4 .8 30.4 3.4 44.7 7.5l9.4-37.6C283.9 13.3 297 5.5 309.8 8.7S330.5 25 327.3 37.8L316 82.8c13.5 7.8 26 17.1 37.2 27.8 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-3.1-2.9-6.4-5.8-9.8-8.4L239.2 390c26.9-4.6 51.1-17.1 70.1-35.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2c-34.3 32.3-80 52.8-130.5 54.4l-7.5 29.9c-3.2 12.9-16.2 20.7-29.1 17.5s-20.7-16.2-17.5-29.1l5.6-22.5c-15-3.2-29.4-8-42.9-14.4l-12.1 48.5c-3.2 12.9-16.2 20.7-29.1 17.5S69.5 487 72.7 474.2l16-63.9C44.3 373.6 16 318.1 16 256 16 159.2 84.8 78.4 176.3 60l8.4-33.8C187.9 13.3 201 5.5 213.8 8.7zM158 132.9c-46.1 21.8-78 68.7-78 123.1 0 30.5 10 58.6 26.9 81.3L158 132.9zM147.4 373.4c13 7.6 27.3 13.1 42.5 16.1l65.9-263.6c-12.6-3.8-25.9-5.9-39.8-5.9-1.8 0-3.5 0-5.3 .1L147.4 373.4z\"],\n \"laptop-file\": [576, 512, [], \"e51d\", \"M64 64C64 28.7 92.7 0 128 0L416 0c35.3 0 64 28.7 64 64l0 48-64 0 0-48-288 0 0 192 112 0 0 96-163.2 0C34.4 352 0 317.6 0 275.2 0 264.6 8.6 256 19.2 256L64 256 64 64zM529.9 257.9c9 9 14.1 21.2 14.1 33.9L544 464c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-256c0-26.5 21.5-48 48-48l76.1 0c12.7 0 24.9 5.1 33.9 14.1 20 20 47.9 47.9 83.9 83.9zM416 272c0 8.8 7.2 16 16 16l60.1 0-76.1-76.1 0 60.1z\"],\n \"bahai\": [576, 512, [\"haykal\"], \"f666\", \"M288.4-8c13.2 0 25 8.1 29.8 20.4l31.9 82 77.2-42.3c11.6-6.3 25.8-4.9 35.9 3.5s14 22.3 9.7 34.8l-28.2 83.3 86.3 17.2c12.9 2.6 23 12.8 25.3 25.8s-3.6 26.1-14.9 32.9l-75.2 45.7 55 68.6c8.3 10.3 9.3 24.6 2.7 36s-19.5 17.6-32.6 15.6l-87-13.3-2 88c-.3 13.2-8.6 24.8-21 29.4s-26.3 1-35-9l-58-66.1-58 66.1c-8.7 9.9-22.6 13.5-35 9s-20.8-16.2-21-29.4l-2-88-87 13.3c-13 2-26-4.2-32.6-15.6s-5.5-25.7 2.7-36l55-68.6-75.2-45.7c-11.3-6.8-17.2-19.9-14.9-32.9s12.3-23.2 25.3-25.8l86.3-17.2-28.2-83.3c-4.2-12.5-.4-26.3 9.7-34.8s24.4-9.9 35.9-3.5l77.1 42.3 31.9-82C263.3 .1 275.2-8 288.4-8zm0 120.2L273 151.6c-3.3 8.6-10.2 15.3-18.9 18.5s-18.2 2.4-26.3-2l-37-20.3 13.6 40c3 8.7 2 18.3-2.6 26.3s-12.4 13.6-21.5 15.4l-41.4 8.3 36.1 21.9c7.9 4.8 13.3 12.7 14.9 21.8s-.8 18.4-6.5 25.6l-26.4 33 41.8-6.4c9.1-1.4 18.4 1.2 25.4 7.1s11.2 14.6 11.4 23.8l.9 42.2 27.9-31.8c6.1-6.9 14.8-10.9 24.1-10.9s18 4 24.1 10.9l27.9 31.8 .9-42.2c.2-9.2 4.4-17.9 11.4-23.8s16.3-8.5 25.4-7.1l41.8 6.4-26.4-33c-5.8-7.2-8.2-16.5-6.6-25.6s7-17 14.9-21.8l36.1-21.9-41.4-8.3c-9-1.8-16.9-7.4-21.5-15.4s-5.5-17.6-2.6-26.3l13.6-40-37 20.3c-8.1 4.4-17.7 5.2-26.3 2s-15.5-9.9-18.9-18.5l-15.3-39.4z\"],\n \"money-bill-1\": [512, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 80a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM64 184l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 144c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM440 191.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM448 328l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"],\n \"cloud-bolt\": [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96l38.6 0 124.1-111c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7L354.1 320 416 320c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM160.6 400l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L362.5 396.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L149.5 371.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z\"],\n \"ethernet\": [512, 512, [], \"f796\", \"M0 224L0 416c0 17.7 14.3 32 32 32l32 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 32 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z\"],\n \"hryvnia-sign\": [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M336 149.4C336 77 268.5 23.5 198 40.1L93.2 64.9C76 68.9 65.4 86.2 69.4 103.4s21.3 27.9 38.5 23.8l104.8-24.7c30.3-7.1 59.3 15.8 59.3 46.9 0 17.6-9.6 33.8-25 42.3l-.7 .4-222.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32.4 0c5.5-13.3 8.4-27.8 8.4-42.6zM360 272L24 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.3 0c-6.1 13.4-9.3 28.1-9.3 43.3 0 64.1 56.9 113.4 120.4 104.2l137.9-19.9c17.5-2.5 29.6-18.7 27.1-36.2s-18.8-29.6-36.2-27.1L159.2 404.2c-24.9 3.6-47.2-15.7-47.2-40.9 0-15.1 8.2-28.9 21.4-36.2l13-7.1 213.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24z\"],\n \"eye-slash\": [576, 512, [], \"f070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM325.3 395.1c-11.9 3.2-24.4 4.9-37.3 4.9-79.5 0-144-64.5-144-144 0-12.9 1.7-25.4 4.9-37.3L69.4 139.2c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6l-64.2-64.2z\"],\n \"cart-flatbed-suitcase\": [576, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-6 1.1-11.7 3.1-17-38.1-6.2-67.1-39.2-67.1-79L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM176 144c0-26.5 21.5-48 48-48l32 0 0-24c0-30.9 25.1-56 56-56l64 0c30.9 0 56 25.1 56 56l0 24 32 0c26.5 0 48 21.5 48 48l0 144c0 26.5-21.5 48-48 48l-240 0c-26.5 0-48-21.5-48-48l0-144zM384 96l0-24c0-4.4-3.6-8-8-8l-64 0c-4.4 0-8 3.6-8 8l0 24 80 0z\"],\n \"radiation\": [576, 512, [], \"f7b9\", \"M446.2 34.5c-14.2-10.1-33.5-4.6-42.2 10.5L331.6 170.3c31.3 15.8 52.8 48.3 52.8 85.7l144 0c17.7 0 32.2-14.4 30.1-31.9-9.1-78.1-51.4-146.1-112.3-189.6zM172.7 44.9C164 29.8 144.7 24.3 130.5 34.5 69.6 77.9 27.3 145.9 18.2 224.1 16.1 241.6 30.7 256 48.3 256l144 0c0-37.5 21.5-69.9 52.8-85.7L172.7 44.9zm-9.4 416.8c-8.7 15.1-3.8 34.5 12 41.8 34.4 15.7 72.7 24.5 113 24.5s78.6-8.8 113-24.5c15.8-7.2 20.7-26.7 12-41.8L341 336.3c-15.1 9.9-33.2 15.7-52.6 15.7s-37.5-5.8-52.6-15.7L163.3 461.7zM288.3 304a48 48 0 1 0 -.7-96 48 48 0 1 0 .7 96z\"],\n \"file-word\": [384, 512, [], \"f1c2\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM135.4 274.8c-2.9-12.9-15.7-21.1-28.6-18.2s-21.1 15.7-18.2 28.6l32 144c2.3 10.5 11.4 18.2 22.2 18.8s20.6-6.1 24-16.4l25.2-75.7 25.2 75.7c3.4 10.2 13.2 16.9 24 16.4s19.9-8.2 22.2-18.8l32-144c2.9-12.9-5.3-25.8-18.2-28.6s-25.8 5.3-28.6 18.2l-13.2 59.4-20.6-61.8c-3.3-9.8-12.4-16.4-22.8-16.4s-19.5 6.6-22.8 16.4l-20.6 61.8-13.2-59.4z\"],\n \"bed-pulse\": [640, 512, [\"procedures\"], \"f487\", \"M531.2-22.4L572 32 616 32c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0c-7.6 0-14.7-3.6-19.2-9.6l-24.1-32.1-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L387.2 80 344 80c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5c3.6-7.6 10.9-12.8 19.3-13.7s16.6 2.7 21.6 9.5zM320 160c0-17.7 14.3-32 32-32l9.5 0 26.6 39.9c14.4 21.6 39.3 33.8 65.2 31.9s48.8-17.6 59.8-41.1L527 129.2c45.9 7.2 81 46.9 81 94.8l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 224 224 0 0-128zM144 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\n \"tents\": [576, 512, [], \"e582\", \"M539.9 352l-95.6 0-8.4-66.1c-2.9-23.2-15.9-43.9-35.4-56.8L252.2 131.5c-18-11.9-39.7-15.7-60.1-11.5 2.5-4.3 5.9-7.9 10.1-10.7L350.6 11.6c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36zM4.8 476l23.3-184c1.2-9.3 6.3-17.6 14.2-22.7l148.4-97.7c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36l-49.7 0c-11.2 0-21.5-5.8-27.3-15.4l-77-126.7c-1.7-2.8-4.8-4.6-8.1-4.6-5.3 0-9.5 4.3-9.5 9.5l0 105.2c0 17.7-14.3 32-32 32L36.5 512c-19.3 0-34.2-16.9-31.7-36z\"],\n \"mug-hot\": [576, 512, [9749], \"f7b6\", \"M152-16c-13.3 0-24 10.7-24 24 0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C183.5 31.7 176 24.1 176 8 176-5.3 165.3-16 152-16zM96 192c-17.7 0-32 14.3-32 32l0 192c0 53 43 96 96 96l192 0c41.8 0 77.4-26.7 90.5-64l5.5 0c70.7 0 128-57.3 128-128S518.7 192 448 192L96 192zM448 384l0-128c35.3 0 64 28.7 64 64s-28.7 64-64 64zM288 8c0-13.3-10.7-24-24-24S240-5.3 240 8c0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C295.5 31.7 288 24.1 288 8z\"],\n \"bolt\": [448, 512, [9889, \"zap\"], \"f0e7\", \"M338.8-9.9c11.9 8.6 16.3 24.2 10.9 37.8L271.3 224 416 224c13.5 0 25.5 8.4 30.1 21.1s.7 26.9-9.6 35.5l-288 240c-11.3 9.4-27.4 9.9-39.3 1.3s-16.3-24.2-10.9-37.8L176.7 288 32 288c-13.5 0-25.5-8.4-30.1-21.1s-.7-26.9 9.6-35.5l288-240c11.3-9.4 27.4-9.9 39.3-1.3z\"],\n \"jar\": [320, 512, [], \"e516\", \"M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm96 64c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 192z\"],\n \"truck-plane\": [640, 512, [], \"e58f\", \"M144 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 320c0 32.5 12.1 62.1 32 84.7l0 27.3c0 7.1 .9 14.1 2.7 20.7L192 480 83.9 507C73.8 509.6 64 501.9 64 491.5l0-19.8c0-4.9 2.2-9.5 6-12.5l74-59.2 0-57.6-122.1 48.8C11.4 395.4 0 387.7 0 376.4l0-44c0-8 3-15.6 8.3-21.5L144 161.6 144 48zm224 80l192 0c44.2 0 80 35.8 80 80l0 160c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c-19.4-14.6-32-37.8-32-64l0-160c0-44.2 35.8-80 80-80zm0 176l192 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32l0 32zm0 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"hand-holding-heart\": [576, 512, [], \"f4be\", \"M279.6 31C265.5 11.5 242.9 0 218.9 0 177.5 0 144 33.5 144 74.9l0 2.4c0 64.4 82 133.4 122.2 163.3 13 9.7 30.5 9.7 43.5 0 40.2-30 122.2-98.9 122.2-163.3l0-2.4c0-41.4-33.5-74.9-74.9-74.9-24 0-46.6 11.5-60.7 31L288 42.7 279.6 31zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"],\n \"arrow-rotate-left\": [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M256 64c-56.8 0-107.9 24.7-143.1 64l47.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 192c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l0 54.7C110.9 33.6 179.5 0 256 0 397.4 0 512 114.6 512 256S397.4 512 256 512c-87 0-163.9-43.4-210.1-109.7-10.1-14.5-6.6-34.4 7.9-44.6s34.4-6.6 44.6 7.9c34.8 49.8 92.4 82.3 157.6 82.3 106 0 192-86 192-192S362 64 256 64z\"],\n \"face-angry\": [512, 512, [128544, \"angry\"], \"f556\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM256 368c24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50s-75.7 19.8-97.5 50c-7.7 10.8-5.3 25.8 5.5 33.5s25.8 5.3 33.5-5.5c13.1-18.2 34.4-30 58.5-30zm-80-96c17.7 0 32-14.3 32-32l0-.3 9.7 3.2c10.5 3.5 21.8-2.2 25.3-12.6s-2.2-21.8-12.6-25.3l-96-32c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3l28.9 9.6c-4.1 5.4-6.6 12.1-6.6 19.4 0 17.7 14.3 32 32 32zm192-32c0-7.3-2.4-14-6.6-19.4l28.9-9.6c10.5-3.5 16.1-14.8 12.6-25.3s-14.8-16.1-25.3-12.6l-96 32c-10.5 3.5-16.1 14.8-12.6 25.3s14.8 16.1 25.3 12.6l9.7-3.2 0 .3c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\n \"burst\": [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7S-2.3 28 4.2 37.6l112 163.3-99.6 32.3C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4-52.9 100.6c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1l-52.9-100.6 103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8l-106.5-34.5 25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7-34.5-106.5C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6L200.9 116.2 37.6 4.2z\"],\n \"z\": [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z\"],\n \"bandage\": [576, 512, [129657, \"band-aid\"], \"f462\", \"M464 416l48 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-48 0 0 320zM416 96l-256 0 0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l48 0 0-320-48 0zM216 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM216 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"plane-circle-exclamation\": [640, 512, [], \"e556\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"],\n \"bus-side\": [640, 512, [], \"e81d\", \"M480 0c88.4 0 160 71.6 160 160l0 224c0 35.3-28.7 64-64 64l-5.6 0c-13.2 37.3-48.6 64-90.4 64s-77.3-26.7-90.4-64l-139.1 0c-13.2 37.3-48.7 64-90.4 64s-77.2-26.7-90.4-64L64 448c-35.3 0-64-28.7-64-64L0 96C0 43 43 0 96 0L480 0zM160 368a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm320 0a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm0-304c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128c0-53-43-96-96-96zM248 224l104 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-104 0 0 160zM96 64C78.3 64 64 78.3 64 96l0 96c0 17.7 14.3 32 32 32l104 0 0-160-104 0z\"],\n \"bugs\": [576, 512, [], \"e4d0\", \"M447.5 174.6c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7c26.7 13.5 46.3 39.1 51.4 69.6l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L296 432c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0c5.1-30.5 24.7-56.1 51.4-69.6l-22.9-26.7c-8.6-10.1-7.5-25.2 2.6-33.8s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8zm-256-192c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7C230 55.9 249.5 81.5 254.7 112l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0C70.5 81.5 90 55.9 116.7 42.4L93.8 15.6C85.2 5.6 86.3-9.6 96.4-18.2s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8z\"],\n \"beer-mug-empty\": [576, 512, [\"beer\"], \"f0fc\", \"M64 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 16 64 0c35.3 0 64 28.7 64 64l0 108.2c0 24.2-13.7 46.4-35.4 57.2L448 371.8 448 384c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 80zM448 300.2l64-32 0-108.2-64 0 0 140.2zM192 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208z\"],\n \"person-circle-check\": [640, 512, [], \"e53e\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"stapler\": [640, 512, [], \"e5af\", \"M640 299.3L640 432c0 26.5-21.5 48-48 48L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48-352 0c-17.7 0-32-14.3-32-32l0-116.6-30.2-5.4c-19.6-3.5-33.8-20.5-33.8-40.4 0-8.9 2.9-17.5 8.2-24.6l35.6-47.5c32.8-43.8 84.4-69.6 139.1-69.6 27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16-320-57.1 0 73.1 320 0z\"],\n \"house-medical-circle-check\": [640, 512, [], \"e511\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"naira-sign\": [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 89.5 0 107.8 161.8c7.8 11.7 22.4 17 35.9 12.9S384 462.1 384 448l0-144 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0-139.8-209.7zM294.5 304l25.5 0 0 38.3-25.5-38.3zM185.5 256l-57.5 0 0-86.3 57.5 86.3z\"],\n \"wifi\": [576, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M288 96c-90.9 0-173.2 36-233.7 94.6-12.7 12.3-33 12-45.2-.7s-12-33 .7-45.2C81.7 74.9 179.9 32 288 32S494.3 74.9 566.3 144.7c12.7 12.3 13 32.6 .7 45.2s-32.6 13-45.2 .7C461.2 132 378.9 96 288 96zM240 432a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 326.2c-11.7 13.3-31.9 14.5-45.2 2.8s-14.5-31.9-2.8-45.2C161 237.4 221.1 208 288 208s127 29.4 168 75.8c11.7 13.3 10.4 33.5-2.8 45.2s-33.5 10.4-45.2-2.8C378.6 292.9 335.8 272 288 272s-90.6 20.9-120 54.2z\"],\n \"money-check-dollar\": [512, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM296 288l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm-24-88c0-13.3 10.7-24 24-24l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24zM148 144c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7C94.5 268 76 246.1 76 220.5 76 191.7 99.2 168.3 128 168l0-4c0-11 9-20 20-20z\"],\n \"eye-low-vision\": [576, 512, [\"low-vision\"], \"f2a8\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM88 157.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L328.2 466c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L88 157.9zM45.7 251.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L181.9 455.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L45.7 251.3z\"],\n \"circle-arrow-up\": [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm17-377l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-39-39 0 150.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-150.1-39 39c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0z\"],\n \"camera-retro\": [512, 512, [128247], \"f083\", \"M0 416l0-208 136.2 0c13.5-20.2 32-36.8 53.7-48L0 160 0 125.7c0-35.3 28.7-64 64-64l.1 0C65.3 45.1 79.1 32 96 32l32 0c16.9 0 30.7 13.1 31.9 29.7l32.1 0 51.2-23.8c8.4-3.9 17.6-6 26.9-6L448 32c35.3 0 64 28.7 64 64l0 64-190 0c21.7 11.2 40.2 27.8 53.7 48l136.2 0 0 208c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM256 192a96.1 96.1 0 1 0 0 192.1 96.1 96.1 0 1 0 0-192.1z\"],\n \"capsules\": [576, 512, [], \"f46b\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zm-64 0l0 288c0 61.9 50.1 112 112 112s112-50.1 112-112l0-105.8 116.3 169.5c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 145.3c-35.5-51.7-105.3-64.3-156-28.1-5.6 4-10.7 8.4-15.3 13.1l0-18.3C256 50.1 205.9 0 144 0S32 50.1 32 112zM296.6 240.2c-16-23.3-10-55.3 11.9-71 21.2-15.1 50.5-10.3 66 12.2l67 97.6-79.9 55.9-65-94.8z\"],\n \"poo\": [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1 0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64 0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72 0 23.2 11 43.8 28 57-34.1 5.7-60 35.3-60 71 0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72 0-35.7-25.9-65.3-60-71 17-13.2 28-33.8 28-57 0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48 0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32 0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7 0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z\"],\n \"elevator\": [512, 512, [], \"e16d\", \"M292.7-4.7l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5-32 432-32L304-32c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4zm-160-22.6l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4S73.5 64 80 64l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\n \"tag\": [512, 512, [127991], \"f02b\", \"M32.5 96l0 149.5c0 17 6.7 33.3 18.7 45.3l192 192c25 25 65.5 25 90.5 0L483.2 333.3c25-25 25-65.5 0-90.5l-192-192C279.2 38.7 263 32 246 32L96.5 32c-35.3 0-64 28.7-64 64zm112 16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"file-circle-minus\": [576, 512, [], \"e4ed\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"],\n \"down-long\": [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S300.9 352 288 352l-64 0 0-336c0-26.5-21.5-48-48-48l-32 0c-26.5 0-48 21.5-48 48l0 336-64 0c-12.9 0-24.6 7.8-29.6 19.8S.2 397.5 9.4 406.6l128 128z\"],\n \"compact-disc\": [512, 512, [128191, 128192, 128440], \"f51f\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zm-56-16c0-32.4 16.3-66.6 42.8-93.2S207.6 104 240 104c13.3 0 24-10.7 24-24s-10.7-24-24-24c-47.9 0-93.7 23.5-127.1 56.9S56 192.1 56 240c0 13.3 10.7 24 24 24s24-10.7 24-24z\"],\n \"suitcase-rolling\": [384, 512, [], \"f5c1\", \"M144 24c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zM320 96l-32 0 0-72c0-30.9-25.1-56-56-56l-80 0C121.1-32 96-6.9 96 24l0 72-32 0C28.7 96 0 124.7 0 160L0 448c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64zM120 208l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"book-quran\": [448, 512, [\"quran\"], \"f687\", \"M64 512l288 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L48 0C21.5 0 0 21.5 0 48L0 336c0 20.9 13.4 38.7 32 45.3L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0zM352 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0 0-64 256 0zM273.1 144.4c2.5-6.1 11.2-6.1 13.7 0l10.3 24.8 26.8 2.1c6.6 .5 9.2 8.7 4.2 13L307.8 201.9 314 228c1.5 6.4-5.5 11.5-11.1 8.1l-22.9-14-22.9 14c-5.6 3.4-12.6-1.6-11.1-8.1l6.2-26.1-20.4-17.5c-5-4.3-2.3-12.5 4.2-13l26.8-2.1 10.3-24.8zM100 192c0-68.5 55.5-124 124-124 23.8 0 46.1 6.7 65 18.4 4.8 2.9 6.9 8.8 5 14.1s-7.1 8.6-12.7 8c-3.1-.3-6.2-.5-9.4-.5-46.4 0-84 37.6-84 84s37.6 84 84 84c3.2 0 6.3-.2 9.4-.5 5.6-.6 10.8 2.7 12.7 8s-.3 11.2-5 14.1c-18.9 11.7-41.2 18.4-65 18.4-68.5 0-124-55.5-124-124z\"],\n \"phone-slash\": [576, 512, [], \"f3dd\", \"M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L141.5 368.6C89.2 310.5 51.6 238.8 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c12.9 28.5 29.6 54.8 49.5 78.5L535-24.9zm-150.4 534c-63-13.4-121.3-39.8-171.7-76.3L297.8 348c12.2 8.2 25 15.6 38.3 22.2L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5c-17.6 64.6-80.2 119.8-156.4 103.7z\"],\n \"road-circle-check\": [640, 512, [], \"e564\", \"M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"shop-lock\": [640, 512, [], \"e4a5\", \"M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l55.6 111.1c-8.2-1.6-16.6-2.5-25.2-2.5-53.7 0-99.7 33.1-118.7 80l-57.3 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"image-portrait\": [384, 512, [\"portrait\"], \"f3e0\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 368c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM192 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"],\n \"bridge-lock\": [576, 512, [], \"e4cc\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0 0 32.2c13.8 .6 27.2 2.8 40 6.4l0 50.7c-14.8-6-31-9.3-48-9.3-70.7 0-128 57.3-128 128l0 24.4c-.4 .3-.7 .6-1.1 1-17.3-25-46.2-41.3-78.9-41.3-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64zm424 68.6l0-36.6-80 0 0 64 18.8 0c18.2-12.8 38.9-22.2 61.2-27.4zM216 96l0 64 80 0 0-64-80 0zm-48 0l-80 0 0 64 80 0 0-64zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"hammer\": [640, 512, [128296], \"f6e3\", \"M246.9 18.3L271 3.8c21.6-13 46.3-19.8 71.5-19.8 36.8 0 72.2 14.6 98.2 40.7l63.9 63.9c15 15 23.4 35.4 23.4 56.6l0 30.9 19.7 19.7 0 0c15.6-15.6 40.9-15.6 56.6 0s15.6 40.9 0 56.6l-64 64c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L464 240 433.1 240c-21.2 0-41.6-8.4-56.6-23.4l-49.1-49.1c-15-15-23.4-35.4-23.4-56.6l0-12.7c0-11.2-5.9-21.7-15.5-27.4l-41.6-25c-10.4-6.2-10.4-21.2 0-27.4zM50.7 402.7l222.1-222.1 90.5 90.5-222.1 222.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5z\"],\n \"arrow-up-1-9\": [512, 512, [\"sort-numeric-up\"], \"f163\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM418.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM365.1 430.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 336a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"chess-knight\": [384, 512, [9822], \"f441\", \"M192-32c106 0 192 86 192 192l0 133.5c0 17-6.8 33.2-18.7 45.2L320 384 370.8 434.7c8.5 8.5 13.2 20 13.2 32 0 25-20.3 45.2-45.2 45.3L45.3 512c-25 0-45.2-20.3-45.2-45.3 0-12 4.8-23.5 13.2-32L64 384 64 349.4c0-18.7 8.2-36.4 22.3-48.6l89.7-76.8-48 0-12.1 12.1c-12.7 12.7-30 19.9-48 19.9-37.5 0-67.9-30.4-67.9-67.9l0-8.7c0-22.8 8.2-44.9 23.1-62.3L96 32 96 0c0-17.7 14.3-32 32-32l64 0zM160 72a24 24 0 1 0 0 48 24 24 0 1 0 0-48z\"],\n \"house-flood-water-circle-arrow-right\": [640, 512, [], \"e50f\", \"M288.5 112a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM141.2 44.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l28.7-28.7-89.4 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0-28.7-28.7c-6.2-6.2-6.2-16.4 0-22.6zM336.5 112c0 71.1-38.6 133.1-96 166.3l0 12.8c22.1 4.5 43.4 13.9 62.4 28.2 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 6-4.5 12.6-8 19.3-10.4l0-115.2 4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L444.5 10.5C436.8 3.7 426.8 0 416.5 0s-20.3 3.7-28 10.5L329.9 61.8c4.3 16 6.6 32.8 6.6 50.2zm32 88c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM475.1 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 391.8 266 373.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 487.8 266 469.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"],\n \"arrow-up-right-from-square\": [512, 512, [\"external-link\"], \"f08e\", \"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0-201.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 96C35.8 96 0 131.8 0 176L0 432c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 80c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 96z\"],\n \"arrow-down-up-across-line\": [512, 512, [], \"e4af\", \"M265.4 105.4l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4 0 114.7 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 114.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 402.7 96 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-114.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zM416 336l0 144c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144 64 0zM96 176L96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 144-64 0z\"],\n \"face-grin-beam\": [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"rectangle-ad\": [512, 512, [\"ad\"], \"f641\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM416 184l0 144c0 13.3-10.7 24-24 24-7.1 0-13.5-3.1-17.9-8-10.2 5.1-21.8 8-34.1 8-42 0-76-34-76-76s34-76 76-76c9.9 0 19.3 1.9 28 5.3l0-21.3c0-13.3 10.7-24 24-24s24 10.7 24 24zm-48 92a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM160 208c-8.8 0-16 7.2-16 16l0 32 48 0 0-32c0-8.8-7.2-16-16-16l-16 0zm32 96l-48 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-35.3 28.7-64 64-64l16 0c35.3 0 64 28.7 64 64l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24z\"],\n \"book-tanakh\": [448, 512, [\"tanakh\"], \"f827\", \"M352 512L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-66.7C13.4 374.7 0 356.9 0 336L0 48C0 21.5 21.5 0 48 0L352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96zm32-96c0-17.7-14.3-32-32-32l-256 0 0 64 256 0c17.7 0 32-14.3 32-32zM113.9 229c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2C233.6 66.6 229 64 224 64s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z\"],\n \"hot-tub-person\": [448, 512, [\"hot-tub\"], \"f593\", \"M240 40c0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C203.5 93.1 192 67.2 192 40 192 26.7 202.7 16 216 16s24 10.7 24 24zM0 336l0-80c0-35.3 28.7-64 64-64l19.7 0c8.1 0 16.2 1.6 23.8 4.6l137.1 54.8c7.6 3 15.6 4.6 23.8 4.6L384 256c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 336zm96-16c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zm152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zm104-24c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zM328 16c13.3 0 24 10.7 24 24 0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C315.5 93.1 304 67.2 304 40 304 26.7 314.7 16 328 16zM64 40a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"],\n \"file-half-dashed\": [384, 512, [], \"e698\", \"M64 0C28.7 0 0 28.7 0 64l0 256 384 0 0-149.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM0 352l0 64 64 0 0-64-64 0zM64 512l0-64-64 0c0 35.3 28.7 64 64 64zm32 0l80 0 0-64-80 0 0 64zm112 0l80 0 0-64-80 0 0 64zm112 0c35.3 0 64-28.7 64-64l-64 0 0 64zm64-160l-64 0 0 64 64 0 0-64z\"],\n \"outdent\": [448, 512, [\"dedent\"], \"f03b\", \"M.4 64c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0C14.8 96 .4 81.7 .4 64zm192 128c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM.4 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32zM.7 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.7 268.6z\"],\n \"hand-peace\": [448, 512, [9996], \"f25b\", \"M192 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM61.3 51.2L143.9 240 74.1 240 2.7 76.8C-4.4 60.6 3 41.8 19.2 34.7S54.2 35 61.3 51.2zm27 221.3l-.2-.5 95.9 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L69.5 453.5C45.5 429.5 32 396.9 32 363l0-27c0-32.7 24.6-59.7 56.3-63.5z\"],\n \"head-side-virus\": [512, 512, [], \"e064\", \"M329.7 448c-5.1 0-9.7 3.7-9.7 8.8l0 7.2c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-63.6c0-12.6-5.1-24.5-13.1-34.2-31.8-38.7-50.9-88.2-50.9-142.2 0-123.7 100.3-224 224-224 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l35.8 42.9c7 8.4 10.9 19.1 10.9 30.1 0 25.9-21 47-47 47l-1 0c-8.8 0-16 7.2-16 16l0 48c0 35.3-28.7 64-64 64l-38.3 0zM224 64c-13.3 0-24 10.7-24 24 0 22.9-27.7 34.4-43.9 18.2-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c16.2 16.2 4.7 43.9-18.2 43.9-13.3 0-24 10.7-24 24s10.7 24 24 24c22.9 0 34.4 27.7 18.2 43.9-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c16.2-16.2 43.9-4.7 43.9 18.2 0 13.3 10.7 24 24 24s24-10.7 24-24c0-22.9 27.7-34.4 43.9-18.2 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-16.2-16.2-4.7-43.9 18.2-43.9 13.3 0 24-10.7 24-24s-10.7-24-24-24c-22.9 0-34.4-27.7-18.2-43.9 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-16.2 16.2-43.9 4.7-43.9-18.2 0-13.3-10.7-24-24-24zm-32 88a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"compass\": [512, 512, [129517], \"f14e\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"pen-nib\": [512, 512, [10001], \"f5ad\", \"M368.5 18.3l-50.1 50.1 125.3 125.3 50.1-50.1c21.9-21.9 21.9-57.3 0-79.2L447.7 18.3c-21.9-21.9-57.3-21.9-79.2 0zM279.3 97.2l-.5 .1-144.1 43.2c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-2.9 8.7-1.9 18.2 2.5 26L161.7 316.4c-1.1-4-1.6-8.1-1.6-12.4 0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48c-4.3 0-8.5-.6-12.4-1.6L40.3 505.7c7.8 4.4 17.2 5.4 26 2.5l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 .1-.5-135.5-135.5z\"],\n \"tent-arrows-down\": [512, 512, [], \"e581\", \"M185.5 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zm248 72l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z\"],\n \"forward-fast\": [512, 512, [9197, \"fast-forward\"], \"f050\", \"M19.8 477.6c12 5 25.7 2.2 34.9-6.9L224 301.3 224 448c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9L448 301.3 448 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 146.7-169.4-169.4c-9.2-9.2-22.9-11.9-34.9-6.9S224 51.1 224 64L224 210.7 54.6 41.4c-9.2-9.2-22.9-11.9-34.9-6.9S0 51.1 0 64L0 448c0 12.9 7.8 24.6 19.8 29.6z\"],\n \"crop\": [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 176 64 176 128 338.7 128 128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-162.7 0 210.7-210.7 0 306.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z\"],\n \"whiskey-glass\": [448, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32C14.3 32 0 46.3 0 64L0 352c0 70.7 57.3 128 128 128l192 0c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32L32 32zM64 256l0-160 320 0 0 160-320 0z\"],\n \"square\": [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z\"],\n \"face-grin\": [512, 512, [128512, \"grin\"], \"f580\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"file-contract\": [384, 512, [], \"f56c\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 64C74.7 64 64 74.7 64 88s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm70.3 160c-11.3 0-21.9 5.1-28.9 13.9L69.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4z\"],\n \"angle-up\": [384, 512, [8963], \"f106\", \"M169.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L192 205.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"],\n \"face-smile\": [512, 512, [128578, \"smile\"], \"f118\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"person-dress-burst\": [640, 512, [], \"e544\", \"M208 40.1c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24zM8 144.1c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm92.5 141.4l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM246.2 384l25.8 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 25.8 0c10.9 0 18.6-10.7 15.2-21.1l-43-129 48.3 65.1c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C434 132 394.3 112 352 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l48.3-65.1-43 129c-3.5 10.4 4.3 21.1 15.2 21.1z\"],\n \"divide\": [448, 512, [10135, 247], \"f529\", \"M224 48a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM168 408a56 56 0 1 1 112 0 56 56 0 1 1 -112 0z\"],\n \"code-fork\": [448, 512, [], \"e13b\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 22.7c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-32 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-32 0C98.1 288 48 237.9 48 176l0-22.7C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"house-flag\": [640, 512, [], \"e50d\", \"M472 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM283.5 59.1l100.5 96.9 0 356-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L228.5 59.1C235.9 52 245.7 48 256 48s20.1 4 27.5 11.1zM232 256c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"],\n \"building-columns\": [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M271.9 20.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128c-12.6 7.2-18.8 22-15.1 36S17.5 208 32 208l32 0 0 208 0 0-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-208 32 0c14.5 0 27.2-9.8 30.9-23.8s-2.5-28.8-15.1-36l-224-128zM400 208l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zM256 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"rug\": [576, 512, [], \"e569\", \"M24 64l56 0 0 384-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm104 0l320 0 0 384-320 0 0-384zM576 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0-384 56 0c13.3 0 24 10.7 24 24z\"],\n \"code-merge\": [448, 512, [], \"f387\", \"M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2 0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432 0 476.2 35.8 512 80 512s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48 44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"house-tsunami\": [640, 512, [], \"e515\", \"M288 16C155.5 16 48 123.5 48 256S155.5 496 288 496c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1l-.1 0C128.9 543.9 0 415 0 256 0 96.9 128.9-32 288-32 301.3-32 312-21.3 312-8s-10.7 24-24 24zm44.8 166.4l96-72c11.4-8.5 27.1-8.5 38.5 0l95.5 72c8 6 12.7 15.5 12.7 25.5l.3 121.5c-2.2 1.3-4.3 2.6-6.4 4.2-4.3 3.1-8.7 .8-13.2-1.5l-1.2-.6-.7-.3c-5.4-2.7-11.7-6.6-18.9-11.7-29.5-21.1-64.3-31.6-99.1-31.4-34.1 .2-68.1 10.7-97 31.4-7.8 5.6-13.8 9.3-19.3 11.2L320 208c0-10.1 4.7-19.6 12.8-25.6zm54.6 229.7c-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1-106 0-192-86-192-192S182 64 288 64c13.3 0 24 10.7 24 24s-10.7 24-24 24c-79.5 0-144 64.5-144 144s64.5 144 144 144c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0z\"],\n \"magnifying-glass-chart\": [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n \"umbrella\": [512, 512, [], \"f0e9\", \"M256-32c17.7 0 32 14.3 32 32l0 2c126.3 15.7 224 123.5 224 254 0 3.8-.1 7.5-.2 11.3-.3 6.9-5 12.8-11.7 14.7s-13.8-.7-17.6-6.5c-14.4-21.4-38.8-35.5-66.5-35.5-29.3 0-54.9 15.7-68.9 39.3-2.7 4.6-7.6 7.6-13 7.8s-10.5-2.2-13.7-6.5c-14.6-19.8-38-32.6-64.5-32.6s-49.9 12.8-64.5 32.6c-3.2 4.3-8.3 6.8-13.7 6.5s-10.2-3.2-13-7.8c-14-23.6-39.6-39.3-68.9-39.3-27.7 0-52.1 14.1-66.5 35.5-3.9 5.7-11 8.4-17.6 6.5S.5 274.2 .2 267.3C.1 263.5 0 259.8 0 256 0 125.5 97.7 17.7 224 2l0-2c0-17.7 14.3-32 32-32zm32 360l0 102.6c0 45-36.5 81.4-81.4 81.4-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6 9.6 0 17.4-7.8 17.4-17.4L224 328c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n \"hill-rockslide\": [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"user-secret\": [448, 512, [128373], \"f21b\", \"M171-16c-36.4 0-57.8 58.3-68.3 112L72 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32c0 17 3.3 33.2 9.3 48l-9.3 0 0 0-20.5 0c-15.2 0-27.5 12.3-27.5 27.5 0 3 .5 5.9 1.4 8.7l28.9 86.6C40.2 379.6 16 428.1 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-54.2-24.2-102.7-62.3-135.4l28.9-86.6c.9-2.8 1.4-5.7 1.4-8.7 0-15.2-12.3-27.5-27.5-27.5l-20.5 0 0 0-9.3 0c6-14.8 9.3-31 9.3-48l0-32 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-30.7 0c-10.4-53.7-31.9-112-68.3-112-9.6 0-19 3.9-27.5 8.2-8.2 4.1-18.4 7.8-25.5 7.8s-17.3-3.7-25.5-7.8C190-12.1 180.6-16 171-16zm93.7 484.4l-24.8-70.9 27.9-32.5c2.7-3.2 4.2-7.2 4.2-11.4 0-9.7-7.8-17.5-17.5-17.5l-61 0c-9.7 0-17.5 7.8-17.5 17.5 0 4.2 1.5 8.2 4.2 11.4l27.9 32.5-24.8 70.9-57-180.4 35.7 0c18.4 10.2 39.5 16 62 16s43.6-5.8 62-16l35.7 0-57 180.4zM224 256c-34.7 0-64.2-22.1-75.3-53 5.7 3.2 12.3 5 19.3 5l12.4 0c16.5 0 31.1-10.6 36.3-26.2 2.3-7 12.2-7 14.5 0 5.2 15.6 19.9 26.2 36.3 26.2l12.4 0c7 0 13.6-1.8 19.3-5-11.1 30.9-40.6 53-75.3 53z\"],\n \"pager\": [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"],\n \"briefcase\": [512, 512, [128188], \"f0b1\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160l0 96 512 0 0-96c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM512 304l-192 0 0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-112z\"],\n \"trowel-bricks\": [512, 512, [], \"e58a\", \"M224 32c0-11.5-6.2-22.2-16.2-27.8s-22.3-5.5-32.2 .4l-160 96C5.9 106.3 0 116.8 0 128s5.9 21.7 15.5 27.4l160 96c9.9 5.9 22.2 6.1 32.2 .4S224 235.5 224 224l0-64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-64zm96 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0zM0 416l0 64c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32zm224-32c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-256 0z\"],\n \"socks\": [512, 512, [129510], \"f696\", \"M252.8 0L176 0c-26.5 0-48 21.5-48 48l0 16 112 0 0-16c0-17.5 4.7-33.9 12.8-48zM128 112l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 15.4 0 30.5-3.7 44-10.7-17.6-23.9-28-53.4-28-85.3 0-45.3 21.3-88 57.6-115.2l64-48c4-3 6.4-7.8 6.4-12.8l0-128-112 0zm160 0l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 20.8 0 41-6.7 57.6-19.2l115.2-86.4C461 382.2 480 344.3 480 304l0-192-192 0zM480 64l0-16c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 16 192 0z\"],\n \"t\": [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"],\n \"microchip\": [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm16 48l0 160 160 0 0-160-160 0z\"],\n \"truck-medical\": [576, 512, [128657, \"ambulance\"], \"f0f9\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM176 136c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"om\": [576, 512, [128329], \"f679\", \"M388.7 4.7c6.2-6.2 16.4-6.2 22.6 0l16 16c6.2 6.2 6.2 16.4 0 22.6l-16 16c-6.2 6.2-16.4 6.2-22.6 0l-16-16c-6.2-6.2-6.2-16.4 0-22.6l16-16zM176 160c-10.8 0-20.8 3.6-28.8 9.6-14.1 10.6-34.2 7.8-44.8-6.4s-7.8-34.2 6.4-44.8c18.7-14.1 42-22.4 67.2-22.4 61.9 0 112 50.1 112 112 0 17.2-3.9 33.5-10.8 48l49.7 0c12.7 0 24.9-5 33.9-14.1l20.7-20.7c18.7-18.7 44.1-29.3 70.6-29.3 55.2 0 99.9 44.7 99.9 99.9l0 96.1c0 55.2-44.8 100-100 100S352 443.2 352 388l0-4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 4c0 19.9 16.1 36 36 36s36-16.1 36-36l0-96.1c0-19.8-16.1-35.9-35.9-35.9-9.5 0-18.6 3.8-25.4 10.5l-20.7 20.7c-21 21-49.4 32.8-79.1 32.8l-26.8 0c12.6 19.6 19.9 42.8 19.9 68 0 75.2-65 132-140 132S40 463.2 40 388c0-17.7 14.3-32 32-32s32 14.3 32 32c0 35.3 31.7 68 76 68s76-32.7 76-68-31.7-68-76-68l-20 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0c26.5 0 48-21.5 48-48s-21.5-48-48-48zM337.1 60.1c-11-13.8-31.1-16.2-45-5.2s-16.2 31.1-5.2 45C312.6 132.2 354.4 152 400 152s87.4-19.8 113.1-52.1c11-13.8 8.7-34-5.2-45s-34-8.7-45 5.2C450.3 76 427.5 88 400 88s-50.3-12-62.9-27.9z\"],\n \"mosquito-net\": [640, 512, [], \"e52c\", \"M576 352c13.3 0 24 10.7 24 24l0 16 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 48 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 16-.1 2.5C598.6 566.6 588.4 576 576 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-48 0 0 16-.1 2.5C502.6 566.6 492.4 576 480 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-48-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 48 0 0-16c0-13.3 10.7-24 24-24zM429.9 16.3c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 3.9-.4 7.7-.9 11.5-7.3-3.5-15.3-5.8-23.8-6.7L576 304c-18.5 0-35.3 7-48 18.4-11-9.9-25.1-16.5-40.6-18.1L480 304c-30.3 0-56.1 18.7-66.8 45.2-12.5 5-23.2 13.4-31.1 24l-30.2-40.1 0 74.7c0 17.7-14.3 32-32 32-16.6 0-30.2-12.6-31.8-28.7l-.2-3.3 0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2c-7.5 9.6-21 12.1-31.3 5.3-10.3-6.8-13.7-20.5-8.3-31.5l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.7-38.3-2.4-2.4c-5.2-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.2-2.1c-5.7-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8 .2-3.2c1.1-10.4 7.2-19.4 15.8-24.4l0-60.5 .3-3.2c1.5-7.3 8-12.7 15.7-12.8 7.7 0 14.2 5.5 15.7 12.8l.3 3.2 0 60.5c8.7 5 14.8 14 15.8 24.4l.2 3.2 0 28.9 53.4-45.7-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2zM504 488l48 0 0-48-48 0 0 48z\"],\n \"prescription-bottle\": [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-64z\"],\n \"users-gear\": [640, 512, [\"users-cog\"], \"f509\", \"M320 224a104 104 0 1 0 0-208 104 104 0 1 0 0 208zM96 232a72 72 0 1 0 0-144 72 72 0 1 0 0 144zM0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4-70.7 0-128 57.3-128 128zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zM160 432l0 16c0 17.7 14.3 32 32 32l156.8 0c-7.1-21.6-6.3-44.4 10.7-64-14-16.2-20.5-39.7-11.4-63.3 6.6-17.1 15.9-33.1 27.4-47.3 5.4-6.6 11.6-11.7 18.3-15.4-22.1-11.5-47.2-18-73.8-18-88.4 0-160 71.6-160 160zm464.6-44.1c6.3-3.6 9.5-11.1 6.8-18-4.8-12.4-11.5-24.1-19.9-34.4-4.6-5.7-12.7-6.7-19-3-21.8 12.6-48.6-2.8-48.6-28.1 0-7.3-4.9-13.8-12.1-14.9-12.9-2-26.8-2-39.7 0-7.2 1.1-12.1 7.6-12.1 14.9 0 25.2-26.8 40.7-48.6 28.1-6.3-3.6-14.4-2.6-19 3-8.4 10.3-15.1 22-19.9 34.4-2.6 6.8 .5 14.3 6.8 17.9 21.9 12.6 21.9 43.5 0 56.2-6.3 3.6-9.5 11.1-6.8 17.9 4.8 12.4 11.5 24.1 19.9 34.4 4.6 5.7 12.7 6.7 19 3 21.8-12.6 48.6 2.9 48.6 28.1 0 7.3 4.9 13.8 12.1 14.9 12.9 2 26.8 2 39.7 0 7.2-1.1 12.1-7.6 12.1-14.9 0-25.2 26.8-40.7 48.6-28.1 6.3 3.6 14.4 2.6 19-3 8.4-10.3 15.1-22 19.9-34.4 2.6-6.8-.5-14.3-6.8-17.9-21.9-12.6-21.9-43.5 0-56.2zM472 416a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"],\n \"road-circle-exclamation\": [640, 512, [], \"e565\", \"M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"pause\": [384, 512, [9208], \"f04c\", \"M48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 32zm224 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0z\"],\n \"staff-snake\": [448, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M192 32l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 64 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-64 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 192 32 0c53 0 96 43 96 96 0 47.6-34.6 87.1-80 94.7l0-67c9.6-5.5 16-15.9 16-27.7 0-17.7-14.3-32-32-32l-32 0 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64-32 0c-53 0-96-43-96-96 0-47.6 34.6-87.1 80-94.7l0 67c-9.6 5.5-16 15.9-16 27.7 0 17.7 14.3 32 32 32l32 0 0-192-72.6 0c-11.1 19.1-31.7 32-55.4 32l-16 0C21.5 128 0 106.5 0 80S21.5 32 48 32l144 0z\"],\n \"piggy-bank\": [576, 512, [], \"f4d3\", \"M288-32a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM48 304c0-70.1 47-131.4 117.1-164.9 25.3 41.3 70.9 68.9 122.9 68.9 55.7 0 104.1-31.7 128-78 15.8-11.3 35.1-18 56-18l19.5 0c10.4 0 18 9.8 15.5 19.9l-17.1 68.3c9.9 12.4 18.2 25.7 24.4 39.8l21.7 0c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24l-40 0c-16.5 22-38.5 39.6-64 50.7l0 29.3c0 17.7-14.3 32-32 32l-33 0c-14.3 0-26.8-9.5-30.8-23.2l-7.1-24.8-82.3 0-7.1 24.8C235.8 502.5 223.3 512 209 512l-33 0c-17.7 0-32-14.3-32-32l0-29.3C87.5 426 48 369.6 48 304zm376 16a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"monument\": [384, 512, [], \"f5a6\", \"M209-33c-9.4-9.4-24.6-9.4-33.9 0L95 47c-4.1 4.1-6.5 9.4-7 15.1L58.4 448 48 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.4 0-29.7-385.8c-.4-5.7-2.9-11.1-7-15.1L209-33zM128 296c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24z\"],\n \"angles-right\": [448, 512, [187, \"angle-double-right\"], \"f101\", \"M439.1 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L371.2 256 233.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L179.2 256 41.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"],\n \"desktop\": [512, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32L96 320c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z\"],\n \"plane-circle-xmark\": [640, 512, [], \"e557\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"],\n \"retweet\": [576, 512, [], \"f079\", \"M118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l32 0 0 224c0 53 43 96 96 96l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0c-17.7 0-32-14.3-32-32l0-224 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64zM457.4 470.6c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S556.9 352 544 352l-32 0 0-224c0-53-43-96-96-96L288 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32l0 224-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64z\"],\n \"user-gear\": [640, 512, [\"user-cog\"], \"f4fe\", \"M256.5 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.7 304l59.4 0 1.5 0c-12.9 26.8-7.8 58.2 11.5 79.5-20.2 22.3-24.8 55.8-9.4 83.4l22.5 40.4c.9 1.6 1.9 3.2 2.9 4.7l-237 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zm205.9-56.4c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 6.1c0 18.9 24.1 32.8 40.5 23.4l5-2.9c11.6-6.7 26.5-2.6 33 9.1l22.4 40.2c6.2 11.2 2.6 25.2-8.2 32l-4.7 2.9c-16.2 10.1-16.2 39.9 0 50.1l4.6 2.9c10.8 6.8 14.5 20.8 8.3 32L607 483.8c-6.5 11.7-21.4 15.9-33 9.1l-4.9-2.9c-16.4-9.5-40.5 4.5-40.5 23.4l0 6.1c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-5.9c0-19-24.2-33-40.7-23.5l-4.8 2.8c-11.6 6.7-26.4 2.6-33-9.1l-22.6-40.4c-6.2-11.2-2.6-25.3 8.3-32.1l4.4-2.7c16.3-10.1 16.3-40.1 0-50.2l-4.5-2.8c-10.9-6.8-14.5-20.9-8.3-32.1l22.5-40.3c6.5-11.7 21.4-15.8 32.9-9.1l4.8 2.8c16.5 9.5 40.7-4.5 40.7-23.5l0-5.9zm99.9 136.2a52 52 0 1 0 -104 0 52 52 0 1 0 104 0z\"],\n \"border-all\": [448, 512, [], \"f84c\", \"M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224l-128 0 0-128 128 0 0 128zM64 288l128 0 0 128-128 0 0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"],\n \"coins\": [512, 512, [], \"f51e\", \"M128 96l0-16c0-44.2 86-80 192-80S512 35.8 512 80l0 16c0 30.6-41.3 57.2-102 70.7-2.4-2.8-4.9-5.5-7.4-8-15.5-15.3-35.5-26.9-56.4-35.5-41.9-17.5-96.5-27.1-154.2-27.1-21.9 0-43.3 1.4-63.8 4.1-.2-1.3-.2-2.7-.2-4.1zM432 353l0-46.2c15.1-3.9 29.3-8.5 42.2-13.9 13.2-5.5 26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zm0-96l0-33c0-4.5-.4-8.8-1-13 15.5-3.9 30-8.6 43.2-14.2s26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zM0 240l0-16c0-44.2 86-80 192-80s192 35.8 192 80l0 16c0 44.2-86 80-192 80S0 284.2 0 240zm384 96c0 44.2-86 80-192 80S0 380.2 0 336l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3l0 15.4zm0 80.6l0 15.4c0 44.2-86 80-192 80S0 476.2 0 432l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3z\"],\n \"mars-stroke\": [576, 512, [9894], \"f229\", \"M416-32c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0-58.7 58.7-17.4-17.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l17.4 17.4-23 23c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176c0-37-11.4-71.4-31-99.8l23-23 17.4 17.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L453.3 136 512 77.3 512 128c0 17.7 14.3 32 32 32s32-14.3 32-32L576 0c0-17.7-14.3-32-32-32L416-32zM128 304a112 112 0 1 1 224 0 112 112 0 1 1 -224 0z\"],\n \"handshake-angle\": [576, 512, [\"hands-helping\"], \"f4c4\", \"M268.9 53.2L152.3 182.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 344 576 288 576 0 464 64 440.2 48.1C424.4 37.6 405.9 32 386.9 32l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 150.7L223.4 32 183.8 32c-25.5 0-49.9 10.1-67.9 28.1L0 192 0 544 144 408 156.4 418.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 409c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z\"],\n \"arrow-down\": [384, 512, [8595], \"f063\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7-105.4-105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"],\n \"location-dot\": [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M0 188.6C0 84.4 86 0 192 0S384 84.4 384 188.6c0 119.3-120.2 262.3-170.4 316.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"],\n \"plug-circle-exclamation\": [640, 512, [], \"e55d\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"],\n \"cookie-bite\": [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9-.9-5.3-5.3-9.3-10.6-10.1-51.5-8.2-92.8-47.1-104.5-97.4-1.8-7.6-8-13.4-15.7-14.6-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"screwdriver-wrench\": [576, 512, [\"tools\"], \"f7d9\", \"M70.8-6.7c5.4-5.4 13.8-6.2 20.2-2L209.9 70.5c8.9 5.9 14.2 15.9 14.2 26.6l0 49.6 90.8 90.8c33.3-15 73.9-8.9 101.2 18.5L542.2 382.1c18.7 18.7 18.7 49.1 0 67.9l-60.1 60.1c-18.7 18.7-49.1 18.7-67.9 0L288.1 384c-27.4-27.4-33.5-67.9-18.5-101.2l-90.8-90.8-49.6 0c-10.7 0-20.7-5.3-26.6-14.2L23.4 58.9c-4.2-6.3-3.4-14.8 2-20.2L70.8-6.7zm145 303.5c-6.3 36.9 2.3 75.9 26.2 107.2l-94.9 95c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8l135.4-135.5 35.2 35.1zM384.1 0c20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1L388.8 91.3c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l56.7-56.7c7.6-7.5 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 43.2-17.2 82.3-45 111.1l-49.1-49.1c-33.1-33-78.5-45.7-121.1-38.4l-56.8-56.8 0-29.7-.2-5c-.8-12.4-4.4-24.3-10.5-34.9 29.4-35 73.4-57.2 122.7-57.3z\"],\n \"indent\": [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"],\n \"bars\": [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"],\n \"hands-praying\": [640, 512, [\"praying-hands\"], \"f684\", \"M224 296c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112.6 88.2-119.7c13.1-17.8 9.3-42.8-8.5-55.9s-42.8-9.3-55.9 8.5L106.5 142.9C89.3 166.2 80 194.5 80 223.6l0 110.7-58.1 19.4C8.8 358 0 370.2 0 384l0 96c0 10 4.7 19.5 12.7 25.5s18.4 8 28.1 5.2l154.4-44.1c55-15.7 92.8-65.9 92.8-123.1L288 224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 72zm192 0l0-72c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 119.6c0 57.2 37.9 107.4 92.8 123.1l154.4 44.1c9.7 2.8 20 .8 28.1-5.2S640 490 640 480l0-96c0-13.8-8.8-26-21.9-30.4l-58.1-19.4 0-110.7c0-29-9.3-57.3-26.5-80.7L440.2 16.3C427.1-1.5 402.1-5.3 384.3 7.8s-21.6 38.1-8.5 55.9L464 183.4 464 296c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\n \"viruses\": [640, 512, [], \"e076\", \"M192 0c17.7 0 32 14.3 32 32 0 30.5 36.9 45.8 58.5 24.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-21.6 21.6-6.3 58.5 24.2 58.5 17.7 0 32 14.3 32 32s-14.3 32-32 32c-30.5 0-45.8 36.9-24.2 58.5 12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0c-21.6-21.6-58.5-6.3-58.5 24.2 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-30.5-36.9-45.8-58.5-24.2-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3C77.8 260.9 62.5 224 32 224 14.3 224 0 209.7 0 192s14.3-32 32-32c30.5 0 45.8-36.9 24.2-58.5-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0C123.1 77.8 160 62.5 160 32 160 14.3 174.3 0 192 0zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm248 40c0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24s24 10.7 24 24zM504 384a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"school-flag\": [576, 512, [], \"e56e\", \"M256-8c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-72 0 0 19.2 128 76.8 64 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 128-76.8 0-91.2zM240 384l0 80 96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48zM112 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm-224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],\n \"trademark\": [640, 512, [8482], \"f25c\", \"M346.6 110.2c-7.8-11.7-22.4-17-35.9-12.9S288 113.9 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-150.3 69.4 104.1c5.9 8.9 15.9 14.2 26.6 14.2s20.7-5.3 26.6-14.2L544 233.7 544 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-14.1-9.2-26.5-22.7-30.6s-28.1 1.1-35.9 12.9L448 262.3 346.6 110.2zM32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96z\"],\n \"fire-burner\": [512, 512, [], \"e4f1\", \"M281.7 48.3L294 34.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM320 240.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64zM92.8 320c37.7 48.3 96.1 80 163.2 80 66.5 0 125.1-31.7 163-80l45 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l44.8 0zM456 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"face-smile-beam\": [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"tent-arrow-left-right\": [512, 512, [], \"e57f\", \"M-.5 113c-9.4-9.4-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 310.1 0 54.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0-.1 0-262 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72zM37.1 476L60.3 292.6c1.2-9.7 6.8-18.3 15.1-23.3L238.8 170c10.2-6.2 22.9-6.2 33.1-.1l165.5 99.4c8.4 5 14 13.7 15.3 23.4L475.9 476c2.4 19.1-12.5 36-31.7 36l-71.9 0c-12.1 0-23.2-6.8-28.6-17.7L275.4 357.9c-1.8-3.6-5.5-5.9-9.5-5.9-5.9 0-10.6 4.7-10.6 10.6l0 117.4c0 17.7-14.3 32-32 32L68.8 512c-19.3 0-34.2-16.9-31.7-36z\"],\n \"route\": [512, 512, [], \"f4d7\", \"M512 96c0 50.2-59.1 125.1-84.6 155-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8 6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96 0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8-25.2-27.4-85-97.9-85-148.4 0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"angles-up\": [384, 512, [\"angle-double-up\"], \"f102\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 329.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"],\n \"bucket\": [448, 512, [], \"e4cf\", \"M443.7 208c2.7 4.7 4.3 10.2 4.3 16 0 17.7-14.3 32-32 32l-5.1 0-22.4 213c-2.6 24.4-23.2 43-47.8 43l-233.6 0c-24.6 0-45.2-18.5-47.8-43L37.1 256 32 256c-17.7 0-32-14.3-32-32 0-5.8 1.6-11.3 4.3-16l439.4 0zM224-16c79.5 0 144 64.5 144 144l0 32-48 0 0-32c0-53-43-96-96-96s-96 43-96 96l0 32-48 0 0-32C80 48.5 144.5-16 224-16z\"],\n \"less-than-equal\": [448, 512, [], \"f537\", \"M426.1 94.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-384 128C8.8 166 0 178.2 0 192s8.8 26 21.9 30.4l384 128c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L133.2 192 426.1 94.4zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"],\n \"folder-closed\": [512, 512, [], \"e185\", \"M448 448L64 448c-35.3 0-64-28.7-64-64l0-176 512 0 0 176c0 35.3-28.7 64-64 64zm64-288L0 160 0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 16z\"],\n \"person-through-window\": [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4-60.5 24.2-100.1 82.7-100.1 147.9l0 73.8-64 0 0-320zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4 44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-26.6 0 42.7 64 150.9 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4l-84.2-126.2 74.6 0 40 48zm-159.5 0l-73.5 0 0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"school-lock\": [640, 512, [], \"e56f\", \"M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c33 0 60.2 25 63.6 57.2-14.7-5.9-30.8-9.2-47.6-9.2-70.7 0-128 57.3-128 128l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L64 512c-35.3 0-64-28.7-64-64L0 192zM332.3 341.5c-6-3.5-12.9-5.5-20.3-5.5l-48 0c-22.1 0-40 17.9-40 40l0 88 96 0 0-64.1c0-20.8 4.4-40.5 12.3-58.4zM112 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm224-48a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM560 352l0-47.9c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0zm-112 2.7l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3z\"],\n \"person-burst\": [640, 512, [], \"e53b\", \"M204 40.1c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24zM4 144.1c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM96.5 285.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L96.5 285.5zM62.6 2.7c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L62.6 36.6c-9.4-9.4-9.4-24.6 0-33.9zM352.4-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM478.7 299.1l-46.3-62.4 0 275.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c25.2-33.9 65-53.9 107.2-53.9s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6z\"],\n \"left-long\": [576, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9S192 115.1 192 128l0 64 336 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-336 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"],\n \"location-crosshairs\": [576, 512, [\"location\"], \"f601\", \"M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM128 256a160 160 0 1 0 320 0 160 160 0 1 0 -320 0zm160-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\n \"person-dots-from-line\": [512, 512, [\"diagnoses\"], \"f470\", \"M184 72a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 299.3c-19.9 22.6-32 52.2-32 84.7l0 32-64 0 0-32c0-106 86-192 192-192s192 86 192 192l0 32-64 0 0-32c0-32.5-12.1-62.1-32-84.7l0 116.7-192 0 0-116.7zM232 384a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88-104a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM24 464l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM64 184a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm424 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"gauge-simple-high\": [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64z\"],\n \"angles-left\": [448, 512, [171, \"angle-double-left\"], \"f100\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L269.3 256 406.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"],\n \"up-down\": [512, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M406.6 502.6l96-96c9.2-9.2 11.9-22.9 6.9-34.9S492.9 352 480 352l-64 0 0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 320-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l96 96c12.5 12.5 32.8 12.5 45.3 0zM150.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l64 0 0 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320 64 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-96-96z\"],\n \"battery-empty\": [640, 512, [\"battery-0\"], \"f244\", \"M112 160c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16l416 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16l-416 0zM32 176c0-44.2 35.8-80 80-80l416 0c44.2 0 80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 48c0 44.2-35.8 80-80 80l-416 0c-44.2 0-80-35.8-80-80l0-224z\"],\n \"keyboard\": [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM176 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"],\n \"cookie\": [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"stopwatch\": [448, 512, [9201], \"f2f2\", \"M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm80 184l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"eject\": [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z\"],\n \"satellite-dish\": [512, 512, [128225], \"f7c0\", \"M232 0c154.6 0 280 125.4 280 280 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-128.1-103.9-232-232-232-13.3 0-24-10.7-24-24S218.7 0 232 0zM208 120c0-13.3 10.7-24 24-24 101.6 0 184 82.4 184 184 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-75.1-60.9-136-136-136-13.3 0-24-10.7-24-24zM26.4 142.7c8.8-17.9 32.4-19.9 46.5-5.8l128.5 128.5 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32 128.5 128.5c14.1 14.1 12 37.6-5.8 46.5-34.2 16.9-72.6 26.4-113.3 26.4-141.4 0-256-114.6-256-256 0-40.7 9.5-79.2 26.4-113.3z\"],\n \"face-rolling-eyes\": [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 352l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm32-128c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4zm128 64c-35.3 0-64-28.7-64-64 0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4 0 35.3-28.7 64-64 64z\"],\n \"list-check\": [512, 512, [\"tasks\"], \"f0ae\", \"M133.8 36.3c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 158 47 153L7 113C-2.3 103.6-2.3 88.4 7 79S31.6 69.7 41 79l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zm0 160c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 318 47 313L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM64 376a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],\n \"sack-xmark\": [512, 512, [], \"e56a\", \"M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM323.9 284.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z\"],\n \"hashtag\": [512, 512, [62098], \"23\", \"M214.7 .7c17.3 3.7 28.3 20.7 24.6 38l-19.1 89.3 126.5 0 22-102.7C372.4 8 389.4-3 406.7 .7s28.3 20.7 24.6 38L412.2 128 480 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-27.4 128 67.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38l19.1-89.3-126.5 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38L99.8 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 27.4-128-67.8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 22-102.7C180.4 8 197.4-3 214.7 .7zM206.4 192l-27.4 128 126.5 0 27.4-128-126.5 0z\"],\n \"train\": [384, 512, [128646], \"f238\", \"M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM192 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"gamepad\": [640, 512, [], \"f11b\", \"M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"],\n \"file-export\": [576, 512, [\"arrow-right-from-file\"], \"f56e\", \"M96.5 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-96 78.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-78.1 0 0-133.5c0-17-6.7-33.3-18.7-45.3L291.2 18.7C279.2 6.7 263 0 246 0L96.5 0zM358 176l-93.5 0c-13.3 0-24-10.7-24-24L240.5 58.5 358 176zM224.5 328c0-13.3 10.7-24 24-24l104 0 0 48-104 0c-13.3 0-24-10.7-24-24z\"],\n \"face-grimace\": [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM400 352c0 25.2-19.4 45.8-44 47.8l0-95.7c24.6 2 44 22.7 44 47.8zM276 304l40 0 0 96-40 0 0-96zm-80 96l0-96 40 0 0 96-40 0zm-40-95.8l0 95.7c-24.6-2-44-22.7-44-47.8s19.4-45.8 44-47.8zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"train-subway\": [384, 512, [\"subway\"], \"f239\", \"M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l72 0 0-160-72 0c-17.7 0-32 14.3-32 32zM216 256l72 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-72 0 0 160zM96 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm224-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"circle-dot\": [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\n \"object-group\": [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l337.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1zm448 0c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1zM144 176c0-17.7 14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-64zM256 320l32 0c44.2 0 80-35.8 80-80l32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-16z\"],\n \"ship\": [640, 512, [128674], \"f21a\", \"M272 0c-26.5 0-48 21.5-48 48l0 16-16 0c-44.2 0-80 35.8-80 80l0 108.8-21.6 8.6c-14.8 5.9-22.5 22.4-17.4 37.5 10.4 31.3 26.8 59.3 47.7 83.1 20.1-9.2 41.7-13.9 63.3-14 33.1-.2 66.3 10.2 94.4 31.4l1.6 1.2 0-215-104 41.6 0-83.2c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 83.2-104-41.6 0 215 1.6-1.2c27.5-20.7 59.9-31.2 92.4-31.4 22.3-.1 44.6 4.5 65.3 14 20.9-23.7 37.3-51.8 47.7-83.1 5-15.2-2.6-31.6-17.4-37.5L512 252.8 512 144c0-44.2-35.8-80-80-80l-16 0 0-16c0-26.5-21.5-48-48-48L272 0zM403.4 476.1c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"],\n \"c\": [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3 155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8 221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"],\n \"square-phone\": [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 96.7c9.8-2.7 20.1 2.4 24 11.8l20.3 48.7c3.4 8.3 1.1 17.8-5.9 23.5l-22.1 18c16.2 35.8 44.5 65 79.6 82.4l19.3-23.6c5.7-6.9 15.2-9.3 23.5-5.9l48.7 20.3c9.4 3.9 14.4 14.2 11.8 24l-.8 2.8c-8.8 32.3-40.1 59.9-78.2 51.8-87.5-18.5-156.3-87.4-174.9-174.9-8.1-38.1 19.5-69.4 51.8-78.2l2.8-.8z\"],\n \"ruler-combined\": [448, 512, [], \"f546\", \"M1 441.7C5.5 463.5 24.8 480 48 480l352 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-64 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-64-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-48c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432c0 3.3 .3 6.6 1 9.7z\"],\n \"arrows-rotate\": [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M65.9 228.5c13.3-93 93.4-164.5 190.1-164.5 53 0 101 21.5 135.8 56.2 .2 .2 .4 .4 .6 .6l7.6 7.2-47.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.4-11.3-10.7C390.5 28.6 326.5 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1zm443.5 64c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-53 0-101-21.5-135.8-56.2-.2-.2-.4-.4-.6-.6l-7.6-7.2 47.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320c-8.5 0-16.7 3.4-22.7 9.5S-.1 343.7 0 352.3l1 127c.1 17.7 14.6 31.9 32.3 31.7S65.2 496.4 65 478.7l-.4-51.5 10.7 10.1c46.3 46.1 110.2 74.7 180.7 74.7 129 0 235.7-95.4 253.4-219.5z\"],\n \"person-dress\": [384, 512, [\"female\"], \"f182\", \"M136 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM112 384l-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L270 234 313 362.9c3.5 10.4-4.3 21.1-15.2 21.1l-25.8 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-32 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128z\"],\n \"book-open\": [512, 512, [128214, 128366], \"f518\", \"M256 141.3l0 309.3 .5-.2C311.1 427.7 369.7 416 428.8 416l19.2 0 0-320-19.2 0c-42.2 0-84.1 8.4-123.1 24.6-16.8 7-33.4 13.9-49.7 20.7zM230.9 61.5L256 72 281.1 61.5C327.9 42 378.1 32 428.8 32L464 32c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-35.2 0c-50.7 0-100.9 10-147.7 29.5l-12.8 5.3c-7.9 3.3-16.7 3.3-24.6 0l-12.8-5.3C184.1 490 133.9 480 83.2 480L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l35.2 0c50.7 0 100.9 10 147.7 29.5z\"],\n \"folder-tree\": [576, 512, [], \"f802\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 392c0 30.9 25.1 56 56 56l184 0 0-48-184 0c-4.4 0-8-3.6-8-8l0-232 192 0 0-48-192 0 0-88zM336 224l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48zm0 288l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 288c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48z\"],\n \"box-archive\": [512, 512, [\"archive\"], \"f187\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64zM32 176l448 0 0 240c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-240zm152 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"tent-arrow-down-to-line\": [576, 512, [], \"e57e\", \"M185 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1C120 2.7 109.3-8 96-8S72 2.7 72 16l0 102.1-31-31C31.6 77.7 16.4 77.7 7 87S-2.3 111.6 7 121l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zM155.8 260.6L132.1 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32 0-2.8-.4-5.5-1-8L548.2 260.7c-1.2-9.7-6.9-18.4-15.3-23.4L367.4 137.9c-10.2-6.1-22.9-6.1-33.1 .1L170.9 237.3c-8.3 5.1-13.9 13.7-15.1 23.3zM448 448l-97.1 0 0-149.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9L448 448z\"],\n \"qrcode\": [448, 512, [], \"f029\", \"M64 160l64 0 0-64-64 0 0 64zM0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 416l64 0 0-64-64 0 0 64zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zM320 96l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zM288 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm96 32c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-32 32a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z\"],\n \"dragon\": [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4-43.3-32.5c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L464 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8 0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7l-13.3-13.3-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1 0 60.6-49.1 109.8-109.8 109.8L32.3 512c-3.3 0-6.6-.4-9.6-1.4-9.2-2.8-16.7-9.6-20.4-18.6-1.3-3.3-2.2-6.9-2.3-10.7-.2-3.7 .3-7.3 1.3-10.7 2.8-9.2 9.6-16.7 18.6-20.4 3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1 0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-102.5zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9 0 13.3 10.7 24 24 24 10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9S.1 232.8 5.4 228L130.9 116.5z\"],\n \"hourglass-end\": [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9l-67.9 67.9-67.9-67.9C106.1 124.9 96 100.4 96 75z\"],\n \"grip\": [512, 512, [58119, \"grid-horizontal\", \"grip-horizontal\"], \"f58d\", \"M88 96c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM280 224l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm192 0l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm0 192l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zM280 288c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM88 416l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40z\"],\n \"border-top-left\": [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32C28.7 32 0 60.7 0 96L0 448zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm160 32c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM384 192a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm32 160a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"list-ul\": [512, 512, [\"list-dots\"], \"f0ca\", \"M48 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM48 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM96 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"people-robbery\": [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6 0 191.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z\"],\n \"mobile-button\": [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 464c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n \"arrow-down-a-z\": [512, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm182-340.9c50.7 101.3 77.3 154.7 80 160 7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9c2.7-5.3 29.3-58.7 80-160 5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 135.6l-20.2 40.4 40.4 0-20.2-40.4zM288 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 416 448 416c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l73.4-73.4-50.7 0c-17.7 0-32-14.3-32-32z\"],\n \"money-bill\": [512, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm192 24c0 4.4-3.6 8.1-8 7.5-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48zM64 328c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zm8-136.5c-4.4 .5-8-3.1-8-7.5l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5zm368 129c4.4-.5 8 3.1 8 7.5l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5z\"],\n \"circle-minus\": [512, 512, [\"minus-circle\"], \"f056\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM168 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"arrow-pointer\": [448, 512, [\"mouse-pointer\"], \"f245\", \"M77.3 2.5c8.1-4.1 17.9-3.2 25.1 2.3l320 239.9c8.3 6.2 11.6 17 8.4 26.8s-12.4 16.4-22.8 16.4l-152.3 0 88.9 177.7c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-88.9-177.7-91.3 121.8c-6.2 8.3-17 11.6-26.8 8.4S64 434.3 64 424L64 24c0-9.1 5.1-17.4 13.3-21.5z\"],\n \"square-share-nodes\": [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM368 160c0 35.3-28.7 64-64 64-15.4 0-29.5-5.4-40.6-14.5l-85.3 46.5 85.3 46.5c11-9.1 25.2-14.5 40.6-14.5 35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L158.5 300c-11.7 12.3-28.2 20-46.5 20-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3 0-35.3 28.7-64 64-64s64 28.7 64 64z\"],\n \"table-cells-large\": [448, 512, [\"th-large\"], \"f009\", \"M384 96l-128 0 0 128 128 0 0-128zm64 128l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 128zM64 288l0 128 128 0 0-128-128 0zm128-64l0-128-128 0 0 128 128 0zm64 64l0 128 128 0 0-128-128 0z\"],\n \"cat\": [576, 512, [128008], \"f6be\", \"M64 96c53 0 96 43 96 96l0 85.8c29.7-44.7 77.8-76.2 133.4-84 25.6 60 85.2 102.1 154.6 102.1 10.9 0 21.6-1.1 32-3.1L480 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8-136 108.8 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-224c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 158.2 32 144.6 32 128 32 110.3 46.3 96 64 96zM533.8 3.2C544.2-5.5 560 1.9 560 15.5L560 128c0 61.9-50.1 112-112 112S336 189.9 336 128l0-112.5c0-13.6 15.8-21 26.2-12.3L416 48 480 48 533.8 3.2zM400 108a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm96 0a20 20 0 1 0 0 40 20 20 0 1 0 0-40z\"],\n \"calendar-week\": [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-192 0z\"],\n \"code-compare\": [512, 512, [], \"e13a\", \"M198.8 1.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S184 145.7 184 136l0-24-24 0c-17.7 0-32 14.3-32 32l0 214.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L64 144c0-53 43-96 96-96l24 0 0-24c0-9.7 5.8-18.5 14.8-22.2zM392 80a24 24 0 1 0 48 0 24 24 0 1 0 -48 0zm-8 73.3c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L448 368c0 53-43 96-96 96l-24 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S328 366.3 328 376l0 24 24 0c17.7 0 32-14.3 32-32l0-214.7zM72 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z\"],\n \"road-circle-xmark\": [640, 512, [], \"e566\", \"M287.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.6 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.2c35.2-40 86.7-65.2 144.2-65.2 9 0 17.8 .6 26.4 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.5 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"pallet\": [576, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320zm96 64l128 0 0 64-128 0 0-64zm192 0l128 0 0 64-128 0 0-64z\"],\n \"cake-candles\": [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4-10.5L61.8 31.6C58 38.1 56 45.6 56 53.2L56 56c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zm128 0L189.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zM317.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5L317.8 31.6zM128 160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.5C26.7 226.6 0 262.2 0 304l0 20.8c20.9 1.3 41.6 7.3 60.3 18l7.1 4.1c26.3 15 58.9 13.4 83.6-4.2 43.7-31.2 102.3-31.2 146 0 24.6 17.6 57.3 19.3 83.6 4.2l7.1-4.1c18.7-10.7 39.3-16.7 60.3-18l0-20.8c0-41.8-26.7-77.4-64-90.5l0-53.5c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 373c-12.7 1.2-25.1 5-36.5 11.5l-7.1 4.1c-42.6 24.3-95.4 21.7-135.3-6.8-27-19.3-63.2-19.3-90.2 0-39.9 28.5-92.7 31.2-135.3 6.8l-7.1-4.1C25.1 378 12.7 374.1 0 373l0 75c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-75z\"],\n \"bug-slash\": [576, 512, [], \"e490\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0L241.8 176 344 176c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4s7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 9.5-.8 18.7-2.4 27.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM398.2 468c-23.2 22.1-53 37.2-86.2 42.2l0-128.4 86.2 86.2zM264 333.8l0 176.4c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c3.3-13.9 9.3-26.7 17.6-37.8L264 333.8zM355.6 128l-82.4 0-72.3-72.3C216.1 22.8 249.4 0 288 0 341 0 384 43 384 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4z\"],\n \"tarp\": [512, 512, [], \"e57b\", \"M448 64c35.3 0 64 28.7 64 64l0 149.5c0 17-6.7 33.3-18.7 45.3L386.7 429.3c-12 12-28.3 18.7-45.3 18.7L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l384 0zm5.5 208L360 272c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5zM96 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"diagram-predecessor\": [448, 512, [], \"e477\", \"M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 352l-320 0 0 64 320 0 0-64zm64 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64z\"],\n \"face-flushed\": [512, 512, [128563, \"flushed\"], \"f579\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM168 392c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-96a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"diagram-next\": [448, 512, [], \"e476\", \"M384 224c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l128 0 0 64-32 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S294.5 288 288 288l-32 0 0-64 128 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64l-34 0c5.6 21.7-.5 45.1-16.7 61.3l-64 64c-25 25-65.5 25-90.5 0l-64-64C98.6 333.1 92.4 309.7 98 288l-34 0z\"],\n \"anchor-circle-xmark\": [640, 512, [], \"e4ac\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"person-circle-xmark\": [640, 512, [], \"e543\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z\"],\n \"spa\": [576, 512, [], \"f5bb\", \"M169.7 227.5c34.3 18.7 64.5 44.1 88.8 74.5 11.1 13.9 21 28.9 29.4 44.8 8.5-15.9 18.3-30.8 29.4-44.8 24.3-30.5 54.5-55.9 88.8-74.5 41.7-22.7 89.4-35.5 139.7-35.5l9.9 0c11.1 0 20.1 9 20.1 20.1 0 148-119.9 267.9-267.9 267.9l-40.2 0C119.9 480 0 360.1 0 212.1 0 201 9 192 20.1 192l9.9 0c50.4 0 98.1 12.8 139.7 35.5zM303.9 38c16.9 15.9 61.4 63.4 89 142.3-40.1 20.2-75.8 48.2-104.9 82.1-29.2-33.9-64.8-61.8-104.9-82.1 27.6-78.9 72.2-126.4 89-142.3 4.3-4.1 10-6 15.9-6s11.6 2 15.9 6z\"],\n \"bars-progress\": [448, 512, [\"tasks-alt\"], \"f828\", \"M288 160l96 0 0-64-96 0 0 64zM0 160L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 224c-26.5 0-48-21.5-48-48l0-16zM160 416l224 0 0-64-224 0 0 64zM0 416l0-80c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-16z\"],\n \"heart-circle-check\": [576, 512, [], \"e4fd\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"],\n \"mars-stroke-right\": [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M320.5 256a112 112 0 1 0 -224 0 112 112 0 1 0 224 0zM208.5 80c86.3 0 158.1 62.1 173.1 144.1 1-.1 1.9-.1 2.9-.1l16 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 61.4 0-22.4-28c-11-13.8-8.8-33.9 5-45s33.9-8.8 45 5l64 80c9.3 11.7 9.3 28.3 0 40l-64 80c-11 13.8-31.2 16-45 5s-16-31.2-5-45l22.4-28-61.4 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-16 0c-1 0-1.9 0-2.9-.1-15 82-86.8 144.1-173.1 144.1-97.2 0-176-78.8-176-176s78.8-176 176-176z\"],\n \"tower-observation\": [448, 512, [], \"e586\", \"M209.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9-5.6 11.2-16.9 17.7-28.6 17.7l0 80c0 17.7-14.3 32-32 32l-13 0 32 192 45 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l45 0 32-192-13 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7-7.9-15.8-1.5-35 14.3-42.9l160-80zM310.7 448l-86.7-61.9-86.7 61.9 173.4 0zm-153-192l-3.5 21.2 69.9 49.9 69.9-49.9-3.5-21.2-132.7 0zm-12.3 73.9l-10.1 60.6 47.5-33.9-37.4-26.7zm119.9 26.7l47.5 33.9-10.1-60.6-37.4 26.7zM152 128c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"sterling-sign\": [384, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M91.3 288l-34.8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l21.4 0C37.3 147.3 105.1 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-57.3 0-94.7 59.9-69.7 111.4 3.6 7.4 6.6 14.9 9.1 22.6l149.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-141.2 0c1 35.3-8.7 70.6-28.9 100.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c13.1-19.6 19.2-42.6 18.2-65.4z\"],\n \"faucet-drip\": [512, 512, [128688], \"e006\", \"M224 32c-17.7 0-32 14.3-32 32L96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l96 0 0 64-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 224 32 224c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32 0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4l-18.7 0 0-64 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c0-17.7-14.3-32-32-32zM436.8 455.4l-18.2 42.4c-1.8 4.1-2.7 8.6-2.7 13.1l0 1.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.2c0-4.5-.9-8.9-2.7-13.1l-18.2-42.4c-1.9-4.5-6.3-7.4-11.2-7.4s-9.2 2.9-11.2 7.4z\"],\n \"circle-info\": [512, 512, [\"info-circle\"], \"f05a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"feather\": [512, 512, [129718], \"f52d\", \"M352 0c41 0 80.3 16.3 109.2 45.2l5.5 5.5c29 29 45.3 68.3 45.3 109.2 0 24.1-5.7 47.6-16.2 68.8-1.9 3.7-5.3 6.5-9.3 7.7L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l32.2 0c14.3 0 21.4 17.2 11.3 27.3l-22.4 22.4c-1.9 1.9-4.2 3.2-6.7 4l-81 24.3c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2 13.2 0 18.9 15.7 7.8 22.9-41.1 26.6-89.3 41.1-139 41.1l-86 0-48 48c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L79.5 336.5c-5.7 5.7-15.5 1.7-15.5-6.4 0-67.9 27-133 75-181L242.8 45.2C271.7 16.3 311 0 352 0z\"],\n \"bowl-rice\": [512, 512, [], \"e2eb\", \"M176 40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 160l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 184c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM104 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM296 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM392 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 16l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"star-half-stroke\": [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288.1 353.6c10 0 19.9 2.3 29 7l74.4 37.9-13-82.5c-3.2-20.2 3.5-40.7 17.9-55.2l59-59.1-82.5-13.1c-20.2-3.2-37.7-15.9-47-34.1l-38-74.4 0 273.6zM457.4 489c-7.3 5.3-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1s17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2z\"],\n \"temperature-arrow-down\": [512, 512, [\"temperature-down\"], \"e03f\", \"M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 310.6c-6 6-14.1 9.4-22.6 9.4s-16.6-3.4-22.6-9.4l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-178.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64z\"],\n \"mask-ventilator\": [640, 512, [], \"e524\", \"M152.2 192c-15.4 38.3-24.2 77.2-24.2 108.8 0 13.3 1.5 26.2 4.4 38.7l-17-3.4c-29.9-6-51.4-32.2-51.4-62.8l0-81.3 88.2 0zm32.9-64L64 128c-35.3 0-64 28.7-64 64l0 81.3c0 61 43.1 113.5 102.9 125.5l66.3 13.3c18.7 22.1 42.9 40 70.8 51.8l0-87.8c-10.1-14.2-16-31.3-16-49.7 0-49.5 43-134.4 96-134.4 52.5 0 96 84.9 96 134.4 0 18.4-5.9 35.4-16 49.6l0 87.7c27.6-11.8 51.7-29.6 70.4-51.6l66.7-13.3c59.8-12 102.9-64.5 102.9-125.5l0-81.3c0-35.3-28.7-64-64-64l-121.5 0c-34.8-54.2-82.5-96-134.5-96-52.6 0-100.2 41.8-134.9 96zm302.5 64l88.4 0 0 81.3c0 30.5-21.5 56.8-51.4 62.8l-17 3.4c2.9-12.4 4.5-25.4 4.5-38.7 0-31.6-8.9-70.5-24.4-108.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\n \"file-video\": [384, 512, [], \"f1c8\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM80 304l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-24 35 35c3.2 3.2 7.5 5 12 5 9.4 0 17-7.6 17-17l0-94.1c0-9.4-7.6-17-17-17-4.5 0-8.8 1.8-12 5l-35 35 0-24c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32z\"],\n \"arrow-trend-down\": [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7-169.4-169.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z\"],\n \"oil-can\": [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-176 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30 0 21.3c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192 397.5 166.8c-8.9-4.4-18.7-6.8-28.6-6.8l-80.9 0 0-32 32 0zM96 208l0 86.1-48-21.3 0-64.8 48 0z\"],\n \"people-carry-box\": [576, 512, [\"people-carry\"], \"f4ce\", \"M64-32A56 56 0 1 1 64 80 56 56 0 1 1 64-32zM0 171.1c0-32.6 26.5-59.1 59.1-59.1 23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c5.8 8.2 15.1 13.1 25.1 13.4l0-96c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c10-.3 19.3-5.2 25.1-13.4l48.7-68.2c13.6-19.1 35.6-30.4 59.1-30.4 32.6 0 59.1 26.5 59.1 59.1L576 272c0 30.2-14.2 58.7-38.4 76.8l-76.8 57.6c-8.1 6-12.8 15.5-12.8 25.6l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-30.2 14.2-58.7 38.4-76.8l41.6-31.2 0-80.1-2.8 3.9c-18 25.2-47.1 40.2-78.1 40.2L352 288c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-120.4 0c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C177.8 373.3 192 401.8 192 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L38.4 348.8C14.2 330.7 0 302.2 0 272L0 171.1zM0 379.3c3.1 2.7 6.3 5.4 9.6 7.9L64 428 64 512c0 17.7-14.3 32-32 32S0 529.7 0 512L0 379.3zM568 24a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zm8 488c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-84 54.4-40.8c3.3-2.5 6.5-5.1 9.6-7.9L576 512z\"],\n \"chair\": [448, 512, [129681], \"f6c0\", \"M152 256l0-181.8c-24.5 20.5-40 51.4-40 85.8l0 96 40 0zm48 0l48 0 0-205.4c-7.7-1.7-15.8-2.6-24-2.6s-16.3 .9-24 2.6L200 256zM296 74.2l0 181.8 40 0 0-96c0-34.4-15.5-65.2-40-85.8zM32 256l32 0 0-96C64 71.6 135.6 0 224 0S384 71.6 384 160l0 96 32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-256 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"],\n \"wind\": [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32l40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L32 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l328 0c48.6 0 88-39.4 88-88S408.6 0 360 0L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l40 0c48.6 0 88-39.4 88-88s-39.4-88-88-88L32 336c-17.7 0-32 14.3-32 32s14.3 32 32 32l136 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"],\n \"layer-group\": [512, 512, [], \"f5fd\", \"M232.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 149.8C5.4 145.8 0 137.3 0 128s5.4-17.9 13.9-21.8L232.5 5.2zM48.1 218.4l164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 277.8C5.4 273.8 0 265.3 0 256s5.4-17.9 13.9-21.8l34.1-15.8zM13.9 362.2l34.1-15.8 164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 405.8C5.4 401.8 0 393.3 0 384s5.4-17.9 13.9-21.8z\"],\n \"head-side-mask\": [512, 512, [], \"e063\", \"M445.9 193c-.1-.4-.2-.9-.2-1.3-15.7-108.4-108.9-191.7-221.7-191.7-85 0-159 47.4-196.9 117.2L283.3 288 456 288 442.9 336 336 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l98.2 0-8.7 32-89.5 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80.6 0c-6.7 19.1-24.8 32-45.3 32L288 464c-17.7 0-32-14.3-32-32l0-104.5-247.5-165C3 182.1 0 202.7 0 224 0 278 19.1 327.5 50.9 366.2 58.9 375.9 64 387.8 64 400.4L64 464c0 26.5 21.5 48 48 48l127.3 0 .7 0 131.3 0c44.9 0 83.8-31.1 93.6-74.9l33.9-150.3c3.3-14.4-.3-29.5-9.7-41L445.9 193zM288 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"hands\": [512, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M512 160l-.1 72.6c0 44.8-17.6 87.1-47.9 118.4-.3-77-40.1-148.4-105.4-189.3l-1.9-1.2c2.5-3.7 2.8-8.6 .4-12.7l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S330 5 336.6 16.5l68 117.8 0 0 0 0 43.3 75 .1-49.3c0-17.7 14.4-32 32-32s32 14.4 32 32zM298.4 124.2c-14.1-8.8-29.8-12.7-45.2-12.1L216.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l67.1 116.2-27-16.9zM211.9 88.5l16.4 28.4c-15.1 5.5-28.6 15.6-38.3 29.7l-19.7-34.2c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l12.5 21.7c-2 8.6-2.5 17.5-1.7 26.1l-4.3 0 0 0-34.4 0-13.7-23.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM228.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C384.7 234.7 416 291.2 416 352l0 8c0 83.9-68.1 152-152 152L88 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L24 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0 0 0 0 0 93.2 0-46.2-28.9c-15-9.4-19.5-29.1-10.2-44.1z\"],\n \"tablets\": [512, 512, [], \"f490\", \"M495.3 76.6c-4.6-8.7-16.3-9.7-23.3-2.7L297.9 248c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4zM240.7 211.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 40c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM144 224C79.2 224 24.4 266.8 6.3 325.6 3.4 335.1 11 344 20.9 344l246.2 0c9.9 0 17.5-8.9 14.6-18.4-.9-3-1.9-5.9-3-8.7-37.4-18.1-68-48-87-84.8-14.9-5.2-30.9-8.1-47.6-8.1zM281.7 410.4c2.9-9.5-4.7-18.4-14.6-18.4L20.9 392C11 392 3.4 400.9 6.3 410.4 24.4 469.2 79.2 512 144 512s119.6-42.8 137.7-101.6z\"],\n \"weight-hanging\": [512, 512, [], \"f5cd\", \"M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32 0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32l-21.8 0c-28.3 0-53.2 18.5-61.3 45.6L2.4 440.2C.8 445.4 0 450.8 0 456.2 0 487 25 512 55.8 512l400.4 0c30.8 0 55.8-25 55.8-55.8 0-5.4-.8-10.8-2.4-16l-80-266.5c-8.1-27.1-33-45.6-61.3-45.6l-21.8 0z\"],\n \"dice\": [512, 512, [127922], \"f522\", \"M141.4 2.3C103-8 63.5 14.8 53.3 53.2L2.5 242.7C-7.8 281.1 15 320.6 53.4 330.9l189.5 50.8c38.4 10.3 77.9-12.5 88.2-50.9l50.8-189.5c10.3-38.4-12.5-77.9-50.9-88.2L141.4 2.3zm23 205.7a32 32 0 1 1 55.4-32 32 32 0 1 1 -55.4 32zM79.2 220.3a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm185 96.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zm9-208.4a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm-121 14.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zM418 192L377.4 343.2c-17.2 64-83 102-147 84.9l-38.3-10.3 0 30.2c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L418 192z\"],\n \"shop-slash\": [576, 512, [\"store-alt-slash\"], \"e070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-190.3c26.8-1.9 48-24.3 48-51.6 0-8-1.9-16-5.5-23.2L497.7 67.4C486.8 45.7 464.7 32 440.4 32L135.6 32c-10.7 0-21 2.7-30.2 7.6L41-24.9zM321.8 256L448 256 448 382.2 321.8 256zM352 421.8l-64-64 0 10.2c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16l0-112 58.2 0-134.8-134.8-29.9 59.9c-3.6 7.2-5.5 15.1-5.5 23.2 0 27.3 21.2 49.7 48 51.6L64 432c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-10.2z\"],\n \"sort-down\": [384, 512, [\"sort-desc\"], \"f0dd\", \"M32 288c-12.9 0-24.6 7.8-29.6 19.8S.2 333.5 9.4 342.6l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288z\"],\n \"peseta-sign\": [448, 512, [], \"e221\", \"M112 32C94.3 32 80 46.3 80 64l0 104-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 232c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c80.2 0 146.6-59 158.2-136l25.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-25.8 0C386.6 91 320.2 32 240 32L112 32zM333 168l-189 0 0-72 96 0c44.7 0 82.3 30.6 93 72zM144 216l189 0c-10.7 41.4-48.2 72-93 72l-96 0 0-72z\"],\n \"tablet-screen-button\": [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 432a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64l-320 0 0 288 320 0 0-288z\"],\n \"hand-holding-dollar\": [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M288-16c-13.3 0-24 10.7-24 24l0 12-1.8 0c-36.6 0-66.2 29.7-66.2 66.2 0 33.4 24.9 61.6 58 65.7l61 7.6c5.1 .6 9 5 9 10.2 0 5.7-4.6 10.2-10.2 10.2L240 180c-15.5 0-28 12.5-28 28s12.5 28 28 28l24 0 0 12c0 13.3 10.7 24 24 24s24-10.7 24-24l0-12 1.8 0c36.6 0 66.2-29.7 66.2-66.2 0-33.4-24.9-61.6-58-65.7l-61-7.6c-5.1-.6-9-5-9-10.2 0-5.7 4.6-10.2 10.2-10.2L328 76c15.5 0 28-12.5 28-28s-12.5-28-28-28l-16 0 0-12c0-13.3-10.7-24-24-24zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"],\n \"shield\": [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0z\"],\n \"face-laugh\": [512, 512, [\"laugh\"], \"f599\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"hands-holding\": [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0c-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c24.1 24.1 39.9 39.9 47.2 47.2 11 11 9.2 29.2-3.7 37.8-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 104zm480 0l0 160.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1-12.9-8.6-14.7-26.9-3.7-37.8 7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-24.1 24.1-39.9 39.9-47.2 47.2l0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"],\n \"cart-shopping\": [640, 512, [128722, \"shopping-cart\"], \"f07a\", \"M24-16C10.7-16 0-5.3 0 8S10.7 32 24 32l45.3 0c3.9 0 7.2 2.8 7.9 6.6l52.1 286.3c6.2 34.2 36 59.1 70.8 59.1L456 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-255.9 0c-11.6 0-21.5-8.3-23.6-19.7l-5.1-28.3 303.6 0c30.8 0 57.2-21.9 62.9-52.2L568.9 69.9C572.6 50.2 557.5 32 537.4 32l-412.7 0-.4-2c-4.8-26.6-28-46-55.1-46L24-16zM208 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],\n \"octagon\": [512, 512, [128721], \"f306\", \"M188.6 .1c-17 0-33.3 6.7-45.3 18.7L19.2 143C7.2 155 .5 171.2 .5 188.2l0 135.6c0 17 6.7 33.3 18.7 45.3L143.4 493.2c12 12 28.3 18.7 45.3 18.7l135.6 0c17 0 33.3-6.7 45.3-18.7L493.6 369c12-12 18.7-28.3 18.7-45.3l0-135.6c0-17-6.7-33.3-18.7-45.3L369.5 18.8c-12-12-28.3-18.7-45.3-18.7L188.6 .1z\"],\n \"hand-pointer\": [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2 20.6 0 38.2 13 45 31.2 8.8-9.3 21.2-15.2 35-15.2 25.3 0 46 19.5 47.9 44.3 8.5-7.7 19.8-12.3 32.1-12.3 26.5 0 48 21.5 48 48l0 112c0 70.7-57.3 128-128 128l-85.3 0c-5 0-9.9-.3-14.7-1-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7 0-322.7zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"],\n \"registered\": [512, 512, [174], \"f25d\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM200 144l80 0c39.8 0 72 32.2 72 72 0 28.9-17 53.8-41.6 65.3l30.2 50.3c6.8 11.4 3.1 26.1-8.2 32.9s-26.1 3.1-32.9-8.2l-41-68.3-34.4 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24zm72 96l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0 48 48 0z\"],\n \"house-signal\": [576, 512, [], \"e012\", \"M515.9 240l-19.9 0 0 144c0 35.3-28.7 64-64 64l-137 0c-24-91.7-93.5-165-183-194.3l0-13.7-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L276.5-4.9C283.9-12 293.7-16 304-16s20.1 4 27.5 11.1L535.4 191.7c5.5 5.3 8.6 12.6 8.6 20.2 0 15.5-12.6 28.1-28.1 28.1zM280 192c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0zM24 288c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 408c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24z\"],\n \"bangladeshi-taka-sign\": [384, 512, [], \"e2e6\", \"M36 32.3C18.4 30.1 2.4 42.5 .3 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8l0 31.5-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 176c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-176 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-31.5C128 80.1 92 39.2 43.9 33.2l-7.9-1z\"]\n };\n\n bunker(function () {\n defineIcons('fas', icons);\n defineIcons('fa-solid', icons);\n });\n\n}());\n(function () {\n 'use strict';\n\n function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n }\n function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n }\n function _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n }\n function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }\n function _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n }\n function _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n }\n function _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = !0, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n }\n function _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n }\n function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n }\n function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n }\n function _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n }\n function _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n }\n function _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n }\n function _wrapRegExp() {\n _wrapRegExp = function (e, r) {\n return new BabelRegExp(e, void 0, r);\n };\n var e = RegExp.prototype,\n r = new WeakMap();\n function BabelRegExp(e, t, p) {\n var o = RegExp(e, t);\n return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype);\n }\n function buildGroups(e, t) {\n var p = r.get(t);\n return Object.keys(p).reduce(function (r, t) {\n var o = p[t];\n if (\"number\" == typeof o) r[t] = e[o];else {\n for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++;\n r[t] = e[o[i]];\n }\n return r;\n }, Object.create(null));\n }\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) {\n var t = e.exec.call(this, r);\n if (t) {\n t.groups = buildGroups(t, this);\n var p = t.indices;\n p && (p.groups = buildGroups(p, this));\n }\n return t;\n }, BabelRegExp.prototype[Symbol.replace] = function (t, p) {\n if (\"string\" == typeof p) {\n var o = r.get(this);\n return e[Symbol.replace].call(this, t, p.replace(/\\$<([^>]+)(>|$)/g, function (e, r, t) {\n if (\"\" === t) return e;\n var p = o[r];\n return Array.isArray(p) ? \"$\" + p.join(\"$\") : \"number\" == typeof p ? \"$\" + p : \"\";\n }));\n }\n if (\"function\" == typeof p) {\n var i = this;\n return e[Symbol.replace].call(this, t, function () {\n var e = arguments;\n return \"object\" != typeof e[e.length - 1] && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e);\n });\n }\n return e[Symbol.replace].call(this, t, p);\n }, _wrapRegExp.apply(this, arguments);\n }\n\n var noop = function noop() {};\n var _WINDOW = {};\n var _DOCUMENT = {};\n var _MUTATION_OBSERVER = null;\n var _PERFORMANCE = {\n mark: noop,\n measure: noop\n };\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n } catch (e) {} // eslint-disable-line no-empty\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var MUTATION_OBSERVER = _MUTATION_OBSERVER;\n var PERFORMANCE = _PERFORMANCE;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n var _dt;\n var E = /fa(k|kd|s|r|l|t|d|dr|dl|dt|b|slr|slpr|wsb|tl|ns|nds|es|jr|jfr|jdr|usb|ufsb|udsb|cr|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\\-\\ ]/,\n _ = /Font ?Awesome ?([567 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit|Notdog Duo|Notdog|Chisel|Etch|Thumbprint|Jelly Fill|Jelly Duo|Jelly|Utility|Utility Fill|Utility Duo|Slab Press|Slab|Whiteboard)?.*/i;\n var q = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n slab: {\n \"fa-regular\": \"regular\",\n faslr: \"regular\"\n },\n \"slab-press\": {\n \"fa-regular\": \"regular\",\n faslpr: \"regular\"\n },\n thumbprint: {\n \"fa-light\": \"light\",\n fatl: \"light\"\n },\n whiteboard: {\n \"fa-semibold\": \"semibold\",\n fawsb: \"semibold\"\n },\n notdog: {\n \"fa-solid\": \"solid\",\n fans: \"solid\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"solid\",\n fands: \"solid\"\n },\n etch: {\n \"fa-solid\": \"solid\",\n faes: \"solid\"\n },\n jelly: {\n \"fa-regular\": \"regular\",\n fajr: \"regular\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"regular\",\n fajfr: \"regular\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"regular\",\n fajdr: \"regular\"\n },\n chisel: {\n \"fa-regular\": \"regular\",\n facr: \"regular\"\n },\n utility: {\n \"fa-semibold\": \"semibold\",\n fausb: \"semibold\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"semibold\",\n faudsb: \"semibold\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"semibold\",\n faufsb: \"semibold\"\n }\n },\n H = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n Q = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\", \"fa-thumbprint\", \"fa-whiteboard\", \"fa-notdog\", \"fa-notdog-duo\", \"fa-chisel\", \"fa-etch\", \"fa-jelly\", \"fa-jelly-fill\", \"fa-jelly-duo\", \"fa-slab\", \"fa-slab-press\", \"fa-utility\", \"fa-utility-duo\", \"fa-utility-fill\"];\n var i = \"classic\",\n t = \"duotone\",\n d = \"sharp\",\n l = \"sharp-duotone\",\n f = \"chisel\",\n n = \"etch\",\n h = \"jelly\",\n o = \"jelly-duo\",\n u = \"jelly-fill\",\n g = \"notdog\",\n s = \"notdog-duo\",\n y = \"slab\",\n m = \"slab-press\",\n e = \"thumbprint\",\n p = \"utility\",\n a = \"utility-duo\",\n w = \"utility-fill\",\n x = \"whiteboard\",\n b = \"Classic\",\n c = \"Duotone\",\n I = \"Sharp\",\n F = \"Sharp Duotone\",\n v = \"Chisel\",\n S = \"Etch\",\n A = \"Jelly\",\n P = \"Jelly Duo\",\n j = \"Jelly Fill\",\n B = \"Notdog\",\n N = \"Notdog Duo\",\n k = \"Slab\",\n D = \"Slab Press\",\n T = \"Thumbprint\",\n C = \"Utility\",\n W = \"Utility Duo\",\n K = \"Utility Fill\",\n R = \"Whiteboard\",\n rt = [i, t, d, l, f, n, h, o, u, g, s, y, m, e, p, a, w, x],\n dt = (_dt = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, i, b), t, c), d, I), l, F), f, v), n, S), h, A), o, P), u, j), g, B), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, s, N), y, k), m, D), e, T), p, C), a, W), w, K), x, R));\n var gt = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n slab: {\n 400: \"faslr\"\n },\n \"slab-press\": {\n 400: \"faslpr\"\n },\n whiteboard: {\n 600: \"fawsb\"\n },\n thumbprint: {\n 300: \"fatl\"\n },\n notdog: {\n 900: \"fans\"\n },\n \"notdog-duo\": {\n 900: \"fands\"\n },\n etch: {\n 900: \"faes\"\n },\n chisel: {\n 400: \"facr\"\n },\n jelly: {\n 400: \"fajr\"\n },\n \"jelly-fill\": {\n 400: \"fajfr\"\n },\n \"jelly-duo\": {\n 400: \"fajdr\"\n },\n utility: {\n 600: \"fausb\"\n },\n \"utility-duo\": {\n 600: \"faudsb\"\n },\n \"utility-fill\": {\n 600: \"faufsb\"\n }\n };\n var Ct = {\n \"Font Awesome 7 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 7 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n \"Font Awesome 7 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 7 Duotone\": {\n 900: \"fad\",\n 400: \"fadr\",\n normal: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n \"Font Awesome 7 Sharp\": {\n 900: \"fass\",\n 400: \"fasr\",\n normal: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"Font Awesome 7 Sharp Duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n normal: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n \"Font Awesome 7 Jelly\": {\n 400: \"fajr\",\n normal: \"fajr\"\n },\n \"Font Awesome 7 Jelly Fill\": {\n 400: \"fajfr\",\n normal: \"fajfr\"\n },\n \"Font Awesome 7 Jelly Duo\": {\n 400: \"fajdr\",\n normal: \"fajdr\"\n },\n \"Font Awesome 7 Slab\": {\n 400: \"faslr\",\n normal: \"faslr\"\n },\n \"Font Awesome 7 Slab Press\": {\n 400: \"faslpr\",\n normal: \"faslpr\"\n },\n \"Font Awesome 7 Thumbprint\": {\n 300: \"fatl\",\n normal: \"fatl\"\n },\n \"Font Awesome 7 Notdog\": {\n 900: \"fans\",\n normal: \"fans\"\n },\n \"Font Awesome 7 Notdog Duo\": {\n 900: \"fands\",\n normal: \"fands\"\n },\n \"Font Awesome 7 Etch\": {\n 900: \"faes\",\n normal: \"faes\"\n },\n \"Font Awesome 7 Chisel\": {\n 400: \"facr\",\n normal: \"facr\"\n },\n \"Font Awesome 7 Whiteboard\": {\n 600: \"fawsb\",\n normal: \"fawsb\"\n },\n \"Font Awesome 7 Utility\": {\n 600: \"fausb\",\n normal: \"fausb\"\n },\n \"Font Awesome 7 Utility Duo\": {\n 600: \"faudsb\",\n normal: \"faudsb\"\n },\n \"Font Awesome 7 Utility Fill\": {\n 600: \"faufsb\",\n normal: \"faufsb\"\n }\n };\n var Ut = new Map([[\"classic\", {\n defaultShortPrefixId: \"fas\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\", \"brands\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"duotone\", {\n defaultShortPrefixId: \"fad\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp\", {\n defaultShortPrefixId: \"fass\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp-duotone\", {\n defaultShortPrefixId: \"fasds\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"chisel\", {\n defaultShortPrefixId: \"facr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"etch\", {\n defaultShortPrefixId: \"faes\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"jelly\", {\n defaultShortPrefixId: \"fajr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"jelly-duo\", {\n defaultShortPrefixId: \"fajdr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"jelly-fill\", {\n defaultShortPrefixId: \"fajfr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"notdog\", {\n defaultShortPrefixId: \"fans\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"notdog-duo\", {\n defaultShortPrefixId: \"fands\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"slab\", {\n defaultShortPrefixId: \"faslr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"slab-press\", {\n defaultShortPrefixId: \"faslpr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"thumbprint\", {\n defaultShortPrefixId: \"fatl\",\n defaultStyleId: \"light\",\n styleIds: [\"light\"],\n futureStyleIds: [],\n defaultFontWeight: 300\n }], [\"utility\", {\n defaultShortPrefixId: \"fausb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"utility-duo\", {\n defaultShortPrefixId: \"faudsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"utility-fill\", {\n defaultShortPrefixId: \"faufsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"whiteboard\", {\n defaultShortPrefixId: \"fawsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }]]),\n _t = {\n chisel: {\n regular: \"facr\"\n },\n classic: {\n brands: \"fab\",\n light: \"fal\",\n regular: \"far\",\n solid: \"fas\",\n thin: \"fat\"\n },\n duotone: {\n light: \"fadl\",\n regular: \"fadr\",\n solid: \"fad\",\n thin: \"fadt\"\n },\n etch: {\n solid: \"faes\"\n },\n jelly: {\n regular: \"fajr\"\n },\n \"jelly-duo\": {\n regular: \"fajdr\"\n },\n \"jelly-fill\": {\n regular: \"fajfr\"\n },\n notdog: {\n solid: \"fans\"\n },\n \"notdog-duo\": {\n solid: \"fands\"\n },\n sharp: {\n light: \"fasl\",\n regular: \"fasr\",\n solid: \"fass\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n light: \"fasdl\",\n regular: \"fasdr\",\n solid: \"fasds\",\n thin: \"fasdt\"\n },\n slab: {\n regular: \"faslr\"\n },\n \"slab-press\": {\n regular: \"faslpr\"\n },\n thumbprint: {\n light: \"fatl\"\n },\n utility: {\n semibold: \"fausb\"\n },\n \"utility-duo\": {\n semibold: \"faudsb\"\n },\n \"utility-fill\": {\n semibold: \"faufsb\"\n },\n whiteboard: {\n semibold: \"fawsb\"\n }\n };\n var Yt = [\"fak\", \"fa-kit\", \"fakd\", \"fa-kit-duotone\"],\n qt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n Ht = [\"kit\"];\n var L = \"kit\",\n r = \"kit-duotone\",\n U = \"Kit\",\n J = \"Kit Duotone\",\n $t = _defineProperty(_defineProperty({}, L, U), r, J);\n var ol = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n };\n var dl = {\n \"Font Awesome Kit\": {\n 400: \"fak\",\n normal: \"fak\"\n },\n \"Font Awesome Kit Duotone\": {\n 400: \"fakd\",\n normal: \"fakd\"\n }\n },\n fl = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\n var ul = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\n var _ml;\n var l$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n f$1 = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\", \"fa-thumbprint\", \"fa-whiteboard\", \"fa-notdog\", \"fa-notdog-duo\", \"fa-chisel\", \"fa-etch\", \"fa-jelly\", \"fa-jelly-fill\", \"fa-jelly-duo\", \"fa-slab\", \"fa-slab-press\", \"fa-utility\", \"fa-utility-duo\", \"fa-utility-fill\"];\n var n$1 = \"classic\",\n o$1 = \"duotone\",\n u$1 = \"sharp\",\n s$1 = \"sharp-duotone\",\n h$1 = \"chisel\",\n g$1 = \"etch\",\n y$1 = \"jelly\",\n e$1 = \"jelly-duo\",\n m$1 = \"jelly-fill\",\n p$1 = \"notdog\",\n a$1 = \"notdog-duo\",\n w$1 = \"slab\",\n b$1 = \"slab-press\",\n r$1 = \"thumbprint\",\n c$1 = \"utility\",\n i$1 = \"utility-duo\",\n x$1 = \"utility-fill\",\n I$1 = \"whiteboard\",\n F$1 = \"Classic\",\n v$1 = \"Duotone\",\n S$1 = \"Sharp\",\n A$1 = \"Sharp Duotone\",\n P$1 = \"Chisel\",\n j$1 = \"Etch\",\n B$1 = \"Jelly\",\n N$1 = \"Jelly Duo\",\n k$1 = \"Jelly Fill\",\n D$1 = \"Notdog\",\n C$1 = \"Notdog Duo\",\n T$1 = \"Slab\",\n L$1 = \"Slab Press\",\n W$1 = \"Thumbprint\",\n R$1 = \"Utility\",\n K$1 = \"Utility Duo\",\n U$1 = \"Utility Fill\",\n J$1 = \"Whiteboard\",\n ml$1 = (_ml = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, n$1, F$1), o$1, v$1), u$1, S$1), s$1, A$1), h$1, P$1), g$1, j$1), y$1, B$1), e$1, N$1), m$1, k$1), p$1, D$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, a$1, C$1), w$1, T$1), b$1, L$1), r$1, W$1), c$1, R$1), i$1, K$1), x$1, U$1), I$1, J$1));\n var E$1 = \"kit\",\n d$1 = \"kit-duotone\",\n _$1 = \"Kit\",\n M$1 = \"Kit Duotone\",\n rt$1 = _defineProperty(_defineProperty({}, E$1, _$1), d$1, M$1);\n var $t$1 = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n },\n slab: {\n \"fa-regular\": \"faslr\"\n },\n \"slab-press\": {\n \"fa-regular\": \"faslpr\"\n },\n whiteboard: {\n \"fa-semibold\": \"fawsb\"\n },\n thumbprint: {\n \"fa-light\": \"fatl\"\n },\n notdog: {\n \"fa-solid\": \"fans\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"fands\"\n },\n etch: {\n \"fa-solid\": \"faes\"\n },\n jelly: {\n \"fa-regular\": \"fajr\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"fajfr\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"fajdr\"\n },\n chisel: {\n \"fa-regular\": \"facr\"\n },\n utility: {\n \"fa-semibold\": \"fausb\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"faudsb\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"faufsb\"\n }\n },\n z = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"],\n slab: [\"faslr\"],\n \"slab-press\": [\"faslpr\"],\n whiteboard: [\"fawsb\"],\n thumbprint: [\"fatl\"],\n notdog: [\"fans\"],\n \"notdog-duo\": [\"fands\"],\n etch: [\"faes\"],\n jelly: [\"fajr\"],\n \"jelly-fill\": [\"fajfr\"],\n \"jelly-duo\": [\"fajdr\"],\n chisel: [\"facr\"],\n utility: [\"fausb\"],\n \"utility-duo\": [\"faudsb\"],\n \"utility-fill\": [\"faufsb\"]\n },\n Ht$1 = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n },\n slab: {\n faslr: \"fa-regular\"\n },\n \"slab-press\": {\n faslpr: \"fa-regular\"\n },\n whiteboard: {\n fawsb: \"fa-semibold\"\n },\n thumbprint: {\n fatl: \"fa-light\"\n },\n notdog: {\n fans: \"fa-solid\"\n },\n \"notdog-duo\": {\n fands: \"fa-solid\"\n },\n etch: {\n faes: \"fa-solid\"\n },\n jelly: {\n fajr: \"fa-regular\"\n },\n \"jelly-fill\": {\n fajfr: \"fa-regular\"\n },\n \"jelly-duo\": {\n fajdr: \"fa-regular\"\n },\n chisel: {\n facr: \"fa-regular\"\n },\n utility: {\n fausb: \"fa-semibold\"\n },\n \"utility-duo\": {\n faudsb: \"fa-semibold\"\n },\n \"utility-fill\": {\n faufsb: \"fa-semibold\"\n }\n },\n Y$1 = [\"fa-solid\", \"fa-regular\", \"fa-light\", \"fa-thin\", \"fa-duotone\", \"fa-brands\", \"fa-semibold\"],\n Zt$1 = [\"fa\", \"fas\", \"far\", \"fal\", \"fat\", \"fad\", \"fadr\", \"fadl\", \"fadt\", \"fab\", \"fass\", \"fasr\", \"fasl\", \"fast\", \"fasds\", \"fasdr\", \"fasdl\", \"fasdt\", \"faslr\", \"faslpr\", \"fawsb\", \"fatl\", \"fans\", \"fands\", \"faes\", \"fajr\", \"fajfr\", \"fajdr\", \"facr\", \"fausb\", \"faudsb\", \"faufsb\"].concat(f$1, Y$1),\n G$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\", \"semibold\"],\n O$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n V$1 = O$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n $$1 = [\"aw\", \"fw\", \"pull-left\", \"pull-right\"],\n to = [].concat(_toConsumableArray(Object.keys(z)), G$1, $$1, [\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"inverse\", \"layers\", \"layers-bottom-left\", \"layers-bottom-right\", \"layers-counter\", \"layers-text\", \"layers-top-left\", \"layers-top-right\", \"li\", \"pull-end\", \"pull-start\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", \"width-auto\", \"width-fixed\", l$1.GROUP, l$1.SWAP_OPACITY, l$1.PRIMARY, l$1.SECONDARY]).concat(O$1.map(function (t) {\n return \"\".concat(t, \"x\");\n })).concat(V$1.map(function (t) {\n return \"w-\".concat(t);\n }));\n var ro = {\n \"Font Awesome 5 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 5 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\"\n },\n \"Font Awesome 5 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 5 Duotone\": {\n 900: \"fad\"\n }\n };\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var UNITS_IN_GRID = 16;\n var DEFAULT_CSS_PREFIX = 'fa';\n var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\n var DATA_FA_I2SVG = 'data-fa-i2svg';\n var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\n var DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\n var DATA_PREFIX = 'data-prefix';\n var DATA_ICON = 'data-icon';\n var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\n var MUTATION_APPROACH_ASYNC = 'async';\n var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\n var PSEUDO_ELEMENTS = ['::before', '::after', ':before', ':after'];\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e$$1) {\n return false;\n }\n }();\n function familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[i];\n }\n });\n }\n var _PREFIX_TO_STYLE = _objectSpread2({}, q);\n\n // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n // {'fa-duotone': 'duotone'}\n _PREFIX_TO_STYLE[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n }), q[i]), qt['kit']), qt['kit-duotone']);\n var PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\n var _STYLE_TO_PREFIX = _objectSpread2({}, _t);\n\n // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n _STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n }), _STYLE_TO_PREFIX[i]), ul['kit']), ul['kit-duotone']);\n var STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\n var _PREFIX_TO_LONG_STYLE = _objectSpread2({}, Ht$1);\n _PREFIX_TO_LONG_STYLE[i] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[i]), fl['kit']);\n var PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\n var _LONG_STYLE_TO_PREFIX = _objectSpread2({}, $t$1);\n _LONG_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[i]), ol['kit']);\n var LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\n var ICON_SELECTION_SYNTAX_PATTERN = E;\n var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\n var FONT_FAMILY_PATTERN = _;\n var _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, gt);\n var FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\n var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\n var DUOTONE_CLASSES = H;\n var RESERVED_CLASSES = [].concat(_toConsumableArray(Ht), _toConsumableArray(to));\n\n var initial = WINDOW.FontAwesomeConfig || {};\n function getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n if (element) {\n return element.getAttribute(attr);\n }\n }\n function coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n }\n if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-search-pseudo-elements-warnings', 'searchPseudoElementsWarnings'], ['data-search-pseudo-elements-full-scan', 'searchPseudoElementsFullScan'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n var val = coerce(getAttrConfig(attr));\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n }\n var _default = {\n styleDefault: 'solid',\n familyDefault: i,\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n searchPseudoElements: false,\n searchPseudoElementsWarnings: true,\n searchPseudoElementsFullScan: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n };\n\n // familyPrefix is deprecated but we must still support it if present\n if (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n }\n var _config = _objectSpread2(_objectSpread2({}, _default), initial);\n if (!_config.autoReplaceSvg) _config.observeMutations = false;\n var config = {};\n Object.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n });\n\n // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n Object.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n });\n WINDOW.FontAwesomeConfig = config;\n var _onChangeCb = [];\n function onChange(cb) {\n _onChangeCb.push(cb);\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n }\n\n var d$2 = UNITS_IN_GRID;\n var meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n };\n function bunker(fn) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n fn.apply(void 0, args);\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n function insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n }\n var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n function nextUniqueId() {\n var size = 12;\n var id = '';\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n return id;\n }\n function toArray(obj) {\n var array = [];\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n return array;\n }\n function classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n }\n function htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n }\n function joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n }\n function joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n }\n function transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n }\n function transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n }\n function transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d$2 - width / 2, \"em, \").concat(transform.y / d$2 - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d$2, \"em), calc(-50% + \").concat(transform.y / d$2, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d$2, \"em, \").concat(transform.y / d$2, \"em) \");\n }\n val += \"scale(\".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n }\n\n var baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 7 Free\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 7 Free\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 7 Pro\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 7 Pro\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 7 Duotone\\\";\\n --fa-font-duotone-regular: normal 400 1em/1 \\\"Font Awesome 7 Duotone\\\";\\n --fa-font-duotone-light: normal 300 1em/1 \\\"Font Awesome 7 Duotone\\\";\\n --fa-font-duotone-thin: normal 100 1em/1 \\\"Font Awesome 7 Duotone\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 7 Brands\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 7 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 7 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 7 Sharp\\\";\\n --fa-font-sharp-thin: normal 100 1em/1 \\\"Font Awesome 7 Sharp\\\";\\n --fa-font-sharp-duotone-solid: normal 900 1em/1 \\\"Font Awesome 7 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-regular: normal 400 1em/1 \\\"Font Awesome 7 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-light: normal 300 1em/1 \\\"Font Awesome 7 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-thin: normal 100 1em/1 \\\"Font Awesome 7 Sharp Duotone\\\";\\n --fa-font-slab-regular: normal 400 1em/1 \\\"Font Awesome 7 Slab\\\";\\n --fa-font-slab-press-regular: normal 400 1em/1 \\\"Font Awesome 7 Slab Press\\\";\\n --fa-font-whiteboard-semibold: normal 600 1em/1 \\\"Font Awesome 7 Whiteboard\\\";\\n --fa-font-thumbprint-light: normal 300 1em/1 \\\"Font Awesome 7 Thumbprint\\\";\\n --fa-font-notdog-solid: normal 900 1em/1 \\\"Font Awesome 7 Notdog\\\";\\n --fa-font-notdog-duo-solid: normal 900 1em/1 \\\"Font Awesome 7 Notdog Duo\\\";\\n --fa-font-etch-solid: normal 900 1em/1 \\\"Font Awesome 7 Etch\\\";\\n --fa-font-jelly-regular: normal 400 1em/1 \\\"Font Awesome 7 Jelly\\\";\\n --fa-font-jelly-fill-regular: normal 400 1em/1 \\\"Font Awesome 7 Jelly Fill\\\";\\n --fa-font-jelly-duo-regular: normal 400 1em/1 \\\"Font Awesome 7 Jelly Duo\\\";\\n --fa-font-chisel-regular: normal 400 1em/1 \\\"Font Awesome 7 Chisel\\\";\\n --fa-font-utility-semibold: normal 600 1em/1 \\\"Font Awesome 7 Utility\\\";\\n --fa-font-utility-duo-semibold: normal 600 1em/1 \\\"Font Awesome 7 Utility Duo\\\";\\n --fa-font-utility-fill-semibold: normal 600 1em/1 \\\"Font Awesome 7 Utility Fill\\\";\\n}\\n\\n.svg-inline--fa {\\n box-sizing: content-box;\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n width: var(--fa-width, 1.25em);\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285714em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left,\\n.svg-inline--fa .fa-pull-start {\\n float: inline-start;\\n margin-inline-end: var(--fa-pull-margin, 0.3em);\\n}\\n.svg-inline--fa.fa-pull-right,\\n.svg-inline--fa .fa-pull-end {\\n float: inline-end;\\n margin-inline-start: var(--fa-pull-margin, 0.3em);\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\\n inset-block-start: 0.25em; /* syncing vertical alignment with Web Font rendering */\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: var(--fa-width, 1.25em);\\n}\\n.fa-layers .svg-inline--fa {\\n inset: 0;\\n margin: auto;\\n position: absolute;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-counter-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-xs {\\n font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-sm {\\n font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-lg {\\n font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-xl {\\n font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-2xl {\\n font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-width-auto {\\n --fa-width: auto;\\n}\\n\\n.fa-fw,\\n.fa-width-fixed {\\n --fa-width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-inline-start: var(--fa-li-margin, 2.5em);\\n padding-inline-start: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n/* Heads Up: Bordered Icons will not be supported in the future!\\n - This feature will be deprecated in the next major release of Font Awesome (v8)!\\n - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8.\\n*/\\n/* Notes:\\n* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size)\\n* --@{v.$css-prefix}-border-padding =\\n ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it's vertical alignment)\\n ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon)\\n*/\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.0625em);\\n box-sizing: var(--fa-border-box-sizing, content-box);\\n padding: var(--fa-border-padding, 0.1875em 0.25em);\\n}\\n\\n.fa-pull-left,\\n.fa-pull-start {\\n float: inline-start;\\n margin-inline-end: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right,\\n.fa-pull-end {\\n float: inline-end;\\n margin-inline-start: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n animation-name: fa-beat;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n animation-name: fa-bounce;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n animation-name: fa-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n animation-name: fa-beat-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n animation-name: fa-flip;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n animation-name: fa-shake;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n animation-name: fa-spin;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 2s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n animation-name: fa-spin;\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n .fa-bounce,\\n .fa-fade,\\n .fa-beat-fade,\\n .fa-flip,\\n .fa-pulse,\\n .fa-shake,\\n .fa-spin,\\n .fa-spin-pulse {\\n animation: none !important;\\n transition: none !important;\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n transform: scale(1);\\n }\\n 45% {\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n transform: rotate(-15deg);\\n }\\n 4% {\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n transform: rotate(18deg);\\n }\\n 16% {\\n transform: rotate(-22deg);\\n }\\n 20% {\\n transform: rotate(22deg);\\n }\\n 32% {\\n transform: rotate(-12deg);\\n }\\n 36% {\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n transform: rotate(var(--fa-rotate-angle, 0));\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.svg-inline--fa.fa-inverse {\\n fill: var(--fa-inverse, #fff);\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n line-height: 2em;\\n position: relative;\\n vertical-align: middle;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n --fa-width: 1.25em;\\n height: 1em;\\n width: var(--fa-width);\\n}\\n.svg-inline--fa.fa-stack-2x {\\n --fa-width: 2.5em;\\n height: 2em;\\n width: var(--fa-width);\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n inset: 0;\\n margin: auto;\\n position: absolute;\\n z-index: var(--fa-stack-z-index, auto);\\n}\";\n\n function css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n return s;\n }\n var _cssInserted = false;\n function ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n }\n var InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n };\n\n var w$2 = WINDOW || {};\n if (!w$2[NAMESPACE_IDENTIFIER]) w$2[NAMESPACE_IDENTIFIER] = {};\n if (!w$2[NAMESPACE_IDENTIFIER].styles) w$2[NAMESPACE_IDENTIFIER].styles = {};\n if (!w$2[NAMESPACE_IDENTIFIER].hooks) w$2[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w$2[NAMESPACE_IDENTIFIER].shims) w$2[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w$2[NAMESPACE_IDENTIFIER];\n\n var functions = [];\n var _listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', _listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n };\n var loaded = false;\n if (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', _listener);\n }\n function domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n }\n\n function toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n }\n\n function iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n }\n\n /**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n var bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n };\n\n /**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n return result;\n };\n\n /**\n * Return hexadecimal string for a unicode character\n * Returns `null` when more than one character (not bytes!) are passed\n * For example: 'K' → '7B'\n */\n function toHex(unicode) {\n if (_toConsumableArray(unicode).length !== 1) return null;\n return unicode.codePointAt(0).toString(16);\n }\n\n function normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n }\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var MONO = 0x1;\n var DUO = 0x2;\n\n // New v7 compatible matchers using the style attribute to determine layer membership\n var modernMatches = [[DUO, /*#__PURE__*/_wrapRegExp(/path opacity=\"([^\"]*)\".*d=\"([^\"]*)\".*path.*d=\"([^\"]*)\"/, {\n d2: 2,\n d1: 3\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path opacity=\"([^\"]*)\".*d=\"([^\"]*)\"/, {\n d2: 2\n })], [MONO, /*#__PURE__*/_wrapRegExp(/path fill=\"currentColor\".*d=\"([^\"]+)\"/, {\n d1: 1\n })]];\n\n // Old <= v6 matchers, these should rarely get used.\n //\n // Why are there so many? Over the lifecycle of version 5 and 6 we modified the\n // syntax for our source SVG files several times. These patterns match the\n // historical record and attempt to handle backwards-compatibility in rare edge\n // cases (loading version 6 SVG source files using the version 7 SVG parser)\n var legacyMatches = [[DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\".*path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr2: 1,\n d2: 2,\n attr1: 3,\n d1: 4\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\".*path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2,\n attr2: 3,\n d2: 4\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr2: 1,\n d2: 2\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\".*path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\"/, {\n d2: 1,\n attr2: 2,\n d1: 3,\n attr1: 4\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\".*path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\"/, {\n d1: 1,\n attr1: 2,\n d2: 3,\n attr2: 4\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\"/, {\n d1: 1,\n attr1: 2\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\"/, {\n d2: 1,\n attr2: 2\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*path d=\"([^\"]+)\"/, {\n d1: 1,\n d2: 2\n })], [MONO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\"/, {\n d1: 1\n })], [MONO, /*#__PURE__*/_wrapRegExp(/path style=\"([^\"]+)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2\n })]];\n\n var styles = namespace.styles,\n shims = namespace.shims;\n var FAMILY_NAMES = Object.keys(PREFIX_TO_LONG_STYLE);\n var PREFIXES_FOR_FAMILY = FAMILY_NAMES.reduce(function (acc, familyId) {\n acc[familyId] = Object.keys(PREFIX_TO_LONG_STYLE[familyId]);\n return acc;\n }, {});\n var _defaultUsablePrefix = null;\n var _byUnicode = {};\n var _byLigature = {};\n var _byOldName = {};\n var _byOldUnicode = {};\n var _byAlias = {};\n function isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n }\n function getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n }\n var build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o$$1, style, prefix) {\n o$$1[prefix] = reduce(style, reducer, {});\n return o$$1;\n }, {});\n };\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n if (icon[2]) {\n var aliases = icon[2].filter(function (a$$1) {\n return typeof a$$1 === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n if (icon[2]) {\n var aliases = icon[2].filter(function (a$$1) {\n return typeof a$$1 === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n });\n\n // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n };\n onChange(function (c$$1) {\n _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, {\n family: config.familyDefault\n });\n });\n build();\n function byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n }\n function byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n }\n function byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n }\n function byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n }\n function byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n }\n function getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n }\n var emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n };\n function getFamilyId(values) {\n var family = i;\n var famProps = FAMILY_NAMES.reduce(function (acc, familyId) {\n acc[familyId] = \"\".concat(config.cssPrefix, \"-\").concat(familyId);\n return acc;\n }, {});\n rt.forEach(function (familyId) {\n if (values.includes(famProps[familyId]) || values.some(function (v$$1) {\n return PREFIXES_FOR_FAMILY[familyId].includes(v$$1);\n })) {\n family = familyId;\n }\n });\n return family;\n }\n function getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? i : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n\n // handles the exception of passing in only a family of 'duotone' with no style\n if (family === t && !styleOrPrefix) {\n return 'fad';\n }\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n var result = prefix || defined || null;\n return result;\n }\n function moveNonFaClassesToRest(classNames) {\n var rest = [];\n var iconName = null;\n classNames.forEach(function (cls) {\n var result = getIconName(config.cssPrefix, cls);\n if (result) {\n iconName = result;\n } else if (cls) {\n rest.push(cls);\n }\n });\n return {\n iconName: iconName,\n rest: rest\n };\n }\n function sortedUniqueValues(arr) {\n return arr.sort().filter(function (value, index, arr) {\n return arr.indexOf(value) === index;\n });\n }\n var _faCombinedClasses = Zt$1.concat(Yt);\n function getCanonicalIcon(values) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var givenPrefix = null;\n var faStyleOrFamilyClasses = sortedUniqueValues(values.filter(function (cls) {\n return _faCombinedClasses.includes(cls);\n }));\n var nonStyleOrFamilyClasses = sortedUniqueValues(values.filter(function (cls) {\n return !_faCombinedClasses.includes(cls);\n }));\n var faStyles = faStyleOrFamilyClasses.filter(function (cls) {\n givenPrefix = cls;\n return !Q.includes(cls);\n });\n var _faStyles = _slicedToArray(faStyles, 1),\n _faStyles$ = _faStyles[0],\n styleFromValues = _faStyles$ === void 0 ? null : _faStyles$;\n var family = getFamilyId(faStyleOrFamilyClasses);\n var canonical = _objectSpread2(_objectSpread2({}, moveNonFaClassesToRest(nonStyleOrFamilyClasses)), {}, {\n prefix: getCanonicalPrefix(styleFromValues, {\n family: family\n })\n });\n return _objectSpread2(_objectSpread2(_objectSpread2({}, canonical), getDefaultCanonicalPrefix({\n values: values,\n family: family,\n styles: styles,\n config: config,\n canonical: canonical,\n givenPrefix: givenPrefix\n })), applyShimAndAlias(skipLookups, givenPrefix, canonical));\n }\n function applyShimAndAlias(skipLookups, givenPrefix, canonical) {\n var prefix = canonical.prefix,\n iconName = canonical.iconName;\n if (skipLookups || !prefix || !iconName) {\n return {\n prefix: prefix,\n iconName: iconName\n };\n }\n var shim = givenPrefix === 'fa' ? byOldName(iconName) : {};\n var aliasIconName = byAlias(prefix, iconName);\n iconName = shim.iconName || aliasIconName || iconName;\n prefix = shim.prefix || prefix;\n if (prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n prefix = 'fas';\n }\n return {\n prefix: prefix,\n iconName: iconName\n };\n }\n var newCanonicalFamilies = rt.filter(function (familyId) {\n return familyId !== i || familyId !== t;\n });\n var newCanonicalStyles = Object.keys(Ht$1).filter(function (key) {\n return key !== i;\n }).map(function (key) {\n return Object.keys(Ht$1[key]);\n }).flat();\n function getDefaultCanonicalPrefix(prefixOptions) {\n var values = prefixOptions.values,\n family = prefixOptions.family,\n canonical = prefixOptions.canonical,\n _prefixOptions$givenP = prefixOptions.givenPrefix,\n givenPrefix = _prefixOptions$givenP === void 0 ? '' : _prefixOptions$givenP,\n _prefixOptions$styles = prefixOptions.styles,\n styles = _prefixOptions$styles === void 0 ? {} : _prefixOptions$styles,\n _prefixOptions$config = prefixOptions.config,\n config$$1 = _prefixOptions$config === void 0 ? {} : _prefixOptions$config;\n var isDuotoneFamily = family === t;\n var valuesHasDuotone = values.includes('fa-duotone') || values.includes('fad');\n var defaultFamilyIsDuotone = config$$1.familyDefault === 'duotone';\n var canonicalPrefixIsDuotone = canonical.prefix === 'fad' || canonical.prefix === 'fa-duotone';\n if (!isDuotoneFamily && (valuesHasDuotone || defaultFamilyIsDuotone || canonicalPrefixIsDuotone)) {\n canonical.prefix = 'fad';\n }\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n if (!canonical.prefix && newCanonicalFamilies.includes(family)) {\n var validPrefix = Object.keys(styles).find(function (key) {\n return newCanonicalStyles.includes(key);\n });\n if (validPrefix || config$$1.autoFetchSvg) {\n var defaultPrefix = Ut.get(family).defaultShortPrefixId;\n canonical.prefix = defaultPrefix;\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n }\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n return canonical;\n }\n\n var Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n this.definitions = {};\n }\n return _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]);\n\n // To keep support for older Classic styles, also add longer prefixes\n var longPrefix = PREFIX_TO_LONG_STYLE[i][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n }();\n\n var _plugins = [];\n var _hooks = {};\n var providers = {};\n var defaultProviderKeys = Object.keys(providers);\n function registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n _hooks[hook].push(hooks[hook]);\n });\n }\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n return obj;\n }\n function chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args));\n });\n return accumulator;\n }\n function callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n }\n function callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n }\n\n function findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n }\n var library = new Library();\n var noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n };\n var dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject(new Error('Operation requires a DOM of some kind.'));\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n };\n var parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n };\n var api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n };\n var autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n };\n function bootstrap() {\n if (IS_BROWSER) {\n if (!WINDOW.FontAwesome) {\n WINDOW.FontAwesome = api;\n }\n domready(function () {\n autoReplace();\n callHooks('bootstrap');\n });\n }\n namespace.hooks = _objectSpread2(_objectSpread2({}, namespace.hooks), {}, {\n addPack: function addPack(prefix, icons) {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons);\n build();\n autoReplace();\n },\n addPacks: function addPacks(packs) {\n packs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n prefix = _ref2[0],\n icons = _ref2[1];\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons);\n });\n build();\n autoReplace();\n },\n addShims: function addShims(shims) {\n var _namespace$shims;\n (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));\n build();\n autoReplace();\n }\n });\n }\n\n function domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return undefined;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n }\n\n function asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n }\n\n function asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n }\n\n // If any of these attributes are present, don't assume the icon is decorative\n function isLabeled(attributes) {\n var labels = ['aria-label', 'aria-labelledby', 'title', 'role'];\n return labels.some(function (label) {\n return label in attributes;\n });\n }\n function makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n maskId = params.maskId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n if (!isLabeled(extra.attributes) && !extra.attributes['aria-hidden']) {\n content.attributes['aria-hidden'] = 'true';\n }\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2({}, extra.styles)\n });\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n args.children = children;\n args.attributes = attributes;\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n }\n function makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n var attributes = _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n class: extra.classes.join(' ')\n });\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n var styles = _objectSpread2({}, extra.styles);\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n var styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n return val;\n }\n function makeLayersCounterAbstract(params) {\n var content = params.content,\n extra = params.extra;\n var attributes = _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n class: extra.classes.join(' ')\n });\n var styleString = joinStyles(extra.styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n return val;\n }\n\n var styles$1 = namespace.styles;\n function asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n var element = null;\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n }\n var missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n };\n function maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n }\n function findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n return new Promise(function (resolve, reject) {\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n }\n\n var noop$1 = function noop() {};\n var p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n };\n var preamble = \"FA \\\"7.1.0\\\"\";\n var begin = function begin(name) {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n };\n var end = function end(name) {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p$2.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n };\n var perf = {\n begin: begin,\n end: end\n };\n\n var noop$2 = function noop() {};\n function isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n }\n function hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n }\n function hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n }\n function getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n }\n function createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n }\n function createElement(tag) {\n return DOCUMENT.createElement(tag);\n }\n function convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n }\n function nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n return comment;\n }\n var mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n\n // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n };\n function performOperationSync(op) {\n op();\n }\n function perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n }\n var disabled = false;\n function disableObservation() {\n disabled = true;\n }\n function enableObservation() {\n disabled = false;\n }\n var mo = null;\n function observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n if (!config.observeMutations) {\n return;\n }\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n treeCallback(mutationRecord.target);\n }\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback([mutationRecord.target], true);\n }\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n }\n function disconnect() {\n if (!mo) return;\n mo.disconnect();\n }\n\n function styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n return acc;\n }, {});\n }\n return val;\n }\n\n function classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n if (val.iconName && val.prefix) {\n return val;\n }\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n return val;\n }\n\n function attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n return acc;\n }, {});\n return extraAttributes;\n }\n\n function blankMeta() {\n return {\n iconName: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n }\n function parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n }\n\n var styles$2 = namespace.styles;\n function generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n }\n function getKnownPrefixes() {\n return [].concat(_toConsumableArray(Yt), _toConsumableArray(Zt$1));\n }\n function onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n var prefixes = config.autoFetchSvg ? getKnownPrefixes() : Q.concat(Object.keys(styles$2));\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p$$1) {\n return \".\".concat(p$$1, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n var candidates = [];\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e$$1) {\n // noop\n }\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e$$1) {\n if (!PRODUCTION) {\n if (e$$1.name === 'MissingIcon') {\n console.error(e$$1);\n }\n }\n }\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e$$1) {\n mark();\n reject(e$$1);\n });\n });\n }\n function onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n }\n function resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n }\n var render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n maskId: maskId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n };\n var ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var nextChild;\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n };\n\n var Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n };\n\n var LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n };\n\n var LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n extra: extra,\n watchable: true\n })]);\n };\n }\n };\n\n var CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\n var SECONDARY_UNICODE_RANGE = [1105920, 1112319];\n var _FONT_FAMILY_WEIGHT_TO_PREFIX = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n FontAwesome: {\n normal: 'fas',\n 400: 'fas'\n }\n }), Ct), ro), dl);\n var FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce(function (acc, key) {\n acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];\n return acc;\n }, {});\n var FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce(function (acc, fontFamily) {\n var weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];\n acc[fontFamily] = weights[900] || _toConsumableArray(Object.entries(weights))[0][1];\n return acc;\n }, {});\n\n // Return hex value of *first* character in `content`\n function hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n return toHex(_toConsumableArray(cleaned)[0] || '');\n }\n\n // Check if it's a secondary Duotone layer, by checking if:\n // - Unicode value in `content` is repeated\n // - Unicode value in `content` is above 0x10000\n // - The \"ss01\" font feature is enabled on the `content`\n function isSecondaryLayer(styles) {\n var hasStylisticSet = styles.getPropertyValue('font-feature-settings').includes('ss01');\n var content = styles.getPropertyValue('content');\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = cleaned.codePointAt(0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return isPrependTen || isDoubled || hasStylisticSet;\n }\n function getPrefix(fontFamily, fontWeight) {\n var fontFamilySanitized = fontFamily.replace(/^['\"]|['\"]$/g, '').toLowerCase();\n var fontWeightInteger = parseInt(fontWeight);\n var fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger;\n return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized];\n }\n function replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c$$1) {\n return c$$1.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family');\n var fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n if (alreadyProcessedPseudoElement && !fontFamilyMatch) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamilyMatch && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n var prefix = getPrefix(fontFamily, fontWeight);\n var hexValue = hexValueFromContent(_content);\n var isV4 = fontFamilyMatch[0].startsWith('FontAwesome');\n var isSecondary = isSecondaryLayer(styles);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n }\n\n // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n element.outerHTML = abstract.map(function (a$$1) {\n return toHtml(a$$1);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n }\n function replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n }\n function processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n }\n var hasPseudoElement = function hasPseudoElement(selector) {\n return !!selector && PSEUDO_ELEMENTS.some(function (pseudoSelector) {\n return selector.includes(pseudoSelector);\n });\n };\n\n // Return selectors from all available stylesheets that have\n // pseudo-elements defined.\n var parseCSSRuleForPseudos = function parseCSSRuleForPseudos(selectorText) {\n if (!selectorText) return [];\n var selectorSet = new Set();\n var selectors = selectorText.split(/,(?![^()]*\\))/).map(function (s$$1) {\n return s$$1.trim();\n });\n selectors = selectors.flatMap(function (selector) {\n return selector.includes('(') ? selector : selector.split(',').map(function (s$$1) {\n return s$$1.trim();\n });\n });\n var _iterator = _createForOfIteratorHelper(selectors),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var selector = _step.value;\n if (hasPseudoElement(selector)) {\n // Remove pseudo-elements from the selector\n var selectorWithoutPseudo = PSEUDO_ELEMENTS.reduce(function (acc, pseudoSelector) {\n return acc.replace(pseudoSelector, '');\n }, selector);\n if (selectorWithoutPseudo !== '' && selectorWithoutPseudo !== '*') {\n selectorSet.add(selectorWithoutPseudo);\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return selectorSet;\n };\n function searchPseudoElements(root) {\n var useAsNodeList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!IS_DOM) return;\n var nodeList;\n if (useAsNodeList) {\n nodeList = root;\n } else if (config.searchPseudoElementsFullScan) {\n nodeList = root.querySelectorAll('*');\n } else {\n // Get elements that have pseudo elements defined in the CSS\n var selectorSet = new Set();\n var _iterator2 = _createForOfIteratorHelper(document.styleSheets),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var stylesheet = _step2.value;\n try {\n var _iterator3 = _createForOfIteratorHelper(stylesheet.cssRules),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var rule = _step3.value;\n var parsedSelectors = parseCSSRuleForPseudos(rule.selectorText);\n var _iterator4 = _createForOfIteratorHelper(parsedSelectors),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var selector = _step4.value;\n selectorSet.add(selector);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n } catch (e$$1) {\n if (config.searchPseudoElementsWarnings) {\n console.warn(\"Font Awesome: cannot parse stylesheet: \".concat(stylesheet.href, \" (\").concat(e$$1.message, \")\\nIf it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin=\\\"anonymous\\\" to the , enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.\"));\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n if (!selectorSet.size) return;\n var cleanSelectors = Array.from(selectorSet).join(', ');\n try {\n nodeList = root.querySelectorAll(cleanSelectors);\n } catch (_unused) {} // eslint-disable-line no-empty\n }\n return new Promise(function (resolve, reject) {\n var operations = toArray(nodeList).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n }\n var PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n };\n\n var _unwatched = false;\n var MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n };\n\n var parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n rest = parseFloat(rest);\n if (isNaN(rest)) {\n return acc;\n }\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n case 'left':\n acc.x = acc.x - rest;\n break;\n case 'right':\n acc.x = acc.x + rest;\n break;\n case 'up':\n acc.y = acc.y - rest;\n break;\n case 'down':\n acc.y = acc.y + rest;\n break;\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n return acc;\n }, transform);\n };\n var PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n };\n\n var ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n };\n function fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n return abstract;\n }\n function deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n }\n var Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n 'fill': 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n 'mask': \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n };\n\n var MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n\n // Ring\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n return {\n tag: 'g',\n attributes: {\n class: 'missing'\n },\n children: gChildren\n };\n };\n }\n };\n\n var SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n };\n\n var plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\n registerPlugins(plugins, {\n mixoutsTo: api\n });\n bunker(bootstrap);\n\n}());\n", + "var g;((Z)=>{Z[Z.NONE=0]=\"NONE\";Z[Z.ERROR=1]=\"ERROR\";Z[Z.WARNING=2]=\"WARNING\";Z[Z.INFO=3]=\"INFO\";Z[Z.DEBUG=4]=\"DEBUG\";Z[Z.ALL=5]=\"ALL\"})(g||={});class y{static _level=0;static get currentLevel(){return this._level}static level(G){if(typeof G===\"number\")this._level=G;return this._level}static setLevel(G){this._level=G}static isEnabled(G){return this._level>=G}static log(...G){if(this._level>=4)console.log(...G)}static debug(...G){if(this._level>=4)console.debug(...G)}static info(...G){if(this._level>=3)console.info(...G)}static error(...G){if(this._level>=1)console.error(...G)}static warning(...G){if(this._level>=2)console.warn(...G)}static warn(...G){this.warning(...G)}static table(G,J){if(this._level>=4)console.table(G,J)}static group(...G){if(this._level>=4)console.group(...G)}static groupCollapsed(...G){if(this._level>=4)console.groupCollapsed(...G)}static groupEnd(){if(this._level>=4)console.groupEnd()}static time(G){if(this._level>=4)console.time(G)}static timeLog(G,...J){if(this._level>=4)console.timeLog(G,...J)}static timeEnd(G){if(this._level>=4)console.timeEnd(G)}static trace(...G){if(this._level>=4)console.trace(...G)}static assert(G,...J){if(this._level>=1)console.assert(G,...J)}static clear(){if(this._level>=4)console.clear()}static count(G){if(this._level>=4)console.count(G)}static countReset(G){if(this._level>=4)console.countReset(G)}static dir(G){if(this._level>=4)console.dir(G)}static dirxml(G){if(this._level>=4)console.dirxml(G)}static format(G,...J){let Q=G,W=0;return Q=Q.replace(/%[sdioOcj%]/g,(X)=>{if(X===\"%%\")return\"%\";if(W>=J.length)return X;let Y=J[W++];switch(X){case\"%s\":return String(Y);case\"%d\":case\"%i\":return String(parseInt(String(Y),10));case\"%o\":case\"%O\":return JSON.stringify(Y);case\"%c\":return\"\";case\"%j\":return JSON.stringify(Y);default:return X}}),Q}}var w=new WeakMap;class I{collection;length;constructor(G){if(!G)this.collection=[];else if(typeof G===\"string\")this.collection=Array.from(document.querySelectorAll(G));else if(G instanceof NodeList)this.collection=Array.from(G);else if(G instanceof I)this.collection=G.collection;else if(G instanceof Element)this.collection=[G];else if(Array.isArray(G))this.collection=G;else this.collection=[];this.length=this.collection.length}hide(){return this.style(\"display\",\"none\")}show(G=\"block\"){return this.style(\"display\",G)}addClass(G){return this.collection.forEach((J)=>J.classList.add(G)),this}removeClass(G){return this.collection.forEach((J)=>{if(!G)J.className=\"\";else J.classList.remove(G)}),this}toggleClass(G){let J=G.split(\" \");return this.collection.forEach((Q)=>{J.forEach((W)=>Q.classList.toggle(W))}),this}hasClass(G){if(this.length===0)return!1;return this.collection.every((J)=>J.classList.contains(G))}value(G){if(G!==void 0){let Q=String(G);for(let W of this.collection)if(W instanceof HTMLInputElement||W instanceof HTMLTextAreaElement||W instanceof HTMLSelectElement||W instanceof HTMLButtonElement||W instanceof HTMLOptionElement)W.value=Q;return this}if(this.length===0)return;let J=this.collection[0];if(J instanceof HTMLInputElement||J instanceof HTMLTextAreaElement||J instanceof HTMLSelectElement||J instanceof HTMLButtonElement||J instanceof HTMLOptionElement)return J.value;return}focus(){if(this.length>0)this.collection[0].focus();return this}blur(){if(this.length>0)this.collection[0].blur();return this}click(G){return this.on(\"click\",G)}keyup(G){return this.on(\"keyup\",G)}keydown(G){return this.on(\"keydown\",G)}submit(G){return this.on(\"submit\",G)}change(G){return this.on(\"change\",G)}scroll(G){return this.on(\"scroll\",G)}input(G){return this.on(\"input\",G)}on(G,J,Q){let W=G.split(\" \"),X=typeof J===\"string\",Y=X?Q:J,Z=X?J:null;if(!Y)return this;return this.collection.forEach(($)=>{W.forEach((B)=>{let _=X&&Z?(A)=>{let z=A.target;if(z instanceof Element){let H=z.closest(Z);if(H&&$.contains(H))Y.call(H,A)}}:Y;if(!w.has($))w.set($,new Map);let U=w.get($);if(!U.has(B))U.set(B,[]);U.get(B).push({selector:Z,originalCallback:Y,wrappedListener:_}),$.addEventListener(B,_,!1)})}),this}off(G,J,Q){return this.collection.forEach((W)=>{let X=w.get(W);if(!X)return;let Y=G?G.split(\" \"):Array.from(X.keys()),Z=typeof J===\"string\",$=Z?J:void 0,B=Z?Q:J;if(Y.forEach((_)=>{let U=X.get(_);if(!U)return;let A=U.filter((H)=>{if(B&&H.originalCallback!==B)return!1;if($!==void 0&&H.selector!==$)return!1;return!0});A.forEach((H)=>{W.removeEventListener(_,H.wrappedListener)});let z=U.filter((H)=>!A.includes(H));if(z.length>0)X.set(_,z);else X.delete(_)}),X.size===0)w.delete(W)}),this}trigger(G,J){let Q=G.split(\" \");return this.collection.forEach((W)=>{Q.forEach((X)=>{let Y=J!==void 0?new CustomEvent(X,{detail:J,bubbles:!0,cancelable:!0}):new Event(X,{bubbles:!0,cancelable:!0});W.dispatchEvent(Y)})}),this}filter(G){return new I(this.collection.filter((J)=>J.matches(G)))}exists(){return this.length>0}data(G,J){if(J!==void 0)return this.collection.forEach((Q)=>Q.dataset[G]=J),this;return this.length>0?this.collection[0].dataset[G]:void 0}removeData(G){return this.collection.forEach((J)=>delete J.dataset[G]),this}text(G){if(G!==void 0){let J=String(G);for(let Q of this.collection)Q.textContent=J;return this}if(this.length===0)return;return this.collection[0].textContent||\"\"}html(G){if(G!==void 0){let J=String(G);for(let Q of this.collection)Q.innerHTML=J;return this}if(this.length===0)return;return this.collection[0].innerHTML}append(G){return this.collection.forEach((J,Q)=>{if(typeof G===\"string\")J.insertAdjacentHTML(\"beforeend\",G);else{let W=Q===0?G:G.cloneNode(!0);J.appendChild(W)}}),this}prepend(G){return this.collection.forEach((J,Q)=>{if(typeof G===\"string\")J.insertAdjacentHTML(\"afterbegin\",G);else{let W=Q===0?G:G.cloneNode(!0);J.prepend(W)}}),this}each(G){return this.collection.forEach((J,Q)=>G(J,Q)),this}get(G){return this.collection[G]}first(){return new I(this.collection[0]??null)}last(){return new I(this.collection[this.collection.length-1]??null)}eq(G){let J=G<0?this.collection.length+G:G;return new I(this.collection[J]??null)}isVisible(){return this.collection.some((G)=>G.style.display!==\"none\"&&G.offsetWidth>0&&G.offsetHeight>0)}parent(){let G=new Set;return this.collection.forEach((J)=>{if(J.parentElement)G.add(J.parentElement)}),new I(Array.from(G))}parents(){let G=new Set;return this.collection.forEach((J)=>{let Q=J.parentElement;while(Q)G.add(Q),Q=Q.parentElement}),new I(Array.from(G))}find(G){let J=new Set;for(let Q of this.collection){let W=Q.querySelectorAll(G);for(let X of W)J.add(X)}return new I(Array.from(J))}offset(){if(this.length===0)return;let G=this.collection[0].getBoundingClientRect();return{top:G.top+window.scrollY,left:G.left+window.scrollX}}width(){if(this.length===0)return 0;return this.collection[0].getBoundingClientRect().width}height(){if(this.length===0)return 0;return this.collection[0].getBoundingClientRect().height}closest(G){let J=new Set;return this.collection.forEach((Q)=>{let W=Q.closest(G);if(W)J.add(W)}),new I(Array.from(J))}attribute(G,J){if(J!==void 0)return this.collection.forEach((Q)=>Q.setAttribute(G,String(J))),this;return this.length>0?this.collection[0].getAttribute(G):void 0}removeAttribute(G){return this.collection.forEach((J)=>J.removeAttribute(G)),this}hasAttribute(G){if(this.length===0)return!1;return this.collection.every((J)=>J.hasAttribute(G))}after(G){return this.collection.forEach((J)=>J.insertAdjacentHTML(\"afterend\",G)),this}before(G){return this.collection.forEach((J)=>J.insertAdjacentHTML(\"beforebegin\",G)),this}style(G,J){if(typeof G===\"string\"&&J===void 0)return this.length>0?this.collection[0].style.getPropertyValue(G):\"\";return this.collection.forEach((Q)=>{if(typeof G===\"string\"&&J!==void 0)Q.style.setProperty(G,J);else if(typeof G===\"object\")Object.entries(G).forEach(([W,X])=>{Q.style.setProperty(W,String(X))})}),this}animate(G,J){return this.collection.forEach((Q)=>Q.animate(G,J)),this}fadeIn(G=400,J){return this.collection.forEach((Q,W)=>{if(getComputedStyle(Q).display===\"none\")Q.style.display=\"block\";let X=Q.animate([{opacity:0},{opacity:1}],{duration:G,fill:\"forwards\"});if(J&&W===this.collection.length-1)X.onfinish=()=>J()}),this}fadeOut(G=400,J){return this.collection.forEach((Q,W)=>{let X=Q.animate([{opacity:1},{opacity:0}],{duration:G,fill:\"forwards\"});X.onfinish=()=>{if(Q.style.display=\"none\",J&&W===this.collection.length-1)J()}}),this}matches(G){if(this.length===0)return!1;return this.collection.every((J)=>J.matches(G))}remove(){return this.collection.forEach((G)=>G.remove()),this}empty(){return this.collection.forEach((G)=>{G.innerHTML=\"\"}),this}clone(G=!0){let J=this.collection.map((Q)=>Q.cloneNode(G));return new I(J)}replaceWith(G){for(let J=this.collection.length-1;J>=0;J--){let Q=this.collection[J];if(typeof G===\"string\")Q.outerHTML=G;else{let W=J===0?G:G.cloneNode(!0);Q.replaceWith(W)}}return this}reset(){return this.collection.forEach((G)=>{if(G instanceof HTMLFormElement)G.reset()}),this}property(G,J){if(J!==void 0)return this.collection.forEach((Q)=>{Q[G]=J}),this;if(this.length===0)return;return this.collection[0][G]}siblings(){let G=new Set;return this.collection.forEach((J)=>{if(J.parentElement)Array.from(J.parentElement.children).forEach((Q)=>{if(Q!==J&&Q instanceof HTMLElement)G.add(Q)})}),new I(Array.from(G))}next(){let G=new Set;return this.collection.forEach((J)=>{let Q=J.nextElementSibling;if(Q instanceof HTMLElement)G.add(Q)}),new I(Array.from(G))}prev(){let G=new Set;return this.collection.forEach((J)=>{let Q=J.previousElementSibling;if(Q instanceof HTMLElement)G.add(Q)}),new I(Array.from(G))}children(){let G=new Set;return this.collection.forEach((J)=>{Array.from(J.children).forEach((Q)=>{if(Q instanceof HTMLElement)G.add(Q)})}),new I(Array.from(G))}scrollIntoView(G){if(this.length>0)this.collection[0].scrollIntoView(G);return this}}function m(G){return new I(G)}function u(G){if(document.readyState===\"loading\")document.addEventListener(\"DOMContentLoaded\",G);else G()}function i(G,J){let Q=document.createElement(G);if(J)Object.entries(J).forEach(([W,X])=>{Q.setAttribute(W,X)});return new I(Q)}class M extends Error{status;statusText;response;constructor(G,J){super(J||`Request failed: ${G.status} ${G.statusText}`);this.name=\"RequestError\",this.status=G.status,this.statusText=G.statusText,this.response=G}}class h extends Error{constructor(G,J){super(`Request to \"${G}\" timed out after ${J}ms`);this.name=\"RequestTimeoutError\"}}class K{static serialize(G,J){if(G instanceof FormData){let W=new URLSearchParams;return G.forEach((X,Y)=>{if(typeof X===\"string\")W.append(Y,X)}),W.toString()}let Q=[];for(let[W,X]of Object.entries(G)){if(X===void 0||X===null)continue;let Y=J?`${J}[${W}]`:W;if(Array.isArray(X))X.forEach((Z,$)=>{if(typeof Z===\"object\"&&Z!==null)Q.push(K.serialize(Z,`${Y}[${$}]`));else Q.push(`${encodeURIComponent(Y)}[]=${encodeURIComponent(String(Z))}`)});else if(typeof X===\"object\")Q.push(K.serialize(X,Y));else Q.push(`${encodeURIComponent(Y)}=${encodeURIComponent(String(X))}`)}return Q.filter(Boolean).join(\"&\")}static parseUrl(G){try{return new URL(G)}catch{try{return new URL(G,window.location.origin)}catch(J){throw Error(`Invalid URL: \"${G}\"`)}}}static createTimeoutController(G,J){let Q=new AbortController;if(!G)return{controller:Q};let W=setTimeout(()=>{Q.abort(new h(J,G))},G);return{controller:Q,timeoutId:W}}static async send(G,J,Q={},W={}){let{timeout:X,...Y}=W,Z=K.parseUrl(J),$=void 0,B={...Y.headers};if([\"GET\",\"DELETE\",\"HEAD\"].includes(G.toUpperCase())){if(Q&&typeof Q===\"object\"&&!(Q instanceof FormData))Object.entries(Q).forEach(([A,z])=>{if(z!==void 0&&z!==null)if(typeof z===\"object\"){let H=K.serialize({[A]:z});new URLSearchParams(H).forEach((R,f)=>Z.searchParams.append(f,R))}else Z.searchParams.append(A,String(z))})}else{let A=B[\"Content-Type\"]||B[\"content-type\"];if(Q instanceof FormData)delete B[\"Content-Type\"],delete B[\"content-type\"],$=Q;else if(A===\"application/json\")$=JSON.stringify(Q);else{if(!A)B[\"Content-Type\"]=\"application/x-www-form-urlencoded\";let z=new URLSearchParams;Object.entries(Q).forEach(([H,L])=>z.append(H,String(L))),$=z}}let{controller:_,timeoutId:U}=K.createTimeoutController(X,J);try{return await fetch(Z.toString(),{...Y,method:G,headers:B,body:$,signal:_.signal})}finally{if(U)clearTimeout(U)}}static get(G,J={},Q={}){return K.send(\"GET\",G,J,Q)}static post(G,J,Q={}){return K.send(\"POST\",G,J,Q)}static put(G,J,Q={}){return K.send(\"PUT\",G,J,Q)}static patch(G,J,Q={}){return K.send(\"PATCH\",G,J,Q)}static delete(G,J={},Q={}){return K.send(\"DELETE\",G,J,Q)}static head(G,J={},Q={}){return K.send(\"HEAD\",G,J,Q)}static async json(G,J={},Q={}){let W=await K.get(G,J,Q);if(!W.ok)throw new M(W);return W.json()}static async postJson(G,J,Q={}){let W={...Q.headers,\"Content-Type\":\"application/json\"},X=await K.post(G,J,{...Q,headers:W});if(!X.ok)throw new M(X);return X.json()}static async blob(G,J={},Q={}){let W=await K.get(G,J,Q);if(!W.ok)throw new M(W);return W.blob()}static async text(G,J={},Q={}){let W=await K.get(G,J,Q);if(!W.ok)throw new M(W);return W.text()}static async arrayBuffer(G,J={},Q={}){let W=await K.get(G,J,Q);if(!W.ok)throw new M(W);return W.arrayBuffer()}static async exists(G,J={}){try{return(await K.head(G,{},J)).ok}catch{return!1}}}class j{static async readRemote(G,J=\"base64\",Q={}){let W=await K.blob(G,{},Q);return j.read(W,J)}static async read(G,J=\"text\"){switch(J){case\"text\":return G.text();case\"buffer\":return G.arrayBuffer();case\"base64\":return new Promise((Q,W)=>{let X=new FileReader;X.onload=()=>Q(X.result),X.onerror=()=>W(X.error),X.readAsDataURL(G)});case\"binary\":return new Promise((Q,W)=>{let X=new FileReader;X.onload=()=>{let Y=X.result,Z=\"\",$=new Uint8Array(Y),B=$.byteLength;for(let _=0;_W(X.error),X.readAsArrayBuffer(G)});default:throw Error(`FileSystem.read: Unknown type ${J}`)}}static create(G,J,Q=\"text/plain\"){return new File([J],G,{type:Q})}static download(G,J){let Q=URL.createObjectURL(G),W=document.createElement(\"a\");W.href=Q;let X;if(J!==void 0&&J!==\"\")X=J;else if(G instanceof File&&G.name!==\"\")X=G.name;else X=\"download\";W.download=X,document.body.appendChild(W),W.click(),document.body.removeChild(W),URL.revokeObjectURL(Q)}static extension(G,J=!1){let Q=G.split(\".\");if(Q.length===1||Q[0]===\"\"&&Q.length===2&&!J)return\"\";return Q.pop()?.toLowerCase()??\"\"}static isImage(G){let J=j.extension(G);return new Set([\"jpg\",\"jpeg\",\"png\",\"gif\",\"svg\",\"webp\",\"avif\",\"bmp\",\"ico\",\"tiff\",\"heic\"]).has(J)}static isVideo(G){let J=j.extension(G);return new Set([\"mp4\",\"webm\",\"ogg\",\"mov\",\"avi\",\"mkv\",\"m4v\"]).has(J)}static isAudio(G){let J=j.extension(G);return new Set([\"mp3\",\"wav\",\"ogg\",\"flac\",\"aac\",\"m4a\",\"wma\"]).has(J)}static humanSize(G,J=2){if(G===0)return\"0 Bytes\";let Q=1024,W=[\"Bytes\",\"KB\",\"MB\",\"GB\",\"TB\",\"PB\"],X=Math.floor(Math.log(G)/Math.log(Q));return parseFloat((G/Math.pow(Q,X)).toFixed(J))+\" \"+W[X]}}class T{static fill(G,J){let Q=document.querySelector(`form[data-form='${G}']`);if(!Q){console.warn(`Form [data-form='${G}'] not found.`);return}Object.entries(J).forEach(([W,X])=>{let Y=Q.querySelectorAll(`[name='${W}']`);if(Y.length===0)return;let $=Y[0].type,B=String(X);switch($){case\"radio\":Y.forEach((_)=>{let U=_;if(U.value===B)U.checked=!0});break;case\"checkbox\":if(Y.length===1)Y[0].checked=!!X;else if(Array.isArray(X)){let _=X.map(String);Y.forEach((U)=>{let A=U;A.checked=_.includes(A.value)})}break;case\"file\":break;default:Y[0].value=B;break}})}static values(G,J={}){let{parseNumbers:Q=!0,parseBooleans:W=!0}=J,X=document.querySelector(`form[data-form='${G}']`);if(!X)return console.warn(`Form [data-form='${G}'] not found.`),{};let Y=new FormData(X),Z={},$=Array.from(new Set(Y.keys()));for(let B of $){let _=Y.getAll(B),U=X.querySelector(`[name='${B}']`),A=U?.type;if(A===\"file\"){let z=_.filter((H)=>H instanceof File);if(U?.multiple||z.length>1)Z[B]=z;else Z[B]=z[0]||null;continue}if(A===\"checkbox\"){let z=X.querySelectorAll(`[name='${B}']`);if(z.length===1&&W){Z[B]=z[0].checked;continue}Z[B]=_.map((H)=>T.parseValue(String(H),Q));continue}if(A===\"number\"&&Q){if(_.length>1)Z[B]=_.map((z)=>parseFloat(String(z)));else Z[B]=parseFloat(String(_[0]));continue}if(_.length>1)Z[B]=_.map((z)=>T.parseValue(String(z),Q));else Z[B]=T.parseValue(String(_[0]),Q)}return Z}static parseValue(G,J){if(J&&G!==\"\"&&!isNaN(Number(G)))return Number(G);return G}static reset(G){let J=document.querySelector(`form[data-form='${G}']`);if(!J){console.warn(`Form [data-form='${G}'] not found.`);return}J.reset()}static isValid(G){let J=document.querySelector(`form[data-form='${G}']`);if(!J)return console.warn(`Form [data-form='${G}'] not found.`),!1;return J.checkValidity()}static reportValidity(G){let J=document.querySelector(`form[data-form='${G}']`);if(!J)return console.warn(`Form [data-form='${G}'] not found.`),!1;return J.reportValidity()}}class F{static get retina(){return window.devicePixelRatio>=2}static get portrait(){return window.matchMedia(\"(orientation: portrait)\").matches}static get landscape(){return window.matchMedia(\"(orientation: landscape)\").matches}static get orientation(){return F.portrait?\"portrait\":\"landscape\"}static get darkMode(){return window.matchMedia(\"(prefers-color-scheme: dark)\").matches}static get reducedMotion(){return window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches}static get touch(){return\"ontouchstart\"in window||navigator.maxTouchPoints>0}static get standalone(){let G=navigator;return window.matchMedia(\"(display-mode: standalone)\").matches||G.standalone===!0}static get electron(){let G=window;if(navigator.userAgent.toLowerCase().includes(\" electron/\"))return!0;if(G.process?.type===\"renderer\")return!0;if(G.process?.versions?.electron)return!0;return!1}static get electrobun(){return!!window.__electrobun}static get desktopApp(){return F.electron||F.electrobun}static get cordova(){return!!window.cordova}static get userAgent(){return navigator.userAgent.toLowerCase()}static desktop(G=\"Any\"){let J=navigator;if(J.userAgentData?.mobile===!0)return!1;if(F.isIpadOS())return!1;let Q=F.userAgent,W=J.userAgentData?.platform?.toLowerCase()||\"\",X={ChromeOS:W.includes(\"cros\")||Q.includes(\"cros\"),Windows:W.includes(\"windows\")||Q.includes(\"windows\"),macOS:W.includes(\"macos\")||Q.includes(\"macintosh\"),Linux:!Q.includes(\"android\")&&(W.includes(\"linux\")||Q.includes(\"linux\")),FreeBSD:W.includes(\"freebsd\")||Q.includes(\"freebsd\")};if(G===\"Any\")return Object.values(X).some((Y)=>Y);return X[G]||!1}static mobile(G=\"Any\"){if(navigator.userAgentData?.mobile===!0&&G===\"Any\")return!0;let Q=F.userAgent,W={Android:Q.includes(\"android\"),iOS:/iphone|ipod/.test(Q),iPadOS:F.isIpadOS(),WindowsMobile:/windows phone|iemobile|wpdesktop/.test(Q),BlackBerry:/blackberry|bb10/.test(Q)};if(G===\"Any\")return Object.values(W).some((X)=>X);return W[G]||!1}static isIpadOS(){let G=F.userAgent;if(G.includes(\"ipad\"))return!0;if(G.includes(\"macintosh\")&&navigator.maxTouchPoints>0)return!0;return!1}static get serviceWorkers(){return\"serviceWorker\"in navigator&&window.isSecureContext}static get coarsePointer(){return window.matchMedia(\"(pointer: coarse)\").matches}static get finePointer(){return window.matchMedia(\"(pointer: fine)\").matches}static get canHover(){return window.matchMedia(\"(hover: hover)\").matches}}class S{static async image(G){let J=new Image;return J.src=G,await J.decode(),J}static async images(G){return Promise.all(G.map((J)=>S.image(J)))}static async file(G,J=\"low\"){let W=await fetch(G,{priority:J});if(!W.ok)throw Error(`Preload failed for \"${G}\": ${W.status} ${W.statusText}`);return W}static async files(G,J=\"low\"){return Promise.all(G.map((Q)=>S.file(Q,J)))}static async isCached(G,J){if(!(\"caches\"in window))return!1;try{return!!await(await caches.open(G)).match(J)}catch{return!1}}static async addToCache(G,J){if(!(\"caches\"in window))throw Error(\"Cache API is not supported in this browser\");try{await(await caches.open(G)).add(J)}catch(Q){throw Error(`Failed to cache \"${J}\": ${Q instanceof Error?Q.message:String(Q)}`)}}static async addAllToCache(G,J){if(!(\"caches\"in window))throw Error(\"Cache API is not supported in this browser\");try{await(await caches.open(G)).addAll(J)}catch(Q){throw Error(`Failed to cache URLs: ${Q instanceof Error?Q.message:String(Q)}`)}}static async stylesheet(G){return new Promise((J,Q)=>{let W=document.createElement(\"link\");W.rel=\"preload\",W.as=\"style\",W.href=G,W.onload=()=>J(),W.onerror=()=>Q(Error(`Failed to preload stylesheet: ${G}`)),document.head.appendChild(W)})}static async script(G){return new Promise((J,Q)=>{let W=document.createElement(\"link\");W.rel=\"preload\",W.as=\"script\",W.href=G,W.onload=()=>J(),W.onerror=()=>Q(Error(`Failed to preload script: ${G}`)),document.head.appendChild(W)})}static async font(G,J=!0){return new Promise((Q,W)=>{let X=document.createElement(\"link\");if(X.rel=\"preload\",X.as=\"font\",X.href=G,J)X.crossOrigin=\"anonymous\";X.onload=()=>Q(),X.onerror=()=>W(Error(`Failed to preload font: ${G}`)),document.head.appendChild(X)})}static async audio(G,J){let Q=await fetch(G);if(!Q.ok)throw Error(`Preload failed for \"${G}\": ${Q.status} ${Q.statusText}`);let W=await Q.arrayBuffer(),X=J??new AudioContext,Y=!J;try{return await X.decodeAudioData(W)}finally{if(Y)await X.close()}}static async audios(G,J){let Q=J??new AudioContext,W=!J;try{return await Promise.all(G.map((X)=>S.audio(X,Q)))}finally{if(W)await Q.close()}}}function E(G){if(G===\"\")return 0;let J=G.split(\".\"),Q=0,W=[1000000000000,1e8,1e4];for(let X=0;XV(Q));let J={};for(let Q of Object.keys(G))J[Q]=V(G[Q]);return J}function b(G,J){let Q=G.endsWith(\"/\")?G.slice(0,-1):G,W=J.startsWith(\"/\")?J:`/${J}`;return`${Q}${W}`}class q extends Error{constructor(G){super(`Key \"${G}\" not found in storage`);this.name=\"KeyNotFoundError\"}}class P{name;version;store;id;numericVersion;upgrades;storage;_openPromise;constructor({name:G=\"\",version:J=\"\",store:Q=\"\"}){this.name=G,this.version=J,this.store=Q,this.upgrades={},this.numericVersion=E(J),this.id=this.computeId()}computeId(){if(this.name!==\"\"&&this.version!==\"\"&&this.store!==\"\")return`${this.name}::${this.store}::${this.version}_`;else if(this.name!==\"\"&&this.version!==\"\")return`${this.name}::${this.version}_`;else if(this.name!==\"\")return`${this.name}::_`;else return\"\"}configuration(G){if(G.name!==void 0)this.name=G.name;if(G.version!==void 0)this.version=G.version,this.numericVersion=E(G.version);if(G.store!==void 0)this.store=G.store;this.id=this.computeId()}async open(){if(this.storage instanceof Storage)return this;if(this._openPromise)return this._openPromise;this._openPromise=(async()=>{let G=[];if(this.version!==\"\"){let J=\"\";if(this.name!==\"\"&&this.version!==\"\"&&this.store!==\"\")J=`${this.name}::${this.store}::`;else if(this.name!==\"\"&&this.version!==\"\")J=`${this.name}::`;let Q=Object.keys(window.localStorage).filter((W)=>{return W.indexOf(J)===0}).map((W)=>{return W.replace(J,\"\").split(\"_\")[0]}).filter((W)=>{return W.indexOf(\"::\")===-1}).sort();if(Q.length>0){let W=Q[0],X=E(W);if(X{let[A]=_.split(\"::\").map(Number),[z]=U.split(\"::\").map(Number);return A-z}),Z=Y.findIndex((_)=>{let[U]=_.split(\"::\");return parseInt(U)===X});if(Z>-1)G=Y.slice(Z).filter((_)=>{let[U,A]=_.split(\"::\");return parseInt(U){return _.indexOf($)===0}).map((_)=>{return _.replace($,\"\")});for(let _ of B){let U=window.localStorage.getItem(`${$}${_}`);if(U!==null)window.localStorage.setItem(this.id+_,U);window.localStorage.removeItem(`${$}${_}`)}}}}this.storage=window.localStorage;for(let J of G)try{await this.upgrades[J].call(this,this)}catch(Q){console.error(Q)}return this})();try{return await this._openPromise}finally{this._openPromise=void 0}}async set(G,J){return await this.open(),this.storage.setItem(this.id+G,JSON.stringify(J)),{key:G,value:J}}async update(G,J){try{let Q=await this.get(G);if(typeof Q===\"object\"&&Q!==null){if(typeof J===\"object\"&&J!==null)J={...Q,...J}}return this.storage.setItem(this.id+G,JSON.stringify(J)),{key:G,value:J}}catch{return this.set(G,J)}}async get(G){await this.open();let J=this.storage.getItem(this.id+G);if(J===null)throw new q(G);try{return JSON.parse(J)}catch{return J}}async getAll(){let G=await this.keys(),J={};for(let Q of G)try{J[Q]=await this.get(Q)}catch{}return J}async contains(G){if((await this.keys()).includes(G))return;else throw new q(G)}async upgrade(G,J,Q){let W=`${E(G)}::${E(J)}`;return this.upgrades[W]=Q,Promise.resolve()}async rename(G){if(this.name===G)throw Error(\"Cannot rename: new name is identical to current name\");let J=await this.keys(),Q=this.id;this.name=G,this.id=this.computeId();for(let W of J){let X=this.storage.getItem(`${Q}${W}`);if(X!==null)this.storage.setItem(this.id+W,X),this.storage.removeItem(`${Q}${W}`)}}async key(G,J=!1){let Q=await this.keys(J);if(G<0||G>=Q.length)throw Error(`Index ${G} out of bounds. Space has ${Q.length} keys.`);return Q[G]}async keys(G=!1){return await this.open(),Object.keys(this.storage).filter((J)=>{return J.indexOf(this.id)===0}).map((J)=>{if(G===!0)return J;else return J.replace(this.id,\"\")})}async remove(G){let J=await this.get(G);return this.storage.removeItem(this.id+G),J}async clear(){let G=await this.keys();for(let J of G)this.storage.removeItem(this.id+J)}}class D extends P{constructor({name:G=\"\",version:J=\"\",store:Q=\"\"}){super({name:G,version:J,store:Q})}async open(){if(this.storage instanceof Storage)return this;return this.storage=window.sessionStorage,this}async upgrade(G,J,Q){return console.warn(\"SessionStorage.upgrade() is a no-op. Session data is temporary and does not support migrations.\"),Promise.resolve()}}class N extends Error{constructor(G){super(`Key \"${G}\" not found in IndexedDB`);this.name=\"KeyNotFoundError\"}}class O{name;version;store;props;index;keyPath;numericVersion;upgrades;storage;constructor({name:G=\"\",version:J=\"\",store:Q=\"\",props:W={},index:X={}}){this.name=G,this.version=J,this.store=Q,this.props=W||{},this.index=X,this.keyPath=W?.keyPath||\"id\",this.upgrades={},this.numericVersion=E(J)}configuration(G){if(G.name!==void 0)this.name=G.name;if(G.version!==void 0)this.version=G.version,this.numericVersion=E(G.version);if(G.store!==void 0)this.store=G.store}async open(){if(this.name===\"\")throw Error(\"IndexedDB requires a name. No name has been defined for this space.\");if(this.store===\"\")throw Error(\"IndexedDB requires a store name. No store has been defined for this space.\");if(this.numericVersion<1)throw Error(\"IndexedDB requires a version >= 1. No valid version has been defined for this space.\");if(this.storage instanceof IDBDatabase)return this;else if(this.storage instanceof Promise)return await this.storage;else{let G=(async()=>{let J,Q=[],W=await new Promise((X,Y)=>{let Z=window.indexedDB.open(this.name,this.numericVersion);Z.onerror=($)=>{Y(Error(`Failed to open IndexedDB \"${this.name}\": ${$.target.error?.message}`))},Z.onsuccess=($)=>{X($.target.result)},Z.onupgradeneeded=($)=>{J=$;let B=$.target.result;if($.oldVersion<1){let U=B.createObjectStore(this.store,this.props);for(let A of Object.keys(this.index)){let z=this.index[A];U.createIndex(z.name,z.field,z.props)}}else{let U=Object.keys(this.upgrades).sort((z,H)=>{let[L]=z.split(\"::\").map(Number),[R]=H.split(\"::\").map(Number);return L-R}),A=U.findIndex((z)=>{let[H]=z.split(\"::\");return parseInt(H)===$.oldVersion});if(A>-1)Q=U.slice(A).filter((z)=>{let[H,L]=z.split(\"::\");return parseInt(H){})}});this.storage=W;for(let X of Q)try{await this.upgrades[X].call(this,this,J)}catch(Y){console.error(Y)}return this})();return this.storage=G,await G}}async set(G=null,J){return await this.open(),new Promise((Q,W)=>{let X=this.storage.transaction(this.store,\"readwrite\").objectStore(this.store),Y;if(G!==null){let Z={};Z[this.keyPath]=G,Y=X.put({...Z,...J})}else Y=X.add(J);Y.addEventListener(\"success\",(Z)=>{Q({key:String(Z.target.result),value:J})}),Y.addEventListener(\"error\",(Z)=>{W(Error(`Failed to set key \"${G}\": ${Z.target.error?.message}`))})})}async update(G,J){try{let Q=await this.get(G);if(typeof Q>\"u\")return this.set(G,J);return new Promise((W,X)=>{let Z=this.storage.transaction(this.store,\"readwrite\").objectStore(this.store).put({...Q,...J});Z.addEventListener(\"success\",($)=>{W({key:String($.target.result),value:J})}),Z.addEventListener(\"error\",($)=>{X(Error(`Failed to update key \"${G}\": ${$.target.error?.message}`))})})}catch{return this.set(G,J)}}async get(G){return await this.open(),new Promise((J,Q)=>{let X=this.storage.transaction(this.store,\"readonly\").objectStore(this.store).get(G);X.addEventListener(\"success\",(Y)=>{let Z=Y.target.result;if(typeof Z<\"u\"&&Z!==null)J(Z);else Q(new N(G))}),X.addEventListener(\"error\",(Y)=>{Q(Error(`Failed to get key \"${G}\": ${Y.target.error?.message}`))})})}async getAll(){return await this.open(),new Promise((G,J)=>{let W=this.storage.transaction(this.store,\"readonly\").objectStore(this.store).getAll();W.addEventListener(\"success\",(X)=>{let Y={};X.target.result.forEach(($)=>{let B=$[this.keyPath],_={...$};delete _[this.keyPath],Y[B]=_}),G(Y)}),W.addEventListener(\"error\",(X)=>{J(Error(`Failed to get all items: ${X.target.error?.message}`))})})}async contains(G){await this.get(G)}async upgrade(G,J,Q){let W=`${E(G)}::${E(J)}`;return this.upgrades[W]=Q,Promise.resolve()}rename(){return Promise.reject(Error(\"IndexedDB does not support renaming databases. Create a new database and migrate data manually.\"))}key(){return Promise.reject(Error(\"IndexedDB does not support getting keys by index. Use keys() to get all keys.\"))}async keys(){return await this.open(),new Promise((G,J)=>{let W=this.storage.transaction(this.store,\"readonly\").objectStore(this.store).getAllKeys();W.addEventListener(\"success\",(X)=>{G(X.target.result.map(String))},!1),W.addEventListener(\"error\",(X)=>{J(Error(`Failed to get keys: ${X.target.error?.message}`))},!1)})}async remove(G){let J=await this.get(G);return new Promise((Q,W)=>{let Y=this.storage.transaction(this.store,\"readwrite\").objectStore(this.store).delete(G);Y.addEventListener(\"success\",()=>{Q(J)},!1),Y.addEventListener(\"error\",(Z)=>{W(Error(`Failed to delete key \"${G}\": ${Z.target.error?.message}`))},!1)})}async clear(){return await this.open(),new Promise((G,J)=>{let W=this.storage.transaction(this.store,\"readwrite\").objectStore(this.store).clear();W.addEventListener(\"success\",()=>{G()},!1),W.addEventListener(\"error\",(X)=>{J(Error(`Failed to clear store: ${X.target.error?.message}`))},!1)})}}class x extends Error{constructor(G){super(`Key \"${G}\" not found in remote storage`);this.name=\"KeyNotFoundError\"}}class C{name;version;store;baseEndpoint;endpoint;props;storage;constructor({name:G=\"\",version:J=\"\",store:Q=\"\",endpoint:W=\"\",props:X={}}){this.name=G,this.version=J,this.store=Q,this.baseEndpoint=W,this.endpoint=this.computeEndpoint(),this.props=X}computeEndpoint(){if(this.store)return b(this.baseEndpoint,`${this.store}/`);return this.baseEndpoint.endsWith(\"/\")?this.baseEndpoint:`${this.baseEndpoint}/`}configuration(G){if(G.name!==void 0)this.name=G.name;if(G.version!==void 0)this.version=G.version;if(G.store!==void 0)this.store=G.store;if(G.endpoint!==void 0)this.baseEndpoint=G.endpoint;this.endpoint=this.computeEndpoint()}async open(){if(typeof this.storage>\"u\")this.storage=K;return this}async set(G,J){await this.open();let W=await(await this.storage.post(this.endpoint+G,J,this.props)).json();return{key:G,value:W}}async update(G,J){await this.open();try{let W={...await this.get(G),...J},Y=await(await this.storage.put(this.endpoint+G,W,this.props)).json();return{key:G,value:Y}}catch{return this.set(G,J)}}async get(G){return await this.open(),this.storage.json(this.endpoint+G,{},this.props)}async getAll(){return await this.open(),this.storage.json(this.endpoint,{},this.props)}async contains(G){if((await this.keys()).includes(G))return;else throw new x(G)}upgrade(){return Promise.reject(Error(\"RemoteStorage cannot be upgraded from the client. Upgrades must be performed server-side.\"))}rename(){return Promise.reject(Error(\"RemoteStorage cannot be renamed from the client. Renaming must be performed server-side.\"))}key(){return Promise.reject(Error(\"RemoteStorage does not support getting keys by index. Use keys() to get all keys.\"))}async keys(){return await this.open(),this.storage.json(this.endpoint,{keys:!0},this.props)}async remove(G){return await this.open(),(await this.storage.delete(this.endpoint+G,{},this.props)).json()}async clear(){await this.open(),await this.storage.delete(this.endpoint,{},this.props)}}var k={LocalStorage:P,SessionStorage:D,IndexedDB:O,RemoteStorage:C};class p{_configuration;adapter;callbacks;transformations;constructor(G=k.LocalStorage,J={}){this._configuration={name:\"\",version:\"\",store:\"\",...J},this.adapter=new G(this._configuration),this.callbacks={create:[],update:[],delete:[]},this.transformations={}}configuration(G=null){if(G!==null){if(this._configuration={...this._configuration,...G},this.adapter.configuration)this.adapter.configuration(G);return}else return this._configuration}async open(){return await this.adapter.open(),this}applySetTransformations(G,J){let Q=V(J);for(let W of Object.values(this.transformations))if(typeof W.set===\"function\")Q=W.set(G,Q);return Q}applyGetTransformations(G,J){let Q=J;for(let W of Object.values(this.transformations))if(typeof W.get===\"function\")Q=W.get(G,Q);return Q}async set(G,J){let Q=this.applySetTransformations(G,J),W=await this.adapter.set(G,Q);for(let X of this.callbacks.create)X.call(null,W.key,W.value);return W}async update(G,J){let Q=this.applySetTransformations(G,J),W=await this.adapter.update(G,Q);for(let X of this.callbacks.update)X.call(null,W.key,W.value);return W}async get(G){let J=await this.adapter.get(G);return this.applyGetTransformations(G,J)}async getAll(){let G=await this.adapter.getAll(),J={};for(let Q of Object.keys(G))J[Q]=this.applyGetTransformations(Q,G[Q]);return J}async each(G){let J=await this.getAll(),Q=[];for(let[W,X]of Object.entries(J))Q.push(G.call(this,W,X));return Promise.all(Q)}contains(G){return this.adapter.contains(G)}async upgrade(G,J,Q){return await this.adapter.upgrade(G,J,Q),this}rename(G){return this.adapter.rename(G)}onCreate(G){this.callbacks.create.push(G)}onUpdate(G){this.callbacks.update.push(G)}onDelete(G){this.callbacks.delete.push(G)}addTransformation({id:G,get:J,set:Q}){this.transformations[G]={id:G,get:J,set:Q}}removeTransformation(G){delete this.transformations[G]}key(G,J=!1){return this.adapter.key(G,J)}keys(G=!1){return this.adapter.keys(G)}async remove(G){let J=await this.adapter.remove(G);for(let Q of this.callbacks.delete)Q.call(null,G,J)}clear(){return this.adapter.clear()}}class d{static capitalize(G,J={}){let{preserveCase:Q=!1}=J;return G.replace(/\\w\\S*/g,(W)=>{let X=W.charAt(0).toUpperCase(),Y=Q?W.substring(1):W.substring(1).toLowerCase();return X+Y})}static selection(){return window.getSelection()?.toString()||\"\"}static suffix(G,J){let Q=J.indexOf(G);if(Q===-1)return\"\";return J.slice(Q+G.length)}static prefix(G,J){let Q=J.indexOf(G);if(Q===-1)return\"\";return J.slice(0,Q)}static friendly(G){return G.toString().normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g,\"\").toLowerCase().trim().replace(/\\s+/g,\"-\").replace(/[^\\w-]+/g,\"\").replace(/--+/g,\"-\")}static truncate(G,J,Q=\"...\"){if(G.length<=J)return G;if(J<=Q.length)return Q.slice(0,J);return G.slice(0,J-Q.length).trimEnd()+Q}static isBlank(G){return G===null||G===void 0||G.trim()===\"\"}}class v{static async callAsync(G,J,...Q){try{return await G.apply(J,Q)}catch(W){return Promise.reject(W)}}static uuid(){if(typeof crypto<\"u\"&&\"randomUUID\"in crypto)return crypto.randomUUID();if(typeof crypto<\"u\"&&\"getRandomValues\"in crypto)return\"10000000-1000-4000-8000-100000000000\".replace(/[018]/g,(J)=>{let Q=parseInt(J,10),W=crypto.getRandomValues(new Uint8Array(1))[0],X=15>>Math.floor(Q/4);return(Q^W&X).toString(16)});let G=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);return`${G()}${G()}-${G()}-${G()}-${G()}-${G()}${G()}${G()}`}static debounce(G,J){let Q=null;return(...W)=>{if(Q!==null)clearTimeout(Q);Q=setTimeout(()=>{G(...W),Q=null},J)}}static throttle(G,J){let Q=!1;return(...W)=>{if(!Q)G(...W),Q=!0,setTimeout(()=>{Q=!1},J)}}}export{v as Util,d as Text,k as SpaceAdapter,p as Space,D as SessionStorage,h as RequestTimeoutError,M as RequestError,K as Request,x as RemoteStorageKeyNotFoundError,C as RemoteStorage,S as Preload,F as Platform,q as LocalStorageKeyNotFoundError,P as LocalStorage,N as IndexedDBKeyNotFoundError,O as IndexedDB,T as Form,j as FileSystem,g as DebugLevel,y as Debug,I as DOM,u as $_ready,i as $_create,m as $_};\n\n//# debugId=5D27DABE5782E96064756E2164756E21\n//# sourceMappingURL=artemis.js.map\n", + "export const generatedAttribute = \"generated\", mouseDownEvent = \"pointerdown\", mouseUpEvent = \"pointerup\", mouseLeaveEvent = \"pointerleave\", mouseOutEvent = \"pointerout\", mouseMoveEvent = \"pointermove\", touchStartEvent = \"touchstart\", touchEndEvent = \"touchend\", touchMoveEvent = \"touchmove\", touchCancelEvent = \"touchcancel\", resizeEvent = \"resize\", visibilityChangeEvent = \"visibilitychange\", errorPrefix = \"tsParticles - Error\", percentDenominator = 100, half = 0.5, millisecondsToSeconds = 1000, originPoint = {\n x: 0,\n y: 0,\n z: 0,\n}, defaultTransform = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n}, randomColorValue = \"random\", midColorValue = \"mid\", double = 2, doublePI = Math.PI * double, defaultFps = 60, defaultAlpha = 1, generatedTrue = \"true\", generatedFalse = \"false\", canvasTag = \"canvas\", defaultRetryCount = 0, squareExp = 2, qTreeCapacity = 4, defaultRemoveQuantity = 1, defaultRatio = 1, defaultReduceFactor = 1, subdivideCount = 4, inverseFactorNumerator = 1.0, rgbMax = 255, hMax = 360, sMax = 100, lMax = 100, hMin = 0, sMin = 0, hPhase = 60, empty = 0, quarter = 0.25, threeQuarter = half + quarter, minVelocity = 0, defaultTransformValue = 1, minimumSize = 0, minimumLength = 0, zIndexFactorOffset = 1, defaultOpacity = 1, clickRadius = 1, touchEndLengthOffset = 1, minCoordinate = 0, removeDeleteCount = 1, removeMinIndex = 0, defaultFpsLimit = 120, minFpsLimit = 0, canvasFirstIndex = 0, loadRandomFactor = 10000, loadMinIndex = 0, one = 1, none = 0, decayOffset = 1, tryCountIncrement = 1, minRetries = 0, rollFactor = 1, minZ = 0, defaultRadius = 0, posOffset = -quarter, sizeFactor = 1.5, minLimit = 0, countOffset = 1, minCount = 0, minIndex = 0, manualCount = 0, lengthOffset = 1, defaultDensityFactor = 1, deleteCount = 1, touchDelay = 500, manualDefaultPosition = 50, defaultAngle = 0, identity = 1, minStrokeWidth = 0, lFactor = 1, lMin = 0, rgbFactor = 255, triple = 3, sextuple = 6, sNormalizedOffset = 1, phaseNumerator = 1, defaultRgbMin = 0, defaultVelocity = 0, defaultLoops = 0, defaultTime = 0;\n", + "export var MoveDirection;\n(function (MoveDirection) {\n MoveDirection[\"bottom\"] = \"bottom\";\n MoveDirection[\"bottomLeft\"] = \"bottom-left\";\n MoveDirection[\"bottomRight\"] = \"bottom-right\";\n MoveDirection[\"left\"] = \"left\";\n MoveDirection[\"none\"] = \"none\";\n MoveDirection[\"right\"] = \"right\";\n MoveDirection[\"top\"] = \"top\";\n MoveDirection[\"topLeft\"] = \"top-left\";\n MoveDirection[\"topRight\"] = \"top-right\";\n MoveDirection[\"outside\"] = \"outside\";\n MoveDirection[\"inside\"] = \"inside\";\n})(MoveDirection || (MoveDirection = {}));\n", + "export function isBoolean(arg) {\n return typeof arg === \"boolean\";\n}\nexport function isString(arg) {\n return typeof arg === \"string\";\n}\nexport function isNumber(arg) {\n return typeof arg === \"number\";\n}\nexport function isFunction(arg) {\n return typeof arg === \"function\";\n}\nexport function isObject(arg) {\n return typeof arg === \"object\" && arg !== null;\n}\nexport function isArray(arg) {\n return Array.isArray(arg);\n}\nexport function isNull(arg) {\n return arg === null || arg === undefined;\n}\n", + "import { errorPrefix, inverseFactorNumerator, none, originPoint, squareExp } from \"./Constants.js\";\nimport { isNumber } from \"../../Utils/TypeUtils.js\";\nexport class Vector3d {\n constructor(xOrCoords, y, z) {\n this._updateFromAngle = (angle, length) => {\n this.x = Math.cos(angle) * length;\n this.y = Math.sin(angle) * length;\n };\n if (!isNumber(xOrCoords) && xOrCoords) {\n this.x = xOrCoords.x;\n this.y = xOrCoords.y;\n const coords3d = xOrCoords;\n this.z = coords3d.z ? coords3d.z : originPoint.z;\n }\n else if (xOrCoords !== undefined && y !== undefined) {\n this.x = xOrCoords;\n this.y = y;\n this.z = z ?? originPoint.z;\n }\n else {\n throw new Error(`${errorPrefix} Vector3d not initialized correctly`);\n }\n }\n static get origin() {\n return Vector3d.create(originPoint.x, originPoint.y, originPoint.z);\n }\n get angle() {\n return Math.atan2(this.y, this.x);\n }\n set angle(angle) {\n this._updateFromAngle(angle, this.length);\n }\n get length() {\n return Math.sqrt(this.getLengthSq());\n }\n set length(length) {\n this._updateFromAngle(this.angle, length);\n }\n static clone(source) {\n return Vector3d.create(source.x, source.y, source.z);\n }\n static create(x, y, z) {\n return new Vector3d(x, y, z);\n }\n add(v) {\n return Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z);\n }\n addTo(v) {\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n }\n copy() {\n return Vector3d.clone(this);\n }\n distanceTo(v) {\n return this.sub(v).length;\n }\n distanceToSq(v) {\n return this.sub(v).getLengthSq();\n }\n div(n) {\n return Vector3d.create(this.x / n, this.y / n, this.z / n);\n }\n divTo(n) {\n this.x /= n;\n this.y /= n;\n this.z /= n;\n }\n getLengthSq() {\n return this.x ** squareExp + this.y ** squareExp;\n }\n mult(n) {\n return Vector3d.create(this.x * n, this.y * n, this.z * n);\n }\n multTo(n) {\n this.x *= n;\n this.y *= n;\n this.z *= n;\n }\n normalize() {\n const length = this.length;\n if (length != none) {\n this.multTo(inverseFactorNumerator / length);\n }\n }\n rotate(angle) {\n return Vector3d.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle), originPoint.z);\n }\n setTo(c) {\n this.x = c.x;\n this.y = c.y;\n const v3d = c;\n this.z = v3d.z ? v3d.z : originPoint.z;\n }\n sub(v) {\n return Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z);\n }\n subFrom(v) {\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n }\n}\nexport class Vector extends Vector3d {\n constructor(xOrCoords, y) {\n super(xOrCoords, y, originPoint.z);\n }\n static get origin() {\n return Vector.create(originPoint.x, originPoint.y);\n }\n static clone(source) {\n return Vector.create(source.x, source.y);\n }\n static create(x, y) {\n return new Vector(x, y);\n }\n}\n", + "import { MoveDirection } from \"../Enums/Directions/MoveDirection.js\";\nimport { double, doublePI, empty, half, percentDenominator, quarter, threeQuarter } from \"../Core/Utils/Constants.js\";\nimport { Vector } from \"../Core/Utils/Vectors.js\";\nimport { isNumber } from \"./TypeUtils.js\";\nlet _random = Math.random;\nconst _animationLoop = {\n nextFrame: (cb) => requestAnimationFrame(cb),\n cancel: (idx) => cancelAnimationFrame(idx),\n};\nexport function setRandom(rnd = Math.random) {\n _random = rnd;\n}\nexport function getRandom() {\n const min = 0, max = 1;\n return clamp(_random(), min, max - Number.EPSILON);\n}\nexport function setAnimationFunctions(nextFrame, cancel) {\n _animationLoop.nextFrame = (callback) => nextFrame(callback);\n _animationLoop.cancel = (handle) => cancel(handle);\n}\nexport function animate(fn) {\n return _animationLoop.nextFrame(fn);\n}\nexport function cancelAnimation(handle) {\n _animationLoop.cancel(handle);\n}\nexport function clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nexport function mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nexport function randomInRange(r) {\n const max = getRangeMax(r), minOffset = 0;\n let min = getRangeMin(r);\n if (max === min) {\n min = minOffset;\n }\n return getRandom() * (max - min) + min;\n}\nexport function getRangeValue(value) {\n return isNumber(value) ? value : randomInRange(value);\n}\nexport function getRangeMin(value) {\n return isNumber(value) ? value : value.min;\n}\nexport function getRangeMax(value) {\n return isNumber(value) ? value : value.max;\n}\nexport function setRangeValue(source, value) {\n if (source === value || (value === undefined && isNumber(source))) {\n return source;\n }\n const min = getRangeMin(source), max = getRangeMax(source);\n return value !== undefined\n ? {\n min: Math.min(min, value),\n max: Math.max(max, value),\n }\n : setRangeValue(min, max);\n}\nexport function getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x, dy = pointA.y - pointB.y, squareExp = 2;\n return { dx: dx, dy: dy, distance: Math.sqrt(dx ** squareExp + dy ** squareExp) };\n}\nexport function getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nexport function degToRad(degrees) {\n const PIDeg = 180;\n return (degrees * Math.PI) / PIDeg;\n}\nexport function getParticleDirectionAngle(direction, position, center) {\n if (isNumber(direction)) {\n return degToRad(direction);\n }\n switch (direction) {\n case MoveDirection.top:\n return -Math.PI * half;\n case MoveDirection.topRight:\n return -Math.PI * quarter;\n case MoveDirection.right:\n return empty;\n case MoveDirection.bottomRight:\n return Math.PI * quarter;\n case MoveDirection.bottom:\n return Math.PI * half;\n case MoveDirection.bottomLeft:\n return Math.PI * threeQuarter;\n case MoveDirection.left:\n return Math.PI;\n case MoveDirection.topLeft:\n return -Math.PI * threeQuarter;\n case MoveDirection.inside:\n return Math.atan2(center.y - position.y, center.x - position.x);\n case MoveDirection.outside:\n return Math.atan2(position.y - center.y, position.x - center.x);\n default:\n return getRandom() * doublePI;\n }\n}\nexport function getParticleBaseVelocity(direction) {\n const baseVelocity = Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nexport function collisionVelocity(v1, v2, m1, m2) {\n return Vector.create((v1.x * (m1 - m2)) / (m1 + m2) + (v2.x * double * m2) / (m1 + m2), v1.y);\n}\nexport function calcPositionFromSize(data) {\n return data.position?.x !== undefined && data.position.y !== undefined\n ? {\n x: (data.position.x * data.size.width) / percentDenominator,\n y: (data.position.y * data.size.height) / percentDenominator,\n }\n : undefined;\n}\nexport function calcPositionOrRandomFromSize(data) {\n return {\n x: ((data.position?.x ?? getRandom() * percentDenominator) * data.size.width) / percentDenominator,\n y: ((data.position?.y ?? getRandom() * percentDenominator) * data.size.height) / percentDenominator,\n };\n}\nexport function calcPositionOrRandomFromSizeRanged(data) {\n const position = {\n x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,\n y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined,\n };\n return calcPositionOrRandomFromSize({ size: data.size, position });\n}\nexport function calcExactPositionOrRandomFromSize(data) {\n return {\n x: data.position?.x ?? getRandom() * data.size.width,\n y: data.position?.y ?? getRandom() * data.size.height,\n };\n}\nexport function calcExactPositionOrRandomFromSizeRanged(data) {\n const position = {\n x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,\n y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined,\n };\n return calcExactPositionOrRandomFromSize({ size: data.size, position });\n}\nexport function parseAlpha(input) {\n const defaultAlpha = 1;\n if (!input) {\n return defaultAlpha;\n }\n return input.endsWith(\"%\") ? parseFloat(input) / percentDenominator : parseFloat(input);\n}\n", + "export var AnimationMode;\n(function (AnimationMode) {\n AnimationMode[\"auto\"] = \"auto\";\n AnimationMode[\"increase\"] = \"increase\";\n AnimationMode[\"decrease\"] = \"decrease\";\n AnimationMode[\"random\"] = \"random\";\n})(AnimationMode || (AnimationMode = {}));\n", + "export var AnimationStatus;\n(function (AnimationStatus) {\n AnimationStatus[\"increasing\"] = \"increasing\";\n AnimationStatus[\"decreasing\"] = \"decreasing\";\n})(AnimationStatus || (AnimationStatus = {}));\n", + "export var DestroyType;\n(function (DestroyType) {\n DestroyType[\"none\"] = \"none\";\n DestroyType[\"max\"] = \"max\";\n DestroyType[\"min\"] = \"min\";\n})(DestroyType || (DestroyType = {}));\n", + "export var OutModeDirection;\n(function (OutModeDirection) {\n OutModeDirection[\"bottom\"] = \"bottom\";\n OutModeDirection[\"left\"] = \"left\";\n OutModeDirection[\"right\"] = \"right\";\n OutModeDirection[\"top\"] = \"top\";\n})(OutModeDirection || (OutModeDirection = {}));\n", + "export var PixelMode;\n(function (PixelMode) {\n PixelMode[\"precise\"] = \"precise\";\n PixelMode[\"percent\"] = \"percent\";\n})(PixelMode || (PixelMode = {}));\n", + "export var StartValueType;\n(function (StartValueType) {\n StartValueType[\"max\"] = \"max\";\n StartValueType[\"min\"] = \"min\";\n StartValueType[\"random\"] = \"random\";\n})(StartValueType || (StartValueType = {}));\n", + "import { clamp, collisionVelocity, getDistances, getRandom, getRangeMax, getRangeMin, getRangeValue, randomInRange, } from \"./NumberUtils.js\";\nimport { half, millisecondsToSeconds, minVelocity, percentDenominator } from \"../Core/Utils/Constants.js\";\nimport { isArray, isNull, isObject } from \"./TypeUtils.js\";\nimport { AnimationMode } from \"../Enums/Modes/AnimationMode.js\";\nimport { AnimationStatus } from \"../Enums/AnimationStatus.js\";\nimport { DestroyType } from \"../Enums/Types/DestroyType.js\";\nimport { OutModeDirection } from \"../Enums/Directions/OutModeDirection.js\";\nimport { PixelMode } from \"../Enums/Modes/PixelMode.js\";\nimport { StartValueType } from \"../Enums/Types/StartValueType.js\";\nimport { Vector } from \"../Core/Utils/Vectors.js\";\nconst _logger = {\n debug: console.debug,\n error: console.error,\n info: console.info,\n log: console.log,\n verbose: console.log,\n warning: console.warn,\n};\nexport function setLogger(logger) {\n _logger.debug = logger.debug || _logger.debug;\n _logger.error = logger.error || _logger.error;\n _logger.info = logger.info || _logger.info;\n _logger.log = logger.log || _logger.log;\n _logger.verbose = logger.verbose || _logger.verbose;\n _logger.warning = logger.warning || _logger.warning;\n}\nexport function getLogger() {\n return _logger;\n}\nfunction memoize(fn) {\n const cache = new Map();\n return (...args) => {\n const key = JSON.stringify(args);\n if (cache.has(key)) {\n return cache.get(key);\n }\n const result = fn(...args);\n cache.set(key, result);\n return result;\n };\n}\nfunction rectSideBounce(data) {\n const res = { bounced: false }, { pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor } = data;\n if (pOtherSide.min < rectOtherSide.min ||\n pOtherSide.min > rectOtherSide.max ||\n pOtherSide.max < rectOtherSide.min ||\n pOtherSide.max > rectOtherSide.max) {\n return res;\n }\n if ((pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) * half && velocity > minVelocity) ||\n (pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) * half && velocity < minVelocity)) {\n res.velocity = velocity * -factor;\n res.bounced = true;\n }\n return res;\n}\nfunction checkSelector(element, selectors) {\n const res = executeOnSingleOrMultiple(selectors, selector => {\n return element.matches(selector);\n });\n return isArray(res) ? res.some(t => t) : res;\n}\nexport function isSsr() {\n return typeof window === \"undefined\" || !window || typeof window.document === \"undefined\" || !window.document;\n}\nexport function hasMatchMedia() {\n return !isSsr() && typeof matchMedia !== \"undefined\";\n}\nexport function safeMatchMedia(query) {\n if (!hasMatchMedia()) {\n return;\n }\n return matchMedia(query);\n}\nexport function safeIntersectionObserver(callback) {\n if (isSsr() || typeof IntersectionObserver === \"undefined\") {\n return;\n }\n return new IntersectionObserver(callback);\n}\nexport function safeMutationObserver(callback) {\n if (isSsr() || typeof MutationObserver === \"undefined\") {\n return;\n }\n return new MutationObserver(callback);\n}\nexport function isInArray(value, array) {\n const invalidIndex = -1;\n return value === array || (isArray(array) && array.indexOf(value) > invalidIndex);\n}\nexport async function loadFont(font, weight) {\n try {\n await document.fonts.load(`${weight ?? \"400\"} 36px '${font ?? \"Verdana\"}'`);\n }\n catch {\n }\n}\nexport function arrayRandomIndex(array) {\n return Math.floor(getRandom() * array.length);\n}\nexport function itemFromArray(array, index, useIndex = true) {\n return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)];\n}\nexport function isPointInside(point, size, offset, radius, direction) {\n const minRadius = 0;\n return areBoundsInside(calculateBounds(point, radius ?? minRadius), size, offset, direction);\n}\nexport function areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === OutModeDirection.bottom) {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === OutModeDirection.left)) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === OutModeDirection.right)) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === OutModeDirection.top)) {\n inside = bounds.bottom > offset.y;\n }\n return inside;\n}\nexport function calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius,\n };\n}\nexport function deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (!isObject(source)) {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && (isObject(destination) || !destination || !Array.isArray(destination))) {\n destination = [];\n }\n else if (!sourceIsArray && (isObject(destination) || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source, value = sourceDict[key], destDict = destination;\n destDict[key] =\n isObject(value) && Array.isArray(value)\n ? value.map(v => deepExtend(destDict[key], v))\n : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nexport function isDivModeEnabled(mode, divs) {\n return !!findItemFromSingleOrMultiple(divs, t => t.enable && isInArray(mode, t.mode));\n}\nexport function divModeExecute(mode, divs, callback) {\n executeOnSingleOrMultiple(divs, div => {\n const divMode = div.mode, divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n });\n}\nexport function singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n executeOnSingleOrMultiple(selectors, selector => {\n callback(selector, div);\n });\n}\nexport function divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n return findItemFromSingleOrMultiple(divs, div => {\n return checkSelector(element, div.selectors);\n });\n}\nexport function circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: Vector.create(getRangeValue(p.options.bounce.horizontal.value), getRangeValue(p.options.bounce.vertical.value)),\n };\n}\nexport function circleBounce(p1, p2) {\n const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = getDistances(pos2, pos1), minimumDistance = 0;\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < minimumDistance) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = collisionVelocity(u1, u2, m1, m2), v2 = collisionVelocity(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n}\nexport function rectBounce(particle, divBounds) {\n const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size), bounceOptions = particle.options.bounce, resH = rectSideBounce({\n pSide: {\n min: bounds.left,\n max: bounds.right,\n },\n pOtherSide: {\n min: bounds.top,\n max: bounds.bottom,\n },\n rectSide: {\n min: divBounds.left,\n max: divBounds.right,\n },\n rectOtherSide: {\n min: divBounds.top,\n max: divBounds.bottom,\n },\n velocity: particle.velocity.x,\n factor: getRangeValue(bounceOptions.horizontal.value),\n });\n if (resH.bounced) {\n if (resH.velocity !== undefined) {\n particle.velocity.x = resH.velocity;\n }\n if (resH.position !== undefined) {\n particle.position.x = resH.position;\n }\n }\n const resV = rectSideBounce({\n pSide: {\n min: bounds.top,\n max: bounds.bottom,\n },\n pOtherSide: {\n min: bounds.left,\n max: bounds.right,\n },\n rectSide: {\n min: divBounds.top,\n max: divBounds.bottom,\n },\n rectOtherSide: {\n min: divBounds.left,\n max: divBounds.right,\n },\n velocity: particle.velocity.y,\n factor: getRangeValue(bounceOptions.vertical.value),\n });\n if (resV.bounced) {\n if (resV.velocity !== undefined) {\n particle.velocity.y = resV.velocity;\n }\n if (resV.position !== undefined) {\n particle.position.y = resV.position;\n }\n }\n}\nexport function executeOnSingleOrMultiple(obj, callback) {\n const defaultIndex = 0;\n return isArray(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, defaultIndex);\n}\nexport function itemFromSingleOrMultiple(obj, index, useIndex) {\n return isArray(obj) ? itemFromArray(obj, index, useIndex) : obj;\n}\nexport function findItemFromSingleOrMultiple(obj, callback) {\n if (isArray(obj)) {\n return obj.find((t, index) => callback(t, index));\n }\n const defaultIndex = 0;\n return callback(obj, defaultIndex) ? obj : undefined;\n}\nexport function initParticleNumericAnimationValue(options, pxRatio) {\n const valueRange = options.value, animationOptions = options.animation, res = {\n delayTime: getRangeValue(animationOptions.delay) * millisecondsToSeconds,\n enable: animationOptions.enable,\n value: getRangeValue(options.value) * pxRatio,\n max: getRangeMax(valueRange) * pxRatio,\n min: getRangeMin(valueRange) * pxRatio,\n loops: 0,\n maxLoops: getRangeValue(animationOptions.count),\n time: 0,\n }, decayOffset = 1;\n if (animationOptions.enable) {\n res.decay = decayOffset - getRangeValue(animationOptions.decay);\n switch (animationOptions.mode) {\n case AnimationMode.increase:\n res.status = AnimationStatus.increasing;\n break;\n case AnimationMode.decrease:\n res.status = AnimationStatus.decreasing;\n break;\n case AnimationMode.random:\n res.status = getRandom() >= half ? AnimationStatus.increasing : AnimationStatus.decreasing;\n break;\n }\n const autoStatus = animationOptions.mode === AnimationMode.auto;\n switch (animationOptions.startValue) {\n case StartValueType.min:\n res.value = res.min;\n if (autoStatus) {\n res.status = AnimationStatus.increasing;\n }\n break;\n case StartValueType.max:\n res.value = res.max;\n if (autoStatus) {\n res.status = AnimationStatus.decreasing;\n }\n break;\n case StartValueType.random:\n default:\n res.value = randomInRange(res);\n if (autoStatus) {\n res.status = getRandom() >= half ? AnimationStatus.increasing : AnimationStatus.decreasing;\n }\n break;\n }\n }\n res.initialValue = res.value;\n return res;\n}\nfunction getPositionOrSize(positionOrSize, canvasSize) {\n const isPercent = positionOrSize.mode === PixelMode.percent;\n if (!isPercent) {\n const { mode: _, ...rest } = positionOrSize;\n return rest;\n }\n const isPosition = \"x\" in positionOrSize;\n if (isPosition) {\n return {\n x: (positionOrSize.x / percentDenominator) * canvasSize.width,\n y: (positionOrSize.y / percentDenominator) * canvasSize.height,\n };\n }\n else {\n return {\n width: (positionOrSize.width / percentDenominator) * canvasSize.width,\n height: (positionOrSize.height / percentDenominator) * canvasSize.height,\n };\n }\n}\nexport function getPosition(position, canvasSize) {\n return getPositionOrSize(position, canvasSize);\n}\nexport function getSize(size, canvasSize) {\n return getPositionOrSize(size, canvasSize);\n}\nfunction checkDestroy(particle, destroyType, value, minValue, maxValue) {\n switch (destroyType) {\n case DestroyType.max:\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case DestroyType.min:\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nexport function updateAnimation(particle, data, changeDirection, destroyType, delta) {\n const minLoops = 0, minDelay = 0, identity = 1, minVelocity = 0, minDecay = 1;\n if (particle.destroyed ||\n !data ||\n !data.enable ||\n ((data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops))) {\n return;\n }\n const velocity = (data.velocity ?? minVelocity) * delta.factor, minValue = data.min, maxValue = data.max, decay = data.decay ?? minDecay;\n if (!data.time) {\n data.time = 0;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n data.time += delta.value;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n return;\n }\n switch (data.status) {\n case AnimationStatus.increasing:\n if (data.value >= maxValue) {\n if (changeDirection) {\n data.status = AnimationStatus.decreasing;\n }\n else {\n data.value -= maxValue;\n }\n if (!data.loops) {\n data.loops = minLoops;\n }\n data.loops++;\n }\n else {\n data.value += velocity;\n }\n break;\n case AnimationStatus.decreasing:\n if (data.value <= minValue) {\n if (changeDirection) {\n data.status = AnimationStatus.increasing;\n }\n else {\n data.value += maxValue;\n }\n if (!data.loops) {\n data.loops = minLoops;\n }\n data.loops++;\n }\n else {\n data.value -= velocity;\n }\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n checkDestroy(particle, destroyType, data.value, minValue, maxValue);\n if (!particle.destroyed) {\n data.value = clamp(data.value, minValue, maxValue);\n }\n}\nexport function cloneStyle(style) {\n const clonedStyle = document.createElement(\"div\").style;\n if (!style) {\n return clonedStyle;\n }\n for (const key in style) {\n const styleKey = style[key];\n if (!Object.prototype.hasOwnProperty.call(style, key) || isNull(styleKey)) {\n continue;\n }\n const styleValue = style.getPropertyValue?.(styleKey);\n if (!styleValue) {\n continue;\n }\n const stylePriority = style.getPropertyPriority?.(styleKey);\n if (!stylePriority) {\n clonedStyle.setProperty?.(styleKey, styleValue);\n }\n else {\n clonedStyle.setProperty?.(styleKey, styleValue, stylePriority);\n }\n }\n return clonedStyle;\n}\nfunction computeFullScreenStyle(zIndex) {\n const fullScreenStyle = document.createElement(\"div\").style, radix = 10, style = {\n width: \"100%\",\n height: \"100%\",\n margin: \"0\",\n padding: \"0\",\n borderWidth: \"0\",\n position: \"fixed\",\n zIndex: zIndex.toString(radix),\n \"z-index\": zIndex.toString(radix),\n top: \"0\",\n left: \"0\",\n };\n for (const key in style) {\n const value = style[key];\n fullScreenStyle.setProperty(key, value);\n }\n return fullScreenStyle;\n}\nexport const getFullScreenStyle = memoize(computeFullScreenStyle);\n", + "export var AlterType;\n(function (AlterType) {\n AlterType[\"darken\"] = \"darken\";\n AlterType[\"enlighten\"] = \"enlighten\";\n})(AlterType || (AlterType = {}));\n", + "import { clamp, getRandom, getRangeMax, getRangeMin, getRangeValue, mix, randomInRange, setRangeValue, } from \"./NumberUtils.js\";\nimport { decayOffset, defaultLoops, defaultOpacity, defaultRgbMin, defaultTime, defaultVelocity, double, hMax, hMin, hPhase, half, identity, lMax, lMin, midColorValue, millisecondsToSeconds, percentDenominator, phaseNumerator, randomColorValue, rgbFactor, rgbMax, sMax, sMin, sNormalizedOffset, sextuple, triple, } from \"../Core/Utils/Constants.js\";\nimport { isArray, isString } from \"./TypeUtils.js\";\nimport { AnimationStatus } from \"../Enums/AnimationStatus.js\";\nimport { itemFromArray } from \"./Utils.js\";\nfunction stringToRgba(engine, input) {\n if (!input) {\n return;\n }\n for (const manager of engine.colorManagers.values()) {\n if (input.startsWith(manager.stringPrefix)) {\n return manager.parseString(input);\n }\n }\n}\nexport function rangeColorToRgb(engine, input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = isString(input) ? { value: input } : input;\n if (isString(color.value)) {\n return colorToRgb(engine, color.value, index, useIndex);\n }\n if (isArray(color.value)) {\n return rangeColorToRgb(engine, {\n value: itemFromArray(color.value, index, useIndex),\n });\n }\n for (const manager of engine.colorManagers.values()) {\n const res = manager.handleRangeColor(color);\n if (res) {\n return res;\n }\n }\n}\nexport function colorToRgb(engine, input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = isString(input) ? { value: input } : input;\n if (isString(color.value)) {\n return color.value === randomColorValue ? getRandomRgbColor() : stringToRgb(engine, color.value);\n }\n if (isArray(color.value)) {\n return colorToRgb(engine, {\n value: itemFromArray(color.value, index, useIndex),\n });\n }\n for (const manager of engine.colorManagers.values()) {\n const res = manager.handleColor(color);\n if (res) {\n return res;\n }\n }\n}\nexport function colorToHsl(engine, color, index, useIndex = true) {\n const rgb = colorToRgb(engine, color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nexport function rangeColorToHsl(engine, color, index, useIndex = true) {\n const rgb = rangeColorToRgb(engine, color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nexport function rgbToHsl(color) {\n const r1 = color.r / rgbMax, g1 = color.g / rgbMax, b1 = color.b / rgbMax, max = Math.max(r1, g1, b1), min = Math.min(r1, g1, b1), res = {\n h: hMin,\n l: (max + min) * half,\n s: sMin,\n };\n if (max !== min) {\n res.s = res.l < half ? (max - min) / (max + min) : (max - min) / (double - max - min);\n res.h =\n r1 === max\n ? (g1 - b1) / (max - min)\n : (res.h = g1 === max ? double + (b1 - r1) / (max - min) : double * double + (r1 - g1) / (max - min));\n }\n res.l *= lMax;\n res.s *= sMax;\n res.h *= hPhase;\n if (res.h < hMin) {\n res.h += hMax;\n }\n if (res.h >= hMax) {\n res.h -= hMax;\n }\n return res;\n}\nexport function stringToAlpha(engine, input) {\n return stringToRgba(engine, input)?.a;\n}\nexport function stringToRgb(engine, input) {\n return stringToRgba(engine, input);\n}\nexport function hslToRgb(hsl) {\n const h = ((hsl.h % hMax) + hMax) % hMax, s = Math.max(sMin, Math.min(sMax, hsl.s)), l = Math.max(lMin, Math.min(lMax, hsl.l)), hNormalized = h / hMax, sNormalized = s / sMax, lNormalized = l / lMax;\n if (s === sMin) {\n const grayscaleValue = Math.round(lNormalized * rgbFactor);\n return { r: grayscaleValue, g: grayscaleValue, b: grayscaleValue };\n }\n const channel = (temp1, temp2, temp3) => {\n const temp3Min = 0, temp3Max = 1;\n if (temp3 < temp3Min) {\n temp3++;\n }\n if (temp3 > temp3Max) {\n temp3--;\n }\n if (temp3 * sextuple < temp3Max) {\n return temp1 + (temp2 - temp1) * sextuple * temp3;\n }\n if (temp3 * double < temp3Max) {\n return temp2;\n }\n if (temp3 * triple < temp3Max * double) {\n const temp3Offset = double / triple;\n return temp1 + (temp2 - temp1) * (temp3Offset - temp3) * sextuple;\n }\n return temp1;\n }, temp1 = lNormalized < half\n ? lNormalized * (sNormalizedOffset + sNormalized)\n : lNormalized + sNormalized - lNormalized * sNormalized, temp2 = double * lNormalized - temp1, phaseThird = phaseNumerator / triple, red = Math.min(rgbFactor, rgbFactor * channel(temp2, temp1, hNormalized + phaseThird)), green = Math.min(rgbFactor, rgbFactor * channel(temp2, temp1, hNormalized)), blue = Math.min(rgbFactor, rgbFactor * channel(temp2, temp1, hNormalized - phaseThird));\n return { r: Math.round(red), g: Math.round(green), b: Math.round(blue) };\n}\nexport function hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexport function getRandomRgbColor(min) {\n const fixedMin = min ?? defaultRgbMin, fixedMax = rgbMax + identity;\n return {\n b: Math.floor(randomInRange(setRangeValue(fixedMin, fixedMax))),\n g: Math.floor(randomInRange(setRangeValue(fixedMin, fixedMax))),\n r: Math.floor(randomInRange(setRangeValue(fixedMin, fixedMax))),\n };\n}\nexport function getStyleFromRgb(color, opacity) {\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity ?? defaultOpacity})`;\n}\nexport function getStyleFromHsl(color, opacity) {\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity ?? defaultOpacity})`;\n}\nexport function colorMix(color1, color2, size1, size2) {\n let rgb1 = color1, rgb2 = color2;\n if (rgb1.r === undefined) {\n rgb1 = hslToRgb(color1);\n }\n if (rgb2.r === undefined) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: mix(rgb1.b, rgb2.b, size1, size2),\n g: mix(rgb1.g, rgb2.g, size1, size2),\n r: mix(rgb1.r, rgb2.r, size1, size2),\n };\n}\nexport function getLinkColor(p1, p2, linkColor) {\n if (linkColor === randomColorValue) {\n return getRandomRgbColor();\n }\n else if (linkColor === midColorValue) {\n const sourceColor = p1.getFillColor() ?? p1.getStrokeColor(), destColor = p2?.getFillColor() ?? p2?.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n }\n else {\n const hslColor = sourceColor ?? destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n }\n else {\n return linkColor;\n }\n}\nexport function getLinkRandomColor(engine, optColor, blink, consent) {\n const color = isString(optColor) ? optColor : optColor.value;\n if (color === randomColorValue) {\n if (consent) {\n return rangeColorToRgb(engine, {\n value: color,\n });\n }\n if (blink) {\n return randomColorValue;\n }\n return midColorValue;\n }\n else if (color === midColorValue) {\n return midColorValue;\n }\n else {\n return rangeColorToRgb(engine, {\n value: color,\n });\n }\n}\nexport function getHslFromAnimation(animation) {\n return animation !== undefined\n ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value,\n }\n : undefined;\n}\nexport function getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h,\n },\n s: {\n enable: false,\n value: hsl.s,\n },\n l: {\n enable: false,\n value: hsl.l,\n },\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n if (colorValue.enable) {\n colorValue.velocity = (getRangeValue(colorAnimation.speed) / percentDenominator) * reduceFactor;\n colorValue.decay = decayOffset - getRangeValue(colorAnimation.decay);\n colorValue.status = AnimationStatus.increasing;\n colorValue.loops = defaultLoops;\n colorValue.maxLoops = getRangeValue(colorAnimation.count);\n colorValue.time = defaultTime;\n colorValue.delayTime = getRangeValue(colorAnimation.delay) * millisecondsToSeconds;\n if (!colorAnimation.sync) {\n colorValue.velocity *= getRandom();\n colorValue.value *= getRandom();\n }\n colorValue.initialValue = colorValue.value;\n colorValue.offset = setRangeValue(colorAnimation.offset);\n }\n else {\n colorValue.velocity = defaultVelocity;\n }\n}\nexport function updateColorValue(data, range, decrease, delta) {\n const minLoops = 0, minDelay = 0, identity = 1, minVelocity = 0, minOffset = 0, velocityFactor = 3.6;\n if (!data ||\n !data.enable ||\n ((data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops))) {\n return;\n }\n if (!data.time) {\n data.time = 0;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n data.time += delta.value;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n return;\n }\n const offset = data.offset ? randomInRange(data.offset) : minOffset, velocity = (data.velocity ?? minVelocity) * delta.factor + offset * velocityFactor, decay = data.decay ?? identity, max = getRangeMax(range), min = getRangeMin(range);\n if (!decrease || data.status === AnimationStatus.increasing) {\n data.value += velocity;\n if (data.value > max) {\n if (!data.loops) {\n data.loops = 0;\n }\n data.loops++;\n if (decrease) {\n data.status = AnimationStatus.decreasing;\n }\n else {\n data.value -= max;\n }\n }\n }\n else {\n data.value -= velocity;\n const minValue = 0;\n if (data.value < minValue) {\n if (!data.loops) {\n data.loops = 0;\n }\n data.loops++;\n data.status = AnimationStatus.increasing;\n }\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n data.value = clamp(data.value, min, max);\n}\nexport function updateColor(color, delta) {\n if (!color) {\n return;\n }\n const { h, s, l } = color, ranges = {\n h: { min: 0, max: 360 },\n s: { min: 0, max: 100 },\n l: { min: 0, max: 100 },\n };\n if (h) {\n updateColorValue(h, ranges.h, false, delta);\n }\n if (s) {\n updateColorValue(s, ranges.s, true, delta);\n }\n if (l) {\n updateColorValue(l, ranges.l, true, delta);\n }\n}\n", + "import { defaultAngle, defaultTransform, identity, lFactor, minStrokeWidth, originPoint, } from \"../Core/Utils/Constants.js\";\nimport { AlterType } from \"../Enums/Types/AlterType.js\";\nimport { getStyleFromRgb } from \"./ColorUtils.js\";\nexport function drawLine(context, begin, end) {\n context.beginPath();\n context.moveTo(begin.x, begin.y);\n context.lineTo(end.x, end.y);\n context.closePath();\n}\nexport function paintBase(context, dimension, baseColor) {\n context.fillStyle = baseColor ?? \"rgba(0,0,0,0)\";\n context.fillRect(originPoint.x, originPoint.y, dimension.width, dimension.height);\n}\nexport function paintImage(context, dimension, image, opacity) {\n if (!image) {\n return;\n }\n context.globalAlpha = opacity;\n context.drawImage(image, originPoint.x, originPoint.y, dimension.width, dimension.height);\n context.globalAlpha = 1;\n}\nexport function clear(context, dimension) {\n context.clearRect(originPoint.x, originPoint.y, dimension.width, dimension.height);\n}\nexport function drawParticle(data) {\n const { container, context, particle, delta, colorStyles, backgroundMask, composite, radius, opacity, shadow, transform, } = data, pos = particle.getPosition(), angle = particle.rotation + (particle.pathRotation ? particle.velocity.angle : defaultAngle), rotateData = {\n sin: Math.sin(angle),\n cos: Math.cos(angle),\n }, rotating = !!angle, transformData = {\n a: rotateData.cos * (transform.a ?? defaultTransform.a),\n b: rotating ? rotateData.sin * (transform.b ?? identity) : (transform.b ?? defaultTransform.b),\n c: rotating ? -rotateData.sin * (transform.c ?? identity) : (transform.c ?? defaultTransform.c),\n d: rotateData.cos * (transform.d ?? defaultTransform.d),\n };\n context.setTransform(transformData.a, transformData.b, transformData.c, transformData.d, pos.x, pos.y);\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n const shadowColor = particle.shadowColor;\n if (shadow.enable && shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n context.shadowOffsetX = shadow.offset.x;\n context.shadowOffsetY = shadow.offset.y;\n }\n if (colorStyles.fill) {\n context.fillStyle = colorStyles.fill;\n }\n const strokeWidth = particle.strokeWidth ?? minStrokeWidth;\n context.lineWidth = strokeWidth;\n if (colorStyles.stroke) {\n context.strokeStyle = colorStyles.stroke;\n }\n const drawData = {\n container,\n context,\n particle,\n radius,\n opacity,\n delta,\n transformData,\n strokeWidth,\n };\n drawShape(drawData);\n drawShapeAfterDraw(drawData);\n drawEffect(drawData);\n context.globalCompositeOperation = \"source-over\";\n context.resetTransform();\n}\nexport function drawEffect(data) {\n const { container, context, particle, radius, opacity, delta, transformData } = data;\n if (!particle.effect) {\n return;\n }\n const drawer = container.effectDrawers.get(particle.effect);\n if (!drawer) {\n return;\n }\n drawer.draw({\n context,\n particle,\n radius,\n opacity,\n delta,\n pixelRatio: container.retina.pixelRatio,\n transformData: { ...transformData },\n });\n}\nexport function drawShape(data) {\n const { container, context, particle, radius, opacity, delta, strokeWidth, transformData } = data;\n if (!particle.shape) {\n return;\n }\n const drawer = container.shapeDrawers.get(particle.shape);\n if (!drawer) {\n return;\n }\n context.beginPath();\n drawer.draw({\n context,\n particle,\n radius,\n opacity,\n delta,\n pixelRatio: container.retina.pixelRatio,\n transformData: { ...transformData },\n });\n if (particle.shapeClose) {\n context.closePath();\n }\n if (strokeWidth > minStrokeWidth) {\n context.stroke();\n }\n if (particle.shapeFill) {\n context.fill();\n }\n}\nexport function drawShapeAfterDraw(data) {\n const { container, context, particle, radius, opacity, delta, transformData } = data;\n if (!particle.shape) {\n return;\n }\n const drawer = container.shapeDrawers.get(particle.shape);\n if (!drawer?.afterDraw) {\n return;\n }\n drawer.afterDraw({\n context,\n particle,\n radius,\n opacity,\n delta,\n pixelRatio: container.retina.pixelRatio,\n transformData: { ...transformData },\n });\n}\nexport function drawPlugin(context, plugin, delta) {\n if (!plugin.draw) {\n return;\n }\n plugin.draw(context, delta);\n}\nexport function drawParticlePlugin(context, plugin, particle, delta) {\n if (!plugin.drawParticle) {\n return;\n }\n plugin.drawParticle(context, particle, delta);\n}\nexport function alterHsl(color, type, value) {\n return {\n h: color.h,\n s: color.s,\n l: color.l + (type === AlterType.darken ? -lFactor : lFactor) * value,\n };\n}\n", + "import { clear, drawParticle, drawParticlePlugin, drawPlugin, paintBase, paintImage } from \"../Utils/CanvasUtils.js\";\nimport { cloneStyle, getFullScreenStyle, getLogger, safeMutationObserver } from \"../Utils/Utils.js\";\nimport { defaultOpacity, defaultTransformValue, generatedAttribute, inverseFactorNumerator, minimumLength, minimumSize, zIndexFactorOffset, } from \"./Utils/Constants.js\";\nimport { getStyleFromHsl, getStyleFromRgb, rangeColorToHsl, rangeColorToRgb } from \"../Utils/ColorUtils.js\";\nfunction setTransformValue(factor, newFactor, key) {\n const newValue = newFactor[key];\n if (newValue !== undefined) {\n factor[key] = (factor[key] ?? defaultTransformValue) * newValue;\n }\n}\nfunction setStyle(canvas, style, important = false) {\n if (!style) {\n return;\n }\n const element = canvas;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (!elementStyle) {\n return;\n }\n const keys = new Set();\n for (const key in elementStyle) {\n if (!Object.prototype.hasOwnProperty.call(elementStyle, key)) {\n continue;\n }\n keys.add(elementStyle[key]);\n }\n for (const key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n keys.add(style[key]);\n }\n for (const key of keys) {\n const value = style.getPropertyValue(key);\n if (!value) {\n elementStyle.removeProperty(key);\n }\n else {\n elementStyle.setProperty(key, value, important ? \"important\" : \"\");\n }\n }\n}\nexport class Canvas {\n constructor(container, engine) {\n this.container = container;\n this._applyPostDrawUpdaters = particle => {\n for (const updater of this._postDrawUpdaters) {\n updater.afterDraw?.(particle);\n }\n };\n this._applyPreDrawUpdaters = (ctx, particle, radius, zOpacity, colorStyles, transform) => {\n for (const updater of this._preDrawUpdaters) {\n if (updater.getColorStyles) {\n const { fill, stroke } = updater.getColorStyles(particle, ctx, radius, zOpacity);\n if (fill) {\n colorStyles.fill = fill;\n }\n if (stroke) {\n colorStyles.stroke = stroke;\n }\n }\n if (updater.getTransformValues) {\n const updaterTransform = updater.getTransformValues(particle);\n for (const key in updaterTransform) {\n setTransformValue(transform, updaterTransform, key);\n }\n }\n updater.beforeDraw?.(particle);\n }\n };\n this._applyResizePlugins = () => {\n for (const plugin of this._resizePlugins) {\n plugin.resize?.();\n }\n };\n this._getPluginParticleColors = particle => {\n let fColor, sColor;\n for (const plugin of this._colorPlugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = rangeColorToHsl(this._engine, plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = rangeColorToHsl(this._engine, plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n };\n this._initCover = async () => {\n const options = this.container.actualOptions, cover = options.backgroundMask.cover, color = cover.color;\n if (color) {\n const coverRgb = rangeColorToRgb(this._engine, color);\n if (coverRgb) {\n const coverColor = {\n ...coverRgb,\n a: cover.opacity,\n };\n this._coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);\n }\n }\n else {\n await new Promise((resolve, reject) => {\n if (!cover.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._coverImage = {\n image: img,\n opacity: cover.opacity,\n };\n resolve();\n });\n img.addEventListener(\"error\", evt => {\n reject(evt.error);\n });\n img.src = cover.image;\n });\n }\n };\n this._initStyle = () => {\n const element = this.element, options = this.container.actualOptions;\n if (!element) {\n return;\n }\n if (this._fullScreen) {\n this._setFullScreenStyle();\n }\n else {\n this._resetOriginalStyle();\n }\n for (const key in options.style) {\n if (!key || !options.style || !Object.prototype.hasOwnProperty.call(options.style, key)) {\n continue;\n }\n const value = options.style[key];\n if (!value) {\n continue;\n }\n element.style.setProperty(key, value, \"important\");\n }\n };\n this._initTrail = async () => {\n const options = this.container.actualOptions, trail = options.particles.move.trail, trailFill = trail.fill;\n if (!trail.enable) {\n return;\n }\n const opacity = inverseFactorNumerator / trail.length;\n if (trailFill.color) {\n const fillColor = rangeColorToRgb(this._engine, trailFill.color);\n if (!fillColor) {\n return;\n }\n this._trailFill = {\n color: {\n ...fillColor,\n },\n opacity,\n };\n }\n else {\n await new Promise((resolve, reject) => {\n if (!trailFill.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._trailFill = {\n image: img,\n opacity,\n };\n resolve();\n });\n img.addEventListener(\"error\", evt => {\n reject(evt.error);\n });\n img.src = trailFill.image;\n });\n }\n };\n this._paintBase = baseColor => {\n this.draw(ctx => paintBase(ctx, this.size, baseColor));\n };\n this._paintImage = (image, opacity) => {\n this.draw(ctx => paintImage(ctx, this.size, image, opacity));\n };\n this._repairStyle = () => {\n const element = this.element;\n if (!element) {\n return;\n }\n this._safeMutationObserver(observer => observer.disconnect());\n this._initStyle();\n this.initBackground();\n const pointerEvents = this._pointerEvents;\n element.style.pointerEvents = pointerEvents;\n element.setAttribute(\"pointer-events\", pointerEvents);\n this._safeMutationObserver(observer => {\n if (!element || !(element instanceof Node)) {\n return;\n }\n observer.observe(element, { attributes: true });\n });\n };\n this._resetOriginalStyle = () => {\n const element = this.element, originalStyle = this._originalStyle;\n if (!element || !originalStyle) {\n return;\n }\n setStyle(element, originalStyle, true);\n };\n this._safeMutationObserver = callback => {\n if (!this._mutationObserver) {\n return;\n }\n callback(this._mutationObserver);\n };\n this._setFullScreenStyle = () => {\n const element = this.element;\n if (!element) {\n return;\n }\n setStyle(element, getFullScreenStyle(this.container.actualOptions.fullScreen.zIndex), true);\n };\n this._engine = engine;\n this._standardSize = {\n height: 0,\n width: 0,\n };\n const pxRatio = container.retina.pixelRatio, stdSize = this._standardSize;\n this.size = {\n height: stdSize.height * pxRatio,\n width: stdSize.width * pxRatio,\n };\n this._context = null;\n this._generated = false;\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n this._pointerEvents = \"none\";\n }\n get _fullScreen() {\n return this.container.actualOptions.fullScreen.enable;\n }\n clear() {\n const options = this.container.actualOptions, trail = options.particles.move.trail, trailFill = this._trailFill;\n if (options.backgroundMask.enable) {\n this.paint();\n }\n else if (trail.enable && trail.length > minimumLength && trailFill) {\n if (trailFill.color) {\n this._paintBase(getStyleFromRgb(trailFill.color, trailFill.opacity));\n }\n else if (trailFill.image) {\n this._paintImage(trailFill.image, trailFill.opacity);\n }\n }\n else if (options.clear) {\n this.draw(ctx => {\n clear(ctx, this.size);\n });\n }\n }\n destroy() {\n this.stop();\n if (this._generated) {\n const element = this.element;\n element?.remove();\n this.element = undefined;\n }\n else {\n this._resetOriginalStyle();\n }\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n draw(cb) {\n const ctx = this._context;\n if (!ctx) {\n return;\n }\n return cb(ctx);\n }\n drawAsync(cb) {\n const ctx = this._context;\n if (!ctx) {\n return undefined;\n }\n return cb(ctx);\n }\n drawParticle(particle, delta) {\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const radius = particle.getRadius();\n if (radius <= minimumSize) {\n return;\n }\n const pfColor = particle.getFillColor(), psColor = particle.getStrokeColor() ?? pfColor;\n let [fColor, sColor] = this._getPluginParticleColors(particle);\n if (!fColor) {\n fColor = pfColor;\n }\n if (!sColor) {\n sColor = psColor;\n }\n if (!fColor && !sColor) {\n return;\n }\n this.draw((ctx) => {\n const container = this.container, options = container.actualOptions, zIndexOptions = particle.options.zIndex, zIndexFactor = zIndexFactorOffset - particle.zIndexFactor, zOpacityFactor = zIndexFactor ** zIndexOptions.opacityRate, opacity = particle.bubble.opacity ?? particle.opacity?.value ?? defaultOpacity, strokeOpacity = particle.strokeOpacity ?? opacity, zOpacity = opacity * zOpacityFactor, zStrokeOpacity = strokeOpacity * zOpacityFactor, transform = {}, colorStyles = {\n fill: fColor ? getStyleFromHsl(fColor, zOpacity) : undefined,\n };\n colorStyles.stroke = sColor ? getStyleFromHsl(sColor, zStrokeOpacity) : colorStyles.fill;\n this._applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform);\n drawParticle({\n container,\n context: ctx,\n particle,\n delta,\n colorStyles,\n backgroundMask: options.backgroundMask.enable,\n composite: options.backgroundMask.composite,\n radius: radius * zIndexFactor ** zIndexOptions.sizeRate,\n opacity: zOpacity,\n shadow: particle.options.shadow,\n transform,\n });\n this._applyPostDrawUpdaters(particle);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw(ctx => drawParticlePlugin(ctx, plugin, particle, delta));\n }\n drawPlugin(plugin, delta) {\n this.draw(ctx => drawPlugin(ctx, plugin, delta));\n }\n async init() {\n this._safeMutationObserver(obs => obs.disconnect());\n this._mutationObserver = safeMutationObserver(records => {\n for (const record of records) {\n if (record.type === \"attributes\" && record.attributeName === \"style\") {\n this._repairStyle();\n }\n }\n });\n this.resize();\n this._initStyle();\n await this._initCover();\n try {\n await this._initTrail();\n }\n catch (e) {\n getLogger().error(e);\n }\n this.initBackground();\n this._safeMutationObserver(obs => {\n if (!this.element || !(this.element instanceof Node)) {\n return;\n }\n obs.observe(this.element, { attributes: true });\n });\n this.initUpdaters();\n this.initPlugins();\n this.paint();\n }\n initBackground() {\n const options = this.container.actualOptions, background = options.background, element = this.element;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = rangeColorToRgb(this._engine, background.color);\n elementStyle.backgroundColor = color ? getStyleFromRgb(color, background.opacity) : \"\";\n }\n else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n initPlugins() {\n this._resizePlugins = [];\n for (const plugin of this.container.plugins.values()) {\n if (plugin.resize) {\n this._resizePlugins.push(plugin);\n }\n if (plugin.particleFillColor ?? plugin.particleStrokeColor) {\n this._colorPlugins.push(plugin);\n }\n }\n }\n initUpdaters() {\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n for (const updater of this.container.particles.updaters) {\n if (updater.afterDraw) {\n this._postDrawUpdaters.push(updater);\n }\n if (updater.getColorStyles ?? updater.getTransformValues ?? updater.beforeDraw) {\n this._preDrawUpdaters.push(updater);\n }\n }\n }\n loadCanvas(canvas) {\n if (this._generated && this.element) {\n this.element.remove();\n }\n this._generated =\n canvas.dataset && generatedAttribute in canvas.dataset\n ? canvas.dataset[generatedAttribute] === \"true\"\n : this._generated;\n this.element = canvas;\n this.element.ariaHidden = \"true\";\n this._originalStyle = cloneStyle(this.element.style);\n const standardSize = this._standardSize;\n standardSize.height = canvas.offsetHeight;\n standardSize.width = canvas.offsetWidth;\n const pxRatio = this.container.retina.pixelRatio, retinaSize = this.size;\n canvas.height = retinaSize.height = standardSize.height * pxRatio;\n canvas.width = retinaSize.width = standardSize.width * pxRatio;\n this._context = this.element.getContext(\"2d\");\n this._safeMutationObserver(obs => obs.disconnect());\n this.container.retina.init();\n this.initBackground();\n this._safeMutationObserver(obs => {\n if (!this.element || !(this.element instanceof Node)) {\n return;\n }\n obs.observe(this.element, { attributes: true });\n });\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw(ctx => {\n if (options.backgroundMask.enable && options.backgroundMask.cover) {\n clear(ctx, this.size);\n if (this._coverImage) {\n this._paintImage(this._coverImage.image, this._coverImage.opacity);\n }\n else if (this._coverColorStyle) {\n this._paintBase(this._coverColorStyle);\n }\n else {\n this._paintBase();\n }\n }\n else {\n this._paintBase();\n }\n });\n }\n resize() {\n if (!this.element) {\n return false;\n }\n const container = this.container, currentSize = container.canvas._standardSize, newSize = {\n width: this.element.offsetWidth,\n height: this.element.offsetHeight,\n }, pxRatio = container.retina.pixelRatio, retinaSize = {\n width: newSize.width * pxRatio,\n height: newSize.height * pxRatio,\n };\n if (newSize.height === currentSize.height &&\n newSize.width === currentSize.width &&\n retinaSize.height === this.element.height &&\n retinaSize.width === this.element.width) {\n return false;\n }\n const oldSize = { ...currentSize };\n currentSize.height = newSize.height;\n currentSize.width = newSize.width;\n const canvasSize = this.size;\n this.element.width = canvasSize.width = retinaSize.width;\n this.element.height = canvasSize.height = retinaSize.height;\n if (this.container.started) {\n container.particles.setResizeFactor({\n width: currentSize.width / oldSize.width,\n height: currentSize.height / oldSize.height,\n });\n }\n return true;\n }\n setPointerEvents(type) {\n const element = this.element;\n if (!element) {\n return;\n }\n this._pointerEvents = type;\n this._repairStyle();\n }\n stop() {\n this._safeMutationObserver(obs => obs.disconnect());\n this._mutationObserver = undefined;\n this.draw(ctx => clear(ctx, this.size));\n }\n async windowResize() {\n if (!this.element || !this.resize()) {\n return;\n }\n const container = this.container, needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n this._applyResizePlugins();\n if (needsRefresh) {\n await container.refresh();\n }\n }\n}\n", + "export var InteractivityDetect;\n(function (InteractivityDetect) {\n InteractivityDetect[\"canvas\"] = \"canvas\";\n InteractivityDetect[\"parent\"] = \"parent\";\n InteractivityDetect[\"window\"] = \"window\";\n})(InteractivityDetect || (InteractivityDetect = {}));\n", + "import { double, lengthOffset, millisecondsToSeconds, minCoordinate, mouseDownEvent, mouseLeaveEvent, mouseMoveEvent, mouseOutEvent, mouseUpEvent, resizeEvent, touchCancelEvent, touchDelay, touchEndEvent, touchMoveEvent, touchStartEvent, visibilityChangeEvent, } from \"./Constants.js\";\nimport { executeOnSingleOrMultiple, safeMatchMedia } from \"../../Utils/Utils.js\";\nimport { InteractivityDetect } from \"../../Enums/InteractivityDetect.js\";\nimport { isBoolean } from \"../../Utils/TypeUtils.js\";\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = { passive: true };\n if (isBoolean(options)) {\n addOptions.capture = options;\n }\n else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n }\n else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nexport class EventListeners {\n constructor(container) {\n this.container = container;\n this._doMouseTouchClick = e => {\n const container = this.container, options = container.actualOptions;\n if (this._canPush) {\n const mouseInteractivity = container.interactivity.mouse, mousePos = mouseInteractivity.position;\n if (!mousePos) {\n return;\n }\n mouseInteractivity.clickPosition = { ...mousePos };\n mouseInteractivity.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n executeOnSingleOrMultiple(onClick.mode, mode => this.container.handleClickMode(mode));\n }\n if (e.type === \"touchend\") {\n setTimeout(() => this._mouseTouchFinish(), touchDelay);\n }\n };\n this._handleThemeChange = (e) => {\n const mediaEvent = e, container = this.container, options = container.options, defaultThemes = options.defaultThemes, themeName = mediaEvent.matches ? defaultThemes.dark : defaultThemes.light, theme = options.themes.find(theme => theme.name === themeName);\n if (theme?.default.auto) {\n void container.loadTheme(themeName);\n }\n };\n this._handleVisibilityChange = () => {\n const container = this.container, options = container.actualOptions;\n this._mouseTouchFinish();\n if (!options.pauseOnBlur) {\n return;\n }\n if (document?.hidden) {\n container.pageHidden = true;\n container.pause();\n }\n else {\n container.pageHidden = false;\n if (container.animationStatus) {\n void container.play(true);\n }\n else {\n void container.draw(true);\n }\n }\n };\n this._handleWindowResize = () => {\n if (this._resizeTimeout) {\n clearTimeout(this._resizeTimeout);\n delete this._resizeTimeout;\n }\n const handleResize = async () => {\n const canvas = this.container.canvas;\n await canvas?.windowResize();\n };\n this._resizeTimeout = setTimeout(() => void handleResize(), this.container.actualOptions.interactivity.events.resize.delay * millisecondsToSeconds);\n };\n this._manageInteractivityListeners = (mouseLeaveTmpEvent, add) => {\n const handlers = this._handlers, container = this.container, options = container.actualOptions, interactivityEl = container.interactivity.element;\n if (!interactivityEl) {\n return;\n }\n const html = interactivityEl, canvas = container.canvas;\n canvas.setPointerEvents(html === canvas.element ? \"initial\" : \"none\");\n if (!(options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable)) {\n return;\n }\n manageListener(interactivityEl, mouseMoveEvent, handlers.mouseMove, add);\n manageListener(interactivityEl, touchStartEvent, handlers.touchStart, add);\n manageListener(interactivityEl, touchMoveEvent, handlers.touchMove, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, touchEndEvent, handlers.touchEnd, add);\n }\n else {\n manageListener(interactivityEl, touchEndEvent, handlers.touchEndClick, add);\n manageListener(interactivityEl, mouseUpEvent, handlers.mouseUp, add);\n manageListener(interactivityEl, mouseDownEvent, handlers.mouseDown, add);\n }\n manageListener(interactivityEl, mouseLeaveTmpEvent, handlers.mouseLeave, add);\n manageListener(interactivityEl, touchCancelEvent, handlers.touchCancel, add);\n };\n this._manageListeners = add => {\n const handlers = this._handlers, container = this.container, options = container.actualOptions, detectType = options.interactivity.detectsOn, canvasEl = container.canvas.element;\n let mouseLeaveTmpEvent = mouseLeaveEvent;\n if (detectType === InteractivityDetect.window) {\n container.interactivity.element = window;\n mouseLeaveTmpEvent = mouseOutEvent;\n }\n else if (detectType === InteractivityDetect.parent && canvasEl) {\n container.interactivity.element = canvasEl.parentElement ?? canvasEl.parentNode;\n }\n else {\n container.interactivity.element = canvasEl;\n }\n this._manageMediaMatch(add);\n this._manageResize(add);\n this._manageInteractivityListeners(mouseLeaveTmpEvent, add);\n if (document) {\n manageListener(document, visibilityChangeEvent, handlers.visibilityChange, add, false);\n }\n };\n this._manageMediaMatch = add => {\n const handlers = this._handlers, mediaMatch = safeMatchMedia(\"(prefers-color-scheme: dark)\");\n if (!mediaMatch) {\n return;\n }\n if (mediaMatch.addEventListener !== undefined) {\n manageListener(mediaMatch, \"change\", handlers.themeChange, add);\n return;\n }\n if (mediaMatch.addListener === undefined) {\n return;\n }\n if (add) {\n mediaMatch.addListener(handlers.oldThemeChange);\n }\n else {\n mediaMatch.removeListener(handlers.oldThemeChange);\n }\n };\n this._manageResize = add => {\n const handlers = this._handlers, container = this.container, options = container.actualOptions;\n if (!options.interactivity.events.resize) {\n return;\n }\n if (typeof ResizeObserver === \"undefined\") {\n manageListener(window, resizeEvent, handlers.resize, add);\n return;\n }\n const canvasEl = container.canvas.element;\n if (this._resizeObserver && !add) {\n if (canvasEl) {\n this._resizeObserver.unobserve(canvasEl);\n }\n this._resizeObserver.disconnect();\n delete this._resizeObserver;\n }\n else if (!this._resizeObserver && add && canvasEl) {\n this._resizeObserver = new ResizeObserver((entries) => {\n const entry = entries.find(e => e.target === canvasEl);\n if (!entry) {\n return;\n }\n this._handleWindowResize();\n });\n this._resizeObserver.observe(canvasEl);\n }\n };\n this._mouseDown = () => {\n const { interactivity } = this.container;\n if (!interactivity) {\n return;\n }\n const { mouse } = interactivity;\n mouse.clicking = true;\n mouse.downPosition = mouse.position;\n };\n this._mouseTouchClick = e => {\n const container = this.container, options = container.actualOptions, { mouse } = container.interactivity;\n mouse.inside = true;\n let handled = false;\n const mousePosition = mouse.position;\n if (!mousePosition || !options.interactivity.events.onClick.enable) {\n return;\n }\n for (const plugin of container.plugins.values()) {\n if (!plugin.clickPositionValid) {\n continue;\n }\n handled = plugin.clickPositionValid(mousePosition);\n if (handled) {\n break;\n }\n }\n if (!handled) {\n this._doMouseTouchClick(e);\n }\n mouse.clicking = false;\n };\n this._mouseTouchFinish = () => {\n const interactivity = this.container.interactivity;\n if (!interactivity) {\n return;\n }\n const mouse = interactivity.mouse;\n delete mouse.position;\n delete mouse.clickPosition;\n delete mouse.downPosition;\n interactivity.status = mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n };\n this._mouseTouchMove = e => {\n const container = this.container, options = container.actualOptions, interactivity = container.interactivity, canvasEl = container.canvas.element;\n if (!interactivity?.element) {\n return;\n }\n interactivity.mouse.inside = true;\n let pos;\n if (e.type.startsWith(\"pointer\")) {\n this._canPush = true;\n const mouseEvent = e;\n if (interactivity.element === window) {\n if (canvasEl) {\n const clientRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.clientX - clientRect.left,\n y: mouseEvent.clientY - clientRect.top,\n };\n }\n }\n else if (options.interactivity.detectsOn === InteractivityDetect.parent) {\n const source = mouseEvent.target, target = mouseEvent.currentTarget;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect(), targetRect = target.getBoundingClientRect(), canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.offsetX + double * sourceRect.left - (targetRect.left + canvasRect.left),\n y: mouseEvent.offsetY + double * sourceRect.top - (targetRect.top + canvasRect.top),\n };\n }\n else {\n pos = {\n x: mouseEvent.offsetX ?? mouseEvent.clientX,\n y: mouseEvent.offsetY ?? mouseEvent.clientY,\n };\n }\n }\n else if (mouseEvent.target === canvasEl) {\n pos = {\n x: mouseEvent.offsetX ?? mouseEvent.clientX,\n y: mouseEvent.offsetY ?? mouseEvent.clientY,\n };\n }\n }\n else {\n this._canPush = e.type !== \"touchmove\";\n if (canvasEl) {\n const touchEvent = e, lastTouch = touchEvent.touches[touchEvent.touches.length - lengthOffset], canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: lastTouch.clientX - (canvasRect.left ?? minCoordinate),\n y: lastTouch.clientY - (canvasRect.top ?? minCoordinate),\n };\n }\n }\n const pxRatio = container.retina.pixelRatio;\n if (pos) {\n pos.x *= pxRatio;\n pos.y *= pxRatio;\n }\n interactivity.mouse.position = pos;\n interactivity.status = mouseMoveEvent;\n };\n this._touchEnd = e => {\n const evt = e, touches = Array.from(evt.changedTouches);\n for (const touch of touches) {\n this._touches.delete(touch.identifier);\n }\n this._mouseTouchFinish();\n };\n this._touchEndClick = e => {\n const evt = e, touches = Array.from(evt.changedTouches);\n for (const touch of touches) {\n this._touches.delete(touch.identifier);\n }\n this._mouseTouchClick(e);\n };\n this._touchStart = e => {\n const evt = e, touches = Array.from(evt.changedTouches);\n for (const touch of touches) {\n this._touches.set(touch.identifier, performance.now());\n }\n this._mouseTouchMove(e);\n };\n this._canPush = true;\n this._touches = new Map();\n this._handlers = {\n mouseDown: () => this._mouseDown(),\n mouseLeave: () => this._mouseTouchFinish(),\n mouseMove: (e) => this._mouseTouchMove(e),\n mouseUp: (e) => this._mouseTouchClick(e),\n touchStart: (e) => this._touchStart(e),\n touchMove: (e) => this._mouseTouchMove(e),\n touchEnd: (e) => this._touchEnd(e),\n touchCancel: (e) => this._touchEnd(e),\n touchEndClick: (e) => this._touchEndClick(e),\n visibilityChange: () => this._handleVisibilityChange(),\n themeChange: (e) => this._handleThemeChange(e),\n oldThemeChange: (e) => this._handleThemeChange(e),\n resize: () => {\n this._handleWindowResize();\n },\n };\n }\n addListeners() {\n this._manageListeners(true);\n }\n removeListeners() {\n this._manageListeners(false);\n }\n}\n", + "export var EventType;\n(function (EventType) {\n EventType[\"configAdded\"] = \"configAdded\";\n EventType[\"containerInit\"] = \"containerInit\";\n EventType[\"particlesSetup\"] = \"particlesSetup\";\n EventType[\"containerStarted\"] = \"containerStarted\";\n EventType[\"containerStopped\"] = \"containerStopped\";\n EventType[\"containerDestroyed\"] = \"containerDestroyed\";\n EventType[\"containerPaused\"] = \"containerPaused\";\n EventType[\"containerPlay\"] = \"containerPlay\";\n EventType[\"containerBuilt\"] = \"containerBuilt\";\n EventType[\"particleAdded\"] = \"particleAdded\";\n EventType[\"particleDestroyed\"] = \"particleDestroyed\";\n EventType[\"particleRemoved\"] = \"particleRemoved\";\n})(EventType || (EventType = {}));\n", + "import { isArray, isNull, isString } from \"../../Utils/TypeUtils.js\";\nexport class OptionsColor {\n constructor() {\n this.value = \"\";\n }\n static create(source, data) {\n const color = new OptionsColor();\n color.load(source);\n if (data !== undefined) {\n if (isString(data) || isArray(data)) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (!isNull(data.value)) {\n this.value = data.value;\n }\n }\n}\n", + "import { OptionsColor } from \"../OptionsColor.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class Background {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"\";\n this.image = \"\";\n this.position = \"\";\n this.repeat = \"\";\n this.size = \"\";\n this.opacity = 1;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n if (data.position !== undefined) {\n this.position = data.position;\n }\n if (data.repeat !== undefined) {\n this.repeat = data.repeat;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n", + "import { OptionsColor } from \"../OptionsColor.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class BackgroundMaskCover {\n constructor() {\n this.opacity = 1;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n", + "import { isNull, isString } from \"../../../Utils/TypeUtils.js\";\nimport { BackgroundMaskCover } from \"./BackgroundMaskCover.js\";\nexport class BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.composite !== undefined) {\n this.composite = data.composite;\n }\n if (data.cover !== undefined) {\n const cover = data.cover, color = (isString(data.cover) ? { color: data.cover } : data.cover);\n this.cover.load(cover.color !== undefined || cover.image !== undefined ? cover : { color: color });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n", + "import { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class FullScreen {\n constructor() {\n this.enable = true;\n this.zIndex = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.zIndex !== undefined) {\n this.zIndex = data.zIndex;\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ClickEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n }\n}\n", + "export var DivType;\n(function (DivType) {\n DivType[\"circle\"] = \"circle\";\n DivType[\"rectangle\"] = \"rectangle\";\n})(DivType || (DivType = {}));\n", + "import { DivType } from \"../../../../Enums/Types/DivType.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class DivEvent {\n constructor() {\n this.selectors = [];\n this.enable = false;\n this.mode = [];\n this.type = DivType.circle;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Parallax {\n constructor() {\n this.enable = false;\n this.force = 2;\n this.smooth = 10;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.force !== undefined) {\n this.force = data.force;\n }\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n }\n}\n", + "import { Parallax } from \"./Parallax.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class HoverEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n this.parallax = new Parallax();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.parallax.load(data.parallax);\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ResizeEvent {\n constructor() {\n this.delay = 0.5;\n this.enable = true;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n", + "import { ClickEvent } from \"./ClickEvent.js\";\nimport { DivEvent } from \"./DivEvent.js\";\nimport { HoverEvent } from \"./HoverEvent.js\";\nimport { ResizeEvent } from \"./ResizeEvent.js\";\nimport { executeOnSingleOrMultiple } from \"../../../../Utils/Utils.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Events {\n constructor() {\n this.onClick = new ClickEvent();\n this.onDiv = new DivEvent();\n this.onHover = new HoverEvent();\n this.resize = new ResizeEvent();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n this.onClick.load(data.onClick);\n const onDiv = data.onDiv;\n if (onDiv !== undefined) {\n this.onDiv = executeOnSingleOrMultiple(onDiv, t => {\n const tmp = new DivEvent();\n tmp.load(t);\n return tmp;\n });\n }\n this.onHover.load(data.onHover);\n this.resize.load(data.resize);\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Modes {\n constructor(engine, container) {\n this._engine = engine;\n this._container = container;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (!this._container) {\n return;\n }\n const interactors = this._engine.interactors.get(this._container);\n if (!interactors) {\n return;\n }\n for (const interactor of interactors) {\n if (!interactor.loadModeOptions) {\n continue;\n }\n interactor.loadModeOptions(this, data);\n }\n }\n}\n", + "import { Events } from \"./Events/Events.js\";\nimport { InteractivityDetect } from \"../../../Enums/InteractivityDetect.js\";\nimport { Modes } from \"./Modes/Modes.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class Interactivity {\n constructor(engine, container) {\n this.detectsOn = InteractivityDetect.window;\n this.events = new Events();\n this.modes = new Modes(engine, container);\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n const detectsOn = data.detectsOn;\n if (detectsOn !== undefined) {\n this.detectsOn = detectsOn;\n }\n this.events.load(data.events);\n this.modes.load(data.modes);\n }\n}\n", + "import { PixelMode } from \"../../Enums/Modes/PixelMode.js\";\nimport { deepExtend } from \"../../Utils/Utils.js\";\nimport { isNull } from \"../../Utils/TypeUtils.js\";\nimport { manualDefaultPosition } from \"../../Core/Utils/Constants.js\";\nexport class ManualParticle {\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.position) {\n this.position = {\n x: data.position.x ?? manualDefaultPosition,\n y: data.position.y ?? manualDefaultPosition,\n mode: data.position.mode ?? PixelMode.percent,\n };\n }\n if (data.options) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n", + "export var ResponsiveMode;\n(function (ResponsiveMode) {\n ResponsiveMode[\"screen\"] = \"screen\";\n ResponsiveMode[\"canvas\"] = \"canvas\";\n})(ResponsiveMode || (ResponsiveMode = {}));\n", + "import { ResponsiveMode } from \"../../Enums/Modes/ResponsiveMode.js\";\nimport { deepExtend } from \"../../Utils/Utils.js\";\nimport { isNull } from \"../../Utils/TypeUtils.js\";\nexport class Responsive {\n constructor() {\n this.maxWidth = Infinity;\n this.options = {};\n this.mode = ResponsiveMode.canvas;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (!isNull(data.maxWidth)) {\n this.maxWidth = data.maxWidth;\n }\n if (!isNull(data.mode)) {\n if (data.mode === ResponsiveMode.screen) {\n this.mode = ResponsiveMode.screen;\n }\n else {\n this.mode = ResponsiveMode.canvas;\n }\n }\n if (!isNull(data.options)) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n", + "export var ThemeMode;\n(function (ThemeMode) {\n ThemeMode[\"any\"] = \"any\";\n ThemeMode[\"dark\"] = \"dark\";\n ThemeMode[\"light\"] = \"light\";\n})(ThemeMode || (ThemeMode = {}));\n", + "import { ThemeMode } from \"../../../Enums/Modes/ThemeMode.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class ThemeDefault {\n constructor() {\n this.auto = false;\n this.mode = ThemeMode.any;\n this.value = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.auto !== undefined) {\n this.auto = data.auto;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n", + "import { ThemeDefault } from \"./ThemeDefault.js\";\nimport { deepExtend } from \"../../../Utils/Utils.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class Theme {\n constructor() {\n this.name = \"\";\n this.default = new ThemeDefault();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n this.default.load(data.default);\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n", + "import { AnimationMode } from \"../../Enums/Modes/AnimationMode.js\";\nimport { StartValueType } from \"../../Enums/Types/StartValueType.js\";\nimport { isNull } from \"../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../Utils/NumberUtils.js\";\nexport class AnimationOptions {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 1;\n this.decay = 0;\n this.delay = 0;\n this.sync = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.delay !== undefined) {\n this.delay = setRangeValue(data.delay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexport class RangedAnimationOptions extends AnimationOptions {\n constructor() {\n super();\n this.mode = AnimationMode.auto;\n this.startValue = StartValueType.random;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n }\n}\n", + "import { AnimationOptions } from \"./AnimationOptions.js\";\nimport { isNull } from \"../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../Utils/NumberUtils.js\";\nexport class ColorAnimation extends AnimationOptions {\n constructor() {\n super();\n this.offset = 0;\n this.sync = true;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n }\n}\n", + "import { ColorAnimation } from \"./ColorAnimation.js\";\nimport { isNull } from \"../../Utils/TypeUtils.js\";\nexport class HslAnimation {\n constructor() {\n this.h = new ColorAnimation();\n this.s = new ColorAnimation();\n this.l = new ColorAnimation();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n this.h.load(data.h);\n this.s.load(data.s);\n this.l.load(data.l);\n }\n}\n", + "import { isArray, isNull, isString } from \"../../Utils/TypeUtils.js\";\nimport { HslAnimation } from \"./HslAnimation.js\";\nimport { OptionsColor } from \"./OptionsColor.js\";\nexport class AnimatableColor extends OptionsColor {\n constructor() {\n super();\n this.animation = new HslAnimation();\n }\n static create(source, data) {\n const color = new AnimatableColor();\n color.load(source);\n if (data !== undefined) {\n if (isString(data) || isArray(data)) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n const colorAnimation = data.animation;\n if (colorAnimation !== undefined) {\n if (colorAnimation.enable !== undefined) {\n this.animation.h.load(colorAnimation);\n }\n else {\n this.animation.load(data.animation);\n }\n }\n }\n}\n", + "export var CollisionMode;\n(function (CollisionMode) {\n CollisionMode[\"absorb\"] = \"absorb\";\n CollisionMode[\"bounce\"] = \"bounce\";\n CollisionMode[\"destroy\"] = \"destroy\";\n})(CollisionMode || (CollisionMode = {}));\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class CollisionsAbsorb {\n constructor() {\n this.speed = 2;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class CollisionsOverlap {\n constructor() {\n this.enable = true;\n this.retries = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.retries !== undefined) {\n this.retries = data.retries;\n }\n }\n}\n", + "import { AnimationOptions, RangedAnimationOptions } from \"./AnimationOptions.js\";\nimport { isNull } from \"../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../Utils/NumberUtils.js\";\nexport class ValueWithRandom {\n constructor() {\n this.value = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (!isNull(data.value)) {\n this.value = setRangeValue(data.value);\n }\n }\n}\nexport class AnimationValueWithRandom extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new AnimationOptions();\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n const animation = data.animation;\n if (animation !== undefined) {\n this.animation.load(animation);\n }\n }\n}\nexport class RangedAnimationValueWithRandom extends AnimationValueWithRandom {\n constructor() {\n super();\n this.animation = new RangedAnimationOptions();\n }\n load(data) {\n super.load(data);\n }\n}\n", + "import { ValueWithRandom } from \"../../ValueWithRandom.js\";\nexport class ParticlesBounceFactor extends ValueWithRandom {\n constructor() {\n super();\n this.value = 1;\n }\n}\n", + "import { ParticlesBounceFactor } from \"./ParticlesBounceFactor.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ParticlesBounce {\n constructor() {\n this.horizontal = new ParticlesBounceFactor();\n this.vertical = new ParticlesBounceFactor();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n this.horizontal.load(data.horizontal);\n this.vertical.load(data.vertical);\n }\n}\n", + "import { CollisionMode } from \"../../../../Enums/Modes/CollisionMode.js\";\nimport { CollisionsAbsorb } from \"./CollisionsAbsorb.js\";\nimport { CollisionsOverlap } from \"./CollisionsOverlap.js\";\nimport { ParticlesBounce } from \"../Bounce/ParticlesBounce.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils.js\";\nexport class Collisions {\n constructor() {\n this.absorb = new CollisionsAbsorb();\n this.bounce = new ParticlesBounce();\n this.enable = false;\n this.maxSpeed = 50;\n this.mode = CollisionMode.bounce;\n this.overlap = new CollisionsOverlap();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n this.absorb.load(data.absorb);\n this.bounce.load(data.bounce);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = setRangeValue(data.maxSpeed);\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.overlap.load(data.overlap);\n }\n}\n", + "import { deepExtend } from \"../../../../Utils/Utils.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Effect {\n constructor() {\n this.close = true;\n this.fill = true;\n this.options = {};\n this.type = [];\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n const options = data.options;\n if (options !== undefined) {\n for (const effect in options) {\n const item = options[effect];\n if (item) {\n this.options[effect] = deepExtend(this.options[effect] ?? {}, item);\n }\n }\n }\n if (data.close !== undefined) {\n this.close = data.close;\n }\n if (data.fill !== undefined) {\n this.fill = data.fill;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils.js\";\nexport class MoveAngle {\n constructor() {\n this.offset = 0;\n this.value = 90;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils.js\";\nexport class MoveAttract {\n constructor() {\n this.distance = 200;\n this.enable = false;\n this.rotate = {\n x: 3000,\n y: 3000,\n };\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.rotate) {\n const rotateX = data.rotate.x;\n if (rotateX !== undefined) {\n this.rotate.x = rotateX;\n }\n const rotateY = data.rotate.y;\n if (rotateY !== undefined) {\n this.rotate.y = rotateY;\n }\n }\n }\n}\n", + "import { PixelMode } from \"../../../../Enums/Modes/PixelMode.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class MoveCenter {\n constructor() {\n this.x = 50;\n this.y = 50;\n this.mode = PixelMode.percent;\n this.radius = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.x !== undefined) {\n this.x = data.x;\n }\n if (data.y !== undefined) {\n this.y = data.y;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils.js\";\nexport class MoveGravity {\n constructor() {\n this.acceleration = 9.81;\n this.enable = false;\n this.inverse = false;\n this.maxSpeed = 50;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.inverse !== undefined) {\n this.inverse = data.inverse;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = setRangeValue(data.maxSpeed);\n }\n }\n}\n", + "import { ValueWithRandom } from \"../../../ValueWithRandom.js\";\nimport { deepExtend } from \"../../../../../Utils/Utils.js\";\nimport { isNull } from \"../../../../../Utils/TypeUtils.js\";\nexport class MovePath {\n constructor() {\n this.clamp = true;\n this.delay = new ValueWithRandom();\n this.enable = false;\n this.options = {};\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.clamp !== undefined) {\n this.clamp = data.clamp;\n }\n this.delay.load(data.delay);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.generator = data.generator;\n if (data.options) {\n this.options = deepExtend(this.options, data.options);\n }\n }\n}\n", + "import { OptionsColor } from \"../../OptionsColor.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class MoveTrailFill {\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n }\n}\n", + "import { MoveTrailFill } from \"./MoveTrailFill.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class MoveTrail {\n constructor() {\n this.enable = false;\n this.length = 10;\n this.fill = new MoveTrailFill();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.fill !== undefined) {\n this.fill.load(data.fill);\n }\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\n", + "export var OutMode;\n(function (OutMode) {\n OutMode[\"bounce\"] = \"bounce\";\n OutMode[\"none\"] = \"none\";\n OutMode[\"out\"] = \"out\";\n OutMode[\"destroy\"] = \"destroy\";\n OutMode[\"split\"] = \"split\";\n})(OutMode || (OutMode = {}));\n", + "import { OutMode } from \"../../../../Enums/Modes/OutMode.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class OutModes {\n constructor() {\n this.default = OutMode.out;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n this.bottom = data.bottom ?? data.default;\n this.left = data.left ?? data.default;\n this.right = data.right ?? data.default;\n this.top = data.top ?? data.default;\n }\n}\n", + "import { deepExtend } from \"../../../../Utils/Utils.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils.js\";\nexport class Spin {\n constructor() {\n this.acceleration = 0;\n this.enable = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.position) {\n this.position = deepExtend({}, data.position);\n }\n }\n}\n", + "import { MoveDirection } from \"../../../../Enums/Directions/MoveDirection.js\";\nimport { isNull, isNumber, isObject } from \"../../../../Utils/TypeUtils.js\";\nimport { MoveAngle } from \"./MoveAngle.js\";\nimport { MoveAttract } from \"./MoveAttract.js\";\nimport { MoveCenter } from \"./MoveCenter.js\";\nimport { MoveGravity } from \"./MoveGravity.js\";\nimport { MovePath } from \"./Path/MovePath.js\";\nimport { MoveTrail } from \"./MoveTrail.js\";\nimport { OutModes } from \"./OutModes.js\";\nimport { Spin } from \"./Spin.js\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils.js\";\nexport class Move {\n constructor() {\n this.angle = new MoveAngle();\n this.attract = new MoveAttract();\n this.center = new MoveCenter();\n this.decay = 0;\n this.distance = {};\n this.direction = MoveDirection.none;\n this.drift = 0;\n this.enable = false;\n this.gravity = new MoveGravity();\n this.path = new MovePath();\n this.outModes = new OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.spin = new Spin();\n this.straight = false;\n this.trail = new MoveTrail();\n this.vibrate = false;\n this.warp = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n this.angle.load(isNumber(data.angle) ? { value: data.angle } : data.angle);\n this.attract.load(data.attract);\n this.center.load(data.center);\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.distance !== undefined) {\n this.distance = isNumber(data.distance)\n ? {\n horizontal: data.distance,\n vertical: data.distance,\n }\n : { ...data.distance };\n }\n if (data.drift !== undefined) {\n this.drift = setRangeValue(data.drift);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n const outModes = data.outModes;\n if (outModes !== undefined) {\n if (isObject(outModes)) {\n this.outModes.load(outModes);\n }\n else {\n this.outModes.load({\n default: outModes,\n });\n }\n }\n this.path.load(data.path);\n if (data.random !== undefined) {\n this.random = data.random;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n this.spin.load(data.spin);\n if (data.straight !== undefined) {\n this.straight = data.straight;\n }\n this.trail.load(data.trail);\n if (data.vibrate !== undefined) {\n this.vibrate = data.vibrate;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n", + "import { DestroyType } from \"../../../../Enums/Types/DestroyType.js\";\nimport { RangedAnimationOptions } from \"../../AnimationOptions.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class OpacityAnimation extends RangedAnimationOptions {\n constructor() {\n super();\n this.destroy = DestroyType.none;\n this.speed = 2;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n }\n}\n", + "import { OpacityAnimation } from \"./OpacityAnimation.js\";\nimport { RangedAnimationValueWithRandom } from \"../../ValueWithRandom.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Opacity extends RangedAnimationValueWithRandom {\n constructor() {\n super();\n this.animation = new OpacityAnimation();\n this.value = 1;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n super.load(data);\n const animation = data.animation;\n if (animation !== undefined) {\n this.animation.load(animation);\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ParticlesDensity {\n constructor() {\n this.enable = false;\n this.width = 1920;\n this.height = 1080;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const width = data.width;\n if (width !== undefined) {\n this.width = width;\n }\n const height = data.height;\n if (height !== undefined) {\n this.height = height;\n }\n }\n}\n", + "export var LimitMode;\n(function (LimitMode) {\n LimitMode[\"delete\"] = \"delete\";\n LimitMode[\"wait\"] = \"wait\";\n})(LimitMode || (LimitMode = {}));\n", + "import { LimitMode } from \"../../../../Enums/Modes/LimitMode.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ParticlesNumberLimit {\n constructor() {\n this.mode = LimitMode.delete;\n this.value = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n", + "import { ParticlesDensity } from \"./ParticlesDensity.js\";\nimport { ParticlesNumberLimit } from \"./ParticlesNumberLimit.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ParticlesNumber {\n constructor() {\n this.density = new ParticlesDensity();\n this.limit = new ParticlesNumberLimit();\n this.value = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n this.density.load(data.density);\n this.limit.load(data.limit);\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n", + "import { OptionsColor } from \"../OptionsColor.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class Shadow {\n constructor() {\n this.blur = 0;\n this.color = new OptionsColor();\n this.enable = false;\n this.offset = {\n x: 0,\n y: 0,\n };\n this.color.value = \"#000\";\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset === undefined) {\n return;\n }\n if (data.offset.x !== undefined) {\n this.offset.x = data.offset.x;\n }\n if (data.offset.y !== undefined) {\n this.offset.y = data.offset.y;\n }\n }\n}\n", + "import { deepExtend } from \"../../../../Utils/Utils.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Shape {\n constructor() {\n this.close = true;\n this.fill = true;\n this.options = {};\n this.type = \"circle\";\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n const options = data.options;\n if (options !== undefined) {\n for (const shape in options) {\n const item = options[shape];\n if (item) {\n this.options[shape] = deepExtend(this.options[shape] ?? {}, item);\n }\n }\n }\n if (data.close !== undefined) {\n this.close = data.close;\n }\n if (data.fill !== undefined) {\n this.fill = data.fill;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n", + "import { DestroyType } from \"../../../../Enums/Types/DestroyType.js\";\nimport { RangedAnimationOptions } from \"../../AnimationOptions.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class SizeAnimation extends RangedAnimationOptions {\n constructor() {\n super();\n this.destroy = DestroyType.none;\n this.speed = 5;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n }\n}\n", + "import { RangedAnimationValueWithRandom } from \"../../ValueWithRandom.js\";\nimport { SizeAnimation } from \"./SizeAnimation.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Size extends RangedAnimationValueWithRandom {\n constructor() {\n super();\n this.animation = new SizeAnimation();\n this.value = 3;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n const animation = data.animation;\n if (animation !== undefined) {\n this.animation.load(animation);\n }\n }\n}\n", + "import { AnimatableColor } from \"../AnimatableColor.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../../Utils/NumberUtils.js\";\nexport class Stroke {\n constructor() {\n this.width = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = AnimatableColor.create(this.color, data.color);\n }\n if (data.width !== undefined) {\n this.width = setRangeValue(data.width);\n }\n if (data.opacity !== undefined) {\n this.opacity = setRangeValue(data.opacity);\n }\n }\n}\n", + "import { ValueWithRandom } from \"../../ValueWithRandom.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ZIndex extends ValueWithRandom {\n constructor() {\n super();\n this.opacityRate = 1;\n this.sizeRate = 1;\n this.velocityRate = 1;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.opacityRate !== undefined) {\n this.opacityRate = data.opacityRate;\n }\n if (data.sizeRate !== undefined) {\n this.sizeRate = data.sizeRate;\n }\n if (data.velocityRate !== undefined) {\n this.velocityRate = data.velocityRate;\n }\n }\n}\n", + "import { deepExtend, executeOnSingleOrMultiple } from \"../../../Utils/Utils.js\";\nimport { AnimatableColor } from \"../AnimatableColor.js\";\nimport { Collisions } from \"./Collisions/Collisions.js\";\nimport { Effect } from \"./Effect/Effect.js\";\nimport { Move } from \"./Move/Move.js\";\nimport { Opacity } from \"./Opacity/Opacity.js\";\nimport { ParticlesBounce } from \"./Bounce/ParticlesBounce.js\";\nimport { ParticlesNumber } from \"./Number/ParticlesNumber.js\";\nimport { Shadow } from \"./Shadow.js\";\nimport { Shape } from \"./Shape/Shape.js\";\nimport { Size } from \"./Size/Size.js\";\nimport { Stroke } from \"./Stroke.js\";\nimport { ZIndex } from \"./ZIndex/ZIndex.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class ParticlesOptions {\n constructor(engine, container) {\n this._engine = engine;\n this._container = container;\n this.bounce = new ParticlesBounce();\n this.collisions = new Collisions();\n this.color = new AnimatableColor();\n this.color.value = \"#fff\";\n this.effect = new Effect();\n this.groups = {};\n this.move = new Move();\n this.number = new ParticlesNumber();\n this.opacity = new Opacity();\n this.reduceDuplicates = false;\n this.shadow = new Shadow();\n this.shape = new Shape();\n this.size = new Size();\n this.stroke = new Stroke();\n this.zIndex = new ZIndex();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.groups !== undefined) {\n for (const group of Object.keys(data.groups)) {\n if (!Object.hasOwn(data.groups, group)) {\n continue;\n }\n const item = data.groups[group];\n if (item !== undefined) {\n this.groups[group] = deepExtend(this.groups[group] ?? {}, item);\n }\n }\n }\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.bounce.load(data.bounce);\n this.color.load(AnimatableColor.create(this.color, data.color));\n this.effect.load(data.effect);\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.shadow.load(data.shadow);\n this.zIndex.load(data.zIndex);\n this.collisions.load(data.collisions);\n if (data.interactivity !== undefined) {\n this.interactivity = deepExtend({}, data.interactivity);\n }\n const strokeToLoad = data.stroke;\n if (strokeToLoad) {\n this.stroke = executeOnSingleOrMultiple(strokeToLoad, t => {\n const tmp = new Stroke();\n tmp.load(t);\n return tmp;\n });\n }\n if (this._container) {\n const updaters = this._engine.updaters.get(this._container);\n if (updaters) {\n for (const updater of updaters) {\n if (updater.loadOptions) {\n updater.loadOptions(this, data);\n }\n }\n }\n const interactors = this._engine.interactors.get(this._container);\n if (interactors) {\n for (const interactor of interactors) {\n if (interactor.loadParticlesOptions) {\n interactor.loadParticlesOptions(this, data);\n }\n }\n }\n }\n }\n}\n", + "import { ParticlesOptions } from \"../Options/Classes/Particles/ParticlesOptions.js\";\nexport function loadOptions(options, ...sourceOptionsArr) {\n for (const sourceOptions of sourceOptionsArr) {\n options.load(sourceOptions);\n }\n}\nexport function loadParticlesOptions(engine, container, ...sourceOptionsArr) {\n const options = new ParticlesOptions(engine, container);\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\n", + "import { deepExtend, executeOnSingleOrMultiple, safeMatchMedia } from \"../../Utils/Utils.js\";\nimport { isBoolean, isNull } from \"../../Utils/TypeUtils.js\";\nimport { Background } from \"./Background/Background.js\";\nimport { BackgroundMask } from \"./BackgroundMask/BackgroundMask.js\";\nimport { FullScreen } from \"./FullScreen/FullScreen.js\";\nimport { Interactivity } from \"./Interactivity/Interactivity.js\";\nimport { ManualParticle } from \"./ManualParticle.js\";\nimport { Responsive } from \"./Responsive.js\";\nimport { ResponsiveMode } from \"../../Enums/Modes/ResponsiveMode.js\";\nimport { Theme } from \"./Theme/Theme.js\";\nimport { ThemeMode } from \"../../Enums/Modes/ThemeMode.js\";\nimport { loadParticlesOptions } from \"../../Utils/OptionsUtils.js\";\nimport { setRangeValue } from \"../../Utils/NumberUtils.js\";\nexport class Options {\n constructor(engine, container) {\n this._findDefaultTheme = mode => {\n return (this.themes.find(theme => theme.default.value && theme.default.mode === mode) ??\n this.themes.find(theme => theme.default.value && theme.default.mode === ThemeMode.any));\n };\n this._importPreset = preset => {\n this.load(this._engine.getPreset(preset));\n };\n this._engine = engine;\n this._container = container;\n this.autoPlay = true;\n this.background = new Background();\n this.backgroundMask = new BackgroundMask();\n this.clear = true;\n this.defaultThemes = {};\n this.delay = 0;\n this.fullScreen = new FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 120;\n this.interactivity = new Interactivity(engine, container);\n this.manualParticles = [];\n this.particles = loadParticlesOptions(this._engine, this._container);\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.responsive = [];\n this.smooth = false;\n this.style = {};\n this.themes = [];\n this.zLayers = 100;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.preset !== undefined) {\n executeOnSingleOrMultiple(data.preset, preset => this._importPreset(preset));\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n if (data.clear !== undefined) {\n this.clear = data.clear;\n }\n if (data.key !== undefined) {\n this.key = data.key;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n if (data.delay !== undefined) {\n this.delay = setRangeValue(data.delay);\n }\n const detectRetina = data.detectRetina;\n if (detectRetina !== undefined) {\n this.detectRetina = detectRetina;\n }\n if (data.duration !== undefined) {\n this.duration = setRangeValue(data.duration);\n }\n const fpsLimit = data.fpsLimit;\n if (fpsLimit !== undefined) {\n this.fpsLimit = fpsLimit;\n }\n if (data.pauseOnBlur !== undefined) {\n this.pauseOnBlur = data.pauseOnBlur;\n }\n if (data.pauseOnOutsideViewport !== undefined) {\n this.pauseOnOutsideViewport = data.pauseOnOutsideViewport;\n }\n if (data.zLayers !== undefined) {\n this.zLayers = data.zLayers;\n }\n this.background.load(data.background);\n const fullScreen = data.fullScreen;\n if (isBoolean(fullScreen)) {\n this.fullScreen.enable = fullScreen;\n }\n else {\n this.fullScreen.load(fullScreen);\n }\n this.backgroundMask.load(data.backgroundMask);\n this.interactivity.load(data.interactivity);\n if (data.manualParticles) {\n this.manualParticles = data.manualParticles.map(t => {\n const tmp = new ManualParticle();\n tmp.load(t);\n return tmp;\n });\n }\n this.particles.load(data.particles);\n this.style = deepExtend(this.style, data.style);\n this._engine.loadOptions(this, data);\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n const interactors = this._engine.interactors.get(this._container);\n if (interactors) {\n for (const interactor of interactors) {\n if (interactor.loadOptions) {\n interactor.loadOptions(this, data);\n }\n }\n }\n if (data.responsive !== undefined) {\n for (const responsive of data.responsive) {\n const optResponsive = new Responsive();\n optResponsive.load(responsive);\n this.responsive.push(optResponsive);\n }\n }\n this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);\n if (data.themes !== undefined) {\n for (const theme of data.themes) {\n const existingTheme = this.themes.find(t => t.name === theme.name);\n if (!existingTheme) {\n const optTheme = new Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n }\n else {\n existingTheme.load(theme);\n }\n }\n }\n this.defaultThemes.dark = this._findDefaultTheme(ThemeMode.dark)?.name;\n this.defaultThemes.light = this._findDefaultTheme(ThemeMode.light)?.name;\n }\n setResponsive(width, pxRatio, defaultOptions) {\n this.load(defaultOptions);\n const responsiveOptions = this.responsive.find(t => t.mode === ResponsiveMode.screen && screen ? t.maxWidth > screen.availWidth : t.maxWidth * pxRatio > width);\n this.load(responsiveOptions?.options);\n return responsiveOptions?.maxWidth;\n }\n setTheme(name) {\n if (name) {\n const chosenTheme = this.themes.find(theme => theme.name === name);\n if (chosenTheme) {\n this.load(chosenTheme.options);\n }\n }\n else {\n const mediaMatch = safeMatchMedia(\"(prefers-color-scheme: dark)\"), clientDarkMode = mediaMatch?.matches, defaultTheme = this._findDefaultTheme(clientDarkMode ? ThemeMode.dark : ThemeMode.light);\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n}\n", + "export var InteractorType;\n(function (InteractorType) {\n InteractorType[\"external\"] = \"external\";\n InteractorType[\"particles\"] = \"particles\";\n})(InteractorType || (InteractorType = {}));\n", + "import { InteractorType } from \"../../Enums/Types/InteractorType.js\";\nexport class InteractionManager {\n constructor(engine, container) {\n this.container = container;\n this._engine = engine;\n this._interactors = [];\n this._externalInteractors = [];\n this._particleInteractors = [];\n }\n externalInteract(delta) {\n for (const interactor of this._externalInteractors) {\n if (interactor.isEnabled()) {\n interactor.interact(delta);\n }\n }\n }\n handleClickMode(mode) {\n for (const interactor of this._externalInteractors) {\n interactor.handleClickMode?.(mode);\n }\n }\n async init() {\n this._interactors = await this._engine.getInteractors(this.container, true);\n this._externalInteractors = [];\n this._particleInteractors = [];\n for (const interactor of this._interactors) {\n switch (interactor.type) {\n case InteractorType.external:\n this._externalInteractors.push(interactor);\n break;\n case InteractorType.particles:\n this._particleInteractors.push(interactor);\n break;\n }\n interactor.init();\n }\n }\n particlesInteract(particle, delta) {\n for (const interactor of this._externalInteractors) {\n interactor.clear(particle, delta);\n }\n for (const interactor of this._particleInteractors) {\n if (interactor.isEnabled(particle)) {\n interactor.interact(particle, delta);\n }\n }\n }\n reset(particle) {\n for (const interactor of this._externalInteractors) {\n if (interactor.isEnabled()) {\n interactor.reset(particle);\n }\n }\n for (const interactor of this._particleInteractors) {\n if (interactor.isEnabled(particle)) {\n interactor.reset(particle);\n }\n }\n }\n}\n", + "export var ParticleOutType;\n(function (ParticleOutType) {\n ParticleOutType[\"normal\"] = \"normal\";\n ParticleOutType[\"inside\"] = \"inside\";\n ParticleOutType[\"outside\"] = \"outside\";\n})(ParticleOutType || (ParticleOutType = {}));\n", + "import { Vector, Vector3d } from \"./Utils/Vectors.js\";\nimport { calcExactPositionOrRandomFromSize, clamp, degToRad, getDistance, getParticleBaseVelocity, getParticleDirectionAngle, getRandom, getRangeValue, randomInRange, setRangeValue, } from \"../Utils/NumberUtils.js\";\nimport { decayOffset, defaultRadius, defaultRetryCount, double, errorPrefix, half, millisecondsToSeconds, minRetries, minZ, none, randomColorValue, rollFactor, squareExp, tryCountIncrement, } from \"./Utils/Constants.js\";\nimport { deepExtend, getPosition, initParticleNumericAnimationValue, isInArray, itemFromSingleOrMultiple, } from \"../Utils/Utils.js\";\nimport { getHslFromAnimation, rangeColorToRgb } from \"../Utils/ColorUtils.js\";\nimport { EventType } from \"../Enums/Types/EventType.js\";\nimport { Interactivity } from \"../Options/Classes/Interactivity/Interactivity.js\";\nimport { MoveDirection } from \"../Enums/Directions/MoveDirection.js\";\nimport { OutMode } from \"../Enums/Modes/OutMode.js\";\nimport { ParticleOutType } from \"../Enums/Types/ParticleOutType.js\";\nimport { PixelMode } from \"../Enums/Modes/PixelMode.js\";\nimport { alterHsl } from \"../Utils/CanvasUtils.js\";\nimport { loadParticlesOptions } from \"../Utils/OptionsUtils.js\";\nfunction loadEffectData(effect, effectOptions, id, reduceDuplicates) {\n const effectData = effectOptions.options[effect];\n if (!effectData) {\n return;\n }\n return deepExtend({\n close: effectOptions.close,\n fill: effectOptions.fill,\n }, itemFromSingleOrMultiple(effectData, id, reduceDuplicates));\n}\nfunction loadShapeData(shape, shapeOptions, id, reduceDuplicates) {\n const shapeData = shapeOptions.options[shape];\n if (!shapeData) {\n return;\n }\n return deepExtend({\n close: shapeOptions.close,\n fill: shapeOptions.fill,\n }, itemFromSingleOrMultiple(shapeData, id, reduceDuplicates));\n}\nfunction fixOutMode(data) {\n if (!isInArray(data.outMode, data.checkModes)) {\n return;\n }\n const diameter = data.radius * double;\n if (data.coord > data.maxCoord - diameter) {\n data.setCb(-data.radius);\n }\n else if (data.coord < diameter) {\n data.setCb(data.radius);\n }\n}\nexport class Particle {\n constructor(engine, container) {\n this.container = container;\n this._calcPosition = (container, position, zIndex, tryCount = defaultRetryCount) => {\n for (const plugin of container.plugins.values()) {\n const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined;\n if (pluginPos) {\n return Vector3d.create(pluginPos.x, pluginPos.y, zIndex);\n }\n }\n const canvasSize = container.canvas.size, exactPosition = calcExactPositionOrRandomFromSize({\n size: canvasSize,\n position: position,\n }), pos = Vector3d.create(exactPosition.x, exactPosition.y, zIndex), radius = this.getRadius(), outModes = this.options.move.outModes, fixHorizontal = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [OutMode.bounce],\n coord: pos.x,\n maxCoord: container.canvas.size.width,\n setCb: (value) => (pos.x += value),\n radius,\n });\n }, fixVertical = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [OutMode.bounce],\n coord: pos.y,\n maxCoord: container.canvas.size.height,\n setCb: (value) => (pos.y += value),\n radius,\n });\n };\n fixHorizontal(outModes.left ?? outModes.default);\n fixHorizontal(outModes.right ?? outModes.default);\n fixVertical(outModes.top ?? outModes.default);\n fixVertical(outModes.bottom ?? outModes.default);\n if (this._checkOverlap(pos, tryCount)) {\n return this._calcPosition(container, undefined, zIndex, tryCount + tryCountIncrement);\n }\n return pos;\n };\n this._calculateVelocity = () => {\n const baseVelocity = getParticleBaseVelocity(this.direction), res = baseVelocity.copy(), moveOptions = this.options.move;\n if (moveOptions.direction === MoveDirection.inside || moveOptions.direction === MoveDirection.outside) {\n return res;\n }\n const rad = degToRad(getRangeValue(moveOptions.angle.value)), radOffset = degToRad(getRangeValue(moveOptions.angle.offset)), range = {\n left: radOffset - rad * half,\n right: radOffset + rad * half,\n };\n if (!moveOptions.straight) {\n res.angle += randomInRange(setRangeValue(range.left, range.right));\n }\n if (moveOptions.random && typeof moveOptions.speed === \"number\") {\n res.length *= getRandom();\n }\n return res;\n };\n this._checkOverlap = (pos, tryCount = defaultRetryCount) => {\n const collisionsOptions = this.options.collisions, radius = this.getRadius();\n if (!collisionsOptions.enable) {\n return false;\n }\n const overlapOptions = collisionsOptions.overlap;\n if (overlapOptions.enable) {\n return false;\n }\n const retries = overlapOptions.retries;\n if (retries >= minRetries && tryCount > retries) {\n throw new Error(`${errorPrefix} particle is overlapping and can't be placed`);\n }\n return !!this.container.particles.find(particle => getDistance(pos, particle.position) < radius + particle.getRadius());\n };\n this._getRollColor = color => {\n if (!color || !this.roll || (!this.backColor && !this.roll.alter)) {\n return color;\n }\n const backFactor = this.roll.horizontal && this.roll.vertical ? double * rollFactor : rollFactor, backSum = this.roll.horizontal ? Math.PI * half : none, rolled = Math.floor(((this.roll.angle ?? none) + backSum) / (Math.PI / backFactor)) % double;\n if (!rolled) {\n return color;\n }\n if (this.backColor) {\n return this.backColor;\n }\n if (this.roll.alter) {\n return alterHsl(color, this.roll.alter.type, this.roll.alter.value);\n }\n return color;\n };\n this._initPosition = position => {\n const container = this.container, zIndexValue = getRangeValue(this.options.zIndex.value);\n this.position = this._calcPosition(container, position, clamp(zIndexValue, minZ, container.zLayers));\n this.initialPosition = this.position.copy();\n const canvasSize = container.canvas.size;\n this.moveCenter = {\n ...getPosition(this.options.move.center, canvasSize),\n radius: this.options.move.center.radius ?? defaultRadius,\n mode: this.options.move.center.mode ?? PixelMode.percent,\n };\n this.direction = getParticleDirectionAngle(this.options.move.direction, this.position, this.moveCenter);\n switch (this.options.move.direction) {\n case MoveDirection.inside:\n this.outType = ParticleOutType.inside;\n break;\n case MoveDirection.outside:\n this.outType = ParticleOutType.outside;\n break;\n }\n this.offset = Vector.origin;\n };\n this._engine = engine;\n }\n destroy(override) {\n if (this.unbreakable || this.destroyed) {\n return;\n }\n this.destroyed = true;\n this.bubble.inRange = false;\n this.slow.inRange = false;\n const container = this.container, pathGenerator = this.pathGenerator, shapeDrawer = container.shapeDrawers.get(this.shape);\n shapeDrawer?.particleDestroy?.(this);\n for (const plugin of container.plugins.values()) {\n plugin.particleDestroyed?.(this, override);\n }\n for (const updater of container.particles.updaters) {\n updater.particleDestroyed?.(this, override);\n }\n pathGenerator?.reset(this);\n this._engine.dispatchEvent(EventType.particleDestroyed, {\n container: this.container,\n data: {\n particle: this,\n },\n });\n }\n draw(delta) {\n const container = this.container, canvas = container.canvas;\n for (const plugin of container.plugins.values()) {\n canvas.drawParticlePlugin(plugin, this, delta);\n }\n canvas.drawParticle(this, delta);\n }\n getFillColor() {\n return this._getRollColor(this.bubble.color ?? getHslFromAnimation(this.color));\n }\n getMass() {\n return this.getRadius() ** squareExp * Math.PI * half;\n }\n getPosition() {\n return {\n x: this.position.x + this.offset.x,\n y: this.position.y + this.offset.y,\n z: this.position.z,\n };\n }\n getRadius() {\n return this.bubble.radius ?? this.size.value;\n }\n getStrokeColor() {\n return this._getRollColor(this.bubble.color ?? getHslFromAnimation(this.strokeColor));\n }\n init(id, position, overrideOptions, group) {\n const container = this.container, engine = this._engine;\n this.id = id;\n this.group = group;\n this.effectClose = true;\n this.effectFill = true;\n this.shapeClose = true;\n this.shapeFill = true;\n this.pathRotation = false;\n this.lastPathTime = 0;\n this.destroyed = false;\n this.unbreakable = false;\n this.isRotating = false;\n this.rotation = 0;\n this.misplaced = false;\n this.retina = {\n maxDistance: {},\n };\n this.outType = ParticleOutType.normal;\n this.ignoresResizeRatio = true;\n const pxRatio = container.retina.pixelRatio, mainOptions = container.actualOptions, particlesOptions = loadParticlesOptions(this._engine, container, mainOptions.particles), { reduceDuplicates } = particlesOptions, effectType = particlesOptions.effect.type, shapeType = particlesOptions.shape.type;\n this.effect = itemFromSingleOrMultiple(effectType, this.id, reduceDuplicates);\n this.shape = itemFromSingleOrMultiple(shapeType, this.id, reduceDuplicates);\n const effectOptions = particlesOptions.effect, shapeOptions = particlesOptions.shape;\n if (overrideOptions) {\n if (overrideOptions.effect?.type) {\n const overrideEffectType = overrideOptions.effect.type, effect = itemFromSingleOrMultiple(overrideEffectType, this.id, reduceDuplicates);\n if (effect) {\n this.effect = effect;\n effectOptions.load(overrideOptions.effect);\n }\n }\n if (overrideOptions.shape?.type) {\n const overrideShapeType = overrideOptions.shape.type, shape = itemFromSingleOrMultiple(overrideShapeType, this.id, reduceDuplicates);\n if (shape) {\n this.shape = shape;\n shapeOptions.load(overrideOptions.shape);\n }\n }\n }\n if (this.effect === randomColorValue) {\n const availableEffects = [...this.container.effectDrawers.keys()];\n this.effect = availableEffects[Math.floor(getRandom() * availableEffects.length)];\n }\n if (this.shape === randomColorValue) {\n const availableShapes = [...this.container.shapeDrawers.keys()];\n this.shape = availableShapes[Math.floor(getRandom() * availableShapes.length)];\n }\n this.effectData = loadEffectData(this.effect, effectOptions, this.id, reduceDuplicates);\n this.shapeData = loadShapeData(this.shape, shapeOptions, this.id, reduceDuplicates);\n particlesOptions.load(overrideOptions);\n const effectData = this.effectData;\n if (effectData) {\n particlesOptions.load(effectData.particles);\n }\n const shapeData = this.shapeData;\n if (shapeData) {\n particlesOptions.load(shapeData.particles);\n }\n const interactivity = new Interactivity(engine, container);\n interactivity.load(container.actualOptions.interactivity);\n interactivity.load(particlesOptions.interactivity);\n this.interactivity = interactivity;\n this.effectFill = effectData?.fill ?? particlesOptions.effect.fill;\n this.effectClose = effectData?.close ?? particlesOptions.effect.close;\n this.shapeFill = shapeData?.fill ?? particlesOptions.shape.fill;\n this.shapeClose = shapeData?.close ?? particlesOptions.shape.close;\n this.options = particlesOptions;\n const pathOptions = this.options.move.path;\n this.pathDelay = getRangeValue(pathOptions.delay.value) * millisecondsToSeconds;\n if (pathOptions.generator) {\n this.pathGenerator = this._engine.getPathGenerator(pathOptions.generator);\n if (this.pathGenerator && container.addPath(pathOptions.generator, this.pathGenerator)) {\n this.pathGenerator.init(container);\n }\n }\n container.retina.initParticle(this);\n this.size = initParticleNumericAnimationValue(this.options.size, pxRatio);\n this.bubble = {\n inRange: false,\n };\n this.slow = {\n inRange: false,\n factor: 1,\n };\n this._initPosition(position);\n this.initialVelocity = this._calculateVelocity();\n this.velocity = this.initialVelocity.copy();\n this.moveDecay = decayOffset - getRangeValue(this.options.move.decay);\n const particles = container.particles;\n particles.setLastZIndex(this.position.z);\n this.zIndexFactor = this.position.z / container.zLayers;\n this.sides = 24;\n let effectDrawer = container.effectDrawers.get(this.effect);\n if (!effectDrawer) {\n effectDrawer = this._engine.getEffectDrawer(this.effect);\n if (effectDrawer) {\n container.effectDrawers.set(this.effect, effectDrawer);\n }\n }\n if (effectDrawer?.loadEffect) {\n effectDrawer.loadEffect(this);\n }\n let shapeDrawer = container.shapeDrawers.get(this.shape);\n if (!shapeDrawer) {\n shapeDrawer = this._engine.getShapeDrawer(this.shape);\n if (shapeDrawer) {\n container.shapeDrawers.set(this.shape, shapeDrawer);\n }\n }\n if (shapeDrawer?.loadShape) {\n shapeDrawer.loadShape(this);\n }\n const sideCountFunc = shapeDrawer?.getSidesCount;\n if (sideCountFunc) {\n this.sides = sideCountFunc(this);\n }\n this.spawning = false;\n this.shadowColor = rangeColorToRgb(this._engine, this.options.shadow.color);\n for (const updater of particles.updaters) {\n updater.init(this);\n }\n for (const mover of particles.movers) {\n mover.init?.(this);\n }\n effectDrawer?.particleInit?.(container, this);\n shapeDrawer?.particleInit?.(container, this);\n for (const plugin of container.plugins.values()) {\n plugin.particleCreated?.(this);\n }\n }\n isInsideCanvas() {\n const radius = this.getRadius(), canvasSize = this.container.canvas.size, position = this.position;\n return (position.x >= -radius &&\n position.y >= -radius &&\n position.y <= canvasSize.height + radius &&\n position.x <= canvasSize.width + radius);\n }\n isVisible() {\n return !this.destroyed && !this.spawning && this.isInsideCanvas();\n }\n reset() {\n for (const updater of this.container.particles.updaters) {\n updater.reset?.(this);\n }\n }\n}\n", + "export class Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}\n", + "export var RangeType;\n(function (RangeType) {\n RangeType[\"circle\"] = \"circle\";\n RangeType[\"rectangle\"] = \"rectangle\";\n})(RangeType || (RangeType = {}));\n", + "import { RangeType } from \"../../Types/RangeType.js\";\nimport { getDistance } from \"../../Utils/NumberUtils.js\";\nimport { squareExp } from \"./Constants.js\";\nexport class BaseRange {\n constructor(x, y, type) {\n this.position = {\n x: x,\n y: y,\n };\n this.type = type;\n }\n}\nexport class Circle extends BaseRange {\n constructor(x, y, radius) {\n super(x, y, RangeType.circle);\n this.radius = radius;\n }\n contains(point) {\n return getDistance(point, this.position) <= this.radius;\n }\n intersects(range) {\n const pos1 = this.position, pos2 = range.position, distPos = { x: Math.abs(pos2.x - pos1.x), y: Math.abs(pos2.y - pos1.y) }, r = this.radius;\n if (range instanceof Circle || range.type === RangeType.circle) {\n const circleRange = range, rSum = r + circleRange.radius, dist = Math.sqrt(distPos.x ** squareExp + distPos.y ** squareExp);\n return rSum > dist;\n }\n else if (range instanceof Rectangle || range.type === RangeType.rectangle) {\n const rectRange = range, { width, height } = rectRange.size, edges = Math.pow(distPos.x - width, squareExp) + Math.pow(distPos.y - height, squareExp);\n return (edges <= r ** squareExp ||\n (distPos.x <= r + width && distPos.y <= r + height) ||\n distPos.x <= width ||\n distPos.y <= height);\n }\n return false;\n }\n}\nexport class Rectangle extends BaseRange {\n constructor(x, y, width, height) {\n super(x, y, RangeType.rectangle);\n this.size = {\n height: height,\n width: width,\n };\n }\n contains(point) {\n const w = this.size.width, h = this.size.height, pos = this.position;\n return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h;\n }\n intersects(range) {\n if (range instanceof Circle) {\n return range.intersects(this);\n }\n const w = this.size.width, h = this.size.height, pos1 = this.position, pos2 = range.position, size2 = range instanceof Rectangle ? range.size : { width: 0, height: 0 }, w2 = size2.width, h2 = size2.height;\n return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y;\n }\n}\n", + "import { Circle, Rectangle } from \"./Ranges.js\";\nimport { double, half, subdivideCount } from \"./Constants.js\";\nimport { getDistance } from \"../../Utils/NumberUtils.js\";\nexport class QuadTree {\n constructor(rectangle, capacity) {\n this.rectangle = rectangle;\n this.capacity = capacity;\n this._subdivide = () => {\n const { x, y } = this.rectangle.position, { width, height } = this.rectangle.size, { capacity } = this;\n for (let i = 0; i < subdivideCount; i++) {\n const fixedIndex = i % double;\n this._subs.push(new QuadTree(new Rectangle(x + width * half * fixedIndex, y + height * half * (Math.round(i * half) - fixedIndex), width * half, height * half), capacity));\n }\n this._divided = true;\n };\n this._points = [];\n this._divided = false;\n this._subs = [];\n }\n insert(point) {\n if (!this.rectangle.contains(point.position)) {\n return false;\n }\n if (this._points.length < this.capacity) {\n this._points.push(point);\n return true;\n }\n if (!this._divided) {\n this._subdivide();\n }\n return this._subs.some(sub => sub.insert(point));\n }\n query(range, check) {\n const res = [];\n if (!range.intersects(this.rectangle)) {\n return [];\n }\n for (const p of this._points) {\n if (!range.contains(p.position) &&\n getDistance(range.position, p.position) > p.particle.getRadius() &&\n (!check || check(p.particle))) {\n continue;\n }\n res.push(p.particle);\n }\n if (this._divided) {\n for (const sub of this._subs) {\n res.push(...sub.query(range, check));\n }\n }\n return res;\n }\n queryCircle(position, radius, check) {\n return this.query(new Circle(position.x, position.y, radius), check);\n }\n queryRectangle(position, size, check) {\n return this.query(new Rectangle(position.x, position.y, size.width, size.height), check);\n }\n}\n", + "import { countOffset, defaultDensityFactor, defaultRemoveQuantity, deleteCount, errorPrefix, lengthOffset, minCount, minIndex, minLimit, posOffset, qTreeCapacity, sizeFactor, squareExp, } from \"./Utils/Constants.js\";\nimport { getLogger, getPosition } from \"../Utils/Utils.js\";\nimport { EventType } from \"../Enums/Types/EventType.js\";\nimport { InteractionManager } from \"./Utils/InteractionManager.js\";\nimport { LimitMode } from \"../Enums/Modes/LimitMode.js\";\nimport { Particle } from \"./Particle.js\";\nimport { Point } from \"./Utils/Point.js\";\nimport { QuadTree } from \"./Utils/QuadTree.js\";\nimport { Rectangle } from \"./Utils/Ranges.js\";\nconst qTreeRectangle = (canvasSize) => {\n const { height, width } = canvasSize;\n return new Rectangle(posOffset * width, posOffset * height, sizeFactor * width, sizeFactor * height);\n};\nexport class Particles {\n constructor(engine, container) {\n this._addToPool = (...particles) => {\n this._pool.push(...particles);\n };\n this._applyDensity = (options, manualCount, group, groupOptions) => {\n const numberOptions = options.number;\n if (!options.number.density?.enable) {\n if (group === undefined) {\n this._limit = numberOptions.limit.value;\n }\n else if (groupOptions?.number.limit?.value ?? numberOptions.limit.value) {\n this._groupLimits.set(group, groupOptions?.number.limit?.value ?? numberOptions.limit.value);\n }\n return;\n }\n const densityFactor = this._initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, optParticlesLimit = numberOptions.limit.value > minLimit ? numberOptions.limit.value : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, particlesCount = Math.min(this.count, this.filter(t => t.group === group).length);\n if (group === undefined) {\n this._limit = numberOptions.limit.value * densityFactor;\n }\n else {\n this._groupLimits.set(group, numberOptions.limit.value * densityFactor);\n }\n if (particlesCount < particlesNumber) {\n this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);\n }\n else if (particlesCount > particlesNumber) {\n this.removeQuantity(particlesCount - particlesNumber, group);\n }\n };\n this._initDensityFactor = densityOptions => {\n const container = this._container;\n if (!container.canvas.element || !densityOptions.enable) {\n return defaultDensityFactor;\n }\n const canvas = container.canvas.element, pxRatio = container.retina.pixelRatio;\n return (canvas.width * canvas.height) / (densityOptions.height * densityOptions.width * pxRatio ** squareExp);\n };\n this._pushParticle = (position, overrideOptions, group, initializer) => {\n try {\n let particle = this._pool.pop();\n if (!particle) {\n particle = new Particle(this._engine, this._container);\n }\n particle.init(this._nextId, position, overrideOptions, group);\n let canAdd = true;\n if (initializer) {\n canAdd = initializer(particle);\n }\n if (!canAdd) {\n return;\n }\n this._array.push(particle);\n this._zArray.push(particle);\n this._nextId++;\n this._engine.dispatchEvent(EventType.particleAdded, {\n container: this._container,\n data: {\n particle,\n },\n });\n return particle;\n }\n catch (e) {\n getLogger().warning(`${errorPrefix} adding particle: ${e}`);\n }\n };\n this._removeParticle = (index, group, override) => {\n const particle = this._array[index];\n if (!particle || particle.group !== group) {\n return false;\n }\n const zIdx = this._zArray.indexOf(particle);\n this._array.splice(index, deleteCount);\n this._zArray.splice(zIdx, deleteCount);\n particle.destroy(override);\n this._engine.dispatchEvent(EventType.particleRemoved, {\n container: this._container,\n data: {\n particle,\n },\n });\n this._addToPool(particle);\n return true;\n };\n this._engine = engine;\n this._container = container;\n this._nextId = 0;\n this._array = [];\n this._zArray = [];\n this._pool = [];\n this._limit = 0;\n this._groupLimits = new Map();\n this._needsSort = false;\n this._lastZIndex = 0;\n this._interactionManager = new InteractionManager(engine, container);\n this._pluginsInitialized = false;\n const canvasSize = container.canvas.size;\n this.quadTree = new QuadTree(qTreeRectangle(canvasSize), qTreeCapacity);\n this.movers = [];\n this.updaters = [];\n }\n get count() {\n return this._array.length;\n }\n addManualParticles() {\n const container = this._container, options = container.actualOptions;\n options.manualParticles.forEach(p => this.addParticle(p.position ? getPosition(p.position, container.canvas.size) : undefined, p.options));\n }\n addParticle(position, overrideOptions, group, initializer) {\n const limitMode = this._container.actualOptions.particles.number.limit.mode, limit = group === undefined ? this._limit : (this._groupLimits.get(group) ?? this._limit), currentCount = this.count;\n if (limit > minLimit) {\n switch (limitMode) {\n case LimitMode.delete: {\n const countToRemove = currentCount + countOffset - limit;\n if (countToRemove > minCount) {\n this.removeQuantity(countToRemove);\n }\n break;\n }\n case LimitMode.wait:\n if (currentCount >= limit) {\n return;\n }\n break;\n }\n }\n return this._pushParticle(position, overrideOptions, group, initializer);\n }\n clear() {\n this._array = [];\n this._zArray = [];\n this._pluginsInitialized = false;\n }\n destroy() {\n this._array = [];\n this._zArray = [];\n this.movers = [];\n this.updaters = [];\n }\n draw(delta) {\n const container = this._container, canvas = container.canvas;\n canvas.clear();\n this.update(delta);\n for (const plugin of container.plugins.values()) {\n canvas.drawPlugin(plugin, delta);\n }\n for (const p of this._zArray) {\n p.draw(delta);\n }\n }\n filter(condition) {\n return this._array.filter(condition);\n }\n find(condition) {\n return this._array.find(condition);\n }\n get(index) {\n return this._array[index];\n }\n handleClickMode(mode) {\n this._interactionManager.handleClickMode(mode);\n }\n async init() {\n const container = this._container, options = container.actualOptions;\n this._lastZIndex = 0;\n this._needsSort = false;\n await this.initPlugins();\n let handled = false;\n for (const plugin of container.plugins.values()) {\n handled = plugin.particlesInitialization?.() ?? handled;\n if (handled) {\n break;\n }\n }\n this.addManualParticles();\n if (!handled) {\n const particlesOptions = options.particles, groups = particlesOptions.groups;\n for (const group in groups) {\n const groupOptions = groups[group];\n for (let i = this.count, j = 0; j < groupOptions.number?.value && i < particlesOptions.number.value; i++, j++) {\n this.addParticle(undefined, groupOptions, group);\n }\n }\n for (let i = this.count; i < particlesOptions.number.value; i++) {\n this.addParticle();\n }\n }\n }\n async initPlugins() {\n if (this._pluginsInitialized) {\n return;\n }\n const container = this._container;\n this.movers = await this._engine.getMovers(container, true);\n this.updaters = await this._engine.getUpdaters(container, true);\n await this._interactionManager.init();\n for (const pathGenerator of container.pathGenerators.values()) {\n pathGenerator.init(container);\n }\n }\n push(nb, mouse, overrideOptions, group) {\n for (let i = 0; i < nb; i++) {\n this.addParticle(mouse?.position, overrideOptions, group);\n }\n }\n async redraw() {\n this.clear();\n await this.init();\n this.draw({ value: 0, factor: 0 });\n }\n remove(particle, group, override) {\n this.removeAt(this._array.indexOf(particle), undefined, group, override);\n }\n removeAt(index, quantity = defaultRemoveQuantity, group, override) {\n if (index < minIndex || index > this.count) {\n return;\n }\n let deleted = 0;\n for (let i = index; deleted < quantity && i < this.count; i++) {\n if (this._removeParticle(i, group, override)) {\n i--;\n deleted++;\n }\n }\n }\n removeQuantity(quantity, group) {\n this.removeAt(minIndex, quantity, group);\n }\n setDensity() {\n const options = this._container.actualOptions, groups = options.particles.groups, manualCount = options.manualParticles.length;\n for (const group in groups) {\n this._applyDensity(groups[group], manualCount, group);\n }\n this._applyDensity(options.particles, manualCount);\n }\n setLastZIndex(zIndex) {\n this._lastZIndex = zIndex;\n this._needsSort = this._needsSort || this._lastZIndex < zIndex;\n }\n setResizeFactor(factor) {\n this._resizeFactor = factor;\n }\n update(delta) {\n const container = this._container, particlesToDelete = new Set();\n this.quadTree = new QuadTree(qTreeRectangle(container.canvas.size), qTreeCapacity);\n for (const pathGenerator of container.pathGenerators.values()) {\n pathGenerator.update();\n }\n for (const plugin of container.plugins.values()) {\n plugin.update?.(delta);\n }\n const resizeFactor = this._resizeFactor;\n for (const particle of this._array) {\n if (resizeFactor && !particle.ignoresResizeRatio) {\n particle.position.x *= resizeFactor.width;\n particle.position.y *= resizeFactor.height;\n particle.initialPosition.x *= resizeFactor.width;\n particle.initialPosition.y *= resizeFactor.height;\n }\n particle.ignoresResizeRatio = false;\n this._interactionManager.reset(particle);\n for (const plugin of this._container.plugins.values()) {\n if (particle.destroyed) {\n break;\n }\n plugin.particleUpdate?.(particle, delta);\n }\n for (const mover of this.movers) {\n if (mover.isEnabled(particle)) {\n mover.move(particle, delta);\n }\n }\n if (particle.destroyed) {\n particlesToDelete.add(particle);\n continue;\n }\n this.quadTree.insert(new Point(particle.getPosition(), particle));\n }\n if (particlesToDelete.size) {\n const checkDelete = (p) => !particlesToDelete.has(p);\n this._array = this.filter(checkDelete);\n this._zArray = this._zArray.filter(checkDelete);\n for (const particle of particlesToDelete) {\n this._engine.dispatchEvent(EventType.particleRemoved, {\n container: this._container,\n data: {\n particle,\n },\n });\n }\n this._addToPool(...particlesToDelete);\n }\n this._interactionManager.externalInteract(delta);\n for (const particle of this._array) {\n for (const updater of this.updaters) {\n updater.update(particle, delta);\n }\n if (!particle.destroyed && !particle.spawning) {\n this._interactionManager.particlesInteract(particle, delta);\n }\n }\n delete this._resizeFactor;\n if (this._needsSort) {\n const zArray = this._zArray;\n zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id);\n this._lastZIndex = zArray[zArray.length - lengthOffset].position.z;\n this._needsSort = false;\n }\n }\n}\n", + "import { defaultRatio, defaultReduceFactor } from \"./Utils/Constants.js\";\nimport { getRangeValue } from \"../Utils/NumberUtils.js\";\nimport { isSsr } from \"../Utils/Utils.js\";\nexport class Retina {\n constructor(container) {\n this.container = container;\n this.pixelRatio = defaultRatio;\n this.reduceFactor = defaultReduceFactor;\n }\n init() {\n const container = this.container, options = container.actualOptions;\n this.pixelRatio = !options.detectRetina || isSsr() ? defaultRatio : devicePixelRatio;\n this.reduceFactor = defaultReduceFactor;\n const ratio = this.pixelRatio, canvas = container.canvas;\n if (canvas.element) {\n const element = canvas.element;\n canvas.size.width = element.offsetWidth * ratio;\n canvas.size.height = element.offsetHeight * ratio;\n }\n const particles = options.particles, moveOptions = particles.move;\n this.maxSpeed = getRangeValue(moveOptions.gravity.maxSpeed) * ratio;\n this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;\n }\n initParticle(particle) {\n const options = particle.options, ratio = this.pixelRatio, moveOptions = options.move, moveDistance = moveOptions.distance, props = particle.retina;\n props.moveDrift = getRangeValue(moveOptions.drift) * ratio;\n props.moveSpeed = getRangeValue(moveOptions.speed) * ratio;\n props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;\n const maxDistance = props.maxDistance;\n maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;\n maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;\n props.maxSpeed = getRangeValue(moveOptions.gravity.maxSpeed) * ratio;\n }\n}\n", + "import { animate, cancelAnimation, getRangeValue } from \"../Utils/NumberUtils.js\";\nimport { clickRadius, defaultFps, defaultFpsLimit, errorPrefix, millisecondsToSeconds, minCoordinate, minFpsLimit, removeDeleteCount, removeMinIndex, touchEndLengthOffset, } from \"./Utils/Constants.js\";\nimport { getLogger, safeIntersectionObserver } from \"../Utils/Utils.js\";\nimport { Canvas } from \"./Canvas.js\";\nimport { EventListeners } from \"./Utils/EventListeners.js\";\nimport { EventType } from \"../Enums/Types/EventType.js\";\nimport { Options } from \"../Options/Classes/Options.js\";\nimport { Particles } from \"./Particles.js\";\nimport { Retina } from \"./Retina.js\";\nimport { loadOptions } from \"../Utils/OptionsUtils.js\";\nfunction guardCheck(container) {\n return container && !container.destroyed;\n}\nfunction initDelta(value, fpsLimit = defaultFps, smooth = false) {\n return {\n value,\n factor: smooth ? defaultFps / fpsLimit : (defaultFps * value) / millisecondsToSeconds,\n };\n}\nfunction loadContainerOptions(engine, container, ...sourceOptionsArr) {\n const options = new Options(engine, container);\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\nexport class Container {\n constructor(engine, id, sourceOptions) {\n this._intersectionManager = entries => {\n if (!guardCheck(this) || !this.actualOptions.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n if (entry.isIntersecting) {\n void this.play();\n }\n else {\n this.pause();\n }\n }\n };\n this._nextFrame = (timestamp) => {\n try {\n if (!this._smooth &&\n this._lastFrameTime !== undefined &&\n timestamp < this._lastFrameTime + millisecondsToSeconds / this.fpsLimit) {\n this.draw(false);\n return;\n }\n this._lastFrameTime ??= timestamp;\n const delta = initDelta(timestamp - this._lastFrameTime, this.fpsLimit, this._smooth);\n this.addLifeTime(delta.value);\n this._lastFrameTime = timestamp;\n if (delta.value > millisecondsToSeconds) {\n this.draw(false);\n return;\n }\n this.particles.draw(delta);\n if (!this.alive()) {\n this.destroy();\n return;\n }\n if (this.animationStatus) {\n this.draw(false);\n }\n }\n catch (e) {\n getLogger().error(`${errorPrefix} in animation loop`, e);\n }\n };\n this._engine = engine;\n this.id = Symbol(id);\n this.fpsLimit = 120;\n this._smooth = false;\n this._delay = 0;\n this._duration = 0;\n this._lifeTime = 0;\n this._firstStart = true;\n this.started = false;\n this.destroyed = false;\n this._paused = true;\n this._lastFrameTime = 0;\n this.zLayers = 100;\n this.pageHidden = false;\n this._clickHandlers = new Map();\n this._sourceOptions = sourceOptions;\n this._initialSourceOptions = sourceOptions;\n this.retina = new Retina(this);\n this.canvas = new Canvas(this, this._engine);\n this.particles = new Particles(this._engine, this);\n this.pathGenerators = new Map();\n this.interactivity = {\n mouse: {\n clicking: false,\n inside: false,\n },\n };\n this.plugins = new Map();\n this.effectDrawers = new Map();\n this.shapeDrawers = new Map();\n this._options = loadContainerOptions(this._engine, this);\n this.actualOptions = loadContainerOptions(this._engine, this);\n this._eventListeners = new EventListeners(this);\n this._intersectionObserver = safeIntersectionObserver(entries => this._intersectionManager(entries));\n this._engine.dispatchEvent(EventType.containerBuilt, { container: this });\n }\n get animationStatus() {\n return !this._paused && !this.pageHidden && guardCheck(this);\n }\n get options() {\n return this._options;\n }\n get sourceOptions() {\n return this._sourceOptions;\n }\n addClickHandler(callback) {\n if (!guardCheck(this)) {\n return;\n }\n const el = this.interactivity.element;\n if (!el) {\n return;\n }\n const clickOrTouchHandler = (e, pos, radius) => {\n if (!guardCheck(this)) {\n return;\n }\n const pxRatio = this.retina.pixelRatio, posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio,\n }, particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio);\n callback(e, particles);\n }, clickHandler = (e) => {\n if (!guardCheck(this)) {\n return;\n }\n const mouseEvent = e, pos = {\n x: mouseEvent.offsetX || mouseEvent.clientX,\n y: mouseEvent.offsetY || mouseEvent.clientY,\n };\n clickOrTouchHandler(e, pos, clickRadius);\n }, touchStartHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touched = true;\n touchMoved = false;\n }, touchMoveHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touchMoved = true;\n }, touchEndHandler = (e) => {\n if (!guardCheck(this)) {\n return;\n }\n if (touched && !touchMoved) {\n const touchEvent = e;\n let lastTouch = touchEvent.touches[touchEvent.touches.length - touchEndLengthOffset];\n if (!lastTouch) {\n lastTouch = touchEvent.changedTouches[touchEvent.changedTouches.length - touchEndLengthOffset];\n if (!lastTouch) {\n return;\n }\n }\n const element = this.canvas.element, canvasRect = element ? element.getBoundingClientRect() : undefined, pos = {\n x: lastTouch.clientX - (canvasRect ? canvasRect.left : minCoordinate),\n y: lastTouch.clientY - (canvasRect ? canvasRect.top : minCoordinate),\n };\n clickOrTouchHandler(e, pos, Math.max(lastTouch.radiusX, lastTouch.radiusY));\n }\n touched = false;\n touchMoved = false;\n }, touchCancelHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false, touchMoved = false;\n this._clickHandlers.set(\"click\", clickHandler);\n this._clickHandlers.set(\"touchstart\", touchStartHandler);\n this._clickHandlers.set(\"touchmove\", touchMoveHandler);\n this._clickHandlers.set(\"touchend\", touchEndHandler);\n this._clickHandlers.set(\"touchcancel\", touchCancelHandler);\n for (const [key, handler] of this._clickHandlers) {\n el.addEventListener(key, handler);\n }\n }\n addLifeTime(value) {\n this._lifeTime += value;\n }\n addPath(key, generator, override = false) {\n if (!guardCheck(this) || (!override && this.pathGenerators.has(key))) {\n return false;\n }\n this.pathGenerators.set(key, generator);\n return true;\n }\n alive() {\n return !this._duration || this._lifeTime <= this._duration;\n }\n clearClickHandlers() {\n if (!guardCheck(this)) {\n return;\n }\n for (const [key, handler] of this._clickHandlers) {\n this.interactivity.element?.removeEventListener(key, handler);\n }\n this._clickHandlers.clear();\n }\n destroy(remove = true) {\n if (!guardCheck(this)) {\n return;\n }\n this.stop();\n this.clearClickHandlers();\n this.particles.destroy();\n this.canvas.destroy();\n for (const effectDrawer of this.effectDrawers.values()) {\n effectDrawer.destroy?.(this);\n }\n for (const shapeDrawer of this.shapeDrawers.values()) {\n shapeDrawer.destroy?.(this);\n }\n for (const key of this.effectDrawers.keys()) {\n this.effectDrawers.delete(key);\n }\n for (const key of this.shapeDrawers.keys()) {\n this.shapeDrawers.delete(key);\n }\n this._engine.clearPlugins(this);\n this.destroyed = true;\n if (remove) {\n const mainArr = this._engine.items, idx = mainArr.findIndex(t => t === this);\n if (idx >= removeMinIndex) {\n mainArr.splice(idx, removeDeleteCount);\n }\n }\n this._engine.dispatchEvent(EventType.containerDestroyed, { container: this });\n }\n draw(force) {\n if (!guardCheck(this)) {\n return;\n }\n let refreshTime = force;\n const frame = (timestamp) => {\n if (refreshTime) {\n this._lastFrameTime = undefined;\n refreshTime = false;\n }\n this._nextFrame(timestamp);\n };\n this._drawAnimationFrame = animate(timestamp => frame(timestamp));\n }\n async export(type, options = {}) {\n for (const plugin of this.plugins.values()) {\n if (!plugin.export) {\n continue;\n }\n const res = await plugin.export(type, options);\n if (!res.supported) {\n continue;\n }\n return res.blob;\n }\n getLogger().error(`${errorPrefix} - Export plugin with type ${type} not found`);\n }\n handleClickMode(mode) {\n if (!guardCheck(this)) {\n return;\n }\n this.particles.handleClickMode(mode);\n for (const plugin of this.plugins.values()) {\n plugin.handleClickMode?.(mode);\n }\n }\n async init() {\n if (!guardCheck(this)) {\n return;\n }\n const effects = this._engine.getSupportedEffects();\n for (const type of effects) {\n const drawer = this._engine.getEffectDrawer(type);\n if (drawer) {\n this.effectDrawers.set(type, drawer);\n }\n }\n const shapes = this._engine.getSupportedShapes();\n for (const type of shapes) {\n const drawer = this._engine.getShapeDrawer(type);\n if (drawer) {\n this.shapeDrawers.set(type, drawer);\n }\n }\n await this.particles.initPlugins();\n this._options = loadContainerOptions(this._engine, this, this._initialSourceOptions, this.sourceOptions);\n this.actualOptions = loadContainerOptions(this._engine, this, this._options);\n const availablePlugins = await this._engine.getAvailablePlugins(this);\n for (const [id, plugin] of availablePlugins) {\n this.plugins.set(id, plugin);\n }\n this.retina.init();\n await this.canvas.init();\n this.updateActualOptions();\n this.canvas.initBackground();\n this.canvas.resize();\n const { zLayers, duration, delay, fpsLimit, smooth } = this.actualOptions;\n this.zLayers = zLayers;\n this._duration = getRangeValue(duration) * millisecondsToSeconds;\n this._delay = getRangeValue(delay) * millisecondsToSeconds;\n this._lifeTime = 0;\n this.fpsLimit = fpsLimit > minFpsLimit ? fpsLimit : defaultFpsLimit;\n this._smooth = smooth;\n for (const drawer of this.effectDrawers.values()) {\n await drawer.init?.(this);\n }\n for (const drawer of this.shapeDrawers.values()) {\n await drawer.init?.(this);\n }\n for (const plugin of this.plugins.values()) {\n await plugin.init?.();\n }\n this._engine.dispatchEvent(EventType.containerInit, { container: this });\n await this.particles.init();\n this.particles.setDensity();\n for (const plugin of this.plugins.values()) {\n plugin.particlesSetup?.();\n }\n this._engine.dispatchEvent(EventType.particlesSetup, { container: this });\n }\n async loadTheme(name) {\n if (!guardCheck(this)) {\n return;\n }\n this._currentTheme = name;\n await this.refresh();\n }\n pause() {\n if (!guardCheck(this)) {\n return;\n }\n if (this._drawAnimationFrame !== undefined) {\n cancelAnimation(this._drawAnimationFrame);\n delete this._drawAnimationFrame;\n }\n if (this._paused) {\n return;\n }\n for (const plugin of this.plugins.values()) {\n plugin.pause?.();\n }\n if (!this.pageHidden) {\n this._paused = true;\n }\n this._engine.dispatchEvent(EventType.containerPaused, { container: this });\n }\n play(force) {\n if (!guardCheck(this)) {\n return;\n }\n const needsUpdate = this._paused || force;\n if (this._firstStart && !this.actualOptions.autoPlay) {\n this._firstStart = false;\n return;\n }\n if (this._paused) {\n this._paused = false;\n }\n if (needsUpdate) {\n for (const plugin of this.plugins.values()) {\n if (plugin.play) {\n plugin.play();\n }\n }\n }\n this._engine.dispatchEvent(EventType.containerPlay, { container: this });\n this.draw(needsUpdate ?? false);\n }\n async refresh() {\n if (!guardCheck(this)) {\n return;\n }\n this.stop();\n return this.start();\n }\n async reset(sourceOptions) {\n if (!guardCheck(this)) {\n return;\n }\n this._initialSourceOptions = sourceOptions;\n this._sourceOptions = sourceOptions;\n this._options = loadContainerOptions(this._engine, this, this._initialSourceOptions, this.sourceOptions);\n this.actualOptions = loadContainerOptions(this._engine, this, this._options);\n return this.refresh();\n }\n async start() {\n if (!guardCheck(this) || this.started) {\n return;\n }\n await this.init();\n this.started = true;\n await new Promise(resolve => {\n const start = async () => {\n this._eventListeners.addListeners();\n if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) {\n this._intersectionObserver.observe(this.interactivity.element);\n }\n for (const plugin of this.plugins.values()) {\n await plugin.start?.();\n }\n this._engine.dispatchEvent(EventType.containerStarted, { container: this });\n this.play();\n resolve();\n };\n this._delayTimeout = setTimeout(() => void start(), this._delay);\n });\n }\n stop() {\n if (!guardCheck(this) || !this.started) {\n return;\n }\n if (this._delayTimeout) {\n clearTimeout(this._delayTimeout);\n delete this._delayTimeout;\n }\n this._firstStart = true;\n this.started = false;\n this._eventListeners.removeListeners();\n this.pause();\n this.particles.clear();\n this.canvas.stop();\n if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) {\n this._intersectionObserver.unobserve(this.interactivity.element);\n }\n for (const plugin of this.plugins.values()) {\n plugin.stop?.();\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n this._sourceOptions = this._options;\n this._engine.dispatchEvent(EventType.containerStopped, { container: this });\n }\n updateActualOptions() {\n this.actualOptions.responsive = [];\n const newMaxWidth = this.actualOptions.setResponsive(this.canvas.size.width, this.retina.pixelRatio, this._options);\n this.actualOptions.setTheme(this._currentTheme);\n if (this._responsiveMaxWidth === newMaxWidth) {\n return false;\n }\n this._responsiveMaxWidth = newMaxWidth;\n return true;\n }\n}\n", + "import { deleteCount, minIndex } from \"../Core/Utils/Constants.js\";\nexport class EventDispatcher {\n constructor() {\n this._listeners = new Map();\n }\n addEventListener(type, listener) {\n this.removeEventListener(type, listener);\n let arr = this._listeners.get(type);\n if (!arr) {\n arr = [];\n this._listeners.set(type, arr);\n }\n arr.push(listener);\n }\n dispatchEvent(type, args) {\n const listeners = this._listeners.get(type);\n listeners?.forEach(handler => handler(args));\n }\n hasEventListener(type) {\n return !!this._listeners.get(type);\n }\n removeAllEventListeners(type) {\n if (!type) {\n this._listeners = new Map();\n }\n else {\n this._listeners.delete(type);\n }\n }\n removeEventListener(type, listener) {\n const arr = this._listeners.get(type);\n if (!arr) {\n return;\n }\n const length = arr.length, idx = arr.indexOf(listener);\n if (idx < minIndex) {\n return;\n }\n if (length === deleteCount) {\n this._listeners.delete(type);\n }\n else {\n arr.splice(idx, deleteCount);\n }\n }\n}\n", + "import { canvasFirstIndex, canvasTag, errorPrefix, generatedAttribute, generatedFalse, generatedTrue, loadMinIndex, loadRandomFactor, none, one, removeDeleteCount, } from \"./Utils/Constants.js\";\nimport { executeOnSingleOrMultiple, getLogger, itemFromSingleOrMultiple } from \"../Utils/Utils.js\";\nimport { Container } from \"./Container.js\";\nimport { EventDispatcher } from \"../Utils/EventDispatcher.js\";\nimport { EventType } from \"../Enums/Types/EventType.js\";\nimport { getRandom } from \"../Utils/NumberUtils.js\";\nasync function getItemsFromInitializer(container, map, initializers, force = false) {\n let res = map.get(container);\n if (!res || force) {\n res = await Promise.all([...initializers.values()].map(t => t(container)));\n map.set(container, res);\n }\n return res;\n}\nasync function getDataFromUrl(data) {\n const url = itemFromSingleOrMultiple(data.url, data.index);\n if (!url) {\n return data.fallback;\n }\n const response = await fetch(url);\n if (response.ok) {\n return (await response.json());\n }\n getLogger().error(`${errorPrefix} ${response.status} while retrieving config file`);\n return data.fallback;\n}\nconst getCanvasFromContainer = (domContainer) => {\n let canvasEl;\n if (domContainer instanceof HTMLCanvasElement || domContainer.tagName.toLowerCase() === canvasTag) {\n canvasEl = domContainer;\n if (!canvasEl.dataset[generatedAttribute]) {\n canvasEl.dataset[generatedAttribute] = generatedFalse;\n }\n }\n else {\n const existingCanvases = domContainer.getElementsByTagName(canvasTag);\n if (existingCanvases.length) {\n canvasEl = existingCanvases[canvasFirstIndex];\n canvasEl.dataset[generatedAttribute] = generatedFalse;\n }\n else {\n canvasEl = document.createElement(canvasTag);\n canvasEl.dataset[generatedAttribute] = generatedTrue;\n domContainer.appendChild(canvasEl);\n }\n }\n const fullPercent = \"100%\";\n if (!canvasEl.style.width) {\n canvasEl.style.width = fullPercent;\n }\n if (!canvasEl.style.height) {\n canvasEl.style.height = fullPercent;\n }\n return canvasEl;\n}, getDomContainer = (id, source) => {\n let domContainer = source ?? document.getElementById(id);\n if (domContainer) {\n return domContainer;\n }\n domContainer = document.createElement(\"div\");\n domContainer.id = id;\n domContainer.dataset[generatedAttribute] = generatedTrue;\n document.body.append(domContainer);\n return domContainer;\n};\nexport class Engine {\n constructor() {\n this._configs = new Map();\n this._domArray = [];\n this._eventDispatcher = new EventDispatcher();\n this._initialized = false;\n this.plugins = [];\n this.colorManagers = new Map();\n this.easingFunctions = new Map();\n this._initializers = {\n interactors: new Map(),\n movers: new Map(),\n updaters: new Map(),\n };\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.effectDrawers = new Map();\n this.shapeDrawers = new Map();\n this.pathGenerators = new Map();\n }\n get configs() {\n const res = {};\n for (const [name, config] of this._configs) {\n res[name] = config;\n }\n return res;\n }\n get items() {\n return this._domArray;\n }\n get version() {\n return \"3.9.1\";\n }\n async addColorManager(manager, refresh = true) {\n this.colorManagers.set(manager.key, manager);\n await this.refresh(refresh);\n }\n addConfig(config) {\n const key = config.key ?? config.name ?? \"default\";\n this._configs.set(key, config);\n this._eventDispatcher.dispatchEvent(EventType.configAdded, { data: { name: key, config } });\n }\n async addEasing(name, easing, refresh = true) {\n if (this.getEasing(name)) {\n return;\n }\n this.easingFunctions.set(name, easing);\n await this.refresh(refresh);\n }\n async addEffect(effect, drawer, refresh = true) {\n executeOnSingleOrMultiple(effect, type => {\n if (!this.getEffectDrawer(type)) {\n this.effectDrawers.set(type, drawer);\n }\n });\n await this.refresh(refresh);\n }\n addEventListener(type, listener) {\n this._eventDispatcher.addEventListener(type, listener);\n }\n async addInteractor(name, interactorInitializer, refresh = true) {\n this._initializers.interactors.set(name, interactorInitializer);\n await this.refresh(refresh);\n }\n async addMover(name, moverInitializer, refresh = true) {\n this._initializers.movers.set(name, moverInitializer);\n await this.refresh(refresh);\n }\n async addParticleUpdater(name, updaterInitializer, refresh = true) {\n this._initializers.updaters.set(name, updaterInitializer);\n await this.refresh(refresh);\n }\n async addPathGenerator(name, generator, refresh = true) {\n if (!this.getPathGenerator(name)) {\n this.pathGenerators.set(name, generator);\n }\n await this.refresh(refresh);\n }\n async addPlugin(plugin, refresh = true) {\n if (!this.getPlugin(plugin.id)) {\n this.plugins.push(plugin);\n }\n await this.refresh(refresh);\n }\n async addPreset(preset, options, override = false, refresh = true) {\n if (override || !this.getPreset(preset)) {\n this.presets.set(preset, options);\n }\n await this.refresh(refresh);\n }\n async addShape(drawer, refresh = true) {\n for (const validType of drawer.validTypes) {\n if (this.getShapeDrawer(validType)) {\n continue;\n }\n this.shapeDrawers.set(validType, drawer);\n }\n await this.refresh(refresh);\n }\n checkVersion(pluginVersion) {\n if (this.version === pluginVersion) {\n return;\n }\n throw new Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${pluginVersion}`);\n }\n clearPlugins(container) {\n this.updaters.delete(container);\n this.movers.delete(container);\n this.interactors.delete(container);\n }\n dispatchEvent(type, args) {\n this._eventDispatcher.dispatchEvent(type, args);\n }\n dom() {\n return this.items;\n }\n domItem(index) {\n return this.item(index);\n }\n async getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (plugin.needsPlugin(container.actualOptions)) {\n res.set(plugin.id, await plugin.getPlugin(container));\n }\n }\n return res;\n }\n getEasing(name) {\n return this.easingFunctions.get(name) ?? ((value) => value);\n }\n getEffectDrawer(type) {\n return this.effectDrawers.get(type);\n }\n async getInteractors(container, force = false) {\n return getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force);\n }\n async getMovers(container, force = false) {\n return getItemsFromInitializer(container, this.movers, this._initializers.movers, force);\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n getPlugin(plugin) {\n return this.plugins.find(t => t.id === plugin);\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n getShapeDrawer(type) {\n return this.shapeDrawers.get(type);\n }\n getSupportedEffects() {\n return this.effectDrawers.keys();\n }\n getSupportedShapes() {\n return this.shapeDrawers.keys();\n }\n async getUpdaters(container, force = false) {\n return getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force);\n }\n init() {\n if (this._initialized) {\n return;\n }\n this._initialized = true;\n }\n item(index) {\n const { items } = this, item = items[index];\n if (!item || item.destroyed) {\n items.splice(index, removeDeleteCount);\n return;\n }\n return item;\n }\n async load(params) {\n const id = params.id ?? params.element?.id ?? `tsparticles${Math.floor(getRandom() * loadRandomFactor)}`, { index, url } = params, options = url ? await getDataFromUrl({ fallback: params.options, url, index }) : params.options, currentOptions = itemFromSingleOrMultiple(options, index), { items } = this, oldIndex = items.findIndex(v => v.id.description === id), newItem = new Container(this, id, currentOptions);\n if (oldIndex >= loadMinIndex) {\n const old = this.item(oldIndex), deleteCount = old ? one : none;\n if (old && !old.destroyed) {\n old.destroy(false);\n }\n items.splice(oldIndex, deleteCount, newItem);\n }\n else {\n items.push(newItem);\n }\n const domContainer = getDomContainer(id, params.element), canvasEl = getCanvasFromContainer(domContainer);\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n loadOptions(options, sourceOptions) {\n this.plugins.forEach(plugin => plugin.loadOptions?.(options, sourceOptions));\n }\n loadParticlesOptions(container, options, ...sourceOptions) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n updaters.forEach(updater => updater.loadOptions?.(options, ...sourceOptions));\n }\n async refresh(refresh = true) {\n if (!refresh) {\n return;\n }\n await Promise.all(this.items.map(t => t.refresh()));\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n setOnClickHandler(callback) {\n const { items } = this;\n if (!items.length) {\n throw new Error(`${errorPrefix} can only set click handlers after calling tsParticles.load()`);\n }\n items.forEach(item => item.addClickHandler(callback));\n }\n}\n", + "import { Engine } from \"./Core/Engine.js\";\nexport function init() {\n const engine = new Engine();\n engine.init();\n return engine;\n}\n", + "import { InteractorType } from \"../../Enums/Types/InteractorType.js\";\nexport class ExternalInteractorBase {\n constructor(container) {\n this.type = InteractorType.external;\n this.container = container;\n }\n}\n", + "import { InteractorType } from \"../../Enums/Types/InteractorType.js\";\nexport class ParticlesInteractorBase {\n constructor(container) {\n this.type = InteractorType.particles;\n this.container = container;\n }\n}\n", + "export var RotateDirection;\n(function (RotateDirection) {\n RotateDirection[\"clockwise\"] = \"clockwise\";\n RotateDirection[\"counterClockwise\"] = \"counter-clockwise\";\n RotateDirection[\"random\"] = \"random\";\n})(RotateDirection || (RotateDirection = {}));\n", + "export var EasingType;\n(function (EasingType) {\n EasingType[\"easeInBack\"] = \"ease-in-back\";\n EasingType[\"easeInCirc\"] = \"ease-in-circ\";\n EasingType[\"easeInCubic\"] = \"ease-in-cubic\";\n EasingType[\"easeInLinear\"] = \"ease-in-linear\";\n EasingType[\"easeInQuad\"] = \"ease-in-quad\";\n EasingType[\"easeInQuart\"] = \"ease-in-quart\";\n EasingType[\"easeInQuint\"] = \"ease-in-quint\";\n EasingType[\"easeInExpo\"] = \"ease-in-expo\";\n EasingType[\"easeInSine\"] = \"ease-in-sine\";\n EasingType[\"easeOutBack\"] = \"ease-out-back\";\n EasingType[\"easeOutCirc\"] = \"ease-out-circ\";\n EasingType[\"easeOutCubic\"] = \"ease-out-cubic\";\n EasingType[\"easeOutLinear\"] = \"ease-out-linear\";\n EasingType[\"easeOutQuad\"] = \"ease-out-quad\";\n EasingType[\"easeOutQuart\"] = \"ease-out-quart\";\n EasingType[\"easeOutQuint\"] = \"ease-out-quint\";\n EasingType[\"easeOutExpo\"] = \"ease-out-expo\";\n EasingType[\"easeOutSine\"] = \"ease-out-sine\";\n EasingType[\"easeInOutBack\"] = \"ease-in-out-back\";\n EasingType[\"easeInOutCirc\"] = \"ease-in-out-circ\";\n EasingType[\"easeInOutCubic\"] = \"ease-in-out-cubic\";\n EasingType[\"easeInOutLinear\"] = \"ease-in-out-linear\";\n EasingType[\"easeInOutQuad\"] = \"ease-in-out-quad\";\n EasingType[\"easeInOutQuart\"] = \"ease-in-out-quart\";\n EasingType[\"easeInOutQuint\"] = \"ease-in-out-quint\";\n EasingType[\"easeInOutExpo\"] = \"ease-in-out-expo\";\n EasingType[\"easeInOutSine\"] = \"ease-in-out-sine\";\n})(EasingType || (EasingType = {}));\n", + "import { init } from \"./init.js\";\nimport { isSsr } from \"./Utils/Utils.js\";\nconst tsParticles = init();\nif (!isSsr()) {\n window.tsParticles = tsParticles;\n}\nexport * from \"./exports.js\";\nexport * from \"./export-types.js\";\nexport { tsParticles };\n", + "import { RotateDirection, clamp, getDistance, getDistances, getRandom, getRangeValue, } from \"@tsparticles/engine\";\nconst half = 0.5, double = 2, minVelocity = 0, identity = 1, moveSpeedFactor = 60, minSpinRadius = 0, spinFactor = 0.01, doublePI = Math.PI * double;\nexport function applyDistance(particle) {\n const initialPosition = particle.initialPosition, { dx, dy } = getDistances(initialPosition, particle.position), dxFixed = Math.abs(dx), dyFixed = Math.abs(dy), { maxDistance } = particle.retina, hDistance = maxDistance.horizontal, vDistance = maxDistance.vertical;\n if (!hDistance && !vDistance) {\n return;\n }\n const hasHDistance = (hDistance && dxFixed >= hDistance) ?? false, hasVDistance = (vDistance && dyFixed >= vDistance) ?? false;\n if ((hasHDistance || hasVDistance) && !particle.misplaced) {\n particle.misplaced = (!!hDistance && dxFixed > hDistance) || (!!vDistance && dyFixed > vDistance);\n if (hDistance) {\n particle.velocity.x = particle.velocity.y * half - particle.velocity.x;\n }\n if (vDistance) {\n particle.velocity.y = particle.velocity.x * half - particle.velocity.y;\n }\n }\n else if ((!hDistance || dxFixed < hDistance) && (!vDistance || dyFixed < vDistance) && particle.misplaced) {\n particle.misplaced = false;\n }\n else if (particle.misplaced) {\n const pos = particle.position, vel = particle.velocity;\n if (hDistance &&\n ((pos.x < initialPosition.x && vel.x < minVelocity) || (pos.x > initialPosition.x && vel.x > minVelocity))) {\n vel.x *= -getRandom();\n }\n if (vDistance &&\n ((pos.y < initialPosition.y && vel.y < minVelocity) || (pos.y > initialPosition.y && vel.y > minVelocity))) {\n vel.y *= -getRandom();\n }\n }\n}\nexport function move(particle, moveOptions, moveSpeed, maxSpeed, moveDrift, reduceFactor, delta) {\n applyPath(particle, delta);\n const gravityOptions = particle.gravity, gravityFactor = gravityOptions?.enable && gravityOptions.inverse ? -identity : identity;\n if (moveDrift && moveSpeed) {\n particle.velocity.x += (moveDrift * delta.factor) / (moveSpeedFactor * moveSpeed);\n }\n if (gravityOptions?.enable && moveSpeed) {\n particle.velocity.y +=\n (gravityFactor * (gravityOptions.acceleration * delta.factor)) / (moveSpeedFactor * moveSpeed);\n }\n const decay = particle.moveDecay;\n particle.velocity.multTo(decay);\n const velocity = particle.velocity.mult(moveSpeed);\n if (gravityOptions?.enable &&\n maxSpeed > minVelocity &&\n ((!gravityOptions.inverse && velocity.y >= minVelocity && velocity.y >= maxSpeed) ||\n (gravityOptions.inverse && velocity.y <= minVelocity && velocity.y <= -maxSpeed))) {\n velocity.y = gravityFactor * maxSpeed;\n if (moveSpeed) {\n particle.velocity.y = velocity.y / moveSpeed;\n }\n }\n const zIndexOptions = particle.options.zIndex, zVelocityFactor = (identity - particle.zIndexFactor) ** zIndexOptions.velocityRate;\n velocity.multTo(zVelocityFactor);\n velocity.multTo(reduceFactor);\n const { position } = particle;\n position.addTo(velocity);\n if (moveOptions.vibrate) {\n position.x += Math.sin(position.x * Math.cos(position.y)) * reduceFactor;\n position.y += Math.cos(position.y * Math.sin(position.x)) * reduceFactor;\n }\n}\nexport function spin(particle, moveSpeed, reduceFactor) {\n const container = particle.container;\n if (!particle.spin) {\n return;\n }\n const spinClockwise = particle.spin.direction === RotateDirection.clockwise, updateFunc = {\n x: spinClockwise ? Math.cos : Math.sin,\n y: spinClockwise ? Math.sin : Math.cos,\n };\n particle.position.x =\n particle.spin.center.x + particle.spin.radius * updateFunc.x(particle.spin.angle) * reduceFactor;\n particle.position.y =\n particle.spin.center.y + particle.spin.radius * updateFunc.y(particle.spin.angle) * reduceFactor;\n particle.spin.radius += particle.spin.acceleration * reduceFactor;\n const maxCanvasSize = Math.max(container.canvas.size.width, container.canvas.size.height), halfMaxSize = maxCanvasSize * half;\n if (particle.spin.radius > halfMaxSize) {\n particle.spin.radius = halfMaxSize;\n particle.spin.acceleration *= -identity;\n }\n else if (particle.spin.radius < minSpinRadius) {\n particle.spin.radius = minSpinRadius;\n particle.spin.acceleration *= -identity;\n }\n particle.spin.angle += moveSpeed * spinFactor * (identity - particle.spin.radius / maxCanvasSize);\n}\nexport function applyPath(particle, delta) {\n const particlesOptions = particle.options, pathOptions = particlesOptions.move.path, pathEnabled = pathOptions.enable;\n if (!pathEnabled) {\n return;\n }\n if (particle.lastPathTime <= particle.pathDelay) {\n particle.lastPathTime += delta.value;\n return;\n }\n const path = particle.pathGenerator?.generate(particle, delta);\n if (path) {\n particle.velocity.addTo(path);\n }\n if (pathOptions.clamp) {\n particle.velocity.x = clamp(particle.velocity.x, -identity, identity);\n particle.velocity.y = clamp(particle.velocity.y, -identity, identity);\n }\n particle.lastPathTime -= particle.pathDelay;\n}\nexport function getProximitySpeedFactor(particle) {\n return particle.slow.inRange ? particle.slow.factor : identity;\n}\nexport function initSpin(particle) {\n const container = particle.container, options = particle.options, spinOptions = options.move.spin;\n if (!spinOptions.enable) {\n return;\n }\n const spinPos = spinOptions.position ?? { x: 50, y: 50 }, spinFactor = 0.01, spinCenter = {\n x: spinPos.x * spinFactor * container.canvas.size.width,\n y: spinPos.y * spinFactor * container.canvas.size.height,\n }, pos = particle.getPosition(), distance = getDistance(pos, spinCenter), spinAcceleration = getRangeValue(spinOptions.acceleration);\n particle.retina.spinAcceleration = spinAcceleration * container.retina.pixelRatio;\n particle.spin = {\n center: spinCenter,\n direction: particle.velocity.x >= minVelocity ? RotateDirection.clockwise : RotateDirection.counterClockwise,\n angle: getRandom() * doublePI,\n radius: distance,\n acceleration: particle.retina.spinAcceleration,\n };\n}\n", + "import { getRangeMax, getRangeValue } from \"@tsparticles/engine\";\nimport { applyDistance, getProximitySpeedFactor, initSpin, move, spin } from \"./Utils.js\";\nconst diffFactor = 2, defaultSizeFactor = 1, defaultDeltaFactor = 1;\nexport class BaseMover {\n init(particle) {\n const options = particle.options, gravityOptions = options.move.gravity;\n particle.gravity = {\n enable: gravityOptions.enable,\n acceleration: getRangeValue(gravityOptions.acceleration),\n inverse: gravityOptions.inverse,\n };\n initSpin(particle);\n }\n isEnabled(particle) {\n return !particle.destroyed && particle.options.move.enable;\n }\n move(particle, delta) {\n const particleOptions = particle.options, moveOptions = particleOptions.move;\n if (!moveOptions.enable) {\n return;\n }\n const container = particle.container, pxRatio = container.retina.pixelRatio;\n particle.retina.moveSpeed ??= getRangeValue(moveOptions.speed) * pxRatio;\n particle.retina.moveDrift ??= getRangeValue(particle.options.move.drift) * pxRatio;\n const slowFactor = getProximitySpeedFactor(particle), reduceFactor = container.retina.reduceFactor, baseSpeed = particle.retina.moveSpeed, moveDrift = particle.retina.moveDrift, maxSize = getRangeMax(particleOptions.size.value) * pxRatio, sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : defaultSizeFactor, deltaFactor = delta.factor || defaultDeltaFactor, moveSpeed = (baseSpeed * sizeFactor * slowFactor * deltaFactor) / diffFactor, maxSpeed = particle.retina.maxSpeed ?? container.retina.maxSpeed;\n if (moveOptions.spin.enable) {\n spin(particle, moveSpeed, reduceFactor);\n }\n else {\n move(particle, moveOptions, moveSpeed, maxSpeed, moveDrift, reduceFactor, delta);\n }\n applyDistance(particle);\n }\n}\n", + "import { BaseMover } from \"./BaseMover.js\";\nexport async function loadBaseMover(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addMover(\"base\", () => {\n return Promise.resolve(new BaseMover());\n }, refresh);\n}\n", + "const double = 2, doublePI = Math.PI * double, minAngle = 0, origin = { x: 0, y: 0 };\nexport function drawCircle(data) {\n const { context, particle, radius } = data;\n if (!particle.circleRange) {\n particle.circleRange = { min: minAngle, max: doublePI };\n }\n const circleRange = particle.circleRange;\n context.arc(origin.x, origin.y, radius, circleRange.min, circleRange.max, false);\n}\n", + "import { degToRad, isObject } from \"@tsparticles/engine\";\nimport { drawCircle } from \"./Utils.js\";\nconst sides = 12, maxAngle = 360, minAngle = 0;\nexport class CircleDrawer {\n constructor() {\n this.validTypes = [\"circle\"];\n }\n draw(data) {\n drawCircle(data);\n }\n getSidesCount() {\n return sides;\n }\n particleInit(container, particle) {\n const shapeData = particle.shapeData, angle = shapeData?.angle ?? {\n max: maxAngle,\n min: minAngle,\n };\n particle.circleRange = !isObject(angle)\n ? {\n min: minAngle,\n max: degToRad(angle),\n }\n : { min: degToRad(angle.min), max: degToRad(angle.max) };\n }\n}\n", + "import { CircleDrawer } from \"./CircleDrawer.js\";\nexport async function loadCircleShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new CircleDrawer(), refresh);\n}\n", + "import { getHslAnimationFromHsl, rangeColorToHsl, updateColor, } from \"@tsparticles/engine\";\nexport class ColorUpdater {\n constructor(container, engine) {\n this._container = container;\n this._engine = engine;\n }\n init(particle) {\n const hslColor = rangeColorToHsl(this._engine, particle.options.color, particle.id, particle.options.reduceDuplicates);\n if (hslColor) {\n particle.color = getHslAnimationFromHsl(hslColor, particle.options.color.animation, this._container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n const { h: hAnimation, s: sAnimation, l: lAnimation } = particle.options.color.animation, { color } = particle;\n return (!particle.destroyed &&\n !particle.spawning &&\n ((color?.h.value !== undefined && hAnimation.enable) ||\n (color?.s.value !== undefined && sAnimation.enable) ||\n (color?.l.value !== undefined && lAnimation.enable)));\n }\n update(particle, delta) {\n updateColor(particle.color, delta);\n }\n}\n", + "import { ColorUpdater } from \"./ColorUpdater.js\";\nexport async function loadColorUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"color\", container => {\n return Promise.resolve(new ColorUpdater(container, engine));\n }, refresh);\n}\n", + "var RgbIndexes;\n(function (RgbIndexes) {\n RgbIndexes[RgbIndexes[\"r\"] = 1] = \"r\";\n RgbIndexes[RgbIndexes[\"g\"] = 2] = \"g\";\n RgbIndexes[RgbIndexes[\"b\"] = 3] = \"b\";\n RgbIndexes[RgbIndexes[\"a\"] = 4] = \"a\";\n})(RgbIndexes || (RgbIndexes = {}));\nconst shorthandHexRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i, hexRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i, hexRadix = 16, defaultAlpha = 1, alphaFactor = 0xff;\nexport class HexColorManager {\n constructor() {\n this.key = \"hex\";\n this.stringPrefix = \"#\";\n }\n handleColor(color) {\n return this._parseString(color.value);\n }\n handleRangeColor(color) {\n return this._parseString(color.value);\n }\n parseString(input) {\n return this._parseString(input);\n }\n _parseString(hexColor) {\n if (typeof hexColor !== \"string\") {\n return;\n }\n if (!hexColor?.startsWith(this.stringPrefix)) {\n return;\n }\n const hexFixed = hexColor.replace(shorthandHexRegex, (_, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n }), result = hexRegex.exec(hexFixed);\n return result\n ? {\n a: result[RgbIndexes.a] !== undefined\n ? parseInt(result[RgbIndexes.a], hexRadix) / alphaFactor\n : defaultAlpha,\n b: parseInt(result[RgbIndexes.b], hexRadix),\n g: parseInt(result[RgbIndexes.g], hexRadix),\n r: parseInt(result[RgbIndexes.r], hexRadix),\n }\n : undefined;\n }\n}\n", + "import { HexColorManager } from \"./HexColorManager.js\";\nexport async function loadHexColorPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addColorManager(new HexColorManager(), refresh);\n}\n", + "import { getRangeValue, hslToRgb, hslaToRgba, parseAlpha, } from \"@tsparticles/engine\";\nvar HslIndexes;\n(function (HslIndexes) {\n HslIndexes[HslIndexes[\"h\"] = 1] = \"h\";\n HslIndexes[HslIndexes[\"s\"] = 2] = \"s\";\n HslIndexes[HslIndexes[\"l\"] = 3] = \"l\";\n HslIndexes[HslIndexes[\"a\"] = 5] = \"a\";\n})(HslIndexes || (HslIndexes = {}));\nexport class HslColorManager {\n constructor() {\n this.key = \"hsl\";\n this.stringPrefix = \"hsl\";\n }\n handleColor(color) {\n const colorValue = color.value, hslColor = colorValue.hsl ?? color.value;\n if (hslColor.h !== undefined && hslColor.s !== undefined && hslColor.l !== undefined) {\n return hslToRgb(hslColor);\n }\n }\n handleRangeColor(color) {\n const colorValue = color.value, hslColor = colorValue.hsl ?? color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n return hslToRgb({\n h: getRangeValue(hslColor.h),\n l: getRangeValue(hslColor.l),\n s: getRangeValue(hslColor.s),\n });\n }\n }\n parseString(input) {\n if (!input.startsWith(\"hsl\")) {\n return;\n }\n const regex = /hsla?\\(\\s*(\\d+)\\s*[\\s,]\\s*(\\d+)%\\s*[\\s,]\\s*(\\d+)%\\s*([\\s,]\\s*(0|1|0?\\.\\d+|(\\d{1,3})%)\\s*)?\\)/i, result = regex.exec(input), minLength = 4, defaultAlpha = 1, radix = 10;\n return result\n ? hslaToRgba({\n a: result.length > minLength ? parseAlpha(result[HslIndexes.a]) : defaultAlpha,\n h: parseInt(result[HslIndexes.h], radix),\n l: parseInt(result[HslIndexes.l], radix),\n s: parseInt(result[HslIndexes.s], radix),\n })\n : undefined;\n }\n}\n", + "import { HslColorManager } from \"./HslColorManager.js\";\nexport async function loadHslColorPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addColorManager(new HslColorManager(), refresh);\n}\n", + "import { getRandom, getRangeValue, initParticleNumericAnimationValue, percentDenominator, updateAnimation, } from \"@tsparticles/engine\";\nexport class OpacityUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const opacityOptions = particle.options.opacity, pxRatio = 1;\n particle.opacity = initParticleNumericAnimationValue(opacityOptions, pxRatio);\n const opacityAnimation = opacityOptions.animation;\n if (opacityAnimation.enable) {\n particle.opacity.velocity =\n (getRangeValue(opacityAnimation.speed) / percentDenominator) * this.container.retina.reduceFactor;\n if (!opacityAnimation.sync) {\n particle.opacity.velocity *= getRandom();\n }\n }\n }\n isEnabled(particle) {\n const none = 0;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!particle.opacity &&\n particle.opacity.enable &&\n ((particle.opacity.maxLoops ?? none) <= none ||\n ((particle.opacity.maxLoops ?? none) > none &&\n (particle.opacity.loops ?? none) < (particle.opacity.maxLoops ?? none))));\n }\n reset(particle) {\n if (particle.opacity) {\n particle.opacity.time = 0;\n particle.opacity.loops = 0;\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle) || !particle.opacity) {\n return;\n }\n updateAnimation(particle, particle.opacity, true, particle.options.opacity.animation.destroy, delta);\n }\n}\n", + "import { OpacityUpdater } from \"./OpacityUpdater.js\";\nexport async function loadOpacityUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"opacity\", container => {\n return Promise.resolve(new OpacityUpdater(container));\n }, refresh);\n}\n", + "import { OutMode, OutModeDirection, getRangeValue } from \"@tsparticles/engine\";\nconst minVelocity = 0, boundsMin = 0;\nexport function bounceHorizontal(data) {\n if ((data.outMode !== OutMode.bounce && data.outMode !== OutMode.split) ||\n (data.direction !== OutModeDirection.left && data.direction !== OutModeDirection.right)) {\n return;\n }\n if (data.bounds.right < boundsMin && data.direction === OutModeDirection.left) {\n data.particle.position.x = data.size + data.offset.x;\n }\n else if (data.bounds.left > data.canvasSize.width && data.direction === OutModeDirection.right) {\n data.particle.position.x = data.canvasSize.width - data.size - data.offset.x;\n }\n const velocity = data.particle.velocity.x;\n let bounced = false;\n if ((data.direction === OutModeDirection.right &&\n data.bounds.right >= data.canvasSize.width &&\n velocity > minVelocity) ||\n (data.direction === OutModeDirection.left && data.bounds.left <= boundsMin && velocity < minVelocity)) {\n const newVelocity = getRangeValue(data.particle.options.bounce.horizontal.value);\n data.particle.velocity.x *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.x + data.size;\n if (data.bounds.right >= data.canvasSize.width && data.direction === OutModeDirection.right) {\n data.particle.position.x = data.canvasSize.width - minPos;\n }\n else if (data.bounds.left <= boundsMin && data.direction === OutModeDirection.left) {\n data.particle.position.x = minPos;\n }\n if (data.outMode === OutMode.split) {\n data.particle.destroy();\n }\n}\nexport function bounceVertical(data) {\n if ((data.outMode !== OutMode.bounce && data.outMode !== OutMode.split) ||\n (data.direction !== OutModeDirection.bottom && data.direction !== OutModeDirection.top)) {\n return;\n }\n if (data.bounds.bottom < boundsMin && data.direction === OutModeDirection.top) {\n data.particle.position.y = data.size + data.offset.y;\n }\n else if (data.bounds.top > data.canvasSize.height && data.direction === OutModeDirection.bottom) {\n data.particle.position.y = data.canvasSize.height - data.size - data.offset.y;\n }\n const velocity = data.particle.velocity.y;\n let bounced = false;\n if ((data.direction === OutModeDirection.bottom &&\n data.bounds.bottom >= data.canvasSize.height &&\n velocity > minVelocity) ||\n (data.direction === OutModeDirection.top && data.bounds.top <= boundsMin && velocity < minVelocity)) {\n const newVelocity = getRangeValue(data.particle.options.bounce.vertical.value);\n data.particle.velocity.y *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.y + data.size;\n if (data.bounds.bottom >= data.canvasSize.height && data.direction === OutModeDirection.bottom) {\n data.particle.position.y = data.canvasSize.height - minPos;\n }\n else if (data.bounds.top <= boundsMin && data.direction === OutModeDirection.top) {\n data.particle.position.y = minPos;\n }\n if (data.outMode === OutMode.split) {\n data.particle.destroy();\n }\n}\n", + "import { OutMode, calculateBounds, } from \"@tsparticles/engine\";\nimport { bounceHorizontal, bounceVertical } from \"./Utils.js\";\nexport class BounceOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\n OutMode.bounce,\n OutMode.split,\n ];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n let handled = false;\n for (const plugin of container.plugins.values()) {\n if (plugin.particleBounce !== undefined) {\n handled = plugin.particleBounce(particle, delta, direction);\n }\n if (handled) {\n break;\n }\n }\n if (handled) {\n return;\n }\n const pos = particle.getPosition(), offset = particle.offset, size = particle.getRadius(), bounds = calculateBounds(pos, size), canvasSize = container.canvas.size;\n bounceHorizontal({ particle, outMode, direction, bounds, canvasSize, offset, size });\n bounceVertical({ particle, outMode, direction, bounds, canvasSize, offset, size });\n }\n}\n", + "import { OutMode, ParticleOutType, Vector, getDistances, isPointInside, } from \"@tsparticles/engine\";\nconst minVelocity = 0;\nexport class DestroyOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [OutMode.destroy];\n }\n update(particle, direction, _delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case ParticleOutType.normal:\n case ParticleOutType.outside:\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n break;\n case ParticleOutType.inside: {\n const { dx, dy } = getDistances(particle.position, particle.moveCenter), { x: vx, y: vy } = particle.velocity;\n if ((vx < minVelocity && dx > particle.moveCenter.radius) ||\n (vy < minVelocity && dy > particle.moveCenter.radius) ||\n (vx >= minVelocity && dx < -particle.moveCenter.radius) ||\n (vy >= minVelocity && dy < -particle.moveCenter.radius)) {\n return;\n }\n break;\n }\n }\n container.particles.remove(particle, particle.group, true);\n }\n}\n", + "import { OutMode, OutModeDirection, Vector, isPointInside, } from \"@tsparticles/engine\";\nconst minVelocity = 0;\nexport class NoneOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [OutMode.none];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n if ((particle.options.move.distance.horizontal &&\n (direction === OutModeDirection.left || direction === OutModeDirection.right)) ??\n (particle.options.move.distance.vertical &&\n (direction === OutModeDirection.top || direction === OutModeDirection.bottom))) {\n return;\n }\n const gravityOptions = particle.options.move.gravity, container = this.container, canvasSize = container.canvas.size, pRadius = particle.getRadius();\n if (!gravityOptions.enable) {\n if ((particle.velocity.y > minVelocity && particle.position.y <= canvasSize.height + pRadius) ||\n (particle.velocity.y < minVelocity && particle.position.y >= -pRadius) ||\n (particle.velocity.x > minVelocity && particle.position.x <= canvasSize.width + pRadius) ||\n (particle.velocity.x < minVelocity && particle.position.x >= -pRadius)) {\n return;\n }\n if (!isPointInside(particle.position, container.canvas.size, Vector.origin, pRadius, direction)) {\n container.particles.remove(particle);\n }\n }\n else {\n const position = particle.position;\n if ((!gravityOptions.inverse &&\n position.y > canvasSize.height + pRadius &&\n direction === OutModeDirection.bottom) ||\n (gravityOptions.inverse && position.y < -pRadius && direction === OutModeDirection.top)) {\n container.particles.remove(particle);\n }\n }\n }\n}\n", + "import { OutMode, OutModeDirection, ParticleOutType, Vector, calculateBounds, getDistances, getRandom, isPointInside, randomInRange, } from \"@tsparticles/engine\";\nconst minVelocity = 0, minDistance = 0;\nexport class OutOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [OutMode.out];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case ParticleOutType.inside: {\n const { x: vx, y: vy } = particle.velocity;\n const circVec = Vector.origin;\n circVec.length = particle.moveCenter.radius;\n circVec.angle = particle.velocity.angle + Math.PI;\n circVec.addTo(Vector.create(particle.moveCenter));\n const { dx, dy } = getDistances(particle.position, circVec);\n if ((vx <= minVelocity && dx >= minDistance) ||\n (vy <= minVelocity && dy >= minDistance) ||\n (vx >= minVelocity && dx <= minDistance) ||\n (vy >= minVelocity && dy <= minDistance)) {\n return;\n }\n particle.position.x = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.width,\n }));\n particle.position.y = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.height,\n }));\n const { dx: newDx, dy: newDy } = getDistances(particle.position, particle.moveCenter);\n particle.direction = Math.atan2(-newDy, -newDx);\n particle.velocity.angle = particle.direction;\n break;\n }\n default: {\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n switch (particle.outType) {\n case ParticleOutType.outside: {\n particle.position.x =\n Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius,\n })) + particle.moveCenter.x;\n particle.position.y =\n Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius,\n })) + particle.moveCenter.y;\n const { dx, dy } = getDistances(particle.position, particle.moveCenter);\n if (particle.moveCenter.radius) {\n particle.direction = Math.atan2(dy, dx);\n particle.velocity.angle = particle.direction;\n }\n break;\n }\n case ParticleOutType.normal: {\n const warp = particle.options.move.warp, canvasSize = container.canvas.size, newPos = {\n bottom: canvasSize.height + particle.getRadius() + particle.offset.y,\n left: -particle.getRadius() - particle.offset.x,\n right: canvasSize.width + particle.getRadius() + particle.offset.x,\n top: -particle.getRadius() - particle.offset.y,\n }, sizeValue = particle.getRadius(), nextBounds = calculateBounds(particle.position, sizeValue);\n if (direction === OutModeDirection.right &&\n nextBounds.left > canvasSize.width + particle.offset.x) {\n particle.position.x = newPos.left;\n particle.initialPosition.x = particle.position.x;\n if (!warp) {\n particle.position.y = getRandom() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n else if (direction === OutModeDirection.left && nextBounds.right < -particle.offset.x) {\n particle.position.x = newPos.right;\n particle.initialPosition.x = particle.position.x;\n if (!warp) {\n particle.position.y = getRandom() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n if (direction === OutModeDirection.bottom &&\n nextBounds.top > canvasSize.height + particle.offset.y) {\n if (!warp) {\n particle.position.x = getRandom() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.top;\n particle.initialPosition.y = particle.position.y;\n }\n else if (direction === OutModeDirection.top && nextBounds.bottom < -particle.offset.y) {\n if (!warp) {\n particle.position.x = getRandom() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.bottom;\n particle.initialPosition.y = particle.position.y;\n }\n break;\n }\n }\n break;\n }\n }\n }\n}\n", + "import { OutMode, OutModeDirection, } from \"@tsparticles/engine\";\nimport { BounceOutMode } from \"./BounceOutMode.js\";\nimport { DestroyOutMode } from \"./DestroyOutMode.js\";\nimport { NoneOutMode } from \"./NoneOutMode.js\";\nimport { OutOutMode } from \"./OutOutMode.js\";\nconst checkOutMode = (outModes, outMode) => {\n return (outModes.default === outMode ||\n outModes.bottom === outMode ||\n outModes.left === outMode ||\n outModes.right === outMode ||\n outModes.top === outMode);\n};\nexport class OutOfCanvasUpdater {\n constructor(container) {\n this._addUpdaterIfMissing = (particle, outMode, getUpdater) => {\n const outModes = particle.options.move.outModes;\n if (!this.updaters.has(outMode) && checkOutMode(outModes, outMode)) {\n this.updaters.set(outMode, getUpdater(this.container));\n }\n };\n this._updateOutMode = (particle, delta, outMode, direction) => {\n for (const updater of this.updaters.values()) {\n updater.update(particle, direction, delta, outMode);\n }\n };\n this.container = container;\n this.updaters = new Map();\n }\n init(particle) {\n this._addUpdaterIfMissing(particle, OutMode.bounce, container => new BounceOutMode(container));\n this._addUpdaterIfMissing(particle, OutMode.out, container => new OutOutMode(container));\n this._addUpdaterIfMissing(particle, OutMode.destroy, container => new DestroyOutMode(container));\n this._addUpdaterIfMissing(particle, OutMode.none, container => new NoneOutMode(container));\n }\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning;\n }\n update(particle, delta) {\n const outModes = particle.options.move.outModes;\n this._updateOutMode(particle, delta, outModes.bottom ?? outModes.default, OutModeDirection.bottom);\n this._updateOutMode(particle, delta, outModes.left ?? outModes.default, OutModeDirection.left);\n this._updateOutMode(particle, delta, outModes.right ?? outModes.default, OutModeDirection.right);\n this._updateOutMode(particle, delta, outModes.top ?? outModes.default, OutModeDirection.top);\n }\n}\n", + "import { OutOfCanvasUpdater } from \"./OutOfCanvasUpdater.js\";\nexport async function loadOutModesUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"outModes\", container => {\n return Promise.resolve(new OutOfCanvasUpdater(container));\n }, refresh);\n}\n", + "import { getRangeValue, parseAlpha, } from \"@tsparticles/engine\";\nvar RgbIndexes;\n(function (RgbIndexes) {\n RgbIndexes[RgbIndexes[\"r\"] = 1] = \"r\";\n RgbIndexes[RgbIndexes[\"g\"] = 2] = \"g\";\n RgbIndexes[RgbIndexes[\"b\"] = 3] = \"b\";\n RgbIndexes[RgbIndexes[\"a\"] = 5] = \"a\";\n})(RgbIndexes || (RgbIndexes = {}));\nexport class RgbColorManager {\n constructor() {\n this.key = \"rgb\";\n this.stringPrefix = \"rgb\";\n }\n handleColor(color) {\n const colorValue = color.value, rgbColor = colorValue.rgb ?? color.value;\n if (rgbColor.r !== undefined) {\n return rgbColor;\n }\n }\n handleRangeColor(color) {\n const colorValue = color.value, rgbColor = colorValue.rgb ?? color.value;\n if (rgbColor.r !== undefined) {\n return {\n r: getRangeValue(rgbColor.r),\n g: getRangeValue(rgbColor.g),\n b: getRangeValue(rgbColor.b),\n };\n }\n }\n parseString(input) {\n if (!input.startsWith(this.stringPrefix)) {\n return;\n }\n const regex = /rgba?\\(\\s*(\\d{1,3})\\s*[\\s,]\\s*(\\d{1,3})\\s*[\\s,]\\s*(\\d{1,3})\\s*([\\s,]\\s*(0|1|0?\\.\\d+|(\\d{1,3})%)\\s*)?\\)/i, result = regex.exec(input), radix = 10, minLength = 4, defaultAlpha = 1;\n return result\n ? {\n a: result.length > minLength ? parseAlpha(result[RgbIndexes.a]) : defaultAlpha,\n b: parseInt(result[RgbIndexes.b], radix),\n g: parseInt(result[RgbIndexes.g], radix),\n r: parseInt(result[RgbIndexes.r], radix),\n }\n : undefined;\n }\n}\n", + "import { RgbColorManager } from \"./RgbColorManager.js\";\nexport async function loadRgbColorPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addColorManager(new RgbColorManager(), refresh);\n}\n", + "import { getRandom, percentDenominator, updateAnimation, } from \"@tsparticles/engine\";\nconst minLoops = 0;\nexport class SizeUpdater {\n init(particle) {\n const container = particle.container, sizeOptions = particle.options.size, sizeAnimation = sizeOptions.animation;\n if (sizeAnimation.enable) {\n particle.size.velocity =\n ((particle.retina.sizeAnimationSpeed ?? container.retina.sizeAnimationSpeed) / percentDenominator) *\n container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n particle.size.velocity *= getRandom();\n }\n }\n }\n isEnabled(particle) {\n return (!particle.destroyed &&\n !particle.spawning &&\n particle.size.enable &&\n ((particle.size.maxLoops ?? minLoops) <= minLoops ||\n ((particle.size.maxLoops ?? minLoops) > minLoops &&\n (particle.size.loops ?? minLoops) < (particle.size.maxLoops ?? minLoops))));\n }\n reset(particle) {\n particle.size.loops = minLoops;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateAnimation(particle, particle.size, true, particle.options.size.animation.destroy, delta);\n }\n}\n", + "import { SizeUpdater } from \"./SizeUpdater.js\";\nexport async function loadSizeUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"size\", () => {\n return Promise.resolve(new SizeUpdater());\n }, refresh);\n}\n", + "import { loadBaseMover } from \"@tsparticles/move-base\";\nimport { loadCircleShape } from \"@tsparticles/shape-circle\";\nimport { loadColorUpdater } from \"@tsparticles/updater-color\";\nimport { loadHexColorPlugin } from \"@tsparticles/plugin-hex-color\";\nimport { loadHslColorPlugin } from \"@tsparticles/plugin-hsl-color\";\nimport { loadOpacityUpdater } from \"@tsparticles/updater-opacity\";\nimport { loadOutModesUpdater } from \"@tsparticles/updater-out-modes\";\nimport { loadRgbColorPlugin } from \"@tsparticles/plugin-rgb-color\";\nimport { loadSizeUpdater } from \"@tsparticles/updater-size\";\nexport async function loadBasic(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await loadHexColorPlugin(engine, false);\n await loadHslColorPlugin(engine, false);\n await loadRgbColorPlugin(engine, false);\n await loadBaseMover(engine, false);\n await loadCircleShape(engine, false);\n await loadColorUpdater(engine, false);\n await loadOpacityUpdater(engine, false);\n await loadOutModesUpdater(engine, false);\n await loadSizeUpdater(engine, false);\n await engine.refresh(refresh);\n}\n", + "import { EasingType } from \"@tsparticles/engine\";\nexport async function loadEasingQuadPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addEasing(EasingType.easeInQuad, value => value ** 2, false);\n await engine.addEasing(EasingType.easeOutQuad, value => 1 - (1 - value) ** 2, false);\n await engine.addEasing(EasingType.easeInOutQuad, value => (value < 0.5 ? 2 * value ** 2 : 1 - (-2 * value + 2) ** 2 / 2), false);\n await engine.refresh(refresh);\n}\n", + "export function drawEmoji(data, image) {\n const { context, opacity } = data, half = 0.5, previousAlpha = context.globalAlpha;\n if (!image) {\n return;\n }\n const diameter = image.width, radius = diameter * half;\n context.globalAlpha = opacity;\n context.drawImage(image, -radius, -radius, diameter, diameter);\n context.globalAlpha = previousAlpha;\n}\n", + "import { executeOnSingleOrMultiple, getRangeMax, isInArray, itemFromSingleOrMultiple, loadFont, } from \"@tsparticles/engine\";\nimport { drawEmoji } from \"./Utils.js\";\nconst defaultFont = '\"Twemoji Mozilla\", Apple Color Emoji, \"Segoe UI Emoji\", \"Noto Color Emoji\", \"EmojiOne Color\"', noPadding = 0;\nexport class EmojiDrawer {\n constructor() {\n this.validTypes = [\"emoji\"];\n this._emojiShapeDict = new Map();\n }\n destroy() {\n for (const [key, data] of this._emojiShapeDict) {\n if (data instanceof ImageBitmap) {\n data?.close();\n }\n this._emojiShapeDict.delete(key);\n }\n }\n draw(data) {\n const key = data.particle.emojiDataKey;\n if (!key) {\n return;\n }\n const image = this._emojiShapeDict.get(key);\n if (!image) {\n return;\n }\n drawEmoji(data, image);\n }\n async init(container) {\n const options = container.actualOptions, { validTypes } = this;\n if (!validTypes.find(t => isInArray(t, options.particles.shape.type))) {\n return;\n }\n const promises = [loadFont(defaultFont)], shapeOptions = validTypes\n .map(t => options.particles.shape.options[t])\n .find(t => !!t);\n if (shapeOptions) {\n executeOnSingleOrMultiple(shapeOptions, shape => {\n if (shape.font) {\n promises.push(loadFont(shape.font));\n }\n });\n }\n await Promise.all(promises);\n }\n particleDestroy(particle) {\n particle.emojiDataKey = undefined;\n }\n particleInit(_container, particle) {\n const double = 2, shapeData = particle.shapeData;\n if (!shapeData?.value) {\n return;\n }\n const emoji = itemFromSingleOrMultiple(shapeData.value, particle.randomIndexData);\n if (!emoji) {\n return;\n }\n const emojiOptions = typeof emoji === \"string\"\n ? {\n font: shapeData.font ?? defaultFont,\n padding: shapeData.padding ?? noPadding,\n value: emoji,\n }\n : {\n font: defaultFont,\n padding: noPadding,\n ...shapeData,\n ...emoji,\n }, font = emojiOptions.font, value = emojiOptions.value;\n const key = `${value}_${font}`;\n if (this._emojiShapeDict.has(key)) {\n particle.emojiDataKey = key;\n return;\n }\n const padding = emojiOptions.padding * double, maxSize = getRangeMax(particle.size.value), fullSize = maxSize + padding, canvasSize = fullSize * double;\n let image;\n if (typeof OffscreenCanvas !== \"undefined\") {\n const canvas = new OffscreenCanvas(canvasSize, canvasSize), context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(value, fullSize, fullSize);\n image = canvas.transferToImageBitmap();\n }\n else {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvasSize;\n canvas.height = canvasSize;\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(value, fullSize, fullSize);\n image = canvas;\n }\n this._emojiShapeDict.set(key, image);\n particle.emojiDataKey = key;\n }\n}\n", + "import { EmojiDrawer } from \"./EmojiDrawer.js\";\nexport async function loadEmojiShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new EmojiDrawer(), refresh);\n}\n", + "import { Circle, Vector, clamp, getDistances, } from \"@tsparticles/engine\";\nconst minFactor = 1, identity = 1, minRadius = 0;\nfunction processAttract(engine, container, position, attractRadius, area, queryCb) {\n const attractOptions = container.actualOptions.interactivity.modes.attract;\n if (!attractOptions) {\n return;\n }\n const query = container.particles.quadTree.query(area, queryCb);\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(particle.position, position), velocity = attractOptions.speed * attractOptions.factor, attractFactor = clamp(engine.getEasing(attractOptions.easing)(identity - distance / attractRadius) * velocity, minFactor, attractOptions.maxSpeed), normVec = Vector.create(!distance ? velocity : (dx / distance) * attractFactor, !distance ? velocity : (dy / distance) * attractFactor);\n particle.position.subFrom(normVec);\n }\n}\nexport function clickAttract(engine, container, enabledCb) {\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n const { attract } = container;\n if (!attract.finish) {\n if (!attract.count) {\n attract.count = 0;\n }\n attract.count++;\n if (attract.count === container.particles.count) {\n attract.finish = true;\n }\n }\n if (attract.clicking) {\n const mousePos = container.interactivity.mouse.clickPosition, attractRadius = container.retina.attractModeDistance;\n if (!attractRadius || attractRadius < minRadius || !mousePos) {\n return;\n }\n processAttract(engine, container, mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius), (p) => enabledCb(p));\n }\n else if (attract.clicking === false) {\n attract.particles = [];\n }\n}\nexport function hoverAttract(engine, container, enabledCb) {\n const mousePos = container.interactivity.mouse.position, attractRadius = container.retina.attractModeDistance;\n if (!attractRadius || attractRadius < minRadius || !mousePos) {\n return;\n }\n processAttract(engine, container, mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius), (p) => enabledCb(p));\n}\n", + "import { EasingType, isNull } from \"@tsparticles/engine\";\nexport class Attract {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.easing = EasingType.easeOutQuad;\n this.factor = 1;\n this.maxSpeed = 50;\n this.speed = 1;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\n", + "import { ExternalInteractorBase, isInArray, millisecondsToSeconds, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { clickAttract, hoverAttract } from \"./Utils.js\";\nimport { Attract } from \"./Options/Classes/Attract.js\";\nconst attractMode = \"attract\";\nexport class Attractor extends ExternalInteractorBase {\n constructor(engine, container) {\n super(container);\n this._engine = engine;\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions, attract = options.interactivity.modes.attract;\n if (!attract || mode !== attractMode) {\n return;\n }\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = true;\n container.attract.count = 0;\n for (const particle of container.attract.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.attract.particles = [];\n container.attract.finish = false;\n setTimeout(() => {\n if (container.destroyed) {\n return;\n }\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = false;\n }, attract.duration * millisecondsToSeconds);\n };\n }\n clear() {\n }\n init() {\n const container = this.container, attract = container.actualOptions.interactivity.modes.attract;\n if (!attract) {\n return;\n }\n container.retina.attractModeDistance = attract.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, { enable: hoverEnabled, mode: hoverMode } = events.onHover, { enable: clickEnabled, mode: clickMode } = events.onClick;\n if (mouseMoveStatus && hoverEnabled && isInArray(attractMode, hoverMode)) {\n hoverAttract(this._engine, this.container, p => this.isEnabled(p));\n }\n else if (clickEnabled && isInArray(attractMode, clickMode)) {\n clickAttract(this._engine, this.container, p => this.isEnabled(p));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events;\n if ((!mouse.position || !events.onHover.enable) && (!mouse.clickPosition || !events.onClick.enable)) {\n return false;\n }\n const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;\n return isInArray(attractMode, hoverMode) || isInArray(attractMode, clickMode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.attract) {\n options.attract = new Attract();\n }\n for (const source of sources) {\n options.attract.load(source?.attract);\n }\n }\n reset() {\n }\n}\n", + "import { Attractor } from \"./Attractor.js\";\nexport async function loadExternalAttractInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalAttract\", container => {\n return Promise.resolve(new Attractor(engine, container));\n }, refresh);\n}\nexport * from \"./Options/Classes/Attract.js\";\nexport * from \"./Options/Interfaces/IAttract.js\";\n", + "import { Circle, DivType, Rectangle, Vector, calculateBounds, circleBounce, circleBounceDataFromParticle, divModeExecute, rectBounce, } from \"@tsparticles/engine\";\nconst squareExp = 2, half = 0.5, halfPI = Math.PI * half, double = 2, toleranceFactor = 10, minRadius = 0;\nfunction processBounce(container, position, radius, area, enabledCb) {\n const query = container.particles.quadTree.query(area, enabledCb);\n for (const particle of query) {\n if (area instanceof Circle) {\n circleBounce(circleBounceDataFromParticle(particle), {\n position,\n radius,\n mass: radius ** squareExp * halfPI,\n velocity: Vector.origin,\n factor: Vector.origin,\n });\n }\n else if (area instanceof Rectangle) {\n rectBounce(particle, calculateBounds(position, radius));\n }\n }\n}\nfunction singleSelectorBounce(container, selector, div, bounceCb) {\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach(item => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth * half) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight * half) * pxRatio,\n }, radius = elem.offsetWidth * half * pxRatio, tolerance = toleranceFactor * pxRatio, area = div.type === DivType.circle\n ? new Circle(pos.x, pos.y, radius + tolerance)\n : new Rectangle(elem.offsetLeft * pxRatio - tolerance, elem.offsetTop * pxRatio - tolerance, elem.offsetWidth * pxRatio + tolerance * double, elem.offsetHeight * pxRatio + tolerance * double);\n bounceCb(pos, radius, area);\n });\n}\nexport function divBounce(container, divs, bounceMode, enabledCb) {\n divModeExecute(bounceMode, divs, (selector, div) => singleSelectorBounce(container, selector, div, (pos, radius, area) => processBounce(container, pos, radius, area, enabledCb)));\n}\nexport function mouseBounce(container, enabledCb) {\n const pxRatio = container.retina.pixelRatio, tolerance = toleranceFactor * pxRatio, mousePos = container.interactivity.mouse.position, radius = container.retina.bounceModeDistance;\n if (!radius || radius < minRadius || !mousePos) {\n return;\n }\n processBounce(container, mousePos, radius, new Circle(mousePos.x, mousePos.y, radius + tolerance), enabledCb);\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nexport class Bounce {\n constructor() {\n this.distance = 200;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n }\n}\n", + "import { ExternalInteractorBase, isDivModeEnabled, isInArray, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { divBounce, mouseBounce } from \"./Utils.js\";\nimport { Bounce } from \"./Options/Classes/Bounce.js\";\nconst bounceMode = \"bounce\";\nexport class Bouncer extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, bounce = container.actualOptions.interactivity.modes.bounce;\n if (!bounce) {\n return;\n }\n container.retina.bounceModeDistance = bounce.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, events = options.interactivity.events, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(bounceMode, hoverMode)) {\n mouseBounce(this.container, p => this.isEnabled(p));\n }\n else {\n divBounce(this.container, divs, bounceMode, p => this.isEnabled(p));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events, divs = events.onDiv;\n return ((!!mouse.position && events.onHover.enable && isInArray(bounceMode, events.onHover.mode)) ||\n isDivModeEnabled(bounceMode, divs));\n }\n loadModeOptions(options, ...sources) {\n if (!options.bounce) {\n options.bounce = new Bounce();\n }\n for (const source of sources) {\n options.bounce.load(source?.bounce);\n }\n }\n reset() {\n }\n}\n", + "import { Bouncer } from \"./Bouncer.js\";\nexport async function loadExternalBounceInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalBounce\", container => {\n return Promise.resolve(new Bouncer(container));\n }, refresh);\n}\nexport * from \"./Options/Classes/Bounce.js\";\nexport * from \"./Options/Interfaces/IBounce.js\";\n", + "import { OptionsColor, executeOnSingleOrMultiple, isArray, isNull, } from \"@tsparticles/engine\";\nexport class BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.mix = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.mix !== undefined) {\n this.mix = data.mix;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.color !== undefined) {\n const sourceColor = isArray(this.color) ? undefined : this.color;\n this.color = executeOnSingleOrMultiple(data.color, color => {\n return OptionsColor.create(sourceColor, color);\n });\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nimport { BubbleBase } from \"./BubbleBase.js\";\nexport class BubbleDiv extends BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n", + "import { executeOnSingleOrMultiple, isNull, } from \"@tsparticles/engine\";\nimport { BubbleBase } from \"./BubbleBase.js\";\nimport { BubbleDiv } from \"./BubbleDiv.js\";\nexport class Bubble extends BubbleBase {\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n this.divs = executeOnSingleOrMultiple(data.divs, div => {\n const tmp = new BubbleDiv();\n tmp.load(div);\n return tmp;\n });\n }\n}\n", + "export var ProcessBubbleType;\n(function (ProcessBubbleType) {\n ProcessBubbleType[\"color\"] = \"color\";\n ProcessBubbleType[\"opacity\"] = \"opacity\";\n ProcessBubbleType[\"size\"] = \"size\";\n})(ProcessBubbleType || (ProcessBubbleType = {}));\n", + "import { clamp } from \"@tsparticles/engine\";\nexport function calculateBubbleValue(particleValue, modeValue, optionsValue, ratio) {\n if (modeValue >= optionsValue) {\n const value = particleValue + (modeValue - optionsValue) * ratio;\n return clamp(value, particleValue, modeValue);\n }\n else if (modeValue < optionsValue) {\n const value = particleValue - (optionsValue - modeValue) * ratio;\n return clamp(value, modeValue, particleValue);\n }\n}\n", + "import { Circle, DivType, ExternalInteractorBase, Rectangle, colorMix, divMode, divModeExecute, getDistance, getRangeMax, isDivModeEnabled, isInArray, itemFromSingleOrMultiple, millisecondsToSeconds, mouseLeaveEvent, mouseMoveEvent, rangeColorToHsl, rgbToHsl, } from \"@tsparticles/engine\";\nimport { Bubble } from \"./Options/Classes/Bubble.js\";\nimport { ProcessBubbleType } from \"./Enums.js\";\nimport { calculateBubbleValue } from \"./Utils.js\";\nconst bubbleMode = \"bubble\", minDistance = 0, defaultClickTime = 0, double = 2, defaultOpacity = 1, ratioOffset = 1, defaultBubbleValue = 0, minRatio = 0, half = 0.5, defaultRatio = 1;\nexport class Bubbler extends ExternalInteractorBase {\n constructor(container, engine) {\n super(container);\n this._clickBubble = () => {\n const container = this.container, options = container.actualOptions, mouseClickPos = container.interactivity.mouse.clickPosition, bubbleOptions = options.interactivity.modes.bubble;\n if (!bubbleOptions || !mouseClickPos) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n const distance = container.retina.bubbleModeDistance;\n if (!distance || distance < minDistance) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mouseClickPos, distance, p => this.isEnabled(p)), { bubble } = container;\n for (const particle of query) {\n if (!bubble.clicking) {\n continue;\n }\n particle.bubble.inRange = !bubble.durationEnd;\n const pos = particle.getPosition(), distMouse = getDistance(pos, mouseClickPos), timeSpent = (new Date().getTime() - (container.interactivity.mouse.clickTime ?? defaultClickTime)) /\n millisecondsToSeconds;\n if (timeSpent > bubbleOptions.duration) {\n bubble.durationEnd = true;\n }\n if (timeSpent > bubbleOptions.duration * double) {\n bubble.clicking = false;\n bubble.durationEnd = false;\n }\n const sizeData = {\n bubbleObj: {\n optValue: container.retina.bubbleModeSize,\n value: particle.bubble.radius,\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.size.value) * container.retina.pixelRatio,\n value: particle.size.value,\n },\n type: ProcessBubbleType.size,\n };\n this._process(particle, distMouse, timeSpent, sizeData);\n const opacityData = {\n bubbleObj: {\n optValue: bubbleOptions.opacity,\n value: particle.bubble.opacity,\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.opacity.value),\n value: particle.opacity?.value ?? defaultOpacity,\n },\n type: ProcessBubbleType.opacity,\n };\n this._process(particle, distMouse, timeSpent, opacityData);\n if (!bubble.durationEnd && distMouse <= distance) {\n this._hoverBubbleColor(particle, distMouse);\n }\n else {\n delete particle.bubble.color;\n }\n }\n };\n this._hoverBubble = () => {\n const container = this.container, mousePos = container.interactivity.mouse.position, distance = container.retina.bubbleModeDistance;\n if (!distance || distance < minDistance || !mousePos) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mousePos, distance, p => this.isEnabled(p));\n for (const particle of query) {\n particle.bubble.inRange = true;\n const pos = particle.getPosition(), pointDistance = getDistance(pos, mousePos), ratio = ratioOffset - pointDistance / distance;\n if (pointDistance <= distance) {\n if (ratio >= minRatio && container.interactivity.status === mouseMoveEvent) {\n this._hoverBubbleSize(particle, ratio);\n this._hoverBubbleOpacity(particle, ratio);\n this._hoverBubbleColor(particle, ratio);\n }\n }\n else {\n this.reset(particle);\n }\n if (container.interactivity.status === mouseLeaveEvent) {\n this.reset(particle);\n }\n }\n };\n this._hoverBubbleColor = (particle, ratio, divBubble) => {\n const options = this.container.actualOptions, bubbleOptions = divBubble ?? options.interactivity.modes.bubble;\n if (!bubbleOptions) {\n return;\n }\n if (!particle.bubble.finalColor) {\n const modeColor = bubbleOptions.color;\n if (!modeColor) {\n return;\n }\n const bubbleColor = itemFromSingleOrMultiple(modeColor);\n particle.bubble.finalColor = rangeColorToHsl(this._engine, bubbleColor);\n }\n if (!particle.bubble.finalColor) {\n return;\n }\n if (bubbleOptions.mix) {\n particle.bubble.color = undefined;\n const pColor = particle.getFillColor();\n particle.bubble.color = pColor\n ? rgbToHsl(colorMix(pColor, particle.bubble.finalColor, ratioOffset - ratio, ratio))\n : particle.bubble.finalColor;\n }\n else {\n particle.bubble.color = particle.bubble.finalColor;\n }\n };\n this._hoverBubbleOpacity = (particle, ratio, divBubble) => {\n const container = this.container, options = container.actualOptions, modeOpacity = divBubble?.opacity ?? options.interactivity.modes.bubble?.opacity;\n if (!modeOpacity) {\n return;\n }\n const optOpacity = particle.options.opacity.value, pOpacity = particle.opacity?.value ?? defaultOpacity, opacity = calculateBubbleValue(pOpacity, modeOpacity, getRangeMax(optOpacity), ratio);\n if (opacity !== undefined) {\n particle.bubble.opacity = opacity;\n }\n };\n this._hoverBubbleSize = (particle, ratio, divBubble) => {\n const container = this.container, modeSize = divBubble?.size ? divBubble.size * container.retina.pixelRatio : container.retina.bubbleModeSize;\n if (modeSize === undefined) {\n return;\n }\n const optSize = getRangeMax(particle.options.size.value) * container.retina.pixelRatio, pSize = particle.size.value, size = calculateBubbleValue(pSize, modeSize, optSize, ratio);\n if (size !== undefined) {\n particle.bubble.radius = size;\n }\n };\n this._process = (particle, distMouse, timeSpent, data) => {\n const container = this.container, bubbleParam = data.bubbleObj.optValue, options = container.actualOptions, bubbleOptions = options.interactivity.modes.bubble;\n if (!bubbleOptions || bubbleParam === undefined) {\n return;\n }\n const bubbleDuration = bubbleOptions.duration, bubbleDistance = container.retina.bubbleModeDistance, particlesParam = data.particlesObj.optValue, pObjBubble = data.bubbleObj.value, pObj = data.particlesObj.value ?? defaultBubbleValue, type = data.type;\n if (!bubbleDistance || bubbleDistance < minDistance || bubbleParam === particlesParam) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n if (container.bubble.durationEnd) {\n if (pObjBubble) {\n if (type === ProcessBubbleType.size) {\n delete particle.bubble.radius;\n }\n if (type === ProcessBubbleType.opacity) {\n delete particle.bubble.opacity;\n }\n }\n }\n else {\n if (distMouse <= bubbleDistance) {\n const obj = pObjBubble ?? pObj;\n if (obj !== bubbleParam) {\n const value = pObj - (timeSpent * (pObj - bubbleParam)) / bubbleDuration;\n if (type === ProcessBubbleType.size) {\n particle.bubble.radius = value;\n }\n if (type === ProcessBubbleType.opacity) {\n particle.bubble.opacity = value;\n }\n }\n }\n else {\n if (type === ProcessBubbleType.size) {\n delete particle.bubble.radius;\n }\n if (type === ProcessBubbleType.opacity) {\n delete particle.bubble.opacity;\n }\n }\n }\n };\n this._singleSelectorHover = (delta, selector, div) => {\n const container = this.container, selectors = document.querySelectorAll(selector), bubble = container.actualOptions.interactivity.modes.bubble;\n if (!bubble || !selectors.length) {\n return;\n }\n selectors.forEach(item => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth * half) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight * half) * pxRatio,\n }, repulseRadius = elem.offsetWidth * half * pxRatio, area = div.type === DivType.circle\n ? new Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), query = container.particles.quadTree.query(area, p => this.isEnabled(p));\n for (const particle of query) {\n if (!area.contains(particle.getPosition())) {\n continue;\n }\n particle.bubble.inRange = true;\n const divs = bubble.divs, divBubble = divMode(divs, elem);\n if (!particle.bubble.div || particle.bubble.div !== elem) {\n this.clear(particle, delta, true);\n particle.bubble.div = elem;\n }\n this._hoverBubbleSize(particle, defaultRatio, divBubble);\n this._hoverBubbleOpacity(particle, defaultRatio, divBubble);\n this._hoverBubbleColor(particle, defaultRatio, divBubble);\n }\n });\n };\n this._engine = engine;\n if (!container.bubble) {\n container.bubble = {};\n }\n this.handleClickMode = (mode) => {\n if (mode !== bubbleMode) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n container.bubble.clicking = true;\n };\n }\n clear(particle, delta, force) {\n if (particle.bubble.inRange && !force) {\n return;\n }\n delete particle.bubble.div;\n delete particle.bubble.opacity;\n delete particle.bubble.radius;\n delete particle.bubble.color;\n }\n init() {\n const container = this.container, bubble = container.actualOptions.interactivity.modes.bubble;\n if (!bubble) {\n return;\n }\n container.retina.bubbleModeDistance = bubble.distance * container.retina.pixelRatio;\n if (bubble.size !== undefined) {\n container.retina.bubbleModeSize = bubble.size * container.retina.pixelRatio;\n }\n }\n interact(delta) {\n const options = this.container.actualOptions, events = options.interactivity.events, onHover = events.onHover, onClick = events.onClick, hoverEnabled = onHover.enable, hoverMode = onHover.mode, clickEnabled = onClick.enable, clickMode = onClick.mode, divs = events.onDiv;\n if (hoverEnabled && isInArray(bubbleMode, hoverMode)) {\n this._hoverBubble();\n }\n else if (clickEnabled && isInArray(bubbleMode, clickMode)) {\n this._clickBubble();\n }\n else {\n divModeExecute(bubbleMode, divs, (selector, div) => this._singleSelectorHover(delta, selector, div));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events, { onClick, onDiv, onHover } = events, divBubble = isDivModeEnabled(bubbleMode, onDiv);\n if (!(divBubble || (onHover.enable && !!mouse.position) || (onClick.enable && mouse.clickPosition))) {\n return false;\n }\n return isInArray(bubbleMode, onHover.mode) || isInArray(bubbleMode, onClick.mode) || divBubble;\n }\n loadModeOptions(options, ...sources) {\n if (!options.bubble) {\n options.bubble = new Bubble();\n }\n for (const source of sources) {\n options.bubble.load(source?.bubble);\n }\n }\n reset(particle) {\n particle.bubble.inRange = false;\n }\n}\n", + "import { Bubbler } from \"./Bubbler.js\";\nexport async function loadExternalBubbleInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalBubble\", container => {\n return Promise.resolve(new Bubbler(container, engine));\n }, refresh);\n}\nexport * from \"./Options/Classes/BubbleBase.js\";\nexport * from \"./Options/Classes/BubbleDiv.js\";\nexport * from \"./Options/Classes/Bubble.js\";\nexport * from \"./Options/Interfaces/IBubbleBase.js\";\nexport * from \"./Options/Interfaces/IBubbleDiv.js\";\nexport * from \"./Options/Interfaces/IBubble.js\";\n", + "import { isNull } from \"@tsparticles/engine\";\nexport class ConnectLinks {\n constructor() {\n this.opacity = 0.5;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nimport { ConnectLinks } from \"./ConnectLinks.js\";\nexport class Connect {\n constructor() {\n this.distance = 80;\n this.links = new ConnectLinks();\n this.radius = 60;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load(data.links);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n", + "import { clamp, colorMix, drawLine, getStyleFromHsl, getStyleFromRgb, } from \"@tsparticles/engine\";\nconst gradientMin = 0, gradientMax = 1, defaultLinksWidth = 0;\nexport function gradient(context, p1, p2, opacity) {\n const gradStop = Math.floor(p2.getRadius() / p1.getRadius()), color1 = p1.getFillColor(), color2 = p2.getFillColor();\n if (!color1 || !color2) {\n return;\n }\n const sourcePos = p1.getPosition(), destPos = p2.getPosition(), midRgb = colorMix(color1, color2, p1.getRadius(), p2.getRadius()), grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y);\n grad.addColorStop(gradientMin, getStyleFromHsl(color1, opacity));\n grad.addColorStop(clamp(gradStop, gradientMin, gradientMax), getStyleFromRgb(midRgb, opacity));\n grad.addColorStop(gradientMax, getStyleFromHsl(color2, opacity));\n return grad;\n}\nexport function drawConnectLine(context, width, lineStyle, begin, end) {\n drawLine(context, begin, end);\n context.lineWidth = width;\n context.strokeStyle = lineStyle;\n context.stroke();\n}\nexport function lineStyle(container, ctx, p1, p2) {\n const options = container.actualOptions, connectOptions = options.interactivity.modes.connect;\n if (!connectOptions) {\n return;\n }\n return gradient(ctx, p1, p2, connectOptions.links.opacity);\n}\nexport function drawConnection(container, p1, p2) {\n container.canvas.draw(ctx => {\n const ls = lineStyle(container, ctx, p1, p2);\n if (!ls) {\n return;\n }\n const pos1 = p1.getPosition(), pos2 = p2.getPosition();\n drawConnectLine(ctx, p1.retina.linksWidth ?? defaultLinksWidth, ls, pos1, pos2);\n });\n}\n", + "import { ExternalInteractorBase, isInArray, } from \"@tsparticles/engine\";\nimport { Connect } from \"./Options/Classes/Connect.js\";\nimport { drawConnection } from \"./Utils.js\";\nconst connectMode = \"connect\", minDistance = 0;\nexport class Connector extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, connect = container.actualOptions.interactivity.modes.connect;\n if (!connect) {\n return;\n }\n container.retina.connectModeDistance = connect.distance * container.retina.pixelRatio;\n container.retina.connectModeRadius = connect.radius * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"pointermove\") {\n const mousePos = container.interactivity.mouse.position, { connectModeDistance, connectModeRadius } = container.retina;\n if (!connectModeDistance ||\n connectModeDistance < minDistance ||\n !connectModeRadius ||\n connectModeRadius < minDistance ||\n !mousePos) {\n return;\n }\n const distance = Math.abs(connectModeRadius), query = container.particles.quadTree.queryCircle(mousePos, distance, p => this.isEnabled(p));\n query.forEach((p1, i) => {\n const pos1 = p1.getPosition(), indexOffset = 1;\n for (const p2 of query.slice(i + indexOffset)) {\n const pos2 = p2.getPosition(), distMax = Math.abs(connectModeDistance), xDiff = Math.abs(pos1.x - pos2.x), yDiff = Math.abs(pos1.y - pos2.y);\n if (xDiff < distMax && yDiff < distMax) {\n drawConnection(container, p1, p2);\n }\n }\n });\n }\n }\n isEnabled(particle) {\n const container = this.container, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? container.actualOptions.interactivity).events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n return isInArray(connectMode, events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.connect) {\n options.connect = new Connect();\n }\n for (const source of sources) {\n options.connect.load(source?.connect);\n }\n }\n reset() {\n }\n}\n", + "import { Connector } from \"./Connector.js\";\nexport async function loadExternalConnectInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalConnect\", container => {\n return Promise.resolve(new Connector(container));\n }, refresh);\n}\nexport * from \"./Options/Classes/Connect.js\";\nexport * from \"./Options/Classes/ConnectLinks.js\";\nexport * from \"./Options/Interfaces/IConnect.js\";\nexport * from \"./Options/Interfaces/IConnectLinks.js\";\n", + "import { OptionsColor, isNull } from \"@tsparticles/engine\";\nexport class GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nimport { GrabLinks } from \"./GrabLinks.js\";\nexport class Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load(data.links);\n }\n}\n", + "import { drawLine, getStyleFromRgb } from \"@tsparticles/engine\";\nconst defaultWidth = 0;\nexport function drawGrabLine(context, width, begin, end, colorLine, opacity) {\n drawLine(context, begin, end);\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n context.lineWidth = width;\n context.stroke();\n}\nexport function drawGrab(container, particle, lineColor, opacity, mousePos) {\n container.canvas.draw(ctx => {\n const beginPos = particle.getPosition();\n drawGrabLine(ctx, particle.retina.linksWidth ?? defaultWidth, beginPos, mousePos, lineColor, opacity);\n });\n}\n", + "import { ExternalInteractorBase, getDistance, getLinkColor, getLinkRandomColor, isInArray, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { Grab } from \"./Options/Classes/Grab.js\";\nimport { drawGrab } from \"./Utils.js\";\nconst grabMode = \"grab\", minDistance = 0, minOpacity = 0;\nexport class Grabber extends ExternalInteractorBase {\n constructor(container, engine) {\n super(container);\n this._engine = engine;\n }\n clear() {\n }\n init() {\n const container = this.container, grab = container.actualOptions.interactivity.modes.grab;\n if (!grab) {\n return;\n }\n container.retina.grabModeDistance = grab.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, interactivity = options.interactivity;\n if (!interactivity.modes.grab ||\n !interactivity.events.onHover.enable ||\n container.interactivity.status !== mouseMoveEvent) {\n return;\n }\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = container.retina.grabModeDistance;\n if (!distance || distance < minDistance) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mousePos, distance, p => this.isEnabled(p));\n for (const particle of query) {\n const pos = particle.getPosition(), pointDistance = getDistance(pos, mousePos);\n if (pointDistance > distance) {\n continue;\n }\n const grabLineOptions = interactivity.modes.grab.links, lineOpacity = grabLineOptions.opacity, opacityLine = lineOpacity - (pointDistance * lineOpacity) / distance;\n if (opacityLine <= minOpacity) {\n continue;\n }\n const optColor = grabLineOptions.color ?? particle.options.links?.color;\n if (!container.particles.grabLineColor && optColor) {\n const linksOptions = interactivity.modes.grab.links;\n container.particles.grabLineColor = getLinkRandomColor(this._engine, optColor, linksOptions.blink, linksOptions.consent);\n }\n const colorLine = getLinkColor(particle, undefined, container.particles.grabLineColor);\n if (!colorLine) {\n continue;\n }\n drawGrab(container, particle, colorLine, opacityLine, mousePos);\n }\n }\n isEnabled(particle) {\n const container = this.container, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(grabMode, events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.grab) {\n options.grab = new Grab();\n }\n for (const source of sources) {\n options.grab.load(source?.grab);\n }\n }\n reset() {\n }\n}\n", + "import { Grabber } from \"./Grabber.js\";\nexport async function loadExternalGrabInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalGrab\", container => {\n return Promise.resolve(new Grabber(container, engine));\n }, refresh);\n}\nexport * from \"./Options/Classes/Grab.js\";\nexport * from \"./Options/Classes/GrabLinks.js\";\nexport * from \"./Options/Interfaces/IGrab.js\";\nexport * from \"./Options/Interfaces/IGrabLinks.js\";\n", + "import { ExternalInteractorBase } from \"@tsparticles/engine\";\nconst pauseMode = \"pause\";\nexport class Pauser extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== pauseMode) {\n return;\n }\n const container = this.container;\n if (container.animationStatus) {\n container.pause();\n }\n else {\n container.play();\n }\n };\n }\n clear() {\n }\n init() {\n }\n interact() {\n }\n isEnabled() {\n return true;\n }\n reset() {\n }\n}\n", + "import { Pauser } from \"./Pauser.js\";\nexport async function loadExternalPauseInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalPause\", container => {\n return Promise.resolve(new Pauser(container));\n }, refresh);\n}\n", + "import { deepExtend, executeOnSingleOrMultiple, isNull, setRangeValue, } from \"@tsparticles/engine\";\nexport class Push {\n constructor() {\n this.default = true;\n this.groups = [];\n this.quantity = 4;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n if (data.groups !== undefined) {\n this.groups = data.groups.map(t => t);\n }\n if (!this.groups.length) {\n this.default = true;\n }\n const quantity = data.quantity;\n if (quantity !== undefined) {\n this.quantity = setRangeValue(quantity);\n }\n this.particles = executeOnSingleOrMultiple(data.particles, particles => {\n return deepExtend({}, particles);\n });\n }\n}\n", + "import { ExternalInteractorBase, deepExtend, getRangeValue, itemFromArray, itemFromSingleOrMultiple, } from \"@tsparticles/engine\";\nimport { Push } from \"./Options/Classes/Push.js\";\nconst pushMode = \"push\", minQuantity = 0;\nexport class Pusher extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== pushMode) {\n return;\n }\n const container = this.container, options = container.actualOptions, pushOptions = options.interactivity.modes.push;\n if (!pushOptions) {\n return;\n }\n const quantity = getRangeValue(pushOptions.quantity);\n if (quantity <= minQuantity) {\n return;\n }\n const group = itemFromArray([undefined, ...pushOptions.groups]), groupOptions = group !== undefined ? container.actualOptions.particles.groups[group] : undefined, particlesOptions = itemFromSingleOrMultiple(pushOptions.particles), overrideOptions = deepExtend(groupOptions, particlesOptions);\n void container.particles.push(quantity, container.interactivity.mouse, overrideOptions, group);\n };\n }\n clear() {\n }\n init() {\n }\n interact() {\n }\n isEnabled() {\n return true;\n }\n loadModeOptions(options, ...sources) {\n if (!options.push) {\n options.push = new Push();\n }\n for (const source of sources) {\n options.push.load(source?.push);\n }\n }\n reset() {\n }\n}\n", + "import { Pusher } from \"./Pusher.js\";\nexport async function loadExternalPushInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalPush\", container => {\n return Promise.resolve(new Pusher(container));\n }, refresh);\n}\nexport * from \"./Options/Classes/Push.js\";\nexport * from \"./Options/Interfaces/IPush.js\";\n", + "import { isNull, setRangeValue } from \"@tsparticles/engine\";\nexport class Remove {\n constructor() {\n this.quantity = 2;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n const quantity = data.quantity;\n if (quantity !== undefined) {\n this.quantity = setRangeValue(quantity);\n }\n }\n}\n", + "import { ExternalInteractorBase, getRangeValue, } from \"@tsparticles/engine\";\nimport { Remove } from \"./Options/Classes/Remove.js\";\nconst removeMode = \"remove\";\nexport class Remover extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n const container = this.container, options = container.actualOptions;\n if (!options.interactivity.modes.remove || mode !== removeMode) {\n return;\n }\n const removeNb = getRangeValue(options.interactivity.modes.remove.quantity);\n container.particles.removeQuantity(removeNb);\n };\n }\n clear() {\n }\n init() {\n }\n interact() {\n }\n isEnabled() {\n return true;\n }\n loadModeOptions(options, ...sources) {\n if (!options.remove) {\n options.remove = new Remove();\n }\n for (const source of sources) {\n options.remove.load(source?.remove);\n }\n }\n reset() {\n }\n}\n", + "import { Remover } from \"./Remover.js\";\nexport async function loadExternalRemoveInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalRemove\", container => {\n return Promise.resolve(new Remover(container));\n }, refresh);\n}\nexport * from \"./Options/Classes/Remove.js\";\nexport * from \"./Options/Interfaces/IRemove.js\";\n", + "import { EasingType, isNull } from \"@tsparticles/engine\";\nexport class RepulseBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.factor = 100;\n this.speed = 1;\n this.maxSpeed = 50;\n this.easing = EasingType.easeOutQuad;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nimport { RepulseBase } from \"./RepulseBase.js\";\nexport class RepulseDiv extends RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n", + "import { executeOnSingleOrMultiple, isNull, } from \"@tsparticles/engine\";\nimport { RepulseBase } from \"./RepulseBase.js\";\nimport { RepulseDiv } from \"./RepulseDiv.js\";\nexport class Repulse extends RepulseBase {\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n this.divs = executeOnSingleOrMultiple(data.divs, div => {\n const tmp = new RepulseDiv();\n tmp.load(div);\n return tmp;\n });\n }\n}\n", + "import { Circle, DivType, ExternalInteractorBase, Rectangle, Vector, clamp, divMode, divModeExecute, getDistances, isDivModeEnabled, isInArray, millisecondsToSeconds, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { Repulse } from \"./Options/Classes/Repulse.js\";\nconst repulseMode = \"repulse\", minDistance = 0, repulseRadiusFactor = 6, repulseRadiusPower = 3, squarePower = 2, minRadius = 0, minSpeed = 0, easingOffset = 1, half = 0.5;\nexport class Repulser extends ExternalInteractorBase {\n constructor(engine, container) {\n super(container);\n this._clickRepulse = () => {\n const container = this.container, repulseOptions = container.actualOptions.interactivity.modes.repulse;\n if (!repulseOptions) {\n return;\n }\n const repulse = container.repulse ?? { particles: [] };\n if (!repulse.finish) {\n if (!repulse.count) {\n repulse.count = 0;\n }\n repulse.count++;\n if (repulse.count === container.particles.count) {\n repulse.finish = true;\n }\n }\n if (repulse.clicking) {\n const repulseDistance = container.retina.repulseModeDistance;\n if (!repulseDistance || repulseDistance < minDistance) {\n return;\n }\n const repulseRadius = Math.pow(repulseDistance / repulseRadiusFactor, repulseRadiusPower), mouseClickPos = container.interactivity.mouse.clickPosition;\n if (mouseClickPos === undefined) {\n return;\n }\n const range = new Circle(mouseClickPos.x, mouseClickPos.y, repulseRadius), query = container.particles.quadTree.query(range, p => this.isEnabled(p));\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(mouseClickPos, particle.position), d = distance ** squarePower, velocity = repulseOptions.speed, force = (-repulseRadius * velocity) / d;\n if (d <= repulseRadius) {\n repulse.particles.push(particle);\n const vect = Vector.create(dx, dy);\n vect.length = force;\n particle.velocity.setTo(vect);\n }\n }\n }\n else if (repulse.clicking === false) {\n for (const particle of repulse.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n repulse.particles = [];\n }\n };\n this._hoverRepulse = () => {\n const container = this.container, mousePos = container.interactivity.mouse.position, repulseRadius = container.retina.repulseModeDistance;\n if (!repulseRadius || repulseRadius < minRadius || !mousePos) {\n return;\n }\n this._processRepulse(mousePos, repulseRadius, new Circle(mousePos.x, mousePos.y, repulseRadius));\n };\n this._processRepulse = (position, repulseRadius, area, divRepulse) => {\n const container = this.container, query = container.particles.quadTree.query(area, p => this.isEnabled(p)), repulseOptions = container.actualOptions.interactivity.modes.repulse;\n if (!repulseOptions) {\n return;\n }\n const { easing, speed, factor, maxSpeed } = repulseOptions, easingFunc = this._engine.getEasing(easing), velocity = (divRepulse?.speed ?? speed) * factor;\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(particle.position, position), repulseFactor = clamp(easingFunc(easingOffset - distance / repulseRadius) * velocity, minSpeed, maxSpeed), normVec = Vector.create(!distance ? velocity : (dx / distance) * repulseFactor, !distance ? velocity : (dy / distance) * repulseFactor);\n particle.position.addTo(normVec);\n }\n };\n this._singleSelectorRepulse = (selector, div) => {\n const container = this.container, repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach(item => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth * half) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight * half) * pxRatio,\n }, repulseRadius = elem.offsetWidth * half * pxRatio, area = div.type === DivType.circle\n ? new Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), divs = repulse.divs, divRepulse = divMode(divs, elem);\n this._processRepulse(pos, repulseRadius, area, divRepulse);\n });\n };\n this._engine = engine;\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions, repulseOpts = options.interactivity.modes.repulse;\n if (!repulseOpts || mode !== repulseMode) {\n return;\n }\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n const repulse = container.repulse;\n repulse.clicking = true;\n repulse.count = 0;\n for (const particle of container.repulse.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n repulse.particles = [];\n repulse.finish = false;\n setTimeout(() => {\n if (container.destroyed) {\n return;\n }\n repulse.clicking = false;\n }, repulseOpts.duration * millisecondsToSeconds);\n };\n }\n clear() {\n }\n init() {\n const container = this.container, repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n container.retina.repulseModeDistance = repulse.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, hover = events.onHover, hoverEnabled = hover.enable, hoverMode = hover.mode, click = events.onClick, clickEnabled = click.enable, clickMode = click.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(repulseMode, hoverMode)) {\n this._hoverRepulse();\n }\n else if (clickEnabled && isInArray(repulseMode, clickMode)) {\n this._clickRepulse();\n }\n else {\n divModeExecute(repulseMode, divs, (selector, div) => this._singleSelectorRepulse(selector, div));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events, divs = events.onDiv, hover = events.onHover, click = events.onClick, divRepulse = isDivModeEnabled(repulseMode, divs);\n if (!(divRepulse || (hover.enable && !!mouse.position) || (click.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = hover.mode, clickMode = click.mode;\n return isInArray(repulseMode, hoverMode) || isInArray(repulseMode, clickMode) || divRepulse;\n }\n loadModeOptions(options, ...sources) {\n if (!options.repulse) {\n options.repulse = new Repulse();\n }\n for (const source of sources) {\n options.repulse.load(source?.repulse);\n }\n }\n reset() {\n }\n}\n", + "import { Repulser } from \"./Repulser.js\";\nexport async function loadExternalRepulseInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalRepulse\", container => {\n return Promise.resolve(new Repulser(engine, container));\n }, refresh);\n}\nexport * from \"./Options/Classes/RepulseBase.js\";\nexport * from \"./Options/Classes/RepulseDiv.js\";\nexport * from \"./Options/Classes/Repulse.js\";\nexport * from \"./Options/Interfaces/IRepulseBase.js\";\nexport * from \"./Options/Interfaces/IRepulseDiv.js\";\nexport * from \"./Options/Interfaces/IRepulse.js\";\n", + "import { isNull } from \"@tsparticles/engine\";\nexport class Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n", + "import { ExternalInteractorBase, getDistance, isInArray, } from \"@tsparticles/engine\";\nimport { Slow } from \"./Options/Classes/Slow.js\";\nconst slowMode = \"slow\", minRadius = 0;\nexport class Slower extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear(particle, delta, force) {\n if (particle.slow.inRange && !force) {\n return;\n }\n particle.slow.factor = 1;\n }\n init() {\n const container = this.container, slow = container.actualOptions.interactivity.modes.slow;\n if (!slow) {\n return;\n }\n container.retina.slowModeRadius = slow.radius * container.retina.pixelRatio;\n }\n interact() {\n }\n isEnabled(particle) {\n const container = this.container, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(slowMode, events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.slow) {\n options.slow = new Slow();\n }\n for (const source of sources) {\n options.slow.load(source?.slow);\n }\n }\n reset(particle) {\n particle.slow.inRange = false;\n const container = this.container, options = container.actualOptions, mousePos = container.interactivity.mouse.position, radius = container.retina.slowModeRadius, slowOptions = options.interactivity.modes.slow;\n if (!slowOptions || !radius || radius < minRadius || !mousePos) {\n return;\n }\n const particlePos = particle.getPosition(), dist = getDistance(mousePos, particlePos), proximityFactor = dist / radius, slowFactor = slowOptions.factor, { slow } = particle;\n if (dist > radius) {\n return;\n }\n slow.inRange = true;\n slow.factor = proximityFactor / slowFactor;\n }\n}\n", + "import { Slower } from \"./Slower.js\";\nexport async function loadExternalSlowInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalSlow\", container => {\n return Promise.resolve(new Slower(container));\n }, refresh);\n}\nexport * from \"./Options/Classes/Slow.js\";\nexport * from \"./Options/Interfaces/ISlow.js\";\n", + "import { errorPrefix, getLogger, getStyleFromHsl } from \"@tsparticles/engine\";\nconst stringStart = 0, defaultOpacity = 1;\nconst currentColorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d.]+%?\\))|currentcolor/gi;\nfunction replaceColorSvg(imageShape, color, opacity) {\n const { svgData } = imageShape;\n if (!svgData) {\n return \"\";\n }\n const colorStyle = getStyleFromHsl(color, opacity);\n if (svgData.includes(\"fill\")) {\n return svgData.replace(currentColorRegex, () => colorStyle);\n }\n const preFillIndex = svgData.indexOf(\">\");\n return `${svgData.substring(stringStart, preFillIndex)} fill=\"${colorStyle}\"${svgData.substring(preFillIndex)}`;\n}\nexport async function loadImage(image) {\n return new Promise((resolve) => {\n image.loading = true;\n const img = new Image();\n image.element = img;\n img.addEventListener(\"load\", () => {\n image.loading = false;\n resolve();\n });\n img.addEventListener(\"error\", () => {\n image.element = undefined;\n image.error = true;\n image.loading = false;\n getLogger().error(`${errorPrefix} loading image: ${image.source}`);\n resolve();\n });\n img.src = image.source;\n });\n}\nexport async function downloadSvgImage(image) {\n if (image.type !== \"svg\") {\n await loadImage(image);\n return;\n }\n image.loading = true;\n const response = await fetch(image.source);\n if (!response.ok) {\n getLogger().error(`${errorPrefix} Image not found`);\n image.error = true;\n }\n else {\n image.svgData = await response.text();\n }\n image.loading = false;\n}\nexport function replaceImageColor(image, imageData, color, particle) {\n const svgColoredData = replaceColorSvg(image, color, particle.opacity?.value ?? defaultOpacity), imageRes = {\n color,\n gif: imageData.gif,\n data: {\n ...image,\n svgData: svgColoredData,\n },\n loaded: false,\n ratio: imageData.width / imageData.height,\n replaceColor: imageData.replaceColor,\n source: imageData.src,\n };\n return new Promise(resolve => {\n const svg = new Blob([svgColoredData], { type: \"image/svg+xml\" }), domUrl = URL || window.URL || window.webkitURL || window, url = domUrl.createObjectURL(svg), img = new Image();\n img.addEventListener(\"load\", () => {\n imageRes.loaded = true;\n imageRes.element = img;\n resolve(imageRes);\n domUrl.revokeObjectURL(url);\n });\n const errorHandler = async () => {\n domUrl.revokeObjectURL(url);\n const img2 = {\n ...image,\n error: false,\n loading: true,\n };\n await loadImage(img2);\n imageRes.loaded = true;\n imageRes.element = img2.element;\n resolve(imageRes);\n };\n img.addEventListener(\"error\", () => void errorHandler());\n img.src = url;\n });\n}\n", + "export const InterlaceOffsets = [0, 4, 2, 1];\nexport const InterlaceSteps = [8, 8, 4, 2];\n", + "export class ByteStream {\n constructor(bytes) {\n this.pos = 0;\n this.data = new Uint8ClampedArray(bytes);\n }\n getString(count) {\n const slice = this.data.slice(this.pos, this.pos + count);\n this.pos += slice.length;\n return slice.reduce((acc, curr) => acc + String.fromCharCode(curr), \"\");\n }\n nextByte() {\n return this.data[this.pos++];\n }\n nextTwoBytes() {\n const increment = 2, previous = 1, shift = 8;\n this.pos += increment;\n return this.data[this.pos - increment] + (this.data[this.pos - previous] << shift);\n }\n readSubBlocks() {\n let blockString = \"\", size = 0;\n const minCount = 0, emptySize = 0;\n do {\n size = this.data[this.pos++];\n for (let count = size; --count >= minCount; blockString += String.fromCharCode(this.data[this.pos++])) {\n }\n } while (size !== emptySize);\n return blockString;\n }\n readSubBlocksBin() {\n let size = this.data[this.pos], len = 0;\n const emptySize = 0, increment = 1;\n for (let offset = 0; size !== emptySize; offset += size + increment, size = this.data[this.pos + offset]) {\n len += size;\n }\n const blockData = new Uint8Array(len);\n size = this.data[this.pos++];\n for (let i = 0; size !== emptySize; size = this.data[this.pos++]) {\n for (let count = size; --count >= emptySize; blockData[i++] = this.data[this.pos++]) {\n }\n }\n return blockData;\n }\n skipSubBlocks() {\n for (const increment = 1, noData = 0; this.data[this.pos] !== noData; this.pos += this.data[this.pos] + increment) {\n }\n this.pos++;\n }\n}\n", + "export var DisposalMethod;\n(function (DisposalMethod) {\n DisposalMethod[DisposalMethod[\"Replace\"] = 0] = \"Replace\";\n DisposalMethod[DisposalMethod[\"Combine\"] = 1] = \"Combine\";\n DisposalMethod[DisposalMethod[\"RestoreBackground\"] = 2] = \"RestoreBackground\";\n DisposalMethod[DisposalMethod[\"RestorePrevious\"] = 3] = \"RestorePrevious\";\n DisposalMethod[DisposalMethod[\"UndefinedA\"] = 4] = \"UndefinedA\";\n DisposalMethod[DisposalMethod[\"UndefinedB\"] = 5] = \"UndefinedB\";\n DisposalMethod[DisposalMethod[\"UndefinedC\"] = 6] = \"UndefinedC\";\n DisposalMethod[DisposalMethod[\"UndefinedD\"] = 7] = \"UndefinedD\";\n})(DisposalMethod || (DisposalMethod = {}));\n", + "export var GIFDataHeaders;\n(function (GIFDataHeaders) {\n GIFDataHeaders[GIFDataHeaders[\"Extension\"] = 33] = \"Extension\";\n GIFDataHeaders[GIFDataHeaders[\"ApplicationExtension\"] = 255] = \"ApplicationExtension\";\n GIFDataHeaders[GIFDataHeaders[\"GraphicsControlExtension\"] = 249] = \"GraphicsControlExtension\";\n GIFDataHeaders[GIFDataHeaders[\"PlainTextExtension\"] = 1] = \"PlainTextExtension\";\n GIFDataHeaders[GIFDataHeaders[\"CommentExtension\"] = 254] = \"CommentExtension\";\n GIFDataHeaders[GIFDataHeaders[\"Image\"] = 44] = \"Image\";\n GIFDataHeaders[GIFDataHeaders[\"EndOfFile\"] = 59] = \"EndOfFile\";\n})(GIFDataHeaders || (GIFDataHeaders = {}));\n", + "import { loadImage } from \"../Utils.js\";\nimport { InterlaceOffsets, InterlaceSteps } from \"./Constants.js\";\nimport { ByteStream } from \"./ByteStream.js\";\nimport { DisposalMethod } from \"./Enums/DisposalMethod.js\";\nimport { GIFDataHeaders } from \"./Types/GIFDataHeaders.js\";\nconst origin = {\n x: 0,\n y: 0,\n}, defaultFrame = 0, half = 0.5, initialTime = 0, firstIndex = 0, defaultLoopCount = 0;\nfunction parseColorTable(byteStream, count) {\n const colors = [];\n for (let i = 0; i < count; i++) {\n colors.push({\n r: byteStream.data[byteStream.pos],\n g: byteStream.data[byteStream.pos + 1],\n b: byteStream.data[byteStream.pos + 2],\n });\n byteStream.pos += 3;\n }\n return colors;\n}\nfunction parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex) {\n switch (byteStream.nextByte()) {\n case GIFDataHeaders.GraphicsControlExtension: {\n const frame = gif.frames[getFrameIndex(false)];\n byteStream.pos++;\n const packedByte = byteStream.nextByte();\n frame.GCreserved = (packedByte & 0xe0) >>> 5;\n frame.disposalMethod = (packedByte & 0x1c) >>> 2;\n frame.userInputDelayFlag = (packedByte & 2) === 2;\n const transparencyFlag = (packedByte & 1) === 1;\n frame.delayTime = byteStream.nextTwoBytes() * 0xa;\n const transparencyIndex = byteStream.nextByte();\n if (transparencyFlag) {\n getTransparencyIndex(transparencyIndex);\n }\n byteStream.pos++;\n break;\n }\n case GIFDataHeaders.ApplicationExtension: {\n byteStream.pos++;\n const applicationExtension = {\n identifier: byteStream.getString(8),\n authenticationCode: byteStream.getString(3),\n data: byteStream.readSubBlocksBin(),\n };\n gif.applicationExtensions.push(applicationExtension);\n break;\n }\n case GIFDataHeaders.CommentExtension: {\n gif.comments.push([getFrameIndex(false), byteStream.readSubBlocks()]);\n break;\n }\n case GIFDataHeaders.PlainTextExtension: {\n if (gif.globalColorTable.length === 0) {\n throw new EvalError(\"plain text extension without global color table\");\n }\n byteStream.pos++;\n gif.frames[getFrameIndex(false)].plainTextData = {\n left: byteStream.nextTwoBytes(),\n top: byteStream.nextTwoBytes(),\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n charSize: {\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n },\n foregroundColor: byteStream.nextByte(),\n backgroundColor: byteStream.nextByte(),\n text: byteStream.readSubBlocks(),\n };\n break;\n }\n default:\n byteStream.skipSubBlocks();\n break;\n }\n}\nasync function parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n const frame = gif.frames[getFrameIndex(true)];\n frame.left = byteStream.nextTwoBytes();\n frame.top = byteStream.nextTwoBytes();\n frame.width = byteStream.nextTwoBytes();\n frame.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(), localColorTableFlag = (packedByte & 0x80) === 0x80, interlacedFlag = (packedByte & 0x40) === 0x40;\n frame.sortFlag = (packedByte & 0x20) === 0x20;\n frame.reserved = (packedByte & 0x18) >>> 3;\n const localColorCount = 1 << ((packedByte & 7) + 1);\n if (localColorTableFlag) {\n frame.localColorTable = parseColorTable(byteStream, localColorCount);\n }\n const getColor = (index) => {\n const { r, g, b } = (localColorTableFlag ? frame.localColorTable : gif.globalColorTable)[index];\n if (index !== getTransparencyIndex(null)) {\n return { r, g, b, a: 255 };\n }\n return { r, g, b, a: avgAlpha ? ~~((r + g + b) / 3) : 0 };\n };\n const image = (() => {\n try {\n return new ImageData(frame.width, frame.height, { colorSpace: \"srgb\" });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (image == null) {\n throw new EvalError(\"GIF frame size is to large\");\n }\n const minCodeSize = byteStream.nextByte(), imageData = byteStream.readSubBlocksBin(), clearCode = 1 << minCodeSize;\n const readBits = (pos, len) => {\n const bytePos = pos >>> 3, bitPos = pos & 7;\n return (((imageData[bytePos] + (imageData[bytePos + 1] << 8) + (imageData[bytePos + 2] << 16)) &\n (((1 << len) - 1) << bitPos)) >>>\n bitPos);\n };\n if (interlacedFlag) {\n for (let code = 0, size = minCodeSize + 1, pos = 0, dic = [[0]], pass = 0; pass < 4; pass++) {\n if (InterlaceOffsets[pass] < frame.height) {\n let pixelPos = 0, lineIndex = 0, exit = false;\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size + 1;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n }\n else {\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n }\n else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const { r, g, b, a } = getColor(item);\n image.data.set([r, g, b, a], InterlaceOffsets[pass] * frame.width +\n InterlaceSteps[pass] * lineIndex +\n (pixelPos % (frame.width * 4)));\n pixelPos += 4;\n }\n if (dic.length === 1 << size && size < 0xc) {\n size++;\n }\n }\n if (pixelPos === frame.width * 4 * (lineIndex + 1)) {\n lineIndex++;\n if (InterlaceOffsets[pass] + InterlaceSteps[pass] * lineIndex >= frame.height) {\n exit = true;\n }\n }\n }\n }\n progressCallback?.(byteStream.pos / (byteStream.data.length - 1), getFrameIndex(false) + 1, image, { x: frame.left, y: frame.top }, { width: gif.width, height: gif.height });\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n }\n else {\n let code = 0, size = minCodeSize + 1, pos = 0, pixelPos = -4, exit = false;\n const dic = [[0]];\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n }\n else {\n if (code === clearCode + 1) {\n exit = true;\n break;\n }\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n }\n else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const { r, g, b, a } = getColor(item);\n image.data.set([r, g, b, a], (pixelPos += 4));\n }\n if (dic.length >= 1 << size && size < 0xc) {\n size++;\n }\n }\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n progressCallback?.((byteStream.pos + 1) / byteStream.data.length, getFrameIndex(false) + 1, frame.image, { x: frame.left, y: frame.top }, { width: gif.width, height: gif.height });\n }\n}\nasync function parseBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n switch (byteStream.nextByte()) {\n case GIFDataHeaders.EndOfFile:\n return true;\n case GIFDataHeaders.Image:\n await parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback);\n break;\n case GIFDataHeaders.Extension:\n parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex);\n break;\n default:\n throw new EvalError(\"undefined block found\");\n }\n return false;\n}\nexport function getGIFLoopAmount(gif) {\n for (const extension of gif.applicationExtensions) {\n if (extension.identifier + extension.authenticationCode !== \"NETSCAPE2.0\") {\n continue;\n }\n return extension.data[1] + (extension.data[2] << 8);\n }\n return NaN;\n}\nexport async function decodeGIF(gifURL, progressCallback, avgAlpha) {\n if (!avgAlpha)\n avgAlpha = false;\n const res = await fetch(gifURL);\n if (!res.ok && res.status === 404) {\n throw new EvalError(\"file not found\");\n }\n const buffer = await res.arrayBuffer();\n const gif = {\n width: 0,\n height: 0,\n totalTime: 0,\n colorRes: 0,\n pixelAspectRatio: 0,\n frames: [],\n sortFlag: false,\n globalColorTable: [],\n backgroundImage: new ImageData(1, 1, { colorSpace: \"srgb\" }),\n comments: [],\n applicationExtensions: [],\n }, byteStream = new ByteStream(new Uint8ClampedArray(buffer));\n if (byteStream.getString(6) !== \"GIF89a\") {\n throw new Error(\"not a supported GIF file\");\n }\n gif.width = byteStream.nextTwoBytes();\n gif.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(), globalColorTableFlag = (packedByte & 0x80) === 0x80;\n gif.colorRes = (packedByte & 0x70) >>> 4;\n gif.sortFlag = (packedByte & 8) === 8;\n const globalColorCount = 1 << ((packedByte & 7) + 1), backgroundColorIndex = byteStream.nextByte();\n gif.pixelAspectRatio = byteStream.nextByte();\n if (gif.pixelAspectRatio !== 0) {\n gif.pixelAspectRatio = (gif.pixelAspectRatio + 0xf) / 0x40;\n }\n if (globalColorTableFlag) {\n gif.globalColorTable = parseColorTable(byteStream, globalColorCount);\n }\n const backgroundImage = (() => {\n try {\n return new ImageData(gif.width, gif.height, { colorSpace: \"srgb\" });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (backgroundImage == null) {\n throw new Error(\"GIF frame size is to large\");\n }\n const { r, g, b } = gif.globalColorTable[backgroundColorIndex];\n backgroundImage.data.set(globalColorTableFlag ? [r, g, b, 255] : [0, 0, 0, 0]);\n for (let i = 4; i < backgroundImage.data.length; i *= 2) {\n backgroundImage.data.copyWithin(i, 0, i);\n }\n gif.backgroundImage = backgroundImage;\n let frameIndex = -1, incrementFrameIndex = true, transparencyIndex = -1;\n const getframeIndex = (increment) => {\n if (increment) {\n incrementFrameIndex = true;\n }\n return frameIndex;\n };\n const getTransparencyIndex = (newValue) => {\n if (newValue != null) {\n transparencyIndex = newValue;\n }\n return transparencyIndex;\n };\n try {\n do {\n if (incrementFrameIndex) {\n gif.frames.push({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n disposalMethod: DisposalMethod.Replace,\n image: new ImageData(1, 1, { colorSpace: \"srgb\" }),\n plainTextData: null,\n userInputDelayFlag: false,\n delayTime: 0,\n sortFlag: false,\n localColorTable: [],\n reserved: 0,\n GCreserved: 0,\n });\n frameIndex++;\n transparencyIndex = -1;\n incrementFrameIndex = false;\n }\n } while (!(await parseBlock(byteStream, gif, avgAlpha, getframeIndex, getTransparencyIndex, progressCallback)));\n gif.frames.length--;\n for (const frame of gif.frames) {\n if (frame.userInputDelayFlag && frame.delayTime === 0) {\n gif.totalTime = Infinity;\n break;\n }\n gif.totalTime += frame.delayTime;\n }\n return gif;\n }\n catch (error) {\n if (error instanceof EvalError) {\n throw new Error(`error while parsing frame ${frameIndex} \"${error.message}\"`);\n }\n throw error;\n }\n}\nexport function drawGif(data) {\n const { context, radius, particle, delta } = data, image = particle.image;\n if (!image?.gifData || !image.gif) {\n return;\n }\n const offscreenCanvas = new OffscreenCanvas(image.gifData.width, image.gifData.height), offscreenContext = offscreenCanvas.getContext(\"2d\");\n if (!offscreenContext) {\n throw new Error(\"could not create offscreen canvas context\");\n }\n offscreenContext.imageSmoothingQuality = \"low\";\n offscreenContext.imageSmoothingEnabled = false;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (particle.gifLoopCount === undefined) {\n particle.gifLoopCount = image.gifLoopCount ?? defaultLoopCount;\n }\n let frameIndex = particle.gifFrame ?? defaultFrame;\n const pos = { x: -image.gifData.width * half, y: -image.gifData.height * half }, frame = image.gifData.frames[frameIndex];\n if (particle.gifTime === undefined) {\n particle.gifTime = initialTime;\n }\n if (!frame.bitmap) {\n return;\n }\n context.scale(radius / image.gifData.width, radius / image.gifData.height);\n switch (frame.disposalMethod) {\n case DisposalMethod.UndefinedA:\n case DisposalMethod.UndefinedB:\n case DisposalMethod.UndefinedC:\n case DisposalMethod.UndefinedD:\n case DisposalMethod.Replace:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n break;\n case DisposalMethod.Combine:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n break;\n case DisposalMethod.RestoreBackground:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (!image.gifData.globalColorTable.length) {\n offscreenContext.putImageData(image.gifData.frames[firstIndex].image, pos.x + frame.left, pos.y + frame.top);\n }\n else {\n offscreenContext.putImageData(image.gifData.backgroundImage, pos.x, pos.y);\n }\n break;\n case DisposalMethod.RestorePrevious:\n {\n const previousImageData = offscreenContext.getImageData(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.putImageData(previousImageData, origin.x, origin.y);\n }\n break;\n }\n particle.gifTime += delta.value;\n if (particle.gifTime > frame.delayTime) {\n particle.gifTime -= frame.delayTime;\n if (++frameIndex >= image.gifData.frames.length) {\n if (--particle.gifLoopCount <= defaultLoopCount) {\n return;\n }\n frameIndex = firstIndex;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n }\n particle.gifFrame = frameIndex;\n }\n context.scale(image.gifData.width / radius, image.gifData.height / radius);\n}\nexport async function loadGifImage(image) {\n if (image.type !== \"gif\") {\n await loadImage(image);\n return;\n }\n image.loading = true;\n try {\n image.gifData = await decodeGIF(image.source);\n image.gifLoopCount = getGIFLoopAmount(image.gifData) ?? defaultLoopCount;\n if (!image.gifLoopCount) {\n image.gifLoopCount = Infinity;\n }\n }\n catch {\n image.error = true;\n }\n image.loading = false;\n}\n", + "import { errorPrefix } from \"@tsparticles/engine\";\nimport { replaceImageColor } from \"./Utils.js\";\nimport { drawGif } from \"./GifUtils/Utils.js\";\nconst double = 2, defaultAlpha = 1, sides = 12, defaultRatio = 1;\nexport class ImageDrawer {\n constructor(engine) {\n this.validTypes = [\"image\", \"images\"];\n this.loadImageShape = async (imageShape) => {\n if (!this._engine.loadImage) {\n throw new Error(`${errorPrefix} image shape not initialized`);\n }\n await this._engine.loadImage({\n gif: imageShape.gif,\n name: imageShape.name,\n replaceColor: imageShape.replaceColor ?? false,\n src: imageShape.src,\n });\n };\n this._engine = engine;\n }\n addImage(image) {\n if (!this._engine.images) {\n this._engine.images = [];\n }\n this._engine.images.push(image);\n }\n draw(data) {\n const { context, radius, particle, opacity } = data, image = particle.image, element = image?.element;\n if (!image) {\n return;\n }\n context.globalAlpha = opacity;\n if (image.gif && image.gifData) {\n drawGif(data);\n }\n else if (element) {\n const ratio = image.ratio, pos = {\n x: -radius,\n y: -radius,\n }, diameter = radius * double;\n context.drawImage(element, pos.x, pos.y, diameter, diameter / ratio);\n }\n context.globalAlpha = defaultAlpha;\n }\n getSidesCount() {\n return sides;\n }\n async init(container) {\n const options = container.actualOptions;\n if (!options.preload || !this._engine.loadImage) {\n return;\n }\n for (const imageData of options.preload) {\n await this._engine.loadImage(imageData);\n }\n }\n loadShape(particle) {\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n if (!this._engine.images) {\n this._engine.images = [];\n }\n const imageData = particle.shapeData;\n if (!imageData) {\n return;\n }\n const image = this._engine.images.find((t) => t.name === imageData.name || t.source === imageData.src);\n if (!image) {\n void this.loadImageShape(imageData).then(() => {\n this.loadShape(particle);\n });\n }\n }\n particleInit(container, particle) {\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n if (!this._engine.images) {\n this._engine.images = [];\n }\n const images = this._engine.images, imageData = particle.shapeData;\n if (!imageData) {\n return;\n }\n const color = particle.getFillColor(), image = images.find((t) => t.name === imageData.name || t.source === imageData.src);\n if (!image) {\n return;\n }\n const replaceColor = imageData.replaceColor ?? image.replaceColor;\n if (image.loading) {\n setTimeout(() => {\n this.particleInit(container, particle);\n });\n return;\n }\n void (async () => {\n let imageRes;\n if (image.svgData && color) {\n imageRes = await replaceImageColor(image, imageData, color, particle);\n }\n else {\n imageRes = {\n color,\n data: image,\n element: image.element,\n gif: image.gif,\n gifData: image.gifData,\n gifLoopCount: image.gifLoopCount,\n loaded: true,\n ratio: imageData.width && imageData.height\n ? imageData.width / imageData.height\n : (image.ratio ?? defaultRatio),\n replaceColor: replaceColor,\n source: imageData.src,\n };\n }\n if (!imageRes.ratio) {\n imageRes.ratio = 1;\n }\n const fill = imageData.fill ?? particle.shapeFill, close = imageData.close ?? particle.shapeClose, imageShape = {\n image: imageRes,\n fill,\n close,\n };\n particle.image = imageShape.image;\n particle.shapeFill = imageShape.fill;\n particle.shapeClose = imageShape.close;\n })();\n }\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nexport class Preload {\n constructor() {\n this.src = \"\";\n this.gif = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.gif !== undefined) {\n this.gif = data.gif;\n }\n if (data.height !== undefined) {\n this.height = data.height;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n if (data.replaceColor !== undefined) {\n this.replaceColor = data.replaceColor;\n }\n if (data.src !== undefined) {\n this.src = data.src;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}\n", + "import { Preload } from \"./Options/Classes/Preload.js\";\nexport class ImagePreloaderPlugin {\n constructor(engine) {\n this.id = \"imagePreloader\";\n this._engine = engine;\n }\n async getPlugin() {\n await Promise.resolve();\n return {};\n }\n loadOptions(options, source) {\n if (!source?.preload) {\n return;\n }\n if (!options.preload) {\n options.preload = [];\n }\n const preloadOptions = options.preload;\n for (const item of source.preload) {\n const existing = preloadOptions.find(t => t.name === item.name || t.src === item.src);\n if (existing) {\n existing.load(item);\n }\n else {\n const preload = new Preload();\n preload.load(item);\n preloadOptions.push(preload);\n }\n }\n }\n needsPlugin() {\n return true;\n }\n}\n", + "import { downloadSvgImage, loadImage } from \"./Utils.js\";\nimport { ImageDrawer } from \"./ImageDrawer.js\";\nimport { ImagePreloaderPlugin } from \"./ImagePreloader.js\";\nimport { errorPrefix } from \"@tsparticles/engine\";\nimport { loadGifImage } from \"./GifUtils/Utils.js\";\nconst extLength = 3;\nfunction addLoadImageToEngine(engine) {\n if (engine.loadImage) {\n return;\n }\n engine.loadImage = async (data) => {\n if (!data.name && !data.src) {\n throw new Error(`${errorPrefix} no image source provided`);\n }\n if (!engine.images) {\n engine.images = [];\n }\n if (engine.images.find((t) => t.name === data.name || t.source === data.src)) {\n return;\n }\n try {\n const image = {\n gif: data.gif ?? false,\n name: data.name ?? data.src,\n source: data.src,\n type: data.src.substring(data.src.length - extLength),\n error: false,\n loading: true,\n replaceColor: data.replaceColor,\n ratio: data.width && data.height ? data.width / data.height : undefined,\n };\n engine.images.push(image);\n let imageFunc;\n if (data.gif) {\n imageFunc = loadGifImage;\n }\n else {\n imageFunc = data.replaceColor ? downloadSvgImage : loadImage;\n }\n await imageFunc(image);\n }\n catch {\n throw new Error(`${errorPrefix} ${data.name ?? data.src} not found`);\n }\n };\n}\nexport async function loadImageShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n addLoadImageToEngine(engine);\n const preloader = new ImagePreloaderPlugin(engine);\n await engine.addPlugin(preloader, refresh);\n await engine.addShape(new ImageDrawer(engine), refresh);\n}\n", + "import { ValueWithRandom, isNull } from \"@tsparticles/engine\";\nexport class LifeDelay extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n", + "import { ValueWithRandom, isNull } from \"@tsparticles/engine\";\nexport class LifeDuration extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nimport { LifeDelay } from \"./LifeDelay.js\";\nimport { LifeDuration } from \"./LifeDuration.js\";\nexport class Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay();\n this.duration = new LifeDuration();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.delay.load(data.delay);\n this.duration.load(data.duration);\n }\n}\n", + "import { getRangeValue, millisecondsToSeconds, randomInRange, setRangeValue, } from \"@tsparticles/engine\";\nconst noTime = 0, infiniteValue = -1, noLife = 0, minCanvasSize = 0;\nexport function updateLife(particle, delta, canvasSize) {\n if (!particle.life) {\n return;\n }\n const life = particle.life;\n let justSpawned = false;\n if (particle.spawning) {\n life.delayTime += delta.value;\n if (life.delayTime >= particle.life.delay) {\n justSpawned = true;\n particle.spawning = false;\n life.delayTime = noTime;\n life.time = noTime;\n }\n else {\n return;\n }\n }\n if (life.duration === infiniteValue) {\n return;\n }\n if (particle.spawning) {\n return;\n }\n if (justSpawned) {\n life.time = noTime;\n }\n else {\n life.time += delta.value;\n }\n if (life.time < life.duration) {\n return;\n }\n life.time = noTime;\n if (particle.life.count > noLife) {\n particle.life.count--;\n }\n if (particle.life.count === noLife) {\n particle.destroy();\n return;\n }\n const widthRange = setRangeValue(minCanvasSize, canvasSize.width), heightRange = setRangeValue(minCanvasSize, canvasSize.width);\n particle.position.x = randomInRange(widthRange);\n particle.position.y = randomInRange(heightRange);\n particle.spawning = true;\n life.delayTime = noTime;\n life.time = noTime;\n particle.reset();\n const lifeOptions = particle.options.life;\n if (lifeOptions) {\n life.delay = getRangeValue(lifeOptions.delay.value) * millisecondsToSeconds;\n life.duration = getRangeValue(lifeOptions.duration.value) * millisecondsToSeconds;\n }\n}\n", + "import { getRandom, getRangeValue, millisecondsToSeconds, } from \"@tsparticles/engine\";\nimport { Life } from \"./Options/Classes/Life.js\";\nimport { updateLife } from \"./Utils.js\";\nconst noTime = 0, identity = 1, infiniteValue = -1;\nexport class LifeUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const container = this.container, particlesOptions = particle.options, lifeOptions = particlesOptions.life;\n if (!lifeOptions) {\n return;\n }\n particle.life = {\n delay: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.delay.value) * (lifeOptions.delay.sync ? identity : getRandom())) /\n container.retina.reduceFactor) *\n millisecondsToSeconds\n : noTime,\n delayTime: noTime,\n duration: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.duration.value) * (lifeOptions.duration.sync ? identity : getRandom())) /\n container.retina.reduceFactor) *\n millisecondsToSeconds\n : noTime,\n time: noTime,\n count: lifeOptions.count,\n };\n if (particle.life.duration <= noTime) {\n particle.life.duration = infiniteValue;\n }\n if (particle.life.count <= noTime) {\n particle.life.count = infiniteValue;\n }\n if (particle.life) {\n particle.spawning = particle.life.delay > noTime;\n }\n }\n isEnabled(particle) {\n return !particle.destroyed;\n }\n loadOptions(options, ...sources) {\n if (!options.life) {\n options.life = new Life();\n }\n for (const source of sources) {\n options.life.load(source?.life);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle) || !particle.life) {\n return;\n }\n updateLife(particle, delta, this.container.canvas.size);\n }\n}\n", + "import { LifeUpdater } from \"./LifeUpdater.js\";\nexport async function loadLifeUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"life\", async (container) => {\n return Promise.resolve(new LifeUpdater(container));\n }, refresh);\n}\n", + "export function drawLine(data) {\n const { context, particle, radius } = data, shapeData = particle.shapeData, centerY = 0;\n context.moveTo(-radius, centerY);\n context.lineTo(radius, centerY);\n context.lineCap = shapeData?.cap ?? \"butt\";\n}\n", + "import { drawLine } from \"./Utils.js\";\nconst sides = 1;\nexport class LineDrawer {\n constructor() {\n this.validTypes = [\"line\"];\n }\n draw(data) {\n drawLine(data);\n }\n getSidesCount() {\n return sides;\n }\n}\n", + "import { LineDrawer } from \"./LineDrawer.js\";\nexport async function loadLineShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new LineDrawer(), refresh);\n}\n", + "import { isSsr } from \"@tsparticles/engine\";\nconst half = 0.5;\nexport class ParallaxMover {\n init() {\n }\n isEnabled(particle) {\n return (!isSsr() &&\n !particle.destroyed &&\n particle.container.actualOptions.interactivity.events.onHover.parallax.enable);\n }\n move(particle) {\n const container = particle.container, options = container.actualOptions, parallaxOptions = options.interactivity.events.onHover.parallax;\n if (isSsr() || !parallaxOptions.enable) {\n return;\n }\n const parallaxForce = parallaxOptions.force, mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const canvasSize = container.canvas.size, canvasCenter = {\n x: canvasSize.width * half,\n y: canvasSize.height * half,\n }, parallaxSmooth = parallaxOptions.smooth, factor = particle.getRadius() / parallaxForce, centerDistance = {\n x: (mousePos.x - canvasCenter.x) * factor,\n y: (mousePos.y - canvasCenter.y) * factor,\n }, { offset } = particle;\n offset.x += (centerDistance.x - offset.x) / parallaxSmooth;\n offset.y += (centerDistance.y - offset.y) / parallaxSmooth;\n }\n}\n", + "import { ParallaxMover } from \"./ParallaxMover.js\";\nexport async function loadParallaxMover(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addMover(\"parallax\", () => {\n return Promise.resolve(new ParallaxMover());\n }, refresh);\n}\n", + "import { ParticlesInteractorBase, getDistances, getRangeValue, } from \"@tsparticles/engine\";\nconst attractFactor = 1000, identity = 1;\nexport class Attractor extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n interact(p1) {\n const container = this.container;\n if (p1.attractDistance === undefined) {\n p1.attractDistance = getRangeValue(p1.options.move.attract.distance) * container.retina.pixelRatio;\n }\n const distance = p1.attractDistance, pos1 = p1.getPosition(), query = container.particles.quadTree.queryCircle(pos1, distance);\n for (const p2 of query) {\n if (p1 === p2 || !p2.options.move.attract.enable || p2.destroyed || p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), { dx, dy } = getDistances(pos1, pos2), rotate = p1.options.move.attract.rotate, ax = dx / (rotate.x * attractFactor), ay = dy / (rotate.y * attractFactor), p1Factor = p2.size.value / p1.size.value, p2Factor = identity / p1Factor;\n p1.velocity.x -= ax * p1Factor;\n p1.velocity.y -= ay * p1Factor;\n p2.velocity.x += ax * p2Factor;\n p2.velocity.y += ay * p2Factor;\n }\n }\n isEnabled(particle) {\n return particle.options.move.attract.enable;\n }\n reset() {\n }\n}\n", + "import { Attractor } from \"./Attractor.js\";\nexport async function loadParticlesAttractInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"particlesAttract\", container => {\n return Promise.resolve(new Attractor(container));\n }, refresh);\n}\n", + "import { clamp } from \"@tsparticles/engine\";\nconst half = 0.5, absorbFactor = 10, minAbsorbFactor = 0;\nfunction updateAbsorb(p1, r1, p2, r2, delta, pixelRatio) {\n const factor = clamp((p1.options.collisions.absorb.speed * delta.factor) / absorbFactor, minAbsorbFactor, r2);\n p1.size.value += factor * half;\n p2.size.value -= factor;\n if (r2 <= pixelRatio) {\n p2.size.value = 0;\n p2.destroy();\n }\n}\nexport function absorb(p1, p2, delta, pixelRatio) {\n const r1 = p1.getRadius(), r2 = p2.getRadius();\n if (r1 === undefined && r2 !== undefined) {\n p1.destroy();\n }\n else if (r1 !== undefined && r2 === undefined) {\n p2.destroy();\n }\n else if (r1 !== undefined && r2 !== undefined) {\n if (r1 >= r2) {\n updateAbsorb(p1, r1, p2, r2, delta, pixelRatio);\n }\n else {\n updateAbsorb(p2, r2, p1, r1, delta, pixelRatio);\n }\n }\n}\n", + "import { circleBounce, circleBounceDataFromParticle, getRangeValue } from \"@tsparticles/engine\";\nconst fixBounceSpeed = (p) => {\n if (p.collisionMaxSpeed === undefined) {\n p.collisionMaxSpeed = getRangeValue(p.options.collisions.maxSpeed);\n }\n if (p.velocity.length > p.collisionMaxSpeed) {\n p.velocity.length = p.collisionMaxSpeed;\n }\n};\nexport function bounce(p1, p2) {\n circleBounce(circleBounceDataFromParticle(p1), circleBounceDataFromParticle(p2));\n fixBounceSpeed(p1);\n fixBounceSpeed(p2);\n}\n", + "import { bounce } from \"./Bounce.js\";\nexport function destroy(p1, p2) {\n if (!p1.unbreakable && !p2.unbreakable) {\n bounce(p1, p2);\n }\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n const deleteP = p1.getRadius() >= p2.getRadius() ? p2 : p1;\n deleteP.destroy();\n }\n}\n", + "import { CollisionMode } from \"@tsparticles/engine\";\nimport { absorb } from \"./Absorb.js\";\nimport { bounce } from \"./Bounce.js\";\nimport { destroy } from \"./Destroy.js\";\nexport function resolveCollision(p1, p2, delta, pixelRatio) {\n switch (p1.options.collisions.mode) {\n case CollisionMode.absorb: {\n absorb(p1, p2, delta, pixelRatio);\n break;\n }\n case CollisionMode.bounce: {\n bounce(p1, p2);\n break;\n }\n case CollisionMode.destroy: {\n destroy(p1, p2);\n break;\n }\n }\n}\n", + "import { ParticlesInteractorBase, getDistance } from \"@tsparticles/engine\";\nimport { resolveCollision } from \"./ResolveCollision.js\";\nconst double = 2;\nexport class Collider extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n interact(p1, delta) {\n if (p1.destroyed || p1.spawning) {\n return;\n }\n const container = this.container, pos1 = p1.getPosition(), radius1 = p1.getRadius(), query = container.particles.quadTree.queryCircle(pos1, radius1 * double);\n for (const p2 of query) {\n if (p1 === p2 ||\n !p2.options.collisions.enable ||\n p1.options.collisions.mode !== p2.options.collisions.mode ||\n p2.destroyed ||\n p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), radius2 = p2.getRadius();\n if (Math.abs(Math.round(pos1.z) - Math.round(pos2.z)) > radius1 + radius2) {\n continue;\n }\n const dist = getDistance(pos1, pos2), distP = radius1 + radius2;\n if (dist > distP) {\n continue;\n }\n resolveCollision(p1, p2, delta, container.retina.pixelRatio);\n }\n }\n isEnabled(particle) {\n return particle.options.collisions.enable;\n }\n reset() {\n }\n}\n", + "import { Collider } from \"./Collider.js\";\nexport async function loadParticlesCollisionsInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"particlesCollisions\", container => {\n return Promise.resolve(new Collider(container));\n }, refresh);\n}\n", + "import { Circle, Rectangle } from \"@tsparticles/engine\";\nconst double = 2;\nexport class CircleWarp extends Circle {\n constructor(x, y, radius, canvasSize) {\n super(x, y, radius);\n this.canvasSize = canvasSize;\n this.canvasSize = { ...canvasSize };\n }\n contains(point) {\n const { width, height } = this.canvasSize, { x, y } = point;\n return (super.contains(point) ||\n super.contains({ x: x - width, y }) ||\n super.contains({ x: x - width, y: y - height }) ||\n super.contains({ x, y: y - height }));\n }\n intersects(range) {\n if (super.intersects(range)) {\n return true;\n }\n const rect = range, circle = range, newPos = {\n x: range.position.x - this.canvasSize.width,\n y: range.position.y - this.canvasSize.height,\n };\n if (circle.radius !== undefined) {\n const biggerCircle = new Circle(newPos.x, newPos.y, circle.radius * double);\n return super.intersects(biggerCircle);\n }\n else if (rect.size !== undefined) {\n const rectSW = new Rectangle(newPos.x, newPos.y, rect.size.width * double, rect.size.height * double);\n return super.intersects(rectSW);\n }\n return false;\n }\n}\n", + "import { OptionsColor, isNull } from \"@tsparticles/engine\";\nexport class LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor();\n this.color.value = \"#000\";\n this.enable = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n", + "import { OptionsColor, isNull } from \"@tsparticles/engine\";\nexport class LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n", + "import { OptionsColor, isNull } from \"@tsparticles/engine\";\nimport { LinksShadow } from \"./LinksShadow.js\";\nimport { LinksTriangle } from \"./LinksTriangle.js\";\nexport class Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new LinksShadow();\n this.triangles = new LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n", + "import { Circle, ParticlesInteractorBase, getDistances, getLinkRandomColor, } from \"@tsparticles/engine\";\nimport { CircleWarp } from \"./CircleWarp.js\";\nimport { Links } from \"./Options/Classes/Links.js\";\nconst squarePower = 2, opacityOffset = 1, origin = {\n x: 0,\n y: 0,\n}, minDistance = 0;\nfunction getLinkDistance(pos1, pos2, optDistance, canvasSize, warp) {\n const { dx, dy, distance } = getDistances(pos1, pos2);\n if (!warp || distance <= optDistance) {\n return distance;\n }\n const absDiffs = {\n x: Math.abs(dx),\n y: Math.abs(dy),\n }, warpDistances = {\n x: Math.min(absDiffs.x, canvasSize.width - absDiffs.x),\n y: Math.min(absDiffs.y, canvasSize.height - absDiffs.y),\n };\n return Math.sqrt(warpDistances.x ** squarePower + warpDistances.y ** squarePower);\n}\nexport class Linker extends ParticlesInteractorBase {\n constructor(container, engine) {\n super(container);\n this._setColor = p1 => {\n if (!p1.options.links) {\n return;\n }\n const container = this._linkContainer, linksOptions = p1.options.links;\n let linkColor = linksOptions.id === undefined\n ? container.particles.linksColor\n : container.particles.linksColors.get(linksOptions.id);\n if (linkColor) {\n return;\n }\n const optColor = linksOptions.color;\n linkColor = getLinkRandomColor(this._engine, optColor, linksOptions.blink, linksOptions.consent);\n if (linksOptions.id === undefined) {\n container.particles.linksColor = linkColor;\n }\n else {\n container.particles.linksColors.set(linksOptions.id, linkColor);\n }\n };\n this._linkContainer = container;\n this._engine = engine;\n }\n clear() {\n }\n init() {\n this._linkContainer.particles.linksColor = undefined;\n this._linkContainer.particles.linksColors = new Map();\n }\n interact(p1) {\n if (!p1.options.links) {\n return;\n }\n p1.links = [];\n const pos1 = p1.getPosition(), container = this.container, canvasSize = container.canvas.size;\n if (pos1.x < origin.x || pos1.y < origin.y || pos1.x > canvasSize.width || pos1.y > canvasSize.height) {\n return;\n }\n const linkOpt1 = p1.options.links, optOpacity = linkOpt1.opacity, optDistance = p1.retina.linksDistance ?? minDistance, warp = linkOpt1.warp;\n let range;\n if (warp) {\n range = new CircleWarp(pos1.x, pos1.y, optDistance, canvasSize);\n }\n else {\n range = new Circle(pos1.x, pos1.y, optDistance);\n }\n const query = container.particles.quadTree.query(range);\n for (const p2 of query) {\n const linkOpt2 = p2.options.links;\n if (p1 === p2 ||\n !linkOpt2?.enable ||\n linkOpt1.id !== linkOpt2.id ||\n p2.spawning ||\n p2.destroyed ||\n !p2.links ||\n p1.links.some(t => t.destination === p2) ||\n p2.links.some(t => t.destination === p1)) {\n continue;\n }\n const pos2 = p2.getPosition();\n if (pos2.x < origin.x || pos2.y < origin.y || pos2.x > canvasSize.width || pos2.y > canvasSize.height) {\n continue;\n }\n const distance = getLinkDistance(pos1, pos2, optDistance, canvasSize, warp && linkOpt2.warp);\n if (distance > optDistance) {\n continue;\n }\n const opacityLine = (opacityOffset - distance / optDistance) * optOpacity;\n this._setColor(p1);\n p1.links.push({\n destination: p2,\n opacity: opacityLine,\n });\n }\n }\n isEnabled(particle) {\n return !!particle.options.links?.enable;\n }\n loadParticlesOptions(options, ...sources) {\n if (!options.links) {\n options.links = new Links();\n }\n for (const source of sources) {\n options.links.load(source?.links);\n }\n }\n reset() {\n }\n}\n", + "import { Linker } from \"./Linker.js\";\nexport async function loadLinksInteraction(engine, refresh = true) {\n await engine.addInteractor(\"particlesLinks\", async (container) => {\n return Promise.resolve(new Linker(container, engine));\n }, refresh);\n}\n", + "import { drawLine, getDistance, getDistances, getRandom, getStyleFromRgb, rangeColorToRgb, } from \"@tsparticles/engine\";\nexport function drawTriangle(context, p1, p2, p3) {\n context.beginPath();\n context.moveTo(p1.x, p1.y);\n context.lineTo(p2.x, p2.y);\n context.lineTo(p3.x, p3.y);\n context.closePath();\n}\nexport function drawLinkLine(params) {\n let drawn = false;\n const { begin, end, engine, maxDistance, context, canvasSize, width, backgroundMask, colorLine, opacity, links } = params;\n if (getDistance(begin, end) <= maxDistance) {\n drawLine(context, begin, end);\n drawn = true;\n }\n else if (links.warp) {\n let pi1;\n let pi2;\n const endNE = {\n x: end.x - canvasSize.width,\n y: end.y,\n };\n const d1 = getDistances(begin, endNE);\n if (d1.distance <= maxDistance) {\n const yi = begin.y - (d1.dy / d1.dx) * begin.x;\n pi1 = { x: 0, y: yi };\n pi2 = { x: canvasSize.width, y: yi };\n }\n else {\n const endSW = {\n x: end.x,\n y: end.y - canvasSize.height,\n };\n const d2 = getDistances(begin, endSW);\n if (d2.distance <= maxDistance) {\n const yi = begin.y - (d2.dy / d2.dx) * begin.x;\n const xi = -yi / (d2.dy / d2.dx);\n pi1 = { x: xi, y: 0 };\n pi2 = { x: xi, y: canvasSize.height };\n }\n else {\n const endSE = {\n x: end.x - canvasSize.width,\n y: end.y - canvasSize.height,\n };\n const d3 = getDistances(begin, endSE);\n if (d3.distance <= maxDistance) {\n const yi = begin.y - (d3.dy / d3.dx) * begin.x;\n const xi = -yi / (d3.dy / d3.dx);\n pi1 = { x: xi, y: yi };\n pi2 = { x: pi1.x + canvasSize.width, y: pi1.y + canvasSize.height };\n }\n }\n }\n if (pi1 && pi2) {\n drawLine(context, begin, pi1);\n drawLine(context, end, pi2);\n drawn = true;\n }\n }\n if (!drawn) {\n return;\n }\n context.lineWidth = width;\n if (backgroundMask.enable) {\n context.globalCompositeOperation = backgroundMask.composite;\n }\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n const { shadow } = links;\n if (shadow.enable) {\n const shadowColor = rangeColorToRgb(engine, shadow.color);\n if (shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n }\n }\n context.stroke();\n}\nexport function drawLinkTriangle(params) {\n const { context, pos1, pos2, pos3, backgroundMask, colorTriangle, opacityTriangle } = params;\n drawTriangle(context, pos1, pos2, pos3);\n if (backgroundMask.enable) {\n context.globalCompositeOperation = backgroundMask.composite;\n }\n context.fillStyle = getStyleFromRgb(colorTriangle, opacityTriangle);\n context.fill();\n}\nexport function getLinkKey(ids) {\n ids.sort((a, b) => a - b);\n return ids.join(\"_\");\n}\nexport function setLinkFrequency(particles, dictionary) {\n const key = getLinkKey(particles.map(t => t.id));\n let res = dictionary.get(key);\n if (res === undefined) {\n res = getRandom();\n dictionary.set(key, res);\n }\n return res;\n}\n", + "import { getDistance, getLinkColor, getRandom, getRangeValue, rangeColorToRgb, } from \"@tsparticles/engine\";\nimport { drawLinkLine, drawLinkTriangle, setLinkFrequency } from \"./Utils.js\";\nconst minOpacity = 0, minWidth = 0, minDistance = 0, half = 0.5, maxFrequency = 1;\nexport class LinkInstance {\n constructor(container, engine) {\n this._drawLinkLine = (p1, link) => {\n const p1LinksOptions = p1.options.links;\n if (!p1LinksOptions?.enable) {\n return;\n }\n const container = this._container, options = container.actualOptions, p2 = link.destination, pos1 = p1.getPosition(), pos2 = p2.getPosition();\n let opacity = link.opacity;\n container.canvas.draw(ctx => {\n let colorLine;\n const twinkle = p1.options.twinkle?.lines;\n if (twinkle?.enable) {\n const twinkleFreq = twinkle.frequency, twinkleRgb = rangeColorToRgb(this._engine, twinkle.color), twinkling = getRandom() < twinkleFreq;\n if (twinkling && twinkleRgb) {\n colorLine = twinkleRgb;\n opacity = getRangeValue(twinkle.opacity);\n }\n }\n if (!colorLine) {\n const linkColor = p1LinksOptions.id !== undefined\n ? container.particles.linksColors.get(p1LinksOptions.id)\n : container.particles.linksColor;\n colorLine = getLinkColor(p1, p2, linkColor);\n }\n if (!colorLine) {\n return;\n }\n const width = p1.retina.linksWidth ?? minWidth, maxDistance = p1.retina.linksDistance ?? minDistance, { backgroundMask } = options;\n drawLinkLine({\n context: ctx,\n width,\n begin: pos1,\n end: pos2,\n engine: this._engine,\n maxDistance,\n canvasSize: container.canvas.size,\n links: p1LinksOptions,\n backgroundMask: backgroundMask,\n colorLine,\n opacity,\n });\n });\n };\n this._drawLinkTriangle = (p1, link1, link2) => {\n const linksOptions = p1.options.links;\n if (!linksOptions?.enable) {\n return;\n }\n const triangleOptions = linksOptions.triangles;\n if (!triangleOptions.enable) {\n return;\n }\n const container = this._container, options = container.actualOptions, p2 = link1.destination, p3 = link2.destination, opacityTriangle = triangleOptions.opacity ?? (link1.opacity + link2.opacity) * half;\n if (opacityTriangle <= minOpacity) {\n return;\n }\n container.canvas.draw(ctx => {\n const pos1 = p1.getPosition(), pos2 = p2.getPosition(), pos3 = p3.getPosition(), linksDistance = p1.retina.linksDistance ?? minDistance;\n if (getDistance(pos1, pos2) > linksDistance ||\n getDistance(pos3, pos2) > linksDistance ||\n getDistance(pos3, pos1) > linksDistance) {\n return;\n }\n let colorTriangle = rangeColorToRgb(this._engine, triangleOptions.color);\n if (!colorTriangle) {\n const linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorTriangle = getLinkColor(p1, p2, linkColor);\n }\n if (!colorTriangle) {\n return;\n }\n drawLinkTriangle({\n context: ctx,\n pos1,\n pos2,\n pos3,\n backgroundMask: options.backgroundMask,\n colorTriangle,\n opacityTriangle,\n });\n });\n };\n this._drawTriangles = (options, p1, link, p1Links) => {\n const p2 = link.destination;\n if (!(options.links?.triangles.enable && p2.options.links?.triangles.enable)) {\n return;\n }\n const vertices = p2.links?.filter(t => {\n const linkFreq = this._getLinkFrequency(p2, t.destination), minCount = 0;\n return (p2.options.links &&\n linkFreq <= p2.options.links.frequency &&\n p1Links.findIndex(l => l.destination === t.destination) >= minCount);\n });\n if (!vertices?.length) {\n return;\n }\n for (const vertex of vertices) {\n const p3 = vertex.destination, triangleFreq = this._getTriangleFrequency(p1, p2, p3);\n if (triangleFreq > options.links.triangles.frequency) {\n continue;\n }\n this._drawLinkTriangle(p1, link, vertex);\n }\n };\n this._getLinkFrequency = (p1, p2) => {\n return setLinkFrequency([p1, p2], this._freqs.links);\n };\n this._getTriangleFrequency = (p1, p2, p3) => {\n return setLinkFrequency([p1, p2, p3], this._freqs.triangles);\n };\n this._container = container;\n this._engine = engine;\n this._freqs = {\n links: new Map(),\n triangles: new Map(),\n };\n }\n drawParticle(context, particle) {\n const { links, options } = particle;\n if (!links?.length) {\n return;\n }\n const p1Links = links.filter(l => options.links &&\n (options.links.frequency >= maxFrequency ||\n this._getLinkFrequency(particle, l.destination) <= options.links.frequency));\n for (const link of p1Links) {\n this._drawTriangles(options, particle, link, p1Links);\n if (link.opacity > minOpacity && (particle.retina.linksWidth ?? minWidth) > minWidth) {\n this._drawLinkLine(particle, link);\n }\n }\n }\n async init() {\n this._freqs.links = new Map();\n this._freqs.triangles = new Map();\n await Promise.resolve();\n }\n particleCreated(particle) {\n particle.links = [];\n if (!particle.options.links) {\n return;\n }\n const ratio = this._container.retina.pixelRatio, { retina } = particle, { distance, width } = particle.options.links;\n retina.linksDistance = distance * ratio;\n retina.linksWidth = width * ratio;\n }\n particleDestroyed(particle) {\n particle.links = [];\n }\n}\n", + "import { LinkInstance } from \"./LinkInstance.js\";\nexport class LinksPlugin {\n constructor(engine) {\n this.id = \"links\";\n this._engine = engine;\n }\n getPlugin(container) {\n return Promise.resolve(new LinkInstance(container, this._engine));\n }\n loadOptions() {\n }\n needsPlugin() {\n return true;\n }\n}\n", + "import { LinksPlugin } from \"./LinksPlugin.js\";\nexport async function loadLinksPlugin(engine, refresh = true) {\n const plugin = new LinksPlugin(engine);\n await engine.addPlugin(plugin, refresh);\n}\n", + "import { loadLinksInteraction } from \"./interaction.js\";\nimport { loadLinksPlugin } from \"./plugin.js\";\nexport async function loadParticlesLinksInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await loadLinksInteraction(engine, refresh);\n await loadLinksPlugin(engine, refresh);\n}\nexport * from \"./Options/Classes/Links.js\";\nexport * from \"./Options/Classes/LinksShadow.js\";\nexport * from \"./Options/Classes/LinksTriangle.js\";\nexport * from \"./Options/Interfaces/ILinks.js\";\nexport * from \"./Options/Interfaces/ILinksShadow.js\";\nexport * from \"./Options/Interfaces/ILinksTriangle.js\";\n", + "import { degToRad } from \"@tsparticles/engine\";\nconst piDeg = 180, origin = { x: 0, y: 0 }, sidesOffset = 2;\nexport function drawPolygon(data, start, side) {\n const { context } = data, sideCount = side.count.numerator * side.count.denominator, decimalSides = side.count.numerator / side.count.denominator, interiorAngleDegrees = (piDeg * (decimalSides - sidesOffset)) / decimalSides, interiorAngle = Math.PI - degToRad(interiorAngleDegrees);\n if (!context) {\n return;\n }\n context.beginPath();\n context.translate(start.x, start.y);\n context.moveTo(origin.x, origin.y);\n for (let i = 0; i < sideCount; i++) {\n context.lineTo(side.length, origin.y);\n context.translate(side.length, origin.y);\n context.rotate(interiorAngle);\n }\n}\n", + "import { getRangeValue, } from \"@tsparticles/engine\";\nimport { drawPolygon } from \"./Utils.js\";\nconst defaultSides = 5;\nexport class PolygonDrawerBase {\n draw(data) {\n const { particle, radius } = data, start = this.getCenter(particle, radius), side = this.getSidesData(particle, radius);\n drawPolygon(data, start, side);\n }\n getSidesCount(particle) {\n const polygon = particle.shapeData;\n return Math.round(getRangeValue(polygon?.sides ?? defaultSides));\n }\n}\n", + "import { PolygonDrawerBase } from \"./PolygonDrawerBase.js\";\nconst sidesCenterFactor = 3.5, yFactor = 2.66, sidesFactor = 3;\nexport class PolygonDrawer extends PolygonDrawerBase {\n constructor() {\n super(...arguments);\n this.validTypes = [\"polygon\"];\n }\n getCenter(particle, radius) {\n return {\n x: -radius / (particle.sides / sidesCenterFactor),\n y: -radius / (yFactor / sidesCenterFactor),\n };\n }\n getSidesData(particle, radius) {\n const sides = particle.sides;\n return {\n count: {\n denominator: 1,\n numerator: sides,\n },\n length: (radius * yFactor) / (sides / sidesFactor),\n };\n }\n}\n", + "import { PolygonDrawerBase } from \"./PolygonDrawerBase.js\";\nconst yFactor = 1.66, sides = 3, double = 2;\nexport class TriangleDrawer extends PolygonDrawerBase {\n constructor() {\n super(...arguments);\n this.validTypes = [\"triangle\"];\n }\n getCenter(particle, radius) {\n return {\n x: -radius,\n y: radius / yFactor,\n };\n }\n getSidesCount() {\n return sides;\n }\n getSidesData(particle, radius) {\n const diameter = radius * double;\n return {\n count: {\n denominator: 2,\n numerator: 3,\n },\n length: diameter,\n };\n }\n}\n", + "import { PolygonDrawer } from \"./PolygonDrawer.js\";\nimport { TriangleDrawer } from \"./TriangleDrawer.js\";\nexport async function loadGenericPolygonShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new PolygonDrawer(), refresh);\n}\nexport async function loadTriangleShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new TriangleDrawer(), refresh);\n}\nexport async function loadPolygonShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await loadGenericPolygonShape(engine, refresh);\n await loadTriangleShape(engine, refresh);\n}\n", + "import { isNull, setRangeValue } from \"@tsparticles/engine\";\nexport class RotateAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n", + "import { RotateDirection, ValueWithRandom, isNull, } from \"@tsparticles/engine\";\nimport { RotateAnimation } from \"./RotateAnimation.js\";\nexport class Rotate extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new RotateAnimation();\n this.direction = RotateDirection.clockwise;\n this.path = false;\n this.value = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n super.load(data);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.animation.load(data.animation);\n if (data.path !== undefined) {\n this.path = data.path;\n }\n }\n}\n", + "import { AnimationStatus, DestroyType, RotateDirection, degToRad, getRandom, getRangeValue, updateAnimation, } from \"@tsparticles/engine\";\nimport { Rotate } from \"./Options/Classes/Rotate.js\";\nconst double = 2, doublePI = Math.PI * double, identity = 1, doublePIDeg = 360;\nexport class RotateUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const rotateOptions = particle.options.rotate;\n if (!rotateOptions) {\n return;\n }\n particle.rotate = {\n enable: rotateOptions.animation.enable,\n value: degToRad(getRangeValue(rotateOptions.value)),\n min: 0,\n max: doublePI,\n };\n particle.pathRotation = rotateOptions.path;\n let rotateDirection = rotateOptions.direction;\n if (rotateDirection === RotateDirection.random) {\n const index = Math.floor(getRandom() * double), minIndex = 0;\n rotateDirection = index > minIndex ? RotateDirection.counterClockwise : RotateDirection.clockwise;\n }\n switch (rotateDirection) {\n case RotateDirection.counterClockwise:\n case \"counterClockwise\":\n particle.rotate.status = AnimationStatus.decreasing;\n break;\n case RotateDirection.clockwise:\n particle.rotate.status = AnimationStatus.increasing;\n break;\n }\n const rotateAnimation = rotateOptions.animation;\n if (rotateAnimation.enable) {\n particle.rotate.decay = identity - getRangeValue(rotateAnimation.decay);\n particle.rotate.velocity =\n (getRangeValue(rotateAnimation.speed) / doublePIDeg) * this.container.retina.reduceFactor;\n if (!rotateAnimation.sync) {\n particle.rotate.velocity *= getRandom();\n }\n }\n particle.rotation = particle.rotate.value;\n }\n isEnabled(particle) {\n const rotate = particle.options.rotate;\n if (!rotate) {\n return false;\n }\n return !particle.destroyed && !particle.spawning && (!!rotate.value || rotate.animation.enable || rotate.path);\n }\n loadOptions(options, ...sources) {\n if (!options.rotate) {\n options.rotate = new Rotate();\n }\n for (const source of sources) {\n options.rotate.load(source?.rotate);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n particle.isRotating = !!particle.rotate;\n if (!particle.rotate) {\n return;\n }\n updateAnimation(particle, particle.rotate, false, DestroyType.none, delta);\n particle.rotation = particle.rotate.value;\n }\n}\n", + "import { RotateUpdater } from \"./RotateUpdater.js\";\nexport async function loadRotateUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"rotate\", container => {\n return Promise.resolve(new RotateUpdater(container));\n }, refresh);\n}\n", + "const fixFactorSquared = 2, fixFactor = Math.sqrt(fixFactorSquared), double = 2;\nexport function drawSquare(data) {\n const { context, radius } = data, fixedRadius = radius / fixFactor, fixedDiameter = fixedRadius * double;\n context.rect(-fixedRadius, -fixedRadius, fixedDiameter, fixedDiameter);\n}\n", + "import { drawSquare } from \"./Utils.js\";\nconst sides = 4;\nexport class SquareDrawer {\n constructor() {\n this.validTypes = [\"edge\", \"square\"];\n }\n draw(data) {\n drawSquare(data);\n }\n getSidesCount() {\n return sides;\n }\n}\n", + "import { SquareDrawer } from \"./SquareDrawer.js\";\nexport async function loadSquareShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new SquareDrawer(), refresh);\n}\n", + "const defaultInset = 2, origin = { x: 0, y: 0 };\nexport function drawStar(data) {\n const { context, particle, radius } = data, sides = particle.sides, inset = particle.starInset ?? defaultInset;\n context.moveTo(origin.x, origin.y - radius);\n for (let i = 0; i < sides; i++) {\n context.rotate(Math.PI / sides);\n context.lineTo(origin.x, origin.y - radius * inset);\n context.rotate(Math.PI / sides);\n context.lineTo(origin.x, origin.y - radius);\n }\n}\n", + "import { getRangeValue, } from \"@tsparticles/engine\";\nimport { drawStar } from \"./Utils.js\";\nconst defaultInset = 2, defaultSides = 5;\nexport class StarDrawer {\n constructor() {\n this.validTypes = [\"star\"];\n }\n draw(data) {\n drawStar(data);\n }\n getSidesCount(particle) {\n const star = particle.shapeData;\n return Math.round(getRangeValue(star?.sides ?? defaultSides));\n }\n particleInit(container, particle) {\n const star = particle.shapeData;\n particle.starInset = getRangeValue(star?.inset ?? defaultInset);\n }\n}\n", + "import { StarDrawer } from \"./StarDrawer.js\";\nexport async function loadStarShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new StarDrawer(), refresh);\n}\n", + "import { getHslAnimationFromHsl, getRangeValue, itemFromSingleOrMultiple, rangeColorToHsl, updateColor, } from \"@tsparticles/engine\";\nconst defaultOpacity = 1;\nexport class StrokeColorUpdater {\n constructor(container, engine) {\n this._container = container;\n this._engine = engine;\n }\n init(particle) {\n const container = this._container, options = particle.options;\n const stroke = itemFromSingleOrMultiple(options.stroke, particle.id, options.reduceDuplicates);\n particle.strokeWidth = getRangeValue(stroke.width) * container.retina.pixelRatio;\n particle.strokeOpacity = getRangeValue(stroke.opacity ?? defaultOpacity);\n particle.strokeAnimation = stroke.color?.animation;\n const strokeHslColor = rangeColorToHsl(this._engine, stroke.color) ?? particle.getFillColor();\n if (strokeHslColor) {\n particle.strokeColor = getHslAnimationFromHsl(strokeHslColor, particle.strokeAnimation, container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n const color = particle.strokeAnimation, { strokeColor } = particle;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!color &&\n ((strokeColor?.h.value !== undefined && strokeColor.h.enable) ||\n (strokeColor?.s.value !== undefined && strokeColor.s.enable) ||\n (strokeColor?.l.value !== undefined && strokeColor.l.enable)));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateColor(particle.strokeColor, delta);\n }\n}\n", + "import { StrokeColorUpdater } from \"./StrokeColorUpdater.js\";\nexport async function loadStrokeColorUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"strokeColor\", container => {\n return Promise.resolve(new StrokeColorUpdater(container, engine));\n }, refresh);\n}\n", + "import { loadBasic } from \"@tsparticles/basic\";\nimport { loadEasingQuadPlugin } from \"@tsparticles/plugin-easing-quad\";\nimport { loadEmojiShape } from \"@tsparticles/shape-emoji\";\nimport { loadExternalAttractInteraction } from \"@tsparticles/interaction-external-attract\";\nimport { loadExternalBounceInteraction } from \"@tsparticles/interaction-external-bounce\";\nimport { loadExternalBubbleInteraction } from \"@tsparticles/interaction-external-bubble\";\nimport { loadExternalConnectInteraction } from \"@tsparticles/interaction-external-connect\";\nimport { loadExternalGrabInteraction } from \"@tsparticles/interaction-external-grab\";\nimport { loadExternalPauseInteraction } from \"@tsparticles/interaction-external-pause\";\nimport { loadExternalPushInteraction } from \"@tsparticles/interaction-external-push\";\nimport { loadExternalRemoveInteraction } from \"@tsparticles/interaction-external-remove\";\nimport { loadExternalRepulseInteraction } from \"@tsparticles/interaction-external-repulse\";\nimport { loadExternalSlowInteraction } from \"@tsparticles/interaction-external-slow\";\nimport { loadImageShape } from \"@tsparticles/shape-image\";\nimport { loadLifeUpdater } from \"@tsparticles/updater-life\";\nimport { loadLineShape } from \"@tsparticles/shape-line\";\nimport { loadParallaxMover } from \"@tsparticles/move-parallax\";\nimport { loadParticlesAttractInteraction } from \"@tsparticles/interaction-particles-attract\";\nimport { loadParticlesCollisionsInteraction } from \"@tsparticles/interaction-particles-collisions\";\nimport { loadParticlesLinksInteraction } from \"@tsparticles/interaction-particles-links\";\nimport { loadPolygonShape } from \"@tsparticles/shape-polygon\";\nimport { loadRotateUpdater } from \"@tsparticles/updater-rotate\";\nimport { loadSquareShape } from \"@tsparticles/shape-square\";\nimport { loadStarShape } from \"@tsparticles/shape-star\";\nimport { loadStrokeColorUpdater } from \"@tsparticles/updater-stroke-color\";\nexport async function loadSlim(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await loadParallaxMover(engine, false);\n await loadExternalAttractInteraction(engine, false);\n await loadExternalBounceInteraction(engine, false);\n await loadExternalBubbleInteraction(engine, false);\n await loadExternalConnectInteraction(engine, false);\n await loadExternalGrabInteraction(engine, false);\n await loadExternalPauseInteraction(engine, false);\n await loadExternalPushInteraction(engine, false);\n await loadExternalRemoveInteraction(engine, false);\n await loadExternalRepulseInteraction(engine, false);\n await loadExternalSlowInteraction(engine, false);\n await loadParticlesAttractInteraction(engine, false);\n await loadParticlesCollisionsInteraction(engine, false);\n await loadParticlesLinksInteraction(engine, false);\n await loadEasingQuadPlugin(engine, false);\n await loadEmojiShape(engine, false);\n await loadImageShape(engine, false);\n await loadLineShape(engine, false);\n await loadPolygonShape(engine, false);\n await loadSquareShape(engine, false);\n await loadStarShape(engine, false);\n await loadLifeUpdater(engine, false);\n await loadRotateUpdater(engine, false);\n await loadStrokeColorUpdater(engine, false);\n await loadBasic(engine, refresh);\n}\n", + "const SMALLEST_UNSAFE_INTEGER = 0x20000000000000;\nconst LARGEST_SAFE_INTEGER = SMALLEST_UNSAFE_INTEGER - 1;\nconst UINT32_MAX = -1 >>> 0;\nconst UINT32_SIZE = UINT32_MAX + 1;\nconst INT32_SIZE = UINT32_SIZE / 2;\nconst INT32_MAX = INT32_SIZE - 1;\nconst UINT21_SIZE = 1 << 21;\nconst UINT21_MAX = UINT21_SIZE - 1;\n\n/**\n * Returns a value within [-0x80000000, 0x7fffffff]\n */\nfunction int32(engine) {\n return engine.next() | 0;\n}\n\nfunction add(distribution, addend) {\n if (addend === 0) {\n return distribution;\n }\n else {\n return engine => distribution(engine) + addend;\n }\n}\n\n/**\n * Returns a value within [-0x20000000000000, 0x1fffffffffffff]\n */\nfunction int53(engine) {\n const high = engine.next() | 0;\n const low = engine.next() >>> 0;\n return ((high & UINT21_MAX) * UINT32_SIZE +\n low +\n (high & UINT21_SIZE ? -SMALLEST_UNSAFE_INTEGER : 0));\n}\n\n/**\n * Returns a value within [-0x20000000000000, 0x20000000000000]\n */\nfunction int53Full(engine) {\n while (true) {\n const high = engine.next() | 0;\n if (high & 0x400000) {\n if ((high & 0x7fffff) === 0x400000 && (engine.next() | 0) === 0) {\n return SMALLEST_UNSAFE_INTEGER;\n }\n }\n else {\n const low = engine.next() >>> 0;\n return ((high & UINT21_MAX) * UINT32_SIZE +\n low +\n (high & UINT21_SIZE ? -SMALLEST_UNSAFE_INTEGER : 0));\n }\n }\n}\n\n/**\n * Returns a value within [0, 0xffffffff]\n */\nfunction uint32(engine) {\n return engine.next() >>> 0;\n}\n\n/**\n * Returns a value within [0, 0x1fffffffffffff]\n */\nfunction uint53(engine) {\n const high = engine.next() & UINT21_MAX;\n const low = engine.next() >>> 0;\n return high * UINT32_SIZE + low;\n}\n\n/**\n * Returns a value within [0, 0x20000000000000]\n */\nfunction uint53Full(engine) {\n while (true) {\n const high = engine.next() | 0;\n if (high & UINT21_SIZE) {\n if ((high & UINT21_MAX) === 0 && (engine.next() | 0) === 0) {\n return SMALLEST_UNSAFE_INTEGER;\n }\n }\n else {\n const low = engine.next() >>> 0;\n return (high & UINT21_MAX) * UINT32_SIZE + low;\n }\n }\n}\n\nfunction isPowerOfTwoMinusOne(value) {\n return ((value + 1) & value) === 0;\n}\nfunction bitmask(masking) {\n return (engine) => engine.next() & masking;\n}\nfunction downscaleToLoopCheckedRange(range) {\n const extendedRange = range + 1;\n const maximum = extendedRange * Math.floor(UINT32_SIZE / extendedRange);\n return engine => {\n let value = 0;\n do {\n value = engine.next() >>> 0;\n } while (value >= maximum);\n return value % extendedRange;\n };\n}\nfunction downscaleToRange(range) {\n if (isPowerOfTwoMinusOne(range)) {\n return bitmask(range);\n }\n else {\n return downscaleToLoopCheckedRange(range);\n }\n}\nfunction isEvenlyDivisibleByMaxInt32(value) {\n return (value | 0) === 0;\n}\nfunction upscaleWithHighMasking(masking) {\n return engine => {\n const high = engine.next() & masking;\n const low = engine.next() >>> 0;\n return high * UINT32_SIZE + low;\n };\n}\nfunction upscaleToLoopCheckedRange(extendedRange) {\n const maximum = extendedRange * Math.floor(SMALLEST_UNSAFE_INTEGER / extendedRange);\n return engine => {\n let ret = 0;\n do {\n const high = engine.next() & UINT21_MAX;\n const low = engine.next() >>> 0;\n ret = high * UINT32_SIZE + low;\n } while (ret >= maximum);\n return ret % extendedRange;\n };\n}\nfunction upscaleWithinU53(range) {\n const extendedRange = range + 1;\n if (isEvenlyDivisibleByMaxInt32(extendedRange)) {\n const highRange = ((extendedRange / UINT32_SIZE) | 0) - 1;\n if (isPowerOfTwoMinusOne(highRange)) {\n return upscaleWithHighMasking(highRange);\n }\n }\n return upscaleToLoopCheckedRange(extendedRange);\n}\nfunction upscaleWithinI53AndLoopCheck(min, max) {\n return engine => {\n let ret = 0;\n do {\n const high = engine.next() | 0;\n const low = engine.next() >>> 0;\n ret =\n (high & UINT21_MAX) * UINT32_SIZE +\n low +\n (high & UINT21_SIZE ? -SMALLEST_UNSAFE_INTEGER : 0);\n } while (ret < min || ret > max);\n return ret;\n };\n}\n/**\n * Returns a Distribution to return a value within [min, max]\n * @param min The minimum integer value, inclusive. No less than -0x20000000000000.\n * @param max The maximum integer value, inclusive. No greater than 0x20000000000000.\n */\nfunction integer(min, max) {\n min = Math.floor(min);\n max = Math.floor(max);\n if (min < -SMALLEST_UNSAFE_INTEGER || !isFinite(min)) {\n throw new RangeError(`Expected min to be at least ${-SMALLEST_UNSAFE_INTEGER}`);\n }\n else if (max > SMALLEST_UNSAFE_INTEGER || !isFinite(max)) {\n throw new RangeError(`Expected max to be at most ${SMALLEST_UNSAFE_INTEGER}`);\n }\n const range = max - min;\n if (range <= 0 || !isFinite(range)) {\n return () => min;\n }\n else if (range === UINT32_MAX) {\n if (min === 0) {\n return uint32;\n }\n else {\n return add(int32, min + INT32_SIZE);\n }\n }\n else if (range < UINT32_MAX) {\n return add(downscaleToRange(range), min);\n }\n else if (range === LARGEST_SAFE_INTEGER) {\n return add(uint53, min);\n }\n else if (range < LARGEST_SAFE_INTEGER) {\n return add(upscaleWithinU53(range), min);\n }\n else if (max - 1 - min === LARGEST_SAFE_INTEGER) {\n return add(uint53Full, min);\n }\n else if (min === -SMALLEST_UNSAFE_INTEGER &&\n max === SMALLEST_UNSAFE_INTEGER) {\n return int53Full;\n }\n else if (min === -SMALLEST_UNSAFE_INTEGER && max === LARGEST_SAFE_INTEGER) {\n return int53;\n }\n else if (min === -LARGEST_SAFE_INTEGER && max === SMALLEST_UNSAFE_INTEGER) {\n return add(int53, 1);\n }\n else if (max === SMALLEST_UNSAFE_INTEGER) {\n return add(upscaleWithinI53AndLoopCheck(min - 1, max - 1), 1);\n }\n else {\n return upscaleWithinI53AndLoopCheck(min, max);\n }\n}\n\nfunction isLeastBitTrue(engine) {\n return (engine.next() & 1) === 1;\n}\nfunction lessThan(distribution, value) {\n return engine => distribution(engine) < value;\n}\nfunction probability(percentage) {\n if (percentage <= 0) {\n return () => false;\n }\n else if (percentage >= 1) {\n return () => true;\n }\n else {\n const scaled = percentage * UINT32_SIZE;\n if (scaled % 1 === 0) {\n return lessThan(int32, (scaled - INT32_SIZE) | 0);\n }\n else {\n return lessThan(uint53, Math.round(percentage * SMALLEST_UNSAFE_INTEGER));\n }\n }\n}\nfunction bool(numerator, denominator) {\n if (denominator == null) {\n if (numerator == null) {\n return isLeastBitTrue;\n }\n return probability(numerator);\n }\n else {\n if (numerator <= 0) {\n return () => false;\n }\n else if (numerator >= denominator) {\n return () => true;\n }\n return lessThan(integer(0, denominator - 1), numerator);\n }\n}\n\n/**\n * Returns a Distribution that returns a random `Date` within the inclusive\n * range of [`start`, `end`].\n * @param start The minimum `Date`\n * @param end The maximum `Date`\n */\nfunction date(start, end) {\n const distribution = integer(+start, +end);\n return engine => new Date(distribution(engine));\n}\n\n/**\n * Returns a Distribution to return a value within [1, sideCount]\n * @param sideCount The number of sides of the die\n */\nfunction die(sideCount) {\n return integer(1, sideCount);\n}\n\n/**\n * Returns a distribution that returns an array of length `dieCount` of values\n * within [1, `sideCount`]\n * @param sideCount The number of sides of each die\n * @param dieCount The number of dice\n */\nfunction dice(sideCount, dieCount) {\n const distribution = die(sideCount);\n return engine => {\n const result = [];\n for (let i = 0; i < dieCount; ++i) {\n result.push(distribution(engine));\n }\n return result;\n };\n}\n\n// tslint:disable:unified-signatures\n// has 2**x chars, for faster uniform distribution\nconst DEFAULT_STRING_POOL = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\";\nfunction string(pool = DEFAULT_STRING_POOL) {\n const poolLength = pool.length;\n if (!poolLength) {\n throw new Error(\"Expected pool not to be an empty string\");\n }\n const distribution = integer(0, poolLength - 1);\n return (engine, length) => {\n let result = \"\";\n for (let i = 0; i < length; ++i) {\n const j = distribution(engine);\n result += pool.charAt(j);\n }\n return result;\n };\n}\n\nconst LOWER_HEX_POOL = \"0123456789abcdef\";\nconst lowerHex = string(LOWER_HEX_POOL);\nconst upperHex = string(LOWER_HEX_POOL.toUpperCase());\n/**\n * Returns a Distribution that returns a random string comprised of numbers\n * or the characters `abcdef` (or `ABCDEF`) of length `length`.\n * @param length Length of the result string\n * @param uppercase Whether the string should use `ABCDEF` instead of `abcdef`\n */\nfunction hex(uppercase) {\n if (uppercase) {\n return upperHex;\n }\n else {\n return lowerHex;\n }\n}\n\n/**\n * Returns a Distribution to return the maximum value of random.integer\n */\nfunction max(minimum, maximum) {\n minimum.valueOf(); // here so no unused variable warnings exist in code\n return integer(maximum, maximum);\n}\n\n/**\n * Returns a Distribution to return the minimum value of random.integer\n */\nfunction min(minimum, maximum) {\n maximum.valueOf(); // here so no unused variable warnings exist in code\n return integer(minimum, minimum);\n}\n\nfunction convertSliceArgument(value, length) {\n if (value < 0) {\n return Math.max(value + length, 0);\n }\n else {\n return Math.min(value, length);\n }\n}\n\nfunction toInteger(value) {\n const num = +value;\n if (num < 0) {\n return Math.ceil(num);\n }\n else {\n return Math.floor(num);\n }\n}\n\n/**\n * Returns a random value within the provided `source` within the sliced\n * bounds of `begin` and `end`.\n * @param source an array of items to pick from\n * @param begin the beginning slice index (defaults to `0`)\n * @param end the ending slice index (defaults to `source.length`)\n */\nfunction pick(engine, source, begin, end) {\n const length = source.length;\n if (length === 0) {\n throw new RangeError(\"Cannot pick from an empty array\");\n }\n const start = begin == null ? 0 : convertSliceArgument(toInteger(begin), length);\n const finish = end === void 0 ? length : convertSliceArgument(toInteger(end), length);\n if (start >= finish) {\n throw new RangeError(`Cannot pick between bounds ${start} and ${finish}`);\n }\n const distribution = integer(start, finish - 1);\n return source[distribution(engine)];\n}\n\nfunction multiply(distribution, multiplier) {\n if (multiplier === 1) {\n return distribution;\n }\n else if (multiplier === 0) {\n return () => 0;\n }\n else {\n return engine => distribution(engine) * multiplier;\n }\n}\n\n/**\n * Returns a floating-point value within [0.0, 1.0)\n */\nfunction realZeroToOneExclusive(engine) {\n return uint53(engine) / SMALLEST_UNSAFE_INTEGER;\n}\n\n/**\n * Returns a floating-point value within [0.0, 1.0]\n */\nfunction realZeroToOneInclusive(engine) {\n return uint53Full(engine) / SMALLEST_UNSAFE_INTEGER;\n}\n\n/**\n * Returns a floating-point value within [min, max) or [min, max]\n * @param min The minimum floating-point value, inclusive.\n * @param max The maximum floating-point value.\n * @param inclusive If true, `max` will be inclusive.\n */\nfunction real(min, max, inclusive = false) {\n if (!isFinite(min)) {\n throw new RangeError(\"Expected min to be a finite number\");\n }\n else if (!isFinite(max)) {\n throw new RangeError(\"Expected max to be a finite number\");\n }\n return add(multiply(inclusive ? realZeroToOneInclusive : realZeroToOneExclusive, max - min), min);\n}\n\nconst sliceArray = Array.prototype.slice;\n\n/**\n * Shuffles an array in-place\n * @param engine The Engine to use when choosing random values\n * @param array The array to shuffle\n * @param downTo minimum index to shuffle. Only used internally.\n */\nfunction shuffle(engine, array, downTo = 0) {\n const length = array.length;\n if (length) {\n for (let i = (length - 1) >>> 0; i > downTo; --i) {\n const distribution = integer(0, i);\n const j = distribution(engine);\n if (i !== j) {\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n }\n }\n return array;\n}\n\n/**\n * From the population array, produce an array with sampleSize elements that\n * are randomly chosen without repeats.\n * @param engine The Engine to use when choosing random values\n * @param population An array that has items to choose a sample from\n * @param sampleSize The size of the result array\n */\nfunction sample(engine, population, sampleSize) {\n if (sampleSize < 0 ||\n sampleSize > population.length ||\n !isFinite(sampleSize)) {\n throw new RangeError(\"Expected sampleSize to be within 0 and the length of the population\");\n }\n if (sampleSize === 0) {\n return [];\n }\n const clone = sliceArray.call(population);\n const length = clone.length;\n if (length === sampleSize) {\n return shuffle(engine, clone, 0);\n }\n const tailLength = length - sampleSize;\n return shuffle(engine, clone, tailLength - 1).slice(tailLength);\n}\n\nconst stringRepeat = (() => {\n try {\n if (\"x\".repeat(3) === \"xxx\") {\n return (pattern, count) => pattern.repeat(count);\n }\n }\n catch (e) {\n console.warn(\"String.prototype.repeat check failed, using fallback:\", e);\n }\n return (pattern, count) => {\n let result = \"\";\n while (count > 0) {\n if (count & 1) {\n result += pattern;\n }\n count >>= 1;\n pattern += pattern;\n }\n return result;\n };\n})();\n\nfunction zeroPad(text, zeroCount) {\n return stringRepeat(\"0\", zeroCount - text.length) + text;\n}\n/**\n * Returns a Universally Unique Identifier Version 4.\n *\n * See http://en.wikipedia.org/wiki/Universally_unique_identifier\n */\nfunction uuid4(engine) {\n const a = engine.next() >>> 0;\n const b = engine.next() | 0;\n const c = engine.next() | 0;\n const d = engine.next() >>> 0;\n return (zeroPad(a.toString(16), 8) +\n \"-\" +\n zeroPad((b & 0xffff).toString(16), 4) +\n \"-\" +\n zeroPad((((b >> 4) & 0x0fff) | 0x4000).toString(16), 4) +\n \"-\" +\n zeroPad(((c & 0x3fff) | 0x8000).toString(16), 4) +\n \"-\" +\n zeroPad(((c >> 4) & 0xffff).toString(16), 4) +\n zeroPad(d.toString(16), 8));\n}\n\n/**\n * An int32-producing Engine that uses `Math.random()`\n */\nconst nativeMath = {\n next() {\n return (Math.random() * UINT32_SIZE) | 0;\n }\n};\n\n/**\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array\n */\nconst I32Array = (() => {\n try {\n const buffer = new ArrayBuffer(4);\n const view = new Int32Array(buffer);\n view[0] = INT32_SIZE;\n if (view[0] === -INT32_SIZE) {\n return Int32Array;\n }\n }\n catch (e) {\n console.warn(\"Int32Array check failed, falling back to Array:\", e);\n }\n return Array;\n})();\n\nlet data = null;\nconst COUNT = 128;\nlet index = COUNT;\n/**\n * An Engine that relies on the globally-available `crypto.getRandomValues`,\n * which is typically available in modern browsers.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\n *\n * If unavailable or otherwise non-functioning, then `browserCrypto` will\n * likely `throw` on the first call to `next()`.\n */\nconst browserCrypto = {\n next() {\n if (index >= COUNT) {\n data ??= new I32Array(COUNT);\n crypto.getRandomValues(data);\n index = 0;\n }\n return data[index++] | 0;\n }\n};\n\n// tslint:disable:unified-signatures\nfunction detectDefaultEngine() {\n if (typeof window !== \"undefined\" && typeof window.crypto?.getRandomValues === \"function\") {\n return browserCrypto;\n }\n if (typeof process !== \"undefined\" && process?.versions?.node) {\n try {\n const crypto = require(\"crypto\");\n if (crypto?.randomBytes) {\n return browserCrypto;\n }\n }\n catch {\n // fallback to nativeMath if crypto.randomBytes is unsupported\n return nativeMath;\n }\n }\n return nativeMath;\n}\n/**\n * A wrapper around an Engine that provides easy-to-use methods for\n * producing values based on known distributions\n */\nclass Random {\n engine;\n constructor(engine) {\n // LEGACY: Default to nativeMath for backward compatibility\n this.engine = engine ?? nativeMath;\n }\n /**\n * Creates a new Random wrapper that automatically detects\n * and uses the best available engine for the current environment.\n * @returns A Random instance using auto-detected engine\n */\n static auto() {\n return new Random(detectDefaultEngine());\n }\n /**\n * Returns a value within [-0x80000000, 0x7fffffff]\n */\n int32() {\n return int32(this.engine);\n }\n /**\n * Returns a value within [0, 0xffffffff]\n */\n uint32() {\n return uint32(this.engine);\n }\n /**\n * Returns a value within [0, 0x1fffffffffffff]\n */\n uint53() {\n return uint53(this.engine);\n }\n /**\n * Returns a value within [0, 0x20000000000000]\n */\n uint53Full() {\n return uint53Full(this.engine);\n }\n /**\n * Returns a value within [-0x20000000000000, 0x1fffffffffffff]\n */\n int53() {\n return int53(this.engine);\n }\n /**\n * Returns a value within [-0x20000000000000, 0x20000000000000]\n */\n int53Full() {\n return int53Full(this.engine);\n }\n /**\n * Returns a value within [min, max]\n * @param minimum The minimum integer value, inclusive. No less than -0x20000000000000.\n * @param maximum The maximum integer value, inclusive. No greater than 0x20000000000000.\n */\n integer(minimum, maximum) {\n return integer(minimum, maximum)(this.engine);\n }\n /**\n * Returns the maximum of the values specified within [min, max]\n * @param minimum The minimum integer value, inclusive. No less than -0x20000000000000. Discarded.\n * @param maximum The maximum integer value, inclusive. No greater than 0x20000000000000.\n */\n max(minimum, maximum) {\n return max(minimum, maximum)(this.engine);\n }\n /**\n * Returns the minimum of the values specified within [min, max]\n * @param minimum The minimum integer value, inclusive. No less than -0x20000000000000.\n * @param maximum The maximum integer value, inclusive. No greater than 0x20000000000000. Discarded.\n */\n min(minimum, maximum) {\n return min(minimum, maximum)(this.engine);\n }\n /**\n * Returns a floating-point value within [0.0, 1.0]\n */\n realZeroToOneInclusive() {\n return realZeroToOneInclusive(this.engine);\n }\n /**\n * Returns a floating-point value within [0.0, 1.0)\n */\n realZeroToOneExclusive() {\n return realZeroToOneExclusive(this.engine);\n }\n /**\n * Returns a floating-point value within [min, max) or [min, max]\n * @param min The minimum floating-point value, inclusive.\n * @param max The maximum floating-point value.\n * @param inclusive If true, `max` will be inclusive.\n */\n real(minimum, maximum, inclusive = false) {\n return real(minimum, maximum, inclusive)(this.engine);\n }\n bool(numerator, denominator) {\n return bool(numerator, denominator)(this.engine);\n }\n /**\n * Return a random value within the provided `source` within the sliced\n * bounds of `begin` and `end`.\n * @param source an array of items to pick from\n * @param begin the beginning slice index (defaults to `0`)\n * @param end the ending slice index (defaults to `source.length`)\n */\n pick(source, begin, end) {\n return pick(this.engine, source, begin, end);\n }\n /**\n * Shuffles an array in-place\n * @param array The array to shuffle\n */\n shuffle(array) {\n return shuffle(this.engine, array);\n }\n /**\n * From the population array, returns an array with sampleSize elements that\n * are randomly chosen without repeats.\n * @param population An array that has items to choose a sample from\n * @param sampleSize The size of the result array\n */\n sample(population, sampleSize) {\n return sample(this.engine, population, sampleSize);\n }\n /**\n * Returns a value within [1, sideCount]\n * @param sideCount The number of sides of the die\n */\n die(sideCount) {\n return die(sideCount)(this.engine);\n }\n /**\n * Returns an array of length `dieCount` of values within [1, sideCount]\n * @param sideCount The number of sides of each die\n * @param dieCount The number of dice\n */\n dice(sideCount, dieCount) {\n return dice(sideCount, dieCount)(this.engine);\n }\n /**\n * Returns a Universally Unique Identifier Version 4.\n *\n * See https://en.wikipedia.org/wiki/Universally_unique_identifier\n */\n uuid4() {\n return uuid4(this.engine);\n }\n string(length, pool) {\n return string(pool)(this.engine, length);\n }\n /**\n * Returns a random string comprised of numbers or the characters `abcdef`\n * (or `ABCDEF`) of length `length`.\n * @param length Length of the result string\n * @param uppercase Whether the string should use `ABCDEF` instead of `abcdef`\n */\n hex(length, uppercase) {\n return hex(uppercase)(this.engine, length);\n }\n /**\n * Returns a random `Date` within the inclusive range of [`start`, `end`].\n * @param start The minimum `Date`\n * @param end The maximum `Date`\n */\n date(start, end) {\n return date(start, end)(this.engine);\n }\n}\n\n/**\n * Returns an array of random int32 values, based on current time\n * and a random number engine\n *\n * @param engine an Engine to pull random values from, default `nativeMath`\n * @param length the length of the Array, minimum 1, default 16\n */\nfunction createEntropy(engine = nativeMath, length = 16) {\n const array = [];\n array.push(new Date().getTime() | 0);\n for (let i = 1; i < length; ++i) {\n array[i] = engine.next() | 0;\n }\n return array;\n}\n\n/**\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul\n */\nconst imul = (() => {\n try {\n if (Math.imul(UINT32_MAX, 5) === -5) {\n return Math.imul;\n }\n }\n catch (e) {\n console.warn(\"Math.imul is not available or failed the test, using polyfill.\", e);\n }\n const UINT16_MAX = 0xffff;\n return (a, b) => {\n const ah = (a >>> 16) & UINT16_MAX;\n const al = a & UINT16_MAX;\n const bh = (b >>> 16) & UINT16_MAX;\n const bl = b & UINT16_MAX;\n // the shift by 0 fixes the sign on the high part\n // the final |0 converts the unsigned value into a signed value\n return (al * bl + (((ah * bl + al * bh) << 16) >>> 0)) | 0;\n };\n})();\n\nconst ARRAY_SIZE$1 = 624;\nconst ARRAY_MAX = ARRAY_SIZE$1 - 1;\nconst M = 397;\nconst ARRAY_SIZE_MINUS_M = ARRAY_SIZE$1 - M;\nconst A = 0x9908b0df;\n/**\n * An Engine that is a pseudorandom number generator using the Mersenne\n * Twister algorithm based on the prime 2**19937 āˆ’ 1\n *\n * See http://en.wikipedia.org/wiki/Mersenne_twister\n */\nclass MersenneTwister19937 {\n /**\n * Returns a MersenneTwister19937 seeded with an initial int32 value\n * @param initial the initial seed value\n */\n static seed(initial) {\n return new MersenneTwister19937().seed(initial);\n }\n /**\n * Returns a MersenneTwister19937 seeded with zero or more int32 values\n * @param source A series of int32 values\n */\n static seedWithArray(source) {\n return new MersenneTwister19937().seedWithArray(source);\n }\n /**\n * Returns a MersenneTwister19937 seeded with the current time and\n * a series of natively-generated random values\n */\n static autoSeed() {\n return MersenneTwister19937.seedWithArray(createEntropy());\n }\n data = new I32Array(ARRAY_SIZE$1);\n index = 0; // integer within [0, 624]\n uses = 0;\n /**\n * MersenneTwister19937 should not be instantiated directly.\n * Instead, use the static methods `seed`, `seedWithArray`, or `autoSeed`.\n */\n constructor() { }\n /**\n * Returns the next int32 value of the sequence\n */\n next() {\n if ((this.index | 0) >= ARRAY_SIZE$1) {\n refreshData(this.data);\n this.index = 0;\n }\n const value = this.data[this.index];\n this.index = (this.index + 1) | 0;\n this.uses += 1;\n return temper(value) | 0;\n }\n /**\n * Returns the number of times that the Engine has been used.\n *\n * This can be provided to an unused MersenneTwister19937 with the same\n * seed, bringing it to the exact point that was left off.\n */\n getUseCount() {\n return this.uses;\n }\n /**\n * Discards one or more items from the engine\n * @param count The count of items to discard\n */\n discard(count) {\n if (count <= 0) {\n return this;\n }\n this.uses += count;\n if ((this.index | 0) >= ARRAY_SIZE$1) {\n refreshData(this.data);\n this.index = 0;\n }\n while (count + this.index > ARRAY_SIZE$1) {\n count -= ARRAY_SIZE$1 - this.index;\n refreshData(this.data);\n this.index = 0;\n }\n this.index = (this.index + count) | 0;\n return this;\n }\n seed(initial) {\n let previous = 0;\n this.data[0] = previous = initial | 0;\n for (let i = 1; i < ARRAY_SIZE$1; i = (i + 1) | 0) {\n this.data[i] = previous =\n (imul(previous ^ (previous >>> 30), 0x6c078965) + i) | 0;\n }\n this.index = ARRAY_SIZE$1;\n this.uses = 0;\n return this;\n }\n seedWithArray(source) {\n this.seed(0x012bd6aa);\n seedWithArray(this.data, source);\n return this;\n }\n}\nfunction refreshData(data) {\n let k = 0;\n let tmp = 0;\n for (; (k | 0) < ARRAY_SIZE_MINUS_M; k = (k + 1) | 0) {\n tmp = (data[k] & INT32_SIZE) | (data[(k + 1) | 0] & INT32_MAX);\n data[k] = data[(k + M) | 0] ^ (tmp >>> 1) ^ (tmp & 0x1 ? A : 0);\n }\n for (; (k | 0) < ARRAY_MAX; k = (k + 1) | 0) {\n tmp = (data[k] & INT32_SIZE) | (data[(k + 1) | 0] & INT32_MAX);\n data[k] =\n data[(k - ARRAY_SIZE_MINUS_M) | 0] ^ (tmp >>> 1) ^ (tmp & 0x1 ? A : 0);\n }\n tmp = (data[ARRAY_MAX] & INT32_SIZE) | (data[0] & INT32_MAX);\n data[ARRAY_MAX] = data[M - 1] ^ (tmp >>> 1) ^ (tmp & 0x1 ? A : 0);\n}\nfunction temper(value) {\n value ^= value >>> 11;\n value ^= (value << 7) & 0x9d2c5680;\n value ^= (value << 15) & 0xefc60000;\n return value ^ (value >>> 18);\n}\nfunction seedWithArray(data, source) {\n let i = 1;\n let j = 0;\n const sourceLength = source.length;\n let k = Math.max(sourceLength, ARRAY_SIZE$1) | 0;\n let previous = data[0] | 0;\n for (; (k | 0) > 0; --k) {\n data[i] = previous =\n ((data[i] ^ imul(previous ^ (previous >>> 30), 0x0019660d)) +\n (source[j] | 0) +\n (j | 0)) |\n 0;\n i = (i + 1) | 0;\n ++j;\n if ((i | 0) > ARRAY_MAX) {\n data[0] = data[ARRAY_MAX];\n i = 1;\n }\n if (j >= sourceLength) {\n j = 0;\n }\n }\n for (k = ARRAY_MAX; (k | 0) > 0; --k) {\n data[i] = previous =\n ((data[i] ^ imul(previous ^ (previous >>> 30), 0x5d588b65)) - i) | 0;\n i = (i + 1) | 0;\n if ((i | 0) > ARRAY_MAX) {\n data[0] = data[ARRAY_MAX];\n i = 1;\n }\n }\n data[0] = INT32_SIZE;\n}\n\n// Constants for xorgen4096\nconst ARRAY_SIZE = 4096;\nconst ARRAY_MASK = ARRAY_SIZE - 1;\n/**\n * An Engine that is a pseudorandom number generator using\n * xorgen4096 algorithm with 4096-length state array.\n */\nclass XorGen4096 {\n data = new I32Array(ARRAY_SIZE);\n index = 0;\n uses = 0;\n /**\n * Returns a XorGen4096 seeded with an initial int32 value\n */\n static seed(initial) {\n return new XorGen4096().seed(initial);\n }\n /**\n * Returns a XorGen4096 seeded with zero or more int32 values\n */\n static seedWithArray(source) {\n return new XorGen4096().seedWithArray(source);\n }\n /**\n * Returns a XorGen4096 seeded with the current time and\n * a series of natively-generated random values\n */\n static autoSeed() {\n return XorGen4096.seedWithArray(createEntropy());\n }\n constructor() { }\n /**\n * Returns the next int32 value of the sequence\n */\n next() {\n // Advance index in a circular manner\n const i = this.index;\n this.index = (this.index + 1) & ARRAY_MASK;\n let t = this.data[i];\n const s = this.data[(i + 1) & ARRAY_MASK];\n t ^= (t << 13);\n t ^= (t >>> 17);\n t ^= (s ^ (s >>> 5));\n this.data[i] = t;\n this.uses++;\n return t | 0;\n }\n /**\n * Returns the number of times that the Engine has been used.\n */\n getUseCount() {\n return this.uses;\n }\n /**\n * Discards one or more items from the engine\n */\n discard(count) {\n if (count <= 0)\n return this;\n this.uses += count;\n this.index = (this.index + count) & ARRAY_MASK;\n return this;\n }\n seed(initial) {\n let prev = initial | 0;\n this.data[0] = prev;\n for (let i = 1; i < ARRAY_SIZE; i++) {\n prev = imul(prev ^ (prev >>> 30), 0x6c078965) + i | 0;\n this.data[i] = prev;\n }\n this.index = 0;\n this.uses = 0;\n return this;\n }\n seedWithArray(source) {\n this.seed(19650218);\n let i = 1;\n let j = 0;\n const length = source.length;\n let k = ARRAY_SIZE > length ? ARRAY_SIZE : length;\n for (; k > 0; k--) {\n this.data[i] = (this.data[i] ^ imul(this.data[i - 1] ^ (this.data[i - 1] >>> 30), 1664525)) + source[j] + j | 0;\n i++;\n j++;\n if (i >= ARRAY_SIZE) {\n this.data[0] = this.data[ARRAY_SIZE - 1];\n i = 1;\n }\n if (j >= length)\n j = 0;\n }\n for (k = ARRAY_SIZE - 1; k > 0; k--) {\n this.data[i] = (this.data[i] ^ imul(this.data[i - 1] ^ (this.data[i - 1] >>> 30), 1566083941)) - i | 0;\n i++;\n if (i >= ARRAY_SIZE) {\n this.data[0] = this.data[ARRAY_SIZE - 1];\n i = 1;\n }\n }\n this.index = 0;\n this.uses = 0;\n return this;\n }\n}\n\n/**\n * Returns a Distribution to random value within the provided `source`\n * within the sliced bounds of `begin` and `end`.\n * @param source an array of items to pick from\n * @param begin the beginning slice index (defaults to `0`)\n * @param end the ending slice index (defaults to `source.length`)\n */\nfunction picker(source, begin, end) {\n const clone = sliceArray.call(source, begin, end);\n if (clone.length === 0) {\n throw new RangeError(`Cannot pick from a source with no items`);\n }\n const distribution = integer(0, clone.length - 1);\n return engine => clone[distribution(engine)];\n}\n\nexport { MersenneTwister19937, Random, XorGen4096, bool, browserCrypto, createEntropy, date, dice, die, hex, int32, int53, int53Full, integer, nativeMath, pick, picker, real, realZeroToOneExclusive, realZeroToOneInclusive, sample, shuffle, string, uint32, uint53, uint53Full, uuid4 };\n//# sourceMappingURL=random-js.esm.js.map\n", + "// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nclass InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nclass InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nclass InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nclass ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nclass InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nclass InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nclass ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n\n/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nconst DATE_SHORT = {\n year: n,\n month: n,\n day: n,\n};\n\nconst DATE_MED = {\n year: n,\n month: s,\n day: n,\n};\n\nconst DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n};\n\nconst DATE_FULL = {\n year: n,\n month: l,\n day: n,\n};\n\nconst DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n};\n\nconst TIME_SIMPLE = {\n hour: n,\n minute: n,\n};\n\nconst TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n};\n\nconst TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nconst TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n\nconst TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hourCycle: \"h23\",\n};\n\nconst TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n};\n\nconst TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: s,\n};\n\nconst TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: l,\n};\n\nconst DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n};\n\nconst DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nconst DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n};\n\nconst DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nconst DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n,\n};\n\nconst DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s,\n};\n\nconst DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nconst DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l,\n};\n\nconst DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n\n/**\n * @interface\n */\nclass Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The IANA name of this zone.\n * Defaults to `name` if not overwritten by a subclass.\n * @abstract\n * @type {string}\n */\n get ianaName() {\n return this.name;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get isUniversal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n\nlet singleton$1 = null;\n\n/**\n * Represents the local zone for this JavaScript environment.\n * @implements {Zone}\n */\nclass SystemZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {SystemZone}\n */\n static get instance() {\n if (singleton$1 === null) {\n singleton$1 = new SystemZone();\n }\n return singleton$1;\n }\n\n /** @override **/\n get type() {\n return \"system\";\n }\n\n /** @override **/\n get name() {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"system\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n\nconst dtfCache = new Map();\nfunction makeDTF(zoneName) {\n let dtf = dtfCache.get(zoneName);\n if (dtf === undefined) {\n dtf = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zoneName,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n era: \"short\",\n });\n dtfCache.set(zoneName, dtf);\n }\n return dtf;\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n era: 3,\n hour: 4,\n minute: 5,\n second: 6,\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+) (AD|BC),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date);\n const filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i];\n const pos = typeToPos[type];\n\n if (type === \"era\") {\n filled[pos] = value;\n } else if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nconst ianaZoneCache = new Map();\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nclass IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n let zone = ianaZoneCache.get(name);\n if (zone === undefined) {\n ianaZoneCache.set(name, (zone = new IANAZone(name)));\n }\n return zone;\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache.clear();\n dtfCache.clear();\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @deprecated For backward compatibility, this forwards to isValidZone, better use `isValidZone()` directly instead.\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return this.isValidZone(s);\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n if (!zone) {\n return false;\n }\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /**\n * The type of zone. `iana` for all instances of `IANAZone`.\n * @override\n * @type {string}\n */\n get type() {\n return \"iana\";\n }\n\n /**\n * The name of this zone (i.e. the IANA zone name).\n * @override\n * @type {string}\n */\n get name() {\n return this.zoneName;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year:\n * Always returns false for all IANA zones.\n * @override\n * @type {boolean}\n */\n get isUniversal() {\n return false;\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /**\n * Returns the offset's value as a string\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @override\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n if (!this.valid) return NaN;\n const date = new Date(ts);\n\n if (isNaN(date)) return NaN;\n\n const dtf = makeDTF(this.name);\n let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date);\n\n if (adOrBc === \"BC\") {\n year = -Math.abs(year) + 1;\n }\n\n // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n const adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0,\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @override\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /**\n * Return whether this Zone is valid.\n * @override\n * @type {boolean}\n */\n get isValid() {\n return this.valid;\n }\n}\n\n// todo - remap caching\n\nlet intlLFCache = {};\nfunction getCachedLF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlLFCache[key];\n if (!dtf) {\n dtf = new Intl.ListFormat(locString, opts);\n intlLFCache[key] = dtf;\n }\n return dtf;\n}\n\nconst intlDTCache = new Map();\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache.get(key);\n if (dtf === undefined) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache.set(key, dtf);\n }\n return dtf;\n}\n\nconst intlNumCache = new Map();\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache.get(key);\n if (inf === undefined) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache.set(key, inf);\n }\n return inf;\n}\n\nconst intlRelCache = new Map();\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache.get(key);\n if (inf === undefined) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache.set(key, inf);\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else {\n sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale;\n return sysLocaleCache;\n }\n}\n\nconst intlResolvedOptionsCache = new Map();\nfunction getCachedIntResolvedOptions(locString) {\n let opts = intlResolvedOptionsCache.get(locString);\n if (opts === undefined) {\n opts = new Intl.DateTimeFormat(locString).resolvedOptions();\n intlResolvedOptionsCache.set(locString, opts);\n }\n return opts;\n}\n\nconst weekInfoCache = new Map();\nfunction getCachedWeekInfo(locString) {\n let data = weekInfoCache.get(locString);\n if (!data) {\n const locale = new Intl.Locale(locString);\n // browsers currently implement this as a property, but spec says it should be a getter function\n data = \"getWeekInfo\" in locale ? locale.getWeekInfo() : locale.weekInfo;\n // minimalDays was removed from WeekInfo: https://github.com/tc39/proposal-intl-locale-info/issues/86\n if (!(\"minimalDays\" in data)) {\n data = { ...fallbackWeekSettings, ...data };\n }\n weekInfoCache.set(locString, data);\n }\n return data;\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n // private subtags and unicode subtags have ordering requirements,\n // and we're not properly parsing this, so just strip out the\n // private ones if they exist.\n const xIndex = localeStr.indexOf(\"-x-\");\n if (xIndex !== -1) {\n localeStr = localeStr.substring(0, xIndex);\n }\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n let selectedStr;\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n selectedStr = localeStr;\n } catch (e) {\n const smaller = localeStr.substring(0, uIndex);\n options = getCachedDTF(smaller).resolvedOptions();\n selectedStr = smaller;\n }\n\n const { numberingSystem, calendar } = options;\n return [selectedStr, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (outputCalendar || numberingSystem) {\n if (!localeStr.includes(\"-u-\")) {\n localeStr += \"-u\";\n }\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2009, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, englishFn, intlFn) {\n const mode = loc.listingMode();\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n getCachedIntResolvedOptions(loc.locale).numberingSystem === \"latn\"\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n const { padTo, floor, ...otherOpts } = opts;\n\n if (!forceSimple || Object.keys(otherOpts).length > 0) {\n const intlOpts = { useGrouping: false, ...opts };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.originalZone = undefined;\n\n let z = undefined;\n if (this.opts.timeZone) {\n // Don't apply any workarounds if a timeZone is explicitly provided in opts\n this.dt = dt;\n } else if (dt.zone.type === \"fixed\") {\n // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n // That is why fixed-offset TZ is set to that unless it is:\n // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n // 2. Unsupported by the browser:\n // - some do not support Etc/\n // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n const gmtOffset = -1 * (dt.offset / 60);\n const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;\n if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {\n z = offsetZ;\n this.dt = dt;\n } else {\n // Not all fixed-offset zones like Etc/+4:30 are present in tzdata so\n // we manually apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.offset === 0 ? dt : dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n } else if (dt.zone.type === \"system\") {\n this.dt = dt;\n } else if (dt.zone.type === \"iana\") {\n this.dt = dt;\n z = dt.zone.name;\n } else {\n // Custom zones can have any offset / offsetName so we just manually\n // apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n\n const intlOpts = { ...this.opts };\n intlOpts.timeZone = intlOpts.timeZone || z;\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n\n format() {\n if (this.originalZone) {\n // If we have to substitute in the actual zone name, we have to use\n // formatToParts so that the timezone can be replaced.\n return this.formatToParts()\n .map(({ value }) => value)\n .join(\"\");\n }\n return this.dtf.format(this.dt.toJSDate());\n }\n\n formatToParts() {\n const parts = this.dtf.formatToParts(this.dt.toJSDate());\n if (this.originalZone) {\n return parts.map((part) => {\n if (part.type === \"timeZoneName\") {\n const offsetName = this.originalZone.offsetName(this.dt.ts, {\n locale: this.dt.locale,\n format: this.opts.timeZoneName,\n });\n return {\n ...part,\n value: offsetName,\n };\n } else {\n return part;\n }\n });\n }\n return parts;\n }\n\n resolvedOptions() {\n return this.dtf.resolvedOptions();\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = { style: \"long\", ...opts };\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\nconst fallbackWeekSettings = {\n firstDay: 1,\n minimalDays: 4,\n weekend: [6, 7],\n};\n\n/**\n * @private\n */\nclass Locale {\n static fromOpts(opts) {\n return Locale.create(\n opts.locale,\n opts.numberingSystem,\n opts.outputCalendar,\n opts.weekSettings,\n opts.defaultToEN\n );\n }\n\n static create(locale, numberingSystem, outputCalendar, weekSettings, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale;\n // the system locale is useful for human-readable strings but annoying for parsing/formatting known formats\n const localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale());\n const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem;\n const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n const weekSettingsR = validateWeekSettings(weekSettings) || Settings.defaultWeekSettings;\n return new Locale(localeR, numberingSystemR, outputCalendarR, weekSettingsR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache.clear();\n intlNumCache.clear();\n intlRelCache.clear();\n intlResolvedOptionsCache.clear();\n weekInfoCache.clear();\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar, weekSettings } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar, weekSettings);\n }\n\n constructor(locale, numbering, outputCalendar, weekSettings, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.weekSettings = weekSettings;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode() {\n const isActuallyEn = this.isEnglish();\n const hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n return isActuallyEn && hasNoWeirdness ? \"en\" : \"intl\";\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n validateWeekSettings(alts.weekSettings) || this.weekSettings,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone({ ...alts, defaultToEN: true });\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone({ ...alts, defaultToEN: false });\n }\n\n months(length, format = false) {\n return listStuff(this, length, months, () => {\n // Workaround for \"ja\" locale: formatToParts does not label all parts of the month\n // as \"month\" and for this locale there is no difference between \"format\" and \"non-format\".\n // As such, just use format() instead of formatToParts() and take the whole string\n const monthSpecialCase = this.intl === \"ja\" || this.intl.startsWith(\"ja-\");\n format &= !monthSpecialCase;\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n const mapper = !monthSpecialCase\n ? (dt) => this.extract(dt, intl, \"month\")\n : (dt) => this.dtFormatter(dt, intl).format();\n this.monthsCache[formatStr][length] = mapMonths(mapper);\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false) {\n return listStuff(this, length, weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays((dt) =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems() {\n return listStuff(\n this,\n undefined,\n () => meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hourCycle: \"h12\" };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n (dt) => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length) {\n return listStuff(this, length, eras, () => {\n const intl = { era: length };\n\n // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find((m) => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n listFormatter(opts = {}) {\n return getCachedLF(this.intl, opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n getCachedIntResolvedOptions(this.intl).locale.startsWith(\"en-us\")\n );\n }\n\n getWeekSettings() {\n if (this.weekSettings) {\n return this.weekSettings;\n } else if (!hasLocaleWeekInfo()) {\n return fallbackWeekSettings;\n } else {\n return getCachedWeekInfo(this.locale);\n }\n }\n\n getStartOfWeek() {\n return this.getWeekSettings().firstDay;\n }\n\n getMinDaysInFirstWeek() {\n return this.getWeekSettings().minimalDays;\n }\n\n getWeekendDays() {\n return this.getWeekSettings().weekend;\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n\n toString() {\n return `Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`;\n }\n}\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nclass FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /**\n * The type of zone. `fixed` for all instances of `FixedOffsetZone`.\n * @override\n * @type {string}\n */\n get type() {\n return \"fixed\";\n }\n\n /**\n * The name of this zone.\n * All fixed zones' names always start with \"UTC\" (plus optional offset)\n * @override\n * @type {string}\n */\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /**\n * The IANA name of this zone, i.e. `Etc/UTC` or `Etc/GMT+/-nn`\n *\n * @override\n * @type {string}\n */\n get ianaName() {\n if (this.fixed === 0) {\n return \"Etc/UTC\";\n } else {\n return `Etc/GMT${formatOffset(-this.fixed, \"narrow\")}`;\n }\n }\n\n /**\n * Returns the offset's common name at the specified timestamp.\n *\n * For fixed offset zones this equals to the zone name.\n * @override\n */\n offsetName() {\n return this.name;\n }\n\n /**\n * Returns the offset's value as a string\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year:\n * Always returns true for all fixed offset zones.\n * @override\n * @type {boolean}\n */\n get isUniversal() {\n return true;\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n *\n * For fixed offset zones, this is constant and does not depend on a timestamp.\n * @override\n * @return {number}\n */\n offset() {\n return this.fixed;\n }\n\n /**\n * Return whether this Zone is equal to another zone (i.e. also fixed and same offset)\n * @override\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /**\n * Return whether this Zone is valid:\n * All fixed offset zones are valid.\n * @override\n * @type {boolean}\n */\n get isValid() {\n return true;\n }\n}\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nclass InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n\n/**\n * @private\n */\n\nfunction normalizeZone(input, defaultZone) {\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"default\") return defaultZone;\n else if (lowered === \"local\" || lowered === \"system\") return SystemZone.instance;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && \"offset\" in input && typeof input.offset === \"function\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n\nconst numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[怇|äø€|二|äø‰|四|äŗ”|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\",\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881],\n};\n\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nfunction parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\n// cache of {numberingSystem: {append: regex}}\nconst digitRegexCache = new Map();\nfunction resetDigitRegexCache() {\n digitRegexCache.clear();\n}\n\nfunction digitRegex({ numberingSystem }, append = \"\") {\n const ns = numberingSystem || \"latn\";\n\n let appendCache = digitRegexCache.get(ns);\n if (appendCache === undefined) {\n appendCache = new Map();\n digitRegexCache.set(ns, appendCache);\n }\n let regex = appendCache.get(append);\n if (regex === undefined) {\n regex = new RegExp(`${numberingSystems[ns]}${append}`);\n appendCache.set(append, regex);\n }\n\n return regex;\n}\n\nlet now = () => Date.now(),\n defaultZone = \"system\",\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n twoDigitCutoffYear = 60,\n throwOnInvalid,\n defaultWeekSettings = null;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nclass Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * Use the value \"system\" to reset this value to the system's time zone.\n * @type {string}\n */\n static set defaultZone(zone) {\n defaultZone = zone;\n }\n\n /**\n * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.\n * The default value is the system's time zone (the one set on the machine that runs this code).\n * @type {Zone}\n */\n static get defaultZone() {\n return normalizeZone(defaultZone, SystemZone.instance);\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * @typedef {Object} WeekSettings\n * @property {number} firstDay\n * @property {number} minimalDays\n * @property {number[]} weekend\n */\n\n /**\n * @return {WeekSettings|null}\n */\n static get defaultWeekSettings() {\n return defaultWeekSettings;\n }\n\n /**\n * Allows overriding the default locale week settings, i.e. the start of the week, the weekend and\n * how many days are required in the first week of a year.\n * Does not affect existing instances.\n *\n * @param {WeekSettings|null} weekSettings\n */\n static set defaultWeekSettings(weekSettings) {\n defaultWeekSettings = validateWeekSettings(weekSettings);\n }\n\n /**\n * Get the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx.\n * @type {number}\n */\n static get twoDigitCutoffYear() {\n return twoDigitCutoffYear;\n }\n\n /**\n * Set the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx.\n * @type {number}\n * @example Settings.twoDigitCutoffYear = 0 // all 'yy' are interpreted as 20th century\n * @example Settings.twoDigitCutoffYear = 99 // all 'yy' are interpreted as 21st century\n * @example Settings.twoDigitCutoffYear = 50 // '49' -> 2049; '50' -> 1950\n * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50\n * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50\n */\n static set twoDigitCutoffYear(cutoffYear) {\n twoDigitCutoffYear = cutoffYear % 100;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n DateTime.resetCache();\n resetDigitRegexCache();\n }\n}\n\nclass Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const d = new Date(Date.UTC(year, month - 1, day));\n\n if (year < 100 && year >= 0) {\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n\n const js = d.getUTCDay();\n\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex((i) => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\nfunction isoWeekdayToLocal(isoWeekday, startOfWeek) {\n return ((isoWeekday - startOfWeek + 7) % 7) + 1;\n}\n\n/**\n * @private\n */\n\nfunction gregorianToWeek(gregObj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = isoWeekdayToLocal(dayOfWeek(year, month, day), startOfWeek);\n\n let weekNumber = Math.floor((ordinal - weekday + 14 - minDaysInFirstWeek) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear, minDaysInFirstWeek, startOfWeek);\n } else if (weekNumber > weeksInWeekYear(year, minDaysInFirstWeek, startOfWeek)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return { weekYear, weekNumber, weekday, ...timeObject(gregObj) };\n}\n\nfunction weekToGregorian(weekData, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = isoWeekdayToLocal(dayOfWeek(weekYear, 1, minDaysInFirstWeek), startOfWeek),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 7 + minDaysInFirstWeek,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(weekData) };\n}\n\nfunction gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData;\n const ordinal = computeOrdinal(year, month, day);\n return { year, ordinal, ...timeObject(gregData) };\n}\n\nfunction ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData;\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(ordinalData) };\n}\n\n/**\n * Check if local week units like localWeekday are used in obj.\n * If so, validates that they are not mixed with ISO week units and then copies them to the normal week unit properties.\n * Modifies obj in-place!\n * @param obj the object values\n */\nfunction usesLocalWeekValues(obj, loc) {\n const hasLocaleWeekData =\n !isUndefined(obj.localWeekday) ||\n !isUndefined(obj.localWeekNumber) ||\n !isUndefined(obj.localWeekYear);\n if (hasLocaleWeekData) {\n const hasIsoWeekData =\n !isUndefined(obj.weekday) || !isUndefined(obj.weekNumber) || !isUndefined(obj.weekYear);\n\n if (hasIsoWeekData) {\n throw new ConflictingSpecificationError(\n \"Cannot mix locale-based week fields with ISO-based week fields\"\n );\n }\n if (!isUndefined(obj.localWeekday)) obj.weekday = obj.localWeekday;\n if (!isUndefined(obj.localWeekNumber)) obj.weekNumber = obj.localWeekNumber;\n if (!isUndefined(obj.localWeekYear)) obj.weekYear = obj.localWeekYear;\n delete obj.localWeekday;\n delete obj.localWeekNumber;\n delete obj.localWeekYear;\n return {\n minDaysInFirstWeek: loc.getMinDaysInFirstWeek(),\n startOfWeek: loc.getStartOfWeek(),\n };\n } else {\n return { minDaysInFirstWeek: 4, startOfWeek: 1 };\n }\n}\n\nfunction hasInvalidWeekData(obj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(\n obj.weekNumber,\n 1,\n weeksInWeekYear(obj.weekYear, minDaysInFirstWeek, startOfWeek)\n ),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.weekNumber);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nfunction hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nfunction hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nfunction hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n\n/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\n/**\n * @private\n */\n\n// TYPES\n\nfunction isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nfunction isNumber(o) {\n return typeof o === \"number\";\n}\n\nfunction isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nfunction isString(o) {\n return typeof o === \"string\";\n}\n\nfunction isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nfunction hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nfunction hasLocaleWeekInfo() {\n try {\n return (\n typeof Intl !== \"undefined\" &&\n !!Intl.Locale &&\n (\"weekInfo\" in Intl.Locale.prototype || \"getWeekInfo\" in Intl.Locale.prototype)\n );\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nfunction maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nfunction bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nfunction pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nfunction validateWeekSettings(settings) {\n if (settings == null) {\n return null;\n } else if (typeof settings !== \"object\") {\n throw new InvalidArgumentError(\"Week settings must be an object\");\n } else {\n if (\n !integerBetween(settings.firstDay, 1, 7) ||\n !integerBetween(settings.minimalDays, 1, 7) ||\n !Array.isArray(settings.weekend) ||\n settings.weekend.some((v) => !integerBetween(v, 1, 7))\n ) {\n throw new InvalidArgumentError(\"Invalid week settings\");\n }\n return {\n firstDay: settings.firstDay,\n minimalDays: settings.minimalDays,\n weekend: Array.from(settings.weekend),\n };\n }\n}\n\n// NUMBERS AND STRINGS\n\nfunction integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nfunction floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nfunction padStart(input, n = 2) {\n const isNeg = input < 0;\n let padded;\n if (isNeg) {\n padded = \"-\" + (\"\" + -input).padStart(n, \"0\");\n } else {\n padded = (\"\" + input).padStart(n, \"0\");\n }\n return padded;\n}\n\nfunction parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nfunction parseFloating(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseFloat(string);\n }\n}\n\nfunction parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nfunction roundTo(number, digits, rounding = \"round\") {\n const factor = 10 ** digits;\n switch (rounding) {\n case \"expand\":\n return number > 0\n ? Math.ceil(number * factor) / factor\n : Math.floor(number * factor) / factor;\n case \"trunc\":\n return Math.trunc(number * factor) / factor;\n case \"round\":\n return Math.round(number * factor) / factor;\n case \"floor\":\n return Math.floor(number * factor) / factor;\n case \"ceil\":\n return Math.ceil(number * factor) / factor;\n default:\n throw new RangeError(`Value rounding ${rounding} is out of range`);\n }\n}\n\n// DATE BASICS\n\nfunction isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nfunction daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// convert a calendar object to a local timestamp (epoch, but with the offset baked in)\nfunction objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n // set the month and day again, this is necessary because year 2000 is a leap year, but year 100 is not\n // so if obj.year is in 99, but obj.day makes it roll over into year 100,\n // the calculations done by Date.UTC are using year 2000 - which is incorrect\n d.setUTCFullYear(obj.year, obj.month - 1, obj.day);\n }\n return +d;\n}\n\n// adapted from moment.js: https://github.com/moment/moment/blob/000ac1800e620f770f4eb31b5ae908f6167b0ab2/src/lib/units/week-calendar-utils.js\nfunction firstWeekOffset(year, minDaysInFirstWeek, startOfWeek) {\n const fwdlw = isoWeekdayToLocal(dayOfWeek(year, 1, minDaysInFirstWeek), startOfWeek);\n return -fwdlw + minDaysInFirstWeek - 1;\n}\n\nfunction weeksInWeekYear(weekYear, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const weekOffset = firstWeekOffset(weekYear, minDaysInFirstWeek, startOfWeek);\n const weekOffsetNext = firstWeekOffset(weekYear + 1, minDaysInFirstWeek, startOfWeek);\n return (daysInYear(weekYear) - weekOffset + weekOffsetNext) / 7;\n}\n\nfunction untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nfunction parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hourCycle: \"h23\",\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = { timeZoneName: offsetFormat, ...intlOpts };\n\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find((m) => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n}\n\n// signedOffset('-5', '30') -> -330\nfunction signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nfunction asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || !Number.isFinite(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nfunction normalizeObject(obj, normalizer) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\n/**\n * Returns the offset's value as a string\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\nfunction formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nfunction timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\n/**\n * @private\n */\n\nconst monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nconst monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nfunction months(length) {\n switch (length) {\n case \"narrow\":\n return [...monthsNarrow];\n case \"short\":\n return [...monthsShort];\n case \"long\":\n return [...monthsLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nconst weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n];\n\nconst weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nconst weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nfunction weekdays(length) {\n switch (length) {\n case \"narrow\":\n return [...weekdaysNarrow];\n case \"short\":\n return [...weekdaysShort];\n case \"long\":\n return [...weekdaysLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nconst meridiems = [\"AM\", \"PM\"];\n\nconst erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nconst erasShort = [\"BC\", \"AD\"];\n\nconst erasNarrow = [\"B\", \"A\"];\n\nfunction eras(length) {\n switch (length) {\n case \"narrow\":\n return [...erasNarrow];\n case \"short\":\n return [...erasShort];\n case \"long\":\n return [...erasLong];\n default:\n return null;\n }\n}\n\nfunction meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nfunction weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nfunction monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nfunction eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nfunction formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"],\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: DATE_SHORT,\n DD: DATE_MED,\n DDD: DATE_FULL,\n DDDD: DATE_HUGE,\n t: TIME_SIMPLE,\n tt: TIME_WITH_SECONDS,\n ttt: TIME_WITH_SHORT_OFFSET,\n tttt: TIME_WITH_LONG_OFFSET,\n T: TIME_24_SIMPLE,\n TT: TIME_24_WITH_SECONDS,\n TTT: TIME_24_WITH_SHORT_OFFSET,\n TTTT: TIME_24_WITH_LONG_OFFSET,\n f: DATETIME_SHORT,\n ff: DATETIME_MED,\n fff: DATETIME_FULL,\n ffff: DATETIME_HUGE,\n F: DATETIME_SHORT_WITH_SECONDS,\n FF: DATETIME_MED_WITH_SECONDS,\n FFF: DATETIME_FULL_WITH_SECONDS,\n FFFF: DATETIME_HUGE_WITH_SECONDS,\n};\n\n/**\n * @private\n */\n\nclass Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n // white-space is always considered a literal in user-provided formats\n // the \" \" token has a special meaning (see unitForToken)\n\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n // turn '' into a literal signal quote instead of just skipping the empty literal\n if (currentFull.length > 0 || bracketed) {\n splits.push({\n literal: bracketed || /^\\s+$/.test(currentFull),\n val: currentFull === \"\" ? \"'\" : currentFull,\n });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: /^\\s+$/.test(currentFull), val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, { ...this.opts, ...opts });\n return df.format();\n }\n\n dtFormatter(dt, opts = {}) {\n return this.loc.dtFormatter(dt, { ...this.opts, ...opts });\n }\n\n formatDateTime(dt, opts) {\n return this.dtFormatter(dt, opts).format();\n }\n\n formatDateTimeParts(dt, opts) {\n return this.dtFormatter(dt, opts).formatToParts();\n }\n\n formatInterval(interval, opts) {\n const df = this.dtFormatter(interval.start, opts);\n return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate());\n }\n\n resolvedOptions(dt, opts) {\n return this.dtFormatter(dt, opts).resolvedOptions();\n }\n\n num(n, p = 0, signDisplay = undefined) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = { ...this.opts };\n\n if (p > 0) {\n opts.padTo = p;\n }\n if (signDisplay) {\n opts.signDisplay = signDisplay;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\",\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = (opts) => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hourCycle: \"h12\" }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = (token) => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = (length) =>\n knownEnglish ? eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = (token) => {\n // Where possible: https://cldr.unicode.org/translation/date-time/date-time-symbols\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // fractional seconds\n case \"uu\":\n return this.num(Math.floor(dt.millisecond / 10), 2);\n case \"uuu\":\n return this.num(Math.floor(dt.millisecond / 100));\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"n\":\n return this.num(dt.localWeekNumber);\n case \"nn\":\n return this.num(dt.localWeekNumber, 2);\n case \"ii\":\n return this.num(dt.localWeekYear.toString().slice(-2), 2);\n case \"iiii\":\n return this.num(dt.localWeekYear, 4);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const invertLargest = this.opts.signMode === \"negativeLargestOnly\" ? -1 : 1;\n const tokenToField = (token) => {\n switch (token[0]) {\n case \"S\":\n return \"milliseconds\";\n case \"s\":\n return \"seconds\";\n case \"m\":\n return \"minutes\";\n case \"h\":\n return \"hours\";\n case \"d\":\n return \"days\";\n case \"w\":\n return \"weeks\";\n case \"M\":\n return \"months\";\n case \"y\":\n return \"years\";\n default:\n return null;\n }\n },\n tokenToString = (lildur, info) => (token) => {\n const mapped = tokenToField(token);\n if (mapped) {\n const inversionFactor =\n info.isNegativeDuration && mapped !== info.largestUnit ? invertLargest : 1;\n let signDisplay;\n if (this.opts.signMode === \"negativeLargestOnly\" && mapped !== info.largestUnit) {\n signDisplay = \"never\";\n } else if (this.opts.signMode === \"all\") {\n signDisplay = \"always\";\n } else {\n // \"auto\" and \"negative\" are the same, but \"auto\" has better support\n signDisplay = \"auto\";\n }\n return this.num(lildur.get(mapped) * inversionFactor, token.length, signDisplay);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t)),\n durationInfo = {\n isNegativeDuration: collapsed < 0,\n // this relies on \"collapsed\" being based on \"shiftTo\", which builds up the object\n // in order\n largestUnit: Object.keys(collapsed.values)[0],\n };\n return stringifyTokens(tokens, tokenToString(collapsed, durationInfo));\n }\n}\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nconst ianaRegex = /[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return (m) =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [{ ...mergedVals, ...val }, zone || mergedZone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:([Zz])|([+-]\\d\\d)(?::?(\\d\\d))?)/;\nconst isoExtendedZone = `(?:${offsetRegex.source}?(?:\\\\[(${ianaRegex.source})\\\\])?)?`;\nconst isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/;\nconst isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`);\nconst isoTimeExtensionRegex = RegExp(`(?:[Tt]${isoTimeRegex.source})?`);\nconst isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/;\nconst isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/;\nconst isoOrdinalRegex = /(\\d{4})-?(\\d{3})/;\nconst extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\");\nconst extractISOOrdinalData = simpleParse(\"year\", \"ordinal\");\nconst sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/; // dumbed-down version of the ISO one\nconst sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n);\nconst sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1),\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hours: int(match, cursor, 0),\n minutes: int(match, cursor + 1, 0),\n seconds: int(match, cursor + 2, 0),\n milliseconds: parseMillis(match[cursor + 3]),\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO time parsing\n\nconst isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`);\n\n// ISO duration parsing\n\nconst isoDuration =\n /^-?P(?:(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)Y)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)W)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)D)?(?:T(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)H)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,20}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] =\n match;\n\n const hasNegativePrefix = s[0] === \"-\";\n const negativeSeconds = secondStr && secondStr[0] === \"-\";\n\n const maybeNegate = (num, force = false) =>\n num !== undefined && (force || (num && hasNegativePrefix)) ? -num : num;\n\n return [\n {\n years: maybeNegate(parseFloating(yearStr)),\n months: maybeNegate(parseFloating(monthStr)),\n weeks: maybeNegate(parseFloating(weekStr)),\n days: maybeNegate(parseFloating(dayStr)),\n hours: maybeNegate(parseFloating(hourStr)),\n minutes: maybeNegate(parseFloating(minuteStr)),\n seconds: maybeNegate(parseFloating(secondStr), secondStr === \"-0\"),\n milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds),\n },\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\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\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr),\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? weekdaysLong.indexOf(weekdayStr) + 1\n : weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 =\n /^(?:(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\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr,\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\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 .trim();\n}\n\n// http date\n\nconst rfc1123 =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 =\n /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOOrdinalDateAndTime = combineExtractors(\n extractISOOrdinalData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeAndOffset = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\n/*\n * @private\n */\n\nfunction parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nfunction parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nfunction parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nfunction parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst extractISOTimeOnly = combineExtractors(extractISOTime);\n\nfunction parseISOTimeOnly(s) {\n return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nfunction parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n\nconst INVALID$2 = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000,\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000,\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 },\n },\n casualMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000,\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000,\n },\n\n ...lowOrderMatrix,\n },\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4,\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000,\n },\n ...lowOrderMatrix,\n };\n\n// units ordered by size\nconst orderedUnits$1 = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\",\n];\n\nconst reverseUnits = orderedUnits$1.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone$1(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : { ...dur.values, ...(alts.values || {}) },\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy,\n matrix: alts.matrix || dur.matrix,\n };\n return new Duration(conf);\n}\n\nfunction durationToMillis(matrix, vals) {\n let sum = vals.milliseconds ?? 0;\n for (const unit of reverseUnits.slice(1)) {\n if (vals[unit]) {\n sum += vals[unit] * matrix[unit][\"milliseconds\"];\n }\n }\n return sum;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n // the logic below assumes the overall value of the duration is positive\n // if this is not the case, factor is used to make it so\n const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1;\n\n orderedUnits$1.reduceRight((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const previousVal = vals[previous] * factor;\n const conv = matrix[current][previous];\n\n // if (previousVal < 0):\n // lower order unit is negative (e.g. { years: 2, days: -2 })\n // normalize this by reducing the higher order unit by the appropriate amount\n // and increasing the lower order unit\n // this can never make the higher order unit negative, because this function only operates\n // on positive durations, so the amount of time represented by the lower order unit cannot\n // be larger than the higher order unit\n // else:\n // lower order unit is positive (e.g. { years: 2, days: 450 } or { years: -2, days: 450 })\n // in this case we attempt to convert as much as possible from the lower order unit into\n // the higher order one\n //\n // Math.floor takes care of both of these cases, rounding away from 0\n // if previousVal < 0 it makes the absolute value larger\n // if previousVal >= it makes the absolute value smaller\n const rollUp = Math.floor(previousVal / conv);\n vals[current] += rollUp * factor;\n vals[previous] -= rollUp * conv * factor;\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n\n // try to convert any decimals into smaller units if possible\n // for example for { years: 2.5, days: 0, seconds: 0 } we want to get { years: 2, days: 182, hours: 12 }\n orderedUnits$1.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const fraction = vals[previous] % 1;\n vals[previous] -= fraction;\n vals[current] += fraction * matrix[previous][current];\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n// Remove all properties with a value of 0 from an object\nfunction removeZeroes(vals) {\n const newVals = {};\n for (const [key, value] of Object.entries(vals)) {\n if (value !== 0) {\n newVals[key] = value;\n }\n }\n return newVals;\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors.\n * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nclass Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n let matrix = accurate ? accurateMatrix : casualMatrix;\n\n if (config.matrix) {\n matrix = config.matrix;\n }\n\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = matrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject({ milliseconds: count }, opts);\n }\n\n /**\n * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {Object} [opts=[]] - options for creating this Duration\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the custom conversion system to use\n * @return {Duration}\n */\n static fromObject(obj, opts = {}) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit),\n loc: Locale.fromObject(opts),\n conversionAccuracy: opts.conversionAccuracy,\n matrix: opts.matrix,\n });\n }\n\n /**\n * Create a Duration from DurationLike.\n *\n * @param {Object | number | Duration} durationLike\n * One of:\n * - object with keys like 'years' and 'hours'.\n * - number representing milliseconds\n * - Duration instance\n * @return {Duration}\n */\n static fromDurationLike(durationLike) {\n if (isNumber(durationLike)) {\n return Duration.fromMillis(durationLike);\n } else if (Duration.isDuration(durationLike)) {\n return durationLike;\n } else if (typeof durationLike === \"object\") {\n return Duration.fromObject(durationLike);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationLike} of type ${typeof durationLike}`\n );\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the preset conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 time string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @return {Duration}\n */\n static fromISOTime(text, opts) {\n const [parsed] = parseISOTimeOnly(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\",\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `w` for weeks\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * Tokens can be escaped by wrapping with single quotes.\n * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @param {'negative'|'all'|'negativeLargestOnly'} [opts.signMode=negative] - How to handle signs\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @example Duration.fromObject({ days: 6, seconds: 2 }).toFormat(\"d s\", { signMode: \"all\" }) //=> \"+6 +2\"\n * @example Duration.fromObject({ days: -6, seconds: -2 }).toFormat(\"d s\", { signMode: \"all\" }) //=> \"-6 -2\"\n * @example Duration.fromObject({ days: -6, seconds: -2 }).toFormat(\"d s\", { signMode: \"negativeLargestOnly\" }) //=> \"-6 2\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = {\n ...opts,\n floor: opts.round !== false && opts.floor !== false,\n };\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID$2;\n }\n\n /**\n * Returns a string representation of a Duration with all units included.\n * To modify its behavior, use `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options\n * @param {Object} opts - Formatting options. Accepts the same keys as the options parameter of the native `Intl.NumberFormat` constructor, as well as `listStyle`.\n * @param {string} [opts.listStyle='narrow'] - How to format the merged list. Corresponds to the `style` property of the options parameter of the native `Intl.ListFormat` constructor.\n * @param {boolean} [opts.showZeros=true] - Show all units previously used by the duration even if they are zero\n * @example\n * ```js\n * var dur = Duration.fromObject({ months: 1, weeks: 0, hours: 5, minutes: 6 })\n * dur.toHuman() //=> '1 month, 0 weeks, 5 hours, 6 minutes'\n * dur.toHuman({ listStyle: \"long\" }) //=> '1 month, 0 weeks, 5 hours, and 6 minutes'\n * dur.toHuman({ unitDisplay: \"short\" }) //=> '1 mth, 0 wks, 5 hr, 6 min'\n * dur.toHuman({ showZeros: false }) //=> '1 month, 5 hours, 6 minutes'\n * ```\n */\n toHuman(opts = {}) {\n if (!this.isValid) return INVALID$2;\n\n const showZeros = opts.showZeros !== false;\n\n const l = orderedUnits$1\n .map((unit) => {\n const val = this.values[unit];\n if (isUndefined(val) || (val === 0 && !showZeros)) {\n return null;\n }\n return this.loc\n .numberFormatter({ style: \"unit\", unitDisplay: \"long\", ...opts, unit: unit.slice(0, -1) })\n .format(val);\n })\n .filter((n) => n);\n\n return this.loc\n .listFormatter({ type: \"conjunction\", style: opts.listStyle || \"narrow\", ...opts })\n .format(l);\n }\n\n /**\n * Returns a JavaScript object with this Duration's values.\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject() {\n if (!this.isValid) return {};\n return { ...this.values };\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n * @return {string}\n */\n toISOTime(opts = {}) {\n if (!this.isValid) return null;\n\n const millis = this.toMillis();\n if (millis < 0 || millis >= 86400000) return null;\n\n opts = {\n suppressMilliseconds: false,\n suppressSeconds: false,\n includePrefix: false,\n format: \"extended\",\n ...opts,\n includeOffset: false,\n };\n\n const dateTime = DateTime.fromMillis(millis, { zone: \"UTC\" });\n return dateTime.toISOTime(opts);\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns a string representation of this Duration appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Duration { values: ${JSON.stringify(this.values)} }`;\n } else {\n return `Duration { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n toMillis() {\n if (!this.isValid) return NaN;\n\n return durationToMillis(this.matrix, this.values);\n }\n\n /**\n * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration),\n result = {};\n\n for (const k of orderedUnits$1) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone$1(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === \"hours\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone$1(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = { ...this.values, ...normalizeObject(values, Duration.normalizeUnit) };\n return clone$1(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy, matrix } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem });\n const opts = { loc, matrix, conversionAccuracy };\n return clone$1(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * Assuming the overall value of the Duration is positive, this means:\n * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example)\n * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise\n * the overall value would be negative, see third example)\n * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example)\n *\n * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone$1(this, { values: vals }, true);\n }\n\n /**\n * Rescale units to its largest representation\n * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 }\n * @return {Duration}\n */\n rescale() {\n if (!this.isValid) return this;\n const vals = removeZeroes(this.normalize().shiftToAll().toObject());\n return clone$1(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map((u) => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits$1) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n // only keep the integer part for now in the hopes of putting any decimal part\n // into a smaller unit later\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = (own * 1000 - i * 1000) / 1000;\n\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n normalizeValues(this.matrix, built);\n return clone$1(this, { values: built }, true);\n }\n\n /**\n * Shift this Duration to all available units.\n * Same as shiftTo(\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\")\n * @return {Duration}\n */\n shiftToAll() {\n if (!this.isValid) return this;\n return this.shiftTo(\n \"years\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n );\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = this.values[k] === 0 ? 0 : -this.values[k];\n }\n return clone$1(this, { values: negated }, true);\n }\n\n /**\n * Removes all units with values equal to 0 from this Duration.\n * @example Duration.fromObject({ years: 2, days: 0, hours: 0, minutes: 0 }).removeZeros().toObject() //=> { years: 2 }\n * @return {Duration}\n */\n removeZeros() {\n if (!this.isValid) return this;\n const vals = removeZeroes(this.values);\n return clone$1(this, { values: vals }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n function eq(v1, v2) {\n // Consider 0 and undefined as equal\n if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n return v1 === v2;\n }\n\n for (const u of orderedUnits$1) {\n if (!eq(this.values[u], other.values[u])) {\n return false;\n }\n }\n return true;\n }\n}\n\nconst INVALID$1 = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}.\n * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.\n * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs}\n * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toLocaleString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}.\n */\nclass Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd,\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `/`, `/`, and `/` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval. This is the first instant which is not part of the interval\n * (Interval is half-open).\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns the last DateTime included in the interval (since end is not part of the interval)\n * @type {DateTime}\n */\n get lastDateTime() {\n return this.isValid ? (this.e ? this.e.minus(1) : null) : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; this operation will always use the locale of the start DateTime\n * @return {number}\n */\n count(unit = \"milliseconds\", opts) {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit, opts);\n let end;\n if (opts?.useLocaleWeeks) {\n end = this.end.reconfigure({ locale: start.locale });\n } else {\n end = this.end;\n }\n end = end.startOf(unit, opts);\n return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf());\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...DateTime} dateTimes - the unit of time to count.\n * @return {Array}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter((d) => this.contains(d))\n .sort((a, b) => a.toMillis() - b.toMillis()),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {Array}\n */\n splitBy(duration) {\n const dur = Duration.fromDurationLike(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n idx = 1,\n next;\n\n const results = [];\n while (s < this.e) {\n const added = this.start.plus(dur.mapUnits((x) => x * idx));\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n idx += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {Array}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Returns true if this Interval fully contains the specified Interval, specifically if the intersect (of this Interval and the other Interval) is equal to the other Interval; false otherwise.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s >= e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into an equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * The resulting array will contain the Intervals in ascending order, that is, starting with the earliest Interval\n * and ending with the latest.\n *\n * @param {Array} intervals\n * @return {Array}\n */\n static merge(intervals) {\n const [found, final] = intervals\n .sort((a, b) => a.s - b.s)\n .reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map((i) => [\n { time: i.s, type: \"s\" },\n { time: i.e, type: \"e\" },\n ]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {Array}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map((i) => this.intersection(i))\n .filter((i) => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID$1;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns a string representation of this Interval appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;\n } else {\n return `Interval { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns a localized string representing this Interval. Accepts the same options as the\n * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as\n * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method\n * is browser-specific, but in general it will return an appropriate representation of the\n * Interval in the assigned locale. Defaults to the system's locale if no locale has been\n * specified.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or\n * Intl.DateTimeFormat constructor options.\n * @param {Object} opts - Options to override the configuration of the start DateTime.\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p\n * @return {string}\n */\n toLocaleString(formatOpts = DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this)\n : INVALID$1;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID$1;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID$1;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID$1;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format\n * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible\n * formatting tool.\n * @param {string} dateFormat - The format string. This string formats the start and end time.\n * See {@link DateTime#toFormat} for details.\n * @param {Object} opts - Options.\n * @param {string} [opts.separator = ' – '] - A separator to place between the start and end\n * representations.\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID$1;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nclass Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.now().setZone(zone).set({ month: 12 });\n\n return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone#isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Get the weekday on which the week starts according to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number} the start of the week, 1 for Monday through 7 for Sunday\n */\n static getStartOfWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getStartOfWeek();\n }\n\n /**\n * Get the minimum number of days necessary in a week before it is considered part of the next year according\n * to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number}\n */\n static getMinimumDaysInFirstWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getMinDaysInFirstWeek();\n }\n\n /**\n * Get the weekdays, which are considered the weekend according to the given locale\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number[]} an array of weekdays, 1 for Monday through 7 for Sunday\n */\n static getWeekendWeekdays({ locale = null, locObj = null } = {}) {\n // copy the array, because we cache it internally\n return (locObj || Locale.create(locale)).getWeekendDays().slice();\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> 'Ł”'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'RabiŹ» I'\n * @return {Array}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link Info#months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {Array}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'Ų§Ł„Ų§Ų«Ł†ŁŠŁ†'\n * @return {Array}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link Info#weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @return {Array}\n */\n static weekdaysFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'į€Šį€”į€±' ]\n * @return {Array}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant JĆ©sus-Christ', 'aprĆØs JĆ©sus-Christ' ]\n * @return {Array}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `relative`: whether this environment supports relative time formatting\n * * `localeWeek`: whether this environment supports different weekdays for the start of the week based on the locale\n * @example Info.features() //=> { relative: false, localeWeek: true }\n * @return {Object}\n */\n static features() {\n return { relative: hasRelative(), localeWeek: hasLocaleWeekInfo() };\n }\n}\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = (dt) => dt.toUTC(0, { keepLocalTime: true }).startOf(\"day\").valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"quarters\", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n },\n ],\n [\"days\", dayDiff],\n ];\n\n const results = {};\n const earlier = cursor;\n let lowestOrder, highWater;\n\n /* This loop tries to diff using larger units first.\n If we overshoot, we backtrack and try the next smaller unit.\n \"cursor\" starts out at the earlier timestamp and moves closer and closer to \"later\"\n as we use smaller and smaller units.\n highWater keeps track of where we would be if we added one more of the smallest unit,\n this is used later to potentially convert any difference smaller than the smallest higher order unit\n into a fraction of that smallest higher order unit\n */\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n results[unit] = differ(cursor, later);\n highWater = earlier.plus(results);\n\n if (highWater > later) {\n // we overshot the end point, backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n\n // if we are still overshooting now, we need to backtrack again\n // this happens in certain situations when diffing times in different zones,\n // because this calculation ignores time zones\n if (cursor > later) {\n // keep the \"overshot by 1\" around as highWater\n highWater = cursor;\n // backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n }\n } else {\n cursor = highWater;\n }\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nfunction diff (earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n (u) => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(results, opts);\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = (i) => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `[ ${NBSP}]`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex((i) => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex,\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\n/**\n * @param token\n * @param {Locale} loc\n */\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = (t) => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = (t) => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\"), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\"), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n case \"uu\":\n return simple(oneOrTwo);\n case \"uuu\":\n return intUnit(one);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n // this special-case \"token\" represents a place where a macro-token expanded into a white-space literal\n // in this case we accept any non-newline white-space\n case \" \":\n return simple(/[^\\S\\n\\r]/);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP,\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\",\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\",\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\",\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\",\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour12: {\n numeric: \"h\",\n \"2-digit\": \"hh\",\n },\n hour24: {\n numeric: \"H\",\n \"2-digit\": \"HH\",\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\",\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\",\n },\n timeZoneName: {\n long: \"ZZZZZ\",\n short: \"ZZZ\",\n },\n};\n\nfunction tokenForPart(part, formatOpts, resolvedOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n const isSpace = /^\\s+$/.test(value);\n return {\n literal: !isSpace,\n val: isSpace ? \" \" : value,\n };\n }\n\n const style = formatOpts[type];\n\n // The user might have explicitly specified hour12 or hourCycle\n // if so, respect their decision\n // if not, refer back to the resolvedOpts, which are based on the locale\n let actualType = type;\n if (type === \"hour\") {\n if (formatOpts.hour12 != null) {\n actualType = formatOpts.hour12 ? \"hour12\" : \"hour24\";\n } else if (formatOpts.hourCycle != null) {\n if (formatOpts.hourCycle === \"h11\" || formatOpts.hourCycle === \"h12\") {\n actualType = \"hour12\";\n } else {\n actualType = \"hour24\";\n }\n } else {\n // tokens only differentiate between 24 hours or not,\n // so we do not need to check hourCycle here, which is less supported anyways\n actualType = resolvedOpts.hour12 ? \"hour12\" : \"hour24\";\n }\n }\n let val = partTypeStyleToTokenVal[actualType];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val,\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = (token) => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone = null;\n let specificOffset;\n if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n }\n\n if (!isUndefined(matches.Z)) {\n if (!zone) {\n zone = new FixedOffsetZone(matches.Z);\n }\n specificOffset = matches.Z;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone, specificOffset];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n const tokens = formatOptsToTokens(formatOpts, locale);\n\n if (tokens == null || tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nclass TokenParser {\n constructor(locale, format) {\n this.locale = locale;\n this.format = format;\n this.tokens = expandMacroTokens(Formatter.parseFormat(format), locale);\n this.units = this.tokens.map((t) => unitForToken(t, locale));\n this.disqualifyingUnit = this.units.find((t) => t.invalidReason);\n\n if (!this.disqualifyingUnit) {\n const [regexString, handlers] = buildRegex(this.units);\n this.regex = RegExp(regexString, \"i\");\n this.handlers = handlers;\n }\n }\n\n explainFromTokens(input) {\n if (!this.isValid) {\n return { input, tokens: this.tokens, invalidReason: this.invalidReason };\n } else {\n const [rawMatches, matches] = match(input, this.regex, this.handlers),\n [result, zone, specificOffset] = matches\n ? dateTimeFromMatches(matches)\n : [null, null, undefined];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return {\n input,\n tokens: this.tokens,\n regex: this.regex,\n rawMatches,\n matches,\n result,\n zone,\n specificOffset,\n };\n }\n }\n\n get isValid() {\n return !this.disqualifyingUnit;\n }\n\n get invalidReason() {\n return this.disqualifyingUnit ? this.disqualifyingUnit.invalidReason : null;\n }\n}\n\nfunction explainFromTokens(locale, input, format) {\n const parser = new TokenParser(locale, format);\n return parser.explainFromTokens(input);\n}\n\nfunction parseFromTokens(locale, input, format) {\n const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, specificOffset, invalidReason];\n}\n\nfunction formatOptsToTokens(formatOpts, locale) {\n if (!formatOpts) {\n return null;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const df = formatter.dtFormatter(getDummyDateTime());\n const parts = df.formatToParts();\n const resolvedOpts = df.resolvedOptions();\n return parts.map((p) => tokenForPart(p, formatOpts, resolvedOpts));\n}\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedLocalWeekData(dt) {\n if (dt.localWeekData === null) {\n dt.localWeekData = gregorianToWeek(\n dt.c,\n dt.loc.getMinDaysInFirstWeek(),\n dt.loc.getStartOfWeek()\n );\n }\n return dt.localWeekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid,\n };\n return new DateTime({ ...current, ...alts, old: current });\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds(),\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = {\n ...inst.c,\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7,\n },\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds,\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {\n const { setZone, zone } = opts;\n if ((parsed && Object.keys(parsed).length !== 0) || parsedZone) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(parsed, {\n ...opts,\n zone: interpretationZone,\n specificOffset,\n });\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true,\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\nfunction toISODate(o, extended, precision) {\n const longFormat = o.c.year > 9999 || o.c.year < 0;\n let c = \"\";\n if (longFormat && o.c.year >= 0) c += \"+\";\n c += padStart(o.c.year, longFormat ? 6 : 4);\n if (precision === \"year\") return c;\n if (extended) {\n c += \"-\";\n c += padStart(o.c.month);\n if (precision === \"month\") return c;\n c += \"-\";\n } else {\n c += padStart(o.c.month);\n if (precision === \"month\") return c;\n }\n c += padStart(o.c.day);\n return c;\n}\n\nfunction toISOTime(\n o,\n extended,\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone,\n precision\n) {\n let showSeconds = !suppressSeconds || o.c.millisecond !== 0 || o.c.second !== 0,\n c = \"\";\n switch (precision) {\n case \"day\":\n case \"month\":\n case \"year\":\n break;\n default:\n c += padStart(o.c.hour);\n if (precision === \"hour\") break;\n if (extended) {\n c += \":\";\n c += padStart(o.c.minute);\n if (precision === \"minute\") break;\n if (showSeconds) {\n c += \":\";\n c += padStart(o.c.second);\n }\n } else {\n c += padStart(o.c.minute);\n if (precision === \"minute\") break;\n if (showSeconds) {\n c += padStart(o.c.second);\n }\n }\n if (precision === \"second\") break;\n if (showSeconds && (!suppressMilliseconds || o.c.millisecond !== 0)) {\n c += \".\";\n c += padStart(o.c.millisecond, 3);\n }\n }\n\n if (includeOffset) {\n if (o.isOffsetFixed && o.offset === 0 && !extendedZone) {\n c += \"Z\";\n } else if (o.o < 0) {\n c += \"-\";\n c += padStart(Math.trunc(-o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(-o.o % 60));\n } else {\n c += \"+\";\n c += padStart(Math.trunc(o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(o.o % 60));\n }\n }\n\n if (extendedZone) {\n c += \"[\" + o.zone.ianaName + \"]\";\n }\n return c;\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\",\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\nfunction normalizeUnitWithLocalWeeks(unit) {\n switch (unit.toLowerCase()) {\n case \"localweekday\":\n case \"localweekdays\":\n return \"localWeekday\";\n case \"localweeknumber\":\n case \"localweeknumbers\":\n return \"localWeekNumber\";\n case \"localweekyear\":\n case \"localweekyears\":\n return \"localWeekYear\";\n default:\n return normalizeUnit(unit);\n }\n}\n\n// cache offsets for zones based on the current timestamp when this function is\n// first called. When we are handling a datetime from components like (year,\n// month, day, hour) in a time zone, we need a guess about what the timezone\n// offset is so that we can convert into a UTC timestamp. One way is to find the\n// offset of now in the zone. The actual date may have a different offset (for\n// example, if we handle a date in June while we're in December in a zone that\n// observes DST), but we can check and adjust that.\n//\n// When handling many dates, calculating the offset for now every time is\n// expensive. It's just a guess, so we can cache the offset to use even if we\n// are right on a time change boundary (we'll just correct in the other\n// direction). Using a timestamp from first read is a slight optimization for\n// handling dates close to the current date, since those dates will usually be\n// in the same offset (we could set the timestamp statically, instead). We use a\n// single timestamp for all zones to make things a bit more predictable.\n//\n// This is safe for quickDT (used by local() and utc()) because we don't fill in\n// higher-order units from tsNow (as we do in fromObject, this requires that\n// offset is calculated from tsNow).\n/**\n * @param {Zone} zone\n * @return {number}\n */\nfunction guessOffsetForZone(zone) {\n if (zoneOffsetTs === undefined) {\n zoneOffsetTs = Settings.now();\n }\n\n // Do not cache anything but IANA zones, because it is not safe to do so.\n // Guessing an offset which is not present in the zone can cause wrong results from fixOffset\n if (zone.type !== \"iana\") {\n return zone.offset(zoneOffsetTs);\n }\n const zoneName = zone.name;\n let offsetGuess = zoneOffsetGuessCache.get(zoneName);\n if (offsetGuess === undefined) {\n offsetGuess = zone.offset(zoneOffsetTs);\n zoneOffsetGuessCache.set(zoneName, offsetGuess);\n }\n return offsetGuess;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, opts) {\n const zone = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n }\n\n const loc = Locale.fromObject(opts);\n\n let ts, o;\n\n // assume we have the higher-order units\n if (!isUndefined(obj.year)) {\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const offsetProvis = guessOffsetForZone(zone);\n [ts, o] = objToTS(obj, offsetProvis, zone);\n } else {\n ts = Settings.now();\n }\n\n return new DateTime({ ts, zone, loc, o });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n rounding = isUndefined(opts.rounding) ? \"trunc\" : opts.rounding,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, opts.calendary ? \"round\" : rounding);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = (unit) => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\n\nfunction lastOpts(argList) {\n let opts = {},\n args;\n if (argList.length > 0 && typeof argList[argList.length - 1] === \"object\") {\n opts = argList[argList.length - 1];\n args = Array.from(argList).slice(0, argList.length - 1);\n } else {\n args = Array.from(argList);\n }\n return [opts, args];\n}\n\n/**\n * Timestamp to use for cached zone offset guesses (exposed for test)\n */\nlet zoneOffsetTs;\n/**\n * Cache for zone offset guesses (exposed for test).\n *\n * This optimizes quickDT via guessOffsetForZone to avoid repeated calls of\n * zone.offset().\n */\nconst zoneOffsetGuessCache = new Map();\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month},\n * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors.\n * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nclass DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n // If an offset has been passed and we have not been called from\n // clone(), we can trust it and avoid the offset calculation.\n const ot = isNumber(config.o) && !config.old ? config.o : zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.localWeekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a DateTime for the current instant, in the system's time zone.\n *\n * Use Settings to override these default values if needed.\n * @example DateTime.now().toISO() //~> now in the ISO format\n * @return {DateTime}\n */\n static now() {\n return new DateTime({});\n }\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month, 1-indexed\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local({ zone: \"America/New_York\" }) //~> now, in US east coast time\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12, { locale: \"fr\" }) //~> 2017-03-12T00:00:00, with a French locale\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, { zone: \"utc\" }) //~> 2017-03-12T05:00:00, in UTC\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @param {Object} options - configuration options for the DateTime\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @param {string} [options.weekSettings] - the week settings to set on the resulting DateTime instance\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: \"fr\" }) //~> 2017-03-12T05:45:00Z with a French locale\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: \"fr\" }) //~> 2017-03-12T05:45:10.765Z with a French locale\n * @return {DateTime}\n */\n static utc() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n\n opts.zone = FixedOffsetZone.utcInstance;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime from a JavaScript Date object. Uses the default zone.\n * @param {Date} date - a JavaScript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options),\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.localWeekYear - a week year, according to the locale\n * @param {number} obj.localWeekNumber - a week number, between 1 and 52 or 53, depending on the year, according to the locale\n * @param {number} obj.localWeekday - a weekday, 1-7, where 1 is the first and 7 is the last day of the week, according to the locale\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {Object} opts - options for creating this DateTime\n * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [opts.locale='system\\'s locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @example DateTime.fromObject({ localWeekYear: 2022, localWeekNumber: 1, localWeekday: 1 }, { locale: \"en-US\" }).toISODate() //=> '2021-12-26'\n * @return {DateTime}\n */\n static fromObject(obj, opts = {}) {\n obj = obj || {};\n const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const loc = Locale.fromObject(opts);\n const normalized = normalizeObject(obj, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, loc);\n\n const tsNow = Settings.now(),\n offsetProvis = !isUndefined(opts.specificOffset)\n ? opts.specificOffset\n : zoneToUse.offset(tsNow),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow, minDaysInFirstWeek, startOfWeek);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc,\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n if (!inst.isValid) {\n return DateTime.invalid(inst.invalid);\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @param {string} [opts.weekSettings] - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens).\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n }),\n [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent.\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is an instance of DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n /**\n * Produce the format string for a set of options\n * @param formatOpts\n * @param localeOpts\n * @returns {string}\n */\n static parseFormatForOpts(formatOpts, localeOpts = {}) {\n const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts));\n return !tokenList ? null : tokenList.map((t) => (t ? t.val : null)).join(\"\");\n }\n\n /**\n * Produce the the fully expanded format token for the locale\n * Does NOT quote characters, so quoted tokens will not round trip correctly\n * @param fmt\n * @param localeOpts\n * @returns {string}\n */\n static expandFormat(fmt, localeOpts = {}) {\n const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts));\n return expanded.map((t) => t.val).join(\"\");\n }\n\n static resetCache() {\n zoneOffsetTs = undefined;\n zoneOffsetGuessCache.clear();\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Returns true if this date is on a weekend according to the locale, false otherwise\n * @returns {boolean}\n */\n get isWeekend() {\n return this.isValid && this.loc.getWeekendDays().includes(this.weekday);\n }\n\n /**\n * Get the day of the week according to the locale.\n * 1 is the first day of the week and 7 is the last day of the week.\n * If the locale assigns Sunday as the first day of the week, then a date which is a Sunday will return 1,\n * @returns {number}\n */\n get localWeekday() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the week number of the week year according to the locale. Different locales assign week numbers differently,\n * because the week can start on different days of the week (see localWeekday) and because a different number of days\n * is required for a week to count as the first week of a year.\n * @returns {number}\n */\n get localWeekNumber() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the week year according to the locale. Different locales assign week numbers (and therefor week years)\n * differently, see localWeekNumber.\n * @returns {number}\n */\n get localWeekYear() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.now().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.isUniversal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1, day: 1 }).offset ||\n this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC\n * in this DateTime's zone. During DST changes local time can be ambiguous, for example\n * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`.\n * This method will return both possible DateTimes if this DateTime's local time is ambiguous.\n * @returns {DateTime[]}\n */\n getPossibleOffsets() {\n if (!this.isValid || this.isOffsetFixed) {\n return [this];\n }\n const dayMs = 86400000;\n const minuteMs = 60000;\n const localTS = objToLocalTS(this.c);\n const oEarlier = this.zone.offset(localTS - dayMs);\n const oLater = this.zone.offset(localTS + dayMs);\n\n const o1 = this.zone.offset(localTS - oEarlier * minuteMs);\n const o2 = this.zone.offset(localTS - oLater * minuteMs);\n if (o1 === o2) {\n return [this];\n }\n const ts1 = localTS - o1 * minuteMs;\n const ts2 = localTS - o2 * minuteMs;\n const c1 = tsToObj(ts1, o1);\n const c2 = tsToObj(ts2, o2);\n if (\n c1.hour === c2.hour &&\n c1.minute === c2.minute &&\n c1.second === c2.second &&\n c1.millisecond === c2.millisecond\n ) {\n return [clone(this, { ts: ts1 }), clone(this, { ts: ts2 })];\n }\n return [this];\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's local week year\n * @example DateTime.local(2020, 6, {locale: 'en-US'}).weeksInLocalWeekYear //=> 52\n * @example DateTime.local(2020, 6, {locale: 'de-DE'}).weeksInLocalWeekYear //=> 53\n * @type {number}\n */\n get weeksInLocalWeekYear() {\n return this.isValid\n ? weeksInWeekYear(\n this.localWeekYear,\n this.loc.getMinDaysInFirstWeek(),\n this.loc.getStartOfWeek()\n )\n : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOptions(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link DateTime#setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}.\n *\n * This method also supports setting locale-based week units, i.e. `localWeekday`, `localWeekNumber` and `localWeekYear`.\n * They cannot be mixed with ISO-week units like `weekday`.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, this.loc);\n\n const settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(\n { ...gregorianToWeek(this.c, minDaysInFirstWeek, startOfWeek), ...normalized },\n minDaysInFirstWeek,\n startOfWeek\n );\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian({ ...gregorianToOrdinal(this.c), ...normalized });\n } else {\n mixed = { ...this.toObject(), ...normalized };\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.now().plus(123) //~> in 123 milliseconds\n * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link DateTime#plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit, { useLocaleWeeks = false } = {}) {\n if (!this.isValid) return this;\n\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n if (useLocaleWeeks) {\n const startOfWeek = this.loc.getStartOfWeek();\n const { weekday } = this;\n if (weekday < startOfWeek) {\n o.weekNumber = this.weekNumber - 1;\n }\n o.weekday = startOfWeek;\n } else {\n o.weekday = 1;\n }\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit, opts) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit, opts)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 aoĆ»t 2022'\n * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(formatOpts = DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.now().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=false] - add the time zone format extension\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @param {string} [opts.precision='milliseconds'] - truncate output to desired presicion: 'years', 'months', 'days', 'hours', 'minutes', 'seconds' or 'milliseconds'. When precision and suppressSeconds or suppressMilliseconds are used together, precision sets the maximum unit shown in the output, however seconds or milliseconds will still be suppressed if they are 0.\n * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @example DateTime.now().toISO({ precision: 'day' }) //=> '2017-04-22Z'\n * @example DateTime.now().toISO({ precision: 'minute' }) //=> '2017-04-22T20:47Z'\n * @return {string|null}\n */\n toISO({\n format = \"extended\",\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset = true,\n extendedZone = false,\n precision = \"milliseconds\",\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n precision = normalizeUnit(precision);\n const ext = format === \"extended\";\n\n let c = toISODate(this, ext, precision);\n if (orderedUnits.indexOf(precision) >= 3) c += \"T\";\n c += toISOTime(\n this,\n ext,\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone,\n precision\n );\n return c;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @param {string} [opts.precision='day'] - truncate output to desired precision: 'years', 'months', or 'days'.\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @example DateTime.utc(1982, 5, 25).toISODate({ precision: 'month' }) //=> '1982-05'\n * @return {string|null}\n */\n toISODate({ format = \"extended\", precision = \"day\" } = {}) {\n if (!this.isValid) {\n return null;\n }\n return toISODate(this, format === \"extended\", normalizeUnit(precision));\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=true] - add the time zone format extension\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @param {string} [opts.precision='milliseconds'] - truncate output to desired presicion: 'hours', 'minutes', 'seconds' or 'milliseconds'. When precision and suppressSeconds or suppressMilliseconds are used together, precision sets the maximum unit shown in the output, however seconds or milliseconds will still be suppressed if they are 0.\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, second: 56 }).toISOTime({ precision: 'minute' }) //=> '07:34Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n includePrefix = false,\n extendedZone = false,\n format = \"extended\",\n precision = \"milliseconds\",\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n precision = normalizeUnit(precision);\n let c = includePrefix && orderedUnits.indexOf(precision) >= 3 ? \"T\" : \"\";\n return (\n c +\n toISOTime(\n this,\n format === \"extended\",\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone,\n precision\n )\n );\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string|null}\n */\n toSQLDate() {\n if (!this.isValid) {\n return null;\n }\n return toISODate(this, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false, includeOffsetSpace = true } = {}) {\n let fmt = \"HH:mm:ss.SSS\";\n\n if (includeZone || includeOffset) {\n if (includeOffsetSpace) {\n fmt += \" \";\n }\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += \"ZZ\";\n }\n }\n\n return toTechFormat(this, fmt, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;\n } else {\n return `DateTime { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds (including milliseconds in the fractional part) of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns the epoch seconds (as a whole number) of this DateTime.\n * @return {number}\n */\n toUnixInteger() {\n return this.isValid ? Math.floor(this.ts / 1000) : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = { ...this.c };\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a JavaScript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\"created by diffing an invalid DateTime\");\n }\n\n const durOpts = { locale: this.locale, numberingSystem: this.numberingSystem, ...opts };\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link DateTime#diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.now(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval|DateTime}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime.\n * Higher-order units must also be identical for this function to return `true`.\n * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed.\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; only the locale of this DateTime is used\n * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit, opts) {\n if (!this.isValid) return false;\n\n const inputMs = otherDateTime.valueOf();\n const adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true });\n return (\n adjustedToZone.startOf(unit, opts) <= inputMs && inputMs <= adjustedToZone.endOf(unit, opts)\n );\n }\n\n /**\n * Equality check\n * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds towards zero by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {string} [options.rounding=\"trunc\"] - rounding method to use when rounding the numbers in the output. Can be \"trunc\" (toward zero), \"expand\" (away from zero), \"round\", \"floor\", or \"ceil\".\n * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 dĆ­a\"\n * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({}, { zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n let units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n let unit = options.unit;\n if (Array.isArray(options.unit)) {\n units = options.unit;\n unit = undefined;\n }\n return diffRelative(base, this.plus(padding), {\n ...options,\n numeric: \"always\",\n units,\n unit,\n });\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"maƱana\"\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone }), this, {\n ...options,\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true,\n });\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n /**\n * Build a parser for `fmt` using the given locale. This parser can be passed\n * to {@link DateTime.fromFormatParser} to a parse a date in this format. This\n * can be used to optimize cases where many dates need to be parsed in a\n * specific format.\n *\n * @param {String} fmt - the format the string is expected to be in (see\n * description)\n * @param {Object} options - options used to set locale and numberingSystem\n * for parser\n * @returns {TokenParser} - opaque object to be used\n */\n static buildFormatParser(fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n return new TokenParser(localeToUse, fmt);\n }\n\n /**\n * Create a DateTime from an input string and format parser.\n *\n * The format parser must have been created with the same locale as this call.\n *\n * @param {String} text - the string to parse\n * @param {TokenParser} formatParser - parser from {@link DateTime.buildFormatParser}\n * @param {Object} opts - options taken by fromFormat()\n * @returns {DateTime}\n */\n static fromFormatParser(text, formatParser, opts = {}) {\n if (isUndefined(text) || isUndefined(formatParser)) {\n throw new InvalidArgumentError(\n \"fromFormatParser requires an input string and a format parser\"\n );\n }\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n\n if (!localeToUse.equals(formatParser.locale)) {\n throw new InvalidArgumentError(\n `fromFormatParser called with a locale of ${localeToUse}, ` +\n `but the format parser was created for ${formatParser.locale}`\n );\n }\n\n const { result, zone, specificOffset, invalidReason } = formatParser.explainFromTokens(text);\n\n if (invalidReason) {\n return DateTime.invalid(invalidReason);\n } else {\n return parseDataToDateTime(\n result,\n zone,\n opts,\n `format ${formatParser.format}`,\n text,\n specificOffset\n );\n }\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link DateTime#toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return DATE_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return DATE_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return DATE_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return DATE_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return TIME_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return TIME_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return TIME_24_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return DATETIME_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return DATETIME_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return DATETIME_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return DATETIME_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nfunction friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n\nconst VERSION = \"3.7.2\";\n\nexport { DateTime, Duration, FixedOffsetZone, IANAZone, Info, Interval, InvalidZone, Settings, SystemZone, VERSION, Zone };\n//# sourceMappingURL=luxon.mjs.map\n", + "var fJ=Object.defineProperty;var DJ=(J,X)=>{for(var Y in X)fJ(J,Y,{get:X[Y],enumerable:!0,configurable:!0,set:(Z)=>X[Y]=()=>Z})};var O=globalThis,H=(J)=>{if(!O.emitLitDebugLogEvents)return;O.dispatchEvent(new CustomEvent(\"lit-debug\",{detail:J}))},KJ=0,x;O.litIssuedWarnings??=new Set,x=(J,X)=>{if(X+=J?` See https://lit.dev/msg/${J} for more information.`:\"\",!O.litIssuedWarnings.has(X)&&!O.litIssuedWarnings.has(J))console.warn(X),O.litIssuedWarnings.add(X)},queueMicrotask(()=>{x(\"dev-mode\",\"Lit is in dev mode. Not recommended for production!\")});var S=O.ShadyDOM?.inUse&&O.ShadyDOM?.noPatch===!0?O.ShadyDOM.wrap:(J)=>J,v=O.trustedTypes,XJ=v?v.createPolicy(\"lit-html\",{createHTML:(J)=>J}):void 0,RJ=(J)=>J,u=(J,X,Y)=>RJ,AJ=(J)=>{if(L!==u)throw Error(\"Attempted to overwrite existing lit-html security policy. setSanitizeDOMValueFactory should be called at most once.\");L=J},EJ=()=>{L=u},l=(J,X,Y)=>{return L(J,X,Y)},QJ=\"$lit$\",f=`lit$${Math.random().toFixed(9).slice(2)}$`,BJ=\"?\"+f,NJ=`<${BJ}>`,N=document,w=()=>N.createComment(\"\"),b=(J)=>J===null||typeof J!=\"object\"&&typeof J!=\"function\",n=Array.isArray,LJ=(J)=>n(J)||typeof J?.[Symbol.iterator]===\"function\",i=`[ \t\n\\f\\r]`,VJ=`[^ \t\n\\f\\r\"'\\`<>=]`,IJ=`[^\\\\s\"'>=/]`,h=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,YJ=1,s=2,PJ=3,ZJ=/-->/g,$J=/>/g,K=new RegExp(`>|${i}(?:(${IJ}+)(${i}*=${i}*(?:${VJ}|(\"|')|))|$)`,\"g\"),TJ=0,qJ=1,CJ=2,WJ=3,o=/'/g,r=/\"/g,HJ=/^(?:script|style|textarea|title)$/i,hJ=1,c=2,g=3,a=1,p=2,xJ=3,wJ=4,bJ=5,t=6,kJ=7,e=(J)=>(X,...Y)=>{if(X.some((Z)=>Z===void 0))console.warn(`Some template strings are undefined.\nThis is probably caused by illegal octal escape sequences.`);if(Y.some((Z)=>Z?._$litStatic$))x(\"\",`Static values 'literal' or 'unsafeStatic' cannot be used as values to non-static templates.\nPlease use the static 'html' tag function. See https://lit.dev/docs/templates/expressions/#static-expressions`);return{[\"_$litType$\"]:J,strings:X,values:Y}},yJ=e(hJ),dJ=e(c),rJ=e(g),I=Symbol.for(\"lit-noChange\"),U=Symbol.for(\"lit-nothing\"),GJ=new WeakMap,E=N.createTreeWalker(N,129),L=u;function FJ(J,X){if(!n(J)||!J.hasOwnProperty(\"raw\")){let Y=\"invalid template strings array\";throw Y=`\n Internal Error: expected template strings to be an array\n with a 'raw' field. Faking a template strings array by\n calling html or svg like an ordinary function is effectively\n the same as calling unsafeHtml and can lead to major security\n issues, e.g. opening your code up to XSS attacks.\n If you're using the html or svg tagged template functions normally\n and still seeing this error, please file a bug at\n https://github.com/lit/lit/issues/new?template=bug_report.md\n and include information about your build tooling, if any.\n `.trim().replace(/\\n */g,`\n`),Error(Y)}return XJ!==void 0?XJ.createHTML(X):X}var mJ=(J,X)=>{let Y=J.length-1,Z=[],$=X===c?\"\":X===g?\"\":\"\",q,W=h;for(let Q=0;Q\")W=q??h,B=-1;else if(M[qJ]===void 0)B=-2;else B=W.lastIndex-M[CJ].length,_=M[qJ],W=M[WJ]===void 0?K:M[WJ]==='\"'?r:o;else if(W===r||W===o)W=K;else if(W===ZJ||W===$J)W=h;else W=K,q=void 0}console.assert(B===-1||W===K||W===o||W===r,\"unexpected parse state B\");let A=W===K&&J[Q+1].startsWith(\"/>\")?\" \":\"\";$+=W===h?F+NJ:B>=0?(Z.push(_),F.slice(0,B)+QJ+F.slice(B))+f+A:F+f+(B===-2?Q:A)}let G=$+(J[Y]||\"\")+(X===c?\"\":X===g?\"\":\"\");return[FJ(J,G),Z]};class k{constructor({strings:J,[\"_$litType$\"]:X},Y){this.parts=[];let Z,$=0,q=0,W=J.length-1,G=this.parts,[Q,F]=mJ(J,X);if(this.el=k.createElement(Q,Y),E.currentNode=this.el.content,X===c||X===g){let B=this.el.content.firstChild;B.replaceWith(...B.childNodes)}while((Z=E.nextNode())!==null&&G.length0){Z.textContent=v?v.emptyScript:\"\";for(let D=0;D<_;D++)Z.append(B[D],w()),E.nextNode(),G.push({type:p,index:++$});Z.append(B[_],w())}}}else if(Z.nodeType===8)if(Z.data===BJ)G.push({type:p,index:$});else{let _=-1;while((_=Z.data.indexOf(f,_+1))!==-1)G.push({type:kJ,index:$}),_+=f.length-1}$++}if(F.length!==q)throw Error('Detected duplicate attribute bindings. This occurs if your template has duplicate attributes on an element tag. For example \"\" contains a duplicate \"disabled\" attribute. The error was detected in the following template: \\n`'+J.join(\"${...}\")+\"`\");H&&H({kind:\"template prep\",template:this,clonableTemplate:this.el,parts:this.parts,strings:J})}static createElement(J,X){let Y=N.createElement(\"template\");return Y.innerHTML=J,Y}}function P(J,X,Y=J,Z){if(X===I)return X;let $=Z!==void 0?Y.__directives?.[Z]:Y.__directive,q=b(X)?void 0:X._$litDirective$;if($?.constructor!==q){if($?._$notifyDirectiveConnectionChanged?.(!1),q===void 0)$=void 0;else $=new q(J),$._$initialize(J,Y,Z);if(Z!==void 0)(Y.__directives??=[])[Z]=$;else Y.__directive=$}if($!==void 0)X=P(J,$._$resolve(J,X.values),$,Z);return X}class UJ{constructor(J,X){this._$parts=[],this._$disconnectableChildren=void 0,this._$template=J,this._$parent=X}get parentNode(){return this._$parent.parentNode}get _$isConnected(){return this._$parent._$isConnected}_clone(J){let{el:{content:X},parts:Y}=this._$template,Z=(J?.creationScope??N).importNode(X,!0);E.currentNode=Z;let $=E.nextNode(),q=0,W=0,G=Y[0];while(G!==void 0){if(q===G.index){let Q;if(G.type===p)Q=new y($,$.nextSibling,this,J);else if(G.type===a)Q=new G.ctor($,G.name,G.strings,this,J);else if(G.type===t)Q=new jJ($,this,J);this._$parts.push(Q),G=Y[++W]}if(q!==G?.index)$=E.nextNode(),q++}return E.currentNode=N,Z}_update(J){let X=0;for(let Y of this._$parts){if(Y!==void 0)if(H&&H({kind:\"set part\",part:Y,value:J[X],valueIndex:X,values:J,templateInstance:this}),Y.strings!==void 0)Y._$setValue(J,Y,X),X+=Y.strings.length-2;else Y._$setValue(J[X]);X++}}}class y{get _$isConnected(){return this._$parent?._$isConnected??this.__isConnected}constructor(J,X,Y,Z){this.type=p,this._$committedValue=U,this._$disconnectableChildren=void 0,this._$startNode=J,this._$endNode=X,this._$parent=Y,this.options=Z,this.__isConnected=Z?.isConnected??!0,this._textSanitizer=void 0}get parentNode(){let J=S(this._$startNode).parentNode,X=this._$parent;if(X!==void 0&&J?.nodeType===11)J=X.parentNode;return J}get startNode(){return this._$startNode}get endNode(){return this._$endNode}_$setValue(J,X=this){if(this.parentNode===null)throw Error(\"This `ChildPart` has no `parentNode` and therefore cannot accept a value. This likely means the element containing the part was manipulated in an unsupported way outside of Lit's control such that the part's marker nodes were ejected from DOM. For example, setting the element's `innerHTML` or `textContent` can do this.\");if(J=P(this,J,X),b(J)){if(J===U||J==null||J===\"\"){if(this._$committedValue!==U)H&&H({kind:\"commit nothing to child\",start:this._$startNode,end:this._$endNode,parent:this._$parent,options:this.options}),this._$clear();this._$committedValue=U}else if(J!==this._$committedValue&&J!==I)this._commitText(J)}else if(J._$litType$!==void 0)this._commitTemplateResult(J);else if(J.nodeType!==void 0){if(this.options?.host===J){this._commitText(\"[probable mistake: rendered a template's host in itself (commonly caused by writing ${this} in a template]\"),console.warn(\"Attempted to render the template host\",J,\"inside itself. This is almost always a mistake, and in dev mode \",\"we render some warning text. In production however, we'll \",\"render it, which will usually result in an error, and sometimes \",\"in the element disappearing from the DOM.\");return}this._commitNode(J)}else if(LJ(J))this._commitIterable(J);else this._commitText(J)}_insert(J){return S(S(this._$startNode).parentNode).insertBefore(J,this._$endNode)}_commitNode(J){if(this._$committedValue!==J){if(this._$clear(),L!==u){let X=this._$startNode.parentNode?.nodeName;if(X===\"STYLE\"||X===\"SCRIPT\"){let Y=\"Forbidden\";if(X===\"STYLE\")Y=\"Lit does not support binding inside style nodes. This is a security risk, as style injection attacks can exfiltrate data and spoof UIs. Consider instead using css`...` literals to compose styles, and do dynamic styling with css custom properties, ::parts, s, and by mutating the DOM rather than stylesheets.\";else Y=\"Lit does not support binding inside script nodes. This is a security risk, as it could allow arbitrary code execution.\";throw Error(Y)}}H&&H({kind:\"commit node\",start:this._$startNode,parent:this._$parent,value:J,options:this.options}),this._$committedValue=this._insert(J)}}_commitText(J){if(this._$committedValue!==U&&b(this._$committedValue)){let X=S(this._$startNode).nextSibling;if(this._textSanitizer===void 0)this._textSanitizer=l(X,\"data\",\"property\");J=this._textSanitizer(J),H&&H({kind:\"commit text\",node:X,value:J,options:this.options}),X.data=J}else{let X=N.createTextNode(\"\");if(this._commitNode(X),this._textSanitizer===void 0)this._textSanitizer=l(X,\"data\",\"property\");J=this._textSanitizer(J),H&&H({kind:\"commit text\",node:X,value:J,options:this.options}),X.data=J}this._$committedValue=J}_commitTemplateResult(J){let{values:X,[\"_$litType$\"]:Y}=J,Z=typeof Y===\"number\"?this._$getTemplate(J):(Y.el===void 0&&(Y.el=k.createElement(FJ(Y.h,Y.h[0]),this.options)),Y);if(this._$committedValue?._$template===Z)H&&H({kind:\"template updating\",template:Z,instance:this._$committedValue,parts:this._$committedValue._$parts,options:this.options,values:X}),this._$committedValue._update(X);else{let $=new UJ(Z,this),q=$._clone(this.options);H&&H({kind:\"template instantiated\",template:Z,instance:$,parts:$._$parts,options:this.options,fragment:q,values:X}),$._update(X),H&&H({kind:\"template instantiated and updated\",template:Z,instance:$,parts:$._$parts,options:this.options,fragment:q,values:X}),this._commitNode(q),this._$committedValue=$}}_$getTemplate(J){let X=GJ.get(J.strings);if(X===void 0)GJ.set(J.strings,X=new k(J));return X}_commitIterable(J){if(!n(this._$committedValue))this._$committedValue=[],this._$clear();let X=this._$committedValue,Y=0,Z;for(let $ of J){if(Y===X.length)X.push(Z=new y(this._insert(w()),this._insert(w()),this,this.options));else Z=X[Y];Z._$setValue($),Y++}if(Y2||Y[0]!==\"\"||Y[1]!==\"\")this._$committedValue=Array(Y.length-1).fill(new String),this.strings=Y;else this._$committedValue=U;this._sanitizer=void 0}_$setValue(J,X=this,Y,Z){let $=this.strings,q=!1;if($===void 0){if(J=P(this,J,X,0),q=!b(J)||J!==this._$committedValue&&J!==I,q)this._$committedValue=J}else{let W=J;J=$[0];let G,Q;for(G=0;G<$.length-1;G++){if(Q=P(this,W[Y+G],X,G),Q===I)Q=this._$committedValue[G];if(q||=!b(Q)||Q!==this._$committedValue[G],Q===U)J=U;else if(J!==U)J+=(Q??\"\")+$[G+1];this._$committedValue[G]=Q}}if(q&&!Z)this._commitValue(J)}_commitValue(J){if(J===U)S(this.element).removeAttribute(this.name);else{if(this._sanitizer===void 0)this._sanitizer=L(this.element,this.name,\"attribute\");J=this._sanitizer(J??\"\"),H&&H({kind:\"commit attribute\",element:this.element,name:this.name,value:J,options:this.options}),S(this.element).setAttribute(this.name,J??\"\")}}}class zJ extends d{constructor(){super(...arguments);this.type=xJ}_commitValue(J){if(this._sanitizer===void 0)this._sanitizer=L(this.element,this.name,\"property\");J=this._sanitizer(J),H&&H({kind:\"commit property\",element:this.element,name:this.name,value:J,options:this.options}),this.element[this.name]=J===U?void 0:J}}class MJ extends d{constructor(){super(...arguments);this.type=wJ}_commitValue(J){H&&H({kind:\"commit boolean attribute\",element:this.element,name:this.name,value:!!(J&&J!==U),options:this.options}),S(this.element).toggleAttribute(this.name,!!J&&J!==U)}}class _J extends d{constructor(J,X,Y,Z,$){super(J,X,Y,Z,$);if(this.type=bJ,this.strings!==void 0)throw Error(`A \\`<${J.localName}>\\` has a \\`@${X}=...\\` listener with invalid content. Event listeners in templates must have exactly one expression and no surrounding text.`)}_$setValue(J,X=this){if(J=P(this,J,X,0)??U,J===I)return;let Y=this._$committedValue,Z=J===U&&Y!==U||J.capture!==Y.capture||J.once!==Y.once||J.passive!==Y.passive,$=J!==U&&(Y===U||Z);if(H&&H({kind:\"commit event listener\",element:this.element,name:this.name,value:J,options:this.options,removeListener:Z,addListener:$,oldListener:Y}),Z)this.element.removeEventListener(this.name,this,Y);if($)this.element.addEventListener(this.name,this,J);this._$committedValue=J}handleEvent(J){if(typeof this._$committedValue===\"function\")this._$committedValue.call(this.options?.host??this.element,J);else this._$committedValue.handleEvent(J)}}class jJ{constructor(J,X,Y){this.element=J,this.type=t,this._$disconnectableChildren=void 0,this._$parent=X,this.options=Y}get _$isConnected(){return this._$parent._$isConnected}_$setValue(J){H&&H({kind:\"commit to element binding\",element:this.element,value:J,options:this.options}),P(this,J)}}var vJ=O.litHtmlPolyfillSupportDevMode;vJ?.(k,y);(O.litHtmlVersions??=[]).push(\"3.3.1\");if(O.litHtmlVersions.length>1)queueMicrotask(()=>{x(\"multiple-versions\",\"Multiple versions of Lit loaded. Loading multiple versions is not recommended.\")});var R=(J,X,Y)=>{if(X==null)throw TypeError(`The container to render into may not be ${X}`);let Z=KJ++,$=Y?.renderBefore??X,q=$._$litPart$;if(H&&H({kind:\"begin render\",id:Z,value:J,container:X,options:Y,part:q}),q===void 0){let W=Y?.renderBefore??null;$._$litPart$=q=new y(X.insertBefore(w(),W),W,void 0,Y??{})}return q._$setValue(J),H&&H({kind:\"end render\",id:Z,value:J,container:X,options:Y,part:q}),q};R.setSanitizer=AJ,R.createSanitizer=l,R._testOnlyClearSanitizerFactoryDoNotCallOrElse=EJ;var OJ={};DJ(OJ,{isTemplateResult:()=>V,deserializeCSS:()=>T,callAsync:()=>m});function m(J,X,...Y){try{let Z=J.apply(X,Y);return Z instanceof Promise?Z:Promise.resolve(Z)}catch(Z){return Promise.reject(Z)}}function V(J){return J!==null&&typeof J===\"object\"&&\"_$litType$\"in J}function T(J,X=\"\",Y=0){let Z=Object.keys(J),$=\"\";for(let q of Z){let W=J[q];if(typeof W===\"object\"&&W!==null){if(X&&!q.startsWith(\"@\"))if(q.startsWith(\"&\"))$+=`${q.replace(/&/g,X)} {\n`;else $+=`${X} ${q} {\n`;else $+=`${q} {\n`;let G=Object.keys(W);for(let Q of G){$+=\"\\t\".repeat(Y);let F=W[Q];if(typeof F===\"object\"&&F!==null){let B={};B[Q]=F,$+=T(B,X,Y+1)}else $+=`\t${Q}: ${F};\n`}$+=`}\n`}else $+=\"\\t\".repeat(Y),$+=`\t${q}: ${W};\n`}return $}class z extends HTMLElement{_children;_state;_props;_ready;_connected;_isReady;_style;_updatingProps;_renderId;_propsProxy;_stateProxy;_hasBeenMounted;static _tag;static _template;static _observedAttributes=[];static _onMount;static _onUnmount;static _onError;static _applyMiddleware;static _hasMiddleware;static get observedAttributes(){return this._observedAttributes}static set observedAttributes(J){this._observedAttributes=J}static get tag(){if(typeof this._tag>\"u\"){let J=this.name,X=J.match(/([A-Z])/g);if(X!==null)for(let Y of X)J=J.replace(Y,`-${Y}`.toLowerCase());this._tag=J.slice(1)}return this._tag}static set tag(J){this._tag=J}static template(J=null,X=null){if(J!==null)this._template=J,document.querySelectorAll(this.tag).forEach((Y)=>{if(Y instanceof z&&Y._isReady)Y.forceRender()});else{if(typeof this._template===\"function\")return this._template.call(X,X);return this._template}}constructor(){super();this._children=\"\",this._state={},this._props={},this._ready=[],this._connected=!1,this._isReady=!1,this._style={},this._updatingProps=!1,this._renderId=0,this._propsProxy=null,this._stateProxy=null,this._hasBeenMounted=!1}get width(){return parseInt(getComputedStyle(this).width.replace(\"px\",\"\"))}set width(J){this.style.width=typeof J===\"number\"?`${J}px`:J}get height(){return parseInt(getComputedStyle(this).height.replace(\"px\",\"\"))}set height(J){this.style.height=typeof J===\"number\"?`${J}px`:J}get static(){return this.constructor}set static(J){throw Error(\"Component static properties cannot be reassigned.\")}get props(){if(!this._propsProxy)this._propsProxy=new Proxy(this._props,{get:(J,X)=>{if(X in J&&typeof J[X]<\"u\")return J[X];if(this.hasAttribute(X)){let Y=this.getAttribute(X);if(typeof Y===\"string\"){if(Y===\"false\")Y=!1;else if(Y===\"true\"||Y===\"\")Y=!0;else if(!isNaN(Number(Y)))Y=Y.includes(\".\")?parseFloat(Y):parseInt(Y)}return Y}return},set:()=>{throw Error(\"Component props should be set using the `setProps` function.\")}});return this._propsProxy}set props(J){if(!this._connected)this._props={...this._props,...J},this._propsProxy=null;else throw Error(\"Component props cannot be directly assigned. Use the `setProps` function instead.\")}get state(){if(!this._stateProxy)this._stateProxy=new Proxy(this._state,{get:(J,X)=>J[X],set:(J,X,Y)=>{if(!this._connected)return J[X]=Y,!0;else throw Error(\"Component state should be set using the `setState` function instead.\")}});return this._stateProxy}set state(J){if(!this._connected)this._state={...this._state,...J},this._stateProxy=null;else throw Error(\"Component state should be set using the `setState` function instead.\")}get dom(){return this}set dom(J){throw Error(\"Component DOM can not be overwritten.\")}get slotContent(){return this._children}get isConnected(){return this._connected}get isReady(){return this._isReady}get isFirstMount(){return!this._hasBeenMounted}static register(){window.customElements.define(this.tag,this)}template(J=null){return this.constructor.template(J,this)}static _styleSheet=null;setStyle(J,X=!1){let Y=this.constructor;if(!Y._styleSheet)Y._styleSheet=new CSSStyleSheet;let Z=\"\";if(typeof J===\"object\"){if(!X)this._style={...this._style,...J};else this._style={...J};Z=T(this._style,Y.tag)}else if(typeof J===\"string\")if(!X)Z=Array.from(Y._styleSheet.cssRules||[]).map((q)=>q.cssText).join(`\n`)+`\n`+J;else Z=J;if(Y._styleSheet.replaceSync(Z),!document.adoptedStyleSheets.includes(Y._styleSheet))document.adoptedStyleSheets=[...document.adoptedStyleSheets,Y._styleSheet];return this._style}setState(J){let X=J;if(z._hasMiddleware?.(\"state\")&&z._applyMiddleware)X=z._applyMiddleware(\"state\",this,J);let Y={...this._state};this._state={...this._state,...X},this._stateProxy=null;for(let Z of Object.keys(X))this.updateCallback(Z,Y[Z],this._state[Z],\"state\",Y,this._state)}setProps(J){let X=J;if(z._hasMiddleware?.(\"props\")&&z._applyMiddleware)X=z._applyMiddleware(\"props\",this,J);let Y={...this._props};this._props={...this._props,...X},this._propsProxy=null;for(let Z of Object.keys(X))this.updateCallback(Z,Y[Z],this._props[Z],\"props\",Y,this._props);this._updatingProps=!0,this._setPropAttributes(!0),this._updatingProps=!1}_setPropAttributes(J=!1){for(let[X,Y]of Object.entries(this._props)){let Z=typeof Y;if(Z===\"string\"||Z===\"number\"||Z===\"boolean\")if(J)this.setAttribute(X,String(Y));else this._props[X]=this.props[X],this.setAttribute(X,String(this.props[X]))}}on(J,X,Y){return this.addEventListener(J,X,Y),this}off(J,X,Y){return this.removeEventListener(J,X,Y),this}once(J,X,Y){let Z=typeof Y===\"boolean\"?{capture:Y,once:!0}:{...Y,once:!0};return this.addEventListener(J,X,Z),this}emit(J,X,Y){let Z=new CustomEvent(J,{detail:X,bubbles:!0,cancelable:!0,composed:!0,...Y});return this.dispatchEvent(Z)}query(J){return this.dom.querySelector(J)}queryAll(J){return this.dom.querySelectorAll(J)}async willUpdate(J,X,Y,Z,$,q){}async update(J,X,Y,Z,$,q){}async didUpdate(J,X,Y,Z,$,q){}async onStateUpdate(J,X,Y,Z,$){}async onPropsUpdate(J,X,Y,Z,$){}async willMount(){}async didMount(){}async didReconnect(){}async willUnmount(){}async unmount(){}async didUnmount(){}forceRender(){return this._render()}render(){return\"\"}async _render(){let J=++this._renderId,X=this.render;if(this.constructor._template!==void 0)X=()=>this.template();let Y=await m(X,this);if(J!==this._renderId)return;let Z=V(Y)||Y===U?\"lit\":\"string\";if(z._hasMiddleware?.(\"render\")&&z._applyMiddleware)Y=z._applyMiddleware(\"render\",this,Y,Z);if(V(Y)||Y===U){if(!this.hasAttribute(\"data-lit-rendered\"))this.innerHTML=\"\",this.setAttribute(\"data-lit-rendered\",\"\");R(Y,this,{host:this});return}let $=Y.trim();if($===\"\")return;let q=this.dom.querySelector(\"slot\");if(q!==null){let W=document.createElement(\"template\");W.innerHTML=$,q.replaceWith(W.content)}else if(this.innerHTML=$,this._children!==\"\"&&$.indexOf(this._children)===-1)this.innerHTML+=this._children}async connectedCallback(){let J=this.static.tag;try{if(this._connected=!0,this.dataset.component=J,typeof this.static._template>\"u\"){let Z=document.querySelector(`template#${J}`);if(Z!==null)this.template(Z.innerHTML);else this.static._template=void 0}let X=!this._hasBeenMounted;if(X)this._children=this.innerHTML.trim();if(this._setPropAttributes(!1),await this.willMount(),await this._render(),X)await this.didMount();else await this.didReconnect();this._isReady=!0,this._hasBeenMounted=!0;let Y=[...this._ready];this._ready=[];for(let Z of Y)Z.call(this);if(z._onMount)z._onMount(this,J)}catch(X){if(z._onError)z._onError(X,this,J,\"connectedCallback\");else throw X}}ready(J){if(this._isReady)J.call(this);else this._ready.push(J)}async disconnectedCallback(){let J=this.static.tag;try{if(await this.willUnmount(),await this.unmount(),await this.didUnmount(),this._connected=!1,this._isReady=!1,this._ready=[],z._onUnmount)z._onUnmount(this,J)}catch(X){if(z._onError)z._onError(X,this,J,\"disconnectedCallback\");else throw X}}async updateCallback(J,X,Y,Z=\"props\",$={},q={}){if(await this.willUpdate(Z,J,X,Y,$,q),await this.update(Z,J,X,Y,$,q),Z===\"state\")await this.onStateUpdate(J,X,Y,$,q);else if(Z===\"props\"||Z===\"attribute\")await this.onPropsUpdate(J,X,Y,$,q);await this.didUpdate(Z,J,X,Y,$,q)}attributeChangedCallback(J,X,Y){if(X!==Y&&!this._updatingProps)this.updateCallback(J,X,Y,\"attribute\")}}var j=z;class SJ extends j{_shadowDOM;static _styleSheet=null;constructor(){super();this._shadowDOM=this.attachShadow({mode:\"open\"})}setStyle(J,X=!1){let Y=this.constructor;if(!Y._styleSheet)Y._styleSheet=new CSSStyleSheet;let Z=\"\";if(typeof J===\"object\"){if(!X)this._style={...this._style,...J};else this._style={...J};Z=T(this._style)}else if(typeof J===\"string\")if(!X)Z=Array.from(Y._styleSheet.cssRules||[]).map((q)=>q.cssText).join(`\n`)+`\n`+J;else Z=J;return Y._styleSheet.replaceSync(Z),this._shadowDOM.adoptedStyleSheets=[Y._styleSheet],this._style}async _render(){let J=++this._renderId,X=this.render;if(this.constructor._template!==void 0)X=()=>this.template();let Y=await m(X,this);if(J!==this._renderId)return;let Z=V(Y)||Y===U?\"lit\":\"string\";if(j._hasMiddleware?.(\"render\")&&j._applyMiddleware)Y=j._applyMiddleware(\"render\",this,Y,Z);if(V(Y)||Y===U){R(Y,this._shadowDOM,{host:this});return}let $=Y.trim(),q=Array.from(this._shadowDOM.childNodes);for(let G of q)G.remove();if($===\"\")return;let W=document.createElement(\"template\");W.innerHTML=$,this._shadowDOM.appendChild(W.content)}get dom(){throw Error(\"ShadowComponent DOM can not be accessed. Use the `shadowRoot` property instead.\")}set dom(J){throw Error(\"ShadowComponent DOM can not be overwritten.\")}get shadowRoot(){return this._shadowDOM}set shadowRoot(J){throw Error(\"ShadowComponent shadowRoot can not be overwritten.\")}query(J){return this._shadowDOM.querySelector(J)}queryAll(J){return this._shadowDOM.querySelectorAll(J)}}var cJ=SJ;class JJ{static _debug=!1;static components={};static implementations={};static state={};static subscribers={};static mountCallbacks=new Set;static unmountCallbacks=new Set;static errorCallbacks=new Set;static aliases={};static lazyLoaders={};static middleware={props:new Set,state:new Set,render:new Set};static _initialized=!1;static _init(){if(this._initialized)return;this._initialized=!0,j._onMount=(J,X)=>this._notifyMount(J,X),j._onUnmount=(J,X)=>this._notifyUnmount(J,X),j._onError=(J,X,Y,Z)=>this._notifyError(J,X,Y,Z),j._applyMiddleware=(J,X,Y,Z)=>this._applyMiddleware(J,X,Y,Z),j._hasMiddleware=(J)=>this._hasMiddleware(J)}static register(J,X){if(this._init(),typeof this.components[J]>\"u\")this.components[J]=X,this.implementations[J]=X,X._tag=J,window.customElements.define(J,X),this.components[J]._registered=!0,this.log(`Registered: <${J}>`);else throw Error(\"A component with this tag has already been registered. Use the evolve() function to modify the component.\")}static getImplementation(J){return this.implementations[J]||this.components[J]}static evolve(J,X,Y=!1){if(typeof this.components[J]>\"u\")throw Error(\"No component with this tag has been registered. Cannot Evolve.\");if(this.implementations[J]=X,X._registered=!0,this.log(`Evolved: <${J}>`),Y){let Z=X.prototype,$=Object.getOwnPropertyNames(Z),q={};try{q=Reflect.construct(X,[],X)}catch(W){this.log(`Could not extract defaults for <${J}> during evolve:`,W)}document.querySelectorAll(J).forEach((W)=>{if(W instanceof j&&W.isReady){let G=W;for(let Q of $)if(Q!==\"constructor\"&&typeof Z[Q]===\"function\"){let F=Z[Q];G[Q]=F.bind(W)}if(q._state){let Q=G._state||{},F=q._state;for(let B of Object.keys(F))if(!(B in Q))Q[B]=F[B];G._state=Q}if(q._props){let Q=G._props||{},F=q._props;for(let B of Object.keys(F))if(!(B in Q))Q[B]=F[B];G._props=Q}W.forceRender()}})}}static instances(J,X){if(typeof this.components[J]<\"u\")if(typeof X===\"function\")document.querySelectorAll(J).forEach(X);else return document.querySelectorAll(J);else throw Error(\"No component with the provided tag has been registered.\")}static instantiate(J,X){if(!this.has(J))throw Error(`No component with tag \"${J}\" has been registered.`);if(!this.components[J]._registered)this.register(J,this.components[J]);let Y=document.createElement(this.components[J].tag);return Y.setProps(X),Y}static has(J){return typeof this.components[J]<\"u\"}static get(J){return this.components[J]}static setState(J,X){let Y=this.state[J];if(this.state[J]=X,this.subscribers[J])this.subscribers[J].forEach((Z)=>{Z(X,Y)})}static getState(J){return this.state[J]}static hasState(J){return J in this.state}static deleteState(J){if(J in this.state){let X=this.state[J];if(delete this.state[J],this.subscribers[J])this.subscribers[J].forEach((Y)=>{Y(void 0,X)});return!0}return!1}static subscribe(J,X){if(!this.subscribers[J])this.subscribers[J]=new Set;return this.subscribers[J].add(X),()=>{this.unsubscribe(J,X)}}static unsubscribe(J,X){if(this.subscribers[J])this.subscribers[J].delete(X)}static getAllState(){return{...this.state}}static clearState(){let J=Object.keys(this.state);for(let X of J)this.deleteState(X)}static get debug(){return this._debug}static set debug(J){this._debug=J}static log(J,X){if(this._debug)if(X!==void 0)console.log(`[Pandora] ${J}`,X);else console.log(`[Pandora] ${J}`)}static list(){return Object.keys(this.components)}static stats(J){if(J){if(!this.has(J))throw Error(`No component with tag \"${J}\" has been registered.`);return{tag:J,instanceCount:document.querySelectorAll(J).length,isRegistered:this.components[J]?._registered??!1,isLazy:J in this.lazyLoaders}}return this.list().map((X)=>({tag:X,instanceCount:document.querySelectorAll(X).length,isRegistered:this.components[X]?._registered??!1,isLazy:X in this.lazyLoaders}))}static onMount(J){return this._init(),this.mountCallbacks.add(J),()=>this.mountCallbacks.delete(J)}static onUnmount(J){return this._init(),this.unmountCallbacks.add(J),()=>this.unmountCallbacks.delete(J)}static _notifyMount(J,X){this.log(`Mounted: <${X}>`),this.mountCallbacks.forEach((Y)=>{try{Y(J,X)}catch(Z){console.error(\"[Pandora] Error in onMount callback:\",Z)}})}static _notifyUnmount(J,X){this.log(`Unmounted: <${X}>`),this.unmountCallbacks.forEach((Y)=>{try{Y(J,X)}catch(Z){console.error(\"[Pandora] Error in onUnmount callback:\",Z)}})}static onError(J){return this._init(),this.errorCallbacks.add(J),()=>this.errorCallbacks.delete(J)}static _notifyError(J,X,Y,Z){if(this.log(`Error in <${Y}> during ${Z}:`,J),this.errorCallbacks.size===0)throw J;this.errorCallbacks.forEach(($)=>{try{$(J,X,Y,Z)}catch(q){console.error(\"[Pandora] Error in onError callback:\",q)}})}static alias(J,X){if(!this.has(X))throw Error(`Cannot create alias: no component with tag \"${X}\" has been registered.`);if(this.has(J))throw Error(`Cannot create alias: a component with tag \"${J}\" already exists.`);this.aliases[J]=X;let Y=this.components[X],Z=class extends Y{static _tag=J};this.components[J]=Z,window.customElements.define(J,Z),this.log(`Created alias: <${J}> -> <${X}>`)}static getOriginalTag(J){return this.aliases[J]}static isAlias(J){return J in this.aliases}static lazy(J,X){if(this._init(),this.has(J))throw Error(`Cannot register lazy component: a component with tag \"${J}\" already exists.`);this.lazyLoaders[J]=X;let Y=JJ;class Z extends j{static _tag=J;_lazyLoaded=!1;async connectedCallback(){await Y._loadLazyComponent(J);let $=Y.getImplementation(J);if($&&$!==Z){let q=$.prototype,W=Object.getOwnPropertyNames(q),G=this;for(let F of W)if(F!==\"constructor\"&&typeof q[F]===\"function\"){let B=q[F];G[F]=B.bind(this)}let Q={};try{Q=Reflect.construct($,[],$)}catch(F){Y.log(`Could not extract defaults for lazy <${J}>:`,F)}if(Q._state)G._state={...Q._state};if(Q._props)G._props={...Q._props};this._lazyLoaded=!0}await super.connectedCallback()}}this.components[J]=Z,window.customElements.define(J,Z),this.log(`Registered lazy component: <${J}>`)}static async _loadLazyComponent(J){if(!(J in this.lazyLoaders))return;let X=this.lazyLoaders[J];this.log(`Loading lazy component: <${J}>`);try{let Y=await X(),Z=\"default\"in Y?Y.default:Y;delete this.lazyLoaders[J],this.implementations[J]=Z,Z._registered=!0,this.log(`Loaded lazy component: <${J}>`)}catch(Y){throw console.error(`[Pandora] Failed to load lazy component <${J}>:`,Y),Y}}static isLazy(J){return J in this.lazyLoaders}static async preload(J){if(this.isLazy(J))await this._loadLazyComponent(J)}static use(J,X){return this._init(),this.middleware[J].add(X),()=>this.middleware[J].delete(X)}static _applyMiddleware(J,X,Y,Z){let $=Y;return this.middleware[J].forEach((q)=>{try{$=q(X,$,Z)}catch(W){console.error(`[Pandora] Error in ${J} middleware:`,W)}}),$}static _hasMiddleware(J){return this.middleware[J].size>0}}var C=JJ;function gJ(J){return function(X){return C.register(J,X),X}}function pJ(J){return function(X,Y){let{connectedCallback:Z,disconnectedCallback:$}=X,q=Symbol(`__pandora_unsub_${Y}`),W=Symbol(`__pandora_value_${Y}`);X.connectedCallback=async function(){this[q]=C.subscribe(J,(Q)=>{if(this[W]===Q)return;if(this[W]=Q,this._isReady)this.forceRender()});let G=C.getState(J);if(G!==void 0)this[W]=G;if(Z)await Z.call(this)},X.disconnectedCallback=async function(){if(this[q])this[q](),this[q]=void 0;if($)await $.call(this)},Object.defineProperty(X,Y,{get:function(){return this[W]},set:function(G){if(this[W]===G)return;if(this[W]=G,C.setState(J,G),this._isReady)this.forceRender()},enumerable:!0,configurable:!0})}}function uJ(J){return function(X,Y){let Z=J||Y,$=Symbol(`__pandora_prop_${Y}`);if(!Object.hasOwn(X.constructor,\"_observedAttributes\"))X.constructor._observedAttributes=[];if(!X.constructor._observedAttributes.includes(Z))X.constructor._observedAttributes.push(Z);Object.defineProperty(X,Y,{get:function(){if(this[$]!==void 0)return this[$];if(this.hasAttribute(Z)){let q=this.getAttribute(Z);return iJ(q)}return},set:function(q){if(this[$]=q,typeof q===\"string\"||typeof q===\"number\"||typeof q===\"boolean\")if(typeof q===\"boolean\")if(q)this.setAttribute(Z,\"\");else this.removeAttribute(Z);else this.setAttribute(Z,String(q))},enumerable:!0,configurable:!0})}}function iJ(J){if(J===null)return;if(J===\"\"||J===\"true\")return!0;if(J===\"false\")return!1;if(!isNaN(Number(J)))return J.includes(\".\")?parseFloat(J):parseInt(J,10);return J}var sJ={};export{dJ as svg,R as render,U as nothing,I as noChange,yJ as html,OJ as Util,sJ as Types,cJ as ShadowComponent,C as Registry,gJ as Register,uJ as Prop,pJ as Consumer,j as Component};\n\n//# debugId=2FCD9DA4978383ED64756E2164756E21\n//# sourceMappingURL=pandora.js.map\n", + "import { $_, Text, Util, $_ready, Debug } from '@aegis-framework/artemis';\nimport type { FancyErrorProps, QueuedError, ErrorTemplate, ErrorContext } from './types';\n\ndeclare const Prism: { highlightAll: () => void } | undefined;\ndeclare const MonogatariDebug: object | undefined;\n\n/**\n * FancyError provides a visual error display for development environments.\n * It shows detailed error information in a modal overlay with syntax highlighting.\n */\nexport class FancyError {\n\tstatic queue: QueuedError[] = [];\n\tstatic registry: Map = new Map();\n\n\t/**\n\t * Check if we're in a development environment (file:// protocol or localhost)\n\t */\n\tprivate static isDevEnvironment (): boolean {\n\t\treturn window.location.protocol.indexOf('file') === 0 ||\n\t\t\twindow.location.hostname === 'localhost' ||\n\t\t\twindow.location.hostname === '127.0.0.1';\n\t}\n\n\t/**\n\t * Escape HTML entities to prevent XSS\n\t */\n\tprivate static escapeHtml (text: string): string {\n\t\tconst div = document.createElement('div');\n\t\tdiv.textContent = text;\n\t\treturn div.innerHTML;\n\t}\n\n\t/**\n\t * Generate the modal HTML for an error\n\t */\n\tprivate static generateModalHtml (error: QueuedError): string {\n\t\treturn `\n\t\t\t\n\t\t`;\n\t}\n\n\t/**\n\t * Attach click handler to dismiss an error modal\n\t */\n\tprivate static attachDismissHandler (id: string): void {\n\t\t$_(`[data-error=\"${id}\"] button`).click(function () {\n\t\t\t$_(`[data-error=\"${id}\"]`).remove();\n\t\t\tFancyError.pop();\n\t\t});\n\t\tPrism?.highlightAll();\n\t}\n\n\t/**\n\t * Register an error template by ID.\n\t * IDs follow the convention: type:identifier:error_id (snake_case)\n\t * Examples:\n\t * - action:jump:label_not_found\n\t * - component:language_selection_screen:metadata_not_found\n\t * - engine:translation:key_not_found\n\t */\n\tstatic register (id: string, template: ErrorTemplate): void {\n\t\tFancyError.registry.set(id, template);\n\t}\n\n\t/**\n\t * Interpolate placeholders in a string with context values.\n\t * Placeholders use the format: {{key}}\n\t */\n\tprivate static interpolate (text: string, context: ErrorContext): string {\n\t\treturn text.replace(/\\{\\{(\\w+)\\}\\}/g, (match, key) => {\n\t\t\tconst value = context[key];\n\t\t\tif (value === undefined) {\n\t\t\t\treturn match; // Keep placeholder if no value provided\n\t\t\t}\n\t\t\treturn String(value);\n\t\t});\n\t}\n\n\t/**\n\t * Deep interpolate an object, replacing all string placeholders with context values.\n\t */\n\tprivate static interpolateProps (props: FancyErrorProps, context: ErrorContext): FancyErrorProps {\n\t\tconst result: FancyErrorProps = {};\n\n\t\tfor (const key of Object.keys(props)) {\n\t\t\tconst value = props[key];\n\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tresult[key] = FancyError.interpolate(value, context);\n\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\tresult[key] = value.map(item =>\n\t\t\t\t\ttypeof item === 'string' ? FancyError.interpolate(item, context) : item\n\t\t\t\t);\n\t\t\t} else if (typeof value === 'object' && value !== null && !(value instanceof NodeList)) {\n\t\t\t\tresult[key] = FancyError.interpolateProps(value as FancyErrorProps, context);\n\t\t\t} else {\n\t\t\t\tresult[key] = value;\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic pop (): void {\n\t\tif (FancyError.isDevEnvironment() && typeof Prism !== 'undefined') {\n\t\t\tif (FancyError.queue.length > 0) {\n\t\t\t\tconst error = FancyError.queue.pop()!;\n\t\t\t\t$_('body').prepend(FancyError.generateModalHtml(error));\n\t\t\t\tFancyError.attachDismissHandler(error.id);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Show an error by registered ID with context, or with explicit title/message/props.\n\t *\n\t * Usage with registered error ID:\n\t * FancyError.show('action:jump:label_not_found', { label: 'my_label', step: 5 });\n\t *\n\t * Usage with explicit parameters (legacy):\n\t * FancyError.show('Error Title', 'Error message', { prop: 'value' });\n\t */\n\tstatic show (idOrTitle: string, contextOrMessage?: ErrorContext | string, propsArg?: FancyErrorProps): void {\n\t\tif (typeof MonogatariDebug === 'object' && Debug.currentLevel > 0) {\n\t\t\tlet title: string;\n\t\t\tlet message: string;\n\t\t\tlet props: FancyErrorProps;\n\n\t\t\t// Check if this is a registered error ID\n\t\t\tconst template = FancyError.registry.get(idOrTitle);\n\n\t\t\tif (template && typeof contextOrMessage !== 'string') {\n\t\t\t\t// ID-based call: FancyError.show('error:id', { context })\n\t\t\t\tconst context = (contextOrMessage || {}) as ErrorContext;\n\t\t\t\ttitle = FancyError.interpolate(template.title, context);\n\t\t\t\tmessage = FancyError.interpolate(template.message, context);\n\t\t\t\tprops = FancyError.interpolateProps(template.props, context);\n\n\t\t\t\t// Merge any additional context properties that look like display props\n\t\t\t\t// (keys starting with capital letter or containing spaces) into the final props\n\t\t\t\tfor (const key of Object.keys(context)) {\n\t\t\t\t\tif (/^[A-Z]/.test(key) || key.includes(' ')) {\n\t\t\t\t\t\tprops[key] = context[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Legacy call: FancyError.show('title', 'message', { props })\n\t\t\t\ttitle = idOrTitle || 'Error';\n\t\t\t\tmessage = (contextOrMessage as string) || 'An error has occurred! Please check the console so you get more insight.';\n\t\t\t\tprops = propsArg || {};\n\t\t\t}\n\n\t\t\tconst id = Util.uuid();\n\n\t\t\tconst error: QueuedError = {\n\t\t\t\tid,\n\t\t\t\ttitle,\n\t\t\t\tmessage,\n\t\t\t\tprops\n\t\t\t};\n\n\t\t\tif ($_('[data-error]').isVisible()) {\n\t\t\t\tFancyError.queue.unshift(error);\n\t\t\t} else {\n\t\t\t\tconst showError = (): void => {\n\t\t\t\t\t$_('body').prepend(FancyError.generateModalHtml(error));\n\t\t\t\t\tFancyError.attachDismissHandler(id);\n\t\t\t\t};\n\n\t\t\t\tif ($_('body').length > 0) {\n\t\t\t\t\tshowError();\n\t\t\t\t} else {\n\t\t\t\t\t$_ready(showError);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic render (props: FancyErrorProps = {}): string {\n\t\tlet html = '
';\n\t\tfor (const key of Object.keys(props)) {\n\t\t\tconst value = props[key];\n\t\t\tif (typeof value === 'string' || typeof value === 'number') {\n\t\t\t\thtml += `

${key}: ${value}

`;\n\t\t\t} else if (value instanceof Array) {\n\t\t\t\thtml += `
${key}:
    `;\n\t\t\t\tfor (const item of value) {\n\t\t\t\t\thtml += `
  • ${item}
  • `;\n\t\t\t\t}\n\t\t\t\thtml += '
';\n\t\t\t} else if (value instanceof NodeList) {\n\t\t\t\thtml += `

${key}:

`;\n\t\t\t\tfor (const item of value) {\n\t\t\t\t\tif (item instanceof Element) {\n\t\t\t\t\t\thtml += `${item.outerHTML.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thtml += '

';\n\t\t\t}\n\t\t}\n\t\thtml += '
';\n\n\t\tfor (const key of Object.keys(props)) {\n\t\t\tconst value = props[key];\n\t\t\tif (typeof value === 'object' && !(value instanceof Array) && !(value instanceof NodeList)) {\n\t\t\t\tconst obj = value as FancyErrorProps;\n\t\t\t\thtml += `

${Text.capitalize(key)}

`;\n\t\t\t\tfor (const property of Object.keys(obj)) {\n\t\t\t\t\tif (property.indexOf('_') === 0) {\n\t\t\t\t\t\thtml += `

${obj[property]}

`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst propValue = obj[property];\n\t\t\t\t\t\tif (typeof propValue === 'string' || typeof propValue === 'number') {\n\t\t\t\t\t\t\thtml += `

${property}: ${propValue}

`;\n\t\t\t\t\t\t} else if (propValue instanceof Array) {\n\t\t\t\t\t\t\thtml += `
${property}:
    `;\n\t\t\t\t\t\t\tfor (const item of propValue) {\n\t\t\t\t\t\t\t\thtml += `
  • ${item}
  • `;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thtml += '
';\n\t\t\t\t\t\t} else if (propValue instanceof NodeList) {\n\t\t\t\t\t\t\thtml += `

${property}:

`;\n\t\t\t\t\t\t\tfor (const item of propValue) {\n\t\t\t\t\t\t\t\tif (item instanceof Element) {\n\t\t\t\t\t\t\t\t\thtml += `${item.outerHTML.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')}`;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thtml += '

';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thtml += '
';\n\t\t\t}\n\t\t}\n\t\treturn html;\n\t}\n}\n\n", + "import type { AudioEffectConfig, AudioEffectResult, AudioPlayerOptions } from './types';\n\n/**\n * AudioPlayer provides a high-level API for playing audio with effects\n * using the Web Audio API.\n */\nclass AudioPlayer {\n\tprivate audioContext: AudioContext;\n\tprivate sourceNode: AudioBufferSourceNode | null = null;\n\tprivate gainNode: GainNode;\n\tprivate effectChainNodes: AudioNode[] = [];\n\n\tprivate _isPlaying: boolean = false;\n\tprivate _isPaused: boolean = false;\n\tprivate _loop: boolean = false;\n\tprivate _volume: number = 1;\n\tprivate startedAt: number = 0;\n\tprivate pausedAt: number = 0;\n\n\tprivate buffer: AudioBuffer;\n\tprivate effectsConfig: Record>;\n\tprivate stoppableResources: AudioEffectResult[] = [];\n\n\tprivate static effectRegistry: Map = new Map();\n\tprivate static workletReadyPromises: WeakMap> = new WeakMap();\n\n\t/**\n\t * Callback fired when playback ends\n\t */\n\tonended: (() => void) | null = null;\n\n\t/**\n\t * Dataset for storing arbitrary data\n\t */\n\tdataset: Record = {};\n\n\tstatic effect (id: string, configuration: Omit | null = null): AudioEffectConfig | null {\n\t\tif (configuration !== null) {\n\t\t\tthis.effectRegistry.set(id, { id, ...configuration });\n\t\t}\n\n\t\treturn this.effectRegistry.get(id) || null;\n\t}\n\n\tstatic effects (): AudioEffectConfig[] {\n\t\treturn Array.from(this.effectRegistry.values());\n\t}\n\n\tstatic async initialize (audioContext: AudioContext): Promise {\n\t\tif (this.workletReadyPromises.has(audioContext)) {\n\t\t\treturn this.workletReadyPromises.get(audioContext)!;\n\t\t}\n\n\t\t// Check if audioWorklet is supported\n\t\tif (!audioContext.audioWorklet) {\n\t\t\tconsole.warn('AudioWorklet not supported in this browser. Some effects may not work.');\n\t\t\tconst readyPromise = Promise.resolve([]);\n\t\t\tthis.workletReadyPromises.set(audioContext, readyPromise);\n\t\t\treturn readyPromise;\n\t\t}\n\n\t\tconst workletDefs: Record = {\n\t\t\t'bitcrusher-processor': `\n\t\t\t\tclass BitcrusherProcessor extends AudioWorkletProcessor {\n\t\t\t\t\tstatic get parameterDescriptors () {\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t{ name: 'bits', defaultValue: 8, minValue: 1, maxValue: 16 },\n\t\t\t\t\t\t\t{ name: 'frequency', defaultValue: 0.1, minValue: 0, maxValue: 1 }\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\n\t\t\t\t\tconstructor () {\n\t\t\t\t\t\tsuper ();\n\t\t\t\t\t\tthis.phase = 0;\n\t\t\t\t\t\tthis.lastSample = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tprocess (inputs, outputs, parameters) {\n\t\t\t\t\t\tconst input = inputs[0];\n\t\t\t\t\t\tconst output = outputs[0];\n\t\t\t\t\t\tconst bits = parameters.bits[0];\n\t\t\t\t\t\tconst frequency = parameters.frequency[0];\n\t\t\t\t\t\tconst step = Math.pow (0.5, bits - 1);\n\t\t\t\t\t\tconst sampleRateFactor = 1 / sampleRate;\n\t\t\t\t\t\tconst freq = frequency * sampleRate;\n\n\t\t\t\t\t\tfor (let channel = 0; channel < output.length; channel++) {\n\t\t\t\t\t\t\tconst inputChannel = input[channel];\n\t\t\t\t\t\t\tconst outputChannel = output[channel];\n\t\t\t\t\t\t\tfor (let i = 0; i < outputChannel.length; i++) {\n\t\t\t\t\t\t\t\tthis.phase += freq * sampleRateFactor;\n\t\t\t\t\t\t\t\tif (this.phase >= 1.0) {\n\t\t\t\t\t\t\t\t\tthis.phase -= 1.0;\n\t\t\t\t\t\t\t\t\tthis.lastSample = step * Math.floor (inputChannel[i] / step + 0.5);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\toutputChannel[i] = this.lastSample;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tregisterProcessor ('bitcrusher-processor', BitcrusherProcessor);\n\t\t\t`,\n\t\t\t'envelope-follower-processor': `\n\t\t\t\tclass EnvelopeFollowerProcessor extends AudioWorkletProcessor {\n\t\t\t\t\tstatic get parameterDescriptors () {\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t{ name: 'attack', defaultValue: 0.01, minValue: 0, maxValue: 1 },\n\t\t\t\t\t\t\t{ name: 'release', defaultValue: 0.1, minValue: 0, maxValue: 1 }\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\n\t\t\t\t\tconstructor () {\n\t\t\t\t\t\tsuper ();\n\t\t\t\t\t\tthis._envelope = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tprocess (inputs, outputs, parameters) {\n\t\t\t\t\t\tconst input = inputs[0][0]; // Mono input\n\t\t\t\t\t\tconst output = outputs[0][0]; // Control signal output\n\t\t\t\t\t\tconst attack = parameters.attack[0];\n\t\t\t\t\t\tconst release = parameters.release[0];\n\n\t\t\t\t\t\tfor (let i = 0; i < input.length; i++) {\n\t\t\t\t\t\t\tconst absValue = Math.abs (input[i]);\n\t\t\t\t\t\t\tif (absValue > this._envelope) {\n\t\t\t\t\t\t\t\tthis._envelope = attack * (this._envelope - absValue) + absValue;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._envelope = release * (this._envelope - absValue) + absValue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\toutput[i] = this._envelope;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tregisterProcessor ('envelope-follower-processor', EnvelopeFollowerProcessor);\n\t\t\t`\n\t\t};\n\n\t\tconst workletPromises = Object.entries(workletDefs).map(async ([name, code]) => {\n\t\t\tconst blob = new Blob([code], { type: 'application/javascript' });\n\t\t\tconst url = URL.createObjectURL(blob);\n\t\t\ttry {\n\t\t\t\tawait audioContext.audioWorklet.addModule(url);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(`Failed to load worklet: ${name}`, e);\n\t\t\t} finally {\n\t\t\t\t// Revoke the blob URL to prevent memory leak\n\t\t\t\tURL.revokeObjectURL(url);\n\t\t\t}\n\t\t});\n\n\t\tconst readyPromise = Promise.all(workletPromises);\n\n\t\tthis.workletReadyPromises.set(audioContext, readyPromise);\n\n\t\treturn readyPromise;\n\t}\n\n\t/**\n\t * @param audioContext - The Web Audio API AudioContext.\n\t * @param buffer - The decoded audio data to play.\n\t * @param options - Configuration options.\n\t */\n\tconstructor (audioContext: AudioContext, buffer: AudioBuffer, { outputNode = null, effects = {}, loop = false, paused = false, volume = 1 }: AudioPlayerOptions = {}) {\n\t\tthis.audioContext = audioContext;\n\t\tthis.buffer = buffer;\n\t\tthis.effectsConfig = effects;\n\t\tthis._loop = loop;\n\t\tthis._isPaused = paused;\n\n\t\tthis.gainNode = outputNode || this.audioContext.createGain();\n\t\tthis._volume = volume;\n\t\tthis.gainNode.gain.value = volume;\n\t}\n\n\tprivate createSourceNode (): AudioBufferSourceNode {\n\t\t// Disconnect and release any existing resources first.\n\t\tthis.cleanup();\n\n\t\tconst source = this.audioContext.createBufferSource();\n\t\tsource.buffer = this.buffer;\n\t\tsource.loop = this._loop;\n\n\t\tsource.onended = () => {\n\t\t\t// Ignore if it was stopped manually, which sets onended to null\n\t\t\tif (source.onended === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._isPlaying = false;\n\n\t\t\t// Do not mark end as paused\n\t\t\tthis._isPaused = false;\n\t\t\tthis.cleanup();\n\n\t\t\tif (typeof this.onended === 'function') {\n\t\t\t\tthis.onended();\n\t\t\t}\n\t\t};\n\n\t\treturn source;\n\t}\n\n\tprivate createEffectChain (): void {\n\t\tlet currentNode: AudioNode = this.sourceNode!;\n\t\tthis.stoppableResources = [];\n\t\tthis.effectChainNodes = [];\n\n\t\tfor (const [id, params] of Object.entries(this.effectsConfig)) {\n\t\t\tconst configuration = AudioPlayer.effect(id);\n\n\t\t\tif (!configuration) {\n\t\t\t\tconsole.warn(`Unknown effect type: ${id}`);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst effect = configuration.create(this.audioContext, params || {});\n\t\t\t\tlet effectNode: AudioNode;\n\n\t\t\t\t// Handle complex effects that return an object with a node and lifecycle methods\n\t\t\t\tif (effect && typeof (effect as AudioEffectResult).node !== 'undefined') {\n\t\t\t\t\tconst complexEffect = effect as AudioEffectResult;\n\t\t\t\t\teffectNode = complexEffect.node;\n\t\t\t\t\tif (typeof complexEffect.stop === 'function' || typeof complexEffect.disconnect === 'function') {\n\t\t\t\t\t\tthis.stoppableResources.push(complexEffect);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\teffectNode = effect as AudioNode;\n\t\t\t\t}\n\n\t\t\t\tif (effectNode instanceof AudioNode) {\n\t\t\t\t\tcurrentNode.connect(effectNode);\n\t\t\t\t\tcurrentNode = effectNode;\n\t\t\t\t\tthis.effectChainNodes.push(effectNode);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(`Error creating effect '${id}':`, error);\n\t\t\t}\n\t\t}\n\n\t\t// Connect the end of the chain to the main gain node\n\t\tcurrentNode.connect(this.gainNode);\n\t}\n\n\tprivate cleanup (): void {\n\t\t// Stop any oscillators or other managed resources from effects\n\t\tthis.stoppableResources.forEach(resource => {\n\t\t\tif (resource.stop) {\n\t\t\t\tresource.stop();\n\t\t\t}\n\n\t\t\tif (resource.disconnect) {\n\t\t\t\tresource.disconnect();\n\t\t\t}\n\t\t});\n\n\t\tthis.stoppableResources = [];\n\n\t\t// Disconnect all effect nodes\n\t\tthis.effectChainNodes.forEach(node => node.disconnect());\n\t\tthis.effectChainNodes = [];\n\n\t\t// Disconnect and nullify the source node\n\t\tif (this.sourceNode) {\n\t\t\t// Setting onended to null prevents the callback from firing on a manual stop\n\t\t\tthis.sourceNode.onended = null;\n\n\t\t\ttry {\n\t\t\t\tthis.sourceNode.stop(0);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('Error stopping source node:', e);\n\t\t\t}\n\n\t\t\tthis.sourceNode.disconnect();\n\t\t\tthis.sourceNode = null;\n\t\t}\n\t}\n\n\tasync play (): Promise {\n\t\tif (this._isPlaying) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Ensure worklets are ready before trying to create nodes that might use them\n\t\tconst readyPromise = AudioPlayer.workletReadyPromises.get(this.audioContext) || Promise.resolve([]);\n\n\t\ttry {\n\t\t\tawait readyPromise;\n\n\t\t\tif (this.audioContext.state === 'suspended') {\n\t\t\t\tawait this.audioContext.resume();\n\t\t\t}\n\n\t\t\tthis.sourceNode = this.createSourceNode();\n\n\t\t\tconst offset = this._isPaused ? this.pausedAt : 0;\n\t\t\tthis.startedAt = this.audioContext.currentTime - offset;\n\n\t\t\tthis.createEffectChain();\n\n\t\t\tthis.sourceNode.start(0, offset);\n\n\t\t\tthis._isPlaying = true;\n\t\t\tthis._isPaused = false;\n\t\t} catch (error) {\n\t\t\tconsole.error('Error during playback:', error);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tpause (): void {\n\t\tif (!this._isPlaying) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.pausedAt = this.audioContext.currentTime - this.startedAt;\n\t\tthis._isPlaying = false;\n\t\tthis._isPaused = true;\n\n\t\t// This will call onended, which we suppress, and then we clean up.\n\t\tthis.cleanup();\n\t}\n\n\tstop (): void {\n\t\tif (!this.sourceNode && !this._isPlaying) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.pausedAt = 0;\n\t\tthis.startedAt = 0;\n\t\tthis._isPlaying = false;\n\t\tthis._isPaused = false;\n\n\t\tthis.cleanup();\n\t}\n\n\tget volume (): number {\n\t\treturn this._volume;\n\t}\n\n\tset volume (value: number) {\n\t\tthis._volume = value;\n\t\tthis.gainNode.gain.setValueAtTime(value, this.audioContext.currentTime);\n\t}\n\n\tget loop (): boolean {\n\t\treturn this._loop;\n\t}\n\n\tset loop (value: boolean) {\n\t\tthis._loop = value;\n\t\tif (this.sourceNode) {\n\t\t\tthis.sourceNode.loop = value;\n\t\t}\n\t}\n\n\tget isPlaying (): boolean {\n\t\treturn this._isPlaying;\n\t}\n\n\tget isPaused (): boolean {\n\t\treturn this._isPaused;\n\t}\n\n\tget paused (): boolean {\n\t\treturn this._isPaused;\n\t}\n\n\tget ended (): boolean {\n\t\treturn !this._isPlaying && !this._isPaused;\n\t}\n\n\tget hasEnded (): boolean {\n\t\treturn !this._isPlaying && !this._isPaused;\n\t}\n\n\tget duration (): number {\n\t\treturn this.buffer.duration;\n\t}\n\n\tget currentTime (): number {\n\t\tif (this._isPaused) {\n\t\t\treturn this._loop ? this.pausedAt % this.duration : this.pausedAt;\n\t\t}\n\t\tif (this._isPlaying) {\n\t\t\tconst elapsed = this.audioContext.currentTime - this.startedAt;\n\t\t\treturn this._loop ? elapsed % this.duration : elapsed;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tset currentTime (value: number) {\n\t\tif (value < 0 || value > this.duration) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst wasPlaying = this._isPlaying;\n\n\t\tif (wasPlaying) {\n\t\t\tthis.cleanup();\n\t\t}\n\n\t\tthis.pausedAt = value;\n\t\tthis._isPaused = true;\n\t\tthis._isPlaying = false;\n\n\t\tif (wasPlaying) {\n\t\t\tthis.play();\n\t\t}\n\t}\n\n\tget output (): GainNode {\n\t\treturn this.gainNode;\n\t}\n\n\tprivate _targetVolume: number = 1;\n\n\tasync fadeIn (duration: number, targetVolume?: number): Promise {\n\t\tif (!this._isPlaying) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Use provided target volume, or stored target volume, or current volume\n\t\tconst target = targetVolume ?? this._targetVolume;\n\t\tthis._targetVolume = target;\n\n\t\tconst startTime = this.audioContext.currentTime;\n\t\tconst endTime = startTime + duration;\n\n\t\t// Start from 0 (or current value if already partially faded) and ramp to target\n\t\tthis.gainNode.gain.setValueAtTime(0, startTime);\n\t\tthis.gainNode.gain.linearRampToValueAtTime(target, endTime);\n\n\t\t// Wait for the fade to complete\n\t\tawait new Promise(resolve => setTimeout(resolve, duration * 1000));\n\n\t\t// Update tracked volume after fade completes\n\t\tthis._volume = target;\n\t}\n\n\tasync fadeOut (duration: number, stopAfterFade: boolean = false): Promise {\n\t\tif (!this._isPlaying) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Save current volume as target for potential fadeIn later\n\t\tthis._targetVolume = this._volume;\n\n\t\tconst startTime = this.audioContext.currentTime;\n\t\tconst endTime = startTime + duration;\n\n\t\tthis.gainNode.gain.setValueAtTime(this._volume, startTime);\n\t\tthis.gainNode.gain.linearRampToValueAtTime(0, endTime);\n\n\t\t// Wait for the fade to complete\n\t\tawait new Promise(resolve => setTimeout(resolve, duration * 1000));\n\n\t\t// Update tracked volume after fade completes\n\t\tthis._volume = 0;\n\n\t\t// Optionally stop the audio after fade completes\n\t\tif (stopAfterFade) {\n\t\t\tthis.stop();\n\t\t}\n\t}\n\n\tdestroy (): void {\n\t\tthis.stop();\n\t\tthis.gainNode.disconnect();\n\t\tthis.onended = null;\n\t}\n}\n\n// Register built-in effects\nAudioPlayer.effect('filter', {\n\tdescription: 'Applies a Biquad filter (lowpass, highpass, etc.)',\n\tparams: ['type', 'frequency', 'Q', 'gain'],\n\tcreate: (audioContext, { type = 'lowpass', frequency = 800, Q = 1, gain = 0 }) => {\n\t\tconst filter = audioContext.createBiquadFilter();\n\n\t\tfilter.type = type as BiquadFilterType;\n\t\tfilter.frequency.value = frequency as number;\n\t\tfilter.Q.value = Q as number;\n\t\tfilter.gain.value = gain as number;\n\n\t\treturn filter;\n\t},\n});\n\nAudioPlayer.effect('delay', {\n\tdescription: 'A simple delay effect',\n\tparams: ['time', 'feedback', 'mix'],\n\tcreate: (audioContext, { time = 0.4, feedback = 0.5, mix = 0.5 }) => {\n\t\tconst delayNode = audioContext.createDelay(5.0);\n\t\tconst feedbackGain = audioContext.createGain();\n\t\tconst wetGain = audioContext.createGain();\n\t\tconst dryGain = audioContext.createGain();\n\t\tconst merger = audioContext.createChannelMerger(1);\n\n\t\tdelayNode.delayTime.value = time as number;\n\t\tfeedbackGain.gain.value = feedback as number;\n\t\twetGain.gain.value = mix as number;\n\t\tdryGain.gain.value = 1 - (mix as number);\n\n\t\tdelayNode.connect(feedbackGain);\n\t\tfeedbackGain.connect(delayNode);\n\n\t\tconst inputGain = audioContext.createGain();\n\n\t\tinputGain.connect(dryGain);\n\t\tinputGain.connect(delayNode);\n\n\t\tdryGain.connect(merger, 0, 0);\n\t\tdelayNode.connect(wetGain);\n\t\twetGain.connect(merger, 0, 0);\n\n\t\treturn {\n\t\t\tnode: inputGain,\n\t\t\tdisconnect: () => wetGain.disconnect(),\n\t\t};\n\t},\n});\n\nAudioPlayer.effect('compressor', {\n\tdescription: 'Dynamic range compression',\n\tparams: ['threshold', 'knee', 'ratio', 'attack', 'release'],\n\tcreate: (audioContext, { threshold = -24, knee = 30, ratio = 12, attack = 0.003, release = 0.25 }) => {\n\t\tconst compressor = audioContext.createDynamicsCompressor();\n\n\t\tcompressor.threshold.value = threshold as number;\n\t\tcompressor.knee.value = knee as number;\n\t\tcompressor.ratio.value = ratio as number;\n\t\tcompressor.attack.value = attack as number;\n\t\tcompressor.release.value = release as number;\n\n\t\treturn compressor;\n\t},\n});\n\nAudioPlayer.effect('tremolo', {\n\tdescription: 'Modulates the amplitude of the signal',\n\tparams: ['frequency', 'depth'],\n\tcreate: (audioContext, { frequency = 5, depth = 0.8 }) => {\n\t\tconst tremoloGain = audioContext.createGain();\n\n\t\ttremoloGain.gain.value = 1;\n\n\t\tconst lfo = audioContext.createOscillator();\n\n\t\tlfo.type = 'sine';\n\t\tlfo.frequency.value = frequency as number;\n\n\t\tconst lfoGain = audioContext.createGain();\n\n\t\tlfoGain.gain.value = (depth as number) / 2;\n\n\t\tconst offset = audioContext.createConstantSource();\n\n\t\toffset.offset.value = 1 - ((depth as number) / 2);\n\t\toffset.start();\n\n\t\tlfo.connect(lfoGain);\n\t\tlfoGain.connect(tremoloGain.gain);\n\t\toffset.connect(tremoloGain.gain);\n\n\t\tlfo.start();\n\n\t\treturn {\n\t\t\tnode: tremoloGain,\n\t\t\tstop: () => {\n\t\t\t\tlfo.stop();\n\t\t\t\toffset.stop();\n\t\t\t},\n\t\t\tdisconnect: () => {\n\t\t\t\tlfo.disconnect();\n\t\t\t\toffset.disconnect();\n\t\t\t},\n\t\t};\n\t},\n});\n\nAudioPlayer.effect('distortion', {\n\tdescription: 'Applies wave-shaping distortion',\n\tparams: ['amount', 'oversample'],\n\tcreate: (audioContext, { amount = 50, oversample = '4x' }) => {\n\t\tconst waveshaper = audioContext.createWaveShaper();\n\n\t\tconst k = typeof amount === 'number' ? amount : 50;\n\t\tconst n_samples = 44100;\n\t\tconst curve = new Float32Array(n_samples);\n\t\tconst deg = Math.PI / 180;\n\n\t\tfor (let i = 0; i < n_samples; ++i) {\n\t\t\tconst x = i * 2 / n_samples - 1;\n\t\t\tcurve[i] = (3 + k) * x * 20 * deg / (Math.PI + k * Math.abs(x));\n\t\t}\n\n\t\twaveshaper.curve = curve;\n\t\twaveshaper.oversample = oversample as OverSampleType;\n\n\t\treturn waveshaper;\n\t},\n});\n\nAudioPlayer.effect('convreverb', {\n\tdescription: 'Convolution reverb with a generated impulse response',\n\tparams: ['seconds', 'decay', 'reverse'],\n\tcreate: (audioContext, { seconds = 2, decay = 2, reverse = false }) => {\n\t\tconst convolver = audioContext.createConvolver();\n\t\tconst sampleRate = audioContext.sampleRate;\n\t\tconst length = sampleRate * (seconds as number);\n\t\tconst impulse = audioContext.createBuffer(2, length, sampleRate);\n\n\t\tconst impulseL = impulse.getChannelData(0);\n\t\tconst impulseR = impulse.getChannelData(1);\n\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst n = reverse ? length - i : i;\n\t\t\timpulseL[i] = (Math.random() * 2 - 1) * Math.pow(1 - n / length, decay as number);\n\t\t\timpulseR[i] = (Math.random() * 2 - 1) * Math.pow(1 - n / length, decay as number);\n\t\t}\n\n\t\tconvolver.buffer = impulse;\n\t\treturn convolver;\n\t},\n});\n\nAudioPlayer.effect('bitcrusher', {\n\tdescription: 'Reduces bit depth and sample rate of the signal',\n\tparams: ['bits', 'frequency'],\n\tcreate: (audioContext, { bits = 4, frequency = 0.1 }) => {\n\t\ttry {\n\t\t\tif (!audioContext.audioWorklet) {\n\t\t\t\tconsole.warn('AudioWorklet not available, using fallback for bitcrusher');\n\t\t\t\treturn audioContext.createGain();\n\t\t\t}\n\n\t\t\tconst bitcrusherNode = new AudioWorkletNode(audioContext, 'bitcrusher-processor');\n\n\t\t\tbitcrusherNode.parameters.get('bits')!.value = bits as number;\n\t\t\tbitcrusherNode.parameters.get('frequency')!.value = frequency as number;\n\n\t\t\treturn bitcrusherNode;\n\t\t} catch (e) {\n\t\t\tconsole.error('Failed to create Bitcrusher');\n\t\t\tconsole.error(e);\n\n\t\t\treturn audioContext.createGain();\n\t\t}\n\t},\n});\n\nAudioPlayer.effect('autowah', {\n\tdescription: 'An envelope-following filter (auto-wah)',\n\tparams: ['baseFrequency', 'octaves', 'sensitivity', 'Q'],\n\tcreate: (audioContext, { baseFrequency = 100, octaves = 6, sensitivity = 0.5, Q = 10 }) => {\n\t\ttry {\n\t\t\tif (!audioContext.audioWorklet) {\n\t\t\t\tconsole.warn('AudioWorklet not available, using fallback for autowah');\n\t\t\t\treturn audioContext.createGain();\n\t\t\t}\n\n\t\t\tconst filter = audioContext.createBiquadFilter();\n\n\t\t\tfilter.type = 'bandpass';\n\t\t\tfilter.Q.value = Q as number;\n\n\t\t\tconst follower = new AudioWorkletNode(audioContext, 'envelope-follower-processor');\n\n\t\t\tconst scaler = audioContext.createGain();\n\n\t\t\tscaler.gain.value = (baseFrequency as number) * Math.pow(2, octaves as number) * (sensitivity as number);\n\n\t\t\tconst baseFreqNode = audioContext.createConstantSource();\n\n\t\t\tbaseFreqNode.offset.value = baseFrequency as number;\n\t\t\tbaseFreqNode.start();\n\n\t\t\tconst inputGain = audioContext.createGain();\n\n\t\t\tinputGain.connect(filter);\n\t\t\tinputGain.connect(follower);\n\n\t\t\tfollower.connect(scaler);\n\t\t\tscaler.connect(filter.frequency);\n\t\t\tbaseFreqNode.connect(filter.frequency);\n\n\t\t\treturn {\n\t\t\t\tnode: inputGain,\n\t\t\t\tstop: () => baseFreqNode.stop(),\n\t\t\t\tdisconnect: () => {\n\t\t\t\t\tfollower.disconnect();\n\t\t\t\t\tscaler.disconnect();\n\t\t\t\t\tbaseFreqNode.disconnect();\n\t\t\t\t}\n\t\t\t};\n\t\t} catch (e) {\n\t\t\tconsole.error('Failed to create AutoWah');\n\t\t\tconsole.error(e);\n\n\t\t\treturn audioContext.createGain();\n\t\t}\n\t}\n});\n\nAudioPlayer.effect('panner', {\n\tdescription: 'Positions the sound in 3D space',\n\tparams: ['x', 'y', 'z'],\n\tcreate: (audioContext, { x = 0, y = 0, z = 0 }) => {\n\t\tconst panner = audioContext.createPanner();\n\n\t\tpanner.panningModel = 'HRTF';\n\t\tpanner.positionX.value = x as number;\n\t\tpanner.positionY.value = y as number;\n\t\tpanner.positionZ.value = z as number;\n\n\t\treturn panner;\n\t}\n});\n\nAudioPlayer.effect('phaser', {\n\tdescription: 'A sweeping phase-shifting effect',\n\tparams: ['frequency', 'depth', 'feedback', 'stages'],\n\tcreate: (audioContext, { frequency = 0.5, depth = 1000, feedback = 0.5, stages = 4 }) => {\n\t\tconst inputGain = audioContext.createGain();\n\t\tconst feedbackGain = audioContext.createGain();\n\n\t\tfeedbackGain.gain.value = feedback as number;\n\n\t\tconst filters: BiquadFilterNode[] = [];\n\n\t\tfor (let i = 0; i < (stages as number); i++) {\n\t\t\tconst filter = audioContext.createBiquadFilter();\n\n\t\t\tfilter.type = 'allpass';\n\t\t\tfilter.frequency.value = 1000;\n\t\t\tfilters.push(filter);\n\t\t}\n\n\t\tconst lfo = audioContext.createOscillator();\n\n\t\tlfo.type = 'sine';\n\t\tlfo.frequency.value = frequency as number;\n\n\t\tconst lfoGain = audioContext.createGain();\n\n\t\tlfoGain.gain.value = depth as number;\n\n\t\tlfo.connect(lfoGain);\n\t\tfilters.forEach(f => lfoGain.connect(f.frequency));\n\n\t\tinputGain.connect(filters[0]);\n\n\t\tfor (let i = 0; i < (stages as number) - 1; i++) {\n\t\t\tfilters[i].connect(filters[i + 1]);\n\t\t}\n\n\t\tconst lastFilter = filters[(stages as number) - 1];\n\t\tlastFilter.connect(feedbackGain);\n\t\tfeedbackGain.connect(filters[0]);\n\n\t\tconst merger = audioContext.createChannelMerger(1);\n\t\tinputGain.connect(merger, 0, 0);\n\t\tlastFilter.connect(merger, 0, 0);\n\n\t\tlfo.start();\n\n\t\treturn {\n\t\t\tnode: inputGain,\n\t\t\tstop: () => lfo.stop(),\n\t\t\tdisconnect: () => {\n\t\t\t\tlfo.disconnect();\n\t\t\t\tmerger.disconnect();\n\t\t\t},\n\t\t};\n\t}\n});\n\nAudioPlayer.effect('chorus', {\n\tdescription: 'Creates a thicker sound by modulating a delayed signal',\n\tparams: ['frequency', 'delay', 'depth', 'mix'],\n\tcreate: (audioContext, { frequency = 1.5, delay = 0.025, depth = 0.002, mix = 0.5 }) => {\n\t\tconst inputGain = audioContext.createGain();\n\t\tconst delayNode = audioContext.createDelay(0.1);\n\t\tconst wetGain = audioContext.createGain();\n\t\tconst dryGain = audioContext.createGain();\n\n\t\tconst lfo = audioContext.createOscillator();\n\n\t\tlfo.type = 'sine';\n\t\tlfo.frequency.value = frequency as number;\n\n\t\tconst lfoGain = audioContext.createGain();\n\n\t\tlfoGain.gain.value = depth as number;\n\n\t\tdelayNode.delayTime.value = delay as number;\n\t\twetGain.gain.value = mix as number;\n\t\tdryGain.gain.value = 1.0 - (mix as number);\n\n\t\tlfo.connect(lfoGain);\n\t\tlfoGain.connect(delayNode.delayTime);\n\n\t\tinputGain.connect(delayNode);\n\t\tinputGain.connect(dryGain);\n\t\tdelayNode.connect(wetGain);\n\n\t\tconst merger = audioContext.createChannelMerger(1);\n\n\t\tdryGain.connect(merger);\n\t\twetGain.connect(merger);\n\n\t\tlfo.start();\n\n\t\treturn {\n\t\t\tnode: inputGain,\n\t\t\tstop: () => lfo.stop(),\n\t\t\tdisconnect: () => {\n\t\t\t\tlfo.disconnect();\n\t\t\t\tmerger.disconnect();\n\t\t\t}\n\t\t};\n\t},\n});\n\nAudioPlayer.effect('wah', {\n\tdescription: 'A sweeping filter effect, like a guitar wah-wah pedal',\n\tparams: ['baseFrequency', 'Q', 'depth', 'frequency'],\n\tcreate: (audioContext, { baseFrequency = 350, Q = 15, depth = 1500, frequency = 2 }) => {\n\t\tconst filter = audioContext.createBiquadFilter();\n\n\t\tfilter.type = 'bandpass';\n\t\tfilter.Q.value = Q as number;\n\n\t\tconst lfo = audioContext.createOscillator();\n\n\t\tlfo.type = 'sine';\n\t\tlfo.frequency.value = frequency as number;\n\n\t\tconst lfoGain = audioContext.createGain();\n\n\t\tlfoGain.gain.value = depth as number;\n\n\t\tconst baseFreqNode = audioContext.createConstantSource();\n\n\t\tbaseFreqNode.offset.value = baseFrequency as number;\n\t\tbaseFreqNode.start();\n\n\t\tlfo.connect(lfoGain);\n\t\tlfoGain.connect(filter.frequency);\n\t\tbaseFreqNode.connect(filter.frequency);\n\n\t\tlfo.start();\n\n\t\treturn {\n\t\t\tnode: filter,\n\t\t\tstop: () => {\n\t\t\t\tlfo.stop();\n\t\t\t\tbaseFreqNode.stop();\n\t\t\t},\n\t\t\tdisconnect: () => {\n\t\t\t\tlfo.disconnect();\n\t\t\t\tbaseFreqNode.disconnect();\n\t\t\t},\n\t\t};\n\t}\n});\n\nAudioPlayer.effect('ringmod', {\n\tdescription: 'Ring modulation for creating metallic, bell-like sounds',\n\tparams: ['frequency', 'mix'],\n\tcreate: (audioContext, { frequency = 30, mix = 0.5 }) => {\n\t\tconst inputGain = audioContext.createGain();\n\t\tconst ringMod = audioContext.createGain();\n\t\tconst wetGain = audioContext.createGain();\n\t\tconst dryGain = audioContext.createGain();\n\n\t\tconst modulator = audioContext.createOscillator();\n\n\t\tmodulator.type = 'sine';\n\t\tmodulator.frequency.value = frequency as number;\n\n\t\twetGain.gain.value = mix as number;\n\t\tdryGain.gain.value = 1.0 - (mix as number);\n\t\tringMod.gain.value = 0;\n\n\t\tmodulator.connect(ringMod.gain);\n\t\tinputGain.connect(ringMod);\n\n\t\tconst merger = audioContext.createChannelMerger(1);\n\n\t\tinputGain.connect(dryGain);\n\t\tringMod.connect(wetGain);\n\t\tdryGain.connect(merger);\n\t\twetGain.connect(merger);\n\n\t\tmodulator.start();\n\n\t\treturn {\n\t\t\tnode: inputGain,\n\t\t\tstop: () => modulator.stop(),\n\t\t\tdisconnect: () => {\n\t\t\t\tmodulator.disconnect();\n\t\t\t\tmerger.disconnect();\n\t\t\t},\n\t\t};\n\t},\n});\n\nAudioPlayer.effect('saturator', {\n\tdescription: 'Soft clipping for warmth and harmonics',\n\tparams: ['drive'],\n\tcreate: (audioContext, { drive = 5 }) => {\n\t\tconst waveshaper = audioContext.createWaveShaper();\n\t\tconst curve = new Float32Array(44100);\n\n\t\tfor (let i = 0; i < 44100; i++) {\n\t\t\tconst x = (i * 2) / 44100 - 1;\n\t\t\tcurve[i] = Math.tanh(x * (drive as number));\n\t\t}\n\n\t\twaveshaper.curve = curve;\n\n\t\treturn waveshaper;\n\t},\n});\n\nAudioPlayer.effect('limiter', {\n\tdescription: 'A hard compressor to prevent signal peaks from exceeding a threshold',\n\tparams: ['threshold', 'release'],\n\tcreate: (audioContext, { threshold = -1.0, release = 0.05 }) => {\n\t\tconst limiter = audioContext.createDynamicsCompressor();\n\n\t\tlimiter.threshold.value = threshold as number;\n\t\tlimiter.knee.value = 0;\n\t\tlimiter.ratio.value = 20;\n\t\tlimiter.attack.value = 0.001;\n\t\tlimiter.release.value = release as number;\n\n\t\treturn limiter;\n\t},\n});\n\nAudioPlayer.effect('fadein', {\n\tdescription: 'Fade in effect that gradually increases volume from 0 to target',\n\tparams: ['duration'],\n\tcreate: (audioContext, { duration = 1.0 }) => {\n\t\tconst gainNode = audioContext.createGain();\n\n\t\tgainNode.gain.setValueAtTime(0, audioContext.currentTime);\n\t\tgainNode.gain.linearRampToValueAtTime(1, audioContext.currentTime + (duration as number));\n\n\t\treturn gainNode;\n\t},\n});\n\nAudioPlayer.effect('fadeout', {\n\tdescription: 'Fade out effect that gradually decreases volume to 0',\n\tparams: ['duration'],\n\tcreate: (audioContext, { duration = 1.0 }) => {\n\t\tconst gainNode = audioContext.createGain();\n\n\t\tgainNode.gain.setValueAtTime(1, audioContext.currentTime);\n\t\tgainNode.gain.linearRampToValueAtTime(0, audioContext.currentTime + (duration as number));\n\n\t\treturn gainNode;\n\t},\n});\n\nexport default AudioPlayer;\n", + "import {\n $_,\n $_ready,\n Space,\n Platform,\n Preload,\n FileSystem,\n Debug\n} from '@aegis-framework/artemis';\nimport type { DOM, EventCallback } from '@aegis-framework/artemis';\nimport { Registry } from '@aegis-framework/pandora';\nimport { FancyError } from './lib/FancyError';\nimport AudioPlayer from './lib/AudioPlayer';\nimport type { StaticComponent, StaticAction, Character, GameSettings, PlayerPreferences, StateMap, HistoryMap, GlobalsMap, ActionInstance, StorageInterface } from './lib/types';\nimport deeply from 'deeply';\nimport { version } from '../package.json';\nimport { Random, browserCrypto } from 'random-js';\n\n// TODO: We need to decouple these.\nimport type TypeWriterComponent from './components/type-writer';\nimport type PreloadAction from './actions/Preload';\n\nimport type { VisualNovelEngine } from './lib/types/Monogatari';\nimport { characters as _characters, character as _character } from './engine/characters';\nimport {\n translateString,\n localize as _localize,\n translate as _translate,\n replaceVariables as _replaceVariables,\n translations as _translations,\n translation as _translation,\n languageMetadata as _languageMetadata,\n} from './engine/i18n';\n\nimport {\n assets as _assets,\n asset as _asset,\n audioBufferCache as _audioBufferCache,\n audioBufferUncache as _audioBufferUncache,\n audioBufferClearCache as _audioBufferClearCache,\n imageCache as _imageCache,\n imageUncache as _imageUncache,\n imageClearCache as _imageClearCache,\n clearAllCaches as _clearAllCaches,\n cacheInServiceWorker as _cacheInServiceWorker,\n isInServiceWorkerCache as _isInServiceWorkerCache,\n getFromServiceWorkerCache as _getFromServiceWorkerCache,\n serializeAudioBuffer as _serializeAudioBuffer,\n deserializeAudioBuffer as _deserializeAudioBuffer,\n audioBufferSpace as _audioBufferSpace,\n isIndexedDBAvailable as _isIndexedDBAvailable,\n storeAudioBufferPersistent as _storeAudioBufferPersistent,\n getAudioBufferPersistent as _getAudioBufferPersistent,\n removeAudioBufferPersistent as _removeAudioBufferPersistent,\n clearAudioBufferPersistent as _clearAudioBufferPersistent,\n} from './engine/assets';\n\nimport {\n keyboardShortcut as _keyboardShortcut,\n registerListener as _registerListener,\n unregisterListener as _unregisterListener,\n runListener as _runListener,\n} from './engine/input';\n\nimport {\n showAlert as _showAlert,\n dismissAlert as _dismissAlert,\n playAmbient as _playAmbient,\n stopAmbient as _stopAmbient,\n showMainScreen as _showMainScreen,\n showSplashScreen as _showSplashScreen,\n autoPlay as _autoPlay,\n distractionFree as _distractionFree,\n skip as _skip,\n showScreen as _showScreen,\n hideScreens as _hideScreens,\n resize as _resize,\n goBack as _goBack,\n displayInitialScreen as _displayInitialScreen,\n} from './engine/ui';\n\nimport {\n gameObject as _gameObject,\n saveTo as _saveTo,\n resetGame as _resetGame,\n upgrade as _upgrade,\n setupStorage as _setupStorage,\n loadFromSlot as _loadFromSlot,\n} from './engine/persistence';\n\nimport {\n assertAsync as _assertAsync,\n next as _next,\n previous as _previous,\n prepareAction as _prepareAction,\n revert as _revert,\n run as _run,\n proceed as _proceed,\n rollback as _rollback,\n shouldProceed as _shouldProceed,\n willProceed as _willProceed,\n stopTyping as _stopTyping,\n shouldRollback as _shouldRollback,\n willRollback as _willRollback,\n} from './engine/lifecycle';\n\n// Declare MonogatariDebug as a global variable (set by debug module when loaded)\ndeclare const MonogatariDebug: object | undefined;\n\n// Extend Window interface for Cypress\ndeclare global {\n interface Window {\n Cypress?: unknown;\n }\n}\n\n/**\n * Overcome the `this` is undefined\n */\nconst merge = deeply.bind({});\n\n/**\n * Every Monogatari Game is composed mainly of the following items:\n *\n * Actions: The list of capabilities a Monogatari script can run.\n *\n * Components: The list of screens and other HTML elements available in the game.\n *\n * State: The current state of the game, this simple object contains the current\n * label and step as well as the things being shown or played by every action.\n *\n * History: Every action and even components may keep a history on what statements\n *\t\t\thave been applied. The history is\n *\n * Assets: The list of different assets declared by the developer to use in throughout\n * \t\t the game.\n *\n * Script: All the labels and statements that make up the story and game play.\n *\n * Characters: The list of characters that participate in the script of the game.\n *\n * Monogatari follows a 3-step life cycle:\n *\n * 1. Setup - All needed elements are added to the DOM and all variables get\n * \t\t\t initialized. This first step is all about preparing all the needed\n * \t\t\t elements.\n *\n * 2. Bind - Once the game has been setup, its time to bind all the necessary\n * event listeners or perform more operations on the DOM.\n *\n * 3. Init - Finally, once the game was setup and it performed all the needed\n * bindings, it may declare or modify variables that needed the HTML to\n * be setup first or perform any other needed final operations. In this\n * \t\t\t step, all needed elements will now be shown and the game will begin.\n *\n */\nclass Monogatari {\n\n /**\n * Returns the class typed as VisualNovelEngine.\n * This enables type-safe access while allowing external users to extend\n * the VisualNovelEngine interface via declaration merging.\n *\n * @internal\n */\n private static asEngine(): VisualNovelEngine {\n return this as unknown as VisualNovelEngine;\n }\n\n static _languageMetadata: Record = {};\n static _events: Record = {};\n\n static _selector = '#monogatari';\n\n static _actions: StaticAction[] = [];\n static _components: StaticComponent[] = [];\n static _translations: Record> = {};\n static _script: Record = {};\n static _characters: Record = {};\n static _storage: Record = {};\n\n // Web Audio API context for audio playback with effects\n static audioContext: AudioContext | undefined;\n\n // Asset caches for decoded audio and images\n static _audioBufferCache: Map = new Map();\n static _imageCache: Map = new Map();\n\n // Persistent audio buffer storage\n static _audioBufferSpace: Space | null = null;\n\n // Track IndexedDB availability: null = not checked, true = available, false = unavailable\n static _indexedDBAvailable: boolean | null = null;\n\n // Whether the developer has overridden the default onSaveScreenshot callback\n static _hasCustomSaveScreenshot = false;\n\n static Storage: StorageInterface = new Space () as unknown as StorageInterface;\n\n // Screenshot callbacks with defaults. Override to customize screenshot storage.\n private static _onSaveScreenshot: (slotKey: string, blob: Blob) => Promise = async (slotKey, blob) => {\n await Monogatari.Storage.set(`${slotKey}__screenshot`, blob);\n\n return `${slotKey}__screenshot`;\n };\n\n static get onSaveScreenshot(): (slotKey: string, blob: Blob) => Promise {\n return this._onSaveScreenshot;\n }\n\n static set onSaveScreenshot(callback: (slotKey: string, blob: Blob) => Promise) {\n this._onSaveScreenshot = callback;\n\n this._hasCustomSaveScreenshot = true;\n }\n\n static onLoadScreenshot: (key: string) => Promise = async (key) => {\n const blob = await Monogatari.Storage.get(key) as Blob;\n\n return URL.createObjectURL(blob);\n };\n\n static onDeleteScreenshot: (key: string) => Promise = async (key) => {\n await Monogatari.Storage.remove(key);\n };\n\n static _mediaPlayers: Record void }) | (HTMLVideoElement & { stop?: () => void })>> = {\n music: {},\n sound: {},\n voice: {},\n video: {}\n };\n\n static _state: StateMap = {\n step: 0,\n label: 'Start',\n music: [],\n sound: [],\n voice: [],\n scene: '',\n background: '',\n characters: [],\n characterLayers: [],\n images: [],\n particles: '',\n videos: [],\n canvas: [],\n textboxHidden: false,\n };\n\n static _history: HistoryMap = {\n label: [],\n music: [],\n sound: [],\n voice: [],\n scene: [],\n background: [],\n sceneElements: [],\n sceneState: [],\n character: [],\n characterLayer: [],\n image: [],\n particle: [],\n video: [],\n canvas: [],\n nvl: [],\n clear: [],\n choice: [],\n jump: [],\n conditional: [],\n };\n\n static ambientPlayer: HTMLAudioElement | null = null;\n\n static _functions: Record boolean; revert: () => boolean }> = {};\n\n static _$: Record = {};\n\n static _assets: Record> = {\n music: {},\n voices: {},\n sounds: {},\n videos: {},\n images: {},\n scenes: {},\n gallery: {}\n };\n\n // These are the default settings and they are overwritten by the user's settings\n // New elements here will no conflict with the user's settings and allows a better\n // update experience\n static _settings: GameSettings = {\n\n // The name of your game, this will be used to store all the data so once\n // you've released a game using one name, it shouldn't change. Please use the\n // Version Setting to indicate a new release of your game!\n 'Name': 'My Visual Novel',\n\n // The version of your game in semantic versioning (https://semver.org/).\n 'Version': '0.1.0',\n\n // Initial Label *\n 'Label': 'Start',\n\n // Number of AutoSave Slots\n 'Slots': 10,\n\n // Change to true for a MultiLanguage GameScreen.\n 'MultiLanguage': false,\n\n // If the 'Multilanguage' setting is set to `true`. This will enable a\n // language selection screen that will be shown before the asset loading\n // screen. If set to false, the loading screen will appear first instead and\n // players will have to change the language from the settings screen.\n 'LanguageSelectionScreen': true,\n\n // Music for the Main Menu.\n 'MainScreenMusic': '',\n\n // Prefix for the Save Slots in Local Storage.\n 'SaveLabel': 'Save',\n 'AutoSaveLabel': 'AutoSave',\n\n // Turn main menu on/off; Default: true *\n 'ShowMainScreen': true,\n\n // Turn image preloading on/off, Default: true\n 'Preload': true,\n\n // Time interval between autosaves (In Minutes). Default: 0 (Off)\n 'AutoSave': 0,\n\n // Enable service workers; Default: true *\n 'ServiceWorkers': true,\n\n // The Aspect Ratio your background images are on. This has no effect on\n // web deployed novels.\n 'AspectRatio': '16:9',\n\n // Force aspect ratio, it will make all images to comply with aspect ratio.\n // Values: 'None' (don't force), 'Visuals' (force only visuals)\n // or 'Global' (force all game)\n 'ForceAspectRatio': 'None',\n\n // Enables or disables the typing text animation for the whole game.\n 'TypeAnimation': true,\n\n // Enables or disables the typing text animation in NVL dialogs for the\n // whole game.\n 'NVLTypeAnimation': true,\n\n // Enables or disables the typing animation for the narrator.\n // If the previous property was set to false, the narrator won't shown\n // the animation even if this is set to true.\n 'NarratorTypeAnimation': true,\n\n // Enables or disables the typing animation for the special centered\n // character. If the TypeAnimation property was set to false, the centered\n // character won't show the animation even if this is set to true.\n 'CenteredTypeAnimation': true,\n\n // When true, finishing a typing animation (e.g. clicking during text)\n // will instantly show all remaining text rather than fast-forwarding.\n 'InstantText': false,\n\n // Force some orientation on mobile devices. If this setting is set either\n // to portrait or landscape, a warning message will be displayed so the\n // player rotates its device.\n // Possible values: any, portrait or landscape.\n 'Orientation': 'any',\n\n // Allow players to skip through the game. Similar to the auto play feature,\n // skipping will allow players to go through the game really fast.\n // If this value is set to 0, no skipping will be allowed but if it's set\n // to a higher number, skipping will be allowed and that value will be taken\n // as the speed in milliseconds with which the game will skip through the script\n 'Skip': 0,\n\n // Define the directories where the assets are located. The root directory is\n // the holder for the other asset specific directories, this directories are\n // used when retrieving the files on the game.\n 'AssetsPath': {\n 'root': 'assets',\n 'characters': 'characters',\n 'icons': 'icons',\n 'images': 'images',\n 'music': 'music',\n 'scenes': 'scenes',\n 'sounds': 'sounds',\n 'ui': 'ui',\n 'videos': 'videos',\n 'voices': 'voices',\n 'gallery': 'gallery'\n },\n\n // Name of the Splash Screen Label. If a name is given and a label with that\n // name exists on the game's script, it will be used to show a splash screen\n // right after the loading screen.\n 'SplashScreenLabel': '_SplashScreen',\n\n // Define what storage engine should be used to save the game data. *\n // Adapters Available:\n // - LocalStorage: This one is used by default\n // - SessionStorage: Same as LocalStorage but will be cleared when the page\n // \t\t\t\t\t is closed.\n // - IndexedDB: The information is saved using the IndexedDB web API\n // - RemoteStorage: The information will be sent and retrieved from a given\n //\t\t\t\t\tURL Endpoint providing a REST API.\n 'Storage': {\n 'Adapter': 'LocalStorage',\n 'Store': 'GameData',\n 'Endpoint': ''\n },\n\n // Whether players can go back to previous points of the game or not.\n // Default: true\n // If this is set to false, the \"Back\" button on the quick menu will not be\n // shown and the left arrow keyboard shortcut will be disabled.\n 'AllowRollback': true,\n\n // Whether experimental features should be enabled or not. Default: false\n // These features are unfinished and unstable, chances are they will still\n // go through a lot of changes and functionality won't have any backward\n // compatibility rendering your save files unusable on many cases.\n 'ExperimentalFeatures': false,\n\n // Enable screenshot capture for save slots. When true, save slots show a\n // screenshot of the game screen instead of just the scene/background image.\n // Requires IndexedDB adapter or custom onSaveScreenshot/onLoadScreenshot callbacks.\n 'Screenshots': false\n };\n\n static _preferences: PlayerPreferences = {\n\n // Initial Language for Multilanguage Games or for the Default GUI Language.\n 'Language': 'English',\n\n // Initial Volumes from 0.0 to 1.\n 'Volume': {\n 'Music': 1,\n 'Voice': 1,\n 'Sound': 1,\n 'Video': 1\n },\n\n // Initial resolution used for Electron, it must match the settings inside\n // the electron.js file. This has no effect on web deployed novels.\n 'Resolution': '800x600',\n\n // Speed at which dialog text will appear\n 'TextSpeed': 20,\n\n // Speed at which the Auto Play feature will show the next statement\n // It is measured in seconds and starts counting after the text is\n // completely displayed.\n 'AutoPlaySpeed': 5\n };\n\n static _globals: Partial = {\n distraction_free: false,\n delete_slot: null,\n overwrite_slot: null,\n\n playing: false,\n current_auto_save_slot: 1,\n _auto_play_timer: null,\n skip: null,\n _log: [],\n _auto_save_interval: null,\n\n\n _restoring_state: false,\n on_splash_screen: false,\n\n _didSetup: false,\n _didBind: false,\n _didInit: false,\n _engine_block: false,\n\n // TODO: Eventually get rid of these as they are deprecated\n block: false,\n _executing_sub_action: false,\n\n };\n\n static _listeners: Array<{ name: string; keys?: string | string[]; callback: (this: VisualNovelEngine, event: Event, element: DOM) => unknown }> = [];\n\n static _configuration: Record = {\n 'main-menu': {\n buttons: [\n {\n string: 'Start',\n data: {\n action: 'start'\n }\n },\n {\n string: 'Load',\n data: {\n action: 'open-screen',\n open: 'load'\n }\n },\n {\n string: 'Settings',\n data: {\n action: 'open-screen',\n open: 'settings'\n }\n },\n {\n string: 'Help',\n data: {\n action: 'open-screen',\n open: 'help'\n }\n }\n ]\n },\n 'quick-menu': {\n buttons: [\n {\n string: 'Back',\n icon: 'fas fa-arrow-left',\n link: '#',\n data: {\n action: 'back'\n }\n },\n {\n string: 'Hide',\n icon: 'fas fa-eye',\n data: {\n action: 'distraction-free'\n }\n },\n {\n string: 'AutoPlay',\n icon: 'fas fa-play-circle',\n data: {\n action: 'auto-play'\n }\n },\n {\n string: 'Skip',\n icon: 'fas fa-fast-forward',\n data: {\n action: 'skip'\n }\n },\n {\n string: 'Save',\n icon: 'fas fa-save',\n data: {\n action: 'open-screen',\n open: 'save'\n }\n },\n {\n string: 'Load',\n icon: 'fas fa-undo',\n data: {\n action: 'open-screen',\n open: 'load'\n }\n },\n {\n string: 'Settings',\n icon: 'fas fa-cog',\n data: {\n action: 'open-screen',\n open: 'settings'\n }\n },\n {\n string: 'Quit',\n icon: 'fas fa-times-circle',\n data: {\n action: 'end'\n }\n }\n ]\n },\n credits: {}\n };\n\n static _templates: Record = {};\n\n static _upgrade: Record unknown; replaceStorage?: boolean }> = {};\n\n static _temp: Record = {};\n\n static version: string = version;\n\n static _id: string = 'visual-novel';\n\n\n /**\n * @static onStart - This is the main onStart function, it acts as an event\n * listener when the game is started. This function will call its action\n * counterparts.\n *\n * @return {Promise} - The promise is resolved if all action's onStart function\n * was resolved and is rejected if any were rejected.\n */\n static onStart () {\n const promises = [];\n\n for (const component of this.components ()) {\n promises.push (component.onStart ());\n }\n\n for (const action of this.actions ()) {\n promises.push (action.onStart ());\n }\n\n return Promise.all (promises);\n }\n\n /**\n * @static onLoad - This is the main onStart function, it acts as an event\n * listener when a game is loaded. This function will call its action\n * counterparts so that each action is able to run any operations needed\n * when a game is loaded such as restoring their state.\n *\n * @return {Promise} - The promise is resolved is all action's onLoad function\n * was resolved and is rejected if any were rejected.\n */\n static onLoad () {\n const promises = [];\n\n this.global ('_restoring_state', true);\n\n const actions = this.actions ();\n const orders = [...new Set(actions.map(action => action.loadingOrder))].sort();\n\n const loadActions = (actions: StaticAction[], dependency = Promise.resolve()) => {\n return dependency.then(() => {\n const _promises: Promise[] = [];\n for (const action of actions) {\n _promises.push (action.onLoad ());\n }\n return Promise.all(_promises);\n });\n };\n\n let previous: Promise = Promise.resolve();\n\n for (const order of orders) {\n previous = loadActions(actions.filter(a => a.loadingOrder === order), previous as Promise);\n }\n\n promises.push(previous);\n\n for (const component of this.components ()) {\n promises.push (component.onLoad ());\n }\n\n return Promise.all (promises).then ((promises) => {\n this.global ('_restoring_state', false);\n return Promise.resolve (promises);\n });\n }\n\n /**\n * @static width - Determines the real width of the Monogatari element, pretty\n * useful when dealing with canvas or other things that require specific measurements.\n *\n * @return {number} - Computed Width of the element\n */\n static width () {\n return this.element().width();\n }\n\n /**\n * @static height - Determines the real height of the Monogatari element, pretty\n * useful when dealing with canvas or other things that require specific measurements.\n *\n * @return {number} - Computed Width of the element\n */\n static height () {\n return this.element().height();\n }\n\n /**\n * @static debug - If the Monogatari debug file is present, this function\n * will give access to the debug tools that are a replacement for the console\n * log functions.\n *\n * @returns {Debug} - Proxy to the Artemis Debug Class\n */\n static get debug () {\n return new Proxy (Debug, {\n apply (target, receiver, args) {\n if (typeof MonogatariDebug === 'object') {\n return Reflect.apply (target, receiver, args);\n }\n }\n });\n }\n\n static set debug (_) {\n throw new Error ('Debug reference cannot be overriden.');\n }\n\n /**\n * @static string - Gets the translation of a string. This is of course limited\n * to the translations defined for each language using the translation\n * function.\n *\n * @param {string} key - The key of the string whose translation is needed\n *\n * @return {string} - String translation in the current language given the\n * user's preferences.\n */\n static string (key: string): string | undefined {\n return translateString (this.asEngine (), key);\n }\n\n /**\n * @static history - Simple function to access, create and modify history\n * objects. Each history is a simple array.\n *\n * @param {Object|string} [object = null] - Object with which current\n * history object will be updated with (i.e. Object.assign) or a string to access\n * a specific history. If a string is given and that history does not exists,\n * this method will create it for us.\n *\n * @return {type} - If the parameter passed was a string, this function will\n * return the history associated with that name. If no argument was passed,\n * it will return the whole history object containing all histories.\n */\n /**\n * Get the entire history object\n */\n static history(): HistoryMap;\n /**\n * Get a specific history array by key (creates if doesn't exist)\n */\n static history(key: K): HistoryMap[K];\n /**\n * Update history with partial object\n */\n static history(object: Partial): void;\n static history(object?: K | Partial | null): HistoryMap | HistoryMap[K] | void {\n if (object !== null && object !== undefined) {\n if (typeof object === 'string') {\n if (typeof this._history[object] === 'undefined') {\n (this._history as Record)[object] = [];\n }\n return this._history[object];\n } else {\n this._history = Object.assign({}, this._history, object) as HistoryMap;\n }\n } else {\n return this._history;\n }\n }\n\n /**\n * Get the entire state object\n */\n static state(): StateMap;\n /**\n * Get a specific state value by key\n */\n static state(key: K): StateMap[K];\n /**\n * Update state with partial object (triggers willUpdateState/didUpdateState events)\n */\n static state(object: Partial): StateMap;\n static state(object?: K | Partial): StateMap | StateMap[K] {\n if (typeof object === 'string') {\n return this._state[object];\n }\n\n if (typeof object === 'object' && object !== null) {\n const oldState = Object.assign({}, this._state);\n const newState = merge(this._state, object);\n\n this.trigger('willUpdateState', {\n oldState,\n newState\n });\n\n this._state = newState;\n\n this.trigger('didUpdateState', {\n oldState,\n newState: this._state\n });\n }\n\n return this._state;\n }\n\n /**\n * @static registerAction - Register an Action to the actions list. All actions\n * should be registered before calling the init () method so their Mounting\n * cycle is done correctly.\n *\n * @param {Action} action - Action to register. Remember each action must\n * have an unique ID.\n */\n static registerAction (action: StaticAction, naturalPosition = false) {\n action.engine = this.asEngine();\n\n if (naturalPosition) {\n this._actions.push (action);\n } else {\n this._actions.unshift (action);\n }\n }\n\n /**\n * @static unregisterAction - Removes an action from the actions list. Any\n * action you want to remove should be removed before calling the init ()\n * method so that their Mounting cycle is not executed.\n *\n * @param {string} action - ID of the Action to unregister. Remember each action must\n * have an unique ID.\n */\n static unregisterAction (action: string) {\n this._actions = this._actions.filter ((a) => a.id.toLowerCase () !== action.toLowerCase ());\n }\n\n /**\n * @static actions - Returns the list of registered Actions.\n *\n * @return {Action[]} - List of registered Actions\n */\n static actions () {\n /** @type {boolean} */\n const experimentalFeatures = this.setting ('ExperimentalFeatures');\n\n return this._actions.filter(action => {\n return action._experimental === false || experimentalFeatures === true;\n });\n }\n\n /**\n * @static action - Access to an specific action class\n *\n * @param {string} id - ID of the action you want to access to.\n * @return {Action} - Returns the action that matches the given ID\n */\n static action (id: string): StaticAction | undefined {\n return this._actions.find ((a) => a.id.toLowerCase () === id.toLowerCase ());\n }\n\n /**\n * @static registerComponent - Register a Component to the components list.\n * All components should be registered before calling the init () method so\n * their Mounting cycle is done correctly.\n *\n * @param {Component} component - Component to register. Remember each\n * component must have an unique ID.\n */\n static registerComponent (component: StaticComponent) {\n const alreadyRegistered = this.components ().findIndex (c => c.tag === component.tag) > -1;\n\n if (typeof window.customElements.get (component.tag) !== 'undefined') {\n FancyError.show ('engine:component:already_registered', {\n tag: component.tag,\n component: component,\n unregisterCode: `
monogatari.unregisterComponent ('${component.tag}')
`\n });\n }\n\n component.engine = this.asEngine();\n\n if (alreadyRegistered && !this.global ('_didSetup')) {\n // Remove the previous one\n this.unregisterComponent (component.tag);\n } else if (!alreadyRegistered && this.global ('_didSetup')) {\n Registry.register(component.tag, component);\n }\n\n this._components.push (component);\n }\n\n /**\n * @static unregisterComponent - Removes a component from the components list.\n * Any component you want to remove should be removed before calling the\n * init () method so that their Mounting cycle is not executed.\n *\n * @param {string} component - ID of the Component to unregister. Remember\n * each component must have an unique ID.\n */\n static unregisterComponent (component: string) {\n if (!this.global ('_didSetup')) {\n this._components = this.components ().filter ((c) => c.tag.toLowerCase() !== component.toLowerCase());\n } else {\n FancyError.show ('engine:component:unregister_after_setup', {\n component: component\n });\n }\n }\n\n /**\n * @static components - Returns the list of registered Components.\n *\n * @return {Component[]} - List of registered Components\n */\n static components (): StaticComponent[] {\n /** @type {boolean} */\n const experimentalFeatures = this.setting ('ExperimentalFeatures');\n\n return this._components.filter(component => {\n return component._experimental === false || experimentalFeatures === true;\n });\n }\n\n /**\n * @static component - Access to an specific component class\n *\n * @param {string} id - ID of the component you want to access to.\n *\n * @return {Component} - Returns the component class that matches the ID\n */\n static component (id: string) {\n const normalizedId = id.toLowerCase ();\n\n return this.components ().find ((c) => c.tag === normalizedId);\n }\n\n /**\n * @static assets - Simple function to modify and access the assets object,\n * all declared assets such as audio, videos and images should be registered\n * in these objects.\n *\n * @param {string} [type = null] - The type of asset you are referring to\n * @param {Object} [object = null] - The key/value object to assign to that asset type\n *\n * @return {Object} - If this function is called with no arguments, the whole\n * assets object will be returned.\n */\n static assets (type: string | null = null, object: Record | null = null): Record> | Record | undefined {\n return _assets (this.asEngine (), type, object);\n }\n\n static asset (type: string, name: string, value: string | null = null) {\n return _asset (this.asEngine (), type, name, value);\n }\n\n /**\n * Get or set a cached AudioBuffer\n * @param key - Cache key (e.g., 'music/theme')\n * @param buffer - AudioBuffer to cache (if setting)\n * @returns The cached AudioBuffer if getting, undefined otherwise\n */\n static audioBufferCache(key: string): AudioBuffer | undefined;\n static audioBufferCache(key: string, buffer: AudioBuffer): void;\n static audioBufferCache(key?: string, buffer?: AudioBuffer): AudioBuffer | undefined | void {\n return _audioBufferCache(this.asEngine(), key as string, buffer as AudioBuffer);\n }\n\n /**\n * Remove an AudioBuffer from the cache\n * @param key - Cache key to remove\n * @returns true if the key existed and was removed\n */\n static audioBufferUncache(key: string): boolean {\n return _audioBufferUncache(this.asEngine(), key);\n }\n\n /**\n * Clear AudioBuffer cache, optionally filtered by prefix\n * @param pattern - If provided, only clear keys starting with this pattern\n */\n static audioBufferClearCache(pattern?: string): void {\n return _audioBufferClearCache(this.asEngine(), pattern);\n }\n\n /**\n * Get or set a cached HTMLImageElement\n * @param key - Cache key (e.g., 'scenes/forest')\n * @param image - HTMLImageElement to cache (if setting)\n * @returns The cached HTMLImageElement if getting, undefined otherwise\n */\n static imageCache(key: string): HTMLImageElement | undefined;\n static imageCache(key: string, image: HTMLImageElement): void;\n static imageCache(key?: string, image?: HTMLImageElement): HTMLImageElement | undefined | void {\n return _imageCache(this.asEngine(), key as string, image as HTMLImageElement);\n }\n\n /**\n * Remove an HTMLImageElement from the cache\n * @param key - Cache key to remove\n * @returns true if the key existed and was removed\n */\n static imageUncache(key: string): boolean {\n return _imageUncache(this.asEngine(), key);\n }\n\n /**\n * Clear image cache, optionally filtered by prefix\n * @param pattern - If provided, only clear keys starting with this pattern\n */\n static imageClearCache(pattern?: string): void {\n return _imageClearCache(this.asEngine(), pattern);\n }\n\n /**\n * Clear all asset caches (audio and image)\n */\n static clearAllCaches(): void {\n return _clearAllCaches(this.asEngine());\n }\n\n // =========================================================================\n // Service Worker Communication\n // =========================================================================\n\n /**\n * Request the service worker to cache specified asset URLs\n * @param urls - Array of URLs to cache\n * @returns Promise resolving to cache result\n */\n static async cacheInServiceWorker(urls: string[]): Promise<{ success: boolean; cached?: number; total?: number; error?: string }> {\n return _cacheInServiceWorker(urls);\n }\n\n /**\n * Check if an asset URL is cached in the service worker\n * @param url - URL to check\n * @returns Promise resolving to whether the URL is cached\n */\n static async isInServiceWorkerCache(url: string): Promise {\n return _isInServiceWorkerCache(url);\n }\n\n /**\n * Get cached raw data from service worker (for decoding)\n * @param url - URL of the cached asset\n * @returns Promise resolving to ArrayBuffer if found, undefined otherwise\n */\n static async getFromServiceWorkerCache(url: string): Promise {\n return _getFromServiceWorkerCache(url);\n }\n\n /**\n * Serialized AudioBuffer format for IndexedDB storage\n */\n static serializeAudioBuffer(buffer: AudioBuffer): {\n channels: Float32Array[];\n sampleRate: number;\n length: number;\n numberOfChannels: number;\n } {\n return _serializeAudioBuffer(buffer);\n }\n\n /**\n * Reconstruct an AudioBuffer from serialized data\n * This is much faster than re-decoding from raw audio file\n */\n static deserializeAudioBuffer(\n data: { channels: ArrayLike[]; sampleRate: number; length: number; numberOfChannels: number },\n audioContext: AudioContext\n ): AudioBuffer {\n return _deserializeAudioBuffer(data, audioContext);\n }\n\n /**\n * Get the persistent audio buffer Space instance (IndexedDB)\n * Lazily initialized on first access. Returns null if IndexedDB is unavailable.\n */\n static async audioBufferSpace(): Promise {\n return _audioBufferSpace(this.asEngine());\n }\n\n /**\n * Check if IndexedDB is available for audio caching\n * @returns true if available, false if not, null if not yet checked\n */\n static isIndexedDBAvailable(): boolean | null {\n return _isIndexedDBAvailable(this.asEngine());\n }\n\n /**\n * Store a decoded AudioBuffer in persistent storage (IndexedDB)\n * @param key - Cache key (e.g., 'music/theme')\n * @param buffer - AudioBuffer to store\n */\n static async storeAudioBufferPersistent(key: string, buffer: AudioBuffer): Promise {\n return _storeAudioBufferPersistent(this.asEngine(), key, buffer);\n }\n\n /**\n * Retrieve a decoded AudioBuffer from persistent storage (IndexedDB)\n * @param key - Cache key (e.g., 'music/theme')\n * @returns The AudioBuffer if found, undefined otherwise\n */\n static async getAudioBufferPersistent(key: string): Promise {\n return _getAudioBufferPersistent(this.asEngine(), key);\n }\n\n /**\n * Remove an AudioBuffer from persistent storage (IndexedDB)\n * @param key - Cache key to remove\n */\n static async removeAudioBufferPersistent(key: string): Promise {\n return _removeAudioBufferPersistent(this.asEngine(), key);\n }\n\n /**\n * Clear all AudioBuffers from persistent storage (IndexedDB)\n */\n static async clearAudioBufferPersistent(): Promise {\n return _clearAudioBufferPersistent(this.asEngine());\n }\n\n static characters (object: Record | null = null): Record {\n return _characters (this.asEngine (), object);\n }\n\n static character (id: string, object: Partial | null = null): Character | undefined {\n return _character (this.asEngine (), id, object);\n }\n\n static languageMetadata (language: string, object: { code?: string; icon?: string } | null = null): { code: string; icon: string } | Record | undefined {\n return _languageMetadata (this.asEngine (), language, object);\n }\n\n static translations (object: string | Record> | null = null): Record | Record> | undefined {\n return _translations (this.asEngine (), object);\n }\n\n static translation (language: string, strings?: Record): Record {\n return _translation (this.asEngine (), language, strings);\n }\n\n /**\n * Get a setting value by key\n */\n static setting(key: K): GameSettings[K];\n /**\n * Set a setting value by key\n */\n static setting(key: K, value: GameSettings[K]): GameSettings[K];\n static setting(key: K, value?: GameSettings[K] | null): GameSettings[K] {\n if (value !== undefined && value !== null) {\n this._settings[key] = value;\n return this._settings[key];\n }\n\n if (typeof this._settings[key] !== 'undefined') {\n return this._settings[key];\n }\n\n throw new Error(`Tried to access non existent setting with name '${key}'.`);\n }\n\n static settings (object: Partial | null = null): GameSettings {\n if (object !== null) {\n this._settings = merge (this._settings, object);\n }\n\n return this._settings;\n }\n\n /**\n * Get a preference value by key\n */\n static preference(key: K): PlayerPreferences[K];\n /**\n * Set a preference value by key\n */\n static preference(key: K, value: PlayerPreferences[K]): PlayerPreferences[K];\n static preference(key: K, value?: PlayerPreferences[K] | null): PlayerPreferences[K] {\n if (value !== undefined && value !== null) {\n this._preferences[key] = value;\n this.Storage.update('Settings', this._preferences);\n\n return this._preferences[key];\n }\n\n if (typeof this._preferences[key] !== 'undefined') {\n return this._preferences[key];\n }\n\n throw new Error(`Tried to access non existent preference with name '${key}'.`);\n }\n\n static preferences (object: Partial | null = null, save = false): PlayerPreferences {\n if (object !== null) {\n\n this._preferences = merge (this._preferences, object);\n\n const storageConfig = this.Storage.configuration ();\n\n if (!storageConfig || storageConfig.name === '') {\n this.setupStorage ();\n }\n\n if (save === true) {\n this.Storage.update ('Settings', this._preferences);\n }\n }\n\n return this._preferences;\n }\n\n /**\n * Get or set the configuration.\n *\n * @param {string|object} key\n * @param {object} object\n */\n static configuration (key?: string | Record, object?: Record): unknown {\n if (typeof key === 'string') {\n if (typeof object !== 'undefined') {\n this.trigger ('configurationElementWillUpdate');\n\n this.trigger (`configurationElementUpdate::${key}`, {\n newConfiguration: object,\n oldConfiguration: this._configuration[key]\n });\n\n if (typeof this._configuration[key] !== 'object' || this._configuration[key] === null) {\n this._configuration[key] = {};\n }\n\n this._configuration[key] = merge (this._configuration[key] as object, object);\n\n this.trigger ('configurationElementDidUpdate');\n }\n return this._configuration[key];\n } else if (typeof key === 'object') {\n this.trigger ('configurationWillUpdate');\n this._configuration = merge (this._configuration, object ?? {});\n this.trigger ('configurationDidUpdate');\n return this._configuration;\n } else if (typeof key === 'undefined') {\n return this._configuration;\n }\n }\n\n static storage (object: string | Record | null = null): unknown {\n if (object !== null) {\n if (typeof object === 'string') {\n return this._storage[object];\n } else {\n this._storage = merge (this._storage, object) as Record;\n }\n } else {\n return this._storage;\n }\n }\n\n static script (object: string | Record | null = null): unknown {\n const language = this.preference ('Language') as string;\n\n if (typeof object === 'object' && object !== null) {\n this._script = Object.assign ({}, this._script, object);\n } else {\n let script: Record = this._script;\n\n if (this.setting ('MultiLanguage') === true) {\n if (!Object.keys (script).includes (language)) {\n // First check if the label exists in the current script\n FancyError.show ('engine:script:language_not_found', {\n language: language,\n multiLanguageSetting: 'The Multilanguage Setting is set to '+ this.setting ('MultiLanguage'),\n availableLanguages: Object.keys (script)\n });\n } else {\n script = script[language] as Record;\n }\n }\n\n if (typeof object === 'string') {\n script = script[object] as Record;\n }\n\n return script;\n }\n }\n\n static label (): unknown[];\n static label (key: string): unknown;\n static label (key: string, language: Record): void;\n static label (key: string, language: string, value: unknown[]): void;\n static label (key: string | null = null, language: string | Record | null = null, value: unknown[] | null = null): unknown {\n if (typeof language === 'string' && value !== null && key !== null) {\n if (typeof this._script[language] !== 'object') {\n this._script[language] = {};\n }\n (this._script[language] as Record)[key] = value;\n } else if (typeof language === 'object' && language !== null && value === null && key !== null) {\n if (typeof this._script[key] !== 'object') {\n this._script[key] = [];\n }\n this._script[key] = language;\n } else if (typeof language === 'string' && value === null && key !== null) {\n return (this._script[language] as Record)?.[key];\n } else if (key !== null) {\n return this.script (key);\n } else {\n const labelState = this.state ('label') as string;\n return this.script (labelState);\n }\n }\n\n static fn (name: string, { apply = () => true, revert = () => true }: { apply?: () => boolean; revert?: () => boolean } = {}): { apply: () => boolean; revert: () => boolean } {\n if (typeof apply === 'function' && typeof revert === 'function') {\n this._functions [name] = {\n apply,\n revert\n };\n }\n\n return this._functions [name];\n }\n\n /**\n * Placeholders. Saves up an action (any kind of action) for later use within\n * the game in a key-value manner.\n *\n * @param {string} name - The name with which the action will be saved and later used\n * @param {any} value - The value (an action) to save up\n *\n * @returns {(any|void)} - The value of an action given its name, the whole\n * object if both params are missing and void if used for assigning the value.\n *\n */\n static $ (name: string | Record | undefined, value?: unknown): unknown {\n if (typeof name === 'string') {\n if (typeof value !== 'undefined') {\n this._$[name] = value;\n }\n\n return this._$[name];\n } else if (typeof name === 'object') {\n this._$ = Object.assign ({}, this._$, name);\n } else if (typeof name === 'undefined') {\n return this._$;\n }\n }\n\n static globals(): GlobalsMap;\n static globals(object: Partial): GlobalsMap;\n static globals (object: Partial | null = null) {\n if (object !== null) {\n this._globals = merge (this._globals, object);\n }\n\n return this._globals ?? {};\n }\n\n static global(key: K): GlobalsMap[K];\n static global(key: K, value: GlobalsMap[K]): GlobalsMap[K];\n static global (key: string, value?: unknown): unknown {\n if (typeof value !== 'undefined') {\n this._globals[key] = value;\n }\n\n return this._globals?.[key] ?? undefined;\n }\n\n static template (key: string, value?: unknown): unknown {\n if (typeof value !== 'undefined') {\n this._templates[key] = value;\n }\n\n return this._templates[key];\n }\n\n static mediaPlayers (key?: string, object = false) {\n if (typeof key === 'string') {\n if (object) {\n return this._mediaPlayers[key];\n }\n\n return Object.values (this._mediaPlayers[key]);\n }\n\n return this._mediaPlayers;\n }\n\n static mediaPlayer (type: string, key: string, value?: HTMLAudioElement | HTMLVideoElement | AudioPlayer): HTMLAudioElement | HTMLVideoElement | AudioPlayer | undefined {\n if (typeof value === 'undefined') {\n const players = this.mediaPlayers (type, true) as Record;\n return players?.[key];\n } else {\n value.dataset.type = type;\n value.dataset.key = key;\n this._mediaPlayers[type][key] = value;\n return this._mediaPlayers[type][key];\n }\n }\n\n static removeMediaPlayer (type: string, key?: string): void {\n const players = this.mediaPlayers (type, true) as Record | undefined;\n\n const cleanupPlayer = (player: HTMLAudioElement | HTMLVideoElement | AudioPlayer): void => {\n if (player instanceof AudioPlayer) {\n // Use AudioPlayer's destroy method which handles cleanup properly\n player.destroy();\n } else {\n // Handle HTMLAudioElement/HTMLVideoElement\n if (typeof player.pause === 'function') {\n player.pause();\n }\n if (typeof player.setAttribute === 'function') {\n player.setAttribute('src', '');\n player.currentTime = 0;\n }\n }\n };\n\n if (typeof key === 'undefined') {\n if (players) {\n for (const mediaKey of Object.keys(players)) {\n const player = this._mediaPlayers[type][mediaKey];\n if (player) {\n cleanupPlayer(player);\n }\n delete this._mediaPlayers[type][mediaKey];\n }\n }\n } else {\n if (typeof this._mediaPlayers[type]?.[key] !== 'undefined') {\n const player = this._mediaPlayers[type][key];\n if (player) {\n cleanupPlayer(player);\n }\n delete this._mediaPlayers[type][key];\n }\n }\n }\n\n static temp (key: string, value?: unknown): unknown {\n if (typeof value !== 'undefined') {\n this._temp[key] = value;\n } else {\n const value = this._temp[key];\n delete this._temp[key];\n return value;\n }\n }\n\n /**\n * Localize every element with a data-string property using the translations\n * available. If no translation is found for the current language, the current\n * text of the element will be kept.\n */\n static localize (): void {\n return _localize (this.asEngine ());\n }\n\n /**\n * Preload game assets\n */\n static preload () {\n // Check if asset preloading is enabled. Preloading will not be done in\n // electron or cordova since the assets are expected to be available\n // locally.\n const preloadEnabled = this.setting ('Preload') && !Platform.desktopApp && !Platform.cordova && location.protocol.indexOf ('file') < 0;\n\n if (!preloadEnabled) {\n return Promise.resolve ();\n }\n\n const promises: Promise[] = [];\n\n this.trigger('willPreloadAssets');\n\n const assetsPath = this.setting('AssetsPath');\n\n // Check if Preload action has a 'default' block configured\n const preloadAction = this.action('Preload') as typeof PreloadAction | undefined;\n const blocks = preloadAction?.blocks?.();\n const defaultBlock = blocks?.['default'];\n\n if (defaultBlock && preloadAction) {\n // Use the registry-based preloading for the 'default' block\n for (const [category, assets] of Object.entries(defaultBlock)) {\n // Handle characters separately (nested structure)\n if (category === 'characters' && typeof assets === 'object' && !Array.isArray(assets)) {\n for (const [charId, sprites] of Object.entries(assets as Record)) {\n const character = this.character(charId);\n if (!character) continue;\n\n let directory = character.directory ? `${character.directory}/` : '';\n directory = `${assetsPath.root}/${assetsPath.characters}/${directory}`;\n\n for (const spriteName of sprites) {\n const spriteFile = character.sprites?.[spriteName];\n if (!spriteFile || typeof spriteFile !== 'string') continue;\n\n const url = `${directory}${spriteFile}`;\n promises.push(\n Preload.image(url).then((img) => {\n this.imageCache(`characters/${charId}/${spriteName}`, img);\n this.trigger('assetLoaded', { name: spriteName, type: 'image', category: 'characters' });\n })\n );\n this.trigger('assetQueued');\n }\n }\n continue;\n }\n\n if (!Array.isArray(assets)) continue;\n\n // Use the Preload action's registry to determine how to load this category\n const loaderType = preloadAction.getLoaderType(category);\n if (!loaderType) {\n console.warn(`Preload: No loader registered for category \"${category}\" in default block`);\n continue;\n }\n\n const loaderConfig = preloadAction.getLoader(loaderType);\n if (!loaderConfig) {\n console.warn(`Preload: Loader type \"${loaderType}\" not found`);\n continue;\n }\n\n for (const assetName of assets) {\n const assetFile = (this.assets(category) as Record)?.[assetName];\n if (!assetFile) continue;\n\n const url = `${assetsPath.root}/${assetsPath[category as keyof typeof assetsPath]}/${assetFile}`;\n const cacheKey = `${category}/${assetName}`;\n\n promises.push(\n loaderConfig.loader(url, this).then((asset: unknown) => {\n loaderConfig.cache.set(this, cacheKey, asset);\n this.trigger('assetLoaded', { name: assetName, type: loaderType, category });\n })\n );\n this.trigger('assetQueued');\n }\n }\n } else {\n // Fallback: Legacy preloading when no 'default' block is configured\n // This preloads ALL registered assets to browser cache (not decoded/cached for immediate use)\n const allAssets = this.assets() || {};\n\n // Iterate over every asset category: music, videos, scenes etc.\n for (const category of Object.keys(allAssets)) {\n // Iterate over every key on each category\n const categoryAssets = this.assets(category) || {};\n\n for (const asset of Object.values(categoryAssets)) {\n if (typeof asset !== 'string') {\n continue;\n }\n\n // Get the directory from where to load this asset\n const directory = `${assetsPath.root}/${assetsPath[category as keyof typeof assetsPath]}`;\n\n const onSuccess = (name: string, type: string, category: string) => {\n this.trigger('assetLoaded', { name, type, category });\n }\n\n if (FileSystem.isImage(asset)) {\n promises.push(Preload.image(`${directory}/${asset}`).then(() => onSuccess(asset, 'image', category)));\n } else {\n promises.push(Preload.file(`${directory}/${asset}`).then(() => onSuccess(asset, 'file', category)));\n }\n\n this.trigger('assetQueued');\n }\n }\n\n for (const key in this.characters()) {\n const character = this.character(key);\n if (!character) continue;\n\n let directory = '';\n\n // Check if the character has a directory defined where its images are located\n if (typeof character.directory !== 'undefined') {\n directory = character.directory + '/';\n }\n directory = `${assetsPath.root}/${assetsPath.characters}/${directory}`;\n\n if (typeof character.sprites !== 'undefined') {\n for (const image of Object.values(character.sprites)) {\n if (typeof image !== 'string') {\n continue;\n }\n promises.push(Preload.image(`${directory}${image}`).then(() => {\n this.trigger('assetLoaded', {\n name: image,\n type: 'image',\n category: 'characters'\n });\n }));\n }\n }\n\n if (typeof character.expressions !== 'undefined') {\n for (const image of Object.values(character.expressions)) {\n if (typeof image !== 'string') {\n continue;\n }\n promises.push(Preload.image(`${directory}${image}`).then(() => {\n this.trigger('assetLoaded', {\n name: image,\n type: 'image',\n category: 'characters'\n });\n }));\n }\n }\n\n if (typeof character.default_expression === 'string') {\n promises.push(Preload.image(`${directory}${character.default_expression}`).then(() => {\n this.trigger('assetLoaded', {\n name: character.default_expression as string,\n type: 'image',\n category: 'characters'\n });\n }));\n }\n\n if (typeof character.layer_assets === 'object' && character.layer_assets) {\n for (const [_layer, obj] of Object.entries(character.layer_assets)) {\n for (const [assetKey, value] of Object.entries(obj)) {\n promises.push(Preload.image(`${directory}${value}`).then(() => {\n this.trigger('assetLoaded', {\n name: assetKey,\n type: 'image',\n category: 'characters'\n });\n }));\n }\n }\n }\n\n this.trigger('assetQueued');\n }\n }\n\n return Promise.all (promises).then (() => {\n this.trigger ('didPreloadAssets');\n return Promise.resolve ();\n });\n }\n\n /**\n * @static translate - This method will try to translate parts of a string\n * using the translation strings available. Any string containing a format\n * like this one: \"_(SomeKey)\" will get that replaced with the translated\n * string of that key.\n *\n * @param {string} statement - String to translate.\n *\n * @returns {string} - The translated string\n */\n static translate (statement: string): string {\n return _translate (this.asEngine (), statement);\n }\n\n /**\n * @static replaceVariables - Recursively replace all occurrences of\n * {{variable_name}} with the actual value for that variable name on the\n * storage object.\n *\n * @param {string} statement - The text where to interpolate the variables\n *\n * @returns {string} - The text with the interpolated variables\n */\n static replaceVariables (statement: string): string {\n return _replaceVariables (this.asEngine (), statement);\n }\n\n /**\n * @static saveTo - Save the current game state into a given Slot\n *\n * @param {string} [prefix = 'SaveLabel'] - The prefix label to be used for the\n * slot. Should be either 'SaveLabel' or 'AutoSaveLabel'.\n * @param {int} [id = null] - The numeric ID to be used for the slot. If none\n * is given, it will be determined using the getMaxSlotId function and upping\n * it by 1\n * @param {string} [name = null] - The name given by the player to the slot. If none is\n * given, the current date will be used\n *\n * @returns {Promise} - The promise of the save operation\n */\n static async saveTo (prefix = 'SaveLabel', id: number | null = null, name: string | null = null): Promise {\n return _saveTo(this.asEngine(), prefix, id, name);\n }\n\n static assertAsync (callable: (...args: unknown[]) => unknown, self: unknown = null, args: unknown[] | null = null): Promise {\n return _assertAsync(this.asEngine(), callable, self, args);\n }\n\n static next (): Promise {\n return _next(this.asEngine());\n }\n\n static previous (): Promise {\n return _previous(this.asEngine());\n }\n\n static resetGame (): Promise {\n return _resetGame(this.asEngine());\n }\n\n /**\n * @static keyBoardShortcut - Register a new callback for a custom keyboard\n * shortcut\n *\n * @param {string|Array} shortcut - Sequence of keys that represent\n * the shortcut\n * @param {function} callback - The function to run when that sequence of keys\n * is pressed\n *\n * @returns {void}\n */\n static keyboardShortcut (shortcut: string | string[], callback: (this: VisualNovelEngine, event: KeyboardEvent, element: DOM) => void): void {\n return _keyboardShortcut (this.asEngine (), shortcut, callback);\n }\n\n static upgrade (oldVersion: string, newVersion: string, callbacks: { storage?: (oldData: unknown) => unknown; replaceStorage?: boolean }): void {\n return _upgrade(this.asEngine(), oldVersion, newVersion, callbacks);\n }\n\n static setupStorage (): void {\n return _setupStorage(this.asEngine());\n }\n\n static registerListener (name: string, listener: { keys?: string | string[]; callback: (this: VisualNovelEngine, event: Event, element: DOM) => unknown }, replace = false): void {\n return _registerListener (this.asEngine (), name, listener, replace);\n }\n\n static unregisterListener (name: string): void {\n return _unregisterListener (this.asEngine (), name);\n }\n\n static async runListener (name: string, event: Event | null = null, element: DOM | null = null): Promise {\n return _runListener (this.asEngine (), name, event, element);\n }\n\n /**\n * @static object - Get all the relevant information of the game state\n *\n * @returns {Object} - An object containing the current histories, state and\n * storage variables.\n * @returns {Object} history - The full history object\n * @returns {Object} state - The full state object\n * @returns {Object} storage- The full storage object\n */\n static object () {\n return _gameObject(this.asEngine());\n }\n\n static prepareAction(statement: string, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null;\n static prepareAction(statement: Record, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null;\n static prepareAction(statement: string | Record, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null;\n static prepareAction (statement: unknown, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null {\n return _prepareAction(this.asEngine(), statement as string | Record, { cycle, extras });\n }\n\n static async revert (statement: unknown = null, shouldAdvance = true, shouldStepBack = true): Promise<{ advance: boolean; step: boolean } | void> {\n return _revert(this.asEngine(), statement, shouldAdvance, shouldStepBack);\n }\n\n static async run (statement: unknown, shouldAdvance = true): Promise<{ advance: boolean }> {\n return _run(this.asEngine(), statement, shouldAdvance);\n }\n\n static alert (id: string, options: Record): void {\n return _showAlert(this.asEngine(), id, options);\n }\n\n static dismissAlert (id: string | null = null): void {\n return _dismissAlert(this.asEngine(), id);\n }\n\n /**\n * @static loadFromSlot - Load a slot from the storage. This will recover the\n * state of the game from what was saved in it.\n *\n * @param {string} slot - The key with which the slot was saved on the storage\n */\n static loadFromSlot (slot: string): Promise {\n return _loadFromSlot(this.asEngine(), slot);\n }\n\n static async proceed ({ userInitiated = false, skip = false, autoPlay = false } = {}): Promise {\n return _proceed(this.asEngine(), { userInitiated, skip, autoPlay });\n }\n\n static async rollback (): Promise {\n return _rollback(this.asEngine());\n }\n\n static shouldProceed ({ userInitiated = false, skip = false, autoPlay = false }): Promise {\n return _shouldProceed(this.asEngine(), { userInitiated, skip, autoPlay });\n }\n\n static willProceed (): Promise {\n return _willProceed(this.asEngine());\n }\n\n static stopTyping (component: TypeWriterComponent): void {\n return _stopTyping(this.asEngine(), component);\n }\n\n static shouldRollback (): Promise {\n return _shouldRollback(this.asEngine());\n }\n\n static willRollback (): Promise {\n return _willRollback(this.asEngine());\n }\n\n /**\n * @static playAmbient - Play the main menu music using the key defined in the\n * 'MainScreenMusic' property of the game settings.\n */\n static playAmbient (): void {\n return _playAmbient(this.asEngine());\n }\n\n // Stop the main menu's music\n static stopAmbient (): void {\n return _stopAmbient(this.asEngine());\n }\n\n // Start game automatically without going trough the main menu\n static showMainScreen (): void {\n return _showMainScreen(this.asEngine());\n }\n\n static showSplashScreen (): void {\n return _showSplashScreen(this.asEngine());\n }\n\n /**\n * @static autoPlay - Enable or disable the autoplay feature which allows the\n * game to play itself (of sorts), it will go through the dialogs alone but\n * will wait when user interaction is needed.\n *\n * @param {boolean} enable - Wether the auto play feature will be enabled (true)\n * or disabled (false);\n */\n static autoPlay (enable: boolean): void {\n return _autoPlay(this.asEngine(), enable);\n }\n\n /**\n * @static distractionFree - Enable or disable the distraction free mode\n * where the dialog box is hidden so that the player can look at the characters\n * and background with no other elements on the way. A 'transparent' class\n * is added to the quick menu when this mode is enabled.\n */\n static distractionFree (): void {\n return _distractionFree(this.asEngine());\n }\n\n static setup (selector: string): Promise {\n const components = this.components();\n\n // Set the initial settings if they don't exist or load them from the\n // Storage if they do.\n const loadPreferencesPromise = new Promise((resolve, _reject) => {\n this.Storage.get('Settings').then ((local_settings) => {\n this.global ('_first_run', false);\n this._preferences = merge (this._preferences, local_settings as Partial);\n resolve();\n }).catch ((e) => {\n console.warn ('There was no settings saved. This may be the first time this game was opened, we\\'ll create them now.', e);\n this.global ('_first_run', true);\n if (this.setting ('MultiLanguage') !== true || this.setting ('LanguageSelectionScreen') !== true) {\n this.Storage.set ('Settings', this._preferences).then(() => resolve()).catch(() => resolve());\n } else {\n resolve();\n }\n });\n });\n\n return loadPreferencesPromise.then(() => {\n // Define all the components that were registered to this point\n for (const component of components) {\n try {\n component.engine = this.asEngine();\n Registry.register(component.tag, component);\n } catch (e) {\n FancyError.show ('engine:component:already_registered', {\n tag: component.tag,\n component: component,\n unregisterCode: `
monogatari.unregisterComponent ('${component.tag}')
`\n });\n }\n }\n\n // Register service worker. The service worker will save all requests into\n // the cache so the game loads more quickly and we can play offline. The\n // service worker will only be used if it was allowed by the settings and\n // if we are not running in a local platform such as electron or cordova\n // where the assets are expected to be available locally and thus don't\n // require being cached.\n if (this.setting ('ServiceWorkers')) {\n if (!Platform.desktopApp && !Platform.cordova && Platform.serviceWorkers) {\n if (window.location.protocol === 'file:') {\n console.warn ('Service Workers are not available when opening the index.html file directly in your browser. Service Workers are available only when serving your files through a server, once you upload your game this warning will go away. You can also try using a simple server like this one for development: https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb/.');\n } else {\n navigator.serviceWorker.register('./service-worker.js').then ((registration) => {\n\n // Check if an update to the service worker was found\n registration.onupdatefound = () => {\n const worker = registration.installing;\n\n if (worker) {\n worker.onstatechange = () => {\n // Once the updated service worker has been installed,\n // show a notice to the players so that they reload the\n // page and get the latest content.\n if (worker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n const element = this.element();\n const broadcastElement = `\n
\n

${this.string ('NewContent')}.

\n
\n `;\n element?.prepend (broadcastElement);\n element?.on ('click', '[data-ui=\"broadcast\"][data-content=\"new-content\"]', () => {\n this.element()?.find ('[data-ui=\"broadcast\"][data-content=\"new-content\"]').remove ();\n });\n }\n }\n };\n }\n };\n }).catch ((error) => {\n console.warn ('Failed to register Service Worker:', error.message);\n });\n }\n } else {\n console.warn ('Service Workers are not available in this browser or have been disabled in the engine configuration. Service Workers are available only when serving your files through a server, once you upload your game this warning will go away. You can also try using a simple server like this one for development: https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb/');\n }\n }\n\n // Save the structure of the storage variable. The structure is saved as\n // a string so that we have a reference to how the storage was originally\n // and we can reset the storage when the game ends.\n this.global ('storageStructure', JSON.stringify (this.storage ()));\n\n // The open-screen action does exactly what it says, it takes the\n // data-screen property of the object it's in and then opens that\n // menu, meaning it hides everything else and shows that one.\n this.registerListener ('open-screen', {\n callback: (event: Event, element: DOM) => {\n this.showScreen (element.data('open') as string);\n }\n });\n\n // The start action starts the game so it shows the game screen\n // and the game starts\n this.registerListener ('start', {\n callback: () => {\n this.global ('playing', true);\n\n // Remove the play main menu audio broadcast message if it's present\n this.element ().find ('[data-ui=\"broadcast\"][data-content=\"allow-playback\"]').remove ();\n\n this.onStart ().then (() => {\n this.element ().find ('[data-screen]').each ((screen: HTMLElement) => {\n (screen as HTMLElement & { setState: (state: Record) => void }).setState ({ open: false });\n });\n\n const gameScreen = this.element ().find ('[data-screen=\"game\"]').get (0) as (HTMLElement & { setState: (state: Record) => void }) | undefined;\n if (gameScreen) {\n gameScreen.setState ({ open: true });\n }\n\n // Check if the initial label exists\n const currentLabel = this.label () as unknown[];\n const step = this.state ('step') as number;\n if (currentLabel) {\n this.run (currentLabel[step]);\n }\n });\n }\n });\n\n this.registerListener ('dismiss-alert', {\n callback: () => {\n this.dismissAlert ();\n }\n });\n\n this.registerListener ('distraction-free', {\n keys: 'h',\n callback: () => {\n this.distractionFree ();\n }\n });\n\n this.registerListener ('skip', {\n keys: 's',\n callback: () => {\n if (this.global ('playing')) {\n if (this.global ('skip') !== null) {\n this.skip (false);\n } else {\n this.skip (true);\n }\n }\n }\n });\n\n // Add listener to the auto-play buttons, activating or deactivating the\n // auto-play feature\n this.registerListener ('auto-play', {\n callback: () => {\n this.autoPlay (this.global ('_auto_play_timer') === undefined);\n }\n });\n\n const promises = [];\n\n for (const component of this.components ()) {\n component.engine = this.asEngine();\n promises.push (component.setup ());\n }\n\n for (const action of this.actions ()) {\n action.engine = this.asEngine();\n promises.push (action.setup ());\n }\n\n return Promise.all (promises).then (() => {\n this.global ('_didSetup', true);\n return Promise.resolve ();\n });\n }).catch((error) => {\n console.error('Initialization error', error);\n });\n }\n /**\n * @static skip - Enable or disable the skip mode which is similar to auto\n * play but simply skips fast through the game.\n *\n * @param {boolean} enable - Wether it should be enabled (true) or disabled (false)\n */\n static skip (enable: boolean): void {\n return _skip(this.asEngine(), enable);\n }\n\n static showScreen (screen: string): void {\n return _showScreen(this.asEngine(), screen);\n }\n\n static hideScreens (): void {\n return _hideScreens(this.asEngine());\n }\n\n static resize (_element: unknown, proportionWidth: number, proportionHeight: number): void {\n return _resize(this.asEngine(), _element, proportionWidth, proportionHeight);\n }\n\n static goBack (event: Event, selector: string): void {\n return _goBack(this.asEngine(), event, selector);\n }\n\n /**\n * Every event listener should be binded in this function.\n */\n static bind (selector: string): Promise {\n\n\n // Add the orientation checker in case that a specific orientation was\n // defined.\n const isMobile = typeof Platform.mobile === 'function' ? Platform.mobile() : Platform.mobile;\n if (this.setting ('Orientation') !== 'any' && isMobile) {\n\n // Set the event listener for device orientation so we can display a message\n window.addEventListener ('orientationchange', () => {\n\n // Display or remove the device orientation notice depending on the\n // current device orientation\n if (Platform.orientation !== this.setting ('Orientation')) {\n this.alert ('orientation-warning', {\n message: 'OrientationWarning'\n });\n } else {\n this.dismissAlert ('orientation-warning');\n }\n }, false);\n }\n\n // Add event listener for back buttons. If the player is playing, the back\n // button will return to the game, if its not playing, then it'll return\n // to the main menu.\n this.on ('click', '[data-screen]:not([data-screen=\"game\"]) [data-action=\"back\"]', (event) => {\n this.goBack (event, selector);\n });\n\n const self = this;\n\n // Add listeners for the data-action properties\n this.on ('click', '[data-action]', function (this: HTMLElement, event) {\n const element = $_(this);\n\n const action = element.data ('action');\n\n if (action) {\n // Prevent action clicks from bubbling to the game-screen's proceed handler\n event.stopPropagation ();\n self.runListener (action, event, element);\n }\n\n return action === 'set-volume';\n });\n\n this.keyboardShortcut (['right', 'space'], () => {\n this.proceed ({ userInitiated: true, skip: false, autoPlay: false }).then (() => {\n // Nothing to do here\n }).catch ((e) => {\n this.debug.log (`Proceed Prevented\\nReason: ${e}`);\n // An action waiting for user interaction or something else\n // is blocking the game.\n });\n });\n\n this.keyboardShortcut ('esc', () => {\n if ($_(`${selector} [data-screen=\"game\"]`).isVisible () && this.global ('playing')) {\n this.showScreen ('settings');\n } else if ($_(`${selector} [data-screen=\"settings\"]`).isVisible () && this.global ('playing')) {\n this.showScreen ('game');\n }\n });\n\n this.keyboardShortcut ('shift+s', () => {\n if (this.global ('playing')) {\n this.showScreen ('save');\n }\n });\n\n this.keyboardShortcut ('shift+l', () => {\n if (this.global ('playing')) {\n this.showScreen ('load');\n }\n });\n\n const forceAspectRatio = this.setting ('ForceAspectRatio');\n let forceAspectRatioFlag = true;\n\n switch (forceAspectRatio) {\n case 'Visuals':\n $_('[data-content=\"visuals\"]').addClass('forceAspectRatio');\n break;\n\n case 'Global':\n this.parentElement().addClass('forceAspectRatio');\n break;\n\n default:\n forceAspectRatioFlag = false;\n }\n\n if (forceAspectRatioFlag) {\n const aspectRatio = this.setting ('AspectRatio') as string;\n const [w, h] = aspectRatio.split (':');\n const proportionWidth = parseInt(w);\n const proportionHeight = parseInt(h);\n if (!(Platform.desktopApp && forceAspectRatio === 'Global')) {\n this.resize (null, proportionWidth, proportionHeight);\n window.addEventListener('resize', () => this.resize (null, proportionWidth, proportionHeight));\n }\n }\n\n const promises = [];\n\n for (const component of this.components ()) {\n promises.push (component.bind (selector));\n }\n\n for (const action of this.actions ()) {\n promises.push (action.bind (selector));\n }\n\n return Promise.all (promises).then (() => {\n for (const listener of this._listeners) {\n const { keys, callback } = listener;\n if (typeof keys !== 'undefined') {\n this.keyboardShortcut (keys, callback);\n }\n }\n this.global ('_didBind', true);\n return Promise.resolve ();\n });\n }\n\n /**\n * @static element - Get the main visual-novel element\n *\n * @template {boolean} T\n * @param {T} pure - Wether to get an Artemis DOM instance of the element\n * or a pure HTML element\n * @param {boolean} handled - Wether the case of the element not existing is\n * being handled in some way or not. If it doesn't exist and it is not being\n * handled, an error will be shown.\n *\n * @returns {T extends true ? HTMLElement : DOM}\n */\n static element (): DOM;\n static element (pure: true, handled?: boolean): HTMLElement | null;\n static element (pure: false, handled?: boolean): DOM;\n static element (pure = false, handled = false): HTMLElement | DOM | null {\n let element: HTMLElement | DOM | null = null;\n let exists = false;\n\n if (pure === true) {\n element = document.querySelector ('visual-novel') as HTMLElement;\n exists = element !== null;\n } else {\n element = $_('visual-novel');\n exists = element.length > 0;\n }\n\n // In some cases, the user might be trying to execute an action using the\n // main element when the DOM has not been loaded yet, thus causing an\n // error since the element does not exists yet.\n if (exists === false && handled === false) {\n FancyError.show ('engine:element:not_ready', {});\n }\n\n return element;\n }\n\n static on (event: string, target: string | EventCallback, callback?: EventCallback): void {\n const element = this.element() as DOM;\n\n if (element) {\n // If callback is not provided, treat target as callback (for simple event binding)\n if (typeof target === 'function' && callback === undefined) {\n element.on (event, target as EventCallback);\n } else {\n element.on (event, target as string, callback!);\n }\n }\n }\n\n static off (event: string, callback: EventCallback): void {\n const element = this.element() as DOM;\n\n if (element) {\n element.off (event, callback);\n }\n }\n\n static parentElement (): DOM {\n return $_(this._selector);\n }\n\n /**\n * @static trigger - Trigger a custom element with custom details data\n *\n * @param {string} name - The name of the event to trigger\n * @param {Object} [details = {}] - A key/value object with additional details\n * for the event\n *\n * @returns {void}\n */\n static trigger (name: string, details: Record = {}) {\n const event = new CustomEvent (name, { bubbles: false, detail: details });\n\n const element = this.element (true, true);\n\n if (element) {\n element.dispatchEvent (event);\n } else {\n $_ready (() => dispatchEvent (event));\n }\n }\n\n static displayInitialScreen (): void {\n return _displayInitialScreen(this.asEngine());\n }\n\n /**\n * @static _setupRegistry - Configure the Pandora Registry for centralized\n * component lifecycle tracking and error handling.\n *\n * This provides:\n * - Centralized error handling for all component lifecycle methods\n * - Debug logging when Monogatari debug mode is enabled\n * - Mount/unmount tracking for debugging purposes\n *\n * @private\n */\n static _setupRegistry () {\n // Enable Registry debug mode when Monogatari is in debug mode\n if (typeof MonogatariDebug === 'object') {\n Registry.debug = true;\n }\n\n // Centralized error handling for component errors\n Registry.onError ((error, component, tag, lifecycle) => {\n FancyError.show ('engine:component:lifecycle_error', {\n tag: tag,\n lifecycle: lifecycle,\n errorMessage: error.message,\n stackTrace: error.stack\n });\n // Also log to console for debugging\n console.error (`[Monogatari] Component error in <${tag}> during ${lifecycle}:`, error);\n });\n\n // Track component mounts for debugging\n Registry.onMount ((component, tag) => {\n this.trigger ('componentDidMount', { component, tag });\n });\n\n // Track component unmounts for debugging\n Registry.onUnmount ((component, tag) => {\n this.trigger ('componentDidUnmount', { component, tag });\n });\n }\n\n static async init (selector = '#monogatari') {\n this._selector = selector;\n\n if (typeof window.Cypress !== 'undefined') {\n this.setting ('ExperimentalFeatures', true);\n }\n\n // Setup Pandora Registry for centralized error handling and lifecycle tracking\n this._setupRegistry ();\n\n this.trigger ('willInit');\n\n const storageConfigInit = this.Storage?.configuration () as { name?: string } | undefined;\n\n if (!storageConfigInit || storageConfigInit.name === '') {\n this.setupStorage ();\n }\n\n this.trigger ('willSetup');\n\n await this.setup(selector);\n\n this.trigger ('didSetup');\n this.trigger ('willBind');\n\n await this.bind(selector);\n\n this.trigger ('didBind');\n\n this.ambientPlayer = new Audio ();\n\n // Set the initial language translations\n this.localize ();\n\n // Set the label in which the game will start\n this.state ({ label: this.setting ('Label') });\n\n // Check if the orientation is correct, if it's not, show the warning\n // message so the player will rotate its device.\n if (this.setting ('Orientation') !== 'any') {\n const initIsMobile = Platform.mobile();\n\n if (initIsMobile && Platform.orientation !== this.setting ('Orientation')) {\n this.alert ('orientation-warning', {\n message: 'OrientationWarning'\n });\n }\n }\n\n const init: Promise[] = [];\n\n for (const component of this.components ()) {\n init.push (component.init (selector));\n }\n\n for (const action of this.actions ()) {\n init.push (action.init (selector));\n }\n\n if (this.setting ('AutoSave') !== 0 && typeof this.setting ('AutoSave') === 'number') {\n this.debug.debug ('Automatic save is enabled, setting up timeout');\n this.global ('_auto_save_interval', setInterval(() => {\n this.debug.groupCollapsed ('Automatic Save');\n const id = this.global ('current_auto_save_slot') as number;\n\n this.debug.debug ('Saving data to slot', id);\n\n this.saveTo ('AutoSaveLabel', id);\n\n const slotsCount = this.setting ('Slots') as number;\n if (id === slotsCount) {\n this.global ('current_auto_save_slot', 1);\n } else {\n this.global ('current_auto_save_slot', id + 1);\n }\n\n this.debug.groupEnd ();\n\n }, (this.setting ('AutoSave') as number) * 60000));\n } else {\n this.debug.debug ('Automatic save is disabled. Section will be hidden from Load Screen');\n this.element ().find ('[data-screen=\"load\"] [data-ui=\"autoSaveSlots\"]').hide ();\n }\n\n await Promise.all (init);\n\n this.global ('_didInit', true);\n this.trigger ('didInit');\n\n if (this.setting ('MultiLanguage') === true && this.setting ('LanguageSelectionScreen') === true && this.global ('_first_run') === true) {\n this.showScreen ('language-selection');\n\n this.on ('didLocalize', () => {\n this.Storage.set ('Settings', this._preferences);\n const languageSelectionScreen = this.element ().find ('[data-screen=\"language-selection\"]');\n if (languageSelectionScreen.isVisible ()) {\n this.displayInitialScreen ();\n\n }\n });\n } else {\n this.displayInitialScreen ();\n }\n }\n\n /**\n * Random number between `min` and `max`\n * @param {number} min\n * @param {number} max\n * @returns {number}\n */\n static random (min: number, max: number) {\n try {\n return new Random (browserCrypto).integer (min, max);\n } catch (e) {\n console.error (e);\n return new Random ().integer (min, max);\n }\n }\n}\n\n// =============================================================================\n// Compile-time Type Check\n// =============================================================================\n// This ensures that the Monogatari class implements the VisualNovelEngine\n// interface. If any method or property is missing or has an incompatible type,\n// TypeScript will report an error here.\n//\n// The VisualNovelEngine interface can be extended by external users via\n// declaration merging:\n//\n// declare module '@monogatari/core' {\n// interface VisualNovelEngine {\n// myCustomMethod: () => void;\n// }\n// }\n// =============================================================================\nconst _engineTypeCheck: VisualNovelEngine = Monogatari;\n// Suppress unused variable warning\nvoid _engineTypeCheck;\n\nexport { Monogatari };\n\nexport default Monogatari;\n", + "import type { VisualNovelEngine } from '../lib/types/Monogatari';\nimport type { Character } from '../lib/types';\nimport deeply from 'deeply';\n\nconst merge = deeply.bind({});\n\nexport function characters (engine: VisualNovelEngine, object: Record | null = null): Record {\n if (object !== null) {\n // const identifiers = Object.keys (object);\n // for (const id of identifiers) {\n // \tengine.character (id, object[id]);\n // }\n engine._characters = merge (engine._characters, object) as Record;\n }\n\n return engine._characters;\n}\n\nexport function character (engine: VisualNovelEngine, id: string, object: Partial | null = null): Character | undefined {\n if (object !== null) {\n if (typeof engine._characters[id] !== 'undefined') {\n engine._characters[id] = merge (engine._characters[id], object) as Character;\n } else {\n engine._characters[id] = object as Character;\n }\n } else {\n const character = engine._characters[id];\n\n // Translate the old character properties into the new ones\n if (typeof character !== 'undefined') {\n if (typeof character.Images === 'object') {\n character.sprites = merge ({}, character.Images);\n delete character.Images;\n }\n\n if (typeof character.Directory === 'string') {\n character.directory = character.Directory;\n delete character.Directory;\n }\n\n if (typeof character.Color === 'string') {\n character.color = character.Color;\n delete character.Color;\n }\n\n if (typeof character.Name === 'string') {\n character.name = character.Name;\n delete character.Name;\n }\n\n if (typeof character.Face === 'string') {\n character.default_expression = character.Face;\n delete character.Face;\n }\n\n if (typeof character.Side === 'object') {\n character.expressions = character.Side;\n delete character.Side;\n }\n\n if (typeof character.TypeAnimation === 'boolean') {\n character.type_animation = character.TypeAnimation;\n delete character.TypeAnimation;\n }\n }\n\n return character;\n }\n}\n", + "import type { VisualNovelEngine } from '../lib/types/Monogatari';\nimport { $_ } from '@aegis-framework/artemis';\nimport { FancyError } from '../lib/FancyError';\nimport { Settings } from 'luxon';\n\n/**\n * Gets the translation of a string. This is of course limited\n * to the translations defined for each language using the translation\n * function.\n *\n * @param engine - The VisualNovelEngine instance\n * @param key - The key of the string whose translation is needed\n *\n * @return String translation in the current language given the\n * user's preferences.\n */\nexport function translateString (engine: VisualNovelEngine, key: string): string | undefined {\n const language = engine.preference ('Language') as string;\n\n if (typeof engine._translations[language] === 'undefined') {\n FancyError.show ('engine:translation:language_not_found', {\n language: language,\n availableLanguages: Object.keys (engine._translations),\n languageSelectorValue: `
${$_('[data-action=\"set-language\"]').value ()}
`\n });\n\n return undefined;\n }\n\n if (typeof engine._translations[language][key] === 'undefined') {\n FancyError.show ('engine:translation:key_not_found', {\n key: key,\n language: language,\n elements: $_(`[data-string=\"${key}\"]`).collection,\n availableStrings: Object.keys (engine._translations[language])\n });\n }\n\n return engine._translations[language][key];\n}\n\nexport function localize (engine: VisualNovelEngine): void {\n engine.trigger ('willLocalize');\n\n // Setup the correct locale for the dates\n const language = engine.preference ('Language') as string;\n\n const langMetadata = engine._languageMetadata[language];\n\n if (langMetadata?.code) {\n Settings.defaultLocale = langMetadata.code;\n }\n\n engine.element ().find ('[data-string]').each ((element) => {\n const stringKey = $_(element).data ('string');\n\n if (stringKey) {\n const string_translation = translateString (engine, stringKey);\n\n // Check if the translation actually exists and is not empty before\n // replacing the text.\n if (typeof string_translation !== 'undefined' && string_translation !== '') {\n $_(element).text (string_translation);\n }\n }\n });\n\n engine.trigger ('didLocalize');\n}\n\n/**\n * This method will try to translate parts of a string\n * using the translation strings available. Any string containing a format\n * like this one: \"_(SomeKey)\" will get that replaced with the translated\n * string of that key.\n *\n * @param engine - The VisualNovelEngine instance\n * @param statement - String to translate.\n *\n * @returns The translated string\n */\nexport function translate (engine: VisualNovelEngine, statement: string): string {\n // Find all elements in the string that match the \"_(key)\" format\n const matches = statement.match (/_\\(\\S+\\)/g);\n const language = engine.preference ('Language') as string;\n\n // Check if any matches were found, if not then no translation is needed\n if (matches === null) {\n return statement;\n }\n\n // Go through all the found matches so we can get the string it maps to\n for (const match of matches) {\n // Remove the _() from the key\n const path = match.replace ('_(', '').replace (')', '').split ('.');\n\n // Retrieve the string from the translations using the given key\n const translationsForLang = translations (engine, language) as Record | undefined;\n if (!translationsForLang) continue;\n\n let data: unknown = translationsForLang[path[0]];\n\n for (let j = 1; j < path.length; j++) {\n if (typeof data === 'object' && data !== null) {\n data = (data as Record)[path[j]];\n }\n }\n if (typeof data === 'string') {\n statement = statement.replace (match, data);\n }\n }\n\n return statement;\n}\n\n/**\n * Recursively replace all occurrences of\n * {{variable_name}} with the actual value for that variable name on the\n * storage object.\n *\n * @param engine - The VisualNovelEngine instance\n * @param statement - The text where to interpolate the variables\n *\n * @returns The text with the interpolated variables\n */\nexport function replaceVariables (engine: VisualNovelEngine, statement: string): string {\n let newStatement = translate (engine, statement);\n\n const matches = newStatement.match (/{{\\S+?}}/g);\n\n if (matches === null) {\n return newStatement;\n }\n\n for (const match of matches) {\n const path = match.replace ('{{', '').replace ('}}', '').split ('.');\n\n let data: unknown = engine.storage ();\n\n for (let j = 0; j < path.length; j++) {\n const name = path[j];\n if (typeof data === 'object' && data !== null && name in data) {\n data = (data as Record)[name];\n } else {\n FancyError.show ('engine:storage:variable_not_found', {\n variable: match,\n statement: newStatement,\n partNotFound: name,\n availableVariables: typeof data === 'object' && data !== null ? Object.keys (data) : []\n });\n\n // TODO: Is an empty string correct here?\n return '';\n }\n }\n\n newStatement = newStatement.replace (match, String(data));\n }\n\n return replaceVariables (engine, newStatement);\n}\n\nexport function translations (engine: VisualNovelEngine, object: string | Record> | null = null): Record | Record> | undefined {\n if (object === null) {\n return engine._translations;\n }\n\n if (typeof object === 'string') {\n return engine._translations[object];\n }\n\n engine._translations = Object.assign ({}, engine._translations, object);\n\n return engine._translations;\n}\n\nexport function translation (engine: VisualNovelEngine, language: string, strings?: Record): Record {\n if (typeof strings === 'undefined') {\n return engine._translations[language];\n }\n\n if (typeof engine._translations[language] !== 'undefined') {\n engine._translations[language] = Object.assign ({}, engine._translations[language], strings);\n } else {\n engine._translations[language] = strings;\n }\n\n return engine._translations[language];\n}\n\nexport function languageMetadata (engine: VisualNovelEngine, language: string, object: { code?: string; icon?: string } | null = null): { code: string; icon: string } | Record | undefined {\n if (typeof language !== 'undefined') {\n if (object !== null) {\n if (typeof engine._languageMetadata[language] !== 'object') {\n engine._languageMetadata[language] = { code: '', icon: '' };\n }\n\n engine._languageMetadata[language] = Object.assign ({}, engine._languageMetadata[language], object) as { code: string; icon: string };\n }\n\n return engine._languageMetadata[language];\n }\n\n return engine._languageMetadata;\n}\n", + "import type { VisualNovelEngine } from '../lib/types/Monogatari';\nimport { Space, SpaceAdapter, Text } from '@aegis-framework/artemis';\n\n// ============================================================================\n// Asset Registry\n// ============================================================================\n\nexport function assets (engine: VisualNovelEngine, type: string | null = null, object: Record | null = null): Record> | Record | undefined {\n if (type !== null && object !== null) {\n if (typeof engine._assets[type] !== 'undefined') {\n engine._assets[type] = Object.assign ({}, engine._assets[type], object);\n } else {\n engine._assets[type] = object;\n }\n } else if (type !== null) {\n if (typeof type === 'string') {\n return engine._assets[type];\n } else if (typeof type === 'object') {\n engine._assets = Object.assign ({}, engine._assets, object);\n }\n } else {\n return engine._assets;\n }\n}\n\nexport function asset (engine: VisualNovelEngine, type: string, name: string, value: string | null = null): string | undefined {\n if (typeof engine._assets[type] === 'undefined') {\n console.error (`Tried to interact with a non-existing asset type ${type}.`);\n }\n\n if (value !== null) {\n engine._assets[type][name] = value;\n }\n\n return engine._assets[type][name];\n}\n\n// ============================================================================\n// Audio Buffer Cache\n// ============================================================================\n\nexport function audioBufferCache(engine: VisualNovelEngine, key: string): AudioBuffer | undefined;\nexport function audioBufferCache(engine: VisualNovelEngine, key: string, buffer: AudioBuffer): void;\nexport function audioBufferCache(engine: VisualNovelEngine, key?: string, buffer?: AudioBuffer): AudioBuffer | undefined | void {\n if (buffer !== undefined && key !== undefined) {\n engine._audioBufferCache.set(key, buffer);\n } else if (key !== undefined) {\n return engine._audioBufferCache.get(key);\n }\n\n return undefined;\n}\n\nexport function audioBufferUncache(engine: VisualNovelEngine, key: string): boolean {\n return engine._audioBufferCache.delete(key);\n}\n\nexport function audioBufferClearCache(engine: VisualNovelEngine, pattern?: string): void {\n if (!pattern) {\n engine._audioBufferCache.clear();\n } else {\n for (const key of engine._audioBufferCache.keys()) {\n if (key.startsWith(pattern)) {\n engine._audioBufferCache.delete(key);\n }\n }\n }\n}\n\n// ============================================================================\n// Image Cache\n// ============================================================================\n\nexport function imageCache(engine: VisualNovelEngine, key: string): HTMLImageElement | undefined;\nexport function imageCache(engine: VisualNovelEngine, key: string, image: HTMLImageElement): void;\nexport function imageCache(engine: VisualNovelEngine, key?: string, image?: HTMLImageElement): HTMLImageElement | undefined | void {\n if (image !== undefined && key !== undefined) {\n engine._imageCache.set(key, image);\n } else if (key !== undefined) {\n return engine._imageCache.get(key);\n }\n\n return undefined;\n}\n\nexport function imageUncache(engine: VisualNovelEngine, key: string): boolean {\n return engine._imageCache.delete(key);\n}\n\nexport function imageClearCache(engine: VisualNovelEngine, pattern?: string): void {\n if (!pattern) {\n engine._imageCache.clear();\n } else {\n for (const key of engine._imageCache.keys()) {\n if (key.startsWith(pattern)) {\n engine._imageCache.delete(key);\n }\n }\n }\n}\n\n// ============================================================================\n// Combined Cache\n// ============================================================================\n\nexport function clearAllCaches(engine: VisualNovelEngine): void {\n engine._audioBufferCache.clear();\n engine._imageCache.clear();\n}\n\n// ============================================================================\n// Service Worker Communication\n// ============================================================================\n\nfunction sendServiceWorkerMessage(message: Record): Promise {\n return new Promise((resolve, reject) => {\n if (!navigator.serviceWorker?.controller) {\n reject(new Error('Service worker not available'));\n return;\n }\n\n const messageChannel = new MessageChannel();\n messageChannel.port1.onmessage = (event) => {\n resolve(event.data as T);\n };\n\n navigator.serviceWorker.controller.postMessage(message, [messageChannel.port2]);\n\n // Timeout after 10 seconds\n setTimeout(() => {\n reject(new Error('Service worker message timeout'));\n }, 10000);\n });\n}\n\nexport async function cacheInServiceWorker(urls: string[]): Promise<{ success: boolean; cached?: number; total?: number; error?: string }> {\n try {\n return await sendServiceWorkerMessage<{ success: boolean; cached?: number; total?: number; error?: string }>({\n type: 'CACHE_ASSETS',\n data: { urls }\n });\n } catch (error) {\n return { success: false, error: (error as Error).message };\n }\n}\n\nexport async function isInServiceWorkerCache(url: string): Promise {\n try {\n const result = await sendServiceWorkerMessage<{ cached: boolean }>({\n type: 'CHECK_CACHE',\n data: { url }\n });\n return result.cached;\n } catch {\n return false;\n }\n}\n\nexport async function getFromServiceWorkerCache(url: string): Promise {\n try {\n const result = await sendServiceWorkerMessage<{ found: boolean; data?: ArrayBuffer }>({\n type: 'GET_CACHED',\n data: { url }\n });\n return result.found ? result.data : undefined;\n } catch {\n return undefined;\n }\n}\n\n// ============================================================================\n// Audio Serialization\n// ============================================================================\n\nexport function serializeAudioBuffer(buffer: AudioBuffer): {\n channels: Float32Array[];\n sampleRate: number;\n length: number;\n numberOfChannels: number;\n} {\n const channels: Float32Array[] = [];\n\n for (let i = 0; i < buffer.numberOfChannels; i++) {\n // Create a copy of the channel data\n channels.push(new Float32Array(buffer.getChannelData(i)));\n }\n\n return {\n channels,\n sampleRate: buffer.sampleRate,\n length: buffer.length,\n numberOfChannels: buffer.numberOfChannels\n };\n}\n\nexport function deserializeAudioBuffer(\n data: { channels: ArrayLike[]; sampleRate: number; length: number; numberOfChannels: number },\n audioContext: AudioContext\n): AudioBuffer {\n const buffer = audioContext.createBuffer(\n data.numberOfChannels,\n data.length,\n data.sampleRate\n );\n\n for (let i = 0; i < data.numberOfChannels; i++) {\n // Create a new Float32Array from the stored data to ensure correct type\n const channelData = new Float32Array(data.channels[i]);\n buffer.copyToChannel(channelData, i);\n }\n\n return buffer;\n}\n\n// ============================================================================\n// Persistent Audio Storage (IndexedDB)\n// ============================================================================\n\nexport async function audioBufferSpace(engine: VisualNovelEngine): Promise {\n // If we already know IndexedDB isn't available, skip\n if (engine._indexedDBAvailable === false) {\n return null;\n }\n\n if (!engine._audioBufferSpace) {\n try {\n engine._audioBufferSpace = new Space(SpaceAdapter.IndexedDB, {\n name: `${Text.friendly(engine.setting('Name') as string)}_AudioCache`,\n version: '1',\n store: 'decodedAudio'\n } as ConstructorParameters[1]);\n\n await engine._audioBufferSpace.open();\n engine._indexedDBAvailable = true;\n } catch (error) {\n console.warn('IndexedDB not available for audio caching. Audio will still work but won\\'t persist across sessions:', error);\n engine._indexedDBAvailable = false;\n return null;\n }\n }\n\n return engine._audioBufferSpace;\n}\n\nexport function isIndexedDBAvailable(engine: VisualNovelEngine): boolean | null {\n return engine._indexedDBAvailable;\n}\n\nexport async function storeAudioBufferPersistent(engine: VisualNovelEngine, key: string, buffer: AudioBuffer): Promise {\n const space = await audioBufferSpace(engine);\n\n if (!space) {\n return; // IndexedDB not available, silently skip\n }\n\n try {\n const serialized = serializeAudioBuffer(buffer);\n await space.set(key, serialized);\n } catch (error) {\n console.warn('Failed to store audio buffer in IndexedDB:', error);\n }\n}\n\nexport async function getAudioBufferPersistent(engine: VisualNovelEngine, key: string): Promise {\n const space = await audioBufferSpace(engine);\n\n if (!space) {\n return undefined; // IndexedDB not available\n }\n\n try {\n const data = await space.get(key) as { channels: Float32Array[]; sampleRate: number; length: number; numberOfChannels: number } | undefined;\n\n if (data && data.channels && engine.audioContext) {\n return deserializeAudioBuffer(data, engine.audioContext);\n }\n } catch (error) {\n console.warn('Failed to retrieve audio buffer from IndexedDB:', error);\n }\n return undefined;\n}\n\nexport async function removeAudioBufferPersistent(engine: VisualNovelEngine, key: string): Promise {\n const space = await audioBufferSpace(engine);\n\n if (!space) {\n return; // IndexedDB not available\n }\n\n try {\n await space.remove(key);\n } catch (error) {\n console.warn('Failed to remove audio buffer from IndexedDB:', error);\n }\n}\n\nexport async function clearAudioBufferPersistent(engine: VisualNovelEngine): Promise {\n const space = await audioBufferSpace(engine);\n\n if (!space) {\n return; // IndexedDB not available\n }\n\n try {\n await space.clear();\n } catch (error) {\n console.warn('Failed to clear audio buffers from IndexedDB:', error);\n }\n}\n", + "import type { VisualNovelEngine } from '../lib/types/Monogatari';\nimport type { DOM, Callable } from '@aegis-framework/artemis';\nimport { $_, Util } from '@aegis-framework/artemis';\nimport mousetrap, { ExtendedKeyboardEvent } from 'mousetrap';\n\nexport function keyboardShortcut (engine: VisualNovelEngine, shortcut: string | string[], callback: (this: VisualNovelEngine, event: KeyboardEvent, element: DOM) => void): void {\n engine.debug.log (`Binding Keyboard Shortcut: ${shortcut}`);\n\n mousetrap.bind (shortcut, (event: ExtendedKeyboardEvent) => {\n const target = event.target as HTMLElement | null;\n\n if (target && target.tagName?.toLowerCase () !== 'input') {\n event.preventDefault ();\n callback.apply (engine, [event, $_(target)]);\n }\n });\n}\n\nexport function registerListener (engine: VisualNovelEngine, name: string, listener: { keys?: string | string[]; callback: (this: VisualNovelEngine, event: Event, element: DOM) => unknown }, replace = false): void {\n const listenerWithName = { ...listener, name };\n\n if (replace === true) {\n const index = engine._listeners.findIndex (l => l.name === name);\n\n if (index > -1) {\n engine._listeners[index] = listenerWithName;\n return;\n }\n }\n\n // If a listener is registered post-bind, we want to register the keyboard\n // shortcut as well or else it will not happen automatically\n if (engine.global ('_didBind') === true && listenerWithName.keys) {\n keyboardShortcut (engine, listenerWithName.keys, listenerWithName.callback);\n }\n\n engine._listeners.push (listenerWithName);\n}\n\nexport function unregisterListener (engine: VisualNovelEngine, name: string): void {\n const listener = engine._listeners.find((l) => l.name.toLowerCase () === name.toLowerCase ());\n\n if (listener) {\n if (listener.keys) {\n engine.debug.log (`Unbinding Keys: ${listener.keys}`);\n mousetrap.unbind (listener.keys as string | string[]);\n }\n\n engine._listeners = engine._listeners.filter((l) => l.name.toLowerCase () !== name.toLowerCase ());\n }\n}\n\nexport async function runListener (engine: VisualNovelEngine, name: string, event: Event | null = null, element: DOM | null = null): Promise {\n const promises: Promise[] = [];\n let actionName = name;\n\n // Check if the click event happened on a path of an icon.\n // This fixes a bug with font-awesome icons being clicked but the\n // click being registered at an inner path instead of the svg element\n // that holds the data information\n if (element && element.matches ('path')) {\n element = element.closest ('[data-action]');\n\n if (element.length > 0) {\n actionName = element.data ('action') || name;\n }\n }\n\n for (const listener of engine._listeners) {\n if (listener.name === actionName) {\n promises.push (Util.callAsync(listener.callback as Callable, engine, event, element).then ((data) => {\n if (data) {\n return Promise.resolve ();\n }\n\n return Promise.reject ();\n }));\n\n engine.debug.debug ('Running Listener', actionName);\n }\n }\n\n await Promise.all (promises).catch ((e) => {\n if (event) {\n event.stopImmediatePropagation ();\n event.stopPropagation ();\n event.preventDefault ();\n }\n\n engine.debug.debug ('Listener Event Propagation Stopped', e);\n });\n}\n", + "import type { VisualNovelEngine } from '../lib/types/Monogatari';\nimport { $_ } from '@aegis-framework/artemis';\nimport { FancyError } from '../lib/FancyError';\nimport type Component from '../lib/Component';\n\n// ============================================================================\n// Alert Management\n// ============================================================================\n\nexport function showAlert (engine: VisualNovelEngine, id: string, options: Record): void {\n\tconst alert = document.createElement ('alert-modal') as HTMLElement & { setProps: (options: Record) => void };\n\n\talert.setAttribute ('data-alert-id', id);\n\talert.setProps (options);\n\n\tengine.element ().prepend (alert);\n}\n\nexport function dismissAlert (engine: VisualNovelEngine, id: string | null = null): void {\n\tif (typeof id === 'string') {\n\t\tengine.element ().find (`alert-modal[data-alert-id=\"${id}\"]`).remove ();\n\t} else {\n\t\tengine.element ().find ('alert-modal').remove ();\n\t}\n}\n\n// ============================================================================\n// Ambient Audio\n// ============================================================================\n\nexport function playAmbient (engine: VisualNovelEngine): void {\n\t// Check if a menu music was defined\n\tif (engine.setting ('MainScreenMusic') !== '' && engine.ambientPlayer) {\n\t\tconst mainScreenMusic = engine.setting ('MainScreenMusic') as string;\n\t\tconst assetsPath = engine.setting ('AssetsPath') as { root: string; music: string };\n\t\tconst volumePref = engine.preference ('Volume') as { Music: number | string };\n\n\t\t// Make the ambient player loop\n\t\tengine.ambientPlayer.loop = true;\n\n\t\tlet ambientVolume = volumePref.Music;\n\n\t\tif (typeof ambientVolume === 'string') {\n\t\t\tambientVolume = parseFloat(ambientVolume);\n\t\t}\n\n\t\tengine.ambientPlayer.volume = ambientVolume;\n\n\t\t// Check if the music was defined in the music assets object\n\t\tconst musicAsset = engine.asset ('music', mainScreenMusic) as string | undefined;\n\n\t\tif (typeof musicAsset === 'undefined') {\n\t\t\tconst musicAssets = engine.assets ('music') as Record | undefined;\n\n\t\t\tFancyError.show ('engine:music:not_defined', {\n\t\t\t\tmusic: mainScreenMusic,\n\t\t\t\tavailableMusic: Object.keys (musicAssets ?? {})\n\t\t\t});\n\n return;\n\t\t}\n\n // Check if the player is already playing music\n if (!engine.ambientPlayer.paused && !engine.ambientPlayer.ended) {\n return;\n }\n\n // Get the full path to the asset and set the src to the ambient player\n engine.ambientPlayer.src = `${assetsPath.root}/${assetsPath.music}/${musicAsset}`;\n\n // Play the music but catch any errors. Error catching is necessary\n // since some browsers like chrome, have added some protections to\n // avoid media from being autoplayed. Because of these protections,\n // the user needs to interact with the page first before the media\n // is able to play.\n engine.ambientPlayer.play ().catch ((e) => {\n console.warn(e);\n // Create a broadcast message\n const element = `\n
\n

${engine.string ('AllowPlayback')}.

\n
\n `;\n\n // Add it to the main menu and game screens\n engine.element ().prepend (element);\n\n // Try to play the media again once the element has been clicked\n // and remove it.\n engine.element ().on ('click', '[data-ui=\"broadcast\"][data-content=\"allow-playback\"]', () => {\n playAmbient (engine);\n engine.element ().find ('[data-ui=\"broadcast\"][data-content=\"allow-playback\"]').remove ();\n });\n });\n\t}\n}\n\n// Stop the main menu's music\nexport function stopAmbient (engine: VisualNovelEngine): void {\n\tconst player = engine.ambientPlayer;\n\n\tif (player && !player.paused) {\n\t\tplayer.pause ();\n\t}\n}\n\n// ============================================================================\n// Screen Management\n// ============================================================================\n\n// Start game automatically without going trough the main menu\nexport function showMainScreen (engine: VisualNovelEngine): void {\n\tengine.global ('on_splash_screen', false);\n\n\tif (engine.setting ('ShowMainScreen')) {\n\t\tshowScreen (engine, 'main');\n\t\treturn;\n\t}\n\n\tconst currentLabel = engine.label () as unknown[];\n\tconst step = engine.state ('step') as number;\n\n\tengine.global ('playing', true);\n\tshowScreen (engine, 'game');\n\n\tengine.run (currentLabel[step]);\n}\n\nexport function showSplashScreen (engine: VisualNovelEngine): void {\n\tconst labelName = engine.setting ('SplashScreenLabel');\n\n\tif (typeof labelName === 'string' && labelName !== '') {\n\t\tconst labelContent = engine.label (labelName);\n\n\t\tif (typeof labelContent !== 'undefined') {\n\t\t\tengine.global ('on_splash_screen', true);\n\n\t\t\tengine.state ({\n\t\t\t\tlabel: labelName\n\t\t\t});\n\n\t\t\tengine.element ().find ('[data-component=\"game-screen\"]').addClass ('splash-screen');\n\n\t\t\tengine.element ().find ('[data-component=\"quick-menu\"]').addClass ('splash-screen');\n\n\t\t\tshowScreen (engine, 'game');\n\n\t\t\tconst currentLabel = engine.label () as unknown[];\n\t\t\tconst step = engine.state ('step') as number;\n\n\t\t\tengine.run (currentLabel[step]);\n\n\t\t\treturn;\n\t\t}\n\t}\n\n\tshowMainScreen (engine);\n}\n\nexport function showScreen (engine: VisualNovelEngine, screen: string): void {\n\thideScreens (engine);\n\n\tconst screenElement = engine.element ().find (`[data-screen=\"${screen}\"]`).get (0) as Component | undefined;\n\tscreenElement?.setState ({\n\t\topen: true\n\t});\n\n\t// If auto play or skip were enabled, disable them.\n\tif (engine.global ('_auto_play_timer')) {\n\t\tautoPlay (engine, false);\n\t}\n\n\tif (engine.global ('skip')) {\n\t\tskip (engine, false);\n\t}\n}\n\nexport function hideScreens (engine: VisualNovelEngine): void {\n\tconst element = engine.element();\n\n\telement?.find ('[data-screen]').each ((screen) => {\n\t\t(screen as Component).setState ({ open: false });\n\t});\n}\n\n// ============================================================================\n// Auto-play & Skip\n// ============================================================================\n\n/**\n * @static autoPlay - Enable or disable the autoplay feature which allows the\n * game to play itself (of sorts), it will go through the dialogs alone but\n * will wait when user interaction is needed.\n *\n * @param {boolean} enable - Wether the auto play feature will be enabled (true)\n * or disabled (false);\n */\nexport function autoPlay (engine: VisualNovelEngine, enable: boolean): void {\n\tif (enable === true) {\n\t\t// The interval for autoplay speed is measured in seconds\n\t\tconst interval = (engine.preference ('AutoPlaySpeed') as number) * 1000;\n\t\tlet expected = Date.now () + interval;\n\n\t\tconst timerFn = () => {\n\t\t\tconst now = Date.now () - expected; // the drift (positive for overshooting)\n\t\t\tif (now > interval) {\n\t\t\t\t// something really bad happened. Maybe the browser (tab) was inactive?\n\t\t\t\t// possibly special handling to avoid futile \"catch up\" run\n\t\t\t}\n\t\t\tengine.proceed ({ userInitiated: false, skip: false, autoPlay: true }).then (() => {\n\t\t\t\texpected += interval;\n\t\t\t\tsetTimeout (engine.global ('_auto_play_timer') as () => void, Math.max (0, interval - now)); // take into account drift\n\t\t\t}).catch (() => {\n\t\t\t\t// An action waiting for user interaction or something else\n\t\t\t\t// is blocking the game.\n\t\t\t\texpected += interval;\n\t\t\t\tsetTimeout (engine.global ('_auto_play_timer') as () => void, Math.max (0, interval - now)); // take into account drift\n\t\t\t});\n\t\t};\n\n\t\tengine.global ('_auto_play_timer', timerFn);\n\t\tsetTimeout (timerFn, interval);\n\n\t\tengine.element ().find ('[data-component=\"quick-menu\"] [data-action=\"auto-play\"] [data-string]').text (engine.string ('Stop') || 'Stop');\n\t\tengine.element ().find ('[data-component=\"quick-menu\"] [data-action=\"auto-play\"] [data-icon]').replaceWith ('');\n\t} else {\n\t\tclearTimeout (engine.global ('_auto_play_timer') as ReturnType);\n\t\tengine.global ('_auto_play_timer', null);\n\t\tengine.element ().find ('[data-component=\"quick-menu\"] [data-action=\"auto-play\"] [data-string]').text (engine.string ('AutoPlay') || 'AutoPlay');\n\t\tengine.element ().find ('[data-component=\"quick-menu\"] [data-action=\"auto-play\"] [data-icon]').replaceWith ('');\n\t}\n}\n\n/**\n * @static distractionFree - Enable or disable the distraction free mode\n * where the dialog box is hidden so that the player can look at the characters\n * and background with no other elements on the way. A 'transparent' class\n * is added to the quick menu when this mode is enabled.\n */\nexport function distractionFree (engine: VisualNovelEngine): void {\n\tif (engine.global ('playing')) {\n\t\tconst element = engine.element();\n\t\t// Check if the distraction free is currently enabled\n\t\tif (engine.global ('distraction_free') === true) {\n\t\t\telement?.find ('[data-component=\"quick-menu\"] [data-action=\"distraction-free\"] [data-string]').text (engine.string ('Hide') ?? '');\n\t\t\telement?.find ('[data-component=\"quick-menu\"] [data-action=\"distraction-free\"] [data-icon]').replaceWith ('');\n\t\t\telement?.find ('[data-component=\"quick-menu\"]').removeClass ('transparent');\n\t\t\telement?.find ('[data-component=\"text-box\"]').show ('grid');\n\t\t\tengine.global ('distraction_free', false);\n\t\t} else {\n\t\t\telement?.find ('[data-component=\"quick-menu\"] [data-action=\"distraction-free\"] [data-string]').text (engine.string ('Show') ?? '');\n\t\t\telement?.find ('[data-component=\"quick-menu\"] [data-action=\"distraction-free\"] [data-icon]').replaceWith ('');\n\t\t\telement?.find ('[data-component=\"quick-menu\"]').addClass ('transparent');\n\t\t\telement?.find ('[data-component=\"text-box\"]').hide();\n\t\t\tengine.global ('distraction_free', true);\n\t\t}\n\t}\n}\n\nexport function skip (engine: VisualNovelEngine, enable: boolean): void {\n\tconst skipSetting = engine.setting ('Skip') as number;\n\n\tif (enable === true) {\n\t\t// Check if Skip was enabled on the settings, if it has a value greater\n\t\t// than 0, it represents the speed with which the game will skip through\n\t\t// statements. If it's lesser or equal to 0 then it's disabled.\n\t\tif (skipSetting > 0) {\n\n\t\t\tconst button = engine.element ().find ('[data-component=\"quick-menu\"] [data-action=\"skip\"] [data-icon]');\n\n\t\t\tif (button.data ('icon') !== 'play-circle') {\n\t\t\t\tbutton.replaceWith ('');\n\t\t\t}\n\n\t\t\t// Start the timeout with the time specified on the settings. We\n\t\t\t// save it on a global variable so that we can disable later.\n\t\t\tengine.global ('skip', setTimeout (() => {\n\t\t\t\tif (engine.element ().find ('[data-screen=\"game\"]').isVisible () && engine.global ('playing') === true) {\n\t\t\t\t\tengine.proceed ({ userInitiated: false, skip: true, autoPlay: false }).then (() => {\n\t\t\t\t\t\t// Nothing to do here\n\t\t\t\t\t}).catch ((e) => {\n\t\t\t\t\t\tengine.debug.log (`Proceed Prevented\\nReason: ${e}`);\n\t\t\t\t\t\t// An action waiting for user interaction or something else\n\t\t\t\t\t\t// is blocking the game.\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t// Start all over again\n\t\t\t\tskip (engine, true);\n\t\t\t}, skipSetting));\n\t\t}\n\t} else {\n\t\tclearTimeout (engine.global ('skip') as ReturnType);\n\t\tengine.global ('skip', null);\n\t\tconst button = engine.element ().find ('[data-component=\"quick-menu\"] [data-action=\"skip\"] [data-icon]');\n\n\t\tif (button.data ('icon') !== 'fast-forward') {\n\t\t\tbutton.replaceWith ('');\n\t\t}\n\t}\n}\n\n// ============================================================================\n// Resize & Navigation\n// ============================================================================\n\nexport function resize (engine: VisualNovelEngine, _element: unknown, proportionWidth: number, proportionHeight: number): void {\n\tconst parentElement = engine.parentElement();\n\tif (!parentElement) return;\n\n\tconst mainWidth = parentElement.width();\n\tconst mainHeight = parentElement.height();\n\n\tconst h = Math.floor (mainWidth * (proportionHeight / proportionWidth));\n\n\tlet widthCss = '100%';\n\tlet heightCss = '100%';\n\tlet marginTopCss: string | number = 0;\n\n\tif (h <= mainHeight) {\n\t\tconst marginTop = Math.floor ((mainHeight - h)/2);\n\t\tmarginTopCss = marginTop + 'px';\n\t\theightCss = h + 'px';\n\n\t} else {\n\t\tconst w = Math.floor (mainHeight * (proportionWidth/proportionHeight));\n\t\twidthCss = w + 'px';\n\t}\n\n\t$_('.forceAspectRatio').style ({\n\t\t'width': widthCss,\n\t\t'height': heightCss,\n\t\t'margin-top': marginTopCss\n\t});\n}\n\nexport function goBack (engine: VisualNovelEngine, event: Event, selector: string): void {\n\tif (!$_(`${selector} [data-screen=\"game\"]`).isVisible ()) {\n\t\tengine.debug.debug ('Registered Back Listener on Non-Game Screen');\n\t\tevent.stopImmediatePropagation ();\n\t\tevent.stopPropagation ();\n\t\tevent.preventDefault ();\n\t\thideScreens (engine);\n\n\t\ttype ComponentWithState = HTMLElement & { setState: (state: Record) => void };\n\n\t\tif (engine.global ('playing') || engine.global ('on_splash_screen')) {\n\t\t\tconst gameScreen = engine.element ().find ('[data-screen=\"game\"]').get (0) as ComponentWithState | undefined;\n\t\t\tgameScreen?.setState ({ open: true });\n\t\t} else {\n\t\t\tconst mainScreen = engine.element ().find ('[data-screen=\"main\"]').get (0) as ComponentWithState | undefined;\n\t\t\tmainScreen?.setState ({ open: true });\n\t\t}\n\t}\n}\n\n// ============================================================================\n// Initial Screen\n// ============================================================================\n\nexport function displayInitialScreen (engine: VisualNovelEngine): void {\n\t// Preload all the game assets\n\tengine.preload ().then (() => {\n\n\t}).catch ((e) => {\n\t\tconsole.error (e);\n\t}).finally (() => {\n\t\tif (engine.label ()) {\n\t\t\tshowSplashScreen (engine);\n\t\t} else {\n\t\t\tconst scriptData = engine.script () as Record | undefined;\n\t\t\tFancyError.show ('engine:script:label_not_found', {\n\t\t\t\tstartLabel: engine.setting ('Label'),\n\t\t\t\tavailableLabels: Object.keys (scriptData ?? {})\n\t\t\t});\n\t\t}\n\t});\n}\n", + "import type { CharacterHistoryItem, SaveGameData } from '../lib/types';\n\ninterface MigrationSaveData {\n\tstate?: Record;\n\thistory: {\n\t\tcharacter?: (string | CharacterHistoryItem)[];\n\t\t[key: string]: unknown[] | undefined;\n\t};\n\tstorage?: Record;\n\tgame?: SaveGameData;\n}\n\n/**\n * @Compatibility [< v2.1.0]\n *\n * Monogatari v2.1.0 introduced a new format to save the history of the show\n * actions by adding the previous statement they may have replaced in order to\n * suppress a bug where the incorrect items were shown as it assumed they were\n * previously visible.\n */\nconst AddPreviousStatementToShowHistory = (save: MigrationSaveData): MigrationSaveData => {\n\tconst { history } = save;\n\n\tif (history.character instanceof Array) {\n\t\tif (history.character.length > 0) {\n\t\t\tconst characters: CharacterHistoryItem[] = [];\n\t\t\tfor (let i = 0; i < history.character.length; i++) {\n\t\t\t\tconst statement = history.character[i];\n\t\t\t\tif (typeof statement === 'string') {\n\t\t\t\t\tconst [_show, _character, asset] = statement.split(' ');\n\n\t\t\t\t\tconst previous = ([...history.character.slice(0, i)] as (string | CharacterHistoryItem)[]).reverse().find((item) => {\n\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\tconst [, , _asset] = item.split(' ');\n\t\t\t\t\t\t\treturn asset === _asset;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\n\t\t\t\t\tcharacters.push({\n\t\t\t\t\t\tstatement,\n\t\t\t\t\t\tprevious: typeof previous === 'string' ? previous : null\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcharacters.push(statement);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thistory.character = characters;\n\t\t\tsave.history = history;\n\t\t}\n\t}\n\n\treturn save;\n};\n\nexport default AddPreviousStatementToShowHistory;\n\n", + "import type { MediaStateItem, SaveGameData } from '../lib/types';\n\ninterface MigrationSaveData {\n\tstate: {\n\t\tmusic?: (string | MediaStateItem)[];\n\t\tsound?: (string | MediaStateItem)[];\n\t\tvoice?: (string | MediaStateItem)[];\n\t\t[key: string]: unknown;\n\t};\n\thistory?: Record;\n\tstorage?: Record;\n\tgame?: SaveGameData;\n}\n\n/**\n * @Compatibility [<= v2.0.0-beta.15]\n *\n * Monogatari v2.0.0-beta.15 introduced a new format to save the state of the media\n * being played. Therefore, we need to check if the old format is being used in the\n * save file and transform it to the new one.\n */\nconst AddPauseStateToMediaState = (save: MigrationSaveData): MigrationSaveData => {\n\tconst { state } = save;\n\n\tif (state.music instanceof Array) {\n\t\tif (state.music.length > 0) {\n\t\t\tconst music: MediaStateItem[] = [];\n\t\t\tfor (const statement of state.music) {\n\t\t\t\tif (typeof statement === 'string') {\n\t\t\t\t\tmusic.push({\n\t\t\t\t\t\tstatement,\n\t\t\t\t\t\tpaused: false,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tmusic.push(statement);\n\t\t\t\t}\n\t\t\t}\n\t\t\tstate.music = music;\n\t\t}\n\t}\n\n\tif (state.sound instanceof Array) {\n\t\tif (state.sound.length > 0) {\n\t\t\tconst sound: MediaStateItem[] = [];\n\t\t\tfor (const statement of state.sound) {\n\t\t\t\tif (typeof statement === 'string') {\n\t\t\t\t\tsound.push({\n\t\t\t\t\t\tstatement,\n\t\t\t\t\t\tpaused: false,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsound.push(statement);\n\t\t\t\t}\n\t\t\t}\n\t\t\tstate.sound = sound;\n\t\t}\n\t}\n\n\tif (state.voice instanceof Array) {\n\t\tif (state.voice.length > 0) {\n\t\t\tconst voice: MediaStateItem[] = [];\n\t\t\tfor (const statement of state.voice) {\n\t\t\t\tif (typeof statement === 'string') {\n\t\t\t\t\tvoice.push({\n\t\t\t\t\t\tstatement,\n\t\t\t\t\t\tpaused: false,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tvoice.push(statement);\n\t\t\t\t}\n\t\t\t}\n\t\t\tstate.voice = voice;\n\t\t}\n\t}\n\n\tsave.state = state;\n\n\treturn save;\n};\n\nexport default AddPauseStateToMediaState;\n\n", + "import AddPreviousStatementToShowHistory from './20211223-add-previous-statement-to-show-history';\nimport AddPauseStateToMediaState from './20200310-add-pause-state-to-media-state';\n\n/**\n * Migration function type - transforms save data from old format to new format\n */\nexport type Migration = (save: Record) => Record;\n\n/**\n * List of migrations to apply in order\n */\nconst migrations: Migration[] = [\n\tAddPauseStateToMediaState as unknown as Migration,\n\tAddPreviousStatementToShowHistory as unknown as Migration\n];\n\n/**\n * Apply all migrations to a save object\n * @param save - The save data to migrate\n * @returns The migrated save data\n */\nconst migrate = (save: Record): Record => {\n\tmigrations.forEach((migration) => {\n\t\tsave = migration(save);\n\t});\n\n\treturn save;\n};\n\nexport default migrate;\n\n", + "import type { DesktopBridge } from './DesktopBridge';\nimport type { StorageInterface } from './types/Monogatari';\n\nlet requestIdCounter = 0;\n\n// We use requests IDs to track the requests and responses between the main process\n// and the renderer process. This is a simple way to ensure that the requests and\n// responses are matched correctly.\nconst nextRequestId = (): string => `fss_${++requestIdCounter}_${Date.now()}`;\n\nexport class FileSystemStorage implements StorageInterface {\n\tprivate bridge: DesktopBridge;\n\tprivate _config: Record = {};\n\n\tprivate _callbacks = {\n\t\tcreate: [] as Array<(key: string, value: unknown) => void>,\n\t\tupdate: [] as Array<(key: string, value: unknown) => void>,\n\t\tdelete: [] as Array<(key: string, value: unknown) => void>,\n\t};\n\n\tprivate _transformations: Record unknown) | null; set?: ((key: string, value: unknown) => unknown) | null }> = {};\n\n\tprivate _pendingRequests = new Map void; reject: (error: Error) => void }>();\n\n\tprivate _upgradeCallbacks: Array<{ oldVersion: string; newVersion: string; callback: (...args: unknown[]) => Promise }> = [];\n\n\tconstructor(bridge: DesktopBridge) {\n\t\tthis.bridge = bridge;\n\n\t\tthis.bridge.on('monogatari:storage-response', (raw: unknown) => {\n\t\t\tconst response = raw as { requestId: string; data?: unknown; error?: string };\n\t\t\tconst pending = this._pendingRequests.get(response.requestId);\n\n\t\t\tif (pending) {\n\t\t\t\tthis._pendingRequests.delete(response.requestId);\n\n\t\t\t\tif (response.error) {\n\t\t\t\t\tpending.reject(new Error(response.error));\n\t\t\t\t} else {\n\t\t\t\t\tpending.resolve(response.data);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate sendRequest(channel: string, payload: Record): Promise {\n\t\tconst requestId = nextRequestId();\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._pendingRequests.set(requestId, { resolve, reject });\n\t\t\tthis.bridge.send(channel, { ...payload, requestId });\n\t\t});\n\t}\n\n\tprivate applyGetTransformations(key: string, value: unknown): unknown {\n\t\tlet result = value;\n\n\t\tfor (const transformation of Object.values(this._transformations)) {\n\t\t\tif (transformation.get) {\n\t\t\t\tresult = transformation.get(key, result);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate applySetTransformations(key: string, value: unknown): unknown {\n\t\tlet result = value;\n\t\tfor (const transformation of Object.values(this._transformations)) {\n\t\t\tif (transformation.set) {\n\t\t\t\tresult = transformation.set(key, result);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tasync get(key: string): Promise {\n\t\tconst raw = await this.sendRequest('monogatari:storage-get', { key });\n\n\t\treturn this.applyGetTransformations(key, raw);\n\t}\n\n\tasync set(key: string, value: unknown): Promise {\n\t\tconst transformed = this.applySetTransformations(key, value);\n\t\tawait this.sendRequest('monogatari:storage-set', { key, value: transformed });\n\t\tconst result = { key, value: transformed };\n\n\t\tfor (const callback of this._callbacks.create) {\n\t\t\tcallback(key, transformed);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tasync update(key: string, value: unknown): Promise {\n\t\tconst transformed = this.applySetTransformations(key, value);\n\t\tawait this.sendRequest('monogatari:storage-update', { key, value: transformed });\n\t\tconst result = { key, value: transformed };\n\n\t\tfor (const callback of this._callbacks.update) {\n\t\t\tcallback(key, transformed);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tasync remove(key: string): Promise {\n\t\tawait this.sendRequest('monogatari:storage-remove', { key });\n\t\tfor (const cb of this._callbacks.delete) {\n\t\t\tcb(key, undefined);\n\t\t}\n\t}\n\n\tasync getAll(): Promise> {\n\t\tconst raw = await this.sendRequest('monogatari:storage-get-all', {}) as Record;\n\t\tconst result: Record = {};\n\t\tfor (const [k, v] of Object.entries(raw)) {\n\t\t\tresult[k] = this.applyGetTransformations(k, v);\n\t\t}\n\t\treturn result;\n\t}\n\n\tasync each(callback: (key: string, value: unknown) => unknown): Promise {\n\t\tconst all = await this.getAll();\n\t\tconst results: unknown[] = [];\n\t\tfor (const [key, value] of Object.entries(all)) {\n\t\t\tresults.push(await callback(key, value));\n\t\t}\n\t\treturn results;\n\t}\n\n\tasync clear(): Promise {\n\t\tawait this.sendRequest('monogatari:storage-clear', {});\n\t}\n\n\tasync key(index: number, _full?: boolean): Promise {\n\t\tconst allKeys = await this.keys(_full);\n\t\treturn allKeys[index] ?? '';\n\t}\n\n\tasync keys(_full?: boolean): Promise {\n\t\treturn await this.sendRequest('monogatari:storage-keys', {}) as string[];\n\t}\n\n\tasync contains(key: string): Promise {\n\t\t// Resolves if key exists, rejects if not (matches Space convention)\n\t\tawait this.sendRequest('monogatari:storage-contains', { key });\n\t}\n\n\tasync open(): Promise {\n\t\treturn this;\n\t}\n\n\tconfiguration(object?: Record | null): Record | undefined {\n\t\tif (object) {\n\t\t\tObject.assign(this._config, object);\n\t\t\treturn this._config;\n\t\t}\n\t\tif (object === null) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn this._config;\n\t}\n\n\tasync rename(_name: string): Promise {\n\t\t// Not applicable for filesystem storage\n\t}\n\n\tasync upgrade(oldVersion: string, newVersion: string, callback: (...args: unknown[]) => Promise): Promise {\n\t\tthis._upgradeCallbacks.push({ oldVersion, newVersion, callback });\n\t\treturn this;\n\t}\n\n\tonCreate(callback: (key: string, value: unknown) => void): void {\n\t\tthis._callbacks.create.push(callback);\n\t}\n\n\tonUpdate(callback: (key: string, value: unknown) => void): void {\n\t\tthis._callbacks.update.push(callback);\n\t}\n\n\tonDelete(callback: (key: string, value: unknown) => void): void {\n\t\tthis._callbacks.delete.push(callback);\n\t}\n\n\taddTransformation(transformation: { id: string; get?: ((key: string, value: unknown) => unknown) | null; set?: ((key: string, value: unknown) => unknown) | null }): void {\n\t\tthis._transformations[transformation.id] = transformation;\n\t}\n\n\tremoveTransformation(id: string): void {\n\t\tdelete this._transformations[id];\n\t}\n}\n", + "export interface DesktopBridge {\n\tsend(channel: string, data?: unknown): void;\n\ton(channel: string, callback: (args: unknown) => void): void;\n}\n\nexport function getDesktopBridge(): DesktopBridge | null {\n\tif (typeof window.electron === 'object') return window.electron as DesktopBridge;\n\tif (typeof window.electrobun === 'object') return window.electrobun as DesktopBridge;\n\treturn null;\n}\n", + "import { $_, Space, SpaceAdapter, Platform, Text } from '@aegis-framework/artemis';\nimport { DateTime } from 'luxon';\n\nimport type { VisualNovelEngine, StorageInterface } from '../lib/types/Monogatari';\nimport type { LegacySaveData, HistoryMap, StateMap } from '../lib/types';\nimport type { GameSettings } from '../lib/types';\n\nimport migrate from '../migrations';\nimport { FancyError } from '../lib/FancyError';\nimport { FileSystemStorage } from '../lib/FileSystemStorage';\nimport { getDesktopBridge } from '../lib/DesktopBridge';\n\n// ============================================================================\n// Game Object / State Snapshot\n// ============================================================================\n\n/**\n * Get all the relevant information of the game state.\n * Named `gameObject` to avoid collision with JS `Object`.\n *\n * @returns An object containing the current histories, state and storage variables.\n */\nexport function gameObject (engine: VisualNovelEngine): { history: HistoryMap; state: StateMap; storage: unknown } {\n\treturn {\n\t\thistory: engine.history (),\n\t\tstate: engine.state (),\n\t\tstorage: engine.storage ()\n\t};\n}\n\n// ============================================================================\n// Save\n// ============================================================================\n\nexport async function saveTo (engine: VisualNovelEngine, prefix = 'SaveLabel', id: number | null = null, name: string | null = null): Promise {\n\t// Check if the player is actually playing\n\tif (!engine.global ('playing')) {\n\t\treturn;\n\t}\n\n\tconst now = DateTime.now();\n\tconst date = now.toISO();\n\tconst timestamp = now.toMillis();\n\tconst gameData = gameObject(engine);\n\n\tif (name === null || name.trim () === '') {\n\t\tname = date;\n\t}\n\n\tlet image = '';\n\n\tconst backgroundState = engine.state ('background');\n\tconst sceneState = engine.state ('scene');\n\n\tif (backgroundState) {\n\t\timage = backgroundState.split (' ')[2];\n\t} else if (sceneState) {\n\t\timage = sceneState.split (' ')[2];\n\t}\n\n\tconst slotKey = `${engine.setting (prefix)}_${id || timestamp}`;\n\n\tlet screenshot: string | undefined;\n\n\tif (engine.setting ('Screenshots')) {\n\t\ttry {\n\t\t\tconst { domToBlob } = await import ('modern-screenshot');\n\t\t\tconst gameScreen = document.querySelector ('[data-screen=\"game\"]') as HTMLElement;\n\t\t\tif (gameScreen) {\n\t\t\t\tconst blob = await domToBlob (gameScreen, {\n\t\t\t\t\tquality: 0.8,\n\t\t\t\t\ttype: 'image/jpeg',\n\t\t\t\t\tscale: 400 / gameScreen.offsetWidth,\n\t\t\t\t});\n\t\t\t\tif (blob) {\n\t\t\t\t\tscreenshot = await engine.onSaveScreenshot (slotKey, blob);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tengine.debug.warn ('Screenshot capture failed:', e);\n\t\t}\n\t}\n\n\tconst saveData: Record = {\n\t\tname,\n\t\tdate,\n\t\timage,\n\t\tgame: gameData\n\t};\n\n\tif (screenshot) {\n\t\tsaveData.screenshot = screenshot;\n\t}\n\n\tconst response = await engine.Storage.set (slotKey, saveData);\n\n\tif (response instanceof Response) {\n\t\treturn Promise.resolve (response.json ());\n\t}\n\n\treturn Promise.resolve (response);\n}\n\n// ============================================================================\n// Reset\n// ============================================================================\n\nexport function resetGame (engine: VisualNovelEngine): Promise {\n\t// Stop autoplay\n\tengine.autoPlay (false);\n\n\tconst skipSetting = engine.setting ('Skip');\n\n\tif (skipSetting > 0) {\n\t\tengine.skip (false);\n\t}\n\n\t// Reset Storage\n\tconst storageStructure = engine.global ('storageStructure');\n\n\tengine.storage (JSON.parse(storageStructure));\n\n\t// Reset Conditions\n\tengine.state ({\n\t\tstep: 0,\n\t\tlabel: engine.setting ('Label')\n\t});\n\n\tengine.global ('block', false);\n\n\t// Reset History\n\tfor (const history of Object.keys (engine._history)) {\n\t\tengine._history[history] = [];\n\t}\n\n\t// Run the reset method of all the actions so each of them can reset\n\t// their own elements correctly\n\tconst promises: Promise[] = [];\n\n\tfor (const action of engine.actions ()) {\n\t\tpromises.push (action.reset ());\n\t}\n\n\tfor (const component of engine.components ()) {\n\t\tpromises.push (component.onReset ());\n\t}\n\n\treturn Promise.all (promises);\n}\n\n// ============================================================================\n// Upgrade\n// ============================================================================\n\nexport function upgrade (engine: VisualNovelEngine, oldVersion: string, newVersion: string, callbacks: { storage?: (oldData: unknown) => unknown; replaceStorage?: boolean }): void {\n\tengine._upgrade[`${oldVersion}::${newVersion}`] = callbacks;\n}\n\n// ============================================================================\n// Storage Setup\n// ============================================================================\n\nexport function setupStorage (engine: VisualNovelEngine): void {\n\t// Check if an Adapter has been set or else, the global local storage\n\t// object will be used\n\tconst storageSetting = engine.setting ('Storage');\n\n\tif (storageSetting.Adapter.trim () !== '') {\n\t\tlet adapter;\n\t\tconst props: Record = {};\n\n\t\tswitch (storageSetting.Adapter) {\n\t\t\tcase 'LocalStorage':\n\t\t\t\tadapter = SpaceAdapter.LocalStorage;\n\t\t\t\tbreak;\n\n\t\t\tcase 'SessionStorage':\n\t\t\t\tadapter = SpaceAdapter.SessionStorage;\n\t\t\t\tbreak;\n\n\t\t\tcase 'IndexedDB':\n\t\t\t\tadapter = SpaceAdapter.IndexedDB;\n\t\t\t\tprops.keyPath = 'id';\n\t\t\t\tbreak;\n\n\t\t\tcase 'RemoteStorage':\n\t\t\t\tadapter = SpaceAdapter.RemoteStorage;\n\t\t\t\tprops.headers = {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'FileSystem': {\n\t\t\t\tconst bridge = getDesktopBridge();\n\n\t\t\t\tif (bridge) {\n\t\t\t\t\tconst fsStorage = new FileSystemStorage(bridge);\n\n\t\t\t\t\tfsStorage.configuration({\n\t\t\t\t\t\tname: Text.friendly(engine.setting('Name') as string),\n\t\t\t\t\t\tversion: engine.setting('Version') as string,\n\t\t\t\t\t\tstore: storageSetting.Store,\n\t\t\t\t\t});\n\n\t\t\t\t\tengine.Storage = fsStorage as unknown as StorageInterface;\n\t\t\t\t} else {\n\t\t\t\t\tFancyError.show('engine:storage:filesystem_no_bridge', {});\n\n\t\t\t\t\t// Fall back to IndexedDB so the game remains functional\n\t\t\t\t\tadapter = SpaceAdapter.IndexedDB;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tadapter = SpaceAdapter.IndexedDB;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (window.navigator && !Platform.desktopApp && !Platform.cordova) {\n\t\t\tif (window.navigator.storage && window.navigator.storage.persist) {\n\t\t\t\twindow.navigator.storage.persist ().then ((persisted) => {\n\t\t\t\t\tif (persisted !== true) {\n\t\t\t\t\t\tconsole.warn ('Persistent Storage permission has been denied. When your device gets low on storage, it may choose to delete your game files.');\n\t\t\t\t\t}\n\t\t\t\t}).catch ((error) => {\n\t\t\t\t\tconsole.error (error);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (!(engine.Storage instanceof FileSystemStorage)) {\n\t\t\tengine.Storage = new Space(adapter, {\n\t\t\t\tname: Text.friendly(engine.setting('Name') as string),\n\t\t\t\tversion: engine.setting('Version') as string,\n\t\t\t\tstore: storageSetting.Store,\n\t\t\t\tendpoint: storageSetting.Endpoint,\n\t\t\t\tprops,\n\t\t\t} as ConstructorParameters[1]) as unknown as StorageInterface;\n\t\t}\n\t}\n\n\t// Setup all the upgrade functions\n\tfor (const upgrade of Object.keys (engine._upgrade)) {\n\t\tconst [oldVersion, newVersion] = upgrade.split ('::');\n\t\tconst upgradeEntry = engine._upgrade[upgrade];\n\t\tconst callback = upgradeEntry?.storage;\n\n\t\tif (callback) {\n\t\t\tconst replace = upgradeEntry?.replaceStorage === true;\n\n\t\t\tengine.Storage.upgrade (oldVersion, newVersion, async () => {\n\t\t\t\tconst oldData = await engine.Storage.getAll ();\n\t\t\t\tconst newData = callback (oldData);\n\t\t\t\tif (typeof newData === 'object' && newData !== null) {\n\t\t\t\t\tconst newEntries = Object.entries (newData as Record);\n\n\t\t\t\t\tif (replace) {\n\t\t\t\t\t\t// Full replacement: remove keys absent from newData so\n\t\t\t\t\t\t// migrations that rename or delete fields take effect.\n\t\t\t\t\t\tconst newKeys = new Set (newEntries.map (([k]) => k));\n\t\t\t\t\t\tfor (const key of Object.keys (oldData)) {\n\t\t\t\t\t\t\tif (!newKeys.has (key)) {\n\t\t\t\t\t\t\t\tawait engine.Storage.remove (key);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (const [key, value] of newEntries) {\n\t\t\t\t\t\tawait engine.Storage.set (key, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t// Check for incompatible screenshot & storage combination.\n\tif (engine.setting ('Screenshots') && !engine._hasCustomSaveScreenshot) {\n\t\tconst adapterName = storageSetting.Adapter.trim();\n\n\t\tif (adapterName === 'LocalStorage' || adapterName === 'SessionStorage') {\n\t\t\tFancyError.show('engine:screenshots:storage_incompatible', {\n\t\t\t\tadapter: adapterName\n\t\t\t});\n\n\t\t\t// Disable screenshots to prevent silent failures\n\t\t\tengine.setting('Screenshots' as keyof GameSettings, false);\n\t\t}\n\t}\n}\n\n// ============================================================================\n// Load from Slot\n// ============================================================================\n\n/**\n * Load a slot from the storage. This will recover the state of the game\n * from what was saved in it.\n *\n * @param slot - The key with which the slot was saved on the storage\n */\nexport function loadFromSlot (engine: VisualNovelEngine, slot: string): Promise {\n\tdocument.body.style.cursor = 'wait';\n\tengine.global ('playing', true);\n\n\tengine.trigger ('willLoadGame');\n\n\treturn resetGame (engine).then (() => {\n\t\tengine.hideScreens ();\n\n\t\treturn engine.Storage.get (slot).then ((rawData) => {\n\t\t\tconst data = rawData as LegacySaveData;\n\t\t\t// @Compatibility [<= v1.4.1]\n\t\t\t// Check if an older save format was used so we can transform\n\t\t\t// that information into the new format.\n\t\t\tif (typeof data.Engine !== 'undefined') {\n\n\t\t\t\t// Set the game state\n\t\t\t\tengine.state ({\n\t\t\t\t\tstep: data.Engine.Step,\n\t\t\t\t\tlabel: data.Engine.Label,\n\t\t\t\t\tscene: `show scene ${data.Engine.Scene}`,\n\t\t\t\t});\n\n\t\t\t\t// Retrieve if a song was playing so we can set it to the state\n\t\t\t\tif (data.Engine.Song !== '' && typeof data.Engine.Song !== 'undefined') {\n\t\t\t\t\tengine.state ({\n\t\t\t\t\t\tmusic: [{ statement: data.Engine.Song, paused: false }],\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Retrieve if a sound was playing so we can set it to the state\n\t\t\t\tif (data.Engine.Sound !== '' && typeof data.Engine.Sound !== 'undefined') {\n\t\t\t\t\tengine.state ({\n\t\t\t\t\t\tsound: [{ statement: data.Engine.Sound, paused: false }],\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Retrieve if particles were shown so we can set it to the state\n\t\t\t\tif (data.Engine.Particles !== '' && typeof data.Engine.Particles !== 'undefined') {\n\t\t\t\t\tengine.state ({\n\t\t\t\t\t\tparticles: `show particles ${data.Engine.Particles}`\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Check if there are images to be shown\n\t\t\t\tif (data.Show !== '' && typeof data.Show !== 'undefined') {\n\t\t\t\t\tconst show = data.Show.split (',');\n\n\t\t\t\t\t// For every image saved, add their element to the game\n\t\t\t\t\tfor (const element of show) {\n\t\t\t\t\t\tif (element.trim () !== '') {\n\t\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\t\tdiv.innerHTML = element.replace ('img/', 'assets/');\n\t\t\t\t\t\t\tif (div.firstChild) {\n\t\t\t\t\t\t\t\tconst item = $_(div.firstChild as HTMLElement);\n\t\t\t\t\t\t\t\tconst firstElement = item.get(0);\n\t\t\t\t\t\t\t\tif (firstElement) {\n\t\t\t\t\t\t\t\t\tif (element.indexOf ('data-character') > -1) {\n\t\t\t\t\t\t\t\t\t\t(engine.state ('characters') as string[]).push (`show character ${item.data ('character')} ${item.data ('sprite')} ${firstElement.className}`);\n\t\t\t\t\t\t\t\t\t} else if (element.indexOf ('data-image') > -1) {\n\t\t\t\t\t\t\t\t\t\t(engine.state ('characters') as string[]).push (`show image ${item.data ('image')} ${firstElement.className}`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst sceneElements = data.Engine!.SceneElementsHistory.map ((elements: string[]) => {\n\t\t\t\t\treturn elements.map ((element: string) => element.replace ('img/', 'assets/'));\n\t\t\t\t});\n\n\t\t\t\t// Set all the history variables with the ones from the old\n\t\t\t\t// format\n\t\t\t\tengine.history ({\n\t\t\t\t\tmusic: data.Engine!.MusicHistory,\n\t\t\t\t\tsound: data.Engine!.SoundHistory,\n\t\t\t\t\timage: data.Engine!.ImageHistory,\n\t\t\t\t\tcharacter: data.Engine!.CharacterHistory.map ((character: string) => {\n\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\tdiv.innerHTML = character.replace ('img/', 'assets/');\n\t\t\t\t\t\tif (!div.firstChild) return { statement: '', previous: null };\n\t\t\t\t\t\tconst item = $_(div.firstChild as HTMLElement);\n\t\t\t\t\t\tconst firstEl = item.get (0);\n\t\t\t\t\t\tif (!firstEl) return { statement: '', previous: null };\n\t\t\t\t\t\tconst classes = firstEl.classList;\n\t\t\t\t\t\tclasses.remove ('animated');\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstatement: `show character ${item.data ('character')} ${item.data ('sprite')} with ${classes.toString ()}`,\n\t\t\t\t\t\t\tprevious: null\n\t\t\t\t\t\t};\n\t\t\t\t\t}).filter((c) => c.statement !== ''),\n\t\t\t\t\tscene: data.Engine!.SceneHistory.map ((scene: string) => {\n\t\t\t\t\t\treturn `show scene ${scene}`;\n\t\t\t\t\t}),\n\t\t\t\t\tsceneElements: sceneElements,\n\t\t\t\t\tsceneState: sceneElements.map ((elements: string[]) => {\n\t\t\t\t\t\tif (elements.length > 0) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tcharacters: elements.filter((element: string) => element.indexOf ('data-character=') > -1).map ((element: string) => {\n\t\t\t\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t\t\t\t\t\tif (!div.firstChild) return '';\n\t\t\t\t\t\t\t\t\tconst image = $_(div.firstChild as HTMLElement);\n\t\t\t\t\t\t\t\t\tconst firstEl = image.get(0);\n\t\t\t\t\t\t\t\t\tif (!firstEl) return '';\n\t\t\t\t\t\t\t\t\tconst classes = firstEl.classList.toString ().replace ('animated', '').trim ();\n\t\t\t\t\t\t\t\t\treturn `show character ${image.data('character')} ${image.data('sprite')}${ classes.length > 0 ? ` with ${classes}`: ''}`;\n\t\t\t\t\t\t\t\t}).filter((c: string) => c !== ''),\n\t\t\t\t\t\t\t\timages: elements.filter((element: string) => element.indexOf ('data-image=') > -1).map ((element: string) => {\n\t\t\t\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t\t\t\t\t\tif (!div.firstChild) return '';\n\t\t\t\t\t\t\t\t\tconst image = $_(div.firstChild as HTMLElement);\n\t\t\t\t\t\t\t\t\tconst firstEl = image.get(0);\n\t\t\t\t\t\t\t\t\tif (!firstEl) return '';\n\t\t\t\t\t\t\t\t\tconst classes = firstEl.classList.toString ().replace ('animated', '').trim ();\n\t\t\t\t\t\t\t\t\treturn `show image ${image.data('image')}${ classes.length > 0 ? ` with ${classes}`: ''}`;\n\t\t\t\t\t\t\t\t}).filter((c: string) => c !== ''),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tcharacters: [],\n\t\t\t\t\t\t\timages: []\n\t\t\t\t\t\t};\n\t\t\t\t\t}),\n\t\t\t\t\tparticle: data.Engine!.ParticlesHistory.map ((particles: string) => {\n\t\t\t\t\t\treturn `show particles ${particles}`;\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\tengine.storage (data.Storage ?? {});\n\n\t\t\t} else {\n\t\t\t\t// If the new format is being used, things are a lot more simple\n\t\t\t\tconst migratedData = migrate((data.game ?? {}) as unknown as Record) as { state: Record; history: Record; storage: Record };\n\n\t\t\t\tengine.state (migratedData.state);\n\t\t\t\tengine.history (migratedData.history);\n\t\t\t\tengine.storage (migratedData.storage);\n\t\t\t}\n\n\n\t\t\tconst currentStep = engine.state ('step') as number;\n\t\t\tconst labelLength = (engine.label () as unknown[]).length;\n\t\t\tif (currentStep > labelLength - 1) {\n\t\t\t\tlet step = currentStep;\n\t\t\t\twhile (step > labelLength - 1) {\n\t\t\t\t\tstep = step - 1;\n\t\t\t\t}\n\t\t\t\tengine.state ({ step });\n\t\t\t}\n\n\t\t\treturn engine.onLoad ().then (() => {\n\t\t\t\t// Finally show the game and start playing\n\t\t\t\tengine.showScreen ('game');\n\t\t\t\tdocument.body.style.cursor = 'auto';\n\t\t\t\tengine.trigger ('didLoadGame');\n\t\t\t\treturn Promise.resolve ();\n\t\t\t});\n\t\t});\n\t});\n}\n", + "import type { VisualNovelEngine } from '../lib/types/Monogatari';\nimport type { StaticAction, ActionInstance, FancyErrorProps } from '../lib/types';\nimport type Action from '../lib/Action';\n\n// TODO: We need to decouple these.\nimport type TypeWriterComponent from '../components/type-writer';\nimport { $_, Util } from '@aegis-framework/artemis';\nimport { FancyError } from '../lib/FancyError';\n\n// ============================================================================\n// Async Assertion\n// ============================================================================\n\n/**\n * @static assertAsync - This function will run any function asynchronously\n * regardless of if the function to be run is async or not.\n *\n * @param {function} callable - The function to run\n * @param {Object} [self=null] - The reference to `this` in the function\n * @param {any[]} [args=null] - The arguments with which to call the function\n *\n * @returns {Promise} - Resolves if the function returned true and rejects if\n * the function returned false.\n */\nexport function assertAsync (engine: VisualNovelEngine, callable: (...args: unknown[]) => unknown, self: unknown = null, args: unknown[] | null = null): Promise {\n\tconst originalBlockValue = engine.global ('block');\n\n\tengine.global ('block', true);\n\n\treturn new Promise ((resolve, reject) => {\n\t\tconst result = callable.apply(self, args || []);\n\t\t// Check if the function returned a simple boolean\n\t\t// if the return value is true, the game will continue\n\t\tif (typeof result === 'boolean') {\n\t\t\tif (result) {\n\t\t\t\tresolve ();\n\t\t\t} else {\n\t\t\t\treject ();\n\t\t\t}\n\t\t} else if (result !== null && typeof result === 'object') {\n\t\t\t// Check if the result was a promise\n\t\t\tif ('then' in result && typeof result.then === 'function') {\n\t\t\t\t(result as Promise).then((value: unknown) => {\n\t\t\t\t\tif (typeof value === 'boolean') {\n\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\tresolve ();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treject ();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve ();\n\t\t\t\t\t}\n\t\t\t\t}).catch(reject);\n\t\t\t} else {\n\t\t\t\tresolve ();\n\t\t\t}\n\t\t} else {\n\t\t\treject ();\n\t\t}\n\t}).finally (() => {\n\t\tengine.global ('block', originalBlockValue);\n\t});\n}\n\n// ============================================================================\n// Step Navigation\n// ============================================================================\n\n/**\n * @static next - Advance to the next statement on the script\n *\n * @returns {void}\n */\nexport function next (engine: VisualNovelEngine): Promise {\n\t// Advance 1 step\n\tconst currentStep = engine.state ('step');\n\n\tengine.state ({ step: currentStep + 1 });\n\n\tconst label = engine.label ();\n\tconst step = engine.state ('step');\n\n\treturn new Promise ((resolve) => {\n\t\t// Clear the Stack using a Time Out instead of calling the function\n\t\t// directly, preventing an Overflow\n\t\tsetTimeout (() => {\n\t\t\tengine.run (label[step]).then (() => {\n\t\t\t\tengine.global ('_engine_block', false);\n\t\t\t\tresolve ();\n\t\t\t}).catch (() => {\n\t\t\t\tresolve ();\n\t\t\t});\n\t\t}, 0);\n\t});\n}\n\n/**\n * @static revert - Revert to the previous statement on the script\n *\n * @returns {void}\n */\nexport function previous (engine: VisualNovelEngine): Promise {\n\treturn new Promise ((resolve) => {\n\t\tsetTimeout (() => {\n\t\t\tengine.revert ().then (() => {\n\t\t\t\tengine.global ('_engine_block', false);\n\t\t\t\tresolve ();\n\t\t\t}).catch ((e) => {\n\t\t\t\tengine.debug.log ('Revert was prevented.\\n', e);\n\t\t\t\tengine.global ('_engine_block', false);\n\n\t\t\t\t// The game could not be reverted, either because an\n\t\t\t\t// action prevented it or because there are no statements\n\t\t\t\t// left to revert to.\n\t\t\t\tconst currentStep = engine.state ('step') as number;\n\n\t\t\t\tif (currentStep > 0) {\n\t\t\t\t\tengine.state ({\n\t\t\t\t\t\tstep: currentStep - 1\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tengine.proceed ({ userInitiated: false, skip: false, autoPlay: false }).then (() => {\n\t\t\t\t\tresolve ();\n\t\t\t\t});\n\t\t\t});\n\t\t}, 0);\n\t});\n}\n\n// ============================================================================\n// Action Preparation\n// ============================================================================\n\nexport function prepareAction(engine: VisualNovelEngine, statement: string, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null;\nexport function prepareAction(engine: VisualNovelEngine, statement: Record, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null;\nexport function prepareAction(engine: VisualNovelEngine, statement: string | Record, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null;\nexport function prepareAction (engine: VisualNovelEngine, statement: unknown, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null {\n\tlet action;\n\tlet interpolatedStatement: string[] | undefined;\n\n\t// Use the correct matching function (matchString or matchObject)\n\t// depending on the type of the current statement. If the statement\n\t// is a pure js function, it won't be reverted since we don't\n\t// know what to do to revert it.\n\tif (typeof statement === 'string') {\n\t\tinterpolatedStatement = engine.replaceVariables (statement).split (' ');\n\n\t\t// Check if it matches using the matchString method\n\t\taction = engine.actions ().find (a => a.matchString (interpolatedStatement!));\n\t} else if (typeof statement === 'object' && statement !== null) {\n\n\t\t// Check if it matches using the matchObject method\n\t\taction = engine.actions ().find (a => a.matchObject (statement as Record));\n\t}\n\n\tif (typeof action !== 'undefined') {\n\t\tconst act = new action (typeof statement === 'string' ? interpolatedStatement : statement);\n\n\t\t// The original statement is set just in case the action needs\n\t\t// access to it. By this point, statement is known to be string | Record\n\t\t// (functions are handled earlier and returned directly).\n\t\tact._setStatement (statement as string | Record);\n\n\t\t// The current cycle is also set just in case the action needs to\n\t\t// know what cycle it's currently being performed.\n\t\tact._setCycle (cycle);\n\n\t\t// Monogatari is set as the context of the action so that it can\n\t\t// access all its functionalities\n\t\tact.setContext (engine);\n\n\t\tact.setExtras(extras || {});\n\n\t\treturn act;\n\t}\n\n\treturn null;\n}\n\n// ============================================================================\n// Statement Execution\n// ============================================================================\n\n/**\n * @static revert - This is the function that allows to go back in the game\n * by reverting the statements played.\n *\n * @returns {Promise} - Whether the game was able to go back or not\n */\nexport async function revert (engine: VisualNovelEngine, statement: unknown = null, shouldAdvance = true, shouldStepBack = true): Promise<{ advance: boolean; step: boolean } | void> {\n\tconst actions = engine.actions ();\n\tconst before: Promise[] = actions.map (action => action.beforeRevert ({ advance: shouldAdvance, step: shouldStepBack }));\n\n\tawait Promise.all (before);\n\n\t// Check if we have steps behind us to revert to. If there aren't, then\n\t// we can't revert since we are already at the first statement.\n\tlet actionToRevert: unknown = null;\n\tconst currentStep = engine.state ('step') as number;\n\tconst currentLabel = engine.state ('label') as string;\n\tconst label = engine.label () as unknown[];\n\n\tif (statement !== null) {\n\t\tactionToRevert = statement;\n\t} else if (currentStep >= 1) {\n\t\tactionToRevert = label[currentStep - 1];\n\t} else {\n\t\tconst jumpHistory = engine.history ('jump') as Array<{ destination: { label: string; step: number }; source: { label: string; step: number } }>;\n\t\tconst jump = [...jumpHistory].reverse ().find (o => {\n\t\t\treturn o.destination.label === currentLabel && o.destination.step === 0;\n\t\t});\n\n\t\tif (typeof jump !== 'undefined') {\n\t\t\tengine.state ({\n\t\t\t\tlabel: jump.source.label,\n\t\t\t\tstep: jump.source.step\n\t\t\t});\n\t\t\tconst newLabel = engine.label () as unknown[];\n\t\t\tconst newStep = engine.state ('step') as number;\n\t\t\tactionToRevert = newLabel[newStep];\n\t\t\tengine.debug.debug ('Will revert to previous label.');\n\t\t} else {\n\t\t\tengine.debug.debug ('Will not revert since this is the beginning of the game.');\n\t\t}\n\t}\n\n\t// Don't allow null as a valid statement\n\tif (actionToRevert === null || typeof actionToRevert === 'undefined') {\n\t\t// Clear the Stack using a Time Out instead of calling\n\t\t// the function directly, preventing an Overflow\n\t\tconst labelArray = engine.label () as unknown[];\n\t\tconst step = engine.state ('step') as number;\n\n\t\tsetTimeout (() => {\n\t\t\tengine.run (labelArray[step]);\n\t\t}, 0);\n\n\t\tengine.debug.groupEnd ();\n\n\t\treturn Promise.resolve ();\n\t}\n\n\t// If the statement is a pure js function, it won't be reverted since we don't\n\t// know what to do to revert it.\n\tif (typeof actionToRevert === 'function') {\n\t\treturn Promise.reject ();\n\t}\n\n\tconst action = prepareAction (engine, actionToRevert as string | Record, { cycle: 'Revert' });\n\n\tif (action === null) {\n\t\treturn Promise.reject ('The action did not match any of the ones registered.');\n\t}\n\n\tengine.debug.debug ('Reverting Action', actionToRevert);\n\n\tengine.debug.groupCollapsed (`Revert Cycle [${(action.constructor as StaticAction).id}]`);\n\n\tengine.trigger ('willRevertAction', { action });\n\n\t// Run the willRevert method of the action first. This method\n\t// is usually used to tell whether an action can be reverted\n\t// or not.\n\treturn (action as Action).willRevert ().then (() => {\n\t\tengine.debug.debug ('Action Will Revert');\n\t\t// If it can be reverted, then run the revert method\n\t\treturn action.revert ().then (() => {\n\t\t\tengine.debug.debug ('Action Reverting');\n\t\t\t// If the reversion was successful, run the didRevert\n\t\t\t// function. The action will return a boolean (shouldContinue)\n\t\t\t// specifying if the game should go ahead and revert\n\t\t\t// the previous statement as well or if it should\n\t\t\t// wait instead\n\t\t\treturn action.didRevert ().then (({ advance, step }: { advance: boolean; step: boolean }) => {\n\t\t\t\tengine.debug.debug ('Action Did Revert');\n\n\t\t\t\tengine.trigger ('didRevertAction', { action });\n\n\t\t\t\tconst promises: Promise[] = [];\n\n\t\t\t\tfor (const act of engine.actions ()) {\n\t\t\t\t\tpromises.push (act.afterRevert ({ advance, step }));\n\t\t\t\t}\n\n\t\t\t\treturn Promise.all (promises).then (() => {\n\t\t\t\t\t// Since we reverted correctly, the step should\n\t\t\t\t\t// go back.\n\t\t\t\t\tconst currentStep = engine.state ('step') as number;\n\t\t\t\t\tif (step === true && shouldStepBack === true) {\n\t\t\t\t\t\tengine.state ({\n\t\t\t\t\t\t\tstep: currentStep - 1\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t// Revert the previous statement if the action\n\t\t\t\t\t// told us to.\n\t\t\t\t\tif (advance === true && shouldAdvance === true) {\n\t\t\t\t\t\t// Clear the Stack using a Time Out instead\n\t\t\t\t\t\t// of calling the function directly, preventing\n\t\t\t\t\t\t// an Overflow\n\t\t\t\t\t\tsetTimeout (() => {\n\t\t\t\t\t\t\tengine.revert ();\n\t\t\t\t\t\t}, 0);\n\t\t\t\t\t}\n\n\t\t\t\t\tengine.debug.groupEnd ();\n\t\t\t\t\treturn Promise.resolve ({ advance, step });\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}).catch ((e: unknown) => {\n\t\tif (typeof e === 'object' || typeof e === 'string') {\n\t\t\tconsole.error (e);\n\t\t}\n\t\t// Clear the Stack using a Time Out instead of calling\n\t\t// the function directly, preventing an Overflow\n\t\tconst labelArray = engine.label () as unknown[];\n\t\tconst step = engine.state ('step') as number;\n\n\t\tsetTimeout (() => {\n\t\t\tengine.run (labelArray[step]);\n\t\t}, 0);\n\n\t\tengine.debug.groupEnd ();\n\n\t\treturn Promise.resolve ();\n\t});\n}\n\n/**\n * @static run - Run a specified statement.\n *\n * @param {string|Object|function} statement - The Monogatari statement to run\n * @param {boolean} advance - Whether the game should advance or wait for user\n * interaction. This parameter is mainly used to prevent the game from advancing\n * when loading the game or performing some actions and we don't want them to\n * affect the game flow.\n *\n * @returns {Promise} - Resolves if the statement was run correctly or rejects\n * if it couldn't be run correctly.\n */\nexport async function run (engine: VisualNovelEngine, statement: unknown, shouldAdvance = true): Promise<{ advance: boolean }> {\n\t// Capture current position at the start to detect if another advance happened\n\t// during async operations (e.g., user click during Notification's willApply)\n\tconst initialStep = engine.state ('step') as number;\n\tconst initialLabel = engine.state ('label') as string;\n\n\tconst actions = engine.actions ();\n\tconst before: Promise[] = actions.map (action => action.beforeRun ({ advance: shouldAdvance }));\n\n\tawait Promise.all (before);\n\n\t// Don't allow null as a valid statement\n\tif (statement === null) {\n\t\tengine.debug.trace ();\n\t\tengine.debug.groupEnd ();\n\t\tthrow new Error ('Statement was null.');\n\t}\n\n\tengine.debug.debug ('Preparing Action', statement);\n\n\tif (typeof statement === 'function') {\n\t\tengine.debug.groupCollapsed (`Run Cycle [JS Function]`);\n\n\t\t// Block the game while the function is being run\n\t\tengine.global ('block', true);\n\n\t\t// Run the function asynchronously and after it has run, unblock\n\t\t// the game so it can continue.\n\t\ttry {\n\t\t\tconst returnValue = await Util.callAsync (statement as (...args: unknown[]) => unknown, engine);\n\n\t\t\tengine.global ('block', false);\n\n\t\t\tengine.debug.groupEnd ();\n\n\t\t\tif (shouldAdvance && returnValue !== false) {\n\t\t\t\t// Only advance if we're still on the same step - another action might have\n\t\t\t\t// already advanced the game (e.g., user clicked during async function)\n\t\t\t\tconst currentStep = engine.state ('step') as number;\n\t\t\t\tconst currentLabel = engine.state ('label') as string;\n\t\t\t\tif (currentStep === initialStep && currentLabel === initialLabel) {\n\t\t\t\t\t// TODO: Do we need to return here? We don't do it in the other run methods.\n\t\t\t\t\treturn engine.next ().then (() => ({ advance: true }));\n\t\t\t\t} else {\n\t\t\t\t\tengine.debug.debug ('Skipping auto-advance: game already advanced by another action');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn Promise.resolve ({ advance: false });\n\t\t} catch (e: unknown) {\n\t\t\tconst error: FancyErrorProps = {\n\t\t\t\t'Label': String(engine.state ('label')),\n\t\t\t\t'Step': Number(engine.state ('step')),\n\t\t\t\t'Help': {\n\t\t\t\t\t'_': 'Check the code for your function, there may be additional information in the console.',\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (e && typeof e === 'object' && 'message' in e) {\n\t\t\t\tconst err = e as Error & { fileName?: string; lineNumber?: number };\n\t\t\t\terror['Error Message'] = err.message;\n\t\t\t\tif (err.fileName) error['File Name'] = err.fileName;\n\t\t\t\tif (err.lineNumber) error['Line Number'] = err.lineNumber;\n\t\t\t} else if (typeof e === 'string') {\n\t\t\t\terror['Error Message'] = e;\n\t\t\t}\n\n\t\t\tFancyError.show ('engine:run:function_error', {\n\t\t\t\tlabel: String(engine.state ('label')),\n\t\t\t\tstep: Number(engine.state ('step')),\n\t\t\t\t...error\n\t\t\t});\n\n\t\t\tengine.debug.trace ();\n\t\t\tengine.debug.groupEnd ();\n\n\t\t\treturn { advance: false };\n\t\t};\n\t}\n\n\tconst action: Action | null = prepareAction (engine, statement as string | Record, { cycle: 'Application' });\n\n\tif (action === null) {\n\t\tthrow new Error ('The action did not match any of the ones registered.');\n\t}\n\n\tengine.debug.groupCollapsed (`Run Cycle [${(action.constructor as StaticAction).id}]`);\n\n\tengine.trigger ('willRunAction', { action });\n\n\ttry {\n\t\tengine.debug.debug ('Action Will Apply');\n\t\tawait action.willApply ();\n\t} catch (e) {\n\t\tengine.debug.debug (`Will Apply Failed.\\nReason: ${e}`);\n\t\tengine.debug.trace ();\n\t\tengine.debug.groupEnd ();\n\t\tthrow e;\n\t}\n\n\ttry {\n\t\tengine.debug.debug ('Action Applying');\n\t\tawait action.apply ();\n\t} catch (e) {\n\t\tengine.debug.debug (`Apply Failed.\\nReason: ${e}`);\n\t\tengine.debug.trace ();\n\t\tengine.debug.groupEnd ();\n\t\tthrow e;\n\t}\n\n\t// If everything has been run correctly, then run the didApply method.\n\t// The action will return a boolean (advance) specifying if the game should\n\t// run the next statement right away or if it should wait instead.\n\ttry {\n\t\tconst { advance } = await action.didApply ();\n\n\t\tengine.debug.debug ('Action Did Apply');\n\t\tengine.trigger ('didRunAction', { action });\n\n\t\tconst promises: Promise[] = actions.map (action => action.afterRun ({ advance: advance === true }));\n\n\t\tawait Promise.all (promises);\n\n\t\tif (advance === true && shouldAdvance === true) {\n\t\t\t// Only advance if we're still on the same step - another action might have\n\t\t\t// already advanced the game (e.g., user clicked during async willApply)\n\t\t\tconst currentStep = engine.state ('step') as number;\n\t\t\tconst currentLabel = engine.state ('label') as string;\n\n\t\t\tif (currentStep === initialStep && currentLabel === initialLabel) {\n\t\t\t\tengine.debug.debug ('Next action will be run right away');\n\t\t\t\tawait engine.next ();\n\t\t\t} else {\n\t\t\t\tengine.debug.debug ('Skipping auto-advance: game already advanced by another action');\n\t\t\t}\n\t\t}\n\n\t\tengine.debug.groupEnd ();\n\n\t\treturn { advance: advance === true };\n\t} catch (e) {\n\t\tengine.debug.debug (`Did Apply Failed.\\nReason: ${e}`);\n\t\tengine.debug.trace ();\n\t\tengine.debug.groupEnd ();\n\t\tthrow e;\n\t}\n}\n\n// ============================================================================\n// High-Level Flow Control\n// ============================================================================\n\nexport async function proceed (engine: VisualNovelEngine, { userInitiated = false, skip = false, autoPlay = false } = {}): Promise {\n\tawait shouldProceed (engine, { userInitiated, skip, autoPlay });\n\n\tengine.global ('_engine_block', true);\n\n\tawait willProceed (engine);\n\tawait engine.next ();\n}\n\nexport async function rollback (engine: VisualNovelEngine): Promise {\n\tconst allowRollback = engine.setting ('AllowRollback') === true;\n\n\tif (!allowRollback) {\n\t\treturn;\n\t}\n\n\tconst stateObj = engine.state() as { step: number; label: string };\n\n\tif (stateObj.step === 0) {\n\t\tconst jumpHistory = engine.history ('jump') as { destination: { label: string; step: number } }[];\n\t\tconst jump = [...jumpHistory].reverse ().find (o => {\n\t\t\treturn o.destination.label === stateObj.label && o.destination.step === 0;\n\t\t});\n\n\t\tif (typeof jump === 'undefined') {\n\t\t\tengine.debug.debug ('Will not attempt rollback since this is the beginning of the game.');\n\t\t\treturn;\n\t\t}\n\t}\n\n\tawait shouldRollback (engine);\n\n\tengine.global ('_engine_block', true);\n\n\tawait willRollback (engine);\n\tawait engine.previous ();\n}\n\n// ============================================================================\n// Proceed/Rollback Checks\n// ============================================================================\n\n/**\n * @static shouldProceed - Check if the game can proceed\n *\n * @returns {Promise} - Resolves if the game can proceed or reject if it\n * can't proceed right now.\n */\nexport function shouldProceed (engine: VisualNovelEngine, { userInitiated = false, skip = false, autoPlay = false }): Promise {\n\t// TODO: This should be removed\n\tconst deprecatedBlocks = engine.global ('block') || engine.global ('_executing_sub_action');\n\n\t// Check if the game is visible, if it's not, then it probably is not\n\t// playing or is looking at some menu and thus the game should not\n\t// proceed. The game will not proceed if it's blocked or if the distraction\n\t// free mode is enabled.\n\tif (!$_('.modal').isVisible ()\n\t\t&& !engine.global ('distraction_free')\n\t\t&& !deprecatedBlocks\n\t\t&& !engine.global ('_engine_block')) {\n\t\tconst promises = [];\n\n\t\tengine.debug.groupCollapsed ('shouldProceed Check');\n\t\ttry {\n\n\t\t\tengine.debug.debug ('Checking Actions');\n\n\t\t\t// Check action by action if they will allow the game to proceed\n\t\t\tfor (const action of engine.actions ()) {\n\t\t\t\tpromises.push (action.shouldProceed ({ userInitiated, skip, autoPlay }).then (() => {\n\t\t\t\t\tengine.debug.debug (`OK ${action.id}`);\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tengine.debug.debug (`FAIL ${action.id}\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\tengine.debug.debug ('Checking Components');\n\n\t\t\t// Check component by component if they will allow the game to proceed\n\t\t\tfor (const component of engine.components ()) {\n\t\t\t\tpromises.push (component.shouldProceed ({ userInitiated, skip, autoPlay }).then (() => {\n\t\t\t\t\tengine.debug.debug (`OK ${component.tag}`);\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tengine.debug.debug (`FAIL ${component.tag}\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t}));\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error (e);\n\t\t\tconst errorMessage = e instanceof Error ? e.message : String(e);\n\t\t\tFancyError.show ('engine:lifecycle:should_proceed_error', {\n\t\t\t\terrorMessage: errorMessage\n\t\t\t});\n\t\t}\n\n\t\tengine.debug.debug ('Checking Extra Conditions');\n\n\t\treturn Promise.all (promises).then ((...args) => {\n\t\t\tengine.debug.groupEnd ();\n\t\t\treturn Promise.resolve (...args);\n\t\t}).catch ((e) => {\n\t\t\tengine.debug.groupEnd ();\n\t\t\treturn Promise.reject (e);\n\t\t});\n\t} else {\n\t\tengine.debug.debug({\n\t\t\t'Block': engine.global ('block'),\n\t\t\t'Distraction Free': engine.global ('distraction_free'),\n\t\t\t'Engine Block': engine.global ('_engine_block'),\n\t\t\t'Executing Sub Action': engine.global ('_executing_sub_action'),\n\t\t\t'Modal Visible': $_('.modal').isVisible (),\n\t\t});\n\n\t\treturn Promise.reject ('Extra condition check failed.');\n\t}\n}\n\nexport function willProceed (engine: VisualNovelEngine): Promise {\n\tengine.debug.groupCollapsed ('Can proceed check passed, game will proceed.');\n\n\tconst actions = engine.actions ();\n\tconst components = engine.components ();\n\n\tconst promises = [];\n\n\ttry {\n\t\t// Check action by action if they will allow the game to proceed\n\t\tfor (const action of actions) {\n\t\t\tpromises.push (action.willProceed ().then (() => {\n\t\t\t\tengine.debug.debug (`OK ${action.id}`);\n\t\t\t}).catch ((e) => {\n\t\t\t\tengine.debug.debug (`FAIL ${action.id}\\nReason: ${e}`);\n\t\t\t\treturn Promise.reject (e);\n\t\t\t}));\n\t\t}\n\n\t\t// Check component by component if they will allow the game to proceed\n\t\tfor (const component of components) {\n\t\t\tpromises.push (component.willProceed ().then (() => {\n\t\t\t\tengine.debug.debug (`OK ${component.tag}`);\n\t\t\t}).catch ((e) => {\n\t\t\t\tengine.debug.debug (`FAIL ${component.tag}\\nReason: ${e}`);\n\t\t\t\treturn Promise.reject (e);\n\t\t\t}));\n\t\t}\n\t} catch (e) {\n\t\tconsole.error (e);\n\n\t\tconst errorMessage = e instanceof Error ? e.message : String(e);\n\n\t\tFancyError.show ('engine:lifecycle:will_proceed_error', {\n\t\t\terrorMessage: errorMessage\n\t\t});\n\t}\n\n\treturn Promise.all (promises).then ((...args) => {\n\t\tengine.debug.groupEnd ();\n\t\treturn Promise.resolve (...args);\n\t}).catch ((e) => {\n\t\tengine.debug.groupEnd ();\n\t\treturn Promise.reject (e);\n\t});\n}\n\n// ============================================================================\n// Typing Control\n// ============================================================================\n\n/**\n * @static stopTyping - Stop the typing effect.\n *\n * @param component - A TypeWriter component instance\n * @returns {void}\n */\nexport function stopTyping (engine: VisualNovelEngine, component: TypeWriterComponent): void {\n\t// Main differences between instant text & speed text:\n\t// Instant Text:\n\t// -- Appear instantly & removes all non-node formatting.\n\t// Speed Text:\n\t// -- Appear gradually at the fastest speed while keeping all non-node formatting.\n\t// -- Setting min-speed to -1 or lower results in the benefits of speed text and instant text.\n\tconst instant = engine.setting('InstantText') as boolean;\n\n\t// TypeWriter.finish() handles setting finished_typing and triggering events\n\tcomponent.finish(instant);\n}\n\n// ============================================================================\n// Rollback Checks\n// ============================================================================\n\n/**\n * @static shouldRollback - Check if the game can revert\n *\n * @returns {Promise} - Resolves if the game can be reverted or reject if it\n * can't be reverted right now.\n */\nexport function shouldRollback (engine: VisualNovelEngine): Promise {\n\t// Check if the game is visible, if it's not, then it probably is not\n\t// playing or is looking at some menu and thus the game should not\n\t// revert. The game will not revert if it's blocked or if the distraction\n\t// free mode is enabled.\n\tif (!engine.global ('distraction_free')\n\t\t&& !engine.global ('block')\n\t\t&& (!engine.global ('_engine_block') || engine.global ('_executing_sub_action'))) {\n\t\tconst promises = [];\n\n\t\tengine.debug.groupCollapsed ('shouldRollback Check');\n\n\t\ttry {\n\t\t\t// Check action by action if they will allow the game to revert\n\t\t\tfor (const action of engine.actions ()) {\n\t\t\t\tpromises.push (action.shouldRollback ().then (() => {\n\t\t\t\t\tengine.debug.debug (`OK ${action.id}`);\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tengine.debug.debug (`FAIL ${action.id}\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\t// Check component by component if they will allow the game to revert\n\t\t\tfor (const component of engine.components ()) {\n\t\t\t\tpromises.push (component.shouldRollback ().then (() => {\n\t\t\t\t\tengine.debug.debug (`OK ${component.tag}`);\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tengine.debug.debug (`FAIL ${component.tag}\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t}));\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error (e);\n\n\t\t\tconst errorMessage = e instanceof Error ? e.message : String(e);\n\n\t\t\tFancyError.show ('engine:lifecycle:should_rollback_error', {\n\t\t\t\terrorMessage: errorMessage\n\t\t\t});\n\t\t}\n\n\t\treturn Promise.all (promises).then ((...args) => {\n\t\t\tengine.debug.groupEnd ();\n\t\t\treturn Promise.resolve (...args);\n\t\t}).catch ((e) => {\n\t\t\tengine.debug.groupEnd ();\n\t\t\treturn Promise.reject (e);\n\t\t});\n\t} else {\n\t\treturn Promise.reject ('Extra condition check failed.');\n\t}\n}\n\nexport function willRollback (engine: VisualNovelEngine): Promise {\n\tconst promises = [];\n\n\tengine.debug.groupCollapsed ('Should Rollback Check passed, game will roll back.');\n\n\ttry {\n\t\t// Check action by action if they will allow the game to revert\n\t\tfor (const action of engine.actions ()) {\n\t\t\tpromises.push (action.willRollback ().then (() => {\n\t\t\t\tengine.debug.debug (`OK ${action.id}`);\n\t\t\t}).catch ((e) => {\n\t\t\t\tengine.debug.debug (`FAIL ${action.id}\\nReason: ${e}`);\n\t\t\t\treturn Promise.reject (e);\n\t\t\t}));\n\t\t}\n\n\t\t// Check component by component if they will allow the game to revert\n\t\tfor (const component of engine.components ()) {\n\t\t\tpromises.push (component.willRollback ().then (() => {\n\t\t\t\tengine.debug.debug (`OK ${component.tag}`);\n\t\t\t}).catch ((e) => {\n\t\t\t\tengine.debug.debug (`FAIL ${component.tag}\\nReason: ${e}`);\n\t\t\t\treturn Promise.reject (e);\n\t\t\t}));\n\t\t}\n\t} catch (e) {\n\t\tconsole.error (e);\n\t\tconst errorMessage = e instanceof Error ? e.message : String(e);\n\t\tFancyError.show ('engine:lifecycle:will_rollback_error', {\n\t\t\terrorMessage: errorMessage\n\t\t});\n\t}\n\n\treturn Promise.all (promises).then ((...args) => {\n\t\tengine.debug.groupEnd ();\n\t\treturn Promise.resolve (...args);\n\t}).catch ((e) => {\n\t\tengine.debug.groupEnd ();\n\t\treturn Promise.reject (e);\n\t});\n}\n", + "/**\n * ============================================================\n * Arabic\n * ============================================================\n *\n * Translators:\n *\n * Ren \n */\n\nexport default {\n\t'AdvanceHelp': 'للتقدم في القصة انقز ŲØŲ²Ų± الفأره Ų§Ł„Ų£ŁŠŲ³Ų± او المس الؓاؓه في اي Ł…ŁƒŲ§Ł† او Ų§Ų¶ŲŗŲ· Ų²Ų± المسافة',\n\t'AllowPlayback': 'Ų£Ų¶ŲŗŲ· هنا Ł„ŲŖŁŲ¹ŁŠŁ„ Ų§Ł…ŁƒŲ§Ł†ŁŠŲ© ŲŖŲ“ŲŗŁŠŁ„ Ų§Ł„ŲµŁˆŲŖ',\n\t'Audio': 'Ų§Ł„Ų£ŲµŁˆŲ§ŲŖ',\n\t'AutoPlay': 'ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\t'AutoPlayButton': 'ŲŖŁŲ¹ŁŠŁ„ Ų§Ł„ŲŖŲ“ŲŗŁŠŁ„ Ų§Ł„ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\t'AutoPlaySpeed': 'Ų³Ų±Ų¹Ų© Ų§Ł„ŲŖŲ“ŲŗŁŠŁ„ Ų§Ł„ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\n\t'Back': 'ŲŖŲ±Ų§Ų¬Ų¹',\n\t'BackButton': 'Ų§Ł„Ų¹ŁˆŲÆŲ©',\n\n\t'Cancel': 'الغاؔ',\n\t'Close': 'اغلاق',\n\t'Confirm': 'هل ŲŖŲ±ŲŗŲØ ŲØŲ§Ł„Ų®Ų±ŁˆŲ¬ŲŸ',\n\t'Credits': 'Ų§Ł„Ų¹Ų§Ł…Ł„ŁŠŁ† على Ų§Ł„Ł…Ų“Ų±ŁˆŲ¹',\n\n\t'Delete': 'حذف',\n\t'DialogLogButton': 'اظهار Ų²Ų± Ų§Ł„Ų­ŁˆŲ§Ų±',\n\n\t'FullScreen': 'ملؔ الؓاؓة',\n\n\t'Gallery': 'Ł…Ų¹Ų±Ų¶ Ų§Ł„ŲµŁˆŲ±',\n\n\t'Help': 'مساعده',\n\t'Hide': 'اخفاؔ',\n\t'HideButton': 'اخفاؔ ŲµŁ†ŲÆŁˆŁ‚ Ų§Ł„Ų­ŁˆŲ§Ų±',\n\n\t'iOSAudioWarning': 'Ų§Ų¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„ŲµŁˆŲŖ غير Ł…ŲÆŲ¹ŁˆŁ…Ł‡ على أنظمة iOS',\n\n\t'KeyboardShortcuts': 'Ų„Ų®ŲŖŲµŲ§Ų±Ų§ŲŖ Ł„ŁˆŲ­Ų© Ų§Ł„Ł…ŁŲ§ŲŖŁŠŲ­',\n\n\t'Language': 'اللغة',\n\t'Load': 'Ų§Ų³ŲŖŲ±Ų¬Ų§Ų¹',\n\t'LoadAutoSaveSlots': 'خانات الحفظ Ų§Ł„ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\t'LoadButton': 'فتح Ų“Ų§Ų“Ų© الحفظ ŁˆŲ§Ł„Ų§Ų³ŲŖŲ±Ų¬Ų§Ų¹',\n\t'Loading': 'ŁŠŲŖŁ… الاسترجاع',\n\t'LoadingMessage': 'ŁŠŲ±Ų¬Ł‰ الانتظار Ų±ŁŠŲ«Ł…Ų§ ŁŠŲŖŁ… ŲŖŲ­Ł…ŁŠŁ„ الملفات',\n\t'LoadSlots': 'خانات الحفظ',\n\t'LocalStorageWarning': 'الحفظ Ų§Ł„Ł…Ų­Ł„ŁŠ غير Ł…ŲÆŲ¹ŁˆŁ… على هذا المتصفح',\n\t'Log': 'سجل',\n\n\t'Music': 'صوت Ų§Ł„Ł…ŁˆŲ³ŁŠŁ‚Ł‰',\n\n\t'NewContent': 'توجد Ł…Ų­ŲŖŁˆŁŠŲ§ŲŖ Ų¬ŲÆŁŠŲÆŁ‡ ŁŠŲ±Ų¬Ł‰ ŲŖŁ†Ų“ŁŠŲ· الصفحة لمؓاهدتها',\n\t'NoSavedGames': 'لا توجد ملفات حفظ',\n\t'NoAutoSavedGames': 'لا توجد خانات حفظ ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\t'NoDialogsAvailable': 'لا توجد حوارات. ستظهر Ų§Ł„Ų­ŁˆŲ§Ų±Ų§ŲŖ هنا عندما ŁŠŲŖŁ… ŁƒŲŖŲ§ŲØŲŖŁ‡Ų§',\n\n\t'OK': 'Ł…ŁˆŲ§ŁŁ‚',\n\t'OrientationWarning': 'الرجاؔ وضع الجهاز على الجانب الآخر Ł„ŲŖŲ³ŲŖŲ·ŁŠŲ¹ اللعب',\n\t'Overwrite': 'الاستبدال',\n\n\t'QuickButtons': 'Ų§Ų²Ų±Ų§Ų± خانات الحفظ Ų§Ł„Ų³Ų±ŁŠŲ¹',\n\t'QuickMenu': 'القائمة Ų§Ł„Ų³Ų±ŁŠŲ¹Ų©',\n\t'Quit': 'خروج',\n\t'QuitButton': 'انهاؔ اللعبه',\n\n\t'Resolution': 'Ų¹Ų±Ų¶ الؓاؓة',\n\n\t'Save': 'حفظ',\n\t'SaveButton': 'يفتح Ų“Ų§Ų“Ų© حفظ اللعبة',\n\t'SaveInSlot': 'حفظ في خانة',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'Ų„Ų¹ŲÆŲ§ŲÆŲ§ŲŖ',\n\t'SettingsButton': 'يفتح صفحة ال؄عدادات',\n\t'Show': 'Ų¹Ų±Ų¶',\n\t'Skip': 'تخطي',\n\t'SkipButton': 'ŲØŲÆŲ” وضع Ų§Ł„ŲŖŲ®Ų·ŁŠ',\n\t'SlotDeletion': 'هل أنت Ł…ŲŖŲ£ŁƒŲÆ من رغبتك في حذف هذه Ų§Ł„Ų®Ų§Ł†Ų©ŲŸ',\n\t'SlotOverwrite': 'هل أنت Ł…ŲŖŲ£ŁƒŲÆ من رغبتك في Ų§Ų³ŲŖŲØŲÆŲ§Ł„ هذه Ų§Ł„Ų®Ų§Ł†Ų©ŲŸ',\n\t'Sound': 'مقدار صوت Ų§Ł„Ų§ŲµŁˆŲ§ŲŖ',\n\t'Start': 'ŲØŲÆŲ”',\n\t'Stop': 'ŲŖŁˆŁ‚Ł',\n\n\t'TextSpeed': 'Ų³Ų±Ų¹Ų© النص',\n\n\t'Video': 'مقدار صوت Ų§Ł„ŁŁŠŲÆŁŠŁˆ',\n\t'Voice': 'مقدار صوت Ų§Ł„ŁƒŁ„Ų§Ł… Ų§Ł„Ł…Ł†Ų·ŁˆŁ‚',\n\n\t'Windowed': 'نافذة'\n};\n", + "/**\n * ============================================================\n * Belarusian\n * ============================================================\n *\n * Translators:\n *\n * Yakauleu \"Wiedy Mi\" Uladzislau \n */\n\nexport default {\n\t'AdvanceHelp': 'Каб Š³ŃƒŠ»ŃŃ†ŃŒ, націсніце на прабел або Š»ŠµŠ²Š°ŃŽ кнопку Š¼Ń‹ŃˆŃ‹',\n\t'AllowPlayback': 'ŠŠ°Ń†Ń–ŃŠ½Ń–Ń†Šµ тут, каб Š“Š°Š·Š²Š¾Š»Ń–Ń†ŃŒ прайграванне Š°ŃžŠ“Ń‹Ń',\n\t'Audio': 'ŠŃžŠ“Ń‹Ń',\n\t'AutoPlay': 'ŠŃžŃ‚Š°',\n\t'AutoPlayButton': 'Š£ŠŗŠ»ŃŽŃ‡Ń‹Ń†ŃŒ Š°ŃžŃ‚Š°ŠæŃ€Š°Š¹Š³Ń€Š°Š²Š°Š½Š½Šµ',\n\t'AutoPlaySpeed': 'Š„ŃƒŃ‚ŠŗŠ°ŃŃ†ŃŒ Š°ŃžŃ‚Š°ŠæŃ€Š°Š¹Š³Ń€Š°Š²Š°Š½Š½Ń',\n\n\t'Back': 'ŠŠ°Š·Š°Š“',\n\t'BackButton': 'ŠŸŠµŃ€Š°Š¹ŃŃ†Ń– назаГ',\n\n\t'Cancel': 'Š”ŠŗŠ°ŃŠ°Š²Š°Ń†ŃŒ',\n\t'Close': 'Š—Š°ŠŗŃ€Ń‹Ń†ŃŒ',\n\t'Confirm': 'Выйсці?',\n\t'Credits': 'Цітры',\n\n\t'Delete': 'Š’Ń‹Š“Š°Š»Ń–Ń†ŃŒ',\n\t'DialogLogButton': 'ŠŸŠ°ŠŗŠ°Š·Š°Ń†ŃŒ Š¶ŃƒŃ€Š½Š°Š» Š“Ń‹ŃŠ»Š¾Š³Š°Ńž',\n\n\t'FullScreen': 'ŠŸŠ¾ŃžŠ½Ń‹ ŃŠŗŃ€Š°Š½',\n\n\t'Gallery': 'Š“Š°Š»ŠµŃ€ŃŃ',\n\n\t'Help': 'Дапамога',\n\t'Hide': 'Š”Ń…Š°Š²Š°Ń†ŃŒ',\n\t'HideButton': 'Š”Ń…Š°Š²Š°Ń†ŃŒ Ń‚ŃŠŗŃŃ‚Š°Š²Š°Šµ поле',\n\n\t'iOSAudioWarning': 'ŠŠ°Š»Š°Š“Ń‹ Š°ŃžŠ“Ń‹Ń не ŠæŠ°Š“Ń‚Ń€Ń‹Š¼Š»Ń–Š²Š°ŃŽŃ†Ń†Š° на iOS',\n\n\t'KeyboardShortcuts': 'Š„ŃƒŃ‚ŠŗŃ–Ń ŠŗŠ»Š°Š²Ń–ŃˆŃ‹',\n\n\t'Language': 'Мова',\n\t'Load': 'Š—Š°Š³Ń€ŃƒŠ·Ń–Ń†ŃŒ',\n\t'LoadAutoSaveSlots': 'ŠŃžŃ‚Š°Š·Š°Ń…Š°Š²Š°Š½Ń‹Ń Š³ŃƒŠ»ŃŒŠ½Ń–',\n\t'LoadButton': 'ŠŠ“ŠŗŃ€Ń‹Ń†ŃŒ Š¼ŠµŠ½ŃŽ Š·Š°Š³Ń€ŃƒŠ·ŠŗŃ–',\n\t'Loading': 'Š—Š°Š³Ń€ŃƒŠ·ŠŗŠ°',\n\t'LoadingMessage': 'ŠŸŠ°Ń‡Š°ŠŗŠ°Š¹Ń†Šµ ŠæŠ¾ŃžŠ½Š°Š¹ Š·Š°Š³Ń€ŃƒŠ·ŠŗŃ– Ń€ŃŃŃƒŃ€ŃŠ°Ńž',\n\t'LoadSlots': 'Š—Š°Ń…Š°Š²Š°Š½Ń‹Ń Š³ŃƒŠ»ŃŒŠ½Ń–',\n\t'LocalStorageWarning': 'Š›Š°ŠŗŠ°Š»ŃŒŠ½Š°Šµ ŃŃ…Š¾Š²Ń–ŃˆŃ‡Š° Š½ŠµŠ“Š°ŃŃ‚ŃƒŠæŠ½Š° ў Š³ŃŃ‚Ń‹Š¼ Š±Ń€Š°ŃžŠ·ŠµŃ€Ń‹',\n\t'Log': 'Š–ŃƒŃ€Š½Š°Š»',\n\n\t'Music': 'Š„ŃƒŃ‡Š½Š°ŃŃ†ŃŒ Š¼ŃƒŠ·Ń‹ŠŗŃ–',\n\n\t'NewContent': 'Š”Š°ŃŃ‚ŃƒŠæŠ½Š° новае змесціва, ŠæŠµŃ€Š°Š·Š°Š³Ń€ŃƒŠ·Ń–Ń†Šµ ŃŃ‚Š°Ń€Š¾Š½ŠŗŃƒ, каб Š°Ń‚Ń€Ń‹Š¼Š°Ń†ŃŒ Š°ŠæŠ¾ŃˆŠ½ŃŽŃŽ Š²ŠµŃ€ŃŃ–ŃŽ',\n\t'NoSavedGames': 'ŠŃŠ¼Š° захаваных Š³ŃƒŠ»ŃŒŠ½ŃŃž',\n\t'NoAutoSavedGames': 'ŠŃŠ¼Š° Š°ŃžŃ‚Š°Š·Š°Ń…Š°Š²Š°Š½Ń‹Ń… Š³ŃƒŠ»ŃŒŠ½ŃŃž',\n\t'NoDialogsAvailable': 'ŠŃŠ¼Š° Š“Š°ŃŃ‚ŃƒŠæŠ½Ń‹Ń… Š“Ń‹ŃŠ»Š¾Š³Š°Ńž. Š”Ń‹ŃŠ»Š¾Š³Ń– Š±ŃƒŠ“ŃƒŃ†ŃŒ Š·\\'ŃŃžŠ»ŃŃ†Ń†Š° тут па меры ŠæŃ€Š°Ń…Š¾Š“Š¶Š°Š½Š½Ń Š³ŃƒŠ»ŃŒŠ½Ń–',\n\n\t'OK': 'ŠžŠš',\n\t'OrientationWarning': 'Каб Š³ŃƒŠ»ŃŃ†ŃŒ, ŠæŠ°Š²ŃŃ€Š½Ń–Ń†Šµ вашу ŠæŃ€Ń‹Š»Š°Š“Ńƒ',\n\t'Overwrite': 'ŠŸŠµŃ€Š°Š·Š°ŠæŃ–ŃŠ°Ń†ŃŒ',\n\n\t'QuickButtons': 'ŠšŠ½Š¾ŠæŠŗŃ– Ń…ŃƒŃ‚ŠŗŠ°Š³Š° Š¼ŠµŠ½ŃŽ',\n\t'QuickMenu': 'Š„ŃƒŃ‚ŠŗŠ°Šµ Š¼ŠµŠ½ŃŽ',\n\t'Quit': 'Выйсці',\n\t'QuitButton': 'Выйсці Š· Š³ŃƒŠ»ŃŒŠ½Ń–',\n\n\t'Resolution': 'Š Š°Š·Ń€Š¾Š·Š½Š°ŃŃ†ŃŒ',\n\n\t'Save': 'Š—Š°Ń…Š°Š²Š°Ń†ŃŒ',\n\t'SaveButton': 'ŠŠ“ŠŗŃ€Ń‹Ń†ŃŒ Š¼ŠµŠ½ŃŽ Š·Š°Ń…Š°Š²Š°Š½Š½Ń',\n\t'SaveInSlot': 'Š—Š°Ń…Š°Š²Š°Ń†ŃŒ у слот',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ŠŠ°Š»Š°Š“Ń‹',\n\t'SettingsButton': 'ŠŠ“ŠŗŃ€Ń‹Ń†ŃŒ Š¼ŠµŠ½ŃŽ налаГ',\n\t'Show': 'ŠŸŠ°ŠŗŠ°Š·Š°Ń†ŃŒ',\n\t'Skip': 'ŠŸŃ€Š°ŠæŃƒŃŃ†Ń–Ń†ŃŒ',\n\t'SkipButton': 'ŠŃžŃ‚Š°ŠæŠµŃ€Š°Ń…Š¾Š“',\n\t'SlotDeletion': 'Š’Ń‹ ŃžŠæŃŃžŠ½ŠµŠ½Ń‹, ŃˆŃ‚Š¾ хочаце Š²Ń‹Š“Š°Š»Ń–Ń†ŃŒ Š³ŃŃ‚Ń‹ слот?',\n\t'SlotOverwrite': 'Š’Ń‹ ŃžŠæŃŃžŠ½ŠµŠ½Ń‹, ŃˆŃ‚Š¾ хочаце ŠæŠµŃ€Š°Š·Š°ŠæŃ–ŃŠ°Ń†ŃŒ Š³ŃŃ‚Ń‹ слот?',\n\t'Sound': 'Š“ŃƒŃ‡Š½Š°ŃŃ†ŃŒ Š³ŃƒŠŗŠ°Ńž',\n\t'Start': 'ŠŸŠ°Ń‡Š°Ń†ŃŒ',\n\t'Stop': 'Š”ŠæŃ‹Š½Ń–Ń†ŃŒ',\n\n\t'TextSpeed': 'Š„ŃƒŃ‚ŠŗŠ°ŃŃ†ŃŒ Ń‚ŃŠŗŃŃ‚Ńƒ',\n\n\t'Video': 'Š“ŃƒŃ‡Š½Š°ŃŃ†ŃŒ Š²Ń–Š“ŃŠ°',\n\t'Voice': 'Š“ŃƒŃ‡Š½Š°ŃŃ†ŃŒ голасу',\n\n\t'Windowed': 'Аконны Ń€ŃŠ¶Ń‹Š¼'\n};", + "/**\n * ============================================================\n * PortuguĆŖs do Brasil\n * ============================================================\n *\n * Translators:\n *\n * lzcampos \n */\n\nexport default {\n\t'AdvanceHelp': 'VocĆŖ pode avanƧar no jogo usando o botĆ£o esquerdo do mouse, clicando em qualquer lugar na tela do jogo ou pressionar a barra de espaƧo.',\n\t'AllowPlayback': 'Clique aqui para permitir a reprodução de Ć”udio',\n\t'Audio': 'Ɓudio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Ativar reprodução automĆ”tica',\n\t'AutoPlaySpeed': 'Velocidade de reprodução automĆ”tica',\n\n\t'Back': 'Voltar',\n\t'BackButton': 'Voltar',\n\n\t'Cancel': 'Cancelar',\n\t'Close': 'Fechar',\n\t'Confirm': 'Deseja sair?',\n\t'Credits': 'CrĆ©ditos',\n\n\t'Delete': 'Apagar',\n\t'DialogLogButton': 'Mostrar registos de diĆ”logo',\n\n\t'FullScreen': 'Tela Cheia',\n\n\t'Gallery': 'Galeria',\n\n\t'Help': 'Ajuda',\n\t'Hide': 'Esconder',\n\t'HideButton': 'Esconder caixa de texto',\n\n\t'iOSAudioWarning': 'As configuraƧƵes de Ć”udio nĆ£o sĆ£o suportadas no iOS',\n\n\t'KeyboardShortcuts': 'Atalhos de Teclado',\n\n\t'Language': 'LĆ­ngua',\n\t'Load': 'Carregar',\n\t'LoadAutoSaveSlots': 'Jogos Salvos Automaticamente',\n\t'LoadButton': 'Abrir Tela de Carregamento',\n\t'Loading': 'Carregando',\n\t'LoadingMessage': 'Aguarde enquanto os recursos sĆ£o carregados',\n\t'LoadSlots': 'Jogos Salvos',\n\t'LocalStorageWarning': 'O armazenamento local nĆ£o estĆ” disponĆ­vel neste navegador',\n\t'Log': 'Registo',\n\n\t'Music': 'Volume de MĆŗsica',\n\n\t'NewContent': 'HĆ” novo conteĆŗdo disponĆ­vel, recarregue a pĆ”gina para obter a versĆ£o mais recente',\n\t'NoSavedGames': 'Nenhum jogo salvo',\n\t'NoAutoSavedGames': 'Nenhum jogo salvo automaticamente',\n\t'NoDialogsAvailable': 'NĆ£o hĆ” diĆ”logos disponĆ­veis. Os diĆ”logos aparecerĆ£o aqui quando ocorrerem no jogo',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Por favor rode o seu dispositivo para jogar',\n\t'Overwrite': 'Substituir',\n\n\t'QuickButtons': 'BotƵes de acesso rĆ”pido',\n\t'QuickMenu': 'Menu de acesso rĆ”pido',\n\t'Quit': 'Sair',\n\t'QuitButton': 'Sair do Jogo',\n\n\t'Resolution': 'Resolução',\n\n\t'Save': 'Salvar',\n\t'SaveButton': 'Abrir tela de salvar.',\n\t'SaveInSlot': 'Salvar em slot',\n\t'SelectYourLanguage': 'Selecione seu idioma',\n\t'Settings': 'ConfiguraƧƵes',\n\t'SettingsButton': 'Abrir a Tela de ConfiguraƧƵes',\n\t'Show': 'Mostrar',\n\t'Skip': 'Ignorar',\n\t'SkipButton': 'Entrar em modo de ignorar',\n\t'SlotDeletion': 'Tem certeza de que deseja excluir este jogo?',\n\t'SlotOverwrite': 'Tem certeza de que deseja substituir este jogo?',\n\t'Sound': 'Volume de Som',\n\t'Start': 'InĆ­cio',\n\t'Stop': 'Parar',\n\n\t'TextSpeed': 'Velocidade do Texto',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Volume de Voz',\n\n\t'Windowed': 'Em Janela'\n};", + "/**\n * ============================================================\n * 繁體中文 (Traditional Chinese)\n * ============================================================\n *\n * Translators:\n *\n * Koala Yeung \n */\n\n/**\n * åøøē”Øå­—č©žēš„č­Æę³•\n * --------------\n *\n * - Saveļø°äæå­˜é€²åŗ¦ļ¼ˆå‹•č©žļ¼‰ļ¼›å­˜ęŖ”ļ¼ˆåč©žļ¼‰\n * - Load︰載兄進度\n * - Slotļø°ä½ē½®\n * - Screenļø°ä»‹é¢\n * - Auto︰自動播放\n * - Skip︰快轉\n */\n\nexport default {\n\t'AdvanceHelp': 'é»žęŒ‰ę»‘é¼ å·¦éµć€č¼•č§øčž¢å¹•ć€ęˆ–ęŒ‰ē©ŗē™½éµē¹¼ēŗŒéŠęˆ²',\n\t'AllowPlayback': 'é»žę“Šä»„ę‰¹å‡†ę’­ę”¾č²ę•ˆ',\n\t'Audio': 'č²ę•ˆ',\n\t'AutoPlay': '自動',\n\t'AutoPlayButton': 'é€²å…„č‡Ŗå‹•ę’­ę”¾ęØ”å¼',\n\t'AutoPlaySpeed': 'č‡Ŗå‹•ę’­ę”¾é€Ÿåŗ¦',\n\n\t'Back': 'čæ”å›ž',\n\t'BackButton': 'čæ”å›ž',\n\n\t'Cancel': 'å–ę¶ˆ',\n\t'Close': '關閉',\n\t'Confirm': 'ä½ ē¢ŗå®šč¦é›¢é–‹äŗ†å—Žļ¼Ÿ',\n\t'Credits': 'č£½ä½œåŠå—šč¬',\n\n\t'Delete': 'åˆŖé™¤',\n\t'DialogLogButton': 'é”Æē¤ŗå°č©±ē“€éŒ„',\n\n\t'FullScreen': 'å…Øčž¢å¹•',\n\n\t'Gallery': 'åœ–åŗ«',\n\n\t'Help': '幫助',\n\t'Hide': 'éš±č—',\n\t'HideButton': 'éš±č—å°č©±ę”†',\n\n\t'iOSAudioWarning': '在 iOS äøŠē„”ę³•ę”Æę“č²ę•ˆčØ­å®š',\n\n\t'KeyboardShortcuts': 'éµē›¤åæ«ę·éµ',\n\n\t'Language': 'čŖžčØ€',\n\t'Load': '載兄進度',\n\t'LoadAutoSaveSlots': 'č‡Ŗå‹•äæå­˜é€²åŗ¦',\n\t'LoadButton': 'ę‰“é–‹č¼‰å…„é€²åŗ¦ēš„ē•Œé¢',\n\t'Loading': '載兄中',\n\t'LoadingMessage': 'åŖ’é«”åŠ č¼‰äø­ļ¼Œč«‹ēØå€™',\n\t'LoadSlots': 'éŠęˆ²å­˜ęŖ”',\n\t'LocalStorageWarning': 'ē€č¦½å™Øäøę”Æę“ Local Storage 功能',\n\t'Log': 'ē“€éŒ„',\n\n\t'Music': 'éŸ³ęØ‚éŸ³é‡',\n\n\t'NewContent': 'ęœ‰ę–°ēš„éŠęˆ²å…§å®¹äøŠē·šļ¼Œč«‹é‡ę–°č¼‰å…„ęœ¬é ļ¼Œä»„å–å¾—ęœ€ę–°ē‰ˆęœ¬',\n\t'NoSavedGames': 'ę²’ęœ‰å·²äæå­˜ēš„é€²åŗ¦',\n\t'NoAutoSavedGames': 'ę²’ęœ‰č‡Ŗå‹•äæå­˜ēš„é€²åŗ¦',\n\t'NoDialogsAvailable': 'ę²’ęœ‰å°č©±ć€‚č‹„å “ę™Æęœ‰å°č©±ļ¼Œå°‡ęœƒåœØé€™č£é”Æē¤ŗć€‚',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'č«‹ę—‹č½‰ä½ ēš„č£ē½®ä»„é€²č”ŒéŠęˆ²',\n\t'Overwrite': 'č¦†č“‹å­˜ęŖ”',\n\n\t'QuickButtons': 'åæ«é€Ÿéøå–®éµ',\n\t'QuickMenu': 'åæ«é€Ÿéøå–®',\n\t'Quit': '離開',\n\t'QuitButton': 'é›¢é–‹éŠęˆ²',\n\n\t'Resolution': 'č§£åƒåŗ¦',\n\n\t'Save': 'äæå­˜é€²åŗ¦',\n\t'SaveButton': 'é–‹å•Ÿå­˜ęŖ”ä»‹é¢',\n\t'SaveInSlot': 'åœØé€™ä½ē½®äæå­˜éŠęˆ²',\n\t'SelectYourLanguage': 'éøę“‡čŖžčØ€',\n\t'Settings': '設定',\n\t'SettingsButton': 'é–‹å•ŸčØ­å®šä»‹é¢',\n\t'Show': '锯示',\n\t'Skip': '快轉',\n\t'SkipButton': 'é€²å…„åæ«č½‰ęØ”å¼',\n\t'SlotDeletion': 'ä½ ę˜Æå¦ē¢ŗå®šč¦åˆŖé™¤é€™å€‹ä½ē½®ēš„å­˜ęŖ”ļ¼Ÿ',\n\t'SlotOverwrite': 'ä½ ę˜Æå¦ē¢ŗå®šč¦č¦†č“‹é€™å€‹ä½ē½®ēš„å­˜ęŖ”ļ¼Ÿ',\n\t'Sound': 'č²éŸ³éŸ³é‡',\n\t'Start': '開始',\n\t'Stop': '停止',\n\n\t'TextSpeed': 'ę–‡å­—é€Ÿåŗ¦',\n\n\t'Video': 'å½±ē‰‡éŸ³é‡',\n\t'Voice': 'čŖžéŸ³éŸ³é‡',\n\n\t'Windowed': '視窗'\n};", + "/**\n * ============================================================\n * 简体中文 (Simplified Chinese)\n * ============================================================\n *\n * Translators:\n *\n * RuolinZheng08\n */\n\nexport default {\n\t'AdvanceHelp': 'ęŒ‰äø‹ē©ŗę ¼é”®ęˆ–ē‚¹å‡»å±å¹•ä»„ē»§ē»­',\n\t'AllowPlayback': 'ē‚¹å‡»čæ™é‡Œä»„åÆē”ØčÆ­éŸ³å›žę”¾',\n\t'Audio': 'éŸ³ę•ˆ',\n\t'AutoPlay': 'č‡ŖåŠØ',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'č‡ŖåŠØę’­ę”¾é€Ÿåŗ¦',\n\n\t'Back': '后退',\n\t'BackButton': '后退',\n\n\t'Cancel': 'å–ę¶ˆ',\n\t'Close': '关闭',\n\t'Confirm': 'ē”®å®šč¦é€€å‡ŗå—ļ¼Ÿ',\n\t'Credits': 'Credits',\n\n\t'Delete': '删除',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'å…Øå±ę˜¾ē¤ŗ',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': '帮助',\n\t'Hide': '隐藏',\n\t'HideButton': 'éšč—ę–‡å­—',\n\n\t'iOSAudioWarning': 'iOSęš‚äøę”ÆęŒéŸ³ę•ˆč®¾å®š',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'Language': '语言',\n\t'Load': 'čÆ»å–',\n\t'LoadAutoSaveSlots': 'č‡ŖåŠØå­˜å‚Øēš„ęøøęˆčæ›åŗ¦',\n\t'LoadButton': 'ę˜¾ē¤ŗčÆ»å–ē•Œé¢',\n\t'Loading': '加载中',\n\t'LoadingMessage': 'ē­‰å¾…ē“ ęåŠ č½½äø­',\n\t'LoadSlots': 'å­˜å‚Øēš„ęøøęˆčæ›åŗ¦',\n\t'LocalStorageWarning': 'čÆ„ęµč§ˆå™Øęš‚äøę”ÆęŒęœ¬åœ°å­˜å‚ØåŠŸčƒ½',\n\t'Log': 'Log',\n\n\t'Music': '音乐音量',\n\n\t'NoSavedGames': 'ę²”ęœ‰å­˜å‚Øēš„ęøøęˆčæ›åŗ¦',\n\t'NoAutoSavedGames': 'ę²”ęœ‰č‡ŖåŠØå­˜å‚Øēš„ęøøęˆčæ›åŗ¦',\n\t'NewContent': 'ęœ‰ę–°ēš„å†…å®¹åÆä¾›ä½æē”Øļ¼Œé‡ę–°åŠ č½½é”µé¢ä»„čŽ·å–ęœ€ę–°ē‰ˆęœ¬',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': '確定',\n\t'OrientationWarning': 'čÆ·å°†č®¾å¤‡ę—‹č½¬ä»„ä½“éŖŒęøøęˆå†…å®¹',\n\t'Overwrite': '覆盖',\n\n\t'QuickButtons': 'åæ«ę·čœå•ęŒ‰é’®',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': '退出',\n\t'QuitButton': 'é€€å‡ŗęøøęˆ',\n\n\t'Resolution': 'åˆ†č¾ØēŽ‡',\n\n\t'Save': '存攣',\n\t'SaveButton': 'ę˜¾ē¤ŗå­˜ę”£ē•Œé¢',\n\t'SaveInSlot': 'å†™å…„å­˜ę”£ę§½ä½',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ēŽÆå¢ƒč®¾å®š',\n\t'SettingsButton': 'ę˜¾ē¤ŗēŽÆå¢ƒč®¾å®šē•Œé¢',\n\t'Show': '显示',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'ē”®å®šč¦åˆ é™¤čæ™äøŖå­˜ę”£ę§½ä½å—ļ¼Ÿ',\n\t'SlotOverwrite': 'ē”®å®šč¦č¦†ē›–čæ™äøŖå­˜ę”£ę§½ä½å—ļ¼Ÿ',\n\t'Sound': 'éŸ³ę•ˆéŸ³é‡',\n\t'Start': '开始',\n\t'Stop': '停止',\n\n\t'TextSpeed': 'ę–‡å­—ę˜¾ē¤ŗé€Ÿåŗ¦',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'čÆ­éŸ³éŸ³é‡',\n\n\t'Windowed': 'ēŖ—å£'\n};\n", + "/**\n * ============================================================\n * Nederlands\n * ============================================================\n *\n * Translators:\n *\n * Natsukeep\n */\n\nexport default {\n\t'AdvanceHelp': 'Gebruik de spatiebalk of linker muisknop om te spelen',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'Autoplay snelheid',\n\n\t'Back': 'Terug',\n\t'BackButton': 'Terug',\n\n\t'Cancel': 'Stop',\n\t'Close': 'Sluit',\n\t'Confirm': 'Ben je zeker dat je wilt stoppen?',\n\t'Credits': 'Credits',\n\n\t'Delete': 'Delete',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'Volledig scherm',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': 'Help',\n\t'Hide': 'Verberg',\n\t'HideButton': 'Verberg tekst',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'iOSAudioWarning': 'Audio instellingen worden niet ondersteund door iOS',\n\n\t'Language': 'Taal',\n\t'Load': 'Laad',\n\t'LoadAutoSaveSlots': 'Automatisch opgeslagen spellen',\n\t'LoadButton': 'Open het laadscherm',\n\t'Loading': 'Laden',\n\t'LoadingMessage': 'Wacht tot de onderdelen zijn geladen',\n\t'LoadSlots': 'Opgeslagen spellen',\n\t'LocalStorageWarning': 'Locale Opslag is niet mogelijk in deze Browser',\n\t'Log': 'Log',\n\n\t'Music': 'Muziek Volume',\n\n\t'NewContent': 'There is new content available, reload the page to get the latest version',\n\t'NoSavedGames': 'Geen opgeslagen spellen',\n\t'NoAutoSavedGames': 'Geen automatsch opgeslagen spellen',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Please rotate your device to play',\n\t'Overwrite': 'Overschrijven',\n\n\t'QuickButtons': 'Snelmenu knoppen',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': 'sluit',\n\t'QuitButton': 'Sluit spel',\n\n\t'Resolution': 'Resolutie',\n\n\t'Save': 'Opslaan',\n\t'SaveButton': 'Open de Save Screen',\n\t'SaveInSlot': 'Sla op in slot',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'Instellingen',\n\t'SettingsButton': 'Open de instellingen',\n\t'Show': 'Tonen',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'Weet u zeker dat u dit slot verwijderen?',\n\t'SlotOverwrite': 'Weet u zeker dat u dit slot overschrijven?',\n\t'Sound': 'Geluids volume',\n\t'Start': 'Start',\n\t'Stop': 'Stop',\n\n\t'TextSpeed': 'Tekst snelheid',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Stem Volume',\n\n\t'Windowed': 'Window modus'\n};", + "/**\n * ============================================================\n * English\n * ============================================================\n *\n * Translators:\n *\n * Hyuchia \n */\n\nexport default {\n\t'AdvanceHelp': 'To advance through the game, left-click or tap anywhere on the game screen or press the space key',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'Autoplay Speed',\n\n\t'Back': 'Back',\n\t'BackButton': 'Go back',\n\n\t'Cancel': 'Cancel',\n\t'Close': 'Close',\n\t'Confirm': 'Do you want to quit?',\n\t'Credits': 'Credits',\n\n\t'Delete': 'Delete',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'Full Screen',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': 'Help',\n\t'Hide': 'Hide',\n\t'HideButton': 'Hide the text box',\n\n\t'iOSAudioWarning': 'Audio settings are not supported on iOS',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'Language': 'Language',\n\t'Load': 'Load',\n\t'LoadAutoSaveSlots': 'Auto Saved Games',\n\t'LoadButton': 'Open the Load Screen',\n\t'Loading': 'Loading',\n\t'LoadingMessage': 'Wait while the assets are loaded',\n\t'LoadSlots': 'Saved Games',\n\t'LocalStorageWarning': 'Local Storage is not available in this browser',\n\t'Log': 'Log',\n\n\t'Music': 'Music Volume',\n\n\t'NewContent': 'There is new content available, reload the page to get the latest version',\n\t'NoSavedGames': 'No saved games',\n\t'NoAutoSavedGames': 'No automatically saved games',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Please rotate your device to play',\n\t'Overwrite': 'Overwrite',\n\n\t'QuickButtons': 'Quick Menu Buttons',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': 'Quit',\n\t'QuitButton': 'Quit Game',\n\n\t'Resolution': 'Resolution',\n\n\t'Save': 'Save',\n\t'SaveButton': 'Open the Save Screen',\n\t'SaveInSlot': 'Save in slot',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'Settings',\n\t'SettingsButton': 'Open the Settings Screen',\n\t'Show': 'Show',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'Are you sure you want to delete this slot?',\n\t'SlotOverwrite': 'Are you sure you want to overwrite this slot?',\n\t'Sound': 'Sound Volume',\n\t'Start': 'Start',\n\t'Stop': 'Stop',\n\n\t'TextSpeed': 'Text Speed',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Voice Volume',\n\n\t'Windowed': 'Windowed'\n};", + "/**\n * ============================================================\n * FranƧais\n * ============================================================\n *\n * Translators:\n *\n * BakaKiller, LoganTann (ShinProg)\n */\n\nexport default {\n\t'AdvanceHelp': 'Pour avancer dans le jeu, appuyez sur la touche espace ou cliquez',\n\t'AllowPlayback': 'Cliquez ici pour autoriser la musique de fond',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Activer la lecture automatique',\n\t'AutoPlaySpeed': 'Vitesse de lecture automatique',\n\n\t'Back': 'Retour',\n\t'BackButton': 'Retour',\n\n\t'Cancel': 'Annuler',\n\t'Close': 'Fermer',\n\t'Confirm': 'Voulez-vous vraiment quitter?',\n\t'Credits': 'CrĆ©dits',\n\n\t'Delete': 'Supprimer',\n\t'DialogLogButton': 'Afficher le journal de dialogues',\n\n\t'FullScreen': 'Plein Ɖcran',\n\n\t'Gallery': 'Gallerie',\n\n\t'Help': 'Aide',\n\t'Hide': 'Cacher',\n\t'HideButton': 'Cacher le Texte',\n\n\t'iOSAudioWarning': 'Les paramĆØtres audio ne sont pas pris en charge par iOS',\n\n\t'KeyboardShortcuts': 'Raccourcis claviers',\n\n\t'Language': 'Langue',\n\t'Load': 'Charger',\n\t'LoadAutoSaveSlots': 'Parties enregistrĆ©es automatiquement',\n\t'LoadButton': 'Ouvrir l’écran de chargement',\n\t'Loading': 'Chargement',\n\t'LoadingMessage': 'Veuillez patienter pendant le chargement des donnĆ©es du jeu',\n\t'LoadSlots': 'Parties SauvegardĆ©es',\n\t'LocalStorageWarning': 'Le stockage local n’est pas disponible sur ce navigateur !',\n\t'Log': 'Journal',\n\n\t'Music': 'Volume de la Musique',\n\n\t'NewContent': 'Un nouveau contenu est disponible, rechargez la page pour obtenir la derniĆØre version',\n\t'NoSavedGames': 'Pas de parties sauvegardĆ©es',\n\t'NoAutoSavedGames': 'Aucune partie enregistrĆ©e automatiquement',\n\t'NoDialogsAvailable': 'Aucun dialogue disponible. Les boĆ®tes de dialogue apparaĆ®tront ici au fur et Ć  mesure qu\\'elles s\\'afficheront.',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Changez l\\'orientation de votre appareil pour jouer.',\n\t'Overwrite': 'Ɖcraser',\n\n\t'QuickButtons': 'Boutons du Menu rapide',\n\t'QuickMenu': 'Menu rapide',\n\t'Quit': 'Quitter',\n\t'QuitButton': 'Quitter le Jeu',\n\n\t'Resolution': 'RĆ©solution',\n\n\t'Save': 'Sauvegarder',\n\t'SaveButton': 'Ouvrir l’écran de Sauvegarde',\n\t'SaveInSlot': 'Enregistrer Ć  l’emplacement',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'PrĆ©fĆ©rences',\n\t'SettingsButton': 'Ouvrir l’écran des PrĆ©fĆ©rences',\n\t'Show': 'Monter',\n\t'Skip': 'Passer',\n\t'SkipButton': 'Skip mode',\n\t'SlotDeletion': 'Êtes-vous sĆ»r de vouloir supprimer cet emplacement ?',\n\t'SlotOverwrite': 'Êtes vous sĆ»r de vouloir remplacer cet emplacement ?',\n\t'Sound': 'Volume des Sons',\n\t'Start': 'DĆ©marrer',\n\t'Stop': 'ArrĆŖter',\n\n\t'TextSpeed': 'Vitesse du Texte',\n\n\t'Video': 'Volume des vidĆ©os',\n\t'Voice': 'Volume de la Voix',\n\n\t'Windowed': 'FenĆŖtrĆ©'\n};\n", + "/**\n * ============================================================\n * Deutsch\n * ============================================================\n *\n * Translators:\n *\n * increpare \n * KazutoSensei\n */\n\nexport default {\n\t'AdvanceHelp': 'Um dich durch das Spiel zu navigieren, drücke die Leertaste oder klicke',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'AutoPlay-Geschwindigkeit',\n\n\t'Back': 'Zurück',\n\t'BackButton': 'Zurück',\n\n\t'Cancel': 'Abbrechen',\n\t'Close': 'Schließen',\n\t'Confirm': 'Mƶchtest Du das Spiel verlassen?',\n\t'Credits': 'Credits',\n\n\t'Delete': 'Lƶschen',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'Vollbildmodus',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': 'Hilfe',\n\t'Hide': 'Verbergen',\n\t'HideButton': 'Text verbergen',\n\n\t'iOSAudioWarning': 'Audioeinstellungen werden unter iOS nicht unterstützt',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'Language': 'Sprache',\n\t'Load': 'Laden',\n\t'LoadAutoSaveSlots': 'Automatisch gespeicherte Spiele',\n\t'LoadButton': 'Ɩffne den Ladebildschirm',\n\t'Loading': 'LƤdt',\n\t'LoadingMessage': 'Bitte warte, wƤhrend die Assets geladen werden',\n\t'LoadSlots': 'Gespeicherte Spiele',\n\t'LocalStorageWarning': 'Lokaler Speicher ist in diesem Browser nicht verfügbar',\n\t'Log': 'Log',\n\n\t'Music': 'Musik-LautstƤrke',\n\n\t'NewContent': 'There is new content available, reload the page to get the latest version',\n\t'NoSavedGames': 'Keine gespeicherten Spiele',\n\t'NoAutoSavedGames': 'Keine automatisch gespeicherten Spiele',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Um das Spiel zu spielen, Bitte drehen sie Ihr GerƤt',\n\t'Overwrite': 'Überschreiben',\n\n\t'QuickButtons': 'Schnellmenü SchaltflƤchen',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': 'Verlassen',\n\t'QuitButton': 'Spiel verlassen',\n\n\t'Resolution': 'Auflƶsung',\n\n\t'Save': 'Speichern',\n\t'SaveButton': 'Ɩffne den Speicherbildschirm',\n\t'SaveInSlot': 'In Slot speichern',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'Optionen',\n\t'SettingsButton': 'Ɩffne die Optionen',\n\t'Show': 'Einblenden',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'Bist Du sicher, dass Du diesen Slot lƶschen mƶchtest?',\n\t'SlotOverwrite': 'Bist Du sicher, dass Du diesen Slot überschreiben mƶchtest?',\n\t'Sound': 'Sound-LautstƤrke',\n\t'Start': 'Start',\n\t'Stop': 'Stop',\n\n\t'TextSpeed': 'Textgeschwindigkeit',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Stimmen-LautstƤrke',\n\n\t'Windowed': 'Fenstermodus'\n};", + "/**\n * ============================================================\n * Hungarian\n * ============================================================\n *\n * Translators:\n *\n * Levev \n * TibixDev \n */\n\nexport default {\n\t'AdvanceHelp': 'Ahhoz, hogy tovĆ”bb haladj a jĆ”tĆ©kban, nyomd meg a bal egĆ©rgombot, koppints bĆ”rhovĆ” a kĆ©pernyőn, vagy nyomd le a space-t',\n\t'AllowPlayback': 'Kattints ide hogy engedĆ©lyezd a hangvisszajĆ”tszĆ”st',\n\t'Audio': 'Hang',\n\t'AutoPlay': 'Automata',\n\t'AutoPlayButton': 'Automatikus jĆ”tĆ©k engedĆ©lyezĆ©se',\n\t'AutoPlaySpeed': 'Automata jĆ”tĆ©ksebessĆ©g',\n\n\t'Back': 'Vissza',\n\t'BackButton': 'Menj vissza',\n\n\t'Cancel': 'MĆ©gse',\n\t'Close': 'BezĆ”r',\n\t'Confirm': 'Ki akarsz lĆ©pni?',\n\t'Credits': 'StĆ”blista',\n\n\t'Delete': 'TƶrlĆ©s',\n\t'DialogLogButton': 'PĆ”rbeszĆ©dnapló megjelenĆ­tĆ©se',\n\n\t'FullScreen': 'TeljeskĆ©pernyő',\n\n\t'Gallery': 'GalĆ©ria',\n\n\t'Help': 'SegĆ­tsĆ©g',\n\t'Hide': 'ElrejtĆ©s',\n\t'HideButton': 'Szƶvegdoboz elrejtĆ©se',\n\n\t'iOSAudioWarning': 'A hangbeĆ”llĆ­tĆ”sok nem tĆ”mogatottak iOS rendszereken',\n\n\t'KeyboardShortcuts': 'BillentyűkombinĆ”ciók',\n\n\t'Language': 'Nyelv',\n\t'Load': 'BetƶltĆ©s',\n\t'LoadAutoSaveSlots': 'Automatikusan elmentett jĆ”tĆ©kmenetek',\n\t'LoadButton': 'BetƶltőkĆ©pernyő megnyitĆ”sa',\n\t'Loading': 'BetƶltĆ©s',\n\t'LoadingMessage': 'VĆ”rj, amĆ­g az erőforrĆ”sok betƶltenek',\n\t'LoadSlots': 'Mentett JĆ”tĆ©kmenetek',\n\t'LocalStorageWarning': 'A LokĆ”lis TĆ”rhely nem talĆ”lható ebben a keresőben',\n\t'Log': 'Napló',\n\n\t'Music': 'Zene Hangereje',\n\n\t'NewContent': 'Új tartalom elĆ©rhető, frissĆ­tsd az oldalt a legĆŗjabb verzióért',\n\t'NoSavedGames': 'Nem talĆ”lható mentett jĆ”tĆ©kmenet',\n\t'NoAutoSavedGames': 'Nem talĆ”lható automatikusan mentett jĆ”tĆ©kmenet',\n\t'NoDialogsAvailable': 'Nem talĆ”lható pĆ”rbeszĆ©d. A pĆ”rbeszĆ©dek itt fognak megjelenni amint talĆ”lkozol velük',\n\n\t'OK': 'OkĆ©',\n\t'OrientationWarning': 'KĆ©rlek, fordĆ­tsd el az eszkƶzƶd a jĆ”tĆ©khoz',\n\t'Overwrite': 'FelülĆ­rĆ”s',\n\n\t'QuickButtons': 'Gyorsmenü gombok',\n\t'QuickMenu': 'Gyorsmenü',\n\t'Quit': 'KilĆ©pĆ©s',\n\t'QuitButton': 'KilĆ©pĆ©s a jĆ”tĆ©kból',\n\n\t'Resolution': 'FelbontĆ”s',\n\n\t'Save': 'MentĆ©s',\n\t'SaveButton': 'MentĆ©sek megnyitĆ”sa',\n\t'SaveInSlot': 'Slotba mentĆ©s',\n\t'SelectYourLanguage': 'Nyelved kivĆ”lasztĆ”sa',\n\t'Settings': 'BeĆ”llĆ­tĆ”sok',\n\t'SettingsButton': 'BeĆ”llĆ­tĆ”sok megnyitĆ”sa',\n\t'Show': 'Mutasd',\n\t'Skip': 'KihagyĆ”s',\n\t'SkipButton': 'KihagyĆ”s-mód bekapcsolĆ”sa',\n\t'SlotDeletion': 'Biztosan ki akarod tƶrƶlni ezt a slot-ot?',\n\t'SlotOverwrite': 'Biztosan felül akarod Ć­rni ezt a slot-ot?',\n\t'Sound': 'Hangerő',\n\t'Start': 'Start',\n\t'Stop': 'Stop',\n\n\t'TextSpeed': 'Szƶveg SebessĆ©ge',\n\n\t'Video': 'Videó Hangereje',\n\t'Voice': 'BeszĆ©d Hangereje',\n\n\t'Windowed': 'Ablakozott'\n};", + "/**\n * ============================================================\n * Bahasa_Indonesia\n * ============================================================\n *\n * Translators:\n *\n * mnafisalmukhdi1 \n */\n\nexport default {\n\t'AdvanceHelp': 'Untuk melanjutkan permainan, klik kiri atau ketuk di mana saja pada layar permainan atau tekan tombol spasi',\n\t'AllowPlayback': 'Klik di sini untuk menyalakan putar balik audio',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Nyalakan main otomatis',\n\t'AutoPlaySpeed': 'Kecepatan main otomatis',\n\n\t'Back': 'Kembali',\n\t'BackButton': 'Kembali',\n\n\t'Cancel': 'Batalkan',\n\t'Close': 'Tutup',\n\t'Confirm': 'Apakah Anda ingin keluar?',\n\t'Credits': 'Kredit',\n\n\t'Delete': 'Hapus',\n\t'DialogLogButton': 'Tampilkan log dialog',\n\n\t'FullScreen': 'Layar Penuh',\n\n\t'Gallery': 'Galeri',\n\n\t'Help': 'Bantuan',\n\t'Hide': 'Sembunyikan',\n\t'HideButton': 'Sembunyikan kotak teks',\n\n\t'iOSAudioWarning': 'Pengaturan audio tidak didukung pada iOS',\n\n\t'KeyboardShortcuts': 'Pintasan papan tombol',\n\n\t'Language': 'Bahasa',\n\t'Load': 'Muat',\n\t'LoadAutoSaveSlots': 'Permainan yang Tersimpan Otomatis',\n\t'LoadButton': 'Buka layar pemuatan',\n\t'Loading': 'Memuat',\n\t'LoadingMessage': 'Tunggu sementara aset dimuat',\n\t'LoadSlots': 'Permainan yang Tersimpan',\n\t'LocalStorageWarning': 'Penyimpanan lokal tidak tersedia pada peramban ini',\n\t'Log': 'Log',\n\n\t'Music': 'Volume Musik',\n\n\t'NewContent': 'Ada konten baru tersedia, muat ulang halaman untuk mendapatkan versi terkini',\n\t'NoSavedGames': 'Tidak ada permainan yang tersimpan',\n\t'NoAutoSavedGames': 'Tidak ada permainan yang tersimpan otomatis',\n\t'NoDialogsAvailable': 'Tidak ada dialog yang tersedia. Dialog akan ditampilkan di sini ketika muncul',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Mohon putar perangkat Anda untuk bermain',\n\t'Overwrite': 'Timpa',\n\n\t'QuickButtons': 'Tombol Menu Pintas',\n\t'QuickMenu': 'Menu Pintas',\n\t'Quit': 'Keluar',\n\t'QuitButton': 'Keluar Permainan',\n\n\t'Resolution': 'Resolusi',\n\n\t'Save': 'Simpan',\n\t'SaveButton': 'Buka layar Simpan',\n\t'SaveInSlot': 'Simpan di slot',\n\t'SelectYourLanguage': 'Pilih bahasa Anda',\n\t'Settings': 'Pengaturan',\n\t'SettingsButton': 'Buka layar Pengaturan',\n\t'Show': 'Tampilkan',\n\t'Skip': 'Lewati',\n\t'SkipButton': 'Masuki mode lewati',\n\t'SlotDeletion': 'Apakah Anda yakin ingin menghapus slot ini?',\n\t'SlotOverwrite': 'Apakah Anda yakin ingin menimpa slot ini?',\n\t'Sound': 'Volume Bunyi',\n\t'Start': 'Mulai',\n\t'Stop': 'Berhenti',\n\n\t'TextSpeed': 'Kecepatan Teks',\n\n\t'Video': 'Volume Video',\n\t'Voice': 'Volume Suara',\n\n\t'Windowed': 'Berjendela'\n};", + "/**\n * ============================================================\n * ę—„ęœ¬čŖž\n * ============================================================\n *\n * Translators:\n *\n *\n */\n\nexport default {\n\t'AdvanceHelp': 'ć‚²ćƒ¼ćƒ ć‚’é€²ć‚ć‚‹ćŸć‚ć«ćÆć€ć‚¹ćƒšćƒ¼ć‚¹ć‚­ćƒ¼ć‚’ęŠ¼ć™ć‹ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'ć‚Ŗćƒ¼ćƒ‡ć‚£ć‚Ŗ',\n\t'AutoPlay': '自動',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'č‡Ŗå‹•å†ē”Ÿé€Ÿåŗ¦',\n\n\t'Back': 'å·»ćęˆ»ć—',\n\t'BackButton': 'å·»ćęˆ»ć—',\n\n\t'Cancel': 'ć‚­ćƒ£ćƒ³ć‚»ćƒ«',\n\t'Close': '閉悁恦',\n\t'Confirm': 'ēµ‚äŗ†ć—ć¾ć™ć‹ļ¼Ÿ',\n\t'Credits': 'Credits',\n\n\t'Delete': 'Delete',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'å…Øē”»é¢č”Øē¤ŗ',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': 'ćƒ˜ćƒ«ćƒ—',\n\t'Hide': 'ć€Œéžč”Øē¤ŗć€',\n\t'HideButton': 'ćƒ†ć‚­ć‚¹ćƒˆć‚’éš ć—ć¾ć™',\n\n\t'iOSAudioWarning': 'iOSć§ćÆć‚Ŗćƒ¼ćƒ‡ć‚£ć‚ŖčØ­å®šćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ć¾ć›ć‚“',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'Language': 'čØ€čŖž',\n\t'Load': 'ćƒ­ćƒ¼ćƒ‰',\n\t'LoadAutoSaveSlots': 'č‡Ŗå‹•ēš„ć«äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ',\n\t'LoadButton': 'ćƒ­ćƒ¼ćƒ‰ē”»é¢ć‚’é–‹ćć¾ć™',\n\t'Loading': '読み込み中',\n\t'LoadingMessage': 'ćƒ•ć‚”ć‚¤ćƒ«ćŒćƒ­ćƒ¼ćƒ‰ć•ć‚Œć‚‹ć®ć‚’å¾…ć”ć¾ć™',\n\t'LoadSlots': 'äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ',\n\t'LocalStorageWarning': 'ć“ć®ćƒ–ćƒ©ć‚¦ć‚¶ć§ćÆćƒ­ćƒ¼ć‚«ćƒ«ć‚¹ćƒˆćƒ¬ćƒ¼ć‚øćÆä½æē”Øć§ćć¾ć›ć‚“',\n\t'Log': 'Log',\n\n\t'Music': 'éŸ³ę„½ć®éŸ³é‡',\n\n\t'NewContent': 'There is new content available, reload the page to get the latest version',\n\t'NoSavedGames': 'äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ćÆć‚ć‚Šć¾ć›ć‚“',\n\t'NoAutoSavedGames': 'č‡Ŗå‹•ēš„ć«äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ćÆć‚ć‚Šć¾ć›ć‚“',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Please rotate your device to play',\n\t'Overwrite': 'äøŠę›øć',\n\n\t'QuickButtons': 'ć‚Æć‚¤ćƒƒć‚Æćƒ”ćƒ‹ćƒ„ćƒ¼ćƒœć‚æćƒ³',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': '終了する',\n\t'QuitButton': 'ć‚²ćƒ¼ćƒ ć‚’ēµ‚äŗ†ć—ć¾ć™',\n\n\t'Resolution': 'č§£åƒåŗ¦',\n\n\t'Save': 'ć‚»ćƒ¼ćƒ–',\n\t'SaveButton': 'äæå­˜ē”»é¢ć‚’é–‹ćć¾ć™',\n\t'SaveInSlot': 'ć‚¹ćƒ­ćƒƒćƒˆć«ć‚»ćƒ¼ćƒ–ć™ć‚‹',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ē’°å¢ƒčØ­å®š',\n\t'SettingsButton': 'čØ­å®šē”»é¢ć‚’é–‹ćć¾ć™',\n\t'Show': 'ć‚·ćƒ§ćƒ¼',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'ęœ¬å½“ć«ć“ć®ć‚¹ćƒ­ćƒƒćƒˆć‚’å‰Šé™¤ć—ć¾ć™ć‹ļ¼Ÿ',\n\t'SlotOverwrite': 'ęœ¬å½“ć«ć“ć®ć‚¹ćƒ­ćƒƒćƒˆć‚’äøŠę›øćć—ć¾ć™ć‹ļ¼Ÿ',\n\t'Sound': 'åŠ¹ęžœéŸ³ć®éŸ³é‡',\n\t'Start': 'ć‚¹ć‚æćƒ¼ćƒˆ',\n\t'Stop': '停止',\n\n\t'TextSpeed': 'ćƒ†ć‚­ć‚¹ćƒˆć‚¹ćƒ”ćƒ¼ćƒ‰',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'ćƒœć‚¤ć‚¹ć®éŸ³é‡',\n\n\t'Windowed': 'ēŖ“'\n};", + "/**\n * ============================================================\n * ķ•œźµ­ģ–“\n * ============================================================\n *\n * Translators:\n *\n * Lee Yunseok \n */\n\nexport default {\n\t'AdvanceHelp': 'ź²Œģž„ģ„ ģ§„ķ–‰ķ•˜ė ¤ė©“ ź²Œģž„ ķ™”ė©“ģ„ 좌큓릭 ė˜ėŠ” ķƒ­ķ•˜ź±°ė‚˜ ģŠ¤ķŽ˜ģ“ģŠ¤ 키넼 ėˆ„ė„“ģ„øģš”',\n\t'AllowPlayback': 'ģ˜¤ė””ģ˜¤ ģž¬ģƒģ„ ķ—ˆģš©ķ•˜ė ¤ė©“ 여기넼 ķ“ė¦­ķ•˜ģ„øģš”',\n\t'Audio': 'ģ˜¤ė””ģ˜¤',\n\t'AutoPlay': 'ģžė™ģž¬ģƒ',\n\t'AutoPlayButton': 'ģžė™ģž¬ģƒė‹Øģ¶”',\n\t'AutoPlaySpeed': 'ģžė™ģž¬ģƒ ģ†ė„',\n\n\t'Back': '되감기',\n\t'BackButton': 'ģ“ģ „ 지문 볓기',\n\n\t'Cancel': 'ģ·Øģ†Œ',\n\t'Close': 'ė‹«źø°',\n\t'Confirm': 'ģ¢…ė£Œķ•˜ģ‹œź² ģ–“ģš”?',\n\t'Credits': 'ė§Œė“ ģ“',\n\n\t'Delete': 'ģ‚­ģ œ',\n\t'DialogLogButton': 'ėŒ€ģ‚¬ė” 볓기',\n\n\t'FullScreen': '전첓화멓',\n\n\t'Gallery': '갤러리',\n\n\t'Help': 'ė„ģ›€ė§',\n\t'Hide': '숨기기',\n\t'HideButton': '지문 ģ°½ģ„ ģˆØź¹ė‹ˆė‹¤',\n\n\t'iOSAudioWarning': 'ģ˜¤ė””ģ˜¤ ģ„¤ģ •ģ€ iOSģ—ģ„œ ģ§€ģ›ė˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤',\n\n\t'KeyboardShortcuts': 'ķ‚¤ė³“ė“œ 단축키',\n\n\t'Language': 'ģ–øģ–“',\n\t'Load': '불러오기',\n\t'LoadAutoSaveSlots': 'ģžė™ģ €ģž„ėœ ź²Œģž„',\n\t'LoadButton': '불러오기 화멓 ģ—“źø°',\n\t'Loading': 'ė¶ˆėŸ¬ģ˜¤ėŠ” 중',\n\t'LoadingMessage': 'ģžģ‚°ģ„ ė¶ˆėŸ¬ģ˜¤ėŠ” ė™ģ•ˆ źø°ė‹¤ė ¤ģ£¼ģ„øģš”',\n\t'LoadSlots': 'ģ €ģž„ėœ ź²Œģž„',\n\t'LocalStorageWarning': '딜컬 ģ €ģž„ģ†ŒėŠ” ģ“ ėøŒė¼ģš°ģ €ģ—ģ„œ ģ‚¬ģš© ė¶ˆź°€ėŠ„ķ•©ė‹ˆė‹¤',\n\t'Log': 'ėŒ€ģ‚¬ė”',\n\n\t'Music': 'ģŒģ•… ģŒėŸ‰',\n\n\t'NewContent': 'ķŽ˜ģ“ģ§€ė„¼ ģƒˆė”œź³ ģ¹Øķ•˜ėŠ” 것으딜 ģµœģ‹  ė²„ģ „ģ˜ 새딜욓 ģ½˜ķ…ģø ė„¼ ģ‚¬ģš© ź°€ėŠ„ķ•  수 ģžˆģŠµė‹ˆė‹¤',\n\t'NoSavedGames': 'ģ €ģž„ėœ ź²Œģž„ģ“ ģ—†ģŠµė‹ˆė‹¤',\n\t'NoAutoSavedGames': 'ģžė™ģœ¼ė”œ ģ €ģž„ėœ ź²Œģž„ģ“ ģ—†ģŠµė‹ˆė‹¤',\n\t'NoDialogsAvailable': 'ėŒ€ķ™” ģƒģžė„¼ ģ‚¬ģš©ķ•  수 ģ—†ģŠµė‹ˆė‹¤. ģ‚¬ģš©ķ•  수 ģžˆź²Œ 되멓 여기에 ėŒ€ķ™” ģƒģžź°€ ė‚˜ķƒ€ė‚©ė‹ˆė‹¤',\n\n\t'OK': 'ķ™•ģø',\n\t'OrientationWarning': 'ķ”Œė ˆģ“ė„¼ ģœ„ķ•“ 기기넼 ķšŒģ „ķ•“ģ£¼ģ„øģš”',\n\t'Overwrite': 'ė®ģ–“ģ“°źø°',\n\n\t'QuickButtons': '빠넸 메뉓 단추',\n\t'QuickMenu': '빠넸 메뉓',\n\t'Quit': 'ģ¢…ė£Œ',\n\t'QuitButton': 'ź²Œģž„ ģ¢…ė£Œ',\n\n\t'Resolution': 'ķ•“ģƒė„',\n\n\t'Save': 'ģ €ģž„ķ•˜źø°',\n\t'SaveButton': 'ģ €ģž„ ķ™”ė©“ģ„ ģ—½ė‹ˆė‹¤',\n\t'SaveInSlot': 'ģŠ¬ė”Æģ— ģ €ģž„',\n\t'SelectYourLanguage': '언얓넼 ģ„ ķƒķ•“ģ£¼ģ„øģš”',\n\t'Settings': '설정',\n\t'SettingsButton': '설정 ķ™”ė©“ģ„ ģ—½ė‹ˆė‹¤',\n\t'Show': 'ė³“ģ“źø°',\n\t'Skip': 'ė„˜źø°źø°',\n\t'SkipButton': 'ė„˜źø°źø° ėŖØė“œ ģ‚¬ģš©',\n\t'SlotDeletion': 'ģ“ ģŠ¬ė”Æģ„ ģ‚­ģ œķ•˜ģ‹œź² ģ–“ģš”?',\n\t'SlotOverwrite': 'ģ“ ģŠ¬ė”Æģ— ė®ģ–“ģ“°ģ‹œź² ģ–“ģš”?',\n\t'Sound': 'ģŒķ–„ ģŒėŸ‰',\n\t'Start': 'ģ‹œģž‘',\n\t'Stop': '중지',\n\n\t'TextSpeed': 'źø€ģž ģ†ė„',\n\n\t'Video': 'ė¹„ė””ģ˜¤ ģŒėŸ‰',\n\t'Voice': 'ģŒģ„± ģŒėŸ‰',\n\n\t'Windowed': 'ģ°½ 화멓'\n};\n", + "/**\n * ============================================================\n * PortuguĆŖs\n * ============================================================\n *\n * Translators:\n *\n * fsvieira \n */\n\nexport default {\n\t'AdvanceHelp': 'Pode avanƧar no jogo usando o botĆ£o esquerdo do rato, tocar em qualquer sitĆ­o do ecrĆ£ de jogo ou carregar na barra de espaƧo.',\n\t'AllowPlayback': 'Clique aqui para permitir a reprodução de Ć”udio',\n\t'Audio': 'Ɓudio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Ativar reprodução automĆ”tica',\n\t'AutoPlaySpeed': 'Velocidade de reprodução automĆ”tica',\n\n\t'Back': 'Voltar',\n\t'BackButton': 'Voltar',\n\n\t'Cancel': 'Cancelar',\n\t'Close': 'Fechar',\n\t'Confirm': 'Deseja sair?',\n\t'Credits': 'CrĆ©ditos',\n\n\t'Delete': 'Apagar',\n\t'DialogLogButton': 'Mostrar registos de diĆ”logo',\n\n\t'FullScreen': 'EcrĆ£ Inteiro',\n\n\t'Gallery': 'Galeria',\n\n\t'Help': 'Ajuda',\n\t'Hide': 'Esconder',\n\t'HideButton': 'Esconder caixa de texto',\n\n\t'iOSAudioWarning': 'As configuraƧƵes de Ć”udio nĆ£o sĆ£o suportadas no iOS',\n\n\t'KeyboardShortcuts': 'Atalhos de Teclado',\n\n\t'Language': 'LĆ­ngua',\n\t'Load': 'Carregar',\n\t'LoadAutoSaveSlots': 'Jogos Salvos Automaticamente',\n\t'LoadButton': 'Abrir EcrĆ£ de Carregamento',\n\t'Loading': 'A Carregar',\n\t'LoadingMessage': 'Aguarde enquanto os recursos sĆ£o carregados',\n\t'LoadSlots': 'Jogos Salvos',\n\t'LocalStorageWarning': 'O armazenamento local nĆ£o estĆ” disponĆ­vel neste navegador',\n\t'Log': 'Registo',\n\n\t'Music': 'Volume de MĆŗsica',\n\n\t'NewContent': 'HĆ” novo conteĆŗdo disponĆ­vel, recarregue a pĆ”gina para obter a versĆ£o mais recente',\n\t'NoSavedGames': 'Nenhum jogo salvo',\n\t'NoAutoSavedGames': 'Nenhum jogo salvo automaticamente',\n\t'NoDialogsAvailable': 'NĆ£o hĆ” diĆ”logos disponĆ­veis. Os diĆ”logos aparecerĆ£o aqui quando ocorrerem no jogo',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Por favor rode o seu dispositivo para jogar',\n\t'Overwrite': 'Substituir',\n\n\t'QuickButtons': 'BotƵes de acesso rĆ”pido',\n\t'QuickMenu': 'Menu de acesso rĆ”pido',\n\t'Quit': 'Sair',\n\t'QuitButton': 'Sair do Jogo',\n\n\t'Resolution': 'Resolução',\n\n\t'Save': 'Salvar',\n\t'SaveButton': 'Abrir ecrĆ£ de salvar.',\n\t'SaveInSlot': 'Salvar em ranhura',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ConfiguraƧƵes',\n\t'SettingsButton': 'Abrir o EcrĆ£ de ConfiguraƧƵes',\n\t'Show': 'Mostrar',\n\t'Skip': 'Ignorar',\n\t'SkipButton': 'Entrar em modo de ignorar',\n\t'SlotDeletion': 'Tem a certeza de que deseja eliminar este jogo?',\n\t'SlotOverwrite': 'Tem a certeza de que deseja substituir este jogo?',\n\t'Sound': 'Volume de Som',\n\t'Start': 'InĆ­cio',\n\t'Stop': 'Parar',\n\n\t'TextSpeed': 'Velocidade de Texto',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Volume de Voz',\n\n\t'Windowed': 'Em Janela'\n};", + "/**\n * ============================================================\n * Russian\n * ============================================================\n *\n * Translators:\n *\n * Sergey Kuznetsov \n * Patience Daur \n */\n\nexport default {\n\t'AdvanceHelp': 'Чтобы ŠøŠ³Ń€Š°Ń‚ŃŒ, нажимайте на пробел или на Š»ŠµŠ²ŃƒŃŽ кнопку Š¼Ń‹ŃˆŠø.',\n\t'AllowPlayback': 'Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ звуковое сопровожГение',\n\t'Audio': 'Š—Š²ŃƒŠŗ',\n\t'AutoPlay': 'Авто',\n\t'AutoPlayButton': 'Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ авточтение',\n\t'AutoPlaySpeed': 'Š”ŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ Š°Š²Ń‚Š¾Ń‡Ń‚ŠµŠ½ŠøŃ',\n\n\t'Back': 'ŠŠ°Š·Š°Š“',\n\t'BackButton': 'Š’ŠµŃ€Š½ŃƒŃ‚ŃŒŃŃ назаГ',\n\n\t'Cancel': 'ŠžŃ‚Š¼ŠµŠ½Š°',\n\t'Close': 'Š—Š°ŠŗŃ€Ń‹Ń‚ŃŒ',\n\t'Confirm': 'Š’Ń‹ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾ хотите выйти?',\n\t'Credits': 'Авторы',\n\n\t'Delete': 'Š£Š“Š°Š»ŠøŃ‚ŃŒ',\n\t'DialogLogButton': 'ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚ŃŒ Š¶ŃƒŃ€Š½Š°Š» Гиалогов',\n\n\t'FullScreen': 'ŠŸŠ¾Š»Š½Ń‹Š¹ ŃŠŗŃ€Š°Š½',\n\n\t'Gallery': 'Š“Š°Š»ŠµŃ€ŠµŃ',\n\n\t'Help': 'ŠŸŠ¾Š¼Š¾Ń‰ŃŒ',\n\t'Hide': 'Š”ŠŗŃ€Ń‹Ń‚ŃŒ',\n\t'HideButton': 'Š”ŠŗŃ€Ń‹Ń‚ŃŒ текст',\n\n\t'iOSAudioWarning': 'ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø звука не ŠæŠ¾Š“Š“ŠµŃ€Š¶ŠøŠ²Š°ŃŽŃ‚ŃŃ на iOS.',\n\n\t'KeyboardShortcuts': 'Š“Š¾Ń€ŃŃ‡ŠøŠµ клавиши',\n\n\t'Language': 'Язык',\n\t'Load': 'Š—Š°Š³Ń€ŃƒŠ·ŠøŃ‚ŃŒ',\n\t'LoadAutoSaveSlots': 'Автосохранённые игры',\n\t'LoadButton': 'ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ Š·Š°Š³Ń€ŃƒŠ·ŠŗŠø',\n\t'Loading': 'Š—Š°Š³Ń€ŃƒŠ·ŠŗŠ°',\n\t'LoadingMessage': 'ŠŸŠ¾Š“Š¾Š¶Š“ŠøŃ‚Šµ, ŠæŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, игра Š·Š°Š³Ń€ŃƒŠ¶Š°ŠµŃ‚ся',\n\t'LoadSlots': 'Дохранённые игры',\n\t'LocalStorageWarning': 'Š›Š¾ŠŗŠ°Š»ŃŒŠ½Š¾Šµ хранилище Š½ŠµŠ“Š¾ŃŃ‚ŃƒŠæŠ½Š¾ в ŃŃ‚Š¾Š¼ Š±Ń€Š°ŃƒŠ·ŠµŃ€Šµ.',\n\t'Log': 'Š–ŃƒŃ€Š½Š°Š»',\n\n\t'Music': 'Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ Š¼ŃƒŠ·Ń‹ŠŗŠø',\n\n\t'NewContent': 'Š”Š¾ŃŃ‚ŃƒŠæŠ½Š¾ обновление, ŠæŠµŃ€ŠµŠ·Š°Š³Ń€ŃƒŠ·ŠøŃ‚Šµ ŃŃ‚Ń€Š°Š½ŠøŃ†Ńƒ',\n\t'NoSavedGames': 'ŠŠµŃ‚ сохранённых игр',\n\t'NoAutoSavedGames': 'ŠŠµŃ‚ автосохранённых игр',\n\t'NoDialogsAvailable': 'ŠŠµŃ‚ Гиалогов. Диалоги Š±ŃƒŠ“ŃƒŃ‚ ŠæŠ¾ŃŠ²Š»ŃŃ‚ŃŒŃŃ зГесь по мере ŠæŃ€Š¾Ń…Š¾Š¶Š“ŠµŠ½ŠøŃ игры',\n\n\t'OK': 'ŠžŠš',\n\t'OrientationWarning': 'Чтобы ŠøŠ³Ń€Š°Ń‚ŃŒ, ŠæŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, поверните Š’Š°ŃˆŠµ ŃƒŃŃ‚Ń€Š¾Š¹ŃŃ‚Š²Š¾',\n\t'Overwrite': 'ŠŸŠµŃ€ŠµŠ·Š°ŠæŠøŃŠ°Ń‚ŃŒ',\n\n\t'QuickButtons': 'Кнопки быстрого Š¼ŠµŠ½ŃŽ',\n\t'QuickMenu': 'Быстрое Š¼ŠµŠ½ŃŽ',\n\t'Quit': 'Выйти',\n\t'QuitButton': 'Выйти ŠøŠ· игры',\n\n\t'Resolution': 'Š Š°Š·Ń€ŠµŃˆŠµŠ½ŠøŠµ',\n\n\t'Save': 'Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ',\n\t'SaveButton': 'ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ ŃŠ¾Ń…Ń€Š°Š½ŠµŠ½ŠøŃ',\n\t'SaveInSlot': 'Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø',\n\t'SettingsButton': 'ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ настроек',\n\t'Show': 'ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚ŃŒ',\n\t'Skip': 'ŠŸŃ€Š¾ŠæŃƒŃŃ‚ŠøŃ‚ŃŒ',\n\t'SkipButton': 'АвтоперехоГ',\n\t'SlotDeletion': 'Š’Ń‹ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾ хотите ŃƒŠ“Š°Š»ŠøŃ‚ŃŒ ŃŃ‚Š¾ сохранение?',\n\t'SlotOverwrite': 'Š’Ń‹ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾ хотите ŠæŠµŃ€ŠµŠ·Š°ŠæŠøŃŠ°Ń‚ŃŒ ŃŃ‚Š¾ сохранение?',\n\t'Sound': 'Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ ŃŃ„Ń„ŠµŠŗŃ‚Š¾Š²',\n\t'Start': 'ŠŠ°Ń‡Š°Ń‚ŃŒ ŠøŠ³Ń€Ńƒ',\n\t'Stop': 'Дтоп',\n\n\t'TextSpeed': 'Š”ŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ текста',\n\n\t'Video': 'Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ виГео',\n\t'Voice': 'Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ голоса',\n\n\t'Windowed': 'ŠžŠŗŠ¾Š½Š½Ń‹Š¹ режим'\n};", + "/**\n * ============================================================\n * EspaƱol\n * ============================================================\n *\n * Translators:\n *\n * Hyuchia \n */\n\nexport default {\n\t'AdvanceHelp': 'Para avanzar en el juego, presiona espacio o haz click',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Activar juego automĆ”tico',\n\t'AutoPlaySpeed': 'Velocidad de Juego AutomĆ”tico',\n\n\t'Back': 'AtrĆ”s',\n\t'BackButton': 'AtrĆ”s',\n\n\t'Cancel': 'Cancelar',\n\t'Close': 'Cerrar',\n\t'Confirm': 'ĀæDeseas salir?',\n\t'Credits': 'CrĆ©ditos',\n\n\t'Delete': 'Eliminar',\n\t'DialogLogButton': 'Mostrar el historial de dialogos',\n\n\t'FullScreen': 'Pantalla Completa',\n\n\t'Gallery': 'GalerĆ­a',\n\n\t'Help': 'Ayuda',\n\t'Hide': 'Ocultar',\n\t'HideButton': 'Esconder el Texto',\n\n\t'iOSAudioWarning': 'Las configuraciones de Audio no estĆ”n disponibles en iOS',\n\n\t'KeyboardShortcuts': 'Atajos de Teclado',\n\n\t'Language': 'Lenguaje',\n\t'Load': 'Cargar',\n\t'LoadAutoSaveSlots': 'Juegos Guardados Automaticamente',\n\t'LoadButton': 'Abrir la Pantalla de Cargar',\n\t'Loading': 'Cargando',\n\t'LoadingMessage': 'Espere mientras se cargan los archivos',\n\t'LoadSlots': 'Juegos Guardados',\n\t'LocalStorageWarning': 'El Almacenaje Local no estĆ” disponible en este navegador',\n\t'Log': 'Historial',\n\n\t'Music': 'Volumen de la MĆŗsica',\n\n\t'NewContent': 'Un nuevo contenido estĆ” disponible, recarga la pĆ”gina para obtener la versión mĆ”s nueva',\n\t'NoSavedGames': 'No hay juegos guardados',\n\t'NoAutoSavedGames': 'No hay juegos guardados automaticamente',\n\t'NoDialogsAvailable': 'No hay dialogos disponibles. Los dialogos aparecerĆ”n aqui una vez que ocurran en el juego',\n\n\t'OK': 'Aceptar',\n\t'OrientationWarning': 'Por favor rota tu dispositivo para jugar',\n\t'Overwrite': 'Sobreescribir',\n\n\t'QuickButtons': 'Botones del MenĆŗ RĆ”pido',\n\t'QuickMenu': 'MenĆŗ RĆ”pido',\n\t'Quit': 'Salir',\n\t'QuitButton': 'Salir del Juego',\n\n\t'Resolution': 'Resolución',\n\n\t'Save': 'Guardar',\n\t'SaveButton': 'Abrir la Pantalla de Guardar',\n\t'SaveInSlot': 'Guardar en ranura',\n\t'SelectYourLanguage': 'Selecciona tu idioma',\n\t'Settings': 'Configuración',\n\t'SettingsButton': 'Abrir la Pantalla de Configuración',\n\t'Show': 'Mostrar',\n\t'Skip': 'Saltar',\n\t'SkipButton': 'Entrar al modo de salto',\n\t'SlotDeletion': 'ĀæEstĆ” seguro de querer eliminar este juego?',\n\t'SlotOverwrite': 'ĀæEstĆ” seguro de querer Sobreescribir este juego?',\n\t'Sound': 'Volumen de los Sonidos',\n\t'Start': 'Comenzar',\n\t'Stop': 'Detener',\n\n\t'TextSpeed': 'Velocidad del Texto',\n\n\t'Video': 'Volumen de los Videos',\n\t'Voice': 'Volumen de la Voz',\n\n\t'Windowed': 'Ventana'\n};", + "/**\n * ============================================================\n * Toki Pona\n * ============================================================\n *\n * Translators:\n *\n * jan Inkepa \n */\n\nexport default {\n\t'AdvanceHelp': 'sina ken musi e musi ni kepeken ilo luka anu nena palisa pi ilo sitelen.',\n\t'AllowPlayback': 'sina wile kute e musi ni la o luka e mi.',\n\t'Audio': 'kalama',\n\t'AutoPlay': 'luka ala',\n\t'AutoPlayButton': 'o open e pali musi kepeken luka ala.',\n\t'AutoPlaySpeed': 'tenpo tawa pi luka ala',\n\n\t'Back': 'tenpo pini',\n\t'BackButton': 'o tawa tenpo pini.',\n\n\t'Cancel': 'ala',\n\t'Close': 'pini',\n\t'Confirm': 'sina wile ala wile pini e musi?',\n\t'Credits': 'pona tawa',\n\n\t'Delete': 'weka',\n\t'DialogLogButton': 'mi wile lukin e lipu pi toki jan.',\n\n\t'FullScreen': 'ma ale pi ilo lukin',\n\n\t'Gallery': 'ma sitelen',\n\n\t'Help': 'kama sona',\n\t'Hide': 'weka',\n\t'HideButton': 'o weka e palisa nena.',\n\n\t'iOSAudioWarning': 'sina ken ala ante e kalama lon ilo iOS',\n\n\t'KeyboardShortcuts': 'pali pi ilo sitelen',\n\n\t'Language': 'toki',\n\t'Load': 'awen musi',\n\t'LoadAutoSaveSlots': 'musi li awen e musi',\n\t'LoadButton': 'lipu awen pi tenpo pini.',\n\t'Loading': 'musi li kama...',\n\t'LoadingMessage': 'pali e awen',\n\t'LoadSlots': 'lipu awen',\n\t'LocalStorageWarning': 'mi ken ala kepeken e ken Local Storage lon ilo ni',\n\t'Log': 'lipu toki',\n\n\t'Music': 'kalama musi',\n\n\t'NewContent': 'musi ni li kama sin! sina wile musi e musi sin, la o kama sin tawa lipu ni.',\n\t'NoSavedGames': 'awen musi pi tenpo pina li lon ala.',\n\t'NoAutoSavedGames': 'awen musi pi tenpo pina li lon ala.',\n\t'NoDialogsAvailable': 'tenpo pini la toki jan li lon ala. jan li toki, la sina ken lukin ni lon lipu ni.',\n\n\t'OK' : 'pona',\n\t'OrientationWarning': 'sina wile musi, la o sike e ilo sona sina.',\n\t'Overwrite': 'ante',\n\n\t'QuickButtons': 'nena pi pali wawa',\n\t'QuickMenu': 'palisa nena',\n\t'Quit': 'pini',\n\t'QuitButton': 'o pini e musi.',\n\n\t'Resolution': 'suli musi tawa ilo sitelen',\n\n\t'Save': 'o awen e musi',\n\t'SaveButton': 'o lukin e lipu pi awen musi.',\n\t'SaveInSlot': 'o awen e musi lon ma.',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ante',\n\t'SettingsButton': 'o ante e musi.',\n\t'Show': 'open',\n\t'Skip': 'tawa tenpo kama',\n\t'SkipButton': 'o tawa tenpo kama.',\n\t'SlotDeletion': 'sina wile ala wile weka e awen musi ni?',\n\t'SlotOverwrite': 'sina wile ala wile ante e awen musi ni?',\n\t'Sound': 'kalama ijo',\n\t'Start': 'musi sin',\n\t'Stop': 'pini',\n\n\t'TextSpeed': 'tenpo kama pi sitelen toki',\n\n\t'Video': 'kalama pi sitelen tawa',\n\t'Voice': 'kalama toki',\n\n\t'Windowed': 'ma lili pi ilo lukin',\n};\n", + "/**\n * ============================================================\n * Bulgarian\n * ============================================================\n *\n * Translators:\n *\n * librafrog <79138819+librafrog@users.noreply.github.com>\n */\n\nexport default {\n\t'AdvanceHelp': 'За Га преминете напреГ в играта, използвайте Š»ŠµŠ²ŠøŃ Š±ŃƒŃ‚Š¾Š½ на Š¼ŠøŃˆŠŗŠ°Ń‚а или Гокоснете ŠŗŃŠŠ“ето Šø Га е на ŠøŠ³Ń€Š°Š»Š½ŠøŃ екран, или пък натиснете клавиша Space.',\n\t'AllowPlayback': 'Щракнете Ń‚ŃƒŠŗ, за Га Ń€Š°Š·Ń€ŠµŃˆŠøŃ‚Šµ ауГио плейбек',\n\t'Audio': 'АуГио',\n\t'AutoPlay': 'Авто',\n\t'AutoPlayButton': 'Š Š°Š·Ń€ŠµŃˆŠø авто‑плейбек',\n\t'AutoPlaySpeed': 'Дтепен за авто.Š²ŃŠŠ·ŠæŃ€Š¾ŠøŠ·Š²ŠµŠ¶Š“Š°Š½Šµ',\n\n\t'Back': 'ŠŠ°Š·Š°Š“',\n\t'BackButton': 'Š‘ŃƒŃ‚Š¾Š½ назаГ',\n\n\t'Cancel': 'ŠžŃ‚Š¼ŃŠ½Š°',\n\t'Close': 'Затвори',\n\t'Confirm': 'Š˜ŃŠŗŠ°Ń‚Šµ ли Га Š½Š°ŠæŃƒŃŠ½ŠµŃ‚е?',\n\t'Credits': 'ŠŠ°Š“ŠæŠøŃŠø',\n\n\t'Delete': 'Š˜Š·Ń‚Ń€ŠøŠ¹',\n\t'DialogLogButton': 'Покажи Š“ŠøŠ°Š»Š¾Š³Š¾Š²ŠøŃ Гневник',\n\n\t'FullScreen': 'Š¦ŃŠ» Екран',\n\n\t'Gallery': 'Š“Š°Š»ŠµŃ€ŠøŃ',\n\n\t'Help': 'ŠŸŠ¾Š¼Š¾Ń‰',\n\t'Hide': 'Дкрий',\n\t'HideButton': 'Дкрий текстовото поле',\n\n\t'iOSAudioWarning': 'АуГио настройки не са ŃŃŠŠ²Š¼ŠµŃŃ‚ŠøŠ¼Šø с iOS.',\n\n\t'KeyboardShortcuts': 'Клавишни комбинации',\n\n\t'Language': 'Език',\n\t'Load': 'ЗареГи',\n\t'LoadAutoSaveSlots': 'Авто ŃŃŠŃ…Ń€Š°Š½ŠµŠ½Šø записи',\n\t'LoadButton': 'ŠžŃ‚Š²Š¾Ń€Šø Екран ЗареГи',\n\t'Loading': 'ЗарежГане',\n\t'LoadingMessage': 'Š˜Š·Ń‡Š°ŠŗŠ°Š¹ за зарежГане на активите',\n\t'LoadSlots': 'Š”ŃŠŃ…Ń€Š°Š½ŠµŠ½Šø Записи',\n\t'LocalStorageWarning': 'Локално ŃŃŠŃ…Ń€Š°Š½ŠµŠ½ŠøŠµ не е налично в рамките на Š±Ń€Š°ŃƒŠ·ŃŠŃ€Š°',\n\t'Log': 'Дневник',\n\n\t'Music': 'Дила на Š—Š²ŃƒŠŗŠ°ā€‘ŠœŃƒŠ·ŠøŠŗŠ°',\n\n\t'NewContent': 'ŠŠ°Š»ŠøŃ‡Š½Š¾ е ново ŃŃŠŠ“ŃŠŃ€Š¶Š°Š½ŠøŠµ, Š¼Š¾Š»Ń обновете страницата за Га приложите най-новата Š²ŠµŃ€ŃŠøŃ',\n\t'NoSavedGames': 'ŠŃŠ¼Š° ŃŃŠŃ…Ń€Š°Š½ŠµŠ½Šø записи',\n\t'NoAutoSavedGames': 'ŠŃŠ¼Š° Š°Š²Ń‚Š¾ā€‘ŃŃŠŃ…Ń€Š°Š½ŠµŠ½Šø записи',\n\t'NoDialogsAvailable': 'Липсват Гиалози. Диалозите ще се ŠæŠ¾ŃŠ²Š°Ń‚ Ń‚ŃƒŠŗ при ŠæŠ¾ŃŠ²Š°Ń‚Š° им',\n\n\t'OK': 'ŠžŠš',\n\t'OrientationWarning': 'ŠœŠ¾Š»Ń, Š·Š°Š²ŃŠŃ€Ń‚ŠµŃ‚Šµ ŃƒŃŃ‚Ń€Š¾Š¹ŃŃ‚Š²Š¾Ń‚Š¾, за Га играете',\n\t'Overwrite': 'ŠŸŃ€ŠµŠ·Š°ŠæŠøŃŠ²Š°Š½Šµ',\n\n\t'QuickButtons': 'Š‘ŃŠŃ€Š·Šø ŠœŠµŠ½ŃŽā€‘Š±ŃƒŃ‚Š¾Š½Šø',\n\t'QuickMenu': 'Š‘ŃŠŃ€Š·Š¾ ŠœŠµŠ½ŃŽ',\n\t'Quit': 'Š˜Š·Ń…Š¾Š“',\n\t'QuitButton': 'ŠŠ°ŠæŃƒŃŠ½ŠµŃ‚Šµ Š˜Š³Ń€Š°Ń‚Š°',\n\n\t'Resolution': 'Š ŠµŠ·Š¾Š»ŃŽŃ†ŠøŃ',\n\n\t'Save': 'Š”ŃŠŃ…Ń€Š°Š½Šø',\n\t'SaveButton': 'ŠžŃ‚Š²Š¾Ń€Šø Екран Записи',\n\t'SaveInSlot': 'Š”ŃŠŃ…Ń€Š°Š½Šø в Длот',\n\t'SelectYourLanguage': 'Š˜Š·Š±ŠµŃ€ŠµŃ‚Šµ езика си',\n\t'Settings': 'ŠšŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø',\n\t'SettingsButton': 'ŠžŃ‚Š²Š¾Ń€Šø екран ŠšŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø',\n\t'Show': 'Покажи',\n\t'Skip': 'ŠŸŃ€ŠµŃŠŗŠ¾Ń‡Šø',\n\t'SkipButton': 'Режим на прескачане',\n\t'SlotDeletion': 'ŠŠ°ŠøŃŃ‚ŠøŠ½Š° ли желаете Га изтриете този слот?',\n\t'SlotOverwrite': 'Желаете ли Га ŠæŃ€ŠµŠ·Š°ŠæŠøŃˆŠµŃ‚е този слот?',\n\t'Sound': 'Дила на Š—Š²ŃƒŠŗŠ°',\n\t'Start': 'ŠŠ°Ń‡Š°Š»Š¾',\n\t'Stop': 'Дпри',\n\n\t'TextSpeed': 'Š‘ŃŠŃ€Š·ŠøŠ½Š° на текста',\n\n\t'Video': 'Дила на ВиГео',\n\t'Voice': 'Дила на Гласа',\n\n\t'Windowed': 'ŠŸŃ€Š¾Š·Š¾Ń€ŠµŃ†'\n};", + "import { $_, DOM } from '@aegis-framework/artemis';\nimport { Component as PandoraComponent, Properties } from '@aegis-framework/pandora';\nimport type { Configuration, StaticComponent } from './types';\nimport type Monogatari from '../monogatari';\nimport type { VisualNovelEngine } from './types/Monogatari';\n\n/**\n * A component represents an object or content in the game such as screens, menus\n * and all other visual or structural elements.\n *\n * The life cycle of an component follows the Mounting cycle for actions.\n *\n * The mounting cycle has 3 steps:\n *\n * 1. Setup - Here the action needs to set up everything it will need for working\n * generally, in this section a component will generally add its HTML\n * content to the global Monogatari object and will set up any needed\n * configuration or state variables.\n *\n * 2. Bind - Once the component has been setup, its time to bind all the necessary\n * event listeners or perform more operations on the DOM once all elements\n * have been setup. Components will generally bind all the listeners needed\n * for their inner elements to work correctly.\n *\n * 3. Init - Finally, once the component was setup and it performed all the needed\n * bindings, it may start performing its operations and perform all\n * further needed operations.\n *\n * @class Component\n * @template P - The type of the component's props (defaults to Properties)\n * @template S - The type of the component's state (defaults to Properties)\n */\nclass Component

extends PandoraComponent {\n\t/**\n\t * Marks the component as experimental, meaning it's not stable and should not\n\t * be used in production.\n\t */\n\tstatic _experimental: boolean = false;\n\n\t/**\n\t * If needed, every component should declare its configuration as follows. This\n\t * configuration object should be used to store component-specific settings as well\n\t * as other objects/assets used by the action. If any specific object needs\n\t * recurrent access such as the declarations in the script.js file, provinding\n\t * a static function for that specific object could be great.\n\t *\n\t * IMPORTANT: Subclasses should declare their own `static _configuration = {}`\n\t * to avoid sharing state with other components.\n\t */\n\tstatic _configuration: Configuration = {};\n\n\tstatic _priority: number = 0;\n\n\t/**\n\t * Reference to the Monogatari engine (set by engine on registration)\n\t */\n\tstatic engine: VisualNovelEngine;\n\n\t/**\n\t * Parent component reference\n\t */\n\t_parent?: PandoraComponent;\n\n\tconstructor () {\n\t\tsuper();\n\t}\n\n\t/**\n\t * @static configuration - A simple function providing access to the configuration\n\t * object of the function. If the component has a configuration object it must\n\t * also include this method.\n\t *\n\t * @param {Object|string} [object = null] - Object with which current\n\t * configuration will be updated with (i.e. Object.assign) or a string to access\n\t * a property.\n\t *\n\t * @return {any} - If the parameter sent was a string, the function will\n\t * return the value of the property whose name matches the parameter. If no\n\t * parameter was sent, then the function will return the whole configuration\n\t * object.\n\t */\n\tstatic configuration (object: string | Configuration | null = null): Configuration | unknown {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn this._configuration[object];\n\t\t\t} else {\n\t\t\t\tthis._configuration = Object.assign({}, this._configuration, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._configuration;\n\t\t}\n\t}\n\n\tstatic all (): DOM {\n\t\treturn $_(this.tag);\n\t}\n\n\tstatic get (id: string): DOM {\n\t\treturn $_(`${this.tag} [data-instance=\"${id}\"]`);\n\t}\n\n\t/**\n\t * @static onStart - This function acts as an event listener for when the game\n\t * starts. If the component needs to do any particular activities when the game\n\t * starts, then this function should be implemented and it will be automatically\n\t * called once the player starts the game.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic async onStart (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static onLoad - This function acts as an event listener for when a game\n\t * is loaded. If the component needs to perform any particular actions such as\n\t * restoring some state (i.e. showing images, playing media, etc.) when a game\n\t * is loaded, this function must be implemented and it will be automatically\n\t * called when a game is loaded.\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic async onLoad (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static setup - The setup is the first step of the Mounting cycle, all\n\t * operations required for the component's setup should be implemented here.\n\t *\n\t * @return {Promise} - Result of the setup operation\n\t */\n\tstatic async setup (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static shouldProceed - Either when the user clicks in the game to proceed or\n\t * the autoPlay feature is ready to go on, Monogatari will first check with\n\t * all actions if it's ok to proceed. Every action should implement its own\n\t * logic for it according to its requirements.\n\t *\n\t * @param {Object} options - Options for proceeding\n\t * @param {boolean} options.userInitiated - Whether the proceed was initiated by user click\n\t * @param {boolean} options.skip - Whether skip mode is active\n\t * @param {boolean} options.autoPlay - Whether auto-play mode is active\n\t * @return {Promise} - Resolved if proceeding is alright or rejected if its not\n\t */\n\tstatic async shouldProceed (_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean }): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.shouldProceed());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static willProceed - Once the shouldProceed check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game proceeding.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic async willProceed (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.willProceed());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static shouldRollback - Similarly to the shouldProceed () function, this one takes\n\t * action when the player tries to go back in the game.Monogatari will first\n\t * check with all actions if it's ok to go back. Every action should implement\n\t * its own logic for it according to its requirements.\n\t *\n\t * @return {Promise} - Resolved if going back is alright or rejected if its not\n\t */\n\tstatic async shouldRollback (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.shouldRollback());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static willRollback - Once the shouldRollback check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game reverting the previous action\n\t *\n\t * @return {Promise}\n\t */\n\tstatic async willRollback (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.willRollback());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static bind - The binding is the second step of the Mounting cycle, all\n\t * operations related to event bindings or other sort of binding with the\n\t * HTML content generated in the setup phase should be implemented here.\n\t * @return {Promise}\n\t */\n\tstatic async bind (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static init - The initialization is the last step of the Mounting cycle,\n\t * all final operations should be implemented here.\n\t *\n\t * @param {string} selector - The CSS selector with which Monogatari has been\n\t * initialized\n\t * @return {Promise} - Result of the initialization operation\n\t */\n\tstatic async init (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static onSave - This function acts as an event listener for when a game\n\t * is saved. If the component needs to perform any particular actions when that\n\t * happens, this function must be implemented and it will be automatically\n\t * called when a game is saved.\n\t *\n\t * @param {Object} slot - The slot object that has just been saved.\n\t * @param {string} slot.key - The key used to save the slot in the local storage\n\t * @param {Object} slot.value - The actual value saved\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic async onSave (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static reset - When a game ends using the 'end' statement or before a game\n\t * is loaded, Monogatari will perform a reset on all its components. If the component\n\t * needs to reset a state or any other variables/elements to an initial state\n\t * once a game is over or a new one is loaded, the logic for it must be implemented\n\t * here and the function will be automatically called when needed.\n\t *\n\t * @return {Promise} - Result of the reset operation\n\t */\n\tstatic async onReset (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.onReset());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * Get all instances of this component, optionally iterating with callback\n\t */\n\tstatic instances (callback: ((instance: any) => void) | null = null): ReturnType {\n\t\tif (typeof callback === 'function') {\n\t\t\treturn $_(this.tag).each(callback as any);\n\t\t}\n\t\treturn $_(this.tag);\n\t}\n\n\t// =========================================\n\t// Instance Methods\n\t// =========================================\n\n\t/**\n\t * Reset this instance's state\n\t */\n\tasync onReset (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static element - Returns this component's element as an Artemis DOM\n\t * instance, using the result of the `selector ()` function as the selector\n\t *\n\t * @returns {DOM} - Artemis DOM instance\n\t */\n\telement (): ReturnType {\n\t\treturn $_(this);\n\t}\n\n\t/**\n\t * Remove this component from the DOM\n\t */\n\toverride remove (): void {\n\t\tthis.parentNode?.removeChild(this);\n\t}\n\n\t/**\n\t * Find an instance by ID within this component type\n\t */\n\tinstance (id: string): ReturnType {\n\t\tconst ctor = this.constructor as StaticComponent;\n\t\treturn $_(`${ctor.tag}[data-${ctor.name.toLowerCase()}=\"${id}\"`);\n\t}\n\n\t/**\n\t * Get or set the parent component\n\t */\n\tparent (component?: PandoraComponent): PandoraComponent | undefined | void {\n\t\tif (typeof component !== 'undefined') {\n\t\t\tthis._parent = component;\n\t\t} else {\n\t\t\treturn this._parent;\n\t\t}\n\t}\n\n\t/**\n\t * Get the engine reference\n\t */\n\tget engine (): VisualNovelEngine {\n\t\treturn (this.constructor as typeof Component).engine;\n\t}\n\n\tset engine (_value: VisualNovelEngine) {\n\t\tthrow new Error('Component engine reference is hold at static level and cannot be modified.');\n\t}\n\n\t/**\n\t * Check if it's ok to proceed\n\t */\n\tasync shouldProceed (): Promise {\n\t\t// Base implementation allows proceeding\n\t}\n\n\t/**\n\t * Respond to game proceeding\n\t */\n\tasync willProceed (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * Check if it's ok to go back\n\t */\n\tasync shouldRollback (): Promise {\n\t\t// Base implementation allows rollback\n\t}\n\n\t/**\n\t * Respond to game reverting\n\t */\n\tasync willRollback (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * Called when the component is connected to the DOM\n\t */\n\tasync connectedCallback (): Promise {\n\t\t// Always add the animated class for all the components\n\t\t// TODO: Let's be honest, this is stupid.\n\t\tthis.classList.add('animated');\n\n\t\treturn super.connectedCallback();\n\t}\n\n\t/**\n\t * Attempts to find a content element inside of this\n\t * component or its children (light DOM)\n\t *\n\t * @param name - Name of the content element to find\n\t * @returns An Artemis DOM instance with the found elements\n\t */\n\tcontent (name: string): DOM {\n\t\treturn $_(this).find(`[data-content=\"${name}\"]`);\n\t}\n}\n\nexport default Component;\n", + "import Component from '../../lib/Component';\n\nclass AlertDialog extends Component {\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.props = {\n\t\t\tactive: true,\n\t\t\tmessage: '',\n\t\t\tcontext: null,\n\t\t\teditable: false,\n\t\t\tactions: []\n\t\t};\n\t}\n\n\tasync onPropsUpdate (property: string, oldValue: unknown, newValue: unknown) {\n\t\tif (property === 'active') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.classList.toggle ('modal--active');\n\t\t\t}\n\t\t}\n\t}\n\n\tasync willMount () {\n\t\tthis.classList.add ('modal', 'modal--active');\n\t}\n\n\trender () {\n\t\tconst { message, context, editable, actions } = this.props;\n const key = message as string;\n\n return `\n\t\t\t

\n\t\t\t\t

${this.engine.string(key)}

\n\t\t\t\t${context ? `${editable ? `` : `${context}`}` : ''}\n\t\t\t\t${Array.isArray(actions) ? `
\n\t\t\t\t\t${actions.map (action => ``).join('')}\n\t\t\t\t
` : ''}\n\t\t\t
\n\t\t`;\n\t}\n}\n\n\nAlertDialog.tag = 'alert-modal';\n\n\nexport default AlertDialog;", + "import type { Properties } from '@aegis-framework/pandora';\nimport { Util } from '@aegis-framework/artemis';\nimport Component from '../../lib/Component';\n\n/**\n * Canvas object configuration\n */\nexport interface CanvasObject {\n\tstart: (engine: unknown, layers: Record, props: Record, state: Record, container: CanvasContainer) => unknown;\n\tstop: () => void;\n\trestart: () => void;\n\tlayers: string[];\n\tstate: Record;\n\tprops: Record;\n}\n\n/**\n * Props for CanvasContainer component\n */\nexport interface CanvasContainerProps extends Properties {\n\tmode: string | null;\n\tcanvas: string | null;\n\tcharacter: string | null;\n\tobject: CanvasObject;\n\tclasses: string[];\n}\n\n/**\n * State for CanvasContainer component\n */\nexport interface CanvasContainerState extends Properties {\n\tlayers: Record;\n}\n\nclass CanvasContainer extends Component {\n\tstatic override tag = 'canvas-container';\n\n\tlayers: Record;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tmode: null,\n\t\t\tcanvas: null,\n\t\t\tcharacter: null,\n\t\t\tobject: {\n\t\t\t\tstart: () => {},\n\t\t\t\tstop: () => {},\n\t\t\t\trestart: () => {},\n\t\t\t\tlayers: [],\n\t\t\t\tstate: {},\n\t\t\t\tprops: {}\n\t\t\t},\n\t\t\tclasses: []\n\t\t};\n\n\t\tthis.layers = {};\n\t}\n\n\toverride onPropsUpdate(_property: string, _oldValue: unknown, _newValue: unknown): Promise {\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willMount(): Promise {\n\t\tconst { mode, canvas, classes } = this.props;\n\n\t\tfor (const className of classes) {\n\t\t\tif (className) {\n\t\t\t\tthis.classList.add(className);\n\t\t\t}\n\t\t}\n\n\t\tif (mode === 'character') {\n\t\t\tthis.dataset.character = canvas ?? '';\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride didMount(): Promise {\n\t\tconst { object } = this.props;\n\n\t\tif (Array.isArray(object.layers)) {\n\t\t\tif (object.layers.length > 0) {\n\t\t\t\tfor (const layer of object.layers) {\n\t\t\t\t\tthis.layers[layer] = this.querySelector(`canvas[data-layer=\"${layer}\"]`);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.layers.base = this.querySelector('canvas[data-layer=\"base\"]');\n\t\t}\n\n\t\treturn Util.callAsync(object.start as (...args: unknown[]) => unknown, this.engine, this.layers, object.props, object.state, this) as Promise;\n\t}\n\n\toverride render(): string {\n\t\tconst { object } = this.props;\n\n\t\tlet layers = '';\n\n\t\tif (Array.isArray(object.layers)) {\n\t\t\tif (object.layers.length > 0) {\n\t\t\t\tlayers = object.layers.map(l => ``).join('');\n\t\t\t}\n\t\t} else {\n\t\t\tlayers = '';\n\t\t}\n\n\t\treturn `\n\t\t\t
${layers}
\n\t\t`;\n\t}\n}\n\nexport default CanvasContainer;\n\n", + "import Component from '../../lib/Component';\nimport type TypeWriter from '../type-writer';\n\nclass CenteredDialog extends Component {\n\tstatic override tag = 'centered-dialog';\n\n\tconstructor () {\n\t\tsuper ();\n\t}\n\n\t/**\n\t * Cleanup any running type-writer animation before removal\n\t */\n\tprivate _cleanupTypeWriter (): void {\n\t\tconst typeWriter = this.querySelector('type-writer') as TypeWriter | null;\n\t\tif (typeWriter && typeof typeWriter.destroy === 'function') {\n\t\t\ttypeWriter.destroy();\n\t\t}\n\t}\n\n\toverride async willRollback () {\n\t\t// Clean up type-writer animation before removing\n\t\tthis._cleanupTypeWriter();\n\t\t// If a choice is visible right now, we can simply remove it and let the\n\t\t// game revert to the previous statement.\n\t\tthis.remove ();\n\t}\n\n\toverride async onReset () {\n\t\tthis._cleanupTypeWriter();\n\t\tthis.remove ();\n\t}\n\n\toverride async willUnmount () {\n\t\tthis._cleanupTypeWriter();\n\t}\n\n\toverride render (): string {\n\t\treturn `\n\t\t\t\n\t\t`;\n\t}\n}\n\nexport default CenteredDialog;", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\n\n/**\n * Character definition for sprite rendering\n */\nexport interface CharacterDefinition {\n\tlayers: string[];\n\tlayer_assets?: Record>;\n}\n\n/**\n * Layer state configuration\n */\nexport interface LayerState {\n\tasset: string;\n\tclasses: string[];\n}\n\n/**\n * Props for CharacterSprite component\n */\nexport interface CharacterSpriteProps extends Properties {\n\tcharacter: CharacterDefinition | string;\n\tsrc: string;\n\tdirectory: string;\n\twidth: number;\n\theight: number;\n\tratio: number;\n}\n\n/**\n * State for CharacterSprite component\n */\nexport interface CharacterSpriteState extends Properties {\n\tlayers: Record;\n}\n\nclass CharacterSprite extends Component {\n\tstatic override tag = 'character-sprite';\n\n\tprivate _resizeHandler: (() => void) | null = null;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tcharacter: '',\n\t\t\tsrc: '',\n\t\t\tdirectory: '',\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\tratio: 0\n\t\t};\n\n\t\tthis.state = {\n\t\t\tlayers: {}\n\t\t};\n\t}\n\n\toverride onStateUpdate(property: string, _oldValue: unknown, _newValue: unknown): Promise {\n\t\tif (property === 'layers') {\n\t\t\treturn this.forceRender().then(() => {\n\t\t\t\tthis.resize();\n\t\t\t\treturn Promise.resolve();\n\t\t\t});\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onPropsUpdate(property: string, _oldValue: unknown, newValue: unknown, _oldObject: CharacterSpriteProps, newObject: CharacterSpriteProps): Promise {\n\t\tif (property === 'src') {\n\t\t\tif (typeof newValue === 'string' && newValue.trim() !== '') {\n\t\t\t\tconst img = document.createElement('img');\n\t\t\t\timg.src = newValue;\n\n\t\t\t\tthis.element().find('img:not(:first-child)').each((element) => {\n\t\t\t\t\telement.remove();\n\t\t\t\t});\n\n\t\t\t\tconst firstImg = this.element().find('img').get(0);\n\t\t\t\tif (firstImg) {\n\t\t\t\t\tfirstImg.setAttribute('src', newValue);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (property === 'width' || property === 'height') {\n\t\t\tconst { height, width } = newObject;\n\t\t\tthis.content('wrapper').style({\n\t\t\t\theight: `max(${height}px, 80vh)`,\n\t\t\t\twidth: `max(${width}px, 80vh)`\n\t\t\t});\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willMount(): Promise {\n\t\treturn Promise.resolve();\n\t}\n\n\toverride didMount(): Promise {\n\t\tthis._resizeHandler = () => {\n\t\t\tthis.resize();\n\t\t};\n\t\twindow.addEventListener('resize', this._resizeHandler);\n\n\t\tthis.resize();\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willUnmount(): Promise {\n\t\tif (this._resizeHandler) {\n\t\t\twindow.removeEventListener('resize', this._resizeHandler);\n\t\t\tthis._resizeHandler = null;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\tresize(): void {\n\t\tconst { width, height, ratio } = this.props;\n\n\t\tconst actualHeight = parseInt(getComputedStyle(this).height.replace('px', ''));\n\t\tconst realWidth = actualHeight * ratio;\n\n\t\tthis.content('wrapper').style({\n\t\t\twidth: `${realWidth}px`\n\t\t});\n\n\t\tthis.content('wrapper').find('[data-layer]').each((layer) => {\n\t\t\tconst layerEl = layer as HTMLImageElement;\n\t\t\tlayerEl.onload = () => {\n\t\t\t\tif (layerEl.naturalWidth !== width) {\n\t\t\t\t\tlayerEl.style.width = `${(layerEl.naturalWidth * realWidth) / width}px`;\n\t\t\t\t}\n\n\t\t\t\tif (layerEl.naturalHeight !== height) {\n\t\t\t\t\tlayerEl.style.height = 'auto';\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t}\n\n\toverride render(): Promise {\n\t\tconst { character, directory } = this.props;\n\n\t\tif (typeof character === 'string') {\n\t\t\treturn Promise.resolve('
');\n\t\t}\n\n\t\tconst promises: Promise<{ layer: string; image: HTMLImageElement; classes: string[]; sprite: string }>[] = [];\n\n\t\tfor (const layer of character.layers) {\n\t\t\tconst localLayer = this.state.layers[layer];\n\n\t\t\tif (typeof localLayer === 'object' && localLayer !== null) {\n\t\t\t\tconst { classes } = localLayer;\n\t\t\t\tlet asset: string = localLayer.asset;\n\n\t\t\t\tif (typeof character.layer_assets === 'object' && character.layer_assets !== null) {\n\t\t\t\t\tconst layerAssets = character.layer_assets[layer];\n\n\t\t\t\t\tif (typeof layerAssets === 'object' && layerAssets !== null) {\n\t\t\t\t\t\tif (typeof layerAssets[asset] === 'string') {\n\t\t\t\t\t\t\tasset = layerAssets[asset];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (typeof asset === 'string') {\n\t\t\t\t\tpromises.push(new Promise((resolve) => {\n\t\t\t\t\t\tconst image = new Image();\n\n\t\t\t\t\t\timage.src = `${directory}${asset}`;\n\n\t\t\t\t\t\timage.onload = function() {\n\t\t\t\t\t\t\tresolve({ layer, image, classes, sprite: localLayer.asset });\n\t\t\t\t\t\t};\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.all(promises).then((assets) => {\n\t\t\treturn new Promise((resolve) => {\n\t\t\t\tconst wrapper = document.createElement('div');\n\t\t\t\twrapper.dataset.content = 'wrapper';\n\n\t\t\t\tlet maxHeight = 0;\n\t\t\t\tlet maxWidth = 0;\n\n\t\t\t\tfor (const asset of assets) {\n\t\t\t\t\tconst { image, layer, classes, sprite } = asset;\n\n\t\t\t\t\tconst height = image.naturalHeight;\n\t\t\t\t\tconst width = image.naturalWidth;\n\n\t\t\t\t\tif (height > maxHeight) {\n\t\t\t\t\t\tmaxHeight = height;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (width > maxWidth) {\n\t\t\t\t\t\tmaxWidth = width;\n\t\t\t\t\t}\n\n\t\t\t\t\timage.style.zIndex = String(character.layers.indexOf(layer));\n\t\t\t\t\timage.dataset.layer = layer;\n\t\t\t\t\timage.dataset.sprite = sprite;\n\n\t\t\t\t\timage.classList.add(...classes);\n\n\t\t\t\t\twrapper.appendChild(image);\n\t\t\t\t}\n\n\t\t\t\tthis.setProps({\n\t\t\t\t\tratio: maxWidth / maxHeight,\n\t\t\t\t\theight: maxHeight,\n\t\t\t\t\twidth: maxWidth\n\t\t\t\t});\n\n\t\t\t\twrapper.style.height = `${maxHeight}px`;\n\n\t\t\t\tresolve(wrapper.outerHTML);\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport default CharacterSprite;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\n\n/**\n * Choice item definition\n */\nexport interface ChoiceItem {\n\tText: string;\n\tDo: string;\n\tClass?: string;\n\tClickable?: () => boolean | Promise;\n\t_key: string;\n}\n\n/**\n * Props for ChoiceContainer component\n */\nexport interface ChoiceContainerProps extends Properties {\n\tchoices: ChoiceItem[];\n\tclasses: string;\n}\n\nclass ChoiceContainer extends Component {\n\tstatic override tag = 'choice-container';\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tchoices: [],\n\t\t\tclasses: ''\n\t\t};\n\t}\n\n\toverride shouldProceed(): Promise {\n\t\t// If a choice is currently being displayed, the player should not be able\n\t\t// to advance until one is chosen.\n\t\treturn Promise.reject('Choice Container awaiting for user input.');\n\t}\n\n\toverride willRollback(): Promise {\n\t\t// If a choice is visible right now, we can simply remove it and let the\n\t\t// game revert to the previous statement.\n\t\tthis.remove();\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onReset(): Promise {\n\t\tthis.remove();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willMount(): Promise {\n\t\t// Check if a list of classes has been defined and if the list is not empty\n\t\tif (typeof this.props.classes === 'string' && this.props.classes !== '') {\n\t\t\tthis.props.classes.split(' ').forEach((className) => {\n\t\t\t\tif (className) {\n\t\t\t\t\tthis.classList.add(className);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\toverride didMount(): Promise {\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): Promise {\n\t\tconst choices = this.props.choices.map((choice) => {\n\t\t\tconst choiceText = this.engine.replaceVariables(choice.Text);\n\n\t\t\tif (typeof choice.Clickable === 'function') {\n\t\t\t\treturn new Promise((resolve) => {\n\t\t\t\t\tthis.engine.assertAsync(choice.Clickable!, this.engine).then(() => {\n\t\t\t\t\t\tresolve(``);\n\t\t\t\t\t}).catch(() => {\n\t\t\t\t\t\tresolve(``);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn Promise.resolve(``);\n\t\t});\n\n\t\treturn Promise.all(choices).then((choiceButtons) => `\n\t\t\t
\n\t\t\t\t${choiceButtons.join('')}\n\t\t\t
\n\t\t`);\n\t}\n}\n\nexport default ChoiceContainer;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from './Component';\n\n\nexport interface ScreenState extends Properties {\n\topen: boolean;\n}\n\n/**\n * ScreenComponent is a base class for screen-type components.\n * Screens can be opened and closed, with visual state managed automatically.\n *\n * @class ScreenComponent\n * @template P - The type of the component's props (must extend Properties)\n * @template S - The type of the component's state (must extend ScreenState)\n */\nclass ScreenComponent<\n\tP extends Properties = Properties,\n\tS extends ScreenState = ScreenState\n> extends Component {\n\tconstructor () {\n\t\tsuper();\n\n\t\t// Cast needed because we only initialize base properties\n\t\t// Subclasses will add their own properties in their constructor\n\t\tthis.state = {\n\t\t\topen: false\n\t\t} as S;\n\t}\n\n\tasync willMount (): Promise {\n\t\tthis.dataset.screen = (this.constructor as typeof ScreenComponent).tag.replace('-screen', '');\n\t}\n\n\tasync onStateUpdate (property: string, oldValue: unknown, newValue: unknown): Promise {\n\t\tif (property === 'open') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.classList.add('active');\n\t\t\t} else {\n\t\t\t\tthis.classList.remove('active');\n\t\t\t}\n\t\t}\n\t}\n\n\trender (): string {\n\t\treturn '';\n\t}\n}\n\nexport default ScreenComponent;\nexport { ScreenComponent };\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport ScreenComponent, { ScreenState } from '../../lib/ScreenComponent';\n\n/**\n * Credits content type - can be a string or a record of credit items\n */\nexport type CreditsContent = string | Record;\n\n/**\n * Credits configuration\n */\nexport type CreditsConfiguration = Record;\n\n/**\n * Props for CreditsScreen component\n */\nexport interface CreditsScreenProps extends Properties {\n\tcredits: CreditsConfiguration;\n}\n\nclass CreditsScreen extends ScreenComponent {\n\tstatic override tag = 'credits-screen';\n\n\tstatic override init(): Promise {\n\t\tif (Object.keys(this.engine.configuration('credits') as object).length > 0) {\n\t\t\tconst mainMenu = this.engine.component('main-menu') as { addButton?: (btn: { string: string; icon: string; data: { action: string; open: string } }) => void } | undefined;\n\t\t\tif (mainMenu?.addButton) {\n\t\t\t\tmainMenu.addButton({\n\t\t\t\t\tstring: 'Credits',\n\t\t\t\t\ticon: '',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'open-screen',\n\t\t\t\t\t\topen: 'credits'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tcredits: {}\n\t\t};\n\t}\n\n\toverride willMount(): Promise {\n\t\tsuper.willMount();\n\t\tthis.setProps({\n\t\t\tcredits: this.engine.configuration('credits') as CreditsConfiguration\n\t\t});\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\tconst items = Object.keys(this.props.credits).map((section) => {\n\t\t\tlet html = `

${this.engine.replaceVariables(section)}

`;\n\t\t\tconst content = this.props.credits[section];\n\n\t\t\tif (typeof content === 'string') {\n\t\t\t\treturn `

${content}

`;\n\t\t\t}\n\n\t\t\tfor (const key of Object.keys(content)) {\n\t\t\t\tconst title = this.engine.replaceVariables(key);\n\t\t\t\tlet value: string | string[] = content[key];\n\n\t\t\t\tif (value instanceof Array) {\n\t\t\t\t\tvalue = value.join(', ');\n\t\t\t\t}\n\n\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\tvalue = this.engine.replaceVariables(value);\n\t\t\t\t}\n\n\t\t\t\tif (title.indexOf('_') === 0) {\n\t\t\t\t\thtml += `

${value}

`;\n\t\t\t\t} else {\n\t\t\t\t\thtml += `

${title}${value}

`;\n\t\t\t\t}\n\t\t\t}\n\t\t\thtml += '
';\n\n\t\t\treturn html;\n\t\t}).join('');\n\n\t\treturn `\n\t\t\t\n\t\t\t

Credits

\n\t\t\t
\n\t\t\t\t${items}\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default CreditsScreen;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\nimport type { Character } from '../../lib/types';\nimport type { DOM } from '@aegis-framework/artemis';\n/**\n * Dialog entry for the log\n */\nexport interface DialogEntry {\n\tid: string;\n\tcharacter: Character;\n\tdialog: string;\n}\n\n/**\n * State for DialogLog component\n */\nexport interface DialogLogState extends Properties {\n\tactive: boolean;\n}\n\nclass DialogLog extends Component {\n\tstatic override tag = 'dialog-log';\n\n\tstatic override setup(): Promise {\n\t\tconst quickMenu = this.engine.component('quick-menu') as { addButtonAfter?: (after: string, btn: { string: string; icon: string; data: { action: string } }) => void } | undefined;\n\n\t\tif (quickMenu?.addButtonAfter) {\n\t\t\tquickMenu.addButtonAfter('Hide', {\n\t\t\t\tstring: 'Log',\n\t\t\t\ticon: 'far fa-comments',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'dialog-log'\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\tstatic override bind(): Promise {\n\t\tthis.engine.registerListener('dialog-log', {\n\t\t\tcallback: (event: Event, element: DOM) => {\n\t\t\t\tthis.instances((element: DialogLog) => {\n\t\t\t\t\tconst active = element.state.active;\n\t\t\t\t\telement.setState({\n\t\t\t\t\t\tactive: !active\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.state = {\n\t\t\tactive: false\n\t\t};\n\t}\n\n\toverride onReset(): Promise {\n\t\tthis.content('log').html('
No dialogs available. Dialogs will appear here as they show up.
');\n\t\treturn Promise.resolve();\n\t}\n\n\twrite({ id, character, dialog }: DialogEntry): void {\n\t\tthis.content('placeholder').remove();\n\t\tif (id !== '_narrator' && id !== 'centered') {\n\t\t\tconst { name, color } = character;\n\t\t\tthis.content('log').append(`\n\t\t\t\t
\n\t\t\t\t\t${this.engine.replaceVariables(name ?? '')} \n\t\t\t\t\t

${dialog}

\n\t\t\t\t
\n\t\t\t`);\n\t\t} else {\n\t\t\tthis.content('log').append(`

${dialog}

`);\n\t\t}\n\t}\n\n\tpop(): void {\n\t\tconst last = this.content('log').find('[data-spoke]').last();\n\t\tif (last.exists()) {\n\t\t\tlast.remove();\n\t\t}\n\t}\n\n\toverride onStateUpdate(property: string, _oldValue: unknown, newValue: unknown): Promise {\n\t\tif (property === 'active') {\n\t\t\tthis.classList.toggle('modal--active');\n\n\t\t\tif (newValue === true) {\n\t\t\t\tconst log = this.content('log').get(0);\n\n\t\t\t\tif (log) {\n\t\t\t\t\tlog.scrollTop = log.scrollHeight;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willMount(): Promise {\n\t\tthis.classList.add('modal');\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\treturn `\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
No dialogs available. Dialogs will appear here as they show up.
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default DialogLog;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport { $_ } from '@aegis-framework/artemis';\nimport ScreenComponent, { ScreenState } from '../../lib/ScreenComponent';\n\n/**\n * State for GalleryScreen component\n */\nexport interface GalleryScreenState extends ScreenState {\n\tunlocked: string[];\n}\n\nclass GalleryScreen extends ScreenComponent {\n\tstatic override tag = 'gallery-screen';\n\n\tstatic override bind(): Promise {\n\t\t// Now lets make it so that when a player clicks on one of the Images\n\t\t// of the gallery, the image gets shown. For that purpose, we'll use\n\t\t// create a function showImage(). You may notice we are not using a simple\n\t\t// $_().click function, instead we are using the 'on' function, this is\n\t\t// due to the images being generated automatically, we can't simply\n\t\t// attach the listener to them so we attach it to their parent (the\n\t\t// gallery) and then check if the click was actually on an image.\n\t\tconst self = this;\n\t\tthis.instances().on('click', '[data-image]', function(this: HTMLElement) {\n\t\t\tconst image = $_(this).closest('[data-image]').data('image') as string | undefined;\n\t\t\tif (image) {\n\t\t\t\tself.showImage(image);\n\t\t\t}\n\t\t});\n\n\t\t// This listener will make it so that any click on the image viewer\n\t\t// closes it\n\t\tthis.instances().on('click', '[data-ui=\"image-viewer\"]', () => {\n\t\t\tthis.instances().find('[data-ui=\"image-viewer\"]').removeClass('modal--active');\n\t\t\tthis.instances().find('[data-ui=\"image-viewer\"] figure').style('background-image', '');\n\t\t});\n\t\treturn Promise.resolve();\n\t}\n\n\tstatic override init(): Promise {\n\t\tif (Object.keys(this.engine.assets('gallery') ?? {}).length > 0) {\n\t\t\tconst mainMenu = this.engine.component('main-menu') as (typeof import('../../lib/MenuComponent').MenuComponent) | undefined;\n\t\t\tif (mainMenu && 'addButton' in mainMenu) {\n\t\t\t\t(mainMenu as any).addButton({\n\t\t\t\t\tstring: 'Gallery',\n\t\t\t\t\ticon: '',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'open-screen',\n\t\t\t\t\t\topen: 'gallery'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\t// Hide Gallery if there are no images defined.\n\t\t\tthis.instances().remove();\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\t// A simple function to show an image, this will activate the image viewer\n\t// and set the image as a background for it.\n\tstatic showImage(image: string): void {\n\t\tconst assetsPath = this.engine.setting('AssetsPath') as { root: string; gallery: string };\n\t\tconst directory = `${assetsPath.root}/${assetsPath.gallery}/`;\n\t\tthis.instances().find('[data-ui=\"image-viewer\"] figure').style('background-image', `url('${directory}${this.engine.asset('gallery', image)}')`);\n\t\tthis.instances().find('[data-ui=\"image-viewer\"]').addClass('modal--active');\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.state = {\n\t\t\topen: false,\n\t\t\tunlocked: []\n\t\t};\n\t}\n\n\toverride willMount(): Promise {\n\t\tsuper.willMount();\n\t\treturn this.engine.Storage.get('gallery').then((data: unknown) => {\n\t\t\tconst galleryData = data as { unlocked: string[] } | undefined;\n\t\t\tthis.setState({\n\t\t\t\tunlocked: galleryData?.unlocked ?? []\n\t\t\t});\n\t\t\treturn Promise.resolve();\n\t\t}).catch(() => {\n\t\t\treturn Promise.resolve();\n\t\t});\n\t}\n\n\toverride onStateUpdate(property: string, oldValue: unknown, newValue: unknown): Promise {\n\t\tsuper.onStateUpdate(property, oldValue, newValue);\n\n\t\tthis.engine.Storage.set('gallery', {\n\t\t\tunlocked: this.state.unlocked\n\t\t});\n\n\t\t// Update the gallery when an image gets unlocked or locked\n\t\tthis.forceRender();\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\tconst galleryAssets = this.engine.assets('gallery') ?? {};\n\t\tconst assetsPath = this.engine.setting('AssetsPath') as { root: string; gallery: string };\n\t\tconst images = Object.keys(galleryAssets).map((image) => {\n\t\t\tconst directory = `${assetsPath.root}/${assetsPath.gallery}/`;\n\n\t\t\t// Check if the image has been unlocked or not, if it hasn't then a\n\t\t\t// lock will be shown instead of the image.\n\t\t\tif (this.state.unlocked.includes(image)) {\n\t\t\t\treturn `
`;\n\t\t\t} else {\n\t\t\t\treturn '
';\n\t\t\t}\n\t\t}).join('');\n\n\t\treturn `\n\t\t\t\n\t\t\t\n\t\t\t

Gallery

\n\t\t\t
\n\t\t\t\t${images}\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default GalleryScreen;\n\n", + "import ScreenComponent from '../../lib/ScreenComponent';\n\nclass GameScreen extends ScreenComponent {\n\tstatic override async shouldProceed() {\n\t\tif (this.engine.element().find('[data-screen=\"game\"]').isVisible()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthrow new Error('Game screen is not visible.');\n\t}\n\n\tstatic override async bind() {\n\t\tconst engine = this.engine;\n\n\t\tengine.on('click', '[data-screen=\"game\"] *:not([data-choice]):not([data-action]):not([data-delete])', async function (this: HTMLElement) {\n\t\t\t// Don't proceed if the click target is inside an element with data-action or data-delete\n // TODO: Should this have the choice one too?\n\t\t\tif (this.closest('[data-action]') || this.closest('[data-delete]')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tengine.debug.debug('Next Statement Listener');\n\n\t\t\ttry {\n\t\t\t\tawait engine.proceed({ userInitiated: true, skip: false, autoPlay: false });\n\t\t\t} catch (e: unknown) {\n\t\t\t\tengine.debug.log(`Click Proceed Prevented\\nReason: ${e}`);\n\t\t\t}\n\t\t});\n\n\t\tif (engine.setting('AllowRollback') === true) {\n\t\t\tengine.registerListener('back', {\n\t\t\t\tkeys: 'left',\n\t\t\t\tcallback: async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait engine.rollback();\n\t\t\t\t\t} catch (e: unknown) {\n\t\t\t\t\t\tengine.debug.log(`Rollback Prevented\\nReason: ${e}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tasync didMount (): Promise {\n\t\tthis.engine.on('didUpdateState', (event: Event) => {\n const { detail: { newState: { label } } } = event as CustomEvent<{ newState: { label?: string } }>;\n\n\t\t\tif (label) {\n\t\t\t\tthis.element().data('label', label);\n\t\t\t}\n\t\t});\n\t}\n\n\trender (): string {\n\t\treturn `\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nGameScreen.tag = 'game-screen';\n\nexport default GameScreen;\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport ScreenComponent, { ScreenState } from '../../lib/ScreenComponent';\n\nclass HelpScreen extends ScreenComponent {\n\tstatic override tag = 'help-screen';\n\n\toverride render(): string {\n\t\treturn `\n\t\t\t\n\t\t\t

Help

\n\t\t\t
\n\t\t\t\t

To advance through the game, left-click or tap anywhere on the game screen or press the space key

\n
\n
\n

Quick Menu

\n
\n
\n \n
\n
\n Go back\n
\n
\n
\n
\n \n
\n
\n Hide the text box\n
\n
\n
\n
\n \n
\n
\n Show the dialog log\n
\n
\n
\n
\n \n
\n
\n Enable auto play\n
\n
\n
\n
\n \n
\n
\n Enter skip mode\n
\n
\n
\n
\n \n
\n
\n Open the Save Screen\n
\n
\n
\n
\n \n
\n
\n Open the Load Screen\n
\n
\n
\n
\n \n
\n
\n Open the Settings Screen\n
\n
\n
\n
\n \n
\n
\n Quit Game\n
\n
\n
\n
\n
\n

Keyboard Shortcuts

\n
\n
\n
\n \n
\n
\n Go Back\n
\n
\n
\n
\n H\n
\n
\n Hide the text box\n
\n
\n
\n
\n A\n
\n
\n Enable auto play\n
\n
\n
\n
\n S\n
\n
\n Enter skip mode\n
\n
\n
\n
\n ⇧ S\n
\n
\n Open the Save Screen\n
\n
\n
\n
\n ⇧ L\n
\n
\n Open the Load Screen\n
\n
\n
\n
\n ESC\n
\n
\n Open the Settings Screen.\n
\n
\n
\n
\n ⇧ Q\n
\n
\n Quit Game\n
\n
\n
\n
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default HelpScreen;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport { $_ } from '@aegis-framework/artemis';\nimport { FancyError } from '../../lib/FancyError';\nimport ScreenComponent, { ScreenState } from '../../lib/ScreenComponent';\n\n/**\n * Props for LanguageSelectionScreen component\n */\nexport interface LanguageSelectionScreenProps extends Properties {\n\tlanguages: string[];\n\ttimeout: number;\n}\n\n/**\n * State for LanguageSelectionScreen component\n */\nexport interface LanguageSelectionScreenState extends ScreenState {\n\tindex: number;\n}\n\nclass LanguageSelectionScreen extends ScreenComponent {\n\tstatic override tag = 'language-selection-screen';\n\n\tprivate timer: ReturnType | null = null;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tlanguages: Object.keys(this.engine._script),\n\t\t\ttimeout: 2000,\n\t\t};\n\n\t\tthis.state = {\n\t\t\topen: false,\n\t\t\tindex: 0,\n\t\t};\n\t}\n\n\toverride onStateUpdate(property: string, oldValue: unknown, newValue: unknown): Promise {\n\t\tsuper.onStateUpdate(property, oldValue, newValue);\n\n\t\tif (property === 'index') {\n\t\t\tconst { languages } = this.props;\n\t\t\tconst translation = this.engine.translation(languages[newValue as number]);\n\n\t\t\tif (typeof translation === 'object' && translation !== null) {\n\t\t\t\tconst translationObj = translation as Record;\n\t\t\t\tconst string = translationObj.SelectYourLanguage;\n\t\t\t\tif (typeof string === 'string') {\n\t\t\t\t\tthis.content('title').text(string);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\t// onPropsUpdate is inherited from parent class\n\n\toverride didMount(): Promise {\n\t\t// Prevent doing any extra work when the game is not multilanguage\n\t\tif (this.engine.setting('MultiLanguage') === true && this.engine.setting('LanguageSelectionScreen') === true) {\n\t\t\tconst { languages, timeout } = this.props;\n\t\t\tthis.timer = setTimeout(() => {\n\t\t\t\tif (this.element().isVisible()) {\n\t\t\t\t\tconst { index } = this.state;\n\t\t\t\t\tif (index >= (languages.length - 1)) {\n\t\t\t\t\t\tthis.setState({ index: 0 });\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setState({ index: index + 1 });\n\t\t\t\t\t}\n\t\t\t\t\tthis.timer = setTimeout(() => this.didMount(), parseInt(String(timeout)));\n\t\t\t\t} else {\n\t\t\t\t\tif (this.timer) {\n\t\t\t\t\t\tclearTimeout(this.timer);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, parseInt(String(timeout)));\n\t\t}\n\n\t\tthis.element().on('click', '[data-language]', (event: Event) => {\n\t\t\tconst language = $_(event.target as HTMLElement).closest('[data-language]').data('language') as string | undefined;\n\t\t\tif (language) {\n\t\t\t\tthis.engine.preference('Language', language);\n\t\t\t\tthis.engine.localize();\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willUnmount(): Promise {\n\t\t// Clean up timer to prevent memory leaks\n\t\tif (this.timer) {\n\t\t\tclearTimeout(this.timer);\n\t\t\tthis.timer = null;\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\tlet buttons: string[] = [];\n\t\t// Prevent doing any extra work when the game is not multilanguage\n\t\tif (this.engine.setting('MultiLanguage') === true && this.engine.setting('LanguageSelectionScreen') === true) {\n\t\t\tconst { languages } = this.props;\n\t\t\tbuttons = languages.map((language) => {\n\t\t\t\tconst metadata = this.engine._languageMetadata[language];\n\n\t\t\t\tif (typeof metadata === 'object') {\n\t\t\t\t\tconst { icon } = metadata;\n\t\t\t\t\treturn `\n\t\t\t\t\t\t\n\t\t\t\t\t`;\n\t\t\t\t} else {\n\t\t\t\t\tFancyError.show('component:language_selection_screen:metadata_not_found', {\n\t\t\t\t\t\tlanguage: language,\n\t\t\t\t\t\tavailableLanguages: Object.keys(this.engine._script)\n\t\t\t\t\t});\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t\t}\n\n\t\treturn `\n\t\t\t
\n\t\t\t\t

${this.engine.string('SelectYourLanguage')}

\n\t\t\t\t
\n\t\t\t\t\t${buttons.join('')}\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default LanguageSelectionScreen;\n\n", + "import ScreenComponent from '../../lib/ScreenComponent';\n\nclass LoadScreen extends ScreenComponent {\n static override tag = 'load-screen';\n\n\toverride render (): string {\n\n\t\tconst engine = this.engine;\n\n\t\tconst autoSaveInterval = engine.setting('AutoSave');\n\n\t\tconst autoSaveEnabled = typeof autoSaveInterval === 'number' && autoSaveInterval > 0 ;\n\n\t\treturn `\n\t\t\t\n\t\t\t

Load

\n\t\t\t
\n\t\t\t\t

Saved Games

\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t${autoSaveEnabled ? `
\n\t\t\t\t

Auto Saved Games

\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
` : ''}\n\t\t`;\n\t}\n}\n\nexport default LoadScreen;\n", + "import ScreenComponent, { ScreenState } from '../../lib/ScreenComponent';\nimport type { Properties } from '@aegis-framework/pandora';\n\ninterface LoadingScreenProps extends Properties {\n\tmax: number;\n}\n\ninterface LoadingScreenState extends ScreenState {\n\tprogress: number;\n}\n\nclass LoadingScreen extends ScreenComponent {\n static override tag = 'loading-screen';\n\tconstructor () {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tmax: 0\n\t\t};\n\n\t\tthis.state = {\n\t\t\topen: false,\n\t\t\tprogress: 0\n\t\t};\n\t}\n\n\toverride async didMount() {\n const engine = this.engine;\n\n\t\tengine.on('willPreloadAssets', () => this.setState({ open: true }));\n\t\tengine.on('assetQueued', () => this.setProps({ max: this.props.max + 1 }));\n engine.on('didPreloadAssets', () => this.setState({ open: false }));\n\t\tengine.on('assetLoaded', () => this.setState({ progress: this.state.progress + 1 }));\n\t}\n\n\toverride async onStateUpdate (property: string, oldValue: unknown, newValue: unknown) {\n\t\tsuper.onStateUpdate(property, oldValue, newValue);\n\n\t\tif (property === 'progress') {\n\t\t\tthis.content('progress').value(newValue as string);\n\t\t}\n\t}\n\n\toverride async onPropsUpdate (property: string, _oldValue: unknown, newValue: unknown) {\n\t\tif (property === 'max') {\n\t\t\tthis.content('progress').attribute('max', newValue as number);\n\t\t}\n\t}\n\n\toverride render (): string {\n\t\treturn `\n\t\t\t
\n\t\t\t\t

Loading

\n\t\t\t\t\n\t\t\t\tWait while the assets are loaded.\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default LoadingScreen;\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from './Component';\nimport type { MenuButton } from './types';\n\n/**\n * MenuComponent is a base class for menu-type components.\n * Menus manage a collection of buttons that can be dynamically added, removed, or reordered.\n *\n * @class MenuComponent\n * @template P - The type of the component's props (must extend Properties)\n * @template S - The type of the component's state (must extend Properties)\n */\nclass MenuComponent<\n\tP extends Properties = Properties,\n\tS extends Properties = Properties\n> extends Component {\n\tstatic override tag: string = 'menu-component';\n\t/**\n\t * Add a button to the menu\n\t */\n\tstatic addButton (button: MenuButton): void {\n\t\tthis.engine.configuration(this.tag, {\n\t\t\tbuttons: [...this.buttons(), button]\n\t\t});\n\n\t\tthis.onConfigurationUpdate();\n\t}\n\n\t/**\n\t * Add a button after another button\n\t */\n\tstatic addButtonAfter (after: string, button: MenuButton): void {\n\t\tconst index = this.buttons().findIndex((b: MenuButton) => b.string === after);\n\t\tconst buttons = [...this.buttons()];\n\n\t\tif (index > -1) {\n\t\t\tbuttons.splice(index + 1, 0, button);\n\n\t\t\tthis.engine.configuration(this.tag, {\n\t\t\t\tbuttons\n\t\t\t});\n\n\t\t\tthis.onConfigurationUpdate();\n\t\t}\n\t}\n\n\t/**\n\t * Add a button before another button\n\t */\n\tstatic addButtonBefore (before: string, button: MenuButton): void {\n\t\tconst index = this.buttons().findIndex((b: MenuButton) => b.string === before);\n\t\tconst buttons = [...this.buttons()];\n\n\t\tif (index > -1) {\n\t\t\tbuttons.splice(index, 0, button);\n\n\t\t\tthis.engine.configuration(this.tag, {\n\t\t\t\tbuttons\n\t\t\t});\n\n\t\t\tthis.onConfigurationUpdate();\n\t\t}\n\t}\n\n\t/**\n\t * Remove a button by its string identifier\n\t */\n\tstatic removeButton (string: string): void {\n\t\tthis.engine.configuration(this.tag, {\n\t\t\tbuttons: this.buttons().filter((button: MenuButton) => button.string !== string)\n\t\t});\n\n\t\tthis.onConfigurationUpdate();\n\t}\n\n\t/**\n\t * Get all buttons\n\t */\n\tstatic buttons (): MenuButton[] {\n\t\tconst config = this.engine.configuration(this.tag) as { buttons: MenuButton[] };\n\t\treturn config.buttons;\n\t}\n\n\t/**\n\t * Find a button by its string identifier\n\t */\n\tstatic button (string: string): MenuButton | undefined {\n\t\treturn this.buttons().find((button: MenuButton) => button.string === string);\n\t}\n\n\t/**\n\t * Called when configuration is updated - re-renders all instances\n\t */\n\tstatic async onConfigurationUpdate (): Promise {\n\t\tconst elements = document.querySelectorAll(this.tag);\n\n\t\tfor (const element of elements) {\n\t\t\tif (element instanceof Component) {\n\t\t\t\telement.innerHTML = element.render() as string;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Render the menu buttons\n\t */\n\trender (): string {\n\t\tconst staticContext = this.constructor as typeof MenuComponent;\n\t\treturn staticContext.buttons().map((button: MenuButton) => {\n\t\t\t// A user could create a custom element to display all or specific\n\t\t\t// buttons. If no element was set on the button's definition, we'll\n\t\t\t// assume it to be a simple button.\n\t\t\tif (typeof button.element !== 'string') {\n\t\t\t\tbutton.element = 'button';\n\t\t\t}\n\n\t\t\tconst element = document.createElement(button.element);\n\n\t\t\tif (typeof button.data === 'object') {\n\t\t\t\tfor (const key of Object.keys(button.data)) {\n\t\t\t\t\telement.dataset[key] = button.data[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.setAttribute('icon', button.icon);\n\t\t\telement.setAttribute('string', button.string);\n\n\t\t\treturn element.outerHTML;\n\t\t}).join(' ');\n\t}\n}\n\nexport { MenuComponent };\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport { MenuComponent } from '../../lib/MenuComponent';\nimport type { MenuButton } from '../../lib/types';\n\nclass MainMenu extends MenuComponent {\n\tstatic override tag = 'main-menu';\n\n\toverride render(): string {\n\t\tconst staticContext = this.constructor as typeof MainMenu;\n\t\treturn staticContext.buttons().map((button: MenuButton) => {\n\t\t\t// A user could create a custom element to display all or specific\n\t\t\t// buttons. If no element was set on the button's definition, we'll\n\t\t\t// assume it to be a simple button.\n\t\t\tif (typeof button.element !== 'string') {\n\t\t\t\tbutton.element = 'button';\n\t\t\t}\n\n\t\t\tconst element = document.createElement(button.element);\n\n\t\t\tif (typeof button.data === 'object') {\n\t\t\t\tfor (const key of Object.keys(button.data)) {\n\t\t\t\t\telement.dataset[key] = button.data[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.setAttribute('icon', button.icon);\n\t\t\telement.setAttribute('string', button.string);\n\n\t\t\telement.setAttribute('tabindex', '0');\n\n\t\t\telement.innerHTML = `\n\t\t\t\t\n\t\t\t\t${this.engine.string(button.string)}\n\t\t\t`;\n\n\t\t\treturn element.outerHTML;\n\t\t}).join(' ');\n\t}\n}\n\nexport default MainMenu;\n\n", + "import { ScreenComponent } from '../../lib/ScreenComponent';\n\nclass MainScreen extends ScreenComponent {\n\n\toverride onStateUpdate (property: string, oldValue: unknown, newValue: unknown): Promise {\n\t\tif (property === 'open') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.engine.playAmbient();\n\t\t\t} else {\n\t\t\t\tif ((this.engine.global('playing') as boolean) === true) {\n\t\t\t\t\tthis.engine.stopAmbient();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn super.onStateUpdate(property, oldValue, newValue);\n\t}\n}\n\nMainScreen.tag = 'main-screen';\n\nexport default MainScreen;\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\n\n/**\n * Props for MessageModal component\n */\nexport interface MessageModalProps extends Properties {\n\ttitle: string | null;\n\tsubtitle: string | null;\n\tbody: string;\n\tactionString: string;\n}\n\nclass MessageModal extends Component {\n\tstatic override tag = 'message-modal';\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\ttitle: null,\n\t\t\tsubtitle: null,\n\t\t\tbody: '',\n\t\t\tactionString: 'Close'\n\t\t};\n\t}\n\n\toverride shouldProceed(): Promise {\n\t\treturn Promise.reject('Message Modal awaiting for user to close the modal window.');\n\t}\n\n\toverride willProceed(): Promise {\n\t\tthis.remove();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willRollback(): Promise {\n\t\t// If a choice is visible right now, we can simply remove it and let the\n\t\t// game revert to the previous statement.\n\t\tthis.remove();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onReset(): Promise {\n\t\tthis.remove();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willMount(): Promise {\n\t\tthis.classList.add('modal', 'modal--active');\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\tconst { title, subtitle, body } = this.props;\n\t\treturn `\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t${typeof title === 'string' && title ? `

${title}

` : ''}\n\t\t\t\t\t${typeof subtitle === 'string' && subtitle ? `

${subtitle}

` : ''}\n\t\t\t\t\t${typeof body === 'string' && body ? `

${body}

` : ''}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default MessageModal;\n\n", + "import { MenuComponent } from './../../lib/MenuComponent';\n\nclass QuickMenu extends MenuComponent {\n static override tag = 'quick-menu';\n\n\tstatic async init () {\n const skipSpeed = this.engine.setting('Skip') as number;\n const allowRollback = this.engine.setting('AllowRollback') as boolean;\n\n\t\t// Remove the Skip text button if it has been disabled on the game settings\n\t\tif (skipSpeed <= 0) {\n\t\t\tthis.removeButton('Skip');\n\t\t}\n\n // Remove the Back button if it has been disabled on the game settings\n\t\tif (!allowRollback) {\n\t\t\tthis.removeButton('Back');\n\t\t}\n\t}\n\n\trender () {\n\t\tconst buttons = (this.constructor as typeof QuickMenu).buttons ();\n\n\t\treturn buttons.map ((button) => {\n\t\t\t// A user could create a custom element to display all or specific\n\t\t\t// buttons. If no element was set on the button's definition, we'll\n\t\t\t// assume it to be a simple button.\n\t\t\tif (typeof button.element !== 'string') {\n\t\t\t\tbutton.element = 'button';\n\t\t\t}\n\n\t\t\tconst element = document.createElement (button.element);\n\n\t\t\tif (typeof button.data === 'object') {\n\t\t\t\tfor (const key of Object.keys (button.data)) {\n\t\t\t\t\telement.dataset[key] = button.data[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.setAttribute ('icon', button.icon);\n\t\t\telement.setAttribute ('string', button.string);\n\t\t\telement.setAttribute ('tabindex', '0');\n\n\t\t\telement.innerHTML = `\n\t\t\t\t\n\t\t\t\t${this.engine.string (button.string)}\n\t\t\t`;\n\n\t\t\treturn element.outerHTML;\n\t\t}).join (' ');\n\t}\n}\n\nexport default QuickMenu;\n", + "import { ScreenComponent } from '../../lib/ScreenComponent';\nimport { DateTime } from 'luxon';\n\nclass SaveScreen extends ScreenComponent {\n static override tag = 'save-screen';\n\n\tstatic override async bind (_selector?: string): Promise {\n const engine = this.engine;\n\n engine.registerListener('save', {\n callback: () => {\n const instances = this.instances();\n const value = instances.find('[data-content=\"slot-name\"]').value();\n const slotName = (typeof value === 'string' ? value : '').trim();\n\n if (slotName !== '') {\n engine.saveTo('SaveLabel', null, slotName);\n }\n }\n });\n\t}\n\n\toverride async onStateUpdate (property: string, oldValue: unknown, newValue: unknown): Promise {\n\t\tsuper.onStateUpdate(property, oldValue, newValue);\n\n\t\tif (property === 'open' && newValue === true) {\n const currentTime = DateTime.now().toLocaleString(DateTime.DATETIME_MED_WITH_SECONDS);\n\t\t\tthis.content('slot-name').value(currentTime);\n\t\t}\n\t}\n\n\trender (): string {\n\t\tconst engine = this.engine;\n const saveLabel = engine.setting('SaveLabel');\n\n\t\treturn `\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default SaveScreen;\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\nimport { Text } from '@aegis-framework/artemis';\nimport { DateTime } from 'luxon';\n\ninterface SaveSlotData {\n\tname?: string;\n\tdate: string;\n\timage?: string;\n\tscreenshot?: string;\n\tEngine?: {\n\t\tScene: string;\n\t};\n\tName?: string;\n\tDate?: string;\n\tgame?: {\n\t\tstate: {\n\t\t\tbackground?: string;\n\t\t\tscene?: string;\n\t\t};\n\t};\n}\n\ninterface SaveSlotProps extends Properties {\n\tslot?: string;\n\tname: string;\n\tdate: string;\n\tscreenshot: string;\n\timage: string;\n}\n\nclass SaveSlot extends Component {\n\tstatic override tag = 'save-slot';\n\n\tdata: SaveSlotData | null = null;\n\n\tprivate _screenshotObjectUrl: string | null = null;\n\n\tstatic override bind(): Promise {\n\t\tconst self = this;\n\n\t\tthis.engine.registerListener('delete-slot', {\n\t\t\tcallback: async () => {\n\t\t\t\tconst target = this.engine.global('delete_slot') as string | null;\n\n\t\t\t\tif (!target) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Read save data to get screenshot key before deleting\n\t\t\t\ttry {\n\t\t\t\t\tconst rawData = await this.engine.Storage.get(target);\n\t\t\t\t\tconst data = rawData as SaveSlotData;\n\n\t\t\t\t\tif (data?.screenshot) {\n\t\t\t\t\t\tawait this.engine.onDeleteScreenshot(data.screenshot);\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Save data may be corrupt, proceed with deletion\n\t\t\t\t}\n\n\t\t\t\t// Delete the slot from the storage\n\t\t\t\tthis.engine.Storage.remove(target);\n\n\t\t\t\t// Reset the temporal delete slot variable\n\t\t\t\tthis.engine.global('delete_slot', null);\n\t\t\t\tthis.engine.dismissAlert('slot-deletion');\n\t\t\t}\n\t\t});\n\n\t\tconst engine = this.engine;\n\n\t\tthis.engine.on('click', '[data-component=\"slot-container\"] [data-delete]', function(this: HTMLElement, event: Event) {\n\t\t\tevent.stopImmediatePropagation();\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n engine.debug.debug('Registered Click on Slot Delete Button');\n\n\t\t\tconst deleteSlot = (this as HTMLElement).dataset.delete;\n\n\t\t\tif (deleteSlot) {\n\t\t\t\tengine.global('delete_slot', deleteSlot);\n\n\t\t\t\tengine.Storage.get(deleteSlot).then((data: unknown) => {\n\t\t\t\t\tconst saveData = data as SaveSlotData;\n\n\t\t\t\t\tengine.alert('slot-deletion', {\n\t\t\t\t\t\tmessage: 'SlotDeletion',\n\t\t\t\t\t\tcontext: typeof saveData.name !== 'undefined' ? saveData.name : saveData.date,\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Delete',\n\t\t\t\t\t\t\t\tlistener: 'delete-slot'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Cancel',\n\t\t\t\t\t\t\t\tlistener: 'dismiss-alert'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.props = {\n\t\t\tslot: undefined,\n\t\t\tname: '',\n\t\t\tdate: '',\n\t\t\tscreenshot: '',\n\t\t\timage: ''\n\t\t};\n\n\t\tthis.data = null;\n\t}\n\n\toverride async willMount(): Promise {\n\t\tconst slotKey = this.props.slot;\n\n\t\tif (!slotKey) {\n\t\t\tthis.engine.debug.error('SaveSlot: No slot key provided');\n\t\t\treturn;\n\t\t}\n\n\t\tconst rawData = await this.engine.Storage.get(slotKey);\n\t\tconst data = rawData as SaveSlotData;\n\t\tthis.data = data;\n\n\t\tif (typeof data.Engine !== 'undefined') {\n\t\t\tdata.name = data.Name;\n\t\t\tdata.date = data.Date ?? '';\n\t\t\ttry {\n\t\t\t\tif (data.date.indexOf('/') > -1) {\n\t\t\t\t\tconst [date, time] = data.date.replace(',', '').split(' ');\n\t\t\t\t\tconst [month, day, year] = date.split('/');\n\n\t\t\t\t\tif (isNaN(Date.parse(date))) {\n\t\t\t\t\t\tdata.date = `${year}-${day}-${month} ${time}`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdata.date = `${year}-${month}-${day} ${time}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tthis.engine.debug.debug('Failed to convert date', e);\n\t\t\t}\n\n\t\t\tdata.image = data.Engine.Scene;\n\t\t}\n\n\t\tlet screenshotUrl = '';\n\n\t\tif (data.screenshot) {\n\t\t\ttry {\n\t\t\t\tif (this._screenshotObjectUrl) {\n\t\t\t\t\tURL.revokeObjectURL(this._screenshotObjectUrl);\n\t\t\t\t\tthis._screenshotObjectUrl = null;\n\t\t\t\t}\n\n\t\t\t\tscreenshotUrl = await this.engine.onLoadScreenshot(data.screenshot);\n\n\t\t\t\tif (screenshotUrl.startsWith('blob:')) {\n\t\t\t\t\tthis._screenshotObjectUrl = screenshotUrl;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tthis.engine.debug.warn('Failed to load screenshot for slot', slotKey, e);\n\t\t\t}\n\t\t}\n\n\t\tthis.setProps({\n\t\t\tname: data.name ?? '',\n\t\t\tdate: data.date,\n\t\t\timage: data.image ?? '',\n\t\t\tscreenshot: screenshotUrl\n\t\t});\n\t}\n\n\toverride async willUnmount(): Promise {\n\t\tif (this._screenshotObjectUrl) {\n\t\t\tURL.revokeObjectURL(this._screenshotObjectUrl);\n\t\t\tthis._screenshotObjectUrl = null;\n\t\t}\n\t}\n\n\toverride render(): string {\n\t\tlet background = '';\n\n\t\tif (this.props.screenshot) {\n\t\t\tbackground = `url(${this.props.screenshot})`;\n\t\t} else {\n\t\t\tconst assetsPath = this.engine.setting('AssetsPath') as { root: string; scenes: string };\n\t\t\tconst hasImage = this.props.image && this.engine.asset('scenes', this.props.image);\n\n\t\t\tif (hasImage) {\n\t\t\t\tbackground = `url(${assetsPath.root}/${assetsPath.scenes}/${this.engine.asset('scenes', this.props.image)})`;\n\t\t\t} else if (this.data && 'game' in this.data && this.data.game) {\n\t\t\t\tif (this.data.game.state.background) {\n\t\t\t\t\tbackground = this.data.game.state.background;\n\n\t\t\t\t\tif (background.indexOf(' with ') > -1) {\n\t\t\t\t\t\tbackground = Text.prefix(' with ', background);\n\t\t\t\t\t}\n\n\t\t\t\t\tbackground = Text.suffix('show background', background);\n\t\t\t\t} else if (this.data.game.state.scene) {\n\t\t\t\t\tbackground = this.data.game.state.scene;\n\n\t\t\t\t\tif (background.indexOf(' with ') > -1) {\n\t\t\t\t\t\tbackground = Text.prefix(' with ', background);\n\t\t\t\t\t}\n\n\t\t\t\t\tbackground = Text.suffix('show scene', background);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst useBackgroundImage = !!this.props.screenshot || (this.props.image && this.engine.asset('scenes', this.props.image));\n\n\t\treturn `\n\t\t\t\n\t\t\t${this.props.name}\n\t\t\t
\n\t\t\t
${DateTime.fromISO(this.props.date).toLocaleString(DateTime.DATETIME_MED_WITH_SECONDS)}
\n\t\t`;\n\t}\n}\n\nexport default SaveSlot;", + "import type { Properties } from '@aegis-framework/pandora';\nimport { Platform, Text } from '@aegis-framework/artemis';\nimport ScreenComponent, { ScreenState } from '../../lib/ScreenComponent';\nimport { type DesktopBridge, getDesktopBridge } from '../../lib/DesktopBridge';\n\n// Extend Window interface for desktop app support\ndeclare global {\n\tinterface Window {\n\t\telectron?: {\n\t\t\tsend: (channel: string, data: unknown) => void;\n\t\t\ton: (channel: string, callback: (args: unknown) => void) => void;\n\t\t};\n\t\telectrobun?: {\n\t\t\tsend: (channel: string, data: unknown) => void;\n\t\t\ton: (channel: string, callback: (args: unknown) => void) => void;\n\t\t};\n\t}\n}\n\nclass SettingsScreen extends ScreenComponent {\n\tstatic override tag = 'settings-screen';\n\n\tstatic override bind(): Promise {\n\t\t// Fix for select labels\n\t\tconst self = this;\n\t\tthis.engine.on('click', '[data-select]', function(this: HTMLElement) {\n\t\t\tconst selector = `[data-action='${this.dataset.select}']`;\n\t\t\tconst target = self.engine.element().find(selector).get(0);\n\n\t\t\tif (target) {\n\t\t\t\ttarget.focus();\n\t\t\t\tconst event = new MouseEvent('mousedown', {\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcancelable: true,\n\t\t\t\t\tview: window\n\t\t\t\t});\n\t\t\t\ttarget.dispatchEvent(event);\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\tdesktop(bridge: DesktopBridge): void {\n\t\tthis.element().find('[data-action=\"set-resolution\"]').value(this.engine.preference('Resolution') as string);\n\n\t\twindow.onbeforeunload = (event: BeforeUnloadEvent) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.engine.alert('quit-warning', {\n\t\t\t\tmessage: 'Confirm',\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Quit',\n\t\t\t\t\t\tlistener: 'quit'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Cancel',\n\t\t\t\t\t\tlistener: 'dismiss-alert'\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\t\t\treturn false;\n\t\t};\n\n\t\tbridge.send('window-info-request', {\n\t\t\ttitle: this.engine.setting('Name'),\n\t\t\tresizable: this.engine.setting('ForceAspectRatio') !== 'Global'\n\t\t});\n\n\t\tbridge.on('window-info-reply', (args: unknown) => {\n\t\t\tconst { resizable, minWidth, maxWidth, minHeight, maxHeight } = args as {\n\t\t\t\tresizable: boolean;\n\t\t\t\tminWidth: number;\n\t\t\t\tmaxWidth: number;\n\t\t\t\tminHeight: number;\n\t\t\t\tmaxHeight: number;\n\t\t\t};\n\n\t\t\tif (!resizable) {\n\t\t\t\tconst aspectRatio = (this.engine.setting('AspectRatio') as string).split(':');\n\t\t\t\tconst aspectRatioWidth = parseInt(aspectRatio[0]);\n\t\t\t\tconst aspectRatioHeight = parseInt(aspectRatio[1]);\n\n\t\t\t\tfor (let i = 0; i < 488; i += 8) {\n\t\t\t\t\tconst calculatedWidth = aspectRatioWidth * i;\n\t\t\t\t\tconst calculatedHeight = aspectRatioHeight * i;\n\n\t\t\t\t\tif (calculatedWidth >= minWidth && calculatedHeight >= minHeight && calculatedWidth <= maxWidth && calculatedHeight <= maxHeight) {\n\t\t\t\t\t\tthis.element().find('[data-action=\"set-resolution\"]').append(``);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.element().find('[data-action=\"set-resolution\"]').append(``);\n\n\t\t\t\tthis.changeWindowResolution(bridge, this.engine.preference('Resolution') as string);\n\t\t\t\tthis.element().find('[data-action=\"set-resolution\"]').change((event: Event) => {\n\t\t\t\t\tconst size = (event.target as HTMLSelectElement).value;\n\t\t\t\t\tthis.changeWindowResolution(bridge, size);\n\t\t\t\t});\n\n\t\t\t\tthis.element().find('[data-action=\"set-resolution\"]').value(this.engine.preference('Resolution') as string);\n\n\t\t\t} else {\n\t\t\t\tthis.element().find('[data-settings=\"resolution\"]').hide();\n\t\t\t}\n\t\t});\n\n\t\tbridge.on('resize-reply', (args: unknown) => {\n\t\t\tconst { width, height, fullscreen } = args as { width: number; height: number; fullscreen: boolean };\n\n\t\t\tif (fullscreen) {\n\t\t\t\tthis.engine.preference('Resolution', 'fullscreen');\n\t\t\t} else {\n\t\t\t\tthis.engine.preference('Resolution', `${width}x${height}`);\n\t\t\t}\n\t\t});\n\t}\n\n\tchangeWindowResolution(bridge: DesktopBridge, resolution: string): void {\n\t\tif (resolution) {\n\t\t\tif (resolution === 'fullscreen') {\n\t\t\t\tbridge.send('resize-request', {\n\t\t\t\t\tfullscreen: true\n\t\t\t\t});\n\t\t\t} else if (resolution.indexOf('x') > -1) {\n\t\t\t\tconst [width, height] = resolution.split('x');\n\t\t\t\tbridge.send('resize-request', {\n\t\t\t\t\twidth: parseInt(width),\n\t\t\t\t\theight: parseInt(height),\n\t\t\t\t\tfullscreen: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\toverride didMount(): Promise {\n\t\tthis.engine.on('didInit', () => {\n\t\t\tif (this.engine.setting('MultiLanguage') === true) {\n\t\t\t\tthis.content('wrapper').html(`\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t`);\n\t\t\t\tthis.content('language-selector').value(this.engine.preference('Language') as string);\n\n\t\t\t\t// Bind Language select so that every time a language is selected, the\n\t\t\t\t// ui and game get correctly localized.\n\t\t\t\tthis.content('language-selector').change(() => {\n\t\t\t\t\tthis.engine.preference('Language', this.content('language-selector').value() as string);\n\t\t\t\t\tthis.engine.localize();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.content('language-settings').remove();\n\t\t\t}\n\n\t\t\tfor (const mediaType of Object.keys(this.engine.mediaPlayers())) {\n\t\t\t\tconst volume = this.engine.preference('Volume') as Record;\n\t\t\t\tthis.content(`${mediaType}-audio-controller`).value(volume[Text.capitalize(mediaType)]);\n\t\t\t}\n\n\t\t\t// Set the desktop app quit handler.\n\t\t\tconst bridge = getDesktopBridge();\n\t\t\tif (Platform.desktopApp && bridge) {\n\t\t\t\tthis.desktop(bridge);\n\t\t\t} else {\n\t\t\t\tthis.element().find('[data-platform=\"desktop\"]').remove();\n\t\t\t}\n\n\t\t\tthis.element().find('[data-action=\"set-text-speed\"]').value((this.engine.preference('TextSpeed') as number));\n\t\t});\n\n\t\t// Disable audio settings in iOS since they are not supported\n\t\tif (Platform.mobile('iOS')) {\n\t\t\t// iOS handles the volume using the system volume, therefore there is no way to\n\t\t\t// handle each of the sound sources individually and as such, this is disabled.\n\t\t\tthis.content('audio-settings').html(`

${this.engine.string('iOSAudioWarning')}

`);\n\t\t}\n\n\t\tconst engine = this.engine;\n\t\tconst clamp = (num: number, min: number, max: number) => Math.min(Math.max(num, min), max);\n\t\tthis.content('auto-play-speed-controller').on('change mouseover', function(this: HTMLInputElement) {\n\t\t\tconst value = clamp(parseInt(this.value), 0, engine.setting('MaxAutoPlaySpeed') as number);\n\t\t\tengine.preference('AutoPlaySpeed', value);\n\t\t});\n\n\t\tconst autoPlayController = this.content('auto-play-speed-controller').get(0) as HTMLInputElement | undefined;\n\t\tif (autoPlayController) {\n\t\t\tthis.engine.setting('MaxAutoPlaySpeed', parseInt(autoPlayController.max));\n\t\t}\n\t\tthis.content('auto-play-speed-controller').value(this.engine.preference('AutoPlaySpeed') as number);\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\treturn `\n\t\t\t\n\t\t\t

Settings

\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t

Audio

\n\t\t\t\t\t\tMusic Volume:\n\t\t\t\t\t\t\n\t\t\t\t\t\tSound Volume:\n\t\t\t\t\t\t\n\t\t\t\t\t\tVoice Volume:\n\t\t\t\t\t\t\n\t\t\t\t\t\tVideo Volume:\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t

Text Speed

\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t

Auto Play Speed

\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t

Language

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t

Resolution

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default SettingsScreen;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport { $_, DOM } from '@aegis-framework/artemis';\nimport Component from '../../lib/Component';\n\nexport interface SlotContainerProps extends Properties {\n\ttype: 'load' | 'save';\n\tlabel?: string;\n}\n\nexport interface SlotContainerState extends Properties {\n\tslots: string[];\n}\n\nconst SCREENSHOT_KEY_PREFIX = '__screenshot';\n\nclass SlotContainer extends Component {\n\tstatic override tag = 'slot-container';\n\n\tstatic override bind(): Promise {\n\t\tthis.engine.registerListener('overwrite-slot', {\n\t\t\tcallback: (event: Event, element: DOM) => {\n\t\t\t\t// Find the modal wrapper first, then find the input within it\n\t\t\t\tconst wrapper = element.closest('[data-content=\"wrapper\"]');\n\t\t\t\tconst customName = wrapper.find('[data-content=\"context\"]').value()?.trim() ?? '';\n\n\t\t\t\tif (customName !== '') {\n\t\t\t\t\tthis.engine.saveTo('SaveLabel', this.engine.global('overwrite_slot') as number, customName);\n\n\t\t\t\t\tthis.engine.global('overwrite_slot', null);\n\t\t\t\t\tthis.engine.dismissAlert('slot-overwrite');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn Promise.resolve();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\ttype: undefined as unknown as 'load' | 'save',\n\t\t\tlabel: undefined\n\t\t};\n\n\t\tthis.state = {\n\t\t\tslots: []\n\t\t};\n\t}\n\n\toverride willMount(): Promise {\n\t\tconst fullLabel = `${this.props.label}_`;\n\n\t\treturn (this.engine.Storage.each((key: string, value: unknown) => {\n\t\t\tif (key.indexOf(fullLabel) === 0 && key.indexOf(SCREENSHOT_KEY_PREFIX) === -1) {\n\t\t\t\t// If any of the save files has somehow become corrupted and is\n\t\t\t\t// no longer a valid object, we'll want to exclude it.\n\t\t\t\tif (typeof value === 'object' && value !== null) {\n\t\t\t\t\treturn Promise.resolve({\n\t\t\t\t\t\tvalid: true,\n\t\t\t\t\t\tid: parseInt(key.split(fullLabel)[1]),\n\t\t\t\t\t\tkey,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Promise.resolve({ valid: false });\n\t\t}) as Promise>).then((data) => {\n\t\t\t// Filter only those that are marked as valid and then, sort them\n\t\t\t// using their id as the pivot\n\t\t\tconst validSlots = data.filter(d => d.valid).sort((a, b) => {\n\t\t\t\tif ((a.id ?? 0) > (b.id ?? 0)) {\n\t\t\t\t\treturn 1;\n\t\t\t\t} else if ((a.id ?? 0) < (b.id ?? 0)) {\n\t\t\t\t\treturn -1;\n\t\t\t\t} else {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t}).map(({ key }) => {\n\t\t\t\treturn key!;\n\t\t\t});\n\n\t\t\tthis.setState({\n\t\t\t\tslots: validSlots\n\t\t\t});\n\t\t});\n\t}\n\n\toverride didMount(): Promise {\n\t\tconst engine = this.engine;\n\n\t\t// Read type from attribute directly because of props proxy priority issue\n\t\tconst type = this.getAttribute('type') || this.props.type;\n\n\t\tif (type === 'load') {\n\t\t\t// Load a saved game slot when it is pressed\n\t\t\tthis.element().on('click', '[data-component=\"save-slot\"]', function(this: HTMLElement, event: Event) {\n\t\t\t\tconst target = event.target as HTMLElement;\n\t\t\t\tconst isDeleteButton = target.closest('[data-delete]') !== null;\n\t\t\t\tif (!isDeleteButton) {\n\t\t\t\t\tconst slot = $_(this).attribute('slot');\n\t\t\t\t\tif (slot) {\n\t\t\t\t\t\tengine.loadFromSlot(slot).then(() => {\n\t\t\t\t\t\t\tengine.run(engine.label()[engine.state('step') as number]);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === 'save') {\n\t\t\tconst self = this;\n\t\t\t// Save to slot when a slot is pressed.\n\t\t\tthis.element().on('click', '[data-component=\"save-slot\"]', function(this: HTMLElement, event: Event) {\n\t\t\t\tconst target = event.target as HTMLElement;\n\t\t\t\tconst isDeleteButton = target.closest('[data-delete]') !== null;\n\n\t\t\t\tif (!isDeleteButton) {\n\t\t\t\t\tengine.debug.debug('Registered Click on Slot');\n\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tconst slot = $_(this).attribute('slot');\n\t\t\t\t\tconst slotIdStr = slot?.split('_').pop();\n\t\t\t\t\tconst slotId = slotIdStr ? parseInt(slotIdStr, 10) : null;\n\t\t\t\t\tengine.global('overwrite_slot', slotId);\n\t\t\t\t\tengine.Storage.get(self.props.label + '_' + engine.global('overwrite_slot')).then((data: unknown) => {\n\t\t\t\t\t\tconst saveData = data as { name?: string; date: string };\n\t\t\t\t\t\tengine.alert('slot-overwrite', {\n\t\t\t\t\t\t\tmessage: 'SlotOverwrite',\n\t\t\t\t\t\t\tcontext: typeof saveData.name !== 'undefined' ? saveData.name : saveData.date,\n\t\t\t\t\t\t\teditable: true,\n\t\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: 'Overwrite',\n\t\t\t\t\t\t\t\t\tlistener: 'overwrite-slot'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: 'Cancel',\n\t\t\t\t\t\t\t\t\tlistener: 'dismiss-alert'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.engine.Storage.onCreate((key: string, value: unknown) => {\n\t\t\t// We only want to react to those items that we believe are save files\n\t\t\t// by their key and making sure they're an actual object\n\t\t\tif (key.indexOf(`${this.props.label}_`) === 0 && key.indexOf(SCREENSHOT_KEY_PREFIX) === -1) {\n\t\t\t\tif (typeof value === 'object' && value !== null) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tslots: [...new Set([...this.state.slots, key])]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.engine.Storage.onUpdate((key: string, value: unknown) => {\n\t\t\t// We only want to react to those items that we believe are save files\n\t\t\t// by their key and making sure they're an actual object\n\t\t\t if (key.indexOf(`${this.props.label}_`) === 0 && key.indexOf(SCREENSHOT_KEY_PREFIX) === -1) {\n\t\t\t\tif (typeof value === 'object' && value !== null) {\n\t\t\t\t\tconst slot = this.element().find(`[slot=\"${key}\"]`).get(0);\n\n\t\t\t\t\tif (slot && 'setProps' in slot) {\n\t\t\t\t\t\t(slot as { setProps: (props: unknown) => void }).setProps(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.engine.Storage.onDelete((key: string) => {\n\t\t\tif (key.indexOf(`${this.props.label}_`) === 0) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tslots: this.state.slots.filter(s => s !== key)\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthis.engine.on('didLocalize', () => {\n\t\t\tthis.forceRender();\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onStateUpdate(property: string, _oldValue: unknown, _newValue: unknown): Promise {\n\t\tif (property === 'slots') {\n\t\t\tthis.forceRender();\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\tconst slots = this.state.slots.map(slot => ``).join('');\n\n\t\tif (slots !== '') {\n\t\t\treturn slots;\n\t\t}\n\n\t\treturn `

${this.engine.string('NoSavedGames')}

`;\n\t}\n}\n\nexport default SlotContainer;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\n\ninterface TextBoxProps extends Properties {\n\tmode: 'adv' | 'nvl';\n}\n\ninterface TextBoxState extends Properties {\n\thidden: boolean;\n}\n\nclass TextBox extends Component {\n\tconstructor () {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tmode: 'adv',\n\t\t};\n\n\t\tthis.state = {\n\t\t\thidden: false,\n\t\t};\n\t}\n\n\toverride onStateUpdate (property: string, _oldValue: unknown, newValue: unknown): Promise {\n\t\tif (property === 'hidden') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.element().hide();\n\t\t\t} else {\n\t\t\t\tthis.element().show('grid');\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\tshow (): void {\n\t\tif (this.state.hidden) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.element().show('grid');\n\t}\n\n\t/**\n\t * checkUnread - This function is used to add the unread class to the\n\t * text box if new contents (dialogs) were added to it causing it to overflow\n\t * but are not visible on screen right now so the player knows there is more\n\t * and scrolls the element.\n\t */\n\tcheckUnread (): void {\n\t\tconst text = this.content('text').get(0) as HTMLElement | undefined;\n\n\t\tif (!text) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ((text.clientHeight + text.scrollTop) < text.scrollHeight) {\n\t\t\tthis.classList.add('unread');\n\t\t} else {\n\t\t\tthis.classList.remove('unread');\n\t\t}\n\t}\n\n\toverride async render (): Promise {\n\t\t// In NVL mode, we don't want a static type-writer element\n\t\t// as dialogs will be appended dynamically\n\t\tconst typeWriterElement = this.props.mode === 'nvl' ? '' : '';\n\n\t\treturn `\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\"\"\n\t\t\t
\n\t\t\t
\n\t\t\t\t${typeWriterElement}\n\t\t\t
\n\t\t`;\n\t}\n}\n\nTextBox.tag = 'text-box';\n\nexport default TextBox;\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport { $_ } from '@aegis-framework/artemis';\nimport Component from '../../lib/Component';\n\n/**\n * Input option for select, radio, or checkbox types\n */\nexport interface InputOption {\n\tvalue: string | number;\n\tlabel: string;\n}\n\n/**\n * Input type for text-input component\n */\nexport type TextInputType =\n\t| 'text'\n\t| 'password'\n\t| 'email'\n\t| 'url'\n\t| 'number'\n\t| 'color'\n\t| 'file'\n\t| 'date'\n\t| 'datetime-local'\n\t| 'month'\n\t| 'time'\n\t| 'week'\n\t| 'tel'\n\t| 'range'\n\t| 'textarea'\n\t| 'select'\n\t| 'radio'\n\t| 'checkbox';\n\n/**\n * Props for TextInput component\n */\nexport interface TextInputProps extends Properties {\n\ttext: string;\n\ttype: TextInputType;\n\tdefault: string | number | null;\n\toptions: InputOption[];\n\twarning: string;\n\tactionString: string;\n\tonSubmit: (value: string | string[]) => void | Promise;\n\tvalidate: (value: string | string[]) => boolean | Promise;\n\tcallback: () => void;\n\tclasses: string;\n\tattributes: Record;\n}\n\n/**\n * State for TextInput component\n */\nexport interface TextInputState extends Properties {\n\tactive: boolean;\n}\n\nclass TextInput extends Component {\n\tstatic override tag = 'text-input';\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.state = {\n\t\t\tactive: true,\n\t\t};\n\n\t\tthis.props = {\n\t\t\ttext: '',\n\t\t\ttype: 'text',\n\t\t\tdefault: null,\n\t\t\toptions: [],\n\t\t\twarning: '',\n\t\t\tactionString: 'OK',\n\t\t\tonSubmit: () => {},\n\t\t\tvalidate: () => true,\n\t\t\tcallback: () => {},\n\t\t\tclasses: '',\n\t\t\tattributes: {},\n\t\t};\n\t}\n\n\toverride shouldProceed(): Promise {\n\t\treturn Promise.reject('Input is awaiting user input.');\n\t}\n\n\toverride willRollback(): Promise {\n\t\tthis.remove();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onStateUpdate(property: string, _oldValue: unknown, newValue: unknown): Promise {\n\t\tif (property === 'active') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.classList.toggle('modal--active');\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willMount(): Promise {\n\t\tthis.classList.add('modal', 'modal--active');\n\n\t\t// Check if a list of classes has been defined and if the list is not empty\n\t\tif (typeof this.props.classes === 'string' && this.props.classes !== '') {\n\t\t\tthis.props.classes.split(' ').forEach((className) => {\n\t\t\t\tif (className) {\n\t\t\t\t\tthis.classList.add(className);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\toverride didMount(): Promise {\n\t\tthis.addEventListener('submit', (event) => {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tlet inputValue: string | string[] = '';\n\t\t\t// Retrieve the value submitted\n\t\t\t\tif (this.props.type === 'radio') {\n\t\t\t\tconst checked = this.element().find('[data-content=\"field\"]:checked');\n\t\t\t\tif (checked.exists()) {\n\t\t\t\t\tinputValue = checked.value() as string;\n\t\t\t\t} else {\n\t\t\t\t\tinputValue = '';\n\t\t\t\t}\n\n\t\t\t} else if (this.props.type === 'checkbox') {\n\t\t\t\tinputValue = [];\n\t\t\t\tthis.element().find('[data-content=\"field\"]:checked').each((element) => {\n\t\t\t\t\t(inputValue as string[]).push($_(element).value() as string);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tinputValue = this.content('field').value() as string;\n\t\t\t}\n\n\t\t\t// Run the validation function asynchronously. If it returns false,\n\t\t\t// it means the input is invalid and we have to show the warning message.\n\t\t\tthis.engine.assertAsync(this.props.validate as (...args: unknown[]) => unknown, this.engine, [inputValue]).then(() => {\n\t\t\t\t// Once validation was done, we run the Save function where usually,\n\t\t\t\t// the input received will be saved on the storage or used for other\n\t\t\t\t// actions.\n\t\t\t\tthis.engine.assertAsync(this.props.onSubmit as (...args: unknown[]) => unknown, this.engine, [inputValue]).then(() => {\n\t\t\t\t\t// Nothing to do here\n\t\t\t\t}).catch(() => {\n\t\t\t\t\t// Nothing to do here\n\t\t\t\t}).finally(() => {\n\t\t\t\t\tthis.remove();\n\t\t\t\t\tthis.props.callback();\n\t\t\t\t});\n\t\t\t}).catch(() => {\n\t\t\t\t// Show the warning message since the input was invalid\n\t\t\t\tthis.content('warning').text(this.engine.replaceVariables(this.props.warning));\n\t\t\t});\n\t\t});\n\n\t\t// For inputs that require a text field, we place the default value after\n\t\t// mount instead of in-creation because this way, the cursor will be placed\n\t\t// at the end of the default value. If we did it in-creation, it would\n\t\t// be placed at the start.\n\t\tconst text: TextInputType[] = ['text', 'textarea', 'password', 'email', 'url', 'number', 'color'];\n\t\tconst { type, default: defaultValue } = this.props;\n\n\t\tif (text.indexOf(type) > -1) {\n\t\t\tif (defaultValue !== null && defaultValue !== '') {\n\t\t\t\tthis.content('field').value(defaultValue);\n\t\t\t}\n\t\t}\n\t\tthis.content('field').get(0)?.focus();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\tconst { type, default: defaultValue, options, attributes } = this.props;\n\t\tconst text: TextInputType[] = ['text', 'password', 'email', 'url', 'number', 'color', 'file', 'date', 'datetime-local', 'month', 'time', 'week', 'tel', 'range'];\n\t\tlet input = '';\n\t\tlet attr = '';\n\n\t\tif (typeof attributes === 'object' && attributes !== null) {\n\t\t\tattr = Object.keys(attributes).map((key) => {\n\t\t\t\tlet value = attributes[key];\n\n\t\t\t\t// If it's a string value, we'll do the variable interpolation\n\t\t\t\t// for it.\n\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\tvalue = this.engine.replaceVariables(value);\n\t\t\t\t}\n\n\t\t\t\treturn `${key}=\"${value}\"`;\n\t\t\t}).join(' ');\n\t\t}\n\n\t\tif (text.indexOf(type) > -1) {\n\t\t\tinput = ``;\n\t\t} else if (type === 'textarea') {\n\t\t\tinput = ``;\n\t\t} else if (type === 'select') {\n\t\t\tconst optionElements = options.map((o) => {\n\t\t\t\tlet selected = '';\n\t\t\t\tlet parsedDefault = defaultValue;\n\n\t\t\t\t// If the default value provided is a string, we need to do the variable\n\t\t\t\t// interpolation for it.\n\t\t\t\tif (typeof defaultValue === 'string' && defaultValue !== null && defaultValue !== '') {\n\t\t\t\t\tparsedDefault = this.engine.replaceVariables(defaultValue);\n\t\t\t\t\t// We're doing a == comparison instead of === since the numeric\n\t\t\t\t\t// values could be a string.\n\t\t\t\t\tif (parsedDefault == this.engine.replaceVariables(String(o.value))) {\n\t\t\t\t\t\tselected = 'selected';\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof defaultValue === 'number') {\n\t\t\t\t\t// We're doing a == comparison instead of === since the numeric\n\t\t\t\t\t// values could be a string.\n\t\t\t\t\tif (parsedDefault == o.value) {\n\t\t\t\t\t\tselected = 'selected';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ``;\n\t\t\t}).join('');\n\n\t\t\tinput = ``;\n\n\t\t} else if (type === 'radio' || type === 'checkbox') {\n\t\t\tinput = options.map((o, index) => {\n\t\t\t\tlet checked = '';\n\t\t\t\tlet parsedDefault = defaultValue;\n\n\t\t\t\t// If the default value provided is a string, we need to do the variable\n\t\t\t\t// interpolation for it.\n\t\t\t\tif (typeof defaultValue === 'string' && defaultValue !== null && defaultValue !== '') {\n\t\t\t\t\tparsedDefault = this.engine.replaceVariables(defaultValue);\n\t\t\t\t\t// We're doing a == comparison instead of === since the numeric\n\t\t\t\t\t// values could be a string.\n\t\t\t\t\tif (parsedDefault == this.engine.replaceVariables(String(o.value))) {\n\t\t\t\t\t\tchecked = 'checked';\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof defaultValue === 'number') {\n\t\t\t\t\t// We're doing a == comparison instead of === since the numeric\n\t\t\t\t\t// values could be a string.\n\t\t\t\t\tif (parsedDefault == o.value) {\n\t\t\t\t\t\tchecked = 'checked';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn `\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t`;\n\t\t\t}).join('');\n\t\t}\n\t\treturn `\n\t\t\t\n\t\t\t\t

${this.props.text}

\n\t\t\t\t${input}\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\n\t\t`;\n\t}\n}\n\nexport default TextInput;\n\n", + "import { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\nimport { Util } from '@aegis-framework/artemis';\n\nexport interface TimerDisplayProps extends Properties {\n\tcallback: () => void;\n\ttime: number;\n\tstep: number;\n\ttimer: ReturnType | null;\n\ttick: (() => void) | null;\n}\n\nexport interface TimerDisplayState extends Properties {\n\telapsed: number;\n\tremaining: number;\n\tvalue: number;\n}\n\nclass TimerDisplay extends Component {\n\tstatic override tag: string = 'timer-display';\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.props = {\n\t\t\tcallback: () => {},\n\t\t\ttime: 0,\n\t\t\tstep: 0,\n\t\t\ttimer: null,\n\t\t\ttick: null\n\t\t};\n\n\t\tthis.state = {\n\t\t\telapsed: 0,\n\t\t\tremaining: 0,\n\t\t\tvalue: 100\n\t\t};\n\t}\n\n\toverride async willMount () {\n const { time } = this.props;\n\n\t\tthis.setProps ({ step: time / 100 });\n\t\tthis.setState ({ remaining: time });\n\t}\n\n\toverride async didMount () {\n const tick = () => {\n this.setProps({\n timer: setTimeout (async () => {\n if (this.state.elapsed >= this.props.time) {\n await Util.callAsync (this.props.callback, this.engine);\n\n if (this.props.timer) {\n clearTimeout (this.props.timer);\n }\n\n if (this.parentNode) {\n this.element ().remove ();\n }\n\n return;\n }\n\n this.setState ({\n elapsed: this.state.elapsed + this.props.step,\n remaining: this.state.remaining - this.props.step,\n value: (1 - (this.state.elapsed / this.props.time)) * 100\n });\n\n this.forceRender ();\n this.props.tick?.();\n\n\n }, this.props.step)\n });\n };\n\n\n\t\tthis.setProps ({ tick });\n\n\t\tthis.props.tick?.();\n\t}\n\n\toverride async willUnmount () {\n\t\t// Clean up timer to prevent memory leaks\n\t\tif (this.props.timer) {\n\t\t\tclearTimeout(this.props.timer);\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\toverride async render () {\n\t\treturn `\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default TimerDisplay;", + "import Component from '../../lib/Component';\n\nclass VisualNovel extends Component {\n static override tag = 'visual-novel';\n\n\toverride async render (): Promise {\n\t\treturn '';\n\t}\n}\n\nexport default VisualNovel;\n", + "export interface BaseTypedAction {\n\taction: string;\n\tn?: string;\n}\n\nexport interface TypingCallbacks {\n\tonBegin?: (self: T) => void;\n\tonStart?: (index: number, self: T) => void;\n\tonStop?: (index: number, self: T) => void;\n\tpreStringTyped?: (index: number, self: T) => void;\n\tonStringTyped?: (index: number, self: T) => void;\n\tonTypingPaused?: (index: number, self: T) => void;\n\tonTypingResumed?: (index: number, self: T) => void;\n\tonDestroy?: (self: T) => void;\n}\n\n/** Pattern to match whitespace characters */\nexport const WHITESPACE_PATTERN = /\\s/;\n\n/** Basic action pattern for {pause:N} and {speed:N} commands */\nexport const BASIC_ACTION_PATTERN = /(\\{(?:pause|speed):\\d+\\})/;\n\n/** Pattern to extract action name and value */\nexport const ACTION_EXTRACT_PATTERN = /\\{(?pause|speed):(?\\d+)\\}/;\n\n/**\n * Get all leaf (text) nodes from a DOM tree.\n * Traverses the tree recursively to find nodes with no children.\n *\n * @param node - The root node to start traversal from\n * @returns Array of leaf nodes\n */\nexport function getLeafNodes (node: Node | null): Node[] {\n\tconst leafNodes: Node[] = [];\n\n\tconst traverse = (currentNode: Node): void => {\n\t\tconst children = currentNode.childNodes;\n\n\t\tif (children.length === 0) {\n\t\t\tleafNodes.push(currentNode);\n\t\t} else {\n\t\t\tchildren.forEach(child => traverse(child));\n\t\t}\n\t};\n\n\tif (node) {\n\t\ttraverse(node);\n\t}\n\n\treturn leafNodes;\n}\n\n/**\n * Parse a string into nodes and actions using the basic action pattern.\n * Creates span elements with visibility:hidden for each character.\n *\n * Supports inline commands:\n * - {speed:N} - Change typing speed to N milliseconds\n * - {pause:N} - Pause for N milliseconds\n *\n * @param curString - The string to parse\n * @returns Tuple of [nodes array, actions array]\n *\n * @example\n * parseBasicString(\"{speed:10}hello {pause:1000}world!\")\n * // Returns nodes for each character and actions at appropriate positions\n */\nexport function parseBasicString (curString: string): [Node[], (BaseTypedAction | undefined)[]] {\n\tconst sections = curString.split(BASIC_ACTION_PATTERN);\n\n\tconst nodes: Node[] = [];\n\tconst actions: (BaseTypedAction | undefined)[] = [];\n\tlet nodeCounter = 0;\n\n\tsections.forEach((section, i) => {\n\t\t// text section (even indices)\n\t\tif (i % 2 === 0) {\n\t\t\tfor (const char of section) {\n\t\t\t\tconst isWhite = WHITESPACE_PATTERN.test(char);\n\t\t\t\tif (isWhite) {\n\t\t\t\t\tnodes.push(document.createTextNode(char));\n\t\t\t\t} else {\n\t\t\t\t\tnodeCounter++;\n\t\t\t\t\tconst span = document.createElement('span');\n\t\t\t\t\tspan.appendChild(document.createTextNode(char));\n\t\t\t\t\tspan.style.visibility = 'hidden';\n\t\t\t\t\tnodes.push(span);\n\t\t\t\t}\n\t\t\t}\n\n\t\t// action section (odd indices)\n\t\t} else {\n\t\t\tconst match = ACTION_EXTRACT_PATTERN.exec(section);\n\t\t\tif (match?.groups) {\n\t\t\t\tactions[nodeCounter] = {\n\t\t\t\t\taction: match.groups.action,\n\t\t\t\t\tn: match.groups.n,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t});\n\n\treturn [nodes, actions];\n}\n\n/**\n * Parse a string into a DocumentFragment for better performance.\n * Same as parseBasicString but returns a DocumentFragment instead of array.\n *\n * @param curString - The string to parse\n * @returns Tuple of [DocumentFragment, actions array]\n */\nexport function parseBasicStringToFragment (curString: string): [DocumentFragment, (BaseTypedAction | undefined)[]] {\n\tconst fragment = document.createDocumentFragment();\n\tconst sections = curString.split(BASIC_ACTION_PATTERN);\n\n\tconst actions: (BaseTypedAction | undefined)[] = [];\n\tlet nodeCounter = 0;\n\n\tsections.forEach((section, i) => {\n\t\t// text section (even indices)\n\t\tif (i % 2 === 0) {\n\t\t\tfor (const char of section) {\n\t\t\t\tconst isWhite = WHITESPACE_PATTERN.test(char);\n\t\t\t\tif (isWhite) {\n\t\t\t\t\tfragment.appendChild(document.createTextNode(char));\n\t\t\t\t} else {\n\t\t\t\t\tnodeCounter++;\n\t\t\t\t\tconst span = document.createElement('span');\n\t\t\t\t\tspan.appendChild(document.createTextNode(char));\n\t\t\t\t\tspan.style.visibility = 'hidden';\n\t\t\t\t\tfragment.appendChild(span);\n\t\t\t\t}\n\t\t\t}\n\n\t\t// action section (odd indices)\n\t\t} else {\n\t\t\tconst match = ACTION_EXTRACT_PATTERN.exec(section);\n\t\t\tif (match?.groups) {\n\t\t\t\tactions[nodeCounter] = {\n\t\t\t\t\taction: match.groups.action,\n\t\t\t\t\tn: match.groups.n,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t});\n\n\treturn [fragment, actions];\n}\n\n/**\n * Interface for RAF-based animation timing state.\n */\nexport interface AnimationTimingState {\n\tanimationFrameId: number | null;\n\tlastFrameTime: number;\n\taccumulatedTime: number;\n\ttargetWaitTime: number;\n\tisAnimating: boolean;\n}\n\n/**\n * Create initial animation timing state.\n */\nexport function createAnimationTimingState (): AnimationTimingState {\n\treturn {\n\t\tanimationFrameId: null,\n\t\tlastFrameTime: 0,\n\t\taccumulatedTime: 0,\n\t\ttargetWaitTime: 0,\n\t\tisAnimating: false,\n\t};\n}\n\n/**\n * Add humanization (slight randomness) to typing speed.\n *\n * @param speed - Base speed in milliseconds\n * @returns Randomized speed\n */\nexport function humanizeSpeed (speed: number): number {\n\treturn Math.round((Math.random() * speed) / 2) + speed;\n}\n\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\nimport type TypeCharacter from '../type-character/index';\nimport {\n\tgetLeafNodes,\n\thumanizeSpeed,\n\tWHITESPACE_PATTERN,\n\ttype TypingCallbacks,\n} from '../../lib/typing-utils';\n\nexport type ActionType = 'number' | 'enclosed' | 'instance';\n\nexport interface TypeWriterAction {\n\tname: string;\n\ttype: ActionType;\n\taction: (this: TypeWriter, ...args: unknown[]) => void;\n}\n\nexport interface TypeWriterActions {\n\t[key: string]: TypeWriterAction;\n}\n\nexport interface TypeWriterConfiguration {\n\tactions: TypeWriterActions;\n\t[key: string]: unknown;\n}\n\nexport interface TypedConfig extends TypingCallbacks {\n\ttypeSpeed?: number;\n\tloop?: boolean | number;\n\tshowCursor?: boolean;\n\thideCursorOnEnd?: boolean;\n\tpreStringTyped: (index: number, self: TypeWriter) => void;\n\tonStringTyped: (index: number, self: TypeWriter) => void;\n\tonStringLoop?: (index: number, self: TypeWriter) => void;\n}\n\nexport interface ParsedAction {\n\taction: string;\n\tn?: string;\n\toptions?: Record | string[];\n\ttext?: string;\n\tid?: string;\n}\n\nexport interface VoidElementResult {\n\tprops: Record;\n\tstate: Record;\n\tnode: TypeCharacter;\n}\n\nexport interface TypeWriterProps extends Properties {\n\tstring: string | false;\n\ttypeSpeed?: number;\n\tloop?: boolean | number;\n\tshowCursor?: boolean;\n\thideCursorOnEnd?: boolean;\n\tdelay?: number;\n\tstart?: boolean;\n}\n\nexport interface TypeWriterState extends Properties {\n\tconfig: Partial;\n\tstrings: string[];\n\tcursor: Record;\n\tignore?: boolean;\n\tspecial?: Record;\n}\n\n// ============================================================================\n// Pre-compiled regex patterns for better performance\n// ============================================================================\n\nexport const QUOTED_VALUE_PATTERN = /=([\"'])(.*?)\\1/g;\nexport const CSS_VALUE_PATTERN = /(:[ ]?)(.*?);/g;\nexport const QUOTE_CONTENT_PATTERN = /([\"'])(.*?)\\1/g;\n\n// ============================================================================\n// TypeWriter Component\n// ============================================================================\n\nclass TypeWriter extends Component {\n static override tag = 'type-writer';\n\n static _patternCacheVersion: number = 0;\n static _numberActionsCache: string | null = null;\n static _enclosedActionsCache: string | null = null;\n static _instanceActionsCache: string | null = null;\n\n\tstatic override _configuration: TypeWriterConfiguration = {\n\t\tactions: {\n\t\t\t'pause': {\n\t\t\t\tname: 'pause',\n\t\t\t\ttype: 'number',\n\t\t\t\taction: function (this: TypeWriter, number: unknown): void {\n\t\t\t\t\tconst time = Number(number);\n\n\t\t\t\t\tif (!isNaN(time) && time >= 0) {\n\t\t\t\t\t\tthis.nextPause = time;\n\n\t\t\t\t\t\tif (time > 0 && typeof this.state.config.onTypingPaused === 'function') {\n\t\t\t\t\t\t\tthis.state.config.onTypingPaused(this.stringPos, this);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.engine.debug.error('Provided value was not a valid number value:\\n' + number);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t\t'speed': {\n\t\t\t\tname: 'speed',\n\t\t\t\ttype: 'number',\n\t\t\t\taction: function (this: TypeWriter, number: unknown): void {\n\t\t\t\t\tconst percentage = Number(number);\n\n\t\t\t\t\tif (!isNaN(percentage) && percentage >= 0) {\n\t\t\t\t\t\tif (percentage === 0) {\n\t\t\t\t\t\t\tthis.speed = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst speed = Math.floor((this.speed * 100) / percentage);\n\t\t\t\t\t\t\tthis.speed = speed;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.engine.debug.error('Provided value was not a valid number value:\\n' + number);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t\t'shake': {\n\t\t\t\tname: 'shake',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'shake-hard': {\n\t\t\t\tname: 'shake-hard',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'shake-slow': {\n\t\t\t\tname: 'shake-slow',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'shake-little': {\n\t\t\t\tname: 'shake-little',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'shake-horizontal': {\n\t\t\t\tname: 'shake-horizontal',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'shake-vertical': {\n\t\t\t\tname: 'shake-vertical',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'wave': {\n\t\t\t\tname: 'wave',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'wave-slow': {\n\t\t\t\tname: 'wave-slow',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'wave-fast': {\n\t\t\t\tname: 'wave-fast',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'fade': {\n\t\t\t\tname: 'fade',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'fade-slow': {\n\t\t\t\tname: 'fade-slow',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'blur': {\n\t\t\t\tname: 'blur',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'scale': {\n\t\t\t\tname: 'scale',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'scale-bounce': {\n\t\t\t\tname: 'scale-bounce',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'slide-up': {\n\t\t\t\tname: 'slide-up',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'slide-down': {\n\t\t\t\tname: 'slide-down',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'glitch': {\n\t\t\t\tname: 'glitch',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'glitch-hard': {\n\t\t\t\tname: 'glitch-hard',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'glitch-slow': {\n\t\t\t\tname: 'glitch-slow',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'bold': {\n\t\t\t\tname: 'bold',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'italic': {\n\t\t\t\tname: 'italic',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'big': {\n\t\t\t\tname: 'big',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'small': {\n\t\t\t\tname: 'small',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'impact': {\n\t\t\t\tname: 'impact',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'redacted': {\n\t\t\t\tname: 'redacted',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'invisible-ink': {\n\t\t\t\tname: 'invisible-ink',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'handwriting': {\n\t\t\t\tname: 'handwriting',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'strike': {\n\t\t\t\tname: 'strike',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'flicker': {\n\t\t\t\tname: 'flicker',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\n\t\t\t'angry': {\n\t\t\t\tname: 'angry',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'scared': {\n\t\t\t\tname: 'scared',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'happy': {\n\t\t\t\tname: 'happy',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'sad': {\n\t\t\t\tname: 'sad',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'mysterious': {\n\t\t\t\tname: 'mysterious',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'excited': {\n\t\t\t\tname: 'excited',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'whisper': {\n\t\t\t\tname: 'whisper',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'shout': {\n\t\t\t\tname: 'shout',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'dizzy': {\n\t\t\t\tname: 'dizzy',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'dreamy': {\n\t\t\t\tname: 'dreamy',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'robotic': {\n\t\t\t\tname: 'robotic',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'static': {\n\t\t\t\tname: 'static',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'rainbow': {\n\t\t\t\tname: 'rainbow',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'glow': {\n\t\t\t\tname: 'glow',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t},\n\t};\n\n\t// Instance properties\n\ttypeSpeed: number = 100;\n\tspeed: number = 100;\n\tnextPause: number | null = null;\n\tstringPos: number = 0;\n\tloops: boolean | number = false;\n\tstopLoop: boolean = false;\n\tnodeCounter: number = 0;\n\tenclosedID: string[] = [];\n\tparseIndex: number = 0;\n\tactionsPlayed: number = 0;\n\tactions: (ParsedAction | undefined)[] = [];\n\telements: NodeListOf | null = null;\n\tignorePause?: boolean;\n\n\t// Animation frame timing\n\tprivate _animationFrameId: number | null = null;\n\tprivate _lastFrameTime: number = 0;\n\tprivate _accumulatedTime: number = 0;\n\tprivate _targetWaitTime: number = 0;\n\tprivate _isAnimating: boolean = false;\n\n\t// Pre-compiled action patterns\n\tprivate _actionPatternCache: RegExp | null = null;\n\tprivate _numberActionsCache: string | null = null;\n\tprivate _enclosedActionsCache: string | null = null;\n\tprivate _instanceActionsCache: string | null = null;\n\tprivate _patternCacheVersion: number = 0;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.state = {\n\t\t\tconfig: {},\n\t\t\tstrings: [],\n\t\t\tcursor: {}\n\t\t};\n\n\t\tthis.props = {\n\t\t\tstring: false\n\t\t};\n\t}\n\n\tstatic override configuration(object: string | TypeWriterConfiguration | null = null): TypeWriterConfiguration | unknown {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn this._configuration[object as keyof TypeWriterConfiguration];\n\t\t\t}\n\n\t\t\tthis._configuration = Object.assign({}, this._configuration, object);\n\t\t}\n\n\t\treturn this._configuration;\n\t}\n\n\tstatic actions(): TypeWriterActions {\n\t\treturn this._configuration.actions;\n\t}\n\n\t/**\n\t * Strip all TypeWriter action markers from a string.\n\t * This dynamically handles all registered actions (number, enclosed, instance types).\n\t *\n\t * @param str - The string to strip markers from\n\t * @returns The string with all action markers removed\n\t */\n\tstatic stripActionMarkers(str: string): string {\n\t\tconst actions = this.actions();\n\t\tlet result = str;\n\n\t\tfor (const actionName in actions) {\n\t\t\tconst action = actions[actionName];\n\n\t\t\tif (action.type === 'number') {\n\t\t\t\t// Matches {action:N} or {action N}\n\t\t\t\tresult = result.replace(new RegExp(`\\\\{${actionName}[:\\\\s]\\\\d+\\\\}`, 'g'), '');\n\t\t\t} else if (action.type === 'enclosed') {\n\t\t\t\t// Matches {action} or {action options} or {/action} or {/action options}\n\t\t\t\tresult = result.replace(new RegExp(`\\\\{/?${actionName}(?:\\\\s[^}]*)?\\\\}`, 'g'), '');\n\t\t\t} else if (action.type === 'instance') {\n\t\t\t\t// Matches {action/}\n\t\t\t\tresult = result.replace(new RegExp(`\\\\{${actionName}\\\\/\\\\}`, 'g'), '');\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * Get a specific action or add a new one to the actions config.\n\t * Note: Adding a new action invalidates the pattern cache for all instances.\n\t */\n\tstatic action(action: string | TypeWriterAction | null = null): TypeWriterAction | TypeWriterActions {\n\t\tif (typeof action === 'string') {\n\t\t\treturn this._configuration.actions[action];\n\t\t}\n\n\t\tif (typeof action === 'object' && action !== null) {\n\t\t\tconst requiredFields: (keyof TypeWriterAction)[] = ['name', 'type', 'action'];\n\n\t\t\tif (requiredFields.every(field => Object.keys(action).includes(field))) {\n\t\t\t\tthis._configuration.actions[action.name] = action;\n\t\t\t\t// Invalidate pattern cache for all instances when a new action is added\n\t\t\t\tthis._invalidateAllPatternCaches();\n\t\t\t\treturn action;\n\t\t\t}\n\n\t\t\tthrow new Error('Attempted to add an action to typing actions, but an invalid action object was provided:\\n' + action);\n\t\t}\n\n\t\treturn this._configuration.actions;\n\t}\n\n\t/**\n\t * Invalidate the pattern cache for all TypeWriter instances.\n\t * Called when new actions are registered.\n\t */\n\tprivate static _invalidateAllPatternCaches(): void {\n\t\tthis._patternCacheVersion = (this._patternCacheVersion || 0) + 1;\n\t}\n\n\t/**\n\t * Get the current pattern cache version.\n\t */\n\tstatic get patternCacheVersion(): number {\n\t\treturn this._patternCacheVersion || 0;\n\t}\n\n\t/**\n\t * Get all strings.\n\t */\n\tget strings(): string[] {\n\t\treturn this.state.strings;\n\t}\n\n\t/**\n\t * Build and cache the action pattern regex for better performance.\n\t */\n\tprivate _buildActionPatterns(): void {\n\t\tconst acts: Record = Object.entries((this.constructor as typeof TypeWriter).actions())\n\t\t\t.map(([action, value]) => ({ [value.type]: [action] }))\n\t\t\t.reduce((a, b) => {\n\t\t\t\tfor (const key in b) {\n\t\t\t\t\tif (a[key]) {\n\t\t\t\t\t\ta[key] = a[key].concat(b[key]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ta[key] = b[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn a;\n\t\t\t}, {} as Record);\n\n\t\t// Sort actions by length (longest first) to ensure proper regex matching.\n\t\t// E.g., \"shake-hard\" must come before \"shake\" to avoid partial matches.\n\t\tconst sortByLength = (arr: string[]) => arr.sort((a, b) => b.length - a.length);\n\n\t\tthis._numberActionsCache = acts.number ? sortByLength(acts.number).join('|') : '';\n\t\tthis._enclosedActionsCache = acts.enclosed ? sortByLength(acts.enclosed).join('|') : '';\n\t\tthis._instanceActionsCache = acts.instance ? sortByLength(acts.instance).join('|') : '';\n\n\t\tconst patterns: string[] = [];\n\n\t\tif (this._numberActionsCache) {\n\t\t\tpatterns.push(`\\\\{(?:${this._numberActionsCache})[:\\\\s]\\\\d+\\\\}`);\n\t\t}\n\t\tif (this._enclosedActionsCache) {\n\t\t\tpatterns.push(`\\\\{/?(?:${this._enclosedActionsCache}).*?\\\\}`);\n\t\t}\n\t\tif (this._instanceActionsCache) {\n\t\t\tpatterns.push(`\\\\{(?:${this._instanceActionsCache})\\\\/\\\\}`);\n\t\t}\n\n\t\tthis._actionPatternCache = patterns.length > 0\n\t\t\t? new RegExp(`(${patterns.join('|')})`, 'g')\n\t\t\t: null;\n\t}\n\n\t/**\n\t * Start the typing animation with a fresh configuration.\n\t */\n\tinitiate(): void {\n\t\t// Build default config with internal lifecycle callbacks\n\t\tconst defaultConfig: Partial = {\n\t\t\ttypeSpeed: this.engine.preference('TextSpeed') as number,\n\t\t\tloop: false,\n\t\t\tshowCursor: false,\n\t\t\thideCursorOnEnd: false,\n\t\t\tpreStringTyped: (_index: number, _self: TypeWriter) => {\n\t\t\t\tthis.engine.global('finished_typing', false);\n\t\t\t\tthis.engine.trigger('didStartTyping');\n\t\t\t},\n\t\t\tonStringTyped: (_index: number, _self: TypeWriter) => {\n\t\t\t\tthis.engine.global('finished_typing', true);\n\t\t\t\tthis.engine.trigger('didFinishTyping');\n\t\t\t},\n\t\t\tonDestroy: (_self: TypeWriter) => {\n\t\t\t\tthis.engine.global('finished_typing', true);\n\t\t\t},\n\t\t};\n\n\t\t// Merge with any existing config (for backwards compatibility)\n\t\tthis.setState({ config: { ...defaultConfig, ...this.state.config } });\n\n\t\tif (!this.state.strings.length && this.props.string) {\n\t\t\tthis.setState({ ignore: true, strings: [this.props.string] });\n\t\t}\n\n\t\tconst { config, strings } = this.state;\n\n\t\t// Handle empty strings array\n\t\tif (!strings || strings.length === 0) {\n\t\t\tthis.engine.debug.warn('TypeWriter: No strings to type');\n\t\t\tconfig.onStringTyped?.(0, this);\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentString = strings[0] ?? '';\n\t\tthis.setProps({ string: currentString });\n\n\t\t// Handle empty string\n\t\tif (!currentString) {\n\t\t\tthis.engine.debug.warn('TypeWriter: Empty string provided');\n\t\t\tconfig.onStringTyped?.(0, this);\n\t\t\treturn;\n\t\t}\n\n\t\t// Apply cursor styles if configured\n\t\tif (Object.values(this.state.cursor).length) {\n\t\t\tfor (const key in this.state.cursor) {\n\t\t\t\tthis.style.setProperty(`--cursor-${key}`, this.state.cursor[key]);\n\t\t\t}\n\t\t}\n\n\t\t// Props type speed should always supersede config type speed\n\t\tif (this.props.typeSpeed) {\n\t\t\tthis.typeSpeed = this.props.typeSpeed;\n\t\t} else {\n\t\t\tthis.typeSpeed = config.typeSpeed ?? this.typeSpeed;\n\t\t}\n\n\t\tif (!this.loops && !this.stopLoop) {\n\t\t\tthis.loops = this.props.loop || config.loop || false;\n\t\t}\n\n\t\t// Reset state for new animation\n\t\tthis.speed = this.typeSpeed;\n\t\tthis.nextPause = null;\n\t\tthis._isAnimating = false;\n\t\tthis._animationFrameId = null;\n\t\tthis.stringPos = 0;\n\t\tthis.nodeCounter = 0;\n\t\tthis.enclosedID = [];\n\t\tthis.parseIndex = 0;\n\t\tthis.actionsPlayed = 0;\n\n\t\t// Build action patterns if not cached or if static cache version changed\n\t\tconst staticVersion = (this.constructor as typeof TypeWriter).patternCacheVersion;\n\t\tif (!this._actionPatternCache || this._patternCacheVersion !== staticVersion) {\n\t\t\tthis._patternCacheVersion = staticVersion;\n\t\t\tthis._buildActionPatterns();\n\t\t}\n\n\t\tthis.setDisplay(currentString);\n\t\tthis.elements = this.querySelectorAll('type-character') as NodeListOf;\n\n\t\t// Callbacks\n\t\tif (typeof config.onBegin === 'function') {\n\t\t\tconfig.onBegin(this);\n\t\t}\n\n\t\tconfig.preStringTyped?.(this.stringPos, this);\n\n\t\tif (typeof this.props.delay === 'number') {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.typewrite();\n\t\t\t}, this.props.delay);\n\t\t} else {\n\t\t\tthis.typewrite();\n\t\t}\n\t}\n\n\t/**\n\t * Check for non-enclosing html tags and return properties for them.\n\t */\n\tcheckVoidTags(element: Node): VoidElementResult | false {\n\t\tif (!(element instanceof Element)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst replace = (text: string, index: number = 1): string => text\n\t\t\t.slice(text.indexOf('-') + index)\n\t\t\t.replace(/[-](\\w)/g, m => m[1].toUpperCase());\n\n\t\tconst voidElements = ['br', 'hr', 'img'];\n\t\tconst voidAttributeNames = element.localName && element.getAttributeNames();\n\n\t\tconst voidAttributes = voidAttributeNames && voidAttributeNames.map(elm => ({\n\t\t\t[elm]: elm.slice(0, 5) === 'data-'\n\t\t\t\t? (element as HTMLElement).dataset[replace(elm)]\n\t\t\t\t: elm.slice(0, 5) === 'aria-'\n\t\t\t\t\t? (element as HTMLElement).getAttribute(elm)\n\t\t\t\t\t: elm === 'class'\n\t\t\t\t\t\t? element.className\n\t\t\t\t\t\t: (element as HTMLElement)[elm as keyof HTMLElement]\n\t\t})).reduce((a, v) => Object.assign(a, v), {} as Record);\n\n\t\tconst voidProperties: Record; state: Record }> = voidElements.map(e => ({\n\t\t\t[e]: {\n\t\t\t\tprops: { [e]: true },\n\t\t\t\tstate: { ...(voidAttributes) }\n\t\t\t}\n\t\t})).reduce((a, v) => Object.assign(a, v), {});\n\n\t\tif (element.localName && voidProperties[element.localName.toLowerCase()]) {\n\t\t\tconst { props, state } = voidProperties[element.localName.toLowerCase()];\n\t\t\tconst node = document.createElement('type-character') as TypeCharacter;\n\t\t\tnode.style.opacity = '0';\n\n\t\t\treturn { props, state, node };\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Setup the current string with the proper elements to run the typing animation.\n\t * Uses DocumentFragment for batched DOM operations.\n\t */\n\tsetDisplay(curString: string): void {\n\t\tconst typingElement = document.createElement('div');\n\t\ttypingElement.innerHTML = curString;\n\n\t\tconst textNodes = this._getLeafNodes(typingElement);\n\n\t\tthis.actions = [];\n\t\tlet voidCount = 0;\n\n\t\tfor (const node of textNodes) {\n\t\t\tconst isVoidElement = this.checkVoidTags(node);\n\t\t\tif (isVoidElement) {\n\t\t\t\tvoidCount++;\n\n\t\t\t\tconst { props, state, node: voidNode } = isVoidElement;\n\t\t\t\tvoidNode.setProps(props as any);\n\n\t\t\t\tif (state) {\n\t\t\t\t\tvoidNode.setState(state as any);\n\t\t\t\t}\n\n\t\t\t\t(node as ChildNode).replaceWith(voidNode);\n\t\t\t} else {\n\t\t\t\tconst [fragment, actions] = this.parseStringToFragment(node.textContent || '', voidCount);\n\t\t\t\tthis.actions = this.actions.concat(...actions);\n\n\t\t\t\t(node as ChildNode).replaceWith(fragment);\n\t\t\t}\n\t\t}\n\n\t\tconst container = this.querySelector('div');\n\t\tif (container) {\n\t\t\t// Use DocumentFragment for final insertion\n\t\t\tconst fragment = document.createDocumentFragment();\n\t\t\tfragment.append(...typingElement.childNodes);\n\t\t\tcontainer.replaceChildren(fragment);\n\t\t}\n\t}\n\n\t/**\n\t * Stop the typing animation.\n\t */\n\tstop(): void {\n\t\tthis._isAnimating = false;\n\t\tif (this._animationFrameId !== null) {\n\t\t\tcancelAnimationFrame(this._animationFrameId);\n\t\t\tthis._animationFrameId = null;\n\t\t}\n\n\t\tif (typeof this.state.config.onStop === 'function') {\n\t\t\tthis.state.config.onStop(this.stringPos, this);\n\t\t}\n\t}\n\n\t/**\n\t * Finish the typing animation immediately, showing all remaining text.\n\t *\n\t * @param instant - If true, immediately show full text without animation.\n\t * If false, rush through at maximum speed.\n\t */\n\tfinish(instant: boolean = false): void {\n\t\tif (instant) {\n\t\t\t// Get the string being typed\n\t\t\tconst str = this.state.strings[0];\n\n\t\t\t// Get the container element\n\t\t\tconst container = this.querySelector('div');\n\n\t\t\tif (container === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Stop and clean up animation\n\t\t\tthis.destroy();\n\n\t\t\t// Show the full text with all action markers stripped\n\t\t\tcontainer.innerHTML = (this.constructor as typeof TypeWriter).stripActionMarkers(str);\n\n\t\t\t// Fire the typed event so listeners (e.g. didFinishTyping) are notified.\n\t\t\t// destroy() already sets finished_typing=true via onDestroy, but\n\t\t\t// onStringTyped also triggers the didFinishTyping engine event.\n\t\t\tthis.state.config.onStringTyped?.(this.stringPos, this);\n\t\t} else {\n\t\t\t// Rush through animation at maximum speed\n\t\t\tconst minSpeed = this.engine.setting('minTextSpeed') as number;\n\t\t\tthis.speed = minSpeed > 0 ? 0 : minSpeed;\n\t\t\tthis.ignorePause = true;\n\n\t\t\tif (this.loops) {\n\t\t\t\tthis.loops = false;\n\t\t\t\tthis.stopLoop = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Set content to display, with optional typing animation.\n\t * This is the primary API for displaying text in the TypeWriter.\n\t *\n\t * @param text - The text to display (may include TypeWriter action markers)\n\t * @param animate - If true, animate the text. If false, show instantly.\n\t * Also respects the global TypeAnimation setting.\n\t */\n\tsetContent(text: string, animate: boolean = true): void {\n\t\tconst shouldAnimate = animate && this.engine.setting('TypeAnimation') === true;\n\n\t\tif (shouldAnimate) {\n\t\t\t// Signal start of typing\n\t\t\tthis.engine.global('finished_typing', false);\n\t\t\tthis.engine.trigger('didStartTyping');\n\n\t\t\t// Set strings and trigger animation via state update\n\t\t\tthis.setState({ strings: [text] });\n\t\t} else {\n\t\t\t// Show text instantly with action markers stripped\n\t\t\tconst strippedText = (this.constructor as typeof TypeWriter).stripActionMarkers(text);\n\n\t\t\t// Find or create container\n\t\t\tlet container = this.querySelector('div');\n\t\t\tif (!container) {\n\t\t\t\t// Container was cleared, create a new one\n\t\t\t\tcontainer = document.createElement('div');\n\t\t\t\tcontainer.className = 'type-writer-container';\n\t\t\t\tthis.appendChild(container);\n\t\t\t}\n\n\t\t\tcontainer.innerHTML = strippedText;\n\n\t\t\t// Signal completion\n\t\t\tthis.engine.global('finished_typing', true);\n\t\t\tthis.engine.trigger('didFinishTyping');\n\t\t}\n\t}\n\n\t/**\n\t * Start the typing animation again.\n\t */\n\tstart(): void {\n\t\tif (this._isAnimating) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.typewrite();\n\n\t\tif (typeof this.state.config.onStart === 'function') {\n\t\t\tthis.state.config.onStart(this.stringPos, this);\n\t\t}\n\t}\n\n\t/**\n\t * Parse through the current string and return a DocumentFragment with type-character elements.\n\t * Uses DocumentFragment for better performance with batch DOM operations.\n\t */\n\tparseStringToFragment(curString: string, voidCount: number): [DocumentFragment, (ParsedAction | undefined)[]] {\n\t\tconst fragment = document.createDocumentFragment();\n\t\tconst actions: (ParsedAction | undefined)[] = [];\n\n\t\t// Use cached pattern - fast path if no actions\n\t\tif (!this._actionPatternCache) {\n\t\t\tthis._parseTextOnlyToFragment(curString, fragment);\n\t\t\treturn [fragment, actions];\n\t\t}\n\n\t\tconst sections = curString.split(this._actionPatternCache);\n\t\tlet nodeCounter = 0;\n\t\tlet falseCounter = 0;\n\t\tlet charIndex = 0; // Track character index for staggered animations\n\n\t\tsections.forEach((section, i) => {\n\t\t\tthis.parseIndex++;\n\n\t\t\t// text section (even indices)\n\t\t\tif (i % 2 === 0) {\n\t\t\t\tconst special: Record = {};\n\n\t\t\t\tif (this.enclosedID.length) {\n\t\t\t\t\tfor (const id of this.enclosedID) {\n\t\t\t\t\t\tspecial[id] = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const char of section) {\n\t\t\t\t\tconst isWhite = WHITESPACE_PATTERN.test(char);\n\t\t\t\t\tif (isWhite) {\n\t\t\t\t\t\tfragment.appendChild(document.createTextNode(char));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (falseCounter) {\n\t\t\t\t\t\t\tnodeCounter -= falseCounter;\n\t\t\t\t\t\t\tfalseCounter = 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnodeCounter++;\n\t\t\t\t\t\tconst node = document.createElement('type-character') as TypeCharacter;\n\t\t\t\t\t\tnode.setProps({ letter: char, charIndex });\n\t\t\t\t\t\tcharIndex++;\n\n\t\t\t\t\t\tif (this.enclosedID.length) {\n\t\t\t\t\t\t\tnode.setState({ special } as any);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnode.style.opacity = '0';\n\t\t\t\t\t\tfragment.appendChild(node);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// action section (odd indices)\n\t\t\t} else {\n\t\t\t\tconst result = this._parseActionSection(section, nodeCounter, voidCount);\n\t\t\t\tif (result) {\n\t\t\t\t\tconst { action, adjustedNodeCounter, adjustedFalseCounter } = result;\n\t\t\t\t\tif (action) {\n\t\t\t\t\t\tactions[adjustedNodeCounter] = action;\n\t\t\t\t\t}\n\t\t\t\t\tnodeCounter = adjustedNodeCounter + 1;\n\t\t\t\t\tfalseCounter = adjustedFalseCounter + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn [fragment, actions];\n\t}\n\n\t/**\n\t * Parse text without any actions directly into a DocumentFragment (fast path).\n\t */\n\tprivate _parseTextOnlyToFragment(curString: string, fragment: DocumentFragment): void {\n\t\tlet charIndex = 0;\n\t\tfor (const char of curString) {\n\t\t\tif (WHITESPACE_PATTERN.test(char)) {\n\t\t\t\tfragment.appendChild(document.createTextNode(char));\n\t\t\t} else {\n\t\t\t\tconst node = document.createElement('type-character') as TypeCharacter;\n\t\t\t\tnode.setProps({ letter: char, charIndex });\n\t\t\t\tcharIndex++;\n\t\t\t\tnode.style.opacity = '0';\n\t\t\t\tfragment.appendChild(node);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Parse an action section and return the parsed action.\n\t */\n\tprivate _parseActionSection(\n\t\tsection: string,\n\t\tnodeCounter: number,\n\t\tvoidCount: number\n\t): { action: ParsedAction | undefined; adjustedNodeCounter: number; adjustedFalseCounter: number } | undefined {\n\t\tlet match: RegExpMatchArray | null = null;\n\t\tlet type: ActionType | undefined;\n\n\t\t// Try number action\n\t\tif (this._numberActionsCache) {\n\t\t\ttype = 'number';\n\t\t\tmatch = section.match(new RegExp(`^\\\\{(?${this._numberActionsCache})[:\\\\s](?\\\\d+)\\\\}$`));\n\t\t}\n\n\t\t// Try enclosed action\n\t\tif (!match && this._enclosedActionsCache) {\n\t\t\ttype = 'enclosed';\n\t\t\tmatch = section.match(new RegExp(`^\\\\{/?(?${this._enclosedActionsCache})(?.*)\\\\}$`));\n\n\t\t\tif (match?.groups) {\n\t\t\t\tconst isClosing = section.startsWith('{/');\n\t\t\t\tif (isClosing) {\n\t\t\t\t\tif (this.enclosedID.length) {\n\t\t\t\t\t\t// Extract action name from enclosedID (format: \"actionName-parseIndex\")\n\t\t\t\t\t\t// Action names can contain hyphens (e.g., \"shake-hard\"), so we find the last hyphen\n\t\t\t\t\t\tconst lastId = this.enclosedID[this.enclosedID.length - 1];\n\t\t\t\t\t\tconst lastDashIndex = lastId.lastIndexOf('-');\n\t\t\t\t\t\tconst idAction = lastDashIndex > 0 ? lastId.substring(0, lastDashIndex) : lastId;\n\t\t\t\t\t\tif (idAction === match.groups.action) {\n\t\t\t\t\t\t\tthis.enclosedID.pop();\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.engine.debug.error('Mismatched closing action:', match.groups.action);\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.engine.debug.error('Closing action without opening:', match.groups.action);\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.enclosedID.push(`${match.groups.action}-${this.parseIndex}`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Try instance action\n\t\tif (!match && this._instanceActionsCache) {\n\t\t\ttype = 'instance';\n\t\t\tmatch = section.match(new RegExp(`^\\\\{(?${this._instanceActionsCache})\\\\/\\\\}$`));\n\t\t}\n\n\t\tif (!match?.groups) {\n\t\t\tthis.engine.debug.error('Failed to match action:', section);\n\t\t\treturn undefined;\n\t\t}\n\n\t\tlet options: Record | string[] | undefined;\n\n\t\tif (type === 'enclosed' && match.groups.options) {\n\t\t\toptions = this._parseOptions(match.groups.options);\n\t\t}\n\n\t\tlet adjustedNodeCounter = nodeCounter;\n\t\tif (voidCount) {\n\t\t\tadjustedNodeCounter += voidCount;\n\t\t}\n\n\t\tconst action: ParsedAction = {\n\t\t\taction: match.groups.action,\n\t\t\t...(match.groups.n && { n: match.groups.n }),\n\t\t\t...(options && { options }),\n\t\t\t...(match.groups.text !== undefined && { text: match.groups.text }),\n\t\t\t...(type === 'enclosed' && { id: this.enclosedID[this.enclosedID.length - 1] })\n\t\t};\n\n\t\tif (voidCount) {\n\t\t\tadjustedNodeCounter -= voidCount;\n\t\t}\n\n\t\treturn { action, adjustedNodeCounter, adjustedFalseCounter: 0 };\n\t}\n\n\t/**\n\t * Parse options from an enclosed action.\n\t */\n\tprivate _parseOptions(optionsStr: string): Record | string[] {\n\t\tconst options: Record | string[] = {};\n\t\tlet opts: string | string[] = optionsStr.trim();\n\n\t\tif (QUOTED_VALUE_PATTERN.test(opts)) {\n\t\t\topts = opts\n\t\t\t\t.replace(QUOTE_CONTENT_PATTERN, (_match, _quote, content: string) => {\n\t\t\t\t\treturn content.replace(/\\s/g, '[~]');\n\t\t\t\t})\n\t\t\t\t.replace(/\\s/g, '=')\n\t\t\t\t.replace(/\\[~\\]/g, ' ')\n\t\t\t\t.split(/=/g);\n\t\t} else if (CSS_VALUE_PATTERN.test(opts)) {\n\t\t\topts = opts\n\t\t\t\t.replace(CSS_VALUE_PATTERN, (_match, _quote, content: string) => {\n\t\t\t\t\treturn ' ' + content.replace(/\\s/g, '[~]');\n\t\t\t\t})\n\t\t\t\t.replace(/\\s/g, ':')\n\t\t\t\t.replace(/\\[~\\]/g, ' ')\n\t\t\t\t.split(/:/g);\n\t\t} else {\n\t\t\t// If no special patterns, split by whitespace and return as an array of strings.\n\t\t\topts = opts.split(/\\s+/g);\n\t\t\treturn opts;\n\t\t}\n\n\t\tif (Array.isArray(opts)) {\n\t\t\topts.forEach((e, i) => {\n\t\t\t\tif (i % 2 === 0) {\n\t\t\t\t\toptions[e] = opts[i + 1];\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn options;\n\t}\n\n\t/**\n\t * Execute the provided action.\n\t */\n\texecuteAction(actionObj: ParsedAction): void {\n\t\tconst actions = (this.constructor as typeof TypeWriter).actions();\n\n\t\tfor (const key in actions) {\n\t\t\tif (actionObj.action === key) {\n\t\t\t\tconst { action: _, ...rest } = actionObj;\n\t\t\t\tconst variables = Object.values(rest);\n\n\t\t\t\tactions[key].action.apply(this, variables);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Adjust the received speed and return it with some randomization.\n\t * Uses shared utility from typing-utils.\n\t */\n\thumanizer(speed: number): number {\n\t\treturn humanizeSpeed(speed);\n\t}\n\n\t/**\n\t * Set the cursor on an element, and unset it from the previous element.\n\t */\n\tsetCursor(element: Element | undefined, unset: Element | undefined): void {\n\t\tif (unset) {\n\t\t\tthis.unsetCursor(unset);\n\t\t}\n\n\t\tif (element) {\n\t\t\telement.classList.add('cursor');\n\t\t}\n\t}\n\n\t/**\n\t * Unset the cursor on an element.\n\t */\n\tunsetCursor(element: NodeList | Element): void {\n\t\tif (element instanceof NodeList) {\n\t\t\telement.forEach(e => (e as Element).classList.remove('cursor'));\n\t\t} else if (element instanceof Element) {\n\t\t\telement.classList.remove('cursor');\n\t\t}\n\t}\n\n\t/**\n\t * Unset all cursors at once.\n\t */\n\tunsetAllCursors(ignore: boolean = false): void {\n\t\tif (typeof this.props.showCursor === 'boolean' || typeof this.props.showCursor === 'number') {\n\t\t\tif (this.props.showCursor) {\n\t\t\t\tif (this.props.hideCursorOnEnd || ignore) {\n\t\t\t\t\tthis.unsetCursor(this.querySelectorAll('type-character'));\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.state.config.showCursor) {\n\t\t\tif (this.state.config.hideCursorOnEnd || ignore) {\n\t\t\t\tthis.unsetCursor(this.querySelectorAll('type-character'));\n\t\t\t}\n\t\t}\n\t}\n\n\t// Reveal one character at a time\n\ttypewrite(): void {\n\t\t// Execute actions that appear before the current character\n\t\tif (this.actions[this.nodeCounter]) {\n\t\t\tthis.executeAction(this.actions[this.nodeCounter]!);\n\n\t\t\tthis.nodeCounter++;\n\t\t\tthis.actionsPlayed++;\n\n\t\t\treturn this.typewrite();\n\t\t}\n\n\t\t// Reset node counter after executing actions\n\t\tif (this.actionsPlayed) {\n\t\t\tthis.nodeCounter -= this.actionsPlayed;\n\t\t\tthis.actionsPlayed = 0;\n\t\t}\n\n\t\t// Calculate target wait time\n\t\tthis._targetWaitTime = (!this.ignorePause && this.nextPause) || this.humanizer(this.speed);\n\t\tthis._accumulatedTime = 0;\n\t\tthis._lastFrameTime = performance.now();\n\t\tthis._isAnimating = true;\n\n\t\t// Start the animation frame loop\n\t\tthis._animationFrameId = requestAnimationFrame((timestamp) => this._animationLoop(timestamp));\n\t}\n\n\t/**\n\t * Animation frame loop for smooth typing.\n\t */\n\tprivate _animationLoop(timestamp: number): void {\n\t\tif (!this._isAnimating) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Calculate delta time\n\t\tconst deltaTime = timestamp - this._lastFrameTime;\n\t\tthis._lastFrameTime = timestamp;\n\t\tthis._accumulatedTime += deltaTime;\n\n\t\t// Some developers may want the text to appear instantly,\n\t\t// while disabling \"InstantText\".\n\t\tif (this._targetWaitTime < 0) {\n\t\t\twhile (this.elements && this.nodeCounter < this.elements.length) {\n\t\t\t\tthis._revealNextCharacter(true);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if we've waited long enough\n\t\tif (this._accumulatedTime >= this._targetWaitTime) {\n\t\t\tthis._revealNextCharacter();\n\t\t} else {\n\t\t\t// Continue waiting\n\t\t\tthis._animationFrameId = requestAnimationFrame((ts) => this._animationLoop(ts));\n\t\t}\n\t}\n\n\t/**\n\t * Reveal the next character and schedule the next one.\n\t */\n\tprivate _revealNextCharacter(instant: boolean = false): void {\n\t\tif (this.nextPause) {\n\t\t\tthis.nextPause = null;\n\n\t\t\tif (typeof this.state.config.onTypingResumed === 'function') {\n\t\t\t\tthis.state.config.onTypingResumed(this.stringPos, this);\n\t\t\t}\n\t\t}\n\n\t\t// Handle cursor display\n\t\tif (typeof this.props.showCursor === 'boolean' || typeof this.props.showCursor === 'number') {\n\t\t\tif (this.props.showCursor && this.elements) {\n\t\t\t\tthis.setCursor(this.elements[this.nodeCounter], this.elements[this.nodeCounter - 1]);\n\t\t\t}\n\t\t} else if (this.state.config.showCursor && this.elements) {\n\t\t\tthis.setCursor(this.elements[this.nodeCounter], this.elements[this.nodeCounter - 1]);\n\t\t}\n\n\t\tif (this.stopLoop) {\n\t\t\tthis.stopLoop = false;\n\t\t}\n\n\t\t// Reveal character using opacity (avoids layout recalculation)\n\t\tif (this.elements?.[this.nodeCounter]) {\n\t\t\tthis.elements[this.nodeCounter].style.opacity = '';\n\t\t}\n\t\tthis.nodeCounter += 1;\n\n\t\t// If the developer wants instant text while keeping \"InstantText\" off,\n\t\t// this will handle executing all remaining actions semi-instantly.\n\t\tif (instant && this.elements && this.nodeCounter < this.elements.length) {\n\t\t\tif (this.actions[this.nodeCounter]) {\n\t\t\t\tthis.executeAction(this.actions[this.nodeCounter]!);\n\n\t\t\t\tthis.actionsPlayed++;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.actionsPlayed) {\n\t\t\t\tthis.nodeCounter -= this.actionsPlayed;\n\t\t\t\tthis.actionsPlayed = 0;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.elements && this.nodeCounter < this.elements.length) {\n\t\t\t// Continue typing - start new timing cycle\n\t\t\tthis.typewrite();\n\t\t} else {\n\t\t\t// Typing complete\n\t\t\tthis._isAnimating = false;\n\t\t\tthis._animationFrameId = null;\n\n\t\t\tthis.unsetAllCursors();\n\n\t\t\tif (this.loops) {\n\t\t\t\tif (Number.isInteger(this.loops) && typeof this.loops === 'number') {\n\t\t\t\t\tif (this.loops > 0) {\n\t\t\t\t\t\tthis.loops--;\n\t\t\t\t\t\tif (this.loops === 0) {\n\t\t\t\t\t\t\tthis.stopLoop = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof this.state.config.onStringLoop === 'function') {\n\t\t\t\t\t\t\tthis.state.config.onStringLoop(this.stringPos, this);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn this.initiate();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof this.state.config.onStringLoop === 'function') {\n\t\t\t\t\t\tthis.state.config.onStringLoop(this.stringPos, this);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.initiate();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.state.config.onStringTyped?.(this.stringPos, this);\n\t\t}\n\t}\n\n\t/**\n\t * Get the leaf nodes of a provided node.\n\t * Uses shared utility from typing-utils.\n\t */\n\tprivate _getLeafNodes(node: Node | null): Node[] {\n\t\treturn getLeafNodes(node);\n\t}\n\n\t/**\n\t * Stop and destroy the current typing animation.\n\t */\n\tdestroy(loop?: boolean): void {\n\t\t// Cancel any pending animation frame\n\t\tthis._isAnimating = false;\n\t\tif (this._animationFrameId !== null) {\n\t\t\tcancelAnimationFrame(this._animationFrameId);\n\t\t\tthis._animationFrameId = null;\n\t\t}\n\n\t\tthis.ignorePause = undefined;\n\t\tthis.loops = false;\n\n\t\tif (loop) {\n\t\t\twhile (this.firstElementChild?.firstChild) {\n\t\t\t\tthis.firstElementChild.firstChild.remove();\n\t\t\t}\n\t\t}\n\n\t\tif (this.elements) {\n\t\t\tthis.elements.forEach(e => e.removeAttribute('style'));\n\t\t}\n\n\t\tif (typeof this.state.config.onDestroy === 'function') {\n\t\t\tthis.state.config.onDestroy(this);\n\t\t}\n\n\t\tthis.unsetAllCursors();\n\n\t\tif (this.stopLoop) {\n\t\t\tthis.stopLoop = false;\n\t\t}\n\t}\n\n\toverride async onStateUpdate(property: string, _oldValue: unknown, _newValue: unknown): Promise {\n\t\tif (property === 'strings') {\n\t\t\tif (!this.state.ignore) {\n\t\t\t\tthis.forceRender().then(() => {\n\t\t\t\t\tthis.destroy(!!this.loops);\n\t\t\t\t}).finally(() => {\n\t\t\t\t\tthis.initiate();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.setState({ ignore: false });\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didMount(): Promise {\n\t\tif (this.props.start) {\n\t\t\tthis.initiate();\n\t\t}\n\t}\n\n\toverride render(): string {\n\t\treturn '
';\n\t}\n\n\toverride async willUnmount(): Promise {\n\t\tthis.destroy(true);\n\n\t\tthis.elements = null;\n\t\tthis.enclosedID = [];\n\t\tthis.innerHTML = '';\n\t}\n}\n\nexport default TypeWriter;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\n\nimport Component from '../../lib/Component';\n\n// Either displays a single character OR a void HTML element.\nexport interface TypeCharacterProps extends Properties {\n\t// The character to display (false if this is a void element)\n\tletter: string | false;\n\t// Marks this as a
void element\n\tbr?: boolean;\n\t// Marks this as a
void element\n\thr?: boolean;\n\t// Marks this as an void element\n\timg?: boolean;\n\t// Character index for staggered animations\n\tcharIndex?: number;\n}\n\nexport interface TypeCharacterState extends Properties {\n\t// Enclosed action IDs that apply to this character (e.g., { \"shake-123\": true })\n\tspecial?: Record;\n\t// For void elements: HTML attributes like src, alt, class, etc.\n\t[key: string]: unknown;\n}\n\n// The void element types supported\ntype VoidElementType = 'br' | 'hr' | 'img';\n\nclass TypeCharacter extends Component {\n\t// Cache of currently applied effect attributes\n\tprivate _appliedEffects: Set = new Set();\n\n\tconstructor () {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tletter: false\n\t\t};\n\t}\n\n\tprivate _getVoidElementType (): VoidElementType | null {\n\t\tif (this.props.br) return 'br';\n\t\tif (this.props.hr) return 'hr';\n\t\tif (this.props.img) return 'img';\n\t\treturn null;\n\t}\n\n\t// Extract effect names from special state keys.\n\t// Keys are in format \"effectName-uniqueId\" (e.g., \"shake-123\")\n\tprivate _extractEffectNames (): string[] {\n\t\tif (!this.state.special) return [];\n\n\t\treturn Object.keys(this.state.special)\n\t\t\t.filter(key => this.state.special![key])\n\t\t\t.map(key => {\n\t\t\t\t// Extract effect name by removing the -uniqueId suffix\n\t\t\t\tconst lastDashIndex = key.lastIndexOf('-');\n\t\t\t\treturn lastDashIndex > 0 ? key.substring(0, lastDashIndex) : key;\n\t\t\t});\n\t}\n\n\t// Apply effect data attributes to the element based on special state.\n\tprivate _applyEffectAttributes (): void {\n\t\tconst effects = this._extractEffectNames();\n\n\t\t// Remove old effects that are no longer active\n\t\tfor (const oldEffect of this._appliedEffects) {\n\t\t\tif (!effects.includes(oldEffect)) {\n\t\t\t\tthis.removeAttribute(`data-effect-${oldEffect}`);\n\t\t\t\tthis._appliedEffects.delete(oldEffect);\n\t\t\t}\n\t\t}\n\n\t\t// Apply new effects\n\t\tfor (const effect of effects) {\n\t\t\tif (!this._appliedEffects.has(effect)) {\n\t\t\t\tthis.setAttribute(`data-effect-${effect}`, '');\n\t\t\t\tthis._appliedEffects.add(effect);\n\t\t\t}\n\t\t}\n\n\t\t// Set character index for staggered animations (wave, glitch-slow, etc.)\n\t\tif (typeof this.props.charIndex === 'number') {\n\t\t\tthis.style.setProperty('--char-index', String(this.props.charIndex));\n\t\t}\n\t}\n\n\toverride didMount (): Promise {\n\t\tthis._applyEffectAttributes();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onStateUpdate (property: string, _oldValue: unknown, _newValue: unknown): Promise {\n\t\tif (property === 'special') {\n\t\t\tthis._applyEffectAttributes();\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onPropsUpdate (property: string, _oldValue: unknown, _newValue: unknown): Promise {\n\t\tif (property === 'charIndex') {\n\t\t\tif (typeof this.props.charIndex === 'number') {\n\t\t\t\tthis.style.setProperty('--char-index', String(this.props.charIndex));\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\trender (): string {\n\t\tconst { letter } = this.props;\n\t\tconst voidType = this._getVoidElementType();\n\n\t\t// Render void element\n\t\tif (voidType) {\n\t\t\tconst attrs = Object.entries(this.state)\n\t\t\t\t.filter(([key, value]) => value !== undefined && key !== 'special')\n\t\t\t\t.map(([key, value]) => `${key}=\"${value}\"`)\n\t\t\t\t.join(' ');\n\n\t\t\treturn attrs ? `<${voidType} ${attrs} />` : `<${voidType} />`;\n\t\t}\n\n\t\t// Render character\n\t\treturn letter || '';\n\t}\n}\n\nTypeCharacter.tag = 'type-character';\n\nexport default TypeCharacter;\n", + "import type {\n Configuration,\n ActionApplyResult,\n ActionRevertResult,\n ActionRunContext,\n ActionRevertContext,\n SaveSlot,\n} from './types';\n\nimport type { VisualNovelEngine } from './types/Monogatari';\n\n/**\n * An action describes the functionality for a Monogatari statement, when Monogatari\n * reads a part of the script (a statement), it will look for an action that matches\n * the statement and run it.\n *\n * The life cycle of an action is divided in three parts: Mounting, Application\n * and Reverting.\n *\n * The mounting cycle has 3 steps:\n *\n * 1. Setup - Here the action needs to set up everything it will need for working\n * generally, in this section an action will register the variables it\n * needs such as object histories and state variables or even add the\n * HTML contents to the document.\n *\n * 2. Bind - Once the action has been setup, its time to bind all the necessary\n * event listeners or perfom more operations on the DOM once all elements\n * have been setup.\n *\n * 3. Init - Finally, once the action was setup and it performed all the needed\n * bindings, it may declare or modify variables that needed the HTML to\n * be setup first or perform any other needed final operations.\n *\n * As noted, the Mounting cycle is mostly about getting everything setup for a\n * correct operation of the action. Thr Application and Reverting cycles are used\n * for the actual workings of an action in a game.\n *\n * Before executing an action Monogatari will check if the current statement matches\n * with the action, therefore the Action must implement a matching function. If\n * the statement to match should be a String, the action must implement the\n * matchString () method, if it should be an Object, the action must implement\n * the matchObject () method. Both should return a boolean on whether the action\n * matches the given statement or not.\n *\n *\n * The Application cycle refers to the cycle of an Action when it is run because of\n * a statement in the script.\n *\n * The Application Cycle has 3 steps as well:\n *\n * 1. Will Apply - Executed when the action will be applied, if any operations\n * need to be done before its application, this is the place.\n *\n * 2. Apply - The application itself, this is where all the logic regarding the\n * action must be applied. Of course every action will implement its\n * own logic depending on what it has to do.\n *\n * 3. Did Apply - Executed after the action was applied, this function is great\n * for cleanup operations or any other thing that needs to be done\n * after the action was applied.\n *\n * While the Application clycle is all about executing the action, the Revert\n * cycle is the opposite and it reverts the things the Application cycle does.\n * Reverting is used when the player goes back in the game and has equivalent\n * steps to the Application Cycle:\n *\n * 1. Will Revert - Executed when the action will be reverted, if any operations\n * need to be done before its revertion such as checking for history\n * elements or any other check, this is the place.\n *\n * 2. Revert - The reversion of the action, its common that the actions revert to\n * previous states or revert other changes done by the application of\n * an action. Every action will implement its own logic depending on\n * what it has to do.\n *\n * 3. Did Revert - Executed after the action was reverted, this function is great\n * for cleanup operations or any other thing that needs to be done\n * after the action was reverted.\n *\n * @class Action\n */\nclass Action {\n /**\n * Marks the action as experimental, meaning it's not stable and should not\n * be used in production.\n */\n static _experimental: boolean = false;\n\n /**\n * If needed, every action should declare its configuration as follows. This\n * configuration object should be used to store action-specific settings as well\n * as other objects/assets used by the action. If any specific object needs\n * recurrent access such as the declarations in the script.js file, provinding\n * a static function for that specific object could be great.\n *\n * IMPORTANT: Subclasses should declare their own `static _configuration = {}`\n * to avoid sharing state with other actions.\n */\n static _configuration: Configuration = {};\n\n /**\n * All actions must have an ID, with this ID the developers will be able to\n * access the action classes, remove actions or register new ones. They must also\n * be unique.\n */\n static id: string = 'Action';\n\n /**\n * The loading order of an action can be used to sort which actions should be\n * run before or after the others when a game is loaded in case they have some\n * dependencies between themselves.\n */\n static loadingOrder: number = 0;\n\n /**\n * Reference to the Monogatari engine (set by engine on registration)\n */\n static engine: VisualNovelEngine;\n\n /**\n * We will use this instead of the engine block\n */\n static blocking: boolean = false;\n\n /**\n * The original statement this action was instantiated with\n */\n _statement: string | string[] | Record | ((...args: unknown[]) => unknown) | undefined;\n\n /**\n * Current cycle: 'Application' or 'Revert'\n */\n _cycle: 'Application' | 'Revert' | undefined;\n\n /**\n * Extra context passed to the action\n */\n _extras: Record | undefined;\n\n /**\n * Context reference (usually the Monogatari class)\n * @deprecated - This property is deprecated and will be removed in a future version. Use the engine property instead.\n */\n context: VisualNovelEngine | undefined;\n\n /**\n * @static configuration - A simple function providing access to the configuration\n * object of the function. If the action has a configuration object it must\n * also include this method.\n *\n * @param {Object|string} [object = null] - Object with which current\n * configuration will be updated with (i.e. Object.assign) or a string to access\n * a property.\n *\n * @return {any} - If the parameter sent was a string, the function will\n * return the value of the property whose name matches the parameter. If no\n * parameter was sent, then the function will return the whole configuration\n * object.\n */\n static configuration (object: string | Configuration | null = null): Configuration | unknown {\n if (object === null) {\n return this._configuration;\n }\n\n if (typeof object === 'string') {\n return this._configuration[object];\n }\n\n this._configuration = Object.assign({}, this._configuration, object);\n }\n\n /**\n * @static shouldProceed - Either when the user clicks in the game to proceed or\n * the autoPlay feature is ready to go on, Monogatari will first check with\n * all actions if it's ok to proceed. Every action should implement its own\n * logic for it according to its requirements.\n *\n * @param {Object} options - Options for proceeding\n * @param {boolean} options.userInitiated - Whether the proceed was initiated by user click\n * @param {boolean} options.skip - Whether skip mode is active\n * @param {boolean} options.autoPlay - Whether auto-play mode is active\n * @return {Promise} - Resolved if proceeding is alright or rejected if its not\n */\n static async shouldProceed (_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean }): Promise {}\n\n /**\n * @static willProceed - Once the shouldProceed check is passed, each action\n * should implement its own logic according to its requirements to respond to\n * the game proceeding.\n *\n * @return {Promise}\n */\n static async willProceed (): Promise {}\n\n /**\n * @static shouldRollback - Similarly to the shouldProceed () function, this one takes\n * action when the player tries to go back in the game.Monogatari will first\n * check with all actions if it's ok to go back. Every action should implement\n * its own logic for it according to its requirements.\n *\n * @return {Promise} - Resolved if going back is alright or rejected if its not\n */\n static async shouldRollback (): Promise {}\n\n /**\n * @static willRollback - Once the shouldRollback check is passed, each action\n * should implement its own logic according to its requirements to respond to\n * the game reverting the previous action\n *\n * @return {Promise}\n */\n static async willRollback (): Promise {}\n\n /**\n * @static onStart - This function acts as an event listener for when the game\n * starts. If the action needs to do any particular activities when the game\n * starts, then this function should be implemented and it will be automatically\n * called once the player starts the game.\n *\n * @return {Promise}\n */\n static async onStart (): Promise {}\n\n /**\n * @static onLoad - This function acts as an event listener for when a game\n * is loaded. If the action needs to perform any particular actions such as\n * restoring some state (i.e. showing images, playing media, etc.) when a game\n * is loaded, this function must be implemented and it will be automatically\n * called when a game is loaded.\n *\n * @return {Promise} description\n */\n static async onLoad (): Promise {}\n\n /**\n * @static onSave - This function acts as an event listener for when a game\n * is saved. If the action needs to perform any particular actions when that\n * happens, this function must be implemented and it will be automatically\n * called when a game is saved.\n *\n * @param {Object} slot - The slot object that has just been saved.\n * @param {string} slot.key - The key used to save the slot in the local storage\n * @param {Object} slot.value - The actual value saved\n *\n * @return {Promise} description\n */\n static async onSave (_slot?: SaveSlot): Promise {}\n\n /**\n * @static reset - When a game ends using the 'end' statement or before a game\n * is loaded, Monogatari will perform a reset on all its actions. If the action\n * needs to reset a state or any other variables/elements to an initial state\n * once a game is over or a new one is loaded, the logic for it must be implemented\n * here and the function will be automatically called when needed.\n *\n * @return {Promise} - Result of the reset operation\n */\n static async reset (): Promise {}\n\n /**\n * @static setup - The setup is the first step of the Mounting cycle, all\n * operations required for the action's setup should be implemented here.\n *\n * @param {string} selector - The CSS selector with which Monogatari has been\n * initialized\n * @return {Promise} - Result of the setup operation\n */\n static async setup (_selector?: string): Promise {}\n\n /**\n * @static bind - The binding is the second step of the Mounting cycle, all\n * operations related to event bindings or other sort of binding with the\n * HTML content generated in the setup phase should be implemented here.\n *\n * @param {string} selector - The CSS selector with which Monogatari has been\n * initialized\n * @return {Promise} - Result of the binding operation\n */\n static async bind (_selector?: string): Promise {}\n\n /**\n * @static init - The initialization is the last step of the Mounting cycle,\n * all final operations should be implemented here.\n *\n * @param {string} selector - The CSS selector with which Monogatari has been\n * initialized\n * @return {Promise} - Result of the initialization operation\n */\n static async init (_selector?: string): Promise {}\n\n /**\n * @static match - Currently this function is saved up for future uses.\n *\n * @param {any} statement - Statement to match\n *\n * @returns {boolean} - Whether the action matches the statement or not\n */\n static match (_statement: unknown): boolean {\n return false;\n }\n\n /**\n * @static matchString - When Monogatari goes through a string statement, it\n * will use this function to find which action it corresponds to.\n *\n * @param {string[]} statement - The statement to match, splitted into an array by spaces\n * @return {boolean} - Whether the action matches the statement or not\n */\n static matchString (_statement: string[]): boolean {\n return false;\n }\n\n /**\n * @static matchObject - Similarly to its string counterpart, this function\n * is used when Monogatari goes through an Object (generally JSON) statement\n * to find which action the statement corresponds to.\n *\n * @param {Object} statement - The statement to match,\n * @return {boolean} - Whether the action matches the statement or not\n */\n static matchObject (_statement: Record): boolean {\n return false;\n }\n\n static async beforeRun (_context: ActionRunContext): Promise {}\n static async beforeRevert (_context: ActionRevertContext): Promise {}\n\n static async afterRun (_context: ActionRunContext): Promise {}\n\n static async afterRevert (_context: ActionRevertContext): Promise {}\n\n /**\n * constuctor - Once the action has been matched through one of the match\n * functions, an instance of the action is created with the statement it\n * matched as argument. As in the match functions, the string statements will\n * actually be received as arrays of words splitted by spaces.\n *\n * @param {string[]|Object} statement - The statement it matched\n */\n constructor (_statement?: string[] | Record) {}\n\n /**\n * The engine to which this action registered to.\n *\n * @type {Monogatari}\n */\n get engine (): VisualNovelEngine {\n return (this.constructor as typeof Action).engine;\n }\n\n set engine (_value: VisualNovelEngine) {\n throw new Error('Component engine reference is hold at static level and cannot be modified.');\n }\n\n /**\n * setContext - This is a built in function in every action, the context of\n * the action will always be the Monogatari class. This is mainly used for\n * cases where the action can't import or reference directly the Monogatari\n * class so it can simply use this.context instead.\n *\n * @deprecated - This function is deprecated and will be removed in a future version. Use the engine property instead.\n *\n * @param {Monogatari} context - The Monogatari Class\n */\n setContext (context: VisualNovelEngine): void {\n this.context = context;\n }\n\n /**\n * _setStatement - Since the original statement used to match an action tends\n * to be transformed by monogatari (i.e. by splitting it or other things),\n * this action built-in function is automatically used by Monogatari to\n * set the original statement to the action once it has been instantiated.\n * Because of this function, you can always refere to the original statement\n * in the Application and Reverting cycles with this._statement;\n *\n * @param {string|Object|function} statement - The statement with which the action was run\n */\n _setStatement (statement: string | Record | ((...args: unknown[]) => unknown)): void {\n this._statement = statement;\n }\n\n /**\n * _setCycle - This simple method is used to set what cycle the action is\n * currently performing. This is useful to know on those actions that may\n * use the apply or revert methods on any situation but that have slight\n * differences on the logic.\n *\n * @param {string} cycle - 'Application' if the action is running the application\n * cycle or 'Revert' if it's running the revert cycle.\n */\n _setCycle (cycle: 'Application' | 'Revert'): void {\n this._cycle = cycle;\n }\n\n /**\n * setExtras - Some times, actions may require extra context to know what they're\n * supposed to do. The extras object should hold any additional information\n * we want to pass down to the action.\n *\n * @param {Object} extras\n */\n setExtras (extras: Record): Record {\n this._extras = extras;\n\n return this._extras;\n }\n\n /**\n * willApply - Method called before the application of an action\n *\n * @return {Promise} - Result of the willApply operation, if this function\n * returns a rejected promise, the cycle will be interrupted and the action\n * will not be applied.\n */\n async willApply (): Promise {}\n\n /**\n * apply - Method for the actual application of an action, this is where\n * the core operations of an action must be done.\n *\n * @return {Promise} - Result of the application operation\n */\n async apply (): Promise {}\n\n /**\n * didApply - If the cycle has reached this far, it means the action has\n * correctly gone through the willApply and apply functions. Now that it has\n * been applied, we can perform any cleanup operations.\n *\n * @return {Promise} - Result of the didApply operation. When resolved,\n * it should resolve to a boolean value, true if the game should go to the\n * next statement right away, false if it should wait for user's interaction.\n */\n async didApply (options?: { updateHistory?: boolean; updateState?: boolean }): Promise {\n return {\n advance: false\n };\n }\n\n /**\n * interrupt - Currently saved for future purposes, the interrupt function\n * would be used to interrupt a function when its still doing something, like\n * when the typing animation of dialogs is interrupted if you click again.\n *\n * @return {Promsie} - Result of the interruption\n */\n async interrupt (): Promise {}\n\n /**\n * willRevert - Method called before an action is reverted\n *\n * @return {Promise} - Result of the willRevert operation, if this function\n * returns a rejected promise, the cycle will be interrupted and the action\n * will not be reverted.\n */\n async willRevert (): Promise {}\n\n /**\n * revert - Method called for the actual reversion of an action, this is where\n * the core operations needed to revert an action must be done.\n *\n * @return {Promise} - Result of the reversion operation\n */\n async revert (): Promise {}\n\n /**\n * didApply - If the cycle has reached this far, it means the action has\n * correctly gone through the willRevert and revert functions. Now that it has\n * been reverted, we can perform any cleanup operations.\n *\n * @returns {Promise} - Result of the didRevert operation. When resolved,\n * it should resolve to a boolean value, true if the game should go to the\n * previous statement right away, false if it should wait for user's interaction.\n */\n async didRevert (): Promise {\n return {\n advance: false,\n step: true\n };\n }\n}\n\nexport default Action;\n", + "import Action from '../lib/Action';\nimport Component from '../lib/Component';\nimport { Util } from '@aegis-framework/artemis';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class Canvas extends Action {\n\tstatic override id = 'Canvas';\n\n\tstatic _configuration: any = {\n\t\tobjects: {},\n\t\tmodes: ['modal', 'displayable', 'immersive', 'background', 'character']\n\t};\n\n\tstatic configuration(object: any = null): any {\n\t\tif (object === null) {\n return Canvas._configuration;\n }\n\n if (typeof object === 'string') {\n return Canvas._configuration[object];\n }\n\n Canvas._configuration = Object.assign({}, Canvas._configuration, object);\n\t}\n\n\tstatic override async shouldProceed(): Promise {\n const element = this.engine.element();\n\n element.find('[data-component=\"canvas-container\"]').each((element: any) => {\n const { mode, canvas } = element.props;\n if (['immersive', 'modal'].indexOf(mode) > -1) {\n throw new Error(`Canvas \"${canvas}\" must be removed before proceeding.`);\n }\n });\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst state = this.engine.state('canvas');\n\n\t\tif (state.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst promises = [];\n\t\tfor (const canvas of state) {\n\t\t\tconst action: ActionInstance | null = this.engine.prepareAction(canvas, { cycle: 'Application' });\n\n if (action === null) {\n continue;\n }\n\n\t\t\tconst promise = action.willApply().then(() => {\n\t\t\t\treturn action.apply().then(() => {\n\t\t\t\t\treturn action.didApply({ updateHistory: false, updateState: false });\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tpromises.push(promise);\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\tawait Promise.all(promises);\n\t\t}\n\t}\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('canvas');\n\t\tthis.engine.state({\n\t\t\tcanvas: []\n\t\t});\n\t}\n\n\tstatic override async bind(): Promise {\n\t\twindow.addEventListener('resize', () => {\n\t\t\tthis.engine.element().find('[data-component=\"canvas-container\"][mode=\"background\"], [data-component=\"canvas-container\"][mode=\"immersive\"]').each((canvasContainer: any) => {\n\t\t\t\tconst { object } = canvasContainer.props;\n\t\t\t\tif (typeof object.resize === 'function') {\n\t\t\t\t\tUtil.callAsync(object.resize, this.engine, canvasContainer.layers, object.props, object.state, canvasContainer);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\t// Go through each canvas element being shown so it can be properly\n\t\t// stopped and then removed.\n\t\tthis.engine.element().find('[data-component=\"canvas-container\"]').each((canvasContainer: any) => {\n\t\t\tconst { object } = canvasContainer.props;\n\n\t\t\tpromises.push(Util.callAsync(object.stop, this.engine, canvasContainer.layers, object.props, object.state, canvasContainer).then(() => {\n\t\t\t\tcanvasContainer.remove();\n\t\t\t}));\n\t\t});\n\n\t\tthis.engine.history({\n\t\t\tcanvas: []\n\t\t});\n\n\t\tthis.engine.state({\n\t\t\tcanvas: []\n\t\t});\n\n\t\tawait Promise.all(promises);\n\t}\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'canvas';\n\t}\n\n\tstatic objects(object: any = null): any {\n\t\tif (object === null) {\n return Canvas._configuration.objects;\n }\n\n if (typeof object === 'string') {\n return Canvas._configuration.objects[object];\n }\n\n Canvas._configuration.objects = {\n ...Canvas._configuration.objects,\n ...object\n };\n\t}\n\n\tmode: string;\n\tname: string;\n\tclasses: string[];\n\tobject: any;\n\telement: any;\n\tcontainerSelector: string;\n\n\t/**\n\t * Creates an instance of a Canvas Action\n\t *\n\t * @param {string[]} parameters - List of parameters received from the script statement.\n\t * @param {string} parameters.action - In this case, action will always be 'canvas'\n\t * @param {string} [parameters.mode='displayable'] - Mode in which the canvas element will be shown (displayable, background, immersive)\n\t * @param {string} parameters.mode\n\t */\n\tconstructor([show, canvas, name, mode = 'displayable', separator, ...classes]: string[]) {\n\t\tsuper();\n\n\t\tthis.mode = mode;\n\t\tthis.name = name;\n\t\tthis.containerSelector = '';\n\n\t\tthis.classes = typeof classes !== 'undefined' ? ['animated', ...classes.filter((c) => c !== 'with')] : [];\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (Canvas._configuration.modes.indexOf(this.mode) === -1) {\n\t\t\tFancyError.show('action:canvas:invalid_mode', {\n\t\t\t\tmode: this.mode,\n\t\t\t\tvalidModes: (this.constructor as any)._configuration.modes,\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\treturn Promise.reject('Invalid canvas mode provided.');\n\t\t}\n\n\t\tthis.object = Canvas.objects(this.name);\n\n\t\tif (typeof this.object !== 'object') {\n\t\t\tFancyError.show('action:canvas:object_not_found', {\n\t\t\t\tname: this.name,\n\t\t\t\tavailableObjects: Object.keys(Canvas.objects()),\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\n\t\t\treturn Promise.reject('Canvas object did not exist or is invalid');\n\t\t}\n\n\t\tthis.element = document.createElement('canvas-container');\n\n\t\tthis.containerSelector = `[data-component=\"canvas-container\"][canvas=\"${this.name}\"][mode=\"${this.mode}\"]`;\n\n\t\treturn Promise.resolve();\n\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst defaultFunction = () => Promise.resolve();\n\n\t\tthis.element.setProps({\n\t\t\tmode: this.mode,\n\t\t\tcanvas: this.name,\n\t\t\t// We need to pass the object this way so we can clone the state\n\t\t\t// property instead of pasing it by reference. Otherwise, any changes\n\t\t\t// made to it during execution would be kept there and the next time we\n\t\t\t// use the same object, we'll receive the modified state object instead\n\t\t\t// of a clean one.\n\t\t\tobject: {\n\t\t\t\tlayers: this.object.layers || ['base'],\n\t\t\t\tprops: this.object.props || {},\n\t\t\t\tstate: { ...(this.object.state || {}) },\n\t\t\t\tstart: this.object.start || defaultFunction,\n\t\t\t\tstop: this.object.stop || defaultFunction,\n\t\t\t\tresize: this.object.resize || defaultFunction,\n\t\t\t},\n\t\t\tclasses: this.classes\n\t\t});\n\n\t\tconst gameScreen = this.engine.element().find('[data-screen=\"game\"]');\n\n\t\tif (this.mode === 'background') {\n\t\t\tgameScreen.find('[data-ui=\"background\"]').append(this.element);\n\t\t} else if (this.mode === 'immersive') {\n\t\t\tgameScreen.append(this.element);\n\t\t} else if (this.mode === 'displayable' || this.mode === 'modal' || this.mode === 'character') {\n\t\t\t(gameScreen.get(0) as unknown as Component)?.content('visuals')?.append(this.element);\n\t\t}\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tconst statement = this._statement as string;\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history('canvas').push(statement);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tcanvas: [...this.engine.state('canvas'), statement]\n\t\t\t});\n\t\t}\n\n\t\tif (this.mode === 'background' || this.mode === 'character' || this.mode === 'displayable') {\n\t\t\treturn { advance: true };\n\t\t}\n\n\t\treturn { advance: false };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tthis.containerSelector = `[data-component=\"canvas-container\"][canvas=\"${this.name}\"][mode=\"${this.mode}\"]`;\n\t\tthis.element = document.querySelector(this.containerSelector);\n\n\t\tif (this.element === null) {\n\t\t\tthrow new Error(`Canvas element \"${this.name}\" (mode: ${this.mode}) not found in the DOM.`);\n\t\t}\n\n\t\tthis.object = this.element.props.object;\n\t}\n\n\toverride async revert(): Promise {\n\t\tawait Util.callAsync(this.element.props.object.stop, this.engine, this.element.layers, this.element.props.object.props, this.element.props.object.state, this.element);\n\t\tthis.engine.element().find(this.containerSelector).remove();\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tlet foundState = false;\n\t\tthis.engine.state({\n\t\t\tcanvas: this.engine.state('canvas').filter((item: string) => {\n\t\t\t\tif (!foundState) {\n\t\t\t\t\tconst [, , name, mode] = item.split(' ');\n\t\t\t\t\tif (name === this.name && mode === this.mode) {\n\t\t\t\t\t\tfoundState = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})\n\t\t});\n\n\t\tconst history = this.engine.history('canvas') as string[];\n\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\tconst [, , name] = history[i].split(' ');\n\t\t\tif (name === this.name) {\n\t\t\t\thistory.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Canvas;", + "import Action from '../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class Choice extends Action {\n static override id = 'Choice';\n\n static override blocking = false;\n\n static override async setup(): Promise {\n this.engine.globals({\n _CurrentChoice: [],\n _ChoiceTimer: [],\n _choice_pending_rollback: [],\n _choice_just_rolled_back: [],\n });\n\n this.engine.history('choice');\n }\n\n static override async bind(): Promise {\n const engine = this.engine;\n // Bind the click event on data-do elements. This property is used for\n // every choice button.\n this.engine.on('click', '[data-choice]:not([disabled])', function (this: HTMLElement, event: Event) {\n engine.debug.debug('Registered Click on Choice Button');\n event.stopImmediatePropagation();\n event.stopPropagation();\n event.preventDefault();\n\n let doAction = this.dataset.do;\n\n // Check that the data property was not created with\n // a null property\n if (doAction == 'null') {\n Choice.blocking = false;\n return;\n }\n\n // Remove all the choices\n engine.element().find('choice-container').remove();\n\n const choice = this.dataset.choice;\n\n const currentChoice = (engine.global('_CurrentChoice') as unknown[]).pop() as { Choice: Record void }> } | undefined;\n const current = currentChoice?.Choice;\n\n if (current && typeof current.Timer !== 'undefined') {\n const timer = (engine.global('_ChoiceTimer') as unknown[]).pop() as HTMLElement & { props?: { timer: ReturnType }; element?: () => { remove: () => void } } | undefined;\n (engine.global('_choice_pending_rollback') as boolean[]).pop();\n if (typeof timer !== 'undefined' && timer.props) {\n clearTimeout(timer.props.timer);\n if (timer.parentNode !== null && timer.element) {\n timer.element().remove();\n }\n }\n }\n\n const currentChoiceExists = current && typeof choice !== 'undefined' && typeof current[choice] !== 'undefined';\n\n if (currentChoiceExists) {\n doAction = current[choice].Do;\n }\n\n const run = async () => {\n if (typeof doAction === 'string' && typeof choice === 'string') {\n const result = await engine.run(doAction);\n\n Choice.blocking = false;\n engine.history('choice').push(choice);\n\n return result;\n }\n };\n\n if (currentChoiceExists && typeof current[choice].onChosen === 'function') {\n Util.callAsync(current[choice].onChosen, engine).then(() => {\n return run();\n }).catch((e) => {\n Choice.blocking = false;\n engine.debug.error(e);\n });\n\n return;\n }\n\n run().catch((e) => {\n Choice.blocking = false;\n engine.debug.error(e);\n });\n });\n }\n\n static override async reset(): Promise {\n const engine = this.engine;\n engine.globals({\n _CurrentChoice: [],\n _ChoiceTimer: [],\n\n _choice_pending_rollback: [],\n _choice_just_rolled_back: [],\n });\n }\n\n static override async afterRevert(): Promise {\n const engine = this.engine;\n // When a choice gets reverted, it pushes a `true` value to this global variable.\n // As soon as it gets reverted, this function is run and it pops the `true` out of\n // the array, meaning it was just reverted and the choice should be showing on screeen again.\n if (engine.global('_choice_just_rolled_back').pop()) {\n return;\n }\n\n // If the player reverts once more while the choice is being shown, then we'll reach this part\n // and we can clean up any variables we need to.\n if (engine.global('_choice_pending_rollback').pop()) {\n engine.global('_ChoiceTimer').pop();\n }\n }\n\n static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise {\n if (Choice.blocking) {\n throw new Error('Choice is waiting for input');\n }\n }\n\n static override async willRollback(): Promise {\n Choice.blocking = false;\n }\n\n static override matchObject(statement: any): boolean {\n return typeof statement.Choice !== 'undefined';\n }\n\n statement: any;\n result: ActionApplyResult; // Not strictly used as property but was in original\n\n constructor(statement: any) {\n super();\n\n this.statement = statement.Choice;\n\n this.result = { advance: false };\n }\n\n override async apply({ updateLog = true } = {}): Promise {\n Choice.blocking = true;\n\n // Save a reference to the choice object globally. Since the choice buttons\n // are set a data-do property to know what the choice should do, it is\n // limited to a string and thus object or function actions would not be\n // able to be used in choices.\n this.engine.global('_CurrentChoice').push(this._statement);\n\n const promises: Promise[] = [];\n\n // Go over all the objects defined in the choice object which should be\n // call the options to chose from or the string to show as dialog\n for (const i in this.statement) {\n const choice = this.statement[i];\n\n // Check if the option is an object (a option to choose from) or\n // if it's text (dialog to be shown)\n if (typeof choice == 'object') {\n if (i === 'Timer') {\n continue;\n }\n\n this.statement[i]._key = i;\n\n // Check if the current option has a condition to be shown\n if (typeof choice.Condition !== 'undefined' && choice.Condition !== '') {\n promises.push(\n new Promise((resolve) => {\n // First check if the condition is met before we add the button\n this.engine.assertAsync(this.statement[i].Condition, this.engine).then(() => {\n resolve(this.statement[i]);\n }).catch(() => {\n resolve(undefined);\n });\n })\n );\n } else {\n promises.push(Promise.resolve(this.statement[i]));\n }\n }\n }\n\n const choices = await Promise.all(promises);\n const element = document.createElement('choice-container');\n\n // Check if the choice object defined a list of class names\n const classes = typeof this.statement.Class === 'string' ? this.statement.Class.trim() : '';\n\n (element as any).setProps({\n choices: choices.filter(c => typeof c !== 'undefined'),\n classes\n });\n\n const dialog = this.statement.Dialog;\n const timer = this.statement.Timer;\n const textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0);\n\n if (typeof dialog === 'string') {\n // If there's a dialog, we'll wait until showing that up to show\n // the choices, in order to avoid showing the choices in an incorrect\n // format if the dialog was NVL or not\n const action = this.engine.prepareAction(dialog, { cycle: 'Application' }) as ActionInstance | null;\n if (action !== null) {\n await action.willApply();\n await action.apply({ updateLog });\n await action.didApply();\n }\n }\n\n const textBoxEl = textBox as HTMLElement & { props?: { mode: string }; content?: (name: string) => { append: (el: HTMLElement) => void } };\n if (textBoxEl?.props?.mode === 'nvl' && textBoxEl.content) {\n textBoxEl.content('text').append(element);\n } else {\n this.engine.element().find('[data-screen=\"game\"]').append(element);\n }\n\n if (typeof timer === 'object') {\n const timer_display = document.createElement('timer-display');\n (timer_display as any).setProps(timer);\n this.engine.global('_ChoiceTimer').push(timer_display);\n this.engine.global('_choice_pending_rollback').push(true);\n this.engine.element().find('[data-screen=\"game\"]').prepend(timer_display);\n }\n }\n\n override async willRevert(): Promise {\n if (this.engine.history('choice').length > 0) {\n const choice = this.engine.history('choice')[this.engine.history('choice').length - 1];\n if (typeof this.statement[choice] !== 'undefined') {\n\n // Check if the choice had an onChosen function with it's matching\n // onRevert functionality, or if no onChosen function was provided\n // which are the only cases where it can be reverted.\n const functionReversible = (typeof this.statement[choice].onRevert === 'function' && typeof this.statement[choice].onChosen === 'function') || typeof this.statement[choice].onChosen !== 'function';\n\n if (functionReversible) {\n return Promise.resolve();\n } else {\n return Promise.reject('The choice taken is not reversible because it did not defined a `onRevert` function.');\n }\n }\n }\n return Promise.reject('Choice history was empty');\n }\n\n override async revert(): Promise {\n const choice = this.engine.history('choice')[this.engine.history('choice').length - 1];\n\n // First, revert the action that was chosen\n const chosenOption = this.statement[choice];\n if (chosenOption && typeof chosenOption.Do === 'string') {\n await this.engine.revert(chosenOption.Do, false);\n }\n if (chosenOption && typeof chosenOption.onRevert === 'function') {\n await Util.callAsync(chosenOption.onRevert, this.engine);\n }\n\n // Clean up timer if it exists\n if (typeof this.statement.Timer === 'object' && this.statement.Timer !== null) {\n this.engine.global('_ChoiceTimer').pop();\n }\n\n // If there was a dialog, revert it first\n if (typeof this.statement.Dialog === 'string') {\n const dialogLog = this.engine.component('dialog-log') as { instances?: (callback: (instance: { pop: () => void }) => void) => void } | undefined;\n if (typeof dialogLog !== 'undefined' && dialogLog.instances) {\n dialogLog.instances((instance) => instance.pop());\n }\n\n // // Revert the dialog that was shown with the choice\n // const dialogAction = this.engine.prepareAction (this.statement.Dialog, { cycle: 'Revert' });\n // return dialogAction.willRevert ().then (() => {\n // \treturn dialogAction.revert ().then (() => {\n // \t\treturn dialogAction.didRevert ();\n // \t});\n // });\n }\n\n // Remove any existing choice container before re-applying\n this.engine.element().find('choice-container').remove();\n\n // Now re-apply the choice to show it again\n const action = this.engine.prepareAction(this._statement as unknown as string | Record, { cycle: 'Application' }) as ActionInstance | null;\n if (action !== null) {\n await action.willApply();\n await action.apply();\n await action.didApply({ updateHistory: false, updateState: false });\n }\n }\n\n override async didRevert(): Promise {\n this.engine.global('_choice_just_rolled_back').push(true);\n this.engine.history('choice').pop();\n return { advance: false, step: false };\n }\n}\n\nexport default Choice;", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Clear extends Action {\n\tstatic override id = 'Clear';\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('clear');\n\t}\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'clear';\n\t}\n\n\toverride async apply(): Promise {\n const dialogAction = this.engine.action('Dialog');\n\n if (dialogAction) {\n dialogAction.reset({ keepNVL: true, saveNVL: true });\n }\n\t}\n\n\toverride async didApply(): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as any;\n\n\t\tthis.engine.history('clear').push(textBox.props.mode);\n\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tif (this.engine.history('clear').length > 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tthrow new Error('No items left on the clear history to revert it.');\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst last = this.engine.history('clear').pop();\n\n\t\tif (last === 'nvl') {\n\t\t\tthis.engine.global('_should_restore_nvl', true);\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Clear;", + "import Action from '../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { FancyError } from '../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Conditional extends Action {\n static override id = 'Conditional';\n static override blocking = false;\n\n static override async setup(): Promise {\n // In here we'll save up what branch was taken every time we execute a\n // conditional.\n this.engine.history('conditional');\n\n // Whether a conditional that was run is pending rollback on the next time\n // a revert is issued.\n this.engine.global('_conditional_pending_rollback', []);\n\n // Whether a conditional was just reverted\n this.engine.global('_conditional_just_rolled_back', []);\n }\n\n static override async reset(): Promise {\n // Whether a conditional that was run is pending rollback on the next time\n // a revert is issued.\n this.engine.global('_conditional_pending_rollback', []);\n\n // Whether a conditional was just reverted\n this.engine.global('_conditional_just_rolled_back', []);\n }\n\n static override matchObject(statement: any): boolean {\n return typeof statement.Conditional !== 'undefined';\n }\n\n static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise {\n if (Conditional.blocking) {\n throw new Error('Contitional is still running action');\n }\n }\n\n static override async willRollback(): Promise {\n Conditional.blocking = false;\n }\n\n static override async afterRevert(): Promise {\n // Prevent modifying the history if the action that was just reverted was\n // this conditional\n const justRolledBack = this.engine.global('_conditional_just_rolled_back');\n if (justRolledBack.pop()) {\n return Promise.resolve();\n }\n\n const pendingRollback = this.engine.global('_conditional_pending_rollback');\n while (pendingRollback.pop()) {\n const currentStatement = this.engine.label()[this.engine.state('step') as number] as { Conditional?: object } | undefined;\n if (typeof currentStatement !== 'undefined' && currentStatement !== null) {\n if (typeof currentStatement.Conditional === 'object') {\n this.engine.history('conditional').pop();\n }\n }\n }\n }\n\n static override async beforeRun(): Promise {\n // const restoringState = this.engine.global ('_restoring_state');\n\n // if (!restoringState) {\n const pendingRollback = this.engine.global('_conditional_pending_rollback');\n pendingRollback.pop();\n // }\n }\n\n statement: any;\n branch: string;\n result: { advance: boolean; step: boolean };\n\n constructor(statement: any) {\n super();\n this.statement = statement.Conditional;\n this.branch = '';\n this.result = { advance: true, step: false };\n }\n\n override async apply(): Promise {\n // Call the condition function. Since the function might use a\n // Promise.reject () to return as false, we also define a catch\n // block to run the False branch of the condition.\n try {\n let returnValue = await Util.callAsync(this.statement.Condition, this.engine);\n Conditional.blocking = true;\n\n if (typeof returnValue === 'number') {\n if (returnValue < 0) {\n FancyError.show('action:conditional:negative_value', {\n value: returnValue,\n availableBranches: Object.keys(this.statement).filter(b => b !== 'Condition')\n });\n throw new Error('Invalid negative value');\n }\n\n if (!Number.isInteger(returnValue)) {\n FancyError.show('action:conditional:non_integer_value', {\n value: returnValue,\n availableBranches: Object.keys(this.statement).filter(b => b !== 'Condition')\n });\n throw new Error('Invalid non-integer value');\n }\n\n returnValue = `${returnValue}`;\n }\n\n // Check if the function returned true so we run the True branch\n // of the conditional. If false is returned, we run the False\n // branch of the conditional and if a string is returned, we use\n // it as a key so we run the branch that has that key\n if (returnValue === true) {\n this.branch = 'True';\n const runResult = await this.engine.run(this.statement.True);\n this.result = { ...runResult, step: false };\n Conditional.blocking = false;\n } else if (typeof returnValue === 'string') {\n const branch = this.statement[returnValue];\n\n if (typeof branch === 'undefined') {\n FancyError.show('action:conditional:branch_not_found', {\n branch: returnValue,\n availableBranches: Object.keys(this.statement).filter(b => b !== 'Condition')\n });\n throw new Error('Non existent branch');\n }\n\n this.branch = returnValue;\n const runResult = await this.engine.run(branch);\n this.result = { ...runResult, step: false };\n Conditional.blocking = false;\n } else {\n this.branch = 'False';\n const runResult = await this.engine.run(this.statement.False);\n this.result = { ...runResult, step: false };\n Conditional.blocking = false;\n }\n } catch (e) {\n this.branch = 'False';\n const runResult = await this.engine.run(this.statement.False);\n this.result = { ...runResult, step: false };\n Conditional.blocking = false;\n }\n }\n\n override async didApply({ updateHistory = true } = {}): Promise {\n // const restoringState = this.engine.global ('_restoring_state');\n\n // if (!restoringState) {\n if (!this.result.advance) {\n const pendingRollback = this.engine.global('_conditional_pending_rollback') as boolean[];\n pendingRollback.push(true);\n }\n\n if (updateHistory) {\n (this.engine.history('conditional') as string[]).push(this.branch);\n }\n // }\n\n Conditional.blocking = false;\n\n return { advance: false };\n }\n\n override async willRevert(): Promise {\n const conditionalHistory = this.engine.history('conditional') as string[];\n if (conditionalHistory.length > 0) {\n const conditional = conditionalHistory[conditionalHistory.length - 1];\n if (typeof this.statement[conditional] !== 'undefined') {\n return Promise.resolve();\n }\n }\n throw new Error('Conditional history was empty.');\n }\n\n override async revert(): Promise {\n const conditionalHistory = this.engine.history('conditional') as string[];\n const conditional = conditionalHistory[conditionalHistory.length - 1];\n\n Conditional.blocking = true;\n\n const revertResult = await this.engine.revert(this.statement[conditional]);\n if (revertResult) {\n this.result = revertResult;\n }\n\n Conditional.blocking = false;\n }\n\n override async didRevert(): Promise {\n const pendingRollback = this.engine.global('_conditional_pending_rollback');\n const justRolledBack = this.engine.global('_conditional_just_rolled_back');\n\n pendingRollback.push(true);\n justRolledBack.push(true);\n\n return { advance: false, step: false };\n }\n}\n\nexport default Conditional;", + "import { $_ } from '@aegis-framework/artemis';\nimport Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\nimport TypeWriter from './../components/type-writer';\nimport type TextBoxComponent from './../components/text-box';\n\nexport class Dialog extends Action {\n\tstatic override id = 'Dialog';\n\n\tstatic override async shouldProceed() {\n\t\tconst element = this.engine.element();\n\t\t// Check if the type animation has finished and the Typed object still exists\n\t\tlet component: TypeWriter | undefined;\n\n\t\tconst centeredDialog = element.find('[data-component=\"centered-dialog\"]');\n\n\t\tif (centeredDialog.exists()) {\n\t\t\tcomponent = centeredDialog.find('[data-content=\"wrapper\"]').get(0) as TypeWriter | undefined;\n\t\t} else {\n\t\t\t// In NVL mode, get the last (most recent) type-writer which is the active one\n\t\t\tconst typeWriters = element.find('type-writer');\n\t\t\tif (typeWriters.exists()) {\n\t\t\t\tcomponent = typeWriters.last().get(0) as TypeWriter | undefined;\n\t\t\t}\n\t\t}\n\n\t\t// In NVL mode, there might not be a type-writer element in the text-box\n\t\tif (!component) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst hasStrings = (component.state?.strings?.length || 0) > 0;\n\n\t\tif (!this.engine.global('finished_typing') && hasStrings) {\n\t\t\tthis.engine.stopTyping(component);\n\t\t\tthrow new Error('TypeWriter effect has not finished.');\n\t\t}\n\t}\n\n\tstatic override async willProceed(): Promise {\n\t\tconst centeredDialog = this.engine.element().find('[data-component=\"centered-dialog\"]');\n\n\t\tif (centeredDialog.exists()) {\n\t\t\tcenteredDialog.remove();\n\t\t}\n\n\t\tthis.engine.global('_dialog_pending_revert', false);\n\t}\n\n\tstatic override async willRollback(): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBoxComponent | undefined;\n\n\t\tthis.engine.global('finished_typing', true);\n\n\t\tif (textBox?.show) {\n\t\t\ttextBox.show();\n\t\t}\n\n\t\tconst dialogLog = this.engine.component('dialog-log') as { instances?: (callback: (instance: { pop: () => void }) => void) => void } | undefined;\n\n\t\tconst centeredDialog = this.engine.element().find('[data-component=\"centered-dialog\"]');\n\t\tif (centeredDialog.isVisible()) {\n\t\t\tcenteredDialog.remove();\n\n\t\t\tif (textBox?.show) {\n\t\t\t\ttextBox.show();\n\t\t\t}\n\t\t}\n\n\t\tthis.engine.element().find('[data-ui=\"who\"]').html('');\n\n\t\tif (typeof dialogLog !== 'undefined' && this.engine.global('_dialog_pending_revert') === true && dialogLog.instances) {\n\t\t\tdialogLog.instances((instance) => instance.pop());\n\t\t\tthis.engine.global('_dialog_pending_revert', false);\n\t\t}\n\t}\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.globals({\n\t\t\tfinished_typing: false,\n\t\t\t_dialog_pending_revert: false,\n\t\t});\n\n\t\t// The NVL mode has its own history so that when going back, all dialogs\n\t\t// that were shown on screen can be shown again instead of just showing\n\t\t// the last one.\n\t\tthis.engine.history('nvl');\n\t}\n\n\tstatic override async bind(selector: string): Promise {\n\t\t// Add listener for the text speed setting (TypeWriter reads from preference directly)\n\t\tconst engine = this.engine;\n\t\tconst clamp = (num: number, min: number, max: number): number => Math.min(Math.max(num, min), max);\n\t\t$_(`${selector} [data-action=\"set-text-speed\"]`).on('change mouseover', function (this: HTMLInputElement) {\n\t\t\tconst textbox = engine.element().find('[data-component=\"text-box\"] [data-component=\"type-writer\"]').get(0) as TypeWriter | undefined;\n\t\t\tconst maxTextSpeed = engine.setting('maxTextSpeed') as number;\n\t\t\tconst minPlaySpeed = engine.setting('minTextSpeed') as number;\n\t\t\tconst value = clamp(parseInt(this.value), minPlaySpeed, maxTextSpeed);\n\n\t\t\tengine.preference('TextSpeed', value);\n\t\t\ttextbox?.setState({ config: { typeSpeed: value } });\n\t\t});\n\n\t\t// Detect scroll on the text element to remove the unread class used when\n\t\t// there's text not being shown in NVL mode.\n\t\t$_(`${selector} [data-component=\"text-box\"] [data-content=\"text\"]`).on('scroll', () => {\n\t\t\tconst text_box = this.engine.element().find('[data-component=\"text-box\"]');\n\t\t\tif (text_box.exists()) {\n\t\t\t\tconst element = text_box.get(0) as any;\n\t\t\t\tif (typeof element.checkUnread === 'function') {\n\t\t\t\t\telement.checkUnread();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic override async init(selector: string): Promise {\n\t\t// Remove the Text Speed setting if the type animation was disabled\n\t\tif (this.engine.setting('TypeAnimation') === false) {\n\t\t\t$_(`${selector} [data-settings=\"text-speed\"]`).hide();\n\t\t}\n\n\t\tthis.engine.setting('maxTextSpeed', parseInt(($_(`${selector} [data-action=\"set-text-speed\"]`).attribute('max') || '0')));\n\t\tthis.engine.setting('minTextSpeed', parseInt(($_(`${selector} [data-action=\"set-text-speed\"]`).attribute('min') || '0')));\n\t}\n\n\tstatic override async reset({ keepNVL = false, saveNVL = false }: { keepNVL?: boolean; saveNVL?: boolean } = {}): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as any;\n\n\t\tif (!textBox) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (saveNVL === true && textBox.props.mode === 'nvl') {\n\t\t\tthis.engine.history('nvl').push(textBox.content('dialog').html());\n\t\t}\n\n\t\tif (keepNVL !== true) {\n\t\t\ttextBox.setProps({ mode: 'adv' });\n\t\t}\n\n\n\t\tthis.engine.element().find('[data-component=\"text-box\"]').data('speaking', '');\n\n\t\tthis.engine.element().find('[data-ui=\"who\"]').style('color', '');\n\n\t\tthis.engine.element().find('[data-ui=\"who\"]').html('');\n\t\tthis.engine.element().find('[data-ui=\"say\"]').html('');\n\n\t\tthis.engine.element().find('[data-ui=\"face\"]').attribute('src', '');\n\t\tthis.engine.element().find('[data-ui=\"face\"]').hide();\n\n\t\t// Remove all classes from the text-box\n\t\tArray.from(textBox.classList).forEach((c: any) => textBox.classList.remove(c));\n\n\t\t// Remove all classes from the centered-dialog\n\t\tconst centeredDialog = this.engine.element().find('[data-component=\"centered-dialog\"]').get(0);\n\n\t\tif (centeredDialog) {\n\t\t\tArray.from(centeredDialog.classList).forEach((c: any) => centeredDialog.classList.remove(c));\n\t\t}\n\t}\n\n\tstatic override matchString(): boolean {\n\t\treturn true;\n\t}\n\n\tdialog: string;\n\tclearDialog: string;\n\tnvl: boolean;\n\tclasses: string[];\n\tcharacter: any;\n\timage: string | undefined;\n\texpression: string | undefined;\n\tid: string = '';\n\n\tconstructor(args: string[]) {\n\t\tsuper();\n\t\tconst [character, ...dialog] = args;\n\n\t\t// id:expression:class Dialog\n\t\tconst [id, expression, classes] = character.split(':');\n\n\t\tthis.dialog = dialog.join(' ');\n\t\tthis.clearDialog = TypeWriter.stripActionMarkers(this.dialog);\n\n\t\tthis.nvl = false;\n\n\t\tthis.classes = (classes && classes.trim() !== '') ? classes.split('|') : [];\n\n\t\tif (typeof this.engine.character(id) !== 'undefined') {\n\t\t\tthis._setCharacter(id, expression);\n\t\t} else if (id === 'centered') {\n\t\t\tthis.id = 'centered';\n\t\t} else {\n\t\t\tthis.id = '_narrator';\n\n\t\t\tif (typeof this.engine.character('_narrator') !== 'undefined') {\n\t\t\t\tthis._setCharacter('_narrator', expression);\n\t\t\t}\n\n\t\t\tif (id === 'nvl') {\n\t\t\t\tthis.nvl = true;\n\t\t\t} else if (id === 'narrator') {\n\t\t\t\t// Do nothing, just consume 'narrator'\n\t\t\t} else {\n\t\t\t\tthis.dialog = `${character} ${this.dialog}`;\n\t\t\t\tthis.clearDialog = `${character} ${this.clearDialog}`;\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tthis.engine.element().find('[data-character]').removeClass('focus');\n\t\tthis.engine.element().find('[data-ui=\"face\"]').hide();\n\n\t\tthis.engine.element().find('[data-ui=\"who\"]').html('');\n\n\t\tthis.engine.element().find('[data-component=\"text-box\"]').removeData('expression');\n\t}\n\n\t_handleCustomClasses(element: HTMLElement | undefined): void {\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The unread is a special one used by the nvl mode so we ignore that\n\t\tArray.from(element.classList)\n\t\t\t.filter(c => c !== 'unread')\n\t\t\t.forEach(cls => element.classList.remove(cls));\n\n\t\tthis.classes.forEach(className => element.classList.add(className));\n\t}\n\n\t_setCharacter(id: string, expression: string | undefined): void {\n\t\tthis.character = this.engine.character(id);\n\n\t\tthis.id = id;\n\n\t\tif (typeof this.character.nvl !== 'undefined') {\n\t\t\tthis.nvl = this.character.nvl;\n\t\t}\n\n\t\tif (typeof expression !== 'undefined') {\n\t\t\tif (typeof this.character.expressions !== 'undefined') {\n\t\t\t\tthis.image = this.character.expressions[expression];\n\t\t\t\tthis.expression = expression;\n\t\t\t}\n\n\t\t} else if (typeof this.character.default_expression !== 'undefined') {\n\t\t\tif (typeof this.character.expressions[this.character.default_expression] !== 'undefined') {\n\t\t\t\tthis.image = this.character.expressions[this.character.default_expression];\n\t\t\t} else {\n\t\t\t\tthis.image = this.character.default_expression;\n\t\t\t}\n\t\t\tthis.expression = 'default';\n\t\t}\n\t}\n\n\tasync displayCenteredDialog(dialog: string, clearDialog: string, character: string, animation: boolean): Promise {\n\t\tconst element = document.createElement('centered-dialog') as any;\n\t\tconst gameScreen = this.engine.element().find('[data-screen=\"game\"]');\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]');\n\t\tconst writer = textBox.find('type-writer').get(0) as TypeWriter | undefined;\n\n\t\tthis._handleCustomClasses(element);\n\n\t\t// If the text-box's typewriter exists, set it to ignore\n\t\t// (in NVL mode, there might not be a type-writer element)\n\t\tif (writer) {\n\t\t\twriter.setState({ ignore: true, strings: [] });\n\t\t}\n\n\t\ttextBox.hide();\n\t\tgameScreen.append(element);\n\n\t\telement.ready(() => {\n\t\t\tconst wrapper = element.content('wrapper');\n\t\t\tconst wrapperElement = wrapper?.get(0) as TypeWriter | undefined;\n\n\t\t\tif (wrapperElement) {\n\t\t\t\twrapperElement.setContent(dialog, animation);\n\t\t\t}\n\t\t});\n\t}\n\n\tdisplayNvlDialog(dialog: string, clearDialog: string, character: string, animation: boolean): void {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as any;\n\n\t\tif (!textBox) {\n\t\t\tthis.engine.debug.error('Text box component not found');\n\t\t\treturn;\n\t\t}\n\n\t\tif (textBox.props?.mode !== 'nvl') {\n\t\t\tDialog.reset();\n\t\t\t// NOTE: setProps does NOT trigger a re-render — it only updates the\n\t\t\t// mode attribute so CSS (text-box[mode=\"nvl\"]) applies. The ADV-mode\n\t\t\t// type-writer element persists and serves as the container for NVL\n\t\t\t// dialog entries appended to [data-ui=\"say\"].\n\t\t\ttextBox.setProps({ mode: 'nvl' });\n\n\t\t\t// We need to re-apply any custom classes here because the reset clears them\n\t\t\tthis._handleCustomClasses(textBox);\n\t\t}\n\n\t\t// Remove contents from the dialog area.\n\t\tconst previous = this.engine.element().find('[data-component=\"text-box\"]').data('speaking');\n\t\tthis.engine.element().find('[data-component=\"text-box\"]').data('speaking', character);\n\n\t\t// Determine if we should animate (respects NVLTypeAnimation setting)\n\t\tconst shouldAnimate = animation && this.engine.setting('NVLTypeAnimation') === true;\n\n\t\t// Build the dialog entry HTML\n\t\tif (character !== '_narrator') {\n\t\t\tconst charData = this.engine.character(character);\n\t\t\tif (previous !== character) {\n\t\t\t\tthis.engine.element().find('[data-ui=\"say\"] [data-spoke]').last().addClass('nvl-dialog-footer');\n\t\t\t\tthis.engine.element().find('[data-ui=\"say\"]').append(`
${this.engine.replaceVariables(charData?.name ?? '')}:
`);\n\t\t\t} else {\n\t\t\t\tthis.engine.element().find('[data-ui=\"say\"]').append(`
`);\n\t\t\t}\n\t\t} else {\n\t\t\tif (previous !== character) {\n\t\t\t\tthis.engine.element().find('[data-ui=\"say\"] [data-spoke]').last().addClass('nvl-dialog-footer');\n\t\t\t}\n\t\t\tthis.engine.element().find('[data-ui=\"say\"]').append(`
`);\n\t\t}\n\n\t\t// Wait for the new type-writer component to be fully mounted before\n\t\t// setting its content. Using ready() is more reliable than\n\t\t// requestAnimationFrame since Pandora's connectedCallback is async.\n\t\tconst elements = $_('[data-ui=\"say\"] [data-spoke] type-writer');\n\t\tconst last = elements.last().get(0) as TypeWriter | undefined;\n\n\t\tif (last && typeof (last as any).ready === 'function') {\n\t\t\t(last as any).ready(() => {\n\t\t\t\tlast.setContent(dialog, shouldAnimate);\n\t\t\t});\n\t\t} else if (last) {\n\t\t\tlast.setContent(dialog, shouldAnimate);\n\t\t}\n\n\t\tconst text_box = this.engine.element().find('[data-component=\"text-box\"]');\n\t\tif (text_box.exists()) {\n\t\t\tconst textContent = text_box.find('[data-content=\"text\"]').get(0);\n\n\t\t\tif (textContent) {\n\t\t\t\ttextContent.scrollTop = textContent.scrollHeight;\n\t\t\t}\n\n\t\t\tconst element = text_box.get(0) as any;\n\t\t\tif (typeof element.checkUnread === 'function') {\n\t\t\t\telement.checkUnread();\n\t\t\t}\n\t\t}\n\n\t}\n\n\tasync displayDialog(dialog: string, clearDialog: string, character: string, animation: boolean): Promise {\n\t\tif (this.nvl === false) {\n\t\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as any;\n\n\t\t\tif (!textBox) {\n\t\t\t\tthis.engine.debug.error('Text box component not found');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (textBox.props?.mode === 'nvl' && this._cycle === 'Application' && this.engine.global('_restoring_state') === false) {\n\t\t\t\tthis.engine.history('nvl').push(textBox.content('dialog').html());\n\t\t\t}\n\n\t\t\t// NOTE: setProps does NOT trigger a re-render — it only updates the\n\t\t\t// mode attribute on the element so CSS (text-box[mode=\"adv\"]) applies.\n\t\t\t// The type-writer child persists across mode changes by design.\n\t\t\ttextBox.setProps({ mode: 'adv' });\n\n\t\t\t// Destroy any active NVL entry type-writers before clearing to prevent\n\t\t\t// leaked animation frames from detached elements.\n\t\t\tthis.engine.element().find('[data-ui=\"say\"] [data-spoke] type-writer').each((tw: any) => {\n\t\t\t\tif (typeof tw.destroy === 'function') {\n\t\t\t\t\ttw.destroy();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Remove contents from the dialog area.\n\t\t\tthis.engine.element().find('[data-ui=\"say\"]').html('');\n\t\t\tthis.engine.element().find('[data-component=\"text-box\"]').data('speaking', character);\n\n\t\t\t// Find the type-writer component inside the text-box (ADV mode has it)\n\t\t\tconst typeWriter = this.engine.element().find('[data-component=\"text-box\"] type-writer').get(0) as TypeWriter | undefined;\n\t\t\tif (typeWriter) {\n\t\t\t\ttypeWriter.setContent(dialog, animation);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.displayNvlDialog(dialog, clearDialog, character, animation);\n\t\t}\n\t}\n\n\n\tcharacterDialog(): Promise {\n\t\t// Check if the character has a name to show\n\t\tif (typeof this.character.name !== 'undefined' && !this.nvl) {\n\t\t\tthis.engine.element().find('[data-ui=\"who\"]').html(this.engine.replaceVariables(this.character.name));\n\t\t}\n\n\t\tlet directory = this.character.directory;\n\n\t\tif (typeof directory == 'undefined') {\n\t\t\tdirectory = '';\n\t\t} else {\n\t\t\tdirectory += '/';\n\t\t}\n\n\t\t// Focus the character's sprite and colorize it's name with the defined\n\t\t// color on its declaration\n\t\tthis.engine.element().find(`[data-character=\"${this.id}\"]`).addClass('focus');\n\n\t\tif (typeof this.character.color === 'string' && this.character.color !== '') {\n\t\t\tthis.engine.element().find('[data-ui=\"who\"]').style('color', this.character.color);\n\t\t} else {\n\t\t\tthis.engine.element().find('[data-ui=\"who\"]').style('color', 'var(--character-name-color)');\n\t\t}\n\t\t// Check if an expression or face image was used and if it exists and\n\t\t// display it\n\t\tif (typeof this.image !== 'undefined' && !this.nvl) {\n\t\t\tconst path = `${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').characters}/${directory}${this.image}`;\n\t\t\tthis.engine.element().find('[data-ui=\"face\"]').attribute('src', path);\n\t\t\tthis.engine.element().find('[data-ui=\"face\"]').show();\n\t\t\tthis.engine.element().find('[data-component=\"text-box\"]').data('expression', this.expression as string);\n\t\t}\n\n\t\t// Check if the character object defines if the type animation should be used.\n\t\tif (typeof this.character.type_animation !== 'undefined') {\n\t\t\treturn this.displayDialog(this.dialog, this.clearDialog, this.id, this.character.type_animation);\n\t\t} else {\n\t\t\treturn this.displayDialog(this.dialog, this.clearDialog, this.id, true);\n\t\t}\n\t}\n\n\toverride async apply({ updateLog = true } = {}): Promise {\n\t\ttry {\n\t\t\tconst dialogLog = this.engine.component('dialog-log') as { instances?: () => { each: (cb: (instance: { write: (data: { id: string; character: string; dialog: string }) => void }) => void) => void } } | undefined;\n\t\t\tif (typeof dialogLog !== 'undefined' && dialogLog.instances) {\n\t\t\t\tif (this._cycle === 'Application' && updateLog === true) {\n\t\t\t\t\tdialogLog.instances().each((instance) => instance.write({\n\t\t\t\t\t\tid: this.id,\n\t\t\t\t\t\tcharacter: this.character,\n\t\t\t\t\t\tdialog: this.clearDialog\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tthis.engine.debug.error(e);\n\t\t}\n\n\t\tconst textBoxElement = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBoxComponent | undefined;\n\t\tif (textBoxElement?.state?.hidden === true) {\n\t\t\tFancyError.show('action:dialog:textbox_hidden', {\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t}\n\n\t\tif (typeof this.character !== 'undefined') {\n\t\t\tthis._handleCustomClasses(textBoxElement);\n\t\t\t(textBoxElement as any)?.show();\n\t\t\treturn this.characterDialog();\n\t\t} else if (this.id === 'centered') {\n\t\t\treturn this.displayCenteredDialog(this.dialog, this.clearDialog, this.id, this.engine.setting('CenteredTypeAnimation'));\n\t\t} else {\n\t\t\tthis._handleCustomClasses(textBoxElement);\n\t\t\t(textBoxElement as any)?.show();\n\t\t\treturn this.displayDialog(this.dialog, this.clearDialog, '_narrator', this.engine.setting('NarratorTypeAnimation'));\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tthis.engine.global('_dialog_pending_revert', true);\n\t\treturn { advance: false };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tthis.engine.element().find('[data-character]').removeClass('focus');\n\t\tthis.engine.element().find('[data-ui=\"face\"]').hide();\n\t\tthis.engine.element().find('[data-ui=\"who\"]').html('');\n\t}\n\n\toverride async revert(): Promise {\n\t\t// Check if the dialog to replay is a NVL one or not\n\t\tif (this.nvl === true) {\n\t\t\t// Check if the NVL screen is currently being shown\n\t\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as any;\n\t\t\tthis._handleCustomClasses(textBox);\n\n\t\t\tif (textBox.props.mode === 'nvl') {\n\t\t\t\tif (this.engine.global('_should_restore_nvl') === true) {\n\t\t\t\t\tthis.engine.global('_should_restore_nvl', false);\n\t\t\t\t\tif (this.engine.history('nvl').length > 0) {\n\t\t\t\t\t\ttextBox.content('dialog').html(this.engine.history('nvl').pop());\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthrow new Error('No more dialogs on history from where to recover previous state.');\n\t\t\t\t}\n\n\t\t\t\t// Find all dialog entries and remove the last one\n\t\t\t\tconst dialogs = this.engine.element().find('[data-ui=\"say\"] [data-spoke]');\n\t\t\t\t// If it is being shown, then to go back, we need to remove the last dialog from it\n\t\t\t\tdialogs.last().remove();\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\t// If it is not shown right now, then we need to recover the dialogs\n\t\t\t\t// that were being shown the last time we hid it\n\t\t\t\tif (this.engine.history('nvl').length > 0) {\n\t\t\t\t\tif (this.engine.global('_should_restore_nvl') === true) {\n\t\t\t\t\t\tthis.engine.global('_should_restore_nvl', false);\n\t\t\t\t\t}\n\t\t\t\t\ttextBox.setProps({ mode: 'nvl' });\n\t\t\t\t\ttextBox.content('dialog').html(this.engine.history('nvl').pop());\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthrow new Error('No more dialogs on history from where to recover previous state.');\n\t\t\t}\n\t\t} else {\n\t\t\t// If the dialog was not NVL, we can simply show it as if we were\n\t\t\t// doing a simple application\n\t\t\tawait this.apply();\n\t\t\tawait this.didApply();\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: false, step: true };\n\t}\n\n}\n\nexport default Dialog;", + "import Action from './../lib/Action';\nimport { getDesktopBridge } from '../lib/DesktopBridge';\n\nexport class End extends Action {\n static override id = 'End';\n\n static override async bind(): Promise {\n this.engine.registerListener('end', {\n keys: 'shift+q',\n callback: () => {\n if (this.engine.global('playing')) {\n this.engine.alert('quit-warning', {\n message: 'Confirm',\n actions: [\n {\n label: 'Quit',\n listener: 'quit'\n },\n {\n label: 'Cancel',\n listener: 'dismiss-alert'\n }\n ]\n });\n }\n }\n });\n\n this.engine.registerListener('quit', {\n callback: () => {\n this.engine.dismissAlert('quit-warning');\n\n if (this.engine.global('playing') === true) {\n this.engine.run('end');\n return;\n }\n\n const bridge = getDesktopBridge();\n\n if (bridge) {\n bridge.send('quit-request');\n }\n }\n });\n }\n\n static override matchString([action]: string[]): boolean {\n return action === 'end';\n }\n\n override async willApply(): Promise {\n this.engine.hideScreens();\n }\n\n override async apply(): Promise {\n const engine = this.engine;\n\n engine.global('playing', false);\n\n engine.resetGame();\n engine.showMainScreen();\n\n\n const engineElement = engine.element();\n\n engineElement.find('[data-component=\"quick-menu\"]').removeClass('splash-screen');\n engineElement.find('[data-component=\"game-screen\"]').removeClass('splash-screen');\n }\n\n override async willRevert(): Promise {\n throw new Error('End action is not reversible');\n }\n}\n\nexport default End;", + "import Action from './../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { FancyError } from '../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class ReversibleFunction extends Action {\n\n\tstatic override id = 'Function';\n\n\tstatic override matchObject({ Function: fn }: any): boolean {\n\t\treturn typeof fn !== 'undefined';\n\t}\n\n\tstatement: any;\n\tshouldContinue: boolean;\n\n\tconstructor({ Function: fn }: any) {\n\t\tsuper();\n\t\tthis.statement = fn;\n\t\tthis.shouldContinue = true;\n\t}\n\n\toverride async apply(): Promise {\n\t\t// The function will be run asynchronously (No matter if its code isn't)\n\t\t// if the function returns false, the next statement will not be run\n\t\t// automatically and the game will wait for user interaction or some other\n\t\t// code inside the function to keep going. Any other returnValue will\n\t\t// allow the game to keep going right away.\n\t\ttry {\n\t\t\tconst returnValue = await Util.callAsync(this.statement.Apply, this.engine);\n\n\t\t\tif (returnValue === false) {\n\t\t\t\tthis.shouldContinue = false;\n\t\t\t}\n\t\t} catch (e: any) {\n\t\t\tconst context: Record = {\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t};\n\n\t\t\tif (typeof e === 'object') {\n\t\t\t\tcontext['Error Message'] = e.message;\n\t\t\t\tcontext['File Name'] = e.fileName;\n\t\t\t\tcontext['Line Number'] = e.lineNumber;\n\t\t\t} else if (typeof e === 'string') {\n\t\t\t\tcontext['Error Message'] = e;\n\t\t\t}\n\n\t\t\tFancyError.show('action:function:apply_error', context);\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\treturn { advance: this.shouldContinue };\n\t}\n\n\toverride async willApply(): Promise {\n\t\t// @Compatibility [<= v2.0.0-beta.15]\n\t\t// To make everything more standardized, we decided to change the\n\t\t// 'Reverse' key to 'Revert' which actually follows the language being\n\t\t// used in other actions and parts of Monogatari\n\t\tif (typeof this.statement.Reverse === 'function' && typeof this.statement.Revert !== 'function') {\n\t\t\tthis.statement.Revert = this.statement.Reverse;\n\t\t}\n\t}\n\n\toverride async revert(): Promise {\n\t\t// The function will be run asynchronously (No matter if its code isn't)\n\t\t// if the function returns false, the previous statement will not be run\n\t\t// automatically and the game will wait for user interaction or some other\n\t\t// code inside the function to keep going. Any other returnValue will\n\t\t// allow the game to keep going right away.\n\t\ttry {\n\t\t\tconst returnValue = await Util.callAsync(this.statement.Revert, this.engine);\n\n\t\t\tif (returnValue === false) {\n\t\t\t\tthis.shouldContinue = false;\n\t\t\t}\n\t\t} catch (e: any) {\n\t\t\tconst context: Record = {\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t};\n\n\t\t\tif (typeof e === 'object') {\n\t\t\t\tcontext['Error Message'] = e.message;\n\t\t\t\tcontext['File Name'] = e.fileName;\n\t\t\t\tcontext['Line Number'] = e.lineNumber;\n\t\t\t} else if (typeof e === 'string') {\n\t\t\t\tcontext['Error Message'] = e;\n\t\t\t}\n\n\t\t\tFancyError.show('action:function:revert_error', context);\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: this.shouldContinue, step: true };\n\t}\n}\n\nexport default ReversibleFunction;", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\nimport { Registry } from '@aegis-framework/pandora';\n\nexport class Gallery extends Action {\n\n\tstatic override id = 'Gallery';\n\n mode: 'unlock' | 'lock';\n\tasset: string;\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'gallery';\n\t}\n\n\tconstructor([action, mode, asset]: ['gallery', 'unlock' | 'lock', string]) {\n\t\tsuper();\n\t\tthis.mode = mode;\n\t\tthis.asset = asset;\n\t}\n\n\toverride async apply(): Promise {\n Registry.instances('gallery-screen', (instance: any) => {\n const unlocked = this.mode === 'unlock' ? [...instance.state.unlocked, this.asset] : instance.state.unlocked.filter((item: string) => item !== this.asset);\n instance.setState({ unlocked });\n });\n\t}\n\n\toverride async didApply(): Promise {\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tthis.mode = this.mode === 'lock' ? 'unlock' : 'lock';\n await this.apply();\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Gallery;", + "import Action from './../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class HideCanvas extends Action {\n\n\tstatic override id = 'Hide::Canvas';\n\n\tstatic override matchString([hide, type]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'canvas';\n\t}\n\n\tname: string;\n\tobject: any;\n\telement: any;\n\tclasses: string[];\n\n\tconstructor([hide, canvas, name, separator, ...classes]: string[]) {\n\t\tsuper();\n\n\t\tthis.name = name;\n\t\tconst canvasAction = this.engine.action('Canvas') as { objects?: (name: string) => Record } | undefined;\n\t\tthis.object = canvasAction?.objects?.(name) ?? null;\n\n\t\tthis.element = document.querySelector(`[data-component=\"canvas-container\"][canvas=\"${this.name}\"]`);\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (this.element === null) {\n\t\t\tFancyError.show('action:hide_canvas:not_shown', {\n\t\t\t\tname: this.name,\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error('Attempted to hide a canvas that was not being shown.');\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst { object } = this.element.props;\n\n\t\tawait Util.callAsync(object.stop, this.engine, this.element.layers, object.props, object.state, this.element);\n\n\t\tif (this.classes.length > 0) {\n\t\t\tconst el = this.element.element();\n\t\t\tel.addClass('animated');\n\t\t\tfor (const newClass of this.classes) {\n\t\t\t\tif (newClass) {\n\t\t\t\t\tel.addClass(newClass);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tel.data('visibility', 'invisible');\n\n\t\t\t// Remove item after a while to prevent it from showing randomly\n\t\t\t// when coming from a menu to the game because of its animation\n\t\t\tel.on('animationend', (e: Event) => {\n\t\t\t\tif ((e.target as HTMLElement).dataset.visibility === 'invisible') {\n\t\t\t\t\t// Remove only if the animation ends while the element is not visible\n\t\t\t\t\t(e.target as HTMLElement).remove();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.engine.element().find(`[data-component=\"canvas-container\"][canvas=\"${this.name}\"]`).remove();\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tlet found = false;\n\t\tthis.engine.state({\n\t\t\tcanvas: this.engine.state('canvas').filter((item: string) => {\n\t\t\t\tif (!found) {\n\t\t\t\t\tconst [, , name] = item.split(' ');\n\t\t\t\t\tif (name === this.name) {\n\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})\n\t\t});\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst canvasHistory = this.engine.history('canvas') as string[];\n\t\tfor (let i = canvasHistory.length - 1; i >= 0; i--) {\n\t\t\tconst last = canvasHistory[i];\n\t\t\tconst [, , name] = last.split(' ');\n\t\t\tif (name === this.name) {\n\t\t\t\tconst action = this.engine.prepareAction(last, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\t\tif (action !== null) {\n\t\t\t\t\tawait action.willApply();\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideCanvas;", + "import Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class HideCharacter extends Action {\n\n\tstatic override id = 'Hide::Character';\n\n\tstatic override matchString([hide, type, identifier]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'character' && identifier.indexOf(':') === -1;\n\t}\n\n\tasset: string;\n\telement: any;\n\tclasses: string[];\n\n\tconstructor([hide, type, asset, ...classes]: string[]) {\n\t\tsuper();\n\t\tthis.asset = asset;\n\n\t\tif (typeof this.engine.character(this.asset) !== 'undefined') {\n\t\t\tthis.element = this.engine.element().find(`[data-character=\"${this.asset}\"]`).last();\n\t\t} else {\n\t\t\tFancyError.show('action:hide_character:character_not_found', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tavailableCharacters: Object.keys(this.engine.characters()),\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t}\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t\tthis.classes = this.classes.filter((c) => (c !== 'at' && c !== 'with'));\n\t}\n\n\toverride async willApply(): Promise {\n\n\t\tif (!this.element.exists()) {\n\t\t\tFancyError.show('action:hide_character:not_shown', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tavailableCharacters: Object.keys(this.engine.characters()),\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error('Attempted to hide a character that was not being shown.');\n\t\t}\n\t}\n\n\n\toverride async apply(): Promise {\n\t\tconst currentPosition = this.element.data('position');\n\t\tconst position = (this._statement as string).match(/at\\s(\\S*)/);\n\n\t\tconst oldClasses = [...this.element.get(0).classList];\n\n\t\tfor (const oldClass of oldClasses) {\n\t\t\tif (oldClass !== currentPosition || position instanceof Array) {\n\t\t\t\tthis.element.removeClass(oldClass);\n\t\t\t}\n\t\t}\n\n\t\tif (position instanceof Array) {\n\t\t\t// If it was, we'll set that position to the character\n\t\t\tconst [at, positionClass] = position;\n\t\t\tthis.element.data('position', positionClass);\n\t\t}\n\n\t\tthis.element.addClass('animated');\n\n\t\t// Check if there is any end-animation, here's what this matches:\n\t\t// 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ \"end-fadeIn\", \"fadeIn\" ]\n\t\tconst endAnimation = oldClasses.find((c: string) => c.match(/end-([A-Za-z]+)/) !== null);\n\n\t\tif (typeof endAnimation !== 'undefined') {\n\t\t\tconst [end, animation] = endAnimation.split('-');\n\t\t\tthis.element.addClass(animation);\n\t\t}\n\n\t\tconst durationPosition = this.classes.indexOf('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\tthis.element.style('animation-duration', this.classes[durationPosition + 1]);\n\t\t} else {\n\t\t\tthis.element.style('animation-duration', '');\n\t\t}\n\n\t\tif (this.classes.length > 0 || typeof endAnimation !== 'undefined') {\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\tthis.element.addClass(className);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.element.data('visibility', 'invisible');\n\n\t\t\tthis.element.on('animationend', (e: any) => {\n\t\t\t\tif (e.target.dataset.visibility === 'invisible') {\n\t\t\t\t\t// Remove only if the animation ends while the element is not visible\n\t\t\t\t\te.target.remove();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.element.remove();\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tconst characters = this.engine.state('characters').filter((item: string) => {\n\t\t\tconst [show, character, asset,] = item.split(' ');\n\t\t\treturn asset !== this.asset;\n\t\t});\n\n\t\tconst experimentalFeatures = this.engine.setting('ExperimentalFeatures');\n\n\t\tif (experimentalFeatures) {\n\t\t\tconst characterLayers = this.engine.state('characterLayers').filter((item: string) => {\n\t\t\t\tconst [show, character, asset,] = item.split(' ');\n\t\t\t\tconst [id, layer] = asset.split(':');\n\t\t\t\treturn id !== this.asset;\n\t\t\t});\n\n\t\t\tthis.engine.state({ characters, characterLayers });\n\t\t} else {\n\t\t\tthis.engine.state({ characters });\n\t\t}\n\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tif (this.engine.history('character').length <= 0) {\n\t\t\treturn Promise.reject();\n\t\t}\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst history = this.engine.history('character') as { statement: string; previous: string | null }[];\n\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\tconst { statement } = history[i];\n\t\t\tconst [, , asset] = statement.split(' ');\n\n\t\t\tif (asset === this.asset) {\n\t\t\t\tconst action = this.engine.prepareAction(statement, { cycle: 'Application' }) as import('../lib/types').ActionInstance | null;\n\t\t\t\tif (action !== null) {\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthrow new Error('Failed to revert HideCharacter');\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideCharacter;\n", + "import Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\n\nexport class HideCharacterLayer extends Action {\n\n\tstatic override id = 'Hide::Character::Layer';\n\tstatic override _experimental = true;\n\n\tstatic override matchString([hide, type, identifier]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'character' && identifier.indexOf(':') > -1;\n\t}\n\n\tasset: string;\n\tlayer: string;\n\tparent: any;\n\telement: any;\n\tclasses: string[];\n\n\tconstructor([hide, type, asset, ...classes]: string[]) {\n\t\tsuper();\n\t\tconst [character, layer] = asset.split(':');\n\t\tthis.asset = character;\n\t\tthis.layer = layer;\n\n\t\tif (typeof this.engine.character(this.asset) !== 'undefined') {\n\t\t\tthis.parent = this.engine.element().find(`[data-character=\"${this.asset}\"]`).last();\n\t\t\tthis.element = this.parent.find(`[data-layer=\"${this.layer}\"]`).last();\n\t\t} else {\n\t\t\tFancyError.show('action:hide_character_layer:character_not_found', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tavailableCharacters: Object.keys(this.engine.characters()),\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t}\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t\tthis.classes = this.classes.filter((c) => (c !== 'at' && c !== 'with'));\n\t}\n\n\toverride async willApply(): Promise {\n\n\t\tif (!this.element.exists()) {\n\t\t\tFancyError.show('action:hide_character_layer:layer_not_shown', {\n\t\t\t\tlayer: this.layer,\n\t\t\t\tasset: this.asset,\n\t\t\t\tavailableCharacters: Object.keys(this.engine.characters()),\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error('Attempted to hide a character that was not being shown.');\n\t\t}\n\t}\n\n\n\toverride async apply(): Promise {\n\t\tconst oldClasses = [...this.element.get(0).classList];\n\n\t\tfor (const oldClass of oldClasses) {\n\t\t\tthis.element.removeClass(oldClass);\n\t\t}\n\n\t\tthis.element.addClass('animated');\n\n\t\t// Check if there is any end-animation, here's what this matches:\n\t\t// 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ \"end-fadeIn\", \"fadeIn\" ]\n\t\tconst endAnimation = oldClasses.find((c: string) => c.match(/end-([A-Za-z]+)/) !== null);\n\n\t\tif (typeof endAnimation !== 'undefined') {\n\t\t\tconst [end, animation] = endAnimation.split('-');\n\t\t\tthis.element.addClass(animation);\n\t\t}\n\n\t\tconst durationPosition = this.classes.indexOf('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\tthis.element.style('animation-duration', this.classes[durationPosition + 1]);\n\t\t} else {\n\t\t\tthis.element.style('animation-duration', '');\n\t\t}\n\n\t\tif (this.classes.length > 0 || typeof endAnimation !== 'undefined') {\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\tthis.element.addClass(className);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.element.data('visibility', 'invisible');\n\n\t\t\tthis.element.on('animationend', (e: any) => {\n\t\t\t\tif (e.target.dataset.visibility === 'invisible') {\n\t\t\t\t\t// Remove only if the animation ends while the element is not visible\n\t\t\t\t\te.target.remove();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.element.remove();\n\t\t}\n\n\t\tconst parentAsComponent = this.parent.get(0) as (HTMLElement & { state?: { layers?: Record }; setState?: (state: Record) => void }) | undefined;\n\t\tif (parentAsComponent?.state && parentAsComponent?.setState) {\n\t\t\tconst stateLayers = parentAsComponent.state.layers || {};\n\t\t\tconst { [this.layer]: _, ...remainingLayers } = stateLayers;\n\t\t\tparentAsComponent.setState({\n\t\t\t\tlayers: remainingLayers\n\t\t\t});\n\t\t}\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tconst show = this.engine.state('characterLayers').filter((item: string) => {\n\t\t\tconst [show, character, asset,] = item.split(' ');\n\t\t\tconst [id, layer] = asset.split(':');\n\t\t\treturn id !== this.asset || layer !== this.layer;\n\t\t});\n\n\t\tthis.engine.state({ characterLayers: show });\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tif (this.engine.history('characterLayer').length <= 0) {\n\t\t\treturn Promise.reject();\n\t\t}\n\t}\n\n\toverride async revert(): Promise {\n\t\tfor (let i = this.engine.history('characterLayer').length - 1; i >= 0; i--) {\n\t\t\tconst { parent, layers } = this.engine.history('characterLayer')[i];\n\t\t\tconst historyStatement = layers.find((s: any) => {\n\t\t\t\tconst { previous, statement } = s;\n\t\t\t\tconst [show, character, asset, name] = (statement || previous).split(' ');\n\t\t\t\tconst [id, layer] = asset.split(':');\n\n\t\t\t\treturn id === this.asset && layer === this.layer;\n\t\t\t});\n\n\t\t\tif (typeof historyStatement === 'object' && historyStatement !== null) {\n\t\t\t\tconst { statement, previous } = historyStatement as { statement: string | null; previous: string | null };\n\t\t\t\tconst [, , asset] = ((statement || previous) ?? '').split(' ');\n\t\t\t\tconst [id, layer] = asset?.split(':') ?? [];\n\n\t\t\t\tif (id === this.asset && layer === this.layer) {\n\t\t\t\t\t\tif (statement === null) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst revertAction = this.engine.prepareAction(statement, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\t\t\tif (revertAction !== null) {\n\t\t\t\t\t\tawait revertAction.apply();\n\t\t\t\t\t\tawait revertAction.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new Error('Failed to revert HideCharacterLayer');\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideCharacterLayer;\n", + "import Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class HideImage extends Action {\n\n\tstatic override id = 'Hide::Image';\n\n\tstatic override matchString([hide, type]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'image';\n\t}\n\n\tasset: string;\n\telement: any;\n\tclasses: string[];\n\n\tconstructor([hide, type, asset, ...classes]: string[]) {\n\t\tsuper();\n\t\tthis.asset = asset;\n\n\t\tthis.element = this.engine.element().find(`[data-image=\"${this.asset}\"]`);\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t\tthis.classes = this.classes.filter((c) => (c !== 'at' && c !== 'with'));\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (!this.element.exists()) {\n\t\t\tFancyError.show('action:hide_image:not_shown', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error('Attempted to hide an image that was not being shown.');\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst currentPosition = this.element.data('position');\n\t\tconst position = (this._statement as string).match(/at\\s(\\S*)/);\n\n\t\tconst oldClasses = [...this.element.get(0).classList];\n\n\t\tfor (const oldClass of oldClasses) {\n\t\t\tif (oldClass !== currentPosition || position instanceof Array) {\n\t\t\t\tthis.element.removeClass(oldClass);\n\t\t\t}\n\t\t}\n\n\t\tif (position instanceof Array) {\n\t\t\t// If it was, we'll set that position to the character\n\t\t\tconst [at, positionClass] = position;\n\t\t\tthis.element.data('position', positionClass);\n\t\t}\n\n\t\tthis.element.addClass('animated');\n\n\t\tconst durationPosition = this.classes.indexOf('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\tthis.element.style('animation-duration', this.classes[durationPosition + 1]);\n\t\t} else {\n\t\t\tthis.element.style('animation-duration', '');\n\t\t}\n\n\t\tif (this.classes.length > 0) {\n\t\t\tfor (const newClass of this.classes) {\n\t\t\t\tthis.element.addClass(newClass);\n\t\t\t}\n\t\t\tthis.element.data('visibility', 'invisible');\n\t\t\tthis.element.on('animationend', (e: any) => {\n\t\t\t\tif (e.target.dataset.visibility === 'invisible') {\n\t\t\t\t\t// Remove only if the animation ends while the element is not visible\n\t\t\t\t\te.target.remove();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.element.remove();\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tconst show = this.engine.state('images').filter((item: string) => {\n\t\t\tconst [show, type, asset,] = item.split(' ');\n\t\t\treturn asset !== this.asset;\n\t\t});\n\n\t\tthis.engine.state({ images: show });\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tif (this.engine.history('image').length === 0) {\n\t\t\treturn Promise.reject('Image history was empty.');\n\t\t}\n\t}\n\n\toverride async revert(): Promise {\n\t\t// return this.engine.run (this.engine.history ('image').pop (), false);\n\t\tconst history = this.engine.history('image') as string[];\n\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\tconst last = history[i];\n\t\t\tconst [, , asset] = last.split(' ');\n\t\t\tif (asset === this.asset) {\n\t\t\t\tconst action = this.engine.prepareAction(last, { cycle: 'Application' }) as import('../lib/types').ActionInstance | null;\n\t\t\t\tif (action !== null) {\n\t\t\t\t\tawait action.willApply();\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error('Could not find a previous state to revert to');\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideImage;", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class HideParticles extends Action {\n\n\tstatic override id = 'Hide::Particles';\n\n\tstatic override matchString([hide, type]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'particles';\n\t}\n\n\tconstructor([hide, type]: string[]) {\n\t\tsuper();\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst particlesAction = this.engine.action('Particles') as { stop?: () => void } | undefined;\n\t\tif (particlesAction?.stop) {\n\t\t\tparticlesAction.stop();\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tthis.engine.state({\n\t\t\tparticles: ''\n\t\t});\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst history = this.engine.history('particle') as string[];\n\t\tif (history.length > 0) {\n\t\t\tconst last = history[history.length - 1];\n\n\t\t\tconst action = this.engine.prepareAction(last, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tawait action.willApply();\n\t\t\t\tawait action.apply();\n\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideParticles;", + "import Action from './../lib/Action';\nimport type TextBox from './../components/text-box';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class HideTextBox extends Action {\n\n\tstatic override id = 'Hide::TextBox';\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.state({\n\t\t\ttextboxHidden: false\n\t\t});\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tthis.engine.state({\n\t\t\ttextboxHidden: false\n\t\t});\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tif (this.engine.state('textboxHidden') === true) {\n\t\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBox | undefined;\n\t\t\ttextBox?.setState({ hidden: true });\n\t\t}\n\t}\n\n\tstatic override matchString([hide, type]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'textbox';\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBox | undefined;\n\t\ttextBox?.setState({ hidden: true });\n\t}\n\n\toverride async didApply(): Promise {\n\t\tthis.engine.state({ textboxHidden: true });\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBox | undefined;\n\t\ttextBox?.setState({ hidden: false });\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tthis.engine.state({ textboxHidden: false });\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideTextBox;\n", + "import { $_ } from '@aegis-framework/artemis';\n\nimport Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class Video extends Action {\n\tstatic override id = 'Video';\n static override blocking = false;\n\n\tstatic _configuration: { objects: Record, modes: string[] } = {\n\t\tobjects: {\n\n\t\t},\n\t\tmodes: ['modal', 'displayable', 'immersive', 'fullscreen', 'background']\n\t};\n\n\t/**\n\t * Properly cleanup a video element to prevent memory leaks\n\t */\n\tstatic cleanupVideoElement(element: HTMLVideoElement): void {\n\t\telement.pause();\n\t\telement.onended = null;\n\t\telement.onerror = null;\n\t\telement.src = '';\n\t\telement.load(); // Reset the element\n\t}\n\n\tstatic override async shouldProceed(): Promise {\n if (Video.blocking) {\n throw new Error('Video is still playing');\n }\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t$_('[data-video]').each((element: HTMLElement) => {\n\t\t\t\tconst videoElement = element as HTMLVideoElement;\n\t\t\t\tif (videoElement.ended !== true && videoElement.dataset.mode !== 'background' && videoElement.dataset.mode !== 'displayable') {\n\t\t\t\t\treject('Playing video must end before proceeding.');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tresolve();\n\t\t});\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst state = this.engine.state('videos');\n\n\t\tif (state.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst promises = [];\n\n\t\tfor (const video of state) {\n\t\t\t// prepareAction returns typeof Action but actually returns instance\n\t\t\tconst action = this.engine.prepareAction(video, { cycle: 'Application' }) as ActionInstance | null;\n\n\t\t\tif (action === null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst promise = (async () => {\n\t\t\t\tawait action.willApply();\n\t\t\t\tawait action.apply();\n\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t})();\n\n\t\t\tpromises.push(promise);\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\tawait Promise.all(promises);\n\t\t}\n\t}\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history({\n\t\t\tvideo: [] // string[]\n\t\t});\n\n\t\tthis.engine.state({\n\t\t\tvideos: [] // string[]\n\t\t});\n\t}\n\n\tstatic override async reset(): Promise {\n\t\t// Properly clean up all video elements before removing\n\t\tthis.engine.element().find('[data-video]').each((element: HTMLElement) => {\n\t\t\tVideo.cleanupVideoElement(element as HTMLVideoElement);\n\t\t});\n\t\tthis.engine.element().find('[data-video]').remove();\n\n\t\tthis.engine.history({\n\t\t\tvideo: [] // string[]\n\t\t});\n\n\t\tthis.engine.state({\n\t\t\tvideos: [] // string[]\n\t\t});\n\t}\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'video';\n\t}\n\n\t/**\n\t * Creates an instance of a Video Action\n\t *\n\t * @param {string[]} parameters - List of parameters received from the script statement.\n\t * @param {string} parameters.action - In this case, action will always be 'video'\n\t * @param {string} [parameters.mode='modal'] - Mode in which the video element will be shown (modal, displayable, background, immersive, full-screen)\n\t * @param {string} parameters.name\n\t * @param {string} parameters.props\n\t */\n\tmode: string;\n\tname: string;\n\tprops: string[];\n\tsrc: string | undefined;\n\tclasses: string[];\n\n\tconstructor([show, type, name, mode = 'modal', ...props]: string[]) {\n\t\tsuper();\n\t\tthis.mode = mode;\n\t\tthis.name = name;\n\t\tthis.props = props;\n\n\t\tif (typeof this.engine.asset('videos', name) !== 'undefined') {\n\t\t\tthis.src = this.engine.asset('videos', name);\n\t\t}\n\n\t\tif (typeof props !== 'undefined') {\n\t\t\tthis.classes = ['animated', ...props.filter((item) => item !== 'with')];\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (Video._configuration.modes.indexOf(this.mode) === -1) {\n\t\t\tFancyError.show('action:video:invalid_mode', {\n\t\t\t\tmode: this.mode,\n\t\t\t\tvalidModes: Video._configuration.modes,\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error('Invalid video mode provided.');\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\t// TODO: Find a way to remove the resize listeners once the video is stopped\n\t\tconst element = document.createElement('video');\n\n\t\tconst volumePrefs = this.engine.preference('Volume') as { Video?: number } | undefined;\n\t\tconst videoVolume = volumePrefs?.Video ?? 1;\n\n\t\telement.volume = videoVolume;\n\n\t\telement.dataset.video = this.name;\n\t\telement.dataset.mode = this.mode;\n\n\t\tfor (const newClass of this.classes) {\n\t\t\telement.classList.add(newClass);\n\t\t}\n\n\t\tconst { root, videos: videoPath } = this.engine.setting('AssetsPath') as { root: string, videos: string };\n\n\t\t$_(element).attribute('src', `${root}/${videoPath}/${this.src}`);\n\n\t\t// Add error handler for video loading failures\n\t\telement.onerror = () => {\n\t\t\tthis.engine.debug.error(`Failed to load video: ${this.name}`);\n\t\t};\n\n\t\tif (this.props.indexOf('close') > -1) {\n\t\t\telement.onended = () => {\n\t\t\t\t// Exit fullscreen if we're in fullscreen mode\n\t\t\t\tif (this.mode === 'fullscreen' && document.fullscreenElement) {\n\t\t\t\t\tdocument.exitFullscreen().catch(() => {\n\t\t\t\t\t\t// Ignore errors when exiting fullscreen\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Cleanup and remove the element\n\t\t\t\tconst videoElement = this.engine.element().find(`[data-video=\"${this.name}\"][data-mode=\"${this.mode}\"]`).get(0) as HTMLVideoElement | undefined;\n\t\t\t\tif (videoElement) {\n\t\t\t\t\tVideo.cleanupVideoElement(videoElement);\n\t\t\t\t\tvideoElement.remove();\n\t\t\t\t}\n\n\t\t\t\tconst removeVideoFromState = () => {\n\t\t\t\t\tlet found = false;\n\t\t\t\t\tthis.engine.state({\n\t\t\t\t\t\tvideos: this.engine.state('videos').filter((item: string) => {\n\t\t\t\t\t\t\tif (!found) {\n\t\t\t\t\t\t\t\tconst [, , name, mode] = item.split(' ');\n\t\t\t\t\t\t\t\tif (name === this.name && mode === this.mode) {\n\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tif (this.mode === 'immersive' || this.mode === 'fullscreen' || this.mode === 'modal') {\n\t\t\t\t\tremoveVideoFromState();\n\t\t\t\t Video.blocking = false;\n\t\t\t\t\tthis.engine.proceed({ userInitiated: false, skip: false, autoPlay: false });\n\t\t\t\t} else if (this.mode === 'background' || this.mode === 'displayable') {\n\t\t\t\t\tremoveVideoFromState();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tif (this.props.indexOf('loop') > -1) {\n\t\t\t$_(element).attribute('loop', '');\n\t\t}\n\n\t\tif (this.props.indexOf('controls') > -1) {\n\t\t\t$_(element).attribute('controls', '');\n\t\t}\n\n\t\tif (this.mode === 'background') {\n\t\t\tthis.engine.element().find('[data-ui=\"background\"]').append(element);\n\t\t} else if (this.mode === 'immersive') {\n\t\t\tVideo.blocking = true;\n\t\t\tthis.engine.element().find('[data-screen=\"game\"]').prepend(element);\n\t\t} else if (this.mode === 'fullscreen') {\n\t\t\tVideo.blocking = true;\n\t\t\tif (element.requestFullscreen) {\n\t\t\t\tthis.engine.element().find('[data-screen=\"game\"]').append(element);\n\t\t\t\telement.requestFullscreen();\n\t\t\t} else {\n\t\t\t\t$_(element).addClass('immersive');\n\t\t\t\tthis.engine.element().find('[data-screen=\"game\"]').prepend(element);\n\t\t\t}\n\t\t} else if (this.mode === 'displayable') {\n\t\t\tthis.engine.element().find('[data-screen=\"game\"]').append(element);\n\t\t} else if (this.mode === 'modal') {\n\t\t\tVideo.blocking = true;\n\t\t\tthis.engine.element().find('[data-screen=\"game\"]').append(element);\n\t\t} else {\n\t\t\tthrow new Error('Invalid video mode.');\n\t\t}\n\n\t\telement.play();\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tconst statement = this._statement as string;\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history('video').push(statement);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tvideos: [...this.engine.state('videos'), statement]\n\t\t\t});\n\t\t}\n\n\t\tif (this.mode === 'background' || this.mode === 'modal' || this.mode === 'displayable') {\n\t\t\treturn { advance: true };\n\t\t}\n\n\t\treturn { advance: false };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst element = this.engine.element().find(`[data-video=\"${this.name}\"][data-mode=\"${this.mode}\"]`).get(0) as HTMLVideoElement | undefined;\n\t\tif (element) {\n\t\t\t// Exit fullscreen if we're in fullscreen mode\n\t\t\tif (this.mode === 'fullscreen' && document.fullscreenElement) {\n\t\t\t\tawait document.exitFullscreen().catch(() => {\n\t\t\t\t\t// Ignore errors when exiting fullscreen\n\t\t\t\t});\n\t\t\t}\n\t\t\tVideo.cleanupVideoElement(element);\n\t\t\telement.remove();\n\t\t}\n\n\t\t// Unblock if this was a blocking video\n\t\tif (this.mode === 'immersive' || this.mode === 'fullscreen' || this.mode === 'modal') {\n\t\t\tVideo.blocking = false;\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tlet foundState = false;\n\t\tthis.engine.state({\n\t\t\tvideos: this.engine.state('videos').filter((item: string) => {\n\t\t\t\tif (!foundState) {\n\t\t\t\t\tconst [, , name, mode] = item.split(' ');\n\t\t\t\t\tif (name === this.name && mode === this.mode) {\n\t\t\t\t\t\tfoundState = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})\n\t\t});\n\n\t\tconst history = this.engine.history('video');\n\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\tconst last = history[i];\n\t\t\tconst [, , name, mode] = last.split(' ');\n\t\t\tif (name === this.name && mode === this.mode) {\n\t\t\t\thistory.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Video;", + "import Action from './../lib/Action';\nimport Video from './Video';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class HideVideo extends Action {\n\n\tstatic override id = 'Hide::Video';\n\n\tstatic override matchString([hide, type]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'video';\n\t}\n\n\tname: string;\n\tclasses: string[];\n\n\tconstructor([hide, type, name, separator, ...classes]: string[]) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst element = this.engine.element().find(`[data-video=\"${this.name}\"]`);\n\t\tconst videoElement = element.get(0) as HTMLVideoElement | undefined;\n\n\t\tif (this.classes.length > 0) {\n\t\t\telement.addClass('animated');\n\t\t\tfor (const newClass of this.classes) {\n\t\t\t\tif (newClass) {\n\t\t\t\t\telement.addClass(newClass);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.data('visibility', 'invisible');\n\t\t\telement.on('animationend', (e: Event) => {\n\t\t\t\tconst target = e.target as HTMLVideoElement;\n\t\t\t\tif (target.dataset?.visibility === 'invisible') {\n\t\t\t\t\t// Cleanup video before removal\n\t\t\t\t\tVideo.cleanupVideoElement(target);\n\t\t\t\t\ttarget.remove();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Cleanup video before removal\n\t\t\tif (videoElement) {\n\t\t\t\tVideo.cleanupVideoElement(videoElement);\n\t\t\t}\n\t\t\telement.remove();\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tlet found = false;\n\t\tthis.engine.state({\n\t\t\tvideos: this.engine.state('videos').filter((item: string) => {\n\t\t\t\tif (!found) {\n\t\t\t\t\tconst [, , name] = item.split(' ');\n\t\t\t\t\tif (name === this.name) {\n\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})\n\t\t});\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst history = this.engine.history('video') as string[];\n\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\tconst last = history[i];\n\t\t\tconst [, , name] = last.split(' ');\n\t\t\tif (name === this.name) {\n\t\t\t\tconst action = this.engine.prepareAction(last, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\t\tif (action !== null) {\n\t\t\t\t\tawait action.willApply();\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideVideo;", + "import Action from './../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { ActionRevertResult } from '../lib/types';\nimport type TimerDisplayComponent from './../components/timer-display';\nimport type TextInputComponent from './../components/text-input';\n\nexport class InputModal extends Action {\n\n static override id = 'Input';\n static override blocking = false;\n\n static override async setup(): Promise {\n this.engine.globals({\n _InputTimer: null,\n _input_just_rolled_back: false,\n });\n }\n\n static override async reset(): Promise {\n this.engine.globals({\n _InputTimer: null,\n _input_just_rolled_back: false,\n });\n }\n\n static override async afterRevert(): Promise {\n // When a choice gets reverted, it pushes a `true` value to this global variable.\n // As soon as it gets reverted, this function is run and it pops the `true` out of\n // the array, meaning it was just reverted and the choice should be showing on screeen again.\n if (this.engine.global('_input_just_rolled_back')) {\n this.engine.global('_input_just_rolled_back', false);\n return;\n }\n\n // If the player reverts once more while the choice is being shown, then we'll reach this part\n // and we can clean up any variables we need to.\n const timer = this.engine.global('_InputTimer');\n\n if (typeof timer !== 'undefined' && timer !== null) {\n if (timer.props?.timer) {\n clearTimeout(timer.props.timer);\n }\n\n if (timer.parentNode !== null && timer.element) {\n timer.element().remove();\n }\n\n this.engine.global('_InputTimer', null);\n }\n }\n\n static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise {\n if (InputModal.blocking) {\n throw new Error('Waiting for user input');\n }\n }\n\n static override async willRollback(): Promise {\n InputModal.blocking = false;\n }\n\n static override matchObject({ Input }: any): boolean {\n return typeof Input !== 'undefined';\n }\n\n statement: any;\n\n constructor({ Input }: any) {\n super();\n this.statement = Input;\n\n if (typeof this.statement.Validation !== 'function') {\n this.statement.Validation = () => true;\n }\n\n if (typeof this.statement.Save !== 'function') {\n this.statement.Save = () => true;\n }\n\n if (typeof this.statement.Warning !== 'string') {\n this.statement.Warning = '';\n }\n\n if (typeof this.statement.actionString !== 'string') {\n this.statement.actionString = 'OK';\n }\n\n if (typeof this.statement.Class !== 'string') {\n this.statement.Class = '';\n }\n\n if (['string', 'number'].indexOf(typeof this.statement.Default) === -1 || this.statement.Default === '') {\n this.statement.Default = null;\n }\n\n if (typeof this.statement.Type !== 'string') {\n this.statement.Type = 'text';\n }\n\n if (typeof this.statement.Options !== 'object' || this.statement.Options === null) {\n this.statement.Options = [];\n }\n\n if (typeof this.statement.Timer !== 'object') {\n this.statement.Timer = null;\n }\n\n if (typeof this.statement.Attributes !== 'object') {\n this.statement.Attributes = {};\n }\n }\n\n override async apply(): Promise {\n InputModal.blocking = true;\n\n const input = document.createElement('text-input') as TextInputComponent;\n\n const { Text, Warning, Save, Validation, actionString, Class, Type, Options, Default, Timer, Attributes } = this.statement;\n\n input.setProps({\n text: this.engine.replaceVariables(Text),\n type: Type,\n options: Options,\n default: Default,\n warning: Warning,\n onSubmit: Save,\n validate: Validation,\n attributes: Attributes,\n actionString,\n callback: () => {\n const timer = this.engine.global('_InputTimer');\n\n if (typeof timer !== 'undefined' && timer !== null) {\n if (timer.props?.timer) {\n clearTimeout(timer.props.timer);\n }\n if (timer.parentNode !== null && timer.element) {\n timer.element().remove();\n }\n this.engine.global('_InputTimer', null);\n }\n\n InputModal.blocking = false;\n this.engine.proceed({ userInitiated: true, skip: false, autoPlay: false });\n },\n classes: Class.trim()\n });\n\n if (Timer !== null) {\n const timer_display = document.createElement('timer-display') as TimerDisplayComponent;\n timer_display.setProps(Timer);\n this.engine.global('_InputTimer', timer_display);\n this.engine.element().find('[data-screen=\"game\"]').prepend(timer_display);\n }\n\n this.engine.element().find('[data-screen=\"game\"]').append(input);\n }\n\n override async willRevert(): Promise {\n if (typeof this.statement.Revert === 'function') {\n return;\n }\n\n throw new Error('Input is missing a `Revert` function.');\n }\n\n override async revert(): Promise {\n await Util.callAsync(this.statement.Revert, this.engine);\n return this.apply();\n }\n\n override async didRevert(): Promise {\n this.engine.global('_input_just_rolled_back', true);\n return { advance: false, step: true };\n }\n}\n\nexport default InputModal;", + "import Action from './../lib/Action';\nimport { FancyError } from '../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, LabelHistoryItem } from '../lib/types';\nimport type { DOM } from '@aegis-framework/artemis';\nexport class Jump extends Action {\n\n\tstatic override id = 'Jump';\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('label');\n\t\tthis.engine.history('jump');\n\t}\n\n\tstatic override async bind(selector: string): Promise {\n\t\tthis.engine.registerListener('jump', {\n\t\t\tcallback: (event: Event, element: DOM) => {\n\t\t\t\tthis.engine.run(`jump ${element.data('jump')}`, false);\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'jump';\n\t}\n\n\tlabel: string;\n\n\tconstructor([action, label]: string[]) {\n\t\tsuper();\n\t\tthis.label = label;\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (typeof this.engine.script(this.label) !== 'undefined') {\n\t\t\tthis.engine.stopAmbient();\n\t\t\tthis.engine.showScreen('game');\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tFancyError.show('action:jump:label_not_found', {\n\t\t\ttargetLabel: this.label,\n\t\t\tavailableLabels: Object.keys(this.engine.script() as Record),\n\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\tlabel: this.engine.state('label'),\n\t\t\tstep: this.engine.state('step')\n\t\t});\n\n\t\tthrow new Error('Label does not exist.');\n\t}\n\n\toverride async apply(): Promise {\n\t\t(this.engine.history('jump') as Array<{ source: { label: string; step: number }; destination: { label: string; step: number } }>).push({\n\t\t\tsource: {\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\tlabel: this.label,\n\t\t\t\tstep: 0\n\t\t\t}\n\t\t});\n\t\tthis.engine.state({\n\t\t\tstep: 0,\n\t\t\tlabel: this.label\n\t\t});\n\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as (HTMLElement & { props?: { mode?: string } }) | undefined;\n\n\t\tif (textBox?.props?.mode !== 'nvl') {\n\t\t\tconst dialogAction = this.engine.action('Dialog');\n\t\t\tif (dialogAction) {\n\t\t\t\t(dialogAction as unknown as { reset: () => void }).reset();\n\t\t\t}\n\t\t}\n\n\t\tthis.engine.run(this.engine.label()[this.engine.state('step')]);\n\t\t(this.engine.history('label') as LabelHistoryItem[]).push({ label: this.label, step: this.engine.state('step') });\n\t}\n\n\t// Jump is right now not reversible due to complications with the logic for it\n\toverride async willRevert(): Promise {\n\t\tif (this.engine.history('jump').length > 0) {\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\tthrow new Error('No elements in history available.');\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst last = this.engine.history('jump')[this.engine.history('jump').length - 1];\n\t\tif (typeof last !== 'undefined') {\n\t\t\tthis.engine.state({\n\t\t\t\tstep: last.source.step,\n\t\t\t\tlabel: last.source.label\n\t\t\t});\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\tthrow new Error('No elements in history available.');\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tthis.engine.history('jump').pop();\n\t\tthis.engine.history('label').pop();\n\t\treturn { advance: true, step: false };\n\t}\n}\n\nexport default Jump;", + "import Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\n\nexport class Message extends Action {\n static override id = 'Message';\n static override blocking = false;\n\n static _configuration: any = {\n messages: {}\n };\n\n static override async bind(): Promise {\n // The close action removes the active class from the element it\n // points to.\n this.engine.on('click', '[data-component=\"message-modal\"] [data-action=\"close\"]', () => {\n Message.blocking = false;\n this.engine.element().find('[data-component=\"message-modal\"]').remove();\n this.engine.proceed({ userInitiated: true, skip: false, autoPlay: false });\n });\n }\n\n static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise {\n if (Message.blocking) {\n throw new Error('Message waiting for dismissal');\n }\n }\n\n static override async willRollback(): Promise {\n Message.blocking = false;\n }\n\n static override matchString([show, type]: string[]): boolean {\n return show === 'show' && type === 'message';\n }\n\n static messages(object: any = null): any {\n if (object !== null) {\n if (typeof object === 'string') {\n return Message._configuration.messages[object];\n } else {\n Message._configuration.messages = Object.assign({}, Message._configuration.messages, object);\n }\n } else {\n return Message._configuration.messages;\n }\n }\n\n id: string;\n message: any;\n classes: string[];\n\n constructor([show, type, message, ...classes]: string[]) {\n super();\n this.id = message;\n this.message = (this.constructor as any).messages(message);\n this.classes = classes;\n }\n\n override async willApply(): Promise {\n if (typeof this.message !== 'undefined') {\n // Check if the old format is being use and translate it to the new one\n if (this.message.Title && this.message.Subtitle && this.message.Message) {\n this.message.title = this.message.Title;\n this.message.subtitle = this.message.Subtitle;\n this.message.body = this.message.Message;\n }\n return Promise.resolve();\n } else {\n FancyError.show('action:message:not_found', {\n id: this.id,\n availableMessages: Object.keys(Message.messages()),\n label: this.engine.state('label'),\n step: this.engine.state('step')\n });\n }\n\n return Promise.reject();\n }\n\n override async apply(): Promise {\n Message.blocking = true;\n\n const element = document.createElement('message-modal');\n\n if (typeof this.message.title === 'string') {\n (element as any).setProps({\n title: this.engine.replaceVariables(this.message.title)\n });\n }\n\n if (typeof this.message.subtitle === 'string') {\n (element as any).setProps({\n subtitle: this.engine.replaceVariables(this.message.subtitle)\n });\n }\n\n if (typeof this.message.body === 'string') {\n (element as any).setProps({\n body: this.engine.replaceVariables(this.message.body)\n });\n }\n\n if (typeof this.message.actionString === 'string') {\n (element as any).setProps({\n actionString: this.engine.replaceVariables(this.message.actionString)\n });\n }\n\n for (const newClass of this.classes) {\n if (newClass) {\n element.classList.add(newClass);\n }\n }\n\n this.engine.element().find('[data-screen=\"game\"]').append(element);\n }\n\n override async revert(): Promise {\n const messageModal = this.engine.component('message-modal') as { instances?: () => { remove: () => void } } | undefined;\n if (messageModal?.instances) {\n messageModal.instances().remove();\n }\n return this.apply();\n }\n\n override async didRevert(): Promise {\n return { advance: false, step: true };\n }\n}\n\nexport default Message;", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Next extends Action {\n\tstatic override id = 'Next';\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'next';\n\t}\n\n\toverride async didApply(): Promise {\n\t\treturn { advance: true };\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Next;\n", + "import Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Notify extends Action {\n\tstatic override id = 'Notification';\n static override blocking = false;\n\n\tstatic _configuration: { notifications: Record } = {\n\t\tnotifications: {}\n\t};\n\n static override async shouldProceed(): Promise {\n if (Notify.blocking) {\n throw new Error('Waiting for user input');\n }\n }\n\n static override async willRollback(): Promise {\n Notify.blocking = false;\n }\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'notification';\n\t}\n\n\tstatic notifications(object: Record | string | null = null): any {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn Notify._configuration.notifications[object];\n\t\t\t} else {\n\t\t\t\tNotify._configuration.notifications = Object.assign({}, Notify._configuration.notifications, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn Notify._configuration.notifications;\n\t\t}\n\t}\n\n\thasPermission: boolean;\n\tnotification: any;\n\ttime: number | undefined;\n\n\tconstructor([show, type, name, time]: string[]) {\n\t\tsuper();\n\n\t\tthis.hasPermission = false;\n\n\t\t// First check if HTML5 notifications are available\n\t\tif (!('Notification' in window)) {\n\t\t\tconsole.warn('Notifications are not supported in this platform.');\n\t\t}\n\n // Finally check if the given notification exists in the object\n if (typeof Notify.notifications(name) !== 'undefined') {\n this.notification = Object.assign({}, Notify.notifications(name));\n\n if (typeof time !== 'undefined') {\n if (!isNaN(Number(time))) {\n this.time = parseInt(time);\n } else {\n FancyError.show('action:notification:invalid_time', {\n time: time,\n statement: `\"${this._statement}\"`,\n label: this.engine.state('label'),\n step: this.engine.state('step')\n });\n }\n }\n } else {\n FancyError.show('action:notification:not_found', {\n name: name,\n availableNotifications: Object.keys(Notify.notifications()),\n label: this.engine.state('label'),\n step: this.engine.state('step')\n });\n }\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (!this.notification) {\n return;\n }\n Notify.blocking = true;\n\n return new Promise((resolve, reject) => {\n // Let's check whether notification permissions have already been granted\n if (Notification.permission === 'granted') {\n this.hasPermission = true;\n resolve();\n } else if (Notification.permission !== 'denied') {\n Notification.requestPermission((permission) => {\n // If the user accepts, let's create a notification\n if (permission === 'granted') {\n this.hasPermission = true;\n resolve();\n } else {\n console.warn('User denied notifications permission, none will be shown.');\n resolve();\n }\n });\n } else {\n console.warn('The permission to display notifications was denied by the user.');\n resolve();\n }\n });\n\t}\n\n\toverride async apply(): Promise {\n\t\tif (!this.notification) {\n return;\n }\n\n\t\tfor (const key of Object.keys(this.notification)) {\n\t\t\tif (typeof this.notification[key] === 'string') {\n\t\t\t\tthis.notification[key] = this.engine.replaceVariables(this.notification[key]);\n\t\t\t}\n\t\t}\n\n\t\tif (this.hasPermission) {\n\t\t\tconst notification = new Notification(this.notification.title, this.notification);\n\n\t\t\tif (typeof this.time !== 'undefined') {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tnotification.close();\n\t\t\t\t}, this.time);\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n Notify.blocking = false;\n\t\t// Advance the game instead of waiting for another click\n\t\treturn { advance: true };\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Notify;", + "import Action from '../lib/Action';\nimport { tsParticles } from '@tsparticles/engine';\nimport { loadSlim } from '@tsparticles/slim';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class Particles extends Action {\n\n\tstatic override id = 'Particles';\n\tstatic _configuration: { particles: Record } = {\n\t\tparticles: {}\n\t};\n\n\tstatic stop() {\n\t\ttry {\n\t\t\tconst particles = tsParticles.domItem(0);\n\t\t\tif (typeof particles !== 'undefined') {\n\t\t\t\tparticles.stop();\n\t\t\t\tthis.engine.element().find('#tsparticles').html('');\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error('An error ocurred while trying to stop particle system.', e);\n\t\t}\n\t}\n\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('particle');\n\t\tthis.engine.state({\n\t\t\tparticles: ''\n\t\t});\n\t\tawait loadSlim(tsParticles);\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tthis.engine.state({\n\t\t\tparticles: ''\n\t\t});\n\t\tthis.stop();\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst particles = this.engine.state('particles');\n\t\tif (particles !== '') {\n\t\t\tconst action = this.engine.prepareAction(particles, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tawait action.willApply();\n\t\t\t\tawait action.apply();\n\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'particles';\n\t}\n\n\tstatic particles(object: Record | string | null = null): any {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn Particles._configuration.particles[object];\n\t\t\t} else {\n\t\t\t\tParticles._configuration.particles = Object.assign({}, Particles._configuration.particles, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn Particles._configuration.particles;\n\t\t}\n\t}\n\n\tparticles: any;\n\tname: string | undefined;\n\n\tconstructor([show, type, name]: string[]) {\n\t\tsuper();\n\t\tif (typeof Particles.particles(name) !== 'undefined') {\n\t\t\tthis.particles = Particles.particles(name);\n\t\t\tthis.name = name;\n\t\t} else {\n\t\t\tconsole.error(`The Particles ${name} could not be shown because it doesn't exist in the particles object.`);\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (typeof this.particles !== 'undefined') {\n\t\t\treturn;\n\t\t} else {\n\t\t\tthrow new Error('Particle system object does not exist.');\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tawait tsParticles.load({ id: 'tsparticles', options: this.particles });\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tif (updateHistory === true) {\n\t\t\t(this.engine.history('particle') as string[]).push(this._statement as string);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tparticles: this._statement as string\n\t\t\t});\n\t\t}\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tParticles.stop();\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tthis.engine.history('particle').pop();\n\t\tthis.engine.state({\n\t\t\tparticles: ''\n\t\t});\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Particles;\n", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult, MediaType, MediaStateItem } from '../lib/types';\n\nexport class Pause extends Action {\n\n\tstatic override id = 'Pause';\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'pause';\n\t}\n\n\ttype: MediaType;\n\tmedia: string;\n\tplayer: any;\n\n\tconstructor([pause, type, media]: string[]) {\n\t\tsuper();\n\n\t\tthis.type = type as MediaType;\n\t\tthis.media = media;\n\n\t\tif (typeof media === 'undefined') {\n\t\t\tthis.player = this.engine.mediaPlayers(type);\n\t\t} else {\n\t\t\tthis.player = this.engine.mediaPlayer(type, media);\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (this.player) {\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\tthrow new Error('Media player was not defined.');\n\t}\n\n\toverride async apply(): Promise {\n\t\tif (Array.isArray(this.player)) {\n\t\t\tfor (const player of this.player) {\n\t\t\t\tplayer.pause();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.player.pause();\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tconst currentState = this.engine.state(this.type);\n\n\t\tif (Array.isArray(this.player)) {\n\t\t\tconst updatedState = currentState.map((s: MediaStateItem) => ({\n\t\t\t\t...s,\n\t\t\t\tpaused: true\n\t\t\t}));\n\t\t\tthis.engine.state({ [this.type]: updatedState });\n\t\t} else {\n\t\t\tconst updatedState = currentState.map((item: MediaStateItem) => {\n\t\t\t\tif (typeof item.statement === 'string') {\n\t\t\t\t\tconst [play, type, media] = item.statement.split(' ');\n\t\t\t\t\t// If this.media is undefined, pause all items\n\t\t\t\t\t// If this.media is defined, only pause matching items\n\t\t\t\t\tif (this.media === undefined || media === this.media) {\n\t\t\t\t\t\treturn { ...item, paused: true };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn item;\n\t\t\t});\n\t\t\tthis.engine.state({ [this.type]: updatedState });\n\t\t}\n\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tif (this.player) {\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tthrow new Error('Media player was not defined.');\n\t}\n\n\toverride async revert(): Promise {\n\t\tif (Array.isArray(this.player)) {\n\t\t\tconst promises = [];\n\t\t\tfor (const player of this.player) {\n\t\t\t\tpromises.push(player.play());\n\t\t\t}\n\t\t\tawait Promise.all(promises);\n\t\t} else {\n\t\t\tawait this.player.play();\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tconst currentState = this.engine.state(this.type);\n\n\t\tif (Array.isArray(this.player)) {\n\t\t\tconst updatedState = currentState.map((s: MediaStateItem) => ({\n\t\t\t\t...s,\n\t\t\t\tpaused: false\n\t\t\t}));\n\t\t\tthis.engine.state({ [this.type]: updatedState });\n\t\t} else {\n\t\t\tconst updatedState = currentState.map((item: MediaStateItem) => {\n\t\t\t\tif (typeof item.statement === 'string') {\n\t\t\t\t\tconst [play, type, media] = item.statement.split(' ');\n\n\t\t\t\t\t// If this.media is undefined, unpause all items\n\t\t\t\t\t// If this.media is defined, only unpause matching items\n\t\t\t\t\tif (this.media === undefined || media === this.media) {\n\t\t\t\t\t\treturn { ...item, paused: false };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn item;\n\t\t\t});\n\t\t\tthis.engine.state({ [this.type]: updatedState });\n\t\t}\n\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Pause;", + "import Action from './../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Placeholder extends Action {\n\tstatic override id = 'Placeholder';\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === '$';\n\t}\n\n\tname: string;\n\taction: any;\n\targuments: any[];\n\n\tconstructor([action, name, ...args]: string[]) {\n\t\tsuper();\n\n\t\tthis.name = name;\n\t\tthis.action = this.engine.$(name);\n\t\tthis.arguments = args;\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (this.name.indexOf('_') === 0) {\n\t\t\tthis.action = await Util.callAsync(this.action, this.engine, ...this.arguments);\n\t\t}\n\n\t\tthis.action = this.engine.prepareAction(this.action, { cycle: this._cycle as 'Application' | 'Revert' });\n\n\t\tawait this.action.willApply();\n\t}\n\n\toverride async apply(): Promise {\n\t\tawait this.action.apply();\n\t}\n\n\toverride async didApply(options?: { updateHistory?: boolean; updateState?: boolean }): Promise {\n\t\treturn await this.action.didApply(options);\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tif (this.name.indexOf('_') === 0) {\n\t\t\tthis.action = await Util.callAsync(this.action, this.engine, ...this.arguments);\n\t\t}\n\n\t\tthis.action = this.engine.prepareAction(this.action, { cycle: this._cycle as 'Application' | 'Revert' });\n\n\t\tawait this.action.willRevert();\n\t}\n\n\toverride async revert(): Promise {\n\t\tawait this.action.revert();\n\t}\n\n\toverride async didRevert(context: ActionRevertResult = { advance: true, step: true }): Promise {\n\t\treturn await this.action.didRevert(context);\n\t}\n}\n\nexport default Placeholder;\n", + "import { $_, Text } from '@aegis-framework/artemis';\nimport type { DOM } from '@aegis-framework/artemis';\nimport Action from './../lib/Action';\nimport AudioPlayer from './../lib/AudioPlayer';\nimport { ActionApplyResult, ActionRevertResult, MediaType, MediaStateItem, ActionInstance } from '../lib/types';\n\nexport class Play extends Action {\n\n static override id = 'Play';\n\n static override async shouldProceed(context?: any): Promise {\n if (typeof context !== 'object' || context === null) {\n return;\n }\n\n const { userInitiated, skip } = context;\n\n if (userInitiated === false && skip === false) {\n const voicePlayers = this.engine.mediaPlayers('voice') as (HTMLAudioElement | HTMLVideoElement | AudioPlayer)[];\n\n for (const player of voicePlayers) {\n if (!player.ended) {\n throw new Error('Voice player still playing.');\n }\n }\n }\n }\n\n static override async willProceed(): Promise {\n Play.shutUp();\n }\n\n static override async willRollback(): Promise {\n Play.shutUp();\n }\n\n static override async setup(): Promise {\n if (!this.engine.audioContext) {\n this.engine.audioContext = new (window.AudioContext || (window as any).webkitAudioContext)();\n }\n\n // Initialize AudioPlayer worklets for the audio context\n AudioPlayer.initialize(this.engine.audioContext).catch((error: any) => {\n console.warn('Failed to initialize AudioPlayer worklets:', error);\n });\n\n this.engine.history('music');\n this.engine.history('sound');\n this.engine.history('voice');\n this.engine.state({\n music: [],\n sound: [],\n voice: []\n });\n }\n\n static override async init(selector: string): Promise {\n const mediaPlayers = Object.keys(this.engine.mediaPlayers());\n // Set the volume of all the media components on the settings screen\n for (const mediaType of mediaPlayers) {\n const element = this.engine.element().find(`[data-target=\"${mediaType}\"]`).get(0) as HTMLInputElement | undefined;\n\n if (element) {\n const volumeSettings = this.engine.preference('Volume') as Record;\n let volume = volumeSettings[Text.capitalize(mediaType)];\n\n if (typeof volume === 'string') {\n volume = parseFloat(volume as unknown as string);\n }\n\n element.value = String(volume);\n }\n }\n }\n\n static override async bind(selector: string): Promise {\n const engine = this.engine;\n\n engine.registerListener('set-volume', {\n callback: (event: Event, element: DOM) => {\n const target = element.data('target') as string;\n let value: string | number = element.value() as string;\n\n if (typeof value === 'string') {\n value = parseFloat(value);\n }\n\n if (target === 'video') {\n $_('[data-video]').each((el: any) => {\n (el as HTMLMediaElement).volume = value as number;\n });\n } else {\n const players = engine.mediaPlayers(target) as (HTMLAudioElement | AudioPlayer)[];\n\n // Music volume should also affect the main screen ambient music\n if (target === 'music') {\n const ambientPlayer = engine.ambientPlayer as (HTMLAudioElement & { gainNode?: GainNode }) | null;\n if (ambientPlayer && ambientPlayer.gainNode && engine.audioContext) {\n ambientPlayer.gainNode.gain.setValueAtTime(value as number, engine.audioContext.currentTime);\n } else if (ambientPlayer && ambientPlayer.volume !== undefined) {\n ambientPlayer.volume = value as number;\n }\n }\n\n for (const player of players) {\n // Handle both HTMLAudioElement and AudioPlayer\n const volumePercentage = player.dataset?.volumePercentage;\n if (volumePercentage && !isNaN(parseInt(volumePercentage))) {\n player.volume = (parseInt(volumePercentage) / 100) * (value as number);\n } else {\n player.volume = value as number;\n }\n }\n }\n\n const volumeSettings = engine.preference('Volume') as Record;\n volumeSettings[Text.capitalize(target)] = value as number;\n engine.preferences(engine.preferences(), true);\n }\n });\n }\n\n static override async onLoad(): Promise {\n const mediaPlayers = Object.keys(this.engine.mediaPlayers());\n const promises: Promise[] = [];\n const pausedMedia: { type: string; media: string }[] = [];\n\n for (const mediaType of mediaPlayers) {\n const state = this.engine.state(mediaType as keyof import('../lib/types').StateMap) as MediaStateItem[] | undefined;\n\n if (typeof state !== 'undefined' && Array.isArray(state)) {\n if (state.length > 0) {\n for (const s of state) {\n const action = this.engine.prepareAction(s.statement, { cycle: 'Application' }) as ActionInstance | null;\n if (action !== null) {\n const promise = action.willApply().then(() => {\n return action.apply().then(() => {\n return action.didApply({ updateHistory: false, updateState: false });\n });\n });\n\n promises.push(promise);\n\n // Track media that should be paused after restore\n if (s.paused) {\n const parts = s.statement.split(' ');\n // Statement format: \"play [options]\"\n if (parts.length >= 3) {\n pausedMedia.push({ type: parts[1], media: parts[2] });\n }\n }\n }\n }\n }\n }\n }\n\n if (promises.length > 0) {\n await Promise.all(promises);\n }\n\n // Restore paused state for media that was paused when saved\n for (const { type, media } of pausedMedia) {\n const player = this.engine.mediaPlayer(type, media);\n player?.pause();\n }\n }\n\n static override async reset(): Promise {\n const players = this.engine.mediaPlayers();\n\n // Stop and remove all the media players\n for (const playerType of Object.keys(players)) {\n this.engine.removeMediaPlayer(playerType);\n }\n\n this.engine.state({\n music: [],\n sound: [],\n voice: []\n });\n }\n\n static override matchString([action]: string[]): boolean {\n return action === 'play';\n }\n\n // Stop the voice player\n static shutUp(): void {\n const players = this.engine.mediaPlayers('voice', true);\n for (const media of Object.keys(players)) {\n this.engine.removeMediaPlayer('voice', media);\n }\n\n this.engine.state({ voice: [] });\n }\n\n type: MediaType;\n directory: string;\n mediaKey: string;\n props: string[];\n mediaVolume: number;\n media: string;\n player: any;\n\n constructor([action, type, media, ...props]: string[]) {\n super();\n this.type = type as MediaType;\n this.media = '';\n\n if (this.type === 'music') {\n this.directory = this.type;\n } else {\n // Directories are always plural so we need to add an \"s\"\n this.directory = this.type + 's';\n }\n\n this.mediaKey = media;\n this.props = props;\n\n const volumeSettings = this.engine.preference('Volume') as Record;\n\n this.mediaVolume = volumeSettings[Text.capitalize(this.type)];\n\n // Check if a media was defined or just a `play music` was stated\n if (typeof media !== 'undefined' && media !== 'with') {\n if (typeof this.engine.asset(this.directory, media) !== 'undefined') {\n this.media = this.engine.asset(this.directory, media) as string;\n } else {\n this.media = media;\n }\n\n const player = this.engine.mediaPlayer(this.type, this.mediaKey);\n\n // We'll create the player in the apply method since it's async\n this.player = typeof player === 'undefined' ? null : player;\n } else {\n this.player = this.engine.mediaPlayers(this.type);\n }\n }\n\n async createAudioPlayer(paused = false, volume = 1): Promise {\n const audioContext = this.engine.audioContext!;\n const gainNode = audioContext.createGain();\n gainNode.connect(audioContext.destination);\n\n // Check if audio is already cached\n const cacheKey = `${this.directory}/${this.mediaKey}`;\n let audioBuffer = this.engine.audioBufferCache(cacheKey);\n\n if (!audioBuffer) {\n // Load and decode audio file\n const assetsPath = this.engine.setting('AssetsPath') as Record;\n const response = await fetch(`${assetsPath.root}/${assetsPath[this.directory]}/${this.media}`);\n const arrayBuffer = await response.arrayBuffer();\n audioBuffer = await audioContext.decodeAudioData(arrayBuffer);\n }\n\n // Parse effects from props\n const effects = this.parseEffects();\n\n return new AudioPlayer(audioContext, audioBuffer, {\n outputNode: gainNode,\n effects: effects,\n paused: paused,\n volume: volume\n });\n }\n\n parseEffects(): Record {\n const availableEffects = AudioPlayer.effects();\n\n const effects: Record = {};\n\n for (const config of availableEffects) {\n const index = this.props.indexOf(config.id);\n\n if (index === -1) {\n continue;\n }\n\n const params: Record = {};\n\n // Parse parameters based on the effect's parameter list\n for (let i = 0; i < config.params.length; i++) {\n const paramName = config.params[i];\n const paramValue = this.props[index + 1 + i];\n\n if (paramValue !== undefined) {\n // Try to parse as number first, fallback to string\n const numValue = parseFloat(paramValue);\n params[paramName] = isNaN(numValue) ? paramValue : numValue;\n }\n }\n\n effects[config.id] = params;\n }\n\n return effects;\n }\n\n override async willApply(): Promise {\n if (this.player || this.mediaKey) {\n if (this.player instanceof AudioPlayer) {\n this.player.loop = false;\n }\n return;\n }\n\n throw new Error('Media player was not defined.');\n }\n\n override async apply({ paused = false } = {}): Promise {\n // Check if the audio should have a fade time\n const fadePosition = this.props.indexOf('fade');\n const shouldLoop = this.props.indexOf('loop') > -1;\n const volumePercentage = this.props.indexOf('volume') > -1 ? parseInt(this.props[this.props.indexOf('volume') + 1]) / 100 : 1;\n const volume = this.mediaVolume * volumePercentage;\n\n // Create player if it doesn't exist yet\n if (this.player === null) {\n this.player = await this.createAudioPlayer(paused, volume);\n this.engine.mediaPlayer(this.type, this.mediaKey, this.player);\n }\n\n if (this.player instanceof AudioPlayer) {\n // Make the audio loop if it was provided as a prop\n if (shouldLoop) {\n this.player.loop = true;\n }\n\n // Set volume through the AudioPlayer setter\n this.player.volume = volume;\n this.player.dataset.volumePercentage = (volumePercentage * 100).toString();\n\n this.player.onended = () => {\n const endState: Record = {};\n endState[this.type] = this.engine.state(this.type).filter((s: any) => s.statement !== this._statement);\n this.engine.state(endState);\n this.engine.removeMediaPlayer(this.type, this.mediaKey);\n };\n\n if (paused === true) {\n return Promise.resolve();\n }\n\n // Start playback first, then apply fade if requested\n await this.player.play();\n\n if (fadePosition > -1) {\n const fadeTime = this.props[fadePosition + 1];\n const match = fadeTime.match(/\\d*(\\.\\d*)?/);\n const duration = match ? parseFloat(match[0]) : 0;\n // Don't await fadeIn - let it run in background while playback continues\n this.player.fadeIn(duration, this.player.volume);\n }\n\n return;\n\n }\n else if (this.player instanceof Array) {\n const promises = [];\n for (const player of this.player) {\n if (player.paused && !player.ended) {\n if (fadePosition > -1) {\n const fadeTime = this.props[fadePosition + 1];\n const match = fadeTime.match(/\\d*(\\.\\d*)?/);\n const duration = match ? parseFloat(match[0]) : 0;\n player.fadeIn(duration);\n }\n promises.push(player.play());\n }\n }\n await Promise.all(promises);\n } else {\n throw new Error('An error occurred, you probably have a typo on the media you want to play.');\n }\n }\n\n override async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n if (updateHistory === true) {\n if (this.player instanceof AudioPlayer || this.mediaKey) {\n this.engine.history(this.type).push(this._statement as string);\n }\n }\n\n if (updateState === true) {\n const currentState = this.engine.state(this.type);\n if (this.player instanceof AudioPlayer || this.mediaKey) {\n const newItem: MediaStateItem = { statement: this._statement as string, paused: false };\n this.engine.state({ [this.type]: [...currentState, newItem] });\n } else if (this.player instanceof Array) {\n const updatedState = currentState.map((item: MediaStateItem) => ({\n ...item,\n paused: false\n }));\n this.engine.state({ [this.type]: updatedState });\n }\n }\n\n return { advance: true };\n }\n\n override async revert(): Promise {\n if (typeof this.mediaKey !== 'undefined') {\n this.engine.removeMediaPlayer(this.type, this.mediaKey);\n } else if (this.player instanceof Array) {\n for (const player of this.player) {\n if (!player.paused && !player.ended) {\n player.pause();\n }\n }\n }\n }\n\n override async didRevert(): Promise {\n const currentState = this.engine.state(this.type);\n\n if (typeof this.mediaKey !== 'undefined') {\n const history = this.engine.history(this.type) as string[];\n for (let i = history.length - 1; i >= 0; i--) {\n if (history[i] === this._statement) {\n history.splice(i, 1);\n break;\n }\n }\n const filteredState = currentState.filter((m: MediaStateItem) => m.statement !== this._statement);\n this.engine.state({ [this.type]: filteredState });\n } else if (this.player instanceof Array) {\n const updatedState = currentState.map((item: MediaStateItem) => ({\n ...item,\n paused: true\n }));\n this.engine.state({ [this.type]: updatedState });\n }\n return { advance: true, step: true };\n }\n}\n\nexport default Play;\n", + "import { Preload as ArtemisPreload } from '@aegis-framework/artemis';\nimport Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult, VisualNovelEngine } from '../lib/types';\n\n/**\n * Asset loader function type\n * @param url - The URL of the asset to load\n * @param engine - The Monogatari engine instance\n * @returns A promise resolving to the loaded asset\n */\nexport type AssetLoader = (url: string, engine: VisualNovelEngine) => Promise;\n\n/**\n * Asset cache accessor type for getting/setting/deleting cached assets\n */\nexport type AssetCacheAccessor = {\n\tget: (engine: VisualNovelEngine, key: string) => T | undefined;\n\tset: (engine: VisualNovelEngine, key: string, value: T) => void;\n\tdelete?: (engine: VisualNovelEngine, key: string) => void;\n\tclear?: (engine: VisualNovelEngine, prefix: string) => void;\n};\n\n/**\n * Configuration for registering a custom asset loader\n */\nexport type LoaderConfig = {\n\tloader: AssetLoader;\n\tcache: AssetCacheAccessor;\n};\n\n/**\n * Type definitions for preload block configuration\n * Users can extend this via declaration merging to add custom categories\n */\nexport interface PreloadBlock {\n\tmusic?: string[];\n\tsound?: string[];\n\tvoice?: string[];\n\tscenes?: string[];\n\timages?: string[];\n\tcharacters?: Record; // { characterId: [sprite names] }\n\t[category: string]: string[] | Record | undefined;\n}\n\nexport type PreloadBlocks = Record;\n\nexport class Preload extends Action {\n\n\tstatic override id = 'Preload';\n\n\t// Static storage for block configurations\n\tstatic _blocks: PreloadBlocks = {};\n\n\t// Registry of custom loaders by type name\n\tstatic _loaders: Map = new Map();\n\n\t// Registry mapping category names to loader types\n\tstatic _categoryLoaderMap: Map = new Map();\n\n\t// Registry mapping category aliases (e.g., 'sound' -> 'sounds')\n\tstatic _categoryAliases: Map = new Map();\n\n\t/**\n\t * Setup default loaders for built-in asset types.\n\t * Runs during setup() phase to ensure loaders are available before scripts execute.\n\t */\n\tstatic override async setup(): Promise {\n\t\t// Register default audio loader with IndexedDB persistence\n\t\tif (!this._loaders.has('audio')) {\n\t\t\tthis.registerLoader('audio', {\n\t\t\t\tloader: async (url: string, eng: VisualNovelEngine) => {\n\t\t\t\t\t// Try to load from IndexedDB first (fast path - no network, no decode)\n\t\t\t\t\tconst cacheKey = url; // URL is used as key for persistent storage\n\t\t\t\t\tconst persistedBuffer = await eng.getAudioBufferPersistent(cacheKey);\n\t\t\t\t\tif (persistedBuffer) {\n\t\t\t\t\t\treturn persistedBuffer;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Not in IndexedDB, fetch and decode from network\n\t\t\t\t\tconst buffer = await ArtemisPreload.audio(url, eng.audioContext);\n\n\t\t\t\t\t// Store in IndexedDB for future sessions (async, don't wait)\n\t\t\t\t\teng.storeAudioBufferPersistent(cacheKey, buffer).catch(() => {\n\t\t\t\t\t\t// Silently ignore storage failures\n\t\t\t\t\t});\n\n\t\t\t\t\treturn buffer;\n\t\t\t\t},\n\t\t\t\tcache: {\n\t\t\t\t\tget: (eng: VisualNovelEngine, key: string) => eng.audioBufferCache(key),\n\t\t\t\t\tset: (eng: VisualNovelEngine, key: string, value: AudioBuffer) => eng.audioBufferCache(key, value),\n\t\t\t\t\tdelete: (eng: VisualNovelEngine, key: string) => eng.audioBufferUncache(key),\n\t\t\t\t\tclear: (eng: VisualNovelEngine, prefix: string) => eng.audioBufferClearCache(prefix),\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Register default image loader\n\t\tif (!this._loaders.has('image')) {\n\t\t\tthis.registerLoader('image', {\n\t\t\t\tloader: async (url: string) => {\n\t\t\t\t\treturn ArtemisPreload.image(url);\n\t\t\t\t},\n\t\t\t\tcache: {\n\t\t\t\t\tget: (eng: VisualNovelEngine, key: string) => eng.imageCache(key),\n\t\t\t\t\tset: (eng: VisualNovelEngine, key: string, value: HTMLImageElement) => eng.imageCache(key, value),\n\t\t\t\t\tdelete: (eng: VisualNovelEngine, key: string) => eng.imageUncache(key),\n\t\t\t\t\tclear: (eng: VisualNovelEngine, prefix: string) => eng.imageClearCache(prefix),\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Register default category mappings (using plural names as assets are registered)\n\t\tconst defaultAudioCategories = ['music', 'sounds', 'voices'];\n\t\tconst defaultImageCategories = ['scenes', 'images', 'characters'];\n\n\t\tfor (const category of defaultAudioCategories) {\n\t\t\tif (!this._categoryLoaderMap.has(category)) {\n\t\t\t\tthis.registerCategory(category, 'audio');\n\t\t\t}\n\t\t}\n\n\t\tfor (const category of defaultImageCategories) {\n\t\t\tif (!this._categoryLoaderMap.has(category)) {\n\t\t\t\tthis.registerCategory(category, 'image');\n\t\t\t}\n\t\t}\n\n\t\t// Register default category aliases (singular -> plural)\n\t\tconst defaultAliases: Record = {\n\t\t\t'scene': 'scenes',\n\t\t\t'image': 'images',\n\t\t\t'sound': 'sounds',\n\t\t\t'voice': 'voices'\n\t\t};\n\n\t\tfor (const [alias, category] of Object.entries(defaultAliases)) {\n\t\t\tif (!this._categoryAliases.has(alias)) {\n\t\t\t\tthis.registerAlias(alias, category);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Register a custom asset loader\n\t * @param type - Unique identifier for this loader type (e.g., 'audio', 'image', 'video')\n\t * @param config - Loader configuration with loader function and cache accessors\n\t */\n\tstatic registerLoader(type: string, config: LoaderConfig): void {\n\t\tthis._loaders.set(type, config as LoaderConfig);\n\t}\n\n\t/**\n\t * Register a category to use a specific loader type\n\t * @param category - Category name (e.g., 'music', 'videos')\n\t * @param loaderType - The loader type to use (e.g., 'audio', 'video')\n\t */\n\tstatic registerCategory(category: string, loaderType: string): void {\n\t\tthis._categoryLoaderMap.set(category, loaderType);\n\t}\n\n\t/**\n\t * Get the loader type for a category\n\t * @param category - Category name\n\t * @returns The loader type string or undefined if not registered\n\t */\n\tstatic getLoaderType(category: string): string | undefined {\n\t\treturn this._categoryLoaderMap.get(category);\n\t}\n\n\t/**\n\t * Get a loader configuration by type\n\t * @param type - Loader type name\n\t * @returns The loader configuration or undefined if not registered\n\t */\n\tstatic getLoader(type: string): LoaderConfig | undefined {\n\t\treturn this._loaders.get(type);\n\t}\n\n\t/**\n\t * Check if a category has a registered loader\n\t * @param category - Category name\n\t * @returns True if the category has a registered loader\n\t */\n\tstatic hasLoader(category: string): boolean {\n\t\tconst loaderType = this._categoryLoaderMap.get(category);\n\t\treturn loaderType !== undefined && this._loaders.has(loaderType);\n\t}\n\n\t/**\n\t * Register an alias for a category (e.g., 'sound' -> 'sounds')\n\t * @param alias - The alias name (e.g., 'sound')\n\t * @param category - The actual category name (e.g., 'sounds')\n\t */\n\tstatic registerAlias(alias: string, category: string): void {\n\t\tthis._categoryAliases.set(alias, category);\n\t}\n\n\t/**\n\t * Resolve a category name, applying any registered aliases\n\t * @param category - The category name or alias\n\t * @returns The resolved category name\n\t */\n\tstatic resolveCategory(category: string): string {\n\t\treturn this._categoryAliases.get(category) ?? category;\n\t}\n\n\t/**\n\t * Register or retrieve block configurations\n\t * @param config - Block configuration object to register (if setting)\n\t * @returns Current blocks configuration\n\t */\n\tstatic blocks(): PreloadBlocks;\n\tstatic blocks(config: PreloadBlocks): void;\n\tstatic blocks(config?: PreloadBlocks): PreloadBlocks | void {\n\t\tif (config !== undefined) {\n\t\t\t// Merge with existing blocks\n\t\t\tthis._blocks = { ...this._blocks, ...config };\n\t\t} else {\n\t\t\treturn this._blocks;\n\t\t}\n\t}\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'preload';\n\t}\n\n\t// Instance properties\n\tprivate category: string = '';\n\tprivate assetName: string = '';\n\tprivate blockId: string = '';\n\tprivate isBlock: boolean = false;\n\tprivate isBlocking: boolean = false;\n\tprivate characterId: string = '';\n\tprivate preloadPromise: Promise | null = null;\n\n\tconstructor([_action, typeOrBlock, ...rest]: string[]) {\n\t\tsuper();\n\n\t\t// Parse the statement\n\t\t// Possible formats:\n\t\t// - preload music theme [blocking]\n\t\t// - preload scene forest [blocking]\n\t\t// - preload character y happy [blocking]\n\t\t// - preload block battle_scene [blocking]\n\n\t\tif (typeOrBlock === 'block') {\n\t\t\tthis.isBlock = true;\n\t\t\tthis.blockId = rest[0];\n\t\t\tthis.isBlocking = rest.includes('blocking');\n\t\t} else if (typeOrBlock === 'character') {\n\t\t\tthis.category = 'characters';\n\t\t\tthis.characterId = rest[0];\n\t\t\tthis.assetName = rest[1];\n\t\t\tthis.isBlocking = rest.includes('blocking');\n\t\t} else {\n\t\t\t// Resolve category aliases (e.g., 'sound' -> 'sounds')\n\t\t\tthis.category = Preload.resolveCategory(typeOrBlock);\n\t\t\tthis.assetName = rest[0];\n\t\t\tthis.isBlocking = rest.includes('blocking');\n\t\t}\n\t}\n\n\t/**\n\t * Preload a single asset using the registered loader for its category\n\t * @param category - The asset category (e.g., 'music', 'scenes', 'videos')\n\t * @param assetName - The asset identifier\n\t */\n\tprivate async preloadAsset(category: string, assetName: string): Promise {\n\t\tconst loaderType = Preload.getLoaderType(category);\n\t\tif (!loaderType) {\n\t\t\tconsole.warn(`Preload: No loader registered for category \"${category}\"`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst loaderConfig = Preload.getLoader(loaderType);\n\t\tif (!loaderConfig) {\n\t\t\tconsole.warn(`Preload: Loader type \"${loaderType}\" not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst assetsPath = this.engine.setting('AssetsPath') as Record;\n\t\tconst assetFile = this.engine.asset(category, assetName) as string | undefined;\n\n\t\tif (!assetFile) {\n\t\t\tconsole.warn(`Preload: Asset \"${assetName}\" not found in category \"${category}\"`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst url = `${assetsPath.root}/${assetsPath[category]}/${assetFile}`;\n\t\tconst cacheKey = `${category}/${assetName}`;\n\n\t\t// Skip if already cached\n\t\tif (loaderConfig.cache.get(this.engine, cacheKey) !== undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst asset = await loaderConfig.loader(url, this.engine);\n\t\t\tloaderConfig.cache.set(this.engine, cacheKey, asset);\n\t\t} catch (error) {\n\t\t\tconsole.error(`Preload: Failed to preload ${category} asset \"${assetName}\":`, error);\n\t\t}\n\t}\n\n\t/**\n\t * Preload a character sprite using the registered 'image' loader\n\t */\n\tprivate async preloadCharacterSprite(characterId: string, spriteName: string): Promise {\n\t\tconst loaderConfig = Preload.getLoader('image');\n\t\tif (!loaderConfig) {\n\t\t\tconsole.warn(`Preload: Image loader not registered`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst character = this.engine.character(characterId);\n\t\tif (!character) {\n\t\t\tconsole.warn(`Preload: Character \"${characterId}\" not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst assetsPath = this.engine.setting('AssetsPath') as Record;\n\t\tlet directory = character.directory ? `${character.directory}/` : '';\n\t\tdirectory = `${assetsPath.root}/${assetsPath.characters}/${directory}`;\n\n\t\tconst spriteFile = character.sprites?.[spriteName];\n\t\tif (!spriteFile || typeof spriteFile !== 'string') {\n\t\t\tconsole.warn(`Preload: Sprite \"${spriteName}\" not found for character \"${characterId}\"`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst url = `${directory}${spriteFile}`;\n\t\tconst cacheKey = `characters/${characterId}/${spriteName}`;\n\n\t\t// Skip if already cached\n\t\tif (loaderConfig.cache.get(this.engine, cacheKey) !== undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst asset = await loaderConfig.loader(url, this.engine);\n\t\t\tloaderConfig.cache.set(this.engine, cacheKey, asset);\n\t\t} catch (error) {\n\t\t\tconsole.error(`Preload: Failed to preload character sprite \"${characterId}/${spriteName}\":`, error);\n\t\t}\n\t}\n\n\t/**\n\t * Preload all assets in a block\n\t */\n\tprivate async preloadBlock(blockId: string): Promise {\n\t\tconst block = Preload._blocks[blockId];\n\t\tif (!block) {\n\t\t\tconsole.warn(`Preload: Block \"${blockId}\" not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst promises: Promise[] = [];\n\n\t\tfor (const [category, assets] of Object.entries(block)) {\n\t\t\t// Handle characters separately (nested structure)\n\t\t\tif (category === 'characters' && typeof assets === 'object' && !Array.isArray(assets)) {\n\t\t\t\tfor (const [charId, sprites] of Object.entries(assets as Record)) {\n\t\t\t\t\tfor (const spriteName of sprites) {\n\t\t\t\t\t\tpromises.push(this.preloadCharacterSprite(charId, spriteName));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!Array.isArray(assets)) continue;\n\n\t\t\t// Use registered loader for this category\n\t\t\tif (Preload.hasLoader(category)) {\n\t\t\t\tfor (const assetName of assets) {\n\t\t\t\t\tpromises.push(this.preloadAsset(category, assetName));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.warn(`Preload: No loader registered for category \"${category}\" in block \"${blockId}\"`);\n\t\t\t}\n\t\t}\n\n\t\tawait Promise.all(promises);\n\t}\n\n\toverride async apply(): Promise {\n\t\t// Start the preload operation\n\t\tif (this.isBlock) {\n\t\t\tthis.preloadPromise = this.preloadBlock(this.blockId);\n\t\t} else if (this.category === 'characters') {\n\t\t\tthis.preloadPromise = this.preloadCharacterSprite(this.characterId, this.assetName);\n\t\t} else if (Preload.hasLoader(this.category)) {\n\t\t\tthis.preloadPromise = this.preloadAsset(this.category, this.assetName);\n\t\t} else {\n\t\t\tconsole.warn(`Preload: No loader registered for category \"${this.category}\"`);\n\t\t}\n\n\t\t// If blocking, wait for the preload to complete\n\t\tif (this.isBlocking && this.preloadPromise) {\n\t\t\tawait this.preloadPromise;\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n // Can't really revert a preload action\n return;\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Preload;\n\n", + "import { $_ } from '@aegis-framework/artemis';\nimport Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance, SceneStateItem } from '../lib/types';\n\nexport class Scene extends Action {\n\n\tstatic override id = 'Scene';\n\tstatic override loadingOrder = -2;\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('scene');\n\t\tthis.engine.history('sceneElements');\n\t\tthis.engine.history('sceneState');\n\n\t\tthis.engine.global('_should_restore_nvl', false);\n\n\t\tthis.engine.state({\n\t\t\tscene: ''\n\t\t});\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst sceneState = this.engine.history('sceneState');\n\t\tconst sceneElements = this.engine.history('sceneElements');\n\n\t\tif (sceneState.length !== sceneElements.length) {\n\t\t\tconst states = sceneElements.map((elements: string[]) => {\n\t\t\t\tif (elements.length > 0) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcharacters: elements.filter(element => element.indexOf('data-character=') > -1).map((element) => {\n\t\t\t\t\t\t\tconst div = document.createElement('div');\n\t\t\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t\t\t\tconst firstChild = div.firstChild as HTMLElement;\n\t\t\t\t\t\t\tif (!firstChild) return '';\n\t\t\t\t\t\t\tconst image = $_(firstChild);\n\t\t\t\t\t\t\tconst imgElement = image.get(0);\n\t\t\t\t\t\t\tif (!imgElement) return '';\n\t\t\t\t\t\t\tconst classes = Array.from(imgElement.classList).filter(c => c !== 'animated').join(' ');\n\t\t\t\t\t\t\treturn `show character ${image.data('character')} ${image.data('sprite')}${classes.length > 0 ? ` with ${classes}` : ''}`;\n\t\t\t\t\t\t}),\n\t\t\t\t\t\timages: elements.filter(element => element.indexOf('data-image=') > -1).map((element) => {\n\t\t\t\t\t\t\tconst div = document.createElement('div');\n\t\t\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t\t\t\tconst firstChild = div.firstChild as HTMLElement;\n\t\t\t\t\t\t\tif (!firstChild) return '';\n\t\t\t\t\t\t\tconst image = $_(firstChild);\n\t\t\t\t\t\t\tconst imgElement = image.get(0);\n\t\t\t\t\t\t\tif (!imgElement) return '';\n\t\t\t\t\t\t\tconst classes = Array.from(imgElement.classList).filter(c => c !== 'animated').join(' ');\n\t\t\t\t\t\t\treturn `show image ${image.data('image')}${classes.length > 0 ? ` with ${classes}` : ''}`;\n\t\t\t\t\t\t}),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tcharacters: [],\n\t\t\t\t\timages: []\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tfor (const state of states) {\n\t\t\t\tthis.engine.history('sceneState').push(state);\n\t\t\t}\n\t\t}\n\n\t\tconst scene = this.engine.state('scene');\n\t\tif (scene !== '') {\n\t\t\tconst action = this.engine.prepareAction(scene, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tawait action.willApply();\n\t\t\t\tawait action.apply();\n\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tthis.engine.state({\n\t\t\tscene: ''\n\t\t});\n\t}\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'scene';\n\t}\n\n\tscene: string;\n\tscene_elements: string[];\n\tscene_state: Record;\n\n\tconstructor([show, type, scene, ...classes]: string[]) {\n\t\tsuper();\n\t\tthis.scene = scene;\n\n\t\tthis.scene_elements = [];\n\t\tthis.scene_state = {};\n\t}\n\n\toverride async willApply(): Promise {\n\t\treturn Promise.resolve();\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst selectors = [\n\t\t\t'[data-screen=\"game\"] [data-character]:not([data-visibility=\"invisible\"])',\n\t\t\t'[data-screen=\"game\"] [data-image]:not([data-visibility=\"invisible\"])'\n\t\t];\n\n\t\tthis.engine.element().find(selectors.join(',')).each((element: HTMLElement) => {\n\t\t\tthis.scene_elements.push(element.outerHTML);\n\t\t});\n\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as (HTMLElement & { props?: { mode?: string } }) | undefined;\n\n\t\tthis.scene_state = {\n\t\t\tcharacters: [...this.engine.state('characters')],\n\t\t\timages: [...this.engine.state('images')],\n\t\t\ttextBoxMode: textBox?.props?.mode ?? '',\n\t\t};\n\n\t\tconst restoringState = this.engine.global('_restoring_state');\n\n\t\tconst statement = this._statement as string;\n\t\tconst action = this.engine.prepareAction(statement.replace('show scene', 'show background'), { cycle: 'Application' }) as ActionInstance | null;\n\t\tif (action !== null) {\n\t\t\tawait action.willApply();\n\t\t\tawait action.apply();\n\t\t\tawait action.didApply({ updateHistory: !restoringState, updateState: !restoringState });\n\t\t}\n\n\t\t// Check if the engine is no loading a save file, since loading a file applies the actions on that state\n\t\t// asynchronously, there's a chance this would run after a show image/character action and would remove them\n\t\t// from the scene, which is something we don't want\n\t\tif (restoringState === false) {\n\t\t\tthis.engine.state({\n\t\t\t\tcharacters: [],\n\t\t\t\timages: []\n\t\t\t});\n\n\t\t\tthis.engine.element().find('[data-character]').remove();\n\t\t\tthis.engine.element().find('[data-image]').remove();\n\t\t}\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history('sceneElements').push(this.scene_elements);\n\t\t\tthis.engine.history('sceneState').push(this.scene_state as SceneStateItem);\n\t\t\tthis.engine.history('scene').push(this._statement as string);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tscene: this._statement as string\n\t\t\t});\n\t\t}\n\n\t\tconst restoringState = this.engine.global('_restoring_state');\n\t\tif (restoringState === false) {\n\t\t\tconst dialogAction = this.engine.action('Dialog');\n\t\t\tif (dialogAction) {\n\t\t\t\t(dialogAction as unknown as { reset: (opts: { saveNVL: boolean }) => void }).reset({ saveNVL: true });\n\t\t\t}\n\t\t}\n\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tthis.engine.element().find('[data-character]').remove();\n\t\tthis.engine.element().find('[data-image]').remove();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst statement = this._statement as string;\n\t\tawait this.engine.revert(statement.replace('show scene', 'show background'), false, false);\n\t\t// this.engine.history ('scene').pop ();\n\t\tconst restoreSceneItems = () => {\n\t\t\tconst sceneElementsHistory = this.engine.history('sceneElements') as string[][];\n\t\t\tif (sceneElementsHistory.length > 0) {\n\t\t\t\tconst scene_elements = sceneElementsHistory.pop();\n\n\t\t\t\tif (typeof scene_elements === 'object' && scene_elements) {\n\t\t\t\t\tfor (const element of scene_elements) {\n\t\t\t\t\t\tthis.engine.element().find('[data-screen=\"game\"]').append(element);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst sceneStateHistory = this.engine.history('sceneState') as SceneStateItem[];\n\t\t\tif (sceneStateHistory.length > 0) {\n\t\t\t\tconst scene_state = sceneStateHistory.pop();\n\n\t\t\t\tif (typeof scene_state === 'object' && scene_state) {\n\t\t\t\t\tconst state = { ...scene_state };\n\t\t\t\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as (HTMLElement & { setProps?: (props: { mode: string }) => void }) | undefined;\n\n\t\t\t\t\tif (textBox?.setProps) {\n\t\t\t\t\t\ttextBox.setProps({ mode: state.textBoxMode || 'adv' });\n\t\t\t\t\t}\n\n\t\t\t\t\tif (state.textBoxMode === 'nvl') {\n\t\t\t\t\t\tthis.engine.global('_should_restore_nvl', true);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.engine.state({\n\t\t\t\t\t\tcharacters: state.characters ?? [],\n\t\t\t\t\t\timages: state.images ?? []\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Check if the scene history still has elements left, if it doesn't then we need to roll back\n\t\t// to the initial background defined in the CSS and not in the script.\n\t\tconst sceneHistory = this.engine.history('scene') as string[];\n\t\tif (sceneHistory.length > 0) {\n\t\t\tthis.engine.global('_scene_history_cleared_by_background', false);\n\n\t\t\t// Pop the current scene first, then set state to the previous one\n\t\t\tsceneHistory.pop();\n\n\t\t\tthis.engine.state({\n\t\t\t\tscene: sceneHistory.length > 0 ? sceneHistory[sceneHistory.length - 1] : ''\n\t\t\t});\n\n\t\t\trestoreSceneItems();\n\t\t\tconst dialogAction = this.engine.action('Dialog');\n\t\t\tif (dialogAction) {\n\t\t\t\t(dialogAction as unknown as { reset: () => Promise }).reset();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// If the scene history was empty, we just need to check if it was the background\n\t\t// action who cleared it. If that was the case, we still need to restore the other\n\t\t// items that we save for each scene apart from the background.\n\t\tif (this.engine.global('_scene_history_cleared_by_background') === true) {\n\t\t\tthis.engine.global('_scene_history_cleared_by_background', false);\n\t\t\trestoreSceneItems();\n\t\t\tconst dialogAction = this.engine.action('Dialog');\n\t\t\tif (dialogAction) {\n\t\t\t\t(dialogAction as unknown as { reset: () => Promise }).reset();\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Scene;", + "import Action from './../lib/Action';\nimport { Text } from '@aegis-framework/artemis';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class ShowBackground extends Action {\n\n\tstatic override id = 'Show::Background';\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('background');\n\n\t\tthis.engine.state({\n\t\t\tbackground: ''\n\t\t});\n\n\t\tthis.engine.global('_scene_history_cleared_by_background', false);\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst background = this.engine.state('background');\n\t\tif (typeof background === 'string' && background !== '') {\n\t\t\tconst action = this.engine.prepareAction(background, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tawait action.willApply();\n\t\t\t\tawait action.apply();\n\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tconst background = this.engine.element().find('[data-ui=\"background\"]');\n\n\t\tbackground.style('background-image', 'initial');\n\t\tbackground.style('background-color', 'initial');\n\n\t\tthis.engine.state({\n\t\t\tbackground: ''\n\t\t});\n\t}\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'background';\n\t}\n\n\tbackground: string;\n\tproperty: string;\n\tvalue: string;\n\tclasses: string[];\n\n\tconstructor([show, type, background, ...classes]: string[]) {\n\t\tsuper();\n\t\tthis.background = background;\n\t\tthis.property = 'background-image';\n\t\tif (typeof this.engine.asset('scenes', background) !== 'undefined') {\n\t\t\tthis.value = `url(${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').scenes}/${this.engine.asset('scenes', background)})`;\n\t\t} else {\n\t\t\tconst rest = [background, ...classes].join(' ');\n\t\t\tif (classes.indexOf('with') > -1) {\n\t\t\t\tthis.value = Text.prefix('with', rest);\n\t\t\t} else {\n\t\t\t\tthis.value = rest;\n\t\t\t}\n\n\t\t\tconst isColorProperty = ['#', 'rgb', 'hsl'].findIndex((color) => {\n\t\t\t\treturn this.value.indexOf(color) === 0;\n\t\t\t}) > -1;\n\n\t\t\tconst isNamed = this.value.indexOf(' ') > -1 ? false : new RegExp(/\\w+/).test(this.value) && !(new RegExp(/(url|gradient)\\(/).test(this.value));\n\n\t\t\tif (isColorProperty === true || isNamed === true) {\n\t\t\t\tthis.property = 'background-color';\n\t\t\t}\n\t\t}\n\n\t\tthis.classes = ['animated', ...classes];\n\t}\n\n\toverride async willApply(): Promise {\n\t\tconst background = this.engine.element().find('[data-ui=\"background\"]');\n\n\t\tbackground.removeClass();\n\t\t// Force reflow to restart CSS animations\n\t\tconst el = background.get(0);\n\t\tif (el) {\n\t\t\tvoid (el as any).offsetWidth;\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst background = this.engine.element().find('[data-ui=\"background\"]');\n\n\t\tthis.engine.element().find('[data-ui=\"background\"]').style('background-image', 'initial');\n\t\tthis.engine.element().find('[data-ui=\"background\"]').style('background-color', 'initial');\n\t\tthis.engine.element().find('[data-ui=\"background\"]').style('animation-duration', '');\n\n\t\tthis.engine.element().find('[data-ui=\"background\"]').style(this.property, this.value);\n\n\t\tconst durationPosition = this.classes.indexOf('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\tbackground.style('animation-duration', this.classes[durationPosition + 1]);\n\t\t}\n\n\t\tfor (const newClass of this.classes) {\n\t\t\tbackground.addClass(newClass);\n\t\t}\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tbackground: this._statement as string\n\t\t\t});\n\t\t}\n\n\t\tif (updateHistory === true) {\n\t\t\t(this.engine.history('background') as string[]).push(this._statement as string);\n\t\t}\n\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tthis.engine.element().find('[data-ui=\"background\"]').removeClass();\n\t}\n\n\toverride async revert(): Promise {\n\t\tlet history = this.engine.history('background') as string[];\n\n\t\thistory.pop();\n\n\t\tif (history.length === 0) {\n\t\t\thistory = this.engine.history('scene') as string[];\n\t\t\thistory.pop();\n\t\t\tthis.engine.global('_scene_history_cleared_by_background', true);\n\t\t}\n\n\t\tif (history.length > 0) {\n\t\t\tconst background = this.engine.element().find('[data-ui=\"background\"]');\n\t\t\tconst last = history[history.length - 1].replace('show scene', 'show background');\n\t\t\tconst action = this.engine.prepareAction(last, { cycle: 'Application' }) as (ActionInstance & { property?: string; value?: string; classes?: string[] }) | null;\n\n\t\t\tbackground.style('background-image', 'initial');\n\t\t\tbackground.style('background-color', 'initial');\n\t\t\tif (action !== null && action.property && action.value) {\n\t\t\t\tbackground.style(action.property, action.value);\n\t\t\t}\n\n\t\t\t// Use the previous background's classes, not the current one being reverted\n\t\t\tconst classesToApply = action?.classes ?? [];\n\t\t\tfor (const newClass of classesToApply) {\n\t\t\t\tbackground.addClass(newClass);\n\t\t\t}\n\n\t\t\tthis.engine.state({\n\t\t\t\tbackground: last\n\t\t\t});\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default ShowBackground;", + "import Action from './../lib/Action';\nimport { $_ } from '@aegis-framework/artemis';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance, CharacterHistoryItem } from '../lib/types';\n\nexport class ShowCharacter extends Action {\n\n\tstatic override id = 'Show::Character';\n\n\tstatic override async setup(): Promise {\n\t\t// The character history saves what characters have been displayed\n\t\tthis.engine.history('character');\n\n\t\t// The characters state variable holds what characters are being shown\n\t\t// right now\n\t\tthis.engine.state({\n\t\t\tcharacters: []\n\t\t});\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tthis.engine.element().find('[data-screen=\"game\"] [data-character]').remove();\n\n\t\tthis.engine.state({\n\t\t\tcharacters: []\n\t\t});\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst characters = this.engine.state('characters') as string[];\n\t\tconst promises: Promise[] = [];\n\n\t\tfor (const item of characters) {\n\t\t\tconst action = this.engine.prepareAction(item, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tconst promise = (async () => {\n\t\t\t\t\tawait action.willApply();\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t\t})();\n\n\t\t\t\tpromises.push(promise);\n\t\t\t}\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\tawait Promise.all(promises);\n\t\t}\n\t}\n\n\tstatic override matchString([show, type, identifier]: string[]): boolean {\n\t\treturn show === 'show' && type === 'character' && identifier.indexOf(':') === -1;\n\t}\n\n\tasset: string;\n\tstate: string | undefined;\n\tsprite: string;\n\tcharacter: any;\n\timage: any;\n\tclasses: string[];\n\n\tconstructor([show, type, asset, sprite, ...classes]: string[]) {\n\t\tsuper();\n\t\tthis.asset = asset;\n\n\t\tthis.state = this.engine.state('characters').find((statement: string) => {\n\t\t\tconst [show, character, asset, name] = statement.split(' ');\n\t\t\treturn asset === this.asset;\n\t\t});\n\n\t\tif (typeof this.engine.character(asset) !== 'undefined') {\n\t\t\t// show [character] [expression] at [position] with [animation] [infinite]\n\t\t\tthis.sprite = sprite;\n\n\t\t\tthis.character = this.engine.character(asset);\n\t\t\tthis.image = this.character.sprites[this.sprite];\n\n\t\t\tif (typeof classes !== 'undefined') {\n\t\t\t\tthis.classes = ['animated', ...classes.filter((item) => item !== 'at' && item !== 'with')];\n\t\t\t} else {\n\t\t\t\tthis.classes = [];\n\t\t\t}\n\n\t\t} else {\n\t\t\tthis.sprite = '';\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (typeof this.character === 'undefined') {\n\t\t\tFancyError.show('action:show_character:character_not_found', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tavailableCharacters: Object.keys(this.engine.characters()),\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error(`Character \"${this.asset}\" not found.`);\n\t\t}\n\n\t\tif (typeof this.image === 'undefined') {\n\t\t\tFancyError.show('action:show_character:sprite_not_found', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tsprite: this.sprite,\n\t\t\t\tavailableSprites: this.character.sprites ? Object.keys(this.character.sprites) : [],\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error(`Sprite \"${this.sprite}\" not found for character \"${this.asset}\".`);\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\t// show [character] [expression] at [position] with [animation] [infinite]\n\t\t// 0 1 2 3 4 5 6 7\n\n\t\t// show [character] [expression] with [animation] [infinite]\n\t\t// 0 1 2 3 4 5\n\n\t\t// show [character] [expression]\n\t\t// 0 1 2\n\n\t\tlet directory = this.character.directory;\n\t\tif (typeof directory == 'undefined') {\n\t\t\tdirectory = '';\n\t\t} else {\n\t\t\tdirectory += '/';\n\t\t}\n\n\t\tlet oneSpriteOnly = true;\n\n\t\tconst sprite = this.engine.element().find(`[data-character=\"${this.asset}\"]:not([data-visibility=\"invisible\"])`);\n\n\t\tconst spriteEl = sprite.get(0);\n\t\tif (sprite.exists() && spriteEl) {\n\t\t\tconst oldClasses = [...spriteEl.classList];\n\n\t\t\t// Check if there is any end-animation, here's what this matches:\n\t\t\t// 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ \"end-fadeIn\", \"fadeIn\" ]\n\t\t\tconst endAnimation = oldClasses.find((c: string) => c.match(/end-([A-Za-z]+)/) !== null);\n\n\t\t\tif (typeof endAnimation !== 'undefined') {\n\t\t\t\t// If there was, get the animation-only part\n\t\t\t\tconst [end, animation] = endAnimation.split('-');\n\t\t\t\tconst watchAnimation = oldClasses[oldClasses.indexOf(endAnimation) - 1];\n\t\t\t\tsprite.removeClass(watchAnimation);\n\t\t\t\tsprite.addClass(animation);\n\t\t\t\tsprite.data('visibility', 'invisible');\n\t\t\t\tsprite.on('animationend', (e: any) => {\n\t\t\t\t\te.target.remove();\n\t\t\t\t});\n\n\t\t\t\toneSpriteOnly = false;\n\t\t\t}\n\n\t\t\tfor (const oldClass of oldClasses) {\n\t\t\t\tif (this.classes.indexOf(oldClass) === -1) {\n\t\t\t\t\tsprite.removeClass(oldClass);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst imgSrc = `${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').characters}/${directory}`;\n\t\tconst position = (this._statement as string).match(/at\\s(\\S*)/);\n\n\t\tif (oneSpriteOnly && sprite.exists()) {\n\n\t\t\tif (this.engine.setting('ExperimentalFeatures') === true) {\n\t\t\t\t// If its another layered sprite\n\t\t\t\tif (sprite.matches('character-sprite') && typeof this.image === 'object') {\n\t\t\t\t\tconst image = sprite.get(0) as (HTMLElement & { setState?: (state: { layers: Record }) => void }) | undefined;\n\t\t\t\t\tconst layers: Record = {};\n\n\t\t\t\t\tfor (const [layer, asset] of Object.entries(this.image)) {\n\t\t\t\t\t\tlayers[layer] = {\n\t\t\t\t\t\t\tasset,\n\t\t\t\t\t\t\tclasses: [],\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (image?.setState) {\n\t\t\t\t\t\timage.setState({ layers });\n\t\t\t\t\t}\n\t\t\t\t} else if (sprite.matches('character-sprite')) {\n\t\t\t\t\t// If it's an image on a previously layered sprite\n\t\t\t\t\tconst el = sprite.get(0) as (HTMLElement & { setProps?: (props: { src: string }) => void }) | undefined;\n\t\t\t\t\tif (el?.setProps) {\n\t\t\t\t\t\tel.setProps({ 'src': `${imgSrc}${this.image}` });\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If it was just an image\n\t\t\t\t\tsprite.attribute('src', `${imgSrc}${this.image}`);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsprite.attribute('src', `${imgSrc}${this.image}`);\n\t\t\t}\n\n\t\t\tsprite.data('sprite', this.sprite);\n\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\tsprite.addClass(className);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst durationPosition = this.classes.indexOf('duration');\n\t\t\tif (durationPosition > -1) {\n\t\t\t\tsprite.style('animation-duration', this.classes[durationPosition + 1]);\n\t\t\t} else {\n\t\t\t\tsprite.style('animation-duration', '');\n\t\t\t}\n\n\t\t\tconst transitionPosition = this.classes.indexOf('transition');\n\n\t\t\tif (transitionPosition > -1) {\n\t\t\t\tsprite.style('transition-duration', this.classes[transitionPosition + 1]);\n\t\t\t} else {\n\t\t\t\tsprite.style('transition-duration', '');\n\t\t\t}\n\n\t\t\t// Check if a position was provided. (show character y at left)\n\t\t\tif (position instanceof Array) {\n\t\t\t\t// If it was, we'll set that position to the character\n\t\t\t\tconst [at, positionClass] = position;\n\t\t\t\tsprite.data('position', positionClass);\n\t\t\t} else {\n\t\t\t\t// If it wasn't, we'll check if the sprite already had one position set\n\t\t\t\t// const currentPosition = sprite.data ('position');\n\t\t\t\t// if (typeof currentPosition === 'string') {\n\t\t\t\t// \t// If it did, we'll add that position\n\t\t\t\t// \tif (currentPosition.trim () !== '') {\n\t\t\t\t// \t\tconsole.log (currentPosition);\n\t\t\t\t// \t\tsprite.addClass (currentPosition.trim ());\n\t\t\t\t// \t}\n\t\t\t\t// } else {\n\t\t\t\t// \t// If it didn't, we'll set the center position by default\n\t\t\t\t// \tsprite.addClass ('center');\n\t\t\t\t// \tsprite.data ('position', 'center');\n\t\t\t\t// }\n\n\t\t\t\tsprite.addClass('center');\n\t\t\t\tsprite.data('position', 'center');\n\t\t\t}\n\n\t\t\tsprite.data('sprite', this.sprite);\n\t\t} else {\n\t\t\tlet image: HTMLElement | null = null;\n\t\t\tlet imageReady = Promise.resolve();\n\t\t\tif (typeof this.image === 'string') {\n\t\t\t\t// Check if character sprite is cached\n\t\t\t\tconst cacheKey = `characters/${this.asset}/${this.sprite}`;\n\t\t\t\tconst cachedImage = this.engine.imageCache(cacheKey);\n\t\t\t\t\n\t\t\t\tif (cachedImage) {\n\t\t\t\t\t// Clone the cached image element\n\t\t\t\t\timage = cachedImage.cloneNode(true) as HTMLImageElement;\n\t\t\t\t} else {\n\t\t\t\t\t// Create new image element\n\t\t\t\t\timage = document.createElement('img');\n\t\t\t\t\t$_(image).attribute('src', `${imgSrc}${this.image}`);\n\t\t\t\t}\n\t\t\t\t$_(image).addClass('animated');\n\t\t\t\t$_(image).data('character', this.asset);\n\t\t\t\t$_(image).data('sprite', this.sprite);\n\t\t\t} else if (this.engine.setting('ExperimentalFeatures') === true) {\n\t\t\t\timage = document.createElement('character-sprite') as any;\n\n\t\t\t\t(image as any).setProps({\n\t\t\t\t\tcharacter: this.character,\n\t\t\t\t\tdirectory: imgSrc,\n\t\t\t\t});\n\n\n\t\t\t\tconst layers: Record = {};\n\n\t\t\t\tconst extras = this._extras || {};\n\t\t\t\tif (typeof extras.layerHistory !== 'undefined') {\n\t\t\t\t\tfor (const { statement, previous } of (extras.layerHistory as any).layers) {\n\t\t\t\t\t\tif (previous !== null) {\n\t\t\t\t\t\t\tconst [show, _character, asset, name, ...classes] = previous.split(' ');\n\t\t\t\t\t\t\tconst [_identifier, _layer] = asset.split(':');\n\t\t\t\t\t\t\tlayers[_layer] = {\n\t\t\t\t\t\t\t\tasset: name,\n\t\t\t\t\t\t\t\tclasses: ['animated', ...classes.filter((item: string) => item !== 'at' && item !== 'with')],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (const [layer, asset] of Object.entries(this.image as Record)) {\n\t\t\t\t\t\tlayers[layer] = {\n\t\t\t\t\t\t\tasset,\n\t\t\t\t\t\t\tclasses: [],\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t(image as any).setState({ layers });\n\n\t\t\t\t$_(image).addClass('animated');\n\t\t\t\t$_(image).data('character', this.asset);\n\t\t\t\t$_(image).data('sprite', this.sprite);\n\n\t\t\t\timageReady = new Promise((resolve, reject) => {\n\t\t\t\t\t(image as any).ready(() => resolve());\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (image) {\n\t\t\t\tfor (const className of this.classes) {\n\t\t\t\t\tif (className) {\n\t\t\t\t\t\timage.classList.add(className);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Check if a position was provided. (show character y at left)\n\t\t\t\tif (position instanceof Array) {\n\t\t\t\t\t// If it was, we'll set that position to the character\n\t\t\t\t\tconst [at, positionClass] = position;\n\t\t\t\t\t$_(image).data('position', positionClass);\n\t\t\t\t} else {\n\t\t\t\t\t// If it wasn't, we'll set the center position by default\n\t\t\t\t\timage.classList.add('center');\n\t\t\t\t\t$_(image).data('position', 'center');\n\t\t\t\t}\n\n\t\t\t\tconst durationPosition = this.classes.indexOf('duration');\n\t\t\t\tif (durationPosition > -1) {\n\t\t\t\t\t$_(image).style('animation-duration', this.classes[durationPosition + 1]);\n\t\t\t\t}\n\n\t\t\t\tthis.engine.element().find('[data-screen=\"game\"] [data-content=\"visuals\"]').append(image);\n\t\t\t}\n\n\t\t\tawait imageReady;\n\t\t}\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tconst experimentalFeatures = this.engine.setting('ExperimentalFeatures') === true;\n\t\tif (updateHistory === true) {\n\t\t\tconst characterHistory = this.engine.history('character') as CharacterHistoryItem[];\n\t\t\tcharacterHistory.push({\n\t\t\t\tstatement: this._statement as string,\n\t\t\t\tprevious: this.state || null\n\t\t\t});\n\n\t\t\tif (experimentalFeatures) {\n\t\t\t\tconst characterLayerHistory = this.engine.history('characterLayer') as import('../lib/types').CharacterLayerHistoryItem[];\n\t\t\t\tif (typeof this.image === 'object') {\n\t\t\t\t\tconst statements: { statement: string; previous: string | null }[] = [];\n\t\t\t\t\tfor (const layer in this.image) {\n\t\t\t\t\t\tconst previous = this.engine.state('characterLayers').find((statement: string) => {\n\t\t\t\t\t\t\tconst [, , asset] = statement.split(' ');\n\t\t\t\t\t\t\tconst [_identifier, _layer] = asset.split(':');\n\t\t\t\t\t\t\treturn _identifier === this.asset && _layer == layer;\n\t\t\t\t\t\t}) as string | undefined;\n\n\t\t\t\t\t\tstatements.push({\n\t\t\t\t\t\t\tstatement: `show character ${this.asset}:${layer} ${(this.image as Record)[layer]}`,\n\t\t\t\t\t\t\tprevious: previous || null\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tcharacterLayerHistory.push({\n\t\t\t\t\t\tparent: this._statement as string,\n\t\t\t\t\t\tlayers: statements\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcharacterLayerHistory.push({\n\t\t\t\t\t\tparent: this._statement as string,\n\t\t\t\t\t\tlayers: this.engine.state('characterLayers').map((s: any) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstatement: null,\n\t\t\t\t\t\t\t\tprevious: s\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tcharacters: [\n\t\t\t\t\t...this.engine.state('characters').filter((item: any) => {\n\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\tconst [, , asset] = item.split(' ');\n\t\t\t\t\t\t\treturn asset !== this.asset;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}),\n\t\t\t\t\tthis._statement as string\n\t\t\t\t]\n\t\t\t});\n\n\t\t\tif (experimentalFeatures) {\n\n\t\t\t\tif (typeof this.image === 'object') {\n\t\t\t\t\tconst newState = [];\n\t\t\t\t\tconst extras = this._extras || {};\n\t\t\t\t\tif (typeof extras.layerHistory !== 'undefined') {\n\t\t\t\t\t\tfor (const { statement, previous } of (extras.layerHistory as any).layers) {\n\t\t\t\t\t\t\tif (previous !== null) {\n\t\t\t\t\t\t\t\tnewState.push(previous);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (const layer in this.image) {\n\t\t\t\t\t\t\tnewState.push(`show character ${this.asset}:${layer} ${this.image[layer]}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.engine.state({\n\t\t\t\t\t\tcharacterLayers: [\n\t\t\t\t\t\t\t...this.engine.state('characterLayers').filter((item: any) => {\n\t\t\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\t\t\tconst [show, character, asset, sprite] = item.split(' ');\n\t\t\t\t\t\t\t\t\tconst [id] = asset.split(':');\n\t\t\t\t\t\t\t\t\treturn id !== this.asset;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t...newState\n\t\t\t\t\t\t]\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.engine.state({\n\t\t\t\t\t\tcharacterLayers: [\n\t\t\t\t\t\t\t...this.engine.state('characterLayers').filter((item: any) => {\n\t\t\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\t\t\tconst [show, character, asset, sprite] = item.split(' ');\n\t\t\t\t\t\t\t\t\tconst [id] = asset.split(':');\n\t\t\t\t\t\t\t\t\treturn id !== this.asset;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst experimentalFeatures = this.engine.setting('ExperimentalFeatures');\n\t\tthis.engine.element().find(`[data-character=\"${this.asset}\"]`).remove();\n\n\t\t// First, we get the last instance of the character from the history as\n\t\t// that's the one being currently displayed.\n\t\tfor (let i = this.engine.history('character').length - 1; i >= 0; i--) {\n\t\t\tconst { statement, previous } = this.engine.history('character')[i];\n\t\t\tconst [show, character, asset, name] = statement.split(' ');\n\t\t\tif (asset === this.asset) {\n\t\t\t\tthis.engine.history('character').splice(i, 1);\n\n\t\t\t\tif (experimentalFeatures) {\n\t\t\t\t\tconst characterLayerHistory = this.engine.history('characterLayer') as import('../lib/types').CharacterLayerHistoryItem[];\n\t\t\t\t\tif (typeof previous !== 'undefined' && previous !== null) {\n\t\t\t\t\t\tlet previousLayers;\n\t\t\t\t\t\tfor (let j = characterLayerHistory.length - 1; j >= 0; j--) {\n\t\t\t\t\t\t\tconst { parent } = characterLayerHistory[j];\n\t\t\t\t\t\t\tif (typeof parent === 'string') {\n\t\t\t\t\t\t\t\tconst [, , _asset] = parent.split(' ');\n\n\t\t\t\t\t\t\t\tif (_asset === this.asset) {\n\t\t\t\t\t\t\t\t\tpreviousLayers = characterLayerHistory[j];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\tconst action = this.engine.prepareAction(previous, { cycle: 'Application', extras: { layerHistory: previousLayers } }) as ActionInstance | null;\n\t\t\t\t\t\tif (action !== null) {\n\t\t\t\t\t\t\tawait action.apply();\n\t\t\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let j = characterLayerHistory.length - 1; j >= 0; j--) {\n\t\t\t\t\t\t\tconst { parent } = characterLayerHistory[j];\n\t\t\t\t\t\t\tif (typeof parent === 'string') {\n\t\t\t\t\t\t\t\tconst [, , _asset] = parent.split(' ');\n\n\t\t\t\t\t\t\t\tif (_asset === this.asset) {\n\t\t\t\t\t\t\t\t\tcharacterLayerHistory.splice(j, 1);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let j = characterLayerHistory.length - 1; j >= 0; j--) {\n\t\t\t\t\t\t\tconst { parent } = characterLayerHistory[j];\n\t\t\t\t\t\t\tif (typeof parent === 'string') {\n\t\t\t\t\t\t\t\tconst [, , _asset] = parent.split(' ');\n\n\t\t\t\t\t\t\t\tif (_asset === this.asset) {\n\t\t\t\t\t\t\t\t\tcharacterLayerHistory.splice(j, 1);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof previous !== 'undefined' && previous !== null) {\n\t\t\t\t\t\tconst action = this.engine.prepareAction(previous, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\t\t\t\tif (action !== null) {\n\t\t\t\t\t\t\tawait action.apply();\n\t\t\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// If the script didn't return on the for cycle above, it means either the\n\t\t// history didn't have any items left or, the character was not found.\n\t\t// In that case, we simply remove the character from the state.\n\t\tconst updatedState: Record = {\n\t\t\tcharacters: [\n\t\t\t\t...this.engine.state('characters').filter((item: any) => {\n\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\tconst [, , asset] = item.split(' ');\n\t\t\t\t\t\treturn asset !== this.asset;\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\n\t\tif (this.engine.setting('ExperimentalFeatures') === true) {\n\t\t\tupdatedState.characterLayers = [\n\t\t\t\t...this.engine.state('characterLayers').filter((item: any) => {\n\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\tconst [, , asset] = item.split(' ');\n\t\t\t\t\t\tconst [id] = asset.split(':');\n\t\t\t\t\t\treturn id !== this.asset;\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t}),\n\t\t\t];\n\t\t}\n\n\t\tthis.engine.state(updatedState);\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default ShowCharacter;\n", + "import Action from './../lib/Action';\nimport { $_ } from '@aegis-framework/artemis';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance, CharacterLayerHistoryItem } from '../lib/types';\n\nexport class ShowCharacterLayer extends Action {\n\n\tstatic override id = 'Show::Character::Layer';\n\tstatic override _experimental = true;\n\tstatic override loadingOrder = 1;\n\n\tstatic override async setup(): Promise {\n\t\t// The character history saves what characters have been displayed\n\t\tthis.engine.history('characterLayer');\n\n\t\t// The characters state variable holds what characters are being shown\n\t\t// right now\n\t\tthis.engine.state({\n\t\t\tcharacterLayers: []\n\t\t});\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tthis.engine.state({\n\t\t\tcharacterLayers: []\n\t\t});\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst characterLayers = this.engine.state('characterLayers') as string[];\n\t\tconst promises: Promise[] = [];\n\n\t\tfor (const item of characterLayers) {\n\t\t\tconst action = this.engine.prepareAction(item, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tconst promise = (async () => {\n\t\t\t\t\tawait action.willApply();\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t\t})();\n\n\t\t\t\tpromises.push(promise);\n\t\t\t}\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\tawait Promise.all(promises);\n\t\t}\n\t}\n\n\tstatic override matchString([show, type, identifier]: string[]): boolean {\n\t\treturn show === 'show' && type === 'character' && identifier.indexOf(':') > -1;\n\t}\n\n\tasset: string;\n\tlayer: string;\n\tstate: string | undefined;\n\tsprite: string;\n\tcharacter: any;\n\timage: any;\n\tclasses: string[];\n\n\tconstructor([show, type, asset, sprite, ...classes]: string[]) {\n\t\tsuper();\n\t\tconst [character, layer] = asset.split(':');\n\t\tthis.asset = character;\n\t\tthis.layer = layer;\n\n\t\tthis.state = this.engine.state('characterLayers').find((statement: string) => {\n\t\t\tconst [show, _character, asset, name] = statement.split(' ');\n\t\t\tconst [_identifier, _layer] = asset.split(':');\n\t\t\treturn _identifier === character && _layer == layer;\n\t\t});\n\n\t\tif (typeof this.engine.character(character) !== 'undefined') {\n\t\t\t// show [character] [expression] at [position] with [animation] [infinite]\n\t\t\tthis.sprite = sprite;\n\n\t\t\tthis.character = this.engine.character(character);\n\t\t\tthis.image = this.character.layer_assets[layer][sprite];\n\n\t\t\tif (typeof classes !== 'undefined') {\n\t\t\t\tthis.classes = ['animated', ...classes.filter((item) => item !== 'at' && item !== 'with')];\n\t\t\t} else {\n\t\t\t\tthis.classes = [];\n\t\t\t}\n\n\t\t} else {\n\t\t\tthis.sprite = '';\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (typeof this.character === 'undefined') {\n\t\t\tFancyError.show('action:show_character_layer:character_not_found', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tlayer: this.layer,\n\t\t\t\tavailableCharacters: Object.keys(this.engine.characters()),\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error(`Character \"${this.asset}\" not found.`);\n\t\t}\n\n\t\tif (typeof this.image === 'undefined') {\n\t\t\tconst layerAssets = this.character.layer_assets?.[this.layer];\n\t\t\tFancyError.show('action:show_character_layer:sprite_not_found', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tlayer: this.layer,\n\t\t\t\tsprite: this.sprite,\n\t\t\t\tavailableSprites: layerAssets ? Object.keys(layerAssets) : [],\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error(`Sprite \"${this.sprite}\" not found for layer \"${this.layer}\" of character \"${this.asset}\".`);\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\t// show [character:layer] with [...animation] [infinite]\n\t\t// 0 1 2 3 4\n\n\t\t// show [character:layer]\n\t\t// 0 1\n\n\t\tlet directory = this.character.directory;\n\t\tif (typeof directory == 'undefined') {\n\t\t\tdirectory = '';\n\t\t} else {\n\t\t\tdirectory += '/';\n\t\t}\n\n\t\tlet oneSpriteOnly = true;\n\n\n\t\tconst parent = this.engine.element().find(`[data-character=\"${this.asset}\"]:not([data-visibility=\"invisible\"])`);\n\n\t\tconst sprite = parent.find(`[data-layer=\"${this.layer}\"]:not([data-visibility=\"invisible\"])`);\n\n\t\tconst spriteEl = sprite.get(0);\n\t\tif ((sprite.isVisible() || (this.engine.global('_restoring_state') && sprite.exists())) && spriteEl) {\n\t\t\tconst oldClasses = [...spriteEl.classList];\n\n\t\t\t// Check if there is any end-animation, here's what this matches:\n\t\t\t// 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ \"end-fadeIn\", \"fadeIn\" ]\n\t\t\tconst endAnimation = oldClasses.find((c: string) => c.match(/end-([A-Za-z]+)/) !== null);\n\n\t\t\tif (typeof endAnimation !== 'undefined') {\n\t\t\t\t// If there was, get the animation-only part\n\t\t\t\tconst [end, animation] = endAnimation.split('-');\n\t\t\t\tconst watchAnimation = oldClasses[oldClasses.indexOf(endAnimation) - 1];\n\t\t\t\tsprite.removeClass(watchAnimation);\n\t\t\t\tsprite.addClass(animation);\n\t\t\t\tsprite.data('visibility', 'invisible');\n\t\t\t\tsprite.on('animationend', (e: any) => {\n\t\t\t\t\te.target.remove();\n\t\t\t\t});\n\n\t\t\t\toneSpriteOnly = false;\n\t\t\t}\n\n\t\t\tfor (const oldClass of oldClasses) {\n\t\t\t\tif (this.classes.indexOf(oldClass) === -1) {\n\t\t\t\t\tsprite.removeClass(oldClass);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst imgSrc = `${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').characters}/${directory}`;\n\n\t\tif (oneSpriteOnly && (sprite.isVisible() || (this.engine.global('_restoring_state') && sprite.exists()))) {\n\t\t\tsprite.attribute('src', `${imgSrc}${this.image}`);\n\t\t\tsprite.data('sprite', this.sprite);\n\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\tsprite.addClass(className);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst durationPosition = this.classes.indexOf('duration');\n\t\t\tif (durationPosition > -1) {\n\t\t\t\tsprite.style('animation-duration', this.classes[durationPosition + 1]);\n\t\t\t} else {\n\t\t\t\tsprite.style('animation-duration', '');\n\t\t\t}\n\n\t\t\tconst transitionPosition = this.classes.indexOf('transition');\n\n\t\t\tif (transitionPosition > -1) {\n\t\t\t\tsprite.style('transition-duration', this.classes[transitionPosition + 1]);\n\t\t\t} else {\n\t\t\t\tsprite.style('transition-duration', '');\n\t\t\t}\n\t\t} else {\n\t\t\tconst image = document.createElement('img');\n\t\t\t$_(image).attribute('src', `${imgSrc}${this.image}`);\n\t\t\t$_(image).addClass('animated');\n\t\t\t$_(image).data('layer', this.layer);\n\t\t\t$_(image).data('sprite', this.sprite);\n\t\t\t$_(image).style({ zIndex: this.character.layers.indexOf(this.layer) });\n\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\timage.classList.add(className);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst durationPosition = this.classes.indexOf('duration');\n\t\t\tif (durationPosition > -1) {\n\t\t\t\t$_(image).style('animation-duration', this.classes[durationPosition + 1]);\n\t\t\t}\n\n\t\t\tparent.find('[data-content=\"wrapper\"]').append(image);\n\t\t}\n\n\t\t// Update the state of the component\n\t\tconst parentAsComponent = parent.get(0) as (HTMLElement & { state?: { layers?: Record }; setState?: (state: Record) => void }) | undefined;\n\t\tif (parentAsComponent?.state && parentAsComponent?.setState) {\n\t\t\tconst stateLayers = parentAsComponent.state.layers || {};\n\t\t\tparentAsComponent.setState({\n\t\t\t\tlayers: {\n\t\t\t\t\t...stateLayers,\n\t\t\t\t\t[this.layer]: {\n\t\t\t\t\t\tasset: this.sprite,\n\t\t\t\t\t\tclasses: this.classes\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tif (updateHistory === true) {\n\t\t\tconst characterLayerHistory = this.engine.history('characterLayer') as CharacterLayerHistoryItem[];\n\t\t\tlet previousHistory: CharacterLayerHistoryItem | undefined;\n\t\t\tfor (let j = characterLayerHistory.length - 1; j >= 0; j--) {\n\t\t\t\tconst historyItem = characterLayerHistory[j];\n\t\t\t\tif (historyItem.parent) {\n\t\t\t\t\tconst [, , _asset] = historyItem.parent.split(' ');\n\n\t\t\t\t\tif (_asset === this.asset) {\n\t\t\t\t\t\tpreviousHistory = historyItem;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst parent = this.engine.state('characters').find((s: string) => {\n\t\t\t\tconst [, , asset] = s.split(' ');\n\t\t\t\treturn asset === this.asset;\n\t\t\t}) || null;\n\n\t\t\tif (typeof previousHistory !== 'undefined') {\n\t\t\t\tcharacterLayerHistory.push({\n\t\t\t\t\tparent,\n\t\t\t\t\tlayers: [\n\t\t\t\t\t\t...previousHistory.layers.filter(({ statement }: { statement: string | null; previous: string | null }) => {\n\t\t\t\t\t\t\tif (statement !== null && parent !== null) {\n\t\t\t\t\t\t\t\tconst [, , _asset] = parent.split(' ');\n\t\t\t\t\t\t\t\tconst [_identifier, _layer] = _asset.split(':');\n\t\t\t\t\t\t\t\treturn _identifier !== this.asset && _layer !== this.layer;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstatement: this._statement as string,\n\t\t\t\t\t\t\tprevious: this.state || null\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcharacterLayerHistory.push({\n\t\t\t\t\tparent,\n\t\t\t\t\tlayers: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstatement: this._statement as string,\n\t\t\t\t\t\t\tprevious: this.state || null\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tcharacterLayers: [\n\t\t\t\t\t...this.engine.state('characterLayers').filter((item: any) => {\n\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\tconst [, , asset] = item.split(' ');\n\t\t\t\t\t\t\tconst [id, layer] = asset.split(':');\n\t\t\t\t\t\t\treturn id !== this.asset || layer !== this.layer;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}),\n\t\t\t\t\tthis._statement as string\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst parent = this.engine.element().find(`[data-character=\"${this.asset}\"]`);\n\n\t\tparent.find(`[data-layer=\"${this.layer}\"]`).remove();\n\n\n\t\t// First, we remove the last instance of the character from the history since\n\t\t// that's the one being currently displayed and we want the one before that\n\t\tconst characterLayerHistory = this.engine.history('characterLayer') as CharacterLayerHistoryItem[];\n\t\tfor (let i = characterLayerHistory.length - 1; i >= 0; i--) {\n\t\t\tconst { layers } = characterLayerHistory[i];\n\n\t\t\tconst historyStatement = layers.find((s: { statement: string | null; previous: string | null }) => {\n\t\t\t\tconst { previous, statement } = s;\n\t\t\t\tconst statementStr = statement || previous;\n\t\t\t\tif (statementStr) {\n\t\t\t\t\tconst [, , asset] = statementStr.split(' ');\n\t\t\t\t\tconst [id, layer] = asset.split(':');\n\n\t\t\t\t\treturn id === this.asset && layer === this.layer;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tif (typeof historyStatement === 'object' && historyStatement !== null) {\n\n\t\t\t\tconst { statement, previous } = historyStatement;\n\t\t\t\tconst statementStr = statement || previous;\n\t\t\t\tif (statementStr) {\n\t\t\t\t\tconst [, , asset] = statementStr.split(' ');\n\t\t\t\t\tconst [id, layer] = asset.split(':');\n\t\t\t\t\tif (id === this.asset && layer === this.layer) {\n\t\t\t\t\t\tcharacterLayerHistory.splice(i, 1);\n\n\t\t\t\t\t\tif (typeof previous !== 'undefined' && previous !== null) {\n\t\t\t\t\t\t\tconst action = this.engine.prepareAction(previous, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\t\t\t\t\tif (action !== null) {\n\t\t\t\t\t\t\t\tawait action.apply();\n\t\t\t\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If the script didn't return on the for cycle above, it means either the\n\t\t// history didn't have any items left or, the character was not found.\n\t\t// In that case, we simply remove the character from the state.\n\t\tthis.engine.state({\n\t\t\tcharacterLayers: [\n\t\t\t\t...this.engine.state('characterLayers').filter((item: any) => {\n\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\tconst [show, character, asset, sprite] = item.split(' ');\n\t\t\t\t\t\tconst [id, layer] = asset.split(':');\n\t\t\t\t\t\treturn id !== this.asset || layer !== this.layer;\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t}),\n\t\t\t],\n\t\t});\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default ShowCharacterLayer;\n", + "import Action from './../lib/Action';\nimport { $_ } from '@aegis-framework/artemis';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class ShowImage extends Action {\n\n\tstatic override id = 'Show::Image';\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('image');\n\t\tthis.engine.state({\n\t\t\timages: []\n\t\t});\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tthis.engine.element().find('[data-screen=\"game\"] [data-image]').remove();\n\n\t\tthis.engine.state({\n\t\t\timages: []\n\t\t});\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst images = this.engine.state('images') as string[];\n\t\tconst promises: Promise[] = [];\n\n\t\tfor (const item of images) {\n\t\t\tconst action = this.engine.prepareAction(item, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tconst promise = (async () => {\n\t\t\t\t\tawait action.willApply();\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t\t})();\n\n\t\t\t\tpromises.push(promise);\n\t\t\t}\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\tawait Promise.all(promises);\n\t\t}\n\t}\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'image';\n\t}\n\n\tasset: string;\n\tclasses: string[];\n\timage: string;\n\n\tconstructor([show, type, asset, ...props]: string[]) {\n\t\tsuper();\n\t\tthis.asset = asset;\n\n\t\tthis.classes = (' ' + props.join(' ')).replace(' at ', ' ').replace(' with ', ' ').trim().split(' ');\n\n\t\tconst assetPath = this.engine.asset('images', asset);\n\t\tif (typeof assetPath !== 'undefined') {\n\t\t\tthis.image = assetPath;\n\t\t} else {\n\t\t\tthis.image = asset;\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst position = (this._statement as string).match(/at\\s(\\S*)/);\n\t\t\n\t\t// Check if image is cached\n\t\tconst cacheKey = `images/${this.asset}`;\n\t\tconst cachedImage = this.engine.imageCache(cacheKey);\n\t\t\n\t\tlet image: HTMLImageElement;\n\t\tif (cachedImage) {\n\t\t\t// Clone the cached image element\n\t\t\timage = cachedImage.cloneNode(true) as HTMLImageElement;\n\t\t} else {\n\t\t\t// Create new image element\n\t\t\timage = document.createElement('img');\n\t\t\t$_(image).attribute('src', `${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').images}/${this.image}`);\n\t\t}\n\n\t\t$_(image).addClass('animated');\n\t\t$_(image).data('image', this.asset);\n\n\t\tfor (const className of this.classes) {\n\t\t\tif (className) {\n\t\t\t\t$_(image).addClass(className);\n\t\t\t}\n\t\t}\n\n\t\tif (position instanceof Array) {\n\t\t\t// If it was, we'll set that position to the character\n\t\t\tconst [at, positionClass] = position;\n\t\t\t$_(image).data('position', positionClass);\n\t\t} else {\n\t\t\t$_(image).addClass('center');\n\t\t\t$_(image).data('position', 'center');\n\t\t}\n\n\t\tconst durationPosition = this.classes.indexOf('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\t$_(image).style('animation-duration', this.classes[durationPosition + 1]);\n\t\t}\n\n\t\tthis.engine.element().find('[data-screen=\"game\"] [data-content=\"visuals\"]').append(image.outerHTML);\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tif (updateHistory === true) {\n\t\t\t(this.engine.history('image') as string[]).push(this._statement as string);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\timages: [...this.engine.state('images'), this._statement as string]\n\t\t\t});\n\t\t}\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tthis.engine.element().find(`[data-image=\"${this.asset}\"]`).remove();\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tconst history = this.engine.history('image') as string[];\n\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\tconst [, , asset] = history[i].split(' ');\n\t\t\tif (asset === this.asset) {\n\t\t\t\thistory.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.engine.state({\n\t\t\timages: [...this.engine.state('images').filter((item: string) => {\n\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\tconst [, , asset] = item.split(' ');\n\t\t\t\t\treturn asset !== this.asset;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})]\n\t\t});\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default ShowImage;", + "import Action from './../lib/Action';\nimport type TextBox from './../components/text-box';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class ShowTextBox extends Action {\n\n\tstatic override id = 'Show::TextBox';\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'textbox';\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBox | undefined;\n\t\ttextBox?.setState({ hidden: false });\n\t}\n\n\toverride async didApply(): Promise {\n\t\tthis.engine.state({ textboxHidden: false });\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBox | undefined;\n\t\ttextBox?.setState({ hidden: true });\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tthis.engine.state({ textboxHidden: true });\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default ShowTextBox;\n", + "import Action from './../lib/Action';\nimport AudioPlayer from './../lib/AudioPlayer';\nimport { ActionApplyResult, ActionRevertResult, MediaType, MediaStateItem, ActionInstance } from '../lib/types';\n\nexport class Stop extends Action {\n\tstatic override id = 'Stop';\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'stop';\n\t}\n\n\ttype: MediaType;\n\tmedia: string;\n\tprops: string[];\n\tplayer: any;\n\n\tconstructor([action, type, media, ...props]: string[]) {\n\t\tsuper();\n\n\t\tthis.type = type as MediaType;\n\t\tthis.media = media;\n\t\tthis.props = props;\n\n\t\tif (typeof media === 'undefined' || media === 'with') {\n\t\t\tthis.player = this.engine.mediaPlayers(type);\n\t\t} else {\n\t\t\tthis.player = this.engine.mediaPlayer(type, media);\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (this.player) {\n\t\t\tif (Array.isArray(this.player)) {\n\t\t\t\tfor (const player of this.player) {\n\t\t\t\t\tplayer.loop = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.player.loop = false;\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\t// Check if the audio should have a fade time\n\t\tconst fadePosition = this.props.indexOf('fade');\n\n\t\tif (Array.isArray(this.player)) {\n\t\t\tif (fadePosition > -1) {\n\t\t\t\tconst fadeTime = this.props[fadePosition + 1];\n\t\t\t\tconst duration = parseFloat((fadeTime.match(/\\d*(\\.\\d*)?/) as RegExpMatchArray)[0]);\n\t\t\t\tfor (const player of this.player) {\n\t\t\t\t\t// Only AudioPlayer has fadeOut, HTMLAudioElement doesn't\n\t\t\t\t\tif (player instanceof AudioPlayer) {\n\t\t\t\t\t\tawait player.fadeOut(duration);\n\t\t\t\t\t}\n\t\t\t\t\tthis.engine.removeMediaPlayer(this.type, player.dataset.key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.engine.removeMediaPlayer(this.type);\n\t\t\t}\n\t\t} else {\n\t\t\tif (fadePosition > -1) {\n\t\t\t\tconst fadeTime = this.props[fadePosition + 1];\n\t\t\t\tconst duration = parseFloat((fadeTime.match(/\\d*(\\.\\d*)?/) as RegExpMatchArray)[0]);\n\t\t\t\t// Only AudioPlayer has fadeOut, HTMLAudioElement doesn't\n\t\t\t\tif (this.player instanceof AudioPlayer) {\n\t\t\t\t\tawait this.player.fadeOut(duration);\n\t\t\t\t}\n\t\t\t\tthis.engine.removeMediaPlayer(this.type, this.media);\n\t\t\t} else {\n\t\t\t\tthis.engine.removeMediaPlayer(this.type, this.media);\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tconst currentState = this.engine.state(this.type);\n\n\t\tif (typeof this.media !== 'undefined') {\n\t\t\tconst filteredState = currentState.filter((item: MediaStateItem) => {\n\t\t\t\tif (typeof item.statement === 'string') {\n\t\t\t\t\tconst [play, type, media] = item.statement.split(' ');\n\t\t\t\t\treturn !(type === this.type && media === this.media);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t});\n\t\t\tthis.engine.state({ [this.type]: filteredState });\n\t\t} else {\n\t\t\tthis.engine.history(this.type).push(currentState);\n\t\t\tthis.engine.state({ [this.type]: [] });\n\t\t}\n\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst history = this.engine.history(this.type);\n\n\t\tif (typeof this.media !== 'undefined') {\n\t\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\t\tconst last = history[i];\n\t\t\t\tif (typeof last === 'string') {\n\t\t\t\t\tconst [, type, media] = last.split(' ');\n\n\t\t\t\t\tif (this.type === type && this.media === media) {\n\t\t\t\t\t\tconst action = this.engine.prepareAction(last, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\t\t\t\tif (action) {\n\t\t\t\t\t\t\tawait action.willApply();\n\t\t\t\t\t\t\tawait action.apply();\n\t\t\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n return;\n\t\t}\n\n const statements = history.pop();\n\n if (!statements || typeof statements === 'string') {\n return;\n }\n\n const promises = [];\n for (const state of statements) {\n // prepareAction returns typeof Action but actually returns instance\n const action = this.engine.prepareAction(state.statement, { cycle: 'Application' }) as ActionInstance | null;\n if (action) {\n const promise = (async () => {\n await action.willApply();\n await (action as any).apply({ paused: state.paused });\n await action.didApply({ updateHistory: false, updateState: true });\n })();\n\n promises.push(promise);\n }\n }\n await Promise.all(promises);\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Stop;", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\nimport { Preload, PreloadBlocks } from './Preload';\n\n\nexport class Unload extends Action {\n\n\tstatic override id = 'Unload';\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'unload';\n\t}\n\n\t// Instance properties\n\tprivate category: string = '';\n\tprivate assetName: string = '';\n\tprivate blockId: string = '';\n\tprivate isBlock: boolean = false;\n\tprivate isAll: boolean = false;\n\tprivate isCategoryOnly: boolean = false;\n\tprivate characterId: string = '';\n\tprivate isPermanent: boolean = false;\n\n\tconstructor([_action, typeOrBlock, ...rest]: string[]) {\n\t\tsuper();\n\n\t\t// Check for 'permanent' flag at the end\n\t\tthis.isPermanent = rest.includes('permanent');\n\t\t// Remove 'permanent' from rest for easier parsing\n\t\tconst filteredRest = rest.filter(arg => arg !== 'permanent');\n\n\t\tif (typeOrBlock === 'all') {\n\t\t\tthis.isAll = true;\n\t\t} else if (typeOrBlock === 'block') {\n\t\t\tthis.isBlock = true;\n\t\t\tthis.blockId = filteredRest[0];\n\t\t} else if (typeOrBlock === 'character') {\n\t\t\tthis.category = 'characters';\n\t\t\tthis.characterId = filteredRest[0];\n\t\t\tthis.assetName = filteredRest[1] || ''; // Empty means all sprites for character\n\t\t} else {\n\t\t\t// Resolve category aliases (e.g., 'sound' -> 'sounds')\n\t\t\tthis.category = Preload.resolveCategory(typeOrBlock);\n\n\t\t\tif (filteredRest.length > 0) {\n\t\t\t\tthis.assetName = filteredRest[0];\n\t\t\t} else {\n\t\t\t\t// No asset name means unload entire category\n\t\t\t\tthis.isCategoryOnly = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Unload a single asset using the registered loader for its category\n\t * @param category - The asset category (e.g., 'music', 'scenes', 'videos')\n\t * @param assetName - The asset identifier\n\t */\n\tprivate unloadAsset(category: string, assetName: string): void {\n\t\tconst loaderType = Preload.getLoaderType(category);\n\t\tif (!loaderType) {\n\t\t\tconsole.warn(`Unload: No loader registered for category \"${category}\"`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst loaderConfig = Preload.getLoader(loaderType);\n\t\tif (!loaderConfig) {\n\t\t\tconsole.warn(`Unload: Loader type \"${loaderType}\" not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!loaderConfig.cache.delete) {\n\t\t\tconsole.warn(`Unload: Loader type \"${loaderType}\" does not support delete operation`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst cacheKey = `${category}/${assetName}`;\n\t\tloaderConfig.cache.delete(this.engine, cacheKey);\n\t}\n\n\t/**\n\t * Unload a character sprite or all sprites for a character\n\t * Uses the registered 'image' loader\n\t */\n\tprivate unloadCharacter(characterId: string, spriteName?: string): void {\n\t\tconst loaderConfig = Preload.getLoader('image');\n\t\tif (!loaderConfig) {\n\t\t\tconsole.warn(`Unload: Image loader not registered`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (spriteName) {\n\t\t\t// Unload single sprite\n\t\t\tif (!loaderConfig.cache.delete) {\n\t\t\t\tconsole.warn(`Unload: Image loader does not support delete operation`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst cacheKey = `characters/${characterId}/${spriteName}`;\n\t\t\tloaderConfig.cache.delete(this.engine, cacheKey);\n\t\t} else {\n\t\t\t// Unload all sprites for this character\n\t\t\tif (!loaderConfig.cache.clear) {\n\t\t\t\tconsole.warn(`Unload: Image loader does not support clear operation`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tloaderConfig.cache.clear(this.engine, `characters/${characterId}/`);\n\t\t}\n\t}\n\n\t/**\n\t * Unload all assets in a block\n\t */\n\tprivate unloadBlock(blockId: string): void {\n\t\tconst blocks = Preload.blocks() as PreloadBlocks;\n\t\tconst block = blocks[blockId];\n\t\tif (!block) {\n\t\t\tconsole.warn(`Unload: Block \"${blockId}\" not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const [category, assets] of Object.entries(block)) {\n\t\t\t// Handle characters separately (nested structure)\n\t\t\tif (category === 'characters' && typeof assets === 'object' && !Array.isArray(assets)) {\n\t\t\t\tfor (const [charId, sprites] of Object.entries(assets as Record)) {\n\t\t\t\t\tfor (const spriteName of sprites) {\n\t\t\t\t\t\tthis.unloadCharacter(charId, spriteName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!Array.isArray(assets)) continue;\n\n\t\t\t// Use registered loader for this category\n\t\t\tif (Preload.hasLoader(category)) {\n\t\t\t\tfor (const assetName of assets) {\n\t\t\t\t\tthis.unloadAsset(category, assetName);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.warn(`Unload: No loader registered for category \"${category}\" in block \"${blockId}\"`);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Unload all assets in a category using the registered loader\n\t */\n\tprivate unloadCategoryAssets(category: string): void {\n\t\t// Special case for characters - use 'image' loader\n\t\tconst loaderType = category === 'characters' ? 'image' : Preload.getLoaderType(category);\n\t\tif (!loaderType) {\n\t\t\tconsole.warn(`Unload: No loader registered for category \"${category}\"`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst loaderConfig = Preload.getLoader(loaderType);\n\t\tif (!loaderConfig) {\n\t\t\tconsole.warn(`Unload: Loader type \"${loaderType}\" not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!loaderConfig.cache.clear) {\n\t\t\tconsole.warn(`Unload: Loader type \"${loaderType}\" does not support clear operation`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst prefix = category === 'characters' ? 'characters/' : `${category}/`;\n\t\tloaderConfig.cache.clear(this.engine, prefix);\n\t}\n\n\t/**\n\t * Determine if a category uses audio (for persistent storage)\n\t */\n\tprivate isAudioCategory(category: string): boolean {\n\t\tconst loaderType = Preload.getLoaderType(category);\n\t\treturn loaderType === 'audio';\n\t}\n\n\t/**\n\t * Unload from persistent storage (IndexedDB) if applicable\n\t */\n\tprivate async unloadPersistent(category: string, assetName?: string): Promise {\n\t\tif (!this.isAudioCategory(category)) {\n\t\t\treturn; // Only audio is persisted in IndexedDB\n\t\t}\n\n\t\tif (assetName) {\n\t\t\t// Build the URL key used for persistent storage\n\t\t\tconst assetsPath = this.engine.setting('AssetsPath') as Record;\n\t\t\tconst assetFile = this.engine.asset(category, assetName) as string | undefined;\n\t\t\tif (assetFile) {\n\t\t\t\tconst url = `${assetsPath.root}/${assetsPath[category]}/${assetFile}`;\n\t\t\t\tawait this.engine.removeAudioBufferPersistent(url);\n\t\t\t}\n\t\t} else {\n\t\t\t// Clear all persistent audio - we can't easily filter by prefix\n\t\t\t// so for category-wide unload, we'll clear all\n\t\t\tawait this.engine.clearAudioBufferPersistent();\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tif (this.isAll) {\n\t\t\t// Clear all memory caches\n\t\t\tthis.engine.clearAllCaches();\n\n\t\t\t// If permanent, also clear IndexedDB\n\t\t\tif (this.isPermanent) {\n\t\t\t\tawait this.engine.clearAudioBufferPersistent();\n\t\t\t}\n\t\t} else if (this.isBlock) {\n\t\t\t// Unload block from memory\n\t\t\tthis.unloadBlock(this.blockId);\n\n\t\t\t// If permanent, also clear audio assets from IndexedDB\n\t\t\tif (this.isPermanent) {\n\t\t\t\tconst blocks = Preload.blocks() as PreloadBlocks;\n\t\t\t\tconst block = blocks[this.blockId];\n\t\t\t\tif (block) {\n\t\t\t\t\tfor (const [category, assets] of Object.entries(block)) {\n\t\t\t\t\t\tif (this.isAudioCategory(category) && Array.isArray(assets)) {\n\t\t\t\t\t\t\tfor (const assetName of assets) {\n\t\t\t\t\t\t\t\tawait this.unloadPersistent(category, assetName);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.isCategoryOnly) {\n\t\t\t// Unload entire category from memory\n\t\t\tthis.unloadCategoryAssets(this.category);\n\n\t\t\tif (this.isPermanent) {\n\t\t\t\tawait this.unloadPersistent(this.category);\n\t\t\t}\n\t\t} else if (this.category === 'characters') {\n\t\t\tthis.unloadCharacter(this.characterId, this.assetName || undefined);\n\t\t} else if (Preload.hasLoader(this.category)) {\n\t\t\t// Unload single asset from memory\n\t\t\tthis.unloadAsset(this.category, this.assetName);\n\n\t\t\tif (this.isPermanent) {\n\t\t\t\tawait this.unloadPersistent(this.category, this.assetName);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn(`Unload: No loader registered for category \"${this.category}\"`);\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n // TODO: Should we re-load the asset automatically?\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Unload;\n\n\n", + "import Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Vibrate extends Action {\n\n\tstatic override id = 'Vibrate';\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'vibrate';\n\t}\n\n\ttime: number[] | undefined;\n\n\tconstructor([action, ...time]: string[]) {\n\t\tsuper();\n\n\t\t// First check if vibration is available available\n\t\tif (navigator) {\n\t\t\tif (typeof navigator.vibrate === 'function') {\n\t\t\t\t// Since time can be a pattern made of different lengths, we have\n\t\t\t\t// to use an array\n\t\t\t\tthis.time = [];\n\t\t\t\tfor (const i in time) {\n\t\t\t\t\t// Check if all times are valid integers\n\t\t\t\t\tif (!isNaN(Number(time[i]))) {\n\t\t\t\t\t\tthis.time[i] = parseInt(time[i]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tFancyError.show('action:vibrate:invalid_time', {\n\t\t\t\t\t\t\ttime: time[i],\n\t\t\t\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\t\t\t\tstep: this.engine.state('step')\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.warn('Vibration is not supported in this platform.');\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn('Vibration is not supported in this platform.');\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (typeof this.time !== 'undefined') {\n\t\t\treturn;\n\t\t}\n\t\tthrow new Error('Time for vibration was not provided');\n\t}\n\n\toverride async apply(): Promise {\n\t\tif (this.time) {\n\t\t\tnavigator.vibrate(0);\n\t\t\tnavigator.vibrate(this.time);\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\treturn { advance: true };\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Vibrate;", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Wait extends Action {\n static override id = 'Wait';\n\n static override blocking = false;\n\n static override matchString([action]: string[]): boolean {\n return action === 'wait';\n }\n\n static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise {\n if (this.blocking) {\n throw new Error('Wait period has not ended');\n }\n }\n\n // TODO: Haven't decided if this is really necesary but sort of makes sense\n static override async willRollback(): Promise {\n Wait.blocking = false;\n }\n\n // When null, we wait for the click instead of a specific amount of time\n time: number | null = null;\n\n constructor([action, time]: string[]) {\n super();\n\n this.time = !isNaN(Number(time)) ? parseInt(time) : null;\n }\n\n override async apply(): Promise {\n if (typeof this.time !== 'number') {\n return;\n }\n\n return new Promise((resolve) => {\n Wait.blocking = true;\n\n setTimeout(() => {\n Wait.blocking = false;\n resolve();\n }, this.time!);\n });\n }\n\n override async didApply(): Promise {\n return { advance: typeof this.time === 'number' };\n }\n\n override async didRevert(): Promise {\n return { advance: true, step: true };\n }\n}\n\nexport default Wait;", + "import { $_, DOM } from '@aegis-framework/artemis';\nimport { ShadowComponent as PandoraShadowComponent, Component as PandoraComponent, Properties } from '@aegis-framework/pandora';\nimport type { Configuration } from './types';\nimport type Monogatari from '../monogatari';\nimport type { VisualNovelEngine } from './types/Monogatari';\n\n/**\n * A shadow component represents an object or content in the game that uses\n * Shadow DOM for style encapsulation. It functions like Component but renders\n * into a shadow root instead of the light DOM.\n *\n * The life cycle follows the same Mounting cycle as Component:\n *\n * 1. Setup - Set up HTML content, configuration, and state variables\n * 2. Bind - Bind event listeners and perform DOM operations\n * 3. Init - Perform final operations\n *\n * @class ShadowComponent\n * @template P - The type of the component's props (defaults to Properties)\n * @template S - The type of the component's state (defaults to Properties)\n */\nclass ShadowComponent

extends PandoraShadowComponent {\n\t/**\n\t * Marks the component as experimental, meaning it's not stable and should not\n\t * be used in production.\n\t */\n\tstatic _experimental: boolean = false;\n\n\t/**\n\t * If needed, every component should declare its configuration as follows. This\n\t * configuration object should be used to store component-specific settings as well\n\t * as other objects/assets used by the action. If any specific object needs\n\t * recurrent access such as the declarations in the script.js file, provinding\n\t * a static function for that specific object could be great.\n\t *\n\t * IMPORTANT: Subclasses should declare their own `static _configuration = {}`\n\t * to avoid sharing state with other components.\n\t */\n\tstatic _configuration: Configuration = {};\n\n\tstatic _priority: number = 0;\n\n\t/**\n\t * Reference to the Monogatari engine (set by engine on registration)\n\t */\n\tstatic engine: VisualNovelEngine;\n\n\t/**\n\t * Parent component reference\n\t */\n\t_parent?: PandoraComponent;\n\n\tconstructor () {\n\t\tsuper();\n\t}\n\n\t/**\n\t * @static configuration - A simple function providing access to the configuration\n\t * object of the function. If the component has a configuration object it must\n\t * also include this method.\n\t *\n\t * @param {Object|string} [object = null] - Object with which current\n\t * configuration will be updated with (i.e. Object.assign) or a string to access\n\t * a property.\n\t *\n\t * @return {any} - If the parameter sent was a string, the function will\n\t * return the value of the property whose name matches the parameter. If no\n\t * parameter was sent, then the function will return the whole configuration\n\t * object.\n\t */\n\tstatic configuration (object: string | Configuration | null = null): Configuration | unknown {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn this._configuration[object];\n\t\t\t} else {\n\t\t\t\tthis._configuration = Object.assign({}, this._configuration, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._configuration;\n\t\t}\n\t}\n\n\tstatic all (): DOM {\n\t\treturn $_(this.tag);\n\t}\n\n\tstatic get (id: string): DOM {\n\t\treturn $_(`${this.tag} [data-instance=\"${id}\"]`);\n\t}\n\n\t/**\n\t * @static onStart - This function acts as an event listener for when the game\n\t * starts. If the component needs to do any particular activities when the game\n\t * starts, then this function should be implemented and it will be automatically\n\t * called once the player starts the game.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic async onStart (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static onLoad - This function acts as an event listener for when a game\n\t * is loaded. If the component needs to perform any particular actions such as\n\t * restoring some state (i.e. showing images, playing media, etc.) when a game\n\t * is loaded, this function must be implemented and it will be automatically\n\t * called when a game is loaded.\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic async onLoad (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static setup - The setup is the first step of the Mounting cycle, all\n\t * operations required for the component's setup should be implemented here.\n\t *\n\t * @return {Promise} - Result of the setup operation\n\t */\n\tstatic async setup (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static shouldProceed - Either when the user clicks in the game to proceed or\n\t * the autoPlay feature is ready to go on, Monogatari will first check with\n\t * all actions if it's ok to proceed. Every action should implement its own\n\t * logic for it according to its requirements.\n\t *\n\t * @param {Object} options - Options for proceeding\n\t * @param {boolean} options.userInitiated - Whether the proceed was initiated by user click\n\t * @param {boolean} options.skip - Whether skip mode is active\n\t * @param {boolean} options.autoPlay - Whether auto-play mode is active\n\t * @return {Promise} - Resolved if proceeding is alright or rejected if its not\n\t */\n\tstatic async shouldProceed (_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean }): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.shouldProceed());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static willProceed - Once the shouldProceed check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game proceeding.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic async willProceed (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.willProceed());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static shouldRollback - Similarly to the shouldProceed () function, this one takes\n\t * action when the player tries to go back in the game.Monogatari will first\n\t * check with all actions if it's ok to go back. Every action should implement\n\t * its own logic for it according to its requirements.\n\t *\n\t * @return {Promise} - Resolved if going back is alright or rejected if its not\n\t */\n\tstatic async shouldRollback (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.shouldRollback());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static willRollback - Once the shouldRollback check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game reverting the previous action\n\t *\n\t * @return {Promise}\n\t */\n\tstatic async willRollback (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.willRollback());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static bind - The binding is the second step of the Mounting cycle, all\n\t * operations related to event bindings or other sort of binding with the\n\t * HTML content generated in the setup phase should be implemented here.\n\t * @return {Promise}\n\t */\n\tstatic async bind (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static init - The initialization is the last step of the Mounting cycle,\n\t * all final operations should be implemented here.\n\t *\n\t * @param {string} selector - The CSS selector with which Monogatari has been\n\t * initialized\n\t * @return {Promise} - Result of the initialization operation\n\t */\n\tstatic async init (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static onSave - This function acts as an event listener for when a game\n\t * is saved. If the component needs to perform any particular actions when that\n\t * happens, this function must be implemented and it will be automatically\n\t * called when a game is saved.\n\t *\n\t * @param {Object} slot - The slot object that has just been saved.\n\t * @param {string} slot.key - The key used to save the slot in the local storage\n\t * @param {Object} slot.value - The actual value saved\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic async onSave (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static reset - When a game ends using the 'end' statement or before a game\n\t * is loaded, Monogatari will perform a reset on all its components. If the component\n\t * needs to reset a state or any other variables/elements to an initial state\n\t * once a game is over or a new one is loaded, the logic for it must be implemented\n\t * here and the function will be automatically called when needed.\n\t *\n\t * @return {Promise} - Result of the reset operation\n\t */\n\tstatic async onReset (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.onReset());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * Get all instances of this component, optionally iterating with callback\n\t */\n\tstatic instances (callback: ((instance: any) => void) | null = null): ReturnType {\n\t\tif (typeof callback === 'function') {\n\t\t\treturn $_(this.tag).each(callback as any);\n\t\t}\n\t\treturn $_(this.tag);\n\t}\n\n\t// =========================================\n\t// Instance Methods\n\t// =========================================\n\n\t/**\n\t * Reset this instance's state\n\t */\n\tasync onReset (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static element - Returns this component's element as an Artemis DOM\n\t * instance, using the result of the `selector ()` function as the selector\n\t *\n\t * @returns {DOM} - Artemis DOM instance\n\t */\n\telement (): ReturnType {\n\t\treturn $_(this);\n\t}\n\n\t/**\n\t * Remove this component from the DOM\n\t */\n\toverride remove (): void {\n\t\tthis.parentNode?.removeChild(this);\n\t}\n\n\t/**\n\t * Find an instance by ID within this component type\n\t */\n\tinstance (id: string): ReturnType {\n\t\tconst ctor = this.constructor as typeof ShadowComponent;\n\t\treturn $_(`${ctor.tag}[data-${ctor.name.toLowerCase()}=\"${id}\"`);\n\t}\n\n\t/**\n\t * Get or set the parent component\n\t */\n\tparent (component?: PandoraComponent): PandoraComponent | undefined | void {\n\t\tif (typeof component !== 'undefined') {\n\t\t\tthis._parent = component;\n\t\t} else {\n\t\t\treturn this._parent;\n\t\t}\n\t}\n\n\t/**\n\t * Get the engine reference\n\t */\n\tget engine (): VisualNovelEngine {\n\t\treturn (this.constructor as typeof ShadowComponent).engine;\n\t}\n\n\tset engine (_value: VisualNovelEngine) {\n\t\tthrow new Error('Component engine reference is hold at static level and cannot be modified.');\n\t}\n\n\t/**\n\t * Check if it's ok to proceed\n\t */\n\tasync shouldProceed (): Promise {\n\t\t// Base implementation allows proceeding\n\t}\n\n\t/**\n\t * Respond to game proceeding\n\t */\n\tasync willProceed (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * Check if it's ok to go back\n\t */\n\tasync shouldRollback (): Promise {\n\t\t// Base implementation allows rollback\n\t}\n\n\t/**\n\t * Respond to game reverting\n\t */\n\tasync willRollback (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * Called when the component is connected to the DOM\n\t */\n\tasync connectedCallback (): Promise {\n\t\t// Always add the animated class for all the components\n\t\t// TODO: Let's be honest, this is stupid.\n\t\tthis.classList.add('animated');\n\n\t\treturn super.connectedCallback();\n\t}\n\n\t/**\n\t * Attempts to find a content element inside of this\n\t * component's shadow DOM\n\t *\n\t * @param name - Name of the content element to find\n\t * @returns An Artemis DOM instance with the found elements\n\t */\n\tcontent (name: string): ReturnType {\n\t\t// Ensure we use the shadow DOM query method instead of light DOM\n\t\tconst element = this.query(`[data-content=\"${name}\"]`);\n\n\t\treturn $_(element);\n\t}\n}\n\nexport default ShadowComponent;\n", + "/**\n * =============================================================================\n * Monogatari Core Engine\n * =============================================================================\n */\n\n/**\n * =============================================================================\n * Global Vendor Libraries\n * -----------------------------------------------------------------------------\n * These are third party libraries that must be globally imported in order for\n * Monogatari to work correctly.\n * =============================================================================\n */\n\nimport '@fortawesome/fontawesome-free/js/all';\n\n/**\n * =============================================================================\n * Exported Vendor Libraries\n * -----------------------------------------------------------------------------\n * These are third party libraries that Monogatari uses for certain functions\n * and may be helpful for the developers.\n * =============================================================================\n */\n\nexport * from '@aegis-framework/artemis';\n\nexport { tsParticles } from '@tsparticles/engine';\n\nexport * from '@tsparticles/slim';\n\nexport * as RandomJS from 'random-js';\n\nexport * as Luxon from 'luxon';\n\nimport Monogatari from './monogatari';\nimport type { StaticComponent } from './lib/types/Component';\nimport type { StaticAction } from './lib/types/Action';\n\n/**\n * =============================================================================\n * Translations\n * -----------------------------------------------------------------------------\n * Import all the translations available for the UI\n * =============================================================================\n */\n\nimport arabic from './translations/Ų§Ł„Ų¹Ų±ŲØŁŠŲ©';\nimport belarusian from './translations/Š‘ŠµŠ»Š°Ń€ŃƒŃŠŗŠ°Ń';\nimport brazilianPortuguese from './translations/Portugues_Brasil';\nimport chineseTraditional from './translations/繁體中文';\nimport chineseSimplified from './translations/简体中文';\nimport dutch from './translations/Nederlands';\nimport english from './translations/English';\nimport french from './translations/Francais';\nimport german from './translations/Deutsch';\nimport hungarian from './translations/Hungarian';\nimport indonesian from './translations/Bahasa_Indonesia';\nimport japanese from './translations/ę—„ęœ¬čŖž';\nimport korean from './translations/ķ•œźµ­ģ–“';\nimport portuguese from './translations/Portugues';\nimport russian from './translations/Russian';\nimport spanish from './translations/Espanol';\nimport tokipona from './translations/tokipona';\nimport bulgarian from './translations/Bulgarian';\n\nMonogatari._translations = {\n\t'Bahasa Indonesia': indonesian,\n\t'Š‘ŃŠŠ»Š³Š°Ń€ŃŠŗŠø': bulgarian,\n\t'Š‘ŠµŠ»Š°Ń€ŃƒŃŠŗŠ°Ń': belarusian,\n\t'Deutsch': german,\n\t'English': english,\n\t'EspaƱol': spanish,\n\t'FranƧais': french,\n\t'Magyar': hungarian,\n\t'Nederlands': dutch,\n\t'PortuguĆŖs': portuguese,\n\t'PortuguĆŖs do Brasil': brazilianPortuguese,\n\t'Русский': russian,\n\t'اللغه Ų§Ł„Ų¹Ų±ŲØŁŠŲ©': arabic,\n\t'ķ•œźµ­ģ–“': korean,\n\t'ę—„ęœ¬čŖž': japanese,\n\t'繁體中文': chineseTraditional,\n\t'简体中文': chineseSimplified,\n\t'toki pona': tokipona,\n};\n\nMonogatari._languageMetadata = {\n\t'Bahasa Indonesia':{\n\t\tcode: 'id',\n\t\ticon: 'šŸ‡®šŸ‡©',\n\t},\n\t'Š‘ŠµŠ»Š°Ń€ŃƒŃŠŗŠ°Ń': {\n\t\tcode: 'be',\n\t\ticon: 'šŸ‡§šŸ‡¾'\n\t},\n\t'Š‘ŃŠŠ»Š³Š°Ń€ŃŠŗŠø': {\n\t\tcode: 'bg',\n\t\ticon: 'šŸ‡§šŸ‡¬'\n\t},\n\t'Deutsch': {\n\t\tcode: 'de',\n\t\ticon: 'šŸ‡©šŸ‡Ŗ'\n\t},\n\t'English': {\n\t\tcode: 'en',\n\t\ticon: 'šŸ‡ŗšŸ‡ø'\n\t},\n\t'EspaƱol': {\n\t\tcode: 'es',\n\t\ticon: 'šŸ‡²šŸ‡½'\n\t},\n\t'FranƧais': {\n\t\tcode: 'fr',\n\t\ticon: 'šŸ‡«šŸ‡·'\n\t},\n\t'Magyar': {\n\t\tcode: 'hu',\n\t\ticon: 'šŸ‡­šŸ‡ŗ'\n\t},\n\t'Nederlands': {\n\t\tcode: 'nl',\n\t\ticon: 'šŸ‡³šŸ‡±'\n\t},\n\t'PortuguĆŖs': {\n\t\tcode: 'pt',\n\t\ticon: 'šŸ‡µšŸ‡¹'\n\t},\n\t'PortuguĆŖs do Brasil': {\n\t\tcode: 'pt-br',\n\t\ticon: 'šŸ‡§šŸ‡·'\n\t},\n\t'Русский': {\n\t\tcode: 'ru',\n\t\ticon: 'šŸ‡·šŸ‡ŗ'\n\t},\n\t'اللغه Ų§Ł„Ų¹Ų±ŲØŁŠŲ©': {\n\t\tcode: 'ar',\n\t\ticon: 'šŸ‡¦šŸ‡Ŗ'\n\t},\n\t'ķ•œźµ­ģ–“': {\n\t\tcode: 'ko',\n\t\ticon: 'šŸ‡°šŸ‡·'\n\t},\n\t'ę—„ęœ¬čŖž': {\n\t\tcode: 'ja',\n\t\ticon: 'šŸ‡ÆšŸ‡µ'\n\t},\n\t'繁體中文': {\n\t\tcode: 'zh-hant',\n\t\ticon: 'šŸ‡¹šŸ‡¼'\n\t},\n\t'简体中文': {\n\t\tcode: 'zh-hans',\n\t\ticon: 'šŸ‡ØšŸ‡³'\n\t},\n\t'toki pona': {\n\t\tcode: 'en',\n\t\ticon: 'šŸ•®'\n\t},\n};\n\n/**\n * =============================================================================\n * Components\n * -----------------------------------------------------------------------------\n * Import all the core components used by Monogatari. These components are the\n * ones that describe the behavior and appearance of all the custom elements.\n * =============================================================================\n */\n\nimport AlertModal from './components/alert-modal/index';\nimport CanvasContainer from './components/canvas-container/index';\nimport CenteredDialog from './components/centered-dialog/index';\nimport CharacterSprite from './components/character-sprite/index';\nimport ChoiceContainer from './components/choice-container/index';\nimport CreditsScreen from './components/credits-screen/index';\nimport DialogLog from './components/dialog-log/index';\nimport GalleryScreen from './components/gallery-screen/index';\nimport GameScreen from './components/game-screen/index';\nimport HelpScreen from './components/help-screen/index';\nimport LanguageSelectionScreen from './components/language-selection-screen/index';\nimport LoadScreen from './components/load-screen/index';\nimport LoadingScreen from './components/loading-screen/index';\nimport MainMenu from './components/main-menu/index';\nimport MainScreen from './components/main-screen/index';\nimport MessageModal from './components/message-modal/index';\nimport QuickMenu from './components/quick-menu/index';\nimport SaveScreen from './components/save-screen/index';\nimport SaveSlot from './components/save-slot/index';\nimport SettingsScreen from './components/settings-screen/index';\nimport SlotContainer from './components/slot-container/index';\nimport TextBox from './components/text-box/index';\nimport TextInput from './components/text-input/index';\nimport TimerDisplay from './components/timer-display/index';\nimport VisualNovel from './components/visual-novel/index';\nimport TypeWriter from './components/type-writer/index';\nimport TypeCharacter from './components/type-character/index';\n\n// Type cast needed as components extend Component but TypeScript has trouble with the complex static interfaces\nMonogatari._components = [\n\tAlertModal,\n\tCanvasContainer,\n\tCenteredDialog,\n\tCharacterSprite,\n\tChoiceContainer,\n\tCreditsScreen,\n\tDialogLog,\n\tGalleryScreen,\n\tGameScreen,\n\tHelpScreen,\n\tLanguageSelectionScreen,\n\tLoadScreen,\n\tLoadingScreen,\n\tMainMenu,\n\tMainScreen,\n\tMessageModal,\n\tQuickMenu,\n\tSaveScreen,\n\tSaveSlot,\n\tSettingsScreen,\n\tSlotContainer,\n\tTextBox,\n\tTextInput,\n\tTimerDisplay,\n\tVisualNovel,\n\tTypeWriter,\n\tTypeCharacter\n] as unknown as StaticComponent[];\n\n\n/**\n * =============================================================================\n * Actions\n * -----------------------------------------------------------------------------\n * Import all the core actions available. These actions are the ones that define\n * the allowed statements on a script and what they do.\n * =============================================================================\n */\n\nimport Canvas from './actions/Canvas';\nimport Choice from './actions/Choice';\nimport Clear from './actions/Clear';\nimport Conditional from './actions/Conditional';\nimport Dialog from './actions/Dialog';\nimport End from './actions/End';\nimport Function from './actions/Function';\nimport Gallery from './actions/Gallery';\nimport HideCanvas from './actions/HideCanvas';\nimport HideCharacter from './actions/HideCharacter';\nimport HideCharacterLayer from './actions/HideCharacterLayer';\nimport HideImage from './actions/HideImage';\nimport HideParticles from './actions/HideParticles';\nimport HideTextBox from './actions/HideTextBox';\nimport HideVideo from './actions/HideVideo';\nimport InputModal from './actions/InputModal';\nimport Jump from './actions/Jump';\nimport Message from './actions/Message';\nimport Next from './actions/Next';\nimport Notify from './actions/Notify';\nimport Particles from './actions/Particles';\nimport Pause from './actions/Pause';\nimport Placeholder from './actions/Placeholder';\nimport Play from './actions/Play';\nimport Preload from './actions/Preload';\nimport Scene from './actions/Scene';\nimport ShowBackground from './actions/ShowBackground';\nimport ShowCharacter from './actions/ShowCharacter';\nimport ShowCharacterLayer from './actions/ShowCharacterLayer';\nimport ShowImage from './actions/ShowImage';\nimport ShowTextBox from './actions/ShowTextBox';\nimport Stop from './actions/Stop';\nimport Unload from './actions/Unload';\nimport Vibrate from './actions/Vibrate';\nimport Video from './actions/Video';\nimport Wait from './actions/Wait';\n\n// The order in which actions are registered is important.\n// Type cast needed as actions extend Action but TypeScript has trouble with the complex static interfaces\nMonogatari._actions = [\n\tCanvas,\n\tChoice,\n\tClear,\n\tConditional,\n\tEnd,\n\tFunction,\n\tGallery,\n\tHideCanvas,\n\tHideCharacter,\n\tHideCharacterLayer,\n\tHideImage,\n\tHideParticles,\n\tHideTextBox,\n\tHideVideo,\n\tInputModal,\n\tJump,\n\tMessage,\n\tNext,\n\tNotify,\n\tParticles,\n\tPause,\n\tPlay,\n\tPlaceholder,\n\tPreload,\n\tScene,\n\tShowBackground,\n\tShowCharacter,\n\tShowCharacterLayer,\n\tShowImage,\n\tShowTextBox,\n\tStop,\n\tUnload,\n\tVibrate,\n\tVideo,\n\tWait,\n\n\t// Dialog must always go last\n\tDialog,\n] as StaticAction[];\n\n/**\n * Export Monogatari Core\n */\nexport { default as Action } from './lib/Action';\nexport { default as Component } from './lib/Component';\nexport { default as ShadowComponent } from './lib/ShadowComponent';\nexport * from './lib/ScreenComponent';\nexport * from './lib/MenuComponent';\nexport * from './lib/FancyError';\n\nimport AudioPlayer from './lib/AudioPlayer';\nexport { AudioPlayer };\n\nexport default Monogatari;\n", + "// This file is basically just a hack to expose the Monogatari namespace in the\n// window object. Once/if bun adds support for this, we can remove this file.\n\nimport * as Monogatari from './index';\n\ndeclare global {\n interface Window {\n Monogatari: typeof Monogatari;\n monogatari: typeof Monogatari.default;\n }\n}\n\nif (typeof window === 'object') {\n window.Monogatari = Monogatari;\n window.monogatari = Monogatari.default;\n}" + ], + "mappings": "sxCAAmO,SAAS,EAAO,CAAC,EAAI,CAAC,IAAI,EAAK,EAAI,OAAO,GAAG,EAAK,EAAE,EAAE,MAAM,MAAM,gDAAgD,EAAE,IAAI,EAAS,EAAI,QAAQ,GAAG,EAAE,GAAG,IAAW,GAAG,EAAS,EAAK,IAAI,EAAgB,IAAW,EAAK,EAAE,EAAE,EAAS,EAAE,MAAM,CAAC,EAAS,CAAe,EAAE,SAAS,EAAW,CAAC,EAAS,EAAgB,CAAC,OAAO,EAAS,GAAiB,EAAE,EAAE,EAAgB,SAAS,EAAW,CAAC,EAAI,CAAC,IAAI,EAAI,EAAK,GAAQ,CAAG,EAAE,EAAS,EAAK,GAAG,EAAgB,EAAK,GAAG,EAAI,IAAI,WAAW,GAAY,EAAS,CAAe,CAAC,EAAE,EAAQ,EAAE,EAAK,EAAgB,EAAE,EAAS,EAAE,EAAS,EAAG,IAAI,EAAG,EAAE,EAAG,EAAK,GAAI,EAAE,EAAI,GAAU,EAAI,WAAW,CAAE,IAAI,GAAG,GAAU,EAAI,WAAW,EAAG,CAAC,IAAI,GAAG,GAAU,EAAI,WAAW,EAAG,CAAC,IAAI,EAAE,GAAU,EAAI,WAAW,EAAG,CAAC,GAAG,EAAI,KAAW,GAAK,GAAG,IAAI,EAAI,KAAW,GAAK,EAAE,IAAI,EAAI,KAAW,EAAI,IAAI,GAAG,IAAkB,EAAE,EAAI,GAAU,EAAI,WAAW,CAAE,IAAI,EAAE,GAAU,EAAI,WAAW,EAAG,CAAC,IAAI,EAAE,EAAI,KAAW,EAAI,IAAI,GAAG,IAAkB,EAAE,EAAI,GAAU,EAAI,WAAW,CAAE,IAAI,GAAG,GAAU,EAAI,WAAW,EAAG,CAAC,IAAI,EAAE,GAAU,EAAI,WAAW,EAAG,CAAC,IAAI,EAAE,EAAI,KAAW,GAAK,EAAE,IAAI,EAAI,KAAW,EAAI,IAAI,OAAO,EAAI,SAAS,EAAe,CAAC,EAAI,CAAC,OAAO,GAAO,GAAK,GAAG,IAAI,GAAO,GAAK,GAAG,IAAI,GAAO,GAAK,EAAE,IAAI,GAAO,EAAI,IAAI,SAAS,EAAW,CAAC,EAAM,EAAM,EAAI,CAAC,IAAI,EAAI,EAAO,CAAC,EAAE,QAAQ,EAAG,EAAM,EAAG,EAAI,GAAI,EAAE,GAAK,EAAM,IAAK,GAAG,WAAW,EAAM,EAAG,IAAI,EAAE,QAAQ,EAAM,EAAG,GAAG,KAAK,EAAO,KAAK,GAAgB,CAAG,CAAC,EAAE,OAAO,EAAO,KAAK,EAAE,EAAE,SAAS,EAAa,CAAC,EAAM,CAAC,IAAI,EAAI,EAAK,EAAM,OAAO,EAAW,EAAK,EAAE,EAAM,CAAC,EAAE,EAAe,MAAM,QAAQ,EAAG,EAAE,EAAM,EAAK,EAAW,EAAG,EAAM,GAAI,EAAe,EAAM,KAAK,GAAY,EAAM,EAAG,EAAG,EAAe,EAAM,EAAM,EAAG,CAAc,CAAC,EAAE,GAAG,IAAa,EAAE,EAAI,EAAM,EAAK,GAAG,EAAM,KAAK,GAAO,GAAK,GAAG,GAAO,GAAK,EAAE,IAAI,IAAI,EAAO,QAAG,IAAa,EAAE,GAAK,EAAM,EAAK,IAAI,GAAG,EAAM,EAAK,GAAG,EAAM,KAAK,GAAO,GAAK,IAAI,GAAO,GAAK,EAAE,IAAI,GAAO,GAAK,EAAE,IAAI,GAAG,EAAE,OAAO,EAAM,KAAK,EAAE,EAAE,SAAS,EAAI,CAAC,EAAO,EAAO,EAAK,EAAK,EAAO,CAAC,IAAI,EAAE,EAAE,EAAK,EAAO,EAAE,EAAK,EAAE,GAAM,GAAG,GAAM,EAAE,EAAM,GAAM,EAAE,EAAM,GAAG,EAAG,EAAK,EAAO,EAAE,EAAE,EAAE,EAAK,GAAG,EAAE,EAAE,EAAO,EAAO,GAAI,GAAI,EAAE,EAAE,GAAG,GAAG,CAAC,GAAO,EAAE,IAAI,CAAC,EAAM,GAAO,EAAK,KAAK,EAAM,EAAE,EAAE,EAAE,IAAI,EAAO,EAAO,GAAI,GAAI,EAAE,GAAO,GAAG,EAAE,GAAG,GAAG,CAAC,GAAO,EAAE,IAAI,CAAC,EAAM,GAAO,EAAK,KAAK,EAAM,EAAE,EAAE,EAAE,IAAI,EAAO,EAAO,GAAI,GAAI,EAAE,GAAO,GAAG,GAAG,IAAI,EAAE,EAAE,EAAE,EAAW,QAAG,IAAI,EAAK,OAAO,EAAE,KAAK,EAAE,GAAG,GAAI,MAAU,OAAE,EAAE,KAAK,IAAI,EAAE,CAAI,EAAE,EAAE,EAAE,EAAM,OAAO,EAAE,GAAG,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,CAAI,EAAE,SAAS,EAAK,CAAC,EAAO,EAAM,EAAO,EAAK,EAAK,EAAO,CAAC,IAAI,EAAE,EAAE,EAAE,EAAK,EAAO,EAAE,EAAK,EAAE,GAAM,GAAG,GAAM,EAAE,EAAM,GAAM,EAAE,EAAG,IAAO,GAAG,KAAK,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,EAAE,GAAG,EAAE,EAAE,EAAG,EAAK,EAAE,EAAO,EAAE,EAAE,EAAK,EAAE,GAAG,EAAE,EAAM,GAAG,IAAQ,GAAG,EAAE,EAAM,EAAE,EAAE,EAAE,GAAG,EAAM,KAAK,IAAI,CAAK,EAAE,MAAM,CAAK,GAAG,IAAQ,IAAI,EAAE,MAAM,CAAK,EAAE,EAAE,EAAE,EAAE,EAAS,KAAC,GAAG,EAAE,KAAK,MAAM,KAAK,IAAI,CAAK,EAAE,KAAK,GAAG,EAAE,GAAO,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAO,EAAE,GAAO,EAAG,EAAO,QAAO,EAAG,KAAK,IAAI,EAAE,EAAE,CAAK,EAAE,GAAG,EAAM,GAAG,EAAE,IAAI,GAAG,EAAE,GAAG,EAAE,GAAO,EAAK,EAAE,EAAE,EAAE,EAAU,QAAG,EAAE,GAAO,EAAE,GAAG,EAAM,EAAE,GAAG,KAAK,IAAI,EAAE,CAAI,EAAE,EAAE,EAAE,EAAW,OAAE,EAAM,KAAK,IAAI,EAAE,EAAM,CAAC,EAAE,KAAK,IAAI,EAAE,CAAI,EAAE,EAAE,EAAE,KAAK,GAAM,EAAE,EAAO,EAAO,GAAI,EAAE,IAAI,GAAI,EAAE,GAAG,IAAI,GAAM,GAAG,EAAE,GAAG,EAAK,EAAE,GAAM,EAAK,KAAK,EAAK,EAAE,EAAO,EAAO,GAAI,EAAE,IAAI,GAAI,EAAE,GAAG,IAAI,GAAM,GAAG,EAAO,EAAO,EAAG,IAAI,EAAE,IAAoW,SAAS,EAAY,CAAC,EAAO,CAAC,GAAG,EAAO,GAAW,MAAM,WAAW,cAAc,EAAO,gCAAgC,EAAE,IAAI,EAAI,IAAI,WAAW,CAAM,EAAE,OAAO,OAAO,eAAe,EAAI,GAAO,SAAS,EAAE,EAAI,SAAS,EAAC,CAAC,EAAI,EAAW,EAAK,CAAC,OAAO,cAAc,CAAI,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,eAAe,KAAK,UAAU,CAAC,MAAM,EAAW,MAAM,KAAK,SAAS,EAAE,SAAS,GAAG,aAAa,EAAE,CAAC,EAAE,KAAK,KAAK,GAAG,KAAK,SAAS,KAAO,KAAK,MAAM,OAAO,KAAK,QAAS,KAAI,EAAE,CAAC,OAAO,KAAQ,KAAI,CAAC,EAAM,CAAC,OAAO,eAAe,KAAK,OAAO,CAAC,aAAa,GAAG,WAAW,GAAG,QAAM,SAAS,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,GAAG,KAAK,SAAS,OAAS,KAAK,UAAU,EAAs0B,SAAS,EAAM,CAAC,EAAI,EAAiB,EAAO,CAAC,GAAG,OAAO,IAAM,SAAS,CAAC,GAAG,OAAO,IAAmB,SAAS,MAAM,UAAU,oEAAoE,EAAE,OAAO,GAAY,CAAG,EAAE,OAAO,GAAK,EAAI,EAAiB,CAAM,EAAqS,SAAS,EAAI,CAAC,EAAM,EAAiB,EAAO,CAAC,GAAG,OAAO,IAAQ,SAAS,OAAO,GAAW,EAAM,CAAgB,EAAE,GAAG,YAAY,OAAO,CAAK,EAAE,OAAO,GAAc,CAAK,EAAE,GAAG,GAAO,KAAK,MAAM,UAAU,kHAAkH,OAAO,CAAK,EAAE,GAAG,GAAW,EAAM,WAAW,GAAG,GAAO,GAAW,EAAM,OAAO,WAAW,EAAE,OAAO,GAAgB,EAAM,EAAiB,CAAM,EAAE,GAAG,OAAO,kBAAkB,MAAM,GAAW,EAAM,iBAAiB,GAAG,GAAO,GAAW,EAAM,OAAO,iBAAiB,GAAG,OAAO,GAAgB,EAAM,EAAiB,CAAM,EAAE,GAAG,OAAO,IAAQ,SAAS,MAAM,UAAU,uEAAuE,EAAE,IAAI,EAAQ,EAAM,SAAS,EAAM,QAAQ,EAAE,GAAG,GAAS,MAAM,IAAU,EAAM,OAAO,GAAO,KAAK,EAAQ,EAAiB,CAAM,EAAE,IAAI,EAAE,GAAW,CAAK,EAAE,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,OAAO,KAAK,OAAO,aAAa,MAAM,OAAO,EAAM,OAAO,eAAe,WAAW,OAAO,GAAO,KAAK,EAAM,OAAO,aAAa,QAAQ,EAAE,EAAiB,CAAM,EAAE,MAAM,UAAU,kHAAkH,OAAO,CAAK,EAAwM,SAAS,EAAU,CAAC,EAAK,CAAC,GAAG,OAAO,IAAO,SAAS,MAAM,UAAU,wCAAwC,EAAO,QAAG,EAAK,EAAE,MAAM,WAAW,cAAc,EAAK,gCAAgC,EAAE,SAAS,EAAK,CAAC,EAAK,EAAK,EAAS,CAAC,GAAG,GAAW,CAAI,EAAE,GAAM,EAAE,OAAO,GAAa,CAAI,EAAE,GAAG,IAAY,OAAE,OAAO,OAAO,IAAW,SAAS,GAAa,CAAI,EAAE,KAAK,EAAK,CAAQ,EAAE,GAAa,CAAI,EAAE,KAAK,CAAI,EAAE,OAAO,GAAa,CAAI,EAA8E,SAAS,EAAW,CAAC,EAAK,CAAC,OAAO,GAAW,CAAI,EAAE,GAAa,EAAK,EAAE,EAAE,GAAQ,CAAI,EAAE,CAAC,EAA8H,SAAS,EAAU,CAAC,EAAO,EAAS,CAAC,GAAG,OAAO,IAAW,UAAU,IAAW,GAAG,EAAS,OAAO,GAAG,CAAC,GAAO,WAAW,CAAQ,EAAE,MAAM,UAAU,qBAAqB,CAAQ,EAAE,IAAI,EAAO,GAAW,EAAO,CAAQ,EAAE,EAAE,EAAI,GAAa,CAAM,EAAE,EAAO,EAAI,MAAM,EAAO,CAAQ,EAAE,GAAG,IAAS,EAAO,EAAI,EAAI,MAAM,EAAE,CAAM,EAAE,OAAO,EAAI,SAAS,EAAa,CAAC,EAAM,CAAC,IAAI,EAAO,EAAM,OAAO,EAAE,EAAE,GAAQ,EAAM,MAAM,EAAE,EAAE,EAAI,GAAa,CAAM,EAAE,QAAQ,EAAG,EAAE,EAAG,EAAO,GAAI,EAAE,EAAI,GAAI,EAAM,GAAI,IAAI,OAAO,EAAI,SAAS,EAAa,CAAC,EAAU,CAAC,GAAG,GAAW,EAAU,UAAU,EAAE,CAAC,IAAI,EAAK,IAAI,WAAW,CAAS,EAAE,OAAO,GAAgB,EAAK,OAAO,EAAK,WAAW,EAAK,UAAU,EAAE,OAAO,GAAc,CAAS,EAAE,SAAS,EAAe,CAAC,EAAM,EAAW,EAAO,CAAC,GAAG,EAAW,GAAG,EAAM,WAAW,EAAW,MAAM,WAAW,sCAAsC,EAAE,GAAG,EAAM,WAAW,GAAY,GAAQ,GAAG,MAAM,WAAW,sCAAsC,EAAE,IAAI,EAAI,GAAG,IAAkB,QAAG,IAAc,OAAE,EAAI,IAAI,WAAW,CAAK,EAAO,QAAG,IAAc,OAAE,EAAI,IAAI,WAAW,EAAM,CAAU,EAAO,OAAI,IAAI,WAAW,EAAM,EAAW,CAAM,EAAE,OAAO,OAAO,eAAe,EAAI,GAAO,SAAS,EAAE,EAAI,SAAS,EAAU,CAAC,EAAI,CAAC,GAAG,GAAO,SAAS,CAAG,EAAE,CAAC,IAAI,EAAK,GAAQ,EAAI,MAAM,EAAE,EAAE,EAAI,GAAa,CAAI,EAAE,GAAG,EAAI,SAAS,EAAE,OAAO,EAAI,OAAO,EAAI,KAAK,EAAI,EAAE,EAAE,CAAI,EAAE,EAAI,GAAG,EAAI,SAAc,OAAE,CAAC,GAAG,OAAO,EAAI,SAAS,UAAU,OAAO,MAAM,EAAI,MAAM,EAAE,OAAO,GAAa,CAAC,EAAE,OAAO,GAAc,CAAG,EAAE,GAAG,EAAI,OAAO,UAAU,MAAM,QAAQ,EAAI,IAAI,EAAE,OAAO,GAAc,EAAI,IAAI,EAAE,SAAS,EAAO,CAAC,EAAO,CAAC,GAAG,GAAQ,GAAW,MAAM,WAAW,0DAA0D,GAAW,SAAS,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAO,EAA67C,SAAS,EAAU,CAAC,EAAO,EAAS,CAAC,GAAG,GAAO,SAAS,CAAM,EAAE,OAAO,EAAO,OAAO,GAAG,YAAY,OAAO,CAAM,GAAG,GAAW,EAAO,WAAW,EAAE,OAAO,EAAO,WAAW,GAAG,OAAO,IAAS,SAAS,MAAM,UAAU,2FAA2F,OAAO,CAAM,EAAE,IAAI,EAAK,EAAO,OAAO,EAAU,UAAU,OAAO,GAAG,UAAU,KAAK,GAAG,GAAG,CAAC,GAAW,IAAO,EAAE,MAAO,GAAE,IAAI,EAAY,GAAG,OAAO,OAAO,OAAc,YAAY,aAAa,SAAS,OAAO,MAAS,WAAW,QAAQ,OAAO,GAAY,CAAM,EAAE,WAAW,WAAW,YAAY,cAAc,WAAW,OAAO,EAAK,MAAM,MAAM,OAAO,IAAO,MAAM,SAAS,OAAO,GAAc,CAAM,EAAE,eAAe,GAAG,EAAY,OAAO,EAAU,GAAG,GAAY,CAAM,EAAE,OAAO,GAAU,GAAG,GAAU,YAAY,EAAE,EAAY,IAAiC,SAAS,EAAY,CAAC,EAAS,EAAM,EAAI,CAAC,IAAI,EAAY,GAAG,GAAG,IAAa,QAAG,EAAM,EAAE,EAAM,EAAE,GAAG,EAAM,KAAK,OAAO,MAAM,GAAG,GAAG,IAAW,QAAG,EAAI,KAAK,OAAO,EAAI,KAAK,OAAO,GAAG,GAAK,EAAE,MAAM,GAAG,GAAG,KAAO,EAAE,KAAS,EAAE,GAAK,EAAM,MAAM,GAAG,GAAG,CAAC,EAAS,EAAS,OAAO,MAAM,GAAG,OAAO,OAAc,MAAM,OAAO,GAAS,KAAK,EAAM,CAAG,MAAM,WAAW,QAAQ,OAAO,GAAU,KAAK,EAAM,CAAG,MAAM,QAAQ,OAAO,GAAW,KAAK,EAAM,CAAG,MAAM,aAAa,SAAS,OAAO,GAAY,KAAK,EAAM,CAAG,MAAM,SAAS,OAAO,GAAY,KAAK,EAAM,CAAG,MAAM,WAAW,YAAY,cAAc,WAAW,OAAO,GAAa,KAAK,EAAM,CAAG,UAAU,GAAG,EAAY,MAAM,UAAU,qBAAqB,CAAQ,EAAE,GAAU,EAAS,IAAI,YAAY,EAAE,EAAY,IAAkC,SAAS,EAAI,CAAC,EAAE,EAAE,EAAE,CAAC,IAAI,EAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAoxE,SAAS,EAAoB,CAAC,EAAO,EAAI,EAAW,EAAS,EAAI,CAAC,GAAG,EAAO,SAAS,EAAE,MAAM,GAAG,GAAG,OAAO,IAAa,SAAS,EAAS,EAAW,EAAW,EAAO,QAAG,EAAW,WAAW,EAAW,WAAgB,QAAG,EAAW,YAAY,EAAW,YAAY,GAAG,EAAW,CAAC,EAAW,OAAO,MAAM,CAAU,EAAE,EAAW,EAAI,EAAE,EAAO,OAAO,EAAE,GAAG,EAAW,EAAE,EAAW,EAAO,OAAO,EAAW,GAAG,GAAY,EAAO,OAAO,GAAG,EAAI,MAAM,GAAQ,OAAW,EAAO,OAAO,EAAO,QAAG,EAAW,EAAE,GAAG,EAAI,EAAW,EAAO,WAAM,GAAG,GAAG,OAAO,IAAM,SAAS,EAAI,GAAO,KAAK,EAAI,CAAQ,EAAE,GAAG,GAAO,SAAS,CAAG,EAAE,CAAC,GAAG,EAAI,SAAS,EAAE,MAAM,GAAG,OAAO,GAAa,EAAO,EAAI,EAAW,EAAS,CAAG,EAAO,QAAG,OAAO,IAAM,SAAS,CAAC,GAAG,EAAI,EAAI,IAAI,OAAO,WAAW,UAAU,UAAU,WAAW,GAAG,EAAI,OAAO,WAAW,UAAU,QAAQ,KAAK,EAAO,EAAI,CAAU,EAAO,YAAO,WAAW,UAAU,YAAY,KAAK,EAAO,EAAI,CAAU,EAAE,OAAO,GAAa,EAAO,CAAC,CAAG,EAAE,EAAW,EAAS,CAAG,EAAE,MAAM,UAAU,sCAAsC,EAAE,SAAS,EAAY,CAAC,EAAI,EAAI,EAAW,EAAS,EAAI,CAAC,IAAI,EAAU,EAAE,EAAU,EAAI,OAAO,EAAU,EAAI,OAAO,GAAG,IAAgB,QAAG,GAAG,EAAS,OAAO,CAAQ,EAAE,YAAY,EAAE,IAAW,QAAQ,IAAW,SAAS,IAAW,WAAW,IAAW,WAAW,CAAC,GAAG,EAAI,OAAO,GAAG,EAAI,OAAO,EAAE,MAAM,GAAG,EAAU,EAAE,GAAW,EAAE,GAAW,EAAE,GAAY,GAAG,SAAS,CAAK,CAAC,EAAI,EAAG,CAAC,GAAG,IAAY,EAAE,OAAO,EAAI,GAAS,YAAO,EAAI,aAAa,EAAG,CAAS,EAAE,IAAI,EAAG,GAAG,EAAI,CAAC,IAAI,EAAW,GAAG,IAAI,EAAG,EAAW,EAAG,EAAU,IAAK,GAAG,EAAM,EAAI,CAAE,IAAI,EAAM,EAAI,IAAa,GAAG,EAAE,EAAG,CAAU,EAAE,CAAC,GAAG,IAAa,GAAG,EAAW,EAAG,GAAG,EAAG,EAAW,IAAI,EAAU,OAAO,EAAW,EAAc,KAAC,GAAG,IAAa,GAAG,GAAI,EAAG,EAAW,EAAW,IAAQ,KAAC,GAAG,EAAW,EAAU,EAAU,EAAW,EAAU,EAAU,IAAI,EAAG,EAAW,GAAI,EAAE,IAAK,CAAC,IAAI,EAAM,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAU,IAAI,GAAG,EAAM,EAAI,EAAG,CAAC,IAAI,EAAM,EAAI,CAAC,EAAE,CAAC,EAAM,GAAG,MAAM,GAAG,EAAM,OAAO,GAAI,MAAM,GAAwW,SAAS,EAAQ,CAAC,EAAI,EAAO,EAAO,EAAO,CAAC,EAAO,OAAO,CAAM,GAAG,EAAE,IAAI,EAAU,EAAI,OAAO,EAAO,GAAG,CAAC,EAAO,EAAO,EAAe,QAAG,EAAO,OAAO,CAAM,EAAE,EAAO,EAAU,EAAO,EAAU,IAAI,EAAO,EAAO,OAAO,GAAG,EAAO,EAAO,EAAE,EAAO,EAAO,EAAE,IAAI,EAAG,IAAI,EAAG,EAAE,EAAG,EAAO,EAAE,EAAG,CAAC,IAAI,EAAO,SAAS,EAAO,OAAO,EAAG,EAAE,CAAC,EAAE,EAAE,EAAE,GAAG,OAAO,MAAM,CAAM,EAAE,OAAO,EAAG,EAAI,EAAO,GAAI,EAAO,OAAO,EAAG,SAAS,EAAS,CAAC,EAAI,EAAO,EAAO,EAAO,CAAC,OAAO,GAAW,GAAY,EAAO,EAAI,OAAO,CAAM,EAAE,EAAI,EAAO,CAAM,EAAE,SAAS,EAAU,CAAC,EAAI,EAAO,EAAO,EAAO,CAAC,OAAO,GAAW,GAAa,CAAM,EAAE,EAAI,EAAO,CAAM,EAAE,SAAS,EAAW,CAAC,EAAI,EAAO,EAAO,EAAO,CAAC,OAAO,GAAW,GAAc,CAAM,EAAE,EAAI,EAAO,CAAM,EAAE,SAAS,EAAS,CAAC,EAAI,EAAO,EAAO,EAAO,CAAC,OAAO,GAAW,GAAe,EAAO,EAAI,OAAO,CAAM,EAAE,EAAI,EAAO,CAAM,EAA0zC,SAAS,EAAW,CAAC,EAAI,EAAM,EAAI,CAAC,GAAG,IAAQ,GAAG,IAAM,EAAI,OAAO,OAAO,GAAc,CAAG,EAAO,YAAO,GAAc,EAAI,MAAM,EAAM,CAAG,CAAC,EAAE,SAAS,EAAS,CAAC,EAAI,EAAM,EAAI,CAAC,EAAI,KAAK,IAAI,EAAI,OAAO,CAAG,EAAE,IAAI,EAAI,CAAC,EAAE,EAAG,EAAM,MAAM,EAAG,EAAI,CAAC,IAAI,EAAU,EAAI,GAAI,EAAU,KAAK,EAAiB,EAAU,IAAI,EAAE,EAAU,IAAI,EAAE,EAAU,IAAI,EAAE,EAAE,GAAG,EAAG,GAAkB,EAAI,CAAC,IAAI,EAAW,EAAU,EAAW,EAAc,OAAO,OAAuB,GAAE,GAAG,EAAU,IAAI,EAAU,EAAU,UAAW,GAAE,GAAG,EAAW,EAAI,EAAG,IAAI,EAAW,OAAO,KAAK,GAAG,GAAe,EAAU,KAAK,EAAE,EAAW,GAAG,EAAc,IAAI,EAAU,EAAc,UAAW,GAAE,GAAG,EAAW,EAAI,EAAG,GAAG,EAAU,EAAI,EAAG,IAAI,EAAW,OAAO,MAAM,EAAU,OAAO,KAAK,GAAG,GAAe,EAAU,KAAK,IAAI,EAAW,KAAK,EAAE,EAAU,GAAG,EAAc,OAAO,EAAc,OAAO,EAAc,OAAO,EAAU,EAAc,UAAW,GAAE,GAAG,EAAW,EAAI,EAAG,GAAG,EAAU,EAAI,EAAG,GAAG,EAAW,EAAI,EAAG,IAAI,EAAW,OAAO,MAAM,EAAU,OAAO,MAAM,EAAW,OAAO,KAAK,GAAG,GAAe,EAAU,KAAK,IAAI,EAAW,KAAK,IAAI,EAAU,KAAK,EAAE,EAAW,GAAG,EAAc,OAAO,EAAc,QAAQ,EAAU,IAAgB,GAAG,IAAY,KAAK,EAAU,MAAM,EAAiB,EAAO,QAAG,EAAU,MAAM,GAAW,MAAM,EAAI,KAAK,IAAY,GAAG,KAAK,KAAK,EAAE,EAAU,MAAM,EAAU,KAAK,EAAI,KAAK,CAAS,EAAE,GAAI,EAAiB,OAAO,GAAsB,CAAG,EAAgC,SAAS,EAAqB,CAAC,EAAW,CAAC,IAAI,EAAK,EAAW,OAAO,GAAG,GAAM,GAAqB,OAAO,OAAO,aAAa,MAAM,OAAO,CAAU,EAAE,IAAI,EAAI,GAAG,EAAG,EAAE,MAAM,EAAG,EAAK,GAAK,OAAO,aAAa,MAAM,OAAO,EAAW,MAAM,EAAG,GAAI,EAAoB,CAAC,EAAE,OAAO,EAAI,SAAS,EAAU,CAAC,EAAI,EAAM,EAAI,CAAC,IAAI,EAAI,GAAG,EAAI,KAAK,IAAI,EAAI,OAAO,CAAG,EAAE,QAAQ,EAAG,EAAM,EAAG,EAAI,EAAE,EAAG,GAAK,OAAO,aAAa,EAAI,GAAI,GAAG,EAAE,OAAO,EAAI,SAAS,EAAW,CAAC,EAAI,EAAM,EAAI,CAAC,IAAI,EAAI,GAAG,EAAI,KAAK,IAAI,EAAI,OAAO,CAAG,EAAE,QAAQ,EAAG,EAAM,EAAG,EAAI,EAAE,EAAG,GAAK,OAAO,aAAa,EAAI,EAAG,EAAE,OAAO,EAAI,SAAS,EAAQ,CAAC,EAAI,EAAM,EAAI,CAAC,IAAI,EAAK,EAAI,OAAO,GAAG,CAAC,GAAO,EAAM,EAAE,EAAM,EAAE,GAAG,CAAC,GAAK,EAAI,GAAG,EAAI,EAAK,EAAI,EAAK,IAAI,EAAI,GAAG,QAAQ,EAAG,EAAM,EAAG,EAAI,EAAE,EAAG,GAAK,GAAoB,EAAI,IAAK,OAAO,EAAI,SAAS,EAAY,CAAC,EAAI,EAAM,EAAI,CAAC,IAAI,EAAM,EAAI,MAAM,EAAM,CAAG,EAAE,EAAI,GAAG,QAAQ,EAAG,EAAE,EAAG,EAAM,OAAO,EAAE,GAAI,EAAE,GAAK,OAAO,aAAa,EAAM,GAAI,EAAM,EAAG,GAAG,GAAG,EAAE,OAAO,EAA6W,SAAS,EAAW,CAAC,EAAO,EAAI,EAAO,CAAC,GAAG,EAAO,IAAI,GAAG,EAAO,EAAE,MAAM,WAAW,oBAAoB,EAAE,GAAG,EAAO,EAAI,EAAO,MAAM,WAAW,uCAAuC,EAAq7K,SAAS,EAAQ,CAAC,EAAI,EAAM,EAAO,EAAI,EAAI,EAAI,CAAC,GAAG,CAAC,GAAO,SAAS,CAAG,EAAE,MAAM,UAAU,6CAA6C,EAAE,GAAG,EAAM,GAAK,EAAM,EAAI,MAAM,WAAW,mCAAmC,EAAE,GAAG,EAAO,EAAI,EAAI,OAAO,MAAM,WAAW,oBAAoB,EAAwiE,SAAS,EAAc,CAAC,EAAI,EAAM,EAAO,EAAI,EAAI,CAAC,GAAW,EAAM,EAAI,EAAI,EAAI,EAAO,CAAC,EAAE,IAAI,EAAG,OAAO,EAAM,OAAO,UAAU,CAAC,EAAE,EAAI,KAAU,EAAG,EAAG,GAAI,EAAE,EAAI,KAAU,EAAG,EAAG,GAAI,EAAE,EAAI,KAAU,EAAG,EAAG,GAAI,EAAE,EAAI,KAAU,EAAG,IAAI,EAAG,OAAO,GAAO,OAAO,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,OAAO,EAAI,KAAU,EAAG,EAAG,GAAI,EAAE,EAAI,KAAU,EAAG,EAAG,GAAI,EAAE,EAAI,KAAU,EAAG,EAAG,GAAI,EAAE,EAAI,KAAU,EAAG,EAAO,SAAS,EAAc,CAAC,EAAI,EAAM,EAAO,EAAI,EAAI,CAAC,GAAW,EAAM,EAAI,EAAI,EAAI,EAAO,CAAC,EAAE,IAAI,EAAG,OAAO,EAAM,OAAO,UAAU,CAAC,EAAE,EAAI,EAAO,GAAG,EAAG,EAAG,GAAI,EAAE,EAAI,EAAO,GAAG,EAAG,EAAG,GAAI,EAAE,EAAI,EAAO,GAAG,EAAG,EAAG,GAAI,EAAE,EAAI,EAAO,GAAG,EAAG,IAAI,EAAG,OAAO,GAAO,OAAO,EAAE,EAAE,OAAO,UAAU,CAAC,EAAE,OAAO,EAAI,EAAO,GAAG,EAAG,EAAG,GAAI,EAAE,EAAI,EAAO,GAAG,EAAG,EAAG,GAAI,EAAE,EAAI,EAAO,GAAG,EAAG,EAAG,GAAI,EAAE,EAAI,GAAQ,EAAG,EAAO,EAAmqF,SAAS,EAAY,CAAC,EAAI,EAAM,EAAO,EAAI,EAAI,EAAI,CAAC,GAAG,EAAO,EAAI,EAAI,OAAO,MAAM,WAAW,oBAAoB,EAAE,GAAG,EAAO,EAAE,MAAM,WAAW,oBAAoB,EAAE,SAAS,EAAU,CAAC,EAAI,EAAM,EAAO,EAAa,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,GAAa,EAAI,EAAM,EAAO,EAAE,wCAAwC,wCAAwC,EAAE,OAAO,GAAM,EAAI,EAAM,EAAO,EAAa,GAAG,CAAC,EAAE,EAAO,EAAkO,SAAS,EAAW,CAAC,EAAI,EAAM,EAAO,EAAa,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,GAAa,EAAI,EAAM,EAAO,EAAE,sTAAsT,sTAAsT,EAAE,OAAO,GAAM,EAAI,EAAM,EAAO,EAAa,GAAG,CAAC,EAAE,EAAO,EAAsqE,SAAS,EAAqB,CAAC,EAAI,CAAC,IAAI,EAAI,GAAG,EAAG,EAAI,OAAO,EAAM,EAAI,KAAK,IAAI,EAAE,EAAE,KAAK,GAAI,EAAM,EAAE,GAAI,EAAE,EAAI,IAAI,EAAI,MAAM,EAAG,EAAE,CAAE,IAAI,IAAM,MAAM,GAAG,EAAI,MAAM,EAAE,CAAE,IAAI,IAAM,SAAS,EAAW,CAAC,EAAI,EAAO,EAAY,CAAC,GAAG,GAAe,EAAO,QAAQ,EAAE,EAAI,KAAe,QAAG,EAAI,EAAO,KAAoB,OAAE,GAAY,EAAO,EAAI,QAAQ,EAAY,EAAE,EAAE,SAAS,EAAU,CAAC,EAAM,EAAI,EAAI,EAAI,EAAO,EAAY,CAAC,GAAG,EAAM,GAAK,EAAM,EAAI,CAAC,IAAI,EAAE,OAAO,IAAM,SAAS,IAAI,GAAG,EAAM,GAAG,EAAY,EAAE,GAAG,IAAM,GAAG,IAAM,OAAO,CAAC,EAAE,EAAM,OAAO,YAAY,SAAS,EAAY,GAAG,IAAI,IAAS,OAAM,SAAS,SAAS,EAAY,GAAG,EAAE,IAAI,kBAAkB,EAAY,GAAG,EAAE,IAAI,IAAS,OAAM,MAAM,IAAM,YAAY,IAAM,IAAI,MAAM,IAAI,GAAiB,QAAQ,EAAM,CAAK,EAAE,GAAY,EAAI,EAAO,CAAW,EAAE,SAAS,EAAc,CAAC,EAAM,EAAK,CAAC,GAAG,OAAO,IAAQ,SAAS,MAAM,IAAI,GAAqB,EAAK,SAAS,CAAK,EAAE,SAAS,EAAW,CAAC,EAAM,EAAO,EAAK,CAAC,GAAG,KAAK,MAAM,CAAK,IAAI,EAAM,MAAM,GAAe,EAAM,CAAI,EAAE,IAAI,GAAiB,GAAM,SAAS,aAAa,CAAK,EAAE,GAAG,EAAO,EAAE,MAAM,IAAI,GAAyB,MAAM,IAAI,GAAiB,GAAM,SAAS,MAAM,EAAK,EAAE,YAAY,IAAS,CAAK,EAA4C,SAAS,EAAW,CAAC,EAAI,CAAC,GAAG,EAAI,EAAI,MAAM,GAAG,EAAE,GAAG,EAAI,EAAI,KAAK,EAAE,QAAQ,GAAkB,EAAE,EAAE,EAAI,OAAO,EAAE,MAAM,GAAG,MAAM,EAAI,OAAO,IAAI,EAAE,EAAI,EAAI,IAAI,OAAO,EAAI,SAAS,EAAW,CAAC,EAAO,EAAM,CAAC,EAAM,GAAO,IAAI,IAAI,EAAU,EAAO,EAAO,OAAO,EAAc,KAAK,EAAM,CAAC,EAAE,QAAQ,EAAG,EAAE,EAAG,EAAO,EAAE,EAAG,CAAC,GAAG,EAAU,EAAO,WAAW,CAAE,EAAE,EAAU,OAAO,EAAU,MAAM,CAAC,GAAG,CAAC,EAAc,CAAC,GAAG,EAAU,MAAM,CAAC,IAAI,GAAO,GAAG,GAAG,EAAM,KAAK,IAAI,IAAI,GAAG,EAAE,SAAc,QAAG,EAAG,IAAI,EAAO,CAAC,IAAI,GAAO,GAAG,GAAG,EAAM,KAAK,IAAI,IAAI,GAAG,EAAE,SAAS,EAAc,EAAU,SAAS,GAAG,EAAU,MAAM,CAAC,IAAI,GAAO,GAAG,GAAG,EAAM,KAAK,IAAI,IAAI,GAAG,EAAE,EAAc,EAAU,SAAS,GAAW,EAAc,OAAO,GAAG,EAAU,OAAO,MAAW,QAAG,GAAe,IAAI,GAAO,GAAG,GAAG,EAAM,KAAK,IAAI,IAAI,GAAG,EAAE,GAAG,EAAc,KAAK,EAAU,IAAI,CAAC,IAAI,GAAO,GAAG,EAAE,MAAM,EAAM,KAAK,CAAS,EAAO,QAAG,EAAU,KAAK,CAAC,IAAI,GAAO,GAAG,EAAE,MAAM,EAAM,KAAK,GAAW,EAAE,IAAI,EAAU,GAAG,GAAG,EAAO,QAAG,EAAU,MAAM,CAAC,IAAI,GAAO,GAAG,EAAE,MAAM,EAAM,KAAK,GAAW,GAAG,IAAI,GAAW,EAAE,GAAG,IAAI,EAAU,GAAG,GAAG,EAAO,QAAG,EAAU,QAAQ,CAAC,IAAI,GAAO,GAAG,EAAE,MAAM,EAAM,KAAK,GAAW,GAAG,IAAI,GAAW,GAAG,GAAG,IAAI,GAAW,EAAE,GAAG,IAAI,EAAU,GAAG,GAAG,EAAO,WAAM,MAAM,oBAAoB,EAAE,OAAO,EAAM,SAAS,EAAY,CAAC,EAAI,CAAC,IAAI,EAAU,CAAC,EAAE,QAAQ,EAAG,EAAE,EAAG,EAAI,OAAO,EAAE,EAAG,EAAU,KAAK,EAAI,WAAW,CAAE,EAAE,GAAG,EAAE,OAAO,EAAU,SAAS,EAAc,CAAC,EAAI,EAAM,CAAC,IAAI,EAAE,EAAG,EAAG,EAAU,CAAC,EAAE,QAAQ,EAAG,EAAE,EAAG,EAAI,OAAO,EAAE,EAAG,CAAC,IAAI,GAAO,GAAG,EAAE,MAAM,EAAE,EAAI,WAAW,CAAE,EAAE,EAAG,GAAG,EAAE,EAAG,EAAE,IAAI,EAAU,KAAK,CAAE,EAAE,EAAU,KAAK,CAAE,EAAE,OAAO,EAAU,SAAS,EAAa,CAAC,EAAI,CAAC,OAAO,GAAY,GAAY,CAAG,CAAC,EAAE,SAAS,EAAU,CAAC,EAAI,EAAI,EAAO,EAAO,CAAC,IAAI,EAAG,IAAI,EAAG,EAAE,EAAG,EAAO,EAAE,EAAG,CAAC,GAAG,EAAG,GAAQ,EAAI,QAAQ,GAAI,EAAI,OAAO,MAAM,EAAI,EAAG,GAAQ,EAAI,GAAI,OAAO,EAAG,SAAS,EAAU,CAAC,EAAI,EAAK,CAAC,OAAO,aAAe,GAAM,GAAK,MAAM,EAAI,aAAa,MAAM,EAAI,YAAY,MAAM,MAAM,EAAI,YAAY,OAAO,EAAK,KAAmM,SAAS,EAAkB,CAAC,EAAG,CAAC,OAAO,OAAO,OAAO,IAAI,GAAuB,EAAG,SAAS,EAAsB,EAAE,CAAC,MAAM,MAAM,sBAAsB,EAAE,SAAS,EAAO,CAAC,EAAK,CAAC,MAAM,IAAI,CAAC,MAAM,MAAM,EAAK,sDAAsD,OAApixC,GAAU,GAAa,GAAK,mEAA2J,GAAE,GAA+qG,GAA6H,GAAkB,GAAG,GAAW,WAAW,GAAiB,UAAU,GAAqB,GAAqB,GAAqB,GAAqB,GAA0sB,GAA6L,GAAsK,GAAqigB,GAAqB,KAA+5iB,GAAm+D,GAAmc,GAA6C,GAAyB,GAAQ,CAAC,IAAM,CAAC,QAAQ,KAAQ,EAAI,GAAG,EAAK,WAAW,CAAC,EAAE,IAAI,MAAM,GAAG,MAAM,IAAI,GAA+B,kBAAjuxC,GAAO,CAAC,EAAE,GAAU,CAAC,EAA0E,IAAI,GAAE,EAAE,GAAI,GAAK,OAAO,GAAE,GAAI,EAAE,GAAE,GAAO,IAAG,GAAK,IAAG,GAAU,GAAK,WAAW,EAAC,GAAG,GAAY,GAAU,IAAI,GAAG,GAAU,IAAI,GAA4oG,GAAoB,OAAO,SAAS,YAAY,OAAO,OAAO,MAAM,WAAW,OAAO,IAAI,4BAA4B,EAAE,KAA2E,GAAK,WAAW,KAAK,GAAK,WAAW,KAAK,GAAK,WAAW,KAAK,GAAK,WAAW,KAAK,GAAU,CAAC,WAAW,GAAW,kBAAkB,EAAgB,EAAuoB,GAAyB,GAAE,2BAA2B,QAAQ,CAAC,EAAK,CAAC,GAAG,EAAK,MAAM,GAAG,gCAAmC,MAAM,kDAAkD,UAAU,EAAE,GAAqB,GAAE,uBAAuB,QAAQ,CAAC,EAAK,EAAO,CAAC,MAAM,QAAQ,qDAAwD,OAAO,KAAU,SAAS,EAAE,GAAiB,GAAE,mBAAmB,QAAQ,CAAC,EAAI,EAAM,EAAM,CAAC,IAAI,EAAI,iBAAiB,sBAAwB,EAAS,EAAM,GAAG,OAAO,UAAU,CAAK,GAAG,KAAK,IAAI,CAAK,EAAE,WAAW,EAAS,GAAsB,OAAO,CAAK,CAAC,EAAO,QAAG,OAAO,IAAQ,SAAS,CAAC,GAAG,EAAS,OAAO,CAAK,EAAE,EAAM,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,EAAM,EAAE,OAAO,CAAC,GAAG,OAAO,EAAE,GAAG,EAAS,GAAsB,CAAQ,EAAE,GAAU,IAAI,OAAO,GAAK,eAAe,eAAmB,IAAW,GAAK,UAAU,EAAsQ,OAAO,eAAe,GAAO,UAAU,SAAS,CAAC,WAAW,GAAG,IAAI,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAO,SAAS,IAAI,EAAE,OAAO,OAAO,KAAK,OAAO,CAAC,EAAE,OAAO,eAAe,GAAO,UAAU,SAAS,CAAC,WAAW,GAAG,IAAI,QAAQ,EAAE,CAAC,GAAG,CAAC,GAAO,SAAS,IAAI,EAAE,OAAO,OAAO,KAAK,WAAW,CAAC,EAAE,GAAO,SAAS,KAA4tC,GAAO,KAAK,QAAQ,CAAC,EAAM,EAAiB,EAAO,CAAC,OAAO,GAAK,EAAM,EAAiB,CAAM,GAAG,OAAO,eAAe,GAAO,UAAU,WAAW,SAAS,EAAE,OAAO,eAAe,GAAO,UAAU,EAAgb,GAAO,MAAM,QAAQ,CAAC,EAAK,EAAK,EAAS,CAAC,OAAO,GAAM,EAAK,EAAK,CAAQ,GAA6F,GAAO,YAAY,QAAQ,CAAC,EAAK,CAAC,OAAO,GAAY,CAAI,GAAG,GAAO,gBAAgB,QAAQ,CAAC,EAAK,CAAC,OAAO,GAAY,CAAI,GAAqtD,GAAO,SAAS,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAG,MAAM,EAAE,YAAY,IAAI,IAAI,GAAO,WAAW,GAAO,QAAQ,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,GAAW,EAAE,UAAU,EAAE,EAAE,GAAO,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,GAAW,EAAE,UAAU,EAAE,EAAE,GAAO,KAAK,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,CAAC,GAAO,SAAS,CAAC,GAAG,CAAC,GAAO,SAAS,CAAC,EAAE,MAAM,UAAU,uEAAuE,EAAE,GAAG,IAAI,EAAE,MAAO,GAAE,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,OAAO,QAAQ,EAAG,EAAE,EAAK,KAAK,IAAI,EAAE,CAAC,EAAE,EAAG,EAAK,EAAE,EAAG,GAAG,EAAE,KAAM,EAAE,GAAI,CAAC,EAAE,EAAE,GAAI,EAAE,EAAE,GAAI,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,GAAG,EAAE,EAAE,MAAO,GAAE,MAAO,IAAG,GAAO,WAAW,QAAQ,CAAC,EAAS,CAAC,OAAO,OAAO,CAAQ,EAAE,YAAY,OAAO,UAAU,WAAW,YAAY,YAAY,aAAa,aAAa,aAAa,WAAW,YAAY,cAAc,WAAW,MAAM,WAAW,MAAM,KAAK,GAAO,OAAO,QAAQ,CAAC,EAAK,EAAO,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAI,EAAE,MAAM,UAAU,6CAA6C,EAAE,GAAG,EAAK,SAAS,EAAE,OAAO,GAAO,MAAM,CAAC,EAAE,IAAI,EAAG,GAAG,IAAc,OAAE,CAAC,EAAO,EAAE,IAAI,EAAG,EAAE,EAAG,EAAK,OAAO,EAAE,EAAG,GAAQ,EAAK,GAAI,OAAO,IAAI,EAAO,GAAO,YAAY,CAAM,EAAE,EAAI,EAAE,IAAI,EAAG,EAAE,EAAG,EAAK,OAAO,EAAE,EAAG,CAAC,IAAI,EAAI,EAAK,GAAI,GAAG,GAAW,EAAI,UAAU,EAAE,GAAG,EAAI,EAAI,OAAO,EAAO,OAAO,CAAC,GAAG,CAAC,GAAO,SAAS,CAAG,EAAE,EAAI,GAAO,KAAK,CAAG,EAAE,EAAI,KAAK,EAAO,CAAG,EAAO,gBAAW,UAAU,IAAI,KAAK,EAAO,EAAI,CAAG,EAAO,QAAG,CAAC,GAAO,SAAS,CAAG,EAAE,MAAM,UAAU,6CAA6C,EAAO,OAAI,KAAK,EAAO,CAAG,EAAE,GAAK,EAAI,OAAO,OAAO,GAAg1B,GAAO,WAAW,GAA+vB,GAAO,UAAU,UAAU,GAAsD,GAAO,UAAU,OAAO,QAAQ,EAAE,CAAC,IAAI,EAAK,KAAK,OAAO,GAAG,EAAK,IAAI,EAAE,MAAM,WAAW,2CAA2C,EAAE,QAAQ,EAAG,EAAE,EAAG,EAAK,GAAI,EAAE,GAAK,KAAK,EAAG,EAAG,CAAC,EAAE,OAAO,MAAM,GAAO,UAAU,OAAO,QAAQ,EAAE,CAAC,IAAI,EAAK,KAAK,OAAO,GAAG,EAAK,IAAI,EAAE,MAAM,WAAW,2CAA2C,EAAE,QAAQ,EAAG,EAAE,EAAG,EAAK,GAAI,EAAE,GAAK,KAAK,EAAG,EAAG,CAAC,EAAE,GAAK,KAAK,EAAG,EAAE,EAAG,CAAC,EAAE,OAAO,MAAM,GAAO,UAAU,OAAO,QAAQ,EAAE,CAAC,IAAI,EAAK,KAAK,OAAO,GAAG,EAAK,IAAI,EAAE,MAAM,WAAW,2CAA2C,EAAE,QAAQ,EAAG,EAAE,EAAG,EAAK,GAAI,EAAE,GAAK,KAAK,EAAG,EAAG,CAAC,EAAE,GAAK,KAAK,EAAG,EAAE,EAAG,CAAC,EAAE,GAAK,KAAK,EAAG,EAAE,EAAG,CAAC,EAAE,GAAK,KAAK,EAAG,EAAE,EAAG,CAAC,EAAE,OAAO,MAAM,GAAO,UAAU,SAAS,QAAQ,EAAE,CAAC,IAAI,EAAO,KAAK,OAAO,GAAG,IAAS,EAAE,MAAM,GAAG,GAAG,UAAU,SAAS,EAAE,OAAO,GAAU,KAAK,EAAE,CAAM,EAAE,OAAO,GAAa,MAAM,KAAK,SAAS,GAAG,GAAO,UAAU,eAAe,GAAO,UAAU,SAAS,GAAO,UAAU,OAAO,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAO,SAAS,CAAC,EAAE,MAAM,UAAU,2BAA2B,EAAE,GAAG,OAAO,EAAE,MAAM,GAAG,OAAO,GAAO,QAAQ,KAAK,CAAC,IAAI,GAAG,GAAO,UAAU,QAAQ,QAAQ,EAAE,CAAC,IAAI,EAAI,GAAG,EAAI,GAAkB,GAAG,EAAI,KAAK,SAAS,MAAM,EAAE,CAAG,EAAE,QAAQ,UAAU,KAAK,EAAE,KAAK,EAAE,KAAK,OAAO,EAAI,GAAK,QAAQ,MAAM,WAAW,EAAI,KAAK,GAAG,GAAoB,GAAO,UAAU,IAAqB,GAAO,UAAU,QAAQ,GAAO,UAAU,QAAQ,QAAQ,CAAC,EAAO,EAAM,EAAI,EAAU,EAAQ,CAAC,GAAG,GAAW,EAAO,UAAU,EAAE,EAAO,GAAO,KAAK,EAAO,EAAO,OAAO,EAAO,UAAU,EAAE,GAAG,CAAC,GAAO,SAAS,CAAM,EAAE,MAAM,UAAU,iFAAiF,OAAO,CAAM,EAAE,GAAG,IAAa,OAAE,EAAM,EAAE,GAAG,IAAW,OAAE,EAAI,EAAO,EAAO,OAAO,EAAE,GAAG,IAAiB,OAAE,EAAU,EAAE,GAAG,IAAe,OAAE,EAAQ,KAAK,OAAO,GAAG,EAAM,GAAG,EAAI,EAAO,QAAQ,EAAU,GAAG,EAAQ,KAAK,OAAO,MAAM,WAAW,oBAAoB,EAAE,GAAG,GAAW,GAAS,GAAO,EAAI,MAAO,GAAE,GAAG,GAAW,EAAQ,MAAM,GAAG,GAAG,GAAO,EAAI,MAAO,GAAE,GAAG,KAAS,EAAE,KAAO,EAAE,KAAa,EAAE,KAAW,EAAE,OAAO,EAAO,MAAO,GAAE,IAAI,EAAE,EAAQ,EAAU,EAAE,EAAI,EAAM,EAAK,KAAK,IAAI,EAAE,CAAC,EAAE,EAAS,KAAK,MAAM,EAAU,CAAO,EAAE,EAAW,EAAO,MAAM,EAAM,CAAG,EAAE,QAAQ,EAAG,EAAE,EAAG,EAAK,EAAE,EAAG,GAAG,EAAS,KAAM,EAAW,GAAI,CAAC,EAAE,EAAS,GAAI,EAAE,EAAW,GAAI,MAAM,GAAG,EAAE,EAAE,MAAM,GAAG,GAAG,EAAE,EAAE,MAAO,GAAE,MAAO,IAAu9D,GAAO,UAAU,SAAS,QAAQ,CAAC,EAAI,EAAW,EAAS,CAAC,OAAO,KAAK,QAAQ,EAAI,EAAW,CAAQ,IAAI,IAAI,GAAO,UAAU,QAAQ,QAAQ,CAAC,EAAI,EAAW,EAAS,CAAC,OAAO,GAAqB,KAAK,EAAI,EAAW,EAAS,EAAE,GAAG,GAAO,UAAU,YAAY,QAAQ,CAAC,EAAI,EAAW,EAAS,CAAC,OAAO,GAAqB,KAAK,EAAI,EAAW,EAAS,EAAE,GAAq1B,GAAO,UAAU,MAAM,QAAQ,CAAC,EAAO,EAAO,EAAO,EAAS,CAAC,GAAG,IAAc,OAAE,EAAS,OAAO,EAAO,KAAK,OAAO,EAAO,EAAO,QAAG,IAAc,QAAG,OAAO,IAAS,SAAS,EAAS,EAAO,EAAO,KAAK,OAAO,EAAO,EAAO,QAAG,SAAS,CAAM,EAAE,GAAG,EAAO,IAAS,EAAE,SAAS,CAAM,GAAG,GAAG,EAAO,IAAS,EAAE,IAAgB,OAAE,EAAS,OAAY,OAAS,EAAO,EAAY,OAAO,WAAM,MAAM,yEAAyE,EAAE,IAAI,EAAU,KAAK,OAAO,EAAO,GAAG,IAAc,QAAG,EAAO,EAAU,EAAO,EAAU,GAAG,EAAO,OAAO,IAAI,EAAO,GAAG,EAAO,IAAI,EAAO,KAAK,OAAO,MAAM,WAAW,wCAAwC,EAAE,GAAG,CAAC,EAAS,EAAS,OAAO,IAAI,EAAY,GAAG,OAAO,OAAO,OAAc,MAAM,OAAO,GAAS,KAAK,EAAO,EAAO,CAAM,MAAM,WAAW,QAAQ,OAAO,GAAU,KAAK,EAAO,EAAO,CAAM,MAAM,YAAY,aAAa,SAAS,OAAO,GAAW,KAAK,EAAO,EAAO,CAAM,MAAM,SAAS,OAAO,GAAY,KAAK,EAAO,EAAO,CAAM,MAAM,WAAW,YAAY,cAAc,WAAW,OAAO,GAAU,KAAK,EAAO,EAAO,CAAM,UAAU,GAAG,EAAY,MAAM,UAAU,qBAAqB,CAAQ,EAAE,GAAU,GAAG,GAAU,YAAY,EAAE,EAAY,KAAK,GAAO,UAAU,OAAO,QAAQ,EAAE,CAAC,MAAM,CAAC,KAAK,SAAS,KAAK,MAAM,UAAU,MAAM,KAAK,KAAK,MAAM,KAAK,CAAC,CAAC,GAAi4E,GAAO,UAAU,MAAM,QAAQ,CAAC,EAAM,EAAI,CAAC,IAAI,EAAK,KAAK,OAAO,GAAG,EAAM,CAAC,CAAC,EAAM,EAAI,IAAW,OAAE,EAAK,CAAC,CAAC,EAAI,EAAM,GAAG,GAAG,GAAO,EAAK,EAAM,EAAE,EAAM,EAAO,QAAG,EAAM,EAAK,EAAM,EAAK,GAAG,EAAI,GAAG,GAAG,GAAK,EAAK,EAAI,EAAE,EAAI,EAAO,QAAG,EAAI,EAAK,EAAI,EAAK,GAAG,EAAI,EAAM,EAAI,EAAM,IAAI,EAAO,KAAK,SAAS,EAAM,CAAG,EAAE,OAAO,OAAO,eAAe,EAAO,GAAO,SAAS,EAAE,GAAgM,GAAO,UAAU,WAAW,GAAO,UAAU,WAAW,QAAQ,CAAC,EAAO,EAAY,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,EAAY,IAAc,EAAE,CAAC,EAAS,GAAY,EAAO,EAAY,KAAK,MAAM,EAAE,IAAI,EAAI,KAAK,GAAQ,EAAI,EAAE,EAAG,EAAE,MAAM,EAAE,EAAG,IAAc,GAAK,KAAK,GAAK,KAAK,EAAO,GAAI,EAAI,OAAO,GAAK,GAAO,UAAU,WAAW,GAAO,UAAU,WAAW,QAAQ,CAAC,EAAO,EAAY,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,EAAY,IAAc,EAAE,CAAC,EAAS,GAAY,EAAO,EAAY,KAAK,MAAM,EAAE,IAAI,EAAI,KAAK,EAAO,EAAE,GAAa,EAAI,EAAE,MAAM,EAAY,IAAI,GAAK,KAAK,GAAK,KAAK,EAAO,EAAE,GAAa,EAAI,OAAO,GAAK,GAAO,UAAU,UAAU,GAAO,UAAU,UAAU,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,IAAS,GAAO,UAAU,aAAa,GAAO,UAAU,aAAa,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,GAAQ,KAAK,EAAO,IAAI,GAAG,GAAO,UAAU,aAAa,GAAO,UAAU,aAAa,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,IAAS,EAAE,KAAK,EAAO,IAAI,GAAO,UAAU,aAAa,GAAO,UAAU,aAAa,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,GAAQ,KAAK,EAAO,IAAI,EAAE,KAAK,EAAO,IAAI,IAAI,KAAK,EAAO,GAAG,UAAU,GAAO,UAAU,aAAa,GAAO,UAAU,aAAa,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,GAAQ,UAAU,KAAK,EAAO,IAAI,GAAG,KAAK,EAAO,IAAI,EAAE,KAAK,EAAO,KAAK,GAAO,UAAU,gBAAgB,GAAmB,QAAQ,CAAC,EAAO,CAAC,EAAO,IAAS,EAAE,GAAe,EAAO,QAAQ,EAAE,IAAI,EAAM,KAAK,GAAQ,EAAK,KAAK,EAAO,GAAG,GAAG,IAAa,QAAG,IAAY,OAAE,GAAY,EAAO,KAAK,OAAO,CAAC,EAAE,IAAI,EAAG,EAAM,KAAK,EAAE,GAAQ,IAAI,KAAK,EAAE,GAAQ,MAAM,KAAK,EAAE,GAAQ,SAAS,EAAG,KAAK,EAAE,GAAQ,KAAK,EAAE,GAAQ,IAAI,KAAK,EAAE,GAAQ,MAAM,EAAK,SAAS,OAAO,OAAO,CAAE,GAAG,OAAO,CAAE,GAAG,OAAO,EAAE,GAAG,EAAE,GAAO,UAAU,gBAAgB,GAAmB,QAAQ,CAAC,EAAO,CAAC,EAAO,IAAS,EAAE,GAAe,EAAO,QAAQ,EAAE,IAAI,EAAM,KAAK,GAAQ,EAAK,KAAK,EAAO,GAAG,GAAG,IAAa,QAAG,IAAY,OAAE,GAAY,EAAO,KAAK,OAAO,CAAC,EAAE,IAAI,EAAG,EAAM,SAAS,KAAK,EAAE,GAAQ,MAAM,KAAK,EAAE,GAAQ,IAAI,KAAK,EAAE,GAAQ,EAAG,KAAK,EAAE,GAAQ,SAAS,KAAK,EAAE,GAAQ,MAAM,KAAK,EAAE,GAAQ,IAAI,EAAK,OAAO,OAAO,CAAE,GAAG,OAAO,EAAE,GAAG,OAAO,CAAE,EAAE,EAAE,GAAO,UAAU,UAAU,QAAQ,CAAC,EAAO,EAAY,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,EAAY,IAAc,EAAE,CAAC,EAAS,GAAY,EAAO,EAAY,KAAK,MAAM,EAAE,IAAI,EAAI,KAAK,GAAQ,EAAI,EAAE,EAAG,EAAE,MAAM,EAAE,EAAG,IAAc,GAAK,KAAK,GAAK,KAAK,EAAO,GAAI,EAAI,GAAG,GAAK,IAAI,GAAK,EAAI,GAAK,KAAK,IAAI,EAAE,EAAE,CAAW,EAAE,OAAO,GAAK,GAAO,UAAU,UAAU,QAAQ,CAAC,EAAO,EAAY,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,EAAY,IAAc,EAAE,CAAC,EAAS,GAAY,EAAO,EAAY,KAAK,MAAM,EAAE,IAAI,EAAG,EAAY,EAAI,EAAE,EAAI,KAAK,EAAO,EAAE,GAAI,MAAM,EAAG,IAAI,GAAK,KAAK,GAAK,KAAK,EAAO,EAAE,GAAI,EAAI,GAAG,GAAK,IAAI,GAAK,EAAI,GAAK,KAAK,IAAI,EAAE,EAAE,CAAW,EAAE,OAAO,GAAK,GAAO,UAAU,SAAS,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,GAAG,EAAE,KAAK,GAAQ,KAAK,OAAO,KAAK,GAAQ,OAAO,IAAI,KAAK,GAAQ,GAAG,IAAI,GAAO,UAAU,YAAY,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAI,KAAK,GAAQ,KAAK,EAAO,IAAI,EAAE,OAAO,EAAI,MAAM,EAAI,WAAW,GAAK,GAAO,UAAU,YAAY,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,IAAI,EAAI,KAAK,EAAO,GAAG,KAAK,IAAS,EAAE,OAAO,EAAI,MAAM,EAAI,WAAW,GAAK,GAAO,UAAU,YAAY,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,GAAQ,KAAK,EAAO,IAAI,EAAE,KAAK,EAAO,IAAI,GAAG,KAAK,EAAO,IAAI,IAAI,GAAO,UAAU,YAAY,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,OAAO,KAAK,IAAS,GAAG,KAAK,EAAO,IAAI,GAAG,KAAK,EAAO,IAAI,EAAE,KAAK,EAAO,IAAI,GAAO,UAAU,eAAe,GAAmB,QAAQ,CAAC,EAAO,CAAC,EAAO,IAAS,EAAE,GAAe,EAAO,QAAQ,EAAE,IAAI,EAAM,KAAK,GAAQ,EAAK,KAAK,EAAO,GAAG,GAAG,IAAa,QAAG,IAAY,OAAE,GAAY,EAAO,KAAK,OAAO,CAAC,EAAE,IAAI,EAAI,KAAK,EAAO,GAAG,KAAK,EAAO,GAAG,IAAI,KAAK,EAAO,GAAG,OAAO,GAAM,IAAI,OAAO,OAAO,CAAG,GAAG,OAAO,EAAE,GAAG,OAAO,EAAM,KAAK,EAAE,GAAQ,IAAI,KAAK,EAAE,GAAQ,MAAM,KAAK,EAAE,GAAQ,QAAQ,EAAE,EAAE,GAAO,UAAU,eAAe,GAAmB,QAAQ,CAAC,EAAO,CAAC,EAAO,IAAS,EAAE,GAAe,EAAO,QAAQ,EAAE,IAAI,EAAM,KAAK,GAAQ,EAAK,KAAK,EAAO,GAAG,GAAG,IAAa,QAAG,IAAY,OAAE,GAAY,EAAO,KAAK,OAAO,CAAC,EAAE,IAAI,GAAK,GAAO,IAAI,KAAK,EAAE,GAAQ,MAAM,KAAK,EAAE,GAAQ,IAAI,KAAK,EAAE,GAAQ,OAAO,OAAO,CAAG,GAAG,OAAO,EAAE,GAAG,OAAO,KAAK,EAAE,GAAQ,SAAS,KAAK,EAAE,GAAQ,MAAM,KAAK,EAAE,GAAQ,IAAI,CAAI,EAAE,EAAE,GAAO,UAAU,YAAY,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,OAAO,GAAK,KAAK,EAAO,GAAG,GAAG,CAAC,GAAG,GAAO,UAAU,YAAY,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,OAAO,GAAK,KAAK,EAAO,GAAG,GAAG,CAAC,GAAG,GAAO,UAAU,aAAa,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,OAAO,GAAK,KAAK,EAAO,GAAG,GAAG,CAAC,GAAG,GAAO,UAAU,aAAa,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,EAAO,IAAS,EAAE,CAAC,EAAS,GAAY,EAAO,EAAE,KAAK,MAAM,EAAE,OAAO,GAAK,KAAK,EAAO,GAAG,GAAG,CAAC,GAAyR,GAAO,UAAU,YAAY,GAAO,UAAU,YAAY,QAAQ,CAAC,EAAM,EAAO,EAAY,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,EAAY,IAAc,EAAE,CAAC,EAAS,CAAC,IAAI,EAAS,KAAK,IAAI,EAAE,EAAE,CAAW,EAAE,EAAE,GAAS,KAAK,EAAM,EAAO,EAAY,EAAS,CAAC,EAAE,IAAI,EAAI,EAAE,EAAG,EAAE,KAAK,GAAQ,EAAM,IAAI,MAAM,EAAE,EAAG,IAAc,GAAK,KAAK,KAAK,EAAO,GAAI,EAAM,EAAI,IAAI,OAAO,EAAO,GAAa,GAAO,UAAU,YAAY,GAAO,UAAU,YAAY,QAAQ,CAAC,EAAM,EAAO,EAAY,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,EAAY,IAAc,EAAE,CAAC,EAAS,CAAC,IAAI,EAAS,KAAK,IAAI,EAAE,EAAE,CAAW,EAAE,EAAE,GAAS,KAAK,EAAM,EAAO,EAAY,EAAS,CAAC,EAAE,IAAI,EAAG,EAAY,EAAE,EAAI,EAAE,KAAK,EAAO,GAAI,EAAM,IAAI,MAAM,EAAE,GAAI,IAAI,GAAK,KAAK,KAAK,EAAO,GAAI,EAAM,EAAI,IAAI,OAAO,EAAO,GAAa,GAAO,UAAU,WAAW,GAAO,UAAU,WAAW,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,GAAS,KAAK,EAAM,EAAO,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,GAAQ,EAAM,IAAI,EAAO,GAAG,GAAO,UAAU,cAAc,GAAO,UAAU,cAAc,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,GAAS,KAAK,EAAM,EAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,GAAQ,EAAM,IAAI,KAAK,EAAO,GAAG,IAAQ,EAAE,EAAO,GAAG,GAAO,UAAU,cAAc,GAAO,UAAU,cAAc,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,GAAS,KAAK,EAAM,EAAO,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,GAAQ,IAAQ,EAAE,KAAK,EAAO,GAAG,EAAM,IAAI,EAAO,GAAG,GAAO,UAAU,cAAc,GAAO,UAAU,cAAc,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,GAAS,KAAK,EAAM,EAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,EAAO,GAAG,IAAQ,GAAG,KAAK,EAAO,GAAG,IAAQ,GAAG,KAAK,EAAO,GAAG,IAAQ,EAAE,KAAK,GAAQ,EAAM,IAAI,EAAO,GAAG,GAAO,UAAU,cAAc,GAAO,UAAU,cAAc,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,GAAS,KAAK,EAAM,EAAO,EAAE,WAAW,CAAC,EAAE,OAAO,KAAK,GAAQ,IAAQ,GAAG,KAAK,EAAO,GAAG,IAAQ,GAAG,KAAK,EAAO,GAAG,IAAQ,EAAE,KAAK,EAAO,GAAG,EAAM,IAAI,EAAO,GAAqwB,GAAO,UAAU,iBAAiB,GAAmB,QAAQ,CAAC,EAAM,EAAO,EAAE,CAAC,OAAO,GAAe,KAAK,EAAM,EAAO,OAAO,CAAC,EAAE,OAAO,oBAAoB,CAAC,EAAE,EAAE,GAAO,UAAU,iBAAiB,GAAmB,QAAQ,CAAC,EAAM,EAAO,EAAE,CAAC,OAAO,GAAe,KAAK,EAAM,EAAO,OAAO,CAAC,EAAE,OAAO,oBAAoB,CAAC,EAAE,EAAE,GAAO,UAAU,WAAW,QAAQ,CAAC,EAAM,EAAO,EAAY,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,CAAC,IAAI,EAAM,KAAK,IAAI,EAAE,EAAE,EAAY,CAAC,EAAE,GAAS,KAAK,EAAM,EAAO,EAAY,EAAM,EAAE,CAAC,CAAK,EAAE,IAAI,EAAG,EAAE,EAAI,EAAE,EAAI,EAAE,KAAK,GAAQ,EAAM,IAAI,MAAM,EAAE,EAAG,IAAc,GAAK,KAAK,CAAC,GAAG,EAAM,GAAG,IAAM,GAAG,KAAK,EAAO,EAAG,KAAK,EAAE,EAAI,EAAE,KAAK,EAAO,IAAK,EAAM,GAAK,GAAG,EAAI,IAAI,OAAO,EAAO,GAAa,GAAO,UAAU,WAAW,QAAQ,CAAC,EAAM,EAAO,EAAY,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,CAAC,IAAI,EAAM,KAAK,IAAI,EAAE,EAAE,EAAY,CAAC,EAAE,GAAS,KAAK,EAAM,EAAO,EAAY,EAAM,EAAE,CAAC,CAAK,EAAE,IAAI,EAAG,EAAY,EAAE,EAAI,EAAE,EAAI,EAAE,KAAK,EAAO,GAAI,EAAM,IAAI,MAAM,EAAE,GAAI,IAAI,GAAK,KAAK,CAAC,GAAG,EAAM,GAAG,IAAM,GAAG,KAAK,EAAO,EAAG,KAAK,EAAE,EAAI,EAAE,KAAK,EAAO,IAAK,EAAM,GAAK,GAAG,EAAI,IAAI,OAAO,EAAO,GAAa,GAAO,UAAU,UAAU,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,GAAS,KAAK,EAAM,EAAO,EAAE,IAAI,IAAI,EAAE,GAAG,EAAM,EAAE,EAAM,IAAI,EAAM,EAAE,OAAO,KAAK,GAAQ,EAAM,IAAI,EAAO,GAAG,GAAO,UAAU,aAAa,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,GAAS,KAAK,EAAM,EAAO,EAAE,MAAM,MAAM,EAAE,OAAO,KAAK,GAAQ,EAAM,IAAI,KAAK,EAAO,GAAG,IAAQ,EAAE,EAAO,GAAG,GAAO,UAAU,aAAa,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,GAAS,KAAK,EAAM,EAAO,EAAE,MAAM,MAAM,EAAE,OAAO,KAAK,GAAQ,IAAQ,EAAE,KAAK,EAAO,GAAG,EAAM,IAAI,EAAO,GAAG,GAAO,UAAU,aAAa,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,GAAS,KAAK,EAAM,EAAO,EAAE,WAAW,WAAW,EAAE,OAAO,KAAK,GAAQ,EAAM,IAAI,KAAK,EAAO,GAAG,IAAQ,EAAE,KAAK,EAAO,GAAG,IAAQ,GAAG,KAAK,EAAO,GAAG,IAAQ,GAAG,EAAO,GAAG,GAAO,UAAU,aAAa,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,GAAG,EAAM,CAAC,EAAM,EAAO,IAAS,EAAE,CAAC,EAAS,GAAS,KAAK,EAAM,EAAO,EAAE,WAAW,WAAW,EAAE,GAAG,EAAM,EAAE,EAAM,WAAW,EAAM,EAAE,OAAO,KAAK,GAAQ,IAAQ,GAAG,KAAK,EAAO,GAAG,IAAQ,GAAG,KAAK,EAAO,GAAG,IAAQ,EAAE,KAAK,EAAO,GAAG,EAAM,IAAI,EAAO,GAAG,GAAO,UAAU,gBAAgB,GAAmB,QAAQ,CAAC,EAAM,EAAO,EAAE,CAAC,OAAO,GAAe,KAAK,EAAM,EAAO,CAAC,OAAO,oBAAoB,EAAE,OAAO,oBAAoB,CAAC,EAAE,EAAE,GAAO,UAAU,gBAAgB,GAAmB,QAAQ,CAAC,EAAM,EAAO,EAAE,CAAC,OAAO,GAAe,KAAK,EAAM,EAAO,CAAC,OAAO,oBAAoB,EAAE,OAAO,oBAAoB,CAAC,EAAE,EAA6b,GAAO,UAAU,aAAa,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,OAAO,GAAW,KAAK,EAAM,EAAO,GAAG,CAAQ,GAAG,GAAO,UAAU,aAAa,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,OAAO,GAAW,KAAK,EAAM,EAAO,GAAG,CAAQ,GAAozB,GAAO,UAAU,cAAc,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,OAAO,GAAY,KAAK,EAAM,EAAO,GAAG,CAAQ,GAAG,GAAO,UAAU,cAAc,QAAQ,CAAC,EAAM,EAAO,EAAS,CAAC,OAAO,GAAY,KAAK,EAAM,EAAO,GAAG,CAAQ,GAAG,GAAO,UAAU,KAAK,QAAQ,CAAC,EAAO,EAAY,EAAM,EAAI,CAAC,GAAG,CAAC,GAAO,SAAS,CAAM,EAAE,MAAM,UAAU,6BAA6B,EAAE,GAAG,CAAC,EAAM,EAAM,EAAE,GAAG,CAAC,GAAK,IAAM,EAAE,EAAI,KAAK,OAAO,GAAG,GAAa,EAAO,OAAO,EAAY,EAAO,OAAO,GAAG,CAAC,EAAY,EAAY,EAAE,GAAG,EAAI,GAAG,EAAI,EAAM,EAAI,EAAM,GAAG,IAAM,EAAM,MAAO,GAAE,GAAG,EAAO,SAAS,GAAG,KAAK,SAAS,EAAE,MAAO,GAAE,GAAG,EAAY,EAAE,MAAM,WAAW,2BAA2B,EAAE,GAAG,EAAM,GAAG,GAAO,KAAK,OAAO,MAAM,WAAW,oBAAoB,EAAE,GAAG,EAAI,EAAE,MAAM,WAAW,yBAAyB,EAAE,GAAG,EAAI,KAAK,OAAO,EAAI,KAAK,OAAO,GAAG,EAAO,OAAO,EAAY,EAAI,EAAM,EAAI,EAAO,OAAO,EAAY,EAAM,IAAI,EAAK,EAAI,EAAM,GAAG,OAAO,GAAQ,OAAO,WAAW,UAAU,aAAa,WAAW,KAAK,WAAW,EAAY,EAAM,CAAG,EAAO,gBAAW,UAAU,IAAI,KAAK,EAAO,KAAK,SAAS,EAAM,CAAG,EAAE,CAAW,EAAE,OAAO,GAAM,GAAO,UAAU,KAAK,QAAQ,CAAC,EAAI,EAAM,EAAI,EAAS,CAAC,GAAG,OAAO,IAAM,SAAS,CAAC,GAAG,OAAO,IAAQ,SAAS,EAAS,EAAM,EAAM,EAAE,EAAI,KAAK,OAAY,QAAG,OAAO,IAAM,SAAS,EAAS,EAAI,EAAI,KAAK,OAAO,GAAG,IAAgB,QAAG,OAAO,IAAW,SAAS,MAAM,UAAU,2BAA2B,EAAE,GAAG,OAAO,IAAW,UAAU,CAAC,GAAO,WAAW,CAAQ,EAAE,MAAM,UAAU,qBAAqB,CAAQ,EAAE,GAAG,EAAI,SAAS,EAAE,CAAC,IAAI,EAAM,EAAI,WAAW,CAAC,EAAE,GAAG,IAAW,QAAQ,EAAM,KAAK,IAAW,SAAS,EAAI,GAAY,QAAG,OAAO,IAAM,SAAS,EAAI,EAAI,IAAS,QAAG,OAAO,IAAM,UAAU,EAAI,OAAO,CAAG,EAAE,GAAG,EAAM,GAAG,KAAK,OAAO,GAAO,KAAK,OAAO,EAAI,MAAM,WAAW,oBAAoB,EAAE,GAAG,GAAK,EAAM,OAAO,KAAK,GAAG,EAAM,IAAQ,EAAE,EAAI,IAAW,OAAE,KAAK,OAAO,IAAM,EAAE,CAAC,EAAI,EAAI,EAAE,IAAI,EAAG,GAAG,OAAO,IAAM,SAAS,IAAI,EAAG,EAAM,EAAG,EAAI,EAAE,EAAG,KAAK,GAAI,EAAQ,KAAC,IAAI,EAAM,GAAO,SAAS,CAAG,EAAE,EAAI,GAAO,KAAK,EAAI,CAAQ,EAAE,EAAK,EAAM,OAAO,GAAG,IAAO,EAAE,MAAM,UAAU,cAAc,EAAI,mCAAmC,EAAE,IAAI,EAAG,EAAE,EAAG,EAAI,EAAM,EAAE,EAAG,KAAK,EAAG,GAAO,EAAM,EAAG,GAAM,OAAO,MAAksC,GAAkB,oBAAi9D,GAAoB,QAAQ,EAAE,CAAC,IAAI,EAAM,MAAM,GAAG,EAAE,QAAQ,EAAG,EAAE,EAAG,GAAG,EAAE,EAAG,CAAC,IAAI,EAAI,EAAG,GAAG,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAM,EAAI,GAAG,mBAAmB,GAAI,mBAAmB,GAAG,OAAO,GAAO,EAA2Q,GAAiB,GAAQ,kBAAkB,EAAE,GAAO,GAAQ,QAAQ,EAAmF,GAAU,GAAQ,WAAW,EAAE,GAAe,+fCAxtxC,SAAS,EAAM,CAAC,KAAK,EAAK,CAAC,GAAG,CAAC,GAAS,CAAC,EAAE,CAAC,IAAI,EAAQ,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAK,OAAO,IAAI,EAAQ,KAAK,GAAQ,EAAK,EAAE,CAAC,EAAE,OAAO,EAAQ,KAAK,GAAG,EAAE,IAAI,EAAE,EAAE,EAAI,EAAK,OAAO,EAAI,OAAO,CAAC,EAAE,QAAQ,GAAa,QAAQ,CAAC,EAAG,CAAC,GAAG,IAAK,KAAK,MAAM,IAAI,GAAG,GAAG,EAAI,OAAO,EAAG,OAAO,OAAQ,KAAK,OAAO,OAAO,EAAK,IAAI,MAAM,KAAK,OAAO,OAAO,EAAK,IAAI,MAAM,KAAK,GAAG,CAAC,OAAO,KAAK,UAAU,EAAK,IAAI,EAAE,MAAM,EAAE,CAAC,MAAM,qBAAqB,OAAO,GAAI,EAAE,QAAQ,EAAE,EAAK,GAAG,EAAE,EAAI,EAAE,EAAK,EAAE,GAAG,GAAG,GAAO,CAAC,GAAG,CAAC,GAAS,CAAC,EAAE,GAAK,IAAI,EAAO,QAAK,IAAI,GAAQ,CAAC,EAAE,OAAO,EAAI,SAAS,EAAS,CAAC,EAAG,EAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,SAAS,gBAAgB,GAAG,OAAO,EAAG,IAAI,EAAO,GAAG,SAAS,CAAU,IAAI,EAAK,CAAC,GAAG,CAAC,EAAO,CAAC,GAAG,QAAQ,iBAAiB,MAAM,MAAM,CAAG,EAAO,QAAG,QAAQ,iBAAiB,QAAQ,MAAM,CAAG,EAAO,aAAQ,MAAM,CAAG,EAAE,EAAO,GAAG,OAAO,EAAG,MAAM,KAAK,GAAG,CAAI,EAAE,OAAO,EAA0wC,SAAS,EAAgB,CAAC,EAAI,EAAU,CAAC,IAAI,EAAM,GAAQ,OAAO,GAAW,GAAG,EAAM,MAAM,QAAQ,GAAQ,OAAO,GAAO,GAAG,IAAI,EAAI,QAAQ,GAAQ,OAAO,GAAO,GAAG,IAAS,YAAO,EAAI,SAAS,EAAc,CAAC,EAAI,EAAU,CAAC,OAAO,EAAI,SAAS,EAAW,CAAC,EAAM,CAAC,IAAI,EAAK,CAAC,EAAE,OAAO,EAAM,QAAQ,QAAQ,CAAC,EAAI,EAAI,CAAC,EAAK,GAAK,GAAG,EAAE,EAAK,SAAS,EAAW,CAAC,EAAI,EAAM,EAAa,CAAC,GAAG,EAAI,eAAe,GAAO,GAAW,EAAM,OAAO,GAAG,EAAM,UAAU,IAAS,EAAE,EAAM,aAAa,EAAM,YAAY,YAAY,GAAO,CAAC,IAAI,EAAI,EAAM,QAAQ,EAAa,CAAG,EAAE,GAAG,CAAC,GAAS,CAAG,EAAE,EAAI,GAAY,EAAI,EAAI,CAAY,EAAE,OAAO,EAAI,IAAI,EAAU,GAAgB,EAAI,CAAK,EAAE,GAAG,EAAU,OAAO,EAAU,IAAI,EAAK,OAAO,KAAK,CAAK,EAAE,EAAY,GAAY,CAAI,EAAE,GAAG,EAAI,WAAW,EAAK,OAAO,oBAAoB,CAAK,EAAE,GAAG,GAAQ,CAAK,IAAI,EAAK,QAAQ,SAAS,GAAG,GAAG,EAAK,QAAQ,aAAa,GAAG,GAAG,OAAO,GAAY,CAAK,EAAE,GAAG,EAAK,SAAS,EAAE,CAAC,GAAG,GAAW,CAAK,EAAE,CAAC,IAAI,EAAK,EAAM,KAAK,KAAK,EAAM,KAAK,GAAG,OAAO,EAAI,QAAQ,YAAY,EAAK,IAAI,SAAS,EAAE,GAAG,GAAS,CAAK,EAAE,OAAO,EAAI,QAAQ,OAAO,UAAU,SAAS,KAAK,CAAK,EAAE,QAAQ,EAAE,GAAG,GAAO,CAAK,EAAE,OAAO,EAAI,QAAQ,KAAK,UAAU,SAAS,KAAK,CAAK,EAAE,MAAM,EAAE,GAAG,GAAQ,CAAK,EAAE,OAAO,GAAY,CAAK,EAAE,IAAI,EAAK,GAAG,EAAM,GAAG,EAAO,CAAC,IAAI,GAAG,EAAE,GAAG,GAAQ,CAAK,EAAE,EAAM,GAAG,EAAO,CAAC,IAAI,GAAG,EAAE,GAAG,GAAW,CAAK,EAAE,CAAC,IAAI,EAAE,EAAM,KAAK,KAAK,EAAM,KAAK,GAAG,EAAK,aAAa,EAAE,IAAI,GAAG,GAAS,CAAK,EAAE,EAAK,IAAI,OAAO,UAAU,SAAS,KAAK,CAAK,EAAE,GAAG,GAAO,CAAK,EAAE,EAAK,IAAI,KAAK,UAAU,YAAY,KAAK,CAAK,EAAE,GAAG,GAAQ,CAAK,EAAE,EAAK,IAAI,GAAY,CAAK,EAAE,GAAG,EAAK,SAAS,IAAI,CAAC,GAAO,EAAM,QAAQ,GAAG,OAAO,EAAO,GAAG,EAAK,EAAO,GAAG,GAAG,EAAa,EAAE,GAAG,GAAS,CAAK,EAAE,OAAO,EAAI,QAAQ,OAAO,UAAU,SAAS,KAAK,CAAK,EAAE,QAAQ,EAAO,YAAO,EAAI,QAAQ,WAAW,SAAS,EAAE,EAAI,KAAK,KAAK,CAAK,EAAE,IAAI,EAAO,GAAG,EAAM,EAAO,GAAY,EAAI,EAAM,EAAa,EAAY,CAAI,EAAO,OAAO,EAAK,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,GAAe,EAAI,EAAM,EAAa,EAAY,EAAI,CAAK,EAAE,EAAE,OAAO,EAAI,KAAK,IAAI,EAAE,GAAqB,EAAO,EAAK,CAAM,EAAE,SAAS,EAAe,CAAC,EAAI,EAAM,CAAC,GAAG,GAAY,CAAK,EAAE,OAAO,EAAI,QAAQ,YAAY,WAAW,EAAE,GAAG,GAAS,CAAK,EAAE,CAAC,IAAI,EAAO,IAAI,KAAK,UAAU,CAAK,EAAE,QAAQ,SAAS,EAAE,EAAE,QAAQ,KAAK,KAAK,EAAE,QAAQ,OAAO,GAAG,EAAE,IAAI,OAAO,EAAI,QAAQ,EAAO,QAAQ,EAAE,GAAG,GAAS,CAAK,EAAE,OAAO,EAAI,QAAQ,GAAG,EAAM,QAAQ,EAAE,GAAG,GAAU,CAAK,EAAE,OAAO,EAAI,QAAQ,GAAG,EAAM,SAAS,EAAE,GAAG,GAAO,CAAK,EAAE,OAAO,EAAI,QAAQ,OAAO,MAAM,EAAE,SAAS,EAAW,CAAC,EAAM,CAAC,MAAM,IAAI,MAAM,UAAU,SAAS,KAAK,CAAK,EAAE,IAAI,SAAS,EAAW,CAAC,EAAI,EAAM,EAAa,EAAY,EAAK,CAAC,IAAI,EAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAM,OAAO,EAAE,EAAE,EAAE,EAAE,GAAG,GAAe,EAAM,OAAO,CAAC,CAAC,EAAE,EAAO,KAAK,GAAe,EAAI,EAAM,EAAa,EAAY,OAAO,CAAC,EAAE,EAAE,CAAC,EAAO,OAAO,KAAK,EAAE,EAAE,OAAO,EAAK,QAAQ,QAAQ,CAAC,EAAI,CAAC,GAAG,CAAC,EAAI,MAAM,OAAO,EAAE,EAAO,KAAK,GAAe,EAAI,EAAM,EAAa,EAAY,EAAI,EAAE,CAAC,EAAE,EAAE,EAAO,SAAS,EAAc,CAAC,EAAI,EAAM,EAAa,EAAY,EAAI,EAAM,CAAC,IAAI,EAAK,EAAI,EAAK,GAAG,EAAK,OAAO,yBAAyB,EAAM,CAAG,GAAG,CAAC,MAAM,EAAM,EAAI,EAAE,EAAK,IAAI,GAAG,EAAK,IAAI,EAAI,EAAI,QAAQ,kBAAkB,SAAS,EAAO,OAAI,EAAI,QAAQ,WAAW,SAAS,EAAO,QAAG,EAAK,IAAI,EAAI,EAAI,QAAQ,WAAW,SAAS,EAAE,GAAG,CAAC,GAAe,EAAY,CAAG,EAAE,EAAK,IAAI,EAAI,IAAI,GAAG,CAAC,EAAI,GAAG,EAAI,KAAK,QAAQ,EAAK,KAAK,EAAE,EAAE,CAAC,GAAG,GAAO,CAAY,EAAE,EAAI,GAAY,EAAI,EAAK,MAAM,IAAI,EAAO,OAAI,GAAY,EAAI,EAAK,MAAM,EAAa,CAAC,EAAE,GAAG,EAAI,QAAQ;AAAA,CAC1kL,EAAE,GAAG,GAAG,EAAM,EAAI,EAAI,MAAM;AAAA,CAC5B,EAAE,IAAI,QAAQ,CAAC,EAAK,CAAC,MAAM,KAAK,EAAK,EAAE,KAAK;AAAA,CAC5C,EAAE,MAAM,CAAC,EAAO,OAAI;AAAA,EACnB,EAAI,MAAM;AAAA,CACX,EAAE,IAAI,QAAQ,CAAC,EAAK,CAAC,MAAM,MAAM,EAAK,EAAE,KAAK;AAAA,CAC7C,EAAO,OAAI,EAAI,QAAQ,aAAa,SAAS,EAAE,GAAG,GAAY,CAAI,EAAE,CAAC,GAAG,GAAO,EAAI,MAAM,OAAO,EAAE,OAAO,EAAI,GAAG,EAAK,KAAK,UAAU,GAAG,CAAG,EAAE,EAAK,MAAM,8BAA8B,EAAE,EAAK,EAAK,MAAM,EAAE,EAAE,EAAE,EAAK,EAAI,QAAQ,EAAK,MAAM,EAAO,OAAK,EAAK,QAAQ,KAAK,KAAK,EAAE,QAAQ,OAAO,GAAG,EAAE,QAAQ,WAAW,GAAG,EAAE,EAAK,EAAI,QAAQ,EAAK,QAAQ,EAAE,OAAO,EAAK,KAAK,EAAI,SAAS,EAAoB,CAAC,EAAO,EAAK,EAAO,CAAC,IAAI,EAAY,EAAE,EAAO,EAAO,OAAO,QAAQ,CAAC,EAAK,EAAI,CAAC,GAAG,IAAc,EAAI,QAAQ;AAAA,CACxf,GAAG,EAAE,IAAc,OAAO,EAAK,EAAI,QAAQ,kBAAkB,EAAE,EAAE,OAAO,GAAG,CAAC,EAAE,GAAG,EAAO,GAAG,OAAO,EAAO,IAAI,IAAO,GAAG,GAAG,EAAK;AAAA,IAC5H,IAAI,EAAO,KAAK;AAAA,GACjB,EAAE,IAAI,EAAO,GAAG,OAAO,EAAO,GAAG,EAAK,IAAI,EAAO,KAAK,IAAI,EAAE,IAAI,EAAO,GAAoB,SAAS,EAAO,CAAC,EAAG,CAAC,OAAO,MAAM,QAAQ,CAAE,EAAE,SAAS,EAAS,CAAC,EAAI,CAAC,OAAO,OAAO,IAAM,UAAU,SAAS,EAAM,CAAC,EAAI,CAAC,OAAO,IAAM,KAAK,SAAS,EAAiB,CAAC,EAAI,CAAC,OAAO,GAAK,KAAK,SAAS,EAAQ,CAAC,EAAI,CAAC,OAAO,OAAO,IAAM,SAAS,SAAS,EAAQ,CAAC,EAAI,CAAC,OAAO,OAAO,IAAM,SAAS,SAAS,EAAQ,CAAC,EAAI,CAAC,OAAO,OAAO,IAAM,SAAS,SAAS,EAAW,CAAC,EAAI,CAAC,OAAO,IAAW,OAAE,SAAS,EAAQ,CAAC,EAAG,CAAC,OAAO,GAAS,CAAE,GAAG,GAAe,CAAE,IAAI,kBAAkB,SAAS,EAAQ,CAAC,EAAI,CAAC,OAAO,OAAO,IAAM,UAAU,IAAM,KAAK,SAAS,EAAM,CAAC,EAAE,CAAC,OAAO,GAAS,CAAC,GAAG,GAAe,CAAC,IAAI,gBAAgB,SAAS,EAAO,CAAC,EAAE,CAAC,OAAO,GAAS,CAAC,IAAI,GAAe,CAAC,IAAI,kBAAkB,aAAa,OAAO,SAAS,EAAU,CAAC,EAAI,CAAC,OAAO,OAAO,IAAM,WAAW,SAAS,EAAW,CAAC,EAAI,CAAC,OAAO,IAAM,MAAM,OAAO,IAAM,WAAW,OAAO,IAAM,UAAU,OAAO,IAAM,UAAU,OAAO,IAAM,UAAU,OAAO,EAAI,IAAI,SAAS,EAAQ,CAAC,EAAI,CAAC,OAAO,aAAe,OAAO,SAAS,EAAc,CAAC,EAAE,CAAC,OAAO,OAAO,UAAU,SAAS,KAAK,CAAC,EAAE,SAAS,EAAG,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,EAAE,EAAE,SAAS,EAAE,EAAuF,SAAS,EAAS,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,EAAK,CAAC,GAAI,EAAE,SAAS,CAAC,EAAE,GAAI,EAAE,WAAW,CAAC,EAAE,GAAI,EAAE,WAAW,CAAC,CAAC,EAAE,KAAK,GAAG,EAAE,MAAM,CAAC,EAAE,QAAQ,EAAE,GAAO,EAAE,SAAS,GAAG,CAAI,EAAE,KAAK,GAAG,EAAE,SAAS,EAAG,IAAI,EAAK,CAAC,QAAQ,IAAI,UAAU,GAAU,EAAE,GAAO,MAAM,KAAK,CAAI,CAAC,EAAE,SAAS,EAAQ,CAAC,EAAK,EAAU,CAAC,GAAG,EAAU,EAAK,OAAO,EAAU,EAAK,UAAU,OAAO,OAAO,EAAU,UAAU,CAAC,YAAY,CAAC,MAAM,EAAK,WAAW,GAAG,SAAS,GAAG,aAAa,EAAE,CAAC,CAAC,EAAE,SAAS,EAAO,CAAC,EAAO,EAAI,CAAC,GAAG,CAAC,GAAK,CAAC,GAAS,CAAG,EAAE,OAAO,EAAO,IAAI,EAAK,OAAO,KAAK,CAAG,EAAE,EAAE,EAAK,OAAO,MAAM,IAAI,EAAO,EAAK,IAAI,EAAI,EAAK,IAAI,OAAO,EAAO,SAAS,EAAc,CAAC,EAAI,EAAK,CAAC,OAAO,OAAO,UAAU,eAAe,KAAK,EAAI,CAAI,EAAolC,SAAS,EAAqB,CAAC,EAAO,EAAG,CAAC,GAAG,CAAC,EAAO,CAAC,IAAI,EAAU,MAAM,yCAAyC,EAAE,EAAU,OAAO,EAAO,EAAO,EAAU,OAAO,EAAG,CAAM,EAAE,SAAS,EAAW,CAAC,EAAS,CAAC,GAAG,OAAO,IAAW,WAAW,MAAM,UAAU,kDAAkD,EAAE,SAAS,CAAa,IAAI,EAAK,CAAC,IAAI,EAAQ,EAAK,IAAI,EAAE,GAAG,OAAO,IAAU,WAAW,MAAM,UAAU,4CAA4C,EAAE,IAAI,EAAK,KAAK,EAAG,QAAQ,IAAI,EAAM,CAAC,OAAO,EAAQ,MAAM,EAAK,GAAG,CAAK,GAAG,EAAS,MAAM,KAAK,CAAI,EAAE,KAAK,QAAQ,CAAC,EAAI,CAAC,QAAQ,SAAS,EAAG,KAAK,KAAK,KAAK,CAAG,CAAC,GAAG,QAAQ,CAAC,EAAI,CAAC,QAAQ,SAAS,GAAsB,KAAK,KAAK,EAAI,CAAE,CAAC,EAAE,EAAE,OAAO,OAAO,eAAe,EAAc,OAAO,eAAe,CAAQ,CAAC,EAAE,OAAO,iBAAiB,EAAc,OAAO,0BAA0B,CAAQ,CAAC,EAAE,MATz0H,GAA+3B,GAA4c,GAS9vC,GAAM,IAAI,GAAolC,GAAiwB,GAA+6D,GAAY,GAAwB,kBAT/3H,GAAa,WAAk3B,IAAU,CAAC,EAAO,CAAC,EAAE,EAAc,CAAC,EAAE,MAAa,EAAS,OAAO,QAAQ,KAAK,MAAM,EAAS,EAAS,QAAQ,qBAAqB,MAAM,EAAE,QAAQ,MAAM,IAAI,EAAE,QAAQ,KAAK,KAAK,EAAE,YAAY,GAAG,EAAc,IAAI,OAAO,IAAI,EAAS,IAAI,GAAG,EAAE,CAAC,IAAM,CAAC,GAAG,EAAI,EAAI,YAAY,EAAE,CAAC,EAAO,GAAK,GAAG,EAAc,KAAK,CAAG,EAAE,EAAO,GAAK,QAAQ,IAAI,EAAK,CAAC,QAAQ,MAAM,SAAS,EAAI,IAAI,GAAO,MAAM,KAAK,GAAG,CAAI,CAAC,GAAQ,OAAO,GAAK,QAAQ,EAAE,GAAG,OAAO,EAAO,MAAQ,EAAE,IAAS,CAAC,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,GAAG,EAAE,EAAE,MAAM,CAAC,GAAG,EAAE,EAAE,QAAQ,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,QAAQ,OAAO,OAAO,SAAS,QAAQ,SAAS,UAAU,OAAO,KAAK,OAAO,OAAO,QAAQ,KAAK,UAAU,OAAO,KAAK,EAAE,EAAE,OAAO,OAAO,IAAI,4BAA4B,EAAE,IAAI,QAAQ,CAAC,EAAI,KAAQ,EAAK,CAAC,IAAI,EAAI,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAc,EAAE,GAAG,EAAK,QAAQ,EAAE,EAAI,MAAM,EAAK,GAAG,GAAG,EAAK,QAAQ,EAAE,EAAI,OAAO,EAAK,GAAG,GAAG,GAAU,CAAI,EAAE,EAAI,WAAW,EAAU,QAAG,EAAK,GAAQ,EAAI,CAAI,EAAE,GAAG,GAAY,EAAI,UAAU,EAAE,EAAI,WAAW,GAAG,GAAG,GAAY,EAAI,KAAK,EAAE,EAAI,MAAM,EAAE,GAAG,GAAY,EAAI,MAAM,EAAE,EAAI,OAAO,GAAG,GAAG,EAAI,OAAO,EAAI,QAAQ,GAAiB,OAAO,GAAY,EAAI,EAAI,EAAI,KAAK,EAAE,EAS78B,GAAO,CAAC,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,MAAM,KAAK,EAAkrB,IAAW,CAAC,KAAK,EAAE,OAAO,OAAO,IAAI,8BAA8B,EAAE,IAAI,QAAQ,CAAC,EAAS,CAAC,GAAG,OAAO,IAAW,WAAW,MAAM,UAAU,kDAAkD,EAAE,GAAG,0BAA0B,EAAS,0BAA0B,CAAC,IAAI,EAAG,EAAS,0BAA0B,GAAG,OAAO,IAAK,WAAW,MAAM,UAAU,sEAAsE,EAAE,OAAO,OAAO,eAAe,EAAG,yBAAyB,CAAC,MAAM,EAAG,WAAW,GAAG,SAAS,GAAG,aAAa,EAAE,CAAC,EAAE,EAAG,SAAS,CAAE,IAAI,EAAK,CAAC,IAAI,EAAe,EAAc,EAAQ,IAAI,QAAQ,QAAQ,CAAC,EAAQ,EAAO,CAAC,EAAe,EAAQ,EAAc,EAAO,EAAE,EAAK,KAAK,QAAQ,CAAC,EAAI,EAAM,CAAC,GAAG,EAAI,EAAc,CAAG,EAAO,OAAe,CAAK,EAAE,EAAE,GAAG,CAAC,EAAS,MAAM,KAAK,CAAI,EAAE,MAAM,EAAI,CAAC,EAAc,CAAG,EAAE,OAAO,EAAQ,GAAG,OAAO,eAAe,EAAG,OAAO,eAAe,CAAQ,CAAC,EAAE,yBAAyB,OAAO,eAAe,EAAG,yBAAyB,CAAC,MAAM,EAAG,WAAW,GAAG,SAAS,GAAG,aAAa,EAAE,CAAC,EAAE,OAAO,OAAO,iBAAiB,EAAG,OAAO,0BAA0B,CAAQ,CAAC,EAAE,GAAk2B,CAAC,eAAY,gBAAa,YAAW,GAAa,CAAC,eAAY,eAAY,aAAU,OAAI,YAAS,WAAQ,yBAAsB,cAAW,oOCT72F,SAAS,EAAS,CAAC,EAAQ,EAAK,CAAC,IAAI,QAAQ,GAAQ,EAAQ,GAAG,EAAK,KAAK,MAAM,kBAAkB,EAAE,CAAC,EAAO,MAAM,EAAK,GAAG,IAAI,EAAa,EAAO,IAAe,GAAG,EAAa,QAAQ,KAAW,GAAoB,KAAK,CAAY,EAAE,EAAQ,MAAM,EAAQ,CAAI,EAAE,IAAI,EAAS,EAAO,MAAM,GAAG,CAAC,EAAS,MAAM,EAAK,GAAG,QAAQ,KAAW,GAAoB,KAAK,CAAQ,EAAE,EAAQ,MAAM,EAAQ,CAAI,EAAE,MAAM,GAAG,SAAS,EAAQ,CAAC,EAAQ,EAAQ,EAAK,EAAK,CAAC,EAAQ,KAAU,OAAE,QAAQ,CAAC,EAAI,CAAC,eAAe,IAAI,GAA4B,EAAQ,EAAI,EAAK,CAAI,CAAC,EAAE,EAAE,SAAS,EAA2B,CAAC,EAAQ,EAAI,EAAK,EAAK,CAAC,GAAG,OAAO,EAAQ,MAAc,WAAW,EAAQ,IAAY,EAAI,EAAK,GAAG,CAAI,EAAO,QAAG,CAAC,EAAQ,IAAU,GAAG,EAAQ,KAAK,QAAQ,CAAG,SAAE,CAAQ,EAAQ,IAAU,IAA05E,SAAS,EAAe,CAAC,EAAQ,EAAK,EAAS,CAAC,EAAS,OAAO,GAAG,IAAI,EAAK,MAAM,+CAA+C,EAAS,UAAU,OAAO,CAAI,yBAAyB,EAAQ,YAAY,wDAAwD,EAAE,EAAK,KAAK,8BAA8B,EAAK,QAAQ,EAAQ,EAAK,KAAK,EAAK,EAAK,MAAM,EAAS,OAAO,QAAQ,KAAK,CAAI,EAAE,SAAS,EAAW,CAAC,EAAK,KAAY,EAAK,CAAC,KAAK,eAAe,EAAK,CAAQ,EAAE,EAAS,MAAM,KAAK,CAAI,EAAsqD,SAAS,EAAK,CAAC,EAAQ,EAAK,EAAQ,CAAC,IAAI,EAAO,GAAS,OAAO,GAAG,GAAoB,EAAO,gBAAgB,EAAE,GAAQ,QAAQ,MAAM,IAAI,GAAgB,OAAE,CAAC,MAAM,GAAQ,MAAM,CAAC,EAAE,IAAI,UAAQ,SAAO,WAAS,sBAAsB,OAAO,EAAE,EAAc,CAAC,IAAM,CAAC,GAAG,EAAQ,eAAe,EAAK,CAAQ,EAAE,GAAQ,KAAK,GAAkC,EAAO,QAAQ,CAAa,EAAE,EAAO,CAAG,GAAG,EAAS,IAAI,IAAO,CAAC,GAAG,OAAO,EAAQ,iBAAiB,WAAW,EAAQ,eAAe,QAAQ,CAAa,EAAE,GAAG,GAAQ,KAAK,GAAkC,EAAO,QAAQ,CAAa,EAAE,EAAQ,CAAI,GAAG,GAAG,GAA+B,EAAQ,EAAK,EAAS,CAAC,KAAK,EAAE,CAAC,EAAE,IAAO,SAAS,OAAO,EAAQ,OAAO,WAAW,EAAQ,KAAK,QAAQ,CAAa,EAAE,SAAS,CAAa,EAAE,CAAC,GAAkC,EAAQ,EAAK,CAAQ,EAAE,GAAkC,EAAQ,QAAQ,CAAa,EAAE,EAAO,IAAI,GAAgB,OAAE,CAAC,MAAM,GAAQ,MAAM,CAAC,CAAC,EAAE,GAAG,GAAQ,KAAK,GAA+B,EAAO,QAAQ,EAAc,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,EAAQ,SAAS,EAAiB,CAAC,EAAQ,EAAK,CAAC,OAAO,EAAQ,UAAU,CAAI,EAAE,SAAS,EAAgB,CAAC,KAAK,EAAa,CAAC,GAAe,EAAE,kBAAkB,CAAC,EAAE,IAAI,EAAO,GAAG,IAAe,EAAO,EAAa,QAAQ,QAAQ,EAAE,EAAE,EAAE,EAAO,IAAI,EAAa,GAAG,gBAAgB,CAAC,EAAO,QAAoB,EAAE,SAAS,EAAc,CAAC,EAAQ,EAAK,CAAC,OAAO,EAAQ,cAAc,CAAI,EAAE,SAAS,EAAiC,CAAC,EAAQ,EAAK,EAAS,EAAM,CAAC,GAAG,OAAO,EAAQ,iBAAiB,WAAW,EAAQ,eAAe,EAAK,CAAQ,EAAO,OAAQ,oBAAoB,EAAK,EAAS,CAAK,EAAE,SAAS,EAA8B,CAAC,EAAQ,EAAK,EAAS,EAAM,CAAC,GAAG,OAAO,EAAQ,KAAK,WAAW,GAAG,EAAM,KAAK,EAAQ,KAAK,EAAK,CAAQ,EAAO,OAAQ,GAAG,EAAK,CAAQ,EAAO,OAAQ,iBAAiB,EAAK,EAAS,CAAK,EAA4Q,SAAS,EAAoB,CAAC,EAAK,EAAK,EAAM,CAAC,IAAI,EAAI,UAAU,QAAQ,+BAAkC,eAAkB,GAAO,EAAE,OAAO,EAAI,KAAK,uBAAuB,EAAI,SAAS,EAAgB,CAAC,EAAK,EAAM,EAAM,CAAC,IAAI,EAAI,WAAW,QAAQ,2CAA8C,eAAmB,GAAO,EAAE,OAAO,EAAI,KAAK,mBAAmB,EAAI,SAAS,EAAmB,CAAC,EAAO,EAAK,CAAC,GAAG,IAAc,SAAI,IAAS,MAAM,OAAO,IAAS,UAAU,EAAE,YAAY,IAAS,MAAM,GAAqB,EAAK,cAAc,CAAM,EAAE,SAAS,EAAc,CAAC,EAAM,EAAK,EAAI,EAAI,CAAC,GAAG,OAAO,IAAQ,SAAS,MAAM,GAAqB,EAAK,SAAS,CAAK,EAAE,GAAG,GAAK,MAAM,EAAM,GAAK,GAAK,MAAM,EAAM,IAAM,GAAK,MAAM,GAAK,OAAO,OAAO,MAAM,CAAK,EAAE,MAAM,GAAiB,EAAK,GAAG,GAAK,KAAK,MAAM,IAAM,KAAK,GAAK,MAAM,GAAK,KAAK,OAAO,KAAK,GAAK,KAAK,MAAM,IAAM,KAAK,CAAK,EAAE,SAAS,EAAa,CAAC,EAAS,CAAC,GAAG,OAAO,IAAW,WAAW,MAAM,UAAU,iCAAiC,EAAE,SAAS,EAAe,CAAC,EAAM,EAAK,CAAC,GAAG,OAAO,IAAQ,UAAU,MAAM,GAAqB,EAAK,UAAU,CAAK,EAAE,SAAS,EAAgB,CAAC,EAAgB,CAAC,OAAO,GAAiB,eAAe,GAAoB,SAAS,EAAgB,CAAC,EAAO,EAAS,CAAC,GAAG,IAAc,OAAE,MAAM,GAAqB,SAAS,cAAc,CAAM,EAAE,GAAG,GAAoB,EAAO,QAAQ,EAAE,OAAO,IAAW,WAAW,MAAM,GAAqB,WAAW,WAAW,CAAQ,EAAE,IAAI,EAAoB,GAAG,EAAO,QAAQ,eAAe,IAAI,EAAS,CAAC,EAAO,OAAO,iBAAiB,QAAQ,EAAS,CAAC,UAAU,KAAK,KAAK,EAAE,CAAC,EAAE,EAAoB,IAAI,CAAC,EAAO,oBAAoB,QAAQ,CAAQ,GAAG,MAAM,CAAC,UAAU,MAAM,OAAO,QAAQ,EAAE,CAAC,IAAsB,EAAE,MAAzsU,GAAqB,GAA4B,GAA+C,GAAkE,GAA8E,GAAyC,GAAqD,GAA0C,GAAoB,GAAG,GAAa,QAAQ,CAAC,EAAK,CAAC,GAAG,KAAK,UAAe,QAAG,KAAK,UAAU,KAAK,UAAU,QAAQ,KAAK,QAAQ,CAAC,UAAU,IAAI,EAAE,KAAK,aAAa,EAAE,GAAG,KAAK,gBAAqB,OAAE,KAAK,IAAU,GAAM,kBAAkB,QAAQ,GAAM,iBAAiB,EAAE,GAAsB,IAAU,KAAK,KAAK,IAA0B,GAAssC,GAA4B,QAAQ,CAAC,KAAQ,EAAK,CAAC,GAAG,IAAO,QAAQ,OAAO,GAAU,KAAK,CAAI,EAAE,IAAI,QAAQ,GAAQ,KAAK,GAAG,IAAc,OAAE,MAAM,GAAG,IAAI,EAAS,EAAO,GAAM,GAAG,IAAgB,OAAE,MAAM,GAAG,IAAI,EAAoB,EAAS,OAAO,EAAE,EAAS,MAAM,EAAE,EAAS,QAAQ,EAAE,GAAG,UAAQ,EAAoB,EAAE,EAAO,IAAI,CAAC,IAAI,EAAQ,EAAoB,GAAG,OAAO,EAAK,YAAa,GAAE,EAAQ,KAAK,IAAI,EAAE,UAAW,GAAE,EAAQ,KAAK,KAAK,EAAK,EAAE,EAAE,UAAW,GAAE,EAAQ,KAAK,KAAK,EAAK,GAAG,EAAK,EAAE,EAAE,UAAW,GAAE,EAAQ,KAAK,KAAK,EAAK,GAAG,EAAK,GAAG,EAAK,EAAE,EAAE,cAAc,EAAQ,MAAM,KAAK,CAAI,EAAE,OAAO,MAAM,IAAI,GAAyB,QAAQ,CAAC,KAAQ,EAAK,CAAC,GAAG,IAAO,QAAQ,OAAO,GAAU,KAAK,CAAI,EAAE,IAAI,QAAQ,GAAQ,KAAK,GAAG,IAAc,OAAE,MAAM,GAAG,IAAI,EAAS,EAAO,GAAM,GAAG,IAAgB,OAAE,MAAM,GAAG,IAAI,EAAoB,EAAS,OAAO,EAAE,EAAS,MAAM,EAAE,EAAS,QAAQ,EAAE,GAAG,UAAQ,EAAoB,EAAE,EAAO,IAAI,CAAC,IAAI,EAAQ,EAAoB,GAAG,EAAO,OAAO,EAAK,YAAa,GAAE,EAAO,EAAQ,KAAK,IAAI,EAAE,UAAW,GAAE,EAAO,EAAQ,KAAK,KAAK,EAAK,EAAE,EAAE,UAAW,GAAE,EAAO,EAAQ,KAAK,KAAK,EAAK,GAAG,EAAK,EAAE,EAAE,UAAW,GAAE,EAAO,EAAQ,KAAK,KAAK,EAAK,GAAG,EAAK,GAAG,EAAK,EAAE,EAAE,cAAc,EAAO,EAAQ,MAAM,KAAK,CAAI,EAAE,MAAM,GAAG,IAAc,QAAG,OAAO,GAAQ,OAAO,YAAY,EAAO,OAAO,QAAQ,UAAU,KAAK,GAAS,KAAK,EAAO,EAAK,CAAI,EAAE,MAAM,IAA4gK,GAAgzF,kBAA3iW,GAAU,OAAO,IAAI,GAAS,OAAO,UAAU,EAAE,GAAc,GAAU,qBAAqB,EAAE,GAAyB,OAAO,gCAAgC,EAAE,GAA+B,OAAO,sCAAsC,EAAE,GAAW,GAAU,kBAAkB,EAAE,GAAuB,GAAU,kBAAkB,EAAE,GAAoB,MAAM,UAAU,MAAsV,GAAsB,GAAa,UAAU,CAAC,EAAE,GAAsB,QAAa,OAAE,GAAsB,aAAa,EAAE,GAAsB,cAAmB,OAAE,GAAsB,gBAAgB,QAAQ,CAAC,EAAE,CAAC,OAAO,GAAe,EAAE,kBAAkB,CAAC,EAAE,KAAK,cAAc,EAAE,MAAM,GAAsB,YAAY,GAAa,GAAsB,gBAAgB,QAAQ,EAAE,CAAC,OAAO,MAAM,eAAe,IAAgpE,GAAsB,KAAK,GAA4B,GAAsB,YAAY,QAAQ,CAAC,EAAK,EAAG,CAAC,GAAc,CAAE,EAAE,IAAI,EAAO,KAAK,QAAQ,GAAG,CAAC,EAAO,EAAO,KAAK,QAAQ,CAAC,UAAU,IAAI,EAAE,KAAK,aAAa,EAAO,QAAG,EAAO,YAAY,KAAK,KAAK,cAAc,EAAK,EAAG,UAAU,CAAE,EAAE,IAAI,EAAS,EAAO,GAAM,GAAG,CAAC,EAAS,EAAO,GAAM,CAAC,CAAE,EAAE,KAAK,eAAmB,KAAC,EAAS,KAAK,CAAE,EAAE,IAAI,EAAE,KAAK,eAAe,GAAoB,GAAG,EAAE,GAAG,EAAS,OAAO,GAAG,CAAC,EAAS,OAAO,GAAgB,KAAK,EAAK,CAAQ,EAAE,OAAO,MAAM,GAAsB,GAAG,GAAsB,YAAY,GAAsB,gBAAgB,QAAQ,CAAC,EAAK,EAAG,CAAC,GAAc,CAAE,EAAE,IAAI,EAAO,KAAK,QAAQ,GAAG,CAAC,EAAO,EAAO,KAAK,QAAQ,CAAC,UAAU,IAAI,EAAE,KAAK,aAAa,EAAO,QAAG,EAAO,YAAY,KAAK,KAAK,cAAc,EAAK,EAAG,UAAU,CAAE,EAAE,IAAI,EAAS,EAAO,GAAM,GAAG,CAAC,EAAS,EAAO,GAAM,CAAC,CAAE,EAAE,KAAK,eAAmB,KAAC,EAAS,QAAQ,CAAE,EAAE,IAAI,EAAE,KAAK,eAAe,GAAoB,GAAG,EAAE,GAAG,EAAS,OAAO,GAAG,CAAC,EAAS,OAAO,GAAgB,KAAK,EAAK,CAAQ,EAAE,OAAO,MAA+e,GAAsB,KAAK,QAAQ,CAAC,EAAK,EAAG,CAAC,GAAc,CAAE,EAAE,IAAI,EAAM,GAAY,KAAK,KAAK,EAAK,CAAE,EAAE,OAAO,EAAM,SAAS,EAAG,KAAK,YAAY,EAAK,CAAK,EAAE,MAAM,GAAsB,oBAAoB,QAAQ,CAAC,EAAK,EAAG,CAAC,GAAc,CAAE,EAAE,IAAI,EAAM,GAAY,KAAK,KAAK,EAAK,CAAE,EAAE,OAAO,EAAM,SAAS,EAAG,KAAK,gBAAgB,EAAK,CAAK,EAAE,MAAM,GAAsB,eAAe,QAAQ,CAAC,EAAK,EAAG,CAAC,GAAc,CAAE,EAAE,IAAI,QAAQ,GAAQ,KAAK,GAAG,CAAC,EAAO,OAAO,KAAK,IAAI,EAAS,EAAO,GAAM,GAAG,CAAC,EAAS,OAAO,KAAK,IAAI,EAAO,EAAS,OAAO,IAAI,EAAS,GAAG,QAAQ,EAAE,EAAO,EAAE,GAAG,EAAE,IAAI,GAAG,EAAS,KAAK,GAAI,EAAS,GAAG,WAAW,EAAG,CAAC,EAAS,EAAE,MAAM,GAAG,EAAS,EAAE,OAAO,KAAK,GAAG,IAAW,EAAE,EAAS,MAAM,EAAO,OAAS,OAAO,EAAS,CAAC,EAAE,GAAG,EAAS,SAAS,EAAE,OAAO,EAAO,GAAM,KAAK,eAAe,OAAO,MAAM,GAAsB,IAAI,GAAsB,eAAe,GAAsB,mBAAmB,QAAQ,CAAC,EAAK,CAAC,IAAI,QAAQ,GAAQ,KAAK,GAAG,GAAM,GAAQ,GAAG,EAAO,GAAM,OAAO,EAAO,GAAM,KAAK,eAAoB,UAAK,QAAQ,CAAC,UAAU,IAAI,EAAE,OAAO,MAAM,GAAsB,UAAU,QAAQ,CAAC,EAAK,CAAC,IAAI,QAAQ,GAAQ,KAAK,GAAG,CAAC,EAAO,MAAM,CAAC,EAAE,IAAI,EAAS,EAAO,GAAM,GAAG,CAAC,EAAS,MAAM,CAAC,EAAE,OAAO,EAAS,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,GAAsB,aAAa,QAAQ,CAAC,EAAK,CAAC,IAAI,WAAS,KAAK,GAAG,CAAC,EAAQ,MAAM,CAAC,EAAE,IAAI,EAAS,EAAQ,GAAM,GAAG,CAAC,EAAS,MAAM,CAAC,EAAE,OAAO,EAAS,MAAM,GAAG,GAAsB,cAAc,QAAQ,CAAC,EAAK,CAAC,IAAI,QAAQ,GAAQ,KAAK,GAAG,CAAC,EAAO,MAAO,GAAE,OAAO,EAAO,IAAO,QAAQ,GAAG,GAAsB,WAAW,QAAQ,EAAE,CAAC,OAAO,KAAK,aAAa,EAAE,QAAQ,QAAQ,KAAK,OAAO,EAAE,CAAC,GAAG,GAAsB,IAAU,GAAi1D,GAAN,MAAM,WAAmB,KAAK,CAAC,WAAW,CAAC,EAAQ,4BAA4B,EAAa,OAAE,CAAC,GAAG,IAAe,QAAG,OAAO,IAAU,SAAS,MAAM,GAAqB,UAAU,SAAS,CAAO,EAAE,MAAM,EAAQ,CAAO,EAAE,KAAK,KAAK,YAAY,KAAK,KAAK,aAAa,EAA6sD,OAAO,iBAAiB,GAAa,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,OAAO,GAAsB,KAAW,GAAG,CAAC,EAAM,CAAC,GAAgB,EAAM,gCAAgC,EAAE,GAAsB,IAAU,GAAO,WAAW,EAAE,EAAE,oBAAoB,CAAC,WAAW,GAAG,IAAI,IAAI,CAAC,OAAO,IAAqB,IAAI,CAAC,IAAM,CAAC,GAAe,EAAI,sBAAsB,CAAC,EAAE,GAAoB,EAAI,EAAE,yBAAyB,CAAC,MAAM,GAAyB,WAAW,GAAG,aAAa,GAAG,SAAS,EAAE,EAAE,+BAA+B,CAAC,MAAM,GAA+B,WAAW,GAAG,aAAa,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,OAAO,OAAO,GAAa,CAAC,KAAK,GAAM,qBAAkB,gBAAgB,GAAiB,gBAAgB,GAAiB,gBAAa,aAAa,GAAG,0BAAuB,aAAa,GAAc,oBAAiB,KAAK,GAAa,cAAc,EAAc,CAAC,EAAM,GAAe,yBCA9jW,IAAI,GAAW,CAAC,EAAG,IAAM,KAAK,GAAK,GAAI,EAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAG,EAAE,EAAI,SAAa,GAAoB,GAAW,CAAC,EAAS,IAAU,CAAC,MAAM,UAAuB,KAAK,CAAC,WAAW,CAAC,EAAO,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAM,EAAE,MAAM,UAAU,sCAAsC,OAAO,GAAQ,EAAE,IAAI,EAAQ,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAO,OAAO,IAAI,GAAS,OAAO,EAAO,GAAG;AAAA,EAC1W,MAAM,CAAO,EAAE,KAAK,KAAK,iBAAiB,KAAK,OAAO,EAAO,CAAC,EAAQ,QAAQ,CAAC,iBAAe,YAAY,CAAC,EAAK,CAAC,OAAO,MAAM,QAAQ,CAAI,GAAG,sBAAsB,CAAC,EAAK,EAAG,CAAC,OAAO,EAAK,SAAS,CAAE,GAAG,qBAAqB,CAAC,EAAK,EAAG,CAAC,OAAO,EAAK,QAAQ,CAAE,GAAG,kBAAkB,CAAC,EAAK,EAAI,CAAC,OAAO,EAAK,KAAK,CAAG,GAAG,iBAAiB,CAAC,EAAK,EAAG,CAAC,OAAO,EAAK,IAAI,CAAE,GAAG,iBAAiB,CAAC,EAAK,EAAG,CAAC,OAAO,EAAK,IAAI,CAAE,GAAG,kBAAkB,CAAC,EAAK,EAAG,CAAC,OAAO,EAAK,KAAK,CAAE,GAAG,mBAAmB,CAAC,EAAK,EAAM,EAAI,CAAC,OAAO,EAAK,MAAM,EAAM,CAAG,GAAG,MAAM,qBAAqB,CAAC,EAAG,KAAY,EAAK,CAAC,OAAO,EAAG,KAAK,EAAS,GAAG,CAAI,GAAG,kCAAkC,CAAC,EAAK,EAAS,CAAC,OAAO,SAAS,UAAU,OAAO,aAAa,KAAK,EAAK,CAAQ,GAAG,UAAU,KAAK,MAAM,OAAO,gBAAgB,OAAO,UAAU,YAAY,OAAO,MAAM,uBAAuB,OAAO,iBAAiB,uBAAuB,OAAO,iBAAiB,eAAe,OAAO,SAAS,sBAAsB,CAAC,EAAK,EAAM,CAAC,OAAO,OAAO,iBAAiB,EAAK,CAAK,GAAG,oBAAoB,CAAC,EAAK,EAAK,EAAK,CAAC,OAAO,OAAO,eAAe,EAAK,EAAK,CAAI,GAAG,8BAA8B,CAAC,EAAK,EAAK,CAAC,OAAO,OAAO,yBAAyB,EAAK,CAAI,GAAG,UAAU,CAAC,EAAI,CAAC,OAAO,OAAO,KAAK,CAAG,GAAG,oBAAoB,CAAC,EAAO,EAAM,CAAC,OAAO,OAAO,eAAe,EAAO,CAAK,GAAG,QAAQ,qBAAqB,CAAC,EAAK,EAAG,CAAC,OAAO,EAAK,MAAM,CAAE,GAAG,oBAAoB,CAAC,EAAK,EAAO,EAAQ,CAAC,OAAO,EAAK,KAAK,EAAO,CAAO,GAAG,aAAa,CAAC,EAAI,CAAC,OAAO,QAAQ,OAAO,CAAG,GAAG,cAAc,CAAC,EAAI,CAAC,OAAO,QAAQ,QAAQ,CAAG,GAAG,aAAa,QAAQ,MAAM,mBAAmB,CAAC,EAAK,EAAM,CAAC,OAAO,EAAK,KAAK,CAAK,GAAG,QAAQ,IAAI,OAAO,oBAAoB,CAAC,EAAK,EAAM,EAAI,CAAC,OAAO,EAAK,MAAM,EAAM,CAAG,GAAG,0BAA0B,CAAC,EAAK,CAAC,OAAO,EAAK,YAAY,GAAG,0BAA0B,CAAC,EAAK,CAAC,OAAO,EAAK,YAAY,GAAG,mBAAmB,CAAC,EAAK,CAAC,OAAO,EAAK,KAAK,GAAG,OAAO,UAAU,OAAO,IAAI,oBAAoB,OAAO,cAAc,kBAAkB,OAAO,YAAY,eAAe,OAAO,SAAS,cAAc,OAAO,SAAS,OAAO,gBAAgB,EAAE,mBAAmB,OAAO,cAAc,OAAO,qBAAqB,EAAE,sBAAsB,CAAC,EAAK,EAAI,EAAI,CAAC,OAAO,EAAK,IAAI,EAAI,CAAG,GAAG,QAAQ,UAAU,EAAE,EAAM,GAAgB,GAAW,CAAC,EAAS,IAAU,CAAC,EAAQ,QAAQ,CAAC,MAAM,CAAC,KAAU,EAAK,CAAC,OAAO,EAAO,QAAQ,cAAc,QAAQ,KAAK,EAAQ,GAAM,CAAC,IAAI,EAAY,EAAK,MAAM,EAAE,GAAG,IAAO,IAAI,OAAO,EAAY,QAAQ,CAAC,EAAO,QAAG,IAAO,IAAI,OAAO,KAAK,UAAU,CAAW,EAAO,QAAG,IAAO,KAAK,OAAO,IAAc,SAAS,MAAM,GAAG,EAAY,cAAc,OAAO,EAAY,YAAY,KAAK,QAAQ,KAAK,EAAO,YAAO,EAAY,SAAS,EAAE,GAAG,OAAO,CAAC,EAAM,CAAC,OAAO,OAAO,OAAW,SAAS,GAAG,EAAM,SAAS,GAAG,GAAG,GAAG,CAAC,EAAM,SAAS,GAAG,EAAE,MAAM,IAAI,KAAc,QAAG,CAAC,EAAM,SAAS,GAAG,GAAG,CAAC,EAAM,SAAS,IAAI,EAAE,MAAM,KAAK,MAAU,MAAM,IAAI,SAAa,SAAS,GAAG,MAAM,CAAK,EAAE,MAAM,MAAW,QAAG,OAAO,GAAG,EAAM,EAAE,EAAE,OAAO,OAAO,CAAK,EAAE,OAAO,MAAU,SAAS,MAAM,GAAG,OAAO,CAAK,SAAS,cAAc,YAAY,OAAO,OAAO,CAAK,MAAM,SAAS,MAAM,MAAM,EAAE,EAAM,GAAe,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,SAAO,WAAS,GAAgB,GAAG,eAAe,GAAsB,GAAoB,EAAE,EAAe,WAAW,gBAAgB,EAAqB,EAAa,OAAO,cAAc,EAAE,EAAO,CAAC,SAAS,WAAW,SAAS,SAAS,WAAW,SAAS,UAAU,SAAS,QAAQ,EAAE,EAAY,sBAAsB,EAAM,CAAC,EAAE,SAAS,CAAM,CAAC,EAAM,EAAQ,CAAC,GAAG,CAAC,EAAM,MAAM,IAAI,EAAM,uBAAuB,CAAO,EAAE,SAAS,CAAqB,CAAC,EAAI,CAAC,IAAI,EAAI,GAAG,EAAE,EAAI,OAAO,EAAM,EAAI,KAAK,IAAI,EAAE,EAAE,KAAK,GAAG,EAAM,EAAE,GAAG,EAAE,EAAI,IAAI,EAAI,MAAM,EAAE,EAAE,CAAC,IAAI,IAAM,MAAM,GAAG,EAAI,MAAM,EAAE,CAAC,IAAI,IAAM,SAAS,CAAU,CAAC,EAAI,EAAI,EAAK,CAAC,GAAG,OAAO,IAAM,WAAW,OAAO,EAAO,EAAI,QAAQ,EAAK,OAAO,SAAS,qCAAuC,EAAK,6CAA6C,EAAI,UAAU,EAAE,EAAI,GAAG,CAAI,EAAE,IAAI,GAAgB,EAAI,MAAM,aAAa,GAAG,CAAC,GAAG,OAAO,GAAG,EAAO,IAAiB,EAAK,OAAO,SAAS,qCAAuC,EAAK,6CAA6C,KAAkB,EAAE,EAAK,SAAS,EAAE,OAAO,EAAI,OAAO,EAAO,EAAI,GAAG,CAAI,EAAE,SAAS,CAAC,CAAC,EAAK,EAAQ,EAAK,CAAC,GAAG,CAAC,EAAK,EAAK,MAAM,MAAM,UAAkB,CAAI,CAAC,WAAW,IAAI,EAAK,CAAC,MAAM,EAAW,EAAK,EAAQ,CAAI,CAAC,EAAE,QAAQ,EAAE,CAAC,MAAM,GAAG,KAAK,SAAS,OAAU,KAAK,UAAU,CAAC,OAAO,iBAAiB,EAAU,UAAU,CAAC,KAAK,CAAC,MAAM,EAAK,KAAK,SAAS,GAAG,WAAW,GAAG,aAAa,EAAE,EAAE,SAAS,CAAC,KAAK,EAAE,CAAC,MAAM,GAAG,KAAK,SAAS,OAAU,KAAK,WAAW,SAAS,GAAG,WAAW,GAAG,aAAa,EAAE,CAAC,CAAC,EAAE,EAAU,UAAU,KAAK,EAAK,EAAU,UAAU,GAAc,GAAG,EAAM,GAAM,EAAU,SAAS,CAAe,CAAC,EAAG,CAAC,IAAI,EAAO,mBAAmB,EAAG,KAAK,OAAO,OAAO,eAAe,EAAG,OAAO,CAAC,MAAM,CAAM,CAAC,EAAE,EAAG,SAAS,CAAkB,CAAC,EAAW,EAAW,CAAC,GAAG,GAAY,GAAY,IAAa,EAAW,CAAC,GAAG,MAAM,QAAQ,EAAW,MAAM,EAAE,OAAO,EAAW,OAAO,KAAK,CAAU,EAAE,EAAW,IAAI,EAAI,IAAI,EAAe,CAAC,EAAW,CAAU,EAAE,EAAW,OAAO,EAAE,OAAO,EAAI,KAAK,EAAW,KAAK,EAAI,OAAO,GAAY,EAAW,MAAM,UAAmB,KAAK,CAAC,WAAW,CAAC,EAAQ,4BAA4B,EAAa,OAAE,CAAC,GAAG,IAAe,QAAG,OAAO,IAAU,SAAS,MAAM,IAAI,EAAM,qBAAqB,UAAU,SAAS,CAAO,EAAE,MAAM,EAAQ,CAAO,EAAE,KAAK,KAAK,YAAY,KAAK,KAAK,aAAa,CAAC,EAAE,gBAAgB,KAAK,KAAK,EAAE,EAAE,uBAAuB,CAAC,EAAK,EAAS,IAAS,CAAC,GAAG,EAAO,OAAO,IAAO,SAAS,yBAAyB,EAAE,CAAC,MAAM,QAAQ,CAAQ,EAAE,EAAS,CAAC,CAAQ,EAAE,IAAI,EAAI,OAAO,GAAG,EAAK,SAAS,WAAW,EAAE,GAAK,GAAG,KAAa,QAAK,IAAI,MAAS,EAAK,SAAS,GAAG,EAAE,WAAW,cAAc,GAAK,WAAW,IAAI,EAAM,CAAC,EAAE,EAAU,CAAC,EAAE,EAAM,CAAC,EAAE,QAAQ,MAAS,EAAS,GAAG,EAAO,OAAO,KAAQ,SAAS,gDAAgD,EAAE,EAAO,SAAS,EAAK,EAAE,EAAM,KAAK,GAAM,YAAY,CAAC,EAAO,QAAG,EAAY,KAAK,EAAK,EAAE,EAAU,KAAK,EAAK,EAAO,OAAO,KAAQ,SAAS,kDAAkD,EAAE,EAAM,KAAK,EAAK,EAAE,GAAG,EAAU,OAAO,EAAE,CAAC,IAAI,GAAI,EAAM,QAAQ,QAAQ,EAAE,GAAG,KAAM,GAAG,EAAM,OAAO,EAAM,GAAI,CAAC,EAAE,EAAU,KAAK,QAAQ,EAAE,GAAG,EAAM,OAAO,EAAE,CAAC,OAAO,EAAM,YAAa,GAAE,GAAK,WAAW,EAAM,KAAK,UAAW,GAAE,GAAK,eAAe,EAAM,SAAS,EAAM,KAAK,cAAc,CAAC,IAAI,GAAK,EAAM,IAAI,EAAE,GAAK,eAAe,EAAM,KAAK,IAAI,SAAS,IAAM,EAAE,GAAG,EAAU,OAAO,GAAG,EAAM,OAAO,EAAE,GAAK,OAAO,GAAG,EAAU,OAAO,EAAE,CAAC,OAAO,EAAU,YAAa,GAAE,GAAK,kBAAkB,EAAU,KAAK,UAAW,GAAE,GAAK,kBAAkB,EAAU,SAAS,EAAU,KAAK,cAAc,CAAC,IAAI,GAAK,EAAU,IAAI,EAAE,GAAK,kBAAkB,EAAU,KAAK,IAAI,SAAS,IAAM,EAAE,GAAG,EAAM,OAAO,EAAE,GAAK,OAAO,OAAO,EAAM,YAAa,GAAE,UAAW,GAAE,GAAG,EAAM,GAAG,YAAY,IAAI,EAAM,GAAG,GAAK,MAAM,GAAK,GAAG,EAAM,KAAK,UAAW,GAAE,GAAK,UAAU,EAAM,SAAS,EAAM,KAAK,cAAc,CAAC,IAAI,GAAK,EAAM,IAAI,EAAE,GAAK,UAAU,EAAM,KAAK,IAAI,SAAS,IAAM,EAAE,GAAG,GAAQ,KAAK,GAAK,cAAc,IAAc,QAAG,OAAO,IAAS,YAAY,EAAO,KAAK,GAAK,uBAAuB,EAAO,OAAY,QAAG,OAAO,IAAS,SAAS,CAAC,IAAI,GAAoB,IAAI,GAAoB,EAAO,eAAe,MAAM,KAA2B,QAAG,GAAoB,KAAK,GAAK,6BAA6B,EAAO,YAAY,OAAW,KAAC,IAAI,GAAU,EAAQ,EAAO,CAAC,MAAM,EAAE,CAAC,EAAE,GAAK,cAAc,MAAiB,KAAC,IAAI,GAAU,EAAQ,EAAO,CAAC,OAAO,EAAE,CAAC,EAAE,GAAG,GAAU,OAAO,GAAG,GAAU,GAAG,GAAU,MAAM,EAAE,EAAE,OAAO,GAAK,mBAAmB,OAAO,MAAW,MAAa,OAAO,GAAK,SAAS,EAAE,EAAE,wBAAwB,CAAC,EAAK,EAAM,EAAO,eAAe,CAAC,IAAI,EAAU,EAAQ,CAAK,EAAE,GAAG,EAAU,OAAO,IAAI,EAAU,EAAU,MAAM,EAAE,GAAG,EAAE,MAAM,MAAM,OAAO,EAAK,SAAS,GAAG,EAAE,WAAW,eAAe,MAAS,eAAoB,KAAa,SAAS,EAAE,EAAE,2BAA2B,CAAC,EAAM,EAAK,IAAQ,CAAC,IAAI,EAAmB,IAAI,EAAK,IAAQ,MAAM,IAAa,SAAI,EAAmB,EAAM,eAAe,MAAM,IAA0B,QAAG,EAAmB,KAAK,eAAe,EAAM,YAAY,OAAO,QAAQ,OAAO,IAAQ,MAAM,YAAY,8BAAkC,uBAA0B,MAAS,SAAS,EAAE,EAAE,mBAAmB,IAAI,IAAO,CAAC,EAAO,EAAK,OAAO,EAAE,wCAAwC,EAAE,IAAI,EAAI,EAAI,EAAK,OAAO,OAAO,GAAM,MAAM,QAAQ,CAAI,EAAE,EAAK,CAAC,CAAI,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,KAAK,MAAM,EAAE,OAAU,GAAE,GAAK,OAAO,EAAK,cAAc,UAAW,GAAE,GAAK,OAAO,EAAK,UAAU,EAAK,eAAe,cAAc,CAAC,IAAI,EAAK,EAAK,IAAI,EAAE,GAAK,OAAO,EAAK,KAAK,IAAI,UAAU,aAAgB,CAAC,MAAM,MAAM,GAAG,uBAAyB,SAAS,EAAE,EAAE,mBAAmB,CAAC,EAAI,EAAM,IAAQ,CAAC,EAAO,EAAM,0BAA0B,EAAE,IAAI,EAAS,GAAG,OAAO,UAAU,CAAK,GAAG,KAAK,IAAI,CAAK,EAAE,WAAW,EAAS,EAAsB,OAAO,CAAK,CAAC,EAAO,QAAG,OAAO,IAAQ,SAAS,CAAC,EAAS,OAAO,CAAK,EAAE,IAAI,EAAM,OAAO,CAAC,GAAG,OAAO,EAAE,EAAE,GAAG,EAAM,GAAO,EAAM,CAAC,EAAM,EAAS,EAAsB,CAAQ,EAAE,GAAU,IAAS,OAAS,EAAQ,CAAK,EAAE,MAAM,iBAAiB,kCAAoC,eAAmB,KAAY,UAAU,EAAE,EAAE,wBAAwB,iCAAiC,KAAK,EAAE,EAAE,6BAA6B,mCAAmC,KAAK,EAAE,EAAE,8BAA8B,6CAA6C,KAAK,EAAE,EAAE,yBAAyB,4BAA4B,KAAK,EAAE,EAAE,uBAAuB,8CAA8C,KAAK,EAAE,EAAE,yBAAyB,sCAAsC,SAAS,EAAE,EAAE,6BAA6B,kBAAkB,KAAK,EAAE,EAAE,4BAA4B,0BAA0B,KAAK,EAAE,EAAE,qCAAqC,mCAAmC,KAAK,EAAE,EAAE,6BAA6B,kBAAkB,KAAK,EAAE,EAAE,uBAAuB,uBAAuB,SAAS,EAAE,EAAQ,QAAQ,CAAC,aAAW,mBAAmB,EAAgB,CAAkB,EAAE,kBAAgB,OAAK,EAAE,EAAM,GAA0B,GAAW,CAAC,EAAS,IAAU,CAAC,OAAO,eAAe,EAAS,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAY,IAAI,QAAQ,EAAS,IAAI,QAAQ,SAAS,CAAE,CAAC,EAAM,CAAC,IAAI,GAAK,EAAY,IAAI,CAAK,EAAE,OAAO,QAAQ,OAAO,IAAM,KAAK,8CAA8C,CAAK,EAAE,GAAK,SAAS,CAAa,CAAC,EAAK,CAAC,GAAG,EAAK,iBAAiB,KAAK,CAAC,GAAG,OAAO,QAAQ,KAAK,OAAO,QAAQ,QAAQ,WAAW,QAAQ,MAAM,qEAAqE,EAAK,eAAe,EAAE,OAAO,GAAG,CAAC,EAAK,MAAM,WAAW,OAAO,GAAG,EAAK,SAAS,GAAG,OAAO,EAAK,MAAM,iBAAiB,WAAW,EAAK,MAAM,eAAe,EAAE,SAAS,CAAK,CAAC,EAAY,GAAM,CAAC,EAAY,IAAI,KAAK,CAAC,cAAY,SAAM,WAAW,EAAE,cAAc,EAAY,SAAS,GAAG,QAAQ,GAAG,iBAAiB,GAAG,gBAAgB,KAAK,UAAU,GAAM,WAAW,KAAK,IAAI,CAAC,CAAC,EAAE,OAAO,eAAe,KAAK,YAAY,CAAC,MAAM,GAAG,WAAW,EAAE,CAAC,EAAE,IAAI,EAAK,OAAO,KAAK,EAAK,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAK,OAAO,EAAE,EAAE,CAAC,IAAI,EAAI,EAAK,GAAG,GAAG,EAAE,KAAO,MAAM,OAAO,eAAe,KAAK,EAAI,EAAyB,CAAG,CAAC,GAAi9C,GAA98C,EAAM,UAAU,IAAK,KAAI,EAAE,CAAC,OAAO,EAAG,IAAI,EAAE,MAAM,SAAU,OAAM,EAAE,CAAC,OAAO,EAAG,IAAI,EAAE,gBAAiB,cAAa,EAAE,CAAC,OAAO,EAAG,IAAI,EAAE,eAAe,YAAY,EAAE,CAAC,IAAI,EAAc,EAAG,IAAI,EAAE,cAAc,GAAG,GAAe,KAAK,MAAM,CAAC,EAAE,MAAM,CAAC,CAAa,MAAO,KAAI,EAAE,CAAC,MAAO,OAAO,gBAAe,EAAE,CAAC,MAAO,OAAO,UAAS,EAAE,CAAC,MAAO,OAAO,eAAc,EAAE,CAAC,MAAO,OAAO,WAAU,EAAE,CAAC,OAAO,EAAG,IAAI,EAAE,YAAY,eAAe,EAAE,CAAC,IAAI,EAAK,EAAG,IAAI,EAAE,GAAG,EAAK,QAAQ,GAAG,OAAO,EAAK,MAAM,kBAAkB,WAAW,EAAK,MAAM,gBAAgB,GAAG,wBAAwB,EAAE,CAAC,IAAI,EAAK,EAAG,IAAI,EAAE,GAAG,EAAK,QAAQ,GAAG,EAAK,iBAAiB,GAAG,OAAO,EAAK,MAAM,2BAA2B,WAAW,EAAK,MAAM,yBAAyB,MAAO,QAAO,EAAE,CAAC,OAAO,QAAQ,EAAG,IAAI,EAAE,MAAM,OAAO,MAAO,WAAU,EAAE,CAAC,OAAO,QAAQ,EAAG,IAAI,EAAE,MAAM,UAAU,GAAG,cAAc,EAAE,CAAC,EAAc,EAAG,IAAI,CAAC,MAAO,iBAAgB,EAAE,CAAC,OAAO,EAAG,IAAI,EAAE,aAAc,SAAQ,EAAE,CAAC,OAAO,QAAQ,EAAG,IAAI,EAAE,MAAM,QAAQ,MAAO,UAAS,EAAE,CAAC,OAAO,EAAG,IAAI,EAAE,cAAe,WAAU,EAAE,CAAC,OAAO,EAAG,IAAI,EAAE,gBAAiB,aAAY,EAAE,CAAC,OAAO,EAAG,IAAI,EAAE,YAAa,aAAY,CAAC,EAAM,CAAC,GAAG,CAAC,EAAM,OAAO,IAAI,GAAK,EAAG,IAAI,EAAE,GAAG,GAAK,QAAQ,GAAG,OAAO,GAAK,MAAM,eAAe,UAAU,GAAK,MAAM,aAAa,OAAQ,YAAW,EAAE,CAAC,MAAM,CAAC,EAAG,IAAI,EAAE,aAAc,YAAW,CAAC,EAAM,CAAC,GAAG,CAAC,EAAM,EAAc,EAAG,IAAI,CAAC,GAAG,SAAS,EAAE,EAAE,EAAE,OAAO,eAAe,EAAM,UAAU,cAAc,CAAC,MAAM,EAAM,aAAa,GAAG,SAAS,EAAE,CAAC,EAAK,OAAO,OAAO,KAAK,OAAO,OAAO,MAAM,IAAI,OAAO,eAAe,EAAM,UAAU,OAAO,MAAM,SAAS,EAAE,EAAS,IAAI,OAAO,MAAM,UAAU,CAAK,EAAE,SAAS,CAAwB,CAAC,EAAI,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,OAAO,EAAG,IAAI,EAAE,MAAM,IAAM,GAAG,CAAC,GAAM,CAAC,EAAG,IAAI,EAAE,MAAM,GAAK,IAAO,aAAa,GAAG,WAAW,EAAE,EAAE,SAAS,CAAoB,CAAC,EAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,GAAM,EAAG,IAAI,EAAE,MAAM,OAAO,GAAM,GAAK,MAAM,GAAM,SAAS,GAAG,aAAa,GAAG,WAAW,EAAE,EAAE,SAAS,CAAa,CAAC,EAAU,GAAM,CAAC,IAAI,EAAK,OAAO,KAAK,EAAK,EAAE,GAAG,EAAK,SAAS,EAAE,OAAO,EAAU,SAAS,CAAW,CAAC,EAAY,EAAM,CAAC,EAAU,KAAK,KAAK,EAAY,CAAK,EAAE,EAAY,UAAU,OAAO,OAAO,EAAU,UAAU,CAAC,YAAY,CAAC,MAAM,EAAY,aAAa,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAK,OAAO,EAAE,EAAE,CAAC,IAAI,EAAI,EAAK,GAAG,GAAG,EAAE,KAAO,EAAU,WAAW,CAAC,IAAI,EAAO,OAAO,OAAO,yBAAyB,GAAM,CAAG,EAAE,QAAQ,WAAW,OAAO,eAAe,EAAY,UAAU,EAAI,EAAO,EAAqB,CAAG,EAAE,EAAyB,CAAG,CAAC,GAAG,OAAO,EAAY,SAAS,CAAU,CAAC,EAAM,CAAC,GAAG,GAAO,MAAM,IAAQ,OAAO,UAAU,OAAO,EAAM,IAAI,GAAQ,EAAS,IAAI,CAAK,EAAE,GAAG,IAAS,KAAK,GAAQ,EAAc,EAAW,OAAO,eAAe,CAAK,CAAC,EAAE,CAAK,EAAE,EAAS,IAAI,EAAM,EAAO,EAAE,OAAO,GAAQ,SAAS,CAAS,CAAC,EAAY,GAAM,CAAC,OAAO,IAAI,EAAW,OAAO,eAAe,EAAK,CAAC,GAAG,EAAY,EAAK,EAAE,SAAS,CAAS,CAAC,EAAM,CAAC,OAAO,EAAG,CAAK,EAAE,iBAAiB,SAAS,CAAa,CAAC,EAAM,GAAW,CAAC,EAAG,CAAK,EAAE,WAAW,GAAW,SAAS,CAAgB,CAAC,EAAM,GAAc,CAAC,EAAG,CAAK,EAAE,cAAc,GAAc,SAAS,CAAkB,CAAC,EAAM,GAAgB,CAAC,EAAG,CAAK,EAAE,gBAAgB,GAAgB,IAAI,EAAa,IAAI,QAAQ,EAAQ,EAAE,EAAO,EAAE,EAAU,EAAE,SAAS,CAAQ,CAAC,EAAE,CAAC,OAAO,IAAI,MAAM,OAAO,IAAI,SAAS,SAAS,CAAY,CAAC,EAAY,CAAC,IAAI,GAAU,EAAa,IAAI,CAAW,EAAE,GAAG,IAAW,KAAK,MAAM,UAAU,kEAAkE,EAAE,OAAO,GAAU,SAAS,CAA8B,CAAC,EAAU,CAAC,MAAM,CAAC,GAAG,EAAE,CAAC,IAAI,GAAK,EAAa,IAAI,EAAE,IAAI,CAAS,EAAE,MAAM,IAAM,KAAK,CAAC,GAAG,GAAK,eAAe,EAAU,OAAO,GAAK,SAAS,GAAK,GAAK,KAAK,OAAO,MAAM,GAAG,CAAC,GAAS,CAAC,GAAG,OAAO,KAAW,YAAY,CAAC,EAAS,EAAQ,EAAE,GAAS,KAAK,IAAI,EAAU,EAAa,IAAI,EAAE,EAAK,KAAK,EAAK,EAAU,IAAI,CAAS,EAAE,MAAM,GAAM,KAAK,CAAC,GAAG,EAAK,eAAe,EAAU,GAAG,IAAO,KAAK,EAAK,KAAK,EAAK,KAAU,QAAG,EAAK,OAAO,KAAK,EAAU,IAAI,EAAU,EAAK,IAAI,EAAO,OAAU,OAAO,CAAS,EAAO,OAAK,EAAK,EAAK,EAAK,KAAK,GAAG,KAAW,KAAK,CAAC,IAAI,EAAQ,CAAC,YAAS,aAAa,EAAU,QAAQ,GAAG,KAAK,GAAG,KAAK,IAAI,EAAE,GAAG,IAAO,KAAK,EAAU,IAAI,EAAU,CAAO,EAAO,OAAK,KAAK,IAAU,aAAa,GAAG,WAAW,EAAE,EAAE,SAAS,CAAoB,CAAC,EAAqB,GAAU,CAAC,OAAO,eAAe,EAAqB,KAAK,KAAY,EAA+B,EAAS,CAAC,EAAE,SAAS,EAAuB,CAAC,EAAW,CAAC,SAAS,EAAiB,EAAE,CAAC,GAAY,KAAK,IAAI,EAAE,GAAkB,UAAU,OAAO,OAAO,GAAY,UAAU,CAAC,YAAY,CAAC,MAAM,GAAkB,aAAa,GAAG,SAAS,EAAE,CAAC,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAW,OAAO,EAAE,EAAE,EAAqB,GAAkB,UAAU,EAAW,EAAE,EAAE,OAAO,GAAkB,SAAS,EAAW,EAAE,CAAC,GAAG,gBAAgB,GAAY,CAAC,EAAa,IAAI,KAAK,IAAI,GAAG,EAAE,OAAO,GAAG,UAAU,SAAS,GAAG,MAAM,QAAQ,UAAU,EAAE,EAAE,OAAO,GAAwB,UAAU,EAAE,EAAE,GAAG,UAAU,OAAO,EAAE,CAAC,IAAI,EAAM,MAAM,UAAU,MAAM,EAAE,QAAQ,GAAE,EAAE,GAAE,UAAU,OAAO,EAAE,GAAE,EAAM,IAAG,UAAU,IAAG,OAAO,GAAwB,CAAK,EAAE,MAAM,UAAU,mCAAmC,EAAmwE,GAAjwE,GAAY,UAAU,CAAC,gBAAgB,CAAC,EAAU,GAAS,EAAQ,CAAC,GAAG,IAAU,KAAK,OAAO,GAAG,OAAO,KAAW,YAAY,CAAC,EAAS,EAAQ,EAAE,MAAM,UAAU,+CAA+C,EAAE,IAAI,EAAU,EAAa,IAAI,EAAE,EAAa,EAAS,CAAO,EAAE,GAAc,EAAa,QAAQ,EAAQ,OAAO,EAAE,QAAQ,CAAO,GAAG,EAAQ,EAAO,EAAQ,CAAC,YAAS,eAAa,QAAQ,GAAc,QAAQ,EAAQ,OAAO,EAAE,KAAK,GAAc,QAAQ,EAAQ,IAAI,EAAE,KAAK,IAAI,EAAE,EAAK,EAAU,IAAI,CAAS,EAAE,GAAG,IAAY,OAAE,CAAC,EAAU,IAAI,EAAU,CAAO,EAAE,OAAO,IAAI,EAAK,KAAK,MAAM,GAAM,KAAK,CAAC,GAAG,EAAK,WAAW,IAAU,EAAK,eAAe,EAAa,OAAO,EAAK,EAAK,EAAK,EAAK,KAAK,EAAK,KAAK,GAAS,mBAAmB,CAAC,EAAU,GAAS,EAAQ,CAAC,GAAG,IAAU,KAAK,OAAO,IAAI,EAAU,EAAa,IAAI,EAAE,GAAc,EAAS,CAAO,EAAE,QAAQ,EAAQ,OAAO,EAAE,QAAQ,CAAO,GAAG,EAAQ,EAAO,EAAK,KAAK,EAAK,EAAU,IAAI,CAAS,EAAE,MAAM,GAAM,KAAK,CAAC,GAAG,EAAK,WAAW,IAAU,EAAK,eAAe,EAAa,CAAC,GAAG,IAAO,KAAK,EAAK,KAAK,EAAK,KAAU,QAAG,EAAK,OAAO,KAAK,EAAU,IAAI,EAAU,EAAK,IAAI,EAAO,OAAU,OAAO,CAAS,EAAE,OAAO,EAAK,EAAK,EAAK,EAAK,OAAO,aAAa,CAAC,EAAM,CAAC,GAAG,GAAO,MAAM,OAAO,EAAM,OAAO,SAAS,MAAM,UAAU,kCAAkC,EAAE,IAAI,GAAU,EAAa,IAAI,EAAE,EAAU,EAAM,KAAK,EAAK,GAAU,IAAI,CAAS,EAAE,GAAG,GAAM,KAAK,MAAM,GAAG,IAAI,EAAa,EAAU,KAAK,CAAK,EAAE,EAAK,KAAK,MAAM,GAAM,KAAK,CAAC,GAAG,EAAK,KAAK,GAAG,IAAO,KAAK,EAAK,KAAK,EAAK,KAAU,QAAG,EAAK,OAAO,KAAK,GAAU,IAAI,EAAU,EAAK,IAAI,EAAO,QAAU,OAAO,CAAS,EAAO,OAAK,EAAK,GAAG,EAAmB,EAAa,EAAK,QAAQ,EAAK,SAAS,IAAI,EAAE,OAAO,EAAK,WAAW,WAAW,GAAG,CAAC,EAAK,SAAS,KAAK,KAAK,CAAY,EAAE,MAAM,EAAI,CAAC,GAAG,OAAO,QAAQ,KAAK,OAAO,QAAQ,QAAQ,WAAW,QAAQ,MAAM,CAAG,EAAO,QAAG,EAAK,eAAe,GAAW,OAAO,EAAK,SAAS,cAAc,WAAW,EAAK,SAAS,YAAY,CAAY,EAAE,GAAG,EAAU,CAAY,EAAE,MAAM,EAAK,EAAK,KAAK,OAAO,EAAmB,EAAa,IAAI,EAAE,EAAc,EAAa,CAAC,EAAE,EAAiB,EAAa,IAAI,EAAE,CAAC,EAAa,iBAAiB,EAAE,OAAO,eAAe,GAAY,UAAU,cAAc,CAAC,MAAM,GAAY,aAAa,GAAG,SAAS,EAAE,CAAC,EAAK,OAAO,OAAO,KAAK,OAAO,OAAO,YAAY,IAAI,OAAO,eAAe,GAAY,UAAU,OAAO,YAAY,SAAS,EAAE,EAAS,qBAAqB,EAAqB,EAAS,YAAY,GAAY,EAAS,QAAQ,GAAY,EAAQ,QAAQ,GAAY,EAAQ,QAAQ,YAAY,EAAQ,QAAQ,QAAQ,GAAY,EAAQ,QAAQ,qBAAqB,EAAqB,EAAM,GAAyB,GAAW,CAAC,EAAS,IAAU,CAAC,OAAO,eAAe,EAAS,aAAa,CAAC,MAAM,EAAE,CAAC,EAAE,IAAI,EAAgB,GAA0B,EAAE,MAAM,UAAoB,EAAgB,WAAW,CAAC,WAAW,EAAE,CAAC,MAAM,EAAE,MAAM,UAAU,4CAA4C,KAAM,QAAO,EAAE,CAAC,IAAI,EAAQ,EAAa,IAAI,IAAI,EAAE,GAAG,OAAO,IAAU,UAAU,MAAM,UAAU,0DAA0D,OAAO,KAAK,OAAO,OAAO,MAAM,EAAE,OAAO,EAAQ,CAAC,EAAgB,qBAAqB,EAAY,UAAU,OAAO,EAAE,SAAS,CAAiB,EAAE,CAAC,IAAI,EAAO,OAAO,OAAO,EAAY,SAAS,EAAE,OAAO,EAAgB,YAAY,KAAK,CAAM,EAAE,EAAa,IAAI,EAAO,EAAE,EAAE,EAAO,SAAS,CAAW,CAAC,EAAO,CAAC,GAAG,EAAa,IAAI,CAAM,IAAI,GAAG,OAAO,EAAa,IAAI,EAAO,EAAE,EAAE,EAAO,cAAc,CAAC,KAAK,OAAO,CAAC,EAAE,IAAI,EAAa,IAAI,QAAiF,GAAzE,OAAO,iBAAiB,EAAY,UAAU,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,EAAK,OAAO,SAAS,YAAY,OAAO,OAAO,cAAc,SAAS,OAAO,eAAe,EAAY,UAAU,OAAO,YAAY,CAAC,aAAa,GAAG,MAAM,aAAa,CAAC,EAAE,MAAM,CAAe,CAAC,WAAW,EAAE,CAAC,EAAQ,IAAI,KAAK,EAAkB,CAAC,KAAM,OAAM,EAAE,CAAC,OAAO,EAAU,IAAI,EAAE,KAAK,EAAE,CAAC,EAAY,EAAU,IAAI,CAAC,EAAE,CAAC,IAAI,EAAQ,IAAI,QAAQ,SAAS,CAAS,CAAC,EAAW,CAAC,IAAI,EAAO,EAAQ,IAAI,CAAU,EAAE,GAAG,GAAQ,KAAK,MAAM,UAAU,8DAA8D,IAAa,KAAK,OAAO,OAAO,GAAY,EAAE,OAAO,EAAyG,GAAlG,OAAO,iBAAiB,EAAgB,UAAU,CAAC,OAAO,CAAC,WAAW,EAAE,EAAE,MAAM,CAAC,WAAW,EAAE,CAAC,CAAC,EAAK,OAAO,SAAS,YAAY,OAAO,OAAO,cAAc,SAAS,OAAO,eAAe,EAAgB,UAAU,OAAO,YAAY,CAAC,aAAa,GAAG,MAAM,iBAAiB,CAAC,EAAE,EAAS,gBAAgB,EAAgB,EAAS,YAAY,EAAY,EAAS,QAAQ,EAAgB,EAAQ,QAAQ,EAAgB,EAAQ,QAAQ,gBAAgB,EAAQ,QAAQ,QAAQ,EAAgB,EAAQ,QAAQ,YAAY,EAAY,EAAM,GAAa,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,iBAAgC,SAAO,WAAS,GAAgB,GAAG,OAAO,yBAAuB,GAAe,GAAG,yBAAuB,iBAAe,iBAAe,GAAoB,EAAE,EAAY,WAAW,aAAa,GAAyB,EAAE,YAAY,EAAgB,WAAW,iBAAiB,GAAyB,EAAE,gBAAgB,EAAc,OAAO,eAAe,cAAc,EAAE,EAAE,EAAE,YAAY,EAAK,WAAW,MAAM,EAAa,KAAK,EAAO,OAAO,EAAK,IAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,aAAa,GAAM,QAAQ,CAAC,EAAE,CAAC,MAAM,IAAI,EAAoB,CAAC,EAAO,IAAO,CAAC,GAAG,IAAc,SAAI,IAAS,MAAM,OAAO,IAAS,UAAU,EAAE,YAAY,IAAS,MAAM,IAAI,EAAqB,EAAK,cAAc,CAAM,GAAG,EAAiB,CAAC,EAAM,IAAO,CAAC,GAAG,OAAO,IAAQ,WAAW,MAAM,IAAI,EAAqB,EAAK,WAAW,CAAK,GAAG,EAAQ,QAAQ,CAAC,iBAAe,aAAa,OAAO,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,EAAS,CAAC,IAAI,EAAO,GAAG,OAAO,QAAQ,IAAI,EAAK,CAAC,GAAG,EAAO,OAAO,EAAO,GAAG,EAAS,MAAM,KAAK,CAAI,IAAI,sBAAsB,QAAQ,EAAE,CAAC,IAAI,EAAQ,EAAO,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC,EAAI,IAAM,CAAC,EAAQ,EAAI,EAAO,EAAI,EAAE,UAAQ,QAAM,GAAG,SAAS,CAAC,EAAG,CAAC,OAAO,IAAI,QAAQ,CAAC,EAAQ,IAAS,CAAC,EAAG,CAAC,KAAO,IAAO,CAAC,GAAG,EAAI,OAAO,EAAO,CAAG,EAAE,OAAO,EAAQ,GAAG,CAAI,EAAE,EAAE,GAAG,QAAQ,EAAE,CAAC,OAAO,QAAQ,EAAE,IAAI,SAAO,UAAQ,MAAM,CAAC,eAAe,CAAC,EAAG,CAAC,OAAO,aAAc,GAAe,iBAAiB,CAAC,EAAI,CAAC,OAAO,YAAY,OAAO,CAAG,EAAE,EAAE,SAAO,SAAS,CAAC,EAAG,EAAQ,CAAC,OAAO,GAAI,+BAAmC,kBAAkB,QAAQ,CAAC,EAAO,EAAS,CAAC,GAAG,IAAc,OAAE,MAAM,IAAI,EAAqB,SAAS,cAAc,CAAM,EAAE,EAAoB,EAAO,QAAQ,EAAE,EAAiB,EAAS,UAAU,EAAE,IAAI,EAAoB,GAAG,EAAO,QAAQ,eAAe,IAAI,EAAS,CAAC,EAAO,OAAO,iBAAiB,QAAQ,EAAS,CAAC,UAAU,KAAK,KAAK,IAAI,GAAwB,EAAE,CAAC,EAAE,EAAoB,IAAI,CAAC,EAAO,oBAAoB,QAAQ,CAAQ,GAAG,MAAM,CAAC,UAAU,MAAM,EAAc,EAAE,CAAC,IAAI,GAAsB,EAAqB,KAAuB,MAAM,IAA4B,QAAG,EAAqB,EAAE,GAAG,eAAe,EAAY,KAAK,QAAQ,CAAC,EAAQ,CAAC,GAAG,EAAQ,SAAS,EAAE,OAAO,EAAQ,GAAG,IAAI,EAAG,IAAI,EAAgB,EAAM,IAAI,EAAG,MAAM,EAAE,OAAO,EAAQ,QAAQ,CAAC,IAAS,CAAC,EAAoB,EAAO,SAAS,EAAE,EAAO,iBAAiB,QAAQ,EAAM,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,EAAG,OAAO,iBAAiB,QAAQ,IAAI,CAAC,EAAQ,QAAQ,CAAC,IAAS,EAAO,oBAAoB,QAAQ,CAAK,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAG,OAAO,EAAE,EAAQ,QAAQ,UAAU,OAAO,OAAO,IAAI,8BAA8B,EAAE,EAAM,GAAmB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,eAAa,yBAAuB,qBAAmB,oBAAkB,kBAAgB,cAAY,yBAAuB,yBAAuB,iBAAe,gCAA8B,sBAAoB,OAAO,EAAQ,6BAA2B,uBAAqB,GAAoB,GAAG,kBAAgB,OAAO,sBAAoB,uBAAqB,wBAAsB,mBAAiB,uBAAqB,GAAe,GAAG,qBAAmB,GAAa,GAAG,kBAAgB,sBAAmB,GAAa,EAAE,MAAM,GAAQ,CAAC,EAAE,SAAS,CAAO,CAAC,EAAM,CAAC,OAAO,KAAS,EAAM,GAAG,SAAS,EAAQ,CAAC,EAAM,CAAC,OAAO,IAAQ,IAAQ,EAAE,IAAI,EAAS,WAAW,EAAS,uDAAuD,SAAS,CAAa,CAAC,EAAM,EAAK,GAAI,CAAC,GAAG,OAAO,EAAM,IAAI,EAAM,GAAI,GAAG,OAAO,IAAQ,SAAS,CAAC,GAAG,EAAoB,EAAS,CAAK,IAAI,KAAK,MAAM,IAAI,EAAsB,EAAK,EAAM,CAAQ,EAAE,EAAM,EAAe,EAAM,CAAC,EAAE,OAAO,EAAe,EAAM,CAAI,EAAE,EAAM,IAAI,EAAgB,EAAgB,CAAC,EAAM,EAAK,GAAI,EAAuB,GAAI,IAAyB,CAAC,GAAG,OAAO,IAAQ,SAAS,MAAM,IAAI,EAAqB,EAAK,SAAS,CAAK,EAAE,GAAG,CAAC,EAAgB,CAAK,EAAE,MAAM,IAAI,EAAiB,EAAK,aAAa,CAAK,EAAE,GAAG,EAAM,IAAK,EAAM,GAAI,MAAM,IAAI,EAAiB,EAAK,MAAM,YAAa,KAAM,CAAK,EAAE,EAAE,EAAc,EAAgB,CAAC,EAAM,EAAK,GAAI,YAAY,GAAI,aAAa,CAAC,GAAG,OAAO,IAAQ,SAAS,MAAM,IAAI,EAAqB,EAAK,SAAS,CAAK,EAAE,GAAG,CAAC,EAAgB,CAAK,EAAE,MAAM,IAAI,EAAiB,EAAK,aAAa,CAAK,EAAE,GAAG,EAAM,IAAK,EAAM,GAAI,MAAM,IAAI,EAAiB,EAAK,MAAM,YAAa,KAAM,CAAK,EAAE,EAAE,EAAe,EAAgB,CAAC,EAAM,EAAK,GAAS,KAAK,CAAC,GAAG,OAAO,IAAQ,SAAS,MAAM,IAAI,EAAqB,EAAK,SAAS,CAAK,EAAE,GAAG,CAAC,EAAgB,CAAK,EAAE,MAAM,IAAI,EAAiB,EAAK,aAAa,CAAK,EAAE,IAAI,GAAI,GAAS,EAAE,EAAE,GAAI,WAAW,GAAG,EAAM,IAAK,EAAM,GAAI,MAAM,IAAI,EAAiB,EAAK,MAAM,YAAa,KAAM,CAAK,EAAE,EAAE,SAAS,CAAc,CAAC,EAAM,EAAK,CAAC,GAAG,OAAO,IAAQ,SAAS,MAAM,IAAI,EAAqB,EAAK,SAAS,CAAK,EAAE,SAAS,CAAc,CAAC,EAAM,EAAK,GAAS,OAAE,GAAI,CAAC,GAAG,OAAO,IAAQ,SAAS,MAAM,IAAI,EAAqB,EAAK,SAAS,CAAK,EAAE,GAAG,IAAK,MAAM,EAAM,IAAK,IAAK,MAAM,EAAM,KAAM,IAAK,MAAM,IAAK,OAAO,EAAY,CAAK,EAAE,MAAM,IAAI,EAAiB,EAAK,GAAG,IAAK,KAAK,MAAM,KAAM,KAAK,IAAK,MAAM,IAAK,KAAK,OAAO,KAAK,IAAK,KAAK,MAAM,KAAM,KAAK,CAAK,EAAE,IAAI,EAAc,EAAgB,CAAC,EAAM,EAAK,KAAQ,CAAC,GAAG,CAAC,EAAuB,GAAM,CAAK,EAAE,CAAC,IAAI,GAAO,mBAAmB,EAAmB,EAAkB,GAAM,CAAC,KAAI,OAAO,KAAI,SAAS,IAAI,MAAK,EAAQ,EAAC,CAAC,EAAE,IAAI,EAAE,MAAM,IAAI,EAAsB,EAAK,EAAM,EAAM,GAAG,EAAE,SAAS,CAAe,CAAC,EAAM,EAAK,CAAC,GAAG,OAAO,IAAQ,UAAU,MAAM,IAAI,EAAqB,EAAK,UAAU,CAAK,EAAE,SAAS,CAA4B,CAAC,EAAQ,EAAI,GAAa,CAAC,OAAO,GAAS,MAAM,CAAC,EAA8B,EAAQ,CAAG,EAAE,GAAa,EAAQ,GAAK,IAAI,EAAe,EAAgB,CAAC,EAAM,EAAK,GAAQ,OAAO,CAAC,IAAI,GAAW,EAA6B,GAAQ,aAAa,EAAE,EAAE,GAAc,EAA6B,GAAQ,gBAAgB,EAAE,EAAE,GAAG,CAAC,EAA6B,GAAQ,WAAW,EAAE,GAAG,IAAQ,MAAM,CAAC,IAAY,EAAa,CAAK,GAAG,OAAO,IAAQ,WAAW,CAAC,IAAe,OAAO,IAAQ,YAAY,MAAM,IAAI,EAAqB,EAAK,SAAS,CAAK,EAAE,EAAE,EAAmB,EAAgB,CAAC,EAAM,IAAO,CAAC,GAAG,GAAO,MAAM,OAAO,IAAQ,UAAU,OAAO,IAAQ,WAAW,MAAM,IAAI,EAAqB,EAAK,eAAe,CAAK,EAAE,EAAE,EAAc,EAAgB,CAAC,EAAM,EAAK,GAAU,IAAI,CAAC,GAAG,CAAC,EAAa,CAAK,EAAE,MAAM,IAAI,EAAqB,EAAK,QAAQ,CAAK,EAAE,GAAG,EAAM,OAAO,GAAU,CAAC,IAAI,GAAO,uBAAuB,KAAY,MAAM,IAAI,EAAsB,EAAK,EAAM,EAAM,GAAG,EAAE,SAAS,CAAmB,CAAC,EAAM,EAAK,CAAC,EAAc,EAAM,CAAI,EAAE,QAAQ,GAAE,EAAE,GAAE,EAAM,OAAO,KAAI,EAAe,EAAM,IAAG,GAAG,KAAQ,KAAI,EAAE,SAAS,CAAoB,CAAC,EAAM,EAAK,CAAC,EAAc,EAAM,CAAI,EAAE,QAAQ,GAAE,EAAE,GAAE,EAAM,OAAO,KAAI,EAAgB,EAAM,IAAG,GAAG,KAAQ,KAAI,EAAE,SAAS,EAAwB,CAAC,EAAM,EAAK,CAAC,EAAc,EAAM,CAAI,EAAE,QAAQ,GAAE,EAAE,GAAE,EAAM,OAAO,KAAI,CAAC,IAAI,GAAO,EAAM,IAAG,GAAY,GAAG,KAAQ,MAAK,GAAG,IAAQ,KAAK,MAAM,IAAI,EAAqB,GAAY,cAAc,EAAM,EAAE,GAAoB,GAAO,EAAW,GAAG,SAAS,EAAkB,CAAC,EAAO,EAAK,SAAS,CAAC,GAAG,EAAe,EAAO,CAAI,EAAE,GAAQ,KAAe,OAAE,CAAC,GAAG,GAAQ,EAA2B,CAAM,KAAU,OAAE,MAAM,IAAI,EAAmB,EAAO,yCAAyC,EAAE,MAAM,IAAI,EAAmB,CAAM,GAAG,IAAI,EAAe,EAAgB,CAAC,EAAO,EAAK,WAAW,CAAC,GAAG,CAAC,GAAkB,CAAM,EAAE,MAAM,IAAI,EAAqB,EAAK,CAAC,SAAS,aAAa,UAAU,EAAE,CAAM,EAAE,EAAE,SAAS,EAAgB,CAAC,EAAK,EAAS,CAAC,IAAI,GAAmB,EAAkB,CAAQ,EAAE,GAAO,EAAK,OAAO,GAAG,KAAqB,OAAO,GAAO,IAAI,EAAE,MAAM,IAAI,EAAsB,WAAW,EAAS,iCAAiC,IAAQ,EAAE,SAAS,CAAY,CAAC,EAAK,EAAK,OAAO,GAAU,GAAG,CAAC,GAAG,OAAO,IAAO,UAAU,OAAO,IAAO,UAAU,OAAO,IAAO,UAAU,EAAoB,CAAI,EAAE,SAAS,GAAG,CAAC,IAAO,CAAC,IAAO,GAAG,EAAK,OAAO,IAAO,GAAG,CAAC,GAAU,MAAM,IAAI,EAAoB,EAAK,EAAK,EAAS,EAAE,OAAO,EAAK,EAAE,IAAI,GAAoB,EAAgB,CAAC,EAAO,IAAO,CAAC,GAAG,IAAc,SAAI,IAAS,MAAM,OAAO,IAAS,UAAU,EAAE,YAAY,IAAS,MAAM,IAAI,EAAqB,EAAK,cAAc,CAAM,EAAE,EAAE,GAAiB,EAAgB,CAAC,EAAM,IAAO,CAAC,GAAG,OAAO,IAAQ,WAAW,MAAM,IAAI,EAAqB,EAAK,WAAW,CAAK,EAAE,EAAE,EAAsB,EAAgB,CAAC,EAAM,IAAO,CAAC,GAAG,OAAO,IAAQ,YAAY,EAAgB,CAAK,EAAE,MAAM,IAAI,EAAqB,EAAK,WAAW,CAAK,EAAE,EAAE,EAAkB,EAAgB,CAAC,EAAM,IAAO,CAAC,GAAG,IAAa,OAAE,MAAM,IAAI,EAAqB,EAAK,YAAY,CAAK,EAAE,EAAE,SAAS,EAAa,CAAC,EAAM,EAAK,GAAM,CAAC,GAAG,CAAC,EAAuB,GAAM,CAAK,EAAE,MAAM,IAAI,EAAqB,EAAK,KAAK,EAAmB,GAAM,GAAG,MAAM,CAAK,EAAE,IAAI,GAAgB,wDAAwD,SAAS,EAAwB,CAAC,EAAM,EAAK,CAAC,GAAG,OAAO,EAAM,KAAK,CAAC,EAAoB,GAAgB,CAAK,EAAE,MAAM,IAAI,EAAsB,EAAK,EAAM,6EAA6E,EAAE,SAAS,EAAuB,CAAC,EAAM,CAAC,GAAG,OAAO,IAAQ,SAAS,OAAO,GAAyB,EAAM,OAAO,EAAE,EAAW,QAAG,EAAa,CAAK,EAAE,CAAC,IAAI,EAAY,EAAM,OAAO,GAAO,GAAG,GAAG,IAAc,EAAE,OAAO,GAAO,QAAQ,GAAE,EAAE,GAAE,EAAY,KAAI,CAAC,IAAI,GAAK,EAAM,IAAG,GAAG,GAAyB,GAAK,OAAO,EAAE,IAAQ,GAAK,KAAI,EAAY,EAAE,IAAQ,KAAK,OAAO,GAAO,MAAM,IAAI,EAAsB,QAAQ,EAAM,6EAA6E,EAAE,EAAQ,QAAQ,CAAC,UAAQ,YAAS,gBAAc,gBAAc,sBAAoB,uBAAqB,4BAAyB,kBAAgB,iBAAe,qBAAmB,oBAAiB,oBAAiB,gBAAc,kBAAgB,iBAAe,iBAAe,gBAAc,wBAAsB,eAAa,sBAAmB,iBAAe,iBAAe,oBAAkB,iBAAc,uBAAoB,0BAAuB,EAAE,EAAM,GAAgB,GAAW,CAAC,EAAS,IAAU,CAAC,EAAQ,QAAQ,WAAW,QAAQ,EAAM,GAAc,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,sBAAoB,iBAAe,aAAW,GAAoB,EAAE,EAAa,EAAU,yBAAyB,EAAE,EAAW,EAAU,uBAAuB,EAAE,EAAY,EAAU,wBAAwB,EAAE,EAAY,EAAU,wBAAwB,EAAE,EAAa,EAAU,yBAAyB,EAAE,EAAiB,EAAU,kCAAkC,EAAE,EAAyB,EAAU,0CAA0C,EAAE,SAAS,CAAoB,CAAC,EAAI,EAAO,GAAG,CAAC,IAAI,EAAoB,MAAM,CAAC,EAAE,GAAK,OAAO,EAAI,OAAO,YAAY,OAAO,EAAI,KAAK,aAAa,CAAC,GAAQ,OAAO,EAAI,QAAQ,YAAY,OAAO,EAAI,SAAS,cAAc,CAAC,EAAI,kBAAkB,EAAoB,EAAI,kBAAkB,MAAM,IAA2B,OAAO,OAAE,EAAoB,YAAY,MAAM,CAAC,EAAI,gBAAgB,EAAI,iBAAiB,SAAS,CAAoB,CAAC,EAAI,CAAC,IAAI,EAAoB,MAAM,CAAC,EAAE,GAAK,OAAO,EAAI,QAAQ,YAAY,OAAO,EAAI,KAAK,aAAa,CAAC,EAAI,kBAAkB,EAAoB,EAAI,kBAAkB,MAAM,IAA2B,OAAO,OAAE,EAAoB,YAAY,KAAK,SAAS,CAAkB,CAAC,EAAI,CAAC,MAAM,CAAC,EAAE,GAAK,OAAO,EAAI,OAAO,YAAY,EAAI,gBAAgB,OAAO,EAAI,KAAK,YAAY,OAAO,EAAI,QAAQ,YAAY,SAAS,CAAY,CAAC,EAAI,CAAC,OAAO,IAAM,EAAI,gBAAgB,EAAI,gBAAgB,OAAO,EAAI,QAAQ,YAAY,OAAO,EAAI,KAAK,YAAY,OAAO,EAAI,OAAO,YAAY,OAAO,EAAI,KAAK,YAAY,SAAS,CAAgB,CAAC,EAAI,CAAC,MAAM,CAAC,EAAE,GAAK,CAAC,EAAa,CAAG,GAAG,OAAO,EAAI,cAAc,YAAY,OAAO,EAAI,YAAY,YAAY,OAAO,EAAI,SAAS,YAAY,SAAS,CAAgB,CAAC,EAAI,CAAC,MAAM,CAAC,EAAE,GAAK,CAAC,EAAa,CAAG,GAAG,OAAO,EAAI,YAAY,YAAY,OAAO,EAAI,QAAQ,YAAY,SAAS,CAAiB,CAAC,EAAI,CAAC,MAAM,CAAC,EAAE,GAAK,CAAC,EAAa,CAAG,GAAG,OAAO,EAAI,WAAW,UAAU,OAAO,EAAI,WAAW,UAAU,SAAS,CAAW,CAAC,EAAI,CAAC,OAAO,EAAiB,CAAG,GAAG,EAAiB,CAAG,GAAG,EAAkB,CAAG,EAAE,SAAS,CAAU,CAAC,EAAI,EAAQ,CAAC,GAAG,GAAK,KAAK,MAAM,GAAG,GAAG,IAAU,GAAG,OAAO,OAAO,EAAI,KAAuB,WAAW,GAAG,IAAU,GAAG,OAAO,OAAO,EAAI,KAAkB,WAAW,OAAO,OAAO,EAAI,KAAuB,YAAY,OAAO,EAAI,KAAkB,WAAW,SAAS,CAAW,CAAC,EAAO,CAAC,GAAG,CAAC,EAAa,CAAM,EAAE,OAAO,KAAK,IAAI,eAAe,EAAO,eAAe,GAAQ,EAAO,EAAM,GAAQ,EAAO,MAAM,CAAC,EAAE,EAAO,WAAW,EAAO,IAAe,IAAQ,MAAM,IAAa,QAAG,EAAM,WAAW,SAAS,CAAe,CAAC,EAAO,CAAC,GAAG,CAAC,EAAqB,CAAM,EAAE,OAAO,KAAK,GAAG,EAAO,gBAAgB,GAAG,MAAM,GAAG,IAAI,EAAO,EAAO,eAAe,GAAG,IAAS,MAAM,IAAc,QAAG,EAAO,QAAQ,MAAM,GAAG,GAAG,OAAO,IAAS,MAAM,IAAc,OAAO,OAAE,EAAO,SAAS,UAAU,OAAO,KAAK,OAAO,EAAO,MAAM,SAAS,CAAkB,CAAC,EAAO,EAAO,CAAC,GAAG,CAAC,EAAqB,CAAM,EAAE,OAAO,KAAK,GAAG,EAAO,mBAAmB,GAAG,MAAM,GAAG,IAAI,EAAO,EAAO,eAAe,GAAG,IAAS,MAAM,IAAc,QAAG,EAAO,QAAQ,MAAM,GAAG,GAAG,OAAO,IAAS,MAAM,IAAc,OAAO,OAAE,EAAO,YAAY,UAAU,OAAO,KAAK,MAAM,CAAC,EAAE,EAAO,UAAU,IAAS,IAAI,EAAO,QAAQ,IAAI,EAAO,SAAS,GAAG,SAAS,EAAe,CAAC,EAAO,CAAC,GAAG,CAAC,EAAqB,CAAM,EAAE,OAAO,KAAK,GAAG,EAAO,gBAAgB,GAAG,MAAM,GAAG,IAAI,EAAO,EAAO,eAAe,GAAG,CAAC,GAAQ,EAAO,QAAQ,MAAM,GAAG,GAAG,OAAO,IAAS,MAAM,IAAc,OAAO,OAAE,EAAO,SAAS,UAAU,OAAO,KAAK,OAAO,EAAO,MAAM,SAAS,EAAkB,CAAC,EAAO,EAAO,CAAC,GAAG,CAAC,EAAqB,CAAM,EAAE,OAAO,KAAK,IAAI,EAAO,EAAO,eAAe,GAAG,IAAS,MAAM,IAAc,QAAG,EAAO,QAAQ,MAAM,GAAG,GAAG,OAAO,IAAS,MAAM,IAAc,OAAO,OAAE,EAAO,cAAc,UAAU,OAAO,KAAK,MAAM,CAAC,EAAE,EAAO,YAAY,IAAS,IAAI,EAAO,QAAQ,IAAI,EAAO,SAAS,GAAG,SAAS,CAAU,CAAC,EAAO,CAAC,GAAG,GAAQ,EAAO,IAAc,KAAK,OAAO,EAAO,GAAa,GAAG,OAAO,IAAS,MAAM,IAAc,OAAO,OAAE,EAAO,YAAY,UAAU,OAAO,KAAK,GAAG,EAAY,CAAM,EAAE,MAAM,GAAG,OAAO,EAAqB,CAAM,GAAG,EAAO,UAAU,CAAC,GAAmB,CAAM,EAAE,SAAS,EAAU,CAAC,EAAO,CAAC,GAAG,GAAQ,EAAO,IAAc,KAAK,OAAO,EAAO,GAAa,GAAG,OAAO,IAAS,MAAM,IAAc,OAAO,OAAE,EAAO,YAAY,UAAU,OAAO,KAAK,GAAG,EAAY,CAAM,EAAE,MAAM,GAAG,OAAO,EAAqB,CAAM,GAAG,EAAO,UAAU,CAAC,EAAgB,CAAM,EAAE,SAAS,CAAU,CAAC,EAAO,EAAK,CAAC,GAAG,CAAC,EAAa,CAAM,EAAE,OAAO,KAAK,GAAG,EAAY,CAAM,EAAE,MAAM,GAAG,IAAI,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,YAAY,IAAI,EAAW,CAAM,EAAE,MAAM,GAAG,IAAI,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,YAAY,IAAI,GAAW,CAAM,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAiB,CAAC,EAAO,CAAC,IAAI,EAAsB,EAAuB,GAAG,CAAC,EAAa,CAAM,EAAE,OAAO,KAAK,GAAG,EAAO,gBAAgB,OAAO,EAAO,gBAAgB,OAAO,GAAuB,EAAuB,EAAO,kBAAkB,MAAM,IAA8B,OAAO,OAAE,EAAuB,WAAW,MAAM,IAA6B,OAAE,EAAsB,KAAK,SAAS,CAAiB,CAAC,EAAO,CAAC,IAAI,EAAsB,EAAuB,GAAG,CAAC,EAAa,CAAM,EAAE,OAAO,KAAK,GAAG,EAAO,gBAAgB,OAAO,EAAO,gBAAgB,OAAO,GAAuB,EAAuB,EAAO,kBAAkB,MAAM,IAA8B,OAAO,OAAE,EAAuB,WAAW,MAAM,IAA6B,OAAE,EAAsB,KAAK,SAAS,CAAQ,CAAC,EAAO,CAAC,GAAG,CAAC,EAAa,CAAM,EAAE,OAAO,KAAK,GAAG,OAAO,EAAO,SAAS,UAAU,OAAO,EAAO,OAAO,IAAI,eAAe,EAAO,eAAe,GAAQ,EAAO,GAAG,OAAO,IAAS,MAAM,IAAc,OAAO,OAAE,EAAO,UAAU,WAAW,OAAO,IAAS,MAAM,IAAc,OAAO,OAAE,EAAO,UAAU,UAAU,OAAO,IAAS,MAAM,IAAc,OAAO,OAAE,EAAO,UAAU,IAAS,MAAM,IAAc,OAAO,OAAE,EAAO,QAAQ,GAAG,OAAO,EAAO,UAAU,WAAW,EAAkB,CAAM,EAAE,OAAO,EAAO,QAAQ,OAAO,KAAK,SAAS,CAAiB,CAAC,EAAO,CAAC,OAAO,OAAO,EAAO,UAAU,WAAW,OAAO,EAAO,oBAAoB,WAAW,OAAO,EAAO,qBAAqB,WAAW,OAAO,EAAO,kBAAkB,UAAU,SAAS,CAAgB,CAAC,EAAO,CAAC,OAAO,OAAO,EAAO,WAAW,WAAW,EAAkB,CAAM,EAAE,SAAS,CAAe,CAAC,EAAO,CAAC,IAAI,EAAY,OAAO,OAAO,EAAO,aAAa,WAAW,OAAO,EAAO,UAAU,aAAa,EAAY,EAAO,OAAO,MAAM,IAAmB,OAAO,OAAE,EAAY,oBAAyB,OAAE,SAAS,CAAa,CAAC,EAAO,CAAC,GAAG,CAAC,EAAa,CAAM,EAAE,OAAO,KAAK,IAAI,eAAe,EAAO,eAAe,GAAQ,EAAO,EAAM,GAAQ,EAAO,MAAM,CAAC,GAAO,EAAiB,CAAM,GAAG,CAAC,EAAE,GAAO,EAAM,aAAa,EAAM,WAAW,EAAM,SAAS,IAAI,SAAS,CAAW,CAAC,EAAO,CAAC,IAAI,EAAqB,MAAM,CAAC,EAAE,KAAU,EAAqB,EAAO,MAAiB,MAAM,IAA4B,OAAE,EAAqB,EAAO,iBAAiB,EAAO,kBAAkB,SAAS,CAAS,CAAC,EAAO,CAAC,IAAI,EAAK,EAAM,EAAM,EAAM,EAAM,GAAmB,GAAuB,EAAuB,GAAuB,EAAuB,MAAM,CAAC,EAAE,KAAU,GAAM,GAAO,GAAO,GAAO,GAAO,GAAmB,EAAO,MAAe,MAAM,KAA0B,OAAE,GAAmB,EAAO,mBAAmB,MAAM,IAAa,OAAE,EAAM,EAAO,mBAAmB,MAAM,IAAa,OAAE,GAAO,GAAuB,EAAO,kBAAkB,MAAM,KAA8B,OAAO,OAAE,GAAuB,gBAAgB,MAAM,IAAa,OAAE,GAAO,EAAuB,EAAO,kBAAkB,MAAM,IAA8B,OAAO,OAAE,EAAuB,gBAAgB,MAAM,IAAa,OAAE,GAAO,GAAuB,EAAO,kBAAkB,MAAM,KAA8B,OAAO,OAAE,GAAuB,WAAW,MAAM,IAAY,OAAE,GAAM,EAAuB,EAAO,kBAAkB,MAAM,IAA8B,OAAO,OAAE,EAAuB,UAAU,EAAQ,QAAQ,CAAC,cAAY,eAAa,cAAY,eAAa,YAAU,aAAW,aAAW,cAAY,mBAAiB,2BAAyB,cAAY,WAAS,qBAAmB,aAAW,aAAW,uBAAqB,mBAAiB,mBAAgB,sBAAmB,oBAAkB,eAAa,cAAY,cAAW,uBAAqB,mBAAiB,kBAAgB,qBAAmB,oBAAkB,kBAAgB,mBAAiB,gBAAc,mBAAiB,EAAE,EAAM,GAAsB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,EAAQ,GAAgB,GAAG,aAAW,SAAO,GAAe,GAAG,uBAAqB,8BAA4B,GAAO,eAAa,QAAM,GAAa,GAAG,sBAAoB,mBAAiB,iBAAe,mBAAiB,GAAmB,GAAG,QAAQ,EAAS,uBAAqB,iBAAe,GAAoB,GAAG,WAAS,aAAW,uBAAqB,mBAAiB,qBAAmB,oBAAkB,aAAW,uBAAqB,oBAAiB,sBAAmB,oBAAkB,gBAAa,cAAc,EAAe,oBAAkB,GAAc,EAAE,EAAiB,SAAS,CAAS,CAAC,EAAO,CAAC,OAAO,EAAO,WAAW,OAAO,EAAO,QAAQ,WAAW,IAAI,EAAI,IAAI,GAAG,SAAS,CAAG,CAAC,EAAO,EAAQ,EAAS,CAAC,IAAI,EAAkB,EAAkB,GAAG,UAAU,SAAS,EAAE,EAAS,EAAQ,EAAQ,EAAkB,QAAG,GAAS,KAAK,EAAQ,EAAkB,OAAe,EAAQ,SAAS,EAAE,GAAG,EAAiB,EAAS,UAAU,EAAE,EAAoB,EAAQ,OAAO,gBAAgB,EAAE,EAAS,EAAK,CAAQ,EAAE,EAAiB,CAAM,GAAG,GAAiB,CAAM,EAAE,OAAO,EAAO,EAAO,EAAQ,CAAQ,EAAE,GAAG,CAAC,GAAa,CAAM,EAAE,MAAM,IAAI,EAAqB,SAAS,CAAC,iBAAiB,iBAAiB,QAAQ,EAAE,CAAM,EAAE,IAAI,GAAU,EAAkB,EAAQ,YAAY,MAAM,IAAyB,OAAE,EAAkB,EAAqB,CAAM,EAAE,GAAU,EAAkB,EAAQ,YAAY,MAAM,IAAyB,OAAE,EAAkB,EAAqB,CAAM,EAAE,EAAO,EAAO,eAAe,GAAO,EAAO,eAAe,GAAe,IAAI,CAAC,GAAG,CAAC,EAAO,SAAS,EAAS,GAAG,EAAc,EAAe,CAAM,GAAG,EAAqB,CAAM,IAAI,GAAU,EAAqB,CAAM,IAAI,EAAS,GAAiB,GAAmB,EAAO,EAAE,EAAE,EAAS,IAAI,CAAC,GAAG,GAAiB,GAAG,EAAO,UAAU,EAAc,GAAG,GAAG,IAAgB,CAAC,EAAO,UAAU,GAAU,OAAO,GAAG,CAAC,GAAU,GAAiB,EAAS,KAAK,CAAM,GAAG,GAAiB,EAAmB,EAAO,EAAE,EAAE,GAAM,IAAI,CAAC,GAAG,GAAiB,GAAG,EAAO,UAAU,EAAc,GAAG,GAAG,IAAgB,CAAC,EAAO,UAAU,GAAU,OAAO,GAAG,CAAC,GAAU,GAAiB,EAAS,KAAK,CAAM,GAAG,EAAQ,CAAC,IAAM,CAAC,EAAS,KAAK,EAAO,CAAG,GAAG,EAAO,EAAS,CAAM,EAAE,GAAQ,IAAI,CAAC,EAAO,GAAG,IAAI,EAAQ,EAAkB,CAAM,GAAG,EAAkB,CAAM,EAAE,GAAG,GAAS,OAAO,IAAU,UAAU,OAAO,EAAS,KAAK,EAAO,CAAO,EAAE,GAAG,GAAU,CAAC,IAAkB,EAAqB,EAAO,EAAE,GAAG,GAAG,CAAC,EAAmB,EAAO,EAAE,EAAE,OAAO,EAAS,KAAK,EAAO,IAAI,CAA0B,EAAE,GAAG,GAAU,CAAC,IAAkB,GAAG,CAAC,GAAmB,EAAO,EAAE,EAAE,OAAO,EAAS,KAAK,EAAO,IAAI,CAA0B,EAAE,EAAS,KAAK,CAAM,GAAG,GAAS,IAAI,CAAC,EAAO,GAAG,IAAI,EAAQ,EAAkB,CAAM,GAAG,EAAkB,CAAM,EAAE,GAAG,GAAS,OAAO,IAAU,UAAU,OAAO,EAAS,KAAK,EAAO,CAAO,EAAE,EAAS,KAAK,CAAM,GAAG,GAAU,IAAI,CAAC,EAAO,IAAI,GAAG,SAAS,CAAQ,GAAG,GAAG,EAAU,CAAM,EAAE,CAAC,GAAG,EAAO,GAAG,WAAW,CAAQ,EAAE,CAAC,EAAc,EAAO,GAAG,QAAQ,EAAO,EAAE,GAAG,EAAO,IAAI,GAAU,EAAO,OAAO,GAAG,UAAU,EAAS,EAAO,QAAG,GAAU,CAAC,EAAO,EAAO,GAAG,MAAM,EAAc,EAAE,EAAO,GAAG,QAAQ,EAAc,EAAE,GAAG,CAAC,GAAe,OAAO,EAAO,UAAU,UAAU,EAAO,GAAG,UAAU,EAAO,EAAE,GAAG,EAAO,GAAG,MAAM,EAAK,EAAE,EAAO,GAAG,SAAS,CAAQ,EAAE,EAAQ,QAAQ,GAAG,EAAO,GAAG,QAAQ,CAAO,EAAE,GAAG,EAAO,GAAG,QAAQ,EAAO,EAAE,EAAO,EAAQ,SAAS,EAAO,EAAO,QAAG,IAAS,MAAM,IAAc,QAAG,EAAO,cAAc,KAAS,MAAM,KAAc,QAAG,GAAO,cAAc,GAAG,CAAC,EAAc,EAAQ,SAAS,EAAQ,EAAO,QAAG,CAAC,IAAW,CAAC,GAAe,EAAW,CAAM,KAAK,IAAkB,EAAW,CAAM,IAAI,IAAI,EAAQ,SAAS,EAAQ,EAAO,QAAG,CAAC,IAAW,CAAC,GAAe,EAAW,CAAM,KAAK,IAAkB,EAAW,CAAM,IAAI,IAAI,EAAQ,SAAS,EAAQ,EAAO,QAAG,IAAQ,EAAO,KAAK,EAAO,QAAQ,EAAQ,SAAS,EAAQ,EAAE,IAAI,GAAQ,IAAI,CAAC,GAAG,EAAS,EAAI,EAAO,eAAe,UAAU,EAAO,EAAE,EAAO,eAAe,WAAW,CAAQ,EAAE,EAAO,eAAe,QAAQ,EAAO,EAAE,EAAO,eAAe,UAAU,EAAS,EAAE,EAAO,IAAI,EAAO,IAAI,eAAe,SAAS,CAAQ,EAAE,EAAO,eAAe,MAAM,EAAc,EAAE,EAAO,eAAe,QAAQ,EAAc,EAAE,EAAO,eAAe,SAAS,CAAQ,EAAE,EAAO,eAAe,MAAM,EAAK,EAAE,EAAO,eAAe,QAAQ,CAAO,EAAE,EAAO,eAAe,QAAQ,EAAO,GAAG,GAAG,EAAQ,QAAQ,CAAC,EAAO,CAAC,IAAI,EAAM,IAAI,CAAC,IAAI,EAAY,EAAS,GAAQ,EAAE,EAAY,KAAK,EAAO,IAAI,EAAgB,OAAE,CAAC,MAAM,EAAQ,OAAO,MAAM,CAAC,CAAC,GAAG,GAAG,EAAQ,OAAO,QAAQ,EAAQ,SAAS,CAAK,EAAM,KAAC,EAAiB,GAAkB,GAAa,EAAE,iBAAiB,IAAI,EAAW,EAAiB,EAAQ,OAAO,CAAK,EAAE,GAAiB,EAAS,EAAS,EAAK,IAAI,KAAO,CAAC,EAAW,GAAe,EAAE,GAAiB,MAAM,EAAO,EAAI,EAAE,GAAG,OAAO,GAAQ,SAAS,CAAM,CAAC,EAAO,EAAQ,EAAS,CAAC,IAAI,EAAU,GAAG,EAAM,EAAI,GAAG,EAAQ,OAAO,GAAG,EAAM,IAAI,CAAC,EAAU,GAAG,EAAS,KAAK,EAAO,IAAI,EAAgB,OAAE,CAAC,MAAM,EAAQ,OAAO,MAAM,CAAC,CAAC,GAAG,EAAQ,OAAO,QAAQ,EAAQ,SAAS,CAAK,EAAM,KAAC,EAAiB,GAAkB,GAAa,EAAE,iBAAiB,IAAI,EAAW,EAAiB,EAAQ,OAAO,CAAK,EAAE,EAAiB,EAAS,EAAS,EAAK,IAAI,KAAO,CAAC,EAAW,GAAe,EAAE,EAAiB,MAAM,EAAO,EAAI,EAAE,EAAE,IAAI,EAAW,IAAI,IAAO,CAAC,GAAG,CAAC,EAAU,EAAQ,SAAS,IAAI,EAAS,MAAM,EAAO,CAAI,CAAC,GAAG,OAAO,EAAqB,EAAO,GAAkB,QAAQ,EAAW,CAAU,EAAE,EAAI,SAAS,CAAQ,CAAC,EAAO,EAAK,CAAC,IAAI,EAAM,IAAI,EAAY,GAAG,GAAG,IAAO,KAAK,EAAK,EAAa,IAAI,EAAM,KAAQ,MAAM,IAAa,QAAG,EAAM,QAAQ,EAAgB,EAAK,QAAQ,SAAS,EAAE,EAAY,EAAK,QAAQ,OAAO,IAAI,EAAS,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAQ,EAAI,EAAO,EAAK,CAAC,IAAM,CAAC,GAAG,EAAY,EAAQ,EAAE,GAAG,EAAI,EAAO,CAAG,EAAO,OAAQ,EAAE,EAAE,EAAE,EAAQ,QAAQ,EAAI,EAAQ,QAAQ,SAAS,EAAS,EAAM,GAAgB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,EAAQ,GAAgB,GAAG,qBAAmB,OAAO,yBAAuB,cAAY,GAAe,GAAG,OAAO,GAAS,GAAoB,GAAG,eAAa,cAAY,aAAW,mBAAiB,GAAc,EAAE,EAAS,EAAQ,UAAU,EAAE,EAAW,EAAQ,YAAY,EAAE,SAAS,CAAU,CAAC,EAAI,EAAE,EAAE,CAAC,GAAG,EAAI,CAAC,GAAG,EAAI,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAI,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,GAAK,SAAS,CAAO,CAAC,EAAI,EAAG,CAAC,IAAI,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,GAAG,EAAE,GAAG,IAAI,MAAM,IAAS,QAAG,EAAE,WAAW,IAAI,MAAM,IAAS,QAAG,EAAE,UAAU,CAAC,GAAG,OAAO,IAAK,WAAW,EAAG,EAAE,OAAO,KAAK,GAAG,EAAW,EAAI,EAAE,CAAC,EAAE,EAAE,EAAE,UAAU,GAAG,GAAG,EAAE,EAAE,UAAU,GAAG,GAAG,CAAC,EAAE,YAAY,KAAK,KAAK,EAAS,QAAQ,CAAC,EAAG,CAAC,EAAS,KAAK,EAAmB,EAAG,CAAG,EAAE,CAAE,EAAE,EAAO,OAAS,KAAK,EAAI,CAAE,EAAE,OAAO,KAAK,SAAS,CAAQ,CAAC,EAAK,EAAI,EAAG,CAAC,IAAI,EAAO,GAAG,SAAS,CAAS,CAAC,EAAK,CAAC,GAAG,EAAO,OAAO,EAAO,GAAG,IAAI,eAAe,EAAE,eAAe,GAAG,EAAK,GAAG,EAAW,EAAK,EAAE,CAAC,EAAE,EAAE,EAAE,OAAO,GAAG,GAAG,EAAE,EAAE,OAAO,GAAG,GAAG,OAAO,IAAK,WAAW,EAAG,CAAI,EAAE,GAAG,EAAK,EAAQ,SAAS,EAAiB,EAAK,CAAI,EAAO,OAAQ,SAAS,EAAY,CAAI,EAAE,GAAG,CAAC,EAAK,SAAS,GAAK,KAAK,CAAS,EAAE,MAAM,EAAK,CAAC,EAAU,CAAI,GAAG,SAAS,CAAgB,CAAC,EAAK,EAAI,CAAC,EAAY,EAAK,CAAG,EAAE,EAAY,CAAI,EAAE,SAAS,CAAW,CAAC,EAAK,CAAC,IAAI,eAAe,EAAE,eAAe,GAAG,EAAK,GAAG,EAAE,EAAE,aAAa,GAAG,GAAG,EAAE,EAAE,aAAa,GAAG,GAAG,IAAI,MAAM,IAAS,QAAG,EAAE,WAAW,IAAI,MAAM,IAAS,QAAG,EAAE,UAAU,EAAK,KAAK,OAAO,EAAE,SAAS,CAAW,CAAC,EAAK,EAAI,CAAC,IAAI,eAAe,EAAE,eAAe,GAAG,EAAK,GAAG,IAAI,MAAM,IAAS,QAAG,EAAE,cAAc,IAAI,MAAM,IAAS,QAAG,EAAE,aAAa,OAAO,GAAG,EAAE,EAAE,aAAa,GAAG,GAAG,EAAE,EAAE,aAAa,GAAG,EAAK,KAAK,QAAQ,CAAG,EAAE,SAAS,CAAS,EAAE,CAAC,IAAI,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE,OAAO,GAAG,EAAE,aAAa,GAAG,EAAE,UAAU,GAAG,EAAE,QAAQ,KAAK,EAAE,aAAa,GAAG,EAAE,QAAQ,GAAG,EAAE,MAAM,EAAE,WAAW,GAAG,EAAE,WAAW,EAAE,WAAW,GAAG,GAAG,EAAE,EAAE,YAAY,GAAG,EAAE,UAAU,GAAG,EAAE,OAAO,GAAG,EAAE,aAAa,GAAG,EAAE,QAAQ,KAAK,EAAE,aAAa,GAAG,EAAE,YAAY,GAAG,EAAE,YAAY,GAAG,EAAE,MAAM,EAAE,WAAW,GAAG,EAAE,OAAO,EAAE,WAAW,GAAG,EAAE,SAAS,EAAE,WAAW,GAAG,SAAS,CAAc,CAAC,EAAO,EAAI,EAAK,CAAC,IAAI,eAAe,EAAE,eAAe,GAAG,EAAO,GAAG,IAAI,MAAM,IAAS,QAAG,EAAE,WAAW,IAAI,MAAM,IAAS,QAAG,EAAE,UAAU,OAAO,KAAK,GAAG,IAAI,MAAM,IAAS,QAAG,EAAE,aAAa,IAAI,MAAM,IAAS,QAAG,EAAE,YAAY,EAAO,QAAQ,CAAG,EAAO,QAAG,EAAI,CAAC,GAAG,EAAI,MAAM,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAI,GAAG,GAAG,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAI,GAAG,EAAK,EAAQ,SAAS,EAAY,EAAO,CAAG,EAAO,OAAY,EAAO,CAAG,GAAG,SAAS,CAAS,CAAC,EAAO,EAAG,CAAC,GAAG,OAAO,EAAO,aAAa,WAAW,OAAO,IAAI,eAAe,EAAE,eAAe,GAAG,EAAO,GAAG,EAAE,EAAE,YAAY,GAAG,GAAG,EAAE,EAAE,YAAY,GAAG,GAAG,EAAO,KAAK,EAAW,CAAE,EAAE,EAAO,cAAc,CAAU,EAAE,EAAE,OAAO,EAAQ,SAAS,EAAY,CAAM,EAAE,SAAS,CAAW,CAAC,EAAO,CAAC,IAAI,EAAO,GAAG,SAAS,CAAW,CAAC,EAAI,CAAC,GAAG,EAAO,CAAC,EAAe,EAAO,IAAM,MAAM,IAAW,OAAE,EAAI,IAAI,CAAqB,EAAE,OAAO,EAAO,GAAG,IAAI,eAAe,EAAE,eAAe,GAAG,EAAO,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,YAAY,GAAG,GAAG,EAAE,EAAE,YAAY,GAAG,GAAG,EAAE,UAAU,EAAO,KAAK,EAAS,CAAG,EAAO,QAAG,EAAI,EAAe,EAAO,EAAI,EAAE,EAAO,OAAQ,SAAS,EAAgB,CAAM,EAAE,GAAG,CAAC,EAAO,WAAW,CAAC,IAAM,CAAC,EAAQ,SAAS,EAAY,CAAG,EAAE,EAAE,MAAM,EAAI,CAAC,EAAQ,SAAS,EAAY,CAAG,GAAG,SAAS,CAAe,CAAC,EAAO,CAAC,EAAO,KAAK,CAAU,EAAE,SAAS,EAAS,CAAC,EAAO,CAAC,OAAO,IAAS,MAAM,IAAc,OAAO,OAAE,EAAO,YAAY,OAAO,EAAO,QAAQ,WAAW,SAAS,EAAe,CAAC,EAAO,CAAC,EAAO,KAAK,OAAO,EAAE,SAAS,CAAoB,CAAC,EAAO,EAAI,CAAC,EAAO,KAAK,QAAQ,CAAG,EAAE,EAAQ,SAAS,GAAgB,CAAM,EAAE,SAAS,EAAS,CAAC,EAAO,EAAI,CAAC,GAAG,CAAC,GAAQ,EAAY,CAAM,EAAE,OAAO,GAAG,CAAC,GAAK,CAAC,EAAW,CAAM,EAAE,EAAI,IAAI,EAAW,GAAG,EAAgB,CAAM,EAAE,EAAO,OAAO,KAAK,EAAO,QAAQ,CAAG,EAAO,QAAG,GAAU,CAAM,EAAE,EAAO,MAAM,EAAO,QAAG,GAAU,EAAO,GAAG,EAAE,EAAO,IAAI,MAAM,EAAO,QAAG,OAAO,EAAO,UAAU,WAAW,EAAO,QAAQ,CAAG,EAAO,QAAG,OAAO,EAAO,QAAQ,WAAW,EAAO,MAAM,EAAO,QAAG,EAAI,EAAQ,SAAS,EAAqB,EAAO,CAAG,EAAO,OAAQ,SAAS,GAAgB,CAAM,EAAE,GAAG,CAAC,EAAO,UAAU,EAAO,GAAc,GAAG,EAAQ,QAAQ,CAAC,YAAU,aAAU,UAAQ,YAAU,gBAAc,EAAE,EAAM,GAAe,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,eAAa,wBAAsB,GAAoB,GAAG,aAAa,iBAAsB,SAAS,CAAM,CAAC,EAAK,CAAC,EAAG,KAAK,KAAK,CAAI,EAAE,EAAqB,EAAO,UAAU,EAAG,SAAS,EAAE,EAAqB,EAAO,CAAE,EAAE,EAAO,UAAU,KAAK,QAAQ,CAAC,EAAK,EAAQ,CAAC,IAAI,EAAO,KAAK,SAAS,CAAM,CAAC,EAAM,CAAC,GAAG,EAAK,UAAU,EAAK,MAAM,CAAK,IAAI,IAAI,EAAO,MAAM,EAAO,MAAM,EAAE,EAAO,GAAG,OAAO,CAAM,EAAE,SAAS,CAAO,EAAE,CAAC,GAAG,EAAO,UAAU,EAAO,OAAO,EAAO,OAAO,EAAE,GAAG,EAAK,GAAG,QAAQ,CAAO,EAAE,CAAC,EAAK,WAAW,CAAC,GAAS,EAAQ,MAAM,IAAI,EAAO,GAAG,MAAM,CAAK,EAAE,EAAO,GAAG,QAAQ,CAAO,EAAE,IAAI,EAAS,GAAG,SAAS,CAAK,EAAE,CAAC,GAAG,EAAS,OAAO,EAAS,GAAG,EAAK,IAAI,EAAE,SAAS,CAAO,EAAE,CAAC,GAAG,EAAS,OAAO,GAAG,EAAS,GAAG,OAAO,EAAK,UAAU,WAAW,EAAK,QAAQ,EAAE,SAAS,CAAO,CAAC,EAAG,CAAC,GAAG,EAAQ,EAAE,EAAG,cAAc,KAAK,OAAO,IAAI,EAAE,KAAK,KAAK,QAAQ,CAAE,EAAE,EAAgB,EAAO,QAAQ,CAAO,EAAE,EAAgB,EAAK,QAAQ,CAAO,EAAE,SAAS,CAAO,EAAE,CAAC,EAAO,eAAe,OAAO,CAAM,EAAE,EAAK,eAAe,QAAQ,CAAO,EAAE,EAAO,eAAe,MAAM,CAAK,EAAE,EAAO,eAAe,QAAQ,CAAO,EAAE,EAAO,eAAe,QAAQ,CAAO,EAAE,EAAK,eAAe,QAAQ,CAAO,EAAE,EAAO,eAAe,MAAM,CAAO,EAAE,EAAO,eAAe,QAAQ,CAAO,EAAE,EAAK,eAAe,QAAQ,CAAO,EAAE,OAAO,EAAO,GAAG,MAAM,CAAO,EAAE,EAAO,GAAG,QAAQ,CAAO,EAAE,EAAK,GAAG,QAAQ,CAAO,EAAE,EAAK,KAAK,OAAO,CAAM,EAAE,GAAM,SAAS,CAAe,CAAC,EAAQ,EAAM,EAAG,CAAC,GAAG,OAAO,EAAQ,kBAAkB,WAAW,OAAO,EAAQ,gBAAgB,EAAM,CAAE,EAAE,GAAG,CAAC,EAAQ,SAAS,CAAC,EAAQ,QAAQ,GAAO,EAAQ,GAAG,EAAM,CAAE,EAAO,QAAG,EAAa,EAAQ,QAAQ,EAAM,EAAE,EAAQ,QAAQ,GAAO,QAAQ,CAAE,EAAO,OAAQ,QAAQ,GAAO,CAAC,EAAG,EAAQ,QAAQ,EAAM,EAAE,EAAQ,QAAQ,CAAC,SAAO,iBAAe,EAAE,EAAM,GAAyB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,iBAAe,GAAoB,GAAG,aAAW,SAAO,GAAe,GAAG,eAAa,cAAY,4BAA0B,GAAc,EAAE,EAAI,GAAsB,GAAG,wBAAsB,EAAM,EAAiB,EAAoB,CAAC,EAAO,IAAO,CAAC,GAAG,OAAO,IAAS,UAAU,EAAE,YAAY,GAAQ,MAAM,IAAI,EAAqB,EAAK,cAAc,CAAM,GAAG,EAAQ,QAAQ,eAAe,QAAQ,CAAC,EAAO,EAAO,CAAC,GAAG,EAAoB,EAAO,QAAQ,EAAE,CAAC,EAAa,CAAM,GAAG,CAAC,EAAY,CAAM,EAAE,MAAM,IAAI,EAAqB,SAAS,CAAC,iBAAiB,iBAAiB,QAAQ,EAAE,CAAM,EAAE,OAAO,EAAQ,QAAQ,yBAAyB,EAAO,CAAM,GAAG,EAAQ,QAAQ,yBAAyB,QAAQ,CAAC,EAAO,EAAO,CAAC,GAAG,OAAO,IAAS,UAAU,EAAE,YAAY,GAAQ,OAAO,EAAO,IAAI,EAAQ,EAAa,CAAM,EAAE,IAAI,CAAC,EAAO,QAAQ,IAAI,EAAgB,OAAE,CAAC,MAAM,EAAO,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,EAAO,GAA0B,IAAI,EAAgB,OAAE,CAAC,MAAM,EAAO,MAAM,CAAC,CAAC,GAAG,GAAG,EAAO,QAAQ,EAAQ,EAAM,KAAC,EAAiB,GAAkB,GAAa,EAAE,iBAAiB,IAAI,EAAW,EAAiB,EAAO,CAAO,EAAE,EAAI,EAAO,EAAW,EAAc,EAAE,OAAO,GAAQ,EAAM,GAAoB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,uBAAqB,iBAAe,yBAAuB,WAAW,GAAa,GAAoB,GAAG,yBAA2B,WAAS,GAAa,EAAE,EAAQ,QAAQ,KAAK,CAAC,WAAW,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,IAAI,EAAM,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,GAAG,KAAK,OAAO,EAAE,KAAK,KAAK,KAAK,EAAW,UAAK,KAAK,EAAM,KAAK,KAAK,EAAM,EAAE,KAAK,OAAO,OAAO,CAAC,EAAE,CAAC,IAAI,EAAM,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,EAAE,GAAG,KAAK,SAAS,EAAE,KAAK,KAAK,EAAM,KAAK,KAAK,EAAM,EAAE,KAAK,OAAO,KAAK,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,OAAO,IAAI,EAAI,KAAK,KAAK,KAAK,GAAG,KAAK,SAAS,EAAE,KAAK,KAAK,KAAK,KAAK,KAAU,UAAK,KAAK,KAAK,KAAK,KAAK,MAAM,EAAE,KAAK,OAAO,EAAI,KAAK,EAAE,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,EAAE,IAAI,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,KAAK,EAAI,GAAG,EAAE,KAAK,OAAO,EAAE,EAAE,QAAQ,KAAK,GAAK,EAAE,EAAE,KAAK,OAAO,EAAI,MAAM,CAAC,EAAE,CAAC,GAAG,KAAK,SAAS,EAAE,OAAO,EAAO,MAAM,CAAC,EAAE,IAAI,EAAI,EAAO,YAAY,IAAI,CAAC,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,MAAM,EAAE,EAAuB,EAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,OAAO,EAAE,EAAE,KAAK,OAAO,EAAI,OAAO,CAAC,EAAE,EAAW,CAAC,IAAI,EAAK,KAAK,KAAK,KAAK,GAAG,EAAE,EAAK,OAAO,CAAC,IAAI,EAAM,EAAK,MAAM,EAAE,CAAC,EAAE,OAAO,KAAK,KAAK,KAAK,EAAK,MAAM,CAAC,EAAE,EAAM,GAAG,IAAI,EAAK,OAAO,OAAO,KAAK,MAAM,EAAE,OAAO,EAAW,KAAK,WAAW,CAAC,EAAE,KAAK,WAAW,CAAC,EAAE,KAAK,EAAE,CAAC,OAAO,KAAK,KAAK,OAAO,EAAe,EAAE,CAAC,QAAQ,EAAE,KAAK,KAAK,EAAE,EAAE,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,CAAC,EAAE,CAAC,IAAI,EAAI,GAAG,EAAE,KAAK,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,EAAI,EAAE,KAAK,GAAG,EAAE,EAAI,OAAO,GAAK,EAAI,GAAG,EAAI,OAAW,KAAC,GAAG,IAAI,EAAI,OAAO,GAAG,GAAK,EAAI,EAAE,EAAE,EAAE,KAAK,KAAK,KAAK,EAAE,KAAU,UAAK,KAAK,KAAK,KAAK,KAAU,QAAK,EAAqB,EAAI,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,EAAqB,EAAI,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,QAAQ,MAAM,OAAO,KAAK,QAAQ,EAAE,EAAI,UAAU,CAAC,EAAE,CAAC,IAAI,EAAI,EAAO,YAAY,CAAC,EAAE,EAAO,EAAE,EAAE,KAAK,KAAK,EAAE,EAAE,EAAE,CAAC,IAAI,EAAI,EAAE,KAAK,GAAG,EAAE,EAAI,OAAO,EAAuB,EAAI,EAAI,EAAO,CAAC,EAAE,GAAG,EAAI,OAAW,KAAC,GAAG,IAAI,EAAI,OAAO,GAAG,EAAuB,EAAI,EAAI,EAAO,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,KAAK,KAAK,EAAE,KAAU,UAAK,KAAK,KAAK,KAAK,KAAU,OAAuB,EAAI,IAAI,EAAY,EAAI,OAAO,EAAI,WAAW,CAAC,EAAE,EAAO,CAAC,EAAE,KAAK,KAAK,EAAE,EAAE,KAAK,EAAI,MAAM,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,QAAQ,MAAM,OAAO,KAAK,QAAQ,EAAE,GAAK,OAAO,IAAI,4BAA4B,EAAE,CAAC,EAAE,EAAQ,CAAC,OAAO,EAAQ,KAAK,IAAI,EAAQ,MAAM,EAAE,cAAc,EAAE,CAAC,EAAE,EAAE,EAAM,GAAc,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,YAAU,mBAAiB,GAAoB,GAAG,mBAAiB,GAAmB,GAAG,yBAAuB,GAAe,EAAE,MAAM,EAA0B,MAAM,EAA+B,GAAG,SAAS,CAAiB,CAAC,EAAQ,EAAS,EAAU,CAAC,OAAO,EAAQ,eAAe,KAAK,EAAQ,cAAc,EAAS,EAAQ,GAAW,KAAK,SAAS,CAAuB,CAAC,EAAW,CAAC,OAAO,EAAW,EAA+B,EAA0B,SAAS,CAAuB,CAAC,EAAW,EAAM,CAAC,GAAG,EAAgB,EAAM,QAAQ,CAAC,EAAE,EAAW,EAA+B,EAAW,OAA0B,EAAM,SAAS,CAAgB,CAAC,EAAM,EAAQ,EAAU,EAAS,CAAC,IAAI,EAAI,EAAkB,EAAQ,EAAS,CAAS,EAAE,GAAG,GAAK,KAAK,CAAC,GAAG,CAAC,EAAgB,CAAG,GAAG,EAAI,EAAE,CAAC,IAAI,EAAK,EAAS,WAAW,IAAY,wBAAwB,MAAM,IAAI,EAAsB,EAAK,CAAG,EAAE,OAAO,EAAU,CAAG,EAAE,OAAO,EAAwB,EAAM,UAAU,EAAE,EAAQ,QAAQ,CAAC,mBAAiB,0BAAwB,yBAAuB,EAAE,EAAM,GAAoB,GAAW,CAAC,EAAS,IAAU,CAAqF,wFAAI,gBAAyB,EAAO,EAAO,OAAO,SAAS,CAAS,CAAC,EAAI,EAAI,CAAC,QAAQ,KAAO,EAAI,EAAI,GAAK,EAAI,GAAK,GAAG,EAAO,MAAM,EAAO,OAAO,EAAO,aAAa,EAAO,gBAAgB,EAAQ,QAAQ,EAAY,OAAU,EAAO,CAAQ,EAAE,EAAS,OAAO,EAAW,SAAS,CAAU,CAAC,EAAI,EAAiB,EAAO,CAAC,OAAO,EAAO,EAAI,EAAiB,CAAM,EAAE,EAAW,UAAU,OAAO,OAAO,EAAO,SAAS,EAAE,EAAU,EAAO,CAAU,EAAE,EAAW,KAAK,QAAQ,CAAC,EAAI,EAAiB,EAAO,CAAC,GAAG,OAAO,IAAM,SAAS,MAAM,UAAU,+BAA+B,EAAE,OAAO,EAAO,EAAI,EAAiB,CAAM,GAAG,EAAW,MAAM,QAAQ,CAAC,EAAK,EAAK,EAAS,CAAC,GAAG,OAAO,IAAO,SAAS,MAAM,UAAU,2BAA2B,EAAE,IAAI,EAAI,EAAO,CAAI,EAAE,GAAG,IAAY,OAAE,GAAG,OAAO,IAAW,SAAS,EAAI,KAAK,EAAK,CAAQ,EAAO,OAAI,KAAK,CAAI,EAAO,OAAI,KAAK,CAAC,EAAE,OAAO,GAAK,EAAW,YAAY,QAAQ,CAAC,EAAK,CAAC,GAAG,OAAO,IAAO,SAAS,MAAM,UAAU,2BAA2B,EAAE,OAAO,EAAO,CAAI,GAAG,EAAW,gBAAgB,QAAQ,CAAC,EAAK,CAAC,GAAG,OAAO,IAAO,SAAS,MAAM,UAAU,2BAA2B,EAAE,OAAO,EAAO,WAAW,CAAI,GAAG,EAAM,GAAuB,GAAW,CAAC,IAAW,CAAC,IAAI,EAAO,GAAoB,EAAE,OAAO,EAAW,EAAO,YAAY,QAAQ,CAAC,EAAS,CAAC,OAAO,EAAS,GAAG,EAAS,GAAU,EAAS,YAAY,OAAO,UAAU,WAAW,YAAY,YAAY,aAAa,aAAa,WAAW,YAAY,cAAc,eAAe,MAAM,MAAM,WAAW,MAAM,KAAK,SAAS,CAAkB,CAAC,EAAI,CAAC,GAAG,CAAC,EAAI,MAAM,OAAO,IAAI,EAAQ,MAAM,GAAG,OAAO,OAAS,WAAW,QAAQ,MAAM,WAAW,WAAW,YAAY,cAAc,WAAW,MAAM,cAAc,aAAa,SAAS,MAAM,aAAa,aAAa,YAAY,MAAM,OAAO,UAAY,GAAG,EAAQ,OAAO,GAAK,GAAG,GAAK,YAAY,EAAE,EAAQ,IAAI,SAAS,CAAiB,CAAC,EAAI,CAAC,IAAI,EAAK,EAAmB,CAAG,EAAE,GAAG,OAAO,IAAO,WAAW,EAAO,aAAa,GAAY,CAAC,EAAW,CAAG,GAAG,MAAM,MAAM,qBAAqB,CAAG,EAAE,OAAO,GAAM,EAAI,EAAS,cAAc,EAAc,SAAS,CAAa,CAAC,EAAS,CAAC,KAAK,SAAS,EAAkB,CAAQ,EAAE,IAAI,EAAG,OAAO,KAAK,cAAc,UAAU,KAAK,KAAK,EAAU,KAAK,IAAI,EAAS,EAAG,EAAE,UAAU,OAAO,KAAK,SAAS,EAAa,EAAG,EAAE,UAAU,SAAS,KAAK,KAAK,EAAW,KAAK,IAAI,EAAU,EAAG,EAAE,cAAc,KAAK,MAAM,EAAY,KAAK,IAAI,EAAU,OAAO,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,EAAO,YAAY,CAAE,EAAE,EAAc,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,GAAG,EAAI,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,GAAG,KAAK,SAAS,CAAC,GAAG,EAAE,KAAK,SAAS,CAAG,EAAE,IAAS,OAAE,MAAM,GAAG,EAAE,KAAK,SAAS,KAAK,SAAS,EAAO,OAAE,EAAE,GAAG,EAAE,EAAI,OAAO,OAAO,EAAE,EAAE,KAAK,KAAK,EAAI,CAAC,EAAE,KAAK,KAAK,EAAI,CAAC,EAAE,OAAO,GAAG,IAAI,EAAc,UAAU,IAAI,EAAQ,EAAc,UAAU,KAAK,EAAS,EAAc,UAAU,SAAS,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,UAAU,EAAI,OAAO,OAAO,EAAI,KAAK,KAAK,SAAS,KAAK,UAAU,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,SAAS,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,EAAI,KAAK,KAAK,SAAS,KAAK,UAAU,KAAK,SAAS,EAAE,EAAI,MAAM,EAAE,KAAK,UAAU,EAAI,QAAQ,SAAS,CAAa,CAAC,EAAK,CAAC,GAAG,GAAM,IAAI,MAAO,GAAO,QAAG,GAAM,IAAI,EAAE,MAAO,GAAO,QAAG,GAAM,IAAI,GAAG,MAAO,GAAO,QAAG,GAAM,IAAI,GAAG,MAAO,GAAE,OAAO,GAAM,IAAI,EAAE,GAAG,GAAG,SAAS,CAAmB,CAAC,EAAK,EAAI,EAAE,CAAC,IAAI,EAAE,EAAI,OAAO,EAAE,GAAG,EAAE,EAAE,MAAO,GAAE,IAAI,EAAG,EAAc,EAAI,EAAE,EAAE,GAAG,GAAI,EAAE,CAAC,GAAG,EAAG,EAAE,EAAK,SAAS,EAAG,EAAE,OAAO,EAAG,GAAG,EAAE,EAAE,GAAG,IAAK,GAAG,MAAO,GAAE,GAAG,EAAG,EAAc,EAAI,EAAE,EAAE,GAAI,EAAE,CAAC,GAAG,EAAG,EAAE,EAAK,SAAS,EAAG,EAAE,OAAO,EAAG,GAAG,EAAE,EAAE,GAAG,IAAK,GAAG,MAAO,GAAE,GAAG,EAAG,EAAc,EAAI,EAAE,EAAE,GAAI,EAAE,CAAC,GAAG,EAAG,EAAE,GAAG,IAAK,EAAE,EAAG,EAAO,OAAK,SAAS,EAAG,EAAE,OAAO,EAAG,MAAO,GAAE,SAAS,CAAmB,CAAC,EAAK,EAAI,EAAE,CAAC,IAAI,EAAI,GAAG,OAAO,IAAI,OAAO,EAAK,SAAS,EAAE,IAAG,GAAG,EAAK,SAAS,GAAG,EAAI,OAAO,EAAE,CAAC,IAAI,EAAI,GAAG,OAAO,IAAI,OAAO,EAAK,SAAS,EAAE,IAAI,GAAG,EAAK,SAAS,GAAG,EAAI,OAAO,GAAG,IAAI,EAAI,GAAG,OAAO,IAAI,OAAO,EAAK,SAAS,EAAE,MAAM,SAAS,CAAY,CAAC,EAAI,CAAC,IAAI,EAAE,KAAK,UAAU,KAAK,SAAS,EAAE,EAAoB,KAAK,EAAI,CAAC,EAAE,GAAG,IAAS,OAAE,OAAO,EAAE,GAAG,KAAK,UAAU,EAAI,OAAO,OAAO,EAAI,KAAK,KAAK,SAAS,EAAE,EAAE,KAAK,QAAQ,EAAE,KAAK,SAAS,SAAS,KAAK,SAAS,EAAE,KAAK,SAAS,EAAE,EAAI,KAAK,KAAK,SAAS,EAAE,EAAE,EAAI,MAAM,EAAE,KAAK,UAAU,EAAI,OAAO,SAAS,CAAQ,CAAC,EAAI,EAAE,CAAC,IAAI,EAAM,EAAoB,KAAK,EAAI,CAAC,EAAE,GAAG,CAAC,KAAK,SAAS,OAAO,EAAI,SAAS,OAAO,CAAC,EAAE,KAAK,UAAU,EAAM,IAAI,EAAI,EAAI,QAAQ,EAAM,KAAK,UAAU,OAAO,EAAI,KAAK,KAAK,SAAS,EAAE,CAAG,EAAE,EAAI,SAAS,OAAO,EAAE,CAAG,EAAE,SAAS,CAAO,CAAC,EAAI,CAAC,IAAI,EAAE,GAAK,EAAI,OAAO,KAAK,MAAM,CAAG,EAAE,GAAG,GAAG,KAAK,SAAS,OAAO,EAAE,IAAI,OAAO,EAAE,SAAS,CAAS,CAAC,EAAI,EAAE,CAAC,IAAI,EAAI,OAAO,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,EAAI,SAAS,UAAU,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,EAAE,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,OAAO,GAAG,MAAM,OAAO,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,GAAG,EAAI,EAAI,OAAO,GAAG,KAAK,SAAS,GAAG,EAAI,EAAI,OAAO,GAAG,EAAE,MAAM,EAAE,EAAE,EAAE,OAAO,EAAE,OAAO,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,KAAK,SAAS,GAAG,EAAI,EAAI,OAAO,GAAG,EAAI,SAAS,UAAU,EAAE,EAAI,OAAO,CAAC,EAAE,SAAS,CAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,GAAK,EAAI,OAAO,KAAK,MAAM,CAAG,EAAE,GAAG,GAAG,KAAK,SAAS,CAAC,IAAI,EAAI,KAAK,UAAU,KAAK,SAAS,OAAO,EAAE,KAAK,SAAS,SAAS,UAAU,EAAE,CAAG,EAAE,OAAO,EAAE,SAAS,CAAU,CAAC,EAAI,EAAE,CAAC,IAAI,GAAG,EAAI,OAAO,GAAG,EAAE,GAAG,IAAI,EAAE,OAAO,EAAI,SAAS,SAAS,CAAC,EAAE,GAAG,KAAK,SAAS,EAAE,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,KAAK,SAAS,GAAG,EAAI,EAAI,OAAO,GAAQ,UAAK,SAAS,GAAG,EAAI,EAAI,OAAO,GAAG,KAAK,SAAS,GAAG,EAAI,EAAI,OAAO,GAAG,OAAO,EAAI,SAAS,SAAS,EAAE,EAAI,OAAO,CAAC,EAAE,SAAS,CAAS,CAAC,EAAI,CAAC,IAAI,EAAE,GAAK,EAAI,OAAO,KAAK,MAAM,CAAG,EAAE,GAAG,GAAG,KAAK,SAAS,OAAO,EAAE,KAAK,SAAS,SAAS,SAAS,EAAE,EAAE,KAAK,QAAQ,EAAE,OAAO,EAAE,SAAS,CAAW,CAAC,EAAI,CAAC,OAAO,EAAI,SAAS,KAAK,QAAQ,EAAE,SAAS,CAAS,CAAC,EAAI,CAAC,OAAO,GAAK,EAAI,OAAO,KAAK,MAAM,CAAG,EAAE,IAAI,EAAM,GAAa,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,EAAQ,GAAgB,GAAG,uBAAqB,sBAAoB,kBAAgB,GAAoB,GAAG,yBAA2B,uBAAqB,0BAAwB,GAAe,EAAE,MAAM,SAAS,CAAI,CAAC,EAAS,EAAS,EAAK,CAAC,IAAI,EAAS,GAAG,OAAO,IAAW,UAAU,aAAoB,EAAO,OAAO,IAAI,EAAS,CAAC,WAAW,MAAM,EAAK,IAAI,EAAE,CAAC,KAAK,KAAK,CAAQ,EAAE,KAAK,KAAK,IAAI,EAAE,CAAC,EAAE,IAAI,EAAQ,GAAG,GAAU,EAAS,GAAqB,EAAQ,GAAG,EAAS,EAAS,GAAqB,EAAO,QAAG,GAAU,EAAS,GAAgB,EAAQ,GAAG,EAAS,EAAS,GAAgB,EAAO,WAAM,IAAI,EAAqB,WAAW,CAAC,UAAU,EAAE,CAAQ,EAAE,IAAI,EAAS,IAAI,EAAS,CAAC,WAAW,GAAG,cAAc,KAAK,CAAI,CAAC,EAAE,EAAQ,GAAG,EAAS,MAAM,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAQ,EAAQ,GAAG,EAAK,GAAG,EAAS,SAAS,QAAQ,CAAC,EAAM,EAAG,CAAC,EAAqB,EAAM,CAAK,EAAE,IAAI,EAAQ,SAAS,EAAG,CAAK,EAAE,CAAC,IAAI,EAAQ,SAAS,EAAG,GAAG,CAAK,CAAC,GAAG,eAAe,CAAK,CAAC,EAAM,CAAC,IAAI,EAAS,IAAa,QAAG,IAAQ,KAAK,EAAS,OAAO,EAAS,QAAQ,WAAW,GAAG,GAAU,EAAS,CAAC,IAAI,QAAM,QAAM,MAAM,EAAS,MAAM,CAAK,EAAE,GAAG,MAAM,EAAM,EAAK,OAAO,GAAG,OAAO,EAAS,SAAS,WAAW,CAAC,IAAI,SAAO,MAAM,EAAS,OAAO,EAAE,MAAM,GAAO,eAAe,CAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,QAAM,QAAM,EAAQ,MAAM,EAAS,KAAK,EAAE,EAAS,KAAK,EAAE,GAAG,EAAK,EAAS,KAAK,IAAI,EAAM,KAAC,IAAI,EAAI,GAAO,OAAO,EAAM,OAAO,WAAW,MAAM,EAAM,EAAM,GAAG,IAAM,KAAK,MAAM,EAAQ,GAAG,IAAI,EAA4B,QAAG,EAAS,KAAK,CAAG,EAAE,SAAc,OAAQ,IAAI,MAAM,EAAI,CAAC,EAAS,QAAQ,CAAG,EAAE,OAAO,OAAO,EAAS,EAAQ,QAAQ,EAAK,EAAM,GAAiB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,EAAQ,GAAgB,GAAG,wBAAsB,kBAAgB,cAAY,iBAAe,yBAAuB,aAAW,uBAAqB,QAAQ,EAAS,UAAQ,qBAAmB,sBAAoB,OAAO,GAAS,GAAoB,EAAE,EAAQ,QAAQ,GAAS,GAAS,cAAc,GAAc,IAAI,aAAa,kBAAuB,SAAO,mBAAiB,GAAe,GAAG,yBAA2B,kBAAgB,GAAyB,EAAE,EAAI,GAAsB,EAAE,EAAM,GAAa,EAAE,SAAS,SAAS,CAAC,IAAK,CAAC,EAAM,EAAG,EAAE,EAAW,GAAoB,EAAE,EAAY,GAAgB,GAAG,oBAAiB,4BAAyB,GAAc,GAAG,qBAAmB,OAAO,wBAAqB,6BAA2B,mBAAiB,4BAA0B,sCAAoC,cAAY,GAAe,GAAG,kBAAgB,GAAmB,EAAE,EAAQ,EAAQ,SAAS,GAAG,iBAAe,GAAuB,EAAE,EAAK,GAAa,EAAE,EAAqB,GAAS,UAAU,EAAO,SAAS,EAAE,EAAqB,GAAS,CAAM,EAAE,IAAI,EAAI,IAAI,IAAI,kBAAgB,EAAY,EAAY,EAAE,EAAO,EAAE,EAAY,EAAE,EAAS,EAAE,EAAa,GAAG,GAAM,GAAG,GAAc,GAAG,EAAiB,IAAI,GAAmB,IAAI,EAAiB,IAAI,GAAc,KAAK,GAAW,KAAK,EAAa,KAAK,EAAW,KAAK,GAAQ,MAAM,GAAc,MAAM,GAAiB,MAAM,GAAa,OAAO,EAAa,OAAO,SAAS,CAAoB,CAAC,EAAI,CAAC,MAAM,CAAC,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,KAAK,MAAM,KAAO,GAAG,GAAG,CAAC,EAAM,CAAC,GAAG,EAAM,KAAK,OAAO,EAAS,UAAK,OAAO,CAAC,EAAI,EAAE,EAAuB,GAAc,UAAU,CAAC,WAAW,EAAqB,CAAW,EAAE,MAAM,EAAqB,CAAM,EAAE,WAAW,EAAqB,CAAW,EAAE,QAAQ,EAAqB,CAAQ,EAAE,YAAY,EAAqB,CAAY,EAAE,KAAK,EAAqB,EAAK,EAAE,aAAa,EAAqB,EAAa,EAAE,gBAAgB,EAAqB,CAAgB,EAAE,kBAAkB,EAAqB,EAAkB,EAAE,gBAAgB,EAAqB,CAAgB,EAAE,aAAa,EAAqB,EAAa,EAAE,UAAU,EAAqB,EAAU,EAAE,YAAY,EAAqB,CAAY,EAAE,UAAU,EAAqB,CAAU,EAAE,OAAO,EAAqB,EAAO,EAAE,aAAa,EAAqB,EAAa,EAAE,gBAAgB,EAAqB,EAAgB,EAAE,YAAY,EAAqB,EAAY,EAAE,YAAY,EAAqB,CAAY,CAAC,CAAC,EAAE,SAAS,EAAa,CAAC,EAAQ,EAAO,GAAS,CAAC,GAAG,OAAO,KAAW,UAAU,GAAS,aAAkB,GAAe,EAAE,GAAG,KAAK,MAAM,GAAW,EAAa,EAAa,GAAM,GAAS,EAAQ,WAAW,KAAK,OAAO,EAAY,GAAG,IAAU,GAAS,EAAQ,mBAAmB,KAAK,OAAO,EAAY,GAAG,KAAK,cAAc,EAAQ,GAAiB,KAAK,EAAQ,wBAAwB,EAAQ,EAAE,GAAwB,EAAE,EAAE,KAAK,OAAO,IAAI,EAAW,KAAK,OAAO,EAAE,KAAK,MAAM,CAAC,EAAE,KAAK,QAAQ,KAAK,KAAK,GAAS,KAAK,GAAS,EAAQ,YAAY,GAAG,KAAK,OAAO,CAAC,GAAW,GAAG,GAAS,EAAQ,cAAc,GAAG,KAAK,OAAO,CAAC,EAAa,GAAG,KAAK,QAAQ,KAAK,KAAK,gBAAgB,GAAS,EAAQ,iBAAiB,OAAO,KAAK,kBAAkB,KAAK,KAAK,QAAQ,KAAK,KAAK,SAAS,KAAK,GAAS,EAAQ,SAAS,KAAK,QAAQ,IAAI,EAAc,EAAQ,QAAQ,EAAE,KAAK,SAAS,EAAQ,SAAS,SAAS,EAAQ,CAAC,EAAQ,CAAC,GAAG,EAAE,gBAAgB,IAAU,OAAO,IAAI,GAAS,CAAO,EAAE,IAAI,EAAS,gBAAgB,GAAe,EAAE,GAAG,KAAK,eAAe,IAAI,GAAc,EAAQ,KAAK,CAAQ,EAAE,EAAQ,CAAC,GAAG,OAAO,EAAQ,OAAO,WAAW,KAAK,MAAM,EAAQ,KAAK,GAAG,OAAO,EAAQ,UAAU,WAAW,KAAK,SAAS,EAAQ,QAAQ,GAAG,OAAO,EAAQ,YAAY,WAAW,KAAK,WAAW,EAAQ,UAAU,GAAG,EAAQ,QAAQ,CAAC,EAAS,EAAe,EAAQ,OAAO,IAAI,EAAE,EAAO,KAAK,KAAK,CAAO,EAAE,EAAY,UAAU,KAAK,IAAI,CAAC,GAAG,KAAK,eAAe,aAAa,GAAc,KAAK,KAAK,cAAc,EAAE,EAAE,GAAS,UAAU,QAAQ,EAAY,QAAQ,GAAS,UAAU,WAAW,EAAY,UAAU,GAAS,UAAU,SAAS,QAAQ,CAAC,EAAI,EAAG,CAAC,EAAG,CAAG,GAAG,GAAS,UAAU,EAAG,wBAAwB,QAAQ,CAAC,EAAI,CAAC,KAAK,QAAQ,CAAG,GAAG,GAAS,UAAU,GAAoB,QAAQ,EAAE,CAAC,IAAI,EAAM,GAAG,CAAC,KAAK,UAAU,EAAM,KAAK,cAAc,KAAK,IAAI,EAAW,KAAK,QAAQ,CAAK,EAAE,OAAO,IAAI,EAAS,CAAC,EAAQ,KAAS,EAAI,KAAK,CAAC,KAAM,IAAK,KAAM,EAAM,GAAO,EAAG,EAAE,EAAQ,IAAI,CAAC,CAAC,GAAG,GAAS,UAAU,KAAK,QAAQ,CAAC,EAAM,EAAS,CAAC,OAAO,GAAiB,KAAK,EAAM,EAAS,EAAE,GAAG,GAAS,UAAU,QAAQ,QAAQ,CAAC,EAAM,EAAS,CAAC,OAAO,GAAiB,KAAK,EAAM,EAAS,EAAE,GAAG,SAAS,EAAgB,CAAC,EAAO,EAAM,GAAS,GAAW,CAAC,EAAM,mBAAmB,CAAK,EAAE,IAAI,GAAM,EAAO,eAAe,GAAI,IAAI,GAAM,MAAM,KAAe,GAAG,GAAG,OAAO,IAAQ,UAAU,GAAG,GAAS,IAAU,GAAM,gBAAgB,GAAM,WAAW,GAAS,GAAG,IAAY,GAAM,SAAS,EAAM,EAAO,KAAK,EAAM,EAAQ,EAAE,SAAS,GAAM,QAAQ,EAAO,OAAM,EAAO,KAAK,EAAM,EAAQ,EAAE,GAAS,GAAQ,QAAG,aAAiB,EAAO,GAAS,GAAQ,QAAG,EAAO,cAAc,CAAK,EAAE,EAAM,EAAO,oBAAoB,CAAK,EAAE,GAAS,GAAQ,QAAG,GAAO,KAAK,GAAI,IAAI,GAAqB,QAAQ,CAAC,SAAS,SAAS,YAAY,EAAE,CAAK,EAAE,GAAG,GAAI,EAAe,EAAO,EAAG,EAAO,QAAG,IAAQ,KAAK,GAAM,OAAO,CAAC,EAAS,GAAW,EAAO,EAAK,EAAO,SAAI,GAAM,MAAM,KAAe,GAAG,GAAO,EAAM,OAAO,EAAE,GAAG,GAAW,IAAI,GAAM,MAAM,KAAe,EAAE,EAAe,EAAO,IAAI,CAAkC,EAAO,QAAG,GAAM,WAAW,GAAM,QAAQ,MAAM,GAAQ,QAAS,EAAO,GAAM,EAAM,EAAE,EAAO,QAAG,GAAM,MAAM,EAAe,EAAO,IAAI,CAAyB,EAAO,QAAG,GAAM,WAAW,GAAM,QAAQ,MAAM,GAAQ,QAAG,GAAM,OAAO,CAAC,EAAS,GAAM,SAAS,CAAC,GAAS,GAAG,EAAM,GAAM,QAAQ,MAAM,CAAK,EAAE,GAAM,YAAY,EAAM,SAAS,EAAE,GAAS,EAAO,GAAM,EAAM,EAAE,EAAO,QAAc,EAAO,EAAK,EAAO,QAAS,EAAO,GAAM,EAAM,EAAE,EAAO,QAAG,CAAC,GAAW,GAAM,OAAO,CAAC,EAAS,GAAc,EAAO,EAAK,EAAE,MAAM,CAAC,GAAM,QAAQ,GAAM,OAAO,GAAM,eAAe,GAAM,SAAS,GAAG,SAAS,EAAQ,CAAC,EAAO,EAAM,GAAM,GAAW,CAAC,GAAG,EAAM,SAAS,EAAM,SAAS,GAAG,CAAC,EAAM,MAAM,EAAO,cAAc,MAAM,EAAE,EAAE,CAAC,IAAI,EAAM,MAAM,MAAoB,EAAE,EAAM,kBAAkB,MAAM,EAAO,OAAM,kBAAkB,KAAK,EAAM,YAAY,GAAG,EAAO,KAAK,OAAO,EAAK,EAAM,KAAC,GAAG,EAAM,QAAQ,EAAM,WAAW,EAAE,GAAM,OAAO,GAAW,EAAM,OAAO,QAAQ,EAAK,EAAO,OAAM,OAAO,KAAK,EAAK,EAAE,IAAI,EAAM,MAAM,MAAiB,EAAE,GAAa,CAAM,EAAE,GAAc,EAAO,CAAK,EAAE,GAAS,UAAU,SAAS,QAAQ,EAAE,CAAC,IAAI,EAAM,KAAK,eAAe,OAAO,EAAM,KAAW,IAAI,EAAM,UAAU,IAAI,GAAS,UAAU,YAAY,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAQ,IAAI,EAAc,CAAG,EAAE,KAAK,eAAe,QAAQ,EAAQ,KAAK,eAAe,SAAS,KAAK,eAAe,QAAQ,SAAS,IAAI,GAAO,KAAK,eAAe,OAAO,GAAQ,GAAG,QAAQ,MAAQ,GAAO,IAAS,EAAQ,MAAM,EAAI,EAAE,GAAG,GAAO,MAAM,EAAE,KAAU,GAAG,GAAO,KAAK,EAAO,EAAE,OAAO,KAAK,eAAe,OAAO,GAAQ,OAAO,MAAM,IAAI,GAAQ,WAAW,SAAS,EAAuB,CAAC,EAAE,CAAC,GAAG,EAAE,GAAQ,MAAM,IAAI,EAAiB,OAAO,UAAU,CAAC,EAAO,SAAI,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,IAAI,GAAG,IAAI,OAAO,EAAE,SAAS,EAAa,CAAC,EAAE,EAAM,CAAC,GAAG,GAAG,GAAG,EAAM,SAAS,GAAG,EAAM,MAAM,MAAO,GAAE,IAAI,EAAM,MAAM,KAAe,EAAE,MAAO,GAAE,GAAG,EAAY,CAAC,EAAE,CAAC,GAAG,EAAM,SAAS,EAAM,OAAO,OAAO,EAAM,OAAO,MAAM,EAAE,OAAO,OAAO,EAAM,OAAO,GAAG,GAAG,EAAM,OAAO,OAAO,EAAE,OAAO,EAAM,MAAM,EAAM,OAAO,EAAE,GAAS,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAM,OAAO,CAAC,EAAE,IAAS,OAAE,EAAE,IAAS,QAAG,CAAC,EAAgB,CAAC,EAAE,EAAE,EAAe,EAAE,EAAE,EAAE,IAAI,EAAM,KAAK,eAAe,GAAM,EAAE,GAAG,EAAE,EAAM,cAAc,EAAM,cAAc,GAAwB,CAAC,EAAE,GAAG,IAAI,EAAE,EAAM,OAAO,CAAC,EAAiB,GAAG,IAAI,GAAG,EAAM,gBAAgB,EAAM,gBAAgB,EAAE,EAAM,QAAQ,EAAM,cAAc,EAAM,OAAO,IAAI,EAAM,OAAO,CAAC,GAAG,EAAM,qBAAqB,EAAM,OAAO,EAAM,KAAK,EAAE,EAAM,SAAS,GAAG,EAAM,MAAM,GAAY,IAAI,EAAO,QAAa,IAAI,EAAE,OAAO,KAAK,GAAG,EAAE,GAAc,EAAE,CAAK,EAAE,IAAI,GAAG,EAAM,MAAM,CAAC,GAAG,EAAM,SAAS,EAAE,GAAY,IAAI,EAAE,OAAO,KAAK,IAAI,IAAQ,EAAM,MAAM,MAAiB,EAAE,GAAG,EAAM,gBAAgB,EAAM,EAAE,EAAM,SAAS,GAAG,EAAM,OAAO,EAAE,EAAM,cAAc,GAAO,GAAG,EAAM,6BAA6B,EAAM,EAAE,GAAG,EAAM,OAAO,EAAM,SAAS,EAAM,WAAW,EAAM,SAAS,CAAC,EAAM,YAAY,GAAO,GAAG,EAAM,iCAAiC,EAAM,EAAO,QAAG,GAAO,CAAC,GAAG,EAAM,SAAS,EAAE,EAAM,OAAO,EAAS,GAAM,EAAM,SAAS,EAAE,EAAM,OAAO,GAAc,GAAG,CAAC,KAAK,MAAM,EAAM,aAAa,EAAE,MAAM,GAAI,CAAC,EAAe,KAAK,EAAG,EAAE,GAAG,EAAM,OAAO,CAAC,GAAM,CAAC,EAAM,QAAQ,EAAE,GAAc,GAAM,CAAK,EAAE,IAAI,GAAI,GAAG,EAAE,EAAE,GAAI,GAAS,EAAE,CAAK,EAAO,QAAI,KAAK,GAAG,KAAM,KAAK,EAAM,aAAa,EAAM,QAAQ,EAAM,cAAc,EAAE,EAAO,QAAG,EAAM,QAAQ,EAAE,EAAM,gBAAgB,EAAM,kBAAkB,MAAM,EAAO,OAAM,kBAAkB,KAAK,GAAG,EAAM,SAAS,EAAE,CAAC,GAAG,CAAC,EAAM,MAAM,EAAM,aAAa,GAAG,GAAG,KAAQ,GAAG,EAAM,MAAM,GAAY,IAAI,EAAE,GAAG,KAAM,MAAM,CAAC,EAAM,cAAc,CAAC,EAAM,aAAa,EAAM,YAAY,GAAG,KAAK,KAAK,OAAO,EAAG,EAAE,OAAO,IAAK,SAAS,EAAU,CAAC,EAAO,EAAM,CAAC,GAAG,EAAM,YAAY,EAAE,EAAM,MAAM,OAAO,GAAG,EAAM,QAAQ,CAAC,IAAI,GAAM,EAAM,QAAQ,IAAI,EAAE,GAAG,IAAO,GAAM,OAAO,EAAM,OAAO,KAAK,EAAK,EAAE,EAAM,QAAQ,EAAM,WAAW,EAAE,GAAM,OAAO,GAAG,EAAM,MAAM,GAAG,EAAM,KAAK,GAAa,CAAM,EAAO,OAAM,aAAa,GAAG,EAAM,gBAAgB,GAAG,GAAc,CAAM,EAAE,SAAS,EAAY,CAAC,EAAO,CAAC,IAAI,EAAM,EAAO,eAAe,GAAG,EAAM,eAAe,EAAM,aAAa,EAAM,eAAe,EAAE,EAAM,aAAa,GAAG,CAAC,EAAM,gBAAgB,EAAM,eAAe,EAAM,OAAO,EAAE,EAAM,gBAAgB,GAAG,EAAQ,SAAS,GAAc,CAAM,EAAE,SAAS,EAAa,CAAC,EAAO,CAAC,IAAI,EAAM,EAAO,eAAe,GAAG,EAAM,gBAAgB,EAAM,UAAU,EAAM,OAAO,EAAM,KAAK,EAAE,CAAC,EAAM,WAAW,CAAC,EAAM,UAAU,EAAM,QAAQ,EAAM,OAAO,EAAO,KAAK,UAAU,EAAE,EAAM,gBAAgB,GAAG,EAAM,aAAa,CAAC,EAAM,SAAS,CAAC,EAAM,OAAO,EAAM,QAAQ,EAAM,cAAc,GAAK,CAAM,EAAE,SAAS,EAAa,CAAC,EAAO,EAAM,CAAC,GAAG,CAAC,EAAM,aAAa,EAAM,YAAY,EAAM,YAAY,GAAG,EAAQ,SAAS,GAAe,EAAO,CAAK,EAAE,SAAS,EAAc,CAAC,EAAO,EAAM,CAAC,MAAM,CAAC,EAAM,SAAS,CAAC,EAAM,QAAQ,EAAM,OAAO,EAAM,eAAe,EAAM,SAAS,EAAM,SAAS,GAAG,CAAC,IAAI,GAAI,EAAM,OAAO,GAAG,EAAM,sBAAsB,EAAE,EAAO,KAAK,CAAC,EAAE,KAAM,EAAM,OAAO,MAAM,EAAM,YAAY,GAAG,GAAS,UAAU,MAAM,QAAQ,CAAC,EAAE,CAAC,MAAM,IAAI,EAA2B,SAAS,GAAG,GAAS,UAAU,KAAK,QAAQ,CAAC,EAAK,EAAS,CAAC,IAAI,GAAI,KAAK,GAAM,KAAK,eAAe,GAAG,GAAM,MAAM,SAAS,GAAG,GAAG,CAAC,GAAM,gBAAgB,GAAM,gBAAgB,GAAG,GAAM,kBAAkB,IAAI,EAAQ,GAAM,kBAAkB,CAAC,GAAM,iBAAiB,EAAE,CAAC,CAAC,EAAE,GAAM,MAAM,KAAK,CAAI,EAAE,EAAM,wBAAwB,GAAM,MAAM,OAAO,CAAQ,EAAE,IAAI,IAAO,CAAC,GAAU,EAAS,MAAM,KAAK,IAAO,EAAQ,QAAQ,IAAO,EAAQ,OAAO,GAAM,GAAO,GAAG,GAAM,WAAW,EAAQ,SAAS,EAAK,EAAO,QAAI,KAAK,MAAM,EAAK,EAAE,EAAK,GAAG,SAAS,EAAQ,EAAE,SAAS,EAAQ,CAAC,GAAS,GAAW,CAAC,GAAG,EAAM,UAAU,EAAE,KAAW,IAAK,GAAG,IAAY,GAAW,aAAa,GAAG,GAAW,WAAW,GAAG,GAAQ,GAAG,SAAS,EAAK,EAAE,CAAC,EAAM,OAAO,EAAE,EAAK,IAAI,EAAE,IAAI,GAAQ,GAAU,GAAG,SAAS,EAAO,EAAE,CAAC,GAAG,EAAM,SAAS,EAAE,EAAK,eAAe,QAAQ,EAAO,EAAE,EAAK,eAAe,SAAS,EAAQ,EAAE,GAAQ,EAAK,eAAe,QAAQ,EAAO,EAAE,GAAG,EAAK,eAAe,QAAQ,EAAO,EAAE,EAAK,eAAe,SAAS,EAAQ,EAAE,GAAI,eAAe,MAAM,EAAK,EAAE,GAAI,eAAe,MAAM,EAAM,EAAE,GAAI,eAAe,OAAO,EAAM,EAAE,GAAU,GAAG,IAAS,GAAM,oBAAoB,CAAC,EAAK,gBAAgB,EAAK,eAAe,WAAW,GAAQ,EAAE,SAAS,EAAK,EAAE,CAAC,GAAG,CAAC,GAAU,CAAC,GAAG,GAAM,MAAM,SAAS,GAAG,GAAM,MAAM,KAAK,EAAK,EAAM,8BAA8B,CAAC,EAAE,GAAM,kBAAkB,EAAK,GAAM,gBAAgB,GAAQ,QAAG,GAAM,MAAM,OAAO,GAAG,GAAM,MAAM,SAAS,CAAI,EAAE,EAAM,8BAA8B,GAAM,kBAAkB,IAAI,EAAE,GAAM,kBAAkB,IAAI,CAAI,EAAE,GAAI,MAAM,EAAE,GAAG,CAAC,GAAQ,GAAQ,GAAY,GAAI,CAAI,EAAE,EAAK,GAAG,QAAQ,EAAO,EAAE,GAAI,GAAG,OAAO,EAAM,EAAE,SAAS,EAAM,CAAC,GAAM,CAAC,EAAM,QAAQ,EAAE,IAAI,GAAI,EAAK,MAAM,EAAK,EAAE,GAAG,EAAM,aAAa,EAAG,EAAE,KAAM,GAAG,GAAM,EAAE,SAAS,EAAO,CAAC,GAAG,CAAC,GAAG,EAAM,UAAU,EAAE,EAAE,GAAO,EAAE,EAAK,eAAe,QAAQ,EAAO,EAAE,EAAK,cAAc,OAAO,IAAI,EAAE,CAAC,IAAI,GAAE,EAAK,gBAAgB,EAAK,eAAe,GAAG,IAAG,CAAC,GAAE,aAAa,EAAe,EAAK,EAAE,EAAO,OAAK,KAAK,QAAQ,EAAE,GAAG,EAAgB,EAAK,QAAQ,EAAO,EAAE,SAAS,EAAO,EAAE,CAAC,EAAK,eAAe,SAAS,EAAQ,EAAE,GAAO,EAAE,EAAK,KAAK,QAAQ,EAAO,EAAE,SAAS,EAAQ,EAAE,CAAC,EAAM,UAAU,EAAE,EAAK,eAAe,QAAQ,EAAO,EAAE,GAAO,EAAE,EAAK,KAAK,SAAS,EAAQ,EAAE,SAAS,EAAM,EAAE,CAAC,EAAM,QAAQ,EAAE,GAAI,OAAO,CAAI,EAAE,GAAG,EAAK,KAAK,OAAO,EAAG,EAAE,EAAK,oBAAoB,GAAG,GAAM,EAAO,QAAG,CAAC,GAAM,QAAQ,EAAM,aAAa,EAAE,GAAI,OAAO,EAAE,OAAO,GAAM,SAAS,EAAW,CAAC,EAAI,EAAK,CAAC,OAAO,QAAQ,EAAE,CAAC,IAAI,GAAM,EAAI,eAAe,GAAG,GAAM,oBAAoB,EAAK,EAAM,cAAc,CAAC,EAAE,GAAM,kBAAkB,KAAU,QAAG,GAAM,gBAAgB,EAAM,cAAc,GAAM,kBAAkB,IAAI,EAAE,GAAM,kBAAkB,OAAO,CAAI,EAAE,IAAI,CAAC,GAAM,mBAAmB,GAAM,kBAAkB,OAAO,IAAI,EAAI,cAAc,MAAM,EAAE,EAAI,OAAO,GAAG,GAAS,UAAU,OAAO,QAAQ,CAAC,EAAK,CAAC,IAAI,EAAM,KAAK,eAAe,GAAW,CAAC,WAAW,EAAE,EAAE,GAAG,EAAM,MAAM,SAAS,EAAE,OAAO,KAAK,GAAG,CAAC,EAAK,CAAC,IAAI,GAAM,EAAM,MAAM,EAAM,MAAM,CAAC,EAAE,KAAK,MAAM,EAAE,QAAQ,GAAE,EAAE,GAAE,GAAM,OAAO,KAAI,GAAM,IAAG,KAAK,SAAS,KAAK,CAAC,WAAW,EAAE,CAAC,EAAE,OAAO,KAAK,IAAI,GAAM,EAAsB,EAAM,MAAM,CAAI,EAAE,GAAG,KAAQ,GAAG,OAAO,KAAK,GAAG,EAAM,MAAM,OAAO,GAAM,CAAC,EAAE,EAAM,MAAM,SAAS,EAAE,KAAK,MAAM,EAAE,OAAO,EAAK,KAAK,SAAS,KAAK,EAAU,EAAE,MAAM,GAAS,UAAU,GAAG,QAAQ,CAAC,EAAG,EAAG,CAAC,IAAI,GAAI,EAAO,UAAU,GAAG,KAAK,KAAK,EAAG,CAAE,EAAE,GAAM,KAAK,eAAe,GAAG,IAAK,QAAQ,GAAG,GAAM,kBAAkB,KAAK,cAAc,UAAU,EAAE,EAAE,GAAM,UAAU,GAAG,KAAK,OAAO,EAAO,QAAG,IAAK,YAAY,GAAG,CAAC,GAAM,YAAY,CAAC,GAAM,mBAAmB,GAAG,GAAM,kBAAkB,GAAM,aAAa,GAAG,GAAM,QAAQ,GAAG,GAAM,gBAAgB,GAAG,EAAM,cAAc,GAAM,OAAO,GAAM,OAAO,EAAE,GAAM,OAAO,GAAa,IAAI,EAAO,QAAG,CAAC,GAAM,QAAQ,EAAQ,SAAS,GAAiB,IAAI,GAAG,OAAO,IAAK,GAAS,UAAU,YAAY,GAAS,UAAU,GAAG,GAAS,UAAU,eAAe,QAAQ,CAAC,EAAG,EAAG,CAAC,IAAI,GAAI,EAAO,UAAU,eAAe,KAAK,KAAK,EAAG,CAAE,EAAE,GAAG,IAAK,WAAW,EAAQ,SAAS,GAAwB,IAAI,EAAE,OAAO,IAAK,GAAS,UAAU,IAAI,GAAS,UAAU,eAAe,GAAS,UAAU,mBAAmB,QAAQ,CAAC,EAAG,CAAC,IAAI,EAAI,EAAO,UAAU,mBAAmB,MAAM,KAAK,SAAS,EAAE,GAAG,IAAK,YAAY,IAAU,OAAE,EAAQ,SAAS,GAAwB,IAAI,EAAE,OAAO,GAAK,SAAS,EAAuB,CAAC,EAAK,CAAC,IAAI,EAAM,EAAK,eAAe,GAAG,EAAM,kBAAkB,EAAK,cAAc,UAAU,EAAE,EAAE,EAAM,iBAAiB,EAAM,KAAW,GAAG,EAAM,QAAQ,GAAQ,QAAG,EAAK,cAAc,MAAM,EAAE,EAAE,EAAK,OAAO,EAAO,QAAG,CAAC,EAAM,kBAAkB,EAAM,QAAQ,KAAK,SAAS,EAAgB,CAAC,EAAK,CAAC,EAAM,0BAA0B,EAAE,EAAK,KAAK,CAAC,EAAE,GAAS,UAAU,OAAO,QAAQ,EAAE,CAAC,IAAI,EAAM,KAAK,eAAe,GAAG,CAAC,EAAM,QAAQ,EAAM,QAAQ,EAAE,EAAM,QAAQ,CAAC,EAAM,kBAAkB,GAAO,KAAK,CAAK,EAAE,OAAO,EAAM,GAAS,GAAG,MAAM,SAAS,EAAM,CAAC,EAAO,EAAM,CAAC,GAAG,CAAC,EAAM,gBAAgB,EAAM,gBAAgB,GAAG,EAAQ,SAAS,GAAQ,EAAO,CAAK,EAAE,SAAS,EAAO,CAAC,EAAO,EAAM,CAAC,GAAG,EAAM,SAAS,EAAM,OAAO,EAAE,CAAC,EAAM,QAAQ,EAAO,KAAK,CAAC,EAAE,GAAG,EAAM,gBAAgB,GAAG,EAAO,KAAK,QAAQ,EAAE,GAAK,CAAM,EAAE,EAAM,SAAS,CAAC,EAAM,QAAQ,EAAO,KAAK,CAAC,EAAE,GAAS,UAAU,MAAM,QAAQ,EAAE,CAAC,GAAG,EAAM,wBAAwB,KAAK,eAAe,OAAO,EAAE,KAAK,eAAe,UAAU,GAAG,EAAM,OAAO,EAAE,KAAK,eAAe,QAAQ,GAAG,KAAK,KAAK,OAAO,EAAE,OAAO,KAAK,eAAe,GAAS,GAAG,MAAM,SAAS,EAAI,CAAC,EAAO,CAAC,IAAI,EAAM,EAAO,eAAe,EAAM,OAAO,EAAM,OAAO,EAAE,MAAM,EAAM,SAAS,EAAO,KAAK,IAAI,OAAO,GAAS,UAAU,KAAK,QAAQ,CAAC,EAAO,CAAC,IAAI,EAAO,GAAG,EAAO,GAAG,OAAO,CAAC,KAAQ,CAAC,GAAG,CAAC,KAAK,KAAK,EAAK,GAAG,EAAO,MAAM,EAAO,GAAG,EAAO,MAAM,EAAE,EAAE,EAAO,GAAG,MAAM,IAAI,CAAC,KAAK,KAAK,IAAI,EAAE,EAAE,EAAO,GAAG,QAAQ,CAAC,KAAM,CAAC,EAAe,KAAK,EAAG,EAAE,EAAE,EAAO,GAAG,QAAQ,IAAI,CAAC,KAAK,QAAQ,EAAE,EAAE,EAAO,GAAG,UAAU,IAAI,CAAC,KAAK,QAAQ,EAAE,EAAE,KAAK,MAAM,IAAI,CAAC,GAAG,GAAQ,EAAO,OAAO,EAAO,GAAG,EAAO,OAAO,GAAG,IAAI,GAAW,EAAW,CAAM,EAAE,QAAQ,GAAE,EAAE,GAAE,GAAW,OAAO,KAAI,CAAC,IAAI,GAAE,GAAW,IAAG,GAAG,KAAK,MAAU,QAAG,OAAO,EAAO,MAAK,WAAW,KAAK,IAAG,EAAO,IAAG,KAAK,CAAM,EAAE,OAAO,MAAM,GAAS,UAAU,GAAqB,QAAQ,EAAE,CAAC,OAAO,GAAsB,IAAI,GAAG,GAAS,UAAU,SAAS,QAAQ,CAAC,EAAQ,CAAC,GAAG,IAAe,OAAE,EAAe,EAAQ,SAAS,EAAE,OAAO,GAAsB,KAAK,CAAO,GAAG,SAAS,EAAqB,CAAC,EAAO,EAAQ,CAAC,GAAG,OAAO,EAAO,OAAO,WAAW,EAAO,GAAS,KAAK,EAAO,CAAC,WAAW,EAAE,CAAC,EAAE,IAAI,GAAK,GAAoB,EAAO,CAAO,EAAE,OAAO,GAAK,OAAO,EAAO,GAAK,eAAe,EAAmB,CAAC,EAAO,EAAQ,CAAC,IAAI,GAAS,EAAI,SAAS,EAAI,CAAC,GAAQ,CAAC,GAAG,OAAO,EAAO,GAAS,EAAE,GAAS,EAAS,QAAS,GAAQ,EAAO,GAAG,WAAW,EAAI,EAAE,IAAI,GAAM,GAAQ,EAAI,EAAO,CAAC,SAAS,EAAE,EAAE,CAAC,KAAM,CAAC,GAAM,GAAI,EAAmB,GAAM,EAAG,EAAE,KAAK,GAAS,EAAE,GAAS,EAAI,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,GAAM,EAAO,UAAU,KAAK,EAAO,KAAK,EAAE,GAAG,KAAQ,KAAK,MAAM,GAAW,QAAG,GAAM,MAAM,GAAW,QAAG,KAAQ,KAAK,OAAY,WAAM,IAAI,EAAS,EAAI,GAAG,MAAM,GAAI,CAAC,MAAM,GAAM,EAAmB,GAAM,EAAG,EAAE,UAAM,CAAQ,IAAI,KAAQ,IAAU,MAAM,IAAe,OAAO,OAAE,EAAQ,mBAAmB,MAAM,KAAa,QAAG,EAAO,eAAe,aAAa,EAAY,UAAU,EAAO,IAAI,EAAO,OAAO,IAAI,WAAW,EAAI,EAAE,GAAQ,GAAG,EAAuB,GAAS,UAAU,CAAC,SAAS,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,eAAe,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,IAAI,CAAC,EAAE,WAAW,CAAC,EAAE,cAAc,CAAC,EAAE,YAAY,GAAG,CAAC,EAAI,CAAC,GAAG,KAAK,eAAe,KAAK,eAAe,SAAS,CAAC,CAAC,EAAI,EAAE,gBAAgB,CAAC,UAAU,KAAK,WAAW,GAAG,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,eAAe,YAAY,EAAE,gBAAgB,CAAC,UAAU,KAAK,WAAW,GAAG,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,eAAe,WAAW,KAAK,KAAK,eAAe,WAAW,KAAK,eAAe,UAAU,CAAC,KAAK,eAAe,YAAY,EAAE,sBAAsB,CAAC,UAAU,KAAK,WAAW,GAAG,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,eAAe,cAAc,EAAE,eAAe,CAAC,UAAU,KAAK,WAAW,GAAG,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,gBAAgB,KAAK,eAAe,OAAO,EAAE,gBAAgB,CAAC,UAAU,KAAK,WAAW,GAAG,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,eAAe,SAAS,IAAI,QAAQ,CAAC,EAAM,CAAC,GAAG,KAAK,eAAe,KAAK,eAAe,QAAQ,EAAM,EAAE,eAAe,CAAC,UAAU,KAAK,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,OAAO,EAAE,mBAAmB,CAAC,UAAU,KAAK,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,WAAW,GAAG,EAAE,iBAAiB,CAAC,UAAU,KAAK,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,SAAS,KAAK,EAAE,QAAQ,CAAC,UAAU,KAAK,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,QAAQ,KAAK,EAAE,OAAO,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,OAAO,GAAG,EAAE,UAAU,CAAC,UAAU,KAAK,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,UAAU,IAAI,GAAG,CAAC,EAAM,CAAC,GAAG,CAAC,KAAK,eAAe,OAAO,KAAK,eAAe,UAAU,EAAM,EAAE,cAAc,CAAC,UAAU,KAAK,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,WAAW,GAAG,CAAC,CAAC,EAAE,EAAuB,GAAc,UAAU,CAAC,WAAW,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,MAAM,OAAO,EAAE,OAAO,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,KAAW,IAAI,GAAG,CAAC,EAAM,CAAC,KAAK,GAAS,CAAC,CAAC,EAAM,CAAC,CAAC,EAAE,GAAS,UAAU,GAAS,SAAS,EAAQ,CAAC,EAAE,EAAM,CAAC,GAAG,EAAM,SAAS,EAAE,OAAO,KAAK,IAAI,GAAI,GAAG,EAAM,WAAW,GAAI,EAAM,OAAO,MAAM,EAAO,QAAG,CAAC,GAAG,GAAG,EAAM,OAAO,CAAC,GAAG,EAAM,QAAQ,GAAI,EAAM,OAAO,KAAK,EAAE,EAAO,QAAG,EAAM,OAAO,SAAS,EAAE,GAAI,EAAM,OAAO,MAAM,EAAO,QAAI,EAAM,OAAO,OAAO,EAAM,MAAM,EAAE,EAAM,OAAO,MAAM,EAAO,QAAI,EAAM,OAAO,QAAQ,EAAE,EAAM,OAAO,EAAE,OAAO,GAAI,SAAS,EAAW,CAAC,EAAO,CAAC,IAAI,EAAM,EAAO,eAAe,GAAG,EAAM,cAAc,EAAM,UAAU,EAAE,CAAC,EAAM,WAAW,EAAM,MAAM,GAAG,EAAQ,SAAS,GAAc,EAAM,CAAM,EAAE,SAAS,EAAa,CAAC,EAAM,EAAO,CAAC,GAAG,EAAM,gBAAgB,EAAM,WAAW,EAAM,MAAM,EAAE,CAAC,EAAM,SAAS,CAAC,EAAM,cAAc,CAAC,EAAM,YAAY,EAAM,SAAS,GAAG,GAAG,EAAM,WAAW,GAAG,EAAO,KAAK,KAAK,EAAE,EAAO,UAAU,EAAO,gBAAgB,GAAG,EAAQ,SAAS,GAAc,CAAM,EAAO,QAAG,EAAM,YAAY,CAAC,IAAI,GAAO,EAAO,eAAe,GAAG,CAAC,IAAQ,GAAO,cAAc,GAAO,UAAU,GAAO,WAAW,IAAI,EAAO,QAAQ,IAAI,SAAS,EAAa,CAAC,EAAO,CAAC,GAAG,EAAO,UAAU,CAAC,EAAO,eAAe,CAAC,EAAO,UAAU,EAAO,IAAI,EAAE,GAAS,KAAK,QAAQ,CAAC,EAAS,EAAK,CAAC,OAAO,EAAK,GAAS,EAAS,CAAI,GAAG,IAAI,GAAmB,SAAS,EAAc,EAAE,CAAC,GAAG,KAA0B,OAAE,GAAmB,CAAC,EAAE,OAAO,GAAmB,GAAS,QAAQ,QAAQ,CAAC,EAAe,EAAQ,CAAC,OAAO,GAAe,EAAE,oCAAoC,EAAe,CAAO,GAAG,GAAS,MAAM,QAAQ,CAAC,EAAe,EAAQ,CAAC,OAAO,GAAe,EAAE,oCAAoC,EAAe,CAAO,GAAG,GAAS,KAAK,QAAQ,CAAC,EAAI,EAAQ,CAAC,IAAI,GAAK,GAAsB,OAAO,IAAI,GAAS,CAAC,YAAY,IAAM,GAAsB,EAAI,sBAAsB,MAAM,KAA6B,OAAE,GAAsB,EAAI,cAAc,MAAM,KAAY,OAAE,GAAK,MAAM,EAAQ,OAAO,CAAC,GAAI,GAAS,CAAC,EAAY,UAAU,EAAI,EAAG,EAAE,GAAS,EAAG,EAAE,CAAC,EAAE,KAAK,CAAG,GAAG,EAAM,GAAiB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,EAAQ,GAAgB,GAAG,sBAAoB,MAAM,EAAO,qCAAmC,uBAAqB,yBAAuB,uBAAqB,6BAA2B,OAAO,EAAQ,qBAAmB,GAAoB,EAAE,EAAQ,QAAQ,EAAS,EAAS,cAAc,EAAc,IAAI,aAAa,iBAAsB,EAAO,GAAe,EAAE,QAAQ,wBAA0B,EAAY,GAAgB,GAAG,kBAAgB,GAAyB,GAAG,mBAAiB,2BAAyB,GAAc,GAAG,uBAAqB,6BAA2B,wBAAsB,yBAAuB,uBAAqB,+BAA4B,0BAAuB,6BAA2B,yBAAsB,GAAe,EAAE,OAAO,kBAAgB,EAAY,EAAqB,EAAS,UAAU,EAAO,SAAS,EAAE,EAAqB,EAAS,CAAM,EAAE,SAAS,CAAG,EAAE,EAAE,IAAI,EAAY,EAAQ,aAAa,EAAE,SAAS,CAAa,CAAC,EAAQ,EAAO,GAAS,CAAC,GAAG,OAAO,KAAW,UAAU,GAAS,aAAkB,GAAe,EAAE,GAAG,KAAK,WAAW,CAAC,EAAE,GAAS,EAAQ,YAAY,GAAS,KAAK,WAAW,KAAK,YAAY,CAAC,EAAE,GAAS,EAAQ,oBAAoB,KAAK,cAAc,EAAQ,EAAiB,KAAK,EAAQ,wBAAwB,EAAQ,EAAE,EAAwB,EAAE,EAAE,KAAK,YAAY,GAAG,KAAK,UAAU,GAAG,KAAK,OAAO,GAAG,KAAK,MAAM,GAAG,KAAK,SAAS,GAAG,KAAK,UAAU,GAAG,IAAI,GAAS,CAAC,EAAE,GAAS,EAAQ,gBAAgB,IAAI,KAAK,cAAc,CAAC,GAAS,KAAK,gBAAgB,GAAS,EAAQ,iBAAiB,OAAO,KAAK,OAAO,EAAE,KAAK,QAAQ,GAAG,KAAK,OAAO,EAAE,KAAK,KAAK,GAAG,KAAK,iBAAiB,GAAG,KAAK,QAAQ,EAAQ,KAAU,OAAE,CAAM,EAAE,KAAK,QAAQ,KAAK,KAAK,SAAS,EAAE,KAAK,mBAAmB,KAAK,EAAY,IAAI,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,GAAG,KAAK,YAAY,GAAG,KAAK,aAAa,GAAG,KAAK,UAAU,CAAC,GAAS,EAAQ,YAAY,GAAG,KAAK,YAAY,CAAC,GAAS,EAAQ,cAAc,GAAG,KAAK,QAAQ,KAAK,KAAK,OAAO,GAAG,KAAK,aAAa,GAAG,KAAK,GAAa,CAAC,EAAE,SAAS,CAAW,CAAC,EAAM,CAAC,EAAM,SAAS,CAAC,EAAE,EAAM,cAAc,EAAE,EAAM,WAAW,GAAG,EAAM,QAAQ,GAAG,EAAc,UAAU,UAAU,QAAQ,EAAE,CAAC,OAAO,EAAoB,KAAK,SAAS,KAAK,aAAa,GAAG,EAAqB,EAAc,UAAU,uBAAuB,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,SAAS,OAAO,KAAK,cAAc,CAAC,EAAE,SAAS,CAAQ,CAAC,EAAQ,CAAC,IAAI,EAAS,gBAAgB,GAAe,EAAE,GAAG,CAAC,GAAU,CAAC,EAAmC,EAAS,IAAI,EAAE,OAAO,IAAI,EAAS,CAAO,EAAE,GAAG,KAAK,eAAe,IAAI,EAAc,EAAQ,KAAK,CAAQ,EAAE,EAAQ,CAAC,GAAG,OAAO,EAAQ,QAAQ,WAAW,KAAK,OAAO,EAAQ,MAAM,GAAG,OAAO,EAAQ,SAAS,WAAW,KAAK,QAAQ,EAAQ,OAAO,GAAG,OAAO,EAAQ,UAAU,WAAW,KAAK,SAAS,EAAQ,QAAQ,GAAG,OAAO,EAAQ,QAAQ,WAAW,KAAK,OAAO,EAAQ,MAAM,GAAG,OAAO,EAAQ,YAAY,WAAW,KAAK,WAAW,EAAQ,UAAU,GAAG,EAAQ,OAAO,EAAe,EAAQ,OAAO,IAAI,EAAE,EAAO,KAAK,KAAK,CAAO,EAAE,EAAY,UAAU,KAAK,IAAI,CAAC,IAAI,GAAM,KAAK,eAAe,GAAG,CAAC,GAAM,QAAQ,EAAY,KAAK,EAAK,EAAE,EAAY,KAAK,EAAK,EAAE,EAAE,EAAqB,EAAS,EAAkB,CAAC,UAAU,KAAK,MAAM,QAAQ,CAAC,EAAO,CAAC,GAAG,EAAmC,KAAK,CAAM,EAAE,MAAM,GAAG,GAAG,OAAO,EAAS,MAAM,GAAG,OAAO,GAAQ,EAAO,0BAA0B,EAAc,CAAC,EAAE,EAAS,UAAU,KAAK,QAAQ,EAAE,CAAC,EAAe,KAAK,IAAI,CAAsB,GAAG,SAAS,CAAM,CAAC,EAAO,EAAM,GAAS,GAAG,CAAC,IAAI,GAAM,EAAO,eAAe,GAAG,OAAO,KAAW,WAAW,GAAG,GAAS,GAAS,GAAM,gBAAoB,KAAC,GAAG,CAAC,GAAS,GAAS,GAAM,gBAAqB,QAAG,KAAW,UAAU,CAAC,EAAO,WAAW,EAAQ,EAAE,MAAM,IAAI,GAAqB,EAAQ,EAAE,GAAG,OAAO,KAAK,WAAW,GAAG,EAAI,GAAG,IAAQ,KAAK,MAAM,IAAI,GAA4B,QAAG,CAAC,GAAM,WAAW,GAAG,OAAO,IAAQ,UAAU,GAAG,GAAM,gBAAgB,GAAG,EAAM,EAAO,KAAK,EAAM,EAAQ,EAAE,GAAS,SAAc,QAAG,aAAiB,EAAO,GAAS,SAAc,QAAG,EAAO,cAAc,CAAK,EAAE,EAAM,EAAO,oBAAoB,CAAK,EAAE,GAAS,SAAc,WAAM,IAAI,EAAqB,QAAQ,CAAC,SAAS,SAAS,YAAY,EAAE,CAAK,EAAE,IAAI,GAAI,GAAG,GAAM,OAAO,GAAI,IAAI,EAAgC,QAAG,GAAM,UAAU,GAAI,IAAI,EAAqB,OAAO,EAAE,GAAG,GAAI,OAAO,EAAQ,SAAS,GAAG,EAAG,EAAE,EAAe,EAAO,GAAI,EAAE,EAAE,GAAI,OAAO,GAAM,YAAY,EAAc,EAAO,GAAM,EAAM,GAAS,EAAE,EAAE,EAAS,UAAU,MAAM,QAAQ,CAAC,EAAM,EAAS,GAAG,CAAC,OAAO,EAAO,KAAK,EAAM,EAAS,EAAE,IAAI,IAAI,EAAS,UAAU,KAAK,QAAQ,EAAE,CAAC,KAAK,eAAe,UAAU,EAAS,UAAU,OAAO,QAAQ,EAAE,CAAC,IAAI,EAAM,KAAK,eAAe,GAAG,EAAM,QAAQ,GAAG,EAAM,SAAS,CAAC,EAAM,QAAQ,EAAY,KAAK,CAAK,IAAI,EAAS,UAAU,mBAAmB,QAAQ,CAAC,EAAS,CAAC,GAAG,OAAO,IAAW,SAAS,EAAS,EAA2B,CAAQ,EAAE,GAAG,CAAC,EAAO,WAAW,CAAQ,EAAE,MAAM,IAAI,GAAqB,CAAQ,EAAE,OAAO,KAAK,eAAe,gBAAgB,EAAS,MAAM,SAAS,CAAa,CAAC,EAAO,EAAM,GAAM,GAAS,GAAS,CAAC,IAAI,GAAI,EAAM,WAAW,EAAE,GAAM,OAAO,EAAM,QAAQ,GAAI,IAAI,EAAI,EAAM,OAAO,EAAM,cAAc,GAAG,CAAC,EAAI,EAAM,UAAU,GAAG,GAAG,EAAM,SAAS,EAAM,QAAQ,EAAM,SAAS,CAAC,EAAM,YAAY,CAAC,GAAG,EAAM,SAAS,KAAK,CAAC,SAAM,YAAS,WAAQ,CAAC,EAAE,EAAM,YAAY,KAAW,SAAS,EAAM,WAAW,GAAG,GAAG,EAAM,SAAS,KAAW,EAAI,EAAM,QAAQ,GAAQ,OAAM,SAAS,GAAI,EAAM,QAAQ,GAAS,EAAM,QAAQ,GAAG,EAAM,KAAK,GAAG,EAAO,OAAO,GAAM,GAAS,EAAM,OAAO,EAAE,EAAM,KAAK,GAAG,OAAO,GAAK,CAAC,EAAM,SAAS,CAAC,EAAM,UAAU,SAAS,CAAO,CAAC,EAAO,EAAM,GAAO,GAAI,GAAM,GAAS,EAAG,CAAC,GAAG,EAAM,SAAS,GAAI,EAAM,QAAQ,EAAG,EAAM,QAAQ,GAAG,EAAM,KAAK,GAAG,EAAM,UAAU,EAAM,QAAQ,IAAI,EAAqB,OAAO,CAAC,EAAO,QAAG,GAAO,EAAO,QAAQ,GAAM,EAAM,OAAO,EAAO,OAAO,OAAO,GAAM,GAAS,EAAM,OAAO,EAAE,EAAM,KAAK,GAAG,SAAS,CAAY,CAAC,EAAO,EAAM,GAAG,GAAG,CAAC,EAAE,EAAM,UAAU,GAAG,EAAE,EAAE,EAAY,CAAK,EAAE,EAAe,EAAO,EAAE,EAAE,SAAS,CAAO,CAAC,EAAO,EAAG,CAAC,IAAI,GAAM,EAAO,eAAe,GAAK,GAAM,KAAK,GAAG,GAAM,QAAQ,GAAG,OAAO,KAAK,WAAW,CAAC,EAAe,EAAO,IAAI,CAAqB,EAAE,OAAO,GAAG,GAAM,QAAQ,GAAG,GAAM,QAAQ,KAAK,GAAM,QAAQ,GAAM,SAAS,GAAM,SAAS,EAAE,EAAG,CAAC,GAAG,EAAG,MAAM,CAAC,GAAM,QAAQ,GAAM,QAAQ,EAAG,GAAG,EAAO,gBAAgB,CAAC,EAAO,eAAe,QAAQ,EAAO,eAAe,QAAQ,EAAG,GAAG,GAAK,EAAQ,SAAS,EAAa,EAAO,GAAM,EAAG,EAAE,EAAO,OAAa,EAAO,GAAM,EAAG,EAAE,EAAM,KAAC,GAAG,GAAM,SAAS,OAAO,GAAM,cAAc,EAAY,EAAO,EAAK,EAAE,GAAG,GAAK,GAAG,GAAM,qBAAqB,MAAM,GAAM,mBAAmB,KAAK,GAAG,GAAM,mBAAmB,QAAa,QAAM,mBAAmB,CAAC,MAAM,EAAE,MAAG,SAAO,QAAK,EAAE,EAAQ,SAAS,EAAe,GAAM,kBAAkB,EAAO,OAAW,EAAO,GAAM,EAAE,EAAE,GAAG,SAAS,CAAc,EAAE,SAAO,QAAM,SAAM,OAAI,CAAC,OAAO,EAAM,mBAAmB,KAAK,EAAW,EAAO,EAAM,GAAM,EAAE,EAAE,SAAS,CAAU,CAAC,EAAO,EAAM,GAAM,GAAG,CAAC,GAAG,CAAC,EAAM,QAAQ,CAAC,EAAO,WAAW,EAAM,SAAS,GAAG,EAAM,UAAU,EAAM,UAAU,GAAG,EAAO,KAAK,OAAO,EAAE,MAAM,MAAS,EAAE,EAAM,YAAY,GAAG,EAAE,GAAG,EAAM,UAAU,EAAY,CAAK,EAAE,EAAY,EAAO,CAAK,EAAE,SAAS,CAAW,CAAC,EAAM,CAAC,GAAG,EAAM,QAAQ,OAAO,QAAQ,GAAE,EAAM,cAAc,GAAE,EAAM,SAAS,OAAO,EAAE,GAAE,CAAC,IAAI,EAAe,IAAI,SAAM,YAAU,EAAM,SAAS,IAAG,EAAI,EAAM,WAAW,EAAE,GAAM,OAAO,EAAM,QAAQ,EAAI,GAAU,EAAe,EAAM,WAAW,MAAM,IAAsB,OAAE,EAAe,IAAI,EAAqB,OAAO,CAAC,EAAE,IAAI,GAAkB,EAAM,GAAa,OAAO,CAAC,EAAE,QAAQ,GAAE,EAAE,GAAE,GAAkB,OAAO,KAAI,CAAC,IAAI,GAAgB,GAAkB,KAAI,GAAgB,EAAM,WAAW,MAAM,KAAuB,OAAE,GAAgB,IAAI,EAAqB,KAAK,CAAC,EAAE,EAAY,CAAK,EAAE,SAAS,CAAW,CAAC,EAAO,EAAM,CAAC,GAAG,EAAM,QAAQ,EAAM,kBAAkB,EAAM,WAAW,CAAC,EAAM,YAAY,OAAO,IAAI,YAAS,iBAAc,eAAY,EAAM,GAAe,GAAS,OAAO,GAAc,GAAG,CAAC,GAAe,OAAO,IAAI,EAAE,GAAc,GAAG,EAAM,iBAAiB,GAAG,GAAe,GAAG,EAAO,QAAQ,CAAC,EAAM,WAAW,GAAe,EAAE,IAAI,EAAS,EAAM,QAAQ,EAAI,CAAC,KAAM,CAAC,QAAQ,GAAE,EAAE,GAAE,GAAS,OAAO,EAAE,GAAE,GAAS,IAAG,SAAS,EAAG,GAAG,GAAO,EAAM,SAAS,IAAI,EAAE,GAAS,EAAoB,GAAS,CAAC,EAAE,GAAO,WAAW,EAAM,WAAW,EAAQ,EAAO,EAAM,GAAG,EAAM,OAAO,GAAO,GAAG,CAAQ,EAAE,EAAY,CAAK,EAAM,KAAC,EAAE,CAAC,IAAI,QAAM,YAAS,aAAU,GAAS,GAAG,GAAS,KAAK,KAAK,IAAI,GAAI,GAAW,EAAE,EAAM,OAAO,EAAQ,EAAO,EAAM,GAAG,GAAI,EAAM,GAAS,EAAQ,QAAQ,EAAE,GAAS,QAAQ,CAAC,EAAM,SAAS,GAAG,IAAI,GAAS,OAAO,EAAY,CAAK,EAAO,QAAG,EAAE,IAAI,GAAS,OAAO,EAAE,CAAC,EAAE,EAAM,cAAc,EAAO,OAAM,cAAc,EAAE,EAAM,iBAAiB,GAAG,EAAS,UAAU,OAAO,QAAQ,CAAC,EAAM,EAAS,GAAG,CAAC,GAAG,KAAK,QAAQ,KAAK,QAAQ,CAAC,CAAC,QAAM,UAAQ,CAAC,EAAE,EAAE,EAAO,WAAM,IAAI,EAA2B,UAAU,GAAG,EAAS,UAAU,QAAQ,KAAK,EAAS,UAAU,IAAI,QAAQ,CAAC,EAAM,EAAS,GAAG,CAAC,IAAI,GAAM,KAAK,eAAe,GAAG,OAAO,IAAQ,WAAW,GAAG,EAAM,EAAM,KAAK,EAAS,KAAU,QAAG,OAAO,IAAW,WAAW,GAAG,EAAS,EAAS,KAAK,IAAI,GAAI,GAAG,IAAQ,MAAM,IAAa,OAAE,CAAC,IAAI,GAAI,EAAO,KAAK,EAAM,CAAQ,EAAE,GAAG,cAAe,EAAO,GAAI,GAAI,GAAG,GAAM,OAAO,GAAM,OAAO,EAAE,KAAK,OAAO,EAAE,GAAG,IAAU,QAAG,CAAC,GAAM,SAAS,CAAC,GAAM,OAAO,GAAM,OAAO,GAAG,EAAY,KAAK,GAAM,EAAE,EAAE,GAAM,MAAM,GAAQ,QAAG,GAAM,SAAS,GAAI,IAAI,GAA4B,KAAK,EAAO,QAAG,GAAM,UAAU,GAAI,IAAI,EAAqB,KAAK,EAAE,GAAG,OAAO,KAAK,WAAW,GAAG,IAAK,GAAM,SAAS,EAAQ,SAAS,GAAG,EAAG,EAAO,QAAM,GAAa,KAAK,EAAE,EAAE,OAAO,MAAM,SAAS,CAAU,CAAC,EAAM,CAAC,OAAO,EAAM,QAAQ,CAAC,EAAM,WAAW,EAAM,aAAa,EAAM,SAAS,GAAG,CAAC,EAAM,SAAS,EAAM,SAAS,SAAS,GAAG,CAAC,EAAM,UAAU,CAAC,EAAM,SAAS,CAAC,EAAM,cAAc,CAAC,EAAM,aAAa,SAAS,EAAS,CAAC,EAAO,EAAM,CAAC,IAAI,GAAO,GAAG,SAAS,EAAQ,CAAC,GAAI,CAAC,GAAG,GAAO,CAAC,EAAe,EAAO,KAAM,MAAM,KAAW,OAAE,GAAI,EAAsB,CAAC,EAAE,OAAO,GAAG,GAAO,GAAG,EAAM,YAAY,GAAI,CAAC,IAAI,GAAkB,EAAM,GAAa,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAkB,OAAO,IAAI,GAAkB,GAAG,EAAG,EAAE,EAAe,EAAO,GAAI,EAAM,IAAI,EAAO,QAAG,EAAW,CAAK,EAAE,EAAM,YAAY,GAAG,EAAO,KAAK,WAAW,EAAE,EAAM,YAAY,EAAQ,SAAS,GAAO,EAAO,CAAK,EAAE,EAAM,KAAK,GAAG,EAAM,YAAY,GAAG,CAAC,EAAO,OAAO,EAAQ,EAAE,MAAM,GAAI,CAAC,GAAS,EAAG,EAAE,EAAM,KAAK,GAAG,SAAS,EAAS,CAAC,EAAO,EAAM,CAAC,GAAG,CAAC,EAAM,aAAa,CAAC,EAAM,YAAY,GAAG,OAAO,EAAO,SAAS,YAAY,CAAC,EAAM,UAAU,EAAM,YAAY,GAAG,GAAU,EAAO,CAAK,EAAO,OAAM,YAAY,GAAG,EAAO,KAAK,WAAW,EAAE,SAAS,CAAW,CAAC,EAAO,EAAM,GAAK,CAAC,GAAG,EAAW,CAAK,GAAG,GAAG,GAAU,EAAO,CAAK,EAAE,EAAM,YAAY,GAAG,GAAG,GAAK,EAAM,YAAY,EAAQ,SAAS,CAAC,GAAQ,KAAS,CAAC,GAAG,EAAW,EAAM,EAAE,GAAO,GAAQ,EAAM,EAAO,QAAO,aAAa,EAAO,CAAK,EAAO,QAAG,EAAW,CAAK,EAAE,EAAM,YAAY,GAAO,EAAO,CAAK,IAAI,SAAS,EAAM,CAAC,EAAO,EAAM,CAAC,EAAM,YAAY,EAAM,SAAS,GAAG,IAAI,GAAkB,EAAM,GAAa,OAAO,CAAC,EAAE,QAAQ,GAAE,EAAE,GAAE,GAAkB,OAAO,KAAI,GAAkB,IAAG,EAAE,GAAG,EAAO,KAAK,QAAQ,EAAE,EAAM,YAAY,CAAC,IAAI,GAAO,EAAO,eAAe,GAAG,CAAC,IAAQ,GAAO,cAAc,GAAO,YAAY,GAAO,WAAW,IAAI,EAAO,QAAQ,GAAG,EAAuB,EAAS,UAAU,CAAC,OAAO,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,OAAO,GAAG,EAAE,UAAU,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,UAAU,IAAI,GAAG,CAAC,EAAM,CAAC,GAAG,KAAK,eAAe,KAAK,eAAe,UAAU,EAAM,EAAE,SAAS,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,IAAI,EAAE,KAAK,eAAe,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW,IAAI,CAAC,EAAE,WAAW,CAAC,EAAE,SAAS,CAAC,EAAE,QAAQ,CAAC,EAAE,OAAO,GAAG,CAAC,EAAI,CAAC,GAAG,KAAK,eAAe,KAAK,eAAe,SAAS,CAAC,CAAC,EAAI,EAAE,iBAAiB,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,SAAS,GAAG,EAAE,mBAAmB,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,WAAW,GAAG,EAAE,eAAe,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,gBAAgB,KAAK,eAAe,UAAU,EAAE,EAAE,cAAc,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,OAAO,GAAG,EAAE,kBAAkB,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,IAAI,EAAO,KAAK,eAAe,GAAG,CAAC,EAAO,MAAM,GAAG,MAAM,CAAC,EAAO,WAAW,CAAC,EAAO,QAAQ,EAAO,UAAU,EAAE,sBAAsB,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,gBAAgB,KAAK,eAAe,cAAc,EAAE,eAAe,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,OAAO,EAAE,EAAE,eAAe,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,OAAO,KAAK,gBAAgB,KAAK,eAAe,OAAO,EAAE,QAAQ,CAAC,UAAU,KAAK,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,KAAK,eAAe,KAAK,eAAe,QAAQ,KAAK,EAAE,gBAAgB,CAAC,UAAU,KAAK,WAAW,GAAG,IAAI,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,KAAK,eAAe,WAAW,KAAK,KAAK,eAAe,WAAW,KAAK,eAAe,UAAU,CAAC,KAAK,eAAe,UAAU,CAAC,CAAC,EAAE,IAAI,EAAQ,EAAY,QAAQ,EAAS,UAAU,QAAQ,QAAQ,CAAC,EAAI,EAAG,CAAC,IAAI,GAAM,KAAK,eAAe,GAAG,CAAC,GAAM,YAAY,GAAM,cAAc,GAAM,SAAS,QAAQ,GAAM,GAAa,QAAQ,EAAQ,SAAS,EAAY,EAAK,EAAE,OAAO,EAAQ,KAAK,KAAK,EAAI,CAAE,EAAE,MAAM,EAAS,UAAU,WAAW,EAAY,UAAU,EAAS,UAAU,SAAS,QAAQ,CAAC,EAAI,EAAG,CAAC,EAAG,CAAG,GAAG,EAAS,UAAU,EAAG,wBAAwB,QAAQ,CAAC,EAAI,CAAC,KAAK,QAAQ,CAAG,GAAG,IAAI,GAAmB,SAAS,EAAc,EAAE,CAAC,GAAG,KAA0B,OAAE,GAAmB,CAAC,EAAE,OAAO,GAAmB,EAAS,QAAQ,QAAQ,CAAC,EAAe,EAAQ,CAAC,OAAO,GAAe,EAAE,oCAAoC,EAAe,CAAO,GAAG,EAAS,MAAM,QAAQ,CAAC,EAAe,CAAC,OAAO,GAAe,EAAE,oCAAoC,CAAc,GAAG,EAAM,GAAkB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,EAAQ,GAAgB,EAAE,iBAAgC,aAAW,aAAW,aAAW,eAAa,uBAAqB,uBAAqB,qBAAmB,mBAAiB,oBAAkB,GAAc,EAAE,EAAI,GAAsB,GAAG,aAAW,OAAO,uBAAqB,6BAA2B,GAAe,GAAG,aAAW,GAAgB,EAAE,EAAO,GAAe,EAAE,EAAS,GAAiB,EAAE,EAAS,GAAiB,GAAG,yBAAuB,GAAa,EAAE,EAAK,GAAa,EAAE,EAAK,WAAW,MAAM,EAAa,KAAK,GAAO,OAAO,EAAK,IAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,aAAa,GAAM,QAAQ,CAAC,EAAE,CAAC,MAAM,IAAI,GAAgB,WAAW,iBAAiB,GAAyB,EAAE,iBAAiB,yBAAuB,GAAoB,EAAE,MAAM,WAAkB,CAAM,CAAC,WAAW,CAAC,EAAQ,CAAC,MAAM,CAAO,EAAE,IAAI,IAAU,MAAM,IAAe,OAAO,OAAE,EAAQ,YAAY,GAAG,KAAK,eAAe,SAAS,GAAG,KAAK,eAAe,MAAM,GAAG,KAAK,eAAe,WAAW,GAAG,IAAI,IAAU,MAAM,IAAe,OAAO,OAAE,EAAQ,YAAY,GAAG,KAAK,eAAe,SAAS,GAAG,KAAK,eAAe,OAAO,GAAG,KAAK,eAAe,MAAM,GAAG,KAAK,eAAe,SAAS,GAAG,CAAC,EAAQ,QAAQ,SAAS,CAAS,CAAC,EAAK,EAAK,CAAC,GAAG,EAAmB,CAAI,EAAE,OAAO,EAAK,GAAG,EAAqB,CAAI,EAAE,OAAO,EAAW,CAAC,SAAS,CAAI,CAAC,EAAE,GAAG,EAAqB,CAAI,EAAE,OAAO,EAAW,CAAC,SAAS,CAAI,CAAC,EAAE,GAAG,EAAa,CAAI,EAAE,OAAO,EAAW,CAAC,SAAS,GAAG,SAAS,EAAE,CAAC,EAAE,GAAG,EAAiB,CAAI,EAAE,OAAO,EAAW,CAAC,SAAS,EAAS,QAAQ,CAAI,CAAC,CAAC,EAAE,GAAG,EAAiB,CAAI,EAAE,OAAO,EAAW,CAAC,SAAS,EAAS,QAAQ,CAAI,CAAC,CAAC,EAAE,GAAG,OAAO,IAAO,WAAW,CAAC,IAAI,QAAM,QAAM,QAAM,WAAS,EAAa,CAAI,EAAE,GAAG,EAAW,CAAK,EAAE,OAAO,EAAK,GAAU,EAAM,CAAC,WAAW,GAAG,QAAM,QAAM,SAAO,CAAC,EAAE,IAAI,EAAM,IAAQ,MAAM,IAAa,OAAO,OAAE,EAAM,KAAK,GAAG,OAAO,IAAQ,WAAW,CAAC,IAAI,EAAE,EAAQ,EAAsB,EAAM,EAAM,CAAC,IAAM,CAAC,GAAG,GAAK,KAAK,MAAM,IAAI,EAAyB,QAAQ,OAAO,CAAG,GAAG,CAAC,IAAM,CAAC,EAAU,EAAE,CAAG,EAAE,EAAE,OAAO,EAAE,IAAI,GAAU,CAAC,WAAW,GAAG,SAAS,GAAG,QAAM,KAAK,CAAC,EAAG,CAAC,EAAM,SAAS,CAAC,GAAG,CAAC,MAAM,EAAQ,EAAQ,SAAS,EAAG,IAAI,EAAE,MAAM,EAAI,CAAC,EAAQ,SAAS,EAAG,CAAG,GAAG,GAAG,SAAO,CAAC,EAAE,MAAM,IAAI,EAAyB,2CAA2C,EAAK,CAAK,EAAE,GAAG,GAAO,CAAI,EAAE,OAAO,EAAU,EAAK,YAAY,CAAC,EAAE,GAAG,EAAW,CAAI,EAAE,OAAO,EAAK,GAAU,EAAK,CAAC,WAAW,GAAG,SAAS,EAAE,CAAC,EAAE,GAAG,EAAiB,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,QAAQ,GAAG,EAAiB,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,QAAQ,EAAE,OAAO,GAAU,QAAQ,CAAI,EAAE,GAAG,OAAO,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,YAAY,UAAU,OAAO,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,YAAY,SAAS,CAAC,IAAI,EAAS,IAAO,MAAM,IAAY,QAAG,EAAK,SAAS,EAAqB,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,QAAQ,EAAE,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,SAAS,EAAU,EAAK,QAAQ,EAAO,OAAE,EAAS,IAAO,MAAM,IAAY,QAAG,EAAK,SAAS,EAAqB,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,QAAQ,EAAE,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,SAAS,EAAU,EAAK,QAAQ,EAAO,OAAE,OAAO,EAAW,CAAC,WAAS,UAAQ,CAAC,EAAE,IAAI,EAAK,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,KAAK,GAAG,OAAO,IAAO,WAAW,CAAC,IAAI,EAAE,OAAO,EAAsB,EAAK,EAAK,CAAC,IAAM,CAAC,GAAG,GAAK,KAAK,EAAE,KAAK,CAAG,EAAE,EAAE,KAAK,IAAI,GAAG,CAAC,IAAM,CAAC,EAAU,EAAE,CAAG,EAAE,EAAE,EAAE,IAAI,GAAU,CAAC,WAAW,GAAG,SAAS,GAAG,IAAI,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI,EAAqB,EAAK,CAAC,OAAO,iBAAiB,iBAAiB,SAAS,WAAW,gBAAgB,WAAW,8BAA8B,SAAS,EAAE,CAAI,GAAG,SAAS,CAAY,CAAC,EAAG,CAAC,IAAI,UAAQ,WAAS,EAAsB,EAAE,EAAG,IAAI,GAAgB,EAAO,EAAG,OAAO,MAAM,CAAC,MAAM,EAAG,eAAe,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAS,EAAQ,EAAQ,KAAK,IAAI,QAAM,OAAK,MAAI,MAAM,EAAS,GAAG,EAAQ,SAAS,CAAE,EAAE,EAAK,OAAO,GAAG,EAAO,QAAQ,MAAM,IAAI,EAAgB,OAAE,CAAC,MAAM,EAAO,MAAM,CAAC,GAAG,CAAC,UAAQ,SAAO,EAAE,EAAsB,GAAG,MAAM,IAAQ,EAAE,CAAC,QAAM,CAAC,EAAE,KAAK,CAAC,EAAM,EAAS,EAAG,CAAC,IAAI,EAAS,EAAQ,EAAQ,KAAK,EAAS,CAAC,QAAM,KAAK,GAAG,IAAE,CAAC,GAAG,KAAK,CAAC,EAAG,CAAC,IAAI,EAAS,EAAQ,EAAQ,KAAK,EAAS,CAAC,KAAK,GAAG,IAAE,CAAC,GAAG,OAAO,CAAC,EAAI,EAAG,CAAC,EAAG,MAAM,EAAE,EAAG,CAAG,EAAE,EAAE,SAAS,CAAU,CAAC,EAAK,CAAC,IAAI,EAAE,EAAK,UAAU,OAAO,EAAK,SAAS,OAAO,WAAW,EAAS,KAAK,EAAK,QAAQ,EAAE,EAAK,SAAS,EAAE,EAAK,SAAS,EAAS,CAAC,CAAC,EAAW,CAAC,EAAE,EAAS,CAAC,CAAC,EAAW,CAAC,EAAE,EAAQ,EAAS,EAAW,EAAQ,EAAE,SAAS,CAAU,CAAC,EAAI,CAAC,IAAI,EAAG,EAAQ,GAAG,EAAQ,KAAK,EAAG,EAAG,CAAG,EAAO,QAAG,EAAI,EAAE,QAAQ,CAAG,EAAE,GAAG,EAAE,IAAI,GAAU,CAAC,mBAAmB,CAAC,EAAE,IAAI,MAAM,IAAS,QAAG,EAAE,oBAAoB,mBAAmB,CAAC,EAAE,IAAI,MAAM,IAAS,QAAG,EAAE,oBAAoB,WAAS,UAAQ,CAAC,EAAE,EAAS,EAAI,EAAE,CAAC,IAAM,CAAC,GAAG,EAAS,GAAG,EAAI,EAAU,EAAE,CAAG,EAAE,EAAW,CAAG,EAAE,EAAE,EAAE,OAAO,QAAQ,CAAC,EAAM,EAAS,EAAS,CAAC,GAAG,EAAE,MAAM,EAAM,CAAQ,EAAE,EAAS,EAAO,OAAQ,GAAU,EAAE,OAAO,QAAQ,CAAC,EAAS,CAAC,EAAE,IAAI,EAAE,EAAS,GAAU,EAAE,GAAG,QAAQ,QAAQ,EAAE,CAAC,GAAG,EAAQ,CAAC,IAAI,EAAG,EAAQ,EAAQ,KAAK,EAAG,GAAG,EAAE,EAAE,GAAG,SAAS,QAAQ,EAAE,CAAC,GAAG,EAAS,CAAC,IAAI,EAAG,EAAS,EAAS,KAAK,EAAG,GAAG,EAAE,GAAG,EAAS,EAAI,EAAE,CAAC,IAAM,CAAC,GAAG,EAAS,GAAG,EAAI,EAAU,EAAE,CAAG,EAAE,EAAW,CAAG,EAAE,EAAE,EAAE,GAAG,WAAW,QAAQ,EAAE,CAAC,GAAG,EAAW,CAAC,IAAI,EAAG,EAAW,EAAW,KAAK,EAAG,GAAG,EAAE,EAAE,GAAG,MAAM,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAI,EAAE,KAAK,EAAE,GAAG,IAAM,KAAK,CAAC,EAAW,EAAE,MAAM,OAAO,GAAG,CAAC,EAAE,KAAK,CAAG,EAAE,SAAS,OAAO,EAAE,SAAS,QAAQ,CAAC,EAAI,EAAS,CAAC,GAAG,CAAC,GAAK,IAAU,KAAK,EAAI,IAAI,EAAW,GAAG,EAAW,KAAK,EAAQ,KAAK,EAAS,KAAK,IAAU,KAAK,EAAS,CAAG,EAAO,OAAQ,EAAS,EAAU,EAAE,CAAG,EAAE,EAAU,EAAE,CAAG,GAAG,GAAG,EAAM,GAAe,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,yBAAuB,iCAA+B,aAAW,wBAAsB,GAAoB,EAAE,EAAQ,QAAQ,EAAO,IAAI,EAAS,GAAiB,EAAE,EAAS,GAAiB,EAAE,EAAqB,EAAO,UAAU,EAAS,SAAS,EAAE,EAAqB,EAAO,CAAQ,EAAE,CAAC,IAAI,EAAK,EAAW,EAAS,SAAS,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAK,OAAO,IAAI,CAAC,IAAI,EAAO,EAAK,GAAG,GAAG,CAAC,EAAO,UAAU,GAAQ,EAAO,UAAU,GAAQ,EAAS,UAAU,GAAQ,CAAC,SAAS,CAAM,CAAC,EAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAQ,OAAO,IAAI,EAAO,CAAO,EAAE,GAAG,EAAS,KAAK,KAAK,CAAO,EAAE,EAAS,KAAK,KAAK,CAAO,EAAE,EAAQ,CAAC,GAAG,KAAK,cAAc,EAAQ,gBAAgB,GAAG,EAAQ,WAAW,GAAG,KAAK,eAAe,SAAS,GAAG,KAAK,eAAe,MAAM,GAAG,KAAK,eAAe,WAAW,GAAG,GAAG,EAAQ,WAAW,GAAG,KAAK,eAAe,SAAS,GAAG,KAAK,eAAe,OAAO,GAAG,KAAK,eAAe,MAAM,GAAG,KAAK,eAAe,SAAS,GAAQ,UAAK,cAAc,GAAG,EAAuB,EAAO,UAAU,CAAC,SAAS,CAAC,UAAU,QAAQ,EAA+B,EAAS,UAAU,UAAU,CAAC,EAAE,sBAAsB,CAAC,UAAU,QAAQ,EAA+B,EAAS,UAAU,uBAAuB,CAAC,EAAE,mBAAmB,CAAC,UAAU,QAAQ,EAA+B,EAAS,UAAU,oBAAoB,CAAC,EAAE,eAAe,CAAC,UAAU,QAAQ,EAA+B,EAAS,UAAU,gBAAgB,CAAC,EAAE,eAAe,CAAC,UAAU,QAAQ,EAA+B,EAAS,UAAU,gBAAgB,CAAC,EAAE,iBAAiB,CAAC,UAAU,QAAQ,EAA+B,EAAS,UAAU,kBAAkB,CAAC,EAAE,eAAe,CAAC,UAAU,QAAQ,EAA+B,EAAS,UAAU,gBAAgB,CAAC,EAAE,cAAc,CAAC,UAAU,QAAQ,EAA+B,EAAS,UAAU,eAAe,CAAC,EAAE,kBAAkB,CAAC,UAAU,QAAQ,EAA+B,EAAS,UAAU,mBAAmB,CAAC,EAAE,UAAU,CAAC,UAAU,KAAK,GAAG,EAAE,CAAC,GAAG,KAAK,iBAAsB,QAAG,KAAK,iBAAsB,OAAE,MAAM,GAAG,OAAO,KAAK,eAAe,WAAW,KAAK,eAAe,WAAW,GAAG,CAAC,EAAM,CAAC,GAAG,KAAK,gBAAgB,KAAK,eAAe,KAAK,eAAe,UAAU,EAAM,KAAK,eAAe,UAAU,EAAM,CAAC,CAAC,EAAE,IAAI,EAAmB,SAAS,CAAc,EAAE,CAAC,GAAG,IAA0B,OAAE,EAAmB,CAAC,EAAE,OAAO,EAAmB,EAAO,QAAQ,QAAQ,CAAC,EAAK,EAAQ,CAAC,OAAO,EAAe,EAAE,wCAAwC,EAAK,CAAO,GAAG,EAAO,MAAM,QAAQ,CAAC,EAAO,CAAC,OAAO,EAAe,EAAE,kCAAkC,CAAM,GAAG,IAAI,EAAU,EAAO,KAAK,QAAQ,CAAC,EAAK,CAAC,GAAG,CAAC,EAAU,EAAU,GAAkB,EAAE,OAAO,EAAU,EAAK,MAAM,GAAG,EAAM,GAAkB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,uBAAqB,OAAO,GAAS,GAAoB,EAAE,EAAQ,QAAQ,EAAU,IAAI,8BAA4B,GAAe,EAAE,MAAM,EAAO,GAAe,GAAG,oBAAkB,GAAc,EAAE,EAAqB,EAAU,UAAU,EAAO,SAAS,EAAE,EAAqB,EAAU,CAAM,EAAE,IAAI,EAAU,EAAQ,WAAW,EAAE,SAAS,CAAS,CAAC,EAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAW,OAAO,IAAI,EAAU,CAAO,EAAE,IAAI,EAAsB,EAAQ,EAAiB,KAAK,EAAQ,wBAAwB,EAAE,EAAE,KAAK,GAAG,IAAwB,EAAE,EAAQ,IAAI,EAAQ,cAAc,KAAK,wBAAsB,sBAAsB,EAAQ,uBAAuB,CAAC,EAAE,GAAG,EAAO,KAAK,KAAK,CAAO,EAAE,KAAK,eAAe,KAAK,GAAG,KAAK,GAAW,KAAK,EAAQ,CAAC,GAAG,OAAO,EAAQ,YAAY,WAAW,KAAK,WAAW,EAAQ,UAAU,GAAG,OAAO,EAAQ,QAAQ,WAAW,KAAK,OAAO,EAAQ,MAAM,KAAK,GAAG,YAAY,CAAS,EAAE,SAAS,CAAK,CAAC,EAAG,CAAC,GAAG,OAAO,KAAK,SAAS,YAAY,CAAC,KAAK,UAAU,KAAK,OAAO,CAAC,EAAG,IAAO,CAAC,GAAG,EAAG,CAAC,GAAG,EAAG,EAAG,CAAE,EAAO,UAAK,QAAQ,CAAE,EAAE,OAAO,GAAG,GAAM,KAAK,KAAK,KAAK,CAAI,EAAE,GAAG,KAAK,KAAK,IAAI,EAAE,EAAG,EAAG,EAAE,EAAO,QAAG,KAAK,KAAK,IAAI,EAAE,EAAG,EAAG,EAAE,SAAS,CAAS,EAAE,CAAC,GAAG,KAAK,SAAS,EAAM,EAAM,KAAK,IAAI,EAAE,EAAU,UAAU,OAAO,EAAM,EAAU,UAAU,WAAW,QAAQ,CAAC,EAAM,EAAS,EAAS,CAAC,MAAM,IAAI,EAA2B,cAAc,GAAG,EAAU,UAAU,OAAO,QAAQ,CAAC,EAAM,EAAS,EAAS,CAAC,IAAI,EAAO,KAAK,eAAe,EAAO,KAAK,eAAe,EAAO,EAAO,OAAO,KAAK,WAAW,EAAM,EAAS,CAAC,EAAI,IAAM,CAAC,GAAG,EAAI,CAAC,EAAS,CAAG,EAAE,OAAO,GAAG,GAAK,KAAK,KAAK,KAAK,CAAG,EAAE,GAAG,EAAO,OAAO,IAAS,EAAO,QAAQ,EAAO,OAAO,EAAO,cAAc,EAAS,EAAO,UAAK,GAAW,EAAS,GAAG,EAAU,UAAU,MAAM,QAAQ,EAAE,CAAC,GAAG,KAAK,GAAW,CAAC,IAAI,EAAS,KAAK,GAAW,KAAK,GAAW,KAAK,EAAS,IAAI,EAAM,GAAoB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,wBAAsB,GAAoB,EAAE,EAAQ,QAAQ,EAAY,IAAI,EAAU,GAAkB,EAAE,EAAqB,EAAY,UAAU,EAAU,SAAS,EAAE,EAAqB,EAAY,CAAS,EAAE,SAAS,CAAW,CAAC,EAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAa,OAAO,IAAI,EAAY,CAAO,EAAE,EAAU,KAAK,KAAK,CAAO,EAAE,EAAY,UAAU,WAAW,QAAQ,CAAC,EAAM,EAAS,EAAG,CAAC,EAAG,KAAK,CAAK,GAAG,EAAM,GAAiB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,EAAQ,GAAgB,GAAG,eAAa,QAAQ,EAAS,sBAAoB,iBAAe,GAAoB,EAAE,EAAI,GAAsB,GAAG,QAAM,GAAa,EAAE,EAAY,GAAgB,EAAE,EAAO,GAAe,GAAG,qBAAmB,OAAO,uBAAqB,2BAAyB,mBAAiB,uBAAqB,8BAA4B,cAAY,GAAe,GAAG,mBAAiB,uBAAqB,GAAmB,GAAG,aAAW,aAAW,uBAAqB,eAAa,qBAAkB,eAAY,mBAAiB,uBAAoB,GAAc,EAAE,EAAgB,WAAW,iBAAiB,GAAyB,EAAE,gBAAgB,EAAY,EAAS,EAAiB,SAAS,CAAS,CAAC,EAAO,EAAQ,EAAQ,CAAC,IAAI,GAAS,GAAG,EAAO,GAAG,QAAQ,IAAI,CAAC,GAAS,GAAG,EAAE,IAAI,GAAQ,EAAI,EAAO,CAAC,SAAS,EAAQ,SAAS,CAAO,EAAE,CAAC,IAAM,CAAC,GAAS,CAAC,EAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAM,CAAC,GAAG,GAAS,OAAO,GAAS,GAAG,EAAY,UAAU,EAAO,GAAK,IAAI,EAAqB,MAAM,CAAC,GAAG,UAAO,EAAE,SAAS,CAAW,CAAC,EAAQ,CAAC,OAAO,EAAiB,EAAQ,EAAQ,OAAO,GAAG,4BAA4B,EAAE,EAAQ,IAAI,EAAE,SAAS,CAAiB,CAAC,EAAI,CAAC,GAAG,EAAW,CAAG,EAAE,OAAO,EAAS,QAAG,EAAqB,CAAG,EAAE,OAAO,EAAa,CAAG,EAAE,MAAM,IAAI,EAAqB,MAAM,CAAC,WAAW,WAAW,eAAe,EAAE,CAAG,EAAE,eAAe,CAAY,CAAC,EAAI,CAAC,GAAG,CAAC,EAAS,EAAS,GAAiB,EAAE,MAAM,EAAS,UAAU,GAAqB,KAAK,CAAG,EAAE,eAAe,CAAU,CAAC,EAAS,EAAS,GAAQ,QAAK,CAAC,IAAI,GAAM,EAAU,KAAK,GAAO,CAAC,KAAM,CAAC,GAAG,GAAI,GAAM,GAAI,GAAG,EAAU,CAAC,IAAI,EAAS,EAAU,EAAU,KAAK,EAAS,IAAI,EAAK,IAAI,IAAI,EAAS,CAAC,GAAQ,IAAS,CAAC,GAAG,GAAM,EAAO,EAAK,EAAO,OAAU,IAAI,CAAC,GAAG,GAAM,EAAO,EAAK,EAAO,QAAQ,GAAG,EAAE,EAAS,GAAG,QAAQ,EAAM,EAAE,IAAI,GAAQ,EAAI,EAAS,CAAC,SAAS,EAAE,EAAE,EAAM,EAAE,GAAG,CAAC,GAAG,EAAS,kBAAkB,MAAM,EAAK,EAAE,cAAc,MAAS,EAAS,GAAG,CAAC,EAAS,MAAM,EAAK,EAAE,MAAM,EAAK,EAAE,GAAG,GAAI,EAAS,IAAI,EAAE,MAAM,EAAK,EAAE,EAAO,EAAE,MAAM,GAAI,CAAC,EAAO,KAAQ,GAAI,EAAmB,GAAM,EAAG,EAAE,EAAG,SAAE,CAAQ,GAAQ,EAAE,EAAS,IAAI,QAAQ,EAAM,GAAG,eAAe,CAAS,CAAC,EAAS,EAAS,GAAQ,QAAK,CAAC,GAAG,GAAkB,CAAQ,EAAE,EAAS,EAAS,SAAS,IAAI,GAAO,EAAS,UAAU,EAAE,GAAG,CAAC,cAAc,KAAS,EAAS,MAAM,GAAO,MAAM,GAAO,MAAM,CAAK,EAAE,MAAM,IAAI,EAAE,EAAE,GAAG,MAAM,GAAO,MAAM,GAAI,MAAM,GAAO,MAAM,EAAE,EAAO,EAAE,MAAM,EAAI,CAAC,GAAG,CAAC,MAAM,GAAO,MAAM,CAAG,EAAE,EAAO,CAAG,EAAE,MAAM,GAAK,CAAC,EAAO,EAAI,IAAI,SAAS,CAAQ,IAAI,EAAQ,CAAC,OAAO,EAAa,EAAQ,EAAK,EAAY,CAAO,CAAC,CAAC,EAAE,SAAS,CAAY,CAAC,EAAQ,EAAS,EAAK,CAAC,GAAG,EAAQ,SAAS,GAAG,EAAa,EAAQ,EAAE,EAAE,EAAQ,EAAQ,GAAG,GAAG,EAAQ,OAAO,EAAE,MAAM,IAAI,EAAiB,SAAS,EAAE,IAAI,GAAG,IAAI,EAAgB,GAAO,GAAG,OAAO,EAAY,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,OAAO,GAAkB,CAAC,EAAE,EAAoB,EAAY,gBAAgB,EAAE,SAAS,CAAK,EAAE,CAAC,GAAW,IAAI,CAAU,EAAE,EAAiB,GAAkB,GAAa,EAAE,iBAAiB,IAAI,GAAW,GAAG,EAAY,GAAW,EAAiB,EAAY,CAAK,EAAE,IAAI,GAAM,EAAM,EAAS,CAAC,EAAE,GAAY,EAAE,SAAS,EAAM,CAAC,GAAI,CAAC,GAAW,GAAI,EAAE,KAAc,CAAC,EAAE,SAAS,EAAU,CAAC,GAAI,GAAM,CAAC,IAAI,GAAY,GAAG,KAAM,CAAC,IAAO,GAAM,OAAO,8BAA8B,GAAM,GAAI,GAAG,CAAC,IAAO,CAAC,GAAM,OAAO,MAAM,EAAS,OAAO,EAAS,MAAM,EAAE,EAAK,EAAE,IAAI,GAAY,MAAc,MAAM,KAAmB,QAAG,GAAY,GAAe,EAAE,GAAG,MAAM,EAAE,GAAM,CAAC,GAAG,CAAC,GAAM,GAAkB,QAAQ,CAAC,KAAK,GAAG,CAAC,EAAE,EAAQ,SAAS,EAAS,GAAM,CAAK,GAAG,IAAI,GAAI,QAAQ,GAAE,EAAE,GAAE,EAAQ,OAAO,KAAI,CAAC,IAAI,GAAO,EAAQ,IAAG,GAAQ,GAAE,EAAQ,OAAO,EAAE,GAAQ,GAAE,EAAE,GAAI,KAAU,IAAO,MAAM,IAAY,OAAO,OAAE,EAAK,OAAO,GAAG,GAAa,KAAI,EAAQ,OAAO,EAAE,GAAG,EAAa,EAAM,EAAE,CAAC,IAAI,GAAS,QAAQ,CAAC,GAAI,CAAC,GAAG,IAAK,GAAI,OAAO,cAAc,GAAI,OAAO,6BAA6B,GAAO,EAAG,GAAG,IAAI,EAAQ,GAAS,GAAG,GAAI,CAAC,IAAI,WAAQ,YAAS,EAAU,GAAO,GAAQ,EAAO,EAAE,GAAG,EAAS,KAAK,EAAO,EAAE,EAAW,EAAM,GAAG,GAAa,GAAkB,KAAK,EAAO,EAAE,GAAG,GAAO,GAAG,QAAQ,EAAQ,EAAE,EAAW,EAAM,GAAG,GAAa,GAAkB,KAAK,IAAI,CAAC,GAAO,eAAe,QAAQ,EAAQ,EAAE,EAAE,GAAG,KAAI,EAAE,GAAG,OAAO,KAAS,YAAY,GAAG,GAAI,GAAO,CAAC,SAAM,CAAC,EAAE,CAAC,EAAW,EAAG,EAAE,MAAM,IAAI,EAAyB,oCAAoC,SAAS,EAAG,EAAO,QAAG,EAAW,EAAM,GAAG,EAAqB,EAAM,GAAG,GAAkB,EAAM,EAAE,GAAI,GAAY,QAAI,EAAO,KAAK,EAAM,EAAO,QAAG,OAAO,KAAS,WAAW,CAAC,GAAG,GAAkB,EAAG,EAAE,CAAC,IAAI,EAAK,GAAI,GAAmB,EAAK,MAAO,MAAM,IAAY,OAAO,OAAE,EAAK,QAAQ,EAAO,QAAI,EAAkB,EAAG,EAAE,GAAG,GAAI,GAAO,GAAI,CAAC,SAAM,CAAC,EAAE,IAAS,GAAG,CAAC,EAAW,GAAI,EAAE,EAAE,MAAM,IAAI,EAAyB,gBAAgB,aAAa,GAAE,KAAK,EAAG,EAAM,KAAC,IAAI,GAAM,GAAG,CAAC,EAAY,EAAY,GAAoB,EAAE,IAAI,GAAG,IAAI,EAAY,CAAC,WAAW,EAAE,CAAC,EAAE,IAAM,GAAM,MAAO,MAAM,KAAa,OAAO,OAAE,GAAM,KAAK,GAAG,OAAO,KAAO,WAAW,KAAc,GAAK,KAAK,GAAI,CAAC,KAAM,CAAC,GAAG,EAAM,GAAI,IAAK,KAAK,GAAG,MAAM,EAAG,EAAE,GAAG,GAAI,GAAG,IAAI,EAAE,EAAQ,SAAS,EAAM,GAAG,CAAC,KAAM,CAAC,GAAG,QAAQ,EAAG,EAAE,EAAQ,SAAS,GAAO,EAAG,EAAE,EAAO,QAAG,EAAW,GAAI,EAAE,EAAE,KAAc,EAAW,GAAI,GAAG,GAAO,CAAC,MAAG,CAAC,EAAO,QAAG,EAAiB,EAAG,GAAG,GAAkB,EAAG,EAAE,CAAC,IAAI,GAAO,GAAI,UAAU,GAAI,KAAc,EAAW,GAAO,GAAG,GAAO,CAAC,MAAG,CAAC,EAAO,WAAM,IAAI,EAAyB,2BAA2B,cAAc,EAAG,EAAE,GAAI,GAAG,IAAI,WAAQ,YAAS,EAAU,GAAI,GAAG,EAAE,EAAE,GAAG,EAAS,KAAK,EAAO,EAAE,GAAa,GAAkB,KAAK,EAAO,GAAQ,QAAG,EAAa,EAAM,EAAE,CAAC,GAAG,EAAqB,EAAG,EAAE,CAAC,IAAa,EAAE,IAAI,GAAQ,EAAK,GAAI,GAAO,GAAO,CAAC,MAAG,CAAC,EAAE,GAAG,EAAW,EAAM,GAAG,GAAa,GAAkB,KAAK,EAAO,EAAO,QAAG,GAAkB,EAAG,GAAG,EAAiB,EAAG,EAAE,CAAC,IAAI,GAAO,GAAI,UAAU,GAAI,KAAc,EAAW,GAAO,GAAO,GAAO,CAAC,MAAG,CAAC,EAAO,QAAG,EAAW,EAAG,EAAE,KAAc,EAAW,GAAI,GAAO,GAAO,CAAC,MAAG,CAAC,EAAO,WAAM,IAAI,EAAqB,MAAM,CAAC,WAAW,WAAW,gBAAgB,iBAAiB,iBAAiB,EAAE,EAAG,EAAE,GAAI,GAAY,QAAG,GAAY,EAAM,EAAE,CAAC,GAAG,EAAqB,EAAG,EAAE,KAAc,EAAU,EAAkB,EAAG,EAAE,GAAO,GAAO,CAAC,MAAG,CAAC,EAAO,QAAG,EAAiB,EAAG,GAAG,EAAW,EAAG,EAAE,KAAc,EAAU,GAAI,GAAO,GAAO,CAAC,MAAG,CAAC,EAAO,QAAG,GAAkB,EAAG,EAAE,KAAc,EAAU,GAAI,SAAS,GAAO,GAAO,CAAC,MAAG,CAAC,EAAO,WAAM,IAAI,EAAqB,MAAM,CAAC,WAAW,WAAW,gBAAgB,iBAAiB,iBAAiB,EAAE,EAAG,EAAE,GAAI,GAAY,QAAI,EAAO,KAAK,EAAM,EAAE,GAAG,KAAS,MAAM,KAAc,QAAG,GAAO,SAAS,IAAc,MAAM,IAAmB,QAAG,EAAY,QAAQ,EAAQ,SAAS,CAAK,EAAE,OAAO,GAAI,SAAS,CAAI,CAAC,EAAI,EAAI,GAAQ,QAAK,CAAC,IAAI,GAAM,GAAG,GAAG,EAAI,GAAG,QAAQ,IAAI,CAAC,GAAG,CAAC,GAAM,EAAO,IAAI,CAA0B,EAAE,EAAE,EAAI,KAAK,EAAI,CAAC,IAAI,EAAE,CAAC,EAAE,GAAI,CAAC,IAAI,GAAO,QAAQ,EAAE,CAAC,GAAM,GAAG,EAAI,IAAI,GAAG,IAAI,EAAM,GAAO,GAAG,GAAmB,CAAG,EAAE,EAAQ,SAAS,EAAM,EAAO,OAAI,KAAK,MAAM,EAAM,EAAO,OAAO,EAAE,OAAO,EAAI,EAAI,CAAC,SAAS,GAAG,SAAS,EAAE,EAAE,CAAC,KAAM,CAAC,IAAI,EAAO,EAAI,eAAe,GAAG,IAAK,GAAI,OAAO,8BAA8B,GAAQ,EAAO,OAAO,CAAC,EAAO,SAAS,CAAC,EAAO,aAAa,EAAI,KAAK,MAAM,CAAM,EAAE,KAAK,QAAQ,CAAM,EAAO,OAAO,EAAG,EAAE,EAAE,EAAI,EAAI,CAAC,SAAS,GAAG,SAAS,EAAE,EAAE,CAAM,EAAE,EAAQ,QAAQ,CAAC,eAAa,UAAQ,EAAE,EAAM,GAAgB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,YAAU,GAAiB,EAAE,EAAO,GAAe,GAAG,aAAW,GAAgB,GAAG,eAAa,aAAW,aAAW,cAAY,oBAAkB,mBAAiB,oBAAkB,GAAc,GAAG,aAAW,OAAO,wBAAsB,qBAAmB,GAAe,EAAE,EAAI,GAAsB,EAAE,EAAQ,QAAQ,QAAQ,IAAI,EAAQ,CAAC,GAAG,EAAQ,SAAS,EAAE,MAAM,IAAI,EAAiB,SAAS,EAAE,GAAG,EAAQ,SAAS,EAAE,OAAO,EAAO,KAAK,EAAQ,EAAE,EAAE,IAAI,EAAW,CAAC,GAAG,CAAO,EAAE,GAAG,OAAO,EAAQ,KAAK,WAAW,EAAQ,GAAG,EAAO,KAAK,EAAQ,EAAE,EAAE,GAAG,OAAO,EAAQ,EAAQ,OAAO,KAAK,WAAW,CAAC,IAAI,EAAI,EAAQ,OAAO,EAAE,EAAQ,GAAK,EAAO,KAAK,EAAQ,EAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAQ,OAAO,EAAE,EAAE,CAAC,GAAG,CAAC,EAAa,EAAQ,EAAE,GAAG,CAAC,EAAY,EAAQ,EAAE,EAAE,SAAS,GAAG,EAAE,EAAQ,OAAO,GAAG,EAAE,EAAW,EAAQ,EAAE,GAAG,EAAiB,EAAQ,EAAE,GAAG,EAAkB,EAAQ,EAAE,GAAG,MAAM,IAAI,EAAsB,WAAW,KAAK,EAAW,GAAG,kBAAkB,EAAE,GAAG,EAAE,GAAG,EAAE,EAAW,EAAQ,EAAE,GAAG,EAAiB,EAAQ,EAAE,GAAG,EAAkB,EAAQ,EAAE,GAAG,MAAM,IAAI,EAAsB,WAAW,KAAK,EAAW,GAAG,kBAAkB,EAAE,IAAI,EAAQ,EAAS,EAAW,EAAQ,EAAE,SAAS,CAAU,CAAC,EAAI,CAAC,IAAI,EAAG,EAAQ,GAAG,EAAQ,KAAK,EAAG,EAAG,CAAG,EAAO,QAAG,EAAI,EAAE,QAAQ,CAAG,EAAO,QAAG,CAAC,IAAU,CAAC,EAAS,EAAE,QAAQ,EAAE,IAAI,GAAK,EAAQ,GAAG,GAAK,EAAS,EAAQ,CAAU,EAAE,EAAS,CAAC,EAAE,EAAW,EAAI,GAAG,EAAiB,EAAI,GAAG,EAAkB,EAAI,GAAG,GAAS,CAAC,EAAE,EAAW,EAAI,GAAG,EAAiB,EAAI,GAAG,EAAkB,EAAI,GAAG,GAAG,EAAE,IAAI,EAAO,CAAC,mBAAmB,CAAC,EAAE,KAAO,MAAM,KAAY,QAAG,GAAK,oBAAoB,mBAAmB,CAAC,EAAE,KAAO,MAAM,KAAY,QAAG,GAAK,oBAAoB,WAAS,WAAQ,CAAC,EAAE,EAAS,CAAC,GAAG,EAAa,EAAI,EAAE,EAAE,OAAO,QAAQ,CAAC,EAAM,EAAS,EAAS,CAAC,GAAG,GAAK,MAAM,EAAM,CAAQ,EAAE,EAAS,EAAO,OAAQ,GAAU,EAAE,OAAO,QAAQ,CAAC,EAAS,CAAC,GAAK,IAAI,EAAE,EAAS,GAAU,GAAK,GAAG,QAAQ,QAAQ,EAAE,CAAC,GAAG,EAAQ,CAAC,IAAI,EAAG,EAAQ,EAAQ,KAAK,EAAG,GAAG,EAAO,QAAG,EAAY,EAAI,EAAE,CAAC,IAAI,GAAQ,EAAkB,EAAI,EAAE,GAAK,SAAS,IAAM,UAAU,EAAE,EAAE,OAAO,cAAc,CAAC,EAAM,EAAS,EAAS,CAAC,GAAG,CAAC,MAAM,EAAO,MAAM,EAAO,MAAM,CAAK,EAAE,MAAM,IAAI,EAAE,EAAE,EAAS,EAAE,MAAM,EAAI,CAAC,EAAS,CAAG,IAAI,EAAE,OAAO,cAAc,CAAC,EAAS,CAAC,GAAG,CAAC,MAAM,EAAO,MAAM,EAAO,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,EAAS,EAAS,MAAM,EAAI,CAAC,EAAS,CAAG,IAAI,IAAI,EAAO,EAAkB,EAAI,EAAE,GAAK,SAAS,GAAK,EAAI,EAAO,IAAI,CAAC,GAAG,EAAS,CAAC,IAAI,EAAG,EAAS,EAAS,KAAK,EAAG,GAAG,EAAE,GAAG,IAAU,GAAG,EAAa,EAAI,EAAE,GAAK,GAAG,WAAW,QAAQ,EAAE,CAAC,GAAG,EAAW,CAAC,IAAI,EAAG,EAAW,EAAW,KAAK,EAAG,GAAG,EAAE,GAAK,GAAG,MAAM,QAAQ,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,EAAE,EAAE,MAAM,QAAQ,EAAE,CAAC,MAAM,GAAG,CAAC,IAAI,EAAI,GAAK,KAAK,EAAE,GAAG,IAAM,KAAK,CAAC,EAAW,EAAE,MAAM,OAAO,GAAG,CAAC,EAAE,KAAK,CAAG,EAAE,SAAc,QAAG,EAAY,EAAI,EAAE,CAAC,IAAI,GAAQ,EAAkB,EAAI,EAAE,GAAK,SAAS,IAAM,UAAU,EAAE,EAAE,MAAM,cAAc,EAAE,CAAC,MAAM,GAAG,GAAG,CAAC,IAAI,QAAM,QAAM,MAAM,EAAO,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,CAAK,EAAE,OAAO,GAAG,EAAK,CAAC,EAAE,KAAK,IAAI,EAAE,QAAQ,KAAK,CAAC,UAAU,OAAO,EAAE,SAAS,QAAQ,CAAC,EAAI,EAAS,CAAC,GAAG,CAAC,GAAK,IAAU,KAAK,EAAI,IAAI,EAAW,GAAG,EAAW,KAAK,EAAQ,KAAK,EAAS,KAAK,IAAU,KAAK,EAAS,CAAG,EAAO,QAAG,EAAQ,EAAS,EAAa,EAAI,EAAE,EAAU,GAAK,CAAG,GAAG,GAAG,EAAM,GAAkB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,EAAgB,WAAW,iBAAiB,GAAyB,EAAE,iBAAiB,OAAO,wBAAsB,uBAAqB,mBAAiB,oBAAkB,cAAY,GAAe,GAAG,sBAAoB,kBAAgB,kBAAgB,GAAmB,EAAE,EAAa,GAAoB,EAAE,OAAO,OAAO,EAAE,EAAuB,GAAoB,EAAE,OAAO,wBAAwB,GAAG,YAAU,GAAsB,EAAE,EAAc,GAAgB,GAAG,4BAA0B,GAAyB,GAAG,aAAW,gBAAc,GAAc,GAAG,aAAW,GAAa,GAAG,qBAAmB,QAAQ,EAAS,YAAU,OAAO,EAAQ,cAAY,QAAQ,GAAS,iBAAc,iBAAe,wBAAqB,OAAO,GAAS,GAAoB,EAAE,EAAO,EAAQ,QAAQ,EAAE,EAAK,EAAQ,MAAM,EAAE,SAAS,CAAO,CAAC,EAAO,GAAQ,CAAC,GAAG,IAAS,KAAK,EAAe,GAAQ,SAAS,EAAE,IAAI,KAAU,MAAM,KAAe,OAAO,OAAE,GAAQ,SAAS,KAAK,EAAoB,GAAQ,OAAO,gBAAgB,EAAE,GAAG,EAAa,CAAM,GAAG,CAAC,EAAW,CAAM,EAAE,MAAM,IAAI,EAAsB,SAAS,EAAO,kBAAkB,EAAE,IAAI,EAAe,EAAc,KAAK,CAAM,EAAE,GAAG,KAAU,MAAM,KAAe,QAAG,GAAQ,OAAO,EAAyB,GAAQ,OAAO,CAAc,EAAE,OAAO,EAAe,SAAS,CAAG,CAAC,EAAG,GAAQ,CAAC,GAAG,OAAO,IAAK,WAAW,MAAM,IAAI,EAAqB,KAAK,CAAC,WAAW,eAAe,EAAE,CAAE,EAAE,GAAG,IAAS,KAAK,EAAe,GAAQ,SAAS,EAAE,IAAI,KAAU,MAAM,KAAe,OAAO,OAAE,GAAQ,SAAS,KAAK,EAAoB,GAAQ,OAAO,gBAAgB,EAAE,IAAI,EAAY,EAAE,IAAI,KAAU,MAAM,KAAe,OAAO,OAAE,GAAQ,cAAc,KAAK,EAAY,EAAU,GAAQ,WAAW,EAAE,IAAI,GAAc,EAAY,EAAE,IAAI,KAAU,MAAM,KAAe,OAAO,OAAE,GAAQ,gBAAgB,KAAK,GAAc,EAAU,GAAQ,aAAa,EAAE,OAAO,EAAgB,EAAY,sBAAsB,CAAC,EAAE,EAAgB,GAAc,wBAAwB,CAAC,EAAE,IAAe,EAAY,eAAe,EAAE,CAAC,IAAI,GAAO,GAAa,EAAE,eAAe,CAAC,KAAU,MAAM,KAAe,OAAO,OAAE,GAAQ,MAAM,EAAE,OAAO,CAAQ,CAAC,EAAE,EAAO,KAAK,EAAM,CAAC,EAAE,GAAU,CAAC,SAAM,EAAE,GAAK,GAAO,GAAK,GAAG,EAAI,EAAE,SAAS,CAAO,EAAE,CAAC,GAAK,GAAG,GAAmB,EAAE,SAAS,EAAkB,EAAE,CAAC,GAAK,EAAE,GAAY,EAAE,SAAS,EAAW,EAAE,CAAC,GAAG,IAAQ,CAAC,IAAM,EAAI,GAAa,EAAM,OAAO,GAAc,GAAO,EAAE,GAAO,KAAK,eAAe,EAAI,EAAE,CAAC,GAAG,CAAC,cAAc,MAAO,EAAO,CAAC,GAAG,GAAK,OAAO,GAAG,GAAO,QAAQ,MAAM,IAAI,EAAW,GAAG,CAAC,GAAG,GAAI,EAAG,GAAI,EAAS,EAAE,KAAM,EAAO,SAAS,GAAI,EAAe,EAAG,EAAE,MAAM,GAAI,CAAC,GAAI,GAAc,EAAG,EAAE,GAAG,GAAK,EAAE,GAAqB,GAAI,GAAmB,CAAO,EAAE,EAAM,KAAK,EAAG,EAAE,GAAK,GAAK,EAAE,GAAK,KAAK,GAAG,CAAC,KAAO,EAAM,QAAQ,IAAe,GAAK,GAAa,MAAM,IAAI,GAAS,CAAC,KAAU,CAAC,GAAO,GAAQ,EAAE,EAAM,KAAK,CAAI,EAAE,MAAM,GAAI,CAAC,IAAI,GAAI,GAAc,EAAG,EAAE,GAAqB,GAAI,GAAmB,CAAO,EAAE,EAAM,KAAK,EAAG,SAAE,CAAQ,GAAG,GAAK,GAAG,GAAK,GAAK,EAAE,GAAK,MAAM,GAAK,EAAE,GAAG,CAAC,MAAM,GAAG,CAAC,MAAM,EAAM,OAAO,EAAE,CAAC,IAAI,GAAI,MAAM,EAAM,GAAG,GAAG,KAAM,EAAK,OAAO,GAAG,GAAO,QAAQ,MAAM,IAAI,EAAW,GAAG,KAAM,EAAO,MAAM,GAAI,EAAM,MAAM,EAAE,GAAY,EAAE,MAAM,IAAI,GAAS,CAAC,KAAU,CAAC,GAAK,GAAQ,UAAG,CAAQ,GAAG,GAAK,GAAG,GAAO,GAAO,EAAE,GAAO,OAAO,KAAK,IAAI,EAAE,SAAS,CAAc,CAAC,EAAa,OAAE,CAAC,GAAG,GAAS,KAAK,EAAe,EAAQ,SAAS,EAAE,IAAI,IAAU,MAAM,IAAe,OAAO,OAAE,EAAQ,SAAS,KAAK,EAAoB,EAAQ,OAAO,gBAAgB,EAAE,OAAO,eAAe,EAAE,CAAC,IAAI,GAAM,EAAE,cAAc,MAAO,KAAK,CAAC,IAAI,EAAgB,GAAG,IAAU,MAAM,IAAe,SAAI,EAAgB,EAAQ,UAAU,MAAM,IAAuB,QAAG,EAAgB,QAAQ,MAAM,IAAI,EAAW,CAAC,MAAM,EAAQ,OAAO,MAAM,CAAC,EAAE,KAAK,CAAC,KAAQ,EAAG,IAAI,KAAK,IAAI,EAAE,eAAe,CAAI,CAAC,EAAG,GAAa,OAAE,CAAC,cAAc,KAAU,EAAO,KAAK,KAAK,EAAG,EAAO,EAAE,MAAM,GAAG,MAAM,GAAG,eAAe,CAAK,CAAC,EAAG,GAAa,OAAE,CAAC,GAAG,OAAO,IAAK,WAAW,MAAM,IAAI,EAAqB,KAAK,CAAC,WAAW,eAAe,EAAE,CAAE,EAAE,MAAM,CAAC,MAAM,EAAK,KAAK,KAAK,SAAS,IAAO,CAAC,MAAM,CAAC,MAAM,EAAG,GAAG,CAAI,GAAG,EAAO,EAAE,eAAe,CAAI,CAAC,EAAG,GAAQ,CAAC,cAAc,KAAU,EAAO,KAAK,KAAK,EAAG,EAAO,EAAE,OAAO,EAAO,OAAO,eAAe,CAAO,CAAC,EAAG,GAAQ,CAAC,GAAG,OAAO,IAAK,WAAW,MAAM,IAAI,EAAqB,KAAK,CAAC,WAAW,eAAe,EAAE,CAAE,EAAE,eAAe,CAAS,CAAC,GAAM,GAAS,CAAC,OAAO,MAAM,EAAG,GAAM,EAAQ,EAAE,EAAO,cAAc,MAAU,EAAI,KAAK,KAAK,EAAU,EAAO,IAAI,SAAS,CAAM,CAAC,EAAG,GAAQ,CAAC,GAAG,OAAO,IAAK,WAAW,MAAM,IAAI,EAAqB,KAAK,CAAC,WAAW,eAAe,EAAE,CAAE,EAAE,eAAe,CAAQ,CAAC,GAAM,GAAS,CAAC,GAAG,MAAM,EAAG,GAAM,EAAQ,EAAE,OAAO,GAAM,OAAO,EAAO,OAAO,EAAI,KAAK,KAAK,EAAS,EAAO,EAAE,MAAM,UAAkC,CAAgB,CAAC,WAAW,EAAE,CAAC,MAAM,QAAQ,EAAE,KAAK,QAAQ,sDAAsD,CAAC,eAAe,CAAM,CAAC,EAAQ,GAAa,EAAQ,CAAC,IAAI,GAAiB,GAAG,OAAO,IAAU,WAAW,MAAM,IAAI,EAAqB,UAAU,CAAC,WAAW,eAAe,EAAE,CAAO,EAAE,GAAG,GAAS,KAAK,EAAe,EAAQ,SAAS,EAAE,IAAI,IAAU,MAAM,IAAe,OAAO,OAAE,EAAQ,SAAS,KAAK,EAAoB,EAAQ,OAAO,gBAAgB,EAAE,IAAI,GAAgB,UAAU,OAAO,EAAE,GAAG,IAAU,MAAM,IAAe,SAAI,GAAiB,EAAQ,UAAU,MAAM,KAAwB,QAAG,GAAiB,QAAQ,CAAC,IAAI,GAAI,IAAI,EAAgB,OAAE,CAAC,MAAM,EAAQ,OAAO,MAAM,CAAC,EAAE,MAAM,KAAK,KAAK,QAAQ,IAAI,EAAE,EAAE,MAAM,EAAS,KAAK,QAAQ,EAAG,CAAC,EAAE,GAAI,IAAI,EAAG,IAAI,EAAgB,EAAO,EAAG,OAAO,GAAG,IAAU,MAAM,IAAe,QAAG,EAAQ,OAAO,CAAC,IAAI,GAAK,CAAC,KAAK,IAAI,GAAc,MAAM,GAAwB,EAAE,EAAE,EAAQ,OAAO,iBAAiB,QAAQ,IAAI,EAAG,MAAM,EAAE,EAAI,EAAE,IAAI,GAAqB,GAAG,GAAG,CAAC,cAAc,MAAS,KAAK,CAAC,IAAI,GAAiB,GAAG,GAAqB,GAAG,IAAU,MAAM,IAAe,SAAI,GAAiB,EAAQ,UAAU,MAAM,KAAwB,QAAG,GAAiB,QAAQ,MAAM,IAAI,EAAW,GAAG,CAAC,GAAgB,GAAa,GAAM,GAAgB,GAAQ,QAAa,MAAM,EAAQ,GAAa,GAAM,CAAC,QAAM,CAAC,EAAE,GAAG,CAAC,IAAsB,CAAC,GAAgB,MAAM,IAAI,SAA0B,CAAQ,EAAG,MAAM,EAAE,OAAO,GAAa,eAAe,CAAO,CAAC,EAAQ,CAAC,GAAG,GAAS,KAAK,EAAe,EAAQ,SAAS,EAAE,IAAI,IAAU,MAAM,IAAe,OAAO,OAAE,EAAQ,SAAS,KAAK,EAAoB,EAAQ,OAAO,gBAAgB,EAAE,IAAI,GAAO,CAAC,EAAE,cAAc,MAAO,KAAK,CAAC,IAAI,EAAiB,GAAG,IAAU,MAAM,IAAe,SAAI,EAAiB,EAAQ,UAAU,MAAM,IAAwB,QAAG,EAAiB,QAAQ,MAAM,IAAI,EAAgB,OAAE,CAAC,MAAM,EAAQ,OAAO,MAAM,CAAC,EAAE,EAAmB,GAAO,EAAG,EAAE,OAAO,GAAO,SAAS,CAAO,CAAC,EAAG,GAAQ,CAAC,IAAI,EAAO,EAAI,KAAK,KAAK,EAAG,EAAO,EAAE,OAAO,eAAe,EAAE,CAAC,cAAc,MAAO,EAAO,MAAM,IAAK,KAAK,IAAI,EAAE,SAAS,CAAmB,CAAC,EAAO,CAAC,GAAG,EAAO,EAAQ,CAAM,EAAE,EAAY,CAAM,EAAE,MAAO,GAAE,GAAG,EAAO,EAAE,MAAM,IAAI,EAAiB,SAAS,OAAO,CAAM,EAAE,OAAO,EAAO,SAAS,EAAI,CAAC,EAAO,GAAa,OAAE,CAAC,GAAG,IAAS,KAAK,EAAe,GAAQ,SAAS,EAAE,IAAI,KAAU,MAAM,KAAe,OAAO,OAAE,GAAQ,SAAS,KAAK,EAAoB,GAAQ,OAAO,gBAAgB,EAAE,OAAO,EAAO,EAAoB,CAAM,EAAE,eAAe,EAAE,CAAC,IAAI,EAAiB,GAAG,KAAU,MAAM,KAAe,SAAI,EAAiB,GAAQ,UAAU,MAAM,IAAwB,QAAG,EAAiB,QAAQ,MAAM,IAAI,EAAW,cAAc,MAAO,KAAK,CAAC,IAAI,GAAiB,GAAG,KAAU,MAAM,KAAe,SAAI,GAAiB,GAAQ,UAAU,MAAM,KAAwB,QAAG,GAAiB,QAAQ,MAAM,IAAI,EAAW,GAAG,KAAU,EAAE,MAAM,KAAM,KAAK,IAAI,EAAE,SAAS,EAAI,CAAC,EAAO,GAAa,OAAE,CAAC,GAAG,IAAS,KAAK,EAAe,GAAQ,SAAS,EAAE,IAAI,KAAU,MAAM,KAAe,OAAO,OAAE,GAAQ,SAAS,KAAK,EAAoB,GAAQ,OAAO,gBAAgB,EAAE,OAAO,EAAO,EAAoB,CAAM,EAAE,eAAe,EAAE,CAAC,IAAI,EAAiB,GAAG,KAAU,MAAM,KAAe,SAAI,EAAiB,GAAQ,UAAU,MAAM,IAAwB,QAAG,EAAiB,QAAQ,MAAM,IAAI,EAAW,cAAc,MAAO,KAAK,CAAC,IAAI,GAAiB,GAAG,KAAU,MAAM,KAAe,SAAI,GAAiB,GAAQ,UAAU,MAAM,KAAwB,QAAG,GAAiB,QAAQ,MAAM,IAAI,EAAW,GAAG,KAAU,EAAE,MAAM,GAAI,GAAG,GAAQ,EAAE,SAAS,KAAK,IAAI,EAAE,EAAQ,QAAQ,yBAAyB,CAAC,eAAe,EAAU,EAAe,8DAA8D,EAAE,QAAK,SAAO,UAAQ,MAAI,QAAK,SAAO,EAAE,EAAQ,QAAQ,0BAA0B,CAAC,QAAM,UAAQ,SAAO,UAAQ,OAAK,MAAI,EAAE,EAAM,GAAiB,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,oBAAkB,QAAQ,GAAU,GAAoB,GAAG,aAAW,eAAa,eAAa,GAAc,GAAG,aAAa,GAAI,GAAiB,GAAG,YAAU,GAAsB,EAAE,GAAe,EAAE,SAAS,CAAQ,IAAI,EAAQ,CAAC,OAAO,IAAI,EAAS,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAO,EAAI,EAAQ,EAAQ,EAAQ,OAAO,GAAG,GAAG,GAAS,OAAO,IAAU,UAAU,CAAC,EAAa,CAAO,GAAG,CAAC,EAAW,CAAO,GAAG,CAAC,EAAY,CAAO,EAAE,CAAC,IAAI,EAAQ,EAAkB,CAAO,EAAE,EAAO,EAAQ,OAAO,EAAI,EAAQ,IAAI,EAAG,EAAQ,CAAC,EAAI,IAAQ,CAAC,GAAG,EAAI,EAAO,CAAG,EAAO,OAAQ,CAAK,GAAG,CAAC,SAAO,KAAG,CAAC,EAAE,EAAE,EAAQ,QAAQ,CAAC,WAAS,UAAQ,EAAE,EAAM,GAAe,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,yBAA2B,uBAAqB,aAAW,gBAAc,GAAoB,GAAG,WAAW,OAAO,IAAkB,GAAa,GAAG,2BAAyB,6BAA2B,GAAkB,GAAG,OAAO,4BAA0B,GAAe,EAAE,EAAQ,GAAgB,GAAG,0BAAwB,2BAAyB,GAAc,GAAG,YAAU,GAAiB,GAAG,aAAW,GAAgB,EAAE,EAAI,GAAsB,EAAE,EAAS,GAAiB,EAAE,EAAM,GAAc,EAAE,EAAO,EAAQ,QAAQ,GAAe,EAAE,OAAO,EAAO,YAAY,EAAM,YAAY,EAAO,YAAY,EAAM,YAAY,EAAO,UAAU,EAAM,UAAU,EAAO,WAAW,EAAM,WAAW,EAAO,WAAW,EAAM,WAAW,EAAO,SAAS,GAAiB,EAAE,QAAQ,KAAO,EAAW,CAAwB,EAAE,CAAC,IAAI,EAAG,QAAQ,IAAI,EAAK,CAAC,GAAG,WAAW,MAAM,EAAwB,EAAE,OAAO,EAAO,SAAS,KAAK,EAAa,EAAG,KAAK,CAAI,CAAC,GAAG,EAAG,EAAyB,GAAK,EAAqB,EAAG,OAAO,CAAC,UAAU,KAAK,MAAM,EAAG,IAAI,CAAC,EAAE,EAAqB,EAAG,SAAS,CAAC,UAAU,KAAK,MAAM,EAAG,MAAM,CAAC,EAAE,EAAqB,EAAO,SAAS,UAAU,EAAI,CAAC,UAAU,KAAK,MAAM,EAAG,WAAW,GAAG,aAAa,GAAG,SAAS,EAAE,CAAC,EAAE,QAAQ,KAAO,EAAW,CAAyB,EAAE,CAAC,IAAI,EAAG,QAAQ,IAAI,EAAK,CAAC,GAAG,WAAW,MAAM,EAAwB,EAAE,OAAO,EAAa,EAAG,KAAK,CAAI,GAAG,EAAG,EAA0B,GAAK,EAAqB,EAAG,OAAO,CAAC,UAAU,KAAK,MAAM,EAAG,IAAI,CAAC,EAAE,EAAqB,EAAG,SAAS,CAAC,UAAU,KAAK,MAAM,EAAG,MAAM,CAAC,EAAE,EAAqB,EAAO,SAAS,UAAU,EAAI,CAAC,UAAU,KAAK,MAAM,EAAG,WAAW,GAAG,aAAa,GAAG,SAAS,EAAE,CAAC,EAAE,EAAO,SAAS,GAAiB,EAAE,EAAO,OAAO,GAAe,EAAE,EAAO,UAAU,GAAkB,EAAE,EAAO,YAAY,GAAoB,EAAE,EAAO,SAAS,EAAS,IAAI,kBAAgB,GAAyB,EAAE,EAAO,eAAe,EAAe,EAAO,SAAS,EAAI,EAAO,QAAQ,EAAU,EAAO,QAAQ,EAAQ,EAAO,wBAAwB,EAAwB,EAAO,wBAAwB,EAAwB,EAAqB,EAAO,WAAW,CAAC,UAAU,KAAK,aAAa,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,EAAS,CAAC,EAAE,EAAqB,EAAS,EAAgB,CAAC,UAAU,KAAK,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,EAAS,SAAS,CAAC,EAAE,EAAqB,EAAI,EAAgB,CAAC,UAAU,KAAK,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,EAAS,SAAS,CAAC,EAAE,EAAO,OAAO,EAAO,EAAO,cAAc,QAAQ,CAAC,EAAM,CAAC,OAAO,aAAiB,YAAY,EAAO,oBAAoB,QAAQ,CAAC,EAAM,CAAC,OAAO,EAAO,KAAK,EAAM,OAAO,EAAM,WAAW,EAAM,UAAU,GAAG,EAAM,GAAa,GAAW,CAAC,EAAS,IAAU,CAAC,IAAI,OAAyB,CAAC,IAAI,EAAa,GAAe,EAAE,EAAS,GAAiB,EAAE,EAAgB,EAAa,SAAS,QAAQ,EAAQ,QAAQ,EAAa,SAAS,EAAQ,QAAQ,oBAAoB,EAAa,oBAAoB,EAAQ,QAAQ,cAAc,EAAa,cAAc,EAAQ,QAAQ,YAAY,EAAa,YAAY,EAAQ,QAAQ,UAAU,EAAa,UAAU,EAAQ,QAAQ,WAAW,EAAa,WAAW,EAAQ,QAAQ,SAAS,EAAa,SAAS,EAAQ,QAAQ,SAAS,EAAa,SAAS,EAAQ,QAAQ,OAAO,EAAa,OAAO,EAAQ,QAAQ,UAAU,EAAa,UAAU,EAAQ,QAAQ,YAAY,EAAa,YAAY,EAAQ,QAAQ,eAAe,EAAa,eAAe,EAAQ,QAAQ,SAAS,EAAa,SAAS,EAAQ,QAAQ,QAAQ,EAAa,QAAQ,EAAQ,QAAQ,QAAQ,EAAgB,EAAQ,QAAQ,SAAS,EAAa,SAAS,EAAQ,QAAQ,QAAQ,EAAa,QAAQ,OAAO,eAAe,EAAa,WAAW,CAAC,aAAa,GAAG,WAAW,GAAG,GAAG,EAAE,CAAC,OAAO,EAAS,CAAC,EAAE,EAAQ,QAAQ,OAAO,EAAa,MAAM,CAAC,EAAQ,QAAQ,QAAQ,EAAQ,QAAQ,EAAE,GAAO,QAAQ,GAAa,k3BCI9kkI,SAAS,EAAS,EAAE,CAAC,OAAO,OALn5E,GAA0C,GAA4B,GAA8B,GAA8B,GAAiD,GAAQ,CAAC,EAAI,EAAW,IAAS,CAAC,EAAO,GAAK,KAAK,GAAS,GAAa,CAAG,CAAC,EAAE,CAAC,EAAE,IAAI,EAAG,GAAY,CAAC,GAAK,CAAC,EAAI,WAAW,GAAU,EAAO,UAAU,CAAC,MAAM,EAAI,WAAW,EAAE,CAAC,EAAE,EAAO,QAAQ,KAAO,GAAkB,CAAG,EAAE,GAAG,CAAC,GAAa,KAAK,EAAG,CAAG,EAAE,GAAU,EAAG,EAAI,CAAC,IAAI,IAAI,EAAI,GAAK,WAAW,EAAE,CAAC,EAAE,OAAO,GAAQ,GAAW,CAAC,EAAG,IAAM,KAAK,GAAK,GAAI,EAAI,CAAC,QAAQ,CAAC,CAAC,GAAG,QAAQ,CAAG,EAAE,EAAI,SAAgC,GAAqG,GAAoG,GAAoG,GAA47D,GAAoc,GAAoZ,GAAixC,GAAsK,GAA0E,GAAkF,GAA2E,GAA0E,GAA4E,GAA8E,GAA8E,GAAwE,GAAwE,GAA4E,GAAwE,GAAwE,GAAwE,GAA4E,GAAyG,GAA8K,GAAgG,GAAmJ,GAAiO,GAA4+B,GAA+V,GAAmI,GAAoJ,GAAgzC,GAA6J,GAAgG,GAAkG,GAAmH,GAAgP,GAAgW,GAAokB,GAA+c,GAAgM,GAA+tV,GAAsa,GAAykE,GAAupC,GAAyQ,GAA4U,GAAmvD,GAAkY,GAAk8B,GAA6N,GAAuiB,GAAuJ,GAAitD,GAA0K,GAA6V,GAA0jD,GAAshB,GAAm1C,GAA83E,GAAgmC,GAA2Y,GAAgW,GAA2N,GAA8mC,GAAormD,GAAsP,GAA+zB,GAAigD,GAAsiC,GAA22L,GAAqf,GAAoN,GAA2+c,GAA24F,GAA6rN,GAA6K,GAAwqI,GAAimD,GAAitB,GAAyqC,GAA0uE,GAAkjB,GAAq8L,GAA6oB,GAAsL,GAA67E,GAA43B,GAA8W,GAAolzB,GAAqzK,GAA+sE,GAAsoE,GAAqxE,GAAixJ,GAA4wD,GAAotC,GAA80E,GAAsS,GAAqrmD,GAA6nE,GAAiJ,GAAqrmD,GAE9k4S,GAAghE,GAAw7E,GAA2qX,GAAmO,GAAkmB,GAA8P,GAAojL,GAAs5B,GAA0H,GAA6jL,GACxh8B,GAA2H,GAAqP,GAAg9D,GAAmkF,GAA+hB,GAAy/E,GAAs7G,GAAs7B,GAAwY,GAAihC,GAA+tF,GAA6Y,GAAsI,GAAqrmD,GAAgS,GAAqspD,GAAm+B,GAAswD,GAAi0D,GAAkT,GAAmiB,GAA67D,GAAsS,GAE1ugI,GAAwD,GAA4B,GAAsD,GAA0B,GAA0C,GAA4B,GAAwC,GAA4B,GAAwC,GAAsC,GAAgC,GAAwC,GAAgC,GAA4C,GAAoC,GAAgD,GAAoC,GAAgD,GAAwC,GAAoD,GAAwC,GAA0C,GAAwD,GAAoE,GAAoD,GAA0D,GAA8C,GAAwC,GAA4B,GAA4C,GAAgC,GAAwC,GAA8C,GAAgD,GAA8C,GAAgD,GAAwC,GAAgD,GAAsD,GAAsC,GAAiB,SAAS,GAAgB,CAAC,IAAQ,CAAC,OAAO,OAAO,gBAAgB,CAAK,GAAG,GAAW,IAAI,CAAC,OAAO,OAAO,WAAW,GAAG,GAAkN,GAAiB,kBALz7E,GAAS,OAAO,OAAU,CAAC,eAAe,GAAa,eAAe,GAAU,oBAAoB,IAAmB,OAAW,GAAa,OAAO,UAAU,eAAub,GAAoB,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,sBAA0B,YAAY,EAAM,GAAoB,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,sBAA0B,WAAW,EAAM,GAAoB,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,sBAA0B,WAAW,EAAM,GAAmB,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,CAAC,wBAAwB,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,wCAAwC,EAAE,aAAa,CAAC,KAAK,YAAY,KAAK,SAAS,GAAG,wCAAwC,EAAE,wBAAwB,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,wCAAwC,EAAE,aAAa,CAAC,KAAK,YAAY,KAAK,SAAS,GAAG,wCAAwC,EAAE,wBAAwB,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,wCAAwC,EAAE,aAAa,CAAC,KAAK,YAAY,KAAK,SAAS,GAAG,wCAAwC,EAAE,wBAAwB,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,wCAAwC,EAAE,aAAa,CAAC,KAAK,YAAY,KAAK,SAAS,GAAG,wCAAwC,EAAE,WAAW,CAAC,KAAK,MAAM,KAAK,OAAO,GAAG,gCAAgC,EAAE,kBAAkB,CAAC,KAAK,QAAQ,KAAK,OAAO,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,QAAQ,KAAK,SAAS,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,QAAQ,KAAK,SAAS,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,QAAQ,KAAK,SAAS,GAAG,EAAE,EAAE,OAAO,CAAC,KAAK,QAAQ,KAAK,SAAS,GAAG,EAAE,EAAE,UAAU,CAAC,KAAK,MAAM,KAAK,OAAO,GAAG,EAAE,EAAE,WAAW,CAAC,KAAK,MAAM,KAAK,OAAO,GAAG,EAAE,EAAE,IAAI,CAAC,KAAK,MAAM,KAAK,OAAO,GAAG,EAAE,EAAE,kBAAkB,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,EAAE,EAAE,aAAa,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,EAAE,EAAE,kBAAkB,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,EAAE,EAAE,aAAa,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,EAAE,EAAE,kBAAkB,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,EAAE,EAAE,aAAa,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,EAAE,EAAE,kBAAkB,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,EAAE,EAAE,aAAa,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,EAAE,EAAE,gBAAgB,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,EAAE,EAAE,iBAAiB,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,gCAAgC,EAAE,gBAAgB,CAAC,KAAK,MAAM,KAAK,SAAS,GAAG,gCAAgC,EAAE,qBAAqB,CAAC,KAAK,MAAM,KAAK,MAAM,GAAG,sCAAsC,EAAE,UAAU,CAAC,KAAK,MAAM,KAAK,MAAM,GAAG,sCAAsC,CAAC,EAAE,EAAM,GAAqB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAU,SAAS,EAAU,KAAK,IAAI,EAAE,EAAE,EAAE,EAAE,EAAO,QAAQ,QAAQ,CAAC,EAAW,EAAO,CAAC,GAAG,OAAO,IAAa,SAAS,MAAM,UAAU,yBAAyB,EAAE,GAAG,EAAW,GAAG,CAAC,EAAU,CAAU,EAAE,MAAM,UAAU,gBAAgB,EAAE,GAAG,OAAO,IAAS,SAAS,MAAM,UAAU,yBAAyB,EAAE,GAAG,EAAO,GAAG,EAAO,GAAW,IAAS,EAAO,MAAM,UAAU,gBAAgB,GAAG,EAAM,GAAyB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAgB,GAAG,WAAW,SAAS,WAAW,QAAQ,QAAQ,EAAgB,QAAa,QAAG,WAAW,SAAS,WAAW,QAAQ,QAAQ,EAAc,SAAS,QAAQ,QAAQ,MAAM,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,EAAE,EAAE,EAAgB,GAAe,EAAE,QAAQ,SAAc,OAAgB,QAAQ,IAAI,EAAc,EAAO,QAAQ,EAAgB,EAAM,GAAoB,GAAW,CAAC,EAAQ,IAAS,CAAqF,wFAAI,gBAAyB,EAAQ,EAAO,OAAO,SAAS,CAAS,CAAC,EAAI,EAAI,CAAC,QAAQ,KAAO,EAAI,EAAI,GAAK,EAAI,GAAK,GAAG,EAAQ,MAAM,EAAQ,OAAO,EAAQ,aAAa,EAAQ,gBAAgB,EAAO,QAAQ,EAAY,OAAU,EAAO,CAAO,EAAE,EAAQ,OAAO,EAAW,SAAS,CAAU,CAAC,EAAI,EAAiB,EAAO,CAAC,OAAO,EAAQ,EAAI,EAAiB,CAAM,EAAE,EAAW,UAAU,OAAO,OAAO,EAAQ,SAAS,EAAE,EAAU,EAAQ,CAAU,EAAE,EAAW,KAAK,QAAQ,CAAC,EAAI,EAAiB,EAAO,CAAC,GAAG,OAAO,IAAM,SAAS,MAAM,UAAU,+BAA+B,EAAE,OAAO,EAAQ,EAAI,EAAiB,CAAM,GAAG,EAAW,MAAM,QAAQ,CAAC,EAAK,EAAK,EAAS,CAAC,GAAG,OAAO,IAAO,SAAS,MAAM,UAAU,2BAA2B,EAAE,IAAI,EAAI,EAAQ,CAAI,EAAE,GAAG,IAAY,OAAE,GAAG,OAAO,IAAW,SAAS,EAAI,KAAK,EAAK,CAAQ,EAAO,OAAI,KAAK,CAAI,EAAO,OAAI,KAAK,CAAC,EAAE,OAAO,GAAK,EAAW,YAAY,QAAQ,CAAC,EAAK,CAAC,GAAG,OAAO,IAAO,SAAS,MAAM,UAAU,2BAA2B,EAAE,OAAO,EAAQ,CAAI,GAAG,EAAW,gBAAgB,QAAQ,CAAC,EAAK,CAAC,GAAG,OAAO,IAAO,SAAS,MAAM,UAAU,2BAA2B,EAAE,OAAO,EAAO,WAAW,CAAI,GAAG,EAAM,GAAgB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAS,CAAC,EAAE,SAAS,EAAO,QAAQ,MAAM,SAAS,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAS,KAAK,CAAG,GAAG,kBAAkB,EAAM,GAAa,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,UAAU,EAAM,GAAwB,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,OAAO,EAAM,GAAkB,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,MAAM,EAAM,GAAa,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,UAAU,EAAM,GAAc,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,WAAW,EAAM,GAAY,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,eAAe,EAAM,GAAe,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,YAAY,EAAM,GAAY,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,SAAS,EAAM,GAAY,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,KAAK,IAAI,EAAM,GAAc,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,KAAK,MAAM,EAAM,GAAY,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,KAAK,IAAI,EAAM,GAAY,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,KAAK,IAAI,EAAM,GAAY,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,KAAK,IAAI,EAAM,GAAc,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,KAAK,MAAM,EAAM,GAAc,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,OAAO,OAAO,QAAQ,CAAC,EAAE,CAAC,OAAO,IAAI,GAAG,EAAM,GAAa,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAO,GAAc,EAAE,EAAO,QAAQ,QAAQ,CAAC,EAAO,CAAC,GAAG,EAAO,CAAM,GAAG,IAAS,EAAE,OAAO,EAAO,OAAO,EAAO,EAAE,GAAG,GAAG,EAAM,GAAa,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,OAAO,yBAAyB,EAAM,GAAa,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAM,GAAa,EAAE,GAAG,EAAM,GAAG,CAAC,EAAM,CAAC,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,EAAM,KAAK,EAAO,QAAQ,EAAM,EAAM,GAA2B,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAgB,OAAO,gBAAgB,GAAG,GAAG,EAAgB,GAAG,CAAC,EAAgB,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAgB,GAAG,EAAO,QAAQ,EAAgB,EAAM,GAAc,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,QAAQ,EAAE,CAAC,GAAG,OAAO,SAAS,YAAY,OAAO,OAAO,wBAAwB,WAAW,MAAM,GAAG,GAAG,OAAO,OAAO,WAAW,SAAS,MAAM,GAAG,IAAI,EAAI,CAAC,EAAE,EAAI,OAAO,MAAM,EAAE,EAAO,OAAO,CAAG,EAAE,GAAG,OAAO,IAAM,SAAS,MAAM,GAAG,GAAG,OAAO,UAAU,SAAS,KAAK,CAAG,IAAI,kBAAkB,MAAM,GAAG,GAAG,OAAO,UAAU,SAAS,KAAK,CAAM,IAAI,kBAAkB,MAAM,GAAG,IAAI,EAAO,GAAG,EAAI,GAAK,EAAO,QAAQ,KAAK,EAAI,MAAM,GAAG,GAAG,OAAO,OAAO,OAAO,YAAY,OAAO,KAAK,CAAG,EAAE,SAAS,EAAE,MAAM,GAAG,GAAG,OAAO,OAAO,sBAAsB,YAAY,OAAO,oBAAoB,CAAG,EAAE,SAAS,EAAE,MAAM,GAAG,IAAI,EAAK,OAAO,sBAAsB,CAAG,EAAE,GAAG,EAAK,SAAS,GAAG,EAAK,KAAK,EAAI,MAAM,GAAG,GAAG,CAAC,OAAO,UAAU,qBAAqB,KAAK,EAAI,CAAG,EAAE,MAAM,GAAG,GAAG,OAAO,OAAO,2BAA2B,WAAW,CAAC,IAAI,EAAW,OAAO,yBAAyB,EAAI,CAAG,EAAE,GAAG,EAAW,QAAQ,GAAQ,EAAW,aAAa,GAAG,MAAM,GAAG,MAAM,IAAI,EAAM,GAAoB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAW,OAAO,OAAO,KAAK,OAAO,EAAc,GAAc,EAAE,EAAO,QAAQ,QAAQ,EAAE,CAAC,GAAG,OAAO,IAAa,WAAW,MAAM,GAAG,GAAG,OAAO,SAAS,WAAW,MAAM,GAAG,GAAG,OAAO,EAAW,KAAK,IAAI,SAAS,MAAM,GAAG,GAAG,OAAO,OAAO,KAAK,IAAI,SAAS,MAAM,GAAG,OAAO,EAAc,GAAG,EAAM,GAA+B,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,OAAO,QAAQ,KAAK,QAAQ,gBAAgB,KAAK,EAAM,GAA8B,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAQ,GAAwB,EAAE,EAAO,QAAQ,EAAQ,gBAAgB,KAAK,EAAM,GAAuB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAc,kDAAkD,EAAM,OAAO,UAAU,SAAS,EAAI,KAAK,IAAI,EAAS,oBAAoB,EAAS,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,EAAI,GAAG,EAAE,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,GAAG,EAAE,EAAI,EAAE,EAAE,QAAQ,EAAE,GAAG,OAAO,GAAK,EAAM,QAAQ,CAAC,EAAQ,EAAO,CAAC,IAAI,EAAI,CAAC,EAAE,QAAQ,EAAE,GAAQ,EAAE,EAAE,EAAE,EAAE,EAAQ,OAAO,GAAG,EAAE,GAAG,EAAE,EAAI,GAAG,EAAQ,GAAG,OAAO,GAAK,EAAM,QAAQ,CAAC,EAAI,EAAO,CAAC,IAAI,EAAI,GAAG,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,GAAG,EAAE,GAAG,GAAK,EAAI,GAAG,EAAE,EAAE,EAAI,OAAO,GAAK,EAAO,OAAO,GAAK,EAAO,QAAQ,QAAQ,CAAC,EAAK,CAAC,IAAI,EAAO,KAAK,GAAG,OAAO,IAAS,YAAY,EAAM,MAAM,CAAM,IAAI,EAAS,MAAM,UAAU,EAAc,CAAM,EAAE,IAAI,EAAK,EAAM,UAAU,CAAC,EAAE,EAAM,EAAO,QAAQ,EAAE,CAAC,GAAG,gBAAgB,EAAM,CAAC,IAAI,EAAO,EAAO,MAAM,KAAK,EAAS,EAAK,SAAS,CAAC,EAAE,GAAG,OAAO,CAAM,IAAI,EAAO,OAAO,EAAO,OAAO,KAAK,OAAO,EAAO,MAAM,EAAK,EAAS,EAAK,SAAS,CAAC,GAAG,EAAY,EAAI,EAAE,EAAO,OAAO,EAAK,MAAM,EAAE,EAAU,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAY,IAAI,EAAU,GAAG,IAAI,EAAE,GAAG,EAAM,SAAS,SAAS,oBAAoB,EAAM,EAAU,GAAG,EAAE,2CAA2C,EAAE,CAAM,EAAE,EAAO,UAAU,CAAC,IAAI,EAAM,QAAQ,EAAE,GAAG,EAAM,UAAU,EAAO,UAAU,EAAM,UAAU,IAAI,EAAM,EAAM,UAAU,KAAK,OAAO,GAAO,EAAM,GAAsB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAe,GAAuB,EAAE,EAAO,QAAQ,SAAS,UAAU,MAAM,EAAe,EAAM,GAAqB,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,SAAS,UAAU,KAAK,EAAM,GAAsB,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,SAAS,UAAU,MAAM,EAAM,GAAqB,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,OAAO,QAAQ,KAAK,SAAS,QAAQ,MAAM,EAAM,GAAoB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAK,GAAsB,EAAE,EAAO,GAAsB,EAAE,EAAM,GAAqB,EAAE,EAAc,GAAqB,EAAE,EAAO,QAAQ,GAAe,EAAK,KAAK,EAAM,CAAM,EAAE,EAAM,GAAgC,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAK,GAAsB,EAAE,EAAW,GAAa,EAAE,EAAM,GAAqB,EAAE,EAAa,GAAoB,EAAE,EAAO,QAAQ,QAAQ,CAAC,EAAK,CAAC,GAAG,EAAK,OAAO,GAAG,OAAO,EAAK,KAAK,WAAW,MAAM,IAAI,EAAW,wBAAwB,EAAE,OAAO,EAAa,EAAK,EAAM,CAAI,GAAG,EAAM,GAAY,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAS,GAAgC,EAAE,EAAK,GAAa,EAAE,EAAiB,GAAG,CAAC,EAAiB,CAAC,EAAE,YAAY,MAAM,UAAU,MAAM,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,UAAU,EAAE,SAAS,IAAI,EAAE,OAAO,mBAAmB,MAAM,EAAE,IAAI,EAAK,CAAC,CAAC,GAAkB,GAAM,EAAK,OAAO,UAAU,WAAW,EAAE,EAAQ,OAAO,EAAgB,EAAQ,eAAe,EAAO,QAAQ,GAAM,OAAO,EAAK,MAAM,WAAW,EAAS,CAAC,EAAK,GAAG,CAAC,EAAE,OAAO,IAAkB,WAAW,QAAQ,CAAC,EAAM,CAAC,OAAO,EAAgB,GAAO,KAAK,EAAM,EAAQ,CAAK,CAAC,GAAG,GAAG,EAAM,GAAkB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAgB,GAA+B,EAAE,EAAiB,GAA8B,EAAE,EAAe,GAAY,EAAE,EAAO,QAAQ,EAAgB,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAgB,CAAC,GAAG,EAAiB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,OAAO,IAAI,UAAU,OAAO,IAAI,WAAW,MAAM,UAAU,yBAAyB,EAAE,OAAO,EAAiB,CAAC,GAAG,EAAe,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAe,CAAC,GAAG,KAAK,EAAM,GAAe,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAK,SAAS,UAAU,KAAK,EAAQ,OAAO,UAAU,eAAe,EAAK,GAAsB,EAAE,EAAO,QAAQ,EAAK,KAAK,EAAK,CAAO,EAAE,EAAM,GAAsB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAW,EAAQ,GAAwB,EAAE,EAAO,GAAkB,EAAE,EAAW,GAAa,EAAE,EAAY,GAAc,EAAE,EAAgB,GAAY,EAAE,EAAa,GAAe,EAAE,EAAW,GAAa,EAAE,EAAU,GAAY,EAAE,EAAI,GAAY,EAAE,EAAM,GAAc,EAAE,EAAI,GAAY,EAAE,EAAI,GAAY,EAAE,EAAI,GAAY,EAAE,EAAM,GAAc,EAAE,EAAK,GAAa,EAAE,EAAU,SAAS,EAAsB,QAAQ,CAAC,GAAiB,CAAC,GAAG,CAAC,OAAO,EAAU,yBAAyB,GAAiB,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAM,GAAa,EAAE,EAAgB,GAA2B,EAAE,EAAe,QAAQ,EAAE,CAAC,MAAM,IAAI,GAAY,EAAe,EAAM,QAAQ,EAAE,CAAC,GAAG,CAAC,OAAO,UAAU,OAAO,EAAe,MAAM,GAAa,CAAC,GAAG,CAAC,OAAO,EAAM,UAAU,QAAQ,EAAE,IAAI,MAAM,EAAW,CAAC,OAAO,KAAkB,EAAE,EAAe,GAAW,GAAoB,EAAE,EAAE,GAAS,GAAkB,EAAE,EAAW,GAA8B,EAAE,GAAY,GAA+B,EAAE,EAAO,GAAsB,EAAE,EAAM,GAAqB,EAAE,EAAU,CAAC,EAAE,EAAW,OAAO,WAAW,KAAK,CAAC,GAAS,EAAW,GAAS,UAAU,EAAE,EAAW,CAAC,UAAU,KAAK,mBAAmB,OAAO,eAAe,IAAI,EAAW,eAAe,UAAU,MAAM,gBAAgB,OAAO,YAAY,IAAI,EAAW,YAAY,2BAA2B,IAAY,GAAS,GAAS,CAAC,EAAE,OAAO,UAAU,CAAC,EAAE,EAAW,mCAAmC,EAAW,kBAAkB,EAAU,mBAAmB,EAAU,2BAA2B,EAAU,2BAA2B,EAAU,YAAY,OAAO,QAAQ,IAAI,EAAW,QAAQ,WAAW,OAAO,OAAO,IAAI,EAAW,OAAO,kBAAkB,OAAO,cAAc,IAAI,EAAW,cAAc,mBAAmB,OAAO,eAAe,IAAI,EAAW,eAAe,YAAY,QAAQ,aAAa,OAAO,SAAS,IAAI,EAAW,SAAS,SAAS,KAAK,cAAc,UAAU,uBAAuB,mBAAmB,cAAc,UAAU,uBAAuB,mBAAmB,UAAU,EAAO,SAAS,KAAK,cAAc,EAAW,iBAAiB,OAAO,aAAa,IAAI,EAAW,aAAa,iBAAiB,OAAO,aAAa,IAAI,EAAW,aAAa,iBAAiB,OAAO,aAAa,IAAI,EAAW,aAAa,yBAAyB,OAAO,qBAAqB,IAAI,EAAW,qBAAqB,aAAa,EAAU,sBAAsB,EAAU,cAAc,OAAO,UAAU,IAAI,EAAW,UAAU,eAAe,OAAO,WAAW,IAAI,EAAW,WAAW,eAAe,OAAO,WAAW,IAAI,EAAW,WAAW,aAAa,SAAS,UAAU,MAAM,sBAAsB,IAAY,GAAS,GAAS,GAAS,CAAC,EAAE,OAAO,UAAU,CAAC,CAAC,EAAE,EAAW,SAAS,OAAO,OAAO,SAAS,KAAK,EAAW,QAAQ,OAAO,IAAI,IAAI,EAAW,IAAI,yBAAyB,OAAO,IAAI,KAAK,CAAC,IAAY,CAAC,GAAS,EAAW,GAAS,IAAI,IAAI,EAAE,OAAO,UAAU,CAAC,EAAE,SAAS,KAAK,WAAW,OAAO,WAAW,EAAQ,oCAAoC,EAAM,eAAe,WAAW,aAAa,SAAS,YAAY,OAAO,QAAQ,IAAI,EAAW,QAAQ,UAAU,OAAO,MAAM,IAAI,EAAW,MAAM,eAAe,EAAY,mBAAmB,EAAgB,YAAY,OAAO,QAAQ,IAAI,EAAW,QAAQ,WAAW,OAAO,QAAQ,OAAO,IAAI,IAAI,EAAW,IAAI,yBAAyB,OAAO,IAAI,KAAK,CAAC,IAAY,CAAC,GAAS,EAAW,GAAS,IAAI,IAAI,EAAE,OAAO,UAAU,CAAC,EAAE,sBAAsB,OAAO,kBAAkB,IAAI,EAAW,kBAAkB,WAAW,OAAO,4BAA4B,IAAY,GAAS,GAAS,GAAG,OAAO,UAAU,CAAC,EAAE,EAAW,WAAW,GAAW,OAAO,EAAW,gBAAgB,EAAa,mBAAmB,EAAe,eAAe,EAAW,cAAc,EAAW,eAAe,OAAO,WAAW,IAAI,EAAW,WAAW,sBAAsB,OAAO,kBAAkB,IAAI,EAAW,kBAAkB,gBAAgB,OAAO,YAAY,IAAI,EAAW,YAAY,gBAAgB,OAAO,YAAY,IAAI,EAAW,YAAY,aAAa,EAAU,YAAY,OAAO,QAAQ,IAAI,EAAW,QAAQ,YAAY,OAAO,QAAQ,IAAI,EAAW,QAAQ,YAAY,OAAO,QAAQ,IAAI,EAAW,QAAQ,4BAA4B,EAAM,6BAA6B,EAAO,0BAA0B,EAAgB,0BAA0B,EAAW,aAAa,EAAI,eAAe,EAAM,aAAa,EAAI,aAAa,EAAI,aAAa,EAAI,eAAe,EAAM,cAAc,EAAK,2BAA2B,EAAW,EAAE,GAAG,GAAS,GAAG,CAAC,KAAK,MAAM,MAAM,GAAE,CAAC,EAAW,GAAS,GAAS,EAAC,CAAC,EAAE,EAAW,qBAAqB,EAAW,IAAI,EAAW,EAAO,SAAS,EAAM,CAAC,EAAK,CAAC,IAAI,GAAM,GAAG,IAAO,kBAAkB,GAAM,EAAsB,sBAAsB,EAAO,QAAG,IAAO,sBAAsB,GAAM,EAAsB,iBAAiB,EAAO,QAAG,IAAO,2BAA2B,GAAM,EAAsB,uBAAuB,EAAO,QAAG,IAAO,mBAAmB,CAAC,IAAI,GAAG,GAAO,0BAA0B,EAAE,GAAG,GAAG,GAAM,GAAG,UAAe,QAAG,IAAO,2BAA2B,CAAC,IAAI,EAAI,GAAO,kBAAkB,EAAE,GAAG,GAAK,GAAS,GAAM,GAAS,EAAI,SAAS,EAAE,OAAO,EAAW,GAAM,GAAM,IAAO,EAAe,CAAC,UAAU,KAAK,yBAAyB,CAAC,cAAc,WAAW,EAAE,mBAAmB,CAAC,QAAQ,WAAW,EAAE,uBAAuB,CAAC,QAAQ,YAAY,SAAS,EAAE,uBAAuB,CAAC,QAAQ,YAAY,SAAS,EAAE,oBAAoB,CAAC,QAAQ,YAAY,MAAM,EAAE,sBAAsB,CAAC,QAAQ,YAAY,QAAQ,EAAE,2BAA2B,CAAC,gBAAgB,WAAW,EAAE,mBAAmB,CAAC,yBAAyB,WAAW,EAAE,4BAA4B,CAAC,yBAAyB,YAAY,WAAW,EAAE,qBAAqB,CAAC,UAAU,WAAW,EAAE,sBAAsB,CAAC,WAAW,WAAW,EAAE,kBAAkB,CAAC,OAAO,WAAW,EAAE,mBAAmB,CAAC,QAAQ,WAAW,EAAE,uBAAuB,CAAC,YAAY,WAAW,EAAE,0BAA0B,CAAC,eAAe,WAAW,EAAE,0BAA0B,CAAC,eAAe,WAAW,EAAE,sBAAsB,CAAC,WAAW,WAAW,EAAE,cAAc,CAAC,oBAAoB,WAAW,EAAE,uBAAuB,CAAC,oBAAoB,YAAY,WAAW,EAAE,uBAAuB,CAAC,YAAY,WAAW,EAAE,wBAAwB,CAAC,aAAa,WAAW,EAAE,wBAAwB,CAAC,aAAa,WAAW,EAAE,cAAc,CAAC,OAAO,OAAO,EAAE,kBAAkB,CAAC,OAAO,WAAW,EAAE,iBAAiB,CAAC,MAAM,WAAW,EAAE,oBAAoB,CAAC,SAAS,WAAW,EAAE,oBAAoB,CAAC,SAAS,WAAW,EAAE,sBAAsB,CAAC,SAAS,YAAY,UAAU,EAAE,qBAAqB,CAAC,SAAS,YAAY,SAAS,EAAE,qBAAqB,CAAC,UAAU,WAAW,EAAE,sBAAsB,CAAC,UAAU,YAAY,MAAM,EAAE,gBAAgB,CAAC,UAAU,KAAK,EAAE,mBAAmB,CAAC,UAAU,QAAQ,EAAE,oBAAoB,CAAC,UAAU,SAAS,EAAE,wBAAwB,CAAC,aAAa,WAAW,EAAE,4BAA4B,CAAC,iBAAiB,WAAW,EAAE,oBAAoB,CAAC,SAAS,WAAW,EAAE,iBAAiB,CAAC,MAAM,WAAW,EAAE,+BAA+B,CAAC,oBAAoB,WAAW,EAAE,oBAAoB,CAAC,SAAS,WAAW,EAAE,oBAAoB,CAAC,SAAS,WAAW,EAAE,yBAAyB,CAAC,cAAc,WAAW,EAAE,wBAAwB,CAAC,aAAa,WAAW,EAAE,uBAAuB,CAAC,YAAY,WAAW,EAAE,wBAAwB,CAAC,aAAa,WAAW,EAAE,+BAA+B,CAAC,oBAAoB,WAAW,EAAE,yBAAyB,CAAC,cAAc,WAAW,EAAE,yBAAyB,CAAC,cAAc,WAAW,EAAE,sBAAsB,CAAC,WAAW,WAAW,EAAE,qBAAqB,CAAC,UAAU,WAAW,EAAE,qBAAqB,CAAC,UAAU,WAAW,CAAC,EAAE,EAAK,GAAsB,EAAE,EAAO,GAAe,EAAE,EAAQ,EAAK,KAAK,EAAM,MAAM,UAAU,MAAM,EAAE,EAAa,EAAK,KAAK,EAAO,MAAM,UAAU,MAAM,EAAE,EAAS,EAAK,KAAK,EAAM,OAAO,UAAU,OAAO,EAAE,EAAU,EAAK,KAAK,EAAM,OAAO,UAAU,KAAK,EAAE,EAAM,EAAK,KAAK,EAAM,OAAO,UAAU,IAAI,EAAE,EAAW,qGAAqG,GAAa,WAAW,GAAa,QAAQ,CAAC,GAAO,CAAC,IAAI,EAAM,EAAU,GAAO,EAAE,CAAC,EAAE,GAAK,EAAU,GAAO,EAAE,EAAE,GAAG,IAAQ,KAAK,KAAO,IAAI,MAAM,IAAI,EAAa,gDAAgD,EAAO,QAAG,KAAO,KAAK,IAAQ,IAAI,MAAM,IAAI,EAAa,gDAAgD,EAAE,IAAI,GAAO,CAAC,EAAE,OAAO,EAAS,GAAO,EAAW,QAAQ,CAAC,EAAM,EAAO,GAAM,GAAU,CAAC,GAAO,GAAO,QAAQ,GAAM,EAAS,GAAU,GAAa,IAAI,EAAE,GAAQ,EAAM,EAAE,IAAQ,EAAiB,QAAQ,CAAC,GAAK,EAAa,CAAC,IAAI,GAAc,GAAK,GAAM,GAAG,EAAO,EAAe,EAAa,EAAE,GAAM,EAAe,IAAe,GAAc,IAAI,GAAM,GAAG,IAAI,GAAG,EAAO,EAAW,EAAa,EAAE,CAAC,IAAI,EAAM,EAAW,IAAe,GAAG,IAAQ,EAAU,EAAM,EAAO,EAAa,EAAE,GAAG,OAAO,EAAM,KAAK,CAAC,EAAa,MAAM,IAAI,EAAW,aAAa,GAAK,sDAAsD,EAAE,MAAM,CAAC,SAAM,KAAK,GAAc,OAAK,EAAE,MAAM,IAAI,EAAa,aAAa,GAAK,kBAAkB,GAAG,EAAO,QAAQ,QAAQ,CAAC,GAAK,EAAa,CAAC,GAAG,OAAO,KAAO,UAAU,GAAK,SAAS,EAAE,MAAM,IAAI,EAAW,2CAA2C,EAAE,GAAG,UAAU,OAAO,GAAG,OAAO,IAAe,UAAU,MAAM,IAAI,EAAW,2CAA2C,EAAE,GAAG,EAAM,cAAc,EAAI,IAAI,KAAK,MAAM,IAAI,EAAa,oFAAoF,EAAE,IAAI,GAAM,GAAa,EAAI,EAAE,GAAkB,GAAM,OAAO,EAAE,GAAM,GAAG,GAAG,EAAU,EAAiB,IAAI,GAAkB,IAAI,CAAY,EAAE,EAAkB,EAAU,KAAK,GAAM,EAAU,MAAM,GAAmB,GAAG,GAAM,EAAU,MAAM,GAAG,GAAM,GAAkB,GAAM,GAAG,EAAa,GAAM,EAAQ,CAAC,EAAE,CAAC,EAAE,EAAK,CAAC,EAAE,QAAQ,GAAE,EAAE,EAAM,GAAG,GAAE,GAAM,OAAO,IAAG,EAAE,CAAC,IAAI,EAAK,GAAM,IAAG,GAAM,EAAU,EAAK,EAAE,CAAC,EAAE,GAAK,EAAU,EAAK,EAAE,EAAE,IAAI,KAAQ,KAAK,KAAQ,KAAK,KAAQ,MAAM,KAAO,KAAK,KAAO,KAAK,KAAO,OAAO,KAAQ,GAAK,MAAM,IAAI,EAAa,sDAAsD,EAAE,GAAG,IAAO,eAAe,CAAC,EAAM,GAAmB,GAAG,GAAG,IAAmB,IAAI,EAAK,EAAkB,IAAI,GAAkB,IAAI,EAAO,EAAW,CAAiB,EAAE,GAAM,EAAW,GAAwB,QAAG,IAAO,KAAK,CAAC,GAAG,EAAE,KAAQ,IAAO,CAAC,GAAG,CAAC,EAAa,MAAM,IAAI,EAAW,sBAAsB,GAAK,6CAA6C,EAAE,OAAO,GAAG,GAAO,GAAE,GAAG,GAAM,OAAO,CAAC,IAAI,GAAK,EAAM,GAAM,CAAI,EAAE,GAAG,EAAM,CAAC,CAAC,GAAK,GAAO,QAAQ,IAAM,EAAE,kBAAkB,GAAK,KAAK,GAAM,GAAK,IAAS,QAAM,GAAM,GAAW,OAAM,EAAO,GAAM,CAAI,EAAE,GAAM,GAAM,GAAM,GAAG,GAAO,CAAC,GAAmB,EAAW,GAAmB,IAAO,OAAO,IAAO,EAAM,GAAmB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAa,GAAsB,EAAE,EAAc,GAAgC,EAAE,EAAS,EAAc,CAAC,EAAa,4BAA4B,CAAC,CAAC,EAAE,EAAO,QAAQ,QAAQ,CAAC,EAAK,EAAa,CAAC,IAAI,EAAU,EAAa,EAAK,CAAC,CAAC,CAAY,EAAE,GAAG,OAAO,IAAY,YAAY,EAAS,EAAK,aAAa,EAAE,GAAG,OAAO,EAAc,CAAC,CAAS,CAAC,EAAE,OAAO,GAAW,EAAM,GAAoB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAQ,SAAS,UAAU,SAAS,EAAa,OAAO,UAAU,UAAU,UAAU,MAAM,QAAQ,MAAM,EAAa,EAAiB,GAAG,OAAO,IAAe,YAAY,OAAO,OAAO,iBAAiB,WAAW,GAAG,CAAC,EAAa,OAAO,eAAe,CAAC,EAAE,SAAS,CAAC,IAAI,QAAQ,EAAE,CAAC,MAAM,EAAiB,CAAC,EAAE,EAAiB,CAAC,EAAE,EAAa,QAAQ,EAAE,CAAC,KAAM,KAAI,KAAK,CAAY,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAiB,EAAa,KAAU,OAAa,KAAK,IAAI,EAAiB,cAAc,EAAa,QAAQ,CAAC,EAAM,CAAC,GAAG,CAAC,IAAI,EAAM,EAAQ,KAAK,CAAK,EAAE,OAAO,EAAiB,KAAK,CAAK,EAAE,MAAM,EAAE,CAAC,MAAM,KAAK,EAAkB,QAAQ,CAAC,EAAM,CAAC,GAAG,CAAC,GAAG,EAAa,CAAK,EAAE,MAAM,GAAG,OAAO,EAAQ,KAAK,CAAK,EAAE,GAAG,MAAM,EAAE,CAAC,MAAM,KAAK,EAAM,OAAO,UAAU,SAAS,EAAY,kBAAkB,EAAQ,oBAAoB,EAAS,6BAA6B,EAAS,6BAA6B,EAAU,mCAAmC,EAAU,0BAA0B,EAAe,OAAO,SAAS,YAAY,CAAC,CAAC,OAAO,YAAY,EAAO,EAAE,IAAI,EAAE,GAAG,EAAM,QAAQ,EAAE,CAAC,MAAM,IAAI,GAAG,OAAO,WAAW,UAAU,GAAG,EAAI,SAAS,IAAI,EAAM,KAAK,CAAG,IAAI,EAAM,KAAK,SAAS,GAAG,EAAE,EAAM,QAAQ,CAAC,EAAM,CAAC,IAAI,GAAQ,CAAC,KAAS,OAAO,EAAM,KAAK,OAAO,IAAQ,UAAU,GAAG,CAAC,IAAI,EAAI,EAAM,KAAK,CAAK,EAAE,OAAO,IAAM,GAAU,IAAM,GAAW,IAAM,GAAW,IAAM,IAAc,EAAM,EAAE,GAAG,KAAK,MAAM,EAAE,EAAE,MAAM,IAAI,IAAI,EAAI,EAAO,QAAQ,EAAa,QAAQ,CAAC,EAAM,CAAC,GAAG,EAAM,CAAK,EAAE,MAAM,GAAG,GAAG,CAAC,EAAM,MAAM,GAAG,GAAG,OAAO,IAAQ,YAAY,OAAO,IAAQ,SAAS,MAAM,GAAG,GAAG,CAAC,EAAa,EAAM,KAAK,CAAY,EAAE,MAAM,EAAE,CAAC,GAAG,IAAI,EAAiB,MAAM,GAAG,MAAM,CAAC,EAAa,CAAK,GAAG,EAAkB,CAAK,GAAG,QAAQ,CAAC,EAAM,CAAC,GAAG,EAAM,CAAK,EAAE,MAAM,GAAG,GAAG,CAAC,EAAM,MAAM,GAAG,GAAG,OAAO,IAAQ,YAAY,OAAO,IAAQ,SAAS,MAAM,GAAG,GAAG,EAAe,OAAO,EAAkB,CAAK,EAAE,GAAG,EAAa,CAAK,EAAE,MAAM,GAAG,IAAI,EAAS,EAAM,KAAK,CAAK,EAAE,GAAG,IAAW,GAAS,IAAW,GAAU,CAAC,iBAAiB,KAAK,CAAQ,EAAE,MAAM,GAAG,OAAO,EAAkB,CAAK,GAAG,EAAM,GAAiB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAW,GAAoB,EAAE,EAAM,OAAO,UAAU,SAAS,EAAe,OAAO,UAAU,eAAe,EAAa,QAAQ,CAAC,EAAM,EAAS,EAAS,CAAC,QAAQ,EAAE,EAAE,EAAI,EAAM,OAAO,EAAE,EAAI,IAAI,GAAG,EAAe,KAAK,EAAM,CAAC,EAAE,GAAG,GAAU,KAAK,EAAS,EAAM,GAAG,EAAE,CAAK,EAAO,OAAS,KAAK,EAAS,EAAM,GAAG,EAAE,CAAK,GAAG,EAAc,QAAQ,CAAC,EAAO,EAAS,EAAS,CAAC,QAAQ,EAAE,EAAE,EAAI,EAAO,OAAO,EAAE,EAAI,IAAI,GAAG,GAAU,KAAK,EAAS,EAAO,OAAO,CAAC,EAAE,EAAE,CAAM,EAAO,OAAS,KAAK,EAAS,EAAO,OAAO,CAAC,EAAE,EAAE,CAAM,GAAG,EAAc,QAAQ,CAAC,EAAO,EAAS,EAAS,CAAC,QAAQ,KAAK,EAAO,GAAG,EAAe,KAAK,EAAO,CAAC,EAAE,GAAG,GAAU,KAAK,EAAS,EAAO,GAAG,EAAE,CAAM,EAAO,OAAS,KAAK,EAAS,EAAO,GAAG,EAAE,CAAM,GAAG,SAAS,CAAO,CAAC,EAAE,CAAC,OAAO,EAAM,KAAK,CAAC,IAAI,iBAAiB,EAAO,QAAQ,QAAQ,CAAC,EAAK,EAAS,EAAQ,CAAC,GAAG,CAAC,EAAW,CAAQ,EAAE,MAAM,UAAU,6BAA6B,EAAE,IAAI,EAAS,GAAG,UAAU,QAAQ,EAAE,EAAS,EAAQ,GAAG,EAAQ,CAAI,EAAE,EAAa,EAAK,EAAS,CAAQ,EAAO,QAAG,OAAO,IAAO,SAAS,EAAc,EAAK,EAAS,CAAQ,EAAO,OAAc,EAAK,EAAS,CAAQ,GAAG,EAAM,GAAmC,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,CAAC,eAAe,eAAe,eAAe,YAAY,aAAa,aAAa,aAAa,oBAAoB,cAAc,cAAc,gBAAgB,gBAAgB,EAAE,EAAM,GAA+B,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAc,GAAmC,EAAE,EAAE,OAAO,WAAW,IAAI,WAAW,WAAW,EAAO,QAAQ,QAAQ,EAAE,CAAC,IAAI,EAAI,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAc,OAAO,IAAI,GAAG,OAAO,EAAE,EAAc,MAAM,WAAW,EAAI,EAAI,QAAQ,EAAc,GAAG,OAAO,GAAK,EAAM,GAA6B,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAgB,GAA2B,EAAE,EAAa,GAAe,EAAE,EAAW,GAAa,EAAE,EAAK,GAAa,EAAE,EAAO,QAAQ,QAAQ,CAAC,EAAI,EAAS,EAAM,CAAC,GAAG,CAAC,GAAK,OAAO,IAAM,UAAU,OAAO,IAAM,WAAW,MAAM,IAAI,EAAW,wCAAwC,EAAE,GAAG,OAAO,IAAW,UAAU,OAAO,IAAW,SAAS,MAAM,IAAI,EAAW,0CAA0C,EAAE,GAAG,UAAU,OAAO,GAAG,OAAO,UAAU,KAAK,WAAW,UAAU,KAAK,KAAK,MAAM,IAAI,EAAW,yDAAyD,EAAE,GAAG,UAAU,OAAO,GAAG,OAAO,UAAU,KAAK,WAAW,UAAU,KAAK,KAAK,MAAM,IAAI,EAAW,uDAAuD,EAAE,GAAG,UAAU,OAAO,GAAG,OAAO,UAAU,KAAK,WAAW,UAAU,KAAK,KAAK,MAAM,IAAI,EAAW,2DAA2D,EAAE,GAAG,UAAU,OAAO,GAAG,OAAO,UAAU,KAAK,UAAU,MAAM,IAAI,EAAW,yCAAyC,EAAE,IAAI,EAAc,UAAU,OAAO,EAAE,UAAU,GAAG,KAAK,EAAY,UAAU,OAAO,EAAE,UAAU,GAAG,KAAK,EAAgB,UAAU,OAAO,EAAE,UAAU,GAAG,KAAK,EAAM,UAAU,OAAO,EAAE,UAAU,GAAG,GAAG,EAAK,CAAC,CAAC,GAAM,EAAK,EAAI,CAAQ,EAAE,GAAG,EAAgB,EAAgB,EAAI,EAAS,CAAC,aAAa,IAAkB,MAAM,EAAK,EAAK,aAAa,CAAC,EAAgB,WAAW,IAAgB,MAAM,EAAK,EAAK,WAAW,CAAC,EAAc,QAAM,SAAS,IAAc,MAAM,EAAK,EAAK,SAAS,CAAC,CAAW,CAAC,EAAO,QAAG,GAAO,CAAC,GAAe,CAAC,GAAa,CAAC,EAAgB,EAAI,GAAU,EAAW,WAAM,IAAI,EAAa,6GAA6G,GAAG,EAAM,GAAiC,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAgB,GAA2B,EAAE,EAAuB,QAAQ,EAAE,CAAC,MAAM,CAAC,CAAC,GAAiB,EAAuB,wBAAwB,QAAQ,EAAE,CAAC,GAAG,CAAC,EAAgB,OAAO,KAAK,GAAG,CAAC,OAAO,EAAgB,CAAC,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,MAAM,KAAK,EAAO,QAAQ,EAAuB,EAAM,GAA4B,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAa,GAAsB,EAAE,EAAO,GAA6B,EAAE,EAAe,GAAiC,EAAE,EAAE,EAAK,GAAa,EAAE,EAAW,GAAa,EAAE,EAAO,EAAa,cAAc,EAAE,EAAO,QAAQ,QAAQ,CAAC,EAAG,EAAO,CAAC,GAAG,OAAO,IAAK,WAAW,MAAM,IAAI,EAAW,wBAAwB,EAAE,GAAG,OAAO,IAAS,UAAU,EAAO,GAAG,EAAO,YAAY,EAAO,CAAM,IAAI,EAAO,MAAM,IAAI,EAAW,4CAA4C,EAAE,IAAI,EAAM,UAAU,OAAO,GAAG,CAAC,CAAC,UAAU,GAAG,EAA6B,GAAG,EAAyB,GAAG,GAAG,WAAW,GAAI,EAAK,CAAC,IAAI,EAAK,EAAK,EAAG,QAAQ,EAAE,GAAG,GAAM,CAAC,EAAK,aAAa,EAA6B,GAAG,GAAG,GAAM,CAAC,EAAK,SAAS,EAAyB,GAAG,GAAG,GAA8B,GAA0B,CAAC,EAAM,GAAG,EAAe,EAAO,EAAG,SAAS,EAAO,GAAG,EAAE,EAAO,OAAO,EAAG,SAAS,CAAM,EAAE,OAAO,GAAI,EAAM,GAAkB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAK,GAAsB,EAAE,EAAO,GAAsB,EAAE,EAAY,GAAoB,EAAE,EAAO,QAAQ,QAAQ,EAAE,CAAC,OAAO,EAAY,EAAK,EAAO,SAAS,GAAG,EAAM,GAAkB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAkB,GAA4B,EAAE,EAAgB,GAA2B,EAAE,EAAc,GAAgC,EAAE,EAAU,GAAkB,EAAmN,GAAjN,EAAO,QAAQ,QAAQ,CAAC,EAAiB,CAAC,IAAI,EAAK,EAAc,SAAS,EAAE,EAAe,EAAiB,QAAQ,UAAU,OAAO,GAAG,OAAO,EAAkB,EAAK,GAAG,EAAe,EAAE,EAAe,GAAG,EAAE,GAAM,EAAgB,EAAgB,EAAO,QAAQ,QAAQ,CAAC,MAAM,CAAS,CAAC,EAAO,OAAO,QAAQ,MAAM,EAAU,EAAM,GAAe,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAW,GAAc,EAAE,EAAO,QAAQ,QAAQ,EAAE,CAAC,OAAO,EAAW,GAAG,CAAC,CAAC,OAAO,aAAa,EAAM,GAA0B,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAQ,GAAiB,EAAE,EAAqB,GAA+B,EAAE,EAAS,GAAkB,EAAE,EAAU,GAAmB,EAAE,EAAK,GAAa,EAAE,EAAS,GAAkB,EAAE,EAAU,EAAU,2BAA2B,EAAE,EAAe,GAAe,EAAE,EAAE,EAAE,OAAO,WAAW,IAAI,WAAW,WAAW,EAAY,EAAqB,EAAE,EAAO,EAAU,wBAAwB,EAAE,EAAS,EAAU,0BAA0B,EAAE,GAAG,QAAQ,CAAC,EAAM,EAAM,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAM,OAAO,GAAG,EAAE,GAAG,EAAM,KAAK,EAAM,OAAO,EAAE,MAAM,IAAI,EAAM,CAAC,UAAU,IAAI,EAAE,GAAG,GAAgB,GAAM,EAAS,EAAQ,EAAY,QAAQ,CAAC,EAAW,CAAC,IAAI,EAAI,IAAI,EAAE,GAAY,GAAG,OAAO,eAAe,GAAK,EAAS,CAAC,IAAI,EAAM,EAAS,CAAG,EAAE,EAAW,EAAK,EAAM,OAAO,WAAW,EAAE,GAAG,CAAC,GAAY,EAAM,CAAC,IAAI,EAAW,EAAS,CAAK,EAAE,EAAW,EAAK,EAAW,OAAO,WAAW,EAAE,EAAM,IAAI,GAAY,EAAS,EAAW,GAAG,GAAG,EAAO,OAAQ,EAAY,QAAQ,CAAC,EAAW,CAAC,IAAI,EAAI,IAAI,EAAE,GAAY,EAAG,EAAI,OAAO,EAAI,IAAI,GAAG,EAAG,EAAM,IAAI,GAAY,EAAS,CAAE,EAAE,EAAE,IAAI,EAAe,QAAQ,CAAC,EAAM,CAAC,IAAI,EAAM,GAAG,OAAO,EAAQ,EAAM,QAAQ,CAAC,EAAO,EAAW,CAAC,GAAG,CAAC,EAAM,GAAG,CAAC,GAAG,IAAI,EAAO,CAAK,IAAI,EAAW,EAAM,EAAO,EAAW,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAO,EAAU,QAAQ,CAAC,EAAM,CAAC,IAAI,EAAM,GAAG,OAAO,EAAQ,EAAM,QAAQ,CAAC,EAAO,EAAK,CAAC,GAAG,CAAC,EAAM,GAAG,CAAC,EAAO,CAAK,EAAE,EAAM,EAAO,EAAK,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,GAAO,EAAO,QAAQ,QAAQ,CAAC,EAAM,CAAC,GAAG,CAAC,GAAO,OAAO,IAAQ,SAAS,MAAM,GAAG,GAAG,CAAC,EAAe,CAAC,IAAI,EAAI,EAAO,EAAU,CAAK,EAAE,EAAE,EAAE,EAAE,GAAG,EAAS,EAAY,CAAG,EAAE,GAAG,OAAO,EAAI,GAAG,IAAM,SAAS,MAAM,GAAG,OAAO,EAAU,CAAK,EAAE,GAAG,CAAC,EAAK,OAAO,KAAK,OAAO,EAAe,CAAK,GAAG,EAAM,GAAuB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAgB,GAA0B,EAAE,EAAO,QAAQ,QAAQ,CAAC,EAAM,CAAC,MAAM,CAAC,CAAC,EAAgB,CAAK,GAAG,EAAM,GAA2B,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAW,GAAa,EAAE,EAAU,GAAmB,EAAE,EAAkB,EAAU,8BAA8B,EAAE,EAAE,EAAa,GAAuB,EAAE,EAAO,QAAQ,GAAmB,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,EAAa,CAAC,EAAE,MAAM,IAAI,EAAW,mBAAmB,EAAE,OAAO,EAAE,QAAQ,EAAM,GAAkB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAQ,GAAoB,EAAE,OAAO,EAAQ,GAAgB,EAAE,EAAiB,GAA2B,EAAE,EAAO,YAAY,QAAQ,QAAQ,CAAC,EAAI,CAAC,GAAG,CAAC,OAAO,EAAiB,CAAG,EAAE,GAAG,MAAM,EAAE,CAAC,MAAM,KAAK,EAAc,OAAO,WAAW,IAAI,EAAe,OAAO,YAAY,KAAK,OAAO,WAAW,IAAI,EAAmB,IAAiB,EAAQ,qBAAqB,YAAY,EAAQ,qBAAqB,EAAO,QAAQ,QAAQ,CAAC,EAAK,EAAS,CAAC,GAAG,EAAQ,SAAS,CAAI,EAAE,CAAC,GAAG,EAAK,aAAa,EAAE,aAAa,GAAM,OAAO,EAAQ,KAAK,CAAI,EAAE,OAAO,EAAK,GAAG,OAAO,IAAO,SAAS,OAAO,EAAQ,KAAK,EAAK,CAAQ,EAAE,GAAG,GAAgB,EAAO,CAAI,EAAE,CAAC,GAAG,EAAK,aAAa,EAAE,OAAO,EAAQ,MAAM,CAAC,EAAE,GAAG,EAAmB,CAAC,IAAI,EAAI,EAAQ,KAAK,EAAK,OAAO,EAAK,WAAW,EAAK,UAAU,EAAE,GAAG,EAAI,aAAa,EAAK,WAAW,OAAO,EAAI,IAAI,EAAM,aAAgB,WAAW,EAAK,IAAI,WAAW,EAAK,OAAO,EAAK,WAAW,EAAK,UAAU,EAAE,EAAO,EAAQ,KAAK,CAAK,EAAE,GAAG,EAAO,SAAS,EAAK,WAAW,OAAO,EAAO,GAAG,GAAe,aAAgB,WAAW,OAAO,EAAQ,KAAK,CAAI,EAAE,IAAI,EAAM,EAAQ,CAAI,EAAE,GAAG,EAAM,QAAQ,EAAE,EAAE,EAAE,EAAK,OAAO,GAAG,EAAE,CAAC,IAAI,EAAE,EAAK,GAAG,GAAG,OAAO,IAAI,UAAU,EAAE,GAAG,EAAE,KAAK,CAAC,CAAC,IAAI,EAAE,MAAM,WAAW,iDAAiD,EAAE,GAAG,GAAO,EAAQ,SAAS,CAAI,GAAG,EAAK,aAAa,OAAO,EAAK,YAAY,WAAW,YAAY,EAAK,YAAY,SAAS,CAAI,EAAE,OAAO,EAAQ,KAAK,CAAI,EAAE,MAAM,UAAU,wFAAwF,GAAG,EAAM,GAAmB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAQ,GAAoB,EAAE,OAAO,EAAS,GAAkB,EAAE,EAAc,OAAO,WAAW,IAAI,EAAe,GAAe,OAAO,YAAY,IAAI,EAAO,GAAgB,YAAY,OAAO,EAAO,QAAQ,QAAQ,CAAC,EAAM,EAAS,EAAK,CAAC,GAAG,OAAO,IAAQ,UAAU,EAAQ,SAAS,CAAK,GAAG,GAAe,aAAiB,YAAY,GAAQ,EAAO,CAAK,EAAE,OAAO,EAAS,EAAM,CAAQ,EAAE,MAAM,UAAU,EAAK,0DAA0D,GAAG,EAAM,GAAa,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAM,CAAC,UAAU,KAAK,IAAI,GAAG,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,GAAG,aAAa,GAAG,OAAO,GAAG,UAAU,EAAE,EAAE,EAAQ,CAAC,UAAU,KAAK,QAAQ,OAAO,UAAU,SAAS,UAAU,SAAS,UAAU,SAAS,UAAU,SAAS,aAAa,WAAW,EAAE,EAAW,GAAoB,EAAE,EAAQ,GAAoB,EAAE,OAAO,EAAgB,GAAqB,EAAE,EAAgB,GAAyB,EAAE,EAAS,GAAmB,EAAE,SAAS,CAAM,CAAC,EAAS,EAAK,EAAW,EAAO,EAAO,CAAC,EAAgB,EAAW,CAAM,EAAE,EAAS,EAAS,EAAS,EAAgB,UAAU,EAAE,EAAK,EAAS,EAAK,EAAgB,MAAM,EAAE,IAAI,GAAa,GAAQ,QAAQ,YAAY,EAAE,EAAa,EAAQ,IAAc,EAAY,EAAK,EAAM,GAAc,GAAG,OAAO,IAAO,UAAU,CAAC,EAAK,MAAM,UAAU,mCAAmC,CAAM,EAAE,IAAI,EAAG,EAAQ,YAAY,CAAM,EAAE,EAAO,EAAQ,YAAY,EAAK,OAAO,CAAC,EAAE,EAAK,KAAK,EAAO,EAAE,EAAE,EAAK,MAAM,EAAE,IAAI,EAAQ,EAAE,EAAK,EAAK,EAAE,KAAK,KAAK,EAAO,CAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,EAAO,cAAc,EAAE,EAAK,MAAM,EAAE,IAAI,GAAE,EAAW,EAAa,CAAQ,EAAE,OAAO,CAAM,EAAE,OAAO,EAAE,GAAE,GAAE,QAAQ,EAAE,EAAE,EAAE,EAAW,IAAI,CAAC,GAAE,EAAW,EAAa,CAAQ,EAAE,OAAO,EAAC,EAAE,OAAO,EAAE,QAAQ,GAAE,EAAE,GAAE,EAAK,KAAI,GAAE,KAAI,GAAE,IAAG,GAAE,KAAK,EAAG,CAAO,EAAE,GAAS,EAAK,OAAO,EAAG,EAAO,QAAQ,EAAO,EAAM,GAAc,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAQ,GAAoB,EAAE,OAAO,EAAgB,GAAqB,EAAE,EAAgB,GAAyB,EAAE,EAAK,GAAa,EAAE,EAAS,GAAmB,EAAE,EAAS,EAAO,WAAW,QAAQ,WAAW,OAAO,OAAO,EAAU,CAAC,IAAI,QAAQ,QAAQ,QAAQ,KAAK,QAAQ,OAAO,UAAU,UAAU,UAAU,OAAO,UAAU,UAAU,UAAU,UAAU,UAAU,OAAO,SAAS,EAAE,EAAO,CAAC,EAAE,EAAS,SAAS,CAAW,EAAE,CAAC,GAAG,EAAS,OAAO,EAAS,GAAG,WAAW,SAAS,WAAW,QAAQ,SAAS,EAAS,WAAW,QAAQ,SAAc,QAAG,WAAW,eAAe,EAAS,WAAW,eAAoB,QAAG,WAAW,aAAa,EAAS,WAAW,aAAkB,OAAS,WAAW,WAAW,OAAO,EAAS,SAAS,CAAa,CAAC,EAAS,EAAK,EAAW,EAAO,EAAK,CAAC,OAAO,EAAO,UAAU,MAAM,EAAS,CAAC,KAAK,QAAQ,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,WAAW,CAAC,KAAK,SAAS,OAAK,aAAW,KAAK,CAAC,KAAK,CAAI,CAAC,EAAE,EAAI,GAAQ,CAAC,EAAE,EAAE,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAQ,KAAK,CAAG,EAAE,EAAE,SAAS,CAAW,CAAC,EAAK,CAAC,GAAG,WAAW,SAAS,CAAC,WAAW,QAAQ,QAAQ,OAAO,QAAQ,QAAQ,EAAE,EAAE,GAAG,CAAC,GAAQ,CAAC,EAAO,WAAW,CAAC,EAAO,WAAW,OAAO,QAAQ,QAAQ,EAAE,EAAE,GAAG,EAAO,KAAa,OAAE,OAAO,EAAO,GAAM,EAAS,GAAU,EAAQ,MAAM,CAAC,EAAE,IAAI,EAAK,EAAc,EAAS,EAAS,GAAG,IAAI,CAAI,EAAE,KAAK,QAAQ,EAAE,CAAC,MAAM,IAAI,QAAQ,EAAE,CAAC,MAAM,GAAG,EAAE,OAAO,EAAO,GAAM,EAAK,EAAK,SAAS,CAAc,CAAC,EAAQ,EAAS,CAAC,EAAQ,KAAK,QAAQ,CAAC,EAAI,CAAC,EAAY,EAAE,QAAQ,EAAE,CAAC,EAAS,KAAK,CAAG,EAAE,GAAG,QAAQ,CAAC,EAAE,CAAC,EAAY,EAAE,QAAQ,EAAE,CAAC,EAAS,CAAC,EAAE,EAAE,EAAE,EAAO,QAAQ,QAAQ,CAAC,EAAS,EAAK,EAAW,EAAO,EAAO,EAAS,CAAC,GAAG,OAAO,IAAS,WAAW,EAAS,EAAO,EAAY,OAAE,GAAG,EAAgB,EAAW,CAAM,EAAE,EAAS,EAAS,EAAS,EAAgB,UAAU,EAAE,EAAK,EAAS,EAAK,EAAgB,MAAM,EAAE,OAAO,IAAW,WAAW,MAAM,MAAM,gCAAgC,EAAE,EAAO,GAAQ,OAAO,IAAI,EAAK,EAAU,EAAO,YAAY,GAAG,GAAG,CAAC,GAAM,OAAO,WAAW,UAAU,WAAW,CAAC,EAAY,EAAE,QAAQ,EAAE,CAAC,IAAI,EAAI,GAAG,CAAC,EAAI,EAAK,EAAS,EAAK,EAAW,EAAO,CAAM,EAAE,MAAM,GAAE,CAAC,EAAS,EAAC,EAAE,OAAO,EAAS,KAAK,CAAG,EAAE,EAAE,OAAO,EAAe,EAAY,CAAI,EAAE,KAAK,QAAQ,CAAC,EAAK,CAAC,GAAG,EAAK,OAAO,EAAc,EAAS,EAAK,EAAW,EAAO,CAAI,EAAE,OAAO,EAAK,EAAS,EAAK,EAAW,EAAO,CAAM,EAAE,EAAE,CAAQ,GAAG,EAAM,GAAe,GAAW,CAAC,IAAU,CAAC,IAAI,gBAA6B,EAAgB,GAAqB,EAAE,EAAgB,GAAyB,EAAE,EAAS,GAAmB,EAAE,SAAS,CAAY,CAAC,EAAS,EAAK,EAAW,EAAO,EAAO,EAAS,CAAC,GAAG,EAAgB,EAAW,CAAM,EAAE,EAAS,EAAS,EAAS,EAAgB,UAAU,EAAE,EAAK,EAAS,EAAK,EAAgB,MAAM,EAAE,OAAO,IAAS,WAAW,EAAS,EAAO,EAAO,OAAO,GAAG,OAAO,IAAW,WAAW,MAAM,MAAM,gCAAgC,EAAE,OAAO,EAAW,OAAO,EAAS,EAAK,EAAW,EAAO,EAAO,CAAQ,EAAE,SAAS,CAAgB,CAAC,EAAS,EAAK,EAAW,EAAO,EAAO,CAAC,OAAO,EAAgB,EAAW,CAAM,EAAE,EAAS,EAAS,EAAS,EAAgB,UAAU,EAAE,EAAK,EAAS,EAAK,EAAgB,MAAM,EAAE,EAAO,GAAQ,OAAO,EAAW,WAAW,EAAS,EAAK,EAAW,EAAO,CAAM,EAAE,GAAG,CAAC,EAAW,YAAY,EAAW,WAAW,SAAS,EAAE,QAAQ,gBAAgB,IAAI,GAAG,EAAQ,WAAW,GAAa,EAAE,EAAQ,OAAO,GAAc,EAAO,OAAQ,WAAW,EAAiB,EAAQ,OAAO,EAAa,EAAM,GAA0B,GAAW,CAAC,IAAU,CAAC,IAAI,gBAA0B,EAAQ,aAAa,EAAQ,OAAO,EAAQ,aAAa,EAAQ,eAAe,EAAQ,SAAS,EAAQ,eAAe,EAAQ,eAAe,EAAQ,SAAS,EAAQ,eAAe,EAAQ,iBAAiB,EAAQ,WAAW,EAAQ,iBAAiB,EAAQ,YAAY,EAAQ,WAAW,EAAQ,WAAW,EAAM,GAAuB,GAAW,CAAC,IAAU,CAAC,IAAI,gBAA0B,EAAQ,mBAAmB,EAAQ,mBAAmB,EAAQ,yBAAyB,EAAQ,yBAAyB,EAAQ,iBAAiB,EAAQ,iBAAiB,EAAQ,oBAAoB,EAAQ,oBAAoB,EAAQ,cAAc,EAAQ,cAAc,EAAM,GAAwB,GAAW,CAAC,IAAU,CAAC,IAAI,gBAA0B,EAAQ,WAAW,EAAQ,WAAW,EAAQ,KAAK,EAAQ,KAAK,EAAQ,aAAa,EAAQ,aAAa,EAAQ,OAAO,EAAQ,OAAO,EAAM,GAAgB,GAAW,CAAC,EAAQ,IAAS,CAAC,EAAO,QAAQ,CAAC,KAAK,WAAW,QAAQ,QAAQ,YAAY,kBAAkB,KAAK,kBAAkB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,KAAK,kBAAkB,WAAW,wBAAwB,KAAK,qDAAqD,KAAK,+BAA+B,QAAQ,6BAA6B,EAAE,WAAW,CAAC,KAAK,MAAM,IAAI,iCAAiC,EAAE,SAAS,CAAC,KAAK,WAAW,QAAQ,cAAc,EAAE,OAAO,oCAAoC,QAAQ,MAAM,KAAK,CAAC,IAAI,4CAA4C,EAAE,SAAS,sCAAsC,gBAAgB,CAAC,KAAK,SAAS,UAAU,SAAS,OAAO,SAAS,MAAM,SAAS,mBAAmB,SAAS,YAAY,SAAS,wBAAwB,SAAS,qBAAqB,SAAS,uBAAuB,SAAS,uBAAuB,SAAS,kBAAkB,SAAS,SAAS,SAAS,MAAM,QAAQ,EAAE,aAAa,CAAC,QAAQ,UAAU,QAAQ,SAAS,UAAU,SAAS,YAAY,SAAS,SAAS,SAAS,sBAAsB,SAAS,4BAA4B,QAAQ,CAAC,EAAE,EAAM,GAAW,GAAW,CAAC,EAAQ,IAAS,EAAE,QAAQ,CAAC,EAAQ,EAAS,CAAC,SAAS,CAAM,CAAC,EAAI,EAAI,CAAC,GAAG,CAAC,EAAI,MAAM,MAAM,GAAK,kBAAkB,EAAE,SAAS,CAAQ,CAAC,EAAK,EAAU,CAAC,EAAK,OAAO,EAAU,IAAI,EAAS,QAAQ,EAAE,GAAG,EAAS,UAAU,EAAU,UAAU,EAAK,UAAU,IAAI,EAAS,EAAK,UAAU,YAAY,EAAK,SAAS,CAAE,CAAC,EAAO,EAAK,EAAO,CAAC,GAAG,EAAG,KAAK,CAAM,EAAE,OAAO,EAAO,GAAG,KAAK,SAAS,EAAE,KAAK,MAAM,KAAK,KAAK,OAAO,EAAE,KAAK,IAAI,KAAK,IAAS,KAAK,CAAC,GAAG,IAAO,MAAM,IAAO,KAAK,EAAO,EAAK,EAAK,GAAG,KAAK,MAAM,GAAQ,EAAE,GAAM,GAAG,GAAQ,IAAI,GAAG,GAAG,OAAO,IAAU,SAAS,EAAQ,QAAQ,EAAQ,OAAS,GAAG,EAAG,EAAG,GAAG,EAAG,EAAG,SAAS,GAAG,IAAI,EAAQ,GAAG,CAAC,GAAG,OAAO,OAAO,KAAK,OAAO,OAAO,OAAO,IAAI,EAAQ,OAAO,OAAY,qBAA0B,OAAO,MAAM,EAAE,EAAE,EAAG,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,aAAe,EAAG,MAAM,GAAG,OAAO,IAAM,MAAM,OAAO,IAAM,UAAU,EAAI,YAAY,WAAW,EAAG,UAAU,MAAM,QAAQ,EAAI,KAAK,GAAG,EAAG,IAAI,QAAQ,CAAC,EAAK,EAAM,CAAC,GAAG,EAAK,IAAI,CAAK,EAAE,EAAE,OAAO,EAAK,OAAO,GAAO,EAAG,IAAI,QAAQ,CAAC,EAAK,EAAM,CAAC,GAAG,EAAK,IAAI,CAAK,EAAE,EAAE,OAAO,EAAK,OAAO,GAAO,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAO,EAAK,EAAO,CAAC,GAAG,OAAO,IAAS,SAAS,OAAO,KAAK,YAAY,EAAO,EAAK,CAAM,EAAE,GAAG,OAAO,IAAS,SAAS,OAAO,KAAK,WAAW,EAAO,EAAK,CAAM,EAAE,GAAG,IAAO,MAAM,EAAK,GAAG,EAAO,KAAQ,EAAK,IAAI,GAAM,GAAG,GAAM,EAAE,EAAE,EAAO,EAAO,SAAS,EAAE,QAAQ,OAAO,EAAE,EAAE,IAAI,EAAM,EAAE,GAAG,EAAO,KAAK,IAAI,IAAQ,KAAK,SAAS,EAAE,GAAG,EAAM,EAAO,QAAQ,GAAG,IAAO,GAAG,KAAK,UAAU,EAAO,EAAM,CAAM,EAAO,QAAG,KAAK,WAAW,EAAO,EAAK,CAAK,EAAE,IAAS,KAAK,KAAK,WAAW,KAAK,QAAQ,EAAE,EAAK,CAAM,IAAI,EAAG,UAAU,YAAY,QAAQ,CAAC,EAAO,EAAK,EAAO,CAAC,GAAG,EAAO,EAAE,KAAK,SAAS,EAAE,EAAO,CAAC,EAAO,GAAG,EAAO,SAAS,KAAK,MAAM,CAAC,EAAO,QAAQ,EAAE,KAAK,OAAO,EAAO,QAAG,EAAO,iBAAiB,KAAK,MAAM,CAAC,EAAO,SAAS,EAAO,SAAS,QAAQ,EAAE,KAAK,OAAO,EAAO,OAAO,EAAO,gBAAgB,EAAE,KAAK,MAAM,CAAC,EAAO,SAAS,EAAO,SAAS,SAAS,CAAC,EAAE,KAAK,OAAO,EAAE,GAAG,IAAS,KAAK,OAAO,KAAK,WAAW,KAAK,QAAQ,EAAE,EAAK,CAAM,GAAG,EAAG,UAAU,WAAW,QAAQ,CAAC,EAAO,EAAK,EAAO,CAAC,GAAG,EAAO,OAAO,EAAO,SAAS,QAAQ,EAAE,EAAO,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,OAAO,KAAK,KAAK,EAAO,OAAO,CAAC,EAAE,KAAK,MAAM,MAAM,KAAK,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,EAAI,EAAE,GAAG,IAAS,MAAM,IAAI,EAAE,EAAO,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAO,GAAG,EAAO,EAAE,IAAI,EAAE,EAAO,EAAE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,EAAI,SAAS,KAAK,MAAM,EAAE,GAAG,IAAI,GAAG,EAAI,SAAS,GAAK,GAAG,GAAK,GAAG,GAAK,GAAG,IAAS,QAAG,IAAS,MAAM,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAO,OAAO,GAAG,EAAE,GAAG,EAAE,EAAO,GAAG,EAAO,EAAE,IAAI,EAAE,EAAO,EAAE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,EAAI,SAAS,KAAK,MAAM,EAAE,GAAG,IAAI,GAAG,EAAI,SAAS,GAAK,GAAG,GAAK,GAAG,GAAK,GAAG,IAAI,OAAO,KAAK,MAAM,GAAG,SAAS,CAAa,CAAC,EAAO,EAAM,CAAC,IAAI,EAAE,EAAO,WAAW,CAAK,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,OAAO,EAAE,GAAQ,QAAG,GAAG,IAAI,GAAG,IAAI,OAAO,EAAE,GAAQ,YAAO,EAAE,GAAG,GAAG,SAAS,CAAY,CAAC,EAAO,EAAW,EAAM,CAAC,IAAI,EAAE,EAAc,EAAO,CAAK,EAAE,GAAG,EAAM,GAAG,EAAW,GAAG,EAAc,EAAO,EAAM,CAAC,GAAG,EAAE,OAAO,EAAE,EAAG,UAAU,UAAU,QAAQ,CAAC,EAAO,EAAM,EAAO,CAAC,KAAK,OAAO,KAAK,MAAM,EAAO,OAAO,GAAO,CAAC,EAAE,KAAK,MAAM,MAAM,KAAK,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI,EAAI,EAAE,EAAE,EAAE,EAAE,GAAG,IAAS,KAAK,IAAI,EAAE,EAAO,OAAO,EAAE,GAAG,EAAM,GAAG,EAAE,GAAG,EAAE,EAAa,EAAO,EAAM,CAAC,GAAG,EAAI,KAAK,MAAM,IAAI,EAAE,SAAS,GAAK,GAAG,GAAK,GAAG,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,GAAQ,QAAK,EAAM,KAAC,IAAI,EAAY,EAAO,OAAO,EAAM,IAAI,EAAE,EAAY,IAAI,EAAE,EAAM,EAAE,EAAM,EAAE,EAAO,OAAO,GAAG,EAAE,GAAG,EAAE,EAAa,EAAO,EAAM,CAAC,GAAG,EAAI,KAAK,MAAM,IAAI,EAAE,SAAS,GAAK,GAAG,GAAK,GAAG,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,GAAQ,QAAK,EAAE,KAAK,MAAM,GAAG,SAAS,CAAS,CAAC,EAAI,EAAM,EAAI,EAAI,CAAC,IAAI,EAAE,EAAE,EAAI,KAAK,IAAI,EAAI,OAAO,CAAG,EAAE,QAAQ,EAAE,EAAM,EAAE,EAAI,IAAI,CAAC,IAAI,EAAE,EAAI,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,EAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAQ,QAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAQ,QAAG,EAAE,OAAO,EAAE,EAAG,UAAU,WAAW,QAAQ,CAAC,EAAO,EAAK,EAAM,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,QAAQ,EAAQ,EAAE,EAAQ,EAAE,GAAS,SAAS,GAAS,EAAK,IAAU,IAAU,EAAQ,EAAQ,EAAK,EAAE,IAAI,EAAM,EAAO,OAAO,EAAM,EAAI,EAAM,EAAQ,EAAI,KAAK,IAAI,EAAM,EAAM,CAAG,EAAE,EAAM,EAAK,EAAE,QAAQ,EAAE,EAAM,EAAE,EAAI,GAAG,EAAQ,GAAG,EAAK,EAAU,EAAO,EAAE,EAAE,EAAQ,CAAI,EAAE,KAAK,MAAM,CAAO,EAAE,KAAK,MAAM,GAAG,EAAK,SAAS,KAAK,MAAM,IAAI,EAAU,UAAK,OAAO,CAAI,EAAE,GAAG,IAAM,EAAE,CAAC,IAAI,EAAI,EAAE,EAAK,EAAU,EAAO,EAAE,EAAO,OAAO,CAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAI,IAAI,GAAK,EAAK,GAAG,KAAK,MAAM,CAAG,EAAE,KAAK,MAAM,GAAG,EAAK,SAAS,KAAK,MAAM,IAAI,EAAU,UAAK,OAAO,CAAI,EAAE,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAK,CAAC,EAAK,MAAM,MAAM,KAAK,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,EAAK,MAAM,GAAG,KAAK,MAAM,GAAG,EAAK,OAAO,KAAK,OAAO,EAAK,SAAS,KAAK,SAAS,EAAK,IAAI,KAAK,KAAK,EAAG,UAAU,MAAM,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAG,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC,EAAE,GAAG,EAAG,UAAU,QAAQ,QAAQ,CAAC,EAAK,CAAC,MAAM,KAAK,OAAO,EAAK,KAAK,MAAM,KAAK,UAAU,EAAE,OAAO,MAAM,EAAG,UAAU,MAAM,QAAQ,EAAE,CAAC,MAAM,KAAK,OAAO,GAAG,KAAK,MAAM,KAAK,OAAO,KAAK,EAAE,KAAK,SAAS,OAAO,KAAK,UAAU,GAAG,EAAG,UAAU,UAAU,QAAQ,EAAE,CAAC,GAAG,KAAK,SAAS,GAAG,KAAK,MAAM,KAAK,EAAE,KAAK,SAAS,EAAE,OAAO,MAAM,EAAG,UAAU,QAAQ,QAAQ,EAAE,CAAC,OAAO,KAAK,IAAI,UAAU,SAAS,KAAK,SAAS,EAAE,EAAE,KAAK,IAAI,EAAM,CAAC,GAAG,IAAI,KAAK,MAAM,OAAO,QAAQ,SAAS,UAAU,WAAW,YAAY,aAAa,cAAc,eAAe,gBAAgB,iBAAiB,kBAAkB,mBAAmB,oBAAoB,qBAAqB,sBAAsB,uBAAuB,wBAAwB,yBAAyB,0BAA0B,2BAA2B,2BAA2B,EAAE,EAAW,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAW,CAAC,EAAE,EAAE,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,IAAI,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,EAAE,GAAG,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAK,EAAQ,CAAC,EAAK,GAAM,GAAG,EAAQ,EAAQ,GAAG,EAAE,IAAI,EAAI,GAAG,IAAO,IAAI,IAAO,MAAM,CAAC,EAAI,GAAG,IAAI,EAAI,EAAE,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,IAAO,GAAG,EAAI,GAAO,UAAU,SAAS,EAAE,EAAE,GAAG,EAAM,IAAI,GAAG,EAAI,SAAS,GAAK,EAAE,GAAK,GAAG,GAAK,GAAG,IAAI,GAAG,IAAQ,GAAG,IAAI,KAAK,OAAO,EAAE,EAAI,EAAM,EAAE,EAAK,QAAQ,EAAK,EAAS,OAAI,EAAK,EAAI,GAAG,IAAQ,EAAE,EAAI,EAAM,SAAS,EAAE,EAAE,EAAI,MAAM,EAAI,OAAO,IAAU,EAAE,EAAI,IAAI,EAAI,GAAG,KAAK,WAAW,EAAE,EAAI,IAAI,EAAI,OAAO,EAAI,GAAG,KAAQ,EAAK,IAAI,GAAM,GAAG,GAAM,GAAG,CAAC,IAAI,EAAU,EAAW,GAAM,EAAU,EAAW,GAAM,EAAI,GAAG,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,CAAS,EAAE,SAAS,CAAI,EAAE,GAAG,EAAE,EAAE,MAAM,CAAS,EAAE,CAAC,EAAE,OAAO,EAAE,EAAI,EAAM,EAAU,EAAE,QAAQ,EAAE,EAAS,OAAI,EAAE,EAAI,GAAG,KAAK,OAAO,EAAE,EAAI,IAAI,EAAI,MAAM,EAAI,OAAO,IAAU,EAAE,EAAI,IAAI,EAAI,GAAG,KAAK,WAAW,EAAE,EAAI,IAAI,EAAI,OAAO,EAAI,EAAO,GAAG,iCAAiC,GAAG,EAAG,UAAU,SAAS,QAAQ,EAAE,CAAC,IAAI,EAAI,KAAK,MAAM,GAAG,GAAG,KAAK,SAAS,EAAE,GAAK,KAAK,MAAM,GAAG,SAAc,QAAG,KAAK,SAAS,GAAG,KAAK,MAAM,KAAK,EAAE,GAAK,iBAAiB,KAAK,MAAM,GAAG,SAAc,QAAG,KAAK,OAAO,EAAE,EAAO,GAAG,4CAA4C,EAAE,OAAO,KAAK,WAAW,EAAE,CAAC,EAAI,GAAK,EAAG,UAAU,OAAO,QAAQ,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,GAAG,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAO,EAAO,CAAC,OAAO,EAAO,OAAO,EAAQ,GAAG,EAAE,KAAK,YAAY,EAAQ,EAAO,CAAM,GAAG,EAAG,UAAU,QAAQ,QAAQ,CAAC,EAAO,EAAO,CAAC,OAAO,KAAK,YAAY,MAAM,EAAO,CAAM,GAAG,EAAG,UAAU,YAAY,QAAQ,CAAC,EAAU,EAAO,EAAO,CAAC,IAAI,EAAW,KAAK,WAAW,EAAE,EAAU,GAAQ,KAAK,IAAI,EAAE,CAAU,EAAE,EAAO,GAAY,EAAU,uCAAuC,EAAE,EAAO,EAAU,EAAE,6BAA6B,EAAE,KAAK,MAAM,EAAE,IAAI,EAAa,IAAS,KAAK,EAAI,IAAI,EAAU,CAAS,EAAE,EAAE,EAAE,EAAE,KAAK,MAAM,EAAE,GAAG,CAAC,EAAa,CAAC,IAAI,EAAE,EAAE,EAAE,EAAU,EAAW,IAAI,EAAI,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,EAAI,EAAU,EAAE,GAAG,EAAM,KAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,EAAI,GAAG,EAAE,KAAK,EAAE,EAAU,IAAI,EAAI,GAAG,EAAE,OAAO,GAAK,KAAK,MAAM,EAAG,UAAU,WAAW,QAAQ,CAAC,EAAE,CAAC,MAAO,IAAG,KAAK,MAAM,CAAC,GAAQ,OAAG,UAAU,WAAW,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,KAAK,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAG,UAAU,UAAU,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,MAAO,IAAG,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,OAAO,GAAG,EAAG,UAAU,UAAU,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,MAAM,KAAK,OAAO,GAAG,EAAG,KAAK,WAAW,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,GAAG,GAAI,SAAS,CAAU,CAAC,EAAI,CAAC,IAAI,EAAE,MAAM,EAAI,UAAU,CAAC,EAAE,QAAQ,EAAI,EAAE,EAAI,EAAE,OAAO,IAAM,CAAC,IAAI,EAAI,EAAI,GAAG,EAAE,EAAK,EAAI,GAAG,EAAE,IAAM,EAAI,MAAM,GAAK,GAAG,KAAQ,EAAK,OAAO,EAAE,EAAG,UAAU,SAAS,QAAQ,EAAE,CAAC,GAAG,KAAK,OAAO,EAAE,MAAO,GAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU,KAAK,MAAM,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,MAAM,OAAO,GAAG,EAAG,UAAU,WAAW,QAAQ,EAAE,CAAC,OAAO,KAAK,KAAK,KAAK,UAAU,EAAE,CAAC,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAM,CAAC,GAAG,KAAK,WAAW,EAAE,OAAO,KAAK,IAAI,EAAE,MAAM,CAAK,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAM,CAAC,GAAG,KAAK,MAAM,EAAM,CAAC,EAAE,OAAO,KAAK,KAAK,CAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,MAAM,QAAQ,EAAE,CAAC,OAAO,KAAK,WAAW,GAAG,EAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,MAAM,EAAE,KAAK,GAAG,EAAG,UAAU,KAAK,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,OAAO,MAAM,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,MAAM,KAAK,OAAO,EAAI,OAAO,KAAK,MAAM,KAAK,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,IAAI,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,EAAI,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,GAAQ,KAAK,SAAS,EAAI,YAAY,CAAC,EAAE,KAAK,KAAK,CAAG,GAAG,EAAG,UAAU,GAAG,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,IAAI,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,IAAI,IAAI,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,KAAK,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,EAAI,OAAO,EAAE,EAAS,OAAE,KAAK,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,EAAI,MAAM,GAAG,OAAO,KAAK,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,GAAQ,KAAK,SAAS,EAAI,YAAY,CAAC,EAAE,KAAK,MAAM,CAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,KAAK,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,MAAM,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,OAAO,EAAI,OAAO,EAAE,KAAK,EAAE,EAAS,OAAE,EAAI,EAAE,KAAK,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,OAAO,KAAK,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,GAAQ,KAAK,SAAS,EAAI,YAAY,CAAC,EAAE,KAAK,MAAM,CAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,KAAK,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,MAAM,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAM,CAAC,EAAO,OAAO,IAAQ,UAAU,GAAO,CAAC,EAAE,IAAI,EAAY,KAAK,KAAK,EAAM,EAAE,EAAE,EAAE,EAAS,EAAM,GAAG,GAAG,KAAK,QAAQ,CAAW,EAAE,EAAS,EAAE,IAAc,QAAQ,EAAE,EAAE,EAAE,EAAY,IAAI,KAAK,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,SAAS,GAAG,EAAS,EAAE,KAAK,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,UAAU,GAAG,EAAS,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAM,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAK,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,EAAI,CAAC,EAAO,OAAO,IAAM,UAAU,GAAK,CAAC,EAAE,IAAI,EAAI,EAAI,GAAG,EAAE,EAAK,EAAI,GAAG,GAAG,KAAK,QAAQ,EAAI,CAAC,EAAE,EAAI,KAAK,MAAM,GAAK,KAAK,MAAM,GAAK,GAAG,EAAU,UAAK,MAAM,GAAK,KAAK,MAAM,GAAK,EAAE,GAAG,GAAM,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,GAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,OAAO,KAAK,SAAS,EAAE,EAAE,KAAK,KAAK,CAAG,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAO,QAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,OAAO,EAAI,SAAS,EAAE,EAAE,KAAK,KAAK,CAAG,EAAE,EAAI,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,OAAO,EAAI,OAAO,EAAE,KAAK,EAAE,EAAS,OAAE,EAAI,EAAE,KAAK,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,GAAG,EAAM,KAAK,MAAM,GAAG,EAAE,SAAS,EAAM,IAAI,GAAG,KAAK,IAAQ,GAAG,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAM,KAAK,MAAM,GAAG,EAAE,SAAS,EAAM,IAAI,GAAG,GAAG,KAAK,OAAO,EAAE,OAAO,IAAQ,EAAE,KAAK,MAAM,KAAK,QAAQ,EAAM,KAAK,SAAc,QAAG,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,OAAO,MAAM,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,GAAG,EAAI,WAAW,GAAG,KAAK,WAAW,EAAE,OAAO,EAAI,SAAS,EAAE,EAAI,KAAK,IAAI,CAAG,EAAE,EAAI,UAAU,EAAE,EAAS,QAAG,EAAI,WAAW,GAAG,KAAK,WAAW,EAAE,OAAO,KAAK,SAAS,EAAE,EAAI,EAAI,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAI,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,KAAK,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,EAAI,WAAW,EAAE,CAAC,EAAI,SAAS,EAAE,IAAI,EAAE,KAAK,KAAK,CAAG,EAAE,OAAO,EAAI,SAAS,EAAE,EAAE,UAAU,EAAO,QAAG,KAAK,WAAW,EAAE,OAAO,KAAK,SAAS,EAAE,KAAK,KAAK,CAAG,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,IAAI,EAAI,KAAK,IAAI,CAAG,EAAE,GAAG,IAAM,EAAE,OAAO,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,EAAI,EAAE,EAAE,KAAK,EAAE,EAAS,OAAE,EAAI,EAAE,KAAK,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,GAAG,EAAM,EAAM,GAAG,GAAG,KAAK,MAAM,GAAG,EAAE,SAAS,KAAK,IAAQ,GAAG,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAM,EAAM,GAAG,GAAG,KAAK,MAAM,GAAG,EAAE,SAAS,GAAG,IAAQ,GAAG,EAAE,EAAE,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,GAAG,KAAK,OAAO,KAAK,IAAI,KAAK,OAAO,CAAC,EAAE,IAAI,KAAK,KAAK,SAAS,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,GAAG,SAAS,CAAU,CAAC,EAAM,EAAI,EAAI,CAAC,EAAI,SAAS,EAAI,SAAS,EAAM,SAAS,IAAI,EAAI,EAAM,OAAO,EAAI,OAAO,EAAE,EAAI,OAAO,EAAI,EAAI,EAAI,EAAE,EAAE,IAAI,EAAE,EAAM,MAAM,GAAG,EAAE,EAAE,EAAI,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,EAAE,SAAS,EAAM,EAAE,SAAS,EAAE,EAAI,MAAM,GAAG,EAAG,QAAQ,EAAE,EAAE,EAAE,EAAI,IAAI,CAAC,IAAI,EAAO,IAAQ,GAAG,EAAM,EAAM,SAAS,EAAK,KAAK,IAAI,EAAE,EAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,EAAE,EAAM,OAAO,CAAC,EAAE,GAAG,EAAK,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAM,MAAM,GAAG,EAAE,EAAE,EAAI,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,EAAM,GAAQ,EAAE,SAAS,EAAE,EAAM,EAAE,SAAS,EAAI,MAAM,GAAG,EAAM,EAAE,EAAM,EAAO,EAAE,GAAG,IAAQ,EAAE,EAAI,MAAM,GAAG,EAAM,EAAO,OAAI,SAAS,OAAO,EAAI,MAAM,EAAE,IAAI,EAAY,QAAQ,CAAC,EAAM,EAAI,EAAI,CAAC,IAAI,EAAE,EAAM,MAAM,EAAE,EAAI,MAAM,EAAE,EAAI,MAAM,EAAE,EAAE,EAAG,EAAI,EAAG,EAAG,EAAE,GAAG,EAAE,EAAI,EAAG,KAAK,EAAI,IAAK,GAAG,EAAG,EAAE,GAAG,EAAE,EAAI,EAAG,KAAK,EAAI,IAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,EAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,EAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,EAAI,GAAG,KAAK,EAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,EAAI,GAAG,KAAK,EAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,EAAI,KAAK,GAAG,EAAG,EAAE,GAAG,EAAE,GAAI,EAAG,KAAK,GAAI,IAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,EAAI,SAAS,EAAM,SAAS,EAAI,SAAS,EAAI,OAAO,GAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IA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AAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,EAAG,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,G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,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,gEAAgE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,iEAAiE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CA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,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAI,SAAS,OAAO,GAAK,GAAG,CAAC,KAAK,KAAK,EAAY,EAAW,SAAS,CAAQ,CAAC,EAAM,EAAI,EAAI,CAAC,EAAI,SAAS,EAAI,SAAS,EAAM,SAAS,EAAI,OAAO,EAAM,OAAO,EAAI,OAAO,IAAI,EAAM,EAAE,EAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,IAAI,CAAC,IAAI,EAAO,EAAQ,EAAQ,EAAE,IAAI,EAAM,EAAM,SAAS,EAAK,KAAK,IAAI,EAAE,EAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,EAAE,EAAM,OAAO,CAAC,EAAE,GAAG,EAAK,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAM,MAAM,GAAG,EAAE,EAAE,EAAI,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,EAAE,SAAS,EAAO,GAAQ,EAAE,SAAS,GAAG,EAAE,EAAG,EAAG,EAAM,EAAE,EAAM,EAAG,SAAS,EAAO,GAAQ,IAAK,IAAI,EAAE,GAAS,IAAS,GAAG,GAAQ,SAAS,EAAI,MAAM,GAAG,EAAM,EAAM,EAAO,EAAO,EAAQ,GAAG,IAAQ,EAAE,EAAI,MAAM,GAAG,EAAW,OAAI,SAAS,OAAO,EAAI,MAAM,EAAE,SAAS,CAAU,CAAC,EAAM,EAAI,EAAI,CAAC,IAAI,EAAK,IAAI,EAAK,OAAO,EAAK,KAAK,EAAM,EAAI,CAAG,EAAE,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,EAAI,CAAC,IAAI,EAAI,EAAI,KAAK,OAAO,EAAI,OAAO,GAAG,KAAK,SAAS,IAAI,EAAI,SAAS,GAAG,EAAI,EAAY,KAAK,EAAI,CAAG,EAAO,QAAG,EAAI,GAAG,EAAI,EAAW,KAAK,EAAI,CAAG,EAAO,QAAG,EAAI,KAAK,EAAI,EAAS,KAAK,EAAI,CAAG,EAAO,OAAI,EAAW,KAAK,EAAI,CAAG,EAAE,OAAO,GAAK,SAAS,CAAI,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAK,UAAU,QAAQ,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,EAAG,UAAU,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,EAAK,UAAU,OAAO,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,IAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,GAAI,EAAK,UAAU,QAAQ,QAAQ,CAAC,EAAI,EAAI,EAAI,EAAK,EAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAK,GAAG,EAAI,EAAI,IAAI,EAAK,GAAG,EAAI,EAAI,KAAK,EAAK,UAAU,UAAU,QAAQ,CAAC,EAAI,EAAI,EAAK,EAAK,EAAE,EAAI,CAAC,KAAK,QAAQ,EAAI,EAAI,EAAI,EAAK,EAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAM,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,EAAM,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAO,EAAM,EAAO,EAAM,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAG,EAAK,EAAE,GAAG,EAAG,EAAK,EAAE,GAAG,GAAG,EAAK,EAAE,EAAE,GAAG,GAAG,EAAK,EAAE,EAAE,GAAG,EAAG,EAAO,GAAG,EAAO,GAAG,GAAG,GAAG,EAAO,GAAG,EAAO,GAAG,GAAG,EAAG,EAAK,EAAE,GAAG,EAAG,GAAG,EAAK,EAAE,GAAG,EAAG,GAAG,EAAK,EAAE,EAAE,GAAG,EAAG,GAAG,EAAK,EAAE,EAAE,GAAG,EAAG,GAAG,IAAI,EAAE,EAAG,EAAM,EAAO,EAAM,EAAO,EAAO,EAAM,EAAO,EAAM,EAAO,EAAO,MAAO,EAAK,UAAU,YAAY,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,MAAO,IAAG,EAAE,EAAE,GAAK,EAAK,UAAU,UAAU,QAAQ,CAAC,EAAI,EAAI,EAAE,CAAC,GAAG,GAAG,EAAE,OAAO,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAI,GAAG,EAAI,GAAG,EAAI,EAAE,EAAE,GAAG,EAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAI,GAAG,EAAI,GAAG,CAAC,EAAI,EAAE,EAAE,GAAG,EAAI,EAAE,EAAE,GAAG,CAAC,IAAI,EAAK,UAAU,aAAa,QAAQ,CAAC,EAAG,EAAE,CAAC,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,EAAG,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,KAAK,MAAM,EAAG,EAAE,GAAG,CAAC,EAAE,EAAM,GAAG,EAAG,GAAG,EAAE,SAAS,EAAE,SAAS,EAAM,EAAO,OAAM,EAAE,SAAS,EAAE,OAAO,GAAI,EAAK,UAAU,WAAW,QAAQ,CAAC,EAAG,EAAI,EAAI,EAAE,CAAC,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,IAAI,EAAM,GAAO,EAAG,GAAG,GAAG,EAAI,EAAE,GAAG,EAAM,KAAK,EAAM,IAAQ,GAAG,EAAI,EAAE,EAAE,GAAG,EAAM,KAAK,EAAM,IAAQ,GAAG,IAAI,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAI,GAAG,EAAE,EAAO,IAAQ,CAAC,EAAE,GAAQ,EAAM,SAAS,CAAC,GAAG,EAAK,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAG,GAAG,EAAE,OAAO,GAAI,EAAK,UAAU,KAAK,QAAQ,CAAC,EAAE,EAAE,EAAI,CAAC,IAAI,EAAE,EAAE,KAAK,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,EAAI,KAAK,QAAQ,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,EAAE,EAAI,MAAM,CAAC,EAAE,EAAK,MAAM,CAAC,EAAE,EAAK,MAAM,CAAC,EAAE,EAAK,MAAM,CAAC,EAAE,EAAM,MAAM,CAAC,EAAE,EAAM,MAAM,CAAC,EAAE,EAAK,EAAI,MAAM,EAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,OAAO,EAAI,CAAC,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,OAAO,EAAK,CAAC,EAAE,KAAK,UAAU,EAAI,EAAE,EAAK,EAAK,EAAE,CAAG,EAAE,KAAK,UAAU,EAAK,EAAE,EAAM,EAAM,EAAE,CAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAG,EAAK,GAAG,EAAM,GAAG,EAAK,GAAG,EAAM,GAAG,EAAK,GAAG,EAAK,GAAG,EAAM,GAAG,EAAK,GAAG,EAAM,GAAG,EAAK,GAAG,EAAG,OAAO,KAAK,UAAU,EAAK,EAAK,CAAC,EAAE,KAAK,UAAU,EAAK,EAAK,EAAK,EAAE,EAAE,CAAG,EAAE,KAAK,UAAU,EAAK,EAAE,CAAC,EAAE,KAAK,aAAa,EAAK,CAAC,EAAE,EAAI,SAAS,EAAE,SAAS,EAAE,SAAS,EAAI,OAAO,EAAE,OAAO,EAAE,OAAO,EAAI,MAAM,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,IAAI,EAAG,IAAI,EAAE,OAAO,EAAI,MAAM,MAAM,KAAK,OAAO,EAAI,MAAM,EAAE,KAAK,MAAM,EAAI,CAAG,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,IAAI,EAAG,IAAI,EAAE,OAAO,EAAI,MAAM,MAAM,KAAK,OAAO,EAAI,MAAM,EAAE,EAAW,KAAK,EAAI,CAAG,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,EAAI,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,EAAO,OAAO,IAAM,QAAQ,EAAE,EAAO,EAAI,QAAQ,EAAE,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,MAAM,GAAG,GAAG,EAAI,GAAI,EAAE,WAAW,EAAM,UAAU,IAAQ,GAAG,GAAO,EAAE,SAAS,EAAE,GAAO,IAAK,GAAG,KAAK,MAAM,GAAG,EAAG,SAAS,GAAG,IAAQ,EAAE,KAAK,MAAM,GAAG,EAAM,KAAK,SAAS,OAAO,KAAK,OAAO,IAAM,EAAE,EAAE,KAAK,OAAO,MAAM,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,IAAI,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,EAAE,CAAC,OAAO,KAAK,KAAK,KAAK,MAAM,CAAC,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,EAAW,CAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,IAAI,EAAG,CAAC,EAAE,IAAI,EAAI,KAAK,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAI,EAAI,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,OAAO,QAAQ,EAAE,EAAI,IAAI,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAI,EAAI,IAAI,CAAC,EAAE,OAAO,GAAK,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAK,CAAC,EAAO,OAAO,IAAO,UAAU,GAAM,CAAC,EAAE,IAAI,EAAE,EAAK,GAAG,GAAG,EAAK,GAAG,GAAG,EAAU,WAAW,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,EAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAS,KAAK,MAAM,GAAG,EAAU,GAAG,KAAK,MAAM,GAAG,GAAG,GAAU,EAAE,KAAK,MAAM,GAAG,EAAE,EAAM,EAAM,IAAW,GAAG,EAAE,GAAG,EAAM,KAAK,MAAM,GAAG,EAAM,KAAK,SAAS,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,GAAG,EAAE,IAAI,KAAK,MAAM,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,KAAK,MAAM,GAAG,EAAE,KAAK,QAAQ,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAK,CAAC,OAAO,EAAO,KAAK,WAAW,CAAC,EAAE,KAAK,OAAO,CAAI,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAK,EAAK,EAAS,CAAC,EAAO,OAAO,IAAO,UAAU,GAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAK,GAAG,EAAK,EAAK,IAAI,GAAQ,OAAE,EAAE,IAAI,EAAE,EAAK,GAAG,EAAE,KAAK,KAAK,EAAK,GAAG,GAAG,KAAK,MAAM,EAAE,EAAK,SAAS,WAAW,GAAG,EAAE,EAAY,EAAS,GAAG,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAY,MAAM,GAAG,KAAK,MAAM,GAAG,EAAY,OAAO,EAAE,GAAG,IAAI,GAAQ,QAAG,KAAK,OAAO,EAAE,CAAC,KAAK,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,KAAK,MAAM,GAAG,KAAK,MAAM,EAAE,GAAQ,UAAK,MAAM,GAAG,EAAE,KAAK,OAAO,EAAE,IAAI,EAAM,EAAE,IAAI,EAAE,KAAK,OAAO,EAAE,GAAG,IAAI,IAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,EAAK,KAAK,MAAM,GAAG,EAAE,KAAK,MAAM,GAAG,GAAO,GAAG,EAAE,IAAO,EAAE,EAAM,EAAK,EAAK,GAAG,GAAa,IAAQ,EAAE,EAAY,MAAM,EAAY,UAAU,EAAM,GAAG,KAAK,SAAS,EAAE,KAAK,MAAM,GAAG,EAAE,KAAK,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAK,EAAK,EAAS,CAAC,OAAO,EAAO,KAAK,WAAW,CAAC,EAAE,KAAK,OAAO,EAAK,EAAK,CAAQ,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAK,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAK,CAAC,OAAO,KAAK,MAAM,EAAE,OAAO,CAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAK,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAK,CAAC,OAAO,KAAK,MAAM,EAAE,OAAO,CAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,EAAO,OAAO,IAAM,UAAU,GAAK,CAAC,EAAE,IAAI,EAAE,EAAI,GAAG,GAAG,EAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAK,CAAC,EAAO,OAAO,IAAO,UAAU,GAAM,CAAC,EAAE,IAAI,EAAE,EAAK,GAAG,GAAG,EAAK,GAAG,GAAG,GAAG,EAAO,KAAK,WAAW,EAAE,yCAAyC,EAAE,KAAK,QAAQ,EAAE,OAAO,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,OAAO,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAK,SAAS,WAAW,GAAG,EAAE,KAAK,MAAM,KAAK,OAAO,IAAI,EAAK,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAK,CAAC,OAAO,KAAK,MAAM,EAAE,OAAO,CAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,GAAG,EAAO,OAAO,IAAM,QAAQ,EAAE,EAAO,EAAI,QAAQ,EAAE,EAAI,EAAE,OAAO,KAAK,MAAM,CAAC,CAAG,EAAE,GAAG,KAAK,WAAW,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,MAAM,GAAG,GAAG,EAAI,OAAO,KAAK,MAAM,GAAG,GAAK,KAAK,MAAM,GAAG,GAAG,KAAK,SAAS,EAAE,KAAK,OAAO,KAAK,SAAS,EAAE,KAAK,MAAM,CAAG,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,KAAK,OAAO,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,CAAC,KAAK,MAAM,IAAI,EAAI,QAAQ,EAAE,EAAE,EAAE,KAAK,QAAQ,KAAK,MAAM,IAAI,SAAS,IAAI,GAAG,KAAK,MAAM,IAAI,SAAS,IAAI,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,GAAG,EAAO,UAAK,MAAM,EAAE,KAAK,OAAO,KAAK,OAAO,KAAK,IAAI,KAAK,OAAO,EAAE,CAAC,EAAE,MAAM,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,GAAG,EAAO,OAAO,IAAM,QAAQ,EAAE,EAAO,EAAI,QAAQ,EAAE,EAAI,EAAE,OAAO,KAAK,MAAM,CAAC,CAAG,EAAE,GAAG,KAAK,WAAW,EAAE,OAAO,KAAK,SAAS,EAAE,KAAK,MAAM,CAAG,EAAE,KAAK,SAAS,EAAE,KAAK,GAAG,KAAK,MAAM,IAAI,EAAI,KAAK,SAAS,GAAG,KAAK,MAAM,GAAG,EAAE,KAAK,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,KAAK,SAAS,EAAO,aAAQ,EAAE,EAAE,EAAE,KAAK,QAAQ,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,GAAG,EAAG,UAAU,KAAK,QAAQ,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,MAAM,EAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,MAAM,EAAE,KAAK,GAAG,EAAG,UAAU,aAAa,QAAQ,CAAC,EAAI,EAAI,EAAM,CAAC,IAAI,EAAI,EAAI,OAAO,EAAM,EAAE,KAAK,QAAQ,CAAG,EAAE,IAAI,EAAE,EAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAI,OAAO,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE,GAAO,GAAG,EAAM,IAAI,GAAO,EAAI,MAAM,GAAG,GAAG,EAAI,GAAG,EAAM,SAAS,GAAO,GAAG,KAAK,EAAM,SAAS,GAAG,KAAK,MAAM,EAAE,GAAO,EAAE,SAAS,KAAK,EAAE,KAAK,OAAO,EAAM,IAAI,GAAG,KAAK,MAAM,EAAE,GAAO,GAAG,EAAM,EAAM,GAAG,GAAG,KAAK,MAAM,EAAE,GAAO,EAAE,SAAS,GAAG,IAAQ,EAAE,OAAO,KAAK,MAAM,EAAE,EAAO,IAAQ,EAAE,EAAE,EAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,GAAG,GAAG,EAAM,EAAM,GAAG,GAAG,KAAK,MAAM,GAAG,EAAE,SAAS,OAAO,KAAK,SAAS,EAAE,KAAK,MAAM,GAAG,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAI,EAAK,CAAC,IAAI,EAAM,KAAK,OAAO,EAAI,OAAO,EAAE,KAAK,MAAM,EAAE,EAAE,EAAI,EAAI,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAQ,KAAK,WAAW,CAAG,EAAE,GAAG,EAAM,GAAG,EAAQ,IAAQ,EAAE,EAAE,EAAE,MAAM,CAAK,EAAE,EAAE,OAAO,CAAK,EAAE,EAAI,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAO,MAAM,CAAC,EAAE,IAAI,EAAG,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,MAAM,GAAG,EAAE,IAAI,EAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,GAAG,EAAK,WAAW,GAAG,GAAG,EAAE,EAAK,EAAE,EAAE,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,GAAI,EAAE,MAAM,EAAE,OAAO,GAAG,GAAG,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,EAAG,KAAK,IAAI,EAAG,EAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,EAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAK,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,MAAM,GAAG,EAAG,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAO,OAAO,IAAQ,EAAE,EAAE,OAAO,CAAK,EAAE,MAAM,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,EAAK,EAAS,CAAC,GAAG,EAAO,CAAC,EAAI,OAAO,CAAC,EAAE,KAAK,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAG,CAAC,EAAE,IAAI,IAAI,EAAG,CAAC,CAAC,EAAE,IAAI,EAAI,EAAI,EAAI,GAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,CAAC,GAAG,EAAI,KAAK,IAAI,EAAE,OAAO,EAAI,CAAI,EAAE,IAAO,MAAM,EAAI,EAAI,IAAI,IAAI,EAAE,GAAG,IAAO,OAAO,GAAG,EAAI,EAAI,IAAI,IAAI,EAAE,GAAU,EAAI,WAAW,EAAE,EAAI,KAAK,CAAG,EAAE,MAAM,CAAC,MAAI,KAAG,EAAE,GAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,CAAC,GAAG,EAAI,KAAK,OAAO,EAAI,IAAI,EAAE,CAAI,EAAE,IAAO,MAAM,EAAI,EAAI,IAAI,IAAI,EAAE,MAAM,CAAC,MAAI,IAAI,EAAI,GAAG,EAAE,IAAI,KAAK,SAAS,EAAI,YAAY,EAAE,CAAC,GAAG,EAAI,KAAK,IAAI,EAAE,OAAO,EAAI,IAAI,EAAE,CAAI,EAAE,IAAO,OAAO,GAAG,EAAI,EAAI,IAAI,IAAI,EAAE,GAAU,EAAI,WAAW,EAAE,EAAI,KAAK,CAAG,EAAE,MAAM,CAAC,IAAI,EAAI,IAAI,KAAG,EAAE,GAAG,EAAI,OAAO,KAAK,QAAQ,KAAK,IAAI,CAAG,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,EAAG,CAAC,EAAE,IAAI,IAAI,EAAE,GAAG,EAAI,SAAS,EAAE,CAAC,GAAG,IAAO,MAAM,MAAM,CAAC,IAAI,KAAK,KAAK,EAAI,MAAM,EAAE,EAAE,IAAI,IAAI,EAAE,GAAG,IAAO,MAAM,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,EAAG,KAAK,KAAK,EAAI,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,KAAK,EAAI,MAAM,EAAE,EAAE,IAAI,IAAI,EAAG,KAAK,KAAK,EAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,SAAS,EAAI,CAAI,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,OAAO,EAAI,MAAM,EAAE,EAAE,KAAK,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,OAAO,EAAI,MAAM,EAAE,EAAE,KAAK,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,OAAO,EAAI,MAAM,EAAE,EAAE,KAAK,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAG,KAAK,OAAO,CAAG,EAAE,GAAG,EAAG,IAAI,OAAO,EAAE,OAAO,EAAG,IAAI,IAAI,EAAI,EAAG,IAAI,WAAW,EAAE,EAAG,IAAI,KAAK,CAAG,EAAE,EAAG,IAAI,EAAK,EAAI,MAAM,CAAC,EAAE,EAAG,EAAI,MAAM,CAAC,EAAE,EAAI,EAAI,IAAI,CAAI,EAAE,GAAG,EAAI,GAAG,IAAK,GAAG,IAAM,EAAE,OAAO,EAAG,IAAI,OAAO,EAAG,IAAI,WAAW,EAAE,EAAG,IAAI,MAAM,CAAC,EAAE,EAAG,IAAI,MAAM,CAAC,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,EAAO,GAAK,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAI,EAAI,EAAE,QAAQ,EAAE,KAAK,OAAO,EAAE,GAAG,EAAE,IAAI,GAAK,EAAE,GAAK,KAAK,MAAM,GAAG,IAAI,EAAI,OAAO,GAAK,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,EAAO,GAAK,QAAQ,EAAE,IAAI,EAAM,EAAE,QAAQ,EAAE,KAAK,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,MAAM,GAAG,GAAG,EAAM,SAAS,KAAK,MAAM,GAAG,EAAE,EAAI,EAAE,EAAM,EAAE,EAAI,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,EAAO,EAAE,WAAW,CAAC,EAAE,EAAO,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,CAAC,EAAO,OAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAG,CAAC,EAAE,EAAE,IAAI,EAAG,CAAC,EAAE,EAAE,IAAI,EAAG,CAAC,EAAE,EAAE,IAAI,EAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAG,EAAE,MAAM,EAAE,EAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAG,GAAG,EAAE,MAAM,GAAG,KAAM,GAAG,EAAE,GAAG,EAAE,EAAE,IAAK,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,CAAE,EAAE,EAAE,KAAK,CAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,QAAQ,EAAE,EAAE,EAAG,GAAG,EAAE,MAAM,GAAG,KAAM,GAAG,EAAE,GAAG,EAAE,EAAE,IAAK,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,CAAE,EAAE,EAAE,KAAK,CAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAO,OAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAE,CAAC,EAAO,EAAE,WAAW,CAAC,EAAE,EAAO,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,CAAC,EAAO,OAAE,EAAE,MAAM,EAAE,IAAI,EAAG,IAAI,EAAG,CAAC,EAAE,EAAG,IAAI,EAAG,CAAC,EAAE,EAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAG,GAAG,EAAE,MAAM,GAAG,KAAM,GAAG,EAAE,GAAG,EAAE,EAAE,IAAK,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,EAAE,CAAC,GAAG,EAAG,MAAM,EAAE,EAAG,KAAK,CAAK,EAAE,EAAG,OAAO,CAAC,GAAG,QAAQ,EAAE,EAAE,EAAG,GAAG,EAAE,MAAM,GAAG,KAAM,GAAG,EAAE,GAAG,EAAE,EAAE,IAAK,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,EAAE,CAAC,GAAG,EAAG,MAAM,EAAE,EAAG,KAAK,CAAK,EAAE,EAAG,OAAO,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,EAAE,EAAG,KAAK,CAAE,EAAO,OAAE,KAAK,CAAC,EAAE,EAAG,KAAK,CAAE,EAAE,IAAI,EAAI,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EAAI,EAAQ,OAAI,EAAG,GAAG,EAAI,KAAK,CAAC,EAAE,EAAE,EAAI,KAAK,CAAC,EAAE,OAAO,GAAK,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAE,OAAO,EAAI,IAAI,EAAE,GAAG,EAAI,OAAO,EAAE,OAAO,KAAK,IAAI,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,EAAI,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAM,EAAE,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,IAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAO,QAAG,IAAI,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,IAAI,OAAO,EAAE,OAAO,CAAK,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,CAAG,EAAE,EAAE,KAAK,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,EAAE,CAAC,OAAO,KAAK,MAAM,GAAG,KAAK,GAAG,EAAG,UAAU,MAAM,QAAQ,EAAE,CAAC,OAAO,KAAK,MAAM,GAAG,KAAK,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,GAAG,GAAK,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,EAAO,OAAO,IAAM,QAAQ,EAAE,IAAI,EAAE,EAAI,GAAG,GAAG,EAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,QAAQ,EAAE,OAAO,KAAK,QAAQ,EAAE,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,IAAQ,GAAG,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAM,EAAM,IAAI,GAAG,GAAG,SAAS,KAAK,MAAM,GAAG,EAAE,GAAG,IAAQ,EAAE,KAAK,MAAM,GAAG,EAAM,KAAK,SAAS,OAAO,MAAM,EAAG,UAAU,OAAO,QAAQ,EAAE,CAAC,OAAO,KAAK,SAAS,GAAG,KAAK,MAAM,KAAK,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAS,EAAI,EAAE,GAAG,KAAK,WAAW,GAAG,CAAC,EAAS,MAAM,GAAG,GAAG,KAAK,WAAW,GAAG,EAAS,MAAO,GAAE,KAAK,MAAM,EAAE,IAAI,EAAI,GAAG,KAAK,OAAO,EAAE,EAAI,EAAM,KAAC,GAAG,EAAS,EAAI,CAAC,EAAI,EAAO,GAAK,SAAS,mBAAmB,EAAE,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,EAAI,IAAI,EAAI,EAAE,EAAE,EAAI,GAAG,EAAE,GAAG,KAAK,WAAW,EAAE,MAAM,CAAC,EAAI,EAAE,OAAO,GAAK,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,MAAM,GAAG,GAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,MAAO,GAAE,IAAI,EAAI,KAAK,KAAK,CAAG,EAAE,GAAG,KAAK,WAAW,EAAE,MAAM,CAAC,EAAI,EAAE,OAAO,GAAK,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,MAAO,GAAE,GAAG,KAAK,OAAO,EAAI,OAAO,MAAM,GAAG,IAAI,EAAI,EAAE,QAAQ,EAAE,KAAK,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,EAAE,EAAI,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,EAAI,GAAQ,QAAG,EAAE,EAAE,EAAI,EAAE,MAAM,OAAO,GAAK,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,CAAG,IAAI,GAAG,EAAG,UAAU,GAAG,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,IAAI,CAAG,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,CAAG,GAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,IAAI,CAAG,GAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,CAAG,IAAI,IAAI,EAAG,UAAU,GAAG,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,IAAI,CAAG,IAAI,IAAI,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,CAAG,GAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,IAAI,CAAG,GAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,CAAG,IAAI,GAAG,EAAG,UAAU,GAAG,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,IAAI,CAAG,IAAI,GAAG,EAAG,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,IAAI,EAAI,CAAG,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,CAAC,KAAK,IAAI,uCAAuC,EAAE,EAAO,KAAK,WAAW,EAAE,+BAA+B,EAAE,EAAI,UAAU,IAAI,EAAE,UAAU,CAAG,GAAG,EAAG,UAAU,QAAQ,QAAQ,EAAE,CAAC,OAAO,EAAO,KAAK,IAAI,sDAAsD,EAAE,KAAK,IAAI,YAAY,IAAI,GAAG,EAAG,UAAU,UAAU,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,IAAI,EAAI,MAAM,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,CAAC,KAAK,IAAI,uCAAuC,EAAE,KAAK,UAAU,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,IAAI,KAAK,CAAG,GAAG,EAAG,UAAU,QAAQ,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,qCAAqC,EAAE,KAAK,IAAI,KAAK,KAAK,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,IAAI,KAAK,CAAG,GAAG,EAAG,UAAU,QAAQ,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,qCAAqC,EAAE,KAAK,IAAI,KAAK,KAAK,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,IAAI,KAAK,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,SAAS,KAAK,CAAG,EAAE,KAAK,IAAI,IAAI,KAAK,CAAG,GAAG,EAAG,UAAU,QAAQ,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,SAAS,KAAK,CAAG,EAAE,KAAK,IAAI,KAAK,KAAK,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,EAAE,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAG,UAAU,QAAQ,QAAQ,EAAE,CAAC,OAAO,EAAO,KAAK,IAAI,qCAAqC,EAAE,KAAK,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,KAAK,IAAI,GAAG,EAAG,UAAU,QAAQ,QAAQ,EAAE,CAAC,OAAO,EAAO,KAAK,IAAI,qCAAqC,EAAE,KAAK,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,KAAK,IAAI,GAAG,EAAG,UAAU,QAAQ,QAAQ,EAAE,CAAC,OAAO,EAAO,KAAK,IAAI,qCAAqC,EAAE,KAAK,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,KAAK,IAAI,GAAG,EAAG,UAAU,OAAO,QAAQ,EAAE,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,KAAK,CAAC,EAAI,IAAI,mBAAmB,EAAE,KAAK,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,CAAG,GAAG,IAAI,EAAO,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,IAAI,EAAE,SAAS,CAAM,CAAC,EAAK,EAAE,CAAC,KAAK,KAAK,EAAK,KAAK,EAAE,IAAI,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAG,CAAC,EAAE,OAAO,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,KAAK,KAAK,EAAE,EAAO,UAAU,KAAK,QAAQ,EAAE,CAAC,IAAI,EAAI,IAAI,EAAG,IAAI,EAAE,OAAO,EAAI,MAAM,MAAM,KAAK,KAAK,KAAK,EAAE,EAAE,CAAC,EAAE,GAAK,EAAO,UAAU,QAAQ,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,EAAI,EAAK,GAAG,KAAK,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,EAAE,EAAK,EAAE,UAAU,QAAQ,EAAK,KAAK,GAAG,IAAI,EAAI,EAAK,KAAK,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,EAAE,GAAG,IAAM,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,EAAO,QAAG,EAAI,EAAE,EAAE,KAAK,KAAK,CAAC,EAAO,QAAG,EAAE,QAAa,OAAE,EAAE,MAAM,EAAO,OAAE,OAAO,EAAE,OAAO,GAAG,EAAO,UAAU,MAAM,QAAQ,CAAC,EAAM,EAAI,CAAC,EAAM,OAAO,KAAK,EAAE,EAAE,CAAG,GAAG,EAAO,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAI,KAAK,KAAK,CAAC,GAAG,SAAS,CAAI,EAAE,CAAC,EAAO,KAAK,KAAK,OAAO,yEAAyE,EAAE,EAAS,EAAK,CAAM,EAAE,EAAK,UAAU,MAAM,QAAQ,CAAC,EAAM,EAAO,CAAC,IAAI,EAAK,QAAQ,EAAO,KAAK,IAAI,EAAM,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAO,IAAI,EAAO,MAAM,GAAG,EAAM,MAAM,GAAG,GAAG,EAAO,OAAO,EAAO,EAAM,QAAQ,EAAE,CAAC,EAAM,MAAM,GAAG,EAAE,EAAM,OAAO,EAAE,OAAO,IAAI,EAAK,EAAM,MAAM,GAAG,EAAO,MAAM,EAAO,UAAU,EAAK,EAAK,IAAI,EAAE,GAAG,EAAE,EAAM,OAAO,IAAI,CAAC,IAAI,EAAK,EAAM,MAAM,GAAG,EAAE,EAAM,MAAM,EAAE,KAAK,EAAK,IAAO,EAAE,IAAO,GAAG,EAAK,EAAK,GAAG,KAAQ,GAAG,EAAM,MAAM,EAAE,IAAI,EAAK,IAAO,GAAG,EAAM,OAAO,GAAG,EAAM,QAAQ,GAAQ,OAAM,QAAQ,GAAG,EAAK,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,EAAI,MAAM,EAAI,QAAQ,EAAE,EAAI,MAAM,EAAI,OAAO,GAAG,EAAE,EAAI,QAAQ,EAAE,IAAI,EAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,IAAI,CAAC,IAAI,EAAE,EAAI,MAAM,GAAG,EAAE,GAAI,EAAE,IAAI,EAAI,MAAM,GAAG,EAAG,SAAS,EAAG,EAAE,IAAI,EAAG,SAAS,GAAG,GAAG,EAAI,MAAM,EAAI,OAAO,KAAK,GAAG,GAAG,EAAI,SAAS,EAAI,MAAM,EAAI,OAAO,KAAK,EAAE,EAAI,SAAS,OAAO,GAAK,SAAS,CAAI,EAAE,CAAC,EAAO,KAAK,KAAK,OAAO,gEAAgE,EAAE,EAAS,EAAK,CAAM,EAAE,SAAS,EAAI,EAAE,CAAC,EAAO,KAAK,KAAK,OAAO,uDAAuD,EAAE,EAAS,GAAK,CAAM,EAAE,SAAS,EAAM,EAAE,CAAC,EAAO,KAAK,KAAK,QAAQ,qEAAqE,EAAE,EAAS,GAAO,CAAM,EAAE,GAAO,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,IAAI,CAAC,IAAI,GAAI,EAAI,MAAM,GAAG,GAAG,GAAG,EAAM,EAAG,EAAG,SAAS,KAAM,GAAG,EAAI,MAAM,GAAG,EAAG,EAAM,EAAG,GAAG,IAAQ,EAAE,EAAI,MAAM,EAAI,UAAU,EAAM,OAAO,GAAK,EAAG,OAAO,QAAQ,CAAC,EAAK,CAAC,GAAG,EAAO,GAAM,OAAO,EAAO,GAAM,IAAI,EAAM,GAAG,IAAO,OAAO,EAAM,IAAI,EAAU,QAAG,IAAO,OAAO,EAAM,IAAI,EAAU,QAAG,IAAO,OAAO,EAAM,IAAI,GAAU,QAAG,IAAO,SAAS,EAAM,IAAI,GAAY,WAAM,MAAM,iBAAiB,CAAI,EAAE,OAAO,EAAO,GAAM,EAAM,GAAO,SAAS,CAAG,CAAC,EAAE,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,IAAI,EAAM,EAAG,OAAO,CAAC,EAAE,KAAK,EAAE,EAAM,EAAE,KAAK,MAAM,EAAW,OAAO,EAAE,IAAI,CAAC,EAAE,gCAAgC,EAAE,KAAK,EAAE,EAAE,KAAK,MAAM,KAAK,EAAI,UAAU,SAAS,QAAQ,CAAC,EAAE,CAAC,EAAO,EAAE,WAAW,EAAE,+BAA+B,EAAE,EAAO,EAAE,IAAI,iCAAiC,GAAG,EAAI,UAAU,SAAS,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,+BAA+B,EAAE,EAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,iCAAiC,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,KAAK,MAAM,OAAO,KAAK,MAAM,QAAQ,CAAC,EAAE,UAAU,IAAI,EAAE,OAAO,EAAE,KAAK,KAAK,CAAC,EAAE,UAAU,IAAI,GAAG,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,UAAU,IAAI,GAAG,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,EAAE,IAAI,EAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAI,IAAI,KAAK,CAAC,GAAG,EAAE,EAAI,KAAK,KAAK,CAAC,EAAE,OAAO,EAAI,UAAU,IAAI,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,EAAE,IAAI,EAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAI,IAAI,KAAK,CAAC,GAAG,EAAE,EAAI,KAAK,KAAK,CAAC,EAAE,OAAO,GAAK,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,EAAE,IAAI,EAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAI,KAAK,CAAC,EAAE,EAAE,EAAI,KAAK,KAAK,CAAC,EAAE,OAAO,EAAI,UAAU,IAAI,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,EAAE,IAAI,EAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAI,KAAK,CAAC,EAAE,EAAE,EAAI,KAAK,KAAK,CAAC,EAAE,OAAO,GAAK,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAI,CAAC,OAAO,KAAK,SAAS,CAAC,EAAE,KAAK,KAAK,EAAE,MAAM,CAAG,CAAC,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,EAAE,EAAE,MAAM,CAAC,GAAG,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAK,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,EAAO,EAAK,IAAI,CAAC,EAAE,IAAO,EAAE,CAAC,IAAI,EAAI,KAAK,EAAE,IAAI,IAAI,EAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,EAAE,CAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAO,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,EAAI,IAAI,EAAG,CAAC,EAAE,MAAM,IAAI,EAAE,EAAK,EAAI,OAAO,EAAE,EAAK,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAG,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,CAAI,EAAE,IAAI,CAAI,IAAI,EAAE,EAAE,QAAQ,CAAI,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAG,IAAI,EAAE,CAAC,IAAI,EAAI,EAAE,QAAQ,EAAE,EAAE,EAAI,IAAI,CAAG,IAAI,EAAE,IAAI,EAAI,EAAI,OAAO,EAAE,EAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,IAAI,EAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAI,EAAE,OAAO,KAAK,CAAC,EAAE,GAAG,EAAI,WAAW,EAAE,OAAO,EAAI,SAAS,EAAE,KAAK,KAAK,CAAG,EAAE,OAAO,EAAO,YAAO,KAAK,KAAK,CAAG,GAAG,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAI,CAAC,GAAG,EAAI,OAAO,EAAE,OAAO,IAAI,EAAG,CAAC,EAAE,MAAM,IAAI,EAAE,GAAG,EAAI,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW,EAAE,EAAI,MAAM,GAAG,CAAU,EAAE,EAAI,GAAG,IAAI,EAAG,CAAC,EAAE,MAAM,IAAI,EAAE,EAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,IAAI,EAAI,GAAG,KAAK,IAAI,EAAI,EAAE,GAAG,CAAC,EAAE,IAAI,EAAI,EAAI,GAAG,EAAQ,EAAE,EAAW,EAAE,EAAM,EAAI,UAAU,EAAE,GAAG,GAAG,IAAQ,EAAE,EAAM,GAAG,IAAI,EAAE,EAAI,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAK,EAAI,MAAM,GAAG,QAAQ,EAAE,EAAM,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAI,GAAM,EAAE,EAAE,GAAG,IAAM,EAAI,GAAG,EAAI,KAAK,IAAI,CAAG,EAAE,GAAG,IAAM,GAAG,IAAU,EAAE,CAAC,EAAW,EAAE,SAAS,GAAG,IAAU,EAAE,GAAS,EAAI,IAAa,IAAa,IAAa,IAAI,GAAG,IAAI,GAAG,SAAS,EAAI,KAAK,IAAI,EAAI,EAAI,EAAQ,EAAE,EAAW,EAAE,EAAQ,EAAE,EAAM,GAAG,OAAO,GAAK,EAAI,UAAU,UAAU,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,EAAI,KAAK,KAAK,CAAC,EAAE,OAAO,IAAI,EAAI,EAAE,MAAM,EAAE,GAAG,EAAI,UAAU,YAAY,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,EAAI,MAAM,EAAE,OAAO,EAAI,IAAI,KAAK,GAAK,EAAG,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,IAAI,GAAK,CAAG,GAAG,SAAS,EAAI,CAAC,EAAE,CAAC,GAAG,EAAI,KAAK,KAAK,CAAC,EAAE,KAAK,MAAM,KAAK,EAAE,UAAU,EAAE,KAAK,MAAM,KAAK,EAAE,KAAK,OAAO,GAAG,KAAK,MAAM,GAAG,KAAK,EAAE,IAAI,EAAG,CAAC,EAAE,OAAO,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,KAAK,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,EAAS,GAAK,CAAG,EAAE,GAAK,UAAU,UAAU,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,EAAI,MAAM,KAAK,KAAK,CAAC,GAAG,GAAK,UAAU,YAAY,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAI,IAAI,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,GAAG,GAAK,UAAU,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,KAAK,EAAE,EAAI,EAAE,GAAG,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE,EAAI,EAAE,KAAK,KAAK,CAAC,EAAO,QAAG,EAAE,KAAK,CAAC,EAAE,EAAE,EAAI,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,EAAI,UAAU,IAAI,GAAG,GAAK,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,IAAI,EAAG,CAAC,EAAE,UAAU,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,KAAK,EAAE,EAAI,EAAE,GAAG,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE,EAAI,EAAE,KAAK,KAAK,CAAC,EAAO,QAAG,EAAE,KAAK,CAAC,EAAE,EAAE,EAAI,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,EAAI,UAAU,IAAI,GAAG,GAAK,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAI,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC,EAAE,OAAO,EAAI,UAAU,IAAI,KAAK,OAAO,EAAO,KAAK,EAAO,CAAO,EAAE,EAAM,GAAgB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAS,GAAiB,EAAE,EAAG,GAAY,EAAE,EAAO,QAAQ,QAAQ,CAAC,EAAM,CAAC,OAAO,IAAI,EAAK,CAAK,GAAG,IAAI,EAAQ,CAAC,UAAU,CAAC,KAAK,YAAY,WAAW,EAAE,EAAE,UAAU,CAAC,KAAK,OAAO,WAAW,EAAE,EAAE,WAAW,CAAC,KAAK,OAAO,WAAW,EAAE,EAAE,WAAW,CAAC,KAAK,OAAO,WAAW,EAAE,EAAE,QAAQ,CAAC,KAAK,UAAU,WAAW,EAAE,EAAE,UAAU,CAAC,KAAK,OAAO,WAAW,EAAE,EAAE,UAAU,CAAC,KAAK,OAAO,WAAW,EAAE,CAAC,EAAE,EAAQ,KAAK,EAAQ,UAAU,EAAQ,KAAK,EAAQ,UAAU,EAAQ,WAAW,EAAQ,KAAK,EAAQ,UAAU,EAAQ,WAAW,EAAQ,KAAK,EAAQ,UAAU,EAAQ,KAAK,EAAQ,UAAU,SAAS,CAAI,CAAC,EAAM,CAAC,GAAG,KAAK,UAAU,EAAQ,GAAO,CAAC,KAAK,UAAU,KAAK,UAAU,CAAC,KAAK,CAAK,EAAE,KAAK,MAAM,IAAI,EAAS,GAAG,KAAK,UAAU,IAAI,EAAE,KAAK,KAAU,OAAE,EAAK,UAAU,aAAa,QAAQ,CAAC,EAAI,EAAO,CAAC,OAAO,KAAK,KAAK,KAAK,MAAM,WAAW,EAAE,KAAK,aAAa,EAAI,CAAM,GAAG,EAAK,UAAU,cAAc,QAAQ,CAAC,EAAM,EAAM,EAAI,CAAC,GAAG,EAAM,GAAO,OAAO,CAAC,OAAO,SAAS,CAAK,EAAE,EAAM,IAAI,OAAO,EAAM,CAAK,EAAE,IAAI,EAAS,KAAK,MAAM,cAAc,CAAK,EAAE,UAAU,EAAE,EAAI,EAAS,IAAI,KAAK,KAAK,WAAW,CAAC,EAAE,KAAK,EAAE,OAAO,EAAkB,EAAI,EAAI,KAAK,UAAU,UAAU,GAAG,EAAK,UAAU,aAAa,QAAQ,CAAC,EAAI,EAAO,CAAC,IAAI,EAAI,KAAK,KAAK,UAAU,IAAS,aAAa,EAAE,EAAE,GAAG,IAAS,SAAS,GAAG,EAAI,EAAI,OAAO,GAAG,EAAE,EAAI,GAAG,EAAO,OAAI,GAAG,EAAE,OAAO,EAAkB,EAAI,CAAG,GAAG,EAAK,UAAU,cAAc,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAkB,KAAK,KAAK,WAAW,EAAE,CAAG,GAAG,EAAK,UAAU,aAAa,QAAQ,CAAC,EAAI,EAAI,CAAC,GAAG,EAAI,GAAK,OAAO,CAAC,OAAO,SAAS,CAAG,EAAE,EAAI,IAAI,OAAO,EAAI,CAAG,EAAE,OAAO,KAAK,KAAK,cAAc,CAAG,EAAE,MAAM,EAAK,UAAU,cAAc,QAAQ,CAAC,EAAK,EAAI,CAAC,GAAG,EAAI,GAAK,OAAO,CAAC,OAAO,SAAS,CAAI,EAAE,EAAK,IAAI,OAAO,EAAK,CAAG,EAAE,IAAI,EAAM,IAAI,EAAG,CAAI,EAAE,OAAO,EAAM,EAAM,SAAS,EAAE,EAAE,KAAK,KAAK,KAAK,MAAM,WAAW,EAAE,KAAK,KAAK,eAAe,CAAK,EAAE,MAAM,SAAS,CAAiB,CAAC,EAAG,EAAI,EAAI,CAAC,GAAG,CAAC,MAAM,QAAQ,CAAE,EAAE,EAAG,EAAG,QAAQ,EAAE,IAAI,EAAI,IAAI,OAAO,CAAE,EAAE,GAAG,GAAK,EAAI,OAAO,EAAI,CAAC,IAAI,EAAM,IAAI,OAAO,EAAI,EAAI,MAAM,EAAE,EAAM,KAAK,CAAC,EAAE,EAAI,OAAO,OAAO,CAAC,EAAM,CAAG,CAAC,EAAE,GAAG,CAAC,EAAI,OAAO,EAAS,YAAO,EAAI,SAAS,CAAG,GAAG,EAAM,GAAoB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,gBAA6B,WAAW,EAAO,QAAQ,GAAY,GAAgB,EAAE,EAAM,GAAY,GAAW,CAAC,EAAQ,IAAS,EAAE,QAAQ,CAAC,EAAQ,EAAS,CAAC,SAAS,CAAM,CAAC,EAAI,EAAI,CAAC,GAAG,CAAC,EAAI,MAAM,MAAM,GAAK,kBAAkB,EAAE,SAAS,CAAQ,CAAC,EAAK,EAAU,CAAC,EAAK,OAAO,EAAU,IAAI,EAAS,QAAQ,EAAE,GAAG,EAAS,UAAU,EAAU,UAAU,EAAK,UAAU,IAAI,EAAS,EAAK,UAAU,YAAY,EAAK,SAAS,CAAE,CAAC,EAAO,EAAK,EAAO,CAAC,GAAG,EAAG,KAAK,CAAM,EAAE,OAAO,EAAO,GAAG,KAAK,SAAS,EAAE,KAAK,MAAM,KAAK,KAAK,OAAO,EAAE,KAAK,IAAI,KAAK,IAAS,KAAK,CAAC,GAAG,IAAO,MAAM,IAAO,KAAK,EAAO,EAAK,EAAK,GAAG,KAAK,MAAM,GAAQ,EAAE,GAAM,GAAG,GAAQ,IAAI,GAAG,GAAG,OAAO,IAAU,SAAS,EAAQ,QAAQ,EAAQ,OAAS,GAAG,EAAG,EAAG,GAAG,EAAG,EAAG,SAAS,GAAG,IAAI,EAAQ,GAAG,CAAC,GAAG,OAAO,OAAO,KAAK,OAAO,OAAO,OAAO,IAAI,EAAQ,OAAO,OAAY,qBAA0B,OAAO,MAAM,EAAE,EAAE,EAAG,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,aAAe,EAAG,MAAM,GAAG,OAAO,IAAM,MAAM,OAAO,IAAM,UAAU,EAAI,YAAY,WAAW,EAAG,UAAU,MAAM,QAAQ,EAAI,KAAK,GAAG,EAAG,IAAI,QAAQ,CAAC,EAAK,EAAM,CAAC,GAAG,EAAK,IAAI,CAAK,EAAE,EAAE,OAAO,EAAK,OAAO,GAAO,EAAG,IAAI,QAAQ,CAAC,EAAK,EAAM,CAAC,GAAG,EAAK,IAAI,CAAK,EAAE,EAAE,OAAO,EAAK,OAAO,GAAO,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAO,EAAK,EAAO,CAAC,GAAG,OAAO,IAAS,SAAS,OAAO,KAAK,YAAY,EAAO,EAAK,CAAM,EAAE,GAAG,OAAO,IAAS,SAAS,OAAO,KAAK,WAAW,EAAO,EAAK,CAAM,EAAE,GAAG,IAAO,MAAM,EAAK,GAAG,EAAO,KAAQ,EAAK,IAAI,GAAM,GAAG,GAAM,EAAE,EAAE,EAAO,EAAO,SAAS,EAAE,QAAQ,OAAO,EAAE,EAAE,IAAI,EAAM,EAAE,GAAG,EAAO,KAAK,IAAI,IAAQ,KAAK,SAAS,EAAE,GAAG,EAAM,EAAO,QAAQ,GAAG,IAAO,GAAG,KAAK,UAAU,EAAO,EAAM,CAAM,EAAO,QAAG,KAAK,WAAW,EAAO,EAAK,CAAK,EAAE,IAAS,KAAK,KAAK,WAAW,KAAK,QAAQ,EAAE,EAAK,CAAM,IAAI,EAAG,UAAU,YAAY,QAAQ,CAAC,EAAO,EAAK,EAAO,CAAC,GAAG,EAAO,EAAE,KAAK,SAAS,EAAE,EAAO,CAAC,EAAO,GAAG,EAAO,SAAS,KAAK,MAAM,CAAC,EAAO,QAAQ,EAAE,KAAK,OAAO,EAAO,QAAG,EAAO,iBAAiB,KAAK,MAAM,CAAC,EAAO,SAAS,EAAO,SAAS,QAAQ,EAAE,KAAK,OAAO,EAAO,OAAO,EAAO,gBAAgB,EAAE,KAAK,MAAM,CAAC,EAAO,SAAS,EAAO,SAAS,SAAS,CAAC,EAAE,KAAK,OAAO,EAAE,GAAG,IAAS,KAAK,OAAO,KAAK,WAAW,KAAK,QAAQ,EAAE,EAAK,CAAM,GAAG,EAAG,UAAU,WAAW,QAAQ,CAAC,EAAO,EAAK,EAAO,CAAC,GAAG,EAAO,OAAO,EAAO,SAAS,QAAQ,EAAE,EAAO,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,OAAO,KAAK,KAAK,EAAO,OAAO,CAAC,EAAE,KAAK,MAAM,MAAM,KAAK,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,EAAI,EAAE,GAAG,IAAS,MAAM,IAAI,EAAE,EAAO,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAO,GAAG,EAAO,EAAE,IAAI,EAAE,EAAO,EAAE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,EAAI,SAAS,KAAK,MAAM,EAAE,GAAG,IAAI,GAAG,EAAI,SAAS,GAAK,GAAG,GAAK,GAAG,GAAK,GAAG,IAAS,QAAG,IAAS,MAAM,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAO,OAAO,GAAG,EAAE,GAAG,EAAE,EAAO,GAAG,EAAO,EAAE,IAAI,EAAE,EAAO,EAAE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,EAAI,SAAS,KAAK,MAAM,EAAE,GAAG,IAAI,GAAG,EAAI,SAAS,GAAK,GAAG,GAAK,GAAG,GAAK,GAAG,IAAI,OAAO,KAAK,MAAM,GAAG,SAAS,CAAa,CAAC,EAAO,EAAM,CAAC,IAAI,EAAE,EAAO,WAAW,CAAK,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,OAAO,EAAE,GAAQ,QAAG,GAAG,IAAI,GAAG,IAAI,OAAO,EAAE,GAAQ,YAAO,EAAE,GAAG,GAAG,SAAS,CAAY,CAAC,EAAO,EAAW,EAAM,CAAC,IAAI,EAAE,EAAc,EAAO,CAAK,EAAE,GAAG,EAAM,GAAG,EAAW,GAAG,EAAc,EAAO,EAAM,CAAC,GAAG,EAAE,OAAO,EAAE,EAAG,UAAU,UAAU,QAAQ,CAAC,EAAO,EAAM,EAAO,CAAC,KAAK,OAAO,KAAK,MAAM,EAAO,OAAO,GAAO,CAAC,EAAE,KAAK,MAAM,MAAM,KAAK,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI,EAAI,EAAE,EAAE,EAAE,EAAE,GAAG,IAAS,KAAK,IAAI,EAAE,EAAO,OAAO,EAAE,GAAG,EAAM,GAAG,EAAE,GAAG,EAAE,EAAa,EAAO,EAAM,CAAC,GAAG,EAAI,KAAK,MAAM,IAAI,EAAE,SAAS,GAAK,GAAG,GAAK,GAAG,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,GAAQ,QAAK,EAAM,KAAC,IAAI,EAAY,EAAO,OAAO,EAAM,IAAI,EAAE,EAAY,IAAI,EAAE,EAAM,EAAE,EAAM,EAAE,EAAO,OAAO,GAAG,EAAE,GAAG,EAAE,EAAa,EAAO,EAAM,CAAC,GAAG,EAAI,KAAK,MAAM,IAAI,EAAE,SAAS,GAAK,GAAG,GAAK,GAAG,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,GAAQ,QAAK,EAAE,KAAK,MAAM,GAAG,SAAS,CAAS,CAAC,EAAI,EAAM,EAAI,EAAI,CAAC,IAAI,EAAE,EAAE,EAAI,KAAK,IAAI,EAAI,OAAO,CAAG,EAAE,QAAQ,EAAE,EAAM,EAAE,EAAI,IAAI,CAAC,IAAI,EAAE,EAAI,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,EAAI,GAAG,GAAG,GAAG,EAAE,GAAG,GAAQ,QAAG,GAAG,GAAG,GAAG,EAAE,GAAG,GAAQ,QAAG,EAAE,OAAO,EAAE,EAAG,UAAU,WAAW,QAAQ,CAAC,EAAO,EAAK,EAAM,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,QAAQ,EAAQ,EAAE,EAAQ,EAAE,GAAS,SAAS,GAAS,EAAK,IAAU,IAAU,EAAQ,EAAQ,EAAK,EAAE,IAAI,EAAM,EAAO,OAAO,EAAM,EAAI,EAAM,EAAQ,EAAI,KAAK,IAAI,EAAM,EAAM,CAAG,EAAE,EAAM,EAAK,EAAE,QAAQ,EAAE,EAAM,EAAE,EAAI,GAAG,EAAQ,GAAG,EAAK,EAAU,EAAO,EAAE,EAAE,EAAQ,CAAI,EAAE,KAAK,MAAM,CAAO,EAAE,KAAK,MAAM,GAAG,EAAK,SAAS,KAAK,MAAM,IAAI,EAAU,UAAK,OAAO,CAAI,EAAE,GAAG,IAAM,EAAE,CAAC,IAAI,EAAI,EAAE,EAAK,EAAU,EAAO,EAAE,EAAO,OAAO,CAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAI,IAAI,GAAK,EAAK,GAAG,KAAK,MAAM,CAAG,EAAE,KAAK,MAAM,GAAG,EAAK,SAAS,KAAK,MAAM,IAAI,EAAU,UAAK,OAAO,CAAI,EAAE,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAK,CAAC,EAAK,MAAM,MAAM,KAAK,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,EAAK,MAAM,GAAG,KAAK,MAAM,GAAG,EAAK,OAAO,KAAK,OAAO,EAAK,SAAS,KAAK,SAAS,EAAK,IAAI,KAAK,KAAK,EAAG,UAAU,MAAM,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAG,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC,EAAE,GAAG,EAAG,UAAU,QAAQ,QAAQ,CAAC,EAAK,CAAC,MAAM,KAAK,OAAO,EAAK,KAAK,MAAM,KAAK,UAAU,EAAE,OAAO,MAAM,EAAG,UAAU,MAAM,QAAQ,EAAE,CAAC,MAAM,KAAK,OAAO,GAAG,KAAK,MAAM,KAAK,OAAO,KAAK,EAAE,KAAK,SAAS,OAAO,KAAK,UAAU,GAAG,EAAG,UAAU,UAAU,QAAQ,EAAE,CAAC,GAAG,KAAK,SAAS,GAAG,KAAK,MAAM,KAAK,EAAE,KAAK,SAAS,EAAE,OAAO,MAAM,EAAG,UAAU,QAAQ,QAAQ,EAAE,CAAC,OAAO,KAAK,IAAI,UAAU,SAAS,KAAK,SAAS,EAAE,EAAE,KAAK,IAAI,EAAM,CAAC,GAAG,IAAI,KAAK,MAAM,OAAO,QAAQ,SAAS,UAAU,WAAW,YAAY,aAAa,cAAc,eAAe,gBAAgB,iBAAiB,kBAAkB,mBAAmB,oBAAoB,qBAAqB,sBAAsB,uBAAuB,wBAAwB,yBAAyB,0BAA0B,2BAA2B,2BAA2B,EAAE,EAAW,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAW,CAAC,EAAE,EAAE,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,IAAI,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,EAAE,GAAG,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAK,EAAQ,CAAC,EAAK,GAAM,GAAG,EAAQ,EAAQ,GAAG,EAAE,IAAI,EAAI,GAAG,IAAO,IAAI,IAAO,MAAM,CAAC,EAAI,GAAG,IAAI,EAAI,EAAE,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,IAAO,GAAG,EAAI,GAAO,UAAU,SAAS,EAAE,EAAE,GAAG,EAAM,IAAI,GAAG,EAAI,SAAS,GAAK,EAAE,GAAK,GAAG,GAAK,GAAG,IAAI,GAAG,IAAQ,GAAG,IAAI,KAAK,OAAO,EAAE,EAAI,EAAM,EAAE,EAAK,QAAQ,EAAK,EAAS,OAAI,EAAK,EAAI,GAAG,IAAQ,EAAE,EAAI,EAAM,SAAS,EAAE,EAAE,EAAI,MAAM,EAAI,OAAO,IAAU,EAAE,EAAI,IAAI,EAAI,GAAG,KAAK,WAAW,EAAE,EAAI,IAAI,EAAI,OAAO,EAAI,GAAG,KAAQ,EAAK,IAAI,GAAM,GAAG,GAAM,GAAG,CAAC,IAAI,EAAU,EAAW,GAAM,EAAU,EAAW,GAAM,EAAI,GAAG,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,KAAK,CAAS,EAAE,SAAS,CAAI,EAAE,GAAG,EAAE,EAAE,MAAM,CAAS,EAAE,CAAC,EAAE,OAAO,EAAE,EAAI,EAAM,EAAU,EAAE,QAAQ,EAAE,EAAS,OAAI,EAAE,EAAI,GAAG,KAAK,OAAO,EAAE,EAAI,IAAI,EAAI,MAAM,EAAI,OAAO,IAAU,EAAE,EAAI,IAAI,EAAI,GAAG,KAAK,WAAW,EAAE,EAAI,IAAI,EAAI,OAAO,EAAI,EAAO,GAAG,iCAAiC,GAAG,EAAG,UAAU,SAAS,QAAQ,EAAE,CAAC,IAAI,EAAI,KAAK,MAAM,GAAG,GAAG,KAAK,SAAS,EAAE,GAAK,KAAK,MAAM,GAAG,SAAc,QAAG,KAAK,SAAS,GAAG,KAAK,MAAM,KAAK,EAAE,GAAK,iBAAiB,KAAK,MAAM,GAAG,SAAc,QAAG,KAAK,OAAO,EAAE,EAAO,GAAG,4CAA4C,EAAE,OAAO,KAAK,WAAW,EAAE,CAAC,EAAI,GAAK,EAAG,UAAU,OAAO,QAAQ,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,GAAG,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAO,EAAO,CAAC,OAAO,EAAO,OAAO,EAAQ,GAAG,EAAE,KAAK,YAAY,EAAQ,EAAO,CAAM,GAAG,EAAG,UAAU,QAAQ,QAAQ,CAAC,EAAO,EAAO,CAAC,OAAO,KAAK,YAAY,MAAM,EAAO,CAAM,GAAG,EAAG,UAAU,YAAY,QAAQ,CAAC,EAAU,EAAO,EAAO,CAAC,IAAI,EAAW,KAAK,WAAW,EAAE,EAAU,GAAQ,KAAK,IAAI,EAAE,CAAU,EAAE,EAAO,GAAY,EAAU,uCAAuC,EAAE,EAAO,EAAU,EAAE,6BAA6B,EAAE,KAAK,MAAM,EAAE,IAAI,EAAa,IAAS,KAAK,EAAI,IAAI,EAAU,CAAS,EAAE,EAAE,EAAE,EAAE,KAAK,MAAM,EAAE,GAAG,CAAC,EAAa,CAAC,IAAI,EAAE,EAAE,EAAE,EAAU,EAAW,IAAI,EAAI,GAAG,EAAE,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,EAAI,EAAU,EAAE,GAAG,EAAM,KAAC,IAAI,EAAE,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,CAAC,EAAE,EAAI,GAAG,EAAE,KAAK,EAAE,EAAU,IAAI,EAAI,GAAG,EAAE,OAAO,GAAK,KAAK,MAAM,EAAG,UAAU,WAAW,QAAQ,CAAC,EAAE,CAAC,MAAO,IAAG,KAAK,MAAM,CAAC,GAAQ,OAAG,UAAU,WAAW,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,KAAK,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAG,UAAU,UAAU,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,MAAO,IAAG,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,OAAO,GAAG,EAAG,UAAU,UAAU,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,MAAM,KAAK,OAAO,GAAG,EAAG,KAAK,WAAW,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,GAAG,GAAI,SAAS,CAAU,CAAC,EAAI,CAAC,IAAI,EAAE,MAAM,EAAI,UAAU,CAAC,EAAE,QAAQ,EAAI,EAAE,EAAI,EAAE,OAAO,IAAM,CAAC,IAAI,EAAI,EAAI,GAAG,EAAE,EAAK,EAAI,GAAG,EAAE,IAAM,EAAI,MAAM,GAAK,GAAG,KAAQ,EAAK,OAAO,EAAE,EAAG,UAAU,SAAS,QAAQ,EAAE,CAAC,GAAG,KAAK,OAAO,EAAE,MAAO,GAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU,KAAK,MAAM,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,MAAM,OAAO,GAAG,EAAG,UAAU,WAAW,QAAQ,EAAE,CAAC,OAAO,KAAK,KAAK,KAAK,UAAU,EAAE,CAAC,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAM,CAAC,GAAG,KAAK,WAAW,EAAE,OAAO,KAAK,IAAI,EAAE,MAAM,CAAK,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAM,CAAC,GAAG,KAAK,MAAM,EAAM,CAAC,EAAE,OAAO,KAAK,KAAK,CAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,MAAM,QAAQ,EAAE,CAAC,OAAO,KAAK,WAAW,GAAG,EAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,MAAM,EAAE,KAAK,GAAG,EAAG,UAAU,KAAK,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,OAAO,MAAM,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,MAAM,KAAK,OAAO,EAAI,OAAO,KAAK,MAAM,KAAK,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,IAAI,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,EAAI,MAAM,GAAG,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,GAAQ,KAAK,SAAS,EAAI,YAAY,CAAC,EAAE,KAAK,KAAK,CAAG,GAAG,EAAG,UAAU,GAAG,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,IAAI,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,IAAI,IAAI,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,KAAK,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,EAAI,OAAO,EAAE,EAAS,OAAE,KAAK,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,EAAI,MAAM,GAAG,OAAO,KAAK,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,GAAQ,KAAK,SAAS,EAAI,YAAY,CAAC,EAAE,KAAK,MAAM,CAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,KAAK,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,MAAM,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,OAAO,EAAI,OAAO,EAAE,KAAK,EAAE,EAAS,OAAE,EAAI,EAAE,KAAK,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,OAAO,KAAK,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,GAAQ,KAAK,SAAS,EAAI,YAAY,CAAC,EAAE,KAAK,MAAM,CAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,KAAK,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,MAAM,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAM,CAAC,EAAO,OAAO,IAAQ,UAAU,GAAO,CAAC,EAAE,IAAI,EAAY,KAAK,KAAK,EAAM,EAAE,EAAE,EAAE,EAAS,EAAM,GAAG,GAAG,KAAK,QAAQ,CAAW,EAAE,EAAS,EAAE,IAAc,QAAQ,EAAE,EAAE,EAAE,EAAY,IAAI,KAAK,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,SAAS,GAAG,EAAS,EAAE,KAAK,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,UAAU,GAAG,EAAS,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAM,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAK,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,EAAI,CAAC,EAAO,OAAO,IAAM,UAAU,GAAK,CAAC,EAAE,IAAI,EAAI,EAAI,GAAG,EAAE,EAAK,EAAI,GAAG,GAAG,KAAK,QAAQ,EAAI,CAAC,EAAE,EAAI,KAAK,MAAM,GAAK,KAAK,MAAM,GAAK,GAAG,EAAU,UAAK,MAAM,GAAK,KAAK,MAAM,GAAK,EAAE,GAAG,GAAM,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,GAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,OAAO,KAAK,SAAS,EAAE,EAAE,KAAK,KAAK,CAAG,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAO,QAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,OAAO,EAAI,SAAS,EAAE,EAAE,KAAK,KAAK,CAAG,EAAE,EAAI,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,OAAO,EAAI,OAAO,EAAE,KAAK,EAAE,EAAS,OAAE,EAAI,EAAE,KAAK,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,GAAG,EAAM,KAAK,MAAM,GAAG,EAAE,SAAS,EAAM,IAAI,GAAG,KAAK,IAAQ,GAAG,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAM,KAAK,MAAM,GAAG,EAAE,SAAS,EAAM,IAAI,GAAG,GAAG,KAAK,OAAO,EAAE,OAAO,IAAQ,EAAE,KAAK,MAAM,KAAK,QAAQ,EAAM,KAAK,SAAc,QAAG,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,OAAO,MAAM,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,GAAG,EAAI,WAAW,GAAG,KAAK,WAAW,EAAE,OAAO,EAAI,SAAS,EAAE,EAAI,KAAK,IAAI,CAAG,EAAE,EAAI,UAAU,EAAE,EAAS,QAAG,EAAI,WAAW,GAAG,KAAK,WAAW,EAAE,OAAO,KAAK,SAAS,EAAE,EAAI,EAAI,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAI,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,KAAK,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,EAAI,WAAW,EAAE,CAAC,EAAI,SAAS,EAAE,IAAI,EAAE,KAAK,KAAK,CAAG,EAAE,OAAO,EAAI,SAAS,EAAE,EAAE,UAAU,EAAO,QAAG,KAAK,WAAW,EAAE,OAAO,KAAK,SAAS,EAAE,KAAK,KAAK,CAAG,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,IAAI,EAAI,KAAK,IAAI,CAAG,EAAE,GAAG,IAAM,EAAE,OAAO,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,EAAI,EAAE,EAAE,KAAK,EAAE,EAAS,OAAE,EAAI,EAAE,KAAK,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,GAAG,EAAM,EAAM,GAAG,GAAG,KAAK,MAAM,GAAG,EAAE,SAAS,KAAK,IAAQ,GAAG,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAM,EAAM,GAAG,GAAG,KAAK,MAAM,GAAG,EAAE,SAAS,GAAG,IAAQ,GAAG,EAAE,EAAE,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,GAAG,KAAK,OAAO,KAAK,IAAI,KAAK,OAAO,CAAC,EAAE,IAAI,KAAK,KAAK,SAAS,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,GAAG,SAAS,CAAU,CAAC,EAAM,EAAI,EAAI,CAAC,EAAI,SAAS,EAAI,SAAS,EAAM,SAAS,IAAI,EAAI,EAAM,OAAO,EAAI,OAAO,EAAE,EAAI,OAAO,EAAI,EAAI,EAAI,EAAE,EAAE,IAAI,EAAE,EAAM,MAAM,GAAG,EAAE,EAAE,EAAI,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,EAAE,SAAS,EAAM,EAAE,SAAS,EAAE,EAAI,MAAM,GAAG,EAAG,QAAQ,EAAE,EAAE,EAAE,EAAI,IAAI,CAAC,IAAI,EAAO,IAAQ,GAAG,EAAM,EAAM,SAAS,EAAK,KAAK,IAAI,EAAE,EAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,EAAE,EAAM,OAAO,CAAC,EAAE,GAAG,EAAK,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAM,MAAM,GAAG,EAAE,EAAE,EAAI,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,EAAM,GAAQ,EAAE,SAAS,EAAE,EAAM,EAAE,SAAS,EAAI,MAAM,GAAG,EAAM,EAAE,EAAM,EAAO,EAAE,GAAG,IAAQ,EAAE,EAAI,MAAM,GAAG,EAAM,EAAO,OAAI,SAAS,OAAO,EAAI,MAAM,EAAE,IAAI,EAAY,QAAQ,CAAC,EAAM,EAAI,EAAI,CAAC,IAAI,EAAE,EAAM,MAAM,EAAE,EAAI,MAAM,EAAE,EAAI,MAAM,EAAE,EAAE,EAAG,EAAI,EAAG,EAAG,EAAE,GAAG,EAAE,EAAI,EAAG,KAAK,EAAI,IAAK,GAAG,EAAG,EAAE,GAAG,EAAE,EAAI,EAAG,KAAK,EAAI,IAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,EAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,EAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,EAAI,GAAG,KAAK,EAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,EAAI,GAAG,KAAK,EAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,EAAI,KAAK,GAAG,EAAG,EAAE,GAAG,EAAE,GAAI,EAAG,KAAK,GAAI,IAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,EAAI,SAAS,EAAM,SAAS,EAAI,SAAS,EAAI,OAAO,GAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EA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EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,SAAS,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,UAAU,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,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EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,IAAI,IAAK,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAG,GAAI,IAAM,IAAI,IAAI,KAAM,IAAI,EAAE,IAAK,SAAS,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,EAAE,IAAI,GAAI,IAAI,EAAE,EAAE,IAAI,EAAE,EAAI,SAAS,OAAO,GAAK,GAAG,CAAC,KAAK,KAAK,EAAY,EAAW,SAAS,CAAQ,CAAC,EAAM,EAAI,EAAI,CAAC,EAAI,SAAS,EAAI,SAAS,EAAM,SAAS,EAAI,OAAO,EAAM,OAAO,EAAI,OAAO,IAAI,EAAM,EAAE,EAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,EAAE,IAAI,CAAC,IAAI,EAAO,EAAQ,EAAQ,EAAE,IAAI,EAAM,EAAM,SAAS,EAAK,KAAK,IAAI,EAAE,EAAI,OAAO,CAAC,EAAE,QAAQ,EAAE,KAAK,IAAI,EAAE,EAAE,EAAM,OAAO,CAAC,EAAE,GAAG,EAAK,IAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAM,MAAM,GAAG,EAAE,EAAE,EAAI,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,EAAE,SAAS,EAAO,GAAQ,EAAE,SAAS,GAAG,EAAE,EAAG,EAAG,EAAM,EAAE,EAAM,EAAG,SAAS,EAAO,GAAQ,IAAK,IAAI,EAAE,GAAS,IAAS,GAAG,GAAQ,SAAS,EAAI,MAAM,GAAG,EAAM,EAAM,EAAO,EAAO,EAAQ,GAAG,IAAQ,EAAE,EAAI,MAAM,GAAG,EAAW,OAAI,SAAS,OAAO,EAAI,MAAM,EAAE,SAAS,CAAU,CAAC,EAAM,EAAI,EAAI,CAAC,IAAI,EAAK,IAAI,EAAK,OAAO,EAAK,KAAK,EAAM,EAAI,CAAG,EAAE,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,EAAI,CAAC,IAAI,EAAI,EAAI,KAAK,OAAO,EAAI,OAAO,GAAG,KAAK,SAAS,IAAI,EAAI,SAAS,GAAG,EAAI,EAAY,KAAK,EAAI,CAAG,EAAO,QAAG,EAAI,GAAG,EAAI,EAAW,KAAK,EAAI,CAAG,EAAO,QAAG,EAAI,KAAK,EAAI,EAAS,KAAK,EAAI,CAAG,EAAO,OAAI,EAAW,KAAK,EAAI,CAAG,EAAE,OAAO,GAAK,SAAS,CAAI,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,EAAE,EAAK,UAAU,QAAQ,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,EAAG,UAAU,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,GAAG,KAAK,OAAO,EAAE,EAAE,CAAC,EAAE,OAAO,GAAG,EAAK,UAAU,OAAO,QAAQ,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,GAAG,IAAI,EAAE,EAAE,OAAO,EAAE,IAAI,EAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,IAAK,EAAE,IAAI,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,GAAI,EAAK,UAAU,QAAQ,QAAQ,CAAC,EAAI,EAAI,EAAI,EAAK,EAAK,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAK,GAAG,EAAI,EAAI,IAAI,EAAK,GAAG,EAAI,EAAI,KAAK,EAAK,UAAU,UAAU,QAAQ,CAAC,EAAI,EAAI,EAAK,EAAK,EAAE,EAAI,CAAC,KAAK,QAAQ,EAAI,EAAI,EAAI,EAAK,EAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,EAAM,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,EAAM,KAAK,IAAI,EAAE,KAAK,GAAG,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,IAAI,EAAO,EAAM,EAAO,EAAM,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAG,EAAK,EAAE,GAAG,EAAG,EAAK,EAAE,GAAG,GAAG,EAAK,EAAE,EAAE,GAAG,GAAG,EAAK,EAAE,EAAE,GAAG,EAAG,EAAO,GAAG,EAAO,GAAG,GAAG,GAAG,EAAO,GAAG,EAAO,GAAG,GAAG,EAAG,EAAK,EAAE,GAAG,EAAG,GAAG,EAAK,EAAE,GAAG,EAAG,GAAG,EAAK,EAAE,EAAE,GAAG,EAAG,GAAG,EAAK,EAAE,EAAE,GAAG,EAAG,GAAG,IAAI,EAAE,EAAG,EAAM,EAAO,EAAM,EAAO,EAAO,EAAM,EAAO,EAAM,EAAO,EAAO,MAAO,EAAK,UAAU,YAAY,QAAQ,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,MAAO,IAAG,EAAE,EAAE,GAAK,EAAK,UAAU,UAAU,QAAQ,CAAC,EAAI,EAAI,EAAE,CAAC,GAAG,GAAG,EAAE,OAAO,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,EAAI,GAAG,EAAI,GAAG,EAAI,EAAE,EAAE,GAAG,EAAI,EAAE,EAAE,GAAG,EAAE,EAAE,EAAI,GAAG,EAAI,GAAG,CAAC,EAAI,EAAE,EAAE,GAAG,EAAI,EAAE,EAAE,GAAG,CAAC,IAAI,EAAK,UAAU,aAAa,QAAQ,CAAC,EAAG,EAAE,CAAC,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,EAAG,EAAE,EAAE,GAAG,CAAC,EAAE,KAAK,KAAK,MAAM,EAAG,EAAE,GAAG,CAAC,EAAE,EAAM,GAAG,EAAG,GAAG,EAAE,SAAS,EAAE,SAAS,EAAM,EAAO,OAAM,EAAE,SAAS,EAAE,OAAO,GAAI,EAAK,UAAU,WAAW,QAAQ,CAAC,EAAG,EAAI,EAAI,EAAE,CAAC,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,IAAI,EAAM,GAAO,EAAG,GAAG,GAAG,EAAI,EAAE,GAAG,EAAM,KAAK,EAAM,IAAQ,GAAG,EAAI,EAAE,EAAE,GAAG,EAAM,KAAK,EAAM,IAAQ,GAAG,IAAI,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAI,GAAG,EAAE,EAAO,IAAQ,CAAC,EAAE,GAAQ,EAAM,SAAS,CAAC,GAAG,EAAK,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAG,MAAM,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAG,GAAG,EAAE,OAAO,GAAI,EAAK,UAAU,KAAK,QAAQ,CAAC,EAAE,EAAE,EAAI,CAAC,IAAI,EAAE,EAAE,KAAK,YAAY,EAAE,OAAO,EAAE,MAAM,EAAE,EAAI,KAAK,QAAQ,CAAC,EAAE,EAAE,KAAK,KAAK,CAAC,EAAE,EAAI,MAAM,CAAC,EAAE,EAAK,MAAM,CAAC,EAAE,EAAK,MAAM,CAAC,EAAE,EAAK,MAAM,CAAC,EAAE,EAAM,MAAM,CAAC,EAAE,EAAM,MAAM,CAAC,EAAE,EAAK,EAAI,MAAM,EAAK,OAAO,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,OAAO,EAAI,CAAC,EAAE,KAAK,WAAW,EAAE,MAAM,EAAE,OAAO,EAAK,CAAC,EAAE,KAAK,UAAU,EAAI,EAAE,EAAK,EAAK,EAAE,CAAG,EAAE,KAAK,UAAU,EAAK,EAAE,EAAM,EAAM,EAAE,CAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,CAAC,IAAI,EAAG,EAAK,GAAG,EAAM,GAAG,EAAK,GAAG,EAAM,GAAG,EAAK,GAAG,EAAK,GAAG,EAAM,GAAG,EAAK,GAAG,EAAM,GAAG,EAAK,GAAG,EAAG,OAAO,KAAK,UAAU,EAAK,EAAK,CAAC,EAAE,KAAK,UAAU,EAAK,EAAK,EAAK,EAAE,EAAE,CAAG,EAAE,KAAK,UAAU,EAAK,EAAE,CAAC,EAAE,KAAK,aAAa,EAAK,CAAC,EAAE,EAAI,SAAS,EAAE,SAAS,EAAE,SAAS,EAAI,OAAO,EAAE,OAAO,EAAE,OAAO,EAAI,MAAM,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,IAAI,EAAG,IAAI,EAAE,OAAO,EAAI,MAAM,MAAM,KAAK,OAAO,EAAI,MAAM,EAAE,KAAK,MAAM,EAAI,CAAG,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,IAAI,EAAG,IAAI,EAAE,OAAO,EAAI,MAAM,MAAM,KAAK,OAAO,EAAI,MAAM,EAAE,EAAW,KAAK,EAAI,CAAG,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,EAAI,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,EAAO,OAAO,IAAM,QAAQ,EAAE,EAAO,EAAI,QAAQ,EAAE,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,GAAG,KAAK,MAAM,GAAG,GAAG,EAAI,GAAI,EAAE,WAAW,EAAM,UAAU,IAAQ,GAAG,GAAO,EAAE,SAAS,EAAE,GAAO,IAAK,GAAG,KAAK,MAAM,GAAG,EAAG,SAAS,GAAG,IAAQ,EAAE,KAAK,MAAM,GAAG,EAAM,KAAK,SAAS,OAAO,KAAK,OAAO,IAAM,EAAE,EAAE,KAAK,OAAO,MAAM,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,IAAI,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,EAAE,CAAC,OAAO,KAAK,KAAK,KAAK,MAAM,CAAC,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,EAAW,CAAG,EAAE,GAAG,EAAE,SAAS,EAAE,OAAO,IAAI,EAAG,CAAC,EAAE,IAAI,EAAI,KAAK,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAI,EAAI,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,GAAG,EAAE,EAAE,EAAE,OAAO,QAAQ,EAAE,EAAI,IAAI,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,EAAE,IAAI,EAAE,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAI,EAAI,IAAI,CAAC,EAAE,OAAO,GAAK,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAK,CAAC,EAAO,OAAO,IAAO,UAAU,GAAM,CAAC,EAAE,IAAI,EAAE,EAAK,GAAG,GAAG,EAAK,GAAG,GAAG,EAAU,WAAW,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,IAAI,EAAE,CAAC,IAAI,EAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAS,KAAK,MAAM,GAAG,EAAU,GAAG,KAAK,MAAM,GAAG,GAAG,GAAU,EAAE,KAAK,MAAM,GAAG,EAAE,EAAM,EAAM,IAAW,GAAG,EAAE,GAAG,EAAM,KAAK,MAAM,GAAG,EAAM,KAAK,SAAS,GAAG,IAAI,EAAE,CAAC,IAAI,EAAE,KAAK,OAAO,EAAE,GAAG,EAAE,IAAI,KAAK,MAAM,EAAE,GAAG,KAAK,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,KAAK,MAAM,GAAG,EAAE,KAAK,QAAQ,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAK,CAAC,OAAO,EAAO,KAAK,WAAW,CAAC,EAAE,KAAK,OAAO,CAAI,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAK,EAAK,EAAS,CAAC,EAAO,OAAO,IAAO,UAAU,GAAM,CAAC,EAAE,IAAI,EAAE,GAAG,EAAK,GAAG,EAAK,EAAK,IAAI,GAAQ,OAAE,EAAE,IAAI,EAAE,EAAK,GAAG,EAAE,KAAK,KAAK,EAAK,GAAG,GAAG,KAAK,MAAM,EAAE,EAAK,SAAS,WAAW,GAAG,EAAE,EAAY,EAAS,GAAG,GAAG,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAY,CAAC,QAAQ,EAAE,EAAE,EAAE,EAAE,IAAI,EAAY,MAAM,GAAG,KAAK,MAAM,GAAG,EAAY,OAAO,EAAE,GAAG,IAAI,GAAQ,QAAG,KAAK,OAAO,EAAE,CAAC,KAAK,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,KAAK,MAAM,GAAG,KAAK,MAAM,EAAE,GAAQ,UAAK,MAAM,GAAG,EAAE,KAAK,OAAO,EAAE,IAAI,EAAM,EAAE,IAAI,EAAE,KAAK,OAAO,EAAE,GAAG,IAAI,IAAQ,GAAG,GAAG,GAAG,IAAI,CAAC,IAAI,EAAK,KAAK,MAAM,GAAG,EAAE,KAAK,MAAM,GAAG,GAAO,GAAG,EAAE,IAAO,EAAE,EAAM,EAAK,EAAK,GAAG,GAAa,IAAQ,EAAE,EAAY,MAAM,EAAY,UAAU,EAAM,GAAG,KAAK,SAAS,EAAE,KAAK,MAAM,GAAG,EAAE,KAAK,OAAO,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAK,EAAK,EAAS,CAAC,OAAO,EAAO,KAAK,WAAW,CAAC,EAAE,KAAK,OAAO,EAAK,EAAK,CAAQ,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAK,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAK,CAAC,OAAO,KAAK,MAAM,EAAE,OAAO,CAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAK,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAK,CAAC,OAAO,KAAK,MAAM,EAAE,OAAO,CAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,EAAO,OAAO,IAAM,UAAU,GAAK,CAAC,EAAE,IAAI,EAAE,EAAI,GAAG,GAAG,EAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,QAAQ,EAAE,MAAM,GAAG,IAAI,EAAE,KAAK,MAAM,GAAG,MAAM,CAAC,EAAE,EAAE,IAAI,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAK,CAAC,EAAO,OAAO,IAAO,UAAU,GAAM,CAAC,EAAE,IAAI,EAAE,EAAK,GAAG,GAAG,EAAK,GAAG,GAAG,GAAG,EAAO,KAAK,WAAW,EAAE,yCAAyC,EAAE,KAAK,QAAQ,EAAE,OAAO,KAAK,GAAG,IAAI,EAAE,IAAI,GAAG,KAAK,OAAO,KAAK,IAAI,EAAE,KAAK,MAAM,EAAE,IAAI,EAAE,CAAC,IAAI,EAAK,SAAS,WAAW,GAAG,EAAE,KAAK,MAAM,KAAK,OAAO,IAAI,EAAK,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAK,CAAC,OAAO,KAAK,MAAM,EAAE,OAAO,CAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,GAAG,EAAO,OAAO,IAAM,QAAQ,EAAE,EAAO,EAAI,QAAQ,EAAE,EAAI,EAAE,OAAO,KAAK,MAAM,CAAC,CAAG,EAAE,GAAG,KAAK,WAAW,EAAE,CAAC,GAAG,KAAK,SAAS,IAAI,KAAK,MAAM,GAAG,GAAG,EAAI,OAAO,KAAK,MAAM,GAAG,GAAK,KAAK,MAAM,GAAG,GAAG,KAAK,SAAS,EAAE,KAAK,OAAO,KAAK,SAAS,EAAE,KAAK,MAAM,CAAG,EAAE,KAAK,SAAS,EAAE,KAAK,OAAO,KAAK,OAAO,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,CAAC,KAAK,MAAM,IAAI,EAAI,QAAQ,EAAE,EAAE,EAAE,KAAK,QAAQ,KAAK,MAAM,IAAI,SAAS,IAAI,GAAG,KAAK,MAAM,IAAI,SAAS,IAAI,KAAK,OAAO,EAAE,KAAK,MAAM,EAAE,GAAG,EAAO,UAAK,MAAM,EAAE,KAAK,OAAO,KAAK,OAAO,KAAK,IAAI,KAAK,OAAO,EAAE,CAAC,EAAE,MAAM,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,GAAG,EAAO,OAAO,IAAM,QAAQ,EAAE,EAAO,EAAI,QAAQ,EAAE,EAAI,EAAE,OAAO,KAAK,MAAM,CAAC,CAAG,EAAE,GAAG,KAAK,WAAW,EAAE,OAAO,KAAK,SAAS,EAAE,KAAK,MAAM,CAAG,EAAE,KAAK,SAAS,EAAE,KAAK,GAAG,KAAK,MAAM,IAAI,EAAI,KAAK,SAAS,GAAG,KAAK,MAAM,GAAG,EAAE,KAAK,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,KAAK,SAAS,EAAO,aAAQ,EAAE,EAAE,EAAE,KAAK,QAAQ,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK,MAAM,IAAI,SAAS,KAAK,MAAM,EAAE,IAAI,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,GAAG,EAAG,UAAU,KAAK,QAAQ,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,MAAM,EAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,MAAM,EAAE,KAAK,GAAG,EAAG,UAAU,aAAa,QAAQ,CAAC,EAAI,EAAI,EAAM,CAAC,IAAI,EAAI,EAAI,OAAO,EAAM,EAAE,KAAK,QAAQ,CAAG,EAAE,IAAI,EAAE,EAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAI,OAAO,IAAI,CAAC,GAAG,KAAK,MAAM,EAAE,GAAO,GAAG,EAAM,IAAI,GAAO,EAAI,MAAM,GAAG,GAAG,EAAI,GAAG,EAAM,SAAS,GAAO,GAAG,KAAK,EAAM,SAAS,GAAG,KAAK,MAAM,EAAE,GAAO,EAAE,SAAS,KAAK,EAAE,KAAK,OAAO,EAAM,IAAI,GAAG,KAAK,MAAM,EAAE,GAAO,GAAG,EAAM,EAAM,GAAG,GAAG,KAAK,MAAM,EAAE,GAAO,EAAE,SAAS,GAAG,IAAQ,EAAE,OAAO,KAAK,MAAM,EAAE,EAAO,IAAQ,EAAE,EAAE,EAAM,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,EAAE,EAAE,KAAK,MAAM,GAAG,GAAG,EAAM,EAAM,GAAG,GAAG,KAAK,MAAM,GAAG,EAAE,SAAS,OAAO,KAAK,SAAS,EAAE,KAAK,MAAM,GAAG,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAI,EAAK,CAAC,IAAI,EAAM,KAAK,OAAO,EAAI,OAAO,EAAE,KAAK,MAAM,EAAE,EAAE,EAAI,EAAI,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,EAAQ,KAAK,WAAW,CAAG,EAAE,GAAG,EAAM,GAAG,EAAQ,IAAQ,EAAE,EAAE,EAAE,MAAM,CAAK,EAAE,EAAE,OAAO,CAAK,EAAE,EAAI,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,IAAO,MAAM,CAAC,EAAE,IAAI,EAAG,IAAI,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,EAAE,MAAM,GAAG,EAAE,IAAI,EAAK,EAAE,MAAM,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,GAAG,EAAK,WAAW,GAAG,GAAG,EAAE,EAAK,EAAE,EAAE,MAAM,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,GAAI,EAAE,MAAM,EAAE,OAAO,GAAG,GAAG,UAAU,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,EAAG,KAAK,IAAI,EAAG,EAAI,EAAE,QAAQ,EAAE,EAAE,aAAa,EAAE,EAAG,CAAC,EAAE,MAAM,EAAE,WAAW,EAAE,GAAG,IAAK,EAAE,SAAS,EAAE,EAAE,aAAa,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,EAAE,UAAU,EAAE,GAAG,EAAE,EAAE,MAAM,GAAG,EAAG,GAAG,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,IAAO,OAAO,IAAQ,EAAE,EAAE,OAAO,CAAK,EAAE,MAAM,CAAC,IAAI,GAAG,KAAK,IAAI,CAAC,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,EAAK,EAAS,CAAC,GAAG,EAAO,CAAC,EAAI,OAAO,CAAC,EAAE,KAAK,OAAO,EAAE,MAAM,CAAC,IAAI,IAAI,EAAG,CAAC,EAAE,IAAI,IAAI,EAAG,CAAC,CAAC,EAAE,IAAI,EAAI,EAAI,EAAI,GAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,CAAC,GAAG,EAAI,KAAK,IAAI,EAAE,OAAO,EAAI,CAAI,EAAE,IAAO,MAAM,EAAI,EAAI,IAAI,IAAI,EAAE,GAAG,IAAO,OAAO,GAAG,EAAI,EAAI,IAAI,IAAI,EAAE,GAAU,EAAI,WAAW,EAAE,EAAI,KAAK,CAAG,EAAE,MAAM,CAAC,MAAI,KAAG,EAAE,GAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,CAAC,GAAG,EAAI,KAAK,OAAO,EAAI,IAAI,EAAE,CAAI,EAAE,IAAO,MAAM,EAAI,EAAI,IAAI,IAAI,EAAE,MAAM,CAAC,MAAI,IAAI,EAAI,GAAG,EAAE,IAAI,KAAK,SAAS,EAAI,YAAY,EAAE,CAAC,GAAG,EAAI,KAAK,IAAI,EAAE,OAAO,EAAI,IAAI,EAAE,CAAI,EAAE,IAAO,OAAO,GAAG,EAAI,EAAI,IAAI,IAAI,EAAE,GAAU,EAAI,WAAW,EAAE,EAAI,KAAK,CAAG,EAAE,MAAM,CAAC,IAAI,EAAI,IAAI,KAAG,EAAE,GAAG,EAAI,OAAO,KAAK,QAAQ,KAAK,IAAI,CAAG,EAAE,EAAE,MAAM,CAAC,IAAI,IAAI,EAAG,CAAC,EAAE,IAAI,IAAI,EAAE,GAAG,EAAI,SAAS,EAAE,CAAC,GAAG,IAAO,MAAM,MAAM,CAAC,IAAI,KAAK,KAAK,EAAI,MAAM,EAAE,EAAE,IAAI,IAAI,EAAE,GAAG,IAAO,MAAM,MAAM,CAAC,IAAI,KAAK,IAAI,IAAI,EAAG,KAAK,KAAK,EAAI,MAAM,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,IAAI,KAAK,KAAK,EAAI,MAAM,EAAE,EAAE,IAAI,IAAI,EAAG,KAAK,KAAK,EAAI,MAAM,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,SAAS,EAAI,CAAI,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,OAAO,EAAI,MAAM,EAAE,EAAE,KAAK,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,OAAO,EAAI,MAAM,EAAE,EAAE,KAAK,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,OAAO,EAAI,MAAM,EAAE,EAAE,KAAK,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAG,KAAK,OAAO,CAAG,EAAE,GAAG,EAAG,IAAI,OAAO,EAAE,OAAO,EAAG,IAAI,IAAI,EAAI,EAAG,IAAI,WAAW,EAAE,EAAG,IAAI,KAAK,CAAG,EAAE,EAAG,IAAI,EAAK,EAAI,MAAM,CAAC,EAAE,EAAG,EAAI,MAAM,CAAC,EAAE,EAAI,EAAI,IAAI,CAAI,EAAE,GAAG,EAAI,GAAG,IAAK,GAAG,IAAM,EAAE,OAAO,EAAG,IAAI,OAAO,EAAG,IAAI,WAAW,EAAE,EAAG,IAAI,MAAM,CAAC,EAAE,EAAG,IAAI,MAAM,CAAC,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,EAAO,GAAK,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAI,EAAI,EAAE,QAAQ,EAAE,KAAK,OAAO,EAAE,GAAG,EAAE,IAAI,GAAK,EAAE,GAAK,KAAK,MAAM,GAAG,IAAI,EAAI,OAAO,GAAK,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,EAAO,GAAK,QAAQ,EAAE,IAAI,EAAM,EAAE,QAAQ,EAAE,KAAK,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,GAAG,KAAK,MAAM,GAAG,GAAG,EAAM,SAAS,KAAK,MAAM,GAAG,EAAE,EAAI,EAAE,EAAM,EAAE,EAAI,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,EAAO,EAAE,WAAW,CAAC,EAAE,EAAO,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,CAAC,EAAO,OAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAG,CAAC,EAAE,EAAE,IAAI,EAAG,CAAC,EAAE,EAAE,IAAI,EAAG,CAAC,EAAE,EAAE,IAAI,EAAG,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAG,EAAE,MAAM,EAAE,EAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAG,GAAG,EAAE,MAAM,GAAG,KAAM,GAAG,EAAE,GAAG,EAAE,EAAE,IAAK,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,CAAE,EAAE,EAAE,KAAK,CAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,QAAQ,EAAE,EAAE,EAAG,GAAG,EAAE,MAAM,GAAG,KAAM,GAAG,EAAE,GAAG,EAAE,EAAE,IAAK,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,EAAE,EAAE,KAAK,CAAE,EAAE,EAAE,KAAK,CAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAO,OAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAE,CAAC,EAAO,EAAE,WAAW,CAAC,EAAE,EAAO,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,CAAC,EAAO,OAAE,EAAE,MAAM,EAAE,IAAI,EAAG,IAAI,EAAG,CAAC,EAAE,EAAG,IAAI,EAAG,CAAC,EAAE,EAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAG,GAAG,EAAE,MAAM,GAAG,KAAM,GAAG,EAAE,GAAG,EAAE,EAAE,IAAK,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,EAAE,CAAC,GAAG,EAAG,MAAM,EAAE,EAAG,KAAK,CAAK,EAAE,EAAG,OAAO,CAAC,GAAG,QAAQ,EAAE,EAAE,EAAG,GAAG,EAAE,MAAM,GAAG,KAAM,GAAG,EAAE,GAAG,EAAE,EAAE,IAAK,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,EAAE,CAAC,GAAG,EAAG,MAAM,EAAE,EAAG,KAAK,CAAK,EAAE,EAAG,OAAO,CAAC,GAAG,GAAG,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,KAAK,CAAC,EAAE,EAAG,KAAK,CAAE,EAAO,OAAE,KAAK,CAAC,EAAE,EAAG,KAAK,CAAE,EAAE,IAAI,EAAI,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,EAAI,EAAQ,OAAI,EAAG,GAAG,EAAI,KAAK,CAAC,EAAE,EAAE,EAAI,KAAK,CAAC,EAAE,OAAO,GAAK,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAE,OAAO,EAAI,IAAI,EAAE,GAAG,EAAI,OAAO,EAAE,OAAO,KAAK,IAAI,EAAE,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,EAAI,MAAM,EAAE,EAAE,SAAS,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAM,EAAE,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,IAAQ,EAAE,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAO,QAAG,IAAI,GAAG,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,QAAQ,IAAI,OAAO,EAAE,OAAO,CAAK,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,CAAG,EAAE,EAAE,KAAK,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,EAAE,CAAC,OAAO,KAAK,MAAM,GAAG,KAAK,GAAG,EAAG,UAAU,MAAM,QAAQ,EAAE,CAAC,OAAO,KAAK,MAAM,GAAG,KAAK,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,GAAG,GAAK,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,EAAO,OAAO,IAAM,QAAQ,EAAE,IAAI,EAAE,EAAI,GAAG,GAAG,EAAI,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,KAAK,QAAQ,EAAE,OAAO,KAAK,QAAQ,EAAE,CAAC,EAAE,KAAK,MAAM,IAAI,EAAE,KAAK,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,IAAQ,GAAG,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAM,EAAM,IAAI,GAAG,GAAG,SAAS,KAAK,MAAM,GAAG,EAAE,GAAG,IAAQ,EAAE,KAAK,MAAM,GAAG,EAAM,KAAK,SAAS,OAAO,MAAM,EAAG,UAAU,OAAO,QAAQ,EAAE,CAAC,OAAO,KAAK,SAAS,GAAG,KAAK,MAAM,KAAK,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAS,EAAI,EAAE,GAAG,KAAK,WAAW,GAAG,CAAC,EAAS,MAAM,GAAG,GAAG,KAAK,WAAW,GAAG,EAAS,MAAO,GAAE,KAAK,MAAM,EAAE,IAAI,EAAI,GAAG,KAAK,OAAO,EAAE,EAAI,EAAM,KAAC,GAAG,EAAS,EAAI,CAAC,EAAI,EAAO,GAAK,SAAS,mBAAmB,EAAE,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,EAAI,IAAI,EAAI,EAAE,EAAE,EAAI,GAAG,EAAE,GAAG,KAAK,WAAW,EAAE,MAAM,CAAC,EAAI,EAAE,OAAO,GAAK,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,MAAM,GAAG,GAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,MAAO,GAAE,IAAI,EAAI,KAAK,KAAK,CAAG,EAAE,GAAG,KAAK,WAAW,EAAE,MAAM,CAAC,EAAI,EAAE,OAAO,GAAK,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,MAAO,GAAE,GAAG,KAAK,OAAO,EAAI,OAAO,MAAM,GAAG,IAAI,EAAI,EAAE,QAAQ,EAAE,KAAK,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,EAAE,EAAI,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,SAAS,GAAG,EAAE,EAAE,EAAI,GAAQ,QAAG,EAAE,EAAE,EAAI,EAAE,MAAM,OAAO,GAAK,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,CAAG,IAAI,GAAG,EAAG,UAAU,GAAG,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,IAAI,CAAG,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,CAAG,GAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,IAAI,CAAG,GAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,CAAG,IAAI,IAAI,EAAG,UAAU,GAAG,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,IAAI,CAAG,IAAI,IAAI,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,CAAG,GAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,IAAI,CAAG,GAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,CAAG,IAAI,GAAG,EAAG,UAAU,GAAG,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,IAAI,CAAG,IAAI,GAAG,EAAG,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,IAAI,EAAI,CAAG,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,CAAC,KAAK,IAAI,uCAAuC,EAAE,EAAO,KAAK,WAAW,EAAE,+BAA+B,EAAE,EAAI,UAAU,IAAI,EAAE,UAAU,CAAG,GAAG,EAAG,UAAU,QAAQ,QAAQ,EAAE,CAAC,OAAO,EAAO,KAAK,IAAI,sDAAsD,EAAE,KAAK,IAAI,YAAY,IAAI,GAAG,EAAG,UAAU,UAAU,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,IAAI,EAAI,MAAM,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,CAAC,KAAK,IAAI,uCAAuC,EAAE,KAAK,UAAU,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,IAAI,KAAK,CAAG,GAAG,EAAG,UAAU,QAAQ,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,qCAAqC,EAAE,KAAK,IAAI,KAAK,KAAK,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,IAAI,KAAK,CAAG,GAAG,EAAG,UAAU,QAAQ,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,qCAAqC,EAAE,KAAK,IAAI,KAAK,KAAK,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,IAAI,KAAK,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,SAAS,KAAK,CAAG,EAAE,KAAK,IAAI,IAAI,KAAK,CAAG,GAAG,EAAG,UAAU,QAAQ,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,SAAS,KAAK,CAAG,EAAE,KAAK,IAAI,KAAK,KAAK,CAAG,GAAG,EAAG,UAAU,OAAO,QAAQ,EAAE,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAG,UAAU,QAAQ,QAAQ,EAAE,CAAC,OAAO,EAAO,KAAK,IAAI,qCAAqC,EAAE,KAAK,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,KAAK,IAAI,GAAG,EAAG,UAAU,QAAQ,QAAQ,EAAE,CAAC,OAAO,EAAO,KAAK,IAAI,qCAAqC,EAAE,KAAK,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,KAAK,IAAI,GAAG,EAAG,UAAU,QAAQ,QAAQ,EAAE,CAAC,OAAO,EAAO,KAAK,IAAI,qCAAqC,EAAE,KAAK,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,KAAK,IAAI,GAAG,EAAG,UAAU,OAAO,QAAQ,EAAE,CAAC,OAAO,EAAO,KAAK,IAAI,oCAAoC,EAAE,KAAK,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,IAAI,IAAI,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAO,KAAK,KAAK,CAAC,EAAI,IAAI,mBAAmB,EAAE,KAAK,IAAI,SAAS,IAAI,EAAE,KAAK,IAAI,IAAI,KAAK,CAAG,GAAG,IAAI,EAAO,CAAC,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,OAAO,IAAI,EAAE,SAAS,CAAM,CAAC,EAAK,EAAE,CAAC,KAAK,KAAK,EAAK,KAAK,EAAE,IAAI,EAAG,EAAE,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,KAAK,EAAE,IAAI,EAAG,CAAC,EAAE,OAAO,KAAK,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,KAAK,IAAI,KAAK,KAAK,EAAE,EAAO,UAAU,KAAK,QAAQ,EAAE,CAAC,IAAI,EAAI,IAAI,EAAG,IAAI,EAAE,OAAO,EAAI,MAAM,MAAM,KAAK,KAAK,KAAK,EAAE,EAAE,CAAC,EAAE,GAAK,EAAO,UAAU,QAAQ,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,EAAI,EAAK,GAAG,KAAK,MAAM,EAAE,KAAK,GAAG,EAAE,EAAE,KAAK,MAAM,CAAC,EAAE,EAAE,EAAE,KAAK,KAAK,GAAG,EAAE,EAAK,EAAE,UAAU,QAAQ,EAAK,KAAK,GAAG,IAAI,EAAI,EAAK,KAAK,EAAE,GAAG,EAAE,KAAK,KAAK,CAAC,EAAE,GAAG,IAAM,EAAE,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,EAAO,QAAG,EAAI,EAAE,EAAE,KAAK,KAAK,CAAC,EAAO,QAAG,EAAE,QAAa,OAAE,EAAE,MAAM,EAAO,OAAE,OAAO,EAAE,OAAO,GAAG,EAAO,UAAU,MAAM,QAAQ,CAAC,EAAM,EAAI,CAAC,EAAM,OAAO,KAAK,EAAE,EAAE,CAAG,GAAG,EAAO,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,OAAO,EAAI,KAAK,KAAK,CAAC,GAAG,SAAS,CAAI,EAAE,CAAC,EAAO,KAAK,KAAK,OAAO,yEAAyE,EAAE,EAAS,EAAK,CAAM,EAAE,EAAK,UAAU,MAAM,QAAQ,CAAC,EAAM,EAAO,CAAC,IAAI,EAAK,QAAQ,EAAO,KAAK,IAAI,EAAM,OAAO,CAAC,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAO,IAAI,EAAO,MAAM,GAAG,EAAM,MAAM,GAAG,GAAG,EAAO,OAAO,EAAO,EAAM,QAAQ,EAAE,CAAC,EAAM,MAAM,GAAG,EAAE,EAAM,OAAO,EAAE,OAAO,IAAI,EAAK,EAAM,MAAM,GAAG,EAAO,MAAM,EAAO,UAAU,EAAK,EAAK,IAAI,EAAE,GAAG,EAAE,EAAM,OAAO,IAAI,CAAC,IAAI,EAAK,EAAM,MAAM,GAAG,EAAE,EAAM,MAAM,EAAE,KAAK,EAAK,IAAO,EAAE,IAAO,GAAG,EAAK,EAAK,GAAG,KAAQ,GAAG,EAAM,MAAM,EAAE,IAAI,EAAK,IAAO,GAAG,EAAM,OAAO,GAAG,EAAM,QAAQ,GAAQ,OAAM,QAAQ,GAAG,EAAK,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,EAAI,MAAM,EAAI,QAAQ,EAAE,EAAI,MAAM,EAAI,OAAO,GAAG,EAAE,EAAI,QAAQ,EAAE,IAAI,EAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,IAAI,CAAC,IAAI,EAAE,EAAI,MAAM,GAAG,EAAE,GAAI,EAAE,IAAI,EAAI,MAAM,GAAG,EAAG,SAAS,EAAG,EAAE,IAAI,EAAG,SAAS,GAAG,GAAG,EAAI,MAAM,EAAI,OAAO,KAAK,GAAG,GAAG,EAAI,SAAS,EAAI,MAAM,EAAI,OAAO,KAAK,EAAE,EAAI,SAAS,OAAO,GAAK,SAAS,CAAI,EAAE,CAAC,EAAO,KAAK,KAAK,OAAO,gEAAgE,EAAE,EAAS,EAAK,CAAM,EAAE,SAAS,EAAI,EAAE,CAAC,EAAO,KAAK,KAAK,OAAO,uDAAuD,EAAE,EAAS,GAAK,CAAM,EAAE,SAAS,EAAM,EAAE,CAAC,EAAO,KAAK,KAAK,QAAQ,qEAAqE,EAAE,EAAS,GAAO,CAAM,EAAE,GAAO,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,IAAI,CAAC,IAAI,GAAI,EAAI,MAAM,GAAG,GAAG,GAAG,EAAM,EAAG,EAAG,SAAS,KAAM,GAAG,EAAI,MAAM,GAAG,EAAG,EAAM,EAAG,GAAG,IAAQ,EAAE,EAAI,MAAM,EAAI,UAAU,EAAM,OAAO,GAAK,EAAG,OAAO,QAAQ,CAAC,EAAK,CAAC,GAAG,EAAO,GAAM,OAAO,EAAO,GAAM,IAAI,EAAM,GAAG,IAAO,OAAO,EAAM,IAAI,EAAU,QAAG,IAAO,OAAO,EAAM,IAAI,EAAU,QAAG,IAAO,OAAO,EAAM,IAAI,GAAU,QAAG,IAAO,SAAS,EAAM,IAAI,GAAY,WAAM,MAAM,iBAAiB,CAAI,EAAE,OAAO,EAAO,GAAM,EAAM,GAAO,SAAS,CAAG,CAAC,EAAE,CAAC,GAAG,OAAO,IAAI,SAAS,CAAC,IAAI,EAAM,EAAG,OAAO,CAAC,EAAE,KAAK,EAAE,EAAM,EAAE,KAAK,MAAM,EAAW,OAAO,EAAE,IAAI,CAAC,EAAE,gCAAgC,EAAE,KAAK,EAAE,EAAE,KAAK,MAAM,KAAK,EAAI,UAAU,SAAS,QAAQ,CAAC,EAAE,CAAC,EAAO,EAAE,WAAW,EAAE,+BAA+B,EAAE,EAAO,EAAE,IAAI,iCAAiC,GAAG,EAAI,UAAU,SAAS,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAQ,EAAE,SAAS,EAAE,YAAY,EAAE,+BAA+B,EAAE,EAAO,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,iCAAiC,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,KAAK,MAAM,OAAO,KAAK,MAAM,QAAQ,CAAC,EAAE,UAAU,IAAI,EAAE,OAAO,EAAE,KAAK,KAAK,CAAC,EAAE,UAAU,IAAI,GAAG,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,KAAK,EAAE,IAAI,CAAC,EAAE,UAAU,IAAI,GAAG,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,EAAE,IAAI,EAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAI,IAAI,KAAK,CAAC,GAAG,EAAE,EAAI,KAAK,KAAK,CAAC,EAAE,OAAO,EAAI,UAAU,IAAI,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,EAAE,IAAI,EAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAI,IAAI,KAAK,CAAC,GAAG,EAAE,EAAI,KAAK,KAAK,CAAC,EAAE,OAAO,GAAK,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,EAAE,IAAI,EAAI,EAAE,IAAI,CAAC,EAAE,GAAG,EAAI,KAAK,CAAC,EAAE,EAAE,EAAI,KAAK,KAAK,CAAC,EAAE,OAAO,EAAI,UAAU,IAAI,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC,KAAK,SAAS,EAAE,CAAC,EAAE,IAAI,EAAI,EAAE,KAAK,CAAC,EAAE,GAAG,EAAI,KAAK,CAAC,EAAE,EAAE,EAAI,KAAK,KAAK,CAAC,EAAE,OAAO,GAAK,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAI,CAAC,OAAO,KAAK,SAAS,CAAC,EAAE,KAAK,KAAK,EAAE,MAAM,CAAG,CAAC,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC,EAAE,KAAK,KAAK,EAAE,IAAI,CAAC,CAAC,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,OAAO,KAAK,KAAK,EAAE,EAAE,MAAM,CAAC,GAAG,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAK,KAAK,EAAE,MAAM,CAAC,EAAE,GAAG,EAAO,EAAK,IAAI,CAAC,EAAE,IAAO,EAAE,CAAC,IAAI,EAAI,KAAK,EAAE,IAAI,IAAI,EAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,OAAO,KAAK,IAAI,EAAE,CAAG,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,OAAO,GAAG,EAAE,MAAM,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,EAAE,EAAO,CAAC,EAAE,OAAO,CAAC,EAAE,IAAI,EAAI,IAAI,EAAG,CAAC,EAAE,MAAM,IAAI,EAAE,EAAK,EAAI,OAAO,EAAE,EAAK,KAAK,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,IAAI,EAAG,EAAE,EAAE,CAAC,EAAE,MAAM,IAAI,EAAE,MAAM,KAAK,IAAI,EAAE,CAAI,EAAE,IAAI,CAAI,IAAI,EAAE,EAAE,QAAQ,CAAI,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,CAAG,IAAI,EAAE,CAAC,IAAI,EAAI,EAAE,QAAQ,EAAE,EAAE,EAAI,IAAI,CAAG,IAAI,EAAE,IAAI,EAAI,EAAI,OAAO,EAAE,EAAO,EAAE,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,IAAI,EAAG,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,OAAO,GAAG,EAAI,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAI,EAAE,OAAO,KAAK,CAAC,EAAE,GAAG,EAAI,WAAW,EAAE,OAAO,EAAI,SAAS,EAAE,KAAK,KAAK,CAAG,EAAE,OAAO,EAAO,YAAO,KAAK,KAAK,CAAG,GAAG,EAAI,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAI,CAAC,GAAG,EAAI,OAAO,EAAE,OAAO,IAAI,EAAG,CAAC,EAAE,MAAM,IAAI,EAAE,GAAG,EAAI,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAW,EAAE,EAAI,MAAM,GAAG,CAAU,EAAE,EAAI,GAAG,IAAI,EAAG,CAAC,EAAE,MAAM,IAAI,EAAE,EAAI,GAAG,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,IAAI,EAAI,GAAG,KAAK,IAAI,EAAI,EAAE,GAAG,CAAC,EAAE,IAAI,EAAI,EAAI,GAAG,EAAQ,EAAE,EAAW,EAAE,EAAM,EAAI,UAAU,EAAE,GAAG,GAAG,IAAQ,EAAE,EAAM,GAAG,IAAI,EAAE,EAAI,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAK,EAAI,MAAM,GAAG,QAAQ,EAAE,EAAM,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,EAAI,GAAM,EAAE,EAAE,GAAG,IAAM,EAAI,GAAG,EAAI,KAAK,IAAI,CAAG,EAAE,GAAG,IAAM,GAAG,IAAU,EAAE,CAAC,EAAW,EAAE,SAAS,GAAG,IAAU,EAAE,GAAS,EAAI,IAAa,IAAa,IAAa,IAAI,GAAG,IAAI,GAAG,SAAS,EAAI,KAAK,IAAI,EAAI,EAAI,EAAQ,EAAE,EAAW,EAAE,EAAQ,EAAE,EAAM,GAAG,OAAO,GAAK,EAAI,UAAU,UAAU,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,EAAI,KAAK,KAAK,CAAC,EAAE,OAAO,IAAI,EAAI,EAAE,MAAM,EAAE,GAAG,EAAI,UAAU,YAAY,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,EAAI,MAAM,EAAE,OAAO,EAAI,IAAI,KAAK,GAAK,EAAG,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,IAAI,GAAK,CAAG,GAAG,SAAS,EAAI,CAAC,EAAE,CAAC,GAAG,EAAI,KAAK,KAAK,CAAC,EAAE,KAAK,MAAM,KAAK,EAAE,UAAU,EAAE,KAAK,MAAM,KAAK,EAAE,KAAK,OAAO,GAAG,KAAK,MAAM,GAAG,KAAK,EAAE,IAAI,EAAG,CAAC,EAAE,OAAO,KAAK,KAAK,EAAE,KAAK,GAAG,KAAK,KAAK,KAAK,EAAE,IAAI,CAAC,EAAE,KAAK,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,KAAK,IAAI,KAAK,CAAC,EAAE,MAAM,CAAC,EAAE,IAAI,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,KAAK,KAAK,KAAK,CAAC,EAAE,KAAK,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,EAAS,GAAK,CAAG,EAAE,GAAK,UAAU,UAAU,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,KAAK,EAAI,MAAM,KAAK,KAAK,CAAC,GAAG,GAAK,UAAU,YAAY,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,KAAK,KAAK,EAAI,IAAI,KAAK,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,KAAK,GAAG,GAAK,UAAU,KAAK,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,GAAG,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,KAAK,EAAE,EAAI,EAAE,GAAG,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE,EAAI,EAAE,KAAK,KAAK,CAAC,EAAO,QAAG,EAAE,KAAK,CAAC,EAAE,EAAE,EAAI,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,EAAI,UAAU,IAAI,GAAG,GAAK,UAAU,IAAI,QAAQ,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,OAAO,GAAG,EAAE,OAAO,EAAE,OAAO,IAAI,EAAG,CAAC,EAAE,UAAU,IAAI,EAAE,IAAI,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,EAAE,MAAM,KAAK,KAAK,EAAE,IAAI,KAAK,IAAI,EAAE,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,OAAO,KAAK,KAAK,EAAE,EAAI,EAAE,GAAG,EAAE,IAAI,KAAK,CAAC,GAAG,EAAE,EAAI,EAAE,KAAK,KAAK,CAAC,EAAO,QAAG,EAAE,KAAK,CAAC,EAAE,EAAE,EAAI,EAAE,KAAK,KAAK,CAAC,EAAE,OAAO,EAAI,UAAU,IAAI,GAAG,GAAK,UAAU,KAAK,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAI,KAAK,KAAK,EAAE,OAAO,KAAK,CAAC,EAAE,IAAI,KAAK,EAAE,CAAC,EAAE,OAAO,EAAI,UAAU,IAAI,KAAK,OAAO,EAAO,KAAK,EAAO,CAAO,EAAE,EAAM,GAAmB,GAAW,CAAC,EAAQ,IAAS,CAAC,IAAI,EAAG,GAAY,EAAE,EAAQ,GAAoB,EAAE,OAAO,SAAS,CAAU,CAAC,EAAU,EAAI,CAAC,OAAO,EAAQ,KAAK,EAAU,MAAM,EAAG,KAAK,EAAI,OAAO,CAAC,EAAE,OAAO,IAAI,EAAG,EAAI,cAAc,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAO,QAAQ,EAAW,EAAM,GAAY,GAAW,CAAC,EAAQ,IAAS,EAAE,QAAQ,CAAC,EAAQ,EAAS,CAAC,SAAS,CAAM,CAAC,EAAI,EAAI,CAAC,GAAG,CAAC,EAAI,MAAM,MAAM,GAAK,kBAAkB,EAAE,SAAS,CAAQ,CAAC,EAAK,EAAU,CAAC,EAAK,OAAO,EAAU,IAAI,EAAS,QAAQ,EAAE,GAAG,EAAS,UAAU,EAAU,UAAU,EAAK,UAAU,IAAI,EAAS,EAAK,UAAU,YAAY,EAAK,SAAS,CAAE,CAAC,EAAO,EAAK,EAAO,CAAC,GAAG,EAAG,KAAK,CAAM,EAAE,OAAO,EAAO,GAAG,KAAK,SAAS,EAAE,KAAK,MAAM,KAAK,KAAK,OAAO,EAAE,KAAK,IAAI,KAAK,IAAS,KAAK,CAAC,GAAG,IAAO,MAAM,IAAO,KAAK,EAAO,EAAK,EAAK,GAAG,KAAK,MAAM,GAAQ,EAAE,GAAM,GAAG,GAAQ,IAAI,GAAG,GAAG,OAAO,IAAU,SAAS,EAAQ,QAAQ,EAAQ,OAAS,GAAG,EAAG,EAAG,GAAG,EAAG,EAAG,SAAS,GAAG,IAAI,EAAQ,GAAG,CAAC,GAAG,OAAO,OAAO,KAAK,OAAO,OAAO,OAAO,IAAI,EAAQ,OAAO,OAAY,qBAA0B,OAAO,MAAM,EAAE,EAAE,EAAG,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,aAAe,EAAG,MAAM,GAAG,OAAO,IAAM,MAAM,OAAO,IAAM,UAAU,EAAI,YAAY,WAAW,EAAG,UAAU,MAAM,QAAQ,EAAI,KAAK,GAAG,EAAG,IAAI,QAAQ,CAAC,EAAK,EAAM,CAAC,GAAG,EAAK,IAAI,CAAK,EAAE,EAAE,OAAO,EAAK,OAAO,GAAO,EAAG,IAAI,QAAQ,CAAC,EAAK,EAAM,CAAC,GAAG,EAAK,IAAI,CAAK,EAAE,EAAE,OAAO,EAAK,OAAO,GAAO,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAO,EAAK,EAAO,CAAC,GAAG,OAAO,IAAS,SAAS,OAAO,KAAK,YAAY,EAAO,EAAK,CAAM,EAAE,GAAG,OAAO,IAAS,SAAS,OAAO,KAAK,WAAW,EAAO,EAAK,CAAM,EAAE,GAAG,IAAO,MAAM,EAAK,GAAG,EAAO,KAAQ,EAAK,IAAI,GAAM,GAAG,GAAM,EAAE,EAAE,EAAO,EAAO,SAAS,EAAE,QAAQ,OAAO,EAAE,EAAE,IAAI,EAAM,EAAE,GAAG,EAAO,KAAK,IAAI,IAAQ,KAAK,SAAS,EAAE,GAAG,EAAM,EAAO,QAAQ,GAAG,IAAO,GAAG,KAAK,UAAU,EAAO,EAAM,CAAM,EAAO,QAAG,KAAK,WAAW,EAAO,EAAK,CAAK,EAAE,IAAS,KAAK,KAAK,WAAW,KAAK,QAAQ,EAAE,EAAK,CAAM,IAAI,EAAG,UAAU,YAAY,QAAQ,CAAC,EAAO,EAAK,EAAO,CAAC,GAAG,EAAO,EAAE,KAAK,SAAS,EAAE,EAAO,CAAC,EAAO,GAAG,EAAO,SAAS,KAAK,MAAM,CAAC,EAAO,QAAQ,EAAE,KAAK,OAAO,EAAO,QAAG,EAAO,iBAAiB,KAAK,MAAM,CAAC,EAAO,SAAS,EAAO,SAAS,QAAQ,EAAE,KAAK,OAAO,EAAO,OAAO,EAAO,gBAAgB,EAAE,KAAK,MAAM,CAAC,EAAO,SAAS,EAAO,SAAS,SAAS,CAAC,EAAE,KAAK,OAAO,EAAE,GAAG,IAAS,KAAK,OAAO,KAAK,WAAW,KAAK,QAAQ,EAAE,EAAK,CAAM,GAAG,EAAG,UAAU,WAAW,QAAQ,CAAC,EAAO,EAAK,EAAO,CAAC,GAAG,EAAO,OAAO,EAAO,SAAS,QAAQ,EAAE,EAAO,QAAQ,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,KAAK,KAAK,OAAO,KAAK,KAAK,EAAO,OAAO,CAAC,EAAE,KAAK,MAAM,MAAM,KAAK,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI,EAAE,EAAE,EAAI,EAAE,GAAG,IAAS,MAAM,IAAI,EAAE,EAAO,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAO,GAAG,EAAO,EAAE,IAAI,EAAE,EAAO,EAAE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,EAAI,SAAS,KAAK,MAAM,EAAE,GAAG,IAAI,GAAG,EAAI,SAAS,GAAK,GAAG,GAAK,GAAG,GAAK,GAAG,IAAS,QAAG,IAAS,MAAM,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAO,OAAO,GAAG,EAAE,GAAG,EAAE,EAAO,GAAG,EAAO,EAAE,IAAI,EAAE,EAAO,EAAE,IAAI,GAAG,KAAK,MAAM,IAAI,GAAG,EAAI,SAAS,KAAK,MAAM,EAAE,GAAG,IAAI,GAAG,EAAI,SAAS,GAAK,GAAG,GAAK,GAAG,GAAK,GAAG,IAAI,OAAO,KAAK,OAAO,GAAG,SAAS,CAAa,CAAC,EAAO,EAAM,CAAC,IAAI,EAAE,EAAO,WAAW,CAAK,EAAE,GAAG,GAAG,IAAI,GAAG,GAAG,OAAO,EAAE,GAAQ,QAAG,GAAG,IAAI,GAAG,GAAG,OAAO,EAAE,GAAQ,QAAG,GAAG,IAAI,GAAG,IAAI,OAAO,EAAE,GAAQ,OAAO,GAAG,wBAAwB,CAAM,EAAE,SAAS,CAAY,CAAC,EAAO,EAAW,EAAM,CAAC,IAAI,EAAE,EAAc,EAAO,CAAK,EAAE,GAAG,EAAM,GAAG,EAAW,GAAG,EAAc,EAAO,EAAM,CAAC,GAAG,EAAE,OAAO,EAAE,EAAG,UAAU,UAAU,QAAQ,CAAC,EAAO,EAAM,EAAO,CAAC,KAAK,OAAO,KAAK,MAAM,EAAO,OAAO,GAAO,CAAC,EAAE,KAAK,MAAM,MAAM,KAAK,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,IAAI,EAAI,EAAE,EAAE,EAAE,EAAE,GAAG,IAAS,KAAK,IAAI,EAAE,EAAO,OAAO,EAAE,GAAG,EAAM,GAAG,EAAE,GAAG,EAAE,EAAa,EAAO,EAAM,CAAC,GAAG,EAAI,KAAK,MAAM,IAAI,EAAE,SAAS,GAAK,GAAG,GAAK,GAAG,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,GAAQ,QAAK,EAAM,KAAC,IAAI,EAAY,EAAO,OAAO,EAAM,IAAI,EAAE,EAAY,IAAI,EAAE,EAAM,EAAE,EAAM,EAAE,EAAO,OAAO,GAAG,EAAE,GAAG,EAAE,EAAa,EAAO,EAAM,CAAC,GAAG,EAAI,KAAK,MAAM,IAAI,EAAE,SAAS,GAAK,GAAG,GAAK,GAAG,GAAG,EAAE,KAAK,MAAM,IAAI,IAAI,GAAQ,QAAK,EAAE,KAAK,OAAO,GAAG,SAAS,CAAS,CAAC,EAAI,EAAM,EAAI,EAAI,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,EAAI,KAAK,IAAI,EAAI,OAAO,CAAG,EAAE,QAAQ,EAAE,EAAM,EAAE,EAAI,IAAI,CAAC,IAAI,EAAE,EAAI,WAAW,CAAC,EAAE,GAAG,GAAG,GAAG,EAAI,GAAG,GAAG,EAAE,EAAE,GAAG,GAAQ,QAAG,GAAG,GAAG,EAAE,EAAE,GAAG,GAAQ,OAAE,EAAE,EAAO,GAAG,GAAG,EAAE,EAAI,mBAAmB,EAAE,GAAG,EAAE,OAAO,EAAE,EAAG,UAAU,WAAW,QAAQ,CAAC,EAAO,EAAK,EAAM,CAAC,KAAK,MAAM,CAAC,CAAC,EAAE,KAAK,OAAO,EAAE,QAAQ,EAAQ,EAAE,EAAQ,EAAE,GAAS,SAAS,GAAS,EAAK,IAAU,IAAU,EAAQ,EAAQ,EAAK,EAAE,IAAI,EAAM,EAAO,OAAO,EAAM,EAAI,EAAM,EAAQ,EAAI,KAAK,IAAI,EAAM,EAAM,CAAG,EAAE,EAAM,EAAK,EAAE,QAAQ,EAAE,EAAM,EAAE,EAAI,GAAG,EAAQ,GAAG,EAAK,EAAU,EAAO,EAAE,EAAE,EAAQ,CAAI,EAAE,KAAK,MAAM,CAAO,EAAE,KAAK,MAAM,GAAG,EAAK,SAAS,KAAK,MAAM,IAAI,EAAU,UAAK,OAAO,CAAI,EAAE,GAAG,IAAM,EAAE,CAAC,IAAI,EAAI,EAAE,EAAK,EAAU,EAAO,EAAE,EAAO,OAAO,CAAI,EAAE,IAAI,EAAE,EAAE,EAAE,EAAI,IAAI,GAAK,EAAK,GAAG,KAAK,MAAM,CAAG,EAAE,KAAK,MAAM,GAAG,EAAK,SAAS,KAAK,MAAM,IAAI,EAAU,UAAK,OAAO,CAAI,EAAE,KAAK,OAAO,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAK,CAAC,EAAK,MAAM,MAAM,KAAK,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,EAAK,MAAM,GAAG,KAAK,MAAM,GAAG,EAAK,OAAO,KAAK,OAAO,EAAK,SAAS,KAAK,SAAS,EAAK,IAAI,KAAK,KAAK,SAAS,CAAI,CAAC,EAAK,EAAI,CAAC,EAAK,MAAM,EAAI,MAAM,EAAK,OAAO,EAAI,OAAO,EAAK,SAAS,EAAI,SAAS,EAAK,IAAI,EAAI,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAK,CAAC,EAAK,EAAK,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,EAAG,IAAI,EAAE,OAAO,KAAK,KAAK,CAAC,EAAE,GAAG,EAAG,UAAU,QAAQ,QAAQ,CAAC,EAAK,CAAC,MAAM,KAAK,OAAO,EAAK,KAAK,MAAM,KAAK,UAAU,EAAE,OAAO,MAAM,EAAG,UAAU,OAAO,QAAQ,EAAE,CAAC,MAAM,KAAK,OAAO,GAAG,KAAK,MAAM,KAAK,OAAO,KAAK,EAAE,KAAK,SAAS,OAAO,KAAK,UAAU,GAAG,EAAG,UAAU,UAAU,QAAQ,EAAE,CAAC,GAAG,KAAK,SAAS,GAAG,KAAK,MAAM,KAAK,EAAE,KAAK,SAAS,EAAE,OAAO,MAAM,OAAO,OAAO,KAAK,OAAO,OAAO,MAAM,WAAW,GAAG,CAAC,EAAG,UAAU,OAAO,IAAI,4BAA4B,GAAG,EAAQ,MAAM,EAAE,CAAC,EAAG,UAAU,QAAQ,EAAa,OAAG,UAAU,QAAQ,EAAQ,SAAS,CAAO,EAAE,CAAC,OAAO,KAAK,IAAI,UAAU,SAAS,KAAK,SAAS,EAAE,EAAE,IAAI,IAAI,EAAM,CAAC,GAAG,IAAI,KAAK,MAAM,OAAO,QAAQ,SAAS,UAAU,WAAW,YAAY,aAAa,cAAc,eAAe,gBAAgB,iBAAiB,kBAAkB,mBAAmB,oBAAoB,qBAAqB,sBAAsB,uBAAuB,wBAAwB,yBAAyB,0BAA0B,2BAA2B,2BAA2B,EAAE,EAAW,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,EAAE,EAAW,CAAC,EAAE,EAAE,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,IAAI,SAAS,SAAS,SAAS,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,QAAQ,QAAQ,QAAQ,QAAQ,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,SAAS,QAAQ,EAAE,GAAG,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAK,EAAQ,CAAC,EAAK,GAAM,GAAG,EAAQ,EAAQ,GAAG,EAAE,IAAI,EAAI,GAAG,IAAO,IAAI,IAAO,MAAM,CAAC,EAAI,GAAG,IAAI,EAAI,EAAE,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,MAAM,GAAG,IAAO,GAAG,EAAI,GAAO,UAAU,SAAS,EAAE,EAAE,GAAG,EAAM,IAAI,GAAG,EAAI,SAAS,GAAK,EAAE,GAAK,GAAG,GAAK,GAAG,IAAI,GAAG,IAAQ,GAAG,IAAI,KAAK,OAAO,EAAE,EAAI,EAAM,EAAE,EAAK,QAAQ,EAAK,EAAS,OAAI,EAAK,EAAI,GAAG,IAAQ,EAAE,EAAI,EAAM,SAAS,EAAE,EAAE,EAAI,MAAM,EAAI,OAAO,IAAU,EAAE,EAAI,IAAI,EAAI,GAAG,KAAK,WAAW,EAAE,EAAI,IAAI,EAAI,OAAO,EAAI,GAAG,KAAQ,EAAK,IAAI,GAAM,GAAG,GAAM,GAAG,CAAC,IAAI,EAAU,EAAW,GAAM,EAAU,EAAW,GAAM,EAAI,GAAG,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,SAAS,EAAE,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,IAAI,EAAE,EAAE,MAAM,CAAS,EAAE,SAAS,CAAI,EAAE,GAAG,EAAE,EAAE,MAAM,CAAS,EAAE,CAAC,EAAE,OAAO,EAAE,EAAI,EAAM,EAAU,EAAE,QAAQ,EAAE,EAAS,OAAI,EAAE,EAAI,GAAG,KAAK,OAAO,EAAE,EAAI,IAAI,EAAI,MAAM,EAAI,OAAO,IAAU,EAAE,EAAI,IAAI,EAAI,GAAG,KAAK,WAAW,EAAE,EAAI,IAAI,EAAI,OAAO,EAAI,EAAO,GAAG,iCAAiC,GAAG,EAAG,UAAU,SAAS,QAAQ,EAAE,CAAC,IAAI,EAAI,KAAK,MAAM,GAAG,GAAG,KAAK,SAAS,EAAE,GAAK,KAAK,MAAM,GAAG,SAAc,QAAG,KAAK,SAAS,GAAG,KAAK,MAAM,KAAK,EAAE,GAAK,iBAAiB,KAAK,MAAM,GAAG,SAAc,QAAG,KAAK,OAAO,EAAE,EAAO,GAAG,4CAA4C,EAAE,OAAO,KAAK,WAAW,EAAE,CAAC,EAAI,GAAK,EAAG,UAAU,OAAO,QAAQ,EAAE,CAAC,OAAO,KAAK,SAAS,GAAG,CAAC,GAAG,EAAQ,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAO,EAAO,CAAC,OAAO,KAAK,YAAY,EAAQ,EAAO,CAAM,GAAG,EAAG,UAAU,QAAQ,QAAQ,CAAC,EAAO,EAAO,CAAC,OAAO,KAAK,YAAY,MAAM,EAAO,CAAM,GAAG,IAAI,EAAS,QAAQ,CAAC,EAAU,EAAK,CAAC,GAAG,EAAU,YAAY,OAAO,EAAU,YAAY,CAAI,EAAE,OAAO,IAAI,EAAU,CAAI,GAAG,GAAG,EAAG,UAAU,YAAY,QAAQ,CAAC,EAAU,EAAO,EAAO,CAAC,KAAK,OAAO,EAAE,IAAI,EAAW,KAAK,WAAW,EAAE,EAAU,GAAQ,KAAK,IAAI,EAAE,CAAU,EAAE,EAAO,GAAY,EAAU,uCAAuC,EAAE,EAAO,EAAU,EAAE,6BAA6B,EAAE,IAAI,EAAI,EAAS,EAAU,CAAS,EAAE,EAAQ,IAAS,KAAK,KAAK,KAAK,OAAO,KAAK,eAAe,GAAS,EAAI,CAAU,EAAE,GAAK,EAAG,UAAU,eAAe,QAAQ,CAAC,EAAI,EAAW,CAAC,IAAI,EAAS,EAAE,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAM,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAK,KAAK,MAAM,IAAI,EAAM,EAAM,GAAG,EAAI,KAAY,EAAK,IAAI,EAAS,EAAI,OAAO,EAAI,KAAY,GAAM,EAAE,IAAI,GAAG,EAAS,EAAI,OAAO,EAAI,KAAY,GAAM,GAAG,IAAI,GAAG,IAAQ,EAAE,CAAC,GAAG,EAAS,EAAI,OAAO,EAAI,KAAY,GAAM,GAAG,IAAI,EAAM,EAAE,EAAM,EAAO,OAAM,IAAO,GAAG,GAAO,EAAE,GAAG,EAAS,EAAI,OAAO,CAAC,EAAI,KAAY,EAAM,MAAM,EAAS,EAAI,OAAO,EAAI,KAAY,IAAI,EAAG,UAAU,eAAe,QAAQ,CAAC,EAAI,EAAW,CAAC,IAAI,EAAS,EAAI,OAAO,EAAE,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAM,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAK,KAAK,MAAM,IAAI,EAAM,EAAM,GAAG,EAAI,KAAY,EAAK,IAAI,GAAU,EAAE,EAAI,KAAY,GAAM,EAAE,IAAI,GAAG,GAAU,EAAE,EAAI,KAAY,GAAM,GAAG,IAAI,GAAG,IAAQ,EAAE,CAAC,GAAG,GAAU,EAAE,EAAI,KAAY,GAAM,GAAG,IAAI,EAAM,EAAE,EAAM,EAAO,OAAM,IAAO,GAAG,GAAO,EAAE,GAAG,GAAU,EAAE,CAAC,EAAI,KAAY,EAAM,MAAM,GAAU,EAAE,EAAI,KAAY,IAAI,KAAK,MAAM,EAAG,UAAU,WAAW,QAAQ,CAAC,EAAE,CAAC,MAAO,IAAG,KAAK,MAAM,CAAC,GAAQ,OAAG,UAAU,WAAW,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,KAAK,GAAG,GAAG,KAAK,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAG,UAAU,UAAU,QAAQ,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,MAAO,IAAG,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,GAAG,KAAK,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,OAAO,GAAG,EAAG,UAAU,UAAU,QAAQ,EAAE,CAAC,IAAI,EAAE,KAAK,MAAM,KAAK,OAAO,GAAG,EAAG,KAAK,WAAW,CAAC,EAAE,OAAO,KAAK,OAAO,GAAG,GAAG,GAAI,SAAS,CAAU,CAAC,EAAI,CAAC,IAAI,EAAE,MAAM,EAAI,UAAU,CAAC,EAAE,QAAQ,EAAI,EAAE,EAAI,EAAE,OAAO,IAAM,CAAC,IAAI,EAAI,EAAI,GAAG,EAAE,EAAK,EAAI,GAAG,EAAE,GAAK,EAAI,MAAM,KAAO,EAAK,EAAE,OAAO,EAAE,EAAG,UAAU,SAAS,QAAQ,EAAE,CAAC,GAAG,KAAK,OAAO,EAAE,MAAO,GAAE,IAAI,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,KAAK,OAAO,IAAI,CAAC,IAAI,EAAE,KAAK,UAAU,KAAK,MAAM,EAAE,EAAE,GAAG,GAAG,EAAE,IAAI,GAAG,MAAM,OAAO,GAAG,EAAG,UAAU,WAAW,QAAQ,EAAE,CAAC,OAAO,KAAK,KAAK,KAAK,UAAU,EAAE,CAAC,GAAG,EAAG,UAAU,OAAO,QAAQ,CAAC,EAAM,CAAC,GAAG,KAAK,WAAW,EAAE,OAAO,KAAK,IAAI,EAAE,MAAM,CAAK,EAAE,MAAM,CAAC,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,SAAS,QAAQ,CAAC,EAAM,CAAC,GAAG,KAAK,MAAM,EAAM,CAAC,EAAE,OAAO,KAAK,KAAK,CAAK,EAAE,MAAM,CAAC,EAAE,KAAK,EAAE,OAAO,KAAK,MAAM,GAAG,EAAG,UAAU,MAAM,QAAQ,EAAE,CAAC,OAAO,KAAK,WAAW,GAAG,EAAG,UAAU,IAAI,QAAQ,EAAE,CAAC,OAAO,KAAK,MAAM,EAAE,KAAK,GAAG,EAAG,UAAU,KAAK,QAAQ,EAAE,CAAC,GAAG,CAAC,KAAK,OAAO,EAAE,KAAK,UAAU,EAAE,OAAO,MAAM,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,MAAM,KAAK,OAAO,EAAI,OAAO,KAAK,MAAM,KAAK,UAAU,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAI,OAAO,IAAI,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,EAAI,MAAM,GAAG,OAAO,KAAK,OAAO,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,GAAQ,KAAK,SAAS,EAAI,YAAY,CAAC,EAAE,KAAK,KAAK,CAAG,GAAG,EAAG,UAAU,GAAG,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,IAAI,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,IAAI,IAAI,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,KAAK,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,EAAI,OAAO,EAAE,EAAS,OAAE,KAAK,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,KAAK,MAAM,GAAG,EAAI,MAAM,GAAG,OAAO,KAAK,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,GAAQ,KAAK,SAAS,EAAI,YAAY,CAAC,EAAE,KAAK,MAAM,CAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,KAAK,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,MAAM,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,OAAO,EAAI,OAAO,EAAE,KAAK,EAAE,EAAS,OAAE,EAAI,EAAE,KAAK,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,EAAE,MAAM,GAAG,GAAG,OAAO,EAAE,KAAK,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,OAAO,KAAK,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,OAAO,GAAQ,KAAK,SAAS,EAAI,YAAY,CAAC,EAAE,KAAK,MAAM,CAAG,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,KAAK,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,MAAM,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,MAAM,IAAI,GAAG,EAAG,UAAU,MAAM,QAAQ,CAAC,EAAM,CAAC,EAAO,OAAO,IAAQ,UAAU,GAAO,CAAC,EAAE,IAAI,EAAY,KAAK,KAAK,EAAM,EAAE,EAAE,EAAE,EAAS,EAAM,GAAG,GAAG,KAAK,QAAQ,CAAW,EAAE,EAAS,EAAE,IAAc,QAAQ,EAAE,EAAE,EAAE,EAAY,IAAI,KAAK,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,SAAS,GAAG,EAAS,EAAE,KAAK,MAAM,GAAG,CAAC,KAAK,MAAM,GAAG,UAAU,GAAG,EAAS,OAAO,KAAK,OAAO,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAM,CAAC,OAAO,KAAK,MAAM,EAAE,MAAM,CAAK,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,EAAI,CAAC,EAAO,OAAO,IAAM,UAAU,GAAK,CAAC,EAAE,IAAI,EAAI,EAAI,GAAG,EAAE,EAAK,EAAI,GAAG,GAAG,KAAK,QAAQ,EAAI,CAAC,EAAE,EAAI,KAAK,MAAM,GAAK,KAAK,MAAM,GAAK,GAAG,EAAU,UAAK,MAAM,GAAK,KAAK,MAAM,GAAK,EAAE,GAAG,GAAM,OAAO,KAAK,OAAO,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAE,GAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,OAAO,KAAK,SAAS,EAAE,EAAE,KAAK,KAAK,CAAG,EAAE,KAAK,UAAU,EAAE,KAAK,UAAU,EAAO,QAAG,KAAK,WAAW,GAAG,EAAI,WAAW,EAAE,OAAO,EAAI,SAAS,EAAE,EAAE,KAAK,KAAK,CAAG,EAAE,EAAI,SAAS,EAAE,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,GAAG,KAAK,OAAO,EAAI,OAAO,EAAE,KAAK,EAAE,EAAS,OAAE,EAAI,EAAE,KAAK,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,GAAG,EAAM,KAAK,MAAM,GAAG,EAAE,SAAS,EAAM,IAAI,GAAG,KAAK,IAAQ,GAAG,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAM,KAAK,MAAM,GAAG,EAAE,SAAS,EAAM,IAAI,GAAG,GAAG,KAAK,OAAO,EAAE,OAAO,IAAQ,EAAE,KAAK,MAAM,KAAK,QAAQ,EAAM,KAAK,SAAc,QAAG,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,OAAO,MAAM,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,IAAI,EAAI,GAAG,EAAI,WAAW,GAAG,KAAK,WAAW,EAAE,OAAO,EAAI,SAAS,EAAE,EAAI,KAAK,IAAI,CAAG,EAAE,EAAI,UAAU,EAAE,EAAS,QAAG,EAAI,WAAW,GAAG,KAAK,WAAW,EAAE,OAAO,KAAK,SAAS,EAAE,EAAI,EAAI,IAAI,IAAI,EAAE,KAAK,SAAS,EAAE,EAAI,GAAG,KAAK,OAAO,EAAI,OAAO,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,EAAE,OAAO,EAAI,MAAM,EAAE,KAAK,IAAI,GAAG,EAAG,UAAU,KAAK,QAAQ,CAAC,EAAI,CAAC,GAAG,EAAI,WAAW,EAAE,CAAC,EAAI,SAAS,EAAE,IAAI,EAAE,KAAK,KAAK,CAAG,EAAE,OAAO,EAAI,SAAS,EAAE,EAAE,UAAU,EAAO,QAAG,KAAK,WAAW,EAAE,OAAO,KAAK,SAAS,EAAE,KAAK,KAAK,CAAG,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,IAAI,EAAI,KAAK,IAAI,CAAG,EAAE,GAAG,IAAM,EAAE,OAAO,KAAK,SAAS,EAAE,KAAK,OAAO,EAAE,KAAK,MAAM,GAAG,EAAE,KAAK,IAAI,EAAE,EAAE,GAAG,EAAI,EAAE,EAAE,KAAK,EAAE,EAAS,OAAE,EAAI,EAAE,KAAK,IAAI,EAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,GAAG,EAAM,EAAM,GAAG,GAAG,KAAK,MAAM,GAAG,EAAE,SAAS,KAAK,IAAQ,GAAG,EAAE,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,GAAG,GAAG,EAAM,EAAM,GAAG,GAAG,KAAK,MAAM,GAAG,EAAE,SAAS,GAAG,IAAQ,GAAG,EAAE,EAAE,QAAQ,IAAI,KAAK,KAAK,EAAE,EAAE,OAAO,IAAI,KAAK,MAAM,GAAG,EAAE,MAAM,GAAG,GAAG,KAAK,OAAO,KAAK,IAAI,KAAK,OAAO,CAAC,EAAE,IAAI,KAAK,KAAK,SAAS,EAAE,OAAO,KAAK,OAAO,GAAG,EAAG,UAAU,IAAI,QAAQ,CAAC,EAAI,CAAC,OAAO,KAAK,MAAM,EAAE,KAAK,CAAG,GAAG,SAAS,CAAU,CAAC,EAAM,EAAI,EAAI,CAAC,EAAI,SAAS,EAAI,SAAS,EAAM,SAAS,IAAI,EAAI,EAAM,OAAO,EAAI,OAAO,EAAE,EAAI,OAAO,EAAI,EAAI,EAAI,EAAE,EAAE,IAAI,EAAE,EAAM,MAAM,GAAG,EAAE,EAAE,EAAI,MAAM,GAAG,EAAE,EAAE,EAAE,EAAE,EAAG,EAAE,SAAS,EAAM,EAAE,SAAS,EAAE,EAAI,MAAM,GAAG,EAAG,QAAQ,EAAE,EAAE,EAAE,EAAI,IAAI,CAAC,IAAI,EAAO,IAAQ,GAAG,EAAM,EAAM,SAAS,EAAK,KAAK,IAAI,EAAE,EAAI,OAAO,CAAC,EAAE,QAAQ,GAAE,KAAK,IAAI,EAAE,EAAE,EAAM,OAAO,CAAC,EAAE,IAAG,EAAK,KAAI,CAAC,IAAI,GAAE,EAAE,GAAE,EAAE,EAAE,EAAM,MAAM,IAAG,EAAE,EAAE,EAAI,MAAM,IAAG,EAAE,EAAE,EAAE,EAAE,EAAM,GAAQ,EAAE,SAAS,EAAE,EAAM,EAAE,SAAS,EAAI,MAAM,GAAG,EAAM,EAAE,EAAM,EAAO,EAAE,GAAG,IAAQ,EAAE,EAAI,MAAM,GAAG,EAAM,EAAO,OAAI,SAAS,OAAO,EAAI,OAAO,EAAE,IAAI,EAAY,QAAQ,CAAC,EAAM,EAAI,EAAI,CAAC,IAAI,EAAE,EAAM,MAAM,EAAE,EAAI,MAAM,EAAE,EAAI,MAAM,EAAE,EAAE,EAAG,EAAI,EAAG,EAAG,EAAE,GAAG,EAAE,EAAI,EAAG,KAAK,EAAI,IAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,EAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,EAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,EAAI,GAAG,KAAK,EAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,EAAI,GAAG,KAAK,EAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,EAAI,KAAK,GAAG,EAAG,EAAE,GAAG,EAAE,GAAI,EAAG,KAAK,GAAI,IAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,GAAG,EAAE,GAAG,EAAE,GAAI,GAAG,KAAK,GAAI,KAAK,GAAG,EAAI,SAAS,EAAM,SAAS,EAAI,SAAS,EAAI,OAAO,GAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IAAI,EAAE,EAAG,KAAK,EAAI,OAAO,IAAI,EAAE,GAAG,GAAI,IAAM,IAAI,IAAI,KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,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AAK,MACP,EACA,OAAQ,CACN,IAAK,MACP,EACA,aAAc,CACZ,IAAK,OACP,EACA,KAAM,CACJ,IAAK,MACP,EACA,OAAQ,CACN,IAAK,MACP,EACA,MAAO,CACL,IAAK,MACP,EACA,aAAc,CACZ,IAAK,OACP,EACA,YAAa,CACX,IAAK,OACP,EACA,QAAS,CACP,IAAK,OACP,EACA,cAAe,CACb,IAAK,QACP,EACA,eAAgB,CACd,IAAK,QACP,CACF,EACE,GAAK,CACL,OAAQ,CACN,QAAS,MACX,EACA,QAAS,CACP,OAAQ,MACR,MAAO,MACP,QAAS,MACT,MAAO,MACP,KAAM,KACR,EACA,QAAS,CACP,MAAO,OACP,QAAS,OACT,MAAO,MACP,KAAM,MACR,EACA,KAAM,CACJ,MAAO,MACT,EACA,MAAO,CACL,QAAS,MACX,EACA,YAAa,CACX,QAAS,OACX,EACA,aAAc,CACZ,QAAS,OACX,EACA,OAAQ,CACN,MAAO,MACT,EACA,aAAc,CACZ,MAAO,OACT,EACA,MAAO,CACL,MAAO,OACP,QAAS,OACT,MAAO,OACP,KAAM,MACR,EACA,gBAAiB,CACf,MAAO,QACP,QAAS,QACT,MAAO,QACP,KAAM,OACR,EACA,KAAM,CACJ,QAAS,OACX,EACA,aAAc,CACZ,QAAS,QACX,EACA,WAAY,CACV,MAAO,MACT,EACA,QAAS,CACP,SAAU,OACZ,EACA,cAAe,CACb,SAAU,QACZ,EACA,eAAgB,CACd,SAAU,QACZ,EACA,WAAY,CACV,SAAU,OACZ,CACF,EACE,GAAK,CACL,IAAK,CACH,IAAK,MACL,SAAU,KACZ,EACA,cAAe,CACb,KAAM,cACN,iBAAkB,aACpB,CACF,EACA,GAAK,CAAC,KAAK,EACT,GAAI,MACN,GAAI,cACJ,GAAI,MACJ,GAAI,cACJ,GAAK,EAAgB,EAAgB,CAAC,EAAG,GAAG,EAAC,EAAG,GAAG,EAAC,EAClD,GAAK,CACP,IAAK,CACH,SAAU,KACZ,EACA,cAAe,CACb,iBAAkB,MACpB,CACF,EACI,GAAK,CACL,IAAK,CACH,IAAK,QACP,EACA,cAAe,CACb,KAAM,gBACR,CA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aAAc,CACZ,IAAK,OACP,EACA,KAAM,CACJ,IAAK,MACP,EACA,OAAQ,CACN,IAAK,MACP,EACA,MAAO,CACL,IAAK,MACP,EACA,aAAc,CACZ,IAAK,OACP,EACA,YAAa,CACX,IAAK,OACP,EACA,QAAS,CACP,IAAK,OACP,EACA,cAAe,CACb,IAAK,QACP,EACA,eAAgB,CACd,IAAK,QACP,CACF,EACE,GAAK,CACL,OAAQ,CACN,QAAS,MACX,EACA,QAAS,CACP,OAAQ,MACR,MAAO,MACP,QAAS,MACT,MAAO,MACP,KAAM,KACR,EACA,QAAS,CACP,MAAO,OACP,QAAS,OACT,MAAO,MACP,KAAM,MACR,EACA,KAAM,CACJ,MAAO,MACT,EACA,MAAO,CACL,QAAS,MACX,EACA,YAAa,CACX,QAAS,OACX,EACA,aAAc,CACZ,QAAS,OACX,EACA,OAAQ,CACN,MAAO,MACT,EACA,aAAc,CACZ,MAAO,OACT,EACA,MAAO,CACL,MAAO,OACP,QAAS,OACT,MAAO,OACP,KAAM,MACR,EACA,gBAAiB,CACf,MAAO,QACP,QAAS,QACT,MAAO,QACP,KAAM,OACR,EACA,KAAM,CACJ,QAAS,OACX,EACA,aAAc,CACZ,QAAS,QACX,EACA,WAAY,CACV,MAAO,MACT,EACA,QAAS,CACP,SAAU,OACZ,EACA,cAAe,CACb,SAAU,QACZ,EACA,eAAgB,CACd,SAAU,QACZ,EACA,WAAY,CACV,SAAU,OACZ,CACF,EACE,GAAK,CACL,IAAK,CACH,IAAK,MACL,SAAU,KACZ,EACA,cAAe,CACb,KAAM,cACN,iBAAkB,aACpB,CACF,EACA,GAAK,CAAC,KAAK,EACT,GAAI,MACN,GAAI,cACJ,GAAI,MACJ,GAAI,cACJ,GAAK,EAAgB,EAAgB,CAAC,EAAG,GAAG,EAAC,EAAG,GAAG,EAAC,EAClD,GAAK,CACP,IAAK,CACH,SAAU,KACZ,EACA,cAAe,CACb,iBAAkB,MACpB,CACF,EACI,GAAK,CACL,IAAK,CACH,IAAK,QACP,EACA,cAAe,CACb,KAAM,gBACR,CACF,EACE,GAAK,CACL,IAAK,CACH,IAAK,KACP,E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AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;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AAmB,CAClB,KAAM,KACN,KAAM,0BACP,EACA,aAAa,CACZ,KAAM,KACN,KAAM,0BACP,EACA,YAAY,CACX,KAAM,KACN,KAAM,0BACP,EACA,QAAW,CACV,KAAM,KACN,KAAM,0BACP,EACA,QAAW,CACV,KAAM,KACN,KAAM,0BACP,EACA,UAAU,CACT,KAAM,KACN,KAAM,0BACP,EACA,WAAW,CACV,KAAM,KACN,KAAM,0BACP,EACA,OAAU,CACT,KAAM,KACN,KAAM,0BACP,EACA,WAAc,CACb,KAAM,KACN,KAAM,0BACP,EACA,YAAY,CACX,KAAM,KACN,KAAM,0BACP,EACA,sBAAsB,CACrB,KAAM,QACN,KAAM,0BACP,EACA,UAAU,CACT,KAAM,KACN,KAAM,0BACP,EACA,gBAAgB,CACf,KAAM,KACN,KAAM,0BACP,EACA,MAAM,CACL,KAAM,KACN,KAAM,0BACP,EACA,MAAM,CACL,KAAM,KACN,KAAM,0BACP,EACA,OAAO,CACN,KAAM,UACN,KAAM,0BACP,EACA,OAAO,CACN,KAAM,UACN,KAAM,0BACP,EACA,YAAa,CACZ,KAAM,KACN,KAAM,cACP,CACD,EAwCA,GAAW,YAAc,CACxB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACD,EAmDA,GAAW,SAAW,CACrB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GAGA,EACD,EAeA,IAAe,MClUf,GAAI,OAAO,SAAW,SACpB,OAAO,WAAa,GACpB,OAAO,WAAwB", + "debugId": "8D52558F22FEF57464756E2164756E21", + "names": [] +} \ No newline at end of file diff --git a/dist/engine/debug/debug.js b/dist/engine/debug/debug.js index 3dbd282..507192b 100644 --- a/dist/engine/debug/debug.js +++ b/dist/engine/debug/debug.js @@ -1,37 +1,125 @@ -parcelRequire=function(e,r,n,t){var i="function"==typeof parcelRequire&&parcelRequire,o="function"==typeof require&&require;function u(n,t){if(!r[n]){if(!e[n]){var f="function"==typeof parcelRequire&&parcelRequire;if(!t&&f)return f(n,!0);if(i)return i(n,!0);if(o&&"string"==typeof n)return o(n);var c=new Error("Cannot find module '"+n+"'");throw c.code="MODULE_NOT_FOUND",c}p.resolve=function(r){return e[n][1][r]||r},p.cache={};var l=r[n]=new u.Module(n);e[n][0].call(l.exports,p,l,l.exports,this)}return r[n].exports;function p(e){return u(p.resolve(e))}}u.isParcelRequire=!0,u.Module=function(e){this.id=e,this.bundle=u,this.exports={}},u.modules=e,u.cache=r,u.parent=i,u.register=function(r,n){e[r]=[function(e,r){r.exports=n},{}]};for(var f=0;fe.length)return;if(!(_ instanceof l)){if(b&&S!=t.length-1){if(u.lastIndex=y,!(N=u.exec(e)))break;for(var A=N.index+(m?N[1].length:0),T=N.index+N[0].length,I=S,R=y,v=t.length;v>I&&(T>R||!t[I].type&&!t[I-1].greedy);++I)A>=(R+=t[I].length)&&(++S,y=R);if(t[S]instanceof l)continue;w=I-S,_=e.slice(y,R),N.index-=y}else{u.lastIndex=0;var N=u.exec(_),w=1}if(N){m&&(f=N[1]?N[1].length:0);T=(A=N.index+f)+(N=N[0].slice(f)).length;var C=_.slice(0,A),k=_.slice(T),L=[S,w];C&&(++S,y+=C.length,L.push(C));var O=new l(d,g?a.tokenize(N,g):N,E,N,b);if(L.push(O),k&&L.push(k),Array.prototype.splice.apply(t,L),1!=w&&a.matchGrammar(e,t,n,S,y,!0,d),o)break}else if(o)break}}}}},tokenize:function(e,t){var n=[e],i=t.rest;if(i){for(var r in i)t[r]=i[r];delete t.rest}return a.matchGrammar(e,n,t,0,0,!1),n},hooks:{all:{},add:function(e,t){var n=a.hooks.all;n[e]=n[e]||[],n[e].push(t)},run:function(e,t){var n=a.hooks.all[e];if(n&&n.length)for(var i,r=0;i=n[r++];)i(t)}}},i=a.Token=function(e,t,n,a,i){this.type=e,this.content=t,this.alias=n,this.length=0|(a||"").length,this.greedy=!!i};if(i.stringify=function(e,t,n){if("string"==typeof e)return e;if("Array"===a.util.type(e))return e.map(function(n){return i.stringify(n,t,e)}).join("");var r={type:e.type,content:i.stringify(e.content,t,n),tag:"span",classes:["token",e.type],attributes:{},language:t,parent:n};if(e.alias){var o="Array"===a.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(r.classes,o)}a.hooks.run("wrap",r);var s=Object.keys(r.attributes).map(function(e){return e+'="'+(r.attributes[e]||"").replace(/"/g,""")+'"'}).join(" ");return"<"+r.tag+' class="'+r.classes.join(" ")+'"'+(s?" "+s:"")+">"+r.content+""},!t.document)return t.addEventListener?(a.disableWorkerMessageHandler||t.addEventListener("message",function(e){var n=JSON.parse(e.data),i=n.language,r=n.code,o=n.immediateClose;t.postMessage(a.highlight(r,a.languages[i],i)),o&&t.close()},!1),t.Prism):t.Prism;var r=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return r&&(a.filename=r.src,a.manual||r.hasAttribute("data-manual")||("loading"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(a.highlightAll):window.setTimeout(a.highlightAll,16):document.addEventListener("DOMContentLoaded",a.highlightAll))),t.Prism}();"undefined"!=typeof module&&module.exports&&(module.exports=n),void 0!==e&&(e.Prism=n),n.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},n.languages.markup.tag.inside["attr-value"].inside.entity=n.languages.markup.entity,n.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))}),n.languages.xml=n.languages.markup,n.languages.html=n.languages.markup,n.languages.mathml=n.languages.markup,n.languages.svg=n.languages.markup,n.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},n.languages.css.atrule.inside.rest=n.languages.css,n.languages.markup&&(n.languages.insertBefore("markup","tag",{style:{pattern:/()[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:n.languages.css,alias:"language-css",greedy:!0}}),n.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:n.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:n.languages.css}},alias:"language-css"}},n.languages.markup.tag)),n.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/[a-z0-9_]+(?=\()/i,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/},n.languages.javascript=n.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,function:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),n.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^\/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"},constant:/\b[A-Z][A-Z\d_]*\b/}),n.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\${[^}]+}/,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}}}),n.languages.javascript["template-string"].inside.interpolation.inside.rest=n.languages.javascript,n.languages.markup&&n.languages.insertBefore("markup","tag",{script:{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:n.languages.javascript,alias:"language-javascript",greedy:!0}}),n.languages.js=n.languages.javascript,n.languages.abap={comment:/^\*.*/m,string:/(`|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,"string-template":{pattern:/([|}])(?:\\.|[^\\|{\r\n])*(?=[|{])/,lookbehind:!0,alias:"string"},"eol-comment":{pattern:/(^|\s)".*/m,lookbehind:!0,alias:"comment"},keyword:{pattern:/(\s|\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\/MM\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\/DD\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\/MM\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\/DD\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|SELECTOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\b/i,lookbehind:!0},number:/\b\d+\b/,operator:{pattern:/(\s)(?:\*\*?|<[=>]?|>=?|\?=|[-+\/=])(?=\s)/,lookbehind:!0},"string-operator":{pattern:/(\s)&&?(?=\s)/,lookbehind:!0,alias:"keyword"},"token-operator":[{pattern:/(\w)(?:->?|=>|[~|{}])(?=\w)/,lookbehind:!0,alias:"punctuation"},{pattern:/[|{}]/,alias:"punctuation"}],punctuation:/[,.:()]/},n.languages.actionscript=n.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),n.languages.actionscript["class-name"].alias="function",n.languages.markup&&n.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:{rest:n.languages.markup}}}),n.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/i,number:[{pattern:/\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],"attr-name":/\b'\w+/i,keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,boolean:/\b(?:true|false)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,char:/'.'/,variable:/\b[a-z](?:[_a-z\d])*\b/i},n.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/^(\s*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|AddAlt|AddAltByEncoding|AddAltByType|AddCharset|AddDefaultCharset|AddDescription|AddEncoding|AddHandler|AddIcon|AddIconByEncoding|AddIconByType|AddInputFilter|AddLanguage|AddModuleInfo|AddOutputFilter|AddOutputFilterByType|AddType|Alias|AliasMatch|Allow|AllowCONNECT|AllowEncodedSlashes|AllowMethods|AllowOverride|AllowOverrideList|Anonymous|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail|AsyncRequestWorkerFactor|AuthBasicAuthoritative|AuthBasicFake|AuthBasicProvider|AuthBasicUseDigestAlgorithm|AuthDBDUserPWQuery|AuthDBDUserRealmQuery|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile|AuthDigestAlgorithm|AuthDigestDomain|AuthDigestNonceLifetime|AuthDigestProvider|AuthDigestQop|AuthDigestShmemSize|AuthFormAuthoritative|AuthFormBody|AuthFormDisableNoStore|AuthFormFakeBasicAuth|AuthFormLocation|AuthFormLoginRequiredLocation|AuthFormLoginSuccessLocation|AuthFormLogoutLocation|AuthFormMethod|AuthFormMimetype|AuthFormPassword|AuthFormProvider|AuthFormSitePassphrase|AuthFormSize|AuthFormUsername|AuthGroupFile|AuthLDAPAuthorizePrefix|AuthLDAPBindAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareAsUser|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPInitialBindAsUser|AuthLDAPInitialBindPattern|AuthLDAPMaxSubGroupDepth|AuthLDAPRemoteUserAttribute|AuthLDAPRemoteUserIsDN|AuthLDAPSearchAsUser|AuthLDAPSubGroupAttribute|AuthLDAPSubGroupClass|AuthLDAPUrl|AuthMerging|AuthName|AuthnCacheContext|AuthnCacheEnable|AuthnCacheProvideFor|AuthnCacheSOCache|AuthnCacheTimeout|AuthnzFcgiCheckAuthnProvider|AuthnzFcgiDefineProvider|AuthType|AuthUserFile|AuthzDBDLoginToReferer|AuthzDBDQuery|AuthzDBDRedirectQuery|AuthzDBMType|AuthzSendForbiddenOnFailure|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|CacheDefaultExpire|CacheDetailHeader|CacheDirLength|CacheDirLevels|CacheDisable|CacheEnable|CacheFile|CacheHeader|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheIgnoreQueryString|CacheIgnoreURLSessionIdentifiers|CacheKeyBaseURL|CacheLastModifiedFactor|CacheLock|CacheLockMaxAge|CacheLockPath|CacheMaxExpire|CacheMaxFileSize|CacheMinExpire|CacheMinFileSize|CacheNegotiatedDocs|CacheQuickHandler|CacheReadSize|CacheReadTime|CacheRoot|CacheSocache|CacheSocacheMaxSize|CacheSocacheMaxTime|CacheSocacheMinTime|CacheSocacheReadSize|CacheSocacheReadTime|CacheStaleOnError|CacheStoreExpired|CacheStoreNoStore|CacheStorePrivate|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateInflateLimitRequestBody|DeflateInflateRatioBurst|DeflateInflateRatioLimit|DeflateMemLevel|DeflateWindowSize|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|HeartbeatAddress|HeartbeatListen|HeartbeatMaxServers|HeartbeatStorage|HeartbeatStorage|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|IndexHeadInsert|IndexIgnore|IndexIgnoreReset|IndexOptions|IndexOrderDefault|IndexStyleSheet|InputSed|ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionPoolTTL|LDAPConnectionTimeout|LDAPLibraryDebug|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPReferralHopLimit|LDAPReferrals|LDAPRetries|LDAPRetryDelay|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTimeout|LDAPTrustedClientCert|LDAPTrustedGlobalCert|LDAPTrustedMode|LDAPVerifyServerCert|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|LuaHookAccessChecker|LuaHookAuthChecker|LuaHookCheckUserID|LuaHookFixups|LuaHookInsertFilter|LuaHookLog|LuaHookMapToStorage|LuaHookTranslateName|LuaHookTypeChecker|LuaInherit|LuaInputFilter|LuaMapHandler|LuaOutputFilter|LuaPackageCPath|LuaPackagePath|LuaQuickHandler|LuaRoot|LuaScope|MaxConnectionsPerChild|MaxKeepAliveRequests|MaxMemFree|MaxRangeOverlaps|MaxRangeReversals|MaxRanges|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|ProxyAddHeaders|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyExpressDBMFile|ProxyExpressDBMType|ProxyExpressEnable|ProxyFtpDirCharset|ProxyFtpEscapeWildcards|ProxyFtpListOnWildcard|ProxyHTMLBufSize|ProxyHTMLCharsetOut|ProxyHTMLDocType|ProxyHTMLEnable|ProxyHTMLEvents|ProxyHTMLExtended|ProxyHTMLFixups|ProxyHTMLInterp|ProxyHTMLLinks|ProxyHTMLMeta|ProxyHTMLStripComments|ProxyHTMLURLMap|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassInherit|ProxyPassInterpolateEnv|ProxyPassMatch|ProxyPassReverse|ProxyPassReverseCookieDomain|ProxyPassReverseCookiePath|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxySCGIInternalRedirect|ProxySCGISendfile|ProxySet|ProxySourceAddress|ProxyStatus|ProxyTimeout|ProxyVia|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIPHeader|RemoteIPInternalProxy|RemoteIPInternalProxyList|RemoteIPProxiesHeader|RemoteIPTrustedProxy|RemoteIPTrustedProxyList|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|RewriteBase|RewriteCond|RewriteEngine|RewriteMap|RewriteOptions|RewriteRule|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script|ScriptAlias|ScriptAliasMatch|ScriptInterpreterSource|ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock|SecureListen|SeeRequestTail|SendBufferSize|ServerAdmin|ServerAlias|ServerLimit|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|Session|SessionCookieName|SessionCookieName2|SessionCookieRemove|SessionCryptoCipher|SessionCryptoDriver|SessionCryptoPassphrase|SessionCryptoPassphraseFile|SessionDBDCookieName|SessionDBDCookieName2|SessionDBDCookieRemove|SessionDBDDeleteLabel|SessionDBDInsertLabel|SessionDBDPerUser|SessionDBDSelectLabel|SessionDBDUpdateLabel|SessionEnv|SessionExclude|SessionHeader|SessionInclude|SessionMaxAge|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSLCACertificateFile|SSLCACertificatePath|SSLCADNRequestFile|SSLCADNRequestPath|SSLCARevocationCheck|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLCompression|SSLCryptoDevice|SSLEngine|SSLFIPS|SSLHonorCipherOrder|SSLInsecureRenegotiation|SSLOCSPDefaultResponder|SSLOCSPEnable|SSLOCSPOverrideResponder|SSLOCSPResponderTimeout|SSLOCSPResponseMaxAge|SSLOCSPResponseTimeSkew|SSLOCSPUseRequestNonce|SSLOpenSSLConfCmd|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationCheck|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCheckPeerCN|SSLProxyCheckPeerExpire|SSLProxyCheckPeerName|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateChainFile|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRenegBufferSize|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLSessionTicketKeyFile|SSLSRPUnknownUserSeed|SSLSRPVerifierFile|SSLStaplingCache|SSLStaplingErrorCacheTimeout|SSLStaplingFakeTryLater|SSLStaplingForceURL|SSLStaplingResponderTimeout|SSLStaplingResponseMaxAge|SSLStaplingResponseTimeSkew|SSLStaplingReturnResponderErrors|SSLStaplingStandardCacheTimeout|SSLStrictSNIVHostCheck|SSLUserName|SSLUseStapling|SSLVerifyClient|SSLVerifyDepth|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(?:AuthnProviderAlias|AuthzProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|RequireAll|RequireAny|RequireNone|VirtualHost)\b *.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(?:\w,?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}},variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/,regex:/\^?.*\$|\^.*\$?/},n.languages.apl={comment:/(?:ā|#[! ]).*$/m,string:{pattern:/'(?:[^'\r\n]|'')*'/,greedy:!0},number:/ĀÆ?(?:\d*\.?\d+(?:e[+ĀÆ]?\d+)?|ĀÆ|āˆž)(?:jĀÆ?(?:\d*\.?\d+(?:e[+ĀÆ]?\d+)?|ĀÆ|āˆž))?/i,statement:/:[A-Z][a-z][A-Za-z]*\b/,"system-function":{pattern:/āŽ•[A-Z]+/i,alias:"function"},constant:/[ā¬āŒ¾#āŽ•āž]/,function:/[-+Ć—Ć·āŒˆāŒŠāˆ£|ā³āø?*āŸā—‹!⌹<≤=>ā‰„ā‰ ā‰”ā‰¢āˆŠā·āˆŖāˆ©~āˆØāˆ§ā±ā²ā“,āŖāŒ½āŠ–ā‰ā†‘ā†“āŠ‚āŠƒāŠ†āŠ‡āŒ·ā‹ā’āŠ¤āŠ„ā•āŽāŠ£āŠ¢āā‚ā‰ˆāÆā†—Ā¤ā†’]/,"monadic-operator":{pattern:/[\\\/āŒæā€ĀØāØāŒ¶&∄]/,alias:"operator"},"dyadic-operator":{pattern:/[.ā£ā ā¤āˆ˜āŒø@⌺]/,alias:"operator"},assignment:{pattern:/←/,alias:"keyword"},punctuation:/[\[;\]()◇⋄]/,dfn:{pattern:/[{}āŗāµā¶ā¹āˆ‡ā«:]/,alias:"builtin"}},n.languages.applescript={comment:[/\(\*(?:\(\*[\s\S]*?\*\)|[\s\S])*?\*\)/,/--.+/,/#.+/],string:/"(?:\\.|[^"\\\r\n])*"/,number:/(?:\b\d+\.?\d*|\B\.\d+)(?:e-?\d+)?\b/i,operator:[/[&=≠≤≄*+\-\/Ć·^]|[<>]=?/,/\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\b/],keyword:/\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,class:{pattern:/\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\b/,alias:"builtin"},punctuation:/[{}():,Ā¬Ā«Ā»ć€Šć€‹]/},n.languages.c=n.languages.extend("clike",{keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,operator:/-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/]/,number:/(?:\b0x[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ful]*/i}),n.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+(?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(?:<.+?>|("|')(?:\\?.)+?\2)/,lookbehind:!0},directive:{pattern:/(#\s*)\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/,lookbehind:!0,alias:"keyword"}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete n.languages.c["class-name"],delete n.languages.c.boolean,n.languages.arff={comment:/%.*/,string:{pattern:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/@(?:attribute|data|end|relation)\b/i,number:/\b\d+(?:\.\d+)?\b/,punctuation:/[{},]/},function(e){var t={pattern:/(^[ \t]*)\[(?!\[)(?:(["'$`])(?:(?!\2)[^\\]|\\.)*\2|\[(?:[^\]\\]|\\.)*\]|[^\]\\]|\\.)*\]/m,lookbehind:!0,inside:{quoted:{pattern:/([$`])(?:(?!\1)[^\\]|\\.)*\1/,inside:{punctuation:/^[$`]|[$`]$/}},interpreted:{pattern:/'(?:[^'\\]|\\.)*'/,inside:{punctuation:/^'|'$/}},string:/"(?:[^"\\]|\\.)*"/,variable:/\w+(?==)/,punctuation:/^\[|\]$|,/,operator:/=/,"attr-value":/(?!^\s+$).+/}};e.languages.asciidoc={"comment-block":{pattern:/^(\/{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1/m,alias:"comment"},table:{pattern:/^\|={3,}(?:(?:\r?\n|\r).*)*?(?:\r?\n|\r)\|={3,}$/m,inside:{specifiers:{pattern:/(?!\|)(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*])?(?:[<^>](?:\.[<^>])?|\.[<^>])?[a-z]*)(?=\|)/,alias:"attr-value"},punctuation:{pattern:/(^|[^\\])[|!]=*/,lookbehind:!0}}},"passthrough-block":{pattern:/^(\+{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^\++|\++$/}},"literal-block":{pattern:/^(-{4,}|\.{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\.+)|(?:-+|\.+)$/}},"other-block":{pattern:/^(--|\*{4,}|_{4,}|={4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\*+|_+|=+)|(?:-+|\*+|_+|=+)$/}},"list-punctuation":{pattern:/(^[ \t]*)(?:-|\*{1,5}|\.{1,5}|(?:[a-z]|\d+)\.|[xvi]+\))(?= )/im,lookbehind:!0,alias:"punctuation"},"list-label":{pattern:/(^[ \t]*)[a-z\d].+(?::{2,4}|;;)(?=\s)/im,lookbehind:!0,alias:"symbol"},"indented-block":{pattern:/((\r?\n|\r)\2)([ \t]+)\S.*(?:(?:\r?\n|\r)\3.+)*(?=\2{2}|$)/,lookbehind:!0},comment:/^\/\/.*/m,title:{pattern:/^.+(?:\r?\n|\r)(?:={3,}|-{3,}|~{3,}|\^{3,}|\+{3,})$|^={1,5} +.+|^\.(?![\s.]).*/m,alias:"important",inside:{punctuation:/^(?:\.|=+)|(?:=+|-+|~+|\^+|\++)$/}},"attribute-entry":{pattern:/^:[^:\r\n]+:(?: .*?(?: \+(?:\r?\n|\r).*?)*)?$/m,alias:"tag"},attributes:t,hr:{pattern:/^'{3,}$/m,alias:"punctuation"},"page-break":{pattern:/^<{3,}$/m,alias:"punctuation"},admonition:{pattern:/^(?:TIP|NOTE|IMPORTANT|WARNING|CAUTION):/m,alias:"keyword"},callout:[{pattern:/(^[ \t]*)/m,lookbehind:!0,alias:"symbol"},{pattern:/<\d+>/,alias:"symbol"}],macro:{pattern:/\b[a-z\d][a-z\d-]*::?(?:(?:\S+)??\[(?:[^\]\\"]|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:{function:/^[a-z\d-]+(?=:)/,punctuation:/^::?/,attributes:{pattern:/(?:\[(?:[^\]\\"]|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:t.inside}}},inline:{pattern:/(^|[^\\])(?:(?:\B\[(?:[^\]\\"]|(["'])(?:(?!\2)[^\\]|\\.)*\2|\\.)*\])?(?:\b_(?!\s)(?: _|[^_\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: _|[^_\\\r\n]|\\.)+)*_\b|\B``(?!\s).+?(?:(?:\r?\n|\r).+?)*''\B|\B`(?!\s)(?: ['`]|.)+?(?:(?:\r?\n|\r)(?: ['`]|.)+?)*['`]\B|\B(['*+#])(?!\s)(?: \3|(?!\3)[^\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: \3|(?!\3)[^\\\r\n]|\\.)+)*\3\B)|(?:\[(?:[^\]\\"]|(["'])(?:(?!\4)[^\\]|\\.)*\4|\\.)*\])?(?:(__|\*\*|\+\+\+?|##|\$\$|[~^]).+?(?:(?:\r?\n|\r).+?)*\5|\{[^}\r\n]+\}|\[\[\[?.+?(?:(?:\r?\n|\r).+?)*\]?\]\]|<<.+?(?:(?:\r?\n|\r).+?)*>>|\(\(\(?.+?(?:(?:\r?\n|\r).+?)*\)?\)\)))/m,lookbehind:!0,inside:{attributes:t,url:{pattern:/^(?:\[\[\[?.+?\]?\]\]|<<.+?>>)$/,inside:{punctuation:/^(?:\[\[\[?|<<)|(?:\]\]\]?|>>)$/}},"attribute-ref":{pattern:/^\{.+\}$/,inside:{variable:{pattern:/(^\{)[a-z\d,+_-]+/,lookbehind:!0},operator:/^[=?!#%@$]|!(?=[:}])/,punctuation:/^\{|\}$|::?/}},italic:{pattern:/^(['_])[\s\S]+\1$/,inside:{punctuation:/^(?:''?|__?)|(?:''?|__?)$/}},bold:{pattern:/^\*[\s\S]+\*$/,inside:{punctuation:/^\*\*?|\*\*?$/}},punctuation:/^(?:``?|\+{1,3}|##?|\$\$|[~^]|\(\(\(?)|(?:''?|\+{1,3}|##?|\$\$|[~^`]|\)?\)\))$/}},replacement:{pattern:/\((?:C|TM|R)\)/,alias:"builtin"},entity:/&#?[\da-z]{1,8};/i,"line-continuation":{pattern:/(^| )\+$/m,lookbehind:!0,alias:"punctuation"}},t.inside.interpreted.inside.rest={macro:e.languages.asciidoc.macro,inline:e.languages.asciidoc.inline,replacement:e.languages.asciidoc.replacement,entity:e.languages.asciidoc.entity},e.languages.asciidoc["passthrough-block"].inside.rest={macro:e.languages.asciidoc.macro},e.languages.asciidoc["literal-block"].inside.rest={callout:e.languages.asciidoc.callout},e.languages.asciidoc.table.inside.rest={"comment-block":e.languages.asciidoc["comment-block"],"passthrough-block":e.languages.asciidoc["passthrough-block"],"literal-block":e.languages.asciidoc["literal-block"],"other-block":e.languages.asciidoc["other-block"],"list-punctuation":e.languages.asciidoc["list-punctuation"],"indented-block":e.languages.asciidoc["indented-block"],comment:e.languages.asciidoc.comment,title:e.languages.asciidoc.title,"attribute-entry":e.languages.asciidoc["attribute-entry"],attributes:e.languages.asciidoc.attributes,hr:e.languages.asciidoc.hr,"page-break":e.languages.asciidoc["page-break"],admonition:e.languages.asciidoc.admonition,"list-label":e.languages.asciidoc["list-label"],callout:e.languages.asciidoc.callout,macro:e.languages.asciidoc.macro,inline:e.languages.asciidoc.inline,replacement:e.languages.asciidoc.replacement,entity:e.languages.asciidoc.entity,"line-continuation":e.languages.asciidoc["line-continuation"]},e.languages.asciidoc["other-block"].inside.rest={table:e.languages.asciidoc.table,"list-punctuation":e.languages.asciidoc["list-punctuation"],"indented-block":e.languages.asciidoc["indented-block"],comment:e.languages.asciidoc.comment,"attribute-entry":e.languages.asciidoc["attribute-entry"],attributes:e.languages.asciidoc.attributes,hr:e.languages.asciidoc.hr,"page-break":e.languages.asciidoc["page-break"],admonition:e.languages.asciidoc.admonition,"list-label":e.languages.asciidoc["list-label"],macro:e.languages.asciidoc.macro,inline:e.languages.asciidoc.inline,replacement:e.languages.asciidoc.replacement,entity:e.languages.asciidoc.entity,"line-continuation":e.languages.asciidoc["line-continuation"]},e.languages.asciidoc.title.inside.rest={macro:e.languages.asciidoc.macro,inline:e.languages.asciidoc.inline,replacement:e.languages.asciidoc.replacement,entity:e.languages.asciidoc.entity},e.hooks.add("wrap",function(e){"entity"===e.type&&(e.attributes.title=e.content.replace(/&/,"&"))})}(n),n.languages.asm6502={comment:/;.*/,directive:{pattern:/\.\w+(?= )/,alias:"keyword"},string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,opcode:{pattern:/\b(?:adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya|ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA)\b/,alias:"property"},hexnumber:{pattern:/#?\$[\da-f]{2,4}/i,alias:"string"},binarynumber:{pattern:/#?%[01]+/,alias:"string"},decimalnumber:{pattern:/#?\d+/,alias:"string"},register:{pattern:/\b[xya]\b/i,alias:"variable"}},n.languages.csharp=n.languages.extend("clike",{keyword:/\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\b/,string:[{pattern:/@("|')(?:\1\1|\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*?\1/,greedy:!0}],"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=\s+\w+)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|interface|new)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)f?/i}),n.languages.insertBefore("csharp","class-name",{"generic-method":{pattern:/\w+\s*<[^>\r\n]+?>\s*(?=\()/,inside:{function:/^\w+/,"class-name":{pattern:/\b[A-Z]\w*(?:\.\w+)*\b/,inside:{punctuation:/\./}},keyword:n.languages.csharp.keyword,punctuation:/[<>(),.:]/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}}),n.languages.dotnet=n.languages.csharp,n.languages.autohotkey={comment:{pattern:/(^[^";\n]*("[^"\n]*?"[^"\n]*?)*)(?:;.*$|^\s*\/\*[\s\S]*\n\*\/)/m,lookbehind:!0},string:/"(?:[^"\n\r]|"")*"/m,function:/[^(); \t,\n+*\-=?>:\\\/<&%\[\]]+?(?=\()/m,tag:/^[ \t]*[^\s:]+?(?=:(?:[^:]|$))/m,variable:/%\w+%/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/,punctuation:/[{}[\]():,]/,boolean:/\b(?:true|false)\b/,selector:/\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|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|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|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|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/i,constant:/\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_isunicode|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/i,builtin:/\b(?:abs|acos|asc|asin|atan|ceil|chr|class|cos|dllcall|exp|fileexist|Fileopen|floor|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|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|strsplit|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|__New|__Call|__Get|__Set)\b/i,symbol:/\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i,important:/#\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InstallKeybdHook|InstallMouseHook|KeyHistory|LTrim|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|WinActivateForce)\b/i,keyword:/\b(?:Abort|AboveNormal|Add|ahk_class|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Type|UnCheck|underline|Unicode|Unlock|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i},n.languages.autoit={comment:[/;.*/,{pattern:/(^\s*)#(?:comments-start|cs)[\s\S]*?^\s*#(?:comments-end|ce)/m,lookbehind:!0}],url:{pattern:/(^\s*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^\s*)#\w+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:True|False)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Or|Not)\b/i,punctuation:/[\[\]().,:]/},function(e){var t={variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\([^)]+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},/\$(?:[\w#?*!@]+|\{[^}]+\})/i]};e.languages.bash={shebang:{pattern:/^#!\s*\/bin\/bash|^#!\s*\/bin\/sh/,alias:"important"},comment:{pattern:/(^|[^"{\\])#.*/,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<\s*)["']?(\w+?)["']?\s*\r?\n(?:[\s\S])*?\r?\n\2/,lookbehind:!0,greedy:!0,inside:t},{pattern:/(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\1)[^\\])*\1/,greedy:!0,inside:t}],variable:t.variable,function:{pattern:/(^|[\s;|&])(?:alias|apropos|apt-get|aptitude|aspell|awk|basename|bash|bc|bg|builtin|bzip2|cal|cat|cd|cfdisk|chgrp|chmod|chown|chroot|chkconfig|cksum|clear|cmp|comm|command|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|enable|env|ethtool|eval|exec|expand|expect|export|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|getopts|git|grep|groupadd|groupdel|groupmod|groups|gzip|hash|head|help|hg|history|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|jobs|join|kill|killall|less|link|ln|locate|logname|logout|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|make|man|mkdir|mkfifo|mkisofs|mknod|more|most|mount|mtools|mtr|mv|mmv|nano|netstat|nice|nl|nohup|notify-send|npm|nslookup|open|op|passwd|paste|pathchk|ping|pkill|popd|pr|printcap|printenv|printf|ps|pushd|pv|pwd|quota|quotacheck|quotactl|ram|rar|rcp|read|readarray|readonly|reboot|rename|renice|remsync|rev|rm|rmdir|rsync|screen|scp|sdiff|sed|seq|service|sftp|shift|shopt|shutdown|sleep|slocate|sort|source|split|ssh|stat|strace|su|sudo|sum|suspend|sync|tail|tar|tee|test|time|timeout|times|touch|top|traceroute|trap|tr|tsort|tty|type|ulimit|umask|umount|unalias|uname|unexpand|uniq|units|unrar|unshar|uptime|useradd|userdel|usermod|users|uuencode|uudecode|v|vdir|vi|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yes|zip)(?=$|[\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&])(?:let|:|\.|if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)(?=$|[\s;|&])/,lookbehind:!0},boolean:{pattern:/(^|[\s;|&])(?:true|false)(?=$|[\s;|&])/,lookbehind:!0},operator:/&&?|\|\|?|==?|!=?|<<>|<=?|>=?|=~/,punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];]/};var n=t.variable[1].inside;n.string=e.languages.bash.string,n.function=e.languages.bash.function,n.keyword=e.languages.bash.keyword,n.boolean=e.languages.bash.boolean,n.operator=e.languages.bash.operator,n.punctuation=e.languages.bash.punctuation,e.languages.shell=e.languages.bash}(n),n.languages.basic={comment:{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i,greedy:!0},number:/(?:\b\d+\.?\d*|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,function:/\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,operator:/<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,punctuation:/[,;:()]/},function(e){var t=/%%?[~:\w]+%?|!\S+!/,a={pattern:/\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,alias:"attr-name",inside:{punctuation:/:/}},i=/"[^"]*"/,r=/(?:\b|-)\d+\b/;n.languages.batch={comment:[/^::.*/m,{pattern:/((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0}],label:{pattern:/^:.*/m,alias:"property"},command:[{pattern:/((?:^|[&(])[ \t]*)for(?: ?\/[a-z?](?:[ :](?:"[^"]*"|\S+))?)* \S+ in \([^)]+\) do/im,lookbehind:!0,inside:{keyword:/^for\b|\b(?:in|do)\b/i,string:i,parameter:a,variable:t,number:r,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*)if(?: ?\/[a-z?](?:[ :](?:"[^"]*"|\S+))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|\S+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:"[^"]*"|\S+))/im,lookbehind:!0,inside:{keyword:/^if\b|\b(?:not|cmdextversion|defined|errorlevel|exist)\b/i,string:i,parameter:a,variable:t,number:r,operator:/\^|==|\b(?:equ|neq|lss|leq|gtr|geq)\b/i}},{pattern:/((?:^|[&()])[ \t]*)else\b/im,lookbehind:!0,inside:{keyword:/^else\b/i}},{pattern:/((?:^|[&(])[ \t]*)set(?: ?\/[a-z](?:[ :](?:"[^"]*"|\S+))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^set\b/i,string:i,parameter:a,variable:[t,/\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/],number:r,operator:/[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*@?)\w+\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^\w+\b/i,string:i,parameter:a,label:{pattern:/(^\s*):\S+/m,lookbehind:!0,alias:"property"},variable:t,number:r,operator:/\^/}}],operator:/[&@]/,punctuation:/[()']/}}(),n.languages.bison=n.languages.extend("c",{}),n.languages.insertBefore("bison","comment",{bison:{pattern:/^[\s\S]*?%%[\s\S]*?%%/,inside:{c:{pattern:/%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,inside:{delimiter:{pattern:/^%?\{|%?\}$/,alias:"punctuation"},"bison-variable":{pattern:/[$@](?:<[^\s>]+>)?[\w$]+/,alias:"variable",inside:{punctuation:/<|>/}},rest:n.languages.c}},comment:n.languages.c.comment,string:n.languages.c.string,property:/\S+(?=:)/,keyword:/%\w+/,number:{pattern:/(^|[^@])\b(?:0x[\da-f]+|\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\[\]<>]/}}}),n.languages.brainfuck={pointer:{pattern:/<|>/,alias:"keyword"},increment:{pattern:/\+/,alias:"inserted"},decrement:{pattern:/-/,alias:"deleted"},branching:{pattern:/\[|\]/,alias:"important"},operator:/[.,]/,comment:/\S+/},n.languages.bro={comment:{pattern:/(^|[^\\$])#.*/,lookbehind:!0,inside:{italic:/\b(?:TODO|FIXME|XXX)\b/}},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},boolean:/\b[TF]\b/,function:{pattern:/(?:function|hook|event) \w+(?:::\w+)?/,inside:{keyword:/^(?:function|hook|event)/}},variable:{pattern:/(?:global|local) \w+/i,inside:{keyword:/(?:global|local)/}},builtin:/(?:@(?:load(?:-(?:sigs|plugin))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,constant:{pattern:/const \w+/i,inside:{keyword:/const/}},keyword:/\b(?:break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\b/,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,punctuation:/[{}[\];(),.:]/},n.languages.cpp=n.languages.extend("c",{keyword:/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,boolean:/\b(?:true|false)\b/,operator:/--?|\+\+?|!=?|<{1,2}=?|>{1,2}=?|->|:{1,2}|={1,2}|\^|~|%|&{1,2}|\|\|?|\?|\*|\/|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/}),n.languages.insertBefore("cpp","keyword",{"class-name":{pattern:/(class\s+)\w+/i,lookbehind:!0}}),n.languages.insertBefore("cpp","string",{"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}}),n.languages.aspnet=n.languages.extend("markup",{"page-directive tag":{pattern:/<%\s*@.*%>/i,inside:{"page-directive tag":/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,rest:n.languages.markup.tag.inside}},"directive tag":{pattern:/<%.*%>/i,inside:{"directive tag":/<%\s*?[$=%#:]{0,2}|%>/i,rest:n.languages.csharp}}}),n.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,n.languages.insertBefore("inside","punctuation",{"directive tag":n.languages.aspnet["directive tag"]},n.languages.aspnet.tag.inside["attr-value"]),n.languages.insertBefore("aspnet","comment",{"asp comment":/<%--[\s\S]*?--%>/}),n.languages.insertBefore("aspnet",n.languages.javascript?"script":"tag",{"asp script":{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:n.languages.csharp||{}}}),n.languages.arduino=n.languages.extend("cpp",{keyword:/\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\b/,builtin:/\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|IPAddress|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\b/,constant:/\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\b/}),function(e){var t=/#(?!\{).+/,n={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:t,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:n}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},rest:e.languages.javascript}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:n}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"]}(n),n.languages.clojure={comment:/;+.*/,string:/"(?:\\.|[^\\"\r\n])*"/,operator:/(?:::|[:|'])\b[a-z][\w*+!?-]*\b/i,keyword:{pattern:/([^\w+*'?-])(?:def|if|do|let|\.\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\.|new|set!|def\-|defn|defn\-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\*|\+|\-|\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\*|list|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\?|new|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\?|union|up|update-proxy|val|vals|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[^\w+*'?-])/,lookbehind:!0},boolean:/\b(?:true|false|nil)\b/,number:/\b[0-9A-Fa-f]+\b/,punctuation:/[{}\[\](),]/},function(e){e.languages.ruby=e.languages.extend("clike",{comment:[/#.*/,{pattern:/^=begin(?:\r?\n|\r)(?:.*(?:\r?\n|\r))*?=end/m,greedy:!0}],keyword:/\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/});var t={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.languages.ruby}};e.languages.insertBefore("ruby","keyword",{regex:[{pattern:/%r([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,greedy:!0,inside:{interpolation:t}},{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,lookbehind:!0}}),e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z]\w*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,greedy:!0,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,greedy:!0,inside:{interpolation:t}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0,inside:{interpolation:t}},{pattern:/("|')(?:#\{[^}]+\}|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:t}}]}(n),n.languages.csp={directive:{pattern:/\b(?:(?:base-uri|form-action|frame-ancestors|plugin-types|referrer|reflected-xss|report-to|report-uri|require-sri-for|sandbox) |(?:block-all-mixed-content|disown-opener|upgrade-insecure-requests)(?: |;)|(?:child|connect|default|font|frame|img|manifest|media|object|script|style|worker)-src )/i,alias:"keyword"},safe:{pattern:/'(?:self|none|strict-dynamic|(?:nonce-|sha(?:256|384|512)-)[a-zA-Z\d+=\/]+)'/,alias:"selector"},unsafe:{pattern:/(?:'unsafe-inline'|'unsafe-eval'|'unsafe-hashed-attributes'|\*)/,alias:"function"}},n.languages.css.selector={pattern:/[^{}\s][^{}]*(?=\s*\{)/,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+(?:\(.*\))?/,class:/\.[-:.\w]+/,id:/#[-:.\w]+/,attribute:/\[[^\]]+\]/}},n.languages.insertBefore("css","function",{hexcode:/#[\da-f]{3,8}/i,entity:/\\[\da-f]{1,8}/i,number:/[\d%.]+/}),n.languages.d=n.languages.extend("clike",{string:[/\b[rx]"(?:\\[\s\S]|[^\\"])*"[cwd]?/,/\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/,/\bq"([_a-zA-Z][_a-zA-Z\d]*)(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\1"/,/\bq"(.)[\s\S]*?\1"/,/'(?:\\'|\\?[^']+)'/,/(["`])(?:\\[\s\S]|(?!\1)[^\\])*\1[cwd]?/],number:[/\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]*/i,{pattern:/((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]*/i,lookbehind:!0}],keyword:/\$|\b(?:abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\b/,operator:/\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/}),n.languages.d.comment=[/^\s*#!.+/,{pattern:/(^|[^\\])\/\+(?:\/\+[\s\S]*?\+\/|[\s\S])*?\+\//,lookbehind:!0}].concat(n.languages.d.comment),n.languages.insertBefore("d","comment",{"token-string":{pattern:/\bq\{(?:\{[^}]*\}|[^}])*\}/,alias:"string"}}),n.languages.insertBefore("d","keyword",{property:/\B@\w*/}),n.languages.insertBefore("d","function",{register:{pattern:/\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/,alias:"variable"}}),n.languages.dart=n.languages.extend("clike",{string:[{pattern:/r?("""|''')[\s\S]*?\1/,greedy:!0},{pattern:/r?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],keyword:[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\b/],operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),n.languages.insertBefore("dart","function",{metadata:{pattern:/@\w+/,alias:"symbol"}}),n.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d+.*$/m],deleted:/^[-<].*$/m,inserted:/^[+>].*$/m,diff:{pattern:/^!(?!!).+$/m,alias:"important"}};var a={property:{pattern:/(?:{{|{%)[\s\S]*?(?:%}|}})/g,greedy:!0,inside:{string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/\b(?:\||load|verbatim|widthratio|ssi|firstof|for|url|ifchanged|csrf_token|lorem|ifnotequal|autoescape|now|templatetag|debug|cycle|ifequal|regroup|comment|filter|endfilter|if|spaceless|with|extends|block|include|else|empty|endif|endfor|as|endblock|endautoescape|endverbatim|trans|endtrans|[Tt]rue|[Ff]alse|[Nn]one|in|is|static|macro|endmacro|call|endcall|set|endset|raw|endraw)\b/,operator:/[-+=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,function:/\b(?:_|abs|add|addslashes|attr|batch|callable|capfirst|capitalize|center|count|cut|d|date|default|default_if_none|defined|dictsort|dictsortreversed|divisibleby|e|equalto|escape|escaped|escapejs|even|filesizeformat|first|float|floatformat|force_escape|forceescape|format|get_digit|groupby|indent|int|iriencode|iterable|join|last|length|length_is|linebreaks|linebreaksbr|linenumbers|list|ljust|lower|make_list|map|mapping|number|odd|phone2numeric|pluralize|pprint|random|reject|rejectattr|removetags|replace|reverse|rjust|round|safe|safeseq|sameas|select|selectattr|sequence|slice|slugify|sort|string|stringformat|striptags|sum|time|timesince|timeuntil|title|trim|truncate|truncatechars|truncatechars_html|truncatewords|truncatewords_html|undefined|unordered_list|upper|urlencode|urlize|urlizetrunc|wordcount|wordwrap|xmlattr|yesno)\b/,important:/\b-?\d+(?:\.\d+)?\b/,variable:/\b\w+?\b/,punctuation:/[[\];(),.:]/}}};n.languages.django=n.languages.extend("markup",{comment:/(?:)/}),n.languages.django.tag.pattern=/<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^>=]+))?)*\s*\/?>/i,n.languages.insertBefore("django","entity",a),n.languages.insertBefore("inside","tag",a,n.languages.django.tag),n.languages.javascript&&(n.languages.insertBefore("inside","string",a,n.languages.django.script),n.languages.django.script.inside.string.inside=a),n.languages.css&&(n.languages.insertBefore("inside","atrule",{tag:a.property},n.languages.django.style),n.languages.django.style.inside.string.inside=a),n.languages.jinja2=n.languages.django,n.languages.docker={keyword:{pattern:/(^\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)/im,lookbehind:!0},string:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,comment:/#.*/,punctuation:/---|\.\.\.|[:[\]{}\-,|>?]/},n.languages.dockerfile=n.languages.docker,n.languages.eiffel={comment:/--.*/,string:[{pattern:/"([^[]*)\[[\s\S]*?\]\1"/,greedy:!0},{pattern:/"([^{]*)\{[\s\S]*?\}\1"/,greedy:!0},{pattern:/"(?:%\s+%|%.|[^%"\r\n])*"/,greedy:!0}],char:/'(?:%.|[^%'\r\n])+'/,keyword:/\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,boolean:/\b(?:True|False)\b/i,"class-name":{pattern:/\b[A-Z][\dA-Z_]*\b/,alias:"builtin"},number:[/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,/(?:\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*|\d(?:_*\d)*\.?/i],punctuation:/:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,operator:/\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/},n.languages.elixir={comment:{pattern:/#.*/m,lookbehind:!0},regex:{pattern:/~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/("""|''')[\s\S]*?\1/,greedy:!0,inside:{}},{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\w+/,lookbehind:!0,alias:"symbol"},"attr-name":/\w+:(?!:)/,capture:{pattern:/(^|[^&])&(?:[^&\s\d()][^\s()]*|(?=\())/,lookbehind:!0,alias:"function"},argument:{pattern:/(^|[^&])&\d+/,lookbehind:!0,alias:"variable"},attribute:{pattern:/@\w+/,alias:"variable"},number:/\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,keyword:/\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\b/,boolean:/\b(?:true|false|nil)\b/,operator:[/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\[\]{}()]/},n.languages.elixir.string.forEach(function(e){e.inside={interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:n.languages.elixir}}}}),n.languages.elm={comment:/--.*|{-[\s\S]*?-}/,char:{pattern:/'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+))'/,greedy:!0},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:[^\\"\r\n]|\\(?:[abfnrtv\\"]|\d+|x[0-9a-fA-F]+))*"/,greedy:!0}],import_statement:{pattern:/^\s*import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+([A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,inside:{keyword:/\b(?:import|as|exposing)\b/}},keyword:/\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,builtin:/\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[+\-\/*=.$<>:&|^?%#@~!]{2,}|[+\-\/*=$<>:&|^?%#@~!]/,hvariable:/\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,constant:/\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,punctuation:/[{}[\]|(),.:]/},n.languages["markup-templating"]={},Object.defineProperties(n.languages["markup-templating"],{buildPlaceholders:{value:function(e,t,a,i){e.language===t&&(e.tokenStack=[],e.code=e.code.replace(a,function(n){if("function"==typeof i&&!i(n))return n;for(var a=e.tokenStack.length;-1!==e.code.indexOf("___"+t.toUpperCase()+a+"___");)++a;return e.tokenStack[a]=n,"___"+t.toUpperCase()+a+"___"}),e.grammar=n.languages.markup)}},tokenizePlaceholders:{value:function(e,t){if(e.language===t&&e.tokenStack){e.grammar=n.languages[t];var a=0,i=Object.keys(e.tokenStack);!function r(o){if(!(a>=i.length))for(var s=0;s-1){++a;var g,m=p.substring(0,u),b=new n.Token(t,n.tokenize(c,e.grammar,t),"language-"+t,c),f=p.substring(u+("___"+t.toUpperCase()+d+"___").length);if(m||f?r(g=[m,b,f].filter(function(e){return!!e})):g=b,"string"==typeof l?Array.prototype.splice.apply(o,[s,1].concat(g)):l.content=g,a>=i.length)break}}else l.content&&"string"!=typeof l.content&&r(l.content)}}(e.tokens)}}}}),n.languages.erlang={comment:/%.+/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},"quoted-function":{pattern:/'(?:\\.|[^\\'\r\n])+'(?=\()/,alias:"function"},"quoted-atom":{pattern:/'(?:\\.|[^\\'\r\n])+'/,alias:"atom"},boolean:/\b(?:true|false)\b/,keyword:/\b(?:fun|when|case|of|end|if|receive|after|try|catch)\b/,number:[/\$\\?./,/\d+#[a-z0-9]+/i,/(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i],function:/\b[a-z][\w@]*(?=\()/,variable:{pattern:/(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,lookbehind:!0},operator:[/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\b[a-z][\w@]*/,punctuation:/[()[\]{}:;,.#|]|<<|>>/},n.languages.fsharp=n.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\(\*[\s\S]*?\*\)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],keyword:/\b(?:let|return|use|yield)(?:!\B|\b)|\b(abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/,string:{pattern:/(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1)B?/,greedy:!0},number:[/\b0x[\da-fA-F]+(?:un|lf|LF)?\b/,/\b0b[01]+(?:y|uy)?\b/,/(?:\b\d+\.?\d*|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i,/\b\d+(?:[IlLsy]|u[lsy]?|UL)?\b/]}),n.languages.insertBefore("fsharp","keyword",{preprocessor:{pattern:/^[^\r\n\S]*#.*/m,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:else|endif|if|light|line|nowarn)\b/,lookbehind:!0,alias:"keyword"}}}}),function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\b/,alias:"tag"}]}),e.languages.flow["function-variable"].pattern=/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),"Array"!==e.util.type(e.languages.flow.keyword)&&(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:type|opaque|declare|Class)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\b(?!\$)/,lookbehind:!0})}(n),n.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:\s*!.+(?:\r\n?|\n))?|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:TRUE|FALSE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.(?:EQ|NE|LT|LE|GT|GE|NOT|AND|OR|EQV|NEQV)\.|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/},n.languages.gedcom={"line-value":{pattern:/(^\s*\d+ +(?:@\w[\w!"$%&'()*+,\-.\/:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ +).+/m,lookbehind:!0,inside:{pointer:{pattern:/^@\w[\w!"$%&'()*+,\-.\/:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/,alias:"variable"}}},tag:{pattern:/(^\s*\d+ +(?:@\w[\w!"$%&'()*+,\-.\/:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m,lookbehind:!0,alias:"string"},level:{pattern:/(^\s*)\d+/m,lookbehind:!0,alias:"number"},pointer:{pattern:/@\w[\w!"$%&'()*+,\-.\/:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/,alias:"variable"}},n.languages.gherkin={pystring:{pattern:/("""|''')[\s\S]+?\1/,alias:"string"},comment:{pattern:/((?:^|\r?\n|\r)[ \t]*)#.*/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[ \t]*)@\S*/,lookbehind:!0},feature:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|CaracterĆ­stica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|FonctionnalitĆ©|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|FuncÅ£ionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|FunktionalitƤt|FunktionalitĆ©it|FunzionalitĆ |Hwaet|HwƦt|Jellemző|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Ɩzellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|TĆ­nh năng|Trajto|VermoĆ«|VlastnosÅ„|Właściwość|Značilnost|Ī”Ļ…Ī½Ī±Ļ„ĻŒĻ„Ī·Ļ„Ī±|Λειτουργία|ŠœŠ¾Š³ŃƒŃ›Š½Š¾ŃŃ‚|Мөмкинлек|ŠžŃŠ¾Š±ŠøŠ½Š°|Двойство|Үзенчәлеклелек|Š¤ŃƒŠ½ŠŗŃ†ŠøŠ¾Š½Š°Š»|Š¤ŃƒŠ½ŠŗŃ†ŠøŠ¾Š½Š°Š»Š½Š¾ŃŃ‚|Š¤ŃƒŠ½ŠŗŃ†ŠøŃ|Š¤ŃƒŠ½ŠŗŃ†Ń–Š¾Š½Š°Š»|תכונה|خاصية|خصوصیت|ŲµŁ„Ų§Ų­ŪŒŲŖ|کاروبار کی ضرورت|وِیژگی|ą¤°ą„‚ą¤Ŗ ą¤²ą„‡ą¤–|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ą²¹ą³†ą²šą³ą²šą²³|ąø„ąø§ąø²ąø”ąø•ą¹‰ąø­ąø‡ąøąø²ąø£ąø—ąø²ąø‡ąø˜ąøøąø£ąøąø“ąøˆ|ควาดสาดารถ|โครงหคัก|기늄|ćƒ•ć‚£ćƒ¼ćƒćƒ£|功能|機能):(?:[^:]+(?:\r?\n|\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]+/,lookbehind:!0},keyword:/[^:\r\n]+:/}},scenario:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ɔr|Agtergrond|All y'all|Antecedentes|Antecedents|AtburưarĆ”s|AtburưarĆ”sir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cįŗ£nh|Cefndir|Cenario|CenĆ”rio|Cenario de Fundo|CenĆ”rio de Fundo|Cenarios|CenĆ”rios|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|DƦmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do CenĆ”rio|Dis is what went down|Dữ liệu|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do CenĆ”rio|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókƶnyv|Forgatókƶnyv vĆ”zlat|Fundo|GeƧmiş|ghantoH|Grundlage|Hannergrond|HĆ”ttĆ©r|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bįŗ£n|Khung tƬnh huống|Kịch bįŗ£n|Koncept|Konsep skenario|KontĆØks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|Lýsing AtburưarĆ”sar|Lýsing DƦma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|NĆ”Ärt ScenĆ”ra|NĆ”Ärt ScĆ©nÔře|NĆ”Ärt ScenĆ”ru|Oris scenarija|Ɩrnekler|Osnova|Osnova ScenĆ”ra|Osnova scĆ©nÔře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|PĆ©ldĆ”k|Piemēri|Plan du scĆ©nario|Plan du ScĆ©nario|Plan senaryo|Plan Senaryo|Plang vum Szenario|PozadĆ­|Pozadie|Pozadina|PrĆ­klady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|ScenĆ”r|ScĆ©nÔř|Scenarie|Scenarij|Scenarijai|Scenarijaus Å”ablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|ScĆ©nario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ưe|Se the|Se þe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hwƦr swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|TƬnh huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo\-ho\-ho|You'll wanna|Założenia|ΠαραΓείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Ī„Ļ€ĻŒĪ²Ī±ĪøĻĪæ|ŠšŠµŃ€ŠµŃˆ|ŠšŠ¾Š½Ń‚ŠµŠŗŃŃ‚|ŠšŠ¾Š½Ń†ŠµŠæŃ‚|ŠœŠøŃŠ°Š»Š»Š°Ń€|ŠœŠøŃŠ¾Š»Š»Š°Ń€|ŠžŃŠ½Š¾Š²Š°|ŠŸŠµŃ€ŠµŠ“ŃƒŠ¼Š¾Š²Š°|ПозаГина|ŠŸŃ€ŠµŠ“ŠøŃŃ‚Š¾Ń€ŠøŃ|ŠŸŃ€ŠµŠ“Ń‹ŃŃ‚Š¾Ń€ŠøŃ|ŠŸŃ€ŠøŠŗŠ»Š°Š“Šø|ŠŸŃ€ŠøŠ¼ŠµŃ€|ŠŸŃ€ŠøŠ¼ŠµŃ€Šø|ŠŸŃ€ŠøŠ¼ŠµŃ€Ń‹|Рамка на сценарий|Дкица|Š”Ń‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š° ŃŃ†ŠµŠ½Š°Ń€ŠøŃ˜Š°|Š”Ń‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š° ŃŃ†ŠµŠ½Š°Ń€ŠøŃ|Š”Ń‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š° ŃŃ†ŠµŠ½Š°Ń€Ń–ŃŽ|Дценарий|Дценарий ŃŃ‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š°ŃŠø|Дценарийның Ń‚Ó©Š·ŠµŠ»ŠµŃˆŠµ|Š”Ń†ŠµŠ½Š°Ń€ŠøŃ˜Šø|Дценарио|Дценарій|Тарих|Үрнәкләр|×“×•×’×ž××•×Ŗ|רקע|תבנית תרחיש|תרחיש|Ų§Ł„Ų®Ł„ŁŁŠŲ©|Ų§Ł„ŚÆŁˆŪŒ Ų³Ł†Ų§Ų±ŪŒŁˆ|امثلة|پس منظر|Ų²Ł…ŪŒŁ†Ł‡|Ų³Ł†Ų§Ų±ŪŒŁˆ|Ų³ŁŠŁ†Ų§Ų±ŁŠŁˆ|Ų³ŁŠŁ†Ų§Ų±ŁŠŁˆ Ł…Ų®Ų·Ų·|Ł…Ų«Ų§Ł„ŪŒŚŗ|منظر نامے کا خاکہ|منظرنامہ|Ł†Ł…ŁˆŁ†Ł‡ ها|उदाहरण|ą¤Ŗą¤°ą¤æą¤¦ą„ƒą¤¶ą„ą¤Æ|ą¤Ŗą¤°ą¤æą¤¦ą„ƒą¤¶ą„ą¤Æ ą¤°ą„‚ą¤Ŗą¤°ą„‡ą¤–ą¤¾|ą¤Ŗą„ƒą¤·ą„ą¤ ą¤­ą„‚ą¤®ą¤æ|ਉਦਾਹਰਨਾਂ|ąØŖąØŸąØ•ąØ„ąØ¾|ąØŖąØŸąØ•ąØ„ąØ¾ ąØ¢ąØ¾ąØ‚ąØšąØ¾|ąØŖąØŸąØ•ąØ„ąØ¾ ਰੂਪ ਰੇਖਾ|ąØŖąØæąØ›ą©‹ąØ•ą©œ|ఉదాహరణలు|ą°•ą°„ą°Øą°‚|ą°Øą±‡ą°Ŗą°„ą±ą°Æą°‚|ą°øą°Øą±ą°Øą°æą°µą±‡ą°¶ą°‚|ಉದಾಹರಣೆಗಳು|ಕ಄ಾಸಾರಾಂಶ|ವಿವರಣೆ|ą²¹ą²æą²Øą³ą²Øą³†ą²²ą³†|ą¹‚ąø„ąø£ąø‡ąøŖąø£ą¹‰ąø²ąø‡ąø‚ąø­ąø‡ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|ąøŠąøøąø”ąø‚ąø­ąø‡ąø•ąø±ąø§ąø­ąø¢ą¹ˆąø²ąø‡|ąøŠąøøąø”ąø‚ąø­ąø‡ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|แนวคณด|ąøŖąø£ąøøąø›ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|ė°°ź²½|ģ‹œė‚˜ė¦¬ģ˜¤|ģ‹œė‚˜ė¦¬ģ˜¤ ź°œģš”|예|ć‚µćƒ³ćƒ—ćƒ«|ć‚·ćƒŠćƒŖć‚Ŗ|ć‚·ćƒŠćƒŖć‚Ŗć‚¢ć‚¦ćƒˆćƒ©ć‚¤ćƒ³|ć‚·ćƒŠćƒŖć‚Ŗćƒ†ćƒ³ćƒ—ćƒ¬|ć‚·ćƒŠćƒŖć‚Ŗćƒ†ćƒ³ćƒ—ćƒ¬ćƒ¼ćƒˆ|ćƒ†ćƒ³ćƒ—ćƒ¬|例|例子|å‰§ęœ¬|å‰§ęœ¬å¤§ēŗ²|åŠ‡ęœ¬|åŠ‡ęœ¬å¤§ē¶±|åœŗę™Æ|åœŗę™Æå¤§ēŗ²|堓景|堓景大綱|čƒŒę™Æ):[^:\r\n]*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]*/,lookbehind:!0},keyword:/[^:\r\n]+:/}},"table-body":{pattern:/((?:\r?\n|\r)[ \t]*\|.+\|[^\r\n]*)+/,lookbehind:!0,inside:{outline:{pattern:/<[^>]+?>/,alias:"variable"},td:{pattern:/\s*[^\s|][^|]*/,alias:"string"},punctuation:/\|/}},"table-head":{pattern:/(?:\r?\n|\r)[ \t]*\|.+\|[^\r\n]*/,inside:{th:{pattern:/\s*[^\s|][^|]*/,alias:"variable"},punctuation:/\|/}},atrule:{pattern:/((?:\r?\n|\r)[ \t]+)(?:'ach|'a|'ej|7|a|A takĆ©|A taktiež|A tiež|A zĆ”roveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|AtĆØs|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biįŗæt|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|CĆ¢nd|Cando|Cand|Ce|Cuando|Če|Ɛa ưe|Ɛa|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|DaÅ£i fiind|Dați fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ɛurh|Eeldades|Ef|Eğer ki|Entao|EntĆ£o|Entón|Entonces|En|Epi|E|Ɖs|Etant donnĆ©e|Etant donnĆ©|Et|Ɖtant donnĆ©es|Ɖtant donnĆ©e|Ɖtant donnĆ©|Etant donnĆ©es|Etant donnĆ©s|Ɖtant donnĆ©s|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kadar|Kada|Kad|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|LĆØ sa a|LĆØ|Logo|Lorsqu'<|Lorsque|mƤ|Maar|Mais|Mając|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|NĆ„r|NƤr|Nato|Nhʰng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|SĆ„|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|ThƬ|Thurh|Toda|Too right|ugeholl|Und|Un|VĆ |vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zakładając|Zaradi|Zatati|ƞa þe|ƞa|ƞƔ|ƞegar|ƞurh|Αλλά|ΔεΓομένου|Και|ĪŒĻ„Ī±Ī½|Ī¤ĻŒĻ„Īµ|А також|Агар|Але|Али|Аммо|А|Ó˜Š³Ó™Ń€|Ó˜Š¹Ń‚ŠøŠŗ|Әмма|Бирок|Ва|Š’Ó™|ДаГено|Дано|Š”Š¾ŠæŃƒŃŃ‚ŠøŠ¼|Если|ЗаГате|ЗаГати|ЗаГато|И|І|К Ń‚Š¾Š¼Ńƒ же|КаГа|КаГ|ŠšŠ¾Š³Š°Ń‚Š¾|КогГа|Коли|Ләкин|Лекин|ŠÓ™Ń‚ŠøŅ—Ó™Š“Ó™|ŠŠµŃ…Š°Š¹|ŠŠ¾|ŠžŠ½Š“Š°|ŠŸŃ€ŠøŠæŃƒŃŃ‚ŠøŠ¼Š¾, що|ŠŸŃ€ŠøŠæŃƒŃŃ‚ŠøŠ¼Š¾|ŠŸŃƒŃŃ‚ŃŒ|Также|Та|ТогГа|ТоГі|То|УнГа|Һәм|Якщо|אבל|אזי|אז|×‘×”×™× ×Ŗ×Ÿ|וגם|כאשר|آنگاه|Ų§Ų°Ų§Ł‹|Ų§ŚÆŲ±|Ų§Ł…Ų§|اور|ŲØŲ§ فرض|بالفرض|بفرض|پھر|ŲŖŲØ|Ų«Ł…|Ų¬ŲØ|عندما|فرض کیا|Ł„ŁƒŁ†|Ł„ŪŒŚ©Ł†|متى|Ł‡Ł†ŚÆŲ§Ł…ŪŒ|و|अगर|और|कदा|ą¤•ą¤æą¤Øą„ą¤¤ą„|ą¤šą„‚ą¤‚ą¤•ą¤æ|जब|तऄा|तदा|तब|ą¤Ŗą¤°ą¤Øą„ą¤¤ą„|पर|यदि|ਅਤੇ|ąØœąØ¦ą©‹ąØ‚|ąØœąØæąØµą©‡ąØ‚ ਕਿ|ąØœą©‡ąØ•ąØ°|ਤਦ|ਪਰ|ą°…ą°Ŗą±ą°Ŗą±ą°”ą±|ఈ ą°Ŗą°°ą°æą°øą±ą°„ą°æą°¤ą°æą°²ą±‹|కాని|ą°šą±†ą°Ŗą±ą°Ŗą°¬ą°”ą°æą°Øą°¦ą°æ|మరియు|ಆದರೆ|ನಂತರ|ನೀಔಿದ|ą²®ą²¤ą³ą²¤ą³|ą²øą³ą²„ą²æą²¤ą²æą²Æą²Øą³ą²Øą³|ąøąø³ąø«ąø™ąø”ą¹ƒąø«ą¹‰|ดังนั้น|ą¹ąø•ą¹ˆ|ą¹€ąø”ąø·ą¹ˆąø­|แคะ|그러멓<|그리고<|단<|ė§Œģ•½<|ė§Œģ¼<|먼저<|씰걓<|ķ•˜ģ§€ė§Œ<|恋恤<|恗恋恗<|恟恠恗<|ならば<|悂恗<|並且<|但し<|ä½†ę˜Æ<|假如<|假定<|假設<|假设<|å‰ę<|åŒę—¶<|åŒę™‚<|å¹¶äø”<|当<|ē•¶<|č€Œäø”<|那么<|那麼<)(?=[ \t]+)/,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,inside:{outline:{pattern:/<[^>]+?>/,alias:"variable"}}},outline:{pattern:/<[^>]+?>/,alias:"variable"}},n.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/m}},coord:/^@@.*@@$/m,commit_sha1:/^commit \w{40}$/m},n.languages.glsl=n.languages.extend("clike",{comment:[/\/\*[\s\S]*?\*\//,/\/\/(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/],number:/(?:\b0x[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ulf]*/i,keyword:/\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\b/}),n.languages.insertBefore("glsl","comment",{preprocessor:{pattern:/(^[ \t]*)#(?:(?:define|undef|if|ifdef|ifndef|else|elif|endif|error|pragma|extension|version|line)\b)?/m,lookbehind:!0,alias:"builtin"}}),n.languages.go=n.languages.extend("clike",{keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i,string:{pattern:/(["'`])(\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0}}),delete n.languages.go["class-name"],n.languages.graphql={comment:/#.*/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:true|false)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":/[a-z_]\w*(?=\s*:)/i,keyword:[{pattern:/(fragment\s+(?!on)[a-z_]\w*\s+|\.{3}\s*)on\b/,lookbehind:!0},/\b(?:query|fragment|mutation)\b/],operator:/!|=|\.{3}/,punctuation:/[!(){}\[\]:=,]/},n.languages.groovy=n.languages.extend("clike",{keyword:/\b(?:as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,string:[{pattern:/("""|''')[\s\S]*?\1|(?:\$\/)(?:\$\/\$|[\s\S])*?\/\$/,greedy:!0},{pattern:/(["'\/])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?[\d]+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.{1,2}(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),n.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),n.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:setup|given|when|then|and|cleanup|expect|where):/}),n.languages.insertBefore("groovy","function",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0}}),n.hooks.add("wrap",function(e){if("groovy"===e.language&&"string"===e.type){var t=e.content[0];if("'"!=t){var a=/([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;"$"===t&&(a=/([^\$])(?:\$(?:\{.*?\}|[\w.]+))/),e.content=e.content.replace(/</g,"<").replace(/&/g,"&"),e.content=n.highlight(e.content,{expression:{pattern:a,lookbehind:!0,inside:n.languages.groovy}}),e.classes.push("/"===t?"regex":"gstring")}}}),function(e){e.languages.haml={"multiline-comment":{pattern:/((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ]+.+)*/,lookbehind:!0,alias:"comment"},"multiline-code":[{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ]+.*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ]+.+)/,lookbehind:!0,inside:{rest:e.languages.ruby}},{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ]+.*\|[\t ]*)*/,lookbehind:!0,inside:{rest:e.languages.ruby}}],filter:{pattern:/((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"}}},markup:{pattern:/((?:^|\r?\n|\r)[\t ]*)<.+/,lookbehind:!0,inside:{rest:e.languages.markup}},doctype:{pattern:/((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\{(?:\{[^}]+\}|[^}])+\}/,lookbehind:!0,inside:{rest:e.languages.ruby}},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/,lookbehind:!0},"attr-name":/[\w:-]+(?=\s*!?=|\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\[[^\]]+\]/,inside:{rest:e.languages.ruby}}],punctuation:/[<>]/}},code:{pattern:/((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:{rest:e.languages.ruby}},interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:e.languages.ruby}},punctuation:{pattern:/((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,lookbehind:!0}};for(var t=["css",{filter:"coffee",language:"coffeescript"},"erb","javascript","less","markdown","ruby","scss","textile"],n={},a=0,i=t.length;i>a;a++){var r=t[a];r="string"==typeof r?{filter:r,language:r}:r,e.languages[r.language]&&(n["filter-"+r.filter]={pattern:RegExp("((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+".replace("{{filter_name}}",r.filter)),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},rest:e.languages[r.language]}})}e.languages.insertBefore("haml","filter",n)}(n),function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/i,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:true|false)\b/,block:{pattern:/^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",function(t){e.languages["markup-templating"].buildPlaceholders(t,"handlebars",/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g)}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"handlebars")})}(n),n.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--[^-!#$%*+=?&@|~.:<>^\\\/].*|{-[\s\S]*?-})/m,lookbehind:!0},char:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|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|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,string:{pattern:/"(?:[^\\"]|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|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|\d+|o[0-7]+|x[0-9a-fA-F]+)|\\\s+\\)*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,import_statement:{pattern:/((?:\r?\n|\r|^)\s*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][_a-zA-Z0-9']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|qualified|as|hiding)\b/}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[-!#$%*+=?&@|~.:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~.:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`([A-Z][\w']*\.)*[_a-z][\w']*`/,hvariable:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*\b/,constant:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*\b/,punctuation:/[{}[\];(),.:]/},n.languages.haxe=n.languages.extend("clike",{string:{pattern:/(["'])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{interpolation:{pattern:/(^|[^\\])\$(?:\w+|\{[^}]+\})/,lookbehind:!0,inside:{interpolation:{pattern:/^\$\w*/,alias:"variable"}}}}},keyword:/\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\.)\b/,operator:/\.{3}|\+\+?|-[->]?|[=!]=?|&&?|\|\|?|<[<=]?|>[>=]?|[*\/%~^]/}),n.languages.insertBefore("haxe","class-name",{regex:{pattern:/~\/(?:[^\/\\\r\n]|\\.)+\/[igmsu]*/,greedy:!0}}),n.languages.insertBefore("haxe","keyword",{preprocessor:{pattern:/#\w+/,alias:"builtin"},metadata:{pattern:/@:?\w+/,alias:"symbol"},reification:{pattern:/\$(?:\w+|(?=\{))/,alias:"variable"}}),n.languages.haxe.string.inside.interpolation.inside.rest=n.languages.haxe,delete n.languages.haxe["class-name"],n.languages.http={"request-line":{pattern:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\s(?:https?:\/\/|\/)\S+\sHTTP\/[0-9.]+/m,inside:{property:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b/,"attr-name":/:\w+/}},"response-status":{pattern:/^HTTP\/1.[01] \d+.*/m,inside:{property:{pattern:/(^HTTP\/1.[01] )\d+.*/i,lookbehind:!0}}},"header-name":{pattern:/^[\w-]+:(?=.)/m,alias:"keyword"}};var i={"application/json":n.languages.javascript,"application/xml":n.languages.markup,"text/xml":n.languages.markup,"text/html":n.languages.markup};for(var r in i)if(i[r]){var o={};o[r]={pattern:new RegExp("(content-type:\\s*"+r+"[\\w\\W]*?)(?:\\r?\\n|\\r){2}[\\w\\W]*","i"),lookbehind:!0,inside:{rest:i[r]}},n.languages.insertBefore("http","header-name",o)}n.languages.hpkp={directive:{pattern:/\b(?:(?:includeSubDomains|preload|strict)(?: |;)|pin-sha256="[a-zA-Z\d+=\/]+"|(?:max-age|report-uri)=|report-to )/,alias:"keyword"},safe:{pattern:/\d{7,}/,alias:"selector"},unsafe:{pattern:/\d{0,6}/,alias:"function"}},n.languages.hsts={directive:{pattern:/\b(?:max-age=|includeSubDomains|preload)/,alias:"keyword"},safe:{pattern:/\d{8,}/,alias:"selector"},unsafe:{pattern:/\d{0,7}/,alias:"function"}},n.languages.ichigojam={comment:/(?:\B'|REM)(?:[^\n\r]*)/i,string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i,greedy:!0},number:/\B#[0-9A-F]+|\B`[01]+|(?:\b\d+\.?\d*|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,function:/\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,label:/(?:\B@[^\s]+)/i,operator:/<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,punctuation:/[\[,;:()\]]/},n.languages.icon={comment:/#.*/,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,greedy:!0},number:/\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,"builtin-keyword":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,alias:"variable"},directive:{pattern:/\$\w+/,alias:"builtin"},keyword:/\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,function:/(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,operator:/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,punctuation:/[\[\](){},;]/},n.languages.inform7={string:{pattern:/"[^"]*"/,inside:{substitution:{pattern:/\[[^\]]+\]/,inside:{delimiter:{pattern:/\[|\]/,alias:"punctuation"}}}}},comment:{pattern:/\[[^\]]+\]/,greedy:!0},title:{pattern:/^[ \t]*(?:volume|book|part(?! of)|chapter|section|table)\b.+/im,alias:"important"},number:{pattern:/(^|[^-])(?:\b\d+(?:\.\d+)?(?:\^\d+)?\w*|\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\b(?!-)/i,lookbehind:!0},verb:{pattern:/(^|[^-])\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\b(?!-)/i,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i,lookbehind:!0},property:{pattern:/(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i,lookbehind:!0,alias:"symbol"},position:{pattern:/(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|[^-])\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i,lookbehind:!0,alias:"variable"},punctuation:/[.,:;(){}]/},n.languages.inform7.string.inside.substitution.inside.rest=n.languages.inform7,n.languages.inform7.string.inside.substitution.inside.rest.text={pattern:/\S(?:\s*\S)*/,alias:"comment"},n.languages.ini={comment:/^[ \t]*;.*$/m,selector:/^[ \t]*\[.*?\]/m,constant:/^[ \t]*[^\s=]+?(?=[ \t]*=)/m,"attr-value":{pattern:/=.*/,inside:{punctuation:/^[=]/}}},n.languages.io={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"triple-quoted-string":{pattern:/"""(?:\\[\s\S]|(?!""")[^\\])*"""/,greedy:!0,alias:"string"},string:{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},keyword:/\b(?:activate|activeCoroCount|asString|block|break|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/,builtin:/\b(?:Array|AudioDevice|AudioMixer|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum|Sequence)\b/,boolean:/\b(?:true|false|nil)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e-?\d+)?/i,operator:/[=!*\/%+-^&|]=|>>?=?|<+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/},n.languages.java=n.languages.extend("clike",{keyword:/\b(?: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)\b/,number:/\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp-]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?[df]?/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0}}),n.languages.insertBefore("java","function",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0}}),n.languages.insertBefore("java","class-name",{generics:{pattern:/<\s*\w+(?:\.\w+)?(?:\s*,\s*\w+(?:\.\w+)?)*>/i,alias:"function",inside:{keyword:n.languages.java.keyword,punctuation:/[<>(),.:]/}}}),n.languages.jolie=n.languages.extend("clike",{keyword:/\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\b/,builtin:/\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\b/,number:/(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?l?/i,operator:/-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[:?\/%^]/,symbol:/[|;@]/,punctuation:/[,.]/,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0}}),delete n.languages.jolie["class-name"],delete n.languages.jolie.function,n.languages.insertBefore("jolie","keyword",{function:{pattern:/((?:\b(?:outputPort|inputPort|in|service|courier)\b|@)\s*)\w+/,lookbehind:!0},aggregates:{pattern:/(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,lookbehind:!0,inside:{withExtension:{pattern:/\bwith\s+\w+/,inside:{keyword:/\bwith\b/}},function:{pattern:/\w+/},punctuation:{pattern:/,/}}},redirects:{pattern:/(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/,lookbehind:!0,inside:{punctuation:{pattern:/,/},function:{pattern:/\w+/},symbol:{pattern:/=>/}}}}),n.languages.json={property:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i,string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,punctuation:/[{}[\]);,]/,operator:/:/g,boolean:/\b(?:true|false)\b/i,null:/\bnull\b/i},n.languages.jsonp=n.languages.json,n.languages.julia={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2/,keyword:/\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|let|local|macro|module|print|println|quote|return|try|type|typealias|using|while)\b/,boolean:/\b(?:true|false)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+\.?\d*|\.\d+)(?:[efp][+-]?\d+)?j?/i,operator:/[-+*^%Ć·&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≄]/,punctuation:/[{}[\];(),.:]/},n.languages.keyman={comment:/\bc\s.*/i,function:/\[\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\s+)*(?:[TKU]_[\w?]+|".+?"|'.+?')\s*\]/i,string:/("|').*?\1/,bold:[/&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\b/i,/\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\b/i],keyword:/\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\b/i,atrule:/\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\b/i,number:/\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,operator:/[+>\\,()]/,tag:/\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i},function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[/\w+(?=\s*\()/,{pattern:/(\.)\w+(?=\s*\{)/,lookbehind:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"],e.languages.insertBefore("kotlin","string",{"raw-string":{pattern:/("""|''')[\s\S]*?\1/,alias:"string"}}),e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\w+@|@\w+/,alias:"symbol"}});var t=[{pattern:/\$\{[^}]+\}/,inside:{delimiter:{pattern:/^\$\{|\}$/,alias:"variable"},rest:e.languages.kotlin}},{pattern:/\$\w+/,alias:"variable"}];e.languages.kotlin.string.inside=e.languages.kotlin["raw-string"].inside={interpolation:t}}(n),function(e){var t=/\\(?:[^a-z()[\]]|[a-z*]+)/i,a={"equation-command":{pattern:t,alias:"regex"}};n.languages.latex={comment:/%.*/m,cdata:{pattern:/(\\begin\{((?:verbatim|lstlisting)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0},equation:[{pattern:/\$(?:\\[\s\S]|[^\\$])*\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,inside:a,alias:"string"},{pattern:/(\\begin\{((?:equation|math|eqnarray|align|multline|gather)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0,inside:a,alias:"string"}],keyword:{pattern:/(\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0},url:{pattern:/(\\url\{)[^}]+(?=\})/,lookbehind:!0},headline:{pattern:/(\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\}(?:\[[^\]]+\])?)/,lookbehind:!0,alias:"class-name"},function:{pattern:t,alias:"selector"},punctuation:/[[\]{}&]/}}(),n.languages.less=n.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-]+?(?:\([^{}]+\)|[^(){};])*?(?=\s*\{)/i,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{};@])*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,punctuation:/[{}();:,]/,operator:/[+\-*\/]/}),n.languages.insertBefore("less","punctuation",{function:n.languages.less.function}),n.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/,lookbehind:!0,alias:"function"}}),n.languages.liquid={keyword:/\b(?:comment|endcomment|if|elsif|else|endif|unless|endunless|for|endfor|case|endcase|when|in|break|assign|continue|limit|offset|range|reversed|raw|endraw|capture|endcapture|tablerow|endtablerow)\b/,number:/\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp-]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?[df]?/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0},function:{pattern:/(^|[\s;|&])(?:append|prepend|capitalize|cycle|cols|increment|decrement|abs|at_least|at_most|ceil|compact|concat|date|default|divided_by|downcase|escape|escape_once|first|floor|join|last|lstrip|map|minus|modulo|newline_to_br|plus|remove|remove_first|replace|replace_first|reverse|round|rstrip|size|slice|sort|sort_natural|split|strip|strip_html|strip_newlines|times|truncate|truncatewords|uniq|upcase|url_decode|url_encode|include|paginate)(?=$|[\s;|&])/,lookbehind:!0}},function(e){function t(e){return new RegExp("(\\()"+e+"(?=[\\s\\)])")}function n(e){return new RegExp("([\\s([])"+e+"(?=[\\s)])")}var a="[-+*/_~!@$%^=<>{}\\w]+",i="(\\()",r="(?=\\))",o="(?=\\s)",s={heading:{pattern:/;;;.*/,alias:["comment","title"]},comment:/;.*/,string:{pattern:/"(?:[^"\\]*|\\.)*"/,greedy:!0,inside:{argument:/[-A-Z]+(?=[.,\s])/,symbol:new RegExp("`"+a+"'")}},"quoted-symbol":{pattern:new RegExp("#?'"+a),alias:["variable","symbol"]},"lisp-property":{pattern:new RegExp(":"+a),alias:"property"},splice:{pattern:new RegExp(",@?"+a),alias:["symbol","variable"]},keyword:[{pattern:new RegExp(i+"(?:(?:lexical-)?let\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)"+o),lookbehind:!0},{pattern:new RegExp(i+"(?:for|do|collect|return|finally|append|concat|in|by)"+o),lookbehind:!0}],declare:{pattern:t("declare"),lookbehind:!0,alias:"keyword"},interactive:{pattern:t("interactive"),lookbehind:!0,alias:"keyword"},boolean:{pattern:n("(?:t|nil)"),lookbehind:!0},number:{pattern:n("[-+]?\\d+(?:\\.\\d*)?"),lookbehind:!0},defvar:{pattern:new RegExp(i+"def(?:var|const|custom|group)\\s+"+a),lookbehind:!0,inside:{keyword:/^def[a-z]+/,variable:new RegExp(a)}},defun:{pattern:new RegExp(i+"(?:cl-)?(?:defun\\*?|defmacro)\\s+"+a+"\\s+\\([\\s\\S]*?\\)"),lookbehind:!0,inside:{keyword:/^(?:cl-)?def\S+/,arguments:null,function:{pattern:new RegExp("(^\\s)"+a),lookbehind:!0},punctuation:/[()]/}},lambda:{pattern:new RegExp(i+"lambda\\s+\\((?:&?"+a+"\\s*)*\\)"),lookbehind:!0,inside:{keyword:/^lambda/,arguments:null,punctuation:/[()]/}},car:{pattern:new RegExp(i+a),lookbehind:!0},punctuation:[/(['`,]?\(|[)\[\]])/,{pattern:/(\s)\.(?=\s)/,lookbehind:!0}]},l={"lisp-marker":new RegExp("&[-+*/_~!@$%^=<>{}\\w]+"),rest:{argument:{pattern:new RegExp(a),alias:"variable"},varform:{pattern:new RegExp(i+a+"\\s+\\S[\\s\\S]*"+r),lookbehind:!0,inside:{string:s.string,boolean:s.boolean,number:s.number,symbol:s.symbol,punctuation:/[()]/}}}},d="\\S+(?:\\s+\\S+)*",c={pattern:new RegExp(i+"[\\s\\S]*"+r),lookbehind:!0,inside:{"rest-vars":{pattern:new RegExp("&(?:rest|body)\\s+"+d),inside:l},"other-marker-vars":{pattern:new RegExp("&(?:optional|aux)\\s+"+d),inside:l},keys:{pattern:new RegExp("&key\\s+"+d+"(?:\\s+&allow-other-keys)?"),inside:l},argument:{pattern:new RegExp(a),alias:"variable"},punctuation:/[()]/}};s.lambda.inside.arguments=c,s.defun.inside.arguments=e.util.clone(c),s.defun.inside.arguments.inside.sublist=c,e.languages.lisp=s,e.languages.elisp=s,e.languages.emacs=s,e.languages["emacs-lisp"]=s}(n),n.languages.livescript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"interpolated-string":{pattern:/(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,lookbehind:!0},interpolation:{pattern:/(^|[^\\])#\{[^}]+\}/m,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^#\{|\}$/,alias:"variable"}}},string:/[\s\S]+/}},string:[{pattern:/('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/<\[[\s\S]*?\]>/,greedy:!0},/\\[^\s,;\])}]+/],regex:[{pattern:/\/\/(\[.+?]|\\.|(?!\/\/)[^\\])+\/\/[gimyu]{0,5}/,greedy:!0,inside:{comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0}}},{pattern:/\/(\[.+?]|\\.|[^\/\\\r\n])+\/[gimyu]{0,5}/,greedy:!0}],keyword:{pattern:/(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,lookbehind:!0},"keyword-operator":{pattern:/(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?:nt| not)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,lookbehind:!0,alias:"operator"},boolean:{pattern:/(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,lookbehind:!0},argument:{pattern:/(^|(?!\.&\.)[^&])&(?!&)\d*/m,lookbehind:!0,alias:"variable"},number:/\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,identifier:/[a-z_](?:-?[a-z]|[\d_])*/i,operator:[{pattern:/( )\.(?= )/,lookbehind:!0},/\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/],punctuation:/[(){}\[\]|.,:;`]/},n.languages.livescript["interpolated-string"].inside.interpolation.inside.rest=n.languages.livescript,n.languages.lolcode={comment:[/\bOBTW\s+[\s\S]*?\s+TLDR\b/,/\bBTW.+/],string:{pattern:/"(?::.|[^"])*"/,inside:{variable:/:\{[^}]+\}/,symbol:[/:\([a-f\d]+\)/i,/:\[[^\]]+\]/,/:[)>o":]/]},greedy:!0},number:/(?:\B-)?(?:\b\d+\.?\d*|\B\.\d+)/,symbol:{pattern:/(^|\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\s)/}},label:{pattern:/((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,lookbehind:!0,alias:"string"},function:{pattern:/((?:^|\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\w*/,lookbehind:!0},keyword:[{pattern:/(^|\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\?|YA RLY|NO WAI|OIC|MEBBE|WTF\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\s|,|$)/,lookbehind:!0},/'Z(?=\s|,|$)/],boolean:{pattern:/(^|\s)(?:WIN|FAIL)(?=\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\s)IT(?=\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\s|,|$)/,lookbehind:!0},punctuation:/\.{3}|…|,|!/},n.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+\.?[a-f\d]*(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|\.?\d*(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/},n.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,symbol:{pattern:/^[^:=\r\n]+(?=\s*:(?!=))/m,inside:{variable:/\$+(?:[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:[/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,{pattern:/(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/},n.languages.markdown=n.languages.extend("markup",{}),n.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},code:[{pattern:/^(?: {4}|\t).+/m,alias:"keyword"},{pattern:/``.+?``|`[^`\n]+`/,alias:"keyword"}],title:[{pattern:/\w+.*(?:\r?\n|\r)(?:==+|--+)/,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#+.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:/(^|[^\\])(\*\*|__)(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^\*\*|^__|\*\*$|__$/}},italic:{pattern:/(^|[^\\])([*_])(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^[*_]|[*_]$/}},url:{pattern:/!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[[^\]\n]*\])/,inside:{variable:{pattern:/(!?\[)[^\]]+(?=\]$)/,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\])*"(?=\)$)/}}}}),n.languages.markdown.bold.inside.url=n.languages.markdown.url,n.languages.markdown.italic.inside.url=n.languages.markdown.url,n.languages.markdown.bold.inside.italic=n.languages.markdown.italic,n.languages.markdown.italic.inside.bold=n.languages.markdown.bold,function(e){e.languages.erb=e.languages.extend("ruby",{}),e.languages.insertBefore("erb","comment",{delimiter:{pattern:/^<%=?|%>$/,alias:"punctuation"}}),e.hooks.add("before-tokenize",function(t){e.languages["markup-templating"].buildPlaceholders(t,"erb",/<%=?[\s\S]+?%>/g)}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"erb")})}(n),n.languages.matlab={comment:[/%\{[\s\S]*?\}%/,/%.+/],string:{pattern:/\B'(?:''|[^'\r\n])*'/,greedy:!0},number:/(?:\b\d+\.?\d*|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,keyword:/\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\b/,function:/(?!\d)\w+(?=\s*\()/,operator:/\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,punctuation:/\.{3}|[.,;\[\](){}!]/},n.languages.mel={comment:/\/\/.*/,code:{pattern:/`(?:\\.|[^\\`\r\n])*`/,greedy:!0,alias:"italic",inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},variable:/\$\w+/,number:/\b0x[\da-fA-F]+\b|\b\d+\.?\d*|\B\.\d+/,flag:{pattern:/-[^\d\W]\w*/,alias:"operator"},keyword:/\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,function:/\w+(?=\()|\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,operator:[/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\[\](){}]/},n.languages.mel.code.inside.rest=n.languages.mel,n.languages.mizar={comment:/::.+/,keyword:/@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\b/,parameter:{pattern:/\$(?:10|\d)/,alias:"variable"},variable:/\w+(?=:)/,number:/(?:\b|-)\d+\b/,operator:/\.\.\.|->|&|\.?=/,punctuation:/\(#|#\)|[,:;\[\](){}]/},n.languages.monkey={string:/"[^"\r\n]*"/,comment:[{pattern:/^#Rem\s+[\s\S]*?^#End/im,greedy:!0},{pattern:/'.+/,greedy:!0}],preprocessor:{pattern:/(^[ \t]*)#.+/m,lookbehind:!0,alias:"comment"},function:/\w+(?=\()/,"type-char":{pattern:/(\w)[?%#$]/,lookbehind:!0,alias:"variable"},number:{pattern:/((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i,lookbehind:!0},keyword:/\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\b/i,operator:/\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,punctuation:/[.,:;()\[\]]/},n.languages.n4js=n.languages.extend("javascript",{keyword:/\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),n.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),n.languages.n4jsd=n.languages.n4js,n.languages.nasm={comment:/;.*$/m,string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,label:{pattern:/(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,lookbehind:!0,alias:"function"},keyword:[/\[?BITS (?:16|32|64)\]?/,{pattern:/(^\s*)section\s*[a-zA-Z.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\r\n]*/i,/(?:CPU|FLOAT|DEFAULT).*$/m],register:{pattern:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\b/i,alias:"variable"},number:/(?:\b|(?=\$))(?:0[hx][\da-f]*\.?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-\/%<>=&|$!]/},n.languages.nginx=n.languages.extend("clike",{comment:{pattern:/(^|[^"{\\])#.*/,lookbehind:!0},keyword:/\b(?:CONTENT_|DOCUMENT_|GATEWAY_|HTTP_|HTTPS|if_not_empty|PATH_|QUERY_|REDIRECT_|REMOTE_|REQUEST_|SCGI|SCRIPT_|SERVER_|http|events|accept_mutex|accept_mutex_delay|access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth|auth_basic|auth_basic_user_file|auth_http|auth_http_header|auth_http_timeout|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|debug_connection|debug_points|default_type|deny|devpoll_changes|devpoll_events|directio|directio_alignment|disable_symlinks|empty_gif|env|epoll_events|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_redirect_errors|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|google_perftools_profiles|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|imap_capabilities|imap_client_buffer|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|kqueue_changes|kqueue_events|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|lock_file|log_format|log_format_combined|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|multi_accept|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|pop3_auth|pop3_capabilities|port_in_redirect|post_action|postpone_output|protocol|proxy|proxy_buffer|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_error_message|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_read_timeout|proxy_redirect|proxy_redirect_errors|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|proxy_timeout|proxy_upstream_fail_timeout|proxy_upstream_max_fails|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|rtsig_overflow_events|rtsig_overflow_test|rtsig_overflow_threshold|rtsig_signo|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|smtp_auth|smtp_capabilities|so_keepalive|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssi_value_length|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|starttls|stub_status|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timeout|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|use|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_rlimit_sigpending|working_directory|xclient|xml_entities|xslt_entities|xslt_stylesheet|xslt_types)\b/i}),n.languages.insertBefore("nginx","keyword",{variable:/\$[a-z_]+/i}),n.languages.nim={comment:/#.*/,string:{pattern:/(?:(?:\b(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")|'(?:\\(?:\d+|x[\da-fA-F]{2}|.)|[^'])')/,greedy:!0},number:/\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,keyword:/\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,function:{pattern:/(?:(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,inside:{operator:/\*$/}},ignore:{pattern:/`[^`\r\n]+`/,inside:{punctuation:/`/}},operator:{pattern:/(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\b)/m,lookbehind:!0},punctuation:/[({\[]\.|\.[)}\]]|[`(){}\[\],:]/},n.languages.nix={comment:/\/\*[\s\S]*?\*\/|#.*/,string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^}]|\{[^}]*\})*}/,lookbehind:!0,inside:{antiquotation:{pattern:/^\$(?=\{)/,alias:"variable"}}}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"variable"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,function:/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,boolean:/\b(?:true|false)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},n.languages.nix.string.inside.interpolation.inside.rest=n.languages.nix,n.languages.nsis={comment:{pattern:/(^|[^\\])(\/\*[\s\S]*?\*\/|[#;].*)/,lookbehind:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:{pattern:/(^\s*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|Banner|BG(?:Font|Gradient|Image)|BrandingText|BringToFront|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|Name|Nop|ns(?:Dialogs|Exec)|NSISdl|OutFile|Page(?:Callbacks)?|PE(?:DllCharacteristics|SubsysVer)|Pop|Push|Quit|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Unicode|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle)\b/m,lookbehind:!0},property:/\b(?:admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user|ARCHIVE|FILE_(ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK((CR|CU|LM)(32|64)?|DD|PD|U)|HKEY_(CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)\b/,constant:/\${[\w\.:\^-]+}|\$\([\w\.:\^-]+\)/i,variable:/\$\w+/i,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|\+\+?|<=?|>=?|==?=?|&&?|\|\|?|[?*\/~^%]/,punctuation:/[{}[\];(),.:]/,important:{pattern:/(^\s*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\b/im,lookbehind:!0}},n.languages.objectivec=n.languages.extend("c",{keyword:/\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,string:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/}),n.languages.ocaml={comment:/\(\*[\s\S]*?\*\)/,string:[{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},{pattern:/(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i,greedy:!0}],number:/\b(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*\.?[\d_]*(?:e[+-]?[\d_]+)?)/i,type:{pattern:/\B['`]\w*/,alias:"variable"},directive:{pattern:/\B#\w+/,alias:"function"},keyword:/\b(?: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|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\b/,boolean:/\b(?:false|true)\b/,operator:/:=|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\b/,punctuation:/[(){}\[\]|_.,:;]/},function(e){e.languages.opencl=e.languages.extend("c",{keyword:/\b(?:__attribute__|(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|auto|break|case|cl_(?:image_format|mem_fence_flags)|clk_event_t|complex|const|continue|default|do|(?:float|double)(?:16(?:x(?:1|16|2|4|8))?|1x(?:1|16|2|4|8)|2(?:x(?:1|16|2|4|8))?|3|4(?:x(?:1|16|2|4|8))?|8(?:x(?:1|16|2|4|8))?)?|else|enum|event_t|extern|for|goto|(?:u?(?:char|short|int|long)|half|quad|bool)(?:2|3|4|8|16)?|if|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|imaginary|inline|intptr_t|ndrange_t|packed|pipe|ptrdiff_t|queue_t|register|reserve_id_t|restrict|return|sampler_t|signed|size_t|sizeof|static|struct|switch|typedef|uintptr_t|uniform|union|unsigned|void|volatile|while)\b/,"function-opencl-kernel":{pattern:/\b(?:abs(?:_diff)?|a?(?:cos|sin)(?:h|pi)?|add_sat|aligned|all|and|any|async(?:_work_group_copy|_work_group_strided_copy)?|atan(?:2?(?:pi)?|h)?|atom_(?:add|and|cmpxchg|dec|inc|max|min|or|sub|xchg|xor)|barrier|bitselect|cbrt|ceil|clamp|clz|copies|copysign|cross|degrees|distance|dot|endian|erf|erfc|exp(?:2|10)?|expm1|fabs|fast_(?:distance|length|normalize)|fdim|floor|fma|fmax|fmin|fract|frexp|fro|from|get_(?:global_(?:id|offset|size)|group_id|image_(?:channel_data_type|channel_order|depth|dim|height|width)|local(?:_id|_size)|num_groups|work_dim)|hadd|(?:half|native)_(?:cos|divide|exp(?:2|10)?|log(?:2|10)?|powr|recip|r?sqrt|sin|tan)|hypot|ilogb|is(?:equal|finite|greater(?:equal)?|inf|less(?:equal|greater)?|nan|normal|notequal|(?:un)?ordered)|ldexp|length|lgamma|lgamma_r|log(?:b|1p|2|10)?|mad(?:24|_hi|_sat)?|max|mem(?:_fence)?|min|mix|modf|mul24|mul_hi|nan|nextafter|normalize|pow[nr]?|prefetch|radians|read_(?:image)(?:f|h|u?i)|read_mem_fence|remainder|remquo|reqd_work_group_size|rhadd|rint|rootn|rotate|round|rsqrt|select|shuffle2?|sign|signbit|sincos|smoothstep|sqrt|step|sub_sat|tan|tanh|tanpi|tgamma|to|trunc|upsample|vec_(?:step|type_hint)|v(?:load|store)(?:_half)?(?:2|3|4|8|16)?|v(?:loada_half|storea?(?:_half)?)(?:2|3|4|8|16)?(?:_(?:rte|rtn|rtp|rtz))?|wait_group_events|work_group_size_hint|write_image(?:f|h|u?i)|write_mem_fence)\b/,alias:"function"},"constant-opencl-kernel":{pattern:/\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:LOCAL|GLOBAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT)_(?:DIG|EPSILON|MANT_DIG|(?:MIN|MAX)(?:(?:_10)?_EXP)?)|FLT_RADIX|HUGE_VALF|INFINITY|(?:INT|LONG|SCHAR|SHRT|UCHAR|UINT|ULONG)_(?:MAX|MIN)|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:10|2)E?|PI[24]?|SQRT(?:1_2|2))|NAN)\b/,alias:"constant"}});var t={"type-opencl-host":{pattern:/\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|short|int|long)|float|double)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\b/,alias:"keyword"},"boolean-opencl-host":{pattern:/\bCL_(?:TRUE|FALSE)\b/,alias:"boolean"},"constant-opencl-host":{pattern:/\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:16|24|8|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\b/,alias:"constant"},"function-opencl-host":{pattern:/\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|Kernel|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\b/,alias:"function"}};e.languages.insertBefore("c","keyword",t),t["type-opencl-host-c++"]={pattern:/\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|Sampler|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|UserEvent)\b/,alias:"keyword"},e.languages.insertBefore("cpp","keyword",t)}(n),n.languages.oz={comment:/\/\*[\s\S]*?\*\/|%.*/,string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},atom:{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,alias:"builtin"},keyword:/[$_]|\[\]|\b(?:at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,function:[/[a-z][A-Za-z\d]*(?=\()/,{pattern:/(\{)[A-Z][A-Za-z\d]*/,lookbehind:!0}],number:/\b(?:0[bx][\da-f]+|\d+\.?\d*(?:e~?\d+)?\b)|&(?:[^\\]|\\(?:\d{3}|.))/i,variable:/\b[A-Z][A-Za-z\d]*|`(?:[^`\\]|\\.)+`/,"attr-name":/\w+(?=:)/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,punctuation:/[\[\](){}.:;?]/},n.languages.parigp={comment:/\/\*[\s\S]*?\*\/|\\\\.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"/,greedy:!0},keyword:function(){var e=["breakpoint","break","dbg_down","dbg_err","dbg_up","dbg_x","forcomposite","fordiv","forell","forpart","forprime","forstep","forsubgroup","forvec","for","iferr","if","local","my","next","return","until","while"];return e=e.map(function(e){return e.split("").join(" *")}).join("|"),RegExp("\\b(?:"+e+")\\b")}(),function:/\w[\w ]*?(?= *\()/,number:{pattern:/((?:\. *\. *)?)(?:\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *[+-]? *\d(?: *\d)*)?/i,lookbehind:!0},operator:/\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?:(?: *<)?(?: *=)?| *>)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,punctuation:/[\[\]{}().,:;|]/},n.languages.parser=n.languages.extend("markup",{keyword:{pattern:/(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{punctuation:/\.|:+/}},function:{pattern:/(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\.|:+/}},escape:{pattern:/\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,alias:"builtin"},punctuation:/[\[\](){};]/}),n.languages.insertBefore("parser","keyword",{"parser-comment":{pattern:/(\s)#.*/,lookbehind:!0,alias:"comment"},expression:{pattern:/(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,greedy:!0,lookbehind:!0,inside:{string:{pattern:/(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,lookbehind:!0},keyword:n.languages.parser.keyword,variable:n.languages.parser.variable,function:n.languages.parser.function,boolean:/\b(?:true|false)\b/,number:/\b(?:0x[a-f\d]+|\d+\.?\d*(?:e[+-]?\d+)?)\b/i,escape:n.languages.parser.escape,operator:/[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,punctuation:n.languages.parser.punctuation}}}),n.languages.insertBefore("inside","punctuation",{expression:n.languages.parser.expression,keyword:n.languages.parser.keyword,variable:n.languages.parser.variable,function:n.languages.parser.function,escape:n.languages.parser.escape,"parser-punctuation":{pattern:n.languages.parser.punctuation,alias:"punctuation"}},n.languages.parser.tag.inside["attr-value"]),n.languages.pascal={comment:[/\(\*[\s\S]+?\*\)/,/\{[\s\S]+?\}/,/\/\/.*/],string:{pattern:/(?:'(?:''|[^'\r\n])*'|#[&$%]?[a-f\d]+)+|\^[a-z]/i,greedy:!0},keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/(?:[&%]\d+|\$[a-f\d]+)/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/i,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/},n.languages.objectpascal=n.languages.pascal,n.languages.perl={comment:[{pattern:/(^\s*)=\w+[\s\S]*?=cut.*/m,lookbehind:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0}],string:[{pattern:/\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:/\b(?:m|qr)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+)+(?:::)*/i,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*>|\b_\b/,alias:"symbol"},vstring:{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:"string"},function:{pattern:/sub [a-z0-9_]+/i,inside:{keyword:/sub/}},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/,punctuation:/[{}[\];(),:]/},function(e){e.languages.php=e.languages.extend("clike",{keyword:/\b(?:and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,constant:/\b[A-Z0-9_]{2,}\b/,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),e.languages.insertBefore("php","keyword",{delimiter:{pattern:/\?>|<\?(?:php|=)?/i,alias:"important"},variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),e.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:null}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:null}}}),delete e.languages.php.string;var t={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,lookbehind:!0,inside:{rest:e.languages.php}};e.languages.php["heredoc-string"].inside.interpolation=t,e.languages.php["double-quoted-string"].inside.interpolation=t,e.hooks.add("before-tokenize",function(t){if(/(?:<\?php|<\?)/gi.test(t.code)){e.languages["markup-templating"].buildPlaceholders(t,"php",/(?:<\?php|<\?)[\s\S]*?(?:\?>|$)/gi)}}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"php")})}(n),n.languages.insertBefore("php","variable",{this:/\$this\b/,global:/\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\b/,scope:{pattern:/\b[\w\\]+::/,inside:{keyword:/static|self|parent/,punctuation:/::|\\/}}}),n.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\])*\2/,greedy:!0,lookbehind:!0},variable:/@[\w.$]+|@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b0x[\da-f]+\b|\b\d+\.?\d*|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/},n.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:{function:{pattern:/(^|[^`])\$\((?:\$\(.*?\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:{}}}},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*]|[^\[\]])*]|[^\[\]])*]/i,boolean:/\$(?:true|false)\b/i,variable:/\$\w+\b/i,function:[/\b(?:Add-(?:Computer|Content|History|Member|PSSnapin|Type)|Checkpoint-Computer|Clear-(?:Content|EventLog|History|Item|ItemProperty|Variable)|Compare-Object|Complete-Transaction|Connect-PSSession|ConvertFrom-(?:Csv|Json|StringData)|Convert-Path|ConvertTo-(?:Csv|Html|Json|Xml)|Copy-(?:Item|ItemProperty)|Debug-Process|Disable-(?:ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Disconnect-PSSession|Enable-(?:ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Enter-PSSession|Exit-PSSession|Export-(?:Alias|Clixml|Console|Csv|FormatData|ModuleMember|PSSession)|ForEach-Object|Format-(?:Custom|List|Table|Wide)|Get-(?:Alias|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Culture|Date|Event|EventLog|EventSubscriber|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|WmiObject)|Group-Object|Import-(?:Alias|Clixml|Csv|LocalizedData|Module|PSSession)|Invoke-(?:Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)|Join-Path|Limit-EventLog|Measure-(?:Command|Object)|Move-(?:Item|ItemProperty)|New-(?:Alias|Event|EventLog|Item|ItemProperty|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy)|Out-(?:Default|File|GridView|Host|Null|Printer|String)|Pop-Location|Push-Location|Read-Host|Receive-(?:Job|PSSession)|Register-(?:EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)|Remove-(?:Computer|Event|EventLog|Item|ItemProperty|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)|Rename-(?:Computer|Item|ItemProperty)|Reset-ComputerMachinePassword|Resolve-Path|Restart-(?:Computer|Service)|Restore-Computer|Resume-(?:Job|Service)|Save-Help|Select-(?:Object|String|Xml)|Send-MailMessage|Set-(?:Alias|Content|Date|Item|ItemProperty|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)|Show-(?:Command|ControlPanelItem|EventLog)|Sort-Object|Split-Path|Start-(?:Job|Process|Service|Sleep|Transaction)|Stop-(?:Computer|Job|Process|Service)|Suspend-(?:Job|Service)|Tee-Object|Test-(?:ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)|Trace-Command|Unblock-File|Undo-Transaction|Unregister-(?:Event|PSSessionConfiguration)|Update-(?:FormatData|Help|List|TypeData)|Use-Transaction|Wait-(?:Event|Job|Process)|Where-Object|Write-(?:Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning))\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(\W?)(?:!|-(eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/},n.languages.powershell.string[0].inside.boolean=n.languages.powershell.boolean,n.languages.powershell.string[0].inside.variable=n.languages.powershell.variable,n.languages.powershell.string[0].inside.function.inside=n.languages.powershell,n.languages.processing=n.languages.extend("clike",{keyword:/\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),n.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z]\w*)\b/,alias:"variable"}}),n.languages.processing.function.pattern=/\w+(?=\s*\()/,n.languages.processing["class-name"].alias="variable",n.languages.prolog={comment:[/%.+/,/\/\*[\s\S]*?\*\//],string:{pattern:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,variable:/\b[A-Z_]\w*/,function:/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+\.?\d*/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/},n.languages.properties={comment:/^[ \t]*[#!].*$/m,"attr-value":{pattern:/(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?: *[=:] *| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m,lookbehind:!0},"attr-name":/^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?= *[=:] *| )/m,punctuation:/[=:]/},n.languages.protobuf=n.languages.extend("clike",{keyword:/\b(?:package|import|message|enum)\b/,builtin:/\b(?:required|repeated|optional|reserved)\b/,primitive:{pattern:/\b(?:double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\b/,alias:"symbol"}}),function(e){e.languages.pug={comment:{pattern:/(^([\t ]*))\/\/.*(?:(?:\r?\n|\r)\2[\t ]+.+)*/m,lookbehind:!0},"multiline-script":{pattern:/(^([\t ]*)script\b.*\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{rest:e.languages.javascript}},filter:{pattern:/(^([\t ]*)):.+(?:(?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"}}},"multiline-plain-text":{pattern:/(^([\t ]*)[\w\-#.]+\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0},markup:{pattern:/(^[\t ]*)<.+/m,lookbehind:!0,inside:{rest:e.languages.markup}},doctype:{pattern:/((?:^|\n)[\t ]*)doctype(?: .+)?/,lookbehind:!0},"flow-control":{pattern:/(^[\t ]*)(?:if|unless|else|case|when|default|each|while)\b(?: .+)?/m,lookbehind:!0,inside:{each:{pattern:/^each .+? in\b/,inside:{keyword:/\b(?:each|in)\b/,punctuation:/,/}},branch:{pattern:/^(?:if|unless|else|case|when|default|while)\b/,alias:"keyword"},rest:e.languages.javascript}},keyword:{pattern:/(^[\t ]*)(?:block|extends|include|append|prepend)\b.+/m,lookbehind:!0},mixin:[{pattern:/(^[\t ]*)mixin .+/m,lookbehind:!0,inside:{keyword:/^mixin/,function:/\w+(?=\s*\(|\s*$)/,punctuation:/[(),.]/}},{pattern:/(^[\t ]*)\+.+/m,lookbehind:!0,inside:{name:{pattern:/^\+\w+/,alias:"function"},rest:e.languages.javascript}}],script:{pattern:/(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]+).+/m,lookbehind:!0,inside:{rest:e.languages.javascript}},"plain-text":{pattern:/(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]+).+/m,lookbehind:!0},tag:{pattern:/(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,lookbehind:!0,inside:{attributes:[{pattern:/&[^(]+\([^)]+\)/,inside:{rest:e.languages.javascript}},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:\{[^}]*\}|[^,)\r\n]+)/,lookbehind:!0,inside:{rest:e.languages.javascript}},"attr-name":/[\w-]+(?=\s*!?=|\s*[,)])/,punctuation:/[!=(),]+/}}],punctuation:/:/}},code:[{pattern:/(^[\t ]*(?:-|!?=)).+/m,lookbehind:!0,inside:{rest:e.languages.javascript}}],punctuation:/[.\-!=|]+/};for(var t=[{filter:"atpl",language:"twig"},{filter:"coffee",language:"coffeescript"},"ejs","handlebars","hogan","less","livescript","markdown","mustache","plates",{filter:"sass",language:"scss"},"stylus","swig"],n={},a=0,i=t.length;i>a;a++){var r=t[a];r="string"==typeof r?{filter:r,language:r}:r,e.languages[r.language]&&(n["filter-"+r.filter]={pattern:RegExp("(^([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+".replace("{{filter_name}}",r.filter),"m"),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},rest:e.languages[r.language]}})}e.languages.insertBefore("pug","filter",n)}(n),function(e){e.languages.puppet={heredoc:[{pattern:/(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r))*?[ \t]*\|?[ \t]*-?[ \t]*\2/,lookbehind:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r))*?[ \t]*\|?[ \t]*-?[ \t]*\2/,lookbehind:!0,greedy:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,alias:"string",inside:{punctuation:{pattern:/(\().+?(?=\))/,lookbehind:!0}}}],"multiline-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,greedy:!0,alias:"comment"},regex:{pattern:/((?:\bnode\s+|[~=\(\[\{,]\s*|[=+]>\s*|^\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,lookbehind:!0,greedy:!0,inside:{"extended-regex":{pattern:/^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,inside:{comment:/#.*/}}}},comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{"double-quoted":{pattern:/^"[\s\S]*"$/,inside:{}}}},variable:{pattern:/\$(?:::)?\w+(?:::\w+)*/,inside:{punctuation:/::/}},"attr-name":/(?:\w+|\*)(?=\s*=>)/,function:[{pattern:/(\.)(?!\d)\w+/,lookbehind:!0},/\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/],number:/\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,boolean:/\b(?:true|false)\b/,keyword:/\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,datatype:{pattern:/\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,alias:"symbol"},operator:/=[=~>]?|![=~]?|<(?:<\|?|[=~|-])?|>[>=]?|->?|~>|\|>?>?|[*\/%+?]|\b(?:and|in|or)\b/,punctuation:/[\[\]{}().,;]|:+/};var t=[{pattern:/(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,lookbehind:!0,inside:{"short-variable":{pattern:/(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}},delimiter:{pattern:/^\$/,alias:"variable"},rest:e.languages.puppet}},{pattern:/(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}}];e.languages.puppet.heredoc[0].inside.interpolation=t,e.languages.puppet.string.inside["double-quoted"].inside.interpolation=t}(n),function(e){e.languages.pure={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0},/#!.+/],"inline-lang":{pattern:/%<[\s\S]+?%>/,greedy:!0,inside:{lang:{pattern:/(^%< *)-\*-.+?-\*-/,lookbehind:!0,alias:"comment"},delimiter:{pattern:/^%<.*|%>$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},number:{pattern:/((?:\.\.)?)(?:\b(?:inf|nan)\b|\b0x[\da-f]+|(?:\b(?:0b)?\d+(?:\.\d)?|\B\.\d)\d*(?:e[+-]?\d+)?L?)/i,lookbehind:!0},keyword:/\b(?:ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|NULL|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\b/,function:/\b(?:abs|add_(?:(?:fundef|interface|macdef|typedef)(?:_at)?|addr|constdef|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_(?:matrix|pointer)|byte_c?string(?:_pointer)?|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|short|sentry|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\b/,special:{pattern:/\b__[a-z]+__\b/i,alias:"builtin"},operator:/(?=\b_|[^_])[!"#$%&'*+,\-.\/:<=>?@\\^_`|~\u00a1-\u00bf\u00d7-\u00f7\u20d0-\u2bff]+|\b(?:and|div|mod|not|or)\b/,punctuation:/[(){}\[\];,|]/};["c",{lang:"c++",alias:"cpp"},"fortran","ats","dsp"].forEach(function(t){var n=t;if("string"!=typeof t&&(n=t.alias,t=t.lang),e.languages[n]){var a={};a["inline-lang-"+n]={pattern:RegExp("%< *-\\*- *{lang}\\d* *-\\*-[\\s\\S]+?%>".replace("{lang}",t.replace(/([.+*?\/\\(){}\[\]])/g,"\\$1")),"i"),inside:e.util.clone(e.languages.pure["inline-lang"].inside)},a["inline-lang-"+n].inside.rest=e.util.clone(e.languages[n]),e.languages.insertBefore("pure","inline-lang",a)}}),e.languages.c&&(e.languages.pure["inline-lang"].inside.rest=e.util.clone(e.languages.c))}(n),n.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"triple-quoted-string":{pattern:/("""|''')[\s\S]+?\1/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},keyword:/\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,punctuation:/[{}[\];(),.:]/},n.languages.q={string:/"(?:\\.|[^"\\\r\n])*"/,comment:[{pattern:/([\t )\]}])\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|\r?\n|\r)\/[\t ]*(?:(?:\r?\n|\r)(?:.*(?:\r?\n|\r))*?(?:\\(?=[\t ]*(?:\r?\n|\r))|$)|\S.*)/,lookbehind:!0,greedy:!0},{pattern:/^\\[\t ]*(?:\r?\n|\r)[\s\S]+/m,greedy:!0},{pattern:/^#!.+/m,greedy:!0}],symbol:/`(?::\S+|[\w.]*)/,datetime:{pattern:/0N[mdzuvt]|0W[dtz]|\d{4}\.\d\d(?:m|\.\d\d(?:T(?:\d\d(?::\d\d(?::\d\d(?:[.:]\d\d\d)?)?)?)?)?[dz]?)|\d\d:\d\d(?::\d\d(?:[.:]\d\d\d)?)?[uvt]?/,alias:"number"},number:/\b(?![01]:)(?:0[wn]|0W[hj]?|0N[hje]?|0x[\da-fA-F]+|\d+\.?\d*(?:e[+-]?\d+)?[hjfeb]?)/,keyword:/\\\w+\b|\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\b/,adverb:{pattern:/['\/\\]:?|\beach\b/,alias:"function"},verb:{pattern:/(?:\B\.\B|\b[01]:|<[=>]?|>=?|[:+\-*%,!?_~=|$&#@^]):?/,alias:"operator"},punctuation:/[(){}\[\];.]/},n.languages.qore=n.languages.extend("clike",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/,lookbehind:!0},string:{pattern:/("|')(\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},variable:/\$(?!\d)\w+\b/,keyword:/\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,number:/\b(?:0b[01]+|0x[\da-f]*\.?[\da-fp\-]+|\d*\.?\d+e?\d*[df]|\d*\.?\d+)\b/i,boolean:/\b(?:true|false)\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,lookbehind:!0},function:/\$?\b(?!\d)\w+(?=\()/}),n.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:"operator"},boolean:/\b(?:TRUE|FALSE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:NaN|Inf)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+\.?\d*|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\b/,operator:/->?>?|<(?:=|=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/},function(e){var t=e.util.clone(e.languages.javascript);e.languages.jsx=e.languages.extend("markup",t),e.languages.jsx.tag.pattern=/<\/?(?:[\w.:-]+\s*(?:\s+(?:[\w.:-]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s{'">=]+|\{(?:\{(?:\{[^}]*\}|[^{}])*\}|[^{}])+\}))?|\{\.{3}[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\}))*\s*\/?)?>/i,e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/i,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">]+)/i,e.languages.insertBefore("inside","attr-name",{spread:{pattern:/\{\.{3}[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\}/,inside:{punctuation:/\.{3}|[{}.]/,"attr-value":/\w+/}}},e.languages.jsx.tag),e.languages.insertBefore("inside","attr-value",{script:{pattern:/=(\{(?:\{(?:\{[^}]*\}|[^}])*\}|[^}])+\})/i,inside:{"script-punctuation":{pattern:/^=(?={)/,alias:"punctuation"},rest:e.languages.jsx},alias:"language-javascript"}},e.languages.jsx.tag);var n=function e(t){return t?"string"==typeof t?t:"string"==typeof t.content?t.content:t.content.map(e).join(""):""},a=function t(a){for(var i=[],r=0;r0&&i[i.length-1].tagName===n(o.content[0].content[1])&&i.pop():"/>"===o.content[o.content.length-1].content||i.push({tagName:n(o.content[0].content[1]),openedBraces:0}):i.length>0&&"punctuation"===o.type&&"{"===o.content?i[i.length-1].openedBraces++:i.length>0&&i[i.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?i[i.length-1].openedBraces--:s=!0),(s||"string"==typeof o)&&i.length>0&&0===i[i.length-1].openedBraces){var l=n(o);r0&&("string"==typeof a[r-1]||"plain-text"===a[r-1].type)&&(l=n(a[r-1])+l,a.splice(r-1,1),r--),a[r]=new e.Token("plain-text",l,null,l)}o.content&&"string"!=typeof o.content&&t(o.content)}};e.hooks.add("after-tokenize",function(e){("jsx"===e.language||"tsx"===e.language)&&a(e.tokens)})}(n),n.languages.typescript=n.languages.extend("javascript",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield|module|declare|constructor|namespace|abstract|require|type)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console)\b/}),n.languages.ts=n.languages.typescript,n.languages.renpy={comment:{pattern:/(^|[^\\])#.+/,lookbehind:!0},string:{pattern:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2|(?:^#?(?:(?:[0-9a-fA-F]{2}){3}|(?:[0-9a-fA-F]){3})$)/m,greedy:!0},function:/[a-z_]\w*(?=\()/i,property:/\b(?:insensitive|idle|hover|selected_idle|selected_hover|background|position|alt|xpos|ypos|pos|xanchor|yanchor|anchor|xalign|yalign|align|xcenter|ycenter|xofsset|yoffset|ymaximum|maximum|xmaximum|xminimum|yminimum|minimum|xsize|ysizexysize|xfill|yfill|area|antialias|black_color|bold|caret|color|first_indent|font|size|italic|justify|kerning|language|layout|line_leading|line_overlap_split|line_spacing|min_width|newline_indent|outlines|rest_indent|ruby_style|slow_cps|slow_cps_multiplier|strikethrough|text_align|underline|hyperlink_functions|vertical|hinting|foreground|left_margin|xmargin|top_margin|bottom_margin|ymargin|left_padding|right_padding|xpadding|top_padding|bottom_padding|ypadding|size_group|child|hover_sound|activate_sound|mouse|focus_mask|keyboard_focus|bar_vertical|bar_invert|bar_resizing|left_gutter|right_gutter|top_gutter|bottom_gutter|left_bar|right_bar|top_bar|bottom_bar|thumb|thumb_shadow|thumb_offset|unscrollable|spacing|first_spacing|box_reverse|box_wrap|order_reverse|fit_first|ysize|thumbnail_width|thumbnail_height|help|text_ypos|text_xpos|idle_color|hover_color|selected_idle_color|selected_hover_color|insensitive_color|alpha|insensitive_background|hover_background|zorder|value|width|xadjustment|xanchoraround|xaround|xinitial|xoffset|xzoom|yadjustment|yanchoraround|yaround|yinitial|yzoom|zoom|ground|height|text_style|text_y_fudge|selected_insensitive|has_sound|has_music|has_voice|focus|hovered|image_style|length|minwidth|mousewheel|offset|prefix|radius|range|right_margin|rotate|rotate_pad|developer|screen_width|screen_height|window_title|name|version|windows_icon|default_fullscreen|default_text_cps|default_afm_time|main_menu_music|sample_sound|enter_sound|exit_sound|save_directory|enter_transition|exit_transition|intra_transition|main_game_transition|game_main_transition|end_splash_transition|end_game_transition|after_load_transition|window_show_transition|window_hide_transition|adv_nvl_transition|nvl_adv_transition|enter_yesno_transition|exit_yesno_transition|enter_replay_transition|exit_replay_transition|say_attribute_transition|directory_name|executable_name|include_update|window_icon|modal|google_play_key|google_play_salt|drag_name|drag_handle|draggable|dragged|droppable|dropped|narrator_menu|action|default_afm_enable|version_name|version_tuple|inside|fadeout|fadein|layers|layer_clipping|linear|scrollbars|side_xpos|side_ypos|side_spacing|edgescroll|drag_joined|drag_raise|drop_shadow|drop_shadow_color|subpixel|easein|easeout|time|crop|auto|update|get_installed_packages|can_update|UpdateVersion|Update|overlay_functions|translations|window_left_padding|show_side_image|show_two_window)\b/,tag:/\b(?:label|image|menu|[hv]box|frame|text|imagemap|imagebutton|bar|vbar|screen|textbutton|buttoscreenn|fixed|grid|input|key|mousearea|side|timer|viewport|window|hotspot|hotbar|self|button|drag|draggroup|tag|mm_menu_frame|nvl|block|parallel)\b|\$/,keyword:/\b(?:as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|yield|adjustment|alignaround|allow|angle|around|box_layout|cache|changed|child_size|clicked|clipping|corner1|corner2|default|delay|exclude|scope|slow|slow_abortable|slow_done|sound|style_group|substitute|suffix|transform_anchor|transpose|unhovered|config|theme|mm_root|gm_root|rounded_window|build|disabled_text|disabled|widget_selected|widget_text|widget_hover|widget|updater|behind|call|expression|hide|init|jump|onlayer|python|renpy|scene|set|show|transform|play|queue|stop|pause|define|window|repeat|contains|choice|on|function|event|animation|clockwise|counterclockwise|circles|knot|null|None|random|has|add|use|fade|dissolve|style|store|id|voice|center|left|right|less_rounded|music|movie|clear|persistent|ui)\b/,boolean:/\b(?:[Tt]rue|[Ff]alse)\b/,number:/(?:\b(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*)|\B\.\d+)(?:e[+-]?\d+)?j?/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at)\b/,punctuation:/[{}[\];(),.:]/},n.languages.reason=n.languages.extend("clike",{comment:{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/}),n.languages.insertBefore("reason","class-name",{character:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,alias:"string"},constructor:{pattern:/\b[A-Z]\w*\b(?!\s*\.)/,alias:"variable"},label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete n.languages.reason.function,n.languages.rest={table:[{pattern:/(\s*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1(?:[+|].+)+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/,lookbehind:!0,inside:{punctuation:/\||(?:\+[=-]+)+\+/}},{pattern:/(\s*)(?:=+ +)+=+(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1(?:=+ +)+=+(?=(?:\r?\n|\r){2}|\s*$)/,lookbehind:!0,inside:{punctuation:/[=-]+/}}],"substitution-def":{pattern:/(^\s*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,lookbehind:!0,inside:{substitution:{pattern:/^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/,alias:"attr-value",inside:{punctuation:/^\||\|$/}},directive:{pattern:/( +)[^:]+::/,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}}}},"link-target":[{pattern:/(^\s*\.\. )\[[^\]]+\]/m,lookbehind:!0,alias:"string",inside:{punctuation:/^\[|\]$/}},{pattern:/(^\s*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,lookbehind:!0,alias:"string",inside:{punctuation:/^_|:$/}}],directive:{pattern:/(^\s*\.\. )[^:]+::/m,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}},comment:{pattern:/(^\s*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,lookbehind:!0},title:[{pattern:/^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,inside:{punctuation:/^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}},{pattern:/(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,lookbehind:!0,inside:{punctuation:/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}}],hr:{pattern:/((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,lookbehind:!0,alias:"punctuation"},field:{pattern:/(^\s*):[^:\r\n]+:(?= )/m,lookbehind:!0,alias:"attr-name"},"command-line-option":{pattern:/(^\s*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,lookbehind:!0,alias:"symbol"},"literal-block":{pattern:/::(?:\r?\n|\r){2}([ \t]+).+(?:(?:\r?\n|\r)\1.+)*/,inside:{"literal-block-punctuation":{pattern:/^::/,alias:"punctuation"}}},"quoted-literal-block":{pattern:/::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,inside:{"literal-block-punctuation":{pattern:/^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,alias:"punctuation"}}},"list-bullet":{pattern:/(^\s*)(?:[*+\-ā€¢ā€£āƒ]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,lookbehind:!0,alias:"punctuation"},"doctest-block":{pattern:/(^\s*)>>> .+(?:(?:\r?\n|\r).+)*/m,lookbehind:!0,inside:{punctuation:/^>>>/}},inline:[{pattern:/(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s).*?[^\s]\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m,lookbehind:!0,inside:{bold:{pattern:/(^\*\*).+(?=\*\*$)/,lookbehind:!0},italic:{pattern:/(^\*).+(?=\*$)/,lookbehind:!0},"inline-literal":{pattern:/(^``).+(?=``$)/,lookbehind:!0,alias:"symbol"},role:{pattern:/^:[^:]+:|:[^:]+:$/,alias:"function",inside:{punctuation:/^:|:$/}},"interpreted-text":{pattern:/(^`).+(?=`$)/,lookbehind:!0,alias:"attr-value"},substitution:{pattern:/(^\|).+(?=\|$)/,lookbehind:!0,alias:"attr-value"},punctuation:/\*\*?|``?|\|/}}],link:[{pattern:/\[[^\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/,alias:"string",inside:{punctuation:/^\[|\]_$/}},{pattern:/(?:\b[a-z\d](?:[_.:+]?[a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,alias:"string",inside:{punctuation:/^_?`|`$|`?_?_$/}}],punctuation:{pattern:/(^\s*)(?:\|(?= |$)|(?:---?|—|\.\.|__)(?= )|\.\.$)/m,lookbehind:!0}},n.languages.rip={comment:/#.*/,keyword:/(?:=>|->)|\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\b/,builtin:/@|\bSystem\b/,boolean:/\b(?:true|false)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,character:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,regex:{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},number:/[+-]?(?:(?:\d+\.\d+)|(?:\d+))/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/},n.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{)|(?:external|import)\b)/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*)[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/},function(e){e.languages.crystal=e.languages.extend("ruby",{keyword:[/\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\b/,{pattern:/(\.\s*)(?:is_a|responds_to)\?/,lookbehind:!0}],number:/\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/}),e.languages.insertBefore("crystal","string",{attribute:{pattern:/@\[.+?\]/,alias:"attr-name",inside:{delimiter:{pattern:/^@\[|\]$/,alias:"tag"},rest:e.languages.crystal}},expansion:[{pattern:/\{\{.+?\}\}/,inside:{delimiter:{pattern:/^\{\{|\}\}$/,alias:"tag"},rest:e.languages.crystal}},{pattern:/\{%.+?%\}/,inside:{delimiter:{pattern:/^\{%|%\}$/,alias:"tag"},rest:e.languages.crystal}}]})}(n),n.languages.rust={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:[{pattern:/b?r(#*)"(?:\\.|(?!"\1)[^\\\r\n])*"\1/,greedy:!0},{pattern:/b?"(?:\\.|[^\\\r\n"])*"/,greedy:!0}],char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u{(?:[\da-fA-F]_*){1,6}|.)|[^\\\r\n\t'])'/,alias:"string"},"lifetime-annotation":{pattern:/'[^\s>']+/,alias:"symbol"},keyword:/\b(?:abstract|alignof|as|be|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|match|mod|move|mut|offsetof|once|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b/,attribute:{pattern:/#!?\[.+?\]/,greedy:!0,alias:"attr-name"},function:[/\w+(?=\s*\()/,/\w+!(?=\s*\(|\[)/],"macro-rules":{pattern:/\w+!/,alias:"function"},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64)?|f32|f64))?\b/,"closure-params":{pattern:/\|[^|]*\|(?=\s*[{-])/,inside:{punctuation:/[|:,]/,operator:/[&*]/}},punctuation:/[{}[\];(),:]|\.+|->/,operator:/[-+*\/%!^]=?|=[=>]?|@|&[&=]?|\|[|=]?|<>?=?/},n.languages.sas={datalines:{pattern:/^\s*(?:(?:data)?lines|cards);[\s\S]+?(?:\r?\n|\r);/im,alias:"string",inside:{keyword:{pattern:/^(\s*)(?:(?:data)?lines|cards)/i,lookbehind:!0},punctuation:/;/}},comment:[{pattern:/(^\s*|;\s*)\*.*;/m,lookbehind:!0},/\/\*[\s\S]+?\*\//],datetime:{pattern:/'[^']+'(?:dt?|t)\b/i,alias:"number"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},keyword:/\b(?:data|else|format|if|input|proc\s\w+|quit|run|then)\b/i,number:/\b(?:[\da-f]+x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,operator:/\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?|\b(?:eq|ne|gt|lt|ge|le|in|not)\b/i,punctuation:/[$%@.(){}\[\];,\\]/},function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t]+.+)*/m,lookbehind:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,inside:{atrule:/(?:@[\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var t=/\$[-\w]+|#\{\$[-\w]+\}/,n=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,{pattern:/(\s+)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,inside:{punctuation:/:/,variable:t,operator:n}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s]+.*)/m,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:t,operator:n,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,delete e.languages.sass.selector,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/([ \t]*)\S(?:,?[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,?[^,\r\n]+)*)*/,lookbehind:!0}})}(n),n.languages.scss=n.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-]+(?:\([^()]+\)|[^(])*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)*url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()]|&|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}]+[:{][^}]+))/m,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),n.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),n.languages.scss.property={pattern:/(?:[\w-]|\$[-\w]+|#\{\$[-\w]+\})+(?=\s*:)/i,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}},n.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),n.languages.insertBefore("scss","function",{placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:true|false)\b/,null:/\bnull\b/,operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),n.languages.scss.atrule.inside.rest=n.languages.scss,n.languages.scala=n.languages.extend("java",{keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,number:/\b0x[\da-f]*\.?[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e\d+)?[dfl]?/i,symbol:/'[^\d\s\\]\w*/}),delete n.languages.scala["class-name"],delete n.languages.scala.function,n.languages.scheme={comment:/;.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'[^('\s]*/,greedy:!0},keyword:{pattern:/(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/,lookbehind:!0},builtin:{pattern:/(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)/,lookbehind:!0},number:{pattern:/(\s|[()])[-+]?\d*\.?\d+(?:\s*[-+]\s*\d*\.?\d+i)?\b/,lookbehind:!0},boolean:/#[tf]/,operator:{pattern:/(\()(?:[-+*%\/]|[<>]=?|=>?)/,lookbehind:!0},function:{pattern:/(\()[^\s()]*(?=[\s)])/,lookbehind:!0},punctuation:/[()]/},n.languages.smalltalk={comment:/"(?:""|[^"])+"/,string:/'(?:''|[^'])+'/,symbol:/#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,"block-arguments":{pattern:/(\[\s*):[^\[|]*\|/,lookbehind:!0,inside:{variable:/:[\da-z]+/i,punctuation:/\|/}},"temporary-variables":{pattern:/\|[^|]+\|/,inside:{variable:/[\da-z]+/i,punctuation:/\|/}},keyword:/\b(?:nil|true|false|self|super|new)\b/,character:{pattern:/\$./,alias:"string"},number:[/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,/\b\d+(?:\.\d+)?(?:e-?\d+)?/],operator:/[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,punctuation:/[.;:?\[\](){}]/},function(e){e.languages.smarty={comment:/\{\*[\s\S]*?\*\}/,delimiter:{pattern:/^\{|\}$/i,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][-+]?\d+)?/,variable:[/\$(?!\d)\w+/,/#(?!\d)\w+#/,{pattern:/(\.|->)(?!\d)\w+/,lookbehind:!0},{pattern:/(\[)(?!\d)\w+(?=\])/,lookbehind:!0}],function:[{pattern:/(\|\s*)@?(?!\d)\w+/,lookbehind:!0},/^\/?(?!\d)\w+/,/(?!\d)\w+(?=\()/],"attr-name":{pattern:/\w+\s*=\s*(?:(?!\d)\w+)?/,inside:{variable:{pattern:/(=\s*)(?!\d)\w+/,lookbehind:!0},operator:/=/}},punctuation:[/[\[\]().,:`]|->/],operator:[/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,/\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\b/],keyword:/\b(?:false|off|on|no|true|yes)\b/},e.languages.insertBefore("smarty","tag",{"smarty-comment":{pattern:/\{\*[\s\S]*?\*\}/,alias:["smarty","comment"]}}),e.hooks.add("before-tokenize",function(t){var n=!1;e.languages["markup-templating"].buildPlaceholders(t,"smarty",/\{\*[\s\S]*?\*\}|\{[\s\S]+?\}/g,function(e){return"{/literal}"===e&&(n=!1),!n&&("{literal}"===e&&(n=!0),!0)})}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"smarty")})}(n),n.languages.plsql=n.languages.extend("sql",{comment:[/\/\*[\s\S]*?\*\//,/--.*/]}),"Array"!==n.util.type(n.languages.plsql.keyword)&&(n.languages.plsql.keyword=[n.languages.plsql.keyword]),n.languages.plsql.keyword.unshift(/\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\b/i),"Array"!==n.util.type(n.languages.plsql.operator)&&(n.languages.plsql.operator=[n.languages.plsql.operator]),n.languages.plsql.operator.unshift(/:=/),function(e){var t=/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,n=/\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-F]+\b/;e.languages.soy={comment:[/\/\*[\s\S]*?\*\//,{pattern:/(\s)\/\/.*/,lookbehind:!0,greedy:!0}],"command-arg":{pattern:/({+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/,lookbehind:!0,alias:"string",inside:{punctuation:/\./}},parameter:{pattern:/({+\/?\s*@?param\??\s+)\.?[\w.]+/,lookbehind:!0,alias:"variable"},keyword:[{pattern:/({+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/,lookbehind:!0},/\b(?:any|as|attributes|bool|css|float|in|int|js|html|list|map|null|number|string|uri)\b/],delimiter:{pattern:/^{+\/?|\/?}+$/,alias:"punctuation"},property:/\w+(?==)/,variable:{pattern:/\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+]))*/,inside:{string:{pattern:t,greedy:!0},number:n,punctuation:/[\[\].?]/}},string:{pattern:t,greedy:!0},function:[/\w+(?=\()/,{pattern:/(\|[^\S\r\n]*)\w+/,lookbehind:!0}],boolean:/\b(?:true|false)\b/,number:n,operator:/\?:?|<=?|>=?|==?|!=|[+*\/%-]|\b(?:and|not|or)\b/,punctuation:/[{}()\[\]|.,:]/},e.hooks.add("before-tokenize",function(t){var n=!1;e.languages["markup-templating"].buildPlaceholders(t,"soy",/{{.+?}}|{.+?}|\s\/\/.*|\/\*[\s\S]*?\*\//g,function(e){return"{/literal}"===e&&(n=!1),!n&&("{literal}"===e&&(n=!0),!0)})}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"soy")})}(n),function(e){var t={url:/url\((["']?).*?\1\)/i,string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:if|else|for|return|unless)(?=\s+|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,number:/\b\d+(?:\.\d+)?%?/,boolean:/\b(?:true|false)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.+|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],punctuation:/[{}()\[\];:,]/};t.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^{|}$/,alias:"punctuation"},rest:t}},t.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:t}},e.languages.stylus={comment:{pattern:/(^|[^\\])(\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},"atrule-declaration":{pattern:/(^\s*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:t}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:(?:\{[^}]*\}|.+)|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:t}},statement:{pattern:/(^[ \t]*)(?:if|else|for|return|unless)[ \t]+.+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:t}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)[^{\r\n]*(?:;|[^{\r\n,](?=$)(?!(\r?\n|\r)(?:\{|\2[ \t]+)))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:t.interpolation}},rest:t}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t]+)))/m,lookbehind:!0,inside:{interpolation:t.interpolation,punctuation:/[{},]/}},func:t.func,string:t.string,interpolation:t.interpolation,punctuation:/[{}()\[\];:.]/}}(n),n.languages.swift=n.languages.extend("clike",{string:{pattern:/("|')(\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/\\\((?:[^()]|\([^)]+\))+\)/,inside:{delimiter:{pattern:/^\\\(|\)$/,alias:"variable"}}}}},keyword:/\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,constant:/\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,atrule:/@\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,builtin:/\b(?:[A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/}),n.languages.swift.string.inside.interpolation.inside.rest=n.languages.swift,n.languages.yaml={scalar:{pattern:/([\-:]\s*(?:![^\s]+)?[ \t]*[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)[^\r\n]+(?:\2[^\r\n]+)*)/,lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:/(\s*(?:^|[:\-,[{\r\n?])[ \t]*(?:![^\s]+)?[ \t]*)[^\r\n{[\]},#\s]+?(?=\s*:\s)/,lookbehind:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?)?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?)(?=[ \t]*(?:$|,|]|}))/m,lookbehind:!0,alias:"number"},boolean:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:true|false)[ \t]*(?=$|,|]|})/im,lookbehind:!0,alias:"important"},null:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:null|~)[ \t]*(?=$|,|]|})/im,lookbehind:!0,alias:"important"},string:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)("|')(?:(?!\2)[^\\\r\n]|\\.)*\2(?=[ \t]*(?:$|,|]|}))/m,lookbehind:!0,greedy:!0},number:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+\.?\d*|\.?\d+)(?:e[+-]?\d+)?|\.inf|\.nan)[ \t]*(?=$|,|]|})/im,lookbehind:!0},tag:/![^\s]+/,important:/[&*][\w]+/,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./},n.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:{pattern:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,greedy:!0},variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/,lookbehind:!0},{pattern:/(\$){[^}]+}/,lookbehind:!0},{pattern:/(^\s*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/m,lookbehind:!0}],function:{pattern:/(^\s*proc[ \t]+)[^\s]+/m,lookbehind:!0},builtin:[{pattern:/(^\s*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\b/m,lookbehind:!0},/\b(?:elseif|else)\b/],scope:{pattern:/(^\s*)(?:global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^\s*|\[)(?:after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|ne|in|ni)\b/,punctuation:/[{}()\[\]]/},function(e){var t="(?:\\([^|)]+\\)|\\[[^\\]]+\\]|\\{[^}]+\\})+",n={css:{pattern:/\{[^}]+\}/,inside:{rest:e.languages.css}},"class-id":{pattern:/(\()[^)]+(?=\))/,lookbehind:!0,alias:"attr-value"},lang:{pattern:/(\[)[^\]]+(?=\])/,lookbehind:!0,alias:"attr-value"},punctuation:/[\\\/]\d+|\S/};e.languages.textile=e.languages.extend("markup",{phrase:{pattern:/(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,lookbehind:!0,inside:{"block-tag":{pattern:RegExp("^[a-z]\\w*(?:"+t+"|[<>=()])*\\."),inside:{modifier:{pattern:RegExp("(^[a-z]\\w*)(?:"+t+"|[<>=()])+(?=\\.)"),lookbehind:!0,inside:n},tag:/^[a-z]\w*/,punctuation:/\.$/}},list:{pattern:RegExp("^[*#]+(?:"+t+")?\\s+.+","m"),inside:{modifier:{pattern:RegExp("(^[*#]+)"+t),lookbehind:!0,inside:n},punctuation:/^[*#]+/}},table:{pattern:RegExp("^(?:(?:"+t+"|[<>=()^~])+\\.\\s*)?(?:\\|(?:(?:"+t+"|[<>=()^~_]|[\\\\/]\\d+)+\\.)?[^|]*)+\\|","m"),inside:{modifier:{pattern:RegExp("(^|\\|(?:\\r?\\n|\\r)?)(?:"+t+"|[<>=()^~_]|[\\\\/]\\d+)+(?=\\.)"),lookbehind:!0,inside:n},punctuation:/\||^\./}},inline:{pattern:RegExp("(\\*\\*|__|\\?\\?|[*_%@+\\-^~])(?:"+t+")?.+?\\1"),inside:{bold:{pattern:RegExp("(^(\\*\\*?)(?:"+t+")?).+?(?=\\2)"),lookbehind:!0},italic:{pattern:RegExp("(^(__?)(?:"+t+")?).+?(?=\\2)"),lookbehind:!0},cite:{pattern:RegExp("(^\\?\\?(?:"+t+")?).+?(?=\\?\\?)"),lookbehind:!0,alias:"string"},code:{pattern:RegExp("(^@(?:"+t+")?).+?(?=@)"),lookbehind:!0,alias:"keyword"},inserted:{pattern:RegExp("(^\\+(?:"+t+")?).+?(?=\\+)"),lookbehind:!0},deleted:{pattern:RegExp("(^-(?:"+t+")?).+?(?=-)"),lookbehind:!0},span:{pattern:RegExp("(^%(?:"+t+")?).+?(?=%)"),lookbehind:!0},modifier:{pattern:RegExp("(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])"+t),lookbehind:!0,inside:n},punctuation:/[*_%?@+\-^~]+/}},"link-ref":{pattern:/^\[[^\]]+\]\S+$/m,inside:{string:{pattern:/(\[)[^\]]+(?=\])/,lookbehind:!0},url:{pattern:/(\])\S+$/,lookbehind:!0},punctuation:/[\[\]]/}},link:{pattern:RegExp('"(?:'+t+')?[^"]+":.+?(?=[^\\w/]?(?:\\s|$))'),inside:{text:{pattern:RegExp('(^"(?:'+t+')?)[^"]+(?=")'),lookbehind:!0},modifier:{pattern:RegExp('(^")'+t),lookbehind:!0,inside:n},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[":]/}},image:{pattern:RegExp("!(?:"+t+"|[<>=()])*[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?"),inside:{source:{pattern:RegExp("(^!(?:"+t+"|[<>=()])*)[^!\\s()]+(?:\\([^)]+\\))?(?=!)"),lookbehind:!0,alias:"url"},modifier:{pattern:RegExp("(^!)(?:"+t+"|[<>=()])+"),lookbehind:!0,inside:n},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\b\[\d+\]/,alias:"comment",inside:{punctuation:/\[|\]/}},acronym:{pattern:/\b[A-Z\d]+\([^)]+\)/,inside:{comment:{pattern:/(\()[^)]+(?=\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\b\((?:TM|R|C)\)/,alias:"comment",inside:{punctuation:/[()]/}}}}});var a={inline:e.languages.textile.phrase.inside.inline,link:e.languages.textile.phrase.inside.link,image:e.languages.textile.phrase.inside.image,footnote:e.languages.textile.phrase.inside.footnote,acronym:e.languages.textile.phrase.inside.acronym,mark:e.languages.textile.phrase.inside.mark};e.languages.textile.tag.pattern=/<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,e.languages.textile.phrase.inside.inline.inside.bold.inside=a,e.languages.textile.phrase.inside.inline.inside.italic.inside=a,e.languages.textile.phrase.inside.inline.inside.inserted.inside=a,e.languages.textile.phrase.inside.inline.inside.deleted.inside=a,e.languages.textile.phrase.inside.inline.inside.span.inside=a,e.languages.textile.phrase.inside.table.inside.inline=a.inline,e.languages.textile.phrase.inside.table.inside.link=a.link,e.languages.textile.phrase.inside.table.inside.image=a.image,e.languages.textile.phrase.inside.table.inside.footnote=a.footnote,e.languages.textile.phrase.inside.table.inside.acronym=a.acronym,e.languages.textile.phrase.inside.table.inside.mark=a.mark}(n),function(e){e.languages.tt2=e.languages.extend("clike",{comment:{pattern:/#.*|\[%#[\s\S]*?%\]/,lookbehind:!0},keyword:/\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|TAGS|THROW|TRY|SWITCH|UNLESS|USE|WHILE|WRAPPER)\b/,punctuation:/[[\]{},()]/}),delete e.languages.tt2.operator,delete e.languages.tt2.variable,e.languages.insertBefore("tt2","number",{operator:/=[>=]?|!=?|<=?|>=?|&&|\|\|?|\b(?:and|or|not)\b/,variable:{pattern:/[a-z]\w*(?:\s*\.\s*(?:\d+|\$?[a-z]\w*))*/i}}),delete e.languages.tt2.delimiter,e.languages.insertBefore("tt2","keyword",{delimiter:{pattern:/^(?:\[%|%%)-?|-?%]$/,alias:"punctuation"}}),e.languages.insertBefore("tt2","string",{"single-quoted-string":{pattern:/'[^\\']*(?:\\[\s\S][^\\']*)*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"[^\\"]*(?:\\[\s\S][^\\"]*)*"/,greedy:!0,alias:"string",inside:{variable:{pattern:/\$(?:[a-z]\w*(?:\.(?:\d+|\$?[a-z]\w*))*)/i}}}}),delete e.languages.tt2.string,e.hooks.add("before-tokenize",function(t){e.languages["markup-templating"].buildPlaceholders(t,"tt2",/\[%[\s\S]+?%\]/g)}),e.hooks.add("after-tokenize",function(t){e.languages["markup-templating"].tokenizePlaceholders(t,"tt2")})}(n),n.languages.twig={comment:/\{#[\s\S]*?#\}/,tag:{pattern:/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/,inside:{ld:{pattern:/^(?:\{\{-?|\{%-?\s*\w+)/,inside:{punctuation:/^(?:\{\{|\{%)-?/,keyword:/\w+/}},rd:{pattern:/-?(?:%\}|\}\})$/,inside:{punctuation:/.*/}},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:true|false|null)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-xor|b-or|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],property:/\b[a-zA-Z_]\w*\b/,punctuation:/[()\[\]{}:.,]/}},other:{pattern:/\S(?:[\s\S]*\S)?/,inside:n.languages.markup}};var s=n.util.clone(n.languages.typescript);n.languages.tsx=n.languages.extend("jsx",s),n.languages.vbnet=n.languages.extend("basic",{keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDEC|CDBL|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEFAULT|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LINE INPUT|LET|LIB|LIKE|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPERATOR|OPEN|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHORT|SINGLE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SYNCLOCK|SWAP|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0}]}),function(e){e.languages.velocity=e.languages.extend("markup",{});var t={variable:{pattern:/(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+])*|{[^}]+})/i,lookbehind:!0,inside:{}},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},number:/\b\d+\b/,boolean:/\b(?:true|false)\b/,operator:/[=!<>]=?|[+*\/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,punctuation:/[(){}[\]:,.]/};t.variable.inside={string:t.string,function:{pattern:/([^\w-])[a-z][\w-]*(?=\()/,lookbehind:!0},number:t.number,boolean:t.boolean,punctuation:t.punctuation},e.languages.insertBefore("velocity","comment",{unparsed:{pattern:/(^|[^\\])#\[\[[\s\S]*?]]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\[\[|]]#$/}},"velocity-comment":[{pattern:/(^|[^\\])#\*[\s\S]*?\*#/,lookbehind:!0,greedy:!0,alias:"comment"},{pattern:/(^|[^\\])##.*/,lookbehind:!0,greedy:!0,alias:"comment"}],directive:{pattern:/(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|{[a-z][\w-]*})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\w-]*|{[a-z][\w-]*})|\bin\b/,inside:{punctuation:/[{}]/}},rest:t}},variable:t.variable}),e.languages.velocity.tag.inside["attr-value"].inside.rest=e.languages.velocity}(n),n.languages.verilog={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},property:/\B\$\w+\b/,constant:/\B`\w+\b/,function:/\w+(?=\()/,keyword:/\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|class|case|casex|casez|cell|chandle|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endspecify|endsequence|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,important:/\b(?:always_latch|always_comb|always_ff|always)\b ?@?/,number:/\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b\d*[._]?\d+(?:e[-+]?\d+)?/i,operator:/[-+{}^~%*\/?=!<>&|]+/,punctuation:/[[\];(),.:]/},n.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,constant:/\b(?:use|library)\b/i,keyword:/\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,boolean:/\b(?:true|false)\b/i,function:/\w+(?=\()/,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*\/&=]|\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\b/i,punctuation:/[{}[\];(),.:]/},n.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\w+(?=\()/,keyword:/\b(?:ab|abbreviate|abc|abclear|abo|aboveleft|al|all|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|ar|args|argu|argument|as|ascii|bad|badd|ba|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|br|brewind|bro|browse|bufdo|b|buffer|buffers|bun|bunload|bw|bwipeout|ca|cabbrev|cabc|cabclear|caddb|caddbuffer|cad|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cgetb|cgetbuffer|cgete|cgetexpr|cg|cgetfile|c|change|changes|chd|chdir|che|checkpath|checkt|checktime|cla|clast|cl|clist|clo|close|cmapc|cmapclear|cnew|cnewer|cn|cnext|cN|cNext|cnf|cnfile|cNfcNfile|cnorea|cnoreabbrev|col|colder|colo|colorscheme|comc|comclear|comp|compiler|conf|confirm|con|continue|cope|copen|co|copy|cpf|cpfile|cp|cprevious|cq|cquit|cr|crewind|cuna|cunabbrev|cu|cunmap|cw|cwindow|debugg|debuggreedy|delc|delcommand|d|delete|delf|delfunction|delm|delmarks|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|di|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|earlier|echoe|echoerr|echom|echomsg|echon|e|edit|el|else|elsei|elseif|em|emenu|endfo|endfor|endf|endfunction|endfun|en|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fina|finally|fin|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|folddoc|folddoclosed|foldd|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|ha|hardcopy|h|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iuna|iunabbrev|iu|iunmap|j|join|ju|jumps|k|keepalt|keepj|keepjumps|kee|keepmarks|laddb|laddbuffer|lad|laddexpr|laddf|laddfile|lan|language|la|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|let|left|lefta|leftabove|lex|lexpr|lf|lfile|lfir|lfirst|lgetb|lgetbuffer|lgete|lgetexpr|lg|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|l|list|ll|lla|llast|lli|llist|lmak|lmake|lm|lmap|lmapc|lmapclear|lnew|lnewer|lne|lnext|lN|lNext|lnf|lnfile|lNf|lNfile|ln|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lpf|lpfile|lp|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|mak|make|ma|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkvie|mkview|mkv|mkvimrc|mod|mode|m|move|mzf|mzfile|mz|mzscheme|nbkey|new|n|next|N|Next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|omapc|omapclear|on|only|o|open|opt|options|ou|ounmap|pc|pclose|ped|pedit|pe|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|p|print|P|Print|profd|profdel|prof|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|pyf|pyfile|py|python|qa|qall|q|quit|quita|quitall|r|read|rec|recover|redi|redir|red|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|rub|ruby|rubyd|rubydo|rubyf|rubyfile|ru|runtime|rv|rviminfo|sal|sall|san|sandbox|sa|sargument|sav|saveas|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sb|sbuffer|scripte|scriptencoding|scrip|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sla|slast|sl|sleep|sm|smagic|sm|smap|smapc|smapclear|sme|smenu|sn|snext|sN|sNext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|sor|sort|so|source|spelld|spelldump|spe|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|sp|split|spr|sprevious|sre|srewind|sta|stag|startg|startgreplace|star|startinsert|startr|startreplace|stj|stjump|st|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tab|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabnew|tabn|tabnext|tabN|tabNext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|ta|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tm|tmenu|tn|tnext|tN|tNext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tu|tunmenu|una|unabbreviate|u|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|verb|verbose|ve|version|vert|vertical|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|vi|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|wa|wall|wh|while|winc|wincmd|windo|winp|winpos|win|winsize|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|w|write|ws|wsverb|wv|wviminfo|X|xa|xall|x|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|XMLent|XMLns|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:autocmd|acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|t_AB|t_AF|t_al|t_AL|t_bc|t_cd|t_ce|t_Ce|t_cl|t_cm|t_Co|t_cs|t_Cs|t_CS|t_CV|t_da|t_db|t_dl|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_fs|t_IE|t_IS|t_k1|t_K1|t_k2|t_k3|t_K3|t_k4|t_K4|t_k5|t_K5|t_k6|t_K6|t_k7|t_K7|t_k8|t_K8|t_k9|t_K9|t_KA|t_kb|t_kB|t_KB|t_KC|t_kd|t_kD|t_KD|t_ke|t_KE|t_KF|t_KG|t_kh|t_KH|t_kI|t_KI|t_KJ|t_KK|t_kl|t_KL|t_kN|t_kP|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_RI|t_RV|t_Sb|t_se|t_Sf|t_SI|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_WP|t_WS|t_xs|t_ZH|t_ZR)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/},n.languages["visual-basic"]={comment:{pattern:/(?:['ā€˜ā€™]|REM\b).*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:[^\S\r\n]_[^\S\r\n]*(?:\r\n?|\n)|.)+/i,alias:"comment",greedy:!0},string:{pattern:/["ā€œā€](?:["ā€œā€]{2}|[^"ā€œā€])*["ā€œā€]C?/i,greedy:!0},date:{pattern:/#[^\S\r\n]*(?:\d+([\/-])\d+\1\d+(?:[^\S\r\n]+(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))?|(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))[^\S\r\n]*#/i,alias:"builtin"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:U?[ILS]|[FRD])?/i,boolean:/\b(?:True|False|Nothing)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|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|Try|TryCast|TypeOf|U(?:Integer|Long|Short)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:[/[+\-*\/\\^<=>&#@$%!]/,{pattern:/([^\S\r\n])_(?=[^\S\r\n]*[\r\n])/,lookbehind:!0}],punctuation:/[{}().,:?]/},n.languages.vb=n.languages["visual-basic"],n.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-.\/:<=>?@\\^_`|~]+/i,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/},n.languages.wiki=n.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+).+?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:RFC|PMID) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:n.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),n.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[\s\S]*?>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[\s\S]*?>|<\/(?:nowiki|pre|source)>/i,inside:n.languages.markup.tag.inside}}}}),function(e){e.languages.xeora=e.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:\|?(?:[-#.^+*~]*(?:[\w+][^$]*)|=(?:[\S+][^$]*)|@[-#]*(?:\w+.)[\w+.]+)?)*)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:{[-\w.]+\?[-\w.]+(?:,(?:\|?(?:[-#.^+*~]*(?:[\w+][^$]*)|=(?:[\S+][^$]*)|@[-#]*(?:\w+.)[\w+.]+)?)*)?}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+])?:[-\w.]+:{(![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/}:[-\w.]+:{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),e.languages.insertBefore("inside","punctuation",{variable:e.languages.xeora["function-inline"].inside.variable},e.languages.xeora["function-block"]),e.languages.xeoracube=e.languages.xeora}(n),n.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i,inside:{keyword:/^Rem/i}},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+\.?\d*|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],symbol:/#(?:If|Else|ElseIf|Endif|Pragma)\b/i,keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|By(?:Ref|Val)|Break|Call|Case|Catch|Const|Continue|CurrentMethodName|Declare|Dim|Do(?:wnTo)?|Each|Else(?:If)?|End|Exit|Extends|False|Finally|For|Global|If|In|Lib|Loop|Me|Next|Nil|Optional|ParamArray|Raise(?:Event)?|ReDim|Rem|RemoveHandler|Return|Select|Self|Soft|Static|Step|Super|Then|To|True|Try|Ubound|Until|Using|Wend|While)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\b/i,punctuation:/[.,;:()]/},function(e){e.languages.xquery=e.languages.extend("markup",{"xquery-comment":{pattern:/\(:[\s\S]*?:\)/,greedy:!0,alias:"comment"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},extension:{pattern:/\(#.+?#\)/,alias:"symbol"},variable:/\$[\w-:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:"operator"},"keyword-operator":{pattern:/(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,lookbehind:!0},function:/[\w-]+(?::[\w-]+)*(?=\s*\()/,"xquery-element":{pattern:/(element\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"tag"},"xquery-attribute":{pattern:/(attribute\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"attr-name"},builtin:{pattern:/(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|ENTITIES|ENTITY|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|ID|IDREFS?|int|integer|language|long|Name|NCName|negativeInteger|NMTOKENS?|nonNegativeInteger|nonPositiveInteger|normalizedString|NOTATION|positiveInteger|QName|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,lookbehind:!0},number:/\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,operator:[/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],punctuation:/[[\](){},;:\/]/}),e.languages.xquery.tag.pattern=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,e.languages.xquery.tag.inside["attr-value"].pattern=/=(?:("|')(?:\\[\s\S]|{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}|(?!\1)[^\\])*\1|[^\s'">=]+)/i,e.languages.xquery.tag.inside["attr-value"].inside.punctuation=/^="|"$/,e.languages.xquery.tag.inside["attr-value"].inside.expression={pattern:/{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}/,inside:{rest:e.languages.xquery},alias:"language-xquery"};var t=function e(t){return"string"==typeof t?t:"string"==typeof t.content?t.content:t.content.map(e).join("")},n=function n(a){for(var i=[],r=0;r0&&i[i.length-1].tagName===t(o.content[0].content[1])&&i.pop():"/>"===o.content[o.content.length-1].content||i.push({tagName:t(o.content[0].content[1]),openedBraces:0}):!(i.length>0&&"punctuation"===o.type&&"{"===o.content)||a[r+1]&&"punctuation"===a[r+1].type&&"{"===a[r+1].content||a[r-1]&&"plain-text"===a[r-1].type&&"{"===a[r-1].content?i.length>0&&i[i.length-1].openedBraces>0&&"punctuation"===o.type&&"}"===o.content?i[i.length-1].openedBraces--:"comment"!==o.type&&(s=!0):i[i.length-1].openedBraces++),(s||"string"==typeof o)&&i.length>0&&0===i[i.length-1].openedBraces){var l=t(o);r0&&("string"==typeof a[r-1]||"plain-text"===a[r-1].type)&&(l=t(a[r-1])+l,a.splice(r-1,1),r--),a[r]=/^\s+$/.test(l)?l:new e.Token("plain-text",l,null,l)}o.content&&"string"!=typeof o.content&&n(o.content)}};e.hooks.add("after-tokenize",function(e){"xquery"===e.language&&n(e.tokens)})}(n),n.languages.tap={fail:/not ok[^#{\n\r]*/,pass:/ok[^#{\n\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \d+/i,plan:/\d+\.\.\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[^\S\r\n]*)---(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?[^\S\r\n]*\.\.\.$/m,lookbehind:!0,inside:n.languages.yaml,alias:"language-yaml"}},function(){function e(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function t(e,t){return t=" "+t+" ",(" "+e.className+" ").replace(/[\n\t]/g," ").indexOf(t)>-1}function a(e,a,i){for(var o,s=(a="string"==typeof a?a:e.getAttribute("data-line")).replace(/\s+/g,"").split(","),l=+e.getAttribute("data-line-offset")||0,d=(r()?parseInt:parseFloat)(getComputedStyle(e).lineHeight),c=t(e,"line-numbers"),p=0;o=s[p++];){var u=o.split("-"),g=+u[0],m=+u[1]||g,b=e.querySelector('.line-highlight[data-range="'+o+'"]')||document.createElement("div");if(b.setAttribute("aria-hidden","true"),b.setAttribute("data-range",o),b.className=(i||"")+" line-highlight",c&&n.plugins.lineNumbers){var f=n.plugins.lineNumbers.getLine(e,g),E=n.plugins.lineNumbers.getLine(e,m);f&&(b.style.top=f.offsetTop+"px"),E&&(b.style.height=E.offsetTop-f.offsetTop+E.offsetHeight+"px")}else b.setAttribute("data-start",g),m>g&&b.setAttribute("data-end",m),b.style.top=(g-l-1)*d+"px",b.textContent=new Array(m-g+2).join(" \n");c?e.appendChild(b):(e.querySelector("code")||e).appendChild(b)}}function i(){var t=location.hash.slice(1);e(".temporary.line-highlight").forEach(function(e){e.parentNode.removeChild(e)});var n=(t.match(/\.([\d,-]+)$/)||[,""])[1];if(n&&!document.getElementById(t)){var i=t.slice(0,t.lastIndexOf(".")),r=document.getElementById(i);r&&(r.hasAttribute("data-line")||r.setAttribute("data-line",""),a(r,n,"temporary "),document.querySelector(".temporary.line-highlight").scrollIntoView())}}if("undefined"!=typeof self&&self.Prism&&self.document&&document.querySelector){var r=function(){var e;return function(){if(void 0===e){var t=document.createElement("div");t.style.fontSize="13px",t.style.lineHeight="1.5",t.style.padding=0,t.style.border=0,t.innerHTML=" 
 ",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}}(),o=0;n.hooks.add("before-sanity-check",function(t){var n=t.element.parentNode,a=n&&n.getAttribute("data-line");if(n&&a&&/pre/i.test(n.nodeName)){var i=0;e(".line-highlight",n).forEach(function(e){i+=e.textContent.length,e.parentNode.removeChild(e)}),i&&/^( \n)+$/.test(t.code.slice(-i))&&(t.code=t.code.slice(0,-i))}}),n.hooks.add("complete",function e(r){var s=r.element.parentNode,l=s&&s.getAttribute("data-line");if(s&&l&&/pre/i.test(s.nodeName)){clearTimeout(o);var d=n.plugins.lineNumbers,c=r.plugins&&r.plugins.lineNumbers;t(s,"line-numbers")&&d&&!c?n.hooks.add("line-numbers",e):(a(s,l),o=setTimeout(i,1))}}),window.addEventListener("hashchange",i),window.addEventListener("resize",function(){var e=document.querySelectorAll("pre[data-line]");Array.prototype.forEach.call(e,function(e){a(e)})})}}(),"undefined"!=typeof self&&!self.Prism||void 0!==e&&!e.Prism||n.hooks.add("wrap",function(e){"keyword"===e.type&&e.classes.push("keyword-"+e.content)}),function(){function e(e){this.defaults=i({},e)}function t(e){return e.replace(/-(\w)/g,function(e,t){return t.toUpperCase()})}function a(e){for(var t=0,n=0;nt&&(r[s]="\n"+r[s],o=l)}n[i]=r.join("")}return n.join("\n")}},"undefined"!=typeof module&&module.exports&&(module.exports=e),void 0!==n&&(n.plugins.NormalizeWhitespace=new e({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),n.hooks.add("before-sanity-check",function(e){var t=n.plugins.NormalizeWhitespace;if(!e.settings||!1!==e.settings["whitespace-normalization"]){if((!e.element||!e.element.parentNode)&&e.code)return void(e.code=t.normalize(e.code,e.settings));var a=e.element.parentNode,i=/\bno-whitespace-normalization\b/;if(e.code&&a&&"pre"===a.nodeName.toLowerCase()&&!i.test(a.className)&&!i.test(e.element.className)){for(var r=a.childNodes,o="",s="",l=!1,d=0;d=1?this.collection=t:this.collection=[t],this.length=this.collection.length}}hide(){for(const t of this.collection)t.style.display="none"}show(t="block"){for(const e of this.collection)e.style.display=t}addClass(t){for(const e of this.collection)e.classList.add(t)}removeClass(t=null){if(null!==t)for(const e of this.collection)e.classList.remove(t);else for(const e of this.collection)for(;e.classList.length>0;)e.classList.remove(e.classList.item(0))}toggleClass(t){t=t.split(" ");for(const e of this.collection)for(let o=0;o0){if(void 0===t)return this.collection[0].value;this.collection[0].value=t}}focus(){this.length>0&&this.collection[0].focus()}click(t){for(const e of this.collection)e.addEventListener("click",t,!1)}keyup(t){for(const e of this.collection)e.addEventListener("keyup",t,!1)}keydown(t){for(const e of this.collection)e.addEventListener("keydown",t,!1)}submit(t){for(const e of this.collection)e.addEventListener("submit",t,!1)}change(t){for(const e of this.collection)e.addEventListener("change",t,!1)}scroll(t){for(const e of this.collection)e.addEventListener("scroll",t,!1)}on(t,o,i){t=t.split(" ");for(const l of this.collection)for(let n=0;n{t.target&&e(t.target).matches(o)&&i.call(t.target,t)},!1)}filter(e){if(this.length>0)return new t(this.collection[0].querySelector(e))}data(t,e){if(this.length>0){if(void 0===e)return this.collection[0].dataset[t];this.collection[0].dataset[t]=e}}text(t){if(this.length>0){if(void 0===t)return this.collection[0].textContent;this.collection[0].textContent=t}}html(t){if(this.length>0){if(void 0===t)return this.collection[0].innerHTML;this.collection[0].innerHTML=t}}append(t){if(this.length>0)if("string"==typeof t){const e=document.createElement("div");e.innerHTML="string"==typeof t?t.trim():t,this.collection[0].appendChild(e.firstChild)}else this.collection[0].appendChild(t)}prepend(t){if(this.length>0)if("string"==typeof t){const e=document.createElement("div");e.innerHTML="string"==typeof t?t.trim():t,this.collection[0].childNodes.length>0?this.collection[0].insertBefore(e.firstChild,this.collection[0].childNodes[0]):this.collection[0].appendChild(e.firstChild)}else this.collection[0].childNodes.length>0?this.collection[0].insertBefore(t,this.collection[0].childNodes[0]):this.collection[0].appendChild(t)}each(t){for(const e of this.collection)t(e)}get(t){return this.collection[t]}first(){if(this.length>0)return new t(this.collection[0])}last(){if(this.length>0)return new t(this.collection[this.collection.length-1])}isVisible(){for(const t of this.collection)if("none"!=t.display&&t.offsetWidth>0&&t.offsetHeight>0)return!0;return!1}parent(){if(this.collection[0])return new t(this.collection[0].parentElement)}find(e){if(this.collection[0])return new t(this.collection[0].querySelectorAll(e))}offset(){if(this.collection[0]){const t=this.collection[0].getBoundingClientRect();return{top:t.top+document.body.scrollTop,left:t.left+document.body.scrollLeft}}}closest(t){let e=null,o=this;for(;void 0!==o.get(0)&&null===e;){const i=o.find(t);i.length>0&&(e=i),o=o.parent()}return null!==e?e:o}attribute(t,e){if(this.collection[0]){if(void 0!==e)return this.collection[0].setAttribute(t,e);this.collection[0].getAttribute(t)}}hasAttribute(t){if(this.collection[0])return this.collection[0].hasAttribute(t)}after(t){for(const e of this.collection)e.insertAdjacentHTML("afterend",t)}before(t){for(const e of this.collection)e.insertAdjacentHTML("beforebegin",t)}style(t,e){for(let o=0;o{const r=Math.min(1,((new Date).getTime()-l)/e);n[o].style[i]=s+r*(t[i]-s),1==r&&clearInterval(c)},25),this.collection[o].style[i]=s):void 0!==this.collection[o][i]&&(s=this.collection[o][i],c=setInterval(()=>{const r=Math.min(1,((new Date).getTime()-l)/e);n[o][i]=s+r*(t[i]-s),1==r&&clearInterval(c)},25),this.collection[o][i]=s)}}fadeIn(t=400,e){if(this.collection[0]){const o=this.collection[0];o.style.opacity=0;let i=+new Date;const l=()=>{o.style.opacity=+o.style.opacity+(new Date-i)/t,i=+new Date,+o.style.opacity<1?window.requestAnimationFrame&&requestAnimationFrame(l)||setTimeout(l,16):"function"==typeof e&&e()};l()}}fadeOut(t=400,e){if(this.collection[0]){let o=+new Date;const i=this.collection[0],l=()=>{i.style.opacity=+i.style.opacity-(new Date-o)/t,o=+new Date,+i.style.opacity>0?window.requestAnimationFrame&&requestAnimationFrame(l)||setTimeout(l,16):"function"==typeof e&&e()};l()}}matches(t){const e=Element.prototype;return(e.matches||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector||function(){return-1!==[].indexOf.call(document.querySelectorAll(t),this)}).call(this.collection[0],t)}remove(){for(const t of this.collection)t.parentNode.removeChild(t)}replaceWith(t){if(this.collection[0])if("string"==typeof t){const e=document.createElement("div");e.innerHTML=t,this.collection[0].parentElement.replaceChild(e.firstChild,this.collection[0])}else this.collection[0].parentElement.replaceChild(t,this.collection[0])}reset(){this.length>0&&this.collection[0].reset()}property(t,e){if(this.collection[0]){if(void 0===e)return this.collection[0][t];this.collection[0][t]=e}}}function e(e){return void 0!==e?new t(e):t}function o(t){window.addEventListener("load",t)}exports.DOM=t; -},{}],"yWHc":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Request=void 0;class e{static serialize(e){return Object.keys(e).map(t=>encodeURIComponent(t)+"="+encodeURIComponent(e[t])).join("&")}static get(t,s={},o={}){const n=e.serialize(s);return""!==n&&(t=`${t}?${n}`),fetch(t,o)}static post(t,s,o={}){let n;if(void 0!==o.headers){const t=o.headers["Content-Type"];if(void 0!==t)if("multipart/form-data"==t){n=new FormData;for(const e in s)n.append(e,s[e])}else n="application/json"==t?JSON.stringify(s):e.serialize(s)}else n=e.serialize(s);const r=Object.assign({},{method:"POST",headers:{"Content-Type":"application/x-www-form-urlencoded"},body:n},o);return void 0!==r.headers&&"multipart/form-data"===r.headers["Content-Type"]&&delete r.headers["Content-Type"],fetch(t,r)}static put(t,s,o={}){return e.post(t,s,Object.assign({},{method:"PUT"},o))}static delete(t,s,o={}){return e.get(t,s,Object.assign({},{method:"DELETE"},o))}static json(t,s={},o={}){return e.get(t,s,o).then(e=>e.json())}static blob(t,s={},o={}){return e.get(t,s,o).then(e=>e.blob())}}exports.Request=e; -},{}],"MO3i":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FileSystem=void 0;var e=require("./Request");class t{static readRemote(r,s="base64",a={}){return e.Request.blob(r,{},a).then(e=>t.read(e,s))}static read(e,t="text"){return new Promise((r,s)=>{const a=new FileReader;a.onload=(e=>{r(e,e.target.result)}),a.onerror=(e=>{s(e)}),"base64"===t?a.readAsDataURL(e):"buffer"===t?a.readAsArrayBuffer(e):a.readAsText(e,"UTF-8")})}static create(e,t,r="text/plain"){return Promise.resolve(new File([t],e,{type:r}))}static extension(e){return e.split(".").pop()}static isImage(e){return["jpg","jpeg","png","gif","svg","webp","bmp"].indexOf(t.extension(e).toLowerCase())>-1}}exports.FileSystem=t; -},{"./Request":"yWHc"}],"CErr":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Form=void 0;var e=require("./DOM");class a{static fill(a,t){for(const s in t){const r=(0,e.$_)(`form[data-form='${a}'] [name='${s}']`).get(0);if(void 0!==r)switch(r.type){case"file":case"file[]":break;default:r.value=t[s]}}}static values(a){const t={};return(0,e.$_)(`form[data-form='${a}'] [name]`).each(e=>{let a;switch(e.type){case"file[]":a=e.files;break;case"file":a=e.files[0];break;default:a=e.value}null!=a&&(t[e.name]=a)}),t}}exports.Form=a; -},{"./DOM":"d+rf"}],"8/F2":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Platform=void 0;class e{static retina(){return window.devicePixelRatio>=2}static portrait(){return 0===window.orientation||180===window.orientation}static landscape(){return 90===window.orientation||-90===window.orientation}static orientation(){return e.portrait()?"portrait":"landscape"}static electron(){return window&&window.process&&window.process.type}static cordova(){return!!window.cordova}static desktop(e="Any"){let t=!1;switch(e){case"Windows":t=navigator.platform.includes("Win");break;case"macOS":t=navigator.platform.includes("Mac");break;case"Linux":t=navigator.platform.includes("Linux");break;case"FreeBSD":t=navigator.platform.includes("FreeBSD");break;case"webOS":t=navigator.platform.includes("WebTV");break;case"Any":default:t=navigator.platform.includes("Win")||navigator.platform.includes("Mac")||navigator.platform.includes("Linux")||navigator.platform.includes("FreeBSD")||navigator.platform.includes("WebTV")}return t}static mobile(e="Any"){let t=!1;switch(e){case"Android":t=/Android/i.test(navigator.userAgent);break;case"iOS":t=/iPhone|iPad|iPod/i.test(navigator.userAgent);break;case"Opera":t=/Opera Mini/i.test(navigator.userAgent);break;case"Windows":t=/Windows Phone|IEMobile|WPDesktop/i.test(navigator.userAgent);break;case"BlackBerry":t=/BlackBerry|BB10/i.test(navigator.userAgent);break;case"Any":default:t=/Android|iPhone|iPad|iPod|Windows Phone|IEMobile|WPDesktop|BlackBerry|BB10/i.test(navigator.userAgent)}return t}static serviceWorkers(){return"undefined"!=typeof navigator&&"serviceWorker"in navigator&&location.protocol.indexOf("http")>-1}}exports.Platform=e; -},{}],"4C7P":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Preload=void 0;var e=require("./Request");class r{static image(e){return new Promise((r,t)=>{const o=new Image;o.onload=(()=>{r(o)}),o.onerror=(e=>{t(e)}),o.src=e})}static file(r){return e.Request.blob(r)}}exports.Preload=r; -},{"./Request":"yWHc"}],"4LQF":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.LocalStorage=void 0;class e{constructor({name:e="",version:t="",store:s=""}){this.name=e,this.version=t,this.store=s,this.upgrades={},""===this.version?this.numericVersion=0:this.numericVersion=parseInt(t.replace(/\./g,"")),this.id=""!==e&&""!==t&&""!==s?`${this.name}::${this.store}::${this.version}_`:""!==e&&""!==t?`${this.name}::${this.version}_`:""!==e?`${this.name}::_`:""}open(){return"object"!=typeof this.storage||this.storage instanceof Promise?this.storage instanceof Promise?this.storage:(this.storage=new Promise(e=>{let t=[];if(""!==this.version){let e="";""!==this.name&&""!==this.version&&""!==this.store?e=`${this.name}::${this.store}::`:""!==this.name&&""!==this.version&&(e=`${this.name}::`);const s=Object.keys(window.localStorage).filter(t=>0===t.indexOf(e)).map(t=>t.replace(e,"").split("_")[0]).filter(e=>-1===e.indexOf("::")).sort();if(s.length>0){const e=s[0],i=parseInt(e.replace(/\./g,""));if(i{const[t]=e.split("::");return parseInt(t)===i});r>-1&&(t=s.slice(r).filter(e=>{const[t,s]=e.split("::");return parseInt(t)0===e.indexOf(o)).map(e=>e.replace(o,""));for(const e of n){const t=window.localStorage.getItem(`${o}${e}`);window.localStorage.setItem(this.id+e,t),window.localStorage.removeItem(`${o}${e}`)}}}}e({upgrades:t})}).then(({upgrades:e})=>(this.storage=window.localStorage,new Promise(t=>{this._upgrade(e,()=>t(this))}))),this.storage):Promise.resolve(this)}set(e,t){return this.open().then(()=>("object"==typeof t?this.storage.setItem(this.id+e,JSON.stringify(t)):this.storage.setItem(this.id+e,t),Promise.resolve({key:e,value:t})))}update(e,t){return this.get(e).then(s=>("object"==typeof s?("object"==typeof t&&(t=Object.assign({},s,t)),this.storage.setItem(this.id+e,JSON.stringify(t))):this.storage.setItem(this.id+e,t),Promise.resolve({key:e,value:t})))}get(e){return this.open().then(()=>new Promise((t,s)=>{let i=null;i=this.storage.getItem(this.id+e);try{const e=JSON.parse(i);e&&"object"==typeof e&&(i=e)}catch(r){}null!=i?t(i):s()}))}getAll(){return this.keys().then(e=>{const t={},s=[];for(const i of e)s.push(this.get(i).then(e=>{t[i]=e}));return Promise.all(s).then(()=>t)})}contains(e){return this.keys().then(t=>{if(!t.includes(e))return Promise.reject();Promise.resolve()})}upgrade(e,t,s){return this.upgrades[`${parseInt(e.replace(/\./g,""))}::${parseInt(t.replace(/\./g,""))}`]=s,Promise.resolve()}_upgrade(e,t){e.length>0?this.upgrades[e[0]].call(this,this).then(()=>{this._upgrade(e.slice(1),t)}).catch(e=>console.error(e)):t()}rename(e){return this.name!==e?this.keys().then(t=>{const s=this.id;this.name=e,""!==this.name&&""!==this.version&&""!==this.store?this.id=`${this.name}::${this.store}::${this.version}_`:""!==this.name&&""!==this.version?this.id=`${this.name}::${this.version}_`:""!==this.name?this.id=`${this.name}::_`:this.id="";const i=[];for(const e of t)i.push(this.set(e,this.storage.getItem(`${s}${e}`)).then(()=>{this.storage.removeItem(`${s}${e}`)}));return Promise.all(i)}):Promise.reject()}key(e,t=!1){return this.open().then(()=>!0===t?Promise.resolve(this.storage.key(e)):Promise.resolve(this.storage.key(e).replace(this.id,"")))}keys(e=!1){return this.open().then(()=>Promise.resolve(Object.keys(this.storage).filter(e=>0===e.indexOf(this.id)).map(t=>!0===e?t:t.replace(this.id,""))))}remove(e){return this.get(e).then(t=>(this.storage.removeItem(this.id+e),Promise.resolve(t)))}clear(){return this.keys().then(e=>{for(const t of e)this.remove(t);return Promise.resolve()})}}exports.LocalStorage=e; -},{}],"nnqJ":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.SessionStorage=void 0;var e=require("./LocalStorage");class o extends e.LocalStorage{constructor({name:e="",version:o="",store:s=""}){super({name:e,version:o,store:s})}open(){return void 0===this.storage&&(this.storage=window.sessionStorage),Promise.resolve(this)}}exports.SessionStorage=o; -},{"./LocalStorage":"4LQF"}],"wqDi":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.IndexedDB=void 0;class e{constructor({name:e="",version:t="",store:s="",props:r={},index:n={}}){this.name=e,this.version=t,this.store=s,this.props=r,this.index=n,this.upgrades={},""===this.version?this.numericVersion=0:this.numericVersion=parseInt(t.replace(/\./g,""))}open(){return""===this.name?(console.error("No name has been defined for IndexedDB space."),Promise.reject()):""===this.store?(console.error("No store has been defined for IndexedDB space."),Promise.reject()):this.storage instanceof IDBDatabase?Promise.resolve(this):this.storage instanceof Promise?this.storage:(this.storage=new Promise((e,t)=>{let s=[];const r=window.indexedDB.open(this.name,this.numericVersion);r.onerror=(e=>{t(e)}),r.onsuccess=(t=>{e({storage:t.target.result,upgrades:s})}),r.onupgradeneeded=(t=>{if(t.oldVersion<1){const e=t.target.result.createObjectStore(this.store,this.props);for(const t of Object.keys(this.index))e.createIndex(this.index[t].name,this.index[t].field,this.index[t].props)}else{const e=Object.keys(this.upgrades).sort(),r=e.findIndex(e=>{const[s]=e.split("::");return parseInt(s)===t.oldVersion});r>-1&&(s=e.slice(r).filter(e=>{const[t,s]=e.split("::");return parseInt(t){e({storage:t.target.result,upgrades:s})})})}).then(({storage:e,upgrades:t})=>(this.storage=e,new Promise(s=>{this._upgrade(t,()=>s(e),event)}))),this.storage)}set(e=null,t){return this.open().then(()=>new Promise((s,r)=>{const n=this.storage.transaction(this.store,"readwrite").objectStore(this.store);let i;(i=null!==e?n.put(Object.assign({},{id:e},t)):n.add(t)).addEventListener("success",e=>{s({key:e.target.result,value:t})}),i.addEventListener("error",e=>{r(e)})}))}update(e,t){return this.get(e).then(s=>void 0===s?this.set(e,t):new Promise((e,r)=>{const n=this.storage.transaction(this.store,"readwrite").objectStore(this.store).put(Object.assign({},s,t));n.addEventListener("success",s=>{e({key:s.target.result,value:t})}),n.addEventListener("error",e=>{r(e)})}))}get(e){return this.open().then(()=>new Promise((t,s)=>{const r=this.storage.transaction(this.store).objectStore(this.store).get(e);r.addEventListener("success",e=>{t(e.target.result)}),r.addEventListener("error",e=>{s(e)})}))}getAll(){return this.open().then(()=>new Promise((e,t)=>{const s=this.storage.transaction(this.store).objectStore(this.store).getAll();s.addEventListener("success",t=>{e(t.target.result)}),s.addEventListener("error",e=>{t(e)})}))}contains(e){return this.get(e).then(t=>{if(!t.includes(e))return Promise.reject();Promise.resolve()})}upgrade(e,t,s){return this.upgrades[`${parseInt(e.replace(/\./g,""))}::${parseInt(t.replace(/\./g,""))}`]=s,Promise.resolve()}_upgrade(e,t,s){e.length>0?this.upgrades[e[0]].call(this,this,s).then(()=>{this._upgrade(e.slice(1),t,s)}).catch(e=>console.error(e)):t()}rename(){return Promise.reject()}key(){return Promise.reject()}keys(){return this.open().then(()=>new Promise((e,t)=>{const s=this.storage.transaction(this.store,"readwrite").objectStore(this.store).getAllKeys();s.addEventListener("success",t=>{e(t.target.result)},!1),s.addEventListener("error",e=>{t(e)},!1)}))}remove(e){return this.get(e).then(t=>new Promise((s,r)=>{const n=this.storage.transaction(this.store,"readwrite").objectStore(this.store).delete(e);n.addEventListener("success",()=>{s(t)},!1),n.addEventListener("error",e=>{r(e)},!1)}))}clear(){return this.open().then(()=>new Promise((e,t)=>{const s=this.storage.transaction(this.store,"readwrite").objectStore(this.store).clear();s.addEventListener("success",()=>{e()},!1),s.addEventListener("error",e=>{t(e)},!1)}))}}exports.IndexedDB=e; -},{}],"he21":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.RemoteStorage=void 0;var e=require("./../Request");class t{constructor({name:e="",version:t="",store:s="",endpoint:r="",props:o={}}){this.name=e,this.version=t,this.store=s,this.endpoint=`${r}${s}/`,this.props=o}open(){return void 0===this.storage&&(this.storage=e.Request),Promise.resolve(this)}set(e,t){return this.open().then(()=>this.storage.post(this.endpoint+e,t,this.props))}update(e,t){return this.get(e).then(s=>this.storage.put(this.endpoint+e,Object.assign({},s,t),this.props).then(e=>e.json()))}get(e){return this.open().then(()=>this.storage.json(this.endpoint+e,{},this.props))}getAll(){return this.open().then(()=>this.storage.json(this.endpoint,{},this.props))}contains(e){return this.keys().then(t=>{if(!t.includes(e))return Promise.reject();Promise.resolve()})}upgrade(){return Promise.reject()}rename(){return Promise.reject()}key(){return Promise.reject()}keys(){return this.open().then(()=>this.storage.json(this.endpoint,{keys:!0},this.props))}remove(e){return this.open().then(()=>this.storage.delete(this.endpoint+e,{},this.props).then(t=>Promise.resolve(e,t.json())))}clear(){return this.open().then(()=>this.storage.delete(this.endpoint,{},this.props))}}exports.RemoteStorage=t; -},{"./../Request":"yWHc"}],"9aYX":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Space=exports.SpaceAdapter=void 0;var t=require("./SpaceAdapter/LocalStorage"),e=require("./SpaceAdapter/SessionStorage"),r=require("./SpaceAdapter/IndexedDB"),a=require("./SpaceAdapter/RemoteStorage");const s={LocalStorage:t.LocalStorage,SessionStorage:e.SessionStorage,IndexedDB:r.IndexedDB,RemoteStorage:a.RemoteStorage};exports.SpaceAdapter=s;class o{constructor(t=s.LocalStorage,e={}){this._configuration=Object.assign({},{name:"",version:"",store:""},e),this.adapter=new t(this._configuration),this.callbacks={create:[],update:[],delete:[]},this.transformations={}}configuration(t=null){if(null===t)return this._configuration;this._configuration=Object.assign({},this._configuration,t),this.adapter.configuration(t)}open(){return this.adapter.open().then(()=>Promise.resolve(this))}set(t,e){for(const r of Object.keys(this.transformations))"function"==typeof this.transformations[r].set&&(e=this.transformations[r].set.call(null,t,e));return this.adapter.set(t,e).then(({key:t,value:e})=>{for(const r of this.callbacks.create)r.call(null,t,e);return Promise.resolve({key:t,value:e})})}update(t,e){for(const r of Object.keys(this.transformations))"function"==typeof this.transformations[r].set&&(e=this.transformations[r].set.call(null,t,e));return this.adapter.update(t,e).then(({key:t,value:e})=>{for(const r of this.callbacks.update)r.call(null,t,e);return Promise.resolve({key:t,value:e})})}get(t){return this.adapter.get(t).then(e=>{for(const r of Object.keys(this.transformations))"function"==typeof this.transformations[r].get&&(e=this.transformations[r].get.call(null,t,e));return e})}getAll(){return this.adapter.getAll().then(t=>{for(const e of Object.keys(t))for(const r of Object.keys(this.transformations))"function"==typeof this.transformations[r].get&&(t[e]=this.transformations[r].get.call(null,e,t[e]));return t})}each(t){return this.getAll().then(e=>{const r=[];for(const a of Object.keys(e))r.push(t.call(this,a,e[a]));return Promise.all(r)})}contains(t){return this.adapter.contains(t)}upgrade(t,e,r){return this.adapter.upgrade(t,e,r).then(()=>Promise.resolve(this))}rename(t){return this.adapter.rename(t)}onCreate(t){this.callbacks.create.push(t)}onUpdate(t){this.callbacks.update.push(t)}onDelete(t){this.callbacks.delete.push(t)}addTransformation({id:t,get:e,set:r}){this.transformations[t]={id:t,get:e,set:r}}removeTransformation(t){delete this.transformations[t]}key(t,e=!1){return this.adapter.key(t,e)}keys(t=!1){return this.adapter.keys(t)}remove(t){return this.adapter.remove(t).then(e=>{for(const r of this.callbacks.delete)r.call(null,t,e)})}clear(){return this.adapter.clear()}}exports.Space=o; -},{"./SpaceAdapter/LocalStorage":"4LQF","./SpaceAdapter/SessionStorage":"nnqJ","./SpaceAdapter/IndexedDB":"wqDi","./SpaceAdapter/RemoteStorage":"he21"}],"cPWY":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Text=void 0;class e{static capitalize(e){return e.replace(/\w\S*/g,e=>e.charAt(0).toUpperCase()+e.substr(1).toLowerCase())}static suffix(e,t){let n="",r=t.indexOf(e);return-1!==r&&(r+=e.length,n=t.substr(r,t.length-r)),n}static selection(){return window.getSelection?window.getSelection().toString():document.selection&&"Control"!=document.selection.type?document.selection.createRange().text:void 0}static prefix(e,t){let n="";const r=t.indexOf(e);return-1!=r&&(n=t.substr(0,r)),n}static friendly(e){const t=[/[Ôàâãªä]/,/[ƁƀƂƃƄ]/,/[ƍƌƎƏ]/,/[íìîï]/,/[éèêë]/,/[ƉƈƊƋ]/,/[óòÓõºö]/,/[ƓƒƔƕƖ]/,/[úùûü]/,/[ƚƙƛƜ]/,/Ƨ/,/Ƈ/,/Ʊ/,/Ƒ/,/_/,/[ā€™ā€˜ā€¹ā€ŗ<>']/,/[ā€œā€Ā«Ā»ā€ž"]/,/[(){}[\]]/,/[?Āæ!Ā”#$%&^*Ā“`~\/°|]/,/[,.:;]/,/ /],n=["a","A","I","i","e","E","o","O","u","U","c","C","n","N","-","","","","","","-"];for(const r in t)e=e.replace(new RegExp(t[r],"g"),n[r]);return e}}exports.Text=e; -},{}],"8TNu":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.Util=void 0;class t{static callAsync(t,e,...r){try{const s=t.apply(e,r);return s instanceof Promise?s:Promise.resolve(s)}catch(o){return Promise.reject(o)}}static uuid(){if(window.crypto)return([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,t=>(t^crypto.getRandomValues(new Uint8Array(1))[0]&15>>t/4).toString(16));{const t=()=>Math.floor(65536*(1+Math.random())).toString(16).substring(1);return t()+t()+"-"+t()+"-"+t()+"-"+t()+"-"+t()+t()+t()}}}exports.Util=t; -},{}],"lFT0":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./src/DOM");Object.keys(e).forEach(function(r){"default"!==r&&"__esModule"!==r&&Object.defineProperty(exports,r,{enumerable:!0,get:function(){return e[r]}})});var r=require("./src/FileSystem");Object.keys(r).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return r[e]}})});var t=require("./src/Form");Object.keys(t).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return t[e]}})});var u=require("./src/Platform");Object.keys(u).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return u[e]}})});var n=require("./src/Preload");Object.keys(n).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return n[e]}})});var o=require("./src/Request");Object.keys(o).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return o[e]}})});var c=require("./src/Space");Object.keys(c).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return c[e]}})});var f=require("./src/Text");Object.keys(f).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return f[e]}})});var s=require("./src/Util");Object.keys(s).forEach(function(e){"default"!==e&&"__esModule"!==e&&Object.defineProperty(exports,e,{enumerable:!0,get:function(){return s[e]}})}); -},{"./src/DOM":"d+rf","./src/FileSystem":"MO3i","./src/Form":"CErr","./src/Platform":"8/F2","./src/Preload":"4C7P","./src/Request":"yWHc","./src/Space":"9aYX","./src/Text":"cPWY","./src/Util":"8TNu"}],"Lb19":[function(require,module,exports) { -"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),exports.FancyError=void 0;var t=require("@aegis-framework/artemis");function e(t){return(e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t})(t)}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){for(var r=0;r0){var e=o.queue.pop();(0,t.$_)("body").prepend("\n\t\t\t\t\t

\n\t\t\t\t")),(0,t.$_)('[data-error="'.concat(e.id,'"] button')).click(function(){(0,t.$_)('[data-error="'.concat(e.id,'"]')).remove(),o.pop()}),Prism.highlightAll()}}},{key:"show",value:function(){var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"Error",a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"An error has ocurred! Please check the console so you get more insight.",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{};if("object"===("undefined"==typeof MonogatariDebug?"undefined":e(MonogatariDebug))){var i=t.Util.uuid(),c={id:i,title:r,message:a,props:n};(0,t.$_)("[data-error]").isVisible()?o.queue.unshift(c):((0,t.$_)("body").prepend("\n\t\t\t\t\t\n\t\t\t\t")),(0,t.$_)('[data-error="'.concat(i,'"] button')).click(function(){(0,t.$_)('[data-error="'.concat(i,'"]')).remove(),o.pop()}),Prism.highlightAll())}}},{key:"render",value:function(){for(var r=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},o='
',a=Object.keys(r),n=0;n: ").concat(r[i],"

");else if(r[i]instanceof Array)o+="

".concat(i,": ").concat(r[i].toString().replace(/,/g,", "),"

");else if(r[i]instanceof NodeList){o+="

".concat(i,":

");var c=!0,l=!1,s=void 0;try{for(var p,d=r[i][Symbol.iterator]();!(c=(p=d.next()).done);c=!0){var u=p.value;o+="".concat(u._html.replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),"")}}catch(x){l=!0,s=x}finally{try{c||null==d.return||d.return()}finally{if(l)throw s}}o+="

"}}o+="
";for(var f=Object.keys(r),g=0;g
");for(var h=Object.keys(r[b]),v=0;v".concat(r[b][y],"

");else if("string"==typeof r[b][y]||"number"==typeof r[b][y])o+="

".concat(y,": ").concat(r[b][y],"

");else if(r[b][y]instanceof Array)o+="

".concat(y,": ").concat(r[b][y].toString().replace(/,/g,", "),"

");else if(r[b][y]instanceof NodeList){o+="

".concat(y,":

");var m=!0,k=!1,_=void 0;try{for(var w,M=r[b][y][Symbol.iterator]();!(m=(w=M.next()).done);m=!0){var S=w.value;o+="".concat(S._html.replace(/&/g,"&").replace(//g,">").replace(/"/g,"""),"")}}catch(x){k=!0,_=x}finally{try{m||null==M.return||M.return()}finally{if(k)throw _}}o+="

"}}o+="
"}}return o}}]),o}();exports.FancyError=n,n.queue=[]; -},{"@aegis-framework/artemis":"lFT0"}],"Focm":[function(require,module,exports) { -"use strict";require("./vendor/prism.js");var r=require("../core/lib/FancyError"),e=require("@aegis-framework/artemis");window.addEventListener("error",function(o){var i=o.message,n=o.lineno,s=o.filename;(0,e.$_ready)(function(){r.FancyError.show("An Unknown Error Occurred",i,{File:s,Line:n,Help:{_:"This is most likely a scripting error, please check your script and JavaScript code for missing commas or incorrect syntax.",_1:"There may be additional information on your browser’s console. You can open your console by pressing Ctrl + Shift + I"}})})}); -},{"./vendor/prism.js":"i8Cz","../core/lib/FancyError":"Lb19","@aegis-framework/artemis":"lFT0"}]},{},["Focm"], "MonogatariDebug") -//# sourceMappingURL=debug.map \ No newline at end of file +(()=>{var j=Object.create;var{getPrototypeOf:q,defineProperty:H,getOwnPropertyNames:Y}=Object;var K=Object.prototype.hasOwnProperty;var X=(e,i,r)=>{r=e!=null?j(q(e)):{};let d=i||!e||!e.__esModule?H(r,"default",{value:e,enumerable:!0}):r;for(let o of Y(e))if(!K.call(d,o))H(d,o,{get:()=>e[o],enumerable:!0});return d};var Z=(e,i)=>()=>(i||e((i={exports:{}}).exports,i),i.exports);var z=Z((te,v)=>{var S=typeof window<"u"?window:typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope?self:{},t=function(){var e=/\blang(?:uage)?-([\w-]+)\b/i,i=0,r=S.Prism={manual:S.Prism&&S.Prism.manual,disableWorkerMessageHandler:S.Prism&&S.Prism.disableWorkerMessageHandler,util:{encode:function(n){return n instanceof d?new d(n.type,r.util.encode(n.content),n.alias):r.util.type(n)==="Array"?n.map(r.util.encode):n.replace(/&/g,"&").replace(/n.length)return;if(!(L instanceof u)){if(h&&y!=a.length-1){b.lastIndex=T;var E=b.exec(n);if(!E)break;for(var x=E.index+(I?E[1].length:0),M=E.index+E[0].length,N=y,O=T,V=a.length;V>N&&(M>O||!a[N].type&&!a[N-1].greedy);++N)O+=a[N].length,x>=O&&(++y,T=O);if(a[y]instanceof u)continue;B=N-y,L=n.slice(T,O),E.index-=T}else{b.lastIndex=0;var E=b.exec(L),B=1}if(E){I&&(R=E[1]?E[1].length:0);var x=E.index+R,E=E[0].slice(R),M=x+E.length,F=L.slice(0,x),G=L.slice(M),D=[y,B];F&&(++y,T+=F.length,D.push(F));var W=new u(m,_?r.tokenize(E,_):E,k,E,h);if(D.push(W),G&&D.push(G),Array.prototype.splice.apply(a,D),B!=1&&r.matchGrammar(n,a,s,y,T,!0,m),p)break}else if(p)break}}}}},tokenize:function(n,a){var s=[n],l=a.rest;if(l){for(var c in l)a[c]=l[c];delete a.rest}return r.matchGrammar(n,s,a,0,0,!1),s},hooks:{all:{},add:function(n,a){var s=r.hooks.all;s[n]=s[n]||[],s[n].push(a)},run:function(n,a){var s=r.hooks.all[n];if(s&&s.length)for(var l,c=0;l=s[c++];)l(a)}}},d=r.Token=function(n,a,s,l,c){this.type=n,this.content=a,this.alias=s,this.length=0|(l||"").length,this.greedy=!!c};if(d.stringify=function(n,a,s){if(typeof n=="string")return n;if(r.util.type(n)==="Array")return n.map(function(g){return d.stringify(g,a,n)}).join("");var l={type:n.type,content:d.stringify(n.content,a,s),tag:"span",classes:["token",n.type],attributes:{},language:a,parent:s};if(n.alias){var c=r.util.type(n.alias)==="Array"?n.alias:[n.alias];Array.prototype.push.apply(l.classes,c)}r.hooks.run("wrap",l);var p=Object.keys(l.attributes).map(function(g){return g+'="'+(l.attributes[g]||"").replace(/"/g,""")+'"'}).join(" ");return"<"+l.tag+' class="'+l.classes.join(" ")+'"'+(p?" "+p:"")+">"+l.content+""},!S.document)return S.addEventListener?(r.disableWorkerMessageHandler||S.addEventListener("message",function(n){var a=JSON.parse(n.data),s=a.language,l=a.code,c=a.immediateClose;S.postMessage(r.highlight(l,r.languages[s],s)),c&&S.close()},!1),S.Prism):S.Prism;var o=document.currentScript||[].slice.call(document.getElementsByTagName("script")).pop();return o&&(r.filename=o.src,r.manual||o.hasAttribute("data-manual")||(document.readyState!=="loading"?window.requestAnimationFrame?window.requestAnimationFrame(r.highlightAll):window.setTimeout(r.highlightAll,16):document.addEventListener("DOMContentLoaded",r.highlightAll))),S.Prism}();typeof v<"u"&&v.exports&&(v.exports=t),typeof global<"u"&&(global.Prism=t);t.languages.markup={comment://,prolog:/<\?[\s\S]+?\?>/,doctype://i,cdata://i,tag:{pattern:/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\/?[^\s>\/]+/i,inside:{punctuation:/^<\/?/,namespace:/^[^\s>\/:]+:/}},"attr-value":{pattern:/=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\])["']/,lookbehind:!0}]}},punctuation:/\/?>/,"attr-name":{pattern:/[^\s>\/]+/,inside:{namespace:/^[^\s>\/:]+:/}}}},entity:/&#?[\da-z]{1,8};/i},t.languages.markup.tag.inside["attr-value"].inside.entity=t.languages.markup.entity,t.hooks.add("wrap",function(e){e.type==="entity"&&(e.attributes.title=e.content.replace(/&/,"&"))}),t.languages.xml=t.languages.markup,t.languages.html=t.languages.markup,t.languages.mathml=t.languages.markup,t.languages.svg=t.languages.markup;t.languages.css={comment:/\/\*[\s\S]*?\*\//,atrule:{pattern:/@[\w-]+?.*?(?:;|(?=\s*\{))/i,inside:{rule:/@[\w-]+/}},url:/url\((?:(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|.*?)\)/i,selector:/[^{}\s][^{};]*?(?=\s*\{)/,string:{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},property:/[-_a-z\xA0-\uFFFF][-\w\xA0-\uFFFF]*(?=\s*:)/i,important:/\B!important\b/i,function:/[-a-z0-9]+(?=\()/i,punctuation:/[(){};:]/},t.languages.css.atrule.inside.rest=t.languages.css,t.languages.markup&&(t.languages.insertBefore("markup","tag",{style:{pattern:/()[\s\S]*?(?=<\/style>)/i,lookbehind:!0,inside:t.languages.css,alias:"language-css",greedy:!0}}),t.languages.insertBefore("inside","attr-value",{"style-attr":{pattern:/\s*style=("|')(?:\\[\s\S]|(?!\1)[^\\])*\1/i,inside:{"attr-name":{pattern:/^\s*style/i,inside:t.languages.markup.tag.inside},punctuation:/^\s*=\s*['"]|['"]\s*$/,"attr-value":{pattern:/.+/i,inside:t.languages.css}},alias:"language-css"}},t.languages.markup.tag));t.languages.clike={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},"class-name":{pattern:/((?:\b(?:class|interface|extends|implements|trait|instanceof|new)\s+)|(?:catch\s+\())[\w.\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\]/}},keyword:/\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\b/,boolean:/\b(?:true|false)\b/,function:/[a-z0-9_]+(?=\()/i,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&?|\|\|?|\?|\*|\/|~|\^|%/,punctuation:/[{}[\];(),.:]/};t.languages.javascript=t.languages.extend("clike",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\b/,number:/\b(?:0[xX][\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,function:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*\()/i,operator:/-[-=]?|\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\|[|=]?|\*\*?=?|\/=?|~|\^=?|%=?|\?|\.{3}/}),t.languages.insertBefore("javascript","keyword",{regex:{pattern:/((?:^|[^$\w\xA0-\uFFFF."'\])\s])\s*)\/(\[[^\]\r\n]+]|\\.|[^\/\\\[\r\n])+\/[gimyu]{0,5}(?=\s*($|[\r\n,.;})\]]))/,lookbehind:!0,greedy:!0},"function-variable":{pattern:/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,alias:"function"},constant:/\b[A-Z][A-Z\d_]*\b/}),t.languages.insertBefore("javascript","string",{"template-string":{pattern:/`(?:\\[\s\S]|\${[^}]+}|[^\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\${[^}]+}/,inside:{"interpolation-punctuation":{pattern:/^\${|}$/,alias:"punctuation"},rest:null}},string:/[\s\S]+/}}}),t.languages.javascript["template-string"].inside.interpolation.inside.rest=t.languages.javascript,t.languages.markup&&t.languages.insertBefore("markup","tag",{script:{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:t.languages.javascript,alias:"language-javascript",greedy:!0}}),t.languages.js=t.languages.javascript;t.languages.abap={comment:/^\*.*/m,string:/(`|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,"string-template":{pattern:/([|}])(?:\\.|[^\\|{\r\n])*(?=[|{])/,lookbehind:!0,alias:"string"},"eol-comment":{pattern:/(^|\s)".*/m,lookbehind:!0,alias:"comment"},keyword:{pattern:/(\s|\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\/MM\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\/DD\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\/MM\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\/DD\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|SELECTOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\b/i,lookbehind:!0},number:/\b\d+\b/,operator:{pattern:/(\s)(?:\*\*?|<[=>]?|>=?|\?=|[-+\/=])(?=\s)/,lookbehind:!0},"string-operator":{pattern:/(\s)&&?(?=\s)/,lookbehind:!0,alias:"keyword"},"token-operator":[{pattern:/(\w)(?:->?|=>|[~|{}])(?=\w)/,lookbehind:!0,alias:"punctuation"},{pattern:/[|{}]/,alias:"punctuation"}],punctuation:/[,.:()]/};t.languages.actionscript=t.languages.extend("javascript",{keyword:/\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\b/,operator:/\+\+|--|(?:[+\-*\/%^]|&&?|\|\|?|<>?>?|[!=]=?)=?|[~?@]/}),t.languages.actionscript["class-name"].alias="function",t.languages.markup&&t.languages.insertBefore("actionscript","string",{xml:{pattern:/(^|[^.])<\/?\w+(?:\s+[^\s>\/=]+=("|')(?:\\[\s\S]|(?!\2)[^\\])*\2)*\s*\/?>/,lookbehind:!0,inside:{rest:t.languages.markup}}});t.languages.ada={comment:/--.*/,string:/"(?:""|[^"\r\f\n])*"/i,number:[{pattern:/\b\d(?:_?\d)*#[\dA-F](?:_?[\dA-F])*(?:\.[\dA-F](?:_?[\dA-F])*)?#(?:E[+-]?\d(?:_?\d)*)?/i},{pattern:/\b\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:E[+-]?\d(?:_?\d)*)?\b/i}],"attr-name":/\b'\w+/i,keyword:/\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\b/i,boolean:/\b(?:true|false)\b/i,operator:/<[=>]?|>=?|=>?|:=|\/=?|\*\*?|[&+-]/,punctuation:/\.\.?|[,;():]/,char:/'.'/,variable:/\b[a-z](?:[_a-z\d])*\b/i};t.languages.apacheconf={comment:/#.*/,"directive-inline":{pattern:/^(\s*)\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|AddAlt|AddAltByEncoding|AddAltByType|AddCharset|AddDefaultCharset|AddDescription|AddEncoding|AddHandler|AddIcon|AddIconByEncoding|AddIconByType|AddInputFilter|AddLanguage|AddModuleInfo|AddOutputFilter|AddOutputFilterByType|AddType|Alias|AliasMatch|Allow|AllowCONNECT|AllowEncodedSlashes|AllowMethods|AllowOverride|AllowOverrideList|Anonymous|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail|AsyncRequestWorkerFactor|AuthBasicAuthoritative|AuthBasicFake|AuthBasicProvider|AuthBasicUseDigestAlgorithm|AuthDBDUserPWQuery|AuthDBDUserRealmQuery|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile|AuthDigestAlgorithm|AuthDigestDomain|AuthDigestNonceLifetime|AuthDigestProvider|AuthDigestQop|AuthDigestShmemSize|AuthFormAuthoritative|AuthFormBody|AuthFormDisableNoStore|AuthFormFakeBasicAuth|AuthFormLocation|AuthFormLoginRequiredLocation|AuthFormLoginSuccessLocation|AuthFormLogoutLocation|AuthFormMethod|AuthFormMimetype|AuthFormPassword|AuthFormProvider|AuthFormSitePassphrase|AuthFormSize|AuthFormUsername|AuthGroupFile|AuthLDAPAuthorizePrefix|AuthLDAPBindAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareAsUser|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPInitialBindAsUser|AuthLDAPInitialBindPattern|AuthLDAPMaxSubGroupDepth|AuthLDAPRemoteUserAttribute|AuthLDAPRemoteUserIsDN|AuthLDAPSearchAsUser|AuthLDAPSubGroupAttribute|AuthLDAPSubGroupClass|AuthLDAPUrl|AuthMerging|AuthName|AuthnCacheContext|AuthnCacheEnable|AuthnCacheProvideFor|AuthnCacheSOCache|AuthnCacheTimeout|AuthnzFcgiCheckAuthnProvider|AuthnzFcgiDefineProvider|AuthType|AuthUserFile|AuthzDBDLoginToReferer|AuthzDBDQuery|AuthzDBDRedirectQuery|AuthzDBMType|AuthzSendForbiddenOnFailure|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|CacheDefaultExpire|CacheDetailHeader|CacheDirLength|CacheDirLevels|CacheDisable|CacheEnable|CacheFile|CacheHeader|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheIgnoreQueryString|CacheIgnoreURLSessionIdentifiers|CacheKeyBaseURL|CacheLastModifiedFactor|CacheLock|CacheLockMaxAge|CacheLockPath|CacheMaxExpire|CacheMaxFileSize|CacheMinExpire|CacheMinFileSize|CacheNegotiatedDocs|CacheQuickHandler|CacheReadSize|CacheReadTime|CacheRoot|CacheSocache|CacheSocacheMaxSize|CacheSocacheMaxTime|CacheSocacheMinTime|CacheSocacheReadSize|CacheSocacheReadTime|CacheStaleOnError|CacheStoreExpired|CacheStoreNoStore|CacheStorePrivate|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateInflateLimitRequestBody|DeflateInflateRatioBurst|DeflateInflateRatioLimit|DeflateMemLevel|DeflateWindowSize|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|HeartbeatAddress|HeartbeatListen|HeartbeatMaxServers|HeartbeatStorage|HeartbeatStorage|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|IndexHeadInsert|IndexIgnore|IndexIgnoreReset|IndexOptions|IndexOrderDefault|IndexStyleSheet|InputSed|ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionPoolTTL|LDAPConnectionTimeout|LDAPLibraryDebug|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPReferralHopLimit|LDAPReferrals|LDAPRetries|LDAPRetryDelay|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTimeout|LDAPTrustedClientCert|LDAPTrustedGlobalCert|LDAPTrustedMode|LDAPVerifyServerCert|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|LuaHookAccessChecker|LuaHookAuthChecker|LuaHookCheckUserID|LuaHookFixups|LuaHookInsertFilter|LuaHookLog|LuaHookMapToStorage|LuaHookTranslateName|LuaHookTypeChecker|LuaInherit|LuaInputFilter|LuaMapHandler|LuaOutputFilter|LuaPackageCPath|LuaPackagePath|LuaQuickHandler|LuaRoot|LuaScope|MaxConnectionsPerChild|MaxKeepAliveRequests|MaxMemFree|MaxRangeOverlaps|MaxRangeReversals|MaxRanges|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|ProxyAddHeaders|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyExpressDBMFile|ProxyExpressDBMType|ProxyExpressEnable|ProxyFtpDirCharset|ProxyFtpEscapeWildcards|ProxyFtpListOnWildcard|ProxyHTMLBufSize|ProxyHTMLCharsetOut|ProxyHTMLDocType|ProxyHTMLEnable|ProxyHTMLEvents|ProxyHTMLExtended|ProxyHTMLFixups|ProxyHTMLInterp|ProxyHTMLLinks|ProxyHTMLMeta|ProxyHTMLStripComments|ProxyHTMLURLMap|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassInherit|ProxyPassInterpolateEnv|ProxyPassMatch|ProxyPassReverse|ProxyPassReverseCookieDomain|ProxyPassReverseCookiePath|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxySCGIInternalRedirect|ProxySCGISendfile|ProxySet|ProxySourceAddress|ProxyStatus|ProxyTimeout|ProxyVia|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIPHeader|RemoteIPInternalProxy|RemoteIPInternalProxyList|RemoteIPProxiesHeader|RemoteIPTrustedProxy|RemoteIPTrustedProxyList|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|RewriteBase|RewriteCond|RewriteEngine|RewriteMap|RewriteOptions|RewriteRule|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script|ScriptAlias|ScriptAliasMatch|ScriptInterpreterSource|ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock|SecureListen|SeeRequestTail|SendBufferSize|ServerAdmin|ServerAlias|ServerLimit|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|Session|SessionCookieName|SessionCookieName2|SessionCookieRemove|SessionCryptoCipher|SessionCryptoDriver|SessionCryptoPassphrase|SessionCryptoPassphraseFile|SessionDBDCookieName|SessionDBDCookieName2|SessionDBDCookieRemove|SessionDBDDeleteLabel|SessionDBDInsertLabel|SessionDBDPerUser|SessionDBDSelectLabel|SessionDBDUpdateLabel|SessionEnv|SessionExclude|SessionHeader|SessionInclude|SessionMaxAge|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSLCACertificateFile|SSLCACertificatePath|SSLCADNRequestFile|SSLCADNRequestPath|SSLCARevocationCheck|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLCompression|SSLCryptoDevice|SSLEngine|SSLFIPS|SSLHonorCipherOrder|SSLInsecureRenegotiation|SSLOCSPDefaultResponder|SSLOCSPEnable|SSLOCSPOverrideResponder|SSLOCSPResponderTimeout|SSLOCSPResponseMaxAge|SSLOCSPResponseTimeSkew|SSLOCSPUseRequestNonce|SSLOpenSSLConfCmd|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationCheck|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCheckPeerCN|SSLProxyCheckPeerExpire|SSLProxyCheckPeerName|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateChainFile|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRenegBufferSize|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLSessionTicketKeyFile|SSLSRPUnknownUserSeed|SSLSRPVerifierFile|SSLStaplingCache|SSLStaplingErrorCacheTimeout|SSLStaplingFakeTryLater|SSLStaplingForceURL|SSLStaplingResponderTimeout|SSLStaplingResponseMaxAge|SSLStaplingResponseTimeSkew|SSLStaplingReturnResponderErrors|SSLStaplingStandardCacheTimeout|SSLStrictSNIVHostCheck|SSLUserName|SSLUseStapling|SSLVerifyClient|SSLVerifyDepth|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\b/im,lookbehind:!0,alias:"property"},"directive-block":{pattern:/<\/?\b(?:AuthnProviderAlias|AuthzProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|RequireAll|RequireAny|RequireNone|VirtualHost)\b *.*>/i,inside:{"directive-block":{pattern:/^<\/?\w+/,inside:{punctuation:/^<\/?/},alias:"tag"},"directive-block-parameter":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}}},alias:"attr-value"},punctuation:/>/},alias:"tag"},"directive-flags":{pattern:/\[(?:\w,?)+\]/,alias:"keyword"},string:{pattern:/("|').*\1/,inside:{variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/}},variable:/[$%]\{?(?:\w\.?[-+:]?)+\}?/,regex:/\^?.*\$|\^.*\$?/};t.languages.apl={comment:/(?:ā|#[! ]).*$/m,string:{pattern:/'(?:[^'\r\n]|'')*'/,greedy:!0},number:/ĀÆ?(?:\d*\.?\d+(?:e[+ĀÆ]?\d+)?|ĀÆ|āˆž)(?:jĀÆ?(?:\d*\.?\d+(?:e[+ĀÆ]?\d+)?|ĀÆ|āˆž))?/i,statement:/:[A-Z][a-z][A-Za-z]*\b/,"system-function":{pattern:/āŽ•[A-Z]+/i,alias:"function"},constant:/[ā¬āŒ¾#āŽ•āž]/,function:/[-+Ć—Ć·āŒˆāŒŠāˆ£|ā³āø?*āŸā—‹!⌹<≤=>ā‰„ā‰ ā‰”ā‰¢āˆŠā·āˆŖāˆ©~āˆØāˆ§ā±ā²ā“,āŖāŒ½āŠ–ā‰ā†‘ā†“āŠ‚āŠƒāŠ†āŠ‡āŒ·ā‹ā’āŠ¤āŠ„ā•āŽāŠ£āŠ¢āā‚ā‰ˆāÆā†—Ā¤ā†’]/,"monadic-operator":{pattern:/[\\\/āŒæā€ĀØāØāŒ¶&∄]/,alias:"operator"},"dyadic-operator":{pattern:/[.ā£ā ā¤āˆ˜āŒø@⌺]/,alias:"operator"},assignment:{pattern:/←/,alias:"keyword"},punctuation:/[\[;\]()◇⋄]/,dfn:{pattern:/[{}āŗāµā¶ā¹āˆ‡ā«:]/,alias:"builtin"}};t.languages.applescript={comment:[/\(\*(?:\(\*[\s\S]*?\*\)|[\s\S])*?\*\)/,/--.+/,/#.+/],string:/"(?:\\.|[^"\\\r\n])*"/,number:/(?:\b\d+\.?\d*|\B\.\d+)(?:e-?\d+)?\b/i,operator:[/[&=≠≤≄*+\-\/Ć·^]|[<>]=?/,/\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\b/],keyword:/\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\b/,class:{pattern:/\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\b/,alias:"builtin"},punctuation:/[{}():,Ā¬Ā«Ā»ć€Šć€‹]/};t.languages.c=t.languages.extend("clike",{keyword:/\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\b/,operator:/-[>-]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/]/,number:/(?:\b0x[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ful]*/i}),t.languages.insertBefore("c","string",{macro:{pattern:/(^\s*)#\s*[a-z]+(?:[^\r\n\\]|\\(?:\r\n|[\s\S]))*/im,lookbehind:!0,alias:"property",inside:{string:{pattern:/(#\s*include\s*)(?:<.+?>|("|')(?:\\?.)+?\2)/,lookbehind:!0},directive:{pattern:/(#\s*)\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\b/,lookbehind:!0,alias:"keyword"}}},constant:/\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\b/}),delete t.languages.c["class-name"],delete t.languages.c.boolean;t.languages.arff={comment:/%.*/,string:{pattern:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/@(?:attribute|data|end|relation)\b/i,number:/\b\d+(?:\.\d+)?\b/,punctuation:/[{},]/};(function(e){var i={pattern:/(^[ \t]*)\[(?!\[)(?:(["'$`])(?:(?!\2)[^\\]|\\.)*\2|\[(?:[^\]\\]|\\.)*\]|[^\]\\]|\\.)*\]/m,lookbehind:!0,inside:{quoted:{pattern:/([$`])(?:(?!\1)[^\\]|\\.)*\1/,inside:{punctuation:/^[$`]|[$`]$/}},interpreted:{pattern:/'(?:[^'\\]|\\.)*'/,inside:{punctuation:/^'|'$/}},string:/"(?:[^"\\]|\\.)*"/,variable:/\w+(?==)/,punctuation:/^\[|\]$|,/,operator:/=/,"attr-value":/(?!^\s+$).+/}};e.languages.asciidoc={"comment-block":{pattern:/^(\/{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1/m,alias:"comment"},table:{pattern:/^\|={3,}(?:(?:\r?\n|\r).*)*?(?:\r?\n|\r)\|={3,}$/m,inside:{specifiers:{pattern:/(?!\|)(?:(?:(?:\d+(?:\.\d+)?|\.\d+)[+*])?(?:[<^>](?:\.[<^>])?|\.[<^>])?[a-z]*)(?=\|)/,alias:"attr-value"},punctuation:{pattern:/(^|[^\\])[|!]=*/,lookbehind:!0}}},"passthrough-block":{pattern:/^(\+{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^\++|\++$/}},"literal-block":{pattern:/^(-{4,}|\.{4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\.+)|(?:-+|\.+)$/}},"other-block":{pattern:/^(--|\*{4,}|_{4,}|={4,})(?:\r?\n|\r)(?:[\s\S]*(?:\r?\n|\r))??\1$/m,inside:{punctuation:/^(?:-+|\*+|_+|=+)|(?:-+|\*+|_+|=+)$/}},"list-punctuation":{pattern:/(^[ \t]*)(?:-|\*{1,5}|\.{1,5}|(?:[a-z]|\d+)\.|[xvi]+\))(?= )/im,lookbehind:!0,alias:"punctuation"},"list-label":{pattern:/(^[ \t]*)[a-z\d].+(?::{2,4}|;;)(?=\s)/im,lookbehind:!0,alias:"symbol"},"indented-block":{pattern:/((\r?\n|\r)\2)([ \t]+)\S.*(?:(?:\r?\n|\r)\3.+)*(?=\2{2}|$)/,lookbehind:!0},comment:/^\/\/.*/m,title:{pattern:/^.+(?:\r?\n|\r)(?:={3,}|-{3,}|~{3,}|\^{3,}|\+{3,})$|^={1,5} +.+|^\.(?![\s.]).*/m,alias:"important",inside:{punctuation:/^(?:\.|=+)|(?:=+|-+|~+|\^+|\++)$/}},"attribute-entry":{pattern:/^:[^:\r\n]+:(?: .*?(?: \+(?:\r?\n|\r).*?)*)?$/m,alias:"tag"},attributes:i,hr:{pattern:/^'{3,}$/m,alias:"punctuation"},"page-break":{pattern:/^<{3,}$/m,alias:"punctuation"},admonition:{pattern:/^(?:TIP|NOTE|IMPORTANT|WARNING|CAUTION):/m,alias:"keyword"},callout:[{pattern:/(^[ \t]*)/m,lookbehind:!0,alias:"symbol"},{pattern:/<\d+>/,alias:"symbol"}],macro:{pattern:/\b[a-z\d][a-z\d-]*::?(?:(?:\S+)??\[(?:[^\]\\"]|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:{function:/^[a-z\d-]+(?=:)/,punctuation:/^::?/,attributes:{pattern:/(?:\[(?:[^\]\\"]|(["'])(?:(?!\1)[^\\]|\\.)*\1|\\.)*\])/,inside:i.inside}}},inline:{pattern:/(^|[^\\])(?:(?:\B\[(?:[^\]\\"]|(["'])(?:(?!\2)[^\\]|\\.)*\2|\\.)*\])?(?:\b_(?!\s)(?: _|[^_\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: _|[^_\\\r\n]|\\.)+)*_\b|\B``(?!\s).+?(?:(?:\r?\n|\r).+?)*''\B|\B`(?!\s)(?: ['`]|.)+?(?:(?:\r?\n|\r)(?: ['`]|.)+?)*['`]\B|\B(['*+#])(?!\s)(?: \3|(?!\3)[^\\\r\n]|\\.)+(?:(?:\r?\n|\r)(?: \3|(?!\3)[^\\\r\n]|\\.)+)*\3\B)|(?:\[(?:[^\]\\"]|(["'])(?:(?!\4)[^\\]|\\.)*\4|\\.)*\])?(?:(__|\*\*|\+\+\+?|##|\$\$|[~^]).+?(?:(?:\r?\n|\r).+?)*\5|\{[^}\r\n]+\}|\[\[\[?.+?(?:(?:\r?\n|\r).+?)*\]?\]\]|<<.+?(?:(?:\r?\n|\r).+?)*>>|\(\(\(?.+?(?:(?:\r?\n|\r).+?)*\)?\)\)))/m,lookbehind:!0,inside:{attributes:i,url:{pattern:/^(?:\[\[\[?.+?\]?\]\]|<<.+?>>)$/,inside:{punctuation:/^(?:\[\[\[?|<<)|(?:\]\]\]?|>>)$/}},"attribute-ref":{pattern:/^\{.+\}$/,inside:{variable:{pattern:/(^\{)[a-z\d,+_-]+/,lookbehind:!0},operator:/^[=?!#%@$]|!(?=[:}])/,punctuation:/^\{|\}$|::?/}},italic:{pattern:/^(['_])[\s\S]+\1$/,inside:{punctuation:/^(?:''?|__?)|(?:''?|__?)$/}},bold:{pattern:/^\*[\s\S]+\*$/,inside:{punctuation:/^\*\*?|\*\*?$/}},punctuation:/^(?:``?|\+{1,3}|##?|\$\$|[~^]|\(\(\(?)|(?:''?|\+{1,3}|##?|\$\$|[~^`]|\)?\)\))$/}},replacement:{pattern:/\((?:C|TM|R)\)/,alias:"builtin"},entity:/&#?[\da-z]{1,8};/i,"line-continuation":{pattern:/(^| )\+$/m,lookbehind:!0,alias:"punctuation"}},i.inside.interpreted.inside.rest={macro:e.languages.asciidoc.macro,inline:e.languages.asciidoc.inline,replacement:e.languages.asciidoc.replacement,entity:e.languages.asciidoc.entity},e.languages.asciidoc["passthrough-block"].inside.rest={macro:e.languages.asciidoc.macro},e.languages.asciidoc["literal-block"].inside.rest={callout:e.languages.asciidoc.callout},e.languages.asciidoc.table.inside.rest={"comment-block":e.languages.asciidoc["comment-block"],"passthrough-block":e.languages.asciidoc["passthrough-block"],"literal-block":e.languages.asciidoc["literal-block"],"other-block":e.languages.asciidoc["other-block"],"list-punctuation":e.languages.asciidoc["list-punctuation"],"indented-block":e.languages.asciidoc["indented-block"],comment:e.languages.asciidoc.comment,title:e.languages.asciidoc.title,"attribute-entry":e.languages.asciidoc["attribute-entry"],attributes:e.languages.asciidoc.attributes,hr:e.languages.asciidoc.hr,"page-break":e.languages.asciidoc["page-break"],admonition:e.languages.asciidoc.admonition,"list-label":e.languages.asciidoc["list-label"],callout:e.languages.asciidoc.callout,macro:e.languages.asciidoc.macro,inline:e.languages.asciidoc.inline,replacement:e.languages.asciidoc.replacement,entity:e.languages.asciidoc.entity,"line-continuation":e.languages.asciidoc["line-continuation"]},e.languages.asciidoc["other-block"].inside.rest={table:e.languages.asciidoc.table,"list-punctuation":e.languages.asciidoc["list-punctuation"],"indented-block":e.languages.asciidoc["indented-block"],comment:e.languages.asciidoc.comment,"attribute-entry":e.languages.asciidoc["attribute-entry"],attributes:e.languages.asciidoc.attributes,hr:e.languages.asciidoc.hr,"page-break":e.languages.asciidoc["page-break"],admonition:e.languages.asciidoc.admonition,"list-label":e.languages.asciidoc["list-label"],macro:e.languages.asciidoc.macro,inline:e.languages.asciidoc.inline,replacement:e.languages.asciidoc.replacement,entity:e.languages.asciidoc.entity,"line-continuation":e.languages.asciidoc["line-continuation"]},e.languages.asciidoc.title.inside.rest={macro:e.languages.asciidoc.macro,inline:e.languages.asciidoc.inline,replacement:e.languages.asciidoc.replacement,entity:e.languages.asciidoc.entity},e.hooks.add("wrap",function(r){r.type==="entity"&&(r.attributes.title=r.content.replace(/&/,"&"))})})(t);t.languages.asm6502={comment:/;.*/,directive:{pattern:/\.\w+(?= )/,alias:"keyword"},string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,opcode:{pattern:/\b(?:adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya|ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA)\b/,alias:"property"},hexnumber:{pattern:/#?\$[\da-f]{2,4}/i,alias:"string"},binarynumber:{pattern:/#?%[01]+/,alias:"string"},decimalnumber:{pattern:/#?\d+/,alias:"string"},register:{pattern:/\b[xya]\b/i,alias:"variable"}};t.languages.csharp=t.languages.extend("clike",{keyword:/\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\b/,string:[{pattern:/@("|')(?:\1\1|\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*?\1/,greedy:!0}],"class-name":[{pattern:/\b[A-Z]\w*(?:\.\w+)*\b(?=\s+\w+)/,inside:{punctuation:/\./}},{pattern:/(\[)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/(\b(?:class|interface)\s+[A-Z]\w*(?:\.\w+)*\s*:\s*)[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}},{pattern:/((?:\b(?:class|interface|new)\s+)|(?:catch\s+\())[A-Z]\w*(?:\.\w+)*\b/,lookbehind:!0,inside:{punctuation:/\./}}],number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)f?/i}),t.languages.insertBefore("csharp","class-name",{"generic-method":{pattern:/\w+\s*<[^>\r\n]+?>\s*(?=\()/,inside:{function:/^\w+/,"class-name":{pattern:/\b[A-Z]\w*(?:\.\w+)*\b/,inside:{punctuation:/\./}},keyword:t.languages.csharp.keyword,punctuation:/[<>(),.:]/}},preprocessor:{pattern:/(^\s*)#.*/m,lookbehind:!0,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\b/,lookbehind:!0,alias:"keyword"}}}}),t.languages.dotnet=t.languages.csharp;t.languages.autohotkey={comment:{pattern:/(^[^";\n]*("[^"\n]*?"[^"\n]*?)*)(?:;.*$|^\s*\/\*[\s\S]*\n\*\/)/m,lookbehind:!0},string:/"(?:[^"\n\r]|"")*"/m,function:/[^(); \t,\n+*\-=?>:\\\/<&%\[\]]+?(?=\()/m,tag:/^[ \t]*[^\s:]+?(?=:(?:[^:]|$))/m,variable:/%\w+%/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/\?|\/\/?=?|:=|\|[=|]?|&[=&]?|\+[=+]?|-[=-]?|\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\b(?:AND|NOT|OR)\b/,punctuation:/[{}[\]():,]/,boolean:/\b(?:true|false)\b/,selector:/\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|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|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|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|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/i,constant:/\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_isunicode|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/i,builtin:/\b(?:abs|acos|asc|asin|atan|ceil|chr|class|cos|dllcall|exp|fileexist|Fileopen|floor|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|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|strsplit|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|__New|__Call|__Get|__Set)\b/i,symbol:/\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\b/i,important:/#\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InstallKeybdHook|InstallMouseHook|KeyHistory|LTrim|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|WinActivateForce)\b/i,keyword:/\b(?:Abort|AboveNormal|Add|ahk_class|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Type|UnCheck|underline|Unicode|Unlock|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\b/i};t.languages.autoit={comment:[/;.*/,{pattern:/(^\s*)#(?:comments-start|cs)[\s\S]*?^\s*#(?:comments-end|ce)/m,lookbehind:!0}],url:{pattern:/(^\s*#include\s+)(?:<[^\r\n>]+>|"[^\r\n"]+")/m,lookbehind:!0},string:{pattern:/(["'])(?:\1\1|(?!\1)[^\r\n])*\1/,greedy:!0,inside:{variable:/([%$@])\w+\1/}},directive:{pattern:/(^\s*)#\w+/m,lookbehind:!0,alias:"keyword"},function:/\b\w+(?=\()/,variable:/[$@]\w+/,keyword:/\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\b/i,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b/i,boolean:/\b(?:True|False)\b/i,operator:/<[=>]?|[-+*\/=&>]=?|[?^]|\b(?:And|Or|Not)\b/i,punctuation:/[\[\]().,:]/};(function(e){var i={variable:[{pattern:/\$?\(\([\s\S]+?\)\)/,inside:{variable:[{pattern:/(^\$\(\([\s\S]+)\)\)/,lookbehind:!0},/^\$\(\(/],number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|-=|\+\+?|\+=|!=?|~|\*\*?|\*=|\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\^=?|\|\|?|\|=|\?|:/,punctuation:/\(\(?|\)\)?|,|;/}},{pattern:/\$\([^)]+\)|`[^`]+`/,greedy:!0,inside:{variable:/^\$\(|^`|\)$|`$/}},/\$(?:[\w#?*!@]+|\{[^}]+\})/i]};e.languages.bash={shebang:{pattern:/^#!\s*\/bin\/bash|^#!\s*\/bin\/sh/,alias:"important"},comment:{pattern:/(^|[^"{\\])#.*/,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<\s*)["']?(\w+?)["']?\s*\r?\n(?:[\s\S])*?\r?\n\2/,lookbehind:!0,greedy:!0,inside:i},{pattern:/(["'])(?:\\[\s\S]|\$\([^)]+\)|`[^`]+`|(?!\1)[^\\])*\1/,greedy:!0,inside:i}],variable:i.variable,function:{pattern:/(^|[\s;|&])(?:alias|apropos|apt-get|aptitude|aspell|awk|basename|bash|bc|bg|builtin|bzip2|cal|cat|cd|cfdisk|chgrp|chmod|chown|chroot|chkconfig|cksum|clear|cmp|comm|command|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|enable|env|ethtool|eval|exec|expand|expect|export|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|getopts|git|grep|groupadd|groupdel|groupmod|groups|gzip|hash|head|help|hg|history|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|jobs|join|kill|killall|less|link|ln|locate|logname|logout|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|make|man|mkdir|mkfifo|mkisofs|mknod|more|most|mount|mtools|mtr|mv|mmv|nano|netstat|nice|nl|nohup|notify-send|npm|nslookup|open|op|passwd|paste|pathchk|ping|pkill|popd|pr|printcap|printenv|printf|ps|pushd|pv|pwd|quota|quotacheck|quotactl|ram|rar|rcp|read|readarray|readonly|reboot|rename|renice|remsync|rev|rm|rmdir|rsync|screen|scp|sdiff|sed|seq|service|sftp|shift|shopt|shutdown|sleep|slocate|sort|source|split|ssh|stat|strace|su|sudo|sum|suspend|sync|tail|tar|tee|test|time|timeout|times|touch|top|traceroute|trap|tr|tsort|tty|type|ulimit|umask|umount|unalias|uname|unexpand|uniq|units|unrar|unshar|uptime|useradd|userdel|usermod|users|uuencode|uudecode|v|vdir|vi|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yes|zip)(?=$|[\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\s;|&])(?:let|:|\.|if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)(?=$|[\s;|&])/,lookbehind:!0},boolean:{pattern:/(^|[\s;|&])(?:true|false)(?=$|[\s;|&])/,lookbehind:!0},operator:/&&?|\|\|?|==?|!=?|<<>|<=?|>=?|=~/,punctuation:/\$?\(\(?|\)\)?|\.\.|[{}[\];]/};var r=i.variable[1].inside;r.string=e.languages.bash.string,r.function=e.languages.bash.function,r.keyword=e.languages.bash.keyword,r.boolean=e.languages.bash.boolean,r.operator=e.languages.bash.operator,r.punctuation=e.languages.bash.punctuation,e.languages.shell=e.languages.bash})(t);t.languages.basic={comment:{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i,greedy:!0},number:/(?:\b\d+\.?\d*|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\$|\b)/i,function:/\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\$|\b)/i,operator:/<[=>]?|>=?|[+\-*\/^=&]|\b(?:AND|EQV|IMP|NOT|OR|XOR)\b/i,punctuation:/[,;:()]/};(function(e){var i=/%%?[~:\w]+%?|!\S+!/,r={pattern:/\/[a-z?]+(?=[ :]|$):?|-[a-z]\b|--[a-z-]+\b/im,alias:"attr-name",inside:{punctuation:/:/}},d=/"[^"]*"/,o=/(?:\b|-)\d+\b/;e.languages.batch={comment:[/^::.*/m,{pattern:/((?:^|[&(])[ \t]*)rem\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0}],label:{pattern:/^:.*/m,alias:"property"},command:[{pattern:/((?:^|[&(])[ \t]*)for(?: ?\/[a-z?](?:[ :](?:"[^"]*"|\S+))?)* \S+ in \([^)]+\) do/im,lookbehind:!0,inside:{keyword:/^for\b|\b(?:in|do)\b/i,string:d,parameter:r,variable:i,number:o,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*)if(?: ?\/[a-z?](?:[ :](?:"[^"]*"|\S+))?)* (?:not )?(?:cmdextversion \d+|defined \w+|errorlevel \d+|exist \S+|(?:"[^"]*"|\S+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:"[^"]*"|\S+))/im,lookbehind:!0,inside:{keyword:/^if\b|\b(?:not|cmdextversion|defined|errorlevel|exist)\b/i,string:d,parameter:r,variable:i,number:o,operator:/\^|==|\b(?:equ|neq|lss|leq|gtr|geq)\b/i}},{pattern:/((?:^|[&()])[ \t]*)else\b/im,lookbehind:!0,inside:{keyword:/^else\b/i}},{pattern:/((?:^|[&(])[ \t]*)set(?: ?\/[a-z](?:[ :](?:"[^"]*"|\S+))?)* (?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^set\b/i,string:d,parameter:r,variable:[i,/\w+(?=(?:[*\/%+\-&^|]|<<|>>)?=)/],number:o,operator:/[*\/%+\-&^|]=?|<<=?|>>=?|[!~_=]/,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \t]*@?)\w+\b(?:[^^&)\r\n]|\^(?:\r\n|[\s\S]))*/im,lookbehind:!0,inside:{keyword:/^\w+\b/i,string:d,parameter:r,label:{pattern:/(^\s*):\S+/m,lookbehind:!0,alias:"property"},variable:i,number:o,operator:/\^/}}],operator:/[&@]/,punctuation:/[()']/}})(t);t.languages.bison=t.languages.extend("c",{}),t.languages.insertBefore("bison","comment",{bison:{pattern:/^[\s\S]*?%%[\s\S]*?%%/,inside:{c:{pattern:/%\{[\s\S]*?%\}|\{(?:\{[^}]*\}|[^{}])*\}/,inside:{delimiter:{pattern:/^%?\{|%?\}$/,alias:"punctuation"},"bison-variable":{pattern:/[$@](?:<[^\s>]+>)?[\w$]+/,alias:"variable",inside:{punctuation:/<|>/}},rest:t.languages.c}},comment:t.languages.c.comment,string:t.languages.c.string,property:/\S+(?=:)/,keyword:/%\w+/,number:{pattern:/(^|[^@])\b(?:0x[\da-f]+|\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\[\]<>]/}}});t.languages.brainfuck={pointer:{pattern:/<|>/,alias:"keyword"},increment:{pattern:/\+/,alias:"inserted"},decrement:{pattern:/-/,alias:"deleted"},branching:{pattern:/\[|\]/,alias:"important"},operator:/[.,]/,comment:/\S+/};t.languages.bro={comment:{pattern:/(^|[^\\$])#.*/,lookbehind:!0,inside:{italic:/\b(?:TODO|FIXME|XXX)\b/}},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},boolean:/\b[TF]\b/,function:{pattern:/(?:function|hook|event) \w+(?:::\w+)?/,inside:{keyword:/^(?:function|hook|event)/}},variable:{pattern:/(?:global|local) \w+/i,inside:{keyword:/(?:global|local)/}},builtin:/(?:@(?:load(?:-(?:sigs|plugin))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,constant:{pattern:/const \w+/i,inside:{keyword:/const/}},keyword:/\b(?:break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\b/,operator:/--?|\+\+?|!=?=?|<=?|>=?|==?=?|&&|\|\|?|\?|\*|\/|~|\^|%/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i,punctuation:/[{}[\];(),.:]/};t.languages.cpp=t.languages.extend("c",{keyword:/\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\b/,boolean:/\b(?:true|false)\b/,operator:/--?|\+\+?|!=?|<{1,2}=?|>{1,2}=?|->|:{1,2}|={1,2}|\^|~|%|&{1,2}|\|\|?|\?|\*|\/|\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\b/}),t.languages.insertBefore("cpp","keyword",{"class-name":{pattern:/(class\s+)\w+/i,lookbehind:!0}}),t.languages.insertBefore("cpp","string",{"raw-string":{pattern:/R"([^()\\ ]{0,16})\([\s\S]*?\)\1"/,alias:"string",greedy:!0}});t.languages.aspnet=t.languages.extend("markup",{"page-directive tag":{pattern:/<%\s*@.*%>/i,inside:{"page-directive tag":/<%\s*@\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,rest:t.languages.markup.tag.inside}},"directive tag":{pattern:/<%.*%>/i,inside:{"directive tag":/<%\s*?[$=%#:]{0,2}|%>/i,rest:t.languages.csharp}}}),t.languages.aspnet.tag.pattern=/<(?!%)\/?[^\s>\/]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,t.languages.insertBefore("inside","punctuation",{"directive tag":t.languages.aspnet["directive tag"]},t.languages.aspnet.tag.inside["attr-value"]),t.languages.insertBefore("aspnet","comment",{"asp comment":/<%--[\s\S]*?--%>/}),t.languages.insertBefore("aspnet",t.languages.javascript?"script":"tag",{"asp script":{pattern:/()[\s\S]*?(?=<\/script>)/i,lookbehind:!0,inside:t.languages.csharp||{}}});t.languages.arduino=t.languages.extend("cpp",{keyword:/\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\b/,builtin:/\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|IPAddress|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\b/,constant:/\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\b/});(function(e){var i=/#(?!\{).+/,r={pattern:/#\{[^}]+\}/,alias:"variable"};e.languages.coffeescript=e.languages.extend("javascript",{comment:i,string:[{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0},{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,inside:{interpolation:r}}],keyword:/\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\b/,"class-member":{pattern:/@(?!\d)\w+/,alias:"variable"}}),e.languages.insertBefore("coffeescript","comment",{"multiline-comment":{pattern:/###[\s\S]+?###/,alias:"comment"},"block-regex":{pattern:/\/{3}[\s\S]*?\/{3}/,alias:"regex",inside:{comment:i,interpolation:r}}}),e.languages.insertBefore("coffeescript","string",{"inline-javascript":{pattern:/`(?:\\[\s\S]|[^\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"},rest:e.languages.javascript}},"multiline-string":[{pattern:/'''[\s\S]*?'''/,greedy:!0,alias:"string"},{pattern:/"""[\s\S]*?"""/,greedy:!0,alias:"string",inside:{interpolation:r}}]}),e.languages.insertBefore("coffeescript","keyword",{property:/(?!\d)\w+(?=\s*:(?!:))/}),delete e.languages.coffeescript["template-string"]})(t);t.languages.clojure={comment:/;+.*/,string:/"(?:\\.|[^\\"\r\n])*"/,operator:/(?:::|[:|'])\b[a-z][\w*+!?-]*\b/i,keyword:{pattern:/([^\w+*'?-])(?:def|if|do|let|\.\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\.|new|set!|def\-|defn|defn\-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\*|\+|\-|\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\?|ensure|eval|every\?|false\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\*|list|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\?|new|newline|next|nil\?|node|not|not-any\?|not-every\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\?|split-at|split-with|str|string\?|struct|struct-map|subs|subvec|symbol|symbol\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\?|union|up|update-proxy|val|vals|var-get|var-set|var\?|vector|vector-zip|vector\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\?|zipmap|zipper)(?=[^\w+*'?-])/,lookbehind:!0},boolean:/\b(?:true|false|nil)\b/,number:/\b[0-9A-Fa-f]+\b/,punctuation:/[{}\[\](),]/};(function(e){e.languages.ruby=e.languages.extend("clike",{comment:[/#.*/,{pattern:/^=begin(?:\r?\n|\r)(?:.*(?:\r?\n|\r))*?=end/m,greedy:!0}],keyword:/\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\b/});var i={pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"tag"},rest:e.languages.ruby}};e.languages.insertBefore("ruby","keyword",{regex:[{pattern:/%r([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[gim]{0,3}/,greedy:!0,inside:{interpolation:i}},{pattern:/%r\((?:[^()\\]|\\[\s\S])*\)[gim]{0,3}/,greedy:!0,inside:{interpolation:i}},{pattern:/%r\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}[gim]{0,3}/,greedy:!0,inside:{interpolation:i}},{pattern:/%r\[(?:[^\[\]\\]|\\[\s\S])*\][gim]{0,3}/,greedy:!0,inside:{interpolation:i}},{pattern:/%r<(?:[^<>\\]|\\[\s\S])*>[gim]{0,3}/,greedy:!0,inside:{interpolation:i}},{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/[gim]{0,3}(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0}],variable:/[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\w*(?:[?!]|\b)/,lookbehind:!0}}),e.languages.insertBefore("ruby","number",{builtin:/\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\b/,constant:/\b[A-Z]\w*(?:[?!]|\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{interpolation:i}},{pattern:/%[qQiIwWxs]?\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0,inside:{interpolation:i}},{pattern:/%[qQiIwWxs]?\{(?:[^#{}\\]|#(?:\{[^}]+\})?|\\[\s\S])*\}/,greedy:!0,inside:{interpolation:i}},{pattern:/%[qQiIwWxs]?\[(?:[^\[\]\\]|\\[\s\S])*\]/,greedy:!0,inside:{interpolation:i}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0,inside:{interpolation:i}},{pattern:/("|')(?:#\{[^}]+\}|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:i}}]})(t);t.languages.csp={directive:{pattern:/\b(?:(?:base-uri|form-action|frame-ancestors|plugin-types|referrer|reflected-xss|report-to|report-uri|require-sri-for|sandbox) |(?:block-all-mixed-content|disown-opener|upgrade-insecure-requests)(?: |;)|(?:child|connect|default|font|frame|img|manifest|media|object|script|style|worker)-src )/i,alias:"keyword"},safe:{pattern:/'(?:self|none|strict-dynamic|(?:nonce-|sha(?:256|384|512)-)[a-zA-Z\d+=\/]+)'/,alias:"selector"},unsafe:{pattern:/(?:'unsafe-inline'|'unsafe-eval'|'unsafe-hashed-attributes'|\*)/,alias:"function"}};t.languages.css.selector={pattern:/[^{}\s][^{}]*(?=\s*\{)/,inside:{"pseudo-element":/:(?:after|before|first-letter|first-line|selection)|::[-\w]+/,"pseudo-class":/:[-\w]+(?:\(.*\))?/,class:/\.[-:.\w]+/,id:/#[-:.\w]+/,attribute:/\[[^\]]+\]/}},t.languages.insertBefore("css","function",{hexcode:/#[\da-f]{3,8}/i,entity:/\\[\da-f]{1,8}/i,number:/[\d%.]+/});t.languages.d=t.languages.extend("clike",{string:[/\b[rx]"(?:\\[\s\S]|[^\\"])*"[cwd]?/,/\bq"(?:\[[\s\S]*?\]|\([\s\S]*?\)|<[\s\S]*?>|\{[\s\S]*?\})"/,/\bq"([_a-zA-Z][_a-zA-Z\d]*)(?:\r?\n|\r)[\s\S]*?(?:\r?\n|\r)\1"/,/\bq"(.)[\s\S]*?\1"/,/'(?:\\'|\\?[^']+)'/,/(["`])(?:\\[\s\S]|(?!\1)[^\\])*\1[cwd]?/],number:[/\b0x\.?[a-f\d_]+(?:(?!\.\.)\.[a-f\d_]*)?(?:p[+-]?[a-f\d_]+)?[ulfi]*/i,{pattern:/((?:\.\.)?)(?:\b0b\.?|\b|\.)\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:e[+-]?\d[\d_]*)?[ulfi]*/i,lookbehind:!0}],keyword:/\$|\b(?:abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\b/,operator:/\|[|=]?|&[&=]?|\+[+=]?|-[-=]?|\.?\.\.|=[>=]?|!(?:i[ns]\b|<>?=?|>=?|=)?|\bi[ns]\b|(?:<[<>]?|>>?>?|\^\^|[*\/%^~])=?/}),t.languages.d.comment=[/^\s*#!.+/,{pattern:/(^|[^\\])\/\+(?:\/\+[\s\S]*?\+\/|[\s\S])*?\+\//,lookbehind:!0}].concat(t.languages.d.comment),t.languages.insertBefore("d","comment",{"token-string":{pattern:/\bq\{(?:\{[^}]*\}|[^}])*\}/,alias:"string"}}),t.languages.insertBefore("d","keyword",{property:/\B@\w*/}),t.languages.insertBefore("d","function",{register:{pattern:/\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\d))\b|\bST(?:\([0-7]\)|\b)/,alias:"variable"}});t.languages.dart=t.languages.extend("clike",{string:[{pattern:/r?("""|''')[\s\S]*?\1/,greedy:!0},{pattern:/r?("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],keyword:[/\b(?:async|sync|yield)\*/,/\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\b/],operator:/\bis!|\b(?:as|is)\b|\+\+|--|&&|\|\||<<=?|>>=?|~(?:\/=?)?|[+\-*\/%&^|=!<>]=?|\?/}),t.languages.insertBefore("dart","function",{metadata:{pattern:/@\w+/,alias:"symbol"}});t.languages.diff={coord:[/^(?:\*{3}|-{3}|\+{3}).*$/m,/^@@.*@@$/m,/^\d+.*$/m],deleted:/^[-<].*$/m,inserted:/^[+>].*$/m,diff:{pattern:/^!(?!!).+$/m,alias:"important"}};var w={property:{pattern:/(?:{{|{%)[\s\S]*?(?:%}|}})/g,greedy:!0,inside:{string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:/\b(?:\||load|verbatim|widthratio|ssi|firstof|for|url|ifchanged|csrf_token|lorem|ifnotequal|autoescape|now|templatetag|debug|cycle|ifequal|regroup|comment|filter|endfilter|if|spaceless|with|extends|block|include|else|empty|endif|endfor|as|endblock|endautoescape|endverbatim|trans|endtrans|[Tt]rue|[Ff]alse|[Nn]one|in|is|static|macro|endmacro|call|endcall|set|endset|raw|endraw)\b/,operator:/[-+=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,function:/\b(?:_|abs|add|addslashes|attr|batch|callable|capfirst|capitalize|center|count|cut|d|date|default|default_if_none|defined|dictsort|dictsortreversed|divisibleby|e|equalto|escape|escaped|escapejs|even|filesizeformat|first|float|floatformat|force_escape|forceescape|format|get_digit|groupby|indent|int|iriencode|iterable|join|last|length|length_is|linebreaks|linebreaksbr|linenumbers|list|ljust|lower|make_list|map|mapping|number|odd|phone2numeric|pluralize|pprint|random|reject|rejectattr|removetags|replace|reverse|rjust|round|safe|safeseq|sameas|select|selectattr|sequence|slice|slugify|sort|string|stringformat|striptags|sum|time|timesince|timeuntil|title|trim|truncate|truncatechars|truncatechars_html|truncatewords|truncatewords_html|undefined|unordered_list|upper|urlencode|urlize|urlizetrunc|wordcount|wordwrap|xmlattr|yesno)\b/,important:/\b-?\d+(?:\.\d+)?\b/,variable:/\b\w+?\b/,punctuation:/[[\];(),.:]/}}};t.languages.django=t.languages.extend("markup",{comment:/(?:)/}),t.languages.django.tag.pattern=/<\/?(?!\d)[^\s>\/=$<]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^>=]+))?)*\s*\/?>/i,t.languages.insertBefore("django","entity",w),t.languages.insertBefore("inside","tag",w,t.languages.django.tag),t.languages.javascript&&(t.languages.insertBefore("inside","string",w,t.languages.django.script),t.languages.django.script.inside.string.inside=w),t.languages.css&&(t.languages.insertBefore("inside","atrule",{tag:w.property},t.languages.django.style),t.languages.django.style.inside.string.inside=w),t.languages.jinja2=t.languages.django;t.languages.docker={keyword:{pattern:/(^\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\s)/im,lookbehind:!0},string:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,comment:/#.*/,punctuation:/---|\.\.\.|[:[\]{}\-,|>?]/},t.languages.dockerfile=t.languages.docker;t.languages.eiffel={comment:/--.*/,string:[{pattern:/"([^[]*)\[[\s\S]*?\]\1"/,greedy:!0},{pattern:/"([^{]*)\{[\s\S]*?\}\1"/,greedy:!0},{pattern:/"(?:%\s+%|%.|[^%"\r\n])*"/,greedy:!0}],char:/'(?:%.|[^%'\r\n])+'/,keyword:/\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\b/i,boolean:/\b(?:True|False)\b/i,"class-name":{pattern:/\b[A-Z][\dA-Z_]*\b/,alias:"builtin"},number:[/\b0[xcb][\da-f](?:_*[\da-f])*\b/i,/(?:\d(?:_*\d)*)?\.(?:(?:\d(?:_*\d)*)?e[+-]?)?\d(?:_*\d)*|\d(?:_*\d)*\.?/i],punctuation:/:=|<<|>>|\(\||\|\)|->|\.(?=\w)|[{}[\];(),:?]/,operator:/\\\\|\|\.\.\||\.\.|\/[~\/=]?|[><]=?|[-+*^=~]/};t.languages.elixir={comment:{pattern:/#.*/m,lookbehind:!0},regex:{pattern:/~[rR](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:("""|''')(?:\\[\s\S]|(?!\1)[^\\])+\1|([\/|"'])(?:\\.|(?!\2)[^\\\r\n])+\2|\((?:\\.|[^\\)\r\n])+\)|\[(?:\\.|[^\\\]\r\n])+\]|\{(?:\\.|#\{[^}]+\}|[^\\}\r\n])+\}|<(?:\\.|[^\\>\r\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/("""|''')[\s\S]*?\1/,greedy:!0,inside:{}},{pattern:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\w+/,lookbehind:!0,alias:"symbol"},"attr-name":/\w+:(?!:)/,capture:{pattern:/(^|[^&])&(?:[^&\s\d()][^\s()]*|(?=\())/,lookbehind:!0,alias:"function"},argument:{pattern:/(^|[^&])&\d+/,lookbehind:!0,alias:"variable"},attribute:{pattern:/@\w+/,alias:"variable"},number:/\b(?:0[box][a-f\d_]+|\d[\d_]*)(?:\.[\d_]+)?(?:e[+-]?[\d_]+)?\b/i,keyword:/\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\b/,boolean:/\b(?:true|false|nil)\b/,operator:[/\bin\b|&&?|\|[|>]?|\\\\|::|\.\.\.?|\+\+?|-[->]?|<[-=>]|>=|!==?|\B!|=(?:==?|[>~])?|[*\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\[\]{}()]/},t.languages.elixir.string.forEach(function(e){e.inside={interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:t.languages.elixir}}}});t.languages.elm={comment:/--.*|{-[\s\S]*?-}/,char:{pattern:/'(?:[^\\'\r\n]|\\(?:[abfnrtv\\']|\d+|x[0-9a-fA-F]+))'/,greedy:!0},string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/"(?:[^\\"\r\n]|\\(?:[abfnrtv\\"]|\d+|x[0-9a-fA-F]+))*"/,greedy:!0}],import_statement:{pattern:/^\s*import\s+[A-Z]\w*(?:\.[A-Z]\w*)*(?:\s+as\s+([A-Z]\w*)(?:\.[A-Z]\w*)*)?(?:\s+exposing\s+)?/m,inside:{keyword:/\b(?:import|as|exposing)\b/}},keyword:/\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\b/,builtin:/\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[+\-\/*=.$<>:&|^?%#@~!]{2,}|[+\-\/*=$<>:&|^?%#@~!]/,hvariable:/\b(?:[A-Z]\w*\.)*[a-z]\w*\b/,constant:/\b(?:[A-Z]\w*\.)*[A-Z]\w*\b/,punctuation:/[{}[\]|(),.:]/};t.languages["markup-templating"]={},Object.defineProperties(t.languages["markup-templating"],{buildPlaceholders:{value:function(e,i,r,d){e.language===i&&(e.tokenStack=[],e.code=e.code.replace(r,function(o){if(typeof d=="function"&&!d(o))return o;for(var n=e.tokenStack.length;e.code.indexOf("___"+i.toUpperCase()+n+"___")!==-1;)++n;return e.tokenStack[n]=o,"___"+i.toUpperCase()+n+"___"}),e.grammar=t.languages.markup)}},tokenizePlaceholders:{value:function(e,i){if(e.language===i&&e.tokenStack){e.grammar=t.languages[i];var r=0,d=Object.keys(e.tokenStack),o=function(n){if(!(r>=d.length))for(var a=0;a-1){++r;var u,m=p.substring(0,g),f=new t.Token(i,t.tokenize(c,e.grammar,i),"language-"+i,c),A=p.substring(g+("___"+i.toUpperCase()+l+"___").length);if(m||A?(u=[m,f,A].filter(function(b){return!!b}),o(u)):u=f,typeof s=="string"?Array.prototype.splice.apply(n,[a,1].concat(u)):s.content=u,r>=d.length)break}}else s.content&&typeof s.content!="string"&&o(s.content)}};o(e.tokens)}}}});t.languages.erlang={comment:/%.+/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},"quoted-function":{pattern:/'(?:\\.|[^\\'\r\n])+'(?=\()/,alias:"function"},"quoted-atom":{pattern:/'(?:\\.|[^\\'\r\n])+'/,alias:"atom"},boolean:/\b(?:true|false)\b/,keyword:/\b(?:fun|when|case|of|end|if|receive|after|try|catch)\b/,number:[/\$\\?./,/\d+#[a-z0-9]+/i,/(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?/i],function:/\b[a-z][\w@]*(?=\()/,variable:{pattern:/(^|[^@])(?:\b|\?)[A-Z_][\w@]*/,lookbehind:!0},operator:[/[=\/<>:]=|=[:\/]=|\+\+?|--?|[=*\/!]|\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\b[a-z][\w@]*/,punctuation:/[()[\]{}:;,.#|]|<<|>>/};t.languages.fsharp=t.languages.extend("clike",{comment:[{pattern:/(^|[^\\])\(\*[\s\S]*?\*\)/,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],keyword:/\b(?:let|return|use|yield)(?:!\B|\b)|\b(abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\b/,string:{pattern:/(?:"""[\s\S]*?"""|@"(?:""|[^"])*"|("|')(?:\\[\s\S]|(?!\1)[^\\])*\1)B?/,greedy:!0},number:[/\b0x[\da-fA-F]+(?:un|lf|LF)?\b/,/\b0b[01]+(?:y|uy)?\b/,/(?:\b\d+\.?\d*|\B\.\d+)(?:[fm]|e[+-]?\d+)?\b/i,/\b\d+(?:[IlLsy]|u[lsy]?|UL)?\b/]}),t.languages.insertBefore("fsharp","keyword",{preprocessor:{pattern:/^[^\r\n\S]*#.*/m,alias:"property",inside:{directive:{pattern:/(\s*#)\b(?:else|endif|if|light|line|nowarn)\b/,lookbehind:!0,alias:"keyword"}}}});(function(e){e.languages.flow=e.languages.extend("javascript",{}),e.languages.insertBefore("flow","keyword",{type:[{pattern:/\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\b/,alias:"tag"}]}),e.languages.flow["function-variable"].pattern=/[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*(?=\s*=\s*(?:function\b|(?:\([^()]*\)(?:\s*:\s*\w+)?|[_$a-z\xA0-\uFFFF][$\w\xA0-\uFFFF]*)\s*=>))/i,e.languages.insertBefore("flow","operator",{"flow-punctuation":{pattern:/\{\||\|\}/,alias:"punctuation"}}),e.util.type(e.languages.flow.keyword)!=="Array"&&(e.languages.flow.keyword=[e.languages.flow.keyword]),e.languages.flow.keyword.unshift({pattern:/(^|[^$]\b)(?:type|opaque|declare|Class)\b(?!\$)/,lookbehind:!0},{pattern:/(^|[^$]\B)\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\b(?!\$)/,lookbehind:!0})})(t);t.languages.fortran={"quoted-number":{pattern:/[BOZ](['"])[A-F0-9]+\1/i,alias:"number"},string:{pattern:/(?:\w+_)?(['"])(?:\1\1|&(?:\r\n?|\n)(?:\s*!.+(?:\r\n?|\n))?|(?!\1).)*(?:\1|&)/,inside:{comment:{pattern:/(&(?:\r\n?|\n)\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},boolean:/\.(?:TRUE|FALSE)\.(?:_\w+)?/i,number:/(?:\b\d+(?:\.\d*)?|\B\.\d+)(?:[ED][+-]?\d+)?(?:_\w+)?/i,keyword:[/\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\b/i,/\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\b/i,/\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\b/i,/\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\b/i],operator:[/\*\*|\/\/|=>|[=\/]=|[<>]=?|::|[+\-*=%]|\.(?:EQ|NE|LT|LE|GT|GE|NOT|AND|OR|EQV|NEQV)\.|\.[A-Z]+\./i,{pattern:/(^|(?!\().)\/(?!\))/,lookbehind:!0}],punctuation:/\(\/|\/\)|[(),;:&]/};t.languages.gedcom={"line-value":{pattern:/(^\s*\d+ +(?:@\w[\w!"$%&'()*+,\-.\/:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?\w+ +).+/m,lookbehind:!0,inside:{pointer:{pattern:/^@\w[\w!"$%&'()*+,\-.\/:;<=>?[\\\]^`{|}~\x80-\xfe #]*@$/,alias:"variable"}}},tag:{pattern:/(^\s*\d+ +(?:@\w[\w!"$%&'()*+,\-.\/:;<=>?[\\\]^`{|}~\x80-\xfe #]*@ +)?)\w+/m,lookbehind:!0,alias:"string"},level:{pattern:/(^\s*)\d+/m,lookbehind:!0,alias:"number"},pointer:{pattern:/@\w[\w!"$%&'()*+,\-.\/:;<=>?[\\\]^`{|}~\x80-\xfe #]*@/,alias:"variable"}};t.languages.gherkin={pystring:{pattern:/("""|''')[\s\S]+?\1/,alias:"string"},comment:{pattern:/((?:^|\r?\n|\r)[ \t]*)#.*/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[ \t]*)@\S*/,lookbehind:!0},feature:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|CaracterĆ­stica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|FonctionnalitĆ©|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|FuncÅ£ionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|FunktionalitƤt|FunktionalitĆ©it|FunzionalitĆ |Hwaet|HwƦt|Jellemző|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Ɩzellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|TĆ­nh năng|Trajto|VermoĆ«|VlastnosÅ„|Właściwość|Značilnost|Ī”Ļ…Ī½Ī±Ļ„ĻŒĻ„Ī·Ļ„Ī±|Λειτουργία|ŠœŠ¾Š³ŃƒŃ›Š½Š¾ŃŃ‚|Мөмкинлек|ŠžŃŠ¾Š±ŠøŠ½Š°|Двойство|Үзенчәлеклелек|Š¤ŃƒŠ½ŠŗŃ†ŠøŠ¾Š½Š°Š»|Š¤ŃƒŠ½ŠŗŃ†ŠøŠ¾Š½Š°Š»Š½Š¾ŃŃ‚|Š¤ŃƒŠ½ŠŗŃ†ŠøŃ|Š¤ŃƒŠ½ŠŗŃ†Ń–Š¾Š½Š°Š»|תכונה|خاصية|خصوصیت|ŲµŁ„Ų§Ų­ŪŒŲŖ|کاروبار کی ضرورت|وِیژگی|ą¤°ą„‚ą¤Ŗ ą¤²ą„‡ą¤–|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ą²¹ą³†ą²šą³ą²šą²³|ąø„ąø§ąø²ąø”ąø•ą¹‰ąø­ąø‡ąøąø²ąø£ąø—ąø²ąø‡ąø˜ąøøąø£ąøąø“ąøˆ|ควาดสาดารถ|โครงหคัก|기늄|ćƒ•ć‚£ćƒ¼ćƒćƒ£|功能|機能):(?:[^:]+(?:\r?\n|\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]+/,lookbehind:!0},keyword:/[^:\r\n]+:/}},scenario:{pattern:/((?:^|\r?\n|\r)[ \t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ɔr|Agtergrond|All y'all|Antecedentes|Antecedents|AtburưarĆ”s|AtburưarĆ”sir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cįŗ£nh|Cefndir|Cenario|CenĆ”rio|Cenario de Fundo|CenĆ”rio de Fundo|Cenarios|CenĆ”rios|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|DƦmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do CenĆ”rio|Dis is what went down|Dữ liệu|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do CenĆ”rio|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókƶnyv|Forgatókƶnyv vĆ”zlat|Fundo|GeƧmiş|ghantoH|Grundlage|Hannergrond|HĆ”ttĆ©r|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bįŗ£n|Khung tƬnh huống|Kịch bįŗ£n|Koncept|Konsep skenario|KontĆØks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|Lýsing AtburưarĆ”sar|Lýsing DƦma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|NĆ”Ärt ScenĆ”ra|NĆ”Ärt ScĆ©nÔře|NĆ”Ärt ScenĆ”ru|Oris scenarija|Ɩrnekler|Osnova|Osnova ScenĆ”ra|Osnova scĆ©nÔře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|PĆ©ldĆ”k|Piemēri|Plan du scĆ©nario|Plan du ScĆ©nario|Plan senaryo|Plan Senaryo|Plang vum Szenario|PozadĆ­|Pozadie|Pozadina|PrĆ­klady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|ScenĆ”r|ScĆ©nÔř|Scenarie|Scenarij|Scenarijai|Scenarijaus Å”ablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|ScĆ©nario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ưe|Se the|Se þe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hwƦr swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|TƬnh huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo\-ho\-ho|You'll wanna|Założenia|ΠαραΓείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Ī„Ļ€ĻŒĪ²Ī±ĪøĻĪæ|ŠšŠµŃ€ŠµŃˆ|ŠšŠ¾Š½Ń‚ŠµŠŗŃŃ‚|ŠšŠ¾Š½Ń†ŠµŠæŃ‚|ŠœŠøŃŠ°Š»Š»Š°Ń€|ŠœŠøŃŠ¾Š»Š»Š°Ń€|ŠžŃŠ½Š¾Š²Š°|ŠŸŠµŃ€ŠµŠ“ŃƒŠ¼Š¾Š²Š°|ПозаГина|ŠŸŃ€ŠµŠ“ŠøŃŃ‚Š¾Ń€ŠøŃ|ŠŸŃ€ŠµŠ“Ń‹ŃŃ‚Š¾Ń€ŠøŃ|ŠŸŃ€ŠøŠŗŠ»Š°Š“Šø|ŠŸŃ€ŠøŠ¼ŠµŃ€|ŠŸŃ€ŠøŠ¼ŠµŃ€Šø|ŠŸŃ€ŠøŠ¼ŠµŃ€Ń‹|Рамка на сценарий|Дкица|Š”Ń‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š° ŃŃ†ŠµŠ½Š°Ń€ŠøŃ˜Š°|Š”Ń‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š° ŃŃ†ŠµŠ½Š°Ń€ŠøŃ|Š”Ń‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š° ŃŃ†ŠµŠ½Š°Ń€Ń–ŃŽ|Дценарий|Дценарий ŃŃ‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š°ŃŠø|Дценарийның Ń‚Ó©Š·ŠµŠ»ŠµŃˆŠµ|Š”Ń†ŠµŠ½Š°Ń€ŠøŃ˜Šø|Дценарио|Дценарій|Тарих|Үрнәкләр|×“×•×’×ž××•×Ŗ|רקע|תבנית תרחיש|תרחיש|Ų§Ł„Ų®Ł„ŁŁŠŲ©|Ų§Ł„ŚÆŁˆŪŒ Ų³Ł†Ų§Ų±ŪŒŁˆ|امثلة|پس منظر|Ų²Ł…ŪŒŁ†Ł‡|Ų³Ł†Ų§Ų±ŪŒŁˆ|Ų³ŁŠŁ†Ų§Ų±ŁŠŁˆ|Ų³ŁŠŁ†Ų§Ų±ŁŠŁˆ Ł…Ų®Ų·Ų·|Ł…Ų«Ų§Ł„ŪŒŚŗ|منظر نامے کا خاکہ|منظرنامہ|Ł†Ł…ŁˆŁ†Ł‡ ها|उदाहरण|ą¤Ŗą¤°ą¤æą¤¦ą„ƒą¤¶ą„ą¤Æ|ą¤Ŗą¤°ą¤æą¤¦ą„ƒą¤¶ą„ą¤Æ ą¤°ą„‚ą¤Ŗą¤°ą„‡ą¤–ą¤¾|ą¤Ŗą„ƒą¤·ą„ą¤ ą¤­ą„‚ą¤®ą¤æ|ਉਦਾਹਰਨਾਂ|ąØŖąØŸąØ•ąØ„ąØ¾|ąØŖąØŸąØ•ąØ„ąØ¾ ąØ¢ąØ¾ąØ‚ąØšąØ¾|ąØŖąØŸąØ•ąØ„ąØ¾ ਰੂਪ ਰੇਖਾ|ąØŖąØæąØ›ą©‹ąØ•ą©œ|ఉదాహరణలు|ą°•ą°„ą°Øą°‚|ą°Øą±‡ą°Ŗą°„ą±ą°Æą°‚|ą°øą°Øą±ą°Øą°æą°µą±‡ą°¶ą°‚|ಉದಾಹರಣೆಗಳು|ಕ಄ಾಸಾರಾಂಶ|ವಿವರಣೆ|ą²¹ą²æą²Øą³ą²Øą³†ą²²ą³†|ą¹‚ąø„ąø£ąø‡ąøŖąø£ą¹‰ąø²ąø‡ąø‚ąø­ąø‡ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|ąøŠąøøąø”ąø‚ąø­ąø‡ąø•ąø±ąø§ąø­ąø¢ą¹ˆąø²ąø‡|ąøŠąøøąø”ąø‚ąø­ąø‡ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|แนวคณด|ąøŖąø£ąøøąø›ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|ė°°ź²½|ģ‹œė‚˜ė¦¬ģ˜¤|ģ‹œė‚˜ė¦¬ģ˜¤ ź°œģš”|예|ć‚µćƒ³ćƒ—ćƒ«|ć‚·ćƒŠćƒŖć‚Ŗ|ć‚·ćƒŠćƒŖć‚Ŗć‚¢ć‚¦ćƒˆćƒ©ć‚¤ćƒ³|ć‚·ćƒŠćƒŖć‚Ŗćƒ†ćƒ³ćƒ—ćƒ¬|ć‚·ćƒŠćƒŖć‚Ŗćƒ†ćƒ³ćƒ—ćƒ¬ćƒ¼ćƒˆ|ćƒ†ćƒ³ćƒ—ćƒ¬|例|例子|å‰§ęœ¬|å‰§ęœ¬å¤§ēŗ²|åŠ‡ęœ¬|åŠ‡ęœ¬å¤§ē¶±|åœŗę™Æ|åœŗę™Æå¤§ēŗ²|堓景|堓景大綱|čƒŒę™Æ):[^:\r\n]*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\r\n]*/,lookbehind:!0},keyword:/[^:\r\n]+:/}},"table-body":{pattern:/((?:\r?\n|\r)[ \t]*\|.+\|[^\r\n]*)+/,lookbehind:!0,inside:{outline:{pattern:/<[^>]+?>/,alias:"variable"},td:{pattern:/\s*[^\s|][^|]*/,alias:"string"},punctuation:/\|/}},"table-head":{pattern:/(?:\r?\n|\r)[ \t]*\|.+\|[^\r\n]*/,inside:{th:{pattern:/\s*[^\s|][^|]*/,alias:"variable"},punctuation:/\|/}},atrule:{pattern:/((?:\r?\n|\r)[ \t]+)(?:'ach|'a|'ej|7|a|A takĆ©|A taktiež|A tiež|A zĆ”roveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|AtĆØs|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biįŗæt|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|CĆ¢nd|Cando|Cand|Ce|Cuando|Če|Ɛa ưe|Ɛa|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|DaÅ£i fiind|Dați fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ɛurh|Eeldades|Ef|Eğer ki|Entao|EntĆ£o|Entón|Entonces|En|Epi|E|Ɖs|Etant donnĆ©e|Etant donnĆ©|Et|Ɖtant donnĆ©es|Ɖtant donnĆ©e|Ɖtant donnĆ©|Etant donnĆ©es|Etant donnĆ©s|Ɖtant donnĆ©s|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kadar|Kada|Kad|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|LĆØ sa a|LĆØ|Logo|Lorsqu'<|Lorsque|mƤ|Maar|Mais|Mając|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|NĆ„r|NƤr|Nato|Nhʰng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|SĆ„|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|ThƬ|Thurh|Toda|Too right|ugeholl|Und|Un|VĆ |vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zakładając|Zaradi|Zatati|ƞa þe|ƞa|ƞƔ|ƞegar|ƞurh|Αλλά|ΔεΓομένου|Και|ĪŒĻ„Ī±Ī½|Ī¤ĻŒĻ„Īµ|А також|Агар|Але|Али|Аммо|А|Ó˜Š³Ó™Ń€|Ó˜Š¹Ń‚ŠøŠŗ|Әмма|Бирок|Ва|Š’Ó™|ДаГено|Дано|Š”Š¾ŠæŃƒŃŃ‚ŠøŠ¼|Если|ЗаГате|ЗаГати|ЗаГато|И|І|К Ń‚Š¾Š¼Ńƒ же|КаГа|КаГ|ŠšŠ¾Š³Š°Ń‚Š¾|КогГа|Коли|Ләкин|Лекин|ŠÓ™Ń‚ŠøŅ—Ó™Š“Ó™|ŠŠµŃ…Š°Š¹|ŠŠ¾|ŠžŠ½Š“Š°|ŠŸŃ€ŠøŠæŃƒŃŃ‚ŠøŠ¼Š¾, що|ŠŸŃ€ŠøŠæŃƒŃŃ‚ŠøŠ¼Š¾|ŠŸŃƒŃŃ‚ŃŒ|Также|Та|ТогГа|ТоГі|То|УнГа|Һәм|Якщо|אבל|אזי|אז|×‘×”×™× ×Ŗ×Ÿ|וגם|כאשר|آنگاه|Ų§Ų°Ų§Ł‹|Ų§ŚÆŲ±|Ų§Ł…Ų§|اور|ŲØŲ§ فرض|بالفرض|بفرض|پھر|ŲŖŲØ|Ų«Ł…|Ų¬ŲØ|عندما|فرض کیا|Ł„ŁƒŁ†|Ł„ŪŒŚ©Ł†|متى|Ł‡Ł†ŚÆŲ§Ł…ŪŒ|و|अगर|और|कदा|ą¤•ą¤æą¤Øą„ą¤¤ą„|ą¤šą„‚ą¤‚ą¤•ą¤æ|जब|तऄा|तदा|तब|ą¤Ŗą¤°ą¤Øą„ą¤¤ą„|पर|यदि|ਅਤੇ|ąØœąØ¦ą©‹ąØ‚|ąØœąØæąØµą©‡ąØ‚ ਕਿ|ąØœą©‡ąØ•ąØ°|ਤਦ|ਪਰ|ą°…ą°Ŗą±ą°Ŗą±ą°”ą±|ఈ ą°Ŗą°°ą°æą°øą±ą°„ą°æą°¤ą°æą°²ą±‹|కాని|ą°šą±†ą°Ŗą±ą°Ŗą°¬ą°”ą°æą°Øą°¦ą°æ|మరియు|ಆದರೆ|ನಂತರ|ನೀಔಿದ|ą²®ą²¤ą³ą²¤ą³|ą²øą³ą²„ą²æą²¤ą²æą²Æą²Øą³ą²Øą³|ąøąø³ąø«ąø™ąø”ą¹ƒąø«ą¹‰|ดังนั้น|ą¹ąø•ą¹ˆ|ą¹€ąø”ąø·ą¹ˆąø­|แคะ|그러멓<|그리고<|단<|ė§Œģ•½<|ė§Œģ¼<|먼저<|씰걓<|ķ•˜ģ§€ė§Œ<|恋恤<|恗恋恗<|恟恠恗<|ならば<|悂恗<|並且<|但し<|ä½†ę˜Æ<|假如<|假定<|假設<|假设<|å‰ę<|åŒę—¶<|åŒę™‚<|å¹¶äø”<|当<|ē•¶<|č€Œäø”<|那么<|那麼<)(?=[ \t]+)/,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\\r\n])*"|'(?:\\.|[^'\\\r\n])*'/,inside:{outline:{pattern:/<[^>]+?>/,alias:"variable"}}},outline:{pattern:/<[^>]+?>/,alias:"variable"}};t.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\+.*/m,string:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/m,command:{pattern:/^.*\$ git .*$/m,inside:{parameter:/\s--?\w+/m}},coord:/^@@.*@@$/m,commit_sha1:/^commit \w{40}$/m};t.languages.glsl=t.languages.extend("clike",{comment:[/\/\*[\s\S]*?\*\//,/\/\/(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/],number:/(?:\b0x[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?)[ulf]*/i,keyword:/\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\b/}),t.languages.insertBefore("glsl","comment",{preprocessor:{pattern:/(^[ \t]*)#(?:(?:define|undef|if|ifdef|ifndef|else|elif|endif|error|pragma|extension|version|line)\b)?/m,lookbehind:!0,alias:"builtin"}});t.languages.go=t.languages.extend("clike",{keyword:/\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\b/,builtin:/\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\b/,boolean:/\b(?:_|iota|nil|true|false)\b/,operator:/[*\/%^!=]=?|\+[=+]?|-[=-]?|\|[=|]?|&(?:=|&|\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\.\.\./,number:/(?:\b0x[a-f\d]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e[-+]?\d+)?)i?/i,string:{pattern:/(["'`])(\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0}}),delete t.languages.go["class-name"];t.languages.graphql={comment:/#.*/,string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},number:/(?:\B-|\b)\d+(?:\.\d+)?(?:e[+-]?\d+)?\b/i,boolean:/\b(?:true|false)\b/,variable:/\$[a-z_]\w*/i,directive:{pattern:/@[a-z_]\w*/i,alias:"function"},"attr-name":/[a-z_]\w*(?=\s*:)/i,keyword:[{pattern:/(fragment\s+(?!on)[a-z_]\w*\s+|\.{3}\s*)on\b/,lookbehind:!0},/\b(?:query|fragment|mutation)\b/],operator:/!|=|\.{3}/,punctuation:/[!(){}\[\]:=,]/};t.languages.groovy=t.languages.extend("clike",{keyword:/\b(?:as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\b/,string:[{pattern:/("""|''')[\s\S]*?\1|(?:\$\/)(?:\$\/\$|[\s\S])*?\/\$/,greedy:!0},{pattern:/(["'\/])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],number:/\b(?:0b[01_]+|0x[\da-f_]+(?:\.[\da-f_p\-]+)?|[\d_]+(?:\.[\d_]+)?(?:e[+-]?[\d]+)?)[glidf]?\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\?[.:]?|\*(?:[.=]|\*=?)?|\.[@&]|\.\.<|\.{1,2}(?!\.)|-[-=>]?|\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\|[|=]?|\/=?|\^=?|%=?)/,lookbehind:!0},punctuation:/\.+|[{}[\];(),:$]/}),t.languages.insertBefore("groovy","string",{shebang:{pattern:/#!.+/,alias:"comment"}}),t.languages.insertBefore("groovy","punctuation",{"spock-block":/\b(?:setup|given|when|then|and|cleanup|expect|where):/}),t.languages.insertBefore("groovy","function",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0}}),t.hooks.add("wrap",function(e){if(e.language==="groovy"&&e.type==="string"){var i=e.content[0];if(i!="'"){var r=/([^\\])(?:\$(?:\{.*?\}|[\w.]+))/;i==="$"&&(r=/([^\$])(?:\$(?:\{.*?\}|[\w.]+))/),e.content=e.content.replace(/</g,"<").replace(/&/g,"&"),e.content=t.highlight(e.content,{expression:{pattern:r,lookbehind:!0,inside:t.languages.groovy}}),e.classes.push(i==="/"?"regex":"gstring")}}});(function(e){e.languages.haml={"multiline-comment":{pattern:/((?:^|\r?\n|\r)([\t ]*))(?:\/|-#).*(?:(?:\r?\n|\r)\2[\t ]+.+)*/,lookbehind:!0,alias:"comment"},"multiline-code":[{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*,[\t ]*(?:(?:\r?\n|\r)\2[\t ]+.*,[\t ]*)*(?:(?:\r?\n|\r)\2[\t ]+.+)/,lookbehind:!0,inside:{rest:e.languages.ruby}},{pattern:/((?:^|\r?\n|\r)([\t ]*)(?:[~-]|[&!]?=)).*\|[\t ]*(?:(?:\r?\n|\r)\2[\t ]+.*\|[\t ]*)*/,lookbehind:!0,inside:{rest:e.languages.ruby}}],filter:{pattern:/((?:^|\r?\n|\r)([\t ]*)):[\w-]+(?:(?:\r?\n|\r)(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"}}},markup:{pattern:/((?:^|\r?\n|\r)[\t ]*)<.+/,lookbehind:!0,inside:{rest:e.languages.markup}},doctype:{pattern:/((?:^|\r?\n|\r)[\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\r?\n|\r)[\t ]*)[%.#][\w\-#.]*[\w\-](?:\([^)]+\)|\{(?:\{[^}]+\}|[^}])+\}|\[[^\]]+\])*[\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\{(?:\{[^}]+\}|[^}])+\}/,lookbehind:!0,inside:{rest:e.languages.ruby}},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:"(?:\\.|[^\\"\r\n])*"|[^)\s]+)/,lookbehind:!0},"attr-name":/[\w:-]+(?=\s*!?=|\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\[[^\]]+\]/,inside:{rest:e.languages.ruby}}],punctuation:/[<>]/}},code:{pattern:/((?:^|\r?\n|\r)[\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:{rest:e.languages.ruby}},interpolation:{pattern:/#\{[^}]+\}/,inside:{delimiter:{pattern:/^#\{|\}$/,alias:"punctuation"},rest:e.languages.ruby}},punctuation:{pattern:/((?:^|\r?\n|\r)[\t ]*)[~=\-&!]+/,lookbehind:!0}};for(var i="((?:^|\\r?\\n|\\r)([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r)(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+",r=["css",{filter:"coffee",language:"coffeescript"},"erb","javascript","less","markdown","ruby","scss","textile"],d={},o=0,n=r.length;n>o;o++){var a=r[o];a=typeof a=="string"?{filter:a,language:a}:a,e.languages[a.language]&&(d["filter-"+a.filter]={pattern:RegExp(i.replace("{{filter_name}}",a.filter)),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},rest:e.languages[a.language]}})}e.languages.insertBefore("haml","filter",d)})(t);(function(e){e.languages.handlebars={comment:/\{\{![\s\S]*?\}\}/,delimiter:{pattern:/^\{\{\{?|\}\}\}?$/i,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,boolean:/\b(?:true|false)\b/,block:{pattern:/^(\s*~?\s*)[#\/]\S+?(?=\s*~?\s*$|\s)/i,lookbehind:!0,alias:"keyword"},brackets:{pattern:/\[[^\]]+\]/,inside:{punctuation:/\[|\]/,variable:/[\s\S]+/}},punctuation:/[!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~]/,variable:/[^!"#%&'()*+,.\/;<=>@\[\\\]^`{|}~\s]+/},e.hooks.add("before-tokenize",function(i){var r=/\{\{\{[\s\S]+?\}\}\}|\{\{[\s\S]+?\}\}/g;e.languages["markup-templating"].buildPlaceholders(i,"handlebars",r)}),e.hooks.add("after-tokenize",function(i){e.languages["markup-templating"].tokenizePlaceholders(i,"handlebars")})})(t);t.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\/])(?:--[^-!#$%*+=?&@|~.:<>^\\\/].*|{-[\s\S]*?-})/m,lookbehind:!0},char:/'(?:[^\\']|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|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|\d+|o[0-7]+|x[0-9a-fA-F]+))'/,string:{pattern:/"(?:[^\\"]|\\(?:[abfnrtv\\"'&]|\^[A-Z@[\]^_]|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|\d+|o[0-7]+|x[0-9a-fA-F]+)|\\\s+\\)*"/,greedy:!0},keyword:/\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\b/,import_statement:{pattern:/((?:\r?\n|\r|^)\s*)import\s+(?:qualified\s+)?(?:[A-Z][\w']*)(?:\.[A-Z][\w']*)*(?:\s+as\s+(?:[A-Z][_a-zA-Z0-9']*)(?:\.[A-Z][\w']*)*)?(?:\s+hiding\b)?/m,lookbehind:!0,inside:{keyword:/\b(?:import|qualified|as|hiding)\b/}},builtin:/\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\b/,number:/\b(?:\d+(?:\.\d+)?(?:e[+-]?\d+)?|0o[0-7]+|0x[0-9a-f]+)\b/i,operator:/\s\.\s|[-!#$%*+=?&@|~.:<>^\\\/]*\.[-!#$%*+=?&@|~.:<>^\\\/]+|[-!#$%*+=?&@|~.:<>^\\\/]+\.[-!#$%*+=?&@|~.:<>^\\\/]*|[-!#$%*+=?&@|~:<>^\\\/]+|`([A-Z][\w']*\.)*[_a-z][\w']*`/,hvariable:/\b(?:[A-Z][\w']*\.)*[_a-z][\w']*\b/,constant:/\b(?:[A-Z][\w']*\.)*[A-Z][\w']*\b/,punctuation:/[{}[\];(),.:]/};t.languages.haxe=t.languages.extend("clike",{string:{pattern:/(["'])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{interpolation:{pattern:/(^|[^\\])\$(?:\w+|\{[^}]+\})/,lookbehind:!0,inside:{interpolation:{pattern:/^\$\w*/,alias:"variable"}}}}},keyword:/\bthis\b|\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\.)\b/,operator:/\.{3}|\+\+?|-[->]?|[=!]=?|&&?|\|\|?|<[<=]?|>[>=]?|[*\/%~^]/}),t.languages.insertBefore("haxe","class-name",{regex:{pattern:/~\/(?:[^\/\\\r\n]|\\.)+\/[igmsu]*/,greedy:!0}}),t.languages.insertBefore("haxe","keyword",{preprocessor:{pattern:/#\w+/,alias:"builtin"},metadata:{pattern:/@:?\w+/,alias:"symbol"},reification:{pattern:/\$(?:\w+|(?=\{))/,alias:"variable"}}),t.languages.haxe.string.inside.interpolation.inside.rest=t.languages.haxe,delete t.languages.haxe["class-name"];t.languages.http={"request-line":{pattern:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\s(?:https?:\/\/|\/)\S+\sHTTP\/[0-9.]+/m,inside:{property:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\b/,"attr-name":/:\w+/}},"response-status":{pattern:/^HTTP\/1.[01] \d+.*/m,inside:{property:{pattern:/(^HTTP\/1.[01] )\d+.*/i,lookbehind:!0}}},"header-name":{pattern:/^[\w-]+:(?=.)/m,alias:"keyword"}};var U={"application/json":t.languages.javascript,"application/xml":t.languages.markup,"text/xml":t.languages.markup,"text/html":t.languages.markup};for(C in U)if(U[C])P={},P[C]={pattern:new RegExp("(content-type:\\s*"+C+"[\\w\\W]*?)(?:\\r?\\n|\\r){2}[\\w\\W]*","i"),lookbehind:!0,inside:{rest:U[C]}},t.languages.insertBefore("http","header-name",P);var P,C;t.languages.hpkp={directive:{pattern:/\b(?:(?:includeSubDomains|preload|strict)(?: |;)|pin-sha256="[a-zA-Z\d+=\/]+"|(?:max-age|report-uri)=|report-to )/,alias:"keyword"},safe:{pattern:/\d{7,}/,alias:"selector"},unsafe:{pattern:/\d{0,6}/,alias:"function"}};t.languages.hsts={directive:{pattern:/\b(?:max-age=|includeSubDomains|preload)/,alias:"keyword"},safe:{pattern:/\d{8,}/,alias:"selector"},unsafe:{pattern:/\d{0,7}/,alias:"function"}};t.languages.ichigojam={comment:/(?:\B'|REM)(?:[^\n\r]*)/i,string:{pattern:/"(?:""|[!#$%&'()*,\/:;<=>?^_ +\-.A-Z\d])*"/i,greedy:!0},number:/\B#[0-9A-F]+|\B`[01]+|(?:\b\d+\.?\d*|\B\.\d+)(?:E[+-]?\d+)?/i,keyword:/\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\$|\b)/i,function:/\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\$|\b)/i,label:/(?:\B@[^\s]+)/i,operator:/<[=>]?|>=?|\|\||&&|[+\-*\/=|&^~!]|\b(?:AND|NOT|OR)\b/i,punctuation:/[\[,;:()\]]/};t.languages.icon={comment:/#.*/,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n_]|\\.|_(?!\1)(?:\r\n|[\s\S]))*\1/,greedy:!0},number:/\b(?:\d+r[a-z\d]+|\d+(?:\.\d+)?(?:e[+-]?\d+)?)\b|\.\d+\b/i,"builtin-keyword":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\b/,alias:"variable"},directive:{pattern:/\$\w+/,alias:"builtin"},keyword:/\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\b/,function:/(?!\d)\w+(?=\s*[({]|\s*!\s*\[)/,operator:/[+-]:(?!=)|(?:[\/?@^%&]|\+\+?|--?|==?=?|~==?=?|\*\*?|\|\|\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\|~]/,punctuation:/[\[\](){},;]/};t.languages.inform7={string:{pattern:/"[^"]*"/,inside:{substitution:{pattern:/\[[^\]]+\]/,inside:{delimiter:{pattern:/\[|\]/,alias:"punctuation"}}}}},comment:{pattern:/\[[^\]]+\]/,greedy:!0},title:{pattern:/^[ \t]*(?:volume|book|part(?! of)|chapter|section|table)\b.+/im,alias:"important"},number:{pattern:/(^|[^-])(?:\b\d+(?:\.\d+)?(?:\^\d+)?\w*|\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\b(?!-)/i,lookbehind:!0},verb:{pattern:/(^|[^-])\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\b(?!-)/i,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^-])\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\b(?!-)/i,lookbehind:!0},property:{pattern:/(^|[^-])\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\b(?!-)/i,lookbehind:!0,alias:"symbol"},position:{pattern:/(^|[^-])\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\b(?!-)/i,lookbehind:!0,alias:"keyword"},type:{pattern:/(^|[^-])\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\b(?!-)/i,lookbehind:!0,alias:"variable"},punctuation:/[.,:;(){}]/},t.languages.inform7.string.inside.substitution.inside.rest=t.languages.inform7,t.languages.inform7.string.inside.substitution.inside.rest.text={pattern:/\S(?:\s*\S)*/,alias:"comment"};t.languages.ini={comment:/^[ \t]*;.*$/m,selector:/^[ \t]*\[.*?\]/m,constant:/^[ \t]*[^\s=]+?(?=[ \t]*=)/m,"attr-value":{pattern:/=.*/,inside:{punctuation:/^[=]/}}};t.languages.io={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?(?:\*\/|$)/,lookbehind:!0},{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"triple-quoted-string":{pattern:/"""(?:\\[\s\S]|(?!""")[^\\])*"""/,greedy:!0,alias:"string"},string:{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},keyword:/\b(?:activate|activeCoroCount|asString|block|break|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\b/,builtin:/\b(?:Array|AudioDevice|AudioMixer|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum|Sequence)\b/,boolean:/\b(?:true|false|nil)\b/,number:/\b0x[\da-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e-?\d+)?/i,operator:/[=!*\/%+-^&|]=|>>?=?|<+*\-%$|,#][.:]?|[?^]\.?|[;\[]:?|[~}"i][.:]|[ACeEIjLor]\.|(?:[_\/\\qsux]|_?\d):)/,alias:"keyword"},number:/\b_?(?:(?!\d:)\d+(?:\.\d+)?(?:(?:[ejpx]|ad|ar)_?\d+(?:\.\d+)?)*(?:b_?[\da-z]+(?:\.[\da-z]+)?)?|_(?!\.))/,adverb:{pattern:/[~}]|[\/\\]\.?|[bfM]\.|t[.:]/,alias:"builtin"},operator:/[=a][.:]|_\./,conjunction:{pattern:/&(?:\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\.|`:?|[\^LS]:|"/,alias:"variable"},punctuation:/[()]/};t.languages.java=t.languages.extend("clike",{keyword:/\b(?: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)\b/,number:/\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp-]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?[df]?/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0}}),t.languages.insertBefore("java","function",{annotation:{alias:"punctuation",pattern:/(^|[^.])@\w+/,lookbehind:!0}}),t.languages.insertBefore("java","class-name",{generics:{pattern:/<\s*\w+(?:\.\w+)?(?:\s*,\s*\w+(?:\.\w+)?)*>/i,alias:"function",inside:{keyword:t.languages.java.keyword,punctuation:/[<>(),.:]/}}});t.languages.jolie=t.languages.extend("clike",{keyword:/\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\b/,builtin:/\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\b/,number:/(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?l?/i,operator:/-[-=>]?|\+[+=]?|<[<=]?|[>=*!]=?|&&|\|\||[:?\/%^]/,symbol:/[|;@]/,punctuation:/[,.]/,string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0}}),delete t.languages.jolie["class-name"],delete t.languages.jolie.function,t.languages.insertBefore("jolie","keyword",{function:{pattern:/((?:\b(?:outputPort|inputPort|in|service|courier)\b|@)\s*)\w+/,lookbehind:!0},aggregates:{pattern:/(\bAggregates\s*:\s*)(?:\w+(?:\s+with\s+\w+)?\s*,\s*)*\w+(?:\s+with\s+\w+)?/,lookbehind:!0,inside:{withExtension:{pattern:/\bwith\s+\w+/,inside:{keyword:/\bwith\b/}},function:{pattern:/\w+/},punctuation:{pattern:/,/}}},redirects:{pattern:/(\bRedirects\s*:\s*)(?:\w+\s*=>\s*\w+\s*,\s*)*(?:\w+\s*=>\s*\w+)/,lookbehind:!0,inside:{punctuation:{pattern:/,/},function:{pattern:/\w+/},symbol:{pattern:/=>/}}}});t.languages.json={property:/"(?:\\.|[^\\"\r\n])*"(?=\s*:)/i,string:{pattern:/"(?:\\.|[^\\"\r\n])*"(?!\s*:)/,greedy:!0},number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][+-]?\d+)?/,punctuation:/[{}[\]);,]/,operator:/:/g,boolean:/\b(?:true|false)\b/i,null:/\bnull\b/i},t.languages.jsonp=t.languages.json;t.languages.julia={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2/,keyword:/\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|let|local|macro|module|print|println|quote|return|try|type|typealias|using|while)\b/,boolean:/\b(?:true|false)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[box])?(?:[\da-f]+\.?\d*|\.\d+)(?:[efp][+-]?\d+)?j?/i,operator:/[-+*^%Ć·&$\\]=?|\/[\/=]?|!=?=?|\|[=>]?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≄]/,punctuation:/[{}[\];(),.:]/};t.languages.keyman={comment:/\bc\s.*/i,function:/\[\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\s+)*(?:[TKU]_[\w?]+|".+?"|'.+?')\s*\]/i,string:/("|').*?\1/,bold:[/&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\b/i,/\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\b/i],keyword:/\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\b/i,atrule:/\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\b/i,number:/\b(?:U\+[\dA-F]+|d\d+|x[\da-f]+|\d+)\b/i,operator:/[+>\\,()]/,tag:/\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i};(function(e){e.languages.kotlin=e.languages.extend("clike",{keyword:{pattern:/(^|[^.])\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\b/,lookbehind:!0},function:[/\w+(?=\s*\()/,{pattern:/(\.)\w+(?=\s*\{)/,lookbehind:!0}],number:/\b(?:0[xX][\da-fA-F]+(?:_[\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\d+(?:_\d+)*(?:\.\d+(?:_\d+)*)?(?:[eE][+-]?\d+(?:_\d+)*)?[fFL]?)\b/,operator:/\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\/*%<>]=?|[?:]:?|\.\.|&&|\|\||\b(?:and|inv|or|shl|shr|ushr|xor)\b/}),delete e.languages.kotlin["class-name"],e.languages.insertBefore("kotlin","string",{"raw-string":{pattern:/("""|''')[\s\S]*?\1/,alias:"string"}}),e.languages.insertBefore("kotlin","keyword",{annotation:{pattern:/\B@(?:\w+:)?(?:[A-Z]\w*|\[[^\]]+\])/,alias:"builtin"}}),e.languages.insertBefore("kotlin","function",{label:{pattern:/\w+@|@\w+/,alias:"symbol"}});var i=[{pattern:/\$\{[^}]+\}/,inside:{delimiter:{pattern:/^\$\{|\}$/,alias:"variable"},rest:e.languages.kotlin}},{pattern:/\$\w+/,alias:"variable"}];e.languages.kotlin.string.inside=e.languages.kotlin["raw-string"].inside={interpolation:i}})(t);(function(e){var i=/\\(?:[^a-z()[\]]|[a-z*]+)/i,r={"equation-command":{pattern:i,alias:"regex"}};e.languages.latex={comment:/%.*/m,cdata:{pattern:/(\\begin\{((?:verbatim|lstlisting)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0},equation:[{pattern:/\$(?:\\[\s\S]|[^\\$])*\$|\\\([\s\S]*?\\\)|\\\[[\s\S]*?\\\]/,inside:r,alias:"string"},{pattern:/(\\begin\{((?:equation|math|eqnarray|align|multline|gather)\*?)\})[\s\S]*?(?=\\end\{\2\})/,lookbehind:!0,inside:r,alias:"string"}],keyword:{pattern:/(\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\[[^\]]+\])?\{)[^}]+(?=\})/,lookbehind:!0},url:{pattern:/(\\url\{)[^}]+(?=\})/,lookbehind:!0},headline:{pattern:/(\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\*?(?:\[[^\]]+\])?\{)[^}]+(?=\}(?:\[[^\]]+\])?)/,lookbehind:!0,alias:"class-name"},function:{pattern:i,alias:"selector"},punctuation:/[[\]{}&]/}})(t);t.languages.less=t.languages.extend("css",{comment:[/\/\*[\s\S]*?\*\//,{pattern:/(^|[^\\])\/\/.*/,lookbehind:!0}],atrule:{pattern:/@[\w-]+?(?:\([^{}]+\)|[^(){};])*?(?=\s*\{)/i,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\{[\w-]+\}|[^{};\s@])(?:@\{[\w-]+\}|\([^{}]*\)|[^{};@])*?(?=\s*\{)/,inside:{variable:/@+[\w-]+/}},property:/(?:@\{[\w-]+\}|[\w-])+(?:\+_?)?(?=\s*:)/i,punctuation:/[{}();:,]/,operator:/[+\-*\/]/}),t.languages.insertBefore("less","punctuation",{function:t.languages.less.function}),t.languages.insertBefore("less","property",{variable:[{pattern:/@[\w-]+\s*:/,inside:{punctuation:/:/}},/@@?[\w-]+/],"mixin-usage":{pattern:/([{;]\s*)[.#](?!\d)[\w-]+.*?(?=[(;])/,lookbehind:!0,alias:"function"}});t.languages.liquid={keyword:/\b(?:comment|endcomment|if|elsif|else|endif|unless|endunless|for|endfor|case|endcase|when|in|break|assign|continue|limit|offset|range|reversed|raw|endraw|capture|endcapture|tablerow|endtablerow)\b/,number:/\b0b[01]+\b|\b0x[\da-f]*\.?[\da-fp-]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:e[+-]?\d+)?[df]?/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\|[|=]?|\*=?|\/=?|%=?|\^=?|[?:~])/m,lookbehind:!0},function:{pattern:/(^|[\s;|&])(?:append|prepend|capitalize|cycle|cols|increment|decrement|abs|at_least|at_most|ceil|compact|concat|date|default|divided_by|downcase|escape|escape_once|first|floor|join|last|lstrip|map|minus|modulo|newline_to_br|plus|remove|remove_first|replace|replace_first|reverse|round|rstrip|size|slice|sort|sort_natural|split|strip|strip_html|strip_newlines|times|truncate|truncatewords|uniq|upcase|url_decode|url_encode|include|paginate)(?=$|[\s;|&])/,lookbehind:!0}};(function(e){function i(u){return new RegExp("(\\()"+u+"(?=[\\s\\)])")}function r(u){return new RegExp("([\\s([])"+u+"(?=[\\s)])")}var d="[-+*/_~!@$%^=<>{}\\w]+",o="&"+d,n="(\\()",a="(?=\\))",s="(?=\\s)",l={heading:{pattern:/;;;.*/,alias:["comment","title"]},comment:/;.*/,string:{pattern:/"(?:[^"\\]*|\\.)*"/,greedy:!0,inside:{argument:/[-A-Z]+(?=[.,\s])/,symbol:new RegExp("`"+d+"'")}},"quoted-symbol":{pattern:new RegExp("#?'"+d),alias:["variable","symbol"]},"lisp-property":{pattern:new RegExp(":"+d),alias:"property"},splice:{pattern:new RegExp(",@?"+d),alias:["symbol","variable"]},keyword:[{pattern:new RegExp(n+"(?:(?:lexical-)?let\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)"+s),lookbehind:!0},{pattern:new RegExp(n+"(?:for|do|collect|return|finally|append|concat|in|by)"+s),lookbehind:!0}],declare:{pattern:i("declare"),lookbehind:!0,alias:"keyword"},interactive:{pattern:i("interactive"),lookbehind:!0,alias:"keyword"},boolean:{pattern:r("(?:t|nil)"),lookbehind:!0},number:{pattern:r("[-+]?\\d+(?:\\.\\d*)?"),lookbehind:!0},defvar:{pattern:new RegExp(n+"def(?:var|const|custom|group)\\s+"+d),lookbehind:!0,inside:{keyword:/^def[a-z]+/,variable:new RegExp(d)}},defun:{pattern:new RegExp(n+"(?:cl-)?(?:defun\\*?|defmacro)\\s+"+d+"\\s+\\([\\s\\S]*?\\)"),lookbehind:!0,inside:{keyword:/^(?:cl-)?def\S+/,arguments:null,function:{pattern:new RegExp("(^\\s)"+d),lookbehind:!0},punctuation:/[()]/}},lambda:{pattern:new RegExp(n+"lambda\\s+\\((?:&?"+d+"\\s*)*\\)"),lookbehind:!0,inside:{keyword:/^lambda/,arguments:null,punctuation:/[()]/}},car:{pattern:new RegExp(n+d),lookbehind:!0},punctuation:[/(['`,]?\(|[)\[\]])/,{pattern:/(\s)\.(?=\s)/,lookbehind:!0}]},c={"lisp-marker":new RegExp(o),rest:{argument:{pattern:new RegExp(d),alias:"variable"},varform:{pattern:new RegExp(n+d+"\\s+\\S[\\s\\S]*"+a),lookbehind:!0,inside:{string:l.string,boolean:l.boolean,number:l.number,symbol:l.symbol,punctuation:/[()]/}}}},p="\\S+(?:\\s+\\S+)*",g={pattern:new RegExp(n+"[\\s\\S]*"+a),lookbehind:!0,inside:{"rest-vars":{pattern:new RegExp("&(?:rest|body)\\s+"+p),inside:c},"other-marker-vars":{pattern:new RegExp("&(?:optional|aux)\\s+"+p),inside:c},keys:{pattern:new RegExp("&key\\s+"+p+"(?:\\s+&allow-other-keys)?"),inside:c},argument:{pattern:new RegExp(d),alias:"variable"},punctuation:/[()]/}};l.lambda.inside.arguments=g,l.defun.inside.arguments=e.util.clone(g),l.defun.inside.arguments.inside.sublist=g,e.languages.lisp=l,e.languages.elisp=l,e.languages.emacs=l,e.languages["emacs-lisp"]=l})(t);t.languages.livescript={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\])#.*/,lookbehind:!0}],"interpolated-string":{pattern:/(^|[^"])("""|")(?:\\[\s\S]|(?!\2)[^\\])*\2(?!")/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(^|[^\\])#[a-z_](?:-?[a-z]|[\d_])*/m,lookbehind:!0},interpolation:{pattern:/(^|[^\\])#\{[^}]+\}/m,lookbehind:!0,inside:{"interpolation-punctuation":{pattern:/^#\{|\}$/,alias:"variable"}}},string:/[\s\S]+/}},string:[{pattern:/('''|')(?:\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},{pattern:/<\[[\s\S]*?\]>/,greedy:!0},/\\[^\s,;\])}]+/],regex:[{pattern:/\/\/(\[.+?]|\\.|(?!\/\/)[^\\])+\/\/[gimyu]{0,5}/,greedy:!0,inside:{comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0}}},{pattern:/\/(\[.+?]|\\.|[^\/\\\r\n])+\/[gimyu]{0,5}/,greedy:!0}],keyword:{pattern:/(^|(?!-).)\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\b/m,lookbehind:!0},"keyword-operator":{pattern:/(^|[^-])\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?:nt| not)?|not|of|or|til|to|typeof|with|xor)(?!-)\b)/m,lookbehind:!0,alias:"operator"},boolean:{pattern:/(^|[^-])\b(?:false|no|off|on|true|yes)(?!-)\b/m,lookbehind:!0},argument:{pattern:/(^|(?!\.&\.)[^&])&(?!&)\d*/m,lookbehind:!0,alias:"variable"},number:/\b(?:\d+~[\da-z]+|\d[\d_]*(?:\.\d[\d_]*)?(?:[a-z]\w*)?)/i,identifier:/[a-z_](?:-?[a-z]|[\d_])*/i,operator:[{pattern:/( )\.(?= )/,lookbehind:!0},/\.(?:[=~]|\.\.?)|\.(?:[&|^]|<<|>>>?)\.|:(?:=|:=?)|&&|\|[|>]|<(?:<[>=?]?|-(?:->?|>)?|\+\+?|@@?|%%?|\*\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\^\^?|[\/?]/],punctuation:/[(){}\[\]|.,:;`]/},t.languages.livescript["interpolated-string"].inside.interpolation.inside.rest=t.languages.livescript;t.languages.lolcode={comment:[/\bOBTW\s+[\s\S]*?\s+TLDR\b/,/\bBTW.+/],string:{pattern:/"(?::.|[^"])*"/,inside:{variable:/:\{[^}]+\}/,symbol:[/:\([a-f\d]+\)/i,/:\[[^\]]+\]/,/:[)>o":]/]},greedy:!0},number:/(?:\B-)?(?:\b\d+\.?\d*|\B\.\d+)/,symbol:{pattern:/(^|\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\s)/}},label:{pattern:/((?:^|\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\w*/,lookbehind:!0,alias:"string"},function:{pattern:/((?:^|\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\w*/,lookbehind:!0},keyword:[{pattern:/(^|\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\?|YA RLY|NO WAI|OIC|MEBBE|WTF\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\s|,|$)/,lookbehind:!0},/'Z(?=\s|,|$)/],boolean:{pattern:/(^|\s)(?:WIN|FAIL)(?=\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\s)IT(?=\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\s|,|$)/,lookbehind:!0},punctuation:/\.{3}|…|,|!/};t.languages.lua={comment:/^#!.+|--(?:\[(=*)\[[\s\S]*?\]\1\]|.*)/m,string:{pattern:/(["'])(?:(?!\1)[^\\\r\n]|\\z(?:\r\n|\s)|\\(?:\r\n|[\s\S]))*\1|\[(=*)\[[\s\S]*?\]\2\]/,greedy:!0},number:/\b0x[a-f\d]+\.?[a-f\d]*(?:p[+-]?\d+)?\b|\b\d+(?:\.\B|\.?\d*(?:e[+-]?\d+)?\b)|\B\.\d+(?:e[+-]?\d+)?\b/i,keyword:/\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\b/,function:/(?!\d)\w+(?=\s*(?:[({]))/,operator:[/[-+*%^&|#]|\/\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\.\.(?!\.)/,lookbehind:!0}],punctuation:/[\[\](){},;]|\.+|:+/};t.languages.makefile={comment:{pattern:/(^|[^\\])#(?:\\(?:\r\n|[\s\S])|[^\\\r\n])*/,lookbehind:!0},string:{pattern:/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\.[A-Z][^:#=\s]+(?=\s*:(?!=))/,symbol:{pattern:/^[^:=\r\n]+(?=\s*:(?!=))/m,inside:{variable:/\$+(?:[^(){}:#=\s]+|(?=[({]))/}},variable:/\$+(?:[^(){}:#=\s]+|\([@*%<^+?][DF]\)|(?=[({]))/,keyword:[/-include\b|\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\b/,{pattern:/(\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/};t.languages.markdown=t.languages.extend("markup",{}),t.languages.insertBefore("markdown","prolog",{blockquote:{pattern:/^>(?:[\t ]*>)*/m,alias:"punctuation"},code:[{pattern:/^(?: {4}|\t).+/m,alias:"keyword"},{pattern:/``.+?``|`[^`\n]+`/,alias:"keyword"}],title:[{pattern:/\w+.*(?:\r?\n|\r)(?:==+|--+)/,alias:"important",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\s*)#+.+/m,lookbehind:!0,alias:"important",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\s*)([*-])(?:[\t ]*\2){2,}(?=\s*$)/m,lookbehind:!0,alias:"punctuation"},list:{pattern:/(^\s*)(?:[*+-]|\d+\.)(?=[\t ].)/m,lookbehind:!0,alias:"punctuation"},"url-reference":{pattern:/!?\[[^\]]+\]:[\t ]+(?:\S+|<(?:\\.|[^>\\])+>)(?:[\t ]+(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\)))?/,inside:{variable:{pattern:/^(!?\[)[^\]]+/,lookbehind:!0},string:/(?:"(?:\\.|[^"\\])*"|'(?:\\.|[^'\\])*'|\((?:\\.|[^)\\])*\))$/,punctuation:/^[\[\]!:]|[<>]/},alias:"url"},bold:{pattern:/(^|[^\\])(\*\*|__)(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^\*\*|^__|\*\*$|__$/}},italic:{pattern:/(^|[^\\])([*_])(?:(?:\r?\n|\r)(?!\r?\n|\r)|.)+?\2/,lookbehind:!0,inside:{punctuation:/^[*_]|[*_]$/}},url:{pattern:/!?\[[^\]]+\](?:\([^\s)]+(?:[\t ]+"(?:\\.|[^"\\])*")?\)| ?\[[^\]\n]*\])/,inside:{variable:{pattern:/(!?\[)[^\]]+(?=\]$)/,lookbehind:!0},string:{pattern:/"(?:\\.|[^"\\])*"(?=\)$)/}}}}),t.languages.markdown.bold.inside.url=t.languages.markdown.url,t.languages.markdown.italic.inside.url=t.languages.markdown.url,t.languages.markdown.bold.inside.italic=t.languages.markdown.italic,t.languages.markdown.italic.inside.bold=t.languages.markdown.bold;(function(e){e.languages.erb=e.languages.extend("ruby",{}),e.languages.insertBefore("erb","comment",{delimiter:{pattern:/^<%=?|%>$/,alias:"punctuation"}}),e.hooks.add("before-tokenize",function(i){var r=/<%=?[\s\S]+?%>/g;e.languages["markup-templating"].buildPlaceholders(i,"erb",r)}),e.hooks.add("after-tokenize",function(i){e.languages["markup-templating"].tokenizePlaceholders(i,"erb")})})(t);t.languages.matlab={comment:[/%\{[\s\S]*?\}%/,/%.+/],string:{pattern:/\B'(?:''|[^'\r\n])*'/,greedy:!0},number:/(?:\b\d+\.?\d*|\B\.\d+)(?:[eE][+-]?\d+)?(?:[ij])?|\b[ij]\b/,keyword:/\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\b/,function:/(?!\d)\w+(?=\s*\()/,operator:/\.?[*^\/\\']|[+\-:@]|[<>=~]=?|&&?|\|\|?/,punctuation:/\.{3}|[.,;\[\](){}!]/};t.languages.mel={comment:/\/\/.*/,code:{pattern:/`(?:\\.|[^\\`\r\n])*`/,greedy:!0,alias:"italic",inside:{delimiter:{pattern:/^`|`$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^\\"\r\n])*"/,greedy:!0},variable:/\$\w+/,number:/\b0x[\da-fA-F]+\b|\b\d+\.?\d*|\B\.\d+/,flag:{pattern:/-[^\d\W]\w*/,alias:"operator"},keyword:/\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\b/,function:/\w+(?=\()|\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\b/,operator:[/\+[+=]?|-[-=]?|&&|\|\||[<>]=|[*\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\[\](){}]/},t.languages.mel.code.inside.rest=t.languages.mel;t.languages.mizar={comment:/::.+/,keyword:/@proof\b|\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\b/,parameter:{pattern:/\$(?:10|\d)/,alias:"variable"},variable:/\w+(?=:)/,number:/(?:\b|-)\d+\b/,operator:/\.\.\.|->|&|\.?=/,punctuation:/\(#|#\)|[,:;\[\](){}]/};t.languages.monkey={string:/"[^"\r\n]*"/,comment:[{pattern:/^#Rem\s+[\s\S]*?^#End/im,greedy:!0},{pattern:/'.+/,greedy:!0}],preprocessor:{pattern:/(^[ \t]*)#.+/m,lookbehind:!0,alias:"comment"},function:/\w+(?=\()/,"type-char":{pattern:/(\w)[?%#$]/,lookbehind:!0,alias:"variable"},number:{pattern:/((?:\.\.)?)(?:(?:\b|\B-\.?|\B\.)\d+(?:(?!\.\.)\.\d*)?|\$[\da-f]+)/i,lookbehind:!0},keyword:/\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\b/i,operator:/\.\.|<[=>]?|>=?|:?=|(?:[+\-*\/&~|]|\b(?:Mod|Shl|Shr)\b)=?|\b(?:And|Not|Or)\b/i,punctuation:/[.,:;()\[\]]/};t.languages.n4js=t.languages.extend("javascript",{keyword:/\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\b/}),t.languages.insertBefore("n4js","constant",{annotation:{pattern:/@+\w+/,alias:"operator"}}),t.languages.n4jsd=t.languages.n4js;t.languages.nasm={comment:/;.*$/m,string:/(["'`])(?:\\.|(?!\1)[^\\\r\n])*\1/,label:{pattern:/(^\s*)[A-Za-z._?$][\w.?$@~#]*:/m,lookbehind:!0,alias:"function"},keyword:[/\[?BITS (?:16|32|64)\]?/,{pattern:/(^\s*)section\s*[a-zA-Z.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\r\n]*/i,/(?:CPU|FLOAT|DEFAULT).*$/m],register:{pattern:/\b(?:st\d|[xyz]mm\d\d?|[cdt]r\d|r\d\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\b/i,alias:"variable"},number:/(?:\b|(?=\$))(?:0[hx][\da-f]*\.?[\da-f]+(?:p[+-]?\d+)?|\d[\da-f]+[hx]|\$\d[\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\d+|\d*\.?\d+(?:\.?e[+-]?\d+)?[dt]?)\b/i,operator:/[\[\]*+\-\/%<>=&|$!]/};t.languages.nginx=t.languages.extend("clike",{comment:{pattern:/(^|[^"{\\])#.*/,lookbehind:!0},keyword:/\b(?:CONTENT_|DOCUMENT_|GATEWAY_|HTTP_|HTTPS|if_not_empty|PATH_|QUERY_|REDIRECT_|REMOTE_|REQUEST_|SCGI|SCRIPT_|SERVER_|http|events|accept_mutex|accept_mutex_delay|access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth|auth_basic|auth_basic_user_file|auth_http|auth_http_header|auth_http_timeout|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|debug_connection|debug_points|default_type|deny|devpoll_changes|devpoll_events|directio|directio_alignment|disable_symlinks|empty_gif|env|epoll_events|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_redirect_errors|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|google_perftools_profiles|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|imap_capabilities|imap_client_buffer|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|kqueue_changes|kqueue_events|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|lock_file|log_format|log_format_combined|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|multi_accept|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|pop3_auth|pop3_capabilities|port_in_redirect|post_action|postpone_output|protocol|proxy|proxy_buffer|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_error_message|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_read_timeout|proxy_redirect|proxy_redirect_errors|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|proxy_timeout|proxy_upstream_fail_timeout|proxy_upstream_max_fails|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|rtsig_overflow_events|rtsig_overflow_test|rtsig_overflow_threshold|rtsig_signo|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|smtp_auth|smtp_capabilities|so_keepalive|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssi_value_length|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|starttls|stub_status|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timeout|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|use|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_rlimit_sigpending|working_directory|xclient|xml_entities|xslt_entities|xslt_stylesheet|xslt_types)\b/i}),t.languages.insertBefore("nginx","keyword",{variable:/\$[a-z_]+/i});t.languages.nim={comment:/#.*/,string:{pattern:/(?:(?:\b(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:"""[\s\S]*?"""(?!")|"(?:\\[\s\S]|""|[^"\\])*")|'(?:\\(?:\d+|x[\da-fA-F]{2}|.)|[^'])')/,greedy:!0},number:/\b(?:0[xXoObB][\da-fA-F_]+|\d[\d_]*(?:(?!\.\.)\.[\d_]*)?(?:[eE][+-]?\d[\d_]*)?)(?:'?[iuf]\d*)?/,keyword:/\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\b/,function:{pattern:/(?:(?!\d)(?:\w|\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\r\n]+`)\*?(?:\[[^\]]+\])?(?=\s*\()/,inside:{operator:/\*$/}},ignore:{pattern:/`[^`\r\n]+`/,inside:{punctuation:/`/}},operator:{pattern:/(^|[({\[](?=\.\.)|(?![({\[]\.).)(?:(?:[=+\-*\/<>@$~&%|!?^:\\]|\.\.|\.(?![)}\]]))+|\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\b)/m,lookbehind:!0},punctuation:/[({\[]\.|\.[)}\]]|[`(){}\[\],:]/};t.languages.nix={comment:/\/\*[\s\S]*?\*\/|#.*/,string:{pattern:/"(?:[^"\\]|\\[\s\S])*"|''(?:(?!'')[\s\S]|''(?:'|\\|\$\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\])\$\{(?:[^}]|\{[^}]*\})*}/,lookbehind:!0,inside:{antiquotation:{pattern:/^\$(?=\{)/,alias:"variable"}}}}},url:[/\b(?:[a-z]{3,7}:\/\/)[\w\-+%~\/.:#=?&]+/,{pattern:/([^\/])(?:[\w\-+%~.:#=?&]*(?!\/\/)[\w\-+%~\/.:#=?&])?(?!\/\/)\/[\w\-+%~\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\$(?=\{)/,alias:"variable"},number:/\b\d+\b/,keyword:/\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\b/,function:/\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\b|\bfoldl'\B/,boolean:/\b(?:true|false)\b/,operator:/[=!<>]=?|\+\+?|\|\||&&|\/\/|->?|[?@]/,punctuation:/[{}()[\].,:;]/},t.languages.nix.string.inside.interpolation.inside.rest=t.languages.nix;t.languages.nsis={comment:{pattern:/(^|[^\\])(\/\*[\s\S]*?\*\/|[#;].*)/,lookbehind:!0},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},keyword:{pattern:/(^\s*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|Banner|BG(?:Font|Gradient|Image)|BrandingText|BringToFront|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|Name|Nop|ns(?:Dialogs|Exec)|NSISdl|OutFile|Page(?:Callbacks)?|PE(?:DllCharacteristics|SubsysVer)|Pop|Push|Quit|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Unicode|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle)\b/m,lookbehind:!0},property:/\b(?:admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user|ARCHIVE|FILE_(ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK((CR|CU|LM)(32|64)?|DD|PD|U)|HKEY_(CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)\b/,constant:/\${[\w\.:\^-]+}|\$\([\w\.:\^-]+\)/i,variable:/\$\w+/i,number:/\b0x[\dA-Fa-f]+\b|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee]-?\d+)?/,operator:/--?|\+\+?|<=?|>=?|==?=?|&&?|\|\|?|[?*\/~^%]/,punctuation:/[{}[\];(),.:]/,important:{pattern:/(^\s*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\b/im,lookbehind:!0}};t.languages.objectivec=t.languages.extend("c",{keyword:/\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\b/,string:/("|')(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1|@"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,operator:/-[->]?|\+\+?|!=?|<>?=?|==?|&&?|\|\|?|[~^%?*\/@]/});t.languages.ocaml={comment:/\(\*[\s\S]*?\*\)/,string:[{pattern:/"(?:\\.|[^\\\r\n"])*"/,greedy:!0},{pattern:/(['`])(?:\\(?:\d+|x[\da-f]+|.)|(?!\1)[^\\\r\n])\1/i,greedy:!0}],number:/\b(?:0x[\da-f][\da-f_]+|(?:0[bo])?\d[\d_]*\.?[\d_]*(?:e[+-]?[\d_]+)?)/i,type:{pattern:/\B['`]\w*/,alias:"variable"},directive:{pattern:/\B#\w+/,alias:"function"},keyword:/\b(?: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|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\b/,boolean:/\b(?:false|true)\b/,operator:/:=|[=<>@^|&+\-*\/$%!?~][!$%&*+\-.\/:<=>?@^|~]*|\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\b/,punctuation:/[(){}\[\]|_.,:;]/};(function(e){e.languages.opencl=e.languages.extend("c",{keyword:/\b(?:__attribute__|(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|auto|break|case|cl_(?:image_format|mem_fence_flags)|clk_event_t|complex|const|continue|default|do|(?:float|double)(?:16(?:x(?:1|16|2|4|8))?|1x(?:1|16|2|4|8)|2(?:x(?:1|16|2|4|8))?|3|4(?:x(?:1|16|2|4|8))?|8(?:x(?:1|16|2|4|8))?)?|else|enum|event_t|extern|for|goto|(?:u?(?:char|short|int|long)|half|quad|bool)(?:2|3|4|8|16)?|if|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|imaginary|inline|intptr_t|ndrange_t|packed|pipe|ptrdiff_t|queue_t|register|reserve_id_t|restrict|return|sampler_t|signed|size_t|sizeof|static|struct|switch|typedef|uintptr_t|uniform|union|unsigned|void|volatile|while)\b/,"function-opencl-kernel":{pattern:/\b(?:abs(?:_diff)?|a?(?:cos|sin)(?:h|pi)?|add_sat|aligned|all|and|any|async(?:_work_group_copy|_work_group_strided_copy)?|atan(?:2?(?:pi)?|h)?|atom_(?:add|and|cmpxchg|dec|inc|max|min|or|sub|xchg|xor)|barrier|bitselect|cbrt|ceil|clamp|clz|copies|copysign|cross|degrees|distance|dot|endian|erf|erfc|exp(?:2|10)?|expm1|fabs|fast_(?:distance|length|normalize)|fdim|floor|fma|fmax|fmin|fract|frexp|fro|from|get_(?:global_(?:id|offset|size)|group_id|image_(?:channel_data_type|channel_order|depth|dim|height|width)|local(?:_id|_size)|num_groups|work_dim)|hadd|(?:half|native)_(?:cos|divide|exp(?:2|10)?|log(?:2|10)?|powr|recip|r?sqrt|sin|tan)|hypot|ilogb|is(?:equal|finite|greater(?:equal)?|inf|less(?:equal|greater)?|nan|normal|notequal|(?:un)?ordered)|ldexp|length|lgamma|lgamma_r|log(?:b|1p|2|10)?|mad(?:24|_hi|_sat)?|max|mem(?:_fence)?|min|mix|modf|mul24|mul_hi|nan|nextafter|normalize|pow[nr]?|prefetch|radians|read_(?:image)(?:f|h|u?i)|read_mem_fence|remainder|remquo|reqd_work_group_size|rhadd|rint|rootn|rotate|round|rsqrt|select|shuffle2?|sign|signbit|sincos|smoothstep|sqrt|step|sub_sat|tan|tanh|tanpi|tgamma|to|trunc|upsample|vec_(?:step|type_hint)|v(?:load|store)(?:_half)?(?:2|3|4|8|16)?|v(?:loada_half|storea?(?:_half)?)(?:2|3|4|8|16)?(?:_(?:rte|rtn|rtp|rtz))?|wait_group_events|work_group_size_hint|write_image(?:f|h|u?i)|write_mem_fence)\b/,alias:"function"},"constant-opencl-kernel":{pattern:/\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:LOCAL|GLOBAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT)_(?:DIG|EPSILON|MANT_DIG|(?:MIN|MAX)(?:(?:_10)?_EXP)?)|FLT_RADIX|HUGE_VALF|INFINITY|(?:INT|LONG|SCHAR|SHRT|UCHAR|UINT|ULONG)_(?:MAX|MIN)|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:10|2)E?|PI[24]?|SQRT(?:1_2|2))|NAN)\b/,alias:"constant"}});var i={"type-opencl-host":{pattern:/\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|short|int|long)|float|double)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\b/,alias:"keyword"},"boolean-opencl-host":{pattern:/\bCL_(?:TRUE|FALSE)\b/,alias:"boolean"},"constant-opencl-host":{pattern:/\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:16|24|8|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\b/,alias:"constant"},"function-opencl-host":{pattern:/\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|Kernel|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\b/,alias:"function"}};e.languages.insertBefore("c","keyword",i),i["type-opencl-host-c++"]={pattern:/\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|Sampler|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|UserEvent)\b/,alias:"keyword"},e.languages.insertBefore("cpp","keyword",i)})(t);t.languages.oz={comment:/\/\*[\s\S]*?\*\/|%.*/,string:{pattern:/"(?:[^"\\]|\\[\s\S])*"/,greedy:!0},atom:{pattern:/'(?:[^'\\]|\\[\s\S])*'/,greedy:!0,alias:"builtin"},keyword:/[$_]|\[\]|\b(?:at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\b/,function:[/[a-z][A-Za-z\d]*(?=\()/,{pattern:/(\{)[A-Z][A-Za-z\d]*/,lookbehind:!0}],number:/\b(?:0[bx][\da-f]+|\d+\.?\d*(?:e~?\d+)?\b)|&(?:[^\\]|\\(?:\d{3}|.))/i,variable:/\b[A-Z][A-Za-z\d]*|`(?:[^`\\]|\\.)+`/,"attr-name":/\w+(?=:)/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\=:?|!!?|[|#+\-*\/,~^@]|\b(?:andthen|div|mod|orelse)\b/,punctuation:/[\[\](){}.:;?]/};t.languages.parigp={comment:/\/\*[\s\S]*?\*\/|\\\\.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"/,greedy:!0},keyword:function(){var e=["breakpoint","break","dbg_down","dbg_err","dbg_up","dbg_x","forcomposite","fordiv","forell","forpart","forprime","forstep","forsubgroup","forvec","for","iferr","if","local","my","next","return","until","while"];return e=e.map(function(i){return i.split("").join(" *")}).join("|"),RegExp("\\b(?:"+e+")\\b")}(),function:/\w[\w ]*?(?= *\()/,number:{pattern:/((?:\. *\. *)?)(?:\d(?: *\d)*(?: *(?!\. *\.)\.(?: *\d)*)?|\. *\d(?: *\d)*)(?: *e *[+-]? *\d(?: *\d)*)?/i,lookbehind:!0},operator:/\. *\.|[*\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\+(?: *[+=])?|-(?: *[-=>])?|<(?:(?: *<)?(?: *=)?| *>)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\(?: *\/)?(?: *=)?|&(?: *&)?|\| *\||['#~^]/,punctuation:/[\[\]{}().,:;|]/};t.languages.parser=t.languages.extend("markup",{keyword:{pattern:/(^|[^^])(?:\^(?:case|eval|for|if|switch|throw)\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\B\$(?:\w+|(?=[.{]))(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{punctuation:/\.|:+/}},function:{pattern:/(^|[^^])\B[@^]\w+(?:(?:\.|::?)\w+)*(?:\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\.|:+/}},escape:{pattern:/\^(?:[$^;@()\[\]{}"':]|#[a-f\d]*)/i,alias:"builtin"},punctuation:/[\[\](){};]/}),t.languages.insertBefore("parser","keyword",{"parser-comment":{pattern:/(\s)#.*/,lookbehind:!0,alias:"comment"},expression:{pattern:/(^|[^^])\((?:[^()]|\((?:[^()]|\((?:[^()])*\))*\))*\)/,greedy:!0,lookbehind:!0,inside:{string:{pattern:/(^|[^^])(["'])(?:(?!\2)[^^]|\^[\s\S])*\2/,lookbehind:!0},keyword:t.languages.parser.keyword,variable:t.languages.parser.variable,function:t.languages.parser.function,boolean:/\b(?:true|false)\b/,number:/\b(?:0x[a-f\d]+|\d+\.?\d*(?:e[+-]?\d+)?)\b/i,escape:t.languages.parser.escape,operator:/[~+*\/\\%]|!(?:\|\|?|=)?|&&?|\|\|?|==|<[<=]?|>[>=]?|-[fd]?|\b(?:def|eq|ge|gt|in|is|le|lt|ne)\b/,punctuation:t.languages.parser.punctuation}}}),t.languages.insertBefore("inside","punctuation",{expression:t.languages.parser.expression,keyword:t.languages.parser.keyword,variable:t.languages.parser.variable,function:t.languages.parser.function,escape:t.languages.parser.escape,"parser-punctuation":{pattern:t.languages.parser.punctuation,alias:"punctuation"}},t.languages.parser.tag.inside["attr-value"]);t.languages.pascal={comment:[/\(\*[\s\S]+?\*\)/,/\{[\s\S]+?\}/,/\/\/.*/],string:{pattern:/(?:'(?:''|[^'\r\n])*'|#[&$%]?[a-f\d]+)+|\^[a-z]/i,greedy:!0},keyword:[{pattern:/(^|[^&])\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:dispose|exit|false|new|true)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\b/i,lookbehind:!0},{pattern:/(^|[^&])\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\b/i,lookbehind:!0}],number:[/(?:[&%]\d+|\$[a-f\d]+)/i,/\b\d+(?:\.\d+)?(?:e[+-]?\d+)?/i],operator:[/\.\.|\*\*|:=|<[<=>]?|>[>=]?|[+\-*\/]=?|[@^=]/i,{pattern:/(^|[^&])\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\b/,lookbehind:!0}],punctuation:/\(\.|\.\)|[()\[\]:;,.]/},t.languages.objectpascal=t.languages.pascal;t.languages.perl={comment:[{pattern:/(^\s*)=\w+[\s\S]*?=cut.*/m,lookbehind:!0},{pattern:/(^|[^\\$])#.*/,lookbehind:!0}],string:[{pattern:/\b(?:q|qq|qx|qw)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\((?:[^()\\]|\\[\s\S])*\)/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\{(?:[^{}\\]|\\[\s\S])*\}/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*\[(?:[^[\]\\]|\\[\s\S])*\]/,greedy:!0},{pattern:/\b(?:q|qq|qx|qw)\s*<(?:[^<>\\]|\\[\s\S])*>/,greedy:!0},{pattern:/("|`)(?:(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0},{pattern:/'(?:[^'\\\r\n]|\\.)*'/,greedy:!0}],regex:[{pattern:/\b(?:m|qr)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s+([a-zA-Z0-9])(?:(?!\1)[^\\]|\\[\s\S])*\1[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngc]*/,greedy:!0},{pattern:/\b(?:m|qr)\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngc]*/,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*([^a-zA-Z0-9\s{(\[<])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s+([a-zA-Z0-9])(?:(?!\2)[^\\]|\\[\s\S])*\2(?:(?!\2)[^\\]|\\[\s\S])*\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\((?:[^()\\]|\\[\s\S])*\)\s*\((?:[^()\\]|\\[\s\S])*\)[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\{(?:[^{}\\]|\\[\s\S])*\}\s*\{(?:[^{}\\]|\\[\s\S])*\}[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*\[(?:[^[\]\\]|\\[\s\S])*\]\s*\[(?:[^[\]\\]|\\[\s\S])*\][msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\b)(?:s|tr|y)\s*<(?:[^<>\\]|\\[\s\S])*>\s*<(?:[^<>\\]|\\[\s\S])*>[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/\/(?:[^\/\\\r\n]|\\.)*\/[msixpodualngc]*(?=\s*(?:$|[\r\n,.;})&|\-+*~<>!?^]|(lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\b))/,greedy:!0}],variable:[/[&*$@%]\{\^[A-Z]+\}/,/[&*$@%]\^[A-Z_]/,/[&*$@%]#?(?=\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\d)[\w$]+)+(?:::)*/i,/[&*$@%]\d+/,/(?!%=)[$@%][!"#$%&'()*+,\-.\/:;<=>?@[\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\S*>|\b_\b/,alias:"symbol"},vstring:{pattern:/v\d+(?:\.\d+)*|\d+(?:\.\d+){2,}/,alias:"string"},function:{pattern:/sub [a-z0-9_]+/i,inside:{keyword:/sub/}},keyword:/\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|say|state|sub|switch|undef|unless|until|use|when|while)\b/,number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0b[01](?:_?[01])*|(?:\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\b|\+[+=]?|-[-=>]?|\*\*?=?|\/\/?=?|=[=~>]?|~[~=]?|\|\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\.(?:=|\.\.?)?|[\\?]|\bx(?:=|\b)|\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\b/,punctuation:/[{}[\];(),:]/};(function(e){e.languages.php=e.languages.extend("clike",{keyword:/\b(?:and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\b/i,constant:/\b[A-Z0-9_]{2,}\b/,comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"shell-comment":{pattern:/(^|[^\\])#.*/,lookbehind:!0,alias:"comment"}}),e.languages.insertBefore("php","keyword",{delimiter:{pattern:/\?>|<\?(?:php|=)?/i,alias:"important"},variable:/\$+(?:\w+\b|(?={))/i,package:{pattern:/(\\|namespace\s+|use\s+)[\w\\]+/,lookbehind:!0,inside:{punctuation:/\\/}}}),e.languages.insertBefore("php","operator",{property:{pattern:/(->)[\w]+/,lookbehind:!0}}),e.languages.insertBefore("php","string",{"nowdoc-string":{pattern:/<<<'([^']+)'(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;/,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<'?|[';]$/}}}},"heredoc-string":{pattern:/<<<(?:"([^"]+)"(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\1;|([a-z_]\w*)(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?\2;)/i,greedy:!0,alias:"string",inside:{delimiter:{pattern:/^<<<(?:"[^"]+"|[a-z_]\w*)|[a-z_]\w*;$/i,alias:"symbol",inside:{punctuation:/^<<<"?|[";]$/}},interpolation:null}},"single-quoted-string":{pattern:/'(?:\\[\s\S]|[^\\'])*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"(?:\\[\s\S]|[^\\"])*"/,greedy:!0,alias:"string",inside:{interpolation:null}}}),delete e.languages.php.string;var i={pattern:/{\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\{])\$+(?:\w+(?:\[.+?]|->\w+)*)/,lookbehind:!0,inside:{rest:e.languages.php}};e.languages.php["heredoc-string"].inside.interpolation=i,e.languages.php["double-quoted-string"].inside.interpolation=i,e.hooks.add("before-tokenize",function(r){if(/(?:<\?php|<\?)/gi.test(r.code)){var d=/(?:<\?php|<\?)[\s\S]*?(?:\?>|$)/gi;e.languages["markup-templating"].buildPlaceholders(r,"php",d)}}),e.hooks.add("after-tokenize",function(r){e.languages["markup-templating"].tokenizePlaceholders(r,"php")})})(t);t.languages.insertBefore("php","variable",{this:/\$this\b/,global:/\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\b/,scope:{pattern:/\b[\w\\]+::/,inside:{keyword:/static|self|parent/,punctuation:/::|\\/}}});t.languages.sql={comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:--|\/\/|#).*)/,lookbehind:!0},string:{pattern:/(^|[^@\\])("|')(?:\\[\s\S]|(?!\2)[^\\])*\2/,greedy:!0,lookbehind:!0},variable:/@[\w.$]+|@(["'`])(?:\\[\s\S]|(?!\1)[^\\])+\1/,function:/\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\s*\()/i,keyword:/\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\b/i,boolean:/\b(?:TRUE|FALSE|NULL)\b/i,number:/\b0x[\da-f]+\b|\b\d+\.?\d*|\B\.\d+\b/i,operator:/[-+*\/=%^~]|&&?|\|\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\b/i,punctuation:/[;[\]()`,.]/};t.languages.powershell={comment:[{pattern:/(^|[^`])<#[\s\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/"(?:`[\s\S]|[^`"])*"/,greedy:!0,inside:{function:{pattern:/(^|[^`])\$\((?:\$\(.*?\)|(?!\$\()[^\r\n)])*\)/,lookbehind:!0,inside:{}}}},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\[[a-z](?:\[(?:\[[^\]]*]|[^\[\]])*]|[^\[\]])*]/i,boolean:/\$(?:true|false)\b/i,variable:/\$\w+\b/i,function:[/\b(?:Add-(?:Computer|Content|History|Member|PSSnapin|Type)|Checkpoint-Computer|Clear-(?:Content|EventLog|History|Item|ItemProperty|Variable)|Compare-Object|Complete-Transaction|Connect-PSSession|ConvertFrom-(?:Csv|Json|StringData)|Convert-Path|ConvertTo-(?:Csv|Html|Json|Xml)|Copy-(?:Item|ItemProperty)|Debug-Process|Disable-(?:ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Disconnect-PSSession|Enable-(?:ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Enter-PSSession|Exit-PSSession|Export-(?:Alias|Clixml|Console|Csv|FormatData|ModuleMember|PSSession)|ForEach-Object|Format-(?:Custom|List|Table|Wide)|Get-(?:Alias|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Culture|Date|Event|EventLog|EventSubscriber|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|WmiObject)|Group-Object|Import-(?:Alias|Clixml|Csv|LocalizedData|Module|PSSession)|Invoke-(?:Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)|Join-Path|Limit-EventLog|Measure-(?:Command|Object)|Move-(?:Item|ItemProperty)|New-(?:Alias|Event|EventLog|Item|ItemProperty|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy)|Out-(?:Default|File|GridView|Host|Null|Printer|String)|Pop-Location|Push-Location|Read-Host|Receive-(?:Job|PSSession)|Register-(?:EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)|Remove-(?:Computer|Event|EventLog|Item|ItemProperty|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)|Rename-(?:Computer|Item|ItemProperty)|Reset-ComputerMachinePassword|Resolve-Path|Restart-(?:Computer|Service)|Restore-Computer|Resume-(?:Job|Service)|Save-Help|Select-(?:Object|String|Xml)|Send-MailMessage|Set-(?:Alias|Content|Date|Item|ItemProperty|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)|Show-(?:Command|ControlPanelItem|EventLog)|Sort-Object|Split-Path|Start-(?:Job|Process|Service|Sleep|Transaction)|Stop-(?:Computer|Job|Process|Service)|Suspend-(?:Job|Service)|Tee-Object|Test-(?:ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)|Trace-Command|Unblock-File|Undo-Transaction|Unregister-(?:Event|PSSessionConfiguration)|Update-(?:FormatData|Help|List|TypeData)|Use-Transaction|Wait-(?:Event|Job|Process)|Where-Object|Write-(?:Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning))\b/i,/\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\b/i],keyword:/\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\b/i,operator:{pattern:/(\W?)(?:!|-(eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\b|-[-=]?|\+[+=]?|[*\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\];(),.]/},t.languages.powershell.string[0].inside.boolean=t.languages.powershell.boolean,t.languages.powershell.string[0].inside.variable=t.languages.powershell.variable,t.languages.powershell.string[0].inside.function.inside=t.languages.powershell;t.languages.processing=t.languages.extend("clike",{keyword:/\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\b/,operator:/<[<=]?|>[>=]?|&&?|\|\|?|[%?]|[!=+\-*\/]=?/}),t.languages.insertBefore("processing","number",{constant:/\b(?!XML\b)[A-Z][A-Z\d_]+\b/,type:{pattern:/\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z]\w*)\b/,alias:"variable"}}),t.languages.processing.function.pattern=/\w+(?=\s*\()/,t.languages.processing["class-name"].alias="variable";t.languages.prolog={comment:[/%.+/,/\/\*[\s\S]*?\*\//],string:{pattern:/(["'])(?:\1\1|\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0},builtin:/\b(?:fx|fy|xf[xy]?|yfx?)\b/,variable:/\b[A-Z_]\w*/,function:/\b[a-z]\w*(?:(?=\()|\/\d+)/,number:/\b\d+\.?\d*/,operator:/[:\\=><\-?*@\/;+^|!$.]+|\b(?:is|mod|not|xor)\b/,punctuation:/[(){}\[\],]/};t.languages.properties={comment:/^[ \t]*[#!].*$/m,"attr-value":{pattern:/(^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?: *[=:] *| ))(?:\\(?:\r\n|[\s\S])|[^\\\r\n])+/m,lookbehind:!0},"attr-name":/^[ \t]*(?:\\(?:\r\n|[\s\S])|[^\\\s:=])+?(?= *[=:] *| )/m,punctuation:/[=:]/};t.languages.protobuf=t.languages.extend("clike",{keyword:/\b(?:package|import|message|enum)\b/,builtin:/\b(?:required|repeated|optional|reserved)\b/,primitive:{pattern:/\b(?:double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\b/,alias:"symbol"}});(function(e){e.languages.pug={comment:{pattern:/(^([\t ]*))\/\/.*(?:(?:\r?\n|\r)\2[\t ]+.+)*/m,lookbehind:!0},"multiline-script":{pattern:/(^([\t ]*)script\b.*\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{rest:e.languages.javascript}},filter:{pattern:/(^([\t ]*)):.+(?:(?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"}}},"multiline-plain-text":{pattern:/(^([\t ]*)[\w\-#.]+\.[\t ]*)(?:(?:\r?\n|\r(?!\n))(?:\2[\t ]+.+|\s*?(?=\r?\n|\r)))+/m,lookbehind:!0},markup:{pattern:/(^[\t ]*)<.+/m,lookbehind:!0,inside:{rest:e.languages.markup}},doctype:{pattern:/((?:^|\n)[\t ]*)doctype(?: .+)?/,lookbehind:!0},"flow-control":{pattern:/(^[\t ]*)(?:if|unless|else|case|when|default|each|while)\b(?: .+)?/m,lookbehind:!0,inside:{each:{pattern:/^each .+? in\b/,inside:{keyword:/\b(?:each|in)\b/,punctuation:/,/}},branch:{pattern:/^(?:if|unless|else|case|when|default|while)\b/,alias:"keyword"},rest:e.languages.javascript}},keyword:{pattern:/(^[\t ]*)(?:block|extends|include|append|prepend)\b.+/m,lookbehind:!0},mixin:[{pattern:/(^[\t ]*)mixin .+/m,lookbehind:!0,inside:{keyword:/^mixin/,function:/\w+(?=\s*\(|\s*$)/,punctuation:/[(),.]/}},{pattern:/(^[\t ]*)\+.+/m,lookbehind:!0,inside:{name:{pattern:/^\+\w+/,alias:"function"},rest:e.languages.javascript}}],script:{pattern:/(^[\t ]*script(?:(?:&[^(]+)?\([^)]+\))*[\t ]+).+/m,lookbehind:!0,inside:{rest:e.languages.javascript}},"plain-text":{pattern:/(^[\t ]*(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?[\t ]+).+/m,lookbehind:!0},tag:{pattern:/(^[\t ]*)(?!-)[\w\-#.]*[\w\-](?:(?:&[^(]+)?\([^)]+\))*\/?:?/m,lookbehind:!0,inside:{attributes:[{pattern:/&[^(]+\([^)]+\)/,inside:{rest:e.languages.javascript}},{pattern:/\([^)]+\)/,inside:{"attr-value":{pattern:/(=\s*)(?:\{[^}]*\}|[^,)\r\n]+)/,lookbehind:!0,inside:{rest:e.languages.javascript}},"attr-name":/[\w-]+(?=\s*!?=|\s*[,)])/,punctuation:/[!=(),]+/}}],punctuation:/:/}},code:[{pattern:/(^[\t ]*(?:-|!?=)).+/m,lookbehind:!0,inside:{rest:e.languages.javascript}}],punctuation:/[.\-!=|]+/};for(var i="(^([\\t ]*)):{{filter_name}}(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+",r=[{filter:"atpl",language:"twig"},{filter:"coffee",language:"coffeescript"},"ejs","handlebars","hogan","less","livescript","markdown","mustache","plates",{filter:"sass",language:"scss"},"stylus","swig"],d={},o=0,n=r.length;n>o;o++){var a=r[o];a=typeof a=="string"?{filter:a,language:a}:a,e.languages[a.language]&&(d["filter-"+a.filter]={pattern:RegExp(i.replace("{{filter_name}}",a.filter),"m"),lookbehind:!0,inside:{"filter-name":{pattern:/^:[\w-]+/,alias:"variable"},rest:e.languages[a.language]}})}e.languages.insertBefore("pug","filter",d)})(t);(function(e){e.languages.puppet={heredoc:[{pattern:/(@\("([^"\r\n\/):]+)"(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r))*?[ \t]*\|?[ \t]*-?[ \t]*\2/,lookbehind:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/(@\(([^"\r\n\/):]+)(?:\/[nrts$uL]*)?\).*(?:\r?\n|\r))(?:.*(?:\r?\n|\r))*?[ \t]*\|?[ \t]*-?[ \t]*\2/,lookbehind:!0,greedy:!0,alias:"string",inside:{punctuation:/(?=\S).*\S(?= *$)/}},{pattern:/@\("?(?:[^"\r\n\/):]+)"?(?:\/[nrts$uL]*)?\)/,alias:"string",inside:{punctuation:{pattern:/(\().+?(?=\))/,lookbehind:!0}}}],"multiline-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,greedy:!0,alias:"comment"},regex:{pattern:/((?:\bnode\s+|[~=\(\[\{,]\s*|[=+]>\s*|^\s*))\/(?:[^\/\\]|\\[\s\S])+\/(?:[imx]+\b|\B)/,lookbehind:!0,greedy:!0,inside:{"extended-regex":{pattern:/^\/(?:[^\/\\]|\\[\s\S])+\/[im]*x[im]*$/,inside:{comment:/#.*/}}}},comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0,greedy:!0},string:{pattern:/(["'])(?:\$\{(?:[^'"}]|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}|(?!\1)[^\\]|\\[\s\S])*\1/,greedy:!0,inside:{"double-quoted":{pattern:/^"[\s\S]*"$/,inside:{}}}},variable:{pattern:/\$(?:::)?\w+(?:::\w+)*/,inside:{punctuation:/::/}},"attr-name":/(?:\w+|\*)(?=\s*=>)/,function:[{pattern:/(\.)(?!\d)\w+/,lookbehind:!0},/\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\b|\b(?!\d)\w+(?=\()/],number:/\b(?:0x[a-f\d]+|\d+(?:\.\d+)?(?:e-?\d+)?)\b/i,boolean:/\b(?:true|false)\b/,keyword:/\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\b/,datatype:{pattern:/\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\b/,alias:"symbol"},operator:/=[=~>]?|![=~]?|<(?:<\|?|[=~|-])?|>[>=]?|->?|~>|\|>?>?|[*\/%+?]|\b(?:and|in|or)\b/,punctuation:/[\[\]{}().,;]|:+/};var i=[{pattern:/(^|[^\\])\$\{(?:[^'"{}]|\{[^}]*\}|(["'])(?:(?!\2)[^\\]|\\[\s\S])*\2)+\}/,lookbehind:!0,inside:{"short-variable":{pattern:/(^\$\{)(?!\w+\()(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}},delimiter:{pattern:/^\$/,alias:"variable"},rest:e.languages.puppet}},{pattern:/(^|[^\\])\$(?:::)?\w+(?:::\w+)*/,lookbehind:!0,alias:"variable",inside:{punctuation:/::/}}];e.languages.puppet.heredoc[0].inside.interpolation=i,e.languages.puppet.string.inside["double-quoted"].inside.interpolation=i})(t);(function(e){e.languages.pure={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0},/#!.+/],"inline-lang":{pattern:/%<[\s\S]+?%>/,greedy:!0,inside:{lang:{pattern:/(^%< *)-\*-.+?-\*-/,lookbehind:!0,alias:"comment"},delimiter:{pattern:/^%<.*|%>$/,alias:"punctuation"}}},string:{pattern:/"(?:\\.|[^"\\\r\n])*"/,greedy:!0},number:{pattern:/((?:\.\.)?)(?:\b(?:inf|nan)\b|\b0x[\da-f]+|(?:\b(?:0b)?\d+(?:\.\d)?|\B\.\d)\d*(?:e[+-]?\d+)?L?)/i,lookbehind:!0},keyword:/\b(?:ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|NULL|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\b/,function:/\b(?:abs|add_(?:(?:fundef|interface|macdef|typedef)(?:_at)?|addr|constdef|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_(?:matrix|pointer)|byte_c?string(?:_pointer)?|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|short|sentry|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\b/,special:{pattern:/\b__[a-z]+__\b/i,alias:"builtin"},operator:/(?=\b_|[^_])[!"#$%&'*+,\-.\/:<=>?@\\^_`|~\u00a1-\u00bf\u00d7-\u00f7\u20d0-\u2bff]+|\b(?:and|div|mod|not|or)\b/,punctuation:/[(){}\[\];,|]/};var i=["c",{lang:"c++",alias:"cpp"},"fortran","ats","dsp"],r="%< *-\\*- *{lang}\\d* *-\\*-[\\s\\S]+?%>";i.forEach(function(d){var o=d;if(typeof d!="string"&&(o=d.alias,d=d.lang),e.languages[o]){var n={};n["inline-lang-"+o]={pattern:RegExp(r.replace("{lang}",d.replace(/([.+*?\/\\(){}\[\]])/g,"\\$1")),"i"),inside:e.util.clone(e.languages.pure["inline-lang"].inside)},n["inline-lang-"+o].inside.rest=e.util.clone(e.languages[o]),e.languages.insertBefore("pure","inline-lang",n)}}),e.languages.c&&(e.languages.pure["inline-lang"].inside.rest=e.util.clone(e.languages.c))})(t);t.languages.python={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},"triple-quoted-string":{pattern:/("""|''')[\s\S]+?\1/,greedy:!0,alias:"string"},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},function:{pattern:/((?:^|\s)def[ \t]+)[a-zA-Z_]\w*(?=\s*\()/g,lookbehind:!0},"class-name":{pattern:/(\bclass\s+)\w+/i,lookbehind:!0},keyword:/\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|pass|print|raise|return|try|while|with|yield)\b/,builtin:/\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\b/,boolean:/\b(?:True|False|None)\b/,number:/(?:\b(?=\d)|\B(?=\.))(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*|\.\d+)(?:e[+-]?\d+)?j?\b/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not)\b/,punctuation:/[{}[\];(),.:]/};t.languages.q={string:/"(?:\\.|[^"\\\r\n])*"/,comment:[{pattern:/([\t )\]}])\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|\r?\n|\r)\/[\t ]*(?:(?:\r?\n|\r)(?:.*(?:\r?\n|\r))*?(?:\\(?=[\t ]*(?:\r?\n|\r))|$)|\S.*)/,lookbehind:!0,greedy:!0},{pattern:/^\\[\t ]*(?:\r?\n|\r)[\s\S]+/m,greedy:!0},{pattern:/^#!.+/m,greedy:!0}],symbol:/`(?::\S+|[\w.]*)/,datetime:{pattern:/0N[mdzuvt]|0W[dtz]|\d{4}\.\d\d(?:m|\.\d\d(?:T(?:\d\d(?::\d\d(?::\d\d(?:[.:]\d\d\d)?)?)?)?)?[dz]?)|\d\d:\d\d(?::\d\d(?:[.:]\d\d\d)?)?[uvt]?/,alias:"number"},number:/\b(?![01]:)(?:0[wn]|0W[hj]?|0N[hje]?|0x[\da-fA-F]+|\d+\.?\d*(?:e[+-]?\d+)?[hjfeb]?)/,keyword:/\\\w+\b|\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\b/,adverb:{pattern:/['\/\\]:?|\beach\b/,alias:"function"},verb:{pattern:/(?:\B\.\B|\b[01]:|<[=>]?|>=?|[:+\-*%,!?_~=|$&#@^]):?/,alias:"operator"},punctuation:/[(){}\[\];.]/};t.languages.qore=t.languages.extend("clike",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|(?:\/\/|#).*)/,lookbehind:!0},string:{pattern:/("|')(\\[\s\S]|(?!\1)[^\\])*\1/,greedy:!0},variable:/\$(?!\d)\w+\b/,keyword:/\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\b/,number:/\b(?:0b[01]+|0x[\da-f]*\.?[\da-fp\-]+|\d*\.?\d+e?\d*[df]|\d*\.?\d+)\b/i,boolean:/\b(?:true|false)\b/i,operator:{pattern:/(^|[^.])(?:\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\|[|=]?|[*\/%^]=?|[~?])/,lookbehind:!0},function:/\$?\b(?!\d)\w+(?=\()/});t.languages.r={comment:/#.*/,string:{pattern:/(['"])(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},"percent-operator":{pattern:/%[^%\s]*%/,alias:"operator"},boolean:/\b(?:TRUE|FALSE)\b/,ellipsis:/\.\.(?:\.|\d+)/,number:[/\b(?:NaN|Inf)\b/,/(?:\b0x[\dA-Fa-f]+(?:\.\d*)?|\b\d+\.?\d*|\B\.\d+)(?:[EePp][+-]?\d+)?[iL]?/],keyword:/\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\b/,operator:/->?>?|<(?:=|=!]=?|::?|&&?|\|\|?|[+*\/^$@~]/,punctuation:/[(){}\[\],;]/};(function(e){var i=e.util.clone(e.languages.javascript);e.languages.jsx=e.languages.extend("markup",i),e.languages.jsx.tag.pattern=/<\/?(?:[\w.:-]+\s*(?:\s+(?:[\w.:-]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s{'">=]+|\{(?:\{(?:\{[^}]*\}|[^{}])*\}|[^{}])+\}))?|\{\.{3}[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\}))*\s*\/?)?>/i,e.languages.jsx.tag.inside.tag.pattern=/^<\/?[^\s>\/]*/i,e.languages.jsx.tag.inside["attr-value"].pattern=/=(?!\{)(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">]+)/i,e.languages.insertBefore("inside","attr-name",{spread:{pattern:/\{\.{3}[a-z_$][\w$]*(?:\.[a-z_$][\w$]*)*\}/,inside:{punctuation:/\.{3}|[{}.]/,"attr-value":/\w+/}}},e.languages.jsx.tag),e.languages.insertBefore("inside","attr-value",{script:{pattern:/=(\{(?:\{(?:\{[^}]*\}|[^}])*\}|[^}])+\})/i,inside:{"script-punctuation":{pattern:/^=(?={)/,alias:"punctuation"},rest:e.languages.jsx},alias:"language-javascript"}},e.languages.jsx.tag);var r=function(o){return o?typeof o=="string"?o:typeof o.content=="string"?o.content:o.content.map(r).join(""):""},d=function(o){for(var n=[],a=0;a0&&n[n.length-1].tagName===r(s.content[0].content[1])&&n.pop():s.content[s.content.length-1].content==="/>"||n.push({tagName:r(s.content[0].content[1]),openedBraces:0}):n.length>0&&s.type==="punctuation"&&s.content==="{"?n[n.length-1].openedBraces++:n.length>0&&n[n.length-1].openedBraces>0&&s.type==="punctuation"&&s.content==="}"?n[n.length-1].openedBraces--:l=!0),(l||typeof s=="string")&&n.length>0&&n[n.length-1].openedBraces===0){var c=r(s);a0&&(typeof o[a-1]=="string"||o[a-1].type==="plain-text")&&(c=r(o[a-1])+c,o.splice(a-1,1),a--),o[a]=new e.Token("plain-text",c,null,c)}s.content&&typeof s.content!="string"&&d(s.content)}};e.hooks.add("after-tokenize",function(o){(o.language==="jsx"||o.language==="tsx")&&d(o.tokens)})})(t);t.languages.typescript=t.languages.extend("javascript",{keyword:/\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield|module|declare|constructor|namespace|abstract|require|type)\b/,builtin:/\b(?:string|Function|any|number|boolean|Array|symbol|console)\b/}),t.languages.ts=t.languages.typescript;t.languages.renpy={comment:{pattern:/(^|[^\\])#.+/,lookbehind:!0},string:{pattern:/("""|''')[\s\S]+?\1|("|')(?:\\.|(?!\2)[^\\\r\n])*\2|(?:^#?(?:(?:[0-9a-fA-F]{2}){3}|(?:[0-9a-fA-F]){3})$)/m,greedy:!0},function:/[a-z_]\w*(?=\()/i,property:/\b(?:insensitive|idle|hover|selected_idle|selected_hover|background|position|alt|xpos|ypos|pos|xanchor|yanchor|anchor|xalign|yalign|align|xcenter|ycenter|xofsset|yoffset|ymaximum|maximum|xmaximum|xminimum|yminimum|minimum|xsize|ysizexysize|xfill|yfill|area|antialias|black_color|bold|caret|color|first_indent|font|size|italic|justify|kerning|language|layout|line_leading|line_overlap_split|line_spacing|min_width|newline_indent|outlines|rest_indent|ruby_style|slow_cps|slow_cps_multiplier|strikethrough|text_align|underline|hyperlink_functions|vertical|hinting|foreground|left_margin|xmargin|top_margin|bottom_margin|ymargin|left_padding|right_padding|xpadding|top_padding|bottom_padding|ypadding|size_group|child|hover_sound|activate_sound|mouse|focus_mask|keyboard_focus|bar_vertical|bar_invert|bar_resizing|left_gutter|right_gutter|top_gutter|bottom_gutter|left_bar|right_bar|top_bar|bottom_bar|thumb|thumb_shadow|thumb_offset|unscrollable|spacing|first_spacing|box_reverse|box_wrap|order_reverse|fit_first|ysize|thumbnail_width|thumbnail_height|help|text_ypos|text_xpos|idle_color|hover_color|selected_idle_color|selected_hover_color|insensitive_color|alpha|insensitive_background|hover_background|zorder|value|width|xadjustment|xanchoraround|xaround|xinitial|xoffset|xzoom|yadjustment|yanchoraround|yaround|yinitial|yzoom|zoom|ground|height|text_style|text_y_fudge|selected_insensitive|has_sound|has_music|has_voice|focus|hovered|image_style|length|minwidth|mousewheel|offset|prefix|radius|range|right_margin|rotate|rotate_pad|developer|screen_width|screen_height|window_title|name|version|windows_icon|default_fullscreen|default_text_cps|default_afm_time|main_menu_music|sample_sound|enter_sound|exit_sound|save_directory|enter_transition|exit_transition|intra_transition|main_game_transition|game_main_transition|end_splash_transition|end_game_transition|after_load_transition|window_show_transition|window_hide_transition|adv_nvl_transition|nvl_adv_transition|enter_yesno_transition|exit_yesno_transition|enter_replay_transition|exit_replay_transition|say_attribute_transition|directory_name|executable_name|include_update|window_icon|modal|google_play_key|google_play_salt|drag_name|drag_handle|draggable|dragged|droppable|dropped|narrator_menu|action|default_afm_enable|version_name|version_tuple|inside|fadeout|fadein|layers|layer_clipping|linear|scrollbars|side_xpos|side_ypos|side_spacing|edgescroll|drag_joined|drag_raise|drop_shadow|drop_shadow_color|subpixel|easein|easeout|time|crop|auto|update|get_installed_packages|can_update|UpdateVersion|Update|overlay_functions|translations|window_left_padding|show_side_image|show_two_window)\b/,tag:/\b(?:label|image|menu|[hv]box|frame|text|imagemap|imagebutton|bar|vbar|screen|textbutton|buttoscreenn|fixed|grid|input|key|mousearea|side|timer|viewport|window|hotspot|hotbar|self|button|drag|draggroup|tag|mm_menu_frame|nvl|block|parallel)\b|\$/,keyword:/\b(?:as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|yield|adjustment|alignaround|allow|angle|around|box_layout|cache|changed|child_size|clicked|clipping|corner1|corner2|default|delay|exclude|scope|slow|slow_abortable|slow_done|sound|style_group|substitute|suffix|transform_anchor|transpose|unhovered|config|theme|mm_root|gm_root|rounded_window|build|disabled_text|disabled|widget_selected|widget_text|widget_hover|widget|updater|behind|call|expression|hide|init|jump|onlayer|python|renpy|scene|set|show|transform|play|queue|stop|pause|define|window|repeat|contains|choice|on|function|event|animation|clockwise|counterclockwise|circles|knot|null|None|random|has|add|use|fade|dissolve|style|store|id|voice|center|left|right|less_rounded|music|movie|clear|persistent|ui)\b/,boolean:/\b(?:[Tt]rue|[Ff]alse)\b/,number:/(?:\b(?:0[bo])?(?:(?:\d|0x[\da-f])[\da-f]*\.?\d*)|\B\.\d+)(?:e[+-]?\d+)?j?/i,operator:/[-+%=]=?|!=|\*\*?=?|\/\/?=?|<[<=>]?|>[=>]?|[&|^~]|\b(?:or|and|not|with|at)\b/,punctuation:/[{}[\];(),.:]/};t.languages.reason=t.languages.extend("clike",{comment:{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^\\\r\n"])*"/,greedy:!0},"class-name":/\b[A-Z]\w*/,keyword:/\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\b/,operator:/\.{3}|:[:=]|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\-*\/]\.?|\b(?:mod|land|lor|lxor|lsl|lsr|asr)\b/}),t.languages.insertBefore("reason","class-name",{character:{pattern:/'(?:\\x[\da-f]{2}|\\o[0-3][0-7][0-7]|\\\d{3}|\\.|[^'\\\r\n])'/,alias:"string"},constructor:{pattern:/\b[A-Z]\w*\b(?!\s*\.)/,alias:"variable"},label:{pattern:/\b[a-z]\w*(?=::)/,alias:"symbol"}}),delete t.languages.reason.function;t.languages.rest={table:[{pattern:/(\s*)(?:\+[=-]+)+\+(?:\r?\n|\r)(?:\1(?:[+|].+)+[+|](?:\r?\n|\r))+\1(?:\+[=-]+)+\+/,lookbehind:!0,inside:{punctuation:/\||(?:\+[=-]+)+\+/}},{pattern:/(\s*)(?:=+ +)+=+(?:(?:\r?\n|\r)\1.+)+(?:\r?\n|\r)\1(?:=+ +)+=+(?=(?:\r?\n|\r){2}|\s*$)/,lookbehind:!0,inside:{punctuation:/[=-]+/}}],"substitution-def":{pattern:/(^\s*\.\. )\|(?:[^|\s](?:[^|]*[^|\s])?)\| [^:]+::/m,lookbehind:!0,inside:{substitution:{pattern:/^\|(?:[^|\s]|[^|\s][^|]*[^|\s])\|/,alias:"attr-value",inside:{punctuation:/^\||\|$/}},directive:{pattern:/( +)[^:]+::/,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}}}},"link-target":[{pattern:/(^\s*\.\. )\[[^\]]+\]/m,lookbehind:!0,alias:"string",inside:{punctuation:/^\[|\]$/}},{pattern:/(^\s*\.\. )_(?:`[^`]+`|(?:[^:\\]|\\.)+):/m,lookbehind:!0,alias:"string",inside:{punctuation:/^_|:$/}}],directive:{pattern:/(^\s*\.\. )[^:]+::/m,lookbehind:!0,alias:"function",inside:{punctuation:/::$/}},comment:{pattern:/(^\s*\.\.)(?:(?: .+)?(?:(?:\r?\n|\r).+)+| .+)(?=(?:\r?\n|\r){2}|$)/m,lookbehind:!0},title:[{pattern:/^(([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+)(?:\r?\n|\r).+(?:\r?\n|\r)\1$/m,inside:{punctuation:/^[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+|[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}},{pattern:/(^|(?:\r?\n|\r){2}).+(?:\r?\n|\r)([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2+(?=\r?\n|\r|$)/,lookbehind:!0,inside:{punctuation:/[!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]+$/,important:/.+/}}],hr:{pattern:/((?:\r?\n|\r){2})([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\2{3,}(?=(?:\r?\n|\r){2})/,lookbehind:!0,alias:"punctuation"},field:{pattern:/(^\s*):[^:\r\n]+:(?= )/m,lookbehind:!0,alias:"attr-name"},"command-line-option":{pattern:/(^\s*)(?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\d]|(?:--|\/)[a-z\d-]+)(?:[ =](?:[a-z][\w-]*|<[^<>]+>))?)*(?=(?:\r?\n|\r)? {2,}\S)/im,lookbehind:!0,alias:"symbol"},"literal-block":{pattern:/::(?:\r?\n|\r){2}([ \t]+).+(?:(?:\r?\n|\r)\1.+)*/,inside:{"literal-block-punctuation":{pattern:/^::/,alias:"punctuation"}}},"quoted-literal-block":{pattern:/::(?:\r?\n|\r){2}([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~]).*(?:(?:\r?\n|\r)\1.*)*/,inside:{"literal-block-punctuation":{pattern:/^(?:::|([!"#$%&'()*+,\-.\/:;<=>?@\[\\\]^_`{|}~])\1*)/m,alias:"punctuation"}}},"list-bullet":{pattern:/(^\s*)(?:[*+\-ā€¢ā€£āƒ]|\(?(?:\d+|[a-z]|[ivxdclm]+)\)|(?:\d+|[a-z]|[ivxdclm]+)\.)(?= )/im,lookbehind:!0,alias:"punctuation"},"doctest-block":{pattern:/(^\s*)>>> .+(?:(?:\r?\n|\r).+)*/m,lookbehind:!0,inside:{punctuation:/^>>>/}},inline:[{pattern:/(^|[\s\-:\/'"<(\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\*\*?|``?|\|)(?!\s).*?[^\s]\2(?=[\s\-.,:;!?\\\/'")\]}]|$))/m,lookbehind:!0,inside:{bold:{pattern:/(^\*\*).+(?=\*\*$)/,lookbehind:!0},italic:{pattern:/(^\*).+(?=\*$)/,lookbehind:!0},"inline-literal":{pattern:/(^``).+(?=``$)/,lookbehind:!0,alias:"symbol"},role:{pattern:/^:[^:]+:|:[^:]+:$/,alias:"function",inside:{punctuation:/^:|:$/}},"interpreted-text":{pattern:/(^`).+(?=`$)/,lookbehind:!0,alias:"attr-value"},substitution:{pattern:/(^\|).+(?=\|$)/,lookbehind:!0,alias:"attr-value"},punctuation:/\*\*?|``?|\|/}}],link:[{pattern:/\[[^\]]+\]_(?=[\s\-.,:;!?\\\/'")\]}]|$)/,alias:"string",inside:{punctuation:/^\[|\]_$/}},{pattern:/(?:\b[a-z\d](?:[_.:+]?[a-z\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\s\-.,:;!?\\\/'")\]}]|$)/i,alias:"string",inside:{punctuation:/^_?`|`$|`?_?_$/}}],punctuation:{pattern:/(^\s*)(?:\|(?= |$)|(?:---?|—|\.\.|__)(?= )|\.\.$)/m,lookbehind:!0}};t.languages.rip={comment:/#.*/,keyword:/(?:=>|->)|\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\b/,builtin:/@|\bSystem\b/,boolean:/\b(?:true|false)\b/,date:/\b\d{4}-\d{2}-\d{2}\b/,time:/\b\d{2}:\d{2}:\d{2}\b/,datetime:/\b\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}\b/,character:/\B`[^\s`'",.:;#\/\\()<>\[\]{}]\b/,regex:{pattern:/(^|[^\/])\/(?!\/)(\[.+?]|\\.|[^\/\\\r\n])+\/(?=\s*($|[\r\n,.;})]))/,lookbehind:!0,greedy:!0},symbol:/:[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/,string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0},number:/[+-]?(?:(?:\d+\.\d+)|(?:\d+))/,punctuation:/(?:\.{2,3})|[`,.:;=\/\\()<>\[\]{}]/,reference:/[^\d\s`'",.:;#\/\\()<>\[\]{}][^\s`'",.:;#\/\\()<>\[\]{}]*/};t.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\s)(?:(?:facet|instance of)(?=[ \t]+[\w-]+[ \t]*\{)|(?:external|import)\b)/,lookbehind:!0},component:{pattern:/[\w-]+(?=[ \t]*\{)/,alias:"variable"},property:/[\w.-]+(?=[ \t]*:)/,value:{pattern:/(=[ \t]*)[^,;]+/,lookbehind:!0,alias:"attr-value"},optional:{pattern:/\(optional\)/,alias:"builtin"},wildcard:{pattern:/(\.)\*/,lookbehind:!0,alias:"operator"},punctuation:/[{},.;:=]/};(function(e){e.languages.crystal=e.languages.extend("ruby",{keyword:[/\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\b/,{pattern:/(\.\s*)(?:is_a|responds_to)\?/,lookbehind:!0}],number:/\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\da-fA-F_]*[\da-fA-F]|(?:\d(?:[\d_]*\d)?)(?:\.[\d_]*\d)?(?:[eE][+-]?[\d_]*\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\b/}),e.languages.insertBefore("crystal","string",{attribute:{pattern:/@\[.+?\]/,alias:"attr-name",inside:{delimiter:{pattern:/^@\[|\]$/,alias:"tag"},rest:e.languages.crystal}},expansion:[{pattern:/\{\{.+?\}\}/,inside:{delimiter:{pattern:/^\{\{|\}\}$/,alias:"tag"},rest:e.languages.crystal}},{pattern:/\{%.+?%\}/,inside:{delimiter:{pattern:/^\{%|%\}$/,alias:"tag"},rest:e.languages.crystal}}]})})(t);t.languages.rust={comment:[{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0},{pattern:/(^|[^\\:])\/\/.*/,lookbehind:!0}],string:[{pattern:/b?r(#*)"(?:\\.|(?!"\1)[^\\\r\n])*"\1/,greedy:!0},{pattern:/b?"(?:\\.|[^\\\r\n"])*"/,greedy:!0}],char:{pattern:/b?'(?:\\(?:x[0-7][\da-fA-F]|u{(?:[\da-fA-F]_*){1,6}|.)|[^\\\r\n\t'])'/,alias:"string"},"lifetime-annotation":{pattern:/'[^\s>']+/,alias:"symbol"},keyword:/\b(?:abstract|alignof|as|be|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|match|mod|move|mut|offsetof|once|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\b/,attribute:{pattern:/#!?\[.+?\]/,greedy:!0,alias:"attr-name"},function:[/\w+(?=\s*\()/,/\w+!(?=\s*\(|\[)/],"macro-rules":{pattern:/\w+!/,alias:"function"},number:/\b(?:0x[\dA-Fa-f](?:_?[\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(\d(?:_?\d)*)?\.?\d(?:_?\d)*(?:[Ee][+-]?\d+)?)(?:_?(?:[iu](?:8|16|32|64)?|f32|f64))?\b/,"closure-params":{pattern:/\|[^|]*\|(?=\s*[{-])/,inside:{punctuation:/[|:,]/,operator:/[&*]/}},punctuation:/[{}[\];(),:]|\.+|->/,operator:/[-+*\/%!^]=?|=[=>]?|@|&[&=]?|\|[|=]?|<>?=?/};t.languages.sas={datalines:{pattern:/^\s*(?:(?:data)?lines|cards);[\s\S]+?(?:\r?\n|\r);/im,alias:"string",inside:{keyword:{pattern:/^(\s*)(?:(?:data)?lines|cards)/i,lookbehind:!0},punctuation:/;/}},comment:[{pattern:/(^\s*|;\s*)\*.*;/m,lookbehind:!0},/\/\*[\s\S]+?\*\//],datetime:{pattern:/'[^']+'(?:dt?|t)\b/i,alias:"number"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},keyword:/\b(?:data|else|format|if|input|proc\s\w+|quit|run|then)\b/i,number:/\b(?:[\da-f]+x|\d+(?:\.\d+)?(?:e[+-]?\d+)?)/i,operator:/\*\*?|\|\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\/=&]|[~¬^]=?|\b(?:eq|ne|gt|lt|ge|le|in|not)\b/i,punctuation:/[$%@.(){}\[\];,\\]/};(function(e){e.languages.sass=e.languages.extend("css",{comment:{pattern:/^([ \t]*)\/[\/*].*(?:(?:\r?\n|\r)\1[ \t]+.+)*/m,lookbehind:!0}}),e.languages.insertBefore("sass","atrule",{"atrule-line":{pattern:/^(?:[ \t]*)[@+=].+/m,inside:{atrule:/(?:@[\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var i=/\$[-\w]+|#\{\$[-\w]+\}/,r=[/[+*\/%]|[=!]=|<=?|>=?|\b(?:and|or|not)\b/,{pattern:/(\s+)-(?=\s)/,lookbehind:!0}];e.languages.insertBefore("sass","property",{"variable-line":{pattern:/^[ \t]*\$.+/m,inside:{punctuation:/:/,variable:i,operator:r}},"property-line":{pattern:/^[ \t]*(?:[^:\s]+ *:.*|:[^:\s]+.*)/m,inside:{property:[/[^:\s]+(?=\s*:)/,{pattern:/(:)[^:\s]+/,lookbehind:!0}],punctuation:/:/,variable:i,operator:r,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,delete e.languages.sass.selector,e.languages.insertBefore("sass","punctuation",{selector:{pattern:/([ \t]*)\S(?:,?[^,\r\n]+)*(?:,(?:\r?\n|\r)\1[ \t]+\S(?:,?[^,\r\n]+)*)*/,lookbehind:!0}})})(t);t.languages.scss=t.languages.extend("css",{comment:{pattern:/(^|[^\\])(?:\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},atrule:{pattern:/@[\w-]+(?:\([^()]+\)|[^(])*?(?=\s+[{;])/,inside:{rule:/@[\w-]+/}},url:/(?:[-a-z]+-)*url(?=\()/i,selector:{pattern:/(?=\S)[^@;{}()]?(?:[^@;{}()]|&|#\{\$[-\w]+\})+(?=\s*\{(?:\}|\s|[^}]+[:{][^}]+))/m,inside:{parent:{pattern:/&/,alias:"important"},placeholder:/%[-\w]+/,variable:/\$[-\w]+|#\{\$[-\w]+\}/}}}),t.languages.insertBefore("scss","atrule",{keyword:[/@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),t.languages.scss.property={pattern:/(?:[\w-]|\$[-\w]+|#\{\$[-\w]+\})+(?=\s*:)/i,inside:{variable:/\$[-\w]+|#\{\$[-\w]+\}/}},t.languages.insertBefore("scss","important",{variable:/\$[-\w]+|#\{\$[-\w]+\}/}),t.languages.insertBefore("scss","function",{placeholder:{pattern:/%[-\w]+/,alias:"selector"},statement:{pattern:/\B!(?:default|optional)\b/i,alias:"keyword"},boolean:/\b(?:true|false)\b/,null:/\bnull\b/,operator:{pattern:/(\s)(?:[-+*\/%]|[=!]=|<=?|>=?|and|or|not)(?=\s)/,lookbehind:!0}}),t.languages.scss.atrule.inside.rest=t.languages.scss;t.languages.scala=t.languages.extend("java",{keyword:/<-|=>|\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\b/,string:[{pattern:/"""[\s\S]*?"""/,greedy:!0},{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,greedy:!0}],builtin:/\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\b/,number:/\b0x[\da-f]*\.?[\da-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:e\d+)?[dfl]?/i,symbol:/'[^\d\s\\]\w*/}),delete t.languages.scala["class-name"],delete t.languages.scala.function;t.languages.scheme={comment:/;.*/,string:{pattern:/"(?:[^"\\\r\n]|\\.)*"|'[^('\s]*/,greedy:!0},keyword:{pattern:/(\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/,lookbehind:!0},builtin:{pattern:/(\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\/cc|append|abs|apply|eval)\b|null\?|pair\?|boolean\?|eof-object\?|char\?|procedure\?|number\?|port\?|string\?|vector\?|symbol\?|bytevector\?)/,lookbehind:!0},number:{pattern:/(\s|[()])[-+]?\d*\.?\d+(?:\s*[-+]\s*\d*\.?\d+i)?\b/,lookbehind:!0},boolean:/#[tf]/,operator:{pattern:/(\()(?:[-+*%\/]|[<>]=?|=>?)/,lookbehind:!0},function:{pattern:/(\()[^\s()]*(?=[\s)])/,lookbehind:!0},punctuation:/[()]/};t.languages.smalltalk={comment:/"(?:""|[^"])+"/,string:/'(?:''|[^'])+'/,symbol:/#[\da-z]+|#(?:-|([+\/\\*~<>=@%|&?!])\1?)|#(?=\()/i,"block-arguments":{pattern:/(\[\s*):[^\[|]*\|/,lookbehind:!0,inside:{variable:/:[\da-z]+/i,punctuation:/\|/}},"temporary-variables":{pattern:/\|[^|]+\|/,inside:{variable:/[\da-z]+/i,punctuation:/\|/}},keyword:/\b(?:nil|true|false|self|super|new)\b/,character:{pattern:/\$./,alias:"string"},number:[/\d+r-?[\dA-Z]+(?:\.[\dA-Z]+)?(?:e-?\d+)?/,/\b\d+(?:\.\d+)?(?:e-?\d+)?/],operator:/[<=]=?|:=|~[~=]|\/\/?|\\\\|>[>=]?|[!^+\-*&|,@]/,punctuation:/[.;:?\[\](){}]/};(function(e){e.languages.smarty={comment:/\{\*[\s\S]*?\*\}/,delimiter:{pattern:/^\{|\}$/i,alias:"punctuation"},string:/(["'])(?:\\.|(?!\1)[^\\\r\n])*\1/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][-+]?\d+)?/,variable:[/\$(?!\d)\w+/,/#(?!\d)\w+#/,{pattern:/(\.|->)(?!\d)\w+/,lookbehind:!0},{pattern:/(\[)(?!\d)\w+(?=\])/,lookbehind:!0}],function:[{pattern:/(\|\s*)@?(?!\d)\w+/,lookbehind:!0},/^\/?(?!\d)\w+/,/(?!\d)\w+(?=\()/],"attr-name":{pattern:/\w+\s*=\s*(?:(?!\d)\w+)?/,inside:{variable:{pattern:/(=\s*)(?!\d)\w+/,lookbehind:!0},operator:/=/}},punctuation:[/[\[\]().,:`]|->/],operator:[/[+\-*\/%]|==?=?|[!<>]=?|&&|\|\|?/,/\bis\s+(?:not\s+)?(?:div|even|odd)(?:\s+by)?\b/,/\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\b/],keyword:/\b(?:false|off|on|no|true|yes)\b/},e.languages.insertBefore("smarty","tag",{"smarty-comment":{pattern:/\{\*[\s\S]*?\*\}/,alias:["smarty","comment"]}}),e.hooks.add("before-tokenize",function(i){var r=/\{\*[\s\S]*?\*\}|\{[\s\S]+?\}/g,d="{literal}",o="{/literal}",n=!1;e.languages["markup-templating"].buildPlaceholders(i,"smarty",r,function(a){return a===o&&(n=!1),n?!1:(a===d&&(n=!0),!0)})}),e.hooks.add("after-tokenize",function(i){e.languages["markup-templating"].tokenizePlaceholders(i,"smarty")})})(t);t.languages.plsql=t.languages.extend("sql",{comment:[/\/\*[\s\S]*?\*\//,/--.*/]}),t.util.type(t.languages.plsql.keyword)!=="Array"&&(t.languages.plsql.keyword=[t.languages.plsql.keyword]),t.languages.plsql.keyword.unshift(/\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\b/i),t.util.type(t.languages.plsql.operator)!=="Array"&&(t.languages.plsql.operator=[t.languages.plsql.operator]),t.languages.plsql.operator.unshift(/:=/);(function(e){var i=/(["'])(?:\\(?:\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,r=/\b\d+(?:\.\d+)?(?:[eE][+-]?\d+)?\b|\b0x[\dA-F]+\b/;e.languages.soy={comment:[/\/\*[\s\S]*?\*\//,{pattern:/(\s)\/\/.*/,lookbehind:!0,greedy:!0}],"command-arg":{pattern:/({+\/?\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\s+)\.?[\w.]+/,lookbehind:!0,alias:"string",inside:{punctuation:/\./}},parameter:{pattern:/({+\/?\s*@?param\??\s+)\.?[\w.]+/,lookbehind:!0,alias:"variable"},keyword:[{pattern:/({+\/?[^\S\r\n]*)(?:\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\??|rb|sp|switch|template|xid)/,lookbehind:!0},/\b(?:any|as|attributes|bool|css|float|in|int|js|html|list|map|null|number|string|uri)\b/],delimiter:{pattern:/^{+\/?|\/?}+$/,alias:"punctuation"},property:/\w+(?==)/,variable:{pattern:/\$[^\W\d]\w*(?:\??(?:\.\w+|\[[^\]]+]))*/,inside:{string:{pattern:i,greedy:!0},number:r,punctuation:/[\[\].?]/}},string:{pattern:i,greedy:!0},function:[/\w+(?=\()/,{pattern:/(\|[^\S\r\n]*)\w+/,lookbehind:!0}],boolean:/\b(?:true|false)\b/,number:r,operator:/\?:?|<=?|>=?|==?|!=|[+*\/%-]|\b(?:and|not|or)\b/,punctuation:/[{}()\[\]|.,:]/},e.hooks.add("before-tokenize",function(d){var o=/{{.+?}}|{.+?}|\s\/\/.*|\/\*[\s\S]*?\*\//g,n="{literal}",a="{/literal}",s=!1;e.languages["markup-templating"].buildPlaceholders(d,"soy",o,function(l){return l===a&&(s=!1),s?!1:(l===n&&(s=!0),!0)})}),e.hooks.add("after-tokenize",function(d){e.languages["markup-templating"].tokenizePlaceholders(d,"soy")})})(t);(function(e){var i={url:/url\((["']?).*?\1\)/i,string:{pattern:/("|')(?:(?!\1)[^\\\r\n]|\\(?:\r\n|[\s\S]))*\1/,greedy:!0},interpolation:null,func:null,important:/\B!(?:important|optional)\b/i,keyword:{pattern:/(^|\s+)(?:(?:if|else|for|return|unless)(?=\s+|$)|@[\w-]+)/,lookbehind:!0},hexcode:/#[\da-f]{3,6}/i,number:/\b\d+(?:\.\d+)?%?/,boolean:/\b(?:true|false)\b/,operator:[/~|[+!\/%<>?=]=?|[-:]=|\*[*=]?|\.+|&&|\|\||\B-\B|\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\b/],punctuation:/[{}()\[\];:,]/};i.interpolation={pattern:/\{[^\r\n}:]+\}/,alias:"variable",inside:{delimiter:{pattern:/^{|}$/,alias:"punctuation"},rest:i}},i.func={pattern:/[\w-]+\([^)]*\).*/,inside:{function:/^[^(]+/,rest:i}},e.languages.stylus={comment:{pattern:/(^|[^\\])(\/\*[\s\S]*?\*\/|\/\/.*)/,lookbehind:!0},"atrule-declaration":{pattern:/(^\s*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\w-]+/,rest:i}},"variable-declaration":{pattern:/(^[ \t]*)[\w$-]+\s*.?=[ \t]*(?:(?:\{[^}]*\}|.+)|$)/m,lookbehind:!0,inside:{variable:/^\S+/,rest:i}},statement:{pattern:/(^[ \t]*)(?:if|else|for|return|unless)[ \t]+.+/m,lookbehind:!0,inside:{keyword:/^\S+/,rest:i}},"property-declaration":{pattern:/((?:^|\{)([ \t]*))(?:[\w-]|\{[^}\r\n]+\})+(?:\s*:\s*|[ \t]+)[^{\r\n]*(?:;|[^{\r\n,](?=$)(?!(\r?\n|\r)(?:\{|\2[ \t]+)))/m,lookbehind:!0,inside:{property:{pattern:/^[^\s:]+/,inside:{interpolation:i.interpolation}},rest:i}},selector:{pattern:/(^[ \t]*)(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)(?:(?:\r?\n|\r)(?:\1(?:(?=\S)(?:[^{}\r\n:()]|::?[\w-]+(?:\([^)\r\n]*\))?|\{[^}\r\n]+\})+)))*(?:,$|\{|(?=(?:\r?\n|\r)(?:\{|\1[ \t]+)))/m,lookbehind:!0,inside:{interpolation:i.interpolation,punctuation:/[{},]/}},func:i.func,string:i.string,interpolation:i.interpolation,punctuation:/[{}()\[\];:.]/}})(t);t.languages.swift=t.languages.extend("clike",{string:{pattern:/("|')(\\(?:\((?:[^()]|\([^)]+\))+\)|\r\n|[\s\S])|(?!\1)[^\\\r\n])*\1/,greedy:!0,inside:{interpolation:{pattern:/\\\((?:[^()]|\([^)]+\))+\)/,inside:{delimiter:{pattern:/^\\\(|\)$/,alias:"variable"}}}}},keyword:/\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\b/,number:/\b(?:[\d_]+(?:\.[\de_]+)?|0x[a-f0-9_]+(?:\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\b/i,constant:/\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\b/,atrule:/@\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\b/,builtin:/\b(?:[A-Z]\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\b/}),t.languages.swift.string.inside.interpolation.inside.rest=t.languages.swift;t.languages.yaml={scalar:{pattern:/([\-:]\s*(?:![^\s]+)?[ \t]*[|>])[ \t]*(?:((?:\r?\n|\r)[ \t]+)[^\r\n]+(?:\2[^\r\n]+)*)/,lookbehind:!0,alias:"string"},comment:/#.*/,key:{pattern:/(\s*(?:^|[:\-,[{\r\n?])[ \t]*(?:![^\s]+)?[ \t]*)[^\r\n{[\]},#\s]+?(?=\s*:\s)/,lookbehind:!0,alias:"atrule"},directive:{pattern:/(^[ \t]*)%.+/m,lookbehind:!0,alias:"important"},datetime:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:\d{4}-\d\d?-\d\d?(?:[tT]|[ \t]+)\d\d?:\d{2}:\d{2}(?:\.\d*)?[ \t]*(?:Z|[-+]\d\d?(?::\d{2})?)?|\d{4}-\d{2}-\d{2}|\d\d?:\d{2}(?::\d{2}(?:\.\d*)?)?)(?=[ \t]*(?:$|,|]|}))/m,lookbehind:!0,alias:"number"},boolean:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:true|false)[ \t]*(?=$|,|]|})/im,lookbehind:!0,alias:"important"},null:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)(?:null|~)[ \t]*(?=$|,|]|})/im,lookbehind:!0,alias:"important"},string:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)("|')(?:(?!\2)[^\\\r\n]|\\.)*\2(?=[ \t]*(?:$|,|]|}))/m,lookbehind:!0,greedy:!0},number:{pattern:/([:\-,[{]\s*(?:![^\s]+)?[ \t]*)[+-]?(?:0x[\da-f]+|0o[0-7]+|(?:\d+\.?\d*|\.?\d+)(?:e[+-]?\d+)?|\.inf|\.nan)[ \t]*(?=$|,|]|})/im,lookbehind:!0},tag:/![^\s]+/,important:/[&*][\w]+/,punctuation:/---|[:[\]{}\-,|>?]|\.\.\./};t.languages.tcl={comment:{pattern:/(^|[^\\])#.*/,lookbehind:!0},string:{pattern:/"(?:[^"\\\r\n]|\\(?:\r\n|[\s\S]))*"/,greedy:!0},variable:[{pattern:/(\$)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/,lookbehind:!0},{pattern:/(\$){[^}]+}/,lookbehind:!0},{pattern:/(^\s*set[ \t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\w+/m,lookbehind:!0}],function:{pattern:/(^\s*proc[ \t]+)[^\s]+/m,lookbehind:!0},builtin:[{pattern:/(^\s*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\b/m,lookbehind:!0},/\b(?:elseif|else)\b/],scope:{pattern:/(^\s*)(?:global|upvar|variable)\b/m,lookbehind:!0,alias:"constant"},keyword:{pattern:/(^\s*|\[)(?:after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\b/m,lookbehind:!0},operator:/!=?|\*\*?|==|&&?|\|\|?|<[=<]?|>[=>]?|[-+~\/%?^]|\b(?:eq|ne|in|ni)\b/,punctuation:/[{}()\[\]]/};(function(e){var i="(?:\\([^|)]+\\)|\\[[^\\]]+\\]|\\{[^}]+\\})+",r={css:{pattern:/\{[^}]+\}/,inside:{rest:e.languages.css}},"class-id":{pattern:/(\()[^)]+(?=\))/,lookbehind:!0,alias:"attr-value"},lang:{pattern:/(\[)[^\]]+(?=\])/,lookbehind:!0,alias:"attr-value"},punctuation:/[\\\/]\d+|\S/};e.languages.textile=e.languages.extend("markup",{phrase:{pattern:/(^|\r|\n)\S[\s\S]*?(?=$|\r?\n\r?\n|\r\r)/,lookbehind:!0,inside:{"block-tag":{pattern:RegExp("^[a-z]\\w*(?:"+i+"|[<>=()])*\\."),inside:{modifier:{pattern:RegExp("(^[a-z]\\w*)(?:"+i+"|[<>=()])+(?=\\.)"),lookbehind:!0,inside:r},tag:/^[a-z]\w*/,punctuation:/\.$/}},list:{pattern:RegExp("^[*#]+(?:"+i+")?\\s+.+","m"),inside:{modifier:{pattern:RegExp("(^[*#]+)"+i),lookbehind:!0,inside:r},punctuation:/^[*#]+/}},table:{pattern:RegExp("^(?:(?:"+i+"|[<>=()^~])+\\.\\s*)?(?:\\|(?:(?:"+i+"|[<>=()^~_]|[\\\\/]\\d+)+\\.)?[^|]*)+\\|","m"),inside:{modifier:{pattern:RegExp("(^|\\|(?:\\r?\\n|\\r)?)(?:"+i+"|[<>=()^~_]|[\\\\/]\\d+)+(?=\\.)"),lookbehind:!0,inside:r},punctuation:/\||^\./}},inline:{pattern:RegExp("(\\*\\*|__|\\?\\?|[*_%@+\\-^~])(?:"+i+")?.+?\\1"),inside:{bold:{pattern:RegExp("(^(\\*\\*?)(?:"+i+")?).+?(?=\\2)"),lookbehind:!0},italic:{pattern:RegExp("(^(__?)(?:"+i+")?).+?(?=\\2)"),lookbehind:!0},cite:{pattern:RegExp("(^\\?\\?(?:"+i+")?).+?(?=\\?\\?)"),lookbehind:!0,alias:"string"},code:{pattern:RegExp("(^@(?:"+i+")?).+?(?=@)"),lookbehind:!0,alias:"keyword"},inserted:{pattern:RegExp("(^\\+(?:"+i+")?).+?(?=\\+)"),lookbehind:!0},deleted:{pattern:RegExp("(^-(?:"+i+")?).+?(?=-)"),lookbehind:!0},span:{pattern:RegExp("(^%(?:"+i+")?).+?(?=%)"),lookbehind:!0},modifier:{pattern:RegExp("(^\\*\\*|__|\\?\\?|[*_%@+\\-^~])"+i),lookbehind:!0,inside:r},punctuation:/[*_%?@+\-^~]+/}},"link-ref":{pattern:/^\[[^\]]+\]\S+$/m,inside:{string:{pattern:/(\[)[^\]]+(?=\])/,lookbehind:!0},url:{pattern:/(\])\S+$/,lookbehind:!0},punctuation:/[\[\]]/}},link:{pattern:RegExp('"(?:'+i+')?[^"]+":.+?(?=[^\\w/]?(?:\\s|$))'),inside:{text:{pattern:RegExp('(^"(?:'+i+')?)[^"]+(?=")'),lookbehind:!0},modifier:{pattern:RegExp('(^")'+i),lookbehind:!0,inside:r},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[":]/}},image:{pattern:RegExp("!(?:"+i+"|[<>=()])*[^!\\s()]+(?:\\([^)]+\\))?!(?::.+?(?=[^\\w/]?(?:\\s|$)))?"),inside:{source:{pattern:RegExp("(^!(?:"+i+"|[<>=()])*)[^!\\s()]+(?:\\([^)]+\\))?(?=!)"),lookbehind:!0,alias:"url"},modifier:{pattern:RegExp("(^!)(?:"+i+"|[<>=()])+"),lookbehind:!0,inside:r},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\b\[\d+\]/,alias:"comment",inside:{punctuation:/\[|\]/}},acronym:{pattern:/\b[A-Z\d]+\([^)]+\)/,inside:{comment:{pattern:/(\()[^)]+(?=\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\b\((?:TM|R|C)\)/,alias:"comment",inside:{punctuation:/[()]/}}}}});var d={inline:e.languages.textile.phrase.inside.inline,link:e.languages.textile.phrase.inside.link,image:e.languages.textile.phrase.inside.image,footnote:e.languages.textile.phrase.inside.footnote,acronym:e.languages.textile.phrase.inside.acronym,mark:e.languages.textile.phrase.inside.mark};e.languages.textile.tag.pattern=/<\/?(?!\d)[a-z0-9]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,e.languages.textile.phrase.inside.inline.inside.bold.inside=d,e.languages.textile.phrase.inside.inline.inside.italic.inside=d,e.languages.textile.phrase.inside.inline.inside.inserted.inside=d,e.languages.textile.phrase.inside.inline.inside.deleted.inside=d,e.languages.textile.phrase.inside.inline.inside.span.inside=d,e.languages.textile.phrase.inside.table.inside.inline=d.inline,e.languages.textile.phrase.inside.table.inside.link=d.link,e.languages.textile.phrase.inside.table.inside.image=d.image,e.languages.textile.phrase.inside.table.inside.footnote=d.footnote,e.languages.textile.phrase.inside.table.inside.acronym=d.acronym,e.languages.textile.phrase.inside.table.inside.mark=d.mark})(t);(function(e){e.languages.tt2=e.languages.extend("clike",{comment:{pattern:/#.*|\[%#[\s\S]*?%\]/,lookbehind:!0},keyword:/\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|TAGS|THROW|TRY|SWITCH|UNLESS|USE|WHILE|WRAPPER)\b/,punctuation:/[[\]{},()]/}),delete e.languages.tt2.operator,delete e.languages.tt2.variable,e.languages.insertBefore("tt2","number",{operator:/=[>=]?|!=?|<=?|>=?|&&|\|\|?|\b(?:and|or|not)\b/,variable:{pattern:/[a-z]\w*(?:\s*\.\s*(?:\d+|\$?[a-z]\w*))*/i}}),delete e.languages.tt2.delimiter,e.languages.insertBefore("tt2","keyword",{delimiter:{pattern:/^(?:\[%|%%)-?|-?%]$/,alias:"punctuation"}}),e.languages.insertBefore("tt2","string",{"single-quoted-string":{pattern:/'[^\\']*(?:\\[\s\S][^\\']*)*'/,greedy:!0,alias:"string"},"double-quoted-string":{pattern:/"[^\\"]*(?:\\[\s\S][^\\"]*)*"/,greedy:!0,alias:"string",inside:{variable:{pattern:/\$(?:[a-z]\w*(?:\.(?:\d+|\$?[a-z]\w*))*)/i}}}}),delete e.languages.tt2.string,e.hooks.add("before-tokenize",function(i){var r=/\[%[\s\S]+?%\]/g;e.languages["markup-templating"].buildPlaceholders(i,"tt2",r)}),e.hooks.add("after-tokenize",function(i){e.languages["markup-templating"].tokenizePlaceholders(i,"tt2")})})(t);t.languages.twig={comment:/\{#[\s\S]*?#\}/,tag:{pattern:/\{\{[\s\S]*?\}\}|\{%[\s\S]*?%\}/,inside:{ld:{pattern:/^(?:\{\{-?|\{%-?\s*\w+)/,inside:{punctuation:/^(?:\{\{|\{%)-?/,keyword:/\w+/}},rd:{pattern:/-?(?:%\}|\}\})$/,inside:{punctuation:/.*/}},string:{pattern:/("|')(?:\\.|(?!\1)[^\\\r\n])*\1/,inside:{punctuation:/^['"]|['"]$/}},keyword:/\b(?:even|if|odd)\b/,boolean:/\b(?:true|false|null)\b/,number:/\b0x[\dA-Fa-f]+|(?:\b\d+\.?\d*|\B\.\d+)(?:[Ee][-+]?\d+)?/,operator:[{pattern:/(\s)(?:and|b-and|b-xor|b-or|ends with|in|is|matches|not|or|same as|starts with)(?=\s)/,lookbehind:!0},/[=<>]=?|!=|\*\*?|\/\/?|\?:?|[-+~%|]/],property:/\b[a-zA-Z_]\w*\b/,punctuation:/[()\[\]{}:.,]/}},other:{pattern:/\S(?:[\s\S]*\S)?/,inside:t.languages.markup}};var Q=t.util.clone(t.languages.typescript);t.languages.tsx=t.languages.extend("jsx",Q);t.languages.vbnet=t.languages.extend("basic",{keyword:/(?:\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDEC|CDBL|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEFAULT|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LINE INPUT|LET|LIB|LIKE|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPERATOR|OPEN|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHORT|SINGLE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SYNCLOCK|SWAP|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\$|\b)/i,comment:[{pattern:/(?:!|REM\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\:])'.*/,lookbehind:!0}]});(function(e){e.languages.velocity=e.languages.extend("markup",{});var i={variable:{pattern:/(^|[^\\](?:\\\\)*)\$!?(?:[a-z][\w-]*(?:\([^)]*\))?(?:\.[a-z][\w-]*(?:\([^)]*\))?|\[[^\]]+])*|{[^}]+})/i,lookbehind:!0,inside:{}},string:{pattern:/"[^"]*"|'[^']*'/,greedy:!0},number:/\b\d+\b/,boolean:/\b(?:true|false)\b/,operator:/[=!<>]=?|[+*\/%-]|&&|\|\||\.\.|\b(?:eq|g[et]|l[et]|n(?:e|ot))\b/,punctuation:/[(){}[\]:,.]/};i.variable.inside={string:i.string,function:{pattern:/([^\w-])[a-z][\w-]*(?=\()/,lookbehind:!0},number:i.number,boolean:i.boolean,punctuation:i.punctuation},e.languages.insertBefore("velocity","comment",{unparsed:{pattern:/(^|[^\\])#\[\[[\s\S]*?]]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\[\[|]]#$/}},"velocity-comment":[{pattern:/(^|[^\\])#\*[\s\S]*?\*#/,lookbehind:!0,greedy:!0,alias:"comment"},{pattern:/(^|[^\\])##.*/,lookbehind:!0,greedy:!0,alias:"comment"}],directive:{pattern:/(^|[^\\](?:\\\\)*)#@?(?:[a-z][\w-]*|{[a-z][\w-]*})(?:\s*\((?:[^()]|\([^()]*\))*\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\w-]*|{[a-z][\w-]*})|\bin\b/,inside:{punctuation:/[{}]/}},rest:i}},variable:i.variable}),e.languages.velocity.tag.inside["attr-value"].inside.rest=e.languages.velocity})(t);t.languages.verilog={comment:/\/\/.*|\/\*[\s\S]*?\*\//,string:{pattern:/"(?:\\(?:\r\n|[\s\S])|[^"\\\r\n])*"/,greedy:!0},property:/\B\$\w+\b/,constant:/\B`\w+\b/,function:/\w+(?=\()/,keyword:/\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|class|case|casex|casez|cell|chandle|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endspecify|endsequence|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\b/,important:/\b(?:always_latch|always_comb|always_ff|always)\b ?@?/,number:/\B##?\d+|(?:\b\d+)?'[odbh] ?[\da-fzx_?]+|\b\d*[._]?\d+(?:e[-+]?\d+)?/i,operator:/[-+{}^~%*\/?=!<>&|]+/,punctuation:/[[\];(),.:]/};t.languages.vhdl={comment:/--.+/,"vhdl-vectors":{pattern:/\b[oxb]"[\da-f_]+"|"[01uxzwlh-]+"/i,alias:"number"},"quoted-function":{pattern:/"\S+?"(?=\()/,alias:"function"},string:/"(?:[^\\"\r\n]|\\(?:\r\n|[\s\S]))*"/,constant:/\b(?:use|library)\b/i,keyword:/\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\b/i,boolean:/\b(?:true|false)\b/i,function:/\w+(?=\()/,number:/'[01uxzwlh-]'|\b(?:\d+#[\da-f_.]+#|\d[\d_.]*)(?:e[-+]?\d+)?/i,operator:/[<>]=?|:=|[-+*\/&=]|\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\b/i,punctuation:/[{}[\];(),.:]/};t.languages.vim={string:/"(?:[^"\\\r\n]|\\.)*"|'(?:[^'\r\n]|'')*'/,comment:/".*/,function:/\w+(?=\()/,keyword:/\b(?:ab|abbreviate|abc|abclear|abo|aboveleft|al|all|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|ar|args|argu|argument|as|ascii|bad|badd|ba|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|br|brewind|bro|browse|bufdo|b|buffer|buffers|bun|bunload|bw|bwipeout|ca|cabbrev|cabc|cabclear|caddb|caddbuffer|cad|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cgetb|cgetbuffer|cgete|cgetexpr|cg|cgetfile|c|change|changes|chd|chdir|che|checkpath|checkt|checktime|cla|clast|cl|clist|clo|close|cmapc|cmapclear|cnew|cnewer|cn|cnext|cN|cNext|cnf|cnfile|cNfcNfile|cnorea|cnoreabbrev|col|colder|colo|colorscheme|comc|comclear|comp|compiler|conf|confirm|con|continue|cope|copen|co|copy|cpf|cpfile|cp|cprevious|cq|cquit|cr|crewind|cuna|cunabbrev|cu|cunmap|cw|cwindow|debugg|debuggreedy|delc|delcommand|d|delete|delf|delfunction|delm|delmarks|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|di|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|earlier|echoe|echoerr|echom|echomsg|echon|e|edit|el|else|elsei|elseif|em|emenu|endfo|endfor|endf|endfunction|endfun|en|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fina|finally|fin|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|folddoc|folddoclosed|foldd|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|ha|hardcopy|h|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iuna|iunabbrev|iu|iunmap|j|join|ju|jumps|k|keepalt|keepj|keepjumps|kee|keepmarks|laddb|laddbuffer|lad|laddexpr|laddf|laddfile|lan|language|la|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|let|left|lefta|leftabove|lex|lexpr|lf|lfile|lfir|lfirst|lgetb|lgetbuffer|lgete|lgetexpr|lg|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|l|list|ll|lla|llast|lli|llist|lmak|lmake|lm|lmap|lmapc|lmapclear|lnew|lnewer|lne|lnext|lN|lNext|lnf|lnfile|lNf|lNfile|ln|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lpf|lpfile|lp|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|mak|make|ma|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkvie|mkview|mkv|mkvimrc|mod|mode|m|move|mzf|mzfile|mz|mzscheme|nbkey|new|n|next|N|Next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|omapc|omapclear|on|only|o|open|opt|options|ou|ounmap|pc|pclose|ped|pedit|pe|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|p|print|P|Print|profd|profdel|prof|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|pyf|pyfile|py|python|qa|qall|q|quit|quita|quitall|r|read|rec|recover|redi|redir|red|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|rub|ruby|rubyd|rubydo|rubyf|rubyfile|ru|runtime|rv|rviminfo|sal|sall|san|sandbox|sa|sargument|sav|saveas|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sb|sbuffer|scripte|scriptencoding|scrip|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sla|slast|sl|sleep|sm|smagic|sm|smap|smapc|smapclear|sme|smenu|sn|snext|sN|sNext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|sor|sort|so|source|spelld|spelldump|spe|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|sp|split|spr|sprevious|sre|srewind|sta|stag|startg|startgreplace|star|startinsert|startr|startreplace|stj|stjump|st|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tab|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabnew|tabn|tabnext|tabN|tabNext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|ta|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tm|tmenu|tn|tnext|tN|tNext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tu|tunmenu|una|unabbreviate|u|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|verb|verbose|ve|version|vert|vertical|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|vi|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|wa|wall|wh|while|winc|wincmd|windo|winp|winpos|win|winsize|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|w|write|ws|wsverb|wv|wviminfo|X|xa|xall|x|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|XMLent|XMLns|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\b/,builtin:/\b(?:autocmd|acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|t_AB|t_AF|t_al|t_AL|t_bc|t_cd|t_ce|t_Ce|t_cl|t_cm|t_Co|t_cs|t_Cs|t_CS|t_CV|t_da|t_db|t_dl|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_fs|t_IE|t_IS|t_k1|t_K1|t_k2|t_k3|t_K3|t_k4|t_K4|t_k5|t_K5|t_k6|t_K6|t_k7|t_K7|t_k8|t_K8|t_k9|t_K9|t_KA|t_kb|t_kB|t_KB|t_KC|t_kd|t_kD|t_KD|t_ke|t_KE|t_KF|t_KG|t_kh|t_KH|t_kI|t_KI|t_KJ|t_KK|t_kl|t_KL|t_kN|t_kP|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_RI|t_RV|t_Sb|t_se|t_Sf|t_SI|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_WP|t_WS|t_xs|t_ZH|t_ZR)\b/,number:/\b(?:0x[\da-f]+|\d+(?:\.\d+)?)\b/i,operator:/\|\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\/%?]|\b(?:is(?:not)?)\b/,punctuation:/[{}[\](),;:]/};t.languages["visual-basic"]={comment:{pattern:/(?:['ā€˜ā€™]|REM\b).*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:[^\S\r\n]_[^\S\r\n]*(?:\r\n?|\n)|.)+/i,alias:"comment",greedy:!0},string:{pattern:/["ā€œā€](?:["ā€œā€]{2}|[^"ā€œā€])*["ā€œā€]C?/i,greedy:!0},date:{pattern:/#[^\S\r\n]*(?:\d+([\/-])\d+\1\d+(?:[^\S\r\n]+(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))?|(?:\d+[^\S\r\n]*(?:AM|PM)|\d+:\d+(?::\d+)?(?:[^\S\r\n]*(?:AM|PM))?))[^\S\r\n]*#/i,alias:"builtin"},number:/(?:(?:\b\d+(?:\.\d+)?|\.\d+)(?:E[+-]?\d+)?|&[HO][\dA-F]+)(?:U?[ILS]|[FRD])?/i,boolean:/\b(?:True|False|Nothing)\b/i,keyword:/\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|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|Try|TryCast|TypeOf|U(?:Integer|Long|Short)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\b/i,operator:[/[+\-*\/\\^<=>&#@$%!]/,{pattern:/([^\S\r\n])_(?=[^\S\r\n]*[\r\n])/,lookbehind:!0}],punctuation:/[{}().,:?]/},t.languages.vb=t.languages["visual-basic"];t.languages.wasm={comment:[/\(;[\s\S]*?;\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/"(?:\\[\s\S]|[^"\\])*"/,greedy:!0},keyword:[{pattern:/\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\b(?:(?:f32|f64|i32|i64)(?:\.(?:abs|add|and|ceil|clz|const|convert_[su]\/i(?:32|64)|copysign|ctz|demote\/f64|div(?:_[su])?|eqz?|extend_[su]\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\/f32|reinterpret\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\/f(?:32|64))?|wrap\/i64|xor))?|memory\.(?:grow|size))\b/,inside:{punctuation:/\./}},/\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\b/],variable:/\$[\w!#$%&'*+\-.\/:<=>?@\\^_`|~]+/i,number:/[+-]?\b(?:\d(?:_?\d)*(?:\.\d(?:_?\d)*)?(?:[eE][+-]?\d(?:_?\d)*)?|0x[\da-fA-F](?:_?[\da-fA-F])*(?:\.[\da-fA-F](?:_?[\da-fA-D])*)?(?:[pP][+-]?\d(?:_?\d)*)?)\b|\binf\b|\bnan(?::0x[\da-fA-F](?:_?[\da-fA-D])*)?\b/,punctuation:/[()]/};t.languages.wiki=t.languages.extend("markup",{"block-comment":{pattern:/(^|[^\\])\/\*[\s\S]*?\*\//,lookbehind:!0,alias:"comment"},heading:{pattern:/^(=+).+?\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\1/,inside:{"bold italic":{pattern:/(''''').+?(?=\1)/,lookbehind:!0},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:"punctuation"},url:[/ISBN +(?:97[89][ -]?)?(?:\d[ -]?){9}[\dx]\b|(?:RFC|PMID) +\d+/i,/\[\[.+?\]\]|\[.+?\]/],variable:[/__[A-Z]+__/,/\{{3}.+?\}{3}/,/\{\{.+?\}\}/],symbol:[/^#redirect/im,/~{3,5}/],"table-tag":{pattern:/((?:^|[|!])[|!])[^|\r\n]+\|(?!\|)/m,lookbehind:!0,inside:{"table-bar":{pattern:/\|$/,alias:"punctuation"},rest:t.languages.markup.tag.inside}},punctuation:/^(?:\{\||\|\}|\|-|[*#:;!|])|\|\||!!/m}),t.languages.insertBefore("wiki","tag",{nowiki:{pattern:/<(nowiki|pre|source)\b[\s\S]*?>[\s\S]*?<\/\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\b[\s\S]*?>|<\/(?:nowiki|pre|source)>/i,inside:t.languages.markup.tag.inside}}}});(function(e){e.languages.xeora=e.languages.extend("markup",{constant:{pattern:/\$(?:DomainContents|PageRenderDuration)\$/,inside:{punctuation:{pattern:/\$/}}},variable:{pattern:/\$@?(?:#+|[-+*~=^])?[\w.]+\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},"function-inline":{pattern:/\$F:[-\w.]+\?[-\w.]+(?:,(?:\|?(?:[-#.^+*~]*(?:[\w+][^$]*)|=(?:[\S+][^$]*)|@[-#]*(?:\w+.)[\w+.]+)?)*)?\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\$\w:|[$:?.,|]/}},alias:"function"},"function-block":{pattern:/\$XF:{[-\w.]+\?[-\w.]+(?:,(?:\|?(?:[-#.^+*~]*(?:[\w+][^$]*)|=(?:[\S+][^$]*)|@[-#]*(?:\w+.)[\w+.]+)?)*)?}:XF\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:"function"},"directive-inline":{pattern:/\$\w(?:#\d+\+?)?(?:\[[-\w.]+])?:[-\/\w.]+\$/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}}},alias:"function"},"directive-block-open":{pattern:/\$\w+:{|\$\w(?:#\d+\+?)?(?:\[[-\w.]+])?:[-\w.]+:{(![A-Z]+)?/,inside:{punctuation:{pattern:/\$(?:\w:|C(?:\[|#\d))?|[:{[\]]/,inside:{tag:{pattern:/#\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:"keyword"}},alias:"function"},"directive-block-separator":{pattern:/}:[-\w.]+:{/,inside:{punctuation:{pattern:/[:{}]/}},alias:"function"},"directive-block-close":{pattern:/}:[-\w.]+\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:"function"}}),e.languages.insertBefore("inside","punctuation",{variable:e.languages.xeora["function-inline"].inside.variable},e.languages.xeora["function-block"]),e.languages.xeoracube=e.languages.xeora})(t);t.languages.xojo={comment:{pattern:/(?:'|\/\/|Rem\b).+/i,inside:{keyword:/^Rem/i}},string:{pattern:/"(?:""|[^"])*"/,greedy:!0},number:[/(?:\b\d+\.?\d*|\B\.\d+)(?:E[+-]?\d+)?/i,/&[bchou][a-z\d]+/i],symbol:/#(?:If|Else|ElseIf|Endif|Pragma)\b/i,keyword:/\b(?:AddHandler|App|Array|As(?:signs)?|By(?:Ref|Val)|Break|Call|Case|Catch|Const|Continue|CurrentMethodName|Declare|Dim|Do(?:wnTo)?|Each|Else(?:If)?|End|Exit|Extends|False|Finally|For|Global|If|In|Lib|Loop|Me|Next|Nil|Optional|ParamArray|Raise(?:Event)?|ReDim|Rem|RemoveHandler|Return|Select|Self|Soft|Static|Step|Super|Then|To|True|Try|Ubound|Until|Using|Wend|While)\b/i,operator:/<[=>]?|>=?|[+\-*\/\\^=]|\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\b/i,punctuation:/[.,;:()]/};(function(e){e.languages.xquery=e.languages.extend("markup",{"xquery-comment":{pattern:/\(:[\s\S]*?:\)/,greedy:!0,alias:"comment"},string:{pattern:/(["'])(?:\1\1|(?!\1)[\s\S])*\1/,greedy:!0},extension:{pattern:/\(#.+?#\)/,alias:"symbol"},variable:/\$[\w-:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:"operator"},"keyword-operator":{pattern:/(^|[^:-])\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\b(?=$|[^:-])/,lookbehind:!0,alias:"operator"},keyword:{pattern:/(^|[^:-])\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\b(?=$|[^:-])/,lookbehind:!0},function:/[\w-]+(?::[\w-]+)*(?=\s*\()/,"xquery-element":{pattern:/(element\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"tag"},"xquery-attribute":{pattern:/(attribute\s+)[\w-]+(?::[\w-]+)*/,lookbehind:!0,alias:"attr-name"},builtin:{pattern:/(^|[^:-])\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|ENTITIES|ENTITY|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|ID|IDREFS?|int|integer|language|long|Name|NCName|negativeInteger|NMTOKENS?|nonNegativeInteger|nonPositiveInteger|normalizedString|NOTATION|positiveInteger|QName|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\b(?=$|[^:-])/,lookbehind:!0},number:/\b\d+(?:\.\d+)?(?:E[+-]?\d+)?/,operator:[/[+*=?|@]|\.\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\s)-(?=\s)/,lookbehind:!0}],punctuation:/[[\](){},;:\/]/}),e.languages.xquery.tag.pattern=/<\/?(?!\d)[^\s>\/=$<%]+(?:\s+[^\s>\/=]+(?:=(?:("|')(?:\\[\s\S]|{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}|(?!\1)[^\\])*\1|[^\s'">=]+))?)*\s*\/?>/i,e.languages.xquery.tag.inside["attr-value"].pattern=/=(?:("|')(?:\\[\s\S]|{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}|(?!\1)[^\\])*\1|[^\s'">=]+)/i,e.languages.xquery.tag.inside["attr-value"].inside.punctuation=/^="|"$/,e.languages.xquery.tag.inside["attr-value"].inside.expression={pattern:/{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}/,inside:{rest:e.languages.xquery},alias:"language-xquery"};var i=function(d){return typeof d=="string"?d:typeof d.content=="string"?d.content:d.content.map(i).join("")},r=function(d){for(var o=[],n=0;n0&&o[o.length-1].tagName===i(a.content[0].content[1])&&o.pop():a.content[a.content.length-1].content==="/>"||o.push({tagName:i(a.content[0].content[1]),openedBraces:0}):!(o.length>0&&a.type==="punctuation"&&a.content==="{")||d[n+1]&&d[n+1].type==="punctuation"&&d[n+1].content==="{"||d[n-1]&&d[n-1].type==="plain-text"&&d[n-1].content==="{"?o.length>0&&o[o.length-1].openedBraces>0&&a.type==="punctuation"&&a.content==="}"?o[o.length-1].openedBraces--:a.type!=="comment"&&(s=!0):o[o.length-1].openedBraces++),(s||typeof a=="string")&&o.length>0&&o[o.length-1].openedBraces===0){var l=i(a);n0&&(typeof d[n-1]=="string"||d[n-1].type==="plain-text")&&(l=i(d[n-1])+l,d.splice(n-1,1),n--),d[n]=/^\s+$/.test(l)?l:new e.Token("plain-text",l,null,l)}a.content&&typeof a.content!="string"&&r(a.content)}};e.hooks.add("after-tokenize",function(d){d.language==="xquery"&&r(d.tokens)})})(t);t.languages.tap={fail:/not ok[^#{\n\r]*/,pass:/ok[^#{\n\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \d+/i,plan:/\d+\.\.\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[^\S\r\n]*)---(?:\r\n?|\n)(?:.*(?:\r\n?|\n))*?[^\S\r\n]*\.\.\.$/m,lookbehind:!0,inside:t.languages.yaml,alias:"language-yaml"}};(function(){function e(a,s){return Array.prototype.slice.call((s||document).querySelectorAll(a))}function i(a,s){return s=" "+s+" ",(" "+a.className+" ").replace(/[\n\t]/g," ").indexOf(s)>-1}function r(a,s,l){s=typeof s=="string"?s:a.getAttribute("data-line");for(var c,p=s.replace(/\s+/g,"").split(","),g=+a.getAttribute("data-line-offset")||0,u=o()?parseInt:parseFloat,m=u(getComputedStyle(a).lineHeight),f=i(a,"line-numbers"),A=0;c=p[A++];){var b=c.split("-"),_=+b[0],I=+b[1]||_,h=a.querySelector('.line-highlight[data-range="'+c+'"]')||document.createElement("div");if(h.setAttribute("aria-hidden","true"),h.setAttribute("data-range",c),h.className=(l||"")+" line-highlight",f&&t.plugins.lineNumbers){var R=t.plugins.lineNumbers.getLine(a,_),k=t.plugins.lineNumbers.getLine(a,I);R&&(h.style.top=R.offsetTop+"px"),k&&(h.style.height=k.offsetTop-R.offsetTop+k.offsetHeight+"px")}else h.setAttribute("data-start",_),I>_&&h.setAttribute("data-end",I),h.style.top=(_-g-1)*m+"px",h.textContent=Array(I-_+2).join(` +`);f?a.appendChild(h):(a.querySelector("code")||a).appendChild(h)}}function d(){var a=location.hash.slice(1);e(".temporary.line-highlight").forEach(function(p){p.parentNode.removeChild(p)});var s=(a.match(/\.([\d,-]+)$/)||[,""])[1];if(s&&!document.getElementById(a)){var l=a.slice(0,a.lastIndexOf(".")),c=document.getElementById(l);c&&(c.hasAttribute("data-line")||c.setAttribute("data-line",""),r(c,s,"temporary "),document.querySelector(".temporary.line-highlight").scrollIntoView())}}if(typeof self<"u"&&self.Prism&&self.document&&document.querySelector){var o=function(){var a;return function(){if(typeof a>"u"){var s=document.createElement("div");s.style.fontSize="13px",s.style.lineHeight="1.5",s.style.padding=0,s.style.border=0,s.innerHTML=" 
 ",document.body.appendChild(s),a=s.offsetHeight===38,document.body.removeChild(s)}return a}}(),n=0;t.hooks.add("before-sanity-check",function(a){var s=a.element.parentNode,l=s&&s.getAttribute("data-line");if(s&&l&&/pre/i.test(s.nodeName)){var c=0;e(".line-highlight",s).forEach(function(p){c+=p.textContent.length,p.parentNode.removeChild(p)}),c&&/^( \n)+$/.test(a.code.slice(-c))&&(a.code=a.code.slice(0,-c))}}),t.hooks.add("complete",function a(s){var l=s.element.parentNode,c=l&&l.getAttribute("data-line");if(l&&c&&/pre/i.test(l.nodeName)){clearTimeout(n);var p=t.plugins.lineNumbers,g=s.plugins&&s.plugins.lineNumbers;i(l,"line-numbers")&&p&&!g?t.hooks.add("line-numbers",a):(r(l,c),n=setTimeout(d,1))}}),window.addEventListener("hashchange",d),window.addEventListener("resize",function(){var a=document.querySelectorAll("pre[data-line]");Array.prototype.forEach.call(a,function(s){r(s)})})}})();(function(){typeof self<"u"&&!self.Prism||typeof global<"u"&&!global.Prism||t.hooks.add("wrap",function(e){e.type==="keyword"&&e.classes.push("keyword-"+e.content)})})();(function(){function e(o){this.defaults=d({},o)}function i(o){return o.replace(/-(\w)/g,function(n,a){return a.toUpperCase()})}function r(o){for(var n=0,a=0;an&&(l[p]=` +`+l[p],c=g)}a[s]=l.join("")}return a.join(` +`)}},typeof v<"u"&&v.exports&&(v.exports=e),typeof t<"u"&&(t.plugins.NormalizeWhitespace=new e({"remove-trailing":!0,"remove-indent":!0,"left-trim":!0,"right-trim":!0}),t.hooks.add("before-sanity-check",function(o){var n=t.plugins.NormalizeWhitespace;if(!o.settings||o.settings["whitespace-normalization"]!==!1){if((!o.element||!o.element.parentNode)&&o.code)return o.code=n.normalize(o.code,o.settings),void 0;var a=o.element.parentNode,s=/\bno-whitespace-normalization\b/;if(o.code&&a&&a.nodeName.toLowerCase()==="pre"&&!s.test(a.className)&&!s.test(o.element.className)){for(var l=a.childNodes,c="",p="",g=!1,u=0;u + + this.engine.action ('Canvas').objects ({ + stars: { + start: () => {}, + stop: () => {}, + restart: () => {}, + layers: [], + state: {}, + props: {} + } + }); + + + `,_2:'Notice the object defined uses a name or an id, in this case it was set to "stars" and to show it, you must use that exact name:',_3:` +
"show canvas stars background"
+ `}}}),e.register("action:dialog:textbox_hidden",{title:"A dialog is being shown while the textbox is hidden",message:"Monogatari attempted to display a dialog but the textbox is currently hidden. The dialog will still be shown, but the player may not be able to see it.",props:{Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"If you intentionally hid the textbox, make sure to show it again before displaying dialog:",_1:` +
"show textbox"
+ `,_2:"If you want to show visual elements without dialog while the textbox is hidden, use non-dialog actions like show image or show character."}}}),e.register("action:message:not_found",{title:'The message "{{id}}" was not found',message:`Monogatari attempted to retrieve a message named "{{id}}" but it didn't exist in the messages object.`,props:{Message:"{{id}}","You may have meant":"{{availableMessages}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check the message name is correct and that you have defined it previously. A Message is defined as follows:",_1:` +
+            
+              this.engine.action ('message').mesages ({
+                'Welcome': {
+                  title: 'Welcome!',
+                  subtitle: 'This is the Monogatari VN Engine',
+                  body: 'This is where the magic gets done!'
+                }
+              });
+            
+          
+ `,_2:'Notice the message defined uses a name or an id, in this case it was set to "Welcome" and to show it, you must use that exact name:',_3:` +
"show message Welcome"
+ `}}}),e.register("action:hide_character_layer:character_not_found",{title:'The character "{{asset}}" does not exist',message:`Monogatari attempted to get information about the character "{{asset}}" but it wasn't found on the characters object.`,props:{"Missing Character":"{{asset}}","You may have meant one of these":"{{availableCharacters}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check your characters object and your script to make sure the character exists and that it does not have a typo in it."}}}),e.register("action:hide_character_layer:layer_not_shown",{title:`The character layer "{{layer}}" can't hide because it's not being shown`,message:'Monogatari attempted to hide the layer "{{layer}}" of the character "{{asset}}" but it was not being shown.',props:{"Missing Layer":"{{layer}}",Character:"{{asset}}","You may have meant one of these":"{{availableCharacters}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check that before this hide action you have a show action that shows the character you want to hide."}}}),e.register("action:hide_character:character_not_found",{title:'The character "{{asset}}" does not exist',message:`Monogatari attempted to get information about the character "{{asset}}" but it wasn't found on the characters object.`,props:{"Missing Character":"{{asset}}","You may have meant one of these":"{{availableCharacters}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check your characters object and your script to make sure the character exists and that it does not have a typo in it."}}}),e.register("action:hide_character:not_shown",{title:`The character "{{asset}}" can't hide because it's not being shown`,message:'Monogatari attempted to hide the character "{{asset}}" but it was not being shown.',props:{"Missing Character":"{{asset}}","You may have meant one of these":"{{availableCharacters}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check that before this hide action you have a show action that shows the character you want to hide."}}}),e.register("action:show_character:character_not_found",{title:'The character "{{asset}}" does not exist',message:`Monogatari attempted to show the character "{{asset}}" but it wasn't found on the characters object.`,props:{"Missing Character":"{{asset}}","You may have meant one of these":"{{availableCharacters}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check your characters object and your script to make sure the character exists and that it does not have a typo in it."}}}),e.register("action:show_character:sprite_not_found",{title:'The sprite "{{sprite}}" for character "{{asset}}" does not exist',message:`Monogatari attempted to show the character "{{asset}}" with sprite "{{sprite}}" but the sprite wasn't found.`,props:{Character:"{{asset}}","Missing Sprite":"{{sprite}}","Available Sprites":"{{availableSprites}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check that the sprite name is correctly defined in your character's sprites object."}}}),e.register("action:show_character_layer:character_not_found",{title:'The character "{{asset}}" does not exist',message:`Monogatari attempted to show a layer for character "{{asset}}" but the character wasn't found on the characters object.`,props:{"Missing Character":"{{asset}}",Layer:"{{layer}}","You may have meant one of these":"{{availableCharacters}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check your characters object and your script to make sure the character exists and that it does not have a typo in it."}}}),e.register("action:show_character_layer:sprite_not_found",{title:'The sprite "{{sprite}}" for layer "{{layer}}" of character "{{asset}}" does not exist',message:"Monogatari attempted to show a character layer but the sprite wasn't found in the layer assets.",props:{Character:"{{asset}}",Layer:"{{layer}}","Missing Sprite":"{{sprite}}","Available Sprites":"{{availableSprites}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check that the sprite name is correctly defined in your character's layer_assets object for this layer."}}}),e.register("action:hide_image:not_shown",{title:`The image "{{asset}}" can't hide because it's not being shown`,message:'Monogatari attempted to hide the image "{{asset}}" but it was not being shown.',props:{"Missing Image":"{{asset}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check that before this hide action you have a show action that shows the image you want to hide."}}}),e.register("action:hide_canvas:not_shown",{title:`The canvas "{{name}}" can't hide because it's not being shown`,message:'Monogatari attempted to hide the canvas "{{name}}" but it was not being shown.',props:{Canvas:"{{name}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check that before this hide action you have a show action that shows the canvas you want to hide."}}}),e.register("action:conditional:negative_value",{title:'Conditional condition returned a negative number "{{value}}".',message:'The `Condition` function returned "{{value}}" and only positive numbers are allowed for numeric values.',props:{"Problematic Value":"{{value}}","You may have meant one of these":"{{availableBranches}}"}}),e.register("action:conditional:non_integer_value",{title:'Conditional condition returned a non-integer value "{{value}}".',message:'The `Condition` function returned "{{value}}" and only integer numbers are allowed for numeric values.',props:{"Problematic Value":"{{value}}","You may have meant one of these":"{{availableBranches}}"}}),e.register("action:conditional:branch_not_found",{title:'Conditional attempted to execute a non existent branch "{{branch}}"',message:'The `Condition` function returned "{{branch}}" as the branch to execute but it does not exist.',props:{"Problematic Branch":"{{branch}}","You may have meant one of these":"{{availableBranches}}"}}),e.register("action:notification:invalid_time",{title:"The specified time was not an integer",message:"Monogatari attempted to transform the given time into an integer value but failed.",props:{"Specified time":"{{time}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.",_1:"For example, the following statement would make a notification go away after 5 seconds:",_3:` +
"show notification Welcome 5000"
+ `}}}),e.register("action:notification:not_found",{title:'The notification "{{name}}" was not found',message:`Monogatari attempted to retrieve a notification named "{{name}}" but it didn't exist in the notifications object.`,props:{Notification:"{{name}}","You may have meant":"{{availableNotifications}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check the notification's name is correct and that you have defined it previously. A Notification is defined as follows:",_1:` +
+            
+              this.engine.action ('Notification').notifications ({
+                'Welcome': {
+                  title: 'Welcome!',
+                  body: 'This is the Monogatari VN Engine',
+                  icon: ''
+                }
+              });
+            
+          
+ `,_2:'Notice the notification defined uses a name or an id, in this case it was set to "Welcome" and to show it, you must use that exact name:',_3:` +
"show notification Welcome"
+ `}}}),e.register("action:function:apply_error",{title:"An error occurred while trying to revert a Reversible Function.",message:"Monogatari attempted to run the `Apply` method of a Reversible Function but an error occurred.",props:{Label:"{{label}}",Step:"{{step}}",Help:{_:"Check the code for your function, there may be additional information in the console."}}}),e.register("action:function:revert_error",{title:"An error occurred while trying to revert a Reversible Function.",message:"Monogatari attempted to run the `Revert` method of a Reversible Function but an error occurred.",props:{Label:"{{label}}",Step:"{{step}}",Help:{_:"Check the code for your function, there may be additional information in the console."}}}),e.register("action:video:invalid_mode",{title:'The video mode provided ("{{mode}}") is not valid.',message:'Monogatari attempted to play a video but the mode "{{mode}}" was not found in the video action configuration as a valid mode.',props:{"Mode Provided":"{{mode}}","You may have meant one of these":"{{validModes}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check your statement and make sure there are no typos on the mode you provided."}}}),e.register("action:wait:invalid_time",{title:"The specified time was not an integer",message:"Monogatari attempted to transform the given time into an integer value but failed.",props:{"Specified time":"{{time}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.",_1:"For example, the following statement would make the game wait for 5 seconds:",_3:` +
"wait 5000"
+ `}}}),e.register("action:vibrate:invalid_time",{title:"The specified time was not an integer",message:"Monogatari attempted to transform the given time into an integer value but failed.",props:{"Specified time":"{{time}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.",_1:"For example, the following statement would make the device vibrate for 5 seconds:",_3:` +
"vibrate 5000"
+ `,_4:"If you wanted to make the device vibrate on a pattern, this is a correct syntax:",_5:` +
"vibrate 5000 100 4000 200 3000"
+ `}}}),e.register("action:jump:label_not_found",{title:'The label "{{targetLabel}}" does not exist',message:`Monogatari attempted to jump to the label named "{{targetLabel}}" but it wasn't found on the script.`,props:{"Missing Label":"{{targetLabel}}","You may have meant one of these":"{{availableLabels}}",Statement:"{{statement}}",Label:"{{label}}",Step:"{{step}}",Help:{_:"Check if the label in your jump statement is correct and that you have also defined it correctly."}}}),e.register("component:language_selection_screen:metadata_not_found",{title:'Metadata for language "{{language}}" could not be found.',message:"Monogatari attempted to retrieve the metadata for this language but it does not exists",props:{"Language Not Found":"{{language}}","You may have meant one of these":"{{availableLanguages}}",Help:{_:"Please check that you have defined the metadata for this language. Remember the metadata is defined as follows:",_1:` +
+            
+            monogatari.languageMetadata ("EspaƱol", {
+              "code": "es",
+              "icon": "\uD83C\uDDF2\uD83C\uDDFD"
+            });
+            
+          
+ `,Documentation:'Internationalization'}}}),e.register("engine:translation:key_not_found",{title:'Translation for string "{{key}}" could not be found',message:"Monogatari attempted to find a translation for the current language set in the preferences but there was none.",props:{"String Not Found":"{{key}}",Language:"{{language}}","Found in these elements":"{{elements}}","You may have meant one of these":"{{availableStrings}}",Help:{_:"Please check that this string has been correctly defined in your translations. A translation is defined as follows:",_1:` +
+            
+            monogatari.translation ("YourLanguage", {
+              "SomeString": "Your Translation"
+            });
+            
+          
+ `,_2:"You may also want to check if the [data-string] property of the HTML elements above is correct or if they have a typo.",Documentation:'Internationalization'}}}),e.register("engine:translation:language_not_found",{title:"Language could not be found",message:"Monogatari attempted to translate the UI using the current language set in the preferences but no translations could be found for it.",props:{"Problematic Language":"{{language}}","You may have meant one of these":"{{availableLanguages}}",Help:{_:"Please check if you have defined correctly the translations for this language, translations are defined as follows:",_1:` +
+            
+            monogatari.translation ("YourLanguage", {
+              "SomeString": "Your Translation"
+            });
+            
+          
+ `,_2:"You may also want to check if the value of your language selector is right:",_3:"{{languageSelectorValue}}",Documentation:'Internationalization'}}}),e.register("engine:component:already_registered",{title:'Unable to register component "{{tag}}"',message:"Monogatari attempted to register a component but another component had already been registered for the same tag.",props:{"Component / Tag":"{{component}}",Help:{_:"Once a component for a tag has been registered and the setup has completed, it can not be replaced or removed. Try removing the conflicting component first:",_1:"{{unregisterCode}}"}}}),e.register("engine:component:unregister_after_setup",{title:'Unable to unregister component "{{component}}"',message:"Monogatari attempted to unregister a component but the setup had already happened.",props:{Component:"{{component}}",Help:{_:"Components can only be unregistered before the setup step is completed.",_1:'Try performing this action before the monogatari.init () function is called.'}}}),e.register("engine:script:language_not_found",{title:'Script Language "{{language}}" Was Not Found',message:"Monogatari attempted to retrieve the script for this language but it does not exists",props:{"Language Not Found":"{{language}}","MultiLanguage Setting":"{{multiLanguageSetting}}","You may have meant one of these":"{{availableLanguages}}",Help:{_:"If your game is not a multilanguage game, change the setting on your options.js file",_1:` +
+            
+            "MultiLanguage": false,
+            
+          
+ `,_2:"If your game is a multilanguage game, please check that the language label is correctly written on your script. Remember a multilanguage script looks like this:",_3:` +
+            
+            monogatari.script ({
+              'English': {
+                'Start': [
+                  'Hi, welcome to your first Visual Novel with Monogatari.'
+                ]
+              },
+              'EspaƱol': {
+                'Start': [
+                  'Hola, bienvenido a tu primer Novela Visual con Monogatari'
+                ]
+              }
+            });
+            
+          
+ `}}}),e.register("engine:script:label_not_found",{title:'"{{startLabel}}" Label was not found',message:"Monogatari tried to get your start label but it couldn't find it in your script.",props:{"Start Label on your Settings":"{{startLabel}}","Labels Available":"{{availableLabels}}",Help:{_:"Please check that the label exists in your script."}}}),e.register("engine:storage:variable_not_found",{title:'Variable "{{variable}}" does not exists in your storage',message:"Monogatari attempted to interpolate a variable from your storage but it doesn't exists.",props:{"Script Statement":"{{statement}}","Part Not Found":"{{partNotFound}}","Variables Available in Storage":"{{availableVariables}}",Help:{_:"Please check your storage object and make sure the variable you are using exists.",_1:"You should also make sure that there is no typo in your script and that the variable names in your script and storage match.",Documentation:'Storage'}}}),e.register("engine:run:function_error",{title:"An error occurred while trying to run a Function.",message:"Monogatari attempted to run a function on the script but an error occurred.",props:{Label:"{{label}}",Step:"{{step}}",Help:{_:"More details should be available at the console."}}}),e.register("engine:lifecycle:should_proceed_error",{title:"An error ocurred while trying to execute a shouldProceed function.",message:"Monogatari attempted to execute the function but an error ocurred.",props:{"Error Message":"{{errorMessage}}",Help:{_:"More details should be available at the console."}}}),e.register("engine:lifecycle:will_proceed_error",{title:"An error ocurred while trying to execute a willProceed function.",message:"Monogatari attempted to execute the function but an error ocurred.",props:{"Error Message":"{{errorMessage}}",Help:{_:"More details should be available at the console."}}}),e.register("engine:lifecycle:should_rollback_error",{title:"An error ocurred while trying to execute a shouldRollback function.",message:"Monogatari attempted to execute the function but an error ocurred.",props:{"Error Message":"{{errorMessage}}",Help:{_:"More details should be available at the console."}}}),e.register("engine:lifecycle:will_rollback_error",{title:"An error ocurred while trying to execute a willRollback function.",message:"Monogatari attempted to execute the function but an error ocurred.",props:{"Error Message":"{{errorMessage}}",Help:{_:"More details should be available at the console."}}}),e.register("engine:music:not_defined",{title:'The music "{{music}}" is not defined.',message:"Monogatari attempted to find a definition of a music asset but there was none.",props:{"Music Not Found":"{{music}}","You may have meant one of these":"{{availableMusic}}",Help:{_:"Please check that you have correctly defined this music asset and wrote its name correctly in the `MainScreenMusic` variable",_1:` +
+            
+            'MainScreenMusic': 'TheKeyToYourMusicAsset'
+            
+          
+ `}}}),e.register("engine:element:not_ready",{title:"Main element is not ready yet",message:"Monogatari attempted to execute a function when the main element was not fully loaded yet.",props:{Trace:"You should be able to see an error with the order in which functions were executed in your browser's console (Ctrl + Shift + i). The last one should be part of your code and that's the one that needs to be changed.",Help:{_:"Please wrap or move your code into a $_ready () function block to wait for the page to be fully loaded before executing it.",_1:` +
+            
+            monogatari.ready ('#monogatari', () => {
+              // Your code should go here
+            });
+            
+          
+ `}}}),e.register("engine:component:lifecycle_error",{title:"Error in component <{{tag}}> during {{lifecycle}}",message:"An error occurred while executing the {{lifecycle}} lifecycle method.",props:{Component:"{{tag}}","Lifecycle Method":"{{lifecycle}}","Error Message":"{{errorMessage}}","Stack Trace":"{{stackTrace}}",Help:{_:"Check the console for more details about this error.",_1:"Make sure all async operations in lifecycle methods are properly handled."}}}),e.register("engine:storage:filesystem_no_bridge",{title:"FileSystem storage requires a desktop environment",message:"The FileSystem storage adapter is only available in Electron or Electrobun. Change your Storage adapter to IndexedDB or LocalStorage for browser-based games.",props:{"Suggested Fix":'Set Storage.Adapter to "IndexedDB" in your game settings, or run your game in an Electron or Electrobun wrapper.'}}),e.register("engine:screenshots:storage_incompatible",{title:"Screenshot saving requires IndexedDB or custom storage",message:"Automatic screenshot saving is not supported with LocalStorage or SessionStorage due to storage size limits. Either change your Storage adapter to IndexedDB or provide custom onSaveScreenshot and onLoadScreenshot callbacks.",props:{"Current Adapter":"{{adapter}}","Suggested Fix":'Set Storage.Adapter to "IndexedDB" in your game settings, or provide custom onSaveScreenshot/onLoadScreenshot callbacks.'}})}if(typeof window==="object"){let e=()=>{if(window.Monogatari&&window.Monogatari.FancyError)J(window.Monogatari.FancyError);else requestAnimationFrame(e)};if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",e);else e()}if(typeof window==="object")window.addEventListener("error",(e)=>{let{message:i,lineno:r,filename:d}=e;window.addEventListener("DOMContentLoaded",()=>{let o=window.Monogatari?.FancyError;if(o)o.show("An Unknown Error Occurred",i,{File:d,Line:r,Help:{_:"This is most likely a scripting error, please check your script and JavaScript code for missing commas or incorrect syntax.",_1:"There may be additional information on your browser's console. You can open your console by pressing Ctrl + Shift + I"}})})});})(); + +//# debugId=592EC49415DD1BE164756E2164756E21 +//# sourceMappingURL=debug.js.map diff --git a/dist/engine/debug/debug.js.map b/dist/engine/debug/debug.js.map new file mode 100644 index 0000000..4949591 --- /dev/null +++ b/dist/engine/debug/debug.js.map @@ -0,0 +1,11 @@ +{ + "version": 3, + "sources": ["../../../debug/vendor/prism.js", "../../../debug/index.js"], + "sourcesContent": [ + "/* PrismJS 1.15.0\nhttps://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+abap+actionscript+ada+apacheconf+apl+applescript+c+arff+asciidoc+asm6502+csharp+autohotkey+autoit+bash+basic+batch+bison+brainfuck+bro+cpp+aspnet+arduino+coffeescript+clojure+ruby+csp+css-extras+d+dart+diff+django+docker+eiffel+elixir+elm+markup-templating+erlang+fsharp+flow+fortran+gedcom+gherkin+git+glsl+go+graphql+groovy+haml+handlebars+haskell+haxe+http+hpkp+hsts+ichigojam+icon+inform7+ini+io+j+java+jolie+json+julia+keyman+kotlin+latex+less+liquid+lisp+livescript+lolcode+lua+makefile+markdown+erb+matlab+mel+mizar+monkey+n4js+nasm+nginx+nim+nix+nsis+objectivec+ocaml+opencl+oz+parigp+parser+pascal+perl+php+php-extras+sql+powershell+processing+prolog+properties+protobuf+pug+puppet+pure+python+q+qore+r+jsx+typescript+renpy+reason+rest+rip+roboconf+crystal+rust+sas+sass+scss+scala+scheme+smalltalk+smarty+plsql+soy+stylus+swift+yaml+tcl+textile+tt2+twig+tsx+vbnet+velocity+verilog+vhdl+vim+visual-basic+wasm+wiki+xeora+xojo+xquery+tap&plugins=line-highlight+highlight-keywords+normalize-whitespace */\nvar _self=\"undefined\"!=typeof window?window:\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\\blang(?:uage)?-([\\w-]+)\\b/i,t=0,n=_self.Prism={manual:_self.Prism&&_self.Prism.manual,disableWorkerMessageHandler:_self.Prism&&_self.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof r?new r(e.type,n.util.encode(e.content),e.alias):\"Array\"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,\"&\").replace(/e.length)return;if(!(w instanceof s)){if(m&&b!=t.length-1){h.lastIndex=k;var _=h.exec(e);if(!_)break;for(var j=_.index+(d?_[1].length:0),P=_.index+_[0].length,A=b,x=k,O=t.length;O>A&&(P>x||!t[A].type&&!t[A-1].greedy);++A)x+=t[A].length,j>=x&&(++b,k=x);if(t[b]instanceof s)continue;I=A-b,w=e.slice(k,x),_.index-=k}else{h.lastIndex=0;var _=h.exec(w),I=1}if(_){d&&(p=_[1]?_[1].length:0);var j=_.index+p,_=_[0].slice(p),P=j+_.length,N=w.slice(0,j),S=w.slice(P),C=[b,I];N&&(++b,k+=N.length,C.push(N));var E=new s(u,f?n.tokenize(_,f):_,y,_,m);if(C.push(E),S&&C.push(S),Array.prototype.splice.apply(t,C),1!=I&&n.matchGrammar(e,t,r,b,k,!0,u),i)break}else if(i)break}}}}},tokenize:function(e,t){var r=[e],a=t.rest;if(a){for(var l in a)t[l]=a[l];delete t.rest}return n.matchGrammar(e,r,t,0,0,!1),r},hooks:{all:{},add:function(e,t){var r=n.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){var r=n.hooks.all[e];if(r&&r.length)for(var a,l=0;a=r[l++];)a(t)}}},r=n.Token=function(e,t,n,r,a){this.type=e,this.content=t,this.alias=n,this.length=0|(r||\"\").length,this.greedy=!!a};if(r.stringify=function(e,t,a){if(\"string\"==typeof e)return e;if(\"Array\"===n.util.type(e))return e.map(function(n){return r.stringify(n,t,e)}).join(\"\");var l={type:e.type,content:r.stringify(e.content,t,a),tag:\"span\",classes:[\"token\",e.type],attributes:{},language:t,parent:a};if(e.alias){var i=\"Array\"===n.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(l.classes,i)}n.hooks.run(\"wrap\",l);var o=Object.keys(l.attributes).map(function(e){return e+'=\"'+(l.attributes[e]||\"\").replace(/\"/g,\""\")+'\"'}).join(\" \");return\"<\"+l.tag+' class=\"'+l.classes.join(\" \")+'\"'+(o?\" \"+o:\"\")+\">\"+l.content+\"\"},!_self.document)return _self.addEventListener?(n.disableWorkerMessageHandler||_self.addEventListener(\"message\",function(e){var t=JSON.parse(e.data),r=t.language,a=t.code,l=t.immediateClose;_self.postMessage(n.highlight(a,n.languages[r],r)),l&&_self.close()},!1),_self.Prism):_self.Prism;var a=document.currentScript||[].slice.call(document.getElementsByTagName(\"script\")).pop();return a&&(n.filename=a.src,n.manual||a.hasAttribute(\"data-manual\")||(\"loading\"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(n.highlightAll):window.setTimeout(n.highlightAll,16):document.addEventListener(\"DOMContentLoaded\",n.highlightAll))),_self.Prism}();\"undefined\"!=typeof module&&module.exports&&(module.exports=Prism),\"undefined\"!=typeof global&&(global.Prism=Prism);\nPrism.languages.markup={comment://,prolog:/<\\?[\\s\\S]+?\\?>/,doctype://i,cdata://i,tag:{pattern:/<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\\/?[^\\s>\\/]+/i,inside:{punctuation:/^<\\/?/,namespace:/^[^\\s>\\/:]+:/}},\"attr-value\":{pattern:/=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\\\])[\"']/,lookbehind:!0}]}},punctuation:/\\/?>/,\"attr-name\":{pattern:/[^\\s>\\/]+/,inside:{namespace:/^[^\\s>\\/:]+:/}}}},entity:/&#?[\\da-z]{1,8};/i},Prism.languages.markup.tag.inside[\"attr-value\"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add(\"wrap\",function(a){\"entity\"===a.type&&(a.attributes.title=a.content.replace(/&/,\"&\"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup;\nPrism.languages.css={comment:/\\/\\*[\\s\\S]*?\\*\\//,atrule:{pattern:/@[\\w-]+?.*?(?:;|(?=\\s*\\{))/i,inside:{rule:/@[\\w-]+/}},url:/url\\((?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|.*?)\\)/i,selector:/[^{}\\s][^{};]*?(?=\\s*\\{)/,string:{pattern:/(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},property:/[-_a-z\\xA0-\\uFFFF][-\\w\\xA0-\\uFFFF]*(?=\\s*:)/i,important:/\\B!important\\b/i,\"function\":/[-a-z0-9]+(?=\\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.languages.css,Prism.languages.markup&&(Prism.languages.insertBefore(\"markup\",\"tag\",{style:{pattern:/()[\\s\\S]*?(?=<\\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:\"language-css\",greedy:!0}}),Prism.languages.insertBefore(\"inside\",\"attr-value\",{\"style-attr\":{pattern:/\\s*style=(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/i,inside:{\"attr-name\":{pattern:/^\\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\\s*=\\s*['\"]|['\"]\\s*$/,\"attr-value\":{pattern:/.+/i,inside:Prism.languages.css}},alias:\"language-css\"}},Prism.languages.markup.tag));\nPrism.languages.clike={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,lookbehind:!0},{pattern:/(^|[^\\\\:])\\/\\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},\"class-name\":{pattern:/((?:\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+)|(?:catch\\s+\\())[\\w.\\\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\\\]/}},keyword:/\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\"boolean\":/\\b(?:true|false)\\b/,\"function\":/[a-z0-9_]+(?=\\()/i,number:/\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,operator:/--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.javascript=Prism.languages.extend(\"clike\",{keyword:/\\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\\b/,number:/\\b(?:0[xX][\\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\"function\":/[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*\\()/i,operator:/-[-=]?|\\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\\|[|=]?|\\*\\*?=?|\\/=?|~|\\^=?|%=?|\\?|\\.{3}/}),Prism.languages.insertBefore(\"javascript\",\"keyword\",{regex:{pattern:/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s])\\s*)\\/(\\[[^\\]\\r\\n]+]|\\\\.|[^\\/\\\\\\[\\r\\n])+\\/[gimyu]{0,5}(?=\\s*($|[\\r\\n,.;})\\]]))/,lookbehind:!0,greedy:!0},\"function-variable\":{pattern:/[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)|[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/i,alias:\"function\"},constant:/\\b[A-Z][A-Z\\d_]*\\b/}),Prism.languages.insertBefore(\"javascript\",\"string\",{\"template-string\":{pattern:/`(?:\\\\[\\s\\S]|\\${[^}]+}|[^\\\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\\${[^}]+}/,inside:{\"interpolation-punctuation\":{pattern:/^\\${|}$/,alias:\"punctuation\"},rest:null}},string:/[\\s\\S]+/}}}),Prism.languages.javascript[\"template-string\"].inside.interpolation.inside.rest=Prism.languages.javascript,Prism.languages.markup&&Prism.languages.insertBefore(\"markup\",\"tag\",{script:{pattern:/()[\\s\\S]*?(?=<\\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:\"language-javascript\",greedy:!0}}),Prism.languages.js=Prism.languages.javascript;\nPrism.languages.abap={comment:/^\\*.*/m,string:/(`|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/m,\"string-template\":{pattern:/([|}])(?:\\\\.|[^\\\\|{\\r\\n])*(?=[|{])/,lookbehind:!0,alias:\"string\"},\"eol-comment\":{pattern:/(^|\\s)\".*/m,lookbehind:!0,alias:\"comment\"},keyword:{pattern:/(\\s|\\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\\/MM\\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\\/DD\\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\\/MM\\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\\/DD\\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|SELECTOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\\b/i,lookbehind:!0},number:/\\b\\d+\\b/,operator:{pattern:/(\\s)(?:\\*\\*?|<[=>]?|>=?|\\?=|[-+\\/=])(?=\\s)/,lookbehind:!0},\"string-operator\":{pattern:/(\\s)&&?(?=\\s)/,lookbehind:!0,alias:\"keyword\"},\"token-operator\":[{pattern:/(\\w)(?:->?|=>|[~|{}])(?=\\w)/,lookbehind:!0,alias:\"punctuation\"},{pattern:/[|{}]/,alias:\"punctuation\"}],punctuation:/[,.:()]/};\nPrism.languages.actionscript=Prism.languages.extend(\"javascript\",{keyword:/\\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\\b/,operator:/\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<>?>?|[!=]=?)=?|[~?@]/}),Prism.languages.actionscript[\"class-name\"].alias=\"function\",Prism.languages.markup&&Prism.languages.insertBefore(\"actionscript\",\"string\",{xml:{pattern:/(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/,lookbehind:!0,inside:{rest:Prism.languages.markup}}});\nPrism.languages.ada={comment:/--.*/,string:/\"(?:\"\"|[^\"\\r\\f\\n])*\"/i,number:[{pattern:/\\b\\d(?:_?\\d)*#[\\dA-F](?:_?[\\dA-F])*(?:\\.[\\dA-F](?:_?[\\dA-F])*)?#(?:E[+-]?\\d(?:_?\\d)*)?/i},{pattern:/\\b\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:E[+-]?\\d(?:_?\\d)*)?\\b/i}],\"attr-name\":/\\b'\\w+/i,keyword:/\\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\\b/i,\"boolean\":/\\b(?:true|false)\\b/i,operator:/<[=>]?|>=?|=>?|:=|\\/=?|\\*\\*?|[&+-]/,punctuation:/\\.\\.?|[,;():]/,\"char\":/'.'/,variable:/\\b[a-z](?:[_a-z\\d])*\\b/i};\nPrism.languages.apacheconf={comment:/#.*/,\"directive-inline\":{pattern:/^(\\s*)\\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|AddAlt|AddAltByEncoding|AddAltByType|AddCharset|AddDefaultCharset|AddDescription|AddEncoding|AddHandler|AddIcon|AddIconByEncoding|AddIconByType|AddInputFilter|AddLanguage|AddModuleInfo|AddOutputFilter|AddOutputFilterByType|AddType|Alias|AliasMatch|Allow|AllowCONNECT|AllowEncodedSlashes|AllowMethods|AllowOverride|AllowOverrideList|Anonymous|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail|AsyncRequestWorkerFactor|AuthBasicAuthoritative|AuthBasicFake|AuthBasicProvider|AuthBasicUseDigestAlgorithm|AuthDBDUserPWQuery|AuthDBDUserRealmQuery|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile|AuthDigestAlgorithm|AuthDigestDomain|AuthDigestNonceLifetime|AuthDigestProvider|AuthDigestQop|AuthDigestShmemSize|AuthFormAuthoritative|AuthFormBody|AuthFormDisableNoStore|AuthFormFakeBasicAuth|AuthFormLocation|AuthFormLoginRequiredLocation|AuthFormLoginSuccessLocation|AuthFormLogoutLocation|AuthFormMethod|AuthFormMimetype|AuthFormPassword|AuthFormProvider|AuthFormSitePassphrase|AuthFormSize|AuthFormUsername|AuthGroupFile|AuthLDAPAuthorizePrefix|AuthLDAPBindAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareAsUser|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPInitialBindAsUser|AuthLDAPInitialBindPattern|AuthLDAPMaxSubGroupDepth|AuthLDAPRemoteUserAttribute|AuthLDAPRemoteUserIsDN|AuthLDAPSearchAsUser|AuthLDAPSubGroupAttribute|AuthLDAPSubGroupClass|AuthLDAPUrl|AuthMerging|AuthName|AuthnCacheContext|AuthnCacheEnable|AuthnCacheProvideFor|AuthnCacheSOCache|AuthnCacheTimeout|AuthnzFcgiCheckAuthnProvider|AuthnzFcgiDefineProvider|AuthType|AuthUserFile|AuthzDBDLoginToReferer|AuthzDBDQuery|AuthzDBDRedirectQuery|AuthzDBMType|AuthzSendForbiddenOnFailure|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|CacheDefaultExpire|CacheDetailHeader|CacheDirLength|CacheDirLevels|CacheDisable|CacheEnable|CacheFile|CacheHeader|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheIgnoreQueryString|CacheIgnoreURLSessionIdentifiers|CacheKeyBaseURL|CacheLastModifiedFactor|CacheLock|CacheLockMaxAge|CacheLockPath|CacheMaxExpire|CacheMaxFileSize|CacheMinExpire|CacheMinFileSize|CacheNegotiatedDocs|CacheQuickHandler|CacheReadSize|CacheReadTime|CacheRoot|CacheSocache|CacheSocacheMaxSize|CacheSocacheMaxTime|CacheSocacheMinTime|CacheSocacheReadSize|CacheSocacheReadTime|CacheStaleOnError|CacheStoreExpired|CacheStoreNoStore|CacheStorePrivate|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateInflateLimitRequestBody|DeflateInflateRatioBurst|DeflateInflateRatioLimit|DeflateMemLevel|DeflateWindowSize|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|HeartbeatAddress|HeartbeatListen|HeartbeatMaxServers|HeartbeatStorage|HeartbeatStorage|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|IndexHeadInsert|IndexIgnore|IndexIgnoreReset|IndexOptions|IndexOrderDefault|IndexStyleSheet|InputSed|ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionPoolTTL|LDAPConnectionTimeout|LDAPLibraryDebug|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPReferralHopLimit|LDAPReferrals|LDAPRetries|LDAPRetryDelay|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTimeout|LDAPTrustedClientCert|LDAPTrustedGlobalCert|LDAPTrustedMode|LDAPVerifyServerCert|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|LuaHookAccessChecker|LuaHookAuthChecker|LuaHookCheckUserID|LuaHookFixups|LuaHookInsertFilter|LuaHookLog|LuaHookMapToStorage|LuaHookTranslateName|LuaHookTypeChecker|LuaInherit|LuaInputFilter|LuaMapHandler|LuaOutputFilter|LuaPackageCPath|LuaPackagePath|LuaQuickHandler|LuaRoot|LuaScope|MaxConnectionsPerChild|MaxKeepAliveRequests|MaxMemFree|MaxRangeOverlaps|MaxRangeReversals|MaxRanges|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|ProxyAddHeaders|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyExpressDBMFile|ProxyExpressDBMType|ProxyExpressEnable|ProxyFtpDirCharset|ProxyFtpEscapeWildcards|ProxyFtpListOnWildcard|ProxyHTMLBufSize|ProxyHTMLCharsetOut|ProxyHTMLDocType|ProxyHTMLEnable|ProxyHTMLEvents|ProxyHTMLExtended|ProxyHTMLFixups|ProxyHTMLInterp|ProxyHTMLLinks|ProxyHTMLMeta|ProxyHTMLStripComments|ProxyHTMLURLMap|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassInherit|ProxyPassInterpolateEnv|ProxyPassMatch|ProxyPassReverse|ProxyPassReverseCookieDomain|ProxyPassReverseCookiePath|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxySCGIInternalRedirect|ProxySCGISendfile|ProxySet|ProxySourceAddress|ProxyStatus|ProxyTimeout|ProxyVia|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIPHeader|RemoteIPInternalProxy|RemoteIPInternalProxyList|RemoteIPProxiesHeader|RemoteIPTrustedProxy|RemoteIPTrustedProxyList|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|RewriteBase|RewriteCond|RewriteEngine|RewriteMap|RewriteOptions|RewriteRule|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script|ScriptAlias|ScriptAliasMatch|ScriptInterpreterSource|ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock|SecureListen|SeeRequestTail|SendBufferSize|ServerAdmin|ServerAlias|ServerLimit|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|Session|SessionCookieName|SessionCookieName2|SessionCookieRemove|SessionCryptoCipher|SessionCryptoDriver|SessionCryptoPassphrase|SessionCryptoPassphraseFile|SessionDBDCookieName|SessionDBDCookieName2|SessionDBDCookieRemove|SessionDBDDeleteLabel|SessionDBDInsertLabel|SessionDBDPerUser|SessionDBDSelectLabel|SessionDBDUpdateLabel|SessionEnv|SessionExclude|SessionHeader|SessionInclude|SessionMaxAge|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSLCACertificateFile|SSLCACertificatePath|SSLCADNRequestFile|SSLCADNRequestPath|SSLCARevocationCheck|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLCompression|SSLCryptoDevice|SSLEngine|SSLFIPS|SSLHonorCipherOrder|SSLInsecureRenegotiation|SSLOCSPDefaultResponder|SSLOCSPEnable|SSLOCSPOverrideResponder|SSLOCSPResponderTimeout|SSLOCSPResponseMaxAge|SSLOCSPResponseTimeSkew|SSLOCSPUseRequestNonce|SSLOpenSSLConfCmd|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationCheck|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCheckPeerCN|SSLProxyCheckPeerExpire|SSLProxyCheckPeerName|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateChainFile|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRenegBufferSize|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLSessionTicketKeyFile|SSLSRPUnknownUserSeed|SSLSRPVerifierFile|SSLStaplingCache|SSLStaplingErrorCacheTimeout|SSLStaplingFakeTryLater|SSLStaplingForceURL|SSLStaplingResponderTimeout|SSLStaplingResponseMaxAge|SSLStaplingResponseTimeSkew|SSLStaplingReturnResponderErrors|SSLStaplingStandardCacheTimeout|SSLStrictSNIVHostCheck|SSLUserName|SSLUseStapling|SSLVerifyClient|SSLVerifyDepth|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\\b/im,lookbehind:!0,alias:\"property\"},\"directive-block\":{pattern:/<\\/?\\b(?:AuthnProviderAlias|AuthzProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|RequireAll|RequireAny|RequireNone|VirtualHost)\\b *.*>/i,inside:{\"directive-block\":{pattern:/^<\\/?\\w+/,inside:{punctuation:/^<\\/?/},alias:\"tag\"},\"directive-block-parameter\":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/(\"|').*\\1/,inside:{variable:/[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/}}},alias:\"attr-value\"},punctuation:/>/},alias:\"tag\"},\"directive-flags\":{pattern:/\\[(?:\\w,?)+\\]/,alias:\"keyword\"},string:{pattern:/(\"|').*\\1/,inside:{variable:/[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/}},variable:/[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/,regex:/\\^?.*\\$|\\^.*\\$?/};\nPrism.languages.apl={comment:/(?:ā|#[! ]).*$/m,string:{pattern:/'(?:[^'\\r\\n]|'')*'/,greedy:!0},number:/ĀÆ?(?:\\d*\\.?\\d+(?:e[+ĀÆ]?\\d+)?|ĀÆ|āˆž)(?:jĀÆ?(?:\\d*\\.?\\d+(?:e[+ĀÆ]?\\d+)?|ĀÆ|āˆž))?/i,statement:/:[A-Z][a-z][A-Za-z]*\\b/,\"system-function\":{pattern:/āŽ•[A-Z]+/i,alias:\"function\"},constant:/[ā¬āŒ¾#āŽ•āž]/,\"function\":/[-+Ć—Ć·āŒˆāŒŠāˆ£|ā³āø?*āŸā—‹!⌹<≤=>ā‰„ā‰ ā‰”ā‰¢āˆŠā·āˆŖāˆ©~āˆØāˆ§ā±ā²ā“,āŖāŒ½āŠ–ā‰ā†‘ā†“āŠ‚āŠƒāŠ†āŠ‡āŒ·ā‹ā’āŠ¤āŠ„ā•āŽāŠ£āŠ¢āā‚ā‰ˆāÆā†—Ā¤ā†’]/,\"monadic-operator\":{pattern:/[\\\\\\/āŒæā€ĀØāØāŒ¶&∄]/,alias:\"operator\"},\"dyadic-operator\":{pattern:/[.ā£ā ā¤āˆ˜āŒø@⌺]/,alias:\"operator\"},assignment:{pattern:/←/,alias:\"keyword\"},punctuation:/[\\[;\\]()◇⋄]/,dfn:{pattern:/[{}āŗāµā¶ā¹āˆ‡ā«:]/,alias:\"builtin\"}};\nPrism.languages.applescript={comment:[/\\(\\*(?:\\(\\*[\\s\\S]*?\\*\\)|[\\s\\S])*?\\*\\)/,/--.+/,/#.+/],string:/\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,number:/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e-?\\d+)?\\b/i,operator:[/[&=≠≤≄*+\\-\\/Ć·^]|[<>]=?/,/\\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\\b/],keyword:/\\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b/,\"class\":{pattern:/\\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\\b/,alias:\"builtin\"},punctuation:/[{}():,Ā¬Ā«Ā»ć€Šć€‹]/};\nPrism.languages.c=Prism.languages.extend(\"clike\",{keyword:/\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\\b/,operator:/-[>-]?|\\+\\+?|!=?|<>?=?|==?|&&?|\\|\\|?|[~^%?*\\/]/,number:/(?:\\b0x[\\da-f]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]*/i}),Prism.languages.insertBefore(\"c\",\"string\",{macro:{pattern:/(^\\s*)#\\s*[a-z]+(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n|[\\s\\S]))*/im,lookbehind:!0,alias:\"property\",inside:{string:{pattern:/(#\\s*include\\s*)(?:<.+?>|(\"|')(?:\\\\?.)+?\\2)/,lookbehind:!0},directive:{pattern:/(#\\s*)\\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\\b/,lookbehind:!0,alias:\"keyword\"}}},constant:/\\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\\b/}),delete Prism.languages.c[\"class-name\"],delete Prism.languages.c[\"boolean\"];\nPrism.languages.arff={comment:/%.*/,string:{pattern:/([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},keyword:/@(?:attribute|data|end|relation)\\b/i,number:/\\b\\d+(?:\\.\\d+)?\\b/,punctuation:/[{},]/};\n!function(a){var i={pattern:/(^[ \\t]*)\\[(?!\\[)(?:([\"'$`])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\[(?:[^\\]\\\\]|\\\\.)*\\]|[^\\]\\\\]|\\\\.)*\\]/m,lookbehind:!0,inside:{quoted:{pattern:/([$`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,inside:{punctuation:/^[$`]|[$`]$/}},interpreted:{pattern:/'(?:[^'\\\\]|\\\\.)*'/,inside:{punctuation:/^'|'$/}},string:/\"(?:[^\"\\\\]|\\\\.)*\"/,variable:/\\w+(?==)/,punctuation:/^\\[|\\]$|,/,operator:/=/,\"attr-value\":/(?!^\\s+$).+/}};a.languages.asciidoc={\"comment-block\":{pattern:/^(\\/{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1/m,alias:\"comment\"},table:{pattern:/^\\|={3,}(?:(?:\\r?\\n|\\r).*)*?(?:\\r?\\n|\\r)\\|={3,}$/m,inside:{specifiers:{pattern:/(?!\\|)(?:(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)[+*])?(?:[<^>](?:\\.[<^>])?|\\.[<^>])?[a-z]*)(?=\\|)/,alias:\"attr-value\"},punctuation:{pattern:/(^|[^\\\\])[|!]=*/,lookbehind:!0}}},\"passthrough-block\":{pattern:/^(\\+{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,inside:{punctuation:/^\\++|\\++$/}},\"literal-block\":{pattern:/^(-{4,}|\\.{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,inside:{punctuation:/^(?:-+|\\.+)|(?:-+|\\.+)$/}},\"other-block\":{pattern:/^(--|\\*{4,}|_{4,}|={4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,inside:{punctuation:/^(?:-+|\\*+|_+|=+)|(?:-+|\\*+|_+|=+)$/}},\"list-punctuation\":{pattern:/(^[ \\t]*)(?:-|\\*{1,5}|\\.{1,5}|(?:[a-z]|\\d+)\\.|[xvi]+\\))(?= )/im,lookbehind:!0,alias:\"punctuation\"},\"list-label\":{pattern:/(^[ \\t]*)[a-z\\d].+(?::{2,4}|;;)(?=\\s)/im,lookbehind:!0,alias:\"symbol\"},\"indented-block\":{pattern:/((\\r?\\n|\\r)\\2)([ \\t]+)\\S.*(?:(?:\\r?\\n|\\r)\\3.+)*(?=\\2{2}|$)/,lookbehind:!0},comment:/^\\/\\/.*/m,title:{pattern:/^.+(?:\\r?\\n|\\r)(?:={3,}|-{3,}|~{3,}|\\^{3,}|\\+{3,})$|^={1,5} +.+|^\\.(?![\\s.]).*/m,alias:\"important\",inside:{punctuation:/^(?:\\.|=+)|(?:=+|-+|~+|\\^+|\\++)$/}},\"attribute-entry\":{pattern:/^:[^:\\r\\n]+:(?: .*?(?: \\+(?:\\r?\\n|\\r).*?)*)?$/m,alias:\"tag\"},attributes:i,hr:{pattern:/^'{3,}$/m,alias:\"punctuation\"},\"page-break\":{pattern:/^<{3,}$/m,alias:\"punctuation\"},admonition:{pattern:/^(?:TIP|NOTE|IMPORTANT|WARNING|CAUTION):/m,alias:\"keyword\"},callout:[{pattern:/(^[ \\t]*)/m,lookbehind:!0,alias:\"symbol\"},{pattern:/<\\d+>/,alias:\"symbol\"}],macro:{pattern:/\\b[a-z\\d][a-z\\d-]*::?(?:(?:\\S+)??\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,inside:{\"function\":/^[a-z\\d-]+(?=:)/,punctuation:/^::?/,attributes:{pattern:/(?:\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,inside:i.inside}}},inline:{pattern:/(^|[^\\\\])(?:(?:\\B\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\\\.)*\\])?(?:\\b_(?!\\s)(?: _|[^_\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: _|[^_\\\\\\r\\n]|\\\\.)+)*_\\b|\\B``(?!\\s).+?(?:(?:\\r?\\n|\\r).+?)*''\\B|\\B`(?!\\s)(?: ['`]|.)+?(?:(?:\\r?\\n|\\r)(?: ['`]|.)+?)*['`]\\B|\\B(['*+#])(?!\\s)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+)*\\3\\B)|(?:\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\4)[^\\\\]|\\\\.)*\\4|\\\\.)*\\])?(?:(__|\\*\\*|\\+\\+\\+?|##|\\$\\$|[~^]).+?(?:(?:\\r?\\n|\\r).+?)*\\5|\\{[^}\\r\\n]+\\}|\\[\\[\\[?.+?(?:(?:\\r?\\n|\\r).+?)*\\]?\\]\\]|<<.+?(?:(?:\\r?\\n|\\r).+?)*>>|\\(\\(\\(?.+?(?:(?:\\r?\\n|\\r).+?)*\\)?\\)\\)))/m,lookbehind:!0,inside:{attributes:i,url:{pattern:/^(?:\\[\\[\\[?.+?\\]?\\]\\]|<<.+?>>)$/,inside:{punctuation:/^(?:\\[\\[\\[?|<<)|(?:\\]\\]\\]?|>>)$/}},\"attribute-ref\":{pattern:/^\\{.+\\}$/,inside:{variable:{pattern:/(^\\{)[a-z\\d,+_-]+/,lookbehind:!0},operator:/^[=?!#%@$]|!(?=[:}])/,punctuation:/^\\{|\\}$|::?/}},italic:{pattern:/^(['_])[\\s\\S]+\\1$/,inside:{punctuation:/^(?:''?|__?)|(?:''?|__?)$/}},bold:{pattern:/^\\*[\\s\\S]+\\*$/,inside:{punctuation:/^\\*\\*?|\\*\\*?$/}},punctuation:/^(?:``?|\\+{1,3}|##?|\\$\\$|[~^]|\\(\\(\\(?)|(?:''?|\\+{1,3}|##?|\\$\\$|[~^`]|\\)?\\)\\))$/}},replacement:{pattern:/\\((?:C|TM|R)\\)/,alias:\"builtin\"},entity:/&#?[\\da-z]{1,8};/i,\"line-continuation\":{pattern:/(^| )\\+$/m,lookbehind:!0,alias:\"punctuation\"}},i.inside.interpreted.inside.rest={macro:a.languages.asciidoc.macro,inline:a.languages.asciidoc.inline,replacement:a.languages.asciidoc.replacement,entity:a.languages.asciidoc.entity},a.languages.asciidoc[\"passthrough-block\"].inside.rest={macro:a.languages.asciidoc.macro},a.languages.asciidoc[\"literal-block\"].inside.rest={callout:a.languages.asciidoc.callout},a.languages.asciidoc.table.inside.rest={\"comment-block\":a.languages.asciidoc[\"comment-block\"],\"passthrough-block\":a.languages.asciidoc[\"passthrough-block\"],\"literal-block\":a.languages.asciidoc[\"literal-block\"],\"other-block\":a.languages.asciidoc[\"other-block\"],\"list-punctuation\":a.languages.asciidoc[\"list-punctuation\"],\"indented-block\":a.languages.asciidoc[\"indented-block\"],comment:a.languages.asciidoc.comment,title:a.languages.asciidoc.title,\"attribute-entry\":a.languages.asciidoc[\"attribute-entry\"],attributes:a.languages.asciidoc.attributes,hr:a.languages.asciidoc.hr,\"page-break\":a.languages.asciidoc[\"page-break\"],admonition:a.languages.asciidoc.admonition,\"list-label\":a.languages.asciidoc[\"list-label\"],callout:a.languages.asciidoc.callout,macro:a.languages.asciidoc.macro,inline:a.languages.asciidoc.inline,replacement:a.languages.asciidoc.replacement,entity:a.languages.asciidoc.entity,\"line-continuation\":a.languages.asciidoc[\"line-continuation\"]},a.languages.asciidoc[\"other-block\"].inside.rest={table:a.languages.asciidoc.table,\"list-punctuation\":a.languages.asciidoc[\"list-punctuation\"],\"indented-block\":a.languages.asciidoc[\"indented-block\"],comment:a.languages.asciidoc.comment,\"attribute-entry\":a.languages.asciidoc[\"attribute-entry\"],attributes:a.languages.asciidoc.attributes,hr:a.languages.asciidoc.hr,\"page-break\":a.languages.asciidoc[\"page-break\"],admonition:a.languages.asciidoc.admonition,\"list-label\":a.languages.asciidoc[\"list-label\"],macro:a.languages.asciidoc.macro,inline:a.languages.asciidoc.inline,replacement:a.languages.asciidoc.replacement,entity:a.languages.asciidoc.entity,\"line-continuation\":a.languages.asciidoc[\"line-continuation\"]},a.languages.asciidoc.title.inside.rest={macro:a.languages.asciidoc.macro,inline:a.languages.asciidoc.inline,replacement:a.languages.asciidoc.replacement,entity:a.languages.asciidoc.entity},a.hooks.add(\"wrap\",function(a){\"entity\"===a.type&&(a.attributes.title=a.content.replace(/&/,\"&\"))})}(Prism);\nPrism.languages.asm6502={comment:/;.*/,directive:{pattern:/\\.\\w+(?= )/,alias:\"keyword\"},string:/([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,opcode:{pattern:/\\b(?:adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya|ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA)\\b/,alias:\"property\"},hexnumber:{pattern:/#?\\$[\\da-f]{2,4}/i,alias:\"string\"},binarynumber:{pattern:/#?%[01]+/,alias:\"string\"},decimalnumber:{pattern:/#?\\d+/,alias:\"string\"},register:{pattern:/\\b[xya]\\b/i,alias:\"variable\"}};\nPrism.languages.csharp=Prism.languages.extend(\"clike\",{keyword:/\\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\\b/,string:[{pattern:/@(\"|')(?:\\1\\1|\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,greedy:!0},{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*?\\1/,greedy:!0}],\"class-name\":[{pattern:/\\b[A-Z]\\w*(?:\\.\\w+)*\\b(?=\\s+\\w+)/,inside:{punctuation:/\\./}},{pattern:/(\\[)[A-Z]\\w*(?:\\.\\w+)*\\b/,lookbehind:!0,inside:{punctuation:/\\./}},{pattern:/(\\b(?:class|interface)\\s+[A-Z]\\w*(?:\\.\\w+)*\\s*:\\s*)[A-Z]\\w*(?:\\.\\w+)*\\b/,lookbehind:!0,inside:{punctuation:/\\./}},{pattern:/((?:\\b(?:class|interface|new)\\s+)|(?:catch\\s+\\())[A-Z]\\w*(?:\\.\\w+)*\\b/,lookbehind:!0,inside:{punctuation:/\\./}}],number:/\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)f?/i}),Prism.languages.insertBefore(\"csharp\",\"class-name\",{\"generic-method\":{pattern:/\\w+\\s*<[^>\\r\\n]+?>\\s*(?=\\()/,inside:{\"function\":/^\\w+/,\"class-name\":{pattern:/\\b[A-Z]\\w*(?:\\.\\w+)*\\b/,inside:{punctuation:/\\./}},keyword:Prism.languages.csharp.keyword,punctuation:/[<>(),.:]/}},preprocessor:{pattern:/(^\\s*)#.*/m,lookbehind:!0,alias:\"property\",inside:{directive:{pattern:/(\\s*#)\\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\\b/,lookbehind:!0,alias:\"keyword\"}}}}),Prism.languages.dotnet=Prism.languages.csharp;\nPrism.languages.autohotkey={comment:{pattern:/(^[^\";\\n]*(\"[^\"\\n]*?\"[^\"\\n]*?)*)(?:;.*$|^\\s*\\/\\*[\\s\\S]*\\n\\*\\/)/m,lookbehind:!0},string:/\"(?:[^\"\\n\\r]|\"\")*\"/m,\"function\":/[^(); \\t,\\n+*\\-=?>:\\\\\\/<&%\\[\\]]+?(?=\\()/m,tag:/^[ \\t]*[^\\s:]+?(?=:(?:[^:]|$))/m,variable:/%\\w+%/,number:/\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,operator:/\\?|\\/\\/?=?|:=|\\|[=|]?|&[=&]?|\\+[=+]?|-[=-]?|\\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\\b(?:AND|NOT|OR)\\b/,punctuation:/[{}[\\]():,]/,\"boolean\":/\\b(?:true|false)\\b/,selector:/\\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|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|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|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|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/i,constant:/\\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_isunicode|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/i,builtin:/\\b(?:abs|acos|asc|asin|atan|ceil|chr|class|cos|dllcall|exp|fileexist|Fileopen|floor|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|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|strsplit|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|__New|__Call|__Get|__Set)\\b/i,symbol:/\\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\\b/i,important:/#\\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InstallKeybdHook|InstallMouseHook|KeyHistory|LTrim|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|WinActivateForce)\\b/i,keyword:/\\b(?:Abort|AboveNormal|Add|ahk_class|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Type|UnCheck|underline|Unicode|Unlock|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\\b/i};\nPrism.languages.autoit={comment:[/;.*/,{pattern:/(^\\s*)#(?:comments-start|cs)[\\s\\S]*?^\\s*#(?:comments-end|ce)/m,lookbehind:!0}],url:{pattern:/(^\\s*#include\\s+)(?:<[^\\r\\n>]+>|\"[^\\r\\n\"]+\")/m,lookbehind:!0},string:{pattern:/([\"'])(?:\\1\\1|(?!\\1)[^\\r\\n])*\\1/,greedy:!0,inside:{variable:/([%$@])\\w+\\1/}},directive:{pattern:/(^\\s*)#\\w+/m,lookbehind:!0,alias:\"keyword\"},\"function\":/\\b\\w+(?=\\()/,variable:/[$@]\\w+/,keyword:/\\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\\b/i,number:/\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\"boolean\":/\\b(?:True|False)\\b/i,operator:/<[=>]?|[-+*\\/=&>]=?|[?^]|\\b(?:And|Or|Not)\\b/i,punctuation:/[\\[\\]().,:]/};\n!function(e){var t={variable:[{pattern:/\\$?\\(\\([\\s\\S]+?\\)\\)/,inside:{variable:[{pattern:/(^\\$\\(\\([\\s\\S]+)\\)\\)/,lookbehind:!0},/^\\$\\(\\(/],number:/\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,operator:/--?|-=|\\+\\+?|\\+=|!=?|~|\\*\\*?|\\*=|\\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\\^=?|\\|\\|?|\\|=|\\?|:/,punctuation:/\\(\\(?|\\)\\)?|,|;/}},{pattern:/\\$\\([^)]+\\)|`[^`]+`/,greedy:!0,inside:{variable:/^\\$\\(|^`|\\)$|`$/}},/\\$(?:[\\w#?*!@]+|\\{[^}]+\\})/i]};e.languages.bash={shebang:{pattern:/^#!\\s*\\/bin\\/bash|^#!\\s*\\/bin\\/sh/,alias:\"important\"},comment:{pattern:/(^|[^\"{\\\\])#.*/,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<\\s*)[\"']?(\\w+?)[\"']?\\s*\\r?\\n(?:[\\s\\S])*?\\r?\\n\\2/,lookbehind:!0,greedy:!0,inside:t},{pattern:/([\"'])(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|`[^`]+`|(?!\\1)[^\\\\])*\\1/,greedy:!0,inside:t}],variable:t.variable,\"function\":{pattern:/(^|[\\s;|&])(?:alias|apropos|apt-get|aptitude|aspell|awk|basename|bash|bc|bg|builtin|bzip2|cal|cat|cd|cfdisk|chgrp|chmod|chown|chroot|chkconfig|cksum|clear|cmp|comm|command|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|enable|env|ethtool|eval|exec|expand|expect|export|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|getopts|git|grep|groupadd|groupdel|groupmod|groups|gzip|hash|head|help|hg|history|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|jobs|join|kill|killall|less|link|ln|locate|logname|logout|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|make|man|mkdir|mkfifo|mkisofs|mknod|more|most|mount|mtools|mtr|mv|mmv|nano|netstat|nice|nl|nohup|notify-send|npm|nslookup|open|op|passwd|paste|pathchk|ping|pkill|popd|pr|printcap|printenv|printf|ps|pushd|pv|pwd|quota|quotacheck|quotactl|ram|rar|rcp|read|readarray|readonly|reboot|rename|renice|remsync|rev|rm|rmdir|rsync|screen|scp|sdiff|sed|seq|service|sftp|shift|shopt|shutdown|sleep|slocate|sort|source|split|ssh|stat|strace|su|sudo|sum|suspend|sync|tail|tar|tee|test|time|timeout|times|touch|top|traceroute|trap|tr|tsort|tty|type|ulimit|umask|umount|unalias|uname|unexpand|uniq|units|unrar|unshar|uptime|useradd|userdel|usermod|users|uuencode|uudecode|v|vdir|vi|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yes|zip)(?=$|[\\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\\s;|&])(?:let|:|\\.|if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)(?=$|[\\s;|&])/,lookbehind:!0},\"boolean\":{pattern:/(^|[\\s;|&])(?:true|false)(?=$|[\\s;|&])/,lookbehind:!0},operator:/&&?|\\|\\|?|==?|!=?|<<>|<=?|>=?|=~/,punctuation:/\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];]/};var a=t.variable[1].inside;a.string=e.languages.bash.string,a[\"function\"]=e.languages.bash[\"function\"],a.keyword=e.languages.bash.keyword,a[\"boolean\"]=e.languages.bash[\"boolean\"],a.operator=e.languages.bash.operator,a.punctuation=e.languages.bash.punctuation,e.languages.shell=e.languages.bash}(Prism);\nPrism.languages.basic={comment:{pattern:/(?:!|REM\\b).+/i,inside:{keyword:/^REM/i}},string:{pattern:/\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^_ +\\-.A-Z\\d])*\"/i,greedy:!0},number:/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,keyword:/\\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\\$|\\b)/i,\"function\":/\\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\\$|\\b)/i,operator:/<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:AND|EQV|IMP|NOT|OR|XOR)\\b/i,punctuation:/[,;:()]/};\n!function(e){var r=/%%?[~:\\w]+%?|!\\S+!/,t={pattern:/\\/[a-z?]+(?=[ :]|$):?|-[a-z]\\b|--[a-z-]+\\b/im,alias:\"attr-name\",inside:{punctuation:/:/}},n=/\"[^\"]*\"/,i=/(?:\\b|-)\\d+\\b/;e.languages.batch={comment:[/^::.*/m,{pattern:/((?:^|[&(])[ \\t]*)rem\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,lookbehind:!0}],label:{pattern:/^:.*/m,alias:\"property\"},command:[{pattern:/((?:^|[&(])[ \\t]*)for(?: ?\\/[a-z?](?:[ :](?:\"[^\"]*\"|\\S+))?)* \\S+ in \\([^)]+\\) do/im,lookbehind:!0,inside:{keyword:/^for\\b|\\b(?:in|do)\\b/i,string:n,parameter:t,variable:r,number:i,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \\t]*)if(?: ?\\/[a-z?](?:[ :](?:\"[^\"]*\"|\\S+))?)* (?:not )?(?:cmdextversion \\d+|defined \\w+|errorlevel \\d+|exist \\S+|(?:\"[^\"]*\"|\\S+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:\"[^\"]*\"|\\S+))/im,lookbehind:!0,inside:{keyword:/^if\\b|\\b(?:not|cmdextversion|defined|errorlevel|exist)\\b/i,string:n,parameter:t,variable:r,number:i,operator:/\\^|==|\\b(?:equ|neq|lss|leq|gtr|geq)\\b/i}},{pattern:/((?:^|[&()])[ \\t]*)else\\b/im,lookbehind:!0,inside:{keyword:/^else\\b/i}},{pattern:/((?:^|[&(])[ \\t]*)set(?: ?\\/[a-z](?:[ :](?:\"[^\"]*\"|\\S+))?)* (?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,lookbehind:!0,inside:{keyword:/^set\\b/i,string:n,parameter:t,variable:[r,/\\w+(?=(?:[*\\/%+\\-&^|]|<<|>>)?=)/],number:i,operator:/[*\\/%+\\-&^|]=?|<<=?|>>=?|[!~_=]/,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \\t]*@?)\\w+\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,lookbehind:!0,inside:{keyword:/^\\w+\\b/i,string:n,parameter:t,label:{pattern:/(^\\s*):\\S+/m,lookbehind:!0,alias:\"property\"},variable:r,number:i,operator:/\\^/}}],operator:/[&@]/,punctuation:/[()']/}}(Prism);\nPrism.languages.bison=Prism.languages.extend(\"c\",{}),Prism.languages.insertBefore(\"bison\",\"comment\",{bison:{pattern:/^[\\s\\S]*?%%[\\s\\S]*?%%/,inside:{c:{pattern:/%\\{[\\s\\S]*?%\\}|\\{(?:\\{[^}]*\\}|[^{}])*\\}/,inside:{delimiter:{pattern:/^%?\\{|%?\\}$/,alias:\"punctuation\"},\"bison-variable\":{pattern:/[$@](?:<[^\\s>]+>)?[\\w$]+/,alias:\"variable\",inside:{punctuation:/<|>/}},rest:Prism.languages.c}},comment:Prism.languages.c.comment,string:Prism.languages.c.string,property:/\\S+(?=:)/,keyword:/%\\w+/,number:{pattern:/(^|[^@])\\b(?:0x[\\da-f]+|\\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\\[\\]<>]/}}});\nPrism.languages.brainfuck={pointer:{pattern:/<|>/,alias:\"keyword\"},increment:{pattern:/\\+/,alias:\"inserted\"},decrement:{pattern:/-/,alias:\"deleted\"},branching:{pattern:/\\[|\\]/,alias:\"important\"},operator:/[.,]/,comment:/\\S+/};\nPrism.languages.bro={comment:{pattern:/(^|[^\\\\$])#.*/,lookbehind:!0,inside:{italic:/\\b(?:TODO|FIXME|XXX)\\b/}},string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},\"boolean\":/\\b[TF]\\b/,\"function\":{pattern:/(?:function|hook|event) \\w+(?:::\\w+)?/,inside:{keyword:/^(?:function|hook|event)/}},variable:{pattern:/(?:global|local) \\w+/i,inside:{keyword:/(?:global|local)/}},builtin:/(?:@(?:load(?:-(?:sigs|plugin))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,constant:{pattern:/const \\w+/i,inside:{keyword:/const/}},keyword:/\\b(?:break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\\b/,operator:/--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,number:/\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.cpp=Prism.languages.extend(\"c\",{keyword:/\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/,\"boolean\":/\\b(?:true|false)\\b/,operator:/--?|\\+\\+?|!=?|<{1,2}=?|>{1,2}=?|->|:{1,2}|={1,2}|\\^|~|%|&{1,2}|\\|\\|?|\\?|\\*|\\/|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/}),Prism.languages.insertBefore(\"cpp\",\"keyword\",{\"class-name\":{pattern:/(class\\s+)\\w+/i,lookbehind:!0}}),Prism.languages.insertBefore(\"cpp\",\"string\",{\"raw-string\":{pattern:/R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,alias:\"string\",greedy:!0}});\nPrism.languages.aspnet=Prism.languages.extend(\"markup\",{\"page-directive tag\":{pattern:/<%\\s*@.*%>/i,inside:{\"page-directive tag\":/<%\\s*@\\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,rest:Prism.languages.markup.tag.inside}},\"directive tag\":{pattern:/<%.*%>/i,inside:{\"directive tag\":/<%\\s*?[$=%#:]{0,2}|%>/i,rest:Prism.languages.csharp}}}),Prism.languages.aspnet.tag.pattern=/<(?!%)\\/?[^\\s>\\/]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,Prism.languages.insertBefore(\"inside\",\"punctuation\",{\"directive tag\":Prism.languages.aspnet[\"directive tag\"]},Prism.languages.aspnet.tag.inside[\"attr-value\"]),Prism.languages.insertBefore(\"aspnet\",\"comment\",{\"asp comment\":/<%--[\\s\\S]*?--%>/}),Prism.languages.insertBefore(\"aspnet\",Prism.languages.javascript?\"script\":\"tag\",{\"asp script\":{pattern:/()[\\s\\S]*?(?=<\\/script>)/i,lookbehind:!0,inside:Prism.languages.csharp||{}}});\nPrism.languages.arduino=Prism.languages.extend(\"cpp\",{keyword:/\\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\\b/,builtin:/\\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|IPAddress|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\\b/,constant:/\\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\\b/});\n!function(e){var t=/#(?!\\{).+/,n={pattern:/#\\{[^}]+\\}/,alias:\"variable\"};e.languages.coffeescript=e.languages.extend(\"javascript\",{comment:t,string:[{pattern:/'(?:\\\\[\\s\\S]|[^\\\\'])*'/,greedy:!0},{pattern:/\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,greedy:!0,inside:{interpolation:n}}],keyword:/\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/,\"class-member\":{pattern:/@(?!\\d)\\w+/,alias:\"variable\"}}),e.languages.insertBefore(\"coffeescript\",\"comment\",{\"multiline-comment\":{pattern:/###[\\s\\S]+?###/,alias:\"comment\"},\"block-regex\":{pattern:/\\/{3}[\\s\\S]*?\\/{3}/,alias:\"regex\",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore(\"coffeescript\",\"string\",{\"inline-javascript\":{pattern:/`(?:\\\\[\\s\\S]|[^\\\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:\"punctuation\"},rest:e.languages.javascript}},\"multiline-string\":[{pattern:/'''[\\s\\S]*?'''/,greedy:!0,alias:\"string\"},{pattern:/\"\"\"[\\s\\S]*?\"\"\"/,greedy:!0,alias:\"string\",inside:{interpolation:n}}]}),e.languages.insertBefore(\"coffeescript\",\"keyword\",{property:/(?!\\d)\\w+(?=\\s*:(?!:))/}),delete e.languages.coffeescript[\"template-string\"]}(Prism);\nPrism.languages.clojure={comment:/;+.*/,string:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,operator:/(?:::|[:|'])\\b[a-z][\\w*+!?-]*\\b/i,keyword:{pattern:/([^\\w+*'?-])(?:def|if|do|let|\\.\\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\\.|new|set!|def\\-|defn|defn\\-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\\*|\\+|\\-|\\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\\?|ensure|eval|every\\?|false\\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\\*|list|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\\?|new|newline|next|nil\\?|node|not|not-any\\?|not-every\\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\\?|split-at|split-with|str|string\\?|struct|struct-map|subs|subvec|symbol|symbol\\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\\?|union|up|update-proxy|val|vals|var-get|var-set|var\\?|vector|vector-zip|vector\\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\\?|zipmap|zipper)(?=[^\\w+*'?-])/,lookbehind:!0},\"boolean\":/\\b(?:true|false|nil)\\b/,number:/\\b[0-9A-Fa-f]+\\b/,punctuation:/[{}\\[\\](),]/};\n!function(e){e.languages.ruby=e.languages.extend(\"clike\",{comment:[/#.*/,{pattern:/^=begin(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r))*?=end/m,greedy:!0}],keyword:/\\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\\b/});var n={pattern:/#\\{[^}]+\\}/,inside:{delimiter:{pattern:/^#\\{|\\}$/,alias:\"tag\"},rest:e.languages.ruby}};e.languages.insertBefore(\"ruby\",\"keyword\",{regex:[{pattern:/%r([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[\\s\\S])*\\}[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\][gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r<(?:[^<>\\\\]|\\\\[\\s\\S])*>[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/(^|[^\\/])\\/(?!\\/)(\\[.+?]|\\\\.|[^\\/\\\\\\r\\n])+\\/[gim]{0,3}(?=\\s*($|[\\r\\n,.;})]))/,lookbehind:!0,greedy:!0}],variable:/[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\\w*(?:[?!]|\\b)/,lookbehind:!0}}),e.languages.insertBefore(\"ruby\",\"number\",{builtin:/\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\\b/,constant:/\\b[A-Z]\\w*(?:[?!]|\\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[\\s\\S])*\\}/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\]/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\\\]|\\\\[\\s\\S])*>/,greedy:!0,inside:{interpolation:n}},{pattern:/(\"|')(?:#\\{[^}]+\\}|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0,inside:{interpolation:n}}]}(Prism);\nPrism.languages.csp={directive:{pattern:/\\b(?:(?:base-uri|form-action|frame-ancestors|plugin-types|referrer|reflected-xss|report-to|report-uri|require-sri-for|sandbox) |(?:block-all-mixed-content|disown-opener|upgrade-insecure-requests)(?: |;)|(?:child|connect|default|font|frame|img|manifest|media|object|script|style|worker)-src )/i,alias:\"keyword\"},safe:{pattern:/'(?:self|none|strict-dynamic|(?:nonce-|sha(?:256|384|512)-)[a-zA-Z\\d+=\\/]+)'/,alias:\"selector\"},unsafe:{pattern:/(?:'unsafe-inline'|'unsafe-eval'|'unsafe-hashed-attributes'|\\*)/,alias:\"function\"}};\nPrism.languages.css.selector={pattern:/[^{}\\s][^{}]*(?=\\s*\\{)/,inside:{\"pseudo-element\":/:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\"pseudo-class\":/:[-\\w]+(?:\\(.*\\))?/,\"class\":/\\.[-:.\\w]+/,id:/#[-:.\\w]+/,attribute:/\\[[^\\]]+\\]/}},Prism.languages.insertBefore(\"css\",\"function\",{hexcode:/#[\\da-f]{3,8}/i,entity:/\\\\[\\da-f]{1,8}/i,number:/[\\d%.]+/});\nPrism.languages.d=Prism.languages.extend(\"clike\",{string:[/\\b[rx]\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"[cwd]?/,/\\bq\"(?:\\[[\\s\\S]*?\\]|\\([\\s\\S]*?\\)|<[\\s\\S]*?>|\\{[\\s\\S]*?\\})\"/,/\\bq\"([_a-zA-Z][_a-zA-Z\\d]*)(?:\\r?\\n|\\r)[\\s\\S]*?(?:\\r?\\n|\\r)\\1\"/,/\\bq\"(.)[\\s\\S]*?\\1\"/,/'(?:\\\\'|\\\\?[^']+)'/,/([\"`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1[cwd]?/],number:[/\\b0x\\.?[a-f\\d_]+(?:(?!\\.\\.)\\.[a-f\\d_]*)?(?:p[+-]?[a-f\\d_]+)?[ulfi]*/i,{pattern:/((?:\\.\\.)?)(?:\\b0b\\.?|\\b|\\.)\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?[ulfi]*/i,lookbehind:!0}],keyword:/\\$|\\b(?:abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\\b/,operator:/\\|[|=]?|&[&=]?|\\+[+=]?|-[-=]?|\\.?\\.\\.|=[>=]?|!(?:i[ns]\\b|<>?=?|>=?|=)?|\\bi[ns]\\b|(?:<[<>]?|>>?>?|\\^\\^|[*\\/%^~])=?/}),Prism.languages.d.comment=[/^\\s*#!.+/,{pattern:/(^|[^\\\\])\\/\\+(?:\\/\\+[\\s\\S]*?\\+\\/|[\\s\\S])*?\\+\\//,lookbehind:!0}].concat(Prism.languages.d.comment),Prism.languages.insertBefore(\"d\",\"comment\",{\"token-string\":{pattern:/\\bq\\{(?:\\{[^}]*\\}|[^}])*\\}/,alias:\"string\"}}),Prism.languages.insertBefore(\"d\",\"keyword\",{property:/\\B@\\w*/}),Prism.languages.insertBefore(\"d\",\"function\",{register:{pattern:/\\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\\d))\\b|\\bST(?:\\([0-7]\\)|\\b)/,alias:\"variable\"}});\nPrism.languages.dart=Prism.languages.extend(\"clike\",{string:[{pattern:/r?(\"\"\"|''')[\\s\\S]*?\\1/,greedy:!0},{pattern:/r?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0}],keyword:[/\\b(?:async|sync|yield)\\*/,/\\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\\b/],operator:/\\bis!|\\b(?:as|is)\\b|\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?/}),Prism.languages.insertBefore(\"dart\",\"function\",{metadata:{pattern:/@\\w+/,alias:\"symbol\"}});\nPrism.languages.diff={coord:[/^(?:\\*{3}|-{3}|\\+{3}).*$/m,/^@@.*@@$/m,/^\\d+.*$/m],deleted:/^[-<].*$/m,inserted:/^[+>].*$/m,diff:{pattern:/^!(?!!).+$/m,alias:\"important\"}};\nvar _django_template={property:{pattern:/(?:{{|{%)[\\s\\S]*?(?:%}|}})/g,greedy:!0,inside:{string:{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},keyword:/\\b(?:\\||load|verbatim|widthratio|ssi|firstof|for|url|ifchanged|csrf_token|lorem|ifnotequal|autoescape|now|templatetag|debug|cycle|ifequal|regroup|comment|filter|endfilter|if|spaceless|with|extends|block|include|else|empty|endif|endfor|as|endblock|endautoescape|endverbatim|trans|endtrans|[Tt]rue|[Ff]alse|[Nn]one|in|is|static|macro|endmacro|call|endcall|set|endset|raw|endraw)\\b/,operator:/[-+=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:or|and|not)\\b/,\"function\":/\\b(?:_|abs|add|addslashes|attr|batch|callable|capfirst|capitalize|center|count|cut|d|date|default|default_if_none|defined|dictsort|dictsortreversed|divisibleby|e|equalto|escape|escaped|escapejs|even|filesizeformat|first|float|floatformat|force_escape|forceescape|format|get_digit|groupby|indent|int|iriencode|iterable|join|last|length|length_is|linebreaks|linebreaksbr|linenumbers|list|ljust|lower|make_list|map|mapping|number|odd|phone2numeric|pluralize|pprint|random|reject|rejectattr|removetags|replace|reverse|rjust|round|safe|safeseq|sameas|select|selectattr|sequence|slice|slugify|sort|string|stringformat|striptags|sum|time|timesince|timeuntil|title|trim|truncate|truncatechars|truncatechars_html|truncatewords|truncatewords_html|undefined|unordered_list|upper|urlencode|urlize|urlizetrunc|wordcount|wordwrap|xmlattr|yesno)\\b/,important:/\\b-?\\d+(?:\\.\\d+)?\\b/,variable:/\\b\\w+?\\b/,punctuation:/[[\\];(),.:]/}}};Prism.languages.django=Prism.languages.extend(\"markup\",{comment:/(?:)/}),Prism.languages.django.tag.pattern=/<\\/?(?!\\d)[^\\s>\\/=$<]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^>=]+))?)*\\s*\\/?>/i,Prism.languages.insertBefore(\"django\",\"entity\",_django_template),Prism.languages.insertBefore(\"inside\",\"tag\",_django_template,Prism.languages.django.tag),Prism.languages.javascript&&(Prism.languages.insertBefore(\"inside\",\"string\",_django_template,Prism.languages.django.script),Prism.languages.django.script.inside.string.inside=_django_template),Prism.languages.css&&(Prism.languages.insertBefore(\"inside\",\"atrule\",{tag:_django_template.property},Prism.languages.django.style),Prism.languages.django.style.inside.string.inside=_django_template),Prism.languages.jinja2=Prism.languages.django;\nPrism.languages.docker={keyword:{pattern:/(^\\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\\s)/im,lookbehind:!0},string:/(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,comment:/#.*/,punctuation:/---|\\.\\.\\.|[:[\\]{}\\-,|>?]/},Prism.languages.dockerfile=Prism.languages.docker;\nPrism.languages.eiffel={comment:/--.*/,string:[{pattern:/\"([^[]*)\\[[\\s\\S]*?\\]\\1\"/,greedy:!0},{pattern:/\"([^{]*)\\{[\\s\\S]*?\\}\\1\"/,greedy:!0},{pattern:/\"(?:%\\s+%|%.|[^%\"\\r\\n])*\"/,greedy:!0}],\"char\":/'(?:%.|[^%'\\r\\n])+'/,keyword:/\\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\\b/i,\"boolean\":/\\b(?:True|False)\\b/i,\"class-name\":{pattern:/\\b[A-Z][\\dA-Z_]*\\b/,alias:\"builtin\"},number:[/\\b0[xcb][\\da-f](?:_*[\\da-f])*\\b/i,/(?:\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?e[+-]?)?\\d(?:_*\\d)*|\\d(?:_*\\d)*\\.?/i],punctuation:/:=|<<|>>|\\(\\||\\|\\)|->|\\.(?=\\w)|[{}[\\];(),:?]/,operator:/\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/=]?|[><]=?|[-+*^=~]/};\nPrism.languages.elixir={comment:{pattern:/#.*/m,lookbehind:!0},regex:{pattern:/~[rR](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|#\\{[^}]+\\}|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/(\"\"\"|''')[\\s\\S]*?\\1/,greedy:!0,inside:{}},{pattern:/(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\\w+/,lookbehind:!0,alias:\"symbol\"},\"attr-name\":/\\w+:(?!:)/,capture:{pattern:/(^|[^&])&(?:[^&\\s\\d()][^\\s()]*|(?=\\())/,lookbehind:!0,alias:\"function\"},argument:{pattern:/(^|[^&])&\\d+/,lookbehind:!0,alias:\"variable\"},attribute:{pattern:/@\\w+/,alias:\"variable\"},number:/\\b(?:0[box][a-f\\d_]+|\\d[\\d_]*)(?:\\.[\\d_]+)?(?:e[+-]?[\\d_]+)?\\b/i,keyword:/\\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\\b/,\"boolean\":/\\b(?:true|false|nil)\\b/,operator:[/\\bin\\b|&&?|\\|[|>]?|\\\\\\\\|::|\\.\\.\\.?|\\+\\+?|-[->]?|<[-=>]|>=|!==?|\\B!|=(?:==?|[>~])?|[*\\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\\[\\]{}()]/},Prism.languages.elixir.string.forEach(function(e){e.inside={interpolation:{pattern:/#\\{[^}]+\\}/,inside:{delimiter:{pattern:/^#\\{|\\}$/,alias:\"punctuation\"},rest:Prism.languages.elixir}}}});\nPrism.languages.elm={comment:/--.*|{-[\\s\\S]*?-}/,\"char\":{pattern:/'(?:[^\\\\'\\r\\n]|\\\\(?:[abfnrtv\\\\']|\\d+|x[0-9a-fA-F]+))'/,greedy:!0},string:[{pattern:/\"\"\"[\\s\\S]*?\"\"\"/,greedy:!0},{pattern:/\"(?:[^\\\\\"\\r\\n]|\\\\(?:[abfnrtv\\\\\"]|\\d+|x[0-9a-fA-F]+))*\"/,greedy:!0}],import_statement:{pattern:/^\\s*import\\s+[A-Z]\\w*(?:\\.[A-Z]\\w*)*(?:\\s+as\\s+([A-Z]\\w*)(?:\\.[A-Z]\\w*)*)?(?:\\s+exposing\\s+)?/m,inside:{keyword:/\\b(?:import|as|exposing)\\b/}},keyword:/\\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\\b/,builtin:/\\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\\b/,number:/\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[0-9a-f]+)\\b/i,operator:/\\s\\.\\s|[+\\-\\/*=.$<>:&|^?%#@~!]{2,}|[+\\-\\/*=$<>:&|^?%#@~!]/,hvariable:/\\b(?:[A-Z]\\w*\\.)*[a-z]\\w*\\b/,constant:/\\b(?:[A-Z]\\w*\\.)*[A-Z]\\w*\\b/,punctuation:/[{}[\\]|(),.:]/};\nPrism.languages[\"markup-templating\"]={},Object.defineProperties(Prism.languages[\"markup-templating\"],{buildPlaceholders:{value:function(e,t,n,a){e.language===t&&(e.tokenStack=[],e.code=e.code.replace(n,function(n){if(\"function\"==typeof a&&!a(n))return n;for(var r=e.tokenStack.length;-1!==e.code.indexOf(\"___\"+t.toUpperCase()+r+\"___\");)++r;return e.tokenStack[r]=n,\"___\"+t.toUpperCase()+r+\"___\"}),e.grammar=Prism.languages.markup)}},tokenizePlaceholders:{value:function(e,t){if(e.language===t&&e.tokenStack){e.grammar=Prism.languages[t];var n=0,a=Object.keys(e.tokenStack),r=function(o){if(!(n>=a.length))for(var i=0;i-1){++n;var f,u=l.substring(0,p),_=new Prism.Token(t,Prism.tokenize(s,e.grammar,t),\"language-\"+t,s),k=l.substring(p+(\"___\"+t.toUpperCase()+c+\"___\").length);if(u||k?(f=[u,_,k].filter(function(e){return!!e}),r(f)):f=_,\"string\"==typeof g?Array.prototype.splice.apply(o,[i,1].concat(f)):g.content=f,n>=a.length)break}}else g.content&&\"string\"!=typeof g.content&&r(g.content)}};r(e.tokens)}}}});\nPrism.languages.erlang={comment:/%.+/,string:{pattern:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,greedy:!0},\"quoted-function\":{pattern:/'(?:\\\\.|[^\\\\'\\r\\n])+'(?=\\()/,alias:\"function\"},\"quoted-atom\":{pattern:/'(?:\\\\.|[^\\\\'\\r\\n])+'/,alias:\"atom\"},\"boolean\":/\\b(?:true|false)\\b/,keyword:/\\b(?:fun|when|case|of|end|if|receive|after|try|catch)\\b/,number:[/\\$\\\\?./,/\\d+#[a-z0-9]+/i,/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i],\"function\":/\\b[a-z][\\w@]*(?=\\()/,variable:{pattern:/(^|[^@])(?:\\b|\\?)[A-Z_][\\w@]*/,lookbehind:!0},operator:[/[=\\/<>:]=|=[:\\/]=|\\+\\+?|--?|[=*\\/!]|\\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\\b[a-z][\\w@]*/,punctuation:/[()[\\]{}:;,.#|]|<<|>>/};\nPrism.languages.fsharp=Prism.languages.extend(\"clike\",{comment:[{pattern:/(^|[^\\\\])\\(\\*[\\s\\S]*?\\*\\)/,lookbehind:!0},{pattern:/(^|[^\\\\:])\\/\\/.*/,lookbehind:!0}],keyword:/\\b(?:let|return|use|yield)(?:!\\B|\\b)|\\b(abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\\b/,string:{pattern:/(?:\"\"\"[\\s\\S]*?\"\"\"|@\"(?:\"\"|[^\"])*\"|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1)B?/,greedy:!0},number:[/\\b0x[\\da-fA-F]+(?:un|lf|LF)?\\b/,/\\b0b[01]+(?:y|uy)?\\b/,/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[fm]|e[+-]?\\d+)?\\b/i,/\\b\\d+(?:[IlLsy]|u[lsy]?|UL)?\\b/]}),Prism.languages.insertBefore(\"fsharp\",\"keyword\",{preprocessor:{pattern:/^[^\\r\\n\\S]*#.*/m,alias:\"property\",inside:{directive:{pattern:/(\\s*#)\\b(?:else|endif|if|light|line|nowarn)\\b/,lookbehind:!0,alias:\"keyword\"}}}});\n!function(a){a.languages.flow=a.languages.extend(\"javascript\",{}),a.languages.insertBefore(\"flow\",\"keyword\",{type:[{pattern:/\\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\\b/,alias:\"tag\"}]}),a.languages.flow[\"function-variable\"].pattern=/[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/i,a.languages.insertBefore(\"flow\",\"operator\",{\"flow-punctuation\":{pattern:/\\{\\||\\|\\}/,alias:\"punctuation\"}}),\"Array\"!==a.util.type(a.languages.flow.keyword)&&(a.languages.flow.keyword=[a.languages.flow.keyword]),a.languages.flow.keyword.unshift({pattern:/(^|[^$]\\b)(?:type|opaque|declare|Class)\\b(?!\\$)/,lookbehind:!0},{pattern:/(^|[^$]\\B)\\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\\b(?!\\$)/,lookbehind:!0})}(Prism);\nPrism.languages.fortran={\"quoted-number\":{pattern:/[BOZ](['\"])[A-F0-9]+\\1/i,alias:\"number\"},string:{pattern:/(?:\\w+_)?(['\"])(?:\\1\\1|&(?:\\r\\n?|\\n)(?:\\s*!.+(?:\\r\\n?|\\n))?|(?!\\1).)*(?:\\1|&)/,inside:{comment:{pattern:/(&(?:\\r\\n?|\\n)\\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},\"boolean\":/\\.(?:TRUE|FALSE)\\.(?:_\\w+)?/i,number:/(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[ED][+-]?\\d+)?(?:_\\w+)?/i,keyword:[/\\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\\b/i,/\\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\\b/i,/\\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\\b/i,/\\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\\b/i],operator:[/\\*\\*|\\/\\/|=>|[=\\/]=|[<>]=?|::|[+\\-*=%]|\\.(?:EQ|NE|LT|LE|GT|GE|NOT|AND|OR|EQV|NEQV)\\.|\\.[A-Z]+\\./i,{pattern:/(^|(?!\\().)\\/(?!\\))/,lookbehind:!0}],punctuation:/\\(\\/|\\/\\)|[(),;:&]/};\nPrism.languages.gedcom={\"line-value\":{pattern:/(^\\s*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-.\\/:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?\\w+ +).+/m,lookbehind:!0,inside:{pointer:{pattern:/^@\\w[\\w!\"$%&'()*+,\\-.\\/:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@$/,alias:\"variable\"}}},tag:{pattern:/(^\\s*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-.\\/:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?)\\w+/m,lookbehind:!0,alias:\"string\"},level:{pattern:/(^\\s*)\\d+/m,lookbehind:!0,alias:\"number\"},pointer:{pattern:/@\\w[\\w!\"$%&'()*+,\\-.\\/:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@/,alias:\"variable\"}};\nPrism.languages.gherkin={pystring:{pattern:/(\"\"\"|''')[\\s\\S]+?\\1/,alias:\"string\"},comment:{pattern:/((?:^|\\r?\\n|\\r)[ \\t]*)#.*/,lookbehind:!0},tag:{pattern:/((?:^|\\r?\\n|\\r)[ \\t]*)@\\S*/,lookbehind:!0},feature:{pattern:/((?:^|\\r?\\n|\\r)[ \\t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|CaracterĆ­stica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|FonctionnalitĆ©|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|FuncÅ£ionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|FunktionalitƤt|FunktionalitĆ©it|FunzionalitĆ |Hwaet|HwƦt|Jellemző|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Ɩzellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|TĆ­nh năng|Trajto|VermoĆ«|VlastnosÅ„|Właściwość|Značilnost|Ī”Ļ…Ī½Ī±Ļ„ĻŒĻ„Ī·Ļ„Ī±|Λειτουργία|ŠœŠ¾Š³ŃƒŃ›Š½Š¾ŃŃ‚|Мөмкинлек|ŠžŃŠ¾Š±ŠøŠ½Š°|Двойство|Үзенчәлеклелек|Š¤ŃƒŠ½ŠŗŃ†ŠøŠ¾Š½Š°Š»|Š¤ŃƒŠ½ŠŗŃ†ŠøŠ¾Š½Š°Š»Š½Š¾ŃŃ‚|Š¤ŃƒŠ½ŠŗŃ†ŠøŃ|Š¤ŃƒŠ½ŠŗŃ†Ń–Š¾Š½Š°Š»|תכונה|خاصية|خصوصیت|ŲµŁ„Ų§Ų­ŪŒŲŖ|کاروبار کی ضرورت|وِیژگی|ą¤°ą„‚ą¤Ŗ ą¤²ą„‡ą¤–|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ą²¹ą³†ą²šą³ą²šą²³|ąø„ąø§ąø²ąø”ąø•ą¹‰ąø­ąø‡ąøąø²ąø£ąø—ąø²ąø‡ąø˜ąøøąø£ąøąø“ąøˆ|ควาดสาดารถ|โครงหคัก|기늄|ćƒ•ć‚£ćƒ¼ćƒćƒ£|功能|機能):(?:[^:]+(?:\\r?\\n|\\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\\r\\n]+/,lookbehind:!0},keyword:/[^:\\r\\n]+:/}},scenario:{pattern:/((?:^|\\r?\\n|\\r)[ \\t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ɔr|Agtergrond|All y'all|Antecedentes|Antecedents|AtburưarĆ”s|AtburưarĆ”sir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cįŗ£nh|Cefndir|Cenario|CenĆ”rio|Cenario de Fundo|CenĆ”rio de Fundo|Cenarios|CenĆ”rios|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|DƦmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do CenĆ”rio|Dis is what went down|Dữ liệu|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do CenĆ”rio|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókƶnyv|Forgatókƶnyv vĆ”zlat|Fundo|GeƧmiş|ghantoH|Grundlage|Hannergrond|HĆ”ttĆ©r|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bįŗ£n|Khung tƬnh huống|Kịch bįŗ£n|Koncept|Konsep skenario|KontĆØks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|Lýsing AtburưarĆ”sar|Lýsing DƦma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|NĆ”Ärt ScenĆ”ra|NĆ”Ärt ScĆ©nÔře|NĆ”Ärt ScenĆ”ru|Oris scenarija|Ɩrnekler|Osnova|Osnova ScenĆ”ra|Osnova scĆ©nÔře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|PĆ©ldĆ”k|Piemēri|Plan du scĆ©nario|Plan du ScĆ©nario|Plan senaryo|Plan Senaryo|Plang vum Szenario|PozadĆ­|Pozadie|Pozadina|PrĆ­klady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|ScenĆ”r|ScĆ©nÔř|Scenarie|Scenarij|Scenarijai|Scenarijaus Å”ablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|ScĆ©nario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ưe|Se the|Se þe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hwƦr swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|TƬnh huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo\\-ho\\-ho|You'll wanna|Założenia|ΠαραΓείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Ī„Ļ€ĻŒĪ²Ī±ĪøĻĪæ|ŠšŠµŃ€ŠµŃˆ|ŠšŠ¾Š½Ń‚ŠµŠŗŃŃ‚|ŠšŠ¾Š½Ń†ŠµŠæŃ‚|ŠœŠøŃŠ°Š»Š»Š°Ń€|ŠœŠøŃŠ¾Š»Š»Š°Ń€|ŠžŃŠ½Š¾Š²Š°|ŠŸŠµŃ€ŠµŠ“ŃƒŠ¼Š¾Š²Š°|ПозаГина|ŠŸŃ€ŠµŠ“ŠøŃŃ‚Š¾Ń€ŠøŃ|ŠŸŃ€ŠµŠ“Ń‹ŃŃ‚Š¾Ń€ŠøŃ|ŠŸŃ€ŠøŠŗŠ»Š°Š“Šø|ŠŸŃ€ŠøŠ¼ŠµŃ€|ŠŸŃ€ŠøŠ¼ŠµŃ€Šø|ŠŸŃ€ŠøŠ¼ŠµŃ€Ń‹|Рамка на сценарий|Дкица|Š”Ń‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š° ŃŃ†ŠµŠ½Š°Ń€ŠøŃ˜Š°|Š”Ń‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š° ŃŃ†ŠµŠ½Š°Ń€ŠøŃ|Š”Ń‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š° ŃŃ†ŠµŠ½Š°Ń€Ń–ŃŽ|Дценарий|Дценарий ŃŃ‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š°ŃŠø|Дценарийның Ń‚Ó©Š·ŠµŠ»ŠµŃˆŠµ|Š”Ń†ŠµŠ½Š°Ń€ŠøŃ˜Šø|Дценарио|Дценарій|Тарих|Үрнәкләр|×“×•×’×ž××•×Ŗ|רקע|תבנית תרחיש|תרחיש|Ų§Ł„Ų®Ł„ŁŁŠŲ©|Ų§Ł„ŚÆŁˆŪŒ Ų³Ł†Ų§Ų±ŪŒŁˆ|امثلة|پس منظر|Ų²Ł…ŪŒŁ†Ł‡|Ų³Ł†Ų§Ų±ŪŒŁˆ|Ų³ŁŠŁ†Ų§Ų±ŁŠŁˆ|Ų³ŁŠŁ†Ų§Ų±ŁŠŁˆ Ł…Ų®Ų·Ų·|Ł…Ų«Ų§Ł„ŪŒŚŗ|منظر نامے کا خاکہ|منظرنامہ|Ł†Ł…ŁˆŁ†Ł‡ ها|उदाहरण|ą¤Ŗą¤°ą¤æą¤¦ą„ƒą¤¶ą„ą¤Æ|ą¤Ŗą¤°ą¤æą¤¦ą„ƒą¤¶ą„ą¤Æ ą¤°ą„‚ą¤Ŗą¤°ą„‡ą¤–ą¤¾|ą¤Ŗą„ƒą¤·ą„ą¤ ą¤­ą„‚ą¤®ą¤æ|ਉਦਾਹਰਨਾਂ|ąØŖąØŸąØ•ąØ„ąØ¾|ąØŖąØŸąØ•ąØ„ąØ¾ ąØ¢ąØ¾ąØ‚ąØšąØ¾|ąØŖąØŸąØ•ąØ„ąØ¾ ਰੂਪ ਰੇਖਾ|ąØŖąØæąØ›ą©‹ąØ•ą©œ|ఉదాహరణలు|ą°•ą°„ą°Øą°‚|ą°Øą±‡ą°Ŗą°„ą±ą°Æą°‚|ą°øą°Øą±ą°Øą°æą°µą±‡ą°¶ą°‚|ಉದಾಹರಣೆಗಳು|ಕ಄ಾಸಾರಾಂಶ|ವಿವರಣೆ|ą²¹ą²æą²Øą³ą²Øą³†ą²²ą³†|ą¹‚ąø„ąø£ąø‡ąøŖąø£ą¹‰ąø²ąø‡ąø‚ąø­ąø‡ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|ąøŠąøøąø”ąø‚ąø­ąø‡ąø•ąø±ąø§ąø­ąø¢ą¹ˆąø²ąø‡|ąøŠąøøąø”ąø‚ąø­ąø‡ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|แนวคณด|ąøŖąø£ąøøąø›ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|ė°°ź²½|ģ‹œė‚˜ė¦¬ģ˜¤|ģ‹œė‚˜ė¦¬ģ˜¤ ź°œģš”|예|ć‚µćƒ³ćƒ—ćƒ«|ć‚·ćƒŠćƒŖć‚Ŗ|ć‚·ćƒŠćƒŖć‚Ŗć‚¢ć‚¦ćƒˆćƒ©ć‚¤ćƒ³|ć‚·ćƒŠćƒŖć‚Ŗćƒ†ćƒ³ćƒ—ćƒ¬|ć‚·ćƒŠćƒŖć‚Ŗćƒ†ćƒ³ćƒ—ćƒ¬ćƒ¼ćƒˆ|ćƒ†ćƒ³ćƒ—ćƒ¬|例|例子|å‰§ęœ¬|å‰§ęœ¬å¤§ēŗ²|åŠ‡ęœ¬|åŠ‡ęœ¬å¤§ē¶±|åœŗę™Æ|åœŗę™Æå¤§ēŗ²|堓景|堓景大綱|čƒŒę™Æ):[^:\\r\\n]*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\\r\\n]*/,lookbehind:!0},keyword:/[^:\\r\\n]+:/}},\"table-body\":{pattern:/((?:\\r?\\n|\\r)[ \\t]*\\|.+\\|[^\\r\\n]*)+/,lookbehind:!0,inside:{outline:{pattern:/<[^>]+?>/,alias:\"variable\"},td:{pattern:/\\s*[^\\s|][^|]*/,alias:\"string\"},punctuation:/\\|/}},\"table-head\":{pattern:/(?:\\r?\\n|\\r)[ \\t]*\\|.+\\|[^\\r\\n]*/,inside:{th:{pattern:/\\s*[^\\s|][^|]*/,alias:\"variable\"},punctuation:/\\|/}},atrule:{pattern:/((?:\\r?\\n|\\r)[ \\t]+)(?:'ach|'a|'ej|7|a|A takĆ©|A taktiež|A tiež|A zĆ”roveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|AtĆØs|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biįŗæt|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|CĆ¢nd|Cando|Cand|Ce|Cuando|Če|Ɛa ưe|Ɛa|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|DaÅ£i fiind|Dați fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ɛurh|Eeldades|Ef|Eğer ki|Entao|EntĆ£o|Entón|Entonces|En|Epi|E|Ɖs|Etant donnĆ©e|Etant donnĆ©|Et|Ɖtant donnĆ©es|Ɖtant donnĆ©e|Ɖtant donnĆ©|Etant donnĆ©es|Etant donnĆ©s|Ɖtant donnĆ©s|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kadar|Kada|Kad|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|LĆØ sa a|LĆØ|Logo|Lorsqu'<|Lorsque|mƤ|Maar|Mais|Mając|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|NĆ„r|NƤr|Nato|Nhʰng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|SĆ„|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|ThƬ|Thurh|Toda|Too right|ugeholl|Und|Un|VĆ |vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zakładając|Zaradi|Zatati|ƞa þe|ƞa|ƞƔ|ƞegar|ƞurh|Αλλά|ΔεΓομένου|Και|ĪŒĻ„Ī±Ī½|Ī¤ĻŒĻ„Īµ|А також|Агар|Але|Али|Аммо|А|Ó˜Š³Ó™Ń€|Ó˜Š¹Ń‚ŠøŠŗ|Әмма|Бирок|Ва|Š’Ó™|ДаГено|Дано|Š”Š¾ŠæŃƒŃŃ‚ŠøŠ¼|Если|ЗаГате|ЗаГати|ЗаГато|И|І|К Ń‚Š¾Š¼Ńƒ же|КаГа|КаГ|ŠšŠ¾Š³Š°Ń‚Š¾|КогГа|Коли|Ләкин|Лекин|ŠÓ™Ń‚ŠøŅ—Ó™Š“Ó™|ŠŠµŃ…Š°Š¹|ŠŠ¾|ŠžŠ½Š“Š°|ŠŸŃ€ŠøŠæŃƒŃŃ‚ŠøŠ¼Š¾, що|ŠŸŃ€ŠøŠæŃƒŃŃ‚ŠøŠ¼Š¾|ŠŸŃƒŃŃ‚ŃŒ|Также|Та|ТогГа|ТоГі|То|УнГа|Һәм|Якщо|אבל|אזי|אז|×‘×”×™× ×Ŗ×Ÿ|וגם|כאשר|آنگاه|Ų§Ų°Ų§Ł‹|Ų§ŚÆŲ±|Ų§Ł…Ų§|اور|ŲØŲ§ فرض|بالفرض|بفرض|پھر|ŲŖŲØ|Ų«Ł…|Ų¬ŲØ|عندما|فرض کیا|Ł„ŁƒŁ†|Ł„ŪŒŚ©Ł†|متى|Ł‡Ł†ŚÆŲ§Ł…ŪŒ|و|अगर|और|कदा|ą¤•ą¤æą¤Øą„ą¤¤ą„|ą¤šą„‚ą¤‚ą¤•ą¤æ|जब|तऄा|तदा|तब|ą¤Ŗą¤°ą¤Øą„ą¤¤ą„|पर|यदि|ਅਤੇ|ąØœąØ¦ą©‹ąØ‚|ąØœąØæąØµą©‡ąØ‚ ਕਿ|ąØœą©‡ąØ•ąØ°|ਤਦ|ਪਰ|ą°…ą°Ŗą±ą°Ŗą±ą°”ą±|ఈ ą°Ŗą°°ą°æą°øą±ą°„ą°æą°¤ą°æą°²ą±‹|కాని|ą°šą±†ą°Ŗą±ą°Ŗą°¬ą°”ą°æą°Øą°¦ą°æ|మరియు|ಆದರೆ|ನಂತರ|ನೀಔಿದ|ą²®ą²¤ą³ą²¤ą³|ą²øą³ą²„ą²æą²¤ą²æą²Æą²Øą³ą²Øą³|ąøąø³ąø«ąø™ąø”ą¹ƒąø«ą¹‰|ดังนั้น|ą¹ąø•ą¹ˆ|ą¹€ąø”ąø·ą¹ˆąø­|แคะ|그러멓<|그리고<|단<|ė§Œģ•½<|ė§Œģ¼<|먼저<|씰걓<|ķ•˜ģ§€ė§Œ<|恋恤<|恗恋恗<|恟恠恗<|ならば<|悂恗<|並且<|但し<|ä½†ę˜Æ<|假如<|假定<|假設<|假设<|å‰ę<|åŒę—¶<|åŒę™‚<|å¹¶äø”<|当<|ē•¶<|č€Œäø”<|那么<|那麼<)(?=[ \\t]+)/,lookbehind:!0},string:{pattern:/\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/,inside:{outline:{pattern:/<[^>]+?>/,alias:\"variable\"}}},outline:{pattern:/<[^>]+?>/,alias:\"variable\"}};\nPrism.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\\+.*/m,string:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/m,command:{pattern:/^.*\\$ git .*$/m,inside:{parameter:/\\s--?\\w+/m}},coord:/^@@.*@@$/m,commit_sha1:/^commit \\w{40}$/m};\nPrism.languages.glsl=Prism.languages.extend(\"clike\",{comment:[/\\/\\*[\\s\\S]*?\\*\\//,/\\/\\/(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/],number:/(?:\\b0x[\\da-f]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ulf]*/i,keyword:/\\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\\b/}),Prism.languages.insertBefore(\"glsl\",\"comment\",{preprocessor:{pattern:/(^[ \\t]*)#(?:(?:define|undef|if|ifdef|ifndef|else|elif|endif|error|pragma|extension|version|line)\\b)?/m,lookbehind:!0,alias:\"builtin\"}});\nPrism.languages.go=Prism.languages.extend(\"clike\",{keyword:/\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,builtin:/\\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\\b/,\"boolean\":/\\b(?:_|iota|nil|true|false)\\b/,operator:/[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,number:/(?:\\b0x[a-f\\d]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[-+]?\\d+)?)i?/i,string:{pattern:/([\"'`])(\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,greedy:!0}}),delete Prism.languages.go[\"class-name\"];\nPrism.languages.graphql={comment:/#.*/,string:{pattern:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,greedy:!0},number:/(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\"boolean\":/\\b(?:true|false)\\b/,variable:/\\$[a-z_]\\w*/i,directive:{pattern:/@[a-z_]\\w*/i,alias:\"function\"},\"attr-name\":/[a-z_]\\w*(?=\\s*:)/i,keyword:[{pattern:/(fragment\\s+(?!on)[a-z_]\\w*\\s+|\\.{3}\\s*)on\\b/,lookbehind:!0},/\\b(?:query|fragment|mutation)\\b/],operator:/!|=|\\.{3}/,punctuation:/[!(){}\\[\\]:=,]/};\nPrism.languages.groovy=Prism.languages.extend(\"clike\",{keyword:/\\b(?:as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\\b/,string:[{pattern:/(\"\"\"|''')[\\s\\S]*?\\1|(?:\\$\\/)(?:\\$\\/\\$|[\\s\\S])*?\\/\\$/,greedy:!0},{pattern:/([\"'\\/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0}],number:/\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?[\\d]+)?)[glidf]?\\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.{1,2}(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,lookbehind:!0},punctuation:/\\.+|[{}[\\];(),:$]/}),Prism.languages.insertBefore(\"groovy\",\"string\",{shebang:{pattern:/#!.+/,alias:\"comment\"}}),Prism.languages.insertBefore(\"groovy\",\"punctuation\",{\"spock-block\":/\\b(?:setup|given|when|then|and|cleanup|expect|where):/}),Prism.languages.insertBefore(\"groovy\",\"function\",{annotation:{alias:\"punctuation\",pattern:/(^|[^.])@\\w+/,lookbehind:!0}}),Prism.hooks.add(\"wrap\",function(e){if(\"groovy\"===e.language&&\"string\"===e.type){var t=e.content[0];if(\"'\"!=t){var n=/([^\\\\])(?:\\$(?:\\{.*?\\}|[\\w.]+))/;\"$\"===t&&(n=/([^\\$])(?:\\$(?:\\{.*?\\}|[\\w.]+))/),e.content=e.content.replace(/</g,\"<\").replace(/&/g,\"&\"),e.content=Prism.highlight(e.content,{expression:{pattern:n,lookbehind:!0,inside:Prism.languages.groovy}}),e.classes.push(\"/\"===t?\"regex\":\"gstring\")}}});\n!function(e){e.languages.haml={\"multiline-comment\":{pattern:/((?:^|\\r?\\n|\\r)([\\t ]*))(?:\\/|-#).*(?:(?:\\r?\\n|\\r)\\2[\\t ]+.+)*/,lookbehind:!0,alias:\"comment\"},\"multiline-code\":[{pattern:/((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*,[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ]+.*,[\\t ]*)*(?:(?:\\r?\\n|\\r)\\2[\\t ]+.+)/,lookbehind:!0,inside:{rest:e.languages.ruby}},{pattern:/((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*\\|[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ]+.*\\|[\\t ]*)*/,lookbehind:!0,inside:{rest:e.languages.ruby}}],filter:{pattern:/((?:^|\\r?\\n|\\r)([\\t ]*)):[\\w-]+(?:(?:\\r?\\n|\\r)(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+/,lookbehind:!0,inside:{\"filter-name\":{pattern:/^:[\\w-]+/,alias:\"variable\"}}},markup:{pattern:/((?:^|\\r?\\n|\\r)[\\t ]*)<.+/,lookbehind:!0,inside:{rest:e.languages.markup}},doctype:{pattern:/((?:^|\\r?\\n|\\r)[\\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\\r?\\n|\\r)[\\t ]*)[%.#][\\w\\-#.]*[\\w\\-](?:\\([^)]+\\)|\\{(?:\\{[^}]+\\}|[^}])+\\}|\\[[^\\]]+\\])*[\\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\\{(?:\\{[^}]+\\}|[^}])+\\}/,lookbehind:!0,inside:{rest:e.languages.ruby}},{pattern:/\\([^)]+\\)/,inside:{\"attr-value\":{pattern:/(=\\s*)(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|[^)\\s]+)/,lookbehind:!0},\"attr-name\":/[\\w:-]+(?=\\s*!?=|\\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\\[[^\\]]+\\]/,inside:{rest:e.languages.ruby}}],punctuation:/[<>]/}},code:{pattern:/((?:^|\\r?\\n|\\r)[\\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:{rest:e.languages.ruby}},interpolation:{pattern:/#\\{[^}]+\\}/,inside:{delimiter:{pattern:/^#\\{|\\}$/,alias:\"punctuation\"},rest:e.languages.ruby}},punctuation:{pattern:/((?:^|\\r?\\n|\\r)[\\t ]*)[~=\\-&!]+/,lookbehind:!0}};for(var t=\"((?:^|\\\\r?\\\\n|\\\\r)([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r)(?:\\\\2[\\\\t ]+.+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+\",r=[\"css\",{filter:\"coffee\",language:\"coffeescript\"},\"erb\",\"javascript\",\"less\",\"markdown\",\"ruby\",\"scss\",\"textile\"],n={},a=0,i=r.length;i>a;a++){var l=r[a];l=\"string\"==typeof l?{filter:l,language:l}:l,e.languages[l.language]&&(n[\"filter-\"+l.filter]={pattern:RegExp(t.replace(\"{{filter_name}}\",l.filter)),lookbehind:!0,inside:{\"filter-name\":{pattern:/^:[\\w-]+/,alias:\"variable\"},rest:e.languages[l.language]}})}e.languages.insertBefore(\"haml\",\"filter\",n)}(Prism);\n!function(a){a.languages.handlebars={comment:/\\{\\{![\\s\\S]*?\\}\\}/,delimiter:{pattern:/^\\{\\{\\{?|\\}\\}\\}?$/i,alias:\"punctuation\"},string:/([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,number:/\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\"boolean\":/\\b(?:true|false)\\b/,block:{pattern:/^(\\s*~?\\s*)[#\\/]\\S+?(?=\\s*~?\\s*$|\\s)/i,lookbehind:!0,alias:\"keyword\"},brackets:{pattern:/\\[[^\\]]+\\]/,inside:{punctuation:/\\[|\\]/,variable:/[\\s\\S]+/}},punctuation:/[!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]/,variable:/[^!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~\\s]+/},a.hooks.add(\"before-tokenize\",function(e){var n=/\\{\\{\\{[\\s\\S]+?\\}\\}\\}|\\{\\{[\\s\\S]+?\\}\\}/g;a.languages[\"markup-templating\"].buildPlaceholders(e,\"handlebars\",n)}),a.hooks.add(\"after-tokenize\",function(e){a.languages[\"markup-templating\"].tokenizePlaceholders(e,\"handlebars\")})}(Prism);\nPrism.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\\\\/])(?:--[^-!#$%*+=?&@|~.:<>^\\\\\\/].*|{-[\\s\\S]*?-})/m,lookbehind:!0},\"char\":/'(?:[^\\\\']|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|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|\\d+|o[0-7]+|x[0-9a-fA-F]+))'/,string:{pattern:/\"(?:[^\\\\\"]|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|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|\\d+|o[0-7]+|x[0-9a-fA-F]+)|\\\\\\s+\\\\)*\"/,greedy:!0},keyword:/\\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,import_statement:{pattern:/((?:\\r?\\n|\\r|^)\\s*)import\\s+(?:qualified\\s+)?(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+(?:[A-Z][_a-zA-Z0-9']*)(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,lookbehind:!0,inside:{keyword:/\\b(?:import|qualified|as|hiding)\\b/}},builtin:/\\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b/,number:/\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0o[0-7]+|0x[0-9a-f]+)\\b/i,operator:/\\s\\.\\s|[-!#$%*+=?&@|~.:<>^\\\\\\/]*\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+|[-!#$%*+=?&@|~.:<>^\\\\\\/]+\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]*|[-!#$%*+=?&@|~:<>^\\\\\\/]+|`([A-Z][\\w']*\\.)*[_a-z][\\w']*`/,hvariable:/\\b(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*\\b/,constant:/\\b(?:[A-Z][\\w']*\\.)*[A-Z][\\w']*\\b/,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.haxe=Prism.languages.extend(\"clike\",{string:{pattern:/([\"'])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,greedy:!0,inside:{interpolation:{pattern:/(^|[^\\\\])\\$(?:\\w+|\\{[^}]+\\})/,lookbehind:!0,inside:{interpolation:{pattern:/^\\$\\w*/,alias:\"variable\"}}}}},keyword:/\\bthis\\b|\\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\\.)\\b/,operator:/\\.{3}|\\+\\+?|-[->]?|[=!]=?|&&?|\\|\\|?|<[<=]?|>[>=]?|[*\\/%~^]/}),Prism.languages.insertBefore(\"haxe\",\"class-name\",{regex:{pattern:/~\\/(?:[^\\/\\\\\\r\\n]|\\\\.)+\\/[igmsu]*/,greedy:!0}}),Prism.languages.insertBefore(\"haxe\",\"keyword\",{preprocessor:{pattern:/#\\w+/,alias:\"builtin\"},metadata:{pattern:/@:?\\w+/,alias:\"symbol\"},reification:{pattern:/\\$(?:\\w+|(?=\\{))/,alias:\"variable\"}}),Prism.languages.haxe.string.inside.interpolation.inside.rest=Prism.languages.haxe,delete Prism.languages.haxe[\"class-name\"];\nPrism.languages.http={\"request-line\":{pattern:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\\s(?:https?:\\/\\/|\\/)\\S+\\sHTTP\\/[0-9.]+/m,inside:{property:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\\b/,\"attr-name\":/:\\w+/}},\"response-status\":{pattern:/^HTTP\\/1.[01] \\d+.*/m,inside:{property:{pattern:/(^HTTP\\/1.[01] )\\d+.*/i,lookbehind:!0}}},\"header-name\":{pattern:/^[\\w-]+:(?=.)/m,alias:\"keyword\"}};var httpLanguages={\"application/json\":Prism.languages.javascript,\"application/xml\":Prism.languages.markup,\"text/xml\":Prism.languages.markup,\"text/html\":Prism.languages.markup};for(var contentType in httpLanguages)if(httpLanguages[contentType]){var options={};options[contentType]={pattern:new RegExp(\"(content-type:\\\\s*\"+contentType+\"[\\\\w\\\\W]*?)(?:\\\\r?\\\\n|\\\\r){2}[\\\\w\\\\W]*\",\"i\"),lookbehind:!0,inside:{rest:httpLanguages[contentType]}},Prism.languages.insertBefore(\"http\",\"header-name\",options)};\nPrism.languages.hpkp={directive:{pattern:/\\b(?:(?:includeSubDomains|preload|strict)(?: |;)|pin-sha256=\"[a-zA-Z\\d+=\\/]+\"|(?:max-age|report-uri)=|report-to )/,alias:\"keyword\"},safe:{pattern:/\\d{7,}/,alias:\"selector\"},unsafe:{pattern:/\\d{0,6}/,alias:\"function\"}};\nPrism.languages.hsts={directive:{pattern:/\\b(?:max-age=|includeSubDomains|preload)/,alias:\"keyword\"},safe:{pattern:/\\d{8,}/,alias:\"selector\"},unsafe:{pattern:/\\d{0,7}/,alias:\"function\"}};\nPrism.languages.ichigojam={comment:/(?:\\B'|REM)(?:[^\\n\\r]*)/i,string:{pattern:/\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^_ +\\-.A-Z\\d])*\"/i,greedy:!0},number:/\\B#[0-9A-F]+|\\B`[01]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,keyword:/\\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\\$|\\b)/i,\"function\":/\\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\\$|\\b)/i,label:/(?:\\B@[^\\s]+)/i,operator:/<[=>]?|>=?|\\|\\||&&|[+\\-*\\/=|&^~!]|\\b(?:AND|NOT|OR)\\b/i,punctuation:/[\\[,;:()\\]]/};\nPrism.languages.icon={comment:/#.*/,string:{pattern:/([\"'])(?:(?!\\1)[^\\\\\\r\\n_]|\\\\.|_(?!\\1)(?:\\r\\n|[\\s\\S]))*\\1/,greedy:!0},number:/\\b(?:\\d+r[a-z\\d]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b|\\.\\d+\\b/i,\"builtin-keyword\":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\\b/,alias:\"variable\"},directive:{pattern:/\\$\\w+/,alias:\"builtin\"},keyword:/\\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\\b/,\"function\":/(?!\\d)\\w+(?=\\s*[({]|\\s*!\\s*\\[)/,operator:/[+-]:(?!=)|(?:[\\/?@^%&]|\\+\\+?|--?|==?=?|~==?=?|\\*\\*?|\\|\\|\\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\\\|~]/,punctuation:/[\\[\\](){},;]/};\nPrism.languages.inform7={string:{pattern:/\"[^\"]*\"/,inside:{substitution:{pattern:/\\[[^\\]]+\\]/,inside:{delimiter:{pattern:/\\[|\\]/,alias:\"punctuation\"}}}}},comment:{pattern:/\\[[^\\]]+\\]/,greedy:!0},title:{pattern:/^[ \\t]*(?:volume|book|part(?! of)|chapter|section|table)\\b.+/im,alias:\"important\"},number:{pattern:/(^|[^-])(?:\\b\\d+(?:\\.\\d+)?(?:\\^\\d+)?\\w*|\\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\\b(?!-)/i,lookbehind:!0},verb:{pattern:/(^|[^-])\\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\\b(?!-)/i,lookbehind:!0,alias:\"operator\"},keyword:{pattern:/(^|[^-])\\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\\b(?!-)/i,lookbehind:!0},property:{pattern:/(^|[^-])\\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\\b(?!-)/i,lookbehind:!0,alias:\"symbol\"},position:{pattern:/(^|[^-])\\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\\b(?!-)/i,lookbehind:!0,alias:\"keyword\"},type:{pattern:/(^|[^-])\\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\\b(?!-)/i,lookbehind:!0,alias:\"variable\"},punctuation:/[.,:;(){}]/},Prism.languages.inform7.string.inside.substitution.inside.rest=Prism.languages.inform7,Prism.languages.inform7.string.inside.substitution.inside.rest.text={pattern:/\\S(?:\\s*\\S)*/,alias:\"comment\"};\nPrism.languages.ini={comment:/^[ \\t]*;.*$/m,selector:/^[ \\t]*\\[.*?\\]/m,constant:/^[ \\t]*[^\\s=]+?(?=[ \\t]*=)/m,\"attr-value\":{pattern:/=.*/,inside:{punctuation:/^[=]/}}};\nPrism.languages.io={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,lookbehind:!0},{pattern:/(^|[^\\\\])\\/\\/.*/,lookbehind:!0},{pattern:/(^|[^\\\\])#.*/,lookbehind:!0}],\"triple-quoted-string\":{pattern:/\"\"\"(?:\\\\[\\s\\S]|(?!\"\"\")[^\\\\])*\"\"\"/,greedy:!0,alias:\"string\"},string:{pattern:/\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,greedy:!0},keyword:/\\b(?:activate|activeCoroCount|asString|block|break|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\\b/,builtin:/\\b(?:Array|AudioDevice|AudioMixer|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum|Sequence)\\b/,\"boolean\":/\\b(?:true|false|nil)\\b/,number:/\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e-?\\d+)?/i,operator:/[=!*\\/%+-^&|]=|>>?=?|<+*\\-%$|,#][.:]?|[?^]\\.?|[;\\[]:?|[~}\"i][.:]|[ACeEIjLor]\\.|(?:[_\\/\\\\qsux]|_?\\d):)/,alias:\"keyword\"},number:/\\b_?(?:(?!\\d:)\\d+(?:\\.\\d+)?(?:(?:[ejpx]|ad|ar)_?\\d+(?:\\.\\d+)?)*(?:b_?[\\da-z]+(?:\\.[\\da-z]+)?)?|_(?!\\.))/,adverb:{pattern:/[~}]|[\\/\\\\]\\.?|[bfM]\\.|t[.:]/,alias:\"builtin\"},operator:/[=a][.:]|_\\./,conjunction:{pattern:/&(?:\\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\\.|`:?|[\\^LS]:|\"/,alias:\"variable\"},punctuation:/[()]/};\nPrism.languages.java=Prism.languages.extend(\"clike\",{keyword:/\\b(?: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)\\b/,number:/\\b0b[01]+\\b|\\b0x[\\da-f]*\\.?[\\da-fp-]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?[df]?/i,operator:{pattern:/(^|[^.])(?:\\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\\|[|=]?|\\*=?|\\/=?|%=?|\\^=?|[?:~])/m,lookbehind:!0}}),Prism.languages.insertBefore(\"java\",\"function\",{annotation:{alias:\"punctuation\",pattern:/(^|[^.])@\\w+/,lookbehind:!0}}),Prism.languages.insertBefore(\"java\",\"class-name\",{generics:{pattern:/<\\s*\\w+(?:\\.\\w+)?(?:\\s*,\\s*\\w+(?:\\.\\w+)?)*>/i,alias:\"function\",inside:{keyword:Prism.languages.java.keyword,punctuation:/[<>(),.:]/}}});\nPrism.languages.jolie=Prism.languages.extend(\"clike\",{keyword:/\\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\\b/,builtin:/\\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\\b/,number:/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?l?/i,operator:/-[-=>]?|\\+[+=]?|<[<=]?|[>=*!]=?|&&|\\|\\||[:?\\/%^]/,symbol:/[|;@]/,punctuation:/[,.]/,string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0}}),delete Prism.languages.jolie[\"class-name\"],delete Prism.languages.jolie[\"function\"],Prism.languages.insertBefore(\"jolie\",\"keyword\",{\"function\":{pattern:/((?:\\b(?:outputPort|inputPort|in|service|courier)\\b|@)\\s*)\\w+/,lookbehind:!0},aggregates:{pattern:/(\\bAggregates\\s*:\\s*)(?:\\w+(?:\\s+with\\s+\\w+)?\\s*,\\s*)*\\w+(?:\\s+with\\s+\\w+)?/,lookbehind:!0,inside:{withExtension:{pattern:/\\bwith\\s+\\w+/,inside:{keyword:/\\bwith\\b/}},\"function\":{pattern:/\\w+/},punctuation:{pattern:/,/}}},redirects:{pattern:/(\\bRedirects\\s*:\\s*)(?:\\w+\\s*=>\\s*\\w+\\s*,\\s*)*(?:\\w+\\s*=>\\s*\\w+)/,lookbehind:!0,inside:{punctuation:{pattern:/,/},\"function\":{pattern:/\\w+/},symbol:{pattern:/=>/}}}});\nPrism.languages.json={property:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/i,string:{pattern:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,greedy:!0},number:/\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,punctuation:/[{}[\\]);,]/,operator:/:/g,\"boolean\":/\\b(?:true|false)\\b/i,\"null\":/\\bnull\\b/i},Prism.languages.jsonp=Prism.languages.json;\nPrism.languages.julia={comment:{pattern:/(^|[^\\\\])#.*/,lookbehind:!0},string:/(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2/,keyword:/\\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|let|local|macro|module|print|println|quote|return|try|type|typealias|using|while)\\b/,\"boolean\":/\\b(?:true|false)\\b/,number:/(?:\\b(?=\\d)|\\B(?=\\.))(?:0[box])?(?:[\\da-f]+\\.?\\d*|\\.\\d+)(?:[efp][+-]?\\d+)?j?/i,operator:/[-+*^%Ć·&$\\\\]=?|\\/[\\/=]?|!=?=?|\\|[=>]?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≄]/,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.keyman={comment:/\\bc\\s.*/i,\"function\":/\\[\\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\\s+)*(?:[TKU]_[\\w?]+|\".+?\"|'.+?')\\s*\\]/i,string:/(\"|').*?\\1/,bold:[/&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\\b/i,/\\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\\b/i],keyword:/\\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\\b/i,atrule:/\\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\\b/i,number:/\\b(?:U\\+[\\dA-F]+|d\\d+|x[\\da-f]+|\\d+)\\b/i,operator:/[+>\\\\,()]/,tag:/\\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i};\n!function(e){e.languages.kotlin=e.languages.extend(\"clike\",{keyword:{pattern:/(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,lookbehind:!0},\"function\":[/\\w+(?=\\s*\\()/,{pattern:/(\\.)\\w+(?=\\s*\\{)/,lookbehind:!0}],number:/\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,operator:/\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/}),delete e.languages.kotlin[\"class-name\"],e.languages.insertBefore(\"kotlin\",\"string\",{\"raw-string\":{pattern:/(\"\"\"|''')[\\s\\S]*?\\1/,alias:\"string\"}}),e.languages.insertBefore(\"kotlin\",\"keyword\",{annotation:{pattern:/\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,alias:\"builtin\"}}),e.languages.insertBefore(\"kotlin\",\"function\",{label:{pattern:/\\w+@|@\\w+/,alias:\"symbol\"}});var n=[{pattern:/\\$\\{[^}]+\\}/,inside:{delimiter:{pattern:/^\\$\\{|\\}$/,alias:\"variable\"},rest:e.languages.kotlin}},{pattern:/\\$\\w+/,alias:\"variable\"}];e.languages.kotlin.string.inside=e.languages.kotlin[\"raw-string\"].inside={interpolation:n}}(Prism);\n!function(a){var e=/\\\\(?:[^a-z()[\\]]|[a-z*]+)/i,n={\"equation-command\":{pattern:e,alias:\"regex\"}};a.languages.latex={comment:/%.*/m,cdata:{pattern:/(\\\\begin\\{((?:verbatim|lstlisting)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,lookbehind:!0},equation:[{pattern:/\\$(?:\\\\[\\s\\S]|[^\\\\$])*\\$|\\\\\\([\\s\\S]*?\\\\\\)|\\\\\\[[\\s\\S]*?\\\\\\]/,inside:n,alias:\"string\"},{pattern:/(\\\\begin\\{((?:equation|math|eqnarray|align|multline|gather)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,lookbehind:!0,inside:n,alias:\"string\"}],keyword:{pattern:/(\\\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,lookbehind:!0},url:{pattern:/(\\\\url\\{)[^}]+(?=\\})/,lookbehind:!0},headline:{pattern:/(\\\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\\*?(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\}(?:\\[[^\\]]+\\])?)/,lookbehind:!0,alias:\"class-name\"},\"function\":{pattern:e,alias:\"selector\"},punctuation:/[[\\]{}&]/}}(Prism);\nPrism.languages.less=Prism.languages.extend(\"css\",{comment:[/\\/\\*[\\s\\S]*?\\*\\//,{pattern:/(^|[^\\\\])\\/\\/.*/,lookbehind:!0}],atrule:{pattern:/@[\\w-]+?(?:\\([^{}]+\\)|[^(){};])*?(?=\\s*\\{)/i,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\([^{}]*\\)|[^{};@])*?(?=\\s*\\{)/,inside:{variable:/@+[\\w-]+/}},property:/(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/i,punctuation:/[{}();:,]/,operator:/[+\\-*\\/]/}),Prism.languages.insertBefore(\"less\",\"punctuation\",{\"function\":Prism.languages.less.function}),Prism.languages.insertBefore(\"less\",\"property\",{variable:[{pattern:/@[\\w-]+\\s*:/,inside:{punctuation:/:/}},/@@?[\\w-]+/],\"mixin-usage\":{pattern:/([{;]\\s*)[.#](?!\\d)[\\w-]+.*?(?=[(;])/,lookbehind:!0,alias:\"function\"}});\nPrism.languages.liquid={keyword:/\\b(?:comment|endcomment|if|elsif|else|endif|unless|endunless|for|endfor|case|endcase|when|in|break|assign|continue|limit|offset|range|reversed|raw|endraw|capture|endcapture|tablerow|endtablerow)\\b/,number:/\\b0b[01]+\\b|\\b0x[\\da-f]*\\.?[\\da-fp-]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?[df]?/i,operator:{pattern:/(^|[^.])(?:\\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\\|[|=]?|\\*=?|\\/=?|%=?|\\^=?|[?:~])/m,lookbehind:!0},\"function\":{pattern:/(^|[\\s;|&])(?:append|prepend|capitalize|cycle|cols|increment|decrement|abs|at_least|at_most|ceil|compact|concat|date|default|divided_by|downcase|escape|escape_once|first|floor|join|last|lstrip|map|minus|modulo|newline_to_br|plus|remove|remove_first|replace|replace_first|reverse|round|rstrip|size|slice|sort|sort_natural|split|strip|strip_html|strip_newlines|times|truncate|truncatewords|uniq|upcase|url_decode|url_encode|include|paginate)(?=$|[\\s;|&])/,lookbehind:!0}};\n!function(e){function n(e){return new RegExp(\"(\\\\()\"+e+\"(?=[\\\\s\\\\)])\")}function a(e){return new RegExp(\"([\\\\s([])\"+e+\"(?=[\\\\s)])\")}var t=\"[-+*/_~!@$%^=<>{}\\\\w]+\",r=\"&\"+t,i=\"(\\\\()\",s=\"(?=\\\\))\",o=\"(?=\\\\s)\",l={heading:{pattern:/;;;.*/,alias:[\"comment\",\"title\"]},comment:/;.*/,string:{pattern:/\"(?:[^\"\\\\]*|\\\\.)*\"/,greedy:!0,inside:{argument:/[-A-Z]+(?=[.,\\s])/,symbol:new RegExp(\"`\"+t+\"'\")}},\"quoted-symbol\":{pattern:new RegExp(\"#?'\"+t),alias:[\"variable\",\"symbol\"]},\"lisp-property\":{pattern:new RegExp(\":\"+t),alias:\"property\"},splice:{pattern:new RegExp(\",@?\"+t),alias:[\"symbol\",\"variable\"]},keyword:[{pattern:new RegExp(i+\"(?:(?:lexical-)?let\\\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)\"+o),lookbehind:!0},{pattern:new RegExp(i+\"(?:for|do|collect|return|finally|append|concat|in|by)\"+o),lookbehind:!0}],declare:{pattern:n(\"declare\"),lookbehind:!0,alias:\"keyword\"},interactive:{pattern:n(\"interactive\"),lookbehind:!0,alias:\"keyword\"},\"boolean\":{pattern:a(\"(?:t|nil)\"),lookbehind:!0},number:{pattern:a(\"[-+]?\\\\d+(?:\\\\.\\\\d*)?\"),lookbehind:!0},defvar:{pattern:new RegExp(i+\"def(?:var|const|custom|group)\\\\s+\"+t),lookbehind:!0,inside:{keyword:/^def[a-z]+/,variable:new RegExp(t)}},defun:{pattern:new RegExp(i+\"(?:cl-)?(?:defun\\\\*?|defmacro)\\\\s+\"+t+\"\\\\s+\\\\([\\\\s\\\\S]*?\\\\)\"),lookbehind:!0,inside:{keyword:/^(?:cl-)?def\\S+/,arguments:null,\"function\":{pattern:new RegExp(\"(^\\\\s)\"+t),lookbehind:!0},punctuation:/[()]/}},lambda:{pattern:new RegExp(i+\"lambda\\\\s+\\\\((?:&?\"+t+\"\\\\s*)*\\\\)\"),lookbehind:!0,inside:{keyword:/^lambda/,arguments:null,punctuation:/[()]/}},car:{pattern:new RegExp(i+t),lookbehind:!0},punctuation:[/(['`,]?\\(|[)\\[\\]])/,{pattern:/(\\s)\\.(?=\\s)/,lookbehind:!0}]},p={\"lisp-marker\":new RegExp(r),rest:{argument:{pattern:new RegExp(t),alias:\"variable\"},varform:{pattern:new RegExp(i+t+\"\\\\s+\\\\S[\\\\s\\\\S]*\"+s),lookbehind:!0,inside:{string:l.string,\"boolean\":l.boolean,number:l.number,symbol:l.symbol,punctuation:/[()]/}}}},d=\"\\\\S+(?:\\\\s+\\\\S+)*\",u={pattern:new RegExp(i+\"[\\\\s\\\\S]*\"+s),lookbehind:!0,inside:{\"rest-vars\":{pattern:new RegExp(\"&(?:rest|body)\\\\s+\"+d),inside:p},\"other-marker-vars\":{pattern:new RegExp(\"&(?:optional|aux)\\\\s+\"+d),inside:p},keys:{pattern:new RegExp(\"&key\\\\s+\"+d+\"(?:\\\\s+&allow-other-keys)?\"),inside:p},argument:{pattern:new RegExp(t),alias:\"variable\"},punctuation:/[()]/}};l.lambda.inside.arguments=u,l.defun.inside.arguments=e.util.clone(u),l.defun.inside.arguments.inside.sublist=u,e.languages.lisp=l,e.languages.elisp=l,e.languages.emacs=l,e.languages[\"emacs-lisp\"]=l}(Prism);\nPrism.languages.livescript={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0},{pattern:/(^|[^\\\\])#.*/,lookbehind:!0}],\"interpolated-string\":{pattern:/(^|[^\"])(\"\"\"|\")(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2(?!\")/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(^|[^\\\\])#[a-z_](?:-?[a-z]|[\\d_])*/m,lookbehind:!0},interpolation:{pattern:/(^|[^\\\\])#\\{[^}]+\\}/m,lookbehind:!0,inside:{\"interpolation-punctuation\":{pattern:/^#\\{|\\}$/,alias:\"variable\"}}},string:/[\\s\\S]+/}},string:[{pattern:/('''|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,greedy:!0},{pattern:/<\\[[\\s\\S]*?\\]>/,greedy:!0},/\\\\[^\\s,;\\])}]+/],regex:[{pattern:/\\/\\/(\\[.+?]|\\\\.|(?!\\/\\/)[^\\\\])+\\/\\/[gimyu]{0,5}/,greedy:!0,inside:{comment:{pattern:/(^|[^\\\\])#.*/,lookbehind:!0}}},{pattern:/\\/(\\[.+?]|\\\\.|[^\\/\\\\\\r\\n])+\\/[gimyu]{0,5}/,greedy:!0}],keyword:{pattern:/(^|(?!-).)\\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\\b/m,lookbehind:!0},\"keyword-operator\":{pattern:/(^|[^-])\\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?:nt| not)?|not|of|or|til|to|typeof|with|xor)(?!-)\\b)/m,lookbehind:!0,alias:\"operator\"},\"boolean\":{pattern:/(^|[^-])\\b(?:false|no|off|on|true|yes)(?!-)\\b/m,lookbehind:!0},argument:{pattern:/(^|(?!\\.&\\.)[^&])&(?!&)\\d*/m,lookbehind:!0,alias:\"variable\"},number:/\\b(?:\\d+~[\\da-z]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[a-z]\\w*)?)/i,identifier:/[a-z_](?:-?[a-z]|[\\d_])*/i,operator:[{pattern:/( )\\.(?= )/,lookbehind:!0},/\\.(?:[=~]|\\.\\.?)|\\.(?:[&|^]|<<|>>>?)\\.|:(?:=|:=?)|&&|\\|[|>]|<(?:<[>=?]?|-(?:->?|>)?|\\+\\+?|@@?|%%?|\\*\\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\\^\\^?|[\\/?]/],punctuation:/[(){}\\[\\]|.,:;`]/},Prism.languages.livescript[\"interpolated-string\"].inside.interpolation.inside.rest=Prism.languages.livescript;\nPrism.languages.lolcode={comment:[/\\bOBTW\\s+[\\s\\S]*?\\s+TLDR\\b/,/\\bBTW.+/],string:{pattern:/\"(?::.|[^\"])*\"/,inside:{variable:/:\\{[^}]+\\}/,symbol:[/:\\([a-f\\d]+\\)/i,/:\\[[^\\]]+\\]/,/:[)>o\":]/]},greedy:!0},number:/(?:\\B-)?(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)/,symbol:{pattern:/(^|\\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\\s)/}},label:{pattern:/((?:^|\\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\\w*/,lookbehind:!0,alias:\"string\"},\"function\":{pattern:/((?:^|\\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\\w*/,lookbehind:!0},keyword:[{pattern:/(^|\\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\\?|YA RLY|NO WAI|OIC|MEBBE|WTF\\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\\s|,|$)/,lookbehind:!0},/'Z(?=\\s|,|$)/],\"boolean\":{pattern:/(^|\\s)(?:WIN|FAIL)(?=\\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\\s)IT(?=\\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\\s|,|$)/,lookbehind:!0},punctuation:/\\.{3}|…|,|!/};\nPrism.languages.lua={comment:/^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,string:{pattern:/([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\z(?:\\r\\n|\\s)|\\\\(?:\\r\\n|[\\s\\S]))*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/,greedy:!0},number:/\\b0x[a-f\\d]+\\.?[a-f\\d]*(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|\\.?\\d*(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,keyword:/\\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\\b/,\"function\":/(?!\\d)\\w+(?=\\s*(?:[({]))/,operator:[/[-+*%^&|#]|\\/\\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\\.\\.(?!\\.)/,lookbehind:!0}],punctuation:/[\\[\\](){},;]|\\.+|:+/};\nPrism.languages.makefile={comment:{pattern:/(^|[^\\\\])#(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/,lookbehind:!0},string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},builtin:/\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,symbol:{pattern:/^[^:=\\r\\n]+(?=\\s*:(?!=))/m,inside:{variable:/\\$+(?:[^(){}:#=\\s]+|(?=[({]))/}},variable:/\\$+(?:[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,keyword:[/-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/,{pattern:/(\\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \\t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/};\nPrism.languages.markdown=Prism.languages.extend(\"markup\",{}),Prism.languages.insertBefore(\"markdown\",\"prolog\",{blockquote:{pattern:/^>(?:[\\t ]*>)*/m,alias:\"punctuation\"},code:[{pattern:/^(?: {4}|\\t).+/m,alias:\"keyword\"},{pattern:/``.+?``|`[^`\\n]+`/,alias:\"keyword\"}],title:[{pattern:/\\w+.*(?:\\r?\\n|\\r)(?:==+|--+)/,alias:\"important\",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\\s*)#+.+/m,lookbehind:!0,alias:\"important\",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,lookbehind:!0,alias:\"punctuation\"},list:{pattern:/(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,lookbehind:!0,alias:\"punctuation\"},\"url-reference\":{pattern:/!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,inside:{variable:{pattern:/^(!?\\[)[^\\]]+/,lookbehind:!0},string:/(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,punctuation:/^[\\[\\]!:]|[<>]/},alias:\"url\"},bold:{pattern:/(^|[^\\\\])(\\*\\*|__)(?:(?:\\r?\\n|\\r)(?!\\r?\\n|\\r)|.)+?\\2/,lookbehind:!0,inside:{punctuation:/^\\*\\*|^__|\\*\\*$|__$/}},italic:{pattern:/(^|[^\\\\])([*_])(?:(?:\\r?\\n|\\r)(?!\\r?\\n|\\r)|.)+?\\2/,lookbehind:!0,inside:{punctuation:/^[*_]|[*_]$/}},url:{pattern:/!?\\[[^\\]]+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)| ?\\[[^\\]\\n]*\\])/,inside:{variable:{pattern:/(!?\\[)[^\\]]+(?=\\]$)/,lookbehind:!0},string:{pattern:/\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/}}}}),Prism.languages.markdown.bold.inside.url=Prism.languages.markdown.url,Prism.languages.markdown.italic.inside.url=Prism.languages.markdown.url,Prism.languages.markdown.bold.inside.italic=Prism.languages.markdown.italic,Prism.languages.markdown.italic.inside.bold=Prism.languages.markdown.bold;\n!function(e){e.languages.erb=e.languages.extend(\"ruby\",{}),e.languages.insertBefore(\"erb\",\"comment\",{delimiter:{pattern:/^<%=?|%>$/,alias:\"punctuation\"}}),e.hooks.add(\"before-tokenize\",function(a){var n=/<%=?[\\s\\S]+?%>/g;e.languages[\"markup-templating\"].buildPlaceholders(a,\"erb\",n)}),e.hooks.add(\"after-tokenize\",function(a){e.languages[\"markup-templating\"].tokenizePlaceholders(a,\"erb\")})}(Prism);\nPrism.languages.matlab={comment:[/%\\{[\\s\\S]*?\\}%/,/%.+/],string:{pattern:/\\B'(?:''|[^'\\r\\n])*'/,greedy:!0},number:/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[eE][+-]?\\d+)?(?:[ij])?|\\b[ij]\\b/,keyword:/\\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\\b/,\"function\":/(?!\\d)\\w+(?=\\s*\\()/,operator:/\\.?[*^\\/\\\\']|[+\\-:@]|[<>=~]=?|&&?|\\|\\|?/,punctuation:/\\.{3}|[.,;\\[\\](){}!]/};\nPrism.languages.mel={comment:/\\/\\/.*/,code:{pattern:/`(?:\\\\.|[^\\\\`\\r\\n])*`/,greedy:!0,alias:\"italic\",inside:{delimiter:{pattern:/^`|`$/,alias:\"punctuation\"}}},string:{pattern:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,greedy:!0},variable:/\\$\\w+/,number:/\\b0x[\\da-fA-F]+\\b|\\b\\d+\\.?\\d*|\\B\\.\\d+/,flag:{pattern:/-[^\\d\\W]\\w*/,alias:\"operator\"},keyword:/\\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\\b/,\"function\":/\\w+(?=\\()|\\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\\b/,operator:[/\\+[+=]?|-[-=]?|&&|\\|\\||[<>]=|[*\\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\\[\\](){}]/},Prism.languages.mel.code.inside.rest=Prism.languages.mel;\nPrism.languages.mizar={comment:/::.+/,keyword:/@proof\\b|\\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\\b/,parameter:{pattern:/\\$(?:10|\\d)/,alias:\"variable\"},variable:/\\w+(?=:)/,number:/(?:\\b|-)\\d+\\b/,operator:/\\.\\.\\.|->|&|\\.?=/,punctuation:/\\(#|#\\)|[,:;\\[\\](){}]/};\nPrism.languages.monkey={string:/\"[^\"\\r\\n]*\"/,comment:[{pattern:/^#Rem\\s+[\\s\\S]*?^#End/im,greedy:!0},{pattern:/'.+/,greedy:!0}],preprocessor:{pattern:/(^[ \\t]*)#.+/m,lookbehind:!0,alias:\"comment\"},\"function\":/\\w+(?=\\()/,\"type-char\":{pattern:/(\\w)[?%#$]/,lookbehind:!0,alias:\"variable\"},number:{pattern:/((?:\\.\\.)?)(?:(?:\\b|\\B-\\.?|\\B\\.)\\d+(?:(?!\\.\\.)\\.\\d*)?|\\$[\\da-f]+)/i,lookbehind:!0},keyword:/\\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\\b/i,operator:/\\.\\.|<[=>]?|>=?|:?=|(?:[+\\-*\\/&~|]|\\b(?:Mod|Shl|Shr)\\b)=?|\\b(?:And|Not|Or)\\b/i,punctuation:/[.,:;()\\[\\]]/};\nPrism.languages.n4js=Prism.languages.extend(\"javascript\",{keyword:/\\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/}),Prism.languages.insertBefore(\"n4js\",\"constant\",{annotation:{pattern:/@+\\w+/,alias:\"operator\"}}),Prism.languages.n4jsd=Prism.languages.n4js;\nPrism.languages.nasm={comment:/;.*$/m,string:/([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,label:{pattern:/(^\\s*)[A-Za-z._?$][\\w.?$@~#]*:/m,lookbehind:!0,alias:\"function\"},keyword:[/\\[?BITS (?:16|32|64)\\]?/,{pattern:/(^\\s*)section\\s*[a-zA-Z.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\\r\\n]*/i,/(?:CPU|FLOAT|DEFAULT).*$/m],register:{pattern:/\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\\b/i,alias:\"variable\"},number:/(?:\\b|(?=\\$))(?:0[hx][\\da-f]*\\.?[\\da-f]+(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|\\d*\\.?\\d+(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,operator:/[\\[\\]*+\\-\\/%<>=&|$!]/};\nPrism.languages.nginx=Prism.languages.extend(\"clike\",{comment:{pattern:/(^|[^\"{\\\\])#.*/,lookbehind:!0},keyword:/\\b(?:CONTENT_|DOCUMENT_|GATEWAY_|HTTP_|HTTPS|if_not_empty|PATH_|QUERY_|REDIRECT_|REMOTE_|REQUEST_|SCGI|SCRIPT_|SERVER_|http|events|accept_mutex|accept_mutex_delay|access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth|auth_basic|auth_basic_user_file|auth_http|auth_http_header|auth_http_timeout|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|debug_connection|debug_points|default_type|deny|devpoll_changes|devpoll_events|directio|directio_alignment|disable_symlinks|empty_gif|env|epoll_events|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_redirect_errors|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|google_perftools_profiles|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|imap_capabilities|imap_client_buffer|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|kqueue_changes|kqueue_events|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|lock_file|log_format|log_format_combined|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|multi_accept|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|pop3_auth|pop3_capabilities|port_in_redirect|post_action|postpone_output|protocol|proxy|proxy_buffer|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_error_message|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_read_timeout|proxy_redirect|proxy_redirect_errors|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|proxy_timeout|proxy_upstream_fail_timeout|proxy_upstream_max_fails|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|rtsig_overflow_events|rtsig_overflow_test|rtsig_overflow_threshold|rtsig_signo|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|smtp_auth|smtp_capabilities|so_keepalive|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssi_value_length|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|starttls|stub_status|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timeout|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|use|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_rlimit_sigpending|working_directory|xclient|xml_entities|xslt_entities|xslt_stylesheet|xslt_types)\\b/i}),Prism.languages.insertBefore(\"nginx\",\"keyword\",{variable:/\\$[a-z_]+/i});\nPrism.languages.nim={comment:/#.*/,string:{pattern:/(?:(?:\\b(?!\\d)(?:\\w|\\\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:\"\"\"[\\s\\S]*?\"\"\"(?!\")|\"(?:\\\\[\\s\\S]|\"\"|[^\"\\\\])*\")|'(?:\\\\(?:\\d+|x[\\da-fA-F]{2}|.)|[^'])')/,greedy:!0},number:/\\b(?:0[xXoObB][\\da-fA-F_]+|\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:[eE][+-]?\\d[\\d_]*)?)(?:'?[iuf]\\d*)?/,keyword:/\\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\\b/,\"function\":{pattern:/(?:(?!\\d)(?:\\w|\\\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\\r\\n]+`)\\*?(?:\\[[^\\]]+\\])?(?=\\s*\\()/,inside:{operator:/\\*$/}},ignore:{pattern:/`[^`\\r\\n]+`/,inside:{punctuation:/`/}},operator:{pattern:/(^|[({\\[](?=\\.\\.)|(?![({\\[]\\.).)(?:(?:[=+\\-*\\/<>@$~&%|!?^:\\\\]|\\.\\.|\\.(?![)}\\]]))+|\\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\\b)/m,lookbehind:!0},punctuation:/[({\\[]\\.|\\.[)}\\]]|[`(){}\\[\\],:]/};\nPrism.languages.nix={comment:/\\/\\*[\\s\\S]*?\\*\\/|#.*/,string:{pattern:/\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|''(?:(?!'')[\\s\\S]|''(?:'|\\\\|\\$\\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\\\])\\$\\{(?:[^}]|\\{[^}]*\\})*}/,lookbehind:!0,inside:{antiquotation:{pattern:/^\\$(?=\\{)/,alias:\"variable\"}}}}},url:[/\\b(?:[a-z]{3,7}:\\/\\/)[\\w\\-+%~\\/.:#=?&]+/,{pattern:/([^\\/])(?:[\\w\\-+%~.:#=?&]*(?!\\/\\/)[\\w\\-+%~\\/.:#=?&])?(?!\\/\\/)\\/[\\w\\-+%~\\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\\$(?=\\{)/,alias:\"variable\"},number:/\\b\\d+\\b/,keyword:/\\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\\b/,\"function\":/\\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\\b|\\bfoldl'\\B/,\"boolean\":/\\b(?:true|false)\\b/,operator:/[=!<>]=?|\\+\\+?|\\|\\||&&|\\/\\/|->?|[?@]/,punctuation:/[{}()[\\].,:;]/},Prism.languages.nix.string.inside.interpolation.inside.rest=Prism.languages.nix;\nPrism.languages.nsis={comment:{pattern:/(^|[^\\\\])(\\/\\*[\\s\\S]*?\\*\\/|[#;].*)/,lookbehind:!0},string:{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},keyword:{pattern:/(^\\s*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|Banner|BG(?:Font|Gradient|Image)|BrandingText|BringToFront|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|Name|Nop|ns(?:Dialogs|Exec)|NSISdl|OutFile|Page(?:Callbacks)?|PE(?:DllCharacteristics|SubsysVer)|Pop|Push|Quit|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Unicode|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle)\\b/m,lookbehind:!0},property:/\\b(?:admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user|ARCHIVE|FILE_(ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK((CR|CU|LM)(32|64)?|DD|PD|U)|HKEY_(CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)\\b/,constant:/\\${[\\w\\.:\\^-]+}|\\$\\([\\w\\.:\\^-]+\\)/i,variable:/\\$\\w+/i,number:/\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,operator:/--?|\\+\\+?|<=?|>=?|==?=?|&&?|\\|\\|?|[?*\\/~^%]/,punctuation:/[{}[\\];(),.:]/,important:{pattern:/(^\\s*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\\b/im,lookbehind:!0}};\nPrism.languages.objectivec=Prism.languages.extend(\"c\",{keyword:/\\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,string:/(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|@\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,operator:/-[->]?|\\+\\+?|!=?|<>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/});\nPrism.languages.ocaml={comment:/\\(\\*[\\s\\S]*?\\*\\)/,string:[{pattern:/\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,greedy:!0},{pattern:/(['`])(?:\\\\(?:\\d+|x[\\da-f]+|.)|(?!\\1)[^\\\\\\r\\n])\\1/i,greedy:!0}],number:/\\b(?:0x[\\da-f][\\da-f_]+|(?:0[bo])?\\d[\\d_]*\\.?[\\d_]*(?:e[+-]?[\\d_]+)?)/i,type:{pattern:/\\B['`]\\w*/,alias:\"variable\"},directive:{pattern:/\\B#\\w+/,alias:\"function\"},keyword:/\\b(?: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|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\\b/,\"boolean\":/\\b(?:false|true)\\b/,operator:/:=|[=<>@^|&+\\-*\\/$%!?~][!$%&*+\\-.\\/:<=>?@^|~]*|\\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\\b/,punctuation:/[(){}\\[\\]|_.,:;]/};\n!function(E){E.languages.opencl=E.languages.extend(\"c\",{keyword:/\\b(?:__attribute__|(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|auto|break|case|cl_(?:image_format|mem_fence_flags)|clk_event_t|complex|const|continue|default|do|(?:float|double)(?:16(?:x(?:1|16|2|4|8))?|1x(?:1|16|2|4|8)|2(?:x(?:1|16|2|4|8))?|3|4(?:x(?:1|16|2|4|8))?|8(?:x(?:1|16|2|4|8))?)?|else|enum|event_t|extern|for|goto|(?:u?(?:char|short|int|long)|half|quad|bool)(?:2|3|4|8|16)?|if|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|imaginary|inline|intptr_t|ndrange_t|packed|pipe|ptrdiff_t|queue_t|register|reserve_id_t|restrict|return|sampler_t|signed|size_t|sizeof|static|struct|switch|typedef|uintptr_t|uniform|union|unsigned|void|volatile|while)\\b/,\"function-opencl-kernel\":{pattern:/\\b(?:abs(?:_diff)?|a?(?:cos|sin)(?:h|pi)?|add_sat|aligned|all|and|any|async(?:_work_group_copy|_work_group_strided_copy)?|atan(?:2?(?:pi)?|h)?|atom_(?:add|and|cmpxchg|dec|inc|max|min|or|sub|xchg|xor)|barrier|bitselect|cbrt|ceil|clamp|clz|copies|copysign|cross|degrees|distance|dot|endian|erf|erfc|exp(?:2|10)?|expm1|fabs|fast_(?:distance|length|normalize)|fdim|floor|fma|fmax|fmin|fract|frexp|fro|from|get_(?:global_(?:id|offset|size)|group_id|image_(?:channel_data_type|channel_order|depth|dim|height|width)|local(?:_id|_size)|num_groups|work_dim)|hadd|(?:half|native)_(?:cos|divide|exp(?:2|10)?|log(?:2|10)?|powr|recip|r?sqrt|sin|tan)|hypot|ilogb|is(?:equal|finite|greater(?:equal)?|inf|less(?:equal|greater)?|nan|normal|notequal|(?:un)?ordered)|ldexp|length|lgamma|lgamma_r|log(?:b|1p|2|10)?|mad(?:24|_hi|_sat)?|max|mem(?:_fence)?|min|mix|modf|mul24|mul_hi|nan|nextafter|normalize|pow[nr]?|prefetch|radians|read_(?:image)(?:f|h|u?i)|read_mem_fence|remainder|remquo|reqd_work_group_size|rhadd|rint|rootn|rotate|round|rsqrt|select|shuffle2?|sign|signbit|sincos|smoothstep|sqrt|step|sub_sat|tan|tanh|tanpi|tgamma|to|trunc|upsample|vec_(?:step|type_hint)|v(?:load|store)(?:_half)?(?:2|3|4|8|16)?|v(?:loada_half|storea?(?:_half)?)(?:2|3|4|8|16)?(?:_(?:rte|rtn|rtp|rtz))?|wait_group_events|work_group_size_hint|write_image(?:f|h|u?i)|write_mem_fence)\\b/,alias:\"function\"},\"constant-opencl-kernel\":{pattern:/\\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:LOCAL|GLOBAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT)_(?:DIG|EPSILON|MANT_DIG|(?:MIN|MAX)(?:(?:_10)?_EXP)?)|FLT_RADIX|HUGE_VALF|INFINITY|(?:INT|LONG|SCHAR|SHRT|UCHAR|UINT|ULONG)_(?:MAX|MIN)|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:10|2)E?|PI[24]?|SQRT(?:1_2|2))|NAN)\\b/,alias:\"constant\"}});var _={\"type-opencl-host\":{pattern:/\\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|short|int|long)|float|double)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\\b/,alias:\"keyword\"},\"boolean-opencl-host\":{pattern:/\\bCL_(?:TRUE|FALSE)\\b/,alias:\"boolean\"},\"constant-opencl-host\":{pattern:/\\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:16|24|8|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\\b/,alias:\"constant\"},\"function-opencl-host\":{pattern:/\\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|Kernel|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,alias:\"function\"}};E.languages.insertBefore(\"c\",\"keyword\",_),_[\"type-opencl-host-c++\"]={pattern:/\\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|Sampler|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|UserEvent)\\b/,alias:\"keyword\"},E.languages.insertBefore(\"cpp\",\"keyword\",_)}(Prism);\nPrism.languages.oz={comment:/\\/\\*[\\s\\S]*?\\*\\/|%.*/,string:{pattern:/\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,greedy:!0},atom:{pattern:/'(?:[^'\\\\]|\\\\[\\s\\S])*'/,greedy:!0,alias:\"builtin\"},keyword:/[$_]|\\[\\]|\\b(?:at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\\b/,\"function\":[/[a-z][A-Za-z\\d]*(?=\\()/,{pattern:/(\\{)[A-Z][A-Za-z\\d]*/,lookbehind:!0}],number:/\\b(?:0[bx][\\da-f]+|\\d+\\.?\\d*(?:e~?\\d+)?\\b)|&(?:[^\\\\]|\\\\(?:\\d{3}|.))/i,variable:/\\b[A-Z][A-Za-z\\d]*|`(?:[^`\\\\]|\\\\.)+`/,\"attr-name\":/\\w+(?=:)/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\\\=:?|!!?|[|#+\\-*\\/,~^@]|\\b(?:andthen|div|mod|orelse)\\b/,punctuation:/[\\[\\](){}.:;?]/};\nPrism.languages.parigp={comment:/\\/\\*[\\s\\S]*?\\*\\/|\\\\\\\\.*/,string:{pattern:/\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,greedy:!0},keyword:function(){var r=[\"breakpoint\",\"break\",\"dbg_down\",\"dbg_err\",\"dbg_up\",\"dbg_x\",\"forcomposite\",\"fordiv\",\"forell\",\"forpart\",\"forprime\",\"forstep\",\"forsubgroup\",\"forvec\",\"for\",\"iferr\",\"if\",\"local\",\"my\",\"next\",\"return\",\"until\",\"while\"];return r=r.map(function(r){return r.split(\"\").join(\" *\")}).join(\"|\"),RegExp(\"\\\\b(?:\"+r+\")\\\\b\")}(),\"function\":/\\w[\\w ]*?(?= *\\()/,number:{pattern:/((?:\\. *\\. *)?)(?:\\d(?: *\\d)*(?: *(?!\\. *\\.)\\.(?: *\\d)*)?|\\. *\\d(?: *\\d)*)(?: *e *[+-]? *\\d(?: *\\d)*)?/i,lookbehind:!0},operator:/\\. *\\.|[*\\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\\+(?: *[+=])?|-(?: *[-=>])?|<(?:(?: *<)?(?: *=)?| *>)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\\\(?: *\\/)?(?: *=)?|&(?: *&)?|\\| *\\||['#~^]/,punctuation:/[\\[\\]{}().,:;|]/};\nPrism.languages.parser=Prism.languages.extend(\"markup\",{keyword:{pattern:/(^|[^^])(?:\\^(?:case|eval|for|if|switch|throw)\\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\\B\\$(?:\\w+|(?=[.{]))(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,lookbehind:!0,inside:{punctuation:/\\.|:+/}},\"function\":{pattern:/(^|[^^])\\B[@^]\\w+(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\\.|:+/}},escape:{pattern:/\\^(?:[$^;@()\\[\\]{}\"':]|#[a-f\\d]*)/i,alias:\"builtin\"},punctuation:/[\\[\\](){};]/}),Prism.languages.insertBefore(\"parser\",\"keyword\",{\"parser-comment\":{pattern:/(\\s)#.*/,lookbehind:!0,alias:\"comment\"},expression:{pattern:/(^|[^^])\\((?:[^()]|\\((?:[^()]|\\((?:[^()])*\\))*\\))*\\)/,greedy:!0,lookbehind:!0,inside:{string:{pattern:/(^|[^^])([\"'])(?:(?!\\2)[^^]|\\^[\\s\\S])*\\2/,lookbehind:!0},keyword:Prism.languages.parser.keyword,variable:Prism.languages.parser.variable,\"function\":Prism.languages.parser.function,\"boolean\":/\\b(?:true|false)\\b/,number:/\\b(?:0x[a-f\\d]+|\\d+\\.?\\d*(?:e[+-]?\\d+)?)\\b/i,escape:Prism.languages.parser.escape,operator:/[~+*\\/\\\\%]|!(?:\\|\\|?|=)?|&&?|\\|\\|?|==|<[<=]?|>[>=]?|-[fd]?|\\b(?:def|eq|ge|gt|in|is|le|lt|ne)\\b/,punctuation:Prism.languages.parser.punctuation}}}),Prism.languages.insertBefore(\"inside\",\"punctuation\",{expression:Prism.languages.parser.expression,keyword:Prism.languages.parser.keyword,variable:Prism.languages.parser.variable,\"function\":Prism.languages.parser.function,escape:Prism.languages.parser.escape,\"parser-punctuation\":{pattern:Prism.languages.parser.punctuation,alias:\"punctuation\"}},Prism.languages.parser.tag.inside[\"attr-value\"]);\nPrism.languages.pascal={comment:[/\\(\\*[\\s\\S]+?\\*\\)/,/\\{[\\s\\S]+?\\}/,/\\/\\/.*/],string:{pattern:/(?:'(?:''|[^'\\r\\n])*'|#[&$%]?[a-f\\d]+)+|\\^[a-z]/i,greedy:!0},keyword:[{pattern:/(^|[^&])\\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\\b/i,lookbehind:!0},{pattern:/(^|[^&])\\b(?:dispose|exit|false|new|true)\\b/i,lookbehind:!0},{pattern:/(^|[^&])\\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\\b/i,lookbehind:!0},{pattern:/(^|[^&])\\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\\b/i,lookbehind:!0}],number:[/(?:[&%]\\d+|\\$[a-f\\d]+)/i,/\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i],operator:[/\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=]/i,{pattern:/(^|[^&])\\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\\b/,lookbehind:!0}],punctuation:/\\(\\.|\\.\\)|[()\\[\\]:;,.]/},Prism.languages.objectpascal=Prism.languages.pascal;\nPrism.languages.perl={comment:[{pattern:/(^\\s*)=\\w+[\\s\\S]*?=cut.*/m,lookbehind:!0},{pattern:/(^|[^\\\\$])#.*/,lookbehind:!0}],string:[{pattern:/\\b(?:q|qq|qx|qw)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,greedy:!0},{pattern:/\\b(?:q|qq|qx|qw)\\s+([a-zA-Z0-9])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,greedy:!0},{pattern:/\\b(?:q|qq|qx|qw)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)/,greedy:!0},{pattern:/\\b(?:q|qq|qx|qw)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}/,greedy:!0},{pattern:/\\b(?:q|qq|qx|qw)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]/,greedy:!0},{pattern:/\\b(?:q|qq|qx|qw)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>/,greedy:!0},{pattern:/(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,greedy:!0},{pattern:/'(?:[^'\\\\\\r\\n]|\\\\.)*'/,greedy:!0}],regex:[{pattern:/\\b(?:m|qr)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[msixpodualngc]*/,greedy:!0},{pattern:/\\b(?:m|qr)\\s+([a-zA-Z0-9])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[msixpodualngc]*/,greedy:!0},{pattern:/\\b(?:m|qr)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[msixpodualngc]*/,greedy:!0},{pattern:/\\b(?:m|qr)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}[msixpodualngc]*/,greedy:!0},{pattern:/\\b(?:m|qr)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\][msixpodualngc]*/,greedy:!0},{pattern:/\\b(?:m|qr)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>[msixpodualngc]*/,greedy:!0},{pattern:/(^|[^-]\\b)(?:s|tr|y)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\\b)(?:s|tr|y)\\s+([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\\b)(?:s|tr|y)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\\b)(?:s|tr|y)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\\b)(?:s|tr|y)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\][msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\\b)(?:s|tr|y)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\/[msixpodualngc]*(?=\\s*(?:$|[\\r\\n,.;})&|\\-+*~<>!?^]|(lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\\b))/,greedy:!0}],variable:[/[&*$@%]\\{\\^[A-Z]+\\}/,/[&*$@%]\\^[A-Z_]/,/[&*$@%]#?(?=\\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+)+(?:::)*/i,/[&*$@%]\\d+/,/(?!%=)[$@%][!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\\S*>|\\b_\\b/,alias:\"symbol\"},vstring:{pattern:/v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,alias:\"string\"},\"function\":{pattern:/sub [a-z0-9_]+/i,inside:{keyword:/sub/}},keyword:/\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,number:/\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0b[01](?:_?[01])*|(?:\\d(?:_?\\d)*)?\\.?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|\\+[+=]?|-[-=>]?|\\*\\*?=?|\\/\\/?=?|=[=~>]?|~[~=]?|\\|\\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\\b/,punctuation:/[{}[\\];(),:]/};\n!function(e){e.languages.php=e.languages.extend(\"clike\",{keyword:/\\b(?:and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\\b/i,constant:/\\b[A-Z0-9_]{2,}\\b/,comment:{pattern:/(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,lookbehind:!0}}),e.languages.insertBefore(\"php\",\"string\",{\"shell-comment\":{pattern:/(^|[^\\\\])#.*/,lookbehind:!0,alias:\"comment\"}}),e.languages.insertBefore(\"php\",\"keyword\",{delimiter:{pattern:/\\?>|<\\?(?:php|=)?/i,alias:\"important\"},variable:/\\$+(?:\\w+\\b|(?={))/i,\"package\":{pattern:/(\\\\|namespace\\s+|use\\s+)[\\w\\\\]+/,lookbehind:!0,inside:{punctuation:/\\\\/}}}),e.languages.insertBefore(\"php\",\"operator\",{property:{pattern:/(->)[\\w]+/,lookbehind:!0}}),e.languages.insertBefore(\"php\",\"string\",{\"nowdoc-string\":{pattern:/<<<'([^']+)'(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?\\1;/,greedy:!0,alias:\"string\",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\\w*;$/i,alias:\"symbol\",inside:{punctuation:/^<<<'?|[';]$/}}}},\"heredoc-string\":{pattern:/<<<(?:\"([^\"]+)\"(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?\\1;|([a-z_]\\w*)(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?\\2;)/i,greedy:!0,alias:\"string\",inside:{delimiter:{pattern:/^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,alias:\"symbol\",inside:{punctuation:/^<<<\"?|[\";]$/}},interpolation:null}},\"single-quoted-string\":{pattern:/'(?:\\\\[\\s\\S]|[^\\\\'])*'/,greedy:!0,alias:\"string\"},\"double-quoted-string\":{pattern:/\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,greedy:!0,alias:\"string\",inside:{interpolation:null}}}),delete e.languages.php.string;var n={pattern:/{\\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[.+?]|->\\w+)*)/,lookbehind:!0,inside:{rest:e.languages.php}};e.languages.php[\"heredoc-string\"].inside.interpolation=n,e.languages.php[\"double-quoted-string\"].inside.interpolation=n,e.hooks.add(\"before-tokenize\",function(n){if(/(?:<\\?php|<\\?)/gi.test(n.code)){var i=/(?:<\\?php|<\\?)[\\s\\S]*?(?:\\?>|$)/gi;e.languages[\"markup-templating\"].buildPlaceholders(n,\"php\",i)}}),e.hooks.add(\"after-tokenize\",function(n){e.languages[\"markup-templating\"].tokenizePlaceholders(n,\"php\")})}(Prism);\nPrism.languages.insertBefore(\"php\",\"variable\",{\"this\":/\\$this\\b/,global:/\\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\\b/,scope:{pattern:/\\b[\\w\\\\]+::/,inside:{keyword:/static|self|parent/,punctuation:/::|\\\\/}}});\nPrism.languages.sql={comment:{pattern:/(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,lookbehind:!0},string:{pattern:/(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2/,greedy:!0,lookbehind:!0},variable:/@[\\w.$]+|@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\"function\":/\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i,keyword:/\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\"boolean\":/\\b(?:TRUE|FALSE|NULL)\\b/i,number:/\\b0x[\\da-f]+\\b|\\b\\d+\\.?\\d*|\\B\\.\\d+\\b/i,operator:/[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,punctuation:/[;[\\]()`,.]/};\nPrism.languages.powershell={comment:[{pattern:/(^|[^`])<#[\\s\\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/\"(?:`[\\s\\S]|[^`\"])*\"/,greedy:!0,inside:{\"function\":{pattern:/(^|[^`])\\$\\((?:\\$\\(.*?\\)|(?!\\$\\()[^\\r\\n)])*\\)/,lookbehind:!0,inside:{}}}},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\\[[a-z](?:\\[(?:\\[[^\\]]*]|[^\\[\\]])*]|[^\\[\\]])*]/i,\"boolean\":/\\$(?:true|false)\\b/i,variable:/\\$\\w+\\b/i,\"function\":[/\\b(?:Add-(?:Computer|Content|History|Member|PSSnapin|Type)|Checkpoint-Computer|Clear-(?:Content|EventLog|History|Item|ItemProperty|Variable)|Compare-Object|Complete-Transaction|Connect-PSSession|ConvertFrom-(?:Csv|Json|StringData)|Convert-Path|ConvertTo-(?:Csv|Html|Json|Xml)|Copy-(?:Item|ItemProperty)|Debug-Process|Disable-(?:ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Disconnect-PSSession|Enable-(?:ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Enter-PSSession|Exit-PSSession|Export-(?:Alias|Clixml|Console|Csv|FormatData|ModuleMember|PSSession)|ForEach-Object|Format-(?:Custom|List|Table|Wide)|Get-(?:Alias|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Culture|Date|Event|EventLog|EventSubscriber|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|WmiObject)|Group-Object|Import-(?:Alias|Clixml|Csv|LocalizedData|Module|PSSession)|Invoke-(?:Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)|Join-Path|Limit-EventLog|Measure-(?:Command|Object)|Move-(?:Item|ItemProperty)|New-(?:Alias|Event|EventLog|Item|ItemProperty|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy)|Out-(?:Default|File|GridView|Host|Null|Printer|String)|Pop-Location|Push-Location|Read-Host|Receive-(?:Job|PSSession)|Register-(?:EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)|Remove-(?:Computer|Event|EventLog|Item|ItemProperty|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)|Rename-(?:Computer|Item|ItemProperty)|Reset-ComputerMachinePassword|Resolve-Path|Restart-(?:Computer|Service)|Restore-Computer|Resume-(?:Job|Service)|Save-Help|Select-(?:Object|String|Xml)|Send-MailMessage|Set-(?:Alias|Content|Date|Item|ItemProperty|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)|Show-(?:Command|ControlPanelItem|EventLog)|Sort-Object|Split-Path|Start-(?:Job|Process|Service|Sleep|Transaction)|Stop-(?:Computer|Job|Process|Service)|Suspend-(?:Job|Service)|Tee-Object|Test-(?:ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)|Trace-Command|Unblock-File|Undo-Transaction|Unregister-(?:Event|PSSessionConfiguration)|Update-(?:FormatData|Help|List|TypeData)|Use-Transaction|Wait-(?:Event|Job|Process)|Where-Object|Write-(?:Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning))\\b/i,/\\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\\b/i],keyword:/\\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\\b/i,operator:{pattern:/(\\W?)(?:!|-(eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\\b|-[-=]?|\\+[+=]?|[*\\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\\];(),.]/},Prism.languages.powershell.string[0].inside.boolean=Prism.languages.powershell.boolean,Prism.languages.powershell.string[0].inside.variable=Prism.languages.powershell.variable,Prism.languages.powershell.string[0].inside.function.inside=Prism.languages.powershell;\nPrism.languages.processing=Prism.languages.extend(\"clike\",{keyword:/\\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\\b/,operator:/<[<=]?|>[>=]?|&&?|\\|\\|?|[%?]|[!=+\\-*\\/]=?/}),Prism.languages.insertBefore(\"processing\",\"number\",{constant:/\\b(?!XML\\b)[A-Z][A-Z\\d_]+\\b/,type:{pattern:/\\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z]\\w*)\\b/,alias:\"variable\"}}),Prism.languages.processing[\"function\"].pattern=/\\w+(?=\\s*\\()/,Prism.languages.processing[\"class-name\"].alias=\"variable\";\nPrism.languages.prolog={comment:[/%.+/,/\\/\\*[\\s\\S]*?\\*\\//],string:{pattern:/([\"'])(?:\\1\\1|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},builtin:/\\b(?:fx|fy|xf[xy]?|yfx?)\\b/,variable:/\\b[A-Z_]\\w*/,\"function\":/\\b[a-z]\\w*(?:(?=\\()|\\/\\d+)/,number:/\\b\\d+\\.?\\d*/,operator:/[:\\\\=><\\-?*@\\/;+^|!$.]+|\\b(?:is|mod|not|xor)\\b/,punctuation:/[(){}\\[\\],]/};\nPrism.languages.properties={comment:/^[ \\t]*[#!].*$/m,\"attr-value\":{pattern:/(^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+?(?: *[=:] *| ))(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])+/m,lookbehind:!0},\"attr-name\":/^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+?(?= *[=:] *| )/m,punctuation:/[=:]/};\nPrism.languages.protobuf=Prism.languages.extend(\"clike\",{keyword:/\\b(?:package|import|message|enum)\\b/,builtin:/\\b(?:required|repeated|optional|reserved)\\b/,primitive:{pattern:/\\b(?:double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\\b/,alias:\"symbol\"}});\n!function(e){e.languages.pug={comment:{pattern:/(^([\\t ]*))\\/\\/.*(?:(?:\\r?\\n|\\r)\\2[\\t ]+.+)*/m,lookbehind:!0},\"multiline-script\":{pattern:/(^([\\t ]*)script\\b.*\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+/m,lookbehind:!0,inside:{rest:e.languages.javascript}},filter:{pattern:/(^([\\t ]*)):.+(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+/m,lookbehind:!0,inside:{\"filter-name\":{pattern:/^:[\\w-]+/,alias:\"variable\"}}},\"multiline-plain-text\":{pattern:/(^([\\t ]*)[\\w\\-#.]+\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+/m,lookbehind:!0},markup:{pattern:/(^[\\t ]*)<.+/m,lookbehind:!0,inside:{rest:e.languages.markup}},doctype:{pattern:/((?:^|\\n)[\\t ]*)doctype(?: .+)?/,lookbehind:!0},\"flow-control\":{pattern:/(^[\\t ]*)(?:if|unless|else|case|when|default|each|while)\\b(?: .+)?/m,lookbehind:!0,inside:{each:{pattern:/^each .+? in\\b/,inside:{keyword:/\\b(?:each|in)\\b/,punctuation:/,/}},branch:{pattern:/^(?:if|unless|else|case|when|default|while)\\b/,alias:\"keyword\"},rest:e.languages.javascript}},keyword:{pattern:/(^[\\t ]*)(?:block|extends|include|append|prepend)\\b.+/m,lookbehind:!0},mixin:[{pattern:/(^[\\t ]*)mixin .+/m,lookbehind:!0,inside:{keyword:/^mixin/,\"function\":/\\w+(?=\\s*\\(|\\s*$)/,punctuation:/[(),.]/}},{pattern:/(^[\\t ]*)\\+.+/m,lookbehind:!0,inside:{name:{pattern:/^\\+\\w+/,alias:\"function\"},rest:e.languages.javascript}}],script:{pattern:/(^[\\t ]*script(?:(?:&[^(]+)?\\([^)]+\\))*[\\t ]+).+/m,lookbehind:!0,inside:{rest:e.languages.javascript}},\"plain-text\":{pattern:/(^[\\t ]*(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?[\\t ]+).+/m,lookbehind:!0},tag:{pattern:/(^[\\t ]*)(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?:?/m,lookbehind:!0,inside:{attributes:[{pattern:/&[^(]+\\([^)]+\\)/,inside:{rest:e.languages.javascript}},{pattern:/\\([^)]+\\)/,inside:{\"attr-value\":{pattern:/(=\\s*)(?:\\{[^}]*\\}|[^,)\\r\\n]+)/,lookbehind:!0,inside:{rest:e.languages.javascript}},\"attr-name\":/[\\w-]+(?=\\s*!?=|\\s*[,)])/,punctuation:/[!=(),]+/}}],punctuation:/:/}},code:[{pattern:/(^[\\t ]*(?:-|!?=)).+/m,lookbehind:!0,inside:{rest:e.languages.javascript}}],punctuation:/[.\\-!=|]+/};for(var t=\"(^([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r(?!\\\\n))(?:\\\\2[\\\\t ]+.+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+\",n=[{filter:\"atpl\",language:\"twig\"},{filter:\"coffee\",language:\"coffeescript\"},\"ejs\",\"handlebars\",\"hogan\",\"less\",\"livescript\",\"markdown\",\"mustache\",\"plates\",{filter:\"sass\",language:\"scss\"},\"stylus\",\"swig\"],a={},i=0,r=n.length;r>i;i++){var s=n[i];s=\"string\"==typeof s?{filter:s,language:s}:s,e.languages[s.language]&&(a[\"filter-\"+s.filter]={pattern:RegExp(t.replace(\"{{filter_name}}\",s.filter),\"m\"),lookbehind:!0,inside:{\"filter-name\":{pattern:/^:[\\w-]+/,alias:\"variable\"},rest:e.languages[s.language]}})}e.languages.insertBefore(\"pug\",\"filter\",a)}(Prism);\n!function(e){e.languages.puppet={heredoc:[{pattern:/(@\\(\"([^\"\\r\\n\\/):]+)\"(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r))*?[ \\t]*\\|?[ \\t]*-?[ \\t]*\\2/,lookbehind:!0,alias:\"string\",inside:{punctuation:/(?=\\S).*\\S(?= *$)/}},{pattern:/(@\\(([^\"\\r\\n\\/):]+)(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r))*?[ \\t]*\\|?[ \\t]*-?[ \\t]*\\2/,lookbehind:!0,greedy:!0,alias:\"string\",inside:{punctuation:/(?=\\S).*\\S(?= *$)/}},{pattern:/@\\(\"?(?:[^\"\\r\\n\\/):]+)\"?(?:\\/[nrts$uL]*)?\\)/,alias:\"string\",inside:{punctuation:{pattern:/(\\().+?(?=\\))/,lookbehind:!0}}}],\"multiline-comment\":{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0,greedy:!0,alias:\"comment\"},regex:{pattern:/((?:\\bnode\\s+|[~=\\(\\[\\{,]\\s*|[=+]>\\s*|^\\s*))\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/(?:[imx]+\\b|\\B)/,lookbehind:!0,greedy:!0,inside:{\"extended-regex\":{pattern:/^\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/[im]*x[im]*$/,inside:{comment:/#.*/}}}},comment:{pattern:/(^|[^\\\\])#.*/,lookbehind:!0,greedy:!0},string:{pattern:/([\"'])(?:\\$\\{(?:[^'\"}]|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}|(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,greedy:!0,inside:{\"double-quoted\":{pattern:/^\"[\\s\\S]*\"$/,inside:{}}}},variable:{pattern:/\\$(?:::)?\\w+(?:::\\w+)*/,inside:{punctuation:/::/}},\"attr-name\":/(?:\\w+|\\*)(?=\\s*=>)/,\"function\":[{pattern:/(\\.)(?!\\d)\\w+/,lookbehind:!0},/\\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\\b|\\b(?!\\d)\\w+(?=\\()/],number:/\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d+)?(?:e-?\\d+)?)\\b/i,\"boolean\":/\\b(?:true|false)\\b/,keyword:/\\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\\b/,datatype:{pattern:/\\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\\b/,alias:\"symbol\"},operator:/=[=~>]?|![=~]?|<(?:<\\|?|[=~|-])?|>[>=]?|->?|~>|\\|>?>?|[*\\/%+?]|\\b(?:and|in|or)\\b/,punctuation:/[\\[\\]{}().,;]|:+/};var n=[{pattern:/(^|[^\\\\])\\$\\{(?:[^'\"{}]|\\{[^}]*\\}|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}/,lookbehind:!0,inside:{\"short-variable\":{pattern:/(^\\$\\{)(?!\\w+\\()(?:::)?\\w+(?:::\\w+)*/,lookbehind:!0,alias:\"variable\",inside:{punctuation:/::/}},delimiter:{pattern:/^\\$/,alias:\"variable\"},rest:e.languages.puppet}},{pattern:/(^|[^\\\\])\\$(?:::)?\\w+(?:::\\w+)*/,lookbehind:!0,alias:\"variable\",inside:{punctuation:/::/}}];e.languages.puppet.heredoc[0].inside.interpolation=n,e.languages.puppet.string.inside[\"double-quoted\"].inside.interpolation=n}(Prism);\n!function(e){e.languages.pure={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0},{pattern:/(^|[^\\\\:])\\/\\/.*/,lookbehind:!0},/#!.+/],\"inline-lang\":{pattern:/%<[\\s\\S]+?%>/,greedy:!0,inside:{lang:{pattern:/(^%< *)-\\*-.+?-\\*-/,lookbehind:!0,alias:\"comment\"},delimiter:{pattern:/^%<.*|%>$/,alias:\"punctuation\"}}},string:{pattern:/\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,greedy:!0},number:{pattern:/((?:\\.\\.)?)(?:\\b(?:inf|nan)\\b|\\b0x[\\da-f]+|(?:\\b(?:0b)?\\d+(?:\\.\\d)?|\\B\\.\\d)\\d*(?:e[+-]?\\d+)?L?)/i,lookbehind:!0},keyword:/\\b(?:ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|NULL|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\\b/,\"function\":/\\b(?:abs|add_(?:(?:fundef|interface|macdef|typedef)(?:_at)?|addr|constdef|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_(?:matrix|pointer)|byte_c?string(?:_pointer)?|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|short|sentry|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\\b/,special:{pattern:/\\b__[a-z]+__\\b/i,alias:\"builtin\"},operator:/(?=\\b_|[^_])[!\"#$%&'*+,\\-.\\/:<=>?@\\\\^_`|~\\u00a1-\\u00bf\\u00d7-\\u00f7\\u20d0-\\u2bff]+|\\b(?:and|div|mod|not|or)\\b/,punctuation:/[(){}\\[\\];,|]/};var t=[\"c\",{lang:\"c++\",alias:\"cpp\"},\"fortran\",\"ats\",\"dsp\"],a=\"%< *-\\\\*- *{lang}\\\\d* *-\\\\*-[\\\\s\\\\S]+?%>\";t.forEach(function(t){var r=t;if(\"string\"!=typeof t&&(r=t.alias,t=t.lang),e.languages[r]){var i={};i[\"inline-lang-\"+r]={pattern:RegExp(a.replace(\"{lang}\",t.replace(/([.+*?\\/\\\\(){}\\[\\]])/g,\"\\\\$1\")),\"i\"),inside:e.util.clone(e.languages.pure[\"inline-lang\"].inside)},i[\"inline-lang-\"+r].inside.rest=e.util.clone(e.languages[r]),e.languages.insertBefore(\"pure\",\"inline-lang\",i)}}),e.languages.c&&(e.languages.pure[\"inline-lang\"].inside.rest=e.util.clone(e.languages.c))}(Prism);\nPrism.languages.python={comment:{pattern:/(^|[^\\\\])#.*/,lookbehind:!0},\"triple-quoted-string\":{pattern:/(\"\"\"|''')[\\s\\S]+?\\1/,greedy:!0,alias:\"string\"},string:{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},\"function\":{pattern:/((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,lookbehind:!0},\"class-name\":{pattern:/(\\bclass\\s+)\\w+/i,lookbehind:!0},keyword:/\\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|pass|print|raise|return|try|while|with|yield)\\b/,builtin:/\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\"boolean\":/\\b(?:True|False|None)\\b/,number:/(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*\\.?\\d*|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,operator:/[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:or|and|not)\\b/,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.q={string:/\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,comment:[{pattern:/([\\t )\\]}])\\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|\\r?\\n|\\r)\\/[\\t ]*(?:(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r))*?(?:\\\\(?=[\\t ]*(?:\\r?\\n|\\r))|$)|\\S.*)/,lookbehind:!0,greedy:!0},{pattern:/^\\\\[\\t ]*(?:\\r?\\n|\\r)[\\s\\S]+/m,greedy:!0},{pattern:/^#!.+/m,greedy:!0}],symbol:/`(?::\\S+|[\\w.]*)/,datetime:{pattern:/0N[mdzuvt]|0W[dtz]|\\d{4}\\.\\d\\d(?:m|\\.\\d\\d(?:T(?:\\d\\d(?::\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?)?)?)?[dz]?)|\\d\\d:\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?[uvt]?/,alias:\"number\"},number:/\\b(?![01]:)(?:0[wn]|0W[hj]?|0N[hje]?|0x[\\da-fA-F]+|\\d+\\.?\\d*(?:e[+-]?\\d+)?[hjfeb]?)/,keyword:/\\\\\\w+\\b|\\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\\b/,adverb:{pattern:/['\\/\\\\]:?|\\beach\\b/,alias:\"function\"},verb:{pattern:/(?:\\B\\.\\B|\\b[01]:|<[=>]?|>=?|[:+\\-*%,!?_~=|$&#@^]):?/,alias:\"operator\"},punctuation:/[(){}\\[\\];.]/};\nPrism.languages.qore=Prism.languages.extend(\"clike\",{comment:{pattern:/(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/|#).*)/,lookbehind:!0},string:{pattern:/(\"|')(\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,greedy:!0},variable:/\\$(?!\\d)\\w+\\b/,keyword:/\\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\\b/,number:/\\b(?:0b[01]+|0x[\\da-f]*\\.?[\\da-fp\\-]+|\\d*\\.?\\d+e?\\d*[df]|\\d*\\.?\\d+)\\b/i,\"boolean\":/\\b(?:true|false)\\b/i,operator:{pattern:/(^|[^.])(?:\\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\\|[|=]?|[*\\/%^]=?|[~?])/,lookbehind:!0},\"function\":/\\$?\\b(?!\\d)\\w+(?=\\()/});\nPrism.languages.r={comment:/#.*/,string:{pattern:/(['\"])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},\"percent-operator\":{pattern:/%[^%\\s]*%/,alias:\"operator\"},\"boolean\":/\\b(?:TRUE|FALSE)\\b/,ellipsis:/\\.\\.(?:\\.|\\d+)/,number:[/\\b(?:NaN|Inf)\\b/,/(?:\\b0x[\\dA-Fa-f]+(?:\\.\\d*)?|\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[EePp][+-]?\\d+)?[iL]?/],keyword:/\\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\\b/,operator:/->?>?|<(?:=|=!]=?|::?|&&?|\\|\\|?|[+*\\/^$@~]/,punctuation:/[(){}\\[\\],;]/};\n!function(t){var n=t.util.clone(t.languages.javascript);t.languages.jsx=t.languages.extend(\"markup\",n),t.languages.jsx.tag.pattern=/<\\/?(?:[\\w.:-]+\\s*(?:\\s+(?:[\\w.:-]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s{'\">=]+|\\{(?:\\{(?:\\{[^}]*\\}|[^{}])*\\}|[^{}])+\\}))?|\\{\\.{3}[a-z_$][\\w$]*(?:\\.[a-z_$][\\w$]*)*\\}))*\\s*\\/?)?>/i,t.languages.jsx.tag.inside.tag.pattern=/^<\\/?[^\\s>\\/]*/i,t.languages.jsx.tag.inside[\"attr-value\"].pattern=/=(?!\\{)(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">]+)/i,t.languages.insertBefore(\"inside\",\"attr-name\",{spread:{pattern:/\\{\\.{3}[a-z_$][\\w$]*(?:\\.[a-z_$][\\w$]*)*\\}/,inside:{punctuation:/\\.{3}|[{}.]/,\"attr-value\":/\\w+/}}},t.languages.jsx.tag),t.languages.insertBefore(\"inside\",\"attr-value\",{script:{pattern:/=(\\{(?:\\{(?:\\{[^}]*\\}|[^}])*\\}|[^}])+\\})/i,inside:{\"script-punctuation\":{pattern:/^=(?={)/,alias:\"punctuation\"},rest:t.languages.jsx},alias:\"language-javascript\"}},t.languages.jsx.tag);var e=function(t){return t?\"string\"==typeof t?t:\"string\"==typeof t.content?t.content:t.content.map(e).join(\"\"):\"\"},a=function(n){for(var s=[],g=0;g0&&s[s.length-1].tagName===e(o.content[0].content[1])&&s.pop():\"/>\"===o.content[o.content.length-1].content||s.push({tagName:e(o.content[0].content[1]),openedBraces:0}):s.length>0&&\"punctuation\"===o.type&&\"{\"===o.content?s[s.length-1].openedBraces++:s.length>0&&s[s.length-1].openedBraces>0&&\"punctuation\"===o.type&&\"}\"===o.content?s[s.length-1].openedBraces--:i=!0),(i||\"string\"==typeof o)&&s.length>0&&0===s[s.length-1].openedBraces){var p=e(o);g0&&(\"string\"==typeof n[g-1]||\"plain-text\"===n[g-1].type)&&(p=e(n[g-1])+p,n.splice(g-1,1),g--),n[g]=new t.Token(\"plain-text\",p,null,p)}o.content&&\"string\"!=typeof o.content&&a(o.content)}};t.hooks.add(\"after-tokenize\",function(t){(\"jsx\"===t.language||\"tsx\"===t.language)&&a(t.tokens)})}(Prism);\nPrism.languages.typescript=Prism.languages.extend(\"javascript\",{keyword:/\\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield|module|declare|constructor|namespace|abstract|require|type)\\b/,builtin:/\\b(?:string|Function|any|number|boolean|Array|symbol|console)\\b/}),Prism.languages.ts=Prism.languages.typescript;\nPrism.languages.renpy={comment:{pattern:/(^|[^\\\\])#.+/,lookbehind:!0},string:{pattern:/(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2|(?:^#?(?:(?:[0-9a-fA-F]{2}){3}|(?:[0-9a-fA-F]){3})$)/m,greedy:!0},\"function\":/[a-z_]\\w*(?=\\()/i,property:/\\b(?:insensitive|idle|hover|selected_idle|selected_hover|background|position|alt|xpos|ypos|pos|xanchor|yanchor|anchor|xalign|yalign|align|xcenter|ycenter|xofsset|yoffset|ymaximum|maximum|xmaximum|xminimum|yminimum|minimum|xsize|ysizexysize|xfill|yfill|area|antialias|black_color|bold|caret|color|first_indent|font|size|italic|justify|kerning|language|layout|line_leading|line_overlap_split|line_spacing|min_width|newline_indent|outlines|rest_indent|ruby_style|slow_cps|slow_cps_multiplier|strikethrough|text_align|underline|hyperlink_functions|vertical|hinting|foreground|left_margin|xmargin|top_margin|bottom_margin|ymargin|left_padding|right_padding|xpadding|top_padding|bottom_padding|ypadding|size_group|child|hover_sound|activate_sound|mouse|focus_mask|keyboard_focus|bar_vertical|bar_invert|bar_resizing|left_gutter|right_gutter|top_gutter|bottom_gutter|left_bar|right_bar|top_bar|bottom_bar|thumb|thumb_shadow|thumb_offset|unscrollable|spacing|first_spacing|box_reverse|box_wrap|order_reverse|fit_first|ysize|thumbnail_width|thumbnail_height|help|text_ypos|text_xpos|idle_color|hover_color|selected_idle_color|selected_hover_color|insensitive_color|alpha|insensitive_background|hover_background|zorder|value|width|xadjustment|xanchoraround|xaround|xinitial|xoffset|xzoom|yadjustment|yanchoraround|yaround|yinitial|yzoom|zoom|ground|height|text_style|text_y_fudge|selected_insensitive|has_sound|has_music|has_voice|focus|hovered|image_style|length|minwidth|mousewheel|offset|prefix|radius|range|right_margin|rotate|rotate_pad|developer|screen_width|screen_height|window_title|name|version|windows_icon|default_fullscreen|default_text_cps|default_afm_time|main_menu_music|sample_sound|enter_sound|exit_sound|save_directory|enter_transition|exit_transition|intra_transition|main_game_transition|game_main_transition|end_splash_transition|end_game_transition|after_load_transition|window_show_transition|window_hide_transition|adv_nvl_transition|nvl_adv_transition|enter_yesno_transition|exit_yesno_transition|enter_replay_transition|exit_replay_transition|say_attribute_transition|directory_name|executable_name|include_update|window_icon|modal|google_play_key|google_play_salt|drag_name|drag_handle|draggable|dragged|droppable|dropped|narrator_menu|action|default_afm_enable|version_name|version_tuple|inside|fadeout|fadein|layers|layer_clipping|linear|scrollbars|side_xpos|side_ypos|side_spacing|edgescroll|drag_joined|drag_raise|drop_shadow|drop_shadow_color|subpixel|easein|easeout|time|crop|auto|update|get_installed_packages|can_update|UpdateVersion|Update|overlay_functions|translations|window_left_padding|show_side_image|show_two_window)\\b/,tag:/\\b(?:label|image|menu|[hv]box|frame|text|imagemap|imagebutton|bar|vbar|screen|textbutton|buttoscreenn|fixed|grid|input|key|mousearea|side|timer|viewport|window|hotspot|hotbar|self|button|drag|draggroup|tag|mm_menu_frame|nvl|block|parallel)\\b|\\$/,keyword:/\\b(?:as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|yield|adjustment|alignaround|allow|angle|around|box_layout|cache|changed|child_size|clicked|clipping|corner1|corner2|default|delay|exclude|scope|slow|slow_abortable|slow_done|sound|style_group|substitute|suffix|transform_anchor|transpose|unhovered|config|theme|mm_root|gm_root|rounded_window|build|disabled_text|disabled|widget_selected|widget_text|widget_hover|widget|updater|behind|call|expression|hide|init|jump|onlayer|python|renpy|scene|set|show|transform|play|queue|stop|pause|define|window|repeat|contains|choice|on|function|event|animation|clockwise|counterclockwise|circles|knot|null|None|random|has|add|use|fade|dissolve|style|store|id|voice|center|left|right|less_rounded|music|movie|clear|persistent|ui)\\b/,\"boolean\":/\\b(?:[Tt]rue|[Ff]alse)\\b/,number:/(?:\\b(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*\\.?\\d*)|\\B\\.\\d+)(?:e[+-]?\\d+)?j?/i,operator:/[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:or|and|not|with|at)\\b/,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.reason=Prism.languages.extend(\"clike\",{comment:{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0},string:{pattern:/\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,greedy:!0},\"class-name\":/\\b[A-Z]\\w*/,keyword:/\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/,operator:/\\.{3}|:[:=]|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:mod|land|lor|lxor|lsl|lsr|asr)\\b/}),Prism.languages.insertBefore(\"reason\",\"class-name\",{character:{pattern:/'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/,alias:\"string\"},constructor:{pattern:/\\b[A-Z]\\w*\\b(?!\\s*\\.)/,alias:\"variable\"},label:{pattern:/\\b[a-z]\\w*(?=::)/,alias:\"symbol\"}}),delete Prism.languages.reason.function;\nPrism.languages.rest={table:[{pattern:/(\\s*)(?:\\+[=-]+)+\\+(?:\\r?\\n|\\r)(?:\\1(?:[+|].+)+[+|](?:\\r?\\n|\\r))+\\1(?:\\+[=-]+)+\\+/,lookbehind:!0,inside:{punctuation:/\\||(?:\\+[=-]+)+\\+/}},{pattern:/(\\s*)(?:=+ +)+=+(?:(?:\\r?\\n|\\r)\\1.+)+(?:\\r?\\n|\\r)\\1(?:=+ +)+=+(?=(?:\\r?\\n|\\r){2}|\\s*$)/,lookbehind:!0,inside:{punctuation:/[=-]+/}}],\"substitution-def\":{pattern:/(^\\s*\\.\\. )\\|(?:[^|\\s](?:[^|]*[^|\\s])?)\\| [^:]+::/m,lookbehind:!0,inside:{substitution:{pattern:/^\\|(?:[^|\\s]|[^|\\s][^|]*[^|\\s])\\|/,alias:\"attr-value\",inside:{punctuation:/^\\||\\|$/}},directive:{pattern:/( +)[^:]+::/,lookbehind:!0,alias:\"function\",inside:{punctuation:/::$/}}}},\"link-target\":[{pattern:/(^\\s*\\.\\. )\\[[^\\]]+\\]/m,lookbehind:!0,alias:\"string\",inside:{punctuation:/^\\[|\\]$/}},{pattern:/(^\\s*\\.\\. )_(?:`[^`]+`|(?:[^:\\\\]|\\\\.)+):/m,lookbehind:!0,alias:\"string\",inside:{punctuation:/^_|:$/}}],directive:{pattern:/(^\\s*\\.\\. )[^:]+::/m,lookbehind:!0,alias:\"function\",inside:{punctuation:/::$/}},comment:{pattern:/(^\\s*\\.\\.)(?:(?: .+)?(?:(?:\\r?\\n|\\r).+)+| .+)(?=(?:\\r?\\n|\\r){2}|$)/m,lookbehind:!0},title:[{pattern:/^(([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+)(?:\\r?\\n|\\r).+(?:\\r?\\n|\\r)\\1$/m,inside:{punctuation:/^[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+|[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,important:/.+/}},{pattern:/(^|(?:\\r?\\n|\\r){2}).+(?:\\r?\\n|\\r)([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+(?=\\r?\\n|\\r|$)/,lookbehind:!0,inside:{punctuation:/[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,important:/.+/}}],hr:{pattern:/((?:\\r?\\n|\\r){2})([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2{3,}(?=(?:\\r?\\n|\\r){2})/,lookbehind:!0,alias:\"punctuation\"},field:{pattern:/(^\\s*):[^:\\r\\n]+:(?= )/m,lookbehind:!0,alias:\"attr-name\"},\"command-line-option\":{pattern:/(^\\s*)(?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?)*(?=(?:\\r?\\n|\\r)? {2,}\\S)/im,lookbehind:!0,alias:\"symbol\"},\"literal-block\":{pattern:/::(?:\\r?\\n|\\r){2}([ \\t]+).+(?:(?:\\r?\\n|\\r)\\1.+)*/,inside:{\"literal-block-punctuation\":{pattern:/^::/,alias:\"punctuation\"}}},\"quoted-literal-block\":{pattern:/::(?:\\r?\\n|\\r){2}([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]).*(?:(?:\\r?\\n|\\r)\\1.*)*/,inside:{\"literal-block-punctuation\":{pattern:/^(?:::|([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\1*)/m,alias:\"punctuation\"}}},\"list-bullet\":{pattern:/(^\\s*)(?:[*+\\-ā€¢ā€£āƒ]|\\(?(?:\\d+|[a-z]|[ivxdclm]+)\\)|(?:\\d+|[a-z]|[ivxdclm]+)\\.)(?= )/im,lookbehind:!0,alias:\"punctuation\"},\"doctest-block\":{pattern:/(^\\s*)>>> .+(?:(?:\\r?\\n|\\r).+)*/m,lookbehind:!0,inside:{punctuation:/^>>>/}},inline:[{pattern:/(^|[\\s\\-:\\/'\"<(\\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\\*\\*?|``?|\\|)(?!\\s).*?[^\\s]\\2(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$))/m,lookbehind:!0,inside:{bold:{pattern:/(^\\*\\*).+(?=\\*\\*$)/,lookbehind:!0},italic:{pattern:/(^\\*).+(?=\\*$)/,lookbehind:!0},\"inline-literal\":{pattern:/(^``).+(?=``$)/,lookbehind:!0,alias:\"symbol\"},role:{pattern:/^:[^:]+:|:[^:]+:$/,alias:\"function\",inside:{punctuation:/^:|:$/}},\"interpreted-text\":{pattern:/(^`).+(?=`$)/,lookbehind:!0,alias:\"attr-value\"},substitution:{pattern:/(^\\|).+(?=\\|$)/,lookbehind:!0,alias:\"attr-value\"},punctuation:/\\*\\*?|``?|\\|/}}],link:[{pattern:/\\[[^\\]]+\\]_(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/,alias:\"string\",inside:{punctuation:/^\\[|\\]_$/}},{pattern:/(?:\\b[a-z\\d](?:[_.:+]?[a-z\\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/i,alias:\"string\",inside:{punctuation:/^_?`|`$|`?_?_$/}}],punctuation:{pattern:/(^\\s*)(?:\\|(?= |$)|(?:---?|—|\\.\\.|__)(?= )|\\.\\.$)/m,lookbehind:!0}};\nPrism.languages.rip={comment:/#.*/,keyword:/(?:=>|->)|\\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\\b/,builtin:/@|\\bSystem\\b/,\"boolean\":/\\b(?:true|false)\\b/,date:/\\b\\d{4}-\\d{2}-\\d{2}\\b/,time:/\\b\\d{2}:\\d{2}:\\d{2}\\b/,datetime:/\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\b/,character:/\\B`[^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]\\b/,regex:{pattern:/(^|[^\\/])\\/(?!\\/)(\\[.+?]|\\\\.|[^\\/\\\\\\r\\n])+\\/(?=\\s*($|[\\r\\n,.;})]))/,lookbehind:!0,greedy:!0},symbol:/:[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/,string:{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},number:/[+-]?(?:(?:\\d+\\.\\d+)|(?:\\d+))/,punctuation:/(?:\\.{2,3})|[`,.:;=\\/\\\\()<>\\[\\]{}]/,reference:/[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/};\nPrism.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\\s)(?:(?:facet|instance of)(?=[ \\t]+[\\w-]+[ \\t]*\\{)|(?:external|import)\\b)/,lookbehind:!0},component:{pattern:/[\\w-]+(?=[ \\t]*\\{)/,alias:\"variable\"},property:/[\\w.-]+(?=[ \\t]*:)/,value:{pattern:/(=[ \\t]*)[^,;]+/,lookbehind:!0,alias:\"attr-value\"},optional:{pattern:/\\(optional\\)/,alias:\"builtin\"},wildcard:{pattern:/(\\.)\\*/,lookbehind:!0,alias:\"operator\"},punctuation:/[{},.;:=]/};\n!function(e){e.languages.crystal=e.languages.extend(\"ruby\",{keyword:[/\\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\\b/,{pattern:/(\\.\\s*)(?:is_a|responds_to)\\?/,lookbehind:!0}],number:/\\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\\da-fA-F_]*[\\da-fA-F]|(?:\\d(?:[\\d_]*\\d)?)(?:\\.[\\d_]*\\d)?(?:[eE][+-]?[\\d_]*\\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\\b/}),e.languages.insertBefore(\"crystal\",\"string\",{attribute:{pattern:/@\\[.+?\\]/,alias:\"attr-name\",inside:{delimiter:{pattern:/^@\\[|\\]$/,alias:\"tag\"},rest:e.languages.crystal}},expansion:[{pattern:/\\{\\{.+?\\}\\}/,inside:{delimiter:{pattern:/^\\{\\{|\\}\\}$/,alias:\"tag\"},rest:e.languages.crystal}},{pattern:/\\{%.+?%\\}/,inside:{delimiter:{pattern:/^\\{%|%\\}$/,alias:\"tag\"},rest:e.languages.crystal}}]})}(Prism);\nPrism.languages.rust={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0},{pattern:/(^|[^\\\\:])\\/\\/.*/,lookbehind:!0}],string:[{pattern:/b?r(#*)\"(?:\\\\.|(?!\"\\1)[^\\\\\\r\\n])*\"\\1/,greedy:!0},{pattern:/b?\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,greedy:!0}],\"char\":{pattern:/b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u{(?:[\\da-fA-F]_*){1,6}|.)|[^\\\\\\r\\n\\t'])'/,alias:\"string\"},\"lifetime-annotation\":{pattern:/'[^\\s>']+/,alias:\"symbol\"},keyword:/\\b(?:abstract|alignof|as|be|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|match|mod|move|mut|offsetof|once|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\\b/,attribute:{pattern:/#!?\\[.+?\\]/,greedy:!0,alias:\"attr-name\"},\"function\":[/\\w+(?=\\s*\\()/,/\\w+!(?=\\s*\\(|\\[)/],\"macro-rules\":{pattern:/\\w+!/,alias:\"function\"},number:/\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(\\d(?:_?\\d)*)?\\.?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:[iu](?:8|16|32|64)?|f32|f64))?\\b/,\"closure-params\":{pattern:/\\|[^|]*\\|(?=\\s*[{-])/,inside:{punctuation:/[|:,]/,operator:/[&*]/}},punctuation:/[{}[\\];(),:]|\\.+|->/,operator:/[-+*\\/%!^]=?|=[=>]?|@|&[&=]?|\\|[|=]?|<>?=?/};\nPrism.languages.sas={datalines:{pattern:/^\\s*(?:(?:data)?lines|cards);[\\s\\S]+?(?:\\r?\\n|\\r);/im,alias:\"string\",inside:{keyword:{pattern:/^(\\s*)(?:(?:data)?lines|cards)/i,lookbehind:!0},punctuation:/;/}},comment:[{pattern:/(^\\s*|;\\s*)\\*.*;/m,lookbehind:!0},/\\/\\*[\\s\\S]+?\\*\\//],datetime:{pattern:/'[^']+'(?:dt?|t)\\b/i,alias:\"number\"},string:{pattern:/([\"'])(?:\\1\\1|(?!\\1)[\\s\\S])*\\1/,greedy:!0},keyword:/\\b(?:data|else|format|if|input|proc\\s\\w+|quit|run|then)\\b/i,number:/\\b(?:[\\da-f]+x|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)/i,operator:/\\*\\*?|\\|\\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\\/=&]|[~¬^]=?|\\b(?:eq|ne|gt|lt|ge|le|in|not)\\b/i,punctuation:/[$%@.(){}\\[\\];,\\\\]/};\n!function(e){e.languages.sass=e.languages.extend(\"css\",{comment:{pattern:/^([ \\t]*)\\/[\\/*].*(?:(?:\\r?\\n|\\r)\\1[ \\t]+.+)*/m,lookbehind:!0}}),e.languages.insertBefore(\"sass\",\"atrule\",{\"atrule-line\":{pattern:/^(?:[ \\t]*)[@+=].+/m,inside:{atrule:/(?:@[\\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var a=/\\$[-\\w]+|#\\{\\$[-\\w]+\\}/,t=[/[+*\\/%]|[=!]=|<=?|>=?|\\b(?:and|or|not)\\b/,{pattern:/(\\s+)-(?=\\s)/,lookbehind:!0}];e.languages.insertBefore(\"sass\",\"property\",{\"variable-line\":{pattern:/^[ \\t]*\\$.+/m,inside:{punctuation:/:/,variable:a,operator:t}},\"property-line\":{pattern:/^[ \\t]*(?:[^:\\s]+ *:.*|:[^:\\s]+.*)/m,inside:{property:[/[^:\\s]+(?=\\s*:)/,{pattern:/(:)[^:\\s]+/,lookbehind:!0}],punctuation:/:/,variable:a,operator:t,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,delete e.languages.sass.selector,e.languages.insertBefore(\"sass\",\"punctuation\",{selector:{pattern:/([ \\t]*)\\S(?:,?[^,\\r\\n]+)*(?:,(?:\\r?\\n|\\r)\\1[ \\t]+\\S(?:,?[^,\\r\\n]+)*)*/,lookbehind:!0}})}(Prism);\nPrism.languages.scss=Prism.languages.extend(\"css\",{comment:{pattern:/(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,lookbehind:!0},atrule:{pattern:/@[\\w-]+(?:\\([^()]+\\)|[^(])*?(?=\\s+[{;])/,inside:{rule:/@[\\w-]+/}},url:/(?:[-a-z]+-)*url(?=\\()/i,selector:{pattern:/(?=\\S)[^@;{}()]?(?:[^@;{}()]|&|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}]+[:{][^}]+))/m,inside:{parent:{pattern:/&/,alias:\"important\"},placeholder:/%[-\\w]+/,variable:/\\$[-\\w]+|#\\{\\$[-\\w]+\\}/}}}),Prism.languages.insertBefore(\"scss\",\"atrule\",{keyword:[/@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),Prism.languages.scss.property={pattern:/(?:[\\w-]|\\$[-\\w]+|#\\{\\$[-\\w]+\\})+(?=\\s*:)/i,inside:{variable:/\\$[-\\w]+|#\\{\\$[-\\w]+\\}/}},Prism.languages.insertBefore(\"scss\",\"important\",{variable:/\\$[-\\w]+|#\\{\\$[-\\w]+\\}/}),Prism.languages.insertBefore(\"scss\",\"function\",{placeholder:{pattern:/%[-\\w]+/,alias:\"selector\"},statement:{pattern:/\\B!(?:default|optional)\\b/i,alias:\"keyword\"},\"boolean\":/\\b(?:true|false)\\b/,\"null\":/\\bnull\\b/,operator:{pattern:/(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|or|not)(?=\\s)/,lookbehind:!0}}),Prism.languages.scss.atrule.inside.rest=Prism.languages.scss;\nPrism.languages.scala=Prism.languages.extend(\"java\",{keyword:/<-|=>|\\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\\b/,string:[{pattern:/\"\"\"[\\s\\S]*?\"\"\"/,greedy:!0},{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0}],builtin:/\\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\\b/,number:/\\b0x[\\da-f]*\\.?[\\da-f]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e\\d+)?[dfl]?/i,symbol:/'[^\\d\\s\\\\]\\w*/}),delete Prism.languages.scala[\"class-name\"],delete Prism.languages.scala[\"function\"];\nPrism.languages.scheme={comment:/;.*/,string:{pattern:/\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'[^('\\s]*/,greedy:!0},keyword:{pattern:/(\\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/,lookbehind:!0},builtin:{pattern:/(\\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\\/cc|append|abs|apply|eval)\\b|null\\?|pair\\?|boolean\\?|eof-object\\?|char\\?|procedure\\?|number\\?|port\\?|string\\?|vector\\?|symbol\\?|bytevector\\?)/,lookbehind:!0},number:{pattern:/(\\s|[()])[-+]?\\d*\\.?\\d+(?:\\s*[-+]\\s*\\d*\\.?\\d+i)?\\b/,lookbehind:!0},\"boolean\":/#[tf]/,operator:{pattern:/(\\()(?:[-+*%\\/]|[<>]=?|=>?)/,lookbehind:!0},\"function\":{pattern:/(\\()[^\\s()]*(?=[\\s)])/,lookbehind:!0},punctuation:/[()]/};\nPrism.languages.smalltalk={comment:/\"(?:\"\"|[^\"])+\"/,string:/'(?:''|[^'])+'/,symbol:/#[\\da-z]+|#(?:-|([+\\/\\\\*~<>=@%|&?!])\\1?)|#(?=\\()/i,\"block-arguments\":{pattern:/(\\[\\s*):[^\\[|]*\\|/,lookbehind:!0,inside:{variable:/:[\\da-z]+/i,punctuation:/\\|/}},\"temporary-variables\":{pattern:/\\|[^|]+\\|/,inside:{variable:/[\\da-z]+/i,punctuation:/\\|/}},keyword:/\\b(?:nil|true|false|self|super|new)\\b/,character:{pattern:/\\$./,alias:\"string\"},number:[/\\d+r-?[\\dA-Z]+(?:\\.[\\dA-Z]+)?(?:e-?\\d+)?/,/\\b\\d+(?:\\.\\d+)?(?:e-?\\d+)?/],operator:/[<=]=?|:=|~[~=]|\\/\\/?|\\\\\\\\|>[>=]?|[!^+\\-*&|,@]/,punctuation:/[.;:?\\[\\](){}]/};\n!function(e){e.languages.smarty={comment:/\\{\\*[\\s\\S]*?\\*\\}/,delimiter:{pattern:/^\\{|\\}$/i,alias:\"punctuation\"},string:/([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,number:/\\b0x[\\dA-Fa-f]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,variable:[/\\$(?!\\d)\\w+/,/#(?!\\d)\\w+#/,{pattern:/(\\.|->)(?!\\d)\\w+/,lookbehind:!0},{pattern:/(\\[)(?!\\d)\\w+(?=\\])/,lookbehind:!0}],\"function\":[{pattern:/(\\|\\s*)@?(?!\\d)\\w+/,lookbehind:!0},/^\\/?(?!\\d)\\w+/,/(?!\\d)\\w+(?=\\()/],\"attr-name\":{pattern:/\\w+\\s*=\\s*(?:(?!\\d)\\w+)?/,inside:{variable:{pattern:/(=\\s*)(?!\\d)\\w+/,lookbehind:!0},operator:/=/}},punctuation:[/[\\[\\]().,:`]|->/],operator:[/[+\\-*\\/%]|==?=?|[!<>]=?|&&|\\|\\|?/,/\\bis\\s+(?:not\\s+)?(?:div|even|odd)(?:\\s+by)?\\b/,/\\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\\b/],keyword:/\\b(?:false|off|on|no|true|yes)\\b/},e.languages.insertBefore(\"smarty\",\"tag\",{\"smarty-comment\":{pattern:/\\{\\*[\\s\\S]*?\\*\\}/,alias:[\"smarty\",\"comment\"]}}),e.hooks.add(\"before-tokenize\",function(t){var a=/\\{\\*[\\s\\S]*?\\*\\}|\\{[\\s\\S]+?\\}/g,n=\"{literal}\",o=\"{/literal}\",r=!1;e.languages[\"markup-templating\"].buildPlaceholders(t,\"smarty\",a,function(e){return e===o&&(r=!1),r?!1:(e===n&&(r=!0),!0)})}),e.hooks.add(\"after-tokenize\",function(t){e.languages[\"markup-templating\"].tokenizePlaceholders(t,\"smarty\")})}(Prism);\nPrism.languages.plsql=Prism.languages.extend(\"sql\",{comment:[/\\/\\*[\\s\\S]*?\\*\\//,/--.*/]}),\"Array\"!==Prism.util.type(Prism.languages.plsql.keyword)&&(Prism.languages.plsql.keyword=[Prism.languages.plsql.keyword]),Prism.languages.plsql.keyword.unshift(/\\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\\b/i),\"Array\"!==Prism.util.type(Prism.languages.plsql.operator)&&(Prism.languages.plsql.operator=[Prism.languages.plsql.operator]),Prism.languages.plsql.operator.unshift(/:=/);\n!function(e){var a=/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,t=/\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-F]+\\b/;e.languages.soy={comment:[/\\/\\*[\\s\\S]*?\\*\\//,{pattern:/(\\s)\\/\\/.*/,lookbehind:!0,greedy:!0}],\"command-arg\":{pattern:/({+\\/?\\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\\s+)\\.?[\\w.]+/,lookbehind:!0,alias:\"string\",inside:{punctuation:/\\./}},parameter:{pattern:/({+\\/?\\s*@?param\\??\\s+)\\.?[\\w.]+/,lookbehind:!0,alias:\"variable\"},keyword:[{pattern:/({+\\/?[^\\S\\r\\n]*)(?:\\\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\\??|rb|sp|switch|template|xid)/,lookbehind:!0},/\\b(?:any|as|attributes|bool|css|float|in|int|js|html|list|map|null|number|string|uri)\\b/],delimiter:{pattern:/^{+\\/?|\\/?}+$/,alias:\"punctuation\"},property:/\\w+(?==)/,variable:{pattern:/\\$[^\\W\\d]\\w*(?:\\??(?:\\.\\w+|\\[[^\\]]+]))*/,inside:{string:{pattern:a,greedy:!0},number:t,punctuation:/[\\[\\].?]/}},string:{pattern:a,greedy:!0},\"function\":[/\\w+(?=\\()/,{pattern:/(\\|[^\\S\\r\\n]*)\\w+/,lookbehind:!0}],\"boolean\":/\\b(?:true|false)\\b/,number:t,operator:/\\?:?|<=?|>=?|==?|!=|[+*\\/%-]|\\b(?:and|not|or)\\b/,punctuation:/[{}()\\[\\]|.,:]/},e.hooks.add(\"before-tokenize\",function(a){var t=/{{.+?}}|{.+?}|\\s\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//g,n=\"{literal}\",l=\"{/literal}\",r=!1;e.languages[\"markup-templating\"].buildPlaceholders(a,\"soy\",t,function(e){return e===l&&(r=!1),r?!1:(e===n&&(r=!0),!0)})}),e.hooks.add(\"after-tokenize\",function(a){e.languages[\"markup-templating\"].tokenizePlaceholders(a,\"soy\")})}(Prism);\n!function(n){var t={url:/url\\(([\"']?).*?\\1\\)/i,string:{pattern:/(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,greedy:!0},interpolation:null,func:null,important:/\\B!(?:important|optional)\\b/i,keyword:{pattern:/(^|\\s+)(?:(?:if|else|for|return|unless)(?=\\s+|$)|@[\\w-]+)/,lookbehind:!0},hexcode:/#[\\da-f]{3,6}/i,number:/\\b\\d+(?:\\.\\d+)?%?/,\"boolean\":/\\b(?:true|false)\\b/,operator:[/~|[+!\\/%<>?=]=?|[-:]=|\\*[*=]?|\\.+|&&|\\|\\||\\B-\\B|\\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\\b/],punctuation:/[{}()\\[\\];:,]/};t.interpolation={pattern:/\\{[^\\r\\n}:]+\\}/,alias:\"variable\",inside:{delimiter:{pattern:/^{|}$/,alias:\"punctuation\"},rest:t}},t.func={pattern:/[\\w-]+\\([^)]*\\).*/,inside:{\"function\":/^[^(]+/,rest:t}},n.languages.stylus={comment:{pattern:/(^|[^\\\\])(\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,lookbehind:!0},\"atrule-declaration\":{pattern:/(^\\s*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\\w-]+/,rest:t}},\"variable-declaration\":{pattern:/(^[ \\t]*)[\\w$-]+\\s*.?=[ \\t]*(?:(?:\\{[^}]*\\}|.+)|$)/m,lookbehind:!0,inside:{variable:/^\\S+/,rest:t}},statement:{pattern:/(^[ \\t]*)(?:if|else|for|return|unless)[ \\t]+.+/m,lookbehind:!0,inside:{keyword:/^\\S+/,rest:t}},\"property-declaration\":{pattern:/((?:^|\\{)([ \\t]*))(?:[\\w-]|\\{[^}\\r\\n]+\\})+(?:\\s*:\\s*|[ \\t]+)[^{\\r\\n]*(?:;|[^{\\r\\n,](?=$)(?!(\\r?\\n|\\r)(?:\\{|\\2[ \\t]+)))/m,lookbehind:!0,inside:{property:{pattern:/^[^\\s:]+/,inside:{interpolation:t.interpolation}},rest:t}},selector:{pattern:/(^[ \\t]*)(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\))?|\\{[^}\\r\\n]+\\})+)(?:(?:\\r?\\n|\\r)(?:\\1(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\))?|\\{[^}\\r\\n]+\\})+)))*(?:,$|\\{|(?=(?:\\r?\\n|\\r)(?:\\{|\\1[ \\t]+)))/m,lookbehind:!0,inside:{interpolation:t.interpolation,punctuation:/[{},]/}},func:t.func,string:t.string,interpolation:t.interpolation,punctuation:/[{}()\\[\\];:.]/}}(Prism);\nPrism.languages.swift=Prism.languages.extend(\"clike\",{string:{pattern:/(\"|')(\\\\(?:\\((?:[^()]|\\([^)]+\\))+\\)|\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0,inside:{interpolation:{pattern:/\\\\\\((?:[^()]|\\([^)]+\\))+\\)/,inside:{delimiter:{pattern:/^\\\\\\(|\\)$/,alias:\"variable\"}}}}},keyword:/\\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\\b/,number:/\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,constant:/\\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,atrule:/@\\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\\b/,builtin:/\\b(?:[A-Z]\\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\\b/}),Prism.languages.swift.string.inside.interpolation.inside.rest=Prism.languages.swift;\nPrism.languages.yaml={scalar:{pattern:/([\\-:]\\s*(?:![^\\s]+)?[ \\t]*[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)[^\\r\\n]+(?:\\2[^\\r\\n]+)*)/,lookbehind:!0,alias:\"string\"},comment:/#.*/,key:{pattern:/(\\s*(?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:![^\\s]+)?[ \\t]*)[^\\r\\n{[\\]},#\\s]+?(?=\\s*:\\s)/,lookbehind:!0,alias:\"atrule\"},directive:{pattern:/(^[ \\t]*)%.+/m,lookbehind:!0,alias:\"important\"},datetime:{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?)?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?)(?=[ \\t]*(?:$|,|]|}))/m,lookbehind:!0,alias:\"number\"},\"boolean\":{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:true|false)[ \\t]*(?=$|,|]|})/im,lookbehind:!0,alias:\"important\"},\"null\":{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:null|~)[ \\t]*(?=$|,|]|})/im,lookbehind:!0,alias:\"important\"},string:{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(\"|')(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2(?=[ \\t]*(?:$|,|]|}))/m,lookbehind:!0,greedy:!0},number:{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+\\.?\\d*|\\.?\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)[ \\t]*(?=$|,|]|})/im,lookbehind:!0},tag:/![^\\s]+/,important:/[&*][\\w]+/,punctuation:/---|[:[\\]{}\\-,|>?]|\\.\\.\\./};\nPrism.languages.tcl={comment:{pattern:/(^|[^\\\\])#.*/,lookbehind:!0},string:{pattern:/\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,greedy:!0},variable:[{pattern:/(\\$)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/,lookbehind:!0},{pattern:/(\\$){[^}]+}/,lookbehind:!0},{pattern:/(^\\s*set[ \\t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/m,lookbehind:!0}],\"function\":{pattern:/(^\\s*proc[ \\t]+)[^\\s]+/m,lookbehind:!0},builtin:[{pattern:/(^\\s*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\\b/m,lookbehind:!0},/\\b(?:elseif|else)\\b/],scope:{pattern:/(^\\s*)(?:global|upvar|variable)\\b/m,lookbehind:!0,alias:\"constant\"},keyword:{pattern:/(^\\s*|\\[)(?:after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\\b/m,lookbehind:!0},operator:/!=?|\\*\\*?|==|&&?|\\|\\|?|<[=<]?|>[=>]?|[-+~\\/%?^]|\\b(?:eq|ne|in|ni)\\b/,punctuation:/[{}()\\[\\]]/};\n!function(e){var i=\"(?:\\\\([^|)]+\\\\)|\\\\[[^\\\\]]+\\\\]|\\\\{[^}]+\\\\})+\",n={css:{pattern:/\\{[^}]+\\}/,inside:{rest:e.languages.css}},\"class-id\":{pattern:/(\\()[^)]+(?=\\))/,lookbehind:!0,alias:\"attr-value\"},lang:{pattern:/(\\[)[^\\]]+(?=\\])/,lookbehind:!0,alias:\"attr-value\"},punctuation:/[\\\\\\/]\\d+|\\S/};e.languages.textile=e.languages.extend(\"markup\",{phrase:{pattern:/(^|\\r|\\n)\\S[\\s\\S]*?(?=$|\\r?\\n\\r?\\n|\\r\\r)/,lookbehind:!0,inside:{\"block-tag\":{pattern:RegExp(\"^[a-z]\\\\w*(?:\"+i+\"|[<>=()])*\\\\.\"),inside:{modifier:{pattern:RegExp(\"(^[a-z]\\\\w*)(?:\"+i+\"|[<>=()])+(?=\\\\.)\"),lookbehind:!0,inside:n},tag:/^[a-z]\\w*/,punctuation:/\\.$/}},list:{pattern:RegExp(\"^[*#]+(?:\"+i+\")?\\\\s+.+\",\"m\"),inside:{modifier:{pattern:RegExp(\"(^[*#]+)\"+i),lookbehind:!0,inside:n},punctuation:/^[*#]+/}},table:{pattern:RegExp(\"^(?:(?:\"+i+\"|[<>=()^~])+\\\\.\\\\s*)?(?:\\\\|(?:(?:\"+i+\"|[<>=()^~_]|[\\\\\\\\/]\\\\d+)+\\\\.)?[^|]*)+\\\\|\",\"m\"),inside:{modifier:{pattern:RegExp(\"(^|\\\\|(?:\\\\r?\\\\n|\\\\r)?)(?:\"+i+\"|[<>=()^~_]|[\\\\\\\\/]\\\\d+)+(?=\\\\.)\"),lookbehind:!0,inside:n},punctuation:/\\||^\\./}},inline:{pattern:RegExp(\"(\\\\*\\\\*|__|\\\\?\\\\?|[*_%@+\\\\-^~])(?:\"+i+\")?.+?\\\\1\"),inside:{bold:{pattern:RegExp(\"(^(\\\\*\\\\*?)(?:\"+i+\")?).+?(?=\\\\2)\"),lookbehind:!0},italic:{pattern:RegExp(\"(^(__?)(?:\"+i+\")?).+?(?=\\\\2)\"),lookbehind:!0},cite:{pattern:RegExp(\"(^\\\\?\\\\?(?:\"+i+\")?).+?(?=\\\\?\\\\?)\"),lookbehind:!0,alias:\"string\"},code:{pattern:RegExp(\"(^@(?:\"+i+\")?).+?(?=@)\"),lookbehind:!0,alias:\"keyword\"},inserted:{pattern:RegExp(\"(^\\\\+(?:\"+i+\")?).+?(?=\\\\+)\"),lookbehind:!0},deleted:{pattern:RegExp(\"(^-(?:\"+i+\")?).+?(?=-)\"),lookbehind:!0},span:{pattern:RegExp(\"(^%(?:\"+i+\")?).+?(?=%)\"),lookbehind:!0},modifier:{pattern:RegExp(\"(^\\\\*\\\\*|__|\\\\?\\\\?|[*_%@+\\\\-^~])\"+i),lookbehind:!0,inside:n},punctuation:/[*_%?@+\\-^~]+/}},\"link-ref\":{pattern:/^\\[[^\\]]+\\]\\S+$/m,inside:{string:{pattern:/(\\[)[^\\]]+(?=\\])/,lookbehind:!0},url:{pattern:/(\\])\\S+$/,lookbehind:!0},punctuation:/[\\[\\]]/}},link:{pattern:RegExp('\"(?:'+i+')?[^\"]+\":.+?(?=[^\\\\w/]?(?:\\\\s|$))'),inside:{text:{pattern:RegExp('(^\"(?:'+i+')?)[^\"]+(?=\")'),lookbehind:!0},modifier:{pattern:RegExp('(^\")'+i),lookbehind:!0,inside:n},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[\":]/}},image:{pattern:RegExp(\"!(?:\"+i+\"|[<>=()])*[^!\\\\s()]+(?:\\\\([^)]+\\\\))?!(?::.+?(?=[^\\\\w/]?(?:\\\\s|$)))?\"),inside:{source:{pattern:RegExp(\"(^!(?:\"+i+\"|[<>=()])*)[^!\\\\s()]+(?:\\\\([^)]+\\\\))?(?=!)\"),lookbehind:!0,alias:\"url\"},modifier:{pattern:RegExp(\"(^!)(?:\"+i+\"|[<>=()])+\"),lookbehind:!0,inside:n},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\\b\\[\\d+\\]/,alias:\"comment\",inside:{punctuation:/\\[|\\]/}},acronym:{pattern:/\\b[A-Z\\d]+\\([^)]+\\)/,inside:{comment:{pattern:/(\\()[^)]+(?=\\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\\b\\((?:TM|R|C)\\)/,alias:\"comment\",inside:{punctuation:/[()]/}}}}});var t={inline:e.languages.textile.phrase.inside.inline,link:e.languages.textile.phrase.inside.link,image:e.languages.textile.phrase.inside.image,footnote:e.languages.textile.phrase.inside.footnote,acronym:e.languages.textile.phrase.inside.acronym,mark:e.languages.textile.phrase.inside.mark};e.languages.textile.tag.pattern=/<\\/?(?!\\d)[a-z0-9]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,e.languages.textile.phrase.inside.inline.inside.bold.inside=t,e.languages.textile.phrase.inside.inline.inside.italic.inside=t,e.languages.textile.phrase.inside.inline.inside.inserted.inside=t,e.languages.textile.phrase.inside.inline.inside.deleted.inside=t,e.languages.textile.phrase.inside.inline.inside.span.inside=t,e.languages.textile.phrase.inside.table.inside.inline=t.inline,e.languages.textile.phrase.inside.table.inside.link=t.link,e.languages.textile.phrase.inside.table.inside.image=t.image,e.languages.textile.phrase.inside.table.inside.footnote=t.footnote,e.languages.textile.phrase.inside.table.inside.acronym=t.acronym,e.languages.textile.phrase.inside.table.inside.mark=t.mark}(Prism);\n!function(e){e.languages.tt2=e.languages.extend(\"clike\",{comment:{pattern:/#.*|\\[%#[\\s\\S]*?%\\]/,lookbehind:!0},keyword:/\\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|TAGS|THROW|TRY|SWITCH|UNLESS|USE|WHILE|WRAPPER)\\b/,punctuation:/[[\\]{},()]/}),delete e.languages.tt2.operator,delete e.languages.tt2.variable,e.languages.insertBefore(\"tt2\",\"number\",{operator:/=[>=]?|!=?|<=?|>=?|&&|\\|\\|?|\\b(?:and|or|not)\\b/,variable:{pattern:/[a-z]\\w*(?:\\s*\\.\\s*(?:\\d+|\\$?[a-z]\\w*))*/i}}),delete e.languages.tt2.delimiter,e.languages.insertBefore(\"tt2\",\"keyword\",{delimiter:{pattern:/^(?:\\[%|%%)-?|-?%]$/,alias:\"punctuation\"}}),e.languages.insertBefore(\"tt2\",\"string\",{\"single-quoted-string\":{pattern:/'[^\\\\']*(?:\\\\[\\s\\S][^\\\\']*)*'/,greedy:!0,alias:\"string\"},\"double-quoted-string\":{pattern:/\"[^\\\\\"]*(?:\\\\[\\s\\S][^\\\\\"]*)*\"/,greedy:!0,alias:\"string\",inside:{variable:{pattern:/\\$(?:[a-z]\\w*(?:\\.(?:\\d+|\\$?[a-z]\\w*))*)/i}}}}),delete e.languages.tt2.string,e.hooks.add(\"before-tokenize\",function(t){var a=/\\[%[\\s\\S]+?%\\]/g;e.languages[\"markup-templating\"].buildPlaceholders(t,\"tt2\",a)}),e.hooks.add(\"after-tokenize\",function(t){e.languages[\"markup-templating\"].tokenizePlaceholders(t,\"tt2\")})}(Prism);\nPrism.languages.twig={comment:/\\{#[\\s\\S]*?#\\}/,tag:{pattern:/\\{\\{[\\s\\S]*?\\}\\}|\\{%[\\s\\S]*?%\\}/,inside:{ld:{pattern:/^(?:\\{\\{-?|\\{%-?\\s*\\w+)/,inside:{punctuation:/^(?:\\{\\{|\\{%)-?/,keyword:/\\w+/}},rd:{pattern:/-?(?:%\\}|\\}\\})$/,inside:{punctuation:/.*/}},string:{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,inside:{punctuation:/^['\"]|['\"]$/}},keyword:/\\b(?:even|if|odd)\\b/,\"boolean\":/\\b(?:true|false|null)\\b/,number:/\\b0x[\\dA-Fa-f]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,operator:[{pattern:/(\\s)(?:and|b-and|b-xor|b-or|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,lookbehind:!0},/[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/],property:/\\b[a-zA-Z_]\\w*\\b/,punctuation:/[()\\[\\]{}:.,]/}},other:{pattern:/\\S(?:[\\s\\S]*\\S)?/,inside:Prism.languages.markup}};\nvar typescript=Prism.util.clone(Prism.languages.typescript);Prism.languages.tsx=Prism.languages.extend(\"jsx\",typescript);\nPrism.languages.vbnet=Prism.languages.extend(\"basic\",{keyword:/(?:\\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDEC|CDBL|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEFAULT|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LINE INPUT|LET|LIB|LIKE|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPERATOR|OPEN|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHORT|SINGLE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SYNCLOCK|SWAP|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\\$|\\b)/i,comment:[{pattern:/(?:!|REM\\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\\\:])'.*/,lookbehind:!0}]});\n!function(e){e.languages.velocity=e.languages.extend(\"markup\",{});var n={variable:{pattern:/(^|[^\\\\](?:\\\\\\\\)*)\\$!?(?:[a-z][\\w-]*(?:\\([^)]*\\))?(?:\\.[a-z][\\w-]*(?:\\([^)]*\\))?|\\[[^\\]]+])*|{[^}]+})/i,lookbehind:!0,inside:{}},string:{pattern:/\"[^\"]*\"|'[^']*'/,greedy:!0},number:/\\b\\d+\\b/,\"boolean\":/\\b(?:true|false)\\b/,operator:/[=!<>]=?|[+*\\/%-]|&&|\\|\\||\\.\\.|\\b(?:eq|g[et]|l[et]|n(?:e|ot))\\b/,punctuation:/[(){}[\\]:,.]/};n.variable.inside={string:n.string,\"function\":{pattern:/([^\\w-])[a-z][\\w-]*(?=\\()/,lookbehind:!0},number:n.number,\"boolean\":n[\"boolean\"],punctuation:n.punctuation},e.languages.insertBefore(\"velocity\",\"comment\",{unparsed:{pattern:/(^|[^\\\\])#\\[\\[[\\s\\S]*?]]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\\[\\[|]]#$/}},\"velocity-comment\":[{pattern:/(^|[^\\\\])#\\*[\\s\\S]*?\\*#/,lookbehind:!0,greedy:!0,alias:\"comment\"},{pattern:/(^|[^\\\\])##.*/,lookbehind:!0,greedy:!0,alias:\"comment\"}],directive:{pattern:/(^|[^\\\\](?:\\\\\\\\)*)#@?(?:[a-z][\\w-]*|{[a-z][\\w-]*})(?:\\s*\\((?:[^()]|\\([^()]*\\))*\\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\\w-]*|{[a-z][\\w-]*})|\\bin\\b/,inside:{punctuation:/[{}]/}},rest:n}},variable:n.variable}),e.languages.velocity.tag.inside[\"attr-value\"].inside.rest=e.languages.velocity}(Prism);\nPrism.languages.verilog={comment:/\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,string:{pattern:/\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,greedy:!0},property:/\\B\\$\\w+\\b/,constant:/\\B`\\w+\\b/,\"function\":/\\w+(?=\\()/,keyword:/\\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|class|case|casex|casez|cell|chandle|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endspecify|endsequence|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\\b/,important:/\\b(?:always_latch|always_comb|always_ff|always)\\b ?@?/,number:/\\B##?\\d+|(?:\\b\\d+)?'[odbh] ?[\\da-fzx_?]+|\\b\\d*[._]?\\d+(?:e[-+]?\\d+)?/i,operator:/[-+{}^~%*\\/?=!<>&|]+/,punctuation:/[[\\];(),.:]/};\nPrism.languages.vhdl={comment:/--.+/,\"vhdl-vectors\":{pattern:/\\b[oxb]\"[\\da-f_]+\"|\"[01uxzwlh-]+\"/i,alias:\"number\"},\"quoted-function\":{pattern:/\"\\S+?\"(?=\\()/,alias:\"function\"},string:/\"(?:[^\\\\\"\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,constant:/\\b(?:use|library)\\b/i,keyword:/\\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\\b/i,\"boolean\":/\\b(?:true|false)\\b/i,\"function\":/\\w+(?=\\()/,number:/'[01uxzwlh-]'|\\b(?:\\d+#[\\da-f_.]+#|\\d[\\d_.]*)(?:e[-+]?\\d+)?/i,operator:/[<>]=?|:=|[-+*\\/&=]|\\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\\b/i,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.vim={string:/\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\r\\n]|'')*'/,comment:/\".*/,\"function\":/\\w+(?=\\()/,keyword:/\\b(?:ab|abbreviate|abc|abclear|abo|aboveleft|al|all|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|ar|args|argu|argument|as|ascii|bad|badd|ba|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|br|brewind|bro|browse|bufdo|b|buffer|buffers|bun|bunload|bw|bwipeout|ca|cabbrev|cabc|cabclear|caddb|caddbuffer|cad|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cgetb|cgetbuffer|cgete|cgetexpr|cg|cgetfile|c|change|changes|chd|chdir|che|checkpath|checkt|checktime|cla|clast|cl|clist|clo|close|cmapc|cmapclear|cnew|cnewer|cn|cnext|cN|cNext|cnf|cnfile|cNfcNfile|cnorea|cnoreabbrev|col|colder|colo|colorscheme|comc|comclear|comp|compiler|conf|confirm|con|continue|cope|copen|co|copy|cpf|cpfile|cp|cprevious|cq|cquit|cr|crewind|cuna|cunabbrev|cu|cunmap|cw|cwindow|debugg|debuggreedy|delc|delcommand|d|delete|delf|delfunction|delm|delmarks|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|di|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|earlier|echoe|echoerr|echom|echomsg|echon|e|edit|el|else|elsei|elseif|em|emenu|endfo|endfor|endf|endfunction|endfun|en|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fina|finally|fin|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|folddoc|folddoclosed|foldd|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|ha|hardcopy|h|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iuna|iunabbrev|iu|iunmap|j|join|ju|jumps|k|keepalt|keepj|keepjumps|kee|keepmarks|laddb|laddbuffer|lad|laddexpr|laddf|laddfile|lan|language|la|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|let|left|lefta|leftabove|lex|lexpr|lf|lfile|lfir|lfirst|lgetb|lgetbuffer|lgete|lgetexpr|lg|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|l|list|ll|lla|llast|lli|llist|lmak|lmake|lm|lmap|lmapc|lmapclear|lnew|lnewer|lne|lnext|lN|lNext|lnf|lnfile|lNf|lNfile|ln|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lpf|lpfile|lp|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|mak|make|ma|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkvie|mkview|mkv|mkvimrc|mod|mode|m|move|mzf|mzfile|mz|mzscheme|nbkey|new|n|next|N|Next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|omapc|omapclear|on|only|o|open|opt|options|ou|ounmap|pc|pclose|ped|pedit|pe|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|p|print|P|Print|profd|profdel|prof|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|pyf|pyfile|py|python|qa|qall|q|quit|quita|quitall|r|read|rec|recover|redi|redir|red|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|rub|ruby|rubyd|rubydo|rubyf|rubyfile|ru|runtime|rv|rviminfo|sal|sall|san|sandbox|sa|sargument|sav|saveas|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sb|sbuffer|scripte|scriptencoding|scrip|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sla|slast|sl|sleep|sm|smagic|sm|smap|smapc|smapclear|sme|smenu|sn|snext|sN|sNext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|sor|sort|so|source|spelld|spelldump|spe|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|sp|split|spr|sprevious|sre|srewind|sta|stag|startg|startgreplace|star|startinsert|startr|startreplace|stj|stjump|st|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tab|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabnew|tabn|tabnext|tabN|tabNext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|ta|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tm|tmenu|tn|tnext|tN|tNext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tu|tunmenu|una|unabbreviate|u|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|verb|verbose|ve|version|vert|vertical|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|vi|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|wa|wall|wh|while|winc|wincmd|windo|winp|winpos|win|winsize|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|w|write|ws|wsverb|wv|wviminfo|X|xa|xall|x|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|XMLent|XMLns|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\\b/,builtin:/\\b(?:autocmd|acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|t_AB|t_AF|t_al|t_AL|t_bc|t_cd|t_ce|t_Ce|t_cl|t_cm|t_Co|t_cs|t_Cs|t_CS|t_CV|t_da|t_db|t_dl|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_fs|t_IE|t_IS|t_k1|t_K1|t_k2|t_k3|t_K3|t_k4|t_K4|t_k5|t_K5|t_k6|t_K6|t_k7|t_K7|t_k8|t_K8|t_k9|t_K9|t_KA|t_kb|t_kB|t_KB|t_KC|t_kd|t_kD|t_KD|t_ke|t_KE|t_KF|t_KG|t_kh|t_KH|t_kI|t_KI|t_KJ|t_KK|t_kl|t_KL|t_kN|t_kP|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_RI|t_RV|t_Sb|t_se|t_Sf|t_SI|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_WP|t_WS|t_xs|t_ZH|t_ZR)\\b/,number:/\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?)\\b/i,operator:/\\|\\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\\/%?]|\\b(?:is(?:not)?)\\b/,punctuation:/[{}[\\](),;:]/};\nPrism.languages[\"visual-basic\"]={comment:{pattern:/(?:['ā€˜ā€™]|REM\\b).*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:[^\\S\\r\\n]_[^\\S\\r\\n]*(?:\\r\\n?|\\n)|.)+/i,alias:\"comment\",greedy:!0},string:{pattern:/[\"ā€œā€](?:[\"ā€œā€]{2}|[^\"ā€œā€])*[\"ā€œā€]C?/i,greedy:!0},date:{pattern:/#[^\\S\\r\\n]*(?:\\d+([\\/-])\\d+\\1\\d+(?:[^\\S\\r\\n]+(?:\\d+[^\\S\\r\\n]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[^\\S\\r\\n]*(?:AM|PM))?))?|(?:\\d+[^\\S\\r\\n]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[^\\S\\r\\n]*(?:AM|PM))?))[^\\S\\r\\n]*#/i,alias:\"builtin\"},number:/(?:(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)(?:E[+-]?\\d+)?|&[HO][\\dA-F]+)(?:U?[ILS]|[FRD])?/i,\"boolean\":/\\b(?:True|False|Nothing)\\b/i,keyword:/\\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|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|Try|TryCast|TypeOf|U(?:Integer|Long|Short)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\\b/i,operator:[/[+\\-*\\/\\\\^<=>&#@$%!]/,{pattern:/([^\\S\\r\\n])_(?=[^\\S\\r\\n]*[\\r\\n])/,lookbehind:!0}],punctuation:/[{}().,:?]/},Prism.languages.vb=Prism.languages[\"visual-basic\"];\nPrism.languages.wasm={comment:[/\\(;[\\s\\S]*?;\\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,greedy:!0},keyword:[{pattern:/\\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\\b(?:(?:f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))?|memory\\.(?:grow|size))\\b/,inside:{punctuation:/\\./}},/\\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\\b/],variable:/\\$[\\w!#$%&'*+\\-.\\/:<=>?@\\\\^_`|~]+/i,number:/[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/,punctuation:/[()]/};\nPrism.languages.wiki=Prism.languages.extend(\"markup\",{\"block-comment\":{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0,alias:\"comment\"},heading:{pattern:/^(=+).+?\\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\\1/,inside:{\"bold italic\":{pattern:/(''''').+?(?=\\1)/,lookbehind:!0},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:\"punctuation\"},url:[/ISBN +(?:97[89][ -]?)?(?:\\d[ -]?){9}[\\dx]\\b|(?:RFC|PMID) +\\d+/i,/\\[\\[.+?\\]\\]|\\[.+?\\]/],variable:[/__[A-Z]+__/,/\\{{3}.+?\\}{3}/,/\\{\\{.+?\\}\\}/],symbol:[/^#redirect/im,/~{3,5}/],\"table-tag\":{pattern:/((?:^|[|!])[|!])[^|\\r\\n]+\\|(?!\\|)/m,lookbehind:!0,inside:{\"table-bar\":{pattern:/\\|$/,alias:\"punctuation\"},rest:Prism.languages.markup.tag.inside}},punctuation:/^(?:\\{\\||\\|\\}|\\|-|[*#:;!|])|\\|\\||!!/m}),Prism.languages.insertBefore(\"wiki\",\"tag\",{nowiki:{pattern:/<(nowiki|pre|source)\\b[\\s\\S]*?>[\\s\\S]*?<\\/\\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\\b[\\s\\S]*?>|<\\/(?:nowiki|pre|source)>/i,inside:Prism.languages.markup.tag.inside}}}});\n!function(n){n.languages.xeora=n.languages.extend(\"markup\",{constant:{pattern:/\\$(?:DomainContents|PageRenderDuration)\\$/,inside:{punctuation:{pattern:/\\$/}}},variable:{pattern:/\\$@?(?:#+|[-+*~=^])?[\\w.]+\\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},\"function-inline\":{pattern:/\\$F:[-\\w.]+\\?[-\\w.]+(?:,(?:\\|?(?:[-#.^+*~]*(?:[\\w+][^$]*)|=(?:[\\S+][^$]*)|@[-#]*(?:\\w+.)[\\w+.]+)?)*)?\\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\\$\\w:|[$:?.,|]/}},alias:\"function\"},\"function-block\":{pattern:/\\$XF:{[-\\w.]+\\?[-\\w.]+(?:,(?:\\|?(?:[-#.^+*~]*(?:[\\w+][^$]*)|=(?:[\\S+][^$]*)|@[-#]*(?:\\w+.)[\\w+.]+)?)*)?}:XF\\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:\"function\"},\"directive-inline\":{pattern:/\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+])?:[-\\/\\w.]+\\$/,inside:{punctuation:{pattern:/\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,inside:{tag:{pattern:/#\\d/}}}},alias:\"function\"},\"directive-block-open\":{pattern:/\\$\\w+:{|\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+])?:[-\\w.]+:{(![A-Z]+)?/,inside:{punctuation:{pattern:/\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,inside:{tag:{pattern:/#\\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:\"keyword\"}},alias:\"function\"},\"directive-block-separator\":{pattern:/}:[-\\w.]+:{/,inside:{punctuation:{pattern:/[:{}]/}},alias:\"function\"},\"directive-block-close\":{pattern:/}:[-\\w.]+\\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:\"function\"}}),n.languages.insertBefore(\"inside\",\"punctuation\",{variable:n.languages.xeora[\"function-inline\"].inside.variable},n.languages.xeora[\"function-block\"]),n.languages.xeoracube=n.languages.xeora}(Prism);\nPrism.languages.xojo={comment:{pattern:/(?:'|\\/\\/|Rem\\b).+/i,inside:{keyword:/^Rem/i}},string:{pattern:/\"(?:\"\"|[^\"])*\"/,greedy:!0},number:[/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,/&[bchou][a-z\\d]+/i],symbol:/#(?:If|Else|ElseIf|Endif|Pragma)\\b/i,keyword:/\\b(?:AddHandler|App|Array|As(?:signs)?|By(?:Ref|Val)|Break|Call|Case|Catch|Const|Continue|CurrentMethodName|Declare|Dim|Do(?:wnTo)?|Each|Else(?:If)?|End|Exit|Extends|False|Finally|For|Global|If|In|Lib|Loop|Me|Next|Nil|Optional|ParamArray|Raise(?:Event)?|ReDim|Rem|RemoveHandler|Return|Select|Self|Soft|Static|Step|Super|Then|To|True|Try|Ubound|Until|Using|Wend|While)\\b/i,operator:/<[=>]?|>=?|[+\\-*\\/\\\\^=]|\\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\\b/i,punctuation:/[.,;:()]/};\n!function(e){e.languages.xquery=e.languages.extend(\"markup\",{\"xquery-comment\":{pattern:/\\(:[\\s\\S]*?:\\)/,greedy:!0,alias:\"comment\"},string:{pattern:/([\"'])(?:\\1\\1|(?!\\1)[\\s\\S])*\\1/,greedy:!0},extension:{pattern:/\\(#.+?#\\)/,alias:\"symbol\"},variable:/\\$[\\w-:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:\"operator\"},\"keyword-operator\":{pattern:/(^|[^:-])\\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\\b(?=$|[^:-])/,lookbehind:!0,alias:\"operator\"},keyword:{pattern:/(^|[^:-])\\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\\b(?=$|[^:-])/,lookbehind:!0},\"function\":/[\\w-]+(?::[\\w-]+)*(?=\\s*\\()/,\"xquery-element\":{pattern:/(element\\s+)[\\w-]+(?::[\\w-]+)*/,lookbehind:!0,alias:\"tag\"},\"xquery-attribute\":{pattern:/(attribute\\s+)[\\w-]+(?::[\\w-]+)*/,lookbehind:!0,alias:\"attr-name\"},builtin:{pattern:/(^|[^:-])\\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|ENTITIES|ENTITY|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|ID|IDREFS?|int|integer|language|long|Name|NCName|negativeInteger|NMTOKENS?|nonNegativeInteger|nonPositiveInteger|normalizedString|NOTATION|positiveInteger|QName|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\\b(?=$|[^:-])/,lookbehind:!0},number:/\\b\\d+(?:\\.\\d+)?(?:E[+-]?\\d+)?/,operator:[/[+*=?|@]|\\.\\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\\s)-(?=\\s)/,lookbehind:!0}],punctuation:/[[\\](){},;:\\/]/}),e.languages.xquery.tag.pattern=/<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,e.languages.xquery.tag.inside[\"attr-value\"].pattern=/=(?:(\"|')(?:\\\\[\\s\\S]|{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/i,e.languages.xquery.tag.inside[\"attr-value\"].inside.punctuation=/^=\"|\"$/,e.languages.xquery.tag.inside[\"attr-value\"].inside.expression={pattern:/{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}/,inside:{rest:e.languages.xquery},alias:\"language-xquery\"};var t=function(e){return\"string\"==typeof e?e:\"string\"==typeof e.content?e.content:e.content.map(t).join(\"\")},n=function(a){for(var o=[],i=0;i0&&o[o.length-1].tagName===t(r.content[0].content[1])&&o.pop():\"/>\"===r.content[r.content.length-1].content||o.push({tagName:t(r.content[0].content[1]),openedBraces:0}):!(o.length>0&&\"punctuation\"===r.type&&\"{\"===r.content)||a[i+1]&&\"punctuation\"===a[i+1].type&&\"{\"===a[i+1].content||a[i-1]&&\"plain-text\"===a[i-1].type&&\"{\"===a[i-1].content?o.length>0&&o[o.length-1].openedBraces>0&&\"punctuation\"===r.type&&\"}\"===r.content?o[o.length-1].openedBraces--:\"comment\"!==r.type&&(s=!0):o[o.length-1].openedBraces++),(s||\"string\"==typeof r)&&o.length>0&&0===o[o.length-1].openedBraces){var l=t(r);i0&&(\"string\"==typeof a[i-1]||\"plain-text\"===a[i-1].type)&&(l=t(a[i-1])+l,a.splice(i-1,1),i--),a[i]=/^\\s+$/.test(l)?l:new e.Token(\"plain-text\",l,null,l)}r.content&&\"string\"!=typeof r.content&&n(r.content)}};e.hooks.add(\"after-tokenize\",function(e){\"xquery\"===e.language&&n(e.tokens)})}(Prism);\nPrism.languages.tap={fail:/not ok[^#{\\n\\r]*/,pass:/ok[^#{\\n\\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \\d+/i,plan:/\\d+\\.\\.\\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[^\\S\\r\\n]*)---(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?[^\\S\\r\\n]*\\.\\.\\.$/m,lookbehind:!0,inside:Prism.languages.yaml,alias:\"language-yaml\"}};\n!function(){function e(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function t(e,t){return t=\" \"+t+\" \",(\" \"+e.className+\" \").replace(/[\\n\\t]/g,\" \").indexOf(t)>-1}function n(e,n,i){n=\"string\"==typeof n?n:e.getAttribute(\"data-line\");for(var o,l=n.replace(/\\s+/g,\"\").split(\",\"),a=+e.getAttribute(\"data-line-offset\")||0,s=r()?parseInt:parseFloat,d=s(getComputedStyle(e).lineHeight),u=t(e,\"line-numbers\"),c=0;o=l[c++];){var p=o.split(\"-\"),m=+p[0],f=+p[1]||m,h=e.querySelector('.line-highlight[data-range=\"'+o+'\"]')||document.createElement(\"div\");if(h.setAttribute(\"aria-hidden\",\"true\"),h.setAttribute(\"data-range\",o),h.className=(i||\"\")+\" line-highlight\",u&&Prism.plugins.lineNumbers){var g=Prism.plugins.lineNumbers.getLine(e,m),y=Prism.plugins.lineNumbers.getLine(e,f);g&&(h.style.top=g.offsetTop+\"px\"),y&&(h.style.height=y.offsetTop-g.offsetTop+y.offsetHeight+\"px\")}else h.setAttribute(\"data-start\",m),f>m&&h.setAttribute(\"data-end\",f),h.style.top=(m-a-1)*d+\"px\",h.textContent=new Array(f-m+2).join(\" \\n\");u?e.appendChild(h):(e.querySelector(\"code\")||e).appendChild(h)}}function i(){var t=location.hash.slice(1);e(\".temporary.line-highlight\").forEach(function(e){e.parentNode.removeChild(e)});var i=(t.match(/\\.([\\d,-]+)$/)||[,\"\"])[1];if(i&&!document.getElementById(t)){var r=t.slice(0,t.lastIndexOf(\".\")),o=document.getElementById(r);o&&(o.hasAttribute(\"data-line\")||o.setAttribute(\"data-line\",\"\"),n(o,i,\"temporary \"),document.querySelector(\".temporary.line-highlight\").scrollIntoView())}}if(\"undefined\"!=typeof self&&self.Prism&&self.document&&document.querySelector){var r=function(){var e;return function(){if(\"undefined\"==typeof e){var t=document.createElement(\"div\");t.style.fontSize=\"13px\",t.style.lineHeight=\"1.5\",t.style.padding=0,t.style.border=0,t.innerHTML=\" 
 \",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}}(),o=0;Prism.hooks.add(\"before-sanity-check\",function(t){var n=t.element.parentNode,i=n&&n.getAttribute(\"data-line\");if(n&&i&&/pre/i.test(n.nodeName)){var r=0;e(\".line-highlight\",n).forEach(function(e){r+=e.textContent.length,e.parentNode.removeChild(e)}),r&&/^( \\n)+$/.test(t.code.slice(-r))&&(t.code=t.code.slice(0,-r))}}),Prism.hooks.add(\"complete\",function l(e){var r=e.element.parentNode,a=r&&r.getAttribute(\"data-line\");if(r&&a&&/pre/i.test(r.nodeName)){clearTimeout(o);var s=Prism.plugins.lineNumbers,d=e.plugins&&e.plugins.lineNumbers;t(r,\"line-numbers\")&&s&&!d?Prism.hooks.add(\"line-numbers\",l):(n(r,a),o=setTimeout(i,1))}}),window.addEventListener(\"hashchange\",i),window.addEventListener(\"resize\",function(){var e=document.querySelectorAll(\"pre[data-line]\");Array.prototype.forEach.call(e,function(e){n(e)})})}}();\n!function(){\"undefined\"!=typeof self&&!self.Prism||\"undefined\"!=typeof global&&!global.Prism||Prism.hooks.add(\"wrap\",function(e){\"keyword\"===e.type&&e.classes.push(\"keyword-\"+e.content)})}();\n!function(){function e(e){this.defaults=r({},e)}function n(e){return e.replace(/-(\\w)/g,function(e,n){return n.toUpperCase()})}function t(e){for(var n=0,t=0;tn&&(o[s]=\"\\n\"+o[s],a=l)}r[i]=o.join(\"\")}return r.join(\"\\n\")}},\"undefined\"!=typeof module&&module.exports&&(module.exports=e),\"undefined\"!=typeof Prism&&(Prism.plugins.NormalizeWhitespace=new e({\"remove-trailing\":!0,\"remove-indent\":!0,\"left-trim\":!0,\"right-trim\":!0}),Prism.hooks.add(\"before-sanity-check\",function(e){var n=Prism.plugins.NormalizeWhitespace;if(!e.settings||e.settings[\"whitespace-normalization\"]!==!1){if((!e.element||!e.element.parentNode)&&e.code)return e.code=n.normalize(e.code,e.settings),void 0;var t=e.element.parentNode,r=/\\bno-whitespace-normalization\\b/;if(e.code&&t&&\"pre\"===t.nodeName.toLowerCase()&&!r.test(t.className)&&!r.test(e.element.className)){for(var i=t.childNodes,o=\"\",a=\"\",s=!1,l=0;l\n \n this.engine.action ('Canvas').objects ({\n stars: {\n start: () => {},\n stop: () => {},\n restart: () => {},\n layers: [],\n state: {},\n props: {}\n }\n });\n \n \n `,\n '_2': 'Notice the object defined uses a name or an id, in this case it was set to \"stars\" and to show it, you must use that exact name:',\n '_3': `\n
\"show canvas stars background\"
\n `\n }\n }\n });\n\n // Dialog Action\n FancyError.register('action:dialog:textbox_hidden', {\n title: 'A dialog is being shown while the textbox is hidden',\n message: 'Monogatari attempted to display a dialog but the textbox is currently hidden. The dialog will still be shown, but the player may not be able to see it.',\n props: {\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'If you intentionally hid the textbox, make sure to show it again before displaying dialog:',\n '_1': `\n
\"show textbox\"
\n `,\n '_2': 'If you want to show visual elements without dialog while the textbox is hidden, use non-dialog actions like show image or show character.'\n }\n }\n });\n\n // Message Action\n FancyError.register('action:message:not_found', {\n title: 'The message \"{{id}}\" was not found',\n message: 'Monogatari attempted to retrieve a message named \"{{id}}\" but it didn\\'t exist in the messages object.',\n props: {\n 'Message': '{{id}}',\n 'You may have meant': '{{availableMessages}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check the message name is correct and that you have defined it previously. A Message is defined as follows:',\n '_1': `\n
\n            \n              this.engine.action ('message').mesages ({\n                'Welcome': {\n                  title: 'Welcome!',\n                  subtitle: 'This is the Monogatari VN Engine',\n                  body: 'This is where the magic gets done!'\n                }\n              });\n            \n          
\n `,\n '_2': 'Notice the message defined uses a name or an id, in this case it was set to \"Welcome\" and to show it, you must use that exact name:',\n '_3': `\n
\"show message Welcome\"
\n `\n }\n }\n });\n\n // HideCharacterLayer Action\n FancyError.register('action:hide_character_layer:character_not_found', {\n title: 'The character \"{{asset}}\" does not exist',\n message: 'Monogatari attempted to get information about the character \"{{asset}}\" but it wasn\\'t found on the characters object.',\n props: {\n 'Missing Character': '{{asset}}',\n 'You may have meant one of these': '{{availableCharacters}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check your characters object and your script to make sure the character exists and that it does not have a typo in it.'\n }\n }\n });\n\n FancyError.register('action:hide_character_layer:layer_not_shown', {\n title: 'The character layer \"{{layer}}\" can\\'t hide because it\\'s not being shown',\n message: 'Monogatari attempted to hide the layer \"{{layer}}\" of the character \"{{asset}}\" but it was not being shown.',\n props: {\n 'Missing Layer': '{{layer}}',\n 'Character': '{{asset}}',\n 'You may have meant one of these': '{{availableCharacters}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check that before this hide action you have a show action that shows the character you want to hide.'\n }\n }\n });\n\n // HideCharacter Action\n FancyError.register('action:hide_character:character_not_found', {\n title: 'The character \"{{asset}}\" does not exist',\n message: 'Monogatari attempted to get information about the character \"{{asset}}\" but it wasn\\'t found on the characters object.',\n props: {\n 'Missing Character': '{{asset}}',\n 'You may have meant one of these': '{{availableCharacters}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check your characters object and your script to make sure the character exists and that it does not have a typo in it.'\n }\n }\n });\n\n FancyError.register('action:hide_character:not_shown', {\n title: 'The character \"{{asset}}\" can\\'t hide because it\\'s not being shown',\n message: 'Monogatari attempted to hide the character \"{{asset}}\" but it was not being shown.',\n props: {\n 'Missing Character': '{{asset}}',\n 'You may have meant one of these': '{{availableCharacters}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check that before this hide action you have a show action that shows the character you want to hide.'\n }\n }\n });\n\n // ShowCharacter Action\n FancyError.register('action:show_character:character_not_found', {\n title: 'The character \"{{asset}}\" does not exist',\n message: 'Monogatari attempted to show the character \"{{asset}}\" but it wasn\\'t found on the characters object.',\n props: {\n 'Missing Character': '{{asset}}',\n 'You may have meant one of these': '{{availableCharacters}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check your characters object and your script to make sure the character exists and that it does not have a typo in it.'\n }\n }\n });\n\n FancyError.register('action:show_character:sprite_not_found', {\n title: 'The sprite \"{{sprite}}\" for character \"{{asset}}\" does not exist',\n message: 'Monogatari attempted to show the character \"{{asset}}\" with sprite \"{{sprite}}\" but the sprite wasn\\'t found.',\n props: {\n 'Character': '{{asset}}',\n 'Missing Sprite': '{{sprite}}',\n 'Available Sprites': '{{availableSprites}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check that the sprite name is correctly defined in your character\\'s sprites object.'\n }\n }\n });\n\n // ShowCharacterLayer Action\n FancyError.register('action:show_character_layer:character_not_found', {\n title: 'The character \"{{asset}}\" does not exist',\n message: 'Monogatari attempted to show a layer for character \"{{asset}}\" but the character wasn\\'t found on the characters object.',\n props: {\n 'Missing Character': '{{asset}}',\n 'Layer': '{{layer}}',\n 'You may have meant one of these': '{{availableCharacters}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check your characters object and your script to make sure the character exists and that it does not have a typo in it.'\n }\n }\n });\n\n FancyError.register('action:show_character_layer:sprite_not_found', {\n title: 'The sprite \"{{sprite}}\" for layer \"{{layer}}\" of character \"{{asset}}\" does not exist',\n message: 'Monogatari attempted to show a character layer but the sprite wasn\\'t found in the layer assets.',\n props: {\n 'Character': '{{asset}}',\n 'Layer': '{{layer}}',\n 'Missing Sprite': '{{sprite}}',\n 'Available Sprites': '{{availableSprites}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check that the sprite name is correctly defined in your character\\'s layer_assets object for this layer.'\n }\n }\n });\n\n // HideImage Action\n FancyError.register('action:hide_image:not_shown', {\n title: 'The image \"{{asset}}\" can\\'t hide because it\\'s not being shown',\n message: 'Monogatari attempted to hide the image \"{{asset}}\" but it was not being shown.',\n props: {\n 'Missing Image': '{{asset}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check that before this hide action you have a show action that shows the image you want to hide.'\n }\n }\n });\n\n // HideCanvas Action\n FancyError.register('action:hide_canvas:not_shown', {\n title: 'The canvas \"{{name}}\" can\\'t hide because it\\'s not being shown',\n message: 'Monogatari attempted to hide the canvas \"{{name}}\" but it was not being shown.',\n props: {\n 'Canvas': '{{name}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check that before this hide action you have a show action that shows the canvas you want to hide.'\n }\n }\n });\n\n // Conditional Action\n FancyError.register('action:conditional:negative_value', {\n title: 'Conditional condition returned a negative number \"{{value}}\".',\n message: 'The `Condition` function returned \"{{value}}\" and only positive numbers are allowed for numeric values.',\n props: {\n 'Problematic Value': '{{value}}',\n 'You may have meant one of these': '{{availableBranches}}'\n }\n });\n\n FancyError.register('action:conditional:non_integer_value', {\n title: 'Conditional condition returned a non-integer value \"{{value}}\".',\n message: 'The `Condition` function returned \"{{value}}\" and only integer numbers are allowed for numeric values.',\n props: {\n 'Problematic Value': '{{value}}',\n 'You may have meant one of these': '{{availableBranches}}'\n }\n });\n\n FancyError.register('action:conditional:branch_not_found', {\n title: 'Conditional attempted to execute a non existent branch \"{{branch}}\"',\n message: 'The `Condition` function returned \"{{branch}}\" as the branch to execute but it does not exist.',\n props: {\n 'Problematic Branch': '{{branch}}',\n 'You may have meant one of these': '{{availableBranches}}'\n }\n });\n\n // Notification Action\n FancyError.register('action:notification:invalid_time', {\n title: 'The specified time was not an integer',\n message: 'Monogatari attempted to transform the given time into an integer value but failed.',\n props: {\n 'Specified time': '{{time}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.',\n '_1': 'For example, the following statement would make a notification go away after 5 seconds:',\n '_3': `\n
\"show notification Welcome 5000\"
\n `\n }\n }\n });\n\n FancyError.register('action:notification:not_found', {\n title: 'The notification \"{{name}}\" was not found',\n message: 'Monogatari attempted to retrieve a notification named \"{{name}}\" but it didn\\'t exist in the notifications object.',\n props: {\n 'Notification': '{{name}}',\n 'You may have meant': '{{availableNotifications}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check the notification\\'s name is correct and that you have defined it previously. A Notification is defined as follows:',\n '_1': `\n
\n            \n              this.engine.action ('Notification').notifications ({\n                'Welcome': {\n                  title: 'Welcome!',\n                  body: 'This is the Monogatari VN Engine',\n                  icon: ''\n                }\n              });\n            \n          
\n `,\n '_2': 'Notice the notification defined uses a name or an id, in this case it was set to \"Welcome\" and to show it, you must use that exact name:',\n '_3': `\n
\"show notification Welcome\"
\n `\n }\n }\n });\n\n // Function Action\n FancyError.register('action:function:apply_error', {\n title: 'An error occurred while trying to revert a Reversible Function.',\n message: 'Monogatari attempted to run the `Apply` method of a Reversible Function but an error occurred.',\n props: {\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check the code for your function, there may be additional information in the console.',\n }\n }\n });\n\n FancyError.register('action:function:revert_error', {\n title: 'An error occurred while trying to revert a Reversible Function.',\n message: 'Monogatari attempted to run the `Revert` method of a Reversible Function but an error occurred.',\n props: {\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check the code for your function, there may be additional information in the console.',\n }\n }\n });\n\n // Video Action\n FancyError.register('action:video:invalid_mode', {\n title: 'The video mode provided (\"{{mode}}\") is not valid.',\n message: 'Monogatari attempted to play a video but the mode \"{{mode}}\" was not found in the video action configuration as a valid mode.',\n props: {\n 'Mode Provided': '{{mode}}',\n 'You may have meant one of these': '{{validModes}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check your statement and make sure there are no typos on the mode you provided.'\n }\n }\n });\n\n // Wait Action\n FancyError.register('action:wait:invalid_time', {\n title: 'The specified time was not an integer',\n message: 'Monogatari attempted to transform the given time into an integer value but failed.',\n props: {\n 'Specified time': '{{time}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.',\n '_1': 'For example, the following statement would make the game wait for 5 seconds:',\n '_3': `\n
\"wait 5000\"
\n `\n }\n }\n });\n\n // Vibrate Action\n FancyError.register('action:vibrate:invalid_time', {\n title: 'The specified time was not an integer',\n message: 'Monogatari attempted to transform the given time into an integer value but failed.',\n props: {\n 'Specified time': '{{time}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.',\n '_1': 'For example, the following statement would make the device vibrate for 5 seconds:',\n '_3': `\n
\"vibrate 5000\"
\n `,\n '_4': 'If you wanted to make the device vibrate on a pattern, this is a correct syntax:',\n '_5': `\n
\"vibrate 5000 100 4000 200 3000\"
\n `\n }\n }\n });\n\n // Jump Action\n FancyError.register('action:jump:label_not_found', {\n title: 'The label \"{{targetLabel}}\" does not exist',\n message: 'Monogatari attempted to jump to the label named \"{{targetLabel}}\" but it wasn\\'t found on the script.',\n props: {\n 'Missing Label': '{{targetLabel}}',\n 'You may have meant one of these': '{{availableLabels}}',\n 'Statement': '{{statement}}',\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'Check if the label in your jump statement is correct and that you have also defined it correctly.'\n }\n }\n });\n\n // Language Selection Screen\n FancyError.register('component:language_selection_screen:metadata_not_found', {\n title: 'Metadata for language \"{{language}}\" could not be found.',\n message: 'Monogatari attempted to retrieve the metadata for this language but it does not exists',\n props: {\n 'Language Not Found': '{{language}}',\n 'You may have meant one of these': '{{availableLanguages}}',\n 'Help': {\n '_': 'Please check that you have defined the metadata for this language. Remember the metadata is defined as follows:',\n '_1': `\n
\n            \n            monogatari.languageMetadata (\"EspaƱol\", {\n              \"code\": \"es\",\n              \"icon\": \"šŸ‡²šŸ‡½\"\n            });\n            \n          
\n `,\n 'Documentation': 'Internationalization'\n }\n }\n });\n\n // ----------------------------------------------------------------------------\n // Engine Errors\n // ----------------------------------------------------------------------------\n\n // Translation Errors\n FancyError.register('engine:translation:key_not_found', {\n title: 'Translation for string \"{{key}}\" could not be found',\n message: 'Monogatari attempted to find a translation for the current language set in the preferences but there was none.',\n props: {\n 'String Not Found': '{{key}}',\n 'Language': '{{language}}',\n 'Found in these elements': '{{elements}}',\n 'You may have meant one of these': '{{availableStrings}}',\n 'Help': {\n '_': 'Please check that this string has been correctly defined in your translations. A translation is defined as follows:',\n '_1': `\n
\n            \n            monogatari.translation (\"YourLanguage\", {\n              \"SomeString\": \"Your Translation\"\n            });\n            \n          
\n `,\n '_2': 'You may also want to check if the [data-string] property of the HTML elements above is correct or if they have a typo.',\n 'Documentation': 'Internationalization'\n }\n }\n });\n\n FancyError.register('engine:translation:language_not_found', {\n title: 'Language could not be found',\n message: 'Monogatari attempted to translate the UI using the current language set in the preferences but no translations could be found for it.',\n props: {\n 'Problematic Language': '{{language}}',\n 'You may have meant one of these': '{{availableLanguages}}',\n 'Help': {\n '_': 'Please check if you have defined correctly the translations for this language, translations are defined as follows:',\n '_1': `\n
\n            \n            monogatari.translation (\"YourLanguage\", {\n              \"SomeString\": \"Your Translation\"\n            });\n            \n          
\n `,\n '_2': 'You may also want to check if the value of your language selector is right:',\n '_3': '{{languageSelectorValue}}',\n 'Documentation': 'Internationalization'\n }\n }\n });\n\n // Component Registration Errors\n FancyError.register('engine:component:already_registered', {\n title: 'Unable to register component \"{{tag}}\"',\n message: 'Monogatari attempted to register a component but another component had already been registered for the same tag.',\n props: {\n 'Component / Tag': '{{component}}',\n 'Help': {\n '_': 'Once a component for a tag has been registered and the setup has completed, it can not be replaced or removed. Try removing the conflicting component first:',\n '_1': '{{unregisterCode}}',\n }\n }\n });\n\n FancyError.register('engine:component:unregister_after_setup', {\n title: 'Unable to unregister component \"{{component}}\"',\n message: 'Monogatari attempted to unregister a component but the setup had already happened.',\n props: {\n 'Component': '{{component}}',\n 'Help': {\n '_': 'Components can only be unregistered before the setup step is completed.',\n '_1': 'Try performing this action before the monogatari.init () function is called.'\n }\n }\n });\n\n // Script Errors\n FancyError.register('engine:script:language_not_found', {\n title: 'Script Language \"{{language}}\" Was Not Found',\n message: 'Monogatari attempted to retrieve the script for this language but it does not exists',\n props: {\n 'Language Not Found': '{{language}}',\n 'MultiLanguage Setting': '{{multiLanguageSetting}}',\n 'You may have meant one of these': '{{availableLanguages}}',\n 'Help': {\n '_': 'If your game is not a multilanguage game, change the setting on your options.js file',\n '_1': `\n
\n            \n            \"MultiLanguage\": false,\n            \n          
\n `,\n '_2': 'If your game is a multilanguage game, please check that the language label is correctly written on your script. Remember a multilanguage script looks like this:',\n '_3': `\n
\n            \n            monogatari.script ({\n              'English': {\n                'Start': [\n                  'Hi, welcome to your first Visual Novel with Monogatari.'\n                ]\n              },\n              'EspaƱol': {\n                'Start': [\n                  'Hola, bienvenido a tu primer Novela Visual con Monogatari'\n                ]\n              }\n            });\n            \n          
\n `\n }\n }\n });\n\n FancyError.register('engine:script:label_not_found', {\n title: '\"{{startLabel}}\" Label was not found',\n message: 'Monogatari tried to get your start label but it couldn\\'t find it in your script.',\n props: {\n 'Start Label on your Settings': '{{startLabel}}',\n 'Labels Available': '{{availableLabels}}',\n 'Help': {\n '_': 'Please check that the label exists in your script.'\n }\n }\n });\n\n // Storage Errors\n FancyError.register('engine:storage:variable_not_found', {\n title: 'Variable \"{{variable}}\" does not exists in your storage',\n message: 'Monogatari attempted to interpolate a variable from your storage but it doesn\\'t exists.',\n props: {\n 'Script Statement': '{{statement}}',\n 'Part Not Found': '{{partNotFound}}',\n 'Variables Available in Storage': '{{availableVariables}}',\n 'Help': {\n '_': 'Please check your storage object and make sure the variable you are using exists.',\n '_1': 'You should also make sure that there is no typo in your script and that the variable names in your script and storage match.',\n 'Documentation': 'Storage'\n }\n }\n });\n\n // Runtime Errors\n FancyError.register('engine:run:function_error', {\n title: 'An error occurred while trying to run a Function.',\n message: 'Monogatari attempted to run a function on the script but an error occurred.',\n props: {\n 'Label': '{{label}}',\n 'Step': '{{step}}',\n 'Help': {\n '_': 'More details should be available at the console.',\n }\n }\n });\n\n // Lifecycle Errors\n FancyError.register('engine:lifecycle:should_proceed_error', {\n title: 'An error ocurred while trying to execute a shouldProceed function.',\n message: 'Monogatari attempted to execute the function but an error ocurred.',\n props: {\n 'Error Message': '{{errorMessage}}',\n 'Help': {\n '_': 'More details should be available at the console.',\n }\n }\n });\n\n FancyError.register('engine:lifecycle:will_proceed_error', {\n title: 'An error ocurred while trying to execute a willProceed function.',\n message: 'Monogatari attempted to execute the function but an error ocurred.',\n props: {\n 'Error Message': '{{errorMessage}}',\n 'Help': {\n '_': 'More details should be available at the console.',\n }\n }\n });\n\n FancyError.register('engine:lifecycle:should_rollback_error', {\n title: 'An error ocurred while trying to execute a shouldRollback function.',\n message: 'Monogatari attempted to execute the function but an error ocurred.',\n props: {\n 'Error Message': '{{errorMessage}}',\n 'Help': {\n '_': 'More details should be available at the console.',\n }\n }\n });\n\n FancyError.register('engine:lifecycle:will_rollback_error', {\n title: 'An error ocurred while trying to execute a willRollback function.',\n message: 'Monogatari attempted to execute the function but an error ocurred.',\n props: {\n 'Error Message': '{{errorMessage}}',\n 'Help': {\n '_': 'More details should be available at the console.',\n }\n }\n });\n\n // Music Errors\n FancyError.register('engine:music:not_defined', {\n title: 'The music \"{{music}}\" is not defined.',\n message: 'Monogatari attempted to find a definition of a music asset but there was none.',\n props: {\n 'Music Not Found': '{{music}}',\n 'You may have meant one of these': '{{availableMusic}}',\n 'Help': {\n '_': 'Please check that you have correctly defined this music asset and wrote its name correctly in the `MainScreenMusic` variable',\n '_1': `\n
\n            \n            'MainScreenMusic': 'TheKeyToYourMusicAsset'\n            \n          
\n `,\n }\n }\n });\n\n // Element Errors\n FancyError.register('engine:element:not_ready', {\n title: 'Main element is not ready yet',\n message: 'Monogatari attempted to execute a function when the main element was not fully loaded yet.',\n props: {\n 'Trace': 'You should be able to see an error with the order in which functions were executed in your browser\\'s console (Ctrl + Shift + i). The last one should be part of your code and that\\'s the one that needs to be changed.',\n 'Help': {\n '_': 'Please wrap or move your code into a $_ready () function block to wait for the page to be fully loaded before executing it.',\n '_1': `\n
\n            \n            monogatari.ready ('#monogatari', () => {\n              // Your code should go here\n            });\n            \n          
\n `\n }\n }\n });\n\n // Component Lifecycle Errors\n FancyError.register('engine:component:lifecycle_error', {\n title: 'Error in component <{{tag}}> during {{lifecycle}}',\n message: 'An error occurred while executing the {{lifecycle}} lifecycle method.',\n props: {\n 'Component': '{{tag}}',\n 'Lifecycle Method': '{{lifecycle}}',\n 'Error Message': '{{errorMessage}}',\n 'Stack Trace': '{{stackTrace}}',\n 'Help': {\n '_': 'Check the console for more details about this error.',\n '_1': 'Make sure all async operations in lifecycle methods are properly handled.'\n }\n }\n });\n\n FancyError.register('engine:storage:filesystem_no_bridge', {\n title: 'FileSystem storage requires a desktop environment',\n message: 'The FileSystem storage adapter is only available in Electron or Electrobun. Change your Storage adapter to IndexedDB or LocalStorage for browser-based games.',\n props: {\n 'Suggested Fix': 'Set Storage.Adapter to \"IndexedDB\" in your game settings, or run your game in an Electron or Electrobun wrapper.',\n }\n });\n\n FancyError.register('engine:screenshots:storage_incompatible', {\n title: 'Screenshot saving requires IndexedDB or custom storage',\n message: 'Automatic screenshot saving is not supported with LocalStorage or SessionStorage due to storage size limits. Either change your Storage adapter to IndexedDB or provide custom onSaveScreenshot and onLoadScreenshot callbacks.',\n props: {\n 'Current Adapter': '{{adapter}}',\n 'Suggested Fix': 'Set Storage.Adapter to \"IndexedDB\" in your game settings, or provide custom onSaveScreenshot/onLoadScreenshot callbacks.',\n }\n });\n}\n\n// Wait for Monogatari to be available, then register all errors with its\n// FancyError instance. This ensures we use the same instance the engine uses.\nif (typeof window === 'object') {\n // Poll for Monogatari to be available (it loads after this script)\n const waitForMonogatari = () => {\n if (window.Monogatari && window.Monogatari.FancyError) {\n registerErrors(window.Monogatari.FancyError);\n } else {\n // Check again on next frame\n requestAnimationFrame(waitForMonogatari);\n }\n };\n\n // Start checking\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', waitForMonogatari);\n } else {\n waitForMonogatari();\n }\n}\n\nif (typeof window === 'object') {\n window.addEventListener('error', (event) => {\n const { message, lineno, filename } = event;\n\n // Once the DOM is ready, a Fancy Error will be shown providing more information\n window.addEventListener('DOMContentLoaded', () => {\n // Use Monogatari's FancyError if available\n const FancyError = window.Monogatari?.FancyError;\n if (FancyError) {\n FancyError.show (\n 'An Unknown Error Occurred',\n message,\n {\n 'File': filename,\n 'Line': lineno,\n 'Help': {\n '_': 'This is most likely a scripting error, please check your script and JavaScript code for missing commas or incorrect syntax.',\n '_1': 'There may be additional information on your browser\\'s console. You can open your console by pressing Ctrl + Shift + I'\n }\n }\n );\n }\n });\n });\n}\n" + ], + "mappings": "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", + "debugId": "592EC49415DD1BE164756E2164756E21", + "names": [] +} \ No newline at end of file diff --git a/dist/engine/debug/debug.map b/dist/engine/debug/debug.map deleted file mode 100644 index eafc70a..0000000 --- a/dist/engine/debug/debug.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["vendor/prism.js","../node_modules/@aegis-framework/artemis/src/DOM.js","../node_modules/@aegis-framework/artemis/src/Request.js","../node_modules/@aegis-framework/artemis/src/FileSystem.js","../node_modules/@aegis-framework/artemis/src/Form.js","../node_modules/@aegis-framework/artemis/src/Platform.js","../node_modules/@aegis-framework/artemis/src/Preload.js","../node_modules/@aegis-framework/artemis/src/SpaceAdapter/LocalStorage.js","../node_modules/@aegis-framework/artemis/src/SpaceAdapter/SessionStorage.js","../node_modules/@aegis-framework/artemis/src/SpaceAdapter/IndexedDB.js","../node_modules/@aegis-framework/artemis/src/SpaceAdapter/RemoteStorage.js","../node_modules/@aegis-framework/artemis/src/Space.js","../node_modules/@aegis-framework/artemis/src/Text.js","../node_modules/@aegis-framework/artemis/src/Util.js","../node_modules/@aegis-framework/artemis/index.js","../core/lib/FancyError.js","index.js"],"names":["_self","window","WorkerGlobalScope","self","Prism","e","t","n","manual","disableWorkerMessageHandler","util","encode","r","type","content","alias","map","replace","Object","prototype","toString","call","match","objId","__id","defineProperty","value","clone","a","l","hasOwnProperty","forEach","languages","extend","insertBefore","arguments","length","i","o","s","DFS","plugins","highlightAll","highlightAllUnder","document","callback","selector","hooks","run","elements","querySelectorAll","highlightElement","test","className","parentNode","toLowerCase","nodeName","u","element","language","grammar","code","textContent","Worker","g","filename","onmessage","highlightedCode","data","innerHTML","postMessage","JSON","stringify","immediateClose","highlight","tokens","tokenize","matchGrammar","Token","c","h","f","inside","d","lookbehind","m","greedy","p","y","pattern","global","v","RegExp","source","b","k","w","lastIndex","_","exec","j","index","P","A","x","O","I","slice","N","S","C","push","E","Array","splice","apply","rest","all","add","join","tag","classes","attributes","parent","keys","addEventListener","parse","close","currentScript","getElementsByTagName","pop","src","hasAttribute","readyState","requestAnimationFrame","setTimeout","module","exports","markup","comment","prolog","doctype","cdata","punctuation","namespace","entity","title","xml","html","mathml","svg","css","atrule","rule","url","string","property","important","style","clike","keyword","number","operator","javascript","regex","constant","interpolation","script","js","abap","actionscript","ada","variable","apacheconf","apl","statement","assignment","dfn","applescript","macro","directive","arff","quoted","interpreted","asciidoc","table","specifiers","hr","admonition","callout","inline","italic","bold","replacement","asm6502","opcode","hexnumber","binarynumber","decimalnumber","register","csharp","preprocessor","dotnet","autohotkey","builtin","symbol","autoit","bash","shebang","shell","basic","batch","label","command","parameter","bison","delimiter","brainfuck","pointer","increment","decrement","branching","bro","cpp","aspnet","arduino","coffeescript","clojure","ruby","csp","safe","unsafe","id","attribute","hexcode","concat","dart","metadata","diff","coord","deleted","inserted","_django_template","django","jinja2","docker","dockerfile","eiffel","elixir","atom","capture","argument","elm","import_statement","hvariable","defineProperties","buildPlaceholders","tokenStack","indexOf","toUpperCase","tokenizePlaceholders","substring","filter","erlang","fsharp","flow","unshift","fortran","gedcom","level","gherkin","pystring","feature","scenario","outline","td","th","git","commit_sha1","glsl","go","graphql","groovy","annotation","expression","haml","handlebars","block","brackets","haskell","haxe","reification","http","httpLanguages","contentType","options","hpkp","hsts","ichigojam","icon","inform7","substitution","verb","position","text","ini","io","adverb","conjunction","java","generics","jolie","aggregates","withExtension","redirects","json","jsonp","julia","keyman","kotlin","latex","equation","headline","less","function","liquid","heading","declare","interactive","defvar","defun","lambda","car","varform","boolean","sublist","lisp","elisp","emacs","livescript","identifier","lolcode","lua","makefile","markdown","blockquote","list","erb","matlab","mel","flag","mizar","monkey","n4js","n4jsd","nasm","nginx","nim","ignore","nix","antiquotation","nsis","objectivec","ocaml","opencl","oz","parigp","split","parser","escape","pascal","objectpascal","perl","filehandle","vstring","php","scope","sql","powershell","processing","properties","protobuf","primitive","pug","each","branch","mixin","name","puppet","heredoc","datatype","pure","lang","special","python","q","datetime","qore","ellipsis","jsx","spread","tagName","openedBraces","typescript","ts","renpy","reason","character","constructor","field","role","link","rip","date","time","reference","roboconf","component","optional","wildcard","crystal","expansion","rust","sas","datalines","sass","scss","placeholder","scala","scheme","smalltalk","smarty","plsql","soy","func","stylus","swift","yaml","scalar","key","tcl","textile","phrase","modifier","cite","span","image","footnote","acronym","mark","tt2","twig","ld","rd","other","tsx","vbnet","velocity","unparsed","verilog","vhdl","vim","vb","wasm","wiki","emphasis","nowiki","xeora","xeoracube","xojo","xquery","extension","axis","tap","fail","pass","pragma","bailout","version","plan","subtest","yamlish","getAttribute","parseInt","parseFloat","getComputedStyle","lineHeight","querySelector","createElement","setAttribute","lineNumbers","getLine","top","offsetTop","height","offsetHeight","appendChild","location","hash","removeChild","getElementById","lastIndexOf","scrollIntoView","fontSize","padding","border","body","clearTimeout","defaults","charCodeAt","assign","setDefaults","normalize","leftTrim","rightTrim","tabsToSpaces","spacesToTabs","removeTrailing","removeInitialLineFeed","removeIndent","sort","indent","breakLines","NormalizeWhitespace","settings","childNodes","nodeValue","children","KeepMarkup","DOM","collection","NodeList","hide","display","show","addClass","newClass","classList","removeClass","oldClass","remove","item","toggleClass","toggle","hasClass","classToCheck","focus","click","keyup","keydown","submit","change","scroll","on","event","target","$_","matches","dataset","append","div","trim","firstChild","prepend","get","first","last","isVisible","offsetWidth","parentElement","find","offset","rect","getBoundingClientRect","scrollTop","left","scrollLeft","closest","found","search","after","insertAdjacentHTML","before","animate","start","Date","getTime","timer","initialValue","setInterval","step","Math","min","clearInterval","fadeIn","opacity","tick","fadeOut","check","Element","polyfill","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","replaceWith","replaceChild","reset","$_ready","Request","serialize","encodeURIComponent","query","fetch","post","formData","headers","FormData","props","method","put","delete","then","response","blob","FileSystem","readRemote","file","read","Promise","resolve","reject","reader","FileReader","onload","result","onerror","error","readAsDataURL","readAsArrayBuffer","readAsText","create","File","isImage","extensions","Form","fill","values","files","Platform","retina","devicePixelRatio","portrait","orientation","landscape","electron","process","cordova","desktop","platform","navigator","includes","mobile","userAgent","serviceWorkers","protocol","Preload","route","Image","LocalStorage","store","upgrades","numericVersion","open","storage","upgradesToApply","versionless","storedVersions","localStorage","oldVersion","oldVersionNumeric","availableUpgrades","startFrom","findIndex","old","next","previousId","previous","getItem","setItem","removeItem","_upgrade","set","update","currentValue","exception","getAll","promises","contains","upgrade","newVersion","catch","console","rename","oldId","full","clear","SessionStorage","sessionStorage","IndexedDB","IDBDatabase","indexedDB","onsuccess","onupgradeneeded","createObjectStore","createIndex","transaction","objectStore","op","getAllKeys","RemoteStorage","endpoint","SpaceAdapter","Space","adapter","configuration","_configuration","callbacks","transformations","object","onCreate","onUpdate","onDelete","addTransformation","removeTransformation","Text","capitalize","txt","charAt","substr","suffix","selection","getSelection","createRange","prefix","friendly","replacements","Util","callAsync","callable","context","args","uuid","crypto","getRandomValues","Uint8Array","generate","floor","random","FancyError","host","queue","message","render","MonogatariDebug","outerHTML","lineno"],"mappings":"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","file":"debug.map","sourceRoot":"../../debug","sourcesContent":["/* PrismJS 1.15.0\nhttps://prismjs.com/download.html#themes=prism&languages=markup+css+clike+javascript+abap+actionscript+ada+apacheconf+apl+applescript+c+arff+asciidoc+asm6502+csharp+autohotkey+autoit+bash+basic+batch+bison+brainfuck+bro+cpp+aspnet+arduino+coffeescript+clojure+ruby+csp+css-extras+d+dart+diff+django+docker+eiffel+elixir+elm+markup-templating+erlang+fsharp+flow+fortran+gedcom+gherkin+git+glsl+go+graphql+groovy+haml+handlebars+haskell+haxe+http+hpkp+hsts+ichigojam+icon+inform7+ini+io+j+java+jolie+json+julia+keyman+kotlin+latex+less+liquid+lisp+livescript+lolcode+lua+makefile+markdown+erb+matlab+mel+mizar+monkey+n4js+nasm+nginx+nim+nix+nsis+objectivec+ocaml+opencl+oz+parigp+parser+pascal+perl+php+php-extras+sql+powershell+processing+prolog+properties+protobuf+pug+puppet+pure+python+q+qore+r+jsx+typescript+renpy+reason+rest+rip+roboconf+crystal+rust+sas+sass+scss+scala+scheme+smalltalk+smarty+plsql+soy+stylus+swift+yaml+tcl+textile+tt2+twig+tsx+vbnet+velocity+verilog+vhdl+vim+visual-basic+wasm+wiki+xeora+xojo+xquery+tap&plugins=line-highlight+highlight-keywords+normalize-whitespace */\nvar _self=\"undefined\"!=typeof window?window:\"undefined\"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:{},Prism=function(){var e=/\\blang(?:uage)?-([\\w-]+)\\b/i,t=0,n=_self.Prism={manual:_self.Prism&&_self.Prism.manual,disableWorkerMessageHandler:_self.Prism&&_self.Prism.disableWorkerMessageHandler,util:{encode:function(e){return e instanceof r?new r(e.type,n.util.encode(e.content),e.alias):\"Array\"===n.util.type(e)?e.map(n.util.encode):e.replace(/&/g,\"&\").replace(/e.length)return;if(!(w instanceof s)){if(m&&b!=t.length-1){h.lastIndex=k;var _=h.exec(e);if(!_)break;for(var j=_.index+(d?_[1].length:0),P=_.index+_[0].length,A=b,x=k,O=t.length;O>A&&(P>x||!t[A].type&&!t[A-1].greedy);++A)x+=t[A].length,j>=x&&(++b,k=x);if(t[b]instanceof s)continue;I=A-b,w=e.slice(k,x),_.index-=k}else{h.lastIndex=0;var _=h.exec(w),I=1}if(_){d&&(p=_[1]?_[1].length:0);var j=_.index+p,_=_[0].slice(p),P=j+_.length,N=w.slice(0,j),S=w.slice(P),C=[b,I];N&&(++b,k+=N.length,C.push(N));var E=new s(u,f?n.tokenize(_,f):_,y,_,m);if(C.push(E),S&&C.push(S),Array.prototype.splice.apply(t,C),1!=I&&n.matchGrammar(e,t,r,b,k,!0,u),i)break}else if(i)break}}}}},tokenize:function(e,t){var r=[e],a=t.rest;if(a){for(var l in a)t[l]=a[l];delete t.rest}return n.matchGrammar(e,r,t,0,0,!1),r},hooks:{all:{},add:function(e,t){var r=n.hooks.all;r[e]=r[e]||[],r[e].push(t)},run:function(e,t){var r=n.hooks.all[e];if(r&&r.length)for(var a,l=0;a=r[l++];)a(t)}}},r=n.Token=function(e,t,n,r,a){this.type=e,this.content=t,this.alias=n,this.length=0|(r||\"\").length,this.greedy=!!a};if(r.stringify=function(e,t,a){if(\"string\"==typeof e)return e;if(\"Array\"===n.util.type(e))return e.map(function(n){return r.stringify(n,t,e)}).join(\"\");var l={type:e.type,content:r.stringify(e.content,t,a),tag:\"span\",classes:[\"token\",e.type],attributes:{},language:t,parent:a};if(e.alias){var i=\"Array\"===n.util.type(e.alias)?e.alias:[e.alias];Array.prototype.push.apply(l.classes,i)}n.hooks.run(\"wrap\",l);var o=Object.keys(l.attributes).map(function(e){return e+'=\"'+(l.attributes[e]||\"\").replace(/\"/g,\""\")+'\"'}).join(\" \");return\"<\"+l.tag+' class=\"'+l.classes.join(\" \")+'\"'+(o?\" \"+o:\"\")+\">\"+l.content+\"\"},!_self.document)return _self.addEventListener?(n.disableWorkerMessageHandler||_self.addEventListener(\"message\",function(e){var t=JSON.parse(e.data),r=t.language,a=t.code,l=t.immediateClose;_self.postMessage(n.highlight(a,n.languages[r],r)),l&&_self.close()},!1),_self.Prism):_self.Prism;var a=document.currentScript||[].slice.call(document.getElementsByTagName(\"script\")).pop();return a&&(n.filename=a.src,n.manual||a.hasAttribute(\"data-manual\")||(\"loading\"!==document.readyState?window.requestAnimationFrame?window.requestAnimationFrame(n.highlightAll):window.setTimeout(n.highlightAll,16):document.addEventListener(\"DOMContentLoaded\",n.highlightAll))),_self.Prism}();\"undefined\"!=typeof module&&module.exports&&(module.exports=Prism),\"undefined\"!=typeof global&&(global.Prism=Prism);\nPrism.languages.markup={comment://,prolog:/<\\?[\\s\\S]+?\\?>/,doctype://i,cdata://i,tag:{pattern:/<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,greedy:!0,inside:{tag:{pattern:/^<\\/?[^\\s>\\/]+/i,inside:{punctuation:/^<\\/?/,namespace:/^[^\\s>\\/:]+:/}},\"attr-value\":{pattern:/=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/i,inside:{punctuation:[/^=/,{pattern:/(^|[^\\\\])[\"']/,lookbehind:!0}]}},punctuation:/\\/?>/,\"attr-name\":{pattern:/[^\\s>\\/]+/,inside:{namespace:/^[^\\s>\\/:]+:/}}}},entity:/&#?[\\da-z]{1,8};/i},Prism.languages.markup.tag.inside[\"attr-value\"].inside.entity=Prism.languages.markup.entity,Prism.hooks.add(\"wrap\",function(a){\"entity\"===a.type&&(a.attributes.title=a.content.replace(/&/,\"&\"))}),Prism.languages.xml=Prism.languages.markup,Prism.languages.html=Prism.languages.markup,Prism.languages.mathml=Prism.languages.markup,Prism.languages.svg=Prism.languages.markup;\nPrism.languages.css={comment:/\\/\\*[\\s\\S]*?\\*\\//,atrule:{pattern:/@[\\w-]+?.*?(?:;|(?=\\s*\\{))/i,inside:{rule:/@[\\w-]+/}},url:/url\\((?:([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|.*?)\\)/i,selector:/[^{}\\s][^{};]*?(?=\\s*\\{)/,string:{pattern:/(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},property:/[-_a-z\\xA0-\\uFFFF][-\\w\\xA0-\\uFFFF]*(?=\\s*:)/i,important:/\\B!important\\b/i,\"function\":/[-a-z0-9]+(?=\\()/i,punctuation:/[(){};:]/},Prism.languages.css.atrule.inside.rest=Prism.languages.css,Prism.languages.markup&&(Prism.languages.insertBefore(\"markup\",\"tag\",{style:{pattern:/()[\\s\\S]*?(?=<\\/style>)/i,lookbehind:!0,inside:Prism.languages.css,alias:\"language-css\",greedy:!0}}),Prism.languages.insertBefore(\"inside\",\"attr-value\",{\"style-attr\":{pattern:/\\s*style=(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/i,inside:{\"attr-name\":{pattern:/^\\s*style/i,inside:Prism.languages.markup.tag.inside},punctuation:/^\\s*=\\s*['\"]|['\"]\\s*$/,\"attr-value\":{pattern:/.+/i,inside:Prism.languages.css}},alias:\"language-css\"}},Prism.languages.markup.tag));\nPrism.languages.clike={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,lookbehind:!0},{pattern:/(^|[^\\\\:])\\/\\/.*/,lookbehind:!0,greedy:!0}],string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},\"class-name\":{pattern:/((?:\\b(?:class|interface|extends|implements|trait|instanceof|new)\\s+)|(?:catch\\s+\\())[\\w.\\\\]+/i,lookbehind:!0,inside:{punctuation:/[.\\\\]/}},keyword:/\\b(?:if|else|while|do|for|return|in|instanceof|function|new|try|throw|catch|finally|null|break|continue)\\b/,\"boolean\":/\\b(?:true|false)\\b/,\"function\":/[a-z0-9_]+(?=\\()/i,number:/\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,operator:/--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&?|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.javascript=Prism.languages.extend(\"clike\",{keyword:/\\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield)\\b/,number:/\\b(?:0[xX][\\dA-Fa-f]+|0[bB][01]+|0[oO][0-7]+|NaN|Infinity)\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\"function\":/[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*\\()/i,operator:/-[-=]?|\\+[+=]?|!=?=?|<>?>?=?|=(?:==?|>)?|&[&=]?|\\|[|=]?|\\*\\*?=?|\\/=?|~|\\^=?|%=?|\\?|\\.{3}/}),Prism.languages.insertBefore(\"javascript\",\"keyword\",{regex:{pattern:/((?:^|[^$\\w\\xA0-\\uFFFF.\"'\\])\\s])\\s*)\\/(\\[[^\\]\\r\\n]+]|\\\\.|[^\\/\\\\\\[\\r\\n])+\\/[gimyu]{0,5}(?=\\s*($|[\\r\\n,.;})\\]]))/,lookbehind:!0,greedy:!0},\"function-variable\":{pattern:/[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)|[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/i,alias:\"function\"},constant:/\\b[A-Z][A-Z\\d_]*\\b/}),Prism.languages.insertBefore(\"javascript\",\"string\",{\"template-string\":{pattern:/`(?:\\\\[\\s\\S]|\\${[^}]+}|[^\\\\`])*`/,greedy:!0,inside:{interpolation:{pattern:/\\${[^}]+}/,inside:{\"interpolation-punctuation\":{pattern:/^\\${|}$/,alias:\"punctuation\"},rest:null}},string:/[\\s\\S]+/}}}),Prism.languages.javascript[\"template-string\"].inside.interpolation.inside.rest=Prism.languages.javascript,Prism.languages.markup&&Prism.languages.insertBefore(\"markup\",\"tag\",{script:{pattern:/()[\\s\\S]*?(?=<\\/script>)/i,lookbehind:!0,inside:Prism.languages.javascript,alias:\"language-javascript\",greedy:!0}}),Prism.languages.js=Prism.languages.javascript;\nPrism.languages.abap={comment:/^\\*.*/m,string:/(`|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/m,\"string-template\":{pattern:/([|}])(?:\\\\.|[^\\\\|{\\r\\n])*(?=[|{])/,lookbehind:!0,alias:\"string\"},\"eol-comment\":{pattern:/(^|\\s)\".*/m,lookbehind:!0,alias:\"comment\"},keyword:{pattern:/(\\s|\\.|^)(?:SCIENTIFIC_WITH_LEADING_ZERO|SCALE_PRESERVING_SCIENTIFIC|RMC_COMMUNICATION_FAILURE|END-ENHANCEMENT-SECTION|MULTIPLY-CORRESPONDING|SUBTRACT-CORRESPONDING|VERIFICATION-MESSAGE|DIVIDE-CORRESPONDING|ENHANCEMENT-SECTION|CURRENCY_CONVERSION|RMC_SYSTEM_FAILURE|START-OF-SELECTION|MOVE-CORRESPONDING|RMC_INVALID_STATUS|CUSTOMER-FUNCTION|END-OF-DEFINITION|ENHANCEMENT-POINT|SYSTEM-EXCEPTIONS|ADD-CORRESPONDING|SCALE_PRESERVING|SELECTION-SCREEN|CURSOR-SELECTION|END-OF-SELECTION|LOAD-OF-PROGRAM|SCROLL-BOUNDARY|SELECTION-TABLE|EXCEPTION-TABLE|IMPLEMENTATIONS|PARAMETER-TABLE|RIGHT-JUSTIFIED|UNIT_CONVERSION|AUTHORITY-CHECK|LIST-PROCESSING|SIGN_AS_POSTFIX|COL_BACKGROUND|IMPLEMENTATION|INTERFACE-POOL|TRANSFORMATION|IDENTIFICATION|ENDENHANCEMENT|LINE-SELECTION|INITIALIZATION|LEFT-JUSTIFIED|SELECT-OPTIONS|SELECTION-SETS|COMMUNICATION|CORRESPONDING|DECIMAL_SHIFT|PRINT-CONTROL|VALUE-REQUEST|CHAIN-REQUEST|FUNCTION-POOL|FIELD-SYMBOLS|FUNCTIONALITY|INVERTED-DATE|SELECTION-SET|CLASS-METHODS|OUTPUT-LENGTH|CLASS-CODING|COL_NEGATIVE|ERRORMESSAGE|FIELD-GROUPS|HELP-REQUEST|NO-EXTENSION|NO-TOPOFPAGE|REDEFINITION|DISPLAY-MODE|ENDINTERFACE|EXIT-COMMAND|FIELD-SYMBOL|NO-SCROLLING|SHORTDUMP-ID|ACCESSPOLICY|CLASS-EVENTS|COL_POSITIVE|DECLARATIONS|ENHANCEMENTS|FILTER-TABLE|SWITCHSTATES|SYNTAX-CHECK|TRANSPORTING|ASYNCHRONOUS|SYNTAX-TRACE|TOKENIZATION|USER-COMMAND|WITH-HEADING|ABAP-SOURCE|BREAK-POINT|CHAIN-INPUT|COMPRESSION|FIXED-POINT|NEW-SECTION|NON-UNICODE|OCCURRENCES|RESPONSIBLE|SYSTEM-CALL|TRACE-TABLE|ABBREVIATED|CHAR-TO-HEX|END-OF-FILE|ENDFUNCTION|ENVIRONMENT|ASSOCIATION|COL_HEADING|EDITOR-CALL|END-OF-PAGE|ENGINEERING|IMPLEMENTED|INTENSIFIED|RADIOBUTTON|SYSTEM-EXIT|TOP-OF-PAGE|TRANSACTION|APPLICATION|CONCATENATE|DESTINATION|ENHANCEMENT|IMMEDIATELY|NO-GROUPING|PRECOMPILED|REPLACEMENT|TITLE-LINES|ACTIVATION|BYTE-ORDER|CLASS-POOL|CONNECTION|CONVERSION|DEFINITION|DEPARTMENT|EXPIRATION|INHERITING|MESSAGE-ID|NO-HEADING|PERFORMING|QUEUE-ONLY|RIGHTSPACE|SCIENTIFIC|STATUSINFO|STRUCTURES|SYNCPOINTS|WITH-TITLE|ATTRIBUTES|BOUNDARIES|CLASS-DATA|COL_NORMAL|DD\\/MM\\/YYYY|DESCENDING|INTERFACES|LINE-COUNT|MM\\/DD\\/YYYY|NON-UNIQUE|PRESERVING|SELECTIONS|STATEMENTS|SUBROUTINE|TRUNCATION|TYPE-POOLS|ARITHMETIC|BACKGROUND|ENDPROVIDE|EXCEPTIONS|IDENTIFIER|INDEX-LINE|OBLIGATORY|PARAMETERS|PERCENTAGE|PUSHBUTTON|RESOLUTION|COMPONENTS|DEALLOCATE|DISCONNECT|DUPLICATES|FIRST-LINE|HEAD-LINES|NO-DISPLAY|OCCURRENCE|RESPECTING|RETURNCODE|SUBMATCHES|TRACE-FILE|ASCENDING|BYPASSING|ENDMODULE|EXCEPTION|EXCLUDING|EXPORTING|INCREMENT|MATCHCODE|PARAMETER|PARTIALLY|PREFERRED|REFERENCE|REPLACING|RETURNING|SELECTION|SEPARATED|SPECIFIED|STATEMENT|TIMESTAMP|TYPE-POOL|ACCEPTING|APPENDAGE|ASSIGNING|COL_GROUP|COMPARING|CONSTANTS|DANGEROUS|IMPORTING|INSTANCES|LEFTSPACE|LOG-POINT|QUICKINFO|READ-ONLY|SCROLLING|SQLSCRIPT|STEP-LOOP|TOP-LINES|TRANSLATE|APPENDING|AUTHORITY|CHARACTER|COMPONENT|CONDITION|DIRECTORY|DUPLICATE|MESSAGING|RECEIVING|SUBSCREEN|ACCORDING|COL_TOTAL|END-LINES|ENDMETHOD|ENDSELECT|EXPANDING|EXTENSION|INCLUDING|INFOTYPES|INTERFACE|INTERVALS|LINE-SIZE|PF-STATUS|PROCEDURE|PROTECTED|REQUESTED|RESUMABLE|RIGHTPLUS|SAP-SPOOL|SECONDARY|STRUCTURE|SUBSTRING|TABLEVIEW|NUMOFCHAR|ADJACENT|ANALYSIS|ASSIGNED|BACKWARD|CHANNELS|CHECKBOX|CONTINUE|CRITICAL|DATAINFO|DD\\/MM\\/YY|DURATION|ENCODING|ENDCLASS|FUNCTION|LEFTPLUS|LINEFEED|MM\\/DD\\/YY|OVERFLOW|RECEIVED|SKIPPING|SORTABLE|STANDARD|SUBTRACT|SUPPRESS|TABSTRIP|TITLEBAR|TRUNCATE|UNASSIGN|WHENEVER|ANALYZER|COALESCE|COMMENTS|CONDENSE|DECIMALS|DEFERRED|ENDWHILE|EXPLICIT|KEYWORDS|MESSAGES|POSITION|PRIORITY|RECEIVER|RENAMING|TIMEZONE|TRAILING|ALLOCATE|CENTERED|CIRCULAR|CONTROLS|CURRENCY|DELETING|DESCRIBE|DISTANCE|ENDCATCH|EXPONENT|EXTENDED|GENERATE|IGNORING|INCLUDES|INTERNAL|MAJOR-ID|MODIFIER|NEW-LINE|OPTIONAL|PROPERTY|ROLLBACK|STARTING|SUPPLIED|ABSTRACT|CHANGING|CONTEXTS|CREATING|CUSTOMER|DATABASE|DAYLIGHT|DEFINING|DISTINCT|DIVISION|ENABLING|ENDCHAIN|ESCAPING|HARMLESS|IMPLICIT|INACTIVE|LANGUAGE|MINOR-ID|MULTIPLY|NEW-PAGE|NO-TITLE|POS_HIGH|SEPARATE|TEXTPOOL|TRANSFER|SELECTOR|DBMAXLEN|ITERATOR|SELECTOR|ARCHIVE|BIT-XOR|BYTE-CO|COLLECT|COMMENT|CURRENT|DEFAULT|DISPLAY|ENDFORM|EXTRACT|LEADING|LISTBOX|LOCATOR|MEMBERS|METHODS|NESTING|POS_LOW|PROCESS|PROVIDE|RAISING|RESERVE|SECONDS|SUMMARY|VISIBLE|BETWEEN|BIT-AND|BYTE-CS|CLEANUP|COMPUTE|CONTROL|CONVERT|DATASET|ENDCASE|FORWARD|HEADERS|HOTSPOT|INCLUDE|INVERSE|KEEPING|NO-ZERO|OBJECTS|OVERLAY|PADDING|PATTERN|PROGRAM|REFRESH|SECTION|SUMMING|TESTING|VERSION|WINDOWS|WITHOUT|BIT-NOT|BYTE-CA|BYTE-NA|CASTING|CONTEXT|COUNTRY|DYNAMIC|ENABLED|ENDLOOP|EXECUTE|FRIENDS|HANDLER|HEADING|INITIAL|\\*-INPUT|LOGFILE|MAXIMUM|MINIMUM|NO-GAPS|NO-SIGN|PRAGMAS|PRIMARY|PRIVATE|REDUCED|REPLACE|REQUEST|RESULTS|UNICODE|WARNING|ALIASES|BYTE-CN|BYTE-NS|CALLING|COL_KEY|COLUMNS|CONNECT|ENDEXEC|ENTRIES|EXCLUDE|FILTERS|FURTHER|HELP-ID|LOGICAL|MAPPING|MESSAGE|NAMETAB|OPTIONS|PACKAGE|PERFORM|RECEIVE|STATICS|VARYING|BINDING|CHARLEN|GREATER|XSTRLEN|ACCEPT|APPEND|DETAIL|ELSEIF|ENDING|ENDTRY|FORMAT|FRAMES|GIVING|HASHED|HEADER|IMPORT|INSERT|MARGIN|MODULE|NATIVE|OBJECT|OFFSET|REMOTE|RESUME|SAVING|SIMPLE|SUBMIT|TABBED|TOKENS|UNIQUE|UNPACK|UPDATE|WINDOW|YELLOW|ACTUAL|ASPECT|CENTER|CURSOR|DELETE|DIALOG|DIVIDE|DURING|ERRORS|EVENTS|EXTEND|FILTER|HANDLE|HAVING|IGNORE|LITTLE|MEMORY|NO-GAP|OCCURS|OPTION|PERSON|PLACES|PUBLIC|REDUCE|REPORT|RESULT|SINGLE|SORTED|SWITCH|SYNTAX|TARGET|VALUES|WRITER|ASSERT|BLOCKS|BOUNDS|BUFFER|CHANGE|COLUMN|COMMIT|CONCAT|COPIES|CREATE|DDMMYY|DEFINE|ENDIAN|ESCAPE|EXPAND|KERNEL|LAYOUT|LEGACY|LEVELS|MMDDYY|NUMBER|OUTPUT|RANGES|READER|RETURN|SCREEN|SEARCH|SELECT|SHARED|SOURCE|STABLE|STATIC|SUBKEY|SUFFIX|TABLES|UNWIND|YYMMDD|ASSIGN|BACKUP|BEFORE|BINARY|BIT-OR|BLANKS|CLIENT|CODING|COMMON|DEMAND|DYNPRO|EXCEPT|EXISTS|EXPORT|FIELDS|GLOBAL|GROUPS|LENGTH|LOCALE|MEDIUM|METHOD|MODIFY|NESTED|OTHERS|REJECT|SCROLL|SUPPLY|SYMBOL|ENDFOR|STRLEN|ALIGN|BEGIN|BOUND|ENDAT|ENTRY|EVENT|FINAL|FLUSH|GRANT|INNER|SHORT|USING|WRITE|AFTER|BLACK|BLOCK|CLOCK|COLOR|COUNT|DUMMY|EMPTY|ENDDO|ENDON|GREEN|INDEX|INOUT|LEAVE|LEVEL|LINES|MODIF|ORDER|OUTER|RANGE|RESET|RETRY|RIGHT|SMART|SPLIT|STYLE|TABLE|THROW|UNDER|UNTIL|UPPER|UTF-8|WHERE|ALIAS|BLANK|CLEAR|CLOSE|EXACT|FETCH|FIRST|FOUND|GROUP|LLANG|LOCAL|OTHER|REGEX|SPOOL|TITLE|TYPES|VALID|WHILE|ALPHA|BOXED|CATCH|CHAIN|CHECK|CLASS|COVER|ENDIF|EQUIV|FIELD|FLOOR|FRAME|INPUT|LOWER|MATCH|NODES|PAGES|PRINT|RAISE|ROUND|SHIFT|SPACE|SPOTS|STAMP|STATE|TASKS|TIMES|TRMAC|ULINE|UNION|VALUE|WIDTH|EQUAL|LOG10|TRUNC|BLOB|CASE|CEIL|CLOB|COND|EXIT|FILE|GAPS|HOLD|INCL|INTO|KEEP|KEYS|LAST|LINE|LONG|LPAD|MAIL|MODE|OPEN|PINK|READ|ROWS|TEST|THEN|ZERO|AREA|BACK|BADI|BYTE|CAST|EDIT|EXEC|FAIL|FIND|FKEQ|FONT|FREE|GKEQ|HIDE|INIT|ITNO|LATE|LOOP|MAIN|MARK|MOVE|NEXT|NULL|RISK|ROLE|UNIT|WAIT|ZONE|BASE|CALL|CODE|DATA|DATE|FKGE|GKGE|HIGH|KIND|LEFT|LIST|MASK|MESH|NAME|NODE|PACK|PAGE|POOL|SEND|SIGN|SIZE|SOME|STOP|TASK|TEXT|TIME|USER|VARY|WITH|WORD|BLUE|CONV|COPY|DEEP|ELSE|FORM|FROM|HINT|ICON|JOIN|LIKE|LOAD|ONLY|PART|SCAN|SKIP|SORT|TYPE|UNIX|VIEW|WHEN|WORK|ACOS|ASIN|ATAN|COSH|EACH|FRAC|LESS|RTTI|SINH|SQRT|TANH|AVG|BIT|DIV|ISO|LET|OUT|PAD|SQL|ALL|CI_|CPI|END|LOB|LPI|MAX|MIN|NEW|OLE|RUN|SET|\\?TO|YES|ABS|ADD|AND|BIG|FOR|HDB|JOB|LOW|NOT|SAP|TRY|VIA|XML|ANY|GET|IDS|KEY|MOD|OFF|PUT|RAW|RED|REF|SUM|TAB|XSD|CNT|COS|EXP|LOG|SIN|TAN|XOR|AT|CO|CP|DO|GT|ID|IF|NS|OR|BT|CA|CS|GE|NA|NB|EQ|IN|LT|NE|NO|OF|ON|PF|TO|AS|BY|CN|IS|LE|NP|UP|E|I|M|O|Z|C|X)\\b/i,lookbehind:!0},number:/\\b\\d+\\b/,operator:{pattern:/(\\s)(?:\\*\\*?|<[=>]?|>=?|\\?=|[-+\\/=])(?=\\s)/,lookbehind:!0},\"string-operator\":{pattern:/(\\s)&&?(?=\\s)/,lookbehind:!0,alias:\"keyword\"},\"token-operator\":[{pattern:/(\\w)(?:->?|=>|[~|{}])(?=\\w)/,lookbehind:!0,alias:\"punctuation\"},{pattern:/[|{}]/,alias:\"punctuation\"}],punctuation:/[,.:()]/};\nPrism.languages.actionscript=Prism.languages.extend(\"javascript\",{keyword:/\\b(?:as|break|case|catch|class|const|default|delete|do|else|extends|finally|for|function|if|implements|import|in|instanceof|interface|internal|is|native|new|null|package|private|protected|public|return|super|switch|this|throw|try|typeof|use|var|void|while|with|dynamic|each|final|get|include|namespace|native|override|set|static)\\b/,operator:/\\+\\+|--|(?:[+\\-*\\/%^]|&&?|\\|\\|?|<>?>?|[!=]=?)=?|[~?@]/}),Prism.languages.actionscript[\"class-name\"].alias=\"function\",Prism.languages.markup&&Prism.languages.insertBefore(\"actionscript\",\"string\",{xml:{pattern:/(^|[^.])<\\/?\\w+(?:\\s+[^\\s>\\/=]+=(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2)*\\s*\\/?>/,lookbehind:!0,inside:{rest:Prism.languages.markup}}});\nPrism.languages.ada={comment:/--.*/,string:/\"(?:\"\"|[^\"\\r\\f\\n])*\"/i,number:[{pattern:/\\b\\d(?:_?\\d)*#[\\dA-F](?:_?[\\dA-F])*(?:\\.[\\dA-F](?:_?[\\dA-F])*)?#(?:E[+-]?\\d(?:_?\\d)*)?/i},{pattern:/\\b\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:E[+-]?\\d(?:_?\\d)*)?\\b/i}],\"attr-name\":/\\b'\\w+/i,keyword:/\\b(?:abort|abs|abstract|accept|access|aliased|all|and|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|new|return|elsif|end|entry|exception|exit|for|function|generic|goto|if|in|interface|is|limited|loop|mod|not|null|of|others|out|overriding|package|pragma|private|procedure|protected|raise|range|record|rem|renames|requeue|reverse|select|separate|some|subtype|synchronized|tagged|task|terminate|then|type|until|use|when|while|with|xor)\\b/i,\"boolean\":/\\b(?:true|false)\\b/i,operator:/<[=>]?|>=?|=>?|:=|\\/=?|\\*\\*?|[&+-]/,punctuation:/\\.\\.?|[,;():]/,\"char\":/'.'/,variable:/\\b[a-z](?:[_a-z\\d])*\\b/i};\nPrism.languages.apacheconf={comment:/#.*/,\"directive-inline\":{pattern:/^(\\s*)\\b(?:AcceptFilter|AcceptPathInfo|AccessFileName|Action|AddAlt|AddAltByEncoding|AddAltByType|AddCharset|AddDefaultCharset|AddDescription|AddEncoding|AddHandler|AddIcon|AddIconByEncoding|AddIconByType|AddInputFilter|AddLanguage|AddModuleInfo|AddOutputFilter|AddOutputFilterByType|AddType|Alias|AliasMatch|Allow|AllowCONNECT|AllowEncodedSlashes|AllowMethods|AllowOverride|AllowOverrideList|Anonymous|Anonymous_LogEmail|Anonymous_MustGiveEmail|Anonymous_NoUserID|Anonymous_VerifyEmail|AsyncRequestWorkerFactor|AuthBasicAuthoritative|AuthBasicFake|AuthBasicProvider|AuthBasicUseDigestAlgorithm|AuthDBDUserPWQuery|AuthDBDUserRealmQuery|AuthDBMGroupFile|AuthDBMType|AuthDBMUserFile|AuthDigestAlgorithm|AuthDigestDomain|AuthDigestNonceLifetime|AuthDigestProvider|AuthDigestQop|AuthDigestShmemSize|AuthFormAuthoritative|AuthFormBody|AuthFormDisableNoStore|AuthFormFakeBasicAuth|AuthFormLocation|AuthFormLoginRequiredLocation|AuthFormLoginSuccessLocation|AuthFormLogoutLocation|AuthFormMethod|AuthFormMimetype|AuthFormPassword|AuthFormProvider|AuthFormSitePassphrase|AuthFormSize|AuthFormUsername|AuthGroupFile|AuthLDAPAuthorizePrefix|AuthLDAPBindAuthoritative|AuthLDAPBindDN|AuthLDAPBindPassword|AuthLDAPCharsetConfig|AuthLDAPCompareAsUser|AuthLDAPCompareDNOnServer|AuthLDAPDereferenceAliases|AuthLDAPGroupAttribute|AuthLDAPGroupAttributeIsDN|AuthLDAPInitialBindAsUser|AuthLDAPInitialBindPattern|AuthLDAPMaxSubGroupDepth|AuthLDAPRemoteUserAttribute|AuthLDAPRemoteUserIsDN|AuthLDAPSearchAsUser|AuthLDAPSubGroupAttribute|AuthLDAPSubGroupClass|AuthLDAPUrl|AuthMerging|AuthName|AuthnCacheContext|AuthnCacheEnable|AuthnCacheProvideFor|AuthnCacheSOCache|AuthnCacheTimeout|AuthnzFcgiCheckAuthnProvider|AuthnzFcgiDefineProvider|AuthType|AuthUserFile|AuthzDBDLoginToReferer|AuthzDBDQuery|AuthzDBDRedirectQuery|AuthzDBMType|AuthzSendForbiddenOnFailure|BalancerGrowth|BalancerInherit|BalancerMember|BalancerPersist|BrowserMatch|BrowserMatchNoCase|BufferedLogs|BufferSize|CacheDefaultExpire|CacheDetailHeader|CacheDirLength|CacheDirLevels|CacheDisable|CacheEnable|CacheFile|CacheHeader|CacheIgnoreCacheControl|CacheIgnoreHeaders|CacheIgnoreNoLastMod|CacheIgnoreQueryString|CacheIgnoreURLSessionIdentifiers|CacheKeyBaseURL|CacheLastModifiedFactor|CacheLock|CacheLockMaxAge|CacheLockPath|CacheMaxExpire|CacheMaxFileSize|CacheMinExpire|CacheMinFileSize|CacheNegotiatedDocs|CacheQuickHandler|CacheReadSize|CacheReadTime|CacheRoot|CacheSocache|CacheSocacheMaxSize|CacheSocacheMaxTime|CacheSocacheMinTime|CacheSocacheReadSize|CacheSocacheReadTime|CacheStaleOnError|CacheStoreExpired|CacheStoreNoStore|CacheStorePrivate|CGIDScriptTimeout|CGIMapExtension|CharsetDefault|CharsetOptions|CharsetSourceEnc|CheckCaseOnly|CheckSpelling|ChrootDir|ContentDigest|CookieDomain|CookieExpires|CookieName|CookieStyle|CookieTracking|CoreDumpDirectory|CustomLog|Dav|DavDepthInfinity|DavGenericLockDB|DavLockDB|DavMinTimeout|DBDExptime|DBDInitSQL|DBDKeep|DBDMax|DBDMin|DBDParams|DBDPersist|DBDPrepareSQL|DBDriver|DefaultIcon|DefaultLanguage|DefaultRuntimeDir|DefaultType|Define|DeflateBufferSize|DeflateCompressionLevel|DeflateFilterNote|DeflateInflateLimitRequestBody|DeflateInflateRatioBurst|DeflateInflateRatioLimit|DeflateMemLevel|DeflateWindowSize|Deny|DirectoryCheckHandler|DirectoryIndex|DirectoryIndexRedirect|DirectorySlash|DocumentRoot|DTracePrivileges|DumpIOInput|DumpIOOutput|EnableExceptionHook|EnableMMAP|EnableSendfile|Error|ErrorDocument|ErrorLog|ErrorLogFormat|Example|ExpiresActive|ExpiresByType|ExpiresDefault|ExtendedStatus|ExtFilterDefine|ExtFilterOptions|FallbackResource|FileETag|FilterChain|FilterDeclare|FilterProtocol|FilterProvider|FilterTrace|ForceLanguagePriority|ForceType|ForensicLog|GprofDir|GracefulShutdownTimeout|Group|Header|HeaderName|HeartbeatAddress|HeartbeatListen|HeartbeatMaxServers|HeartbeatStorage|HeartbeatStorage|HostnameLookups|IdentityCheck|IdentityCheckTimeout|ImapBase|ImapDefault|ImapMenu|Include|IncludeOptional|IndexHeadInsert|IndexIgnore|IndexIgnoreReset|IndexOptions|IndexOrderDefault|IndexStyleSheet|InputSed|ISAPIAppendLogToErrors|ISAPIAppendLogToQuery|ISAPICacheFile|ISAPIFakeAsync|ISAPILogNotSupported|ISAPIReadAheadBuffer|KeepAlive|KeepAliveTimeout|KeptBodySize|LanguagePriority|LDAPCacheEntries|LDAPCacheTTL|LDAPConnectionPoolTTL|LDAPConnectionTimeout|LDAPLibraryDebug|LDAPOpCacheEntries|LDAPOpCacheTTL|LDAPReferralHopLimit|LDAPReferrals|LDAPRetries|LDAPRetryDelay|LDAPSharedCacheFile|LDAPSharedCacheSize|LDAPTimeout|LDAPTrustedClientCert|LDAPTrustedGlobalCert|LDAPTrustedMode|LDAPVerifyServerCert|LimitInternalRecursion|LimitRequestBody|LimitRequestFields|LimitRequestFieldSize|LimitRequestLine|LimitXMLRequestBody|Listen|ListenBackLog|LoadFile|LoadModule|LogFormat|LogLevel|LogMessage|LuaAuthzProvider|LuaCodeCache|LuaHookAccessChecker|LuaHookAuthChecker|LuaHookCheckUserID|LuaHookFixups|LuaHookInsertFilter|LuaHookLog|LuaHookMapToStorage|LuaHookTranslateName|LuaHookTypeChecker|LuaInherit|LuaInputFilter|LuaMapHandler|LuaOutputFilter|LuaPackageCPath|LuaPackagePath|LuaQuickHandler|LuaRoot|LuaScope|MaxConnectionsPerChild|MaxKeepAliveRequests|MaxMemFree|MaxRangeOverlaps|MaxRangeReversals|MaxRanges|MaxRequestWorkers|MaxSpareServers|MaxSpareThreads|MaxThreads|MergeTrailers|MetaDir|MetaFiles|MetaSuffix|MimeMagicFile|MinSpareServers|MinSpareThreads|MMapFile|ModemStandard|ModMimeUsePathInfo|MultiviewsMatch|Mutex|NameVirtualHost|NoProxy|NWSSLTrustedCerts|NWSSLUpgradeable|Options|Order|OutputSed|PassEnv|PidFile|PrivilegesMode|Protocol|ProtocolEcho|ProxyAddHeaders|ProxyBadHeader|ProxyBlock|ProxyDomain|ProxyErrorOverride|ProxyExpressDBMFile|ProxyExpressDBMType|ProxyExpressEnable|ProxyFtpDirCharset|ProxyFtpEscapeWildcards|ProxyFtpListOnWildcard|ProxyHTMLBufSize|ProxyHTMLCharsetOut|ProxyHTMLDocType|ProxyHTMLEnable|ProxyHTMLEvents|ProxyHTMLExtended|ProxyHTMLFixups|ProxyHTMLInterp|ProxyHTMLLinks|ProxyHTMLMeta|ProxyHTMLStripComments|ProxyHTMLURLMap|ProxyIOBufferSize|ProxyMaxForwards|ProxyPass|ProxyPassInherit|ProxyPassInterpolateEnv|ProxyPassMatch|ProxyPassReverse|ProxyPassReverseCookieDomain|ProxyPassReverseCookiePath|ProxyPreserveHost|ProxyReceiveBufferSize|ProxyRemote|ProxyRemoteMatch|ProxyRequests|ProxySCGIInternalRedirect|ProxySCGISendfile|ProxySet|ProxySourceAddress|ProxyStatus|ProxyTimeout|ProxyVia|ReadmeName|ReceiveBufferSize|Redirect|RedirectMatch|RedirectPermanent|RedirectTemp|ReflectorHeader|RemoteIPHeader|RemoteIPInternalProxy|RemoteIPInternalProxyList|RemoteIPProxiesHeader|RemoteIPTrustedProxy|RemoteIPTrustedProxyList|RemoveCharset|RemoveEncoding|RemoveHandler|RemoveInputFilter|RemoveLanguage|RemoveOutputFilter|RemoveType|RequestHeader|RequestReadTimeout|Require|RewriteBase|RewriteCond|RewriteEngine|RewriteMap|RewriteOptions|RewriteRule|RLimitCPU|RLimitMEM|RLimitNPROC|Satisfy|ScoreBoardFile|Script|ScriptAlias|ScriptAliasMatch|ScriptInterpreterSource|ScriptLog|ScriptLogBuffer|ScriptLogLength|ScriptSock|SecureListen|SeeRequestTail|SendBufferSize|ServerAdmin|ServerAlias|ServerLimit|ServerName|ServerPath|ServerRoot|ServerSignature|ServerTokens|Session|SessionCookieName|SessionCookieName2|SessionCookieRemove|SessionCryptoCipher|SessionCryptoDriver|SessionCryptoPassphrase|SessionCryptoPassphraseFile|SessionDBDCookieName|SessionDBDCookieName2|SessionDBDCookieRemove|SessionDBDDeleteLabel|SessionDBDInsertLabel|SessionDBDPerUser|SessionDBDSelectLabel|SessionDBDUpdateLabel|SessionEnv|SessionExclude|SessionHeader|SessionInclude|SessionMaxAge|SetEnv|SetEnvIf|SetEnvIfExpr|SetEnvIfNoCase|SetHandler|SetInputFilter|SetOutputFilter|SSIEndTag|SSIErrorMsg|SSIETag|SSILastModified|SSILegacyExprParser|SSIStartTag|SSITimeFormat|SSIUndefinedEcho|SSLCACertificateFile|SSLCACertificatePath|SSLCADNRequestFile|SSLCADNRequestPath|SSLCARevocationCheck|SSLCARevocationFile|SSLCARevocationPath|SSLCertificateChainFile|SSLCertificateFile|SSLCertificateKeyFile|SSLCipherSuite|SSLCompression|SSLCryptoDevice|SSLEngine|SSLFIPS|SSLHonorCipherOrder|SSLInsecureRenegotiation|SSLOCSPDefaultResponder|SSLOCSPEnable|SSLOCSPOverrideResponder|SSLOCSPResponderTimeout|SSLOCSPResponseMaxAge|SSLOCSPResponseTimeSkew|SSLOCSPUseRequestNonce|SSLOpenSSLConfCmd|SSLOptions|SSLPassPhraseDialog|SSLProtocol|SSLProxyCACertificateFile|SSLProxyCACertificatePath|SSLProxyCARevocationCheck|SSLProxyCARevocationFile|SSLProxyCARevocationPath|SSLProxyCheckPeerCN|SSLProxyCheckPeerExpire|SSLProxyCheckPeerName|SSLProxyCipherSuite|SSLProxyEngine|SSLProxyMachineCertificateChainFile|SSLProxyMachineCertificateFile|SSLProxyMachineCertificatePath|SSLProxyProtocol|SSLProxyVerify|SSLProxyVerifyDepth|SSLRandomSeed|SSLRenegBufferSize|SSLRequire|SSLRequireSSL|SSLSessionCache|SSLSessionCacheTimeout|SSLSessionTicketKeyFile|SSLSRPUnknownUserSeed|SSLSRPVerifierFile|SSLStaplingCache|SSLStaplingErrorCacheTimeout|SSLStaplingFakeTryLater|SSLStaplingForceURL|SSLStaplingResponderTimeout|SSLStaplingResponseMaxAge|SSLStaplingResponseTimeSkew|SSLStaplingReturnResponderErrors|SSLStaplingStandardCacheTimeout|SSLStrictSNIVHostCheck|SSLUserName|SSLUseStapling|SSLVerifyClient|SSLVerifyDepth|StartServers|StartThreads|Substitute|Suexec|SuexecUserGroup|ThreadLimit|ThreadsPerChild|ThreadStackSize|TimeOut|TraceEnable|TransferLog|TypesConfig|UnDefine|UndefMacro|UnsetEnv|Use|UseCanonicalName|UseCanonicalPhysicalPort|User|UserDir|VHostCGIMode|VHostCGIPrivs|VHostGroup|VHostPrivs|VHostSecure|VHostUser|VirtualDocumentRoot|VirtualDocumentRootIP|VirtualScriptAlias|VirtualScriptAliasIP|WatchdogInterval|XBitHack|xml2EncAlias|xml2EncDefault|xml2StartParse)\\b/im,lookbehind:!0,alias:\"property\"},\"directive-block\":{pattern:/<\\/?\\b(?:AuthnProviderAlias|AuthzProviderAlias|Directory|DirectoryMatch|Else|ElseIf|Files|FilesMatch|If|IfDefine|IfModule|IfVersion|Limit|LimitExcept|Location|LocationMatch|Macro|Proxy|RequireAll|RequireAny|RequireNone|VirtualHost)\\b *.*>/i,inside:{\"directive-block\":{pattern:/^<\\/?\\w+/,inside:{punctuation:/^<\\/?/},alias:\"tag\"},\"directive-block-parameter\":{pattern:/.*[^>]/,inside:{punctuation:/:/,string:{pattern:/(\"|').*\\1/,inside:{variable:/[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/}}},alias:\"attr-value\"},punctuation:/>/},alias:\"tag\"},\"directive-flags\":{pattern:/\\[(?:\\w,?)+\\]/,alias:\"keyword\"},string:{pattern:/(\"|').*\\1/,inside:{variable:/[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/}},variable:/[$%]\\{?(?:\\w\\.?[-+:]?)+\\}?/,regex:/\\^?.*\\$|\\^.*\\$?/};\nPrism.languages.apl={comment:/(?:ā|#[! ]).*$/m,string:{pattern:/'(?:[^'\\r\\n]|'')*'/,greedy:!0},number:/ĀÆ?(?:\\d*\\.?\\d+(?:e[+ĀÆ]?\\d+)?|ĀÆ|āˆž)(?:jĀÆ?(?:\\d*\\.?\\d+(?:e[+ĀÆ]?\\d+)?|ĀÆ|āˆž))?/i,statement:/:[A-Z][a-z][A-Za-z]*\\b/,\"system-function\":{pattern:/āŽ•[A-Z]+/i,alias:\"function\"},constant:/[ā¬āŒ¾#āŽ•āž]/,\"function\":/[-+Ć—Ć·āŒˆāŒŠāˆ£|ā³āø?*āŸā—‹!⌹<≤=>ā‰„ā‰ ā‰”ā‰¢āˆŠā·āˆŖāˆ©~āˆØāˆ§ā±ā²ā“,āŖāŒ½āŠ–ā‰ā†‘ā†“āŠ‚āŠƒāŠ†āŠ‡āŒ·ā‹ā’āŠ¤āŠ„ā•āŽāŠ£āŠ¢āā‚ā‰ˆāÆā†—Ā¤ā†’]/,\"monadic-operator\":{pattern:/[\\\\\\/āŒæā€ĀØāØāŒ¶&∄]/,alias:\"operator\"},\"dyadic-operator\":{pattern:/[.ā£ā ā¤āˆ˜āŒø@⌺]/,alias:\"operator\"},assignment:{pattern:/←/,alias:\"keyword\"},punctuation:/[\\[;\\]()◇⋄]/,dfn:{pattern:/[{}āŗāµā¶ā¹āˆ‡ā«:]/,alias:\"builtin\"}};\nPrism.languages.applescript={comment:[/\\(\\*(?:\\(\\*[\\s\\S]*?\\*\\)|[\\s\\S])*?\\*\\)/,/--.+/,/#.+/],string:/\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,number:/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e-?\\d+)?\\b/i,operator:[/[&=≠≤≄*+\\-\\/Ć·^]|[<>]=?/,/\\b(?:(?:start|begin|end)s? with|(?:(?:does not|doesn't) contain|contains?)|(?:is|isn't|is not) (?:in|contained by)|(?:(?:is|isn't|is not) )?(?:greater|less) than(?: or equal)?(?: to)?|(?:(?:does not|doesn't) come|comes) (?:before|after)|(?:is|isn't|is not) equal(?: to)?|(?:(?:does not|doesn't) equal|equals|equal to|isn't|is not)|(?:a )?(?:ref(?: to)?|reference to)|(?:and|or|div|mod|as|not))\\b/],keyword:/\\b(?:about|above|after|against|apart from|around|aside from|at|back|before|beginning|behind|below|beneath|beside|between|but|by|considering|continue|copy|does|eighth|else|end|equal|error|every|exit|false|fifth|first|for|fourth|from|front|get|given|global|if|ignoring|in|instead of|into|is|it|its|last|local|me|middle|my|ninth|of|on|onto|out of|over|prop|property|put|repeat|return|returning|second|set|seventh|since|sixth|some|tell|tenth|that|the|then|third|through|thru|timeout|times|to|transaction|true|try|until|where|while|whose|with|without)\\b/,\"class\":{pattern:/\\b(?:alias|application|boolean|class|constant|date|file|integer|list|number|POSIX file|real|record|reference|RGB color|script|text|centimetres|centimeters|feet|inches|kilometres|kilometers|metres|meters|miles|yards|square feet|square kilometres|square kilometers|square metres|square meters|square miles|square yards|cubic centimetres|cubic centimeters|cubic feet|cubic inches|cubic metres|cubic meters|cubic yards|gallons|litres|liters|quarts|grams|kilograms|ounces|pounds|degrees Celsius|degrees Fahrenheit|degrees Kelvin)\\b/,alias:\"builtin\"},punctuation:/[{}():,Ā¬Ā«Ā»ć€Šć€‹]/};\nPrism.languages.c=Prism.languages.extend(\"clike\",{keyword:/\\b(?:_Alignas|_Alignof|_Atomic|_Bool|_Complex|_Generic|_Imaginary|_Noreturn|_Static_assert|_Thread_local|asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while)\\b/,operator:/-[>-]?|\\+\\+?|!=?|<>?=?|==?|&&?|\\|\\|?|[~^%?*\\/]/,number:/(?:\\b0x[\\da-f]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ful]*/i}),Prism.languages.insertBefore(\"c\",\"string\",{macro:{pattern:/(^\\s*)#\\s*[a-z]+(?:[^\\r\\n\\\\]|\\\\(?:\\r\\n|[\\s\\S]))*/im,lookbehind:!0,alias:\"property\",inside:{string:{pattern:/(#\\s*include\\s*)(?:<.+?>|(\"|')(?:\\\\?.)+?\\2)/,lookbehind:!0},directive:{pattern:/(#\\s*)\\b(?:define|defined|elif|else|endif|error|ifdef|ifndef|if|import|include|line|pragma|undef|using)\\b/,lookbehind:!0,alias:\"keyword\"}}},constant:/\\b(?:__FILE__|__LINE__|__DATE__|__TIME__|__TIMESTAMP__|__func__|EOF|NULL|SEEK_CUR|SEEK_END|SEEK_SET|stdin|stdout|stderr)\\b/}),delete Prism.languages.c[\"class-name\"],delete Prism.languages.c[\"boolean\"];\nPrism.languages.arff={comment:/%.*/,string:{pattern:/([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},keyword:/@(?:attribute|data|end|relation)\\b/i,number:/\\b\\d+(?:\\.\\d+)?\\b/,punctuation:/[{},]/};\n!function(a){var i={pattern:/(^[ \\t]*)\\[(?!\\[)(?:([\"'$`])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\[(?:[^\\]\\\\]|\\\\.)*\\]|[^\\]\\\\]|\\\\.)*\\]/m,lookbehind:!0,inside:{quoted:{pattern:/([$`])(?:(?!\\1)[^\\\\]|\\\\.)*\\1/,inside:{punctuation:/^[$`]|[$`]$/}},interpreted:{pattern:/'(?:[^'\\\\]|\\\\.)*'/,inside:{punctuation:/^'|'$/}},string:/\"(?:[^\"\\\\]|\\\\.)*\"/,variable:/\\w+(?==)/,punctuation:/^\\[|\\]$|,/,operator:/=/,\"attr-value\":/(?!^\\s+$).+/}};a.languages.asciidoc={\"comment-block\":{pattern:/^(\\/{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1/m,alias:\"comment\"},table:{pattern:/^\\|={3,}(?:(?:\\r?\\n|\\r).*)*?(?:\\r?\\n|\\r)\\|={3,}$/m,inside:{specifiers:{pattern:/(?!\\|)(?:(?:(?:\\d+(?:\\.\\d+)?|\\.\\d+)[+*])?(?:[<^>](?:\\.[<^>])?|\\.[<^>])?[a-z]*)(?=\\|)/,alias:\"attr-value\"},punctuation:{pattern:/(^|[^\\\\])[|!]=*/,lookbehind:!0}}},\"passthrough-block\":{pattern:/^(\\+{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,inside:{punctuation:/^\\++|\\++$/}},\"literal-block\":{pattern:/^(-{4,}|\\.{4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,inside:{punctuation:/^(?:-+|\\.+)|(?:-+|\\.+)$/}},\"other-block\":{pattern:/^(--|\\*{4,}|_{4,}|={4,})(?:\\r?\\n|\\r)(?:[\\s\\S]*(?:\\r?\\n|\\r))??\\1$/m,inside:{punctuation:/^(?:-+|\\*+|_+|=+)|(?:-+|\\*+|_+|=+)$/}},\"list-punctuation\":{pattern:/(^[ \\t]*)(?:-|\\*{1,5}|\\.{1,5}|(?:[a-z]|\\d+)\\.|[xvi]+\\))(?= )/im,lookbehind:!0,alias:\"punctuation\"},\"list-label\":{pattern:/(^[ \\t]*)[a-z\\d].+(?::{2,4}|;;)(?=\\s)/im,lookbehind:!0,alias:\"symbol\"},\"indented-block\":{pattern:/((\\r?\\n|\\r)\\2)([ \\t]+)\\S.*(?:(?:\\r?\\n|\\r)\\3.+)*(?=\\2{2}|$)/,lookbehind:!0},comment:/^\\/\\/.*/m,title:{pattern:/^.+(?:\\r?\\n|\\r)(?:={3,}|-{3,}|~{3,}|\\^{3,}|\\+{3,})$|^={1,5} +.+|^\\.(?![\\s.]).*/m,alias:\"important\",inside:{punctuation:/^(?:\\.|=+)|(?:=+|-+|~+|\\^+|\\++)$/}},\"attribute-entry\":{pattern:/^:[^:\\r\\n]+:(?: .*?(?: \\+(?:\\r?\\n|\\r).*?)*)?$/m,alias:\"tag\"},attributes:i,hr:{pattern:/^'{3,}$/m,alias:\"punctuation\"},\"page-break\":{pattern:/^<{3,}$/m,alias:\"punctuation\"},admonition:{pattern:/^(?:TIP|NOTE|IMPORTANT|WARNING|CAUTION):/m,alias:\"keyword\"},callout:[{pattern:/(^[ \\t]*)/m,lookbehind:!0,alias:\"symbol\"},{pattern:/<\\d+>/,alias:\"symbol\"}],macro:{pattern:/\\b[a-z\\d][a-z\\d-]*::?(?:(?:\\S+)??\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,inside:{\"function\":/^[a-z\\d-]+(?=:)/,punctuation:/^::?/,attributes:{pattern:/(?:\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\1)[^\\\\]|\\\\.)*\\1|\\\\.)*\\])/,inside:i.inside}}},inline:{pattern:/(^|[^\\\\])(?:(?:\\B\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\2)[^\\\\]|\\\\.)*\\2|\\\\.)*\\])?(?:\\b_(?!\\s)(?: _|[^_\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: _|[^_\\\\\\r\\n]|\\\\.)+)*_\\b|\\B``(?!\\s).+?(?:(?:\\r?\\n|\\r).+?)*''\\B|\\B`(?!\\s)(?: ['`]|.)+?(?:(?:\\r?\\n|\\r)(?: ['`]|.)+?)*['`]\\B|\\B(['*+#])(?!\\s)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+(?:(?:\\r?\\n|\\r)(?: \\3|(?!\\3)[^\\\\\\r\\n]|\\\\.)+)*\\3\\B)|(?:\\[(?:[^\\]\\\\\"]|([\"'])(?:(?!\\4)[^\\\\]|\\\\.)*\\4|\\\\.)*\\])?(?:(__|\\*\\*|\\+\\+\\+?|##|\\$\\$|[~^]).+?(?:(?:\\r?\\n|\\r).+?)*\\5|\\{[^}\\r\\n]+\\}|\\[\\[\\[?.+?(?:(?:\\r?\\n|\\r).+?)*\\]?\\]\\]|<<.+?(?:(?:\\r?\\n|\\r).+?)*>>|\\(\\(\\(?.+?(?:(?:\\r?\\n|\\r).+?)*\\)?\\)\\)))/m,lookbehind:!0,inside:{attributes:i,url:{pattern:/^(?:\\[\\[\\[?.+?\\]?\\]\\]|<<.+?>>)$/,inside:{punctuation:/^(?:\\[\\[\\[?|<<)|(?:\\]\\]\\]?|>>)$/}},\"attribute-ref\":{pattern:/^\\{.+\\}$/,inside:{variable:{pattern:/(^\\{)[a-z\\d,+_-]+/,lookbehind:!0},operator:/^[=?!#%@$]|!(?=[:}])/,punctuation:/^\\{|\\}$|::?/}},italic:{pattern:/^(['_])[\\s\\S]+\\1$/,inside:{punctuation:/^(?:''?|__?)|(?:''?|__?)$/}},bold:{pattern:/^\\*[\\s\\S]+\\*$/,inside:{punctuation:/^\\*\\*?|\\*\\*?$/}},punctuation:/^(?:``?|\\+{1,3}|##?|\\$\\$|[~^]|\\(\\(\\(?)|(?:''?|\\+{1,3}|##?|\\$\\$|[~^`]|\\)?\\)\\))$/}},replacement:{pattern:/\\((?:C|TM|R)\\)/,alias:\"builtin\"},entity:/&#?[\\da-z]{1,8};/i,\"line-continuation\":{pattern:/(^| )\\+$/m,lookbehind:!0,alias:\"punctuation\"}},i.inside.interpreted.inside.rest={macro:a.languages.asciidoc.macro,inline:a.languages.asciidoc.inline,replacement:a.languages.asciidoc.replacement,entity:a.languages.asciidoc.entity},a.languages.asciidoc[\"passthrough-block\"].inside.rest={macro:a.languages.asciidoc.macro},a.languages.asciidoc[\"literal-block\"].inside.rest={callout:a.languages.asciidoc.callout},a.languages.asciidoc.table.inside.rest={\"comment-block\":a.languages.asciidoc[\"comment-block\"],\"passthrough-block\":a.languages.asciidoc[\"passthrough-block\"],\"literal-block\":a.languages.asciidoc[\"literal-block\"],\"other-block\":a.languages.asciidoc[\"other-block\"],\"list-punctuation\":a.languages.asciidoc[\"list-punctuation\"],\"indented-block\":a.languages.asciidoc[\"indented-block\"],comment:a.languages.asciidoc.comment,title:a.languages.asciidoc.title,\"attribute-entry\":a.languages.asciidoc[\"attribute-entry\"],attributes:a.languages.asciidoc.attributes,hr:a.languages.asciidoc.hr,\"page-break\":a.languages.asciidoc[\"page-break\"],admonition:a.languages.asciidoc.admonition,\"list-label\":a.languages.asciidoc[\"list-label\"],callout:a.languages.asciidoc.callout,macro:a.languages.asciidoc.macro,inline:a.languages.asciidoc.inline,replacement:a.languages.asciidoc.replacement,entity:a.languages.asciidoc.entity,\"line-continuation\":a.languages.asciidoc[\"line-continuation\"]},a.languages.asciidoc[\"other-block\"].inside.rest={table:a.languages.asciidoc.table,\"list-punctuation\":a.languages.asciidoc[\"list-punctuation\"],\"indented-block\":a.languages.asciidoc[\"indented-block\"],comment:a.languages.asciidoc.comment,\"attribute-entry\":a.languages.asciidoc[\"attribute-entry\"],attributes:a.languages.asciidoc.attributes,hr:a.languages.asciidoc.hr,\"page-break\":a.languages.asciidoc[\"page-break\"],admonition:a.languages.asciidoc.admonition,\"list-label\":a.languages.asciidoc[\"list-label\"],macro:a.languages.asciidoc.macro,inline:a.languages.asciidoc.inline,replacement:a.languages.asciidoc.replacement,entity:a.languages.asciidoc.entity,\"line-continuation\":a.languages.asciidoc[\"line-continuation\"]},a.languages.asciidoc.title.inside.rest={macro:a.languages.asciidoc.macro,inline:a.languages.asciidoc.inline,replacement:a.languages.asciidoc.replacement,entity:a.languages.asciidoc.entity},a.hooks.add(\"wrap\",function(a){\"entity\"===a.type&&(a.attributes.title=a.content.replace(/&/,\"&\"))})}(Prism);\nPrism.languages.asm6502={comment:/;.*/,directive:{pattern:/\\.\\w+(?= )/,alias:\"keyword\"},string:/([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,opcode:{pattern:/\\b(?:adc|and|asl|bcc|bcs|beq|bit|bmi|bne|bpl|brk|bvc|bvs|clc|cld|cli|clv|cmp|cpx|cpy|dec|dex|dey|eor|inc|inx|iny|jmp|jsr|lda|ldx|ldy|lsr|nop|ora|pha|php|pla|plp|rol|ror|rti|rts|sbc|sec|sed|sei|sta|stx|sty|tax|tay|tsx|txa|txs|tya|ADC|AND|ASL|BCC|BCS|BEQ|BIT|BMI|BNE|BPL|BRK|BVC|BVS|CLC|CLD|CLI|CLV|CMP|CPX|CPY|DEC|DEX|DEY|EOR|INC|INX|INY|JMP|JSR|LDA|LDX|LDY|LSR|NOP|ORA|PHA|PHP|PLA|PLP|ROL|ROR|RTI|RTS|SBC|SEC|SED|SEI|STA|STX|STY|TAX|TAY|TSX|TXA|TXS|TYA)\\b/,alias:\"property\"},hexnumber:{pattern:/#?\\$[\\da-f]{2,4}/i,alias:\"string\"},binarynumber:{pattern:/#?%[01]+/,alias:\"string\"},decimalnumber:{pattern:/#?\\d+/,alias:\"string\"},register:{pattern:/\\b[xya]\\b/i,alias:\"variable\"}};\nPrism.languages.csharp=Prism.languages.extend(\"clike\",{keyword:/\\b(?:abstract|add|alias|as|ascending|async|await|base|bool|break|byte|case|catch|char|checked|class|const|continue|decimal|default|delegate|descending|do|double|dynamic|else|enum|event|explicit|extern|false|finally|fixed|float|for|foreach|from|get|global|goto|group|if|implicit|in|int|interface|internal|into|is|join|let|lock|long|namespace|new|null|object|operator|orderby|out|override|params|partial|private|protected|public|readonly|ref|remove|return|sbyte|sealed|select|set|short|sizeof|stackalloc|static|string|struct|switch|this|throw|true|try|typeof|uint|ulong|unchecked|unsafe|ushort|using|value|var|virtual|void|volatile|where|while|yield)\\b/,string:[{pattern:/@(\"|')(?:\\1\\1|\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,greedy:!0},{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*?\\1/,greedy:!0}],\"class-name\":[{pattern:/\\b[A-Z]\\w*(?:\\.\\w+)*\\b(?=\\s+\\w+)/,inside:{punctuation:/\\./}},{pattern:/(\\[)[A-Z]\\w*(?:\\.\\w+)*\\b/,lookbehind:!0,inside:{punctuation:/\\./}},{pattern:/(\\b(?:class|interface)\\s+[A-Z]\\w*(?:\\.\\w+)*\\s*:\\s*)[A-Z]\\w*(?:\\.\\w+)*\\b/,lookbehind:!0,inside:{punctuation:/\\./}},{pattern:/((?:\\b(?:class|interface|new)\\s+)|(?:catch\\s+\\())[A-Z]\\w*(?:\\.\\w+)*\\b/,lookbehind:!0,inside:{punctuation:/\\./}}],number:/\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)f?/i}),Prism.languages.insertBefore(\"csharp\",\"class-name\",{\"generic-method\":{pattern:/\\w+\\s*<[^>\\r\\n]+?>\\s*(?=\\()/,inside:{\"function\":/^\\w+/,\"class-name\":{pattern:/\\b[A-Z]\\w*(?:\\.\\w+)*\\b/,inside:{punctuation:/\\./}},keyword:Prism.languages.csharp.keyword,punctuation:/[<>(),.:]/}},preprocessor:{pattern:/(^\\s*)#.*/m,lookbehind:!0,alias:\"property\",inside:{directive:{pattern:/(\\s*#)\\b(?:define|elif|else|endif|endregion|error|if|line|pragma|region|undef|warning)\\b/,lookbehind:!0,alias:\"keyword\"}}}}),Prism.languages.dotnet=Prism.languages.csharp;\nPrism.languages.autohotkey={comment:{pattern:/(^[^\";\\n]*(\"[^\"\\n]*?\"[^\"\\n]*?)*)(?:;.*$|^\\s*\\/\\*[\\s\\S]*\\n\\*\\/)/m,lookbehind:!0},string:/\"(?:[^\"\\n\\r]|\"\")*\"/m,\"function\":/[^(); \\t,\\n+*\\-=?>:\\\\\\/<&%\\[\\]]+?(?=\\()/m,tag:/^[ \\t]*[^\\s:]+?(?=:(?:[^:]|$))/m,variable:/%\\w+%/,number:/\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,operator:/\\?|\\/\\/?=?|:=|\\|[=|]?|&[=&]?|\\+[=+]?|-[=-]?|\\*[=*]?|<(?:<=?|>|=)?|>>?=?|[.^!=~]=?|\\b(?:AND|NOT|OR)\\b/,punctuation:/[{}[\\]():,]/,\"boolean\":/\\b(?:true|false)\\b/,selector:/\\b(?:AutoTrim|BlockInput|Break|Click|ClipWait|Continue|Control|ControlClick|ControlFocus|ControlGet|ControlGetFocus|ControlGetPos|ControlGetText|ControlMove|ControlSend|ControlSendRaw|ControlSetText|CoordMode|Critical|DetectHiddenText|DetectHiddenWindows|Drive|DriveGet|DriveSpaceFree|EnvAdd|EnvDiv|EnvGet|EnvMult|EnvSet|EnvSub|EnvUpdate|Exit|ExitApp|FileAppend|FileCopy|FileCopyDir|FileCreateDir|FileCreateShortcut|FileDelete|FileEncoding|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|Hotkey|ImageSearch|IniDelete|IniRead|IniWrite|Input|InputBox|KeyWait|ListHotkeys|ListLines|ListVars|Loop|Menu|MouseClick|MouseClickDrag|MouseGetPos|MouseMove|MsgBox|OnExit|OutputDebug|Pause|PixelGetColor|PixelSearch|PostMessage|Process|Progress|Random|RegDelete|RegRead|RegWrite|Reload|Repeat|Return|Run|RunAs|RunWait|Send|SendEvent|SendInput|SendMessage|SendMode|SendPlay|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|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/i,constant:/\\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_isunicode|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/i,builtin:/\\b(?:abs|acos|asc|asin|atan|ceil|chr|class|cos|dllcall|exp|fileexist|Fileopen|floor|il_add|il_create|il_destroy|instr|substr|isfunc|islabel|IsObject|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|strsplit|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|__New|__Call|__Get|__Set)\\b/i,symbol:/\\b(?:alt|altdown|altup|appskey|backspace|browser_back|browser_favorites|browser_forward|browser_home|browser_refresh|browser_search|browser_stop|bs|capslock|ctrl|ctrlbreak|ctrldown|ctrlup|del|delete|down|end|enter|esc|escape|f1|f10|f11|f12|f13|f14|f15|f16|f17|f18|f19|f2|f20|f21|f22|f23|f24|f3|f4|f5|f6|f7|f8|f9|home|ins|insert|joy1|joy10|joy11|joy12|joy13|joy14|joy15|joy16|joy17|joy18|joy19|joy2|joy20|joy21|joy22|joy23|joy24|joy25|joy26|joy27|joy28|joy29|joy3|joy30|joy31|joy32|joy4|joy5|joy6|joy7|joy8|joy9|joyaxes|joybuttons|joyinfo|joyname|joypov|joyr|joyu|joyv|joyx|joyy|joyz|lalt|launch_app1|launch_app2|launch_mail|launch_media|lbutton|lcontrol|lctrl|left|lshift|lwin|lwindown|lwinup|mbutton|media_next|media_play_pause|media_prev|media_stop|numlock|numpad0|numpad1|numpad2|numpad3|numpad4|numpad5|numpad6|numpad7|numpad8|numpad9|numpadadd|numpadclear|numpaddel|numpaddiv|numpaddot|numpaddown|numpadend|numpadenter|numpadhome|numpadins|numpadleft|numpadmult|numpadpgdn|numpadpgup|numpadright|numpadsub|numpadup|pgdn|pgup|printscreen|ralt|rbutton|rcontrol|rctrl|right|rshift|rwin|rwindown|rwinup|scrolllock|shift|shiftdown|shiftup|space|tab|up|volume_down|volume_mute|volume_up|wheeldown|wheelleft|wheelright|wheelup|xbutton1|xbutton2)\\b/i,important:/#\\b(?:AllowSameLineComments|ClipboardTimeout|CommentFlag|ErrorStdOut|EscapeChar|HotkeyInterval|HotkeyModifierTimeout|Hotstring|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Include|IncludeAgain|InstallKeybdHook|InstallMouseHook|KeyHistory|LTrim|MaxHotkeysPerInterval|MaxMem|MaxThreads|MaxThreadsBuffer|MaxThreadsPerHotkey|NoEnv|NoTrayIcon|Persistent|SingleInstance|UseHook|WinActivateForce)\\b/i,keyword:/\\b(?:Abort|AboveNormal|Add|ahk_class|ahk_group|ahk_id|ahk_pid|All|Alnum|Alpha|AltSubmit|AltTab|AltTabAndMenu|AltTabMenu|AltTabMenuDismiss|AlwaysOnTop|AutoSize|Background|BackgroundTrans|BelowNormal|between|BitAnd|BitNot|BitOr|BitShiftLeft|BitShiftRight|BitXOr|Bold|Border|Button|ByRef|Checkbox|Checked|CheckedGray|Choose|ChooseString|Close|Color|ComboBox|Contains|ControlList|Count|Date|DateTime|Days|DDL|Default|DeleteAll|Delimiter|Deref|Destroy|Digit|Disable|Disabled|DropDownList|Edit|Eject|Else|Enable|Enabled|Error|Exist|Expand|ExStyle|FileSystem|First|Flash|Float|FloatFast|Focus|Font|for|global|Grid|Group|GroupBox|GuiClose|GuiContextMenu|GuiDropFiles|GuiEscape|GuiSize|Hdr|Hidden|Hide|High|HKCC|HKCR|HKCU|HKEY_CLASSES_ROOT|HKEY_CURRENT_CONFIG|HKEY_CURRENT_USER|HKEY_LOCAL_MACHINE|HKEY_USERS|HKLM|HKU|Hours|HScroll|Icon|IconSmall|ID|IDLast|If|IfEqual|IfExist|IfGreater|IfGreaterOrEqual|IfInString|IfLess|IfLessOrEqual|IfMsgBox|IfNotEqual|IfNotExist|IfNotInString|IfWinActive|IfWinExist|IfWinNotActive|IfWinNotExist|Ignore|ImageList|in|Integer|IntegerFast|Interrupt|is|italic|Join|Label|LastFound|LastFoundExist|Limit|Lines|List|ListBox|ListView|local|Lock|Logoff|Low|Lower|Lowercase|MainWindow|Margin|Maximize|MaximizeBox|MaxSize|Minimize|MinimizeBox|MinMax|MinSize|Minutes|MonthCal|Mouse|Move|Multi|NA|No|NoActivate|NoDefault|NoHide|NoIcon|NoMainWindow|norm|Normal|NoSort|NoSortHdr|NoStandard|Not|NoTab|NoTimers|Number|Off|Ok|On|OwnDialogs|Owner|Parse|Password|Picture|Pixel|Pos|Pow|Priority|ProcessName|Radio|Range|Read|ReadOnly|Realtime|Redraw|REG_BINARY|REG_DWORD|REG_EXPAND_SZ|REG_MULTI_SZ|REG_SZ|Region|Relative|Rename|Report|Resize|Restore|Retry|RGB|Screen|Seconds|Section|Serial|SetLabel|ShiftAltTab|Show|Single|Slider|SortDesc|Standard|static|Status|StatusBar|StatusCD|strike|Style|Submit|SysMenu|Tab2|TabStop|Text|Theme|Tile|ToggleCheck|ToggleEnable|ToolWindow|Top|Topmost|TransColor|Transparent|Tray|TreeView|TryAgain|Type|UnCheck|underline|Unicode|Unlock|UpDown|Upper|Uppercase|UseErrorLevel|Vis|VisFirst|Visible|VScroll|Wait|WaitClose|WantCtrlA|WantF2|WantReturn|While|Wrap|Xdigit|xm|xp|xs|Yes|ym|yp|ys)\\b/i};\nPrism.languages.autoit={comment:[/;.*/,{pattern:/(^\\s*)#(?:comments-start|cs)[\\s\\S]*?^\\s*#(?:comments-end|ce)/m,lookbehind:!0}],url:{pattern:/(^\\s*#include\\s+)(?:<[^\\r\\n>]+>|\"[^\\r\\n\"]+\")/m,lookbehind:!0},string:{pattern:/([\"'])(?:\\1\\1|(?!\\1)[^\\r\\n])*\\1/,greedy:!0,inside:{variable:/([%$@])\\w+\\1/}},directive:{pattern:/(^\\s*)#\\w+/m,lookbehind:!0,alias:\"keyword\"},\"function\":/\\b\\w+(?=\\()/,variable:/[$@]\\w+/,keyword:/\\b(?:Case|Const|Continue(?:Case|Loop)|Default|Dim|Do|Else(?:If)?|End(?:Func|If|Select|Switch|With)|Enum|Exit(?:Loop)?|For|Func|Global|If|In|Local|Next|Null|ReDim|Select|Static|Step|Switch|Then|To|Until|Volatile|WEnd|While|With)\\b/i,number:/\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b/i,\"boolean\":/\\b(?:True|False)\\b/i,operator:/<[=>]?|[-+*\\/=&>]=?|[?^]|\\b(?:And|Or|Not)\\b/i,punctuation:/[\\[\\]().,:]/};\n!function(e){var t={variable:[{pattern:/\\$?\\(\\([\\s\\S]+?\\)\\)/,inside:{variable:[{pattern:/(^\\$\\(\\([\\s\\S]+)\\)\\)/,lookbehind:!0},/^\\$\\(\\(/],number:/\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,operator:/--?|-=|\\+\\+?|\\+=|!=?|~|\\*\\*?|\\*=|\\/=?|%=?|<<=?|>>=?|<=?|>=?|==?|&&?|&=|\\^=?|\\|\\|?|\\|=|\\?|:/,punctuation:/\\(\\(?|\\)\\)?|,|;/}},{pattern:/\\$\\([^)]+\\)|`[^`]+`/,greedy:!0,inside:{variable:/^\\$\\(|^`|\\)$|`$/}},/\\$(?:[\\w#?*!@]+|\\{[^}]+\\})/i]};e.languages.bash={shebang:{pattern:/^#!\\s*\\/bin\\/bash|^#!\\s*\\/bin\\/sh/,alias:\"important\"},comment:{pattern:/(^|[^\"{\\\\])#.*/,lookbehind:!0},string:[{pattern:/((?:^|[^<])<<\\s*)[\"']?(\\w+?)[\"']?\\s*\\r?\\n(?:[\\s\\S])*?\\r?\\n\\2/,lookbehind:!0,greedy:!0,inside:t},{pattern:/([\"'])(?:\\\\[\\s\\S]|\\$\\([^)]+\\)|`[^`]+`|(?!\\1)[^\\\\])*\\1/,greedy:!0,inside:t}],variable:t.variable,\"function\":{pattern:/(^|[\\s;|&])(?:alias|apropos|apt-get|aptitude|aspell|awk|basename|bash|bc|bg|builtin|bzip2|cal|cat|cd|cfdisk|chgrp|chmod|chown|chroot|chkconfig|cksum|clear|cmp|comm|command|cp|cron|crontab|csplit|curl|cut|date|dc|dd|ddrescue|df|diff|diff3|dig|dir|dircolors|dirname|dirs|dmesg|du|egrep|eject|enable|env|ethtool|eval|exec|expand|expect|export|expr|fdformat|fdisk|fg|fgrep|file|find|fmt|fold|format|free|fsck|ftp|fuser|gawk|getopts|git|grep|groupadd|groupdel|groupmod|groups|gzip|hash|head|help|hg|history|hostname|htop|iconv|id|ifconfig|ifdown|ifup|import|install|jobs|join|kill|killall|less|link|ln|locate|logname|logout|look|lpc|lpr|lprint|lprintd|lprintq|lprm|ls|lsof|make|man|mkdir|mkfifo|mkisofs|mknod|more|most|mount|mtools|mtr|mv|mmv|nano|netstat|nice|nl|nohup|notify-send|npm|nslookup|open|op|passwd|paste|pathchk|ping|pkill|popd|pr|printcap|printenv|printf|ps|pushd|pv|pwd|quota|quotacheck|quotactl|ram|rar|rcp|read|readarray|readonly|reboot|rename|renice|remsync|rev|rm|rmdir|rsync|screen|scp|sdiff|sed|seq|service|sftp|shift|shopt|shutdown|sleep|slocate|sort|source|split|ssh|stat|strace|su|sudo|sum|suspend|sync|tail|tar|tee|test|time|timeout|times|touch|top|traceroute|trap|tr|tsort|tty|type|ulimit|umask|umount|unalias|uname|unexpand|uniq|units|unrar|unshar|uptime|useradd|userdel|usermod|users|uuencode|uudecode|v|vdir|vi|vmstat|wait|watch|wc|wget|whereis|which|who|whoami|write|xargs|xdg-open|yes|zip)(?=$|[\\s;|&])/,lookbehind:!0},keyword:{pattern:/(^|[\\s;|&])(?:let|:|\\.|if|then|else|elif|fi|for|break|continue|while|in|case|function|select|do|done|until|echo|exit|return|set|declare)(?=$|[\\s;|&])/,lookbehind:!0},\"boolean\":{pattern:/(^|[\\s;|&])(?:true|false)(?=$|[\\s;|&])/,lookbehind:!0},operator:/&&?|\\|\\|?|==?|!=?|<<>|<=?|>=?|=~/,punctuation:/\\$?\\(\\(?|\\)\\)?|\\.\\.|[{}[\\];]/};var a=t.variable[1].inside;a.string=e.languages.bash.string,a[\"function\"]=e.languages.bash[\"function\"],a.keyword=e.languages.bash.keyword,a[\"boolean\"]=e.languages.bash[\"boolean\"],a.operator=e.languages.bash.operator,a.punctuation=e.languages.bash.punctuation,e.languages.shell=e.languages.bash}(Prism);\nPrism.languages.basic={comment:{pattern:/(?:!|REM\\b).+/i,inside:{keyword:/^REM/i}},string:{pattern:/\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^_ +\\-.A-Z\\d])*\"/i,greedy:!0},number:/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,keyword:/\\b(?:AS|BEEP|BLOAD|BSAVE|CALL(?: ABSOLUTE)?|CASE|CHAIN|CHDIR|CLEAR|CLOSE|CLS|COM|COMMON|CONST|DATA|DECLARE|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DIM|DO|DOUBLE|ELSE|ELSEIF|END|ENVIRON|ERASE|ERROR|EXIT|FIELD|FILES|FOR|FUNCTION|GET|GOSUB|GOTO|IF|INPUT|INTEGER|IOCTL|KEY|KILL|LINE INPUT|LOCATE|LOCK|LONG|LOOP|LSET|MKDIR|NAME|NEXT|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPEN|OPTION BASE|OUT|POKE|PUT|READ|REDIM|REM|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SHARED|SINGLE|SELECT CASE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|SUB|SWAP|SYSTEM|THEN|TIMER|TO|TROFF|TRON|TYPE|UNLOCK|UNTIL|USING|VIEW PRINT|WAIT|WEND|WHILE|WRITE)(?:\\$|\\b)/i,\"function\":/\\b(?:ABS|ACCESS|ACOS|ANGLE|AREA|ARITHMETIC|ARRAY|ASIN|ASK|AT|ATN|BASE|BEGIN|BREAK|CAUSE|CEIL|CHR|CLIP|COLLATE|COLOR|CON|COS|COSH|COT|CSC|DATE|DATUM|DEBUG|DECIMAL|DEF|DEG|DEGREES|DELETE|DET|DEVICE|DISPLAY|DOT|ELAPSED|EPS|ERASABLE|EXLINE|EXP|EXTERNAL|EXTYPE|FILETYPE|FIXED|FP|GO|GRAPH|HANDLER|IDN|IMAGE|IN|INT|INTERNAL|IP|IS|KEYED|LBOUND|LCASE|LEFT|LEN|LENGTH|LET|LINE|LINES|LOG|LOG10|LOG2|LTRIM|MARGIN|MAT|MAX|MAXNUM|MID|MIN|MISSING|MOD|NATIVE|NUL|NUMERIC|OF|OPTION|ORD|ORGANIZATION|OUTIN|OUTPUT|PI|POINT|POINTER|POINTS|POS|PRINT|PROGRAM|PROMPT|RAD|RADIANS|RANDOMIZE|RECORD|RECSIZE|RECTYPE|RELATIVE|REMAINDER|REPEAT|REST|RETRY|REWRITE|RIGHT|RND|ROUND|RTRIM|SAME|SEC|SELECT|SEQUENTIAL|SET|SETTER|SGN|SIN|SINH|SIZE|SKIP|SQR|STANDARD|STATUS|STR|STREAM|STYLE|TAB|TAN|TANH|TEMPLATE|TEXT|THERE|TIME|TIMEOUT|TRACE|TRANSFORM|TRUNCATE|UBOUND|UCASE|USE|VAL|VARIABLE|VIEWPORT|WHEN|WINDOW|WITH|ZER|ZONEWIDTH)(?:\\$|\\b)/i,operator:/<[=>]?|>=?|[+\\-*\\/^=&]|\\b(?:AND|EQV|IMP|NOT|OR|XOR)\\b/i,punctuation:/[,;:()]/};\n!function(e){var r=/%%?[~:\\w]+%?|!\\S+!/,t={pattern:/\\/[a-z?]+(?=[ :]|$):?|-[a-z]\\b|--[a-z-]+\\b/im,alias:\"attr-name\",inside:{punctuation:/:/}},n=/\"[^\"]*\"/,i=/(?:\\b|-)\\d+\\b/;e.languages.batch={comment:[/^::.*/m,{pattern:/((?:^|[&(])[ \\t]*)rem\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,lookbehind:!0}],label:{pattern:/^:.*/m,alias:\"property\"},command:[{pattern:/((?:^|[&(])[ \\t]*)for(?: ?\\/[a-z?](?:[ :](?:\"[^\"]*\"|\\S+))?)* \\S+ in \\([^)]+\\) do/im,lookbehind:!0,inside:{keyword:/^for\\b|\\b(?:in|do)\\b/i,string:n,parameter:t,variable:r,number:i,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \\t]*)if(?: ?\\/[a-z?](?:[ :](?:\"[^\"]*\"|\\S+))?)* (?:not )?(?:cmdextversion \\d+|defined \\w+|errorlevel \\d+|exist \\S+|(?:\"[^\"]*\"|\\S+)?(?:==| (?:equ|neq|lss|leq|gtr|geq) )(?:\"[^\"]*\"|\\S+))/im,lookbehind:!0,inside:{keyword:/^if\\b|\\b(?:not|cmdextversion|defined|errorlevel|exist)\\b/i,string:n,parameter:t,variable:r,number:i,operator:/\\^|==|\\b(?:equ|neq|lss|leq|gtr|geq)\\b/i}},{pattern:/((?:^|[&()])[ \\t]*)else\\b/im,lookbehind:!0,inside:{keyword:/^else\\b/i}},{pattern:/((?:^|[&(])[ \\t]*)set(?: ?\\/[a-z](?:[ :](?:\"[^\"]*\"|\\S+))?)* (?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,lookbehind:!0,inside:{keyword:/^set\\b/i,string:n,parameter:t,variable:[r,/\\w+(?=(?:[*\\/%+\\-&^|]|<<|>>)?=)/],number:i,operator:/[*\\/%+\\-&^|]=?|<<=?|>>=?|[!~_=]/,punctuation:/[()',]/}},{pattern:/((?:^|[&(])[ \\t]*@?)\\w+\\b(?:[^^&)\\r\\n]|\\^(?:\\r\\n|[\\s\\S]))*/im,lookbehind:!0,inside:{keyword:/^\\w+\\b/i,string:n,parameter:t,label:{pattern:/(^\\s*):\\S+/m,lookbehind:!0,alias:\"property\"},variable:r,number:i,operator:/\\^/}}],operator:/[&@]/,punctuation:/[()']/}}(Prism);\nPrism.languages.bison=Prism.languages.extend(\"c\",{}),Prism.languages.insertBefore(\"bison\",\"comment\",{bison:{pattern:/^[\\s\\S]*?%%[\\s\\S]*?%%/,inside:{c:{pattern:/%\\{[\\s\\S]*?%\\}|\\{(?:\\{[^}]*\\}|[^{}])*\\}/,inside:{delimiter:{pattern:/^%?\\{|%?\\}$/,alias:\"punctuation\"},\"bison-variable\":{pattern:/[$@](?:<[^\\s>]+>)?[\\w$]+/,alias:\"variable\",inside:{punctuation:/<|>/}},rest:Prism.languages.c}},comment:Prism.languages.c.comment,string:Prism.languages.c.string,property:/\\S+(?=:)/,keyword:/%\\w+/,number:{pattern:/(^|[^@])\\b(?:0x[\\da-f]+|\\d+)/i,lookbehind:!0},punctuation:/%[%?]|[|:;\\[\\]<>]/}}});\nPrism.languages.brainfuck={pointer:{pattern:/<|>/,alias:\"keyword\"},increment:{pattern:/\\+/,alias:\"inserted\"},decrement:{pattern:/-/,alias:\"deleted\"},branching:{pattern:/\\[|\\]/,alias:\"important\"},operator:/[.,]/,comment:/\\S+/};\nPrism.languages.bro={comment:{pattern:/(^|[^\\\\$])#.*/,lookbehind:!0,inside:{italic:/\\b(?:TODO|FIXME|XXX)\\b/}},string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},\"boolean\":/\\b[TF]\\b/,\"function\":{pattern:/(?:function|hook|event) \\w+(?:::\\w+)?/,inside:{keyword:/^(?:function|hook|event)/}},variable:{pattern:/(?:global|local) \\w+/i,inside:{keyword:/(?:global|local)/}},builtin:/(?:@(?:load(?:-(?:sigs|plugin))?|unload|prefixes|ifn?def|else|(?:end)?if|DIR|FILENAME))|(?:&?(?:redef|priority|log|optional|default|add_func|delete_func|expire_func|read_expire|write_expire|create_expire|synchronized|persistent|rotate_interval|rotate_size|encrypt|raw_output|mergeable|group|error_handler|type_column))/,constant:{pattern:/const \\w+/i,inside:{keyword:/const/}},keyword:/\\b(?:break|next|continue|alarm|using|of|add|delete|export|print|return|schedule|when|timeout|addr|any|bool|count|double|enum|file|int|interval|pattern|opaque|port|record|set|string|subnet|table|time|vector|for|if|else|in|module|function)\\b/,operator:/--?|\\+\\+?|!=?=?|<=?|>=?|==?=?|&&|\\|\\|?|\\?|\\*|\\/|~|\\^|%/,number:/\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.cpp=Prism.languages.extend(\"c\",{keyword:/\\b(?:alignas|alignof|asm|auto|bool|break|case|catch|char|char16_t|char32_t|class|compl|const|constexpr|const_cast|continue|decltype|default|delete|do|double|dynamic_cast|else|enum|explicit|export|extern|float|for|friend|goto|if|inline|int|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|long|mutable|namespace|new|noexcept|nullptr|operator|private|protected|public|register|reinterpret_cast|return|short|signed|sizeof|static|static_assert|static_cast|struct|switch|template|this|thread_local|throw|try|typedef|typeid|typename|union|unsigned|using|virtual|void|volatile|wchar_t|while)\\b/,\"boolean\":/\\b(?:true|false)\\b/,operator:/--?|\\+\\+?|!=?|<{1,2}=?|>{1,2}=?|->|:{1,2}|={1,2}|\\^|~|%|&{1,2}|\\|\\|?|\\?|\\*|\\/|\\b(?:and|and_eq|bitand|bitor|not|not_eq|or|or_eq|xor|xor_eq)\\b/}),Prism.languages.insertBefore(\"cpp\",\"keyword\",{\"class-name\":{pattern:/(class\\s+)\\w+/i,lookbehind:!0}}),Prism.languages.insertBefore(\"cpp\",\"string\",{\"raw-string\":{pattern:/R\"([^()\\\\ ]{0,16})\\([\\s\\S]*?\\)\\1\"/,alias:\"string\",greedy:!0}});\nPrism.languages.aspnet=Prism.languages.extend(\"markup\",{\"page-directive tag\":{pattern:/<%\\s*@.*%>/i,inside:{\"page-directive tag\":/<%\\s*@\\s*(?:Assembly|Control|Implements|Import|Master(?:Type)?|OutputCache|Page|PreviousPageType|Reference|Register)?|%>/i,rest:Prism.languages.markup.tag.inside}},\"directive tag\":{pattern:/<%.*%>/i,inside:{\"directive tag\":/<%\\s*?[$=%#:]{0,2}|%>/i,rest:Prism.languages.csharp}}}),Prism.languages.aspnet.tag.pattern=/<(?!%)\\/?[^\\s>\\/]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,Prism.languages.insertBefore(\"inside\",\"punctuation\",{\"directive tag\":Prism.languages.aspnet[\"directive tag\"]},Prism.languages.aspnet.tag.inside[\"attr-value\"]),Prism.languages.insertBefore(\"aspnet\",\"comment\",{\"asp comment\":/<%--[\\s\\S]*?--%>/}),Prism.languages.insertBefore(\"aspnet\",Prism.languages.javascript?\"script\":\"tag\",{\"asp script\":{pattern:/()[\\s\\S]*?(?=<\\/script>)/i,lookbehind:!0,inside:Prism.languages.csharp||{}}});\nPrism.languages.arduino=Prism.languages.extend(\"cpp\",{keyword:/\\b(?:setup|if|else|while|do|for|return|in|instanceof|default|function|loop|goto|switch|case|new|try|throw|catch|finally|null|break|continue|boolean|bool|void|byte|word|string|String|array|int|long|integer|double)\\b/,builtin:/\\b(?:KeyboardController|MouseController|SoftwareSerial|EthernetServer|EthernetClient|LiquidCrystal|LiquidCrystal_I2C|RobotControl|GSMVoiceCall|EthernetUDP|EsploraTFT|HttpClient|RobotMotor|WiFiClient|GSMScanner|FileSystem|Scheduler|GSMServer|YunClient|YunServer|IPAddress|GSMClient|GSMModem|Keyboard|Ethernet|Console|GSMBand|Esplora|Stepper|Process|WiFiUDP|GSM_SMS|Mailbox|USBHost|Firmata|PImage|Client|Server|GSMPIN|FileIO|Bridge|Serial|EEPROM|Stream|Mouse|Audio|Servo|File|Task|GPRS|WiFi|Wire|TFT|GSM|SPI|SD|runShellCommandAsynchronously|analogWriteResolution|retrieveCallingNumber|printFirmwareVersion|analogReadResolution|sendDigitalPortPair|noListenOnLocalhost|readJoystickButton|setFirmwareVersion|readJoystickSwitch|scrollDisplayRight|getVoiceCallStatus|scrollDisplayLeft|writeMicroseconds|delayMicroseconds|beginTransmission|getSignalStrength|runAsynchronously|getAsynchronously|listenOnLocalhost|getCurrentCarrier|readAccelerometer|messageAvailable|sendDigitalPorts|lineFollowConfig|countryNameWrite|runShellCommand|readStringUntil|rewindDirectory|readTemperature|setClockDivider|readLightSensor|endTransmission|analogReference|detachInterrupt|countryNameRead|attachInterrupt|encryptionType|readBytesUntil|robotNameWrite|readMicrophone|robotNameRead|cityNameWrite|userNameWrite|readJoystickY|readJoystickX|mouseReleased|openNextFile|scanNetworks|noInterrupts|digitalWrite|beginSpeaker|mousePressed|isActionDone|mouseDragged|displayLogos|noAutoscroll|addParameter|remoteNumber|getModifiers|keyboardRead|userNameRead|waitContinue|processInput|parseCommand|printVersion|readNetworks|writeMessage|blinkVersion|cityNameRead|readMessage|setDataMode|parsePacket|isListening|setBitOrder|beginPacket|isDirectory|motorsWrite|drawCompass|digitalRead|clearScreen|serialEvent|rightToLeft|setTextSize|leftToRight|requestFrom|keyReleased|compassRead|analogWrite|interrupts|WiFiServer|disconnect|playMelody|parseFloat|autoscroll|getPINUsed|setPINUsed|setTimeout|sendAnalog|readSlider|analogRead|beginWrite|createChar|motorsStop|keyPressed|tempoWrite|readButton|subnetMask|debugPrint|macAddress|writeGreen|randomSeed|attachGPRS|readString|sendString|remotePort|releaseAll|mouseMoved|background|getXChange|getYChange|answerCall|getResult|voiceCall|endPacket|constrain|getSocket|writeJSON|getButton|available|connected|findUntil|readBytes|exitValue|readGreen|writeBlue|startLoop|IPAddress|isPressed|sendSysex|pauseMode|gatewayIP|setCursor|getOemKey|tuneWrite|noDisplay|loadImage|switchPIN|onRequest|onReceive|changePIN|playFile|noBuffer|parseInt|overflow|checkPIN|knobRead|beginTFT|bitClear|updateIR|bitWrite|position|writeRGB|highByte|writeRed|setSpeed|readBlue|noStroke|remoteIP|transfer|shutdown|hangCall|beginSMS|endWrite|attached|maintain|noCursor|checkReg|checkPUK|shiftOut|isValid|shiftIn|pulseIn|connect|println|localIP|pinMode|getIMEI|display|noBlink|process|getBand|running|beginSD|drawBMP|lowByte|setBand|release|bitRead|prepare|pointTo|readRed|setMode|noFill|remove|listen|stroke|detach|attach|noTone|exists|buffer|height|bitSet|circle|config|cursor|random|IRread|setDNS|endSMS|getKey|micros|millis|begin|print|write|ready|flush|width|isPIN|blink|clear|press|mkdir|rmdir|close|point|yield|image|BSSID|click|delay|read|text|move|peek|beep|rect|line|open|seek|fill|size|turn|stop|home|find|step|tone|sqrt|RSSI|SSID|end|bit|tan|cos|sin|pow|map|abs|max|min|get|run|put)\\b/,constant:/\\b(?:DIGITAL_MESSAGE|FIRMATA_STRING|ANALOG_MESSAGE|REPORT_DIGITAL|REPORT_ANALOG|INPUT_PULLUP|SET_PIN_MODE|INTERNAL2V56|SYSTEM_RESET|LED_BUILTIN|INTERNAL1V1|SYSEX_START|INTERNAL|EXTERNAL|DEFAULT|OUTPUT|INPUT|HIGH|LOW)\\b/});\n!function(e){var t=/#(?!\\{).+/,n={pattern:/#\\{[^}]+\\}/,alias:\"variable\"};e.languages.coffeescript=e.languages.extend(\"javascript\",{comment:t,string:[{pattern:/'(?:\\\\[\\s\\S]|[^\\\\'])*'/,greedy:!0},{pattern:/\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,greedy:!0,inside:{interpolation:n}}],keyword:/\\b(?:and|break|by|catch|class|continue|debugger|delete|do|each|else|extend|extends|false|finally|for|if|in|instanceof|is|isnt|let|loop|namespace|new|no|not|null|of|off|on|or|own|return|super|switch|then|this|throw|true|try|typeof|undefined|unless|until|when|while|window|with|yes|yield)\\b/,\"class-member\":{pattern:/@(?!\\d)\\w+/,alias:\"variable\"}}),e.languages.insertBefore(\"coffeescript\",\"comment\",{\"multiline-comment\":{pattern:/###[\\s\\S]+?###/,alias:\"comment\"},\"block-regex\":{pattern:/\\/{3}[\\s\\S]*?\\/{3}/,alias:\"regex\",inside:{comment:t,interpolation:n}}}),e.languages.insertBefore(\"coffeescript\",\"string\",{\"inline-javascript\":{pattern:/`(?:\\\\[\\s\\S]|[^\\\\`])*`/,inside:{delimiter:{pattern:/^`|`$/,alias:\"punctuation\"},rest:e.languages.javascript}},\"multiline-string\":[{pattern:/'''[\\s\\S]*?'''/,greedy:!0,alias:\"string\"},{pattern:/\"\"\"[\\s\\S]*?\"\"\"/,greedy:!0,alias:\"string\",inside:{interpolation:n}}]}),e.languages.insertBefore(\"coffeescript\",\"keyword\",{property:/(?!\\d)\\w+(?=\\s*:(?!:))/}),delete e.languages.coffeescript[\"template-string\"]}(Prism);\nPrism.languages.clojure={comment:/;+.*/,string:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,operator:/(?:::|[:|'])\\b[a-z][\\w*+!?-]*\\b/i,keyword:{pattern:/([^\\w+*'?-])(?:def|if|do|let|\\.\\.|quote|var|->>|->|fn|loop|recur|throw|try|monitor-enter|\\.|new|set!|def\\-|defn|defn\\-|defmacro|defmulti|defmethod|defstruct|defonce|declare|definline|definterface|defprotocol|==|defrecord|>=|deftype|<=|defproject|ns|\\*|\\+|\\-|\\/|<|=|>|accessor|agent|agent-errors|aget|alength|all-ns|alter|and|append-child|apply|array-map|aset|aset-boolean|aset-byte|aset-char|aset-double|aset-float|aset-int|aset-long|aset-short|assert|assoc|await|await-for|bean|binding|bit-and|bit-not|bit-or|bit-shift-left|bit-shift-right|bit-xor|boolean|branch\\?|butlast|byte|cast|char|children|class|clear-agent-errors|comment|commute|comp|comparator|complement|concat|conj|cons|constantly|cond|if-not|construct-proxy|contains\\?|count|create-ns|create-struct|cycle|dec|deref|difference|disj|dissoc|distinct|doall|doc|dorun|doseq|dosync|dotimes|doto|double|down|drop|drop-while|edit|end\\?|ensure|eval|every\\?|false\\?|ffirst|file-seq|filter|find|find-doc|find-ns|find-var|first|float|flush|for|fnseq|frest|gensym|get-proxy-class|get|hash-map|hash-set|identical\\?|identity|if-let|import|in-ns|inc|index|insert-child|insert-left|insert-right|inspect-table|inspect-tree|instance\\?|int|interleave|intersection|into|into-array|iterate|join|key|keys|keyword|keyword\\?|last|lazy-cat|lazy-cons|left|lefts|line-seq|list\\*|list|load|load-file|locking|long|loop|macroexpand|macroexpand-1|make-array|make-node|map|map-invert|map\\?|mapcat|max|max-key|memfn|merge|merge-with|meta|min|min-key|name|namespace|neg\\?|new|newline|next|nil\\?|node|not|not-any\\?|not-every\\?|not=|ns-imports|ns-interns|ns-map|ns-name|ns-publics|ns-refers|ns-resolve|ns-unmap|nth|nthrest|or|parse|partial|path|peek|pop|pos\\?|pr|pr-str|print|print-str|println|println-str|prn|prn-str|project|proxy|proxy-mappings|quot|rand|rand-int|range|re-find|re-groups|re-matcher|re-matches|re-pattern|re-seq|read|read-line|reduce|ref|ref-set|refer|rem|remove|remove-method|remove-ns|rename|rename-keys|repeat|replace|replicate|resolve|rest|resultset-seq|reverse|rfirst|right|rights|root|rrest|rseq|second|select|select-keys|send|send-off|seq|seq-zip|seq\\?|set|short|slurp|some|sort|sort-by|sorted-map|sorted-map-by|sorted-set|special-symbol\\?|split-at|split-with|str|string\\?|struct|struct-map|subs|subvec|symbol|symbol\\?|sync|take|take-nth|take-while|test|time|to-array|to-array-2d|tree-seq|true\\?|union|up|update-proxy|val|vals|var-get|var-set|var\\?|vector|vector-zip|vector\\?|when|when-first|when-let|when-not|with-local-vars|with-meta|with-open|with-out-str|xml-seq|xml-zip|zero\\?|zipmap|zipper)(?=[^\\w+*'?-])/,lookbehind:!0},\"boolean\":/\\b(?:true|false|nil)\\b/,number:/\\b[0-9A-Fa-f]+\\b/,punctuation:/[{}\\[\\](),]/};\n!function(e){e.languages.ruby=e.languages.extend(\"clike\",{comment:[/#.*/,{pattern:/^=begin(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r))*?=end/m,greedy:!0}],keyword:/\\b(?:alias|and|BEGIN|begin|break|case|class|def|define_method|defined|do|each|else|elsif|END|end|ensure|false|for|if|in|module|new|next|nil|not|or|protected|private|public|raise|redo|require|rescue|retry|return|self|super|then|throw|true|undef|unless|until|when|while|yield)\\b/});var n={pattern:/#\\{[^}]+\\}/,inside:{delimiter:{pattern:/^#\\{|\\}$/,alias:\"tag\"},rest:e.languages.ruby}};e.languages.insertBefore(\"ruby\",\"keyword\",{regex:[{pattern:/%r([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[\\s\\S])*\\}[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\][gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/%r<(?:[^<>\\\\]|\\\\[\\s\\S])*>[gim]{0,3}/,greedy:!0,inside:{interpolation:n}},{pattern:/(^|[^\\/])\\/(?!\\/)(\\[.+?]|\\\\.|[^\\/\\\\\\r\\n])+\\/[gim]{0,3}(?=\\s*($|[\\r\\n,.;})]))/,lookbehind:!0,greedy:!0}],variable:/[@$]+[a-zA-Z_]\\w*(?:[?!]|\\b)/,symbol:{pattern:/(^|[^:]):[a-zA-Z_]\\w*(?:[?!]|\\b)/,lookbehind:!0}}),e.languages.insertBefore(\"ruby\",\"number\",{builtin:/\\b(?:Array|Bignum|Binding|Class|Continuation|Dir|Exception|FalseClass|File|Stat|Fixnum|Float|Hash|Integer|IO|MatchData|Method|Module|NilClass|Numeric|Object|Proc|Range|Regexp|String|Struct|TMS|Symbol|ThreadGroup|Thread|Time|TrueClass)\\b/,constant:/\\b[A-Z]\\w*(?:[?!]|\\b)/}),e.languages.ruby.string=[{pattern:/%[qQiIwWxs]?([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\\{(?:[^#{}\\\\]|#(?:\\{[^}]+\\})?|\\\\[\\s\\S])*\\}/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?\\[(?:[^\\[\\]\\\\]|\\\\[\\s\\S])*\\]/,greedy:!0,inside:{interpolation:n}},{pattern:/%[qQiIwWxs]?<(?:[^<>\\\\]|\\\\[\\s\\S])*>/,greedy:!0,inside:{interpolation:n}},{pattern:/(\"|')(?:#\\{[^}]+\\}|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0,inside:{interpolation:n}}]}(Prism);\nPrism.languages.csp={directive:{pattern:/\\b(?:(?:base-uri|form-action|frame-ancestors|plugin-types|referrer|reflected-xss|report-to|report-uri|require-sri-for|sandbox) |(?:block-all-mixed-content|disown-opener|upgrade-insecure-requests)(?: |;)|(?:child|connect|default|font|frame|img|manifest|media|object|script|style|worker)-src )/i,alias:\"keyword\"},safe:{pattern:/'(?:self|none|strict-dynamic|(?:nonce-|sha(?:256|384|512)-)[a-zA-Z\\d+=\\/]+)'/,alias:\"selector\"},unsafe:{pattern:/(?:'unsafe-inline'|'unsafe-eval'|'unsafe-hashed-attributes'|\\*)/,alias:\"function\"}};\nPrism.languages.css.selector={pattern:/[^{}\\s][^{}]*(?=\\s*\\{)/,inside:{\"pseudo-element\":/:(?:after|before|first-letter|first-line|selection)|::[-\\w]+/,\"pseudo-class\":/:[-\\w]+(?:\\(.*\\))?/,\"class\":/\\.[-:.\\w]+/,id:/#[-:.\\w]+/,attribute:/\\[[^\\]]+\\]/}},Prism.languages.insertBefore(\"css\",\"function\",{hexcode:/#[\\da-f]{3,8}/i,entity:/\\\\[\\da-f]{1,8}/i,number:/[\\d%.]+/});\nPrism.languages.d=Prism.languages.extend(\"clike\",{string:[/\\b[rx]\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"[cwd]?/,/\\bq\"(?:\\[[\\s\\S]*?\\]|\\([\\s\\S]*?\\)|<[\\s\\S]*?>|\\{[\\s\\S]*?\\})\"/,/\\bq\"([_a-zA-Z][_a-zA-Z\\d]*)(?:\\r?\\n|\\r)[\\s\\S]*?(?:\\r?\\n|\\r)\\1\"/,/\\bq\"(.)[\\s\\S]*?\\1\"/,/'(?:\\\\'|\\\\?[^']+)'/,/([\"`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1[cwd]?/],number:[/\\b0x\\.?[a-f\\d_]+(?:(?!\\.\\.)\\.[a-f\\d_]*)?(?:p[+-]?[a-f\\d_]+)?[ulfi]*/i,{pattern:/((?:\\.\\.)?)(?:\\b0b\\.?|\\b|\\.)\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:e[+-]?\\d[\\d_]*)?[ulfi]*/i,lookbehind:!0}],keyword:/\\$|\\b(?:abstract|alias|align|asm|assert|auto|body|bool|break|byte|case|cast|catch|cdouble|cent|cfloat|char|class|const|continue|creal|dchar|debug|default|delegate|delete|deprecated|do|double|else|enum|export|extern|false|final|finally|float|for|foreach|foreach_reverse|function|goto|idouble|if|ifloat|immutable|import|inout|int|interface|invariant|ireal|lazy|long|macro|mixin|module|new|nothrow|null|out|override|package|pragma|private|protected|public|pure|real|ref|return|scope|shared|short|static|struct|super|switch|synchronized|template|this|throw|true|try|typedef|typeid|typeof|ubyte|ucent|uint|ulong|union|unittest|ushort|version|void|volatile|wchar|while|with|__(?:(?:FILE|MODULE|LINE|FUNCTION|PRETTY_FUNCTION|DATE|EOF|TIME|TIMESTAMP|VENDOR|VERSION)__|gshared|traits|vector|parameters)|string|wstring|dstring|size_t|ptrdiff_t)\\b/,operator:/\\|[|=]?|&[&=]?|\\+[+=]?|-[-=]?|\\.?\\.\\.|=[>=]?|!(?:i[ns]\\b|<>?=?|>=?|=)?|\\bi[ns]\\b|(?:<[<>]?|>>?>?|\\^\\^|[*\\/%^~])=?/}),Prism.languages.d.comment=[/^\\s*#!.+/,{pattern:/(^|[^\\\\])\\/\\+(?:\\/\\+[\\s\\S]*?\\+\\/|[\\s\\S])*?\\+\\//,lookbehind:!0}].concat(Prism.languages.d.comment),Prism.languages.insertBefore(\"d\",\"comment\",{\"token-string\":{pattern:/\\bq\\{(?:\\{[^}]*\\}|[^}])*\\}/,alias:\"string\"}}),Prism.languages.insertBefore(\"d\",\"keyword\",{property:/\\B@\\w*/}),Prism.languages.insertBefore(\"d\",\"function\",{register:{pattern:/\\b(?:[ABCD][LHX]|E[ABCD]X|E?(?:BP|SP|DI|SI)|[ECSDGF]S|CR[0234]|DR[012367]|TR[3-7]|X?MM[0-7]|R[ABCD]X|[BS]PL|R[BS]P|[DS]IL|R[DS]I|R(?:[89]|1[0-5])[BWD]?|XMM(?:[89]|1[0-5])|YMM(?:1[0-5]|\\d))\\b|\\bST(?:\\([0-7]\\)|\\b)/,alias:\"variable\"}});\nPrism.languages.dart=Prism.languages.extend(\"clike\",{string:[{pattern:/r?(\"\"\"|''')[\\s\\S]*?\\1/,greedy:!0},{pattern:/r?(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0}],keyword:[/\\b(?:async|sync|yield)\\*/,/\\b(?:abstract|assert|async|await|break|case|catch|class|const|continue|default|deferred|do|dynamic|else|enum|export|external|extends|factory|final|finally|for|get|if|implements|import|in|library|new|null|operator|part|rethrow|return|set|static|super|switch|this|throw|try|typedef|var|void|while|with|yield)\\b/],operator:/\\bis!|\\b(?:as|is)\\b|\\+\\+|--|&&|\\|\\||<<=?|>>=?|~(?:\\/=?)?|[+\\-*\\/%&^|=!<>]=?|\\?/}),Prism.languages.insertBefore(\"dart\",\"function\",{metadata:{pattern:/@\\w+/,alias:\"symbol\"}});\nPrism.languages.diff={coord:[/^(?:\\*{3}|-{3}|\\+{3}).*$/m,/^@@.*@@$/m,/^\\d+.*$/m],deleted:/^[-<].*$/m,inserted:/^[+>].*$/m,diff:{pattern:/^!(?!!).+$/m,alias:\"important\"}};\nvar _django_template={property:{pattern:/(?:{{|{%)[\\s\\S]*?(?:%}|}})/g,greedy:!0,inside:{string:{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},keyword:/\\b(?:\\||load|verbatim|widthratio|ssi|firstof|for|url|ifchanged|csrf_token|lorem|ifnotequal|autoescape|now|templatetag|debug|cycle|ifequal|regroup|comment|filter|endfilter|if|spaceless|with|extends|block|include|else|empty|endif|endfor|as|endblock|endautoescape|endverbatim|trans|endtrans|[Tt]rue|[Ff]alse|[Nn]one|in|is|static|macro|endmacro|call|endcall|set|endset|raw|endraw)\\b/,operator:/[-+=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:or|and|not)\\b/,\"function\":/\\b(?:_|abs|add|addslashes|attr|batch|callable|capfirst|capitalize|center|count|cut|d|date|default|default_if_none|defined|dictsort|dictsortreversed|divisibleby|e|equalto|escape|escaped|escapejs|even|filesizeformat|first|float|floatformat|force_escape|forceescape|format|get_digit|groupby|indent|int|iriencode|iterable|join|last|length|length_is|linebreaks|linebreaksbr|linenumbers|list|ljust|lower|make_list|map|mapping|number|odd|phone2numeric|pluralize|pprint|random|reject|rejectattr|removetags|replace|reverse|rjust|round|safe|safeseq|sameas|select|selectattr|sequence|slice|slugify|sort|string|stringformat|striptags|sum|time|timesince|timeuntil|title|trim|truncate|truncatechars|truncatechars_html|truncatewords|truncatewords_html|undefined|unordered_list|upper|urlencode|urlize|urlizetrunc|wordcount|wordwrap|xmlattr|yesno)\\b/,important:/\\b-?\\d+(?:\\.\\d+)?\\b/,variable:/\\b\\w+?\\b/,punctuation:/[[\\];(),.:]/}}};Prism.languages.django=Prism.languages.extend(\"markup\",{comment:/(?:)/}),Prism.languages.django.tag.pattern=/<\\/?(?!\\d)[^\\s>\\/=$<]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^>=]+))?)*\\s*\\/?>/i,Prism.languages.insertBefore(\"django\",\"entity\",_django_template),Prism.languages.insertBefore(\"inside\",\"tag\",_django_template,Prism.languages.django.tag),Prism.languages.javascript&&(Prism.languages.insertBefore(\"inside\",\"string\",_django_template,Prism.languages.django.script),Prism.languages.django.script.inside.string.inside=_django_template),Prism.languages.css&&(Prism.languages.insertBefore(\"inside\",\"atrule\",{tag:_django_template.property},Prism.languages.django.style),Prism.languages.django.style.inside.string.inside=_django_template),Prism.languages.jinja2=Prism.languages.django;\nPrism.languages.docker={keyword:{pattern:/(^\\s*)(?:ADD|ARG|CMD|COPY|ENTRYPOINT|ENV|EXPOSE|FROM|HEALTHCHECK|LABEL|MAINTAINER|ONBUILD|RUN|SHELL|STOPSIGNAL|USER|VOLUME|WORKDIR)(?=\\s)/im,lookbehind:!0},string:/(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,comment:/#.*/,punctuation:/---|\\.\\.\\.|[:[\\]{}\\-,|>?]/},Prism.languages.dockerfile=Prism.languages.docker;\nPrism.languages.eiffel={comment:/--.*/,string:[{pattern:/\"([^[]*)\\[[\\s\\S]*?\\]\\1\"/,greedy:!0},{pattern:/\"([^{]*)\\{[\\s\\S]*?\\}\\1\"/,greedy:!0},{pattern:/\"(?:%\\s+%|%.|[^%\"\\r\\n])*\"/,greedy:!0}],\"char\":/'(?:%.|[^%'\\r\\n])+'/,keyword:/\\b(?:across|agent|alias|all|and|attached|as|assign|attribute|check|class|convert|create|Current|debug|deferred|detachable|do|else|elseif|end|ensure|expanded|export|external|feature|from|frozen|if|implies|inherit|inspect|invariant|like|local|loop|not|note|obsolete|old|once|or|Precursor|redefine|rename|require|rescue|Result|retry|select|separate|some|then|undefine|until|variant|Void|when|xor)\\b/i,\"boolean\":/\\b(?:True|False)\\b/i,\"class-name\":{pattern:/\\b[A-Z][\\dA-Z_]*\\b/,alias:\"builtin\"},number:[/\\b0[xcb][\\da-f](?:_*[\\da-f])*\\b/i,/(?:\\d(?:_*\\d)*)?\\.(?:(?:\\d(?:_*\\d)*)?e[+-]?)?\\d(?:_*\\d)*|\\d(?:_*\\d)*\\.?/i],punctuation:/:=|<<|>>|\\(\\||\\|\\)|->|\\.(?=\\w)|[{}[\\];(),:?]/,operator:/\\\\\\\\|\\|\\.\\.\\||\\.\\.|\\/[~\\/=]?|[><]=?|[-+*^=~]/};\nPrism.languages.elixir={comment:{pattern:/#.*/m,lookbehind:!0},regex:{pattern:/~[rR](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[uismxfr]*/,greedy:!0},string:[{pattern:/~[cCsSwW](?:(\"\"\"|''')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1|([\\/|\"'])(?:\\\\.|(?!\\2)[^\\\\\\r\\n])+\\2|\\((?:\\\\.|[^\\\\)\\r\\n])+\\)|\\[(?:\\\\.|[^\\\\\\]\\r\\n])+\\]|\\{(?:\\\\.|#\\{[^}]+\\}|[^\\\\}\\r\\n])+\\}|<(?:\\\\.|[^\\\\>\\r\\n])+>)[csa]?/,greedy:!0,inside:{}},{pattern:/(\"\"\"|''')[\\s\\S]*?\\1/,greedy:!0,inside:{}},{pattern:/(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0,inside:{}}],atom:{pattern:/(^|[^:]):\\w+/,lookbehind:!0,alias:\"symbol\"},\"attr-name\":/\\w+:(?!:)/,capture:{pattern:/(^|[^&])&(?:[^&\\s\\d()][^\\s()]*|(?=\\())/,lookbehind:!0,alias:\"function\"},argument:{pattern:/(^|[^&])&\\d+/,lookbehind:!0,alias:\"variable\"},attribute:{pattern:/@\\w+/,alias:\"variable\"},number:/\\b(?:0[box][a-f\\d_]+|\\d[\\d_]*)(?:\\.[\\d_]+)?(?:e[+-]?[\\d_]+)?\\b/i,keyword:/\\b(?:after|alias|and|case|catch|cond|def(?:callback|exception|impl|module|p|protocol|struct)?|do|else|end|fn|for|if|import|not|or|require|rescue|try|unless|use|when)\\b/,\"boolean\":/\\b(?:true|false|nil)\\b/,operator:[/\\bin\\b|&&?|\\|[|>]?|\\\\\\\\|::|\\.\\.\\.?|\\+\\+?|-[->]?|<[-=>]|>=|!==?|\\B!|=(?:==?|[>~])?|[*\\/^]/,{pattern:/([^<])<(?!<)/,lookbehind:!0},{pattern:/([^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,%\\[\\]{}()]/},Prism.languages.elixir.string.forEach(function(e){e.inside={interpolation:{pattern:/#\\{[^}]+\\}/,inside:{delimiter:{pattern:/^#\\{|\\}$/,alias:\"punctuation\"},rest:Prism.languages.elixir}}}});\nPrism.languages.elm={comment:/--.*|{-[\\s\\S]*?-}/,\"char\":{pattern:/'(?:[^\\\\'\\r\\n]|\\\\(?:[abfnrtv\\\\']|\\d+|x[0-9a-fA-F]+))'/,greedy:!0},string:[{pattern:/\"\"\"[\\s\\S]*?\"\"\"/,greedy:!0},{pattern:/\"(?:[^\\\\\"\\r\\n]|\\\\(?:[abfnrtv\\\\\"]|\\d+|x[0-9a-fA-F]+))*\"/,greedy:!0}],import_statement:{pattern:/^\\s*import\\s+[A-Z]\\w*(?:\\.[A-Z]\\w*)*(?:\\s+as\\s+([A-Z]\\w*)(?:\\.[A-Z]\\w*)*)?(?:\\s+exposing\\s+)?/m,inside:{keyword:/\\b(?:import|as|exposing)\\b/}},keyword:/\\b(?:alias|as|case|else|exposing|if|in|infixl|infixr|let|module|of|then|type)\\b/,builtin:/\\b(?:abs|acos|always|asin|atan|atan2|ceiling|clamp|compare|cos|curry|degrees|e|flip|floor|fromPolar|identity|isInfinite|isNaN|logBase|max|min|negate|never|not|pi|radians|rem|round|sin|sqrt|tan|toFloat|toPolar|toString|truncate|turns|uncurry|xor)\\b/,number:/\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0x[0-9a-f]+)\\b/i,operator:/\\s\\.\\s|[+\\-\\/*=.$<>:&|^?%#@~!]{2,}|[+\\-\\/*=$<>:&|^?%#@~!]/,hvariable:/\\b(?:[A-Z]\\w*\\.)*[a-z]\\w*\\b/,constant:/\\b(?:[A-Z]\\w*\\.)*[A-Z]\\w*\\b/,punctuation:/[{}[\\]|(),.:]/};\nPrism.languages[\"markup-templating\"]={},Object.defineProperties(Prism.languages[\"markup-templating\"],{buildPlaceholders:{value:function(e,t,n,a){e.language===t&&(e.tokenStack=[],e.code=e.code.replace(n,function(n){if(\"function\"==typeof a&&!a(n))return n;for(var r=e.tokenStack.length;-1!==e.code.indexOf(\"___\"+t.toUpperCase()+r+\"___\");)++r;return e.tokenStack[r]=n,\"___\"+t.toUpperCase()+r+\"___\"}),e.grammar=Prism.languages.markup)}},tokenizePlaceholders:{value:function(e,t){if(e.language===t&&e.tokenStack){e.grammar=Prism.languages[t];var n=0,a=Object.keys(e.tokenStack),r=function(o){if(!(n>=a.length))for(var i=0;i-1){++n;var f,u=l.substring(0,p),_=new Prism.Token(t,Prism.tokenize(s,e.grammar,t),\"language-\"+t,s),k=l.substring(p+(\"___\"+t.toUpperCase()+c+\"___\").length);if(u||k?(f=[u,_,k].filter(function(e){return!!e}),r(f)):f=_,\"string\"==typeof g?Array.prototype.splice.apply(o,[i,1].concat(f)):g.content=f,n>=a.length)break}}else g.content&&\"string\"!=typeof g.content&&r(g.content)}};r(e.tokens)}}}});\nPrism.languages.erlang={comment:/%.+/,string:{pattern:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,greedy:!0},\"quoted-function\":{pattern:/'(?:\\\\.|[^\\\\'\\r\\n])+'(?=\\()/,alias:\"function\"},\"quoted-atom\":{pattern:/'(?:\\\\.|[^\\\\'\\r\\n])+'/,alias:\"atom\"},\"boolean\":/\\b(?:true|false)\\b/,keyword:/\\b(?:fun|when|case|of|end|if|receive|after|try|catch)\\b/,number:[/\\$\\\\?./,/\\d+#[a-z0-9]+/i,/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?/i],\"function\":/\\b[a-z][\\w@]*(?=\\()/,variable:{pattern:/(^|[^@])(?:\\b|\\?)[A-Z_][\\w@]*/,lookbehind:!0},operator:[/[=\\/<>:]=|=[:\\/]=|\\+\\+?|--?|[=*\\/!]|\\b(?:bnot|div|rem|band|bor|bxor|bsl|bsr|not|and|or|xor|orelse|andalso)\\b/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],atom:/\\b[a-z][\\w@]*/,punctuation:/[()[\\]{}:;,.#|]|<<|>>/};\nPrism.languages.fsharp=Prism.languages.extend(\"clike\",{comment:[{pattern:/(^|[^\\\\])\\(\\*[\\s\\S]*?\\*\\)/,lookbehind:!0},{pattern:/(^|[^\\\\:])\\/\\/.*/,lookbehind:!0}],keyword:/\\b(?:let|return|use|yield)(?:!\\B|\\b)|\\b(abstract|and|as|assert|base|begin|class|default|delegate|do|done|downcast|downto|elif|else|end|exception|extern|false|finally|for|fun|function|global|if|in|inherit|inline|interface|internal|lazy|match|member|module|mutable|namespace|new|not|null|of|open|or|override|private|public|rec|select|static|struct|then|to|true|try|type|upcast|val|void|when|while|with|asr|land|lor|lsl|lsr|lxor|mod|sig|atomic|break|checked|component|const|constraint|constructor|continue|eager|event|external|fixed|functor|include|method|mixin|object|parallel|process|protected|pure|sealed|tailcall|trait|virtual|volatile)\\b/,string:{pattern:/(?:\"\"\"[\\s\\S]*?\"\"\"|@\"(?:\"\"|[^\"])*\"|(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1)B?/,greedy:!0},number:[/\\b0x[\\da-fA-F]+(?:un|lf|LF)?\\b/,/\\b0b[01]+(?:y|uy)?\\b/,/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[fm]|e[+-]?\\d+)?\\b/i,/\\b\\d+(?:[IlLsy]|u[lsy]?|UL)?\\b/]}),Prism.languages.insertBefore(\"fsharp\",\"keyword\",{preprocessor:{pattern:/^[^\\r\\n\\S]*#.*/m,alias:\"property\",inside:{directive:{pattern:/(\\s*#)\\b(?:else|endif|if|light|line|nowarn)\\b/,lookbehind:!0,alias:\"keyword\"}}}});\n!function(a){a.languages.flow=a.languages.extend(\"javascript\",{}),a.languages.insertBefore(\"flow\",\"keyword\",{type:[{pattern:/\\b(?:[Nn]umber|[Ss]tring|[Bb]oolean|Function|any|mixed|null|void)\\b/,alias:\"tag\"}]}),a.languages.flow[\"function-variable\"].pattern=/[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*(?=\\s*=\\s*(?:function\\b|(?:\\([^()]*\\)(?:\\s*:\\s*\\w+)?|[_$a-z\\xA0-\\uFFFF][$\\w\\xA0-\\uFFFF]*)\\s*=>))/i,a.languages.insertBefore(\"flow\",\"operator\",{\"flow-punctuation\":{pattern:/\\{\\||\\|\\}/,alias:\"punctuation\"}}),\"Array\"!==a.util.type(a.languages.flow.keyword)&&(a.languages.flow.keyword=[a.languages.flow.keyword]),a.languages.flow.keyword.unshift({pattern:/(^|[^$]\\b)(?:type|opaque|declare|Class)\\b(?!\\$)/,lookbehind:!0},{pattern:/(^|[^$]\\B)\\$(?:await|Diff|Exact|Keys|ObjMap|PropertyType|Shape|Record|Supertype|Subtype|Enum)\\b(?!\\$)/,lookbehind:!0})}(Prism);\nPrism.languages.fortran={\"quoted-number\":{pattern:/[BOZ](['\"])[A-F0-9]+\\1/i,alias:\"number\"},string:{pattern:/(?:\\w+_)?(['\"])(?:\\1\\1|&(?:\\r\\n?|\\n)(?:\\s*!.+(?:\\r\\n?|\\n))?|(?!\\1).)*(?:\\1|&)/,inside:{comment:{pattern:/(&(?:\\r\\n?|\\n)\\s*)!.*/,lookbehind:!0}}},comment:{pattern:/!.*/,greedy:!0},\"boolean\":/\\.(?:TRUE|FALSE)\\.(?:_\\w+)?/i,number:/(?:\\b\\d+(?:\\.\\d*)?|\\B\\.\\d+)(?:[ED][+-]?\\d+)?(?:_\\w+)?/i,keyword:[/\\b(?:INTEGER|REAL|DOUBLE ?PRECISION|COMPLEX|CHARACTER|LOGICAL)\\b/i,/\\b(?:END ?)?(?:BLOCK ?DATA|DO|FILE|FORALL|FUNCTION|IF|INTERFACE|MODULE(?! PROCEDURE)|PROGRAM|SELECT|SUBROUTINE|TYPE|WHERE)\\b/i,/\\b(?:ALLOCATABLE|ALLOCATE|BACKSPACE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DIMENSION|DO|END|EQUIVALENCE|EXIT|EXTERNAL|FORMAT|GO ?TO|IMPLICIT(?: NONE)?|INQUIRE|INTENT|INTRINSIC|MODULE PROCEDURE|NAMELIST|NULLIFY|OPEN|OPTIONAL|PARAMETER|POINTER|PRINT|PRIVATE|PUBLIC|READ|RETURN|REWIND|SAVE|SELECT|STOP|TARGET|WHILE|WRITE)\\b/i,/\\b(?:ASSIGNMENT|DEFAULT|ELEMENTAL|ELSE|ELSEWHERE|ELSEIF|ENTRY|IN|INCLUDE|INOUT|KIND|NULL|ONLY|OPERATOR|OUT|PURE|RECURSIVE|RESULT|SEQUENCE|STAT|THEN|USE)\\b/i],operator:[/\\*\\*|\\/\\/|=>|[=\\/]=|[<>]=?|::|[+\\-*=%]|\\.(?:EQ|NE|LT|LE|GT|GE|NOT|AND|OR|EQV|NEQV)\\.|\\.[A-Z]+\\./i,{pattern:/(^|(?!\\().)\\/(?!\\))/,lookbehind:!0}],punctuation:/\\(\\/|\\/\\)|[(),;:&]/};\nPrism.languages.gedcom={\"line-value\":{pattern:/(^\\s*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-.\\/:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?\\w+ +).+/m,lookbehind:!0,inside:{pointer:{pattern:/^@\\w[\\w!\"$%&'()*+,\\-.\\/:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@$/,alias:\"variable\"}}},tag:{pattern:/(^\\s*\\d+ +(?:@\\w[\\w!\"$%&'()*+,\\-.\\/:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@ +)?)\\w+/m,lookbehind:!0,alias:\"string\"},level:{pattern:/(^\\s*)\\d+/m,lookbehind:!0,alias:\"number\"},pointer:{pattern:/@\\w[\\w!\"$%&'()*+,\\-.\\/:;<=>?[\\\\\\]^`{|}~\\x80-\\xfe #]*@/,alias:\"variable\"}};\nPrism.languages.gherkin={pystring:{pattern:/(\"\"\"|''')[\\s\\S]+?\\1/,alias:\"string\"},comment:{pattern:/((?:^|\\r?\\n|\\r)[ \\t]*)#.*/,lookbehind:!0},tag:{pattern:/((?:^|\\r?\\n|\\r)[ \\t]*)@\\S*/,lookbehind:!0},feature:{pattern:/((?:^|\\r?\\n|\\r)[ \\t]*)(?:Ability|Ahoy matey!|Arwedd|Aspekt|Besigheid Behoefte|Business Need|Caracteristica|CaracterĆ­stica|Egenskab|Egenskap|Eiginleiki|Feature|Fīča|Fitur|FonctionnalitĆ©|Fonksyonalite|Funcionalidade|Funcionalitat|Functionalitate|FuncÅ£ionalitate|Funcționalitate|Functionaliteit|Fungsi|Funkcia|Funkcija|Funkcionalitāte|Funkcionalnost|Funkcja|Funksie|FunktionalitƤt|FunktionalitĆ©it|FunzionalitĆ |Hwaet|HwƦt|Jellemző|Karakteristik|laH|Lastnost|Mak|Mogucnost|Mogućnost|Moznosti|Možnosti|OH HAI|Omadus|Ominaisuus|Osobina|Ɩzellik|perbogh|poQbogh malja'|Potrzeba biznesowa|Požadavek|Požiadavka|Pretty much|Qap|Qu'meH 'ut|Savybė|TĆ­nh năng|Trajto|VermoĆ«|VlastnosÅ„|Właściwość|Značilnost|Ī”Ļ…Ī½Ī±Ļ„ĻŒĻ„Ī·Ļ„Ī±|Λειτουργία|ŠœŠ¾Š³ŃƒŃ›Š½Š¾ŃŃ‚|Мөмкинлек|ŠžŃŠ¾Š±ŠøŠ½Š°|Двойство|Үзенчәлеклелек|Š¤ŃƒŠ½ŠŗŃ†ŠøŠ¾Š½Š°Š»|Š¤ŃƒŠ½ŠŗŃ†ŠøŠ¾Š½Š°Š»Š½Š¾ŃŃ‚|Š¤ŃƒŠ½ŠŗŃ†ŠøŃ|Š¤ŃƒŠ½ŠŗŃ†Ń–Š¾Š½Š°Š»|תכונה|خاصية|خصوصیت|ŲµŁ„Ų§Ų­ŪŒŲŖ|کاروبار کی ضرورت|وِیژگی|ą¤°ą„‚ą¤Ŗ ą¤²ą„‡ą¤–|ਖਾਸੀਅਤ|ਨਕਸ਼ ਨੁਹਾਰ|ਮੁਹਾਂਦਰਾ|గుణము|ą²¹ą³†ą²šą³ą²šą²³|ąø„ąø§ąø²ąø”ąø•ą¹‰ąø­ąø‡ąøąø²ąø£ąø—ąø²ąø‡ąø˜ąøøąø£ąøąø“ąøˆ|ควาดสาดารถ|โครงหคัก|기늄|ćƒ•ć‚£ćƒ¼ćƒćƒ£|功能|機能):(?:[^:]+(?:\\r?\\n|\\r|$))*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\\r\\n]+/,lookbehind:!0},keyword:/[^:\\r\\n]+:/}},scenario:{pattern:/((?:^|\\r?\\n|\\r)[ \\t]*)(?:Abstract Scenario|Abstrakt Scenario|Achtergrond|Aer|Ɔr|Agtergrond|All y'all|Antecedentes|Antecedents|AtburưarĆ”s|AtburưarĆ”sir|Awww, look mate|B4|Background|Baggrund|Bakgrund|Bakgrunn|Bakgrunnur|Beispiele|Beispiller|Bối cįŗ£nh|Cefndir|Cenario|CenĆ”rio|Cenario de Fundo|CenĆ”rio de Fundo|Cenarios|CenĆ”rios|Contesto|Context|Contexte|Contexto|Conto|Contoh|Contone|DƦmi|Dasar|Dead men tell no tales|Delineacao do Cenario|Delineação do CenĆ”rio|Dis is what went down|Dữ liệu|Dyagram senaryo|Dyagram Senaryo|Egzanp|Ejemplos|Eksempler|Ekzemploj|Enghreifftiau|Esbozo do escenario|Escenari|Escenario|Esempi|Esquema de l'escenari|Esquema del escenario|Esquema do Cenario|Esquema do CenĆ”rio|Examples|EXAMPLZ|Exempel|Exemple|Exemples|Exemplos|First off|Fono|Forgatókƶnyv|Forgatókƶnyv vĆ”zlat|Fundo|GeƧmiş|ghantoH|Grundlage|Hannergrond|HĆ”ttĆ©r|Heave to|Istorik|Juhtumid|Keadaan|Khung kịch bįŗ£n|Khung tƬnh huống|Kịch bįŗ£n|Koncept|Konsep skenario|KontĆØks|Kontekst|Kontekstas|Konteksts|Kontext|Konturo de la scenaro|Latar Belakang|lut|lut chovnatlh|lutmey|Lýsing AtburưarĆ”sar|Lýsing DƦma|Menggariskan Senario|MISHUN|MISHUN SRSLY|mo'|NĆ”Ärt ScenĆ”ra|NĆ”Ärt ScĆ©nÔře|NĆ”Ärt ScenĆ”ru|Oris scenarija|Ɩrnekler|Osnova|Osnova ScenĆ”ra|Osnova scĆ©nÔře|Osnutek|Ozadje|Paraugs|Pavyzdžiai|PĆ©ldĆ”k|Piemēri|Plan du scĆ©nario|Plan du ScĆ©nario|Plan senaryo|Plan Senaryo|Plang vum Szenario|PozadĆ­|Pozadie|Pozadina|PrĆ­klady|Příklady|Primer|Primeri|Primjeri|Przykłady|Raamstsenaarium|Reckon it's like|Rerefons|ScenĆ”r|ScĆ©nÔř|Scenarie|Scenarij|Scenarijai|Scenarijaus Å”ablonas|Scenariji|Scenārijs|Scenārijs pēc parauga|Scenarijus|Scenario|ScĆ©nario|Scenario Amlinellol|Scenario Outline|Scenario Template|Scenariomal|Scenariomall|Scenarios|Scenariu|Scenariusz|Scenaro|Schema dello scenario|Se ưe|Se the|Se þe|Senario|Senaryo|Senaryo deskripsyon|Senaryo Deskripsyon|Senaryo taslağı|Shiver me timbers|Situācija|Situai|Situasie|Situasie Uiteensetting|Skenario|Skenario konsep|Skica|Structura scenariu|Structură scenariu|Struktura scenarija|Stsenaarium|Swa|Swa hwaer swa|Swa hwƦr swa|Szablon scenariusza|Szenario|Szenariogrundriss|Tapaukset|Tapaus|Tapausaihio|Taust|Tausta|Template Keadaan|Template Senario|Template Situai|The thing of it is|TƬnh huống|Variantai|Voorbeelde|Voorbeelden|Wharrimean is|Yo\\-ho\\-ho|You'll wanna|Założenia|ΠαραΓείγματα|Περιγραφή Σεναρίου|Σενάρια|Σενάριο|Ī„Ļ€ĻŒĪ²Ī±ĪøĻĪæ|ŠšŠµŃ€ŠµŃˆ|ŠšŠ¾Š½Ń‚ŠµŠŗŃŃ‚|ŠšŠ¾Š½Ń†ŠµŠæŃ‚|ŠœŠøŃŠ°Š»Š»Š°Ń€|ŠœŠøŃŠ¾Š»Š»Š°Ń€|ŠžŃŠ½Š¾Š²Š°|ŠŸŠµŃ€ŠµŠ“ŃƒŠ¼Š¾Š²Š°|ПозаГина|ŠŸŃ€ŠµŠ“ŠøŃŃ‚Š¾Ń€ŠøŃ|ŠŸŃ€ŠµŠ“Ń‹ŃŃ‚Š¾Ń€ŠøŃ|ŠŸŃ€ŠøŠŗŠ»Š°Š“Šø|ŠŸŃ€ŠøŠ¼ŠµŃ€|ŠŸŃ€ŠøŠ¼ŠµŃ€Šø|ŠŸŃ€ŠøŠ¼ŠµŃ€Ń‹|Рамка на сценарий|Дкица|Š”Ń‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š° ŃŃ†ŠµŠ½Š°Ń€ŠøŃ˜Š°|Š”Ń‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š° ŃŃ†ŠµŠ½Š°Ń€ŠøŃ|Š”Ń‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š° ŃŃ†ŠµŠ½Š°Ń€Ń–ŃŽ|Дценарий|Дценарий ŃŃ‚Ń€ŃƒŠŗŃ‚ŃƒŃ€Š°ŃŠø|Дценарийның Ń‚Ó©Š·ŠµŠ»ŠµŃˆŠµ|Š”Ń†ŠµŠ½Š°Ń€ŠøŃ˜Šø|Дценарио|Дценарій|Тарих|Үрнәкләр|×“×•×’×ž××•×Ŗ|רקע|תבנית תרחיש|תרחיש|Ų§Ł„Ų®Ł„ŁŁŠŲ©|Ų§Ł„ŚÆŁˆŪŒ Ų³Ł†Ų§Ų±ŪŒŁˆ|امثلة|پس منظر|Ų²Ł…ŪŒŁ†Ł‡|Ų³Ł†Ų§Ų±ŪŒŁˆ|Ų³ŁŠŁ†Ų§Ų±ŁŠŁˆ|Ų³ŁŠŁ†Ų§Ų±ŁŠŁˆ Ł…Ų®Ų·Ų·|Ł…Ų«Ų§Ł„ŪŒŚŗ|منظر نامے کا خاکہ|منظرنامہ|Ł†Ł…ŁˆŁ†Ł‡ ها|उदाहरण|ą¤Ŗą¤°ą¤æą¤¦ą„ƒą¤¶ą„ą¤Æ|ą¤Ŗą¤°ą¤æą¤¦ą„ƒą¤¶ą„ą¤Æ ą¤°ą„‚ą¤Ŗą¤°ą„‡ą¤–ą¤¾|ą¤Ŗą„ƒą¤·ą„ą¤ ą¤­ą„‚ą¤®ą¤æ|ਉਦਾਹਰਨਾਂ|ąØŖąØŸąØ•ąØ„ąØ¾|ąØŖąØŸąØ•ąØ„ąØ¾ ąØ¢ąØ¾ąØ‚ąØšąØ¾|ąØŖąØŸąØ•ąØ„ąØ¾ ਰੂਪ ਰੇਖਾ|ąØŖąØæąØ›ą©‹ąØ•ą©œ|ఉదాహరణలు|ą°•ą°„ą°Øą°‚|ą°Øą±‡ą°Ŗą°„ą±ą°Æą°‚|ą°øą°Øą±ą°Øą°æą°µą±‡ą°¶ą°‚|ಉದಾಹರಣೆಗಳು|ಕ಄ಾಸಾರಾಂಶ|ವಿವರಣೆ|ą²¹ą²æą²Øą³ą²Øą³†ą²²ą³†|ą¹‚ąø„ąø£ąø‡ąøŖąø£ą¹‰ąø²ąø‡ąø‚ąø­ąø‡ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|ąøŠąøøąø”ąø‚ąø­ąø‡ąø•ąø±ąø§ąø­ąø¢ą¹ˆąø²ąø‡|ąøŠąøøąø”ąø‚ąø­ąø‡ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|แนวคณด|ąøŖąø£ąøøąø›ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|ą¹€ąø«ąø•ąøøąøąø²ąø£ąø“ą¹Œ|ė°°ź²½|ģ‹œė‚˜ė¦¬ģ˜¤|ģ‹œė‚˜ė¦¬ģ˜¤ ź°œģš”|예|ć‚µćƒ³ćƒ—ćƒ«|ć‚·ćƒŠćƒŖć‚Ŗ|ć‚·ćƒŠćƒŖć‚Ŗć‚¢ć‚¦ćƒˆćƒ©ć‚¤ćƒ³|ć‚·ćƒŠćƒŖć‚Ŗćƒ†ćƒ³ćƒ—ćƒ¬|ć‚·ćƒŠćƒŖć‚Ŗćƒ†ćƒ³ćƒ—ćƒ¬ćƒ¼ćƒˆ|ćƒ†ćƒ³ćƒ—ćƒ¬|例|例子|å‰§ęœ¬|å‰§ęœ¬å¤§ēŗ²|åŠ‡ęœ¬|åŠ‡ęœ¬å¤§ē¶±|åœŗę™Æ|åœŗę™Æå¤§ēŗ²|堓景|堓景大綱|čƒŒę™Æ):[^:\\r\\n]*/,lookbehind:!0,inside:{important:{pattern:/(:)[^\\r\\n]*/,lookbehind:!0},keyword:/[^:\\r\\n]+:/}},\"table-body\":{pattern:/((?:\\r?\\n|\\r)[ \\t]*\\|.+\\|[^\\r\\n]*)+/,lookbehind:!0,inside:{outline:{pattern:/<[^>]+?>/,alias:\"variable\"},td:{pattern:/\\s*[^\\s|][^|]*/,alias:\"string\"},punctuation:/\\|/}},\"table-head\":{pattern:/(?:\\r?\\n|\\r)[ \\t]*\\|.+\\|[^\\r\\n]*/,inside:{th:{pattern:/\\s*[^\\s|][^|]*/,alias:\"variable\"},punctuation:/\\|/}},atrule:{pattern:/((?:\\r?\\n|\\r)[ \\t]+)(?:'ach|'a|'ej|7|a|A takĆ©|A taktiež|A tiež|A zĆ”roveň|Aber|Ac|Adott|Akkor|Ak|Aleshores|Ale|Ali|Allora|Alors|Als|Ama|Amennyiben|Amikor|Ampak|an|AN|Ananging|And y'all|And|Angenommen|Anrhegedig a|An|Apabila|AtĆØs|Atesa|Atunci|Avast!|Aye|A|awer|Bagi|Banjur|Bet|Biįŗæt|Blimey!|Buh|But at the end of the day I reckon|But y'all|But|BUT|Cal|CĆ¢nd|Cando|Cand|Ce|Cuando|Če|Ɛa ưe|Ɛa|Dadas|Dada|Dados|Dado|DaH ghu' bejlu'|dann|Dann|Dano|Dan|Dar|Dat fiind|Data|Date fiind|Date|Dati fiind|Dati|DaÅ£i fiind|Dați fiind|Dato|DEN|Den youse gotta|Dengan|De|Diberi|Diyelim ki|Donada|Donat|Donitaĵo|Do|Dun|Duota|Ɛurh|Eeldades|Ef|Eğer ki|Entao|EntĆ£o|Entón|Entonces|En|Epi|E|Ɖs|Etant donnĆ©e|Etant donnĆ©|Et|Ɖtant donnĆ©es|Ɖtant donnĆ©e|Ɖtant donnĆ©|Etant donnĆ©es|Etant donnĆ©s|Ɖtant donnĆ©s|Fakat|Gangway!|Gdy|Gegeben seien|Gegeben sei|Gegeven|Gegewe|ghu' noblu'|Gitt|Given y'all|Given|Givet|Givun|Ha|Cho|I CAN HAZ|In|Ir|It's just unbelievable|I|Ja|Jeśli|Jeżeli|Kadar|Kada|Kad|Kai|Kaj|Když|Keď|Kemudian|Ketika|Khi|Kiedy|Ko|Kuid|Kui|Kun|Lan|latlh|Le sa a|Let go and haul|Le|LĆØ sa a|LĆØ|Logo|Lorsqu'<|Lorsque|mƤ|Maar|Mais|Mając|Majd|Maka|Manawa|Mas|Ma|Menawa|Men|Mutta|Nalikaning|Nalika|Nanging|NĆ„r|NƤr|Nato|Nhʰng|Niin|Njuk|O zaman|Og|Och|Oletetaan|Onda|Ond|Oraz|Pak|Pero|Però|Podano|Pokiaľ|Pokud|Potem|Potom|Privzeto|Pryd|qaSDI'|Quando|Quand|Quan|SĆ„|Sed|Se|Siis|Sipoze ke|Sipoze Ke|Sipoze|Si|Şi|Și|Soit|Stel|Tada|Tad|Takrat|Tak|Tapi|Ter|Tetapi|Tha the|Tha|Then y'all|Then|ThƬ|Thurh|Toda|Too right|ugeholl|Und|Un|VĆ |vaj|Vendar|Ve|wann|Wanneer|WEN|Wenn|When y'all|When|Wtedy|Wun|Y'know|Yeah nah|Yna|Youse know like when|Youse know when youse got|Y|Za predpokladu|Za předpokladu|Zadani|Zadano|Zadan|Zadate|Zadato|Zakładając|Zaradi|Zatati|ƞa þe|ƞa|ƞƔ|ƞegar|ƞurh|Αλλά|ΔεΓομένου|Και|ĪŒĻ„Ī±Ī½|Ī¤ĻŒĻ„Īµ|А також|Агар|Але|Али|Аммо|А|Ó˜Š³Ó™Ń€|Ó˜Š¹Ń‚ŠøŠŗ|Әмма|Бирок|Ва|Š’Ó™|ДаГено|Дано|Š”Š¾ŠæŃƒŃŃ‚ŠøŠ¼|Если|ЗаГате|ЗаГати|ЗаГато|И|І|К Ń‚Š¾Š¼Ńƒ же|КаГа|КаГ|ŠšŠ¾Š³Š°Ń‚Š¾|КогГа|Коли|Ләкин|Лекин|ŠÓ™Ń‚ŠøŅ—Ó™Š“Ó™|ŠŠµŃ…Š°Š¹|ŠŠ¾|ŠžŠ½Š“Š°|ŠŸŃ€ŠøŠæŃƒŃŃ‚ŠøŠ¼Š¾, що|ŠŸŃ€ŠøŠæŃƒŃŃ‚ŠøŠ¼Š¾|ŠŸŃƒŃŃ‚ŃŒ|Также|Та|ТогГа|ТоГі|То|УнГа|Һәм|Якщо|אבל|אזי|אז|×‘×”×™× ×Ŗ×Ÿ|וגם|כאשר|آنگاه|Ų§Ų°Ų§Ł‹|Ų§ŚÆŲ±|Ų§Ł…Ų§|اور|ŲØŲ§ فرض|بالفرض|بفرض|پھر|ŲŖŲØ|Ų«Ł…|Ų¬ŲØ|عندما|فرض کیا|Ł„ŁƒŁ†|Ł„ŪŒŚ©Ł†|متى|Ł‡Ł†ŚÆŲ§Ł…ŪŒ|و|अगर|और|कदा|ą¤•ą¤æą¤Øą„ą¤¤ą„|ą¤šą„‚ą¤‚ą¤•ą¤æ|जब|तऄा|तदा|तब|ą¤Ŗą¤°ą¤Øą„ą¤¤ą„|पर|यदि|ਅਤੇ|ąØœąØ¦ą©‹ąØ‚|ąØœąØæąØµą©‡ąØ‚ ਕਿ|ąØœą©‡ąØ•ąØ°|ਤਦ|ਪਰ|ą°…ą°Ŗą±ą°Ŗą±ą°”ą±|ఈ ą°Ŗą°°ą°æą°øą±ą°„ą°æą°¤ą°æą°²ą±‹|కాని|ą°šą±†ą°Ŗą±ą°Ŗą°¬ą°”ą°æą°Øą°¦ą°æ|మరియు|ಆದರೆ|ನಂತರ|ನೀಔಿದ|ą²®ą²¤ą³ą²¤ą³|ą²øą³ą²„ą²æą²¤ą²æą²Æą²Øą³ą²Øą³|ąøąø³ąø«ąø™ąø”ą¹ƒąø«ą¹‰|ดังนั้น|ą¹ąø•ą¹ˆ|ą¹€ąø”ąø·ą¹ˆąø­|แคะ|그러멓<|그리고<|단<|ė§Œģ•½<|ė§Œģ¼<|먼저<|씰걓<|ķ•˜ģ§€ė§Œ<|恋恤<|恗恋恗<|恟恠恗<|ならば<|悂恗<|並且<|但し<|ä½†ę˜Æ<|假如<|假定<|假設<|假设<|å‰ę<|åŒę—¶<|åŒę™‚<|å¹¶äø”<|当<|ē•¶<|č€Œäø”<|那么<|那麼<)(?=[ \\t]+)/,lookbehind:!0},string:{pattern:/\"(?:\\\\.|[^\"\\\\\\r\\n])*\"|'(?:\\\\.|[^'\\\\\\r\\n])*'/,inside:{outline:{pattern:/<[^>]+?>/,alias:\"variable\"}}},outline:{pattern:/<[^>]+?>/,alias:\"variable\"}};\nPrism.languages.git={comment:/^#.*/m,deleted:/^[-–].*/m,inserted:/^\\+.*/m,string:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/m,command:{pattern:/^.*\\$ git .*$/m,inside:{parameter:/\\s--?\\w+/m}},coord:/^@@.*@@$/m,commit_sha1:/^commit \\w{40}$/m};\nPrism.languages.glsl=Prism.languages.extend(\"clike\",{comment:[/\\/\\*[\\s\\S]*?\\*\\//,/\\/\\/(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/],number:/(?:\\b0x[\\da-f]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?)[ulf]*/i,keyword:/\\b(?:attribute|const|uniform|varying|buffer|shared|coherent|volatile|restrict|readonly|writeonly|atomic_uint|layout|centroid|flat|smooth|noperspective|patch|sample|break|continue|do|for|while|switch|case|default|if|else|subroutine|in|out|inout|float|double|int|void|bool|true|false|invariant|precise|discard|return|d?mat[234](?:x[234])?|[ibdu]?vec[234]|uint|lowp|mediump|highp|precision|[iu]?sampler[123]D|[iu]?samplerCube|sampler[12]DShadow|samplerCubeShadow|[iu]?sampler[12]DArray|sampler[12]DArrayShadow|[iu]?sampler2DRect|sampler2DRectShadow|[iu]?samplerBuffer|[iu]?sampler2DMS(?:Array)?|[iu]?samplerCubeArray|samplerCubeArrayShadow|[iu]?image[123]D|[iu]?image2DRect|[iu]?imageCube|[iu]?imageBuffer|[iu]?image[12]DArray|[iu]?imageCubeArray|[iu]?image2DMS(?:Array)?|struct|common|partition|active|asm|class|union|enum|typedef|template|this|resource|goto|inline|noinline|public|static|extern|external|interface|long|short|half|fixed|unsigned|superp|input|output|hvec[234]|fvec[234]|sampler3DRect|filter|sizeof|cast|namespace|using)\\b/}),Prism.languages.insertBefore(\"glsl\",\"comment\",{preprocessor:{pattern:/(^[ \\t]*)#(?:(?:define|undef|if|ifdef|ifndef|else|elif|endif|error|pragma|extension|version|line)\\b)?/m,lookbehind:!0,alias:\"builtin\"}});\nPrism.languages.go=Prism.languages.extend(\"clike\",{keyword:/\\b(?:break|case|chan|const|continue|default|defer|else|fallthrough|for|func|go(?:to)?|if|import|interface|map|package|range|return|select|struct|switch|type|var)\\b/,builtin:/\\b(?:bool|byte|complex(?:64|128)|error|float(?:32|64)|rune|string|u?int(?:8|16|32|64)?|uintptr|append|cap|close|complex|copy|delete|imag|len|make|new|panic|print(?:ln)?|real|recover)\\b/,\"boolean\":/\\b(?:_|iota|nil|true|false)\\b/,operator:/[*\\/%^!=]=?|\\+[=+]?|-[=-]?|\\|[=|]?|&(?:=|&|\\^=?)?|>(?:>=?|=)?|<(?:<=?|=|-)?|:=|\\.\\.\\./,number:/(?:\\b0x[a-f\\d]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[-+]?\\d+)?)i?/i,string:{pattern:/([\"'`])(\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,greedy:!0}}),delete Prism.languages.go[\"class-name\"];\nPrism.languages.graphql={comment:/#.*/,string:{pattern:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,greedy:!0},number:/(?:\\B-|\\b)\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?\\b/i,\"boolean\":/\\b(?:true|false)\\b/,variable:/\\$[a-z_]\\w*/i,directive:{pattern:/@[a-z_]\\w*/i,alias:\"function\"},\"attr-name\":/[a-z_]\\w*(?=\\s*:)/i,keyword:[{pattern:/(fragment\\s+(?!on)[a-z_]\\w*\\s+|\\.{3}\\s*)on\\b/,lookbehind:!0},/\\b(?:query|fragment|mutation)\\b/],operator:/!|=|\\.{3}/,punctuation:/[!(){}\\[\\]:=,]/};\nPrism.languages.groovy=Prism.languages.extend(\"clike\",{keyword:/\\b(?:as|def|in|abstract|assert|boolean|break|byte|case|catch|char|class|const|continue|default|do|double|else|enum|extends|final|finally|float|for|goto|if|implements|import|instanceof|int|interface|long|native|new|package|private|protected|public|return|short|static|strictfp|super|switch|synchronized|this|throw|throws|trait|transient|try|void|volatile|while)\\b/,string:[{pattern:/(\"\"\"|''')[\\s\\S]*?\\1|(?:\\$\\/)(?:\\$\\/\\$|[\\s\\S])*?\\/\\$/,greedy:!0},{pattern:/([\"'\\/])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0}],number:/\\b(?:0b[01_]+|0x[\\da-f_]+(?:\\.[\\da-f_p\\-]+)?|[\\d_]+(?:\\.[\\d_]+)?(?:e[+-]?[\\d]+)?)[glidf]?\\b/i,operator:{pattern:/(^|[^.])(?:~|==?~?|\\?[.:]?|\\*(?:[.=]|\\*=?)?|\\.[@&]|\\.\\.<|\\.{1,2}(?!\\.)|-[-=>]?|\\+[+=]?|!=?|<(?:<=?|=>?)?|>(?:>>?=?|=)?|&[&=]?|\\|[|=]?|\\/=?|\\^=?|%=?)/,lookbehind:!0},punctuation:/\\.+|[{}[\\];(),:$]/}),Prism.languages.insertBefore(\"groovy\",\"string\",{shebang:{pattern:/#!.+/,alias:\"comment\"}}),Prism.languages.insertBefore(\"groovy\",\"punctuation\",{\"spock-block\":/\\b(?:setup|given|when|then|and|cleanup|expect|where):/}),Prism.languages.insertBefore(\"groovy\",\"function\",{annotation:{alias:\"punctuation\",pattern:/(^|[^.])@\\w+/,lookbehind:!0}}),Prism.hooks.add(\"wrap\",function(e){if(\"groovy\"===e.language&&\"string\"===e.type){var t=e.content[0];if(\"'\"!=t){var n=/([^\\\\])(?:\\$(?:\\{.*?\\}|[\\w.]+))/;\"$\"===t&&(n=/([^\\$])(?:\\$(?:\\{.*?\\}|[\\w.]+))/),e.content=e.content.replace(/</g,\"<\").replace(/&/g,\"&\"),e.content=Prism.highlight(e.content,{expression:{pattern:n,lookbehind:!0,inside:Prism.languages.groovy}}),e.classes.push(\"/\"===t?\"regex\":\"gstring\")}}});\n!function(e){e.languages.haml={\"multiline-comment\":{pattern:/((?:^|\\r?\\n|\\r)([\\t ]*))(?:\\/|-#).*(?:(?:\\r?\\n|\\r)\\2[\\t ]+.+)*/,lookbehind:!0,alias:\"comment\"},\"multiline-code\":[{pattern:/((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*,[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ]+.*,[\\t ]*)*(?:(?:\\r?\\n|\\r)\\2[\\t ]+.+)/,lookbehind:!0,inside:{rest:e.languages.ruby}},{pattern:/((?:^|\\r?\\n|\\r)([\\t ]*)(?:[~-]|[&!]?=)).*\\|[\\t ]*(?:(?:\\r?\\n|\\r)\\2[\\t ]+.*\\|[\\t ]*)*/,lookbehind:!0,inside:{rest:e.languages.ruby}}],filter:{pattern:/((?:^|\\r?\\n|\\r)([\\t ]*)):[\\w-]+(?:(?:\\r?\\n|\\r)(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+/,lookbehind:!0,inside:{\"filter-name\":{pattern:/^:[\\w-]+/,alias:\"variable\"}}},markup:{pattern:/((?:^|\\r?\\n|\\r)[\\t ]*)<.+/,lookbehind:!0,inside:{rest:e.languages.markup}},doctype:{pattern:/((?:^|\\r?\\n|\\r)[\\t ]*)!!!(?: .+)?/,lookbehind:!0},tag:{pattern:/((?:^|\\r?\\n|\\r)[\\t ]*)[%.#][\\w\\-#.]*[\\w\\-](?:\\([^)]+\\)|\\{(?:\\{[^}]+\\}|[^}])+\\}|\\[[^\\]]+\\])*[\\/<>]*/,lookbehind:!0,inside:{attributes:[{pattern:/(^|[^#])\\{(?:\\{[^}]+\\}|[^}])+\\}/,lookbehind:!0,inside:{rest:e.languages.ruby}},{pattern:/\\([^)]+\\)/,inside:{\"attr-value\":{pattern:/(=\\s*)(?:\"(?:\\\\.|[^\\\\\"\\r\\n])*\"|[^)\\s]+)/,lookbehind:!0},\"attr-name\":/[\\w:-]+(?=\\s*!?=|\\s*[,)])/,punctuation:/[=(),]/}},{pattern:/\\[[^\\]]+\\]/,inside:{rest:e.languages.ruby}}],punctuation:/[<>]/}},code:{pattern:/((?:^|\\r?\\n|\\r)[\\t ]*(?:[~-]|[&!]?=)).+/,lookbehind:!0,inside:{rest:e.languages.ruby}},interpolation:{pattern:/#\\{[^}]+\\}/,inside:{delimiter:{pattern:/^#\\{|\\}$/,alias:\"punctuation\"},rest:e.languages.ruby}},punctuation:{pattern:/((?:^|\\r?\\n|\\r)[\\t ]*)[~=\\-&!]+/,lookbehind:!0}};for(var t=\"((?:^|\\\\r?\\\\n|\\\\r)([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r)(?:\\\\2[\\\\t ]+.+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+\",r=[\"css\",{filter:\"coffee\",language:\"coffeescript\"},\"erb\",\"javascript\",\"less\",\"markdown\",\"ruby\",\"scss\",\"textile\"],n={},a=0,i=r.length;i>a;a++){var l=r[a];l=\"string\"==typeof l?{filter:l,language:l}:l,e.languages[l.language]&&(n[\"filter-\"+l.filter]={pattern:RegExp(t.replace(\"{{filter_name}}\",l.filter)),lookbehind:!0,inside:{\"filter-name\":{pattern:/^:[\\w-]+/,alias:\"variable\"},rest:e.languages[l.language]}})}e.languages.insertBefore(\"haml\",\"filter\",n)}(Prism);\n!function(a){a.languages.handlebars={comment:/\\{\\{![\\s\\S]*?\\}\\}/,delimiter:{pattern:/^\\{\\{\\{?|\\}\\}\\}?$/i,alias:\"punctuation\"},string:/([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,number:/\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,\"boolean\":/\\b(?:true|false)\\b/,block:{pattern:/^(\\s*~?\\s*)[#\\/]\\S+?(?=\\s*~?\\s*$|\\s)/i,lookbehind:!0,alias:\"keyword\"},brackets:{pattern:/\\[[^\\]]+\\]/,inside:{punctuation:/\\[|\\]/,variable:/[\\s\\S]+/}},punctuation:/[!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~]/,variable:/[^!\"#%&'()*+,.\\/;<=>@\\[\\\\\\]^`{|}~\\s]+/},a.hooks.add(\"before-tokenize\",function(e){var n=/\\{\\{\\{[\\s\\S]+?\\}\\}\\}|\\{\\{[\\s\\S]+?\\}\\}/g;a.languages[\"markup-templating\"].buildPlaceholders(e,\"handlebars\",n)}),a.hooks.add(\"after-tokenize\",function(e){a.languages[\"markup-templating\"].tokenizePlaceholders(e,\"handlebars\")})}(Prism);\nPrism.languages.haskell={comment:{pattern:/(^|[^-!#$%*+=?&@|~.:<>^\\\\\\/])(?:--[^-!#$%*+=?&@|~.:<>^\\\\\\/].*|{-[\\s\\S]*?-})/m,lookbehind:!0},\"char\":/'(?:[^\\\\']|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|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|\\d+|o[0-7]+|x[0-9a-fA-F]+))'/,string:{pattern:/\"(?:[^\\\\\"]|\\\\(?:[abfnrtv\\\\\"'&]|\\^[A-Z@[\\]^_]|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|\\d+|o[0-7]+|x[0-9a-fA-F]+)|\\\\\\s+\\\\)*\"/,greedy:!0},keyword:/\\b(?:case|class|data|deriving|do|else|if|in|infixl|infixr|instance|let|module|newtype|of|primitive|then|type|where)\\b/,import_statement:{pattern:/((?:\\r?\\n|\\r|^)\\s*)import\\s+(?:qualified\\s+)?(?:[A-Z][\\w']*)(?:\\.[A-Z][\\w']*)*(?:\\s+as\\s+(?:[A-Z][_a-zA-Z0-9']*)(?:\\.[A-Z][\\w']*)*)?(?:\\s+hiding\\b)?/m,lookbehind:!0,inside:{keyword:/\\b(?:import|qualified|as|hiding)\\b/}},builtin:/\\b(?:abs|acos|acosh|all|and|any|appendFile|approxRational|asTypeOf|asin|asinh|atan|atan2|atanh|basicIORun|break|catch|ceiling|chr|compare|concat|concatMap|const|cos|cosh|curry|cycle|decodeFloat|denominator|digitToInt|div|divMod|drop|dropWhile|either|elem|encodeFloat|enumFrom|enumFromThen|enumFromThenTo|enumFromTo|error|even|exp|exponent|fail|filter|flip|floatDigits|floatRadix|floatRange|floor|fmap|foldl|foldl1|foldr|foldr1|fromDouble|fromEnum|fromInt|fromInteger|fromIntegral|fromRational|fst|gcd|getChar|getContents|getLine|group|head|id|inRange|index|init|intToDigit|interact|ioError|isAlpha|isAlphaNum|isAscii|isControl|isDenormalized|isDigit|isHexDigit|isIEEE|isInfinite|isLower|isNaN|isNegativeZero|isOctDigit|isPrint|isSpace|isUpper|iterate|last|lcm|length|lex|lexDigits|lexLitChar|lines|log|logBase|lookup|map|mapM|mapM_|max|maxBound|maximum|maybe|min|minBound|minimum|mod|negate|not|notElem|null|numerator|odd|or|ord|otherwise|pack|pi|pred|primExitWith|print|product|properFraction|putChar|putStr|putStrLn|quot|quotRem|range|rangeSize|read|readDec|readFile|readFloat|readHex|readIO|readInt|readList|readLitChar|readLn|readOct|readParen|readSigned|reads|readsPrec|realToFrac|recip|rem|repeat|replicate|return|reverse|round|scaleFloat|scanl|scanl1|scanr|scanr1|seq|sequence|sequence_|show|showChar|showInt|showList|showLitChar|showParen|showSigned|showString|shows|showsPrec|significand|signum|sin|sinh|snd|sort|span|splitAt|sqrt|subtract|succ|sum|tail|take|takeWhile|tan|tanh|threadToIOResult|toEnum|toInt|toInteger|toLower|toRational|toUpper|truncate|uncurry|undefined|unlines|until|unwords|unzip|unzip3|userError|words|writeFile|zip|zip3|zipWith|zipWith3)\\b/,number:/\\b(?:\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?|0o[0-7]+|0x[0-9a-f]+)\\b/i,operator:/\\s\\.\\s|[-!#$%*+=?&@|~.:<>^\\\\\\/]*\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]+|[-!#$%*+=?&@|~.:<>^\\\\\\/]+\\.[-!#$%*+=?&@|~.:<>^\\\\\\/]*|[-!#$%*+=?&@|~:<>^\\\\\\/]+|`([A-Z][\\w']*\\.)*[_a-z][\\w']*`/,hvariable:/\\b(?:[A-Z][\\w']*\\.)*[_a-z][\\w']*\\b/,constant:/\\b(?:[A-Z][\\w']*\\.)*[A-Z][\\w']*\\b/,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.haxe=Prism.languages.extend(\"clike\",{string:{pattern:/([\"'])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,greedy:!0,inside:{interpolation:{pattern:/(^|[^\\\\])\\$(?:\\w+|\\{[^}]+\\})/,lookbehind:!0,inside:{interpolation:{pattern:/^\\$\\w*/,alias:\"variable\"}}}}},keyword:/\\bthis\\b|\\b(?:abstract|as|break|case|cast|catch|class|continue|default|do|dynamic|else|enum|extends|extern|from|for|function|if|implements|import|in|inline|interface|macro|new|null|override|public|private|return|static|super|switch|throw|to|try|typedef|using|var|while)(?!\\.)\\b/,operator:/\\.{3}|\\+\\+?|-[->]?|[=!]=?|&&?|\\|\\|?|<[<=]?|>[>=]?|[*\\/%~^]/}),Prism.languages.insertBefore(\"haxe\",\"class-name\",{regex:{pattern:/~\\/(?:[^\\/\\\\\\r\\n]|\\\\.)+\\/[igmsu]*/,greedy:!0}}),Prism.languages.insertBefore(\"haxe\",\"keyword\",{preprocessor:{pattern:/#\\w+/,alias:\"builtin\"},metadata:{pattern:/@:?\\w+/,alias:\"symbol\"},reification:{pattern:/\\$(?:\\w+|(?=\\{))/,alias:\"variable\"}}),Prism.languages.haxe.string.inside.interpolation.inside.rest=Prism.languages.haxe,delete Prism.languages.haxe[\"class-name\"];\nPrism.languages.http={\"request-line\":{pattern:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\\s(?:https?:\\/\\/|\\/)\\S+\\sHTTP\\/[0-9.]+/m,inside:{property:/^(?:POST|GET|PUT|DELETE|OPTIONS|PATCH|TRACE|CONNECT)\\b/,\"attr-name\":/:\\w+/}},\"response-status\":{pattern:/^HTTP\\/1.[01] \\d+.*/m,inside:{property:{pattern:/(^HTTP\\/1.[01] )\\d+.*/i,lookbehind:!0}}},\"header-name\":{pattern:/^[\\w-]+:(?=.)/m,alias:\"keyword\"}};var httpLanguages={\"application/json\":Prism.languages.javascript,\"application/xml\":Prism.languages.markup,\"text/xml\":Prism.languages.markup,\"text/html\":Prism.languages.markup};for(var contentType in httpLanguages)if(httpLanguages[contentType]){var options={};options[contentType]={pattern:new RegExp(\"(content-type:\\\\s*\"+contentType+\"[\\\\w\\\\W]*?)(?:\\\\r?\\\\n|\\\\r){2}[\\\\w\\\\W]*\",\"i\"),lookbehind:!0,inside:{rest:httpLanguages[contentType]}},Prism.languages.insertBefore(\"http\",\"header-name\",options)};\nPrism.languages.hpkp={directive:{pattern:/\\b(?:(?:includeSubDomains|preload|strict)(?: |;)|pin-sha256=\"[a-zA-Z\\d+=\\/]+\"|(?:max-age|report-uri)=|report-to )/,alias:\"keyword\"},safe:{pattern:/\\d{7,}/,alias:\"selector\"},unsafe:{pattern:/\\d{0,6}/,alias:\"function\"}};\nPrism.languages.hsts={directive:{pattern:/\\b(?:max-age=|includeSubDomains|preload)/,alias:\"keyword\"},safe:{pattern:/\\d{8,}/,alias:\"selector\"},unsafe:{pattern:/\\d{0,7}/,alias:\"function\"}};\nPrism.languages.ichigojam={comment:/(?:\\B'|REM)(?:[^\\n\\r]*)/i,string:{pattern:/\"(?:\"\"|[!#$%&'()*,\\/:;<=>?^_ +\\-.A-Z\\d])*\"/i,greedy:!0},number:/\\B#[0-9A-F]+|\\B`[01]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,keyword:/\\b(?:BEEP|BPS|CASE|CLEAR|CLK|CLO|CLP|CLS|CLT|CLV|CONT|COPY|ELSE|END|FILE|FILES|FOR|GOSUB|GSB|GOTO|IF|INPUT|KBD|LED|LET|LIST|LOAD|LOCATE|LRUN|NEW|NEXT|OUT|RIGHT|PLAY|POKE|PRINT|PWM|REM|RENUM|RESET|RETURN|RTN|RUN|SAVE|SCROLL|SLEEP|SRND|STEP|STOP|SUB|TEMPO|THEN|TO|UART|VIDEO|WAIT)(?:\\$|\\b)/i,\"function\":/\\b(?:ABS|ANA|ASC|BIN|BTN|DEC|END|FREE|HELP|HEX|I2CR|I2CW|IN|INKEY|LEN|LINE|PEEK|RND|SCR|SOUND|STR|TICK|USR|VER|VPEEK|ZER)(?:\\$|\\b)/i,label:/(?:\\B@[^\\s]+)/i,operator:/<[=>]?|>=?|\\|\\||&&|[+\\-*\\/=|&^~!]|\\b(?:AND|NOT|OR)\\b/i,punctuation:/[\\[,;:()\\]]/};\nPrism.languages.icon={comment:/#.*/,string:{pattern:/([\"'])(?:(?!\\1)[^\\\\\\r\\n_]|\\\\.|_(?!\\1)(?:\\r\\n|[\\s\\S]))*\\1/,greedy:!0},number:/\\b(?:\\d+r[a-z\\d]+|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)\\b|\\.\\d+\\b/i,\"builtin-keyword\":{pattern:/&(?:allocated|ascii|clock|collections|cset|current|date|dateline|digits|dump|e|error(?:number|text|value)?|errout|fail|features|file|host|input|lcase|letters|level|line|main|null|output|phi|pi|pos|progname|random|regions|source|storage|subject|time|trace|ucase|version)\\b/,alias:\"variable\"},directive:{pattern:/\\$\\w+/,alias:\"builtin\"},keyword:/\\b(?:break|by|case|create|default|do|else|end|every|fail|global|if|initial|invocable|link|local|next|not|of|procedure|record|repeat|return|static|suspend|then|to|until|while)\\b/,\"function\":/(?!\\d)\\w+(?=\\s*[({]|\\s*!\\s*\\[)/,operator:/[+-]:(?!=)|(?:[\\/?@^%&]|\\+\\+?|--?|==?=?|~==?=?|\\*\\*?|\\|\\|\\|?|<(?:->?|>?=?)(?::=)?|:(?:=:?)?|[!.\\\\|~]/,punctuation:/[\\[\\](){},;]/};\nPrism.languages.inform7={string:{pattern:/\"[^\"]*\"/,inside:{substitution:{pattern:/\\[[^\\]]+\\]/,inside:{delimiter:{pattern:/\\[|\\]/,alias:\"punctuation\"}}}}},comment:{pattern:/\\[[^\\]]+\\]/,greedy:!0},title:{pattern:/^[ \\t]*(?:volume|book|part(?! of)|chapter|section|table)\\b.+/im,alias:\"important\"},number:{pattern:/(^|[^-])(?:\\b\\d+(?:\\.\\d+)?(?:\\^\\d+)?\\w*|\\b(?:one|two|three|four|five|six|seven|eight|nine|ten|eleven|twelve))\\b(?!-)/i,lookbehind:!0},verb:{pattern:/(^|[^-])\\b(?:applying to|are|attacking|answering|asking|be(?:ing)?|burning|buying|called|carries|carry(?! out)|carrying|climbing|closing|conceal(?:s|ing)?|consulting|contain(?:s|ing)?|cutting|drinking|dropping|eating|enclos(?:es?|ing)|entering|examining|exiting|getting|giving|going|ha(?:ve|s|ving)|hold(?:s|ing)?|impl(?:y|ies)|incorporat(?:es?|ing)|inserting|is|jumping|kissing|listening|locking|looking|mean(?:s|ing)?|opening|provid(?:es?|ing)|pulling|pushing|putting|relat(?:es?|ing)|removing|searching|see(?:s|ing)?|setting|showing|singing|sleeping|smelling|squeezing|switching|support(?:s|ing)?|swearing|taking|tasting|telling|thinking|throwing|touching|turning|tying|unlock(?:s|ing)?|var(?:y|ies|ying)|waiting|waking|waving|wear(?:s|ing)?)\\b(?!-)/i,lookbehind:!0,alias:\"operator\"},keyword:{pattern:/(^|[^-])\\b(?:after|before|carry out|check|continue the action|definition(?= *:)|do nothing|else|end (?:if|unless|the story)|every turn|if|include|instead(?: of)?|let|move|no|now|otherwise|repeat|report|resume the story|rule for|running through|say(?:ing)?|stop the action|test|try(?:ing)?|understand|unless|use|when|while|yes)\\b(?!-)/i,lookbehind:!0},property:{pattern:/(^|[^-])\\b(?:adjacent(?! to)|carried|closed|concealed|contained|dark|described|edible|empty|enclosed|enterable|even|female|fixed in place|full|handled|held|improper-named|incorporated|inedible|invisible|lighted|lit|lock(?:able|ed)|male|marked for listing|mentioned|negative|neuter|non-(?:empty|full|recurring)|odd|opaque|open(?:able)?|plural-named|portable|positive|privately-named|proper-named|provided|publically-named|pushable between rooms|recurring|related|rubbing|scenery|seen|singular-named|supported|swinging|switch(?:able|ed(?: on| off)?)|touch(?:able|ed)|transparent|unconcealed|undescribed|unlit|unlocked|unmarked for listing|unmentioned|unopenable|untouchable|unvisited|variable|visible|visited|wearable|worn)\\b(?!-)/i,lookbehind:!0,alias:\"symbol\"},position:{pattern:/(^|[^-])\\b(?:above|adjacent to|back side of|below|between|down|east|everywhere|front side|here|in|inside(?: from)?|north(?:east|west)?|nowhere|on(?: top of)?|other side|outside(?: from)?|parts? of|regionally in|south(?:east|west)?|through|up|west|within)\\b(?!-)/i,lookbehind:!0,alias:\"keyword\"},type:{pattern:/(^|[^-])\\b(?:actions?|activit(?:y|ies)|actors?|animals?|backdrops?|containers?|devices?|directions?|doors?|holders?|kinds?|lists?|m[ae]n|nobody|nothing|nouns?|numbers?|objects?|people|persons?|player(?:'s holdall)?|regions?|relations?|rooms?|rule(?:book)?s?|scenes?|someone|something|supporters?|tables?|texts?|things?|time|vehicles?|wom[ae]n)\\b(?!-)/i,lookbehind:!0,alias:\"variable\"},punctuation:/[.,:;(){}]/},Prism.languages.inform7.string.inside.substitution.inside.rest=Prism.languages.inform7,Prism.languages.inform7.string.inside.substitution.inside.rest.text={pattern:/\\S(?:\\s*\\S)*/,alias:\"comment\"};\nPrism.languages.ini={comment:/^[ \\t]*;.*$/m,selector:/^[ \\t]*\\[.*?\\]/m,constant:/^[ \\t]*[^\\s=]+?(?=[ \\t]*=)/m,\"attr-value\":{pattern:/=.*/,inside:{punctuation:/^[=]/}}};\nPrism.languages.io={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?(?:\\*\\/|$)/,lookbehind:!0},{pattern:/(^|[^\\\\])\\/\\/.*/,lookbehind:!0},{pattern:/(^|[^\\\\])#.*/,lookbehind:!0}],\"triple-quoted-string\":{pattern:/\"\"\"(?:\\\\[\\s\\S]|(?!\"\"\")[^\\\\])*\"\"\"/,greedy:!0,alias:\"string\"},string:{pattern:/\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,greedy:!0},keyword:/\\b(?:activate|activeCoroCount|asString|block|break|catch|clone|collectGarbage|compileString|continue|do|doFile|doMessage|doString|else|elseif|exit|for|foreach|forward|getSlot|getEnvironmentVariable|hasSlot|if|ifFalse|ifNil|ifNilEval|ifTrue|isActive|isNil|isResumable|list|message|method|parent|pass|pause|perform|performWithArgList|print|println|proto|raise|raiseResumable|removeSlot|resend|resume|schedulerSleepSeconds|self|sender|setSchedulerSleepSeconds|setSlot|shallowCopy|slotNames|super|system|then|thisBlock|thisContext|call|try|type|uniqueId|updateSlot|wait|while|write|yield)\\b/,builtin:/\\b(?:Array|AudioDevice|AudioMixer|Block|Box|Buffer|CFunction|CGI|Color|Curses|DBM|DNSResolver|DOConnection|DOProxy|DOServer|Date|Directory|Duration|DynLib|Error|Exception|FFT|File|Fnmatch|Font|Future|GL|GLE|GLScissor|GLU|GLUCylinder|GLUQuadric|GLUSphere|GLUT|Host|Image|Importer|LinkList|List|Lobby|Locals|MD5|MP3Decoder|MP3Encoder|Map|Message|Movie|Notification|Number|Object|OpenGL|Point|Protos|Regex|SGML|SGMLElement|SGMLParser|SQLite|Server|Sequence|ShowMessage|SleepyCat|SleepyCatCursor|Socket|SocketManager|Sound|Soup|Store|String|Tree|UDPSender|UPDReceiver|URL|User|Warning|WeakLink|Random|BigNum|Sequence)\\b/,\"boolean\":/\\b(?:true|false|nil)\\b/,number:/\\b0x[\\da-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e-?\\d+)?/i,operator:/[=!*\\/%+-^&|]=|>>?=?|<+*\\-%$|,#][.:]?|[?^]\\.?|[;\\[]:?|[~}\"i][.:]|[ACeEIjLor]\\.|(?:[_\\/\\\\qsux]|_?\\d):)/,alias:\"keyword\"},number:/\\b_?(?:(?!\\d:)\\d+(?:\\.\\d+)?(?:(?:[ejpx]|ad|ar)_?\\d+(?:\\.\\d+)?)*(?:b_?[\\da-z]+(?:\\.[\\da-z]+)?)?|_(?!\\.))/,adverb:{pattern:/[~}]|[\\/\\\\]\\.?|[bfM]\\.|t[.:]/,alias:\"builtin\"},operator:/[=a][.:]|_\\./,conjunction:{pattern:/&(?:\\.:?|:)?|[.:@][.:]?|[!D][.:]|[;dHT]\\.|`:?|[\\^LS]:|\"/,alias:\"variable\"},punctuation:/[()]/};\nPrism.languages.java=Prism.languages.extend(\"clike\",{keyword:/\\b(?: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)\\b/,number:/\\b0b[01]+\\b|\\b0x[\\da-f]*\\.?[\\da-fp-]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?[df]?/i,operator:{pattern:/(^|[^.])(?:\\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\\|[|=]?|\\*=?|\\/=?|%=?|\\^=?|[?:~])/m,lookbehind:!0}}),Prism.languages.insertBefore(\"java\",\"function\",{annotation:{alias:\"punctuation\",pattern:/(^|[^.])@\\w+/,lookbehind:!0}}),Prism.languages.insertBefore(\"java\",\"class-name\",{generics:{pattern:/<\\s*\\w+(?:\\.\\w+)?(?:\\s*,\\s*\\w+(?:\\.\\w+)?)*>/i,alias:\"function\",inside:{keyword:Prism.languages.java.keyword,punctuation:/[<>(),.:]/}}});\nPrism.languages.jolie=Prism.languages.extend(\"clike\",{keyword:/\\b(?:include|define|is_defined|undef|main|init|outputPort|inputPort|Location|Protocol|Interfaces|RequestResponse|OneWay|type|interface|extender|throws|cset|csets|forward|Aggregates|Redirects|embedded|courier|execution|sequential|concurrent|single|scope|install|throw|comp|cH|default|global|linkIn|linkOut|synchronized|this|new|for|if|else|while|in|Jolie|Java|Javascript|nullProcess|spawn|constants|with|provide|until|exit|foreach|instanceof|over|service)\\b/,builtin:/\\b(?:undefined|string|int|void|long|Byte|bool|double|float|char|any)\\b/,number:/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?l?/i,operator:/-[-=>]?|\\+[+=]?|<[<=]?|[>=*!]=?|&&|\\|\\||[:?\\/%^]/,symbol:/[|;@]/,punctuation:/[,.]/,string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0}}),delete Prism.languages.jolie[\"class-name\"],delete Prism.languages.jolie[\"function\"],Prism.languages.insertBefore(\"jolie\",\"keyword\",{\"function\":{pattern:/((?:\\b(?:outputPort|inputPort|in|service|courier)\\b|@)\\s*)\\w+/,lookbehind:!0},aggregates:{pattern:/(\\bAggregates\\s*:\\s*)(?:\\w+(?:\\s+with\\s+\\w+)?\\s*,\\s*)*\\w+(?:\\s+with\\s+\\w+)?/,lookbehind:!0,inside:{withExtension:{pattern:/\\bwith\\s+\\w+/,inside:{keyword:/\\bwith\\b/}},\"function\":{pattern:/\\w+/},punctuation:{pattern:/,/}}},redirects:{pattern:/(\\bRedirects\\s*:\\s*)(?:\\w+\\s*=>\\s*\\w+\\s*,\\s*)*(?:\\w+\\s*=>\\s*\\w+)/,lookbehind:!0,inside:{punctuation:{pattern:/,/},\"function\":{pattern:/\\w+/},symbol:{pattern:/=>/}}}});\nPrism.languages.json={property:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?=\\s*:)/i,string:{pattern:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"(?!\\s*:)/,greedy:!0},number:/\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][+-]?\\d+)?/,punctuation:/[{}[\\]);,]/,operator:/:/g,\"boolean\":/\\b(?:true|false)\\b/i,\"null\":/\\bnull\\b/i},Prism.languages.jsonp=Prism.languages.json;\nPrism.languages.julia={comment:{pattern:/(^|[^\\\\])#.*/,lookbehind:!0},string:/(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2/,keyword:/\\b(?:abstract|baremodule|begin|bitstype|break|catch|ccall|const|continue|do|else|elseif|end|export|finally|for|function|global|if|immutable|import|importall|let|local|macro|module|print|println|quote|return|try|type|typealias|using|while)\\b/,\"boolean\":/\\b(?:true|false)\\b/,number:/(?:\\b(?=\\d)|\\B(?=\\.))(?:0[box])?(?:[\\da-f]+\\.?\\d*|\\.\\d+)(?:[efp][+-]?\\d+)?j?/i,operator:/[-+*^%Ć·&$\\\\]=?|\\/[\\/=]?|!=?=?|\\|[=>]?|<(?:<=?|[=:])?|>(?:=|>>?=?)?|==?=?|[~≠≤≄]/,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.keyman={comment:/\\bc\\s.*/i,\"function\":/\\[\\s*(?:(?:CTRL|SHIFT|ALT|LCTRL|RCTRL|LALT|RALT|CAPS|NCAPS)\\s+)*(?:[TKU]_[\\w?]+|\".+?\"|'.+?')\\s*\\]/i,string:/(\"|').*?\\1/,bold:[/&(?:baselayout|bitmap|capsononly|capsalwaysoff|shiftfreescaps|copyright|ethnologuecode|hotkey|includecodes|keyboardversion|kmw_embedcss|kmw_embedjs|kmw_helpfile|kmw_helptext|kmw_rtl|language|layer|layoutfile|message|mnemoniclayout|name|oldcharposmatching|platform|targets|version|visualkeyboard|windowslanguages)\\b/i,/\\b(?:bitmap|bitmaps|caps on only|caps always off|shift frees caps|copyright|hotkey|language|layout|message|name|version)\\b/i],keyword:/\\b(?:any|baselayout|beep|call|context|deadkey|dk|if|index|layer|notany|nul|outs|platform|return|reset|save|set|store|use)\\b/i,atrule:/\\b(?:ansi|begin|unicode|group|using keys|match|nomatch)\\b/i,number:/\\b(?:U\\+[\\dA-F]+|d\\d+|x[\\da-f]+|\\d+)\\b/i,operator:/[+>\\\\,()]/,tag:/\\$(?:keyman|kmfl|weaver|keymanweb|keymanonly):/i};\n!function(e){e.languages.kotlin=e.languages.extend(\"clike\",{keyword:{pattern:/(^|[^.])\\b(?:abstract|actual|annotation|as|break|by|catch|class|companion|const|constructor|continue|crossinline|data|do|dynamic|else|enum|expect|external|final|finally|for|fun|get|if|import|in|infix|init|inline|inner|interface|internal|is|lateinit|noinline|null|object|open|operator|out|override|package|private|protected|public|reified|return|sealed|set|super|suspend|tailrec|this|throw|to|try|typealias|val|var|vararg|when|where|while)\\b/,lookbehind:!0},\"function\":[/\\w+(?=\\s*\\()/,{pattern:/(\\.)\\w+(?=\\s*\\{)/,lookbehind:!0}],number:/\\b(?:0[xX][\\da-fA-F]+(?:_[\\da-fA-F]+)*|0[bB][01]+(?:_[01]+)*|\\d+(?:_\\d+)*(?:\\.\\d+(?:_\\d+)*)?(?:[eE][+-]?\\d+(?:_\\d+)*)?[fFL]?)\\b/,operator:/\\+[+=]?|-[-=>]?|==?=?|!(?:!|==?)?|[\\/*%<>]=?|[?:]:?|\\.\\.|&&|\\|\\||\\b(?:and|inv|or|shl|shr|ushr|xor)\\b/}),delete e.languages.kotlin[\"class-name\"],e.languages.insertBefore(\"kotlin\",\"string\",{\"raw-string\":{pattern:/(\"\"\"|''')[\\s\\S]*?\\1/,alias:\"string\"}}),e.languages.insertBefore(\"kotlin\",\"keyword\",{annotation:{pattern:/\\B@(?:\\w+:)?(?:[A-Z]\\w*|\\[[^\\]]+\\])/,alias:\"builtin\"}}),e.languages.insertBefore(\"kotlin\",\"function\",{label:{pattern:/\\w+@|@\\w+/,alias:\"symbol\"}});var n=[{pattern:/\\$\\{[^}]+\\}/,inside:{delimiter:{pattern:/^\\$\\{|\\}$/,alias:\"variable\"},rest:e.languages.kotlin}},{pattern:/\\$\\w+/,alias:\"variable\"}];e.languages.kotlin.string.inside=e.languages.kotlin[\"raw-string\"].inside={interpolation:n}}(Prism);\n!function(a){var e=/\\\\(?:[^a-z()[\\]]|[a-z*]+)/i,n={\"equation-command\":{pattern:e,alias:\"regex\"}};a.languages.latex={comment:/%.*/m,cdata:{pattern:/(\\\\begin\\{((?:verbatim|lstlisting)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,lookbehind:!0},equation:[{pattern:/\\$(?:\\\\[\\s\\S]|[^\\\\$])*\\$|\\\\\\([\\s\\S]*?\\\\\\)|\\\\\\[[\\s\\S]*?\\\\\\]/,inside:n,alias:\"string\"},{pattern:/(\\\\begin\\{((?:equation|math|eqnarray|align|multline|gather)\\*?)\\})[\\s\\S]*?(?=\\\\end\\{\\2\\})/,lookbehind:!0,inside:n,alias:\"string\"}],keyword:{pattern:/(\\\\(?:begin|end|ref|cite|label|usepackage|documentclass)(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\})/,lookbehind:!0},url:{pattern:/(\\\\url\\{)[^}]+(?=\\})/,lookbehind:!0},headline:{pattern:/(\\\\(?:part|chapter|section|subsection|frametitle|subsubsection|paragraph|subparagraph|subsubparagraph|subsubsubparagraph)\\*?(?:\\[[^\\]]+\\])?\\{)[^}]+(?=\\}(?:\\[[^\\]]+\\])?)/,lookbehind:!0,alias:\"class-name\"},\"function\":{pattern:e,alias:\"selector\"},punctuation:/[[\\]{}&]/}}(Prism);\nPrism.languages.less=Prism.languages.extend(\"css\",{comment:[/\\/\\*[\\s\\S]*?\\*\\//,{pattern:/(^|[^\\\\])\\/\\/.*/,lookbehind:!0}],atrule:{pattern:/@[\\w-]+?(?:\\([^{}]+\\)|[^(){};])*?(?=\\s*\\{)/i,inside:{punctuation:/[:()]/}},selector:{pattern:/(?:@\\{[\\w-]+\\}|[^{};\\s@])(?:@\\{[\\w-]+\\}|\\([^{}]*\\)|[^{};@])*?(?=\\s*\\{)/,inside:{variable:/@+[\\w-]+/}},property:/(?:@\\{[\\w-]+\\}|[\\w-])+(?:\\+_?)?(?=\\s*:)/i,punctuation:/[{}();:,]/,operator:/[+\\-*\\/]/}),Prism.languages.insertBefore(\"less\",\"punctuation\",{\"function\":Prism.languages.less.function}),Prism.languages.insertBefore(\"less\",\"property\",{variable:[{pattern:/@[\\w-]+\\s*:/,inside:{punctuation:/:/}},/@@?[\\w-]+/],\"mixin-usage\":{pattern:/([{;]\\s*)[.#](?!\\d)[\\w-]+.*?(?=[(;])/,lookbehind:!0,alias:\"function\"}});\nPrism.languages.liquid={keyword:/\\b(?:comment|endcomment|if|elsif|else|endif|unless|endunless|for|endfor|case|endcase|when|in|break|assign|continue|limit|offset|range|reversed|raw|endraw|capture|endcapture|tablerow|endtablerow)\\b/,number:/\\b0b[01]+\\b|\\b0x[\\da-f]*\\.?[\\da-fp-]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e[+-]?\\d+)?[df]?/i,operator:{pattern:/(^|[^.])(?:\\+[+=]?|-[-=]?|!=?|<>?>?=?|==?|&[&=]?|\\|[|=]?|\\*=?|\\/=?|%=?|\\^=?|[?:~])/m,lookbehind:!0},\"function\":{pattern:/(^|[\\s;|&])(?:append|prepend|capitalize|cycle|cols|increment|decrement|abs|at_least|at_most|ceil|compact|concat|date|default|divided_by|downcase|escape|escape_once|first|floor|join|last|lstrip|map|minus|modulo|newline_to_br|plus|remove|remove_first|replace|replace_first|reverse|round|rstrip|size|slice|sort|sort_natural|split|strip|strip_html|strip_newlines|times|truncate|truncatewords|uniq|upcase|url_decode|url_encode|include|paginate)(?=$|[\\s;|&])/,lookbehind:!0}};\n!function(e){function n(e){return new RegExp(\"(\\\\()\"+e+\"(?=[\\\\s\\\\)])\")}function a(e){return new RegExp(\"([\\\\s([])\"+e+\"(?=[\\\\s)])\")}var t=\"[-+*/_~!@$%^=<>{}\\\\w]+\",r=\"&\"+t,i=\"(\\\\()\",s=\"(?=\\\\))\",o=\"(?=\\\\s)\",l={heading:{pattern:/;;;.*/,alias:[\"comment\",\"title\"]},comment:/;.*/,string:{pattern:/\"(?:[^\"\\\\]*|\\\\.)*\"/,greedy:!0,inside:{argument:/[-A-Z]+(?=[.,\\s])/,symbol:new RegExp(\"`\"+t+\"'\")}},\"quoted-symbol\":{pattern:new RegExp(\"#?'\"+t),alias:[\"variable\",\"symbol\"]},\"lisp-property\":{pattern:new RegExp(\":\"+t),alias:\"property\"},splice:{pattern:new RegExp(\",@?\"+t),alias:[\"symbol\",\"variable\"]},keyword:[{pattern:new RegExp(i+\"(?:(?:lexical-)?let\\\\*?|(?:cl-)?letf|if|when|while|unless|cons|cl-loop|and|or|not|cond|setq|error|message|null|require|provide|use-package)\"+o),lookbehind:!0},{pattern:new RegExp(i+\"(?:for|do|collect|return|finally|append|concat|in|by)\"+o),lookbehind:!0}],declare:{pattern:n(\"declare\"),lookbehind:!0,alias:\"keyword\"},interactive:{pattern:n(\"interactive\"),lookbehind:!0,alias:\"keyword\"},\"boolean\":{pattern:a(\"(?:t|nil)\"),lookbehind:!0},number:{pattern:a(\"[-+]?\\\\d+(?:\\\\.\\\\d*)?\"),lookbehind:!0},defvar:{pattern:new RegExp(i+\"def(?:var|const|custom|group)\\\\s+\"+t),lookbehind:!0,inside:{keyword:/^def[a-z]+/,variable:new RegExp(t)}},defun:{pattern:new RegExp(i+\"(?:cl-)?(?:defun\\\\*?|defmacro)\\\\s+\"+t+\"\\\\s+\\\\([\\\\s\\\\S]*?\\\\)\"),lookbehind:!0,inside:{keyword:/^(?:cl-)?def\\S+/,arguments:null,\"function\":{pattern:new RegExp(\"(^\\\\s)\"+t),lookbehind:!0},punctuation:/[()]/}},lambda:{pattern:new RegExp(i+\"lambda\\\\s+\\\\((?:&?\"+t+\"\\\\s*)*\\\\)\"),lookbehind:!0,inside:{keyword:/^lambda/,arguments:null,punctuation:/[()]/}},car:{pattern:new RegExp(i+t),lookbehind:!0},punctuation:[/(['`,]?\\(|[)\\[\\]])/,{pattern:/(\\s)\\.(?=\\s)/,lookbehind:!0}]},p={\"lisp-marker\":new RegExp(r),rest:{argument:{pattern:new RegExp(t),alias:\"variable\"},varform:{pattern:new RegExp(i+t+\"\\\\s+\\\\S[\\\\s\\\\S]*\"+s),lookbehind:!0,inside:{string:l.string,\"boolean\":l.boolean,number:l.number,symbol:l.symbol,punctuation:/[()]/}}}},d=\"\\\\S+(?:\\\\s+\\\\S+)*\",u={pattern:new RegExp(i+\"[\\\\s\\\\S]*\"+s),lookbehind:!0,inside:{\"rest-vars\":{pattern:new RegExp(\"&(?:rest|body)\\\\s+\"+d),inside:p},\"other-marker-vars\":{pattern:new RegExp(\"&(?:optional|aux)\\\\s+\"+d),inside:p},keys:{pattern:new RegExp(\"&key\\\\s+\"+d+\"(?:\\\\s+&allow-other-keys)?\"),inside:p},argument:{pattern:new RegExp(t),alias:\"variable\"},punctuation:/[()]/}};l.lambda.inside.arguments=u,l.defun.inside.arguments=e.util.clone(u),l.defun.inside.arguments.inside.sublist=u,e.languages.lisp=l,e.languages.elisp=l,e.languages.emacs=l,e.languages[\"emacs-lisp\"]=l}(Prism);\nPrism.languages.livescript={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0},{pattern:/(^|[^\\\\])#.*/,lookbehind:!0}],\"interpolated-string\":{pattern:/(^|[^\"])(\"\"\"|\")(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2(?!\")/,lookbehind:!0,greedy:!0,inside:{variable:{pattern:/(^|[^\\\\])#[a-z_](?:-?[a-z]|[\\d_])*/m,lookbehind:!0},interpolation:{pattern:/(^|[^\\\\])#\\{[^}]+\\}/m,lookbehind:!0,inside:{\"interpolation-punctuation\":{pattern:/^#\\{|\\}$/,alias:\"variable\"}}},string:/[\\s\\S]+/}},string:[{pattern:/('''|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,greedy:!0},{pattern:/<\\[[\\s\\S]*?\\]>/,greedy:!0},/\\\\[^\\s,;\\])}]+/],regex:[{pattern:/\\/\\/(\\[.+?]|\\\\.|(?!\\/\\/)[^\\\\])+\\/\\/[gimyu]{0,5}/,greedy:!0,inside:{comment:{pattern:/(^|[^\\\\])#.*/,lookbehind:!0}}},{pattern:/\\/(\\[.+?]|\\\\.|[^\\/\\\\\\r\\n])+\\/[gimyu]{0,5}/,greedy:!0}],keyword:{pattern:/(^|(?!-).)\\b(?:break|case|catch|class|const|continue|default|do|else|extends|fallthrough|finally|for(?: ever)?|function|if|implements|it|let|loop|new|null|otherwise|own|return|super|switch|that|then|this|throw|try|unless|until|var|void|when|while|yield)(?!-)\\b/m,lookbehind:!0},\"keyword-operator\":{pattern:/(^|[^-])\\b(?:(?:delete|require|typeof)!|(?:and|by|delete|export|from|import(?: all)?|in|instanceof|is(?:nt| not)?|not|of|or|til|to|typeof|with|xor)(?!-)\\b)/m,lookbehind:!0,alias:\"operator\"},\"boolean\":{pattern:/(^|[^-])\\b(?:false|no|off|on|true|yes)(?!-)\\b/m,lookbehind:!0},argument:{pattern:/(^|(?!\\.&\\.)[^&])&(?!&)\\d*/m,lookbehind:!0,alias:\"variable\"},number:/\\b(?:\\d+~[\\da-z]+|\\d[\\d_]*(?:\\.\\d[\\d_]*)?(?:[a-z]\\w*)?)/i,identifier:/[a-z_](?:-?[a-z]|[\\d_])*/i,operator:[{pattern:/( )\\.(?= )/,lookbehind:!0},/\\.(?:[=~]|\\.\\.?)|\\.(?:[&|^]|<<|>>>?)\\.|:(?:=|:=?)|&&|\\|[|>]|<(?:<[>=?]?|-(?:->?|>)?|\\+\\+?|@@?|%%?|\\*\\*?|!(?:~?=|--?>|~?~>)?|~(?:~?>|=)?|==?|\\^\\^?|[\\/?]/],punctuation:/[(){}\\[\\]|.,:;`]/},Prism.languages.livescript[\"interpolated-string\"].inside.interpolation.inside.rest=Prism.languages.livescript;\nPrism.languages.lolcode={comment:[/\\bOBTW\\s+[\\s\\S]*?\\s+TLDR\\b/,/\\bBTW.+/],string:{pattern:/\"(?::.|[^\"])*\"/,inside:{variable:/:\\{[^}]+\\}/,symbol:[/:\\([a-f\\d]+\\)/i,/:\\[[^\\]]+\\]/,/:[)>o\":]/]},greedy:!0},number:/(?:\\B-)?(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)/,symbol:{pattern:/(^|\\s)(?:A )?(?:YARN|NUMBR|NUMBAR|TROOF|BUKKIT|NOOB)(?=\\s|,|$)/,lookbehind:!0,inside:{keyword:/A(?=\\s)/}},label:{pattern:/((?:^|\\s)(?:IM IN YR|IM OUTTA YR) )[a-zA-Z]\\w*/,lookbehind:!0,alias:\"string\"},\"function\":{pattern:/((?:^|\\s)(?:I IZ|HOW IZ I|IZ) )[a-zA-Z]\\w*/,lookbehind:!0},keyword:[{pattern:/(^|\\s)(?:O HAI IM|KTHX|HAI|KTHXBYE|I HAS A|ITZ(?: A)?|R|AN|MKAY|SMOOSH|MAEK|IS NOW(?: A)?|VISIBLE|GIMMEH|O RLY\\?|YA RLY|NO WAI|OIC|MEBBE|WTF\\?|OMG|OMGWTF|GTFO|IM IN YR|IM OUTTA YR|FOUND YR|YR|TIL|WILE|UPPIN|NERFIN|I IZ|HOW IZ I|IF U SAY SO|SRS|HAS A|LIEK(?: A)?|IZ)(?=\\s|,|$)/,lookbehind:!0},/'Z(?=\\s|,|$)/],\"boolean\":{pattern:/(^|\\s)(?:WIN|FAIL)(?=\\s|,|$)/,lookbehind:!0},variable:{pattern:/(^|\\s)IT(?=\\s|,|$)/,lookbehind:!0},operator:{pattern:/(^|\\s)(?:NOT|BOTH SAEM|DIFFRINT|(?:SUM|DIFF|PRODUKT|QUOSHUNT|MOD|BIGGR|SMALLR|BOTH|EITHER|WON|ALL|ANY) OF)(?=\\s|,|$)/,lookbehind:!0},punctuation:/\\.{3}|…|,|!/};\nPrism.languages.lua={comment:/^#!.+|--(?:\\[(=*)\\[[\\s\\S]*?\\]\\1\\]|.*)/m,string:{pattern:/([\"'])(?:(?!\\1)[^\\\\\\r\\n]|\\\\z(?:\\r\\n|\\s)|\\\\(?:\\r\\n|[\\s\\S]))*\\1|\\[(=*)\\[[\\s\\S]*?\\]\\2\\]/,greedy:!0},number:/\\b0x[a-f\\d]+\\.?[a-f\\d]*(?:p[+-]?\\d+)?\\b|\\b\\d+(?:\\.\\B|\\.?\\d*(?:e[+-]?\\d+)?\\b)|\\B\\.\\d+(?:e[+-]?\\d+)?\\b/i,keyword:/\\b(?:and|break|do|else|elseif|end|false|for|function|goto|if|in|local|nil|not|or|repeat|return|then|true|until|while)\\b/,\"function\":/(?!\\d)\\w+(?=\\s*(?:[({]))/,operator:[/[-+*%^&|#]|\\/\\/?|<[<=]?|>[>=]?|[=~]=?/,{pattern:/(^|[^.])\\.\\.(?!\\.)/,lookbehind:!0}],punctuation:/[\\[\\](){},;]|\\.+|:+/};\nPrism.languages.makefile={comment:{pattern:/(^|[^\\\\])#(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])*/,lookbehind:!0},string:{pattern:/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},builtin:/\\.[A-Z][^:#=\\s]+(?=\\s*:(?!=))/,symbol:{pattern:/^[^:=\\r\\n]+(?=\\s*:(?!=))/m,inside:{variable:/\\$+(?:[^(){}:#=\\s]+|(?=[({]))/}},variable:/\\$+(?:[^(){}:#=\\s]+|\\([@*%<^+?][DF]\\)|(?=[({]))/,keyword:[/-include\\b|\\b(?:define|else|endef|endif|export|ifn?def|ifn?eq|include|override|private|sinclude|undefine|unexport|vpath)\\b/,{pattern:/(\\()(?:addsuffix|abspath|and|basename|call|dir|error|eval|file|filter(?:-out)?|findstring|firstword|flavor|foreach|guile|if|info|join|lastword|load|notdir|or|origin|patsubst|realpath|shell|sort|strip|subst|suffix|value|warning|wildcard|word(?:s|list)?)(?=[ \\t])/,lookbehind:!0}],operator:/(?:::|[?:+!])?=|[|@]/,punctuation:/[:;(){}]/};\nPrism.languages.markdown=Prism.languages.extend(\"markup\",{}),Prism.languages.insertBefore(\"markdown\",\"prolog\",{blockquote:{pattern:/^>(?:[\\t ]*>)*/m,alias:\"punctuation\"},code:[{pattern:/^(?: {4}|\\t).+/m,alias:\"keyword\"},{pattern:/``.+?``|`[^`\\n]+`/,alias:\"keyword\"}],title:[{pattern:/\\w+.*(?:\\r?\\n|\\r)(?:==+|--+)/,alias:\"important\",inside:{punctuation:/==+$|--+$/}},{pattern:/(^\\s*)#+.+/m,lookbehind:!0,alias:\"important\",inside:{punctuation:/^#+|#+$/}}],hr:{pattern:/(^\\s*)([*-])(?:[\\t ]*\\2){2,}(?=\\s*$)/m,lookbehind:!0,alias:\"punctuation\"},list:{pattern:/(^\\s*)(?:[*+-]|\\d+\\.)(?=[\\t ].)/m,lookbehind:!0,alias:\"punctuation\"},\"url-reference\":{pattern:/!?\\[[^\\]]+\\]:[\\t ]+(?:\\S+|<(?:\\\\.|[^>\\\\])+>)(?:[\\t ]+(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\)))?/,inside:{variable:{pattern:/^(!?\\[)[^\\]]+/,lookbehind:!0},string:/(?:\"(?:\\\\.|[^\"\\\\])*\"|'(?:\\\\.|[^'\\\\])*'|\\((?:\\\\.|[^)\\\\])*\\))$/,punctuation:/^[\\[\\]!:]|[<>]/},alias:\"url\"},bold:{pattern:/(^|[^\\\\])(\\*\\*|__)(?:(?:\\r?\\n|\\r)(?!\\r?\\n|\\r)|.)+?\\2/,lookbehind:!0,inside:{punctuation:/^\\*\\*|^__|\\*\\*$|__$/}},italic:{pattern:/(^|[^\\\\])([*_])(?:(?:\\r?\\n|\\r)(?!\\r?\\n|\\r)|.)+?\\2/,lookbehind:!0,inside:{punctuation:/^[*_]|[*_]$/}},url:{pattern:/!?\\[[^\\]]+\\](?:\\([^\\s)]+(?:[\\t ]+\"(?:\\\\.|[^\"\\\\])*\")?\\)| ?\\[[^\\]\\n]*\\])/,inside:{variable:{pattern:/(!?\\[)[^\\]]+(?=\\]$)/,lookbehind:!0},string:{pattern:/\"(?:\\\\.|[^\"\\\\])*\"(?=\\)$)/}}}}),Prism.languages.markdown.bold.inside.url=Prism.languages.markdown.url,Prism.languages.markdown.italic.inside.url=Prism.languages.markdown.url,Prism.languages.markdown.bold.inside.italic=Prism.languages.markdown.italic,Prism.languages.markdown.italic.inside.bold=Prism.languages.markdown.bold;\n!function(e){e.languages.erb=e.languages.extend(\"ruby\",{}),e.languages.insertBefore(\"erb\",\"comment\",{delimiter:{pattern:/^<%=?|%>$/,alias:\"punctuation\"}}),e.hooks.add(\"before-tokenize\",function(a){var n=/<%=?[\\s\\S]+?%>/g;e.languages[\"markup-templating\"].buildPlaceholders(a,\"erb\",n)}),e.hooks.add(\"after-tokenize\",function(a){e.languages[\"markup-templating\"].tokenizePlaceholders(a,\"erb\")})}(Prism);\nPrism.languages.matlab={comment:[/%\\{[\\s\\S]*?\\}%/,/%.+/],string:{pattern:/\\B'(?:''|[^'\\r\\n])*'/,greedy:!0},number:/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[eE][+-]?\\d+)?(?:[ij])?|\\b[ij]\\b/,keyword:/\\b(?:break|case|catch|continue|else|elseif|end|for|function|if|inf|NaN|otherwise|parfor|pause|pi|return|switch|try|while)\\b/,\"function\":/(?!\\d)\\w+(?=\\s*\\()/,operator:/\\.?[*^\\/\\\\']|[+\\-:@]|[<>=~]=?|&&?|\\|\\|?/,punctuation:/\\.{3}|[.,;\\[\\](){}!]/};\nPrism.languages.mel={comment:/\\/\\/.*/,code:{pattern:/`(?:\\\\.|[^\\\\`\\r\\n])*`/,greedy:!0,alias:\"italic\",inside:{delimiter:{pattern:/^`|`$/,alias:\"punctuation\"}}},string:{pattern:/\"(?:\\\\.|[^\\\\\"\\r\\n])*\"/,greedy:!0},variable:/\\$\\w+/,number:/\\b0x[\\da-fA-F]+\\b|\\b\\d+\\.?\\d*|\\B\\.\\d+/,flag:{pattern:/-[^\\d\\W]\\w*/,alias:\"operator\"},keyword:/\\b(?:break|case|continue|default|do|else|float|for|global|if|in|int|matrix|proc|return|string|switch|vector|while)\\b/,\"function\":/\\w+(?=\\()|\\b(?:about|abs|addAttr|addAttributeEditorNodeHelp|addDynamic|addNewShelfTab|addPP|addPanelCategory|addPrefixToName|advanceToNextDrivenKey|affectedNet|affects|aimConstraint|air|alias|aliasAttr|align|alignCtx|alignCurve|alignSurface|allViewFit|ambientLight|angle|angleBetween|animCone|animCurveEditor|animDisplay|animView|annotate|appendStringArray|applicationName|applyAttrPreset|applyTake|arcLenDimContext|arcLengthDimension|arclen|arrayMapper|art3dPaintCtx|artAttrCtx|artAttrPaintVertexCtx|artAttrSkinPaintCtx|artAttrTool|artBuildPaintMenu|artFluidAttrCtx|artPuttyCtx|artSelectCtx|artSetPaintCtx|artUserPaintCtx|assignCommand|assignInputDevice|assignViewportFactories|attachCurve|attachDeviceAttr|attachSurface|attrColorSliderGrp|attrCompatibility|attrControlGrp|attrEnumOptionMenu|attrEnumOptionMenuGrp|attrFieldGrp|attrFieldSliderGrp|attrNavigationControlGrp|attrPresetEditWin|attributeExists|attributeInfo|attributeMenu|attributeQuery|autoKeyframe|autoPlace|bakeClip|bakeFluidShading|bakePartialHistory|bakeResults|bakeSimulation|basename|basenameEx|batchRender|bessel|bevel|bevelPlus|binMembership|bindSkin|blend2|blendShape|blendShapeEditor|blendShapePanel|blendTwoAttr|blindDataType|boneLattice|boundary|boxDollyCtx|boxZoomCtx|bufferCurve|buildBookmarkMenu|buildKeyframeMenu|button|buttonManip|CBG|cacheFile|cacheFileCombine|cacheFileMerge|cacheFileTrack|camera|cameraView|canCreateManip|canvas|capitalizeString|catch|catchQuiet|ceil|changeSubdivComponentDisplayLevel|changeSubdivRegion|channelBox|character|characterMap|characterOutlineEditor|characterize|chdir|checkBox|checkBoxGrp|checkDefaultRenderGlobals|choice|circle|circularFillet|clamp|clear|clearCache|clip|clipEditor|clipEditorCurrentTimeCtx|clipSchedule|clipSchedulerOutliner|clipTrimBefore|closeCurve|closeSurface|cluster|cmdFileOutput|cmdScrollFieldExecuter|cmdScrollFieldReporter|cmdShell|coarsenSubdivSelectionList|collision|color|colorAtPoint|colorEditor|colorIndex|colorIndexSliderGrp|colorSliderButtonGrp|colorSliderGrp|columnLayout|commandEcho|commandLine|commandPort|compactHairSystem|componentEditor|compositingInterop|computePolysetVolume|condition|cone|confirmDialog|connectAttr|connectControl|connectDynamic|connectJoint|connectionInfo|constrain|constrainValue|constructionHistory|container|containsMultibyte|contextInfo|control|convertFromOldLayers|convertIffToPsd|convertLightmap|convertSolidTx|convertTessellation|convertUnit|copyArray|copyFlexor|copyKey|copySkinWeights|cos|cpButton|cpCache|cpClothSet|cpCollision|cpConstraint|cpConvClothToMesh|cpForces|cpGetSolverAttr|cpPanel|cpProperty|cpRigidCollisionFilter|cpSeam|cpSetEdit|cpSetSolverAttr|cpSolver|cpSolverTypes|cpTool|cpUpdateClothUVs|createDisplayLayer|createDrawCtx|createEditor|createLayeredPsdFile|createMotionField|createNewShelf|createNode|createRenderLayer|createSubdivRegion|cross|crossProduct|ctxAbort|ctxCompletion|ctxEditMode|ctxTraverse|currentCtx|currentTime|currentTimeCtx|currentUnit|curve|curveAddPtCtx|curveCVCtx|curveEPCtx|curveEditorCtx|curveIntersect|curveMoveEPCtx|curveOnSurface|curveSketchCtx|cutKey|cycleCheck|cylinder|dagPose|date|defaultLightListCheckBox|defaultNavigation|defineDataServer|defineVirtualDevice|deformer|deg_to_rad|delete|deleteAttr|deleteShadingGroupsAndMaterials|deleteShelfTab|deleteUI|deleteUnusedBrushes|delrandstr|detachCurve|detachDeviceAttr|detachSurface|deviceEditor|devicePanel|dgInfo|dgdirty|dgeval|dgtimer|dimWhen|directKeyCtx|directionalLight|dirmap|dirname|disable|disconnectAttr|disconnectJoint|diskCache|displacementToPoly|displayAffected|displayColor|displayCull|displayLevelOfDetail|displayPref|displayRGBColor|displaySmoothness|displayStats|displayString|displaySurface|distanceDimContext|distanceDimension|doBlur|dolly|dollyCtx|dopeSheetEditor|dot|dotProduct|doubleProfileBirailSurface|drag|dragAttrContext|draggerContext|dropoffLocator|duplicate|duplicateCurve|duplicateSurface|dynCache|dynControl|dynExport|dynExpression|dynGlobals|dynPaintEditor|dynParticleCtx|dynPref|dynRelEdPanel|dynRelEditor|dynamicLoad|editAttrLimits|editDisplayLayerGlobals|editDisplayLayerMembers|editRenderLayerAdjustment|editRenderLayerGlobals|editRenderLayerMembers|editor|editorTemplate|effector|emit|emitter|enableDevice|encodeString|endString|endsWith|env|equivalent|equivalentTol|erf|error|eval|evalDeferred|evalEcho|event|exactWorldBoundingBox|exclusiveLightCheckBox|exec|executeForEachObject|exists|exp|expression|expressionEditorListen|extendCurve|extendSurface|extrude|fcheck|fclose|feof|fflush|fgetline|fgetword|file|fileBrowserDialog|fileDialog|fileExtension|fileInfo|filetest|filletCurve|filter|filterCurve|filterExpand|filterStudioImport|findAllIntersections|findAnimCurves|findKeyframe|findMenuItem|findRelatedSkinCluster|finder|firstParentOf|fitBspline|flexor|floatEq|floatField|floatFieldGrp|floatScrollBar|floatSlider|floatSlider2|floatSliderButtonGrp|floatSliderGrp|floor|flow|fluidCacheInfo|fluidEmitter|fluidVoxelInfo|flushUndo|fmod|fontDialog|fopen|formLayout|format|fprint|frameLayout|fread|freeFormFillet|frewind|fromNativePath|fwrite|gamma|gauss|geometryConstraint|getApplicationVersionAsFloat|getAttr|getClassification|getDefaultBrush|getFileList|getFluidAttr|getInputDeviceRange|getMayaPanelTypes|getModifiers|getPanel|getParticleAttr|getPluginResource|getenv|getpid|glRender|glRenderEditor|globalStitch|gmatch|goal|gotoBindPose|grabColor|gradientControl|gradientControlNoAttr|graphDollyCtx|graphSelectContext|graphTrackCtx|gravity|grid|gridLayout|group|groupObjectsByName|HfAddAttractorToAS|HfAssignAS|HfBuildEqualMap|HfBuildFurFiles|HfBuildFurImages|HfCancelAFR|HfConnectASToHF|HfCreateAttractor|HfDeleteAS|HfEditAS|HfPerformCreateAS|HfRemoveAttractorFromAS|HfSelectAttached|HfSelectAttractors|HfUnAssignAS|hardenPointCurve|hardware|hardwareRenderPanel|headsUpDisplay|headsUpMessage|help|helpLine|hermite|hide|hilite|hitTest|hotBox|hotkey|hotkeyCheck|hsv_to_rgb|hudButton|hudSlider|hudSliderButton|hwReflectionMap|hwRender|hwRenderLoad|hyperGraph|hyperPanel|hyperShade|hypot|iconTextButton|iconTextCheckBox|iconTextRadioButton|iconTextRadioCollection|iconTextScrollList|iconTextStaticLabel|ikHandle|ikHandleCtx|ikHandleDisplayScale|ikSolver|ikSplineHandleCtx|ikSystem|ikSystemInfo|ikfkDisplayMethod|illustratorCurves|image|imfPlugins|inheritTransform|insertJoint|insertJointCtx|insertKeyCtx|insertKnotCurve|insertKnotSurface|instance|instanceable|instancer|intField|intFieldGrp|intScrollBar|intSlider|intSliderGrp|interToUI|internalVar|intersect|iprEngine|isAnimCurve|isConnected|isDirty|isParentOf|isSameObject|isTrue|isValidObjectName|isValidString|isValidUiName|isolateSelect|itemFilter|itemFilterAttr|itemFilterRender|itemFilterType|joint|jointCluster|jointCtx|jointDisplayScale|jointLattice|keyTangent|keyframe|keyframeOutliner|keyframeRegionCurrentTimeCtx|keyframeRegionDirectKeyCtx|keyframeRegionDollyCtx|keyframeRegionInsertKeyCtx|keyframeRegionMoveKeyCtx|keyframeRegionScaleKeyCtx|keyframeRegionSelectKeyCtx|keyframeRegionSetKeyCtx|keyframeRegionTrackCtx|keyframeStats|lassoContext|lattice|latticeDeformKeyCtx|launch|launchImageEditor|layerButton|layeredShaderPort|layeredTexturePort|layout|layoutDialog|lightList|lightListEditor|lightListPanel|lightlink|lineIntersection|linearPrecision|linstep|listAnimatable|listAttr|listCameras|listConnections|listDeviceAttachments|listHistory|listInputDeviceAxes|listInputDeviceButtons|listInputDevices|listMenuAnnotation|listNodeTypes|listPanelCategories|listRelatives|listSets|listTransforms|listUnselected|listerEditor|loadFluid|loadNewShelf|loadPlugin|loadPluginLanguageResources|loadPrefObjects|localizedPanelLabel|lockNode|loft|log|longNameOf|lookThru|ls|lsThroughFilter|lsType|lsUI|Mayatomr|mag|makeIdentity|makeLive|makePaintable|makeRoll|makeSingleSurface|makeTubeOn|makebot|manipMoveContext|manipMoveLimitsCtx|manipOptions|manipRotateContext|manipRotateLimitsCtx|manipScaleContext|manipScaleLimitsCtx|marker|match|max|memory|menu|menuBarLayout|menuEditor|menuItem|menuItemToShelf|menuSet|menuSetPref|messageLine|min|minimizeApp|mirrorJoint|modelCurrentTimeCtx|modelEditor|modelPanel|mouse|movIn|movOut|move|moveIKtoFK|moveKeyCtx|moveVertexAlongDirection|multiProfileBirailSurface|mute|nParticle|nameCommand|nameField|namespace|namespaceInfo|newPanelItems|newton|nodeCast|nodeIconButton|nodeOutliner|nodePreset|nodeType|noise|nonLinear|normalConstraint|normalize|nurbsBoolean|nurbsCopyUVSet|nurbsCube|nurbsEditUV|nurbsPlane|nurbsSelect|nurbsSquare|nurbsToPoly|nurbsToPolygonsPref|nurbsToSubdiv|nurbsToSubdivPref|nurbsUVSet|nurbsViewDirectionVector|objExists|objectCenter|objectLayer|objectType|objectTypeUI|obsoleteProc|oceanNurbsPreviewPlane|offsetCurve|offsetCurveOnSurface|offsetSurface|openGLExtension|openMayaPref|optionMenu|optionMenuGrp|optionVar|orbit|orbitCtx|orientConstraint|outlinerEditor|outlinerPanel|overrideModifier|paintEffectsDisplay|pairBlend|palettePort|paneLayout|panel|panelConfiguration|panelHistory|paramDimContext|paramDimension|paramLocator|parent|parentConstraint|particle|particleExists|particleInstancer|particleRenderInfo|partition|pasteKey|pathAnimation|pause|pclose|percent|performanceOptions|pfxstrokes|pickWalk|picture|pixelMove|planarSrf|plane|play|playbackOptions|playblast|plugAttr|plugNode|pluginInfo|pluginResourceUtil|pointConstraint|pointCurveConstraint|pointLight|pointMatrixMult|pointOnCurve|pointOnSurface|pointPosition|poleVectorConstraint|polyAppend|polyAppendFacetCtx|polyAppendVertex|polyAutoProjection|polyAverageNormal|polyAverageVertex|polyBevel|polyBlendColor|polyBlindData|polyBoolOp|polyBridgeEdge|polyCacheMonitor|polyCheck|polyChipOff|polyClipboard|polyCloseBorder|polyCollapseEdge|polyCollapseFacet|polyColorBlindData|polyColorDel|polyColorPerVertex|polyColorSet|polyCompare|polyCone|polyCopyUV|polyCrease|polyCreaseCtx|polyCreateFacet|polyCreateFacetCtx|polyCube|polyCut|polyCutCtx|polyCylinder|polyCylindricalProjection|polyDelEdge|polyDelFacet|polyDelVertex|polyDuplicateAndConnect|polyDuplicateEdge|polyEditUV|polyEditUVShell|polyEvaluate|polyExtrudeEdge|polyExtrudeFacet|polyExtrudeVertex|polyFlipEdge|polyFlipUV|polyForceUV|polyGeoSampler|polyHelix|polyInfo|polyInstallAction|polyLayoutUV|polyListComponentConversion|polyMapCut|polyMapDel|polyMapSew|polyMapSewMove|polyMergeEdge|polyMergeEdgeCtx|polyMergeFacet|polyMergeFacetCtx|polyMergeUV|polyMergeVertex|polyMirrorFace|polyMoveEdge|polyMoveFacet|polyMoveFacetUV|polyMoveUV|polyMoveVertex|polyNormal|polyNormalPerVertex|polyNormalizeUV|polyOptUvs|polyOptions|polyOutput|polyPipe|polyPlanarProjection|polyPlane|polyPlatonicSolid|polyPoke|polyPrimitive|polyPrism|polyProjection|polyPyramid|polyQuad|polyQueryBlindData|polyReduce|polySelect|polySelectConstraint|polySelectConstraintMonitor|polySelectCtx|polySelectEditCtx|polySeparate|polySetToFaceNormal|polySewEdge|polyShortestPathCtx|polySmooth|polySoftEdge|polySphere|polySphericalProjection|polySplit|polySplitCtx|polySplitEdge|polySplitRing|polySplitVertex|polyStraightenUVBorder|polySubdivideEdge|polySubdivideFacet|polyToSubdiv|polyTorus|polyTransfer|polyTriangulate|polyUVSet|polyUnite|polyWedgeFace|popen|popupMenu|pose|pow|preloadRefEd|print|progressBar|progressWindow|projFileViewer|projectCurve|projectTangent|projectionContext|projectionManip|promptDialog|propModCtx|propMove|psdChannelOutliner|psdEditTextureFile|psdExport|psdTextureFile|putenv|pwd|python|querySubdiv|quit|rad_to_deg|radial|radioButton|radioButtonGrp|radioCollection|radioMenuItemCollection|rampColorPort|rand|randomizeFollicles|randstate|rangeControl|readTake|rebuildCurve|rebuildSurface|recordAttr|recordDevice|redo|reference|referenceEdit|referenceQuery|refineSubdivSelectionList|refresh|refreshAE|registerPluginResource|rehash|reloadImage|removeJoint|removeMultiInstance|removePanelCategory|rename|renameAttr|renameSelectionList|renameUI|render|renderGlobalsNode|renderInfo|renderLayerButton|renderLayerParent|renderLayerPostProcess|renderLayerUnparent|renderManip|renderPartition|renderQualityNode|renderSettings|renderThumbnailUpdate|renderWindowEditor|renderWindowSelectContext|renderer|reorder|reorderDeformers|requires|reroot|resampleFluid|resetAE|resetPfxToPolyCamera|resetTool|resolutionNode|retarget|reverseCurve|reverseSurface|revolve|rgb_to_hsv|rigidBody|rigidSolver|roll|rollCtx|rootOf|rot|rotate|rotationInterpolation|roundConstantRadius|rowColumnLayout|rowLayout|runTimeCommand|runup|sampleImage|saveAllShelves|saveAttrPreset|saveFluid|saveImage|saveInitialState|saveMenu|savePrefObjects|savePrefs|saveShelf|saveToolSettings|scale|scaleBrushBrightness|scaleComponents|scaleConstraint|scaleKey|scaleKeyCtx|sceneEditor|sceneUIReplacement|scmh|scriptCtx|scriptEditorInfo|scriptJob|scriptNode|scriptTable|scriptToShelf|scriptedPanel|scriptedPanelType|scrollField|scrollLayout|sculpt|searchPathArray|seed|selLoadSettings|select|selectContext|selectCurveCV|selectKey|selectKeyCtx|selectKeyframeRegionCtx|selectMode|selectPref|selectPriority|selectType|selectedNodes|selectionConnection|separator|setAttr|setAttrEnumResource|setAttrMapping|setAttrNiceNameResource|setConstraintRestPosition|setDefaultShadingGroup|setDrivenKeyframe|setDynamic|setEditCtx|setEditor|setFluidAttr|setFocus|setInfinity|setInputDeviceMapping|setKeyCtx|setKeyPath|setKeyframe|setKeyframeBlendshapeTargetWts|setMenuMode|setNodeNiceNameResource|setNodeTypeFlag|setParent|setParticleAttr|setPfxToPolyCamera|setPluginResource|setProject|setStampDensity|setStartupMessage|setState|setToolTo|setUITemplate|setXformManip|sets|shadingConnection|shadingGeometryRelCtx|shadingLightRelCtx|shadingNetworkCompare|shadingNode|shapeCompare|shelfButton|shelfLayout|shelfTabLayout|shellField|shortNameOf|showHelp|showHidden|showManipCtx|showSelectionInTitle|showShadingGroupAttrEditor|showWindow|sign|simplify|sin|singleProfileBirailSurface|size|sizeBytes|skinCluster|skinPercent|smoothCurve|smoothTangentSurface|smoothstep|snap2to2|snapKey|snapMode|snapTogetherCtx|snapshot|soft|softMod|softModCtx|sort|sound|soundControl|source|spaceLocator|sphere|sphrand|spotLight|spotLightPreviewPort|spreadSheetEditor|spring|sqrt|squareSurface|srtContext|stackTrace|startString|startsWith|stitchAndExplodeShell|stitchSurface|stitchSurfacePoints|strcmp|stringArrayCatenate|stringArrayContains|stringArrayCount|stringArrayInsertAtIndex|stringArrayIntersector|stringArrayRemove|stringArrayRemoveAtIndex|stringArrayRemoveDuplicates|stringArrayRemoveExact|stringArrayToString|stringToStringArray|strip|stripPrefixFromName|stroke|subdAutoProjection|subdCleanTopology|subdCollapse|subdDuplicateAndConnect|subdEditUV|subdListComponentConversion|subdMapCut|subdMapSewMove|subdMatchTopology|subdMirror|subdToBlind|subdToPoly|subdTransferUVsToCache|subdiv|subdivCrease|subdivDisplaySmoothness|substitute|substituteAllString|substituteGeometry|substring|surface|surfaceSampler|surfaceShaderList|swatchDisplayPort|switchTable|symbolButton|symbolCheckBox|sysFile|system|tabLayout|tan|tangentConstraint|texLatticeDeformContext|texManipContext|texMoveContext|texMoveUVShellContext|texRotateContext|texScaleContext|texSelectContext|texSelectShortestPathCtx|texSmudgeUVContext|texWinToolCtx|text|textCurves|textField|textFieldButtonGrp|textFieldGrp|textManip|textScrollList|textToShelf|textureDisplacePlane|textureHairColor|texturePlacementContext|textureWindow|threadCount|threePointArcCtx|timeControl|timePort|timerX|toNativePath|toggle|toggleAxis|toggleWindowVisibility|tokenize|tokenizeList|tolerance|tolower|toolButton|toolCollection|toolDropped|toolHasOptions|toolPropertyWindow|torus|toupper|trace|track|trackCtx|transferAttributes|transformCompare|transformLimits|translator|trim|trunc|truncateFluidCache|truncateHairCache|tumble|tumbleCtx|turbulence|twoPointArcCtx|uiRes|uiTemplate|unassignInputDevice|undo|undoInfo|ungroup|uniform|unit|unloadPlugin|untangleUV|untitledFileName|untrim|upAxis|updateAE|userCtx|uvLink|uvSnapshot|validateShelfName|vectorize|view2dToolCtx|viewCamera|viewClipPlane|viewFit|viewHeadOn|viewLookAt|viewManip|viewPlace|viewSet|visor|volumeAxis|vortex|waitCursor|warning|webBrowser|webBrowserPrefs|whatIs|window|windowPref|wire|wireContext|workspace|wrinkle|wrinkleContext|writeTake|xbmLangPathList|xform)\\b/,operator:[/\\+[+=]?|-[-=]?|&&|\\|\\||[<>]=|[*\\/!=]=?|[%^]/,{pattern:/(^|[^<])<(?!<)/,lookbehind:!0},{pattern:/(^|[^>])>(?!>)/,lookbehind:!0}],punctuation:/<<|>>|[.,:;?\\[\\](){}]/},Prism.languages.mel.code.inside.rest=Prism.languages.mel;\nPrism.languages.mizar={comment:/::.+/,keyword:/@proof\\b|\\b(?:according|aggregate|all|and|antonym|are|as|associativity|assume|asymmetry|attr|be|begin|being|by|canceled|case|cases|clusters?|coherence|commutativity|compatibility|connectedness|consider|consistency|constructors|contradiction|correctness|def|deffunc|define|definitions?|defpred|do|does|equals|end|environ|ex|exactly|existence|for|from|func|given|hence|hereby|holds|idempotence|identity|iff?|implies|involutiveness|irreflexivity|is|it|let|means|mode|non|not|notations?|now|of|or|otherwise|over|per|pred|prefix|projectivity|proof|provided|qua|reconsider|redefine|reduce|reducibility|reflexivity|registrations?|requirements|reserve|sch|schemes?|section|selector|set|sethood|st|struct|such|suppose|symmetry|synonym|take|that|the|then|theorems?|thesis|thus|to|transitivity|uniqueness|vocabular(?:y|ies)|when|where|with|wrt)\\b/,parameter:{pattern:/\\$(?:10|\\d)/,alias:\"variable\"},variable:/\\w+(?=:)/,number:/(?:\\b|-)\\d+\\b/,operator:/\\.\\.\\.|->|&|\\.?=/,punctuation:/\\(#|#\\)|[,:;\\[\\](){}]/};\nPrism.languages.monkey={string:/\"[^\"\\r\\n]*\"/,comment:[{pattern:/^#Rem\\s+[\\s\\S]*?^#End/im,greedy:!0},{pattern:/'.+/,greedy:!0}],preprocessor:{pattern:/(^[ \\t]*)#.+/m,lookbehind:!0,alias:\"comment\"},\"function\":/\\w+(?=\\()/,\"type-char\":{pattern:/(\\w)[?%#$]/,lookbehind:!0,alias:\"variable\"},number:{pattern:/((?:\\.\\.)?)(?:(?:\\b|\\B-\\.?|\\B\\.)\\d+(?:(?!\\.\\.)\\.\\d*)?|\\$[\\da-f]+)/i,lookbehind:!0},keyword:/\\b(?:Void|Strict|Public|Private|Property|Bool|Int|Float|String|Array|Object|Continue|Exit|Import|Extern|New|Self|Super|Try|Catch|Eachin|True|False|Extends|Abstract|Final|Select|Case|Default|Const|Local|Global|Field|Method|Function|Class|End|If|Then|Else|ElseIf|EndIf|While|Wend|Repeat|Until|Forever|For|To|Step|Next|Return|Module|Interface|Implements|Inline|Throw|Null)\\b/i,operator:/\\.\\.|<[=>]?|>=?|:?=|(?:[+\\-*\\/&~|]|\\b(?:Mod|Shl|Shr)\\b)=?|\\b(?:And|Not|Or)\\b/i,punctuation:/[.,:;()\\[\\]]/};\nPrism.languages.n4js=Prism.languages.extend(\"javascript\",{keyword:/\\b(?:any|Array|boolean|break|case|catch|class|const|constructor|continue|debugger|declare|default|delete|do|else|enum|export|extends|false|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|module|new|null|number|package|private|protected|public|return|set|static|string|super|switch|this|throw|true|try|typeof|var|void|while|with|yield)\\b/}),Prism.languages.insertBefore(\"n4js\",\"constant\",{annotation:{pattern:/@+\\w+/,alias:\"operator\"}}),Prism.languages.n4jsd=Prism.languages.n4js;\nPrism.languages.nasm={comment:/;.*$/m,string:/([\"'`])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,label:{pattern:/(^\\s*)[A-Za-z._?$][\\w.?$@~#]*:/m,lookbehind:!0,alias:\"function\"},keyword:[/\\[?BITS (?:16|32|64)\\]?/,{pattern:/(^\\s*)section\\s*[a-zA-Z.]+:?/im,lookbehind:!0},/(?:extern|global)[^;\\r\\n]*/i,/(?:CPU|FLOAT|DEFAULT).*$/m],register:{pattern:/\\b(?:st\\d|[xyz]mm\\d\\d?|[cdt]r\\d|r\\d\\d?[bwd]?|[er]?[abcd]x|[abcd][hl]|[er]?(?:bp|sp|si|di)|[cdefgs]s)\\b/i,alias:\"variable\"},number:/(?:\\b|(?=\\$))(?:0[hx][\\da-f]*\\.?[\\da-f]+(?:p[+-]?\\d+)?|\\d[\\da-f]+[hx]|\\$\\d[\\da-f]*|0[oq][0-7]+|[0-7]+[oq]|0[by][01]+|[01]+[by]|0[dt]\\d+|\\d*\\.?\\d+(?:\\.?e[+-]?\\d+)?[dt]?)\\b/i,operator:/[\\[\\]*+\\-\\/%<>=&|$!]/};\nPrism.languages.nginx=Prism.languages.extend(\"clike\",{comment:{pattern:/(^|[^\"{\\\\])#.*/,lookbehind:!0},keyword:/\\b(?:CONTENT_|DOCUMENT_|GATEWAY_|HTTP_|HTTPS|if_not_empty|PATH_|QUERY_|REDIRECT_|REMOTE_|REQUEST_|SCGI|SCRIPT_|SERVER_|http|events|accept_mutex|accept_mutex_delay|access_log|add_after_body|add_before_body|add_header|addition_types|aio|alias|allow|ancient_browser|ancient_browser_value|auth|auth_basic|auth_basic_user_file|auth_http|auth_http_header|auth_http_timeout|autoindex|autoindex_exact_size|autoindex_localtime|break|charset|charset_map|charset_types|chunked_transfer_encoding|client_body_buffer_size|client_body_in_file_only|client_body_in_single_buffer|client_body_temp_path|client_body_timeout|client_header_buffer_size|client_header_timeout|client_max_body_size|connection_pool_size|create_full_put_path|daemon|dav_access|dav_methods|debug_connection|debug_points|default_type|deny|devpoll_changes|devpoll_events|directio|directio_alignment|disable_symlinks|empty_gif|env|epoll_events|error_log|error_page|expires|fastcgi_buffer_size|fastcgi_buffers|fastcgi_busy_buffers_size|fastcgi_cache|fastcgi_cache_bypass|fastcgi_cache_key|fastcgi_cache_lock|fastcgi_cache_lock_timeout|fastcgi_cache_methods|fastcgi_cache_min_uses|fastcgi_cache_path|fastcgi_cache_purge|fastcgi_cache_use_stale|fastcgi_cache_valid|fastcgi_connect_timeout|fastcgi_hide_header|fastcgi_ignore_client_abort|fastcgi_ignore_headers|fastcgi_index|fastcgi_intercept_errors|fastcgi_keep_conn|fastcgi_max_temp_file_size|fastcgi_next_upstream|fastcgi_no_cache|fastcgi_param|fastcgi_pass|fastcgi_pass_header|fastcgi_read_timeout|fastcgi_redirect_errors|fastcgi_send_timeout|fastcgi_split_path_info|fastcgi_store|fastcgi_store_access|fastcgi_temp_file_write_size|fastcgi_temp_path|flv|geo|geoip_city|geoip_country|google_perftools_profiles|gzip|gzip_buffers|gzip_comp_level|gzip_disable|gzip_http_version|gzip_min_length|gzip_proxied|gzip_static|gzip_types|gzip_vary|if|if_modified_since|ignore_invalid_headers|image_filter|image_filter_buffer|image_filter_jpeg_quality|image_filter_sharpen|image_filter_transparency|imap_capabilities|imap_client_buffer|include|index|internal|ip_hash|keepalive|keepalive_disable|keepalive_requests|keepalive_timeout|kqueue_changes|kqueue_events|large_client_header_buffers|limit_conn|limit_conn_log_level|limit_conn_zone|limit_except|limit_rate|limit_rate_after|limit_req|limit_req_log_level|limit_req_zone|limit_zone|lingering_close|lingering_time|lingering_timeout|listen|location|lock_file|log_format|log_format_combined|log_not_found|log_subrequest|map|map_hash_bucket_size|map_hash_max_size|master_process|max_ranges|memcached_buffer_size|memcached_connect_timeout|memcached_next_upstream|memcached_pass|memcached_read_timeout|memcached_send_timeout|merge_slashes|min_delete_depth|modern_browser|modern_browser_value|mp4|mp4_buffer_size|mp4_max_buffer_size|msie_padding|msie_refresh|multi_accept|open_file_cache|open_file_cache_errors|open_file_cache_min_uses|open_file_cache_valid|open_log_file_cache|optimize_server_names|override_charset|pcre_jit|perl|perl_modules|perl_require|perl_set|pid|pop3_auth|pop3_capabilities|port_in_redirect|post_action|postpone_output|protocol|proxy|proxy_buffer|proxy_buffer_size|proxy_buffering|proxy_buffers|proxy_busy_buffers_size|proxy_cache|proxy_cache_bypass|proxy_cache_key|proxy_cache_lock|proxy_cache_lock_timeout|proxy_cache_methods|proxy_cache_min_uses|proxy_cache_path|proxy_cache_use_stale|proxy_cache_valid|proxy_connect_timeout|proxy_cookie_domain|proxy_cookie_path|proxy_headers_hash_bucket_size|proxy_headers_hash_max_size|proxy_hide_header|proxy_http_version|proxy_ignore_client_abort|proxy_ignore_headers|proxy_intercept_errors|proxy_max_temp_file_size|proxy_method|proxy_next_upstream|proxy_no_cache|proxy_pass|proxy_pass_error_message|proxy_pass_header|proxy_pass_request_body|proxy_pass_request_headers|proxy_read_timeout|proxy_redirect|proxy_redirect_errors|proxy_send_lowat|proxy_send_timeout|proxy_set_body|proxy_set_header|proxy_ssl_session_reuse|proxy_store|proxy_store_access|proxy_temp_file_write_size|proxy_temp_path|proxy_timeout|proxy_upstream_fail_timeout|proxy_upstream_max_fails|random_index|read_ahead|real_ip_header|recursive_error_pages|request_pool_size|reset_timedout_connection|resolver|resolver_timeout|return|rewrite|root|rtsig_overflow_events|rtsig_overflow_test|rtsig_overflow_threshold|rtsig_signo|satisfy|satisfy_any|secure_link_secret|send_lowat|send_timeout|sendfile|sendfile_max_chunk|server|server_name|server_name_in_redirect|server_names_hash_bucket_size|server_names_hash_max_size|server_tokens|set|set_real_ip_from|smtp_auth|smtp_capabilities|so_keepalive|source_charset|split_clients|ssi|ssi_silent_errors|ssi_types|ssi_value_length|ssl|ssl_certificate|ssl_certificate_key|ssl_ciphers|ssl_client_certificate|ssl_crl|ssl_dhparam|ssl_engine|ssl_prefer_server_ciphers|ssl_protocols|ssl_session_cache|ssl_session_timeout|ssl_verify_client|ssl_verify_depth|starttls|stub_status|sub_filter|sub_filter_once|sub_filter_types|tcp_nodelay|tcp_nopush|timeout|timer_resolution|try_files|types|types_hash_bucket_size|types_hash_max_size|underscores_in_headers|uninitialized_variable_warn|upstream|use|user|userid|userid_domain|userid_expires|userid_name|userid_p3p|userid_path|userid_service|valid_referers|variables_hash_bucket_size|variables_hash_max_size|worker_connections|worker_cpu_affinity|worker_priority|worker_processes|worker_rlimit_core|worker_rlimit_nofile|worker_rlimit_sigpending|working_directory|xclient|xml_entities|xslt_entities|xslt_stylesheet|xslt_types)\\b/i}),Prism.languages.insertBefore(\"nginx\",\"keyword\",{variable:/\\$[a-z_]+/i});\nPrism.languages.nim={comment:/#.*/,string:{pattern:/(?:(?:\\b(?!\\d)(?:\\w|\\\\x[8-9a-fA-F][0-9a-fA-F])+)?(?:\"\"\"[\\s\\S]*?\"\"\"(?!\")|\"(?:\\\\[\\s\\S]|\"\"|[^\"\\\\])*\")|'(?:\\\\(?:\\d+|x[\\da-fA-F]{2}|.)|[^'])')/,greedy:!0},number:/\\b(?:0[xXoObB][\\da-fA-F_]+|\\d[\\d_]*(?:(?!\\.\\.)\\.[\\d_]*)?(?:[eE][+-]?\\d[\\d_]*)?)(?:'?[iuf]\\d*)?/,keyword:/\\b(?:addr|as|asm|atomic|bind|block|break|case|cast|concept|const|continue|converter|defer|discard|distinct|do|elif|else|end|enum|except|export|finally|for|from|func|generic|if|import|include|interface|iterator|let|macro|method|mixin|nil|object|out|proc|ptr|raise|ref|return|static|template|try|tuple|type|using|var|when|while|with|without|yield)\\b/,\"function\":{pattern:/(?:(?!\\d)(?:\\w|\\\\x[8-9a-fA-F][0-9a-fA-F])+|`[^`\\r\\n]+`)\\*?(?:\\[[^\\]]+\\])?(?=\\s*\\()/,inside:{operator:/\\*$/}},ignore:{pattern:/`[^`\\r\\n]+`/,inside:{punctuation:/`/}},operator:{pattern:/(^|[({\\[](?=\\.\\.)|(?![({\\[]\\.).)(?:(?:[=+\\-*\\/<>@$~&%|!?^:\\\\]|\\.\\.|\\.(?![)}\\]]))+|\\b(?:and|div|of|or|in|is|isnot|mod|not|notin|shl|shr|xor)\\b)/m,lookbehind:!0},punctuation:/[({\\[]\\.|\\.[)}\\]]|[`(){}\\[\\],:]/};\nPrism.languages.nix={comment:/\\/\\*[\\s\\S]*?\\*\\/|#.*/,string:{pattern:/\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"|''(?:(?!'')[\\s\\S]|''(?:'|\\\\|\\$\\{))*''/,greedy:!0,inside:{interpolation:{pattern:/(^|(?:^|(?!'').)[^\\\\])\\$\\{(?:[^}]|\\{[^}]*\\})*}/,lookbehind:!0,inside:{antiquotation:{pattern:/^\\$(?=\\{)/,alias:\"variable\"}}}}},url:[/\\b(?:[a-z]{3,7}:\\/\\/)[\\w\\-+%~\\/.:#=?&]+/,{pattern:/([^\\/])(?:[\\w\\-+%~.:#=?&]*(?!\\/\\/)[\\w\\-+%~\\/.:#=?&])?(?!\\/\\/)\\/[\\w\\-+%~\\/.:#=?&]*/,lookbehind:!0}],antiquotation:{pattern:/\\$(?=\\{)/,alias:\"variable\"},number:/\\b\\d+\\b/,keyword:/\\b(?:assert|builtins|else|if|in|inherit|let|null|or|then|with)\\b/,\"function\":/\\b(?:abort|add|all|any|attrNames|attrValues|baseNameOf|compareVersions|concatLists|currentSystem|deepSeq|derivation|dirOf|div|elem(?:At)?|fetch(?:url|Tarball)|filter(?:Source)?|fromJSON|genList|getAttr|getEnv|hasAttr|hashString|head|import|intersectAttrs|is(?:Attrs|Bool|Function|Int|List|Null|String)|length|lessThan|listToAttrs|map|mul|parseDrvName|pathExists|read(?:Dir|File)|removeAttrs|replaceStrings|seq|sort|stringLength|sub(?:string)?|tail|throw|to(?:File|JSON|Path|String|XML)|trace|typeOf)\\b|\\bfoldl'\\B/,\"boolean\":/\\b(?:true|false)\\b/,operator:/[=!<>]=?|\\+\\+?|\\|\\||&&|\\/\\/|->?|[?@]/,punctuation:/[{}()[\\].,:;]/},Prism.languages.nix.string.inside.interpolation.inside.rest=Prism.languages.nix;\nPrism.languages.nsis={comment:{pattern:/(^|[^\\\\])(\\/\\*[\\s\\S]*?\\*\\/|[#;].*)/,lookbehind:!0},string:{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},keyword:{pattern:/(^\\s*)(?:Abort|Add(?:BrandingImage|Size)|AdvSplash|Allow(?:RootDirInstall|SkipFiles)|AutoCloseWindow|Banner|BG(?:Font|Gradient|Image)|BrandingText|BringToFront|Call(?:InstDLL)?|Caption|ChangeUI|CheckBitmap|ClearErrors|CompletedText|ComponentText|CopyFiles|CRCCheck|Create(?:Directory|Font|ShortCut)|Delete(?:INISec|INIStr|RegKey|RegValue)?|Detail(?:Print|sButtonText)|Dialer|Dir(?:Text|Var|Verify)|EnableWindow|Enum(?:RegKey|RegValue)|Exch|Exec(?:Shell(?:Wait)?|Wait)?|ExpandEnvStrings|File(?:BufSize|Close|ErrorText|Open|Read|ReadByte|ReadUTF16LE|ReadWord|WriteUTF16LE|Seek|Write|WriteByte|WriteWord)?|Find(?:Close|First|Next|Window)|FlushINI|Get(?:CurInstType|CurrentAddress|DlgItem|DLLVersion(?:Local)?|ErrorLevel|FileTime(?:Local)?|FullPathName|Function(?:Address|End)?|InstDirError|LabelAddress|TempFileName)|Goto|HideWindow|Icon|If(?:Abort|Errors|FileExists|RebootFlag|Silent)|InitPluginsDir|Install(?:ButtonText|Colors|Dir(?:RegKey)?)|InstProgressFlags|Inst(?:Type(?:GetText|SetText)?)|Int(?:64|Ptr)?CmpU?|Int(?:64)?Fmt|Int(?:Ptr)?Op|IsWindow|Lang(?:DLL|String)|License(?:BkColor|Data|ForceSelection|LangString|Text)|LoadLanguageFile|LockWindow|Log(?:Set|Text)|Manifest(?:DPIAware|SupportedOS)|Math|MessageBox|MiscButtonText|Name|Nop|ns(?:Dialogs|Exec)|NSISdl|OutFile|Page(?:Callbacks)?|PE(?:DllCharacteristics|SubsysVer)|Pop|Push|Quit|Read(?:EnvStr|INIStr|RegDWORD|RegStr)|Reboot|RegDLL|Rename|RequestExecutionLevel|ReserveFile|Return|RMDir|SearchPath|Section(?:End|GetFlags|GetInstTypes|GetSize|GetText|Group|In|SetFlags|SetInstTypes|SetSize|SetText)?|SendMessage|Set(?:AutoClose|BrandingImage|Compress|Compressor(?:DictSize)?|CtlColors|CurInstType|DatablockOptimize|DateSave|Details(?:Print|View)|ErrorLevel|Errors|FileAttributes|Font|OutPath|Overwrite|PluginUnload|RebootFlag|RegView|ShellVarContext|Silent)|Show(?:InstDetails|UninstDetails|Window)|Silent(?:Install|UnInstall)|Sleep|SpaceTexts|Splash|StartMenu|Str(?:CmpS?|Cpy|Len)|SubCaption|System|Unicode|Uninstall(?:ButtonText|Caption|Icon|SubCaption|Text)|UninstPage|UnRegDLL|UserInfo|Var|VI(?:AddVersionKey|FileVersion|ProductVersion)|VPatch|WindowIcon|Write(?:INIStr|Reg(?:Bin|DWORD|ExpandStr|MultiStr|None|Str)|Uninstaller)|XPStyle)\\b/m,lookbehind:!0},property:/\\b(?:admin|all|auto|both|colored|false|force|hide|highest|lastused|leave|listonly|none|normal|notset|off|on|open|print|show|silent|silentlog|smooth|textonly|true|user|ARCHIVE|FILE_(ATTRIBUTE_ARCHIVE|ATTRIBUTE_NORMAL|ATTRIBUTE_OFFLINE|ATTRIBUTE_READONLY|ATTRIBUTE_SYSTEM|ATTRIBUTE_TEMPORARY)|HK((CR|CU|LM)(32|64)?|DD|PD|U)|HKEY_(CLASSES_ROOT|CURRENT_CONFIG|CURRENT_USER|DYN_DATA|LOCAL_MACHINE|PERFORMANCE_DATA|USERS)|ID(ABORT|CANCEL|IGNORE|NO|OK|RETRY|YES)|MB_(ABORTRETRYIGNORE|DEFBUTTON1|DEFBUTTON2|DEFBUTTON3|DEFBUTTON4|ICONEXCLAMATION|ICONINFORMATION|ICONQUESTION|ICONSTOP|OK|OKCANCEL|RETRYCANCEL|RIGHT|RTLREADING|SETFOREGROUND|TOPMOST|USERICON|YESNO)|NORMAL|OFFLINE|READONLY|SHCTX|SHELL_CONTEXT|SYSTEM|TEMPORARY)\\b/,constant:/\\${[\\w\\.:\\^-]+}|\\$\\([\\w\\.:\\^-]+\\)/i,variable:/\\$\\w+/i,number:/\\b0x[\\dA-Fa-f]+\\b|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee]-?\\d+)?/,operator:/--?|\\+\\+?|<=?|>=?|==?=?|&&?|\\|\\|?|[?*\\/~^%]/,punctuation:/[{}[\\];(),.:]/,important:{pattern:/(^\\s*)!(?:addincludedir|addplugindir|appendfile|cd|define|delfile|echo|else|endif|error|execute|finalize|getdllversion|gettlbversion|ifdef|ifmacrodef|ifmacrondef|ifndef|if|include|insertmacro|macroend|macro|makensis|packhdr|pragma|searchparse|searchreplace|system|tempfile|undef|verbose|warning)\\b/im,lookbehind:!0}};\nPrism.languages.objectivec=Prism.languages.extend(\"c\",{keyword:/\\b(?:asm|typeof|inline|auto|break|case|char|const|continue|default|do|double|else|enum|extern|float|for|goto|if|int|long|register|return|short|signed|sizeof|static|struct|switch|typedef|union|unsigned|void|volatile|while|in|self|super)\\b|(?:@interface|@end|@implementation|@protocol|@class|@public|@protected|@private|@property|@try|@catch|@finally|@throw|@synthesize|@dynamic|@selector)\\b/,string:/(\"|')(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1|@\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,operator:/-[->]?|\\+\\+?|!=?|<>?=?|==?|&&?|\\|\\|?|[~^%?*\\/@]/});\nPrism.languages.ocaml={comment:/\\(\\*[\\s\\S]*?\\*\\)/,string:[{pattern:/\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,greedy:!0},{pattern:/(['`])(?:\\\\(?:\\d+|x[\\da-f]+|.)|(?!\\1)[^\\\\\\r\\n])\\1/i,greedy:!0}],number:/\\b(?:0x[\\da-f][\\da-f_]+|(?:0[bo])?\\d[\\d_]*\\.?[\\d_]*(?:e[+-]?[\\d_]+)?)/i,type:{pattern:/\\B['`]\\w*/,alias:\"variable\"},directive:{pattern:/\\B#\\w+/,alias:\"function\"},keyword:/\\b(?: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|prefix|private|rec|then|sig|struct|to|try|type|val|value|virtual|where|while|with)\\b/,\"boolean\":/\\b(?:false|true)\\b/,operator:/:=|[=<>@^|&+\\-*\\/$%!?~][!$%&*+\\-.\\/:<=>?@^|~]*|\\b(?:and|asr|land|lor|lxor|lsl|lsr|mod|nor|or)\\b/,punctuation:/[(){}\\[\\]|_.,:;]/};\n!function(E){E.languages.opencl=E.languages.extend(\"c\",{keyword:/\\b(?:__attribute__|(?:__)?(?:constant|global|kernel|local|private|read_only|read_write|write_only)|_cl_(?:command_queue|context|device_id|event|kernel|mem|platform_id|program|sampler)|auto|break|case|cl_(?:image_format|mem_fence_flags)|clk_event_t|complex|const|continue|default|do|(?:float|double)(?:16(?:x(?:1|16|2|4|8))?|1x(?:1|16|2|4|8)|2(?:x(?:1|16|2|4|8))?|3|4(?:x(?:1|16|2|4|8))?|8(?:x(?:1|16|2|4|8))?)?|else|enum|event_t|extern|for|goto|(?:u?(?:char|short|int|long)|half|quad|bool)(?:2|3|4|8|16)?|if|image(?:1d_(?:array_|buffer_)?t|2d_(?:array_(?:depth_|msaa_depth_|msaa_)?|depth_|msaa_depth_|msaa_)?t|3d_t)|imaginary|inline|intptr_t|ndrange_t|packed|pipe|ptrdiff_t|queue_t|register|reserve_id_t|restrict|return|sampler_t|signed|size_t|sizeof|static|struct|switch|typedef|uintptr_t|uniform|union|unsigned|void|volatile|while)\\b/,\"function-opencl-kernel\":{pattern:/\\b(?:abs(?:_diff)?|a?(?:cos|sin)(?:h|pi)?|add_sat|aligned|all|and|any|async(?:_work_group_copy|_work_group_strided_copy)?|atan(?:2?(?:pi)?|h)?|atom_(?:add|and|cmpxchg|dec|inc|max|min|or|sub|xchg|xor)|barrier|bitselect|cbrt|ceil|clamp|clz|copies|copysign|cross|degrees|distance|dot|endian|erf|erfc|exp(?:2|10)?|expm1|fabs|fast_(?:distance|length|normalize)|fdim|floor|fma|fmax|fmin|fract|frexp|fro|from|get_(?:global_(?:id|offset|size)|group_id|image_(?:channel_data_type|channel_order|depth|dim|height|width)|local(?:_id|_size)|num_groups|work_dim)|hadd|(?:half|native)_(?:cos|divide|exp(?:2|10)?|log(?:2|10)?|powr|recip|r?sqrt|sin|tan)|hypot|ilogb|is(?:equal|finite|greater(?:equal)?|inf|less(?:equal|greater)?|nan|normal|notequal|(?:un)?ordered)|ldexp|length|lgamma|lgamma_r|log(?:b|1p|2|10)?|mad(?:24|_hi|_sat)?|max|mem(?:_fence)?|min|mix|modf|mul24|mul_hi|nan|nextafter|normalize|pow[nr]?|prefetch|radians|read_(?:image)(?:f|h|u?i)|read_mem_fence|remainder|remquo|reqd_work_group_size|rhadd|rint|rootn|rotate|round|rsqrt|select|shuffle2?|sign|signbit|sincos|smoothstep|sqrt|step|sub_sat|tan|tanh|tanpi|tgamma|to|trunc|upsample|vec_(?:step|type_hint)|v(?:load|store)(?:_half)?(?:2|3|4|8|16)?|v(?:loada_half|storea?(?:_half)?)(?:2|3|4|8|16)?(?:_(?:rte|rtn|rtp|rtz))?|wait_group_events|work_group_size_hint|write_image(?:f|h|u?i)|write_mem_fence)\\b/,alias:\"function\"},\"constant-opencl-kernel\":{pattern:/\\b(?:CHAR_(?:BIT|MAX|MIN)|CLK_(?:ADDRESS_(?:CLAMP(?:_TO_EDGE)?|NONE|REPEAT)|FILTER_(?:LINEAR|NEAREST)|(?:LOCAL|GLOBAL)_MEM_FENCE|NORMALIZED_COORDS_(?:FALSE|TRUE))|CL_(?:BGRA|(?:HALF_)?FLOAT|INTENSITY|LUMINANCE|A?R?G?B?[Ax]?|(?:(?:UN)?SIGNED|[US]NORM)_(?:INT(?:8|16|32))|UNORM_(?:INT_101010|SHORT_(?:555|565)))|(?:DBL|FLT)_(?:DIG|EPSILON|MANT_DIG|(?:MIN|MAX)(?:(?:_10)?_EXP)?)|FLT_RADIX|HUGE_VALF|INFINITY|(?:INT|LONG|SCHAR|SHRT|UCHAR|UINT|ULONG)_(?:MAX|MIN)|MAXFLOAT|M_(?:[12]_PI|2_SQRTPI|E|LN(?:2|10)|LOG(?:10|2)E?|PI[24]?|SQRT(?:1_2|2))|NAN)\\b/,alias:\"constant\"}});var _={\"type-opencl-host\":{pattern:/\\b(?:cl_(?:GLenum|GLint|GLuin|addressing_mode|bitfield|bool|buffer_create_type|build_status|channel_(?:order|type)|(?:u?(?:char|short|int|long)|float|double)(?:2|3|4|8|16)?|command_(?:queue(?:_info|_properties)?|type)|context(?:_info|_properties)?|device_(?:exec_capabilities|fp_config|id|info|local_mem_type|mem_cache_type|type)|(?:event|sampler)(?:_info)?|filter_mode|half|image_info|kernel(?:_info|_work_group_info)?|map_flags|mem(?:_flags|_info|_object_type)?|platform_(?:id|info)|profiling_info|program(?:_build_info|_info)?))\\b/,alias:\"keyword\"},\"boolean-opencl-host\":{pattern:/\\bCL_(?:TRUE|FALSE)\\b/,alias:\"boolean\"},\"constant-opencl-host\":{pattern:/\\bCL_(?:A|ABGR|ADDRESS_(?:CLAMP(?:_TO_EDGE)?|MIRRORED_REPEAT|NONE|REPEAT)|ARGB|BGRA|BLOCKING|BUFFER_CREATE_TYPE_REGION|BUILD_(?:ERROR|IN_PROGRESS|NONE|PROGRAM_FAILURE|SUCCESS)|COMMAND_(?:ACQUIRE_GL_OBJECTS|BARRIER|COPY_(?:BUFFER(?:_RECT|_TO_IMAGE)?|IMAGE(?:_TO_BUFFER)?)|FILL_(?:BUFFER|IMAGE)|MAP(?:_BUFFER|_IMAGE)|MARKER|MIGRATE(?:_SVM)?_MEM_OBJECTS|NATIVE_KERNEL|NDRANGE_KERNEL|READ_(?:BUFFER(?:_RECT)?|IMAGE)|RELEASE_GL_OBJECTS|SVM_(?:FREE|MAP|MEMCPY|MEMFILL|UNMAP)|TASK|UNMAP_MEM_OBJECT|USER|WRITE_(?:BUFFER(?:_RECT)?|IMAGE))|COMPILER_NOT_AVAILABLE|COMPILE_PROGRAM_FAILURE|COMPLETE|CONTEXT_(?:DEVICES|INTEROP_USER_SYNC|NUM_DEVICES|PLATFORM|PROPERTIES|REFERENCE_COUNT)|DEPTH(?:_STENCIL)?|DEVICE_(?:ADDRESS_BITS|AFFINITY_DOMAIN_(?:L[1-4]_CACHE|NEXT_PARTITIONABLE|NUMA)|AVAILABLE|BUILT_IN_KERNELS|COMPILER_AVAILABLE|DOUBLE_FP_CONFIG|ENDIAN_LITTLE|ERROR_CORRECTION_SUPPORT|EXECUTION_CAPABILITIES|EXTENSIONS|GLOBAL_(?:MEM_(?:CACHELINE_SIZE|CACHE_SIZE|CACHE_TYPE|SIZE)|VARIABLE_PREFERRED_TOTAL_SIZE)|HOST_UNIFIED_MEMORY|IL_VERSION|IMAGE(?:2D_MAX_(?:HEIGHT|WIDTH)|3D_MAX_(?:DEPTH|HEIGHT|WIDTH)|_BASE_ADDRESS_ALIGNMENT|_MAX_ARRAY_SIZE|_MAX_BUFFER_SIZE|_PITCH_ALIGNMENT|_SUPPORT)|LINKER_AVAILABLE|LOCAL_MEM_SIZE|LOCAL_MEM_TYPE|MAX_(?:CLOCK_FREQUENCY|COMPUTE_UNITS|CONSTANT_ARGS|CONSTANT_BUFFER_SIZE|GLOBAL_VARIABLE_SIZE|MEM_ALLOC_SIZE|NUM_SUB_GROUPS|ON_DEVICE_(?:EVENTS|QUEUES)|PARAMETER_SIZE|PIPE_ARGS|READ_IMAGE_ARGS|READ_WRITE_IMAGE_ARGS|SAMPLERS|WORK_GROUP_SIZE|WORK_ITEM_DIMENSIONS|WORK_ITEM_SIZES|WRITE_IMAGE_ARGS)|MEM_BASE_ADDR_ALIGN|MIN_DATA_TYPE_ALIGN_SIZE|NAME|NATIVE_VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT)|NOT_(?:AVAILABLE|FOUND)|OPENCL_C_VERSION|PARENT_DEVICE|PARTITION_(?:AFFINITY_DOMAIN|BY_AFFINITY_DOMAIN|BY_COUNTS|BY_COUNTS_LIST_END|EQUALLY|FAILED|MAX_SUB_DEVICES|PROPERTIES|TYPE)|PIPE_MAX_(?:ACTIVE_RESERVATIONS|PACKET_SIZE)|PLATFORM|PREFERRED_(?:GLOBAL_ATOMIC_ALIGNMENT|INTEROP_USER_SYNC|LOCAL_ATOMIC_ALIGNMENT|PLATFORM_ATOMIC_ALIGNMENT|VECTOR_WIDTH_(?:CHAR|DOUBLE|FLOAT|HALF|INT|LONG|SHORT))|PRINTF_BUFFER_SIZE|PROFILE|PROFILING_TIMER_RESOLUTION|QUEUE_(?:ON_(?:DEVICE_(?:MAX_SIZE|PREFERRED_SIZE|PROPERTIES)|HOST_PROPERTIES)|PROPERTIES)|REFERENCE_COUNT|SINGLE_FP_CONFIG|SUB_GROUP_INDEPENDENT_FORWARD_PROGRESS|SVM_(?:ATOMICS|CAPABILITIES|COARSE_GRAIN_BUFFER|FINE_GRAIN_BUFFER|FINE_GRAIN_SYSTEM)|TYPE(?:_ACCELERATOR|_ALL|_CPU|_CUSTOM|_DEFAULT|_GPU)?|VENDOR(?:_ID)?|VERSION)|DRIVER_VERSION|EVENT_(?:COMMAND_(?:EXECUTION_STATUS|QUEUE|TYPE)|CONTEXT|REFERENCE_COUNT)|EXEC_(?:KERNEL|NATIVE_KERNEL|STATUS_ERROR_FOR_EVENTS_IN_WAIT_LIST)|FILTER_(?:LINEAR|NEAREST)|FLOAT|FP_(?:CORRECTLY_ROUNDED_DIVIDE_SQRT|DENORM|FMA|INF_NAN|ROUND_TO_INF|ROUND_TO_NEAREST|ROUND_TO_ZERO|SOFT_FLOAT)|GLOBAL|HALF_FLOAT|IMAGE_(?:ARRAY_SIZE|BUFFER|DEPTH|ELEMENT_SIZE|FORMAT|FORMAT_MISMATCH|FORMAT_NOT_SUPPORTED|HEIGHT|NUM_MIP_LEVELS|NUM_SAMPLES|ROW_PITCH|SLICE_PITCH|WIDTH)|INTENSITY|INVALID_(?:ARG_INDEX|ARG_SIZE|ARG_VALUE|BINARY|BUFFER_SIZE|BUILD_OPTIONS|COMMAND_QUEUE|COMPILER_OPTIONS|CONTEXT|DEVICE|DEVICE_PARTITION_COUNT|DEVICE_QUEUE|DEVICE_TYPE|EVENT|EVENT_WAIT_LIST|GLOBAL_OFFSET|GLOBAL_WORK_SIZE|GL_OBJECT|HOST_PTR|IMAGE_DESCRIPTOR|IMAGE_FORMAT_DESCRIPTOR|IMAGE_SIZE|KERNEL|KERNEL_ARGS|KERNEL_DEFINITION|KERNEL_NAME|LINKER_OPTIONS|MEM_OBJECT|MIP_LEVEL|OPERATION|PIPE_SIZE|PLATFORM|PROGRAM|PROGRAM_EXECUTABLE|PROPERTY|QUEUE_PROPERTIES|SAMPLER|VALUE|WORK_DIMENSION|WORK_GROUP_SIZE|WORK_ITEM_SIZE)|KERNEL_(?:ARG_(?:ACCESS_(?:NONE|QUALIFIER|READ_ONLY|READ_WRITE|WRITE_ONLY)|ADDRESS_(?:CONSTANT|GLOBAL|LOCAL|PRIVATE|QUALIFIER)|INFO_NOT_AVAILABLE|NAME|TYPE_(?:CONST|NAME|NONE|PIPE|QUALIFIER|RESTRICT|VOLATILE))|ATTRIBUTES|COMPILE_NUM_SUB_GROUPS|COMPILE_WORK_GROUP_SIZE|CONTEXT|EXEC_INFO_SVM_FINE_GRAIN_SYSTEM|EXEC_INFO_SVM_PTRS|FUNCTION_NAME|GLOBAL_WORK_SIZE|LOCAL_MEM_SIZE|LOCAL_SIZE_FOR_SUB_GROUP_COUNT|MAX_NUM_SUB_GROUPS|MAX_SUB_GROUP_SIZE_FOR_NDRANGE|NUM_ARGS|PREFERRED_WORK_GROUP_SIZE_MULTIPLE|PRIVATE_MEM_SIZE|PROGRAM|REFERENCE_COUNT|SUB_GROUP_COUNT_FOR_NDRANGE|WORK_GROUP_SIZE)|LINKER_NOT_AVAILABLE|LINK_PROGRAM_FAILURE|LOCAL|LUMINANCE|MAP_(?:FAILURE|READ|WRITE|WRITE_INVALIDATE_REGION)|MEM_(?:ALLOC_HOST_PTR|ASSOCIATED_MEMOBJECT|CONTEXT|COPY_HOST_PTR|COPY_OVERLAP|FLAGS|HOST_NO_ACCESS|HOST_PTR|HOST_READ_ONLY|HOST_WRITE_ONLY|KERNEL_READ_AND_WRITE|MAP_COUNT|OBJECT_(?:ALLOCATION_FAILURE|BUFFER|IMAGE1D|IMAGE1D_ARRAY|IMAGE1D_BUFFER|IMAGE2D|IMAGE2D_ARRAY|IMAGE3D|PIPE)|OFFSET|READ_ONLY|READ_WRITE|REFERENCE_COUNT|SIZE|SVM_ATOMICS|SVM_FINE_GRAIN_BUFFER|TYPE|USES_SVM_POINTER|USE_HOST_PTR|WRITE_ONLY)|MIGRATE_MEM_OBJECT_(?:CONTENT_UNDEFINED|HOST)|MISALIGNED_SUB_BUFFER_OFFSET|NONE|NON_BLOCKING|OUT_OF_(?:HOST_MEMORY|RESOURCES)|PIPE_(?:MAX_PACKETS|PACKET_SIZE)|PLATFORM_(?:EXTENSIONS|HOST_TIMER_RESOLUTION|NAME|PROFILE|VENDOR|VERSION)|PROFILING_(?:COMMAND_(?:COMPLETE|END|QUEUED|START|SUBMIT)|INFO_NOT_AVAILABLE)|PROGRAM_(?:BINARIES|BINARY_SIZES|BINARY_TYPE(?:_COMPILED_OBJECT|_EXECUTABLE|_LIBRARY|_NONE)?|BUILD_(?:GLOBAL_VARIABLE_TOTAL_SIZE|LOG|OPTIONS|STATUS)|CONTEXT|DEVICES|IL|KERNEL_NAMES|NUM_DEVICES|NUM_KERNELS|REFERENCE_COUNT|SOURCE)|QUEUED|QUEUE_(?:CONTEXT|DEVICE|DEVICE_DEFAULT|ON_DEVICE|ON_DEVICE_DEFAULT|OUT_OF_ORDER_EXEC_MODE_ENABLE|PROFILING_ENABLE|PROPERTIES|REFERENCE_COUNT|SIZE)|R|RA|READ_(?:ONLY|WRITE)_CACHE|RG|RGB|RGBA|RGBx|RGx|RUNNING|Rx|SAMPLER_(?:ADDRESSING_MODE|CONTEXT|FILTER_MODE|LOD_MAX|LOD_MIN|MIP_FILTER_MODE|NORMALIZED_COORDS|REFERENCE_COUNT)|(?:UN)?SIGNED_INT(?:8|16|32)|SNORM_INT(?:8|16)|SUBMITTED|SUCCESS|UNORM_INT(?:16|24|8|_101010|_101010_2)|UNORM_SHORT_(?:555|565)|VERSION_(?:1_0|1_1|1_2|2_0|2_1)|sBGRA|sRGB|sRGBA|sRGBx)\\b/,alias:\"constant\"},\"function-opencl-host\":{pattern:/\\bcl(?:BuildProgram|CloneKernel|CompileProgram|Create(?:Buffer|CommandQueue(?:WithProperties)?|Context|ContextFromType|Image|Image2D|Image3D|Kernel|KernelsInProgram|Pipe|ProgramWith(?:Binary|BuiltInKernels|IL|Source)|Sampler|SamplerWithProperties|SubBuffer|SubDevices|UserEvent)|Enqueue(?:(?:Barrier|Marker)(?:WithWaitList)?|Copy(?:Buffer(?:Rect|ToImage)?|Image(?:ToBuffer)?)|(?:Fill|Map)(?:Buffer|Image)|MigrateMemObjects|NDRangeKernel|NativeKernel|(?:Read|Write)(?:Buffer(?:Rect)?|Image)|SVM(?:Free|Map|MemFill|Memcpy|MigrateMem|Unmap)|Task|UnmapMemObject|WaitForEvents)|Finish|Flush|Get(?:CommandQueueInfo|ContextInfo|Device(?:AndHostTimer|IDs|Info)|Event(?:Profiling)?Info|ExtensionFunctionAddress(?:ForPlatform)?|HostTimer|ImageInfo|Kernel(?:ArgInfo|Info|SubGroupInfo|WorkGroupInfo)|MemObjectInfo|PipeInfo|Platform(?:IDs|Info)|Program(?:Build)?Info|SamplerInfo|SupportedImageFormats)|LinkProgram|(?:Release|Retain)(?:CommandQueue|Context|Device|Event|Kernel|MemObject|Program|Sampler)|SVM(?:Alloc|Free)|Set(?:CommandQueueProperty|DefaultDeviceCommandQueue|EventCallback|Kernel(?:Arg(?:SVMPointer)?|ExecInfo)|Kernel|MemObjectDestructorCallback|UserEventStatus)|Unload(?:Platform)?Compiler|WaitForEvents)\\b/,alias:\"function\"}};E.languages.insertBefore(\"c\",\"keyword\",_),_[\"type-opencl-host-c++\"]={pattern:/\\b(?:Buffer|BufferGL|BufferRenderGL|CommandQueue|Context|Device|DeviceCommandQueue|EnqueueArgs|Event|Image|Image1D|Image1DArray|Image1DBuffer|Image2D|Image2DArray|Image2DGL|Image3D|Image3DGL|ImageFormat|ImageGL|Kernel|KernelFunctor|LocalSpaceArg|Memory|NDRange|Pipe|Platform|Program|Sampler|SVMAllocator|SVMTraitAtomic|SVMTraitCoarse|SVMTraitFine|SVMTraitReadOnly|SVMTraitReadWrite|SVMTraitWriteOnly|UserEvent)\\b/,alias:\"keyword\"},E.languages.insertBefore(\"cpp\",\"keyword\",_)}(Prism);\nPrism.languages.oz={comment:/\\/\\*[\\s\\S]*?\\*\\/|%.*/,string:{pattern:/\"(?:[^\"\\\\]|\\\\[\\s\\S])*\"/,greedy:!0},atom:{pattern:/'(?:[^'\\\\]|\\\\[\\s\\S])*'/,greedy:!0,alias:\"builtin\"},keyword:/[$_]|\\[\\]|\\b(?:at|attr|case|catch|choice|class|cond|declare|define|dis|else(?:case|if)?|end|export|fail|false|feat|finally|from|fun|functor|if|import|in|local|lock|meth|nil|not|of|or|prepare|proc|prop|raise|require|self|skip|then|thread|true|try|unit)\\b/,\"function\":[/[a-z][A-Za-z\\d]*(?=\\()/,{pattern:/(\\{)[A-Z][A-Za-z\\d]*/,lookbehind:!0}],number:/\\b(?:0[bx][\\da-f]+|\\d+\\.?\\d*(?:e~?\\d+)?\\b)|&(?:[^\\\\]|\\\\(?:\\d{3}|.))/i,variable:/\\b[A-Z][A-Za-z\\d]*|`(?:[^`\\\\]|\\\\.)+`/,\"attr-name\":/\\w+(?=:)/,operator:/:(?:=|::?)|<[-:=]?|=(?:=|=?:?|\\\\=:?|!!?|[|#+\\-*\\/,~^@]|\\b(?:andthen|div|mod|orelse)\\b/,punctuation:/[\\[\\](){}.:;?]/};\nPrism.languages.parigp={comment:/\\/\\*[\\s\\S]*?\\*\\/|\\\\\\\\.*/,string:{pattern:/\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"/,greedy:!0},keyword:function(){var r=[\"breakpoint\",\"break\",\"dbg_down\",\"dbg_err\",\"dbg_up\",\"dbg_x\",\"forcomposite\",\"fordiv\",\"forell\",\"forpart\",\"forprime\",\"forstep\",\"forsubgroup\",\"forvec\",\"for\",\"iferr\",\"if\",\"local\",\"my\",\"next\",\"return\",\"until\",\"while\"];return r=r.map(function(r){return r.split(\"\").join(\" *\")}).join(\"|\"),RegExp(\"\\\\b(?:\"+r+\")\\\\b\")}(),\"function\":/\\w[\\w ]*?(?= *\\()/,number:{pattern:/((?:\\. *\\. *)?)(?:\\d(?: *\\d)*(?: *(?!\\. *\\.)\\.(?: *\\d)*)?|\\. *\\d(?: *\\d)*)(?: *e *[+-]? *\\d(?: *\\d)*)?/i,lookbehind:!0},operator:/\\. *\\.|[*\\/!](?: *=)?|%(?: *=|(?: *#)?(?: *')*)?|\\+(?: *[+=])?|-(?: *[-=>])?|<(?:(?: *<)?(?: *=)?| *>)?|>(?: *>)?(?: *=)?|=(?: *=){0,2}|\\\\(?: *\\/)?(?: *=)?|&(?: *&)?|\\| *\\||['#~^]/,punctuation:/[\\[\\]{}().,:;|]/};\nPrism.languages.parser=Prism.languages.extend(\"markup\",{keyword:{pattern:/(^|[^^])(?:\\^(?:case|eval|for|if|switch|throw)\\b|@(?:BASE|CLASS|GET(?:_DEFAULT)?|OPTIONS|SET_DEFAULT|USE)\\b)/,lookbehind:!0},variable:{pattern:/(^|[^^])\\B\\$(?:\\w+|(?=[.{]))(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,lookbehind:!0,inside:{punctuation:/\\.|:+/}},\"function\":{pattern:/(^|[^^])\\B[@^]\\w+(?:(?:\\.|::?)\\w+)*(?:\\.|::?)?/,lookbehind:!0,inside:{keyword:{pattern:/(^@)(?:GET_|SET_)/,lookbehind:!0},punctuation:/\\.|:+/}},escape:{pattern:/\\^(?:[$^;@()\\[\\]{}\"':]|#[a-f\\d]*)/i,alias:\"builtin\"},punctuation:/[\\[\\](){};]/}),Prism.languages.insertBefore(\"parser\",\"keyword\",{\"parser-comment\":{pattern:/(\\s)#.*/,lookbehind:!0,alias:\"comment\"},expression:{pattern:/(^|[^^])\\((?:[^()]|\\((?:[^()]|\\((?:[^()])*\\))*\\))*\\)/,greedy:!0,lookbehind:!0,inside:{string:{pattern:/(^|[^^])([\"'])(?:(?!\\2)[^^]|\\^[\\s\\S])*\\2/,lookbehind:!0},keyword:Prism.languages.parser.keyword,variable:Prism.languages.parser.variable,\"function\":Prism.languages.parser.function,\"boolean\":/\\b(?:true|false)\\b/,number:/\\b(?:0x[a-f\\d]+|\\d+\\.?\\d*(?:e[+-]?\\d+)?)\\b/i,escape:Prism.languages.parser.escape,operator:/[~+*\\/\\\\%]|!(?:\\|\\|?|=)?|&&?|\\|\\|?|==|<[<=]?|>[>=]?|-[fd]?|\\b(?:def|eq|ge|gt|in|is|le|lt|ne)\\b/,punctuation:Prism.languages.parser.punctuation}}}),Prism.languages.insertBefore(\"inside\",\"punctuation\",{expression:Prism.languages.parser.expression,keyword:Prism.languages.parser.keyword,variable:Prism.languages.parser.variable,\"function\":Prism.languages.parser.function,escape:Prism.languages.parser.escape,\"parser-punctuation\":{pattern:Prism.languages.parser.punctuation,alias:\"punctuation\"}},Prism.languages.parser.tag.inside[\"attr-value\"]);\nPrism.languages.pascal={comment:[/\\(\\*[\\s\\S]+?\\*\\)/,/\\{[\\s\\S]+?\\}/,/\\/\\/.*/],string:{pattern:/(?:'(?:''|[^'\\r\\n])*'|#[&$%]?[a-f\\d]+)+|\\^[a-z]/i,greedy:!0},keyword:[{pattern:/(^|[^&])\\b(?:absolute|array|asm|begin|case|const|constructor|destructor|do|downto|else|end|file|for|function|goto|if|implementation|inherited|inline|interface|label|nil|object|of|operator|packed|procedure|program|record|reintroduce|repeat|self|set|string|then|to|type|unit|until|uses|var|while|with)\\b/i,lookbehind:!0},{pattern:/(^|[^&])\\b(?:dispose|exit|false|new|true)\\b/i,lookbehind:!0},{pattern:/(^|[^&])\\b(?:class|dispinterface|except|exports|finalization|finally|initialization|inline|library|on|out|packed|property|raise|resourcestring|threadvar|try)\\b/i,lookbehind:!0},{pattern:/(^|[^&])\\b(?:absolute|abstract|alias|assembler|bitpacked|break|cdecl|continue|cppdecl|cvar|default|deprecated|dynamic|enumerator|experimental|export|external|far|far16|forward|generic|helper|implements|index|interrupt|iochecks|local|message|name|near|nodefault|noreturn|nostackframe|oldfpccall|otherwise|overload|override|pascal|platform|private|protected|public|published|read|register|reintroduce|result|safecall|saveregisters|softfloat|specialize|static|stdcall|stored|strict|unaligned|unimplemented|varargs|virtual|write)\\b/i,lookbehind:!0}],number:[/(?:[&%]\\d+|\\$[a-f\\d]+)/i,/\\b\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?/i],operator:[/\\.\\.|\\*\\*|:=|<[<=>]?|>[>=]?|[+\\-*\\/]=?|[@^=]/i,{pattern:/(^|[^&])\\b(?:and|as|div|exclude|in|include|is|mod|not|or|shl|shr|xor)\\b/,lookbehind:!0}],punctuation:/\\(\\.|\\.\\)|[()\\[\\]:;,.]/},Prism.languages.objectpascal=Prism.languages.pascal;\nPrism.languages.perl={comment:[{pattern:/(^\\s*)=\\w+[\\s\\S]*?=cut.*/m,lookbehind:!0},{pattern:/(^|[^\\\\$])#.*/,lookbehind:!0}],string:[{pattern:/\\b(?:q|qq|qx|qw)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,greedy:!0},{pattern:/\\b(?:q|qq|qx|qw)\\s+([a-zA-Z0-9])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,greedy:!0},{pattern:/\\b(?:q|qq|qx|qw)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)/,greedy:!0},{pattern:/\\b(?:q|qq|qx|qw)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}/,greedy:!0},{pattern:/\\b(?:q|qq|qx|qw)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]/,greedy:!0},{pattern:/\\b(?:q|qq|qx|qw)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>/,greedy:!0},{pattern:/(\"|`)(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,greedy:!0},{pattern:/'(?:[^'\\\\\\r\\n]|\\\\.)*'/,greedy:!0}],regex:[{pattern:/\\b(?:m|qr)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[msixpodualngc]*/,greedy:!0},{pattern:/\\b(?:m|qr)\\s+([a-zA-Z0-9])(?:(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1[msixpodualngc]*/,greedy:!0},{pattern:/\\b(?:m|qr)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[msixpodualngc]*/,greedy:!0},{pattern:/\\b(?:m|qr)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}[msixpodualngc]*/,greedy:!0},{pattern:/\\b(?:m|qr)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\][msixpodualngc]*/,greedy:!0},{pattern:/\\b(?:m|qr)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>[msixpodualngc]*/,greedy:!0},{pattern:/(^|[^-]\\b)(?:s|tr|y)\\s*([^a-zA-Z0-9\\s{(\\[<])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\\b)(?:s|tr|y)\\s+([a-zA-Z0-9])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\\b)(?:s|tr|y)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)\\s*\\((?:[^()\\\\]|\\\\[\\s\\S])*\\)[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\\b)(?:s|tr|y)\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}\\s*\\{(?:[^{}\\\\]|\\\\[\\s\\S])*\\}[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\\b)(?:s|tr|y)\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\]\\s*\\[(?:[^[\\]\\\\]|\\\\[\\s\\S])*\\][msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/(^|[^-]\\b)(?:s|tr|y)\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>\\s*<(?:[^<>\\\\]|\\\\[\\s\\S])*>[msixpodualngcer]*/,lookbehind:!0,greedy:!0},{pattern:/\\/(?:[^\\/\\\\\\r\\n]|\\\\.)*\\/[msixpodualngc]*(?=\\s*(?:$|[\\r\\n,.;})&|\\-+*~<>!?^]|(lt|gt|le|ge|eq|ne|cmp|not|and|or|xor|x)\\b))/,greedy:!0}],variable:[/[&*$@%]\\{\\^[A-Z]+\\}/,/[&*$@%]\\^[A-Z_]/,/[&*$@%]#?(?=\\{)/,/[&*$@%]#?(?:(?:::)*'?(?!\\d)[\\w$]+)+(?:::)*/i,/[&*$@%]\\d+/,/(?!%=)[$@%][!\"#$%&'()*+,\\-.\\/:;<=>?@[\\\\\\]^_`{|}~]/],filehandle:{pattern:/<(?![<=])\\S*>|\\b_\\b/,alias:\"symbol\"},vstring:{pattern:/v\\d+(?:\\.\\d+)*|\\d+(?:\\.\\d+){2,}/,alias:\"string\"},\"function\":{pattern:/sub [a-z0-9_]+/i,inside:{keyword:/sub/}},keyword:/\\b(?:any|break|continue|default|delete|die|do|else|elsif|eval|for|foreach|given|goto|if|last|local|my|next|our|package|print|redo|require|say|state|sub|switch|undef|unless|until|use|when|while)\\b/,number:/\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0b[01](?:_?[01])*|(?:\\d(?:_?\\d)*)?\\.?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)\\b/,operator:/-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b|\\+[+=]?|-[-=>]?|\\*\\*?=?|\\/\\/?=?|=[=~>]?|~[~=]?|\\|\\|?=?|&&?=?|<(?:=>?|<=?)?|>>?=?|![~=]?|[%^]=?|\\.(?:=|\\.\\.?)?|[\\\\?]|\\bx(?:=|\\b)|\\b(?:lt|gt|le|ge|eq|ne|cmp|not|and|or|xor)\\b/,punctuation:/[{}[\\];(),:]/};\n!function(e){e.languages.php=e.languages.extend(\"clike\",{keyword:/\\b(?:and|or|xor|array|as|break|case|cfunction|class|const|continue|declare|default|die|do|else|elseif|enddeclare|endfor|endforeach|endif|endswitch|endwhile|extends|for|foreach|function|include|include_once|global|if|new|return|static|switch|use|require|require_once|var|while|abstract|interface|public|implements|private|protected|parent|throw|null|echo|print|trait|namespace|final|yield|goto|instanceof|finally|try|catch)\\b/i,constant:/\\b[A-Z0-9_]{2,}\\b/,comment:{pattern:/(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,lookbehind:!0}}),e.languages.insertBefore(\"php\",\"string\",{\"shell-comment\":{pattern:/(^|[^\\\\])#.*/,lookbehind:!0,alias:\"comment\"}}),e.languages.insertBefore(\"php\",\"keyword\",{delimiter:{pattern:/\\?>|<\\?(?:php|=)?/i,alias:\"important\"},variable:/\\$+(?:\\w+\\b|(?={))/i,\"package\":{pattern:/(\\\\|namespace\\s+|use\\s+)[\\w\\\\]+/,lookbehind:!0,inside:{punctuation:/\\\\/}}}),e.languages.insertBefore(\"php\",\"operator\",{property:{pattern:/(->)[\\w]+/,lookbehind:!0}}),e.languages.insertBefore(\"php\",\"string\",{\"nowdoc-string\":{pattern:/<<<'([^']+)'(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?\\1;/,greedy:!0,alias:\"string\",inside:{delimiter:{pattern:/^<<<'[^']+'|[a-z_]\\w*;$/i,alias:\"symbol\",inside:{punctuation:/^<<<'?|[';]$/}}}},\"heredoc-string\":{pattern:/<<<(?:\"([^\"]+)\"(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?\\1;|([a-z_]\\w*)(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?\\2;)/i,greedy:!0,alias:\"string\",inside:{delimiter:{pattern:/^<<<(?:\"[^\"]+\"|[a-z_]\\w*)|[a-z_]\\w*;$/i,alias:\"symbol\",inside:{punctuation:/^<<<\"?|[\";]$/}},interpolation:null}},\"single-quoted-string\":{pattern:/'(?:\\\\[\\s\\S]|[^\\\\'])*'/,greedy:!0,alias:\"string\"},\"double-quoted-string\":{pattern:/\"(?:\\\\[\\s\\S]|[^\\\\\"])*\"/,greedy:!0,alias:\"string\",inside:{interpolation:null}}}),delete e.languages.php.string;var n={pattern:/{\\$(?:{(?:{[^{}]+}|[^{}]+)}|[^{}])+}|(^|[^\\\\{])\\$+(?:\\w+(?:\\[.+?]|->\\w+)*)/,lookbehind:!0,inside:{rest:e.languages.php}};e.languages.php[\"heredoc-string\"].inside.interpolation=n,e.languages.php[\"double-quoted-string\"].inside.interpolation=n,e.hooks.add(\"before-tokenize\",function(n){if(/(?:<\\?php|<\\?)/gi.test(n.code)){var i=/(?:<\\?php|<\\?)[\\s\\S]*?(?:\\?>|$)/gi;e.languages[\"markup-templating\"].buildPlaceholders(n,\"php\",i)}}),e.hooks.add(\"after-tokenize\",function(n){e.languages[\"markup-templating\"].tokenizePlaceholders(n,\"php\")})}(Prism);\nPrism.languages.insertBefore(\"php\",\"variable\",{\"this\":/\\$this\\b/,global:/\\$(?:_(?:SERVER|GET|POST|FILES|REQUEST|SESSION|ENV|COOKIE)|GLOBALS|HTTP_RAW_POST_DATA|argc|argv|php_errormsg|http_response_header)\\b/,scope:{pattern:/\\b[\\w\\\\]+::/,inside:{keyword:/static|self|parent/,punctuation:/::|\\\\/}}});\nPrism.languages.sql={comment:{pattern:/(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:--|\\/\\/|#).*)/,lookbehind:!0},string:{pattern:/(^|[^@\\\\])(\"|')(?:\\\\[\\s\\S]|(?!\\2)[^\\\\])*\\2/,greedy:!0,lookbehind:!0},variable:/@[\\w.$]+|@([\"'`])(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])+\\1/,\"function\":/\\b(?:AVG|COUNT|FIRST|FORMAT|LAST|LCASE|LEN|MAX|MID|MIN|MOD|NOW|ROUND|SUM|UCASE)(?=\\s*\\()/i,keyword:/\\b(?:ACTION|ADD|AFTER|ALGORITHM|ALL|ALTER|ANALYZE|ANY|APPLY|AS|ASC|AUTHORIZATION|AUTO_INCREMENT|BACKUP|BDB|BEGIN|BERKELEYDB|BIGINT|BINARY|BIT|BLOB|BOOL|BOOLEAN|BREAK|BROWSE|BTREE|BULK|BY|CALL|CASCADED?|CASE|CHAIN|CHAR(?:ACTER|SET)?|CHECK(?:POINT)?|CLOSE|CLUSTERED|COALESCE|COLLATE|COLUMNS?|COMMENT|COMMIT(?:TED)?|COMPUTE|CONNECT|CONSISTENT|CONSTRAINT|CONTAINS(?:TABLE)?|CONTINUE|CONVERT|CREATE|CROSS|CURRENT(?:_DATE|_TIME|_TIMESTAMP|_USER)?|CURSOR|CYCLE|DATA(?:BASES?)?|DATE(?:TIME)?|DAY|DBCC|DEALLOCATE|DEC|DECIMAL|DECLARE|DEFAULT|DEFINER|DELAYED|DELETE|DELIMITERS?|DENY|DESC|DESCRIBE|DETERMINISTIC|DISABLE|DISCARD|DISK|DISTINCT|DISTINCTROW|DISTRIBUTED|DO|DOUBLE|DROP|DUMMY|DUMP(?:FILE)?|DUPLICATE|ELSE(?:IF)?|ENABLE|ENCLOSED|END|ENGINE|ENUM|ERRLVL|ERRORS|ESCAPED?|EXCEPT|EXEC(?:UTE)?|EXISTS|EXIT|EXPLAIN|EXTENDED|FETCH|FIELDS|FILE|FILLFACTOR|FIRST|FIXED|FLOAT|FOLLOWING|FOR(?: EACH ROW)?|FORCE|FOREIGN|FREETEXT(?:TABLE)?|FROM|FULL|FUNCTION|GEOMETRY(?:COLLECTION)?|GLOBAL|GOTO|GRANT|GROUP|HANDLER|HASH|HAVING|HOLDLOCK|HOUR|IDENTITY(?:_INSERT|COL)?|IF|IGNORE|IMPORT|INDEX|INFILE|INNER|INNODB|INOUT|INSERT|INT|INTEGER|INTERSECT|INTERVAL|INTO|INVOKER|ISOLATION|ITERATE|JOIN|KEYS?|KILL|LANGUAGE|LAST|LEAVE|LEFT|LEVEL|LIMIT|LINENO|LINES|LINESTRING|LOAD|LOCAL|LOCK|LONG(?:BLOB|TEXT)|LOOP|MATCH(?:ED)?|MEDIUM(?:BLOB|INT|TEXT)|MERGE|MIDDLEINT|MINUTE|MODE|MODIFIES|MODIFY|MONTH|MULTI(?:LINESTRING|POINT|POLYGON)|NATIONAL|NATURAL|NCHAR|NEXT|NO|NONCLUSTERED|NULLIF|NUMERIC|OFF?|OFFSETS?|ON|OPEN(?:DATASOURCE|QUERY|ROWSET)?|OPTIMIZE|OPTION(?:ALLY)?|ORDER|OUT(?:ER|FILE)?|OVER|PARTIAL|PARTITION|PERCENT|PIVOT|PLAN|POINT|POLYGON|PRECEDING|PRECISION|PREPARE|PREV|PRIMARY|PRINT|PRIVILEGES|PROC(?:EDURE)?|PUBLIC|PURGE|QUICK|RAISERROR|READS?|REAL|RECONFIGURE|REFERENCES|RELEASE|RENAME|REPEAT(?:ABLE)?|REPLACE|REPLICATION|REQUIRE|RESIGNAL|RESTORE|RESTRICT|RETURNS?|REVOKE|RIGHT|ROLLBACK|ROUTINE|ROW(?:COUNT|GUIDCOL|S)?|RTREE|RULE|SAVE(?:POINT)?|SCHEMA|SECOND|SELECT|SERIAL(?:IZABLE)?|SESSION(?:_USER)?|SET(?:USER)?|SHARE|SHOW|SHUTDOWN|SIMPLE|SMALLINT|SNAPSHOT|SOME|SONAME|SQL|START(?:ING)?|STATISTICS|STATUS|STRIPED|SYSTEM_USER|TABLES?|TABLESPACE|TEMP(?:ORARY|TABLE)?|TERMINATED|TEXT(?:SIZE)?|THEN|TIME(?:STAMP)?|TINY(?:BLOB|INT|TEXT)|TOP?|TRAN(?:SACTIONS?)?|TRIGGER|TRUNCATE|TSEQUAL|TYPES?|UNBOUNDED|UNCOMMITTED|UNDEFINED|UNION|UNIQUE|UNLOCK|UNPIVOT|UNSIGNED|UPDATE(?:TEXT)?|USAGE|USE|USER|USING|VALUES?|VAR(?:BINARY|CHAR|CHARACTER|YING)|VIEW|WAITFOR|WARNINGS|WHEN|WHERE|WHILE|WITH(?: ROLLUP|IN)?|WORK|WRITE(?:TEXT)?|YEAR)\\b/i,\"boolean\":/\\b(?:TRUE|FALSE|NULL)\\b/i,number:/\\b0x[\\da-f]+\\b|\\b\\d+\\.?\\d*|\\B\\.\\d+\\b/i,operator:/[-+*\\/=%^~]|&&?|\\|\\|?|!=?|<(?:=>?|<|>)?|>[>=]?|\\b(?:AND|BETWEEN|IN|LIKE|NOT|OR|IS|DIV|REGEXP|RLIKE|SOUNDS LIKE|XOR)\\b/i,punctuation:/[;[\\]()`,.]/};\nPrism.languages.powershell={comment:[{pattern:/(^|[^`])<#[\\s\\S]*?#>/,lookbehind:!0},{pattern:/(^|[^`])#.*/,lookbehind:!0}],string:[{pattern:/\"(?:`[\\s\\S]|[^`\"])*\"/,greedy:!0,inside:{\"function\":{pattern:/(^|[^`])\\$\\((?:\\$\\(.*?\\)|(?!\\$\\()[^\\r\\n)])*\\)/,lookbehind:!0,inside:{}}}},{pattern:/'(?:[^']|'')*'/,greedy:!0}],namespace:/\\[[a-z](?:\\[(?:\\[[^\\]]*]|[^\\[\\]])*]|[^\\[\\]])*]/i,\"boolean\":/\\$(?:true|false)\\b/i,variable:/\\$\\w+\\b/i,\"function\":[/\\b(?:Add-(?:Computer|Content|History|Member|PSSnapin|Type)|Checkpoint-Computer|Clear-(?:Content|EventLog|History|Item|ItemProperty|Variable)|Compare-Object|Complete-Transaction|Connect-PSSession|ConvertFrom-(?:Csv|Json|StringData)|Convert-Path|ConvertTo-(?:Csv|Html|Json|Xml)|Copy-(?:Item|ItemProperty)|Debug-Process|Disable-(?:ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Disconnect-PSSession|Enable-(?:ComputerRestore|PSBreakpoint|PSRemoting|PSSessionConfiguration)|Enter-PSSession|Exit-PSSession|Export-(?:Alias|Clixml|Console|Csv|FormatData|ModuleMember|PSSession)|ForEach-Object|Format-(?:Custom|List|Table|Wide)|Get-(?:Alias|ChildItem|Command|ComputerRestorePoint|Content|ControlPanelItem|Culture|Date|Event|EventLog|EventSubscriber|FormatData|Help|History|Host|HotFix|Item|ItemProperty|Job|Location|Member|Module|Process|PSBreakpoint|PSCallStack|PSDrive|PSProvider|PSSession|PSSessionConfiguration|PSSnapin|Random|Service|TraceSource|Transaction|TypeData|UICulture|Unique|Variable|WmiObject)|Group-Object|Import-(?:Alias|Clixml|Csv|LocalizedData|Module|PSSession)|Invoke-(?:Command|Expression|History|Item|RestMethod|WebRequest|WmiMethod)|Join-Path|Limit-EventLog|Measure-(?:Command|Object)|Move-(?:Item|ItemProperty)|New-(?:Alias|Event|EventLog|Item|ItemProperty|Module|ModuleManifest|Object|PSDrive|PSSession|PSSessionConfigurationFile|PSSessionOption|PSTransportOption|Service|TimeSpan|Variable|WebServiceProxy)|Out-(?:Default|File|GridView|Host|Null|Printer|String)|Pop-Location|Push-Location|Read-Host|Receive-(?:Job|PSSession)|Register-(?:EngineEvent|ObjectEvent|PSSessionConfiguration|WmiEvent)|Remove-(?:Computer|Event|EventLog|Item|ItemProperty|Job|Module|PSBreakpoint|PSDrive|PSSession|PSSnapin|TypeData|Variable|WmiObject)|Rename-(?:Computer|Item|ItemProperty)|Reset-ComputerMachinePassword|Resolve-Path|Restart-(?:Computer|Service)|Restore-Computer|Resume-(?:Job|Service)|Save-Help|Select-(?:Object|String|Xml)|Send-MailMessage|Set-(?:Alias|Content|Date|Item|ItemProperty|Location|PSBreakpoint|PSDebug|PSSessionConfiguration|Service|StrictMode|TraceSource|Variable|WmiInstance)|Show-(?:Command|ControlPanelItem|EventLog)|Sort-Object|Split-Path|Start-(?:Job|Process|Service|Sleep|Transaction)|Stop-(?:Computer|Job|Process|Service)|Suspend-(?:Job|Service)|Tee-Object|Test-(?:ComputerSecureChannel|Connection|ModuleManifest|Path|PSSessionConfigurationFile)|Trace-Command|Unblock-File|Undo-Transaction|Unregister-(?:Event|PSSessionConfiguration)|Update-(?:FormatData|Help|List|TypeData)|Use-Transaction|Wait-(?:Event|Job|Process)|Where-Object|Write-(?:Debug|Error|EventLog|Host|Output|Progress|Verbose|Warning))\\b/i,/\\b(?:ac|cat|chdir|clc|cli|clp|clv|compare|copy|cp|cpi|cpp|cvpa|dbp|del|diff|dir|ebp|echo|epal|epcsv|epsn|erase|fc|fl|ft|fw|gal|gbp|gc|gci|gcs|gdr|gi|gl|gm|gp|gps|group|gsv|gu|gv|gwmi|iex|ii|ipal|ipcsv|ipsn|irm|iwmi|iwr|kill|lp|ls|measure|mi|mount|move|mp|mv|nal|ndr|ni|nv|ogv|popd|ps|pushd|pwd|rbp|rd|rdr|ren|ri|rm|rmdir|rni|rnp|rp|rv|rvpa|rwmi|sal|saps|sasv|sbp|sc|select|set|shcm|si|sl|sleep|sls|sort|sp|spps|spsv|start|sv|swmi|tee|trcm|type|write)\\b/i],keyword:/\\b(?:Begin|Break|Catch|Class|Continue|Data|Define|Do|DynamicParam|Else|ElseIf|End|Exit|Filter|Finally|For|ForEach|From|Function|If|InlineScript|Parallel|Param|Process|Return|Sequence|Switch|Throw|Trap|Try|Until|Using|Var|While|Workflow)\\b/i,operator:{pattern:/(\\W?)(?:!|-(eq|ne|gt|ge|lt|le|sh[lr]|not|b?(?:and|x?or)|(?:Not)?(?:Like|Match|Contains|In)|Replace|Join|is(?:Not)?|as)\\b|-[-=]?|\\+[+=]?|[*\\/%]=?)/i,lookbehind:!0},punctuation:/[|{}[\\];(),.]/},Prism.languages.powershell.string[0].inside.boolean=Prism.languages.powershell.boolean,Prism.languages.powershell.string[0].inside.variable=Prism.languages.powershell.variable,Prism.languages.powershell.string[0].inside.function.inside=Prism.languages.powershell;\nPrism.languages.processing=Prism.languages.extend(\"clike\",{keyword:/\\b(?:break|catch|case|class|continue|default|else|extends|final|for|if|implements|import|new|null|private|public|return|static|super|switch|this|try|void|while)\\b/,operator:/<[<=]?|>[>=]?|&&?|\\|\\|?|[%?]|[!=+\\-*\\/]=?/}),Prism.languages.insertBefore(\"processing\",\"number\",{constant:/\\b(?!XML\\b)[A-Z][A-Z\\d_]+\\b/,type:{pattern:/\\b(?:boolean|byte|char|color|double|float|int|XML|[A-Z]\\w*)\\b/,alias:\"variable\"}}),Prism.languages.processing[\"function\"].pattern=/\\w+(?=\\s*\\()/,Prism.languages.processing[\"class-name\"].alias=\"variable\";\nPrism.languages.prolog={comment:[/%.+/,/\\/\\*[\\s\\S]*?\\*\\//],string:{pattern:/([\"'])(?:\\1\\1|\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},builtin:/\\b(?:fx|fy|xf[xy]?|yfx?)\\b/,variable:/\\b[A-Z_]\\w*/,\"function\":/\\b[a-z]\\w*(?:(?=\\()|\\/\\d+)/,number:/\\b\\d+\\.?\\d*/,operator:/[:\\\\=><\\-?*@\\/;+^|!$.]+|\\b(?:is|mod|not|xor)\\b/,punctuation:/[(){}\\[\\],]/};\nPrism.languages.properties={comment:/^[ \\t]*[#!].*$/m,\"attr-value\":{pattern:/(^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+?(?: *[=:] *| ))(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n])+/m,lookbehind:!0},\"attr-name\":/^[ \\t]*(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\s:=])+?(?= *[=:] *| )/m,punctuation:/[=:]/};\nPrism.languages.protobuf=Prism.languages.extend(\"clike\",{keyword:/\\b(?:package|import|message|enum)\\b/,builtin:/\\b(?:required|repeated|optional|reserved)\\b/,primitive:{pattern:/\\b(?:double|float|int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|bool|string|bytes)\\b/,alias:\"symbol\"}});\n!function(e){e.languages.pug={comment:{pattern:/(^([\\t ]*))\\/\\/.*(?:(?:\\r?\\n|\\r)\\2[\\t ]+.+)*/m,lookbehind:!0},\"multiline-script\":{pattern:/(^([\\t ]*)script\\b.*\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+/m,lookbehind:!0,inside:{rest:e.languages.javascript}},filter:{pattern:/(^([\\t ]*)):.+(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+/m,lookbehind:!0,inside:{\"filter-name\":{pattern:/^:[\\w-]+/,alias:\"variable\"}}},\"multiline-plain-text\":{pattern:/(^([\\t ]*)[\\w\\-#.]+\\.[\\t ]*)(?:(?:\\r?\\n|\\r(?!\\n))(?:\\2[\\t ]+.+|\\s*?(?=\\r?\\n|\\r)))+/m,lookbehind:!0},markup:{pattern:/(^[\\t ]*)<.+/m,lookbehind:!0,inside:{rest:e.languages.markup}},doctype:{pattern:/((?:^|\\n)[\\t ]*)doctype(?: .+)?/,lookbehind:!0},\"flow-control\":{pattern:/(^[\\t ]*)(?:if|unless|else|case|when|default|each|while)\\b(?: .+)?/m,lookbehind:!0,inside:{each:{pattern:/^each .+? in\\b/,inside:{keyword:/\\b(?:each|in)\\b/,punctuation:/,/}},branch:{pattern:/^(?:if|unless|else|case|when|default|while)\\b/,alias:\"keyword\"},rest:e.languages.javascript}},keyword:{pattern:/(^[\\t ]*)(?:block|extends|include|append|prepend)\\b.+/m,lookbehind:!0},mixin:[{pattern:/(^[\\t ]*)mixin .+/m,lookbehind:!0,inside:{keyword:/^mixin/,\"function\":/\\w+(?=\\s*\\(|\\s*$)/,punctuation:/[(),.]/}},{pattern:/(^[\\t ]*)\\+.+/m,lookbehind:!0,inside:{name:{pattern:/^\\+\\w+/,alias:\"function\"},rest:e.languages.javascript}}],script:{pattern:/(^[\\t ]*script(?:(?:&[^(]+)?\\([^)]+\\))*[\\t ]+).+/m,lookbehind:!0,inside:{rest:e.languages.javascript}},\"plain-text\":{pattern:/(^[\\t ]*(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?[\\t ]+).+/m,lookbehind:!0},tag:{pattern:/(^[\\t ]*)(?!-)[\\w\\-#.]*[\\w\\-](?:(?:&[^(]+)?\\([^)]+\\))*\\/?:?/m,lookbehind:!0,inside:{attributes:[{pattern:/&[^(]+\\([^)]+\\)/,inside:{rest:e.languages.javascript}},{pattern:/\\([^)]+\\)/,inside:{\"attr-value\":{pattern:/(=\\s*)(?:\\{[^}]*\\}|[^,)\\r\\n]+)/,lookbehind:!0,inside:{rest:e.languages.javascript}},\"attr-name\":/[\\w-]+(?=\\s*!?=|\\s*[,)])/,punctuation:/[!=(),]+/}}],punctuation:/:/}},code:[{pattern:/(^[\\t ]*(?:-|!?=)).+/m,lookbehind:!0,inside:{rest:e.languages.javascript}}],punctuation:/[.\\-!=|]+/};for(var t=\"(^([\\\\t ]*)):{{filter_name}}(?:(?:\\\\r?\\\\n|\\\\r(?!\\\\n))(?:\\\\2[\\\\t ]+.+|\\\\s*?(?=\\\\r?\\\\n|\\\\r)))+\",n=[{filter:\"atpl\",language:\"twig\"},{filter:\"coffee\",language:\"coffeescript\"},\"ejs\",\"handlebars\",\"hogan\",\"less\",\"livescript\",\"markdown\",\"mustache\",\"plates\",{filter:\"sass\",language:\"scss\"},\"stylus\",\"swig\"],a={},i=0,r=n.length;r>i;i++){var s=n[i];s=\"string\"==typeof s?{filter:s,language:s}:s,e.languages[s.language]&&(a[\"filter-\"+s.filter]={pattern:RegExp(t.replace(\"{{filter_name}}\",s.filter),\"m\"),lookbehind:!0,inside:{\"filter-name\":{pattern:/^:[\\w-]+/,alias:\"variable\"},rest:e.languages[s.language]}})}e.languages.insertBefore(\"pug\",\"filter\",a)}(Prism);\n!function(e){e.languages.puppet={heredoc:[{pattern:/(@\\(\"([^\"\\r\\n\\/):]+)\"(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r))*?[ \\t]*\\|?[ \\t]*-?[ \\t]*\\2/,lookbehind:!0,alias:\"string\",inside:{punctuation:/(?=\\S).*\\S(?= *$)/}},{pattern:/(@\\(([^\"\\r\\n\\/):]+)(?:\\/[nrts$uL]*)?\\).*(?:\\r?\\n|\\r))(?:.*(?:\\r?\\n|\\r))*?[ \\t]*\\|?[ \\t]*-?[ \\t]*\\2/,lookbehind:!0,greedy:!0,alias:\"string\",inside:{punctuation:/(?=\\S).*\\S(?= *$)/}},{pattern:/@\\(\"?(?:[^\"\\r\\n\\/):]+)\"?(?:\\/[nrts$uL]*)?\\)/,alias:\"string\",inside:{punctuation:{pattern:/(\\().+?(?=\\))/,lookbehind:!0}}}],\"multiline-comment\":{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0,greedy:!0,alias:\"comment\"},regex:{pattern:/((?:\\bnode\\s+|[~=\\(\\[\\{,]\\s*|[=+]>\\s*|^\\s*))\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/(?:[imx]+\\b|\\B)/,lookbehind:!0,greedy:!0,inside:{\"extended-regex\":{pattern:/^\\/(?:[^\\/\\\\]|\\\\[\\s\\S])+\\/[im]*x[im]*$/,inside:{comment:/#.*/}}}},comment:{pattern:/(^|[^\\\\])#.*/,lookbehind:!0,greedy:!0},string:{pattern:/([\"'])(?:\\$\\{(?:[^'\"}]|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}|(?!\\1)[^\\\\]|\\\\[\\s\\S])*\\1/,greedy:!0,inside:{\"double-quoted\":{pattern:/^\"[\\s\\S]*\"$/,inside:{}}}},variable:{pattern:/\\$(?:::)?\\w+(?:::\\w+)*/,inside:{punctuation:/::/}},\"attr-name\":/(?:\\w+|\\*)(?=\\s*=>)/,\"function\":[{pattern:/(\\.)(?!\\d)\\w+/,lookbehind:!0},/\\b(?:contain|debug|err|fail|include|info|notice|realize|require|tag|warning)\\b|\\b(?!\\d)\\w+(?=\\()/],number:/\\b(?:0x[a-f\\d]+|\\d+(?:\\.\\d+)?(?:e-?\\d+)?)\\b/i,\"boolean\":/\\b(?:true|false)\\b/,keyword:/\\b(?:application|attr|case|class|consumes|default|define|else|elsif|function|if|import|inherits|node|private|produces|type|undef|unless)\\b/,datatype:{pattern:/\\b(?:Any|Array|Boolean|Callable|Catalogentry|Class|Collection|Data|Default|Enum|Float|Hash|Integer|NotUndef|Numeric|Optional|Pattern|Regexp|Resource|Runtime|Scalar|String|Struct|Tuple|Type|Undef|Variant)\\b/,alias:\"symbol\"},operator:/=[=~>]?|![=~]?|<(?:<\\|?|[=~|-])?|>[>=]?|->?|~>|\\|>?>?|[*\\/%+?]|\\b(?:and|in|or)\\b/,punctuation:/[\\[\\]{}().,;]|:+/};var n=[{pattern:/(^|[^\\\\])\\$\\{(?:[^'\"{}]|\\{[^}]*\\}|([\"'])(?:(?!\\2)[^\\\\]|\\\\[\\s\\S])*\\2)+\\}/,lookbehind:!0,inside:{\"short-variable\":{pattern:/(^\\$\\{)(?!\\w+\\()(?:::)?\\w+(?:::\\w+)*/,lookbehind:!0,alias:\"variable\",inside:{punctuation:/::/}},delimiter:{pattern:/^\\$/,alias:\"variable\"},rest:e.languages.puppet}},{pattern:/(^|[^\\\\])\\$(?:::)?\\w+(?:::\\w+)*/,lookbehind:!0,alias:\"variable\",inside:{punctuation:/::/}}];e.languages.puppet.heredoc[0].inside.interpolation=n,e.languages.puppet.string.inside[\"double-quoted\"].inside.interpolation=n}(Prism);\n!function(e){e.languages.pure={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0},{pattern:/(^|[^\\\\:])\\/\\/.*/,lookbehind:!0},/#!.+/],\"inline-lang\":{pattern:/%<[\\s\\S]+?%>/,greedy:!0,inside:{lang:{pattern:/(^%< *)-\\*-.+?-\\*-/,lookbehind:!0,alias:\"comment\"},delimiter:{pattern:/^%<.*|%>$/,alias:\"punctuation\"}}},string:{pattern:/\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,greedy:!0},number:{pattern:/((?:\\.\\.)?)(?:\\b(?:inf|nan)\\b|\\b0x[\\da-f]+|(?:\\b(?:0b)?\\d+(?:\\.\\d)?|\\B\\.\\d)\\d*(?:e[+-]?\\d+)?L?)/i,lookbehind:!0},keyword:/\\b(?:ans|break|bt|case|catch|cd|clear|const|def|del|dump|else|end|exit|extern|false|force|help|if|infix[lr]?|interface|let|ls|mem|namespace|nonfix|NULL|of|otherwise|outfix|override|postfix|prefix|private|public|pwd|quit|run|save|show|stats|then|throw|trace|true|type|underride|using|when|with)\\b/,\"function\":/\\b(?:abs|add_(?:(?:fundef|interface|macdef|typedef)(?:_at)?|addr|constdef|vardef)|all|any|applp?|arity|bigintp?|blob(?:_crc|_size|p)?|boolp?|byte_(?:matrix|pointer)|byte_c?string(?:_pointer)?|calloc|cat|catmap|ceil|char[ps]?|check_ptrtag|chr|clear_sentry|clearsym|closurep?|cmatrixp?|cols?|colcat(?:map)?|colmap|colrev|colvector(?:p|seq)?|complex(?:_float_(?:matrix|pointer)|_matrix(?:_view)?|_pointer|p)?|conj|cookedp?|cst|cstring(?:_(?:dup|list|vector))?|curry3?|cyclen?|del_(?:constdef|fundef|interface|macdef|typedef|vardef)|delete|diag(?:mat)?|dim|dmatrixp?|do|double(?:_matrix(?:_view)?|_pointer|p)?|dowith3?|drop|dropwhile|eval(?:cmd)?|exactp|filter|fix|fixity|flip|float(?:_matrix|_pointer)|floor|fold[lr]1?|frac|free|funp?|functionp?|gcd|get(?:_(?:byte|constdef|double|float|fundef|int(?:64)?|interface(?:_typedef)?|long|macdef|pointer|ptrtag|short|sentry|string|typedef|vardef))?|globsym|hash|head|id|im|imatrixp?|index|inexactp|infp|init|insert|int(?:_matrix(?:_view)?|_pointer|p)?|int64_(?:matrix|pointer)|integerp?|iteraten?|iterwhile|join|keys?|lambdap?|last(?:err(?:pos)?)?|lcd|list[2p]?|listmap|make_ptrtag|malloc|map|matcat|matrixp?|max|member|min|nanp|nargs|nmatrixp?|null|numberp?|ord|pack(?:ed)?|pointer(?:_cast|_tag|_type|p)?|pow|pred|ptrtag|put(?:_(?:byte|double|float|int(?:64)?|long|pointer|short|string))?|rationalp?|re|realp?|realloc|recordp?|redim|reduce(?:_with)?|refp?|repeatn?|reverse|rlistp?|round|rows?|rowcat(?:map)?|rowmap|rowrev|rowvector(?:p|seq)?|same|scan[lr]1?|sentry|sgn|short_(?:matrix|pointer)|slice|smatrixp?|sort|split|str|strcat|stream|stride|string(?:_(?:dup|list|vector)|p)?|subdiag(?:mat)?|submat|subseq2?|substr|succ|supdiag(?:mat)?|symbolp?|tail|take|takewhile|thunkp?|transpose|trunc|tuplep?|typep|ubyte|uint(?:64)?|ulong|uncurry3?|unref|unzip3?|update|ushort|vals?|varp?|vector(?:p|seq)?|void|zip3?|zipwith3?)\\b/,special:{pattern:/\\b__[a-z]+__\\b/i,alias:\"builtin\"},operator:/(?=\\b_|[^_])[!\"#$%&'*+,\\-.\\/:<=>?@\\\\^_`|~\\u00a1-\\u00bf\\u00d7-\\u00f7\\u20d0-\\u2bff]+|\\b(?:and|div|mod|not|or)\\b/,punctuation:/[(){}\\[\\];,|]/};var t=[\"c\",{lang:\"c++\",alias:\"cpp\"},\"fortran\",\"ats\",\"dsp\"],a=\"%< *-\\\\*- *{lang}\\\\d* *-\\\\*-[\\\\s\\\\S]+?%>\";t.forEach(function(t){var r=t;if(\"string\"!=typeof t&&(r=t.alias,t=t.lang),e.languages[r]){var i={};i[\"inline-lang-\"+r]={pattern:RegExp(a.replace(\"{lang}\",t.replace(/([.+*?\\/\\\\(){}\\[\\]])/g,\"\\\\$1\")),\"i\"),inside:e.util.clone(e.languages.pure[\"inline-lang\"].inside)},i[\"inline-lang-\"+r].inside.rest=e.util.clone(e.languages[r]),e.languages.insertBefore(\"pure\",\"inline-lang\",i)}}),e.languages.c&&(e.languages.pure[\"inline-lang\"].inside.rest=e.util.clone(e.languages.c))}(Prism);\nPrism.languages.python={comment:{pattern:/(^|[^\\\\])#.*/,lookbehind:!0},\"triple-quoted-string\":{pattern:/(\"\"\"|''')[\\s\\S]+?\\1/,greedy:!0,alias:\"string\"},string:{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},\"function\":{pattern:/((?:^|\\s)def[ \\t]+)[a-zA-Z_]\\w*(?=\\s*\\()/g,lookbehind:!0},\"class-name\":{pattern:/(\\bclass\\s+)\\w+/i,lookbehind:!0},keyword:/\\b(?:as|assert|async|await|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|nonlocal|pass|print|raise|return|try|while|with|yield)\\b/,builtin:/\\b(?:__import__|abs|all|any|apply|ascii|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|file|filter|float|format|frozenset|getattr|globals|hasattr|hash|help|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|memoryview|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b/,\"boolean\":/\\b(?:True|False|None)\\b/,number:/(?:\\b(?=\\d)|\\B(?=\\.))(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*\\.?\\d*|\\.\\d+)(?:e[+-]?\\d+)?j?\\b/i,operator:/[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:or|and|not)\\b/,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.q={string:/\"(?:\\\\.|[^\"\\\\\\r\\n])*\"/,comment:[{pattern:/([\\t )\\]}])\\/.*/,lookbehind:!0,greedy:!0},{pattern:/(^|\\r?\\n|\\r)\\/[\\t ]*(?:(?:\\r?\\n|\\r)(?:.*(?:\\r?\\n|\\r))*?(?:\\\\(?=[\\t ]*(?:\\r?\\n|\\r))|$)|\\S.*)/,lookbehind:!0,greedy:!0},{pattern:/^\\\\[\\t ]*(?:\\r?\\n|\\r)[\\s\\S]+/m,greedy:!0},{pattern:/^#!.+/m,greedy:!0}],symbol:/`(?::\\S+|[\\w.]*)/,datetime:{pattern:/0N[mdzuvt]|0W[dtz]|\\d{4}\\.\\d\\d(?:m|\\.\\d\\d(?:T(?:\\d\\d(?::\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?)?)?)?[dz]?)|\\d\\d:\\d\\d(?::\\d\\d(?:[.:]\\d\\d\\d)?)?[uvt]?/,alias:\"number\"},number:/\\b(?![01]:)(?:0[wn]|0W[hj]?|0N[hje]?|0x[\\da-fA-F]+|\\d+\\.?\\d*(?:e[+-]?\\d+)?[hjfeb]?)/,keyword:/\\\\\\w+\\b|\\b(?:abs|acos|aj0?|all|and|any|asc|asin|asof|atan|attr|avgs?|binr?|by|ceiling|cols|cor|cos|count|cov|cross|csv|cut|delete|deltas|desc|dev|differ|distinct|div|do|dsave|ej|enlist|eval|except|exec|exit|exp|fby|fills|first|fkeys|flip|floor|from|get|getenv|group|gtime|hclose|hcount|hdel|hopen|hsym|iasc|identity|idesc|if|ij|in|insert|inter|inv|keys?|last|like|list|ljf?|load|log|lower|lsq|ltime|ltrim|mavg|maxs?|mcount|md5|mdev|med|meta|mins?|mmax|mmin|mmu|mod|msum|neg|next|not|null|or|over|parse|peach|pj|plist|prds?|prev|prior|rand|rank|ratios|raze|read0|read1|reciprocal|reval|reverse|rload|rotate|rsave|rtrim|save|scan|scov|sdev|select|set|setenv|show|signum|sin|sqrt|ssr?|string|sublist|sums?|sv|svar|system|tables|tan|til|trim|txf|type|uj|ungroup|union|update|upper|upsert|value|var|views?|vs|wavg|where|while|within|wj1?|wsum|ww|xasc|xbar|xcols?|xdesc|xexp|xgroup|xkey|xlog|xprev|xrank)\\b/,adverb:{pattern:/['\\/\\\\]:?|\\beach\\b/,alias:\"function\"},verb:{pattern:/(?:\\B\\.\\B|\\b[01]:|<[=>]?|>=?|[:+\\-*%,!?_~=|$&#@^]):?/,alias:\"operator\"},punctuation:/[(){}\\[\\];.]/};\nPrism.languages.qore=Prism.languages.extend(\"clike\",{comment:{pattern:/(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|(?:\\/\\/|#).*)/,lookbehind:!0},string:{pattern:/(\"|')(\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1/,greedy:!0},variable:/\\$(?!\\d)\\w+\\b/,keyword:/\\b(?:abstract|any|assert|binary|bool|boolean|break|byte|case|catch|char|class|code|const|continue|data|default|do|double|else|enum|extends|final|finally|float|for|goto|hash|if|implements|import|inherits|instanceof|int|interface|long|my|native|new|nothing|null|object|our|own|private|reference|rethrow|return|short|soft(?:int|float|number|bool|string|date|list)|static|strictfp|string|sub|super|switch|synchronized|this|throw|throws|transient|try|void|volatile|while)\\b/,number:/\\b(?:0b[01]+|0x[\\da-f]*\\.?[\\da-fp\\-]+|\\d*\\.?\\d+e?\\d*[df]|\\d*\\.?\\d+)\\b/i,\"boolean\":/\\b(?:true|false)\\b/i,operator:{pattern:/(^|[^.])(?:\\+[+=]?|-[-=]?|[!=](?:==?|~)?|>>?=?|<(?:=>?|<=?)?|&[&=]?|\\|[|=]?|[*\\/%^]=?|[~?])/,lookbehind:!0},\"function\":/\\$?\\b(?!\\d)\\w+(?=\\()/});\nPrism.languages.r={comment:/#.*/,string:{pattern:/(['\"])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},\"percent-operator\":{pattern:/%[^%\\s]*%/,alias:\"operator\"},\"boolean\":/\\b(?:TRUE|FALSE)\\b/,ellipsis:/\\.\\.(?:\\.|\\d+)/,number:[/\\b(?:NaN|Inf)\\b/,/(?:\\b0x[\\dA-Fa-f]+(?:\\.\\d*)?|\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[EePp][+-]?\\d+)?[iL]?/],keyword:/\\b(?:if|else|repeat|while|function|for|in|next|break|NULL|NA|NA_integer_|NA_real_|NA_complex_|NA_character_)\\b/,operator:/->?>?|<(?:=|=!]=?|::?|&&?|\\|\\|?|[+*\\/^$@~]/,punctuation:/[(){}\\[\\],;]/};\n!function(t){var n=t.util.clone(t.languages.javascript);t.languages.jsx=t.languages.extend(\"markup\",n),t.languages.jsx.tag.pattern=/<\\/?(?:[\\w.:-]+\\s*(?:\\s+(?:[\\w.:-]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s{'\">=]+|\\{(?:\\{(?:\\{[^}]*\\}|[^{}])*\\}|[^{}])+\\}))?|\\{\\.{3}[a-z_$][\\w$]*(?:\\.[a-z_$][\\w$]*)*\\}))*\\s*\\/?)?>/i,t.languages.jsx.tag.inside.tag.pattern=/^<\\/?[^\\s>\\/]*/i,t.languages.jsx.tag.inside[\"attr-value\"].pattern=/=(?!\\{)(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">]+)/i,t.languages.insertBefore(\"inside\",\"attr-name\",{spread:{pattern:/\\{\\.{3}[a-z_$][\\w$]*(?:\\.[a-z_$][\\w$]*)*\\}/,inside:{punctuation:/\\.{3}|[{}.]/,\"attr-value\":/\\w+/}}},t.languages.jsx.tag),t.languages.insertBefore(\"inside\",\"attr-value\",{script:{pattern:/=(\\{(?:\\{(?:\\{[^}]*\\}|[^}])*\\}|[^}])+\\})/i,inside:{\"script-punctuation\":{pattern:/^=(?={)/,alias:\"punctuation\"},rest:t.languages.jsx},alias:\"language-javascript\"}},t.languages.jsx.tag);var e=function(t){return t?\"string\"==typeof t?t:\"string\"==typeof t.content?t.content:t.content.map(e).join(\"\"):\"\"},a=function(n){for(var s=[],g=0;g0&&s[s.length-1].tagName===e(o.content[0].content[1])&&s.pop():\"/>\"===o.content[o.content.length-1].content||s.push({tagName:e(o.content[0].content[1]),openedBraces:0}):s.length>0&&\"punctuation\"===o.type&&\"{\"===o.content?s[s.length-1].openedBraces++:s.length>0&&s[s.length-1].openedBraces>0&&\"punctuation\"===o.type&&\"}\"===o.content?s[s.length-1].openedBraces--:i=!0),(i||\"string\"==typeof o)&&s.length>0&&0===s[s.length-1].openedBraces){var p=e(o);g0&&(\"string\"==typeof n[g-1]||\"plain-text\"===n[g-1].type)&&(p=e(n[g-1])+p,n.splice(g-1,1),g--),n[g]=new t.Token(\"plain-text\",p,null,p)}o.content&&\"string\"!=typeof o.content&&a(o.content)}};t.hooks.add(\"after-tokenize\",function(t){(\"jsx\"===t.language||\"tsx\"===t.language)&&a(t.tokens)})}(Prism);\nPrism.languages.typescript=Prism.languages.extend(\"javascript\",{keyword:/\\b(?:as|async|await|break|case|catch|class|const|continue|debugger|default|delete|do|else|enum|export|extends|finally|for|from|function|get|if|implements|import|in|instanceof|interface|let|new|null|of|package|private|protected|public|return|set|static|super|switch|this|throw|try|typeof|var|void|while|with|yield|module|declare|constructor|namespace|abstract|require|type)\\b/,builtin:/\\b(?:string|Function|any|number|boolean|Array|symbol|console)\\b/}),Prism.languages.ts=Prism.languages.typescript;\nPrism.languages.renpy={comment:{pattern:/(^|[^\\\\])#.+/,lookbehind:!0},string:{pattern:/(\"\"\"|''')[\\s\\S]+?\\1|(\"|')(?:\\\\.|(?!\\2)[^\\\\\\r\\n])*\\2|(?:^#?(?:(?:[0-9a-fA-F]{2}){3}|(?:[0-9a-fA-F]){3})$)/m,greedy:!0},\"function\":/[a-z_]\\w*(?=\\()/i,property:/\\b(?:insensitive|idle|hover|selected_idle|selected_hover|background|position|alt|xpos|ypos|pos|xanchor|yanchor|anchor|xalign|yalign|align|xcenter|ycenter|xofsset|yoffset|ymaximum|maximum|xmaximum|xminimum|yminimum|minimum|xsize|ysizexysize|xfill|yfill|area|antialias|black_color|bold|caret|color|first_indent|font|size|italic|justify|kerning|language|layout|line_leading|line_overlap_split|line_spacing|min_width|newline_indent|outlines|rest_indent|ruby_style|slow_cps|slow_cps_multiplier|strikethrough|text_align|underline|hyperlink_functions|vertical|hinting|foreground|left_margin|xmargin|top_margin|bottom_margin|ymargin|left_padding|right_padding|xpadding|top_padding|bottom_padding|ypadding|size_group|child|hover_sound|activate_sound|mouse|focus_mask|keyboard_focus|bar_vertical|bar_invert|bar_resizing|left_gutter|right_gutter|top_gutter|bottom_gutter|left_bar|right_bar|top_bar|bottom_bar|thumb|thumb_shadow|thumb_offset|unscrollable|spacing|first_spacing|box_reverse|box_wrap|order_reverse|fit_first|ysize|thumbnail_width|thumbnail_height|help|text_ypos|text_xpos|idle_color|hover_color|selected_idle_color|selected_hover_color|insensitive_color|alpha|insensitive_background|hover_background|zorder|value|width|xadjustment|xanchoraround|xaround|xinitial|xoffset|xzoom|yadjustment|yanchoraround|yaround|yinitial|yzoom|zoom|ground|height|text_style|text_y_fudge|selected_insensitive|has_sound|has_music|has_voice|focus|hovered|image_style|length|minwidth|mousewheel|offset|prefix|radius|range|right_margin|rotate|rotate_pad|developer|screen_width|screen_height|window_title|name|version|windows_icon|default_fullscreen|default_text_cps|default_afm_time|main_menu_music|sample_sound|enter_sound|exit_sound|save_directory|enter_transition|exit_transition|intra_transition|main_game_transition|game_main_transition|end_splash_transition|end_game_transition|after_load_transition|window_show_transition|window_hide_transition|adv_nvl_transition|nvl_adv_transition|enter_yesno_transition|exit_yesno_transition|enter_replay_transition|exit_replay_transition|say_attribute_transition|directory_name|executable_name|include_update|window_icon|modal|google_play_key|google_play_salt|drag_name|drag_handle|draggable|dragged|droppable|dropped|narrator_menu|action|default_afm_enable|version_name|version_tuple|inside|fadeout|fadein|layers|layer_clipping|linear|scrollbars|side_xpos|side_ypos|side_spacing|edgescroll|drag_joined|drag_raise|drop_shadow|drop_shadow_color|subpixel|easein|easeout|time|crop|auto|update|get_installed_packages|can_update|UpdateVersion|Update|overlay_functions|translations|window_left_padding|show_side_image|show_two_window)\\b/,tag:/\\b(?:label|image|menu|[hv]box|frame|text|imagemap|imagebutton|bar|vbar|screen|textbutton|buttoscreenn|fixed|grid|input|key|mousearea|side|timer|viewport|window|hotspot|hotbar|self|button|drag|draggroup|tag|mm_menu_frame|nvl|block|parallel)\\b|\\$/,keyword:/\\b(?:as|assert|break|class|continue|def|del|elif|else|except|exec|finally|for|from|global|if|import|in|is|lambda|pass|print|raise|return|try|while|yield|adjustment|alignaround|allow|angle|around|box_layout|cache|changed|child_size|clicked|clipping|corner1|corner2|default|delay|exclude|scope|slow|slow_abortable|slow_done|sound|style_group|substitute|suffix|transform_anchor|transpose|unhovered|config|theme|mm_root|gm_root|rounded_window|build|disabled_text|disabled|widget_selected|widget_text|widget_hover|widget|updater|behind|call|expression|hide|init|jump|onlayer|python|renpy|scene|set|show|transform|play|queue|stop|pause|define|window|repeat|contains|choice|on|function|event|animation|clockwise|counterclockwise|circles|knot|null|None|random|has|add|use|fade|dissolve|style|store|id|voice|center|left|right|less_rounded|music|movie|clear|persistent|ui)\\b/,\"boolean\":/\\b(?:[Tt]rue|[Ff]alse)\\b/,number:/(?:\\b(?:0[bo])?(?:(?:\\d|0x[\\da-f])[\\da-f]*\\.?\\d*)|\\B\\.\\d+)(?:e[+-]?\\d+)?j?/i,operator:/[-+%=]=?|!=|\\*\\*?=?|\\/\\/?=?|<[<=>]?|>[=>]?|[&|^~]|\\b(?:or|and|not|with|at)\\b/,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.reason=Prism.languages.extend(\"clike\",{comment:{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0},string:{pattern:/\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\\\\\\r\\n\"])*\"/,greedy:!0},\"class-name\":/\\b[A-Z]\\w*/,keyword:/\\b(?:and|as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|method|module|mutable|new|nonrec|object|of|open|or|private|rec|sig|struct|switch|then|to|try|type|val|virtual|when|while|with)\\b/,operator:/\\.{3}|:[:=]|=(?:==?|>)?|<=?|>=?|[|^?'#!~`]|[+\\-*\\/]\\.?|\\b(?:mod|land|lor|lxor|lsl|lsr|asr)\\b/}),Prism.languages.insertBefore(\"reason\",\"class-name\",{character:{pattern:/'(?:\\\\x[\\da-f]{2}|\\\\o[0-3][0-7][0-7]|\\\\\\d{3}|\\\\.|[^'\\\\\\r\\n])'/,alias:\"string\"},constructor:{pattern:/\\b[A-Z]\\w*\\b(?!\\s*\\.)/,alias:\"variable\"},label:{pattern:/\\b[a-z]\\w*(?=::)/,alias:\"symbol\"}}),delete Prism.languages.reason.function;\nPrism.languages.rest={table:[{pattern:/(\\s*)(?:\\+[=-]+)+\\+(?:\\r?\\n|\\r)(?:\\1(?:[+|].+)+[+|](?:\\r?\\n|\\r))+\\1(?:\\+[=-]+)+\\+/,lookbehind:!0,inside:{punctuation:/\\||(?:\\+[=-]+)+\\+/}},{pattern:/(\\s*)(?:=+ +)+=+(?:(?:\\r?\\n|\\r)\\1.+)+(?:\\r?\\n|\\r)\\1(?:=+ +)+=+(?=(?:\\r?\\n|\\r){2}|\\s*$)/,lookbehind:!0,inside:{punctuation:/[=-]+/}}],\"substitution-def\":{pattern:/(^\\s*\\.\\. )\\|(?:[^|\\s](?:[^|]*[^|\\s])?)\\| [^:]+::/m,lookbehind:!0,inside:{substitution:{pattern:/^\\|(?:[^|\\s]|[^|\\s][^|]*[^|\\s])\\|/,alias:\"attr-value\",inside:{punctuation:/^\\||\\|$/}},directive:{pattern:/( +)[^:]+::/,lookbehind:!0,alias:\"function\",inside:{punctuation:/::$/}}}},\"link-target\":[{pattern:/(^\\s*\\.\\. )\\[[^\\]]+\\]/m,lookbehind:!0,alias:\"string\",inside:{punctuation:/^\\[|\\]$/}},{pattern:/(^\\s*\\.\\. )_(?:`[^`]+`|(?:[^:\\\\]|\\\\.)+):/m,lookbehind:!0,alias:\"string\",inside:{punctuation:/^_|:$/}}],directive:{pattern:/(^\\s*\\.\\. )[^:]+::/m,lookbehind:!0,alias:\"function\",inside:{punctuation:/::$/}},comment:{pattern:/(^\\s*\\.\\.)(?:(?: .+)?(?:(?:\\r?\\n|\\r).+)+| .+)(?=(?:\\r?\\n|\\r){2}|$)/m,lookbehind:!0},title:[{pattern:/^(([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+)(?:\\r?\\n|\\r).+(?:\\r?\\n|\\r)\\1$/m,inside:{punctuation:/^[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+|[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,important:/.+/}},{pattern:/(^|(?:\\r?\\n|\\r){2}).+(?:\\r?\\n|\\r)([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2+(?=\\r?\\n|\\r|$)/,lookbehind:!0,inside:{punctuation:/[!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]+$/,important:/.+/}}],hr:{pattern:/((?:\\r?\\n|\\r){2})([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\2{3,}(?=(?:\\r?\\n|\\r){2})/,lookbehind:!0,alias:\"punctuation\"},field:{pattern:/(^\\s*):[^:\\r\\n]+:(?= )/m,lookbehind:!0,alias:\"attr-name\"},\"command-line-option\":{pattern:/(^\\s*)(?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?(?:, (?:[+-][a-z\\d]|(?:--|\\/)[a-z\\d-]+)(?:[ =](?:[a-z][\\w-]*|<[^<>]+>))?)*(?=(?:\\r?\\n|\\r)? {2,}\\S)/im,lookbehind:!0,alias:\"symbol\"},\"literal-block\":{pattern:/::(?:\\r?\\n|\\r){2}([ \\t]+).+(?:(?:\\r?\\n|\\r)\\1.+)*/,inside:{\"literal-block-punctuation\":{pattern:/^::/,alias:\"punctuation\"}}},\"quoted-literal-block\":{pattern:/::(?:\\r?\\n|\\r){2}([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~]).*(?:(?:\\r?\\n|\\r)\\1.*)*/,inside:{\"literal-block-punctuation\":{pattern:/^(?:::|([!\"#$%&'()*+,\\-.\\/:;<=>?@\\[\\\\\\]^_`{|}~])\\1*)/m,alias:\"punctuation\"}}},\"list-bullet\":{pattern:/(^\\s*)(?:[*+\\-ā€¢ā€£āƒ]|\\(?(?:\\d+|[a-z]|[ivxdclm]+)\\)|(?:\\d+|[a-z]|[ivxdclm]+)\\.)(?= )/im,lookbehind:!0,alias:\"punctuation\"},\"doctest-block\":{pattern:/(^\\s*)>>> .+(?:(?:\\r?\\n|\\r).+)*/m,lookbehind:!0,inside:{punctuation:/^>>>/}},inline:[{pattern:/(^|[\\s\\-:\\/'\"<(\\[{])(?::[^:]+:`.*?`|`.*?`:[^:]+:|(\\*\\*?|``?|\\|)(?!\\s).*?[^\\s]\\2(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$))/m,lookbehind:!0,inside:{bold:{pattern:/(^\\*\\*).+(?=\\*\\*$)/,lookbehind:!0},italic:{pattern:/(^\\*).+(?=\\*$)/,lookbehind:!0},\"inline-literal\":{pattern:/(^``).+(?=``$)/,lookbehind:!0,alias:\"symbol\"},role:{pattern:/^:[^:]+:|:[^:]+:$/,alias:\"function\",inside:{punctuation:/^:|:$/}},\"interpreted-text\":{pattern:/(^`).+(?=`$)/,lookbehind:!0,alias:\"attr-value\"},substitution:{pattern:/(^\\|).+(?=\\|$)/,lookbehind:!0,alias:\"attr-value\"},punctuation:/\\*\\*?|``?|\\|/}}],link:[{pattern:/\\[[^\\]]+\\]_(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/,alias:\"string\",inside:{punctuation:/^\\[|\\]_$/}},{pattern:/(?:\\b[a-z\\d](?:[_.:+]?[a-z\\d]+)*_?_|`[^`]+`_?_|_`[^`]+`)(?=[\\s\\-.,:;!?\\\\\\/'\")\\]}]|$)/i,alias:\"string\",inside:{punctuation:/^_?`|`$|`?_?_$/}}],punctuation:{pattern:/(^\\s*)(?:\\|(?= |$)|(?:---?|—|\\.\\.|__)(?= )|\\.\\.$)/m,lookbehind:!0}};\nPrism.languages.rip={comment:/#.*/,keyword:/(?:=>|->)|\\b(?:class|if|else|switch|case|return|exit|try|catch|finally|raise)\\b/,builtin:/@|\\bSystem\\b/,\"boolean\":/\\b(?:true|false)\\b/,date:/\\b\\d{4}-\\d{2}-\\d{2}\\b/,time:/\\b\\d{2}:\\d{2}:\\d{2}\\b/,datetime:/\\b\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}\\b/,character:/\\B`[^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]\\b/,regex:{pattern:/(^|[^\\/])\\/(?!\\/)(\\[.+?]|\\\\.|[^\\/\\\\\\r\\n])+\\/(?=\\s*($|[\\r\\n,.;})]))/,lookbehind:!0,greedy:!0},symbol:/:[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/,string:{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0},number:/[+-]?(?:(?:\\d+\\.\\d+)|(?:\\d+))/,punctuation:/(?:\\.{2,3})|[`,.:;=\\/\\\\()<>\\[\\]{}]/,reference:/[^\\d\\s`'\",.:;#\\/\\\\()<>\\[\\]{}][^\\s`'\",.:;#\\/\\\\()<>\\[\\]{}]*/};\nPrism.languages.roboconf={comment:/#.*/,keyword:{pattern:/(^|\\s)(?:(?:facet|instance of)(?=[ \\t]+[\\w-]+[ \\t]*\\{)|(?:external|import)\\b)/,lookbehind:!0},component:{pattern:/[\\w-]+(?=[ \\t]*\\{)/,alias:\"variable\"},property:/[\\w.-]+(?=[ \\t]*:)/,value:{pattern:/(=[ \\t]*)[^,;]+/,lookbehind:!0,alias:\"attr-value\"},optional:{pattern:/\\(optional\\)/,alias:\"builtin\"},wildcard:{pattern:/(\\.)\\*/,lookbehind:!0,alias:\"operator\"},punctuation:/[{},.;:=]/};\n!function(e){e.languages.crystal=e.languages.extend(\"ruby\",{keyword:[/\\b(?:abstract|alias|as|asm|begin|break|case|class|def|do|else|elsif|end|ensure|enum|extend|for|fun|if|include|instance_sizeof|lib|macro|module|next|of|out|pointerof|private|protected|rescue|return|require|select|self|sizeof|struct|super|then|type|typeof|uninitialized|union|unless|until|when|while|with|yield|__DIR__|__END_LINE__|__FILE__|__LINE__)\\b/,{pattern:/(\\.\\s*)(?:is_a|responds_to)\\?/,lookbehind:!0}],number:/\\b(?:0b[01_]*[01]|0o[0-7_]*[0-7]|0x[\\da-fA-F_]*[\\da-fA-F]|(?:\\d(?:[\\d_]*\\d)?)(?:\\.[\\d_]*\\d)?(?:[eE][+-]?[\\d_]*\\d)?)(?:_(?:[uif](?:8|16|32|64))?)?\\b/}),e.languages.insertBefore(\"crystal\",\"string\",{attribute:{pattern:/@\\[.+?\\]/,alias:\"attr-name\",inside:{delimiter:{pattern:/^@\\[|\\]$/,alias:\"tag\"},rest:e.languages.crystal}},expansion:[{pattern:/\\{\\{.+?\\}\\}/,inside:{delimiter:{pattern:/^\\{\\{|\\}\\}$/,alias:\"tag\"},rest:e.languages.crystal}},{pattern:/\\{%.+?%\\}/,inside:{delimiter:{pattern:/^\\{%|%\\}$/,alias:\"tag\"},rest:e.languages.crystal}}]})}(Prism);\nPrism.languages.rust={comment:[{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0},{pattern:/(^|[^\\\\:])\\/\\/.*/,lookbehind:!0}],string:[{pattern:/b?r(#*)\"(?:\\\\.|(?!\"\\1)[^\\\\\\r\\n])*\"\\1/,greedy:!0},{pattern:/b?\"(?:\\\\.|[^\\\\\\r\\n\"])*\"/,greedy:!0}],\"char\":{pattern:/b?'(?:\\\\(?:x[0-7][\\da-fA-F]|u{(?:[\\da-fA-F]_*){1,6}|.)|[^\\\\\\r\\n\\t'])'/,alias:\"string\"},\"lifetime-annotation\":{pattern:/'[^\\s>']+/,alias:\"symbol\"},keyword:/\\b(?:abstract|alignof|as|be|box|break|const|continue|crate|do|else|enum|extern|false|final|fn|for|if|impl|in|let|loop|match|mod|move|mut|offsetof|once|override|priv|pub|pure|ref|return|sizeof|static|self|struct|super|true|trait|type|typeof|unsafe|unsized|use|virtual|where|while|yield)\\b/,attribute:{pattern:/#!?\\[.+?\\]/,greedy:!0,alias:\"attr-name\"},\"function\":[/\\w+(?=\\s*\\()/,/\\w+!(?=\\s*\\(|\\[)/],\"macro-rules\":{pattern:/\\w+!/,alias:\"function\"},number:/\\b(?:0x[\\dA-Fa-f](?:_?[\\dA-Fa-f])*|0o[0-7](?:_?[0-7])*|0b[01](?:_?[01])*|(\\d(?:_?\\d)*)?\\.?\\d(?:_?\\d)*(?:[Ee][+-]?\\d+)?)(?:_?(?:[iu](?:8|16|32|64)?|f32|f64))?\\b/,\"closure-params\":{pattern:/\\|[^|]*\\|(?=\\s*[{-])/,inside:{punctuation:/[|:,]/,operator:/[&*]/}},punctuation:/[{}[\\];(),:]|\\.+|->/,operator:/[-+*\\/%!^]=?|=[=>]?|@|&[&=]?|\\|[|=]?|<>?=?/};\nPrism.languages.sas={datalines:{pattern:/^\\s*(?:(?:data)?lines|cards);[\\s\\S]+?(?:\\r?\\n|\\r);/im,alias:\"string\",inside:{keyword:{pattern:/^(\\s*)(?:(?:data)?lines|cards)/i,lookbehind:!0},punctuation:/;/}},comment:[{pattern:/(^\\s*|;\\s*)\\*.*;/m,lookbehind:!0},/\\/\\*[\\s\\S]+?\\*\\//],datetime:{pattern:/'[^']+'(?:dt?|t)\\b/i,alias:\"number\"},string:{pattern:/([\"'])(?:\\1\\1|(?!\\1)[\\s\\S])*\\1/,greedy:!0},keyword:/\\b(?:data|else|format|if|input|proc\\s\\w+|quit|run|then)\\b/i,number:/\\b(?:[\\da-f]+x|\\d+(?:\\.\\d+)?(?:e[+-]?\\d+)?)/i,operator:/\\*\\*?|\\|\\|?|!!?|¦¦?|<[>=]?|>[<=]?|[-+\\/=&]|[~¬^]=?|\\b(?:eq|ne|gt|lt|ge|le|in|not)\\b/i,punctuation:/[$%@.(){}\\[\\];,\\\\]/};\n!function(e){e.languages.sass=e.languages.extend(\"css\",{comment:{pattern:/^([ \\t]*)\\/[\\/*].*(?:(?:\\r?\\n|\\r)\\1[ \\t]+.+)*/m,lookbehind:!0}}),e.languages.insertBefore(\"sass\",\"atrule\",{\"atrule-line\":{pattern:/^(?:[ \\t]*)[@+=].+/m,inside:{atrule:/(?:@[\\w-]+|[+=])/m}}}),delete e.languages.sass.atrule;var a=/\\$[-\\w]+|#\\{\\$[-\\w]+\\}/,t=[/[+*\\/%]|[=!]=|<=?|>=?|\\b(?:and|or|not)\\b/,{pattern:/(\\s+)-(?=\\s)/,lookbehind:!0}];e.languages.insertBefore(\"sass\",\"property\",{\"variable-line\":{pattern:/^[ \\t]*\\$.+/m,inside:{punctuation:/:/,variable:a,operator:t}},\"property-line\":{pattern:/^[ \\t]*(?:[^:\\s]+ *:.*|:[^:\\s]+.*)/m,inside:{property:[/[^:\\s]+(?=\\s*:)/,{pattern:/(:)[^:\\s]+/,lookbehind:!0}],punctuation:/:/,variable:a,operator:t,important:e.languages.sass.important}}}),delete e.languages.sass.property,delete e.languages.sass.important,delete e.languages.sass.selector,e.languages.insertBefore(\"sass\",\"punctuation\",{selector:{pattern:/([ \\t]*)\\S(?:,?[^,\\r\\n]+)*(?:,(?:\\r?\\n|\\r)\\1[ \\t]+\\S(?:,?[^,\\r\\n]+)*)*/,lookbehind:!0}})}(Prism);\nPrism.languages.scss=Prism.languages.extend(\"css\",{comment:{pattern:/(^|[^\\\\])(?:\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,lookbehind:!0},atrule:{pattern:/@[\\w-]+(?:\\([^()]+\\)|[^(])*?(?=\\s+[{;])/,inside:{rule:/@[\\w-]+/}},url:/(?:[-a-z]+-)*url(?=\\()/i,selector:{pattern:/(?=\\S)[^@;{}()]?(?:[^@;{}()]|&|#\\{\\$[-\\w]+\\})+(?=\\s*\\{(?:\\}|\\s|[^}]+[:{][^}]+))/m,inside:{parent:{pattern:/&/,alias:\"important\"},placeholder:/%[-\\w]+/,variable:/\\$[-\\w]+|#\\{\\$[-\\w]+\\}/}}}),Prism.languages.insertBefore(\"scss\",\"atrule\",{keyword:[/@(?:if|else(?: if)?|for|each|while|import|extend|debug|warn|mixin|include|function|return|content)/i,{pattern:/( +)(?:from|through)(?= )/,lookbehind:!0}]}),Prism.languages.scss.property={pattern:/(?:[\\w-]|\\$[-\\w]+|#\\{\\$[-\\w]+\\})+(?=\\s*:)/i,inside:{variable:/\\$[-\\w]+|#\\{\\$[-\\w]+\\}/}},Prism.languages.insertBefore(\"scss\",\"important\",{variable:/\\$[-\\w]+|#\\{\\$[-\\w]+\\}/}),Prism.languages.insertBefore(\"scss\",\"function\",{placeholder:{pattern:/%[-\\w]+/,alias:\"selector\"},statement:{pattern:/\\B!(?:default|optional)\\b/i,alias:\"keyword\"},\"boolean\":/\\b(?:true|false)\\b/,\"null\":/\\bnull\\b/,operator:{pattern:/(\\s)(?:[-+*\\/%]|[=!]=|<=?|>=?|and|or|not)(?=\\s)/,lookbehind:!0}}),Prism.languages.scss.atrule.inside.rest=Prism.languages.scss;\nPrism.languages.scala=Prism.languages.extend(\"java\",{keyword:/<-|=>|\\b(?:abstract|case|catch|class|def|do|else|extends|final|finally|for|forSome|if|implicit|import|lazy|match|new|null|object|override|package|private|protected|return|sealed|self|super|this|throw|trait|try|type|val|var|while|with|yield)\\b/,string:[{pattern:/\"\"\"[\\s\\S]*?\"\"\"/,greedy:!0},{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0}],builtin:/\\b(?:String|Int|Long|Short|Byte|Boolean|Double|Float|Char|Any|AnyRef|AnyVal|Unit|Nothing)\\b/,number:/\\b0x[\\da-f]*\\.?[\\da-f]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:e\\d+)?[dfl]?/i,symbol:/'[^\\d\\s\\\\]\\w*/}),delete Prism.languages.scala[\"class-name\"],delete Prism.languages.scala[\"function\"];\nPrism.languages.scheme={comment:/;.*/,string:{pattern:/\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'[^('\\s]*/,greedy:!0},keyword:{pattern:/(\\()(?:define(?:-syntax|-library|-values)?|(?:case-)?lambda|let(?:\\*|rec)?(?:-values)?|else|if|cond|begin|delay(?:-force)?|parameterize|guard|set!|(?:quasi-)?quote|syntax-rules)/,lookbehind:!0},builtin:{pattern:/(\\()(?:(?:cons|car|cdr|list|call-with-current-continuation|call\\/cc|append|abs|apply|eval)\\b|null\\?|pair\\?|boolean\\?|eof-object\\?|char\\?|procedure\\?|number\\?|port\\?|string\\?|vector\\?|symbol\\?|bytevector\\?)/,lookbehind:!0},number:{pattern:/(\\s|[()])[-+]?\\d*\\.?\\d+(?:\\s*[-+]\\s*\\d*\\.?\\d+i)?\\b/,lookbehind:!0},\"boolean\":/#[tf]/,operator:{pattern:/(\\()(?:[-+*%\\/]|[<>]=?|=>?)/,lookbehind:!0},\"function\":{pattern:/(\\()[^\\s()]*(?=[\\s)])/,lookbehind:!0},punctuation:/[()]/};\nPrism.languages.smalltalk={comment:/\"(?:\"\"|[^\"])+\"/,string:/'(?:''|[^'])+'/,symbol:/#[\\da-z]+|#(?:-|([+\\/\\\\*~<>=@%|&?!])\\1?)|#(?=\\()/i,\"block-arguments\":{pattern:/(\\[\\s*):[^\\[|]*\\|/,lookbehind:!0,inside:{variable:/:[\\da-z]+/i,punctuation:/\\|/}},\"temporary-variables\":{pattern:/\\|[^|]+\\|/,inside:{variable:/[\\da-z]+/i,punctuation:/\\|/}},keyword:/\\b(?:nil|true|false|self|super|new)\\b/,character:{pattern:/\\$./,alias:\"string\"},number:[/\\d+r-?[\\dA-Z]+(?:\\.[\\dA-Z]+)?(?:e-?\\d+)?/,/\\b\\d+(?:\\.\\d+)?(?:e-?\\d+)?/],operator:/[<=]=?|:=|~[~=]|\\/\\/?|\\\\\\\\|>[>=]?|[!^+\\-*&|,@]/,punctuation:/[.;:?\\[\\](){}]/};\n!function(e){e.languages.smarty={comment:/\\{\\*[\\s\\S]*?\\*\\}/,delimiter:{pattern:/^\\{|\\}$/i,alias:\"punctuation\"},string:/([\"'])(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,number:/\\b0x[\\dA-Fa-f]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,variable:[/\\$(?!\\d)\\w+/,/#(?!\\d)\\w+#/,{pattern:/(\\.|->)(?!\\d)\\w+/,lookbehind:!0},{pattern:/(\\[)(?!\\d)\\w+(?=\\])/,lookbehind:!0}],\"function\":[{pattern:/(\\|\\s*)@?(?!\\d)\\w+/,lookbehind:!0},/^\\/?(?!\\d)\\w+/,/(?!\\d)\\w+(?=\\()/],\"attr-name\":{pattern:/\\w+\\s*=\\s*(?:(?!\\d)\\w+)?/,inside:{variable:{pattern:/(=\\s*)(?!\\d)\\w+/,lookbehind:!0},operator:/=/}},punctuation:[/[\\[\\]().,:`]|->/],operator:[/[+\\-*\\/%]|==?=?|[!<>]=?|&&|\\|\\|?/,/\\bis\\s+(?:not\\s+)?(?:div|even|odd)(?:\\s+by)?\\b/,/\\b(?:eq|neq?|gt|lt|gt?e|lt?e|not|mod|or|and)\\b/],keyword:/\\b(?:false|off|on|no|true|yes)\\b/},e.languages.insertBefore(\"smarty\",\"tag\",{\"smarty-comment\":{pattern:/\\{\\*[\\s\\S]*?\\*\\}/,alias:[\"smarty\",\"comment\"]}}),e.hooks.add(\"before-tokenize\",function(t){var a=/\\{\\*[\\s\\S]*?\\*\\}|\\{[\\s\\S]+?\\}/g,n=\"{literal}\",o=\"{/literal}\",r=!1;e.languages[\"markup-templating\"].buildPlaceholders(t,\"smarty\",a,function(e){return e===o&&(r=!1),r?!1:(e===n&&(r=!0),!0)})}),e.hooks.add(\"after-tokenize\",function(t){e.languages[\"markup-templating\"].tokenizePlaceholders(t,\"smarty\")})}(Prism);\nPrism.languages.plsql=Prism.languages.extend(\"sql\",{comment:[/\\/\\*[\\s\\S]*?\\*\\//,/--.*/]}),\"Array\"!==Prism.util.type(Prism.languages.plsql.keyword)&&(Prism.languages.plsql.keyword=[Prism.languages.plsql.keyword]),Prism.languages.plsql.keyword.unshift(/\\b(?:ACCESS|AGENT|AGGREGATE|ARRAY|ARROW|AT|ATTRIBUTE|AUDIT|AUTHID|BFILE_BASE|BLOB_BASE|BLOCK|BODY|BOTH|BOUND|BYTE|CALLING|CHAR_BASE|CHARSET(?:FORM|ID)|CLOB_BASE|COLAUTH|COLLECT|CLUSTERS?|COMPILED|COMPRESS|CONSTANT|CONSTRUCTOR|CONTEXT|CRASH|CUSTOMDATUM|DANGLING|DATE_BASE|DEFINE|DETERMINISTIC|DURATION|ELEMENT|EMPTY|EXCEPTIONS?|EXCLUSIVE|EXTERNAL|FINAL|FORALL|FORM|FOUND|GENERAL|HEAP|HIDDEN|IDENTIFIED|IMMEDIATE|INCLUDING|INCREMENT|INDICATOR|INDEXES|INDICES|INFINITE|INITIAL|ISOPEN|INSTANTIABLE|INTERFACE|INVALIDATE|JAVA|LARGE|LEADING|LENGTH|LIBRARY|LIKE[24C]|LIMITED|LONG|LOOP|MAP|MAXEXTENTS|MAXLEN|MEMBER|MINUS|MLSLABEL|MULTISET|NAME|NAN|NATIVE|NEW|NOAUDIT|NOCOMPRESS|NOCOPY|NOTFOUND|NOWAIT|NUMBER(?:_BASE)?|OBJECT|OCI(?:COLL|DATE|DATETIME|DURATION|INTERVAL|LOBLOCATOR|NUMBER|RAW|REF|REFCURSOR|ROWID|STRING|TYPE)|OFFLINE|ONLINE|ONLY|OPAQUE|OPERATOR|ORACLE|ORADATA|ORGANIZATION|ORL(?:ANY|VARY)|OTHERS|OVERLAPS|OVERRIDING|PACKAGE|PARALLEL_ENABLE|PARAMETERS?|PASCAL|PCTFREE|PIPE(?:LINED)?|PRAGMA|PRIOR|PRIVATE|RAISE|RANGE|RAW|RECORD|REF|REFERENCE|REM|REMAINDER|RESULT|RESOURCE|RETURNING|REVERSE|ROW(?:ID|NUM|TYPE)|SAMPLE|SB[124]|SEGMENT|SELF|SEPARATE|SEQUENCE|SHORT|SIZE(?:_T)?|SPARSE|SQL(?:CODE|DATA|NAME|STATE)|STANDARD|STATIC|STDDEV|STORED|STRING|STRUCT|STYLE|SUBMULTISET|SUBPARTITION|SUBSTITUTABLE|SUBTYPE|SUCCESSFUL|SYNONYM|SYSDATE|TABAUTH|TDO|THE|TIMEZONE_(?:ABBR|HOUR|MINUTE|REGION)|TRAILING|TRANSAC(?:TIONAL)?|TRUSTED|UB[124]|UID|UNDER|UNTRUSTED|VALIDATE|VALIST|VARCHAR2|VARIABLE|VARIANCE|VARRAY|VIEWS|VOID|WHENEVER|WRAPPED|ZONE)\\b/i),\"Array\"!==Prism.util.type(Prism.languages.plsql.operator)&&(Prism.languages.plsql.operator=[Prism.languages.plsql.operator]),Prism.languages.plsql.operator.unshift(/:=/);\n!function(e){var a=/([\"'])(?:\\\\(?:\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,t=/\\b\\d+(?:\\.\\d+)?(?:[eE][+-]?\\d+)?\\b|\\b0x[\\dA-F]+\\b/;e.languages.soy={comment:[/\\/\\*[\\s\\S]*?\\*\\//,{pattern:/(\\s)\\/\\/.*/,lookbehind:!0,greedy:!0}],\"command-arg\":{pattern:/({+\\/?\\s*(?:alias|call|delcall|delpackage|deltemplate|namespace|template)\\s+)\\.?[\\w.]+/,lookbehind:!0,alias:\"string\",inside:{punctuation:/\\./}},parameter:{pattern:/({+\\/?\\s*@?param\\??\\s+)\\.?[\\w.]+/,lookbehind:!0,alias:\"variable\"},keyword:[{pattern:/({+\\/?[^\\S\\r\\n]*)(?:\\\\[nrt]|alias|call|case|css|default|delcall|delpackage|deltemplate|else(?:if)?|fallbackmsg|for(?:each)?|if(?:empty)?|lb|let|literal|msg|namespace|nil|@?param\\??|rb|sp|switch|template|xid)/,lookbehind:!0},/\\b(?:any|as|attributes|bool|css|float|in|int|js|html|list|map|null|number|string|uri)\\b/],delimiter:{pattern:/^{+\\/?|\\/?}+$/,alias:\"punctuation\"},property:/\\w+(?==)/,variable:{pattern:/\\$[^\\W\\d]\\w*(?:\\??(?:\\.\\w+|\\[[^\\]]+]))*/,inside:{string:{pattern:a,greedy:!0},number:t,punctuation:/[\\[\\].?]/}},string:{pattern:a,greedy:!0},\"function\":[/\\w+(?=\\()/,{pattern:/(\\|[^\\S\\r\\n]*)\\w+/,lookbehind:!0}],\"boolean\":/\\b(?:true|false)\\b/,number:t,operator:/\\?:?|<=?|>=?|==?|!=|[+*\\/%-]|\\b(?:and|not|or)\\b/,punctuation:/[{}()\\[\\]|.,:]/},e.hooks.add(\"before-tokenize\",function(a){var t=/{{.+?}}|{.+?}|\\s\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//g,n=\"{literal}\",l=\"{/literal}\",r=!1;e.languages[\"markup-templating\"].buildPlaceholders(a,\"soy\",t,function(e){return e===l&&(r=!1),r?!1:(e===n&&(r=!0),!0)})}),e.hooks.add(\"after-tokenize\",function(a){e.languages[\"markup-templating\"].tokenizePlaceholders(a,\"soy\")})}(Prism);\n!function(n){var t={url:/url\\(([\"']?).*?\\1\\)/i,string:{pattern:/(\"|')(?:(?!\\1)[^\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\\1/,greedy:!0},interpolation:null,func:null,important:/\\B!(?:important|optional)\\b/i,keyword:{pattern:/(^|\\s+)(?:(?:if|else|for|return|unless)(?=\\s+|$)|@[\\w-]+)/,lookbehind:!0},hexcode:/#[\\da-f]{3,6}/i,number:/\\b\\d+(?:\\.\\d+)?%?/,\"boolean\":/\\b(?:true|false)\\b/,operator:[/~|[+!\\/%<>?=]=?|[-:]=|\\*[*=]?|\\.+|&&|\\|\\||\\B-\\B|\\b(?:and|in|is(?: a| defined| not|nt)?|not|or)\\b/],punctuation:/[{}()\\[\\];:,]/};t.interpolation={pattern:/\\{[^\\r\\n}:]+\\}/,alias:\"variable\",inside:{delimiter:{pattern:/^{|}$/,alias:\"punctuation\"},rest:t}},t.func={pattern:/[\\w-]+\\([^)]*\\).*/,inside:{\"function\":/^[^(]+/,rest:t}},n.languages.stylus={comment:{pattern:/(^|[^\\\\])(\\/\\*[\\s\\S]*?\\*\\/|\\/\\/.*)/,lookbehind:!0},\"atrule-declaration\":{pattern:/(^\\s*)@.+/m,lookbehind:!0,inside:{atrule:/^@[\\w-]+/,rest:t}},\"variable-declaration\":{pattern:/(^[ \\t]*)[\\w$-]+\\s*.?=[ \\t]*(?:(?:\\{[^}]*\\}|.+)|$)/m,lookbehind:!0,inside:{variable:/^\\S+/,rest:t}},statement:{pattern:/(^[ \\t]*)(?:if|else|for|return|unless)[ \\t]+.+/m,lookbehind:!0,inside:{keyword:/^\\S+/,rest:t}},\"property-declaration\":{pattern:/((?:^|\\{)([ \\t]*))(?:[\\w-]|\\{[^}\\r\\n]+\\})+(?:\\s*:\\s*|[ \\t]+)[^{\\r\\n]*(?:;|[^{\\r\\n,](?=$)(?!(\\r?\\n|\\r)(?:\\{|\\2[ \\t]+)))/m,lookbehind:!0,inside:{property:{pattern:/^[^\\s:]+/,inside:{interpolation:t.interpolation}},rest:t}},selector:{pattern:/(^[ \\t]*)(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\))?|\\{[^}\\r\\n]+\\})+)(?:(?:\\r?\\n|\\r)(?:\\1(?:(?=\\S)(?:[^{}\\r\\n:()]|::?[\\w-]+(?:\\([^)\\r\\n]*\\))?|\\{[^}\\r\\n]+\\})+)))*(?:,$|\\{|(?=(?:\\r?\\n|\\r)(?:\\{|\\1[ \\t]+)))/m,lookbehind:!0,inside:{interpolation:t.interpolation,punctuation:/[{},]/}},func:t.func,string:t.string,interpolation:t.interpolation,punctuation:/[{}()\\[\\];:.]/}}(Prism);\nPrism.languages.swift=Prism.languages.extend(\"clike\",{string:{pattern:/(\"|')(\\\\(?:\\((?:[^()]|\\([^)]+\\))+\\)|\\r\\n|[\\s\\S])|(?!\\1)[^\\\\\\r\\n])*\\1/,greedy:!0,inside:{interpolation:{pattern:/\\\\\\((?:[^()]|\\([^)]+\\))+\\)/,inside:{delimiter:{pattern:/^\\\\\\(|\\)$/,alias:\"variable\"}}}}},keyword:/\\b(?:as|associativity|break|case|catch|class|continue|convenience|default|defer|deinit|didSet|do|dynamic(?:Type)?|else|enum|extension|fallthrough|final|for|func|get|guard|if|import|in|infix|init|inout|internal|is|lazy|left|let|mutating|new|none|nonmutating|operator|optional|override|postfix|precedence|prefix|private|protocol|public|repeat|required|rethrows|return|right|safe|self|Self|set|static|struct|subscript|super|switch|throws?|try|Type|typealias|unowned|unsafe|var|weak|where|while|willSet|__(?:COLUMN__|FILE__|FUNCTION__|LINE__))\\b/,number:/\\b(?:[\\d_]+(?:\\.[\\de_]+)?|0x[a-f0-9_]+(?:\\.[a-f0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\b/i,constant:/\\b(?:nil|[A-Z_]{2,}|k[A-Z][A-Za-z_]+)\\b/,atrule:/@\\b(?:IB(?:Outlet|Designable|Action|Inspectable)|class_protocol|exported|noreturn|NS(?:Copying|Managed)|objc|UIApplicationMain|auto_closure)\\b/,builtin:/\\b(?:[A-Z]\\S+|abs|advance|alignof(?:Value)?|assert|contains|count(?:Elements)?|debugPrint(?:ln)?|distance|drop(?:First|Last)|dump|enumerate|equal|filter|find|first|getVaList|indices|isEmpty|join|last|lexicographicalCompare|map|max(?:Element)?|min(?:Element)?|numericCast|overlaps|partition|print(?:ln)?|reduce|reflect|reverse|sizeof(?:Value)?|sort(?:ed)?|split|startsWith|stride(?:of(?:Value)?)?|suffix|swap|toDebugString|toString|transcode|underestimateCount|unsafeBitCast|with(?:ExtendedLifetime|Unsafe(?:MutablePointers?|Pointers?)|VaList))\\b/}),Prism.languages.swift.string.inside.interpolation.inside.rest=Prism.languages.swift;\nPrism.languages.yaml={scalar:{pattern:/([\\-:]\\s*(?:![^\\s]+)?[ \\t]*[|>])[ \\t]*(?:((?:\\r?\\n|\\r)[ \\t]+)[^\\r\\n]+(?:\\2[^\\r\\n]+)*)/,lookbehind:!0,alias:\"string\"},comment:/#.*/,key:{pattern:/(\\s*(?:^|[:\\-,[{\\r\\n?])[ \\t]*(?:![^\\s]+)?[ \\t]*)[^\\r\\n{[\\]},#\\s]+?(?=\\s*:\\s)/,lookbehind:!0,alias:\"atrule\"},directive:{pattern:/(^[ \\t]*)%.+/m,lookbehind:!0,alias:\"important\"},datetime:{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:\\d{4}-\\d\\d?-\\d\\d?(?:[tT]|[ \\t]+)\\d\\d?:\\d{2}:\\d{2}(?:\\.\\d*)?[ \\t]*(?:Z|[-+]\\d\\d?(?::\\d{2})?)?|\\d{4}-\\d{2}-\\d{2}|\\d\\d?:\\d{2}(?::\\d{2}(?:\\.\\d*)?)?)(?=[ \\t]*(?:$|,|]|}))/m,lookbehind:!0,alias:\"number\"},\"boolean\":{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:true|false)[ \\t]*(?=$|,|]|})/im,lookbehind:!0,alias:\"important\"},\"null\":{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(?:null|~)[ \\t]*(?=$|,|]|})/im,lookbehind:!0,alias:\"important\"},string:{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)(\"|')(?:(?!\\2)[^\\\\\\r\\n]|\\\\.)*\\2(?=[ \\t]*(?:$|,|]|}))/m,lookbehind:!0,greedy:!0},number:{pattern:/([:\\-,[{]\\s*(?:![^\\s]+)?[ \\t]*)[+-]?(?:0x[\\da-f]+|0o[0-7]+|(?:\\d+\\.?\\d*|\\.?\\d+)(?:e[+-]?\\d+)?|\\.inf|\\.nan)[ \\t]*(?=$|,|]|})/im,lookbehind:!0},tag:/![^\\s]+/,important:/[&*][\\w]+/,punctuation:/---|[:[\\]{}\\-,|>?]|\\.\\.\\./};\nPrism.languages.tcl={comment:{pattern:/(^|[^\\\\])#.*/,lookbehind:!0},string:{pattern:/\"(?:[^\"\\\\\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,greedy:!0},variable:[{pattern:/(\\$)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/,lookbehind:!0},{pattern:/(\\$){[^}]+}/,lookbehind:!0},{pattern:/(^\\s*set[ \\t]+)(?:::)?(?:[a-zA-Z0-9]+::)*\\w+/m,lookbehind:!0}],\"function\":{pattern:/(^\\s*proc[ \\t]+)[^\\s]+/m,lookbehind:!0},builtin:[{pattern:/(^\\s*)(?:proc|return|class|error|eval|exit|for|foreach|if|switch|while|break|continue)\\b/m,lookbehind:!0},/\\b(?:elseif|else)\\b/],scope:{pattern:/(^\\s*)(?:global|upvar|variable)\\b/m,lookbehind:!0,alias:\"constant\"},keyword:{pattern:/(^\\s*|\\[)(?:after|append|apply|array|auto_(?:execok|import|load|mkindex|qualify|reset)|automkindex_old|bgerror|binary|catch|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|expr|fblocked|fconfigure|fcopy|file(?:event|name)?|flush|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|math(?:func|op)|memory|msgcat|namespace|open|package|parray|pid|pkg_mkIndex|platform|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|rename|Safe_Base|scan|seek|set|socket|source|split|string|subst|Tcl|tcl(?:_endOfWord|_findLibrary|startOf(?:Next|Previous)Word|wordBreak(?:After|Before)|test|vars)|tell|time|tm|trace|unknown|unload|unset|update|uplevel|vwait)\\b/m,lookbehind:!0},operator:/!=?|\\*\\*?|==|&&?|\\|\\|?|<[=<]?|>[=>]?|[-+~\\/%?^]|\\b(?:eq|ne|in|ni)\\b/,punctuation:/[{}()\\[\\]]/};\n!function(e){var i=\"(?:\\\\([^|)]+\\\\)|\\\\[[^\\\\]]+\\\\]|\\\\{[^}]+\\\\})+\",n={css:{pattern:/\\{[^}]+\\}/,inside:{rest:e.languages.css}},\"class-id\":{pattern:/(\\()[^)]+(?=\\))/,lookbehind:!0,alias:\"attr-value\"},lang:{pattern:/(\\[)[^\\]]+(?=\\])/,lookbehind:!0,alias:\"attr-value\"},punctuation:/[\\\\\\/]\\d+|\\S/};e.languages.textile=e.languages.extend(\"markup\",{phrase:{pattern:/(^|\\r|\\n)\\S[\\s\\S]*?(?=$|\\r?\\n\\r?\\n|\\r\\r)/,lookbehind:!0,inside:{\"block-tag\":{pattern:RegExp(\"^[a-z]\\\\w*(?:\"+i+\"|[<>=()])*\\\\.\"),inside:{modifier:{pattern:RegExp(\"(^[a-z]\\\\w*)(?:\"+i+\"|[<>=()])+(?=\\\\.)\"),lookbehind:!0,inside:n},tag:/^[a-z]\\w*/,punctuation:/\\.$/}},list:{pattern:RegExp(\"^[*#]+(?:\"+i+\")?\\\\s+.+\",\"m\"),inside:{modifier:{pattern:RegExp(\"(^[*#]+)\"+i),lookbehind:!0,inside:n},punctuation:/^[*#]+/}},table:{pattern:RegExp(\"^(?:(?:\"+i+\"|[<>=()^~])+\\\\.\\\\s*)?(?:\\\\|(?:(?:\"+i+\"|[<>=()^~_]|[\\\\\\\\/]\\\\d+)+\\\\.)?[^|]*)+\\\\|\",\"m\"),inside:{modifier:{pattern:RegExp(\"(^|\\\\|(?:\\\\r?\\\\n|\\\\r)?)(?:\"+i+\"|[<>=()^~_]|[\\\\\\\\/]\\\\d+)+(?=\\\\.)\"),lookbehind:!0,inside:n},punctuation:/\\||^\\./}},inline:{pattern:RegExp(\"(\\\\*\\\\*|__|\\\\?\\\\?|[*_%@+\\\\-^~])(?:\"+i+\")?.+?\\\\1\"),inside:{bold:{pattern:RegExp(\"(^(\\\\*\\\\*?)(?:\"+i+\")?).+?(?=\\\\2)\"),lookbehind:!0},italic:{pattern:RegExp(\"(^(__?)(?:\"+i+\")?).+?(?=\\\\2)\"),lookbehind:!0},cite:{pattern:RegExp(\"(^\\\\?\\\\?(?:\"+i+\")?).+?(?=\\\\?\\\\?)\"),lookbehind:!0,alias:\"string\"},code:{pattern:RegExp(\"(^@(?:\"+i+\")?).+?(?=@)\"),lookbehind:!0,alias:\"keyword\"},inserted:{pattern:RegExp(\"(^\\\\+(?:\"+i+\")?).+?(?=\\\\+)\"),lookbehind:!0},deleted:{pattern:RegExp(\"(^-(?:\"+i+\")?).+?(?=-)\"),lookbehind:!0},span:{pattern:RegExp(\"(^%(?:\"+i+\")?).+?(?=%)\"),lookbehind:!0},modifier:{pattern:RegExp(\"(^\\\\*\\\\*|__|\\\\?\\\\?|[*_%@+\\\\-^~])\"+i),lookbehind:!0,inside:n},punctuation:/[*_%?@+\\-^~]+/}},\"link-ref\":{pattern:/^\\[[^\\]]+\\]\\S+$/m,inside:{string:{pattern:/(\\[)[^\\]]+(?=\\])/,lookbehind:!0},url:{pattern:/(\\])\\S+$/,lookbehind:!0},punctuation:/[\\[\\]]/}},link:{pattern:RegExp('\"(?:'+i+')?[^\"]+\":.+?(?=[^\\\\w/]?(?:\\\\s|$))'),inside:{text:{pattern:RegExp('(^\"(?:'+i+')?)[^\"]+(?=\")'),lookbehind:!0},modifier:{pattern:RegExp('(^\")'+i),lookbehind:!0,inside:n},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[\":]/}},image:{pattern:RegExp(\"!(?:\"+i+\"|[<>=()])*[^!\\\\s()]+(?:\\\\([^)]+\\\\))?!(?::.+?(?=[^\\\\w/]?(?:\\\\s|$)))?\"),inside:{source:{pattern:RegExp(\"(^!(?:\"+i+\"|[<>=()])*)[^!\\\\s()]+(?:\\\\([^)]+\\\\))?(?=!)\"),lookbehind:!0,alias:\"url\"},modifier:{pattern:RegExp(\"(^!)(?:\"+i+\"|[<>=()])+\"),lookbehind:!0,inside:n},url:{pattern:/(:).+/,lookbehind:!0},punctuation:/[!:]/}},footnote:{pattern:/\\b\\[\\d+\\]/,alias:\"comment\",inside:{punctuation:/\\[|\\]/}},acronym:{pattern:/\\b[A-Z\\d]+\\([^)]+\\)/,inside:{comment:{pattern:/(\\()[^)]+(?=\\))/,lookbehind:!0},punctuation:/[()]/}},mark:{pattern:/\\b\\((?:TM|R|C)\\)/,alias:\"comment\",inside:{punctuation:/[()]/}}}}});var t={inline:e.languages.textile.phrase.inside.inline,link:e.languages.textile.phrase.inside.link,image:e.languages.textile.phrase.inside.image,footnote:e.languages.textile.phrase.inside.footnote,acronym:e.languages.textile.phrase.inside.acronym,mark:e.languages.textile.phrase.inside.mark};e.languages.textile.tag.pattern=/<\\/?(?!\\d)[a-z0-9]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,e.languages.textile.phrase.inside.inline.inside.bold.inside=t,e.languages.textile.phrase.inside.inline.inside.italic.inside=t,e.languages.textile.phrase.inside.inline.inside.inserted.inside=t,e.languages.textile.phrase.inside.inline.inside.deleted.inside=t,e.languages.textile.phrase.inside.inline.inside.span.inside=t,e.languages.textile.phrase.inside.table.inside.inline=t.inline,e.languages.textile.phrase.inside.table.inside.link=t.link,e.languages.textile.phrase.inside.table.inside.image=t.image,e.languages.textile.phrase.inside.table.inside.footnote=t.footnote,e.languages.textile.phrase.inside.table.inside.acronym=t.acronym,e.languages.textile.phrase.inside.table.inside.mark=t.mark}(Prism);\n!function(e){e.languages.tt2=e.languages.extend(\"clike\",{comment:{pattern:/#.*|\\[%#[\\s\\S]*?%\\]/,lookbehind:!0},keyword:/\\b(?:BLOCK|CALL|CASE|CATCH|CLEAR|DEBUG|DEFAULT|ELSE|ELSIF|END|FILTER|FINAL|FOREACH|GET|IF|IN|INCLUDE|INSERT|LAST|MACRO|META|NEXT|PERL|PROCESS|RAWPERL|RETURN|SET|STOP|TAGS|THROW|TRY|SWITCH|UNLESS|USE|WHILE|WRAPPER)\\b/,punctuation:/[[\\]{},()]/}),delete e.languages.tt2.operator,delete e.languages.tt2.variable,e.languages.insertBefore(\"tt2\",\"number\",{operator:/=[>=]?|!=?|<=?|>=?|&&|\\|\\|?|\\b(?:and|or|not)\\b/,variable:{pattern:/[a-z]\\w*(?:\\s*\\.\\s*(?:\\d+|\\$?[a-z]\\w*))*/i}}),delete e.languages.tt2.delimiter,e.languages.insertBefore(\"tt2\",\"keyword\",{delimiter:{pattern:/^(?:\\[%|%%)-?|-?%]$/,alias:\"punctuation\"}}),e.languages.insertBefore(\"tt2\",\"string\",{\"single-quoted-string\":{pattern:/'[^\\\\']*(?:\\\\[\\s\\S][^\\\\']*)*'/,greedy:!0,alias:\"string\"},\"double-quoted-string\":{pattern:/\"[^\\\\\"]*(?:\\\\[\\s\\S][^\\\\\"]*)*\"/,greedy:!0,alias:\"string\",inside:{variable:{pattern:/\\$(?:[a-z]\\w*(?:\\.(?:\\d+|\\$?[a-z]\\w*))*)/i}}}}),delete e.languages.tt2.string,e.hooks.add(\"before-tokenize\",function(t){var a=/\\[%[\\s\\S]+?%\\]/g;e.languages[\"markup-templating\"].buildPlaceholders(t,\"tt2\",a)}),e.hooks.add(\"after-tokenize\",function(t){e.languages[\"markup-templating\"].tokenizePlaceholders(t,\"tt2\")})}(Prism);\nPrism.languages.twig={comment:/\\{#[\\s\\S]*?#\\}/,tag:{pattern:/\\{\\{[\\s\\S]*?\\}\\}|\\{%[\\s\\S]*?%\\}/,inside:{ld:{pattern:/^(?:\\{\\{-?|\\{%-?\\s*\\w+)/,inside:{punctuation:/^(?:\\{\\{|\\{%)-?/,keyword:/\\w+/}},rd:{pattern:/-?(?:%\\}|\\}\\})$/,inside:{punctuation:/.*/}},string:{pattern:/(\"|')(?:\\\\.|(?!\\1)[^\\\\\\r\\n])*\\1/,inside:{punctuation:/^['\"]|['\"]$/}},keyword:/\\b(?:even|if|odd)\\b/,\"boolean\":/\\b(?:true|false|null)\\b/,number:/\\b0x[\\dA-Fa-f]+|(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:[Ee][-+]?\\d+)?/,operator:[{pattern:/(\\s)(?:and|b-and|b-xor|b-or|ends with|in|is|matches|not|or|same as|starts with)(?=\\s)/,lookbehind:!0},/[=<>]=?|!=|\\*\\*?|\\/\\/?|\\?:?|[-+~%|]/],property:/\\b[a-zA-Z_]\\w*\\b/,punctuation:/[()\\[\\]{}:.,]/}},other:{pattern:/\\S(?:[\\s\\S]*\\S)?/,inside:Prism.languages.markup}};\nvar typescript=Prism.util.clone(Prism.languages.typescript);Prism.languages.tsx=Prism.languages.extend(\"jsx\",typescript);\nPrism.languages.vbnet=Prism.languages.extend(\"basic\",{keyword:/(?:\\b(?:ADDHANDLER|ADDRESSOF|ALIAS|AND|ANDALSO|AS|BEEP|BLOAD|BOOLEAN|BSAVE|BYREF|BYTE|BYVAL|CALL(?: ABSOLUTE)?|CASE|CATCH|CBOOL|CBYTE|CCHAR|CDATE|CDEC|CDBL|CHAIN|CHAR|CHDIR|CINT|CLASS|CLEAR|CLNG|CLOSE|CLS|COBJ|COM|COMMON|CONST|CONTINUE|CSBYTE|CSHORT|CSNG|CSTR|CTYPE|CUINT|CULNG|CUSHORT|DATA|DATE|DECIMAL|DECLARE|DEFAULT|DEF(?: FN| SEG|DBL|INT|LNG|SNG|STR)|DELEGATE|DIM|DIRECTCAST|DO|DOUBLE|ELSE|ELSEIF|END|ENUM|ENVIRON|ERASE|ERROR|EVENT|EXIT|FALSE|FIELD|FILES|FINALLY|FOR(?: EACH)?|FRIEND|FUNCTION|GET|GETTYPE|GETXMLNAMESPACE|GLOBAL|GOSUB|GOTO|HANDLES|IF|IMPLEMENTS|IMPORTS|IN|INHERITS|INPUT|INTEGER|INTERFACE|IOCTL|IS|ISNOT|KEY|KILL|LINE INPUT|LET|LIB|LIKE|LOCATE|LOCK|LONG|LOOP|LSET|ME|MKDIR|MOD|MODULE|MUSTINHERIT|MUSTOVERRIDE|MYBASE|MYCLASS|NAME|NAMESPACE|NARROWING|NEW|NEXT|NOT|NOTHING|NOTINHERITABLE|NOTOVERRIDABLE|OBJECT|OF|OFF|ON(?: COM| ERROR| KEY| TIMER)?|OPERATOR|OPEN|OPTION(?: BASE)?|OPTIONAL|OR|ORELSE|OUT|OVERLOADS|OVERRIDABLE|OVERRIDES|PARAMARRAY|PARTIAL|POKE|PRIVATE|PROPERTY|PROTECTED|PUBLIC|PUT|RAISEEVENT|READ|READONLY|REDIM|REM|REMOVEHANDLER|RESTORE|RESUME|RETURN|RMDIR|RSET|RUN|SBYTE|SELECT(?: CASE)?|SET|SHADOWS|SHARED|SHORT|SINGLE|SHELL|SLEEP|STATIC|STEP|STOP|STRING|STRUCTURE|SUB|SYNCLOCK|SWAP|SYSTEM|THEN|THROW|TIMER|TO|TROFF|TRON|TRUE|TRY|TRYCAST|TYPE|TYPEOF|UINTEGER|ULONG|UNLOCK|UNTIL|USHORT|USING|VIEW PRINT|WAIT|WEND|WHEN|WHILE|WIDENING|WITH|WITHEVENTS|WRITE|WRITEONLY|XOR)|\\B(?:#CONST|#ELSE|#ELSEIF|#END|#IF))(?:\\$|\\b)/i,comment:[{pattern:/(?:!|REM\\b).+/i,inside:{keyword:/^REM/i}},{pattern:/(^|[^\\\\:])'.*/,lookbehind:!0}]});\n!function(e){e.languages.velocity=e.languages.extend(\"markup\",{});var n={variable:{pattern:/(^|[^\\\\](?:\\\\\\\\)*)\\$!?(?:[a-z][\\w-]*(?:\\([^)]*\\))?(?:\\.[a-z][\\w-]*(?:\\([^)]*\\))?|\\[[^\\]]+])*|{[^}]+})/i,lookbehind:!0,inside:{}},string:{pattern:/\"[^\"]*\"|'[^']*'/,greedy:!0},number:/\\b\\d+\\b/,\"boolean\":/\\b(?:true|false)\\b/,operator:/[=!<>]=?|[+*\\/%-]|&&|\\|\\||\\.\\.|\\b(?:eq|g[et]|l[et]|n(?:e|ot))\\b/,punctuation:/[(){}[\\]:,.]/};n.variable.inside={string:n.string,\"function\":{pattern:/([^\\w-])[a-z][\\w-]*(?=\\()/,lookbehind:!0},number:n.number,\"boolean\":n[\"boolean\"],punctuation:n.punctuation},e.languages.insertBefore(\"velocity\",\"comment\",{unparsed:{pattern:/(^|[^\\\\])#\\[\\[[\\s\\S]*?]]#/,lookbehind:!0,greedy:!0,inside:{punctuation:/^#\\[\\[|]]#$/}},\"velocity-comment\":[{pattern:/(^|[^\\\\])#\\*[\\s\\S]*?\\*#/,lookbehind:!0,greedy:!0,alias:\"comment\"},{pattern:/(^|[^\\\\])##.*/,lookbehind:!0,greedy:!0,alias:\"comment\"}],directive:{pattern:/(^|[^\\\\](?:\\\\\\\\)*)#@?(?:[a-z][\\w-]*|{[a-z][\\w-]*})(?:\\s*\\((?:[^()]|\\([^()]*\\))*\\))?/i,lookbehind:!0,inside:{keyword:{pattern:/^#@?(?:[a-z][\\w-]*|{[a-z][\\w-]*})|\\bin\\b/,inside:{punctuation:/[{}]/}},rest:n}},variable:n.variable}),e.languages.velocity.tag.inside[\"attr-value\"].inside.rest=e.languages.velocity}(Prism);\nPrism.languages.verilog={comment:/\\/\\/.*|\\/\\*[\\s\\S]*?\\*\\//,string:{pattern:/\"(?:\\\\(?:\\r\\n|[\\s\\S])|[^\"\\\\\\r\\n])*\"/,greedy:!0},property:/\\B\\$\\w+\\b/,constant:/\\B`\\w+\\b/,\"function\":/\\w+(?=\\()/,keyword:/\\b(?:alias|and|assert|assign|assume|automatic|before|begin|bind|bins|binsof|bit|break|buf|bufif0|bufif1|byte|class|case|casex|casez|cell|chandle|clocking|cmos|config|const|constraint|context|continue|cover|covergroup|coverpoint|cross|deassign|default|defparam|design|disable|dist|do|edge|else|end|endcase|endclass|endclocking|endconfig|endfunction|endgenerate|endgroup|endinterface|endmodule|endpackage|endprimitive|endprogram|endproperty|endspecify|endsequence|endtable|endtask|enum|event|expect|export|extends|extern|final|first_match|for|force|foreach|forever|fork|forkjoin|function|generate|genvar|highz0|highz1|if|iff|ifnone|ignore_bins|illegal_bins|import|incdir|include|initial|inout|input|inside|instance|int|integer|interface|intersect|join|join_any|join_none|large|liblist|library|local|localparam|logic|longint|macromodule|matches|medium|modport|module|nand|negedge|new|nmos|nor|noshowcancelled|not|notif0|notif1|null|or|output|package|packed|parameter|pmos|posedge|primitive|priority|program|property|protected|pull0|pull1|pulldown|pullup|pulsestyle_onevent|pulsestyle_ondetect|pure|rand|randc|randcase|randsequence|rcmos|real|realtime|ref|reg|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|sequence|shortint|shortreal|showcancelled|signed|small|solve|specify|specparam|static|string|strong0|strong1|struct|super|supply0|supply1|table|tagged|task|this|throughout|time|timeprecision|timeunit|tran|tranif0|tranif1|tri|tri0|tri1|triand|trior|trireg|type|typedef|union|unique|unsigned|use|uwire|var|vectored|virtual|void|wait|wait_order|wand|weak0|weak1|while|wildcard|wire|with|within|wor|xnor|xor)\\b/,important:/\\b(?:always_latch|always_comb|always_ff|always)\\b ?@?/,number:/\\B##?\\d+|(?:\\b\\d+)?'[odbh] ?[\\da-fzx_?]+|\\b\\d*[._]?\\d+(?:e[-+]?\\d+)?/i,operator:/[-+{}^~%*\\/?=!<>&|]+/,punctuation:/[[\\];(),.:]/};\nPrism.languages.vhdl={comment:/--.+/,\"vhdl-vectors\":{pattern:/\\b[oxb]\"[\\da-f_]+\"|\"[01uxzwlh-]+\"/i,alias:\"number\"},\"quoted-function\":{pattern:/\"\\S+?\"(?=\\()/,alias:\"function\"},string:/\"(?:[^\\\\\"\\r\\n]|\\\\(?:\\r\\n|[\\s\\S]))*\"/,constant:/\\b(?:use|library)\\b/i,keyword:/\\b(?:'active|'ascending|'base|'delayed|'driving|'driving_value|'event|'high|'image|'instance_name|'last_active|'last_event|'last_value|'left|'leftof|'length|'low|'path_name|'pos|'pred|'quiet|'range|'reverse_range|'right|'rightof|'simple_name|'stable|'succ|'transaction|'val|'value|access|after|alias|all|architecture|array|assert|attribute|begin|block|body|buffer|bus|case|component|configuration|constant|disconnect|downto|else|elsif|end|entity|exit|file|for|function|generate|generic|group|guarded|if|impure|in|inertial|inout|is|label|library|linkage|literal|loop|map|new|next|null|of|on|open|others|out|package|port|postponed|procedure|process|pure|range|record|register|reject|report|return|select|severity|shared|signal|subtype|then|to|transport|type|unaffected|units|until|use|variable|wait|when|while|with)\\b/i,\"boolean\":/\\b(?:true|false)\\b/i,\"function\":/\\w+(?=\\()/,number:/'[01uxzwlh-]'|\\b(?:\\d+#[\\da-f_.]+#|\\d[\\d_.]*)(?:e[-+]?\\d+)?/i,operator:/[<>]=?|:=|[-+*\\/&=]|\\b(?:abs|not|mod|rem|sll|srl|sla|sra|rol|ror|and|or|nand|xnor|xor|nor)\\b/i,punctuation:/[{}[\\];(),.:]/};\nPrism.languages.vim={string:/\"(?:[^\"\\\\\\r\\n]|\\\\.)*\"|'(?:[^'\\r\\n]|'')*'/,comment:/\".*/,\"function\":/\\w+(?=\\()/,keyword:/\\b(?:ab|abbreviate|abc|abclear|abo|aboveleft|al|all|arga|argadd|argd|argdelete|argdo|arge|argedit|argg|argglobal|argl|arglocal|ar|args|argu|argument|as|ascii|bad|badd|ba|ball|bd|bdelete|be|bel|belowright|bf|bfirst|bl|blast|bm|bmodified|bn|bnext|bN|bNext|bo|botright|bp|bprevious|brea|break|breaka|breakadd|breakd|breakdel|breakl|breaklist|br|brewind|bro|browse|bufdo|b|buffer|buffers|bun|bunload|bw|bwipeout|ca|cabbrev|cabc|cabclear|caddb|caddbuffer|cad|caddexpr|caddf|caddfile|cal|call|cat|catch|cb|cbuffer|cc|ccl|cclose|cd|ce|center|cex|cexpr|cf|cfile|cfir|cfirst|cgetb|cgetbuffer|cgete|cgetexpr|cg|cgetfile|c|change|changes|chd|chdir|che|checkpath|checkt|checktime|cla|clast|cl|clist|clo|close|cmapc|cmapclear|cnew|cnewer|cn|cnext|cN|cNext|cnf|cnfile|cNfcNfile|cnorea|cnoreabbrev|col|colder|colo|colorscheme|comc|comclear|comp|compiler|conf|confirm|con|continue|cope|copen|co|copy|cpf|cpfile|cp|cprevious|cq|cquit|cr|crewind|cuna|cunabbrev|cu|cunmap|cw|cwindow|debugg|debuggreedy|delc|delcommand|d|delete|delf|delfunction|delm|delmarks|diffg|diffget|diffoff|diffpatch|diffpu|diffput|diffsplit|diffthis|diffu|diffupdate|dig|digraphs|di|display|dj|djump|dl|dlist|dr|drop|ds|dsearch|dsp|dsplit|earlier|echoe|echoerr|echom|echomsg|echon|e|edit|el|else|elsei|elseif|em|emenu|endfo|endfor|endf|endfunction|endfun|en|endif|endt|endtry|endw|endwhile|ene|enew|ex|exi|exit|exu|exusage|f|file|files|filetype|fina|finally|fin|find|fini|finish|fir|first|fix|fixdel|fo|fold|foldc|foldclose|folddoc|folddoclosed|foldd|folddoopen|foldo|foldopen|for|fu|fun|function|go|goto|gr|grep|grepa|grepadd|ha|hardcopy|h|help|helpf|helpfind|helpg|helpgrep|helpt|helptags|hid|hide|his|history|ia|iabbrev|iabc|iabclear|if|ij|ijump|il|ilist|imapc|imapclear|in|inorea|inoreabbrev|isearch|isp|isplit|iuna|iunabbrev|iu|iunmap|j|join|ju|jumps|k|keepalt|keepj|keepjumps|kee|keepmarks|laddb|laddbuffer|lad|laddexpr|laddf|laddfile|lan|language|la|last|later|lb|lbuffer|lc|lcd|lch|lchdir|lcl|lclose|let|left|lefta|leftabove|lex|lexpr|lf|lfile|lfir|lfirst|lgetb|lgetbuffer|lgete|lgetexpr|lg|lgetfile|lgr|lgrep|lgrepa|lgrepadd|lh|lhelpgrep|l|list|ll|lla|llast|lli|llist|lmak|lmake|lm|lmap|lmapc|lmapclear|lnew|lnewer|lne|lnext|lN|lNext|lnf|lnfile|lNf|lNfile|ln|lnoremap|lo|loadview|loc|lockmarks|lockv|lockvar|lol|lolder|lop|lopen|lpf|lpfile|lp|lprevious|lr|lrewind|ls|lt|ltag|lu|lunmap|lv|lvimgrep|lvimgrepa|lvimgrepadd|lw|lwindow|mak|make|ma|mark|marks|mat|match|menut|menutranslate|mk|mkexrc|mks|mksession|mksp|mkspell|mkvie|mkview|mkv|mkvimrc|mod|mode|m|move|mzf|mzfile|mz|mzscheme|nbkey|new|n|next|N|Next|nmapc|nmapclear|noh|nohlsearch|norea|noreabbrev|nu|number|nun|nunmap|omapc|omapclear|on|only|o|open|opt|options|ou|ounmap|pc|pclose|ped|pedit|pe|perl|perld|perldo|po|pop|popu|popup|pp|ppop|pre|preserve|prev|previous|p|print|P|Print|profd|profdel|prof|profile|promptf|promptfind|promptr|promptrepl|ps|psearch|pta|ptag|ptf|ptfirst|ptj|ptjump|ptl|ptlast|ptn|ptnext|ptN|ptNext|ptp|ptprevious|ptr|ptrewind|pts|ptselect|pu|put|pw|pwd|pyf|pyfile|py|python|qa|qall|q|quit|quita|quitall|r|read|rec|recover|redi|redir|red|redo|redr|redraw|redraws|redrawstatus|reg|registers|res|resize|ret|retab|retu|return|rew|rewind|ri|right|rightb|rightbelow|rub|ruby|rubyd|rubydo|rubyf|rubyfile|ru|runtime|rv|rviminfo|sal|sall|san|sandbox|sa|sargument|sav|saveas|sba|sball|sbf|sbfirst|sbl|sblast|sbm|sbmodified|sbn|sbnext|sbN|sbNext|sbp|sbprevious|sbr|sbrewind|sb|sbuffer|scripte|scriptencoding|scrip|scriptnames|se|set|setf|setfiletype|setg|setglobal|setl|setlocal|sf|sfind|sfir|sfirst|sh|shell|sign|sil|silent|sim|simalt|sla|slast|sl|sleep|sm|smagic|sm|smap|smapc|smapclear|sme|smenu|sn|snext|sN|sNext|sni|sniff|sno|snomagic|snor|snoremap|snoreme|snoremenu|sor|sort|so|source|spelld|spelldump|spe|spellgood|spelli|spellinfo|spellr|spellrepall|spellu|spellundo|spellw|spellwrong|sp|split|spr|sprevious|sre|srewind|sta|stag|startg|startgreplace|star|startinsert|startr|startreplace|stj|stjump|st|stop|stopi|stopinsert|sts|stselect|sun|sunhide|sunm|sunmap|sus|suspend|sv|sview|syncbind|t|tab|tabc|tabclose|tabd|tabdo|tabe|tabedit|tabf|tabfind|tabfir|tabfirst|tabl|tablast|tabm|tabmove|tabnew|tabn|tabnext|tabN|tabNext|tabo|tabonly|tabp|tabprevious|tabr|tabrewind|tabs|ta|tag|tags|tc|tcl|tcld|tcldo|tclf|tclfile|te|tearoff|tf|tfirst|th|throw|tj|tjump|tl|tlast|tm|tm|tmenu|tn|tnext|tN|tNext|to|topleft|tp|tprevious|tr|trewind|try|ts|tselect|tu|tu|tunmenu|una|unabbreviate|u|undo|undoj|undojoin|undol|undolist|unh|unhide|unlet|unlo|unlockvar|unm|unmap|up|update|verb|verbose|ve|version|vert|vertical|vie|view|vim|vimgrep|vimgrepa|vimgrepadd|vi|visual|viu|viusage|vmapc|vmapclear|vne|vnew|vs|vsplit|vu|vunmap|wa|wall|wh|while|winc|wincmd|windo|winp|winpos|win|winsize|wn|wnext|wN|wNext|wp|wprevious|wq|wqa|wqall|w|write|ws|wsverb|wv|wviminfo|X|xa|xall|x|xit|xm|xmap|xmapc|xmapclear|xme|xmenu|XMLent|XMLns|xn|xnoremap|xnoreme|xnoremenu|xu|xunmap|y|yank)\\b/,builtin:/\\b(?:autocmd|acd|ai|akm|aleph|allowrevins|altkeymap|ambiwidth|ambw|anti|antialias|arab|arabic|arabicshape|ari|arshape|autochdir|autoindent|autoread|autowrite|autowriteall|aw|awa|background|backspace|backup|backupcopy|backupdir|backupext|backupskip|balloondelay|ballooneval|balloonexpr|bdir|bdlay|beval|bex|bexpr|bg|bh|bin|binary|biosk|bioskey|bk|bkc|bomb|breakat|brk|browsedir|bs|bsdir|bsk|bt|bufhidden|buflisted|buftype|casemap|ccv|cdpath|cedit|cfu|ch|charconvert|ci|cin|cindent|cink|cinkeys|cino|cinoptions|cinw|cinwords|clipboard|cmdheight|cmdwinheight|cmp|cms|columns|com|comments|commentstring|compatible|complete|completefunc|completeopt|consk|conskey|copyindent|cot|cpo|cpoptions|cpt|cscopepathcomp|cscopeprg|cscopequickfix|cscopetag|cscopetagorder|cscopeverbose|cspc|csprg|csqf|cst|csto|csverb|cuc|cul|cursorcolumn|cursorline|cwh|debug|deco|def|define|delcombine|dex|dg|dict|dictionary|diff|diffexpr|diffopt|digraph|dip|dir|directory|dy|ea|ead|eadirection|eb|ed|edcompatible|ef|efm|ei|ek|enc|encoding|endofline|eol|ep|equalalways|equalprg|errorbells|errorfile|errorformat|esckeys|et|eventignore|expandtab|exrc|fcl|fcs|fdc|fde|fdi|fdl|fdls|fdm|fdn|fdo|fdt|fen|fenc|fencs|fex|ff|ffs|fileencoding|fileencodings|fileformat|fileformats|fillchars|fk|fkmap|flp|fml|fmr|foldcolumn|foldenable|foldexpr|foldignore|foldlevel|foldlevelstart|foldmarker|foldmethod|foldminlines|foldnestmax|foldtext|formatexpr|formatlistpat|formatoptions|formatprg|fp|fs|fsync|ft|gcr|gd|gdefault|gfm|gfn|gfs|gfw|ghr|gp|grepformat|grepprg|gtl|gtt|guicursor|guifont|guifontset|guifontwide|guiheadroom|guioptions|guipty|guitablabel|guitabtooltip|helpfile|helpheight|helplang|hf|hh|hi|hidden|highlight|hk|hkmap|hkmapp|hkp|hl|hlg|hls|hlsearch|ic|icon|iconstring|ignorecase|im|imactivatekey|imak|imc|imcmdline|imd|imdisable|imi|iminsert|ims|imsearch|inc|include|includeexpr|incsearch|inde|indentexpr|indentkeys|indk|inex|inf|infercase|insertmode|isf|isfname|isi|isident|isk|iskeyword|isprint|joinspaces|js|key|keymap|keymodel|keywordprg|km|kmp|kp|langmap|langmenu|laststatus|lazyredraw|lbr|lcs|linebreak|lines|linespace|lisp|lispwords|listchars|loadplugins|lpl|lsp|lz|macatsui|magic|makeef|makeprg|matchpairs|matchtime|maxcombine|maxfuncdepth|maxmapdepth|maxmem|maxmempattern|maxmemtot|mco|mef|menuitems|mfd|mh|mis|mkspellmem|ml|mls|mm|mmd|mmp|mmt|modeline|modelines|modifiable|modified|more|mouse|mousef|mousefocus|mousehide|mousem|mousemodel|mouses|mouseshape|mouset|mousetime|mp|mps|msm|mzq|mzquantum|nf|nrformats|numberwidth|nuw|odev|oft|ofu|omnifunc|opendevice|operatorfunc|opfunc|osfiletype|pa|para|paragraphs|paste|pastetoggle|patchexpr|patchmode|path|pdev|penc|pex|pexpr|pfn|ph|pheader|pi|pm|pmbcs|pmbfn|popt|preserveindent|previewheight|previewwindow|printdevice|printencoding|printexpr|printfont|printheader|printmbcharset|printmbfont|printoptions|prompt|pt|pumheight|pvh|pvw|qe|quoteescape|readonly|remap|report|restorescreen|revins|rightleft|rightleftcmd|rl|rlc|ro|rs|rtp|ruf|ruler|rulerformat|runtimepath|sbo|sc|scb|scr|scroll|scrollbind|scrolljump|scrolloff|scrollopt|scs|sect|sections|secure|sel|selection|selectmode|sessionoptions|sft|shcf|shellcmdflag|shellpipe|shellquote|shellredir|shellslash|shelltemp|shelltype|shellxquote|shiftround|shiftwidth|shm|shortmess|shortname|showbreak|showcmd|showfulltag|showmatch|showmode|showtabline|shq|si|sidescroll|sidescrolloff|siso|sj|slm|smartcase|smartindent|smarttab|smc|smd|softtabstop|sol|spc|spell|spellcapcheck|spellfile|spelllang|spellsuggest|spf|spl|splitbelow|splitright|sps|sr|srr|ss|ssl|ssop|stal|startofline|statusline|stl|stmp|su|sua|suffixes|suffixesadd|sw|swapfile|swapsync|swb|swf|switchbuf|sws|sxq|syn|synmaxcol|syntax|tabline|tabpagemax|tabstop|tagbsearch|taglength|tagrelative|tagstack|tal|tb|tbi|tbidi|tbis|tbs|tenc|term|termbidi|termencoding|terse|textauto|textmode|textwidth|tgst|thesaurus|tildeop|timeout|timeoutlen|title|titlelen|titleold|titlestring|toolbar|toolbariconsize|top|tpm|tsl|tsr|ttimeout|ttimeoutlen|ttm|tty|ttybuiltin|ttyfast|ttym|ttymouse|ttyscroll|ttytype|tw|tx|uc|ul|undolevels|updatecount|updatetime|ut|vb|vbs|vdir|verbosefile|vfile|viewdir|viewoptions|viminfo|virtualedit|visualbell|vop|wak|warn|wb|wc|wcm|wd|weirdinvert|wfh|wfw|whichwrap|wi|wig|wildchar|wildcharm|wildignore|wildmenu|wildmode|wildoptions|wim|winaltkeys|window|winfixheight|winfixwidth|winheight|winminheight|winminwidth|winwidth|wiv|wiw|wm|wmh|wmnu|wmw|wop|wrap|wrapmargin|wrapscan|writeany|writebackup|writedelay|ww|noacd|noai|noakm|noallowrevins|noaltkeymap|noanti|noantialias|noar|noarab|noarabic|noarabicshape|noari|noarshape|noautochdir|noautoindent|noautoread|noautowrite|noautowriteall|noaw|noawa|nobackup|noballooneval|nobeval|nobin|nobinary|nobiosk|nobioskey|nobk|nobl|nobomb|nobuflisted|nocf|noci|nocin|nocindent|nocompatible|noconfirm|noconsk|noconskey|nocopyindent|nocp|nocscopetag|nocscopeverbose|nocst|nocsverb|nocuc|nocul|nocursorcolumn|nocursorline|nodeco|nodelcombine|nodg|nodiff|nodigraph|nodisable|noea|noeb|noed|noedcompatible|noek|noendofline|noeol|noequalalways|noerrorbells|noesckeys|noet|noex|noexpandtab|noexrc|nofen|nofk|nofkmap|nofoldenable|nogd|nogdefault|noguipty|nohid|nohidden|nohk|nohkmap|nohkmapp|nohkp|nohls|noic|noicon|noignorecase|noim|noimc|noimcmdline|noimd|noincsearch|noinf|noinfercase|noinsertmode|nois|nojoinspaces|nojs|nolazyredraw|nolbr|nolinebreak|nolisp|nolist|noloadplugins|nolpl|nolz|noma|nomacatsui|nomagic|nomh|noml|nomod|nomodeline|nomodifiable|nomodified|nomore|nomousef|nomousefocus|nomousehide|nonu|nonumber|noodev|noopendevice|nopaste|nopi|nopreserveindent|nopreviewwindow|noprompt|nopvw|noreadonly|noremap|norestorescreen|norevins|nori|norightleft|norightleftcmd|norl|norlc|noro|nors|noru|noruler|nosb|nosc|noscb|noscrollbind|noscs|nosecure|nosft|noshellslash|noshelltemp|noshiftround|noshortname|noshowcmd|noshowfulltag|noshowmatch|noshowmode|nosi|nosm|nosmartcase|nosmartindent|nosmarttab|nosmd|nosn|nosol|nospell|nosplitbelow|nosplitright|nospr|nosr|nossl|nosta|nostartofline|nostmp|noswapfile|noswf|nota|notagbsearch|notagrelative|notagstack|notbi|notbidi|notbs|notermbidi|noterse|notextauto|notextmode|notf|notgst|notildeop|notimeout|notitle|noto|notop|notr|nottimeout|nottybuiltin|nottyfast|notx|novb|novisualbell|nowa|nowarn|nowb|noweirdinvert|nowfh|nowfw|nowildmenu|nowinfixheight|nowinfixwidth|nowiv|nowmnu|nowrap|nowrapscan|nowrite|nowriteany|nowritebackup|nows|invacd|invai|invakm|invallowrevins|invaltkeymap|invanti|invantialias|invar|invarab|invarabic|invarabicshape|invari|invarshape|invautochdir|invautoindent|invautoread|invautowrite|invautowriteall|invaw|invawa|invbackup|invballooneval|invbeval|invbin|invbinary|invbiosk|invbioskey|invbk|invbl|invbomb|invbuflisted|invcf|invci|invcin|invcindent|invcompatible|invconfirm|invconsk|invconskey|invcopyindent|invcp|invcscopetag|invcscopeverbose|invcst|invcsverb|invcuc|invcul|invcursorcolumn|invcursorline|invdeco|invdelcombine|invdg|invdiff|invdigraph|invdisable|invea|inveb|inved|invedcompatible|invek|invendofline|inveol|invequalalways|inverrorbells|invesckeys|invet|invex|invexpandtab|invexrc|invfen|invfk|invfkmap|invfoldenable|invgd|invgdefault|invguipty|invhid|invhidden|invhk|invhkmap|invhkmapp|invhkp|invhls|invhlsearch|invic|invicon|invignorecase|invim|invimc|invimcmdline|invimd|invincsearch|invinf|invinfercase|invinsertmode|invis|invjoinspaces|invjs|invlazyredraw|invlbr|invlinebreak|invlisp|invlist|invloadplugins|invlpl|invlz|invma|invmacatsui|invmagic|invmh|invml|invmod|invmodeline|invmodifiable|invmodified|invmore|invmousef|invmousefocus|invmousehide|invnu|invnumber|invodev|invopendevice|invpaste|invpi|invpreserveindent|invpreviewwindow|invprompt|invpvw|invreadonly|invremap|invrestorescreen|invrevins|invri|invrightleft|invrightleftcmd|invrl|invrlc|invro|invrs|invru|invruler|invsb|invsc|invscb|invscrollbind|invscs|invsecure|invsft|invshellslash|invshelltemp|invshiftround|invshortname|invshowcmd|invshowfulltag|invshowmatch|invshowmode|invsi|invsm|invsmartcase|invsmartindent|invsmarttab|invsmd|invsn|invsol|invspell|invsplitbelow|invsplitright|invspr|invsr|invssl|invsta|invstartofline|invstmp|invswapfile|invswf|invta|invtagbsearch|invtagrelative|invtagstack|invtbi|invtbidi|invtbs|invtermbidi|invterse|invtextauto|invtextmode|invtf|invtgst|invtildeop|invtimeout|invtitle|invto|invtop|invtr|invttimeout|invttybuiltin|invttyfast|invtx|invvb|invvisualbell|invwa|invwarn|invwb|invweirdinvert|invwfh|invwfw|invwildmenu|invwinfixheight|invwinfixwidth|invwiv|invwmnu|invwrap|invwrapscan|invwrite|invwriteany|invwritebackup|invws|t_AB|t_AF|t_al|t_AL|t_bc|t_cd|t_ce|t_Ce|t_cl|t_cm|t_Co|t_cs|t_Cs|t_CS|t_CV|t_da|t_db|t_dl|t_DL|t_EI|t_F1|t_F2|t_F3|t_F4|t_F5|t_F6|t_F7|t_F8|t_F9|t_fs|t_IE|t_IS|t_k1|t_K1|t_k2|t_k3|t_K3|t_k4|t_K4|t_k5|t_K5|t_k6|t_K6|t_k7|t_K7|t_k8|t_K8|t_k9|t_K9|t_KA|t_kb|t_kB|t_KB|t_KC|t_kd|t_kD|t_KD|t_ke|t_KE|t_KF|t_KG|t_kh|t_KH|t_kI|t_KI|t_KJ|t_KK|t_kl|t_KL|t_kN|t_kP|t_kr|t_ks|t_ku|t_le|t_mb|t_md|t_me|t_mr|t_ms|t_nd|t_op|t_RI|t_RV|t_Sb|t_se|t_Sf|t_SI|t_so|t_sr|t_te|t_ti|t_ts|t_ue|t_us|t_ut|t_vb|t_ve|t_vi|t_vs|t_WP|t_WS|t_xs|t_ZH|t_ZR)\\b/,number:/\\b(?:0x[\\da-f]+|\\d+(?:\\.\\d+)?)\\b/i,operator:/\\|\\||&&|[-+.]=?|[=!](?:[=~][#?]?)?|[<>]=?[#?]?|[*\\/%?]|\\b(?:is(?:not)?)\\b/,punctuation:/[{}[\\](),;:]/};\nPrism.languages[\"visual-basic\"]={comment:{pattern:/(?:['ā€˜ā€™]|REM\\b).*/i,inside:{keyword:/^REM/i}},directive:{pattern:/#(?:Const|Else|ElseIf|End|ExternalChecksum|ExternalSource|If|Region)(?:[^\\S\\r\\n]_[^\\S\\r\\n]*(?:\\r\\n?|\\n)|.)+/i,alias:\"comment\",greedy:!0},string:{pattern:/[\"ā€œā€](?:[\"ā€œā€]{2}|[^\"ā€œā€])*[\"ā€œā€]C?/i,greedy:!0},date:{pattern:/#[^\\S\\r\\n]*(?:\\d+([\\/-])\\d+\\1\\d+(?:[^\\S\\r\\n]+(?:\\d+[^\\S\\r\\n]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[^\\S\\r\\n]*(?:AM|PM))?))?|(?:\\d+[^\\S\\r\\n]*(?:AM|PM)|\\d+:\\d+(?::\\d+)?(?:[^\\S\\r\\n]*(?:AM|PM))?))[^\\S\\r\\n]*#/i,alias:\"builtin\"},number:/(?:(?:\\b\\d+(?:\\.\\d+)?|\\.\\d+)(?:E[+-]?\\d+)?|&[HO][\\dA-F]+)(?:U?[ILS]|[FRD])?/i,\"boolean\":/\\b(?:True|False|Nothing)\\b/i,keyword:/\\b(?:AddHandler|AddressOf|Alias|And(?:Also)?|As|Boolean|ByRef|Byte|ByVal|Call|Case|Catch|C(?:Bool|Byte|Char|Date|Dbl|Dec|Int|Lng|Obj|SByte|Short|Sng|Str|Type|UInt|ULng|UShort)|Char|Class|Const|Continue|Date|Decimal|Declare|Default|Delegate|Dim|DirectCast|Do|Double|Each|Else(?:If)?|End(?:If)?|Enum|Erase|Error|Event|Exit|Finally|For|Friend|Function|Get(?:Type|XMLNamespace)?|Global|GoSub|GoTo|Handles|If|Implements|Imports|In|Inherits|Integer|Interface|Is|IsNot|Let|Lib|Like|Long|Loop|Me|Mod|Module|Must(?:Inherit|Override)|My(?:Base|Class)|Namespace|Narrowing|New|Next|Not(?:Inheritable|Overridable)?|Object|Of|On|Operator|Option(?:al)?|Or(?:Else)?|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|Try|TryCast|TypeOf|U(?:Integer|Long|Short)|Using|Variant|Wend|When|While|Widening|With(?:Events)?|WriteOnly|Xor)\\b/i,operator:[/[+\\-*\\/\\\\^<=>&#@$%!]/,{pattern:/([^\\S\\r\\n])_(?=[^\\S\\r\\n]*[\\r\\n])/,lookbehind:!0}],punctuation:/[{}().,:?]/},Prism.languages.vb=Prism.languages[\"visual-basic\"];\nPrism.languages.wasm={comment:[/\\(;[\\s\\S]*?;\\)/,{pattern:/;;.*/,greedy:!0}],string:{pattern:/\"(?:\\\\[\\s\\S]|[^\"\\\\])*\"/,greedy:!0},keyword:[{pattern:/\\b(?:align|offset)=/,inside:{operator:/=/}},{pattern:/\\b(?:(?:f32|f64|i32|i64)(?:\\.(?:abs|add|and|ceil|clz|const|convert_[su]\\/i(?:32|64)|copysign|ctz|demote\\/f64|div(?:_[su])?|eqz?|extend_[su]\\/i32|floor|ge(?:_[su])?|gt(?:_[su])?|le(?:_[su])?|load(?:(?:8|16|32)_[su])?|lt(?:_[su])?|max|min|mul|nearest|neg?|or|popcnt|promote\\/f32|reinterpret\\/[fi](?:32|64)|rem_[su]|rot[lr]|shl|shr_[su]|store(?:8|16|32)?|sqrt|sub|trunc(?:_[su]\\/f(?:32|64))?|wrap\\/i64|xor))?|memory\\.(?:grow|size))\\b/,inside:{punctuation:/\\./}},/\\b(?:anyfunc|block|br(?:_if|_table)?|call(?:_indirect)?|data|drop|elem|else|end|export|func|get_(?:global|local)|global|if|import|local|loop|memory|module|mut|nop|offset|param|result|return|select|set_(?:global|local)|start|table|tee_local|then|type|unreachable)\\b/],variable:/\\$[\\w!#$%&'*+\\-.\\/:<=>?@\\\\^_`|~]+/i,number:/[+-]?\\b(?:\\d(?:_?\\d)*(?:\\.\\d(?:_?\\d)*)?(?:[eE][+-]?\\d(?:_?\\d)*)?|0x[\\da-fA-F](?:_?[\\da-fA-F])*(?:\\.[\\da-fA-F](?:_?[\\da-fA-D])*)?(?:[pP][+-]?\\d(?:_?\\d)*)?)\\b|\\binf\\b|\\bnan(?::0x[\\da-fA-F](?:_?[\\da-fA-D])*)?\\b/,punctuation:/[()]/};\nPrism.languages.wiki=Prism.languages.extend(\"markup\",{\"block-comment\":{pattern:/(^|[^\\\\])\\/\\*[\\s\\S]*?\\*\\//,lookbehind:!0,alias:\"comment\"},heading:{pattern:/^(=+).+?\\1/m,inside:{punctuation:/^=+|=+$/,important:/.+/}},emphasis:{pattern:/('{2,5}).+?\\1/,inside:{\"bold italic\":{pattern:/(''''').+?(?=\\1)/,lookbehind:!0},bold:{pattern:/(''')[^'](?:.*?[^'])?(?=\\1)/,lookbehind:!0},italic:{pattern:/('')[^'](?:.*?[^'])?(?=\\1)/,lookbehind:!0},punctuation:/^''+|''+$/}},hr:{pattern:/^-{4,}/m,alias:\"punctuation\"},url:[/ISBN +(?:97[89][ -]?)?(?:\\d[ -]?){9}[\\dx]\\b|(?:RFC|PMID) +\\d+/i,/\\[\\[.+?\\]\\]|\\[.+?\\]/],variable:[/__[A-Z]+__/,/\\{{3}.+?\\}{3}/,/\\{\\{.+?\\}\\}/],symbol:[/^#redirect/im,/~{3,5}/],\"table-tag\":{pattern:/((?:^|[|!])[|!])[^|\\r\\n]+\\|(?!\\|)/m,lookbehind:!0,inside:{\"table-bar\":{pattern:/\\|$/,alias:\"punctuation\"},rest:Prism.languages.markup.tag.inside}},punctuation:/^(?:\\{\\||\\|\\}|\\|-|[*#:;!|])|\\|\\||!!/m}),Prism.languages.insertBefore(\"wiki\",\"tag\",{nowiki:{pattern:/<(nowiki|pre|source)\\b[\\s\\S]*?>[\\s\\S]*?<\\/\\1>/i,inside:{tag:{pattern:/<(?:nowiki|pre|source)\\b[\\s\\S]*?>|<\\/(?:nowiki|pre|source)>/i,inside:Prism.languages.markup.tag.inside}}}});\n!function(n){n.languages.xeora=n.languages.extend(\"markup\",{constant:{pattern:/\\$(?:DomainContents|PageRenderDuration)\\$/,inside:{punctuation:{pattern:/\\$/}}},variable:{pattern:/\\$@?(?:#+|[-+*~=^])?[\\w.]+\\$/,inside:{punctuation:{pattern:/[$.]/},operator:{pattern:/#+|[-+*~=^@]/}}},\"function-inline\":{pattern:/\\$F:[-\\w.]+\\?[-\\w.]+(?:,(?:\\|?(?:[-#.^+*~]*(?:[\\w+][^$]*)|=(?:[\\S+][^$]*)|@[-#]*(?:\\w+.)[\\w+.]+)?)*)?\\$/,inside:{variable:{pattern:/(?:[,|])@?(?:#+|[-+*~=^])?[\\w.]+/,inside:{punctuation:{pattern:/[,.|]/},operator:{pattern:/#+|[-+*~=^@]/}}},punctuation:{pattern:/\\$\\w:|[$:?.,|]/}},alias:\"function\"},\"function-block\":{pattern:/\\$XF:{[-\\w.]+\\?[-\\w.]+(?:,(?:\\|?(?:[-#.^+*~]*(?:[\\w+][^$]*)|=(?:[\\S+][^$]*)|@[-#]*(?:\\w+.)[\\w+.]+)?)*)?}:XF\\$/,inside:{punctuation:{pattern:/[$:{}?.,|]/}},alias:\"function\"},\"directive-inline\":{pattern:/\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+])?:[-\\/\\w.]+\\$/,inside:{punctuation:{pattern:/\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,inside:{tag:{pattern:/#\\d/}}}},alias:\"function\"},\"directive-block-open\":{pattern:/\\$\\w+:{|\\$\\w(?:#\\d+\\+?)?(?:\\[[-\\w.]+])?:[-\\w.]+:{(![A-Z]+)?/,inside:{punctuation:{pattern:/\\$(?:\\w:|C(?:\\[|#\\d))?|[:{[\\]]/,inside:{tag:{pattern:/#\\d/}}},attribute:{pattern:/![A-Z]+$/,inside:{punctuation:{pattern:/!/}},alias:\"keyword\"}},alias:\"function\"},\"directive-block-separator\":{pattern:/}:[-\\w.]+:{/,inside:{punctuation:{pattern:/[:{}]/}},alias:\"function\"},\"directive-block-close\":{pattern:/}:[-\\w.]+\\$/,inside:{punctuation:{pattern:/[:{}$]/}},alias:\"function\"}}),n.languages.insertBefore(\"inside\",\"punctuation\",{variable:n.languages.xeora[\"function-inline\"].inside.variable},n.languages.xeora[\"function-block\"]),n.languages.xeoracube=n.languages.xeora}(Prism);\nPrism.languages.xojo={comment:{pattern:/(?:'|\\/\\/|Rem\\b).+/i,inside:{keyword:/^Rem/i}},string:{pattern:/\"(?:\"\"|[^\"])*\"/,greedy:!0},number:[/(?:\\b\\d+\\.?\\d*|\\B\\.\\d+)(?:E[+-]?\\d+)?/i,/&[bchou][a-z\\d]+/i],symbol:/#(?:If|Else|ElseIf|Endif|Pragma)\\b/i,keyword:/\\b(?:AddHandler|App|Array|As(?:signs)?|By(?:Ref|Val)|Break|Call|Case|Catch|Const|Continue|CurrentMethodName|Declare|Dim|Do(?:wnTo)?|Each|Else(?:If)?|End|Exit|Extends|False|Finally|For|Global|If|In|Lib|Loop|Me|Next|Nil|Optional|ParamArray|Raise(?:Event)?|ReDim|Rem|RemoveHandler|Return|Select|Self|Soft|Static|Step|Super|Then|To|True|Try|Ubound|Until|Using|Wend|While)\\b/i,operator:/<[=>]?|>=?|[+\\-*\\/\\\\^=]|\\b(?:AddressOf|And|Ctype|IsA?|Mod|New|Not|Or|Xor|WeakAddressOf)\\b/i,punctuation:/[.,;:()]/};\n!function(e){e.languages.xquery=e.languages.extend(\"markup\",{\"xquery-comment\":{pattern:/\\(:[\\s\\S]*?:\\)/,greedy:!0,alias:\"comment\"},string:{pattern:/([\"'])(?:\\1\\1|(?!\\1)[\\s\\S])*\\1/,greedy:!0},extension:{pattern:/\\(#.+?#\\)/,alias:\"symbol\"},variable:/\\$[\\w-:]+/,axis:{pattern:/(^|[^-])(?:ancestor(?:-or-self)?|attribute|child|descendant(?:-or-self)?|following(?:-sibling)?|parent|preceding(?:-sibling)?|self)(?=::)/,lookbehind:!0,alias:\"operator\"},\"keyword-operator\":{pattern:/(^|[^:-])\\b(?:and|castable as|div|eq|except|ge|gt|idiv|instance of|intersect|is|le|lt|mod|ne|or|union)\\b(?=$|[^:-])/,lookbehind:!0,alias:\"operator\"},keyword:{pattern:/(^|[^:-])\\b(?:as|ascending|at|base-uri|boundary-space|case|cast as|collation|construction|copy-namespaces|declare|default|descending|else|empty (?:greatest|least)|encoding|every|external|for|function|if|import|in|inherit|lax|let|map|module|namespace|no-inherit|no-preserve|option|order(?: by|ed|ing)?|preserve|return|satisfies|schema|some|stable|strict|strip|then|to|treat as|typeswitch|unordered|validate|variable|version|where|xquery)\\b(?=$|[^:-])/,lookbehind:!0},\"function\":/[\\w-]+(?::[\\w-]+)*(?=\\s*\\()/,\"xquery-element\":{pattern:/(element\\s+)[\\w-]+(?::[\\w-]+)*/,lookbehind:!0,alias:\"tag\"},\"xquery-attribute\":{pattern:/(attribute\\s+)[\\w-]+(?::[\\w-]+)*/,lookbehind:!0,alias:\"attr-name\"},builtin:{pattern:/(^|[^:-])\\b(?:attribute|comment|document|element|processing-instruction|text|xs:(?:anyAtomicType|anyType|anyURI|base64Binary|boolean|byte|date|dateTime|dayTimeDuration|decimal|double|duration|ENTITIES|ENTITY|float|gDay|gMonth|gMonthDay|gYear|gYearMonth|hexBinary|ID|IDREFS?|int|integer|language|long|Name|NCName|negativeInteger|NMTOKENS?|nonNegativeInteger|nonPositiveInteger|normalizedString|NOTATION|positiveInteger|QName|short|string|time|token|unsigned(?:Byte|Int|Long|Short)|untyped(?:Atomic)?|yearMonthDuration))\\b(?=$|[^:-])/,lookbehind:!0},number:/\\b\\d+(?:\\.\\d+)?(?:E[+-]?\\d+)?/,operator:[/[+*=?|@]|\\.\\.?|:=|!=|<[=<]?|>[=>]?/,{pattern:/(\\s)-(?=\\s)/,lookbehind:!0}],punctuation:/[[\\](){},;:\\/]/}),e.languages.xquery.tag.pattern=/<\\/?(?!\\d)[^\\s>\\/=$<%]+(?:\\s+[^\\s>\\/=]+(?:=(?:(\"|')(?:\\\\[\\s\\S]|{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+))?)*\\s*\\/?>/i,e.languages.xquery.tag.inside[\"attr-value\"].pattern=/=(?:(\"|')(?:\\\\[\\s\\S]|{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}|(?!\\1)[^\\\\])*\\1|[^\\s'\">=]+)/i,e.languages.xquery.tag.inside[\"attr-value\"].inside.punctuation=/^=\"|\"$/,e.languages.xquery.tag.inside[\"attr-value\"].inside.expression={pattern:/{(?!{)(?:{(?:{[^}]*}|[^}])*}|[^}])+}/,inside:{rest:e.languages.xquery},alias:\"language-xquery\"};var t=function(e){return\"string\"==typeof e?e:\"string\"==typeof e.content?e.content:e.content.map(t).join(\"\")},n=function(a){for(var o=[],i=0;i0&&o[o.length-1].tagName===t(r.content[0].content[1])&&o.pop():\"/>\"===r.content[r.content.length-1].content||o.push({tagName:t(r.content[0].content[1]),openedBraces:0}):!(o.length>0&&\"punctuation\"===r.type&&\"{\"===r.content)||a[i+1]&&\"punctuation\"===a[i+1].type&&\"{\"===a[i+1].content||a[i-1]&&\"plain-text\"===a[i-1].type&&\"{\"===a[i-1].content?o.length>0&&o[o.length-1].openedBraces>0&&\"punctuation\"===r.type&&\"}\"===r.content?o[o.length-1].openedBraces--:\"comment\"!==r.type&&(s=!0):o[o.length-1].openedBraces++),(s||\"string\"==typeof r)&&o.length>0&&0===o[o.length-1].openedBraces){var l=t(r);i0&&(\"string\"==typeof a[i-1]||\"plain-text\"===a[i-1].type)&&(l=t(a[i-1])+l,a.splice(i-1,1),i--),a[i]=/^\\s+$/.test(l)?l:new e.Token(\"plain-text\",l,null,l)}r.content&&\"string\"!=typeof r.content&&n(r.content)}};e.hooks.add(\"after-tokenize\",function(e){\"xquery\"===e.language&&n(e.tokens)})}(Prism);\nPrism.languages.tap={fail:/not ok[^#{\\n\\r]*/,pass:/ok[^#{\\n\\r]*/,pragma:/pragma [+-][a-z]+/,bailout:/bail out!.*/i,version:/TAP version \\d+/i,plan:/\\d+\\.\\.\\d+(?: +#.*)?/,subtest:{pattern:/# Subtest(?:: .*)?/,greedy:!0},punctuation:/[{}]/,directive:/#.*/,yamlish:{pattern:/(^[^\\S\\r\\n]*)---(?:\\r\\n?|\\n)(?:.*(?:\\r\\n?|\\n))*?[^\\S\\r\\n]*\\.\\.\\.$/m,lookbehind:!0,inside:Prism.languages.yaml,alias:\"language-yaml\"}};\n!function(){function e(e,t){return Array.prototype.slice.call((t||document).querySelectorAll(e))}function t(e,t){return t=\" \"+t+\" \",(\" \"+e.className+\" \").replace(/[\\n\\t]/g,\" \").indexOf(t)>-1}function n(e,n,i){n=\"string\"==typeof n?n:e.getAttribute(\"data-line\");for(var o,l=n.replace(/\\s+/g,\"\").split(\",\"),a=+e.getAttribute(\"data-line-offset\")||0,s=r()?parseInt:parseFloat,d=s(getComputedStyle(e).lineHeight),u=t(e,\"line-numbers\"),c=0;o=l[c++];){var p=o.split(\"-\"),m=+p[0],f=+p[1]||m,h=e.querySelector('.line-highlight[data-range=\"'+o+'\"]')||document.createElement(\"div\");if(h.setAttribute(\"aria-hidden\",\"true\"),h.setAttribute(\"data-range\",o),h.className=(i||\"\")+\" line-highlight\",u&&Prism.plugins.lineNumbers){var g=Prism.plugins.lineNumbers.getLine(e,m),y=Prism.plugins.lineNumbers.getLine(e,f);g&&(h.style.top=g.offsetTop+\"px\"),y&&(h.style.height=y.offsetTop-g.offsetTop+y.offsetHeight+\"px\")}else h.setAttribute(\"data-start\",m),f>m&&h.setAttribute(\"data-end\",f),h.style.top=(m-a-1)*d+\"px\",h.textContent=new Array(f-m+2).join(\" \\n\");u?e.appendChild(h):(e.querySelector(\"code\")||e).appendChild(h)}}function i(){var t=location.hash.slice(1);e(\".temporary.line-highlight\").forEach(function(e){e.parentNode.removeChild(e)});var i=(t.match(/\\.([\\d,-]+)$/)||[,\"\"])[1];if(i&&!document.getElementById(t)){var r=t.slice(0,t.lastIndexOf(\".\")),o=document.getElementById(r);o&&(o.hasAttribute(\"data-line\")||o.setAttribute(\"data-line\",\"\"),n(o,i,\"temporary \"),document.querySelector(\".temporary.line-highlight\").scrollIntoView())}}if(\"undefined\"!=typeof self&&self.Prism&&self.document&&document.querySelector){var r=function(){var e;return function(){if(\"undefined\"==typeof e){var t=document.createElement(\"div\");t.style.fontSize=\"13px\",t.style.lineHeight=\"1.5\",t.style.padding=0,t.style.border=0,t.innerHTML=\" 
 \",document.body.appendChild(t),e=38===t.offsetHeight,document.body.removeChild(t)}return e}}(),o=0;Prism.hooks.add(\"before-sanity-check\",function(t){var n=t.element.parentNode,i=n&&n.getAttribute(\"data-line\");if(n&&i&&/pre/i.test(n.nodeName)){var r=0;e(\".line-highlight\",n).forEach(function(e){r+=e.textContent.length,e.parentNode.removeChild(e)}),r&&/^( \\n)+$/.test(t.code.slice(-r))&&(t.code=t.code.slice(0,-r))}}),Prism.hooks.add(\"complete\",function l(e){var r=e.element.parentNode,a=r&&r.getAttribute(\"data-line\");if(r&&a&&/pre/i.test(r.nodeName)){clearTimeout(o);var s=Prism.plugins.lineNumbers,d=e.plugins&&e.plugins.lineNumbers;t(r,\"line-numbers\")&&s&&!d?Prism.hooks.add(\"line-numbers\",l):(n(r,a),o=setTimeout(i,1))}}),window.addEventListener(\"hashchange\",i),window.addEventListener(\"resize\",function(){var e=document.querySelectorAll(\"pre[data-line]\");Array.prototype.forEach.call(e,function(e){n(e)})})}}();\n!function(){\"undefined\"!=typeof self&&!self.Prism||\"undefined\"!=typeof global&&!global.Prism||Prism.hooks.add(\"wrap\",function(e){\"keyword\"===e.type&&e.classes.push(\"keyword-\"+e.content)})}();\n!function(){function e(e){this.defaults=r({},e)}function n(e){return e.replace(/-(\\w)/g,function(e,n){return n.toUpperCase()})}function t(e){for(var n=0,t=0;tn&&(o[s]=\"\\n\"+o[s],a=l)}r[i]=o.join(\"\")}return r.join(\"\\n\")}},\"undefined\"!=typeof module&&module.exports&&(module.exports=e),\"undefined\"!=typeof Prism&&(Prism.plugins.NormalizeWhitespace=new e({\"remove-trailing\":!0,\"remove-indent\":!0,\"left-trim\":!0,\"right-trim\":!0}),Prism.hooks.add(\"before-sanity-check\",function(e){var n=Prism.plugins.NormalizeWhitespace;if(!e.settings||e.settings[\"whitespace-normalization\"]!==!1){if((!e.element||!e.element.parentNode)&&e.code)return e.code=n.normalize(e.code,e.settings),void 0;var t=e.element.parentNode,r=/\\bno-whitespace-normalization\\b/;if(e.code&&t&&\"pre\"===t.nodeName.toLowerCase()&&!r.test(t.className)&&!r.test(e.element.className)){for(var i=t.childNodes,o=\"\",a=\"\",s=!1,l=0;l= 1) {\n\t\t\t\tthis.collection = selector;\n\t\t\t} else {\n\t\t\t\tthis.collection = [selector];\n\t\t\t}\n\t\t\tthis.length = this.collection.length;\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t}\n\n\t/**\n\t * Hide elements by setting their `display` property to 'none'.\n\t */\n\thide () {\n\t\tfor (const element of this.collection) {\n\t\t\telement.style.display = 'none';\n\t\t}\n\t}\n\n\t/**\n\t * Show elements by setting their `display` property to the given value.\n\t *\n\t * @param {string} [display='block'] - Display property to set\n\t */\n\tshow (display = 'block') {\n\t\tfor (const element of this.collection) {\n\t\t\telement.style.display = display;\n\t\t}\n\t}\n\n\t/**\n\t * Add a class to the classList object\n\t *\n\t * @param {string} newClass - Class name to add\n\t */\n\taddClass (newClass) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.classList.add (newClass);\n\t\t}\n\t}\n\n\t/**\n\t * Remove a given class from the classList object\n\t *\n\t * @param {string} [oldClass=null] - Class to remove. If it's empty or null,\n\t * all classes will be removed\n\t */\n\tremoveClass (oldClass = null) {\n\t\tif (oldClass !== null) {\n\t\t\tfor (const element of this.collection) {\n\t\t\t\telement.classList.remove (oldClass);\n\t\t\t}\n\t\t} else {\n\t\t\tfor (const element of this.collection) {\n\t\t\t\twhile (element.classList.length > 0) {\n\t\t\t\t\telement.classList.remove (element.classList.item (0));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Toggle between two classes\n\t *\n\t * @param {string} classes - Space separated class names\n\t */\n\ttoggleClass (classes) {\n\t\tclasses = classes.split (' ');\n\t\tfor (const element of this.collection) {\n\t\t\tfor (let j = 0; j < classes.length; j++) {\n\t\t\t\telement.classList.toggle (classes[j]);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Check if the first element matching the selector has the given class\n\t *\n\t * @param {string} classToCheck - Class name to check for\n\t * @return {boolean} - Whether the class is present or not\n\t */\n\thasClass (classToCheck) {\n\t\tif (this.collection[0]) {\n\t\t\tfor (let j = 0; j < this.collection[0].classList.length; j++) {\n\t\t\t\tif (this.collection[0].classList[j] == classToCheck) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Get or set the value from the first element matching the selector\n\t *\n\t * @param {string} value - Value to set to the element.\n\t * @return {string} - If no value was provided, this returns the value of the\n\t * element instead of setting it\n\t */\n\tvalue (value) {\n\t\tif (this.length > 0) {\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\treturn this.collection[0].value;\n\t\t\t} else {\n\t\t\t\tthis.collection[0].value = value;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Focus on the first element matching the selector\n\t */\n\tfocus () {\n\t\tif (this.length > 0) {\n\t\t\tthis.collection[0].focus ();\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback for the 'click' event on every element matching the selector\n\t *\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\tclick (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.addEventListener ('click', callback, false);\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback for the 'keyup' event on every element matching the selector\n\t *\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\tkeyup (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.addEventListener ('keyup', callback, false);\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback for the 'keydown' event on every element matching the selector\n\t *\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\tkeydown (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.addEventListener ('keydown', callback, false);\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback for the 'submit' event on every element matching the selector\n\t *\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\tsubmit (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.addEventListener ('submit', callback, false);\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback for the 'change' event on every element matching the selector\n\t *\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\tchange (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.addEventListener ('change', callback, false);\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback for the 'scroll' event on every element matching the selector\n\t *\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\tscroll (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.addEventListener ('scroll', callback, false);\n\t\t}\n\t}\n\n\t/**\n\t * Add a callback function to a given event\n\t *\n\t * @param {string} event - Event to add the listener to\n\t * @param {string} target - Target element on which to detect the event\n\t * @param {function} callback - Callback function to run when the event is triggered\n\t */\n\ton (event, target, callback) {\n\t\tevent = event.split(' ');\n\t\tfor (const element of this.collection) {\n\t\t\tfor (let j = 0; j < event.length; j++) {\n\n\t\t\t\t// Check if no target was defined and just a function was provided\n\t\t\t\tif (typeof target === 'function') {\n\t\t\t\t\telement.addEventListener(event[j], target, false);\n\t\t\t\t} else if (typeof target === 'string' && typeof callback === 'function') {\n\t\t\t\t\telement.addEventListener(event[j], (e) => {\n\t\t\t\t\t\tif (e.target && $_(e.target).matches (target)) {\n\t\t\t\t\t\t\tcallback.call (e.target, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, false);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Filter from the current collection to only those matching the new selector\n\t *\n\t * @param {string} element - Selector to filter the collection with\n\t * @return {DOM} - New DOM instance with the filtered collection\n\t */\n\tfilter (selector) {\n\t\tif (this.length > 0) {\n\t\t\treturn new DOM (this.collection[0].querySelector (selector));\n\t\t}\n\t}\n\n\t/**\n\t * Get or set a `data` property\n\t *\n\t * @param {string} name - Name of the data property\n\t * @param {string} [value] - Value of the property\n\t * @return {string} - If no value is set, this function returns it's current value\n\t */\n\tdata (name, value) {\n\t\tif (this.length > 0) {\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\treturn this.collection[0].dataset[name];\n\t\t\t} else {\n\t\t\t\tthis.collection[0].dataset[name] = value;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Get or set the text of the first element matching the selector\n\t *\n\t * @param {string} [value] - Value to set the text to\n\t * @return {type} - If no value is present, this function returns its the\n\t * element's current text.\n\t */\n\ttext (value) {\n\t\tif (this.length > 0) {\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\treturn this.collection[0].textContent;\n\t\t\t} else {\n\t\t\t\tthis.collection[0].textContent = value;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Get or set the inner HTML of the first element matching the selector\n\t *\n\t * @param {string} [value] - Value to set the HTML to\n\t * @return {type} - If no value is present, this function returns its the\n\t * element's current HTML.\n\t */\n\thtml (value) {\n\t\tif (this.length > 0) {\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\treturn this.collection[0].innerHTML;\n\t\t\t} else {\n\t\t\t\tthis.collection[0].innerHTML = value;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Append an element to the first element matching the selector\n\t *\n\t * @param {string} element - String representation of the element to add\n\t */\n\tappend (element) {\n\t\tif (this.length > 0) {\n\t\t\tif (typeof element === 'string') {\n\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\tif (typeof element === 'string') {\n\t\t\t\t\tdiv.innerHTML = element.trim ();\n\t\t\t\t} else {\n\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t}\n\t\t\t\tthis.collection[0].appendChild (div.firstChild);\n\t\t\t} else {\n\t\t\t\tthis.collection[0].appendChild (element);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Prepend an element to the first element matching the selector\n\t *\n\t * @param {string} element - String representation of the element to add\n\t */\n\tprepend (element) {\n\t\tif (this.length > 0) {\n\t\t\tif (typeof element === 'string') {\n\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\tif (typeof element === 'string') {\n\t\t\t\t\tdiv.innerHTML = element.trim ();\n\t\t\t\t} else {\n\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t}\n\t\t\t\tif (this.collection[0].childNodes.length > 0) {\n\t\t\t\t\tthis.collection[0].insertBefore (div.firstChild, this.collection[0].childNodes[0]);\n\t\t\t\t} else {\n\t\t\t\t\tthis.collection[0].appendChild (div.firstChild);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (this.collection[0].childNodes.length > 0) {\n\t\t\t\t\tthis.collection[0].insertBefore (element, this.collection[0].childNodes[0]);\n\t\t\t\t} else {\n\t\t\t\t\tthis.collection[0].appendChild (element);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Iterate over the collection of elements matching the selector\n\t *\n\t * @param {function} callback - Callback to run for every element\n\t */\n\teach (callback) {\n\t\tfor (const element of this.collection) {\n\t\t\tcallback (element);\n\t\t}\n\t}\n\n\t/**\n\t * Get an element from the collection given it's index\n\t *\n\t * @param {int} index - Index of the element to retrieve\n\t * @return {HTMLElement} - HTML Element in the position indicated by the index\n\t */\n\tget (index) {\n\t\treturn this.collection[index];\n\t}\n\n\t/**\n\t * Get the first element in the collection\n\t *\n\t * @return {DOM} - DOM instance with the first element\n\t */\n\tfirst () {\n\t\tif (this.length > 0) {\n\t\t\treturn new DOM (this.collection[0]);\n\t\t}\n\t}\n\n\t/**\n\t * Get the last element in the collection\n\t *\n\t * @return {DOM} - DOM instance with the last element\n\t */\n\tlast () {\n\t\tif (this.length > 0) {\n\t\t\treturn new DOM (this.collection[this.collection.length - 1]);\n\t\t}\n\t}\n\n\t/**\n\t * Check if the elements in the collection are visible by chacking their\n\t * display, offsetWidth and offsetHeight properties\n\t *\n\t * @return {boolean} - Whether the elements are visible or not\n\t */\n\tisVisible () {\n\t\tfor (const element of this.collection) {\n\t\t\tif (element.display != 'none' && element.offsetWidth > 0 && element.offsetHeight > 0) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n\n\t/**\n\t * Get the parent of the first element matching the selector\n\t *\n\t * @return {DOM} - DOM instance of the parent element\n\t */\n\tparent () {\n\t\tif (this.collection[0]) {\n\t\t\treturn new DOM (this.collection[0].parentElement);\n\t\t}\n\t}\n\n\t/**\n\t * Find an element that matches the given selector in the first element of the collection\n\t *\n\t * @param {string} selector - Selector to find the element with\n\t * @return {DOM} - Aegis instance with the element if found\n\t */\n\tfind (selector) {\n\t\tif (this.collection[0]) {\n\t\t\treturn new DOM (this.collection[0].querySelectorAll (selector));\n\t\t}\n\t}\n\n\t/**\n\t * Get the top and left offsets of the first element matching the selector\n\t *\n\t * @return {Object} - Object with `top` and `left` offsets\n\t */\n\toffset () {\n\t\tif (this.collection[0]) {\n\t\t\tconst rect = this.collection[0].getBoundingClientRect ();\n\t\t\treturn {\n\t\t\t\ttop: rect.top + document.body.scrollTop,\n\t\t\t\tleft: rect.left + document.body.scrollLeft\n\t\t\t};\n\t\t}\n\t}\n\n\t/**\n\t * Find the closest element matching the given selector. This bubbles up\n\t * from the initial object and then follows to its parents.\n\t *\n\t * @param {string} selector - Selector to match the closest element with\n\t * @return {DOM} - DOM instance with the closest HTML element matching the selector\n\t */\n\tclosest (selector) {\n\t\tlet found = null;\n\t\tlet element = this;\n\t\twhile (typeof element.get (0) !== 'undefined' && found === null) {\n\t\t\tconst search = element.find (selector);\n\t\t\tif (search.length > 0) {\n\t\t\t\tfound = search;\n\t\t\t}\n\t\t\telement = element.parent ();\n\t\t}\n\n\t\tif (found !== null) {\n\t\t\treturn found;\n\t\t}\n\n\t\treturn element;\n\t}\n\n\t/**\n\t * Get or set the value of a given attribute\n\t *\n\t * @param {string} attribute - Attribute's name\n\t * @param {string|Number} [value] - Value to set the attribute to\n\t * @return {type} - If no value is provided, this function returns the current\n\t * value of the provided attribute\n\t */\n\tattribute (attribute, value) {\n\t\tif (this.collection[0]) {\n\t\t\tif (typeof value === 'undefined') {\n\t\t\t\tthis.collection[0].getAttribute (attribute);\n\t\t\t} else {\n\t\t\t\treturn this.collection[0].setAttribute (attribute, value);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Check whether an element has an attribute or not\n\t *\n\t * @param {string} attribute - The name of the attribute to check existance for\n\t * @returns {boolean} - Whether or not the attribute is present\n\t */\n\thasAttribute (attribute) {\n\t\tif (this.collection[0]) {\n\t\t\treturn this.collection[0].hasAttribute (attribute);\n\t\t}\n\t}\n\n\t/**\n\t * Insert content to the `after` property of an element\n\t *\n\t * @param {string} content - String representation of the content to add\n\t */\n\tafter (content) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.insertAdjacentHTML ('afterend', content);\n\t\t}\n\t}\n\n\t/**\n\t * Insert content to the `before` property of an element\n\t *\n\t * @param {string} content - String representation of the content to add\n\t */\n\tbefore (content) {\n\t\tfor (const element of this.collection) {\n\t\t\telement.insertAdjacentHTML ('beforebegin', content);\n\t\t}\n\t}\n\n\t/**\n\t * Get or modify the `style` properties of the elements matching the selector\n\t *\n\t * @param {string|Object} properties - Properties to change or get. Can be\n\t * either an individual property or a JSON object with key-value pairs\n\t * @param {string} [value] - Value to set the property to when only changing\n\t * one property\n\t * @return {string} - If a peoperty is given but not a value for it, this\n\t * function will return its current value\n\t */\n\tstyle (properties, value) {\n\t\tfor (let i = 0; i < this.collection.length; i++) {\n\t\t\tif (typeof properties === 'string' && value !== 'undefined') {\n\t\t\t\tthis.collection[i].style[properties] = value;\n\t\t\t} else if (typeof properties === 'string' && value === 'undefined') {\n\t\t\t\treturn this.collection[i].style[properties];\n\t\t\t} else if (typeof properties === 'object') {\n\t\t\t\tfor (const property in properties) {\n\t\t\t\t\tthis.collection[i].style[property] = properties[property];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Animate the given `style` properties on all elements in the collection in\n\t * with a given time duration\n\t *\n\t * @param {Object} style - JSON object with the key-value pairs of properties\n\t * to animate\n\t * @param {int} time - Time in milliseconds during which the properties will\n\t * be animated\n\t */\n\tanimate (style, time) {\n\t\tfor (let i = 0; i < this.collection.length; i++) {\n\t\t\tfor (const property in style) {\n\n\t\t\t\tconst start = new Date().getTime();\n\t\t\t\tconst collection = this.collection;\n\t\t\t\tlet timer;\n\t\t\t\tlet initialValue;\n\t\t\t\tif (typeof this.collection[i].style[property] !== 'undefined') {\n\t\t\t\t\tinitialValue = this.collection[i].style[property];\n\n\t\t\t\t\ttimer = setInterval (() => {\n\t\t\t\t\t\tconst step = Math.min (1, (new Date ().getTime () - start) / time);\n\n\t\t\t\t\t\tcollection[i].style[property] = (initialValue + step * (style[property] - initialValue));\n\n\t\t\t\t\t\tif (step == 1) {\n\t\t\t\t\t\t\tclearInterval (timer);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 25);\n\t\t\t\t\tthis.collection[i].style[property] = initialValue;\n\n\t\t\t\t} else if (typeof (this.collection[i])[property] !== 'undefined') {\n\t\t\t\t\tinitialValue = (this.collection[i])[property];\n\n\t\t\t\t\ttimer = setInterval(() => {\n\t\t\t\t\t\tconst step = Math.min (1, (new Date ().getTime () - start) / time);\n\n\t\t\t\t\t\t(collection[i])[property] = (initialValue + step * (style[property] - initialValue));\n\n\t\t\t\t\t\tif (step == 1) {\n\t\t\t\t\t\t\tclearInterval (timer);\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 25);\n\t\t\t\t\t(this.collection[i])[property] = initialValue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Use a fade in animation i the first element matching the selector\n\t *\n\t * @param {type} [time=400] - Time duration for the animation\n\t * @param {type} callback - Callback function to run once the animation is over\n\t */\n\tfadeIn (time = 400, callback) {\n\t\tif (this.collection[0]) {\n\t\t\tconst element = this.collection[0];\n\t\t\telement.style.opacity = 0;\n\n\t\t\tlet last = +new Date();\n\n\t\t\tconst tick = () => {\n\t\t\t\telement.style.opacity = +element.style.opacity + (new Date() - last) / time;\n\t\t\t\tlast = +new Date();\n\n\t\t\t\tif (+element.style.opacity < 1) {\n\t\t\t\t\t(window.requestAnimationFrame && requestAnimationFrame(tick)) || setTimeout(tick, 16);\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof callback === 'function') {\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\n\t\t\ttick();\n\t\t}\n\t}\n\n\t/**\n\t * Use a fade out animation i the first element matching the selector\n\t *\n\t * @param {type} [time=400] - Time duration for the animation\n\t * @param {type} callback - Callback function to run once the animation is over\n\t */\n\tfadeOut (time = 400, callback) {\n\t\tif (this.collection[0]) {\n\t\t\tlet last = +new Date ();\n\t\t\tconst element = this.collection[0];\n\t\t\tconst tick = () => {\n\t\t\t\telement.style.opacity = +element.style.opacity - (new Date() - last) / time;\n\t\t\t\tlast = +new Date ();\n\n\t\t\t\tif (+element.style.opacity > 0) {\n\t\t\t\t\t(window.requestAnimationFrame && requestAnimationFrame (tick)) || setTimeout(tick, 16);\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof callback === 'function') {\n\t\t\t\t\t\tcallback ();\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t};\n\t\t\ttick ();\n\t\t}\n\t}\n\n\t/**\tCheck if the first element in the collection matches a given selector\n\t *\n\t * @param {string} selector - Selector to match\n\t * @return {boolean} - Whether the element matches the selector or not\n\t */\n\tmatches (selector) {\n\t\tconst check = Element.prototype;\n\t\tconst polyfill = check.matches || check.webkitMatchesSelector || check.mozMatchesSelector || check.msMatchesSelector || function () {\n\t\t\treturn [].indexOf.call (document.querySelectorAll (selector), this) !== -1;\n\t\t};\n\t\treturn polyfill.call (this.collection[0], selector);\n\t}\n\n\t/**\n\t * Remove all elemets in the collection\n\t */\n\tremove () {\n\t\tfor (const element of this.collection) {\n\t\t\telement.parentNode.removeChild (element);\n\t\t}\n\t}\n\n\t/**\n\t * Replace the first element in the collection with a new one\n\t */\n\treplaceWith (element) {\n\t\tif (this.collection[0]) {\n\t\t\tif (typeof element === 'string') {\n\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\tdiv.innerHTML = element;\n\t\t\t\tthis.collection[0].parentElement.replaceChild (div.firstChild, this.collection[0]);\n\t\t\t} else {\n\t\t\t\tthis.collection[0].parentElement.replaceChild (element, this.collection[0]);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Reset every element in the collection\n\t */\n\treset () {\n\t\tif (this.length > 0) {\n\t\t\tthis.collection[0].reset ();\n\t\t}\n\t}\n\n\t/**\n\t * Get or set a property for the first element in the collection\n\t *\n\t * @param {string} property - Property name to set or get\n\t * @param {string|Number} [value] - Value to set the property to\n\t * @return {string|Number} - If no value is provided, this funcion will return the\n\t * current value of the indicated property\n\t */\n\tproperty (property, value) {\n\t\tif (this.collection[0]) {\n\t\t\tif (typeof value !== 'undefined') {\n\t\t\t\tthis.collection[0][property] = value;\n\t\t\t} else {\n\t\t\t\treturn this.collection[0][property];\n\t\t\t}\n\t\t}\n\t}\n}\n\n/**\n * Simple wrapper function to use the DOM library\n *\n * @param {string|Object|array} selector - Selector or DOM element to use\n * @return {DOM} - DOM instance or class if no selector is used\n */\nexport function $_ (selector) {\n\tif (typeof selector !== 'undefined') {\n\t\treturn new DOM (selector);\n\t} else {\n\t\treturn DOM;\n\t}\n}\n\n/**\n * Utility function to attach the 'load' listener to the window\n *\n * @param {function} callback - Callback function to run when the window is ready\n */\nexport function $_ready (callback) {\n\twindow.addEventListener ('load', callback);\n}","/**\n* ==============================\n* Request\n* ==============================\n*/\n\n/**\n * Simple Wrapper for the fetch API, providing simple functions to handle requests\n *\n * @class\n */\nexport class Request {\n\n\t/**\n\t * @static serialize - Serialize an object of data into a URI encoded format\n\t *\n\t * @param {Object} data - Key-value object of data to serialize\n\t * @return {string} - Serialized Data\n\t */\n\tstatic serialize (data) {\n\t\treturn Object.keys (data).map ((key) => {\n\t\t\treturn encodeURIComponent (key) + '=' + encodeURIComponent (data[key]);\n\t\t}).join ('&');\n\t}\n\n\t/**\n\t * @static get - Make a GET request to a given URL with the provided data\n\t * parameters and an optional configuration object for the request.\n\t *\n\t * @param {string} url - URL to make the request to\n\t * @param {Object} [data = {}] - Parameters to send in the URL, represented\n\t * as a JSON object. These parameters will be sent as a query in the URL\n\t * @param {Object} [options = {}] - Options object for configurations you want\n\t * to use in the fetch () request made.\n\t * @return {Promise} - Resolves to the response of the request\n\t */\n\tstatic get (url, data = {}, options = {}) {\n\t\tconst query = Request.serialize (data);\n\n\t\t// Check if there is actually any data parameters and join them to the\n\t\t// url as query parameters\n\t\tif (query !== '') {\n\t\t\turl = `${url}?${query}`;\n\t\t}\n\n\t\treturn fetch (url, options);\n\t}\n\n\t/**\n\t * @static post - Make a POST request to a given URL with the provided data\n\t * and an optional configuration object for the request.\n\t *\n\t * @param {string} url - URL to make the request\n\t * @param {Object} [data = {}] - Set of data to send in the URL, represented\n\t * as a JSON object\n \t * @param {Object} [options = {}] - Options object for configurations you want\n\t * to use in the fetch () request made. The Content-Type header is used to\n\t * serialize data in the correct format and defaults to application/x-www-form-urlencoded\n\t * @return {Promise} - Resolves to the response of the request\n\t */\n\tstatic post (url, data, options = {}) {\n\t\tlet formData;\n\n\t\tif (typeof options.headers !== 'undefined') {\n\t\t\tconst contentType = options.headers['Content-Type'];\n\t\t\tif (typeof contentType !== 'undefined') {\n\t\t\t\tif (contentType == 'multipart/form-data') {\n\t\t\t\t\tformData = new FormData ();\n\t\t\t\t\tfor (const value in data) {\n\t\t\t\t\t\tformData.append (value, data[value]);\n\t\t\t\t\t}\n\t\t\t\t} else if (contentType == 'application/json') {\n\t\t\t\t\tformData = JSON.stringify (data);\n\t\t\t\t} else {\n\t\t\t\t\tformData = Request.serialize (data);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tformData = Request.serialize (data);\n\t\t}\n\n\t\tconst props = Object.assign ({}, {\n\t\t\tmethod: 'POST',\n\t\t\theaders: {\n\t\t\t\t'Content-Type': 'application/x-www-form-urlencoded'\n\t\t\t},\n\t\t\tbody: formData\n\t\t}, options);\n\n\t\t// Delete the explicit multipart/form-data header to allow boundary automatic filling\n\t\tif (typeof props.headers !== 'undefined') {\n\t\t\tif (props.headers['Content-Type'] === 'multipart/form-data') {\n\t\t\t\tdelete props.headers['Content-Type'];\n\t\t\t}\n\t\t}\n\n\t\treturn fetch (url, props);\n\t}\n\n\t/**\n\t * @static put - Make a PUT request to a given URL with the provided data\n\t * and an optional configuration object for the request.\n\t *\n\t * @param {string} url - URL to make the request\n\t * @param {Object} [data = {}] - Set of data to send in the URL, represented\n\t * as a JSON object\n \t * @param {Object} [options = {}] - Options object for configurations you want\n\t * to use in the fetch () request made. The Content-Type header is used to\n\t * serialize data in the correct format and defaults to application/x-www-form-urlencoded\n\t * @return {Promise} - Resolves to the response of the request\n\t */\n\tstatic put (url, data, options = {}) {\n\t\treturn Request.post (url, data, Object.assign ({}, {method: 'PUT'}, options));\n\t}\n\n\t/**\n\t * @static delete - Make a DELETE request to a given URL with the provided data\n\t * and an optional configuration object for the request.\n\t *\n\t * @param {string} url - URL to make the request\n\t * @param {Object} [data = {}] - Parameters to send in the URL, represented\n\t * as a JSON object. These parameters will be sent as a query in the URL\n \t * @param {Object} [options = {}] - Options object for configurations you want\n\t * to use in the fetch () request made. The Content-Type header is used to\n\t * serialize data in the correct format and defaults to application/x-www-form-urlencoded\n\t * @return {Promise} - Resolves to the response of the request\n\t */\n\tstatic delete (url, data, options = {}) {\n\t\treturn Request.get (url, data, Object.assign ({}, {method: 'DELETE'}, options));\n\t}\n\n\t/**\n \t * @static json - Request a JSON object from a given URL through a GET request\n \t *\n \t * @param {string} url - URL to make the request to\n \t * @param {Object} [data = {}] - Parameters to send in the URL, represented\n \t * as a JSON object. These parameters will be sent as a query in the URL\n \t * @param {Object} [options = {}] - Options object for configurations you want\n \t * to use in the fetch () request made.\n \t * @return {Promise} - Resolves to the json object obtained from the request response\n \t */\n\tstatic json (url, data = {}, options = {}) {\n\t\treturn Request.get (url, data, options).then ((response) => {\n\t\t\treturn response.json ();\n\t\t});\n\t}\n\n\t/**\n \t * @static blob - Request a Blob from a given URL through a GET request\n \t *\n \t * @param {string} url - URL to make the request to\n \t * @param {Object} [data = {}] - Parameters to send in the URL, represented\n \t * as a JSON object. These parameters will be sent as a query in the URL\n \t * @param {Object} [options = {}] - Options object for configurations you want\n \t * to use in the fetch () request made.\n \t * @return {Promise} - Resolves to the blob obtained from the request response\n \t */\n\tstatic blob (url, data = {}, options = {}) {\n\t\treturn Request.get (url, data, options).then ((response) => {\n\t\t\treturn response.blob ();\n\t\t});\n\t}\n}","/**\n * ==============================\n * File System\n * ==============================\n */\n\nimport { Request } from './Request';\n\n/**\n * A simple class wrapper for the File and FileReader web API, while this class\n * doesn't actually provide acces to the host file system, it does provide useful\n * utilities for form file inputs and remote content loading.\n *\n * @class\n */\nexport class FileSystem {\n\n\n\t/**\n\t * @static readRemote - Read a file from a remote location given a URL. This\n\t * function will fetch the file blob using the Request class and then use the\n\t * read () function to read the blob in the format required.\n\t *\n\t * @param {type} url - URL to fetch the file from\n\t * @param {type} [type = 'base64'] - Type of data to be read, values can be\n\t * 'text', 'base64' and 'buffer'. This parameter is used for the read () function.\n\t * @param {Object} [props = {}] - Props to send to the Request object\n\t * @return {Promise} - Content of the file. The format\n\t * depends on the type parameter used.\n\t */\n\tstatic readRemote (url, type = 'base64', props = {}) {\n\t\treturn Request.blob (url, {}, props).then ((file) => {\n\t\t\treturn FileSystem.read (file, type);\n\t\t});\n\t}\n\n\t/**\n\t * @static read - Read a given File or Blob object.\n\t *\n\t * @param {File|Blob} file - File to read\n\t * @param {string} [type = 'text'] - Type of data to be read, values can be\n\t * 'text', 'base64' and 'buffer'.\n\t * @return {Promise} - Promise that resolves to\n\t * the Load event and content of the file. The format depends on the type\n\t * parameter used.\n\t */\n\tstatic read (file, type = 'text') {\n\t\treturn new Promise ((resolve, reject) => {\n\t\t\tconst reader = new FileReader ();\n\n\t\t\treader.onload = (event) => {\n\t\t\t\t// Pass down the event object and the content\n\t\t\t\tresolve (event, event.target.result);\n\t\t\t};\n\n\t\t\treader.onerror = (error) => {\n\t\t\t\treject (error);\n\t\t\t};\n\n\t\t\tif (type === 'base64') {\n\t\t\t\treader.readAsDataURL (file);\n\t\t\t} else if (type === 'buffer') {\n\t\t\t\treader.readAsArrayBuffer (file);\n\t\t\t} else {\n\t\t\t\treader.readAsText (file, 'UTF-8');\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * @static create - Create a new File, this uses the File API and will note\n\t * actually create a file in the user's file system, however using it with\n\t * other features, that may be possible\n\t *\n\t * @param {string} file - Name of the file (Including extension)\n\t * @param {ArrayBuffer|ArrayBufferView|Blob|string} content - Content to save in the file\n\t * @param {string} [type = 'text/plain'] - Mime Type for the file\n\t * @return {Promise}\n\t */\n\tstatic create (name, content, type = 'text/plain') {\n\t\treturn Promise.resolve (new File ([content], name, {type}));\n\t}\n\n\t/**\n\t * @static extension - Returns the extension of a file given its file name.\n\t *\n\t * @param {string} name - Name or full path of the file\n\t * @return {string} - File extension without the leading dot (.)\n\t */\n\tstatic extension (name) {\n\t\treturn name.split ('.').pop ();\n\t}\n\n\t/**\n\t * @static isImage - Check if a file is an image by its extension.\n\t *\n\t * @param {string} name - Name or full path of the file\n\t * @return {boolean}\n\t */\n\tstatic isImage (name) {\n\t\tconst extensions = ['jpg', 'jpeg', 'png', 'gif', 'svg', 'webp', 'bmp'];\n\t\treturn extensions.indexOf (FileSystem.extension (name).toLowerCase ()) > -1;\n\t}\n\n}","/**\n* ==============================\n* Form\n* ==============================\n*/\n\nimport { $_ } from './DOM';\n\n/**\n * Utility class that provides simple function for filling and retrieving values\n * from froms. This class requires the use of the `data-form` attribute.\n *\n * @class\n */\nexport class Form {\n\n\t/**\n\t * @static fill - Fill a form's inputs with the given values. Each key in the\n\t * provided object must match the `name` attribute of the input to fill.\n\t *\n\t * @param {string} name - Form name. Must match the `data-form` attribute of the Form.\n\t * @param {Object} data - JSON object with key-value pairs to fill the inputs.\n\t */\n\tstatic fill (name, data) {\n\t\tfor (const field in data) {\n\t\t\tconst element = $_(`form[data-form='${name}'] [name='${field}']`).get (0);\n\t\t\tif (typeof element != 'undefined') {\n\t\t\t\tswitch (element.type) {\n\n\t\t\t\t\tcase 'file':\n\t\t\t\t\tcase 'file[]':\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\telement.value = data[field];\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t}\n\t}\n\n\t/**\n\t * @static values - Get all the values from a form's input. The keys are mapped\n\t * using the `name` attribute of each input.\n\t *\n\t * @param {string} name - Form name. Must match the `data-form` attribute of the Form.\n\t * @return {Object} - Key-value JSON object\n\t */\n\tstatic values (name) {\n\t\tconst data = {};\n\t\t$_(`form[data-form='${name}'] [name]`).each ((element) => {\n\t\t\tlet value;\n\t\t\tswitch (element.type) {\n\t\t\t\tcase 'file[]':\n\t\t\t\t\tvalue = element.files;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'file':\n\t\t\t\t\tvalue = element.files[0];\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tvalue = element.value;\n\t\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tif (typeof value != 'undefined' && value !== null) {\n\t\t\t\tdata[element.name] = value;\n\t\t\t}\n\t\t});\n\n\t\treturn data;\n\t}\n}","/**\n* ==============================\n* Platform\n* ==============================\n*/\n\n/**\n * General checks for what kind of platform is the being used to run the app.\n * @class\n */\nexport class Platform {\n\n\t/**\n\t * Check if the screen has a retina pixel ratio\n\t * @returns {boolean}\n\t */\n\tstatic retina () {\n\t\treturn window.devicePixelRatio >= 2;\n\t}\n\n\t/**\n\t * Check if the device is on portrait orientation\n\t * @returns {boolean}\n\t */\n\tstatic portrait () {\n\t\treturn window.orientation === 0 || window.orientation === 180;\n\t}\n\n\t/**\n\t * Check if the device is on landscape orientation\n\t * @returns {boolean}\n\t */\n\tstatic landscape () {\n\t\treturn (window.orientation === 90 || window.orientation === -90);\n\t}\n\n\t/**\n\t * Get device Orientation\n\t * @returns {string} portrait | landscape\n\t */\n\tstatic orientation () {\n\t\treturn Platform.portrait () ? 'portrait' : 'landscape';\n\t}\n\n\t/**\n\t * Check if the app is running over Electron\n\t * @returns {boolean}\n\t */\n\tstatic electron () {\n\t\treturn window && window.process && window.process.type;\n\t}\n\n\t/**\n\t * Check if the app is running over Cordova\n\t * @returns {boolean}\n\t */\n\tstatic cordova () {\n\t\treturn !!window.cordova;\n\t}\n\n\t/**\n\t * Check if the app is running in a desktop platform\n\t * @returns {boolean}\n\t */\n\tstatic desktop (platform = 'Any') {\n\t\tlet match = false;\n\t\tswitch (platform) {\n\t\t\tcase 'Windows':\n\t\t\t\tmatch = navigator.platform.includes ('Win');\n\t\t\t\tbreak;\n\n\t\t\tcase 'macOS':\n\t\t\t\tmatch = navigator.platform.includes ('Mac');\n\t\t\t\tbreak;\n\n\t\t\tcase 'Linux':\n\t\t\t\tmatch = navigator.platform.includes ('Linux');\n\t\t\t\tbreak;\n\n\t\t\tcase 'FreeBSD':\n\t\t\t\tmatch = navigator.platform.includes ('FreeBSD');\n\t\t\t\tbreak;\n\n\t\t\tcase 'webOS':\n\t\t\t\tmatch = navigator.platform.includes ('WebTV');\n\t\t\t\tbreak;\n\n\t\t\tcase 'Any':\n\t\t\tdefault:\n\t\t\t\tmatch = navigator.platform.includes ('Win')\n\t\t\t\t\t\t|| navigator.platform.includes ('Mac')\n\t\t\t\t\t\t|| navigator.platform.includes ('Linux')\n\t\t\t\t\t\t|| navigator.platform.includes ('FreeBSD')\n\t\t\t\t\t\t|| navigator.platform.includes ('WebTV');\n\t\t\t\tbreak;\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * Check if the app is running in a mobile platform\n\t * @param {string } [platform='Any'] - Check for a specific mobile platform [Android | iOS | Opera | Windows | BlackBerry | Any]\n\t * @returns {boolean}\n\t */\n\tstatic mobile (platform = 'Any') {\n\t\tlet match = false;\n\t\tswitch (platform) {\n\t\t\tcase 'Android':\n\t\t\t\tmatch = /Android/i.test (navigator.userAgent);\n\t\t\t\tbreak;\n\n\t\t\tcase 'iOS':\n\t\t\t\tmatch = /iPhone|iPad|iPod/i.test (navigator.userAgent);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Opera':\n\t\t\t\tmatch = /Opera Mini/i.test (navigator.userAgent);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Windows':\n\t\t\t\tmatch = /Windows Phone|IEMobile|WPDesktop/i.test (navigator.userAgent);\n\t\t\t\tbreak;\n\n\t\t\tcase 'BlackBerry':\n\t\t\t\tmatch = /BlackBerry|BB10/i.test (navigator.userAgent);\n\t\t\t\tbreak;\n\n\t\t\tcase 'Any':\n\t\t\tdefault:\n\t\t\t\tmatch = /Android|iPhone|iPad|iPod|Windows Phone|IEMobile|WPDesktop|BlackBerry|BB10/i.test (navigator.userAgent);\n\t\t\t\tbreak;\n\t\t}\n\t\treturn match;\n\t}\n\n\t/**\n\t * @static serviceWorkers - Check if the platform allows the use of service\n\t * workers\n\t *\n\t * @return {boolean} - Whether they're supported or not\n\t */\n\tstatic serviceWorkers () {\n\t\tif (typeof navigator !== 'undefined') {\n\t\t\tif ('serviceWorker' in navigator && location.protocol.indexOf ('http') > -1) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}\n}","/**\n * ==============================\n * Preload\n * ==============================\n */\n\nimport { Request } from './Request';\n\n/**\n * A simple class for asset preloading. This class assumes you have a service\n * worker set up that will be caching all requests.\n * @class\n */\nexport class Preload {\n\n\t/**\n\t * @static image - Preload an image file\n\t *\n\t * @param {string} route - Route to the image\n\t * @return {Promise} - Resolves to the image object or gets rejected with\n\t * the rejection event\n\t */\n\tstatic image (route) {\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tconst image = new Image ();\n\n\t\t\timage.onload = () => {\n\t\t\t\tresolve (image);\n\t\t\t};\n\n\t\t\timage.onerror = (e) => {\n\t\t\t\treject (e);\n\t\t\t};\n\n\t\t\timage.src = route;\n\t\t});\n\t}\n\n\t/**\n\t * @static file - Preload any kind of file\n\t *\n\t * @param {string} route - Route to the file\n\t * @return {Promise} - Resolves or rejects depending on request success\n\t */\n\tstatic file (route) {\n\t\treturn Request.blob (route);\n\t}\n}","/**\n* ==============================\n* Local Storage Adapter\n* ==============================\n*/\n\n/**\n * The Local Storage Adapter provides the Space Class the ability to interact\n * with the localStorage api found in most modern browsers.\n *\n * @class\n */\nexport class LocalStorage {\n\n\t/**\n\t * Create a new LocalStorage. If no configuration is provided, the LocalStorage\n\t * global object is used. The LocalStorage Adapter can provide independency\n\t * by store name and space name.\n\t *\n\t * @constructor\n\t * @param {Object} [configuration={name = '', version = '', store = ''}] - Configuration Object for the Adapter\n\t * @param {string} configuration.name - Name of the Space\n\t * @param {string} configuration.version - Version of the Space in Semantic versioning syntax\n\t * @param {string} configuration.store - Name of the Object Store to use\n\t *\n\t */\n\tconstructor ({name = '', version = '', store = ''}) {\n\t\tthis.name = name;\n\t\tthis.version = version;\n\t\tthis.store = store;\n\n\t\tthis.upgrades = {};\n\n\t\tif (this.version === '') {\n\t\t\tthis.numericVersion = 0;\n\t\t} else {\n\t\t\tthis.numericVersion = parseInt (version.replace (/\\./g, ''));\n\t\t}\n\n\t\tif (name !== '' && version !== '' && store !== '') {\n\t\t\tthis.id = `${this.name}::${this.store}::${this.version}_`;\n\t\t} else if (name !== '' && version !== '') {\n\t\t\tthis.id = `${this.name}::${this.version}_`;\n\t\t} else if (name !== '') {\n\t\t\tthis.id = `${this.name}::_`;\n\t\t} else {\n\t\t\tthis.id = '';\n\t\t}\n\t}\n\n\t/**\n\t * Open the Storage Object\n\t *\n\t * @return {Promise}\n\t */\n\topen () {\n\t\tif (typeof this.storage === 'object' && !(this.storage instanceof Promise)) {\n\t\t\treturn Promise.resolve (this);\n\t\t} else if (this.storage instanceof Promise) {\n\t\t\treturn this.storage;\n\t\t} else {\n\t\t\tthis.storage = new Promise ((resolve) => {\n\t\t\t\tlet upgradesToApply = [];\n\t\n\t\t\t\t// Check if this space is versioned\n\t\t\t\tif (this.version !== '') {\n\t\t\t\t\t// Get the versionless part of the ID to check if an upgrade needs\n\t\t\t\t\t// to ocurr based on the version available on storage and the current\n\t\t\t\t\t// version.\n\t\t\t\t\tlet versionless = '';\n\t\t\t\t\tif (this.name !== '' && this.version !== '' && this.store !== '') {\n\t\t\t\t\t\tversionless = `${this.name}::${this.store}::`;\n\t\t\t\t\t} else if (this.name !== '' && this.version !== '') {\n\t\t\t\t\t\tversionless = `${this.name}::`;\n\t\t\t\t\t}\n\t\n\t\t\t\t\t// Get all the currently stored keys that contain the versionless\n\t\t\t\t\t// ID, which means they belong to this space\n\t\t\t\t\tconst storedVersions = Object.keys (window.localStorage).filter ((key) => {\n\t\t\t\t\t\treturn key.indexOf (versionless) === 0;\n\t\t\t\t\t}).map ((key) => {\n\t\t\t\t\t\t// Remove the versionless part of the ID and keep only the\n\t\t\t\t\t\t// part of the key belonging to the ID\n\t\t\t\t\t\treturn key.replace (versionless, '').split ('_')[0];\n\t\t\t\t\t}). filter ((key) => {\n\t\t\t\t\t\t// Filter all that didn't match the versionless part fully\n\t\t\t\t\t\treturn key.indexOf ('::') === -1;\n\t\t\t\t\t}).sort ();\n\t\n\t\t\t\t\tif (storedVersions.length > 0) {\n\t\t\t\t\t\t// We'll only take the lowest one every time\n\t\t\t\t\t\tconst oldVersion = storedVersions[0];\n\t\t\t\t\t\tconst oldVersionNumeric = parseInt (oldVersion.replace (/\\./g, ''));\n\n\t\t\t\t\t\tif (oldVersionNumeric < this.numericVersion) {\n\t\t\t\t\t\t\t// Check what upgrade functions have been declared in their respective order\n\t\t\t\t\t\t\tconst availableUpgrades = Object.keys (this.upgrades).sort ();\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t// Find the first update that needs to be applied to the database given\n\t\t\t\t\t\t\t// the old version it currently has.\n\t\t\t\t\t\t\tconst startFrom = availableUpgrades.findIndex (u => {\n\t\t\t\t\t\t\t\tconst [old, ] = u.split ('::');\n\t\t\t\t\t\t\t\treturn parseInt (old) === oldVersionNumeric;\n\t\t\t\t\t\t\t});\n\t\t\n\t\t\t\t\t\t\tif (startFrom > -1) {\n\t\t\t\t\t\t\t\tupgradesToApply = availableUpgrades.slice (startFrom).filter ((u) => {\n\t\t\t\t\t\t\t\t\tconst [old, next] = u.split ('::');\n\t\t\t\t\t\t\t\t\treturn parseInt (old) < this.numericVersion && parseInt (next) <= this.numericVersion;\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t\t\t// Get the previous ID using the old version\n\t\t\t\t\t\t\tlet previousId = `${this.name}::${oldVersion}_`;\n\t\t\n\t\t\t\t\t\t\tif (this.name !== '' && this.version !== '' && this.store !== '') {\n\t\t\t\t\t\t\t\tpreviousId = `${this.name}::${this.store}::${oldVersion}_`;\n\t\t\t\t\t\t\t} else if (this.name !== '' && this.version !== '') {\n\t\t\t\t\t\t\t\tpreviousId = `${this.name}::${oldVersion}_`;\n\t\t\t\t\t\t\t}\n\t\t\n\t\t\t\t\t\t\t// Get all keys from the previous version\n\t\t\t\t\t\t\tconst keys = Object.keys (window.localStorage).filter ((key) => {\n\t\t\t\t\t\t\t\treturn key.indexOf (previousId) === 0;\n\t\t\t\t\t\t\t}).map ((key) => {\n\t\t\t\t\t\t\t\treturn key.replace (previousId, '');\n\t\t\t\t\t\t\t});\n\t\t\n\t\t\t\t\t\t\tfor (const key of keys) {\n\t\t\t\t\t\t\t\t// Get the value stored with the previous version\n\t\t\t\t\t\t\t\tconst previous = window.localStorage.getItem (`${previousId}${key}`);\n\t\t\n\t\t\t\t\t\t\t\t// Re-insert the value using the new ID as a key\n\t\t\t\t\t\t\t\twindow.localStorage.setItem (this.id + key, previous);\n\n\t\t\t\t\t\t\t\t// Delete the previous value.\n\t\t\t\t\t\t\t\twindow.localStorage.removeItem (`${previousId}${key}`);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tresolve ({ upgrades: upgradesToApply });\n\t\t\t}).then (({ upgrades }) => {\n\t\t\t\tthis.storage = window.localStorage;\n\t\t\t\treturn new Promise ((resolve) => {\n\t\t\t\t\tconst res = () => resolve (this);\n\t\t\t\t\tthis._upgrade (upgrades, res);\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn this.storage;\n\t\t}\n\t}\n\n\t/**\n\t * Store a key-value pair\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object|string|Number} - Value to save\n\t * @return {Promise<{key, value}>}\n\t */\n\tset (key, value) {\n\t\treturn this.open ().then (() => {\n\n\t\t\tif (typeof value === 'object') {\n\t\t\t\tthis.storage.setItem (this.id + key, JSON.stringify (value));\n\t\t\t} else {\n\t\t\t\tthis.storage.setItem (this.id + key, value);\n\t\t\t}\n\n\t\t\treturn Promise.resolve ({key, value});\n\t\t});\n\t}\n\n\t/**\n\t * Update a key-value pair. In difference with the set () method, the update\n\t * method will use an Object.assign () in the case of objects so no value is\n\t * lost.\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object|string|Number} - Value to save\n\t * @return {Promise<{key, value}>}\n\t */\n\tupdate (key, value) {\n\t\treturn this.get (key).then ((currentValue) => {\n\t\t\tif (typeof currentValue === 'object') {\n\t\t\t\tif (typeof value === 'object') {\n\t\t\t\t\tvalue = Object.assign ({}, currentValue, value);\n\t\t\t\t}\n\t\t\t\tthis.storage.setItem (this.id + key, JSON.stringify (value));\n\t\t\t} else {\n\t\t\t\tthis.storage.setItem (this.id + key, value);\n\t\t\t}\n\t\t\treturn Promise.resolve ({key, value});\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves a value from storage given it's key\n\t *\n\t * @param {string} - Key with which the value was saved\n\t * @return {Promise|Promise|Promise} - Resolves to the retreived value\n\t * or its rejected if it doesn't exist\n\t */\n\tget (key) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tlet value = null;\n\t\t\t\tvalue = this.storage.getItem (this.id + key);\n\t\t\t\ttry {\n\t\t\t\t\tconst o = JSON.parse (value);\n\t\t\t\t\tif (o && typeof o === 'object') {\n\t\t\t\t\t\tvalue = o;\n\t\t\t\t\t}\n\t\t\t\t} catch (exception) {\n\t\t\t\t\t// Unable to parse to JSON\n\t\t\t\t}\n\n\t\t\t\tif (typeof value !== 'undefined' && value !== null) {\n\t\t\t\t\tresolve (value);\n\t\t\t\t} else {\n\t\t\t\t\treject ();\n\t\t\t\t}\n\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves all the values in the space in a key-value JSON object\n\t *\n\t * @return {Promise} - Resolves to the retreived values\n\t */\n\tgetAll () {\n\t\treturn this.keys ().then ((keys) => {\n\t\t\tconst values = {};\n\t\t\tconst promises = [];\n\t\t\tfor (const key of keys) {\n\t\t\t\tpromises.push (this.get (key).then ((value) => {\n\t\t\t\t\tvalues[key] = value;\n\t\t\t\t}));\n\t\t\t}\n\t\t\treturn Promise.all (promises).then (() => {\n\t\t\t\treturn values;\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Check if the space contains a given key.\n\t *\n\t * @param {string} key - Key to look for.\n\t * @return {Promise} Promise gets resolved if it exists and rejected if\n\t * doesn't\n\t */\n\tcontains (key) {\n\t\treturn this.keys ().then ((keys) => {\n\t\t\tif (keys.includes (key)) {\n\t\t\t\tPromise.resolve ();\n\t\t\t} else {\n\t\t\t\treturn Promise.reject ();\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Upgrade a Space Version\n\t *\n\t * @param oldVersion {string} - The version of the storage to be upgraded\n\t * @param newVersion {string} - The version to be upgraded to\n\t * @param callback {function} - Function to transform the old stored values to the new version's format\n\t * @returns {Promise}\n\t */\n\tupgrade (oldVersion, newVersion, callback) {\n\t\tthis.upgrades[`${parseInt (oldVersion.replace (/\\./g, ''))}::${parseInt (newVersion.replace (/\\./g, ''))}`] = callback;\n\t\treturn Promise.resolve ();\n\t}\n\n\t// This function acts as a helper for the upgrade progress by executing the\n\t// needed upgrade callbacks in the correct order and sychronously.\n\t_upgrade (upgradesToApply, resolve) {\n\t\t// Check if there are still upgrades to apply\n\t\tif (upgradesToApply.length > 0) {\n\t\t\tthis.upgrades[upgradesToApply[0]].call (this, this).then (() => {\n\t\t\t\tthis._upgrade (upgradesToApply.slice (1), resolve);\n\t\t\t}).catch ((e) => console.error (e));\n\t\t} else {\n\t\t\tresolve ();\n\t\t}\n\t}\n\n\t/**\n\t * Rename a Space\n\t *\n\t * @param {string} name - New name to be used.\n\t * @returns {Promise} - Result of the rename operation\n\t */\n\trename (name) {\n\t\t// Check if the name is different\n\t\tif (this.name !== name) {\n\t\t\treturn this.keys ().then ((keys) => {\n\t\t\t\t// Save the previous Space id\n\t\t\t\tconst oldId = this.id;\n\n\t\t\t\t// Set new object properties with the new name\n\t\t\t\tthis.name = name;\n\n\t\t\t\tif (this.name !== '' && this.version !== '' && this.store !== '') {\n\t\t\t\t\tthis.id = `${this.name}::${this.store}::${this.version}_`;\n\t\t\t\t} else if (this.name !== '' && this.version !== '') {\n\t\t\t\t\tthis.id = `${this.name}::${this.version}_`;\n\t\t\t\t} else if (this.name !== '') {\n\t\t\t\t\tthis.id = `${this.name}::_`;\n\t\t\t\t} else {\n\t\t\t\t\tthis.id = '';\n\t\t\t\t}\n\n\t\t\t\tconst promises = [];\n\t\t\t\tfor (const key of keys) {\n\t\t\t\t\tpromises.push (this.set (key, this.storage.getItem (`${oldId}${key}`)).then (() => {\n\t\t\t\t\t\tthis.storage.removeItem (`${oldId}${key}`);\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t\treturn Promise.all (promises);\n\t\t\t});\n\t\t} else {\n\t\t\treturn Promise.reject ();\n\t\t}\n\t}\n\n\t/**\n\t * Get the key that corresponds to a given index in the storage\n\t *\n\t * @param {Number} index - Index to get the key from\n\t * @param {boolean} [full=false] - Whether to return the full key name including space id or just the key name\n\t * @return {Promise} - Resolves to the key's name\n\t */\n\tkey (index, full = false) {\n\t\treturn this.open ().then (() => {\n\t\t\tif (full === true) {\n\t\t\t\treturn Promise.resolve (this.storage.key (index));\n\t\t\t} else {\n\t\t\t\treturn Promise.resolve (this.storage.key (index).replace (this.id, ''));\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Return all keys stored in the space.\n\t *\n\t * @param {boolean} [full=false] - Whether to return the full key name including space id or just the key name\n\t * @return {Promise} - Array of keys\n\t */\n\tkeys (full = false) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn Promise.resolve (Object.keys (this.storage).filter ((key) => {\n\t\t\t\treturn key.indexOf (this.id) === 0;\n\t\t\t}).map ((key) => {\n\t\t\t\tif (full === true) {\n\t\t\t\t\treturn key;\n\t\t\t\t} else {\n\t\t\t\t\treturn key.replace (this.id, '');\n\t\t\t\t}\n\t\t\t}));\n\t\t});\n\t}\n\n\t/**\n\t * Delete a value from the space given its key\n\t *\n\t * @param {string} key - Key of the item to delete\n\t * @return {Promise} - Resolves to the value of the deleted object\n\t */\n\tremove (key) {\n\t\treturn this.get (key).then ((value) => {\n\t\t\tthis.storage.removeItem (this.id + key);\n\t\t\treturn Promise.resolve (value);\n\t\t});\n\t}\n\n\t/**\n\t * Clear the entire space\n\t *\n\t * @return {Promise} - Result of the clear operation\n\t */\n\tclear () {\n\t\treturn this.keys ().then ((keys) => {\n\t\t\tfor (const key of keys) {\n\t\t\t\tthis.remove (key);\n\t\t\t}\n\t\t\treturn Promise.resolve ();\n\t\t});\n\t}\n}","/**\n* ==============================\n* Session Storage Adapter\n* ==============================\n*/\n\nimport { LocalStorage } from './LocalStorage';\n\n/**\n * The Session Storage Adapter provides the Space Class the ability to interact\n * with the sessionStorage api found in most modern browsers. Since this API\n * shares pretty much the same methods to the local storage one, this class\n * inherits from the LocalStorage adapter.\n *\n * @class\n */\nexport class SessionStorage extends LocalStorage {\n\n\t/**\n\t * Create a new SessionStorage. If no configuration is provided, the SessionStorage\n\t * global object is used.The SessionStorage Adapter can provide independency\n\t * by store name and space name.\n\t *\n\t * @constructor\n\t * @param {Object} [configuration={name = '', version = '', store = ''}] - Configuration Object for the Adapter\n\t * @param {string} configuration.name - Name of the Space\n\t * @param {string} configuration.version - Version of the Space in Semantic versioning syntax\n\t * @param {string} configuration.store - Name of the Object Store to use\n\t *\n\t */\n\tconstructor ({name = '', version = '', store = ''}) {\n\t\tsuper ({name, version, store});\n\t}\n\n\t/**\n\t * Open the Storage Object\n\n\t * @return {Promise}\n\t */\n\topen () {\n\t\tif (typeof this.storage === 'undefined') {\n\t\t\tthis.storage = window.sessionStorage;\n\t\t}\n\t\treturn Promise.resolve (this);\n\t}\n}","/**\n* ==============================\n* IndexedDB Adapter\n* ==============================\n*/\n\n/**\n * The IndexedDB Adapter provides the Space Class the ability to interact\n * with the IndexedDB API found in most modern browsers.\n *\n * @class\n */\nexport class IndexedDB {\n\n\t/**\n\t * Create a new IndexedDB. Differently from Local and Session Storages, the\n\t * IndexedDB Adapter requires a mandatory name, version and store name.\n\t *\n\t * @constructor\n\t * @param {Object} [configuration={name = '', version = '', store = '', props = {}, index = {}}] - Configuration Object for the Adapter\n\t * @param {string} configuration.name - Name of the Space\n\t * @param {string} configuration.version - Version of the Space in Semantic versioning syntax\n\t * @param {string} configuration.store - Name of the Object Store to use\n\t * @param {Object} configuration.props - Optional Parameters for the Object Store\n\t * @param {Object} configuration.index - Object of the indexes to declare for\n\t * the Object Store. Each index is a JSON object with the following properties:\n\t * @param {String} configuration.index[...].name - Name for the Index\n\t * @param {String} configuration.index[...].field - Field on the store to apply the index to\n\t * @param {Object} configuration.index[...].props - Index properties object\n\t */\n\tconstructor ({name = '', version = '', store = '', props = {}, index = {}}) {\n\t\tthis.name = name;\n\t\tthis.version = version;\n\t\tthis.store = store;\n\t\tthis.props = props;\n\t\tthis.index = index;\n\n\t\tthis.upgrades = {};\n\n\t\tif (this.version === '') {\n\t\t\tthis.numericVersion = 0;\n\t\t} else {\n\t\t\tthis.numericVersion = parseInt (version.replace (/\\./g, ''));\n\t\t}\n\t}\n\n\t/**\n\t * Open the Storage Object\n\t *\n\t * @return {Promise}\n\t */\n\topen () {\n\n\t\tif (this.name === '') {\n\t\t\tconsole.error ('No name has been defined for IndexedDB space.');\n\t\t\treturn Promise.reject ();\n\t\t}\n\n\t\tif (this.store === '') {\n\t\t\tconsole.error ('No store has been defined for IndexedDB space.');\n\t\t\treturn Promise.reject ();\n\t\t}\n\n\t\tif (this.storage instanceof IDBDatabase) {\n\t\t\treturn Promise.resolve (this);\n\t\t} else if (this.storage instanceof Promise) {\n\t\t\treturn this.storage;\n\t\t} else {\n\t\t\tthis.storage = new Promise ((resolve, reject) => {\n\t\t\t\tlet upgradesToApply = [];\n\t\t\t\tconst storage = window.indexedDB.open (this.name, this.numericVersion);\n\n\t\t\t\tstorage.onerror = (event) => {\n\t\t\t\t\treject (event);\n\t\t\t\t};\n\n\t\t\t\tstorage.onsuccess = (event) => {\n\t\t\t\t\tresolve ({ storage: event.target.result, upgrades: upgradesToApply });\n\t\t\t\t};\n\n\t\t\t\tstorage.onupgradeneeded = (event) => {\n\t\t\t\t\t// If the previous version is less than one, it means that\n\t\t\t\t\t// the database needs to be created first\n\t\t\t\t\tif (event.oldVersion < 1) {\n\t\t\t\t\t\t// Create all the needed Stores\n\t\t\t\t\t\tconst store = event.target.result.createObjectStore (this.store, this.props);\n\t\t\t\t\t\tfor (const index of Object.keys (this.index)) {\n\t\t\t\t\t\t\tstore.createIndex (this.index[index].name, this.index[index].field, this.index[index].props);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Check what upgrade functions have been declared in their respective order\n\t\t\t\t\t\tconst availableUpgrades = Object.keys (this.upgrades).sort ();\n\t\t\t\t\t\t\n\t\t\t\t\t\t// Find the first update that needs to be applied to the database given\n\t\t\t\t\t\t// the old version it currently has.\n\t\t\t\t\t\tconst startFrom = availableUpgrades.findIndex (u => {\n\t\t\t\t\t\t\tconst [old, ] = u.split ('::');\n\t\t\t\t\t\t\treturn parseInt (old) === event.oldVersion;\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tif (startFrom > -1) {\n\t\t\t\t\t\t\tupgradesToApply = availableUpgrades.slice (startFrom).filter ((u) => {\n\t\t\t\t\t\t\t\tconst [old, next] = u.split ('::');\n\t\t\t\t\t\t\t\treturn parseInt (old) < this.numericVersion && parseInt (next) <= this.numericVersion;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Once the transaction is done, resolve the storage object\n\t\t\t\t\tconst transaction = event.target.transaction;\n\t\t\t\t\ttransaction.addEventListener ('success', () => {\n\t\t\t\t\t\tresolve ({ storage: event.target.result, upgrades: upgradesToApply });\n\t\t\t\t\t});\n\t\t\t\t};\n\t\t\t}).then (({ storage, upgrades }) => {\n\t\t\t\tthis.storage = storage;\n\t\t\t\treturn new Promise ((resolve) => {\n\t\t\t\t\tconst res = () => resolve (storage);\n\t\t\t\t\tthis._upgrade (upgrades, res, event);\n\t\t\t\t});\n\t\t\t});\n\t\t\treturn this.storage;\n\t\t}\n\t}\n\n\t/**\n\t * Store a key-value pair. Because of the nature of a IndexedDB Database, the\n\t * stored values must be JSON objects.\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object} - Value to save\n\t * @return {Promise} - When resolved, a {key, value} object is handed\n\t * down, when it's rejected, the event is handed down.\n\t */\n\tset (key = null, value) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store, 'readwrite').objectStore (this.store);\n\t\t\t\tlet op;\n\t\t\t\tif (key !== null) {\n\t\t\t\t\top = transaction.put (Object.assign ({}, {id: key}, value));\n\t\t\t\t} else {\n\t\t\t\t\top = transaction.add (value);\n\t\t\t\t}\n\t\t\t\top.addEventListener ('success', (event) => { resolve ({key: event.target.result, value: value});});\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Update a key-value pair. In difference with the set () method, the update\n\t * method will use an Object.assign () in the case of objects so no value is\n\t * lost.\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object} - Value to save\n\t * @return {Promise} - When resolved, a {key, value} object is handed\n\t * down, when it's rejected, the event is handed down.\n\t */\n\tupdate (key, value) {\n\t\treturn this.get (key).then ((currentValue) => {\n\t\t\t// If this key did not exist on the storage, then create it using the\n\t\t\t// set method\n\t\t\tif (typeof currentValue === 'undefined') {\n\t\t\t\treturn this.set (key, value);\n\t\t\t}\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store, 'readwrite').objectStore (this.store);\n\t\t\t\tconst op = transaction.put (Object.assign ({}, currentValue, value));\n\t\t\t\top.addEventListener ('success', (event) => {resolve ({key: event.target.result, value: value});});\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves a value from storage given it's key\n\t *\n\t * @param {string} - Key with which the value was saved\n\t * @return {Promise} - Resolves to the retreived value or its rejected\n\t * if it doesn't exist\n\t */\n\tget (key) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store).objectStore (this.store);\n\t\t\t\tconst op = transaction.get (key);\n\n\t\t\t\top.addEventListener ('success', (event) => {resolve (event.target.result);});\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves all the values in the space in a key-value JSON object\n\t *\n\t * @return {Promise} - Resolves to the retreived values\n\t */\n\tgetAll () {\n\t\treturn this.open ().then (() => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store).objectStore (this.store);\n\t\t\t\tconst op = transaction.getAll ();\n\n\t\t\t\top.addEventListener ('success', (event) => {resolve (event.target.result);});\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);});\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Check if the space contains a given key.\n\t *\n\t * @param {string} key - Key to look for.\n\t * @return {Promise} - Promise gets resolved if it exists and rejected if it\n\t * doesn't\n\t */\n\tcontains (key) {\n\t\treturn this.get (key).then ((keys) => {\n\t\t\tif (keys.includes (key)) {\n\t\t\t\tPromise.resolve ();\n\t\t\t} else {\n\t\t\t\treturn Promise.reject ();\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Upgrade a Space Version. Upgrades must be declared before the open ()\n\t * method is executed.\n\t *\n\t * @param {string} oldVersion - The version to be upgraded\n\t * @param {string} newVersion - The version to be upgraded to\n\t * @param {function} callback - Function to transform the old stored values to the new version's format\n\t * @returns {Promise}\n\t */\n\tupgrade (oldVersion, newVersion, callback) {\n\t\tthis.upgrades[`${parseInt (oldVersion.replace (/\\./g, ''))}::${parseInt (newVersion.replace (/\\./g, ''))}`] = callback;\n\t\treturn Promise.resolve ();\n\t}\n\n\t// This function acts as a helper for the upgrade progress by executing the\n\t// needed upgrade callbacks in the correct order and sychronously.\n\t_upgrade (upgradesToApply, resolve, event) {\n\t\t// Check if there are still upgrades to apply\n\t\tif (upgradesToApply.length > 0) {\n\t\t\tthis.upgrades[upgradesToApply[0]].call (this, this, event).then (() => {\n\t\t\t\tthis._upgrade (upgradesToApply.slice (1), resolve, event);\n\t\t\t}).catch ((e) => console.error (e));\n\t\t} else {\n\t\t\tresolve ();\n\t\t}\n\t}\n\n\t/**\n\t * Renaming the space is not possible with the IndexedDB adapter therefore\n\t * this function always gets a rejection.\n\t *\n\t * @returns {Promise} - Result of the rename operation\n\t */\n\trename () {\n\t\treturn Promise.reject ();\n\t}\n\n\t/**\n\t * Getting a key by its index is not possible in this adapter, therefore this\n\t * function always gets rejected.\n\t *\n\t * @return {Promise} - Promise Rejection\n\t */\n\tkey () {\n\t\treturn Promise.reject ();\n\t}\n\n\t/**\n\t * Return all keys stored in the space.\n\t *\n\t * @return {Promise} - Array of keys\n\t */\n\tkeys () {\n\t\treturn this.open ().then (() => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store, 'readwrite').objectStore (this.store);\n\t\t\t\tconst op = transaction.getAllKeys ();\n\t\t\t\top.addEventListener ('success', (event) => {resolve (event.target.result);}, false);\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);}, false);\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Delete a value from the space given its key\n\t *\n\t * @param {string} key - Key of the item to delete\n\t * @return {Promise} - Resolves to the key and value of the deleted object\n\t */\n\tremove (key) {\n\t\treturn this.get (key).then ((value) => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store, 'readwrite').objectStore (this.store);\n\t\t\t\tconst op = transaction.delete (key);\n\t\t\t\top.addEventListener ('success', () => {resolve (value);}, false);\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);}, false);\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Clear the entire space\n\t *\n\t * @return {Promise} - Result of the clear operation\n\t */\n\tclear () {\n\t\treturn this.open ().then (() => {\n\t\t\treturn new Promise ((resolve, reject) => {\n\t\t\t\tconst transaction = this.storage.transaction (this.store, 'readwrite').objectStore (this.store);\n\t\t\t\tconst op = transaction.clear ();\n\t\t\t\top.addEventListener ('success', () => {resolve ();}, false);\n\t\t\t\top.addEventListener ('error', (event) => {reject (event);}, false);\n\t\t\t});\n\t\t});\n\t}\n}","/**\n* ==============================\n* Remote Storage Adapter\n* ==============================\n*/\n\nimport { Request } from './../Request';\n\n/**\n * The Remote Storage Adapter provides the Space Class the ability to interact\n * with a server in order to handle data persistance. The server's implementation\n * is up to the developer but it will need to respond to this adapter's request\n * formatting. This adapter uses the Request class to perfom its tasks.\n *\n * @class\n */\nexport class RemoteStorage {\n\n\t/**\n\t * Create a new Remote Storage. This adapter requires an endpoint url where\n\t * it will make the requests. If a store is defined, the request will be made\n\t * using the store as an URL, for example, let's assume the following endpoint:\n\t *\n\t * https://example.com/api/v1/\n\t *\n\t * If no store is defined, then the requests will be made to that simple route,\n\t * with a store definition, requests will be made to:\n\t *\n\t * https://example.com/api/v1/{myStore}/\n\t *\n\t * The key of each item in this store represents another part of the request\n\t *\n\t * https://example.com/api/v1/{key}/\n\t *\n\t * Or:\n\t *\n\t * https://example.com/api/v1/{myStore}/{key}/\n\t *\n\t * This adapter just as the IndexedDB, works with JSON objects instead of string or\n\t * numeric values.\n\t *\n\t * @constructor\n\t * @param {object} [configuration={name = '', version = '', store = '', endpoint = '', props = {}] - Configuration Object for the Adapter\n\t * @param {string} configuration.name - Name of the Space\n\t * @param {string} configuration.version - Version of the Space in Semantic versioning syntax\n\t * @param {string} configuration.store - Name of the Object Store to use\n\t * @param {string} configuration.endpoint - Endpoint URL where the requests will be made\n\t * @param {string} configuration.props - Properties object to use for the fetch requests\n\t */\n\tconstructor ({name = '', version = '', store = '', endpoint = '', props = {}}) {\n\t\tthis.name = name;\n\t\tthis.version = version;\n\t\tthis.store = store;\n\t\tthis.endpoint = `${endpoint}${store}/`;\n\t\tthis.props = props;\n\t}\n\n\t/**\n\t * Open the Storage Object\n\t *\n\t * @return {Promise}\n\t */\n\topen () {\n\t\tif (typeof this.storage === 'undefined') {\n\t\t\tthis.storage = Request;\n\t\t}\n\t\treturn Promise.resolve (this);\n\t}\n\n\t/**\n\t * Store a key-value pair. This function sends a POST request to the server\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object} value - Value to save\n\t * @return {Promise}\n\t */\n\tset (key, value) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn this.storage.post (this.endpoint + key, value, this.props);\n\t\t});\n\t}\n\n\t/**\n\t * Update a key-value pair. In difference with the set () method, the update\n\t * method will use an Object.assign () in the case of objects so no value is\n\t * lost. This function sends a PUT request to the server.\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object} value - Value to save\n\t * @return {Promise}\n\t */\n\tupdate (key, value) {\n\t\treturn this.get (key).then ((currentValue) => {\n\t\t\treturn this.storage.put (this.endpoint + key, Object.assign ({}, currentValue, value), this.props).then ((response) => {\n\t\t\t\treturn response.json ();\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves a value from storage given it's key\n\t *\n\t * @param {string} - Key with which the value was saved\n\t * @return {Promise} - Resolves to the retreived value or its rejected\n\t * if it doesn't exist\n\t */\n\tget (key) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn this.storage.json (this.endpoint + key, {}, this.props);\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves all the values in the space in a key-value JSON object\n\t *\n\t * @return {Promise} - Resolves to the retreived values\n\t */\n\tgetAll () {\n\t\treturn this.open ().then (() => {\n\t\t\treturn this.storage.json (this.endpoint, {}, this.props);\n\t\t});\n\t}\n\n\t/**\n\t * Check if a space contains a given key.\n\t *\n\t * @param {string} key - Key to look for.\n\t * @return {Promise} Promise gets resolved if it exists and rejected if it\n\t * doesn't\n\t */\n\tcontains (key) {\n\t\treturn this.keys ().then ((keys) => {\n\t\t\tif (keys.includes (key)) {\n\t\t\t\tPromise.resolve ();\n\t\t\t} else {\n\t\t\t\treturn Promise.reject ();\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Upgrading the Storage must be done on the server side, therefore this function\n\t * always gets rejected.\n\t *\n\t * @returns {Promise}\n\t */\n\tupgrade () {\n\t\treturn Promise.reject ();\n\t}\n\n\t/**\n\t * Renaming the Storage must be done on the server side, therefore this function\n\t * always gets rejected.\n\t *\n\t * @returns {Promise}\n\t */\n\trename () {\n\t\treturn Promise.reject ();\n\t}\n\n\t/**\n\t * Getting a key by its index is not possible in this adapter, therefore this\n\t * function always gets rejected.\n\t *\n\t * @return {Promise} - Promise Rejection\n\t */\n\tkey () {\n\t\treturn Promise.reject ();\n\t}\n\n\t/**\n\t * Return all keys stored in the space. This makes a GET request to the full\n\t * endpoint (the URL of the endpoint and store name) with a keys query\n\t * parameter:\n\t *\n\t * https://example.com/api/v1/?keys=true\n \t *\n\t * Or:\n \t *\n \t * https://example.com/api/v1/{myStore}/?keys=true\n\t *\n\t * @return {Promise} - Array of keys\n\t */\n\tkeys () {\n\t\treturn this.open ().then (() => {\n\t\t\treturn this.storage.json (this.endpoint, {keys: true}, this.props);\n\t\t});\n\t}\n\n\t/**\n\t * Delete a value from the space given it's key. This function sends a DELETE\n\t * request to the server.\n\t *\n\t * @param {string} key - Key of the item to delete\n\t * @return {Promise} - Resolves to the key and value of the deleted object\n\t */\n\tremove (key) {\n\t\treturn this.open ().then (() => {\n\t\t\treturn this.storage.delete (this.endpoint + key, {}, this.props).then ((response) => {\n\t\t\t\treturn Promise.resolve (key, response.json ());\n\t\t\t});\n\t\t});\n\t}\n\n\t/**\n\t * Clear the entire space. This function sends a DELETE request to the server.\n\t * The difference between a clear () and remove () operation is that the clear\n\t * operation does not uses a key in the URL where the request is made.\n\t *\n\t * @return {Promise} - Result of the clear operation\n\t */\n\tclear () {\n\t\treturn this.open ().then (() => {\n\t\t\treturn this.storage.delete (this.endpoint, {}, this.props);\n\t\t});\n\t}\n}","/**\n* ==============================\n* Space\n* ==============================\n*/\n\nimport { LocalStorage } from './SpaceAdapter/LocalStorage';\nimport { SessionStorage } from './SpaceAdapter/SessionStorage';\nimport { IndexedDB } from './SpaceAdapter/IndexedDB';\nimport { RemoteStorage } from './SpaceAdapter/RemoteStorage';\n\n/**\n * List of Adapters Available\n */\nexport const SpaceAdapter = {\n\tLocalStorage,\n\tSessionStorage,\n\tIndexedDB,\n\tRemoteStorage\n};\n\n/**\n * Space provides a simple wrapper for different Storage APIs. It aims to\n * provide data independence through storage namespaces and versioning, allowing\n * transparent data formatting and content modifications through versions.\n *\n * While this class documentation provides some information, specific details may\n * be addressed on the documentation of each adapter.\n *\n * @class\n */\nexport class Space {\n\n\t/**\n\t * Create a new Space Object. If no name and version is defined, the global LocalSpace space is used.\n\t *\n\t * @constructor\n\t * @param {SpaceAdapter} [adapter = SpaceAdapter.LocalStorage] - Space Adapter\n\t * to use. Currently LocalStorage, SessionStorage, IndexedDB and Server are\n\t * available\n\t * @param {Object} [configuration = {}] - Configuration object for the space.\n\t * This configuration may change depending on the adapter used, however all\n\t * adapters have support for a name, version and store properties.\n\t * @param {string} configuration.name - Name of the Space\n\t * @param {string} configuration.version - Version of the Space in Semantic versioning syntax\n\t * @param {string} configuration.store - Name of the Object Store to use\n\t */\n\tconstructor (adapter = SpaceAdapter.LocalStorage, configuration = {}) {\n\t\t// Assign the provided configuration to the default one\n\t\tthis._configuration = Object.assign ({}, {name: '', version: '', store: ''}, configuration);\n\n\t\t// Set up the adapter instance to use\n\t\tthis.adapter = new adapter (this._configuration);\n\n\t\t// This object stores all the callbacks the user can define for the\n\t\t// space operations\n\t\tthis.callbacks = {\n\t\t\t'create': [],\n\t\t\t'update': [],\n\t\t\t'delete': []\n\t\t};\n\n\t\t// A transformation is an object that can contain a set and get functions\n\t\t// every transformation will be applied to the retrieved value or to the\n\t\t// value before storing it.\n\t\tthis.transformations = {\n\n\t\t};\n\t}\n\n\t/**\n\t * Modify the space configuration, it will also be passed down to the adapter\n\t * using its configuration () function.\n\t *\n\t * @param {object} - Configuration object to set up\n\t * @return {object} - Configuration object if no param was passed\n\t */\n\tconfiguration (object = null) {\n\t\tif (object !== null) {\n\t\t\tthis._configuration = Object.assign ({}, this._configuration, object);\n\t\t\tthis.adapter.configuration (object);\n\t\t} else {\n\t\t\treturn this._configuration;\n\t\t}\n\t}\n\n\t/**\n\t * Open the Storage Object to be used depending on the SpaceAdapter\n\t *\n\t * @return {Promise}\n\t */\n\topen () {\n\t\treturn this.adapter.open ().then (() => {\n\t\t\treturn Promise.resolve (this);\n\t\t});\n\t}\n\n\t/**\n\t * Store a key-value pair\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object|string|Number} - Value to save\n\t * @return {Promise<{key, value}>}\n\t */\n\tset (key, value) {\n\t\t// Apply all set transformations to the value\n\t\tfor (const id of Object.keys (this.transformations)) {\n\t\t\tif (typeof this.transformations[id].set === 'function') {\n\t\t\t\tvalue = this.transformations[id].set.call (null, key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn this.adapter.set (key, value).then (({key, value}) => {\n\t\t\tfor (const callback of this.callbacks.create) {\n\t\t\t\tcallback.call (null, key, value);\n\t\t\t}\n\t\t\treturn Promise.resolve ({key, value});\n\t\t});\n\t}\n\n\t/**\n\t * Update a key-value pair. In difference with the set () method, the update\n\t * method will use an Object.assign () in the case of objects so no value is\n\t * lost.\n\t *\n\t * @param {string} key - Key with which this value will be saved\n\t * @param {Object|string|Number} - Value to save\n\t * @return {Promise<{key, value}>}\n\t */\n\tupdate (key, value) {\n\t\t// Apply all set transformations to the value\n\t\tfor (const id of Object.keys (this.transformations)) {\n\t\t\tif (typeof this.transformations[id].set === 'function') {\n\t\t\t\tvalue = this.transformations[id].set.call (null, key, value);\n\t\t\t}\n\t\t}\n\n\t\treturn this.adapter.update (key, value).then (({key, value}) => {\n\t\t\tfor (const callback of this.callbacks.update) {\n\t\t\t\tcallback.call (null, key, value);\n\t\t\t}\n\t\t\treturn Promise.resolve ({key, value});\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves a value from storage given it's key\n\t *\n\t * @param {string} - Key with which the value was saved\n\t * @return {Promise|Promise|Promise} - Resolves to the retreived value\n\t * or its rejected if it doesn't exist.\n\t */\n\tget (key) {\n\t\treturn this.adapter.get (key).then ((value) => {\n\t\t\t// Apply all get transformations to the value\n\t\t\tfor (const id of Object.keys (this.transformations)) {\n\t\t\t\tif (typeof this.transformations[id].get === 'function') {\n\t\t\t\t\tvalue = this.transformations[id].get.call (null, key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn value;\n\t\t});\n\t}\n\n\t/**\n\t * Retrieves all the values in the space in a key-value JSON object\n\t *\n\t * @return {Promise} - Resolves to the retreived values\n\t */\n\tgetAll () {\n\t\treturn this.adapter.getAll ().then ((values) => {\n\t\t\t// Apply all get transformations to the value\n\t\t\tfor (const key of Object.keys (values)) {\n\t\t\t\tfor (const id of Object.keys (this.transformations)) {\n\t\t\t\t\tif (typeof this.transformations[id].get === 'function') {\n\t\t\t\t\t\tvalues[key] = this.transformations[id].get.call (null, key, values[key]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn values;\n\t\t});\n\t}\n\n\t/**\n\t * Iterate over every value in the space\n\t *\n\t * @param {function (key, value)} callback - A callback function receiving the\n\t * key and value of a value. Must return a callback\n\t * @return {Promise} - Resolves when all callbacks have been resolved.\n\t */\n\teach (callback) {\n\t\treturn this.getAll ().then ((values) => {\n\t\t\tconst promises = [];\n\t\t\tfor (const i of Object.keys (values)) {\n\t\t\t\tpromises.push (callback.call (this, i, values[i]));\n\t\t\t}\n\t\t\treturn Promise.all (promises);\n\t\t});\n\t}\n\n\t/**\n\t * Check if a space contains a given key. Not all adapters may give this information\n\t *\n\t * @param {string} key - Key to look for.\n\t * @return {Promise} - Promise gets resolved if it exists and rejected if\n\t * doesn't\n\t */\n\tcontains (key) {\n\t\treturn this.adapter.contains (key);\n\t}\n\n\t/**\n\t * Upgrade a Space Version. Not all adapters may provide this functionality\n\t *\n\t * @param oldVersion {string} - The version of the storage to be upgraded\n\t * @param newVersion {string} - The version to be upgraded to\n\t * @param callback {function} - Function to transform the old stored values to the new version's format\n\t *\n\t * @returns {Promise} - Result of the upgrade operation\n\t */\n\tupgrade (oldVersion, newVersion, callback) {\n\t\treturn this.adapter.upgrade (oldVersion, newVersion, callback).then (() => {\n\t\t\treturn Promise.resolve (this);\n\t\t});\n\t}\n\n\t/**\n\t * Rename a Space. Not all adapters may provide this functionality\n\t *\n\t * @param {string} name - New name to be used.\n\t * @returns {Promise} Result of the rename operation\n\t */\n\trename (name) {\n\t\treturn this.adapter.rename (name);\n\t}\n\n\t/**\n\t * Add a callback function to be run every time a value is created.\n\t *\n\t * @param {function (key, value)} callback - Callback Function. Key and Value pair will be sent as parameters when run.\n\t */\n\tonCreate (callback) {\n\t\tthis.callbacks.create.push (callback);\n\t}\n\n\t/**\n\t * Add a callback function to be run every time a value is updated.\n\t *\n\t * @param {function (key, value)} callback - Callback Function. Key and Value pair will be sent as parameters when run.\n\t */\n\tonUpdate (callback) {\n\t\tthis.callbacks.update.push (callback);\n\t}\n\n\t/**\n\t * Add a callback function to be run every time a value is deleted.\n\t *\n\t * @param {function (key, value)} callback - Callback Function. Key and Value pair will be sent as parameters when run.\n\t */\n\tonDelete (callback) {\n\t\tthis.callbacks.delete.push (callback);\n\t}\n\n\t/**\n\t * Add a transformation function to the space.\n\t *\n\t * @param {string} id - Unique transformation name or identifier\n\t * @param {function (key, value)|null} get - Transformation function to apply to the content before\n\t * returning the value when using the get () function .\n\t * @param {function (key, value)|null} set - Transformation function to apply to the content before\n\t * saving it when using the set () function befo.\n\t */\n\taddTransformation ({id, get, set}) {\n\t\tthis.transformations[id] = {\n\t\t\tid,\n\t\t\tget,\n\t\t\tset\n\t\t};\n\t}\n\n\t/**\n\t * Remove a transformation function given its id\n\t *\n\t * @param {string} id - Name or identifier of the transformation to remove\n\t */\n\tremoveTransformation (id) {\n\t\tdelete this.transformations[id];\n\t}\n\n\t/**\n\t * Get the key that corresponds to a given index in the storage. Not all adapters may provide this functionality\n\t *\n\t * @param {Number} index - Index to get the key from\n\t * @param {boolean} [full = false] - Whether to return the full key name including space id or just the key name\n\t * @return {Promise} - Resolves to the key's name\n\t */\n\tkey (index, full = false) {\n\t\treturn this.adapter.key (index, full);\n\t}\n\n\t/**\n\t * Return all keys stored in the space. Not all adapters may provide this functionality\n\t *\n\t * @param {boolean} [full = false] - Whether to return the full key name including space id or just the key name\n\t * @return {Promise} - Array of keys\n\t */\n\tkeys (full = false) {\n\t\treturn this.adapter.keys (full);\n\t}\n\n\t/**\n\t * Delete a value from the space given it's key\n\t *\n\t * @param {string} key - Key of the item to delete\n\t * @return {Promise} - Resolves to the key and value of the deleted object\n\t */\n\tremove (key) {\n\t\treturn this.adapter.remove (key).then ((value) => {\n\t\t\t// Run the callback for deletions\n\t\t\tfor (const callback of this.callbacks.delete) {\n\t\t\t\tcallback.call (null, key, value);\n\t\t\t}\n\t\t});\n\t}\n\n\t/**\n\t * Clear the entire space\n\t *\n\t * @return {Promise} - Result of the clear operation\n\t */\n\tclear () {\n\t\treturn this.adapter.clear ();\n\t}\n}","/**\n* ==============================\n* Text\n* ==============================\n*/\n\n/**\n * Provides utility functions for texts\n * @class\n */\nexport class Text {\n\n\t/**\n\t * @static capitalize - Capatalizes every word in a string\n\t *\n\t * @param {string} text - Text string to capitalize\n\t * @return {string} - Capitalized string\n\t */\n\tstatic capitalize (text) {\n\t\treturn text.replace (/\\w\\S*/g, (txt) => {\n\t\t\treturn txt.charAt (0).toUpperCase () + txt.substr (1).toLowerCase ();\n\t\t});\n\t}\n\n\t/**\n\t * @static suffix - Gets the suffix of a string given a key\n\t *\n\t * @param {string} key - Key part of the string\n\t * @param {string} text - Full string to extract the suffix from\n\t * @return {string} - Suffix\n\t */\n\tstatic suffix (key, text) {\n\t\tlet suffix = '';\n\t\tlet position = text.indexOf (key);\n\t\tif (position !== -1) {\n\t\t\tposition += key.length;\n\t\t\tsuffix = text.substr (position, text.length - position);\n\t\t}\n\t\treturn suffix;\n\t}\n\n\n\t/**\n\t * @static selection - Get the currently selected text\n\t *\n\t * @return {string} - Text selection\n\t */\n\tstatic selection () {\n\t\tif (window.getSelection) {\n\t\t\treturn window.getSelection ().toString ();\n\t\t} else if (document.selection && document.selection.type != 'Control') {\n\t\t\treturn document.selection.createRange ().text;\n\t\t}\n\t}\n\n\t/**\n\t * @static prefix - Gets the prefix of a string given a key\n\t *\n\t * @param {string} key - Key part of the string\n\t * @param {string} text - Full string to extract the prefix from\n\t * @return {string} - Prefix\n\t */\n\tstatic prefix (key, text) {\n\t\tlet prefix = '';\n\t\tconst position = text.indexOf (key);\n\t\tif (position != -1) {\n\t\t\tprefix = text.substr (0, position);\n\t\t}\n\t\treturn prefix;\n\t}\n\n\t/**\n\t * @static friendly - Transforms a given text into a friendly URL string replacing all special characters\n\t *\n\t * @param {string} text - The text to build the url from\n\t * @return {string} - Friendly URL\n\t */\n\tstatic friendly (text) {\n\t\tconst regex = [\n\t\t\t/[Ôàâãªä]/,\n\t\t\t/[ƁƀƂƃƄ]/,\n\t\t\t/[ƍƌƎƏ]/,\n\t\t\t/[íìîï]/,\n\t\t\t/[éèêë]/,\n\t\t\t/[ƉƈƊƋ]/,\n\t\t\t/[óòÓõºö]/,\n\t\t\t/[ƓƒƔƕƖ]/,\n\t\t\t/[úùûü]/,\n\t\t\t/[ƚƙƛƜ]/,\n\t\t\t/Ƨ/,\n\t\t\t/Ƈ/,\n\t\t\t/Ʊ/,\n\t\t\t/Ƒ/,\n\t\t\t/_/,\n\t\t\t/[ā€™ā€˜ā€¹ā€ŗ<>']/,\n\t\t\t/[ā€œā€Ā«Ā»ā€ž\"]/,\n\t\t\t/[(){}[\\]]/,\n\t\t\t/[?Āæ!Ā”#$%&^*Ā“`~/°|]/,\n\t\t\t/[,.:;]/,\n\t\t\t/ /\n\t\t];\n\n\t\tconst replacements = [\n\t\t\t'a',\n\t\t\t'A',\n\t\t\t'I',\n\t\t\t'i',\n\t\t\t'e',\n\t\t\t'E',\n\t\t\t'o',\n\t\t\t'O',\n\t\t\t'u',\n\t\t\t'U',\n\t\t\t'c',\n\t\t\t'C',\n\t\t\t'n',\n\t\t\t'N',\n\t\t\t'-',\n\t\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t'',\n\t\t\t'-'\n\t\t];\n\n\t\tfor (const index in regex) {\n\t\t\ttext = text.replace(new RegExp(regex[index], 'g'), replacements[index]);\n\t\t}\n\n\t\treturn text;\n\t}\n}","/**\n* ==============================\n* Util\n* ==============================\n*/\n\n/**\n * Provides diverse utility functions\n * @class\n */\nexport class Util {\n\n\n\t/**\n\t * @static callAsync - Calls any function using promises to keep a standard\n\t * behavior between async and sync functions.\n\t *\n\t * @param {funcion} callable - The function to run\n\t * @param {Object} context - The object `this` will be mapped to\n\t * @param {any} ...args - List of parameters to pass to the function when called\n\t * @return {Promise} - A promise that resolves to the result of the function\n\t */\n\tstatic callAsync (callable, context, ...args) {\n\t\ttry {\n\t\t\t// Call the provided function using the context and arguments given\n\t\t\tconst result = callable.apply (context, args);\n\n\t\t\t// Check if the function returned a simple value or a Promise\n\t\t\tif (result instanceof Promise) {\n\t\t\t\treturn result;\n\t\t\t} else {\n\t\t\t\treturn Promise.resolve (result);\n\t\t\t}\n\t\t} catch (e) {\n\t\t\treturn Promise.reject (e);\n\t\t}\n\t}\n\n\t/**\n\t * @static uuid - Creates a UUID. This UUIDs should not be trusted for uniqueness\n\t *\n\t * @return {string} - Generated UUID\n\t */\n\tstatic uuid () {\n\t\tif (window.crypto) {\n\t\t\treturn ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, (c) =>\n\t\t\t\t(c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString (16)\n\t\t\t);\n\t\t} else {\n\t\t\tconst generate = () => Math.floor ((1 + Math.random()) * 0x10000).toString (16).substring (1);\n\t\t\treturn generate () + generate () + '-' + generate () + '-' + generate () + '-' +\n\t\t\tgenerate () + '-' + generate () + generate () + generate ();\n\t\t}\n\t}\n}","export * from './src/DOM';\nexport * from './src/FileSystem';\nexport * from './src/Form';\nexport * from './src/Platform';\nexport * from './src/Preload';\nexport * from './src/Request';\nexport * from './src/Space';\nexport * from './src/Text';\nexport * from './src/Util';","import { $_, Text, Util } from '@aegis-framework/artemis';\n/* global Prism */\n\nexport class FancyError {\n\n\tstatic init () {\n\n\t}\n\n\tstatic pop () {\n\t\tif ((window.location.protocol.indexOf ('file') === 0 || window.location.host === 'localhost') && typeof Prism !== 'undefined') {\n\t\t\tif (FancyError.queue.length > 0) {\n\t\t\t\tconst object = FancyError.queue.pop ();\n\n\t\t\t\t$_('body').prepend (`\n\t\t\t\t\t\n\t\t\t\t`);\n\n\t\t\t\t$_(`[data-error=\"${object.id}\"] button`).click (function () {\n\t\t\t\t\t$_(`[data-error=\"${object.id}\"]`).remove ();\n\t\t\t\t\tFancyError.pop ();\n\t\t\t\t});\n\t\t\t\tPrism.highlightAll ();\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic show (title = 'Error', message = 'An error has ocurred! Please check the console so you get more insight.', props = {}) {\n\t\tif (typeof MonogatariDebug === 'object') {\n\t\t\tconst id = Util.uuid ();\n\n\t\t\tconst object = {\n\t\t\t\tid,\n\t\t\t\ttitle,\n\t\t\t\tmessage,\n\t\t\t\tprops\n\t\t\t};\n\n\n\t\t\tif ($_('[data-error]').isVisible ()) {\n\t\t\t\tFancyError.queue.unshift (object);\n\t\t\t} else {\n\t\t\t\t$_('body').prepend (`\n\t\t\t\t\t\n\t\t\t\t`);\n\n\t\t\t\t$_(`[data-error=\"${id}\"] button`).click (function () {\n\t\t\t\t\t$_(`[data-error=\"${id}\"]`).remove ();\n\t\t\t\t\tFancyError.pop ();\n\t\t\t\t});\n\t\t\t\tPrism.highlightAll ();\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic render (props = {}) {\n\t\tlet html = '
';\n\t\tfor (const key of Object.keys (props)) {\n\t\t\tif (typeof props[key] === 'string' || typeof props[key] === 'number') {\n\t\t\t\thtml += `

${key}: ${props[key]}

`;\n\t\t\t} else if (props[key] instanceof Array) {\n\t\t\t\thtml += `

${key}: ${props[key].toString ().replace (/,/g, ', ')}

`;\n\t\t\t} else if (props[key] instanceof NodeList) {\n\t\t\t\thtml += `

${key}:

`;\n\t\t\t\tfor (const item of props[key]) {\n\t\t\t\t\thtml += `${item._html.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')}`;\n\t\t\t\t}\n\t\t\t\thtml += '

';\n\t\t\t}\n\t\t}\n\t\thtml += '
';\n\n\t\tfor (const key of Object.keys (props)) {\n\t\t\tif (typeof props[key] === 'object' && !(props[key] instanceof Array) && !(props[key] instanceof NodeList)) {\n\t\t\t\thtml += `

${Text.capitalize (key)}

`;\n\t\t\t\tfor (const property of Object.keys (props[key])) {\n\t\t\t\t\tif (property.indexOf ('_') === 0) {\n\t\t\t\t\t\thtml += `

${props[key][property]}

`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (typeof props[key][property] === 'string' || typeof props[key][property] === 'number') {\n\t\t\t\t\t\t\thtml += `

${property}: ${props[key][property]}

`;\n\t\t\t\t\t\t} else if (props[key][property] instanceof Array) {\n\t\t\t\t\t\t\thtml += `

${property}: ${props[key][property].toString ().replace (/,/g, ', ')}

`;\n\t\t\t\t\t\t} else if (props[key][property] instanceof NodeList) {\n\t\t\t\t\t\t\thtml += `

${property}:

`;\n\t\t\t\t\t\t\tfor (const item of props[key][property]) {\n\t\t\t\t\t\t\t\thtml += `${item._html.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')}`;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thtml += '

';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thtml += '
';\n\t\t\t}\n\t\t}\n\t\treturn html;\n\t}\n\n\n}\n\nFancyError.queue = [];","import './vendor/prism.js';\nimport { FancyError } from '../core/lib/FancyError';\nimport { $_ready } from '@aegis-framework/artemis';\n\n/* global window */\n\nwindow.addEventListener('error', (event) => {\n\tconst { message, lineno, filename } = event;\n\n\t// Once the DOM is ready, a Fancy Error will be shown providing more information\n\t$_ready (() => {\n\t\tFancyError.show (\n\t\t\t'An Unknown Error Occurred',\n\t\t\tmessage,\n\t\t\t{\n\t\t\t\t'File': filename,\n\t\t\t\t'Line': lineno,\n\t\t\t\t'Help': {\n\t\t\t\t\t'_': 'This is most likely a scripting error, please check your script and JavaScript code for missing commas or incorrect syntax.',\n\t\t\t\t\t'_1': 'There may be additional information on your browser’s console. You can open your console by pressing Ctrl + Shift + I'\n\t\t\t\t}\n\t\t\t}\n\t\t);\n\t});\n});\n"]} \ No newline at end of file diff --git a/dist/engine/electrobun/index.ts b/dist/engine/electrobun/index.ts new file mode 100644 index 0000000..92f64bc --- /dev/null +++ b/dist/engine/electrobun/index.ts @@ -0,0 +1,118 @@ +/** + * ======================================= + * Monogatari Electrobun Configuration + * ======================================= + * + * Main process — runs in Bun via Electrobun. + **/ + +import { + BrowserWindow, + BrowserView, + Utils, + type RPCSchema, +} from "electrobun/bun"; + +export type MonogatariRPC = { + bun: RPCSchema<{ + requests: { + "window-info-request": { + params: { + title?: string; + resizable?: boolean; + }; + response: { + resizable: boolean; + minWidth: number; + minHeight: number; + maxWidth: number; + maxHeight: number; + }; + }; + "resize-request": { + params: { + width?: number; + height?: number; + fullscreen?: boolean; + }; + response: { + fullscreen: boolean; + width?: number; + height?: number; + }; + }; + }; + messages: { + "quit-request": void; + }; + }>; + webview: RPCSchema<{ + requests: {}; + messages: {}; + }>; +}; + +const monogatariRPC = BrowserView.defineRPC({ + handlers: { + requests: { + "window-info-request": async ({ title, resizable }) => { + if (title) { + win.setTitle(title); + } + + const minWidth = 640; + const minHeight = 360; + + // Use reasonable defaults for max dimensions. + // Electrobun does not expose a screen-size API yet. + const maxWidth = 3840; + const maxHeight = 2160; + + return { + resizable: resizable !== false, + minWidth, + minHeight, + maxWidth, + maxHeight, + }; + }, + + "resize-request": async ({ width, height, fullscreen }) => { + if (fullscreen) { + win.setFullScreen(true); + } else if (width && height) { + win.setFullScreen(false); + win.setSize(width, height); + } + + return { + fullscreen: fullscreen ?? false, + width, + height, + }; + }, + }, + + messages: { + "quit-request": () => { + win.close(); + }, + }, + }, +}); + +const win = new BrowserWindow({ + title: "", + url: "views://mainview/index.html", + frame: { + width: 960, + height: 540, + x: 0, + y: 0, + }, + rpc: monogatariRPC, +}); + +win.on("close", () => { + Utils.quit(); +}); diff --git a/dist/engine/electrobun/view.ts b/dist/engine/electrobun/view.ts new file mode 100644 index 0000000..b3fdc98 --- /dev/null +++ b/dist/engine/electrobun/view.ts @@ -0,0 +1,46 @@ +/** + * ======================================= + * Monogatari Electrobun View Script + * ======================================= + * + * Loaded in the WebView. Exposes window.electrobun with the same + * { send, on } interface that the Electron preload provides via + * window.electron, so the engine's DesktopBridge works with both. + **/ + +import { Electroview } from "electrobun/view"; +import type { MonogatariRPC } from "./index"; + +const rpc = Electroview.defineRPC({ + handlers: { + requests: {}, + messages: {}, + }, +}); + +const callbacks = new Map void>(); + +(window as any).electrobun = { + send(channel: string, data?: unknown) { + if (channel === "quit-request") { + rpc.send["quit-request"](); + } else if (channel === "window-info-request") { + rpc.request["window-info-request"](data as any).then((response) => { + const cb = callbacks.get("window-info-reply"); + if (cb) cb(response); + }); + } else if (channel === "resize-request") { + rpc.request["resize-request"](data as any).then((response) => { + const cb = callbacks.get("resize-reply"); + if (cb) cb(response); + }); + } + }, + + on(channel: string, callback: (args: unknown) => void) { + callbacks.set(channel, callback); + }, +}; + +// Signal that electrobun is available for Platform detection. +(window as any).__electrobun = true; diff --git a/dist/engine/electron/index.js b/dist/engine/electron/index.js index c9bb934..2cc2044 100755 --- a/dist/engine/electron/index.js +++ b/dist/engine/electron/index.js @@ -8,15 +8,17 @@ /* global require */ /* global process */ -/* global __dirname */ -const { app, BrowserWindow, Menu } = require ('electron'); +const { app, ipcMain, shell, BrowserWindow, Menu } = require ('electron'); const path = require ('path'); const url = require ('url'); -const { ipcMain, shell } = require('electron'); -// Keep a global reference of the window object, if you don't, the window will -// be closed automatically when the JavaScript object is garbage collected. +/** + * Keep a global reference of the window object, if you don't, the window will + * be closed automatically when the JavaScript object is garbage collected. + * + * @type {BrowserWindow} + */ let win; function createWindow () { @@ -46,7 +48,7 @@ function createWindow () { center: true, // Full Screen options - fullscrenable: true, + fullscreenable: true, // Set an icon for the window icon: path.join(appRoot, '/assets/icons/icon_128x128.png'), @@ -167,4 +169,4 @@ app.on('web-contents-created', (event, contents) => { }); // In this file you can include the rest of your app's specific main process -// code. You can also put them in separate files and require them here. \ No newline at end of file +// code. You can also put them in separate files and require them here. diff --git a/dist/engine/electron/notarize.js b/dist/engine/electron/notarize.js index cb3b860..d9c6f8c 100644 --- a/dist/engine/electron/notarize.js +++ b/dist/engine/electron/notarize.js @@ -4,7 +4,7 @@ require ('dotenv').config (); const { build: { appId }} = require('./../../package.json'); -const { notarize } = require ('electron-notarize'); +const { notarize } = require ('@electron/notarize'); exports.default = async function notarizing (context) { const { electronPlatformName, appOutDir } = context; diff --git a/dist/engine/error/400.html b/dist/engine/error/400.html deleted file mode 100755 index c13ba8e..0000000 --- a/dist/engine/error/400.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - Bad Request - - - - - -
-

Bad Request

-

The received request is invalid or malformed.

-
- - \ No newline at end of file diff --git a/dist/engine/error/401.html b/dist/engine/error/401.html deleted file mode 100755 index 7cd3a5e..0000000 --- a/dist/engine/error/401.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - Bad Request - - - - - -
-

Authentication Required

-

Sorry, the content you are trying to access requires credentials authentication.

-
- - \ No newline at end of file diff --git a/dist/engine/error/403.html b/dist/engine/error/403.html deleted file mode 100755 index 2ed3d00..0000000 --- a/dist/engine/error/403.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - Bad Request - - - - - -
-

Accesing Forbidden Content

-

Sorry, the content you are trying to access is forbidden.

-
- - \ No newline at end of file diff --git a/dist/engine/error/404.html b/dist/engine/error/404.html deleted file mode 100755 index 1002d72..0000000 --- a/dist/engine/error/404.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - Bad Request - - - - - -
-

Page Not Found

-

Sorry, the page you are trying to access does not exist.

-
- - \ No newline at end of file diff --git a/dist/engine/error/405.html b/dist/engine/error/405.html deleted file mode 100644 index bb3f215..0000000 --- a/dist/engine/error/405.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - Bad Request - - - - - -
-

Method Not Allowed

-

The request method is not allowed for the requested resource.

-
- - \ No newline at end of file diff --git a/dist/engine/error/408.html b/dist/engine/error/408.html deleted file mode 100644 index 710a176..0000000 --- a/dist/engine/error/408.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - Bad Request - - - - - -
-

Request Timeout

-

The server timed out waiting for the request.

-
- - \ No newline at end of file diff --git a/dist/engine/error/429.html b/dist/engine/error/429.html deleted file mode 100644 index d6b9f96..0000000 --- a/dist/engine/error/429.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - Bad Request - - - - - -
-

Too Many Requests

-

Sorry, the user has sent too many requests in a given amount of time.

-
- - \ No newline at end of file diff --git a/dist/engine/error/500.html b/dist/engine/error/500.html deleted file mode 100755 index 7c0a68c..0000000 --- a/dist/engine/error/500.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - Bad Request - - - - - -
-

Server Error

-

Sorry, it seems there's been an error. Please try later.

-
- - \ No newline at end of file diff --git a/dist/engine/error/503.html b/dist/engine/error/503.html deleted file mode 100644 index c9000c1..0000000 --- a/dist/engine/error/503.html +++ /dev/null @@ -1,48 +0,0 @@ - - - - - Bad Request - - - - - -
-

Service Unavailable

-

Sorry, the server is currently unavailable or under mantainance, try again later.

-
- - \ No newline at end of file diff --git a/dist/engine/nginx/README.md b/dist/engine/nginx/README.md deleted file mode 100644 index 807093d..0000000 --- a/dist/engine/nginx/README.md +++ /dev/null @@ -1,15 +0,0 @@ -# Sample Nginx configuration - -## How to -1. Copy content of this directory to your Nginx directory (e.g. /etc/nginx). -2. If you want to use "localhost" server name you need to delete conf.d/default.conf from Nginx directory or at least -modify it to avoid name conflict. -3. Copy your Monogatari files to path specified in sites-enabled/localhost.conf in root clause or change root clause -to reflect position of your files. -4. Reload Nginxs configuraton with ```nginx -s reload``` - -## sites-enabled vs sites-available -"sites-available" holds all sites configurations, "sites-enabled" holds sites configurations to be published. -Normally "site-enabled" contains only symbolic links to configurations in "site-available" but because links are not -platform agnostic we provide simple copy. If you want to change configuration be sure to create symbolic links or -maintain content of these two directories manually. \ No newline at end of file diff --git a/dist/engine/nginx/common/general.conf b/dist/engine/nginx/common/general.conf deleted file mode 100644 index df7168e..0000000 --- a/dist/engine/nginx/common/general.conf +++ /dev/null @@ -1,31 +0,0 @@ -# favicon.ico -location = /favicon.ico { - log_not_found off; - access_log off; -} - -# robots.txt -location = /robots.txt { - log_not_found off; - access_log off; -} - -# assets, media -location ~* \.(?:css(\.map)?|js(\.map)?|jpe?g|png|gif|ico|cur|heic|webp|tiff?|mp3|m4a|aac|ogg|midi?|wav|mp4|mov|webm|mpe?g|avi|ogv|flv|wmv)$ { - expires 7d; - access_log off; -} - -# svg, fonts -location ~* \.(?:svgz?|ttf|ttc|otf|eot|woff2?)$ { - add_header Access-Control-Allow-Origin "*"; - expires 7d; - access_log off; -} - -# gzip -gzip on; -gzip_vary on; -gzip_proxied any; -gzip_comp_level 6; -gzip_types text/plain text/css text/xml application/json application/javascript application/rss+xml application/atom+xml image/svg+xml; diff --git a/dist/engine/nginx/common/security.conf b/dist/engine/nginx/common/security.conf deleted file mode 100644 index 7408c50..0000000 --- a/dist/engine/nginx/common/security.conf +++ /dev/null @@ -1,10 +0,0 @@ -add_header X-Frame-Options "SAMEORIGIN" always; -add_header X-XSS-Protection "1; mode=block" always; -add_header X-Content-Type-Options "nosniff" always; -add_header Referrer-Policy "no-referrer-when-downgrade" always; -add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline' 'unsafe-eval'" always; - -location ~\.(bak|config|dist|fla|inc|ini|log|psd|sh|sql|swp|~)$ { - deny all; - error_page 404 / ; -} \ No newline at end of file diff --git a/dist/engine/nginx/nginx.conf b/dist/engine/nginx/nginx.conf deleted file mode 100644 index 9183445..0000000 --- a/dist/engine/nginx/nginx.conf +++ /dev/null @@ -1,32 +0,0 @@ -user www-data; -pid /run/nginx.pid; -worker_processes auto; -worker_rlimit_nofile 65535; - -events { - multi_accept on; - worker_connections 65535; -} - -http { - charset utf-8; - sendfile on; - tcp_nopush on; - tcp_nodelay on; - server_tokens off; - log_not_found off; - types_hash_max_size 2048; - client_max_body_size 16M; - - # MIME - include mime.types; - default_type application/octet-stream; - - # logging - access_log /var/log/nginx/access.log; - error_log /var/log/nginx/error.log warn; - - # load configs - include /etc/nginx/conf.d/*.conf; - include /etc/nginx/sites-enabled/*; -} diff --git a/dist/engine/nginx/sites-available/localhost.conf b/dist/engine/nginx/sites-available/localhost.conf deleted file mode 100644 index e2b1010..0000000 --- a/dist/engine/nginx/sites-available/localhost.conf +++ /dev/null @@ -1,61 +0,0 @@ -server { - listen 80; - listen [::]:80; - - server_name localhost; - root /var/www/localhost/public; - - include common/security.conf; - - location / { - try_files $uri $uri/ /index.html; - } - - include common/general.conf; - - error_page 400 400.html; - location = /400.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 401 /engine/error/401.html; - location = /401.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 403 /engine/error/403.html; - location = /403.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 404 /engine/error/404.html; - location = /404.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 405 /engine/error/405.html; - location = /405.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 408 /engine/error/408.html; - location = /408.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 429 /engine/error/429.html; - location = /429.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 500 /engine/error/500.html; - location = /500.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 503 /engine/error/503.html; - location = /503.html { - internal; - root /var/www/localhost/public/engine/error/; - } -} diff --git a/dist/engine/nginx/sites-enabled/localhost.conf b/dist/engine/nginx/sites-enabled/localhost.conf deleted file mode 100644 index e2b1010..0000000 --- a/dist/engine/nginx/sites-enabled/localhost.conf +++ /dev/null @@ -1,61 +0,0 @@ -server { - listen 80; - listen [::]:80; - - server_name localhost; - root /var/www/localhost/public; - - include common/security.conf; - - location / { - try_files $uri $uri/ /index.html; - } - - include common/general.conf; - - error_page 400 400.html; - location = /400.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 401 /engine/error/401.html; - location = /401.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 403 /engine/error/403.html; - location = /403.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 404 /engine/error/404.html; - location = /404.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 405 /engine/error/405.html; - location = /405.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 408 /engine/error/408.html; - location = /408.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 429 /engine/error/429.html; - location = /429.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 500 /engine/error/500.html; - location = /500.html { - internal; - root /var/www/localhost/public/engine/error/; - } - error_page 503 /engine/error/503.html; - location = /503.html { - internal; - root /var/www/localhost/public/engine/error/; - } -} diff --git a/dist/index.html b/dist/index.html index c533105..d2a0dd5 100755 --- a/dist/index.html +++ b/dist/index.html @@ -8,22 +8,22 @@ - + - + - + - + @@ -32,7 +32,7 @@ - + @@ -54,7 +54,7 @@ - + @@ -77,14 +77,15 @@ - + + + - diff --git a/dist/js/main.js b/dist/js/main.js index 7867b01..267c209 100755 --- a/dist/js/main.js +++ b/dist/js/main.js @@ -1,6 +1,5 @@ 'use strict'; -/* global Monogatari */ -/* global monogatari */ +/* global Monogatari, monogatari */ /** * ============================================================================= @@ -27,6 +26,7 @@ const { $_ready, $_ } = Monogatari; // 1. Outside the $_ready function: +monogatari.debug.level(5); $_ready (() => { // 2. Inside the $_ready function: diff --git a/dist/js/options.js b/dist/js/options.js index 3a62f8d..8b45023 100755 --- a/dist/js/options.js +++ b/dist/js/options.js @@ -8,9 +8,7 @@ **/ 'use strict'; -/* global Monogatari */ - -const monogatari = Monogatari.default; +/* global monogatari */ monogatari.settings({ @@ -68,6 +66,11 @@ monogatari.settings({ // Enables or disables the typing text animation for the whole game. 'TypeAnimation': true, + // Enables or disables instant text when moving the game forward. + // Enabled - Text will instantly appear when the player moves the text forward. + // Disabled - Text will appear at a rapid speed, ignoring pauses. + 'InstantText': true, + // Enables or disables the typing text animation in NVL dialogs for the // whole game. 'NVLTypeAnimation': true, @@ -79,7 +82,7 @@ monogatari.settings({ // Enables or disables the typing animation for the special centered // character. If the TypeAnimation property was set to false, the centered - // character won't shown the animation even if this is set to true. + // character won't show the animation even if this is set to true. 'CenteredTypeAnimation': true, // Force some orientation on mobile devices. If this setting is set either @@ -126,10 +129,22 @@ monogatari.settings({ // - RemoteStorage: The information will be sent and retrieved from a given // URL Endpoint providing a REST API. 'Storage': { - 'Adapter': 'LocalStorage', + 'Adapter': 'IndexedDB', 'Store': 'GameData', 'Endpoint': '' - } + }, + + // Whether players can go back to previous points of the game or not. + // Default: true + // If this is set to false, the "Back" button on the quick menu will not be + // shown and the left arrow keyboard shortcut will be disabled. + 'AllowRollback': true, + + // Whether experimental features should be enabled or not. Default: false + // These features are unfinished and unstable, chances are they will still + // go through a lot of changes and functionality won't have any backward + // compatibility rendering your save files unusable on many cases. + 'ExperimentalFeatures': false }); // Initial Settings diff --git a/dist/jsconfig.json b/dist/jsconfig.json new file mode 100644 index 0000000..67aa4ff --- /dev/null +++ b/dist/jsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "target": "ESNext", + "useDefineForClassFields": true, + "module": "ESNext", + "strict": false, // this is false because not everyone want strict + "esModuleInterop": true, + "skipLibCheck": true, + "explainFiles": true + }, + "include": ["js", "engine/core", "engine/debug"] +} \ No newline at end of file diff --git a/dist/jsconfig.node.json b/dist/jsconfig.node.json new file mode 100644 index 0000000..78c35ba --- /dev/null +++ b/dist/jsconfig.node.json @@ -0,0 +1,10 @@ +{ + "compilerOptions": { + "skipLibCheck": true, + "module": "ESNext", + "moduleResolution": "nodenext", + "allowSyntheticDefaultImports": true, + "explainFiles": true + }, + "include": ["engine/electron"] +} \ No newline at end of file diff --git a/dist/package.json b/dist/package.json index c9ce592..bb9253e 100644 --- a/dist/package.json +++ b/dist/package.json @@ -1,13 +1,17 @@ { "name": "my-game", - "productName": "My Game", "version": "0.1.0", - "main": "engine/electron/index.js", - "description": "A description of your game", "author": "Your Name", - "license": "MIT", - "homepage": "https://example.com", + "main": "engine/electron/index.js", + "devDependencies": { + "@electron/notarize": "^2.4.0", + "electron": "^33.2.0", + "electron-builder": "^25.0.5" + }, "build": { + "directories": { + "output": "build/electron" + }, "appId": "com.example.mygame", "win": { "target": [ @@ -38,20 +42,22 @@ "icon": "assets/icons/512x512.png", "afterSign": "engine/electron/notarize.js" }, + "description": "A description of your game", + "homepage": "https://example.com", + "license": "MIT", + "productName": "My Game", "scripts": { - "serve": "yarn http-server . -o -p 3000", + "serve": "bun --hot serve.ts", "start": "yarn electron . --enable-logging", + "start:electrobun": "bunx electrobun build && bunx electrobun dev", "build": "yarn electron-builder -mwl", "build:windows": "yarn electron-builder -w", "build:mac": "yarn electron-builder -m", - "build:linux": "yarn electron-builder -l" + "build:linux": "yarn electron-builder -l", + "build:web": "bun build-web.ts", + "build:electrobun": "bunx electrobun build" }, - "devDependencies": { - "@babel/core": "^7.13.8", - "electron": "^11.3.0", - "electron-builder": "^22.9.1", - "electron-notarize": "^1.0.0", - "http-server": "^0.12.3", - "parcel": "^1.12.4" + "dependencies": { + "electrobun": "^1.16.0" } } diff --git a/dist/robots.txt b/dist/robots.txt deleted file mode 100755 index 66fc0e1..0000000 --- a/dist/robots.txt +++ /dev/null @@ -1,2 +0,0 @@ -User-agent: * -Disallow: /assets \ No newline at end of file diff --git a/dist/serve.ts b/dist/serve.ts new file mode 100644 index 0000000..9da963c --- /dev/null +++ b/dist/serve.ts @@ -0,0 +1,101 @@ +import { watch } from "fs"; +import { join, extname } from "path"; + +const PORT = Number(process.env.PORT) || 5100; +const ROOT = import.meta.dir; + +const MIME_TYPES: Record = { + ".html": "text/html", + ".js": "text/javascript", + ".css": "text/css", + ".json": "application/json", + ".png": "image/png", + ".jpg": "image/jpeg", + ".jpeg": "image/jpeg", + ".gif": "image/gif", + ".svg": "image/svg+xml", + ".ico": "image/x-icon", + ".webp": "image/webp", + ".mp3": "audio/mpeg", + ".ogg": "audio/ogg", + ".wav": "audio/wav", + ".mp4": "video/mp4", + ".webm": "video/webm", + ".woff": "font/woff", + ".woff2": "font/woff2", + ".ttf": "font/ttf", +}; + +const LIVE_RELOAD_SCRIPT = ` + +`; + +const reloadSockets = new Set>(); + +// Watch for file changes +const WATCH_DIRS = ["js", "style", "engine/core", "engine/debug", "."]; +for (const dir of WATCH_DIRS) { + watch(join(ROOT, dir), { recursive: dir !== "." }, () => { + for (const ws of reloadSockets) { + ws.send("reload"); + } + }); +} + +Bun.serve({ + port: PORT, + async fetch(req) { + const url = new URL(req.url); + let pathname = url.pathname === "/" ? "/index.html" : url.pathname; + + // Upgrade WebSocket for live-reload + if (pathname === "/__reload") { + if (req.headers.get("upgrade") === "websocket") { + return undefined; // Let the websocket handler deal with it + } + return new Response("WebSocket only", { status: 400 }); + } + + const filePath = join(ROOT, pathname); + const file = Bun.file(filePath); + + if (!(await file.exists())) { + return new Response("Not Found", { status: 404 }); + } + + // Inject live-reload script into HTML + const ext = extname(pathname); + if (ext === ".html") { + const html = await file.text(); + const injected = html.replace("", `${LIVE_RELOAD_SCRIPT}`); + return new Response(injected, { + headers: { "Content-Type": "text/html" }, + }); + } + + return new Response(file, { + headers: { + "Content-Type": MIME_TYPES[ext] || "application/octet-stream", + }, + }); + }, + websocket: { + open(ws) { + reloadSockets.add(ws); + }, + close(ws) { + reloadSockets.delete(ws); + }, + message() {}, + }, +}); + +console.log(`Dev server running at http://localhost:${PORT}`); diff --git a/dist/service-worker.js b/dist/service-worker.js index da40f34..1103c4e 100644 --- a/dist/service-worker.js +++ b/dist/service-worker.js @@ -107,4 +107,84 @@ self.addEventListener ('fetch', (event) => { return cached || networked; }) ); +}); + +// Message handlers for communication with main thread +// Message format: { type: string, data: object } +// Response format varies by type +self.addEventListener ('message', async (event) => { + const { type, data } = event.data || {}; + const respond = (response, transfer) => { + event.ports[0]?.postMessage (response, transfer); + }; + + switch (type) { + // Cache multiple assets on demand + // data: { urls: string[] } + // response: { success: boolean, cached?: number, total?: number, error?: string } + case 'CACHE_ASSETS': { + const { urls } = data || {}; + if (!Array.isArray (urls)) { + respond ({ success: false, error: 'urls must be an array' }); + return; + } + try { + const cache = await caches.open (`${name}-v${version}`); + const results = await Promise.allSettled ( + urls.map ((assetUrl) => cache.add (assetUrl)) + ); + const successCount = results.filter ((r) => r.status === 'fulfilled').length; + respond ({ success: true, cached: successCount, total: urls.length }); + } catch (error) { + respond ({ success: false, error: error.message }); + } + break; + } + + // Check if a single asset is in cache + // data: { url: string } + // response: { cached: boolean, error?: string } + case 'CHECK_CACHE': { + const { url } = data || {}; + if (!url) { + respond ({ cached: false, error: 'url is required' }); + return; + } + try { + const cache = await caches.open (`${name}-v${version}`); + const response = await cache.match (url); + respond ({ cached: !!response }); + } catch (error) { + respond ({ cached: false, error: error.message }); + } + break; + } + + // Get raw cached response for an asset (for decoding) + // data: { url: string } + // response: { found: boolean, data?: ArrayBuffer, error?: string } + case 'GET_CACHED': { + const { url } = data || {}; + if (!url) { + respond ({ found: false, error: 'url is required' }); + return; + } + try { + const cache = await caches.open (`${name}-v${version}`); + const response = await cache.match (url); + if (response) { + const arrayBuffer = await response.arrayBuffer (); + respond ({ found: true, data: arrayBuffer }, [arrayBuffer]); + } else { + respond ({ found: false }); + } + } catch (error) { + respond ({ found: false, error: error.message }); + } + break; + } + + default: + respond ({ error: `Unknown message type: ${type}` }); + } }); \ No newline at end of file diff --git a/dist/yarn.lock b/dist/yarn.lock deleted file mode 100644 index ef3781c..0000000 --- a/dist/yarn.lock +++ /dev/null @@ -1,6523 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"7zip-bin@~5.0.3": - version "5.0.3" - resolved "https://registry.yarnpkg.com/7zip-bin/-/7zip-bin-5.0.3.tgz#bc5b5532ecafd923a61f2fb097e3b108c0106a3f" - integrity sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA== - -"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.13.tgz#dcfc826beef65e75c50e21d3837d7d95798dd658" - integrity sha512-HV1Cm0Q3ZrpCR93tkWOYiuYIgLxZXZFVG2VgK+MBWjUqZTundupbfx2aXarXuw5Ko5aMcjtJgbSs4vUGBS5v6g== - dependencies: - "@babel/highlight" "^7.12.13" - -"@babel/compat-data@^7.13.0", "@babel/compat-data@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.13.8.tgz#5b783b9808f15cef71547f1b691f34f8ff6003a6" - integrity sha512-EaI33z19T4qN3xLXsGf48M2cDqa6ei9tPZlfLdb2HC+e/cFtREiRd8hdSqDbwdLB0/+gLwqJmCYASH0z2bUdog== - -"@babel/core@^7.13.8", "@babel/core@^7.4.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.13.8.tgz#c191d9c5871788a591d69ea1dc03e5843a3680fb" - integrity sha512-oYapIySGw1zGhEFRd6lzWNLWFX2s5dA/jm+Pw/+59ZdXtjyIuwlXbrId22Md0rgZVop+aVoqow2riXhBLNyuQg== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.0" - "@babel/helper-compilation-targets" "^7.13.8" - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helpers" "^7.13.0" - "@babel/parser" "^7.13.4" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - convert-source-map "^1.7.0" - debug "^4.1.0" - gensync "^1.0.0-beta.2" - json5 "^2.1.2" - lodash "^4.17.19" - semver "^6.3.0" - source-map "^0.5.0" - -"@babel/generator@^7.13.0", "@babel/generator@^7.4.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.13.0.tgz#bd00d4394ca22f220390c56a0b5b85568ec1ec0c" - integrity sha512-zBZfgvBB/ywjx0Rgc2+BwoH/3H+lDtlgD4hBOpEv5LxRnYsm/753iRuLepqnYlynpjC3AdQxtxsoeHJoEEwOAw== - dependencies: - "@babel/types" "^7.13.0" - jsesc "^2.5.1" - source-map "^0.5.0" - -"@babel/helper-annotate-as-pure@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.13.tgz#0f58e86dfc4bb3b1fcd7db806570e177d439b6ab" - integrity sha512-7YXfX5wQ5aYM/BOlbSccHDbuXXFPxeoUmfWtz8le2yTkTZc+BxsiEnENFoi2SlmA8ewDkG2LgIMIVzzn2h8kfw== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-builder-binary-assignment-operator-visitor@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.12.13.tgz#6bc20361c88b0a74d05137a65cac8d3cbf6f61fc" - integrity sha512-CZOv9tGphhDRlVjVkAgm8Nhklm9RzSmWpX2my+t7Ua/KT616pEzXsQCjinzvkRvHWJ9itO4f296efroX23XCMA== - dependencies: - "@babel/helper-explode-assignable-expression" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.13.8.tgz#02bdb22783439afb11b2f009814bdd88384bd468" - integrity sha512-pBljUGC1y3xKLn1nrx2eAhurLMA8OqBtBP/JwG4U8skN7kf8/aqwwxpV1N6T0e7r6+7uNitIa/fUxPFagSXp3A== - dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-validator-option" "^7.12.17" - browserslist "^4.14.5" - semver "^6.3.0" - -"@babel/helper-create-class-features-plugin@^7.13.0": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.13.8.tgz#0367bd0a7505156ce018ca464f7ac91ba58c1a04" - integrity sha512-qioaRrKHQbn4hkRKDHbnuQ6kAxmmOF+kzKGnIfxPK4j2rckSJCpKzr/SSTlohSCiE3uAQpNDJ9FIh4baeE8W+w== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-member-expression-to-functions" "^7.13.0" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-split-export-declaration" "^7.12.13" - -"@babel/helper-create-regexp-features-plugin@^7.12.13": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.17.tgz#a2ac87e9e319269ac655b8d4415e94d38d663cb7" - integrity sha512-p2VGmBu9oefLZ2nQpgnEnG0ZlRPvL8gAGvPUMQwUdaE8k49rOMuZpOwdQoy5qJf6K8jL3bcAMhVUlHAjIgJHUg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - regexpu-core "^4.7.1" - -"@babel/helper-define-polyfill-provider@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.1.4.tgz#b618b087c6a0328127e5d53576df818bcee2b15f" - integrity sha512-K5V2GaQZ1gpB+FTXM4AFVG2p1zzhm67n9wrQCJYNzvuLzQybhJyftW7qeDd2uUxPDNdl5Rkon1rOAeUeNDZ28Q== - dependencies: - "@babel/helper-compilation-targets" "^7.13.0" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/traverse" "^7.13.0" - debug "^4.1.1" - lodash.debounce "^4.0.8" - resolve "^1.14.2" - semver "^6.1.2" - -"@babel/helper-explode-assignable-expression@^7.12.13": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.13.0.tgz#17b5c59ff473d9f956f40ef570cf3a76ca12657f" - integrity sha512-qS0peLTDP8kOisG1blKbaoBg/o9OSa1qoumMjTK5pM+KDTtpxpsiubnCGP34vK8BXGcb2M9eigwgvoJryrzwWA== - dependencies: - "@babel/types" "^7.13.0" - -"@babel/helper-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.12.13.tgz#93ad656db3c3c2232559fd7b2c3dbdcbe0eb377a" - integrity sha512-TZvmPn0UOqmvi5G4vvw0qZTpVptGkB1GL61R6lKvrSdIxGm5Pky7Q3fpKiIkQCAtRCBUwB0PaThlx9vebCDSwA== - dependencies: - "@babel/helper-get-function-arity" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/helper-get-function-arity@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.13.tgz#bc63451d403a3b3082b97e1d8b3fe5bd4091e583" - integrity sha512-DjEVzQNz5LICkzN0REdpD5prGoidvbdYk1BVgRUOINaWJP2t6avB27X1guXK1kXNrX0WMfsrm1A/ZBthYuIMQg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-hoist-variables@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.13.0.tgz#5d5882e855b5c5eda91e0cadc26c6e7a2c8593d8" - integrity sha512-0kBzvXiIKfsCA0y6cFEIJf4OdzfpRuNk4+YTeHZpGGc666SATFKTz6sRncwFnQk7/ugJ4dSrCj6iJuvW4Qwr2g== - dependencies: - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helper-member-expression-to-functions@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.13.0.tgz#6aa4bb678e0f8c22f58cdb79451d30494461b091" - integrity sha512-yvRf8Ivk62JwisqV1rFRMxiSMDGnN6KH1/mDMmIrij4jztpQNRoHqqMG3U6apYbGRPJpgPalhva9Yd06HlUxJQ== - dependencies: - "@babel/types" "^7.13.0" - -"@babel/helper-module-imports@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.12.13.tgz#ec67e4404f41750463e455cc3203f6a32e93fcb0" - integrity sha512-NGmfvRp9Rqxy0uHSSVP+SRIW1q31a7Ji10cLBcqSDUngGentY4FRiHOFZFE1CLU5eiL0oE8reH7Tg1y99TDM/g== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-module-transforms@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.13.0.tgz#42eb4bd8eea68bab46751212c357bfed8b40f6f1" - integrity sha512-Ls8/VBwH577+pw7Ku1QkUWIyRRNHpYlts7+qSqBBFCW3I8QteB9DxfcZ5YJpOwH6Ihe/wn8ch7fMGOP1OhEIvw== - dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-simple-access" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/helper-validator-identifier" "^7.12.11" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - lodash "^4.17.19" - -"@babel/helper-optimise-call-expression@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.13.tgz#5c02d171b4c8615b1e7163f888c1c81c30a2aaea" - integrity sha512-BdWQhoVJkp6nVjB7nkFWcn43dkprYauqtk++Py2eaf/GRDFm5BxRqEIZCiHlZUGAVmtwKcsVL1dC68WmzeFmiA== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.13.0.tgz#806526ce125aed03373bc416a828321e3a6a33af" - integrity sha512-ZPafIPSwzUlAoWT8DKs1W2VyF2gOWthGd5NGFMsBcMMol+ZhK+EQY/e6V96poa6PA/Bh+C9plWN0hXO1uB8AfQ== - -"@babel/helper-remap-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.13.0.tgz#376a760d9f7b4b2077a9dd05aa9c3927cadb2209" - integrity sha512-pUQpFBE9JvC9lrQbpX0TmeNIy5s7GnZjna2lhhcHC7DzgBs6fWn722Y5cfwgrtrqc7NAJwMvOa0mKhq6XaE4jg== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-wrap-function" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helper-replace-supers@^7.12.13", "@babel/helper-replace-supers@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.13.0.tgz#6034b7b51943094cb41627848cb219cb02be1d24" - integrity sha512-Segd5me1+Pz+rmN/NFBOplMbZG3SqRJOBlY+mA0SxAv6rjj7zJqr1AVr3SfzUVTLCv7ZLU5FycOM/SBGuLPbZw== - dependencies: - "@babel/helper-member-expression-to-functions" "^7.13.0" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helper-simple-access@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.12.13.tgz#8478bcc5cacf6aa1672b251c1d2dde5ccd61a6c4" - integrity sha512-0ski5dyYIHEfwpWGx5GPWhH35j342JaflmCeQmsPWcrOQDtCN6C1zKAVRFVbK53lPW2c9TsuLLSUDf0tIGJ5hA== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-skip-transparent-expression-wrappers@^7.12.1": - version "7.12.1" - resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz#462dc63a7e435ade8468385c63d2b84cce4b3cbf" - integrity sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA== - dependencies: - "@babel/types" "^7.12.1" - -"@babel/helper-split-export-declaration@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.13.tgz#e9430be00baf3e88b0e13e6f9d4eaf2136372b05" - integrity sha512-tCJDltF83htUtXx5NLcaDqRmknv652ZWCHyoTETf1CXYJdPC7nohZohjUgieXhv0hTJdRf2FjDueFehdNucpzg== - dependencies: - "@babel/types" "^7.12.13" - -"@babel/helper-validator-identifier@^7.12.11": - version "7.12.11" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed" - integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw== - -"@babel/helper-validator-option@^7.12.17": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.12.17.tgz#d1fbf012e1a79b7eebbfdc6d270baaf8d9eb9831" - integrity sha512-TopkMDmLzq8ngChwRlyjR6raKD6gMSae4JdYDB8bByKreQgG0RBTuKe9LRxW3wFtUnjxOPRKBDwEH6Mg5KeDfw== - -"@babel/helper-wrap-function@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.13.0.tgz#bdb5c66fda8526ec235ab894ad53a1235c79fcc4" - integrity sha512-1UX9F7K3BS42fI6qd2A4BjKzgGjToscyZTdp1DjknHLCIvpgne6918io+aL5LXFcER/8QWiwpoY902pVEqgTXA== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/helpers@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.13.0.tgz#7647ae57377b4f0408bf4f8a7af01c42e41badc0" - integrity sha512-aan1MeFPxFacZeSz6Ld7YZo5aPuqnKlD7+HZY75xQsueczFccP9A7V05+oe0XpLwHK3oLorPe9eaAUljL7WEaQ== - dependencies: - "@babel/template" "^7.12.13" - "@babel/traverse" "^7.13.0" - "@babel/types" "^7.13.0" - -"@babel/highlight@^7.12.13": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.13.8.tgz#10b2dac78526424dfc1f47650d0e415dfd9dc481" - integrity sha512-4vrIhfJyfNf+lCtXC2ck1rKSzDwciqF7IWFhXXrSOUC2O5DrVp+w4c6ed4AllTxhTkUP5x2tYj41VaxdVMMRDw== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - chalk "^2.0.0" - js-tokens "^4.0.0" - -"@babel/parser@^7.12.13", "@babel/parser@^7.13.0", "@babel/parser@^7.13.4", "@babel/parser@^7.4.4": - version "7.13.4" - resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.13.4.tgz#340211b0da94a351a6f10e63671fa727333d13ab" - integrity sha512-uvoOulWHhI+0+1f9L4BoozY7U5cIkZ9PgJqvb041d6vypgUmtVPG4vmGm4pSggjl8BELzvHyUeJSUyEMY6b+qA== - -"@babel/plugin-proposal-async-generator-functions@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.13.8.tgz#87aacb574b3bc4b5603f6fe41458d72a5a2ec4b1" - integrity sha512-rPBnhj+WgoSmgq+4gQUtXx/vOcU+UYtjy1AA/aeD61Hwj410fwYyqfUcRP3lR8ucgliVJL/G7sXcNUecC75IXA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" - "@babel/plugin-syntax-async-generators" "^7.8.4" - -"@babel/plugin-proposal-class-properties@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.13.0.tgz#146376000b94efd001e57a40a88a525afaab9f37" - integrity sha512-KnTDjFNC1g+45ka0myZNvSBFLhNCLN+GeGYLDEA8Oq7MZ6yMgfLoIRh86GRT0FjtJhZw8JyUskP9uvj5pHM9Zg== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-proposal-dynamic-import@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.13.8.tgz#876a1f6966e1dec332e8c9451afda3bebcdf2e1d" - integrity sha512-ONWKj0H6+wIRCkZi9zSbZtE/r73uOhMVHh256ys0UzfM7I3d4n+spZNWjOnJv2gzopumP2Wxi186vI8N0Y2JyQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - -"@babel/plugin-proposal-export-namespace-from@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.12.13.tgz#393be47a4acd03fa2af6e3cde9b06e33de1b446d" - integrity sha512-INAgtFo4OnLN3Y/j0VwAgw3HDXcDtX+C/erMvWzuV9v71r7urb6iyMXu7eM9IgLr1ElLlOkaHjJ0SbCmdOQ3Iw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - -"@babel/plugin-proposal-json-strings@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.13.8.tgz#bf1fb362547075afda3634ed31571c5901afef7b" - integrity sha512-w4zOPKUFPX1mgvTmL/fcEqy34hrQ1CRcGxdphBc6snDnnqJ47EZDIyop6IwXzAC8G916hsIuXB2ZMBCExC5k7Q== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-json-strings" "^7.8.3" - -"@babel/plugin-proposal-logical-assignment-operators@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.13.8.tgz#93fa78d63857c40ce3c8c3315220fd00bfbb4e1a" - integrity sha512-aul6znYB4N4HGweImqKn59Su9RS8lbUIqxtXTOcAGtNIDczoEFv+l1EhmX8rUBp3G1jMjKJm8m0jXVp63ZpS4A== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - -"@babel/plugin-proposal-nullish-coalescing-operator@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.13.8.tgz#3730a31dafd3c10d8ccd10648ed80a2ac5472ef3" - integrity sha512-iePlDPBn//UhxExyS9KyeYU7RM9WScAG+D3Hhno0PLJebAEpDZMocbDe64eqynhNAnwz/vZoL/q/QB2T1OH39A== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - -"@babel/plugin-proposal-numeric-separator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.12.13.tgz#bd9da3188e787b5120b4f9d465a8261ce67ed1db" - integrity sha512-O1jFia9R8BUCl3ZGB7eitaAPu62TXJRHn7rh+ojNERCFyqRwJMTmhz+tJ+k0CwI6CLjX/ee4qW74FSqlq9I35w== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - -"@babel/plugin-proposal-object-rest-spread@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.13.8.tgz#5d210a4d727d6ce3b18f9de82cc99a3964eed60a" - integrity sha512-DhB2EuB1Ih7S3/IRX5AFVgZ16k3EzfRbq97CxAVI1KSYcW+lexV8VZb7G7L8zuPVSdQMRn0kiBpf/Yzu9ZKH0g== - dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-compilation-targets" "^7.13.8" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-transform-parameters" "^7.13.0" - -"@babel/plugin-proposal-optional-catch-binding@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.13.8.tgz#3ad6bd5901506ea996fc31bdcf3ccfa2bed71107" - integrity sha512-0wS/4DUF1CuTmGo+NiaHfHcVSeSLj5S3e6RivPTg/2k3wOv3jO35tZ6/ZWsQhQMvdgI7CwphjQa/ccarLymHVA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - -"@babel/plugin-proposal-optional-chaining@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.13.8.tgz#e39df93efe7e7e621841babc197982e140e90756" - integrity sha512-hpbBwbTgd7Cz1QryvwJZRo1U0k1q8uyBmeXOSQUjdg/A2TASkhR/rz7AyqZ/kS8kbpsNA80rOYbxySBJAqmhhQ== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - -"@babel/plugin-proposal-private-methods@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.13.0.tgz#04bd4c6d40f6e6bbfa2f57e2d8094bad900ef787" - integrity sha512-MXyyKQd9inhx1kDYPkFRVOBXQ20ES8Pto3T7UZ92xj2mY0EVD8oAVzeyYuVfy/mxAdTSIayOvg+aVzcHV2bn6Q== - dependencies: - "@babel/helper-create-class-features-plugin" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-proposal-unicode-property-regex@^7.12.13", "@babel/plugin-proposal-unicode-property-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.13.tgz#bebde51339be829c17aaaaced18641deb62b39ba" - integrity sha512-XyJmZidNfofEkqFV5VC/bLabGmO5QzenPO/YOfGuEbgU+2sSwMmio3YLb4WtBgcmmdwZHyVyv8on77IUjQ5Gvg== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-async-generators@^7.8.4": - version "7.8.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz#a983fb1aeb2ec3f6ed042a210f640e90e786fe0d" - integrity sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-class-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz#b5c987274c4a3a82b89714796931a6b53544ae10" - integrity sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-dynamic-import@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz#62bf98b2da3cd21d626154fc96ee5b3cb68eacb3" - integrity sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-export-namespace-from@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz#028964a9ba80dbc094c915c487ad7c4e7a66465a" - integrity sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.3" - -"@babel/plugin-syntax-flow@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-flow/-/plugin-syntax-flow-7.12.13.tgz#5df9962503c0a9c918381c929d51d4d6949e7e86" - integrity sha512-J/RYxnlSLXZLVR7wTRsozxKT8qbsx1mNKJzXEEjQ0Kjx1ZACcyHgbanNWNCFtc36IzuWhYWPpvJFFoexoOWFmA== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-json-strings@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz#01ca21b668cd8218c9e640cb6dd88c5412b2c96a" - integrity sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-jsx@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.12.13.tgz#044fb81ebad6698fe62c478875575bcbb9b70f15" - integrity sha512-d4HM23Q1K7oq/SLNmG6mRt85l2csmQ0cHRaxRXjKW0YFdEXqlZ5kzFQKH5Uc3rDJECgu+yCRgPkG04Mm98R/1g== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-syntax-logical-assignment-operators@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz#ca91ef46303530448b906652bac2e9fe9941f699" - integrity sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-nullish-coalescing-operator@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz#167ed70368886081f74b5c36c65a88c03b66d1a9" - integrity sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-numeric-separator@^7.10.4": - version "7.10.4" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz#b9b070b3e33570cd9fd07ba7fa91c0dd37b9af97" - integrity sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug== - dependencies: - "@babel/helper-plugin-utils" "^7.10.4" - -"@babel/plugin-syntax-object-rest-spread@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz#60e225edcbd98a640332a2e72dd3e66f1af55871" - integrity sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-catch-binding@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz#6111a265bcfb020eb9efd0fdfd7d26402b9ed6c1" - integrity sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-optional-chaining@^7.8.3": - version "7.8.3" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz#4f69c2ab95167e0180cd5336613f8c5788f7d48a" - integrity sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg== - dependencies: - "@babel/helper-plugin-utils" "^7.8.0" - -"@babel/plugin-syntax-top-level-await@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.13.tgz#c5f0fa6e249f5b739727f923540cf7a806130178" - integrity sha512-A81F9pDwyS7yM//KwbCSDqy3Uj4NMIurtplxphWxoYtNPov7cJsDkAFNNyVlIZ3jwGycVsurZ+LtOA8gZ376iQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-arrow-functions@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.13.0.tgz#10a59bebad52d637a027afa692e8d5ceff5e3dae" - integrity sha512-96lgJagobeVmazXFaDrbmCLQxBysKu7U6Do3mLsx27gf5Dk85ezysrs2BZUpXD703U/Su1xTBDxxar2oa4jAGg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-async-to-generator@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.13.0.tgz#8e112bf6771b82bf1e974e5e26806c5c99aa516f" - integrity sha512-3j6E004Dx0K3eGmhxVJxwwI89CTJrce7lg3UrtFuDAVQ/2+SJ/h/aSFOeE6/n0WB1GsOffsJp6MnPQNQ8nmwhg== - dependencies: - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-remap-async-to-generator" "^7.13.0" - -"@babel/plugin-transform-block-scoped-functions@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.13.tgz#a9bf1836f2a39b4eb6cf09967739de29ea4bf4c4" - integrity sha512-zNyFqbc3kI/fVpqwfqkg6RvBgFpC4J18aKKMmv7KdQ/1GgREapSJAykLMVNwfRGO3BtHj3YQZl8kxCXPcVMVeg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-block-scoping@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.13.tgz#f36e55076d06f41dfd78557ea039c1b581642e61" - integrity sha512-Pxwe0iqWJX4fOOM2kEZeUuAxHMWb9nK+9oh5d11bsLoB0xMg+mkDpt0eYuDZB7ETrY9bbcVlKUGTOGWy7BHsMQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-classes@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.13.0.tgz#0265155075c42918bf4d3a4053134176ad9b533b" - integrity sha512-9BtHCPUARyVH1oXGcSJD3YpsqRLROJx5ZNP6tN5vnk17N0SVf9WCtf8Nuh1CFmgByKKAIMstitKduoCmsaDK5g== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-optimise-call-expression" "^7.12.13" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-replace-supers" "^7.13.0" - "@babel/helper-split-export-declaration" "^7.12.13" - globals "^11.1.0" - -"@babel/plugin-transform-computed-properties@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.13.0.tgz#845c6e8b9bb55376b1fa0b92ef0bdc8ea06644ed" - integrity sha512-RRqTYTeZkZAz8WbieLTvKUEUxZlUTdmL5KGMyZj7FnMfLNKV4+r5549aORG/mgojRmFlQMJDUupwAMiF2Q7OUg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-destructuring@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.13.0.tgz#c5dce270014d4e1ebb1d806116694c12b7028963" - integrity sha512-zym5em7tePoNT9s964c0/KU3JPPnuq7VhIxPRefJ4/s82cD+q1mgKfuGRDMCPL0HTyKz4dISuQlCusfgCJ86HA== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-dotall-regex@^7.12.13", "@babel/plugin-transform-dotall-regex@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.13.tgz#3f1601cc29905bfcb67f53910f197aeafebb25ad" - integrity sha512-foDrozE65ZFdUC2OfgeOCrEPTxdB3yjqxpXh8CH+ipd9CHd4s/iq81kcUpyH8ACGNEPdFqbtzfgzbT/ZGlbDeQ== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-duplicate-keys@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.13.tgz#6f06b87a8b803fd928e54b81c258f0a0033904de" - integrity sha512-NfADJiiHdhLBW3pulJlJI2NB0t4cci4WTZ8FtdIuNc2+8pslXdPtRRAEWqUY+m9kNOk2eRYbTAOipAxlrOcwwQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-exponentiation-operator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.13.tgz#4d52390b9a273e651e4aba6aee49ef40e80cd0a1" - integrity sha512-fbUelkM1apvqez/yYx1/oICVnGo2KM5s63mhGylrmXUxK/IAXSIf87QIxVfZldWf4QsOafY6vV3bX8aMHSvNrA== - dependencies: - "@babel/helper-builder-binary-assignment-operator-visitor" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-flow-strip-types@^7.4.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-flow-strip-types/-/plugin-transform-flow-strip-types-7.13.0.tgz#58177a48c209971e8234e99906cb6bd1122addd3" - integrity sha512-EXAGFMJgSX8gxWD7PZtW/P6M+z74jpx3wm/+9pn+c2dOawPpBkUX7BrfyPvo6ZpXbgRIEuwgwDb/MGlKvu2pOg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/plugin-syntax-flow" "^7.12.13" - -"@babel/plugin-transform-for-of@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.13.0.tgz#c799f881a8091ac26b54867a845c3e97d2696062" - integrity sha512-IHKT00mwUVYE0zzbkDgNRP6SRzvfGCYsOxIRz8KsiaaHCcT9BWIkO+H9QRJseHBLOGBZkHUdHiqj6r0POsdytg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-function-name@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.13.tgz#bb024452f9aaed861d374c8e7a24252ce3a50051" - integrity sha512-6K7gZycG0cmIwwF7uMK/ZqeCikCGVBdyP2J5SKNCXO5EOHcqi+z7Jwf8AmyDNcBgxET8DrEtCt/mPKPyAzXyqQ== - dependencies: - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.13.tgz#2ca45bafe4a820197cf315794a4d26560fe4bdb9" - integrity sha512-FW+WPjSR7hiUxMcKqyNjP05tQ2kmBCdpEpZHY1ARm96tGQCCBvXKnpjILtDplUnJ/eHZ0lALLM+d2lMFSpYJrQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-member-expression-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.13.tgz#5ffa66cd59b9e191314c9f1f803b938e8c081e40" - integrity sha512-kxLkOsg8yir4YeEPHLuO2tXP9R/gTjpuTOjshqSpELUN3ZAg2jfDnKUvzzJxObun38sw3wm4Uu69sX/zA7iRvg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-modules-amd@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.13.0.tgz#19f511d60e3d8753cc5a6d4e775d3a5184866cc3" - integrity sha512-EKy/E2NHhY/6Vw5d1k3rgoobftcNUmp9fGjb9XZwQLtTctsRBOTRO7RHHxfIky1ogMN5BxN7p9uMA3SzPfotMQ== - dependencies: - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-commonjs@^7.13.8", "@babel/plugin-transform-modules-commonjs@^7.4.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.13.8.tgz#7b01ad7c2dcf2275b06fa1781e00d13d420b3e1b" - integrity sha512-9QiOx4MEGglfYZ4XOnU79OHr6vIWUakIj9b4mioN8eQIoEh+pf5p/zEB36JpDFWA12nNMiRf7bfoRvl9Rn79Bw== - dependencies: - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-simple-access" "^7.12.13" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-systemjs@^7.13.8": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.13.8.tgz#6d066ee2bff3c7b3d60bf28dec169ad993831ae3" - integrity sha512-hwqctPYjhM6cWvVIlOIe27jCIBgHCsdH2xCJVAYQm7V5yTMoilbVMi9f6wKg0rpQAOn6ZG4AOyvCqFF/hUh6+A== - dependencies: - "@babel/helper-hoist-variables" "^7.13.0" - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-identifier" "^7.12.11" - babel-plugin-dynamic-import-node "^2.3.3" - -"@babel/plugin-transform-modules-umd@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.13.0.tgz#8a3d96a97d199705b9fd021580082af81c06e70b" - integrity sha512-D/ILzAh6uyvkWjKKyFE/W0FzWwasv6vPTSqPcjxFqn6QpX3u8DjRVliq4F2BamO2Wee/om06Vyy+vPkNrd4wxw== - dependencies: - "@babel/helper-module-transforms" "^7.13.0" - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-named-capturing-groups-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.13.tgz#2213725a5f5bbbe364b50c3ba5998c9599c5c9d9" - integrity sha512-Xsm8P2hr5hAxyYblrfACXpQKdQbx4m2df9/ZZSQ8MAhsadw06+jW7s9zsSw6he+mJZXRlVMyEnVktJo4zjk1WA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - -"@babel/plugin-transform-new-target@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.13.tgz#e22d8c3af24b150dd528cbd6e685e799bf1c351c" - integrity sha512-/KY2hbLxrG5GTQ9zzZSc3xWiOy379pIETEhbtzwZcw9rvuaVV4Fqy7BYGYOWZnaoXIQYbbJ0ziXLa/sKcGCYEQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-object-super@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.13.tgz#b4416a2d63b8f7be314f3d349bd55a9c1b5171f7" - integrity sha512-JzYIcj3XtYspZDV8j9ulnoMPZZnF/Cj0LUxPOjR89BdBVx+zYJI9MdMIlUZjbXDX+6YVeS6I3e8op+qQ3BYBoQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/helper-replace-supers" "^7.12.13" - -"@babel/plugin-transform-parameters@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.13.0.tgz#8fa7603e3097f9c0b7ca1a4821bc2fb52e9e5007" - integrity sha512-Jt8k/h/mIwE2JFEOb3lURoY5C85ETcYPnbuAJ96zRBzh1XHtQZfs62ChZ6EP22QlC8c7Xqr9q+e1SU5qttwwjw== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-property-literals@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.13.tgz#4e6a9e37864d8f1b3bc0e2dce7bf8857db8b1a81" - integrity sha512-nqVigwVan+lR+g8Fj8Exl0UQX2kymtjcWfMOYM1vTYEKujeyv2SkMgazf2qNcK7l4SDiKyTA/nHCPqL4e2zo1A== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-react-jsx@^7.0.0": - version "7.12.17" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.12.17.tgz#dd2c1299f5e26de584939892de3cfc1807a38f24" - integrity sha512-mwaVNcXV+l6qJOuRhpdTEj8sT/Z0owAVWf9QujTZ0d2ye9X/K+MTOTSizcgKOj18PGnTc/7g1I4+cIUjsKhBcw== - dependencies: - "@babel/helper-annotate-as-pure" "^7.12.13" - "@babel/helper-module-imports" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - "@babel/plugin-syntax-jsx" "^7.12.13" - "@babel/types" "^7.12.17" - -"@babel/plugin-transform-regenerator@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.13.tgz#b628bcc9c85260ac1aeb05b45bde25210194a2f5" - integrity sha512-lxb2ZAvSLyJ2PEe47hoGWPmW22v7CtSl9jW8mingV4H2sEX/JOcrAj2nPuGWi56ERUm2bUpjKzONAuT6HCn2EA== - dependencies: - regenerator-transform "^0.14.2" - -"@babel/plugin-transform-reserved-words@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.13.tgz#7d9988d4f06e0fe697ea1d9803188aa18b472695" - integrity sha512-xhUPzDXxZN1QfiOy/I5tyye+TRz6lA7z6xaT4CLOjPRMVg1ldRf0LHw0TDBpYL4vG78556WuHdyO9oi5UmzZBg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-shorthand-properties@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.13.tgz#db755732b70c539d504c6390d9ce90fe64aff7ad" - integrity sha512-xpL49pqPnLtf0tVluuqvzWIgLEhuPpZzvs2yabUHSKRNlN7ScYU7aMlmavOeyXJZKgZKQRBlh8rHbKiJDraTSw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-spread@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.13.0.tgz#84887710e273c1815ace7ae459f6f42a5d31d5fd" - integrity sha512-V6vkiXijjzYeFmQTr3dBxPtZYLPcUfY34DebOU27jIl2M/Y8Egm52Hw82CSjjPqd54GTlJs5x+CR7HeNr24ckg== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-skip-transparent-expression-wrappers" "^7.12.1" - -"@babel/plugin-transform-sticky-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.13.tgz#760ffd936face73f860ae646fb86ee82f3d06d1f" - integrity sha512-Jc3JSaaWT8+fr7GRvQP02fKDsYk4K/lYwWq38r/UGfaxo89ajud321NH28KRQ7xy1Ybc0VUE5Pz8psjNNDUglg== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-template-literals@^7.13.0": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.13.0.tgz#a36049127977ad94438dee7443598d1cefdf409d" - integrity sha512-d67umW6nlfmr1iehCcBv69eSUSySk1EsIS8aTDX4Xo9qajAh6mYtcl4kJrBkGXuxZPEgVr7RVfAvNW6YQkd4Mw== - dependencies: - "@babel/helper-plugin-utils" "^7.13.0" - -"@babel/plugin-transform-typeof-symbol@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.13.tgz#785dd67a1f2ea579d9c2be722de8c84cb85f5a7f" - integrity sha512-eKv/LmUJpMnu4npgfvs3LiHhJua5fo/CysENxa45YCQXZwKnGCQKAg87bvoqSW1fFT+HA32l03Qxsm8ouTY3ZQ== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-unicode-escapes@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.12.13.tgz#840ced3b816d3b5127dd1d12dcedc5dead1a5e74" - integrity sha512-0bHEkdwJ/sN/ikBHfSmOXPypN/beiGqjo+o4/5K+vxEFNPRPdImhviPakMKG4x96l85emoa0Z6cDflsdBusZbw== - dependencies: - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/plugin-transform-unicode-regex@^7.12.13": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.13.tgz#b52521685804e155b1202e83fc188d34bb70f5ac" - integrity sha512-mDRzSNY7/zopwisPZ5kM9XKCfhchqIYwAKRERtEnhYscZB79VRekuRSoYbN0+KVe3y8+q1h6A4svXtP7N+UoCA== - dependencies: - "@babel/helper-create-regexp-features-plugin" "^7.12.13" - "@babel/helper-plugin-utils" "^7.12.13" - -"@babel/preset-env@^7.4.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.13.8.tgz#1133d7ae806d6bf981b7a1a49e336d4d88db1953" - integrity sha512-Sso1xOpV4S3ofnxW2DsWTE5ziRk62jEAKLGuQ+EJHC+YHTbFG38QUTixO3JVa1cYET9gkJhO1pMu+/+2dDhKvw== - dependencies: - "@babel/compat-data" "^7.13.8" - "@babel/helper-compilation-targets" "^7.13.8" - "@babel/helper-plugin-utils" "^7.13.0" - "@babel/helper-validator-option" "^7.12.17" - "@babel/plugin-proposal-async-generator-functions" "^7.13.8" - "@babel/plugin-proposal-class-properties" "^7.13.0" - "@babel/plugin-proposal-dynamic-import" "^7.13.8" - "@babel/plugin-proposal-export-namespace-from" "^7.12.13" - "@babel/plugin-proposal-json-strings" "^7.13.8" - "@babel/plugin-proposal-logical-assignment-operators" "^7.13.8" - "@babel/plugin-proposal-nullish-coalescing-operator" "^7.13.8" - "@babel/plugin-proposal-numeric-separator" "^7.12.13" - "@babel/plugin-proposal-object-rest-spread" "^7.13.8" - "@babel/plugin-proposal-optional-catch-binding" "^7.13.8" - "@babel/plugin-proposal-optional-chaining" "^7.13.8" - "@babel/plugin-proposal-private-methods" "^7.13.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.12.13" - "@babel/plugin-syntax-async-generators" "^7.8.4" - "@babel/plugin-syntax-class-properties" "^7.12.13" - "@babel/plugin-syntax-dynamic-import" "^7.8.3" - "@babel/plugin-syntax-export-namespace-from" "^7.8.3" - "@babel/plugin-syntax-json-strings" "^7.8.3" - "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" - "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" - "@babel/plugin-syntax-numeric-separator" "^7.10.4" - "@babel/plugin-syntax-object-rest-spread" "^7.8.3" - "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" - "@babel/plugin-syntax-optional-chaining" "^7.8.3" - "@babel/plugin-syntax-top-level-await" "^7.12.13" - "@babel/plugin-transform-arrow-functions" "^7.13.0" - "@babel/plugin-transform-async-to-generator" "^7.13.0" - "@babel/plugin-transform-block-scoped-functions" "^7.12.13" - "@babel/plugin-transform-block-scoping" "^7.12.13" - "@babel/plugin-transform-classes" "^7.13.0" - "@babel/plugin-transform-computed-properties" "^7.13.0" - "@babel/plugin-transform-destructuring" "^7.13.0" - "@babel/plugin-transform-dotall-regex" "^7.12.13" - "@babel/plugin-transform-duplicate-keys" "^7.12.13" - "@babel/plugin-transform-exponentiation-operator" "^7.12.13" - "@babel/plugin-transform-for-of" "^7.13.0" - "@babel/plugin-transform-function-name" "^7.12.13" - "@babel/plugin-transform-literals" "^7.12.13" - "@babel/plugin-transform-member-expression-literals" "^7.12.13" - "@babel/plugin-transform-modules-amd" "^7.13.0" - "@babel/plugin-transform-modules-commonjs" "^7.13.8" - "@babel/plugin-transform-modules-systemjs" "^7.13.8" - "@babel/plugin-transform-modules-umd" "^7.13.0" - "@babel/plugin-transform-named-capturing-groups-regex" "^7.12.13" - "@babel/plugin-transform-new-target" "^7.12.13" - "@babel/plugin-transform-object-super" "^7.12.13" - "@babel/plugin-transform-parameters" "^7.13.0" - "@babel/plugin-transform-property-literals" "^7.12.13" - "@babel/plugin-transform-regenerator" "^7.12.13" - "@babel/plugin-transform-reserved-words" "^7.12.13" - "@babel/plugin-transform-shorthand-properties" "^7.12.13" - "@babel/plugin-transform-spread" "^7.13.0" - "@babel/plugin-transform-sticky-regex" "^7.12.13" - "@babel/plugin-transform-template-literals" "^7.13.0" - "@babel/plugin-transform-typeof-symbol" "^7.12.13" - "@babel/plugin-transform-unicode-escapes" "^7.12.13" - "@babel/plugin-transform-unicode-regex" "^7.12.13" - "@babel/preset-modules" "^0.1.4" - "@babel/types" "^7.13.0" - babel-plugin-polyfill-corejs2 "^0.1.4" - babel-plugin-polyfill-corejs3 "^0.1.3" - babel-plugin-polyfill-regenerator "^0.1.2" - core-js-compat "^3.9.0" - semver "^6.3.0" - -"@babel/preset-modules@^0.1.4": - version "0.1.4" - resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.4.tgz#362f2b68c662842970fdb5e254ffc8fc1c2e415e" - integrity sha512-J36NhwnfdzpmH41M1DrnkkgAqhZaqr/NBdPfQ677mLzlaXo+oDiv1deyCDtgAhz8p328otdob0Du7+xgHGZbKg== - dependencies: - "@babel/helper-plugin-utils" "^7.0.0" - "@babel/plugin-proposal-unicode-property-regex" "^7.4.4" - "@babel/plugin-transform-dotall-regex" "^7.4.4" - "@babel/types" "^7.4.4" - esutils "^2.0.2" - -"@babel/runtime@^7.4.4", "@babel/runtime@^7.8.4": - version "7.13.8" - resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.13.8.tgz#cc886a85c072df1de23670dc1aa59fc116c4017c" - integrity sha512-CwQljpw6qSayc0fRG1soxHAKs1CnQMOChm4mlQP6My0kf9upVGizj/KhlTTgyUnETmHpcUXjaluNAkteRFuafg== - dependencies: - regenerator-runtime "^0.13.4" - -"@babel/template@^7.12.13", "@babel/template@^7.4.4": - version "7.12.13" - resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.12.13.tgz#530265be8a2589dbb37523844c5bcb55947fb327" - integrity sha512-/7xxiGA57xMo/P2GVvdEumr8ONhFOhfgq2ihK3h1e6THqzTAkHbkXgB0xI9yeTfIUoH3+oAeHhqm/I43OTbbjA== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/parser" "^7.12.13" - "@babel/types" "^7.12.13" - -"@babel/traverse@^7.13.0", "@babel/traverse@^7.4.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.13.0.tgz#6d95752475f86ee7ded06536de309a65fc8966cc" - integrity sha512-xys5xi5JEhzC3RzEmSGrs/b3pJW/o87SypZ+G/PhaE7uqVQNv/jlmVIBXuoh5atqQ434LfXV+sf23Oxj0bchJQ== - dependencies: - "@babel/code-frame" "^7.12.13" - "@babel/generator" "^7.13.0" - "@babel/helper-function-name" "^7.12.13" - "@babel/helper-split-export-declaration" "^7.12.13" - "@babel/parser" "^7.13.0" - "@babel/types" "^7.13.0" - debug "^4.1.0" - globals "^11.1.0" - lodash "^4.17.19" - -"@babel/types@^7.12.1", "@babel/types@^7.12.13", "@babel/types@^7.12.17", "@babel/types@^7.13.0", "@babel/types@^7.4.4": - version "7.13.0" - resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.13.0.tgz#74424d2816f0171b4100f0ab34e9a374efdf7f80" - integrity sha512-hE+HE8rnG1Z6Wzo+MhaKE5lM5eMx71T4EHJgku2E3xIfaULhDcxiiRxUYgwX8qwP1BBSlag+TdGOt6JAidIZTA== - dependencies: - "@babel/helper-validator-identifier" "^7.12.11" - lodash "^4.17.19" - to-fast-properties "^2.0.0" - -"@develar/schema-utils@~2.6.5": - version "2.6.5" - resolved "https://registry.yarnpkg.com/@develar/schema-utils/-/schema-utils-2.6.5.tgz#3ece22c5838402419a6e0425f85742b961d9b6c6" - integrity sha512-0cp4PsWQ/9avqTVMCtZ+GirikIA36ikvjtHweU4/j8yLtgObI0+JUPhYFScgwlteveGB1rt3Cm8UhN04XayDig== - dependencies: - ajv "^6.12.0" - ajv-keywords "^3.4.1" - -"@electron/get@^1.0.1": - version "1.12.4" - resolved "https://registry.yarnpkg.com/@electron/get/-/get-1.12.4.tgz#a5971113fc1bf8fa12a8789dc20152a7359f06ab" - integrity sha512-6nr9DbJPUR9Xujw6zD3y+rS95TyItEVM0NVjt1EehY2vUWfIgPiIPVHxCvaTS0xr2B+DRxovYVKbuOWqC35kjg== - dependencies: - debug "^4.1.1" - env-paths "^2.2.0" - fs-extra "^8.1.0" - got "^9.6.0" - progress "^2.0.3" - semver "^6.2.0" - sumchecker "^3.0.1" - optionalDependencies: - global-agent "^2.0.2" - global-tunnel-ng "^2.7.1" - -"@iarna/toml@^2.2.0": - version "2.2.5" - resolved "https://registry.yarnpkg.com/@iarna/toml/-/toml-2.2.5.tgz#b32366c89b43c6f8cefbdefac778b9c828e3ba8c" - integrity sha512-trnsAYxU3xnS1gPHPyU961coFyLkh4gAD/0zQ5mymY4yOZ+CYvsPqUbOFSw0aDM4y0tV7tiFxL/1XfXPNC6IPg== - -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - -"@parcel/fs@^1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@parcel/fs/-/fs-1.11.0.tgz#fb8a2be038c454ad46a50dc0554c1805f13535cd" - integrity sha512-86RyEqULbbVoeo8OLcv+LQ1Vq2PKBAvWTU9fCgALxuCTbbs5Ppcvll4Vr+Ko1AnmMzja/k++SzNAwJfeQXVlpA== - dependencies: - "@parcel/utils" "^1.11.0" - mkdirp "^0.5.1" - rimraf "^2.6.2" - -"@parcel/logger@^1.11.1": - version "1.11.1" - resolved "https://registry.yarnpkg.com/@parcel/logger/-/logger-1.11.1.tgz#c55b0744bcbe84ebc291155627f0ec406a23e2e6" - integrity sha512-9NF3M6UVeP2udOBDILuoEHd8VrF4vQqoWHEafymO1pfSoOMfxrSJZw1MfyAAIUN/IFp9qjcpDCUbDZB+ioVevA== - dependencies: - "@parcel/workers" "^1.11.0" - chalk "^2.1.0" - grapheme-breaker "^0.3.2" - ora "^2.1.0" - strip-ansi "^4.0.0" - -"@parcel/utils@^1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@parcel/utils/-/utils-1.11.0.tgz#539e08fff8af3b26eca11302be80b522674b51ea" - integrity sha512-cA3p4jTlaMeOtAKR/6AadanOPvKeg8VwgnHhOyfi0yClD0TZS/hi9xu12w4EzA/8NtHu0g6o4RDfcNjqN8l1AQ== - -"@parcel/watcher@^1.12.1": - version "1.12.1" - resolved "https://registry.yarnpkg.com/@parcel/watcher/-/watcher-1.12.1.tgz#b98b3df309fcab93451b5583fc38e40826696dad" - integrity sha512-od+uCtCxC/KoNQAIE1vWx1YTyKYY+7CTrxBJPRh3cDWw/C0tCtlBMVlrbplscGoEpt6B27KhJDCv82PBxOERNA== - dependencies: - "@parcel/utils" "^1.11.0" - chokidar "^2.1.5" - -"@parcel/workers@^1.11.0": - version "1.11.0" - resolved "https://registry.yarnpkg.com/@parcel/workers/-/workers-1.11.0.tgz#7b8dcf992806f4ad2b6cecf629839c41c2336c59" - integrity sha512-USSjRAAQYsZFlv43FUPdD+jEGML5/8oLF0rUzPQTtK4q9kvaXr49F5ZplyLz5lox78cLZ0TxN2bIDQ1xhOkulQ== - dependencies: - "@parcel/utils" "^1.11.0" - physical-cpu-count "^2.0.0" - -"@sindresorhus/is@^0.14.0": - version "0.14.0" - resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-0.14.0.tgz#9fb3a3cf3132328151f353de4632e01e52102bea" - integrity sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ== - -"@szmarczak/http-timer@^1.1.2": - version "1.1.2" - resolved "https://registry.yarnpkg.com/@szmarczak/http-timer/-/http-timer-1.1.2.tgz#b1665e2c461a2cd92f4c1bbf50d5454de0d4b421" - integrity sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA== - dependencies: - defer-to-connect "^1.0.1" - -"@types/debug@^4.1.5": - version "4.1.5" - resolved "https://registry.yarnpkg.com/@types/debug/-/debug-4.1.5.tgz#b14efa8852b7768d898906613c23f688713e02cd" - integrity sha512-Q1y515GcOdTHgagaVFhHnIFQ38ygs/kmxdNpvpou+raI9UO3YZcHDngBSYKQklcKlvA7iuQlmIKbzvmxcOE9CQ== - -"@types/fs-extra@^9.0.1": - version "9.0.7" - resolved "https://registry.yarnpkg.com/@types/fs-extra/-/fs-extra-9.0.7.tgz#a9ef2ffdab043def080c5bec94c03402f793577f" - integrity sha512-YGq2A6Yc3bldrLUlm17VNWOnUbnEzJ9CMgOeLFtQF3HOCN5lQBO8VyjG00a5acA5NNSM30kHVGp1trZgnVgi1Q== - dependencies: - "@types/node" "*" - -"@types/node@*": - version "14.14.31" - resolved "https://registry.yarnpkg.com/@types/node/-/node-14.14.31.tgz#72286bd33d137aa0d152d47ec7c1762563d34055" - integrity sha512-vFHy/ezP5qI0rFgJ7aQnjDXwAMrG0KqqIH7tQG5PPv3BWBayOPIQNBjVc/P6hhdZfMx51REc6tfDNXHUio893g== - -"@types/node@^12.0.12": - version "12.20.4" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.4.tgz#73687043dd00fcb6962c60fbf499553a24d6bdf2" - integrity sha512-xRCgeE0Q4pT5UZ189TJ3SpYuX/QGl6QIAOAIeDSbAVAd2gX1NxSZup4jNVK7cxIeP8KDSbJgcckun495isP1jQ== - -"@types/q@^1.5.1": - version "1.5.4" - resolved "https://registry.yarnpkg.com/@types/q/-/q-1.5.4.tgz#15925414e0ad2cd765bfef58842f7e26a7accb24" - integrity sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug== - -"@types/yargs-parser@*": - version "20.2.0" - resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-20.2.0.tgz#dd3e6699ba3237f0348cd085e4698780204842f9" - integrity sha512-37RSHht+gzzgYeobbG+KWryeAW8J33Nhr69cjTqSYymXVZEN9NbRYWoYlRtDhHKPVT1FyNKwaTPC1NynKZpzRA== - -"@types/yargs@^15.0.5": - version "15.0.13" - resolved "https://registry.yarnpkg.com/@types/yargs/-/yargs-15.0.13.tgz#34f7fec8b389d7f3c1fd08026a5763e072d3c6dc" - integrity sha512-kQ5JNTrbDv3Rp5X2n/iUu37IJBDU2gsZ5R/g1/KHOOEc5IKfUFjXT6DENPGduh08I/pamwtEq4oul7gUqKTQDQ== - dependencies: - "@types/yargs-parser" "*" - -abab@^2.0.0: - version "2.0.5" - resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.5.tgz#c0b678fb32d60fc1219c784d6a826fe385aeb79a" - integrity sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q== - -acorn-globals@^4.3.0: - version "4.3.4" - resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-4.3.4.tgz#9fa1926addc11c97308c4e66d7add0d40c3272e7" - integrity sha512-clfQEh21R+D0leSbUdWf3OcfqyaCSAQ8Ryq00bofSekfr9W8u1jyYZo6ir0xu9Gtcf7BjcHJpnbZH7JOCpP60A== - dependencies: - acorn "^6.0.1" - acorn-walk "^6.0.1" - -acorn-walk@^6.0.1: - version "6.2.0" - resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-6.2.0.tgz#123cb8f3b84c2171f1f7fb252615b1c78a6b1a8c" - integrity sha512-7evsyfH1cLOCdAzZAd43Cic04yKydNx0cF+7tiA19p1XnLLPU4dpCQOqpjqwokFe//vS0QqfqqjCS2JkiIs0cA== - -acorn@^6.0.1, acorn@^6.0.4: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - -acorn@^7.1.1: - version "7.4.1" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa" - integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A== - -ajv-keywords@^3.4.1: - version "3.5.2" - resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" - integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== - -ajv@^6.12.0, ajv@^6.12.3: - version "6.12.6" - resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" - integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== - dependencies: - fast-deep-equal "^3.1.1" - fast-json-stable-stringify "^2.0.0" - json-schema-traverse "^0.4.1" - uri-js "^4.2.2" - -alphanum-sort@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" - integrity sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM= - -ansi-align@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-align/-/ansi-align-3.0.0.tgz#b536b371cf687caaef236c18d3e21fe3797467cb" - integrity sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw== - dependencies: - string-width "^3.0.0" - -ansi-regex@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" - integrity sha1-w7M6te42DYbg5ijwRorn7yfWVN8= - -ansi-regex@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" - integrity sha1-7QMXwyIGT3lGbAKWa922Bas32Zg= - -ansi-regex@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.0.tgz#8b9f8f08cf1acb843756a839ca8c7e3168c51997" - integrity sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg== - -ansi-regex@^5.0.0: - version "5.0.0" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.0.tgz#388539f55179bf39339c81af30a654d69f87cb75" - integrity sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg== - -ansi-styles@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" - integrity sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4= - -ansi-styles@^3.2.1: - version "3.2.1" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" - integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== - dependencies: - color-convert "^1.9.0" - -ansi-styles@^4.0.0, ansi-styles@^4.1.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" - integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== - dependencies: - color-convert "^2.0.1" - -ansi-to-html@^0.6.4: - version "0.6.14" - resolved "https://registry.yarnpkg.com/ansi-to-html/-/ansi-to-html-0.6.14.tgz#65fe6d08bba5dd9db33f44a20aec331e0010dad8" - integrity sha512-7ZslfB1+EnFSDO5Ju+ue5Y6It19DRnZXWv8jrGHgIlPna5Mh4jz7BV5jCbQneXNFurQcKoolaaAjHtgSBfOIuA== - dependencies: - entities "^1.1.2" - -anymatch@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" - integrity sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw== - dependencies: - micromatch "^3.1.4" - normalize-path "^2.1.1" - -app-builder-bin@3.5.10: - version "3.5.10" - resolved "https://registry.yarnpkg.com/app-builder-bin/-/app-builder-bin-3.5.10.tgz#4a7f9999fccc0c435b6284ae1366bc76a17c4a7d" - integrity sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ== - -app-builder-lib@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/app-builder-lib/-/app-builder-lib-22.9.1.tgz#ccb8f1a02b628514a5dfab9401fa2a976689415c" - integrity sha512-KfXim/fiNwFW2SKffsjEMdAU7RbbEXn62x5YyXle1b4j9X/wEHW9iwox8De6y0hJdR+/kCC/49lI+VgNwLhV7A== - dependencies: - "7zip-bin" "~5.0.3" - "@develar/schema-utils" "~2.6.5" - async-exit-hook "^2.0.1" - bluebird-lst "^1.0.9" - builder-util "22.9.1" - builder-util-runtime "8.7.2" - chromium-pickle-js "^0.2.0" - debug "^4.3.0" - ejs "^3.1.5" - electron-publish "22.9.1" - fs-extra "^9.0.1" - hosted-git-info "^3.0.5" - is-ci "^2.0.0" - isbinaryfile "^4.0.6" - js-yaml "^3.14.0" - lazy-val "^1.0.4" - minimatch "^3.0.4" - normalize-package-data "^2.5.0" - read-config-file "6.0.0" - sanitize-filename "^1.6.3" - semver "^7.3.2" - temp-file "^3.3.7" - -argparse@^1.0.7: - version "1.0.10" - resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" - integrity sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg== - dependencies: - sprintf-js "~1.0.2" - -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA= - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ= - -array-equal@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/array-equal/-/array-equal-1.0.0.tgz#8c2a5ef2472fd9ea742b04c77a75093ba2757c93" - integrity sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM= - -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg= - -asn1.js@^5.2.0: - version "5.4.1" - resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-5.4.1.tgz#11a980b84ebb91781ce35b0fdc2ee294e3783f07" - integrity sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA== - dependencies: - bn.js "^4.0.0" - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - safer-buffer "^2.1.0" - -asn1@~0.2.3: - version "0.2.4" - resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.4.tgz#8d2475dfab553bb33e77b54e59e880bb8ce23136" - integrity sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg== - dependencies: - safer-buffer "~2.1.0" - -assert-plus@1.0.0, assert-plus@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - integrity sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU= - -assert@^1.1.1: - version "1.5.0" - resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" - integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA== - dependencies: - object-assign "^4.1.1" - util "0.10.3" - -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c= - -async-each@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.3.tgz#b727dbf87d7651602f06f4d4ac387f47d91b0cbf" - integrity sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ== - -async-exit-hook@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3" - integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw== - -async-limiter@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" - integrity sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ== - -async@0.9.x: - version "0.9.2" - resolved "https://registry.yarnpkg.com/async/-/async-0.9.2.tgz#aea74d5e61c1f899613bf64bda66d4c78f2fd17d" - integrity sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0= - -async@^2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/async/-/async-2.6.3.tgz#d72625e2344a3656e3a3ad4fa749fa83299d82ff" - integrity sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg== - dependencies: - lodash "^4.17.14" - -asynckit@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" - integrity sha1-x57Zf380y48robyXkLzDZkdLS3k= - -at-least-node@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" - integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== - -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - -aws-sign2@~0.7.0: - version "0.7.0" - resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" - integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= - -aws4@^1.8.0: - version "1.11.0" - resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.11.0.tgz#d61f46d83b2519250e2784daf5b09479a8b41c59" - integrity sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA== - -babel-plugin-dynamic-import-node@^2.3.3: - version "2.3.3" - resolved "https://registry.yarnpkg.com/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz#84fda19c976ec5c6defef57f9427b3def66e17a3" - integrity sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ== - dependencies: - object.assign "^4.1.0" - -babel-plugin-polyfill-corejs2@^0.1.4: - version "0.1.8" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.1.8.tgz#54ef37b1c4b2311e515029e8f1f07bbd4d7a5321" - integrity sha512-kB5/xNR9GYDuRmVlL9EGfdKBSUVI/9xAU7PCahA/1hbC2Jbmks9dlBBYjHF9IHMNY2jV/G2lIG7z0tJIW27Rog== - dependencies: - "@babel/compat-data" "^7.13.0" - "@babel/helper-define-polyfill-provider" "^0.1.4" - semver "^6.1.1" - -babel-plugin-polyfill-corejs3@^0.1.3: - version "0.1.6" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.1.6.tgz#ed1b02fba4885e0892e06094e27865f499758d27" - integrity sha512-IkYhCxPrjrUWigEmkMDXYzM5iblzKCdCD8cZrSAkQOyhhJm26DcG+Mxbx13QT//Olkpkg/AlRdT2L+Ww4Ciphw== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.1.4" - core-js-compat "^3.8.1" - -babel-plugin-polyfill-regenerator@^0.1.2: - version "0.1.5" - resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.1.5.tgz#f42a58fd86a1c97fbe3a2752d80a4a3e017203e1" - integrity sha512-EyhBA6uN94W97lR7ecQVTvH9F5tIIdEw3ZqHuU4zekMlW82k5cXNXniiB7PRxQm06BqAjVr4sDT1mOy4RcphIA== - dependencies: - "@babel/helper-define-polyfill-provider" "^0.1.4" - -babel-runtime@^6.11.6, babel-runtime@^6.26.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" - integrity sha1-llxwWGaOgrVde/4E/yM3vItWR/4= - dependencies: - core-js "^2.4.0" - regenerator-runtime "^0.11.0" - -babel-types@^6.15.0: - version "6.26.0" - resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" - integrity sha1-o7Bz+Uq0nrb6Vc1lInozQ4BjJJc= - dependencies: - babel-runtime "^6.26.0" - esutils "^2.0.2" - lodash "^4.17.4" - to-fast-properties "^1.0.3" - -babylon-walk@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/babylon-walk/-/babylon-walk-1.0.2.tgz#3b15a5ddbb482a78b4ce9c01c8ba181702d9d6ce" - integrity sha1-OxWl3btIKni0zpwByLoYFwLZ1s4= - dependencies: - babel-runtime "^6.11.6" - babel-types "^6.15.0" - lodash.clone "^4.5.0" - -balanced-match@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" - integrity sha1-ibTRmasr7kneFk6gK4nORi1xt2c= - -base64-js@^1.0.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" - integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== - -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - -basic-auth@^1.0.3: - version "1.1.0" - resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-1.1.0.tgz#45221ee429f7ee1e5035be3f51533f1cdfd29884" - integrity sha1-RSIe5Cn37h5QNb4/UVM/HN/SmIQ= - -bcrypt-pbkdf@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz#a4301d389b6a43f9b67ff3ca11a3f6637e360e9e" - integrity sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4= - dependencies: - tweetnacl "^0.14.3" - -binary-extensions@^1.0.0: - version "1.13.1" - resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.13.1.tgz#598afe54755b2868a5330d2aff9d4ebb53209b65" - integrity sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw== - -bindings@^1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" - integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== - dependencies: - file-uri-to-path "1.0.0" - -bluebird-lst@^1.0.9: - version "1.0.9" - resolved "https://registry.yarnpkg.com/bluebird-lst/-/bluebird-lst-1.0.9.tgz#a64a0e4365658b9ab5fe875eb9dfb694189bb41c" - integrity sha512-7B1Rtx82hjnSD4PGLAjVWeYH3tHAcVUmChh85a3lltKQm6FresXh9ErQo6oAv6CqxttczC3/kEg8SY5NluPuUw== - dependencies: - bluebird "^3.5.5" - -bluebird@^3.5.5: - version "3.7.2" - resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f" - integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg== - -bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.11.9: - version "4.12.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" - integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== - -bn.js@^5.0.0, bn.js@^5.1.1: - version "5.2.0" - resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.0.tgz#358860674396c6997771a9d051fcc1b57d4ae002" - integrity sha512-D7iWRBvnZE8ecXiLj/9wbxH7Tk79fAh8IHaTNq1RWRixsS02W+5qS+iE9yq6RYl0asXx5tw0bLhmT5pIfbSquw== - -boolbase@^1.0.0, boolbase@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" - integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24= - -boolean@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/boolean/-/boolean-3.0.2.tgz#df1baa18b6a2b0e70840475e1d93ec8fe75b2570" - integrity sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g== - -boxen@^4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/boxen/-/boxen-4.2.0.tgz#e411b62357d6d6d36587c8ac3d5d974daa070e64" - integrity sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ== - dependencies: - ansi-align "^3.0.0" - camelcase "^5.3.1" - chalk "^3.0.0" - cli-boxes "^2.2.0" - string-width "^4.1.0" - term-size "^2.1.0" - type-fest "^0.8.1" - widest-line "^3.1.0" - -brace-expansion@^1.1.7: - version "1.1.11" - resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" - integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== - dependencies: - balanced-match "^1.0.0" - concat-map "0.0.1" - -braces@^2.3.1, braces@^2.3.2: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - -brfs@^1.2.0: - version "1.6.1" - resolved "https://registry.yarnpkg.com/brfs/-/brfs-1.6.1.tgz#b78ce2336d818e25eea04a0947cba6d4fb8849c3" - integrity sha512-OfZpABRQQf+Xsmju8XE9bDjs+uU4vLREGolP7bDgcpsI17QREyZ4Bl+2KLxxx1kCgA0fAIhKQBaBYh+PEcCqYQ== - dependencies: - quote-stream "^1.0.1" - resolve "^1.1.5" - static-module "^2.2.0" - through2 "^2.0.0" - -brorand@^1.0.1, brorand@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" - integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8= - -browser-process-hrtime@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626" - integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow== - -browserify-aes@^1.0.0, browserify-aes@^1.0.4: - version "1.2.0" - resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" - integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== - dependencies: - buffer-xor "^1.0.3" - cipher-base "^1.0.0" - create-hash "^1.1.0" - evp_bytestokey "^1.0.3" - inherits "^2.0.1" - safe-buffer "^5.0.1" - -browserify-cipher@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" - integrity sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w== - dependencies: - browserify-aes "^1.0.4" - browserify-des "^1.0.0" - evp_bytestokey "^1.0.0" - -browserify-des@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.2.tgz#3af4f1f59839403572f1c66204375f7a7f703e9c" - integrity sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A== - dependencies: - cipher-base "^1.0.1" - des.js "^1.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -browserify-rsa@^4.0.0, browserify-rsa@^4.0.1: - version "4.1.0" - resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.1.0.tgz#b2fd06b5b75ae297f7ce2dc651f918f5be158c8d" - integrity sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog== - dependencies: - bn.js "^5.0.0" - randombytes "^2.0.1" - -browserify-sign@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.2.1.tgz#eaf4add46dd54be3bb3b36c0cf15abbeba7956c3" - integrity sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg== - dependencies: - bn.js "^5.1.1" - browserify-rsa "^4.0.1" - create-hash "^1.2.0" - create-hmac "^1.1.7" - elliptic "^6.5.3" - inherits "^2.0.4" - parse-asn1 "^5.1.5" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -browserify-zlib@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" - integrity sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA== - dependencies: - pako "~1.0.5" - -browserslist@^4.0.0, browserslist@^4.1.0, browserslist@^4.14.5, browserslist@^4.16.3: - version "4.16.3" - resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.16.3.tgz#340aa46940d7db878748567c5dea24a48ddf3717" - integrity sha512-vIyhWmIkULaq04Gt93txdh+j02yX/JzlyhLYbV3YQCn/zvES3JnY7TifHHvvr1w5hTDluNKMkV05cs4vy8Q7sw== - dependencies: - caniuse-lite "^1.0.30001181" - colorette "^1.2.1" - electron-to-chromium "^1.3.649" - escalade "^3.1.1" - node-releases "^1.1.70" - -buffer-crc32@~0.2.3: - version "0.2.13" - resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242" - integrity sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI= - -buffer-equal@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/buffer-equal/-/buffer-equal-0.0.1.tgz#91bc74b11ea405bc916bc6aa908faafa5b4aac4b" - integrity sha1-kbx0sR6kBbyRa8aqkI+q+ltKrEs= - -buffer-from@^1.0.0: - version "1.1.1" - resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef" - integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A== - -buffer-xor@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" - integrity sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk= - -buffer@^4.3.0: - version "4.9.2" - resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.2.tgz#230ead344002988644841ab0244af8c44bbe3ef8" - integrity sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg== - dependencies: - base64-js "^1.0.2" - ieee754 "^1.1.4" - isarray "^1.0.0" - -builder-util-runtime@8.7.2: - version "8.7.2" - resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz#d93afc71428a12789b437e13850e1fa7da956d72" - integrity sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA== - dependencies: - debug "^4.1.1" - sax "^1.2.4" - -builder-util@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/builder-util/-/builder-util-22.9.1.tgz#b7087a5cde477f90d718ca5d7fafb6ae261b16af" - integrity sha512-5hN/XOaYu4ZQUS6F+5CXE6jTo+NAnVqAxDuKGSaHWb9bejfv/rluChTLoY3/nJh7RFjkoyVjvFJv7zQDB1QmHw== - dependencies: - "7zip-bin" "~5.0.3" - "@types/debug" "^4.1.5" - "@types/fs-extra" "^9.0.1" - app-builder-bin "3.5.10" - bluebird-lst "^1.0.9" - builder-util-runtime "8.7.2" - chalk "^4.1.0" - debug "^4.3.0" - fs-extra "^9.0.1" - is-ci "^2.0.0" - js-yaml "^3.14.0" - source-map-support "^0.5.19" - stat-mode "^1.0.0" - temp-file "^3.3.7" - -builtin-status-codes@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" - integrity sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug= - -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - -cacheable-request@^6.0.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/cacheable-request/-/cacheable-request-6.1.0.tgz#20ffb8bd162ba4be11e9567d823db651052ca912" - integrity sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg== - dependencies: - clone-response "^1.0.2" - get-stream "^5.1.0" - http-cache-semantics "^4.0.0" - keyv "^3.0.0" - lowercase-keys "^2.0.0" - normalize-url "^4.1.0" - responselike "^1.0.2" - -call-bind@^1.0.0, call-bind@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-bind/-/call-bind-1.0.2.tgz#b1d4e89e688119c3c9a903ad30abb2f6a919be3c" - integrity sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA== - dependencies: - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - -call-me-maybe@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.1.tgz#26d208ea89e37b5cbde60250a15f031c16a4d66b" - integrity sha1-JtII6onje1y95gJQoV8DHBak1ms= - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ= - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ= - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA= - -camelcase@^5.3.1: - version "5.3.1" - resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" - integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== - -caniuse-api@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" - integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== - dependencies: - browserslist "^4.0.0" - caniuse-lite "^1.0.0" - lodash.memoize "^4.1.2" - lodash.uniq "^4.5.0" - -caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001181: - version "1.0.30001192" - resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001192.tgz#b848ebc0ab230cf313d194a4775a30155d50ae40" - integrity sha512-63OrUnwJj5T1rUmoyqYTdRWBqFFxZFlyZnRRjDR8NSUQFB6A+j/uBORU/SyJ5WzDLg4SPiZH40hQCBNdZ/jmAw== - -caseless@~0.12.0: - version "0.12.0" - resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" - integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= - -chalk@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" - integrity sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg= - dependencies: - ansi-styles "^2.2.1" - escape-string-regexp "^1.0.2" - has-ansi "^2.0.0" - strip-ansi "^3.0.0" - supports-color "^2.0.0" - -chalk@^2.0.0, chalk@^2.0.1, chalk@^2.1.0, chalk@^2.3.1, chalk@^2.4.1, chalk@^2.4.2: - version "2.4.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" - integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== - dependencies: - ansi-styles "^3.2.1" - escape-string-regexp "^1.0.5" - supports-color "^5.3.0" - -chalk@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-3.0.0.tgz#3f73c2bf526591f574cc492c51e2456349f844e4" - integrity sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chalk@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a" - integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - -chokidar@^2.1.5: - version "2.1.8" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.1.8.tgz#804b3a7b6a99358c3c5c61e71d8728f041cff917" - integrity sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg== - dependencies: - anymatch "^2.0.0" - async-each "^1.0.1" - braces "^2.3.2" - glob-parent "^3.1.0" - inherits "^2.0.3" - is-binary-path "^1.0.0" - is-glob "^4.0.0" - normalize-path "^3.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.2.1" - upath "^1.1.1" - optionalDependencies: - fsevents "^1.2.7" - -chromium-pickle-js@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/chromium-pickle-js/-/chromium-pickle-js-0.2.0.tgz#04a106672c18b085ab774d983dfa3ea138f22205" - integrity sha1-BKEGZywYsIWrd02YPfo+oTjyIgU= - -ci-info@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ci-info/-/ci-info-2.0.0.tgz#67a9e964be31a51e15e5010d58e6f12834002f46" - integrity sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ== - -cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" - integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - -cli-boxes@^2.2.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-boxes/-/cli-boxes-2.2.1.tgz#ddd5035d25094fce220e9cab40a45840a440318f" - integrity sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw== - -cli-cursor@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/cli-cursor/-/cli-cursor-2.1.0.tgz#b35dac376479facc3e94747d41d0d0f5238ffcb5" - integrity sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU= - dependencies: - restore-cursor "^2.0.0" - -cli-spinners@^1.1.0: - version "1.3.1" - resolved "https://registry.yarnpkg.com/cli-spinners/-/cli-spinners-1.3.1.tgz#002c1990912d0d59580c93bd36c056de99e4259a" - integrity sha512-1QL4544moEsDVH9T/l6Cemov/37iv1RtoKf7NJ04A60+4MREXNfx/QvavbH6QoGdsD4N4Mwy49cmaINR/o2mdg== - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - -clone-response@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/clone-response/-/clone-response-1.0.2.tgz#d1dc973920314df67fbeb94223b4ee350239e96b" - integrity sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws= - dependencies: - mimic-response "^1.0.0" - -clone@^1.0.2: - version "1.0.4" - resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" - integrity sha1-2jCcwmPfFZlMaIypAheco8fNfH4= - -clone@^2.1.1: - version "2.1.2" - resolved "https://registry.yarnpkg.com/clone/-/clone-2.1.2.tgz#1b7f4b9f591f1e8f83670401600345a02887435f" - integrity sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18= - -coa@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/coa/-/coa-2.0.2.tgz#43f6c21151b4ef2bf57187db0d73de229e3e7ec3" - integrity sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA== - dependencies: - "@types/q" "^1.5.1" - chalk "^2.4.1" - q "^1.1.2" - -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA= - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - -color-convert@^1.9.0, color-convert@^1.9.1: - version "1.9.3" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" - integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== - dependencies: - color-name "1.1.3" - -color-convert@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" - integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== - dependencies: - color-name "~1.1.4" - -color-name@1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" - integrity sha1-p9BVi9icQveV3UIyj3QIMcpTvCU= - -color-name@^1.0.0, color-name@~1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" - integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== - -color-string@^1.5.4: - version "1.5.4" - resolved "https://registry.yarnpkg.com/color-string/-/color-string-1.5.4.tgz#dd51cd25cfee953d138fe4002372cc3d0e504cb6" - integrity sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw== - dependencies: - color-name "^1.0.0" - simple-swizzle "^0.2.2" - -color@^3.0.0: - version "3.1.3" - resolved "https://registry.yarnpkg.com/color/-/color-3.1.3.tgz#ca67fb4e7b97d611dcde39eceed422067d91596e" - integrity sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ== - dependencies: - color-convert "^1.9.1" - color-string "^1.5.4" - -colorette@^1.2.1: - version "1.2.2" - resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" - integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== - -colors@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" - integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== - -combined-stream@^1.0.6, combined-stream@~1.0.6: - version "1.0.8" - resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" - integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== - dependencies: - delayed-stream "~1.0.0" - -command-exists@^1.2.6: - version "1.2.9" - resolved "https://registry.yarnpkg.com/command-exists/-/command-exists-1.2.9.tgz#c50725af3808c8ab0260fd60b01fbfa25b954f69" - integrity sha512-LTQ/SGc+s0Xc0Fu5WaKnR0YiygZkm9eKFvyS+fRsU7/ZWFF8ykFM6Pc9aCVf1+xasOOZpO3BAVgVrKvsqKHV7w== - -commander@^2.11.0, commander@^2.19.0, commander@^2.20.0: - version "2.20.3" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" - integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== - -commander@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/commander/-/commander-5.1.0.tgz#46abbd1652f8e059bddaef99bbdcb2ad9cf179ae" - integrity sha512-P0CysNDQ7rtVw4QIQtm+MRxV66vKFSvlsQvGYXZWR3qFU0jlMKHZZZgw8e+8DSah4UDKMqnknRDQz+xuQXQ/Zg== - -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - -concat-map@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" - integrity sha1-2Klr13/Wjfd5OnMDajug1UBdR3s= - -concat-stream@^1.6.2, concat-stream@~1.6.0: - version "1.6.2" - resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" - integrity sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw== - dependencies: - buffer-from "^1.0.0" - inherits "^2.0.3" - readable-stream "^2.2.2" - typedarray "^0.0.6" - -config-chain@^1.1.11: - version "1.1.12" - resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa" - integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA== - dependencies: - ini "^1.3.4" - proto-list "~1.2.1" - -configstore@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/configstore/-/configstore-5.0.1.tgz#d365021b5df4b98cdd187d6a3b0e3f6a7cc5ed96" - integrity sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA== - dependencies: - dot-prop "^5.2.0" - graceful-fs "^4.1.2" - make-dir "^3.0.0" - unique-string "^2.0.0" - write-file-atomic "^3.0.0" - xdg-basedir "^4.0.0" - -console-browserify@^1.1.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.2.0.tgz#67063cef57ceb6cf4993a2ab3a55840ae8c49336" - integrity sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA== - -constants-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" - integrity sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U= - -convert-source-map@^1.5.1, convert-source-map@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.7.0.tgz#17a2cb882d7f77d3490585e2ce6c524424a3a442" - integrity sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA== - dependencies: - safe-buffer "~5.1.1" - -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40= - -core-js-compat@^3.8.1, core-js-compat@^3.9.0: - version "3.9.0" - resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.9.0.tgz#29da39385f16b71e1915565aa0385c4e0963ad56" - integrity sha512-YK6fwFjCOKWwGnjFUR3c544YsnA/7DoLL0ysncuOJ4pwbriAtOpvM2bygdlcXbvQCQZ7bBU9CL4t7tGl7ETRpQ== - dependencies: - browserslist "^4.16.3" - semver "7.0.0" - -core-js@^2.4.0, core-js@^2.6.5: - version "2.6.12" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.6.12.tgz#d9333dfa7b065e347cc5682219d6f690859cc2ec" - integrity sha512-Kb2wC0fvsWfQrgk8HU5lW6U/Lcs8+9aaYcy4ZFc6DDlo4nZ7n70dEgE5rtR0oG6ufKDUnrwfWL1mXR5ljDatrQ== - -core-js@^3.6.5: - version "3.9.0" - resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.9.0.tgz#790b1bb11553a2272b36e2625c7179db345492f8" - integrity sha512-PyFBJaLq93FlyYdsndE5VaueA9K5cNB7CGzeCj191YYLhkQM0gdZR2SKihM70oF0wdqKSKClv/tEBOpoRmdOVQ== - -core-util-is@1.0.2, core-util-is@~1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" - integrity sha1-tf1UIgqivFq1eqtxQMlAdUUDwac= - -corser@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/corser/-/corser-2.0.1.tgz#8eda252ecaab5840dcd975ceb90d9370c819ff87" - integrity sha1-jtolLsqrWEDc2XXOuQ2TcMgZ/4c= - -cosmiconfig@^5.0.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - -create-ecdh@^4.0.0: - version "4.0.4" - resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.4.tgz#d6e7f4bffa66736085a0762fd3a632684dabcc4e" - integrity sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A== - dependencies: - bn.js "^4.1.0" - elliptic "^6.5.3" - -create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" - integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== - dependencies: - cipher-base "^1.0.1" - inherits "^2.0.1" - md5.js "^1.3.4" - ripemd160 "^2.0.1" - sha.js "^2.4.0" - -create-hmac@^1.1.0, create-hmac@^1.1.4, create-hmac@^1.1.7: - version "1.1.7" - resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" - integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== - dependencies: - cipher-base "^1.0.3" - create-hash "^1.1.0" - inherits "^2.0.1" - ripemd160 "^2.0.0" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -cross-spawn@^6.0.4: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - -crypto-browserify@^3.11.0: - version "3.12.0" - resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" - integrity sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg== - dependencies: - browserify-cipher "^1.0.0" - browserify-sign "^4.0.0" - create-ecdh "^4.0.0" - create-hash "^1.1.0" - create-hmac "^1.1.0" - diffie-hellman "^5.0.0" - inherits "^2.0.1" - pbkdf2 "^3.0.3" - public-encrypt "^4.0.0" - randombytes "^2.0.0" - randomfill "^1.0.3" - -crypto-random-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5" - integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA== - -css-color-names@0.0.4, css-color-names@^0.0.4: - version "0.0.4" - resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" - integrity sha1-gIrcLnnPhHOAabZGyyDsJ762KeA= - -css-declaration-sorter@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz#c198940f63a76d7e36c1e71018b001721054cb22" - integrity sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA== - dependencies: - postcss "^7.0.1" - timsort "^0.3.0" - -css-modules-loader-core@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/css-modules-loader-core/-/css-modules-loader-core-1.1.0.tgz#5908668294a1becd261ae0a4ce21b0b551f21d16" - integrity sha1-WQhmgpShvs0mGuCkziGwtVHyHRY= - dependencies: - icss-replace-symbols "1.1.0" - postcss "6.0.1" - postcss-modules-extract-imports "1.1.0" - postcss-modules-local-by-default "1.2.0" - postcss-modules-scope "1.1.0" - postcss-modules-values "1.3.0" - -css-select-base-adapter@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz#3b2ff4972cc362ab88561507a95408a1432135d7" - integrity sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w== - -css-select@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/css-select/-/css-select-2.1.0.tgz#6a34653356635934a81baca68d0255432105dbef" - integrity sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ== - dependencies: - boolbase "^1.0.0" - css-what "^3.2.1" - domutils "^1.7.0" - nth-check "^1.0.2" - -css-selector-tokenizer@^0.7.0: - version "0.7.3" - resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz#735f26186e67c749aaf275783405cf0661fae8f1" - integrity sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg== - dependencies: - cssesc "^3.0.0" - fastparse "^1.1.2" - -css-tree@1.0.0-alpha.37: - version "1.0.0-alpha.37" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.0.0-alpha.37.tgz#98bebd62c4c1d9f960ec340cf9f7522e30709a22" - integrity sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg== - dependencies: - mdn-data "2.0.4" - source-map "^0.6.1" - -css-tree@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.2.tgz#9ae393b5dafd7dae8a622475caec78d3d8fbd7b5" - integrity sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ== - dependencies: - mdn-data "2.0.14" - source-map "^0.6.1" - -css-what@^3.2.1: - version "3.4.2" - resolved "https://registry.yarnpkg.com/css-what/-/css-what-3.4.2.tgz#ea7026fcb01777edbde52124e21f327e7ae950e4" - integrity sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ== - -cssesc@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" - integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== - -cssnano-preset-default@^4.0.7: - version "4.0.7" - resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz#51ec662ccfca0f88b396dcd9679cdb931be17f76" - integrity sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA== - dependencies: - css-declaration-sorter "^4.0.1" - cssnano-util-raw-cache "^4.0.1" - postcss "^7.0.0" - postcss-calc "^7.0.1" - postcss-colormin "^4.0.3" - postcss-convert-values "^4.0.1" - postcss-discard-comments "^4.0.2" - postcss-discard-duplicates "^4.0.2" - postcss-discard-empty "^4.0.1" - postcss-discard-overridden "^4.0.1" - postcss-merge-longhand "^4.0.11" - postcss-merge-rules "^4.0.3" - postcss-minify-font-values "^4.0.2" - postcss-minify-gradients "^4.0.2" - postcss-minify-params "^4.0.2" - postcss-minify-selectors "^4.0.2" - postcss-normalize-charset "^4.0.1" - postcss-normalize-display-values "^4.0.2" - postcss-normalize-positions "^4.0.2" - postcss-normalize-repeat-style "^4.0.2" - postcss-normalize-string "^4.0.2" - postcss-normalize-timing-functions "^4.0.2" - postcss-normalize-unicode "^4.0.1" - postcss-normalize-url "^4.0.1" - postcss-normalize-whitespace "^4.0.2" - postcss-ordered-values "^4.1.2" - postcss-reduce-initial "^4.0.3" - postcss-reduce-transforms "^4.0.2" - postcss-svgo "^4.0.2" - postcss-unique-selectors "^4.0.1" - -cssnano-util-get-arguments@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz#ed3a08299f21d75741b20f3b81f194ed49cc150f" - integrity sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8= - -cssnano-util-get-match@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz#c0e4ca07f5386bb17ec5e52250b4f5961365156d" - integrity sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0= - -cssnano-util-raw-cache@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz#b26d5fd5f72a11dfe7a7846fb4c67260f96bf282" - integrity sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA== - dependencies: - postcss "^7.0.0" - -cssnano-util-same-parent@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz#574082fb2859d2db433855835d9a8456ea18bbf3" - integrity sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q== - -cssnano@^4.0.0, cssnano@^4.1.10: - version "4.1.10" - resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-4.1.10.tgz#0ac41f0b13d13d465487e111b778d42da631b8b2" - integrity sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ== - dependencies: - cosmiconfig "^5.0.0" - cssnano-preset-default "^4.0.7" - is-resolvable "^1.0.0" - postcss "^7.0.0" - -csso@^4.0.2: - version "4.2.0" - resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" - integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== - dependencies: - css-tree "^1.1.2" - -cssom@0.3.x, cssom@^0.3.4: - version "0.3.8" - resolved "https://registry.yarnpkg.com/cssom/-/cssom-0.3.8.tgz#9f1276f5b2b463f2114d3f2c75250af8c1a36f4a" - integrity sha512-b0tGHbfegbhPJpxpiBPU2sCkigAqtM9O121le6bbOlgyV+NyGyCmVfJ6QW9eRjz8CpNfWEOYBIMIGRYkLwsIYg== - -cssstyle@^1.1.1: - version "1.4.0" - resolved "https://registry.yarnpkg.com/cssstyle/-/cssstyle-1.4.0.tgz#9d31328229d3c565c61e586b02041a28fccdccf1" - integrity sha512-GBrLZYZ4X4x6/QEoBnIrqb8B/f5l4+8me2dkom/j1Gtbxy0kBv6OGzKuAsGM75bkGwGAFkt56Iwg28S3XTZgSA== - dependencies: - cssom "0.3.x" - -dashdash@^1.12.0: - version "1.14.1" - resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" - integrity sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA= - dependencies: - assert-plus "^1.0.0" - -data-urls@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-1.1.0.tgz#15ee0582baa5e22bb59c77140da8f9c76963bbfe" - integrity sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ== - dependencies: - abab "^2.0.0" - whatwg-mimetype "^2.2.0" - whatwg-url "^7.0.0" - -deasync@^0.1.14: - version "0.1.21" - resolved "https://registry.yarnpkg.com/deasync/-/deasync-0.1.21.tgz#bb11eabd4466c0d8776f0d82deb8a6126460d30f" - integrity sha512-kUmM8Y+PZpMpQ+B4AuOW9k2Pfx/mSupJtxOsLzmnHY2WqZUYRFccFn2RhzPAqt3Xb+sorK/badW2D4zNzqZz5w== - dependencies: - bindings "^1.5.0" - node-addon-api "^1.7.1" - -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: - version "2.6.9" - resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" - integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== - dependencies: - ms "2.0.0" - -debug@^3.1.1: - version "3.2.7" - resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" - integrity sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ== - dependencies: - ms "^2.1.1" - -debug@^4.1.0, debug@^4.1.1, debug@^4.3.0: - version "4.3.1" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.1.tgz#f0d229c505e0c6d8c49ac553d1b13dc183f6b2ee" - integrity sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ== - dependencies: - ms "2.1.2" - -decode-uri-component@^0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" - integrity sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU= - -decompress-response@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-3.3.0.tgz#80a4dd323748384bfa248083622aedec982adff3" - integrity sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M= - dependencies: - mimic-response "^1.0.0" - -deep-extend@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.6.0.tgz#c4fa7c95404a17a9c3e8ca7e1537312b736330ac" - integrity sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA== - -deep-is@~0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34" - integrity sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ= - -defaults@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/defaults/-/defaults-1.0.3.tgz#c656051e9817d9ff08ed881477f3fe4019f3ef7d" - integrity sha1-xlYFHpgX2f8I7YgUd/P+QBnz730= - dependencies: - clone "^1.0.2" - -defer-to-connect@^1.0.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/defer-to-connect/-/defer-to-connect-1.1.3.tgz#331ae050c08dcf789f8c83a7b81f0ed94f4ac591" - integrity sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ== - -define-properties@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.3.tgz#cf88da6cbee26fe6db7094f61d870cbd84cee9f1" - integrity sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ== - dependencies: - object-keys "^1.0.12" - -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY= - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha1-dp66rz9KY6rTr56NMEybvnm/sOY= - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - -delayed-stream@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" - integrity sha1-3zrhmayt+31ECqrgsp4icrJOxhk= - -depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - integrity sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak= - -des.js@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.1.tgz#5382142e1bdc53f85d86d53e5f4aa7deb91e0843" - integrity sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA== - dependencies: - inherits "^2.0.1" - minimalistic-assert "^1.0.0" - -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA= - -detect-node@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.4.tgz#014ee8f8f669c5c58023da64b8179c083a28c46c" - integrity sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw== - -diffie-hellman@^5.0.0: - version "5.0.3" - resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" - integrity sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg== - dependencies: - bn.js "^4.1.0" - miller-rabin "^4.0.0" - randombytes "^2.0.0" - -dmg-builder@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/dmg-builder/-/dmg-builder-22.9.1.tgz#64647224f37ee47fc9bd01947c21cc010a30511f" - integrity sha512-jc+DAirqmQrNT6KbDHdfEp8D1kD0DBTnsLhwUR3MX+hMBun5bT134LQzpdK0GKvd22GqF8L1Cz/NOgaVjscAXQ== - dependencies: - app-builder-lib "22.9.1" - builder-util "22.9.1" - fs-extra "^9.0.1" - iconv-lite "^0.6.2" - js-yaml "^3.14.0" - sanitize-filename "^1.6.3" - -dom-serializer@0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.2.2.tgz#1afb81f533717175d478655debc5e332d9f9bb51" - integrity sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g== - dependencies: - domelementtype "^2.0.1" - entities "^2.0.0" - -domain-browser@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" - integrity sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA== - -domelementtype@1, domelementtype@^1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.1.tgz#d048c44b37b0d10a7f2a3d5fee3f4333d790481f" - integrity sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w== - -domelementtype@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.1.0.tgz#a851c080a6d1c3d94344aed151d99f669edf585e" - integrity sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w== - -domexception@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/domexception/-/domexception-1.0.1.tgz#937442644ca6a31261ef36e3ec677fe805582c90" - integrity sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug== - dependencies: - webidl-conversions "^4.0.2" - -domhandler@^2.3.0: - version "2.4.2" - resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.4.2.tgz#8805097e933d65e85546f726d60f5eb88b44f803" - integrity sha512-JiK04h0Ht5u/80fdLMCEmV4zkNh2BcoMFBmZ/91WtYZ8qVXSKjiw7fXMgFPnHcSZgOo3XdinHvmnDUeMf5R4wA== - dependencies: - domelementtype "1" - -domutils@^1.5.1, domutils@^1.7.0: - version "1.7.0" - resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.7.0.tgz#56ea341e834e06e6748af7a1cb25da67ea9f8c2a" - integrity sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg== - dependencies: - dom-serializer "0" - domelementtype "1" - -dot-prop@^5.2.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/dot-prop/-/dot-prop-5.3.0.tgz#90ccce708cd9cd82cc4dc8c3ddd9abdd55b20e88" - integrity sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q== - dependencies: - is-obj "^2.0.0" - -dotenv-expand@^5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/dotenv-expand/-/dotenv-expand-5.1.0.tgz#3fbaf020bfd794884072ea26b1e9791d45a629f0" - integrity sha512-YXQl1DSa4/PQyRfgrv6aoNjhasp/p4qs9FjJ4q4cQk+8m4r6k4ZSiEyytKG8f8W9gi8WsQtIObNmKd+tMzNTmA== - -dotenv@^5.0.0: - version "5.0.1" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-5.0.1.tgz#a5317459bd3d79ab88cff6e44057a6a3fbb1fcef" - integrity sha512-4As8uPrjfwb7VXC+WnLCbXK7y+Ueb2B3zgNCePYfhxS1PYeaO1YTeplffTEcbfLhvFNGLAz90VvJs9yomG7bow== - -dotenv@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-8.2.0.tgz#97e619259ada750eea3e4ea3e26bceea5424b16a" - integrity sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw== - -duplexer2@~0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer2/-/duplexer2-0.1.4.tgz#8b12dab878c0d69e3e7891051662a32fc6bddcc1" - integrity sha1-ixLauHjA1p4+eJEFFmKjL8a93ME= - dependencies: - readable-stream "^2.0.2" - -duplexer3@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/duplexer3/-/duplexer3-0.1.4.tgz#ee01dd1cac0ed3cbc7fdbea37dc0a8f1ce002ce2" - integrity sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI= - -ecc-jsbn@~0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" - integrity sha1-OoOpBOVDUyh4dMVkt1SThoSamMk= - dependencies: - jsbn "~0.1.0" - safer-buffer "^2.1.0" - -ecstatic@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/ecstatic/-/ecstatic-3.3.2.tgz#6d1dd49814d00594682c652adb66076a69d46c48" - integrity sha512-fLf9l1hnwrHI2xn9mEDT7KIi22UDqA2jaCwyCbSUJh9a1V+LEUSL/JO/6TIz/QyuBURWUHrFL5Kg2TtO1bkkog== - dependencies: - he "^1.1.1" - mime "^1.6.0" - minimist "^1.1.0" - url-join "^2.0.5" - -ee-first@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" - integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0= - -ejs@^3.1.5: - version "3.1.6" - resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.6.tgz#5bfd0a0689743bb5268b3550cceeebbc1702822a" - integrity sha512-9lt9Zse4hPucPkoP7FHDF0LQAlGyF9JVpnClFLFH3aSSbxmyoqINRpp/9wePWJTUl4KOQwRL72Iw3InHPDkoGw== - dependencies: - jake "^10.6.1" - -electron-builder@^22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/electron-builder/-/electron-builder-22.9.1.tgz#a2962db6f2757bc01d02489f38fafe0809f68f60" - integrity sha512-GXPt8l5Mxwm1QKYopUM6/Tdh9W3695G6Ax+IFyj5pQ51G4SD5L1uq4/RkPSsOgs3rP7jNSV6g6OfDzdtVufPdA== - dependencies: - "@types/yargs" "^15.0.5" - app-builder-lib "22.9.1" - bluebird-lst "^1.0.9" - builder-util "22.9.1" - builder-util-runtime "8.7.2" - chalk "^4.1.0" - dmg-builder "22.9.1" - fs-extra "^9.0.1" - is-ci "^2.0.0" - lazy-val "^1.0.4" - read-config-file "6.0.0" - sanitize-filename "^1.6.3" - update-notifier "^4.1.1" - yargs "^16.0.3" - -electron-notarize@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/electron-notarize/-/electron-notarize-1.0.0.tgz#bc925b1ccc3f79e58e029e8c4706572b01a9fd8f" - integrity sha512-dsib1IAquMn0onCrNMJ6gtEIZn/azG8hZMCYOuZIMVMUeRMgBYHK1s5TK9P8xAcrAjh/2aN5WYHzgVSWX314og== - dependencies: - debug "^4.1.1" - fs-extra "^9.0.1" - -electron-publish@22.9.1: - version "22.9.1" - resolved "https://registry.yarnpkg.com/electron-publish/-/electron-publish-22.9.1.tgz#7cc76ac4cc53efd29ee31c1e5facb9724329068e" - integrity sha512-ducLjRJLEeU87FaTCWaUyDjCoLXHkawkltP2zqS/n2PyGke54ZIql0tBuUheht4EpR8AhFbVJ11spSn1gy8r6w== - dependencies: - "@types/fs-extra" "^9.0.1" - bluebird-lst "^1.0.9" - builder-util "22.9.1" - builder-util-runtime "8.7.2" - chalk "^4.1.0" - fs-extra "^9.0.1" - lazy-val "^1.0.4" - mime "^2.4.6" - -electron-to-chromium@^1.3.649: - version "1.3.675" - resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.675.tgz#7ad29f98d7b48da581554eb28bb9a71fd5fd4956" - integrity sha512-GEQw+6dNWjueXGkGfjgm7dAMtXfEqrfDG3uWcZdeaD4cZ3dKYdPRQVruVXQRXtPLtOr5GNVVlNLRMChOZ611pQ== - -electron@^11.3.0: - version "11.3.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-11.3.0.tgz#87e8528fd23ae53b0eeb3a738f1fe0a3ad27c2db" - integrity sha512-MhdS0gok3wZBTscLBbYrOhLaQybCSAfkupazbK1dMP5c+84eVMxJE/QGohiWQkzs0tVFIJsAHyN19YKPbelNrQ== - dependencies: - "@electron/get" "^1.0.1" - "@types/node" "^12.0.12" - extract-zip "^1.0.3" - -elliptic@^6.5.3: - version "6.5.4" - resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" - integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== - dependencies: - bn.js "^4.11.9" - brorand "^1.1.0" - hash.js "^1.0.0" - hmac-drbg "^1.0.1" - inherits "^2.0.4" - minimalistic-assert "^1.0.1" - minimalistic-crypto-utils "^1.0.1" - -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - -emoji-regex@^8.0.0: - version "8.0.0" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" - integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== - -encodeurl@^1.0.2, encodeurl@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" - integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k= - -end-of-stream@^1.1.0: - version "1.4.4" - resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0" - integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q== - dependencies: - once "^1.4.0" - -entities@^1.1.1, entities@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.2.tgz#bdfa735299664dfafd34529ed4f8522a275fea56" - integrity sha512-f2LZMYl1Fzu7YSBKg+RoROelpOaNrcGmE9AZubeDfrCEia483oW4MI4VyFd5VNHIgQ/7qm1I0wUHK1eJnn2y2w== - -entities@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" - integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== - -env-paths@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43" - integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA== - -envinfo@^7.3.1: - version "7.7.4" - resolved "https://registry.yarnpkg.com/envinfo/-/envinfo-7.7.4.tgz#c6311cdd38a0e86808c1c9343f667e4267c4a320" - integrity sha512-TQXTYFVVwwluWSFis6K2XKxgrD22jEv0FTuLCQI+OjH7rn93+iY0fSSFM5lrSxFY+H1+B0/cvvlamr3UsBivdQ== - -error-ex@^1.3.1: - version "1.3.2" - resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.2.tgz#b4ac40648107fdcdcfae242f428bea8a14d4f1bf" - integrity sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g== - dependencies: - is-arrayish "^0.2.1" - -es-abstract@^1.17.2: - version "1.17.7" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.7.tgz#a4de61b2f66989fc7421676c1cb9787573ace54c" - integrity sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g== - dependencies: - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-regex "^1.1.1" - object-inspect "^1.8.0" - object-keys "^1.1.1" - object.assign "^4.1.1" - string.prototype.trimend "^1.0.1" - string.prototype.trimstart "^1.0.1" - -es-abstract@^1.18.0-next.2: - version "1.18.0-next.2" - resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.18.0-next.2.tgz#088101a55f0541f595e7e057199e27ddc8f3a5c2" - integrity sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw== - dependencies: - call-bind "^1.0.2" - es-to-primitive "^1.2.1" - function-bind "^1.1.1" - get-intrinsic "^1.0.2" - has "^1.0.3" - has-symbols "^1.0.1" - is-callable "^1.2.2" - is-negative-zero "^2.0.1" - is-regex "^1.1.1" - object-inspect "^1.9.0" - object-keys "^1.1.1" - object.assign "^4.1.2" - string.prototype.trimend "^1.0.3" - string.prototype.trimstart "^1.0.3" - -es-to-primitive@^1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.2.1.tgz#e55cd4c9cdc188bcefb03b366c736323fc5c898a" - integrity sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA== - dependencies: - is-callable "^1.1.4" - is-date-object "^1.0.1" - is-symbol "^1.0.2" - -es6-error@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d" - integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg== - -escalade@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" - integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== - -escape-goat@^2.0.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/escape-goat/-/escape-goat-2.1.1.tgz#1b2dc77003676c457ec760b2dc68edb648188675" - integrity sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q== - -escape-html@~1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" - integrity sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg= - -escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" - integrity sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ= - -escape-string-regexp@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" - integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== - -escodegen@^1.11.0, escodegen@^1.11.1: - version "1.14.3" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" - integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== - dependencies: - esprima "^4.0.1" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -escodegen@~1.9.0: - version "1.9.1" - resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.9.1.tgz#dbae17ef96c8e4bedb1356f4504fa4cc2f7cb7e2" - integrity sha512-6hTjO1NAWkHnDk3OqQ4YrCuwwmGHL9S3nPlzBOUG/R44rda3wLNrfvQ5fkSGjyhHFKM7ALPKcKGrwvCLe0lC7Q== - dependencies: - esprima "^3.1.3" - estraverse "^4.2.0" - esutils "^2.0.2" - optionator "^0.8.1" - optionalDependencies: - source-map "~0.6.1" - -esprima@^3.1.3: - version "3.1.3" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-3.1.3.tgz#fdca51cee6133895e3c88d535ce49dbff62a4633" - integrity sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM= - -esprima@^4.0.0, esprima@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" - integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== - -estraverse@^4.2.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" - integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== - -esutils@^2.0.2: - version "2.0.3" - resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" - integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== - -etag@~1.8.1: - version "1.8.1" - resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" - integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc= - -eventemitter3@^4.0.0: - version "4.0.7" - resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" - integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== - -events@^3.0.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379" - integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg== - -evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" - integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== - dependencies: - md5.js "^1.3.4" - safe-buffer "^5.1.1" - -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha1-t3c14xXOMPa27/D4OwQVGiJEliI= - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8= - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg= - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - -extend@~3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" - integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== - -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -extract-zip@^1.0.3: - version "1.7.0" - resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" - integrity sha512-xoh5G1W/PB0/27lXgMQyIhP5DSY/LhoCsOyZgb+6iMmRtCwVBo55uKaMoEYrDCKQhWvqEip5ZPKAc6eFNyf/MA== - dependencies: - concat-stream "^1.6.2" - debug "^2.6.9" - mkdirp "^0.5.4" - yauzl "^2.10.0" - -extsprintf@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" - integrity sha1-lpGEQOMEGnpBT4xS48V06zw+HgU= - -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - integrity sha1-4mifjzVvrWLMplo6kcXfX5VRaS8= - -falafel@^2.1.0: - version "2.2.4" - resolved "https://registry.yarnpkg.com/falafel/-/falafel-2.2.4.tgz#b5d86c060c2412a43166243cb1bce44d1abd2819" - integrity sha512-0HXjo8XASWRmsS0X1EkhwEMZaD3Qvp7FfURwjLKjG1ghfRm/MGZl2r4cWUTv41KdNghTw4OUMmVtdGQp3+H+uQ== - dependencies: - acorn "^7.1.1" - foreach "^2.0.5" - isarray "^2.0.1" - object-keys "^1.0.6" - -fast-deep-equal@^3.1.1: - version "3.1.3" - resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525" - integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q== - -fast-glob@^2.2.2: - version "2.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== - dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" - -fast-json-stable-stringify@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633" - integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw== - -fast-levenshtein@~2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917" - integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc= - -fastparse@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.2.tgz#91728c5a5942eced8531283c79441ee4122c35a9" - integrity sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ== - -fd-slicer@~1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/fd-slicer/-/fd-slicer-1.1.0.tgz#25c7c89cb1f9077f8891bbe61d8f390eae256f1e" - integrity sha1-JcfInLH5B3+IkbvmHY85Dq4lbx4= - dependencies: - pend "~1.2.0" - -file-uri-to-path@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" - integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== - -filelist@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.2.tgz#80202f21462d4d1c2e214119b1807c1bc0380e5b" - integrity sha512-z7O0IS8Plc39rTCq6i6iHxk43duYOn8uFJiWSewIq0Bww1RNybVHSCjahmcC87ZqAm4OTvFzlzeGu3XAzG1ctQ== - dependencies: - minimatch "^3.0.4" - -filesize@^3.6.0: - version "3.6.1" - resolved "https://registry.yarnpkg.com/filesize/-/filesize-3.6.1.tgz#090bb3ee01b6f801a8a8be99d31710b3422bb317" - integrity sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg== - -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc= - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - -follow-redirects@^1.0.0: - version "1.13.2" - resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.13.2.tgz#dd73c8effc12728ba5cf4259d760ea5fb83e3147" - integrity sha512-6mPTgLxYm3r6Bkkg0vNM0HTjfGrOEtsfbhagQvbxDEsEkpNhw582upBaoRZylzen6krEmxXJgt9Ju6HiI4O7BA== - -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha1-gQaNKVqBQuwKxybG4iAMMPttXoA= - -foreach@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" - integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= - -forever-agent@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" - integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= - -form-data@~2.3.2: - version "2.3.3" - resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" - integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== - dependencies: - asynckit "^0.4.0" - combined-stream "^1.0.6" - mime-types "^2.1.12" - -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk= - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" - integrity sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac= - -fs-extra@^8.1.0: - version "8.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-8.1.0.tgz#49d43c45a88cd9677668cb7be1b46efdb8d2e1c0" - integrity sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g== - dependencies: - graceful-fs "^4.2.0" - jsonfile "^4.0.0" - universalify "^0.1.0" - -fs-extra@^9.0.1: - version "9.1.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d" - integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ== - dependencies: - at-least-node "^1.0.0" - graceful-fs "^4.2.0" - jsonfile "^6.0.1" - universalify "^2.0.0" - -fs.realpath@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" - integrity sha1-FQStJSMVjKpA20onh8sBQRmU6k8= - -fsevents@^1.2.7: - version "1.2.13" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.2.13.tgz#f325cb0455592428bcf11b383370ef70e3bfcc38" - integrity sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw== - dependencies: - bindings "^1.5.0" - nan "^2.12.1" - -function-bind@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" - integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== - -gensync@^1.0.0-beta.2: - version "1.0.0-beta.2" - resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" - integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== - -get-caller-file@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" - integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== - -get-intrinsic@^1.0.2: - version "1.1.1" - resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.1.1.tgz#15f59f376f855c446963948f0d24cd3637b4abc6" - integrity sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q== - dependencies: - function-bind "^1.1.1" - has "^1.0.3" - has-symbols "^1.0.1" - -get-port@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/get-port/-/get-port-3.2.0.tgz#dd7ce7de187c06c8bf353796ac71e099f0980ebc" - integrity sha1-3Xzn3hh8Bsi/NTeWrHHgmfCYDrw= - -get-stream@^4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - -get-stream@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" - integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== - dependencies: - pump "^3.0.0" - -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha1-3BXKHGcjh8p2vTesCjlbogQqLCg= - -getpass@^0.1.1: - version "0.1.7" - resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" - integrity sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo= - dependencies: - assert-plus "^1.0.0" - -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4= - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha1-jFoUlNIGbFcMw7/kSWF1rMTVAqs= - -glob@^7.0.0, glob@^7.1.3, glob@^7.1.4: - version "7.1.6" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.6.tgz#141f33b81a7c2492e125594307480c46679278a6" - integrity sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - -global-agent@^2.0.2: - version "2.1.12" - resolved "https://registry.yarnpkg.com/global-agent/-/global-agent-2.1.12.tgz#e4ae3812b731a9e81cbf825f9377ef450a8e4195" - integrity sha512-caAljRMS/qcDo69X9BfkgrihGUgGx44Fb4QQToNQjsiWh+YlQ66uqYVAdA8Olqit+5Ng0nkz09je3ZzANMZcjg== - dependencies: - boolean "^3.0.1" - core-js "^3.6.5" - es6-error "^4.1.1" - matcher "^3.0.0" - roarr "^2.15.3" - semver "^7.3.2" - serialize-error "^7.0.1" - -global-dirs@^2.0.1: - version "2.1.0" - resolved "https://registry.yarnpkg.com/global-dirs/-/global-dirs-2.1.0.tgz#e9046a49c806ff04d6c1825e196c8f0091e8df4d" - integrity sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ== - dependencies: - ini "1.3.7" - -global-tunnel-ng@^2.7.1: - version "2.7.1" - resolved "https://registry.yarnpkg.com/global-tunnel-ng/-/global-tunnel-ng-2.7.1.tgz#d03b5102dfde3a69914f5ee7d86761ca35d57d8f" - integrity sha512-4s+DyciWBV0eK148wqXxcmVAbFVPqtc3sEtUE/GTQfuU80rySLcMhUmHKSHI7/LDj8q0gDYI1lIhRRB7ieRAqg== - dependencies: - encodeurl "^1.0.2" - lodash "^4.17.10" - npm-conf "^1.1.3" - tunnel "^0.0.6" - -globals@^11.1.0: - version "11.12.0" - resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" - integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== - -globalthis@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.2.tgz#2a235d34f4d8036219f7e34929b5de9e18166b8b" - integrity sha512-ZQnSFO1la8P7auIOQECnm0sSuoMeaSq0EEdXMBFF2QJO4uNcwbyhSgG3MruWNbFTqCLmxVwGOl7LZ9kASvHdeQ== - dependencies: - define-properties "^1.1.3" - -got@^9.6.0: - version "9.6.0" - resolved "https://registry.yarnpkg.com/got/-/got-9.6.0.tgz#edf45e7d67f99545705de1f7bbeeeb121765ed85" - integrity sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q== - dependencies: - "@sindresorhus/is" "^0.14.0" - "@szmarczak/http-timer" "^1.1.2" - cacheable-request "^6.0.0" - decompress-response "^3.3.0" - duplexer3 "^0.1.4" - get-stream "^4.1.0" - lowercase-keys "^1.0.1" - mimic-response "^1.0.1" - p-cancelable "^1.0.0" - to-readable-stream "^1.0.0" - url-parse-lax "^3.0.0" - -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0: - version "4.2.6" - resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.6.tgz#ff040b2b0853b23c3d31027523706f1885d76bee" - integrity sha512-nTnJ528pbqxYanhpDYsi4Rd8MAeaBA67+RZ10CM1m3bTAVFEDcd5AuA4a6W5YkGZ1iNXHzZz8T6TBKLeBuNriQ== - -grapheme-breaker@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/grapheme-breaker/-/grapheme-breaker-0.3.2.tgz#5b9e6b78c3832452d2ba2bb1cb830f96276410ac" - integrity sha1-W55reMODJFLSuiuxy4MPlidkEKw= - dependencies: - brfs "^1.2.0" - unicode-trie "^0.3.1" - -har-schema@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" - integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= - -har-validator@~5.1.3: - version "5.1.5" - resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.5.tgz#1f0803b9f8cb20c0fa13822df1ecddb36bde1efd" - integrity sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w== - dependencies: - ajv "^6.12.3" - har-schema "^2.0.0" - -has-ansi@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" - integrity sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE= - dependencies: - ansi-regex "^2.0.0" - -has-flag@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" - integrity sha1-nZ55MWXOAXoA8AQYxD+UKnsdEfo= - -has-flag@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" - integrity sha1-tdRU3CGZriJWmfNGfloH87lVuv0= - -has-flag@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" - integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== - -has-symbols@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.1.tgz#9f5214758a44196c406d9bd76cebf81ec2dd31e8" - integrity sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg== - -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8= - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc= - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha1-bWHeldkd/Km5oCCJrThL/49it3E= - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha1-lbC2P+whRmGab+V/51Yo1aOe/k8= - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has-yarn@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/has-yarn/-/has-yarn-2.1.0.tgz#137e11354a7b5bf11aa5cb649cf0c6f3ff2b2e77" - integrity sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw== - -has@^1.0.0, has@^1.0.1, has@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" - integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== - dependencies: - function-bind "^1.1.1" - -hash-base@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" - integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== - dependencies: - inherits "^2.0.4" - readable-stream "^3.6.0" - safe-buffer "^5.2.0" - -hash.js@^1.0.0, hash.js@^1.0.3: - version "1.1.7" - resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" - integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== - dependencies: - inherits "^2.0.3" - minimalistic-assert "^1.0.1" - -he@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" - integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== - -hex-color-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/hex-color-regex/-/hex-color-regex-1.1.0.tgz#4c06fccb4602fe2602b3c93df82d7e7dbf1a8a8e" - integrity sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ== - -hmac-drbg@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" - integrity sha1-0nRXAQJabHdabFRXk+1QL8DGSaE= - dependencies: - hash.js "^1.0.3" - minimalistic-assert "^1.0.0" - minimalistic-crypto-utils "^1.0.1" - -hosted-git-info@^2.1.4: - version "2.8.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.8.8.tgz#7539bd4bc1e0e0a895815a2e0262420b12858488" - integrity sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg== - -hosted-git-info@^3.0.5: - version "3.0.8" - resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-3.0.8.tgz#6e35d4cc87af2c5f816e4cb9ce350ba87a3f370d" - integrity sha512-aXpmwoOhRBrw6X3j0h5RloK4x1OzsxMPyxqIHyNfSe2pypkVTZFpEiRoSipPEPlMrh0HW/XsjkJ5WgnCirpNUw== - dependencies: - lru-cache "^6.0.0" - -hsl-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsl-regex/-/hsl-regex-1.0.0.tgz#d49330c789ed819e276a4c0d272dffa30b18fe6e" - integrity sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4= - -hsla-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/hsla-regex/-/hsla-regex-1.0.0.tgz#c1ce7a3168c8c6614033a4b5f7877f3b225f9c38" - integrity sha1-wc56MWjIxmFAM6S194d/OyJfnDg= - -html-comment-regex@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7" - integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ== - -html-encoding-sniffer@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz#e70d84b94da53aa375e11fe3a351be6642ca46f8" - integrity sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw== - dependencies: - whatwg-encoding "^1.0.1" - -html-tags@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/html-tags/-/html-tags-1.2.0.tgz#c78de65b5663aa597989dd2b7ab49200d7e4db98" - integrity sha1-x43mW1Zjqll5id0rerSSANfk25g= - -htmlnano@^0.2.2: - version "0.2.8" - resolved "https://registry.yarnpkg.com/htmlnano/-/htmlnano-0.2.8.tgz#d9c22daa18c8ea7675a0bf07cc904793ccaeb56f" - integrity sha512-q5gbo4SIDAE5sfJ5V0UD6uu+n1dcO/Mpr0B6SlDlJBoV7xKPne4uG4UwrT8vUWjdjIPJl95TY8EDuEbBW2TG0A== - dependencies: - cssnano "^4.1.10" - posthtml "^0.13.4" - posthtml-render "^1.3.0" - purgecss "^2.3.0" - relateurl "^0.2.7" - srcset "^3.0.0" - svgo "^1.3.2" - terser "^4.8.0" - timsort "^0.3.0" - uncss "^0.17.3" - -htmlparser2@^3.9.2: - version "3.10.1" - resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.10.1.tgz#bd679dc3f59897b6a34bb10749c855bb53a9392f" - integrity sha512-IgieNijUMbkDovyoKObU1DUhm1iwNYE/fuifEoEHfd1oZKZDaONBSkal7Y01shxsM49R4XaMdGez3WnF9UfiCQ== - dependencies: - domelementtype "^1.3.1" - domhandler "^2.3.0" - domutils "^1.5.1" - entities "^1.1.1" - inherits "^2.0.1" - readable-stream "^3.1.1" - -http-cache-semantics@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390" - integrity sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ== - -http-errors@~1.7.2: - version "1.7.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.7.3.tgz#6c619e4f9c60308c38519498c14fbb10aacebb06" - integrity sha512-ZTTX0MWrsQ2ZAhA1cejAwDLycFsd7I7nVtnkT3Ol0aqodaKW+0CTZDQ1uBv5whptCnc8e8HeRRJxRs0kmm/Qfw== - dependencies: - depd "~1.1.2" - inherits "2.0.4" - setprototypeof "1.1.1" - statuses ">= 1.5.0 < 2" - toidentifier "1.0.0" - -http-proxy@^1.18.0: - version "1.18.1" - resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.18.1.tgz#401541f0534884bbf95260334e72f88ee3976549" - integrity sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ== - dependencies: - eventemitter3 "^4.0.0" - follow-redirects "^1.0.0" - requires-port "^1.0.0" - -http-server@^0.12.3: - version "0.12.3" - resolved "https://registry.yarnpkg.com/http-server/-/http-server-0.12.3.tgz#ba0471d0ecc425886616cb35c4faf279140a0d37" - integrity sha512-be0dKG6pni92bRjq0kvExtj/NrrAd28/8fCXkaI/4piTwQMSDSLMhWyW0NI1V+DBI3aa1HMlQu46/HjVLfmugA== - dependencies: - basic-auth "^1.0.3" - colors "^1.4.0" - corser "^2.0.1" - ecstatic "^3.3.2" - http-proxy "^1.18.0" - minimist "^1.2.5" - opener "^1.5.1" - portfinder "^1.0.25" - secure-compare "3.0.1" - union "~0.5.0" - -http-signature@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" - integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= - dependencies: - assert-plus "^1.0.0" - jsprim "^1.2.2" - sshpk "^1.7.0" - -https-browserify@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" - integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM= - -iconv-lite@0.4.24: - version "0.4.24" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.24.tgz#2022b4b25fbddc21d2f524974a474aafe733908b" - integrity sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA== - dependencies: - safer-buffer ">= 2.1.2 < 3" - -iconv-lite@^0.6.2: - version "0.6.2" - resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.2.tgz#ce13d1875b0c3a674bd6a04b7f76b01b1b6ded01" - integrity sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ== - dependencies: - safer-buffer ">= 2.1.2 < 3.0.0" - -icss-replace-symbols@1.1.0, icss-replace-symbols@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" - integrity sha1-Bupvg2ead0njhs/h/oEq5dsiPe0= - -ieee754@^1.1.4: - version "1.2.1" - resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" - integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== - -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha1-2BNVwVYS04bGH53dOSLUMEgipUY= - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-lazy@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/import-lazy/-/import-lazy-2.1.0.tgz#05698e3d45c88e8d7e9d92cb0584e77f096f3e43" - integrity sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM= - -imurmurhash@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" - integrity sha1-khi5srkoojixPcT7a21XbyMUU+o= - -indexes-of@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" - integrity sha1-8w9xbI4r00bHtn0985FVZqfAVgc= - -inflight@^1.0.4: - version "1.0.6" - resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" - integrity sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk= - dependencies: - once "^1.3.0" - wrappy "1" - -inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: - version "2.0.4" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" - integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== - -inherits@2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" - integrity sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE= - -inherits@2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" - integrity sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4= - -ini@1.3.7: - version "1.3.7" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.7.tgz#a09363e1911972ea16d7a8851005d84cf09a9a84" - integrity sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ== - -ini@^1.3.4, ini@~1.3.0: - version "1.3.8" - resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.8.tgz#a29da425b48806f34767a4efce397269af28432c" - integrity sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew== - -is-absolute-url@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" - integrity sha1-UFMN+4T8yap9vnhS6Do3uTufKqY= - -is-absolute-url@^3.0.1: - version "3.0.3" - resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" - integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== - -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha1-qeEss66Nh2cn7u84Q/igiXtcmNY= - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - -is-arrayish@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" - integrity sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0= - -is-arrayish@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.3.2.tgz#4574a2ae56f7ab206896fb431eaeed066fdf8f03" - integrity sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ== - -is-binary-path@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" - integrity sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg= - dependencies: - binary-extensions "^1.0.0" - -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-callable@^1.1.4, is-callable@^1.2.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.3.tgz#8b1e0500b73a1d76c70487636f368e519de8db8e" - integrity sha512-J1DcMe8UYTBSrKezuIUTUwjXsho29693unXM2YhJUTR2txK/eG47bvNa/wipPFmZFgr/N6f1GA66dv0mEyTIyQ== - -is-ci@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-ci/-/is-ci-2.0.0.tgz#6bc6334181810e04b5c22b3d589fdca55026404c" - integrity sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w== - dependencies: - ci-info "^2.0.0" - -is-color-stop@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-color-stop/-/is-color-stop-1.1.0.tgz#cfff471aee4dd5c9e158598fbe12967b5cdad345" - integrity sha1-z/9HGu5N1cnhWFmPvhKWe1za00U= - dependencies: - css-color-names "^0.0.4" - hex-color-regex "^1.1.0" - hsl-regex "^1.0.0" - hsla-regex "^1.0.0" - rgb-regex "^1.0.1" - rgba-regex "^1.0.0" - -is-core-module@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.2.0.tgz#97037ef3d52224d85163f5597b2b63d9afed981a" - integrity sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ== - dependencies: - has "^1.0.3" - -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y= - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - -is-date-object@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.2.tgz#bda736f2cd8fd06d32844e7743bfa7494c3bfd7e" - integrity sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g== - -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE= - -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik= - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" - integrity sha1-qIwCU1eR8C7TfHahueqXc8gz+MI= - -is-fullwidth-code-point@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" - integrity sha1-o7MKXE8ZkYMWeqq5O+764937ZU8= - -is-fullwidth-code-point@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" - integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== - -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo= - dependencies: - is-extglob "^2.1.0" - -is-glob@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.1.tgz#7567dbe9f2f5e2467bc77ab83c4a29482407a5dc" - integrity sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg== - dependencies: - is-extglob "^2.1.1" - -is-html@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-html/-/is-html-1.1.0.tgz#e04f1c18d39485111396f9a0273eab51af218464" - integrity sha1-4E8cGNOUhRETlvmgJz6rUa8hhGQ= - dependencies: - html-tags "^1.0.0" - -is-installed-globally@^0.3.1: - version "0.3.2" - resolved "https://registry.yarnpkg.com/is-installed-globally/-/is-installed-globally-0.3.2.tgz#fd3efa79ee670d1187233182d5b0a1dd00313141" - integrity sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g== - dependencies: - global-dirs "^2.0.1" - is-path-inside "^3.0.1" - -is-negative-zero@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.1.tgz#3de746c18dda2319241a53675908d8f766f11c24" - integrity sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w== - -is-npm@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/is-npm/-/is-npm-4.0.0.tgz#c90dd8380696df87a7a6d823c20d0b12bbe3c84d" - integrity sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig== - -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU= - dependencies: - kind-of "^3.0.2" - -is-obj@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982" - integrity sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w== - -is-path-inside@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-3.0.2.tgz#f5220fc82a3e233757291dddc9c5877f2a1f3017" - integrity sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg== - -is-plain-object@^2.0.3, is-plain-object@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" - integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== - dependencies: - isobject "^3.0.1" - -is-regex@^1.1.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.2.tgz#81c8ebde4db142f2cf1c53fc86d6a45788266251" - integrity sha512-axvdhb5pdhEVThqJzYXwMlVuZwC+FF2DpcOhTS+y/8jVq4trxyPgfcwIxIKiyeuLlSQYKkmUaPQJ8ZE4yNKXDg== - dependencies: - call-bind "^1.0.2" - has-symbols "^1.0.1" - -is-resolvable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-resolvable/-/is-resolvable-1.1.0.tgz#fb18f87ce1feb925169c9a407c19318a3206ed88" - integrity sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg== - -is-svg@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-3.0.0.tgz#9321dbd29c212e5ca99c4fa9794c714bcafa2f75" - integrity sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ== - dependencies: - html-comment-regex "^1.1.0" - -is-symbol@^1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.3.tgz#38e1014b9e6329be0de9d24a414fd7441ec61937" - integrity sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ== - dependencies: - has-symbols "^1.0.1" - -is-typedarray@^1.0.0, is-typedarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" - integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= - -is-url@^1.2.2: - version "1.2.4" - resolved "https://registry.yarnpkg.com/is-url/-/is-url-1.2.4.tgz#04a4df46d28c4cff3d73d01ff06abeb318a1aa52" - integrity sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww== - -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0= - -is-yarn-global@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/is-yarn-global/-/is-yarn-global-0.3.0.tgz#d502d3382590ea3004893746754c89139973e232" - integrity sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw== - -isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE= - -isarray@^2.0.1: - version "2.0.5" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" - integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== - -isbinaryfile@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-4.0.6.tgz#edcb62b224e2b4710830b67498c8e4e5a4d2610b" - integrity sha512-ORrEy+SNVqUhrCaal4hA4fBzhggQQ+BaLntyPOdoEiwlKZW9BZiJXjg3RMiruE4tPEI3pyVPpySHQF/dKWperg== - -isexe@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" - integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= - -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk= - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" - integrity sha1-TkMekrEalzFjaqH5yNHMvP2reN8= - -isstream@~0.1.2: - version "0.1.2" - resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" - integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= - -jake@^10.6.1: - version "10.8.2" - resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.2.tgz#ebc9de8558160a66d82d0eadc6a2e58fbc500a7b" - integrity sha512-eLpKyrfG3mzvGE2Du8VoPbeSkRry093+tyNjdYaBbJS9v17knImYGNXQCUV0gLxQtF82m3E8iRb/wdSQZLoq7A== - dependencies: - async "0.9.x" - chalk "^2.4.2" - filelist "^1.0.1" - minimatch "^3.0.4" - -js-tokens@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" - integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== - -js-yaml@^3.10.0, js-yaml@^3.13.1, js-yaml@^3.14.0: - version "3.14.1" - resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" - integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== - dependencies: - argparse "^1.0.7" - esprima "^4.0.0" - -jsbn@~0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" - integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= - -jsdom@^14.1.0: - version "14.1.0" - resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-14.1.0.tgz#916463b6094956b0a6c1782c94e380cd30e1981b" - integrity sha512-O901mfJSuTdwU2w3Sn+74T+RnDVP+FuV5fH8tcPWyqrseRAb0s5xOtPgCFiPOtLcyK7CLIJwPyD83ZqQWvA5ng== - dependencies: - abab "^2.0.0" - acorn "^6.0.4" - acorn-globals "^4.3.0" - array-equal "^1.0.0" - cssom "^0.3.4" - cssstyle "^1.1.1" - data-urls "^1.1.0" - domexception "^1.0.1" - escodegen "^1.11.0" - html-encoding-sniffer "^1.0.2" - nwsapi "^2.1.3" - parse5 "5.1.0" - pn "^1.1.0" - request "^2.88.0" - request-promise-native "^1.0.5" - saxes "^3.1.9" - symbol-tree "^3.2.2" - tough-cookie "^2.5.0" - w3c-hr-time "^1.0.1" - w3c-xmlserializer "^1.1.2" - webidl-conversions "^4.0.2" - whatwg-encoding "^1.0.5" - whatwg-mimetype "^2.3.0" - whatwg-url "^7.0.0" - ws "^6.1.2" - xml-name-validator "^3.0.0" - -jsesc@^2.5.1: - version "2.5.2" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-2.5.2.tgz#80564d2e483dacf6e8ef209650a67df3f0c283a4" - integrity sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA== - -jsesc@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" - integrity sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0= - -json-buffer@3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.0.tgz#5b1f397afc75d677bde8bcfc0e47e1f9a3d9a898" - integrity sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg= - -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - -json-schema-traverse@^0.4.1: - version "0.4.1" - resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz#69f6a87d9513ab8bb8fe63bdb0979c448e684660" - integrity sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg== - -json-schema@0.2.3: - version "0.2.3" - resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" - integrity sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM= - -json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" - integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= - -json5@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe" - integrity sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow== - dependencies: - minimist "^1.2.0" - -json5@^2.1.2: - version "2.2.0" - resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.0.tgz#2dfefe720c6ba525d9ebd909950f0515316c89a3" - integrity sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA== - dependencies: - minimist "^1.2.5" - -jsonfile@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" - integrity sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss= - optionalDependencies: - graceful-fs "^4.1.6" - -jsonfile@^6.0.1: - version "6.1.0" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" - integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ== - dependencies: - universalify "^2.0.0" - optionalDependencies: - graceful-fs "^4.1.6" - -jsprim@^1.2.2: - version "1.4.1" - resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" - integrity sha1-MT5mvB5cwG5Di8G3SZwuXFastqI= - dependencies: - assert-plus "1.0.0" - extsprintf "1.3.0" - json-schema "0.2.3" - verror "1.10.0" - -keyv@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/keyv/-/keyv-3.1.0.tgz#ecc228486f69991e49e9476485a5be1e8fc5c4d9" - integrity sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA== - dependencies: - json-buffer "3.0.0" - -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ= - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha1-IIE989cSkosgc3hpGkUGb65y3Vc= - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: - version "6.0.3" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" - integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== - -latest-version@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/latest-version/-/latest-version-5.1.0.tgz#119dfe908fe38d15dfa43ecd13fa12ec8832face" - integrity sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA== - dependencies: - package-json "^6.3.0" - -lazy-val@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/lazy-val/-/lazy-val-1.0.4.tgz#882636a7245c2cfe6e0a4e3ba6c5d68a137e5c65" - integrity sha512-u93kb2fPbIrfzBuLjZE+w+fJbUUMhNDXxNmMfaqNgpfQf1CO5ZSe2LfsnBqVAk7i/2NF48OSoRj+Xe2VT+lE8Q== - -levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha1-OwmSTt+fCDwEkP3UwLxEIeBHZO4= - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - -lodash.clone@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.clone/-/lodash.clone-4.5.0.tgz#195870450f5a13192478df4bc3d23d2dea1907b6" - integrity sha1-GVhwRQ9aExkkeN9Lw9I9LeoZB7Y= - -lodash.debounce@^4.0.8: - version "4.0.8" - resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" - integrity sha1-gteb/zCmfEAF/9XiUVMArZyk168= - -lodash.memoize@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" - integrity sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4= - -lodash.sortby@^4.7.0: - version "4.7.0" - resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438" - integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg= - -lodash.uniq@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" - integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M= - -lodash@^4.17.10, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.4: - version "4.17.21" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" - integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== - -log-symbols@^2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-2.2.0.tgz#5740e1c5d6f0dfda4ad9323b5332107ef6b4c40a" - integrity sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg== - dependencies: - chalk "^2.0.1" - -lowercase-keys@^1.0.0, lowercase-keys@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-1.0.1.tgz#6f9e30b47084d971a7c820ff15a6c5167b74c26f" - integrity sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA== - -lowercase-keys@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-2.0.0.tgz#2603e78b7b4b0006cbca2fbcc8a3202558ac9479" - integrity sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA== - -lru-cache@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94" - integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA== - dependencies: - yallist "^4.0.0" - -magic-string@^0.22.4: - version "0.22.5" - resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.22.5.tgz#8e9cf5afddf44385c1da5bc2a6a0dbd10b03657e" - integrity sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w== - dependencies: - vlq "^0.2.2" - -make-dir@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-3.1.0.tgz#415e967046b3a7f1d185277d84aa58203726a13f" - integrity sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw== - dependencies: - semver "^6.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8= - -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha1-7Nyo8TFE5mDxtb1B8S80edmN+48= - dependencies: - object-visit "^1.0.0" - -matcher@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/matcher/-/matcher-3.0.0.tgz#bd9060f4c5b70aa8041ccc6f80368760994f30ca" - integrity sha512-OkeDaAZ/bQCxeFAozM55PKcKU0yJMPGifLwV4Qgjitu+5MoAfSQN4lsLJeXZ1b8w0x+/Emda6MZgXS1jvsapng== - dependencies: - escape-string-regexp "^4.0.0" - -md5.js@^1.3.4: - version "1.3.5" - resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" - integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - safe-buffer "^5.1.2" - -mdn-data@2.0.14: - version "2.0.14" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" - integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== - -mdn-data@2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.4.tgz#699b3c38ac6f1d728091a64650b65d388502fd5b" - integrity sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA== - -merge-source-map@1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.0.4.tgz#a5de46538dae84d4114cc5ea02b4772a6346701f" - integrity sha1-pd5GU42uhNQRTMXqArR3KmNGcB8= - dependencies: - source-map "^0.5.6" - -merge2@^1.2.3: - version "1.4.1" - resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" - integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== - -micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - -miller-rabin@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" - integrity sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA== - dependencies: - bn.js "^4.0.0" - brorand "^1.0.1" - -mime-db@1.46.0: - version "1.46.0" - resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.46.0.tgz#6267748a7f799594de3cbc8cde91def349661cee" - integrity sha512-svXaP8UQRZ5K7or+ZmfNhg2xX3yKDMUzqadsSqi4NCH/KomcH75MAMYAGVlvXn4+b/xOPhS3I2uHKRUzvjY7BQ== - -mime-types@^2.1.12, mime-types@~2.1.19: - version "2.1.29" - resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.29.tgz#1d4ab77da64b91f5f72489df29236563754bb1b2" - integrity sha512-Y/jMt/S5sR9OaqteJtslsFZKWOIIqMACsJSiHghlCAyhf7jfVYjKBmLiX8OgpWeW+fjJ2b+Az69aPFPkUOY6xQ== - dependencies: - mime-db "1.46.0" - -mime@1.6.0, mime@^1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - integrity sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg== - -mime@^2.4.6: - version "2.5.2" - resolved "https://registry.yarnpkg.com/mime/-/mime-2.5.2.tgz#6e3dc6cc2b9510643830e5f19d5cb753da5eeabe" - integrity sha512-tqkh47FzKeCPD2PUiPB6pkbMzsCasjxAfC62/Wap5qrUWcb+sFasXUC5I3gYM5iBM8v/Qpn4UK0x+j0iHyFPDg== - -mimic-fn@^1.0.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" - integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== - -mimic-response@^1.0.0, mimic-response@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mimic-response/-/mimic-response-1.0.1.tgz#4923538878eef42063cb8a3e3b0798781487ab1b" - integrity sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ== - -minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" - integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== - -minimalistic-crypto-utils@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" - integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo= - -minimatch@^3.0.4: - version "3.0.4" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" - integrity sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA== - dependencies: - brace-expansion "^1.1.7" - -minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0, minimist@^1.2.5: - version "1.2.5" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.5.tgz#67d66014b66a6a8aaa0c083c5fd58df4e4e97602" - integrity sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw== - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - -mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.5, mkdirp@~0.5.1: - version "0.5.5" - resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.5.tgz#d91cefd62d1436ca0f41620e251288d420099def" - integrity sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ== - dependencies: - minimist "^1.2.5" - -ms@2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" - integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g= - -ms@2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.1.tgz#30a5864eb3ebb0a66f2ebe6d727af06a09d86e0a" - integrity sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg== - -ms@2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" - integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== - -ms@^2.1.1: - version "2.1.3" - resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" - integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== - -nan@^2.12.1: - version "2.14.2" - resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.2.tgz#f5376400695168f4cc694ac9393d0c9585eeea19" - integrity sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ== - -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - -node-addon-api@^1.7.1: - version "1.7.2" - resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-1.7.2.tgz#3df30b95720b53c24e59948b49532b662444f54d" - integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg== - -node-forge@^0.7.1: - version "0.7.6" - resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.6.tgz#fdf3b418aee1f94f0ef642cd63486c77ca9724ac" - integrity sha512-sol30LUpz1jQFBjOKwbjxijiE3b6pjd74YwfD0fJOKPjF+fONKb2Yg8rYgS6+bK6VDl+/wfr4IYpC7jDzLUIfw== - -node-libs-browser@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.2.1.tgz#b64f513d18338625f90346d27b0d235e631f6425" - integrity sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q== - dependencies: - assert "^1.1.1" - browserify-zlib "^0.2.0" - buffer "^4.3.0" - console-browserify "^1.1.0" - constants-browserify "^1.0.0" - crypto-browserify "^3.11.0" - domain-browser "^1.1.1" - events "^3.0.0" - https-browserify "^1.0.0" - os-browserify "^0.3.0" - path-browserify "0.0.1" - process "^0.11.10" - punycode "^1.2.4" - querystring-es3 "^0.2.0" - readable-stream "^2.3.3" - stream-browserify "^2.0.1" - stream-http "^2.7.2" - string_decoder "^1.0.0" - timers-browserify "^2.0.4" - tty-browserify "0.0.0" - url "^0.11.0" - util "^0.11.0" - vm-browserify "^1.0.1" - -node-releases@^1.1.70: - version "1.1.71" - resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.71.tgz#cb1334b179896b1c89ecfdd4b725fb7bbdfc7dbb" - integrity sha512-zR6HoT6LrLCRBwukmrVbHv0EpEQjksO6GmFcZQQuCAy139BEsoVKPYnf3jongYW83fAa1torLGYwxxky/p28sg== - -normalize-package-data@^2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.5.0.tgz#e66db1838b200c1dfc233225d12cb36520e234a8" - integrity sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA== - dependencies: - hosted-git-info "^2.1.4" - resolve "^1.10.0" - semver "2 || 3 || 4 || 5" - validate-npm-package-license "^3.0.1" - -normalize-path@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" - integrity sha1-GrKLVW4Zg2Oowab35vogE3/mrtk= - dependencies: - remove-trailing-separator "^1.0.1" - -normalize-path@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" - integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== - -normalize-url@^3.0.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-3.3.0.tgz#b2e1c4dc4f7c6d57743df733a4f5978d18650559" - integrity sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg== - -normalize-url@^4.1.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-4.5.0.tgz#453354087e6ca96957bd8f5baf753f5982142129" - integrity sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ== - -npm-conf@^1.1.3: - version "1.1.3" - resolved "https://registry.yarnpkg.com/npm-conf/-/npm-conf-1.1.3.tgz#256cc47bd0e218c259c4e9550bf413bc2192aff9" - integrity sha512-Yic4bZHJOt9RCFbRP3GgpqhScOY4HH3V2P8yBj6CeYq118Qr+BLXqT2JvpJ00mryLESpgOxf5XlFv4ZjXxLScw== - dependencies: - config-chain "^1.1.11" - pify "^3.0.0" - -nth-check@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.2.tgz#b2bd295c37e3dd58a3bf0700376663ba4d9cf05c" - integrity sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg== - dependencies: - boolbase "~1.0.0" - -nwsapi@^2.1.3: - version "2.2.0" - resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" - integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== - -oauth-sign@~0.9.0: - version "0.9.0" - resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" - integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== - -object-assign@^4.1.1: - version "4.1.1" - resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" - integrity sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM= - -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha1-fn2Fi3gb18mRpBupde04EnVOmYw= - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - -object-inspect@^1.8.0, object-inspect@^1.9.0: - version "1.9.0" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.9.0.tgz#c90521d74e1127b67266ded3394ad6116986533a" - integrity sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw== - -object-inspect@~1.4.0: - version "1.4.1" - resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.4.1.tgz#37ffb10e71adaf3748d05f713b4c9452f402cbc4" - integrity sha512-wqdhLpfCUbEsoEwl3FXwGyv8ief1k/1aUdIPCqVnupM6e8l63BEJdiF/0swtn04/8p05tG/T0FrpTlfwvljOdw== - -object-keys@^1.0.12, object-keys@^1.0.6, object-keys@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" - integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== - -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha1-95xEk68MU3e1n+OdOV5BBC3QRbs= - dependencies: - isobject "^3.0.0" - -object.assign@^4.1.0, object.assign@^4.1.1, object.assign@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.2.tgz#0ed54a342eceb37b38ff76eb831a0e788cb63940" - integrity sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ== - dependencies: - call-bind "^1.0.0" - define-properties "^1.1.3" - has-symbols "^1.0.1" - object-keys "^1.1.1" - -object.getownpropertydescriptors@^2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.2.tgz#1bd63aeacf0d5d2d2f31b5e393b03a7c601a23f7" - integrity sha512-WtxeKSzfBjlzL+F9b7M7hewDzMwy+C8NRssHd1YrNlzHzIDrXcXiNOMrezdAEM4UXixgV+vvnyBeN7Rygl2ttQ== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c= - dependencies: - isobject "^3.0.1" - -object.values@^1.1.0: - version "1.1.3" - resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.3.tgz#eaa8b1e17589f02f698db093f7c62ee1699742ee" - integrity sha512-nkF6PfDB9alkOUxpf1HNm/QlkeW3SReqL5WXeBLpEJJnlPSvRaDQpW3gQTksTN3fgJX4hL42RzKyOin6ff3tyw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - es-abstract "^1.18.0-next.2" - has "^1.0.3" - -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha1-IPEzZIGwg811M3mSoWlxqi2QaUc= - dependencies: - ee-first "1.1.1" - -once@^1.3.0, once@^1.3.1, once@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" - integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E= - dependencies: - wrappy "1" - -onetime@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/onetime/-/onetime-2.0.1.tgz#067428230fd67443b2794b22bba528b6867962d4" - integrity sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ= - dependencies: - mimic-fn "^1.0.0" - -opener@^1.5.1: - version "1.5.2" - resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" - integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== - -opn@^5.1.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.5.0.tgz#fc7164fab56d235904c51c3b27da6758ca3b9bfc" - integrity sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA== - dependencies: - is-wsl "^1.1.0" - -optionator@^0.8.1: - version "0.8.3" - resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" - integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== - dependencies: - deep-is "~0.1.3" - fast-levenshtein "~2.0.6" - levn "~0.3.0" - prelude-ls "~1.1.2" - type-check "~0.3.2" - word-wrap "~1.2.3" - -ora@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/ora/-/ora-2.1.0.tgz#6caf2830eb924941861ec53a173799e008b51e5b" - integrity sha512-hNNlAd3gfv/iPmsNxYoAPLvxg7HuPozww7fFonMZvL84tP6Ox5igfk5j/+a9rtJJwqMgKK+JgWsAQik5o0HTLA== - dependencies: - chalk "^2.3.1" - cli-cursor "^2.1.0" - cli-spinners "^1.1.0" - log-symbols "^2.2.0" - strip-ansi "^4.0.0" - wcwidth "^1.0.1" - -os-browserify@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" - integrity sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc= - -p-cancelable@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-1.1.0.tgz#d078d15a3af409220c886f1d9a0ca2e441ab26cc" - integrity sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw== - -package-json@^6.3.0: - version "6.5.0" - resolved "https://registry.yarnpkg.com/package-json/-/package-json-6.5.0.tgz#6feedaca35e75725876d0b0e64974697fed145b0" - integrity sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ== - dependencies: - got "^9.6.0" - registry-auth-token "^4.0.0" - registry-url "^5.0.0" - semver "^6.2.0" - -pako@^0.2.5: - version "0.2.9" - resolved "https://registry.yarnpkg.com/pako/-/pako-0.2.9.tgz#f3f7522f4ef782348da8161bad9ecfd51bf83a75" - integrity sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU= - -pako@~1.0.5: - version "1.0.11" - resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.11.tgz#6c9599d340d54dfd3946380252a35705a6b992bf" - integrity sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw== - -parcel@^1.12.4: - version "1.12.4" - resolved "https://registry.yarnpkg.com/parcel/-/parcel-1.12.4.tgz#c8136085179c6382e632ca98126093e110be2ac5" - integrity sha512-qfc74e2/R4pCoU6L/ZZnK9k3iDS6ir4uHea0e9th9w52eehcAGf2ido/iABq9PBXdsIOe4NSY3oUm7Khe7+S3w== - dependencies: - "@babel/code-frame" "^7.0.0" - "@babel/core" "^7.4.4" - "@babel/generator" "^7.4.4" - "@babel/parser" "^7.4.4" - "@babel/plugin-transform-flow-strip-types" "^7.4.4" - "@babel/plugin-transform-modules-commonjs" "^7.4.4" - "@babel/plugin-transform-react-jsx" "^7.0.0" - "@babel/preset-env" "^7.4.4" - "@babel/runtime" "^7.4.4" - "@babel/template" "^7.4.4" - "@babel/traverse" "^7.4.4" - "@babel/types" "^7.4.4" - "@iarna/toml" "^2.2.0" - "@parcel/fs" "^1.11.0" - "@parcel/logger" "^1.11.1" - "@parcel/utils" "^1.11.0" - "@parcel/watcher" "^1.12.1" - "@parcel/workers" "^1.11.0" - ansi-to-html "^0.6.4" - babylon-walk "^1.0.2" - browserslist "^4.1.0" - chalk "^2.1.0" - clone "^2.1.1" - command-exists "^1.2.6" - commander "^2.11.0" - core-js "^2.6.5" - cross-spawn "^6.0.4" - css-modules-loader-core "^1.1.0" - cssnano "^4.0.0" - deasync "^0.1.14" - dotenv "^5.0.0" - dotenv-expand "^5.1.0" - envinfo "^7.3.1" - fast-glob "^2.2.2" - filesize "^3.6.0" - get-port "^3.2.0" - htmlnano "^0.2.2" - is-glob "^4.0.0" - is-url "^1.2.2" - js-yaml "^3.10.0" - json5 "^1.0.1" - micromatch "^3.0.4" - mkdirp "^0.5.1" - node-forge "^0.7.1" - node-libs-browser "^2.0.0" - opn "^5.1.0" - postcss "^7.0.11" - postcss-value-parser "^3.3.1" - posthtml "^0.11.2" - posthtml-parser "^0.4.0" - posthtml-render "^1.1.3" - resolve "^1.4.0" - semver "^5.4.1" - serialize-to-js "^3.0.0" - serve-static "^1.12.4" - source-map "0.6.1" - terser "^3.7.3" - v8-compile-cache "^2.0.0" - ws "^5.1.1" - -parse-asn1@^5.0.0, parse-asn1@^5.1.5: - version "5.1.6" - resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.6.tgz#385080a3ec13cb62a62d39409cb3e88844cdaed4" - integrity sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw== - dependencies: - asn1.js "^5.2.0" - browserify-aes "^1.0.0" - evp_bytestokey "^1.0.0" - pbkdf2 "^3.0.3" - safe-buffer "^5.1.1" - -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA= - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - -parse5@5.1.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/parse5/-/parse5-5.1.0.tgz#c59341c9723f414c452975564c7c00a68d58acd2" - integrity sha512-fxNG2sQjHvlVAYmzBZS9YlDp6PTSSDwa98vkD4QgVDDCAo84z5X1t5XyJQ62ImdLXx5NdIIfihey6xpum9/gRQ== - -parseurl@~1.3.3: - version "1.3.3" - resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.3.tgz#9da19e7bee8d12dff0513ed5b76957793bc2e8d4" - integrity sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ== - -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ= - -path-browserify@0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.1.tgz#e6c4ddd7ed3aa27c68a20cc4e50e1a4ee83bbc4a" - integrity sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ== - -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA= - -path-is-absolute@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" - integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= - -path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A= - -path-parse@^1.0.6: - version "1.0.6" - resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c" - integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw== - -pbkdf2@^3.0.3: - version "3.1.1" - resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.1.tgz#cb8724b0fada984596856d1a6ebafd3584654b94" - integrity sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg== - dependencies: - create-hash "^1.1.2" - create-hmac "^1.1.4" - ripemd160 "^2.0.1" - safe-buffer "^5.0.1" - sha.js "^2.4.8" - -pend@~1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50" - integrity sha1-elfrVQpng/kRUzH89GY9XI4AelA= - -performance-now@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" - integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= - -physical-cpu-count@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/physical-cpu-count/-/physical-cpu-count-2.0.0.tgz#18de2f97e4bf7a9551ad7511942b5496f7aba660" - integrity sha1-GN4vl+S/epVRrXURlCtUlverpmA= - -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY= - -pn@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/pn/-/pn-1.1.0.tgz#e2f4cef0e219f463c179ab37463e4e1ecdccbafb" - integrity sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA== - -portfinder@^1.0.25: - version "1.0.28" - resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778" - integrity sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA== - dependencies: - async "^2.6.2" - debug "^3.1.1" - mkdirp "^0.5.5" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha1-AerA/jta9xoqbAL+q7jB/vfgDqs= - -postcss-calc@^7.0.1: - version "7.0.5" - resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-7.0.5.tgz#f8a6e99f12e619c2ebc23cf6c486fdc15860933e" - integrity sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg== - dependencies: - postcss "^7.0.27" - postcss-selector-parser "^6.0.2" - postcss-value-parser "^4.0.2" - -postcss-colormin@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-4.0.3.tgz#ae060bce93ed794ac71264f08132d550956bd381" - integrity sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw== - dependencies: - browserslist "^4.0.0" - color "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-convert-values@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz#ca3813ed4da0f812f9d43703584e449ebe189a7f" - integrity sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-discard-comments@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz#1fbabd2c246bff6aaad7997b2b0918f4d7af4033" - integrity sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg== - dependencies: - postcss "^7.0.0" - -postcss-discard-duplicates@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz#3fe133cd3c82282e550fc9b239176a9207b784eb" - integrity sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ== - dependencies: - postcss "^7.0.0" - -postcss-discard-empty@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz#c8c951e9f73ed9428019458444a02ad90bb9f765" - integrity sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w== - dependencies: - postcss "^7.0.0" - -postcss-discard-overridden@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz#652aef8a96726f029f5e3e00146ee7a4e755ff57" - integrity sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg== - dependencies: - postcss "^7.0.0" - -postcss-merge-longhand@^4.0.11: - version "4.0.11" - resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz#62f49a13e4a0ee04e7b98f42bb16062ca2549e24" - integrity sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw== - dependencies: - css-color-names "0.0.4" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - stylehacks "^4.0.0" - -postcss-merge-rules@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz#362bea4ff5a1f98e4075a713c6cb25aefef9a650" - integrity sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - cssnano-util-same-parent "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - vendors "^1.0.0" - -postcss-minify-font-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz#cd4c344cce474343fac5d82206ab2cbcb8afd5a6" - integrity sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-gradients@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz#93b29c2ff5099c535eecda56c4aa6e665a663471" - integrity sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - is-color-stop "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-minify-params@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz#6b9cef030c11e35261f95f618c90036d680db874" - integrity sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg== - dependencies: - alphanum-sort "^1.0.0" - browserslist "^4.0.0" - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - uniqs "^2.0.0" - -postcss-minify-selectors@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz#e2e5eb40bfee500d0cd9243500f5f8ea4262fbd8" - integrity sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g== - dependencies: - alphanum-sort "^1.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -postcss-modules-extract-imports@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.1.0.tgz#b614c9720be6816eaee35fb3a5faa1dba6a05ddb" - integrity sha1-thTJcgvmgW6u41+zpfqh26agXds= - dependencies: - postcss "^6.0.1" - -postcss-modules-local-by-default@1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" - integrity sha1-99gMOYxaOT+nlkRmvRlQCn1hwGk= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-scope@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" - integrity sha1-1upkmUx5+XtipytCb75gVqGUu5A= - dependencies: - css-selector-tokenizer "^0.7.0" - postcss "^6.0.1" - -postcss-modules-values@1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" - integrity sha1-7P+p1+GSUYOJ9CrQ6D9yrsRW6iA= - dependencies: - icss-replace-symbols "^1.1.0" - postcss "^6.0.1" - -postcss-normalize-charset@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz#8b35add3aee83a136b0471e0d59be58a50285dd4" - integrity sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g== - dependencies: - postcss "^7.0.0" - -postcss-normalize-display-values@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz#0dbe04a4ce9063d4667ed2be476bb830c825935a" - integrity sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-positions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz#05f757f84f260437378368a91f8932d4b102917f" - integrity sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA== - dependencies: - cssnano-util-get-arguments "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-repeat-style@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz#c4ebbc289f3991a028d44751cbdd11918b17910c" - integrity sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q== - dependencies: - cssnano-util-get-arguments "^4.0.0" - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-string@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz#cd44c40ab07a0c7a36dc5e99aace1eca4ec2690c" - integrity sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA== - dependencies: - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-timing-functions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz#8e009ca2a3949cdaf8ad23e6b6ab99cb5e7d28d9" - integrity sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A== - dependencies: - cssnano-util-get-match "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-unicode@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz#841bd48fdcf3019ad4baa7493a3d363b52ae1cfb" - integrity sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-url@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz#10e437f86bc7c7e58f7b9652ed878daaa95faae1" - integrity sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA== - dependencies: - is-absolute-url "^2.0.0" - normalize-url "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-normalize-whitespace@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz#bf1d4070fe4fcea87d1348e825d8cc0c5faa7d82" - integrity sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA== - dependencies: - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-ordered-values@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz#0cf75c820ec7d5c4d280189559e0b571ebac0eee" - integrity sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw== - dependencies: - cssnano-util-get-arguments "^4.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-reduce-initial@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz#7fd42ebea5e9c814609639e2c2e84ae270ba48df" - integrity sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA== - dependencies: - browserslist "^4.0.0" - caniuse-api "^3.0.0" - has "^1.0.0" - postcss "^7.0.0" - -postcss-reduce-transforms@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz#17efa405eacc6e07be3414a5ca2d1074681d4e29" - integrity sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg== - dependencies: - cssnano-util-get-match "^4.0.0" - has "^1.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - -postcss-selector-parser@6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c" - integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^3.0.0: - version "3.1.2" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz#b310f5c4c0fdaf76f94902bbaa30db6aa84f5270" - integrity sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA== - dependencies: - dot-prop "^5.2.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - -postcss-selector-parser@^6.0.2: - version "6.0.4" - resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3" - integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw== - dependencies: - cssesc "^3.0.0" - indexes-of "^1.0.1" - uniq "^1.0.1" - util-deprecate "^1.0.2" - -postcss-svgo@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.2.tgz#17b997bc711b333bab143aaed3b8d3d6e3d38258" - integrity sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw== - dependencies: - is-svg "^3.0.0" - postcss "^7.0.0" - postcss-value-parser "^3.0.0" - svgo "^1.0.0" - -postcss-unique-selectors@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz#9446911f3289bfd64c6d680f073c03b1f9ee4bac" - integrity sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg== - dependencies: - alphanum-sort "^1.0.0" - postcss "^7.0.0" - uniqs "^2.0.0" - -postcss-value-parser@^3.0.0, postcss-value-parser@^3.3.1: - version "3.3.1" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281" - integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ== - -postcss-value-parser@^4.0.2: - version "4.1.0" - resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb" - integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ== - -postcss@6.0.1: - version "6.0.1" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.1.tgz#000dbd1f8eef217aa368b9a212c5fc40b2a8f3f2" - integrity sha1-AA29H47vIXqjaLmiEsX8QLKo8/I= - dependencies: - chalk "^1.1.3" - source-map "^0.5.6" - supports-color "^3.2.3" - -postcss@7.0.32: - version "7.0.32" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.32.tgz#4310d6ee347053da3433db2be492883d62cec59d" - integrity sha512-03eXong5NLnNCD05xscnGKGDZ98CyzoqPSMjOe6SuoQY7Z2hIj0Ld1g/O/UQRuOle2aRtiIRDg9tDcTGAkLfKw== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -postcss@^6.0.1: - version "6.0.23" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.23.tgz#61c82cc328ac60e677645f979054eb98bc0e3324" - integrity sha512-soOk1h6J3VMTZtVeVpv15/Hpdl2cBLX3CAw4TAbkpTJiNPk9YP/zWcD1ND+xEtvyuuvKzbxliTOIyvkSeSJ6ag== - dependencies: - chalk "^2.4.1" - source-map "^0.6.1" - supports-color "^5.4.0" - -postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.11, postcss@^7.0.17, postcss@^7.0.27: - version "7.0.35" - resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.35.tgz#d2be00b998f7f211d8a276974079f2e92b970e24" - integrity sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg== - dependencies: - chalk "^2.4.2" - source-map "^0.6.1" - supports-color "^6.1.0" - -posthtml-parser@^0.4.0, posthtml-parser@^0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.4.2.tgz#a132bbdf0cd4bc199d34f322f5c1599385d7c6c1" - integrity sha512-BUIorsYJTvS9UhXxPTzupIztOMVNPa/HtAm9KHni9z6qEfiJ1bpOBL5DfUOL9XAc3XkLIEzBzpph+Zbm4AdRAg== - dependencies: - htmlparser2 "^3.9.2" - -posthtml-parser@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/posthtml-parser/-/posthtml-parser-0.5.3.tgz#e95b92e57d98da50b443e116fcee39466cd9012e" - integrity sha512-uHosRn0y+1wbnlYKrqMjBPoo/kK5LPYImLtiETszNFYfFwAD3cQdD1R2E13Mh5icBxkHj+yKtlIHozCsmVWD/Q== - dependencies: - htmlparser2 "^3.9.2" - -posthtml-render@^1.1.3, posthtml-render@^1.1.5, posthtml-render@^1.2.3, posthtml-render@^1.3.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/posthtml-render/-/posthtml-render-1.4.0.tgz#40114070c45881cacb93347dae3eff53afbcff13" - integrity sha512-W1779iVHGfq0Fvh2PROhCe2QhB8mEErgqzo1wpIt36tCgChafP+hbXIhLDOM8ePJrZcFs0vkNEtdibEWVqChqw== - -posthtml@^0.11.2: - version "0.11.6" - resolved "https://registry.yarnpkg.com/posthtml/-/posthtml-0.11.6.tgz#e349d51af7929d0683b9d8c3abd8166beecc90a8" - integrity sha512-C2hrAPzmRdpuL3iH0TDdQ6XCc9M7Dcc3zEW5BLerY65G4tWWszwv6nG/ksi6ul5i2mx22ubdljgktXCtNkydkw== - dependencies: - posthtml-parser "^0.4.1" - posthtml-render "^1.1.5" - -posthtml@^0.13.4: - version "0.13.4" - resolved "https://registry.yarnpkg.com/posthtml/-/posthtml-0.13.4.tgz#ad81b3fa62b85f81ccdb5710f4ec375a4ed94934" - integrity sha512-i2oTo/+dwXGC6zaAQSF6WZEQSbEqu10hsvg01DWzGAfZmy31Iiy9ktPh9nnXDfZiYytjxTIvxoK4TI0uk4QWpw== - dependencies: - posthtml-parser "^0.5.0" - posthtml-render "^1.2.3" - -prelude-ls@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54" - integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ= - -prepend-http@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-2.0.0.tgz#e92434bfa5ea8c19f41cdfd401d741a3c819d897" - integrity sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc= - -process-nextick-args@~2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" - integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== - -process@^0.11.10: - version "0.11.10" - resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" - integrity sha1-czIwDoQBYb2j5podHZGn1LwW8YI= - -progress@^2.0.3: - version "2.0.3" - resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" - integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== - -proto-list@~1.2.1: - version "1.2.4" - resolved "https://registry.yarnpkg.com/proto-list/-/proto-list-1.2.4.tgz#212d5bfe1318306a420f6402b8e26ff39647a849" - integrity sha1-IS1b/hMYMGpCD2QCuOJv85ZHqEk= - -psl@^1.1.28: - version "1.8.0" - resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" - integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== - -public-encrypt@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.3.tgz#4fcc9d77a07e48ba7527e7cbe0de33d0701331e0" - integrity sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q== - dependencies: - bn.js "^4.1.0" - browserify-rsa "^4.0.0" - create-hash "^1.1.0" - parse-asn1 "^5.0.0" - randombytes "^2.0.1" - safe-buffer "^5.1.2" - -pump@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64" - integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww== - dependencies: - end-of-stream "^1.1.0" - once "^1.3.1" - -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - integrity sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0= - -punycode@^1.2.4: - version "1.4.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" - integrity sha1-wNWmOycYgArY4esPpSachN1BhF4= - -punycode@^2.1.0, punycode@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec" - integrity sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A== - -pupa@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/pupa/-/pupa-2.1.1.tgz#f5e8fd4afc2c5d97828faa523549ed8744a20d62" - integrity sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A== - dependencies: - escape-goat "^2.0.0" - -purgecss@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/purgecss/-/purgecss-2.3.0.tgz#5327587abf5795e6541517af8b190a6fb5488bb3" - integrity sha512-BE5CROfVGsx2XIhxGuZAT7rTH9lLeQx/6M0P7DTXQH4IUc3BBzs9JUzt4yzGf3JrH9enkeq6YJBe9CTtkm1WmQ== - dependencies: - commander "^5.0.0" - glob "^7.0.0" - postcss "7.0.32" - postcss-selector-parser "^6.0.2" - -q@^1.1.2: - version "1.5.1" - resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" - integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc= - -qs@^6.4.0: - version "6.9.6" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.6.tgz#26ed3c8243a431b2924aca84cc90471f35d5a0ee" - integrity sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ== - -qs@~6.5.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" - integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== - -querystring-es3@^0.2.0: - version "0.2.1" - resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" - integrity sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM= - -querystring@0.2.0: - version "0.2.0" - resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" - integrity sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA= - -quote-stream@^1.0.1, quote-stream@~1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/quote-stream/-/quote-stream-1.0.2.tgz#84963f8c9c26b942e153feeb53aae74652b7e0b2" - integrity sha1-hJY/jJwmuULhU/7rU6rnRlK34LI= - dependencies: - buffer-equal "0.0.1" - minimist "^1.1.3" - through2 "^2.0.0" - -randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: - version "2.1.0" - resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" - integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== - dependencies: - safe-buffer "^5.1.0" - -randomfill@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" - integrity sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw== - dependencies: - randombytes "^2.0.5" - safe-buffer "^5.1.0" - -range-parser@~1.2.1: - version "1.2.1" - resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" - integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== - -rc@^1.2.8: - version "1.2.8" - resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.8.tgz#cd924bf5200a075b83c188cd6b9e211b7fc0d3ed" - integrity sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw== - dependencies: - deep-extend "^0.6.0" - ini "~1.3.0" - minimist "^1.2.0" - strip-json-comments "~2.0.1" - -read-config-file@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/read-config-file/-/read-config-file-6.0.0.tgz#224b5dca6a5bdc1fb19e63f89f342680efdb9299" - integrity sha512-PHjROSdpceKUmqS06wqwP92VrM46PZSTubmNIMJ5DrMwg1OgenSTSEHIkCa6TiOJ+y/J0xnG1fFwG3M+Oi1aNA== - dependencies: - dotenv "^8.2.0" - dotenv-expand "^5.1.0" - js-yaml "^3.13.1" - json5 "^2.1.2" - lazy-val "^1.0.4" - -readable-stream@^2.0.2, readable-stream@^2.2.2, readable-stream@^2.3.3, readable-stream@^2.3.6, readable-stream@~2.3.3, readable-stream@~2.3.6: - version "2.3.7" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57" - integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw== - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.3" - isarray "~1.0.0" - process-nextick-args "~2.0.0" - safe-buffer "~5.1.1" - string_decoder "~1.1.1" - util-deprecate "~1.0.1" - -readable-stream@^3.1.1, readable-stream@^3.6.0: - version "3.6.0" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.0.tgz#337bbda3adc0706bd3e024426a286d4b4b2c9198" - integrity sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA== - dependencies: - inherits "^2.0.3" - string_decoder "^1.1.1" - util-deprecate "^1.0.1" - -readdirp@^2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525" - integrity sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ== - dependencies: - graceful-fs "^4.1.11" - micromatch "^3.1.10" - readable-stream "^2.0.2" - -regenerate-unicode-properties@^8.2.0: - version "8.2.0" - resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec" - integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA== - dependencies: - regenerate "^1.4.0" - -regenerate@^1.4.0: - version "1.4.2" - resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" - integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== - -regenerator-runtime@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" - integrity sha512-MguG95oij0fC3QV3URf4V2SDYGJhJnJGqvIIgdECeODCT98wSWDAJ94SSuVpYQUoTcGUIL6L4yNB7j1DFFHSBg== - -regenerator-runtime@^0.13.4: - version "0.13.7" - resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz#cac2dacc8a1ea675feaabaeb8ae833898ae46f55" - integrity sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew== - -regenerator-transform@^0.14.2: - version "0.14.5" - resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.14.5.tgz#c98da154683671c9c4dcb16ece736517e1b7feb4" - integrity sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw== - dependencies: - "@babel/runtime" "^7.8.4" - -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - -regexpu-core@^4.7.1: - version "4.7.1" - resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6" - integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ== - dependencies: - regenerate "^1.4.0" - regenerate-unicode-properties "^8.2.0" - regjsgen "^0.5.1" - regjsparser "^0.6.4" - unicode-match-property-ecmascript "^1.0.4" - unicode-match-property-value-ecmascript "^1.2.0" - -registry-auth-token@^4.0.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/registry-auth-token/-/registry-auth-token-4.2.1.tgz#6d7b4006441918972ccd5fedcd41dc322c79b250" - integrity sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw== - dependencies: - rc "^1.2.8" - -registry-url@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/registry-url/-/registry-url-5.1.0.tgz#e98334b50d5434b81136b44ec638d9c2009c5009" - integrity sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw== - dependencies: - rc "^1.2.8" - -regjsgen@^0.5.1: - version "0.5.2" - resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733" - integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A== - -regjsparser@^0.6.4: - version "0.6.7" - resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.7.tgz#c00164e1e6713c2e3ee641f1701c4b7aa0a7f86c" - integrity sha512-ib77G0uxsA2ovgiYbCVGx4Pv3PSttAx2vIwidqQzbL2U5S4Q+j00HdSAneSBuyVcMvEnTXMjiGgB+DlXozVhpQ== - dependencies: - jsesc "~0.5.0" - -relateurl@^0.2.7: - version "0.2.7" - resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" - integrity sha1-VNvzd+UUQKypCkzSdGANP/LYiKk= - -remove-trailing-separator@^1.0.1: - version "1.1.0" - resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" - integrity sha1-wkvOKig62tW8P1jg1IJJuSN52O8= - -repeat-element@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.3.tgz#782e0d825c0c5a3bb39731f84efee6b742e6b1ce" - integrity sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g== - -repeat-string@^1.6.1: - version "1.6.1" - resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" - integrity sha1-jcrkcOHIirwtYA//Sndihtp15jc= - -request-promise-core@1.1.4: - version "1.1.4" - resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" - integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== - dependencies: - lodash "^4.17.19" - -request-promise-native@^1.0.5: - version "1.0.9" - resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" - integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== - dependencies: - request-promise-core "1.1.4" - stealthy-require "^1.1.1" - tough-cookie "^2.3.3" - -request@^2.88.0: - version "2.88.2" - resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" - integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== - dependencies: - aws-sign2 "~0.7.0" - aws4 "^1.8.0" - caseless "~0.12.0" - combined-stream "~1.0.6" - extend "~3.0.2" - forever-agent "~0.6.1" - form-data "~2.3.2" - har-validator "~5.1.3" - http-signature "~1.2.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.19" - oauth-sign "~0.9.0" - performance-now "^2.1.0" - qs "~6.5.2" - safe-buffer "^5.1.2" - tough-cookie "~2.5.0" - tunnel-agent "^0.6.0" - uuid "^3.3.2" - -require-directory@^2.1.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" - integrity sha1-jGStX9MNqxyXbiNE/+f3kqam30I= - -requires-port@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" - integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8= - -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha1-six699nWiBvItuZTM17rywoYh0g= - -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo= - -resolve@^1.1.5, resolve@^1.10.0, resolve@^1.14.2, resolve@^1.4.0: - version "1.20.0" - resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.20.0.tgz#629a013fb3f70755d6f0b7935cc1c2c5378b1975" - integrity sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A== - dependencies: - is-core-module "^2.2.0" - path-parse "^1.0.6" - -responselike@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/responselike/-/responselike-1.0.2.tgz#918720ef3b631c5642be068f15ade5a46f4ba1e7" - integrity sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec= - dependencies: - lowercase-keys "^1.0.0" - -restore-cursor@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/restore-cursor/-/restore-cursor-2.0.0.tgz#9f7ee287f82fd326d4fd162923d62129eee0dfaf" - integrity sha1-n37ih/gv0ybU/RYpI9YhKe7g368= - dependencies: - onetime "^2.0.0" - signal-exit "^3.0.2" - -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - -rgb-regex@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/rgb-regex/-/rgb-regex-1.0.1.tgz#c0e0d6882df0e23be254a475e8edd41915feaeb1" - integrity sha1-wODWiC3w4jviVKR16O3UGRX+rrE= - -rgba-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/rgba-regex/-/rgba-regex-1.0.0.tgz#43374e2e2ca0968b0ef1523460b7d730ff22eeb3" - integrity sha1-QzdOLiyglosO8VI0YLfXMP8i7rM= - -rimraf@^2.6.2: - version "2.7.1" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" - integrity sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w== - dependencies: - glob "^7.1.3" - -ripemd160@^2.0.0, ripemd160@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" - integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== - dependencies: - hash-base "^3.0.0" - inherits "^2.0.1" - -roarr@^2.15.3: - version "2.15.4" - resolved "https://registry.yarnpkg.com/roarr/-/roarr-2.15.4.tgz#f5fe795b7b838ccfe35dc608e0282b9eba2e7afd" - integrity sha512-CHhPh+UNHD2GTXNYhPWLnU8ONHdI+5DI+4EYIAOaiD63rHeYlZvyh8P+in5999TTSFgUYuKUAjzRI4mdh/p+2A== - dependencies: - boolean "^3.0.1" - detect-node "^2.0.4" - globalthis "^1.0.1" - json-stringify-safe "^5.0.1" - semver-compare "^1.0.0" - sprintf-js "^1.1.2" - -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: - version "5.2.1" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" - integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== - -safe-buffer@~5.1.0, safe-buffer@~5.1.1: - version "5.1.2" - resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" - integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== - -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha1-QKNmnzsHfR6UPURinhV91IAjvy4= - dependencies: - ret "~0.1.10" - -"safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: - version "2.1.2" - resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" - integrity sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg== - -sanitize-filename@^1.6.3: - version "1.6.3" - resolved "https://registry.yarnpkg.com/sanitize-filename/-/sanitize-filename-1.6.3.tgz#755ebd752045931977e30b2025d340d7c9090378" - integrity sha512-y/52Mcy7aw3gRm7IrcGDFx/bCk4AhRh2eI9luHOQM86nZsqwiRkkq2GekHXBBD+SmPidc8i2PqtYZl+pWJ8Oeg== - dependencies: - truncate-utf8-bytes "^1.0.0" - -sax@^1.2.4, sax@~1.2.4: - version "1.2.4" - resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" - integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw== - -saxes@^3.1.9: - version "3.1.11" - resolved "https://registry.yarnpkg.com/saxes/-/saxes-3.1.11.tgz#d59d1fd332ec92ad98a2e0b2ee644702384b1c5b" - integrity sha512-Ydydq3zC+WYDJK1+gRxRapLIED9PWeSuuS41wqyoRmzvhhh9nc+QQrVMKJYzJFULazeGhzSV0QleN2wD3boh2g== - dependencies: - xmlchars "^2.1.1" - -secure-compare@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/secure-compare/-/secure-compare-3.0.1.tgz#f1a0329b308b221fae37b9974f3d578d0ca999e3" - integrity sha1-8aAymzCLIh+uN7mXTz1XjQypmeM= - -semver-compare@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/semver-compare/-/semver-compare-1.0.0.tgz#0dee216a1c941ab37e9efb1788f6afc5ff5537fc" - integrity sha1-De4hahyUGrN+nvsXiPavxf9VN/w= - -semver-diff@^3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/semver-diff/-/semver-diff-3.1.1.tgz#05f77ce59f325e00e2706afd67bb506ddb1ca32b" - integrity sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg== - dependencies: - semver "^6.3.0" - -"semver@2 || 3 || 4 || 5", semver@^5.4.1, semver@^5.5.0: - version "5.7.1" - resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7" - integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ== - -semver@7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" - integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== - -semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.2.0, semver@^6.3.0: - version "6.3.0" - resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d" - integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw== - -semver@^7.3.2: - version "7.3.4" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.4.tgz#27aaa7d2e4ca76452f98d3add093a72c943edc97" - integrity sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw== - dependencies: - lru-cache "^6.0.0" - -send@0.17.1: - version "0.17.1" - resolved "https://registry.yarnpkg.com/send/-/send-0.17.1.tgz#c1d8b059f7900f7466dd4938bdc44e11ddb376c8" - integrity sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.7.2" - mime "1.6.0" - ms "2.1.1" - on-finished "~2.3.0" - range-parser "~1.2.1" - statuses "~1.5.0" - -serialize-error@^7.0.1: - version "7.0.1" - resolved "https://registry.yarnpkg.com/serialize-error/-/serialize-error-7.0.1.tgz#f1360b0447f61ffb483ec4157c737fab7d778e18" - integrity sha512-8I8TjW5KMOKsZQTvoxjuSIa7foAwPWGOts+6o7sgjz41/qMD9VQHEDxi6PBvK2l0MXUmqZyNpUK+T2tQaaElvw== - dependencies: - type-fest "^0.13.1" - -serialize-to-js@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/serialize-to-js/-/serialize-to-js-3.1.1.tgz#b3e77d0568ee4a60bfe66287f991e104d3a1a4ac" - integrity sha512-F+NGU0UHMBO4Q965tjw7rvieNVjlH6Lqi2emq/Lc9LUURYJbiCzmpi4Cy1OOjjVPtxu0c+NE85LU6968Wko5ZA== - -serve-static@^1.12.4: - version "1.14.1" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.14.1.tgz#666e636dc4f010f7ef29970a88a674320898b2f9" - integrity sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.3" - send "0.17.1" - -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - -setimmediate@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" - integrity sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU= - -setprototypeof@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.1.tgz#7e95acb24aa92f5885e0abef5ba131330d4ae683" - integrity sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw== - -sha.js@^2.4.0, sha.js@^2.4.8: - version "2.4.11" - resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" - integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== - dependencies: - inherits "^2.0.1" - safe-buffer "^5.0.1" - -shallow-copy@~0.0.1: - version "0.0.1" - resolved "https://registry.yarnpkg.com/shallow-copy/-/shallow-copy-0.0.1.tgz#415f42702d73d810330292cc5ee86eae1a11a170" - integrity sha1-QV9CcC1z2BAzApLMXuhurhoRoXA= - -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo= - dependencies: - shebang-regex "^1.0.0" - -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM= - -signal-exit@^3.0.2: - version "3.0.3" - resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" - integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== - -simple-swizzle@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz#a4da6b635ffcccca33f70d17cb92592de95e557a" - integrity sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo= - dependencies: - is-arrayish "^0.3.1" - -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - -source-map-support@^0.5.19, source-map-support@~0.5.10, source-map-support@~0.5.12: - version "0.5.19" - resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61" - integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw== - dependencies: - buffer-from "^1.0.0" - source-map "^0.6.0" - -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - -source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1: - version "0.6.1" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" - integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== - -source-map@^0.5.0, source-map@^0.5.6: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - integrity sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w= - -spdx-correct@^3.0.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9" - integrity sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w== - dependencies: - spdx-expression-parse "^3.0.0" - spdx-license-ids "^3.0.0" - -spdx-exceptions@^2.1.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz#3f28ce1a77a00372683eade4a433183527a2163d" - integrity sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A== - -spdx-expression-parse@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz#cf70f50482eefdc98e3ce0a6833e4a53ceeba679" - integrity sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q== - dependencies: - spdx-exceptions "^2.1.0" - spdx-license-ids "^3.0.0" - -spdx-license-ids@^3.0.0: - version "3.0.7" - resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz#e9c18a410e5ed7e12442a549fbd8afa767038d65" - integrity sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ== - -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - -sprintf-js@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.2.tgz#da1765262bf8c0f571749f2ad6c26300207ae673" - integrity sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug== - -sprintf-js@~1.0.2: - version "1.0.3" - resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" - integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= - -srcset@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/srcset/-/srcset-3.0.0.tgz#8afd8b971362dfc129ae9c1a99b3897301ce6441" - integrity sha512-D59vF08Qzu/C4GAOXVgMTLfgryt5fyWo93FZyhEWANo0PokFz/iWdDe13mX3O5TRf6l8vMTqckAfR4zPiaH0yQ== - -sshpk@^1.7.0: - version "1.16.1" - resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" - integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== - dependencies: - asn1 "~0.2.3" - assert-plus "^1.0.0" - bcrypt-pbkdf "^1.0.0" - dashdash "^1.12.0" - ecc-jsbn "~0.1.1" - getpass "^0.1.1" - jsbn "~0.1.0" - safer-buffer "^2.0.2" - tweetnacl "~0.14.0" - -stable@^0.1.8: - version "0.1.8" - resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" - integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== - -stat-mode@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-1.0.0.tgz#68b55cb61ea639ff57136f36b216a291800d1465" - integrity sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg== - -static-eval@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.1.0.tgz#a16dbe54522d7fa5ef1389129d813fd47b148014" - integrity sha512-agtxZ/kWSsCkI5E4QifRwsaPs0P0JmZV6dkLz6ILYfFYQGn+5plctanRN+IC8dJRiFkyXHrwEE3W9Wmx67uDbw== - dependencies: - escodegen "^1.11.1" - -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY= - dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" - -static-module@^2.2.0: - version "2.2.5" - resolved "https://registry.yarnpkg.com/static-module/-/static-module-2.2.5.tgz#bd40abceae33da6b7afb84a0e4329ff8852bfbbf" - integrity sha512-D8vv82E/Kpmz3TXHKG8PPsCPg+RAX6cbCOyvjM6x04qZtQ47EtJFVwRsdov3n5d6/6ynrOY9XB4JkaZwB2xoRQ== - dependencies: - concat-stream "~1.6.0" - convert-source-map "^1.5.1" - duplexer2 "~0.1.4" - escodegen "~1.9.0" - falafel "^2.1.0" - has "^1.0.1" - magic-string "^0.22.4" - merge-source-map "1.0.4" - object-inspect "~1.4.0" - quote-stream "~1.0.2" - readable-stream "~2.3.3" - shallow-copy "~0.0.1" - static-eval "^2.0.0" - through2 "~2.0.3" - -"statuses@>= 1.5.0 < 2", statuses@~1.5.0: - version "1.5.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" - integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= - -stealthy-require@^1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" - integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= - -stream-browserify@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.2.tgz#87521d38a44aa7ee91ce1cd2a47df0cb49dd660b" - integrity sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg== - dependencies: - inherits "~2.0.1" - readable-stream "^2.0.2" - -stream-http@^2.7.2: - version "2.8.3" - resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.3.tgz#b2d242469288a5a27ec4fe8933acf623de6514fc" - integrity sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw== - dependencies: - builtin-status-codes "^3.0.0" - inherits "^2.0.1" - readable-stream "^2.3.6" - to-arraybuffer "^1.0.0" - xtend "^4.0.0" - -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - -string-width@^4.0.0, string-width@^4.1.0, string-width@^4.2.0: - version "4.2.1" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.1.tgz#1933ce1f470973d224368009bd1316cad81d5f4f" - integrity sha512-LL0OLyN6AnfV9xqGQpDBwedT2Rt63737LxvsRxbcwpa2aIeynBApG2Sm//F3TaLHIR1aJBN52DWklc06b94o5Q== - dependencies: - emoji-regex "^8.0.0" - is-fullwidth-code-point "^3.0.0" - strip-ansi "^6.0.0" - -string.prototype.trimend@^1.0.1, string.prototype.trimend@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimend/-/string.prototype.trimend-1.0.4.tgz#e75ae90c2942c63504686c18b287b4a0b1a45f80" - integrity sha512-y9xCjw1P23Awk8EvTpcyL2NIr1j7wJ39f+k6lvRnSMz+mz9CGz9NYPelDk42kOz6+ql8xjfK8oYzy3jAP5QU5A== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string.prototype.trimstart@^1.0.1, string.prototype.trimstart@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/string.prototype.trimstart/-/string.prototype.trimstart-1.0.4.tgz#b36399af4ab2999b4c9c648bd7a3fb2bb26feeed" - integrity sha512-jh6e984OBfvxS50tdY2nRZnoC5/mLFKOREQfw8t5yytkoUsJRNxvI/E39qu1sD0OtWI3OC0XgKSmcWwziwYuZw== - dependencies: - call-bind "^1.0.2" - define-properties "^1.1.3" - -string_decoder@^1.0.0, string_decoder@^1.1.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" - integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== - dependencies: - safe-buffer "~5.2.0" - -string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== - dependencies: - safe-buffer "~5.1.0" - -strip-ansi@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" - integrity sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8= - dependencies: - ansi-regex "^2.0.0" - -strip-ansi@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" - integrity sha1-qEeQIusaw2iocTibY1JixQXuNo8= - dependencies: - ansi-regex "^3.0.0" - -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - -strip-ansi@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532" - integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w== - dependencies: - ansi-regex "^5.0.0" - -strip-json-comments@~2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha1-PFMZQukIwml8DsNEhYwobHygpgo= - -stylehacks@^4.0.0: - version "4.0.3" - resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-4.0.3.tgz#6718fcaf4d1e07d8a1318690881e8d96726a71d5" - integrity sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g== - dependencies: - browserslist "^4.0.0" - postcss "^7.0.0" - postcss-selector-parser "^3.0.0" - -sumchecker@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/sumchecker/-/sumchecker-3.0.1.tgz#6377e996795abb0b6d348e9b3e1dfb24345a8e42" - integrity sha512-MvjXzkz/BOfyVDkG0oFOtBxHX2u3gKbMHIF/dXblZsgD3BWOFLmHovIpZY7BykJdAjcqRCBi1WYBNdEC9yI7vg== - dependencies: - debug "^4.1.0" - -supports-color@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" - integrity sha1-U10EXOa2Nj+kARcIRimZXp3zJMc= - -supports-color@^3.2.3: - version "3.2.3" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" - integrity sha1-ZawFBLOVQXHYpklGsq48u4pfVPY= - dependencies: - has-flag "^1.0.0" - -supports-color@^5.3.0, supports-color@^5.4.0: - version "5.5.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" - integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== - dependencies: - has-flag "^3.0.0" - -supports-color@^6.1.0: - version "6.1.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-6.1.0.tgz#0764abc69c63d5ac842dd4867e8d025e880df8f3" - integrity sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ== - dependencies: - has-flag "^3.0.0" - -supports-color@^7.1.0: - version "7.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" - integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== - dependencies: - has-flag "^4.0.0" - -svgo@^1.0.0, svgo@^1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/svgo/-/svgo-1.3.2.tgz#b6dc511c063346c9e415b81e43401145b96d4167" - integrity sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw== - dependencies: - chalk "^2.4.1" - coa "^2.0.2" - css-select "^2.0.0" - css-select-base-adapter "^0.1.1" - css-tree "1.0.0-alpha.37" - csso "^4.0.2" - js-yaml "^3.13.1" - mkdirp "~0.5.1" - object.values "^1.1.0" - sax "~1.2.4" - stable "^0.1.8" - unquote "~1.1.1" - util.promisify "~1.0.0" - -symbol-tree@^3.2.2: - version "3.2.4" - resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2" - integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw== - -temp-file@^3.3.7: - version "3.3.7" - resolved "https://registry.yarnpkg.com/temp-file/-/temp-file-3.3.7.tgz#686885d635f872748e384e871855958470aeb18a" - integrity sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g== - dependencies: - async-exit-hook "^2.0.1" - fs-extra "^8.1.0" - -term-size@^2.1.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/term-size/-/term-size-2.2.1.tgz#2a6a54840432c2fb6320fea0f415531e90189f54" - integrity sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg== - -terser@^3.7.3: - version "3.17.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-3.17.0.tgz#f88ffbeda0deb5637f9d24b0da66f4e15ab10cb2" - integrity sha512-/FQzzPJmCpjAH9Xvk2paiWrFq+5M6aVOf+2KRbwhByISDX/EujxsK+BAvrhb6H+2rtrLCHK9N01wO014vrIwVQ== - dependencies: - commander "^2.19.0" - source-map "~0.6.1" - source-map-support "~0.5.10" - -terser@^4.8.0: - version "4.8.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17" - integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw== - dependencies: - commander "^2.20.0" - source-map "~0.6.1" - source-map-support "~0.5.12" - -through2@^2.0.0, through2@~2.0.3: - version "2.0.5" - resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" - integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== - dependencies: - readable-stream "~2.3.6" - xtend "~4.0.1" - -timers-browserify@^2.0.4: - version "2.0.12" - resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.12.tgz#44a45c11fbf407f34f97bccd1577c652361b00ee" - integrity sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ== - dependencies: - setimmediate "^1.0.4" - -timsort@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/timsort/-/timsort-0.3.0.tgz#405411a8e7e6339fe64db9a234de11dc31e02bd4" - integrity sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q= - -tiny-inflate@^1.0.0: - version "1.0.3" - resolved "https://registry.yarnpkg.com/tiny-inflate/-/tiny-inflate-1.0.3.tgz#122715494913a1805166aaf7c93467933eea26c4" - integrity sha512-pkY1fj1cKHb2seWDy0B16HeWyczlJA9/WW3u3c4z/NiWDsO3DOU5D7nhTLE9CF0yXv/QZFY7sEJmj24dK+Rrqw== - -to-arraybuffer@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" - integrity sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M= - -to-fast-properties@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" - integrity sha1-uDVx+k2MJbguIxsG46MFXeTKGkc= - -to-fast-properties@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" - integrity sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4= - -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68= - dependencies: - kind-of "^3.0.2" - -to-readable-stream@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/to-readable-stream/-/to-readable-stream-1.0.0.tgz#ce0aa0c2f3df6adf852efb404a783e77c0475771" - integrity sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q== - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg= - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - -toidentifier@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.0.tgz#7e1be3470f1e77948bc43d94a3c8f4d7752ba553" - integrity sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw== - -tough-cookie@^2.3.3, tough-cookie@^2.5.0, tough-cookie@~2.5.0: - version "2.5.0" - resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" - integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== - dependencies: - psl "^1.1.28" - punycode "^2.1.1" - -tr46@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09" - integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk= - dependencies: - punycode "^2.1.0" - -truncate-utf8-bytes@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz#405923909592d56f78a5818434b0b78489ca5f2b" - integrity sha1-QFkjkJWS1W94pYGENLC3hInKXys= - dependencies: - utf8-byte-length "^1.0.1" - -tty-browserify@0.0.0: - version "0.0.0" - resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" - integrity sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY= - -tunnel-agent@^0.6.0: - version "0.6.0" - resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" - integrity sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0= - dependencies: - safe-buffer "^5.0.1" - -tunnel@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c" - integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg== - -tweetnacl@^0.14.3, tweetnacl@~0.14.0: - version "0.14.5" - resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" - integrity sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q= - -type-check@~0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/type-check/-/type-check-0.3.2.tgz#5884cab512cf1d355e3fb784f30804b2b520db72" - integrity sha1-WITKtRLPHTVeP7eE8wgEsrUg23I= - dependencies: - prelude-ls "~1.1.2" - -type-fest@^0.13.1: - version "0.13.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.13.1.tgz#0172cb5bce80b0bd542ea348db50c7e21834d934" - integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg== - -type-fest@^0.8.1: - version "0.8.1" - resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.8.1.tgz#09e249ebde851d3b1e48d27c105444667f17b83d" - integrity sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA== - -typedarray-to-buffer@^3.1.5: - version "3.1.5" - resolved "https://registry.yarnpkg.com/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz#a97ee7a9ff42691b9f783ff1bc5112fe3fca9080" - integrity sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q== - dependencies: - is-typedarray "^1.0.0" - -typedarray@^0.0.6: - version "0.0.6" - resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" - integrity sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c= - -uncss@^0.17.3: - version "0.17.3" - resolved "https://registry.yarnpkg.com/uncss/-/uncss-0.17.3.tgz#50fc1eb4ed573ffff763458d801cd86e4d69ea11" - integrity sha512-ksdDWl81YWvF/X14fOSw4iu8tESDHFIeyKIeDrK6GEVTQvqJc1WlOEXqostNwOCi3qAj++4EaLsdAgPmUbEyog== - dependencies: - commander "^2.20.0" - glob "^7.1.4" - is-absolute-url "^3.0.1" - is-html "^1.1.0" - jsdom "^14.1.0" - lodash "^4.17.15" - postcss "^7.0.17" - postcss-selector-parser "6.0.2" - request "^2.88.0" - -unicode-canonical-property-names-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818" - integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ== - -unicode-match-property-ecmascript@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c" - integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg== - dependencies: - unicode-canonical-property-names-ecmascript "^1.0.4" - unicode-property-aliases-ecmascript "^1.0.4" - -unicode-match-property-value-ecmascript@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531" - integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ== - -unicode-property-aliases-ecmascript@^1.0.4: - version "1.1.0" - resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4" - integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg== - -unicode-trie@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/unicode-trie/-/unicode-trie-0.3.1.tgz#d671dddd89101a08bac37b6a5161010602052085" - integrity sha1-1nHd3YkQGgi6w3tqUWEBBgIFIIU= - dependencies: - pako "^0.2.5" - tiny-inflate "^1.0.0" - -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - -union@~0.5.0: - version "0.5.0" - resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075" - integrity sha512-N6uOhuW6zO95P3Mel2I2zMsbsanvvtgn6jVqJv4vbVcz/JN0OkL9suomjQGmWtxJQXOCqUJvquc1sMeNz/IwlA== - dependencies: - qs "^6.4.0" - -uniq@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" - integrity sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8= - -uniqs@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" - integrity sha1-/+3ks2slKQaW5uFl1KWe25mOawI= - -unique-string@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d" - integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg== - dependencies: - crypto-random-string "^2.0.0" - -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - -universalify@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717" - integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ== - -unquote@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/unquote/-/unquote-1.1.1.tgz#8fded7324ec6e88a0ff8b905e7c098cdc086d544" - integrity sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ= - -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha1-g3aHP30jNRef+x5vw6jtDfyKtVk= - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - -upath@^1.1.1: - version "1.2.0" - resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894" - integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg== - -update-notifier@^4.1.1: - version "4.1.3" - resolved "https://registry.yarnpkg.com/update-notifier/-/update-notifier-4.1.3.tgz#be86ee13e8ce48fb50043ff72057b5bd598e1ea3" - integrity sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A== - dependencies: - boxen "^4.2.0" - chalk "^3.0.0" - configstore "^5.0.1" - has-yarn "^2.1.0" - import-lazy "^2.1.0" - is-ci "^2.0.0" - is-installed-globally "^0.3.1" - is-npm "^4.0.0" - is-yarn-global "^0.3.0" - latest-version "^5.0.0" - pupa "^2.0.1" - semver-diff "^3.1.1" - xdg-basedir "^4.0.0" - -uri-js@^4.2.2: - version "4.4.1" - resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.1.tgz#9b1a52595225859e55f669d928f88c6c57f2a77e" - integrity sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg== - dependencies: - punycode "^2.1.0" - -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI= - -url-join@^2.0.5: - version "2.0.5" - resolved "https://registry.yarnpkg.com/url-join/-/url-join-2.0.5.tgz#5af22f18c052a000a48d7b82c5e9c2e2feeda728" - integrity sha1-WvIvGMBSoACkjXuCxenC4v7tpyg= - -url-parse-lax@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/url-parse-lax/-/url-parse-lax-3.0.0.tgz#16b5cafc07dbe3676c1b1999177823d6503acb0c" - integrity sha1-FrXK/Afb42dsGxmZF3gj1lA6yww= - dependencies: - prepend-http "^2.0.0" - -url@^0.11.0: - version "0.11.0" - resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" - integrity sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE= - dependencies: - punycode "1.3.2" - querystring "0.2.0" - -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - -utf8-byte-length@^1.0.1: - version "1.0.4" - resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61" - integrity sha1-9F8VDExm7uloGGUFq5P8u4rWv2E= - -util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" - integrity sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8= - -util.promisify@~1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/util.promisify/-/util.promisify-1.0.1.tgz#6baf7774b80eeb0f7520d8b81d07982a59abbaee" - integrity sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA== - dependencies: - define-properties "^1.1.3" - es-abstract "^1.17.2" - has-symbols "^1.0.1" - object.getownpropertydescriptors "^2.1.0" - -util@0.10.3: - version "0.10.3" - resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" - integrity sha1-evsa/lCAUkZInj23/g7TeTNqwPk= - dependencies: - inherits "2.0.1" - -util@^0.11.0: - version "0.11.1" - resolved "https://registry.yarnpkg.com/util/-/util-0.11.1.tgz#3236733720ec64bb27f6e26f421aaa2e1b588d61" - integrity sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ== - dependencies: - inherits "2.0.3" - -uuid@^3.3.2: - version "3.4.0" - resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" - integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== - -v8-compile-cache@^2.0.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" - integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== - -validate-npm-package-license@^3.0.1: - version "3.0.4" - resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz#fc91f6b9c7ba15c857f4cb2c5defeec39d4f410a" - integrity sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew== - dependencies: - spdx-correct "^3.0.0" - spdx-expression-parse "^3.0.0" - -vendors@^1.0.0: - version "1.0.4" - resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.4.tgz#e2b800a53e7a29b93506c3cf41100d16c4c4ad8e" - integrity sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w== - -verror@1.10.0: - version "1.10.0" - resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" - integrity sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA= - dependencies: - assert-plus "^1.0.0" - core-util-is "1.0.2" - extsprintf "^1.2.0" - -vlq@^0.2.2: - version "0.2.3" - resolved "https://registry.yarnpkg.com/vlq/-/vlq-0.2.3.tgz#8f3e4328cf63b1540c0d67e1b2778386f8975b26" - integrity sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow== - -vm-browserify@^1.0.1: - version "1.1.2" - resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0" - integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ== - -w3c-hr-time@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd" - integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ== - dependencies: - browser-process-hrtime "^1.0.0" - -w3c-xmlserializer@^1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-1.1.2.tgz#30485ca7d70a6fd052420a3d12fd90e6339ce794" - integrity sha512-p10l/ayESzrBMYWRID6xbuCKh2Fp77+sA0doRuGn4tTIMrrZVeqfpKjXHY+oDh3K4nLdPgNwMTVP6Vp4pvqbNg== - dependencies: - domexception "^1.0.1" - webidl-conversions "^4.0.2" - xml-name-validator "^3.0.0" - -wcwidth@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/wcwidth/-/wcwidth-1.0.1.tgz#f0b0dcf915bc5ff1528afadb2c0e17b532da2fe8" - integrity sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g= - dependencies: - defaults "^1.0.3" - -webidl-conversions@^4.0.2: - version "4.0.2" - resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad" - integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg== - -whatwg-encoding@^1.0.1, whatwg-encoding@^1.0.5: - version "1.0.5" - resolved "https://registry.yarnpkg.com/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz#5abacf777c32166a51d085d6b4f3e7d27113ddb0" - integrity sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw== - dependencies: - iconv-lite "0.4.24" - -whatwg-mimetype@^2.2.0, whatwg-mimetype@^2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz#3d4b1e0312d2079879f826aff18dbeeca5960fbf" - integrity sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g== - -whatwg-url@^7.0.0: - version "7.1.0" - resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06" - integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg== - dependencies: - lodash.sortby "^4.7.0" - tr46 "^1.0.1" - webidl-conversions "^4.0.2" - -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - -widest-line@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/widest-line/-/widest-line-3.1.0.tgz#8292333bbf66cb45ff0de1603b136b7ae1496eca" - integrity sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg== - dependencies: - string-width "^4.0.0" - -word-wrap@~1.2.3: - version "1.2.3" - resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c" - integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ== - -wrap-ansi@^7.0.0: - version "7.0.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" - integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== - dependencies: - ansi-styles "^4.0.0" - string-width "^4.1.0" - strip-ansi "^6.0.0" - -wrappy@1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" - integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8= - -write-file-atomic@^3.0.0: - version "3.0.3" - resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-3.0.3.tgz#56bd5c5a5c70481cd19c571bd39ab965a5de56e8" - integrity sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q== - dependencies: - imurmurhash "^0.1.4" - is-typedarray "^1.0.0" - signal-exit "^3.0.2" - typedarray-to-buffer "^3.1.5" - -ws@^5.1.1: - version "5.2.2" - resolved "https://registry.yarnpkg.com/ws/-/ws-5.2.2.tgz#dffef14866b8e8dc9133582514d1befaf96e980f" - integrity sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA== - dependencies: - async-limiter "~1.0.0" - -ws@^6.1.2: - version "6.2.1" - resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.1.tgz#442fdf0a47ed64f59b6a5d8ff130f4748ed524fb" - integrity sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA== - dependencies: - async-limiter "~1.0.0" - -xdg-basedir@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/xdg-basedir/-/xdg-basedir-4.0.0.tgz#4bc8d9984403696225ef83a1573cbbcb4e79db13" - integrity sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q== - -xml-name-validator@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-3.0.0.tgz#6ae73e06de4d8c6e47f9fb181f78d648ad457c6a" - integrity sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw== - -xmlchars@^2.1.1: - version "2.2.0" - resolved "https://registry.yarnpkg.com/xmlchars/-/xmlchars-2.2.0.tgz#060fe1bcb7f9c76fe2a17db86a9bc3ab894210cb" - integrity sha512-JZnDKK8B0RCDw84FNdDAIpZK+JuJw+s7Lz8nksI7SIuU3UXJJslUthsi+uWBUYOwPFwW7W7PRLRfUKpxjtjFCw== - -xtend@^4.0.0, xtend@~4.0.1: - version "4.0.2" - resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" - integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== - -y18n@^5.0.5: - version "5.0.5" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.5.tgz#8769ec08d03b1ea2df2500acef561743bbb9ab18" - integrity sha512-hsRUr4FFrvhhRH12wOdfs38Gy7k2FFzB9qgN9v3aLykRq0dRcdcpz5C9FxdS2NuhOrI/628b/KSTJ3rwHysYSg== - -yallist@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72" - integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A== - -yargs-parser@^20.2.2: - version "20.2.6" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.6.tgz#69f920addf61aafc0b8b89002f5d66e28f2d8b20" - integrity sha512-AP1+fQIWSM/sMiET8fyayjx/J+JmTPt2Mr0FkrgqB4todtfa53sOsrSAcIrJRD5XS20bKUwaDIuMkWKCEiQLKA== - -yargs@^16.0.3: - version "16.2.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" - integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - -yauzl@^2.10.0: - version "2.10.0" - resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" - integrity sha1-x+sXyT4RLLEIb6bY5R+wZnt5pfk= - dependencies: - buffer-crc32 "~0.2.3" - fd-slicer "~1.1.0" diff --git a/eslint.config.mjs b/eslint.config.mjs new file mode 100644 index 0000000..ad64251 --- /dev/null +++ b/eslint.config.mjs @@ -0,0 +1,47 @@ +import eslint from '@eslint/js'; +import tseslint from 'typescript-eslint'; +import cypress from 'eslint-plugin-cypress'; +import globals from 'globals'; + +export default [ + eslint.configs.recommended, + ...tseslint.configs.recommended, + { + ignores: [ + 'lib/**/*', + 'dist/**/*', + '**/*.min.js', + '.yarn/**/*', + '.pnp.loader.mjs', + '.pnp.cjs', + ], + }, + { + files: ['**/*.ts'], + languageOptions: { + parserOptions: { + tsconfigRootDir: import.meta.dirname, + project: ['tsconfig.json'], + }, + }, + }, + { + files: ['**/*.js', '**/*.ts'], + plugins: { + cypress, + }, + languageOptions: { + globals: { + ...globals.browser, + Bun: 'readonly', + }, + ecmaVersion: 'latest', + sourceType: 'module', + }, + rules: { + '@typescript-eslint/no-unused-vars': 'off', + '@typescript-eslint/no-explicit-any': 'off', + '@typescript-eslint/no-this-alias': 'off', + }, + }, +]; diff --git a/lib/monogatari.module.js b/lib/monogatari.module.js new file mode 100644 index 0000000..5a45761 --- /dev/null +++ b/lib/monogatari.module.js @@ -0,0 +1,1079 @@ +var hC=Object.create;var{getPrototypeOf:pC,defineProperty:z8,getOwnPropertyNames:PW,getOwnPropertyDescriptor:cC}=Object,CW=Object.prototype.hasOwnProperty;var UZ=(K,V,Q)=>{Q=K!=null?hC(pC(K)):{};let U=V||!K||!K.__esModule?z8(Q,"default",{value:K,enumerable:!0}):Q;for(let H of PW(K))if(!CW.call(U,H))z8(U,H,{get:()=>K[H],enumerable:!0});return U},SW=new WeakMap,D1=(K)=>{var V=SW.get(K),Q;if(V)return V;if(V=z8({},"__esModule",{value:!0}),K&&typeof K==="object"||typeof K==="function")PW(K).map((U)=>!CW.call(V,U)&&z8(V,U,{get:()=>K[U],enumerable:!(Q=cC(K,U))||Q.enumerable}));return SW.set(K,V),V},wK=(K,V)=>()=>(V||K((V={exports:{}}).exports,V),V.exports);var IU=(K,V)=>{for(var Q in V)z8(K,Q,{get:V[Q],enumerable:!0,configurable:!0,set:(U)=>V[Q]=()=>U})};var L8=(K,V)=>()=>(K&&(V=K(K=0)),V);var uC=((K)=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(K,{get:(V,Q)=>(typeof require<"u"?require:V)[Q]}):K)(function(K){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+K+'" is not supported')});var pK={};IU(pK,{transcode:()=>pT,resolveObjectURL:()=>gT,kStringMaxLength:()=>c5,kMaxLength:()=>v8,isUtf8:()=>yT,isAscii:()=>hT,default:()=>cT,constants:()=>OT,btoa:()=>LT,atob:()=>ZT,INSPECT_MAX_BYTES:()=>p5,File:()=>YT,Buffer:()=>v0,Blob:()=>qT});function VT(K){var V=K.length;if(V%4>0)throw Error("Invalid string. Length must be a multiple of 4");var Q=K.indexOf("=");if(Q===-1)Q=V;var U=Q===V?0:4-Q%4;return[Q,U]}function QT(K,V){return(K+V)*3/4-V}function UT(K){var V,Q=VT(K),U=Q[0],H=Q[1],Y=new Uint8Array(QT(U,H)),z=0,M=H>0?U-4:U,A;for(A=0;A>16&255,Y[z++]=V>>8&255,Y[z++]=V&255;if(H===2)V=xV[K.charCodeAt(A)]<<2|xV[K.charCodeAt(A+1)]>>4,Y[z++]=V&255;if(H===1)V=xV[K.charCodeAt(A)]<<10|xV[K.charCodeAt(A+1)]<<4|xV[K.charCodeAt(A+2)]>>2,Y[z++]=V>>8&255,Y[z++]=V&255;return Y}function HT(K){return XQ[K>>18&63]+XQ[K>>12&63]+XQ[K>>6&63]+XQ[K&63]}function zT(K,V,Q){var U,H=[];for(var Y=V;YM?M:z+Y));if(U===1)V=K[Q-1],H.push(XQ[V>>2]+XQ[V<<4&63]+"==");else if(U===2)V=(K[Q-2]<<8)+K[Q-1],H.push(XQ[V>>10]+XQ[V>>4&63]+XQ[V<<2&63]+"=");return H.join("")}function CL(K,V,Q,U,H){var Y,z,M=H*8-U-1,A=(1<>1,D=-7,F=Q?H-1:0,P=Q?-1:1,G=K[V+F];F+=P,Y=G&(1<<-D)-1,G>>=-D,D+=M;for(;D>0;Y=Y*256+K[V+F],F+=P,D-=8);z=Y&(1<<-D)-1,Y>>=-D,D+=U;for(;D>0;z=z*256+K[V+F],F+=P,D-=8);if(Y===0)Y=1-R;else if(Y===A)return z?NaN:(G?-1:1)*(1/0);else z=z+Math.pow(2,U),Y=Y-R;return(G?-1:1)*z*Math.pow(2,Y-U)}function h5(K,V,Q,U,H,Y){var z,M,A,R=Y*8-H-1,D=(1<>1,P=H===23?Math.pow(2,-24)-Math.pow(2,-77):0,G=U?0:Y-1,T=U?1:-1,v=V<0||V===0&&1/V<0?1:0;if(V=Math.abs(V),isNaN(V)||V===1/0)M=isNaN(V)?1:0,z=D;else{if(z=Math.floor(Math.log(V)/Math.LN2),V*(A=Math.pow(2,-z))<1)z--,A*=2;if(z+F>=1)V+=P/A;else V+=P*Math.pow(2,1-F);if(V*A>=2)z++,A/=2;if(z+F>=D)M=0,z=D;else if(z+F>=1)M=(V*A-1)*Math.pow(2,H),z=z+F;else M=V*Math.pow(2,F-1)*Math.pow(2,H),z=0}for(;H>=8;K[Q+G]=M&255,G+=T,M/=256,H-=8);z=z<0;K[Q+G]=z&255,G+=T,z/=256,R-=8);K[Q+G-T]|=v*128}function wQ(K){if(K>v8)throw RangeError('The value "'+K+'" is invalid for option "size"');let V=new Uint8Array(K);return Object.setPrototypeOf(V,v0.prototype),V}function z2(K,V,Q){return class extends Q{constructor(){super();Object.defineProperty(this,"message",{value:V.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${K}]`,this.stack,delete this.name}get code(){return K}set code(U){Object.defineProperty(this,"code",{configurable:!0,enumerable:!0,value:U,writable:!0})}toString(){return`${this.name} [${K}]: ${this.message}`}}}function v0(K,V,Q){if(typeof K==="number"){if(typeof V==="string")throw TypeError('The "string" argument must be of type string. Received type number');return L2(K)}return u5(K,V,Q)}function u5(K,V,Q){if(typeof K==="string")return AT(K,V);if(ArrayBuffer.isView(K))return RT(K);if(K==null)throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof K);if(AQ(K,ArrayBuffer)||K&&AQ(K.buffer,ArrayBuffer))return U2(K,V,Q);if(typeof SharedArrayBuffer<"u"&&(AQ(K,SharedArrayBuffer)||K&&AQ(K.buffer,SharedArrayBuffer)))return U2(K,V,Q);if(typeof K==="number")throw TypeError('The "value" argument must not be of type number. Received type number');let U=K.valueOf&&K.valueOf();if(U!=null&&U!==K)return v0.from(U,V,Q);let H=$T(K);if(H)return H;if(typeof Symbol<"u"&&Symbol.toPrimitive!=null&&typeof K[Symbol.toPrimitive]==="function")return v0.from(K[Symbol.toPrimitive]("string"),V,Q);throw TypeError("The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type "+typeof K)}function b5(K){if(typeof K!=="number")throw TypeError('"size" argument must be of type number');else if(K<0)throw RangeError('The value "'+K+'" is invalid for option "size"')}function XT(K,V,Q){if(b5(K),K<=0)return wQ(K);if(V!==void 0)return typeof Q==="string"?wQ(K).fill(V,Q):wQ(K).fill(V);return wQ(K)}function L2(K){return b5(K),wQ(K<0?0:Z2(K)|0)}function AT(K,V){if(typeof V!=="string"||V==="")V="utf8";if(!v0.isEncoding(V))throw TypeError("Unknown encoding: "+V);let Q=l5(K,V)|0,U=wQ(Q),H=U.write(K,V);if(H!==Q)U=U.slice(0,H);return U}function Q2(K){let V=K.length<0?0:Z2(K.length)|0,Q=wQ(V);for(let U=0;U=v8)throw RangeError("Attempt to allocate Buffer larger than maximum size: 0x"+v8.toString(16)+" bytes");return K|0}function l5(K,V){if(v0.isBuffer(K))return K.length;if(ArrayBuffer.isView(K)||AQ(K,ArrayBuffer))return K.byteLength;if(typeof K!=="string")throw TypeError('The "string" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof K);let Q=K.length,U=arguments.length>2&&arguments[2]===!0;if(!U&&Q===0)return 0;let H=!1;for(;;)switch(V){case"ascii":case"latin1":case"binary":return Q;case"utf8":case"utf-8":return H2(K).length;case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return Q*2;case"hex":return Q>>>1;case"base64":return a5(K).length;default:if(H)return U?-1:H2(K).length;V=(""+V).toLowerCase(),H=!0}}function FT(K,V,Q){let U=!1;if(V===void 0||V<0)V=0;if(V>this.length)return"";if(Q===void 0||Q>this.length)Q=this.length;if(Q<=0)return"";if(Q>>>=0,V>>>=0,Q<=V)return"";if(!K)K="utf8";while(!0)switch(K){case"hex":return JT(this,V,Q);case"utf8":case"utf-8":return s5(this,V,Q);case"ascii":return ET(this,V,Q);case"latin1":case"binary":return BT(this,V,Q);case"base64":return GT(this,V,Q);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return vT(this,V,Q);default:if(U)throw TypeError("Unknown encoding: "+K);K=(K+"").toLowerCase(),U=!0}}function hU(K,V,Q){let U=K[V];K[V]=K[Q],K[Q]=U}function d5(K,V,Q,U,H){if(K.length===0)return-1;if(typeof Q==="string")U=Q,Q=0;else if(Q>2147483647)Q=2147483647;else if(Q<-2147483648)Q=-2147483648;if(Q=+Q,Number.isNaN(Q))Q=H?0:K.length-1;if(Q<0)Q=K.length+Q;if(Q>=K.length)if(H)return-1;else Q=K.length-1;else if(Q<0)if(H)Q=0;else return-1;if(typeof V==="string")V=v0.from(V,U);if(v0.isBuffer(V)){if(V.length===0)return-1;return N5(K,V,Q,U,H)}else if(typeof V==="number"){if(V=V&255,typeof Uint8Array.prototype.indexOf==="function")if(H)return Uint8Array.prototype.indexOf.call(K,V,Q);else return Uint8Array.prototype.lastIndexOf.call(K,V,Q);return N5(K,[V],Q,U,H)}throw TypeError("val must be string, number or Buffer")}function N5(K,V,Q,U,H){let Y=1,z=K.length,M=V.length;if(U!==void 0){if(U=String(U).toLowerCase(),U==="ucs2"||U==="ucs-2"||U==="utf16le"||U==="utf-16le"){if(K.length<2||V.length<2)return-1;Y=2,z/=2,M/=2,Q/=2}}function A(D,F){if(Y===1)return D[F];else return D.readUInt16BE(F*Y)}let R;if(H){let D=-1;for(R=Q;Rz)Q=z-M;for(R=Q;R>=0;R--){let D=!0;for(let F=0;FH)U=H;let Y=V.length;if(U>Y/2)U=Y/2;let z;for(z=0;z239?4:Y>223?3:Y>191?2:1;if(H+M<=Q){let A,R,D,F;switch(M){case 1:if(Y<128)z=Y;break;case 2:if(A=K[H+1],(A&192)===128){if(F=(Y&31)<<6|A&63,F>127)z=F}break;case 3:if(A=K[H+1],R=K[H+2],(A&192)===128&&(R&192)===128){if(F=(Y&15)<<12|(A&63)<<6|R&63,F>2047&&(F<55296||F>57343))z=F}break;case 4:if(A=K[H+1],R=K[H+2],D=K[H+3],(A&192)===128&&(R&192)===128&&(D&192)===128){if(F=(Y&15)<<18|(A&63)<<12|(R&63)<<6|D&63,F>65535&&F<1114112)z=F}}}if(z===null)z=65533,M=1;else if(z>65535)z-=65536,U.push(z>>>10&1023|55296),z=56320|z&1023;U.push(z),H+=M}return TT(U)}function TT(K){let V=K.length;if(V<=g5)return String.fromCharCode.apply(String,K);let Q="",U=0;while(UU)Q=U;let H="";for(let Y=V;YQ)throw RangeError("Trying to access beyond buffer length")}function qV(K,V,Q,U,H,Y){if(!v0.isBuffer(K))throw TypeError('"buffer" argument must be a Buffer instance');if(V>H||VK.length)throw RangeError("Index out of range")}function o5(K,V,Q,U,H){t5(V,U,H,K,Q,7);let Y=Number(V&BigInt(4294967295));K[Q++]=Y,Y=Y>>8,K[Q++]=Y,Y=Y>>8,K[Q++]=Y,Y=Y>>8,K[Q++]=Y;let z=Number(V>>BigInt(32)&BigInt(4294967295));return K[Q++]=z,z=z>>8,K[Q++]=z,z=z>>8,K[Q++]=z,z=z>>8,K[Q++]=z,Q}function m5(K,V,Q,U,H){t5(V,U,H,K,Q,7);let Y=Number(V&BigInt(4294967295));K[Q+7]=Y,Y=Y>>8,K[Q+6]=Y,Y=Y>>8,K[Q+5]=Y,Y=Y>>8,K[Q+4]=Y;let z=Number(V>>BigInt(32)&BigInt(4294967295));return K[Q+3]=z,z=z>>8,K[Q+2]=z,z=z>>8,K[Q+1]=z,z=z>>8,K[Q]=z,Q+8}function n5(K,V,Q,U,H,Y){if(Q+U>K.length)throw RangeError("Index out of range");if(Q<0)throw RangeError("Index out of range")}function r5(K,V,Q,U,H){if(V=+V,Q=Q>>>0,!H)n5(K,V,Q,4,340282346638528860000000000000000000000,-340282346638528860000000000000000000000);return h5(K,V,Q,U,23,4),Q+4}function i5(K,V,Q,U,H){if(V=+V,Q=Q>>>0,!H)n5(K,V,Q,8,179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000);return h5(K,V,Q,U,52,8),Q+8}function y5(K){let V="",Q=K.length,U=K[0]==="-"?1:0;for(;Q>=U+4;Q-=3)V=`_${K.slice(Q-3,Q)}${V}`;return`${K.slice(0,Q)}${V}`}function kT(K,V,Q){if(IH(V,"offset"),K[V]===void 0||K[V+Q]===void 0)k8(V,K.length-(Q+1))}function t5(K,V,Q,U,H,Y){if(K>Q||K3)if(V===0||V===BigInt(0))M=`>= 0${z} and < 2${z} ** ${(Y+1)*8}${z}`;else M=`>= -(2${z} ** ${(Y+1)*8-1}${z}) and < 2 ** ${(Y+1)*8-1}${z}`;else M=`>= ${V}${z} and <= ${Q}${z}`;throw new V2("value",M,K)}kT(U,H,Y)}function IH(K,V){if(typeof K!=="number")throw new WT(V,"number",K)}function k8(K,V,Q){if(Math.floor(K)!==K)throw IH(K,Q),new V2(Q||"offset","an integer",K);if(V<0)throw new MT;throw new V2(Q||"offset",`>= ${Q?1:0} and <= ${V}`,K)}function wT(K){if(K=K.split("=")[0],K=K.trim().replace(fT,""),K.length<2)return"";while(K.length%4!==0)K=K+"=";return K}function H2(K,V){V=V||1/0;let Q,U=K.length,H=null,Y=[];for(let z=0;z55295&&Q<57344){if(!H){if(Q>56319){if((V-=3)>-1)Y.push(239,191,189);continue}else if(z+1===U){if((V-=3)>-1)Y.push(239,191,189);continue}H=Q;continue}if(Q<56320){if((V-=3)>-1)Y.push(239,191,189);H=Q;continue}Q=(H-55296<<10|Q-56320)+65536}else if(H){if((V-=3)>-1)Y.push(239,191,189)}if(H=null,Q<128){if((V-=1)<0)break;Y.push(Q)}else if(Q<2048){if((V-=2)<0)break;Y.push(Q>>6|192,Q&63|128)}else if(Q<65536){if((V-=3)<0)break;Y.push(Q>>12|224,Q>>6&63|128,Q&63|128)}else if(Q<1114112){if((V-=4)<0)break;Y.push(Q>>18|240,Q>>12&63|128,Q>>6&63|128,Q&63|128)}else throw Error("Invalid code point")}return Y}function jT(K){let V=[];for(let Q=0;Q>8,H=Q%256,Y.push(H),Y.push(U)}return Y}function a5(K){return UT(wT(K))}function IL(K,V,Q,U){let H;for(H=0;H=V.length||H>=K.length)break;V[H+Q]=K[H]}return H}function AQ(K,V){return K instanceof V||K!=null&&K.constructor!=null&&K.constructor.name!=null&&K.constructor.name===V.name}function QU(K){return typeof BigInt>"u"?NT:K}function NT(){throw Error("BigInt not supported")}function Y2(K){return()=>{throw Error(K+" is not implemented for node:buffer browser polyfill")}}var XQ,xV,K2="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",yU,j5,_5,p5=50,v8=2147483647,c5=536870888,LT,ZT,YT,qT,OT,MT,WT,V2,g5=4096,fT,_T,gT,yT,hT=(K)=>{for(let V of K)if(V.charCodeAt(0)>127)return!1;return!0},pT,cT;var cK=L8(()=>{XQ=[],xV=[];for(yU=0,j5=K2.length;yU4294967296)H=y5(String(Q));else if(typeof Q==="bigint"){if(H=String(Q),Q>BigInt(2)**BigInt(32)||Q<-(BigInt(2)**BigInt(32)))H=y5(H);H+="n"}return U+=` It must be ${V}. Received ${H}`,U},RangeError);Object.defineProperty(v0.prototype,"parent",{enumerable:!0,get:function(){if(!v0.isBuffer(this))return;return this.buffer}});Object.defineProperty(v0.prototype,"offset",{enumerable:!0,get:function(){if(!v0.isBuffer(this))return;return this.byteOffset}});v0.poolSize=8192;v0.from=function(K,V,Q){return u5(K,V,Q)};Object.setPrototypeOf(v0.prototype,Uint8Array.prototype);Object.setPrototypeOf(v0,Uint8Array);v0.alloc=function(K,V,Q){return XT(K,V,Q)};v0.allocUnsafe=function(K){return L2(K)};v0.allocUnsafeSlow=function(K){return L2(K)};v0.isBuffer=function(K){return K!=null&&K._isBuffer===!0&&K!==v0.prototype};v0.compare=function(K,V){if(AQ(K,Uint8Array))K=v0.from(K,K.offset,K.byteLength);if(AQ(V,Uint8Array))V=v0.from(V,V.offset,V.byteLength);if(!v0.isBuffer(K)||!v0.isBuffer(V))throw TypeError('The "buf1", "buf2" arguments must be one of type Buffer or Uint8Array');if(K===V)return 0;let Q=K.length,U=V.length;for(let H=0,Y=Math.min(Q,U);HU.length){if(!v0.isBuffer(Y))Y=v0.from(Y);Y.copy(U,H)}else Uint8Array.prototype.set.call(U,Y,H);else if(!v0.isBuffer(Y))throw TypeError('"list" argument must be an Array of Buffers');else Y.copy(U,H);H+=Y.length}return U};v0.byteLength=l5;v0.prototype._isBuffer=!0;v0.prototype.swap16=function(){let K=this.length;if(K%2!==0)throw RangeError("Buffer size must be a multiple of 16-bits");for(let V=0;VV)K+=" ... ";return""};if(_5)v0.prototype[_5]=v0.prototype.inspect;v0.prototype.compare=function(K,V,Q,U,H){if(AQ(K,Uint8Array))K=v0.from(K,K.offset,K.byteLength);if(!v0.isBuffer(K))throw TypeError('The "target" argument must be one of type Buffer or Uint8Array. Received type '+typeof K);if(V===void 0)V=0;if(Q===void 0)Q=K?K.length:0;if(U===void 0)U=0;if(H===void 0)H=this.length;if(V<0||Q>K.length||U<0||H>this.length)throw RangeError("out of range index");if(U>=H&&V>=Q)return 0;if(U>=H)return-1;if(V>=Q)return 1;if(V>>>=0,Q>>>=0,U>>>=0,H>>>=0,this===K)return 0;let Y=H-U,z=Q-V,M=Math.min(Y,z),A=this.slice(U,H),R=K.slice(V,Q);for(let D=0;D>>0,isFinite(Q)){if(Q=Q>>>0,U===void 0)U="utf8"}else U=Q,Q=void 0;else throw Error("Buffer.write(string, encoding, offset[, length]) is no longer supported");let H=this.length-V;if(Q===void 0||Q>H)Q=H;if(K.length>0&&(Q<0||V<0)||V>this.length)throw RangeError("Attempt to write outside buffer bounds");if(!U)U="utf8";let Y=!1;for(;;)switch(U){case"hex":return DT(this,K,V,Q);case"utf8":case"utf-8":return ST(this,K,V,Q);case"ascii":case"latin1":case"binary":return PT(this,K,V,Q);case"base64":return CT(this,K,V,Q);case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return IT(this,K,V,Q);default:if(Y)throw TypeError("Unknown encoding: "+U);U=(""+U).toLowerCase(),Y=!0}};v0.prototype.toJSON=function(){return{type:"Buffer",data:Array.prototype.slice.call(this._arr||this,0)}};v0.prototype.slice=function(K,V){let Q=this.length;if(K=~~K,V=V===void 0?Q:~~V,K<0){if(K+=Q,K<0)K=0}else if(K>Q)K=Q;if(V<0){if(V+=Q,V<0)V=0}else if(V>Q)V=Q;if(V>>0,V=V>>>0,!Q)hK(K,V,this.length);let U=this[K],H=1,Y=0;while(++Y>>0,V=V>>>0,!Q)hK(K,V,this.length);let U=this[K+--V],H=1;while(V>0&&(H*=256))U+=this[K+--V]*H;return U};v0.prototype.readUint8=v0.prototype.readUInt8=function(K,V){if(K=K>>>0,!V)hK(K,1,this.length);return this[K]};v0.prototype.readUint16LE=v0.prototype.readUInt16LE=function(K,V){if(K=K>>>0,!V)hK(K,2,this.length);return this[K]|this[K+1]<<8};v0.prototype.readUint16BE=v0.prototype.readUInt16BE=function(K,V){if(K=K>>>0,!V)hK(K,2,this.length);return this[K]<<8|this[K+1]};v0.prototype.readUint32LE=v0.prototype.readUInt32LE=function(K,V){if(K=K>>>0,!V)hK(K,4,this.length);return(this[K]|this[K+1]<<8|this[K+2]<<16)+this[K+3]*16777216};v0.prototype.readUint32BE=v0.prototype.readUInt32BE=function(K,V){if(K=K>>>0,!V)hK(K,4,this.length);return this[K]*16777216+(this[K+1]<<16|this[K+2]<<8|this[K+3])};v0.prototype.readBigUInt64LE=QU(function(K){K=K>>>0,IH(K,"offset");let V=this[K],Q=this[K+7];if(V===void 0||Q===void 0)k8(K,this.length-8);let U=V+this[++K]*256+this[++K]*65536+this[++K]*16777216,H=this[++K]+this[++K]*256+this[++K]*65536+Q*16777216;return BigInt(U)+(BigInt(H)<>>0,IH(K,"offset");let V=this[K],Q=this[K+7];if(V===void 0||Q===void 0)k8(K,this.length-8);let U=V*16777216+this[++K]*65536+this[++K]*256+this[++K],H=this[++K]*16777216+this[++K]*65536+this[++K]*256+Q;return(BigInt(U)<>>0,V=V>>>0,!Q)hK(K,V,this.length);let U=this[K],H=1,Y=0;while(++Y=H)U-=Math.pow(2,8*V);return U};v0.prototype.readIntBE=function(K,V,Q){if(K=K>>>0,V=V>>>0,!Q)hK(K,V,this.length);let U=V,H=1,Y=this[K+--U];while(U>0&&(H*=256))Y+=this[K+--U]*H;if(H*=128,Y>=H)Y-=Math.pow(2,8*V);return Y};v0.prototype.readInt8=function(K,V){if(K=K>>>0,!V)hK(K,1,this.length);if(!(this[K]&128))return this[K];return(255-this[K]+1)*-1};v0.prototype.readInt16LE=function(K,V){if(K=K>>>0,!V)hK(K,2,this.length);let Q=this[K]|this[K+1]<<8;return Q&32768?Q|4294901760:Q};v0.prototype.readInt16BE=function(K,V){if(K=K>>>0,!V)hK(K,2,this.length);let Q=this[K+1]|this[K]<<8;return Q&32768?Q|4294901760:Q};v0.prototype.readInt32LE=function(K,V){if(K=K>>>0,!V)hK(K,4,this.length);return this[K]|this[K+1]<<8|this[K+2]<<16|this[K+3]<<24};v0.prototype.readInt32BE=function(K,V){if(K=K>>>0,!V)hK(K,4,this.length);return this[K]<<24|this[K+1]<<16|this[K+2]<<8|this[K+3]};v0.prototype.readBigInt64LE=QU(function(K){K=K>>>0,IH(K,"offset");let V=this[K],Q=this[K+7];if(V===void 0||Q===void 0)k8(K,this.length-8);let U=this[K+4]+this[K+5]*256+this[K+6]*65536+(Q<<24);return(BigInt(U)<>>0,IH(K,"offset");let V=this[K],Q=this[K+7];if(V===void 0||Q===void 0)k8(K,this.length-8);let U=(V<<24)+this[++K]*65536+this[++K]*256+this[++K];return(BigInt(U)<>>0,!V)hK(K,4,this.length);return CL(this,K,!0,23,4)};v0.prototype.readFloatBE=function(K,V){if(K=K>>>0,!V)hK(K,4,this.length);return CL(this,K,!1,23,4)};v0.prototype.readDoubleLE=function(K,V){if(K=K>>>0,!V)hK(K,8,this.length);return CL(this,K,!0,52,8)};v0.prototype.readDoubleBE=function(K,V){if(K=K>>>0,!V)hK(K,8,this.length);return CL(this,K,!1,52,8)};v0.prototype.writeUintLE=v0.prototype.writeUIntLE=function(K,V,Q,U){if(K=+K,V=V>>>0,Q=Q>>>0,!U){let z=Math.pow(2,8*Q)-1;qV(this,K,V,Q,z,0)}let H=1,Y=0;this[V]=K&255;while(++Y>>0,Q=Q>>>0,!U){let z=Math.pow(2,8*Q)-1;qV(this,K,V,Q,z,0)}let H=Q-1,Y=1;this[V+H]=K&255;while(--H>=0&&(Y*=256))this[V+H]=K/Y&255;return V+Q};v0.prototype.writeUint8=v0.prototype.writeUInt8=function(K,V,Q){if(K=+K,V=V>>>0,!Q)qV(this,K,V,1,255,0);return this[V]=K&255,V+1};v0.prototype.writeUint16LE=v0.prototype.writeUInt16LE=function(K,V,Q){if(K=+K,V=V>>>0,!Q)qV(this,K,V,2,65535,0);return this[V]=K&255,this[V+1]=K>>>8,V+2};v0.prototype.writeUint16BE=v0.prototype.writeUInt16BE=function(K,V,Q){if(K=+K,V=V>>>0,!Q)qV(this,K,V,2,65535,0);return this[V]=K>>>8,this[V+1]=K&255,V+2};v0.prototype.writeUint32LE=v0.prototype.writeUInt32LE=function(K,V,Q){if(K=+K,V=V>>>0,!Q)qV(this,K,V,4,4294967295,0);return this[V+3]=K>>>24,this[V+2]=K>>>16,this[V+1]=K>>>8,this[V]=K&255,V+4};v0.prototype.writeUint32BE=v0.prototype.writeUInt32BE=function(K,V,Q){if(K=+K,V=V>>>0,!Q)qV(this,K,V,4,4294967295,0);return this[V]=K>>>24,this[V+1]=K>>>16,this[V+2]=K>>>8,this[V+3]=K&255,V+4};v0.prototype.writeBigUInt64LE=QU(function(K,V=0){return o5(this,K,V,BigInt(0),BigInt("0xffffffffffffffff"))});v0.prototype.writeBigUInt64BE=QU(function(K,V=0){return m5(this,K,V,BigInt(0),BigInt("0xffffffffffffffff"))});v0.prototype.writeIntLE=function(K,V,Q,U){if(K=+K,V=V>>>0,!U){let M=Math.pow(2,8*Q-1);qV(this,K,V,Q,M-1,-M)}let H=0,Y=1,z=0;this[V]=K&255;while(++H>0)-z&255}return V+Q};v0.prototype.writeIntBE=function(K,V,Q,U){if(K=+K,V=V>>>0,!U){let M=Math.pow(2,8*Q-1);qV(this,K,V,Q,M-1,-M)}let H=Q-1,Y=1,z=0;this[V+H]=K&255;while(--H>=0&&(Y*=256)){if(K<0&&z===0&&this[V+H+1]!==0)z=1;this[V+H]=(K/Y>>0)-z&255}return V+Q};v0.prototype.writeInt8=function(K,V,Q){if(K=+K,V=V>>>0,!Q)qV(this,K,V,1,127,-128);if(K<0)K=255+K+1;return this[V]=K&255,V+1};v0.prototype.writeInt16LE=function(K,V,Q){if(K=+K,V=V>>>0,!Q)qV(this,K,V,2,32767,-32768);return this[V]=K&255,this[V+1]=K>>>8,V+2};v0.prototype.writeInt16BE=function(K,V,Q){if(K=+K,V=V>>>0,!Q)qV(this,K,V,2,32767,-32768);return this[V]=K>>>8,this[V+1]=K&255,V+2};v0.prototype.writeInt32LE=function(K,V,Q){if(K=+K,V=V>>>0,!Q)qV(this,K,V,4,2147483647,-2147483648);return this[V]=K&255,this[V+1]=K>>>8,this[V+2]=K>>>16,this[V+3]=K>>>24,V+4};v0.prototype.writeInt32BE=function(K,V,Q){if(K=+K,V=V>>>0,!Q)qV(this,K,V,4,2147483647,-2147483648);if(K<0)K=4294967295+K+1;return this[V]=K>>>24,this[V+1]=K>>>16,this[V+2]=K>>>8,this[V+3]=K&255,V+4};v0.prototype.writeBigInt64LE=QU(function(K,V=0){return o5(this,K,V,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});v0.prototype.writeBigInt64BE=QU(function(K,V=0){return m5(this,K,V,-BigInt("0x8000000000000000"),BigInt("0x7fffffffffffffff"))});v0.prototype.writeFloatLE=function(K,V,Q){return r5(this,K,V,!0,Q)};v0.prototype.writeFloatBE=function(K,V,Q){return r5(this,K,V,!1,Q)};v0.prototype.writeDoubleLE=function(K,V,Q){return i5(this,K,V,!0,Q)};v0.prototype.writeDoubleBE=function(K,V,Q){return i5(this,K,V,!1,Q)};v0.prototype.copy=function(K,V,Q,U){if(!v0.isBuffer(K))throw TypeError("argument should be a Buffer");if(!Q)Q=0;if(!U&&U!==0)U=this.length;if(V>=K.length)V=K.length;if(!V)V=0;if(U>0&&U=this.length)throw RangeError("Index out of range");if(U<0)throw RangeError("sourceEnd out of bounds");if(U>this.length)U=this.length;if(K.length-V>>0,Q=Q===void 0?this.length:Q>>>0,!K)K=0;let H;if(typeof K==="number")for(H=V;HiT,promisify:()=>H9,log:()=>V9,isUndefined:()=>GH,isSymbol:()=>aT,isString:()=>vL,isRegExp:()=>GL,isPrimitive:()=>eT,isObject:()=>TH,isNumber:()=>K9,isNullOrUndefined:()=>tT,isNull:()=>JL,isFunction:()=>EL,isError:()=>TL,isDate:()=>W2,isBuffer:()=>KE,isBoolean:()=>A2,isArray:()=>e5,inspect:()=>pU,inherits:()=>Q9,format:()=>X2,deprecate:()=>bT,default:()=>UE,debuglog:()=>lT,callbackifyOnRejected:()=>F2,callbackify:()=>z9,_extend:()=>$2,TextEncoder:()=>L9,TextDecoder:()=>Z9});function X2(K,...V){if(!vL(K)){var Q=[K];for(var U=0;U=H)return M;switch(M){case"%s":return String(V[U++]);case"%d":return Number(V[U++]);case"%j":try{return JSON.stringify(V[U++])}catch(A){return"[Circular]"}default:return M}});for(var z=V[U];U"u"||process?.noDeprecation===!0)return K;var Q=!1;function U(...H){if(!Q){if(process.throwDeprecation)throw Error(V);else if(process.traceDeprecation)console.trace(V);else console.error(V);Q=!0}return K.apply(this,...H)}return U}function dT(K,V){var Q=pU.styles[V];if(Q)return"\x1B["+pU.colors[Q][0]+"m"+K+"\x1B["+pU.colors[Q][1]+"m";else return K}function sT(K,V){return K}function oT(K){var V={};return K.forEach(function(Q,U){V[Q]=!0}),V}function BL(K,V,Q){if(K.customInspect&&V&&EL(V.inspect)&&V.inspect!==pU&&!(V.constructor&&V.constructor.prototype===V)){var U=V.inspect(Q,K);if(!vL(U))U=BL(K,U,Q);return U}var H=mT(K,V);if(H)return H;var Y=Object.keys(V),z=oT(Y);if(K.showHidden)Y=Object.getOwnPropertyNames(V);if(TL(V)&&(Y.indexOf("message")>=0||Y.indexOf("description")>=0))return q2(V);if(Y.length===0){if(EL(V)){var M=V.name?": "+V.name:"";return K.stylize("[Function"+M+"]","special")}if(GL(V))return K.stylize(RegExp.prototype.toString.call(V),"regexp");if(W2(V))return K.stylize(Date.prototype.toString.call(V),"date");if(TL(V))return q2(V)}var A="",R=!1,D=["{","}"];if(e5(V))R=!0,D=["[","]"];if(EL(V)){var F=V.name?": "+V.name:"";A=" [Function"+F+"]"}if(GL(V))A=" "+RegExp.prototype.toString.call(V);if(W2(V))A=" "+Date.prototype.toUTCString.call(V);if(TL(V))A=" "+q2(V);if(Y.length===0&&(!R||V.length==0))return D[0]+A+D[1];if(Q<0)if(GL(V))return K.stylize(RegExp.prototype.toString.call(V),"regexp");else return K.stylize("[Object]","special");K.seen.push(V);var P;if(R)P=nT(K,V,Q,z,Y);else P=Y.map(function(G){return M2(K,V,Q,z,G,R)});return K.seen.pop(),rT(P,A,D)}function mT(K,V){if(GH(V))return K.stylize("undefined","undefined");if(vL(V)){var Q="'"+JSON.stringify(V).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return K.stylize(Q,"string")}if(K9(V))return K.stylize(""+V,"number");if(A2(V))return K.stylize(""+V,"boolean");if(JL(V))return K.stylize("null","null")}function q2(K){return"["+Error.prototype.toString.call(K)+"]"}function nT(K,V,Q,U,H){var Y=[];for(var z=0,M=V.length;z-1)if(Y)M=M.split(` +`).map(function(R){return" "+R}).join(` +`).slice(2);else M=` +`+M.split(` +`).map(function(R){return" "+R}).join(` +`)}else M=K.stylize("[Circular]","special");if(GH(z)){if(Y&&H.match(/^\d+$/))return M;if(z=JSON.stringify(""+H),z.match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/))z=z.slice(1,-1),z=K.stylize(z,"name");else z=z.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),z=K.stylize(z,"string")}return z+": "+M}function rT(K,V,Q){var U=0,H=K.reduce(function(Y,z){if(U++,z.indexOf(` +`)>=0)U++;return Y+z.replace(/\u001b\[\d\d?m/g,"").length+1},0);if(H>60)return Q[0]+(V===""?"":V+` + `)+" "+K.join(`, + `)+" "+Q[1];return Q[0]+V+" "+K.join(", ")+" "+Q[1]}function e5(K){return Array.isArray(K)}function A2(K){return typeof K==="boolean"}function JL(K){return K===null}function tT(K){return K==null}function K9(K){return typeof K==="number"}function vL(K){return typeof K==="string"}function aT(K){return typeof K==="symbol"}function GH(K){return K===void 0}function GL(K){return TH(K)&&R2(K)==="[object RegExp]"}function TH(K){return typeof K==="object"&&K!==null}function W2(K){return TH(K)&&R2(K)==="[object Date]"}function TL(K){return TH(K)&&(R2(K)==="[object Error]"||K instanceof Error)}function EL(K){return typeof K==="function"}function eT(K){return K===null||typeof K==="boolean"||typeof K==="number"||typeof K==="string"||typeof K==="symbol"||typeof K>"u"}function KE(K){return K instanceof Buffer}function R2(K){return Object.prototype.toString.call(K)}function O2(K){return K<10?"0"+K.toString(10):K.toString(10)}function QE(){var K=new Date,V=[O2(K.getHours()),O2(K.getMinutes()),O2(K.getSeconds())].join(":");return[K.getDate(),VE[K.getMonth()],V].join(" ")}function V9(...K){console.log("%s - %s",QE(),X2.apply(null,K))}function Q9(K,V){if(V)K.super_=V,K.prototype=Object.create(V.prototype,{constructor:{value:K,enumerable:!1,writable:!0,configurable:!0}})}function $2(K,V){if(!V||!TH(V))return K;var Q=Object.keys(V),U=Q.length;while(U--)K[Q[U]]=V[Q[U]];return K}function U9(K,V){return Object.prototype.hasOwnProperty.call(K,V)}function F2(K,V){if(!K){var Q=Error("Promise was rejected with a falsy value");Q.reason=K,K=Q}return V(K)}function z9(K){if(typeof K!=="function")throw TypeError('The "original" argument must be of type Function');function V(...Q){var U=Q.pop();if(typeof U!=="function")throw TypeError("The last argument must be of type Function");var H=this,Y=function(...z){return U.apply(H,...z)};K.apply(this,Q).then(function(z){process.nextTick(Y.bind(null,null,z))},function(z){process.nextTick(F2.bind(null,z,Y))})}return Object.setPrototypeOf(V,Object.getPrototypeOf(K)),Object.defineProperties(V,Object.getOwnPropertyDescriptors(K)),V}var uT,lT,pU,iT=()=>{},VE,H9,L9,Z9,UE;var q9=L8(()=>{uT=/%[sdj%]/g;lT=((K={},V={},Q)=>((Q=typeof process<"u"&&!1)&&(Q=Q.replace(/[|\\{}()[\]^$+?.]/g,"\\$&").replace(/\*/g,".*").replace(/,/g,"$|^").toUpperCase()),V=new RegExp("^"+Q+"$","i"),(U)=>{if(U=U.toUpperCase(),!K[U])if(V.test(U))K[U]=function(...H){console.error("%s: %s",U,pid,X2.apply(null,...H))};else K[U]=function(){};return K[U]}))(),pU=((K)=>(K.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},K.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},K.custom=Symbol.for("nodejs.util.inspect.custom"),K))(function(K,V,...Q){var U={seen:[],stylize:sT};if(Q.length>=1)U.depth=Q[0];if(Q.length>=2)U.colors=Q[1];if(A2(V))U.showHidden=V;else if(V)$2(U,V);if(GH(U.showHidden))U.showHidden=!1;if(GH(U.depth))U.depth=2;if(GH(U.colors))U.colors=!1;if(U.colors)U.stylize=dT;return BL(U,K,U.depth)});VE=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];H9=((K)=>(K.custom=Symbol.for("nodejs.util.promisify.custom"),K))(function(K){if(typeof K!=="function")throw TypeError('The "original" argument must be of type Function');if(kCustomPromisifiedSymbol&&K[kCustomPromisifiedSymbol]){var V=K[kCustomPromisifiedSymbol];if(typeof V!=="function")throw TypeError('The "nodejs.util.promisify.custom" argument must be of type Function');return Object.defineProperty(V,kCustomPromisifiedSymbol,{value:V,enumerable:!1,writable:!1,configurable:!0}),V}function V(...Q){var U,H,Y=new Promise(function(z,M){U=z,H=M});Q.push(function(z,M){if(z)H(z);else U(M)});try{K.apply(this,Q)}catch(z){H(z)}return Y}if(Object.setPrototypeOf(V,Object.getPrototypeOf(K)),kCustomPromisifiedSymbol)Object.defineProperty(V,kCustomPromisifiedSymbol,{value:V,enumerable:!1,writable:!1,configurable:!0});return Object.defineProperties(V,Object.getOwnPropertyDescriptors(K))});({TextEncoder:L9,TextDecoder:Z9}=globalThis),UE={TextEncoder:L9,TextDecoder:Z9,promisify:H9,log:V9,inherits:Q9,_extend:$2,callbackifyOnRejected:F2,callbackify:z9}});var w8={};IU(w8,{setMaxListeners:()=>P9,once:()=>D9,listenerCount:()=>C9,init:()=>UU,getMaxListeners:()=>G9,getEventListeners:()=>S9,default:()=>WE,captureRejectionSymbol:()=>A9,addAbortListener:()=>T9,EventEmitter:()=>UU});function R9(K,V){var{_events:Q}=K;if(V[0]??=Error("Unhandled error."),!Q)throw V[0];var U=Q[X9];if(U)for(var H of M9.call(U))H.apply(K,V);var Y=Q.error;if(!Y)throw V[0];for(var H of M9.call(Y))H.apply(K,V);return!0}function LE(K,V,Q,U){V.then(void 0,function(H){queueMicrotask(()=>ZE(K,H,Q,U))})}function ZE(K,V,Q,U){if(typeof K[O9]==="function")K[O9](V,Q,...U);else try{K[cU]=!1,K.emit("error",V)}finally{K[cU]=!0}}function $9(K,V,Q){Q.warned=!0;let U=Error(`Possible EventEmitter memory leak detected. ${Q.length} ${String(V)} listeners added to [${K.constructor.name}]. Use emitter.setMaxListeners() to increase limit`);U.name="MaxListenersExceededWarning",U.emitter=K,U.type=V,U.count=Q.length,console.warn(U)}function F9(K,V,...Q){this.removeListener(K,V),V.apply(this,Q)}function D9(K,V,Q){var U=Q?.signal;if(I9(U,"options.signal"),U?.aborted)throw new D2(void 0,{cause:U?.reason});let{resolve:H,reject:Y,promise:z}=$newPromiseCapability(Promise),M=(D)=>{if(K.removeListener(V,A),U!=null)kL(U,"abort",R);Y(D)},A=(...D)=>{if(typeof K.removeListener==="function")K.removeListener("error",M);if(U!=null)kL(U,"abort",R);H(D)};if(W9(K,V,A,{once:!0}),V!=="error"&&typeof K.once==="function")K.once("error",M);function R(){kL(K,V,A),kL(K,"error",M),Y(new D2(void 0,{cause:U?.reason}))}if(U!=null)W9(U,"abort",R,{once:!0});return z}function S9(K,V){return K.listeners(V)}function P9(K,...V){P2(K,"setMaxListeners",0);var Q;if(V&&(Q=V.length))for(let U=0;UU||(Q!=null||U!=null)&&Number.isNaN(K))throw OE(V,`${Q!=null?`>= ${Q}`:""}${Q!=null&&U!=null?" && ":""}${U!=null?`<= ${U}`:""}`,K)}function f8(K){if(typeof K!=="function")throw TypeError("The listener must be a function")}function ME(K,V){if(typeof K!=="boolean")throw EH(V,"boolean",K)}function G9(K){return K?._maxListeners??uU}function T9(K,V){if(K===void 0)throw EH("signal","AbortSignal",K);if(I9(K,"signal"),typeof V!=="function")throw EH("listener","function",V);let Q;if(K.aborted)queueMicrotask(()=>V());else K.addEventListener("abort",V,{__proto__:null,once:!0}),Q=()=>{K.removeEventListener("abort",V)};return{__proto__:null,[Symbol.dispose](){Q?.()}}}var S2,cU,X9,HE,zE,O9,A9,M9,uU=10,UU=function(K){if(this._events===void 0||this._events===this.__proto__._events)this._events={__proto__:null},this._eventsCount=0;if(this._maxListeners??=void 0,this[cU]=K?.captureRejections?Boolean(K?.captureRejections):HK[cU])this.emit=qE},HK,YE=function(K,...V){if(K==="error")return R9(this,V);var{_events:Q}=this;if(Q===void 0)return!1;var U=Q[K];if(U===void 0)return!1;let H=U.length>1?U.slice():U;for(let Y=0,{length:z}=H;Y1?U.slice():U;for(let Y=0,{length:z}=H;Y{S2=Symbol.for,cU=Symbol("kCapture"),X9=S2("events.errorMonitor"),HE=Symbol("events.maxEventTargetListeners"),zE=Symbol("events.maxEventTargetListenersWarned"),O9=S2("nodejs.rejection"),A9=S2("nodejs.rejection"),M9=Array.prototype.slice,HK=UU.prototype={};HK._events=void 0;HK._eventsCount=0;HK._maxListeners=void 0;HK.setMaxListeners=function(K){return P2(K,"setMaxListeners",0),this._maxListeners=K,this};HK.constructor=UU;HK.getMaxListeners=function(){return this?._maxListeners??uU};HK.emit=YE;HK.addListener=function(K,V){f8(V);var Q=this._events;if(!Q)Q=this._events={__proto__:null},this._eventsCount=0;else if(Q.newListener)this.emit("newListener",K,V.listener??V);var U=Q[K];if(!U)Q[K]=[V],this._eventsCount++;else{U.push(V);var H=this._maxListeners??uU;if(H>0&&U.length>H&&!U.warned)$9(this,K,U)}return this};HK.on=HK.addListener;HK.prependListener=function(K,V){f8(V);var Q=this._events;if(!Q)Q=this._events={__proto__:null},this._eventsCount=0;else if(Q.newListener)this.emit("newListener",K,V.listener??V);var U=Q[K];if(!U)Q[K]=[V],this._eventsCount++;else{U.unshift(V);var H=this._maxListeners??uU;if(H>0&&U.length>H&&!U.warned)$9(this,K,U)}return this};HK.once=function(K,V){f8(V);let Q=F9.bind(this,K,V);return Q.listener=V,this.addListener(K,Q),this};HK.prependOnceListener=function(K,V){f8(V);let Q=F9.bind(this,K,V);return Q.listener=V,this.prependListener(K,Q),this};HK.removeListener=function(K,V){f8(V);var{_events:Q}=this;if(!Q)return this;var U=Q[K];if(!U)return this;var H=U.length;let Y=-1;for(let z=H-1;z>=0;z--)if(U[z]===V||U[z].listener===V){Y=z;break}if(Y<0)return this;if(Y===0)U.shift();else U.splice(Y,1);if(U.length===0)delete Q[K],this._eventsCount--;return this};HK.off=HK.removeListener;HK.removeAllListeners=function(K){var{_events:V}=this;if(K&&V){if(V[K])delete V[K],this._eventsCount--}else this._events={__proto__:null};return this};HK.listeners=function(K){var{_events:V}=this;if(!V)return[];var Q=V[K];if(!Q)return[];return Q.map((U)=>U.listener??U)};HK.rawListeners=function(K){var{_events:V}=this;if(!V)return[];var Q=V[K];if(!Q)return[];return Q.slice()};HK.listenerCount=function(K){var{_events:V}=this;if(!V)return 0;return V[K]?.length??0};HK.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};HK[cU]=!1;D2=class D2 extends Error{constructor(K="The operation was aborted",V=void 0){if(V!==void 0&&typeof V!=="object")throw EH("options","Object",V);super(K,V);this.code="ABORT_ERR",this.name="AbortError"}};Object.defineProperties(UU,{captureRejections:{get(){return HK[cU]},set(K){ME(K,"EventEmitter.captureRejections"),HK[cU]=K},enumerable:!0},defaultMaxListeners:{enumerable:!0,get:()=>{return uU},set:(K)=>{P2(K,"defaultMaxListeners",0),uU=K}},kMaxEventTargetListeners:{value:HE,enumerable:!1,configurable:!1,writable:!1},kMaxEventTargetListenersWarned:{value:zE,enumerable:!1,configurable:!1,writable:!1}});Object.assign(UU,{once:D9,getEventListeners:S9,getMaxListeners:G9,setMaxListeners:P9,EventEmitter:UU,usingDomains:!1,captureRejectionSymbol:A9,errorMonitor:X9,addAbortListener:T9,init:UU,listenerCount:C9});WE=UU});var T2=wK((md,j9)=>{var w1=(K,V)=>()=>(V||K((V={exports:{}}).exports,V),V.exports),RK=w1((K,V)=>{class Q extends Error{constructor(U){if(!Array.isArray(U))throw TypeError(`Expected input to be an Array, got ${typeof U}`);let H="";for(let Y=0;Y{V.exports={format(Q,...U){return Q.replace(/%([sdifj])/g,function(...[H,Y]){let z=U.shift();if(Y==="f")return z.toFixed(6);else if(Y==="j")return JSON.stringify(z);else if(Y==="s"&&typeof z==="object")return`${z.constructor!==Object?z.constructor.name:""} {}`.trim();else return z.toString()})},inspect(Q){switch(typeof Q){case"string":if(Q.includes("'")){if(!Q.includes('"'))return`"${Q}"`;else if(!Q.includes("`")&&!Q.includes("${"))return`\`${Q}\``}return`'${Q}'`;case"number":if(isNaN(Q))return"NaN";else if(Object.is(Q,-0))return String(Q);return Q;case"bigint":return`${String(Q)}n`;case"boolean":case"undefined":return String(Q);case"object":return"{}"}}}}),VV=w1((K,V)=>{var{format:Q,inspect:U}=E9(),{AggregateError:H}=RK(),Y=globalThis.AggregateError||H,z=Symbol("kIsNodeError"),M=["string","function","number","object","Function","Object","boolean","bigint","symbol"],A=/^([A-Z][a-z0-9]*)+$/,R={};function D(k,f){if(!k)throw new R.ERR_INTERNAL_ASSERTION(f)}function F(k){let f="",j=k.length,_=k[0]==="-"?1:0;for(;j>=_+4;j-=3)f=`_${k.slice(j-3,j)}${f}`;return`${k.slice(0,j)}${f}`}function P(k,f,j){if(typeof f==="function")return D(f.length<=j.length,`Code: ${k}; The provided arguments length (${j.length}) does not match the required ones (${f.length}).`),f(...j);let _=(f.match(/%[dfijoOs]/g)||[]).length;if(D(_===j.length,`Code: ${k}; The provided arguments length (${j.length}) does not match the required ones (${_}).`),j.length===0)return f;return Q(f,...j)}function G(k,f,j){if(!j)j=Error;class _ extends j{constructor(...p){super(P(k,f,p))}toString(){return`${this.name} [${k}]: ${this.message}`}}Object.defineProperties(_.prototype,{name:{value:j.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${k}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),_.prototype.code=k,_.prototype[z]=!0,R[k]=_}function T(k){let f="__node_internal_"+k.name;return Object.defineProperty(k,"name",{value:f}),k}function v(k,f){if(k&&f&&k!==f){if(Array.isArray(f.errors))return f.errors.push(k),f;let j=new Y([f,k],f.message);return j.code=f.code,j}return k||f}class J extends Error{constructor(k="The operation was aborted",f=void 0){if(f!==void 0&&typeof f!=="object")throw new R.ERR_INVALID_ARG_TYPE("options","Object",f);super(k,f);this.code="ABORT_ERR",this.name="AbortError"}}G("ERR_ASSERTION","%s",Error),G("ERR_INVALID_ARG_TYPE",(k,f,j)=>{if(D(typeof k==="string","'name' must be a string"),!Array.isArray(f))f=[f];let _="The ";if(k.endsWith(" argument"))_+=`${k} `;else _+=`"${k}" ${k.includes(".")?"property":"argument"} `;_+="must be ";let p=[],N=[],m=[];for(let L0 of f)if(D(typeof L0==="string","All expected entries have to be of type string"),M.includes(L0))p.push(L0.toLowerCase());else if(A.test(L0))N.push(L0);else D(L0!=="object",'The value "object" should be written as "Object"'),m.push(L0);if(N.length>0){let L0=p.indexOf("object");if(L0!==-1)p.splice(p,L0,1),N.push("Object")}if(p.length>0){switch(p.length){case 1:_+=`of type ${p[0]}`;break;case 2:_+=`one of type ${p[0]} or ${p[1]}`;break;default:{let L0=p.pop();_+=`one of type ${p.join(", ")}, or ${L0}`}}if(N.length>0||m.length>0)_+=" or "}if(N.length>0){switch(N.length){case 1:_+=`an instance of ${N[0]}`;break;case 2:_+=`an instance of ${N[0]} or ${N[1]}`;break;default:{let L0=N.pop();_+=`an instance of ${N.join(", ")}, or ${L0}`}}if(m.length>0)_+=" or "}switch(m.length){case 0:break;case 1:if(m[0].toLowerCase()!==m[0])_+="an ";_+=`${m[0]}`;break;case 2:_+=`one of ${m[0]} or ${m[1]}`;break;default:{let L0=m.pop();_+=`one of ${m.join(", ")}, or ${L0}`}}if(j==null)_+=`. Received ${j}`;else if(typeof j==="function"&&j.name)_+=`. Received function ${j.name}`;else if(typeof j==="object"){var z0;if((z0=j.constructor)!==null&&z0!==void 0&&z0.name)_+=`. Received an instance of ${j.constructor.name}`;else{let L0=U(j,{depth:-1});_+=`. Received ${L0}`}}else{let L0=U(j,{colors:!1});if(L0.length>25)L0=`${L0.slice(0,25)}...`;_+=`. Received type ${typeof j} (${L0})`}return _},TypeError),G("ERR_INVALID_ARG_VALUE",(k,f,j="is invalid")=>{let _=U(f);if(_.length>128)_=_.slice(0,128)+"...";return`The ${k.includes(".")?"property":"argument"} '${k}' ${j}. Received ${_}`},TypeError),G("ERR_INVALID_RETURN_VALUE",(k,f,j)=>{var _;let p=j!==null&&j!==void 0&&(_=j.constructor)!==null&&_!==void 0&&_.name?`instance of ${j.constructor.name}`:`type ${typeof j}`;return`Expected ${k} to be returned from the "${f}" function but got ${p}.`},TypeError),G("ERR_MISSING_ARGS",(...k)=>{D(k.length>0,"At least one arg needs to be specified");let f,j=k.length;switch(k=(Array.isArray(k)?k:[k]).map((_)=>`"${_}"`).join(" or "),j){case 1:f+=`The ${k[0]} argument`;break;case 2:f+=`The ${k[0]} and ${k[1]} arguments`;break;default:{let _=k.pop();f+=`The ${k.join(", ")}, and ${_} arguments`}break}return`${f} must be specified`},TypeError),G("ERR_OUT_OF_RANGE",(k,f,j)=>{D(f,'Missing "range" argument');let _;if(Number.isInteger(j)&&Math.abs(j)>4294967296)_=F(String(j));else if(typeof j==="bigint"){_=String(j);let p=BigInt(2)**BigInt(32);if(j>p||j<-p)_=F(_);_+="n"}else _=U(j);return`The value of "${k}" is out of range. It must be ${f}. Received ${_}`},RangeError),G("ERR_MULTIPLE_CALLBACK","Callback called multiple times",Error),G("ERR_METHOD_NOT_IMPLEMENTED","The %s method is not implemented",Error),G("ERR_STREAM_ALREADY_FINISHED","Cannot call %s after a stream was finished",Error),G("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable",Error),G("ERR_STREAM_DESTROYED","Cannot call %s after a stream was destroyed",Error),G("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),G("ERR_STREAM_PREMATURE_CLOSE","Premature close",Error),G("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF",Error),G("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event",Error),G("ERR_STREAM_WRITE_AFTER_END","write after end",Error),G("ERR_UNKNOWN_ENCODING","Unknown encoding: %s",TypeError),V.exports={AbortError:J,aggregateTwoErrors:T(v),hideStackFrames:T,codes:R}}),XE=w1((K,V)=>{Object.defineProperty(K,"__esModule",{value:!0});var Q=new WeakMap,U=new WeakMap;function H(s){let Z0=Q.get(s);return console.assert(Z0!=null,"'this' is expected an Event object, but got",s),Z0}function Y(s){if(s.passiveListener!=null){if(typeof console<"u"&&typeof console.error==="function")console.error("Unable to preventDefault inside passive event listener invocation.",s.passiveListener);return}if(!s.event.cancelable)return;if(s.canceled=!0,typeof s.event.preventDefault==="function")s.event.preventDefault()}function z(s,Z0){Q.set(this,{eventTarget:s,event:Z0,eventPhase:2,currentTarget:s,canceled:!1,stopped:!1,immediateStopped:!1,passiveListener:null,timeStamp:Z0.timeStamp||Date.now()}),Object.defineProperty(this,"isTrusted",{value:!1,enumerable:!0});let L=Object.keys(Z0);for(let O=0;O0){let s=Array(arguments.length);for(let Z0=0;Z0{Object.defineProperty(K,"__esModule",{value:!0});var Q=XE();class U extends Q.EventTarget{constructor(){super();throw TypeError("AbortSignal cannot be constructed directly")}get aborted(){let D=z.get(this);if(typeof D!=="boolean")throw TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this===null?"null":typeof this}`);return D}}Q.defineEventAttribute(U.prototype,"abort");function H(){let D=Object.create(U.prototype);return Q.EventTarget.call(D),z.set(D,!1),D}function Y(D){if(z.get(D)!==!1)return;z.set(D,!0),D.dispatchEvent({type:"abort"})}var z=new WeakMap;if(Object.defineProperties(U.prototype,{aborted:{enumerable:!0}}),typeof Symbol==="function"&&typeof Symbol.toStringTag==="symbol")Object.defineProperty(U.prototype,Symbol.toStringTag,{configurable:!0,value:"AbortSignal"});class M{constructor(){A.set(this,H())}get signal(){return R(this)}abort(){Y(R(this))}}var A=new WeakMap;function R(D){let F=A.get(D);if(F==null)throw TypeError(`Expected 'this' to be an 'AbortController' object, but got ${D===null?"null":typeof D}`);return F}if(Object.defineProperties(M.prototype,{signal:{enumerable:!0},abort:{enumerable:!0}}),typeof Symbol==="function"&&typeof Symbol.toStringTag==="symbol")Object.defineProperty(M.prototype,Symbol.toStringTag,{configurable:!0,value:"AbortController"});K.AbortController=M,K.AbortSignal=U,K.default=M,V.exports=M,V.exports.AbortController=V.exports.default=M,V.exports.AbortSignal=U}),OV=w1((K,V)=>{var Q=(cK(),D1(pK)),{format:U,inspect:H}=E9(),{codes:{ERR_INVALID_ARG_TYPE:Y}}=VV(),{kResistStopPropagation:z,AggregateError:M,SymbolDispose:A}=RK(),R=globalThis.AbortSignal||x8().AbortSignal,D=globalThis.AbortController||x8().AbortController,F=Object.getPrototypeOf(async function(){}).constructor,P=globalThis.Blob||Q.Blob,G=typeof P<"u"?function(J){return J instanceof P}:function(J){return!1},T=(J,k)=>{if(J!==void 0&&(J===null||typeof J!=="object"||!("aborted"in J)))throw new Y(k,"AbortSignal",J)},v=(J,k)=>{if(typeof J!=="function")throw new Y(k,"Function",J)};V.exports={AggregateError:M,kEmptyObject:Object.freeze({}),once(J){let k=!1;return function(...f){if(k)return;k=!0,J.apply(this,f)}},createDeferredPromise:function(){let J,k;return{promise:new Promise((f,j)=>{J=f,k=j}),resolve:J,reject:k}},promisify(J){return new Promise((k,f)=>{J((j,..._)=>{if(j)return f(j);return k(..._)})})},debuglog(){return function(){}},format:U,inspect:H,types:{isAsyncFunction(J){return J instanceof F},isArrayBufferView(J){return ArrayBuffer.isView(J)}},isBlob:G,deprecate(J,k){return J},addAbortListener:(j8(),D1(w8)).addAbortListener||function(J,k){if(J===void 0)throw new Y("signal","AbortSignal",J);T(J,"signal"),v(k,"listener");let f;if(J.aborted)queueMicrotask(()=>k());else J.addEventListener("abort",k,{__proto__:null,once:!0,[z]:!0}),f=()=>{J.removeEventListener("abort",k)};return{__proto__:null,[A](){var j;(j=f)===null||j===void 0||j()}}},AbortSignalAny:R.any||function(J){if(J.length===1)return J[0];let k=new D,f=()=>k.abort();return J.forEach((j)=>{T(j,"signals"),j.addEventListener("abort",f,{once:!0})}),k.signal.addEventListener("abort",()=>{J.forEach((j)=>j.removeEventListener("abort",f))},{once:!0}),k.signal}},V.exports.promisify.custom=Symbol.for("nodejs.util.promisify.custom")}),_8=w1((K,V)=>{var{ArrayIsArray:Q,ArrayPrototypeIncludes:U,ArrayPrototypeJoin:H,ArrayPrototypeMap:Y,NumberIsInteger:z,NumberIsNaN:M,NumberMAX_SAFE_INTEGER:A,NumberMIN_SAFE_INTEGER:R,NumberParseInt:D,ObjectPrototypeHasOwnProperty:F,RegExpPrototypeExec:P,String:G,StringPrototypeToUpperCase:T,StringPrototypeTrim:v}=RK(),{hideStackFrames:J,codes:{ERR_SOCKET_BAD_PORT:k,ERR_INVALID_ARG_TYPE:f,ERR_INVALID_ARG_VALUE:j,ERR_OUT_OF_RANGE:_,ERR_UNKNOWN_SIGNAL:p}}=VV(),{normalizeEncoding:N}=OV(),{isAsyncFunction:m,isArrayBufferView:z0}=OV().types,L0={};function s(d){return d===(d|0)}function Z0(d){return d===d>>>0}var L=/^[0-7]+$/,O="must be a 32-bit unsigned integer or an octal string";function X(d,a,o0){if(typeof d>"u")d=o0;if(typeof d==="string"){if(P(L,d)===null)throw new j(a,d,O);d=D(d,8)}return C(d,a),d}var q=J((d,a,o0=R,V0=A)=>{if(typeof d!=="number")throw new f(a,"number",d);if(!z(d))throw new _(a,"an integer",d);if(dV0)throw new _(a,`>= ${o0} && <= ${V0}`,d)}),W=J((d,a,o0=-2147483648,V0=2147483647)=>{if(typeof d!=="number")throw new f(a,"number",d);if(!z(d))throw new _(a,"an integer",d);if(dV0)throw new _(a,`>= ${o0} && <= ${V0}`,d)}),C=J((d,a,o0=!1)=>{if(typeof d!=="number")throw new f(a,"number",d);if(!z(d))throw new _(a,"an integer",d);let V0=o0?1:0,W0=4294967295;if(dW0)throw new _(a,`>= ${V0} && <= ${W0}`,d)});function I(d,a){if(typeof d!=="string")throw new f(a,"string",d)}function $(d,a,o0=void 0,V0){if(typeof d!=="number")throw new f(a,"number",d);if(o0!=null&&dV0||(o0!=null||V0!=null)&&M(d))throw new _(a,`${o0!=null?`>= ${o0}`:""}${o0!=null&&V0!=null?" && ":""}${V0!=null?`<= ${V0}`:""}`,d)}var Z=J((d,a,o0)=>{if(!U(o0,d)){let V0="must be one of: "+H(Y(o0,(W0)=>typeof W0==="string"?`'${W0}'`:G(W0)),", ");throw new j(a,d,V0)}});function S(d,a){if(typeof d!=="boolean")throw new f(a,"boolean",d)}function B(d,a,o0){return d==null||!F(d,a)?o0:d[a]}var E=J((d,a,o0=null)=>{let V0=B(o0,"allowArray",!1),W0=B(o0,"allowFunction",!1);if(!B(o0,"nullable",!1)&&d===null||!V0&&Q(d)||typeof d!=="object"&&(!W0||typeof d!=="function"))throw new f(a,"Object",d)}),w=J((d,a)=>{if(d!=null&&typeof d!=="object"&&typeof d!=="function")throw new f(a,"a dictionary",d)}),h=J((d,a,o0=0)=>{if(!Q(d))throw new f(a,"Array",d);if(d.length{if(!z0(d))throw new f(a,["Buffer","TypedArray","DataView"],d)});function A0(d,a){let o0=N(a),V0=d.length;if(o0==="hex"&&V0%2!==0)throw new j("encoding",a,`is invalid for data of length ${V0}`)}function e(d,a="Port",o0=!0){if(typeof d!=="number"&&typeof d!=="string"||typeof d==="string"&&v(d).length===0||+d!==+d>>>0||d>65535||d===0&&!o0)throw new k(a,d,o0);return d|0}var Y0=J((d,a)=>{if(d!==void 0&&(d===null||typeof d!=="object"||!("aborted"in d)))throw new f(a,"AbortSignal",d)}),r0=J((d,a)=>{if(typeof d!=="function")throw new f(a,"Function",d)}),b=J((d,a)=>{if(typeof d!=="function"||m(d))throw new f(a,"Function",d)}),o=J((d,a)=>{if(d!==void 0)throw new f(a,"undefined",d)});function R0(d,a,o0){if(!U(o0,d))throw new f(a,`('${H(o0,"|")}')`,d)}var Q0=/^(?:<[^>]*>)(?:\s*;\s*[^;"\s]+(?:=(")?[^;"\s]*\1)?)*$/;function H0(d,a){if(typeof d>"u"||!P(Q0,d))throw new j(a,d,'must be an array or string of format "; rel=preload; as=style"')}function N0(d){if(typeof d==="string")return H0(d,"hints"),d;else if(Q(d)){let a=d.length,o0="";if(a===0)return o0;for(let V0=0;V0; rel=preload; as=style"')}V.exports={isInt32:s,isUint32:Z0,parseFileMode:X,validateArray:h,validateStringArray:u,validateBooleanArray:t,validateAbortSignalArray:F0,validateBoolean:S,validateBuffer:r,validateDictionary:w,validateEncoding:A0,validateFunction:r0,validateInt32:W,validateInteger:q,validateNumber:$,validateObject:E,validateOneOf:Z,validatePlainFunction:b,validatePort:e,validateSignalName:K0,validateString:I,validateUint32:C,validateUndefined:o,validateUnion:R0,validateAbortSignal:Y0,validateLinkHeaderValue:N0}}),bU=w1((K,V)=>{V.exports=globalThis.process}),xQ=w1((K,V)=>{var{SymbolAsyncIterator:Q,SymbolIterator:U,SymbolFor:H}=RK(),Y=H("nodejs.stream.destroyed"),z=H("nodejs.stream.errored"),M=H("nodejs.stream.readable"),A=H("nodejs.stream.writable"),R=H("nodejs.stream.disturbed"),D=H("nodejs.webstream.isClosedPromise"),F=H("nodejs.webstream.controllerErrorFunction");function P(B,E=!1){var w;return!!(B&&typeof B.pipe==="function"&&typeof B.on==="function"&&(!E||typeof B.pause==="function"&&typeof B.resume==="function")&&(!B._writableState||((w=B._readableState)===null||w===void 0?void 0:w.readable)!==!1)&&(!B._writableState||B._readableState))}function G(B){var E;return!!(B&&typeof B.write==="function"&&typeof B.on==="function"&&(!B._readableState||((E=B._writableState)===null||E===void 0?void 0:E.writable)!==!1))}function T(B){return!!(B&&typeof B.pipe==="function"&&B._readableState&&typeof B.on==="function"&&typeof B.write==="function")}function v(B){return B&&(B._readableState||B._writableState||typeof B.write==="function"&&typeof B.on==="function"||typeof B.pipe==="function"&&typeof B.on==="function")}function J(B){return!!(B&&!v(B)&&typeof B.pipeThrough==="function"&&typeof B.getReader==="function"&&typeof B.cancel==="function")}function k(B){return!!(B&&!v(B)&&typeof B.getWriter==="function"&&typeof B.abort==="function")}function f(B){return!!(B&&!v(B)&&typeof B.readable==="object"&&typeof B.writable==="object")}function j(B){return J(B)||k(B)||f(B)}function _(B,E){if(B==null)return!1;if(E===!0)return typeof B[Q]==="function";if(E===!1)return typeof B[U]==="function";return typeof B[Q]==="function"||typeof B[U]==="function"}function p(B){if(!v(B))return null;let{_writableState:E,_readableState:w}=B,h=E||w;return!!(B.destroyed||B[Y]||h!==null&&h!==void 0&&h.destroyed)}function N(B){if(!G(B))return null;if(B.writableEnded===!0)return!0;let E=B._writableState;if(E!==null&&E!==void 0&&E.errored)return!1;if(typeof(E===null||E===void 0?void 0:E.ended)!=="boolean")return null;return E.ended}function m(B,E){if(!G(B))return null;if(B.writableFinished===!0)return!0;let w=B._writableState;if(w!==null&&w!==void 0&&w.errored)return!1;if(typeof(w===null||w===void 0?void 0:w.finished)!=="boolean")return null;return!!(w.finished||E===!1&&w.ended===!0&&w.length===0)}function z0(B){if(!P(B))return null;if(B.readableEnded===!0)return!0;let E=B._readableState;if(!E||E.errored)return!1;if(typeof(E===null||E===void 0?void 0:E.ended)!=="boolean")return null;return E.ended}function L0(B,E){if(!P(B))return null;let w=B._readableState;if(w!==null&&w!==void 0&&w.errored)return!1;if(typeof(w===null||w===void 0?void 0:w.endEmitted)!=="boolean")return null;return!!(w.endEmitted||E===!1&&w.ended===!0&&w.length===0)}function s(B){if(B&&B[M]!=null)return B[M];if(typeof(B===null||B===void 0?void 0:B.readable)!=="boolean")return null;if(p(B))return!1;return P(B)&&B.readable&&!L0(B)}function Z0(B){if(B&&B[A]!=null)return B[A];if(typeof(B===null||B===void 0?void 0:B.writable)!=="boolean")return null;if(p(B))return!1;return G(B)&&B.writable&&!N(B)}function L(B,E){if(!v(B))return null;if(p(B))return!0;if((E===null||E===void 0?void 0:E.readable)!==!1&&s(B))return!1;if((E===null||E===void 0?void 0:E.writable)!==!1&&Z0(B))return!1;return!0}function O(B){var E,w;if(!v(B))return null;if(B.writableErrored)return B.writableErrored;return(E=(w=B._writableState)===null||w===void 0?void 0:w.errored)!==null&&E!==void 0?E:null}function X(B){var E,w;if(!v(B))return null;if(B.readableErrored)return B.readableErrored;return(E=(w=B._readableState)===null||w===void 0?void 0:w.errored)!==null&&E!==void 0?E:null}function q(B){if(!v(B))return null;if(typeof B.closed==="boolean")return B.closed;let{_writableState:E,_readableState:w}=B;if(typeof(E===null||E===void 0?void 0:E.closed)==="boolean"||typeof(w===null||w===void 0?void 0:w.closed)==="boolean")return(E===null||E===void 0?void 0:E.closed)||(w===null||w===void 0?void 0:w.closed);if(typeof B._closed==="boolean"&&W(B))return B._closed;return null}function W(B){return typeof B._closed==="boolean"&&typeof B._defaultKeepAlive==="boolean"&&typeof B._removedConnection==="boolean"&&typeof B._removedContLen==="boolean"}function C(B){return typeof B._sent100==="boolean"&&W(B)}function I(B){var E;return typeof B._consuming==="boolean"&&typeof B._dumped==="boolean"&&((E=B.req)===null||E===void 0?void 0:E.upgradeOrConnect)===void 0}function $(B){if(!v(B))return null;let{_writableState:E,_readableState:w}=B,h=E||w;return!h&&C(B)||!!(h&&h.autoDestroy&&h.emitClose&&h.closed===!1)}function Z(B){var E;return!!(B&&((E=B[R])!==null&&E!==void 0?E:B.readableDidRead||B.readableAborted))}function S(B){var E,w,h,u,t,F0,K0,r,A0,e;return!!(B&&((E=(w=(h=(u=(t=(F0=B[z])!==null&&F0!==void 0?F0:B.readableErrored)!==null&&t!==void 0?t:B.writableErrored)!==null&&u!==void 0?u:(K0=B._readableState)===null||K0===void 0?void 0:K0.errorEmitted)!==null&&h!==void 0?h:(r=B._writableState)===null||r===void 0?void 0:r.errorEmitted)!==null&&w!==void 0?w:(A0=B._readableState)===null||A0===void 0?void 0:A0.errored)!==null&&E!==void 0?E:(e=B._writableState)===null||e===void 0?void 0:e.errored))}V.exports={isDestroyed:p,kIsDestroyed:Y,isDisturbed:Z,kIsDisturbed:R,isErrored:S,kIsErrored:z,isReadable:s,kIsReadable:M,kIsClosedPromise:D,kControllerErrorFunction:F,kIsWritable:A,isClosed:q,isDuplexNodeStream:T,isFinished:L,isIterable:_,isReadableNodeStream:P,isReadableStream:J,isReadableEnded:z0,isReadableFinished:L0,isReadableErrored:X,isNodeStream:v,isWebStream:j,isWritable:Z0,isWritableNodeStream:G,isWritableStream:k,isWritableEnded:N,isWritableFinished:m,isWritableErrored:O,isServerRequest:I,isServerResponse:C,willEmitClose:$,isTransformStream:f}}),HU=w1((K,V)=>{var Q=bU(),{AbortError:U,codes:H}=VV(),{ERR_INVALID_ARG_TYPE:Y,ERR_STREAM_PREMATURE_CLOSE:z}=H,{kEmptyObject:M,once:A}=OV(),{validateAbortSignal:R,validateFunction:D,validateObject:F,validateBoolean:P}=_8(),{Promise:G,PromisePrototypeThen:T,SymbolDispose:v}=RK(),{isClosed:J,isReadable:k,isReadableNodeStream:f,isReadableStream:j,isReadableFinished:_,isReadableErrored:p,isWritable:N,isWritableNodeStream:m,isWritableStream:z0,isWritableFinished:L0,isWritableErrored:s,isNodeStream:Z0,willEmitClose:L,kIsClosedPromise:O}=xQ(),X;function q(Z){return Z.setHeader&&typeof Z.abort==="function"}var W=()=>{};function C(Z,S,B){var E,w;if(arguments.length===2)B=S,S=M;else if(S==null)S=M;else F(S,"options");if(D(B,"callback"),R(S.signal,"options.signal"),B=A(B),j(Z)||z0(Z))return I(Z,S,B);if(!Z0(Z))throw new Y("stream",["ReadableStream","WritableStream","Stream"],Z);let h=(E=S.readable)!==null&&E!==void 0?E:f(Z),u=(w=S.writable)!==null&&w!==void 0?w:m(Z),t=Z._writableState,F0=Z._readableState,K0=()=>{if(!Z.writable)e()},r=L(Z)&&f(Z)===h&&m(Z)===u,A0=L0(Z,!1),e=()=>{if(A0=!0,Z.destroyed)r=!1;if(r&&(!Z.readable||h))return;if(!h||Y0)B.call(Z)},Y0=_(Z,!1),r0=()=>{if(Y0=!0,Z.destroyed)r=!1;if(r&&(!Z.writable||u))return;if(!u||A0)B.call(Z)},b=(d)=>{B.call(Z,d)},o=J(Z),R0=()=>{o=!0;let d=s(Z)||p(Z);if(d&&typeof d!=="boolean")return B.call(Z,d);if(h&&!Y0&&f(Z,!0)){if(!_(Z,!1))return B.call(Z,new z)}if(u&&!A0){if(!L0(Z,!1))return B.call(Z,new z)}B.call(Z)},Q0=()=>{o=!0;let d=s(Z)||p(Z);if(d&&typeof d!=="boolean")return B.call(Z,d);B.call(Z)},H0=()=>{Z.req.on("finish",e)};if(q(Z)){if(Z.on("complete",e),!r)Z.on("abort",R0);if(Z.req)H0();else Z.on("request",H0)}else if(u&&!t)Z.on("end",K0),Z.on("close",K0);if(!r&&typeof Z.aborted==="boolean")Z.on("aborted",R0);if(Z.on("end",r0),Z.on("finish",e),S.error!==!1)Z.on("error",b);if(Z.on("close",R0),o)Q.nextTick(R0);else if(t!==null&&t!==void 0&&t.errorEmitted||F0!==null&&F0!==void 0&&F0.errorEmitted){if(!r)Q.nextTick(Q0)}else if(!h&&(!r||k(Z))&&(A0||N(Z)===!1))Q.nextTick(Q0);else if(!u&&(!r||N(Z))&&(Y0||k(Z)===!1))Q.nextTick(Q0);else if(F0&&Z.req&&Z.aborted)Q.nextTick(Q0);let N0=()=>{if(B=W,Z.removeListener("aborted",R0),Z.removeListener("complete",e),Z.removeListener("abort",R0),Z.removeListener("request",H0),Z.req)Z.req.removeListener("finish",e);Z.removeListener("end",K0),Z.removeListener("close",K0),Z.removeListener("finish",e),Z.removeListener("end",r0),Z.removeListener("error",b),Z.removeListener("close",R0)};if(S.signal&&!o){let d=()=>{let a=B;N0(),a.call(Z,new U(void 0,{cause:S.signal.reason}))};if(S.signal.aborted)Q.nextTick(d);else{X=X||OV().addAbortListener;let a=X(S.signal,d),o0=B;B=A((...V0)=>{a[v](),o0.apply(Z,V0)})}}return N0}function I(Z,S,B){let E=!1,w=W;if(S.signal)if(w=()=>{E=!0,B.call(Z,new U(void 0,{cause:S.signal.reason}))},S.signal.aborted)Q.nextTick(w);else{X=X||OV().addAbortListener;let u=X(S.signal,w),t=B;B=A((...F0)=>{u[v](),t.apply(Z,F0)})}let h=(...u)=>{if(!E)Q.nextTick(()=>B.apply(Z,u))};return T(Z[O].promise,h,h),W}function $(Z,S){var B;let E=!1;if(S===null)S=M;if((B=S)!==null&&B!==void 0&&B.cleanup)P(S.cleanup,"cleanup"),E=S.cleanup;return new G((w,h)=>{let u=C(Z,S,(t)=>{if(E)u();if(t)h(t);else w()})})}V.exports=C,V.exports.finished=$}),BH=w1((K,V)=>{var Q=bU(),{aggregateTwoErrors:U,codes:{ERR_MULTIPLE_CALLBACK:H},AbortError:Y}=VV(),{Symbol:z}=RK(),{kIsDestroyed:M,isDestroyed:A,isFinished:R,isServerRequest:D}=xQ(),F=z("kDestroy"),P=z("kConstruct");function G(L,O,X){if(L){if(L.stack,O&&!O.errored)O.errored=L;if(X&&!X.errored)X.errored=L}}function T(L,O){let X=this._readableState,q=this._writableState,W=q||X;if(q!==null&&q!==void 0&&q.destroyed||X!==null&&X!==void 0&&X.destroyed){if(typeof O==="function")O();return this}if(G(L,q,X),q)q.destroyed=!0;if(X)X.destroyed=!0;if(!W.constructed)this.once(F,function(C){v(this,U(C,L),O)});else v(this,L,O);return this}function v(L,O,X){let q=!1;function W(C){if(q)return;q=!0;let{_readableState:I,_writableState:$}=L;if(G(C,$,I),$)$.closed=!0;if(I)I.closed=!0;if(typeof X==="function")X(C);if(C)Q.nextTick(J,L,C);else Q.nextTick(k,L)}try{L._destroy(O||null,W)}catch(C){W(C)}}function J(L,O){f(L,O),k(L)}function k(L){let{_readableState:O,_writableState:X}=L;if(X)X.closeEmitted=!0;if(O)O.closeEmitted=!0;if(X!==null&&X!==void 0&&X.emitClose||O!==null&&O!==void 0&&O.emitClose)L.emit("close")}function f(L,O){let{_readableState:X,_writableState:q}=L;if(q!==null&&q!==void 0&&q.errorEmitted||X!==null&&X!==void 0&&X.errorEmitted)return;if(q)q.errorEmitted=!0;if(X)X.errorEmitted=!0;L.emit("error",O)}function j(){let L=this._readableState,O=this._writableState;if(L)L.constructed=!0,L.closed=!1,L.closeEmitted=!1,L.destroyed=!1,L.errored=null,L.errorEmitted=!1,L.reading=!1,L.ended=L.readable===!1,L.endEmitted=L.readable===!1;if(O)O.constructed=!0,O.destroyed=!1,O.closed=!1,O.closeEmitted=!1,O.errored=null,O.errorEmitted=!1,O.finalCalled=!1,O.prefinished=!1,O.ended=O.writable===!1,O.ending=O.writable===!1,O.finished=O.writable===!1}function _(L,O,X){let{_readableState:q,_writableState:W}=L;if(W!==null&&W!==void 0&&W.destroyed||q!==null&&q!==void 0&&q.destroyed)return this;if(q!==null&&q!==void 0&&q.autoDestroy||W!==null&&W!==void 0&&W.autoDestroy)L.destroy(O);else if(O){if(O.stack,W&&!W.errored)W.errored=O;if(q&&!q.errored)q.errored=O;if(X)Q.nextTick(f,L,O);else f(L,O)}}function p(L,O){if(typeof L._construct!=="function")return;let{_readableState:X,_writableState:q}=L;if(X)X.constructed=!1;if(q)q.constructed=!1;if(L.once(P,O),L.listenerCount(P)>1)return;Q.nextTick(N,L)}function N(L){let O=!1;function X(q){if(O){_(L,q!==null&&q!==void 0?q:new H);return}O=!0;let{_readableState:W,_writableState:C}=L,I=C||W;if(W)W.constructed=!0;if(C)C.constructed=!0;if(I.destroyed)L.emit(F,q);else if(q)_(L,q,!0);else Q.nextTick(m,L)}try{L._construct((q)=>{Q.nextTick(X,q)})}catch(q){Q.nextTick(X,q)}}function m(L){L.emit(P)}function z0(L){return(L===null||L===void 0?void 0:L.setHeader)&&typeof L.abort==="function"}function L0(L){L.emit("close")}function s(L,O){L.emit("error",O),Q.nextTick(L0,L)}function Z0(L,O){if(!L||A(L))return;if(!O&&!R(L))O=new Y;if(D(L))L.socket=null,L.destroy(O);else if(z0(L))L.abort();else if(z0(L.req))L.req.abort();else if(typeof L.destroy==="function")L.destroy(O);else if(typeof L.close==="function")L.close();else if(O)Q.nextTick(s,L,O);else Q.nextTick(L0,L);if(!L.destroyed)L[M]=!0}V.exports={construct:p,destroyer:Z0,destroy:T,undestroy:j,errorOrDestroy:_}}),C2=w1((K,V)=>{var{ArrayIsArray:Q,ObjectSetPrototypeOf:U}=RK(),{EventEmitter:H}=(j8(),D1(w8));function Y(M){H.call(this,M)}U(Y.prototype,H.prototype),U(Y,H),Y.prototype.pipe=function(M,A){let R=this;function D(k){if(M.writable&&M.write(k)===!1&&R.pause)R.pause()}R.on("data",D);function F(){if(R.readable&&R.resume)R.resume()}if(M.on("drain",F),!M._isStdio&&(!A||A.end!==!1))R.on("end",G),R.on("close",T);let P=!1;function G(){if(P)return;P=!0,M.end()}function T(){if(P)return;if(P=!0,typeof M.destroy==="function")M.destroy()}function v(k){if(J(),H.listenerCount(this,"error")===0)this.emit("error",k)}z(R,"error",v),z(M,"error",v);function J(){R.removeListener("data",D),M.removeListener("drain",F),R.removeListener("end",G),R.removeListener("close",T),R.removeListener("error",v),M.removeListener("error",v),R.removeListener("end",J),R.removeListener("close",J),M.removeListener("close",J)}return R.on("end",J),R.on("close",J),M.on("close",J),M.emit("pipe",R),M};function z(M,A,R){if(typeof M.prependListener==="function")return M.prependListener(A,R);if(!M._events||!M._events[A])M.on(A,R);else if(Q(M._events[A]))M._events[A].unshift(R);else M._events[A]=[R,M._events[A]]}V.exports={Stream:Y,prependListener:z}}),fL=w1((K,V)=>{var{SymbolDispose:Q}=RK(),{AbortError:U,codes:H}=VV(),{isNodeStream:Y,isWebStream:z,kControllerErrorFunction:M}=xQ(),A=HU(),{ERR_INVALID_ARG_TYPE:R}=H,D,F=(P,G)=>{if(typeof P!=="object"||!("aborted"in P))throw new R(G,"AbortSignal",P)};V.exports.addAbortSignal=function(P,G){if(F(P,"signal"),!Y(G)&&!z(G))throw new R("stream",["ReadableStream","WritableStream","Stream"],G);return V.exports.addAbortSignalNoValidate(P,G)},V.exports.addAbortSignalNoValidate=function(P,G){if(typeof P!=="object"||!("aborted"in P))return G;let T=Y(G)?()=>{G.destroy(new U(void 0,{cause:P.reason}))}:()=>{G[M](new U(void 0,{cause:P.reason}))};if(P.aborted)T();else{D=D||OV().addAbortListener;let v=D(P,T);A(G,v[Q])}return G}}),AE=w1((K,V)=>{var{StringPrototypeSlice:Q,SymbolIterator:U,TypedArrayPrototypeSet:H,Uint8Array:Y}=RK(),{Buffer:z}=(cK(),D1(pK)),{inspect:M}=OV();V.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(A){let R={data:A,next:null};if(this.length>0)this.tail.next=R;else this.head=R;this.tail=R,++this.length}unshift(A){let R={data:A,next:this.head};if(this.length===0)this.tail=R;this.head=R,++this.length}shift(){if(this.length===0)return;let A=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;return--this.length,A}clear(){this.head=this.tail=null,this.length=0}join(A){if(this.length===0)return"";let R=this.head,D=""+R.data;while((R=R.next)!==null)D+=A+R.data;return D}concat(A){if(this.length===0)return z.alloc(0);let R=z.allocUnsafe(A>>>0),D=this.head,F=0;while(D)H(R,D.data,F),F+=D.data.length,D=D.next;return R}consume(A,R){let D=this.head.data;if(AP.length)R+=P,A-=P.length;else{if(A===P.length)if(R+=P,++F,D.next)this.head=D.next;else this.head=this.tail=null;else R+=Q(P,0,A),this.head=D,D.data=Q(P,A);break}++F}while((D=D.next)!==null);return this.length-=F,R}_getBuffer(A){let R=z.allocUnsafe(A),D=A,F=this.head,P=0;do{let G=F.data;if(A>G.length)H(R,G,D-A),A-=G.length;else{if(A===G.length)if(H(R,G,D-A),++P,F.next)this.head=F.next;else this.head=this.tail=null;else H(R,new Y(G.buffer,G.byteOffset,A),D-A),this.head=F,F.data=G.slice(A);break}++P}while((F=F.next)!==null);return this.length-=P,R}[Symbol.for("nodejs.util.inspect.custom")](A,R){return M(this,{...R,depth:0,customInspect:!1})}}}),wL=w1((K,V)=>{var{MathFloor:Q,NumberIsInteger:U}=RK(),{validateInteger:H}=_8(),{ERR_INVALID_ARG_VALUE:Y}=VV().codes,z=16384,M=16;function A(P,G,T){return P.highWaterMark!=null?P.highWaterMark:G?P[T]:null}function R(P){return P?M:z}function D(P,G){if(H(G,"value",0),P)M=G;else z=G}function F(P,G,T,v){let J=A(G,v,T);if(J!=null){if(!U(J)||J<0){let k=v?`options.${T}`:"options.highWaterMark";throw new Y(k,J)}return Q(J)}return R(P.objectMode)}V.exports={getHighWaterMark:F,getDefaultHighWaterMark:R,setDefaultHighWaterMark:D}}),RE=w1((K,V)=>{/*! safe-buffer. MIT License. Feross Aboukhadijeh */var Q=(cK(),D1(pK)),U=Q.Buffer;function H(z,M){for(var A in z)M[A]=z[A]}if(U.from&&U.alloc&&U.allocUnsafe&&U.allocUnsafeSlow)V.exports=Q;else H(Q,K),K.Buffer=Y;function Y(z,M,A){return U(z,M,A)}Y.prototype=Object.create(U.prototype),H(U,Y),Y.from=function(z,M,A){if(typeof z==="number")throw TypeError("Argument must not be a number");return U(z,M,A)},Y.alloc=function(z,M,A){if(typeof z!=="number")throw TypeError("Argument must be a number");var R=U(z);if(M!==void 0)if(typeof A==="string")R.fill(M,A);else R.fill(M);else R.fill(0);return R},Y.allocUnsafe=function(z){if(typeof z!=="number")throw TypeError("Argument must be a number");return U(z)},Y.allocUnsafeSlow=function(z){if(typeof z!=="number")throw TypeError("Argument must be a number");return Q.SlowBuffer(z)}}),$E=w1((K)=>{var V=RE().Buffer,Q=V.isEncoding||function(f){switch(f=""+f,f&&f.toLowerCase()){case"hex":case"utf8":case"utf-8":case"ascii":case"binary":case"base64":case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":case"raw":return!0;default:return!1}};function U(f){if(!f)return"utf8";var j;while(!0)switch(f){case"utf8":case"utf-8":return"utf8";case"ucs2":case"ucs-2":case"utf16le":case"utf-16le":return"utf16le";case"latin1":case"binary":return"latin1";case"base64":case"ascii":case"hex":return f;default:if(j)return;f=(""+f).toLowerCase(),j=!0}}function H(f){var j=U(f);if(typeof j!=="string"&&(V.isEncoding===Q||!Q(f)))throw Error("Unknown encoding: "+f);return j||f}K.StringDecoder=Y;function Y(f){this.encoding=H(f);var j;switch(this.encoding){case"utf16le":this.text=P,this.end=G,j=4;break;case"utf8":this.fillLast=R,j=4;break;case"base64":this.text=T,this.end=v,j=3;break;default:this.write=J,this.end=k;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=V.allocUnsafe(j)}Y.prototype.write=function(f){if(f.length===0)return"";var j,_;if(this.lastNeed){if(j=this.fillLast(f),j===void 0)return"";_=this.lastNeed,this.lastNeed=0}else _=0;if(_>5===6)return 2;else if(f>>4===14)return 3;else if(f>>3===30)return 4;return f>>6===2?-1:-2}function M(f,j,_){var p=j.length-1;if(p<_)return 0;var N=z(j[p]);if(N>=0){if(N>0)f.lastNeed=N-1;return N}if(--p<_||N===-2)return 0;if(N=z(j[p]),N>=0){if(N>0)f.lastNeed=N-2;return N}if(--p<_||N===-2)return 0;if(N=z(j[p]),N>=0){if(N>0)if(N===2)N=0;else f.lastNeed=N-3;return N}return 0}function A(f,j,_){if((j[0]&192)!==128)return f.lastNeed=0,"ļæ½";if(f.lastNeed>1&&j.length>1){if((j[1]&192)!==128)return f.lastNeed=1,"ļæ½";if(f.lastNeed>2&&j.length>2){if((j[2]&192)!==128)return f.lastNeed=2,"ļæ½"}}}function R(f){var j=this.lastTotal-this.lastNeed,_=A(this,f,j);if(_!==void 0)return _;if(this.lastNeed<=f.length)return f.copy(this.lastChar,j,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);f.copy(this.lastChar,j,0,f.length),this.lastNeed-=f.length}function D(f,j){var _=M(this,f,j);if(!this.lastNeed)return f.toString("utf8",j);this.lastTotal=_;var p=f.length-(_-this.lastNeed);return f.copy(this.lastChar,0,p),f.toString("utf8",j,p)}function F(f){var j=f&&f.length?this.write(f):"";if(this.lastNeed)return j+"ļæ½";return j}function P(f,j){if((f.length-j)%2===0){var _=f.toString("utf16le",j);if(_){var p=_.charCodeAt(_.length-1);if(p>=55296&&p<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=f[f.length-2],this.lastChar[1]=f[f.length-1],_.slice(0,-1)}return _}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=f[f.length-1],f.toString("utf16le",j,f.length-1)}function G(f){var j=f&&f.length?this.write(f):"";if(this.lastNeed){var _=this.lastTotal-this.lastNeed;return j+this.lastChar.toString("utf16le",0,_)}return j}function T(f,j){var _=(f.length-j)%3;if(_===0)return f.toString("base64",j);if(this.lastNeed=3-_,this.lastTotal=3,_===1)this.lastChar[0]=f[f.length-1];else this.lastChar[0]=f[f.length-2],this.lastChar[1]=f[f.length-1];return f.toString("base64",j,f.length-_)}function v(f){var j=f&&f.length?this.write(f):"";if(this.lastNeed)return j+this.lastChar.toString("base64",0,3-this.lastNeed);return j}function J(f){return f.toString(this.encoding)}function k(f){return f&&f.length?this.write(f):""}}),B9=w1((K,V)=>{var Q=bU(),{PromisePrototypeThen:U,SymbolAsyncIterator:H,SymbolIterator:Y}=RK(),{Buffer:z}=(cK(),D1(pK)),{ERR_INVALID_ARG_TYPE:M,ERR_STREAM_NULL_VALUES:A}=VV().codes;function R(D,F,P){let G;if(typeof F==="string"||F instanceof z)return new D({objectMode:!0,...P,read(){this.push(F),this.push(null)}});let T;if(F&&F[H])T=!0,G=F[H]();else if(F&&F[Y])T=!1,G=F[Y]();else throw new M("iterable",["Iterable"],F);let v=new D({objectMode:!0,highWaterMark:1,...P}),J=!1;v._read=function(){if(!J)J=!0,f()},v._destroy=function(j,_){U(k(j),()=>Q.nextTick(_,j),(p)=>Q.nextTick(_,p||j))};async function k(j){let _=j!==void 0&&j!==null,p=typeof G.throw==="function";if(_&&p){let{value:N,done:m}=await G.throw(j);if(await N,m)return}if(typeof G.return==="function"){let{value:N}=await G.return();await N}}async function f(){for(;;){try{let{value:j,done:_}=T?await G.next():G.next();if(_)v.push(null);else{let p=j&&typeof j.then==="function"?await j:j;if(p===null)throw J=!1,new A;else if(v.push(p))continue;else J=!1}}catch(j){v.destroy(j)}break}}return v}V.exports=R}),jL=w1((K,V)=>{var Q=bU(),{ArrayPrototypeIndexOf:U,NumberIsInteger:H,NumberIsNaN:Y,NumberParseInt:z,ObjectDefineProperties:M,ObjectKeys:A,ObjectSetPrototypeOf:R,Promise:D,SafeSet:F,SymbolAsyncDispose:P,SymbolAsyncIterator:G,Symbol:T}=RK();V.exports=V0,V0.ReadableState=o0;var{EventEmitter:v}=(j8(),D1(w8)),{Stream:J,prependListener:k}=C2(),{Buffer:f}=(cK(),D1(pK)),{addAbortSignal:j}=fL(),_=HU(),p=OV().debuglog("stream",(g)=>{p=g}),N=AE(),m=BH(),{getHighWaterMark:z0,getDefaultHighWaterMark:L0}=wL(),{aggregateTwoErrors:s,codes:{ERR_INVALID_ARG_TYPE:Z0,ERR_METHOD_NOT_IMPLEMENTED:L,ERR_OUT_OF_RANGE:O,ERR_STREAM_PUSH_AFTER_EOF:X,ERR_STREAM_UNSHIFT_AFTER_END_EVENT:q},AbortError:W}=VV(),{validateObject:C}=_8(),I=T("kPaused"),{StringDecoder:$}=$E(),Z=B9();R(V0.prototype,J.prototype),R(V0,J);var S=()=>{},{errorOrDestroy:B}=m,E=1,w=2,h=4,u=8,t=16,F0=32,K0=64,r=128,A0=256,e=512,Y0=1024,r0=2048,b=4096,o=8192,R0=16384,Q0=32768,H0=65536,N0=131072,d=262144;function a(g){return{enumerable:!1,get(){return(this.state&g)!==0},set(n){if(n)this.state|=g;else this.state&=~g}}}M(o0.prototype,{objectMode:a(E),ended:a(w),endEmitted:a(h),reading:a(u),constructed:a(t),sync:a(F0),needReadable:a(K0),emittedReadable:a(r),readableListening:a(A0),resumeScheduled:a(e),errorEmitted:a(Y0),emitClose:a(r0),autoDestroy:a(b),destroyed:a(o),closed:a(R0),closeEmitted:a(Q0),multiAwaitDrain:a(H0),readingMore:a(N0),dataEmitted:a(d)});function o0(g,n,U0){if(typeof U0!=="boolean")U0=n instanceof jQ();if(this.state=r0|b|t|F0,g&&g.objectMode)this.state|=E;if(U0&&g&&g.readableObjectMode)this.state|=E;if(this.highWaterMark=g?z0(this,g,"readableHighWaterMark",U0):L0(!1),this.buffer=new N,this.length=0,this.pipes=[],this.flowing=null,this[I]=null,g&&g.emitClose===!1)this.state&=~r0;if(g&&g.autoDestroy===!1)this.state&=~b;if(this.errored=null,this.defaultEncoding=g&&g.defaultEncoding||"utf8",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,g&&g.encoding)this.decoder=new $(g.encoding),this.encoding=g.encoding}function V0(g){if(!(this instanceof V0))return new V0(g);let n=this instanceof jQ();if(this._readableState=new o0(g,this,n),g){if(typeof g.read==="function")this._read=g.read;if(typeof g.destroy==="function")this._destroy=g.destroy;if(typeof g.construct==="function")this._construct=g.construct;if(g.signal&&!n)j(g.signal,this)}J.call(this,g),m.construct(this,()=>{if(this._readableState.needReadable)x0(this,this._readableState)})}V0.prototype.destroy=m.destroy,V0.prototype._undestroy=m.undestroy,V0.prototype._destroy=function(g,n){n(g)},V0.prototype[v.captureRejectionSymbol]=function(g){this.destroy(g)},V0.prototype[P]=function(){let g;if(!this.destroyed)g=this.readableEnded?null:new W,this.destroy(g);return new D((n,U0)=>_(this,(O0)=>O0&&O0!==g?U0(O0):n(null)))},V0.prototype.push=function(g,n){return W0(this,g,n,!1)},V0.prototype.unshift=function(g,n){return W0(this,g,n,!0)};function W0(g,n,U0,O0){p("readableAddChunk",n);let i0=g._readableState,C0;if((i0.state&E)===0){if(typeof n==="string"){if(U0=U0||i0.defaultEncoding,i0.encoding!==U0)if(O0&&i0.encoding)n=f.from(n,U0).toString(i0.encoding);else n=f.from(n,U0),U0=""}else if(n instanceof f)U0="";else if(J._isUint8Array(n))n=J._uint8ArrayToBuffer(n),U0="";else if(n!=null)C0=new Z0("chunk",["string","Buffer","Uint8Array"],n)}if(C0)B(g,C0);else if(n===null)i0.state&=~u,P0(g,i0);else if((i0.state&E)!==0||n&&n.length>0)if(O0)if((i0.state&h)!==0)B(g,new q);else if(i0.destroyed||i0.errored)return!1;else H1(g,i0,n,!0);else if(i0.ended)B(g,new X);else if(i0.destroyed||i0.errored)return!1;else if(i0.state&=~u,i0.decoder&&!U0)if(n=i0.decoder.write(n),i0.objectMode||n.length!==0)H1(g,i0,n,!1);else x0(g,i0);else H1(g,i0,n,!1);else if(!O0)i0.state&=~u,x0(g,i0);return!i0.ended&&(i0.length0){if((n.state&H0)!==0)n.awaitDrainWriters.clear();else n.awaitDrainWriters=null;n.dataEmitted=!0,g.emit("data",U0)}else{if(n.length+=n.objectMode?1:U0.length,O0)n.buffer.unshift(U0);else n.buffer.push(U0);if((n.state&K0)!==0)E0(g)}x0(g,n)}V0.prototype.isPaused=function(){let g=this._readableState;return g[I]===!0||g.flowing===!1},V0.prototype.setEncoding=function(g){let n=new $(g);this._readableState.decoder=n,this._readableState.encoding=this._readableState.decoder.encoding;let U0=this._readableState.buffer,O0="";for(let i0 of U0)O0+=n.write(i0);if(U0.clear(),O0!=="")U0.push(O0);return this._readableState.length=O0.length,this};var G0=1073741824;function T0(g){if(g>G0)throw new O("size","<= 1GiB",g);else g--,g|=g>>>1,g|=g>>>2,g|=g>>>4,g|=g>>>8,g|=g>>>16,g++;return g}function v1(g,n){if(g<=0||n.length===0&&n.ended)return 0;if((n.state&E)!==0)return 1;if(Y(g)){if(n.flowing&&n.length)return n.buffer.first().length;return n.length}if(g<=n.length)return g;return n.ended?n.length:0}V0.prototype.read=function(g){if(p("read",g),g===void 0)g=NaN;else if(!H(g))g=z(g,10);let n=this._readableState,U0=g;if(g>n.highWaterMark)n.highWaterMark=T0(g);if(g!==0)n.state&=~r;if(g===0&&n.needReadable&&((n.highWaterMark!==0?n.length>=n.highWaterMark:n.length>0)||n.ended)){if(p("read: emitReadable",n.length,n.ended),n.length===0&&n.ended)g1(this);else E0(this);return null}if(g=v1(g,n),g===0&&n.ended){if(n.length===0)g1(this);return null}let O0=(n.state&K0)!==0;if(p("need readable",O0),n.length===0||n.length-g0)i0=y0(g,n);else i0=null;if(i0===null)n.needReadable=n.length<=n.highWaterMark,g=0;else if(n.length-=g,n.multiAwaitDrain)n.awaitDrainWriters.clear();else n.awaitDrainWriters=null;if(n.length===0){if(!n.ended)n.needReadable=!0;if(U0!==g&&n.ended)g1(this)}if(i0!==null&&!n.errorEmitted&&!n.closeEmitted)n.dataEmitted=!0,this.emit("data",i0);return i0};function P0(g,n){if(p("onEofChunk"),n.ended)return;if(n.decoder){let U0=n.decoder.end();if(U0&&U0.length)n.buffer.push(U0),n.length+=n.objectMode?1:U0.length}if(n.ended=!0,n.sync)E0(g);else n.needReadable=!1,n.emittedReadable=!0,i1(g)}function E0(g){let n=g._readableState;if(p("emitReadable",n.needReadable,n.emittedReadable),n.needReadable=!1,!n.emittedReadable)p("emitReadable",n.flowing),n.emittedReadable=!0,Q.nextTick(i1,g)}function i1(g){let n=g._readableState;if(p("emitReadable_",n.destroyed,n.length,n.ended),!n.destroyed&&!n.errored&&(n.length||n.ended))g.emit("readable"),n.emittedReadable=!1;n.needReadable=!n.flowing&&!n.ended&&n.length<=n.highWaterMark,g0(g)}function x0(g,n){if(!n.readingMore&&n.constructed)n.readingMore=!0,Q.nextTick(k0,g,n)}function k0(g,n){while(!n.reading&&!n.ended&&(n.length1&&O0.pipes.includes(g))p("false write response, pause",O0.awaitDrainWriters.size),O0.awaitDrainWriters.add(g);U0.pause()}if(!k1)k1=N1(U0,g),g.on("drain",k1)}U0.on("data",p0);function p0(F1){p("ondata");let A1=g.write(F1);if(p("dest.write",A1),A1===!1)QK()}function _0(F1){if(p("onerror",F1),Y1(),g.removeListener("error",_0),g.listenerCount("error")===0){let A1=g._writableState||g._readableState;if(A1&&!A1.errorEmitted)B(g,F1);else g.emit("error",F1)}}k(g,"error",_0);function P1(){g.removeListener("finish",Z1),Y1()}g.once("close",P1);function Z1(){p("onfinish"),g.removeListener("close",P1),Y1()}g.once("finish",Z1);function Y1(){p("unpipe"),U0.unpipe(g)}if(g.emit("pipe",U0),g.writableNeedDrain===!0)QK();else if(!O0.flowing)p("pipe resume"),U0.resume();return g};function N1(g,n){return function(){let U0=g._readableState;if(U0.awaitDrainWriters===n)p("pipeOnDrain",1),U0.awaitDrainWriters=null;else if(U0.multiAwaitDrain)p("pipeOnDrain",U0.awaitDrainWriters.size),U0.awaitDrainWriters.delete(n);if((!U0.awaitDrainWriters||U0.awaitDrainWriters.size===0)&&g.listenerCount("data"))g.resume()}}V0.prototype.unpipe=function(g){let n=this._readableState,U0={hasUnpiped:!1};if(n.pipes.length===0)return this;if(!g){let i0=n.pipes;n.pipes=[],this.pause();for(let C0=0;C00,O0.flowing!==!1)this.resume()}else if(g==="readable"){if(!O0.endEmitted&&!O0.readableListening){if(O0.readableListening=O0.needReadable=!0,O0.flowing=!1,O0.emittedReadable=!1,p("on readable",O0.length,O0.reading),O0.length)E0(this);else if(!O0.reading)Q.nextTick(f0,this)}}return U0},V0.prototype.addListener=V0.prototype.on,V0.prototype.removeListener=function(g,n){let U0=J.prototype.removeListener.call(this,g,n);if(g==="readable")Q.nextTick(w0,this);return U0},V0.prototype.off=V0.prototype.removeListener,V0.prototype.removeAllListeners=function(g){let n=J.prototype.removeAllListeners.apply(this,arguments);if(g==="readable"||g===void 0)Q.nextTick(w0,this);return n};function w0(g){let n=g._readableState;if(n.readableListening=g.listenerCount("readable")>0,n.resumeScheduled&&n[I]===!1)n.flowing=!0;else if(g.listenerCount("data")>0)g.resume();else if(!n.readableListening)n.flowing=null}function f0(g){p("readable nexttick read 0"),g.read(0)}V0.prototype.resume=function(){let g=this._readableState;if(!g.flowing)p("resume"),g.flowing=!g.readableListening,zK(this,g);return g[I]=!1,this};function zK(g,n){if(!n.resumeScheduled)n.resumeScheduled=!0,Q.nextTick(c0,g,n)}function c0(g,n){if(p("resume",n.reading),!n.reading)g.read(0);if(n.resumeScheduled=!1,g.emit("resume"),g0(g),n.flowing&&!n.reading)g.read(0)}V0.prototype.pause=function(){if(p("call pause flowing=%j",this._readableState.flowing),this._readableState.flowing!==!1)p("pause"),this._readableState.flowing=!1,this.emit("pause");return this._readableState[I]=!0,this};function g0(g){let n=g._readableState;p("flow",n.flowing);while(n.flowing&&g.read()!==null);}V0.prototype.wrap=function(g){let n=!1;g.on("data",(O0)=>{if(!this.push(O0)&&g.pause)n=!0,g.pause()}),g.on("end",()=>{this.push(null)}),g.on("error",(O0)=>{B(this,O0)}),g.on("close",()=>{this.destroy()}),g.on("destroy",()=>{this.destroy()}),this._read=()=>{if(n&&g.resume)n=!1,g.resume()};let U0=A(g);for(let O0=1;O0{i0=B0?s(i0,B0):null,U0(),U0=S});try{while(!0){let B0=g.destroyed?null:g.read();if(B0!==null)yield B0;else if(i0)throw i0;else if(i0===null)return;else await new D(O0)}}catch(B0){throw i0=s(i0,B0),i0}finally{if((i0||(n===null||n===void 0?void 0:n.destroyOnReturn)!==!1)&&(i0===void 0||g._readableState.autoDestroy))m.destroyer(g,null);else g.off("readable",O0),C0()}}M(V0.prototype,{readable:{__proto__:null,get(){let g=this._readableState;return!!g&&g.readable!==!1&&!g.destroyed&&!g.errorEmitted&&!g.endEmitted},set(g){if(this._readableState)this._readableState.readable=!!g}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(g){if(this._readableState)this._readableState.flowing=g}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(g){if(!this._readableState)return;this._readableState.destroyed=g}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}}),M(o0.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[I]!==!1},set(g){this[I]=!!g}}}),V0._fromList=y0;function y0(g,n){if(n.length===0)return null;let U0;if(n.objectMode)U0=n.buffer.shift();else if(!g||g>=n.length){if(n.decoder)U0=n.buffer.join("");else if(n.buffer.length===1)U0=n.buffer.first();else U0=n.buffer.concat(n.length);n.buffer.clear()}else U0=n.buffer.consume(g,n.decoder);return U0}function g1(g){let n=g._readableState;if(p("endReadable",n.endEmitted),!n.endEmitted)n.ended=!0,Q.nextTick(s0,n,g)}function s0(g,n){if(p("endReadableNT",g.endEmitted,g.length),!g.errored&&!g.closeEmitted&&!g.endEmitted&&g.length===0){if(g.endEmitted=!0,n.emit("end"),n.writable&&n.allowHalfOpen===!1)Q.nextTick(b0,n);else if(g.autoDestroy){let U0=n._writableState;if(!U0||U0.autoDestroy&&(U0.finished||U0.writable===!1))n.destroy()}}}function b0(g){if(g.writable&&!g.writableEnded&&!g.destroyed)g.end()}V0.from=function(g,n){return Z(V0,g,n)};var t1;function h0(){if(t1===void 0)t1={};return t1}V0.fromWeb=function(g,n){return h0().newStreamReadableFromReadableStream(g,n)},V0.toWeb=function(g,n){return h0().newReadableStreamFromStreamReadable(g,n)},V0.wrap=function(g,n){var U0,O0;return new V0({objectMode:(U0=(O0=g.readableObjectMode)!==null&&O0!==void 0?O0:g.objectMode)!==null&&U0!==void 0?U0:!0,...n,destroy(i0,C0){m.destroyer(g,i0),C0(i0)}}).wrap(g)}}),I2=w1((K,V)=>{var Q=bU(),{ArrayPrototypeSlice:U,Error:H,FunctionPrototypeSymbolHasInstance:Y,ObjectDefineProperty:z,ObjectDefineProperties:M,ObjectSetPrototypeOf:A,StringPrototypeToLowerCase:R,Symbol:D,SymbolHasInstance:F}=RK();V.exports=C,C.WritableState=q;var{EventEmitter:P}=(j8(),D1(w8)),G=C2().Stream,{Buffer:T}=(cK(),D1(pK)),v=BH(),{addAbortSignal:J}=fL(),{getHighWaterMark:k,getDefaultHighWaterMark:f}=wL(),{ERR_INVALID_ARG_TYPE:j,ERR_METHOD_NOT_IMPLEMENTED:_,ERR_MULTIPLE_CALLBACK:p,ERR_STREAM_CANNOT_PIPE:N,ERR_STREAM_DESTROYED:m,ERR_STREAM_ALREADY_FINISHED:z0,ERR_STREAM_NULL_VALUES:L0,ERR_STREAM_WRITE_AFTER_END:s,ERR_UNKNOWN_ENCODING:Z0}=VV().codes,{errorOrDestroy:L}=v;A(C.prototype,G.prototype),A(C,G);function O(){}var X=D("kOnFinished");function q(b,o,R0){if(typeof R0!=="boolean")R0=o instanceof jQ();if(this.objectMode=!!(b&&b.objectMode),R0)this.objectMode=this.objectMode||!!(b&&b.writableObjectMode);this.highWaterMark=b?k(this,b,"writableHighWaterMark",R0):f(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;let Q0=!!(b&&b.decodeStrings===!1);this.decodeStrings=!Q0,this.defaultEncoding=b&&b.defaultEncoding||"utf8",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=B.bind(void 0,o),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,W(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!b||b.emitClose!==!1,this.autoDestroy=!b||b.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[X]=[]}function W(b){b.buffered=[],b.bufferedIndex=0,b.allBuffers=!0,b.allNoop=!0}q.prototype.getBuffer=function(){return U(this.buffered,this.bufferedIndex)},z(q.prototype,"bufferedRequestCount",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function C(b){let o=this instanceof jQ();if(!o&&!Y(C,this))return new C(b);if(this._writableState=new q(b,this,o),b){if(typeof b.write==="function")this._write=b.write;if(typeof b.writev==="function")this._writev=b.writev;if(typeof b.destroy==="function")this._destroy=b.destroy;if(typeof b.final==="function")this._final=b.final;if(typeof b.construct==="function")this._construct=b.construct;if(b.signal)J(b.signal,this)}G.call(this,b),v.construct(this,()=>{let R0=this._writableState;if(!R0.writing)u(this,R0);r(this,R0)})}z(C,F,{__proto__:null,value:function(b){if(Y(this,b))return!0;if(this!==C)return!1;return b&&b._writableState instanceof q}}),C.prototype.pipe=function(){L(this,new N)};function I(b,o,R0,Q0){let H0=b._writableState;if(typeof R0==="function")Q0=R0,R0=H0.defaultEncoding;else{if(!R0)R0=H0.defaultEncoding;else if(R0!=="buffer"&&!T.isEncoding(R0))throw new Z0(R0);if(typeof Q0!=="function")Q0=O}if(o===null)throw new L0;else if(!H0.objectMode)if(typeof o==="string"){if(H0.decodeStrings!==!1)o=T.from(o,R0),R0="buffer"}else if(o instanceof T)R0="buffer";else if(G._isUint8Array(o))o=G._uint8ArrayToBuffer(o),R0="buffer";else throw new j("chunk",["string","Buffer","Uint8Array"],o);let N0;if(H0.ending)N0=new s;else if(H0.destroyed)N0=new m("write");if(N0)return Q.nextTick(Q0,N0),L(b,N0,!0),N0;return H0.pendingcb++,$(b,H0,o,R0,Q0)}C.prototype.write=function(b,o,R0){return I(this,b,o,R0)===!0},C.prototype.cork=function(){this._writableState.corked++},C.prototype.uncork=function(){let b=this._writableState;if(b.corked){if(b.corked--,!b.writing)u(this,b)}},C.prototype.setDefaultEncoding=function(b){if(typeof b==="string")b=R(b);if(!T.isEncoding(b))throw new Z0(b);return this._writableState.defaultEncoding=b,this};function $(b,o,R0,Q0,H0){let N0=o.objectMode?1:R0.length;o.length+=N0;let d=o.lengthR0.bufferedIndex)u(b,R0);if(Q0)if(R0.afterWriteTickInfo!==null&&R0.afterWriteTickInfo.cb===H0)R0.afterWriteTickInfo.count++;else R0.afterWriteTickInfo={count:1,cb:H0,stream:b,state:R0},Q.nextTick(E,R0.afterWriteTickInfo);else w(b,R0,1,H0)}}function E({stream:b,state:o,count:R0,cb:Q0}){return o.afterWriteTickInfo=null,w(b,o,R0,Q0)}function w(b,o,R0,Q0){if(!o.ending&&!b.destroyed&&o.length===0&&o.needDrain)o.needDrain=!1,b.emit("drain");while(R0-- >0)o.pendingcb--,Q0();if(o.destroyed)h(o);r(b,o)}function h(b){if(b.writing)return;for(let H0=b.bufferedIndex;H01&&b._writev){o.pendingcb-=N0-1;let a=o.allNoop?O:(V0)=>{for(let W0=d;W0256)R0.splice(0,d),o.bufferedIndex=0;else o.bufferedIndex=d}o.bufferProcessing=!1}C.prototype._write=function(b,o,R0){if(this._writev)this._writev([{chunk:b,encoding:o}],R0);else throw new _("_write()")},C.prototype._writev=null,C.prototype.end=function(b,o,R0){let Q0=this._writableState;if(typeof b==="function")R0=b,b=null,o=null;else if(typeof o==="function")R0=o,o=null;let H0;if(b!==null&&b!==void 0){let N0=I(this,b,o);if(N0 instanceof H)H0=N0}if(Q0.corked)Q0.corked=1,this.uncork();if(H0);else if(!Q0.errored&&!Q0.ending)Q0.ending=!0,r(this,Q0,!0),Q0.ended=!0;else if(Q0.finished)H0=new z0("end");else if(Q0.destroyed)H0=new m("end");if(typeof R0==="function")if(H0||Q0.finished)Q.nextTick(R0,H0);else Q0[X].push(R0);return this};function t(b){return b.ending&&!b.destroyed&&b.constructed&&b.length===0&&!b.errored&&b.buffered.length===0&&!b.finished&&!b.writing&&!b.errorEmitted&&!b.closeEmitted}function F0(b,o){let R0=!1;function Q0(H0){if(R0){L(b,H0!==null&&H0!==void 0?H0:p());return}if(R0=!0,o.pendingcb--,H0){let N0=o[X].splice(0);for(let d=0;d{if(t(H0))A0(Q0,H0);else H0.pendingcb--},b,o);else if(t(o))o.pendingcb++,A0(b,o)}}}function A0(b,o){o.pendingcb--,o.finished=!0;let R0=o[X].splice(0);for(let Q0=0;Q0{var Q=bU(),U=(cK(),D1(pK)),{isReadable:H,isWritable:Y,isIterable:z,isNodeStream:M,isReadableNodeStream:A,isWritableNodeStream:R,isDuplexNodeStream:D,isReadableStream:F,isWritableStream:P}=xQ(),G=HU(),{AbortError:T,codes:{ERR_INVALID_ARG_TYPE:v,ERR_INVALID_RETURN_VALUE:J}}=VV(),{destroyer:k}=BH(),f=jQ(),j=jL(),_=I2(),{createDeferredPromise:p}=OV(),N=B9(),m=globalThis.Blob||U.Blob,z0=typeof m<"u"?function(X){return X instanceof m}:function(X){return!1},L0=globalThis.AbortController||x8().AbortController,{FunctionPrototypeCall:s}=RK();class Z0 extends f{constructor(X){super(X);if((X===null||X===void 0?void 0:X.readable)===!1)this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0;if((X===null||X===void 0?void 0:X.writable)===!1)this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0}}V.exports=function X(q,W){if(D(q))return q;if(A(q))return O({readable:q});if(R(q))return O({writable:q});if(M(q))return O({writable:!1,readable:!1});if(F(q))return O({readable:j.fromWeb(q)});if(P(q))return O({writable:_.fromWeb(q)});if(typeof q==="function"){let{value:I,write:$,final:Z,destroy:S}=L(q);if(z(I))return N(Z0,I,{objectMode:!0,write:$,final:Z,destroy:S});let B=I===null||I===void 0?void 0:I.then;if(typeof B==="function"){let E,w=s(B,I,(h)=>{if(h!=null)throw new J("nully","body",h)},(h)=>{k(E,h)});return E=new Z0({objectMode:!0,readable:!1,write:$,final(h){Z(async()=>{try{await w,Q.nextTick(h,null)}catch(u){Q.nextTick(h,u)}})},destroy:S})}throw new J("Iterable, AsyncIterable or AsyncFunction",W,I)}if(z0(q))return X(q.arrayBuffer());if(z(q))return N(Z0,q,{objectMode:!0,writable:!1});if(F(q===null||q===void 0?void 0:q.readable)&&P(q===null||q===void 0?void 0:q.writable))return Z0.fromWeb(q);if(typeof(q===null||q===void 0?void 0:q.writable)==="object"||typeof(q===null||q===void 0?void 0:q.readable)==="object"){let I=q!==null&&q!==void 0&&q.readable?A(q===null||q===void 0?void 0:q.readable)?q===null||q===void 0?void 0:q.readable:X(q.readable):void 0,$=q!==null&&q!==void 0&&q.writable?R(q===null||q===void 0?void 0:q.writable)?q===null||q===void 0?void 0:q.writable:X(q.writable):void 0;return O({readable:I,writable:$})}let C=q===null||q===void 0?void 0:q.then;if(typeof C==="function"){let I;return s(C,q,($)=>{if($!=null)I.push($);I.push(null)},($)=>{k(I,$)}),I=new Z0({objectMode:!0,writable:!1,read(){}})}throw new v(W,["Blob","ReadableStream","WritableStream","Stream","Iterable","AsyncIterable","Function","{ readable, writable } pair","Promise"],q)};function L(X){let{promise:q,resolve:W}=p(),C=new L0,I=C.signal;return{value:X(async function*(){while(!0){let $=q;q=null;let{chunk:Z,done:S,cb:B}=await $;if(Q.nextTick(B),S)return;if(I.aborted)throw new T(void 0,{cause:I.reason});({promise:q,resolve:W}=p()),yield Z}}(),{signal:I}),write($,Z,S){let B=W;W=null,B({chunk:$,done:!1,cb:S})},final($){let Z=W;W=null,Z({done:!0,cb:$})},destroy($,Z){C.abort(),Z($)}}}function O(X){let q=X.readable&&typeof X.readable.read!=="function"?j.wrap(X.readable):X.readable,W=X.writable,C=!!H(q),I=!!Y(W),$,Z,S,B,E;function w(h){let u=B;if(B=null,u)u(h);else if(h)E.destroy(h)}if(E=new Z0({readableObjectMode:!!(q!==null&&q!==void 0&&q.readableObjectMode),writableObjectMode:!!(W!==null&&W!==void 0&&W.writableObjectMode),readable:C,writable:I}),I)G(W,(h)=>{if(I=!1,h)k(q,h);w(h)}),E._write=function(h,u,t){if(W.write(h,u))t();else $=t},E._final=function(h){W.end(),Z=h},W.on("drain",function(){if($){let h=$;$=null,h()}}),W.on("finish",function(){if(Z){let h=Z;Z=null,h()}});if(C)G(q,(h)=>{if(C=!1,h)k(q,h);w(h)}),q.on("readable",function(){if(S){let h=S;S=null,h()}}),q.on("end",function(){E.push(null)}),E._read=function(){while(!0){let h=q.read();if(h===null){S=E._read;return}if(!E.push(h))return}};return E._destroy=function(h,u){if(!h&&B!==null)h=new T;if(S=null,$=null,Z=null,B===null)u(h);else B=u,k(W,h),k(q,h)},E}}),jQ=w1((K,V)=>{var{ObjectDefineProperties:Q,ObjectGetOwnPropertyDescriptor:U,ObjectKeys:H,ObjectSetPrototypeOf:Y}=RK();V.exports=A;var z=jL(),M=I2();Y(A.prototype,z.prototype),Y(A,z);{let P=H(M.prototype);for(let G=0;G{var{ObjectSetPrototypeOf:Q,Symbol:U}=RK();V.exports=A;var{ERR_METHOD_NOT_IMPLEMENTED:H}=VV().codes,Y=jQ(),{getHighWaterMark:z}=wL();Q(A.prototype,Y.prototype),Q(A,Y);var M=U("kCallback");function A(F){if(!(this instanceof A))return new A(F);let P=F?z(this,F,"readableHighWaterMark",!0):null;if(P===0)F={...F,highWaterMark:null,readableHighWaterMark:P,writableHighWaterMark:F.writableHighWaterMark||0};if(Y.call(this,F),this._readableState.sync=!1,this[M]=null,F){if(typeof F.transform==="function")this._transform=F.transform;if(typeof F.flush==="function")this._flush=F.flush}this.on("prefinish",D)}function R(F){if(typeof this._flush==="function"&&!this.destroyed)this._flush((P,G)=>{if(P){if(F)F(P);else this.destroy(P);return}if(G!=null)this.push(G);if(this.push(null),F)F()});else if(this.push(null),F)F()}function D(){if(this._final!==R)R.call(this)}A.prototype._final=R,A.prototype._transform=function(F,P,G){throw new H("_transform()")},A.prototype._write=function(F,P,G){let T=this._readableState,v=this._writableState,J=T.length;this._transform(F,P,(k,f)=>{if(k){G(k);return}if(f!=null)this.push(f);if(v.ended||J===T.length||T.length{var{ObjectSetPrototypeOf:Q}=RK();V.exports=H;var U=J9();Q(H.prototype,U.prototype),Q(H,U);function H(Y){if(!(this instanceof H))return new H(Y);U.call(this,Y)}H.prototype._transform=function(Y,z,M){M(null,Y)}}),G2=w1((K,V)=>{var Q=bU(),{ArrayIsArray:U,Promise:H,SymbolAsyncIterator:Y,SymbolDispose:z}=RK(),M=HU(),{once:A}=OV(),R=BH(),D=jQ(),{aggregateTwoErrors:F,codes:{ERR_INVALID_ARG_TYPE:P,ERR_INVALID_RETURN_VALUE:G,ERR_MISSING_ARGS:T,ERR_STREAM_DESTROYED:v,ERR_STREAM_PREMATURE_CLOSE:J},AbortError:k}=VV(),{validateFunction:f,validateAbortSignal:j}=_8(),{isIterable:_,isReadable:p,isReadableNodeStream:N,isNodeStream:m,isTransformStream:z0,isWebStream:L0,isReadableStream:s,isReadableFinished:Z0}=xQ(),L=globalThis.AbortController||x8().AbortController,O,X,q;function W(h,u,t){let F0=!1;h.on("close",()=>{F0=!0});let K0=M(h,{readable:u,writable:t},(r)=>{F0=!r});return{destroy:(r)=>{if(F0)return;F0=!0,R.destroyer(h,r||new v("pipe"))},cleanup:K0}}function C(h){return f(h[h.length-1],"streams[stream.length - 1]"),h.pop()}function I(h){if(_(h))return h;else if(N(h))return $(h);throw new P("val",["Readable","Iterable","AsyncIterable"],h)}async function*$(h){if(!X)X=jL();yield*X.prototype[Y].call(h)}async function Z(h,u,t,{end:F0}){let K0,r=null,A0=(r0)=>{if(r0)K0=r0;if(r){let b=r;r=null,b()}},e=()=>new H((r0,b)=>{if(K0)b(K0);else r=()=>{if(K0)b(K0);else r0()}});u.on("drain",A0);let Y0=M(u,{readable:!1},A0);try{if(u.writableNeedDrain)await e();for await(let r0 of h)if(!u.write(r0))await e();if(F0)u.end(),await e();t()}catch(r0){t(K0!==r0?F(K0,r0):r0)}finally{Y0(),u.off("drain",A0)}}async function S(h,u,t,{end:F0}){if(z0(u))u=u.writable;let K0=u.getWriter();try{for await(let r of h)await K0.ready,K0.write(r).catch(()=>{});if(await K0.ready,F0)await K0.close();t()}catch(r){try{await K0.abort(r),t(r)}catch(A0){t(A0)}}}function B(...h){return E(h,A(C(h)))}function E(h,u,t){if(h.length===1&&U(h[0]))h=h[0];if(h.length<2)throw new T("streams");let F0=new L,K0=F0.signal,r=t===null||t===void 0?void 0:t.signal,A0=[];j(r,"options.signal");function e(){H0(new k)}q=q||OV().addAbortListener;let Y0;if(r)Y0=q(r,e);let r0,b,o=[],R0=0;function Q0(V0){H0(V0,--R0===0)}function H0(V0,W0){var H1;if(V0&&(!r0||r0.code==="ERR_STREAM_PREMATURE_CLOSE"))r0=V0;if(!r0&&!W0)return;while(o.length)o.shift()(r0);if((H1=Y0)===null||H1===void 0||H1[z](),F0.abort(),W0){if(!r0)A0.forEach((G0)=>G0());Q.nextTick(u,r0,b)}}let N0;for(let V0=0;V00,T0=H1||(t===null||t===void 0?void 0:t.end)!==!1,v1=V0===h.length-1;if(m(W0)){let P0=function(E0){if(E0&&E0.name!=="AbortError"&&E0.code!=="ERR_STREAM_PREMATURE_CLOSE")Q0(E0)};var d=P0;if(T0){let{destroy:E0,cleanup:i1}=W(W0,H1,G0);if(o.push(E0),p(W0)&&v1)A0.push(i1)}if(W0.on("error",P0),p(W0)&&v1)A0.push(()=>{W0.removeListener("error",P0)})}if(V0===0)if(typeof W0==="function"){if(N0=W0({signal:K0}),!_(N0))throw new G("Iterable, AsyncIterable or Stream","source",N0)}else if(_(W0)||N(W0)||z0(W0))N0=W0;else N0=D.from(W0);else if(typeof W0==="function"){if(z0(N0)){var a;N0=I((a=N0)===null||a===void 0?void 0:a.readable)}else N0=I(N0);if(N0=W0(N0,{signal:K0}),H1){if(!_(N0,!0))throw new G("AsyncIterable",`transform[${V0-1}]`,N0)}else{var o0;if(!O)O=v9();let P0=new O({objectMode:!0}),E0=(o0=N0)===null||o0===void 0?void 0:o0.then;if(typeof E0==="function")R0++,E0.call(N0,(k0)=>{if(b=k0,k0!=null)P0.write(k0);if(T0)P0.end();Q.nextTick(Q0)},(k0)=>{P0.destroy(k0),Q.nextTick(Q0,k0)});else if(_(N0,!0))R0++,Z(N0,P0,Q0,{end:T0});else if(s(N0)||z0(N0)){let k0=N0.readable||N0;R0++,Z(k0,P0,Q0,{end:T0})}else throw new G("AsyncIterable or Promise","destination",N0);N0=P0;let{destroy:i1,cleanup:x0}=W(N0,!1,!0);if(o.push(i1),v1)A0.push(x0)}}else if(m(W0)){if(N(N0)){R0+=2;let P0=w(N0,W0,Q0,{end:T0});if(p(W0)&&v1)A0.push(P0)}else if(z0(N0)||s(N0)){let P0=N0.readable||N0;R0++,Z(P0,W0,Q0,{end:T0})}else if(_(N0))R0++,Z(N0,W0,Q0,{end:T0});else throw new P("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],N0);N0=W0}else if(L0(W0)){if(N(N0))R0++,S(I(N0),W0,Q0,{end:T0});else if(s(N0)||_(N0))R0++,S(N0,W0,Q0,{end:T0});else if(z0(N0))R0++,S(N0.readable,W0,Q0,{end:T0});else throw new P("val",["Readable","Iterable","AsyncIterable","ReadableStream","TransformStream"],N0);N0=W0}else N0=D.from(W0)}if(K0!==null&&K0!==void 0&&K0.aborted||r!==null&&r!==void 0&&r.aborted)Q.nextTick(e);return N0}function w(h,u,t,{end:F0}){let K0=!1;if(u.on("close",()=>{if(!K0)t(new J)}),h.pipe(u,{end:!1}),F0){let A0=function(){K0=!0,u.end()};var r=A0;if(Z0(h))Q.nextTick(A0);else h.once("end",A0)}else t();return M(h,{readable:!0,writable:!1},(A0)=>{let e=h._readableState;if(A0&&A0.code==="ERR_STREAM_PREMATURE_CLOSE"&&e&&e.ended&&!e.errored&&!e.errorEmitted)h.once("end",t).once("error",t);else t(A0)}),M(u,{readable:!1,writable:!0},t)}V.exports={pipelineImpl:E,pipeline:B}}),k9=w1((K,V)=>{var{pipeline:Q}=G2(),U=jQ(),{destroyer:H}=BH(),{isNodeStream:Y,isReadable:z,isWritable:M,isWebStream:A,isTransformStream:R,isWritableStream:D,isReadableStream:F}=xQ(),{AbortError:P,codes:{ERR_INVALID_ARG_VALUE:G,ERR_MISSING_ARGS:T}}=VV(),v=HU();V.exports=function(...J){if(J.length===0)throw new T("streams");if(J.length===1)return U.from(J[0]);let k=[...J];if(typeof J[0]==="function")J[0]=U.from(J[0]);if(typeof J[J.length-1]==="function"){let L=J.length-1;J[L]=U.from(J[L])}for(let L=0;L0&&!(M(J[L])||D(J[L])||R(J[L])))throw new G(`streams[${L}]`,k[L],"must be writable")}let f,j,_,p,N;function m(L){let O=p;if(p=null,O)O(L);else if(L)N.destroy(L);else if(!Z0&&!s)N.destroy()}let z0=J[0],L0=Q(J,m),s=!!(M(z0)||D(z0)||R(z0)),Z0=!!(z(L0)||F(L0)||R(L0));if(N=new U({writableObjectMode:!!(z0!==null&&z0!==void 0&&z0.writableObjectMode),readableObjectMode:!!(L0!==null&&L0!==void 0&&L0.readableObjectMode),writable:s,readable:Z0}),s){if(Y(z0))N._write=function(O,X,q){if(z0.write(O,X))q();else f=q},N._final=function(O){z0.end(),j=O},z0.on("drain",function(){if(f){let O=f;f=null,O()}});else if(A(z0)){let O=(R(z0)?z0.writable:z0).getWriter();N._write=async function(X,q,W){try{await O.ready,O.write(X).catch(()=>{}),W()}catch(C){W(C)}},N._final=async function(X){try{await O.ready,O.close().catch(()=>{}),j=X}catch(q){X(q)}}}let L=R(L0)?L0.readable:L0;v(L,()=>{if(j){let O=j;j=null,O()}})}if(Z0){if(Y(L0))L0.on("readable",function(){if(_){let L=_;_=null,L()}}),L0.on("end",function(){N.push(null)}),N._read=function(){while(!0){let L=L0.read();if(L===null){_=N._read;return}if(!N.push(L))return}};else if(A(L0)){let L=(R(L0)?L0.readable:L0).getReader();N._read=async function(){while(!0)try{let{value:O,done:X}=await L.read();if(!N.push(O))return;if(X){N.push(null);return}}catch{return}}}}return N._destroy=function(L,O){if(!L&&p!==null)L=new P;if(_=null,f=null,j=null,p===null)O(L);else if(p=O,Y(L0))H(L0,L)},N}}),DE=w1((K,V)=>{var Q=globalThis.AbortController||x8().AbortController,{codes:{ERR_INVALID_ARG_VALUE:U,ERR_INVALID_ARG_TYPE:H,ERR_MISSING_ARGS:Y,ERR_OUT_OF_RANGE:z},AbortError:M}=VV(),{validateAbortSignal:A,validateInteger:R,validateObject:D}=_8(),F=RK().Symbol("kWeak"),P=RK().Symbol("kResistStopPropagation"),{finished:G}=HU(),T=k9(),{addAbortSignalNoValidate:v}=fL(),{isWritable:J,isNodeStream:k}=xQ(),{deprecate:f}=OV(),{ArrayPrototypePush:j,Boolean:_,MathFloor:p,Number:N,NumberIsNaN:m,Promise:z0,PromiseReject:L0,PromiseResolve:s,PromisePrototypeThen:Z0,Symbol:L}=RK(),O=L("kEmpty"),X=L("kEof");function q(r,A0){if(A0!=null)D(A0,"options");if((A0===null||A0===void 0?void 0:A0.signal)!=null)A(A0.signal,"options.signal");if(k(r)&&!J(r))throw new U("stream",r,"must be writable");let e=T(this,r);if(A0!==null&&A0!==void 0&&A0.signal)v(A0.signal,e);return e}function W(r,A0){if(typeof r!=="function")throw new H("fn",["Function","AsyncFunction"],r);if(A0!=null)D(A0,"options");if((A0===null||A0===void 0?void 0:A0.signal)!=null)A(A0.signal,"options.signal");let e=1;if((A0===null||A0===void 0?void 0:A0.concurrency)!=null)e=p(A0.concurrency);let Y0=e-1;if((A0===null||A0===void 0?void 0:A0.highWaterMark)!=null)Y0=p(A0.highWaterMark);return R(e,"options.concurrency",1),R(Y0,"options.highWaterMark",0),Y0+=e,async function*(){let r0=OV().AbortSignalAny([A0===null||A0===void 0?void 0:A0.signal].filter(_)),b=this,o=[],R0={signal:r0},Q0,H0,N0=!1,d=0;function a(){N0=!0,o0()}function o0(){d-=1,V0()}function V0(){if(H0&&!N0&&d=Y0||d>=e))await new z0((G0)=>{H0=G0})}o.push(X)}catch(H1){let G0=L0(H1);Z0(G0,o0,a),o.push(G0)}finally{if(N0=!0,Q0)Q0(),Q0=null}}W0();try{while(!0){while(o.length>0){let H1=await o[0];if(H1===X)return;if(r0.aborted)throw new M;if(H1!==O)yield H1;o.shift(),V0()}await new z0((H1)=>{Q0=H1})}}finally{if(N0=!0,H0)H0(),H0=null}}.call(this)}function C(r=void 0){if(r!=null)D(r,"options");if((r===null||r===void 0?void 0:r.signal)!=null)A(r.signal,"options.signal");return async function*(){let A0=0;for await(let Y0 of this){var e;if(r!==null&&r!==void 0&&(e=r.signal)!==null&&e!==void 0&&e.aborted)throw new M({cause:r.signal.reason});yield[A0++,Y0]}}.call(this)}async function I(r,A0=void 0){for await(let e of B.call(this,r,A0))return!0;return!1}async function $(r,A0=void 0){if(typeof r!=="function")throw new H("fn",["Function","AsyncFunction"],r);return!await I.call(this,async(...e)=>{return!await r(...e)},A0)}async function Z(r,A0){for await(let e of B.call(this,r,A0))return e;return}async function S(r,A0){if(typeof r!=="function")throw new H("fn",["Function","AsyncFunction"],r);async function e(Y0,r0){return await r(Y0,r0),O}for await(let Y0 of W.call(this,e,A0));}function B(r,A0){if(typeof r!=="function")throw new H("fn",["Function","AsyncFunction"],r);async function e(Y0,r0){if(await r(Y0,r0))return Y0;return O}return W.call(this,e,A0)}class E extends Y{constructor(){super("reduce");this.message="Reduce of an empty stream requires an initial value"}}async function w(r,A0,e){var Y0;if(typeof r!=="function")throw new H("reducer",["Function","AsyncFunction"],r);if(e!=null)D(e,"options");if((e===null||e===void 0?void 0:e.signal)!=null)A(e.signal,"options.signal");let r0=arguments.length>1;if(e!==null&&e!==void 0&&(Y0=e.signal)!==null&&Y0!==void 0&&Y0.aborted){let H0=new M(void 0,{cause:e.signal.reason});throw this.once("error",()=>{}),await G(this.destroy(H0)),H0}let b=new Q,o=b.signal;if(e!==null&&e!==void 0&&e.signal){let H0={once:!0,[F]:this,[P]:!0};e.signal.addEventListener("abort",()=>b.abort(),H0)}let R0=!1;try{for await(let H0 of this){var Q0;if(R0=!0,e!==null&&e!==void 0&&(Q0=e.signal)!==null&&Q0!==void 0&&Q0.aborted)throw new M;if(!r0)A0=H0,r0=!0;else A0=await r(A0,H0,{signal:o})}if(!R0&&!r0)throw new E}finally{b.abort()}return A0}async function h(r){if(r!=null)D(r,"options");if((r===null||r===void 0?void 0:r.signal)!=null)A(r.signal,"options.signal");let A0=[];for await(let Y0 of this){var e;if(r!==null&&r!==void 0&&(e=r.signal)!==null&&e!==void 0&&e.aborted)throw new M(void 0,{cause:r.signal.reason});j(A0,Y0)}return A0}function u(r,A0){let e=W.call(this,r,A0);return async function*(){for await(let Y0 of e)yield*Y0}.call(this)}function t(r){if(r=N(r),m(r))return 0;if(r<0)throw new z("number",">= 0",r);return r}function F0(r,A0=void 0){if(A0!=null)D(A0,"options");if((A0===null||A0===void 0?void 0:A0.signal)!=null)A(A0.signal,"options.signal");return r=t(r),async function*(){var e;if(A0!==null&&A0!==void 0&&(e=A0.signal)!==null&&e!==void 0&&e.aborted)throw new M;for await(let r0 of this){var Y0;if(A0!==null&&A0!==void 0&&(Y0=A0.signal)!==null&&Y0!==void 0&&Y0.aborted)throw new M;if(r--<=0)yield r0}}.call(this)}function K0(r,A0=void 0){if(A0!=null)D(A0,"options");if((A0===null||A0===void 0?void 0:A0.signal)!=null)A(A0.signal,"options.signal");return r=t(r),async function*(){var e;if(A0!==null&&A0!==void 0&&(e=A0.signal)!==null&&e!==void 0&&e.aborted)throw new M;for await(let r0 of this){var Y0;if(A0!==null&&A0!==void 0&&(Y0=A0.signal)!==null&&Y0!==void 0&&Y0.aborted)throw new M;if(r-- >0)yield r0;if(r<=0)return}}.call(this)}V.exports.streamReturningOperators={asIndexedPairs:f(C,"readable.asIndexedPairs will be removed in a future version."),drop:F0,filter:B,flatMap:u,map:W,take:K0,compose:q},V.exports.promiseReturningOperators={every:$,forEach:S,reduce:w,toArray:h,some:I,find:Z}}),f9=w1((K,V)=>{var{ArrayPrototypePop:Q,Promise:U}=RK(),{isIterable:H,isNodeStream:Y,isWebStream:z}=xQ(),{pipelineImpl:M}=G2(),{finished:A}=HU();w9();function R(...D){return new U((F,P)=>{let G,T,v=D[D.length-1];if(v&&typeof v==="object"&&!Y(v)&&!H(v)&&!z(v)){let J=Q(D);G=J.signal,T=J.end}M(D,(J,k)=>{if(J)P(J);else F(k)},{signal:G,end:T})})}V.exports={finished:A,pipeline:R}}),w9=w1((K,V)=>{var{Buffer:Q}=(cK(),D1(pK)),{ObjectDefineProperty:U,ObjectKeys:H,ReflectApply:Y}=RK(),{promisify:{custom:z}}=OV(),{streamReturningOperators:M,promiseReturningOperators:A}=DE(),{codes:{ERR_ILLEGAL_CONSTRUCTOR:R}}=VV(),D=k9(),{setDefaultHighWaterMark:F,getDefaultHighWaterMark:P}=wL(),{pipeline:G}=G2(),{destroyer:T}=BH(),v=HU(),J=f9(),k=xQ(),f=V.exports=C2().Stream;f.isDestroyed=k.isDestroyed,f.isDisturbed=k.isDisturbed,f.isErrored=k.isErrored,f.isReadable=k.isReadable,f.isWritable=k.isWritable,f.Readable=jL();for(let _ of H(M)){let p=function(...m){if(new.target)throw R();return f.Readable.from(Y(N,this,m))},N=M[_];U(p,"name",{__proto__:null,value:N.name}),U(p,"length",{__proto__:null,value:N.length}),U(f.Readable.prototype,_,{__proto__:null,value:p,enumerable:!1,configurable:!0,writable:!0})}for(let _ of H(A)){let p=function(...m){if(new.target)throw R();return Y(N,this,m)},N=A[_];U(p,"name",{__proto__:null,value:N.name}),U(p,"length",{__proto__:null,value:N.length}),U(f.Readable.prototype,_,{__proto__:null,value:p,enumerable:!1,configurable:!0,writable:!0})}f.Writable=I2(),f.Duplex=jQ(),f.Transform=J9(),f.PassThrough=v9(),f.pipeline=G;var{addAbortSignal:j}=fL();f.addAbortSignal=j,f.finished=v,f.destroy=T,f.compose=D,f.setDefaultHighWaterMark=F,f.getDefaultHighWaterMark=P,U(f,"promises",{__proto__:null,configurable:!0,enumerable:!0,get(){return J}}),U(G,z,{__proto__:null,enumerable:!0,get(){return J.pipeline}}),U(v,z,{__proto__:null,enumerable:!0,get(){return J.finished}}),f.Stream=f,f._isUint8Array=function(_){return _ instanceof Uint8Array},f._uint8ArrayToBuffer=function(_){return Q.from(_.buffer,_.byteOffset,_.byteLength)}}),SE=w1((K,V)=>{var Q=T2();{let U=w9(),H=f9(),Y=U.Readable.destroy;V.exports=U.Readable,V.exports._uint8ArrayToBuffer=U._uint8ArrayToBuffer,V.exports._isUint8Array=U._isUint8Array,V.exports.isDisturbed=U.isDisturbed,V.exports.isErrored=U.isErrored,V.exports.isReadable=U.isReadable,V.exports.Readable=U.Readable,V.exports.Writable=U.Writable,V.exports.Duplex=U.Duplex,V.exports.Transform=U.Transform,V.exports.PassThrough=U.PassThrough,V.exports.addAbortSignal=U.addAbortSignal,V.exports.finished=U.finished,V.exports.destroy=U.destroy,V.exports.destroy=Y,V.exports.pipeline=U.pipeline,V.exports.compose=U.compose,Object.defineProperty(U,"promises",{configurable:!0,enumerable:!0,get(){return H}}),V.exports.Stream=U.Stream}V.exports.default=V.exports});j9.exports=SE()});var MV={};IU(MV,{webcrypto:()=>oJ,rng:()=>HJ,randomUUID:()=>lJ,randomFillSync:()=>hJ,randomFill:()=>yJ,randomBytes:()=>zJ,publicEncrypt:()=>xJ,publicDecrypt:()=>NJ,pseudoRandomBytes:()=>UJ,prng:()=>QJ,privateEncrypt:()=>_J,privateDecrypt:()=>gJ,pbkdf2Sync:()=>WJ,pbkdf2:()=>MJ,listCiphers:()=>IJ,getRandomValues:()=>bJ,getHashes:()=>OJ,getDiffieHellman:()=>EJ,getCurves:()=>sJ,getCiphers:()=>CJ,default:()=>mJ,createVerify:()=>fJ,createSign:()=>vJ,createHmac:()=>qJ,createHash:()=>ZJ,createECDH:()=>jJ,createDiffieHellmanGroup:()=>TJ,createDiffieHellman:()=>BJ,createDecipheriv:()=>PJ,createDecipher:()=>DJ,createCredentials:()=>pJ,createCipheriv:()=>$J,createCipher:()=>AJ,constants:()=>cJ,Verify:()=>wJ,Sign:()=>kJ,Hmac:()=>YJ,Hash:()=>LJ,DiffieHellmanGroup:()=>GJ,DiffieHellman:()=>JJ,Decipheriv:()=>SJ,Decipher:()=>FJ,DEFAULT_ENCODING:()=>uJ,Cipheriv:()=>RJ,Cipher:()=>XJ});function sJ(){return dJ}var PE,CE,x9,IE,GE,TE=(K,V,Q)=>{Q=K!=null?PE(CE(K)):{};let U=V||!K||!K.__esModule?x9(Q,"default",{value:K,enumerable:!0}):Q;for(let H of IE(K))if(!GE.call(U,H))x9(U,H,{get:()=>K[H],enumerable:!0});return U},D0=(K,V)=>()=>(V||K((V={exports:{}}).exports,V),V.exports),xL,_L,N9,EE,B2,J2,QV,BE,g8,g9,JE,vE,kE,fE,y9,wE,jE,xE,_E,NE,gE,yE,hE,pE,cE,y8,NL,h9,uE,p9,c9,bE,h8,v2,k2,lE,u9,f2,dE,b9,sE,l9,d9,oE,mE,nE,rE,iE,tE,aE,eE,KB,VB,QB,UB,HB,zB,w2,s9,LB,o9,ZB,YB,qB,OB,_Q,zU,m9,_V,n9,gL,MB,PV,WB,XB,AB,r9,RQ,p8,i9,RB,t9,$B,a9,FB,DB,SB,PB,j2,CB,x2,IB,GB,TB,EB,BB,JB,vB,kB,fB,wB,jB,xB,_B,NB,_9,gB,N8,yB,e9,KA,hB,pB,VA,cB,uB,c8,bB,lB,dB,sB,oB,mB,QA,nB,UA,HA,zA,_2,LA,rB,ZA,iB,tB,E2,aB,eB,KJ,VJ,X1,QJ,UJ,HJ,zJ,LJ,ZJ,YJ,qJ,OJ,MJ,WJ,XJ,AJ,RJ,$J,FJ,DJ,SJ,PJ,CJ,IJ,GJ,TJ,EJ,BJ,JJ,vJ,kJ,fJ,wJ,jJ,xJ,_J,NJ,gJ,yJ,hJ,pJ,cJ,uJ="buffer",bJ=(K)=>{return crypto.getRandomValues(K)},lJ=()=>{return crypto.randomUUID()},dJ,oJ,mJ;var WV=L8(()=>{PE=Object.create,{getPrototypeOf:CE,defineProperty:x9,getOwnPropertyNames:IE}=Object,GE=Object.prototype.hasOwnProperty,xL=D0((K,V)=>{V.exports=(WV(),D1(MV)).randomBytes}),_L=D0((K,V)=>{V.exports=(WV(),D1(MV)).createHash}),N9=D0((K,V)=>{V.exports=(WV(),D1(MV)).createHmac}),EE=D0((K,V)=>{V.exports={sha224WithRSAEncryption:{sign:"rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},"RSA-SHA224":{sign:"ecdsa/rsa",hash:"sha224",id:"302d300d06096086480165030402040500041c"},sha256WithRSAEncryption:{sign:"rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},"RSA-SHA256":{sign:"ecdsa/rsa",hash:"sha256",id:"3031300d060960864801650304020105000420"},sha384WithRSAEncryption:{sign:"rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},"RSA-SHA384":{sign:"ecdsa/rsa",hash:"sha384",id:"3041300d060960864801650304020205000430"},sha512WithRSAEncryption:{sign:"rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA512":{sign:"ecdsa/rsa",hash:"sha512",id:"3051300d060960864801650304020305000440"},"RSA-SHA1":{sign:"rsa",hash:"sha1",id:"3021300906052b0e03021a05000414"},"ecdsa-with-SHA1":{sign:"ecdsa",hash:"sha1",id:""},sha256:{sign:"ecdsa",hash:"sha256",id:""},sha224:{sign:"ecdsa",hash:"sha224",id:""},sha384:{sign:"ecdsa",hash:"sha384",id:""},sha512:{sign:"ecdsa",hash:"sha512",id:""},"DSA-SHA":{sign:"dsa",hash:"sha1",id:""},"DSA-SHA1":{sign:"dsa",hash:"sha1",id:""},DSA:{sign:"dsa",hash:"sha1",id:""},"DSA-WITH-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-SHA224":{sign:"dsa",hash:"sha224",id:""},"DSA-WITH-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-SHA256":{sign:"dsa",hash:"sha256",id:""},"DSA-WITH-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-SHA384":{sign:"dsa",hash:"sha384",id:""},"DSA-WITH-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-SHA512":{sign:"dsa",hash:"sha512",id:""},"DSA-RIPEMD160":{sign:"dsa",hash:"rmd160",id:""},ripemd160WithRSA:{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},"RSA-RIPEMD160":{sign:"rsa",hash:"rmd160",id:"3021300906052b2403020105000414"},md5WithRSAEncryption:{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"},"RSA-MD5":{sign:"rsa",hash:"md5",id:"3020300c06082a864886f70d020505000410"}}}),B2=D0((K,V)=>{var Q=isFinite,U=Math.pow(2,30)-1;V.exports=function(H,Y){if(typeof H!=="number")throw TypeError("Iterations not a number");if(H<0||!Q(H))throw TypeError("Bad iterations");if(typeof Y!=="number")throw TypeError("Key length not a number");if(Y<0||Y>U||Y!==Y)throw TypeError("Bad key length")}}),J2=D0((K,V)=>{var Q;if(globalThis.process&&globalThis.process.browser)Q="utf-8";else if(globalThis.process&&globalThis.process.version)U=parseInt(process.version.split(".")[0].slice(1),10),Q=U>=6?"utf-8":"binary";else Q="utf-8";var U;V.exports=Q}),QV=D0((K,V)=>{/*! safe-buffer. MIT License. Feross Aboukhadijeh */var Q=(cK(),D1(pK)),U=Q.Buffer;function H(z,M){for(var A in z)M[A]=z[A]}if(U.from&&U.alloc&&U.allocUnsafe&&U.allocUnsafeSlow)V.exports=Q;else H(Q,K),K.Buffer=Y;function Y(z,M,A){return U(z,M,A)}Y.prototype=Object.create(U.prototype),H(U,Y),Y.from=function(z,M,A){if(typeof z==="number")throw TypeError("Argument must not be a number");return U(z,M,A)},Y.alloc=function(z,M,A){if(typeof z!=="number")throw TypeError("Argument must be a number");var R=U(z);if(M!==void 0)if(typeof A==="string")R.fill(M,A);else R.fill(M);else R.fill(0);return R},Y.allocUnsafe=function(z){if(typeof z!=="number")throw TypeError("Argument must be a number");return U(z)},Y.allocUnsafeSlow=function(z){if(typeof z!=="number")throw TypeError("Argument must be a number");return Q.SlowBuffer(z)}}),BE=D0((K,V)=>{var Q={}.toString;V.exports=Array.isArray||function(U){return Q.call(U)=="[object Array]"}}),g8=D0((K,V)=>{V.exports=TypeError}),g9=D0((K,V)=>{V.exports=Object}),JE=D0((K,V)=>{V.exports=Error}),vE=D0((K,V)=>{V.exports=EvalError}),kE=D0((K,V)=>{V.exports=RangeError}),fE=D0((K,V)=>{V.exports=ReferenceError}),y9=D0((K,V)=>{V.exports=SyntaxError}),wE=D0((K,V)=>{V.exports=URIError}),jE=D0((K,V)=>{V.exports=Math.abs}),xE=D0((K,V)=>{V.exports=Math.floor}),_E=D0((K,V)=>{V.exports=Math.max}),NE=D0((K,V)=>{V.exports=Math.min}),gE=D0((K,V)=>{V.exports=Math.pow}),yE=D0((K,V)=>{V.exports=Math.round}),hE=D0((K,V)=>{V.exports=Number.isNaN||function(Q){return Q!==Q}}),pE=D0((K,V)=>{var Q=hE();V.exports=function(U){if(Q(U)||U===0)return U;return U<0?-1:1}}),cE=D0((K,V)=>{V.exports=Object.getOwnPropertyDescriptor}),y8=D0((K,V)=>{var Q=cE();if(Q)try{Q([],"length")}catch(U){Q=null}V.exports=Q}),NL=D0((K,V)=>{var Q=Object.defineProperty||!1;if(Q)try{Q({},"a",{value:1})}catch(U){Q=!1}V.exports=Q}),h9=D0((K,V)=>{V.exports=function(){if(typeof Symbol!=="function"||typeof Object.getOwnPropertySymbols!=="function")return!1;if(typeof Symbol.iterator==="symbol")return!0;var Q={},U=Symbol("test"),H=Object(U);if(typeof U==="string")return!1;if(Object.prototype.toString.call(U)!=="[object Symbol]")return!1;if(Object.prototype.toString.call(H)!=="[object Symbol]")return!1;var Y=42;Q[U]=Y;for(var z in Q)return!1;if(typeof Object.keys==="function"&&Object.keys(Q).length!==0)return!1;if(typeof Object.getOwnPropertyNames==="function"&&Object.getOwnPropertyNames(Q).length!==0)return!1;var M=Object.getOwnPropertySymbols(Q);if(M.length!==1||M[0]!==U)return!1;if(!Object.prototype.propertyIsEnumerable.call(Q,U))return!1;if(typeof Object.getOwnPropertyDescriptor==="function"){var A=Object.getOwnPropertyDescriptor(Q,U);if(A.value!==Y||A.enumerable!==!0)return!1}return!0}}),uE=D0((K,V)=>{var Q=typeof Symbol<"u"&&Symbol,U=h9();V.exports=function(){if(typeof Q!=="function")return!1;if(typeof Symbol!=="function")return!1;if(typeof Q("foo")!=="symbol")return!1;if(typeof Symbol("bar")!=="symbol")return!1;return U()}}),p9=D0((K,V)=>{V.exports=typeof Reflect<"u"&&Reflect.getPrototypeOf||null}),c9=D0((K,V)=>{var Q=g9();V.exports=Q.getPrototypeOf||null}),bE=D0((K,V)=>{var Q="Function.prototype.bind called on incompatible ",U=Object.prototype.toString,H=Math.max,Y="[object Function]",z=function(R,D){var F=[];for(var P=0;P{var Q=bE();V.exports=Function.prototype.bind||Q}),v2=D0((K,V)=>{V.exports=Function.prototype.call}),k2=D0((K,V)=>{V.exports=Function.prototype.apply}),lE=D0((K,V)=>{V.exports=typeof Reflect<"u"&&Reflect&&Reflect.apply}),u9=D0((K,V)=>{var Q=h8(),U=k2(),H=v2(),Y=lE();V.exports=Y||Q.call(H,U)}),f2=D0((K,V)=>{var Q=h8(),U=g8(),H=v2(),Y=u9();V.exports=function(z){if(z.length<1||typeof z[0]!=="function")throw new U("a function is required");return Y(Q,H,z)}}),dE=D0((K,V)=>{var Q=f2(),U=y8(),H;try{H=[].__proto__===Array.prototype}catch(A){if(!A||typeof A!=="object"||!("code"in A)||A.code!=="ERR_PROTO_ACCESS")throw A}var Y=!!H&&U&&U(Object.prototype,"__proto__"),z=Object,M=z.getPrototypeOf;V.exports=Y&&typeof Y.get==="function"?Q([Y.get]):typeof M==="function"?function(A){return M(A==null?A:z(A))}:!1}),b9=D0((K,V)=>{var Q=p9(),U=c9(),H=dE();V.exports=Q?function(Y){return Q(Y)}:U?function(Y){if(!Y||typeof Y!=="object"&&typeof Y!=="function")throw TypeError("getProto: not an object");return U(Y)}:H?function(Y){return H(Y)}:null}),sE=D0((K,V)=>{var Q=Function.prototype.call,U=Object.prototype.hasOwnProperty,H=h8();V.exports=H.call(Q,U)}),l9=D0((K,V)=>{var Q,U=g9(),H=JE(),Y=vE(),z=kE(),M=fE(),A=y9(),R=g8(),D=wE(),F=jE(),P=xE(),G=_E(),T=NE(),v=gE(),J=yE(),k=pE(),f=Function,j=function(A0){try{return f('"use strict"; return ('+A0+").constructor;")()}catch(e){}},_=y8(),p=NL(),N=function(){throw new R},m=_?function(){try{return arguments.callee,N}catch(A0){try{return _(arguments,"callee").get}catch(e){return N}}}():N,z0=uE()(),L0=b9(),s=c9(),Z0=p9(),L=k2(),O=v2(),X={},q=typeof Uint8Array>"u"||!L0?Q:L0(Uint8Array),W={__proto__:null,"%AggregateError%":typeof AggregateError>"u"?Q:AggregateError,"%Array%":Array,"%ArrayBuffer%":typeof ArrayBuffer>"u"?Q:ArrayBuffer,"%ArrayIteratorPrototype%":z0&&L0?L0([][Symbol.iterator]()):Q,"%AsyncFromSyncIteratorPrototype%":Q,"%AsyncFunction%":X,"%AsyncGenerator%":X,"%AsyncGeneratorFunction%":X,"%AsyncIteratorPrototype%":X,"%Atomics%":typeof Atomics>"u"?Q:Atomics,"%BigInt%":typeof BigInt>"u"?Q:BigInt,"%BigInt64Array%":typeof BigInt64Array>"u"?Q:BigInt64Array,"%BigUint64Array%":typeof BigUint64Array>"u"?Q:BigUint64Array,"%Boolean%":Boolean,"%DataView%":typeof DataView>"u"?Q:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":H,"%eval%":eval,"%EvalError%":Y,"%Float16Array%":typeof Float16Array>"u"?Q:Float16Array,"%Float32Array%":typeof Float32Array>"u"?Q:Float32Array,"%Float64Array%":typeof Float64Array>"u"?Q:Float64Array,"%FinalizationRegistry%":typeof FinalizationRegistry>"u"?Q:FinalizationRegistry,"%Function%":f,"%GeneratorFunction%":X,"%Int8Array%":typeof Int8Array>"u"?Q:Int8Array,"%Int16Array%":typeof Int16Array>"u"?Q:Int16Array,"%Int32Array%":typeof Int32Array>"u"?Q:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":z0&&L0?L0(L0([][Symbol.iterator]())):Q,"%JSON%":typeof JSON==="object"?JSON:Q,"%Map%":typeof Map>"u"?Q:Map,"%MapIteratorPrototype%":typeof Map>"u"||!z0||!L0?Q:L0(new Map()[Symbol.iterator]()),"%Math%":Math,"%Number%":Number,"%Object%":U,"%Object.getOwnPropertyDescriptor%":_,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":typeof Promise>"u"?Q:Promise,"%Proxy%":typeof Proxy>"u"?Q:Proxy,"%RangeError%":z,"%ReferenceError%":M,"%Reflect%":typeof Reflect>"u"?Q:Reflect,"%RegExp%":RegExp,"%Set%":typeof Set>"u"?Q:Set,"%SetIteratorPrototype%":typeof Set>"u"||!z0||!L0?Q:L0(new Set()[Symbol.iterator]()),"%SharedArrayBuffer%":typeof SharedArrayBuffer>"u"?Q:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":z0&&L0?L0(""[Symbol.iterator]()):Q,"%Symbol%":z0?Symbol:Q,"%SyntaxError%":A,"%ThrowTypeError%":m,"%TypedArray%":q,"%TypeError%":R,"%Uint8Array%":typeof Uint8Array>"u"?Q:Uint8Array,"%Uint8ClampedArray%":typeof Uint8ClampedArray>"u"?Q:Uint8ClampedArray,"%Uint16Array%":typeof Uint16Array>"u"?Q:Uint16Array,"%Uint32Array%":typeof Uint32Array>"u"?Q:Uint32Array,"%URIError%":D,"%WeakMap%":typeof WeakMap>"u"?Q:WeakMap,"%WeakRef%":typeof WeakRef>"u"?Q:WeakRef,"%WeakSet%":typeof WeakSet>"u"?Q:WeakSet,"%Function.prototype.call%":O,"%Function.prototype.apply%":L,"%Object.defineProperty%":p,"%Object.getPrototypeOf%":s,"%Math.abs%":F,"%Math.floor%":P,"%Math.max%":G,"%Math.min%":T,"%Math.pow%":v,"%Math.round%":J,"%Math.sign%":k,"%Reflect.getPrototypeOf%":Z0};if(L0)try{null.error}catch(A0){C=L0(L0(A0)),W["%Error.prototype%"]=C}var C,I=function A0(e){var Y0;if(e==="%AsyncFunction%")Y0=j("async function () {}");else if(e==="%GeneratorFunction%")Y0=j("function* () {}");else if(e==="%AsyncGeneratorFunction%")Y0=j("async function* () {}");else if(e==="%AsyncGenerator%"){var r0=A0("%AsyncGeneratorFunction%");if(r0)Y0=r0.prototype}else if(e==="%AsyncIteratorPrototype%"){var b=A0("%AsyncGenerator%");if(b&&L0)Y0=L0(b.prototype)}return W[e]=Y0,Y0},$={__proto__:null,"%ArrayBufferPrototype%":["ArrayBuffer","prototype"],"%ArrayPrototype%":["Array","prototype"],"%ArrayProto_entries%":["Array","prototype","entries"],"%ArrayProto_forEach%":["Array","prototype","forEach"],"%ArrayProto_keys%":["Array","prototype","keys"],"%ArrayProto_values%":["Array","prototype","values"],"%AsyncFunctionPrototype%":["AsyncFunction","prototype"],"%AsyncGenerator%":["AsyncGeneratorFunction","prototype"],"%AsyncGeneratorPrototype%":["AsyncGeneratorFunction","prototype","prototype"],"%BooleanPrototype%":["Boolean","prototype"],"%DataViewPrototype%":["DataView","prototype"],"%DatePrototype%":["Date","prototype"],"%ErrorPrototype%":["Error","prototype"],"%EvalErrorPrototype%":["EvalError","prototype"],"%Float32ArrayPrototype%":["Float32Array","prototype"],"%Float64ArrayPrototype%":["Float64Array","prototype"],"%FunctionPrototype%":["Function","prototype"],"%Generator%":["GeneratorFunction","prototype"],"%GeneratorPrototype%":["GeneratorFunction","prototype","prototype"],"%Int8ArrayPrototype%":["Int8Array","prototype"],"%Int16ArrayPrototype%":["Int16Array","prototype"],"%Int32ArrayPrototype%":["Int32Array","prototype"],"%JSONParse%":["JSON","parse"],"%JSONStringify%":["JSON","stringify"],"%MapPrototype%":["Map","prototype"],"%NumberPrototype%":["Number","prototype"],"%ObjectPrototype%":["Object","prototype"],"%ObjProto_toString%":["Object","prototype","toString"],"%ObjProto_valueOf%":["Object","prototype","valueOf"],"%PromisePrototype%":["Promise","prototype"],"%PromiseProto_then%":["Promise","prototype","then"],"%Promise_all%":["Promise","all"],"%Promise_reject%":["Promise","reject"],"%Promise_resolve%":["Promise","resolve"],"%RangeErrorPrototype%":["RangeError","prototype"],"%ReferenceErrorPrototype%":["ReferenceError","prototype"],"%RegExpPrototype%":["RegExp","prototype"],"%SetPrototype%":["Set","prototype"],"%SharedArrayBufferPrototype%":["SharedArrayBuffer","prototype"],"%StringPrototype%":["String","prototype"],"%SymbolPrototype%":["Symbol","prototype"],"%SyntaxErrorPrototype%":["SyntaxError","prototype"],"%TypedArrayPrototype%":["TypedArray","prototype"],"%TypeErrorPrototype%":["TypeError","prototype"],"%Uint8ArrayPrototype%":["Uint8Array","prototype"],"%Uint8ClampedArrayPrototype%":["Uint8ClampedArray","prototype"],"%Uint16ArrayPrototype%":["Uint16Array","prototype"],"%Uint32ArrayPrototype%":["Uint32Array","prototype"],"%URIErrorPrototype%":["URIError","prototype"],"%WeakMapPrototype%":["WeakMap","prototype"],"%WeakSetPrototype%":["WeakSet","prototype"]},Z=h8(),S=sE(),B=Z.call(O,Array.prototype.concat),E=Z.call(L,Array.prototype.splice),w=Z.call(O,String.prototype.replace),h=Z.call(O,String.prototype.slice),u=Z.call(O,RegExp.prototype.exec),t=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,F0=/\\(\\)?/g,K0=function(A0){var e=h(A0,0,1),Y0=h(A0,-1);if(e==="%"&&Y0!=="%")throw new A("invalid intrinsic syntax, expected closing `%`");else if(Y0==="%"&&e!=="%")throw new A("invalid intrinsic syntax, expected opening `%`");var r0=[];return w(A0,t,function(b,o,R0,Q0){r0[r0.length]=R0?w(Q0,F0,"$1"):o||b}),r0},r=function(A0,e){var Y0=A0,r0;if(S($,Y0))r0=$[Y0],Y0="%"+r0[0]+"%";if(S(W,Y0)){var b=W[Y0];if(b===X)b=I(Y0);if(typeof b>"u"&&!e)throw new R("intrinsic "+A0+" exists, but is not available. Please file an issue!");return{alias:r0,name:Y0,value:b}}throw new A("intrinsic "+A0+" does not exist!")};V.exports=function(A0,e){if(typeof A0!=="string"||A0.length===0)throw new R("intrinsic name must be a non-empty string");if(arguments.length>1&&typeof e!=="boolean")throw new R('"allowMissing" argument must be a boolean');if(u(/^%?[^%]*%?$/,A0)===null)throw new A("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var Y0=K0(A0),r0=Y0.length>0?Y0[0]:"",b=r("%"+r0+"%",e),o=b.name,R0=b.value,Q0=!1,H0=b.alias;if(H0)r0=H0[0],E(Y0,B([0,1],H0));for(var N0=1,d=!0;N0=Y0.length){var W0=_(R0,a);if(d=!!W0,d&&"get"in W0&&!("originalValue"in W0.get))R0=W0.get;else R0=R0[a]}else d=S(R0,a),R0=R0[a];if(d&&!Q0)W[o]=R0}}return R0}}),d9=D0((K,V)=>{var Q=l9(),U=f2(),H=U([Q("%String.prototype.indexOf%")]);V.exports=function(Y,z){var M=Q(Y,!!z);if(typeof M==="function"&&H(Y,".prototype.")>-1)return U([M]);return M}}),oE=D0((K,V)=>{var Q=Function.prototype.toString,U=typeof Reflect==="object"&&Reflect!==null&&Reflect.apply,H,Y;if(typeof U==="function"&&typeof Object.defineProperty==="function")try{H=Object.defineProperty({},"length",{get:function(){throw Y}}),Y={},U(function(){throw 42},null,H)}catch(_){if(_!==Y)U=null}else U=null;var z=/^\s*class\b/,M=function(_){try{var p=Q.call(_);return z.test(p)}catch(N){return!1}},A=function(_){try{if(M(_))return!1;return Q.call(_),!0}catch(p){return!1}},R=Object.prototype.toString,D="[object Object]",F="[object Function]",P="[object GeneratorFunction]",G="[object HTMLAllCollection]",T="[object HTML document.all class]",v="[object HTMLCollection]",J=typeof Symbol==="function"&&!!Symbol.toStringTag,k=!(0 in[,]),f=function(){return!1};if(typeof document==="object"){if(j=document.all,R.call(j)===R.call(document.all))f=function(_){if((k||!_)&&(typeof _>"u"||typeof _==="object"))try{var p=R.call(_);return(p===G||p===T||p===v||p===D)&&_("")==null}catch(N){}return!1}}var j;V.exports=U?function(_){if(f(_))return!0;if(!_)return!1;if(typeof _!=="function"&&typeof _!=="object")return!1;try{U(_,null,H)}catch(p){if(p!==Y)return!1}return!M(_)&&A(_)}:function(_){if(f(_))return!0;if(!_)return!1;if(typeof _!=="function"&&typeof _!=="object")return!1;if(J)return A(_);if(M(_))return!1;var p=R.call(_);if(p!==F&&p!==P&&!/^\[object HTML/.test(p))return!1;return A(_)}}),mE=D0((K,V)=>{var Q=oE(),U=Object.prototype.toString,H=Object.prototype.hasOwnProperty,Y=function(R,D,F){for(var P=0,G=R.length;P=3)P=F;if(A(R))Y(R,D,P);else if(typeof R==="string")z(R,D,P);else M(R,D,P)}}),nE=D0((K,V)=>{V.exports=["Float16Array","Float32Array","Float64Array","Int8Array","Int16Array","Int32Array","Uint8Array","Uint8ClampedArray","Uint16Array","Uint32Array","BigInt64Array","BigUint64Array"]}),rE=D0((K,V)=>{var Q=nE(),U=typeof globalThis>"u"?globalThis:globalThis;V.exports=function(){var H=[];for(var Y=0;Y{var Q=NL(),U=y9(),H=g8(),Y=y8();V.exports=function(z,M,A){if(!z||typeof z!=="object"&&typeof z!=="function")throw new H("`obj` must be an object or a function`");if(typeof M!=="string"&&typeof M!=="symbol")throw new H("`property` must be a string or a symbol`");if(arguments.length>3&&typeof arguments[3]!=="boolean"&&arguments[3]!==null)throw new H("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&typeof arguments[4]!=="boolean"&&arguments[4]!==null)throw new H("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&typeof arguments[5]!=="boolean"&&arguments[5]!==null)throw new H("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&typeof arguments[6]!=="boolean")throw new H("`loose`, if provided, must be a boolean");var R=arguments.length>3?arguments[3]:null,D=arguments.length>4?arguments[4]:null,F=arguments.length>5?arguments[5]:null,P=arguments.length>6?arguments[6]:!1,G=!!Y&&Y(z,M);if(Q)Q(z,M,{configurable:F===null&&G?G.configurable:!F,enumerable:R===null&&G?G.enumerable:!R,value:A,writable:D===null&&G?G.writable:!D});else if(P||!R&&!D&&!F)z[M]=A;else throw new U("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.")}}),tE=D0((K,V)=>{var Q=NL(),U=function(){return!!Q};U.hasArrayLengthDefineBug=function(){if(!Q)return null;try{return Q([],"length",{value:1}).length!==1}catch(H){return!0}},V.exports=U}),aE=D0((K,V)=>{var Q=l9(),U=iE(),H=tE()(),Y=y8(),z=g8(),M=Q("%Math.floor%");V.exports=function(A,R){if(typeof A!=="function")throw new z("`fn` is not a function");if(typeof R!=="number"||R<0||R>4294967295||M(R)!==R)throw new z("`length` must be a positive 32-bit integer");var D=arguments.length>2&&!!arguments[2],F=!0,P=!0;if("length"in A&&Y){var G=Y(A,"length");if(G&&!G.configurable)F=!1;if(G&&!G.writable)P=!1}if(F||P||!D)if(H)U(A,"length",R,!0,!0);else U(A,"length",R);return A}}),eE=D0((K,V)=>{var Q=h8(),U=k2(),H=u9();V.exports=function(){return H(Q,U,arguments)}}),KB=D0((K,V)=>{var Q=aE(),U=NL(),H=f2(),Y=eE();if(V.exports=function(z){var M=H(arguments),A=z.length-(arguments.length-1);return Q(M,1+(A>0?A:0),!0)},U)U(V.exports,"apply",{value:Y});else V.exports.apply=Y}),VB=D0((K,V)=>{var Q=h9();V.exports=function(){return Q()&&!!Symbol.toStringTag}}),QB=D0((K,V)=>{var Q=mE(),U=rE(),H=KB(),Y=d9(),z=y8(),M=b9(),A=Y("Object.prototype.toString"),R=VB()(),D=typeof globalThis>"u"?globalThis:globalThis,F=U(),P=Y("String.prototype.slice"),G=Y("Array.prototype.indexOf",!0)||function(k,f){for(var j=0;j-1)return f;if(f!=="Object")return!1;return J(k)}if(!z)return null;return v(k)}}),UB=D0((K,V)=>{var Q=QB();V.exports=function(U){return!!Q(U)}}),HB=D0((K,V)=>{var Q=g8(),U=d9(),H=U("TypedArray.prototype.buffer",!0),Y=UB();V.exports=H||function(z){if(!Y(z))throw new Q("Not a Typed Array");return z.buffer}}),zB=D0((K,V)=>{var Q=QV().Buffer,U=BE(),H=HB(),Y=ArrayBuffer.isView||function(R){try{return H(R),!0}catch(D){return!1}},z=typeof Uint8Array<"u",M=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u",A=M&&(Q.prototype instanceof Uint8Array||Q.TYPED_ARRAY_SUPPORT);V.exports=function(R,D){if(Q.isBuffer(R)){if(R.constructor&&!("isBuffer"in R))return Q.from(R);return R}if(typeof R==="string")return Q.from(R,D);if(M&&Y(R)){if(R.byteLength===0)return Q.alloc(0);if(A){var F=Q.from(R.buffer,R.byteOffset,R.byteLength);if(F.byteLength===R.byteLength)return F}var P=R instanceof Uint8Array?R:new Uint8Array(R.buffer,R.byteOffset,R.byteLength),G=Q.from(P);if(G.length===R.byteLength)return G}if(z&&R instanceof Uint8Array)return Q.from(R);var T=U(R);if(T)for(var v=0;v255||~~J!==J)throw RangeError("Array items must be numbers in the range 0-255.")}if(T||Q.isBuffer(R)&&R.constructor&&typeof R.constructor.isBuffer==="function"&&R.constructor.isBuffer(R))return Q.from(R);throw TypeError('The "data" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.')}}),w2=D0((K,V)=>{var Q=QV().Buffer,U=zB(),H=typeof Uint8Array<"u",Y=H&&typeof ArrayBuffer<"u",z=Y&&ArrayBuffer.isView;V.exports=function(M,A,R){if(typeof M==="string"||Q.isBuffer(M)||H&&M instanceof Uint8Array||z&&z(M))return U(M,A);throw TypeError(R+" must be a string, a Buffer, a Uint8Array, or a DataView")}}),s9=D0((K,V)=>{var Q={__proto__:null,md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,"sha512-256":32,rmd160:20,ripemd160:20},U={__proto__:null,"sha-1":"sha1","sha-224":"sha224","sha-256":"sha256","sha-384":"sha384","sha-512":"sha512","ripemd-160":"ripemd160"},H=N9(),Y=QV().Buffer,z=B2(),M=J2(),A=w2();function R(D,F,P,G,T){z(P,G),D=A(D,M,"Password"),F=A(F,M,"Salt");var v=(T||"sha1").toLowerCase(),J=U[v]||v,k=Q[J];if(typeof k!=="number"||!k)throw TypeError("Digest algorithm not supported: "+T);var f=Y.allocUnsafe(G),j=Y.allocUnsafe(F.length+4);F.copy(j,0,0,F.length);var _=0,p=k,N=Math.ceil(G/p);for(var m=1;m<=N;m++){j.writeUInt32BE(m,F.length);var z0=H(J,D).update(j).digest(),L0=z0;for(var s=1;s{var Q=QV().Buffer,U=B2(),H=J2(),Y=s9(),z=w2(),M,A=globalThis.crypto&&globalThis.crypto.subtle,R={sha:"SHA-1","sha-1":"SHA-1",sha1:"SHA-1",sha256:"SHA-256","sha-256":"SHA-256",sha384:"SHA-384","sha-384":"SHA-384","sha-512":"SHA-512",sha512:"SHA-512"},D=[],F;function P(){if(F)return F;if(globalThis.process&&globalThis.process.nextTick)F=globalThis.process.nextTick;else if(globalThis.queueMicrotask)F=globalThis.queueMicrotask;else if(globalThis.setImmediate)F=globalThis.setImmediate;else F=globalThis.setTimeout;return F}function G(J,k,f,j,_){return A.importKey("raw",J,{name:"PBKDF2"},!1,["deriveBits"]).then(function(p){return A.deriveBits({name:"PBKDF2",salt:k,iterations:f,hash:{name:_}},p,j<<3)}).then(function(p){return Q.from(p)})}function T(J){if(globalThis.process&&!globalThis.process.browser)return Promise.resolve(!1);if(!A||!A.importKey||!A.deriveBits)return Promise.resolve(!1);if(D[J]!==void 0)return D[J];M=M||Q.alloc(8);var k=G(M,M,10,128,J).then(function(){return!0},function(){return!1});return D[J]=k,k}function v(J,k){J.then(function(f){P()(function(){k(null,f)})},function(f){P()(function(){k(f)})})}V.exports=function(J,k,f,j,_,p){if(typeof _==="function")p=_,_=void 0;if(U(f,j),J=z(J,H,"Password"),k=z(k,H,"Salt"),typeof p!=="function")throw Error("No callback provided to pbkdf2");_=_||"sha1";var N=R[_.toLowerCase()];if(!N||typeof globalThis.Promise!=="function"){P()(function(){var m;try{m=Y(J,k,f,j,_)}catch(z0){p(z0);return}p(null,m)});return}v(T(N).then(function(m){if(m)return G(J,k,f,j,N);return Y(J,k,f,j,_)}),p)}}),o9=D0((K)=>{var V=(WV(),D1(MV)),Q=B2(),U=J2(),H=w2();function Y(M,A,R,D,F,P){if(Q(R,D),M=H(M,U,"Password"),A=H(A,U,"Salt"),typeof F==="function")P=F,F="sha1";if(typeof P!=="function")throw Error("No callback provided to pbkdf2");return V.pbkdf2(M,A,R,D,F,P)}function z(M,A,R,D,F){return Q(R,D),M=H(M,U,"Password"),A=H(A,U,"Salt"),F=F||"sha1",V.pbkdf2Sync(M,A,R,D,F)}if(!V.pbkdf2Sync||V.pbkdf2Sync.toString().indexOf("keylen, digest")===-1)K.pbkdf2Sync=s9(),K.pbkdf2=LB();else K.pbkdf2Sync=z,K.pbkdf2=Y}),ZB=D0((K)=>{var V=(WV(),D1(MV));K.createCipher=K.Cipher=V.createCipher,K.createCipheriv=K.Cipheriv=V.createCipheriv,K.createDecipher=K.Decipher=V.createDecipher,K.createDecipheriv=K.Decipheriv=V.createDecipheriv,K.listCiphers=K.getCiphers=V.getCiphers}),YB=D0((K)=>{var V=(WV(),D1(MV));K.DiffieHellmanGroup=V.DiffieHellmanGroup,K.createDiffieHellmanGroup=V.createDiffieHellmanGroup,K.getDiffieHellman=V.getDiffieHellman,K.createDiffieHellman=V.createDiffieHellman,K.DiffieHellman=V.DiffieHellman}),qB=D0((K)=>{var V=(WV(),D1(MV));K.createSign=V.createSign,K.Sign=V.Sign,K.createVerify=V.createVerify,K.Verify=V.Verify}),OB=D0((K,V)=>{V.exports={name:"elliptic",version:"6.6.1",description:"EC cryptography",main:"lib/elliptic.js",files:["lib"],scripts:{lint:"eslint lib test","lint:fix":"npm run lint -- --fix",unit:"istanbul test _mocha --reporter=spec test/index.js",test:"npm run lint && npm run unit",version:"grunt dist && git add dist/"},repository:{type:"git",url:"git@github.com:indutny/elliptic"},keywords:["EC","Elliptic","curve","Cryptography"],author:"Fedor Indutny ",license:"MIT",bugs:{url:"https://github.com/indutny/elliptic/issues"},homepage:"https://github.com/indutny/elliptic",devDependencies:{brfs:"^2.0.2",coveralls:"^3.1.0",eslint:"^7.6.0",grunt:"^1.2.1","grunt-browserify":"^5.3.0","grunt-cli":"^1.3.2","grunt-contrib-connect":"^3.0.0","grunt-contrib-copy":"^1.0.0","grunt-contrib-uglify":"^5.0.0","grunt-mocha-istanbul":"^5.0.2","grunt-saucelabs":"^9.0.1",istanbul:"^0.4.5",mocha:"^8.0.1"},dependencies:{"bn.js":"^4.11.9",brorand:"^1.1.0","hash.js":"^1.0.0","hmac-drbg":"^1.0.1",inherits:"^2.0.4","minimalistic-assert":"^1.0.1","minimalistic-crypto-utils":"^1.0.1"}}}),_Q=D0((K,V)=>{(function(Q,U){function H(L,O){if(!L)throw Error(O||"Assertion failed")}function Y(L,O){L.super_=O;var X=function(){};X.prototype=O.prototype,L.prototype=new X,L.prototype.constructor=L}function z(L,O,X){if(z.isBN(L))return L;if(this.negative=0,this.words=null,this.length=0,this.red=null,L!==null){if(O==="le"||O==="be")X=O,O=10;this._init(L||0,O||10,X||"be")}}if(typeof Q==="object")Q.exports=z;else U.BN=z;z.BN=z,z.wordSize=26;var M;try{if(typeof window<"u"&&typeof window.Buffer<"u")M=window.Buffer;else M=(cK(),D1(pK)).Buffer}catch(L){}z.isBN=function(L){if(L instanceof z)return!0;return L!==null&&typeof L==="object"&&L.constructor.wordSize===z.wordSize&&Array.isArray(L.words)},z.max=function(L,O){if(L.cmp(O)>0)return L;return O},z.min=function(L,O){if(L.cmp(O)<0)return L;return O},z.prototype._init=function(L,O,X){if(typeof L==="number")return this._initNumber(L,O,X);if(typeof L==="object")return this._initArray(L,O,X);if(O==="hex")O=16;H(O===(O|0)&&O>=2&&O<=36),L=L.toString().replace(/\s+/g,"");var q=0;if(L[0]==="-")q++,this.negative=1;if(q=0;q-=3)if(C=L[q]|L[q-1]<<8|L[q-2]<<16,this.words[W]|=C<>>26-I&67108863,I+=24,I>=26)I-=26,W++}else if(X==="le"){for(q=0,W=0;q>>26-I&67108863,I+=24,I>=26)I-=26,W++}return this.strip()};function A(L,O){var X=L.charCodeAt(O);if(X>=65&&X<=70)return X-55;else if(X>=97&&X<=102)return X-87;else return X-48&15}function R(L,O,X){var q=A(L,X);if(X-1>=O)q|=A(L,X-1)<<4;return q}z.prototype._parseHex=function(L,O,X){this.length=Math.ceil((L.length-O)/6),this.words=Array(this.length);for(var q=0;q=O;q-=2)if(I=R(L,O,q)<=18)W-=18,C+=1,this.words[C]|=I>>>26;else W+=8;else{var $=L.length-O;for(q=$%2===0?O+1:O;q=18)W-=18,C+=1,this.words[C]|=I>>>26;else W+=8}this.strip()};function D(L,O,X,q){var W=0,C=Math.min(L.length,X);for(var I=O;I=49)W+=$-49+10;else if($>=17)W+=$-17+10;else W+=$}return W}z.prototype._parseBase=function(L,O,X){this.words=[0],this.length=1;for(var q=0,W=1;W<=67108863;W*=O)q++;q--,W=W/O|0;var C=L.length-X,I=C%q,$=Math.min(C,C-I)+X,Z=0;for(var S=X;S<$;S+=q)if(Z=D(L,S,S+q,O),this.imuln(W),this.words[0]+Z<67108864)this.words[0]+=Z;else this._iaddn(Z);if(I!==0){var B=1;Z=D(L,S,L.length,O);for(S=0;S1&&this.words[this.length-1]===0)this.length--;return this._normSign()},z.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},z.prototype.inspect=function(){return(this.red?""};var F=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],P=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],G=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(z.prototype.toString=function(L,O){L=L||10,O=O|0||1;var X;if(L===16||L==="hex"){X="";var q=0,W=0;for(var C=0;C>>24-q&16777215,q+=2,q>=26)q-=26,C--;if(W!==0||C!==this.length-1)X=F[6-$.length]+$+X;else X=$+X}if(W!==0)X=W.toString(16)+X;while(X.length%O!==0)X="0"+X;if(this.negative!==0)X="-"+X;return X}if(L===(L|0)&&L>=2&&L<=36){var Z=P[L],S=G[L];X="";var B=this.clone();B.negative=0;while(!B.isZero()){var E=B.modn(S).toString(L);if(B=B.idivn(S),!B.isZero())X=F[Z-E.length]+E+X;else X=E+X}if(this.isZero())X="0"+X;while(X.length%O!==0)X="0"+X;if(this.negative!==0)X="-"+X;return X}H(!1,"Base should be between 2 and 36")},z.prototype.toNumber=function(){var L=this.words[0];if(this.length===2)L+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)L+=4503599627370496+this.words[1]*67108864;else if(this.length>2)H(!1,"Number can only safely store up to 53 bits");return this.negative!==0?-L:L},z.prototype.toJSON=function(){return this.toString(16)},z.prototype.toBuffer=function(L,O){return H(typeof M<"u"),this.toArrayLike(M,L,O)},z.prototype.toArray=function(L,O){return this.toArrayLike(Array,L,O)},z.prototype.toArrayLike=function(L,O,X){var q=this.byteLength(),W=X||Math.max(1,q);H(q<=W,"byte array longer than desired length"),H(W>0,"Requested array length <= 0"),this.strip();var C=O==="le",I=new L(W),$,Z,S=this.clone();if(!C){for(Z=0;Z=4096)X+=13,O>>>=13;if(O>=64)X+=7,O>>>=7;if(O>=8)X+=4,O>>>=4;if(O>=2)X+=2,O>>>=2;return X+O};z.prototype._zeroBits=function(L){if(L===0)return 26;var O=L,X=0;if((O&8191)===0)X+=13,O>>>=13;if((O&127)===0)X+=7,O>>>=7;if((O&15)===0)X+=4,O>>>=4;if((O&3)===0)X+=2,O>>>=2;if((O&1)===0)X++;return X},z.prototype.bitLength=function(){var L=this.words[this.length-1],O=this._countBits(L);return(this.length-1)*26+O};function T(L){var O=Array(L.bitLength());for(var X=0;X>>W}return O}z.prototype.zeroBits=function(){if(this.isZero())return 0;var L=0;for(var O=0;OL.length)return this.clone().ior(L);return L.clone().ior(this)},z.prototype.uor=function(L){if(this.length>L.length)return this.clone().iuor(L);return L.clone().iuor(this)},z.prototype.iuand=function(L){var O;if(this.length>L.length)O=L;else O=this;for(var X=0;XL.length)return this.clone().iand(L);return L.clone().iand(this)},z.prototype.uand=function(L){if(this.length>L.length)return this.clone().iuand(L);return L.clone().iuand(this)},z.prototype.iuxor=function(L){var O,X;if(this.length>L.length)O=this,X=L;else O=L,X=this;for(var q=0;qL.length)return this.clone().ixor(L);return L.clone().ixor(this)},z.prototype.uxor=function(L){if(this.length>L.length)return this.clone().iuxor(L);return L.clone().iuxor(this)},z.prototype.inotn=function(L){H(typeof L==="number"&&L>=0);var O=Math.ceil(L/26)|0,X=L%26;if(this._expand(O),X>0)O--;for(var q=0;q0)this.words[q]=~this.words[q]&67108863>>26-X;return this.strip()},z.prototype.notn=function(L){return this.clone().inotn(L)},z.prototype.setn=function(L,O){H(typeof L==="number"&&L>=0);var X=L/26|0,q=L%26;if(this._expand(X+1),O)this.words[X]=this.words[X]|1<L.length)X=this,q=L;else X=L,q=this;var W=0;for(var C=0;C>>26;for(;W!==0&&C>>26;if(this.length=X.length,W!==0)this.words[this.length]=W,this.length++;else if(X!==this)for(;CL.length)return this.clone().iadd(L);return L.clone().iadd(this)},z.prototype.isub=function(L){if(L.negative!==0){L.negative=0;var O=this.iadd(L);return L.negative=1,O._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(L),this.negative=1,this._normSign();var X=this.cmp(L);if(X===0)return this.negative=0,this.length=1,this.words[0]=0,this;var q,W;if(X>0)q=this,W=L;else q=L,W=this;var C=0;for(var I=0;I>26,this.words[I]=O&67108863;for(;C!==0&&I>26,this.words[I]=O&67108863;if(C===0&&I>>26,E=Z&67108863,w=Math.min(S,O.length-1);for(var h=Math.max(0,S-L.length+1);h<=w;h++){var u=S-h|0;W=L.words[u]|0,C=O.words[h]|0,I=W*C+E,B+=I/67108864|0,E=I&67108863}X.words[S]=E|0,Z=B|0}if(Z!==0)X.words[S]=Z|0;else X.length--;return X.strip()}var J=function(L,O,X){var q=L.words,W=O.words,C=X.words,I=0,$,Z,S,B=q[0]|0,E=B&8191,w=B>>>13,h=q[1]|0,u=h&8191,t=h>>>13,F0=q[2]|0,K0=F0&8191,r=F0>>>13,A0=q[3]|0,e=A0&8191,Y0=A0>>>13,r0=q[4]|0,b=r0&8191,o=r0>>>13,R0=q[5]|0,Q0=R0&8191,H0=R0>>>13,N0=q[6]|0,d=N0&8191,a=N0>>>13,o0=q[7]|0,V0=o0&8191,W0=o0>>>13,H1=q[8]|0,G0=H1&8191,T0=H1>>>13,v1=q[9]|0,P0=v1&8191,E0=v1>>>13,i1=W[0]|0,x0=i1&8191,k0=i1>>>13,N1=W[1]|0,w0=N1&8191,f0=N1>>>13,zK=W[2]|0,c0=zK&8191,g0=zK>>>13,VK=W[3]|0,u0=VK&8191,y0=VK>>>13,g1=W[4]|0,s0=g1&8191,b0=g1>>>13,t1=W[5]|0,h0=t1&8191,g=t1>>>13,n=W[6]|0,U0=n&8191,O0=n>>>13,i0=W[7]|0,C0=i0&8191,B0=i0>>>13,k1=W[8]|0,l0=k1&8191,d0=k1>>>13,QK=W[9]|0,p0=QK&8191,_0=QK>>>13;X.negative=L.negative^O.negative,X.length=19,$=Math.imul(E,x0),Z=Math.imul(E,k0),Z=Z+Math.imul(w,x0)|0,S=Math.imul(w,k0);var P1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(P1>>>26)|0,P1&=67108863,$=Math.imul(u,x0),Z=Math.imul(u,k0),Z=Z+Math.imul(t,x0)|0,S=Math.imul(t,k0),$=$+Math.imul(E,w0)|0,Z=Z+Math.imul(E,f0)|0,Z=Z+Math.imul(w,w0)|0,S=S+Math.imul(w,f0)|0;var Z1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(Z1>>>26)|0,Z1&=67108863,$=Math.imul(K0,x0),Z=Math.imul(K0,k0),Z=Z+Math.imul(r,x0)|0,S=Math.imul(r,k0),$=$+Math.imul(u,w0)|0,Z=Z+Math.imul(u,f0)|0,Z=Z+Math.imul(t,w0)|0,S=S+Math.imul(t,f0)|0,$=$+Math.imul(E,c0)|0,Z=Z+Math.imul(E,g0)|0,Z=Z+Math.imul(w,c0)|0,S=S+Math.imul(w,g0)|0;var Y1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(Y1>>>26)|0,Y1&=67108863,$=Math.imul(e,x0),Z=Math.imul(e,k0),Z=Z+Math.imul(Y0,x0)|0,S=Math.imul(Y0,k0),$=$+Math.imul(K0,w0)|0,Z=Z+Math.imul(K0,f0)|0,Z=Z+Math.imul(r,w0)|0,S=S+Math.imul(r,f0)|0,$=$+Math.imul(u,c0)|0,Z=Z+Math.imul(u,g0)|0,Z=Z+Math.imul(t,c0)|0,S=S+Math.imul(t,g0)|0,$=$+Math.imul(E,u0)|0,Z=Z+Math.imul(E,y0)|0,Z=Z+Math.imul(w,u0)|0,S=S+Math.imul(w,y0)|0;var F1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(F1>>>26)|0,F1&=67108863,$=Math.imul(b,x0),Z=Math.imul(b,k0),Z=Z+Math.imul(o,x0)|0,S=Math.imul(o,k0),$=$+Math.imul(e,w0)|0,Z=Z+Math.imul(e,f0)|0,Z=Z+Math.imul(Y0,w0)|0,S=S+Math.imul(Y0,f0)|0,$=$+Math.imul(K0,c0)|0,Z=Z+Math.imul(K0,g0)|0,Z=Z+Math.imul(r,c0)|0,S=S+Math.imul(r,g0)|0,$=$+Math.imul(u,u0)|0,Z=Z+Math.imul(u,y0)|0,Z=Z+Math.imul(t,u0)|0,S=S+Math.imul(t,y0)|0,$=$+Math.imul(E,s0)|0,Z=Z+Math.imul(E,b0)|0,Z=Z+Math.imul(w,s0)|0,S=S+Math.imul(w,b0)|0;var A1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(A1>>>26)|0,A1&=67108863,$=Math.imul(Q0,x0),Z=Math.imul(Q0,k0),Z=Z+Math.imul(H0,x0)|0,S=Math.imul(H0,k0),$=$+Math.imul(b,w0)|0,Z=Z+Math.imul(b,f0)|0,Z=Z+Math.imul(o,w0)|0,S=S+Math.imul(o,f0)|0,$=$+Math.imul(e,c0)|0,Z=Z+Math.imul(e,g0)|0,Z=Z+Math.imul(Y0,c0)|0,S=S+Math.imul(Y0,g0)|0,$=$+Math.imul(K0,u0)|0,Z=Z+Math.imul(K0,y0)|0,Z=Z+Math.imul(r,u0)|0,S=S+Math.imul(r,y0)|0,$=$+Math.imul(u,s0)|0,Z=Z+Math.imul(u,b0)|0,Z=Z+Math.imul(t,s0)|0,S=S+Math.imul(t,b0)|0,$=$+Math.imul(E,h0)|0,Z=Z+Math.imul(E,g)|0,Z=Z+Math.imul(w,h0)|0,S=S+Math.imul(w,g)|0;var y1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(y1>>>26)|0,y1&=67108863,$=Math.imul(d,x0),Z=Math.imul(d,k0),Z=Z+Math.imul(a,x0)|0,S=Math.imul(a,k0),$=$+Math.imul(Q0,w0)|0,Z=Z+Math.imul(Q0,f0)|0,Z=Z+Math.imul(H0,w0)|0,S=S+Math.imul(H0,f0)|0,$=$+Math.imul(b,c0)|0,Z=Z+Math.imul(b,g0)|0,Z=Z+Math.imul(o,c0)|0,S=S+Math.imul(o,g0)|0,$=$+Math.imul(e,u0)|0,Z=Z+Math.imul(e,y0)|0,Z=Z+Math.imul(Y0,u0)|0,S=S+Math.imul(Y0,y0)|0,$=$+Math.imul(K0,s0)|0,Z=Z+Math.imul(K0,b0)|0,Z=Z+Math.imul(r,s0)|0,S=S+Math.imul(r,b0)|0,$=$+Math.imul(u,h0)|0,Z=Z+Math.imul(u,g)|0,Z=Z+Math.imul(t,h0)|0,S=S+Math.imul(t,g)|0,$=$+Math.imul(E,U0)|0,Z=Z+Math.imul(E,O0)|0,Z=Z+Math.imul(w,U0)|0,S=S+Math.imul(w,O0)|0;var h1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(h1>>>26)|0,h1&=67108863,$=Math.imul(V0,x0),Z=Math.imul(V0,k0),Z=Z+Math.imul(W0,x0)|0,S=Math.imul(W0,k0),$=$+Math.imul(d,w0)|0,Z=Z+Math.imul(d,f0)|0,Z=Z+Math.imul(a,w0)|0,S=S+Math.imul(a,f0)|0,$=$+Math.imul(Q0,c0)|0,Z=Z+Math.imul(Q0,g0)|0,Z=Z+Math.imul(H0,c0)|0,S=S+Math.imul(H0,g0)|0,$=$+Math.imul(b,u0)|0,Z=Z+Math.imul(b,y0)|0,Z=Z+Math.imul(o,u0)|0,S=S+Math.imul(o,y0)|0,$=$+Math.imul(e,s0)|0,Z=Z+Math.imul(e,b0)|0,Z=Z+Math.imul(Y0,s0)|0,S=S+Math.imul(Y0,b0)|0,$=$+Math.imul(K0,h0)|0,Z=Z+Math.imul(K0,g)|0,Z=Z+Math.imul(r,h0)|0,S=S+Math.imul(r,g)|0,$=$+Math.imul(u,U0)|0,Z=Z+Math.imul(u,O0)|0,Z=Z+Math.imul(t,U0)|0,S=S+Math.imul(t,O0)|0,$=$+Math.imul(E,C0)|0,Z=Z+Math.imul(E,B0)|0,Z=Z+Math.imul(w,C0)|0,S=S+Math.imul(w,B0)|0;var p1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(p1>>>26)|0,p1&=67108863,$=Math.imul(G0,x0),Z=Math.imul(G0,k0),Z=Z+Math.imul(T0,x0)|0,S=Math.imul(T0,k0),$=$+Math.imul(V0,w0)|0,Z=Z+Math.imul(V0,f0)|0,Z=Z+Math.imul(W0,w0)|0,S=S+Math.imul(W0,f0)|0,$=$+Math.imul(d,c0)|0,Z=Z+Math.imul(d,g0)|0,Z=Z+Math.imul(a,c0)|0,S=S+Math.imul(a,g0)|0,$=$+Math.imul(Q0,u0)|0,Z=Z+Math.imul(Q0,y0)|0,Z=Z+Math.imul(H0,u0)|0,S=S+Math.imul(H0,y0)|0,$=$+Math.imul(b,s0)|0,Z=Z+Math.imul(b,b0)|0,Z=Z+Math.imul(o,s0)|0,S=S+Math.imul(o,b0)|0,$=$+Math.imul(e,h0)|0,Z=Z+Math.imul(e,g)|0,Z=Z+Math.imul(Y0,h0)|0,S=S+Math.imul(Y0,g)|0,$=$+Math.imul(K0,U0)|0,Z=Z+Math.imul(K0,O0)|0,Z=Z+Math.imul(r,U0)|0,S=S+Math.imul(r,O0)|0,$=$+Math.imul(u,C0)|0,Z=Z+Math.imul(u,B0)|0,Z=Z+Math.imul(t,C0)|0,S=S+Math.imul(t,B0)|0,$=$+Math.imul(E,l0)|0,Z=Z+Math.imul(E,d0)|0,Z=Z+Math.imul(w,l0)|0,S=S+Math.imul(w,d0)|0;var c1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(c1>>>26)|0,c1&=67108863,$=Math.imul(P0,x0),Z=Math.imul(P0,k0),Z=Z+Math.imul(E0,x0)|0,S=Math.imul(E0,k0),$=$+Math.imul(G0,w0)|0,Z=Z+Math.imul(G0,f0)|0,Z=Z+Math.imul(T0,w0)|0,S=S+Math.imul(T0,f0)|0,$=$+Math.imul(V0,c0)|0,Z=Z+Math.imul(V0,g0)|0,Z=Z+Math.imul(W0,c0)|0,S=S+Math.imul(W0,g0)|0,$=$+Math.imul(d,u0)|0,Z=Z+Math.imul(d,y0)|0,Z=Z+Math.imul(a,u0)|0,S=S+Math.imul(a,y0)|0,$=$+Math.imul(Q0,s0)|0,Z=Z+Math.imul(Q0,b0)|0,Z=Z+Math.imul(H0,s0)|0,S=S+Math.imul(H0,b0)|0,$=$+Math.imul(b,h0)|0,Z=Z+Math.imul(b,g)|0,Z=Z+Math.imul(o,h0)|0,S=S+Math.imul(o,g)|0,$=$+Math.imul(e,U0)|0,Z=Z+Math.imul(e,O0)|0,Z=Z+Math.imul(Y0,U0)|0,S=S+Math.imul(Y0,O0)|0,$=$+Math.imul(K0,C0)|0,Z=Z+Math.imul(K0,B0)|0,Z=Z+Math.imul(r,C0)|0,S=S+Math.imul(r,B0)|0,$=$+Math.imul(u,l0)|0,Z=Z+Math.imul(u,d0)|0,Z=Z+Math.imul(t,l0)|0,S=S+Math.imul(t,d0)|0,$=$+Math.imul(E,p0)|0,Z=Z+Math.imul(E,_0)|0,Z=Z+Math.imul(w,p0)|0,S=S+Math.imul(w,_0)|0;var u1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(u1>>>26)|0,u1&=67108863,$=Math.imul(P0,w0),Z=Math.imul(P0,f0),Z=Z+Math.imul(E0,w0)|0,S=Math.imul(E0,f0),$=$+Math.imul(G0,c0)|0,Z=Z+Math.imul(G0,g0)|0,Z=Z+Math.imul(T0,c0)|0,S=S+Math.imul(T0,g0)|0,$=$+Math.imul(V0,u0)|0,Z=Z+Math.imul(V0,y0)|0,Z=Z+Math.imul(W0,u0)|0,S=S+Math.imul(W0,y0)|0,$=$+Math.imul(d,s0)|0,Z=Z+Math.imul(d,b0)|0,Z=Z+Math.imul(a,s0)|0,S=S+Math.imul(a,b0)|0,$=$+Math.imul(Q0,h0)|0,Z=Z+Math.imul(Q0,g)|0,Z=Z+Math.imul(H0,h0)|0,S=S+Math.imul(H0,g)|0,$=$+Math.imul(b,U0)|0,Z=Z+Math.imul(b,O0)|0,Z=Z+Math.imul(o,U0)|0,S=S+Math.imul(o,O0)|0,$=$+Math.imul(e,C0)|0,Z=Z+Math.imul(e,B0)|0,Z=Z+Math.imul(Y0,C0)|0,S=S+Math.imul(Y0,B0)|0,$=$+Math.imul(K0,l0)|0,Z=Z+Math.imul(K0,d0)|0,Z=Z+Math.imul(r,l0)|0,S=S+Math.imul(r,d0)|0,$=$+Math.imul(u,p0)|0,Z=Z+Math.imul(u,_0)|0,Z=Z+Math.imul(t,p0)|0,S=S+Math.imul(t,_0)|0;var b1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(b1>>>26)|0,b1&=67108863,$=Math.imul(P0,c0),Z=Math.imul(P0,g0),Z=Z+Math.imul(E0,c0)|0,S=Math.imul(E0,g0),$=$+Math.imul(G0,u0)|0,Z=Z+Math.imul(G0,y0)|0,Z=Z+Math.imul(T0,u0)|0,S=S+Math.imul(T0,y0)|0,$=$+Math.imul(V0,s0)|0,Z=Z+Math.imul(V0,b0)|0,Z=Z+Math.imul(W0,s0)|0,S=S+Math.imul(W0,b0)|0,$=$+Math.imul(d,h0)|0,Z=Z+Math.imul(d,g)|0,Z=Z+Math.imul(a,h0)|0,S=S+Math.imul(a,g)|0,$=$+Math.imul(Q0,U0)|0,Z=Z+Math.imul(Q0,O0)|0,Z=Z+Math.imul(H0,U0)|0,S=S+Math.imul(H0,O0)|0,$=$+Math.imul(b,C0)|0,Z=Z+Math.imul(b,B0)|0,Z=Z+Math.imul(o,C0)|0,S=S+Math.imul(o,B0)|0,$=$+Math.imul(e,l0)|0,Z=Z+Math.imul(e,d0)|0,Z=Z+Math.imul(Y0,l0)|0,S=S+Math.imul(Y0,d0)|0,$=$+Math.imul(K0,p0)|0,Z=Z+Math.imul(K0,_0)|0,Z=Z+Math.imul(r,p0)|0,S=S+Math.imul(r,_0)|0;var l1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(l1>>>26)|0,l1&=67108863,$=Math.imul(P0,u0),Z=Math.imul(P0,y0),Z=Z+Math.imul(E0,u0)|0,S=Math.imul(E0,y0),$=$+Math.imul(G0,s0)|0,Z=Z+Math.imul(G0,b0)|0,Z=Z+Math.imul(T0,s0)|0,S=S+Math.imul(T0,b0)|0,$=$+Math.imul(V0,h0)|0,Z=Z+Math.imul(V0,g)|0,Z=Z+Math.imul(W0,h0)|0,S=S+Math.imul(W0,g)|0,$=$+Math.imul(d,U0)|0,Z=Z+Math.imul(d,O0)|0,Z=Z+Math.imul(a,U0)|0,S=S+Math.imul(a,O0)|0,$=$+Math.imul(Q0,C0)|0,Z=Z+Math.imul(Q0,B0)|0,Z=Z+Math.imul(H0,C0)|0,S=S+Math.imul(H0,B0)|0,$=$+Math.imul(b,l0)|0,Z=Z+Math.imul(b,d0)|0,Z=Z+Math.imul(o,l0)|0,S=S+Math.imul(o,d0)|0,$=$+Math.imul(e,p0)|0,Z=Z+Math.imul(e,_0)|0,Z=Z+Math.imul(Y0,p0)|0,S=S+Math.imul(Y0,_0)|0;var LK=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(LK>>>26)|0,LK&=67108863,$=Math.imul(P0,s0),Z=Math.imul(P0,b0),Z=Z+Math.imul(E0,s0)|0,S=Math.imul(E0,b0),$=$+Math.imul(G0,h0)|0,Z=Z+Math.imul(G0,g)|0,Z=Z+Math.imul(T0,h0)|0,S=S+Math.imul(T0,g)|0,$=$+Math.imul(V0,U0)|0,Z=Z+Math.imul(V0,O0)|0,Z=Z+Math.imul(W0,U0)|0,S=S+Math.imul(W0,O0)|0,$=$+Math.imul(d,C0)|0,Z=Z+Math.imul(d,B0)|0,Z=Z+Math.imul(a,C0)|0,S=S+Math.imul(a,B0)|0,$=$+Math.imul(Q0,l0)|0,Z=Z+Math.imul(Q0,d0)|0,Z=Z+Math.imul(H0,l0)|0,S=S+Math.imul(H0,d0)|0,$=$+Math.imul(b,p0)|0,Z=Z+Math.imul(b,_0)|0,Z=Z+Math.imul(o,p0)|0,S=S+Math.imul(o,_0)|0;var d1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(d1>>>26)|0,d1&=67108863,$=Math.imul(P0,h0),Z=Math.imul(P0,g),Z=Z+Math.imul(E0,h0)|0,S=Math.imul(E0,g),$=$+Math.imul(G0,U0)|0,Z=Z+Math.imul(G0,O0)|0,Z=Z+Math.imul(T0,U0)|0,S=S+Math.imul(T0,O0)|0,$=$+Math.imul(V0,C0)|0,Z=Z+Math.imul(V0,B0)|0,Z=Z+Math.imul(W0,C0)|0,S=S+Math.imul(W0,B0)|0,$=$+Math.imul(d,l0)|0,Z=Z+Math.imul(d,d0)|0,Z=Z+Math.imul(a,l0)|0,S=S+Math.imul(a,d0)|0,$=$+Math.imul(Q0,p0)|0,Z=Z+Math.imul(Q0,_0)|0,Z=Z+Math.imul(H0,p0)|0,S=S+Math.imul(H0,_0)|0;var s1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(s1>>>26)|0,s1&=67108863,$=Math.imul(P0,U0),Z=Math.imul(P0,O0),Z=Z+Math.imul(E0,U0)|0,S=Math.imul(E0,O0),$=$+Math.imul(G0,C0)|0,Z=Z+Math.imul(G0,B0)|0,Z=Z+Math.imul(T0,C0)|0,S=S+Math.imul(T0,B0)|0,$=$+Math.imul(V0,l0)|0,Z=Z+Math.imul(V0,d0)|0,Z=Z+Math.imul(W0,l0)|0,S=S+Math.imul(W0,d0)|0,$=$+Math.imul(d,p0)|0,Z=Z+Math.imul(d,_0)|0,Z=Z+Math.imul(a,p0)|0,S=S+Math.imul(a,_0)|0;var o1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(o1>>>26)|0,o1&=67108863,$=Math.imul(P0,C0),Z=Math.imul(P0,B0),Z=Z+Math.imul(E0,C0)|0,S=Math.imul(E0,B0),$=$+Math.imul(G0,l0)|0,Z=Z+Math.imul(G0,d0)|0,Z=Z+Math.imul(T0,l0)|0,S=S+Math.imul(T0,d0)|0,$=$+Math.imul(V0,p0)|0,Z=Z+Math.imul(V0,_0)|0,Z=Z+Math.imul(W0,p0)|0,S=S+Math.imul(W0,_0)|0;var m1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(m1>>>26)|0,m1&=67108863,$=Math.imul(P0,l0),Z=Math.imul(P0,d0),Z=Z+Math.imul(E0,l0)|0,S=Math.imul(E0,d0),$=$+Math.imul(G0,p0)|0,Z=Z+Math.imul(G0,_0)|0,Z=Z+Math.imul(T0,p0)|0,S=S+Math.imul(T0,_0)|0;var ZK=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(ZK>>>26)|0,ZK&=67108863,$=Math.imul(P0,p0),Z=Math.imul(P0,_0),Z=Z+Math.imul(E0,p0)|0,S=Math.imul(E0,_0);var n1=(I+$|0)+((Z&8191)<<13)|0;if(I=(S+(Z>>>13)|0)+(n1>>>26)|0,n1&=67108863,C[0]=P1,C[1]=Z1,C[2]=Y1,C[3]=F1,C[4]=A1,C[5]=y1,C[6]=h1,C[7]=p1,C[8]=c1,C[9]=u1,C[10]=b1,C[11]=l1,C[12]=LK,C[13]=d1,C[14]=s1,C[15]=o1,C[16]=m1,C[17]=ZK,C[18]=n1,I!==0)C[19]=I,X.length++;return X};if(!Math.imul)J=v;function k(L,O,X){X.negative=O.negative^L.negative,X.length=L.length+O.length;var q=0,W=0;for(var C=0;C>>26)|0,W+=I>>>26,I&=67108863}X.words[C]=$,q=I,I=W}if(q!==0)X.words[C]=q;else X.length--;return X.strip()}function f(L,O,X){var q=new j;return q.mulp(L,O,X)}z.prototype.mulTo=function(L,O){var X,q=this.length+L.length;if(this.length===10&&L.length===10)X=J(this,L,O);else if(q<63)X=v(this,L,O);else if(q<1024)X=k(this,L,O);else X=f(this,L,O);return X};function j(L,O){this.x=L,this.y=O}j.prototype.makeRBT=function(L){var O=Array(L),X=z.prototype._countBits(L)-1;for(var q=0;q>=1;return q},j.prototype.permute=function(L,O,X,q,W,C){for(var I=0;I>>1)W++;return 1<>>13,X[2*C+1]=W&8191,W=W>>>13;for(C=2*O;C>=26,O+=q/67108864|0,O+=W>>>26,this.words[X]=W&67108863}if(O!==0)this.words[X]=O,this.length++;return this.length=L===0?1:this.length,this},z.prototype.muln=function(L){return this.clone().imuln(L)},z.prototype.sqr=function(){return this.mul(this)},z.prototype.isqr=function(){return this.imul(this.clone())},z.prototype.pow=function(L){var O=T(L);if(O.length===0)return new z(1);var X=this;for(var q=0;q=0);var O=L%26,X=(L-O)/26,q=67108863>>>26-O<<26-O,W;if(O!==0){var C=0;for(W=0;W>>26-O}if(C)this.words[W]=C,this.length++}if(X!==0){for(W=this.length-1;W>=0;W--)this.words[W+X]=this.words[W];for(W=0;W=0);var q;if(O)q=(O-O%26)/26;else q=0;var W=L%26,C=Math.min((L-W)/26,this.length),I=67108863^67108863>>>W<C){this.length-=C;for(Z=0;Z=0&&(S!==0||Z>=q);Z--){var B=this.words[Z]|0;this.words[Z]=S<<26-W|B>>>W,S=B&I}if($&&S!==0)$.words[$.length++]=S;if(this.length===0)this.words[0]=0,this.length=1;return this.strip()},z.prototype.ishrn=function(L,O,X){return H(this.negative===0),this.iushrn(L,O,X)},z.prototype.shln=function(L){return this.clone().ishln(L)},z.prototype.ushln=function(L){return this.clone().iushln(L)},z.prototype.shrn=function(L){return this.clone().ishrn(L)},z.prototype.ushrn=function(L){return this.clone().iushrn(L)},z.prototype.testn=function(L){H(typeof L==="number"&&L>=0);var O=L%26,X=(L-O)/26,q=1<=0);var O=L%26,X=(L-O)/26;if(H(this.negative===0,"imaskn works only with positive numbers"),this.length<=X)return this;if(O!==0)X++;if(this.length=Math.min(X,this.length),O!==0){var q=67108863^67108863>>>O<=67108864;O++)if(this.words[O]-=67108864,O===this.length-1)this.words[O+1]=1;else this.words[O+1]++;return this.length=Math.max(this.length,O+1),this},z.prototype.isubn=function(L){if(H(typeof L==="number"),H(L<67108864),L<0)return this.iaddn(-L);if(this.negative!==0)return this.negative=0,this.iaddn(L),this.negative=1,this;if(this.words[0]-=L,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var O=0;O>26)-($/67108864|0),this.words[W+X]=C&67108863}for(;W>26,this.words[W+X]=C&67108863;if(I===0)return this.strip();H(I===-1),I=0;for(W=0;W>26,this.words[W]=C&67108863;return this.negative=1,this.strip()},z.prototype._wordDiv=function(L,O){var X=this.length-L.length,q=this.clone(),W=L,C=W.words[W.length-1]|0,I=this._countBits(C);if(X=26-I,X!==0)W=W.ushln(X),q.iushln(X),C=W.words[W.length-1]|0;var $=q.length-W.length,Z;if(O!=="mod"){Z=new z(null),Z.length=$+1,Z.words=Array(Z.length);for(var S=0;S=0;E--){var w=(q.words[W.length+E]|0)*67108864+(q.words[W.length+E-1]|0);w=Math.min(w/C|0,67108863),q._ishlnsubmul(W,w,E);while(q.negative!==0)if(w--,q.negative=0,q._ishlnsubmul(W,1,E),!q.isZero())q.negative^=1;if(Z)Z.words[E]=w}if(Z)Z.strip();if(q.strip(),O!=="div"&&X!==0)q.iushrn(X);return{div:Z||null,mod:q}},z.prototype.divmod=function(L,O,X){if(H(!L.isZero()),this.isZero())return{div:new z(0),mod:new z(0)};var q,W,C;if(this.negative!==0&&L.negative===0){if(C=this.neg().divmod(L,O),O!=="mod")q=C.div.neg();if(O!=="div"){if(W=C.mod.neg(),X&&W.negative!==0)W.iadd(L)}return{div:q,mod:W}}if(this.negative===0&&L.negative!==0){if(C=this.divmod(L.neg(),O),O!=="mod")q=C.div.neg();return{div:q,mod:C.mod}}if((this.negative&L.negative)!==0){if(C=this.neg().divmod(L.neg(),O),O!=="div"){if(W=C.mod.neg(),X&&W.negative!==0)W.isub(L)}return{div:C.div,mod:W}}if(L.length>this.length||this.cmp(L)<0)return{div:new z(0),mod:this};if(L.length===1){if(O==="div")return{div:this.divn(L.words[0]),mod:null};if(O==="mod")return{div:null,mod:new z(this.modn(L.words[0]))};return{div:this.divn(L.words[0]),mod:new z(this.modn(L.words[0]))}}return this._wordDiv(L,O)},z.prototype.div=function(L){return this.divmod(L,"div",!1).div},z.prototype.mod=function(L){return this.divmod(L,"mod",!1).mod},z.prototype.umod=function(L){return this.divmod(L,"mod",!0).mod},z.prototype.divRound=function(L){var O=this.divmod(L);if(O.mod.isZero())return O.div;var X=O.div.negative!==0?O.mod.isub(L):O.mod,q=L.ushrn(1),W=L.andln(1),C=X.cmp(q);if(C<0||W===1&&C===0)return O.div;return O.div.negative!==0?O.div.isubn(1):O.div.iaddn(1)},z.prototype.modn=function(L){H(L<=67108863);var O=67108864%L,X=0;for(var q=this.length-1;q>=0;q--)X=(O*X+(this.words[q]|0))%L;return X},z.prototype.idivn=function(L){H(L<=67108863);var O=0;for(var X=this.length-1;X>=0;X--){var q=(this.words[X]|0)+O*67108864;this.words[X]=q/L|0,O=q%L}return this.strip()},z.prototype.divn=function(L){return this.clone().idivn(L)},z.prototype.egcd=function(L){H(L.negative===0),H(!L.isZero());var O=this,X=L.clone();if(O.negative!==0)O=O.umod(L);else O=O.clone();var q=new z(1),W=new z(0),C=new z(0),I=new z(1),$=0;while(O.isEven()&&X.isEven())O.iushrn(1),X.iushrn(1),++$;var Z=X.clone(),S=O.clone();while(!O.isZero()){for(var B=0,E=1;(O.words[0]&E)===0&&B<26;++B,E<<=1);if(B>0){O.iushrn(B);while(B-- >0){if(q.isOdd()||W.isOdd())q.iadd(Z),W.isub(S);q.iushrn(1),W.iushrn(1)}}for(var w=0,h=1;(X.words[0]&h)===0&&w<26;++w,h<<=1);if(w>0){X.iushrn(w);while(w-- >0){if(C.isOdd()||I.isOdd())C.iadd(Z),I.isub(S);C.iushrn(1),I.iushrn(1)}}if(O.cmp(X)>=0)O.isub(X),q.isub(C),W.isub(I);else X.isub(O),C.isub(q),I.isub(W)}return{a:C,b:I,gcd:X.iushln($)}},z.prototype._invmp=function(L){H(L.negative===0),H(!L.isZero());var O=this,X=L.clone();if(O.negative!==0)O=O.umod(L);else O=O.clone();var q=new z(1),W=new z(0),C=X.clone();while(O.cmpn(1)>0&&X.cmpn(1)>0){for(var I=0,$=1;(O.words[0]&$)===0&&I<26;++I,$<<=1);if(I>0){O.iushrn(I);while(I-- >0){if(q.isOdd())q.iadd(C);q.iushrn(1)}}for(var Z=0,S=1;(X.words[0]&S)===0&&Z<26;++Z,S<<=1);if(Z>0){X.iushrn(Z);while(Z-- >0){if(W.isOdd())W.iadd(C);W.iushrn(1)}}if(O.cmp(X)>=0)O.isub(X),q.isub(W);else X.isub(O),W.isub(q)}var B;if(O.cmpn(1)===0)B=q;else B=W;if(B.cmpn(0)<0)B.iadd(L);return B},z.prototype.gcd=function(L){if(this.isZero())return L.abs();if(L.isZero())return this.abs();var O=this.clone(),X=L.clone();O.negative=0,X.negative=0;for(var q=0;O.isEven()&&X.isEven();q++)O.iushrn(1),X.iushrn(1);do{while(O.isEven())O.iushrn(1);while(X.isEven())X.iushrn(1);var W=O.cmp(X);if(W<0){var C=O;O=X,X=C}else if(W===0||X.cmpn(1)===0)break;O.isub(X)}while(!0);return X.iushln(q)},z.prototype.invm=function(L){return this.egcd(L).a.umod(L)},z.prototype.isEven=function(){return(this.words[0]&1)===0},z.prototype.isOdd=function(){return(this.words[0]&1)===1},z.prototype.andln=function(L){return this.words[0]&L},z.prototype.bincn=function(L){H(typeof L==="number");var O=L%26,X=(L-O)/26,q=1<>>26,I&=67108863,this.words[C]=I}if(W!==0)this.words[C]=W,this.length++;return this},z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},z.prototype.cmpn=function(L){var O=L<0;if(this.negative!==0&&!O)return-1;if(this.negative===0&&O)return 1;this.strip();var X;if(this.length>1)X=1;else{if(O)L=-L;H(L<=67108863,"Number is too big");var q=this.words[0]|0;X=q===L?0:qL.length)return 1;if(this.length=0;X--){var q=this.words[X]|0,W=L.words[X]|0;if(q===W)continue;if(qW)O=1;break}return O},z.prototype.gtn=function(L){return this.cmpn(L)===1},z.prototype.gt=function(L){return this.cmp(L)===1},z.prototype.gten=function(L){return this.cmpn(L)>=0},z.prototype.gte=function(L){return this.cmp(L)>=0},z.prototype.ltn=function(L){return this.cmpn(L)===-1},z.prototype.lt=function(L){return this.cmp(L)===-1},z.prototype.lten=function(L){return this.cmpn(L)<=0},z.prototype.lte=function(L){return this.cmp(L)<=0},z.prototype.eqn=function(L){return this.cmpn(L)===0},z.prototype.eq=function(L){return this.cmp(L)===0},z.red=function(L){return new s(L)},z.prototype.toRed=function(L){return H(!this.red,"Already a number in reduction context"),H(this.negative===0,"red works only with positives"),L.convertTo(this)._forceRed(L)},z.prototype.fromRed=function(){return H(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},z.prototype._forceRed=function(L){return this.red=L,this},z.prototype.forceRed=function(L){return H(!this.red,"Already a number in reduction context"),this._forceRed(L)},z.prototype.redAdd=function(L){return H(this.red,"redAdd works only with red numbers"),this.red.add(this,L)},z.prototype.redIAdd=function(L){return H(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,L)},z.prototype.redSub=function(L){return H(this.red,"redSub works only with red numbers"),this.red.sub(this,L)},z.prototype.redISub=function(L){return H(this.red,"redISub works only with red numbers"),this.red.isub(this,L)},z.prototype.redShl=function(L){return H(this.red,"redShl works only with red numbers"),this.red.shl(this,L)},z.prototype.redMul=function(L){return H(this.red,"redMul works only with red numbers"),this.red._verify2(this,L),this.red.mul(this,L)},z.prototype.redIMul=function(L){return H(this.red,"redMul works only with red numbers"),this.red._verify2(this,L),this.red.imul(this,L)},z.prototype.redSqr=function(){return H(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},z.prototype.redISqr=function(){return H(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},z.prototype.redSqrt=function(){return H(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},z.prototype.redInvm=function(){return H(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},z.prototype.redNeg=function(){return H(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},z.prototype.redPow=function(L){return H(this.red&&!L.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,L)};var _={k256:null,p224:null,p192:null,p25519:null};function p(L,O){this.name=L,this.p=new z(O,16),this.n=this.p.bitLength(),this.k=new z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}p.prototype._tmp=function(){var L=new z(null);return L.words=Array(Math.ceil(this.n/13)),L},p.prototype.ireduce=function(L){var O=L,X;do this.split(O,this.tmp),O=this.imulK(O),O=O.iadd(this.tmp),X=O.bitLength();while(X>this.n);var q=X0)O.isub(this.p);else if(O.strip!==void 0)O.strip();else O._strip();return O},p.prototype.split=function(L,O){L.iushrn(this.n,0,O)},p.prototype.imulK=function(L){return L.imul(this.k)};function N(){p.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}Y(N,p),N.prototype.split=function(L,O){var X=4194303,q=Math.min(L.length,9);for(var W=0;W>>22,C=I}if(C>>>=22,L.words[W-10]=C,C===0&&L.length>10)L.length-=10;else L.length-=9},N.prototype.imulK=function(L){L.words[L.length]=0,L.words[L.length+1]=0,L.length+=2;var O=0;for(var X=0;X>>=26,L.words[X]=W,O=q}if(O!==0)L.words[L.length++]=O;return L},z._prime=function(L){if(_[L])return _[L];var O;if(L==="k256")O=new N;else if(L==="p224")O=new m;else if(L==="p192")O=new z0;else if(L==="p25519")O=new L0;else throw Error("Unknown prime "+L);return _[L]=O,O};function s(L){if(typeof L==="string"){var O=z._prime(L);this.m=O.p,this.prime=O}else H(L.gtn(1),"modulus must be greater than 1"),this.m=L,this.prime=null}s.prototype._verify1=function(L){H(L.negative===0,"red works only with positives"),H(L.red,"red works only with red numbers")},s.prototype._verify2=function(L,O){H((L.negative|O.negative)===0,"red works only with positives"),H(L.red&&L.red===O.red,"red works only with red numbers")},s.prototype.imod=function(L){if(this.prime)return this.prime.ireduce(L)._forceRed(this);return L.umod(this.m)._forceRed(this)},s.prototype.neg=function(L){if(L.isZero())return L.clone();return this.m.sub(L)._forceRed(this)},s.prototype.add=function(L,O){this._verify2(L,O);var X=L.add(O);if(X.cmp(this.m)>=0)X.isub(this.m);return X._forceRed(this)},s.prototype.iadd=function(L,O){this._verify2(L,O);var X=L.iadd(O);if(X.cmp(this.m)>=0)X.isub(this.m);return X},s.prototype.sub=function(L,O){this._verify2(L,O);var X=L.sub(O);if(X.cmpn(0)<0)X.iadd(this.m);return X._forceRed(this)},s.prototype.isub=function(L,O){this._verify2(L,O);var X=L.isub(O);if(X.cmpn(0)<0)X.iadd(this.m);return X},s.prototype.shl=function(L,O){return this._verify1(L),this.imod(L.ushln(O))},s.prototype.imul=function(L,O){return this._verify2(L,O),this.imod(L.imul(O))},s.prototype.mul=function(L,O){return this._verify2(L,O),this.imod(L.mul(O))},s.prototype.isqr=function(L){return this.imul(L,L.clone())},s.prototype.sqr=function(L){return this.mul(L,L)},s.prototype.sqrt=function(L){if(L.isZero())return L.clone();var O=this.m.andln(3);if(H(O%2===1),O===3){var X=this.m.add(new z(1)).iushrn(2);return this.pow(L,X)}var q=this.m.subn(1),W=0;while(!q.isZero()&&q.andln(1)===0)W++,q.iushrn(1);H(!q.isZero());var C=new z(1).toRed(this),I=C.redNeg(),$=this.m.subn(1).iushrn(1),Z=this.m.bitLength();Z=new z(2*Z*Z).toRed(this);while(this.pow(Z,$).cmp(I)!==0)Z.redIAdd(I);var S=this.pow(Z,q),B=this.pow(L,q.addn(1).iushrn(1)),E=this.pow(L,q),w=W;while(E.cmp(C)!==0){var h=E;for(var u=0;h.cmp(C)!==0;u++)h=h.redSqr();H(u=0;W--){var S=O.words[W];for(var B=Z-1;B>=0;B--){var E=S>>B&1;if(C!==q[0])C=this.sqr(C);if(E===0&&I===0){$=0;continue}if(I<<=1,I|=E,$++,$!==X&&(W!==0||B!==0))continue;C=this.mul(C,q[I]),$=0,I=0}Z=26}return C},s.prototype.convertTo=function(L){var O=L.umod(this.m);return O===L?O.clone():O},s.prototype.convertFrom=function(L){var O=L.clone();return O.red=null,O},z.mont=function(L){return new Z0(L)};function Z0(L){if(s.call(this,L),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}Y(Z0,s),Z0.prototype.convertTo=function(L){return this.imod(L.ushln(this.shift))},Z0.prototype.convertFrom=function(L){var O=this.imod(L.mul(this.rinv));return O.red=null,O},Z0.prototype.imul=function(L,O){if(L.isZero()||O.isZero())return L.words[0]=0,L.length=1,L;var X=L.imul(O),q=X.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),W=X.isub(q).iushrn(this.shift),C=W;if(W.cmp(this.m)>=0)C=W.isub(this.m);else if(W.cmpn(0)<0)C=W.iadd(this.m);return C._forceRed(this)},Z0.prototype.mul=function(L,O){if(L.isZero()||O.isZero())return new z(0)._forceRed(this);var X=L.mul(O),q=X.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),W=X.isub(q).iushrn(this.shift),C=W;if(W.cmp(this.m)>=0)C=W.isub(this.m);else if(W.cmpn(0)<0)C=W.iadd(this.m);return C._forceRed(this)},Z0.prototype.invm=function(L){var O=this.imod(L._invmp(this.m).mul(this.r2));return O._forceRed(this)}})(typeof V>"u"||V,K)}),zU=D0((K,V)=>{V.exports=Q;function Q(U,H){if(!U)throw Error(H||"Assertion failed")}Q.equal=function(U,H,Y){if(U!=H)throw Error(Y||"Assertion failed: "+U+" != "+H)}}),m9=D0((K)=>{var V=K;function Q(Y,z){if(Array.isArray(Y))return Y.slice();if(!Y)return[];var M=[];if(typeof Y!=="string"){for(var A=0;A>8,F=R&255;if(D)M.push(D,F);else M.push(F)}return M}V.toArray=Q;function U(Y){if(Y.length===1)return"0"+Y;else return Y}V.zero2=U;function H(Y){var z="";for(var M=0;M{var V=K,Q=_Q(),U=zU(),H=m9();V.assert=U,V.toArray=H.toArray,V.zero2=H.zero2,V.toHex=H.toHex,V.encode=H.encode;function Y(D,F,P){var G=Array(Math.max(D.bitLength(),P)+1),T;for(T=0;T(v>>1)-1)k=(v>>1)-f;else k=f;J.isubn(k)}else k=0;G[T]=k,J.iushrn(1)}return G}V.getNAF=Y;function z(D,F){var P=[[],[]];D=D.clone(),F=F.clone();var G=0,T=0,v;while(D.cmpn(-G)>0||F.cmpn(-T)>0){var J=D.andln(3)+G&3,k=F.andln(3)+T&3;if(J===3)J=-1;if(k===3)k=-1;var f;if((J&1)===0)f=0;else if(v=D.andln(7)+G&7,(v===3||v===5)&&k===2)f=-J;else f=J;P[0].push(f);var j;if((k&1)===0)j=0;else if(v=F.andln(7)+T&7,(v===3||v===5)&&J===2)j=-k;else j=k;if(P[1].push(j),2*G===f+1)G=1-G;if(2*T===j+1)T=1-T;D.iushrn(1),F.iushrn(1)}return P}V.getJSF=z;function M(D,F,P){var G="_"+F;D.prototype[F]=function(){return this[G]!==void 0?this[G]:this[G]=P.call(this)}}V.cachedProperty=M;function A(D){return typeof D==="string"?V.toArray(D,"hex"):D}V.parseBytes=A;function R(D){return new Q(D,"hex","le")}V.intFromLE=R}),n9=D0((K,V)=>{var Q;V.exports=function(Y){if(!Q)Q=new U(null);return Q.generate(Y)};function U(Y){this.rand=Y}if(V.exports.Rand=U,U.prototype.generate=function(Y){return this._rand(Y)},U.prototype._rand=function(Y){if(this.rand.getBytes)return this.rand.getBytes(Y);var z=new Uint8Array(Y);for(var M=0;M{var Q=_Q(),U=_V(),H=U.getNAF,Y=U.getJSF,z=U.assert;function M(R,D){this.type=R,this.p=new Q(D.p,16),this.red=D.prime?Q.red(D.prime):Q.mont(this.p),this.zero=new Q(0).toRed(this.red),this.one=new Q(1).toRed(this.red),this.two=new Q(2).toRed(this.red),this.n=D.n&&new Q(D.n,16),this.g=D.g&&this.pointFromJSON(D.g,D.gRed),this._wnafT1=[,,,,],this._wnafT2=[,,,,],this._wnafT3=[,,,,],this._wnafT4=[,,,,],this._bitLength=this.n?this.n.bitLength():0;var F=this.n&&this.p.div(this.n);if(!F||F.cmpn(100)>0)this.redN=null;else this._maxwellTrick=!0,this.redN=this.n.toRed(this.red)}V.exports=M,M.prototype.point=function(){throw Error("Not implemented")},M.prototype.validate=function(){throw Error("Not implemented")},M.prototype._fixedNafMul=function(R,D){z(R.precomputed);var F=R._getDoubles(),P=H(D,1,this._bitLength),G=(1<=v;k--)J=(J<<1)+P[k];T.push(J)}var f=this.jpoint(null,null,null),j=this.jpoint(null,null,null);for(var _=G;_>0;_--){for(v=0;v=0;J--){for(var k=0;J>=0&&T[J]===0;J--)k++;if(J>=0)k++;if(v=v.dblp(k),J<0)break;var f=T[J];if(z(f!==0),R.type==="affine")if(f>0)v=v.mixedAdd(G[f-1>>1]);else v=v.mixedAdd(G[-f-1>>1].neg());else if(f>0)v=v.add(G[f-1>>1]);else v=v.add(G[-f-1>>1].neg())}return R.type==="affine"?v.toP():v},M.prototype._wnafMulAdd=function(R,D,F,P,G){var T=this._wnafT1,v=this._wnafT2,J=this._wnafT3,k=0,f,j,_;for(f=0;f=1;f-=2){var N=f-1,m=f;if(T[N]!==1||T[m]!==1){J[N]=H(F[N],T[N],this._bitLength),J[m]=H(F[m],T[m],this._bitLength),k=Math.max(J[N].length,k),k=Math.max(J[m].length,k);continue}var z0=[D[N],null,null,D[m]];if(D[N].y.cmp(D[m].y)===0)z0[1]=D[N].add(D[m]),z0[2]=D[N].toJ().mixedAdd(D[m].neg());else if(D[N].y.cmp(D[m].y.redNeg())===0)z0[1]=D[N].toJ().mixedAdd(D[m]),z0[2]=D[N].add(D[m].neg());else z0[1]=D[N].toJ().mixedAdd(D[m]),z0[2]=D[N].toJ().mixedAdd(D[m].neg());var L0=[-3,-1,-5,-7,0,7,5,1,3],s=Y(F[N],F[m]);k=Math.max(s[0].length,k),J[N]=Array(k),J[m]=Array(k);for(j=0;j=0;f--){var q=0;while(f>=0){var W=!0;for(j=0;j=0)q++;if(O=O.dblp(q),f<0)break;for(j=0;j0)_=v[j][C-1>>1];else if(C<0)_=v[j][-C-1>>1].neg();if(_.type==="affine")O=O.mixedAdd(_);else O=O.add(_)}}for(f=0;f=Math.ceil((R.bitLength()+1)/D.step)},A.prototype._getDoubles=function(R,D){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;var F=[this],P=this;for(var G=0;G{if(typeof Object.create==="function")V.exports=function(Q,U){if(U)Q.super_=U,Q.prototype=Object.create(U.prototype,{constructor:{value:Q,enumerable:!1,writable:!0,configurable:!0}})};else V.exports=function(Q,U){if(U){Q.super_=U;var H=function(){};H.prototype=U.prototype,Q.prototype=new H,Q.prototype.constructor=Q}}}),PV=D0((K,V)=>{try{if(Q=(q9(),D1(Y9)),typeof Q.inherits!=="function")throw"";V.exports=Q.inherits}catch(U){V.exports=MB()}var Q}),WB=D0((K,V)=>{var Q=_V(),U=_Q(),H=PV(),Y=gL(),z=Q.assert;function M(D){Y.call(this,"short",D),this.a=new U(D.a,16).toRed(this.red),this.b=new U(D.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(D),this._endoWnafT1=[,,,,],this._endoWnafT2=[,,,,]}H(M,Y),V.exports=M,M.prototype._getEndomorphism=function(D){if(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)return;var F,P;if(D.beta)F=new U(D.beta,16).toRed(this.red);else{var G=this._getEndoRoots(this.p);F=G[0].cmp(G[1])<0?G[0]:G[1],F=F.toRed(this.red)}if(D.lambda)P=new U(D.lambda,16);else{var T=this._getEndoRoots(this.n);if(this.g.mul(T[0]).x.cmp(this.g.x.redMul(F))===0)P=T[0];else P=T[1],z(this.g.mul(P).x.cmp(this.g.x.redMul(F))===0)}var v;if(D.basis)v=D.basis.map(function(J){return{a:new U(J.a,16),b:new U(J.b,16)}});else v=this._getEndoBasis(P);return{beta:F,lambda:P,basis:v}},M.prototype._getEndoRoots=function(D){var F=D===this.p?this.red:U.mont(D),P=new U(2).toRed(F).redInvm(),G=P.redNeg(),T=new U(3).toRed(F).redNeg().redSqrt().redMul(P),v=G.redAdd(T).fromRed(),J=G.redSub(T).fromRed();return[v,J]},M.prototype._getEndoBasis=function(D){var F=this.n.ushrn(Math.floor(this.n.bitLength()/2)),P=D,G=this.n.clone(),T=new U(1),v=new U(0),J=new U(0),k=new U(1),f,j,_,p,N,m,z0,L0=0,s,Z0;while(P.cmpn(0)!==0){var L=G.div(P);s=G.sub(L.mul(P)),Z0=J.sub(L.mul(T));var O=k.sub(L.mul(v));if(!_&&s.cmp(F)<0)f=z0.neg(),j=T,_=s.neg(),p=Z0;else if(_&&++L0===2)break;z0=s,G=P,P=s,J=T,T=Z0,k=v,v=O}N=s.neg(),m=Z0;var X=_.sqr().add(p.sqr()),q=N.sqr().add(m.sqr());if(q.cmp(X)>=0)N=f,m=j;if(_.negative)_=_.neg(),p=p.neg();if(N.negative)N=N.neg(),m=m.neg();return[{a:_,b:p},{a:N,b:m}]},M.prototype._endoSplit=function(D){var F=this.endo.basis,P=F[0],G=F[1],T=G.b.mul(D).divRound(this.n),v=P.b.neg().mul(D).divRound(this.n),J=T.mul(P.a),k=v.mul(G.a),f=T.mul(P.b),j=v.mul(G.b),_=D.sub(J).sub(k),p=f.add(j).neg();return{k1:_,k2:p}},M.prototype.pointFromX=function(D,F){if(D=new U(D,16),!D.red)D=D.toRed(this.red);var P=D.redSqr().redMul(D).redIAdd(D.redMul(this.a)).redIAdd(this.b),G=P.redSqrt();if(G.redSqr().redSub(P).cmp(this.zero)!==0)throw Error("invalid point");var T=G.fromRed().isOdd();if(F&&!T||!F&&T)G=G.redNeg();return this.point(D,G)},M.prototype.validate=function(D){if(D.inf)return!0;var{x:F,y:P}=D,G=this.a.redMul(F),T=F.redSqr().redMul(F).redIAdd(G).redIAdd(this.b);return P.redSqr().redISub(T).cmpn(0)===0},M.prototype._endoWnafMulAdd=function(D,F,P){var G=this._endoWnafT1,T=this._endoWnafT2;for(var v=0;v";return""},A.prototype.isInfinity=function(){return this.inf},A.prototype.add=function(D){if(this.inf)return D;if(D.inf)return this;if(this.eq(D))return this.dbl();if(this.neg().eq(D))return this.curve.point(null,null);if(this.x.cmp(D.x)===0)return this.curve.point(null,null);var F=this.y.redSub(D.y);if(F.cmpn(0)!==0)F=F.redMul(this.x.redSub(D.x).redInvm());var P=F.redSqr().redISub(this.x).redISub(D.x),G=F.redMul(this.x.redSub(P)).redISub(this.y);return this.curve.point(P,G)},A.prototype.dbl=function(){if(this.inf)return this;var D=this.y.redAdd(this.y);if(D.cmpn(0)===0)return this.curve.point(null,null);var F=this.curve.a,P=this.x.redSqr(),G=D.redInvm(),T=P.redAdd(P).redIAdd(P).redIAdd(F).redMul(G),v=T.redSqr().redISub(this.x.redAdd(this.x)),J=T.redMul(this.x.redSub(v)).redISub(this.y);return this.curve.point(v,J)},A.prototype.getX=function(){return this.x.fromRed()},A.prototype.getY=function(){return this.y.fromRed()},A.prototype.mul=function(D){if(D=new U(D,16),this.isInfinity())return this;else if(this._hasDoubles(D))return this.curve._fixedNafMul(this,D);else if(this.curve.endo)return this.curve._endoWnafMulAdd([this],[D]);else return this.curve._wnafMul(this,D)},A.prototype.mulAdd=function(D,F,P){var G=[this,F],T=[D,P];if(this.curve.endo)return this.curve._endoWnafMulAdd(G,T);else return this.curve._wnafMulAdd(1,G,T,2)},A.prototype.jmulAdd=function(D,F,P){var G=[this,F],T=[D,P];if(this.curve.endo)return this.curve._endoWnafMulAdd(G,T,!0);else return this.curve._wnafMulAdd(1,G,T,2,!0)},A.prototype.eq=function(D){return this===D||this.inf===D.inf&&(this.inf||this.x.cmp(D.x)===0&&this.y.cmp(D.y)===0)},A.prototype.neg=function(D){if(this.inf)return this;var F=this.curve.point(this.x,this.y.redNeg());if(D&&this.precomputed){var P=this.precomputed,G=function(T){return T.neg()};F.precomputed={naf:P.naf&&{wnd:P.naf.wnd,points:P.naf.points.map(G)},doubles:P.doubles&&{step:P.doubles.step,points:P.doubles.points.map(G)}}}return F},A.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var D=this.curve.jpoint(this.x,this.y,this.curve.one);return D};function R(D,F,P,G){if(Y.BasePoint.call(this,D,"jacobian"),F===null&&P===null&&G===null)this.x=this.curve.one,this.y=this.curve.one,this.z=new U(0);else this.x=new U(F,16),this.y=new U(P,16),this.z=new U(G,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);this.zOne=this.z===this.curve.one}H(R,Y.BasePoint),M.prototype.jpoint=function(D,F,P){return new R(this,D,F,P)},R.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var D=this.z.redInvm(),F=D.redSqr(),P=this.x.redMul(F),G=this.y.redMul(F).redMul(D);return this.curve.point(P,G)},R.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)},R.prototype.add=function(D){if(this.isInfinity())return D;if(D.isInfinity())return this;var F=D.z.redSqr(),P=this.z.redSqr(),G=this.x.redMul(F),T=D.x.redMul(P),v=this.y.redMul(F.redMul(D.z)),J=D.y.redMul(P.redMul(this.z)),k=G.redSub(T),f=v.redSub(J);if(k.cmpn(0)===0)if(f.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl();var j=k.redSqr(),_=j.redMul(k),p=G.redMul(j),N=f.redSqr().redIAdd(_).redISub(p).redISub(p),m=f.redMul(p.redISub(N)).redISub(v.redMul(_)),z0=this.z.redMul(D.z).redMul(k);return this.curve.jpoint(N,m,z0)},R.prototype.mixedAdd=function(D){if(this.isInfinity())return D.toJ();if(D.isInfinity())return this;var F=this.z.redSqr(),P=this.x,G=D.x.redMul(F),T=this.y,v=D.y.redMul(F).redMul(this.z),J=P.redSub(G),k=T.redSub(v);if(J.cmpn(0)===0)if(k.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl();var f=J.redSqr(),j=f.redMul(J),_=P.redMul(f),p=k.redSqr().redIAdd(j).redISub(_).redISub(_),N=k.redMul(_.redISub(p)).redISub(T.redMul(j)),m=this.z.redMul(J);return this.curve.jpoint(p,N,m)},R.prototype.dblp=function(D){if(D===0)return this;if(this.isInfinity())return this;if(!D)return this.dbl();var F;if(this.curve.zeroA||this.curve.threeA){var P=this;for(F=0;F=0)return!1;if(P.redIAdd(T),this.x.cmp(P)===0)return!0}},R.prototype.inspect=function(){if(this.isInfinity())return"";return""},R.prototype.isInfinity=function(){return this.z.cmpn(0)===0}}),XB=D0((K,V)=>{var Q=_Q(),U=PV(),H=gL(),Y=_V();function z(A){H.call(this,"mont",A),this.a=new Q(A.a,16).toRed(this.red),this.b=new Q(A.b,16).toRed(this.red),this.i4=new Q(4).toRed(this.red).redInvm(),this.two=new Q(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}U(z,H),V.exports=z,z.prototype.validate=function(A){var R=A.normalize().x,D=R.redSqr(),F=D.redMul(R).redAdd(D.redMul(this.a)).redAdd(R),P=F.redSqrt();return P.redSqr().cmp(F)===0};function M(A,R,D){if(H.BasePoint.call(this,A,"projective"),R===null&&D===null)this.x=this.curve.one,this.z=this.curve.zero;else{if(this.x=new Q(R,16),this.z=new Q(D,16),!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red)}}U(M,H.BasePoint),z.prototype.decodePoint=function(A,R){return this.point(Y.toArray(A,R),1)},z.prototype.point=function(A,R){return new M(this,A,R)},z.prototype.pointFromJSON=function(A){return M.fromJSON(this,A)},M.prototype.precompute=function(){},M.prototype._encode=function(){return this.getX().toArray("be",this.curve.p.byteLength())},M.fromJSON=function(A,R){return new M(A,R[0],R[1]||A.one)},M.prototype.inspect=function(){if(this.isInfinity())return"";return""},M.prototype.isInfinity=function(){return this.z.cmpn(0)===0},M.prototype.dbl=function(){var A=this.x.redAdd(this.z),R=A.redSqr(),D=this.x.redSub(this.z),F=D.redSqr(),P=R.redSub(F),G=R.redMul(F),T=P.redMul(F.redAdd(this.curve.a24.redMul(P)));return this.curve.point(G,T)},M.prototype.add=function(){throw Error("Not supported on Montgomery curve")},M.prototype.diffAdd=function(A,R){var D=this.x.redAdd(this.z),F=this.x.redSub(this.z),P=A.x.redAdd(A.z),G=A.x.redSub(A.z),T=G.redMul(D),v=P.redMul(F),J=R.z.redMul(T.redAdd(v).redSqr()),k=R.x.redMul(T.redISub(v).redSqr());return this.curve.point(J,k)},M.prototype.mul=function(A){var R=A.clone(),D=this,F=this.curve.point(null,null),P=this;for(var G=[];R.cmpn(0)!==0;R.iushrn(1))G.push(R.andln(1));for(var T=G.length-1;T>=0;T--)if(G[T]===0)D=D.diffAdd(F,P),F=F.dbl();else F=D.diffAdd(F,P),D=D.dbl();return F},M.prototype.mulAdd=function(){throw Error("Not supported on Montgomery curve")},M.prototype.jumlAdd=function(){throw Error("Not supported on Montgomery curve")},M.prototype.eq=function(A){return this.getX().cmp(A.getX())===0},M.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this},M.prototype.getX=function(){return this.normalize(),this.x.fromRed()}}),AB=D0((K,V)=>{var Q=_V(),U=_Q(),H=PV(),Y=gL(),z=Q.assert;function M(R){this.twisted=(R.a|0)!==1,this.mOneA=this.twisted&&(R.a|0)===-1,this.extended=this.mOneA,Y.call(this,"edwards",R),this.a=new U(R.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new U(R.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new U(R.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),z(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(R.c|0)===1}H(M,Y),V.exports=M,M.prototype._mulA=function(R){if(this.mOneA)return R.redNeg();else return this.a.redMul(R)},M.prototype._mulC=function(R){if(this.oneC)return R;else return this.c.redMul(R)},M.prototype.jpoint=function(R,D,F,P){return this.point(R,D,F,P)},M.prototype.pointFromX=function(R,D){if(R=new U(R,16),!R.red)R=R.toRed(this.red);var F=R.redSqr(),P=this.c2.redSub(this.a.redMul(F)),G=this.one.redSub(this.c2.redMul(this.d).redMul(F)),T=P.redMul(G.redInvm()),v=T.redSqrt();if(v.redSqr().redSub(T).cmp(this.zero)!==0)throw Error("invalid point");var J=v.fromRed().isOdd();if(D&&!J||!D&&J)v=v.redNeg();return this.point(R,v)},M.prototype.pointFromY=function(R,D){if(R=new U(R,16),!R.red)R=R.toRed(this.red);var F=R.redSqr(),P=F.redSub(this.c2),G=F.redMul(this.d).redMul(this.c2).redSub(this.a),T=P.redMul(G.redInvm());if(T.cmp(this.zero)===0)if(D)throw Error("invalid point");else return this.point(this.zero,R);var v=T.redSqrt();if(v.redSqr().redSub(T).cmp(this.zero)!==0)throw Error("invalid point");if(v.fromRed().isOdd()!==D)v=v.redNeg();return this.point(v,R)},M.prototype.validate=function(R){if(R.isInfinity())return!0;R.normalize();var D=R.x.redSqr(),F=R.y.redSqr(),P=D.redMul(this.a).redAdd(F),G=this.c2.redMul(this.one.redAdd(this.d.redMul(D).redMul(F)));return P.cmp(G)===0};function A(R,D,F,P,G){if(Y.BasePoint.call(this,R,"projective"),D===null&&F===null&&P===null)this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0;else{if(this.x=new U(D,16),this.y=new U(F,16),this.z=P?new U(P,16):this.curve.one,this.t=G&&new U(G,16),!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);if(this.t&&!this.t.red)this.t=this.t.toRed(this.curve.red);if(this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t){if(this.t=this.x.redMul(this.y),!this.zOne)this.t=this.t.redMul(this.z.redInvm())}}}H(A,Y.BasePoint),M.prototype.pointFromJSON=function(R){return A.fromJSON(this,R)},M.prototype.point=function(R,D,F,P){return new A(this,R,D,F,P)},A.fromJSON=function(R,D){return new A(R,D[0],D[1],D[2])},A.prototype.inspect=function(){if(this.isInfinity())return"";return""},A.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)},A.prototype._extDbl=function(){var R=this.x.redSqr(),D=this.y.redSqr(),F=this.z.redSqr();F=F.redIAdd(F);var P=this.curve._mulA(R),G=this.x.redAdd(this.y).redSqr().redISub(R).redISub(D),T=P.redAdd(D),v=T.redSub(F),J=P.redSub(D),k=G.redMul(v),f=T.redMul(J),j=G.redMul(J),_=v.redMul(T);return this.curve.point(k,f,_,j)},A.prototype._projDbl=function(){var R=this.x.redAdd(this.y).redSqr(),D=this.x.redSqr(),F=this.y.redSqr(),P,G,T,v,J,k;if(this.curve.twisted){v=this.curve._mulA(D);var f=v.redAdd(F);if(this.zOne)P=R.redSub(D).redSub(F).redMul(f.redSub(this.curve.two)),G=f.redMul(v.redSub(F)),T=f.redSqr().redSub(f).redSub(f);else J=this.z.redSqr(),k=f.redSub(J).redISub(J),P=R.redSub(D).redISub(F).redMul(k),G=f.redMul(v.redSub(F)),T=f.redMul(k)}else v=D.redAdd(F),J=this.curve._mulC(this.z).redSqr(),k=v.redSub(J).redSub(J),P=this.curve._mulC(R.redISub(v)).redMul(k),G=this.curve._mulC(v).redMul(D.redISub(F)),T=v.redMul(k);return this.curve.point(P,G,T)},A.prototype.dbl=function(){if(this.isInfinity())return this;if(this.curve.extended)return this._extDbl();else return this._projDbl()},A.prototype._extAdd=function(R){var D=this.y.redSub(this.x).redMul(R.y.redSub(R.x)),F=this.y.redAdd(this.x).redMul(R.y.redAdd(R.x)),P=this.t.redMul(this.curve.dd).redMul(R.t),G=this.z.redMul(R.z.redAdd(R.z)),T=F.redSub(D),v=G.redSub(P),J=G.redAdd(P),k=F.redAdd(D),f=T.redMul(v),j=J.redMul(k),_=T.redMul(k),p=v.redMul(J);return this.curve.point(f,j,p,_)},A.prototype._projAdd=function(R){var D=this.z.redMul(R.z),F=D.redSqr(),P=this.x.redMul(R.x),G=this.y.redMul(R.y),T=this.curve.d.redMul(P).redMul(G),v=F.redSub(T),J=F.redAdd(T),k=this.x.redAdd(this.y).redMul(R.x.redAdd(R.y)).redISub(P).redISub(G),f=D.redMul(v).redMul(k),j,_;if(this.curve.twisted)j=D.redMul(J).redMul(G.redSub(this.curve._mulA(P))),_=v.redMul(J);else j=D.redMul(J).redMul(G.redSub(P)),_=this.curve._mulC(v).redMul(J);return this.curve.point(f,j,_)},A.prototype.add=function(R){if(this.isInfinity())return R;if(R.isInfinity())return this;if(this.curve.extended)return this._extAdd(R);else return this._projAdd(R)},A.prototype.mul=function(R){if(this._hasDoubles(R))return this.curve._fixedNafMul(this,R);else return this.curve._wnafMul(this,R)},A.prototype.mulAdd=function(R,D,F){return this.curve._wnafMulAdd(1,[this,D],[R,F],2,!1)},A.prototype.jmulAdd=function(R,D,F){return this.curve._wnafMulAdd(1,[this,D],[R,F],2,!0)},A.prototype.normalize=function(){if(this.zOne)return this;var R=this.z.redInvm();if(this.x=this.x.redMul(R),this.y=this.y.redMul(R),this.t)this.t=this.t.redMul(R);return this.z=this.curve.one,this.zOne=!0,this},A.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())},A.prototype.getX=function(){return this.normalize(),this.x.fromRed()},A.prototype.getY=function(){return this.normalize(),this.y.fromRed()},A.prototype.eq=function(R){return this===R||this.getX().cmp(R.getX())===0&&this.getY().cmp(R.getY())===0},A.prototype.eqXToP=function(R){var D=R.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(D)===0)return!0;var F=R.clone(),P=this.curve.redN.redMul(this.z);for(;;){if(F.iadd(this.curve.n),F.cmp(this.curve.p)>=0)return!1;if(D.redIAdd(P),this.x.cmp(D)===0)return!0}},A.prototype.toP=A.prototype.normalize,A.prototype.mixedAdd=A.prototype.add}),r9=D0((K)=>{var V=K;V.base=gL(),V.short=WB(),V.mont=XB(),V.edwards=AB()}),RQ=D0((K)=>{var V=zU(),Q=PV();K.inherits=Q;function U(O,X){if((O.charCodeAt(X)&64512)!==55296)return!1;if(X<0||X+1>=O.length)return!1;return(O.charCodeAt(X+1)&64512)===56320}function H(O,X){if(Array.isArray(O))return O.slice();if(!O)return[];var q=[];if(typeof O==="string"){if(!X){var W=0;for(var C=0;C>6|192,q[W++]=I&63|128;else if(U(O,C))I=65536+((I&1023)<<10)+(O.charCodeAt(++C)&1023),q[W++]=I>>18|240,q[W++]=I>>12&63|128,q[W++]=I>>6&63|128,q[W++]=I&63|128;else q[W++]=I>>12|224,q[W++]=I>>6&63|128,q[W++]=I&63|128}}else if(X==="hex"){if(O=O.replace(/[^a-z0-9]+/ig,""),O.length%2!==0)O="0"+O;for(C=0;C>>24|O>>>8&65280|O<<8&16711680|(O&255)<<24;return X>>>0}K.htonl=z;function M(O,X){var q="";for(var W=0;W>>0}return I}K.join32=D;function F(O,X){var q=Array(O.length*4);for(var W=0,C=0;W>>24,q[C+1]=I>>>16&255,q[C+2]=I>>>8&255,q[C+3]=I&255;else q[C+3]=I>>>24,q[C+2]=I>>>16&255,q[C+1]=I>>>8&255,q[C]=I&255}return q}K.split32=F;function P(O,X){return O>>>X|O<<32-X}K.rotr32=P;function G(O,X){return O<>>32-X}K.rotl32=G;function T(O,X){return O+X>>>0}K.sum32=T;function v(O,X,q){return O+X+q>>>0}K.sum32_3=v;function J(O,X,q,W){return O+X+q+W>>>0}K.sum32_4=J;function k(O,X,q,W,C){return O+X+q+W+C>>>0}K.sum32_5=k;function f(O,X,q,W){var C=O[X],I=O[X+1],$=W+I>>>0,Z=($>>0,O[X+1]=$}K.sum64=f;function j(O,X,q,W){var C=X+W>>>0,I=(C>>0}K.sum64_hi=j;function _(O,X,q,W){var C=X+W;return C>>>0}K.sum64_lo=_;function p(O,X,q,W,C,I,$,Z){var S=0,B=X;B=B+W>>>0,S+=B>>0,S+=B>>0,S+=B>>0}K.sum64_4_hi=p;function N(O,X,q,W,C,I,$,Z){var S=X+W+I+Z;return S>>>0}K.sum64_4_lo=N;function m(O,X,q,W,C,I,$,Z,S,B){var E=0,w=X;w=w+W>>>0,E+=w>>0,E+=w>>0,E+=w>>0,E+=w>>0}K.sum64_5_hi=m;function z0(O,X,q,W,C,I,$,Z,S,B){var E=X+W+I+Z+B;return E>>>0}K.sum64_5_lo=z0;function L0(O,X,q){var W=X<<32-q|O>>>q;return W>>>0}K.rotr64_hi=L0;function s(O,X,q){var W=O<<32-q|X>>>q;return W>>>0}K.rotr64_lo=s;function Z0(O,X,q){return O>>>q}K.shr64_hi=Z0;function L(O,X,q){var W=O<<32-q|X>>>q;return W>>>0}K.shr64_lo=L}),p8=D0((K)=>{var V=RQ(),Q=zU();function U(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian="big",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}K.BlockHash=U,U.prototype.update=function(H,Y){if(H=V.toArray(H,Y),!this.pending)this.pending=H;else this.pending=this.pending.concat(H);if(this.pendingTotal+=H.length,this.pending.length>=this._delta8){H=this.pending;var z=H.length%this._delta8;if(this.pending=H.slice(H.length-z,H.length),this.pending.length===0)this.pending=null;H=V.join32(H,0,H.length-z,this.endian);for(var M=0;M>>24&255,M[A++]=H>>>16&255,M[A++]=H>>>8&255,M[A++]=H&255}else{M[A++]=H&255,M[A++]=H>>>8&255,M[A++]=H>>>16&255,M[A++]=H>>>24&255,M[A++]=0,M[A++]=0,M[A++]=0,M[A++]=0;for(R=8;R{var V=RQ(),Q=V.rotr32;function U(F,P,G,T){if(F===0)return H(P,G,T);if(F===1||F===3)return z(P,G,T);if(F===2)return Y(P,G,T)}K.ft_1=U;function H(F,P,G){return F&P^~F&G}K.ch32=H;function Y(F,P,G){return F&P^F&G^P&G}K.maj32=Y;function z(F,P,G){return F^P^G}K.p32=z;function M(F){return Q(F,2)^Q(F,13)^Q(F,22)}K.s0_256=M;function A(F){return Q(F,6)^Q(F,11)^Q(F,25)}K.s1_256=A;function R(F){return Q(F,7)^Q(F,18)^F>>>3}K.g0_256=R;function D(F){return Q(F,17)^Q(F,19)^F>>>10}K.g1_256=D}),RB=D0((K,V)=>{var Q=RQ(),U=p8(),H=i9(),Y=Q.rotl32,z=Q.sum32,M=Q.sum32_5,A=H.ft_1,R=U.BlockHash,D=[1518500249,1859775393,2400959708,3395469782];function F(){if(!(this instanceof F))return new F;R.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=Array(80)}Q.inherits(F,R),V.exports=F,F.blockSize=512,F.outSize=160,F.hmacStrength=80,F.padLength=64,F.prototype._update=function(P,G){var T=this.W;for(var v=0;v<16;v++)T[v]=P[G+v];for(;v{var Q=RQ(),U=p8(),H=i9(),Y=zU(),z=Q.sum32,M=Q.sum32_4,A=Q.sum32_5,R=H.ch32,D=H.maj32,F=H.s0_256,P=H.s1_256,G=H.g0_256,T=H.g1_256,v=U.BlockHash,J=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function k(){if(!(this instanceof k))return new k;v.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=J,this.W=Array(64)}Q.inherits(k,v),V.exports=k,k.blockSize=512,k.outSize=256,k.hmacStrength=192,k.padLength=64,k.prototype._update=function(f,j){var _=this.W;for(var p=0;p<16;p++)_[p]=f[j+p];for(;p<_.length;p++)_[p]=M(T(_[p-2]),_[p-7],G(_[p-15]),_[p-16]);var N=this.h[0],m=this.h[1],z0=this.h[2],L0=this.h[3],s=this.h[4],Z0=this.h[5],L=this.h[6],O=this.h[7];Y(this.k.length===_.length);for(p=0;p<_.length;p++){var X=A(O,P(s),R(s,Z0,L),this.k[p],_[p]),q=z(F(N),D(N,m,z0));O=L,L=Z0,Z0=s,s=z(L0,X),L0=z0,z0=m,m=N,N=z(X,q)}this.h[0]=z(this.h[0],N),this.h[1]=z(this.h[1],m),this.h[2]=z(this.h[2],z0),this.h[3]=z(this.h[3],L0),this.h[4]=z(this.h[4],s),this.h[5]=z(this.h[5],Z0),this.h[6]=z(this.h[6],L),this.h[7]=z(this.h[7],O)},k.prototype._digest=function(f){if(f==="hex")return Q.toHex32(this.h,"big");else return Q.split32(this.h,"big")}}),$B=D0((K,V)=>{var Q=RQ(),U=t9();function H(){if(!(this instanceof H))return new H;U.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}Q.inherits(H,U),V.exports=H,H.blockSize=512,H.outSize=224,H.hmacStrength=192,H.padLength=64,H.prototype._digest=function(Y){if(Y==="hex")return Q.toHex32(this.h.slice(0,7),"big");else return Q.split32(this.h.slice(0,7),"big")}}),a9=D0((K,V)=>{var Q=RQ(),U=p8(),H=zU(),Y=Q.rotr64_hi,z=Q.rotr64_lo,M=Q.shr64_hi,A=Q.shr64_lo,R=Q.sum64,D=Q.sum64_hi,F=Q.sum64_lo,P=Q.sum64_4_hi,G=Q.sum64_4_lo,T=Q.sum64_5_hi,v=Q.sum64_5_lo,J=U.BlockHash,k=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function f(){if(!(this instanceof f))return new f;J.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=k,this.W=Array(160)}Q.inherits(f,J),V.exports=f,f.blockSize=1024,f.outSize=512,f.hmacStrength=192,f.padLength=128,f.prototype._prepareBlock=function(q,W){var C=this.W;for(var I=0;I<32;I++)C[I]=q[W+I];for(;I{var Q=RQ(),U=a9();function H(){if(!(this instanceof H))return new H;U.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}Q.inherits(H,U),V.exports=H,H.blockSize=1024,H.outSize=384,H.hmacStrength=192,H.padLength=128,H.prototype._digest=function(Y){if(Y==="hex")return Q.toHex32(this.h.slice(0,12),"big");else return Q.split32(this.h.slice(0,12),"big")}}),DB=D0((K)=>{K.sha1=RB(),K.sha224=$B(),K.sha256=t9(),K.sha384=FB(),K.sha512=a9()}),SB=D0((K)=>{var V=RQ(),Q=p8(),U=V.rotl32,H=V.sum32,Y=V.sum32_3,z=V.sum32_4,M=Q.BlockHash;function A(){if(!(this instanceof A))return new A;M.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian="little"}V.inherits(A,M),K.ripemd160=A,A.blockSize=512,A.outSize=160,A.hmacStrength=192,A.padLength=64,A.prototype._update=function(J,k){var f=this.h[0],j=this.h[1],_=this.h[2],p=this.h[3],N=this.h[4],m=f,z0=j,L0=_,s=p,Z0=N;for(var L=0;L<80;L++){var O=H(U(z(f,R(L,j,_,p),J[P[L]+k],D(L)),T[L]),N);f=N,N=p,p=U(_,10),_=j,j=O,O=H(U(z(m,R(79-L,z0,L0,s),J[G[L]+k],F(L)),v[L]),Z0),m=Z0,Z0=s,s=U(L0,10),L0=z0,z0=O}O=Y(this.h[1],_,s),this.h[1]=Y(this.h[2],p,Z0),this.h[2]=Y(this.h[3],N,m),this.h[3]=Y(this.h[4],f,z0),this.h[4]=Y(this.h[0],j,L0),this.h[0]=O},A.prototype._digest=function(J){if(J==="hex")return V.toHex32(this.h,"little");else return V.split32(this.h,"little")};function R(J,k,f,j){if(J<=15)return k^f^j;else if(J<=31)return k&f|~k&j;else if(J<=47)return(k|~f)^j;else if(J<=63)return k&j|f&~j;else return k^(f|~j)}function D(J){if(J<=15)return 0;else if(J<=31)return 1518500249;else if(J<=47)return 1859775393;else if(J<=63)return 2400959708;else return 2840853838}function F(J){if(J<=15)return 1352829926;else if(J<=31)return 1548603684;else if(J<=47)return 1836072691;else if(J<=63)return 2053994217;else return 0}var P=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],G=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],T=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],v=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]}),PB=D0((K,V)=>{var Q=RQ(),U=zU();function H(Y,z,M){if(!(this instanceof H))return new H(Y,z,M);this.Hash=Y,this.blockSize=Y.blockSize/8,this.outSize=Y.outSize/8,this.inner=null,this.outer=null,this._init(Q.toArray(z,M))}V.exports=H,H.prototype._init=function(Y){if(Y.length>this.blockSize)Y=new this.Hash().update(Y).digest();U(Y.length<=this.blockSize);for(var z=Y.length;z{var V=K;V.utils=RQ(),V.common=p8(),V.sha=DB(),V.ripemd=SB(),V.hmac=PB(),V.sha1=V.sha.sha1,V.sha256=V.sha.sha256,V.sha224=V.sha.sha224,V.sha384=V.sha.sha384,V.sha512=V.sha.sha512,V.ripemd160=V.ripemd.ripemd160}),CB=D0((K,V)=>{V.exports={doubles:{step:4,points:[["e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a","f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821"],["8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508","11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf"],["175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739","d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695"],["363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640","4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9"],["8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c","4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36"],["723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda","96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f"],["eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa","5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999"],["100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0","cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09"],["e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d","9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d"],["feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d","e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088"],["da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1","9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d"],["53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0","5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8"],["8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047","10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a"],["385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862","283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453"],["6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7","7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160"],["3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd","56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0"],["85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83","7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6"],["948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a","53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589"],["6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8","bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17"],["e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d","4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda"],["e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725","7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd"],["213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754","4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2"],["4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c","17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6"],["fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6","6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f"],["76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39","c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01"],["c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891","893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3"],["d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b","febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f"],["b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03","2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7"],["e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d","eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78"],["a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070","7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1"],["90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4","e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150"],["8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da","662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82"],["e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11","1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc"],["8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e","efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b"],["e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41","2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51"],["b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef","67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45"],["d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8","db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120"],["324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d","648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84"],["4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96","35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d"],["9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd","ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d"],["6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5","9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8"],["a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266","40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8"],["7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71","34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac"],["928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac","c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f"],["85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751","1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962"],["ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e","493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907"],["827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241","c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec"],["eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3","be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d"],["e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f","4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414"],["1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19","aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd"],["146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be","b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0"],["fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9","6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811"],["da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2","8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1"],["a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13","7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c"],["174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c","ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73"],["959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba","2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd"],["d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151","e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405"],["64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073","d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589"],["8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458","38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e"],["13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b","69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27"],["bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366","d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1"],["8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa","40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482"],["8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0","620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945"],["dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787","7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573"],["f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e","ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82"]]},naf:{wnd:7,points:[["f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9","388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672"],["2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4","d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6"],["5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc","6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da"],["acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe","cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37"],["774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb","d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b"],["f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8","ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81"],["d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e","581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58"],["defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34","4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77"],["2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c","85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a"],["352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5","321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c"],["2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f","2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67"],["9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714","73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402"],["daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729","a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55"],["c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db","2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482"],["6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4","e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82"],["1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5","b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396"],["605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479","2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49"],["62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d","80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf"],["80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f","1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a"],["7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb","d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7"],["d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9","eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933"],["49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963","758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a"],["77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74","958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6"],["f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530","e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37"],["463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b","5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e"],["f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247","cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6"],["caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1","cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476"],["2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120","4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40"],["7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435","91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61"],["754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18","673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683"],["e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8","59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5"],["186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb","3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b"],["df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f","55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417"],["5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143","efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868"],["290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba","e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a"],["af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45","f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6"],["766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a","744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996"],["59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e","c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e"],["f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8","e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d"],["7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c","30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2"],["948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519","e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e"],["7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab","100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437"],["3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca","ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311"],["d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf","8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4"],["1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610","68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575"],["733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4","f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d"],["15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c","d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d"],["a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940","edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629"],["e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980","a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06"],["311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3","66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374"],["34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf","9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee"],["f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63","4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1"],["d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448","fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b"],["32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf","5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661"],["7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5","8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6"],["ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6","8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e"],["16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5","5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d"],["eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99","f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc"],["78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51","f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4"],["494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5","42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c"],["a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5","204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b"],["c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997","4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913"],["841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881","73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154"],["5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5","39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865"],["36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66","d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc"],["336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726","ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224"],["8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede","6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e"],["1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94","60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6"],["85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31","3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511"],["29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51","b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b"],["a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252","ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2"],["4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5","cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c"],["d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b","6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3"],["ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4","322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d"],["af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f","6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700"],["e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889","2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4"],["591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246","b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196"],["11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984","998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4"],["3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a","b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257"],["cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030","bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13"],["c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197","6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096"],["c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593","c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38"],["a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef","21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f"],["347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38","60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448"],["da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a","49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a"],["c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111","5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4"],["4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502","7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437"],["3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea","be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7"],["cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26","8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d"],["b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986","39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a"],["d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e","62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54"],["48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4","25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77"],["dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda","ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517"],["6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859","cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10"],["e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f","f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125"],["eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c","6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e"],["13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942","fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1"],["ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a","1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2"],["b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80","5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423"],["ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d","438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8"],["8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1","cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758"],["52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63","c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375"],["e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352","6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d"],["7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193","ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec"],["5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00","9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0"],["32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58","ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c"],["e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7","d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4"],["8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8","c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f"],["4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e","67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649"],["3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d","cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826"],["674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b","299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5"],["d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f","f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87"],["30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6","462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b"],["be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297","62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc"],["93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a","7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c"],["b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c","ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f"],["d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52","4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a"],["d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb","bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46"],["463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065","bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f"],["7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917","603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03"],["74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9","cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08"],["30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3","553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8"],["9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57","712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373"],["176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66","ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3"],["75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8","9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8"],["809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721","9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1"],["1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180","4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9"]]}}}),x2=D0((K)=>{var V=K,Q=j2(),U=r9(),H=_V(),Y=H.assert;function z(R){if(R.type==="short")this.curve=new U.short(R);else if(R.type==="edwards")this.curve=new U.edwards(R);else this.curve=new U.mont(R);this.g=this.curve.g,this.n=this.curve.n,this.hash=R.hash,Y(this.g.validate(),"Invalid curve"),Y(this.g.mul(this.n).isInfinity(),"Invalid curve, G*N != O")}V.PresetCurve=z;function M(R,D){Object.defineProperty(V,R,{configurable:!0,enumerable:!0,get:function(){var F=new z(D);return Object.defineProperty(V,R,{configurable:!0,enumerable:!0,value:F}),F}})}M("p192",{type:"short",prime:"p192",p:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff",a:"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc",b:"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1",n:"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831",hash:Q.sha256,gRed:!1,g:["188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012","07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811"]}),M("p224",{type:"short",prime:"p224",p:"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001",a:"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe",b:"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4",n:"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d",hash:Q.sha256,gRed:!1,g:["b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21","bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34"]}),M("p256",{type:"short",prime:null,p:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff",a:"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc",b:"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b",n:"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551",hash:Q.sha256,gRed:!1,g:["6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296","4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5"]}),M("p384",{type:"short",prime:null,p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff",a:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc",b:"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef",n:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973",hash:Q.sha384,gRed:!1,g:["aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7","3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f"]}),M("p521",{type:"short",prime:null,p:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff",a:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc",b:"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00",n:"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409",hash:Q.sha512,gRed:!1,g:["000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66","00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650"]}),M("curve25519",{type:"mont",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"76d06",b:"1",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Q.sha256,gRed:!1,g:["9"]}),M("ed25519",{type:"edwards",prime:"p25519",p:"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed",a:"-1",c:"1",d:"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3",n:"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed",hash:Q.sha256,gRed:!1,g:["216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a","6666666666666666666666666666666666666666666666666666666666666658"]});var A;try{A=CB()}catch(R){A=void 0}M("secp256k1",{type:"short",prime:"k256",p:"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f",a:"0",b:"7",n:"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141",h:"1",hash:Q.sha256,beta:"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee",lambda:"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72",basis:[{a:"3086d221a7d46bcde86c90e49284eb15",b:"-e4437ed6010e88286f547fa90abfe4c3"},{a:"114ca50f7a8e2f3f657c1108d9d44cfd8",b:"3086d221a7d46bcde86c90e49284eb15"}],gRed:!1,g:["79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798","483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8",A]})}),IB=D0((K,V)=>{var Q=j2(),U=m9(),H=zU();function Y(z){if(!(this instanceof Y))return new Y(z);this.hash=z.hash,this.predResist=!!z.predResist,this.outLen=this.hash.outSize,this.minEntropy=z.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var M=U.toArray(z.entropy,z.entropyEnc||"hex"),A=U.toArray(z.nonce,z.nonceEnc||"hex"),R=U.toArray(z.pers,z.persEnc||"hex");H(M.length>=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._init(M,A,R)}V.exports=Y,Y.prototype._init=function(z,M,A){var R=z.concat(M).concat(A);this.K=Array(this.outLen/8),this.V=Array(this.outLen/8);for(var D=0;D=this.minEntropy/8,"Not enough entropy. Minimum is: "+this.minEntropy+" bits"),this._update(z.concat(A||[])),this._reseed=1},Y.prototype.generate=function(z,M,A,R){if(this._reseed>this.reseedInterval)throw Error("Reseed is required");if(typeof M!=="string")R=A,A=M,M=null;if(A)A=U.toArray(A,R||"hex"),this._update(A);var D=[];while(D.length{var Q=_Q(),U=_V(),H=U.assert;function Y(z,M){if(this.ec=z,this.priv=null,this.pub=null,M.priv)this._importPrivate(M.priv,M.privEnc);if(M.pub)this._importPublic(M.pub,M.pubEnc)}V.exports=Y,Y.fromPublic=function(z,M,A){if(M instanceof Y)return M;return new Y(z,{pub:M,pubEnc:A})},Y.fromPrivate=function(z,M,A){if(M instanceof Y)return M;return new Y(z,{priv:M,privEnc:A})},Y.prototype.validate=function(){var z=this.getPublic();if(z.isInfinity())return{result:!1,reason:"Invalid public key"};if(!z.validate())return{result:!1,reason:"Public key is not a point"};if(!z.mul(this.ec.curve.n).isInfinity())return{result:!1,reason:"Public key * N != O"};return{result:!0,reason:null}},Y.prototype.getPublic=function(z,M){if(typeof z==="string")M=z,z=null;if(!this.pub)this.pub=this.ec.g.mul(this.priv);if(!M)return this.pub;return this.pub.encode(M,z)},Y.prototype.getPrivate=function(z){if(z==="hex")return this.priv.toString(16,2);else return this.priv},Y.prototype._importPrivate=function(z,M){this.priv=new Q(z,M||16),this.priv=this.priv.umod(this.ec.curve.n)},Y.prototype._importPublic=function(z,M){if(z.x||z.y){if(this.ec.curve.type==="mont")H(z.x,"Need x coordinate");else if(this.ec.curve.type==="short"||this.ec.curve.type==="edwards")H(z.x&&z.y,"Need both x and y coordinate");this.pub=this.ec.curve.point(z.x,z.y);return}this.pub=this.ec.curve.decodePoint(z,M)},Y.prototype.derive=function(z){if(!z.validate())H(z.validate(),"public point not validated");return z.mul(this.priv).getX()},Y.prototype.sign=function(z,M,A){return this.ec.sign(z,this,M,A)},Y.prototype.verify=function(z,M,A){return this.ec.verify(z,M,this,void 0,A)},Y.prototype.inspect=function(){return""}}),TB=D0((K,V)=>{var Q=_Q(),U=_V(),H=U.assert;function Y(D,F){if(D instanceof Y)return D;if(this._importDER(D,F))return;if(H(D.r&&D.s,"Signature without r or s"),this.r=new Q(D.r,16),this.s=new Q(D.s,16),D.recoveryParam===void 0)this.recoveryParam=null;else this.recoveryParam=D.recoveryParam}V.exports=Y;function z(){this.place=0}function M(D,F){var P=D[F.place++];if(!(P&128))return P;var G=P&15;if(G===0||G>4)return!1;if(D[F.place]===0)return!1;var T=0;for(var v=0,J=F.place;v>>=0;if(T<=127)return!1;return F.place=J,T}function A(D){var F=0,P=D.length-1;while(!D[F]&&!(D[F+1]&128)&&F>>3);D.push(P|128);while(--P)D.push(F>>>(P<<3)&255);D.push(F)}Y.prototype.toDER=function(D){var F=this.r.toArray(),P=this.s.toArray();if(F[0]&128)F=[0].concat(F);if(P[0]&128)P=[0].concat(P);F=A(F),P=A(P);while(!P[0]&&!(P[1]&128))P=P.slice(1);var G=[2];R(G,F.length),G=G.concat(F),G.push(2),R(G,P.length);var T=G.concat(P),v=[48];return R(v,T.length),v=v.concat(T),U.encode(v,D)}}),EB=D0((K,V)=>{var Q=_Q(),U=IB(),H=_V(),Y=x2(),z=n9(),M=H.assert,A=GB(),R=TB();function D(F){if(!(this instanceof D))return new D(F);if(typeof F==="string")M(Object.prototype.hasOwnProperty.call(Y,F),"Unknown curve "+F),F=Y[F];if(F instanceof Y.PresetCurve)F={curve:F};this.curve=F.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=F.curve.g,this.g.precompute(F.curve.n.bitLength()+1),this.hash=F.hash||F.curve.hash}V.exports=D,D.prototype.keyPair=function(F){return new A(this,F)},D.prototype.keyFromPrivate=function(F,P){return A.fromPrivate(this,F,P)},D.prototype.keyFromPublic=function(F,P){return A.fromPublic(this,F,P)},D.prototype.genKeyPair=function(F){if(!F)F={};var P=new U({hash:this.hash,pers:F.pers,persEnc:F.persEnc||"utf8",entropy:F.entropy||z(this.hash.hmacStrength),entropyEnc:F.entropy&&F.entropyEnc||"utf8",nonce:this.n.toArray()}),G=this.n.byteLength(),T=this.n.sub(new Q(2));for(;;){var v=new Q(P.generate(G));if(v.cmp(T)>0)continue;return v.iaddn(1),this.keyFromPrivate(v)}},D.prototype._truncateToN=function(F,P,G){var T;if(Q.isBN(F)||typeof F==="number")F=new Q(F,16),T=F.byteLength();else if(typeof F==="object")T=F.length,F=new Q(F,16);else{var v=F.toString();T=v.length+1>>>1,F=new Q(v,16)}if(typeof G!=="number")G=T*8;var J=G-this.n.bitLength();if(J>0)F=F.ushrn(J);if(!P&&F.cmp(this.n)>=0)return F.sub(this.n);else return F},D.prototype.sign=function(F,P,G,T){if(typeof G==="object")T=G,G=null;if(!T)T={};if(typeof F!=="string"&&typeof F!=="number"&&!Q.isBN(F)){M(typeof F==="object"&&F&&typeof F.length==="number","Expected message to be an array-like, a hex string, or a BN instance"),M(F.length>>>0===F.length);for(var v=0;v=0)continue;var m=this.g.mul(N);if(m.isInfinity())continue;var z0=m.getX(),L0=z0.umod(this.n);if(L0.cmpn(0)===0)continue;var s=N.invm(this.n).mul(L0.mul(P.getPrivate()).iadd(F));if(s=s.umod(this.n),s.cmpn(0)===0)continue;var Z0=(m.getY().isOdd()?1:0)|(z0.cmp(L0)!==0?2:0);if(T.canonical&&s.cmp(this.nh)>0)s=this.n.sub(s),Z0^=1;return new R({r:L0,s,recoveryParam:Z0})}},D.prototype.verify=function(F,P,G,T,v){if(!v)v={};F=this._truncateToN(F,!1,v.msgBitLength),G=this.keyFromPublic(G,T),P=new R(P,"hex");var{r:J,s:k}=P;if(J.cmpn(1)<0||J.cmp(this.n)>=0)return!1;if(k.cmpn(1)<0||k.cmp(this.n)>=0)return!1;var f=k.invm(this.n),j=f.mul(F).umod(this.n),_=f.mul(J).umod(this.n),p;if(!this.curve._maxwellTrick){if(p=this.g.mulAdd(j,G.getPublic(),_),p.isInfinity())return!1;return p.getX().umod(this.n).cmp(J)===0}if(p=this.g.jmulAdd(j,G.getPublic(),_),p.isInfinity())return!1;return p.eqXToP(J)},D.prototype.recoverPubKey=function(F,P,G,T){M((3&G)===G,"The recovery param is more than two bits"),P=new R(P,T);var v=this.n,J=new Q(F),k=P.r,f=P.s,j=G&1,_=G>>1;if(k.cmp(this.curve.p.umod(this.curve.n))>=0&&_)throw Error("Unable to find sencond key candinate");if(_)k=this.curve.pointFromX(k.add(this.curve.n),j);else k=this.curve.pointFromX(k,j);var p=P.r.invm(v),N=v.sub(J).mul(p).umod(v),m=f.mul(p).umod(v);return this.g.mulAdd(N,k,m)},D.prototype.getKeyRecoveryParam=function(F,P,G,T){if(P=new R(P,T),P.recoveryParam!==null)return P.recoveryParam;for(var v=0;v<4;v++){var J;try{J=this.recoverPubKey(F,P,v)}catch(k){continue}if(J.eq(G))return v}throw Error("Unable to find valid recovery factor")}}),BB=D0((K,V)=>{var Q=_V(),U=Q.assert,H=Q.parseBytes,Y=Q.cachedProperty;function z(M,A){if(this.eddsa=M,this._secret=H(A.secret),M.isPoint(A.pub))this._pub=A.pub;else this._pubBytes=H(A.pub)}z.fromPublic=function(M,A){if(A instanceof z)return A;return new z(M,{pub:A})},z.fromSecret=function(M,A){if(A instanceof z)return A;return new z(M,{secret:A})},z.prototype.secret=function(){return this._secret},Y(z,"pubBytes",function(){return this.eddsa.encodePoint(this.pub())}),Y(z,"pub",function(){if(this._pubBytes)return this.eddsa.decodePoint(this._pubBytes);return this.eddsa.g.mul(this.priv())}),Y(z,"privBytes",function(){var M=this.eddsa,A=this.hash(),R=M.encodingLength-1,D=A.slice(0,M.encodingLength);return D[0]&=248,D[R]&=127,D[R]|=64,D}),Y(z,"priv",function(){return this.eddsa.decodeInt(this.privBytes())}),Y(z,"hash",function(){return this.eddsa.hash().update(this.secret()).digest()}),Y(z,"messagePrefix",function(){return this.hash().slice(this.eddsa.encodingLength)}),z.prototype.sign=function(M){return U(this._secret,"KeyPair can only verify"),this.eddsa.sign(M,this)},z.prototype.verify=function(M,A){return this.eddsa.verify(M,A,this)},z.prototype.getSecret=function(M){return U(this._secret,"KeyPair is public only"),Q.encode(this.secret(),M)},z.prototype.getPublic=function(M){return Q.encode(this.pubBytes(),M)},V.exports=z}),JB=D0((K,V)=>{var Q=_Q(),U=_V(),H=U.assert,Y=U.cachedProperty,z=U.parseBytes;function M(A,R){if(this.eddsa=A,typeof R!=="object")R=z(R);if(Array.isArray(R))H(R.length===A.encodingLength*2,"Signature has invalid size"),R={R:R.slice(0,A.encodingLength),S:R.slice(A.encodingLength)};if(H(R.R&&R.S,"Signature without R or S"),A.isPoint(R.R))this._R=R.R;if(R.S instanceof Q)this._S=R.S;this._Rencoded=Array.isArray(R.R)?R.R:R.Rencoded,this._Sencoded=Array.isArray(R.S)?R.S:R.Sencoded}Y(M,"S",function(){return this.eddsa.decodeInt(this.Sencoded())}),Y(M,"R",function(){return this.eddsa.decodePoint(this.Rencoded())}),Y(M,"Rencoded",function(){return this.eddsa.encodePoint(this.R())}),Y(M,"Sencoded",function(){return this.eddsa.encodeInt(this.S())}),M.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())},M.prototype.toHex=function(){return U.encode(this.toBytes(),"hex").toUpperCase()},V.exports=M}),vB=D0((K,V)=>{var Q=j2(),U=x2(),H=_V(),Y=H.assert,z=H.parseBytes,M=BB(),A=JB();function R(D){if(Y(D==="ed25519","only tested with ed25519 so far"),!(this instanceof R))return new R(D);D=U[D].curve,this.curve=D,this.g=D.g,this.g.precompute(D.n.bitLength()+1),this.pointClass=D.point().constructor,this.encodingLength=Math.ceil(D.n.bitLength()/8),this.hash=Q.sha512}V.exports=R,R.prototype.sign=function(D,F){D=z(D);var P=this.keyFromSecret(F),G=this.hashInt(P.messagePrefix(),D),T=this.g.mul(G),v=this.encodePoint(T),J=this.hashInt(v,P.pubBytes(),D).mul(P.priv()),k=G.add(J).umod(this.curve.n);return this.makeSignature({R:T,S:k,Rencoded:v})},R.prototype.verify=function(D,F,P){if(D=z(D),F=this.makeSignature(F),F.S().gte(F.eddsa.curve.n)||F.S().isNeg())return!1;var G=this.keyFromPublic(P),T=this.hashInt(F.Rencoded(),G.pubBytes(),D),v=this.g.mul(F.S()),J=F.R().add(G.pub().mul(T));return J.eq(v)},R.prototype.hashInt=function(){var D=this.hash();for(var F=0;F{var V=K;V.version=OB().version,V.utils=_V(),V.rand=n9(),V.curve=r9(),V.curves=x2(),V.ec=EB(),V.eddsa=vB()}),fB=D0((K,V)=>{(function(Q,U){function H(L,O){if(!L)throw Error(O||"Assertion failed")}function Y(L,O){L.super_=O;var X=function(){};X.prototype=O.prototype,L.prototype=new X,L.prototype.constructor=L}function z(L,O,X){if(z.isBN(L))return L;if(this.negative=0,this.words=null,this.length=0,this.red=null,L!==null){if(O==="le"||O==="be")X=O,O=10;this._init(L||0,O||10,X||"be")}}if(typeof Q==="object")Q.exports=z;else U.BN=z;z.BN=z,z.wordSize=26;var M;try{if(typeof window<"u"&&typeof window.Buffer<"u")M=window.Buffer;else M=(cK(),D1(pK)).Buffer}catch(L){}z.isBN=function(L){if(L instanceof z)return!0;return L!==null&&typeof L==="object"&&L.constructor.wordSize===z.wordSize&&Array.isArray(L.words)},z.max=function(L,O){if(L.cmp(O)>0)return L;return O},z.min=function(L,O){if(L.cmp(O)<0)return L;return O},z.prototype._init=function(L,O,X){if(typeof L==="number")return this._initNumber(L,O,X);if(typeof L==="object")return this._initArray(L,O,X);if(O==="hex")O=16;H(O===(O|0)&&O>=2&&O<=36),L=L.toString().replace(/\s+/g,"");var q=0;if(L[0]==="-")q++,this.negative=1;if(q=0;q-=3)if(C=L[q]|L[q-1]<<8|L[q-2]<<16,this.words[W]|=C<>>26-I&67108863,I+=24,I>=26)I-=26,W++}else if(X==="le"){for(q=0,W=0;q>>26-I&67108863,I+=24,I>=26)I-=26,W++}return this.strip()};function A(L,O){var X=L.charCodeAt(O);if(X>=65&&X<=70)return X-55;else if(X>=97&&X<=102)return X-87;else return X-48&15}function R(L,O,X){var q=A(L,X);if(X-1>=O)q|=A(L,X-1)<<4;return q}z.prototype._parseHex=function(L,O,X){this.length=Math.ceil((L.length-O)/6),this.words=Array(this.length);for(var q=0;q=O;q-=2)if(I=R(L,O,q)<=18)W-=18,C+=1,this.words[C]|=I>>>26;else W+=8;else{var $=L.length-O;for(q=$%2===0?O+1:O;q=18)W-=18,C+=1,this.words[C]|=I>>>26;else W+=8}this.strip()};function D(L,O,X,q){var W=0,C=Math.min(L.length,X);for(var I=O;I=49)W+=$-49+10;else if($>=17)W+=$-17+10;else W+=$}return W}z.prototype._parseBase=function(L,O,X){this.words=[0],this.length=1;for(var q=0,W=1;W<=67108863;W*=O)q++;q--,W=W/O|0;var C=L.length-X,I=C%q,$=Math.min(C,C-I)+X,Z=0;for(var S=X;S<$;S+=q)if(Z=D(L,S,S+q,O),this.imuln(W),this.words[0]+Z<67108864)this.words[0]+=Z;else this._iaddn(Z);if(I!==0){var B=1;Z=D(L,S,L.length,O);for(S=0;S1&&this.words[this.length-1]===0)this.length--;return this._normSign()},z.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},z.prototype.inspect=function(){return(this.red?""};var F=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],P=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],G=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(z.prototype.toString=function(L,O){L=L||10,O=O|0||1;var X;if(L===16||L==="hex"){X="";var q=0,W=0;for(var C=0;C>>24-q&16777215,q+=2,q>=26)q-=26,C--;if(W!==0||C!==this.length-1)X=F[6-$.length]+$+X;else X=$+X}if(W!==0)X=W.toString(16)+X;while(X.length%O!==0)X="0"+X;if(this.negative!==0)X="-"+X;return X}if(L===(L|0)&&L>=2&&L<=36){var Z=P[L],S=G[L];X="";var B=this.clone();B.negative=0;while(!B.isZero()){var E=B.modn(S).toString(L);if(B=B.idivn(S),!B.isZero())X=F[Z-E.length]+E+X;else X=E+X}if(this.isZero())X="0"+X;while(X.length%O!==0)X="0"+X;if(this.negative!==0)X="-"+X;return X}H(!1,"Base should be between 2 and 36")},z.prototype.toNumber=function(){var L=this.words[0];if(this.length===2)L+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)L+=4503599627370496+this.words[1]*67108864;else if(this.length>2)H(!1,"Number can only safely store up to 53 bits");return this.negative!==0?-L:L},z.prototype.toJSON=function(){return this.toString(16)},z.prototype.toBuffer=function(L,O){return H(typeof M<"u"),this.toArrayLike(M,L,O)},z.prototype.toArray=function(L,O){return this.toArrayLike(Array,L,O)},z.prototype.toArrayLike=function(L,O,X){var q=this.byteLength(),W=X||Math.max(1,q);H(q<=W,"byte array longer than desired length"),H(W>0,"Requested array length <= 0"),this.strip();var C=O==="le",I=new L(W),$,Z,S=this.clone();if(!C){for(Z=0;Z=4096)X+=13,O>>>=13;if(O>=64)X+=7,O>>>=7;if(O>=8)X+=4,O>>>=4;if(O>=2)X+=2,O>>>=2;return X+O};z.prototype._zeroBits=function(L){if(L===0)return 26;var O=L,X=0;if((O&8191)===0)X+=13,O>>>=13;if((O&127)===0)X+=7,O>>>=7;if((O&15)===0)X+=4,O>>>=4;if((O&3)===0)X+=2,O>>>=2;if((O&1)===0)X++;return X},z.prototype.bitLength=function(){var L=this.words[this.length-1],O=this._countBits(L);return(this.length-1)*26+O};function T(L){var O=Array(L.bitLength());for(var X=0;X>>W}return O}z.prototype.zeroBits=function(){if(this.isZero())return 0;var L=0;for(var O=0;OL.length)return this.clone().ior(L);return L.clone().ior(this)},z.prototype.uor=function(L){if(this.length>L.length)return this.clone().iuor(L);return L.clone().iuor(this)},z.prototype.iuand=function(L){var O;if(this.length>L.length)O=L;else O=this;for(var X=0;XL.length)return this.clone().iand(L);return L.clone().iand(this)},z.prototype.uand=function(L){if(this.length>L.length)return this.clone().iuand(L);return L.clone().iuand(this)},z.prototype.iuxor=function(L){var O,X;if(this.length>L.length)O=this,X=L;else O=L,X=this;for(var q=0;qL.length)return this.clone().ixor(L);return L.clone().ixor(this)},z.prototype.uxor=function(L){if(this.length>L.length)return this.clone().iuxor(L);return L.clone().iuxor(this)},z.prototype.inotn=function(L){H(typeof L==="number"&&L>=0);var O=Math.ceil(L/26)|0,X=L%26;if(this._expand(O),X>0)O--;for(var q=0;q0)this.words[q]=~this.words[q]&67108863>>26-X;return this.strip()},z.prototype.notn=function(L){return this.clone().inotn(L)},z.prototype.setn=function(L,O){H(typeof L==="number"&&L>=0);var X=L/26|0,q=L%26;if(this._expand(X+1),O)this.words[X]=this.words[X]|1<L.length)X=this,q=L;else X=L,q=this;var W=0;for(var C=0;C>>26;for(;W!==0&&C>>26;if(this.length=X.length,W!==0)this.words[this.length]=W,this.length++;else if(X!==this)for(;CL.length)return this.clone().iadd(L);return L.clone().iadd(this)},z.prototype.isub=function(L){if(L.negative!==0){L.negative=0;var O=this.iadd(L);return L.negative=1,O._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(L),this.negative=1,this._normSign();var X=this.cmp(L);if(X===0)return this.negative=0,this.length=1,this.words[0]=0,this;var q,W;if(X>0)q=this,W=L;else q=L,W=this;var C=0;for(var I=0;I>26,this.words[I]=O&67108863;for(;C!==0&&I>26,this.words[I]=O&67108863;if(C===0&&I>>26,E=Z&67108863,w=Math.min(S,O.length-1);for(var h=Math.max(0,S-L.length+1);h<=w;h++){var u=S-h|0;W=L.words[u]|0,C=O.words[h]|0,I=W*C+E,B+=I/67108864|0,E=I&67108863}X.words[S]=E|0,Z=B|0}if(Z!==0)X.words[S]=Z|0;else X.length--;return X.strip()}var J=function(L,O,X){var q=L.words,W=O.words,C=X.words,I=0,$,Z,S,B=q[0]|0,E=B&8191,w=B>>>13,h=q[1]|0,u=h&8191,t=h>>>13,F0=q[2]|0,K0=F0&8191,r=F0>>>13,A0=q[3]|0,e=A0&8191,Y0=A0>>>13,r0=q[4]|0,b=r0&8191,o=r0>>>13,R0=q[5]|0,Q0=R0&8191,H0=R0>>>13,N0=q[6]|0,d=N0&8191,a=N0>>>13,o0=q[7]|0,V0=o0&8191,W0=o0>>>13,H1=q[8]|0,G0=H1&8191,T0=H1>>>13,v1=q[9]|0,P0=v1&8191,E0=v1>>>13,i1=W[0]|0,x0=i1&8191,k0=i1>>>13,N1=W[1]|0,w0=N1&8191,f0=N1>>>13,zK=W[2]|0,c0=zK&8191,g0=zK>>>13,VK=W[3]|0,u0=VK&8191,y0=VK>>>13,g1=W[4]|0,s0=g1&8191,b0=g1>>>13,t1=W[5]|0,h0=t1&8191,g=t1>>>13,n=W[6]|0,U0=n&8191,O0=n>>>13,i0=W[7]|0,C0=i0&8191,B0=i0>>>13,k1=W[8]|0,l0=k1&8191,d0=k1>>>13,QK=W[9]|0,p0=QK&8191,_0=QK>>>13;X.negative=L.negative^O.negative,X.length=19,$=Math.imul(E,x0),Z=Math.imul(E,k0),Z=Z+Math.imul(w,x0)|0,S=Math.imul(w,k0);var P1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(P1>>>26)|0,P1&=67108863,$=Math.imul(u,x0),Z=Math.imul(u,k0),Z=Z+Math.imul(t,x0)|0,S=Math.imul(t,k0),$=$+Math.imul(E,w0)|0,Z=Z+Math.imul(E,f0)|0,Z=Z+Math.imul(w,w0)|0,S=S+Math.imul(w,f0)|0;var Z1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(Z1>>>26)|0,Z1&=67108863,$=Math.imul(K0,x0),Z=Math.imul(K0,k0),Z=Z+Math.imul(r,x0)|0,S=Math.imul(r,k0),$=$+Math.imul(u,w0)|0,Z=Z+Math.imul(u,f0)|0,Z=Z+Math.imul(t,w0)|0,S=S+Math.imul(t,f0)|0,$=$+Math.imul(E,c0)|0,Z=Z+Math.imul(E,g0)|0,Z=Z+Math.imul(w,c0)|0,S=S+Math.imul(w,g0)|0;var Y1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(Y1>>>26)|0,Y1&=67108863,$=Math.imul(e,x0),Z=Math.imul(e,k0),Z=Z+Math.imul(Y0,x0)|0,S=Math.imul(Y0,k0),$=$+Math.imul(K0,w0)|0,Z=Z+Math.imul(K0,f0)|0,Z=Z+Math.imul(r,w0)|0,S=S+Math.imul(r,f0)|0,$=$+Math.imul(u,c0)|0,Z=Z+Math.imul(u,g0)|0,Z=Z+Math.imul(t,c0)|0,S=S+Math.imul(t,g0)|0,$=$+Math.imul(E,u0)|0,Z=Z+Math.imul(E,y0)|0,Z=Z+Math.imul(w,u0)|0,S=S+Math.imul(w,y0)|0;var F1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(F1>>>26)|0,F1&=67108863,$=Math.imul(b,x0),Z=Math.imul(b,k0),Z=Z+Math.imul(o,x0)|0,S=Math.imul(o,k0),$=$+Math.imul(e,w0)|0,Z=Z+Math.imul(e,f0)|0,Z=Z+Math.imul(Y0,w0)|0,S=S+Math.imul(Y0,f0)|0,$=$+Math.imul(K0,c0)|0,Z=Z+Math.imul(K0,g0)|0,Z=Z+Math.imul(r,c0)|0,S=S+Math.imul(r,g0)|0,$=$+Math.imul(u,u0)|0,Z=Z+Math.imul(u,y0)|0,Z=Z+Math.imul(t,u0)|0,S=S+Math.imul(t,y0)|0,$=$+Math.imul(E,s0)|0,Z=Z+Math.imul(E,b0)|0,Z=Z+Math.imul(w,s0)|0,S=S+Math.imul(w,b0)|0;var A1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(A1>>>26)|0,A1&=67108863,$=Math.imul(Q0,x0),Z=Math.imul(Q0,k0),Z=Z+Math.imul(H0,x0)|0,S=Math.imul(H0,k0),$=$+Math.imul(b,w0)|0,Z=Z+Math.imul(b,f0)|0,Z=Z+Math.imul(o,w0)|0,S=S+Math.imul(o,f0)|0,$=$+Math.imul(e,c0)|0,Z=Z+Math.imul(e,g0)|0,Z=Z+Math.imul(Y0,c0)|0,S=S+Math.imul(Y0,g0)|0,$=$+Math.imul(K0,u0)|0,Z=Z+Math.imul(K0,y0)|0,Z=Z+Math.imul(r,u0)|0,S=S+Math.imul(r,y0)|0,$=$+Math.imul(u,s0)|0,Z=Z+Math.imul(u,b0)|0,Z=Z+Math.imul(t,s0)|0,S=S+Math.imul(t,b0)|0,$=$+Math.imul(E,h0)|0,Z=Z+Math.imul(E,g)|0,Z=Z+Math.imul(w,h0)|0,S=S+Math.imul(w,g)|0;var y1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(y1>>>26)|0,y1&=67108863,$=Math.imul(d,x0),Z=Math.imul(d,k0),Z=Z+Math.imul(a,x0)|0,S=Math.imul(a,k0),$=$+Math.imul(Q0,w0)|0,Z=Z+Math.imul(Q0,f0)|0,Z=Z+Math.imul(H0,w0)|0,S=S+Math.imul(H0,f0)|0,$=$+Math.imul(b,c0)|0,Z=Z+Math.imul(b,g0)|0,Z=Z+Math.imul(o,c0)|0,S=S+Math.imul(o,g0)|0,$=$+Math.imul(e,u0)|0,Z=Z+Math.imul(e,y0)|0,Z=Z+Math.imul(Y0,u0)|0,S=S+Math.imul(Y0,y0)|0,$=$+Math.imul(K0,s0)|0,Z=Z+Math.imul(K0,b0)|0,Z=Z+Math.imul(r,s0)|0,S=S+Math.imul(r,b0)|0,$=$+Math.imul(u,h0)|0,Z=Z+Math.imul(u,g)|0,Z=Z+Math.imul(t,h0)|0,S=S+Math.imul(t,g)|0,$=$+Math.imul(E,U0)|0,Z=Z+Math.imul(E,O0)|0,Z=Z+Math.imul(w,U0)|0,S=S+Math.imul(w,O0)|0;var h1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(h1>>>26)|0,h1&=67108863,$=Math.imul(V0,x0),Z=Math.imul(V0,k0),Z=Z+Math.imul(W0,x0)|0,S=Math.imul(W0,k0),$=$+Math.imul(d,w0)|0,Z=Z+Math.imul(d,f0)|0,Z=Z+Math.imul(a,w0)|0,S=S+Math.imul(a,f0)|0,$=$+Math.imul(Q0,c0)|0,Z=Z+Math.imul(Q0,g0)|0,Z=Z+Math.imul(H0,c0)|0,S=S+Math.imul(H0,g0)|0,$=$+Math.imul(b,u0)|0,Z=Z+Math.imul(b,y0)|0,Z=Z+Math.imul(o,u0)|0,S=S+Math.imul(o,y0)|0,$=$+Math.imul(e,s0)|0,Z=Z+Math.imul(e,b0)|0,Z=Z+Math.imul(Y0,s0)|0,S=S+Math.imul(Y0,b0)|0,$=$+Math.imul(K0,h0)|0,Z=Z+Math.imul(K0,g)|0,Z=Z+Math.imul(r,h0)|0,S=S+Math.imul(r,g)|0,$=$+Math.imul(u,U0)|0,Z=Z+Math.imul(u,O0)|0,Z=Z+Math.imul(t,U0)|0,S=S+Math.imul(t,O0)|0,$=$+Math.imul(E,C0)|0,Z=Z+Math.imul(E,B0)|0,Z=Z+Math.imul(w,C0)|0,S=S+Math.imul(w,B0)|0;var p1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(p1>>>26)|0,p1&=67108863,$=Math.imul(G0,x0),Z=Math.imul(G0,k0),Z=Z+Math.imul(T0,x0)|0,S=Math.imul(T0,k0),$=$+Math.imul(V0,w0)|0,Z=Z+Math.imul(V0,f0)|0,Z=Z+Math.imul(W0,w0)|0,S=S+Math.imul(W0,f0)|0,$=$+Math.imul(d,c0)|0,Z=Z+Math.imul(d,g0)|0,Z=Z+Math.imul(a,c0)|0,S=S+Math.imul(a,g0)|0,$=$+Math.imul(Q0,u0)|0,Z=Z+Math.imul(Q0,y0)|0,Z=Z+Math.imul(H0,u0)|0,S=S+Math.imul(H0,y0)|0,$=$+Math.imul(b,s0)|0,Z=Z+Math.imul(b,b0)|0,Z=Z+Math.imul(o,s0)|0,S=S+Math.imul(o,b0)|0,$=$+Math.imul(e,h0)|0,Z=Z+Math.imul(e,g)|0,Z=Z+Math.imul(Y0,h0)|0,S=S+Math.imul(Y0,g)|0,$=$+Math.imul(K0,U0)|0,Z=Z+Math.imul(K0,O0)|0,Z=Z+Math.imul(r,U0)|0,S=S+Math.imul(r,O0)|0,$=$+Math.imul(u,C0)|0,Z=Z+Math.imul(u,B0)|0,Z=Z+Math.imul(t,C0)|0,S=S+Math.imul(t,B0)|0,$=$+Math.imul(E,l0)|0,Z=Z+Math.imul(E,d0)|0,Z=Z+Math.imul(w,l0)|0,S=S+Math.imul(w,d0)|0;var c1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(c1>>>26)|0,c1&=67108863,$=Math.imul(P0,x0),Z=Math.imul(P0,k0),Z=Z+Math.imul(E0,x0)|0,S=Math.imul(E0,k0),$=$+Math.imul(G0,w0)|0,Z=Z+Math.imul(G0,f0)|0,Z=Z+Math.imul(T0,w0)|0,S=S+Math.imul(T0,f0)|0,$=$+Math.imul(V0,c0)|0,Z=Z+Math.imul(V0,g0)|0,Z=Z+Math.imul(W0,c0)|0,S=S+Math.imul(W0,g0)|0,$=$+Math.imul(d,u0)|0,Z=Z+Math.imul(d,y0)|0,Z=Z+Math.imul(a,u0)|0,S=S+Math.imul(a,y0)|0,$=$+Math.imul(Q0,s0)|0,Z=Z+Math.imul(Q0,b0)|0,Z=Z+Math.imul(H0,s0)|0,S=S+Math.imul(H0,b0)|0,$=$+Math.imul(b,h0)|0,Z=Z+Math.imul(b,g)|0,Z=Z+Math.imul(o,h0)|0,S=S+Math.imul(o,g)|0,$=$+Math.imul(e,U0)|0,Z=Z+Math.imul(e,O0)|0,Z=Z+Math.imul(Y0,U0)|0,S=S+Math.imul(Y0,O0)|0,$=$+Math.imul(K0,C0)|0,Z=Z+Math.imul(K0,B0)|0,Z=Z+Math.imul(r,C0)|0,S=S+Math.imul(r,B0)|0,$=$+Math.imul(u,l0)|0,Z=Z+Math.imul(u,d0)|0,Z=Z+Math.imul(t,l0)|0,S=S+Math.imul(t,d0)|0,$=$+Math.imul(E,p0)|0,Z=Z+Math.imul(E,_0)|0,Z=Z+Math.imul(w,p0)|0,S=S+Math.imul(w,_0)|0;var u1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(u1>>>26)|0,u1&=67108863,$=Math.imul(P0,w0),Z=Math.imul(P0,f0),Z=Z+Math.imul(E0,w0)|0,S=Math.imul(E0,f0),$=$+Math.imul(G0,c0)|0,Z=Z+Math.imul(G0,g0)|0,Z=Z+Math.imul(T0,c0)|0,S=S+Math.imul(T0,g0)|0,$=$+Math.imul(V0,u0)|0,Z=Z+Math.imul(V0,y0)|0,Z=Z+Math.imul(W0,u0)|0,S=S+Math.imul(W0,y0)|0,$=$+Math.imul(d,s0)|0,Z=Z+Math.imul(d,b0)|0,Z=Z+Math.imul(a,s0)|0,S=S+Math.imul(a,b0)|0,$=$+Math.imul(Q0,h0)|0,Z=Z+Math.imul(Q0,g)|0,Z=Z+Math.imul(H0,h0)|0,S=S+Math.imul(H0,g)|0,$=$+Math.imul(b,U0)|0,Z=Z+Math.imul(b,O0)|0,Z=Z+Math.imul(o,U0)|0,S=S+Math.imul(o,O0)|0,$=$+Math.imul(e,C0)|0,Z=Z+Math.imul(e,B0)|0,Z=Z+Math.imul(Y0,C0)|0,S=S+Math.imul(Y0,B0)|0,$=$+Math.imul(K0,l0)|0,Z=Z+Math.imul(K0,d0)|0,Z=Z+Math.imul(r,l0)|0,S=S+Math.imul(r,d0)|0,$=$+Math.imul(u,p0)|0,Z=Z+Math.imul(u,_0)|0,Z=Z+Math.imul(t,p0)|0,S=S+Math.imul(t,_0)|0;var b1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(b1>>>26)|0,b1&=67108863,$=Math.imul(P0,c0),Z=Math.imul(P0,g0),Z=Z+Math.imul(E0,c0)|0,S=Math.imul(E0,g0),$=$+Math.imul(G0,u0)|0,Z=Z+Math.imul(G0,y0)|0,Z=Z+Math.imul(T0,u0)|0,S=S+Math.imul(T0,y0)|0,$=$+Math.imul(V0,s0)|0,Z=Z+Math.imul(V0,b0)|0,Z=Z+Math.imul(W0,s0)|0,S=S+Math.imul(W0,b0)|0,$=$+Math.imul(d,h0)|0,Z=Z+Math.imul(d,g)|0,Z=Z+Math.imul(a,h0)|0,S=S+Math.imul(a,g)|0,$=$+Math.imul(Q0,U0)|0,Z=Z+Math.imul(Q0,O0)|0,Z=Z+Math.imul(H0,U0)|0,S=S+Math.imul(H0,O0)|0,$=$+Math.imul(b,C0)|0,Z=Z+Math.imul(b,B0)|0,Z=Z+Math.imul(o,C0)|0,S=S+Math.imul(o,B0)|0,$=$+Math.imul(e,l0)|0,Z=Z+Math.imul(e,d0)|0,Z=Z+Math.imul(Y0,l0)|0,S=S+Math.imul(Y0,d0)|0,$=$+Math.imul(K0,p0)|0,Z=Z+Math.imul(K0,_0)|0,Z=Z+Math.imul(r,p0)|0,S=S+Math.imul(r,_0)|0;var l1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(l1>>>26)|0,l1&=67108863,$=Math.imul(P0,u0),Z=Math.imul(P0,y0),Z=Z+Math.imul(E0,u0)|0,S=Math.imul(E0,y0),$=$+Math.imul(G0,s0)|0,Z=Z+Math.imul(G0,b0)|0,Z=Z+Math.imul(T0,s0)|0,S=S+Math.imul(T0,b0)|0,$=$+Math.imul(V0,h0)|0,Z=Z+Math.imul(V0,g)|0,Z=Z+Math.imul(W0,h0)|0,S=S+Math.imul(W0,g)|0,$=$+Math.imul(d,U0)|0,Z=Z+Math.imul(d,O0)|0,Z=Z+Math.imul(a,U0)|0,S=S+Math.imul(a,O0)|0,$=$+Math.imul(Q0,C0)|0,Z=Z+Math.imul(Q0,B0)|0,Z=Z+Math.imul(H0,C0)|0,S=S+Math.imul(H0,B0)|0,$=$+Math.imul(b,l0)|0,Z=Z+Math.imul(b,d0)|0,Z=Z+Math.imul(o,l0)|0,S=S+Math.imul(o,d0)|0,$=$+Math.imul(e,p0)|0,Z=Z+Math.imul(e,_0)|0,Z=Z+Math.imul(Y0,p0)|0,S=S+Math.imul(Y0,_0)|0;var LK=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(LK>>>26)|0,LK&=67108863,$=Math.imul(P0,s0),Z=Math.imul(P0,b0),Z=Z+Math.imul(E0,s0)|0,S=Math.imul(E0,b0),$=$+Math.imul(G0,h0)|0,Z=Z+Math.imul(G0,g)|0,Z=Z+Math.imul(T0,h0)|0,S=S+Math.imul(T0,g)|0,$=$+Math.imul(V0,U0)|0,Z=Z+Math.imul(V0,O0)|0,Z=Z+Math.imul(W0,U0)|0,S=S+Math.imul(W0,O0)|0,$=$+Math.imul(d,C0)|0,Z=Z+Math.imul(d,B0)|0,Z=Z+Math.imul(a,C0)|0,S=S+Math.imul(a,B0)|0,$=$+Math.imul(Q0,l0)|0,Z=Z+Math.imul(Q0,d0)|0,Z=Z+Math.imul(H0,l0)|0,S=S+Math.imul(H0,d0)|0,$=$+Math.imul(b,p0)|0,Z=Z+Math.imul(b,_0)|0,Z=Z+Math.imul(o,p0)|0,S=S+Math.imul(o,_0)|0;var d1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(d1>>>26)|0,d1&=67108863,$=Math.imul(P0,h0),Z=Math.imul(P0,g),Z=Z+Math.imul(E0,h0)|0,S=Math.imul(E0,g),$=$+Math.imul(G0,U0)|0,Z=Z+Math.imul(G0,O0)|0,Z=Z+Math.imul(T0,U0)|0,S=S+Math.imul(T0,O0)|0,$=$+Math.imul(V0,C0)|0,Z=Z+Math.imul(V0,B0)|0,Z=Z+Math.imul(W0,C0)|0,S=S+Math.imul(W0,B0)|0,$=$+Math.imul(d,l0)|0,Z=Z+Math.imul(d,d0)|0,Z=Z+Math.imul(a,l0)|0,S=S+Math.imul(a,d0)|0,$=$+Math.imul(Q0,p0)|0,Z=Z+Math.imul(Q0,_0)|0,Z=Z+Math.imul(H0,p0)|0,S=S+Math.imul(H0,_0)|0;var s1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(s1>>>26)|0,s1&=67108863,$=Math.imul(P0,U0),Z=Math.imul(P0,O0),Z=Z+Math.imul(E0,U0)|0,S=Math.imul(E0,O0),$=$+Math.imul(G0,C0)|0,Z=Z+Math.imul(G0,B0)|0,Z=Z+Math.imul(T0,C0)|0,S=S+Math.imul(T0,B0)|0,$=$+Math.imul(V0,l0)|0,Z=Z+Math.imul(V0,d0)|0,Z=Z+Math.imul(W0,l0)|0,S=S+Math.imul(W0,d0)|0,$=$+Math.imul(d,p0)|0,Z=Z+Math.imul(d,_0)|0,Z=Z+Math.imul(a,p0)|0,S=S+Math.imul(a,_0)|0;var o1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(o1>>>26)|0,o1&=67108863,$=Math.imul(P0,C0),Z=Math.imul(P0,B0),Z=Z+Math.imul(E0,C0)|0,S=Math.imul(E0,B0),$=$+Math.imul(G0,l0)|0,Z=Z+Math.imul(G0,d0)|0,Z=Z+Math.imul(T0,l0)|0,S=S+Math.imul(T0,d0)|0,$=$+Math.imul(V0,p0)|0,Z=Z+Math.imul(V0,_0)|0,Z=Z+Math.imul(W0,p0)|0,S=S+Math.imul(W0,_0)|0;var m1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(m1>>>26)|0,m1&=67108863,$=Math.imul(P0,l0),Z=Math.imul(P0,d0),Z=Z+Math.imul(E0,l0)|0,S=Math.imul(E0,d0),$=$+Math.imul(G0,p0)|0,Z=Z+Math.imul(G0,_0)|0,Z=Z+Math.imul(T0,p0)|0,S=S+Math.imul(T0,_0)|0;var ZK=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(ZK>>>26)|0,ZK&=67108863,$=Math.imul(P0,p0),Z=Math.imul(P0,_0),Z=Z+Math.imul(E0,p0)|0,S=Math.imul(E0,_0);var n1=(I+$|0)+((Z&8191)<<13)|0;if(I=(S+(Z>>>13)|0)+(n1>>>26)|0,n1&=67108863,C[0]=P1,C[1]=Z1,C[2]=Y1,C[3]=F1,C[4]=A1,C[5]=y1,C[6]=h1,C[7]=p1,C[8]=c1,C[9]=u1,C[10]=b1,C[11]=l1,C[12]=LK,C[13]=d1,C[14]=s1,C[15]=o1,C[16]=m1,C[17]=ZK,C[18]=n1,I!==0)C[19]=I,X.length++;return X};if(!Math.imul)J=v;function k(L,O,X){X.negative=O.negative^L.negative,X.length=L.length+O.length;var q=0,W=0;for(var C=0;C>>26)|0,W+=I>>>26,I&=67108863}X.words[C]=$,q=I,I=W}if(q!==0)X.words[C]=q;else X.length--;return X.strip()}function f(L,O,X){var q=new j;return q.mulp(L,O,X)}z.prototype.mulTo=function(L,O){var X,q=this.length+L.length;if(this.length===10&&L.length===10)X=J(this,L,O);else if(q<63)X=v(this,L,O);else if(q<1024)X=k(this,L,O);else X=f(this,L,O);return X};function j(L,O){this.x=L,this.y=O}j.prototype.makeRBT=function(L){var O=Array(L),X=z.prototype._countBits(L)-1;for(var q=0;q>=1;return q},j.prototype.permute=function(L,O,X,q,W,C){for(var I=0;I>>1)W++;return 1<>>13,X[2*C+1]=W&8191,W=W>>>13;for(C=2*O;C>=26,O+=q/67108864|0,O+=W>>>26,this.words[X]=W&67108863}if(O!==0)this.words[X]=O,this.length++;return this.length=L===0?1:this.length,this},z.prototype.muln=function(L){return this.clone().imuln(L)},z.prototype.sqr=function(){return this.mul(this)},z.prototype.isqr=function(){return this.imul(this.clone())},z.prototype.pow=function(L){var O=T(L);if(O.length===0)return new z(1);var X=this;for(var q=0;q=0);var O=L%26,X=(L-O)/26,q=67108863>>>26-O<<26-O,W;if(O!==0){var C=0;for(W=0;W>>26-O}if(C)this.words[W]=C,this.length++}if(X!==0){for(W=this.length-1;W>=0;W--)this.words[W+X]=this.words[W];for(W=0;W=0);var q;if(O)q=(O-O%26)/26;else q=0;var W=L%26,C=Math.min((L-W)/26,this.length),I=67108863^67108863>>>W<C){this.length-=C;for(Z=0;Z=0&&(S!==0||Z>=q);Z--){var B=this.words[Z]|0;this.words[Z]=S<<26-W|B>>>W,S=B&I}if($&&S!==0)$.words[$.length++]=S;if(this.length===0)this.words[0]=0,this.length=1;return this.strip()},z.prototype.ishrn=function(L,O,X){return H(this.negative===0),this.iushrn(L,O,X)},z.prototype.shln=function(L){return this.clone().ishln(L)},z.prototype.ushln=function(L){return this.clone().iushln(L)},z.prototype.shrn=function(L){return this.clone().ishrn(L)},z.prototype.ushrn=function(L){return this.clone().iushrn(L)},z.prototype.testn=function(L){H(typeof L==="number"&&L>=0);var O=L%26,X=(L-O)/26,q=1<=0);var O=L%26,X=(L-O)/26;if(H(this.negative===0,"imaskn works only with positive numbers"),this.length<=X)return this;if(O!==0)X++;if(this.length=Math.min(X,this.length),O!==0){var q=67108863^67108863>>>O<=67108864;O++)if(this.words[O]-=67108864,O===this.length-1)this.words[O+1]=1;else this.words[O+1]++;return this.length=Math.max(this.length,O+1),this},z.prototype.isubn=function(L){if(H(typeof L==="number"),H(L<67108864),L<0)return this.iaddn(-L);if(this.negative!==0)return this.negative=0,this.iaddn(L),this.negative=1,this;if(this.words[0]-=L,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var O=0;O>26)-($/67108864|0),this.words[W+X]=C&67108863}for(;W>26,this.words[W+X]=C&67108863;if(I===0)return this.strip();H(I===-1),I=0;for(W=0;W>26,this.words[W]=C&67108863;return this.negative=1,this.strip()},z.prototype._wordDiv=function(L,O){var X=this.length-L.length,q=this.clone(),W=L,C=W.words[W.length-1]|0,I=this._countBits(C);if(X=26-I,X!==0)W=W.ushln(X),q.iushln(X),C=W.words[W.length-1]|0;var $=q.length-W.length,Z;if(O!=="mod"){Z=new z(null),Z.length=$+1,Z.words=Array(Z.length);for(var S=0;S=0;E--){var w=(q.words[W.length+E]|0)*67108864+(q.words[W.length+E-1]|0);w=Math.min(w/C|0,67108863),q._ishlnsubmul(W,w,E);while(q.negative!==0)if(w--,q.negative=0,q._ishlnsubmul(W,1,E),!q.isZero())q.negative^=1;if(Z)Z.words[E]=w}if(Z)Z.strip();if(q.strip(),O!=="div"&&X!==0)q.iushrn(X);return{div:Z||null,mod:q}},z.prototype.divmod=function(L,O,X){if(H(!L.isZero()),this.isZero())return{div:new z(0),mod:new z(0)};var q,W,C;if(this.negative!==0&&L.negative===0){if(C=this.neg().divmod(L,O),O!=="mod")q=C.div.neg();if(O!=="div"){if(W=C.mod.neg(),X&&W.negative!==0)W.iadd(L)}return{div:q,mod:W}}if(this.negative===0&&L.negative!==0){if(C=this.divmod(L.neg(),O),O!=="mod")q=C.div.neg();return{div:q,mod:C.mod}}if((this.negative&L.negative)!==0){if(C=this.neg().divmod(L.neg(),O),O!=="div"){if(W=C.mod.neg(),X&&W.negative!==0)W.isub(L)}return{div:C.div,mod:W}}if(L.length>this.length||this.cmp(L)<0)return{div:new z(0),mod:this};if(L.length===1){if(O==="div")return{div:this.divn(L.words[0]),mod:null};if(O==="mod")return{div:null,mod:new z(this.modn(L.words[0]))};return{div:this.divn(L.words[0]),mod:new z(this.modn(L.words[0]))}}return this._wordDiv(L,O)},z.prototype.div=function(L){return this.divmod(L,"div",!1).div},z.prototype.mod=function(L){return this.divmod(L,"mod",!1).mod},z.prototype.umod=function(L){return this.divmod(L,"mod",!0).mod},z.prototype.divRound=function(L){var O=this.divmod(L);if(O.mod.isZero())return O.div;var X=O.div.negative!==0?O.mod.isub(L):O.mod,q=L.ushrn(1),W=L.andln(1),C=X.cmp(q);if(C<0||W===1&&C===0)return O.div;return O.div.negative!==0?O.div.isubn(1):O.div.iaddn(1)},z.prototype.modn=function(L){H(L<=67108863);var O=67108864%L,X=0;for(var q=this.length-1;q>=0;q--)X=(O*X+(this.words[q]|0))%L;return X},z.prototype.idivn=function(L){H(L<=67108863);var O=0;for(var X=this.length-1;X>=0;X--){var q=(this.words[X]|0)+O*67108864;this.words[X]=q/L|0,O=q%L}return this.strip()},z.prototype.divn=function(L){return this.clone().idivn(L)},z.prototype.egcd=function(L){H(L.negative===0),H(!L.isZero());var O=this,X=L.clone();if(O.negative!==0)O=O.umod(L);else O=O.clone();var q=new z(1),W=new z(0),C=new z(0),I=new z(1),$=0;while(O.isEven()&&X.isEven())O.iushrn(1),X.iushrn(1),++$;var Z=X.clone(),S=O.clone();while(!O.isZero()){for(var B=0,E=1;(O.words[0]&E)===0&&B<26;++B,E<<=1);if(B>0){O.iushrn(B);while(B-- >0){if(q.isOdd()||W.isOdd())q.iadd(Z),W.isub(S);q.iushrn(1),W.iushrn(1)}}for(var w=0,h=1;(X.words[0]&h)===0&&w<26;++w,h<<=1);if(w>0){X.iushrn(w);while(w-- >0){if(C.isOdd()||I.isOdd())C.iadd(Z),I.isub(S);C.iushrn(1),I.iushrn(1)}}if(O.cmp(X)>=0)O.isub(X),q.isub(C),W.isub(I);else X.isub(O),C.isub(q),I.isub(W)}return{a:C,b:I,gcd:X.iushln($)}},z.prototype._invmp=function(L){H(L.negative===0),H(!L.isZero());var O=this,X=L.clone();if(O.negative!==0)O=O.umod(L);else O=O.clone();var q=new z(1),W=new z(0),C=X.clone();while(O.cmpn(1)>0&&X.cmpn(1)>0){for(var I=0,$=1;(O.words[0]&$)===0&&I<26;++I,$<<=1);if(I>0){O.iushrn(I);while(I-- >0){if(q.isOdd())q.iadd(C);q.iushrn(1)}}for(var Z=0,S=1;(X.words[0]&S)===0&&Z<26;++Z,S<<=1);if(Z>0){X.iushrn(Z);while(Z-- >0){if(W.isOdd())W.iadd(C);W.iushrn(1)}}if(O.cmp(X)>=0)O.isub(X),q.isub(W);else X.isub(O),W.isub(q)}var B;if(O.cmpn(1)===0)B=q;else B=W;if(B.cmpn(0)<0)B.iadd(L);return B},z.prototype.gcd=function(L){if(this.isZero())return L.abs();if(L.isZero())return this.abs();var O=this.clone(),X=L.clone();O.negative=0,X.negative=0;for(var q=0;O.isEven()&&X.isEven();q++)O.iushrn(1),X.iushrn(1);do{while(O.isEven())O.iushrn(1);while(X.isEven())X.iushrn(1);var W=O.cmp(X);if(W<0){var C=O;O=X,X=C}else if(W===0||X.cmpn(1)===0)break;O.isub(X)}while(!0);return X.iushln(q)},z.prototype.invm=function(L){return this.egcd(L).a.umod(L)},z.prototype.isEven=function(){return(this.words[0]&1)===0},z.prototype.isOdd=function(){return(this.words[0]&1)===1},z.prototype.andln=function(L){return this.words[0]&L},z.prototype.bincn=function(L){H(typeof L==="number");var O=L%26,X=(L-O)/26,q=1<>>26,I&=67108863,this.words[C]=I}if(W!==0)this.words[C]=W,this.length++;return this},z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},z.prototype.cmpn=function(L){var O=L<0;if(this.negative!==0&&!O)return-1;if(this.negative===0&&O)return 1;this.strip();var X;if(this.length>1)X=1;else{if(O)L=-L;H(L<=67108863,"Number is too big");var q=this.words[0]|0;X=q===L?0:qL.length)return 1;if(this.length=0;X--){var q=this.words[X]|0,W=L.words[X]|0;if(q===W)continue;if(qW)O=1;break}return O},z.prototype.gtn=function(L){return this.cmpn(L)===1},z.prototype.gt=function(L){return this.cmp(L)===1},z.prototype.gten=function(L){return this.cmpn(L)>=0},z.prototype.gte=function(L){return this.cmp(L)>=0},z.prototype.ltn=function(L){return this.cmpn(L)===-1},z.prototype.lt=function(L){return this.cmp(L)===-1},z.prototype.lten=function(L){return this.cmpn(L)<=0},z.prototype.lte=function(L){return this.cmp(L)<=0},z.prototype.eqn=function(L){return this.cmpn(L)===0},z.prototype.eq=function(L){return this.cmp(L)===0},z.red=function(L){return new s(L)},z.prototype.toRed=function(L){return H(!this.red,"Already a number in reduction context"),H(this.negative===0,"red works only with positives"),L.convertTo(this)._forceRed(L)},z.prototype.fromRed=function(){return H(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},z.prototype._forceRed=function(L){return this.red=L,this},z.prototype.forceRed=function(L){return H(!this.red,"Already a number in reduction context"),this._forceRed(L)},z.prototype.redAdd=function(L){return H(this.red,"redAdd works only with red numbers"),this.red.add(this,L)},z.prototype.redIAdd=function(L){return H(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,L)},z.prototype.redSub=function(L){return H(this.red,"redSub works only with red numbers"),this.red.sub(this,L)},z.prototype.redISub=function(L){return H(this.red,"redISub works only with red numbers"),this.red.isub(this,L)},z.prototype.redShl=function(L){return H(this.red,"redShl works only with red numbers"),this.red.shl(this,L)},z.prototype.redMul=function(L){return H(this.red,"redMul works only with red numbers"),this.red._verify2(this,L),this.red.mul(this,L)},z.prototype.redIMul=function(L){return H(this.red,"redMul works only with red numbers"),this.red._verify2(this,L),this.red.imul(this,L)},z.prototype.redSqr=function(){return H(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},z.prototype.redISqr=function(){return H(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},z.prototype.redSqrt=function(){return H(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},z.prototype.redInvm=function(){return H(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},z.prototype.redNeg=function(){return H(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},z.prototype.redPow=function(L){return H(this.red&&!L.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,L)};var _={k256:null,p224:null,p192:null,p25519:null};function p(L,O){this.name=L,this.p=new z(O,16),this.n=this.p.bitLength(),this.k=new z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}p.prototype._tmp=function(){var L=new z(null);return L.words=Array(Math.ceil(this.n/13)),L},p.prototype.ireduce=function(L){var O=L,X;do this.split(O,this.tmp),O=this.imulK(O),O=O.iadd(this.tmp),X=O.bitLength();while(X>this.n);var q=X0)O.isub(this.p);else if(O.strip!==void 0)O.strip();else O._strip();return O},p.prototype.split=function(L,O){L.iushrn(this.n,0,O)},p.prototype.imulK=function(L){return L.imul(this.k)};function N(){p.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}Y(N,p),N.prototype.split=function(L,O){var X=4194303,q=Math.min(L.length,9);for(var W=0;W>>22,C=I}if(C>>>=22,L.words[W-10]=C,C===0&&L.length>10)L.length-=10;else L.length-=9},N.prototype.imulK=function(L){L.words[L.length]=0,L.words[L.length+1]=0,L.length+=2;var O=0;for(var X=0;X>>=26,L.words[X]=W,O=q}if(O!==0)L.words[L.length++]=O;return L},z._prime=function(L){if(_[L])return _[L];var O;if(L==="k256")O=new N;else if(L==="p224")O=new m;else if(L==="p192")O=new z0;else if(L==="p25519")O=new L0;else throw Error("Unknown prime "+L);return _[L]=O,O};function s(L){if(typeof L==="string"){var O=z._prime(L);this.m=O.p,this.prime=O}else H(L.gtn(1),"modulus must be greater than 1"),this.m=L,this.prime=null}s.prototype._verify1=function(L){H(L.negative===0,"red works only with positives"),H(L.red,"red works only with red numbers")},s.prototype._verify2=function(L,O){H((L.negative|O.negative)===0,"red works only with positives"),H(L.red&&L.red===O.red,"red works only with red numbers")},s.prototype.imod=function(L){if(this.prime)return this.prime.ireduce(L)._forceRed(this);return L.umod(this.m)._forceRed(this)},s.prototype.neg=function(L){if(L.isZero())return L.clone();return this.m.sub(L)._forceRed(this)},s.prototype.add=function(L,O){this._verify2(L,O);var X=L.add(O);if(X.cmp(this.m)>=0)X.isub(this.m);return X._forceRed(this)},s.prototype.iadd=function(L,O){this._verify2(L,O);var X=L.iadd(O);if(X.cmp(this.m)>=0)X.isub(this.m);return X},s.prototype.sub=function(L,O){this._verify2(L,O);var X=L.sub(O);if(X.cmpn(0)<0)X.iadd(this.m);return X._forceRed(this)},s.prototype.isub=function(L,O){this._verify2(L,O);var X=L.isub(O);if(X.cmpn(0)<0)X.iadd(this.m);return X},s.prototype.shl=function(L,O){return this._verify1(L),this.imod(L.ushln(O))},s.prototype.imul=function(L,O){return this._verify2(L,O),this.imod(L.imul(O))},s.prototype.mul=function(L,O){return this._verify2(L,O),this.imod(L.mul(O))},s.prototype.isqr=function(L){return this.imul(L,L.clone())},s.prototype.sqr=function(L){return this.mul(L,L)},s.prototype.sqrt=function(L){if(L.isZero())return L.clone();var O=this.m.andln(3);if(H(O%2===1),O===3){var X=this.m.add(new z(1)).iushrn(2);return this.pow(L,X)}var q=this.m.subn(1),W=0;while(!q.isZero()&&q.andln(1)===0)W++,q.iushrn(1);H(!q.isZero());var C=new z(1).toRed(this),I=C.redNeg(),$=this.m.subn(1).iushrn(1),Z=this.m.bitLength();Z=new z(2*Z*Z).toRed(this);while(this.pow(Z,$).cmp(I)!==0)Z.redIAdd(I);var S=this.pow(Z,q),B=this.pow(L,q.addn(1).iushrn(1)),E=this.pow(L,q),w=W;while(E.cmp(C)!==0){var h=E;for(var u=0;h.cmp(C)!==0;u++)h=h.redSqr();H(u=0;W--){var S=O.words[W];for(var B=Z-1;B>=0;B--){var E=S>>B&1;if(C!==q[0])C=this.sqr(C);if(E===0&&I===0){$=0;continue}if(I<<=1,I|=E,$++,$!==X&&(W!==0||B!==0))continue;C=this.mul(C,q[I]),$=0,I=0}Z=26}return C},s.prototype.convertTo=function(L){var O=L.umod(this.m);return O===L?O.clone():O},s.prototype.convertFrom=function(L){var O=L.clone();return O.red=null,O},z.mont=function(L){return new Z0(L)};function Z0(L){if(s.call(this,L),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}Y(Z0,s),Z0.prototype.convertTo=function(L){return this.imod(L.ushln(this.shift))},Z0.prototype.convertFrom=function(L){var O=this.imod(L.mul(this.rinv));return O.red=null,O},Z0.prototype.imul=function(L,O){if(L.isZero()||O.isZero())return L.words[0]=0,L.length=1,L;var X=L.imul(O),q=X.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),W=X.isub(q).iushrn(this.shift),C=W;if(W.cmp(this.m)>=0)C=W.isub(this.m);else if(W.cmpn(0)<0)C=W.iadd(this.m);return C._forceRed(this)},Z0.prototype.mul=function(L,O){if(L.isZero()||O.isZero())return new z(0)._forceRed(this);var X=L.mul(O),q=X.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),W=X.isub(q).iushrn(this.shift),C=W;if(W.cmp(this.m)>=0)C=W.isub(this.m);else if(W.cmpn(0)<0)C=W.iadd(this.m);return C._forceRed(this)},Z0.prototype.invm=function(L){var O=this.imod(L._invmp(this.m).mul(this.r2));return O._forceRed(this)}})(typeof V>"u"||V,K)}),wB=D0((K,V)=>{var Q=kB(),U=fB();V.exports=function(M){return new Y(M)};var H={secp256k1:{name:"secp256k1",byteLength:32},secp224r1:{name:"p224",byteLength:28},prime256v1:{name:"p256",byteLength:32},prime192v1:{name:"p192",byteLength:24},ed25519:{name:"ed25519",byteLength:32},secp384r1:{name:"p384",byteLength:48},secp521r1:{name:"p521",byteLength:66}};H.p224=H.secp224r1,H.p256=H.secp256r1=H.prime256v1,H.p192=H.secp192r1=H.prime192v1,H.p384=H.secp384r1,H.p521=H.secp521r1;function Y(M){if(this.curveType=H[M],!this.curveType)this.curveType={name:M};this.curve=new Q.ec(this.curveType.name),this.keys=void 0}Y.prototype.generateKeys=function(M,A){return this.keys=this.curve.genKeyPair(),this.getPublicKey(M,A)},Y.prototype.computeSecret=function(M,A,R){if(A=A||"utf8",!Buffer.isBuffer(M))M=new Buffer(M,A);var D=this.curve.keyFromPublic(M).getPublic(),F=D.mul(this.keys.getPrivate()).getX();return z(F,R,this.curveType.byteLength)},Y.prototype.getPublicKey=function(M,A){var R=this.keys.getPublic(A==="compressed",!0);if(A==="hybrid")if(R[R.length-1]%2)R[0]=7;else R[0]=6;return z(R,M)},Y.prototype.getPrivateKey=function(M){return z(this.keys.getPrivate(),M)},Y.prototype.setPublicKey=function(M,A){if(A=A||"utf8",!Buffer.isBuffer(M))M=new Buffer(M,A);return this.keys._importPublic(M),this},Y.prototype.setPrivateKey=function(M,A){if(A=A||"utf8",!Buffer.isBuffer(M))M=new Buffer(M,A);var R=new U(M);return R=R.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(R),this};function z(M,A,R){if(!Array.isArray(M))M=M.toArray();var D=new Buffer(M);if(R&&D.length{var Q=(WV(),D1(MV)).createECDH;V.exports=Q||wB()}),xB=D0((K,V)=>{(function(Q,U){function H(L,O){if(!L)throw Error(O||"Assertion failed")}function Y(L,O){L.super_=O;var X=function(){};X.prototype=O.prototype,L.prototype=new X,L.prototype.constructor=L}function z(L,O,X){if(z.isBN(L))return L;if(this.negative=0,this.words=null,this.length=0,this.red=null,L!==null){if(O==="le"||O==="be")X=O,O=10;this._init(L||0,O||10,X||"be")}}if(typeof Q==="object")Q.exports=z;else U.BN=z;z.BN=z,z.wordSize=26;var M;try{if(typeof window<"u"&&typeof window.Buffer<"u")M=window.Buffer;else M=(cK(),D1(pK)).Buffer}catch(L){}z.isBN=function(L){if(L instanceof z)return!0;return L!==null&&typeof L==="object"&&L.constructor.wordSize===z.wordSize&&Array.isArray(L.words)},z.max=function(L,O){if(L.cmp(O)>0)return L;return O},z.min=function(L,O){if(L.cmp(O)<0)return L;return O},z.prototype._init=function(L,O,X){if(typeof L==="number")return this._initNumber(L,O,X);if(typeof L==="object")return this._initArray(L,O,X);if(O==="hex")O=16;H(O===(O|0)&&O>=2&&O<=36),L=L.toString().replace(/\s+/g,"");var q=0;if(L[0]==="-")q++,this.negative=1;if(q=0;q-=3)if(C=L[q]|L[q-1]<<8|L[q-2]<<16,this.words[W]|=C<>>26-I&67108863,I+=24,I>=26)I-=26,W++}else if(X==="le"){for(q=0,W=0;q>>26-I&67108863,I+=24,I>=26)I-=26,W++}return this.strip()};function A(L,O){var X=L.charCodeAt(O);if(X>=65&&X<=70)return X-55;else if(X>=97&&X<=102)return X-87;else return X-48&15}function R(L,O,X){var q=A(L,X);if(X-1>=O)q|=A(L,X-1)<<4;return q}z.prototype._parseHex=function(L,O,X){this.length=Math.ceil((L.length-O)/6),this.words=Array(this.length);for(var q=0;q=O;q-=2)if(I=R(L,O,q)<=18)W-=18,C+=1,this.words[C]|=I>>>26;else W+=8;else{var $=L.length-O;for(q=$%2===0?O+1:O;q=18)W-=18,C+=1,this.words[C]|=I>>>26;else W+=8}this.strip()};function D(L,O,X,q){var W=0,C=Math.min(L.length,X);for(var I=O;I=49)W+=$-49+10;else if($>=17)W+=$-17+10;else W+=$}return W}z.prototype._parseBase=function(L,O,X){this.words=[0],this.length=1;for(var q=0,W=1;W<=67108863;W*=O)q++;q--,W=W/O|0;var C=L.length-X,I=C%q,$=Math.min(C,C-I)+X,Z=0;for(var S=X;S<$;S+=q)if(Z=D(L,S,S+q,O),this.imuln(W),this.words[0]+Z<67108864)this.words[0]+=Z;else this._iaddn(Z);if(I!==0){var B=1;Z=D(L,S,L.length,O);for(S=0;S1&&this.words[this.length-1]===0)this.length--;return this._normSign()},z.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},z.prototype.inspect=function(){return(this.red?""};var F=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],P=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],G=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(z.prototype.toString=function(L,O){L=L||10,O=O|0||1;var X;if(L===16||L==="hex"){X="";var q=0,W=0;for(var C=0;C>>24-q&16777215,q+=2,q>=26)q-=26,C--;if(W!==0||C!==this.length-1)X=F[6-$.length]+$+X;else X=$+X}if(W!==0)X=W.toString(16)+X;while(X.length%O!==0)X="0"+X;if(this.negative!==0)X="-"+X;return X}if(L===(L|0)&&L>=2&&L<=36){var Z=P[L],S=G[L];X="";var B=this.clone();B.negative=0;while(!B.isZero()){var E=B.modn(S).toString(L);if(B=B.idivn(S),!B.isZero())X=F[Z-E.length]+E+X;else X=E+X}if(this.isZero())X="0"+X;while(X.length%O!==0)X="0"+X;if(this.negative!==0)X="-"+X;return X}H(!1,"Base should be between 2 and 36")},z.prototype.toNumber=function(){var L=this.words[0];if(this.length===2)L+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)L+=4503599627370496+this.words[1]*67108864;else if(this.length>2)H(!1,"Number can only safely store up to 53 bits");return this.negative!==0?-L:L},z.prototype.toJSON=function(){return this.toString(16)},z.prototype.toBuffer=function(L,O){return H(typeof M<"u"),this.toArrayLike(M,L,O)},z.prototype.toArray=function(L,O){return this.toArrayLike(Array,L,O)},z.prototype.toArrayLike=function(L,O,X){var q=this.byteLength(),W=X||Math.max(1,q);H(q<=W,"byte array longer than desired length"),H(W>0,"Requested array length <= 0"),this.strip();var C=O==="le",I=new L(W),$,Z,S=this.clone();if(!C){for(Z=0;Z=4096)X+=13,O>>>=13;if(O>=64)X+=7,O>>>=7;if(O>=8)X+=4,O>>>=4;if(O>=2)X+=2,O>>>=2;return X+O};z.prototype._zeroBits=function(L){if(L===0)return 26;var O=L,X=0;if((O&8191)===0)X+=13,O>>>=13;if((O&127)===0)X+=7,O>>>=7;if((O&15)===0)X+=4,O>>>=4;if((O&3)===0)X+=2,O>>>=2;if((O&1)===0)X++;return X},z.prototype.bitLength=function(){var L=this.words[this.length-1],O=this._countBits(L);return(this.length-1)*26+O};function T(L){var O=Array(L.bitLength());for(var X=0;X>>W}return O}z.prototype.zeroBits=function(){if(this.isZero())return 0;var L=0;for(var O=0;OL.length)return this.clone().ior(L);return L.clone().ior(this)},z.prototype.uor=function(L){if(this.length>L.length)return this.clone().iuor(L);return L.clone().iuor(this)},z.prototype.iuand=function(L){var O;if(this.length>L.length)O=L;else O=this;for(var X=0;XL.length)return this.clone().iand(L);return L.clone().iand(this)},z.prototype.uand=function(L){if(this.length>L.length)return this.clone().iuand(L);return L.clone().iuand(this)},z.prototype.iuxor=function(L){var O,X;if(this.length>L.length)O=this,X=L;else O=L,X=this;for(var q=0;qL.length)return this.clone().ixor(L);return L.clone().ixor(this)},z.prototype.uxor=function(L){if(this.length>L.length)return this.clone().iuxor(L);return L.clone().iuxor(this)},z.prototype.inotn=function(L){H(typeof L==="number"&&L>=0);var O=Math.ceil(L/26)|0,X=L%26;if(this._expand(O),X>0)O--;for(var q=0;q0)this.words[q]=~this.words[q]&67108863>>26-X;return this.strip()},z.prototype.notn=function(L){return this.clone().inotn(L)},z.prototype.setn=function(L,O){H(typeof L==="number"&&L>=0);var X=L/26|0,q=L%26;if(this._expand(X+1),O)this.words[X]=this.words[X]|1<L.length)X=this,q=L;else X=L,q=this;var W=0;for(var C=0;C>>26;for(;W!==0&&C>>26;if(this.length=X.length,W!==0)this.words[this.length]=W,this.length++;else if(X!==this)for(;CL.length)return this.clone().iadd(L);return L.clone().iadd(this)},z.prototype.isub=function(L){if(L.negative!==0){L.negative=0;var O=this.iadd(L);return L.negative=1,O._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(L),this.negative=1,this._normSign();var X=this.cmp(L);if(X===0)return this.negative=0,this.length=1,this.words[0]=0,this;var q,W;if(X>0)q=this,W=L;else q=L,W=this;var C=0;for(var I=0;I>26,this.words[I]=O&67108863;for(;C!==0&&I>26,this.words[I]=O&67108863;if(C===0&&I>>26,E=Z&67108863,w=Math.min(S,O.length-1);for(var h=Math.max(0,S-L.length+1);h<=w;h++){var u=S-h|0;W=L.words[u]|0,C=O.words[h]|0,I=W*C+E,B+=I/67108864|0,E=I&67108863}X.words[S]=E|0,Z=B|0}if(Z!==0)X.words[S]=Z|0;else X.length--;return X.strip()}var J=function(L,O,X){var q=L.words,W=O.words,C=X.words,I=0,$,Z,S,B=q[0]|0,E=B&8191,w=B>>>13,h=q[1]|0,u=h&8191,t=h>>>13,F0=q[2]|0,K0=F0&8191,r=F0>>>13,A0=q[3]|0,e=A0&8191,Y0=A0>>>13,r0=q[4]|0,b=r0&8191,o=r0>>>13,R0=q[5]|0,Q0=R0&8191,H0=R0>>>13,N0=q[6]|0,d=N0&8191,a=N0>>>13,o0=q[7]|0,V0=o0&8191,W0=o0>>>13,H1=q[8]|0,G0=H1&8191,T0=H1>>>13,v1=q[9]|0,P0=v1&8191,E0=v1>>>13,i1=W[0]|0,x0=i1&8191,k0=i1>>>13,N1=W[1]|0,w0=N1&8191,f0=N1>>>13,zK=W[2]|0,c0=zK&8191,g0=zK>>>13,VK=W[3]|0,u0=VK&8191,y0=VK>>>13,g1=W[4]|0,s0=g1&8191,b0=g1>>>13,t1=W[5]|0,h0=t1&8191,g=t1>>>13,n=W[6]|0,U0=n&8191,O0=n>>>13,i0=W[7]|0,C0=i0&8191,B0=i0>>>13,k1=W[8]|0,l0=k1&8191,d0=k1>>>13,QK=W[9]|0,p0=QK&8191,_0=QK>>>13;X.negative=L.negative^O.negative,X.length=19,$=Math.imul(E,x0),Z=Math.imul(E,k0),Z=Z+Math.imul(w,x0)|0,S=Math.imul(w,k0);var P1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(P1>>>26)|0,P1&=67108863,$=Math.imul(u,x0),Z=Math.imul(u,k0),Z=Z+Math.imul(t,x0)|0,S=Math.imul(t,k0),$=$+Math.imul(E,w0)|0,Z=Z+Math.imul(E,f0)|0,Z=Z+Math.imul(w,w0)|0,S=S+Math.imul(w,f0)|0;var Z1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(Z1>>>26)|0,Z1&=67108863,$=Math.imul(K0,x0),Z=Math.imul(K0,k0),Z=Z+Math.imul(r,x0)|0,S=Math.imul(r,k0),$=$+Math.imul(u,w0)|0,Z=Z+Math.imul(u,f0)|0,Z=Z+Math.imul(t,w0)|0,S=S+Math.imul(t,f0)|0,$=$+Math.imul(E,c0)|0,Z=Z+Math.imul(E,g0)|0,Z=Z+Math.imul(w,c0)|0,S=S+Math.imul(w,g0)|0;var Y1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(Y1>>>26)|0,Y1&=67108863,$=Math.imul(e,x0),Z=Math.imul(e,k0),Z=Z+Math.imul(Y0,x0)|0,S=Math.imul(Y0,k0),$=$+Math.imul(K0,w0)|0,Z=Z+Math.imul(K0,f0)|0,Z=Z+Math.imul(r,w0)|0,S=S+Math.imul(r,f0)|0,$=$+Math.imul(u,c0)|0,Z=Z+Math.imul(u,g0)|0,Z=Z+Math.imul(t,c0)|0,S=S+Math.imul(t,g0)|0,$=$+Math.imul(E,u0)|0,Z=Z+Math.imul(E,y0)|0,Z=Z+Math.imul(w,u0)|0,S=S+Math.imul(w,y0)|0;var F1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(F1>>>26)|0,F1&=67108863,$=Math.imul(b,x0),Z=Math.imul(b,k0),Z=Z+Math.imul(o,x0)|0,S=Math.imul(o,k0),$=$+Math.imul(e,w0)|0,Z=Z+Math.imul(e,f0)|0,Z=Z+Math.imul(Y0,w0)|0,S=S+Math.imul(Y0,f0)|0,$=$+Math.imul(K0,c0)|0,Z=Z+Math.imul(K0,g0)|0,Z=Z+Math.imul(r,c0)|0,S=S+Math.imul(r,g0)|0,$=$+Math.imul(u,u0)|0,Z=Z+Math.imul(u,y0)|0,Z=Z+Math.imul(t,u0)|0,S=S+Math.imul(t,y0)|0,$=$+Math.imul(E,s0)|0,Z=Z+Math.imul(E,b0)|0,Z=Z+Math.imul(w,s0)|0,S=S+Math.imul(w,b0)|0;var A1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(A1>>>26)|0,A1&=67108863,$=Math.imul(Q0,x0),Z=Math.imul(Q0,k0),Z=Z+Math.imul(H0,x0)|0,S=Math.imul(H0,k0),$=$+Math.imul(b,w0)|0,Z=Z+Math.imul(b,f0)|0,Z=Z+Math.imul(o,w0)|0,S=S+Math.imul(o,f0)|0,$=$+Math.imul(e,c0)|0,Z=Z+Math.imul(e,g0)|0,Z=Z+Math.imul(Y0,c0)|0,S=S+Math.imul(Y0,g0)|0,$=$+Math.imul(K0,u0)|0,Z=Z+Math.imul(K0,y0)|0,Z=Z+Math.imul(r,u0)|0,S=S+Math.imul(r,y0)|0,$=$+Math.imul(u,s0)|0,Z=Z+Math.imul(u,b0)|0,Z=Z+Math.imul(t,s0)|0,S=S+Math.imul(t,b0)|0,$=$+Math.imul(E,h0)|0,Z=Z+Math.imul(E,g)|0,Z=Z+Math.imul(w,h0)|0,S=S+Math.imul(w,g)|0;var y1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(y1>>>26)|0,y1&=67108863,$=Math.imul(d,x0),Z=Math.imul(d,k0),Z=Z+Math.imul(a,x0)|0,S=Math.imul(a,k0),$=$+Math.imul(Q0,w0)|0,Z=Z+Math.imul(Q0,f0)|0,Z=Z+Math.imul(H0,w0)|0,S=S+Math.imul(H0,f0)|0,$=$+Math.imul(b,c0)|0,Z=Z+Math.imul(b,g0)|0,Z=Z+Math.imul(o,c0)|0,S=S+Math.imul(o,g0)|0,$=$+Math.imul(e,u0)|0,Z=Z+Math.imul(e,y0)|0,Z=Z+Math.imul(Y0,u0)|0,S=S+Math.imul(Y0,y0)|0,$=$+Math.imul(K0,s0)|0,Z=Z+Math.imul(K0,b0)|0,Z=Z+Math.imul(r,s0)|0,S=S+Math.imul(r,b0)|0,$=$+Math.imul(u,h0)|0,Z=Z+Math.imul(u,g)|0,Z=Z+Math.imul(t,h0)|0,S=S+Math.imul(t,g)|0,$=$+Math.imul(E,U0)|0,Z=Z+Math.imul(E,O0)|0,Z=Z+Math.imul(w,U0)|0,S=S+Math.imul(w,O0)|0;var h1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(h1>>>26)|0,h1&=67108863,$=Math.imul(V0,x0),Z=Math.imul(V0,k0),Z=Z+Math.imul(W0,x0)|0,S=Math.imul(W0,k0),$=$+Math.imul(d,w0)|0,Z=Z+Math.imul(d,f0)|0,Z=Z+Math.imul(a,w0)|0,S=S+Math.imul(a,f0)|0,$=$+Math.imul(Q0,c0)|0,Z=Z+Math.imul(Q0,g0)|0,Z=Z+Math.imul(H0,c0)|0,S=S+Math.imul(H0,g0)|0,$=$+Math.imul(b,u0)|0,Z=Z+Math.imul(b,y0)|0,Z=Z+Math.imul(o,u0)|0,S=S+Math.imul(o,y0)|0,$=$+Math.imul(e,s0)|0,Z=Z+Math.imul(e,b0)|0,Z=Z+Math.imul(Y0,s0)|0,S=S+Math.imul(Y0,b0)|0,$=$+Math.imul(K0,h0)|0,Z=Z+Math.imul(K0,g)|0,Z=Z+Math.imul(r,h0)|0,S=S+Math.imul(r,g)|0,$=$+Math.imul(u,U0)|0,Z=Z+Math.imul(u,O0)|0,Z=Z+Math.imul(t,U0)|0,S=S+Math.imul(t,O0)|0,$=$+Math.imul(E,C0)|0,Z=Z+Math.imul(E,B0)|0,Z=Z+Math.imul(w,C0)|0,S=S+Math.imul(w,B0)|0;var p1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(p1>>>26)|0,p1&=67108863,$=Math.imul(G0,x0),Z=Math.imul(G0,k0),Z=Z+Math.imul(T0,x0)|0,S=Math.imul(T0,k0),$=$+Math.imul(V0,w0)|0,Z=Z+Math.imul(V0,f0)|0,Z=Z+Math.imul(W0,w0)|0,S=S+Math.imul(W0,f0)|0,$=$+Math.imul(d,c0)|0,Z=Z+Math.imul(d,g0)|0,Z=Z+Math.imul(a,c0)|0,S=S+Math.imul(a,g0)|0,$=$+Math.imul(Q0,u0)|0,Z=Z+Math.imul(Q0,y0)|0,Z=Z+Math.imul(H0,u0)|0,S=S+Math.imul(H0,y0)|0,$=$+Math.imul(b,s0)|0,Z=Z+Math.imul(b,b0)|0,Z=Z+Math.imul(o,s0)|0,S=S+Math.imul(o,b0)|0,$=$+Math.imul(e,h0)|0,Z=Z+Math.imul(e,g)|0,Z=Z+Math.imul(Y0,h0)|0,S=S+Math.imul(Y0,g)|0,$=$+Math.imul(K0,U0)|0,Z=Z+Math.imul(K0,O0)|0,Z=Z+Math.imul(r,U0)|0,S=S+Math.imul(r,O0)|0,$=$+Math.imul(u,C0)|0,Z=Z+Math.imul(u,B0)|0,Z=Z+Math.imul(t,C0)|0,S=S+Math.imul(t,B0)|0,$=$+Math.imul(E,l0)|0,Z=Z+Math.imul(E,d0)|0,Z=Z+Math.imul(w,l0)|0,S=S+Math.imul(w,d0)|0;var c1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(c1>>>26)|0,c1&=67108863,$=Math.imul(P0,x0),Z=Math.imul(P0,k0),Z=Z+Math.imul(E0,x0)|0,S=Math.imul(E0,k0),$=$+Math.imul(G0,w0)|0,Z=Z+Math.imul(G0,f0)|0,Z=Z+Math.imul(T0,w0)|0,S=S+Math.imul(T0,f0)|0,$=$+Math.imul(V0,c0)|0,Z=Z+Math.imul(V0,g0)|0,Z=Z+Math.imul(W0,c0)|0,S=S+Math.imul(W0,g0)|0,$=$+Math.imul(d,u0)|0,Z=Z+Math.imul(d,y0)|0,Z=Z+Math.imul(a,u0)|0,S=S+Math.imul(a,y0)|0,$=$+Math.imul(Q0,s0)|0,Z=Z+Math.imul(Q0,b0)|0,Z=Z+Math.imul(H0,s0)|0,S=S+Math.imul(H0,b0)|0,$=$+Math.imul(b,h0)|0,Z=Z+Math.imul(b,g)|0,Z=Z+Math.imul(o,h0)|0,S=S+Math.imul(o,g)|0,$=$+Math.imul(e,U0)|0,Z=Z+Math.imul(e,O0)|0,Z=Z+Math.imul(Y0,U0)|0,S=S+Math.imul(Y0,O0)|0,$=$+Math.imul(K0,C0)|0,Z=Z+Math.imul(K0,B0)|0,Z=Z+Math.imul(r,C0)|0,S=S+Math.imul(r,B0)|0,$=$+Math.imul(u,l0)|0,Z=Z+Math.imul(u,d0)|0,Z=Z+Math.imul(t,l0)|0,S=S+Math.imul(t,d0)|0,$=$+Math.imul(E,p0)|0,Z=Z+Math.imul(E,_0)|0,Z=Z+Math.imul(w,p0)|0,S=S+Math.imul(w,_0)|0;var u1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(u1>>>26)|0,u1&=67108863,$=Math.imul(P0,w0),Z=Math.imul(P0,f0),Z=Z+Math.imul(E0,w0)|0,S=Math.imul(E0,f0),$=$+Math.imul(G0,c0)|0,Z=Z+Math.imul(G0,g0)|0,Z=Z+Math.imul(T0,c0)|0,S=S+Math.imul(T0,g0)|0,$=$+Math.imul(V0,u0)|0,Z=Z+Math.imul(V0,y0)|0,Z=Z+Math.imul(W0,u0)|0,S=S+Math.imul(W0,y0)|0,$=$+Math.imul(d,s0)|0,Z=Z+Math.imul(d,b0)|0,Z=Z+Math.imul(a,s0)|0,S=S+Math.imul(a,b0)|0,$=$+Math.imul(Q0,h0)|0,Z=Z+Math.imul(Q0,g)|0,Z=Z+Math.imul(H0,h0)|0,S=S+Math.imul(H0,g)|0,$=$+Math.imul(b,U0)|0,Z=Z+Math.imul(b,O0)|0,Z=Z+Math.imul(o,U0)|0,S=S+Math.imul(o,O0)|0,$=$+Math.imul(e,C0)|0,Z=Z+Math.imul(e,B0)|0,Z=Z+Math.imul(Y0,C0)|0,S=S+Math.imul(Y0,B0)|0,$=$+Math.imul(K0,l0)|0,Z=Z+Math.imul(K0,d0)|0,Z=Z+Math.imul(r,l0)|0,S=S+Math.imul(r,d0)|0,$=$+Math.imul(u,p0)|0,Z=Z+Math.imul(u,_0)|0,Z=Z+Math.imul(t,p0)|0,S=S+Math.imul(t,_0)|0;var b1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(b1>>>26)|0,b1&=67108863,$=Math.imul(P0,c0),Z=Math.imul(P0,g0),Z=Z+Math.imul(E0,c0)|0,S=Math.imul(E0,g0),$=$+Math.imul(G0,u0)|0,Z=Z+Math.imul(G0,y0)|0,Z=Z+Math.imul(T0,u0)|0,S=S+Math.imul(T0,y0)|0,$=$+Math.imul(V0,s0)|0,Z=Z+Math.imul(V0,b0)|0,Z=Z+Math.imul(W0,s0)|0,S=S+Math.imul(W0,b0)|0,$=$+Math.imul(d,h0)|0,Z=Z+Math.imul(d,g)|0,Z=Z+Math.imul(a,h0)|0,S=S+Math.imul(a,g)|0,$=$+Math.imul(Q0,U0)|0,Z=Z+Math.imul(Q0,O0)|0,Z=Z+Math.imul(H0,U0)|0,S=S+Math.imul(H0,O0)|0,$=$+Math.imul(b,C0)|0,Z=Z+Math.imul(b,B0)|0,Z=Z+Math.imul(o,C0)|0,S=S+Math.imul(o,B0)|0,$=$+Math.imul(e,l0)|0,Z=Z+Math.imul(e,d0)|0,Z=Z+Math.imul(Y0,l0)|0,S=S+Math.imul(Y0,d0)|0,$=$+Math.imul(K0,p0)|0,Z=Z+Math.imul(K0,_0)|0,Z=Z+Math.imul(r,p0)|0,S=S+Math.imul(r,_0)|0;var l1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(l1>>>26)|0,l1&=67108863,$=Math.imul(P0,u0),Z=Math.imul(P0,y0),Z=Z+Math.imul(E0,u0)|0,S=Math.imul(E0,y0),$=$+Math.imul(G0,s0)|0,Z=Z+Math.imul(G0,b0)|0,Z=Z+Math.imul(T0,s0)|0,S=S+Math.imul(T0,b0)|0,$=$+Math.imul(V0,h0)|0,Z=Z+Math.imul(V0,g)|0,Z=Z+Math.imul(W0,h0)|0,S=S+Math.imul(W0,g)|0,$=$+Math.imul(d,U0)|0,Z=Z+Math.imul(d,O0)|0,Z=Z+Math.imul(a,U0)|0,S=S+Math.imul(a,O0)|0,$=$+Math.imul(Q0,C0)|0,Z=Z+Math.imul(Q0,B0)|0,Z=Z+Math.imul(H0,C0)|0,S=S+Math.imul(H0,B0)|0,$=$+Math.imul(b,l0)|0,Z=Z+Math.imul(b,d0)|0,Z=Z+Math.imul(o,l0)|0,S=S+Math.imul(o,d0)|0,$=$+Math.imul(e,p0)|0,Z=Z+Math.imul(e,_0)|0,Z=Z+Math.imul(Y0,p0)|0,S=S+Math.imul(Y0,_0)|0;var LK=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(LK>>>26)|0,LK&=67108863,$=Math.imul(P0,s0),Z=Math.imul(P0,b0),Z=Z+Math.imul(E0,s0)|0,S=Math.imul(E0,b0),$=$+Math.imul(G0,h0)|0,Z=Z+Math.imul(G0,g)|0,Z=Z+Math.imul(T0,h0)|0,S=S+Math.imul(T0,g)|0,$=$+Math.imul(V0,U0)|0,Z=Z+Math.imul(V0,O0)|0,Z=Z+Math.imul(W0,U0)|0,S=S+Math.imul(W0,O0)|0,$=$+Math.imul(d,C0)|0,Z=Z+Math.imul(d,B0)|0,Z=Z+Math.imul(a,C0)|0,S=S+Math.imul(a,B0)|0,$=$+Math.imul(Q0,l0)|0,Z=Z+Math.imul(Q0,d0)|0,Z=Z+Math.imul(H0,l0)|0,S=S+Math.imul(H0,d0)|0,$=$+Math.imul(b,p0)|0,Z=Z+Math.imul(b,_0)|0,Z=Z+Math.imul(o,p0)|0,S=S+Math.imul(o,_0)|0;var d1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(d1>>>26)|0,d1&=67108863,$=Math.imul(P0,h0),Z=Math.imul(P0,g),Z=Z+Math.imul(E0,h0)|0,S=Math.imul(E0,g),$=$+Math.imul(G0,U0)|0,Z=Z+Math.imul(G0,O0)|0,Z=Z+Math.imul(T0,U0)|0,S=S+Math.imul(T0,O0)|0,$=$+Math.imul(V0,C0)|0,Z=Z+Math.imul(V0,B0)|0,Z=Z+Math.imul(W0,C0)|0,S=S+Math.imul(W0,B0)|0,$=$+Math.imul(d,l0)|0,Z=Z+Math.imul(d,d0)|0,Z=Z+Math.imul(a,l0)|0,S=S+Math.imul(a,d0)|0,$=$+Math.imul(Q0,p0)|0,Z=Z+Math.imul(Q0,_0)|0,Z=Z+Math.imul(H0,p0)|0,S=S+Math.imul(H0,_0)|0;var s1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(s1>>>26)|0,s1&=67108863,$=Math.imul(P0,U0),Z=Math.imul(P0,O0),Z=Z+Math.imul(E0,U0)|0,S=Math.imul(E0,O0),$=$+Math.imul(G0,C0)|0,Z=Z+Math.imul(G0,B0)|0,Z=Z+Math.imul(T0,C0)|0,S=S+Math.imul(T0,B0)|0,$=$+Math.imul(V0,l0)|0,Z=Z+Math.imul(V0,d0)|0,Z=Z+Math.imul(W0,l0)|0,S=S+Math.imul(W0,d0)|0,$=$+Math.imul(d,p0)|0,Z=Z+Math.imul(d,_0)|0,Z=Z+Math.imul(a,p0)|0,S=S+Math.imul(a,_0)|0;var o1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(o1>>>26)|0,o1&=67108863,$=Math.imul(P0,C0),Z=Math.imul(P0,B0),Z=Z+Math.imul(E0,C0)|0,S=Math.imul(E0,B0),$=$+Math.imul(G0,l0)|0,Z=Z+Math.imul(G0,d0)|0,Z=Z+Math.imul(T0,l0)|0,S=S+Math.imul(T0,d0)|0,$=$+Math.imul(V0,p0)|0,Z=Z+Math.imul(V0,_0)|0,Z=Z+Math.imul(W0,p0)|0,S=S+Math.imul(W0,_0)|0;var m1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(m1>>>26)|0,m1&=67108863,$=Math.imul(P0,l0),Z=Math.imul(P0,d0),Z=Z+Math.imul(E0,l0)|0,S=Math.imul(E0,d0),$=$+Math.imul(G0,p0)|0,Z=Z+Math.imul(G0,_0)|0,Z=Z+Math.imul(T0,p0)|0,S=S+Math.imul(T0,_0)|0;var ZK=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(ZK>>>26)|0,ZK&=67108863,$=Math.imul(P0,p0),Z=Math.imul(P0,_0),Z=Z+Math.imul(E0,p0)|0,S=Math.imul(E0,_0);var n1=(I+$|0)+((Z&8191)<<13)|0;if(I=(S+(Z>>>13)|0)+(n1>>>26)|0,n1&=67108863,C[0]=P1,C[1]=Z1,C[2]=Y1,C[3]=F1,C[4]=A1,C[5]=y1,C[6]=h1,C[7]=p1,C[8]=c1,C[9]=u1,C[10]=b1,C[11]=l1,C[12]=LK,C[13]=d1,C[14]=s1,C[15]=o1,C[16]=m1,C[17]=ZK,C[18]=n1,I!==0)C[19]=I,X.length++;return X};if(!Math.imul)J=v;function k(L,O,X){X.negative=O.negative^L.negative,X.length=L.length+O.length;var q=0,W=0;for(var C=0;C>>26)|0,W+=I>>>26,I&=67108863}X.words[C]=$,q=I,I=W}if(q!==0)X.words[C]=q;else X.length--;return X.strip()}function f(L,O,X){var q=new j;return q.mulp(L,O,X)}z.prototype.mulTo=function(L,O){var X,q=this.length+L.length;if(this.length===10&&L.length===10)X=J(this,L,O);else if(q<63)X=v(this,L,O);else if(q<1024)X=k(this,L,O);else X=f(this,L,O);return X};function j(L,O){this.x=L,this.y=O}j.prototype.makeRBT=function(L){var O=Array(L),X=z.prototype._countBits(L)-1;for(var q=0;q>=1;return q},j.prototype.permute=function(L,O,X,q,W,C){for(var I=0;I>>1)W++;return 1<>>13,X[2*C+1]=W&8191,W=W>>>13;for(C=2*O;C>=26,O+=q/67108864|0,O+=W>>>26,this.words[X]=W&67108863}if(O!==0)this.words[X]=O,this.length++;return this.length=L===0?1:this.length,this},z.prototype.muln=function(L){return this.clone().imuln(L)},z.prototype.sqr=function(){return this.mul(this)},z.prototype.isqr=function(){return this.imul(this.clone())},z.prototype.pow=function(L){var O=T(L);if(O.length===0)return new z(1);var X=this;for(var q=0;q=0);var O=L%26,X=(L-O)/26,q=67108863>>>26-O<<26-O,W;if(O!==0){var C=0;for(W=0;W>>26-O}if(C)this.words[W]=C,this.length++}if(X!==0){for(W=this.length-1;W>=0;W--)this.words[W+X]=this.words[W];for(W=0;W=0);var q;if(O)q=(O-O%26)/26;else q=0;var W=L%26,C=Math.min((L-W)/26,this.length),I=67108863^67108863>>>W<C){this.length-=C;for(Z=0;Z=0&&(S!==0||Z>=q);Z--){var B=this.words[Z]|0;this.words[Z]=S<<26-W|B>>>W,S=B&I}if($&&S!==0)$.words[$.length++]=S;if(this.length===0)this.words[0]=0,this.length=1;return this.strip()},z.prototype.ishrn=function(L,O,X){return H(this.negative===0),this.iushrn(L,O,X)},z.prototype.shln=function(L){return this.clone().ishln(L)},z.prototype.ushln=function(L){return this.clone().iushln(L)},z.prototype.shrn=function(L){return this.clone().ishrn(L)},z.prototype.ushrn=function(L){return this.clone().iushrn(L)},z.prototype.testn=function(L){H(typeof L==="number"&&L>=0);var O=L%26,X=(L-O)/26,q=1<=0);var O=L%26,X=(L-O)/26;if(H(this.negative===0,"imaskn works only with positive numbers"),this.length<=X)return this;if(O!==0)X++;if(this.length=Math.min(X,this.length),O!==0){var q=67108863^67108863>>>O<=67108864;O++)if(this.words[O]-=67108864,O===this.length-1)this.words[O+1]=1;else this.words[O+1]++;return this.length=Math.max(this.length,O+1),this},z.prototype.isubn=function(L){if(H(typeof L==="number"),H(L<67108864),L<0)return this.iaddn(-L);if(this.negative!==0)return this.negative=0,this.iaddn(L),this.negative=1,this;if(this.words[0]-=L,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var O=0;O>26)-($/67108864|0),this.words[W+X]=C&67108863}for(;W>26,this.words[W+X]=C&67108863;if(I===0)return this.strip();H(I===-1),I=0;for(W=0;W>26,this.words[W]=C&67108863;return this.negative=1,this.strip()},z.prototype._wordDiv=function(L,O){var X=this.length-L.length,q=this.clone(),W=L,C=W.words[W.length-1]|0,I=this._countBits(C);if(X=26-I,X!==0)W=W.ushln(X),q.iushln(X),C=W.words[W.length-1]|0;var $=q.length-W.length,Z;if(O!=="mod"){Z=new z(null),Z.length=$+1,Z.words=Array(Z.length);for(var S=0;S=0;E--){var w=(q.words[W.length+E]|0)*67108864+(q.words[W.length+E-1]|0);w=Math.min(w/C|0,67108863),q._ishlnsubmul(W,w,E);while(q.negative!==0)if(w--,q.negative=0,q._ishlnsubmul(W,1,E),!q.isZero())q.negative^=1;if(Z)Z.words[E]=w}if(Z)Z.strip();if(q.strip(),O!=="div"&&X!==0)q.iushrn(X);return{div:Z||null,mod:q}},z.prototype.divmod=function(L,O,X){if(H(!L.isZero()),this.isZero())return{div:new z(0),mod:new z(0)};var q,W,C;if(this.negative!==0&&L.negative===0){if(C=this.neg().divmod(L,O),O!=="mod")q=C.div.neg();if(O!=="div"){if(W=C.mod.neg(),X&&W.negative!==0)W.iadd(L)}return{div:q,mod:W}}if(this.negative===0&&L.negative!==0){if(C=this.divmod(L.neg(),O),O!=="mod")q=C.div.neg();return{div:q,mod:C.mod}}if((this.negative&L.negative)!==0){if(C=this.neg().divmod(L.neg(),O),O!=="div"){if(W=C.mod.neg(),X&&W.negative!==0)W.isub(L)}return{div:C.div,mod:W}}if(L.length>this.length||this.cmp(L)<0)return{div:new z(0),mod:this};if(L.length===1){if(O==="div")return{div:this.divn(L.words[0]),mod:null};if(O==="mod")return{div:null,mod:new z(this.modn(L.words[0]))};return{div:this.divn(L.words[0]),mod:new z(this.modn(L.words[0]))}}return this._wordDiv(L,O)},z.prototype.div=function(L){return this.divmod(L,"div",!1).div},z.prototype.mod=function(L){return this.divmod(L,"mod",!1).mod},z.prototype.umod=function(L){return this.divmod(L,"mod",!0).mod},z.prototype.divRound=function(L){var O=this.divmod(L);if(O.mod.isZero())return O.div;var X=O.div.negative!==0?O.mod.isub(L):O.mod,q=L.ushrn(1),W=L.andln(1),C=X.cmp(q);if(C<0||W===1&&C===0)return O.div;return O.div.negative!==0?O.div.isubn(1):O.div.iaddn(1)},z.prototype.modn=function(L){H(L<=67108863);var O=67108864%L,X=0;for(var q=this.length-1;q>=0;q--)X=(O*X+(this.words[q]|0))%L;return X},z.prototype.idivn=function(L){H(L<=67108863);var O=0;for(var X=this.length-1;X>=0;X--){var q=(this.words[X]|0)+O*67108864;this.words[X]=q/L|0,O=q%L}return this.strip()},z.prototype.divn=function(L){return this.clone().idivn(L)},z.prototype.egcd=function(L){H(L.negative===0),H(!L.isZero());var O=this,X=L.clone();if(O.negative!==0)O=O.umod(L);else O=O.clone();var q=new z(1),W=new z(0),C=new z(0),I=new z(1),$=0;while(O.isEven()&&X.isEven())O.iushrn(1),X.iushrn(1),++$;var Z=X.clone(),S=O.clone();while(!O.isZero()){for(var B=0,E=1;(O.words[0]&E)===0&&B<26;++B,E<<=1);if(B>0){O.iushrn(B);while(B-- >0){if(q.isOdd()||W.isOdd())q.iadd(Z),W.isub(S);q.iushrn(1),W.iushrn(1)}}for(var w=0,h=1;(X.words[0]&h)===0&&w<26;++w,h<<=1);if(w>0){X.iushrn(w);while(w-- >0){if(C.isOdd()||I.isOdd())C.iadd(Z),I.isub(S);C.iushrn(1),I.iushrn(1)}}if(O.cmp(X)>=0)O.isub(X),q.isub(C),W.isub(I);else X.isub(O),C.isub(q),I.isub(W)}return{a:C,b:I,gcd:X.iushln($)}},z.prototype._invmp=function(L){H(L.negative===0),H(!L.isZero());var O=this,X=L.clone();if(O.negative!==0)O=O.umod(L);else O=O.clone();var q=new z(1),W=new z(0),C=X.clone();while(O.cmpn(1)>0&&X.cmpn(1)>0){for(var I=0,$=1;(O.words[0]&$)===0&&I<26;++I,$<<=1);if(I>0){O.iushrn(I);while(I-- >0){if(q.isOdd())q.iadd(C);q.iushrn(1)}}for(var Z=0,S=1;(X.words[0]&S)===0&&Z<26;++Z,S<<=1);if(Z>0){X.iushrn(Z);while(Z-- >0){if(W.isOdd())W.iadd(C);W.iushrn(1)}}if(O.cmp(X)>=0)O.isub(X),q.isub(W);else X.isub(O),W.isub(q)}var B;if(O.cmpn(1)===0)B=q;else B=W;if(B.cmpn(0)<0)B.iadd(L);return B},z.prototype.gcd=function(L){if(this.isZero())return L.abs();if(L.isZero())return this.abs();var O=this.clone(),X=L.clone();O.negative=0,X.negative=0;for(var q=0;O.isEven()&&X.isEven();q++)O.iushrn(1),X.iushrn(1);do{while(O.isEven())O.iushrn(1);while(X.isEven())X.iushrn(1);var W=O.cmp(X);if(W<0){var C=O;O=X,X=C}else if(W===0||X.cmpn(1)===0)break;O.isub(X)}while(!0);return X.iushln(q)},z.prototype.invm=function(L){return this.egcd(L).a.umod(L)},z.prototype.isEven=function(){return(this.words[0]&1)===0},z.prototype.isOdd=function(){return(this.words[0]&1)===1},z.prototype.andln=function(L){return this.words[0]&L},z.prototype.bincn=function(L){H(typeof L==="number");var O=L%26,X=(L-O)/26,q=1<>>26,I&=67108863,this.words[C]=I}if(W!==0)this.words[C]=W,this.length++;return this},z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},z.prototype.cmpn=function(L){var O=L<0;if(this.negative!==0&&!O)return-1;if(this.negative===0&&O)return 1;this.strip();var X;if(this.length>1)X=1;else{if(O)L=-L;H(L<=67108863,"Number is too big");var q=this.words[0]|0;X=q===L?0:qL.length)return 1;if(this.length=0;X--){var q=this.words[X]|0,W=L.words[X]|0;if(q===W)continue;if(qW)O=1;break}return O},z.prototype.gtn=function(L){return this.cmpn(L)===1},z.prototype.gt=function(L){return this.cmp(L)===1},z.prototype.gten=function(L){return this.cmpn(L)>=0},z.prototype.gte=function(L){return this.cmp(L)>=0},z.prototype.ltn=function(L){return this.cmpn(L)===-1},z.prototype.lt=function(L){return this.cmp(L)===-1},z.prototype.lten=function(L){return this.cmpn(L)<=0},z.prototype.lte=function(L){return this.cmp(L)<=0},z.prototype.eqn=function(L){return this.cmpn(L)===0},z.prototype.eq=function(L){return this.cmp(L)===0},z.red=function(L){return new s(L)},z.prototype.toRed=function(L){return H(!this.red,"Already a number in reduction context"),H(this.negative===0,"red works only with positives"),L.convertTo(this)._forceRed(L)},z.prototype.fromRed=function(){return H(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},z.prototype._forceRed=function(L){return this.red=L,this},z.prototype.forceRed=function(L){return H(!this.red,"Already a number in reduction context"),this._forceRed(L)},z.prototype.redAdd=function(L){return H(this.red,"redAdd works only with red numbers"),this.red.add(this,L)},z.prototype.redIAdd=function(L){return H(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,L)},z.prototype.redSub=function(L){return H(this.red,"redSub works only with red numbers"),this.red.sub(this,L)},z.prototype.redISub=function(L){return H(this.red,"redISub works only with red numbers"),this.red.isub(this,L)},z.prototype.redShl=function(L){return H(this.red,"redShl works only with red numbers"),this.red.shl(this,L)},z.prototype.redMul=function(L){return H(this.red,"redMul works only with red numbers"),this.red._verify2(this,L),this.red.mul(this,L)},z.prototype.redIMul=function(L){return H(this.red,"redMul works only with red numbers"),this.red._verify2(this,L),this.red.imul(this,L)},z.prototype.redSqr=function(){return H(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},z.prototype.redISqr=function(){return H(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},z.prototype.redSqrt=function(){return H(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},z.prototype.redInvm=function(){return H(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},z.prototype.redNeg=function(){return H(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},z.prototype.redPow=function(L){return H(this.red&&!L.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,L)};var _={k256:null,p224:null,p192:null,p25519:null};function p(L,O){this.name=L,this.p=new z(O,16),this.n=this.p.bitLength(),this.k=new z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}p.prototype._tmp=function(){var L=new z(null);return L.words=Array(Math.ceil(this.n/13)),L},p.prototype.ireduce=function(L){var O=L,X;do this.split(O,this.tmp),O=this.imulK(O),O=O.iadd(this.tmp),X=O.bitLength();while(X>this.n);var q=X0)O.isub(this.p);else if(O.strip!==void 0)O.strip();else O._strip();return O},p.prototype.split=function(L,O){L.iushrn(this.n,0,O)},p.prototype.imulK=function(L){return L.imul(this.k)};function N(){p.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}Y(N,p),N.prototype.split=function(L,O){var X=4194303,q=Math.min(L.length,9);for(var W=0;W>>22,C=I}if(C>>>=22,L.words[W-10]=C,C===0&&L.length>10)L.length-=10;else L.length-=9},N.prototype.imulK=function(L){L.words[L.length]=0,L.words[L.length+1]=0,L.length+=2;var O=0;for(var X=0;X>>=26,L.words[X]=W,O=q}if(O!==0)L.words[L.length++]=O;return L},z._prime=function(L){if(_[L])return _[L];var O;if(L==="k256")O=new N;else if(L==="p224")O=new m;else if(L==="p192")O=new z0;else if(L==="p25519")O=new L0;else throw Error("Unknown prime "+L);return _[L]=O,O};function s(L){if(typeof L==="string"){var O=z._prime(L);this.m=O.p,this.prime=O}else H(L.gtn(1),"modulus must be greater than 1"),this.m=L,this.prime=null}s.prototype._verify1=function(L){H(L.negative===0,"red works only with positives"),H(L.red,"red works only with red numbers")},s.prototype._verify2=function(L,O){H((L.negative|O.negative)===0,"red works only with positives"),H(L.red&&L.red===O.red,"red works only with red numbers")},s.prototype.imod=function(L){if(this.prime)return this.prime.ireduce(L)._forceRed(this);return L.umod(this.m)._forceRed(this)},s.prototype.neg=function(L){if(L.isZero())return L.clone();return this.m.sub(L)._forceRed(this)},s.prototype.add=function(L,O){this._verify2(L,O);var X=L.add(O);if(X.cmp(this.m)>=0)X.isub(this.m);return X._forceRed(this)},s.prototype.iadd=function(L,O){this._verify2(L,O);var X=L.iadd(O);if(X.cmp(this.m)>=0)X.isub(this.m);return X},s.prototype.sub=function(L,O){this._verify2(L,O);var X=L.sub(O);if(X.cmpn(0)<0)X.iadd(this.m);return X._forceRed(this)},s.prototype.isub=function(L,O){this._verify2(L,O);var X=L.isub(O);if(X.cmpn(0)<0)X.iadd(this.m);return X},s.prototype.shl=function(L,O){return this._verify1(L),this.imod(L.ushln(O))},s.prototype.imul=function(L,O){return this._verify2(L,O),this.imod(L.imul(O))},s.prototype.mul=function(L,O){return this._verify2(L,O),this.imod(L.mul(O))},s.prototype.isqr=function(L){return this.imul(L,L.clone())},s.prototype.sqr=function(L){return this.mul(L,L)},s.prototype.sqrt=function(L){if(L.isZero())return L.clone();var O=this.m.andln(3);if(H(O%2===1),O===3){var X=this.m.add(new z(1)).iushrn(2);return this.pow(L,X)}var q=this.m.subn(1),W=0;while(!q.isZero()&&q.andln(1)===0)W++,q.iushrn(1);H(!q.isZero());var C=new z(1).toRed(this),I=C.redNeg(),$=this.m.subn(1).iushrn(1),Z=this.m.bitLength();Z=new z(2*Z*Z).toRed(this);while(this.pow(Z,$).cmp(I)!==0)Z.redIAdd(I);var S=this.pow(Z,q),B=this.pow(L,q.addn(1).iushrn(1)),E=this.pow(L,q),w=W;while(E.cmp(C)!==0){var h=E;for(var u=0;h.cmp(C)!==0;u++)h=h.redSqr();H(u=0;W--){var S=O.words[W];for(var B=Z-1;B>=0;B--){var E=S>>B&1;if(C!==q[0])C=this.sqr(C);if(E===0&&I===0){$=0;continue}if(I<<=1,I|=E,$++,$!==X&&(W!==0||B!==0))continue;C=this.mul(C,q[I]),$=0,I=0}Z=26}return C},s.prototype.convertTo=function(L){var O=L.umod(this.m);return O===L?O.clone():O},s.prototype.convertFrom=function(L){var O=L.clone();return O.red=null,O},z.mont=function(L){return new Z0(L)};function Z0(L){if(s.call(this,L),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}Y(Z0,s),Z0.prototype.convertTo=function(L){return this.imod(L.ushln(this.shift))},Z0.prototype.convertFrom=function(L){var O=this.imod(L.mul(this.rinv));return O.red=null,O},Z0.prototype.imul=function(L,O){if(L.isZero()||O.isZero())return L.words[0]=0,L.length=1,L;var X=L.imul(O),q=X.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),W=X.isub(q).iushrn(this.shift),C=W;if(W.cmp(this.m)>=0)C=W.isub(this.m);else if(W.cmpn(0)<0)C=W.iadd(this.m);return C._forceRed(this)},Z0.prototype.mul=function(L,O){if(L.isZero()||O.isZero())return new z(0)._forceRed(this);var X=L.mul(O),q=X.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),W=X.isub(q).iushrn(this.shift),C=W;if(W.cmp(this.m)>=0)C=W.isub(this.m);else if(W.cmpn(0)<0)C=W.iadd(this.m);return C._forceRed(this)},Z0.prototype.invm=function(L){var O=this.imod(L._invmp(this.m).mul(this.r2));return O._forceRed(this)}})(typeof V>"u"||V,K)}),_B=D0((K)=>{var V=c8(),Q=PV(),U=K;U.define=function(Y,z){return new H(Y,z)};function H(Y,z){this.name=Y,this.body=z,this.decoders={},this.encoders={}}H.prototype._createNamed=function(Y){var z;try{z=(()=>{throw new Error("Cannot require module "+"vm");})().runInThisContext("(function "+this.name+`(entity) { + this._initNamed(entity); +})`)}catch(M){z=function(A){this._initNamed(A)}}return Q(z,Y),z.prototype._initNamed=function(M){Y.call(this,M)},new z(this)},H.prototype._getDecoder=function(Y){if(Y=Y||"der",!this.decoders.hasOwnProperty(Y))this.decoders[Y]=this._createNamed(V.decoders[Y]);return this.decoders[Y]},H.prototype.decode=function(Y,z,M){return this._getDecoder(z).decode(Y,M)},H.prototype._getEncoder=function(Y){if(Y=Y||"der",!this.encoders.hasOwnProperty(Y))this.encoders[Y]=this._createNamed(V.encoders[Y]);return this.encoders[Y]},H.prototype.encode=function(Y,z,M){return this._getEncoder(z).encode(Y,M)}}),NB=D0((K)=>{var V=PV();function Q(H){this._reporterState={obj:null,path:[],options:H||{},errors:[]}}K.Reporter=Q,Q.prototype.isError=function(H){return H instanceof U},Q.prototype.save=function(){var H=this._reporterState;return{obj:H.obj,pathLen:H.path.length}},Q.prototype.restore=function(H){var Y=this._reporterState;Y.obj=H.obj,Y.path=Y.path.slice(0,H.pathLen)},Q.prototype.enterKey=function(H){return this._reporterState.path.push(H)},Q.prototype.exitKey=function(H){var Y=this._reporterState;Y.path=Y.path.slice(0,H-1)},Q.prototype.leaveKey=function(H,Y,z){var M=this._reporterState;if(this.exitKey(H),M.obj!==null)M.obj[Y]=z},Q.prototype.path=function(){return this._reporterState.path.join("/")},Q.prototype.enterObject=function(){var H=this._reporterState,Y=H.obj;return H.obj={},Y},Q.prototype.leaveObject=function(H){var Y=this._reporterState,z=Y.obj;return Y.obj=H,z},Q.prototype.error=function(H){var Y,z=this._reporterState,M=H instanceof U;if(M)Y=H;else Y=new U(z.path.map(function(A){return"["+JSON.stringify(A)+"]"}).join(""),H.message||H,H.stack);if(!z.options.partial)throw Y;if(!M)z.errors.push(Y);return Y},Q.prototype.wrapResult=function(H){var Y=this._reporterState;if(!Y.options.partial)return H;return{result:this.isError(H)?null:H,errors:Y.errors}};function U(H,Y){this.path=H,this.rethrow(Y)}V(U,Error),U.prototype.rethrow=function(H){if(this.message=H+" at: "+(this.path||"(shallow)"),Error.captureStackTrace)Error.captureStackTrace(this,U);if(!this.stack)try{throw Error(this.message)}catch(Y){this.stack=Y.stack}return this}}),_9=D0((K)=>{var V=PV(),Q=N8().Reporter,U=(cK(),D1(pK)).Buffer;function H(z,M){if(Q.call(this,M),!U.isBuffer(z)){this.error("Input not Buffer");return}this.base=z,this.offset=0,this.length=z.length}V(H,Q),K.DecoderBuffer=H,H.prototype.save=function(){return{offset:this.offset,reporter:Q.prototype.save.call(this)}},H.prototype.restore=function(z){var M=new H(this.base);return M.offset=z.offset,M.length=this.offset,this.offset=z.offset,Q.prototype.restore.call(this,z.reporter),M},H.prototype.isEmpty=function(){return this.offset===this.length},H.prototype.readUInt8=function(z){if(this.offset+1<=this.length)return this.base.readUInt8(this.offset++,!0);else return this.error(z||"DecoderBuffer overrun")},H.prototype.skip=function(z,M){if(!(this.offset+z<=this.length))return this.error(M||"DecoderBuffer overrun");var A=new H(this.base);return A._reporterState=this._reporterState,A.offset=this.offset,A.length=this.offset+z,this.offset+=z,A},H.prototype.raw=function(z){return this.base.slice(z?z.offset:this.offset,this.length)};function Y(z,M){if(Array.isArray(z))this.length=0,this.value=z.map(function(A){if(!(A instanceof Y))A=new Y(A,M);return this.length+=A.length,A},this);else if(typeof z==="number"){if(!(0<=z&&z<=255))return M.error("non-byte EncoderBuffer value");this.value=z,this.length=1}else if(typeof z==="string")this.value=z,this.length=U.byteLength(z);else if(U.isBuffer(z))this.value=z,this.length=z.length;else return M.error("Unsupported type: "+typeof z)}K.EncoderBuffer=Y,Y.prototype.join=function(z,M){if(!z)z=new U(this.length);if(!M)M=0;if(this.length===0)return z;if(Array.isArray(this.value))this.value.forEach(function(A){A.join(z,M),M+=A.length});else{if(typeof this.value==="number")z[M]=this.value;else if(typeof this.value==="string")z.write(this.value,M);else if(U.isBuffer(this.value))this.value.copy(z,M);M+=this.length}return z}}),gB=D0((K,V)=>{var Q=N8().Reporter,U=N8().EncoderBuffer,H=N8().DecoderBuffer,Y=zU(),z=["seq","seqof","set","setof","objid","bool","gentime","utctime","null_","enum","int","objDesc","bitstr","bmpstr","charstr","genstr","graphstr","ia5str","iso646str","numstr","octstr","printstr","t61str","unistr","utf8str","videostr"],M=["key","obj","use","optional","explicit","implicit","def","choice","any","contains"].concat(z),A=["_peekTag","_decodeTag","_use","_decodeStr","_decodeObjid","_decodeTime","_decodeNull","_decodeInt","_decodeBool","_decodeList","_encodeComposite","_encodeStr","_encodeObjid","_encodeTime","_encodeNull","_encodeInt","_encodeBool"];function R(F,P){var G={};if(this._baseState=G,G.enc=F,G.parent=P||null,G.children=null,G.tag=null,G.args=null,G.reverseArgs=null,G.choice=null,G.optional=!1,G.any=!1,G.obj=!1,G.use=null,G.useDecoder=null,G.key=null,G.default=null,G.explicit=null,G.implicit=null,G.contains=null,!G.parent)G.children=[],this._wrap()}V.exports=R;var D=["enc","parent","children","tag","args","reverseArgs","choice","optional","any","obj","use","alteredUse","key","default","explicit","implicit","contains"];R.prototype.clone=function(){var F=this._baseState,P={};D.forEach(function(T){P[T]=F[T]});var G=new this.constructor(P.parent);return G._baseState=P,G},R.prototype._wrap=function(){var F=this._baseState;M.forEach(function(P){this[P]=function(){var G=new this.constructor(this);return F.children.push(G),G[P].apply(G,arguments)}},this)},R.prototype._init=function(F){var P=this._baseState;Y(P.parent===null),F.call(this),P.children=P.children.filter(function(G){return G._baseState.parent===this},this),Y.equal(P.children.length,1,"Root node can have only one child")},R.prototype._useArgs=function(F){var P=this._baseState,G=F.filter(function(T){return T instanceof this.constructor},this);if(F=F.filter(function(T){return!(T instanceof this.constructor)},this),G.length!==0)Y(P.children===null),P.children=G,G.forEach(function(T){T._baseState.parent=this},this);if(F.length!==0)Y(P.args===null),P.args=F,P.reverseArgs=F.map(function(T){if(typeof T!=="object"||T.constructor!==Object)return T;var v={};return Object.keys(T).forEach(function(J){if(J==(J|0))J|=0;var k=T[J];v[k]=J}),v})},A.forEach(function(F){R.prototype[F]=function(){var P=this._baseState;throw Error(F+" not implemented for encoding: "+P.enc)}}),z.forEach(function(F){R.prototype[F]=function(){var P=this._baseState,G=Array.prototype.slice.call(arguments);return Y(P.tag===null),P.tag=F,this._useArgs(G),this}}),R.prototype.use=function(F){Y(F);var P=this._baseState;return Y(P.use===null),P.use=F,this},R.prototype.optional=function(){var F=this._baseState;return F.optional=!0,this},R.prototype.def=function(F){var P=this._baseState;return Y(P.default===null),P.default=F,P.optional=!0,this},R.prototype.explicit=function(F){var P=this._baseState;return Y(P.explicit===null&&P.implicit===null),P.explicit=F,this},R.prototype.implicit=function(F){var P=this._baseState;return Y(P.explicit===null&&P.implicit===null),P.implicit=F,this},R.prototype.obj=function(){var F=this._baseState,P=Array.prototype.slice.call(arguments);if(F.obj=!0,P.length!==0)this._useArgs(P);return this},R.prototype.key=function(F){var P=this._baseState;return Y(P.key===null),P.key=F,this},R.prototype.any=function(){var F=this._baseState;return F.any=!0,this},R.prototype.choice=function(F){var P=this._baseState;return Y(P.choice===null),P.choice=F,this._useArgs(Object.keys(F).map(function(G){return F[G]})),this},R.prototype.contains=function(F){var P=this._baseState;return Y(P.use===null),P.contains=F,this},R.prototype._decode=function(F,P){var G=this._baseState;if(G.parent===null)return F.wrapResult(G.children[0]._decode(F,P));var T=G.default,v=!0,J=null;if(G.key!==null)J=F.enterKey(G.key);if(G.optional){var k=null;if(G.explicit!==null)k=G.explicit;else if(G.implicit!==null)k=G.implicit;else if(G.tag!==null)k=G.tag;if(k===null&&!G.any){var f=F.save();try{if(G.choice===null)this._decodeGeneric(G.tag,F,P);else this._decodeChoice(F,P);v=!0}catch(z0){v=!1}F.restore(f)}else if(v=this._peekTag(F,k,G.any),F.isError(v))return v}var j;if(G.obj&&v)j=F.enterObject();if(v){if(G.explicit!==null){var _=this._decodeTag(F,G.explicit);if(F.isError(_))return _;F=_}var p=F.offset;if(G.use===null&&G.choice===null){if(G.any)var f=F.save();var N=this._decodeTag(F,G.implicit!==null?G.implicit:G.tag,G.any);if(F.isError(N))return N;if(G.any)T=F.raw(f);else F=N}if(P&&P.track&&G.tag!==null)P.track(F.path(),p,F.length,"tagged");if(P&&P.track&&G.tag!==null)P.track(F.path(),F.offset,F.length,"content");if(G.any)T=T;else if(G.choice===null)T=this._decodeGeneric(G.tag,F,P);else T=this._decodeChoice(F,P);if(F.isError(T))return T;if(!G.any&&G.choice===null&&G.children!==null)G.children.forEach(function(z0){z0._decode(F,P)});if(G.contains&&(G.tag==="octstr"||G.tag==="bitstr")){var m=new H(T);T=this._getUse(G.contains,F._reporterState.obj)._decode(m,P)}}if(G.obj&&v)T=F.leaveObject(j);if(G.key!==null&&(T!==null||v===!0))F.leaveKey(J,G.key,T);else if(J!==null)F.exitKey(J);return T},R.prototype._decodeGeneric=function(F,P,G){var T=this._baseState;if(F==="seq"||F==="set")return null;if(F==="seqof"||F==="setof")return this._decodeList(P,F,T.args[0],G);else if(/str$/.test(F))return this._decodeStr(P,F,G);else if(F==="objid"&&T.args)return this._decodeObjid(P,T.args[0],T.args[1],G);else if(F==="objid")return this._decodeObjid(P,null,null,G);else if(F==="gentime"||F==="utctime")return this._decodeTime(P,F,G);else if(F==="null_")return this._decodeNull(P,G);else if(F==="bool")return this._decodeBool(P,G);else if(F==="objDesc")return this._decodeStr(P,F,G);else if(F==="int"||F==="enum")return this._decodeInt(P,T.args&&T.args[0],G);if(T.use!==null)return this._getUse(T.use,P._reporterState.obj)._decode(P,G);else return P.error("unknown tag: "+F)},R.prototype._getUse=function(F,P){var G=this._baseState;if(G.useDecoder=this._use(F,P),Y(G.useDecoder._baseState.parent===null),G.useDecoder=G.useDecoder._baseState.children[0],G.implicit!==G.useDecoder._baseState.implicit)G.useDecoder=G.useDecoder.clone(),G.useDecoder._baseState.implicit=G.implicit;return G.useDecoder},R.prototype._decodeChoice=function(F,P){var G=this._baseState,T=null,v=!1;if(Object.keys(G.choice).some(function(J){var k=F.save(),f=G.choice[J];try{var j=f._decode(F,P);if(F.isError(j))return!1;T={type:J,value:j},v=!0}catch(_){return F.restore(k),!1}return!0},this),!v)return F.error("Choice not matched");return T},R.prototype._createEncoderBuffer=function(F){return new U(F,this.reporter)},R.prototype._encode=function(F,P,G){var T=this._baseState;if(T.default!==null&&T.default===F)return;var v=this._encodeValue(F,P,G);if(v===void 0)return;if(this._skipDefault(v,P,G))return;return v},R.prototype._encodeValue=function(F,P,G){var T=this._baseState;if(T.parent===null)return T.children[0]._encode(F,P||new Q);var f=null;if(this.reporter=P,T.optional&&F===void 0)if(T.default!==null)F=T.default;else return;var v=null,J=!1;if(T.any)f=this._createEncoderBuffer(F);else if(T.choice)f=this._encodeChoice(F,P);else if(T.contains)v=this._getUse(T.contains,G)._encode(F,P),J=!0;else if(T.children)v=T.children.map(function(p){if(p._baseState.tag==="null_")return p._encode(null,P,F);if(p._baseState.key===null)return P.error("Child should have a key");var N=P.enterKey(p._baseState.key);if(typeof F!=="object")return P.error("Child expected, but input is not object");var m=p._encode(F[p._baseState.key],P,F);return P.leaveKey(N),m},this).filter(function(p){return p}),v=this._createEncoderBuffer(v);else if(T.tag==="seqof"||T.tag==="setof"){if(!(T.args&&T.args.length===1))return P.error("Too many args for : "+T.tag);if(!Array.isArray(F))return P.error("seqof/setof, but data is not Array");var k=this.clone();k._baseState.implicit=null,v=this._createEncoderBuffer(F.map(function(p){var N=this._baseState;return this._getUse(N.args[0],F)._encode(p,P)},k))}else if(T.use!==null)f=this._getUse(T.use,G)._encode(F,P);else v=this._encodePrimitive(T.tag,F),J=!0;var f;if(!T.any&&T.choice===null){var j=T.implicit!==null?T.implicit:T.tag,_=T.implicit===null?"universal":"context";if(j===null){if(T.use===null)P.error("Tag could be omitted only for .use()")}else if(T.use===null)f=this._encodeComposite(j,J,_,v)}if(T.explicit!==null)f=this._encodeComposite(T.explicit,!1,"context",f);return f},R.prototype._encodeChoice=function(F,P){var G=this._baseState,T=G.choice[F.type];if(!T)Y(!1,F.type+" not found in "+JSON.stringify(Object.keys(G.choice)));return T._encode(F.value,P)},R.prototype._encodePrimitive=function(F,P){var G=this._baseState;if(/str$/.test(F))return this._encodeStr(P,F);else if(F==="objid"&&G.args)return this._encodeObjid(P,G.reverseArgs[0],G.args[1]);else if(F==="objid")return this._encodeObjid(P,null,null);else if(F==="gentime"||F==="utctime")return this._encodeTime(P,F);else if(F==="null_")return this._encodeNull();else if(F==="int"||F==="enum")return this._encodeInt(P,G.args&&G.reverseArgs[0]);else if(F==="bool")return this._encodeBool(P);else if(F==="objDesc")return this._encodeStr(P,F);else throw Error("Unsupported tag: "+F)},R.prototype._isNumstr=function(F){return/^[0-9 ]*$/.test(F)},R.prototype._isPrintstr=function(F){return/^[A-Za-z0-9 '\(\)\+,\-\.\/:=\?]*$/.test(F)}}),N8=D0((K)=>{var V=K;V.Reporter=NB().Reporter,V.DecoderBuffer=_9().DecoderBuffer,V.EncoderBuffer=_9().EncoderBuffer,V.Node=gB()}),yB=D0((K)=>{var V=e9();K.tagClass={0:"universal",1:"application",2:"context",3:"private"},K.tagClassByName=V._reverse(K.tagClass),K.tag={0:"end",1:"bool",2:"int",3:"bitstr",4:"octstr",5:"null_",6:"objid",7:"objDesc",8:"external",9:"real",10:"enum",11:"embed",12:"utf8str",13:"relativeOid",16:"seq",17:"set",18:"numstr",19:"printstr",20:"t61str",21:"videostr",22:"ia5str",23:"utctime",24:"gentime",25:"graphstr",26:"iso646str",27:"genstr",28:"unistr",29:"charstr",30:"bmpstr"},K.tagByName=V._reverse(K.tag)}),e9=D0((K)=>{var V=K;V._reverse=function(Q){var U={};return Object.keys(Q).forEach(function(H){if((H|0)==H)H=H|0;var Y=Q[H];U[Y]=H}),U},V.der=yB()}),KA=D0((K,V)=>{var Q=PV(),U=c8(),H=U.base,Y=U.bignum,z=U.constants.der;function M(F){this.enc="der",this.name=F.name,this.entity=F,this.tree=new A,this.tree._init(F.body)}V.exports=M,M.prototype.decode=function(F,P){if(!(F instanceof H.DecoderBuffer))F=new H.DecoderBuffer(F,P);return this.tree._decode(F,P)};function A(F){H.Node.call(this,"der",F)}Q(A,H.Node),A.prototype._peekTag=function(F,P,G){if(F.isEmpty())return!1;var T=F.save(),v=R(F,'Failed to peek tag: "'+P+'"');if(F.isError(v))return v;return F.restore(T),v.tag===P||v.tagStr===P||v.tagStr+"of"===P||G},A.prototype._decodeTag=function(F,P,G){var T=R(F,'Failed to decode tag of "'+P+'"');if(F.isError(T))return T;var v=D(F,T.primitive,'Failed to get length of "'+P+'"');if(F.isError(v))return v;if(!G&&T.tag!==P&&T.tagStr!==P&&T.tagStr+"of"!==P)return F.error('Failed to match tag: "'+P+'"');if(T.primitive||v!==null)return F.skip(v,'Failed to match body of: "'+P+'"');var J=F.save(),k=this._skipUntilEnd(F,'Failed to skip indefinite length body: "'+this.tag+'"');if(F.isError(k))return k;return v=F.offset-J.offset,F.restore(J),F.skip(v,'Failed to match body of: "'+P+'"')},A.prototype._skipUntilEnd=function(F,P){while(!0){var G=R(F,P);if(F.isError(G))return G;var T=D(F,G.primitive,P);if(F.isError(T))return T;var v;if(G.primitive||T!==null)v=F.skip(T);else v=this._skipUntilEnd(F,P);if(F.isError(v))return v;if(G.tagStr==="end")break}},A.prototype._decodeList=function(F,P,G,T){var v=[];while(!F.isEmpty()){var J=this._peekTag(F,"end");if(F.isError(J))return J;var k=G.decode(F,"der",T);if(F.isError(k)&&J)break;v.push(k)}return v},A.prototype._decodeStr=function(F,P){if(P==="bitstr"){var G=F.readUInt8();if(F.isError(G))return G;return{unused:G,data:F.raw()}}else if(P==="bmpstr"){var T=F.raw();if(T.length%2===1)return F.error("Decoding of string type: bmpstr length mismatch");var v="";for(var J=0;J>6],v=(G&32)===0;if((G&31)===31){var J=G;G=0;while((J&128)===128){if(J=F.readUInt8(P),F.isError(J))return J;G<<=7,G|=J&127}}else G&=31;var k=z.tag[G];return{cls:T,primitive:v,tag:G,tagStr:k}}function D(F,P,G){var T=F.readUInt8(G);if(F.isError(T))return T;if(!P&&T===128)return null;if((T&128)===0)return T;var v=T&127;if(v>4)return F.error("length octect is too long");T=0;for(var J=0;J{var Q=PV(),U=(cK(),D1(pK)).Buffer,H=KA();function Y(z){H.call(this,z),this.enc="pem"}Q(Y,H),V.exports=Y,Y.prototype.decode=function(z,M){var A=z.toString().split(/[\r\n]+/g),R=M.label.toUpperCase(),D=/^-----(BEGIN|END) ([^-]+)-----$/,F=-1,P=-1;for(var G=0;G{var V=K;V.der=KA(),V.pem=hB()}),VA=D0((K,V)=>{var Q=PV(),U=(cK(),D1(pK)).Buffer,H=c8(),Y=H.base,z=H.constants.der;function M(F){this.enc="der",this.name=F.name,this.entity=F,this.tree=new A,this.tree._init(F.body)}V.exports=M,M.prototype.encode=function(F,P){return this.tree._encode(F,P).join()};function A(F){Y.Node.call(this,"der",F)}Q(A,Y.Node),A.prototype._encodeComposite=function(F,P,G,T){var v=D(F,P,G,this.reporter);if(T.length<128){var f=new U(2);return f[0]=v,f[1]=T.length,this._createEncoderBuffer([f,T])}var J=1;for(var k=T.length;k>=256;k>>=8)J++;var f=new U(2+J);f[0]=v,f[1]=128|J;for(var k=1+J,j=T.length;j>0;k--,j>>=8)f[k]=j&255;return this._createEncoderBuffer([f,T])},A.prototype._encodeStr=function(F,P){if(P==="bitstr")return this._createEncoderBuffer([F.unused|0,F.data]);else if(P==="bmpstr"){var G=new U(F.length*2);for(var T=0;T=40)return this.reporter.error("Second objid identifier OOB");F.splice(0,2,F[0]*40+F[1])}var v=0;for(var T=0;T=128;J>>=7)v++}var k=new U(v),f=k.length-1;for(var T=F.length-1;T>=0;T--){var J=F[T];k[f--]=J&127;while((J>>=7)>0)k[f--]=128|J&127}return this._createEncoderBuffer(k)};function R(F){if(F<10)return"0"+F;else return F}A.prototype._encodeTime=function(F,P){var G,T=new Date(F);if(P==="gentime")G=[R(T.getFullYear()),R(T.getUTCMonth()+1),R(T.getUTCDate()),R(T.getUTCHours()),R(T.getUTCMinutes()),R(T.getUTCSeconds()),"Z"].join("");else if(P==="utctime")G=[R(T.getFullYear()%100),R(T.getUTCMonth()+1),R(T.getUTCDate()),R(T.getUTCHours()),R(T.getUTCMinutes()),R(T.getUTCSeconds()),"Z"].join("");else this.reporter.error("Encoding "+P+" time is not supported yet");return this._encodeStr(G,"octstr")},A.prototype._encodeNull=function(){return this._createEncoderBuffer("")},A.prototype._encodeInt=function(F,P){if(typeof F==="string"){if(!P)return this.reporter.error("String int or enum given, but no values map");if(!P.hasOwnProperty(F))return this.reporter.error("Values map doesn't contain: "+JSON.stringify(F));F=P[F]}if(typeof F!=="number"&&!U.isBuffer(F)){var G=F.toArray();if(!F.sign&&G[0]&128)G.unshift(0);F=new U(G)}if(U.isBuffer(F)){var T=F.length;if(F.length===0)T++;var J=new U(T);if(F.copy(J),F.length===0)J[0]=0;return this._createEncoderBuffer(J)}if(F<128)return this._createEncoderBuffer(F);if(F<256)return this._createEncoderBuffer([0,F]);var T=1;for(var v=F;v>=256;v>>=8)T++;var J=Array(T);for(var v=J.length-1;v>=0;v--)J[v]=F&255,F>>=8;if(J[0]&128)J.unshift(0);return this._createEncoderBuffer(new U(J))},A.prototype._encodeBool=function(F){return this._createEncoderBuffer(F?255:0)},A.prototype._use=function(F,P){if(typeof F==="function")F=F(P);return F._getEncoder("der").tree},A.prototype._skipDefault=function(F,P,G){var T=this._baseState,v;if(T.default===null)return!1;var J=F.join();if(T.defaultBuffer===void 0)T.defaultBuffer=this._encodeValue(T.default,P,G).join();if(J.length!==T.defaultBuffer.length)return!1;for(v=0;v=31)return T.error("Multi-octet tag encoding unsupported");if(!P)v|=32;return v|=z.tagClassByName[G||"universal"]<<6,v}}),cB=D0((K,V)=>{var Q=PV(),U=VA();function H(Y){U.call(this,Y),this.enc="pem"}Q(H,U),V.exports=H,H.prototype.encode=function(Y,z){var M=U.prototype.encode.call(this,Y),A=M.toString("base64"),R=["-----BEGIN "+z.label+"-----"];for(var D=0;D{var V=K;V.der=VA(),V.pem=cB()}),c8=D0((K)=>{var V=K;V.bignum=xB(),V.define=_B().define,V.base=N8(),V.constants=e9(),V.decoders=pB(),V.encoders=uB()}),bB=D0((K,V)=>{var Q=c8(),U=Q.define("Time",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),H=Q.define("AttributeTypeValue",function(){this.seq().obj(this.key("type").objid(),this.key("value").any())}),Y=Q.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("parameters").optional(),this.key("curve").objid().optional())}),z=Q.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(Y),this.key("subjectPublicKey").bitstr())}),M=Q.define("RelativeDistinguishedName",function(){this.setof(H)}),A=Q.define("RDNSequence",function(){this.seqof(M)}),R=Q.define("Name",function(){this.choice({rdnSequence:this.use(A)})}),D=Q.define("Validity",function(){this.seq().obj(this.key("notBefore").use(U),this.key("notAfter").use(U))}),F=Q.define("Extension",function(){this.seq().obj(this.key("extnID").objid(),this.key("critical").bool().def(!1),this.key("extnValue").octstr())}),P=Q.define("TBSCertificate",function(){this.seq().obj(this.key("version").explicit(0).int().optional(),this.key("serialNumber").int(),this.key("signature").use(Y),this.key("issuer").use(R),this.key("validity").use(D),this.key("subject").use(R),this.key("subjectPublicKeyInfo").use(z),this.key("issuerUniqueID").implicit(1).bitstr().optional(),this.key("subjectUniqueID").implicit(2).bitstr().optional(),this.key("extensions").explicit(3).seqof(F).optional())}),G=Q.define("X509Certificate",function(){this.seq().obj(this.key("tbsCertificate").use(P),this.key("signatureAlgorithm").use(Y),this.key("signatureValue").bitstr())});V.exports=G}),lB=D0((K)=>{var V=c8();K.certificate=bB();var Q=V.define("RSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("modulus").int(),this.key("publicExponent").int(),this.key("privateExponent").int(),this.key("prime1").int(),this.key("prime2").int(),this.key("exponent1").int(),this.key("exponent2").int(),this.key("coefficient").int())});K.RSAPrivateKey=Q;var U=V.define("RSAPublicKey",function(){this.seq().obj(this.key("modulus").int(),this.key("publicExponent").int())});K.RSAPublicKey=U;var H=V.define("AlgorithmIdentifier",function(){this.seq().obj(this.key("algorithm").objid(),this.key("none").null_().optional(),this.key("curve").objid().optional(),this.key("params").seq().obj(this.key("p").int(),this.key("q").int(),this.key("g").int()).optional())}),Y=V.define("SubjectPublicKeyInfo",function(){this.seq().obj(this.key("algorithm").use(H),this.key("subjectPublicKey").bitstr())});K.PublicKey=Y;var z=V.define("PrivateKeyInfo",function(){this.seq().obj(this.key("version").int(),this.key("algorithm").use(H),this.key("subjectPrivateKey").octstr())});K.PrivateKey=z;var M=V.define("EncryptedPrivateKeyInfo",function(){this.seq().obj(this.key("algorithm").seq().obj(this.key("id").objid(),this.key("decrypt").seq().obj(this.key("kde").seq().obj(this.key("id").objid(),this.key("kdeparams").seq().obj(this.key("salt").octstr(),this.key("iters").int())),this.key("cipher").seq().obj(this.key("algo").objid(),this.key("iv").octstr()))),this.key("subjectPrivateKey").octstr())});K.EncryptedPrivateKey=M;var A=V.define("DSAPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("p").int(),this.key("q").int(),this.key("g").int(),this.key("pub_key").int(),this.key("priv_key").int())});K.DSAPrivateKey=A,K.DSAparam=V.define("DSAparam",function(){this.int()});var R=V.define("ECParameters",function(){this.choice({namedCurve:this.objid()})}),D=V.define("ECPrivateKey",function(){this.seq().obj(this.key("version").int(),this.key("privateKey").octstr(),this.key("parameters").optional().explicit(0).use(R),this.key("publicKey").optional().explicit(1).bitstr())});K.ECPrivateKey=D,K.signature=V.define("signature",function(){this.seq().obj(this.key("r").int(),this.key("s").int())})}),dB=D0((K,V)=>{V.exports={"2.16.840.1.101.3.4.1.1":"aes-128-ecb","2.16.840.1.101.3.4.1.2":"aes-128-cbc","2.16.840.1.101.3.4.1.3":"aes-128-ofb","2.16.840.1.101.3.4.1.4":"aes-128-cfb","2.16.840.1.101.3.4.1.21":"aes-192-ecb","2.16.840.1.101.3.4.1.22":"aes-192-cbc","2.16.840.1.101.3.4.1.23":"aes-192-ofb","2.16.840.1.101.3.4.1.24":"aes-192-cfb","2.16.840.1.101.3.4.1.41":"aes-256-ecb","2.16.840.1.101.3.4.1.42":"aes-256-cbc","2.16.840.1.101.3.4.1.43":"aes-256-ofb","2.16.840.1.101.3.4.1.44":"aes-256-cfb"}}),sB=D0((K,V)=>{var Q=QV().Buffer,U=T2().Transform,H=PV();function Y(R){U.call(this),this._block=Q.allocUnsafe(R),this._blockSize=R,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}H(Y,U),Y.prototype._transform=function(R,D,F){var P=null;try{this.update(R,D)}catch(G){P=G}F(P)},Y.prototype._flush=function(R){var D=null;try{this.push(this.digest())}catch(F){D=F}R(D)};var z=typeof Uint8Array<"u",M=typeof ArrayBuffer<"u"&&typeof Uint8Array<"u"&&ArrayBuffer.isView&&(Q.prototype instanceof Uint8Array||Q.TYPED_ARRAY_SUPPORT);function A(R,D){if(R instanceof Q)return R;if(typeof R==="string")return Q.from(R,D);if(M&&ArrayBuffer.isView(R)){if(R.byteLength===0)return Q.alloc(0);var F=Q.from(R.buffer,R.byteOffset,R.byteLength);if(F.byteLength===R.byteLength)return F}if(z&&R instanceof Uint8Array)return Q.from(R);if(Q.isBuffer(R)&&R.constructor&&typeof R.constructor.isBuffer==="function"&&R.constructor.isBuffer(R))return Q.from(R);throw TypeError('The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}Y.prototype.update=function(R,D){if(this._finalized)throw Error("Digest already called");R=A(R,D);var F=this._block,P=0;while(this._blockOffset+R.length-P>=this._blockSize){for(var G=this._blockOffset;G0;++T)if(this._length[T]+=v,v=this._length[T]/4294967296|0,v>0)this._length[T]-=4294967296*v;return this},Y.prototype._update=function(){throw Error("_update is not implemented")},Y.prototype.digest=function(R){if(this._finalized)throw Error("Digest already called");this._finalized=!0;var D=this._digest();if(R!==void 0)D=D.toString(R);this._block.fill(0),this._blockOffset=0;for(var F=0;F<4;++F)this._length[F]=0;return D},Y.prototype._digest=function(){throw Error("_digest is not implemented")},V.exports=Y}),oB=D0((K,V)=>{var Q=PV(),U=sB(),H=QV().Buffer,Y=Array(16);function z(){U.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}Q(z,U),z.prototype._update=function(){var P=Y;for(var G=0;G<16;++G)P[G]=this._block.readInt32LE(G*4);var T=this._a,v=this._b,J=this._c,k=this._d;T=A(T,v,J,k,P[0],3614090360,7),k=A(k,T,v,J,P[1],3905402710,12),J=A(J,k,T,v,P[2],606105819,17),v=A(v,J,k,T,P[3],3250441966,22),T=A(T,v,J,k,P[4],4118548399,7),k=A(k,T,v,J,P[5],1200080426,12),J=A(J,k,T,v,P[6],2821735955,17),v=A(v,J,k,T,P[7],4249261313,22),T=A(T,v,J,k,P[8],1770035416,7),k=A(k,T,v,J,P[9],2336552879,12),J=A(J,k,T,v,P[10],4294925233,17),v=A(v,J,k,T,P[11],2304563134,22),T=A(T,v,J,k,P[12],1804603682,7),k=A(k,T,v,J,P[13],4254626195,12),J=A(J,k,T,v,P[14],2792965006,17),v=A(v,J,k,T,P[15],1236535329,22),T=R(T,v,J,k,P[1],4129170786,5),k=R(k,T,v,J,P[6],3225465664,9),J=R(J,k,T,v,P[11],643717713,14),v=R(v,J,k,T,P[0],3921069994,20),T=R(T,v,J,k,P[5],3593408605,5),k=R(k,T,v,J,P[10],38016083,9),J=R(J,k,T,v,P[15],3634488961,14),v=R(v,J,k,T,P[4],3889429448,20),T=R(T,v,J,k,P[9],568446438,5),k=R(k,T,v,J,P[14],3275163606,9),J=R(J,k,T,v,P[3],4107603335,14),v=R(v,J,k,T,P[8],1163531501,20),T=R(T,v,J,k,P[13],2850285829,5),k=R(k,T,v,J,P[2],4243563512,9),J=R(J,k,T,v,P[7],1735328473,14),v=R(v,J,k,T,P[12],2368359562,20),T=D(T,v,J,k,P[5],4294588738,4),k=D(k,T,v,J,P[8],2272392833,11),J=D(J,k,T,v,P[11],1839030562,16),v=D(v,J,k,T,P[14],4259657740,23),T=D(T,v,J,k,P[1],2763975236,4),k=D(k,T,v,J,P[4],1272893353,11),J=D(J,k,T,v,P[7],4139469664,16),v=D(v,J,k,T,P[10],3200236656,23),T=D(T,v,J,k,P[13],681279174,4),k=D(k,T,v,J,P[0],3936430074,11),J=D(J,k,T,v,P[3],3572445317,16),v=D(v,J,k,T,P[6],76029189,23),T=D(T,v,J,k,P[9],3654602809,4),k=D(k,T,v,J,P[12],3873151461,11),J=D(J,k,T,v,P[15],530742520,16),v=D(v,J,k,T,P[2],3299628645,23),T=F(T,v,J,k,P[0],4096336452,6),k=F(k,T,v,J,P[7],1126891415,10),J=F(J,k,T,v,P[14],2878612391,15),v=F(v,J,k,T,P[5],4237533241,21),T=F(T,v,J,k,P[12],1700485571,6),k=F(k,T,v,J,P[3],2399980690,10),J=F(J,k,T,v,P[10],4293915773,15),v=F(v,J,k,T,P[1],2240044497,21),T=F(T,v,J,k,P[8],1873313359,6),k=F(k,T,v,J,P[15],4264355552,10),J=F(J,k,T,v,P[6],2734768916,15),v=F(v,J,k,T,P[13],1309151649,21),T=F(T,v,J,k,P[4],4149444226,6),k=F(k,T,v,J,P[11],3174756917,10),J=F(J,k,T,v,P[2],718787259,15),v=F(v,J,k,T,P[9],3951481745,21),this._a=this._a+T|0,this._b=this._b+v|0,this._c=this._c+J|0,this._d=this._d+k|0},z.prototype._digest=function(){if(this._block[this._blockOffset++]=128,this._blockOffset>56)this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0;this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var P=H.allocUnsafe(16);return P.writeInt32LE(this._a,0),P.writeInt32LE(this._b,4),P.writeInt32LE(this._c,8),P.writeInt32LE(this._d,12),P};function M(P,G){return P<>>32-G}function A(P,G,T,v,J,k,f){return M(P+(G&T|~G&v)+J+k|0,f)+G|0}function R(P,G,T,v,J,k,f){return M(P+(G&v|T&~v)+J+k|0,f)+G|0}function D(P,G,T,v,J,k,f){return M(P+(G^T^v)+J+k|0,f)+G|0}function F(P,G,T,v,J,k,f){return M(P+(T^(G|~v))+J+k|0,f)+G|0}V.exports=z}),mB=D0((K,V)=>{var Q=QV().Buffer,U=oB();function H(Y,z,M,A){if(!Q.isBuffer(Y))Y=Q.from(Y,"binary");if(z){if(!Q.isBuffer(z))z=Q.from(z,"binary");if(z.length!==8)throw RangeError("salt should be Buffer with 8 byte length")}var R=M/8,D=Q.alloc(R),F=Q.alloc(A||0),P=Q.alloc(0);while(R>0||A>0){var G=new U;if(G.update(P),G.update(Y),z)G.update(z);P=G.digest();var T=0;if(R>0){var v=D.length-R;T=Math.min(R,P.length),P.copy(D,v,0,T),R-=T}if(T0){var J=F.length-A,k=Math.min(A,P.length-T);P.copy(F,J,T,T+k),A-=k}}return P.fill(0),{key:D,iv:F}}V.exports=H}),QA=D0((K)=>{var V=(WV(),D1(MV));K.createCipher=K.Cipher=V.createCipher,K.createCipheriv=K.Cipheriv=V.createCipheriv,K.createDecipher=K.Decipher=V.createDecipher,K.createDecipheriv=K.Decipheriv=V.createDecipheriv,K.listCiphers=K.getCiphers=V.getCiphers}),nB=D0((K,V)=>{var Q=/Proc-Type: 4,ENCRYPTED[\n\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\n\r]+([0-9A-z\n\r+/=]+)[\n\r]+/m,U=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,H=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\n\r+/=]+)-----END \1-----$/m,Y=mB(),z=QA(),M=QV().Buffer;V.exports=function(A,R){var D=A.toString(),F=D.match(Q),P;if(!F){var G=D.match(H);P=M.from(G[2].replace(/[\r\n]/g,""),"base64")}else{var T="aes"+F[1],v=M.from(F[2],"hex"),J=M.from(F[3].replace(/[\r\n]/g,""),"base64"),k=Y(R,v.slice(0,8),parseInt(F[1],10)).key,f=[],j=z.createDecipheriv(T,k,v);f.push(j.update(J)),f.push(j.final()),P=M.concat(f)}var _=D.match(U)[1];return{tag:_,data:P}}}),UA=D0((K,V)=>{var Q=lB(),U=dB(),H=nB(),Y=QA(),z=o9().pbkdf2Sync,M=QV().Buffer;function A(D,F){var P=D.algorithm.decrypt.kde.kdeparams.salt,G=parseInt(D.algorithm.decrypt.kde.kdeparams.iters.toString(),10),T=U[D.algorithm.decrypt.cipher.algo.join(".")],v=D.algorithm.decrypt.cipher.iv,J=D.subjectPrivateKey,k=parseInt(T.split("-")[1],10)/8,f=z(F,P,G,k,"sha1"),j=Y.createDecipheriv(T,f,v),_=[];return _.push(j.update(J)),_.push(j.final()),M.concat(_)}function R(D){var F;if(typeof D==="object"&&!M.isBuffer(D))F=D.passphrase,D=D.key;if(typeof D==="string")D=M.from(D);var P=H(D,F),G=P.tag,T=P.data,v,J;switch(G){case"CERTIFICATE":J=Q.certificate.decode(T,"der").tbsCertificate.subjectPublicKeyInfo;case"PUBLIC KEY":if(!J)J=Q.PublicKey.decode(T,"der");switch(v=J.algorithm.algorithm.join("."),v){case"1.2.840.113549.1.1.1":return Q.RSAPublicKey.decode(J.subjectPublicKey.data,"der");case"1.2.840.10045.2.1":return J.subjectPrivateKey=J.subjectPublicKey,{type:"ec",data:J};case"1.2.840.10040.4.1":return J.algorithm.params.pub_key=Q.DSAparam.decode(J.subjectPublicKey.data,"der"),{type:"dsa",data:J.algorithm.params};default:throw Error("unknown key id "+v)}case"ENCRYPTED PRIVATE KEY":T=Q.EncryptedPrivateKey.decode(T,"der"),T=A(T,F);case"PRIVATE KEY":switch(J=Q.PrivateKey.decode(T,"der"),v=J.algorithm.algorithm.join("."),v){case"1.2.840.113549.1.1.1":return Q.RSAPrivateKey.decode(J.subjectPrivateKey,"der");case"1.2.840.10045.2.1":return{curve:J.algorithm.curve,privateKey:Q.ECPrivateKey.decode(J.subjectPrivateKey,"der").privateKey};case"1.2.840.10040.4.1":return J.algorithm.params.priv_key=Q.DSAparam.decode(J.subjectPrivateKey,"der"),{type:"dsa",params:J.algorithm.params};default:throw Error("unknown key id "+v)}case"RSA PUBLIC KEY":return Q.RSAPublicKey.decode(T,"der");case"RSA PRIVATE KEY":return Q.RSAPrivateKey.decode(T,"der");case"DSA PRIVATE KEY":return{type:"dsa",params:Q.DSAPrivateKey.decode(T,"der")};case"EC PRIVATE KEY":return T=Q.ECPrivateKey.decode(T,"der"),{curve:T.parameters.value,privateKey:T.privateKey};default:throw Error("unknown key type "+G)}}R.signature=Q.signature,V.exports=R}),HA=D0((K,V)=>{var Q=_L(),U=QV().Buffer;V.exports=function(Y,z){var M=U.alloc(0),A=0,R;while(M.length{V.exports=function(Q,U){var H=Q.length,Y=-1;while(++Y{(function(Q,U){function H(L,O){if(!L)throw Error(O||"Assertion failed")}function Y(L,O){L.super_=O;var X=function(){};X.prototype=O.prototype,L.prototype=new X,L.prototype.constructor=L}function z(L,O,X){if(z.isBN(L))return L;if(this.negative=0,this.words=null,this.length=0,this.red=null,L!==null){if(O==="le"||O==="be")X=O,O=10;this._init(L||0,O||10,X||"be")}}if(typeof Q==="object")Q.exports=z;else U.BN=z;z.BN=z,z.wordSize=26;var M;try{if(typeof window<"u"&&typeof window.Buffer<"u")M=window.Buffer;else M=(cK(),D1(pK)).Buffer}catch(L){}z.isBN=function(L){if(L instanceof z)return!0;return L!==null&&typeof L==="object"&&L.constructor.wordSize===z.wordSize&&Array.isArray(L.words)},z.max=function(L,O){if(L.cmp(O)>0)return L;return O},z.min=function(L,O){if(L.cmp(O)<0)return L;return O},z.prototype._init=function(L,O,X){if(typeof L==="number")return this._initNumber(L,O,X);if(typeof L==="object")return this._initArray(L,O,X);if(O==="hex")O=16;H(O===(O|0)&&O>=2&&O<=36),L=L.toString().replace(/\s+/g,"");var q=0;if(L[0]==="-")q++,this.negative=1;if(q=0;q-=3)if(C=L[q]|L[q-1]<<8|L[q-2]<<16,this.words[W]|=C<>>26-I&67108863,I+=24,I>=26)I-=26,W++}else if(X==="le"){for(q=0,W=0;q>>26-I&67108863,I+=24,I>=26)I-=26,W++}return this.strip()};function A(L,O){var X=L.charCodeAt(O);if(X>=65&&X<=70)return X-55;else if(X>=97&&X<=102)return X-87;else return X-48&15}function R(L,O,X){var q=A(L,X);if(X-1>=O)q|=A(L,X-1)<<4;return q}z.prototype._parseHex=function(L,O,X){this.length=Math.ceil((L.length-O)/6),this.words=Array(this.length);for(var q=0;q=O;q-=2)if(I=R(L,O,q)<=18)W-=18,C+=1,this.words[C]|=I>>>26;else W+=8;else{var $=L.length-O;for(q=$%2===0?O+1:O;q=18)W-=18,C+=1,this.words[C]|=I>>>26;else W+=8}this.strip()};function D(L,O,X,q){var W=0,C=Math.min(L.length,X);for(var I=O;I=49)W+=$-49+10;else if($>=17)W+=$-17+10;else W+=$}return W}z.prototype._parseBase=function(L,O,X){this.words=[0],this.length=1;for(var q=0,W=1;W<=67108863;W*=O)q++;q--,W=W/O|0;var C=L.length-X,I=C%q,$=Math.min(C,C-I)+X,Z=0;for(var S=X;S<$;S+=q)if(Z=D(L,S,S+q,O),this.imuln(W),this.words[0]+Z<67108864)this.words[0]+=Z;else this._iaddn(Z);if(I!==0){var B=1;Z=D(L,S,L.length,O);for(S=0;S1&&this.words[this.length-1]===0)this.length--;return this._normSign()},z.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},z.prototype.inspect=function(){return(this.red?""};var F=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],P=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],G=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(z.prototype.toString=function(L,O){L=L||10,O=O|0||1;var X;if(L===16||L==="hex"){X="";var q=0,W=0;for(var C=0;C>>24-q&16777215,q+=2,q>=26)q-=26,C--;if(W!==0||C!==this.length-1)X=F[6-$.length]+$+X;else X=$+X}if(W!==0)X=W.toString(16)+X;while(X.length%O!==0)X="0"+X;if(this.negative!==0)X="-"+X;return X}if(L===(L|0)&&L>=2&&L<=36){var Z=P[L],S=G[L];X="";var B=this.clone();B.negative=0;while(!B.isZero()){var E=B.modn(S).toString(L);if(B=B.idivn(S),!B.isZero())X=F[Z-E.length]+E+X;else X=E+X}if(this.isZero())X="0"+X;while(X.length%O!==0)X="0"+X;if(this.negative!==0)X="-"+X;return X}H(!1,"Base should be between 2 and 36")},z.prototype.toNumber=function(){var L=this.words[0];if(this.length===2)L+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)L+=4503599627370496+this.words[1]*67108864;else if(this.length>2)H(!1,"Number can only safely store up to 53 bits");return this.negative!==0?-L:L},z.prototype.toJSON=function(){return this.toString(16)},z.prototype.toBuffer=function(L,O){return H(typeof M<"u"),this.toArrayLike(M,L,O)},z.prototype.toArray=function(L,O){return this.toArrayLike(Array,L,O)},z.prototype.toArrayLike=function(L,O,X){var q=this.byteLength(),W=X||Math.max(1,q);H(q<=W,"byte array longer than desired length"),H(W>0,"Requested array length <= 0"),this.strip();var C=O==="le",I=new L(W),$,Z,S=this.clone();if(!C){for(Z=0;Z=4096)X+=13,O>>>=13;if(O>=64)X+=7,O>>>=7;if(O>=8)X+=4,O>>>=4;if(O>=2)X+=2,O>>>=2;return X+O};z.prototype._zeroBits=function(L){if(L===0)return 26;var O=L,X=0;if((O&8191)===0)X+=13,O>>>=13;if((O&127)===0)X+=7,O>>>=7;if((O&15)===0)X+=4,O>>>=4;if((O&3)===0)X+=2,O>>>=2;if((O&1)===0)X++;return X},z.prototype.bitLength=function(){var L=this.words[this.length-1],O=this._countBits(L);return(this.length-1)*26+O};function T(L){var O=Array(L.bitLength());for(var X=0;X>>W}return O}z.prototype.zeroBits=function(){if(this.isZero())return 0;var L=0;for(var O=0;OL.length)return this.clone().ior(L);return L.clone().ior(this)},z.prototype.uor=function(L){if(this.length>L.length)return this.clone().iuor(L);return L.clone().iuor(this)},z.prototype.iuand=function(L){var O;if(this.length>L.length)O=L;else O=this;for(var X=0;XL.length)return this.clone().iand(L);return L.clone().iand(this)},z.prototype.uand=function(L){if(this.length>L.length)return this.clone().iuand(L);return L.clone().iuand(this)},z.prototype.iuxor=function(L){var O,X;if(this.length>L.length)O=this,X=L;else O=L,X=this;for(var q=0;qL.length)return this.clone().ixor(L);return L.clone().ixor(this)},z.prototype.uxor=function(L){if(this.length>L.length)return this.clone().iuxor(L);return L.clone().iuxor(this)},z.prototype.inotn=function(L){H(typeof L==="number"&&L>=0);var O=Math.ceil(L/26)|0,X=L%26;if(this._expand(O),X>0)O--;for(var q=0;q0)this.words[q]=~this.words[q]&67108863>>26-X;return this.strip()},z.prototype.notn=function(L){return this.clone().inotn(L)},z.prototype.setn=function(L,O){H(typeof L==="number"&&L>=0);var X=L/26|0,q=L%26;if(this._expand(X+1),O)this.words[X]=this.words[X]|1<L.length)X=this,q=L;else X=L,q=this;var W=0;for(var C=0;C>>26;for(;W!==0&&C>>26;if(this.length=X.length,W!==0)this.words[this.length]=W,this.length++;else if(X!==this)for(;CL.length)return this.clone().iadd(L);return L.clone().iadd(this)},z.prototype.isub=function(L){if(L.negative!==0){L.negative=0;var O=this.iadd(L);return L.negative=1,O._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(L),this.negative=1,this._normSign();var X=this.cmp(L);if(X===0)return this.negative=0,this.length=1,this.words[0]=0,this;var q,W;if(X>0)q=this,W=L;else q=L,W=this;var C=0;for(var I=0;I>26,this.words[I]=O&67108863;for(;C!==0&&I>26,this.words[I]=O&67108863;if(C===0&&I>>26,E=Z&67108863,w=Math.min(S,O.length-1);for(var h=Math.max(0,S-L.length+1);h<=w;h++){var u=S-h|0;W=L.words[u]|0,C=O.words[h]|0,I=W*C+E,B+=I/67108864|0,E=I&67108863}X.words[S]=E|0,Z=B|0}if(Z!==0)X.words[S]=Z|0;else X.length--;return X.strip()}var J=function(L,O,X){var q=L.words,W=O.words,C=X.words,I=0,$,Z,S,B=q[0]|0,E=B&8191,w=B>>>13,h=q[1]|0,u=h&8191,t=h>>>13,F0=q[2]|0,K0=F0&8191,r=F0>>>13,A0=q[3]|0,e=A0&8191,Y0=A0>>>13,r0=q[4]|0,b=r0&8191,o=r0>>>13,R0=q[5]|0,Q0=R0&8191,H0=R0>>>13,N0=q[6]|0,d=N0&8191,a=N0>>>13,o0=q[7]|0,V0=o0&8191,W0=o0>>>13,H1=q[8]|0,G0=H1&8191,T0=H1>>>13,v1=q[9]|0,P0=v1&8191,E0=v1>>>13,i1=W[0]|0,x0=i1&8191,k0=i1>>>13,N1=W[1]|0,w0=N1&8191,f0=N1>>>13,zK=W[2]|0,c0=zK&8191,g0=zK>>>13,VK=W[3]|0,u0=VK&8191,y0=VK>>>13,g1=W[4]|0,s0=g1&8191,b0=g1>>>13,t1=W[5]|0,h0=t1&8191,g=t1>>>13,n=W[6]|0,U0=n&8191,O0=n>>>13,i0=W[7]|0,C0=i0&8191,B0=i0>>>13,k1=W[8]|0,l0=k1&8191,d0=k1>>>13,QK=W[9]|0,p0=QK&8191,_0=QK>>>13;X.negative=L.negative^O.negative,X.length=19,$=Math.imul(E,x0),Z=Math.imul(E,k0),Z=Z+Math.imul(w,x0)|0,S=Math.imul(w,k0);var P1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(P1>>>26)|0,P1&=67108863,$=Math.imul(u,x0),Z=Math.imul(u,k0),Z=Z+Math.imul(t,x0)|0,S=Math.imul(t,k0),$=$+Math.imul(E,w0)|0,Z=Z+Math.imul(E,f0)|0,Z=Z+Math.imul(w,w0)|0,S=S+Math.imul(w,f0)|0;var Z1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(Z1>>>26)|0,Z1&=67108863,$=Math.imul(K0,x0),Z=Math.imul(K0,k0),Z=Z+Math.imul(r,x0)|0,S=Math.imul(r,k0),$=$+Math.imul(u,w0)|0,Z=Z+Math.imul(u,f0)|0,Z=Z+Math.imul(t,w0)|0,S=S+Math.imul(t,f0)|0,$=$+Math.imul(E,c0)|0,Z=Z+Math.imul(E,g0)|0,Z=Z+Math.imul(w,c0)|0,S=S+Math.imul(w,g0)|0;var Y1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(Y1>>>26)|0,Y1&=67108863,$=Math.imul(e,x0),Z=Math.imul(e,k0),Z=Z+Math.imul(Y0,x0)|0,S=Math.imul(Y0,k0),$=$+Math.imul(K0,w0)|0,Z=Z+Math.imul(K0,f0)|0,Z=Z+Math.imul(r,w0)|0,S=S+Math.imul(r,f0)|0,$=$+Math.imul(u,c0)|0,Z=Z+Math.imul(u,g0)|0,Z=Z+Math.imul(t,c0)|0,S=S+Math.imul(t,g0)|0,$=$+Math.imul(E,u0)|0,Z=Z+Math.imul(E,y0)|0,Z=Z+Math.imul(w,u0)|0,S=S+Math.imul(w,y0)|0;var F1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(F1>>>26)|0,F1&=67108863,$=Math.imul(b,x0),Z=Math.imul(b,k0),Z=Z+Math.imul(o,x0)|0,S=Math.imul(o,k0),$=$+Math.imul(e,w0)|0,Z=Z+Math.imul(e,f0)|0,Z=Z+Math.imul(Y0,w0)|0,S=S+Math.imul(Y0,f0)|0,$=$+Math.imul(K0,c0)|0,Z=Z+Math.imul(K0,g0)|0,Z=Z+Math.imul(r,c0)|0,S=S+Math.imul(r,g0)|0,$=$+Math.imul(u,u0)|0,Z=Z+Math.imul(u,y0)|0,Z=Z+Math.imul(t,u0)|0,S=S+Math.imul(t,y0)|0,$=$+Math.imul(E,s0)|0,Z=Z+Math.imul(E,b0)|0,Z=Z+Math.imul(w,s0)|0,S=S+Math.imul(w,b0)|0;var A1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(A1>>>26)|0,A1&=67108863,$=Math.imul(Q0,x0),Z=Math.imul(Q0,k0),Z=Z+Math.imul(H0,x0)|0,S=Math.imul(H0,k0),$=$+Math.imul(b,w0)|0,Z=Z+Math.imul(b,f0)|0,Z=Z+Math.imul(o,w0)|0,S=S+Math.imul(o,f0)|0,$=$+Math.imul(e,c0)|0,Z=Z+Math.imul(e,g0)|0,Z=Z+Math.imul(Y0,c0)|0,S=S+Math.imul(Y0,g0)|0,$=$+Math.imul(K0,u0)|0,Z=Z+Math.imul(K0,y0)|0,Z=Z+Math.imul(r,u0)|0,S=S+Math.imul(r,y0)|0,$=$+Math.imul(u,s0)|0,Z=Z+Math.imul(u,b0)|0,Z=Z+Math.imul(t,s0)|0,S=S+Math.imul(t,b0)|0,$=$+Math.imul(E,h0)|0,Z=Z+Math.imul(E,g)|0,Z=Z+Math.imul(w,h0)|0,S=S+Math.imul(w,g)|0;var y1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(y1>>>26)|0,y1&=67108863,$=Math.imul(d,x0),Z=Math.imul(d,k0),Z=Z+Math.imul(a,x0)|0,S=Math.imul(a,k0),$=$+Math.imul(Q0,w0)|0,Z=Z+Math.imul(Q0,f0)|0,Z=Z+Math.imul(H0,w0)|0,S=S+Math.imul(H0,f0)|0,$=$+Math.imul(b,c0)|0,Z=Z+Math.imul(b,g0)|0,Z=Z+Math.imul(o,c0)|0,S=S+Math.imul(o,g0)|0,$=$+Math.imul(e,u0)|0,Z=Z+Math.imul(e,y0)|0,Z=Z+Math.imul(Y0,u0)|0,S=S+Math.imul(Y0,y0)|0,$=$+Math.imul(K0,s0)|0,Z=Z+Math.imul(K0,b0)|0,Z=Z+Math.imul(r,s0)|0,S=S+Math.imul(r,b0)|0,$=$+Math.imul(u,h0)|0,Z=Z+Math.imul(u,g)|0,Z=Z+Math.imul(t,h0)|0,S=S+Math.imul(t,g)|0,$=$+Math.imul(E,U0)|0,Z=Z+Math.imul(E,O0)|0,Z=Z+Math.imul(w,U0)|0,S=S+Math.imul(w,O0)|0;var h1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(h1>>>26)|0,h1&=67108863,$=Math.imul(V0,x0),Z=Math.imul(V0,k0),Z=Z+Math.imul(W0,x0)|0,S=Math.imul(W0,k0),$=$+Math.imul(d,w0)|0,Z=Z+Math.imul(d,f0)|0,Z=Z+Math.imul(a,w0)|0,S=S+Math.imul(a,f0)|0,$=$+Math.imul(Q0,c0)|0,Z=Z+Math.imul(Q0,g0)|0,Z=Z+Math.imul(H0,c0)|0,S=S+Math.imul(H0,g0)|0,$=$+Math.imul(b,u0)|0,Z=Z+Math.imul(b,y0)|0,Z=Z+Math.imul(o,u0)|0,S=S+Math.imul(o,y0)|0,$=$+Math.imul(e,s0)|0,Z=Z+Math.imul(e,b0)|0,Z=Z+Math.imul(Y0,s0)|0,S=S+Math.imul(Y0,b0)|0,$=$+Math.imul(K0,h0)|0,Z=Z+Math.imul(K0,g)|0,Z=Z+Math.imul(r,h0)|0,S=S+Math.imul(r,g)|0,$=$+Math.imul(u,U0)|0,Z=Z+Math.imul(u,O0)|0,Z=Z+Math.imul(t,U0)|0,S=S+Math.imul(t,O0)|0,$=$+Math.imul(E,C0)|0,Z=Z+Math.imul(E,B0)|0,Z=Z+Math.imul(w,C0)|0,S=S+Math.imul(w,B0)|0;var p1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(p1>>>26)|0,p1&=67108863,$=Math.imul(G0,x0),Z=Math.imul(G0,k0),Z=Z+Math.imul(T0,x0)|0,S=Math.imul(T0,k0),$=$+Math.imul(V0,w0)|0,Z=Z+Math.imul(V0,f0)|0,Z=Z+Math.imul(W0,w0)|0,S=S+Math.imul(W0,f0)|0,$=$+Math.imul(d,c0)|0,Z=Z+Math.imul(d,g0)|0,Z=Z+Math.imul(a,c0)|0,S=S+Math.imul(a,g0)|0,$=$+Math.imul(Q0,u0)|0,Z=Z+Math.imul(Q0,y0)|0,Z=Z+Math.imul(H0,u0)|0,S=S+Math.imul(H0,y0)|0,$=$+Math.imul(b,s0)|0,Z=Z+Math.imul(b,b0)|0,Z=Z+Math.imul(o,s0)|0,S=S+Math.imul(o,b0)|0,$=$+Math.imul(e,h0)|0,Z=Z+Math.imul(e,g)|0,Z=Z+Math.imul(Y0,h0)|0,S=S+Math.imul(Y0,g)|0,$=$+Math.imul(K0,U0)|0,Z=Z+Math.imul(K0,O0)|0,Z=Z+Math.imul(r,U0)|0,S=S+Math.imul(r,O0)|0,$=$+Math.imul(u,C0)|0,Z=Z+Math.imul(u,B0)|0,Z=Z+Math.imul(t,C0)|0,S=S+Math.imul(t,B0)|0,$=$+Math.imul(E,l0)|0,Z=Z+Math.imul(E,d0)|0,Z=Z+Math.imul(w,l0)|0,S=S+Math.imul(w,d0)|0;var c1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(c1>>>26)|0,c1&=67108863,$=Math.imul(P0,x0),Z=Math.imul(P0,k0),Z=Z+Math.imul(E0,x0)|0,S=Math.imul(E0,k0),$=$+Math.imul(G0,w0)|0,Z=Z+Math.imul(G0,f0)|0,Z=Z+Math.imul(T0,w0)|0,S=S+Math.imul(T0,f0)|0,$=$+Math.imul(V0,c0)|0,Z=Z+Math.imul(V0,g0)|0,Z=Z+Math.imul(W0,c0)|0,S=S+Math.imul(W0,g0)|0,$=$+Math.imul(d,u0)|0,Z=Z+Math.imul(d,y0)|0,Z=Z+Math.imul(a,u0)|0,S=S+Math.imul(a,y0)|0,$=$+Math.imul(Q0,s0)|0,Z=Z+Math.imul(Q0,b0)|0,Z=Z+Math.imul(H0,s0)|0,S=S+Math.imul(H0,b0)|0,$=$+Math.imul(b,h0)|0,Z=Z+Math.imul(b,g)|0,Z=Z+Math.imul(o,h0)|0,S=S+Math.imul(o,g)|0,$=$+Math.imul(e,U0)|0,Z=Z+Math.imul(e,O0)|0,Z=Z+Math.imul(Y0,U0)|0,S=S+Math.imul(Y0,O0)|0,$=$+Math.imul(K0,C0)|0,Z=Z+Math.imul(K0,B0)|0,Z=Z+Math.imul(r,C0)|0,S=S+Math.imul(r,B0)|0,$=$+Math.imul(u,l0)|0,Z=Z+Math.imul(u,d0)|0,Z=Z+Math.imul(t,l0)|0,S=S+Math.imul(t,d0)|0,$=$+Math.imul(E,p0)|0,Z=Z+Math.imul(E,_0)|0,Z=Z+Math.imul(w,p0)|0,S=S+Math.imul(w,_0)|0;var u1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(u1>>>26)|0,u1&=67108863,$=Math.imul(P0,w0),Z=Math.imul(P0,f0),Z=Z+Math.imul(E0,w0)|0,S=Math.imul(E0,f0),$=$+Math.imul(G0,c0)|0,Z=Z+Math.imul(G0,g0)|0,Z=Z+Math.imul(T0,c0)|0,S=S+Math.imul(T0,g0)|0,$=$+Math.imul(V0,u0)|0,Z=Z+Math.imul(V0,y0)|0,Z=Z+Math.imul(W0,u0)|0,S=S+Math.imul(W0,y0)|0,$=$+Math.imul(d,s0)|0,Z=Z+Math.imul(d,b0)|0,Z=Z+Math.imul(a,s0)|0,S=S+Math.imul(a,b0)|0,$=$+Math.imul(Q0,h0)|0,Z=Z+Math.imul(Q0,g)|0,Z=Z+Math.imul(H0,h0)|0,S=S+Math.imul(H0,g)|0,$=$+Math.imul(b,U0)|0,Z=Z+Math.imul(b,O0)|0,Z=Z+Math.imul(o,U0)|0,S=S+Math.imul(o,O0)|0,$=$+Math.imul(e,C0)|0,Z=Z+Math.imul(e,B0)|0,Z=Z+Math.imul(Y0,C0)|0,S=S+Math.imul(Y0,B0)|0,$=$+Math.imul(K0,l0)|0,Z=Z+Math.imul(K0,d0)|0,Z=Z+Math.imul(r,l0)|0,S=S+Math.imul(r,d0)|0,$=$+Math.imul(u,p0)|0,Z=Z+Math.imul(u,_0)|0,Z=Z+Math.imul(t,p0)|0,S=S+Math.imul(t,_0)|0;var b1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(b1>>>26)|0,b1&=67108863,$=Math.imul(P0,c0),Z=Math.imul(P0,g0),Z=Z+Math.imul(E0,c0)|0,S=Math.imul(E0,g0),$=$+Math.imul(G0,u0)|0,Z=Z+Math.imul(G0,y0)|0,Z=Z+Math.imul(T0,u0)|0,S=S+Math.imul(T0,y0)|0,$=$+Math.imul(V0,s0)|0,Z=Z+Math.imul(V0,b0)|0,Z=Z+Math.imul(W0,s0)|0,S=S+Math.imul(W0,b0)|0,$=$+Math.imul(d,h0)|0,Z=Z+Math.imul(d,g)|0,Z=Z+Math.imul(a,h0)|0,S=S+Math.imul(a,g)|0,$=$+Math.imul(Q0,U0)|0,Z=Z+Math.imul(Q0,O0)|0,Z=Z+Math.imul(H0,U0)|0,S=S+Math.imul(H0,O0)|0,$=$+Math.imul(b,C0)|0,Z=Z+Math.imul(b,B0)|0,Z=Z+Math.imul(o,C0)|0,S=S+Math.imul(o,B0)|0,$=$+Math.imul(e,l0)|0,Z=Z+Math.imul(e,d0)|0,Z=Z+Math.imul(Y0,l0)|0,S=S+Math.imul(Y0,d0)|0,$=$+Math.imul(K0,p0)|0,Z=Z+Math.imul(K0,_0)|0,Z=Z+Math.imul(r,p0)|0,S=S+Math.imul(r,_0)|0;var l1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(l1>>>26)|0,l1&=67108863,$=Math.imul(P0,u0),Z=Math.imul(P0,y0),Z=Z+Math.imul(E0,u0)|0,S=Math.imul(E0,y0),$=$+Math.imul(G0,s0)|0,Z=Z+Math.imul(G0,b0)|0,Z=Z+Math.imul(T0,s0)|0,S=S+Math.imul(T0,b0)|0,$=$+Math.imul(V0,h0)|0,Z=Z+Math.imul(V0,g)|0,Z=Z+Math.imul(W0,h0)|0,S=S+Math.imul(W0,g)|0,$=$+Math.imul(d,U0)|0,Z=Z+Math.imul(d,O0)|0,Z=Z+Math.imul(a,U0)|0,S=S+Math.imul(a,O0)|0,$=$+Math.imul(Q0,C0)|0,Z=Z+Math.imul(Q0,B0)|0,Z=Z+Math.imul(H0,C0)|0,S=S+Math.imul(H0,B0)|0,$=$+Math.imul(b,l0)|0,Z=Z+Math.imul(b,d0)|0,Z=Z+Math.imul(o,l0)|0,S=S+Math.imul(o,d0)|0,$=$+Math.imul(e,p0)|0,Z=Z+Math.imul(e,_0)|0,Z=Z+Math.imul(Y0,p0)|0,S=S+Math.imul(Y0,_0)|0;var LK=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(LK>>>26)|0,LK&=67108863,$=Math.imul(P0,s0),Z=Math.imul(P0,b0),Z=Z+Math.imul(E0,s0)|0,S=Math.imul(E0,b0),$=$+Math.imul(G0,h0)|0,Z=Z+Math.imul(G0,g)|0,Z=Z+Math.imul(T0,h0)|0,S=S+Math.imul(T0,g)|0,$=$+Math.imul(V0,U0)|0,Z=Z+Math.imul(V0,O0)|0,Z=Z+Math.imul(W0,U0)|0,S=S+Math.imul(W0,O0)|0,$=$+Math.imul(d,C0)|0,Z=Z+Math.imul(d,B0)|0,Z=Z+Math.imul(a,C0)|0,S=S+Math.imul(a,B0)|0,$=$+Math.imul(Q0,l0)|0,Z=Z+Math.imul(Q0,d0)|0,Z=Z+Math.imul(H0,l0)|0,S=S+Math.imul(H0,d0)|0,$=$+Math.imul(b,p0)|0,Z=Z+Math.imul(b,_0)|0,Z=Z+Math.imul(o,p0)|0,S=S+Math.imul(o,_0)|0;var d1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(d1>>>26)|0,d1&=67108863,$=Math.imul(P0,h0),Z=Math.imul(P0,g),Z=Z+Math.imul(E0,h0)|0,S=Math.imul(E0,g),$=$+Math.imul(G0,U0)|0,Z=Z+Math.imul(G0,O0)|0,Z=Z+Math.imul(T0,U0)|0,S=S+Math.imul(T0,O0)|0,$=$+Math.imul(V0,C0)|0,Z=Z+Math.imul(V0,B0)|0,Z=Z+Math.imul(W0,C0)|0,S=S+Math.imul(W0,B0)|0,$=$+Math.imul(d,l0)|0,Z=Z+Math.imul(d,d0)|0,Z=Z+Math.imul(a,l0)|0,S=S+Math.imul(a,d0)|0,$=$+Math.imul(Q0,p0)|0,Z=Z+Math.imul(Q0,_0)|0,Z=Z+Math.imul(H0,p0)|0,S=S+Math.imul(H0,_0)|0;var s1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(s1>>>26)|0,s1&=67108863,$=Math.imul(P0,U0),Z=Math.imul(P0,O0),Z=Z+Math.imul(E0,U0)|0,S=Math.imul(E0,O0),$=$+Math.imul(G0,C0)|0,Z=Z+Math.imul(G0,B0)|0,Z=Z+Math.imul(T0,C0)|0,S=S+Math.imul(T0,B0)|0,$=$+Math.imul(V0,l0)|0,Z=Z+Math.imul(V0,d0)|0,Z=Z+Math.imul(W0,l0)|0,S=S+Math.imul(W0,d0)|0,$=$+Math.imul(d,p0)|0,Z=Z+Math.imul(d,_0)|0,Z=Z+Math.imul(a,p0)|0,S=S+Math.imul(a,_0)|0;var o1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(o1>>>26)|0,o1&=67108863,$=Math.imul(P0,C0),Z=Math.imul(P0,B0),Z=Z+Math.imul(E0,C0)|0,S=Math.imul(E0,B0),$=$+Math.imul(G0,l0)|0,Z=Z+Math.imul(G0,d0)|0,Z=Z+Math.imul(T0,l0)|0,S=S+Math.imul(T0,d0)|0,$=$+Math.imul(V0,p0)|0,Z=Z+Math.imul(V0,_0)|0,Z=Z+Math.imul(W0,p0)|0,S=S+Math.imul(W0,_0)|0;var m1=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(m1>>>26)|0,m1&=67108863,$=Math.imul(P0,l0),Z=Math.imul(P0,d0),Z=Z+Math.imul(E0,l0)|0,S=Math.imul(E0,d0),$=$+Math.imul(G0,p0)|0,Z=Z+Math.imul(G0,_0)|0,Z=Z+Math.imul(T0,p0)|0,S=S+Math.imul(T0,_0)|0;var ZK=(I+$|0)+((Z&8191)<<13)|0;I=(S+(Z>>>13)|0)+(ZK>>>26)|0,ZK&=67108863,$=Math.imul(P0,p0),Z=Math.imul(P0,_0),Z=Z+Math.imul(E0,p0)|0,S=Math.imul(E0,_0);var n1=(I+$|0)+((Z&8191)<<13)|0;if(I=(S+(Z>>>13)|0)+(n1>>>26)|0,n1&=67108863,C[0]=P1,C[1]=Z1,C[2]=Y1,C[3]=F1,C[4]=A1,C[5]=y1,C[6]=h1,C[7]=p1,C[8]=c1,C[9]=u1,C[10]=b1,C[11]=l1,C[12]=LK,C[13]=d1,C[14]=s1,C[15]=o1,C[16]=m1,C[17]=ZK,C[18]=n1,I!==0)C[19]=I,X.length++;return X};if(!Math.imul)J=v;function k(L,O,X){X.negative=O.negative^L.negative,X.length=L.length+O.length;var q=0,W=0;for(var C=0;C>>26)|0,W+=I>>>26,I&=67108863}X.words[C]=$,q=I,I=W}if(q!==0)X.words[C]=q;else X.length--;return X.strip()}function f(L,O,X){var q=new j;return q.mulp(L,O,X)}z.prototype.mulTo=function(L,O){var X,q=this.length+L.length;if(this.length===10&&L.length===10)X=J(this,L,O);else if(q<63)X=v(this,L,O);else if(q<1024)X=k(this,L,O);else X=f(this,L,O);return X};function j(L,O){this.x=L,this.y=O}j.prototype.makeRBT=function(L){var O=Array(L),X=z.prototype._countBits(L)-1;for(var q=0;q>=1;return q},j.prototype.permute=function(L,O,X,q,W,C){for(var I=0;I>>1)W++;return 1<>>13,X[2*C+1]=W&8191,W=W>>>13;for(C=2*O;C>=26,O+=q/67108864|0,O+=W>>>26,this.words[X]=W&67108863}if(O!==0)this.words[X]=O,this.length++;return this.length=L===0?1:this.length,this},z.prototype.muln=function(L){return this.clone().imuln(L)},z.prototype.sqr=function(){return this.mul(this)},z.prototype.isqr=function(){return this.imul(this.clone())},z.prototype.pow=function(L){var O=T(L);if(O.length===0)return new z(1);var X=this;for(var q=0;q=0);var O=L%26,X=(L-O)/26,q=67108863>>>26-O<<26-O,W;if(O!==0){var C=0;for(W=0;W>>26-O}if(C)this.words[W]=C,this.length++}if(X!==0){for(W=this.length-1;W>=0;W--)this.words[W+X]=this.words[W];for(W=0;W=0);var q;if(O)q=(O-O%26)/26;else q=0;var W=L%26,C=Math.min((L-W)/26,this.length),I=67108863^67108863>>>W<C){this.length-=C;for(Z=0;Z=0&&(S!==0||Z>=q);Z--){var B=this.words[Z]|0;this.words[Z]=S<<26-W|B>>>W,S=B&I}if($&&S!==0)$.words[$.length++]=S;if(this.length===0)this.words[0]=0,this.length=1;return this.strip()},z.prototype.ishrn=function(L,O,X){return H(this.negative===0),this.iushrn(L,O,X)},z.prototype.shln=function(L){return this.clone().ishln(L)},z.prototype.ushln=function(L){return this.clone().iushln(L)},z.prototype.shrn=function(L){return this.clone().ishrn(L)},z.prototype.ushrn=function(L){return this.clone().iushrn(L)},z.prototype.testn=function(L){H(typeof L==="number"&&L>=0);var O=L%26,X=(L-O)/26,q=1<=0);var O=L%26,X=(L-O)/26;if(H(this.negative===0,"imaskn works only with positive numbers"),this.length<=X)return this;if(O!==0)X++;if(this.length=Math.min(X,this.length),O!==0){var q=67108863^67108863>>>O<=67108864;O++)if(this.words[O]-=67108864,O===this.length-1)this.words[O+1]=1;else this.words[O+1]++;return this.length=Math.max(this.length,O+1),this},z.prototype.isubn=function(L){if(H(typeof L==="number"),H(L<67108864),L<0)return this.iaddn(-L);if(this.negative!==0)return this.negative=0,this.iaddn(L),this.negative=1,this;if(this.words[0]-=L,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var O=0;O>26)-($/67108864|0),this.words[W+X]=C&67108863}for(;W>26,this.words[W+X]=C&67108863;if(I===0)return this.strip();H(I===-1),I=0;for(W=0;W>26,this.words[W]=C&67108863;return this.negative=1,this.strip()},z.prototype._wordDiv=function(L,O){var X=this.length-L.length,q=this.clone(),W=L,C=W.words[W.length-1]|0,I=this._countBits(C);if(X=26-I,X!==0)W=W.ushln(X),q.iushln(X),C=W.words[W.length-1]|0;var $=q.length-W.length,Z;if(O!=="mod"){Z=new z(null),Z.length=$+1,Z.words=Array(Z.length);for(var S=0;S=0;E--){var w=(q.words[W.length+E]|0)*67108864+(q.words[W.length+E-1]|0);w=Math.min(w/C|0,67108863),q._ishlnsubmul(W,w,E);while(q.negative!==0)if(w--,q.negative=0,q._ishlnsubmul(W,1,E),!q.isZero())q.negative^=1;if(Z)Z.words[E]=w}if(Z)Z.strip();if(q.strip(),O!=="div"&&X!==0)q.iushrn(X);return{div:Z||null,mod:q}},z.prototype.divmod=function(L,O,X){if(H(!L.isZero()),this.isZero())return{div:new z(0),mod:new z(0)};var q,W,C;if(this.negative!==0&&L.negative===0){if(C=this.neg().divmod(L,O),O!=="mod")q=C.div.neg();if(O!=="div"){if(W=C.mod.neg(),X&&W.negative!==0)W.iadd(L)}return{div:q,mod:W}}if(this.negative===0&&L.negative!==0){if(C=this.divmod(L.neg(),O),O!=="mod")q=C.div.neg();return{div:q,mod:C.mod}}if((this.negative&L.negative)!==0){if(C=this.neg().divmod(L.neg(),O),O!=="div"){if(W=C.mod.neg(),X&&W.negative!==0)W.isub(L)}return{div:C.div,mod:W}}if(L.length>this.length||this.cmp(L)<0)return{div:new z(0),mod:this};if(L.length===1){if(O==="div")return{div:this.divn(L.words[0]),mod:null};if(O==="mod")return{div:null,mod:new z(this.modn(L.words[0]))};return{div:this.divn(L.words[0]),mod:new z(this.modn(L.words[0]))}}return this._wordDiv(L,O)},z.prototype.div=function(L){return this.divmod(L,"div",!1).div},z.prototype.mod=function(L){return this.divmod(L,"mod",!1).mod},z.prototype.umod=function(L){return this.divmod(L,"mod",!0).mod},z.prototype.divRound=function(L){var O=this.divmod(L);if(O.mod.isZero())return O.div;var X=O.div.negative!==0?O.mod.isub(L):O.mod,q=L.ushrn(1),W=L.andln(1),C=X.cmp(q);if(C<0||W===1&&C===0)return O.div;return O.div.negative!==0?O.div.isubn(1):O.div.iaddn(1)},z.prototype.modn=function(L){H(L<=67108863);var O=67108864%L,X=0;for(var q=this.length-1;q>=0;q--)X=(O*X+(this.words[q]|0))%L;return X},z.prototype.idivn=function(L){H(L<=67108863);var O=0;for(var X=this.length-1;X>=0;X--){var q=(this.words[X]|0)+O*67108864;this.words[X]=q/L|0,O=q%L}return this.strip()},z.prototype.divn=function(L){return this.clone().idivn(L)},z.prototype.egcd=function(L){H(L.negative===0),H(!L.isZero());var O=this,X=L.clone();if(O.negative!==0)O=O.umod(L);else O=O.clone();var q=new z(1),W=new z(0),C=new z(0),I=new z(1),$=0;while(O.isEven()&&X.isEven())O.iushrn(1),X.iushrn(1),++$;var Z=X.clone(),S=O.clone();while(!O.isZero()){for(var B=0,E=1;(O.words[0]&E)===0&&B<26;++B,E<<=1);if(B>0){O.iushrn(B);while(B-- >0){if(q.isOdd()||W.isOdd())q.iadd(Z),W.isub(S);q.iushrn(1),W.iushrn(1)}}for(var w=0,h=1;(X.words[0]&h)===0&&w<26;++w,h<<=1);if(w>0){X.iushrn(w);while(w-- >0){if(C.isOdd()||I.isOdd())C.iadd(Z),I.isub(S);C.iushrn(1),I.iushrn(1)}}if(O.cmp(X)>=0)O.isub(X),q.isub(C),W.isub(I);else X.isub(O),C.isub(q),I.isub(W)}return{a:C,b:I,gcd:X.iushln($)}},z.prototype._invmp=function(L){H(L.negative===0),H(!L.isZero());var O=this,X=L.clone();if(O.negative!==0)O=O.umod(L);else O=O.clone();var q=new z(1),W=new z(0),C=X.clone();while(O.cmpn(1)>0&&X.cmpn(1)>0){for(var I=0,$=1;(O.words[0]&$)===0&&I<26;++I,$<<=1);if(I>0){O.iushrn(I);while(I-- >0){if(q.isOdd())q.iadd(C);q.iushrn(1)}}for(var Z=0,S=1;(X.words[0]&S)===0&&Z<26;++Z,S<<=1);if(Z>0){X.iushrn(Z);while(Z-- >0){if(W.isOdd())W.iadd(C);W.iushrn(1)}}if(O.cmp(X)>=0)O.isub(X),q.isub(W);else X.isub(O),W.isub(q)}var B;if(O.cmpn(1)===0)B=q;else B=W;if(B.cmpn(0)<0)B.iadd(L);return B},z.prototype.gcd=function(L){if(this.isZero())return L.abs();if(L.isZero())return this.abs();var O=this.clone(),X=L.clone();O.negative=0,X.negative=0;for(var q=0;O.isEven()&&X.isEven();q++)O.iushrn(1),X.iushrn(1);do{while(O.isEven())O.iushrn(1);while(X.isEven())X.iushrn(1);var W=O.cmp(X);if(W<0){var C=O;O=X,X=C}else if(W===0||X.cmpn(1)===0)break;O.isub(X)}while(!0);return X.iushln(q)},z.prototype.invm=function(L){return this.egcd(L).a.umod(L)},z.prototype.isEven=function(){return(this.words[0]&1)===0},z.prototype.isOdd=function(){return(this.words[0]&1)===1},z.prototype.andln=function(L){return this.words[0]&L},z.prototype.bincn=function(L){H(typeof L==="number");var O=L%26,X=(L-O)/26,q=1<>>26,I&=67108863,this.words[C]=I}if(W!==0)this.words[C]=W,this.length++;return this},z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},z.prototype.cmpn=function(L){var O=L<0;if(this.negative!==0&&!O)return-1;if(this.negative===0&&O)return 1;this.strip();var X;if(this.length>1)X=1;else{if(O)L=-L;H(L<=67108863,"Number is too big");var q=this.words[0]|0;X=q===L?0:qL.length)return 1;if(this.length=0;X--){var q=this.words[X]|0,W=L.words[X]|0;if(q===W)continue;if(qW)O=1;break}return O},z.prototype.gtn=function(L){return this.cmpn(L)===1},z.prototype.gt=function(L){return this.cmp(L)===1},z.prototype.gten=function(L){return this.cmpn(L)>=0},z.prototype.gte=function(L){return this.cmp(L)>=0},z.prototype.ltn=function(L){return this.cmpn(L)===-1},z.prototype.lt=function(L){return this.cmp(L)===-1},z.prototype.lten=function(L){return this.cmpn(L)<=0},z.prototype.lte=function(L){return this.cmp(L)<=0},z.prototype.eqn=function(L){return this.cmpn(L)===0},z.prototype.eq=function(L){return this.cmp(L)===0},z.red=function(L){return new s(L)},z.prototype.toRed=function(L){return H(!this.red,"Already a number in reduction context"),H(this.negative===0,"red works only with positives"),L.convertTo(this)._forceRed(L)},z.prototype.fromRed=function(){return H(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},z.prototype._forceRed=function(L){return this.red=L,this},z.prototype.forceRed=function(L){return H(!this.red,"Already a number in reduction context"),this._forceRed(L)},z.prototype.redAdd=function(L){return H(this.red,"redAdd works only with red numbers"),this.red.add(this,L)},z.prototype.redIAdd=function(L){return H(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,L)},z.prototype.redSub=function(L){return H(this.red,"redSub works only with red numbers"),this.red.sub(this,L)},z.prototype.redISub=function(L){return H(this.red,"redISub works only with red numbers"),this.red.isub(this,L)},z.prototype.redShl=function(L){return H(this.red,"redShl works only with red numbers"),this.red.shl(this,L)},z.prototype.redMul=function(L){return H(this.red,"redMul works only with red numbers"),this.red._verify2(this,L),this.red.mul(this,L)},z.prototype.redIMul=function(L){return H(this.red,"redMul works only with red numbers"),this.red._verify2(this,L),this.red.imul(this,L)},z.prototype.redSqr=function(){return H(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},z.prototype.redISqr=function(){return H(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},z.prototype.redSqrt=function(){return H(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},z.prototype.redInvm=function(){return H(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},z.prototype.redNeg=function(){return H(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},z.prototype.redPow=function(L){return H(this.red&&!L.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,L)};var _={k256:null,p224:null,p192:null,p25519:null};function p(L,O){this.name=L,this.p=new z(O,16),this.n=this.p.bitLength(),this.k=new z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}p.prototype._tmp=function(){var L=new z(null);return L.words=Array(Math.ceil(this.n/13)),L},p.prototype.ireduce=function(L){var O=L,X;do this.split(O,this.tmp),O=this.imulK(O),O=O.iadd(this.tmp),X=O.bitLength();while(X>this.n);var q=X0)O.isub(this.p);else if(O.strip!==void 0)O.strip();else O._strip();return O},p.prototype.split=function(L,O){L.iushrn(this.n,0,O)},p.prototype.imulK=function(L){return L.imul(this.k)};function N(){p.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}Y(N,p),N.prototype.split=function(L,O){var X=4194303,q=Math.min(L.length,9);for(var W=0;W>>22,C=I}if(C>>>=22,L.words[W-10]=C,C===0&&L.length>10)L.length-=10;else L.length-=9},N.prototype.imulK=function(L){L.words[L.length]=0,L.words[L.length+1]=0,L.length+=2;var O=0;for(var X=0;X>>=26,L.words[X]=W,O=q}if(O!==0)L.words[L.length++]=O;return L},z._prime=function(L){if(_[L])return _[L];var O;if(L==="k256")O=new N;else if(L==="p224")O=new m;else if(L==="p192")O=new z0;else if(L==="p25519")O=new L0;else throw Error("Unknown prime "+L);return _[L]=O,O};function s(L){if(typeof L==="string"){var O=z._prime(L);this.m=O.p,this.prime=O}else H(L.gtn(1),"modulus must be greater than 1"),this.m=L,this.prime=null}s.prototype._verify1=function(L){H(L.negative===0,"red works only with positives"),H(L.red,"red works only with red numbers")},s.prototype._verify2=function(L,O){H((L.negative|O.negative)===0,"red works only with positives"),H(L.red&&L.red===O.red,"red works only with red numbers")},s.prototype.imod=function(L){if(this.prime)return this.prime.ireduce(L)._forceRed(this);return L.umod(this.m)._forceRed(this)},s.prototype.neg=function(L){if(L.isZero())return L.clone();return this.m.sub(L)._forceRed(this)},s.prototype.add=function(L,O){this._verify2(L,O);var X=L.add(O);if(X.cmp(this.m)>=0)X.isub(this.m);return X._forceRed(this)},s.prototype.iadd=function(L,O){this._verify2(L,O);var X=L.iadd(O);if(X.cmp(this.m)>=0)X.isub(this.m);return X},s.prototype.sub=function(L,O){this._verify2(L,O);var X=L.sub(O);if(X.cmpn(0)<0)X.iadd(this.m);return X._forceRed(this)},s.prototype.isub=function(L,O){this._verify2(L,O);var X=L.isub(O);if(X.cmpn(0)<0)X.iadd(this.m);return X},s.prototype.shl=function(L,O){return this._verify1(L),this.imod(L.ushln(O))},s.prototype.imul=function(L,O){return this._verify2(L,O),this.imod(L.imul(O))},s.prototype.mul=function(L,O){return this._verify2(L,O),this.imod(L.mul(O))},s.prototype.isqr=function(L){return this.imul(L,L.clone())},s.prototype.sqr=function(L){return this.mul(L,L)},s.prototype.sqrt=function(L){if(L.isZero())return L.clone();var O=this.m.andln(3);if(H(O%2===1),O===3){var X=this.m.add(new z(1)).iushrn(2);return this.pow(L,X)}var q=this.m.subn(1),W=0;while(!q.isZero()&&q.andln(1)===0)W++,q.iushrn(1);H(!q.isZero());var C=new z(1).toRed(this),I=C.redNeg(),$=this.m.subn(1).iushrn(1),Z=this.m.bitLength();Z=new z(2*Z*Z).toRed(this);while(this.pow(Z,$).cmp(I)!==0)Z.redIAdd(I);var S=this.pow(Z,q),B=this.pow(L,q.addn(1).iushrn(1)),E=this.pow(L,q),w=W;while(E.cmp(C)!==0){var h=E;for(var u=0;h.cmp(C)!==0;u++)h=h.redSqr();H(u=0;W--){var S=O.words[W];for(var B=Z-1;B>=0;B--){var E=S>>B&1;if(C!==q[0])C=this.sqr(C);if(E===0&&I===0){$=0;continue}if(I<<=1,I|=E,$++,$!==X&&(W!==0||B!==0))continue;C=this.mul(C,q[I]),$=0,I=0}Z=26}return C},s.prototype.convertTo=function(L){var O=L.umod(this.m);return O===L?O.clone():O},s.prototype.convertFrom=function(L){var O=L.clone();return O.red=null,O},z.mont=function(L){return new Z0(L)};function Z0(L){if(s.call(this,L),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}Y(Z0,s),Z0.prototype.convertTo=function(L){return this.imod(L.ushln(this.shift))},Z0.prototype.convertFrom=function(L){var O=this.imod(L.mul(this.rinv));return O.red=null,O},Z0.prototype.imul=function(L,O){if(L.isZero()||O.isZero())return L.words[0]=0,L.length=1,L;var X=L.imul(O),q=X.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),W=X.isub(q).iushrn(this.shift),C=W;if(W.cmp(this.m)>=0)C=W.isub(this.m);else if(W.cmpn(0)<0)C=W.iadd(this.m);return C._forceRed(this)},Z0.prototype.mul=function(L,O){if(L.isZero()||O.isZero())return new z(0)._forceRed(this);var X=L.mul(O),q=X.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),W=X.isub(q).iushrn(this.shift),C=W;if(W.cmp(this.m)>=0)C=W.isub(this.m);else if(W.cmpn(0)<0)C=W.iadd(this.m);return C._forceRed(this)},Z0.prototype.invm=function(L){var O=this.imod(L._invmp(this.m).mul(this.r2));return O._forceRed(this)}})(typeof V>"u"||V,K)}),LA=D0((K,V)=>{var Q=_2(),U=QV().Buffer;function H(Y,z){return U.from(Y.toRed(Q.mont(z.modulus)).redPow(new Q(z.publicExponent)).fromRed().toArray())}V.exports=H}),rB=D0((K,V)=>{(function(Q,U){function H(q,W){if(!q)throw Error(W||"Assertion failed")}function Y(q,W){q.super_=W;var C=function(){};C.prototype=W.prototype,q.prototype=new C,q.prototype.constructor=q}function z(q,W,C){if(z.isBN(q))return q;if(this.negative=0,this.words=null,this.length=0,this.red=null,q!==null){if(W==="le"||W==="be")C=W,W=10;this._init(q||0,W||10,C||"be")}}if(typeof Q==="object")Q.exports=z;else U.BN=z;z.BN=z,z.wordSize=26;var M;try{if(typeof window<"u"&&typeof window.Buffer<"u")M=window.Buffer;else M=(cK(),D1(pK)).Buffer}catch(q){}z.isBN=function(q){if(q instanceof z)return!0;return q!==null&&typeof q==="object"&&q.constructor.wordSize===z.wordSize&&Array.isArray(q.words)},z.max=function(q,W){if(q.cmp(W)>0)return q;return W},z.min=function(q,W){if(q.cmp(W)<0)return q;return W},z.prototype._init=function(q,W,C){if(typeof q==="number")return this._initNumber(q,W,C);if(typeof q==="object")return this._initArray(q,W,C);if(W==="hex")W=16;H(W===(W|0)&&W>=2&&W<=36),q=q.toString().replace(/\s+/g,"");var I=0;if(q[0]==="-")I++,this.negative=1;if(I=0;I-=3)if(Z=q[I]|q[I-1]<<8|q[I-2]<<16,this.words[$]|=Z<>>26-S&67108863,S+=24,S>=26)S-=26,$++}else if(C==="le"){for(I=0,$=0;I>>26-S&67108863,S+=24,S>=26)S-=26,$++}return this._strip()};function A(q,W){var C=q.charCodeAt(W);if(C>=48&&C<=57)return C-48;else if(C>=65&&C<=70)return C-55;else if(C>=97&&C<=102)return C-87;else H(!1,"Invalid character in "+q)}function R(q,W,C){var I=A(q,C);if(C-1>=W)I|=A(q,C-1)<<4;return I}z.prototype._parseHex=function(q,W,C){this.length=Math.ceil((q.length-W)/6),this.words=Array(this.length);for(var I=0;I=W;I-=2)if(S=R(q,W,I)<<$,this.words[Z]|=S&67108863,$>=18)$-=18,Z+=1,this.words[Z]|=S>>>26;else $+=8;else{var B=q.length-W;for(I=B%2===0?W+1:W;I=18)$-=18,Z+=1,this.words[Z]|=S>>>26;else $+=8}this._strip()};function D(q,W,C,I){var $=0,Z=0,S=Math.min(q.length,C);for(var B=W;B=49)Z=E-49+10;else if(E>=17)Z=E-17+10;else Z=E;H(E>=0&&Z1&&this.words[this.length-1]===0)this.length--;return this._normSign()},z.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},typeof Symbol<"u"&&typeof Symbol.for==="function")try{z.prototype[Symbol.for("nodejs.util.inspect.custom")]=P}catch(q){z.prototype.inspect=P}else z.prototype.inspect=P;function P(){return(this.red?""}var G=["","0","00","000","0000","00000","000000","0000000","00000000","000000000","0000000000","00000000000","000000000000","0000000000000","00000000000000","000000000000000","0000000000000000","00000000000000000","000000000000000000","0000000000000000000","00000000000000000000","000000000000000000000","0000000000000000000000","00000000000000000000000","000000000000000000000000","0000000000000000000000000"],T=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],v=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(z.prototype.toString=function(q,W){q=q||10,W=W|0||1;var C;if(q===16||q==="hex"){C="";var I=0,$=0;for(var Z=0;Z>>24-I&16777215,I+=2,I>=26)I-=26,Z--;if($!==0||Z!==this.length-1)C=G[6-B.length]+B+C;else C=B+C}if($!==0)C=$.toString(16)+C;while(C.length%W!==0)C="0"+C;if(this.negative!==0)C="-"+C;return C}if(q===(q|0)&&q>=2&&q<=36){var E=T[q],w=v[q];C="";var h=this.clone();h.negative=0;while(!h.isZero()){var u=h.modrn(w).toString(q);if(h=h.idivn(w),!h.isZero())C=G[E-u.length]+u+C;else C=u+C}if(this.isZero())C="0"+C;while(C.length%W!==0)C="0"+C;if(this.negative!==0)C="-"+C;return C}H(!1,"Base should be between 2 and 36")},z.prototype.toNumber=function(){var q=this.words[0];if(this.length===2)q+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)q+=4503599627370496+this.words[1]*67108864;else if(this.length>2)H(!1,"Number can only safely store up to 53 bits");return this.negative!==0?-q:q},z.prototype.toJSON=function(){return this.toString(16,2)},M)z.prototype.toBuffer=function(q,W){return this.toArrayLike(M,q,W)};z.prototype.toArray=function(q,W){return this.toArrayLike(Array,q,W)};var J=function(q,W){if(q.allocUnsafe)return q.allocUnsafe(W);return new q(W)};if(z.prototype.toArrayLike=function(q,W,C){this._strip();var I=this.byteLength(),$=C||Math.max(1,I);H(I<=$,"byte array longer than desired length"),H($>0,"Requested array length <= 0");var Z=J(q,$),S=W==="le"?"LE":"BE";return this["_toArrayLike"+S](Z,I),Z},z.prototype._toArrayLikeLE=function(q,W){var C=0,I=0;for(var $=0,Z=0;$>8&255;if(C>16&255;if(Z===6){if(C>24&255;I=0,Z=0}else I=S>>>24,Z+=2}if(C=0)q[C--]=S>>8&255;if(C>=0)q[C--]=S>>16&255;if(Z===6){if(C>=0)q[C--]=S>>24&255;I=0,Z=0}else I=S>>>24,Z+=2}if(C>=0){q[C--]=I;while(C>=0)q[C--]=0}},Math.clz32)z.prototype._countBits=function(q){return 32-Math.clz32(q)};else z.prototype._countBits=function(q){var W=q,C=0;if(W>=4096)C+=13,W>>>=13;if(W>=64)C+=7,W>>>=7;if(W>=8)C+=4,W>>>=4;if(W>=2)C+=2,W>>>=2;return C+W};z.prototype._zeroBits=function(q){if(q===0)return 26;var W=q,C=0;if((W&8191)===0)C+=13,W>>>=13;if((W&127)===0)C+=7,W>>>=7;if((W&15)===0)C+=4,W>>>=4;if((W&3)===0)C+=2,W>>>=2;if((W&1)===0)C++;return C},z.prototype.bitLength=function(){var q=this.words[this.length-1],W=this._countBits(q);return(this.length-1)*26+W};function k(q){var W=Array(q.bitLength());for(var C=0;C>>$&1}return W}z.prototype.zeroBits=function(){if(this.isZero())return 0;var q=0;for(var W=0;Wq.length)return this.clone().ior(q);return q.clone().ior(this)},z.prototype.uor=function(q){if(this.length>q.length)return this.clone().iuor(q);return q.clone().iuor(this)},z.prototype.iuand=function(q){var W;if(this.length>q.length)W=q;else W=this;for(var C=0;Cq.length)return this.clone().iand(q);return q.clone().iand(this)},z.prototype.uand=function(q){if(this.length>q.length)return this.clone().iuand(q);return q.clone().iuand(this)},z.prototype.iuxor=function(q){var W,C;if(this.length>q.length)W=this,C=q;else W=q,C=this;for(var I=0;Iq.length)return this.clone().ixor(q);return q.clone().ixor(this)},z.prototype.uxor=function(q){if(this.length>q.length)return this.clone().iuxor(q);return q.clone().iuxor(this)},z.prototype.inotn=function(q){H(typeof q==="number"&&q>=0);var W=Math.ceil(q/26)|0,C=q%26;if(this._expand(W),C>0)W--;for(var I=0;I0)this.words[I]=~this.words[I]&67108863>>26-C;return this._strip()},z.prototype.notn=function(q){return this.clone().inotn(q)},z.prototype.setn=function(q,W){H(typeof q==="number"&&q>=0);var C=q/26|0,I=q%26;if(this._expand(C+1),W)this.words[C]=this.words[C]|1<q.length)C=this,I=q;else C=q,I=this;var $=0;for(var Z=0;Z>>26;for(;$!==0&&Z>>26;if(this.length=C.length,$!==0)this.words[this.length]=$,this.length++;else if(C!==this)for(;Zq.length)return this.clone().iadd(q);return q.clone().iadd(this)},z.prototype.isub=function(q){if(q.negative!==0){q.negative=0;var W=this.iadd(q);return q.negative=1,W._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(q),this.negative=1,this._normSign();var C=this.cmp(q);if(C===0)return this.negative=0,this.length=1,this.words[0]=0,this;var I,$;if(C>0)I=this,$=q;else I=q,$=this;var Z=0;for(var S=0;S<$.length;S++)W=(I.words[S]|0)-($.words[S]|0)+Z,Z=W>>26,this.words[S]=W&67108863;for(;Z!==0&&S>26,this.words[S]=W&67108863;if(Z===0&&S>>26,u=E&67108863,t=Math.min(w,W.length-1);for(var F0=Math.max(0,w-q.length+1);F0<=t;F0++){var K0=w-F0|0;$=q.words[K0]|0,Z=W.words[F0]|0,S=$*Z+u,h+=S/67108864|0,u=S&67108863}C.words[w]=u|0,E=h|0}if(E!==0)C.words[w]=E|0;else C.length--;return C._strip()}var j=function(q,W,C){var I=q.words,$=W.words,Z=C.words,S=0,B,E,w,h=I[0]|0,u=h&8191,t=h>>>13,F0=I[1]|0,K0=F0&8191,r=F0>>>13,A0=I[2]|0,e=A0&8191,Y0=A0>>>13,r0=I[3]|0,b=r0&8191,o=r0>>>13,R0=I[4]|0,Q0=R0&8191,H0=R0>>>13,N0=I[5]|0,d=N0&8191,a=N0>>>13,o0=I[6]|0,V0=o0&8191,W0=o0>>>13,H1=I[7]|0,G0=H1&8191,T0=H1>>>13,v1=I[8]|0,P0=v1&8191,E0=v1>>>13,i1=I[9]|0,x0=i1&8191,k0=i1>>>13,N1=$[0]|0,w0=N1&8191,f0=N1>>>13,zK=$[1]|0,c0=zK&8191,g0=zK>>>13,VK=$[2]|0,u0=VK&8191,y0=VK>>>13,g1=$[3]|0,s0=g1&8191,b0=g1>>>13,t1=$[4]|0,h0=t1&8191,g=t1>>>13,n=$[5]|0,U0=n&8191,O0=n>>>13,i0=$[6]|0,C0=i0&8191,B0=i0>>>13,k1=$[7]|0,l0=k1&8191,d0=k1>>>13,QK=$[8]|0,p0=QK&8191,_0=QK>>>13,P1=$[9]|0,Z1=P1&8191,Y1=P1>>>13;C.negative=q.negative^W.negative,C.length=19,B=Math.imul(u,w0),E=Math.imul(u,f0),E=E+Math.imul(t,w0)|0,w=Math.imul(t,f0);var F1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(F1>>>26)|0,F1&=67108863,B=Math.imul(K0,w0),E=Math.imul(K0,f0),E=E+Math.imul(r,w0)|0,w=Math.imul(r,f0),B=B+Math.imul(u,c0)|0,E=E+Math.imul(u,g0)|0,E=E+Math.imul(t,c0)|0,w=w+Math.imul(t,g0)|0;var A1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(A1>>>26)|0,A1&=67108863,B=Math.imul(e,w0),E=Math.imul(e,f0),E=E+Math.imul(Y0,w0)|0,w=Math.imul(Y0,f0),B=B+Math.imul(K0,c0)|0,E=E+Math.imul(K0,g0)|0,E=E+Math.imul(r,c0)|0,w=w+Math.imul(r,g0)|0,B=B+Math.imul(u,u0)|0,E=E+Math.imul(u,y0)|0,E=E+Math.imul(t,u0)|0,w=w+Math.imul(t,y0)|0;var y1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(y1>>>26)|0,y1&=67108863,B=Math.imul(b,w0),E=Math.imul(b,f0),E=E+Math.imul(o,w0)|0,w=Math.imul(o,f0),B=B+Math.imul(e,c0)|0,E=E+Math.imul(e,g0)|0,E=E+Math.imul(Y0,c0)|0,w=w+Math.imul(Y0,g0)|0,B=B+Math.imul(K0,u0)|0,E=E+Math.imul(K0,y0)|0,E=E+Math.imul(r,u0)|0,w=w+Math.imul(r,y0)|0,B=B+Math.imul(u,s0)|0,E=E+Math.imul(u,b0)|0,E=E+Math.imul(t,s0)|0,w=w+Math.imul(t,b0)|0;var h1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(h1>>>26)|0,h1&=67108863,B=Math.imul(Q0,w0),E=Math.imul(Q0,f0),E=E+Math.imul(H0,w0)|0,w=Math.imul(H0,f0),B=B+Math.imul(b,c0)|0,E=E+Math.imul(b,g0)|0,E=E+Math.imul(o,c0)|0,w=w+Math.imul(o,g0)|0,B=B+Math.imul(e,u0)|0,E=E+Math.imul(e,y0)|0,E=E+Math.imul(Y0,u0)|0,w=w+Math.imul(Y0,y0)|0,B=B+Math.imul(K0,s0)|0,E=E+Math.imul(K0,b0)|0,E=E+Math.imul(r,s0)|0,w=w+Math.imul(r,b0)|0,B=B+Math.imul(u,h0)|0,E=E+Math.imul(u,g)|0,E=E+Math.imul(t,h0)|0,w=w+Math.imul(t,g)|0;var p1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(p1>>>26)|0,p1&=67108863,B=Math.imul(d,w0),E=Math.imul(d,f0),E=E+Math.imul(a,w0)|0,w=Math.imul(a,f0),B=B+Math.imul(Q0,c0)|0,E=E+Math.imul(Q0,g0)|0,E=E+Math.imul(H0,c0)|0,w=w+Math.imul(H0,g0)|0,B=B+Math.imul(b,u0)|0,E=E+Math.imul(b,y0)|0,E=E+Math.imul(o,u0)|0,w=w+Math.imul(o,y0)|0,B=B+Math.imul(e,s0)|0,E=E+Math.imul(e,b0)|0,E=E+Math.imul(Y0,s0)|0,w=w+Math.imul(Y0,b0)|0,B=B+Math.imul(K0,h0)|0,E=E+Math.imul(K0,g)|0,E=E+Math.imul(r,h0)|0,w=w+Math.imul(r,g)|0,B=B+Math.imul(u,U0)|0,E=E+Math.imul(u,O0)|0,E=E+Math.imul(t,U0)|0,w=w+Math.imul(t,O0)|0;var c1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(c1>>>26)|0,c1&=67108863,B=Math.imul(V0,w0),E=Math.imul(V0,f0),E=E+Math.imul(W0,w0)|0,w=Math.imul(W0,f0),B=B+Math.imul(d,c0)|0,E=E+Math.imul(d,g0)|0,E=E+Math.imul(a,c0)|0,w=w+Math.imul(a,g0)|0,B=B+Math.imul(Q0,u0)|0,E=E+Math.imul(Q0,y0)|0,E=E+Math.imul(H0,u0)|0,w=w+Math.imul(H0,y0)|0,B=B+Math.imul(b,s0)|0,E=E+Math.imul(b,b0)|0,E=E+Math.imul(o,s0)|0,w=w+Math.imul(o,b0)|0,B=B+Math.imul(e,h0)|0,E=E+Math.imul(e,g)|0,E=E+Math.imul(Y0,h0)|0,w=w+Math.imul(Y0,g)|0,B=B+Math.imul(K0,U0)|0,E=E+Math.imul(K0,O0)|0,E=E+Math.imul(r,U0)|0,w=w+Math.imul(r,O0)|0,B=B+Math.imul(u,C0)|0,E=E+Math.imul(u,B0)|0,E=E+Math.imul(t,C0)|0,w=w+Math.imul(t,B0)|0;var u1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(u1>>>26)|0,u1&=67108863,B=Math.imul(G0,w0),E=Math.imul(G0,f0),E=E+Math.imul(T0,w0)|0,w=Math.imul(T0,f0),B=B+Math.imul(V0,c0)|0,E=E+Math.imul(V0,g0)|0,E=E+Math.imul(W0,c0)|0,w=w+Math.imul(W0,g0)|0,B=B+Math.imul(d,u0)|0,E=E+Math.imul(d,y0)|0,E=E+Math.imul(a,u0)|0,w=w+Math.imul(a,y0)|0,B=B+Math.imul(Q0,s0)|0,E=E+Math.imul(Q0,b0)|0,E=E+Math.imul(H0,s0)|0,w=w+Math.imul(H0,b0)|0,B=B+Math.imul(b,h0)|0,E=E+Math.imul(b,g)|0,E=E+Math.imul(o,h0)|0,w=w+Math.imul(o,g)|0,B=B+Math.imul(e,U0)|0,E=E+Math.imul(e,O0)|0,E=E+Math.imul(Y0,U0)|0,w=w+Math.imul(Y0,O0)|0,B=B+Math.imul(K0,C0)|0,E=E+Math.imul(K0,B0)|0,E=E+Math.imul(r,C0)|0,w=w+Math.imul(r,B0)|0,B=B+Math.imul(u,l0)|0,E=E+Math.imul(u,d0)|0,E=E+Math.imul(t,l0)|0,w=w+Math.imul(t,d0)|0;var b1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(b1>>>26)|0,b1&=67108863,B=Math.imul(P0,w0),E=Math.imul(P0,f0),E=E+Math.imul(E0,w0)|0,w=Math.imul(E0,f0),B=B+Math.imul(G0,c0)|0,E=E+Math.imul(G0,g0)|0,E=E+Math.imul(T0,c0)|0,w=w+Math.imul(T0,g0)|0,B=B+Math.imul(V0,u0)|0,E=E+Math.imul(V0,y0)|0,E=E+Math.imul(W0,u0)|0,w=w+Math.imul(W0,y0)|0,B=B+Math.imul(d,s0)|0,E=E+Math.imul(d,b0)|0,E=E+Math.imul(a,s0)|0,w=w+Math.imul(a,b0)|0,B=B+Math.imul(Q0,h0)|0,E=E+Math.imul(Q0,g)|0,E=E+Math.imul(H0,h0)|0,w=w+Math.imul(H0,g)|0,B=B+Math.imul(b,U0)|0,E=E+Math.imul(b,O0)|0,E=E+Math.imul(o,U0)|0,w=w+Math.imul(o,O0)|0,B=B+Math.imul(e,C0)|0,E=E+Math.imul(e,B0)|0,E=E+Math.imul(Y0,C0)|0,w=w+Math.imul(Y0,B0)|0,B=B+Math.imul(K0,l0)|0,E=E+Math.imul(K0,d0)|0,E=E+Math.imul(r,l0)|0,w=w+Math.imul(r,d0)|0,B=B+Math.imul(u,p0)|0,E=E+Math.imul(u,_0)|0,E=E+Math.imul(t,p0)|0,w=w+Math.imul(t,_0)|0;var l1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(l1>>>26)|0,l1&=67108863,B=Math.imul(x0,w0),E=Math.imul(x0,f0),E=E+Math.imul(k0,w0)|0,w=Math.imul(k0,f0),B=B+Math.imul(P0,c0)|0,E=E+Math.imul(P0,g0)|0,E=E+Math.imul(E0,c0)|0,w=w+Math.imul(E0,g0)|0,B=B+Math.imul(G0,u0)|0,E=E+Math.imul(G0,y0)|0,E=E+Math.imul(T0,u0)|0,w=w+Math.imul(T0,y0)|0,B=B+Math.imul(V0,s0)|0,E=E+Math.imul(V0,b0)|0,E=E+Math.imul(W0,s0)|0,w=w+Math.imul(W0,b0)|0,B=B+Math.imul(d,h0)|0,E=E+Math.imul(d,g)|0,E=E+Math.imul(a,h0)|0,w=w+Math.imul(a,g)|0,B=B+Math.imul(Q0,U0)|0,E=E+Math.imul(Q0,O0)|0,E=E+Math.imul(H0,U0)|0,w=w+Math.imul(H0,O0)|0,B=B+Math.imul(b,C0)|0,E=E+Math.imul(b,B0)|0,E=E+Math.imul(o,C0)|0,w=w+Math.imul(o,B0)|0,B=B+Math.imul(e,l0)|0,E=E+Math.imul(e,d0)|0,E=E+Math.imul(Y0,l0)|0,w=w+Math.imul(Y0,d0)|0,B=B+Math.imul(K0,p0)|0,E=E+Math.imul(K0,_0)|0,E=E+Math.imul(r,p0)|0,w=w+Math.imul(r,_0)|0,B=B+Math.imul(u,Z1)|0,E=E+Math.imul(u,Y1)|0,E=E+Math.imul(t,Z1)|0,w=w+Math.imul(t,Y1)|0;var LK=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(LK>>>26)|0,LK&=67108863,B=Math.imul(x0,c0),E=Math.imul(x0,g0),E=E+Math.imul(k0,c0)|0,w=Math.imul(k0,g0),B=B+Math.imul(P0,u0)|0,E=E+Math.imul(P0,y0)|0,E=E+Math.imul(E0,u0)|0,w=w+Math.imul(E0,y0)|0,B=B+Math.imul(G0,s0)|0,E=E+Math.imul(G0,b0)|0,E=E+Math.imul(T0,s0)|0,w=w+Math.imul(T0,b0)|0,B=B+Math.imul(V0,h0)|0,E=E+Math.imul(V0,g)|0,E=E+Math.imul(W0,h0)|0,w=w+Math.imul(W0,g)|0,B=B+Math.imul(d,U0)|0,E=E+Math.imul(d,O0)|0,E=E+Math.imul(a,U0)|0,w=w+Math.imul(a,O0)|0,B=B+Math.imul(Q0,C0)|0,E=E+Math.imul(Q0,B0)|0,E=E+Math.imul(H0,C0)|0,w=w+Math.imul(H0,B0)|0,B=B+Math.imul(b,l0)|0,E=E+Math.imul(b,d0)|0,E=E+Math.imul(o,l0)|0,w=w+Math.imul(o,d0)|0,B=B+Math.imul(e,p0)|0,E=E+Math.imul(e,_0)|0,E=E+Math.imul(Y0,p0)|0,w=w+Math.imul(Y0,_0)|0,B=B+Math.imul(K0,Z1)|0,E=E+Math.imul(K0,Y1)|0,E=E+Math.imul(r,Z1)|0,w=w+Math.imul(r,Y1)|0;var d1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(d1>>>26)|0,d1&=67108863,B=Math.imul(x0,u0),E=Math.imul(x0,y0),E=E+Math.imul(k0,u0)|0,w=Math.imul(k0,y0),B=B+Math.imul(P0,s0)|0,E=E+Math.imul(P0,b0)|0,E=E+Math.imul(E0,s0)|0,w=w+Math.imul(E0,b0)|0,B=B+Math.imul(G0,h0)|0,E=E+Math.imul(G0,g)|0,E=E+Math.imul(T0,h0)|0,w=w+Math.imul(T0,g)|0,B=B+Math.imul(V0,U0)|0,E=E+Math.imul(V0,O0)|0,E=E+Math.imul(W0,U0)|0,w=w+Math.imul(W0,O0)|0,B=B+Math.imul(d,C0)|0,E=E+Math.imul(d,B0)|0,E=E+Math.imul(a,C0)|0,w=w+Math.imul(a,B0)|0,B=B+Math.imul(Q0,l0)|0,E=E+Math.imul(Q0,d0)|0,E=E+Math.imul(H0,l0)|0,w=w+Math.imul(H0,d0)|0,B=B+Math.imul(b,p0)|0,E=E+Math.imul(b,_0)|0,E=E+Math.imul(o,p0)|0,w=w+Math.imul(o,_0)|0,B=B+Math.imul(e,Z1)|0,E=E+Math.imul(e,Y1)|0,E=E+Math.imul(Y0,Z1)|0,w=w+Math.imul(Y0,Y1)|0;var s1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(s1>>>26)|0,s1&=67108863,B=Math.imul(x0,s0),E=Math.imul(x0,b0),E=E+Math.imul(k0,s0)|0,w=Math.imul(k0,b0),B=B+Math.imul(P0,h0)|0,E=E+Math.imul(P0,g)|0,E=E+Math.imul(E0,h0)|0,w=w+Math.imul(E0,g)|0,B=B+Math.imul(G0,U0)|0,E=E+Math.imul(G0,O0)|0,E=E+Math.imul(T0,U0)|0,w=w+Math.imul(T0,O0)|0,B=B+Math.imul(V0,C0)|0,E=E+Math.imul(V0,B0)|0,E=E+Math.imul(W0,C0)|0,w=w+Math.imul(W0,B0)|0,B=B+Math.imul(d,l0)|0,E=E+Math.imul(d,d0)|0,E=E+Math.imul(a,l0)|0,w=w+Math.imul(a,d0)|0,B=B+Math.imul(Q0,p0)|0,E=E+Math.imul(Q0,_0)|0,E=E+Math.imul(H0,p0)|0,w=w+Math.imul(H0,_0)|0,B=B+Math.imul(b,Z1)|0,E=E+Math.imul(b,Y1)|0,E=E+Math.imul(o,Z1)|0,w=w+Math.imul(o,Y1)|0;var o1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(o1>>>26)|0,o1&=67108863,B=Math.imul(x0,h0),E=Math.imul(x0,g),E=E+Math.imul(k0,h0)|0,w=Math.imul(k0,g),B=B+Math.imul(P0,U0)|0,E=E+Math.imul(P0,O0)|0,E=E+Math.imul(E0,U0)|0,w=w+Math.imul(E0,O0)|0,B=B+Math.imul(G0,C0)|0,E=E+Math.imul(G0,B0)|0,E=E+Math.imul(T0,C0)|0,w=w+Math.imul(T0,B0)|0,B=B+Math.imul(V0,l0)|0,E=E+Math.imul(V0,d0)|0,E=E+Math.imul(W0,l0)|0,w=w+Math.imul(W0,d0)|0,B=B+Math.imul(d,p0)|0,E=E+Math.imul(d,_0)|0,E=E+Math.imul(a,p0)|0,w=w+Math.imul(a,_0)|0,B=B+Math.imul(Q0,Z1)|0,E=E+Math.imul(Q0,Y1)|0,E=E+Math.imul(H0,Z1)|0,w=w+Math.imul(H0,Y1)|0;var m1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(m1>>>26)|0,m1&=67108863,B=Math.imul(x0,U0),E=Math.imul(x0,O0),E=E+Math.imul(k0,U0)|0,w=Math.imul(k0,O0),B=B+Math.imul(P0,C0)|0,E=E+Math.imul(P0,B0)|0,E=E+Math.imul(E0,C0)|0,w=w+Math.imul(E0,B0)|0,B=B+Math.imul(G0,l0)|0,E=E+Math.imul(G0,d0)|0,E=E+Math.imul(T0,l0)|0,w=w+Math.imul(T0,d0)|0,B=B+Math.imul(V0,p0)|0,E=E+Math.imul(V0,_0)|0,E=E+Math.imul(W0,p0)|0,w=w+Math.imul(W0,_0)|0,B=B+Math.imul(d,Z1)|0,E=E+Math.imul(d,Y1)|0,E=E+Math.imul(a,Z1)|0,w=w+Math.imul(a,Y1)|0;var ZK=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(ZK>>>26)|0,ZK&=67108863,B=Math.imul(x0,C0),E=Math.imul(x0,B0),E=E+Math.imul(k0,C0)|0,w=Math.imul(k0,B0),B=B+Math.imul(P0,l0)|0,E=E+Math.imul(P0,d0)|0,E=E+Math.imul(E0,l0)|0,w=w+Math.imul(E0,d0)|0,B=B+Math.imul(G0,p0)|0,E=E+Math.imul(G0,_0)|0,E=E+Math.imul(T0,p0)|0,w=w+Math.imul(T0,_0)|0,B=B+Math.imul(V0,Z1)|0,E=E+Math.imul(V0,Y1)|0,E=E+Math.imul(W0,Z1)|0,w=w+Math.imul(W0,Y1)|0;var n1=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(n1>>>26)|0,n1&=67108863,B=Math.imul(x0,l0),E=Math.imul(x0,d0),E=E+Math.imul(k0,l0)|0,w=Math.imul(k0,d0),B=B+Math.imul(P0,p0)|0,E=E+Math.imul(P0,_0)|0,E=E+Math.imul(E0,p0)|0,w=w+Math.imul(E0,_0)|0,B=B+Math.imul(G0,Z1)|0,E=E+Math.imul(G0,Y1)|0,E=E+Math.imul(T0,Z1)|0,w=w+Math.imul(T0,Y1)|0;var cV=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(cV>>>26)|0,cV&=67108863,B=Math.imul(x0,p0),E=Math.imul(x0,_0),E=E+Math.imul(k0,p0)|0,w=Math.imul(k0,_0),B=B+Math.imul(P0,Z1)|0,E=E+Math.imul(P0,Y1)|0,E=E+Math.imul(E0,Z1)|0,w=w+Math.imul(E0,Y1)|0;var uV=(S+B|0)+((E&8191)<<13)|0;S=(w+(E>>>13)|0)+(uV>>>26)|0,uV&=67108863,B=Math.imul(x0,Z1),E=Math.imul(x0,Y1),E=E+Math.imul(k0,Z1)|0,w=Math.imul(k0,Y1);var bV=(S+B|0)+((E&8191)<<13)|0;if(S=(w+(E>>>13)|0)+(bV>>>26)|0,bV&=67108863,Z[0]=F1,Z[1]=A1,Z[2]=y1,Z[3]=h1,Z[4]=p1,Z[5]=c1,Z[6]=u1,Z[7]=b1,Z[8]=l1,Z[9]=LK,Z[10]=d1,Z[11]=s1,Z[12]=o1,Z[13]=m1,Z[14]=ZK,Z[15]=n1,Z[16]=cV,Z[17]=uV,Z[18]=bV,S!==0)Z[19]=S,C.length++;return C};if(!Math.imul)j=f;function _(q,W,C){C.negative=W.negative^q.negative,C.length=q.length+W.length;var I=0,$=0;for(var Z=0;Z>>26)|0,$+=S>>>26,S&=67108863}C.words[Z]=B,I=S,S=$}if(I!==0)C.words[Z]=I;else C.length--;return C._strip()}function p(q,W,C){return _(q,W,C)}z.prototype.mulTo=function(q,W){var C,I=this.length+q.length;if(this.length===10&&q.length===10)C=j(this,q,W);else if(I<63)C=f(this,q,W);else if(I<1024)C=_(this,q,W);else C=p(this,q,W);return C};function N(q,W){this.x=q,this.y=W}N.prototype.makeRBT=function(q){var W=Array(q),C=z.prototype._countBits(q)-1;for(var I=0;I>=1;return I},N.prototype.permute=function(q,W,C,I,$,Z){for(var S=0;S>>1)$++;return 1<<$+1+I},N.prototype.conjugate=function(q,W,C){if(C<=1)return;for(var I=0;I>>13,C[2*Z+1]=$&8191,$=$>>>13;for(Z=2*W;Z>=26,C+=$/67108864|0,C+=Z>>>26,this.words[I]=Z&67108863}if(C!==0)this.words[I]=C,this.length++;return this.length=q===0?1:this.length,W?this.ineg():this},z.prototype.muln=function(q){return this.clone().imuln(q)},z.prototype.sqr=function(){return this.mul(this)},z.prototype.isqr=function(){return this.imul(this.clone())},z.prototype.pow=function(q){var W=k(q);if(W.length===0)return new z(1);var C=this;for(var I=0;I=0);var W=q%26,C=(q-W)/26,I=67108863>>>26-W<<26-W,$;if(W!==0){var Z=0;for($=0;$>>26-W}if(Z)this.words[$]=Z,this.length++}if(C!==0){for($=this.length-1;$>=0;$--)this.words[$+C]=this.words[$];for($=0;$=0);var I;if(W)I=(W-W%26)/26;else I=0;var $=q%26,Z=Math.min((q-$)/26,this.length),S=67108863^67108863>>>$<<$,B=C;if(I-=Z,I=Math.max(0,I),B){for(var E=0;EZ){this.length-=Z;for(E=0;E=0&&(w!==0||E>=I);E--){var h=this.words[E]|0;this.words[E]=w<<26-$|h>>>$,w=h&S}if(B&&w!==0)B.words[B.length++]=w;if(this.length===0)this.words[0]=0,this.length=1;return this._strip()},z.prototype.ishrn=function(q,W,C){return H(this.negative===0),this.iushrn(q,W,C)},z.prototype.shln=function(q){return this.clone().ishln(q)},z.prototype.ushln=function(q){return this.clone().iushln(q)},z.prototype.shrn=function(q){return this.clone().ishrn(q)},z.prototype.ushrn=function(q){return this.clone().iushrn(q)},z.prototype.testn=function(q){H(typeof q==="number"&&q>=0);var W=q%26,C=(q-W)/26,I=1<=0);var W=q%26,C=(q-W)/26;if(H(this.negative===0,"imaskn works only with positive numbers"),this.length<=C)return this;if(W!==0)C++;if(this.length=Math.min(C,this.length),W!==0){var I=67108863^67108863>>>W<=67108864;W++)if(this.words[W]-=67108864,W===this.length-1)this.words[W+1]=1;else this.words[W+1]++;return this.length=Math.max(this.length,W+1),this},z.prototype.isubn=function(q){if(H(typeof q==="number"),H(q<67108864),q<0)return this.iaddn(-q);if(this.negative!==0)return this.negative=0,this.iaddn(q),this.negative=1,this;if(this.words[0]-=q,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var W=0;W>26)-(B/67108864|0),this.words[$+C]=Z&67108863}for(;$>26,this.words[$+C]=Z&67108863;if(S===0)return this._strip();H(S===-1),S=0;for($=0;$>26,this.words[$]=Z&67108863;return this.negative=1,this._strip()},z.prototype._wordDiv=function(q,W){var C=this.length-q.length,I=this.clone(),$=q,Z=$.words[$.length-1]|0,S=this._countBits(Z);if(C=26-S,C!==0)$=$.ushln(C),I.iushln(C),Z=$.words[$.length-1]|0;var B=I.length-$.length,E;if(W!=="mod"){E=new z(null),E.length=B+1,E.words=Array(E.length);for(var w=0;w=0;u--){var t=(I.words[$.length+u]|0)*67108864+(I.words[$.length+u-1]|0);t=Math.min(t/Z|0,67108863),I._ishlnsubmul($,t,u);while(I.negative!==0)if(t--,I.negative=0,I._ishlnsubmul($,1,u),!I.isZero())I.negative^=1;if(E)E.words[u]=t}if(E)E._strip();if(I._strip(),W!=="div"&&C!==0)I.iushrn(C);return{div:E||null,mod:I}},z.prototype.divmod=function(q,W,C){if(H(!q.isZero()),this.isZero())return{div:new z(0),mod:new z(0)};var I,$,Z;if(this.negative!==0&&q.negative===0){if(Z=this.neg().divmod(q,W),W!=="mod")I=Z.div.neg();if(W!=="div"){if($=Z.mod.neg(),C&&$.negative!==0)$.iadd(q)}return{div:I,mod:$}}if(this.negative===0&&q.negative!==0){if(Z=this.divmod(q.neg(),W),W!=="mod")I=Z.div.neg();return{div:I,mod:Z.mod}}if((this.negative&q.negative)!==0){if(Z=this.neg().divmod(q.neg(),W),W!=="div"){if($=Z.mod.neg(),C&&$.negative!==0)$.isub(q)}return{div:Z.div,mod:$}}if(q.length>this.length||this.cmp(q)<0)return{div:new z(0),mod:this};if(q.length===1){if(W==="div")return{div:this.divn(q.words[0]),mod:null};if(W==="mod")return{div:null,mod:new z(this.modrn(q.words[0]))};return{div:this.divn(q.words[0]),mod:new z(this.modrn(q.words[0]))}}return this._wordDiv(q,W)},z.prototype.div=function(q){return this.divmod(q,"div",!1).div},z.prototype.mod=function(q){return this.divmod(q,"mod",!1).mod},z.prototype.umod=function(q){return this.divmod(q,"mod",!0).mod},z.prototype.divRound=function(q){var W=this.divmod(q);if(W.mod.isZero())return W.div;var C=W.div.negative!==0?W.mod.isub(q):W.mod,I=q.ushrn(1),$=q.andln(1),Z=C.cmp(I);if(Z<0||$===1&&Z===0)return W.div;return W.div.negative!==0?W.div.isubn(1):W.div.iaddn(1)},z.prototype.modrn=function(q){var W=q<0;if(W)q=-q;H(q<=67108863);var C=67108864%q,I=0;for(var $=this.length-1;$>=0;$--)I=(C*I+(this.words[$]|0))%q;return W?-I:I},z.prototype.modn=function(q){return this.modrn(q)},z.prototype.idivn=function(q){var W=q<0;if(W)q=-q;H(q<=67108863);var C=0;for(var I=this.length-1;I>=0;I--){var $=(this.words[I]|0)+C*67108864;this.words[I]=$/q|0,C=$%q}return this._strip(),W?this.ineg():this},z.prototype.divn=function(q){return this.clone().idivn(q)},z.prototype.egcd=function(q){H(q.negative===0),H(!q.isZero());var W=this,C=q.clone();if(W.negative!==0)W=W.umod(q);else W=W.clone();var I=new z(1),$=new z(0),Z=new z(0),S=new z(1),B=0;while(W.isEven()&&C.isEven())W.iushrn(1),C.iushrn(1),++B;var E=C.clone(),w=W.clone();while(!W.isZero()){for(var h=0,u=1;(W.words[0]&u)===0&&h<26;++h,u<<=1);if(h>0){W.iushrn(h);while(h-- >0){if(I.isOdd()||$.isOdd())I.iadd(E),$.isub(w);I.iushrn(1),$.iushrn(1)}}for(var t=0,F0=1;(C.words[0]&F0)===0&&t<26;++t,F0<<=1);if(t>0){C.iushrn(t);while(t-- >0){if(Z.isOdd()||S.isOdd())Z.iadd(E),S.isub(w);Z.iushrn(1),S.iushrn(1)}}if(W.cmp(C)>=0)W.isub(C),I.isub(Z),$.isub(S);else C.isub(W),Z.isub(I),S.isub($)}return{a:Z,b:S,gcd:C.iushln(B)}},z.prototype._invmp=function(q){H(q.negative===0),H(!q.isZero());var W=this,C=q.clone();if(W.negative!==0)W=W.umod(q);else W=W.clone();var I=new z(1),$=new z(0),Z=C.clone();while(W.cmpn(1)>0&&C.cmpn(1)>0){for(var S=0,B=1;(W.words[0]&B)===0&&S<26;++S,B<<=1);if(S>0){W.iushrn(S);while(S-- >0){if(I.isOdd())I.iadd(Z);I.iushrn(1)}}for(var E=0,w=1;(C.words[0]&w)===0&&E<26;++E,w<<=1);if(E>0){C.iushrn(E);while(E-- >0){if($.isOdd())$.iadd(Z);$.iushrn(1)}}if(W.cmp(C)>=0)W.isub(C),I.isub($);else C.isub(W),$.isub(I)}var h;if(W.cmpn(1)===0)h=I;else h=$;if(h.cmpn(0)<0)h.iadd(q);return h},z.prototype.gcd=function(q){if(this.isZero())return q.abs();if(q.isZero())return this.abs();var W=this.clone(),C=q.clone();W.negative=0,C.negative=0;for(var I=0;W.isEven()&&C.isEven();I++)W.iushrn(1),C.iushrn(1);do{while(W.isEven())W.iushrn(1);while(C.isEven())C.iushrn(1);var $=W.cmp(C);if($<0){var Z=W;W=C,C=Z}else if($===0||C.cmpn(1)===0)break;W.isub(C)}while(!0);return C.iushln(I)},z.prototype.invm=function(q){return this.egcd(q).a.umod(q)},z.prototype.isEven=function(){return(this.words[0]&1)===0},z.prototype.isOdd=function(){return(this.words[0]&1)===1},z.prototype.andln=function(q){return this.words[0]&q},z.prototype.bincn=function(q){H(typeof q==="number");var W=q%26,C=(q-W)/26,I=1<>>26,S&=67108863,this.words[Z]=S}if($!==0)this.words[Z]=$,this.length++;return this},z.prototype.isZero=function(){return this.length===1&&this.words[0]===0},z.prototype.cmpn=function(q){var W=q<0;if(this.negative!==0&&!W)return-1;if(this.negative===0&&W)return 1;this._strip();var C;if(this.length>1)C=1;else{if(W)q=-q;H(q<=67108863,"Number is too big");var I=this.words[0]|0;C=I===q?0:Iq.length)return 1;if(this.length=0;C--){var I=this.words[C]|0,$=q.words[C]|0;if(I===$)continue;if(I<$)W=-1;else if(I>$)W=1;break}return W},z.prototype.gtn=function(q){return this.cmpn(q)===1},z.prototype.gt=function(q){return this.cmp(q)===1},z.prototype.gten=function(q){return this.cmpn(q)>=0},z.prototype.gte=function(q){return this.cmp(q)>=0},z.prototype.ltn=function(q){return this.cmpn(q)===-1},z.prototype.lt=function(q){return this.cmp(q)===-1},z.prototype.lten=function(q){return this.cmpn(q)<=0},z.prototype.lte=function(q){return this.cmp(q)<=0},z.prototype.eqn=function(q){return this.cmpn(q)===0},z.prototype.eq=function(q){return this.cmp(q)===0},z.red=function(q){return new O(q)},z.prototype.toRed=function(q){return H(!this.red,"Already a number in reduction context"),H(this.negative===0,"red works only with positives"),q.convertTo(this)._forceRed(q)},z.prototype.fromRed=function(){return H(this.red,"fromRed works only with numbers in reduction context"),this.red.convertFrom(this)},z.prototype._forceRed=function(q){return this.red=q,this},z.prototype.forceRed=function(q){return H(!this.red,"Already a number in reduction context"),this._forceRed(q)},z.prototype.redAdd=function(q){return H(this.red,"redAdd works only with red numbers"),this.red.add(this,q)},z.prototype.redIAdd=function(q){return H(this.red,"redIAdd works only with red numbers"),this.red.iadd(this,q)},z.prototype.redSub=function(q){return H(this.red,"redSub works only with red numbers"),this.red.sub(this,q)},z.prototype.redISub=function(q){return H(this.red,"redISub works only with red numbers"),this.red.isub(this,q)},z.prototype.redShl=function(q){return H(this.red,"redShl works only with red numbers"),this.red.shl(this,q)},z.prototype.redMul=function(q){return H(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.mul(this,q)},z.prototype.redIMul=function(q){return H(this.red,"redMul works only with red numbers"),this.red._verify2(this,q),this.red.imul(this,q)},z.prototype.redSqr=function(){return H(this.red,"redSqr works only with red numbers"),this.red._verify1(this),this.red.sqr(this)},z.prototype.redISqr=function(){return H(this.red,"redISqr works only with red numbers"),this.red._verify1(this),this.red.isqr(this)},z.prototype.redSqrt=function(){return H(this.red,"redSqrt works only with red numbers"),this.red._verify1(this),this.red.sqrt(this)},z.prototype.redInvm=function(){return H(this.red,"redInvm works only with red numbers"),this.red._verify1(this),this.red.invm(this)},z.prototype.redNeg=function(){return H(this.red,"redNeg works only with red numbers"),this.red._verify1(this),this.red.neg(this)},z.prototype.redPow=function(q){return H(this.red&&!q.red,"redPow(normalNum)"),this.red._verify1(this),this.red.pow(this,q)};var m={k256:null,p224:null,p192:null,p25519:null};function z0(q,W){this.name=q,this.p=new z(W,16),this.n=this.p.bitLength(),this.k=new z(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}z0.prototype._tmp=function(){var q=new z(null);return q.words=Array(Math.ceil(this.n/13)),q},z0.prototype.ireduce=function(q){var W=q,C;do this.split(W,this.tmp),W=this.imulK(W),W=W.iadd(this.tmp),C=W.bitLength();while(C>this.n);var I=C0)W.isub(this.p);else if(W.strip!==void 0)W.strip();else W._strip();return W},z0.prototype.split=function(q,W){q.iushrn(this.n,0,W)},z0.prototype.imulK=function(q){return q.imul(this.k)};function L0(){z0.call(this,"k256","ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f")}Y(L0,z0),L0.prototype.split=function(q,W){var C=4194303,I=Math.min(q.length,9);for(var $=0;$>>22,Z=S}if(Z>>>=22,q.words[$-10]=Z,Z===0&&q.length>10)q.length-=10;else q.length-=9},L0.prototype.imulK=function(q){q.words[q.length]=0,q.words[q.length+1]=0,q.length+=2;var W=0;for(var C=0;C>>=26,q.words[C]=$,W=I}if(W!==0)q.words[q.length++]=W;return q},z._prime=function(q){if(m[q])return m[q];var W;if(q==="k256")W=new L0;else if(q==="p224")W=new s;else if(q==="p192")W=new Z0;else if(q==="p25519")W=new L;else throw Error("Unknown prime "+q);return m[q]=W,W};function O(q){if(typeof q==="string"){var W=z._prime(q);this.m=W.p,this.prime=W}else H(q.gtn(1),"modulus must be greater than 1"),this.m=q,this.prime=null}O.prototype._verify1=function(q){H(q.negative===0,"red works only with positives"),H(q.red,"red works only with red numbers")},O.prototype._verify2=function(q,W){H((q.negative|W.negative)===0,"red works only with positives"),H(q.red&&q.red===W.red,"red works only with red numbers")},O.prototype.imod=function(q){if(this.prime)return this.prime.ireduce(q)._forceRed(this);return F(q,q.umod(this.m)._forceRed(this)),q},O.prototype.neg=function(q){if(q.isZero())return q.clone();return this.m.sub(q)._forceRed(this)},O.prototype.add=function(q,W){this._verify2(q,W);var C=q.add(W);if(C.cmp(this.m)>=0)C.isub(this.m);return C._forceRed(this)},O.prototype.iadd=function(q,W){this._verify2(q,W);var C=q.iadd(W);if(C.cmp(this.m)>=0)C.isub(this.m);return C},O.prototype.sub=function(q,W){this._verify2(q,W);var C=q.sub(W);if(C.cmpn(0)<0)C.iadd(this.m);return C._forceRed(this)},O.prototype.isub=function(q,W){this._verify2(q,W);var C=q.isub(W);if(C.cmpn(0)<0)C.iadd(this.m);return C},O.prototype.shl=function(q,W){return this._verify1(q),this.imod(q.ushln(W))},O.prototype.imul=function(q,W){return this._verify2(q,W),this.imod(q.imul(W))},O.prototype.mul=function(q,W){return this._verify2(q,W),this.imod(q.mul(W))},O.prototype.isqr=function(q){return this.imul(q,q.clone())},O.prototype.sqr=function(q){return this.mul(q,q)},O.prototype.sqrt=function(q){if(q.isZero())return q.clone();var W=this.m.andln(3);if(H(W%2===1),W===3){var C=this.m.add(new z(1)).iushrn(2);return this.pow(q,C)}var I=this.m.subn(1),$=0;while(!I.isZero()&&I.andln(1)===0)$++,I.iushrn(1);H(!I.isZero());var Z=new z(1).toRed(this),S=Z.redNeg(),B=this.m.subn(1).iushrn(1),E=this.m.bitLength();E=new z(2*E*E).toRed(this);while(this.pow(E,B).cmp(S)!==0)E.redIAdd(S);var w=this.pow(E,I),h=this.pow(q,I.addn(1).iushrn(1)),u=this.pow(q,I),t=$;while(u.cmp(Z)!==0){var F0=u;for(var K0=0;F0.cmp(Z)!==0;K0++)F0=F0.redSqr();H(K0=0;$--){var w=W.words[$];for(var h=E-1;h>=0;h--){var u=w>>h&1;if(Z!==I[0])Z=this.sqr(Z);if(u===0&&S===0){B=0;continue}if(S<<=1,S|=u,B++,B!==C&&($!==0||h!==0))continue;Z=this.mul(Z,I[S]),B=0,S=0}E=26}return Z},O.prototype.convertTo=function(q){var W=q.umod(this.m);return W===q?W.clone():W},O.prototype.convertFrom=function(q){var W=q.clone();return W.red=null,W},z.mont=function(q){return new X(q)};function X(q){if(O.call(this,q),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new z(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}Y(X,O),X.prototype.convertTo=function(q){return this.imod(q.ushln(this.shift))},X.prototype.convertFrom=function(q){var W=this.imod(q.mul(this.rinv));return W.red=null,W},X.prototype.imul=function(q,W){if(q.isZero()||W.isZero())return q.words[0]=0,q.length=1,q;var C=q.imul(W),I=C.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),$=C.isub(I).iushrn(this.shift),Z=$;if($.cmp(this.m)>=0)Z=$.isub(this.m);else if($.cmpn(0)<0)Z=$.iadd(this.m);return Z._forceRed(this)},X.prototype.mul=function(q,W){if(q.isZero()||W.isZero())return new z(0)._forceRed(this);var C=q.mul(W),I=C.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),$=C.isub(I).iushrn(this.shift),Z=$;if($.cmp(this.m)>=0)Z=$.isub(this.m);else if($.cmpn(0)<0)Z=$.iadd(this.m);return Z._forceRed(this)},X.prototype.invm=function(q){var W=this.imod(q._invmp(this.m).mul(this.r2));return W._forceRed(this)}})(typeof V>"u"||V,K)}),ZA=D0((K,V)=>{var Q=rB(),U=xL(),H=QV().Buffer;function Y(A){var R=A.modulus.byteLength(),D;do D=new Q(U(R));while(D.cmp(A.modulus)>=0||!D.umod(A.prime1)||!D.umod(A.prime2));return D}function z(A){var R=Y(A),D=R.toRed(Q.mont(A.modulus)).redPow(new Q(A.publicExponent)).fromRed();return{blinder:D,unblinder:R.invm(A.modulus)}}function M(A,R){var D=z(R),F=R.modulus.byteLength(),P=new Q(A).mul(D.blinder).umod(R.modulus),G=P.toRed(Q.mont(R.prime1)),T=P.toRed(Q.mont(R.prime2)),v=R.coefficient,J=R.prime1,k=R.prime2,f=G.redPow(R.exponent1).fromRed(),j=T.redPow(R.exponent2).fromRed(),_=f.isub(j).imul(v).umod(J).imul(k);return j.iadd(_).imul(D.unblinder).umod(R.modulus).toArrayLike(H,"be",F)}M.getr=Y,V.exports=M}),iB=D0((K,V)=>{var Q=UA(),U=xL(),H=_L(),Y=HA(),z=zA(),M=_2(),A=LA(),R=ZA(),D=QV().Buffer;V.exports=function(T,v,J){var k;if(T.padding)k=T.padding;else if(J)k=1;else k=4;var f=Q(T),j;if(k===4)j=F(f,v);else if(k===1)j=P(f,v,J);else if(k===3){if(j=new M(v),j.cmp(f.modulus)>=0)throw Error("data too long for modulus")}else throw Error("unknown padding");if(J)return R(j,f);else return A(j,f)};function F(T,v){var J=T.modulus.byteLength(),k=v.length,f=H("sha1").update(D.alloc(0)).digest(),j=f.length,_=2*j;if(k>J-_-2)throw Error("message too long");var p=D.alloc(J-k-_-2),N=J-j-1,m=U(j),z0=z(D.concat([f,p,D.alloc(1,1),v],N),Y(m,N)),L0=z(m,Y(z0,j));return new M(D.concat([D.alloc(1),L0,z0],J))}function P(T,v,J){var k=v.length,f=T.modulus.byteLength();if(k>f-11)throw Error("message too long");var j;if(J)j=D.alloc(f-k-3,255);else j=G(f-k-3);return new M(D.concat([D.from([0,J?1:2]),j,D.alloc(1),v],f))}function G(T){var v=D.allocUnsafe(T),J=0,k=U(T*2),f=0,j;while(J{var Q=UA(),U=HA(),H=zA(),Y=_2(),z=ZA(),M=_L(),A=LA(),R=QV().Buffer;V.exports=function(G,T,v){var J;if(G.padding)J=G.padding;else if(v)J=1;else J=4;var k=Q(G),f=k.modulus.byteLength();if(T.length>f||new Y(T).cmp(k.modulus)>=0)throw Error("decryption error");var j;if(v)j=A(new Y(T),k);else j=z(T,k);var _=R.alloc(f-j.length);if(j=R.concat([_,j],f),J===4)return D(k,j);else if(J===1)return F(k,j,v);else if(J===3)return j;else throw Error("unknown padding")};function D(G,T){var v=G.modulus.byteLength(),J=M("sha1").update(R.alloc(0)).digest(),k=J.length;if(T[0]!==0)throw Error("decryption error");var f=T.slice(1,k+1),j=T.slice(k+1),_=H(f,U(j,k)),p=H(j,U(_,v-k-1));if(P(J,p.slice(0,k)))throw Error("decryption error");var N=k;while(p[N]===0)N++;if(p[N++]!==1)throw Error("decryption error");return p.slice(N)}function F(G,T,v){var J=T.slice(0,2),k=2,f=0;while(T[k++]!==0)if(k>=T.length){f++;break}var j=T.slice(2,k-1);if(J.toString("hex")!=="0002"&&!v||J.toString("hex")!=="0001"&&v)f++;if(j.length<8)f++;if(f)throw Error("decryption error");return T.slice(k)}function P(G,T){G=R.from(G),T=R.from(T);var v=0,J=G.length;if(G.length!==T.length)v++,J=Math.min(G.length,T.length);var k=-1;while(++k{K.publicEncrypt=iB(),K.privateDecrypt=tB(),K.privateEncrypt=function(V,Q){return K.publicEncrypt(V,Q,!0)},K.publicDecrypt=function(V,Q){return K.privateDecrypt(V,Q,!0)}}),aB=D0((K)=>{var V=(WV(),D1(MV));if(typeof V.publicEncrypt!=="function")V=E2();if(K.publicEncrypt=V.publicEncrypt,K.privateDecrypt=V.privateDecrypt,typeof V.privateEncrypt!=="function")K.privateEncrypt=E2().privateEncrypt;else K.privateEncrypt=V.privateEncrypt;if(typeof V.publicDecrypt!=="function")K.publicDecrypt=E2().publicDecrypt;else K.publicDecrypt=V.publicDecrypt}),eB=D0((K)=>{var V=QV(),Q=xL(),U=V.Buffer,H=V.kMaxLength,Y=globalThis.crypto||globalThis.msCrypto,z=Math.pow(2,32)-1;function M(P,G){if(typeof P!=="number"||P!==P)throw TypeError("offset must be a number");if(P>z||P<0)throw TypeError("offset must be a uint32");if(P>H||P>G)throw RangeError("offset out of range")}function A(P,G,T){if(typeof P!=="number"||P!==P)throw TypeError("size must be a number");if(P>z||P<0)throw TypeError("size must be a uint32");if(P+G>T||P>H)throw RangeError("buffer too small")}Y&&Y.getRandomValues,K.randomFill=R,K.randomFillSync=F;function R(P,G,T,v){if(!U.isBuffer(P)&&!(P instanceof globalThis.Uint8Array))throw TypeError('"buf" argument must be a Buffer or Uint8Array');if(typeof G==="function")v=G,G=0,T=P.length;else if(typeof T==="function")v=T,T=P.length-G;else if(typeof v!=="function")throw TypeError('"cb" argument must be a function');return M(G,P.length),A(T,G,P.length),D(P,G,T,v)}function D(P,G,T,v){if(!1)var J,k;if(v){Q(T,function(j,_){if(j)return v(j);_.copy(P,G),v(null,P)});return}var f=Q(T);return f.copy(P,G),P}function F(P,G,T){if(typeof G>"u")G=0;if(!U.isBuffer(P)&&!(P instanceof globalThis.Uint8Array))throw TypeError('"buf" argument must be a Buffer or Uint8Array');if(M(G,P.length),T===void 0)T=P.length-G;return A(T,G,P.length),D(P,G,T)}}),KJ=D0((K,V)=>{var Q=(WV(),D1(MV));if(typeof Q.randomFill==="function"&&typeof Q.randomFillSync==="function")K.randomFill=Q.randomFill,K.randomFillSync=Q.randomFillSync;else V.exports=eB()}),VJ=D0((K)=>{K.randomBytes=K.rng=K.pseudoRandomBytes=K.prng=xL(),K.createHash=K.Hash=_L(),K.createHmac=K.Hmac=N9();var V=EE(),Q=Object.keys(V),U=["sha1","sha224","sha256","sha384","sha512","md5","rmd160"].concat(Q);K.getHashes=function(){return U};var H=o9();K.pbkdf2=H.pbkdf2,K.pbkdf2Sync=H.pbkdf2Sync;var Y=ZB();K.Cipher=Y.Cipher,K.createCipher=Y.createCipher,K.Cipheriv=Y.Cipheriv,K.createCipheriv=Y.createCipheriv,K.Decipher=Y.Decipher,K.createDecipher=Y.createDecipher,K.Decipheriv=Y.Decipheriv,K.createDecipheriv=Y.createDecipheriv,K.getCiphers=Y.getCiphers,K.listCiphers=Y.listCiphers;var z=YB();K.DiffieHellmanGroup=z.DiffieHellmanGroup,K.createDiffieHellmanGroup=z.createDiffieHellmanGroup,K.getDiffieHellman=z.getDiffieHellman,K.createDiffieHellman=z.createDiffieHellman,K.DiffieHellman=z.DiffieHellman;var M=qB();K.createSign=M.createSign,K.Sign=M.Sign,K.createVerify=M.createVerify,K.Verify=M.Verify,K.createECDH=jB();var A=aB();K.publicEncrypt=A.publicEncrypt,K.privateEncrypt=A.privateEncrypt,K.publicDecrypt=A.publicDecrypt,K.privateDecrypt=A.privateDecrypt;var R=KJ();K.randomFill=R.randomFill,K.randomFillSync=R.randomFillSync,K.createCredentials=function(){throw Error(`sorry, createCredentials is not implemented yet +we accept pull requests +https://github.com/browserify/crypto-browserify`)},K.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}}),X1=TE(VJ(),1),QJ=X1.prng,UJ=X1.pseudoRandomBytes,HJ=X1.rng,zJ=X1.randomBytes,LJ=X1.Hash,ZJ=X1.createHash,YJ=X1.Hmac,qJ=X1.createHmac,OJ=X1.getHashes,MJ=X1.pbkdf2,WJ=X1.pbkdf2Sync,XJ=X1.Cipher,AJ=X1.createCipher,RJ=X1.Cipheriv,$J=X1.createCipheriv,FJ=X1.Decipher,DJ=X1.createDecipher,SJ=X1.Decipheriv,PJ=X1.createDecipheriv,CJ=X1.getCiphers,IJ=X1.listCiphers,GJ=X1.DiffieHellmanGroup,TJ=X1.createDiffieHellmanGroup,EJ=X1.getDiffieHellman,BJ=X1.createDiffieHellman,JJ=X1.DiffieHellman,vJ=X1.createSign,kJ=X1.Sign,fJ=X1.createVerify,wJ=X1.Verify,jJ=X1.createECDH,xJ=X1.publicEncrypt,_J=X1.privateEncrypt,NJ=X1.publicDecrypt,gJ=X1.privateDecrypt,yJ=X1.randomFill,hJ=X1.randomFillSync,pJ=X1.createCredentials,cJ=X1.constants,dJ=["p192","p224","p256","p384","p521","curve25519","ed25519","secp256k1","secp224r1","prime256v1","prime192v1","ed25519","secp384r1","secp521r1"];oJ=crypto,mJ=crypto});var q6=wK((Us,T$)=>{T$.exports={allowDangerousObjectKeys:"deeply:allowDangerousObjectKeys:"+Math.random(),useCustomAdapters:"deeply:useCustomAdapters:"+Math.random(),useCustomTypeOf:"deeply:useCustomTypeOf:"+Math.random()}});var B$=wK((Hs,E$)=>{E$.exports=Jf;function Jf(K,V,Q){return K.splice(0),V.reduce(function(U,H,Y){return U[Y]=Q(void 0,H),U},K),K}});var J$=wK((zs,hO)=>{hO.exports=vf;hO.exports.initialValue=function(){return new Date};function vf(K,V){return K.setTime(V.valueOf()),K}});var O6=wK((Ls,v$)=>{var kf=q6();v$.exports=ff;function ff(K,V,Q){var U=this;return Object.keys(V).reduce(function(H,Y){if(U.allowDangerousObjectKeys!==kf.allowDangerousObjectKeys&&wf(Y))return H;return H[Y]=Q(H[Y],V[Y]),H},K),K}function wf(K){return["__proto__"].indexOf(K)!=-1}});var f$=wK((Zs,k$)=>{var jf=O6();k$.exports=xf;function xf(K,V,Q){return jf.call(this,K,V,Q),K}});var j$=wK((Ys,w$)=>{w$.exports=_f;function _f(K,V,Q){return V.reduce(function(U,H,Y){return U[Y]=Q(U[Y],H),U},K),K}});var _$=wK((qs,x$)=>{x$.exports=Nf;function Nf(K,V,Q){return V.reduce(function(U,H){return U.push(Q(void 0,H)),U},K),K}});var g$=wK((Os,N$)=>{N$.exports=gf;function gf(K,V,Q){return V.reduce(function(U,H){if(U.indexOf(H)==-1)U.push(Q(void 0,H));return U},K),K}});var pO=wK((Ms,y$)=>{y$.exports=yf;function yf(K){return Function("source","return function "+K.name.replace(/^bound /,"")+"("+Array(K.length+1).join("a").split("").join(",")+"){ return source.apply(this, arguments); }")(K)}});var p$=wK((Ws,h$)=>{var hf=pO(),pf=O6();h$.exports=cf;function cf(K,V,Q){var U=hf(V);return U.prototype=Q(void 0,V.prototype),pf(U,V,Q),U}});var u$=wK((Xs,c$)=>{var uf=pO(),bf=O6();c$.exports=lf;function lf(K,V,Q){var U=uf(V);return U.prototype=V.prototype,bf(U,V,Q),U}});var cO=wK((As,b$)=>{b$.exports={array:B$(),date:J$(),object:f$(),arraysCombine:j$(),arraysAppend:_$(),arraysAppendUnique:g$(),functionsClone:p$(),functionsExtend:u$()}});var d$=wK((Rs,l$)=>{l$.exports=df;function df(K,V){var Q,U=Object.prototype.toString.call(K);if(V=V||{},!Q&&K===void 0)Q="undefined";if(!Q&&K===null)Q="null";if(!Q&&K.constructor&&typeof K.constructor.isBuffer=="function"&&K.constructor.isBuffer(K))Q="buffer";if(!Q&&typeof window=="object"&&K===window)Q="global";if(!Q&&typeof global=="object"&&K===global)Q="global";if(!Q&&typeof K=="number"&&isNaN(K))Q="nan";if(!Q&&typeof K=="object"&&U=="[object Number]"&&isNaN(K))Q="nan";if(!Q&&typeof K=="object"&&U.substr(-6)=="Event]")Q="event";if(!Q&&U.substr(0,12)=="[object HTML")Q="html";if(!Q&&U.substr(0,12)=="[object Node")Q="html";if(!Q)Q=U.match(/\[object\s*([^\]]+)\]/)[1].toLowerCase();if(Q=="object"&&V.pojoOnly&&K.constructor){if(Q=K.constructor.name||"unknown",Q=="Object")Q="object"}return Q}});var n$=wK(($s,m$)=>{var sf=d$(),of=cO(),s$=q6();m$.exports=o$;function o$(K,V){var Q=V,U=mf.call(this),H=U(V),Y=nf.call(this,H);if(U(K)!=H)K=rf(H,Y);return Q=Y.call(this,K,V,o$.bind(this)),Q}function mf(){var K=sf;if(this.useCustomTypeOf===s$.useCustomTypeOf)K=this.typeof;return K}function nf(K){var V=of[K]||tf;if(this.useCustomAdapters===s$.useCustomAdapters&&typeof this[K]=="function")V=this[K];return V}function rf(K,V){var Q,U=typeof window=="object"?window:global,H=K[0].toUpperCase()+K.substr(1);if(typeof V.initialValue=="function")Q=V.initialValue();else if(H in U)Q=new U[H]().valueOf();return Q}function tf(K,V){return V}});var uO=wK((Fs,r$)=>{var af=n$();r$.exports=ef;function ef(){var K=Array.prototype.slice.call(arguments),V=K.shift();while(K.length)V=af.call(this,V,K.shift());return V}});var t$=wK((Ds,i$)=>{var Kw=uO();i$.exports=Vw;function Vw(){var K=Array.prototype.slice.call(arguments,0);return Kw.apply(this,[void 0].concat(K))}});var bO=wK((Ss,bH)=>{var Qw=q6(),Uw=cO(),Hw=uO(),a$=t$();bH.exports=a$;bH.exports.mutable=Hw;bH.exports.immutable=a$;bH.exports.behaviors=Qw;bH.exports.adapters=Uw});var G7=wK((vs,M6)=>{(function(K,V,Q){if(!K)return;var U={8:"backspace",9:"tab",13:"enter",16:"shift",17:"ctrl",18:"alt",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"ins",46:"del",91:"meta",93:"meta",224:"meta"},H={106:"*",107:"+",109:"-",110:".",111:"/",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},Y={"~":"`","!":"1","@":"2","#":"3",$:"4","%":"5","^":"6","&":"7","*":"8","(":"9",")":"0",_:"-","+":"=",":":";",'"':"'","<":",",">":".","?":"/","|":"\\"},z={option:"alt",command:"meta",return:"enter",escape:"esc",plus:"+",mod:/Mac|iPod|iPhone|iPad/.test(navigator.platform)?"meta":"ctrl"},M;for(var A=1;A<20;++A)U[111+A]="f"+A;for(A=0;A<=9;++A)U[A+96]=A.toString();function R(N,m,z0){if(N.addEventListener){N.addEventListener(m,z0,!1);return}N.attachEvent("on"+m,z0)}function D(N){if(N.type=="keypress"){var m=String.fromCharCode(N.which);if(!N.shiftKey)m=m.toLowerCase();return m}if(U[N.which])return U[N.which];if(H[N.which])return H[N.which];return String.fromCharCode(N.which).toLowerCase()}function F(N,m){return N.sort().join(",")===m.sort().join(",")}function P(N){var m=[];if(N.shiftKey)m.push("shift");if(N.altKey)m.push("alt");if(N.ctrlKey)m.push("ctrl");if(N.metaKey)m.push("meta");return m}function G(N){if(N.preventDefault){N.preventDefault();return}N.returnValue=!1}function T(N){if(N.stopPropagation){N.stopPropagation();return}N.cancelBubble=!0}function v(N){return N=="shift"||N=="ctrl"||N=="alt"||N=="meta"}function J(){if(!M){M={};for(var N in U){if(N>95&&N<112)continue;if(U.hasOwnProperty(N))M[U[N]]=N}}return M}function k(N,m,z0){if(!z0)z0=J()[N]?"keydown":"keypress";if(z0=="keypress"&&m.length)z0="keydown";return z0}function f(N){if(N==="+")return["+"];return N=N.replace(/\+{2}/g,"+plus"),N.split("+")}function j(N,m){var z0,L0,s,Z0=[];z0=f(N);for(s=0;s1){I(Z,h,S,B);return}u=j(Z,B),m._callbacks[u.key]=m._callbacks[u.key]||[],X(u.key,u.modifiers,{type:u.action},E,Z,w),m._callbacks[u.key][E?"unshift":"push"]({callback:S,modifiers:u.modifiers,action:u.action,seq:E,level:w,combo:Z})}m._bindMultiple=function(Z,S,B){for(var E=0;E-1)return!1;if(_(m,z0.target))return!1;if("composedPath"in N&&typeof N.composedPath==="function"){var L0=N.composedPath()[0];if(L0!==N.target)m=L0}return m.tagName=="INPUT"||m.tagName=="SELECT"||m.tagName=="TEXTAREA"||m.isContentEditable},p.prototype.handleKey=function(){var N=this;return N._handleKey.apply(N,arguments)},p.addKeycodes=function(N){for(var m in N)if(N.hasOwnProperty(m))U[m]=N[m];M=null},p.init=function(){var N=p(V);for(var m in N)if(m.charAt(0)!=="_")p[m]=function(z0){return function(){return N[z0].apply(N,arguments)}}(m)},p.init(),K.Mousetrap=p,typeof M6<"u"&&M6.exports)M6.exports=p;if(typeof define==="function"&&define.amd)define(function(){return p})})(typeof window<"u"?window:null,typeof window<"u"?document:null)});var DF={};IU(DF,{waitUntilLoad:()=>UF,loadMedia:()=>oH,domToWebp:()=>Bj,domToSvg:()=>FF,domToPng:()=>Ej,domToPixel:()=>Tj,domToJpeg:()=>Gj,domToImage:()=>Ij,domToForeignObjectSvg:()=>$F,domToDataUrl:()=>mH,domToCanvas:()=>S6,domToBlob:()=>Cj,destroyContext:()=>MF,createContext:()=>LF});function l7(K,V){return K[13]=1,K[14]=V>>8,K[15]=V&255,K[16]=V>>8,K[17]=V&255,K}function Ww(){let K=new Int32Array(256);for(let V=0;V<256;V++){let Q=V;for(let U=0;U<8;U++)Q=Q&1?3988292384^Q>>>1:Q>>>1;K[V]=Q}return K}function Xw(K){let V=-1;if(!UM)UM=Ww();for(let Q=0;Q>>8;return V^-1}function Aw(K){let V=K.length-1;for(let Q=V;Q>=4;Q--)if(K[Q-4]===9&&K[Q-3]===d7&&K[Q-2]===s7&&K[Q-1]===o7&&K[Q]===m7)return Q-3;return 0}function n7(K,V,Q=!1){let U=new Uint8Array(13);V*=39.3701,U[0]=d7,U[1]=s7,U[2]=o7,U[3]=m7,U[4]=V>>>24,U[5]=V>>>16,U[6]=V>>>8,U[7]=V&255,U[8]=U[4],U[9]=U[5],U[10]=U[6],U[11]=U[7],U[12]=1;let H=Xw(U),Y=new Uint8Array(4);if(Y[0]=H>>>24,Y[1]=H>>>16,Y[2]=H>>>8,Y[3]=H&255,Q){let z=Aw(K);return K.set(U,z),K.set(Y,z+13),K}else{let z=new Uint8Array(4);z[0]=0,z[1]=0,z[2]=0,z[3]=9;let M=new Uint8Array(54);return M.set(K,0),M.set(z,33),M.set(U,37),M.set(Y,50),M}}function Dw(K){let V=K.indexOf(Rw);if(V===-1)V=K.indexOf($w);if(V===-1)V=K.indexOf(Fw);return V}function yw(K){let V=K?.createElement?.("canvas");if(V)V.height=V.width=1;return Boolean(V)&&"toDataURL"in V&&Boolean(V.toDataURL("image/webp").includes("image/webp"))}function e7(K,V){if(K.match(/^[a-z]+:\/\//i))return K;if(WU&&K.match(/^\/\//))return window.location.protocol+K;if(K.match(/^[a-z]+:/i))return K;if(!WU)return K;let Q=F6().implementation.createHTMLDocument(),U=Q.createElement("base"),H=Q.createElement("a");if(Q.head.appendChild(U),Q.body.appendChild(H),V)U.href=V;return H.href=K,H.href}function F6(K){return(K&&SQ(K)?K?.ownerDocument:K)??window.document}function KF(K,V,Q){let U=F6(Q).createElementNS(D6,"svg");return U.setAttributeNS(null,"width",K.toString()),U.setAttributeNS(null,"height",V.toString()),U.setAttributeNS(null,"viewBox",`0 0 ${K} ${V}`),U}function VF(K,V){let Q=new XMLSerializer().serializeToString(K);if(V)Q=Q.replace(/[\u0000-\u0008\v\f\u000E-\u001F\uD800-\uDFFF\uFFFE\uFFFF]/gu,"");return`data:image/svg+xml;charset=utf-8,${encodeURIComponent(Q)}`}async function hw(K,V="image/png",Q=1){try{return await new Promise((U,H)=>{K.toBlob((Y)=>{if(Y)U(Y);else H(Error("Blob is null"))},V,Q)})}catch(U){if(i7)return pw(K.toDataURL(V,Q));throw U}}function pw(K){let[V,Q]=K.split(","),U=V.match(/data:(.+);/)?.[1]??void 0,H=window.atob(Q),Y=H.length,z=new Uint8Array(Y);for(let M=0;M{let H=new FileReader;if(H.onload=()=>Q(H.result),H.onerror=()=>U(H.error),H.onabort=()=>U(Error(`Failed read blob to ${V}`)),V==="dataUrl")H.readAsDataURL(K);else if(V==="arrayBuffer")H.readAsArrayBuffer(K)})}function aU(K,V){let Q=F6(V).createElement("img");return Q.decoding="sync",Q.loading="eager",Q.src=K,Q}function oH(K,V){return new Promise((Q)=>{let{timeout:U,ownerDocument:H,onError:Y,onWarn:z}=V??{},M=typeof K==="string"?aU(K,F6(H)):K,A=null,R=null;function D(){Q(M),A&&clearTimeout(A),R?.()}if(U)A=setTimeout(D,U);if($6(M)){let F=M.currentSrc||M.src;if(!F){if(M.poster)return oH(M.poster,V).then(Q);return D()}if(M.readyState>=2)return D();let P=D,G=(T)=>{z?.("Failed video load",F,T),Y?.(T),D()};R=()=>{M.removeEventListener("loadeddata",P),M.removeEventListener("error",G)},M.addEventListener("loadeddata",P,{once:!0}),M.addEventListener("error",G,{once:!0})}else{let F=a7(M)?M.href.baseVal:M.currentSrc||M.src;if(!F)return D();let P=async()=>{if(sH(M)&&"decode"in M)try{await M.decode()}catch(T){z?.("Failed to decode image, trying to render anyway",M.dataset.originalSrc||F,T)}D()},G=(T)=>{z?.("Failed image load",M.dataset.originalSrc||F,T),D()};if(sH(M)&&M.complete)return P();R=()=>{M.removeEventListener("load",P),M.removeEventListener("error",G)},M.addEventListener("load",P,{once:!0}),M.addEventListener("error",G,{once:!0})}})}async function UF(K,V){if(Xz(K))if(sH(K)||$6(K))await oH(K,V);else await Promise.all(["img","video"].flatMap((Q)=>{return Array.from(K.querySelectorAll(Q)).map((U)=>oH(U,V))}))}function zF(K){return K?.split(",").map((V)=>V.trim().replace(/"|'/g,"").toLowerCase()).filter(Boolean)}function bw(K){let V=`${r7}[#${y7}]`;return y7++,{time:(Q)=>K&&console.time(`${V} ${Q}`),timeEnd:(Q)=>K&&console.timeEnd(`${V} ${Q}`),warn:(...Q)=>K&&gw(...Q)}}function lw(K){return{cache:K?"no-cache":"force-cache"}}async function PQ(K,V){return Cw(K)?K:LF(K,{...V,autoDestruct:!0})}async function LF(K,V){let{scale:Q=1,workerUrl:U,workerNumber:H=1}=V||{},Y=Boolean(V?.debug),z=V?.features??!0,M=K.ownerDocument??(WU?window.document:void 0),A=K.ownerDocument?.defaultView??(WU?window:void 0),R=new Map,D={width:0,height:0,quality:1,type:"image/png",scale:Q,backgroundColor:null,style:null,filter:null,maximumCanvasSize:0,timeout:30000,progress:null,debug:Y,fetch:{requestInit:lw(V?.fetch?.bypassingCache),placeholderImage:"data:image/png;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7",bypassingCache:!1,...V?.fetch},fetchFn:null,font:{},drawImageInterval:100,workerUrl:null,workerNumber:H,onCloneEachNode:null,onCloneNode:null,onEmbedNode:null,onCreateForeignObjectSvg:null,includeStyleProperties:null,autoDestruct:!1,...V,__CONTEXT__:!0,log:bw(Y),node:K,ownerDocument:M,ownerWindow:A,dpi:Q===1?null:96*Q,svgStyleElement:ZF(M),svgDefsElement:M?.createElementNS(D6,"defs"),svgStyles:new Map,defaultComputedStyles:new Map,workers:[...Array.from({length:Sw&&U&&H?H:0})].map(()=>{try{let G=new Worker(U);return G.onmessage=async(T)=>{let{url:v,result:J}=T.data;if(J)R.get(v)?.resolve?.(J);else R.get(v)?.reject?.(Error(`Error receiving message from worker: ${v}`))},G.onmessageerror=(T)=>{let{url:v}=T.data;R.get(v)?.reject?.(Error(`Error receiving message from worker: ${v}`))},G}catch(G){return D.log.warn("Failed to new Worker",G),null}}).filter(Boolean),fontFamilies:new Map,fontCssTexts:new Map,acceptOfImage:`${[yw(M)&&"image/webp","image/svg+xml","image/*","*/*"].filter(Boolean).join(",")};q=0.8`,requests:R,drawImageCount:0,tasks:[],features:z,isEnable:(G)=>{if(G==="restoreScrollPosition")return typeof z==="boolean"?!1:z[G]??!1;if(typeof z==="boolean")return z;return z[G]??!0},shadowRoots:[]};D.log.time("wait until load"),await UF(K,{timeout:D.timeout,onWarn:D.log.warn}),D.log.timeEnd("wait until load");let{width:F,height:P}=dw(K,D);return D.width=F,D.height=P,D}function ZF(K){if(!K)return;let V=K.createElement("style"),Q=V.ownerDocument.createTextNode(` +.______background-clip--text { + background-clip: text; + -webkit-background-clip: text; +} +`);return V.appendChild(Q),V}function dw(K,V){let{width:Q,height:U}=V;if(SQ(K)&&(!Q||!U)){let H=K.getBoundingClientRect();Q=Q||H.width||Number(K.getAttribute("width"))||0,U=U||H.height||Number(K.getAttribute("height"))||0}return{width:Q,height:U}}async function sw(K,V){let{log:Q,timeout:U,drawImageCount:H,drawImageInterval:Y}=V;Q.time("image to canvas");let z=await oH(K,{timeout:U,onWarn:V.log.warn}),{canvas:M,context2d:A}=ow(K.ownerDocument,V),R=()=>{try{A?.drawImage(z,0,0,M.width,M.height)}catch(D){V.log.warn("Failed to drawImage",D)}};if(R(),V.isEnable("fixSvgXmlDecode"))for(let D=0;D{setTimeout(()=>{A?.clearRect(0,0,M.width,M.height),R(),F()},D+Y)});return V.drawImageCount=0,Q.timeEnd("image to canvas"),M}function ow(K,V){let{width:Q,height:U,scale:H,backgroundColor:Y,maximumCanvasSize:z}=V,M=K.createElement("canvas");if(M.width=Math.floor(Q*H),M.height=Math.floor(U*H),M.style.width=`${Q}px`,M.style.height=`${U}px`,z){if(M.width>z||M.height>z)if(M.width>z&&M.height>z)if(M.width>M.height)M.height*=z/M.width,M.width=z;else M.width*=z/M.height,M.height=z;else if(M.width>z)M.height*=z/M.width,M.width=z;else M.width*=z/M.height,M.height=z}let A=M.getContext("2d");if(A&&Y)A.fillStyle=Y,A.fillRect(0,0,M.width,M.height);return{canvas:M,context2d:A}}function YF(K,V){if(K.ownerDocument)try{let Y=K.toDataURL();if(Y!=="data:,")return aU(Y,K.ownerDocument)}catch(Y){V.log.warn("Failed to clone canvas",Y)}let Q=K.cloneNode(!1),U=K.getContext("2d"),H=Q.getContext("2d");try{if(U&&H)H.putImageData(U.getImageData(0,0,K.width,K.height),0,0);return Q}catch(Y){V.log.warn("Failed to clone canvas",Y)}return Q}function mw(K,V){try{if(K?.contentDocument?.body)return YM(K.contentDocument.body,V)}catch(Q){V.log.warn("Failed to clone iframe",Q)}return K.cloneNode(!1)}function nw(K){let V=K.cloneNode(!1);if(K.currentSrc&&K.currentSrc!==K.src)V.src=K.currentSrc,V.srcset="";if(V.loading==="lazy")V.loading="eager";return V}async function rw(K,V){if(K.ownerDocument&&!K.currentSrc&&K.poster)return aU(K.poster,K.ownerDocument);let Q=K.cloneNode(!1);if(Q.crossOrigin="anonymous",K.currentSrc&&K.currentSrc!==K.src)Q.src=K.currentSrc;let U=Q.ownerDocument;if(U){let H=!0;if(await oH(Q,{onError:()=>H=!1,onWarn:V.log.warn}),!H){if(K.poster)return aU(K.poster,K.ownerDocument);return Q}Q.currentTime=K.currentTime,await new Promise((z)=>{Q.addEventListener("seeked",z,{once:!0})});let Y=U.createElement("canvas");Y.width=K.offsetWidth,Y.height=K.offsetHeight;try{let z=Y.getContext("2d");if(z)z.drawImage(Q,0,0,Y.width,Y.height)}catch(z){if(V.log.warn("Failed to clone video",z),K.poster)return aU(K.poster,K.ownerDocument);return Q}return YF(Y,V)}return Q}function iw(K,V){if(vw(K))return YF(K,V);if(Nw(K))return mw(K,V);if(sH(K))return nw(K);if($6(K))return rw(K,V);return K.cloneNode(!1)}function tw(K){let V=K.sandbox;if(!V){let{ownerDocument:Q}=K;try{if(Q)V=Q.createElement("iframe"),V.id=`__SANDBOX__${HF()}`,V.width="0",V.height="0",V.style.visibility="hidden",V.style.position="fixed",Q.body.appendChild(V),V.srcdoc='',K.sandbox=V}catch(U){K.log.warn("Failed to getSandBox",U)}}return V}function qF(K,V,Q){let{defaultComputedStyles:U}=Q,H=K.nodeName.toLowerCase(),Y=Rz(K)&&H!=="svg",z=Y?ew.map((v)=>[v,K.getAttribute(v)]).filter(([,v])=>v!==null):[],M=[Y&&"svg",H,z.map((v,J)=>`${v}=${J}`).join(","),V].filter(Boolean).join(":");if(U.has(M))return U.get(M);let R=tw(Q)?.contentWindow;if(!R)return new Map;let D=R?.document,F,P;if(Y)F=D.createElementNS(D6,"svg"),P=F.ownerDocument.createElementNS(F.namespaceURI,H),z.forEach(([v,J])=>{P.setAttributeNS(null,v,J)}),F.appendChild(P);else F=P=D.createElement(H);P.textContent=" ",D.body.appendChild(F);let G=R.getComputedStyle(P,V),T=new Map;for(let v=G.length,J=0;JU.set(D,R));function z(M){let A=K.getPropertyValue(M),R=K.getPropertyPriority(M),D=M.lastIndexOf("-"),F=D>-1?M.substring(0,D):void 0;if(F){let P=Y.get(F);if(!P)P=new Map,Y.set(F,P);P.set(M,[A,R])}if(V.get(M)===A&&!R)return;if(F)H.push(F);else U.set(M,[A,R])}return U}function Kj(K,V,Q,U){let{ownerWindow:H,includeStyleProperties:Y,currentParentNodeStyle:z}=U,M=V.style,A=H.getComputedStyle(K),R=qF(K,null,U);z?.forEach((F,P)=>{R.delete(P)});let D=OF(A,R,Y);if(D.delete("transition-property"),D.delete("all"),D.delete("d"),D.delete("content"),Q)D.delete("margin-top"),D.delete("margin-right"),D.delete("margin-bottom"),D.delete("margin-left"),D.delete("margin-block-start"),D.delete("margin-block-end"),D.delete("margin-inline-start"),D.delete("margin-inline-end"),D.set("box-sizing",["border-box",""]);if(D.get("background-clip")?.[0]==="text")V.classList.add("______background-clip--text");if(t7){if(!D.has("font-kerning"))D.set("font-kerning",["normal",""]);if((D.get("overflow-x")?.[0]==="hidden"||D.get("overflow-y")?.[0]==="hidden")&&D.get("text-overflow")?.[0]==="ellipsis"&&K.scrollWidth===K.clientWidth)D.set("text-overflow",["clip",""])}for(let F=M.length,P=0;P{M.setProperty(G,F,P)}),D}function Vj(K,V){if(kw(K)||fw(K)||xw(K))V.setAttribute("value",K.value)}function Hj(K,V,Q,U,H){let{ownerWindow:Y,svgStyleElement:z,svgStyles:M,currentNodeStyle:A}=U;if(!z||!Y)return;function R(D){let F=Y.getComputedStyle(K,D),P=F.getPropertyValue("content");if(!P||P==="none")return;H?.(P),P=P.replace(/(')|(")|(counter\(.+\))/g,"");let G=[HF()],T=qF(K,D,U);A?.forEach((j,_)=>{T.delete(_)});let v=OF(F,T,U.includeStyleProperties);if(v.delete("content"),v.delete("-webkit-locale"),v.get("background-clip")?.[0]==="text")V.classList.add("______background-clip--text");let J=[`content: '${P}';`];if(v.forEach(([j,_],p)=>{J.push(`${p}: ${j}${_?" !important":""};`)}),J.length===1)return;try{V.className=[V.className,...G].join(" ")}catch(j){U.log.warn("Failed to copyPseudoClass",j);return}let k=J.join(` + `),f=M.get(k);if(!f)f=[],M.set(k,f);f.push(`.${G[0]}${D}`)}if(Qj.forEach(R),Q)Uj.forEach(R)}async function p7(K,V,Q,U,H){if(SQ(Q)&&(ww(Q)||jw(Q)))return;if(U.filter&&!U.filter(Q))return;if(h7.has(V.nodeName)||h7.has(Q.nodeName))U.currentParentNodeStyle=void 0;else U.currentParentNodeStyle=U.currentNodeStyle;let Y=await YM(Q,U,!1,H);if(U.isEnable("restoreScrollPosition"))zj(K,Y);V.appendChild(Y)}async function c7(K,V,Q,U){let H=K.firstChild;if(SQ(K)){if(K.shadowRoot)H=K.shadowRoot?.firstChild,Q.shadowRoots.push(K.shadowRoot)}for(let Y=H;Y;Y=Y.nextSibling){if(Bw(Y))continue;if(SQ(Y)&&_w(Y)&&typeof Y.assignedNodes==="function"){let z=Y.assignedNodes();for(let M=0;MK.clientHeight||K.scrollWidth>K.clientWidth)}let P=D.get("text-transform")?.[0],G=zF(D.get("font-family")?.[0]),T=G?(v)=>{if(P==="uppercase")v=v.toUpperCase();else if(P==="lowercase")v=v.toLowerCase();else if(P==="capitalize")v=v[0].toUpperCase()+v.substring(1);G.forEach((J)=>{let k=z.get(J);if(!k)z.set(J,k=new Set);v.split("").forEach((f)=>k.add(f))})}:void 0;if(Hj(K,R,F,V,T),Vj(K,R),!$6(K))await c7(K,R,V,T);return await M?.(R),R}let A=K.cloneNode(!1);return await c7(K,A,V),await M?.(A),A}function MF(K){if(K.ownerDocument=void 0,K.ownerWindow=void 0,K.svgStyleElement=void 0,K.svgDefsElement=void 0,K.svgStyles.clear(),K.defaultComputedStyles.clear(),K.sandbox){try{K.sandbox.remove()}catch(V){K.log.warn("Failed to destroyContext",V)}K.sandbox=void 0}K.workers=[],K.fontFamilies.clear(),K.fontCssTexts.clear(),K.requests.clear(),K.tasks=[],K.shadowRoots=[]}function Yj(K){let{url:V,timeout:Q,responseType:U,...H}=K,Y=new AbortController,z=Q?setTimeout(()=>Y.abort(),Q):void 0;return fetch(V,{signal:Y.signal,...H}).then((M)=>{if(!M.ok)throw Error("Failed fetch, not 2xx response",{cause:M});switch(U){case"arrayBuffer":return M.arrayBuffer();case"dataUrl":return M.blob().then(cw);case"text":default:return M.text()}}).finally(()=>clearTimeout(z))}function Az(K,V){let{url:Q,requestType:U="text",responseType:H="text",imageDom:Y}=V,z=Q,{timeout:M,acceptOfImage:A,requests:R,fetchFn:D,fetch:{requestInit:F,bypassingCache:P,placeholderImage:G},font:T,workers:v,fontFamilies:J}=K;if(U==="image"&&(R6||ZM))K.drawImageCount++;let k=R.get(Q);if(!k){if(P){if(P instanceof RegExp&&P.test(z))z+=(/\?/.test(z)?"&":"?")+new Date().getTime()}let f=U.startsWith("font")&&T&&T.minify,j=new Set;if(f)U.split(";")[1].split(",").forEach((m)=>{if(!J.has(m))return;J.get(m).forEach((z0)=>j.add(z0))});let _=f&&j.size,p={url:z,timeout:M,responseType:_?"arrayBuffer":H,headers:U==="image"?{accept:A}:void 0,...F};k={type:U,resolve:void 0,reject:void 0,response:null},k.response=(async()=>{if(D&&U==="image"){let N=await D(Q);if(N)return N}if(!R6&&Q.startsWith("http")&&v.length)return new Promise((N,m)=>{v[R.size&v.length-1].postMessage({rawUrl:Q,...p}),k.resolve=N,k.reject=m});return Yj(p)})().catch((N)=>{if(R.delete(Q),U==="image"&&G)return K.log.warn("Failed to fetch image base64, trying to use placeholder image",z),typeof G==="string"?G:G(Y);throw N}),R.set(Q,k)}return k.response}async function WF(K,V,Q,U){if(!XF(K))return K;for(let[H,Y]of qj(K,V))try{let z=await Az(Q,{url:Y,requestType:U?"image":"text",responseType:"dataUrl"});K=K.replace(Oj(H),`$1${z}$3`)}catch(z){Q.log.warn("Failed to fetch css data url",H,z)}return K}function XF(K){return/url\((['"]?)([^'"]+?)\1\)/.test(K)}function qj(K,V){let Q=[];return K.replace(AF,(U,H,Y)=>{return Q.push([Y,e7(Y,V)]),U}),Q.filter(([U])=>!HM(U))}function Oj(K){let V=K.replace(/([.*+?^${}()|\[\]\/\\])/g,"\\$1");return new RegExp(`(url\\(['"]?)(${V})(['"]?\\))`,"g")}function Wj(K,V){return Mj.map((Q)=>{let U=K.getPropertyValue(Q);if(!U||U==="none")return null;if(R6||ZM)V.drawImageCount++;return WF(U,null,V,!0).then((H)=>{if(!H||U===H)return;K.setProperty(Q,H,K.getPropertyPriority(Q))})}).filter(Boolean)}function Xj(K,V){if(sH(K)){let Q=K.currentSrc||K.src;if(!HM(Q))return[Az(V,{url:Q,imageDom:K,requestType:"image",responseType:"dataUrl"}).then((U)=>{if(!U)return;K.srcset="",K.dataset.originalSrc=Q,K.src=U||""})];if(R6||ZM)V.drawImageCount++}else if(Rz(K)&&!HM(K.href.baseVal)){let Q=K.href.baseVal;return[Az(V,{url:Q,imageDom:K,requestType:"image",responseType:"dataUrl"}).then((U)=>{if(!U)return;K.dataset.originalSrc=Q,K.href.baseVal=U||""})]}return[]}function Aj(K,V){let{ownerDocument:Q,svgDefsElement:U}=V,H=K.getAttribute("href")??K.getAttribute("xlink:href");if(!H)return[];let[Y,z]=H.split("#");if(z){let M=`#${z}`,A=V.shadowRoots.reduce((R,D)=>{return R??D.querySelector(`svg ${M}`)},Q?.querySelector(`svg ${M}`));if(Y)K.setAttribute("href",M);if(U?.querySelector(M))return[];if(A)return U?.appendChild(A.cloneNode(!0)),[];else if(Y)return[Az(V,{url:Y,responseType:"text"}).then((R)=>{U?.insertAdjacentHTML("beforeend",R)})]}return[]}function RF(K,V){let{tasks:Q}=V;if(SQ(K)){if(sH(K)||a7(K))Q.push(...Xj(K,V));if(Ew(K))Q.push(...Aj(K,V))}if(Xz(K))Q.push(...Wj(K.style,V));K.childNodes.forEach((U)=>{RF(U,V)})}async function Rj(K,V){let{ownerDocument:Q,svgStyleElement:U,fontFamilies:H,fontCssTexts:Y,tasks:z,font:M}=V;if(!Q||!U||!H.size)return;if(M&&M.cssText){let A=b7(M.cssText,V);U.appendChild(Q.createTextNode(`${A} +`))}else{let A=Array.from(Q.styleSheets).filter((D)=>{try{return"cssRules"in D&&Boolean(D.cssRules.length)}catch(F){return V.log.warn(`Error while reading CSS rules from ${D.href}`,F),!1}});await Promise.all(A.flatMap((D)=>{return Array.from(D.cssRules).map(async(F,P)=>{if(Gw(F)){let G=P+1,T=F.href,v="";try{v=await Az(V,{url:T,requestType:"text",responseType:"text"})}catch(k){V.log.warn(`Error fetch remote css import from ${T}`,k)}let J=v.replace(AF,(k,f,j)=>k.replace(j,e7(j,T)));for(let k of Fj(J))try{D.insertRule(k,k.startsWith("@import")?G+=1:D.cssRules.length)}catch(f){V.log.warn("Error inserting rule from remote css import",{rule:k,error:f})}}})}));let R=[];A.forEach((D)=>{zM(D.cssRules,R)}),R.filter((D)=>Iw(D)&&XF(D.style.getPropertyValue("src"))&&zF(D.style.getPropertyValue("font-family"))?.some((F)=>H.has(F))).forEach((D)=>{let F=D,P=Y.get(F.cssText);if(P)U.appendChild(Q.createTextNode(`${P} +`));else z.push(WF(F.cssText,F.parentStyleSheet?F.parentStyleSheet.href:null,V).then((G)=>{G=b7(G,V),Y.set(F.cssText,G),U.appendChild(Q.createTextNode(`${G} +`))}))})}}function Fj(K){if(K==null)return[];let V=[],Q=K.replace($j,"");while(!0){let Y=u7.exec(Q);if(!Y)break;V.push(Y[0])}Q=Q.replace(u7,"");let U=/@import[\s\S]*?url\([^)]*\)[\s\S]*?;/gi,H=new RegExp("((\\s*?(?:\\/\\*[\\s\\S]*?\\*\\/)?\\s*?@media[\\s\\S]*?){([\\s\\S]*?)}\\s*?})|(([\\s\\S]*?){([\\s\\S]*?)})","gi");while(!0){let Y=U.exec(Q);if(!Y)if(Y=H.exec(Q),!Y)break;else U.lastIndex=H.lastIndex;else H.lastIndex=U.lastIndex;V.push(Y[0])}return V}function b7(K,V){let{font:Q}=V,U=Q?Q?.preferredFormat:void 0;return U?K.replace(Sj,(H)=>{while(!0){let[Y,,z]=Dj.exec(H)||[];if(!z)return"";if(z===U)return`src: ${Y};`}}):K}function zM(K,V=[]){for(let Q of Array.from(K))if(Tw(Q))V.push(...zM(Q.cssRules));else if("cssRules"in Q)zM(Q.cssRules,V);else V.push(Q);return V}async function $F(K,V){let Q=await PQ(K,V);if(SQ(Q.node)&&Rz(Q.node))return Q.node;let{ownerDocument:U,log:H,tasks:Y,svgStyleElement:z,svgDefsElement:M,svgStyles:A,font:R,progress:D,autoDestruct:F,onCloneNode:P,onEmbedNode:G,onCreateForeignObjectSvg:T}=Q;H.time("clone node");let v=await YM(Q.node,Q,!0);if(z&&U){let _="";A.forEach((p,N)=>{_+=`${p.join(`, +`)} { + ${N} +} +`}),z.appendChild(U.createTextNode(_))}if(H.timeEnd("clone node"),await P?.(v),R!==!1&&SQ(v))H.time("embed web font"),await Rj(v,Q),H.timeEnd("embed web font");H.time("embed node"),RF(v,Q);let J=Y.length,k=0,f=async()=>{while(!0){let _=Y.pop();if(!_)break;try{await _}catch(p){Q.log.warn("Failed to run task",p)}D?.(++k,J)}};D?.(k,J),await Promise.all([...Array.from({length:4})].map(f)),H.timeEnd("embed node"),await G?.(v);let j=Pj(v,Q);return M&&j.insertBefore(M,j.children[0]),z&&j.insertBefore(z,j.children[0]),F&&MF(Q),await T?.(j),j}function Pj(K,V){let{width:Q,height:U}=V,H=KF(Q,U,K.ownerDocument),Y=H.ownerDocument.createElementNS(H.namespaceURI,"foreignObject");return Y.setAttributeNS(null,"x","0%"),Y.setAttributeNS(null,"y","0%"),Y.setAttributeNS(null,"width","100%"),Y.setAttributeNS(null,"height","100%"),Y.append(K),H.appendChild(Y),H}async function S6(K,V){let Q=await PQ(K,V),U=await $F(Q),H=VF(U,Q.isEnable("removeControlCharacter"));if(!Q.autoDestruct)Q.svgStyleElement=ZF(Q.ownerDocument),Q.svgDefsElement=Q.ownerDocument?.createElementNS(D6,"defs"),Q.svgStyles.clear();let Y=aU(H,U.ownerDocument);return await sw(Y,Q)}async function Cj(K,V){let Q=await PQ(K,V),{log:U,type:H,quality:Y,dpi:z}=Q,M=await S6(Q);U.time("canvas to blob");let A=await hw(M,H,Y);if(["image/png","image/jpeg"].includes(H)&&z){let R=await uw(A.slice(0,33)),D=new Uint8Array(R);if(H==="image/png")D=n7(D,z);else if(H==="image/jpeg")D=l7(D,z);return U.timeEnd("canvas to blob"),new Blob([D,A.slice(33)],{type:H})}return U.timeEnd("canvas to blob"),A}async function mH(K,V){let Q=await PQ(K,V),{log:U,quality:H,type:Y,dpi:z}=Q,M=await S6(Q);U.time("canvas to data url");let A=M.toDataURL(Y,H);if(["image/png","image/jpeg"].includes(Y)&&z&&i7&&Pw){let[R,D]=A.split(","),F=0,P=!1;if(Y==="image/png"){let j=Dw(D);if(j>=0)F=Math.ceil((j+28)/3)*4,P=!0;else F=44}else if(Y==="image/jpeg")F=24;let G=D.substring(0,F),T=D.substring(F),v=window.atob(G),J=new Uint8Array(v.length);for(let j=0;jK&&("__CONTEXT__"in K),Iw=(K)=>K.constructor.name==="CSSFontFaceRule",Gw=(K)=>K.constructor.name==="CSSImportRule",Tw=(K)=>K.constructor.name==="CSSLayerBlockRule",SQ=(K)=>K.nodeType===1,Rz=(K)=>typeof K.className==="object",a7=(K)=>K.tagName==="image",Ew=(K)=>K.tagName==="use",Xz=(K)=>SQ(K)&&typeof K.style<"u"&&!Rz(K),Bw=(K)=>K.nodeType===8,Jw=(K)=>K.nodeType===3,sH=(K)=>K.tagName==="IMG",$6=(K)=>K.tagName==="VIDEO",vw=(K)=>K.tagName==="CANVAS",kw=(K)=>K.tagName==="TEXTAREA",fw=(K)=>K.tagName==="INPUT",ww=(K)=>K.tagName==="STYLE",jw=(K)=>K.tagName==="SCRIPT",xw=(K)=>K.tagName==="SELECT",_w=(K)=>K.tagName==="SLOT",Nw=(K)=>K.tagName==="IFRAME",gw=(...K)=>console.warn(r7,...K),HM=(K)=>K.startsWith("data:"),D6="http://www.w3.org/2000/svg",cw=(K)=>QF(K,"dataUrl"),uw=(K)=>QF(K,"arrayBuffer"),HF,y7=0,aw,ew,Qj,Uj,h7,Zj,AF,Mj,$j,u7,Dj,Sj;var SF=L8(()=>{WU=typeof window<"u",Sw=WU&&"Worker"in window,i7=WU&&"atob"in window,Pw=WU&&"btoa"in window,LM=WU?window.navigator?.userAgent:"",t7=LM.includes("Chrome"),R6=LM.includes("AppleWebKit")&&!t7,ZM=LM.includes("Firefox");HF=function(){let V=0,Q=()=>`0000${(Math.random()*1679616<<0).toString(36)}`.slice(-4);return()=>{return V+=1,`u${Q()}${V}`}}();aw=["width","height","-webkit-text-fill-color"],ew=["stroke","fill"];Qj=["::before","::after"],Uj=["::-webkit-scrollbar","::-webkit-scrollbar-button","::-webkit-scrollbar-thumb","::-webkit-scrollbar-track","::-webkit-scrollbar-track-piece","::-webkit-scrollbar-corner","::-webkit-resizer"];h7=new Set(["symbol"]);Zj=/^[\w-:]+$/;AF=/url\((['"]?)([^'"]+?)\1\)/g;Mj=["background-image","border-image-source","-webkit-border-image","-webkit-mask-image","list-style-image"];$j=/(\/\*[\s\S]*?\*\/)/g,u7=/((@.*?keyframes [\s\S]*?){([\s\S]*?}\s*?)})/gi;Dj=/url\([^)]+\)\s*format\((["']?)([^"']+)\1\)/g,Sj=/src:\s*(?:url\([^)]+\)\s*format\([^)]+\)[,;]\s*)+/g});/*! + * Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com + * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) + * Copyright 2025 Fonticons, Inc. + */(function(){var K={},V={};try{if(typeof window<"u")K=window;if(typeof document<"u")V=document}catch(q0){}var Q=K.navigator||{},U=Q.userAgent,H=U===void 0?"":U,Y=K,z=V,M=!!Y.document,A=!!z.documentElement&&!!z.head&&typeof z.addEventListener==="function"&&typeof z.createElement==="function",R=~H.indexOf("MSIE")||~H.indexOf("Trident/");function D(q0,I0){(I0==null||I0>q0.length)&&(I0=q0.length);for(var j0=0,n0=Array(I0);j01?I0-1:0),n0=1;n02&&arguments[2]!==void 0?arguments[2]:{},n0=j0.skipHooks,UK=n0===void 0?!1:n0,uQ=HQ(I0);if(typeof sK.hooks.addPack==="function"&&!UK)sK.hooks.addPack(q0,HQ(I0));else sK.styles[q0]=J(J({},sK.styles[q0]||{}),uQ);if(q0==="fas")JV("fa",I0)}var zQ={"square-github":[448,512,["github-square"],"f092","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM265.8 407.7c0-1.8 0-6 .1-11.6 .1-11.4 .1-28.8 .1-43.7 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-26.6-7.5-56.6-7.5-83.2 0 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 9 .1 21.7 .1 30.6 0 4.8 .1 8.6 .1 10 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3-8.4 1.5-11.5-3.7-11.5-8zm-90.5-54.8c-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7 .6 3.9 1.9 .3 1.3-1 2.6-3 3-1.9 .4-3.7-.4-3.9-1.7zm-9.1 3.2c-2.2 .2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7 .9 3.7 2.4 0 1.3-1.5 2.4-3.5 2.4zm-14.3-2.2c-1.9-.4-3.2-1.9-2.8-3.2s2.4-1.9 4.1-1.5c2 .6 3.3 2.1 2.8 3.4-.4 1.3-2.4 1.9-4.1 1.3zm-12.5-7.3c-1.5-1.3-1.9-3.2-.9-4.1 .9-1.1 2.8-.9 4.3 .6 1.3 1.3 1.8 3.3 .9 4.1-.9 1.1-2.8 .9-4.3-.6zm-8.5-10c-1.1-1.5-1.1-3.2 0-3.9 1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1-.9 .6-2.6 0-3.7-1.5zm-6.3-8.8c-1.1-1.3-1.3-2.8-.4-3.5 .9-.9 2.4-.4 3.5 .6 1.1 1.3 1.3 2.8 .4 3.5-.9 .9-2.4 .4-3.5-.6zm-6-6.4c-1.3-.6-1.9-1.7-1.5-2.6 .4-.6 1.5-.9 2.8-.4 1.3 .7 1.9 1.8 1.5 2.6-.4 .9-1.7 1.1-2.8 .4z"],"think-peaks":[576,512,[],"f731","M465.4 409.4l87.1-150.2-32-.3-55.1 95-206.2-353.9-236.2 407.4 32 .3 204.2-352.1 206.2 353.8zM110.1 365.3l32.1 0 117.4-202.5 203.4 349.1 32.5 .1-235.8-404.6-149.6 257.9z"],"google-drive":[512,512,[],"f3aa","M339 314.9L175.4 32 336.6 32 500.2 314.9 339 314.9zM201.5 338.5l-80.6 141.5 310.5 0 80.6-141.5-310.5 0zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z"],autoprefixer:[640,512,[],"f41c","M318.4 16l-161 480 77.5 0 25.4-81.4 119.5 0 25.2 81.4 77.5 0-164.1-480zM278.1 357.9l41.2-130.4 1.5 0 40.9 130.4-83.6 0zM640 405L630 373.6 462.1 358 481.5 414.5 640 405zM177.9 358L10 373.7 0 405 158.5 414.4 177.9 358z"],"square-viadeo":[448,512,["viadeo-square"],"f2aa","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM118.3 381.2c-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1l0 .4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4 .2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6-42.4 46.2-120 46.6-162.4 0zM274.6 217.6c21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 8.3-7.9 18-10.9 27.9-14.1 16-5.1 32.5-10.3 44.5-35.9 32.5 46.2 13.1 130.3-36.3 130.3-13.3 0-25.1-7.1-34.4-16.1z"],cpanel:[640,512,[],"f388","M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2l-37 0c-7.1 0-12.5 4.5-14.3 10.9L73.1 320 97.8 319.9c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7 19.8 0c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6l-10.3 0c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8 32 0c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28l18.6 0c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6-40 0C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320l12.4 0 7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3l-11.3 0c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8l-77.9 0-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5l57.5 0c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3l-34.9 0c-5.3 0-5.3-7.9 0-7.9l21.6 0c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2-48.4 0c-39.2 0-43.6 63.8-.7 63.8l57.5 .2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179l-18.9 0c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zM396.8 213.7l0 .1-48.3 0-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3l18.9 0c4.8 0 9.2-3 10.4-7.8l17.2-64 19.8 0c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3l19.1 0c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6l32.9 0c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3l-21.6 0c-7 0-12.6 4.6-14.2 10.8l-3.5 13 53.4 0c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8l-47.3 0c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7l66.7 0c6.8 0 12.3-4.5 14.2-10.7l5.7-21-73.3 0z"],mendeley:[640,512,[],"f7b3","M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4 .7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1 .1-.2 .2-.3 .4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zM320.7 306.1l-.6 0c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8l.6 0c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z"],draft2digital:[512,512,[],"f396","M496 398.1l-144-82.2 0 64.7-91.3 0c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6-76.6 87-142.8 155.7-161.1 174.8l336-.1 0 64.2 144-81.9zM385.9 371l47.1 27.2-47.1 27.2 0-54.4zM105.4 161.4a22.4 22.4 0 1 1 44.8 0 22.4 22.4 0 1 1 -44.8 0zM98.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7l-114.4 0z"],replyd:[448,512,[],"f3e6","M320 480l-192 0C57.6 480 0 422.4 0 352L0 160C0 89.6 57.6 32 128 32l192 0c70.4 0 128 57.6 128 128l0 192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6s-9.6 9-12.8 15.8l-1.1 0-4.2-18.3-28 0 0 138.9 36.1 0 0-89.7c1.5-5.4 4.4-9.8 8.7-13.2s9.8-5.1 16.2-5.1c4.6 0 9.8 1 15.6 3.1l4.8-34zM308.6 376.6c-3.2 2.4-7.7 4.8-13.7 7.1s-12.8 3.5-20.4 3.5c-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4l83.3 0c.9-4.8 1.6-9.4 2.1-13.9 .5-4.4 .7-8.6 .7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6s17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1l-51.7 0c.9-9.4 3.7-17 8.2-22.6s11.5-8.5 21-8.5c8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4-9.6-5.7-16.7-5.7c-6.7 0-12 1.9-16.1 5.7s-6.1 8.9-6.1 15.4 2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4-9.6-5.7-16.7-5.7c-6.7 0-12 1.9-16.1 5.7s-6.1 8.9-6.1 15.4c0 6.6 2 11.7 6.1 15.6z"],empire:[512,512,[],"f1d1","M295.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6l0-18.2c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM61.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C42 181 32.1 217.5 32.1 256s10 75 27.1 106.6L75 353.5c-5.3-10-9.7-20.3-13.6-31.1zM221.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6l0-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM101.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6l0-18.2C171.9 34.6 103.9 76.4 65.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zM410.7 391.1l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6l0 18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm483.8 0a235.8 235.8 0 1 0 -471.6 0 235.8 235.8 0 1 0 471.6 0zm-39-106.6L437 158.5c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C470 331 479.9 294.5 479.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8s-18.5 .8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8s18.5-1.1 27.1-2.8l-13.3-66.7z"],"accessible-icon":[448,512,[62107],"f368","M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46C105.5 165.3 64.9 120 95 93.1l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6l-58.4 66.5 106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zM359 101.8A50.9 50.9 0 1 0 359 0 50.9 50.9 0 1 0 359 101.8zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1L57.2 260.7C36.4 287 24 320.3 24 356.4 24 487.1 174.7 557.8 275.4 478.9l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z"],quora:[448,512,[],"f2c4","M440.7 386.7l-29.3 0c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153 .1-117.5-96.6-196.7-198.4-196.7-99.7 0-197.7 79.7-197.7 196.7 0 134.1 131.3 221.6 249 189 19.7 33.6 45.7 62.3 95.2 62.3 81.8 0 90.8-75.3 89-93.3zM297.2 329.2c-19.5-29.2-43.7-52.2-91.5-52.2-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7 0-104.4 32.5-157.9 107.5-157.9 76.2 0 108.7 53.5 108.7 157.7 .1 41.8-5.4 75.6-16.7 100.5z"],"cc-jcb":[576,512,[],"f24b","M431.5 244.3l0-32.3c41.2 0 38.5 .2 38.5 .2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2 .4-3.3 .3-38.5 .3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5l0 35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM182 192.3l-57 0c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8l0 28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2l0-28.3C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2l0-28zM544 286.5c0-18.5-16.5-30.5-38-32l0-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3l0 127.5 122.7 0c24.3 .1 42.3-12.9 42.3-33.2z"],fedora:[448,512,[],"f798","M0 255.8C.1 132.2 100.3 32 224 32S448 132.3 448 256 347.8 479.9 224.1 480L50.9 480C22.8 480 .1 457.3 0 429.2l0 0 0-173.4 0 0zm342.6-63.1c0-39.7-35.6-68.5-73.2-68.5-34.9 0-65.8 26.3-70.1 59.9-.2 3.8-.4 5-.4 8.5-.1 21.1 0 42.8-.8 64.4 .9 26.1 1 52.1 0 76.6 0 27.1-19.4 45.5-44.7 45.5s-45.8-20.2-45.8-45.5c.5-27.7 22.6-45.3 48.5-46.1l.2 0 26.3-.2 0-37.3-26.3 .2c-47.1-.4-84.6 36.5-85.9 83.4 0 45.6 37.5 82.9 83 82.9 43 0 78.7-33.6 82.6-75.6l.2-53.5 32.6-.3c25.3 .2 25-37.8-.2-37.3l-32.4 .3c0-6.4 .1-12.8 .1-19.2 .1-12.7 .1-25.4-.1-38.2 .1-16.5 15.8-31.2 33.2-31.2 17.5 0 35.9 8.7 35.9 31.2 0 3.2-.1 5.1-.3 6.3-1.9 10.5 5.2 20.4 15.7 21.9 10.6 1.5 20.2-6.1 21.2-16.6 .6-4.2 .7-7.9 .7-11.6z"],duolingo:[576,512,[],"e812","M504.3 230.5c10.4 88.5-43.4 172.1-128.2 199s-176.6-10.3-218.9-88.7c-72 3-137.4-39.8-163.2-105.5-2.6-6.6-1.9-14 1.9-19.9s10.2-9.7 17.2-10.1l96.1-6-23.8-75.9c-6.3-20-2.2-41.9 11-58.3s33.7-25 54.5-23c52.2 5 86.8 4.8 104-.6S300 16.7 339-16.9c15.9-13.7 37.7-18.5 57.8-12.7s36.1 21.3 42.4 41.4L462.8 87 543.6 37.3c6-3.7 13.4-4.3 19.9-1.6s11.3 8.3 12.9 15.2c16.2 68.2-12.4 140.3-72.1 179.5zM258.5 475.9l0 0c15.1 7.5 21.5 25.8 14.2 41s-25.4 21.9-40.7 14.9l-43.9-21c-15.1-7.5-21.5-25.8-14.2-41s25.4-21.9 40.7-14.9l43.8 21zM564.6 345.7c14.8 8.4 20 27.3 11.6 42.2l-23.9 42.4c-8.7 14.3-27.1 19.2-41.6 10.9s-19.9-26.6-12-41.4l23.9-42.4c4-7.1 10.7-12.4 18.6-14.6s16.3-1.2 23.4 2.9z"],firstdraft:[384,512,[],"f3a1","M384 192l-64 0 0 128-128 0 0 128-192 0 0-25.6 166.4 0 0-128 128 0 0-128 89.6 0 0 25.6zm-25.6 38.4l0 128-128 0 0 128-166.4 0 0 25.6 192 0 0-128 128 0 0-153.6-25.6 0zm25.6 192l-89.6 0 0 89.6 25.6 0 0-64 64 0 0-25.6zM0 0l0 384 128 0 0-128 128 0 0-128 128 0 0-128-384 0z"],freebsd:[448,512,[],"f3a4","M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2s-39.4 .9-63.1-22.9c-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1-11 57.7 12.7 110.5 33.5 146.8 52 114.6 78.3 87.5 109.9 68.1zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z"],odysee:[512,512,[],"e5c6","M406.7 463c-42.3 30.8-94.4 49-150.7 49-111.1 0-205.7-70.8-241.1-169.8 2.4 1.7 5.9 3.6 7.9 4.4 16.3 7.4 40.1-5.4 62.9-28.7 6.9-6.9 14.4-12.4 22.8-17.3 18.3-11.9 37.6-20.8 58.4-27.2 0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1-11-.5-70-3-56 51.1 14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4 .8 4.6 1.1 9.9 1.4 15.5 1.1 21.2 2.3 45.6 35.3 46.4 5.3 0 10.6-.8 15.5-2l0-.1zm-95.3-23.7c-2-.5-3.5-2.5-3-5 1-2.5 3-3.5 5-3s3.5 3 3 5-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3 0 2-1 4-3 4-1.5 .5-3.5-1-4-3-.5-1.5 1-3.5 3-4zM451.8 421c37.5-44.6 60.2-102.2 60.2-165 0-67.5-26.1-128.9-68.8-174.7-.1 23.5-6.1 48.2-16.8 69.2-11.9 20.3-49 58.9-69.8 78.7-.7 .3-1.1 .9-1.5 1.4-.2 .2-.3 .4-.5 .6-5 6.9-4 16.8 3 21.8 21.3 15.8 56.4 45.6 59.4 72.8 3.5 34.9 27.9 75.6 34.2 86.2 .8 1.3 1.3 2.1 1.4 2.4 0 2.2-.4 4.3-.8 6.5l0 .1zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4-.3 1.4-.7 2.8-1 4.2-9.5 38.5-30.6 37.6-41.7 37.2-1.1 0-2-.1-2.9-.1-5.1 0-6-4-8.9-17.1-2.6-12.1-6.9-32-17.9-63.6-22.7-65.8-82.7-49.4-128.2-22.2-55.3 33.1-34.4 101.9-19.8 149.4 .7 2.2 1.4 4.4 2 6.6-4 4-13.8 7.5-26 11.9-12.1 4.3-26.6 9.5-40.3 16.9-33.9 18-70.3 49-79.8 62.6-1.3-10.7-2-21.5-2-32.5 0-141.4 114.6-256 256-256 51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4 4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5 1.5 2.5 1 5.4-1.5 6.4-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3 1.5 .5 3-.5 3-2 .5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54 44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9-61.9-4.5-64.9-42.6l0 .1zm89.6 14.9l1 0c2.5 0 5-2 5-5 2-6.9 1-14.4-2-20.8-1.5-2-4-3.5-6.4-2.5-3 1-4.5 4-3.5 6.9 2 4.5 3 9.9 1.5 14.9-.5 3 1.5 5.9 4.5 6.4l-.1 .1zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3-.2 .1-.4 .2-.6 .2l0 .1z"],"gg-circle":[512,512,[],"f261","M257.5 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM208 382.8l-125.7-125.7 125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75 125.7 125.7-125.7 125.6z"],cloudflare:[640,512,[],"e07d","M407.9 319.9L177.1 317c-.7 0-1.4-.2-2-.5s-1.2-.8-1.6-1.4c-.4-.6-.7-1.3-.7-2s0-1.4 .2-2.1c.4-1.1 1.1-2.1 2.1-2.8s2.1-1.2 3.3-1.2l232.9-2.9c27.6-1.3 57.5-23.6 68-50.8l13.3-34.5c.4-.9 .5-1.9 .5-2.9 0-.5-.1-1.1-.2-1.6-7.4-32.2-25-61.1-50.3-82.3s-56.7-33.7-89.7-35.5-65.6 7.3-93 25.7-48 45.3-58.8 76.5c-11.3-8.5-24.9-13.3-39-13.7s-28 3.5-39.8 11.4-20.8 19.1-25.9 32.3-5.9 27.6-2.4 41.3c-52.3 1.5-94.2 44.1-94.2 96.5 0 4.7 .3 9.3 1 14 .2 1.1 .7 2.1 1.5 2.8s1.9 1.1 2.9 1.1l426.1 .1c0 0 .1 0 .1 0 1.2 0 2.3-.4 3.3-1.1s1.6-1.7 2-2.9l3.3-11.3c3.9-13.4 2.4-25.8-4.1-34.9-6-8.4-16.1-13.3-28.2-13.9zm105.9-98.8c-2.1 0-4.3 .1-6.4 .2-.8 .1-1.5 .3-2.1 .8s-1 1.1-1.3 1.8l-9.1 31.2c-3.9 13.4-2.4 25.8 4.1 34.9 6 8.4 16.1 13.3 28.2 13.9l49.2 2.9c.7 0 1.4 .2 2 .5s1.1 .8 1.5 1.4c.4 .6 .7 1.3 .8 2s0 1.5-.2 2.1c-.4 1.1-1.1 2.1-2.1 2.8s-2.1 1.2-3.3 1.2l-51.1 2.9c-27.8 1.3-57.7 23.6-68.1 50.8l-3.7 9.6c-.2 .4-.2 .8-.2 1.3s.2 .8 .4 1.2 .6 .7 .9 .9 .8 .3 1.2 .3c0 0 .1 0 .1 0l175.9 0c1 0 2-.3 2.8-.9s1.4-1.5 1.7-2.4c3.1-11.1 4.7-22.5 4.7-34 0-69.3-56.5-125.5-126.1-125.5z"],hackerrank:[512,512,[],"f5f7","M477.9 128C463.4 103 285.5 0 256.5 0s-206.9 102.8-221.3 128-14.5 230.8 0 256 192.4 128 221.3 128 206.8-102.9 221.3-128 14.5-231 0-256zM316.5 414.2c-4 0-40.9-35.8-38-38.7 .9-.9 6.3-1.5 17.5-1.8 0-26.2 .6-68.6 .9-86.3 0-2-.4-3.4-.4-5.8l-79.9 0c0 7.1-.5 36.2 1.4 72.9 .2 4.5-1.6 6-5.7 5.9-10.1 0-20.3-.1-30.4-.1-4.1 0-5.9-1.5-5.7-6.1 .9-33.4 3-84-.2-212.7l0-3.2c-9.7-.4-16.4-1-17.3-1.8-2.9-2.9 34.5-38.7 38.5-38.7s41.2 35.8 38.3 38.7c-.9 .9-7.9 1.5-16.8 1.8l0 3.2c-2.4 25.8-2 79.6-2.6 105.4l80.3 0c0-4.6 .4-34.7-1.2-83.6-.1-3.4 1-5.2 4.2-5.2 11.1-.1 22.2-.1 33.2-.1 3.5 0 4.6 1.7 4.5 5.4-3.7 191.3-.7 177.9-.7 210.3 8.9 .4 16.8 1 17.7 1.8 2.9 2.9-33.6 38.7-37.6 38.7l0 0z"],skyatlas:[640,512,[],"f216","M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4 .1-154-59-154-144.9S67.5 149.6 152.8 149.6c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z"],deskpro:[512,512,[],"f38f","M222 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4l79.1 0c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zM422.4 344.3c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zM378.8 120.4l0 168.3-73.5 0-32.7 55.5-6.5 0c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1l-91 0c-25.5 0-110.8-26.8-107-114l0-213.3c0-16 9.7-16.6 15-16.8l82 0c.2 0 .3 .1 .5 .1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7l84.2 0C361-.2 378.8 79.6 378.8 120.4zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z"],resolving:[512,512,[],"f3e7","M289.2 278.2c46-13.3 49.6-23.5 44-43.4L322 195.5c-6.1-20.9-18.4-28.1-71.1-12.8l-188.2 54.1 28.6 98.6 197.9-57.2zM256.5 8C139.4 8 41.2 88.7 15.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2l-92.6 26.6 220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2C166 491.3 209.5 504 255.5 504 392.5 504 504 392.6 504 255.7 505 119.4 393.5 8 256.5 8zM46.3 388.6L8 256.8c0 48.5 14.3 93.4 38.3 131.8z"],blackberry:[512,512,[],"f37b","M166 116.9c0 23.4-16.4 49.1-72.5 49.1l-70.1 0 21-88.8 67.8 0c42.1 0 53.8 23.3 53.8 39.7zM292.2 77.2l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-25.7 70.1-49.1 .1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1l-67.8 0-21 88.8 70.1 0c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-23.4 70.1-49.1 .1-16.3-11.6-39.7-53.7-39.7zm-28 137.9l-67.8 0-18.7 88.8 70.1 0c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346l-67.8 0-18.7 88.8 70.1 0c56.1 0 70.1-25.7 70.1-49.1 .1-16.3-11.6-39.7-53.7-39.7z"],"stripe-s":[384,512,[],"f42a","M155.6 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7l0-134.3c-47.3-18.9-94.5-26.1-141.8-26.1-115.7 0-192.8 60.4-192.8 161.4 0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5l0 128.5c49.3 21.3 102.3 32.3 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z"],"square-behance":[448,512,["behance-square"],"f1b5","M155.3 318.4c17.2 0 31.2-6.1 31.2-25.4 0-19.7-11.7-27.4-30.3-27.5l-46 0 0 52.9 45.1 0zm-5.4-129.6l-39.6 0 0 44.8 42.7 0c15.1 0 25.8-6.6 25.8-22.9 0-17.7-13.7-21.9-28.9-21.9zm129.5 74.8l62.2 0c-1.7-18.5-11.3-29.7-30.5-29.7-18.3 0-30.5 11.4-31.7 29.7zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM349.5 185l-77.8 0 0-18.9 77.8 0 0 18.9zM193.7 243.7c23.6 6.7 35 27.5 35 51.6 0 39-32.7 55.7-67.6 55.9l-93.1 0 0-192 90.5 0c32.9 0 61.4 9.3 61.4 47.5 0 19.3-9 28.8-26.2 37zm118.7-38.6c43.5 0 67.6 34.3 67.6 75.4 0 1.6-.1 3.3-.2 5 0 .8-.1 1.5-.1 2.2l-100.2 0c0 22.2 11.7 35.3 34.1 35.3 11.6 0 26.5-6.2 30.2-18.1l33.7 0c-10.4 31.9-31.9 46.8-65.1 46.8-43.8 0-71.1-29.7-71.1-73 0-41.8 28.7-73.6 71.1-73.6z"],servicestack:[512,512,[],"f3ec","M96 216c81.7 10.2 273.7 102.3 304 232L8 448c99.5-8.1 184.5-137 88-232zM128 64c32.3 35.6 47.7 83.9 46.4 133.6 82.9 33.7 207.3 123.7 233.6 250.4l96 0C463.3 231.9 230.8 79.5 128 64z"],rocketchat:[576,512,[],"f3e8","M284.5 224.8c-6.7 0-13.3 2.1-18.9 5.8s-9.9 9.1-12.5 15.4-3.2 13.1-1.9 19.7 4.6 12.7 9.4 17.4 10.9 8 17.5 9.3 13.5 .6 19.7-2 11.5-7 15.3-12.6 5.7-12.2 5.7-18.9c0-9.1-3.7-17.8-10.1-24.2s-15.1-10-24.2-9.9zm-110.4 0c-6.7 0-13.3 2.1-18.9 5.8s-9.9 9.1-12.5 15.4-3.2 13.1-1.9 19.7 4.6 12.7 9.4 17.4 10.9 8 17.5 9.3 13.5 .6 19.7-2 11.5-7 15.3-12.6 5.7-12.2 5.7-18.9c0-9.1-3.7-17.8-10.1-24.2s-15.1-10-24.2-10l0 0zm220.9 0a34.1 34.1 0 1 0 .4 68.2 34.1 34.1 0 1 0 -.4-68.2zm153.8-55.3c-15.5-24.2-37.3-45.6-64.7-63.6-52.9-34.8-122.4-54-195.7-54-24.2 0-48.3 2.1-72 6.4-14.9-14.3-31.5-26.6-49.5-36.6-66.8-33.3-125.6-20.9-155.3-10.2-2.3 .8-4.3 2.1-5.9 3.9s-2.7 3.9-3.3 6.2-.5 4.7 .1 7.1 1.8 4.4 3.5 6.1C27 56.5 61.6 99.3 53.1 138.3 20 172.2 2 213 2 255.6 2 299 20 339.8 53.1 373.7 61.6 412.7 27 455.6 6 477.2 4.3 479 3.2 481.1 2.5 483.4s-.7 4.7-.1 7 1.7 4.5 3.3 6.2 3.6 3.1 5.9 3.9c29.7 10.7 88.5 23.1 155.3-10.2 18-10 34.7-22.3 49.5-36.6 23.8 4.3 47.9 6.4 72 6.4 73.3 0 142.8-19.2 195.7-54 27.4-18 49.1-39.4 64.7-63.6 17.3-26.9 26.1-55.9 26.1-86.1 0-31-8.8-60-26.1-86.9l0 0zM285.4 409.9c-30.2 .1-60.3-3.8-89.4-11.5l-20.1 19.4c-11.2 10.7-23.6 20-37.1 27.6-16.4 8.2-34.2 13.3-52.5 14.9 1-1.8 1.9-3.6 2.8-5.4 20.2-37.1 25.6-70.5 16.3-100.1-33-26-52.8-59.2-52.8-95.4 0-83.1 104.3-150.5 232.8-150.5s232.9 67.4 232.9 150.5c0 83.1-104.3 150.5-232.9 150.5z"],rebel:[512,512,[],"f1d0","M256.9 504c-139.3 0-247.5-116.2-243.3-254.1 2.8-79.2 43.2-152.2 116.5-200.4 .3 0 1.9-.6 1.1 .8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7 .8-29.6-21.9-61.4-21.9-61.4L255.5 8 299.8 58.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4 .6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5 .8-2.8 .8-2.8 50.1 36.5 114.6 84.4 116.2 204.8 2 145.6-99.9 249.4-242.4 249.4z"],"square-web-awesome":[448,512,[],"e683","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM235 177.6l53 46.4 52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224c-12.9-.4-23.2-11-23.2-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224 213.1 177.6c-8.9-4.1-15-13.1-15-23.6 0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z"],linktree:[448,512,[],"e7d8","M32 173.4l125.8 0-89.4-85.4 49.5-51 85.2 87.8 0-124.8 73.9 0 0 124.8 85.2-87.6 49.4 50.8-89.4 85.2 125.7 0 0 70.5-126.4 0 90 87.6-49.3 49.8-122.2-123-122.2 123-49.5-49.6 90-87.6-126.4 0 0-70.5zM202.9 344.8l73.9 0 0 167.2-73.9 0 0-167.2z"],simplybuilt:[512,512,[],"f215","M481.6 64l-106 0C361.1 64 349 75.8 349 90.3l0 39.6-185.3 0 0-39.6c0-14.5-12-26.3-26.6-26.3l-106 0C16.5 64 4.7 75.8 4.7 90.3l0 331.4c0 14.5 11.8 26.3 26.6 26.3l450.4 0c14.8 0 26.6-11.8 26.6-26.3l0-331.4c-.2-14.5-12-26.3-26.7-26.3zM150.5 222.7a66.5 66.5 0 1 1 -.3 133.1 66.5 66.5 0 1 1 .3-133.1zm211.9 .1a66.5 66.5 0 1 1 .3 132.9 66.5 66.5 0 1 1 -.3-132.9z"],stubber:[448,512,[],"e5c7","M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1 49.4 0 71.4 63.6 142.4 63.6 15.6 0 35.9-2.8 55.3-13.3l0 61.7c0 61.8-50.4 112-112.3 112L0 480 41.8 424 0 368 41.7 312 0 256.1 41.8 200.1 0 144.1 41.8 88 0 32 335.7 32C397.6 32 448 82.3 448 144.1l0 51.3c-9.2 36.3-25.9 60.6-55 60.6-49.6 0-71.6-63.5-142.4-63.5-35.9 0-95.2 14.6-114.1 101.6l0 .1z"],apper:[640,512,[],"f371","M42.1 239.1c22.2 0 29 2.8 33.5 14.6l.8 0 0-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8l-38.6 0c.3-13.9 1.5-19.1 5.8-24.4 7.3-8.8 18.9-11.8 46.1-11.8 33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7l0 76.3-38.3 0 1.3-19.1-1 0c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zM137 192.3l38.3 0-1.5 20.6 .8 0c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2l-.8 0 0 70.3-39.5 0 0-169zM217.9 253c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7l38.3 0-1.5 20.6 .8 0c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2l-.8 0 0 70.3-39.5 0 0-169 .1 0zM356.7 253c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7l0 11.1-75.3 0c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9l37.5 0 0 2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3 38.3 0zm55.6-45.3l38.3 0-1.8 19.9 .7 0c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3l-35 0c.3-1.8 .3-3.3 .3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3l0 68-38.3 0 0-118.5 .1 0z"],"google-scholar":[512,512,[],"e63b","M390.9 298.5s0 .1 .1 .1c9.2 19.4 14.4 41.1 14.4 64-.1 82.5-66.9 149.4-149.4 149.4S106.7 445.1 106.7 362.7c0-22.9 5.2-44.6 14.4-64 1.7-3.6 3.6-7.2 5.6-10.7 4.4-7.6 9.4-14.7 15-21.3 27.4-32.6 68.5-53.3 114.4-53.3 33.6 0 64.6 11.1 89.6 29.9 9.1 6.9 17.4 14.7 24.8 23.5 5.6 6.6 10.6 13.8 15 21.3 2 3.4 3.8 7 5.5 10.5l-.1-.1zm26.4-18.8c-30.1-58.4-91-98.4-161.3-98.4s-131.2 40-161.3 98.4l-94.7-77 256-202.7 256 202.7-94.7 77.1 0-.1z"],yarn:[512,512,[],"f7e3","M401.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4 .1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3 .8-10.8-5.7 .8-19.2 .8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3 .8 1.4 13.7 .8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm416.7 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2 .9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4l.1 0c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4 .2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z"],"stack-overflow":[384,512,[],"f16c","M291 311l-195.7-41.3-8.2 39.3 195.7 41 8.2-39zm51-87L188.5 95.7 163 126.5 316.5 254.8 342 224zm-31.2 39.7L129.5 179 112.8 215.5 294 300 310.8 263.7zM262.3 32l-32 24 119.3 160.3 32-24-119.3-160.3zm20.5 328l-200 0 0 39.7 200 0 0-39.7zm39.7 80l-279.5 0 0-120-40 0 0 160 359.5 0 0-160-40 0 0 120z"],bluetooth:[384,512,[],"f293","M260.6 171.1l-42.9 42.9-.3-86 43.2 43.1zM217.4 390.9l43.1-43.1-42.9-42.9-.2 86zM384 259.4C384 465 312.1 512 198.9 512S0 465 0 259.4 83.4 0 196.6 0 384 53.9 384 259.4zm-158.5 0l79.4-88.6-125.1-134.3 0 176.9-73.8-73.8-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z"],"creative-commons-nc-jp":[512,512,[],"f4ea","M255.7 8C111.6 8 8 124.8 8 256 8 392.4 119.8 504 255.7 504 385.9 504 504 403.2 504 256 504 117.2 396.5 8 255.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5-27.9 0 0 38.6 58.1 0 5.7 11.8 0 18.7-63.8 0 0 38.7 63.8 0 0 56 61.7 0 0-56 64.2 0 0-35.7 81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3l-57.6 0 0-18.7 2.9-5.6 54.7 24.3zm6.5-51.4l0-17.8-38.6 0 63-116-65.8 0-43.4 96-23-10.2-39.6-85.7-65.8 0 27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59L350.4 270z"],reddit:[512,512,[],"f1a1","M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256 397.4 512 256 512L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1-10.1-7.8-22.8-12.5-36.5-12.5-33 0-59.8 26.8-59.8 59.8 0 24 14.1 44.6 34.4 54.1 2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54 0-33-26.8-59.8-59.8-59.8-13.7 0-26.3 4.6-36.4 12.4-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9 4.4 18.8 21.3 32.8 41.5 32.8l.1 .2zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6-31.4-8.8-30.4-30.5 15.4-38.3 32.1-38.3l.1-.1zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6 11.8-39.3 28.5-39.3 31.2 16.6 32.1 38.3l.1 .1zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5 18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z"],connectdevelop:[576,512,[],"f20e","M550.8 241l-50.1-86.8c1.1-2.1 1.9-4.6 1.9-7.2 0-8-6.7-14.7-14.7-15L432.4 36.1c.5-1.6 1.1-3.2 1.1-4.8 0-8.6-7-15.3-15.3-15.3-4.8 0-8.8 2.1-11.8 5.6l-106.6 0c-2.7-3.5-6.7-5.6-11.5-5.6s-8.8 2.1-11.5 5.6l-106.1 0c-2.9-3.5-7-5.6-11.8-5.6-8.3 0-15.3 6.7-15.3 15.3 0 1.6 .5 3.5 1.1 4.8l-56 97.2c-5.4 2.4-9.1 7.5-9.1 13.7 0 .5 .3 1.1 .3 1.6L26.6 240.7c-7.2 1.3-12.6 7.5-12.6 15 0 7.2 5.1 13.4 12.1 15l55.2 95.4c-.5 1.6-.8 2.9-.8 4.8 0 7.2 5.1 13.4 12.1 14.7l51.7 89.7c-.5 1.6-1.1 3.5-1.1 5.4 0 8.6 7 15.3 15.3 15.3 4.8 0 8.8-2.1 11.5-5.4l106.9 0c2.7 3.2 7 5.4 11.5 5.4s8.8-2.1 11.5-5.4l107.1 0c2.7 2.9 6.7 4.8 11 4.8 8.6 0 15.3-7 15.3-15.3 0-1.6-.3-2.9-.8-4.3l51.7-90.3c7-1.3 12.1-7.5 12.1-14.7 0-1.6-.3-3.2-.8-4.8l54.9-95.4c7-1.3 12.3-7.5 12.3-15 0-7.2-5.1-13.4-11.8-14.7zm-397 209.7l-43.7-75.8 43.7 0 0 75.8zm0-83.8l-43.7 0c-.3-1.1-.8-2.1-1.3-3.2l45-47.4 0 50.6zm0-62.4l-50.4 53.3c-1.3-.5-2.7-1.3-4-1.6L43.7 259.8c.5-1.3 .5-2.7 .5-4s0-2.4-.3-3.5l52-90c2.7-.3 5.4-1.1 7.8-2.7l50.1 52 0 92.9zm0-102.3L108 154.8c1.3-2.1 2.1-4.8 2.1-7.8 0-.3-.3-.8-.3-1.1l43.9-15.8 0 72.1zm0-80.6l-43.7 15.8 43.7-75.5 0 59.7zm326.5 39.1l.8 1.3-35.4 167.1-63.8-67.2 98-101.5 .3 .3zM292.1 355.1l11.5 11.8-22.8 0 11.3-11.8zm-.3-11.3l-83.3-85.4 79.6-84.4 83 87.6-79.3 82.2zm5.4 5.9l79.3-82.2 67.5 71.3-5.9 28.1-124 0-16.9-17.1zM410.7 44.4c1.1 .5 2.1 1.1 3.5 1.3l57.9 100.7 0 .5c0 2.9 .8 5.6 2.1 7.8l-97.5 101.2-83-87.6 117.1-124zm-9.1-2.1l-113.6 120.3-57.1-60.3 166.3-60 4.3 0zm-123.5 0c2.7 2.7 6.2 4.3 10.2 4.3s7.5-1.6 10.2-4.3l75 0-148.4 53.6-50.9-53.6 103.9 0zM161.9 47.9l1.1-2.1c.9-.2 1.8-.5 2.7-.8l51.2 53.8-54.9 19.8 0-70.7zm0 79.3l60.8-22 59.7 63.2-79.6 84.1-41-42.1 0-83.3zm0 92.7l36.4 37.8-36.4 38.3 0-76.1zm0 87.9l42.1-44.5 82.8 86-17.1 17.7-107.7 0 0-59.2zm7 162.1c-1.6-1.6-3.5-2.7-5.9-3.5l-1.1-1.6 0-89.7 99.9 0-91.6 94.8-1.3 0zm129.9 0c-2.7-2.4-6.4-4.3-10.4-4.3s-7.8 1.9-10.4 4.3l-96.4 0 91.6-94.8 38.3 0 91.6 94.8-104.2 0zm120-11.8l-4.3 7.5c-1.3 .3-2.4 .8-3.5 1.3l-89.2-91.9 114.4 0-17.4 83zm12.9-22.2l12.9-60.8 22 0-34.8 60.8zm34.8-68.8l-20.4 0 4.6-21.2 17.1 18.2c-.5 .8-1.1 1.9-1.3 2.9zm66.2-107.4l-55.4 96.7c-1.3 .5-2.7 1.1-4 1.9l-20.6-22 34.6-163.9 45.8 79.3c-.3 1.3-.8 2.7-.8 4.3 0 1.3 .3 2.4 .5 3.7z"],researchgate:[448,512,[],"f4f8","M0 32l0 448 448 0 0-448-448 0zM262.2 366.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6l0 46.4c0 23.5 6 21.2 25.8 23.9l0 8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1 .6-33.6 .8l0-8.1c15.5-2.9 22-1.3 22-23.9l0-109.4c0-22.6-6.4-21-22-23.9l0-8.1c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7l0 7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2l0-32.2c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7l0 26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8l-17.9 0 0-10.7 30.4 0c0 20.5 4.7 49.9-34 49.9zM168.6 276.1c-9.4 0-13.6-.3-20-.8l0-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z"],"signal-messenger":[512,512,[],"e663","M256 0c-13.3 0-26.3 1-39.1 3l3.7 23.7C232.1 24.9 244 24 256 24s23.9 .9 35.4 2.7L295.1 3C282.3 1 269.3 0 256 0zm60.8 7.3l-5.7 23.3c23.4 5.7 45.4 14.9 65.4 27.1l12.5-20.5c-22.1-13.4-46.4-23.6-72.2-29.9zm76.4 61.6c19.1 14 36 30.9 50.1 50.1l19.4-14.2C447 83.6 428.4 65 407.3 49.5L393.1 68.8zm81.7 54.2l-20.5 12.5c12.2 20 21.4 42 27.1 65.4l23.3-5.7c-6.3-25.8-16.5-50.1-29.9-72.2zm10.5 97.5c1.8 11.5 2.7 23.4 2.7 35.4s-.9 23.9-2.7 35.4l23.7 3.7c1.9-12.7 3-25.8 3-39.1s-1-26.3-3-39.1l-23.7 3.7zm-31 155.9l20.5 12.5c13.4-22.1 23.6-46.4 29.9-72.2l-23.3-5.7c-5.7 23.4-14.9 45.4-27.1 65.4zm8.2 30.8l-19.4-14.2c-14 19.1-30.9 36-50.1 50.1l14.2 19.4c21.1-15.5 39.8-34.1 55.2-55.2zm-86.1 47c-20 12.2-42 21.4-65.4 27.1l5.7 23.3c25.8-6.3 50.1-16.5 72.2-29.9l-12.5-20.5zM295.1 509l-3.7-23.7C279.9 487.1 268 488 256 488s-23.9-.9-35.4-2.7L216.9 509c12.7 1.9 25.8 3 39.1 3s26.3-1 39.1-3zm-94.1-27.6c-17.6-4.3-34.4-10.6-50.1-18.6l-7.8-4-32.8 7.7 5.5 23.4 24.3-5.7c17.4 8.9 35.9 15.8 55.3 20.5l5.7-23.3zM95.4 494.6L90 471.3 48.3 481c-10.4 2.4-19.7-6.9-17.3-17.3l9.7-41.6-23.4-5.5-9.7 41.6C1.2 486 26 510.8 53.8 504.4l41.6-9.7zm-50-92.9l7.7-32.8-4-7.8c-8-15.7-14.3-32.5-18.6-50.1L7.3 316.7C12 336.1 18.9 354.7 27.7 372l-5.7 24.3 23.4 5.5zM3 295.1l23.7-3.7C24.9 279.9 24 268 24 256s.9-23.9 2.7-35.4L3 216.9C1 229.7 0 242.7 0 256s1 26.3 3 39.1zm27.6-94.1c5.7-23.4 14.9-45.4 27.1-65.4L37.2 123.1c-13.4 22.1-23.6 46.4-29.9 72.2l23.3 5.7zm18.9-96.2l19.4 14.2c14-19.1 30.9-36 50.1-50.1L104.7 49.5C83.6 65 65 83.6 49.5 104.7zm86.1-47c20-12.2 42-21.4 65.4-27.1L195.2 7.3c-25.8 6.3-50.1 16.5-72.2 29.9l12.5 20.5zM256 464c114.9 0 208-93.1 208-208S370.9 48 256 48 48 141.1 48 256c0 36.4 9.4 70.7 25.8 100.5 1.6 2.9 2.1 6.2 1.4 9.4l-21.6 92.5 92.5-21.6c3.2-.7 6.5-.2 9.4 1.4 29.8 16.5 64 25.8 100.5 25.8z"],xing:[384,512,[],"f168","M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5L9.8 346c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3L26.4 134.4c-4.3-7.8 .3-14.1 8.5-14.1l65.1 0c7.3 0 13.3 4.1 18 12.2L162.7 210zM382.6 46.1l-144 253 0 .3 91.6 166.6c3.9 7.1 .2 14.1-8.5 14.1l-65.2 0c-7.6 0-13.6-4-18-12.2L146.1 299.4c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2l65.7 0c8 0 12.3 6.7 8.5 14.1z"],"square-js":[448,512,["js-square"],"f3b9","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5l0-143.1 42.1 0 0 143.7c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6-39.1 0-64.4-18.6-76.7-43z"],fonticons:[448,512,[],"f280","M0 32l0 448 448 0 0-448-448 0zM187 172.9c-18.4 0-19 9.9-19 27.4l0 23.3c0 2.4-3.5 4.4-.6 4.4l67.4 0-11.1 37.3-55.7 0 0 112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1 0 25.1-130.7 0 0-25.7 21.3-2c5.2-.6 6.7-2.3 6.7-7.9l0-111.4c0-2.3-2.9-2.3-5.8-2.3l-22.2 0 0-37.4 28 0 0-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8l0-25.1 20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3l0-107.9c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5 80.2 0 0 151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6 0 25.1-102.6 0zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6 27.7 0 15.5-28 9.3 0 15.5 28 27.7 0 3.5 9.6-21.9 24.2z"],ups:[384,512,[],"f7e0","M103.2 303c-5.2 3.6-32.6 13.1-32.6-19l0-104-32.7 0 0 102.6c0 74.9 80.2 51.1 97.9 39l0-141.6-32.6 0 0 123zM4 74.8L4 295.7c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1l0-220.9C263.1 13.2 97.6 25.2 4 74.8zM362.1 295.7c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3l0-126.4c102.3-93.8 231.6-100 340.9-89.8l0 216.2zM152.5 188.3l0 212.8 32.7 0 0-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.9-104.4-65.6zm32.7 117.3l0-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4 .6 23.5-30.4 23-50.8 4.9l0 30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2 .6-20.3 30.6-20.5 48.5-2.2l0-28.4c-28.5-22-79.9-9.2-79.7 31.9z"],"amazon-pay":[640,512,[],"f42c","M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.6 20.2 83.3 35.8 127.4 46.3 20.8 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.2-6.6 111.1-21 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-3 2.7-6.2 5.2-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.5 7.9-49.6 13.8-75.1 17.6-17.6 2.7-35.4 4.3-53.2 4.8-.8 0-1.7 .2-2.5 .3l-21.1 0c-.8-.1-1.7-.2-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.8-33.7-2.5-50.4-5.3-27.4-4.5-54.3-11.5-80.4-20.9-53.7-19.4-103.1-48.9-145.6-87-1.8-1.6-3-3.8-4.4-5.7l0-2zM172 65.1l-4.3 .6c-13.8 1.7-26.8 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.4-.3-.9-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6l-11.5 0c-6.9 0-8.2 1.3-8.2 8.2l0 209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1 .1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3l0-72.4c1.1 .9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1 .5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107c-.1-.7 .1-1.3 .4-1.9s.8-1.1 1.3-1.4c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-.6-.3-1-.8-1.3-1.4s-.4-1.2-.4-1.9c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zM330.3 65.1c-1 .1-2 .3-2.9 .4-9.7 .4-19.4 1.8-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7 .1 3.3-.1 6.6 0 9.9 .1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4 .3 8.3 .2 16.6 .3 24.9 0 .5-.1 .9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.6-21.2-4.2-32-4.9-11.3-.6-22.5 .1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4 .5-.4 1-.8 1.6-1.1 .6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4 .1 10.9 .1 16.3 0 1.3 0 2.5-.5 3.4-1.4s1.4-2.1 1.5-3.3c.1-.9 .1-1.9 .1-2.8l0-106c0-4.3-.3-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9 .1-7.9 .1-11.9 .1zm35 127.7c0 .6-.1 1.2-.3 1.7s-.7 1-1.2 1.3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7 .6-11.4 .4-16.8-1.8-3-1.1-5.6-2.9-7.8-5.2s-3.7-5.1-4.6-8.1c-2-6.3-2-13.1-.1-19.4 2.5-8.3 8.4-13 16.4-15.6 8-2.4 16.5-3.2 24.8-2.2 8.4 .7 16.6 2.3 25 3.4 1.6 .2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zM625.2 322.2c-1-5-4.8-6.9-9.1-8.3-6.8-2.1-13.9-3.5-21-3.9-13.1-1.1-26.3-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 .9-2.7 2.1-3.7 3.5-.4 .6-.6 1.3-.7 1.9s0 1.4 .2 2.1c.4 1.5 2.1 1.9 3.6 1.8 .7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.9 .4 9.7 1.3 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4 .4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.8-.4 3.4-1.3 4.8-2.5 4.5-4.2 8.8-8.7 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6 .8-3.6 1.4-7.3 2.1-10.9l0-17.3zM493.1 199c-12.9-35.7-25.8-71.4-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5 .5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97 59.1 145.5 1.7 4.1 2.1 7.6 .2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5 1.3-10.2 1.7-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9 .1 5.5 2 8 7.4 8.9 5.6 1.1 11.2 1.8 16.9 2 17.1 .4 30.7-6.5 39.5-21.4 3.5-5.9 6.6-12 9.2-18.4 23.7-59.8 47.2-119.7 70.6-179.6 .7-1.8 1.3-3.6 1.6-5.5 .4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-1.7-.1-3.4 .3-4.7 1.3s-2.4 2.3-3 3.9c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z"],pandora:[384,512,[],"e7da","M201.3 32L0 32 0 480 120.2 480c11.2 0 20.3-9.1 20.3-20.3l0-86.1 30.1 0c147.1 0 207.3-82.9 207.3-179.9 0-119.7-90.9-161.8-176.5-161.8z"],openid:[448,512,[],"f19b","M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2 0 246.7 82.5 187.2 191.7 173.9l0 43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103l0-340 68-33.2 0 384 .1 0zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8l0-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8 9.2 97.5z"],vsco:[512,512,[],"e7dd","M357.6 256c0-27.1-10.6-52.5-29.7-71.7s-44.6-29.7-71.7-29.7l-.1 0c-27.1 0-52.6 10.6-71.7 29.7s-29.7 44.6-29.7 71.7c0 27.1 10.6 52.5 29.7 71.7 19.2 19.2 44.6 29.7 71.7 29.7l.1 0c27.1 0 52.6-10.6 71.7-29.7 19.2-19.2 29.7-44.6 29.7-71.7zM176.3 482.1c23 8.1 47 12.6 71.6 13.4l0-59.1c-17.1-.7-33.5-3.8-49-8.9l-22.6 54.6zm137-54.6c-15.5 5.1-32 8.2-49 8.9l0 59.1c24.6-.8 48.6-5.3 71.6-13.4l-22.6-54.6zM92.5 431.2c20.2 18.9 43.3 34 68.7 45l22.5-54.5c-18.3-7.9-35.1-18.8-49.8-31.9L92.5 431.2zm285.9-41.4c-14.6 13.2-31.4 24-49.8 31.9l22.5 54.5c25.4-11 48.4-26.1 68.7-45l-41.4-41.4zM145.4 378.2c13.6 12.1 29 21.9 45.8 29 18 7.6 37.1 12 56.7 12.9l0-46.8c-26.4-1.8-50.3-12.3-69.1-28.6l-33.4 33.4zm188-33.4c-18.8 16.3-42.7 26.8-69.1 28.6l0 46.8c19.6-.9 38.7-5.3 56.7-12.9 16.8-7.1 32.2-16.9 45.8-29l-33.4-33.4zM38.5 356.6c10.7 23.2 25 44.3 42.5 63.1l41.3-41.3c-12.4-13.4-22.9-28.6-30.9-45.2L38.5 356.6zm382.4-23.5c-8 16.6-18.5 31.9-30.9 45.2l41.3 41.3c17.5-18.7 31.8-39.9 42.5-63.1l-52.9-23.5zm-331-69c1.1 18.8 5.4 37.2 12.8 54.5 7.5 17.8 18 34 31.2 48.2l33.5-33.5c-16.4-18.8-26.9-42.8-28.7-69.2l-48.8 0zm283.7 0c-1.8 26.4-12.3 50.4-28.7 69.2l33.5 33.5c13.1-14.2 23.6-30.4 31.2-48.2 7.3-17.4 11.6-35.7 12.7-54.5l-48.7 0zm-357.1 0c.9 26.7 6.1 52.7 15.6 77.5L85 318.2c-6.4-17-10.3-35.1-11.3-54l-57.1 0zm422.1 0c-1 18.9-5 37.1-11.3 54l52.8 23.5c9.5-24.8 14.7-50.8 15.6-77.5l-57.1 0zM32.1 170.4c-9.5 24.8-14.7 50.8-15.6 77.5l57.1 0c1-18.9 5-37.1 11.3-54L32.1 170.4zm101.7-25.2c-13.1 14.2-23.6 30.4-31.2 48.2-7.3 17.4-11.6 35.7-12.8 54.5l48.8 0c1.8-26.4 12.3-50.4 28.7-69.2l-33.5-33.5zm211.1 33.5c16.4 18.8 26.9 42.8 28.7 69.2l48.7 0c-1.1-18.8-5.4-37.2-12.7-54.5-7.5-17.8-18-34-31.2-48.2l-33.5 33.5zm82.4 15.2c6.4 17 10.3 35.1 11.3 54l57.1 0c-.9-26.7-6.1-52.7-15.6-77.5l-52.8 23.5zM81 92.3C63.4 111 49.2 132.2 38.5 155.4l52.9 23.5c8-16.6 18.5-31.9 30.9-45.2L81 92.3zm309 41.3c12.4 13.4 22.9 28.6 30.9 45.2l52.9-23.5c-10.7-23.2-25-44.3-42.5-63.1L390 133.7zM248 91.8c-19.6 .9-38.7 5.3-56.7 12.9-16.8 7.1-32.2 16.9-45.8 29l33.4 33.4c18.8-16.3 42.7-26.8 69.1-28.6l0-46.7zm16.3 46.7c26.4 1.8 50.3 12.3 69.1 28.6l33.4-33.4c-13.6-12.1-29-21.9-45.8-29-18-7.6-37.1-12-56.7-12.9l0 46.7zM161.2 35.8c-25.4 11-48.4 26.1-68.7 45l41.4 41.4c14.7-13.2 31.4-24 49.8-31.9L161.2 35.8zM328.6 90.3c18.3 7.9 35.1 18.8 49.8 31.9l41.4-41.4c-20.2-18.9-43.3-34-68.7-45L328.6 90.3zM248 16.4c-24.6 .8-48.6 5.3-71.6 13.4l22.6 54.6c15.5-5.1 32-8.2 49-8.9l0-59.1zm16.3 59.1c17.1 .7 33.5 3.8 49 8.9l22.6-54.6c-23-8.1-47-12.6-71.6-13.4l0 59.1zM512.2 264.2l-.2 0C507.8 399 399.2 507.7 264.3 511.9l0 .1-16.3 0 0-.1C113.1 507.7 4.5 399 .2 264.1l-.2 0 0-16.3 .2 0C4.5 113 113.1 4.3 248 .1l0-.1 16.3 0 0 .1C399.2 4.3 507.8 113 512 247.9l.2 0 0 16.3z"],ubuntu:[576,512,[],"f7df","M469.2 75c0-20.1-8-39.3-22.2-53.5s-33.4-22.2-53.5-22.2-39.3 8-53.5 22.2-22.2 33.4-22.2 53.5c0 20.1 8 39.3 22.1 53.5s33.4 22.1 53.5 22.1 39.3-8 53.5-22.1 22.1-33.4 22.1-53.5l.1 0zm-315 165.7a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM57 346c18.6 46.9 51 87 93 115.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2-6.8-.9-13.3-2.1-19.5-3.4-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2l.1 .1zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2 33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6 15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6l.1 0zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3 16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7 3.6-16.7 11.1-32.3 21.8-45.5-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3 7.5 0 15 .8 22.4 2.3l-.1 0z"],viacoin:[384,512,[],"f237","M384 32l-64 0-80.7 192-94.5 0-80.8-192-64 0 48 112-48 0 0 48 68.5 0 13.8 32-82.3 0 0 48 102.8 0 89.2 208 89.2-208 102.8 0 0-48-82.3 0 13.8-32 68.5 0 0-48-48 0 48-112zM192 336l-27-64 54 0-27 64z"],zhihu:[640,512,[],"f63f","M170.5 148.1l0 217.5 23.4 0 7.7 26.4 42-26.4 49.5 0 0-217.5-122.7 0zm97.8 193.9l-27.9 0-27.9 17.5-5.1-17.5-11.9 0 0-170.3 72.8 0 0 170.3zM149.8 247.7l-52.3 0c1.7-27.1 2.2-51.6 2.2-73.5l51.2 0s2-22.6-8.6-22.3l-88.5 0c3.5-13.1 7.9-26.7 13.1-40.7 0 0-24.1 0-32.3 21.6-3.4 8.9-13.2 43.1-30.7 78.1 5.9-.6 25.4-1.2 36.8-22.2 2.1-5.9 2.5-6.7 5.1-14.5l28.9 0c0 10.5-1.2 66.9-1.7 73.4l-52.3 0c-11.7 0-15.6 23.6-15.6 23.6l65.6 0c-4.4 49.9-28 91.9-70.8 125.1 20.5 5.9 40.9-.9 51-9.9 0 0 23-20.9 35.6-69.3l54 64.9s7.9-26.9-1.2-40c-7.6-8.9-28.1-33.1-36.8-41.8L87.9 312c4.4-14 7-27.6 7.9-40.7l61.6 0s-.1-23.6-7.6-23.6l0 0zm412-1.6c20.8-25.6 45-58.6 45-58.6s-18.6-14.8-27.4-4.1c-6 8.2-36.8 48.2-36.8 48.2l19.2 14.4zM411.8 187c-9-8.2-25.9 2.1-25.9 2.1s39.5 55 41.1 57.4l19.5-13.7s-25.7-37.6-34.7-45.9l0 0 0 0zM640 258.4c-19.8 0-130.9 .9-131.1 .9l0-101c4.8 0 12.4-.4 22.8-1.2 40.9-2.4 70.1-4 87.8-4.8 0 0 12.2-27.2-.6-33.4-3.1-1.2-23.2 4.6-23.2 4.6s-165.2 16.5-232.4 18c1.6 8.8 7.6 17.1 15.8 19.6 13.3 3.5 22.7 1.7 49.2 .9 24.8-1.6 43.7-2.4 56.5-2.4l0 99.8-133.5 0s2.8 22.3 25.5 22.9l107.9 0 0 70.9c0 14-11.2 22-24.5 21.1-14.1 .1-26.1-1.1-41.7-1.8 2 4 6.3 14.4 19.3 21.8 9.9 4.8 16.2 6.6 26 6.6 29.6 0 45.7-17.3 44.9-45.3l0-73.3 122.4 0c9.7 0 8.7-23.8 8.7-23.8l0 0z"],yandex:[256,512,[],"f413","M153.1 315.8L65.7 512 2 512 98 302.2C52.9 279.3 22.8 237.8 22.8 161.1 22.7 53.7 90.8 0 171.7 0l82.3 0 0 512-55.1 0 0-196.2-45.8 0zM198.9 46.5l-29.4 0c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8l29.4 0 0-223.4z"],pixiv:[448,512,[],"e640","M96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96L96 32zm77.7 217.3a60.1 60.1 0 1 0 120.3 0 60.1 60.1 0 1 0 -120.3 0zM119.1 387.8c-.3-.8-.5-1.7-.5-2.6l0-244.3c0-1.8 .7-3.6 2-4.9s3-2 4.9-2l16.9 0c1.2 0 2.3 .3 3.3 .8s1.9 1.3 2.5 2.3l14 21.8c19.7-15.6 44.5-25 71.6-25 63.6 0 115.2 51.6 115.2 115.2S297.5 364.5 233.8 364.5c-22 0-42.6-6.2-60.1-16.9l0 37.6c0 .9-.2 1.8-.5 2.6s-.9 1.6-1.5 2.2-1.4 1.1-2.2 1.5-1.7 .5-2.6 .5l-41.3 0c-.9 0-1.8-.2-2.6-.5s-1.6-.9-2.2-1.5-1.1-1.4-1.5-2.2z"],openai:[512,512,[],"e7cf","M196.4 185.8l0-48.6c0-4.1 1.5-7.2 5.1-9.2l97.8-56.3c13.3-7.7 29.2-11.3 45.6-11.3 61.4 0 100.4 47.6 100.4 98.3 0 3.6 0 7.7-.5 11.8L343.3 111.1c-6.1-3.6-12.3-3.6-18.4 0L196.4 185.8zM424.7 375.2l0-116.2c0-7.2-3.1-12.3-9.2-15.9L287 168.4 329 144.3c3.6-2 6.7-2 10.2 0L437 200.7c28.2 16.4 47.1 51.2 47.1 85 0 38.9-23 74.8-59.4 89.6l0 0zM166.2 272.8l-42-24.6c-3.6-2-5.1-5.1-5.1-9.2l0-112.6c0-54.8 42-96.3 98.8-96.3 21.5 0 41.5 7.2 58.4 20L175.4 108.5c-6.1 3.6-9.2 8.7-9.2 15.9l0 148.5 0 0zm90.4 52.2l-60.2-33.8 0-71.7 60.2-33.8 60.2 33.8 0 71.7-60.2 33.8zm38.7 155.7c-21.5 0-41.5-7.2-58.4-20l100.9-58.4c6.1-3.6 9.2-8.7 9.2-15.9l0-148.5 42.5 24.6c3.6 2 5.1 5.1 5.1 9.2l0 112.6c0 54.8-42.5 96.3-99.3 96.3l0 0zM173.8 366.5L76.1 310.2c-28.2-16.4-47.1-51.2-47.1-85 0-39.4 23.6-74.8 59.9-89.6l0 116.7c0 7.2 3.1 12.3 9.2 15.9l128 74.2-42 24.1c-3.6 2-6.7 2-10.2 0zm-5.6 84c-57.9 0-100.4-43.5-100.4-97.3 0-4.1 .5-8.2 1-12.3l100.9 58.4c6.1 3.6 12.3 3.6 18.4 0l128.5-74.2 0 48.6c0 4.1-1.5 7.2-5.1 9.2l-97.8 56.3c-13.3 7.7-29.2 11.3-45.6 11.3l0 0zm127 60.9c62 0 113.7-44 125.4-102.4 57.3-14.9 94.2-68.6 94.2-123.4 0-35.8-15.4-70.7-43-95.7 2.6-10.8 4.1-21.5 4.1-32.3 0-73.2-59.4-128-128-128-13.8 0-27.1 2-40.4 6.7-23-22.5-54.8-36.9-89.6-36.9-62 0-113.7 44-125.4 102.4-57.3 14.8-94.2 68.6-94.2 123.4 0 35.8 15.4 70.7 43 95.7-2.6 10.8-4.1 21.5-4.1 32.3 0 73.2 59.4 128 128 128 13.8 0 27.1-2 40.4-6.7 23 22.5 54.8 36.9 89.6 36.9z"],sith:[448,512,[],"f512","M0 32l69.7 118.8-58.9-11.5 69.8 91c-3 17-3 34.4 0 51.4l-69.8 91 58.9-11.5-69.7 118.8 118.8-69.7-11.5 58.9 91-69.8c17 3 34.5 3 51.5 0l91 69.8-11.5-58.9 118.7 69.7-69.7-118.8 58.9 11.5-69.8-91c3-17 3-34.4 0-51.4l69.8-91-58.9 11.5 69.7-118.8-118.7 69.7 11.5-58.9-91.1 69.9c-8.5-1.5-17.1-2.3-25.7-2.3s-17.2 .8-25.7 2.3L107.2 42.8 118.8 101.7 0 32zM224 380.2a124.2 124.2 0 1 1 0-248.4 124.2 124.2 0 1 1 0 248.4zm0-211.8a87.6 87.6 0 1 0 0 175.1 87.6 87.6 0 1 0 0-175.1z"],"nfc-directional":[512,512,[],"e530","M211.8 488.6c1.6 2.5 2.1 5.6 1.4 8.5-.6 2.9-2.4 5.5-4.9 7.1-2.6 1.6-5.6 2.1-8.6 1.5-61.4-13.9-115.6-49.9-152.2-101.2S-5.4 290.3 1.6 227.7c7-62.7 36.8-120.5 83.7-162.5 46.9-42 107.7-65.2 170.7-65.2 1.5 0 2.1 .3 4.3 .9 1.4 .6 1.8 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7 .5 1.4 .8 2.8 .8 4.3l0 101 24.5-25.9c1-1.1 2.2-2 3.6-2.6 1.3-.6 2.8-.9 4.3-1 1.5-.1 2.9 .2 4.3 .7s2.7 1.3 3.8 2.4c1 1 1.9 2.2 2.5 3.6 .6 1.3 1 2.8 1 4.3s-.2 3-.7 4.3c-.6 1.4-1.4 2.6-2.4 3.7l-44 46.6c-1.1 1.1-2.3 2-3.7 2.6-1.5 .6-3 .9-5.4 .9-.6 0-2.2-.3-3.6-.9s-2.7-1.5-3.7-2.6l-44.1-46.6c-2-2.2-3.1-5.1-3-8.1 0-3 1.3-6.7 3.5-7.9 2.2-2.1 5.1-3.2 8.1-3.1 3 .1 5.8 1.3 7.9 3.5l24.5 26 0-89.5c-56.4 2.8-109.8 25.8-150.5 65-40.6 39.1-65.7 91.7-70.6 147.9S34.4 348.1 67.7 393.7c32.4 45.5 82 77.5 137 89.9 2.9 .7 5.5 2.5 7.1 5zM171.4 126.1c-.8 1.3-1.9 2.4-3.1 3.2-20.5 13.9-37.2 32.6-48.8 54.5s-17.7 46.3-17.7 71.1 6.1 49.2 17.7 70.2c11.6 22.8 28.3 41.5 48.8 55.4 2.5 1.7 4.2 4.3 4.7 7.3 .6 2.9-.9 6-1.7 8.4-1.7 2.5-5.2 4.2-7.3 3.9-2.9 1.4-6 .8-8.4-.9-23.6-16-42.8-37.5-56.1-62.7-13.3-25.1-20.3-53.1-20.3-81.6 0-28.4 7-56.5 20.3-81.6 13.3-25.2 32.5-46.7 56.1-62.7 1.2-.8 2.6-1.4 4-1.8 1.5-.3 3-.3 4.5 0 1.4 .2 2.8 .8 4.1 1.6s2.3 1.9 3.2 3.1c.8 1.2 1.4 2.6 1.7 4.1s.3 3 0 4.4c-.3 1.5-.8 2.9-1.7 4.1zM340.9 383.5c.8-1.2 1.9-2.3 2.2-3.1l0-.1c21.3-14 38-32.7 49.6-54.6 11.5-21.8 17.5-46.2 17.5-70.9s-6-49.1-17.5-71c-11.6-22.7-28.3-40.5-49.6-54.5-.3-.8-1.4-1.9-2.2-3.1-.8-1.3-1.4-2.7-1.6-4.1-1.2-1.5-.3-3 0-4.4 .3-1.5 .9-2.9 1.7-4.1 .9-1.2 1.1-2.3 3.2-3.1 1.2-.8 2.6-1.3 4.1-1.6s2.9-.3 4.4 0 2.8 .9 4.1 1.8c23.4 16 42.7 37.5 55.9 62.6 13.3 25.1 19.4 53.1 19.4 81.5 0 28.5-6.1 56.5-19.4 81.6-13.2 25.1-32.5 46.6-55.9 62.6-1.3 .9-2.6 1.5-4.1 1.8s-2.9 .3-4.4 0-2.9-1.7-4.1-1.6c-2.1-.8-2.3-1.9-3.2-3.1-.8-1.2-1.4-2.6-1.7-4.1-.3-1.4-1.2-2.9 0-4.4 .2-1.4 .8-2.8 1.6-4.1zM312.3 6.3c56.2 12.7 106.4 44 142.7 88.7 30.4 37.6 49.6 83 55.3 131 5.6 48-2.4 96.7-23.2 140.3-20.9 43.6-53.6 80.5-94.5 106.3-40.9 25.7-88.2 39.4-136.6 39.4-1.5 0-2.9-.3-4.3-.9-1.4-.5-2.6-1.4-3.7-2.4-1.9-1.1-1.9-2.3-2.4-3.7-.6-1.4-.9-2.8-.9-4.3l0-99.2-24.5 26c-2.1 2.2-4.9 2.6-7.9 3.6-3 .1-5.9-1.1-8.1-4-2.2-1.2-3.5-4-3.5-7-.1-3 1-5.9 3-8.1l44.1-46.6c1.3-2.2 5.1-3.4 7.3-3.4 4 0 6.9 1.2 9.1 3.4l44 46.6c2.1 2.2 3.2 5.1 3.1 8.1s-1.4 5.8-3.5 7c-2.2 2.9-5.1 4.1-8.1 4-3-1-5.9-1.4-7.9-3.6l-24.5-25.9 0 87.5c56.4-2.8 109.8-25.8 150.5-65 40.7-40 65.8-91.7 70.7-147.9 4.8-57.1-10.8-112.3-44.1-157.9-33.3-45.6-82-77.5-137-89.9-1.5-.3-2.8-.9-4.1-1.8-1.2-.9-2.2-1.9-3-3.2-.8-1.2-2.2-2.6-1.6-4.1-.2-1.5-.2-3 .1-4.4 .4-1.4 1-2.8 1.8-4 .9-1.2 2-2.2 3.2-3 1.3-.8 2.7-1.3 4.1-1.6 1.5-.3 3-.2 4.4 .1zm40.8 249.8c0 31.4-17.5 61.1-49.3 83.5-2.1 1.5-4.8 2.3-7.4 2-2.7-.2-5.2-1.3-7-3.2l-70.1-69.8c-2.2-2.1-4.2-5-3.4-8 0-3 1.2-5.9 3.3-8 2.2-2.1 5-3.3 8-3.3s5.9 1.2 8 3.3l63.1 62.8c20.8-17.1 32.2-37.9 32.2-59.3 0-23.9-14.1-47-39.7-65.1-2.5-1.7-4.1-4.3-4.6-7.3-.5-2.9 .1-6 1.9-8.4 1.7-2.5 4.3-4.1 7.3-4.6 2.9-.5 6 .1 8.4 1.9 31.8 22.4 49.3 52.1 49.3 83.5zM216.7 341.5c-3 .5-6-.2-8.5-1.9-31.7-22.4-50.1-52.1-50.1-83.5s18.4-61.1 50.1-83.5c2.2-1.6 4.9-2.3 7.5-2.1 2.7 .3 5.1 1.4 7 3.3l70.1 69.8c2.1 2.1 3.3 5 3.3 8s-2 5.8-3.3 8c-2.1 2.1-5 3.3-7.9 3.3-3 0-6.8-1.2-8-3.3l-63.1-62.9c-20.9 17.3-32.2 38-32.2 59.4 0 23 14.1 47 39.7 65 2.4 1.8 4.1 4.4 4.6 7.4 .5 2.9-.2 5.9-1.9 8.4-1.7 2.4-4.4 4.1-7.3 4.6z"],"creative-commons-by":[512,512,[],"f4e7","M322.9 194.4l0 101.4-28.3 0 0 120.5-77.1 0 0-120.4-28.3 0 0-101.5c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7l101.9 0c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-32.5-64.5a34.5 34.5 0 1 1 -69 .8 34.5 34.5 0 1 1 69-.8zM255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3z"],umbraco:[512,512,[],"f8e8","M256.3 8a248 248 0 1 0 -.7 496 248 248 0 1 0 .7-496zm145 266c-.8 27.1-5.4 48.8-14 65s-23.1 27.9-43.5 35c-20.4 7.1-48.9 10.6-85.4 10.5l-4.6 0c-36.5 .1-65-3.3-85.4-10.5s-34.9-18.8-43.5-35c-8.6-16.2-13.2-37.9-14-65-.7-10.2-.7-20.5 0-30.7 .4-14.7 1.6-29.3 3.6-43.9 1.9-13.4 3.6-22.6 5.4-32 1-4.9 1.3-6.4 1.8-8.4 .3-1.1 .9-2.1 1.8-2.8s2-1.1 3.1-1.1l.7 0 32 5c1.2 .2 2.2 .8 3 1.7s1.2 2.1 1.2 3.3c0 .3 0 .5 0 .8l-1.7 8.8c-1.6 8.8-3.2 20.1-4.8 33.7-1.7 14-2.5 28.1-2.6 42.2-.2 27 2.5 46.9 8.1 59.8 2.8 6.4 7.2 12 12.6 16.4s11.9 7.4 18.7 8.8c18.8 4 38.1 5.7 57.3 5.1l10.3 0c19.2 .6 38.5-1.2 57.3-5.2 6.8-1.4 13.2-4.5 18.6-8.8s9.7-10 12.5-16.4c5.7-12.9 8.4-32.9 8.1-59.8-.1-14.1-1-28.2-2.6-42.1-1.7-13.6-3.3-24.8-4.9-33.7l-1.7-8.8c0-.3 0-.5 0-.8 0-1.2 .4-2.4 1.2-3.3s1.8-1.5 3-1.7l32-5 .8 0c1.1 0 2.2 .4 3.1 1.1s1.5 1.7 1.8 2.8c.6 2 .8 3.6 1.8 8.4 1.8 9.6 3.5 18.8 5.4 32 2 14.6 3.2 29.2 3.6 43.9 .7 10.2 .7 20.5 0 30.7l0 0z"],hooli:[640,512,[],"f427","M144.5 352l38.3 .8c-13.2-4.6-26-10.2-38.3-16.8l0 16zm57.7-5.3l0 5.3-19.4 .8c36.5 12.5 69.9 14.2 94.7 7.2-19.9 .2-45.8-2.6-75.3-13.3zM611.1 231.5c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM582.1 352l57.9 0 0-110.5-57.9 0 0 110.5zm-73.7 0l57.9 0 0-195.3-57.9 27.3 0 168zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5l0-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9l0 40.4zM331.4 232.6c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1l0-20.7-22.5 10.6c-54.4-22.1-89-18.2-97.3 .1 0 0-24.9 32.8 61.8 110.8l0 73.7 57.9 0 0-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4l0-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6 0-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15l0 48.7c18 12.2 37.3 22.1 57.7 29.6l0-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9l0-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184l0 63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1L65.2 184zM291.7 304.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5l0-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9l0 40.4z"],"square-git":[448,512,["git-square"],"f1d2","M120.8 335.5c-5.9-.4-12.6-.8-20.2-1.3-3.3 4.1-6.6 8.4-6.6 13.5 0 18.5 65.5 18.5 65.5-1.5 0-8.3-7.4-8.7-38.8-10.7l.1 0zm7.8-117.9c-32.3 0-33.7 44.5-.7 44.5 32.5 0 31.7-44.5 .7-44.5zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM243.9 172.2c-14.5 0-22.9-8.4-22.9-22.9s8.4-22.3 22.9-22.3c14.7 0 23.1 7.8 23.1 22.3s-8.4 22.9-23.1 22.9zM149.6 195l49.5 0 0 21.6-23.4 1.8c4.6 5.8 9.4 14 9.4 25.7 0 48.7-57.2 47.2-74.2 42.4l-8.4 13.4c5 .3 9.8 .6 14.3 .8 56.3 3.2 80.5 4.6 80.5 38.5 0 29.2-25.7 45.7-69.9 45.7-46 0-63.5-11.6-63.5-31.7 0-11.4 5.1-17.5 14-25.9-8.4-3.5-11.2-9.9-11.2-16.8 0-9.6 7.4-16.3 23-30.6l.2-.2c-12.4-6.1-21.8-19.3-21.8-38.1 0-51.6 56.6-53.3 81.6-46.8l-.1 .2zM270.5 303.1l13 1.8 0 20.1-72.4 0 0-20.1c2.7-.4 5-.7 6.9-.9 9.9-1.2 10.1-1.3 10.1-6l0-74.7c0-4.4-.9-4.7-10.1-7.8-1.9-.7-4.2-1.4-6.9-2.4l2.8-20.6 52.6 0 0 105.5c0 4.1 .2 4.6 4.1 5.1l-.1 0zm106.6-10.4L384 315c-10.9 5.4-26.9 10.2-41.4 10.2-30.2 0-41.7-12.2-41.7-40.9l0-66.6c0-.8 0-1.4-.2-1.8-.8-1.2-4.2-.7-19.6-.7l0-22.6c22.3-2.5 31.2-13.7 34-41.4l24.2 0c0 33.3-.6 38 .7 38.6 .3 .1 .7 0 1.3 0l35.8 0 0 25.4-37.8 0 0 61.6c-.2 6.3-.9 30.4 37.9 15.9l-.1 0z"],odnoklassniki:[320,512,[],"f263","M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9S255 269.2 255 269.2c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zm14.6-204.7a129.7 129.7 0 1 1 -259.4 .4 129.7 129.7 0 1 1 259.4-.4zm-193.4 .4a63.7 63.7 0 1 0 127.4-.4 63.7 63.7 0 1 0 -127.4 .4z"],drupal:[384,512,[],"f1a9","M272.3 108.1C236.5 72.5 202.5 38.4 192.4 0 182.4 38.4 148.1 72.5 112.4 108.1 58.8 161.7-1.9 222.4-1.9 313.4-4.3 420.7 80.8 509.6 188.1 512s196.2-82.8 198.5-190.1c.1-2.8 .1-5.6 0-8.5 0-91.1-60.8-151.7-114.3-205.3zM98 331.1c-5.9 7.5-11 15.6-15.2 24.2-.3 .7-.8 1.3-1.3 1.8s-1.2 .8-2 1l-1.7 0c-4.3 0-9.2-8.5-9.2-8.5-1.3-2-2.5-4.2-3.7-6.4l-.8-1.8c-11.2-25.7-1.5-62.3-1.5-62.3 4.8-17.8 12.7-34.7 23.2-49.9 6.4-9.6 13.5-18.9 21-27.7l9.2 9.2 43.5 44.4c.8 .9 1.3 2.1 1.3 3.3s-.5 2.4-1.3 3.3L114.1 312.3 98 331.1zm96.6 127.3c-12.9-.1-25.6-3.9-36.4-11s-19.4-17.1-24.6-28.9-7-24.9-5-37.7 7.6-24.7 16.2-34.4c14.2-16.9 31.5-33.5 50.3-55.3 22.3 23.8 36.9 40.1 51.2 58 1.1 1.4 2.1 2.9 3 4.4 7.8 11.1 12 24.4 12 38 0 8.8-1.7 17.4-5 25.5s-8.2 15.5-14.4 21.7-13.5 11.1-21.6 14.5-16.7 5.1-25.5 5.1l-.2 0zM320.7 351.6c-.4 1.4-1.2 2.6-2.3 3.6s-2.4 1.6-3.8 1.8l-1.3 0c-2.6-.9-4.9-2.7-6.3-5.1-11.6-17.5-24.9-33.9-39.5-49l-17.8-18.4-59.1-61.3c-12.4-11.5-24.2-23.6-35.4-36.3-.3-.5-.6-.9-.9-1.4-2-2.8-3.6-5.9-4.7-9.2l0-1.8c-.8-5-.4-10.1 1.2-15s4.4-9.2 8-12.7c11.4-11.4 23-23 33.8-34.9 12 13.3 24.8 26 37.4 38.6 25.8 24 49.1 50.5 69.6 79.1 17.3 24.5 26.7 53.8 27 83.8-.1 12.9-2.2 25.8-6 38.2z"],"blogger-b":[448,512,[],"f37d","M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8 .6-108.4 10-43.5 17.2-74.7 53.8-86.1 100.6-2.1 8.8-2.6 22.9-3.1 103.9-.6 101.5 .1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zM124.5 159.1c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4 .1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5 .2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zM316.3 358.9l-14.9 2.4-77.5 .9c-68.1 .8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z"],invision:[448,512,[],"f7b0","M407.4 32L40.6 32C18.2 32 0 50.2 0 72.6L0 439.4C0 461.8 18.2 480 40.6 480l366.8 0c22.4 0 40.6-18.2 40.6-40.6l0-366.8C448 50.2 429.8 32 407.4 32zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9 .7l-25.8 103.3-45.1 0 8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3 .1-14.3 .9-14 23-104.1l-31.8 0 9.7-35.6 76.4 0c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4-32.3 0 9.7-35.6 68.8 0-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z"],"facebook-f":[320,512,[],"f39e","M80 299.3l0 212.7 116 0 0-212.7 86.5 0 18-97.8-104.5 0 0-34.6c0-51.7 20.3-71.5 72.7-71.5 16.3 0 29.4 .4 37 1.2l0-88.7C291.4 4 256.4 0 236.2 0 129.3 0 80 50.5 80 159.4l0 42.1-66 0 0 97.8 66 0z"],centos:[448,512,[],"f789","M289.6 97.5l31.6 31.7-76.3 76.5 0-108.2 44.7 0zM127.2 129.2l76.3 76.5 0-108.2-44.7 0-31.6 31.7zm41.5-41.6l44.7 0 0 127.9 10.8 10.8 10.8-10.8 0-127.9 44.7 0-55.5-55.6-55.5 55.6zm26.2 168.1l-10.8-10.8-128.6 0 0-44.8-55.5 55.6 55.5 55.6 0-44.8 128.6 0 10.8-10.8zM274.2 235l107.9 0 0-44.8-31.6-31.7-76.3 76.5zm173.3 20.7l-55.5-55.6 0 44.8-127.7 0-10.8 10.8 10.8 10.8 127.7 0 0 44.8 55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5 15.3 0 0-15.3-90.3-90.5 31.6-31.7-79.4 0 0 78.7zM382.1 97.5l-78.5 0 31.6 31.7-90.3 90.5 0 15.3 15.3 0 90.3-90.5 31.6 31.7 0-78.7zM203.5 413.9l0-108.1-76.3 76.5 31.6 31.7 44.7 0 0-.1zM65.4 235l108.8 0-76.3-76.5-32.5 31.7 0 44.8zM382.1 335.2l-31.6 31.7-90.3-90.5-15.3 0 0 15.3 90.3 90.5-31.6 31.7 78.5 0 0-78.7zm0-58.8l-107.9 0 76.3 76.5 31.6-31.7 0-44.8zM321.2 382.2l-76.3-76.5 0 108.1 44.7 0 31.6-31.6zM97.9 352.9l76.3-76.5-108.8 0 0 44.8 32.5 31.7zm181.8 70.9l-44.7 0 0-127.9-10.8-10.8-10.8 10.8 0 127.9-44.7 0 55.5 55.6 55.5-55.6zM113.2 382.2l90.3-90.5 0-15.3-15.3 0-90.3 90.5-32.5-31.7 0 78.7 79.4 0-31.6-31.7z"],"cc-amazon-pay":[576,512,[],"f42d","M124.7 201.8c.1-11.8 0-23.5 0-35.3l0-35.3c0-1.3 .4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5 .9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5 .9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8 .1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM368.5 103.9c.4 1.7 .9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4 .2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9 .9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3 .1 4.6 1.6 6.7 6.2 7.5 4.7 .8 9.4 1.6 14.2 1.7 14.3 .3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5 .6-1.5 1.1-3 1.3-4.6 .4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5 .4-.3 .8-.6 1.4-1 .5 3.2 .9 6.2 1.5 9.2 .5 2.6 2.1 4.3 4.5 4.4 4.6 .1 9.1 .1 13.7 0 2.3-.1 3.8-1.6 4-3.9 .1-.8 .1-1.6 .1-2.3l0-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1l-10 0c-.8 .1-1.6 .3-2.5 .3-8.2 .4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5 .1 2.8-.1 5.6 0 8.3 .1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4 .8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7 .3 6.9 .2 13.9 .3 20.8 0 .4-.1 .7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9 .1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9l0 175.3c0 .8 0 1.7 .1 2.5 .2 2.5 1.7 4.1 4.1 4.2 5.9 .1 11.8 .1 17.7 0 2.5 0 4-1.7 4.1-4.1 .1-.8 .1-1.7 .1-2.5l0-60.7c.9 .7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2l-7 0c-1.2 .2-2.4 .3-3.6 .5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6l-9.7 0c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6 .7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1l0 1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4 .7 0 1.4 .2 2.1 .3l17.7 0c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zM544 311.3c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2 .8-2.4 1.8-3.1 3-.6 .9-.7 2.3-.5 3.4 .3 1.3 1.7 1.6 3 1.5 .6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1 .3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7 .3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3 .8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6 .7-3 1.2-6.1 1.7-9.1 .2-4.7 .2-9.6 .2-14.5z"],ebay:[640,512,[],"f4f4","M606.5 189.5l-54.8 109.9-54.9-109.9-37.5 0 10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1l33.7 0c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33l0 3.4c-12.7 0-28 .1-41.7 .4-42.4 .9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2l0-80.6-32.1 0 0 169.5c0 10.3-.6 22.9-1.1 33.1l31.5 0c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6 .3 13.3 1.1 20.2l29.8 0c-.7-8.2-1-17.5-1-26.8l0-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1 35.9 0 99.2-194.8-34 0zM244.2 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6l0 3.3zM33.2 268.1l128.8 0 0-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1l-33.1 0c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4l-94.4 0c6.9-56.6 92.1-54.7 94.4 0z"],contao:[512,512,[],"f26d","M45.4 305c14.4 67.1 26.4 129 68.2 175L34 480c-18.7 0-34-15.2-34-34L0 66C0 47.3 15.2 32 34 32l57.7 0c-13.8 12.6-26.1 27.2-36.9 43.6-45.4 70-27 146.8-9.4 229.4zM478 32l-90.2 0c21.4 21.4 39.2 49.5 52.7 84.1L303.4 145.4c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6l52.1 0c18.7 0 34-15.2 34-34L512 66c0-18.8-15.2-34-34-34z"],ello:[512,512,[],"f5f1","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM399.8 293.2C383.3 358.5 323.8 404.8 256 404.8S128.7 358.5 112.2 293.2c-1.6-7.4 2.5-15.7 9.9-17.4s15.7 2.5 17.4 9.9c14 52.9 62 90.1 116.6 90.1s102.5-37.2 116.6-90.1c1.7-7.4 9.9-12.4 17.4-9.9 7.4 1.7 12.4 9.9 9.9 17.4z"],sistrix:[448,512,[],"f3ee","M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9-91.9-.1-166.6 75.7-166.6 168.8S74.7 369.8 166.5 369.8c39.8 0 76.3-14.2 105-37.9L417.5 480 448 449zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71 294.6 129.3 294.6 200.9 237.2 330.8 166.5 330.8z"],periscope:[448,512,[],"f3da","M370 63.6c-38.6-41-89.5-63.6-143.4-63.6-114.7 0-208.1 96.2-208.1 214.4 0 75.1 57.8 159.8 82.7 192.7 36.6 48.4 91.4 104.9 125.4 104.9 41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3 .1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8l0 .4c0 24.5 20.1 44.4 44.8 44.4s44.8-19.9 44.8-44.4c0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z"],expeditedssl:[512,512,[],"f23e","M256 43.4a212.6 212.6 0 1 0 0 425.2 212.6 212.6 0 1 0 0-425.2zM158.6 176.3c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4l0 26.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-26.6c0-82.1-124-82.1-124 0l0 26.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-26.6 .2 0zM397.7 380c0 9.7-8 17.7-17.7 17.7l-248 0c-9.7 0-17.7-8-17.7-17.7l0-141.7c0-9.7 8-17.7 17.7-17.7l248 0c9.7 0 17.7 8 17.7 17.7l0 141.7zm-248-137.3l0 132.9c0 2.5-1.9 4.4-4.4 4.4l-8.9 0c-2.5 0-4.4-1.9-4.4-4.4l0-132.9c0-2.5 1.9-4.4 4.4-4.4l8.9 0c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4l0 31.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 17.7a230.3 230.3 0 1 1 0 460.6 230.3 230.3 0 1 1 0-460.6z"],napster:[512,512,[],"f3d2","M306.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5l100.7 0zm44-199.6c20-16.9 43.6-29.2 69.6-36.2l0 161.2c0 219.4-328 217.6-328 .3l0-161.6c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zM141.5 115.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9 .1-6.3-4-13.9-8.2-20.4-11.4zM51.8 93.2l0 69.3c-58.4 36.5-58.4 121.1 .1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7 .2-158.2l0-69.2c-17.3 .5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5 .1-16.3-4.4-33.1-7-50.6-7.5zM267.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zM131.7 296.7c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zM300.8 420.1c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z"],delicious:[448,512,[],"f1a5","M446.6 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5l-352 0C21.6 32 .1 53.5 .1 80l0 352c0 4.1 .5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5l352 0c26.5 0 48-21.5 48-48l0-352.1c-.1-4.1-.6-8.2-1.6-12zM416.1 432c0 8.8-7.2 16-16 16l-176 0 0-192-192 0 0-176c0-8.8 7.2-16 16-16l176 0 0 192 192 0 0 176z"],guilded:[448,512,[],"e07e","M443.9 64L5 64c0 103.3 22.2 180.1 43.4 222.4 64.1 127.8 176 161.6 177.3 161.6 55.7-20.5 104.5-56.3 140.6-103.5 25.9-33.9 53.1-87.2 65.9-145.8l-259.9 0c4.1 36.4 22.2 67.9 45.1 86.9l88.6 0c-17 28.2-48.2 54.4-80.5 69.5-31.2-13.3-69.1-46.5-96.5-98.4-26.7-53.8-27.1-105.9-27.1-105.9l336.1 0c4-28.8 5.9-57.9 5.9-86.9z"],xbox:[512,512,[],"f412","M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39-27.9-18.2-34.2-25.7-34.2-40.6 0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5c-16.9-80-67.5-130.3-74.6-130.3-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8 42.4 53.3 102.2 139.4 122.9 202.3 6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43c47.7-2.5 109.7 34.5 114.3 35.4 .7 .1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z"],untappd:[640,512,[],"f405","M401.5 49.9C321.7 210 316.9 202.4 313.6 223.1l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.8 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4L169.1 198.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1 .6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4 .9-2.5 4.4-2.3 7.4 .1 2.8-2.3 3.6-6.5 6.1zM230.3 36.4c3.4 .9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3 .5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5 .1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6 .3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620.2 406.7L471.4 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6 .5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4L494.8 497.2c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z"],"google-plus-g":[640,512,[],"f0d5","M386.3 228.5c1.8 9.7 3.1 19.4 3.1 32 0 109.8-73.6 187.5-184.4 187.5-106.1 0-192-85.9-192-192S98.9 64 205 64c51.9 0 95.1 18.9 128.6 50.3l-52.1 50c-14.1-13.6-39-29.6-76.5-29.6-65.5 0-118.9 54.2-118.9 121.3S139.5 377.3 205 377.3c76 0 104.5-54.7 109-82.8l-109 0 0-66 181.3 0 0 0zm185.4 6.4l0-55.7-56 0 0 55.7-55.7 0 0 56 55.7 0 0 55.7 56 0 0-55.7 55.7 0 0-56-55.7 0z"],"github-alt":[512,512,[],"f113","M202.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM496 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3l48.2 0c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z"],"get-pocket":[448,512,[],"f265","M407.6 64l-367 0C18.5 64 0 82.5 0 104.6L0 239.8C0 364.5 99.7 464 224.2 464 348.2 464 448 364.5 448 239.8l0-135.2C448 82.2 430.3 64 407.6 64zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0-113.7-108.9-114.9-105.1-114.9-123.2 0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3s30.7 13.8 30.7 30.7c0 17.8-2.9 15.7-114.8 123.2z"],glide:[448,512,[],"f2a5","M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM384 267c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8 .1 4.1-1.7 4.1-3.5z"],bity:[512,512,[],"f37a","M86.5 67.2c95.4-89.2 246.1-91.2 343.1 3.8 14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30-112.2-33.9-175.8-149.7-147.5-261 5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8s-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0l0 71.6c0 69.3 60.7 90.9 118 90.1 57.3 .8 118-20.8 118-90.1l0-71.6c0-19.6-32.5-21.8-32.5 0z"],wpexplorer:[512,512,[],"f2de","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm480 0a224 224 0 1 0 -448 0 224 224 0 1 0 448 0zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94-14.6 0-50-100-48.9 100-14 0 51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zM259.1 177.4l68.6 29.4-29.4 68.3-68.3-29.1 29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z"],megaport:[512,512,[],"f5a3","M222.5 209.6l0 66.2 33.5 33.5 33.3-33.3 0-66.4-33.4-33.4-33.4 33.4zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM401.1 422.4l-26.1 19.2-26-19.2 0-65.5-33.4-33.4-33.4 33.4 0 65.5-26.2 19.2-26.1-19.2 0-65.5-33.4-33.4-33.5 33.4 0 65.5-26.1 19.2-26.1-19.2 0-87 59.5-59.5 0-87.9 59.5-59.5 0-75.6 26.1-19.2 26.1 19.2 0 75.6 59.5 59.5 0 87.6 59.7 59.7 0 87.1-.1 0z"],mdb:[576,512,[],"f8ca","M17.4 160.4l-10.4 191.6 43.9 0 5.6-79.8 27.9 79.8 44.7 0 25.5-77.4 4.8 77.4 45.5 0-12.8-191.6-45.5 0-40.7 117.3-42.3-117.3-46.3 0zm281 0l-47.9 0 0 191.6 47.9 0s95 .8 94.2-95.8c-.8-94.2-94.2-95.8-94.2-95.8l0 0zm-1.2 146.5l0-102.1s46 4.3 46.8 50.6-46.8 51.5-46.8 51.5l0 0zm238.3-74.2c7.2-11.4 10-25 8-38.3-5.3-35.8-55.1-34.3-55.1-34.3l-51.9 0 0 191.6 45.5 0s87 4.8 87-63.8c0-43.1-33.5-55.1-33.5-55.1l0 0zm-51.9-31.9s13.6-1.6 16 9.6c1.4 6.7-4 12-4 12l-12 0 0-21.6zm-.1 109.5l.1-24.9 0-18.2 .1 0s41.6-4.7 41.2 22.4c-.3 25.7-41.3 20.7-41.3 20.7l0 0z"],page4:[512,512,[],"f3d7","M256 504C119 504 8 393 8 256S119 8 256 8c20.9 0 41.3 2.6 60.7 7.5L50.3 392 256 392 256 504zm0-143.6l0-213.6-149.4 213.6 149.4 0zM352 392l0 92.7c45.7-19.2 84.5-51.7 111.4-92.7L352 392zm57.4-138.2l-21.2 8.4 21.2 8.3 0-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9l0 7.7 16.2 0 0-10c0-5.9-2.3-10.6-8.2-10.6zM504 256c0 37.3-8.2 72.7-23 104.4l-129 0 0-333.1C441.3 64.8 504 153.1 504 256zM368.4 143.6l68.2 0 0-47.6-13.9 0 0 32.6-13.9 0 0-29.6-13.9 0 0 29.6-12.7 0 0-32.6-13.9 0 0 47.6 .1 0zm68.1 185.3l-26.5 0 0-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9l0 25.3 68.2 0 0-15-.1 0zm0-103l-68.2 29.7 0 12.4 68.2 29.5 0-16.6-14.4-5.7 0-26.5 14.4-5.9 0-16.9zm-4.8-68.5l-35.6 0 0 26.6 13.9 0 0-12.2 11 0c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z"],"the-red-yeti":[512,512,[],"f69d","M488.7 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9-9.1 4.4-17.6 10-25.3 16.5-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5 .5c-22-7.7-45.1-12.2-68.4-13.3-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2-1.8-.5c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27-3.3 8.1-3.5 17.1-.5 25.3 3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0l-3.7 0 33 14.3c-20.2 18.9-36.1 41.9-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8-10.9 12.2-20.2 25.8-27.8 40.3-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7 .7 3.4 1.2 5.2 0 25.5 .4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5c-1.8-11.7-4.8-23.1-8.9-34.2-1.5-4.8-3.8-9.3-6.8-13.3l0 0zM398.5 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4c-9 .5-18 .5-27 0 12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9c-1.3-5-1.8-10.1-1.7-15.2 5.4 .5 8.8 3.4 9.3 10.1 .5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8 .9-.7 14.8l-2.5 0c-1.2-8.2-4.1-16-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2l20.3-11.8zm-267.4 42l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5 .5 20.9 1.2 5.2 1.7 10.6 2.5 16 2.5l.5-1.7-8.4-35.8 13.5 29c2.8-4.4 4.8-9.2 5.9-14.3 1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3c-2.6 8.3-4.7 16.8-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5c21.9-13.5 45.5-19.4 71.3-18.9l21.1 .5c-11.8 13.5-27.8 21.9-48.5 24.8-7.7 1.4-15.6 2.4-23.4 2.9l-.2-.5-2.5-1.2c-4.8-1-9.7-.3-14 2-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7 .5 1.2c2 .2 3.9 .5 6.2 .7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4 1.2 0c6.1-8.2 15.2-13.6 25.3-15.2l0-3c6.4 .5 13 1 19.4 1.2 6.4 0 8.4 .5 5.4 1.2 7.2 4 14.1 8.6 20.7 13.5 13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6 0 9.5-1 19-3 28.3-3.5 15.9-8.9 31.3-16 46l2.5 .5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2 .2-.2 .2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.3-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1l10.6-8.4c-8.8-3-18.2-3-28.3 .5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zM368 473.1c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3 11.1 9.2 22.9 17.5 35.4 24.8 3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1 8.7 7.3 15.8 16.4 20.7 26.6-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2 .7 89.5zM483.3 258.7l-2.5 .5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2-1.2 0-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2c-31.2 4.7-63 2.5-93.2-6.4-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4L29.3 284.8 7 307.1c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2 1.2-.7 2.4-1.3 3.7-1.7 .6-3.2 .4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7 .5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6l0-.5 1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8 0-2-5.4-4.2 10.1 0 5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5c11.1 .4 22.1 1.8 33 4.2l-23.6 2.5-1.2 3 26.6 23.1c9.9 9.9 18.9 20.6 27 32-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5-8.9-12.8zm-6.1-71.3l-3.9 13-14.3-11.8 18.2-1.2zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2c8.3 1.3 16.9 .4 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7c-3.5-5.7-8.4-10.5-14.3-13.8l0 0zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6l0-4.7-1.2 .5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5 .5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6 .3 9.3-1.1 9.3-14.8l-.5 0c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2 .5 1.1 1.3 2 2.2 2.8s2 1.2 3.2 1.4l0 0zm40.1-50.1l-2.5 .5 .5 3c9.1-.5 18.1 1.5 26.1 5.9-2.5-5.5-10-14.3-28.3-14.3l.5 2.5 3.7 2.4zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7c8.4-7.2 13.7-17.3 14.8-28.3 1.7-16-1.2-29.5-8.8-41.3l13-7.6c0-.3 0-.6-.1-.9s-.2-.6-.4-.8c-2.2-.9-4.6-1.2-7-.9s-4.6 1.2-6.5 2.6c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5-1.9 7.7-2.9 15.6-2.9 23.6-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3 2.5 8.2 3.5 16.8 3 25.3-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6-3.8 .4-7.6 .2-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9 .5 .5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6-1.7 11.2-1.2 22.7 1.7 33.7 .1 .5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2 .5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6l2.5 0-11.8-7.6-7.1 .5c-5.9 1.2-12.3 4.2-19.4 8.4l3.1-6.5z"],jira:[512,512,[],"f7b1","M498.5 241.7c-72.9-72.7-169.4-169.9-241.5-241.7-165.5 164.9-242.5 241.7-242.5 241.7-7.9 7.9-7.9 20.7 0 28.7 132.8 132.3 61.8 61.5 242.5 241.6 379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zM257 331.7l-76-75.7 76-75.7 76 75.7-76 75.7z"],fedex:[640,512,[],"f797","M586 284.5l53.3-59.9-62.4 0-21.7 24.8-22.5-24.8-118.7 0 0-16 56.1 0 0-48.1-151.2 0 0 75.5-.5 0c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14l0-24.2-54.8 0 0-26.2 60 0 0-41.1-109 0 0 184.4 49 0 0-77.5 48.9 0c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7l-42 0c-14.7 20.9-45.8 8.9-45.8-14.6l85.5 0c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6l.5 0 0 11.9 212.2 0 22.1-25 22.3 25 64.4 0-54-60.5zM139.3 267.9c6.1-26.3 41.7-25.6 46.5 0l-46.5 0zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1l-94.4 0 0-166.5 95 0 0 30.2-56.1 0 0 33.9 55.5 0 0 28.1-56.1 0 0 44.7 56.1 0 0 29.6zm-45.9-39.8l0-24.4 56.1 0 0-44 50.7 57-50.7 57 0-45.6-56.1 0zm138.6 10.3l-26.1 29.5-38.1 0 45.6-51.2-45.6-51.2 39.7 0 26.6 29.3 25.6-29.3 38.5 0-45.4 51 46 51.4-40.5 0-26.3-29.5z"],evernote:[384,512,[],"f839","M121.1 132.2c1.6 22.3-17.6 21.6-21.6 21.6-68.9 0-73.6-1-83.6 3.3-.6 .2-.7 0-.4-.4L124.1 46.4c.4-.4 .6-.2 .4 .4-4.4 10-3.4 15.1-3.4 85.4zm79 308c-14.7-37.1 13-76.9 52.5-76.6 17.5 0 22.6 23.2 7.9 31.4-6.2 3.3-24.9 1.7-25.1 19.2 0 17.1 19.7 25 31.2 24.9 6 0 11.9-1.2 17.5-3.5s10.6-5.7 14.8-9.9 7.6-9.3 9.9-14.8 3.5-11.5 3.5-17.5l0-.1c0-11.6-7.8-47.2-47.5-55.3-7.7-1.5-65-6.3-68.4-50.5-3.7 16.9-17.4 63.5-43.1 69.1-8.7 1.9-69.7 7.6-112.9-36.8 0 0-18.6-15.2-28.2-58-3.4-15.7-9.3-39.7-11.1-62 0-18 11.1-30.4 25.1-32.2 81 0 90 2.3 101-7.8 9.8-9.2 7.8-15.5 7.8-102.8 1-8.3 7.8-30.8 53.4-24.1 6 .9 31.9 4.2 37.5 30.6L290 74.8c20.4 3.7 70.9 7 80.6 57.9 22.7 121.1 8.9 238.5 7.8 238.5-16 114.4-111.1 108.9-111.1 108.9-19-.2-54.2-9.4-67.3-39.8l0 0zM281 235.4c-1 1.9-2.2 6 .9 7 14.1 4.9 39.8 6.8 45.9 5.5 3.1-.2 3.1-4.4 2.5-6.6-3.5-21.8-40.8-26.5-49.2-5.9l0 0z"],usb:[640,512,[],"f287","M633.5 256c0 3.1-1.7 6.1-4.5 7.5L539.9 317c-1.4 .8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8l0-35.6-230.7 0c25.3 39.6 40.5 106.9 69.6 106.9l26.7 0 0-26.8c0-5 3.9-8.9 8.9-8.9l89.1 0c5 0 8.9 3.9 8.9 8.9l0 89.1c0 5-3.9 8.9-8.9 8.9l-89.1 0c-5 0-8.9-3.9-8.9-8.9l0-26.7-26.7 0c-75.4 0-81.1-142.5-124.7-142.5l-100.3 0c-8.1 30.6-35.9 53.5-69 53.5-39.3-.1-71.3-32.1-71.3-71.4s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4 40.1-89.1 58.1-82.1 108.9-82.1 7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6l-29.8 0c-29.1 0-44.3 67.4-69.6 106.9l302.1 0 0-35.6c0-3.3 1.7-6.1 4.5-7.8s6.4-1.4 8.9 .3L629 248.8c2.8 1.1 4.5 4.1 4.5 7.2z"],angrycreative:[640,512,[],"f36e","M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2-47.3 115.4-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8 12.9-120.1-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8-32.8 2-59.7-20.9-56.4-58.2 2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6 32.1 110.6 8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7c-6.7-12.4-14.4-16.6-26.3-15.8-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4L145 326.3c14.2-.9 27.5-2.1 28.8-16.1zM194.9 381l5.8-60c-5 13.5-14.7 21.1-27.9 26.6L194.9 381zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zM160.2 261.4l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8 .3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1 .6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z"],mizuni:[512,512,[],"f3cc","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM176 359.9c-31.4 10.6-58.8 27.3-80 48.2L96 136c0-22.1 17.9-40 40-40s40 17.9 40 40l0 223.9zM296 350c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1l0-214c0-22.1 17.9-40 40-40s40 17.9 40 40l0 214zm120 57.7c-21.2-20.8-48.6-37.4-80-48L336 136c0-22.1 17.9-40 40-40s40 17.9 40 40l0 271.7z"],"itch-io":[512,512,[],"f83a","M71.9 34.8C50.2 47.7 7.4 96.8 7 109.7l0 21.3c0 27.1 25.3 50.8 48.2 50.8 27.6 0 50.5-22.8 50.5-50 0 27.1 22.2 50 49.8 50s49-22.8 49-50c0 27.1 23.6 50 51.2 50l.5 0c27.6 0 51.2-22.8 51.2-50 0 27.1 21.5 50 49 50s49.8-22.8 49.8-50c0 27.1 23 50 50.5 50 23 0 48.3-23.8 48.3-50.8l0-21.3c-.4-12.9-43.2-62.1-64.9-75-67.4-2.3-114.2-2.7-184-2.7S91.1 33.1 71.9 34.8zM204.2 169.2c-22 38.4-77.9 38.7-99.8 .2-13.2 23.1-43.2 32.1-56 27.7-3.9 40.2-13.7 237.1 17.7 269.2 80 18.7 302.1 18.1 379.8 0 31.6-32.3 21.3-232 17.7-269.2-12.9 4.4-42.9-4.6-56-27.7-22 38.5-77.8 38.1-99.8-.2-7.1 12.5-23 28.9-51.8 28.9-10.4 .3-20.8-2.2-29.9-7.3s-16.7-12.6-21.9-21.6l0 0zm-41.6 53.8c16.5 0 31.1 0 49.2 19.8 29.3-3 58.9-3 88.2 0 18.2-19.7 32.8-19.7 49.2-19.7 52.3 0 65.2 77.5 83.9 144.4 17.3 62.2-5.5 63.7-34 63.7-42.1-1.6-65.5-32.2-65.5-62.8-39.3 6.4-101.9 8.8-155.6 0 0 30.6-23.3 61.2-65.5 62.8-28.4-.1-51.2-1.6-33.9-63.7 18.7-67 31.6-144.4 83.9-144.4l0-.1zM256 270.8s-44.4 40.8-52.4 55.2l29-1.2 0 25.3c0 1.5 21.3 .2 23.3 .2 11.6 .5 23.3 1 23.3-.2l0-25.3 29 1.2c-8-14.5-52.4-55.2-52.4-55.2l.1 0z"],windows:[448,512,[],"f17a","M0 93.7l183.6-25.3 0 177.4-183.6 0 0-152.1zM0 418.3l183.6 25.3 0-175.2-183.6 0 0 149.9zm203.8 28l244.2 33.7 0-211.6-244.2 0 0 177.9zm0-380.6l0 180.1 244.2 0 0-213.8-244.2 33.7z"],stumbleupon:[512,512,[],"f1a4","M502.9 266l0 69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3l0-70.2 34.3 16 51.1-15.2 0 70.6c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338l0-72 85.9 0zM278.2 207.8l34.3 16 51.1-15.2 0-35.6c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2l0 162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6l0-68.6-86 0 0 69.7c0 62 50.3 112.3 112.4 112.3 61.6 0 112.4-49.5 112.4-110.8l0-160.3c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7l0 30.9z"],google:[512,512,[],"f1a0","M500 261.8C500 403.3 403.1 504 260 504 122.8 504 12 393.2 12 256S122.8 8 260 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9c-88.3-85.2-252.5-21.2-252.5 118.2 0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9l-140.8 0 0-85.3 236.1 0c2.3 12.7 3.9 24.9 3.9 41.4z"],discord:[576,512,[],"f392","M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1 .1s-.6 .4-.8 .8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2c-41.3 7.1-81.6 19.6-119.7 37.1-.3 .1-.6 .4-.8 .7-76.2 113.8-97.1 224.9-86.9 334.5 0 .3 .1 .5 .2 .8s.3 .4 .5 .6c44.4 32.9 94 58 146.8 74.2 .4 .1 .8 .1 1.1 0s.7-.4 .9-.7c11.3-15.4 21.4-31.8 30-48.8 .1-.2 .2-.5 .2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6 .2-.9 .3-.5 .6-.7c3.1-2.3 6.2-4.7 9.1-7.1 .3-.2 .6-.4 .9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1 .7-.2 1-.2s.7 .2 .9 .4c2.9 2.4 6 4.9 9.1 7.2 .2 .2 .4 .4 .6 .7s.2 .6 .2 .9-.1 .6-.3 .9-.4 .5-.6 .6c-14.7 8.6-30 15.9-45.9 21.8-.2 .1-.5 .2-.7 .4s-.3 .4-.4 .7-.1 .5-.1 .8 .1 .5 .2 .8c8.8 17 18.8 33.3 30 48.8 .2 .3 .6 .6 .9 .7s.8 .1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2 .2-.2 .4-.4 .5-.6s.2-.5 .2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2zm195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2z"],"hacker-news":[448,512,[],"f1d4","M0 32l0 448 448 0 0-448-448 0zM21.2 229.2l-.2 0c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4zm218 53.9l0 100.9-31.4 0 0-102.7-79.8-153.3 37.3 0c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6l34.8 0-80.8 155.1z"],eleventy:[640,512,["11ty"],"e7d6","M615.3 168.5c2.3 0 4.6 .7 6.6 2.2 1.9 1.4 3.1 3.3 3.8 5 1.4 3.3 1.8 7.3 1.8 11.3 0 2.2-.3 4.9-.7 7.6l0 .4-50.9 264.9 0 0c-4 22.1-8.5 39.4-13.6 51.7-5 12.1-10.9 21.6-18.6 27l0 0c-7.5 5.3-16.9 7.7-27.6 8l-3 0c-16 0-29.3-4.2-36.9-14.8-.1-.1-.1-.1-.2-.2-.1-.2-.3-.4-.5-.6l0 0c-1.8-2.4-2.5-5.2-2.9-7.4-.5-2.8-.7-6.1-.7-9.8 0-7.3 .6-13.5 2.1-18.2 1.4-4.4 4.8-10.4 12.2-10.4l1.3 .1c.2 0 .4 .1 .5 .1 .3 .1 .6 .1 .8 .2 .6 .1 1.3 .3 2.2 .6l7.6 2.2 .1 0 7.6 2.1c.9 .2 1.7 .4 2.2 .5 .4 .1 .6 .1 .7 .1 0 0 .1 0 .2-.1 .1-.1 .4-.2 .8-.6 .9-.9 2.2-2.6 3.6-5.7 2.6-5.8 4.2-14.7 4.2-27.4 0-.7-.3-3.4-1.3-8.9-.9-5.1-2.3-12.2-4.2-21.1l-56-232.9-.1-.4 0-.3c-.4-2.7-.7-5.3-.7-7.3 0-3.7 .4-7.5 1.7-10.6 .7-1.6 1.8-3.4 3.5-4.9 1.9-1.5 4.2-2.3 6.5-2.3l34.6 0c4.6 0 8.7 1.7 11.9 5l1.3 1.5c1.2 1.6 2 3.4 2.7 5.2 .9 2.4 1.5 5.1 2 8.1l30.4 161.2 23.8-160c.8-5.8 2.2-11.4 5.1-15.1 3-3.8 7.2-5.8 12-5.8l24 0zM375.1 34.6c2.6 0 5.1 .7 7.4 2.3 2.2 1.5 3.7 3.6 4.7 5.7 1.9 4 2.5 9.1 2.5 14.5l0 111.2c0 .1 0 .2 0 .3l32.4 0c2.5 0 5 .6 7.2 2.1 2.2 1.4 3.7 3.4 4.8 5.5 2 3.9 2.6 8.8 2.6 13.9l0 15.4c0 5-.6 9.8-2.6 13.7-1.1 2-2.6 4-4.8 5.4-2.2 1.4-4.7 2-7.1 2l-32.5 0 0 145.8c0 10.8 .7 19.5 2 26.2 1.4 6.9 3.1 10.9 4.7 12.9 1.2 1.5 2.2 2.5 3.1 3.2l2.2 1.4 .1 .1 2.9 .8c1.2 .2 2.6 .3 4.3 .3l20.3 0c4.5 0 8.9 1.7 11.8 5.8 2.6 3.6 3.3 8.1 3.3 12.2l0 17.2c0 4.5-.8 9.3-3.4 13.1-3 4.2-7.5 6-12.3 6l0 0-29.1 .1c-8 0-15-.6-21.2-1.7-6.7-1.3-13.4-4.1-20.1-8.1-7.2-4.4-13-10.3-17.5-17.8-4.5-7.5-7.9-17.5-10.5-29.5-2.6-12.2-3.9-26.6-3.9-43l0-144.9-13.4 0c-2.4 0-4.9-.6-7.1-2-2.2-1.4-3.7-3.4-4.8-5.4-2-3.9-2.6-8.7-2.6-13.7l0-15.4c0-5.1 .6-10 2.6-13.9 1.1-2.1 2.6-4 4.8-5.5 2.2-1.5 4.7-2.1 7.2-2.1l13.4 0 0-.6 5.2-111.2 0-.1 .3-3.9c.5-3.8 1.3-7.4 2.7-10.3 2.1-4.2 6-7.9 11.8-7.9l28.6 0zm-268 11.7c1.8 .3 3.6 .9 5.3 2.1 2.1 1.5 3.5 3.5 4.4 5.4 1.7 3.7 2.3 8.4 2.3 13.2l0 377.8c0 6.7-.6 12.6-2.4 17.1-.9 2.3-2.3 4.7-4.4 6.5-2.3 2-5.1 3-8.1 3l-43.7 0c-3 0-5.8-1.1-8.1-3.1-2.1-1.9-3.4-4.3-4.2-6.5-1.7-4.5-2.3-10.3-2.3-17l0-315.8c-4.8 1.2-8.7 2.2-11.5 2.9-1.9 .5-3.4 .8-4.4 1.1-.5 .1-.9 .2-1.2 .3-.1 0-.3 .1-.5 .1-.1 0-.2 0-.3 .1 0 0-.2 0-.3 0 0 0-.2 0-.4 0l0 0c-.1 0-.3 0-.4 0-.1 0-.2 0-.2 0-2.2 .1-4.5-.4-6.6-1.7-2.3-1.4-3.8-3.4-4.7-5.3-1.8-3.7-2.3-8.4-2.3-13l0-27.4c0-4.4 .7-8.8 2.6-12.4 2.1-3.9 5.5-6.6 9.8-7.6l75.5-19.5c1.4-.4 2.9-.5 4.4-.5l1.8 .1zm143.8-.5c1.8 .3 3.6 .9 5.2 2.1 2.1 1.5 3.5 3.5 4.4 5.4 1.7 3.7 2.2 8.4 2.2 13.2l0 377.8c0 6.7-.6 12.6-2.4 17.1-.9 2.3-2.3 4.7-4.4 6.5-2.3 2-5.1 3-8.1 3l-43.7 0c-3 0-5.8-1.1-8.1-3.1-2.1-1.9-3.4-4.3-4.2-6.5-1.7-4.5-2.3-10.3-2.3-17l0-315.8c-4.8 1.2-8.7 2.2-11.5 2.9-1.9 .5-3.4 .8-4.4 1.1-.5 .1-.9 .2-1.2 .3-.1 0-.3 .1-.5 .1-.1 0-.2 0-.3 .1-.1 0-.2 0-.3 0 0 0-.2 0-.4 0l0 0c-.1 0-.2 0-.3 0-.1 0-.2 0-.3 0-2.2 .1-4.5-.4-6.6-1.7-2.3-1.4-3.8-3.4-4.7-5.3-1.8-3.7-2.3-8.3-2.3-13l0-27.4c0-4.4 .7-8.7 2.6-12.4 2.1-3.9 5.5-6.6 9.8-7.6l75.4-19.4c1.4-.4 2.9-.5 4.4-.5l1.8 .1z"],teamspeak:[576,512,[],"f4f9","M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5 0 .2-.1 .3-.1 .5-39.3 16.2-66.8 54.8-66.8 99.8 0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5 15.7-41.8 40.4-79.6 72.3-110.7 1.8-1.6 4-2.6 6.3-3.1 37.2-11.5 76.7-13.3 114.8-5.2 119.3 25.1 198.6 138.2 181.7 258.8-8.4 62.6-38.6 112.7-87.7 151.4-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3 40.7 4.2 81.4 2.1 120.1-12.5 94-35.5 149.3-102.3 162.9-202.5 4.8-52.6-5.8-105.4-30.8-152-70.4-131.9-234.2-181.6-366-111.2-2.4 1.4-4.5 3.1-6.3 5.2l.1 0zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3 53.2-1 123.2-29.2 161.8-97.1 39.7-69.9 37.6-139.9-6.3-207.8-36.5-55.3-89.8-82.4-156.6-86.6 1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5 2.1 15.7-1 30.3-13.6 41.8-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7 29.3 54.3c5.2 11.5 4.2 19.8-6.3 28.2-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7-2.5 2.4-3.8 5.9-3.1 9.4 2.1 11.5-2.1 19.8-12.5 25.1-2.1 1-4.2 5.2-5.2 7.3l0-.1zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1 24 5.2 41.8-6.3 44.9-30.3 1-8.4 5.2-14.6 12.5-17.7 7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5-1.4-3-2.4-6.2-3.1-9.4-3.1-14.6-2.1-15.7 11.5-18.8 8.4-3.1 15.7-6.3 21.9-12.5 3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7-6.4-11.7-13-23.6-15.7-37.1-2.1-9.4-1-17.7 8.4-24 5.2-4.2 8.4-9.4 8.4-16.7-.4-10.1-1.5-20.3-3.1-30.3-6.3-37.6-23-68.9-51.2-95-5.2-4.2-9.4-6.3-16.7-4.2l-35.6 12.7 6 3.6c6.3 3.7 12.2 7.3 17 12.1 30.3 26.1 41.8 61.6 45.9 100.2 1 8.4 0 16.7-7.3 21.9-8.4 5.2-10.4 12.5-7.3 20.9 4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6-12.5 3.1-14.6 7.3-10.4 20.9 .6 1.5 1.4 2.8 2.1 4.2 2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4-7.3 4.2-11.5 9.4-11.5 17.7 0 12.5-7.3 19.8-18.8 24-3.8 1-7.6 1.5-11.5 1l-34.5-2.1 .1 .2z"],supple:[640,512,[],"f3f9","M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7 .4 15.5 .6 23.4 .6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6 .2 23.3 .5-22.5-3.2-46.3-4.9-71-4.9-134.5 .4-243.4 52.6-243.3 116.7 .1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9S118.4 281 137.2 281c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6l0 3.9 14.2 0 0-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6l0 54.4c0 11.3-7.1 17.8-17.8 17.8s-17.8-6.5-17.8-17.7l0-54.5-15.8 0 0 55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9l0-55-15.7 0zm34.4 85.4l15.8 0 0-29.5 15.5 0c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8l-39.1 0 0 13.4 7.8 0 0 72zm15.8-43l0-29.1 12.9 0c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7l-12.6 0zm57 43l15.8 0 0-29.5 15.5 0c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8l-39.1 0 0 13.4 7.8 0 0 72zm15.7-43l0-29.1 12.9 0c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7l-12.6 0zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2l37.6 0c5.8 0 8.2-2.4 8.2-8.2l0-13-14.3 0 0 5.2c0 1.7-1 2.6-2.6 2.6l-18.6 0c-1.7 0-2.6-1-2.6-2.6l0-61.2c0-5.7-2.4-8.2-8.2-8.2l-15.4 0 0 13.4 5.2 0c1.7 0 2.6 1 2.6 2.6l0 61.2-.1 0zm63.4 0c0 5.8 2.4 8.2 8.2 8.2l38.7 0c5.7 0 8.2-2.4 8.2-8.2l0-13-14.3 0 0 5.2c0 1.7-1 2.6-2.6 2.6l-19.7 0c-1.7 0-2.6-1-2.6-2.6l0-20.3 27.7 0 0-13.4-27.7 0 0-22.4 19.2 0c1.7 0 2.6 1 2.6 2.6l0 5.2 14.2 0 0-13c0-5.7-2.5-8.2-8.2-8.2l-51.6 0 0 13.4 7.8 0 0 63.9 .1 0zm58.9-76l0 5.9 1.6 0 0-5.9 2.7 0 0-1.2-7 0 0 1.2 2.7 0zm5.7-1.2l0 7.1 1.5 0 0-5.7 2.3 5.7 1.3 0 2.3-5.7 0 5.7 1.5 0 0-7.1-2.3 0-2.1 5.1-2.1-5.1-2.4 0z"],"square-twitter":[448,512,["twitter-square"],"f081","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM351.3 199.3c0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3 .6 10.4 .8 15.8 .8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4l0-.8c8.7 4.9 18.9 7.9 29.6 8.3-9-6-16.4-14.1-21.5-23.6s-7.8-20.2-7.7-31c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34 .2 2.8 .2 5.7 .2 8.5z"],"font-awesome":[512,512,[62501,62694,"font-awesome-flag","font-awesome-logo-full"],"f2b4","M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96z"],wirsindhandwerk:[448,512,["wsh"],"e2d0","M18.9 479.8l83.4 0 0-112-83.4 47 0 65zm329 0l82.4 0 0-65-82.4-47 0 112zm0-448l0 219.8-123.6-72.4-121.7 72.4 0-219.8-83.7 0 0 360.8 205.4-122.3 206 122.3 0-360.8-82.3 0z"],confluence:[512,512,[],"f78d","M2.8 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1 .1-.2 .1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8 .4 21.7-7.7 .1-.1 .1-.3 .2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3-247.9-120.6-330.8 45.7-373.1 112.6zM510.2 100.1c4.5-7.6 2.1-17.5-5.5-22.2L398.9 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2 .3-.4 .6-.6 1-67.3 112.6-81.1 95.6-280.6 .9-8.1-3.9-17.8-.4-21.7 7.7-.1 .1-.1 .3-.2 .4L22.7 141.3c-3.6 8.1 .1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z"],digg:[512,512,[],"f1a6","M81.7 172.3l-81.7 0 0 174.4 132.7 0 0-250.7-51 0 0 76.3zm0 133.4l-30.8 0 0-92.3 30.8 0 0 92.3zM378.9 172.3l0 174.4 81.8 0 0 28.5-81.8 0 0 40.8 133.1 0 0-243.7-133.1 0zm81.8 133.4l-30.8 0 0-92.3 30.8 0 0 92.3zm-235.6 41l82.1 0 0 28.5-82.1 0 0 40.8 133.3 0 0-243.7-133.3 0 0 174.4zm51.2-133.3l30.8 0 0 92.3-30.8 0 0-92.3zM153.3 96l51.3 0 0 51-51.3 0 0-51zm0 76.3l51.3 0 0 174.4-51.3 0 0-174.4z"],threads:[448,512,[],"e618","M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8 29.2 14.1 50.6 35.2 61.8 61.4 15.7 36.5 17.2 95.8-30.3 143.2-36.2 36.2-80.3 52.5-142.6 53l-.3 0c-70.2-.5-124.1-24.1-160.4-70.2-32.3-41-48.9-98.1-49.5-169.6l0-.5C17 184.3 33.6 127.2 65.9 86.2 102.2 40.1 156.2 16.5 226.4 16l.3 0c70.3 .5 124.9 24 162.3 69.9 18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4-29.2-35.8-73-54.2-130.5-54.6-57 .5-100.1 18.8-128.2 54.4-26.2 33.3-39.8 81.5-40.3 143.2 .5 61.7 14.1 109.9 40.3 143.3 28 35.6 71.2 53.9 128.2 54.4 51.4-.4 85.4-12.6 113.7-40.9 32.3-32.2 31.7-71.8 21.4-95.9-6.1-14.2-17.1-26-31.9-34.9-3.7 26.9-11.8 48.3-24.7 64.8-17.1 21.8-41.4 33.6-72.7 35.3-23.6 1.3-46.3-4.4-63.9-16-20.8-13.8-33-34.8-34.3-59.3-2.5-48.3 35.7-83 95.2-86.4 21.1-1.2 40.9-.3 59.2 2.8-2.4-14.8-7.3-26.6-14.6-35.2-10-11.7-25.6-17.7-46.2-17.8l-.7 0c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1l.8 0c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2 .1 0zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3 25.6-1.4 54.6-11.4 59.5-73.2-13.2-2.9-27.8-4.4-43.4-4.4-4.8 0-9.6 .1-14.4 .4-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z"],wpressr:[512,512,["rendact"],"f3e4","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM427.3 166.6c-15.2 34.5-30.4 69-45.6 103.5-2.4 5.5-6.9 8.2-13 8.2-23 0-46 .1-69 0-5.1 0-8.2 1.9-10.3 6.7-10.2 23.6-20.6 47-31 70.5-1.5 3.5-4.1 5.3-7.9 5.3-45.9 0-91.9 0-137.8 0-3.1 0-5.6-1.1-7.7-3.4-11.2-12.3-22.5-24.6-33.7-36.9-2.7-3-2.8-6.2-1.2-9.7 8.7-19.5 17.3-39.1 25.9-58.7 12.9-29.4 25.9-58.7 38.7-88.1 1.7-3.9 4.3-5.7 8.5-5.7 14.2 .1 28.5 0 42.7 0 6.2 0 9.2 4.8 6.7 10.6-13.6 30.8-27.2 61.6-40.7 92.3-5.7 13-11.4 26-17.1 39-3.9 9 7.1 12 11 5.6 .2-.4-1.4 4.2 30-67.7 1.4-3.1 3.4-4.4 6.8-4.4 15.2 .1 30.4 0 45.6 0 5.6 0 7.9 3.6 5.7 8.7-8.3 19-16.7 37.9-25 56.9-5 11.4 8.1 12.5 11.3 5.3 0-.1 27.9-63.3 32.2-73.2 2-4.6 5.4-6.5 10.3-6.5 26.4 .1 52.9 0 79.3 0 12.4 0 13.9-13.6 3.9-13.6-25.3 0-50.5 0-75.8 0-6.3 0-7.8-2.5-5.3-8.3 5.8-13.1 11.6-26.1 17.3-39.2 1.7-4 4.5-5.8 8.8-5.8 23.1 .1 26 0 130.8 0 6.1 0 8 2.8 5.6 8.3z"],yoast:[448,512,[],"f2b1","M91.3 76l186 0-7 18.9-179 0c-39.7 0-71.9 31.6-71.9 70.3l0 205.4c0 35.4 24.9 70.3 84 70.3l0 19.1-12.1 0C41.2 460 0 419.8 0 370.5L0 165.2C0 115.9 40.7 76 91.3 76zM320.4 20l66.5 0c-143.8 378.1-145.7 398.9-184.7 439.3-20.8 21.6-49.3 31.7-78.3 32.7l0-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1 .6-12.6-82.1-223.2l61.4 0 50.4 156.6 102.2-279zM448 161.5l0 298.5-214 0c6.6-9.6 10.7-16.3 12.1-19.4l182.5 0 0-279.1c0-32.5-17.1-51.9-48.2-62.9L387.1 81c41.7 13.6 60.9 43.1 60.9 80.5z"],nimblr:[384,512,[],"f5a8","M246.6 353.3a27 27 0 1 1 0-54 27 27 0 1 1 0 54zm-79.4-27a27.1 27.1 0 1 1 -54.3 0 27.1 27.1 0 1 1 54.3 0zM191.8 159C157 159 89.4 178.8 59.2 227L14 0 14 335.5C14 433.1 93.6 512 191.8 512S369.5 433 369.5 335.5 290.1 159 191.8 159zm0 308.1c-73.3 0-132.5-58.9-132.5-131.6s59.2-131.6 132.5-131.6 132.5 58.9 132.5 131.5-59.3 131.6-132.5 131.6l0 .1z"],pixelfed:[512,512,[],"e7db","M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM235.7 311.9l47 0c44.2 0 80.1-34.9 80.1-78s-35.9-78-80.1-78l-67.8 0c-25.5 0-46.2 20.1-46.2 45l0 175.1 67-64.1z"],yahoo:[512,512,[],"f19e","M223.8 141.1l-56.7 143.2-56-143.2-96.1 0 105.8 249.1-38.6 89.8 94.2 0 140.9-338.9-93.6 0zM329.2 276.9a58.2 58.2 0 1 0 0 116.4 58.2 58.2 0 1 0 0-116.4zM394.7 32l-93 223.5 104.8 0 92.6-223.5-104.4 0z"],bluesky:[576,512,[],"e671","M407.8 294.7c-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3zM288 227.1C261.9 176.4 190.9 81.9 124.9 35.3 61.6-9.4 37.5-1.7 21.6 5.5 3.3 13.8 0 41.9 0 58.4S9.1 194 15 213.9c19.5 65.7 89.1 87.9 153.2 80.7 3.3-.5 6.6-.9 10-1.4-3.3 .5-6.6 1-10 1.4-93.9 14-177.3 48.2-67.9 169.9 120.3 124.6 164.8-26.7 187.7-103.4 22.9 76.7 49.2 222.5 185.6 103.4 102.4-103.4 28.1-156-65.8-169.9-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3 64.1 7.1 133.6-15.1 153.2-80.7 5.9-19.9 15-138.9 15-155.5s-3.3-44.7-21.6-52.9c-15.8-7.1-40-14.9-103.2 29.8-66.1 46.6-137.1 141.1-163.2 191.8z"],scribd:[384,512,[],"f28a","M42.6 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9 .6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9 .2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4-60.8 71.8 15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z"],"creative-commons-pd":[512,512,[],"f4ec","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L305 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6L87.6 145.6c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z"],earlybirds:[512,512,[],"f39a","M329.3 47.5c1.2-13 21.3-14 36.6-8.7 .9 .3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM335.5 160a16 16 0 1 0 0 32 16 16 0 1 0 0-32zm-159.7 0a16 16 0 1 0 0 32 16 16 0 1 0 0-32zM494.3 323.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2 .3 .9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2 .8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7 .9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2 .8-10.5-25.4 21.5-42.6 66.8-73.4 .7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1 .3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3-15.3-19.4-3.4-39.9-2.4-40.4 1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1 .6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7 .6 11.6 .8 12.7 2.6 .3 .5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM223.5 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z"],"square-odnoklassniki":[448,512,["odnoklassniki-square"],"f264","M224 137.1c-5.4-.3-10.8 .6-15.9 2.4s-9.7 4.8-13.6 8.5-7 8.2-9.2 13.2-3.2 10.3-3.2 15.7 1.1 10.8 3.2 15.7 5.3 9.5 9.2 13.2 8.6 6.6 13.6 8.5 10.5 2.7 15.9 2.4c5.4 .3 10.8-.6 15.9-2.4s9.7-4.8 13.6-8.5 7-8.2 9.2-13.2 3.2-10.3 3.2-15.7-1.1-10.8-3.2-15.7-5.3-9.5-9.2-13.2-8.6-6.6-13.6-8.5-10.5-2.7-15.9-2.4zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM224 258a81 81 0 1 1 0-162.1 81 81 0 1 1 0 162.1zm59.3 6.2c16.8-13.2 29.5-5.5 34.1 3.6 7.8 16-1.1 23.7-21.5 37-17.1 10.9-40.7 15.2-56.2 16.8l13 12.9 47.7 47.7c17.4 17.9-11 45.8-28.6 28.6-12-12.2-29.5-29.7-47.7-47.9l-47.7 47.9c-17.7 17.2-46-11-28.4-28.6 3.7-3.7 7.9-7.9 12.5-12.5 10.4-10.4 22.6-22.7 35.2-35.2l12.9-12.9c-15.4-1.6-39.3-5.7-56.6-16.8-20.3-13.3-29.3-20.9-21.4-37 4.6-9.1 17.3-16.8 34.1-3.6 0 0 22.7 18 59.3 18s59.3-18 59.3-18z"],markdown:[640,512,[],"f60f","M593.8 59.1l-547.6 0C20.7 59.1 0 79.8 0 105.2L0 406.7c0 25.5 20.7 46.2 46.2 46.2l547.7 0c25.5 0 46.2-20.7 46.1-46.1l0-301.6c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6l-61.5 0 0-120-61.5 76.9-61.5-76.9 0 120-61.7 0 0-209.2 61.5 0 61.5 76.9 61.5-76.9 61.5 0 0 209.2 .2 0zm135.3 3.1l-92.3-107.7 61.5 0 0-104.6 61.5 0 0 104.6 61.5 0-92.2 107.7z"],typo3:[448,512,[],"f42b","M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1 0 103.5 106.8 337.5 184.1 337.5 36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z"],joomla:[448,512,[],"f1aa","M.6 92.1c0-33.3 26.8-60.1 59.8-60.1 30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1 .6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9-26.9-5.8-46.7-29.7-46.7-58.3zM130.1 208.5l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zM396.4 360.7c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2 0 33.3 26.8 60.1 59.8 60.1 28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z"],weixin:[576,512,[],"f1d7","M385.2 167.6c6.4 0 12.6 .3 18.8 1.1-16.6-78.4-100.7-136.7-196.3-136.7-107.2 0-194.7 72.8-194.7 165.4 0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zM280.7 114.7c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2 .1-14.7 14.6-24.4 29.3-24.4zM144.3 163.3c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zM343.9 294.9c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3 .1 10-9.9 19.6-24.4 19.6z"],grunt:[384,512,[],"f3ad","M61.6 189.3c-1.1 10 5.2 19.1 5.2 19.1 .7-7.5 2.2-12.8 4-16.6 .4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1l-.1 0c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zM232 233.3c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8l-.1 0c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zm-134.4 231l-29.4 0c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8 .6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zM349.5 317.3c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6 .6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1 .4-4.7 .8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2-29.5 10.4-36.9 26.3-39.1 40.7-7.6-5.4-6.7-23.1-7.2-27.6-7.5 .9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5l-8.1 9.4 12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3 .2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7 .3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7 .5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6 14.4 11.8 34.4 19.5 63.6 19.5l.2 0c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM306 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2 .8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.9 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6 .7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4 .1-6.6 .5-9 .9zM90.6 85.4c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7-3.3-4.4-3.8-10.5-4.3-16.9-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4 .3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.4 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6 .9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7 .2 .2 .4 .3 .4 .3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1 .4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5 .6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9 .7 .6 1.5 1.2 2.2 1.8l.5 .4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6 .9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7l-117 0c-4.4 0-8.3 .3-11.7 .7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM35.1 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zm111.5 50.1c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2 .9-23.1 2.9-3.3 9.5-7.2 24.6-7.2l118.8 0c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6 .9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM192.2 187.7l.2 0c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7l-29.4 0c-4.2 0-7.2 .9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z"],rockrms:[512,512,[],"f3e9","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM413.4 427.5l-90 0-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1l75.3 0-84.6-99.3-84.3 98.9-90 0 147.1-172.5c14.4-18.4 41.3-17.3 54.5 0L413.7 252.3c19 22.8 2 57.2-27.6 56.1-.6 0-74.2 .2-74.2 .2L413.4 427.5z"],unsplash:[448,512,[],"e07c","M448 230.2l0 249.8-448 0 0-249.8 141.1 0 0 124.9 165.7 0 0-124.9 141.1 0zM306.9 32l-165.7 0 0 124.9 165.7 0 0-124.9z"],"square-instagram":[448,512,["instagram-square"],"e055","M194.4 211.7a53.3 53.3 0 1 0 59.2 88.6 53.3 53.3 0 1 0 -59.2-88.6zm142.3-68.4c-5.2-5.2-11.5-9.3-18.4-12-18.1-7.1-57.6-6.8-83.1-6.5-4.1 0-7.9 .1-11.2 .1s-7.2 0-11.4-.1c-25.5-.3-64.8-.7-82.9 6.5-6.9 2.7-13.1 6.8-18.4 12s-9.3 11.5-12 18.4c-7.1 18.1-6.7 57.7-6.5 83.2 0 4.1 .1 7.9 .1 11.1s0 7-.1 11.1c-.2 25.5-.6 65.1 6.5 83.2 2.7 6.9 6.8 13.1 12 18.4s11.5 9.3 18.4 12c18.1 7.1 57.6 6.8 83.1 6.5 4.1 0 7.9-.1 11.2-.1s7.2 0 11.4 .1c25.5 .3 64.8 .7 82.9-6.5 6.9-2.7 13.1-6.8 18.4-12s9.3-11.5 12-18.4c7.2-18 6.8-57.4 6.5-83 0-4.2-.1-8.1-.1-11.4s0-7.1 .1-11.4c.3-25.5 .7-64.9-6.5-83-2.7-6.9-6.8-13.1-12-18.4l0 .2zm-67.1 44.5c18.1 12.1 30.6 30.9 34.9 52.2s-.2 43.5-12.3 61.6c-6 9-13.7 16.6-22.6 22.6s-19 10.1-29.6 12.2c-21.3 4.2-43.5-.2-61.6-12.3s-30.6-30.9-34.9-52.2 .2-43.5 12.2-61.6 30.9-30.6 52.2-34.9 43.5 .2 61.6 12.2l.1 0zm29.2-1.3c-3.1-2.1-5.6-5.1-7.1-8.6s-1.8-7.3-1.1-11.1 2.6-7.1 5.2-9.8 6.1-4.5 9.8-5.2 7.6-.4 11.1 1.1 6.5 3.9 8.6 7 3.2 6.8 3.2 10.6c0 2.5-.5 5-1.4 7.3s-2.4 4.4-4.1 6.2-3.9 3.2-6.2 4.2-4.8 1.5-7.3 1.5c-3.8 0-7.5-1.1-10.6-3.2l-.1 0zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM357 389c-18.7 18.7-41.4 24.6-67 25.9-26.4 1.5-105.6 1.5-132 0-25.6-1.3-48.3-7.2-67-25.9s-24.6-41.4-25.8-67c-1.5-26.4-1.5-105.6 0-132 1.3-25.6 7.1-48.3 25.8-67s41.5-24.6 67-25.8c26.4-1.5 105.6-1.5 132 0 25.6 1.3 48.3 7.1 67 25.8s24.6 41.4 25.8 67c1.5 26.3 1.5 105.4 0 131.9-1.3 25.6-7.1 48.3-25.8 67l0 .1z"],"first-order-alt":[512,512,[],"f50a","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 7.8a240.2 240.2 0 1 1 0 480.4 240.2 240.2 0 1 1 0-480.4zm0 20.5a219.7 219.7 0 1 0 0 439.4 219.7 219.7 0 1 0 0-439.4zm0 8.2a211.5 211.5 0 1 1 0 423 211.5 211.5 0 1 1 0-423zm186.2 260c-4.4 17.1-11.2 33.5-20.1 48.7l-74.1-35.9 61.5 54.8c-10.6 14.1-23.2 26.6-37.2 37.3l-54.8-61.6 35.9 74.3c-15.2 9-31.6 15.8-48.6 20.2l-27.3-78.5 4.8 82.9c-8.6 1.2-17.4 1.8-26.3 1.8s-17.7-.6-26.3-1.8l4.8-82.5-27.2 78c-17.1-4.5-33.4-11.3-48.7-20.2l35.9-74.3-54.9 61.6c-14-10.7-26.6-23.2-37.2-37.3l61.6-54.9-74.3 35.9C80.7 338 74 321.7 69.5 304.6l77.8-27.1-82.2 4.8c-1.2-8.6-1.8-17.3-1.8-26.2 0-9 .6-17.8 1.8-26.5l82.4 4.8-77.9-27.2c4.5-17.1 11.3-33.5 20.2-48.7l74.2 35.9-61.5-54.9c10.7-14 23.2-26.6 37.3-37.2l54.8 61.5-35.8-74.2c15.2-8.9 31.6-15.7 48.6-20.1l26.9 77.2-4.7-81.6c8.6-1.2 17.4-1.8 26.3-1.8s17.7 .6 26.3 1.8l-4.7 82.2 27-77.8c17.3 4.5 33.6 11.4 48.6 20.2l-35.8 74.1 54.7-61.5c14.1 10.7 26.6 23.2 37.2 37.2l-61.4 54.8 74.1-35.9c8.9 15.2 15.7 31.6 20.2 48.6l-77.8 27.1 82.2-4.7c1.2 8.7 1.8 17.5 1.8 26.5 0 8.9-.6 17.6-1.8 26.2l-82.1-4.7 77.7 27.1z"],fulcrum:[256,512,[],"f50b","M63.8 164.1L28.4 207.7-7 164.1 28.4 120.6 63.8 164.1zM112.2 0l-20.5 198.2-51 57.8 51 57.8 20.5 198.2 0-211.1-41.1-44.9 41.1-44.9 0-211.1zm79.7 164.1l35.4 43.6 35.4-43.6-35.4-43.5-35.4 43.5zm-48.5 47l41.1 44.9-41.1 44.9 0 211.1 20.6-198.2 51-57.8-51-57.8-20.6-198.2 0 211.1z"],"brave-reverse":[448,512,[],"e63d","M298.5 0c3 0 5.8 1.3 7.8 3.6l38.1 44c.5-.1 1-.2 1.5-.3 9.2-1.6 18.6-2.2 27.7-1.2 11.6 1.4 21.5 5.4 28.9 12.9 7.7 7.8 15.4 15.8 22.6 23.6 2.5 2.7 4.9 5.2 6.9 7.4 .7 .8 1.4 1.5 1.9 2 3.4 3.7 4.2 8.1 2.7 11.9l-9.8 24.6 13.1 38.1c.7 2 .8 4.1 .2 6.2-.1 .4-.1 .4-.5 2.1l-1.5 5.8c-1.6 6.3-3.5 13.3-5.4 20.9-5.6 21.6-11.2 43.2-16.4 63.4-12.9 49.9-21.4 82.7-23.4 90.9-11.1 44.5-19.9 60-48.3 80.3-24.9 17.8-76.8 53.6-86.8 60-1 .6-2 1.3-3.4 2.3-.5 .4-3.2 2.2-3.9 2.7-4.9 3.3-8.3 5.5-12.1 7.3-4.7 2.2-9.3 3.5-13.9 3.5s-9.1-1.2-13.9-3.5c-3.7-1.8-7.2-3.9-12.1-7.3-.8-.5-3.4-2.4-3.9-2.7-1.4-1-2.5-1.7-3.4-2.3-10-6.4-61.9-42.1-86.8-60-28.4-20.4-37.2-35.8-48.3-80.3-2-8.2-10.5-41-23.3-90.5-5.3-20.6-10.9-42.2-16.5-63.8-2-7.6-3.8-14.6-5.4-20.9l-1.5-5.8-.5-2.1c-.5-2-.4-4.2 .2-6.2l13.1-38.1-9.9-24.5c-1.5-3.8-.7-8.2 2-11.2 1.2-1.3 1.8-2 2.6-2.8 2-2.2 4.4-4.7 6.9-7.4 7.3-7.7 15-15.7 22.7-23.5 7.4-7.5 17.3-11.6 28.9-12.9 9.1-1.1 18.5-.5 27.7 1.2 .5 .1 1 .2 1.5 .3l38.1-44c2-2.4 4.8-3.7 7.8-3.7l148 0zm-4.7 21.1l-138.6 0-39.1 45.1c-2.6 3-6.7 4.3-10.6 3.2-.2-.1-.7-.2-1.5-.4-1.3-.3-2.9-.6-4.5-.9-7.4-1.3-14.9-1.8-21.7-1-7.3 .9-13 3.2-16.6 6.9-7.6 7.7-15.2 15.6-22.3 23.3-1.7 1.8-3.3 3.5-4.8 5.1l8.8 22c1 2.4 1 5 .2 7.5L29.7 170.6c.4 1.4 .5 1.9 1.2 4.8 1.6 6.3 3.5 13.3 5.4 20.9 5.6 21.6 11.2 43.2 16.4 63.4 12.9 50 21.4 82.8 23.4 91 10.1 40.1 16.4 51.3 40.2 68.3 24.6 17.6 76.3 53.2 85.9 59.3 1.2 .8 2.5 1.6 4 2.7 .6 .4 3.2 2.2 3.9 2.7 4 2.8 6.7 4.4 9.2 5.6 2.2 1 3.9 1.5 5.1 1.5s2.9-.5 5.1-1.5c2.5-1.2 5.2-2.8 9.2-5.6 .7-.5 3.3-2.3 3.9-2.7 1.6-1.1 2.8-1.9 4-2.7 9.6-6.1 61.3-41.7 85.9-59.3 23.8-17.1 30.2-28.2 40.1-68.3 2.1-8.3 10.5-41.1 23.3-90.7 5.3-20.6 10.9-42.2 16.5-63.8 2-7.6 3.8-14.6 5.4-20.9 .7-2.9 .9-3.4 1.2-4.8l-13.3-38.8c-.8-2.4-.8-5.1 .2-7.5l8.8-22c-1.5-1.6-3.1-3.3-4.8-5.1-7.2-7.6-14.7-15.5-22.3-23.3-3.7-3.7-9.3-6-16.6-6.9-6.8-.8-14.4-.3-21.7 1-1.7 .3-3.2 .6-4.5 .9-.8 .2-1.3 .3-1.5 .4-3.8 1.1-7.9-.2-10.6-3.2L293.8 21.1zM224.5 316c2.8 0 20.9 6.5 35.4 14.1s25 13 28.3 15.2 1.3 6.2-1.7 8.4-44.1 34.6-48.1 38.2-9.8 9.5-13.8 9.5-9.8-5.9-13.8-9.5-45.1-36-48.1-38.2-5.1-6.2-1.7-8.4 13.9-7.5 28.3-15.2 32.5-14.1 35.4-14.1l-.2 0zm.1-230.7c.7 0 8.8 .2 20.5 4.2 12.3 4.2 25.7 9.4 31.9 9.4s51.9-8.9 51.9-8.9 54.2 66.7 54.2 81-6.8 18-13.7 25.4-36.8 39.8-40.7 43.9-11.9 10.5-7.1 21.8 11.7 25.8 3.9 40.4-21 24.4-29.4 22.8-28.4-12.2-35.7-17.1-30.5-24.3-30.5-31.8 24-20.8 28.4-23.9 24.7-14.8 25.1-19.4 .3-6-5.7-17.4-16.7-26.7-14.9-36.8 19.1-15.4 31.5-20.2 36.2-13.7 39.2-15.1 2.2-2.7-6.8-3.6-34.6-4.3-46.1-1.1-31.2 8.2-32.8 10.9-3 2.7-1.4 11.8 10.1 52.8 10.9 60.6 2.4 12.9-5.8 14.8-22.1 5.2-26.8 5.2-18.6-3.3-26.8-5.2-6.6-7-5.8-14.8 9.3-51.5 10.9-60.6 .2-9.2-1.4-11.8-21.3-7.6-32.8-10.9-37.1 .2-46.1 1.1-9.8 2.2-6.8 3.6 26.8 10.4 39.2 15.1 29.7 10 31.5 20.2-9 25.4-14.9 36.8-6.1 12.8-5.7 17.4 20.6 16.4 25.1 19.4 28.4 16.4 28.4 23.9-23.2 27-30.5 31.8-27.2 15.4-35.7 17.1-21.7-8.2-29.4-22.8-.8-29.1 3.9-40.4-3.3-17.7-7.1-21.8-33.8-36.5-40.7-43.9-13.7-11.2-13.7-25.4 54.2-81 54.2-81 45.8 8.9 51.9 8.9 19.5-5.2 31.9-9.4 20.6-4.2 20.6-4.2l-.3 0z"],avianex:[512,512,[],"f374","M453.2 32l-312 0C102.3 32 65 63.2 57.9 101.7L1.3 410.3C-5.8 448.8 20 480 59 480l312 0c38.9 0 76.2-31.2 83.3-69.7L511 101.8C518 63.2 492.2 32 453.2 32zM395 379.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9l-20.5-29.6-68.8-99.8 18.8-28.9 8.9-4.8 103.1 112.4 4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z"],ns8:[640,512,[],"f3d5","M104.3 269.2l26.1 0 0-26.2-26.1 0 0 26.2zM156.8 243l-.1-26.2 0-.9c-.2-10.4-4.4-20.3-11.9-27.6s-17.5-11.3-27.9-11.1-20.3 4.4-27.6 11.8-11.3 17.5-11.2 27.9l0 .2 26.4 0 0-.2c.1-3.4 1.5-6.6 3.9-9s5.7-3.7 9.1-3.7 6.7 1.3 9.1 3.7 3.8 5.6 3.9 9l0 26.2 26.3 0zm52.4 25.8c0 12-2.4 23.8-6.9 34.9s-11.3 21.1-19.7 29.6-18.5 15.2-29.6 19.7-22.9 6.9-34.9 6.9l-.6 0c-24.2 0-47.3-9.6-64.4-26.7S26.3 293 26.3 268.8l-26.3 0 0 .2c0 15.4 3.1 30.7 9 44.9s14.6 27.2 25.5 38.1 23.9 19.5 38.1 25.4 29.5 8.9 44.9 8.9l.8 0c15.4 0 30.7-3 44.9-9s27.2-14.6 38.1-25.5 19.5-23.8 25.4-38.1 8.9-29.5 8.9-44.9l0-26-26.3 0 0 26zm-157.2 0c.1 17.3 7 33.9 19.2 46.1s28.8 19.1 46.1 19.1 33.9-6.9 46.1-19.1 19.2-28.8 19.2-46.1l-26.3 0c-.2 10.2-4.4 20-11.7 27.2s-17.1 11.2-27.4 11.2-20.1-4-27.4-11.2-11.5-16.9-11.7-27.2l0-26-26.3 0 0-26.6c.3-17.3 7.4-33.8 19.7-45.8s29-18.8 46.3-18.6 33.8 7.2 45.9 19.5 18.9 28.9 18.9 46.2l0 25.3 26.3 0 0-25.3c0-24.3-9.7-47.7-26.9-64.9s-40.5-26.9-64.9-26.9-47.7 9.7-64.9 26.9-26.9 40.5-26.9 64.9l0 25.4 26.3 0 0 26zm418.4-71.2c13.7 0 24.6 6.6 30.1 18.3l.7 1.5 23.2-11.5-.6-1.4c-8-19.3-28.5-31.3-53.4-31.3-23.1 0-43.6 11.4-51 28.4-.1 26.9-.2 23.9 0 24.8 4.7 11 14.6 19.4 28.7 24.2 6.5 2 13.1 3.3 19.8 4 5.5 .7 10.6 1.4 15.8 3.1 6.4 2.1 10.5 5.3 12.8 9.8l0 9.9c-3.7 7.5-13.8 12.3-25.8 12.3-14.3 0-26-6.9-31.9-19l-.7-1.5-23 11.5 .6 1.4c7.9 19.4 29.6 32 55.3 32 23.6 0 44.6-11.4 52.3-28.4l.2-25.9-.2-.7c-4.9-11-15.2-19.6-28.9-24.2-7.7-2.7-14.3-3.6-20.7-4.4-5-.5-10-1.5-14.8-2.9-6.3-1.9-10.4-5.1-12.6-9.6l0-8.4c3.4-7.4 12.9-12.1 24.2-12.1l0 0zM287.6 311.3l26.1 0 0-68.4-26.1 0 0 68.4zM639.8 258c-2.9-6.3-8.3-12-15.4-16.7 5.6-3.8 10.1-9.1 13-15.3l.2-25.3-.2-.7c-7.4-16-26.7-26.7-48.2-26.7S548.5 184 541.1 200l-.2 25.3 .2 .7c2.9 6.1 7.4 11.4 13 15.3-7.2 4.7-12.5 10.5-15.4 16.7l-.2 28.9 .2 .7c7.6 16 27.9 26.7 50.6 26.7s43.1-10.7 50.6-26.7l.2-28.9-.2-.7zm-73.2-50.8c3.6-6.3 12.6-10.5 22.6-10.5s19 4.2 22.6 10.5l0 13.7c-3.5 6.2-12.6 10.3-22.6 10.3s-19.1-4.2-22.6-10.3l0-13.7zm47.3 72.2c-3.8 6.6-13.3 10.9-24.7 10.9-11.1 0-21-4.4-24.7-10.9l0-16.2c3.7-6.3 13.5-10.5 24.7-10.5 11.3 0 20.9 4.1 24.7 10.5l0 16.2zM376.4 266l-59.8-89.7-29 0 0 40.6 26.5 0 0 .4 62.5 94.1 25.7 0 0-135.1-25.9 0 0 89.7z"],"square-pinterest":[448,512,["pinterest-square"],"f0d3","M384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l72.6 0-2.2-.8c-5.4-48.1-3.1-57.5 15.7-134.7 3.9-16 8.5-35 13.9-57.9 0 0-7.3-14.8-7.3-36.5 0-70.7 75.5-78 75.5-25 0 13.5-5.4 31.1-11.2 49.8-3.3 10.6-6.6 21.5-9.1 32-5.7 24.5 12.3 44.4 36.4 44.4 43.7 0 77.2-46 77.2-112.4 0-58.8-42.3-99.9-102.6-99.9-69.9 0-110.9 52.4-110.9 106.6 0 21.1 8.2 43.7 18.3 56 2 2.4 2.3 4.5 1.7 7-1.1 4.7-3.1 12.9-4.7 19.2-1 4-1.8 7.3-2.1 8.6-1.1 4.5-3.5 5.5-8.2 3.3-30.6-14.3-49.8-59.1-49.8-95.1 0-77.5 56.2-148.6 162.2-148.6 85.2 0 151.4 60.7 151.4 141.8 0 84.6-53.3 152.7-127.4 152.7-24.9 0-48.3-12.9-56.3-28.2 0 0-12.3 46.9-15.3 58.4-5 19.3-17.6 42.9-27.4 59.3L384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64z"],"bluetooth-b":[256,512,[],"f294","M164.9 260L257.5 156.7 111.6 0 111.6 206.3 25.4 120.2-6 151.6 102.1 260-6 368.4 25.4 399.8 111.6 313.7 114.3 512 262.8 363.4 164.9 260zm40.9-103l-50 50-.3-100.3 50.3 50.3zm-50 156l50 50-50.3 50.3 .3-100.3z"],gripfire:[320,512,[],"f3ac","M80.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4 .4 3.3 .6 6.7 .6 10 0 92.1-147.1 153.9-147.1 268.6 0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z"],"square-google-plus":[448,512,["google-plus-square"],"f0d4","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM64 256c0-55.3 44.7-100 100-100 27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1l-56.9 0 0-34.4 94.4 0c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6-55.3 0-100-44.7-100-100zm291 18.2l0 29-29.2 0 0-29-29 0 0-29.2 29 0 0-29 29.2 0 0 29 29 0 0 29.2-29 0z"],"app-store":[512,512,[],"f36f","M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5s13.1 18.1 7.5 27.9l-87.5 151.5 63.3 0c20.5 0 32 24.1 23.1 40.8l-185.5 0c-11.3 0-20.4-9.1-20.4-20.4s9.1-20.4 20.4-20.4l52 0 66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5s-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7l53.1 0c11.3 0 20.4 9.1 20.4 20.4S410.5 318 399.2 318l-29.5 0 19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM40 256a216 216 0 1 1 432 0 216 216 0 1 1 -432 0z"],wix:[640,512,[],"f5cf","M393.4 131.7c0 13 2.1 32.7-28.7 43.8-9.5 3.4-16 9.7-16 9.7 0-31 4.7-42.2 17.4-48.9 9.8-5.1 27.2-4.6 27.2-4.6zM277.6 167.2l-34.2 132.7-28.5-108.6c-7.7-32-20.8-48.5-48.4-48.5-27.4 0-40.7 16.2-48.4 48.5L89.5 299.9 55.3 167.2C49.7 140.5 23.9 129 0 132L65.6 379.9s21.6 1.6 32.5-4c14.2-7.2 21-12.8 29.6-46.6 7.7-30.1 29.1-118.4 31.1-124.7 4.8-14.9 11.1-13.8 15.4 0 2 6.3 23.5 94.6 31.1 124.7 8.6 33.7 15.4 39.3 29.6 46.6 10.8 5.5 32.5 4 32.5 4L332.9 132c-24.4-3.1-49.8 8.9-55.3 35.3zm115.8 5.2s-4.1 6.3-13.5 11.6c-6 3.4-11.8 5.6-18 8.6-15.1 7.3-13.2 13.9-13.2 35.2l0 152.1s16.6 2.1 27.4-3.4c13.9-7.1 17.1-14 17.3-44.8l0-150.3 0 0 0-9zm163.4 84.1L640 132.8s-35.1-6-52.5 9.8c-13.3 12.1-24.4 29.6-54.2 72.5-.5 .7-6.3 10.5-13.1 0-29.3-42.2-40.8-60.3-54.2-72.5-17.4-15.8-52.5-9.8-52.5-9.8l83.2 123.7-83 123.4s36.6 4.6 54-11.2c11.5-10.5 17.6-20.4 52.5-70.7 6.8-10.5 12.6-.8 13.1 0 29.4 42.4 39.2 58.1 53.1 70.7 17.4 15.8 53.3 11.2 53.3 11.2l-83-123.4z"],intercom:[448,512,[],"f7af","M392 32L56 32C25.1 32 0 57.1 0 88L0 424c0 30.9 25.1 56 56 56l336 0c30.9 0 56-25.1 56-56l0-336c0-30.9-25.1-56-56-56zM283.7 114.1c0-19.8 29.9-19.8 29.9 0l0 199.5c0 19.8-29.9 19.8-29.9 0l0-199.5zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0l0 216.5c0 19.8-29.9 19.8-29.9 0l0-216.5zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0l0 199.5c0 19.8-29.9 19.8-29.9 0l0-199.5zM59.7 144c0-19.8 29.9-19.8 29.9 0l0 134.3c0 19.8-29.9 19.8-29.9 0l0-134.3zM383.1 371.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0l0-134.3c0-19.8 29.9-19.8 29.9 0l0 134.3z"],reacteurope:[576,512,[],"f75d","M250.7 211.7l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2 .1 5.7 4.3-2 6.8zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2 .1 5.7 4.3-1.9 6.8zm-91.3 50.5l-3.4 0c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1l0-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5l3.4 0c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1l-.2 0c-10.1 0-16.8 4.2-16.8 14.1l0 40.1c0 10.4 6.7 14.1 16.8 14.1l.2 0c10.1 0 16.8-3.8 16.8-14.1 0-9.9 1.1-13.8-3.8-13.8zm-80.7 17.4l-14.7 0 0-19.3 11.4 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-11.4 0 0-18.3 14.4 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-21.7 0c-2.4-.1-3.7 1.3-3.7 3.8l0 59.1c0 2.5 1.3 3.8 3.8 3.8l21.9 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4l0-11.9c0-10.1-6.7-14.1-16.8-14.1l-13.4 0c-2.5 0-3.8 1.3-3.8 3.8l0 59.1c0 2.5 1.3 3.8 3.8 3.8l3.4 0c2.5 0 3.8-1.3 3.8-3.8l0-22.9 5.6 0 7.4 23.5c.2 1 .8 1.8 1.6 2.4s1.8 .9 2.7 .8l3.3 0c2.8 0 4-1.8 3.2-4.4l-8.1-23.9zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1l-5.8 0 0-20.9 5.8 0c3.6 0 6.1 1.3 6.1 6.1l0 8.7zM176.1 226c-.1-.5-.2-1-.4-1.4s-.6-.8-1-1.1-.8-.6-1.3-.7-1-.2-1.5-.1l-6.9 0c-.5 0-1 0-1.4 .2s-.9 .4-1.3 .7-.7 .7-.9 1.1-.4 .9-.4 1.4l-11 59.2c-.5 2.7 .9 4.1 3.4 4.1l3 0c.5 .1 1 0 1.5-.2s.9-.4 1.3-.7 .7-.7 .9-1.2 .4-.9 .4-1.4l1.8-11.3 12.2 0 1.8 11.3c0 .5 .2 1 .4 1.4s.5 .9 .9 1.2 .8 .6 1.3 .7 1 .2 1.5 .2l3.5 0c2.6 0 3.9-1.4 3.4-4.1L176.1 226zm-12.3 39.3l4.7-29.7 4.7 29.7-9.4 0zm89.3 20.2l0-53.2 7.5 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-25.8 0c-2.5 0-3.8 1.3-3.8 3.8l0 2.1c0 2.5 1.3 3.8 3.8 3.8l7.3 0 0 53.2c0 2.5 1.3 3.8 3.8 3.8l3.4 0c2.5 0 3.8-1.3 3.8-3.8l0 0zm248-.8l-19.4 0 0-26.7 16.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-16.1 0 0-25.8 19.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-22.2 0c-.3-.1-.5-.1-.8 0s-.5 .2-.7 .4-.3 .4-.4 .7-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l22.5 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l0 0zM408 221.8l-.8 0c-10.1 0-15.3 4.7-15.3 14.1l0 40.1c0 9.3 5.2 14.1 15.3 14.1l.8 0c10.1 0 15.3-4.8 15.3-14.1l0-40.1c0-9.4-5.2-14.1-15.3-14.1l0 0zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1l0-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1l0 36.6zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3l0-9.7c0-9.4-5.2-14.1-15.3-14.1l-13.7 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l1.2 0c.3 0 .5 0 .8-.1s.5-.2 .6-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-26.9 11.6 0 10.4 27.2c.2 .5 .5 .9 .9 1.1s.9 .4 1.4 .4l1.5 0c1.4 0 2-1 1.5-2.3l-10.6-27.3zm-6.4-3.9l-10.2 0 0-28.5 10.2 0c7.5 0 10.5 3.1 10.5 11.1l0 6.4c0 7.8-3 11-10.5 11l0 0zm85.9-33.1l-13.7 0c-.3-.1-.5-.1-.8 0s-.5 .2-.7 .4-.3 .4-.4 .7-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l1.2 0c.3 0 .5 0 .8-.1s.5-.2 .6-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-26.1 10.6 0c10.1 0 15.3-4.8 15.3-14.1l0-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1l-10.2 0 0-29.2 10.2 0c7.5-.1 10.5 3.1 10.5 11l0 7.1zM259.6 308l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zM487.2 171.9c-11.7-4.4-23.5-8.1-35.6-11.3 19.6-78 11.6-134.7-22.3-153.9-34.5-19.4-85.9 4.3-138.2 55.2 3.4 3.3 6.8 6.7 10.2 10.2 82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8-27.8-6.4-56.1-10.7-84.6-13-71.9-100.5-140.6-142.1-182.2-142.1-30.8 0-43.8 21-47.6 27.7-18.1 32-13.3 84.2 .1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2-3.4-3.3-6.8-6.7-10.2-10.2-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3l0 0zM136 36.8c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2-31.3-1.8-62.7-1.5-93.9 .9 13-18.3 27.1-35.8 42.2-52.4-3.4-3.5-6.8-6.9-10.2-10.2-18.3 20.2-35.3 41.7-50.7 64.2-28.5 2.7-56.7 7.6-84.4 14.6-.2-1.4-24.3-82.2-1.2-123l0 0zM440.8 475.1c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2 31.3 1.8 62.7 1.5 93.9-.9-13 18.3-27.1 35.8-42.2 52.4 3.4 3.5 6.8 6.9 10.2 10.2 18.4-20.2 35.3-41.7 50.7-64.2 47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4-2.1 0-4.2-.5-6.1-1.5s-3.5-2.4-4.6-4.2l-.1 .1c-1.6 1.5-3.4 2.7-5.4 3.6 5.7 14.3 10.6 28.4 14.7 42.2-23.7 6-47.7 10.3-72 13 3.5-5.3 17.2-26.2 32.2-54.2-2.1-.8-4.2-1.9-6-3.2-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2-37.4 3.3-75 3.6-112.4 1-7.9-11.2-21.5-31.1-36.8-57.8-1-.4-2-.9-3-1.5-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6-24.3-2.3-48.4-6.2-72.2-11.7 3.9-14 8.6-28.3 14.1-42.9-3.2 0-5.4 .2-8.4-1-2.2 .8-4.6 1.1-6.9 1-4.9 13.4-9.1 26.5-12.7 39.4-159.9-42.6-140.3-123.6-1.5-164 3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3 .7-.8 1.4-1.6 2.3-2.2-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3 3.1 1.8 5.3 4.6 6.4 8 2.5-3.7 6.1-6.6 10.2-8.4 6.5-11.7 17.9-31.9 34.8-56.9 37.4-3.3 75-3.6 112.4-1 31.5 44.6 28.9 48.1 42.5 64.5 2.6-3.5 6.3-6 10.4-7.4-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2 2.5 1 4.8 2.4 6.8 4.3l.1 .1c1-1.5 2.3-2.8 3.8-3.8s3.3-1.6 5.1-1.8c4.9-13.4 9.2-26.6 12.8-39.5 11.7 3.1 23.2 6.8 34.5 11 106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114l-1.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.6 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1l0-49.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-1.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 51.5c0 9.6 5 14.1 15.1 14.1l.4 0c10.1 0 15.1-4.6 15.1-14.1l0-51.5c0-.3-.1-.5-.2-.8s-.3-.5-.5-.6-.4-.3-.7-.4-.5-.1-.8-.1zM321.8 308l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zm5.1-30.8l-19.4 0 0-26.7 16.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-16.1 0 0-25.8 19.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-22.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l22.5 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.6-.1-.8s-.2-.5-.4-.7-.4-.4-.7-.4-.5-.1-.8-.1l0 0zm-7.4-99.4l-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8z"],waze:[512,512,[],"f83f","M502.6 201.7c14.5 85.9-30.9 167.9-113.2 208.1 13 34.1-12.4 70.2-48.3 70.2-13.2 0-26-5.1-35.6-14.2s-15.3-21.6-16-34.8c-6.4 .2-64.2 0-76.3-.6-.3 6.8-1.9 13.5-4.7 19.6s-6.9 11.7-11.9 16.3-10.8 8.2-17.2 10.5-13.2 3.4-19.9 3.1c-33.9-1.4-58-34.8-47-67.9-37.2-13.1-72.5-34.9-99.6-70.8-13-17.3-.5-41.8 20.8-41.8 46.3 0 32.2-54.2 43.2-110.3 18.4-93.9 116.8-157.1 211.7-157.1 102.5 0 197.2 70.7 214.1 169.7zM373.9 388.3c42-19.2 81.3-56.7 96.3-102.1 40.5-123.1-64.2-228-181.7-228-83.4 0-170.3 55.4-186.1 136-9.5 48.9 5 131.4-68.7 131.4 24.9 33.1 58.3 52.6 93.7 64 24.7-21.8 63.9-15.5 79.8 14.3 14.2 1 79.2 1.2 87.9 .8 3.5-6.9 8.5-12.9 14.7-17.5s13.2-7.9 20.8-9.5 15.4-1.4 22.9 .4 14.5 5.3 20.5 10.2zM205.5 187.1c0-34.7 50.8-34.7 50.8 0s-50.8 34.7-50.8 0zm116.6 0c0-34.7 50.9-34.7 50.9 0s-50.9 34.8-50.9 0zM199.5 257.8c-3.4-16.9 22.2-22.2 25.6-5.2l.1 .3c4.1 21.4 29.8 44 64.1 43.1 35.7-.9 59.3-22.2 64.1-42.8 4.5-16.1 28.6-10.4 25.5 6-5.2 22.2-31.2 62-91.5 62.9-42.6 0-80.9-27.8-87.9-64.2l0 0z"],"creative-commons-remix":[512,512,[],"f4ee","M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zM418.1 260.4l4.9 2.2 0 70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5 0-63.8 59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7 151.9 62.9 0 61.6 49.1 20.3zm-70.4 81.5l0-43.8-.4 0 0-1.8-113.8-46.5 0 45.2 113.8 46.9 0-.4 .4 .4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1l0-43-44.3 18.6 0 43.4 44.3-19z"],bandcamp:[512,512,[],"f2d5","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm48.2 326.1l-181 0 84.7-156.1 181 0-84.7 156.1z"],"square-web-awesome-stroke":[448,512,[],"e684","M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm235 81.6l53 46.4 52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224c-12.9-.4-23.2-11-23.2-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224 213.1 177.6c-8.9-4.1-15-13.1-15-23.6 0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z"],"vimeo-v":[448,512,[],"f27d","M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3-35.2-129.2-50.2-204.9-79.3-204.9-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z"],strava:[384,512,[],"f428","M158.4 0L7 292 96.2 292 158.4 175.9 220.1 292 308.6 292 158.4 0zM308.6 292l-43.9 88.2-44.6-88.2-67.6 0 112.2 220 111.5-220-67.6 0z"],uniregistry:[384,512,[],"f404","M192 480c39.5 0 76.2-11.8 106.8-32.2l-213.5 0C115.8 468.2 152.5 480 192 480zM102.9 286.9l0-12.4-102.9 0 0 12.4c0 2.5 0 5 .1 7.4l103.1 0c-.2-2.4-.3-4.9-.3-7.4zm20.5 57l-114.9 0c2.6 8.5 5.8 16.8 9.6 24.8l138.3 0c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7l-104.4 0c.9 7.6 2.2 15 3.9 22.3l109.7 0c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3l-102.9 0 0 17.3 102.9 0 0-17.3zm0-173.2l-102.9 0 0 4.9 102.9 0 0-4.9zm0-34.7l-102.9 0 0 2.5 102.9 0 0-2.5zm0 69.3l-102.9 0 0 7.4 102.9 0 0-7.4zm0 104l-102.9 0 0 14.8 102.9 0 0-14.8zm0-69.3l-102.9 0 0 9.9 102.9 0 0-9.9zm0 34.6l-102.9 0 0 12.4 102.9 0 0-12.4zM269.1 331.5l109.7 0c1.8-7.3 3.1-14.7 3.9-22.3l-104.4 0c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7l102.9 0 0-9.8-102.9 0 0 9.8zm0 37.2l102.9 0 0-12.4-102.9 0 0 12.4zm0-74.3l102.9 0 0-7.4-102.9 0 0 7.4zm0-76.7l0 2.5 102.9 0 0-2.5-102.9 0zM78.1 442.9l227.7 0c11.8-8.7 22.7-18.6 32.2-29.7l-293.1 0c9.6 11 21.4 21 33.2 29.7zm203-371.3l102.9 0 0-4.9-102.9 0 0 4.9zm0 148.5l102.9 0 0-14.8-102.9 0 0 14.8zM38.8 405.7l305.3 0c6.7-8.5 12.6-17.6 17.8-27.2L23 378.5c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1l139.4 0c3.7-8 5.8-16.2 8.5-24.8l-115 0c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4l103.1 0c.1-2.5 .2-4.9 .2-7.4l0-12.4-102.9 0 0 12.4zm0-29.7l102.9 0 0-17.3-102.9 0 0 17.3z"],"cc-diners-club":[576,512,[],"f24c","M239.7 79.9a175.8 175.8 0 1 0 0 351.6 175.8 175.8 0 1 0 0-351.6zM199.8 359.5c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1l0 207.9zm79.8 .3l0-208.2c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM329.7 448l-90.3 0C133.2 448 45.6 362.5 45.6 257.8 45.6 143.2 133.2 64 239.4 64l90.3 0c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z"],pinterest:[512,512,[],"f0d2","M504 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3 .8-3.4 5-20.3 6.9-28.1 .6-2.5 .3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2C161.5 437.2 163.5 467.4 165.6 487 73.4 450.9 8 361.1 8 256 8 119 119 8 256 8S504 119 504 256z"],algolia:[512,512,[],"f36c","M256 0c-139.9 0-254 112.7-256 252.1-2 141.5 112.9 258.7 254.5 259.5 43.7 .3 85.9-10.4 123.3-30.7 3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3-26.1 11.1-54.5 16.8-83.7 16.4-114.4-1.5-206.9-96.6-205.1-211 1.8-112.9 94.3-204.2 207.7-204.2l207.7 0 0 369-117.8-104.7c-3.8-3.4-9.7-2.7-12.7 1.3-18.9 25-49.7 40.6-83.9 38.2-47.5-3.3-85.9-41.5-89.5-88.9-4.2-56.6 40.6-103.9 96.3-103.9 50.4 0 91.9 38.8 96.2 88 .4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4 2.2-11.8 3-24.2 2.1-36.8-4.9-72-63.3-130-135.4-134.4-82.7-5.1-151.8 59.5-154 140.6-2.1 78.9 62.6 147 141.6 148.7 33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7l0-492c0-5.4-4.4-9.7-9.7-9.7L256 0z"],stackpath:[448,512,[],"f842","M244.6 232.4c0 8.5-4.3 20.5-21.3 20.5l-19.6 0 0-41.5 19.6 0c17.1 0 21.3 12.4 21.3 21zM448 32l0 448-448 0 0-448 448 0zM151.3 287.8c0-21.2-12.1-34.5-46.7-44.8-20.6-7.4-26-10.9-26-18.6s7-14.6 20.4-14.6c14.1 0 20.8 8.4 20.8 18.4l30.7 0 .2-.6c.5-19.6-15.1-41.6-51.1-41.6-23.4 0-52.6 10.8-52.6 38.3 0 19.4 9.2 31.3 50.7 44.4 17.3 6.2 21.9 10.4 21.9 19.5 0 15.2-19.1 14.2-19.5 14.2-20.4 0-25.7-9.1-25.7-21.9l-30.8 0-.2 .6c-.7 31.3 28.4 45.2 56.6 45.2 30 0 51.1-13.6 51.1-38.3zm125.4-55.6c0-25.3-18.4-45.5-53.4-45.5l-51.8 0 0 138.2 32.2 0 0-47.4 19.6 0c30.3 0 53.4-16 53.4-45.4zM297.9 325l49.1-138.2-31.1 0-47.9 138.2 29.9 0zM404.5 186.8l-31.1 0-47.9 138.2 29.9 0 49.1-138.2z"],"octopus-deploy":[512,512,[],"e082","M455.7 349.2c-45.9-39.1-36.7-77.9-16.1-128.1 35.7-87-23.5-186.9-109.6-212.8-92.9-27.9-195.7 16-230.3 108.8-8.7 23.5-12.5 48.5-11 73.5 1.7 29.5 14.7 53 24.1 80.3 17.2 50.2-28.1 92.7-66.7 117.6-46.8 30.2-36.3 39.9-8.4 41.9 23.4 1.7 44.5-4.5 65.3-15 9.2-4.6 40.7-18.9 45.1-28.6-12.2 26.6-37 72.7-21.5 102.1 19.1 36.2 67.1-31.8 76.7-45.8 8.6-12.6 43-81.3 63.6-46.9 18.9 31.4 8.6 76.4 35.7 104.6 32.9 34.2 51.2-18.3 51.4-44.2 .2-16.4-6.1-95.9 29.9-59.9 21.4 21.4 52.9 71.2 88.6 67 38.7-4.5-22.1-68-28.3-78.7 5.4 4.3 53.7 34.1 53.8 9.5 .1-18.8-30.1-34.7-42.5-45.3z"],yammer:[512,512,[],"f840","M500.7 159.5c-.4-1.8-1.2-3.4-2.3-4.8s-2.5-2.6-4.1-3.5c-3.1-1.6-6.7-2-10.1-1.1l-26.4 6.6 0-.2-22.3 5.8-1.2 .3-.6-2.2c-15.5-58.3-45-111.9-86.1-156.2-2.6-2.7-6.1-4.2-9.8-4.3s-7.3 1.3-10 3.8l-102.9 102.7-199.9 0c-6.6 0-12.9 2.6-17.6 7.3S0 124.8 0 131.4l0 249C0 387 2.6 393.3 7.3 398s11 7.3 17.6 7.3L225 405.3 328.1 508c2.6 2.6 6 4 9.7 4s7.1-1.4 9.7-4c.1-.1 .2-.3 .4-.4 29.3-31.5 52.8-67.8 69.6-107.4 6.9-16.5 12.7-33.5 17.3-50.8l0 0 20.4 5.3 0-.1 28.3 7.3c.9 .2 1.7 .4 2.6 .5 1.4 .2 2.8 .2 4.1-.1 2.5-.5 4.8-1.7 6.7-3.4s3.2-4 3.8-6.5c15.2-63.4 15.2-129.6 .1-193l0 0zM337.1 24.7l0 0 0 0 0 0zM226.9 189.8l-52.6 91.3c-1 1.7-1.5 3.7-1.5 5.7l0 46.2c0 5.8-2.3 11.4-6.5 15.6s-9.7 6.4-15.6 6.4l-3.4 0c-5.8 0-11.4-2.3-15.6-6.4s-6.5-9.7-6.5-15.6l0-45.7c0-1.9-.5-3.8-1.4-5.5L72.3 189.6c-1.9-3.4-2.8-7.1-2.8-11s1.1-7.6 3-10.9 4.7-6.1 8.1-8 7.1-2.9 11-2.9l3.3 0c4 0 8 1.1 11.5 3.2s6.3 5.1 8.1 8.7l36.4 70.3 37.5-70.5c1.8-3.5 4.6-6.4 7.9-8.4s7.2-3.2 11.1-3.2 7.8 .9 11.2 2.8 6.3 4.7 8.2 8.1c2 3.3 3 7.1 3 11s-1 7.7-3 11l0 0zM337.1 24.7c35.9 40.6 61.9 89 75.8 141.3l.6 2-114.1 29.6 0-66.1c0-6.6-2.7-12.9-7.3-17.6s-11-7.3-17.6-7.3l-19.4 0 82.1-81.8zM397.6 392l0 0 0 0c-14.7 34.8-35.1 67-60.2 95.2l-82.2-81.9 19.2 0c6.6 0 12.9-2.6 17.6-7.3s7.3-11 7.3-17.6l0-66.2 114.6 29.9c-4.4 16.3-9.8 32.3-16.3 47.9l0 0zm84-52.4l0 0-50.6-13.1-131.7-34.3 0-72.5 119.7-31 4.5-1.2c29.9-7.7 49.2-12.8 58.1-15.1 12 55.1 12 112.1 0 167.2z"],modx:[448,512,[],"f285","M356 241.8l36.7 23.7 0 214.5-133-83.8 96.3-154.4zM440 75l-213.7 0-23 37.8 153.5 96.5 83.2-134.3zM351 217.8l-295.8-185.8 0 214.5 46 29 249.8-57.7zM97 294.2L8 437 221.7 437 346.7 236.5 97 294.2z"],"square-threads":[448,512,[],"e619","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM294.2 244.3c19.5 9.3 33.7 23.5 41.2 40.9 10.4 24.3 11.4 63.9-20.2 95.4-24.2 24.1-53.5 35-95.1 35.3l-.2 0c-46.8-.3-82.8-16.1-106.9-46.8-21.5-27.3-32.6-65.4-33-113.1l0-.2c.4-47.7 11.5-85.7 33-113.1 24.2-30.7 60.2-46.5 106.9-46.8l.2 0c46.9 .3 83.3 16 108.2 46.6 12.3 15.1 21.3 33.3 27 54.4l-26.9 7.2c-4.7-17.2-11.9-31.9-21.4-43.6-19.4-23.9-48.7-36.1-87-36.4-38 .3-66.8 12.5-85.5 36.2-17.5 22.3-26.6 54.4-26.9 95.5 .3 41.1 9.4 73.3 26.9 95.5 18.7 23.8 47.4 36 85.5 36.2 34.3-.3 56.9-8.4 75.8-27.3 21.5-21.5 21.1-47.9 14.2-64-4-9.4-11.4-17.3-21.3-23.3-2.4 18-7.9 32.2-16.5 43.2-11.4 14.5-27.7 22.4-48.4 23.5-15.7 .9-30.8-2.9-42.6-10.7-13.9-9.2-22-23.2-22.9-39.5-1.7-32.2 23.8-55.3 63.5-57.6 14.1-.8 27.3-.2 39.5 1.9-1.6-9.9-4.9-17.7-9.8-23.4-6.7-7.8-17.1-11.8-30.8-11.9l-.4 0c-11 0-26 3.1-35.6 17.6l-23-15.8c12.8-19.4 33.6-30.1 58.5-30.1l.6 0c41.8 .3 66.6 26.3 69.1 71.8 1.4 .6 2.8 1.2 4.2 1.9l.1 .5zm-71.8 67.5c17-.9 36.4-7.6 39.7-48.8-8.8-1.9-18.6-2.9-29-2.9-3.2 0-6.4 .1-9.6 .3-28.6 1.6-38.1 15.5-37.4 27.9 .9 16.7 19 24.5 36.4 23.6l-.1-.1z"],"old-republic":[512,512,[],"f510","M243.8 10.2c7.5-.3 15-.3 22.5-.1 3.6 .1 7.2 .4 10.8 .7 4.9 .3 9.8 1 14.7 1.6 2.9 .4 5.8 1 8.7 1.5 7.9 1.3 15.7 3.3 23.4 5.4 12.2 3.5 24.2 7.9 35.8 13.2 26.6 12.2 50.9 29.2 71.6 49.9 20 20.1 36.7 43.5 48.9 69.2 1.1 2.6 2.4 5.1 3.5 7.7 2.8 6.4 5.4 13 7.6 19.6 4.1 12.3 7.3 25 9.4 37.8 .6 3.1 1 6.3 1.4 9.5 .5 3.8 .9 7.7 1.2 11.6 .8 8.3 .8 16.7 .8 25.1-.1 5-.3 9.9-.7 14.9-.2 3.4-.5 6.8-1 10.1-.4 2.7-.6 5.5-1.1 8.2-.9 5.1-1.7 10.3-2.9 15.4-4.1 18.5-10.3 36.6-18.5 53.6-15.8 32.8-38.8 62.2-67.1 85.1-17.3 14.1-36.4 25.9-56.9 34.9-6.2 2.7-12.5 5.3-18.9 7.4-3.5 1.2-7 2.4-10.6 3.4-6.6 1.9-13.3 3.6-20 5-4.7 .9-9.3 1.7-14 2.5-5.3 .7-10.5 1.4-15.8 1.7-6.7 .7-13.4 .8-20.1 .8-6.8 0-13.6-.1-20.4-.8-3.3-.2-6.6-.5-9.8-1-2.7-.4-5.5-.6-8.2-1.1-4.1-.7-8.2-1.4-12.4-2.2-4.2-.9-8.5-1.9-12.7-3-8.6-2.2-17.1-5-25.4-8.1-10.5-4.1-20.8-8.7-30.6-14.2-2.1-1.2-4.3-2.3-6.4-3.6-11.2-6.6-21.9-14.1-31.9-22.3-34.7-28.4-61.4-66.4-76.4-108.7-3.1-8.7-5.7-17.6-7.8-26.7-1.5-6.2-2.5-12.4-3.6-18.7-.4-2.3-.6-4.7-1-7.1-.6-4-.8-8-1.2-11.9-.8-9.5-.7-19-.5-28.5 .1-3.5 .3-7 .7-10.5 .3-3.2 .5-6.4 .9-9.5 .4-2.8 .7-5.6 1.2-8.4 .7-3.9 1.3-7.9 2.1-11.8 3.4-16.5 8.5-32.7 15.3-48.2 1.2-2.9 2.6-5.7 3.9-8.6 8.1-16.7 17.9-32.6 29.5-47.1 20-25.4 45.1-46.7 73.3-62.5 7.5-4.2 15.2-8 23.1-11.4 15.8-6.9 32.4-12 49.3-15.4 3.5-.7 7-1.2 10.6-1.8 2.6-.5 5.3-.7 7.9-1.1 3.5-.5 7.1-.7 10.6-1 2.5-.2 4.9-.4 7.4-.5zm8.6 24.4c-9.2 .1-18.4 1-27.6 2.2-7.3 1.1-14.5 2.6-21.7 4.3-13.9 3.5-27.5 8.3-40.5 14.4-10.5 5-20.6 10.7-30.2 17.2-4.2 2.9-8.4 5.8-12.3 9-5.1 4-10 8.2-14.7 12.6-2.5 2.2-4.8 4.7-7.2 7.1-28.2 28.8-48.4 65.4-57.5 104.7-2 8.4-3.5 17-4.4 25.6-1.1 8.9-1.4 17.9-1.4 26.8 .1 7.1 .4 14.3 1.2 21.4 .6 7.1 1.9 14.2 3.2 21.2 1.1 4.6 2 9.3 3.3 13.9 6.3 23.4 16.5 45.7 30.1 65.8 8.6 13 18.8 24.9 30 35.8 16.3 15.8 35 29 55.3 39.2 7.3 3.5 14.7 6.9 22.3 9.6 5 1.8 10.1 3.6 15.2 5 11.3 3.2 22.8 5.6 34.4 7.1 2.9 .3 5.8 .6 8.7 .9 13.8 1.1 27.7 1 41.5-.4 4.4-.6 8.9-1 13.3-1.8 3.6-.7 7.3-1.2 10.9-2.1 4.1-1 8.3-1.9 12.4-3.1 26.5-7.3 51.6-19.7 73.6-36.2 15.8-11.8 30-25.8 42.1-41.3 3.3-4 6.2-8.3 9.1-12.6 3.4-5.1 6.6-10.2 9.6-15.5 2.4-4.4 4.7-8.9 7-13.4 5.7-12.1 10.3-24.6 13.8-37.5 2.6-10 4.7-20.2 5.9-30.4 1.8-13.5 1.9-27.1 1.3-40.7-.3-3.9-.7-7.8-1-11.7-2.2-19.1-6.8-37.9-13.8-55.8-6-15.1-13.5-29.6-22.6-43.1-12.7-18.8-28.2-35.7-46-49.8-25-20-54.5-34.5-85.6-42.1-7.8-1.9-15.7-3.3-23.6-4.4-3.9-.6-7.8-.8-11.8-1.2-7.4-.6-14.8-.7-22.2-.6zM147.3 83.5c13.3-8.9 28.1-15.4 43.3-20.2-3.2 1.8-6.4 3.4-9.5 5.3-11.2 6.7-21.5 14.9-30.4 24.5-6.8 7.4-12.8 15.7-17 24.9-3.3 6.9-5.6 14.2-6.9 21.7-.9 4.8-1.3 9.8-1.2 14.8 .1 13.7 4.4 27.1 11.3 38.8 5.9 10.2 13.6 19.3 22.4 27.3 4.9 4.4 10.2 8.1 15 12.6 2.3 2.2 4.5 4.4 6.4 6.9 2.6 3.3 4.9 7 6 11.1 .9 3 .7 6.2 .7 9.3 0 4.1 0 8.2 0 12.3 .1 3.5 0 7.1 .1 10.6 .1 2.4 0 4.8 .1 7.1 .2 5.8 .1 11.5 .1 17.3 .1 2.9 0 5.8 .1 8.7 0 1.6 .1 3.3 0 4.9-.9 .1-1.8 .2-2.7 .2-11 0-21.9-2.6-32-6.9-6-2.7-11.8-5.9-17.1-9.8-5.8-4.2-11.1-9-15.8-14.3-6.5-7.2-12-15.4-16.6-23.9-1.1-2-2.2-4-3.2-6.1-1.2-2.6-2.6-5.1-3.7-7.8-4-9.7-6.6-19.9-8.1-30.3-.5-4.4-1.1-8.9-1.2-13.3-.7-15.7 .8-31.6 4.7-46.8 2.1-8.2 4.8-16.2 8.3-23.8 6.3-14.2 15.3-27.2 26.3-38.2 6.3-6.2 13.1-11.8 20.5-16.7zM322.7 63.4c2.7 .7 5.4 1.7 8.1 2.7 6.4 2.3 12.7 4.8 18.7 8 13.1 6.4 25.3 14.8 35.8 25 10.2 10 18.7 21.6 25.1 34.3 1.3 2.7 2.6 5.5 3.8 8.3 6.3 15.1 10 31.3 11.2 47.6 .4 4.5 .4 9.1 .5 13.6 .1 11.6-1.5 23.3-4.3 34.5-2 7.3-4.3 14.5-7.9 21.2-3.2 6.6-6.7 13.2-10.8 19.2-6.9 10.5-15.6 19.9-25.8 27.2-10.5 7.6-22.6 13-35.4 15.4-3.5 .7-7.1 1.1-10.7 1.2-1.8 .1-3.7 .2-5.6-.1-.3-2.1 0-4.3 0-6.5 0-3.7 .1-7.4 .1-11.2 .2-7 0-14.1 .2-21.1 0-2.4 0-4.8 0-7.1 .2-5.1 0-10.1 .1-15.2 .1-3-.2-6 .5-9 .7-2.5 1.8-4.9 3.1-7.1 4.5-7.3 11.1-13 17.7-18.3 5.4-4.2 10.5-8.8 15-13.8 7.7-8.4 14.2-17.9 18.8-28.3 2.5-5.9 4.5-12.1 5.5-18.5 .9-4.4 1.1-8.8 1-13.3 0-7.8-1.4-15.6-3.6-23.2-1.8-5.7-4.3-11.2-7.1-16.4-3.9-6.9-8.6-13.3-14-19.2-9.9-10.8-21.8-19.9-34.6-27.1-1.8-1-3.8-1.8-5.6-3zM221.9 121.9c1-1.2 2-2.3 3.1-3.4-.6 .9-1.3 1.8-2 2.7-3.1 3.9-5.5 8.3-7 13.1-.9 3.3-1.7 6.6-1.7 10-.1 2.5-.1 5.1 .3 7.6 1.1 7.6 4.3 14.9 8.8 21.1 2 2.7 4.2 5.3 6.9 7.3 1.6 1.3 3.5 2.1 5.3 3 3.1 1.7 6.3 3.2 9.1 5.5 2.7 2.1 4.6 5.3 4.4 8.8 0 73.7 0 147.3 0 221 0 1.4-.1 2.7 0 4 .1 1.5 .8 2.8 1.5 4.1 .9 1.7 1.8 3.3 3.2 4.6 .9 .8 2 1.4 3.2 1.2 1.5-.2 2.7-1.4 3.4-2.6 1-1.5 1.7-3.2 2.3-4.9 .8-2.1 .4-4.4 .5-6.6 .1-4 0-8.1 .1-12.1 0-5.9 0-11.8 .1-17.7 .1-3.6 0-7.2 .1-10.9 .2-4 0-8.1 .1-12.1 0-6 0-12 .1-18 .1-3.6 0-7.2 .1-10.9 .1-3.9 0-7.9 .1-11.8 0-6 0-12 .1-18 .2-3.9 0-7.9 .2-11.8 .3 1.4 .1 2.9 .2 4.4 .2 3.6 .4 7.2 .8 10.8 .3 3.4 .4 6.9 .9 10.3 .4 3.1 .5 6.2 1 9.3 .6 4.1 .9 8.2 1.5 12.3 1.5 9 2.8 18.1 5.1 27 1.1 4.8 2.4 9.6 4 14.3 2.5 7.9 5.7 15.7 10.3 22.6 1.7 2.6 3.9 5 6.1 7.2 .3 .2 .6 .5 .9 .7 .6 .3 1.3-.1 1.7-.6 .7-.9 1.2-1.9 1.7-2.9 4.1-7.8 8.2-15.6 12.3-23.3 .7-1.3 1.4-2.6 2.6-3.6 1.8-1.6 3.8-2.7 6-3.6 2.9-1.2 5.9-2.2 9-2.4 6.6-.6 13.1 .7 19.6 1.8 3.7 .6 7.4 1.2 11.1 1.4 3.7 .1 7.5 .1 11.2-.3 8.6-.9 17-3 24.9-6.2 5.3-2.2 10.5-4.8 15.3-7.9 11.5-7.2 21.5-16.6 30-27 1.2-1.4 2.2-2.9 3.5-4.3-1.2 3.2-2.7 6.4-4.2 9.5-1.3 2.9-2.8 5.6-4.3 8.4-5.2 9.6-11 18.9-17.8 27.5-4 5.2-8.5 10.1-13.3 14.6-6.6 6.1-14.1 11.4-22.4 14.8-8.2 3.4-17.3 4.6-26.1 3.3-3.6-.6-7-1.7-10.4-2.9-2.8-1-5.4-2.4-8-3.7-3.4-1.7-6.6-3.8-9.7-6.1 2.7 3.1 5.7 5.9 8.7 8.6 4.3 3.8 8.7 7.3 13.6 10.2 4 2.5 8.3 4.4 12.8 5.5 1.5 .4 3 .5 4.5 .6-1.3 1.1-2.6 2-4 3-9.6 6.5-20 11.9-30.7 16.4-20.9 8.7-43.2 14-65.7 15.3-4.7 .2-9.3 .4-14 .4-5-.1-10-.1-14.9-.7-11.2-.8-22.3-2.7-33.2-5.4-10.4-2.7-20.6-6.1-30.3-10.6-8.7-3.9-17.1-8.4-25-13.8-1.8-1.3-3.7-2.5-5.4-4.1 6.6-1.2 13-3.4 19-6.5 5.7-2.9 11-6.7 15.6-11.1 2.2-2.2 4.3-4.6 6.2-7.1-3.4 2.1-6.9 4.2-10.6 5.8-4.4 2.2-9.1 3.8-13.8 5-5.7 1.5-11.7 1.7-17.6 1.1-8.1-1-15.9-4.3-22.5-9-4.3-2.9-8.2-6.4-12-10.1-9.9-10.2-18.2-21.8-25.7-33.9-3.9-6.3-7.5-12.7-11.1-19.2-1-2-2.1-4.1-3.2-6.1 2.8 2.9 5.6 6 8.4 8.9 19.2 19.2 37.6 32.3 53.7 35.5 3.1 .7 6.3 .5 9.5 .8 2.8 .3 5.6 .2 8.3 .3 5 .1 10.1 0 15.2-.2 3.6-.2 7.3-.7 10.9-1.1 2.1-.2 4.1-.7 6.1-1.2 3.9-1 8.1-1 11.8 .6 4.8 1.8 8.4 5.6 11.4 9.7 2.2 3 4.1 6.2 5.7 9.6 1.2 2.4 2.5 4.8 3.6 7.3 1 2.2 2.2 4.4 3.4 6.5 .7 1 1.4 2.2 2.6 2.6 1.1-.8 1.7-1.9 2.3-3 2.1-4.2 3.4-8.6 4.9-13 2-6.6 3.8-13.3 5.2-20 2.2-9.3 3.2-18.7 4.5-28.1 .6-4 .8-8 1.3-12 .9-10.6 1.9-21.3 2.2-31.9 .1-1.9 .2-3.7 .3-5.6 0-4.3 .2-8.7 .2-13 0-2.4 0-4.8 0-7.1 0-5.1-.2-10.1-.2-15.2-.2-6.6-.7-13.2-1.3-19.8-.7-5.9-1.5-11.8-3.1-17.5-2-7.7-5.6-15-9.8-21.8-3.2-5.1-6.8-9.9-11.1-14-3.9-3.9-8.6-7.1-13.9-8.4-1.5-.4-3.1-.4-4.6-.6 .1-3 .7-5.9 1.3-8.8 1.6-7.7 3.8-15.3 6.8-22.6 1.5-4 3.4-7.9 5.4-11.7 3.4-6.6 7.6-12.8 12.5-18.5zm31.3 1.7c.4-.1 .7-.1 1.1-.2 .2 1.8 .1 3.6 .1 5.4l0 38.1c0 1.7 .1 3.5-.2 5.2-.4 0-.7 0-1.1 0-.9-3.8-1.7-7.6-2.6-11.3-.4-1.5-.6-3.1-1.1-4.6-1.7-.2-3.4-.2-5.2-.2-5.1 0-10.1 0-15.2 0-1.7 0-3.3 .1-5 0 0-.4-.3-.9 .2-1.2 1.3-.7 2.7-.9 4.1-1.4 3.4-1.1 6.9-2.2 10.3-3.3 1.4-.5 2.9-.7 4.2-1.5 0-.6 0-1.1 0-1.7-1.2-.6-2.5-.9-3.8-1.3-3.1-1-6.3-2-9.4-3-1.8-.6-3.7-1-5.4-1.8 0-.4-.1-.7-.1-1.1 5.1-.2 10.2 .1 15.3-.1 3.4-.1 6.7 .1 10.1-.1 .1-.4 .3-.8 .4-1.2 1.1-4.9 2.3-9.8 3.4-14.7zm6-.2c.4 0 .7 .1 1.1 .2 1 3.8 1.7 7.8 2.7 11.6 .4 1.4 .6 2.9 1 4.3 2.5 .2 5.1 0 7.6 0 5.2 .1 10.3 .1 15.5 .1 .8 0 1.5 0 2.3 .1 0 .4-.1 .7-.1 1.1-1.8 .8-3.8 1.2-5.7 1.9-3.7 1.2-7.5 2.4-11.2 3.6-.6 .2-1.1 .4-1.7 .6-.2 .6-.2 1.1-.1 1.7 .9 .5 1.8 .8 2.8 1.1 4.9 1.5 9.7 3.1 14.6 4.6 .4 .1 .8 .3 1.1 .5 .4 .3 .2 .8 .2 1.2-1.7 .1-3.3 0-5 0-5.2 0-10.3 0-15.5 0-1.6 0-3.2 0-4.8 .2-.5 1.7-.7 3.4-1.2 5.1-.9 3.6-1.5 7.2-2.5 10.8-.4 0-.7 0-1.1 .1-.3-1.7-.2-3.5-.2-5.2l0-38.1c0-1.8-.1-3.6 .1-5.4zm-186 45c1.1-2.2 2.1-4.4 3.4-6.5-1.8 7.6-2.9 15.3-3.6 23-.8 7.7-.8 15.5-.5 23.2 1.1 19.9 5.5 39.8 14.2 57.9 3 6 6.4 11.8 10.5 17.1 6.1 7.5 12.5 14.8 19.8 21.1 4.8 4.1 10 7.8 15.5 10.8 3.3 1.7 6.5 3.4 9.9 4.7 5 2 10.2 3.6 15.4 4.9 3.8 1 7.8 1.4 11.5 2.7 5 1.6 9.5 4.6 13 8.4 4.9 5.2 8.1 11.9 10.2 18.7 1 2.9 1.6 5.9 2.2 8.9 .2 .8 .2 1.5 .2 2.3-6.5 2.8-13.3 5.1-20.3 6.2-4.1 .8-8.3 1-12.5 1.1-10.2 .2-20.5-1.8-30.1-5.1-3.7-1.4-7.5-2.9-11-4.7-8.1-3.8-15.6-8.7-22.5-14.5-2.9-2.6-5.8-5.1-8.4-8-9.2-9.8-16.3-21.4-21.8-33.7-2.4-5.5-4.6-11.2-6.4-17-1.2-3.9-2.4-7.9-3.3-11.9-.7-2.9-1.2-5.9-1.9-8.9-.5-2.1-.7-4.3-1-6.5-.8-5.4-1.3-10.9-1.3-16.4 .1-6.2 .2-12.4 1.1-18.5 .4-2.9 .7-5.7 1.2-8.6 1-5.7 2.1-11.4 3.7-16.9 3.1-11.6 7.5-23 12.7-33.8zm363.7-6.4c1.1 1.7 1.9 3.5 2.8 5.3 2.1 4.5 4.2 8.9 6 13.5 7.6 18.8 12.3 38.8 13 59 0 1.8 .1 3.5 .1 5.3 .1 9.6-1.3 19.1-3.2 28.5-.7 3.6-1.5 7.2-2.6 10.7-4 14.7-10 29-18.4 41.8-8.2 12.6-19 23.5-31.8 31.4-5.7 3.6-11.8 6.6-18 9.2-5.8 2.2-11.7 4-17.8 5.1-6.4 1-12.9 1.5-19.4 1.2-7.9-.5-15.8-2.1-23.2-4.8-1.9-.8-3.9-1.5-5.8-2.3-.2-1.5 .2-3 .5-4.5 1.2-5.7 3-11.4 5.7-16.6 2.4-4.5 5.5-8.7 9.5-11.9 2.4-2.1 5.2-3.6 8.2-4.8 3.6-1.5 7.5-2 11.2-2.8 7.2-1.7 14.4-3.9 21.2-7 10.3-4.7 19.7-11.4 27.6-19.5 1.6-1.6 3.2-3.2 4.7-4.9 3.4-3.8 6.7-7.6 9.8-11.5 7.5-10.1 12.8-21.6 16.7-33.5 1.6-5.3 3.2-10.6 4.2-16.1 .6-2.9 1-5.8 1.5-8.7 .9-6.1 1.6-12.2 1.7-18.4 .1-6.6 .1-13.3-.5-19.9-.7-8-1.9-16-3.7-23.8z"],suse:[640,512,[],"f7d6","M604.5 210a10.4 10.4 0 1 1 -11.4-17.4 10.4 10.4 0 1 1 11.4 17.4zM621 187.2a38.5 38.5 0 1 1 -75 17.6 38.5 38.5 0 1 1 75-17.6zM433.7 336.7c3.2 4.6 5.8 9 7.3 13.4 1 3.1 2.4 7.3 5.5 8.9 .2 .1 .3 .2 .5 .2 5.7 2.1 20.3 1.7 20.3 1.7l26.8 0c2.3 0 22.4 0 21.9-2.3-2.4-10.8-14.9-12.7-24.4-18.3-8.7-5.2-17-11.1-20.8-21.3-2-5.2-.8-17.4 2.6-21.8 2.5-3.2 6.1-5.3 10-6.2 4.3-.9 8.8-.1 13.1 .3 5.3 .5 10.6 1.5 15.9 2.2 10.3 1.3 20.6 1.9 31 1.6 17.1-.5 34.2-3.2 50.4-8.7 11.3-3.8 22.4-8.9 32-16.1 10.9-8.1 8.1-7.4-3-6.2-13.3 1.4-26.6 1.6-39.9 .8-12.4-.7-24.7-2.2-35.9-7.9-8.8-4.6-16.4-9.1-23.4-16.2-1-1.1-1.7-4.2 .2-6.2 1.9-1.9 5.8-.8 7 .2 12.2 10.2 30.5 18.6 49.3 19.5 10.2 .5 20.1 .7 30.4 .3 5.1-.2 12.8-.2 17.9-.3 2.6 0 9.8 .7 11.2-2.1 .4-.8 .4-1.8 .3-2.7-1.5-40.9-4.5-86.9-47.3-106.5-31.9-14.6-79.7-37.2-99.9-46.6-4.7-2.2-10.2 1.3-10.2 6.5 0 13.6 .7 33.3 .7 51.1-9.7-9.9-26-16.1-38.4-21.8-14.1-6.5-28.7-12-43.5-16.6-29.8-9.2-60.7-14.9-91.7-18-35.2-3.5-71-1.8-105.7 5.3-56.9 12.2-113.1 39.7-155.7 79.8-26.1 24.6-46.6 59.7-48 95.2-2 50.3 12.1 77.3 38 105.2 41.3 44.4 130.2 50.6 166.2-2 16.2-23.7 19.7-55.8 8-82-11.8-26.2-38.8-45.1-67.4-46-22.2-.7-45.9 10.6-54.5 31.1-6.5 15.7-2.8 35.1 9 47.3 4.6 4.8 10.9 8.7 17.7 7.1 4-.9 7.4-3.9 8-8 .9-6-4.4-9.9-7.6-14.5-5.8-8.3-4.7-20.9 2.7-27.9 6.2-6 15.3-7.8 23.9-7.7 8 0 16.2 1.4 23.1 5.5 9.7 5.7 16.2 16.2 18.4 27.2 6.7 33-20.2 59.9-56.6 62-18.6 1.1-37.6-3.8-52.1-15.5-36.9-29.8-45.9-90.3-3.8-122.7 40-30.7 90.4-22.8 120.2-6.8 23.8 12.8 41.5 33.6 55 56.7 6.7 11.6 12.5 23.7 17.8 36.1 5.1 11.8 9.9 23.8 20.2 32.5 6.8 5.8 15.2 5.6 24.1 5.6l50.8 0c6.9 0 5.2-4.6 2.2-7.7-6.7-6.9-16.4-8.4-25.4-10.9-20.5-5.6-18.4-32.8-12.7-32.8 18.3 0 18.9 .6 34.9 .3 23.2-.3 30.2-1.7 48.3 5 9.7 3.6 19 13.1 25.1 21.7z"],"app-store-ios":[448,512,[],"f370","M400 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9L84 330.6c-11 0-20-9-20-20s9-20 20-20l51 0 65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6 62.1 0c20.2 0 31.5 23.7 22.7 40zm98.1 0l-29 0 19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102l52 0c11 0 20 9 20 20 0 11.1-9 20-20 20z"],"square-dribbble":[448,512,["dribbble-square"],"f397","M165.9 132.5c-38.3 18-66.8 53.3-75.7 95.7 6.1 .1 62.4 .3 126.4-16.7-22.7-40.2-47.1-74.1-50.7-79zm26.1-9.1c3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4-33.6-29.8-79.3-41.1-122.6-30.6zM277.4 382c-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6 40.5 31.6 93.3 36.7 137.3 18zM227.8 232.6C159.6 253 93.4 252.2 87.4 252l0 4.2c0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8-3.4-7.8-7.2-15.5-11.1-23.2l-.1 0zm72.5 136.9c30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8 17.9 49.1 25.1 89.1 26.5 97.4zm-34.8-119c45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9 4.8 9.8 8.3 17.8 12 26.8zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM224 96a160 160 0 1 1 0 320 160 160 0 1 1 0-320z"],uikit:[448,512,[],"f403","M443.9 128l0 256-225.9 128-218-128 0-214.3 87.6 45.1 0 117 133.5 75.5 135.8-75.5 0-151-101.1-57.6 87.6-53.1 100.5 57.9zM308.6 49.1l-84.8-49.1-88.6 54.8 86 47.3 87.4-53z"],superpowers:[448,512,[],"f2dd","M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zM368.3 264.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z"],youtube:[576,512,[61802],"f167","M549.7 124.1C543.5 100.4 524.9 81.8 501.4 75.5 458.9 64 288.1 64 288.1 64S117.3 64 74.7 75.5C51.2 81.8 32.7 100.4 26.4 124.1 15 167 15 256.4 15 256.4s0 89.4 11.4 132.3c6.3 23.6 24.8 41.5 48.3 47.8 42.6 11.5 213.4 11.5 213.4 11.5s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zM232.2 337.6l0-162.4 142.7 81.2-142.7 81.2z"],ember:[640,512,[],"f423","M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6 .5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7 .8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5 .3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7 .3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9l1.6 0s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2 1.9 0s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zM334.7 136.1s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z"],bootstrap:[576,512,[],"f836","M333.5 201.4c0-22.1-15.6-34.3-43-34.3l-50.4 0 0 71.2 42.5 0c32.8-.1 50.9-13.3 50.9-36.9zM517 188.6c-9.5-30.9-10.9-68.8-9.8-98.1 1.1-30.5-22.7-58.5-54.7-58.5L123.7 32c-32.1 0-55.8 28.1-54.7 58.5 1 29.3-.3 67.2-9.8 98.1-9.6 31-25.7 50.6-52.2 53.1l0 28.5c26.4 2.5 42.6 22.1 52.2 53.1 9.5 30.9 10.9 68.8 9.8 98.1-1.1 30.5 22.7 58.5 54.7 58.5l328.7 0c32.1 0 55.8-28.1 54.7-58.5-1-29.3 .3-67.2 9.8-98.1 9.6-31 25.7-50.6 52.1-53.1l0-28.5c-26.3-2.5-42.5-22.1-52-53.1zM300.2 375.1l-97.9 0 0-238.3 97.4 0c43.3 0 71.7 23.4 71.7 59.4 0 25.3-19.1 47.9-43.5 51.8l0 1.3c33.2 3.6 55.5 26.6 55.5 58.3 0 42.1-31.3 67.5-83.2 67.5zm-10-108.7l-50.1 0 0 78.4 52.3 0c34.2 0 52.3-13.7 52.3-39.5 0-25.7-18.6-38.9-54.5-38.9z"],itunes:[448,512,[],"f3b4","M223.6 80.3a171.3 171.3 0 1 0 .2 342.5 171.3 171.3 0 1 0 -.2-342.5zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1 .5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7 .9-127 2.6-133.7 .4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6 .4 161.4-1 167.6zM345.2 32L102.8 32C45.9 32 0 77.9 0 134.8L0 377.2C0 434.1 45.9 480 102.8 480l242.4 0c57 0 102.8-45.9 102.8-102.8l0-242.4C448 77.9 402.1 32 345.2 32zM223.6 59a192.5 192.5 0 1 1 0 385 192.5 192.5 0 1 1 0-385z"],"square-xing":[448,512,["xing-square"],"f169","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM93.8 320.2c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6 .2-10.1 6-10.1l46.6 0c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1l-46.6 0zm163.5-33.4l0 .2 65.5 119c2.8 5.1 .1 10.1-6 10.1l-46.6 0c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c1.8-3.2 22.9-40.4 63.3-111.6 11.7-20.7 25.1-44.3 40.1-70.8 3.3-5.8 7.4-8.7 12.5-8.7l46.9 0c5.7-.1 8.8 4.7 6 10L257.3 286.8z"],"css3-alt":[384,512,[],"f38b","M0 32L34.9 427.8 192 480 349.1 427.8 384 32 0 32zm313.1 80l-4.8 47.3-115.3 49.3-.3 .1 111.5 0-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9 48.9 0 3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5 0-.1-.2 .1-3.6-46.3 112.1-46.7 6.5-2.7-122.9 0-5.8-47.3 242.2 0z"],squarespace:[512,512,[],"f5be","M186.1 343.3c-9.7 9.7-9.7 25.3 0 34.9s25.3 9.6 34.9 0L378.3 221.1c19.3-19.3 50.6-19.3 69.9 0s19.3 50.6 0 69.9L294 445.1c19.3 19.3 50.5 19.3 69.8 0l0 0 119.3-119.2c38.6-38.6 38.6-101.1 0-139.7-38.6-38.6-101.2-38.6-139.7 0L186.1 343.3zM430.7 238.5c-9.7-9.7-25.3-9.7-34.9 0L238.5 395.7c-19.3 19.3-50.5 19.3-69.8 0l0 0c-9.6-9.6-25.3-9.7-34.9 0l0 0c-9.7 9.6-9.7 25.3 0 34.9l0 0c38.6 38.6 101.1 38.6 139.7 0L430.7 273.5c9.6-9.7 9.6-25.3 0-34.9zm-262 87.3L325.9 168.7c9.6-9.6 9.6-25.3 0-34.9-9.6-9.6-25.3-9.6-34.9 0L133.7 290.9c-19.3 19.3-50.6 19.3-69.9 0l0 0c-19.3-19.3-19.3-50.5 0-69.8l0 0 154.2-154.2c-19.3-19.3-50.5-19.3-69.8 0l0 0-119.2 119.3c-38.6 38.6-38.6 101.1 0 139.7 38.6 38.6 101.1 38.6 139.7 0zM81.3 273.5c9.6 9.6 25.3 9.6 34.9 0L273.5 116.3c19.3-19.3 50.6-19.3 69.8 0l0 0c9.7 9.6 25.3 9.6 34.9 0s9.6-25.3 0-34.9c-38.6-38.6-101.1-38.6-139.7 0L81.3 238.5c-9.6 9.6-9.6 25.3 0 34.9l0 0z"],trello:[448,512,[],"f181","M392.3 32L56.1 32c-31 0-56.1 25.1-56.1 56-.1 0 0-4 0 336 0 30.9 25.1 56 56 56l336.2 0c30.8-.2 55.7-25.2 55.7-56l0-336c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6l-82.7 0c-14.8 .1-26.9-11.8-27-26.6l0-254.2c0-14.8 12-26.9 26.9-26.9l82.9 0c14.8 0 26.9 12 26.9 26.9l0 254.2-.1 0zm193.1-112c0 14.8-12 26.9-26.9 26.9l-81 0c-14.8 0-26.9-12-26.9-26.9l0-142.1c0-14.8 12-26.9 26.8-26.9l81.1 0c14.8 0 26.9 12 26.9 26.9l0 142.1z"],viadeo:[448,512,[],"f2a9","M276.4 150.5l0 .7c-17.9-52.6-42.6-103.4-70.8-151.2 43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280-65.7-11.4-111.3-68.6-111.3-137.4 0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.3 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z"],searchengin:[448,512,[],"f3eb","M214.6 130.3l-67.2 28.2 0-115.3-54.7 190.3 54.7-24.2 0 130.3 67.2-209.3zM131.4 33.6l-1.3 4.7-15.2 52.9C74.6 106.7 46 145.8 46 191.5 46 243.8 80.3 287.4 129.4 297l0 53.6C51.5 340.1-6 272.4-6 191.6-6 111.1 53.8 44.4 131.4 33.6zM442.8 480.8c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1l0-52.1c83.2 5.1 148.8 74.5 148.8 159.3 0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z"],paypal:[384,512,[],"f1ed","M111.9 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5l-74.6 0c-7.6 0-13.1-6.6-12.1-13.9L59.3 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4 .7-69.5-7-75.3 24.2zM357.6 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9l63.5 0c8.6 0 15.7-6.3 17.4-14.9 .7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z"],"square-bluesky":[448,512,[],"e6a3","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 247.4c14.5-30 54-85.8 90.7-113.3 26.5-19.9 69.3-35.2 69.3 13.7 0 9.8-5.6 82.1-8.9 93.8-11.4 40.8-53 51.2-90 44.9 64.7 11 81.2 47.5 45.6 84-67.5 69.3-97-17.4-104.6-39.6l-.3-.9c-.9-2.6-1.4-4.1-1.8-4.1s-.9 1.5-1.8 4.1c-.1 .3-.2 .6-.3 .9-7.6 22.2-37.1 108.8-104.6 39.6-35.5-36.5-19.1-73 45.6-84-37 6.3-78.6-4.1-90-44.9-3.3-11.7-8.9-84-8.9-93.8 0-48.9 42.9-33.5 69.3-13.7 36.7 27.5 76.2 83.4 90.7 113.3z"],"d-and-d-beyond":[640,512,[],"f6ca","M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9 .2-5.8 1.6-7.5 .6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9 .6-.3 1.3 0 .6 1.9-.2 .6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3 .1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9 .9 7.5 .2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1 .6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6 .7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4 .2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5 .5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2 0 77.2-7.4 8.2c10.4 .8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6l0-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6 .5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9 .5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8 .5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6 .3 3 .6 4.3 1.1-2.1 .8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2 .8 .2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8 .6-2.6-.2s.3-4.3 .3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3 .6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7 .2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7 .6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8 .8-1.4 1.8-2.1 2.6l0 15.7c3.5 2.6 7.1-2.9 3-7.2 1.5 .3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9 .3 5.6 1.1l0-18.4c-1.1 .5-2.2 1-2.7 1.4l-.7 .7zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25l-56.1 0 8.3 8.6 0 29.5-11.3 0 11.4 14.6 0 32.3-8.4 8.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zM38.6 278.4c20 0 29.6-.8 29.6 9.1l0 3c0 12.1-19 8.8-29.6 8.8l0-20.9zm0 59.2l0-22.6c12.2 0 32.7-2.3 32.7 8.8l0 4.5 .2 0c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1 .2 0-.2 14.1-21.2-37.2 0 0-14.9 52.4 0-14.1-21 0-.2-73.5 .2 7.4 8.2 0 77.1-7.4 8.2 81.2 0 14.1-21.2-60.1 .2 0-15.4zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3 .3-99.3zm-.3 77.5c-37.4 0-36.9-55.3 .2-55.3 36.8 .1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2-41.7 0 6.1 7.2-20.5 37.2-.3 0-21-37.2 6.4-7.2-44.9 0 44.1 65.8 .2 19.4-7.7 8.2 42.6 0-7.2-8.2-.2-19zM234.5 176.1c1.6 1.3 2.9 2.4 2.9 6.6l0 38.8c0 4.2-.8 5.3-2.7 6.4-.1 .1-7.5 4.5-7.9 4.6l35.1 0c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5 .8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6 .3-39.9-4 .1 .8 .5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3l0-34.6zm228.9 79.6l7 8.3 0 42.5-.3 0c-5.4-14.4-42.3-41.5-45.2-50.9l-31.6 0 7.4 8.5 0 76.9-7.2 8.3 39 0-7.4-8.2 0-47.4 .3 0c3.7 10.6 44.5 42.9 48.5 55.6l21.3 0 0-85.2 7.4-8.3-39.2-.1zM378.2 165.1c-32.2 0-32.8 .2-39.9-4 .1 .7 .5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6 .3-4 1.1-6.1 2.9 .1 0 2.1-1.1 7.5-.3l0-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3l.3 0c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z"],microsoft:[448,512,[],"f3ca","M0 32l214.6 0 0 214.6-214.6 0 0-214.6zm233.4 0l214.6 0 0 214.6-214.6 0 0-214.6zM0 265.4l214.6 0 0 214.6-214.6 0 0-214.6zm233.4 0l214.6 0 0 214.6-214.6 0 0-214.6z"],fly:[320,512,[],"f417","M165.9 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9 .3 6.7 2.8zM300 67.3c-16.3-25.7-38.6-40.6-63.3-52.1-25.5-10.7-54.6-15.4-76.6-15.2-44.1 0-71.2 13.2-81.1 17.3-53.6 27.9-84.4 69.9-82.9 141.3 7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3 .1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM154.9 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7l0 325.7zM296.8 180c-16.4 56.8-77.3 128-118.9 170.3 27.8-51.9 65.2-133.3 67.2-191.9 1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z"],"cc-stripe":[576,512,[],"f1f5","M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7l36.7 0c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1l0-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5l0 33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zM191 224.5l-27 0 0 50.5c0 20.9 22.5 14.4 27 12.6l0 28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4 0 30.8 26.9 0 0 30.3zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4l0 84.4-35.5 0 0-124.5 30.7 0 2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5l.1 0 0 32.7zm44.1 91.8l-35.7 0 0-124.5 35.7 0 0 124.5zm0-142.9l-35.7 7.6 0-28.9 35.7-7.6 0 28.9zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5 0-165.8 31.3 0 1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5l-69.5 0c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9l0 28.6c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z"],"wordpress-simple":[512,512,[],"f411","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM33 256c0-32.3 6.9-63 19.3-90.7L158.7 456.7C84.3 420.5 33 344.2 33 256zM256 479c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2-48.8 146.3-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3 39.9-60.5 108.4-100.5 186.3-100.5 58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z"],sellsy:[640,512,[],"f213","M540 237.3c3.1-12.3 4.3-24.8 4.3-37.4 0-92.5-75.4-167.9-167.9-167.9-77.2 0-144.6 53-163 127.8-15.3-13.2-34.9-20.5-55.2-20.5-46.3 0-84 37.7-84 84 0 7.4 .9 15 3.1 22.4-42.9 20.2-70.8 63.7-70.8 111.2 0 68 55.5 123.2 123.2 123.2l381.2 0c67.7 0 123.2-55.2 123.2-123.2 0-56.4-38.9-106-94.1-119.5zM200.2 401.6c0 8.3-7 15.3-15.3 15.3l-30.9 0c-8.3 0-15.3-7-15.3-15.3l0-110.9c0-8.3 7-15.3 15.3-15.3l30.9 0c8.3 0 15.3 7 15.3 15.3l0 110.9zm89.5 0c0 8.3-7 15.3-15.3 15.3l-30.9 0c-8.3 0-15.3-7-15.3-15.3l0-131.5c0-8.3 7-15.3 15.3-15.3l30.9 0c8.3 0 15.3 7 15.3 15.3l0 131.5zm89.5 0c0 8.3-7 15.3-15.3 15.3l-31 0c-8.3 0-15.3-7-15.3-15.3l0-162.7c0-8.3 7-15.3 15.3-15.3l31 0c8.3 0 15.3 7 15.3 15.3l0 162.7zm87 0c0 8.3-7 15.3-15.3 15.3l-28.5 0c-8.3 0-15.3-7-15.3-15.3l0-224.6c0-8.6 7-15.6 15.3-15.6l28.5 0c8.3 0 15.3 7 15.3 15.6l0 224.6z"],dashcube:[448,512,[],"f210","M326.9 104l-216.2 0c-51.1 0-91.2 43.3-91.2 93.5l0 229.5c0 50.5 40.1 85 91.2 85l227.2 0c51.1 0 91.2-34.5 91.2-85l0-427-102.2 104zM154.2 416.5c-17.7 0-32.4-15.1-32.4-32.8l0-142.9c0-17.7 14.7-32.5 32.4-32.5l140.7 0c17.7 0 32 14.8 32 32.5l0 123.5 51.1 52.3-223.8 0 0-.1z"],gitter:[384,512,[],"f426","M66.4 322.5l-50.4 0 0-322.5 50.4 0 0 322.5zM166.9 76.1l-50.4 0 0 435.9 50.4 0 0-435.9zm100.6 0l-50.4 0 0 435.9 50.4 0 0-435.9zM368 76l-50.4 0 0 247 50.4 0 0-247z"],"wolf-pack-battalion":[448,512,[],"f514","M236.2 471.5l10.6 15.8 5.3-12.3 5.3 7 0 29.9c21.1-7.9 21.1-66.9 25.5-97.2 4.6-31.9-.9-92.8 81.4-149.1-8.9-23.6-12-49.4-2.6-80 27.9 3.4 53.9 10.6 63.3 54.1l-30.3 8.4c11.1 23 17 46.8 13.2 72.1l-27.3-7-6.2 33.4-18.5-7-8.8 33.4-19.4-7 26.4 21.1 8.8-28.2 24.6 5.2 7-35.6 26.4 14.5c.2-20 7-58.1-8.8-84.5l26.4 5.3c4-22.1-2.4-39.2-7.9-56.7l22.4 9.7c-.4-25.1-29.9-56.8-61.6-58.5-20.2-1.1-56.7-25.2-54.1-51.9 2-19.9 17.4-42.6 43.1-49.7-44 36.5-9.7 67.3 5.3 73.5 4.4-11.4 17.5-69.1 0-130.2-40.4 22.9-89.7 65.1-93.2 147.8l-58 38.7-3.5 93.2 107.3-59.8 7 7-17.6 3.5-44 38.7-15.8-5.3-28.1 49.3-3.5 119.6 21.1 15.8-32.5 15.8-32.6-15.8 21.1-15.8-3.5-119.6-28.2-49.3-15.8 5.3-44-38.7-17.6-3.5 7-7 107.3 59.8-3.5-93.3-58.1-38.7c-3.5-82.8-52.7-125-93.2-147.9-17.5 61.1-4.4 118.8 0 130.2 15-6.2 49.3-37 5.3-73.5 25.7 7.1 41.1 29.8 43.1 49.7 2.6 26.7-33.9 50.8-54.1 51.9-31.7 1.7-61.2 33.4-61.6 58.5l22.4-9.7C13.4 224.7 7 241.8 11 263.9l26.4-5.3c-15.8 26.4-9.1 64.4-8.8 84.4l26.4-14.5 7 35.6 24.6-5.3 8.8 28.2 26.4-21.1-19.4 7-8.8-33.4-18.5 7-6.2-33.4-27.3 7C38 294.8 43.8 271 55 248l-30.3-8.4c9.4-43.5 35.5-50.8 63.3-54.1 9.4 30.6 6.2 56.5-2.6 80.1 82.3 56.3 76.8 117.2 81.4 149.1 4.4 30.3 4.4 89.3 25.5 97.2l0-29.8 5.3-7 5.3 12.3 10.6-15.8 11.4 21.1 11.4-21.1 0 0zm79.2-95L299.5 366c7.5-4.4 13.8-8.4 19.4-12.3-.6 7.2-.3 13.8-3.5 22.8l0 0zm28.2-49.3c-.4 10.9-.9 21.7-1.8 31.7-7.8-1.9-15.6-3.8-21.1-7 8.2-7.9 15.6-16.3 22.9-24.7l0 0zm24.6 5.3c0-13.4-2.1-24.2-5.3-33.4-5.5 9.5-11.7 18.6-18.5 27.3l23.8 6.2zm3.5-80.9c19.4 12.8 27.8 33.7 29.9 56.3-12.3-4.5-24.6-9.3-37-10.6 5.1-12 6.6-28.1 7-45.7l0 0zm-1.8-45.7c.8 14.3 1.8 28.8 1.8 42.2 19.2-8.1 29.8-9.7 44-14.1-10.6-19-27.2-25.5-45.8-28.2l0 0zM134.2 376.5L150 366c-7.5-4.4-13.8-8.4-19.4-12.3 .6 7.3 .3 13.9 3.5 22.9l0 0zM106 327.3c.4 10.9 .9 21.7 1.8 31.7 7.8-1.9 15.6-3.8 21.1-7-8.2-7.9-15.6-16.3-22.9-24.7zm-24.6 5.3c0-13.4 2-24.2 5.3-33.4 5.5 9.5 11.7 18.6 18.5 27.3l-23.8 6.2zm-3.5-80.9c-19.4 12.8-27.8 33.7-29.9 56.3 12.3-4.5 24.6-9.3 37-10.6-5-12-6.6-28.1-7-45.7l-.1 0zm1.8-45.7c-.8 14.3-1.8 28.8-1.8 42.2-19.2-8.1-29.8-9.7-44-14.1 10.6-19 27.2-25.5 45.8-28.1z"],lastfm:[512,512,[],"f202","M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163-86.1 0-131.8 54.5-131.8 147.2 0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z"],shopware:[512,512,[],"f5b5","M403.5 455.4c-42.6 31.7-94.4 48.7-147.5 48.6-137.2 0-248-111-248-248 0-137.2 111-248 248-248 61.2-.1 120.2 22.6 165.7 63.5 .6 .5 .9 1.2 1.1 1.9s.1 1.5-.3 2.2-.8 1.3-1.5 1.6-1.4 .5-2.2 .4c-18.8-2.5-37.7-3.7-56.7-3.7-129.4 0-222.4 53.5-222.4 155.4 0 109 92.1 145.9 176.8 178.7 33.6 13 65.4 25.4 87 41.6 .4 .3 .8 .8 1.1 1.3s.4 1 .4 1.6-.1 1.1-.4 1.6-.6 .9-1.1 1.3l-.1 0zM503 233.1c-.1-.9-.5-1.8-1.3-2.4-51.8-43-93.6-60.5-144.5-60.5-84.1 0-80.3 52.2-80.3 53.6 0 42.6 52.1 62 112.3 84.5 31.1 11.6 63.2 23.6 92.7 39.9 .4 .2 .9 .4 1.4 .4s1 0 1.5-.2 .9-.4 1.3-.8 .6-.8 .8-1.2c14.1-36 19.5-74.8 16-113.3z"],blogger:[448,512,[],"f37c","M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1 .1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4 .1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8 .2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9 .7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zM447.2 420.6c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22S0 420.3 0 256.3c0-163.1 0-166.6 1.8-173.7 6.3-24.7 25.9-43.6 51.2-49.2 7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6 .2 115.8 0 164.5-.7 170.5zM361.8 235.4c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5 .4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7 .5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z"],edge:[512,512,[],"f282","M120.1 37.4c41-25.2 87.6-38.2 134.9-37.4 168 0 257 123.8 257 219.5-.1 32.7-13 63.9-35.9 87.2-22.9 23.2-54 36.5-86.7 37-75.2 0-91.5-23.1-91.5-32 0-3.8 1.2-6.2 4.8-9.4l1-1.2 .4-1.6c10.5-11.5 15.9-26.2 15.9-41.6 0-78.7-82.2-142.7-184-142.7-37.5-.3-74.5 8.9-107.5 26.9 27-57.5 82.7-97.6 91.3-103.8 .8-.6 .3-.8 .3-.8zm15.6 318.1c-1.4 30 4.6 60 16.4 87.2 13.6 26.4 32.7 51 56.5 69.3-59.5-11.5-111.5-43.9-149.4-89.3-38.1-46.4-59.2-104.3-59.2-164.8 0-51.2 62.4-94.4 136-94.4 36.6-.6 72.4 10.9 101.8 32.7l-3.6 1.2c-51.5 17.6-98.5 90.7-98.5 158.1zM469.8 400l-.7 .1c-11.8 18.8-25.9 35.1-42.2 49.5-30.8 28-68.1 45.5-108.8 49.9-18.6 .3-36.8-3.2-53.8-11.4-25.6-10.3-47.1-30-61.6-53-14.4-23.9-21.1-51.7-19-79.6-.6-20.1 5.4-40.3 15-58.2 13.9 33.1 37.5 61.3 67.6 80.8s65.5 29.5 101.4 28.6c31 .3 62.1-6.7 90.2-20.5l1.9-.9c3.9-2.3 7.7-3.9 11.6 0 4.5 4.9 1.8 9.2-1.2 14-.2 .2-.3 .5-.4 .7z"],ioxhost:[640,512,[],"f208","M616 160l-67.3 0C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256 72 272.4 73.6 288.5 76.7 304L24 304c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24l67.3 0c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48l52.7 0c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104L424 352c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24l-298.2 0c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104L216 160c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24l298.2 0c3.8 15.4 5.8 31.4 5.8 48zM216 232l208 0c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z"],schlix:[448,512,[],"f3ea","M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1 17.2 28.4-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zM82.4 133.2l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7-24.8 15.2zM28.4 223.1l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268L20.6 257.8 21 296 0 304.8 1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8 27.4-14.4 8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zM152.5 187.9l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z"],"d-and-d":[576,512,[],"f38d","M82.9 98.9c-.6-17.2 2-33.8 12.7-48.2 .3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1 .7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5 .6-11.4 12.5-14.1 27.4-10.9 43.6 .2 1.3 .4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6 .1 .5 .1 1.1 .1 1.6 0 .3-.1 .5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zM552.5 222.1c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5 .9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5l-2.5 0c-.6 0-1.2 .2-1.9 .3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3 .3 .3 .7 .6 1 .9 .3-.6 .5-1.2 .9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8 .7-3.5 .9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3 .4-.4 .9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6 .2-.1 .3-.2 .4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3l0-.5c-.5-.4-1.2-.8-1.7-1.4zM317.1 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8 .9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9 .8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7 .3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3 .2-.2 .4-.3 .6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8 .6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1 .1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8 .4 4.7 .8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1 .7-52.3 .3 2.2 .4 4.3 .9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8 .1-50.9-10.6 .7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.8 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6 .2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3 .8-2.4 2.3-4.6 4-6.6 .6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2 .5-1 1.1-2 1.9-3.3 .5 4.2 .6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1 .6 .5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7 .4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6 .5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2 .4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3 .3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5 .8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8 .8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3 .6-4.5 .8-9.2 .1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6 .1-23.3 1.3-.9 .1-1.7 .3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z"],vuejs:[448,512,[],"f41f","M356.9 64.3l-76.9 0-56 88.6-48-88.6-176 0 224 383.7 224-383.7-91.1 0zM55.7 96.3l53.8 0 114.5 198.2 114.4-198.2 53.8 0-168.2 288.2-168.3-288.2z"],meta:[640,512,[],"e49b","M640 317.9c0 91.3-39.4 148.5-110.3 148.5-62.6 0-95.8-34.6-156.9-136.6l-31.4-52.6c-8.3-12.5-14.5-24.2-21.2-35-20.1 33.8-47.1 83-47.1 83-67 116.6-104.6 141.2-156.9 141.2-72.8 0-116.2-57.3-116.2-145.9 0-143 79.8-278.1 183.9-278.1 50.2 0 93.8 24.7 144.8 89.5 37.1-50.1 78.1-89.5 130.6-89.5 99.1 0 180.7 125.7 180.7 275.5zM287.4 192.2c-42.9-62.1-70.9-80.5-104.4-80.5-61.9 0-113.8 106.1-113.8 210 0 48.5 18.5 75.7 49.6 75.7 30.2 0 49-19 103.2-103.8 0 0 24.7-39.1 65.4-101.4zM531.2 397.4c32.2 0 46.9-27.5 46.9-74.9 0-124.2-54.3-225.4-123.2-225.4-33.2 0-61.1 25.9-94.9 78 9.4 13.8 19.1 29 29.3 45.4l37.5 62.4c58.7 94.1 73.5 114.5 104.4 114.5z"],"creative-commons-share":[512,512,[],"f4f2","M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7l0 182.5c0 7.7-6.1 13.7-13.7 13.7l-135.1 0c-7.7 0-13.7-6-13.7-13.7l0-54-54 0c-7.8 0-13.7-6-13.7-13.7l0-182.5c0-8.2 6.6-12.7 12.4-13.7l136.4 0c7.7 0 13.7 6 13.7 13.7l0 54 54 0zM167.9 300.3l40.7 0 0-101.4c0-7.4 5.8-12.6 12-13.7l55.8 0 0-40.3-108.5 0 0 155.4zm176.2-88.1l-108.5 0 0 155.4 108.5 0 0-155.4z"],studiovinari:[512,512,[],"f3f8","M480.7 187.7l4.2 28 0 28-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6 20.3 .7 20.3 .7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9 114.9 18.1-101.3-108 252.9 126.6-31.5-38 124.4 74.4-143.3-99 18.7 38.4-49.6-18.1-45.5-84.3 194.6 122-42.9-55.8 108 96.4 12-8.9-21-16.4 4.2-37.8 37.8-10.4 29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z"],bitbucket:[512,512,[61810],"f171","M22.2 32c-2.1 0-4.2 .4-6.1 1.1s-3.7 1.9-5.2 3.4-2.7 3.2-3.5 5.1-1.3 4-1.3 6.1c0 .9 .1 1.9 .2 2.8L74.1 462.7c.8 5.1 3.4 9.7 7.3 13s8.8 5.2 14 5.2l325.7 0c3.8 .1 7.5-1.3 10.5-3.7s4.9-5.9 5.5-9.7L505 50.7c.7-4.2-.3-8.4-2.8-11.9s-6.2-5.7-10.4-6.4c-.9-.1-1.9-.2-2.8-.2L22.2 32zM308.1 329.8l-104 0-28.1-147 157.3 0-25.2 147z"],vk:[448,512,[],"f189","M31.5 63.5C0 95 0 145.7 0 247L0 265C0 366.3 0 417 31.5 448.5S113.7 480 215 480l17.9 0c101.4 0 152.1 0 183.5-31.5S448 366.3 448 265l0-17.9c0-101.4 0-152.1-31.5-183.5S334.3 32 233 32L215 32C113.7 32 63 32 31.5 63.5zM75.6 168.3l51.1 0c1.7 85.5 39.4 121.7 69.3 129.2l0-129.2 48.2 0 0 73.7c29.5-3.2 60.5-36.8 70.9-73.7l48.2 0c-3.9 19.2-11.8 37.3-23.1 53.3s-25.7 29.5-42.5 39.6c18.7 9.3 35.2 22.4 48.4 38.5s22.9 34.9 28.3 55l-53 0c-4.9-17.5-14.8-33.1-28.6-45s-30.7-19.4-48.7-21.6l0 66.6-5.8 0c-102.1 0-160.3-70-162.8-186.5z"],github:[512,512,[],"f09b","M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM252.8 8c-138.7 0-244.8 105.3-244.8 244 0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1 100-33.2 167.8-128.1 167.8-239 0-138.7-112.5-244-251.2-244zM105.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z"],codiepie:[512,512,[],"f284","M442.5 202.9c30.7 0 33.5 53.1-.3 53.1l-10.8 0 0 44.3-26.6 0 0-97.4 37.7 0zM492 352.6C449.9 444.5 370.4 504 268 504 131 504 20 393 20 256S131 8 268 8c97.4 0 172.8 53.7 218.2 138.4L300.2 255.2 492 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6C406.5 73.9 342.5 36.5 268 36.5 146.8 36.5 48.5 134.8 48.5 256S146.8 475.5 268 475.5c78.6 0 146.5-42.1 185.5-110.4z"],"pied-piper":[448,512,[],"f2ae","M440.2 23.2c-26.7 6.8-68.1 28.5-114.6 67.5-30.9-17.5-65.8-26.7-101.4-26.7-114.9 0-208 93.1-208 208s93.1 208 208 208 208-93.1 208-208c.1-54.1-21-106.1-58.7-144.8-6.6 8.5-12.3 17.7-17 27.4 28.9 32.3 44.8 74.1 44.9 117.4 0 97.7-79.4 177.1-177.1 177.1-30.8 0-61-8.1-87.6-23.4 82.9-107.3 150.8-37.8 184.3-226.6 5.8-32.6 28-94.3 126.2-160.2 8.1-5.4 2.4-18.1-7-15.7zM109.3 406.4C89.8 389.8 74.2 369.2 63.5 346s-16.3-48.5-16.3-74c0-97.7 79.4-177.1 177.1-177.1 26.6 0 52.8 6.1 76.6 17.8-66 62.1-126.9 152.9-191.6 293.8z"],"raspberry-pi":[448,512,[],"f7bb","M392.5 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2 .7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6 .8-11.3-3.6-13.9 1.3-19.4 3.4-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9 .1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6 .1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8-17.3-2-22.7 10-16.5 21.2-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2 20.3 20.6 42.3 28.4 64.3 28.4l1 0c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80 59.8-5.6 78.8 22.8 14.6 64.2-9.9 80zM259.4 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7 .8 14.1 .6 23.9 .8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8 .4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2 .1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7 .9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6 .9 2.7 3.6 4.4 6.7 5.8-15.4 .9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zM225 143.9c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zM102 131.1c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8 .7 8.3 .1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6 .4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3 .4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6 .2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM58.7 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zM123.3 320.5c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM225.5 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9 .5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54s-59.2-23.8-59.4-53.4l0-.6c-.2-29.7 26.2-53.8 58.8-54s59.2 23.8 59.4 53.4l0 .6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z"],css3:[512,512,[],"f13c","M480 32l-64 368-223.3 80-192.7-80 19.6-94.8 82 0-8 40.6 116.4 44.4 134.1-44.4 18.8-97.1-333.4 0 16-82 333.7 0 10.5-52.7-333.4 0 16.3-82 407.4 0z"],hubspot:[448,512,[],"f3b2","M235.8 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L171.5 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8s-11.8 17.8-11.8 28.6 4.2 20.9 11.8 28.5 17.8 11.6 28.5 11.6c10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7l0-61.6c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S279.6 47 279.6 73.1c0 19.1 10.7 35.5 28.2 42.9l0 61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8 0-28.8-23.5-52.2-52.4-52.2-28.8 0-52.2 23.4-52.2 52.2 0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6L235.8 211.6zm89.5 25.6a69 69 0 1 1 0 138 69 69 0 1 1 0-138z"],cmplid:[640,512,[],"e360","M226.1 388.2c0-.7-.2-1.5-.6-2.1s-1-1.1-1.7-1.4c-.5-.2-1.1-.4-1.6-.4l-149.6 0c-3.1 0-6.2-.8-8.9-2.2s-5.1-3.5-6.9-6.1-2.9-5.5-3.3-8.6 0-6.2 1.1-9.1L81.6 255.7c2-7.2 6.2-13.5 12-18.2s12.9-7.4 20.4-7.8l148.6 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6l10.8-41.1c.4-1 .3-2-.1-2.9s-1.2-1.6-2.1-2c-.4-.2-.9-.3-1.4-.3-.1 0-.1 0-.2 0l-148.5 0c-22.2 1.2-43.4 9.2-60.8 23s-30 32.7-36.2 54.1L3.5 358.8c-3.2 8.7-4.2 18-3 27.1s4.6 17.9 9.9 25.5 12.3 13.8 20.5 18 17.3 6.5 26.5 6.6c1 0 1.9 0 2.9-.1l148.6 0c1.5-.1 2.9-.7 4-1.6s2-2.2 2.4-3.6l10.7-41.1c.2-.5 .3-.9 .3-1.4zm80.5-307c.2-.4 .3-.9 .3-1.4 0-.5-.1-1-.3-1.5s-.5-.9-.8-1.2-.8-.6-1.2-.8-1-.3-1.5-.3l-41.2 0c-1.5 .1-2.9 .6-4 1.6s-2 2.2-2.4 3.6l-21.3 80.9 51.1 0 21.4-80.9zm-126.3 287l51.1 0 32-122.6-51.1 0-32 122.6zM511.9 79.7c0-1-.5-1.9-1.2-2.6s-1.7-1.1-2.6-1.1c-.1 0-.1 0-.2 0l-41 0c-1.5 .1-2.9 .6-4.1 1.5s-2 2.2-2.5 3.6L368.9 430.6c-.2 .4-.3 .9-.3 1.3 0 1 .4 2 1.1 2.7s1.7 1.1 2.7 1.1l41.2 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6L511.5 81.2c.2-.5 .3-1 .3-1.5zM324.6 384.5l-41 0c-1.5 .1-2.9 .7-4 1.6s-2 2.2-2.4 3.6l-10.7 41.1c-.2 .4-.3 .9-.3 1.4 0 .5 .1 1 .3 1.5s.5 .9 .8 1.2 .8 .6 1.2 .8 1 .3 1.5 .3c.1 0 .2 0 .3 0l40.9 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6l10.8-41.1c.2-.6 .3-1.2 .3-1.8s-.3-1.2-.6-1.7-.8-.9-1.3-1.2-1.2-.4-1.8-.4c-.1 0-.2 0-.3 0l0 0zM636 76.1l-41 0c-1.5 .1-2.9 .6-4 1.5s-2 2.2-2.4 3.6L497.1 430.6c-.2 .4-.2 .9-.2 1.3 0 1 .4 2 1.1 2.7s1.7 1.1 2.7 1.1l41.1 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6L639.7 81.2c.2-.5 .3-1 .3-1.5-.1-1-.5-1.9-1.2-2.5s-1.6-1-2.6-1c-.1 0-.1 0-.2 0l0-.1zM371.6 225.2l10.8-41.1c.2-.4 .2-.9 .2-1.4 0-1-.4-2-1.1-2.7s-1.7-1.1-2.7-1.1l-41.3 0c-1.5 .1-2.9 .7-4 1.6s-2 2.2-2.4 3.6l-10.8 41.1c-.2 .5-.3 1-.3 1.5l0 .2c.1 1 .5 1.8 1.2 2.5s1.6 1 2.6 1c.1 0 .2 0 .3 0l41.1 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6z"],dyalog:[448,512,[],"f399","M16 32l0 119.2 64 0 0-55.2 107.2 0C300.6 96 368 176.2 368 255.9 368 332 309.4 416 187.2 416l-171.2 0 0 64 171.2 0C347.9 480 432 367.3 432 255.9 432 197.2 409.9 142.5 369.7 101.6 324.9 56 261.7 32 187.2 32L16 32z"],elementor:[512,512,[],"f430","M.5 256c0 141 113.6 255 254.6 255 142 0 256-114 256-255 0-140-114-253.9-256-253.9-141 0-254.6 113.9-254.6 253.9zM192.1 150l0 213-43 0 0-213 43 0zm42 0l128 0 0 43-128 0 0-43zm128 85l0 43-128 0 0-43 128 0zm-128 85l128 0 0 43-128 0 0-43z"],"first-order":[448,512,[],"f2b0","M13.3 229.2c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4l-.2 0zM224.4 96.6c-7.1 0-14.6 .6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3L149 306.9 98.1 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9l-29.4-61.3 44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9l-22.3 64.3 4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.8 128L443.8 384 224.4 512 5 384 5 128 224.4 0 443.8 128zm-17.1 10.3l-202.3-117.4-202.3 117.4 0 235.1 202.3 117.7 202.3-117.7 0-235.1zM224.4 37.1l187.7 109.4 0 218.9-187.7 109.5-187.7-109.5 0-218.8 187.7-109.5zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z"],dribbble:[512,512,[],"f17d","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM420 122.4c29.5 36 47.4 82 47.8 132-7-1.5-77-15.7-147.5-6.8-5.8-14-11.2-26.4-18.6-41.6 78.3-32 113.8-77.5 118.3-83.5zM396.4 97.9c-3.8 5.4-35.7 48.3-111 76.5-34.7-63.8-73.2-116.2-79-124 67.2-16.2 138 1.3 190.1 47.5zM165.9 64.6c5.6 7.7 43.4 60.1 78.5 122.5-99.1 26.3-186.4 25.9-195.8 25.8 13.7-65.7 58-120.4 117.3-148.3zM44.2 256.3c0-2.2 0-4.3 .1-6.5 9.3 .2 111.9 1.5 217.7-30.1 6.1 11.9 11.9 23.9 17.2 35.9-76.6 21.6-146.2 83.5-180.5 142.3-33.8-37.6-54.5-87.2-54.5-141.6zM126 423.4c22.1-45.2 82.2-103.6 167.6-132.8 29.7 77.3 42 142.1 45.2 160.6-68.1 29-150 21.1-212.8-27.9zm248.4 8.5c-2.2-12.9-13.4-74.9-41.2-151 66.4-10.6 124.7 6.8 131.9 9.1-9.4 58.9-43.3 109.8-90.8 142z"],linkedin:[448,512,[],"f08c","M416 32L31.9 32C14.3 32 0 46.5 0 64.3L0 447.7C0 465.5 14.3 480 31.9 480L416 480c17.6 0 32-14.5 32-32.3l0-383.4C448 46.5 433.6 32 416 32zM135.4 416l-66.4 0 0-213.8 66.5 0 0 213.8-.1 0zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77zM384.3 416l-66.4 0 0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2z"],"cc-paypal":[576,512,[],"f1f4","M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7l-4.7 0c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0l-4.5 0c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28l-40 0c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4l19 0c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.2 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM253 322.1l63.7-92.6c.5-.5 .5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5l-19.2 0c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4l-18.7 0c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2l19.2 0c1.8-.1 3.5-1.1 4.5-2.6zM412.3 215.4c0-21-16.2-28-34.7-28l-39.7 0c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4l20.5 0c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.3 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM544 190.9c0-2-1.5-3.5-3.2-3.5l-18.5 0c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3 .5c0 1.8 1.5 3.5 3.5 3.5l16.5 0c2.5 0 5-2.9 5.2-5.7l16.2-101.2 0-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5 .1-9.8-6.9-15.5-16.2-15.5z"],dhl:[640,512,[],"f790","M238 301.2l58.7 0 22.3-30.2-58.7 0-22.3 30.2zM0 282.9l0 6.4 81.8 0 4.7-6.4-86.5 0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1s2.8-5.9-2.8-5.9l-51 0-41.1 55.8 100.1 0c33.1 0 51.5-22.5 57.2-30.3l-68.2 0zm317.5-6.9l39.3-53.4-62.2 0-39.3 53.4 62.2 0zM95.3 271l-95.3 0 0 6.4 90.6 0 4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5l45.6 0s7.3-10 13.5-18.4c8.4-11.4 .7-35-29.2-35l-117.9 0-20.4 27.8 111.4 0c5.6 0 5.5 2.2 2.7 5.9zM0 301.2l73.1 0 4.7-6.4-77.8 0 0 6.4zm323 0l58.7 0 22.3-30.2-58.7 0c-.1 0-22.3 30.2-22.3 30.2zm222 .1l95 0 0-6.4-90.3 0-4.7 6.4zM567.3 271l-4.7 6.4 77.4 0 0-6.4-72.7 0zm-13.5 18.3l86.2 0 0-6.4-81.5 0-4.7 6.4zM389.6 210.7l-22.5 30.6-26.2 0 22.5-30.6-58.7 0-39.3 53.4 143.6 0 39.3-53.4-58.7 0zM423.1 271s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6l94.3 0 22.3-30.3-133.4 0z"],tex:[640,512,[],"e7ff","M620.8 95.4c-30.8 .4-42.1 16.6-47.7 24.5l-.1 .1-55.7 80.5 82.8 121.1c7.5 10.6 11.3 12.5 35.4 12.5l0 9.1c-9.1-.7-28-.7-37.7-.7-12.4 0-30.8 0-42.9 .7l0-9.1c13.2-.8 16.6-7.3 16.6-10.2 0-1.1 0-2.3-3-6.4l-65.5-96.3-60.2 87.9c-1.9 2.7-3.8 5.4-3.8 10.2 0 6.1 3.4 13.6 15 14.7l0 9.1c-9.4-.7-27.1-.7-37.2-.7l-2.8 0-11.7 82.6-195.9 0 0-9.1c26.7 0 30.9 0 30.9-16.9l0-203.2c0-16.9-4.3-16.9-30.9-16.9l0-10.3 19.8 0c-4.8-61.1-10.8-71.7-68-71.8l-20.7 0c-6.8 1.5-6.8 6.1-6.8 14.4l0 205c0 13.6 1.1 17.8 32.4 17.8l10.5 0 0 9.1-.4 0c-17.9-.3-36.7-.7-54.9-.7s-36.9 .3-54.8 .7l-.6 0 0-9.1 10.7 0c31.7 0 32.8-4.1 32.8-17.8l0-205c0-8.7 0-13.2-7.2-14.3l-20.8 0c-58.4 0-63.7 10.9-68.6 73.3l-6.8 0 6.3-83.3 217.5 0 6.1 81.8 164.1 0 9 83.3-6.8 0c-5.3-49.8-12.1-73-70.3-73l-51.5 0c-15 0-15.8 1.9-15.8 14.6l0 93.3 35.5 0c35.5 0 38.9-12.8 38.9-44l6 0 0 97.9-6 0c0-31.8-3.4-44.8-38.9-44.8l-35.5 0 0 105.2c0 13 .7 14.8 15.8 14.8l52.2 0c61.1 0 69.9-25.8 77.4-73.6-7.7 0-16.3 .2-22.2 .7l0-9.1c7.2 0 31.7-.4 47.8-23.8l65.5-95.7-72.7-106.7c-8.3-11.7-15.1-12.5-35.8-12.5l0-9.1c9.1 .7 27.9 .7 37.7 .7 12.4 0 30.8 0 42.9-.7l0 9.1c-12.5 .4-16.6 6.8-16.6 10.2 0 1.1 .4 2.3 3 6.4l55.7 81.6 49.7-72.1c2.7-3.7 4.5-6.8 4.5-11.3 0-6.1-3-13.6-15-14.8l0-9.1c9.4 .7 24.8 .7 37.2 .7 9 0 23.3 0 32-.7l0 9.1z"],shopify:[448,512,[],"e057","M388.5 104.1c-.2-1.1-.7-2.1-1.5-2.8s-1.8-1.2-2.9-1.2c-2 0-37.2-.8-37.2-.8s-21.6-20.8-29.6-28.8l0 432.7 125.7-31.2s-54-365.5-54.4-367.9zM288.9 70.5c-1.9-6.1-4.3-11.9-7.2-17.6-10.4-20-26-30.9-44.4-30.9-1.3 0-2.7 .1-4 .4-.4-.8-1.2-1.2-1.6-2-8-8.8-18.4-12.8-30.8-12.4-24 .8-48 18-67.2 48.8-13.6 21.6-24 48.8-26.8 70.1-27.6 8.4-46.8 14.4-47.2 14.8-14 4.4-14.4 4.8-16 18-1.2 10-38 291.8-38 291.8l302.6 52.5 0-438.3c-1.5 .1-2.9 .2-4.4 .4 0 0-5.6 1.6-14.8 4.4zM233.6 87.7c-16 4.8-33.6 10.4-50.8 15.6 4.8-18.8 14.4-37.6 25.6-50 4.4-4.4 10.4-9.6 17.2-12.8 6.8 14.4 8.4 34 8 47.2zM200.8 24.4c5-.2 10 1.1 14.4 3.6-6.4 3.2-12.8 8.4-18.8 14.4-15.2 16.4-26.8 42-31.6 66.5-14.4 4.4-28.8 8.8-42 12.8 8.8-38.4 41.2-96.4 78-97.2zM154.4 244.6c1.6 25.6 69.2 31.2 73.2 91.7 2.8 47.6-25.2 80.1-65.6 82.5-48.8 3.2-75.6-25.6-75.6-25.6l10.4-44s26.8 20.4 48.4 18.8c14-.8 19.2-12.4 18.8-20.4-2-33.6-57.2-31.6-60.8-86.9-3.2-46.4 27.2-93.3 94.5-97.7 26-1.6 39.2 4.8 39.2 4.8l-15.2 57.6s-17.2-8-37.6-6.4c-29.6 2-30 20.8-29.6 25.6zM249.6 82.9c0-12-1.6-29.2-7.2-43.6 18.4 3.6 27.2 24 31.2 36.4-7.2 2-15.2 4.4-24 7.2z"],"square-reddit":[448,512,["reddit-square"],"f1a2","M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM305.9 166.4c20.6 0 37.3-16.7 37.3-37.3s-16.7-37.3-37.3-37.3c-18 0-33.1 12.8-36.6 29.8-30.2 3.2-53.8 28.8-53.8 59.9l0 .2c-32.8 1.4-62.8 10.7-86.6 25.5-8.8-6.8-19.9-10.9-32-10.9-28.9 0-52.3 23.4-52.3 52.3 0 21 12.3 39 30.1 47.4 1.7 60.7 67.9 109.6 149.3 109.6s147.6-48.9 149.3-109.7c17.7-8.4 29.9-26.4 29.9-47.3 0-28.9-23.4-52.3-52.3-52.3-12 0-23 4-31.9 10.8-24-14.9-54.3-24.2-87.5-25.4l0-.1c0-22.2 16.5-40.7 37.9-43.7 3.9 16.5 18.7 28.7 36.3 28.7l.2-.2zM155 248.1c14.6 0 25.8 15.4 25 34.4s-11.8 25.9-26.5 25.9-27.5-7.7-26.6-26.7 13.5-33.5 28.1-33.5l0-.1zm166.4 33.5c.9 19-12 26.7-26.6 26.7s-25.6-6.9-26.5-25.9 10.3-34.4 25-34.4 27.3 14.6 28.1 33.5l0 .1zm-42.1 49.6c-9 21.5-30.3 36.7-55.1 36.7s-46.1-15.1-55.1-36.7c-1.1-2.6 .7-5.4 3.4-5.7 16.1-1.6 33.5-2.5 51.7-2.5s35.6 .9 51.7 2.5c2.7 .3 4.5 3.1 3.4 5.7z"],"creative-commons-nc":[512,512,[],"f4e8","M255.6 8C395.4 8 504 115.9 504 256 504 403.2 385.5 504 255.6 504 121.1 504 8 393.2 8 256 8 123.1 112.7 8 255.6 8zM63.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4l0 38.1-28.8 0 0-38.2c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM256.4 52.3C218 52.3 144 61 85.9 145.3l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3l0-38.1 28.8 0 0 38.1c22.7 1.2 43.4 8.9 62 23L303 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z"],"galactic-republic":[512,512,[],"f50c","M256 8a248 248 0 1 1 0 496 248 248 0 1 1 0-496zm0 16.5a231.5 231.5 0 1 0 0 462.9 231.5 231.5 0 1 0 0-462.9zm27.6 21.8l0 24.6c30.3 4.5 59 16.3 83.6 34.5l17.4-17.4c-28.7-22.1-63.3-36.9-101-41.8zm-55.4 .1c-37.6 4.9-72.2 19.8-100.9 41.9l17.3 17.4 .1 0c24.1-17.8 52.6-30.1 83.5-34.7l0-24.5zm12.2 50.2l0 82.9c-10 2-19.4 5.9-27.7 11.4l-58.6-58.6-21.9 21.9 58.7 58.7c-5.5 8.2-9.4 17.6-11.5 27.6l-82.9 0 0 31 82.9 0c2 10 6 19.3 11.5 27.5l-58.7 58.7 21.9 21.9 58.6-58.6c8.4 5.6 17.8 9.5 27.7 11.5l0 82.9 31 0 0-82.9c10-2 19.4-6.1 27.6-11.5l58.7 58.7 21.9-21.9-58.7-58.7c5.5-8.2 9.5-17.5 11.5-27.5l82.9 0 0-31-82.9 0c-2-10-6-19.4-11.5-27.6l58.7-58.7-21.9-21.9-58.7 58.7c-8.2-5.5-17.6-9.5-27.6-11.5l0-82.9-31 0zm183.2 30.7l-17.4 17.4c18.3 24.6 30.2 53.4 34.7 83.7l24.6 0c-5-37.7-19.8-72.3-41.9-101zm-335.6 .1c-22.1 28.7-36.9 63.3-41.8 100.9l24.6 0c4.6-31 16.8-59.4 34.6-83.5L88.2 127.4zM46.3 283.7c4.9 37.6 19.7 72.2 41.8 100.9l17.4-17.4C87.7 343.1 75.6 314.6 71 283.7l-24.6 0 0 0zm394.7 0c-4.6 31-16.8 59.5-34.7 83.6l17.4 17.4c22.1-28.7 37-63.3 41.9-101l-24.6 0zM144.7 406.4l-17.4 17.4c28.7 22.1 63.3 37 101 41.9l0-24.6c-31-4.6-59.5-16.8-83.6-34.6zm222.5 0c-24.1 17.8-52.6 30.1-83.6 34.7l0 24.6c37.7-4.9 72.2-19.8 101-41.8l-17.3-17.4-.1 0z"],facebook:[512,512,[62000],"f09a","M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5l0-170.3-52.8 0 0-78.2 52.8 0 0-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4l0 70.8c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2l0 27.8 83.6 0-14.4 78.2-69.3 0 0 175.9C413.8 494.8 512 386.9 512 256z"],gitlab:[512,512,[],"f296","M504 204.6l-.7-1.8-69.7-181.8c-1.4-3.6-3.9-6.6-7.2-8.6-2.4-1.6-5.1-2.5-8-2.8s-5.7 .1-8.4 1.1-5.1 2.7-7.1 4.8c-1.9 2.1-3.3 4.7-4.1 7.4l-47 144-190.5 0-47.1-144c-.8-2.8-2.2-5.3-4.1-7.4-2-2.1-4.4-3.7-7.1-4.8-2.6-1-5.5-1.4-8.4-1.1s-5.6 1.2-8 2.8c-3.2 2-5.8 5.1-7.2 8.6L9.8 202.8 9 204.6c-10 26.2-11.3 55-3.5 82 7.7 26.9 24 50.7 46.4 67.6l.3 .2 .6 .4 106 79.5c38.5 29.1 66.7 50.3 84.6 63.9 3.7 1.9 8.3 4.3 13 4.3s9.3-2.4 13-4.3c17.9-13.5 46.1-34.9 84.6-63.9l106.7-79.9 .3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z"],qq:[448,512,[],"f1d6","M434.1 420.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.1 72.2-51 101.8 16.8 5.2 54.8 19.2 45.8 34.4-7.3 12.3-125.5 7.9-159.6 4-34.1 3.8-152.3 8.3-159.6-4-9-15.2 28.9-29.2 45.8-34.4-34.9-29.5-51.1-70.4-51.1-101.8 0 0-33.3 54.1-44.9 52.7-5.4-.6-12.4-29.6 9.3-99.7 10.3-33 22-60.5 40.1-105.8-3.1-116.9 45.2-215 160.3-215 113.7 0 163.2 96.1 160.3 215 18.1 45.2 29.9 72.9 40.1 105.8 21.8 70.1 14.7 99.1 9.3 99.7z"],stripe:[640,512,[],"f429","M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9l0-33.8c-5.7 2.3-33.7 10.5-33.7-15.7l0-63.2 33.7 0 0-37.8-33.7 0-.1-38.5zm89.1 51.6l-2.7-13.1-38.4 0 0 153.2 44.3 0 0-103.1c10.5-13.8 28.2-11.1 33.9-9.3l0-40.8c-6-2.1-26.7-6-37.1 13.1zM346.4 124l-44.6 9.5 0 36.2 44.6-9.5 0-36.2zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4l0-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2l0 40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5l0-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9l86.9 0c.2-2.3 .6-11.6 .6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4l-45.9 0zM439.2 180.2c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11-39.1 0 0 204.8 44.4-9.4 .1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6 .1-51.6-29.3-79.7-60.5-79.7zM428.6 302.7c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4 .1 23.9-10.9 41.8-27.4 41.8zM301.9 336.4l44.6 0 0-153.2-44.6 0 0 153.2z"],dailymotion:[448,512,[],"e052","M298.9 267c-7.4-4.2-15.8-6.3-24.4-6.2-13.2 0-24.4 4.4-33.4 13.3s-13.6 20-13.6 33.4c0 14.1 4.4 25.6 13.3 34.6s20 13.4 33.4 13.4c13.7 0 25-4.6 34.1-13.8S322 321.1 322 307.5c0-8.2-2.1-16.3-6.1-23.5-4-7.1-9.8-13-17-17zM0 32l0 448 448 0 0-448-448 0zM374.7 405.3l-53.1 0 0-23.9-.7 0c-10.5 17.5-29.1 26.2-55.8 26.2-18.4 0-34.7-4.4-48.9-13.1-14.1-8.6-25.5-21-32.9-35.8-7.7-15.1-11.6-32.1-11.6-50.9 0-18.4 3.9-35.1 11.8-50.2 7.5-14.7 18.9-27.1 32.9-35.8 14.1-8.7 30-13.1 47.7-13.1 10.2-.1 20.2 1.6 29.7 5.2 8.9 3.5 17.2 9.1 25 17l0-77.9 55.8-12.1 0 264.4z"],steam:[512,512,[],"f1b6","M504 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5l0 1.2-59.2 85.7c-15.5-.9-30.7 3.4-43.5 12.1L8 236.1C18.2 108.4 125.1 8 255.6 8 392.8 8 504 119 504 256zM163.7 384.3l-30.5-12.6c5.6 11.6 15.3 20.8 27.2 25.8 26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3 .1-40.3S214 305.6 201 300.2c-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zM337.5 129.8a62.3 62.3 0 1 1 0 124.6 62.3 62.3 0 1 1 0-124.6zm.1 109a46.8 46.8 0 1 0 0-93.6 46.8 46.8 0 1 0 0 93.6z"],snapchat:[512,512,[62124,"snapchat-ghost"],"f2ab","M497.1 366.6c-3.4-9.2-9.8-14.1-17.1-18.2-1.4-.8-2.6-1.5-3.7-1.9-2.2-1.1-4.4-2.2-6.6-3.4-22.8-12.1-40.6-27.3-53-45.4-3.5-5.1-6.6-10.5-9.1-16.1-1.1-3-1-4.7-.2-6.3 .8-1.2 1.7-2.2 2.9-3 3.9-2.6 8-5.2 10.7-7 4.9-3.2 8.8-5.7 11.2-7.4 9.4-6.5 15.9-13.5 20-21.3 2.9-5.4 4.5-11.3 4.9-17.4s-.6-12.2-2.8-17.8c-6.2-16.3-21.6-26.4-40.3-26.4-3.9 0-7.9 .4-11.7 1.2-1 .2-2.1 .5-3.1 .7 .2-11.2-.1-22.9-1.1-34.5-3.5-40.8-17.8-62.1-32.7-79.2-9.5-10.7-20.7-19.7-33.2-26.7-22.6-12.9-48.2-19.4-76.1-19.4s-53.4 6.5-76 19.4c-12.5 7-23.7 16.1-33.3 26.8-14.9 17-29.2 38.4-32.7 79.2-1 11.6-1.2 23.4-1.1 34.5-1-.3-2-.5-3.1-.7-3.9-.8-7.8-1.2-11.7-1.2-18.7 0-34.1 10.1-40.3 26.4-2.2 5.7-3.2 11.8-2.8 17.8s2 12 4.9 17.4c4.1 7.8 10.7 14.7 20 21.3 2.5 1.7 6.4 4.2 11.2 7.4 2.6 1.7 6.5 4.2 10.3 6.7 1.3 .9 2.4 2 3.3 3.3 .8 1.6 .8 3.4-.4 6.6-2.5 5.5-5.5 10.8-8.9 15.8-12.1 17.7-29.4 32.6-51.4 44.6-11.7 6.2-23.9 10.3-29 24.3-3.9 10.5-1.3 22.5 8.5 32.6 3.6 3.8 7.8 6.9 12.4 9.4 9.6 5.3 19.8 9.3 30.3 12.1 2.2 .6 4.3 1.5 6.1 2.7 3.6 3.1 3.1 7.9 7.8 14.8 2.4 3.6 5.4 6.7 9 9.1 10 6.9 21.3 7.4 33.2 7.8 10.8 .4 23 .9 36.9 5.5 5.8 1.9 11.8 5.6 18.7 9.9 16.7 10.3 39.6 24.3 77.8 24.3s61.3-14.1 78.1-24.4c6.9-4.2 12.9-7.9 18.5-9.8 13.9-4.6 26.2-5.1 36.9-5.5 11.9-.5 23.2-.9 33.2-7.8 4.2-2.9 7.7-6.7 10.2-11.2 3.4-5.8 3.4-9.9 6.6-12.8 1.8-1.2 3.7-2.1 5.8-2.6 10.7-2.8 21-6.9 30.8-12.2 4.9-2.6 9.3-6.1 13-10.2l.1-.2c9.2-9.9 11.5-21.5 7.8-31.8zm-34 18.3c-20.7 11.5-34.5 10.2-45.3 17.1-9.1 5.9-3.7 18.5-10.3 23.1-8.1 5.6-32.2-.4-63.2 9.9-25.6 8.5-42 32.8-88 32.8s-62-24.3-88.1-32.9c-31-10.3-55.1-4.2-63.2-9.9-6.6-4.6-1.2-17.2-10.3-23.1-10.7-6.9-24.5-5.7-45.3-17.1-13.2-7.3-5.7-11.8-1.3-13.9 75.1-36.4 87.1-92.6 87.7-96.7 .6-5 1.4-9-4.2-14.1-5.4-5-29.2-19.7-35.8-24.3-10.9-7.6-15.7-15.3-12.2-24.6 2.5-6.5 8.5-8.9 14.9-8.9 2 0 4 .2 6 .7 12 2.6 23.7 8.6 30.4 10.2 .8 .2 1.6 .3 2.5 .3 3.6 0 4.9-1.8 4.6-5.9-.8-13.1-2.6-38.7-.6-62.6 2.8-32.9 13.4-49.2 26-63.6 6.1-6.9 34.5-37 88.9-37S339 74.2 345 81.1c12.6 14.4 23.2 30.7 26 63.6 2.1 23.9 .3 49.5-.6 62.6-.3 4.3 1 5.9 4.6 5.9 .8 0 1.7-.1 2.5-.3 6.7-1.6 18.4-7.6 30.4-10.2 2-.4 4-.7 6-.7 6.4 0 12.4 2.5 14.9 8.9 3.5 9.4-1.2 17-12.2 24.6-6.6 4.6-30.4 19.3-35.8 24.3-5.6 5.1-4.8 9.1-4.2 14.2 .5 4.2 12.5 60.4 87.7 96.7 4.4 2.2 11.9 6.7-1.3 14.1z"],"galactic-senate":[512,512,[],"f50d","M249.9 33.5l0 26.1c-13.6 20.6-23.9 108.6-24.5 215.3 11.7-15.6 19.1-33.3 19.1-48.2l0-16.9c0-5.3 .8-10.5 2.2-15.6 .6-2.1 1.4-4.1 2.6-5.8s3.4-3.8 6.7-3.8 5.4 2.1 6.7 3.8c1.2 1.8 2 3.7 2.6 5.8 1.4 5.1 2.2 10.3 2.2 15.6l0 16.9c0 14.9 7.4 32.6 19.1 48.2-.6-106.8-10.9-194.7-24.5-215.3l0-26.1-12.3 0zM223.5 181.3c-9.5 2.1-18.7 5.2-27.5 9.1 8.9 16.1 9.8 32.6 1.7 37.3-8 4.6-21.8-4.2-31.4-19.8-11.6 8.8-21.9 19.3-30.6 31.1 14.7 9.6 22.9 22.9 18.3 30.7-4.5 7.7-20 7.1-35.5-1-5.8 13.2-9.7 27.5-11.6 42.4 9.7 .2 18.7 2.4 26.2 6 17.8-.3 32.8-2 40.5-4.2 5.6-26.4 23-48.2 46.3-59.5 .7-25.6 1.9-49.7 3.5-72.1zm65 0c1.6 22.4 2.7 46.5 3.5 72.1 23.3 11.3 40.8 33.2 46.3 59.5 7.7 2.3 22.7 3.9 40.5 4.2 7.5-3.7 16.5-5.8 26.2-6-1.9-14.9-5.9-29.2-11.7-42.4-15.4 8.1-30.9 8.7-35.5 1-4.6-7.7 3.6-21.1 18.3-30.7-8.7-11.8-19-22.3-30.6-31.1-9.5 15.6-23.4 24.4-31.4 19.8-8.1-4.6-7.2-21.2 1.7-37.3-8.8-3.9-18-7-27.4-9.1zM256 189.9c-3.2 0-5.9 8.8-6.1 19.9l0 0 0 16.9c0 41.4-49 95-93.5 95-52 0-122.8-1.4-156.4 29.2l0 2.5c9.4 17.1 20.6 33.2 33.2 48 12.5-21.1 51.6-41 108-41.4 45.7 1 79 20.3 90.8 40.9 0 0 0 0 0 .1 7.7 2.1 15.8 3.2 24 3.2 8.2 0 16.4-1.1 24-3.2 0 0 0 0 0-.1 11.7-20.5 45.1-39.8 90.8-40.9 56.4 .4 95.5 20.3 108 41.4 12.6-14.8 23.8-30.9 33.2-48l0-2.5c-33.6-30.6-104.4-29.2-156.4-29.2-44.5 0-93.5-53.6-93.5-95l0-16.9-.1 0c-.2-11.1-2.9-19.9-6.1-19.9zm0 177.9a40.6 40.6 0 1 1 0-81.3 40.6 40.6 0 1 1 0 81.3zm0-73.6a33 33 0 1 0 0 65.9 33 33 0 1 0 0-65.9zm0 59.8a26.8 26.8 0 1 1 0-53.6 26.8 26.8 0 1 1 0 53.6zm-114.8 13c-10.2 .1-21.6 .4-30.5 1.7 .4 4.4 1.5 18.6 7.1 29.8 9.1-2.6 18.4-3.9 27.6-3.9 41.3 .9 71.5 34.4 78.3 74.5l.1 4.7c10.4 1.9 21.2 2.9 32.2 2.9 11 0 21.8-1 32.2-2.9l.1-4.7c6.8-40.1 37-73.5 78.3-74.5 9.3 0 18.5 1.3 27.6 3.9 5.6-11.1 6.7-25.3 7.1-29.8-8.9-1.3-20.3-1.6-30.5-1.7-18.8 .4-35.2 4.2-48.6 9.7-12.5 16-29.2 30-49.6 33.1-.1 0-.2 0-.3 0 0 0-.1 0-.2 .1-5.2 1.1-10.6 1.6-16.2 1.6-5.5 0-10.9-.5-16.2-1.6-.1 0-.1 0-.2-.1-.1 0-.2 0-.3 0-20.4-3-37-17-49.6-33.1-13.4-5.5-29.9-9.2-48.6-9.7z"],"phoenix-framework":[640,512,[],"f3dc","M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4 .1-.8 .2-1.1 .3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7-111.2-16.5-128.9-163.6-252.5-173.1-44.3-3.4-99.4 8.1-136.3 35-.8 .6-1.5 1.2-2.2 1.8 .1 .2 .1 .3 .2 .5 .8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7 .3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zM272.2 415.4c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1 .2-.3 .3-.4 .5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zM447 163.4c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6 .1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2 .1-.2 2.1 .6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zM549.7 280.9c-32.4 .2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2l0-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7 .3 .2 .4 .5 .7 .9-.5 0-.7 .1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1 .2-.1 .4-.2 .6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2 .1-.3 .1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7 .4-.1 .9 0 1.5 .3-.6 .4-1.2 .9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4 .6-.8 .9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5 .1-.1 .2 0 .4 .4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7 .5-.2 .8-.4 1.1-.4 13.1 .1 26.1 .7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z"],git:[512,512,[],"f1d3","M216.3 158.4l-79.3 0c-40-10.5-130.5-7.8-130.5 74.8 0 30.1 15 51.2 35 61-25.1 23-37 33.8-37 49.2 0 11 4.5 21.1 17.9 26.8-14.3 13.4-22.4 23.1-22.4 41.4 0 32.1 28 50.8 101.6 50.8 70.8 0 111.8-26.4 111.8-73.2 0-58.7-45.2-56.5-151.6-63l13.4-21.6c27.3 7.6 118.7 10 118.7-67.9 0-18.7-7.7-31.7-15-41.1l37.4-2.8 0-34.5zM152.9 400.3c0 32.1-104.9 32.1-104.9 2.4 0-8.1 5.3-15 10.6-21.5 77.7 5.3 94.3 3.4 94.3 19.1zM102.1 265.7c-52.8 0-50.5-71.2 1.2-71.2 49.5 0 50.8 71.2-1.2 71.2zM235.4 366.2l0-32.1c26.7-3.7 27.2-2 27.2-11l0-119.5c0-8.5-2.1-7.4-27.2-16.3l4.5-32.9 84.2 0 0 168.7c0 6.5 .4 7.3 6.5 8.1l20.7 2.8 0 32.1-115.9 0zm52.5-244.3c-23.2 0-36.6-13.4-36.6-36.6s13.4-35.8 36.6-35.8c23.6 0 37 12.6 37 35.8s-13.4 36.6-37 36.6zM512 350.5c-17.5 8.5-43.1 16.3-66.3 16.3-48.4 0-66.7-19.5-66.7-65.5l0-106.5c0-5.4 1-4.1-31.7-4.1l0-36.2c35.8-4.1 50-22 54.5-66.3l38.6 0c0 65.8-1.3 61.8 3.3 61.8l57.3 0 0 40.6-60.6 0 0 97.1c0 6.9-4.9 51.4 60.6 26.8l11 35.8z"],"optin-monster":[576,512,[],"f23c","M572.8 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7 .3-6.5 .3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6l0-2.8c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60-69.6-59.7-167.7-53.8-244.2-37.6 19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8 .9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8 .5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4 .5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2l0 19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3 .5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1 .2-3.7-.7-7.2-1.7-10.7zM499 167.4c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3 .3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1 .5-8.1 .8-11.6 .8-1.9-21.9-6.8-44-14.3-64.6 3.7 .3 8.1 .3 11.8 .3zM47.7 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1 .8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53l0 .3 12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-10.5a76.1 76.1 0 1 1 0-152.2 76.1 76.1 0 1 1 0 152.2zm115.6 22.1c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3 .3 26.6 .3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1l0 .3c18.9-.3 38.1-.3 57 0zM278.5 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8l0 .3c1.1 8.3 3.3 51.2-1.3 53.7zM172 257.9c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6 .8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zM115 461.7c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5l.3 0c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3 .3l0-.3 .3 0c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2 .8 2.2 .8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8 .3 1.9 .5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3 .9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM373.1 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM75 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zM290.9 230.9c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68.2 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM479 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5 .9-8.4-20.2-23.5-29.1-25.1z"],jenkins:[448,512,[],"f3b6","M455.4 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8 .2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2 .7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6-21.1 12.5-36.4 20.3-55.9 34.3-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8 .7 2 1.4 4.1 2.1 6l422 0c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM174.2 33.7c1.8-.5 3.4 .7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4 .7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zM69.4 127.3c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7 .3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2 .5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8 .7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1 .6-16.5zm-17.2-20c-16.8 .8-26-1.2-38.3-10.8 .2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM194.3 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3 .8 4.4-2.8 10.2-2.8 16.4zM26 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5 .7 2.3 1.4 4.7 2.2 7.2l-180.7 0 0-.1zm240.6 5.7l-.8 0c.3-.2 .5-.4 .8-.5l0 .5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3l-9.6 0zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5 .4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7l-14 0c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8l-17.4 0c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9 .8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8 .6-11.5 15.6-7.3 29 1.3 35.7 11.5l-36.3 0zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1l-27.9 0c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1 .8 5.5-2.6 18.9-3.8 25.1zM190.5 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7 .5 0 1 0 1.4 .1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm-96.8 2.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9 .9-36.6-17.1 11.9 .7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zM261.5 298.3c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zM353.7 345c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z"],slideshare:[512,512,[],"f1e7","M187.9 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7 .1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3 0-198.3c0-27.4-20.6-49.7-46-49.7L76.8 0c-25.4 0-46 22.3-46 49.7l0 198.3c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72-56.3 191.7 137.4 222.3 134.3 124.1 0-.7 .3-56.6 .3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7 .3 92.8 .3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28l0-192.4c0-34.9 8.9-45.7 40.6-45.7l317.7 0c30.3 0 40.9 12.9 40.9 45.7l0 190.6-.1 0z"],uber:[448,512,[],"f402","M414.1 32L33.9 32C15.2 32 0 47.2 0 65.9L0 446c0 18.8 15.2 34 33.9 34L414 480c18.7 0 33.9-15.2 33.9-33.9l0-380.2C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6l94.4 0 0 20.4c0 3.7 3 6.8 6.8 6.8l67.9 0c3.7 0 6.8-3 6.8-6.8l0-67.9c0-3.7-3-6.8-6.8-6.8l-67.9 0c-3.7 0-6.8 3-6.8 6.8l0 20.4-94.4 0c7-69.4 65.4-122.2 135.1-122.2s128.1 52.8 135.1 122.2c7.5 74.5-46.9 141.1-121.5 148.6z"],"digital-ocean":[512,512,[],"f391","M87 481.8l73.7 0 0-73.6-73.7 0 0 73.6zM25.4 346.6l0 61.6 61.6 0 0-61.6-61.6 0zM491.6 176.9C468.6 102.7 409.2 43.6 335 20.3 164.9-32.8 8 93.7 8 255.9l95.8 0c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208l0 .3-.3 0 0 95.8c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231l0-95.3-95.6 0 0 95.6 95.3 0 0-.3 .3 0z"],soundcloud:[640,512,[],"f1be","M640.2 298.6c-1.3 23.1-11.5 44.8-28.4 60.5s-39.2 24.4-62.3 24.1l-218 0c-4.8 0-9.4-2-12.8-5.4s-5.3-8-5.3-12.8l0-234.8c-.2-4 .9-8 3.1-11.4s5.3-6.1 9-7.7c0 0 20.1-13.9 62.3-13.9 25.8 0 51.1 6.9 73.3 20.1 17.3 10.2 32.3 23.8 44.1 40.1s20 34.8 24.2 54.4c7.5-2.1 15.3-3.2 23.1-3.2 11.7-.1 23.3 2.2 34.2 6.7s20.5 11.3 28.7 19.7 14.6 18.3 18.9 29.3 6.3 22.6 5.9 34.3zm-354-153.5c.1-1 0-2-.3-2.9s-.8-1.8-1.5-2.6-1.5-1.3-2.4-1.7c-1.8-.8-4-.8-5.8 0-.9 .4-1.7 1-2.4 1.7s-1.2 1.6-1.5 2.6-.4 1.9-.3 2.9c-6 78.9-10.6 152.9 0 231.6 .2 1.7 1 3.3 2.3 4.5 2.6 2.4 6.8 2.4 9.4 0 1.3-1.2 2.1-2.8 2.3-4.5 11.3-79.4 6.6-152 0-231.6l.2 0zm-44 27.3c-.2-1.8-1.1-3.5-2.4-4.7s-3.1-1.9-5-1.9-3.6 .7-5 1.9-2.2 2.9-2.4 4.7c-7.9 67.9-7.9 136.5 0 204.4 .3 1.8 1.2 3.4 2.5 4.5s3.1 1.8 4.8 1.8 3.5-.6 4.8-1.8 2.2-2.8 2.5-4.5c8.8-67.8 8.8-136.5 .1-204.4l.1 0zm-44.3-6.9c-.2-1.8-1-3.4-2.3-4.6s-3-1.8-4.8-1.8-3.5 .7-4.8 1.8-2.1 2.8-2.3 4.6c-6.7 72-10.2 139.3 0 211.1 0 1.9 .7 3.7 2.1 5s3.1 2.1 5 2.1 3.7-.7 5-2.1 2.1-3.1 2.1-5c10.5-72.8 7.3-138.2 .1-211.1l-.1 0zm-44 20.6c0-1.9-.8-3.8-2.1-5.2s-3.2-2.1-5.2-2.1-3.8 .8-5.2 2.1-2.1 3.2-2.1 5.2c-8.1 63.3-8.1 127.5 0 190.8 .2 1.8 1 3.4 2.4 4.6s3.1 1.9 4.8 1.9 3.5-.7 4.8-1.9 2.2-2.8 2.4-4.6c8.8-63.3 8.9-127.5 .3-190.8l-.1 0zm-44.5 47.6c0-1.9-.8-3.8-2.1-5.1s-3.2-2.1-5.1-2.1-3.8 .8-5.1 2.1-2.1 3.2-2.1 5.1c-10.5 49.2-5.5 93.9 .4 143.6 .3 1.6 1.1 3.1 2.3 4.2s2.8 1.7 4.5 1.7 3.2-.6 4.5-1.7 2.1-2.5 2.3-4.2c6.6-50.4 11.6-94.1 .4-143.6zm-44.1-7.5c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9-3.6 .7-5 1.9-2.2 2.9-2.4 4.8c-9.3 50.2-6.2 94.4 .3 144.5 .7 7.6 13.6 7.5 14.4 0 7.2-50.9 10.5-93.8 .3-144.5l-.2 0zM20.7 250.8c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9-3.6 .7-5 1.9-2.3 2.9-2.4 4.8c-8.5 33.7-5.9 61.6 .6 95.4 .2 1.7 1 3.3 2.3 4.4s2.9 1.8 4.7 1.8 3.4-.6 4.7-1.8 2.1-2.7 2.3-4.4c7.5-34.5 11.2-61.8 .4-95.4l-.2 0z"],"square-figma":[448,512,[],"e7e4","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM173.7 96c-33 0-59.8 26.8-59.8 59.8 0 21 10.8 39.4 27.2 50.1-16.4 10.7-27.2 29.1-27.2 50.1s10.8 39.5 27.2 50.1c-16.4 10.7-27.2 29.1-27.2 50.1 0 33.1 27.1 59.8 60.1 59.8 33.2 0 60.6-26.9 60.6-60.3l0-55.7c10.6 9.8 24.8 15.8 40.4 15.8l1.1 0c33 0 59.8-26.8 59.8-59.8 0-21-10.8-39.5-27.2-50.1 16.4-10.7 27.2-29.1 27.2-50.1 0-33-26.8-59.8-59.8-59.8L173.7 96zm41.6 219.8l0 39.9c0 22.6-18.6 41-41.3 41-22.4 0-40.7-18.2-40.7-40.5 0-22.3 18.1-40.4 40.3-40.4l41.7 0zm0-100.3l0 80.9-41.7 0c-22.3-.1-40.3-18.2-40.3-40.5 0-22.3 18.1-40.5 40.5-40.5l41.6 0zm60.8 0c22.3 0 40.5 18.1 40.5 40.5s-18.1 40.5-40.5 40.5l-1.1 0c-22.3 0-40.4-18.1-40.4-40.5s18.1-40.5 40.4-40.5l1.1 0zm-60.8-19.3l-41.6 0c-22.3 0-40.5-18.1-40.5-40.4s18.1-40.5 40.5-40.5l41.6 0 0 80.9zm60.8-80.9c22.3 0 40.5 18.1 40.5 40.5s-18.1 40.4-40.5 40.4l-41.5 0 0-80.9 41.5 0z"],"creative-commons-sa":[512,512,[],"f4ef","M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zM145.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97l62.5 0c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8l18.2 0-49.2 49.2-49-49.2 19.4 0z"],chrome:[512,512,[],"f268","M0 256c0-46.6 12.5-90.4 34.3-128.9L144.1 318.3c21.9 39.2 63.8 65.7 111.9 65.7 14.3 0 27.1-2.3 40.8-6.6L220.5 509.6C95.9 492.3 0 385.3 0 256zm365.1 65.6c12.3-19.2 18.9-42.5 18.9-65.6 0-38.2-16.8-72.5-43.3-96l152.7 0c12 29.6 18.6 62.1 18.6 96 0 141.4-114.6 255.1-256 256L365.1 321.6zM477.8 128L256 128c-62.9 0-113.7 44.1-125.5 102.7L54.2 98.5C101 38.5 174 0 256 0 350.8 0 433.5 51.5 477.8 128zM344 256a88 88 0 1 1 -176 0 88 88 0 1 1 176 0z"],"trade-federation":[512,512,[],"f513","M256 8.8a247.2 247.2 0 1 0 0 494.4 247.2 247.2 0 1 0 0-494.4zm0 11.6a235.6 235.6 0 1 1 0 471.2 235.6 235.6 0 1 1 0-471.2zM411.1 163.1l0-46.8-193.8 0 0 81.7-155.1 0 36.7 46 117.7 0 0 196.8 48.8 0 0-195.8 83.3 0 0-47-83.3 0 0-34.8 145.7 0 0-.1zm-73.3 45.1l0 23.9-82.9 0 0 197.4-26.8 0 0-197.4-123.8 0-20.1-23.9 143.9 0 0-80.6 171.8 0 0 24.4-145 0 0 56.2 82.9 0zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1-22 9.3zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3-9.5-10.2zM312.3 264.7l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7 9.3-10.8zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17 15-17.6zM256 29.9a226.1 226.1 0 1 0 0 452.2 226.1 226.1 0 1 0 0-452.2zM350.6 196l0 51-83.3 0 0 195.7-52.7 0 0-196.8-116.7 0-40-49.9 157.4 0 0-81.6 197.8 0 0 50.7-145.7 0 0 30.9 83.2 0zM256 43.2c60.3 0 114.8 25 153.6 65.2l-199.1 0 0 81.6-157.4 0C81.1 104.8 161.4 43.2 256 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1l43.8 56.3 114.7 0 0 196.8 64.6 0 0-195.8 83.3 0 0-62.7-83.2 0 0-19.2 145.6 0 0-50.8c30.8 37 49.3 84.6 49.3 136.5 .1 117.9-95.5 213.5-213.4 213.5zM186.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1-22.7 9.3z"],vaadin:[448,512,[],"f408","M224.5 140.7C226 123.1 229.4 88 274.3 88l98.6 0c20.7 0 32.1-7.8 32.1-21.6l0-12.3c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1l0 36.5c0 42.9-21.5 62-66.8 62l-100.5 0c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1l-100.7 0C21.5 152.6 0 133.5 0 90.6L0 54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1l0 12.3C43.1 80.2 54.5 88 75.2 88l98.6 0c44.8 0 48.3 35.1 49.8 52.7l.9 0zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362 157.1 244.3c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z"],deviantart:[320,512,[],"f1bd","M320 93.2l-98.2 179.1 7.4 9.5 90.8 0 0 127.7-160.9 0-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2l-92.7 0 0-93.2 93.2-179.4-7.4-9.2-85.8 0 0-127.6 156 0 13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2l97.6 0 0 93.1z"],medium:[448,512,[62407,"medium-m"],"f23a","M369.4 32c43.4 0 78.6 35.2 78.6 78.6l0 83.8c-1.9-.1-3.8-.2-5.7-.2l-.4 0c-10 0-22.3 2.4-31.1 6.8-10 4.6-18.7 11.5-26 20.6-11.8 14.6-18.9 34.3-20.6 56.4-.1 .7-.1 1.3-.2 2s-.1 1.2-.1 1.9c-.1 1.2-.1 2.4-.1 3.6 0 1.9-.1 3.8 0 5.8 1.2 50.1 28.2 90.2 76.3 90.2 2.7 0 5.3-.1 7.9-.4l0 20.4c0 43.4-35.2 78.6-78.6 78.6L78.6 480C35.2 480 0 444.8 0 401.4L0 110.6C0 67.2 35.2 32 78.6 32l290.8 0zM82.3 138.9l.3 .1c13.2 3 19.8 7.4 19.8 23.4l0 187.2c0 16-6.7 20.4-19.9 23.4l-.3 .1 0 2.8 52.8 0 0-2.8-.3-.1c-13.2-3-19.9-7.4-19.9-23.4l0-176.3 86.1 202.5 4.9 0 88.6-208.2 0 186.6c-1.1 12.6-7.8 16.5-19.7 19.2l-.3 .1 0 2.7 91.9 0 0-2.7-.3-.1c-11.9-2.7-18.7-6.6-19.9-19.2l-.1-191.8 .1 0c0-16 6.7-20.4 19.9-23.4l.3-.1 0-2.7-72.2 0-67 157.4-67-157.4-77.8 0 0 2.7zM448 340.3c-25.1-7.4-43-35.1-41.2-67.8l0 0 41.1 0 0 67.8zm-6.4-135.6c2.3 0 4.4 .3 6.4 .9l0 57.4-40.2 0c1.5-33.6 13.6-57.9 33.8-58.3z"],opencart:[640,512,[],"f23d","M331.8 440.4a45.8 45.8 0 1 1 91.5 .3 45.8 45.8 0 1 1 -91.5-.3zM169.4 394.9a45.7 45.7 0 1 0 .3 91.3 45.7 45.7 0 1 0 -.3-91.3zm291.7-270c-302.2 0-379.2-12.8-461.1-99.2 34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z"],"y-combinator":[448,512,[],"f23b","M448 32l0 448-448 0 0-448 448 0zM236 287.5l77.5-145.5-32.7 0-45.8 91c-4.7 9.3-9 18.3-12.8 26.8l-12.2-26.8-45.2-91-35 0 76.7 143.8 0 94.5 29.5 0 0-92.8z"],line:[512,512,[],"f3c0","M311 196.8l0 81.3c0 2.1-1.6 3.7-3.7 3.7l-13 0c-1.3 0-2.4-.7-3-1.5L254 230 254 278.2c0 2.1-1.6 3.7-3.7 3.7l-13 0c-2.1 0-3.7-1.6-3.7-3.7l0-81.3c0-2.1 1.6-3.7 3.7-3.7l12.9 0c1.1 0 2.4 .6 3 1.6l37.3 50.3 0-48.2c0-2.1 1.6-3.7 3.7-3.7l13 0c2.1-.1 3.8 1.6 3.8 3.5l0 .1zm-93.7-3.7l-13 0c-2.1 0-3.7 1.6-3.7 3.7l0 81.3c0 2.1 1.6 3.7 3.7 3.7l13 0c2.1 0 3.7-1.6 3.7-3.7l0-81.3c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1l-35.6 0 0-64.4c0-2.1-1.6-3.7-3.7-3.7l-13 0c-2.1 0-3.7 1.6-3.7 3.7l0 81.3c0 1 .3 1.8 1 2.5 .7 .6 1.5 1 2.5 1l52.2 0c2.1 0 3.7-1.6 3.7-3.7l0-13c0-1.9-1.6-3.7-3.5-3.7l.1 0zm193.7-68.1l-52.3 0c-1.9 0-3.7 1.6-3.7 3.7l0 81.3c0 1.9 1.6 3.7 3.7 3.7l52.2 0c2.1 0 3.7-1.6 3.7-3.7l0-13.1c0-2.1-1.6-3.7-3.7-3.7l-35.5 0 0-13.6 35.5 0c2.1 0 3.7-1.6 3.7-3.7l0-13.1c0-2.1-1.6-3.7-3.7-3.7l-35.5 0 0-13.7 35.5 0c2.1 0 3.7-1.6 3.7-3.7l0-13c-.1-1.9-1.7-3.7-3.7-3.7l.1 0zM512 93.4l0 326c-.1 51.2-42.1 92.7-93.4 92.6l-326 0C41.4 511.9-.1 469.8 0 418.6l0-326C.1 41.4 42.2-.1 93.4 0l326 0c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3S68.8 150.1 68.8 233.5c0 74.7 66.3 137.4 155.9 149.3 21.8 4.7 19.3 12.7 14.4 42.1-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1l0-.2z"],amilia:[448,512,[],"f36d","M240.2 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1l0 38.5C203.1 227.7 78.3 251 46.8 264.2 11.3 280.5 16.4 357.7 16.4 376S31.6 480 141.3 480c47.8 0 113.7-20.7 153.3-42.1l0 25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5 .3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1l0-296.6c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5l0 106.7z"],asymmetrik:[576,512,[],"f372","M517.5 309.2c38.8-40 58.1-80 58.5-116.1 .8-65.5-59.4-118.2-169.4-135-128.7-19.7-288.5 15.5-406.6 82.4 52-26.5 110.6-48.2 170.7-58.2 74.5-20.5 153-25.4 221.3-14.8 152.5 23.8 196.8 127.5 98.8 231.7-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7 101.6 0 22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1 135.5 0-32.6-53.1c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8 101.6 0-73.4-110.4c18.5-12.1 35-25.5 48.9-39.8zM329.9 389.7l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z"],phabricator:[512,512,[],"f3db","M331.1 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4 .5 .2 28.9 .2 28.9l-9.1 9.1s-29.2-.9-29.7 .4L160 226.3c-.6 1.4 21 21 21 21l.1 12.9S159.4 280 160 281.4l9.5 20c.6 1.4 29.5 .5 29.5 .5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4 .6 20.7-23.5 20.7-23.5l13.1 .2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2 .9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4s-32.1-12.5-32.8-29.6 12.8-31.6 30.1-32.3c17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1 .1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM363.5 148.2a152.3 152.3 0 1 1 -215 215.6 152.3 152.3 0 1 1 215-215.6z"],bots:[640,512,[],"e340","M86.3 197.8c-8-.1-15.9 1.7-23.1 5.1s-13.5 8.6-18.4 14.9l0-61.9c0-2.2-.9-4.3-2.4-5.8s-3.6-2.4-5.8-2.4l-28.4 0c-2.2 0-4.3 .9-5.8 2.4S0 153.8 0 156L0 333.6c0 1.1 .2 2.1 .6 3.1s1 1.9 1.8 2.7 1.7 1.4 2.7 1.8 2.1 .6 3.1 .6l28.4 0c1.1 0 2.1-.2 3.1-.6s1.9-1 2.7-1.8 1.4-1.7 1.8-2.7 .6-2.1 .6-3.1l0-8.1c11.6 13.4 25.9 19.8 41.6 19.8 34.6 0 61.9-26.2 61.9-73.8 0-45.9-27-73.6-61.9-73.6zM71.5 305.7c-9.6 0-21.2-4.9-26.7-12.5l0-43c5.5-7.6 17.2-12.8 26.7-12.8 17.7 0 31.1 13.1 31.1 34 0 21.2-13.4 34.3-31.1 34.3zm156.4-59a17.4 17.4 0 1 0 0 34.8 17.4 17.4 0 1 0 0-34.8zm46.1-90l0-44.7c2.8-1.2 5.2-3.3 6.6-6s1.9-5.8 1.3-8.9-2.2-5.7-4.6-7.7-5.4-3-8.4-3-6.1 1.1-8.4 3-4 4.7-4.6 7.7-.1 6.1 1.3 8.9 3.8 4.8 6.6 6l0 44.7c-28 1.3-54.4 13.6-73.6 34.1s-29.5 47.7-28.8 75.8 12.3 54.7 32.4 74.3 47 30.6 75.1 30.6 55-11 75.1-30.6 31.7-46.3 32.4-74.3-9.7-55.3-28.8-75.8-45.5-32.8-73.6-34.1zm86 107.4c0 30.5-40.8 55.3-91.1 55.3s-91.1-24.7-91.1-55.3 40.8-55.3 91.1-55.3 91.1 24.7 91.1 55.3l0 0zm-50.2 17.4c3.4 0 6.8-1 9.7-2.9s5.1-4.6 6.4-7.8 1.7-6.7 1-10.1-2.3-6.5-4.8-8.9-5.5-4.1-8.9-4.8-6.9-.3-10.1 1-5.9 3.5-7.8 6.4-2.9 6.2-2.9 9.7c0 4.6 1.8 9 5.1 12.3s7.7 5.1 12.3 5.1l0 0zm270.9-31c-14.8-2.6-22.4-3.8-22.4-9.9 0-5.5 7.3-9.9 17.7-9.9 12.2 .1 24.2 3.6 34.5 10.1 1.8 1.2 4 1.6 6.2 1.1s4-1.7 5.1-3.6c.1-.1 .1-.2 .2-.3l8.6-14.9c1.1-1.9 1.4-4.1 .8-6.1s-1.9-3.9-3.7-5c-15.7-9.4-33.7-14.3-52-14.1-39 0-60.2 21.5-60.2 46.2 0 36.3 33.7 41.9 57.6 45.6 13.4 2.3 24.1 4.4 24.1 11 0 6.4-5.5 10.8-18.9 10.8-13.6 0-31-6.2-42.6-13.6-.9-.6-1.9-1-3-1.2s-2.1-.2-3.2 .1-2.1 .7-2.9 1.3-1.6 1.4-2.2 2.3c0 .1-.1 .1-.1 .2l-10.2 16.9c-1.1 1.8-1.4 4-1 6s1.7 3.9 3.5 5c15.2 10.3 37.7 16.7 59.4 16.7 40.4 0 64-19.8 64-46.5 0-38.1-35.5-43.9-59.3-48.3zm-95.9 60.8c-.5-2-1.8-3.7-3.6-4.8s-3.9-1.5-5.9-1.1c-1.4 .3-2.8 .4-4.2 .4-7.8 0-12.5-6.1-12.5-14.2l0-51.2 20.3 0c2.2 0 4.2-.9 5.8-2.4s2.4-3.6 2.4-5.8l0-22.7c0-2.2-.9-4.2-2.4-5.8s-3.6-2.4-5.8-2.4l-20.3 0 0-30.2c0-2.2-.9-4.2-2.4-5.8s-3.6-2.4-5.8-2.4l-28.2 0c-2.2 0-4.2 .9-5.8 2.4s-2.4 3.6-2.4 5.8l0 30.2-15.1 0c-1.1 0-2.1 .2-3.1 .6s-1.9 1-2.6 1.8-1.4 1.7-1.8 2.6-.6 2-.6 3.1l0 22.7c0 1.1 .2 2.1 .6 3.1s1 1.9 1.8 2.6 1.7 1.4 2.6 1.8 2 .6 3.1 .6l15.1 0 0 63.7c0 27 15.4 41.3 43.9 41.3 12.2 0 21.4-2.2 27.6-5.4 1.6-.8 2.9-2.2 3.7-3.9s.9-3.6 .5-5.4l-5-19.3z"],vine:[384,512,[],"f1ca","M384 254.7l0 52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8-27.1-16.3-129.9-100.6-164.1-365.6l74.5 0c18.7 159.1 64.5 240.7 114.8 301.8 27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z"],medrt:[576,512,[],"f3c8","M129.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9-137.6 0-249-111-249-248S127.4 8 264.9 8c20.1 0 39.6 2.4 58.2 6.9-109.6 18.3-193.4 119.3-193.4 241.1zM427.1 356.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47s108.1-184.3 46.5-272.6c-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9zm-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8zM312 224c-4.4 0-8-3.6-8-8l0-40c0-4.4-3.6-8-8-8l-48 0c-4.4 0-8 3.6-8 8l0 40c0 4.4-3.6 8-8 8l-40 0c-4.4 0-8 3.6-8 8l0 48c0 4.4 3.6 8 8 8l40 0c4.4 0 8 3.6 8 8l0 40c0 4.4 3.6 8 8 8l48 0c4.4 0 8-3.6 8-8l0-40c0-4.4 3.6-8 8-8l40 0c4.4 0 8-3.6 8-8l0-48c0-4.4-3.6-8-8-8l-40 0z"],osi:[512,512,[],"f41a","M8 266.4c2.3-135.8 97.4-232.4 213.8-248.1 138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.6-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 1.5-9.7 1-19.6-1.5-29.1s-6.9-18.4-12.9-26.1-13.6-14.1-22.2-18.8-18.1-7.5-27.9-8.3c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6 .6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4 .8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3 .6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 15.6 9 28.2 22.3 36.2 38.4s11.2 34.2 9 52c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.3 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z"],gg:[512,512,[],"f260","M179.2 230.4l102.4 102.4-102.4 102.4-179.2-179.2 179.2-179.2 44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8l-102.4 102.4 102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8 179.2-179.2-179.2-179.2z"],buysellads:[448,512,[],"f20d","M224 150.7l42.9 160.7-85.8 0 42.9-160.7zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM382.7 405.3l-94.5-298.7-128.4 0-94.5 298.7 90.7 0 111.7-91.6 24.2 91.6 90.8 0z"],"google-plus":[512,512,[],"f2b3","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM185.3 380c-32.9 0-64.4-13.1-87.7-36.3s-36.3-54.8-36.3-87.7 13.1-64.4 36.3-87.7 54.8-36.3 87.7-36.3c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1S142.3 334 185.3 334c32.6 0 64.9-19.1 70.1-53.3l-70.1 0 0-42.6 116.9 0c1.3 6.8 1.9 13.8 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zM415.5 273.8l0 35.5-35.5 0 0-35.5-35.5 0 0-35.5 35.5 0 0-35.5 35.5 0 0 35.5 35.2 0 0 35.5-35.2 0z"],screenpal:[512,512,[],"e570","M278.6 22.5a22.5 22.5 0 1 1 -45 0 22.5 22.5 0 1 1 45 0zM198.7 259a57.4 57.4 0 1 1 114.8 0 57.4 57.4 0 1 1 -114.8 0zm138.6 91c22.3-19.9 36.5-47.3 39.9-77l119.5 0c-3.5 61.4-30.4 119.2-75.2 161.4-44.7 42.2-103.9 65.8-165.4 65.8S135.4 476.6 90.7 434.4C45.9 392.2 19.1 334.4 15.5 273l119.7 0c3.4 29.7 17.6 57.1 39.9 77s51.2 30.9 81.1 30.9c29 0 58.7-11 81.1-30.9zM28.3 141.7a22.5 22.5 0 1 1 45-1.4 22.5 22.5 0 1 1 -45 1.4zm455.6-.7a22.4 22.4 0 1 1 -44.9 0 22.4 22.4 0 1 1 44.9 0zM318 95.3c-17.3 13.8-39.2 22.8-61.9 22.8s-44.6-9-61.9-22.8c-17.3-14.7-28.8-35.1-32.4-57.5 15.1-6.4 30.8-11.3 46.9-14.5 0 12.6 5 24.6 13.9 33.5s20.9 13.9 33.5 13.9 24.6-5 33.5-13.9 13.9-20.9 13.9-33.5c16.1 3.2 31.8 8.1 46.9 14.5-3.6 22.4-15.1 42.8-32.4 57.5zM82.9 231c-21.4 7.6-44.7 7.4-65.9-.6 2-16.3 5.6-32.3 10.8-47.9 5.4 3.1 11.3 5.1 17.5 6 6.2 .8 12.4 .4 18.5-1.2 6-1.7 11.6-4.4 16.6-8.2s9.1-8.5 12.2-13.9 5.1-11.4 6-17.5c.8-6.2 .4-12.5-1.2-18.5s-4.4-11.6-8.2-16.6c-3.8-4.9-8.5-9.1-13.9-12.2 10.8-12.3 22.9-23.5 36-33.3 17.6 14.3 29.5 34.5 33.6 56.8s.1 45.4-11.2 65c-11.4 19.6-29.4 34.5-50.7 42.1zm346.4 .1c-21.3-7.6-39.3-22.6-50.7-42.2-11.3-19.6-15.2-42.7-11.1-65 4.1-22.2 16-42.4 33.5-56.7 13.1 9.8 25.2 21 36 33.3-10.7 6.4-18.4 16.7-21.5 28.8-3.2 12-2.3 24.8 4.8 35.6 6.2 10.8 16.4 18.7 28.4 22s24.9 1.7 35.7-4.3c5.3 15.5 8.9 31.6 10.9 47.8-22.1 8.1-44.6 8.3-66 .7z"],bitcoin:[512,512,[],"f379","M8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm354.3-35.3c4.9-33-20.2-50.7-54.6-62.6l11.1-44.7-27.2-6.8-10.9 43.5c-7.2-1.8-14.5-3.5-21.8-5.1l10.9-43.8-27.2-6.8-11.2 44.7c-5.9-1.3-11.7-2.7-17.4-4.1l0-.1-37.5-9.4-7.2 29.1s20.2 4.6 19.8 4.9c11 2.8 13 10 12.7 15.8l-12.7 50.9c.8 .2 1.7 .5 2.8 .9-.9-.2-1.9-.5-2.9-.7l-17.8 71.3c-1.3 3.3-4.8 8.4-12.5 6.5 .3 .4-19.8-4.9-19.8-4.9l-13.5 31.1 35.4 8.8c6.6 1.7 13 3.4 19.4 5l-11.3 45.2 27.2 6.8 11.2-44.7c7.2 2 14.4 3.8 21.7 5.6l-11.1 44.5 27.2 6.8 11.3-45.1c46.4 8.8 81.3 5.2 96-36.7 11.8-33.8-.6-53.3-25-66 17.8-4.1 31.2-15.8 34.7-39.9zm-62.2 87.2c-8.4 33.8-65.3 15.5-83.8 10.9l14.9-59.9c18.4 4.6 77.6 13.7 68.8 49zm8.4-87.7c-7.7 30.7-55 15.1-70.4 11.3l13.5-54.3c15.4 3.8 64.8 11 56.8 43z"],swift:[448,512,[],"f8e1","M448 156.1c0-4.5-.1-9-.2-13.5-.1-9.9-1-19.7-2.6-29.4-1.7-9.7-4.8-19.2-9.2-28-9-17.7-23.4-32.1-41.2-41.1-8.8-4.5-18.3-7.6-28-9.2-9.7-1.6-19.6-2.5-29.4-2.6-4.5-.1-9-.2-13.5-.2L124.1 32c-4.5 0-9 .1-13.5 .2-2.4 .1-4.9 .2-7.4 .3-7.4 .3-14.8 1.1-22.1 2.3-7.3 1.3-14.4 3.3-21.2 6.1-2.3 1-4.6 2-6.8 3.1-6.6 3.4-12.8 7.5-18.4 12.3-1.9 1.6-3.7 3.3-5.4 5-7 7-12.9 15-17.4 23.8-4.4 8.8-7.6 18.3-9.2 28-1.6 9.7-2.4 19.6-2.5 29.4-.1 4.5-.2 9-.2 13.5L0 355.9c0 4.5 .1 9 .2 13.5 .1 9.9 1 19.7 2.6 29.4 1.7 9.7 4.8 19.2 9.2 28 9 17.7 23.4 32.1 41.1 41.1 8.8 4.4 18.3 7.5 28 9.2 9.7 1.6 19.6 2.5 29.4 2.6 4.5 .1 9 .2 13.5 .2l199.8 0c4.5 0 9-.1 13.5-.2 9.9-.1 19.7-1 29.4-2.6 9.7-1.7 19.2-4.8 28-9.2 17.7-9 32.1-23.4 41.1-41.2 4.4-8.8 7.6-18.3 9.2-28 1.6-9.7 2.5-19.6 2.6-29.4 .1-4.5 .2-9 .2-13.5l0-183.8c0-5.4 0-10.7 0-16zm-69.9 241c-20-38.9-57.2-29.3-76.3-19.5-1.7 1-3.5 2-5.2 3l-.4 .2c-39.5 21-92.5 22.5-145.8-.4-43.4-18.8-80.1-50.3-105.3-90.4 12.3 9.1 25.4 16.9 39.2 23.4 56.4 26.4 113 24.5 153 0-57-43.8-104.6-101-141.1-147.2-7-8.1-13.2-16.8-18.8-25.9 43.7 40 112.7 90.2 137.5 104.1-52.6-55.5-98.9-123.9-96.7-121.7 82.8 83.4 159.2 130.6 159.2 130.6 2.9 1.6 5 2.8 6.7 4 1.6-4.1 3-8.2 4.2-12.5 13.2-48.3-1.7-103.6-35.3-149.2 76.8 46.1 122.2 133.7 103.6 207.8-.4 1.7-1 3.4-1.4 5.1 38.5 47.4 28 98.2 23.1 88.6l0 0z"],"files-pinwheel":[512,512,[],"e69f","M253.5 246.4L137.2 130.2c-.6-.6-1-1.3-1.4-2s-.5-1.6-.5-2.4 .2-1.6 .5-2.4 .8-1.4 1.4-2L253.6 5.1c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3 2.1 1.3 2.8 2.3 1.1 2.2 1.1 3.5l0 232.5c0 1.3-.3 2.5-1 3.6s-1.7 1.9-2.9 2.4-2.5 .6-3.7 .3-2.4-.9-3.2-1.9zm40.3-4.4l0-134.4c0-.8 .1-1.6 .5-2.4s.8-1.5 1.3-2.1 1.3-1.1 2-1.4 1.6-.5 2.4-.5l134.4 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8 .6 2.4 .3 3.6-.9 2.3-1.7 3.2L304.3 246.4c-.9 .8-2 1.4-3.2 1.6s-2.4 .1-3.5-.4-2.1-1.3-2.8-2.3-1.1-2.2-1.1-3.4l.1 .1zm30.6 35c-1.2 0-2.5-.3-3.5-1s-1.9-1.6-2.4-2.8-.6-2.4-.4-3.6 .8-2.3 1.7-3.2L404 182.2c.6-.6 1.3-1 2-1.4s1.6-.5 2.4-.5 1.6 .2 2.4 .5 1.4 .8 2 1.4l84.4 84.2c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6-1.3 2.1-2.3 2.8-2.2 1.1-3.5 1.1l-168.5 0 .1-.1zm90.7 131l-95.3-95.2c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.7 1.3-2.1 2.4-2.8 2.3-1 3.5-1l95.2 0c1.7 0 3.2 .7 4.4 1.8s1.8 2.8 1.8 4.4l0 95.3c0 1.2-.4 2.5-1.1 3.5s-1.7 1.8-2.8 2.3-2.4 .6-3.6 .3-2.3-.9-3.2-1.7zM16.8 302.1l216.9 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8 .6 2.4 .3 3.6-.8 2.3-1.7 3.2L129.7 421.2c-.6 .6-1.3 1-2 1.4s-1.6 .5-2.4 .5-1.6-.2-2.4-.5-1.4-.8-2-1.4L12.3 312.8c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.6 1.3-2.1 2.3-2.8 2.3-1 3.5-1l0-.1zM264.3 465.3c0 .8-.2 1.6-.5 2.4s-.8 1.5-1.4 2-1.3 1-2 1.4-1.6 .5-2.4 .5l-128 0c-1.2 0-2.5-.4-3.5-1.1s-1.8-1.7-2.3-2.8-.6-2.4-.3-3.6 .8-2.3 1.7-3.2l128-128c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3 2.1 1.3 2.8 2.3 1.1 2.2 1.1 3.5l0 128zm40-132.5l82.8 82.7c.6 .6 1 1.3 1.4 2s.5 1.6 .5 2.4-.2 1.6-.5 2.4-.8 1.4-1.4 2L304.3 507c-.9 .9-2 1.5-3.2 1.7s-2.5 .1-3.6-.3-2.1-1.3-2.8-2.3-1.1-2.2-1.1-3.5l0-165.4c0-1.2 .4-2.5 1.1-3.5s1.7-1.8 2.8-2.3 2.4-.6 3.6-.3 2.3 .8 3.2 1.7zM79 122.4c0-1.2 .3-2.5 1-3.5s1.7-1.8 2.8-2.3 2.4-.6 3.6-.4 2.3 .8 3.2 1.7L238.1 266.4c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6-1.3 2.1-2.3 2.8-2.2 1.1-3.5 1.1l-148.4 0c-1.7 0-3.2-.7-4.4-1.8s-1.8-2.8-1.8-4.4l0-148.4-.1-.1z"],laravel:[512,512,[],"f3bd","M504.6 115.8c-.1-.2-.2-.5-.3-.7-.1-.4-.3-.8-.5-1.2-.2-.2-.3-.5-.5-.7-.2-.3-.5-.6-.7-.9-.2-.2-.5-.4-.8-.6-.3-.2-.6-.5-.9-.7L404.6 55.5c-1.2-.7-2.6-1.1-4-1.1s-2.8 .4-4 1.1L300.3 111c-.3 .2-.6 .4-.9 .7-.3 .2-.5 .4-.8 .6-.3 .3-.5 .6-.7 .9-.2 .2-.4 .4-.5 .7-.2 .4-.4 .8-.5 1.2-.1 .2-.2 .4-.3 .7-.2 .7-.3 1.4-.3 2.1l0 105.2-80.2 46.2 0-205.9c0-.7-.1-1.4-.3-2.1-.1-.2-.2-.4-.3-.7-.1-.4-.3-.8-.5-1.2-.1-.3-.4-.5-.5-.7-.2-.3-.5-.6-.7-.9-.2-.2-.5-.4-.8-.6-.3-.2-.6-.5-.9-.7L115.8 1.1c-1.2-.7-2.6-1.1-4-1.1s-2.8 .4-4 1.1L11.5 56.5c-.3 .2-.6 .4-.9 .7-.3 .2-.5 .4-.8 .6-.3 .3-.5 .6-.7 .9-.2 .3-.4 .5-.6 .7-.2 .4-.4 .8-.5 1.2-.1 .2-.2 .4-.3 .7-.2 .7-.3 1.4-.3 2.1l0 329.7c0 1.4 .4 2.8 1.1 4s1.7 2.2 2.9 2.9L204 510.9c.4 .2 .9 .4 1.3 .5 .2 .1 .4 .2 .6 .3 1.3 .4 2.8 .4 4.1 0 .2-.1 .4-.2 .6-.2 .5-.2 1-.3 1.4-.6L404.6 400.1c1.2-.7 2.2-1.7 2.9-2.9s1.1-2.6 1.1-4l0-105.3 92.2-53.1c1.2-.7 2.2-1.7 2.9-3s1.1-2.6 1.1-4l0-109.8c0-.7-.1-1.4-.2-2.1zM111.8 17.3l80.2 46.1-80.2 46.2-80.2-46.2 80.2-46.2zm88.2 60l0 201.3c-33.2 19.1-59.9 34.5-80.2 46.2l0-201.3C153 104.4 179.7 89 200 77.3zm0 412.8L23.5 388.5 23.5 77.3c20.3 11.7 47.1 27.1 80.2 46.2l0 215.2c0 .3 .1 .6 .1 .9 0 .4 .1 .8 .2 1.2 .1 .3 .2 .6 .4 .9 .1 .3 .3 .7 .4 1 .2 .3 .4 .5 .6 .8 .2 .3 .4 .6 .7 .8 .2 .2 .5 .4 .8 .6 .3 .2 .6 .5 .9 .7l92.2 52.2 .1 92.4zm8-106.2L128 338.6c54.7-31.5 113.5-65.3 176.3-101.5l80.1 46.1C355 300 296.2 333.5 208 383.9zm184.5 4.6l-176.5 101.6 0-92.3C317.4 340 376.2 306.4 392.5 297l0 91.4zm0-119.1c-20.3-11.6-47.1-27-80.2-46.1l0-91.4c20.3 11.7 47.1 27.1 80.2 46.2l0 91.3zm8-105.3l-80.2-46.2 80.2-46.2 80.2 46.1-80.2 46.2zm8 105.3l0-91.3c33.2-19.1 60-34.5 80.3-46.2l0 91.4-80.3 46.2z"],wpforms:[448,512,[],"f298","M448 75.2l0 361.7c0 24.3-19 43.2-43.2 43.2l-361.6 0C19.3 480 0 461.4 0 436.8L0 75.2C0 51.1 18.8 32 43.2 32l361.7 0c24 0 43.1 18.8 43.1 43.2zM410.7 436.8l0-361.6c0-3-2.6-5.8-5.8-5.8l-9.3 0-110.3 74.6-61.3-49.9-61.2 49.9-110.3-74.7-9.3 0c-3.2 0-5.8 2.8-5.8 5.8l0 361.7c0 3 2.6 5.8 5.8 5.8l361.7 0c3.2 .1 5.8-2.7 5.8-5.8zM150.2 186l0 37-73.5 0 0-37 73.5 0zm0 74.4l0 37.3-73.5 0 0-37.3 73.5 0zm11.1-147.3l54-43.7-118.5 0 64.5 43.7zm210 72.9l0 37-196 0 0-37 196 0zm0 74.4l0 37.3-196 0 0-37.3 196 0zM286.7 113.1l64.5-43.7-118.4 0 53.9 43.7zM371.3 335l0 37.3-99.4 0 0-37.3 99.4 0z"],"speaker-deck":[512,512,[],"f83c","M213.9 296L100 296c-26.5 0-52-10.5-70.7-29.3S0 222.5 0 196 10.5 144 29.3 125.3 73.5 96 100 96l132.8 0c10.6 0 20.8 4.2 28.3 11.7s11.7 17.7 11.7 28.3-4.2 20.8-11.7 28.3-17.7 11.7-28.3 11.7L98 176c-26.5 0-26.4 40 0 40l113.8 0c26.5 0 52 10.5 70.7 29.3s29.3 44.2 29.3 70.7-10.5 52-29.3 70.7-44.2 29.3-70.7 29.3L40 416c-10.6 0-20.8-4.2-28.3-11.7S0 386.6 0 376 4.2 355.2 11.7 347.7 29.4 336 40 336l173.9 0c26.5 0 26.5-40 0-40zM298 416c13.5-9.2 25-21 33.8-34.7s14.7-29.2 17.3-45.3l64.6 0c2.6 0 5.2-.6 7.6-1.6s4.6-2.5 6.4-4.4 3.3-4.1 4.2-6.5 1.5-5 1.4-7.6l0-120c0-2.6-.5-5.2-1.4-7.6s-2.4-4.6-4.2-6.5-4-3.3-6.4-4.4-5-1.6-7.6-1.6l-117.2 0c9.7-11.1 15-25.3 15-40s-5.3-28.9-15-40l136.9 0c43.4 0 78.6 35.8 78.6 80l0 160c0 44.2-35.2 80-78.6 80L298 416z"],flickr:[448,512,[],"f16e","M400 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM144.5 192a63.5 63.5 0 1 1 0 127 63.5 63.5 0 1 1 0-127zm159 0a63.5 63.5 0 1 1 0 127 63.5 63.5 0 1 1 0-127z"],"cc-visa":[576,512,[],"f1f0","M470.1 231.3s7.6 37.2 9.3 45l-33.4 0c3.3-8.9 16-43.5 16-43.5-.2 .3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM152.5 331.2l63.2-155.2-42.5 0-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1l-64.7 0-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135 42.5 0zm94.4 .2l25.2-155.4-40.2 0-25.1 155.4 40.1 0zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2 .2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2 .1 69.7-20.8 70-53zM528 331.4l-32.4-155.4-31.1 0c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5 42.2 0s6.9-19.2 8.4-23.3l51.6 0c1.2 5.5 4.8 23.3 4.8 23.3l37.2 0z"],upwork:[640,512,[],"e641","M493.9 295.6c-50.3 0-83.5-38.9-92.8-53.9 11.9-95.3 46.8-125.4 92.8-125.4 45.5 0 80.9 36.4 80.9 89.7s-35.4 89.7-80.9 89.7l0-.1zm0-237.8c-81.9 0-127.8 53.4-141 108.4-14.9-28-25.9-65.5-34.5-100.3l-113.2 0 0 141c0 51.1-23.3 89-68.8 89s-71.6-37.8-71.6-89l.5-141-65.3 0 0 141c0 41.1 13.3 78.4 37.6 105.1 25 27.5 59.2 41.8 98.8 41.8 78.8 0 133.8-60.4 133.8-146.9l0-94.8c8.2 31.2 27.8 91.1 65.3 143.6l-35 199.4 66.4 0 23.1-141.3c7.6 6.3 15.7 12 24.2 17 22.2 14 47.7 21.9 73.9 22.8 0 0 4 .2 6.1 .2 81.2 0 145.9-62.9 145.9-147.8S575.3 57.9 494.1 57.9l-.2-.1z"],"kakao-talk":[576,512,[],"e7d7","M288 2.5c159.1 0 288 101.7 288 227.1 0 125.4-128.9 227.1-288 227.1-17.5 0-34.6-1.2-51.2-3.6-16.6 11.7-112.6 79.1-121.7 80.4 0 0-3.7 1.4-6.9-.4s-2.6-6.7-2.6-6.7C106.6 519.8 130.6 437.2 135 421.9 53.9 381.8 0 310.6 0 229.5 0 104.1 128.9 2.5 288 2.5zM86.2 161.7c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3l25.9 0 0 98.7c0 8.8 7.5 15.9 16.6 15.9s16.6-7.1 16.6-15.9l0-98.7 25.9 0c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3l-85.1 0zm140.8 0c-10.8 .2-19.3 8.4-22.1 16.4L165.2 282.7c-5 15.7-.6 21.5 3.9 23.6 3.2 1.5 6.9 2.3 10.6 2.3 6.9 0 12.2-2.8 13.8-7.3l8.2-21.6 50.7 0 8.2 21.5c1.6 4.5 6.9 7.3 13.8 7.3 3.7 0 7.3-.8 10.6-2.3 4.6-2.1 9-7.9 3.9-23.6L249.2 178.1c-2.8-8-11.3-16.2-22.2-16.4zm180.9 0c-9.2 0-16.6 7.5-16.6 16.6l0 113.7c0 9.2 7.5 16.6 16.6 16.6s16.6-7.5 16.6-16.6l0-36.2 5.8-5.8 38.9 51.6c3.2 4.2 8 6.6 13.3 6.6 3.6 0 7.1-1.1 10-3.3 3.5-2.7 5.8-6.6 6.4-11s-.5-8.8-3.2-12.3l-40.9-54.2 37.9-37.8c2.6-2.6 3.9-6.2 3.7-10.1-.2-3.9-2-7.6-4.9-10.5-3.1-3.1-7.3-4.9-11.4-4.9-3.6 0-6.8 1.3-9.2 3.7l-46.3 46.4 0-35.7c0-9.2-7.5-16.6-16.6-16.6zm-91.3 0c-9.3 0-16.9 7.5-16.9 16.6l0 112.8c0 8.4 7.1 15.2 15.9 15.3l53.3 0c8.8 0 15.9-6.9 15.9-15.3s-7.2-15.2-15.9-15.2l-35.3 0 0-97.6c0-9.2-7.6-16.6-17-16.6zm-73 88.6l-33.2 0 16.6-47.1 16.6 47.1z"],flutter:[448,512,[],"e694","M429.5 236.3L291.7 374.1 429.5 512 272 512c-36.1-36.1-82.1-82.1-137.9-137.9l137.9-137.8 157.5 0zM272 0L16 256 94.8 334.8 429.5 0 272 0z"],buffer:[448,512,[],"f837","M428.2 380.7L231.7 478.5c-2.3 1-4.8 1.5-7.3 1.5s-5-.5-7.3-1.5L20.5 380.7c-4-2-4-5.3 0-7.3L67.6 350c2.3-1 4.8-1.5 7.3-1.5s5 .5 7.3 1.5l134.8 67c2.3 1 4.8 1.5 7.3 1.5s5-.5 7.3-1.5l134.8-67c2.3-1 4.8-1.5 7.3-1.5s5 .5 7.3 1.5l47.1 23.4c4 2 4 5.2 0 7.2zm0-136.5l-47.1-23.4c-2.3-1-4.8-1.5-7.3-1.5s-5 .5-7.3 1.5L231.7 287.8c-2.3 1-4.8 1.5-7.3 1.5s-5-.5-7.3-1.5L82.3 220.7c-2.3-1-4.8-1.5-7.3-1.5s-5 .5-7.3 1.5L20.5 244.1c-4 2-4 5.3 0 7.3l196.5 97.8c2.3 1 4.8 1.5 7.3 1.5s5-.5 7.3-1.5l196.5-97.8c4-2 4-5.3 0-7.3zM20.5 130.4L217 220.7c4.7 1.9 10 1.9 14.7 0l196.5-90.3c4-1.9 4-4.9 0-6.7L231.7 33.4c-4.7-1.9-10-1.9-14.7 0L20.5 123.7c-4 1.8-4 4.9 0 6.7z"],gratipay:[512,512,[],"f184","M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM374.3 233.7L257.7 391.3 141.3 233.7c-9-12.3-19.7-52 14-74.3 29-18.7 56.4-4.3 70.7 12.3 16.4 18.5 48.1 17.4 63.7 0 14.3-16.6 41.7-31 70.3-12.3 34 22.3 23.3 61.9 14.2 74.3z"],"google-pay":[640,512,[],"e079","M105.7 215l0 41.2 57.1 0c-1.2 6.6-3.6 12.9-7.2 18.5s-8.4 10.4-13.9 14.1c-9.5 6.6-21.7 10.3-36 10.3-27.6 0-50.9-18.9-59.3-44.2-4.4-13.3-4.4-27.7 0-41 8.4-25.5 31.7-44.4 59.3-44.4 7.5-.1 14.9 1.2 21.9 4s13.3 6.9 18.6 12.1L176.5 155c-19.1-18.1-44.4-28.1-70.7-27.8-19.7 .1-38.9 5.7-55.6 16.1s-30.1 25.3-38.8 43C3.9 201.2 0 217.7 0 234.4s3.9 33.2 11.3 48.1l0 .2c8.7 17.7 22.1 32.5 38.8 43s35.9 16 55.6 16c28.5 0 52.5-9.5 70-25.9 20-18.6 31.4-46.2 31.4-78.9 0-7.3-.6-14.6-1.8-21.8l-99.7 0zm389.4-4c-10.1-9.4-23.9-14.1-41.4-14.1-22.5 0-39.3 8.3-50.5 24.9L424.1 235c7.6-11.3 18.1-17 31.3-17 8.4 0 16.5 3.2 22.7 8.8 3 2.6 5.5 5.9 7.1 9.6s2.5 7.6 2.5 11.7l0 5.5c-9.1-5.1-20.6-7.8-34.6-7.8-16.4 0-29.6 3.9-39.5 11.8s-14.8 18.3-14.8 31.6c-.2 5.9 1 11.8 3.4 17.2s6 10.2 10.5 14.1c9.2 8.3 21 12.5 34.8 12.5 16.3 0 29.2-7.3 39-21.9l1 0 0 17.7 22.6 0 0-78.7c.1-16.6-4.9-29.7-15-39zm-19.2 89.3c-3.5 3.5-7.6 6.3-12.2 8.2s-9.5 2.9-14.4 2.9c-6.7 .1-13.1-2.1-18.3-6.2-2.4-1.8-4.4-4.2-5.7-6.9s-2-5.7-2-8.7c0-7 3.2-12.8 9.5-17.4s14.5-7 24.1-7c13.2-.2 23.5 2.8 30.8 8.8 0 10.1-4 18.9-11.7 26.4zm-93.7-142c-5.3-5.3-11.6-9.5-18.6-12.3s-14.4-4.2-21.9-4l-62.7 0 0 186.7 23.6 0 0-75.6 39 0c16 0 29.5-5.4 40.5-15.9 .9-.9 1.8-1.8 2.6-2.7 9.6-10.5 14.8-24.4 14.3-38.6s-6.6-27.7-16.9-37.6l0 0zm-16.6 62.2c-3 3.2-6.6 5.7-10.6 7.4s-8.4 2.5-12.7 2.3l-39.6 0 0-65.2 39.6 0c8.5 0 16.6 3.3 22.6 9.2 6.1 6.1 9.6 14.3 9.8 23s-3.1 17-9 23.3l0 0zM614.3 201l-36.5 91.7-.5 0-37.4-91.7-25.7 0 51.8 119.6-29.4 64.3 24.3 0 79-183.9-25.7 0z"],apple:[384,512,[],"f179","M319.1 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7-55.8 .9-115.1 44.5-115.1 133.2 0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zM262.5 104.5c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z"],tumblr:[320,512,[],"f173","M309.9 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6l0-144-47.5 0c-5.5 0-10-4.5-10-10l0-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1 .8-11 6.5-16.3 16.1-16.3l70.9 0c5.5 0 10 4.5 10 10l0 115.2 83 0c5.5 0 10 4.4 10 9.9l0 81.7c0 5.5-4.5 10-10 10l-83.4 0 0 133.2c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5 .9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z"],"phoenix-squadron":[512,512,[],"f511","M96 63.4c46.5-36.1 105.6-56.1 164.5-54.6 29.6-.4 59.1 5.4 86.9 15.3-24.1-4.6-49-6.3-73.4-2.5-42.9 5.3-83 27.2-111.8 59.2 5.7-1 10.8-3.7 16-5.9 18.1-7.9 37.5-13.3 57.2-14.8 19.7-2.1 39.6-.4 59.3 1.9-14.4 2.8-29.1 4.6-43 9.6-34.4 11.1-65.3 33.2-86.3 62.6-13.8 19.7-23.6 42.9-24.7 67.1-.4 16.5 5.2 34.8 19.8 44 11.2 6.8 24.6 9.2 37.5 6.7 15.4-2.5 30.1-8.6 43.6-16.3 11.5-6.8 22.7-14.6 32-24.3 3.8-3.2 2.5-8.4 2.6-12.8-2.1-.3-4.4-1.1-6.3 .3-11.4 6.3-23.4 11.4-35.8 15.4-20 6.2-42.2 8.5-62.1 .8 12.8 1.7 26.1 .3 37.7-5.4 20.2-9.7 36.8-25.2 54.4-38.8 27.7-21.3 57.5-39.9 88.9-55.3 25.7-12 52.9-22.8 81.6-24.1-15.6 13.7-32.1 26.5-46.8 41.4-14.5 14-27.5 29.5-40.1 45.2-3.5 4.6-9 6.9-13.6 10.2-22.4 15-40.3 35.8-51.9 60.1-9.3 19.7-14.5 41.9-11.8 63.6 1.9 13.7 8.7 27.6 20.9 34.9 12.9 8 29 8.1 43.5 5.1 32.8-7.4 61.4-28.9 81-55.8 20.4-27.5 30.5-62.2 29.2-96.3-.5-7.5-1.6-15-1.7-22.5 8 19.5 14.8 39.7 16.6 60.8 2 14.3 .7 28.8-1.6 42.9-1.9 11-5.7 21.5-7.8 32.4 20.4-22.9 34-50.9 39.3-81.1 5.6-35.5 .7-71.9-14.2-104.6 20.8 32 32.3 69.6 35.7 107.5 .5 12.7 .5 25.5 0 38.2-2.8 34.3-12.9 67.6-29.6 97.8-26.1 47.3-68 85.6-117.2 108-78.3 36.2-174.7 31.3-248-14.7-39-23.8-70.6-58-91.4-98.7-14.7-28.9-23.3-60.5-25.4-92.9l0-31.3C3.9 172 40.9 105.8 96 63.4zm222 80.3c5.5-.9 10.8-2.4 16-4.5 5-1.8 9.2-5.9 10.3-11.2-9 5-18 9.9-26.3 15.7z"],centercode:[512,512,[],"f380","M201.8 254.8a64.1 64.1 0 1 1 127.4 13.8 64.1 64.1 0 1 1 -127.4-13.8zm41.6 248.9C96.7 496-8.2 365.5 10.1 224.3 21.3 137.7 75.9 67.4 149.2 32.3 310.2-44.8 498.9 69.7 503.9 248.9 508 395.9 385.5 511.1 243.4 503.7zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z"],debian:[448,512,[],"e60b","M380.4 245.6c3-7.6 5.5-14 5.2-24.4l-4.3 9c4.4-13.2 4-27.1 3.6-40.4-.2-6-.3-11.8 0-17.4l-1.8-.5c-1.5-45.2-40.6-93.1-75.3-109.4-30-13.8-76.1-16.2-97.3-5.8 1.3-1.1 4.2-2 6.8-2.7l.3-.1c3.3-1 6-1.7 4-2.9-19.2 1.9-24.9 5.5-31.1 9.4l-.1 0c-4.6 2.9-9.5 6-20.3 8.7-3.5 3.4 1.7 2 5.8 .9s7.2-1.9-.1 2.4c-3.5 1-6.6 1.3-9.6 1.6l-.1 0c-8.3 .8-15.8 1.6-30.7 17 .8 1.3 3.4-.2 5.3-1.3l.1-.1c2.3-1.4 3.4-2-1.7 4.4-19.1-2.4-60.3 43.7-69.1 59l4.6 .8c-3.2 8-6.8 14.8-10 20.8-4.3 8.1-7.9 14.9-8.7 21.3-.3 5.1-1 11-1.7 17.3-.1 1-.2 2-.3 3l-.1 .6c-3 27.3-6.7 60.8 3.9 73l-1.3 13c.6 1.2 1.1 2.3 1.6 3.5 .2 .4 .4 .8 .5 1.1 1 2.1 2 4.2 3.3 6.2l-3 .2c7 22.1 10.8 22.5 15.1 22.9 4.4 .4 9.3 .9 18.7 24.2-2.7-.9-5.5-1.9-9.4-7.2-.5 4.1 5.8 16.3 13.1 25.8l-3.1 3.6c2.1 3.7 4.8 6.2 7.6 8.8 1 .9 2.1 1.9 3.1 2.9-11.9-6.5 3.2 13.7 11.9 25.2 .8 1.1 1.5 2 2.2 2.9 1.4 1.9 2.5 3.4 2.9 4.1l2.4-4.2c-.3 6.1 4.3 13.9 13.1 24.7l7.3-.3c3 6 14 16.7 20.7 17.2l-4.4 5.8c8.1 2.6 10.3 4.3 12.7 6.2 2.6 2.1 5.4 4.3 16.1 8.1l-4.2-7.4c3.5 3 6.2 5.9 8.8 8.7l.1 .1c5.2 5.6 9.9 10.6 19.7 15.3 10.7 3.7 16.6 4.7 22.7 5.8 .3 0 .6 .1 .9 .1 5.4 .8 11.2 1.8 20.8 4.5-1.1-.1-2.2-.1-3.3-.1-2.3-.1-4.7-.1-7-.1-14.4-.2-29.2-.4-42.7-5.2-96.6-25.7-184.9-139-178.4-255.6-.6-9.9-.3-20.9 0-30.7 .4-13.5 .7-24.8-1.6-28.3l1-3.1c5.3-17.4 11.7-38.2 23.8-62.8l-.1-.2 0-.1c.4 .4 3.4 3.4 8.8-5.8 .8-1.8 1.6-3.7 2.4-5.6 .5-1.1 .9-2.2 1.4-3.2 2.5-6.1 5.1-12.3 8.4-17.9l2.6-.6c1.7-10.1 17-23.8 29.8-35.2l1.1-1c5.7-5.1 10.7-9.7 13.6-13.1l.7 4.4c17-15.9 44.6-27.5 65.6-36.4l.5-.2c4.8-2 9.3-3.9 13.3-5.7-3.4 3.8 2.2 2.7 10 1 4.8-1 10.4-2.1 15.3-2.4l-3.9 2.1c-2.7 1.4-5.4 2.8-8 4.6 8.1-2 11.7-1.4 15.7-.8l.3 0c3.5 .6 7.3 1.2 14.6 .2-5.6 .8-12.3 3-11.2 3.8 7.9 .9 12.8-.1 17.2-1l.2 0c5.5-1.1 10.3-2 19.3 .9l-1-4.8c7.3 2.6 12.7 4.3 17.5 5.8l.5 .1c10 3 17.6 5.3 34.2 14.1 3.2 .2 5.3-.5 7.4-1.2l.1 0c3.6-1.1 7-2.1 15.2 1.2 .3 .5 .5 1 .7 1.4 .1 .2 .2 .5 .3 .7l0 .1c1 2.6 1.8 4.6 14.6 12.1 1.7-.7-2.7-4.7-6.4-8.2l-.1-.1c-.2-.1-.3-.3-.5-.4 32.2 17.3 67.3 54.1 78 93.5-6-11.1-5.2-5.5-4.3 .5 .6 4 1.2 8.1-.2 7.5 4.5 12.1 8.1 24.5 10.4 37.4l-.8-2.9-.1-.3c-3.3-11.9-9.6-34.3-19.9-49.3-.4 4.3-2.8 3.9-5.2 3.5l-.1 0c-3.3-.6-6.2-1.1-1.9 12.6 2.6 3.8 3.1 2.4 3.5 1.1 .5-1.5 .9-2.7 4.7 5.2 .1 4.1 1 8.2 2.1 12.7l.1 .6c.1 .3 .1 .5 .2 .8l.1 .6c.6 2.6 1.3 5.4 1.8 8.4-1.1-.2-2.3-2.2-3.4-4.2-1.4-2.4-2.8-4.7-3.7-3.2 2.4 11.5 6.5 17.4 8 18.3-.3 .6-.6 .7-1.1 .7-.8 0-1.8 .1-1.9 5.3 .7 13.7 3.3 12.5 5.3 11.6 .6-.3 1.2-.6 1.7-.4-.6 2.5-1.6 5.1-2.7 7.9-2.8 7.1-6 15.4-3.4 26.1-.8-3-2-6-3.1-8.9l-.1-.4c-.2-.5-.4-1-.6-1.5-.3-.8-.6-1.6-.9-2.3-.6 4.4-.3 7.7-.1 10.6l0 .7c.4 5.3 .7 10-3 19.9 4.3-14.2 3.8-26.9-.2-20.8 1 10.9-3.7 20.4-8 28.9l-.1 .2c-3.6 7.1-6.8 13.5-5.9 19.3l-5.2-7.1c-7.5 10.9-7 13.3-6.5 15.5l0 .1c.5 1.9 1 3.8-3.4 10.8 1.7-2.9 1.3-3.6 1-4.2-.4-.8-.7-1.5 1.7-5.1-1.6 .1-5.5 3.9-10.1 8.5-3.9 3.9-8.5 8.4-12.8 11.8-37.5 30.1-82.3 34-125.6 17.8 .2-1-.2-2.1-3.1-4.1-36.8-28.2-58.5-52.1-50.9-107.5 2.1-1.6 3.6-5.8 5.3-10.8l.2-.4 .1-.3 0-.1c2.9-8.4 6.5-18.8 14.3-23.8 7.8-17.3 31.3-33.3 56.4-33.7 25.6-1.4 47.2 13.7 58.1 27.9-19.8-18.4-52.1-24-79.7-10.4-28.2 12.7-45 43.8-42.5 74.7 .3-.4 .6-.6 .9-.8l.2-.2c.6-.5 1.1-.9 1.4-3.3-.9 60.2 64.8 104.3 112.1 82l.6 1.3c12.7-3.5 15.9-6.5 20.3-10.7l.1-.1c2.2-2.1 4.7-4.5 8.9-7.3-.3 .7-1.3 1.7-2.4 2.7-2.2 2.1-4.6 4.5-1.6 4.6 5-1.3 18.5-13.4 28.5-22.3 .6-.5 1.2-1 1.7-1.5 1.5-1.3 2.8-2.5 4-3.6l.3-.3c1.9-4.2 1.6-5.6 1.3-7l0-.1c-.4-1.6-.8-3.3 2.4-9.6l7.3-3.7c.8-2.1 1.5-4.1 2.2-6 .2-.6 .5-1.2 .7-1.8l-.4-.2-.1-.1zM248 334.1c-6-3-13.7-8.9-14.8-11.4l-.4 .3c-.3 .6-.5 1.3-.2 2.2-12.2-5.7-23.4-14.3-32.6-24.9 4.9 7.1 10.1 14.1 17 19.5-6.9-2.3-15.1-11.8-21.6-19.3l-.1-.1c-4.3-5-7.9-9.1-9.7-9.5 19.8 35.5 80.5 62.3 112.3 49-14.7 .5-33.4 .3-49.9-5.8zm79.3-119.7l-.1-.2c-.5-1.5-1.1-3.1-1.7-3.4 1.4-5.8 5.4-10.7 4.4 4.6-1 3.8-1.8 1.5-2.6-1zm-4.2 22.2c-1.3 7.9-5 15.5-10.1 22.5 .2-2-1.2-2.4-2.6-2.8-2.9-.8-5.9-1.6 5.6-16.1-.5 1.9-2.1 4.6-3.7 7.3l-.3 .4c-3.6 5.9-6.7 11 4 4.3l1-1.8c2.6-4.5 5-8.8 6-13.8l.1 0zm-55.6 33.9c7.1 .6 14.1 .6 21-1.1-2.5 2.4-5.2 4.8-8.3 7.2-11.1-1.7-21.2-6-12.7-6.1zm-92.6 11.6c3.6 7.1 6.4 11.5 9 15.7l.1 .2c2.3 3.7 4.4 7.1 6.8 11.7-5.1-4.2-8.7-9.5-12.5-15l-.3-.5c-1.4-2.1-2.8-4.2-4.4-6.2l1.2-5.9 .1 0zm7.5-9.6c1.6 3.3 3.2 6.4 5.7 9.1l2.6 7.7-1.3-2.1c-3.2-5.3-6.3-10.6-8-16.7l1 2zm238.9-41.6c-2.3 17.4-7.7 34.6-16 50.3 7.6-14.9 12.5-30.9 14.8-47.2l1.2-3.1zM35.8 110.6c.4 .8 1.4 .5 2.3 .3 1.9-.5 3.6-.9-.1 7.6-.5 .3-1 .7-1.5 1-1.4 .9-2.8 1.9-3.9 3 1.9-3.8 3.5-7.4 3.2-11.9zM25.5 152.3c-.7 3.7-1.5 7.9-3.4 13.9 .2-1.9 0-3.5-.2-4.9l0-.1c-.4-3.4-.7-6.3 4.3-12.8-.3 1.2-.5 2.5-.7 3.8l0 .1z"],mastodon:[448,512,[],"f4f6","M433 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.6-28.4-290.5 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.6-.9-9.3-.9-13.9 85.6 20.9 158.7 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zM357.9 304.3l-46.6 0 0-114.2c0-49.7-64-51.6-64 6.9l0 62.5-46.3 0 0-62.5c0-58.5-64-56.6-64-6.9l0 114.2-46.7 0c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175l0 0z"],sketch:[512,512,[],"f7c6","M27.8 162.2l-18.5 24.9 90.5 0 6.9-130.7-78.9 105.8zM396.6 45.7L268 32 403.7 179.2 396.6 45.7zM112.5 218.3l-11.2-22-91.1 0 224.9 261.7-122.6-239.7zm2-31.2l284 0C340.6 124.3 293.3 72.9 256.6 33L114.5 187.1zm297.3 9.1l-133.9 261.8 224.8-261.7-90.9 0 0-.1zM415.7 69l-9.4-12.6 .9 17.3 6.1 113.4 90.3 0-87.9-118.1zM113.8 93.5L109.2 179.1 245 32 116.4 45.7 113.8 93.5zM401.5 196.2l-290 0c18.2 35.6 66.6 130.2 145.1 283.8L401.5 196.2z"],"web-awesome":[640,512,[],"e682","M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192 552.4 171.1c-5.3-7.7-8.4-17.1-8.4-27.1 0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144 0 117.5 21.5 96 48 96s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1 0-28.7 23.3-52 52-52s52 23.3 52 52l.1 0z"],sass:[640,512,[],"f41e","M301.8 378.9l0 0zm249.1-87c-20.1 0-40 4.6-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.3 5.9c-2.3 6.2-4.1 12.6-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.9 77.3-42.1 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4 .8-.7 1.3-.9 1.7 .3-.5 .5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7l0 .1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4 .3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.3-35.4 189.8-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8 61.8-23.8 109.9-90.1 95.8-145.6-14.4-56.4-107.9-74.9-196.3-43.5-52.7 18.7-109.7 48.1-150.7 86.4-48.7 45.6-56.5 85.3-53.3 101.9 11.4 58.9 92.6 97.3 125.1 125.7-1.6 .9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3l0 .1s.2-.4 .7-1.2c1-1.5 1.5-2.4 1.5-2.4l0-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5 1.5 8.7 3.6 17.3 6.2 25.8 2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2 0 .1 0 .1 .1 .2-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 7.2-2.6 14-6.1 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6 1.5 8.7 3.6 17.3 6.2 25.8 2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 7.7-2.6 15-6.3 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1l0 0zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3-11.9-6.9-7.2-36.5 15.5-57.9 13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9 .8-.5 1.2-.7 1.2-.7 .9-.6 1.9-1.1 2.9-1.7 8.3 30.4 .3 57.2-19.1 78.3l0 0zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5 .1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8l0 0zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.5 1.8 7.1 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4l0 0z"],"square-whatsapp":[448,512,["whatsapp-square"],"f40c","M92.1 254.6c0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4l.1 0c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7-72.7 0-131.8 59.1-131.9 131.8zM274.8 330c-12.6 1.9-22.4 .9-47.5-9.9-36.8-15.9-61.8-51.5-66.9-58.7-.4-.6-.7-.9-.8-1.1-2-2.6-16.2-21.5-16.2-41 0-18.4 9-27.9 13.2-32.3 .3-.3 .5-.5 .7-.8 3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6 .1l.8 0c2.3 0 5.2 0 8.1 6.8 1.2 2.9 3 7.3 4.9 11.8 3.3 8 6.7 16.3 7.3 17.6 1 2 1.7 4.3 .3 6.9-3.4 6.8-6.9 10.4-9.3 13-3.1 3.2-4.5 4.7-2.3 8.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2s23.1 10.9 27.1 12.9c.8 .4 1.5 .7 2.1 1 2.8 1.4 4.7 2.3 5.5 3.6 .9 1.9 .9 9.9-2.4 19.1-3.3 9.3-19.1 17.7-26.7 18.8zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM148.1 393.9L64 416 86.5 333.8c-13.9-24-21.2-51.3-21.2-79.3 .1-87.4 71.2-158.5 158.6-158.5 42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5-26.6 0-52.7-6.7-75.8-19.3z"],skype:[448,512,[],"f17e","M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7-19-14.7-42.6-23.4-68.3-23.4-61.8 0-112 50.2-112 112 0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zM230.1 391.3c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z"],angular:[448,512,[],"f420","M185.7 268.1l76.2 0-38.1-91.6-38.1 91.6zM223.8 32L16 106.4 47.8 382.1 223.8 480 399.8 382.1 431.6 106.4 223.8 32zM354 373.8l-48.6 0-26.2-65.4-110.6 0-26.2 65.4-48.7 0 130.1-292.3 130.2 292.3z"],opensuse:[640,512,[],"e62b","M471.1 102.7s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7-5.5 13.3-12.6 43.3-5.5 71.4 3.3 12.8 8.9 24.9 16.5 35.7 17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2 .3 27.8 24.3 42.6 41.5 42.6 5.4 0 10.7-.9 15.8-2.7 6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9 .5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14l0-.1c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3l45.9 0c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3l48.6 0c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5 .4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3 .5-76.2-25.4-81.6-28.2-.3-.4 .1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7 .8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3 .1-.1-.9-.3-.9 .7zm60.4 72.8a37.6 37.6 0 1 1 75.2 2.6 37.6 37.6 0 1 1 -75.2-2.6zm38.6-25.3c-3.6-.3-7.1 .1-10.5 1.2s-6.5 2.9-9.2 5.3-4.8 5.3-6.3 8.5-2.4 6.7-2.5 10.3 .5 7.1 1.8 10.4 3.3 6.3 5.8 8.9 5.5 4.5 8.8 5.9 6.9 2 10.4 1.9c3.6 .3 7.1-.1 10.5-1.2s6.5-2.9 9.2-5.3 4.8-5.3 6.3-8.5 2.4-6.7 2.5-10.3-.5-7.1-1.8-10.4-3.3-6.3-5.8-8.9-5.5-4.5-8.8-5.9-6.9-2-10.4-1.9zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.6 0 15.6z"],dropbox:[576,512,[],"f16b","M288.4 116.3l-132 84.3 132 84.3-132 84.3-132.4-85.1 132.3-84.3-132.3-83.5 132.3-84.3 132.1 84.3zM155.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zM288.4 284.1l132-84.3-132-83.6 131.3-84.2 132.3 84.3-132.3 84.3 132.3 84.2-132.3 84.3-131.3-85z"],deezer:[512,512,[],"e077","M14.8 101.1C6.6 101.1 0 127.6 0 160.3s6.6 59.2 14.8 59.2 14.8-26.5 14.8-59.2-6.6-59.2-14.8-59.2zM448.7 40.9c-7.7 0-14.5 17.1-19.4 44.1-7.7-46.7-20.2-77-34.2-77-16.8 0-31.1 42.9-38 105.4-6.6-45.4-16.8-74.2-28.3-74.2-16.1 0-29.6 56.9-34.7 136.2-9.4-40.8-23.2-66.3-38.3-66.3s-28.8 25.5-38.3 66.3c-5.1-79.3-18.6-136.2-34.7-136.2-11.5 0-21.7 28.8-28.3 74.2-6.6-62.5-21.2-105.4-37.8-105.4-14 0-26.5 30.4-34.2 77-4.8-27-11.7-44.1-19.4-44.1-14.3 0-26 59.2-26 132.1S49 305.2 63.3 305.2c5.9 0 11.5-9.9 15.8-26.8 6.9 61.7 21.2 104.1 38 104.1 13 0 24.5-25.5 32.1-65.6 5.4 76.3 18.6 130.4 34.2 130.4 9.7 0 18.6-21.4 25.3-56.4 7.9 72.2 26.3 122.7 47.7 122.7s39.5-50.5 47.7-122.7c6.6 35 15.6 56.4 25.3 56.4 15.6 0 28.8-54.1 34.2-130.4 7.7 40.1 19.4 65.6 32.1 65.6 16.6 0 30.9-42.3 38-104.1 4.3 16.8 9.7 26.8 15.8 26.8 14.3 0 26-59.2 26-132.1S463 40.9 448.7 40.9zm48.5 60.2c-8.2 0-14.8 26.5-14.8 59.2s6.6 59.2 14.8 59.2 14.8-26.5 14.8-59.2-6.6-59.2-14.8-59.2z"],"creative-commons-sampling":[512,512,[],"f4f0","M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6s10.6 4.7 10.6 10.6c0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6l58 0 0 21.3-50.9 0-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9 .6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9 .5 6.7-5.8-87.7L255 383.9c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12L228 296.6c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6-4.9 56.7c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L157.7 272c-2 4-3.5 8.4-11.1 8.4l-51.4 0 0-21.3 44.8 0 13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6 .5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6 .6 0 10.6 .7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z"],"jedi-order":[448,512,[],"f50e","M398.9 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9 0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7S59.1 388.6 144.9 230.2c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7l4.1 0c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z"],"r-project":[576,512,[],"f4f7","M578.5 226.6C578.5 119.1 448.4 32 288 32S-2.5 119.1-2.5 226.6c0 95.8 103.3 175.4 239.4 191.5l0 61.9 99.1 0 0-61.5c24.3-2.7 47.6-7.4 69.4-13.9l40.1 75.4 112 0-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zM111.7 241.1c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9l-199 0 0 208.3c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3l0-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5l26.6 0c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9l0-22.1z"],instalod:[512,512,[],"e081","M153.6 480l233.7 0 115.4-204.2-298.3 57.4-50.8 146.8zM505 240.1L387.4 32 155.9 32 360.5 267.9 505 240.1zM124.6 48.8L7.5 256 123.5 461.2 225.9 165.6 124.6 48.8z"],"canadian-maple-leaf":[512,512,[],"f785","M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5-5.1-7.5-42.7-79.8-42.7-79.8s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3s-12.5 27.3-15 32.3-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167S43 226.7 45.5 234.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512l30 0s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z"],ethereum:[320,512,[],"f42e","M311.9 260.8L160 353.6 8 260.8 160 0 311.9 260.8zM160 383.4L8 290.6 160 512 312 290.6 160 383.4z"],houzz:[448,512,[],"f27c","M276 330.7l-104.6 0 0 149.3-154.3 0 0-448 109.5 0 0 104.5 305.1 85.6 0 257.9-155.7 0 0-149.3z"],viber:[512,512,[],"f409","M444.3 49.9c-12.7-11.7-64.1-49-178.7-49.5 0 0-135.1-8.1-200.9 52.3-36.6 36.6-49.5 90.3-50.9 156.8s-3.1 191.1 117 224.9l.1 0-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM458.2 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9 .4-85.7 .4-85.7l0 0C43.4 372.7 49.4 266.6 50.5 211.1s11.6-101 42.6-131.6c55.7-50.5 170.4-43 170.4-43 96.9 .4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9 .6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4 .7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5 .9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9 .1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7 .5 133 51.4 133.7 139.2zM375.2 329l0 .2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8l.2 0c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1 .8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z"],kickstarter:[448,512,["square-kickstarter"],"f3bb","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320.8 233l-23.3 23.1 23.3 22.9c24.1 23.9 24.1 63 0 86.9s-63.4 23.9-87.6 0l-8.5-8.4c-11.3 16-29.7 26.5-50.9 26.5-34.1 0-61.9-27.5-61.9-61.4l0-133.2c0-33.8 27.7-61.4 61.9-61.4 21.1 0 39.6 10.5 50.9 26.5l8.5-8.4c24.1-23.9 63.4-23.9 87.6 0s24.1 63 0 86.9z"],spotify:[512,512,[],"f1bc","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM356.7 372.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z"],leanpub:[576,512,[],"f212","M386.6 111.5l15.1 249-11-.3c-36.2-.8-71.6 8.8-102.7 28-31-19.2-66.4-28-102.7-28-45.6 0-82.1 10.7-123.5 27.7L93.2 129.6c28.5-11.8 61.5-18.1 92.2-18.1 41.2 0 73.8 13.2 102.7 42.5 27.7-28.3 59-41.7 98.5-42.5zM569.2 448c-25.5 0-47.5-5.2-70.5-15.6-34.3-15.6-70-25-107.9-25-39 0-74.9 12.9-102.7 40.6-27.7-27.7-63.7-40.6-102.7-40.6-37.9 0-73.6 9.3-107.9 25-22.2 9.9-44.7 15.6-69.2 15.6L7 448 49.6 98.9c39.3-22.2 87-34.9 132.3-34.9 37.1 0 75.2 7.7 106.2 29.1 31-21.4 69.2-29.1 106.2-29.1 45.3 0 93 12.6 132.3 34.9L569.2 448zm-43.4-44.7L491.8 123c-30.7-14-67.2-21.4-101-21.4-38.4 0-74.4 12.1-102.7 38.7-28.3-26.6-64.2-38.7-102.7-38.7-33.8 0-70.3 7.4-101 21.4l-34 280.2c47.2-19.5 82.9-33.5 135-33.5 37.6 0 70.8 9.6 102.7 29.6 31.8-20 65.1-29.6 102.7-29.6 52.2 0 87.8 14 135 33.5z"],java:[384,512,[],"f4e4","M277.8 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8 103.7-81.8 50.5-135 50.5-135 21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zM307 104.6c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9C216 188.1 195.4 169.3 307 104.6zm-6.1 270.5c-.5 1-1.2 1.8-2 2.6 128.3-33.7 81.1-118.9 19.8-97.3-3.3 1.2-6.2 3.4-8.2 6.3 3.6-1.3 7.3-2.3 11-3 31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6 .7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8zM124.5 396c-78.7 22 47.9 67.4 148.1 24.5-9.8-3.8-19.2-8.4-28.2-13.8-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.7 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9-7.8-2.8-15-7.1-21.1-12.8z"],"nfc-symbol":[512,512,[],"e531","M360.9 32.4c7.7-1.3 15.7 .5 21.2 5 84.1 58.7 129.9 136.3 129.9 217.7 0 83.1-45.8 160.8-129.9 219.5-4.8 4-11.7 5.9-18.6 5.3-7-.6-13.5-3.6-18.4-8.5L161.7 288.7c-5.6-5.5-8.7-13-9.6-20.9 0-7.8 4-15.3 9.5-20.9 5.6-5.5 13.1-8.7 20.9-8.7 7.9 0 15.4 3.1 20.9 8.6L368.5 411.2c54.6-44.7 84.3-99.2 84.3-156.1 0-61.6-36.9-122.2-103.9-169.3-6.4-4.5-10.8-11.4-12.1-19.1-1.4-7.7 .4-15.7 5-22.1 4.5-6.4 11.4-10.8 19.1-12.1zm-206 447.2c-7.7 1.3-15.6-.5-22.1-5-83.1-58.7-129-136.4-129-219.5 0-81.4 45.8-159 129-217.7 5.7-4 12.6-5.9 19.6-5.3 6.9 .6 13.4 3.6 18.3 8.5L354.1 223.3c5.6 5.5 8.7 13 8.7 20.9 .1 6.9-3 15.3-8.6 20.9-5.5 5.5-13 8.7-20.9 8.7-7.8 0-16.2-3.1-20.9-8.6L147.3 100.7c-54.6 45.2-84.3 99.2-84.3 154.4 0 63.4 36.9 124 103.1 171.1 7.3 4.6 11.6 11.4 13 19.2 1.3 7.7-.5 15.7-5 22.1s-11.4 10.7-19.2 12.1z"],wodu:[640,512,[],"e088","M178.4 339.7l-37.3 0-28.9-116.2-.5 0-28.5 116.2-38 0-45.2-170.8 37.5 0 27 116.2 .5 0 29.7-116.2 35.2 0 29.2 117.7 .5 0 28-117.7 36.8 0-45.9 170.8zm93-127c39 0 64.1 25.8 64.1 65.3 0 39.2-25.1 65-64.1 65-38.7 0-63.9-25.8-63.9-65 0-39.5 25.1-65.3 63.9-65.3zm0 104.8c23.2 0 30.1-19.9 30.1-39.5 0-19.9-6.9-39.7-30.1-39.7-27.7 0-29.9 19.9-29.9 39.7 0 19.6 6.9 39.5 29.9 39.5zm163.7 6.5l-.5 0c-7.9 13.4-21.8 19.1-37.5 19.1-37.3 0-55.5-32-55.5-66.2 0-33.2 18.4-64.1 54.8-64.1 14.6 0 28.9 6.2 36.8 18.4l.2 0 0-62.2 34 0 0 170.8-32.3 0 0-15.8zm-29.7-85.6c-22.2 0-29.9 19.1-29.9 39.5 0 19.4 8.8 39.7 29.9 39.7 22.5 0 29.2-19.6 29.2-39.9 0-20.1-7.2-39.2-29.2-39.2zM593 339.7l-32.3 0 0-17.2-.7 0c-8.6 13.9-23.4 20.6-37.8 20.6-36.1 0-45.2-20.3-45.2-50.9l0-76.1 34 0 0 69.8c0 20.3 6 30.4 21.8 30.4 18.4 0 26.3-10.3 26.3-35.4l0-64.8 34 0 0 123.6zm9.5-36.8l37.5 0 0 36.8-37.5 0 0-36.8z"],"square-steam":[448,512,["steam-square"],"f1b7","M165.6 309.1c18.6 7.7 27.3 28.9 19.6 47.4s-29 27.2-47.6 19.4l-28.5-11.8c5 10.6 13.8 19.4 25.4 24.2 25.2 10.5 54.1-1.4 64.6-26.5 5.1-12.1 5.1-25.5 .1-37.7-5.1-12.1-14.5-21.6-26.7-26.7-12.1-5-25-4.8-36.4-.5l29.5 12.2zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96l0 144.7 116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2 0-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM241.9 196.2a58.4 58.4 0 1 0 116.8 0 58.4 58.4 0 1 0 -116.8 0zm102.4-.1a43.9 43.9 0 1 1 -87.8 0 43.9 43.9 0 1 1 87.8 0z"],"creative-commons-nc-eu":[512,512,[],"f4e9","M255.7 8C111.6 8 8 124.8 8 256 8 392.3 119.7 504 255.7 504 385.9 504 504 403.1 504 256 504 117 396.4 8 255.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1-4.7 0 0 29.5 23.3 0c0 6.2-.4 3.2-.4 19.5l-22.8 0 0 29.5 27 0c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2l90.3 0 128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zM239.6 268.1l-.5-.4 .9 .4-.4 0zm77.2-19.5l3.7 0 0-29.5-70.3 0-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1L85.5 146.4c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9L316.8 248.6z"],npm:[576,512,[],"f3d4","M288 288l-32 0 0-64 32 0 0 64zM576 160l0 192-288 0 0 32-128 0 0-32-160 0 0-192 576 0zM160 192l-128 0 0 128 64 0 0-96 32 0 0 96 32 0 0-128zm160 0l-128 0 0 160 64 0 0-32 64 0 0-128zm224 0l-192 0 0 128 64 0 0-96 32 0 0 96 32 0 0-96 32 0 0 96 32 0 0-128z"],cloudscale:[448,512,[],"f383","M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6-71.6 0-129.4 60.8-129.4 132.3 0 6.6 .4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zM213.7 246.5a14 14 0 1 1 20.6 19 14 14 0 1 1 -20.6-19zM224 32a224 224 0 1 0 0 448 224 224 0 1 0 0-448zm0 64a160 160 0 1 1 0 320 160 160 0 1 1 0-320z"],themeco:[448,512,[],"f5c6","M202.9 8.4c9.9-5.7 26-5.8 36-.2L430 115.9c10 5.6 18 19.4 18 30.9L448 364c0 11.4-8.1 25.3-18 31L238.8 503.7c-9.9 5.7-26 5.6-35.8-.2L17.9 395.1C8 389.3 0 375.4 0 364L0 146.7c0-11.4 8-25.4 17.9-31.1L202.9 8.4zM125.5 208.3c-15.9 0-31.9 .1-47.8 .1l0 101.4 19.1 0 0-29.8 28.7 0c49.7 0 49.6-71.7 0-71.7zM265.6 308.6l-30.7-34.6c37-7.5 34.8-65.2-10.9-65.5-16.1 0-32.2-.1-48.3-.1l0 101.6 19.1 0 0-33.9 18.4 0 29.6 33.9 22.8 0 0-1.3zm-41.6-82.3c23.3 0 23.3 32.5 0 32.5l-29.1 0 0-32.5 29.1 0zm-95.6-1.6c21.2 0 21.1 38.9 0 38.9l-32.3 0 0-38.8 32.3 0zm192.6-18.2c-68.5 0-71 105.8 0 105.8 69.5 0 69.4-105.8 0-105.8zm0 17.4c44.1 0 44.8 70.9 0 70.9s-44.4-70.9 0-70.9z"],"google-play":[448,512,[],"f3ab","M293.6 234.3L72.9 13 353.7 174.2 293.6 234.3zM15.3 0C2.3 6.8-6.4 19.2-6.4 35.3l0 441.3c0 16.1 8.7 28.5 21.7 35.3L271.9 255.9 15.3 0zM440.5 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM72.9 499L353.7 337.8 293.6 277.7 72.9 499z"],korvue:[448,512,[],"f42f","M387.6 34l-327 0C27.9 34 1.1 60.8 1.1 93.5l0 327.1c0 32.6 26.8 59.4 59.5 59.4l327.1 0c33 0 59.5-26.8 59.5-59.5l0-327C447.1 60.8 420.3 34 387.6 34zM88.2 120.8l96 0 0 116 61.8-116 110.9 0-81.2 132-187.5 0 0-132zM250 392.9l-65.7-113.6 0 113.6-96 0 0-130.8 191.5 0 88.6 130.8-118.4 0z"],w3c:[640,512,[],"e7de","M105.2 305.3l30.9-104.7c7.9-26.7 8.6-40.6 .2-68.8l-10.1-33.9 44.1 0 61 207.4 45.7-155.5c13.3-45.3 21.1-51.9 59.4-51.9l132.8 0c-24.2 42.9-49.3 85.2-73.9 127.9 2.6 .8 5.2 1.8 7.7 2.8 17.3 7.1 32.2 19.4 42 35.5 11.2 18.5 16.8 40.2 16.8 65.2 0 30.8-8.2 56.8-24.6 77.8-14.5 18.6-35 29.5-58.2 31.2 0 .3-5.2 .4-5.8 .4-39.7-.1-70.8-32.1-83.1-68.7l42.9 0c3.5 5.3 6.8 10.7 11.2 15.5 8.1 7.3 18.5 10.9 29.3 11.1 13.1 0 23.3-9.1 29.9-19.8 8.1-13.2 12.2-29 12.2-47.5 0-13.1-1.8-24.3-5.3-33.6-.9-2.3-1.9-4.5-3-6.6-1.4-2.6-2.9-5.1-4.7-7.4-10.1-13.2-29.3-19.7-47.5-19.8l-28.2 0 70.3-122-35.6 0c-43.1 0-35.9-5.4-50.4 43.3l-75.7 255.3-4.2 0-63.1-211.1-63.1 211.1-4.2 0-101-340.7 44.2 0 61 207.4zM467 335.7c.3 .6 11.3 20.3 18.3 30.3 7.1 10.1 19.8 20.9 24.8 24.6s19.1 12.5 34.3 13.9c15.2 1.5 23.3 .2 38.7-6.6 15.4-6.8 27.9-20.4 34.9-28.1 6.9-7.6 17.9-27.3 18.2-27.7l3.3 16.8c1.7 9-1 23.7-4.1 30-4.3 8.6-7.6 13.5-14 20.3-6.1 6.5-16.7 13.5-21.3 16.4-4.6 2.9-23.1 15.1-50.1 10.3s-44.7-25.9-53.9-38.2c-9.8-13.2-16.7-28.3-19-33.2-3.8-8.4-9.9-28.2-10.1-28.8zm169.7-218c3.3 20.3-.1 28.7-9.1 46l-12.7 24.2c-.3-.6-10-20.7-25.9-31.9-13.6-9.6-22.5-11.7-36.3-8.8-17.8 3.7-38 25-46.8 51.2-10.5 31.4-10.7 46.6-11 60.6-.6 22.4 2.9 35.6 2.9 35.6s-15.4-28.5-15.2-70.1c.1-29.7 4.8-56.7 18.5-83.3 12.1-23.4 30.1-37.4 46.1-39.1 16.5-1.7 29.6 6.3 39.7 14.9 10.6 9 21.3 28.8 21.3 28.8l24.9-49.8 3.6 21.8z"],grav:[512,512,[],"f2d6","M302.6 210.6c4.5 4.5 4.5 12.3 0 16.8l-10 10c-4.5 4.9-12.3 4.9-17.1 0l-10.8-10.8c-4.5-4.9-4.5-12.3 0-17.1l10-10c4.5-4.5 12.3-4.5 17.1 0l10.8 11.1zm-31.2-20.3a7.7 7.7 0 1 0 -10.6-11 7.7 7.7 0 1 0 10.6 11zm-26.8 5.5a7.5 7.5 0 1 0 10.7 10.5 7.5 7.5 0 1 0 -10.7-10.5zM319.4 182c-20.5-14.9-34.9-44.6-12.3-70.3 22.3-25.7 42-17.8 61.7 .8 12.3 11.7 30.2 25.7 17.8 49.8-12.9 24.3-46.6 34.3-67.2 19.7zm49.2-45.9c-9.2-10.3-24.1 7.1-16 16.6 7.6 9.3 33.1 2.5 16-16.6zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm443.7 44c2.6-16.6-20.9-17.1-26-26.5-14-24.9-28.6-38-56.3-31.4 12-8.3 24.3-6.3 24.3-6.3 .3-6.6 0-13.4-9.7-25.7 4-12.9 .3-23.1 .3-23.1 16-8.9 27.7-25.2 30-44.6 3.7-32-19.4-61.1-51.4-64.8-22.8-2.6-45.1 7.9-56.1 26.5-23.9 41.4 1.4 73.2 23.1 84-14.9-1.4-35.4-12.3-41.4-35.4-6.8-26.5 2.9-51.4 9.2-63.4 0 0-4.5-6-8.3-9.2 0 0-14.2 0-25.4 5.5 12.3-15.7 26-14.9 26-14.9 0-6.6-.6-15.4-3.7-22.3-5.6-11.4-24.6-13.3-32.7 2.9 .1-.2 .3-.4 .4-.5-5.2 12.3-1.1 57.7 17.4 90-2.6 1.4-9.4 6.3-13.4 10.3-22.3 10-58 62.2-58 62.2-29.1 11.1-79.7 52.5-72.9 82.3 .3 3.1 1.4 5.7 3.1 7.7-2.9 2.3-5.7 5.2-8.6 8.6-12.3 14.2-5.5 36.3 18.3 25.2 16.3-7.4 30.6-20.9 37.5-31.4 0 0-5.7-5.2-16.8-4.5 28.6-6.8 35.4-9.7 47.7-9.4 8.3 4 8.3-35.4 8.3-35.4 0-15.2-2.3-32-11.5-42.8 12.9 12.6 30 33.8 28.9 62.6-.8 18.9-15.7 23.7-15.7 23.7-9.4 17.1-44.6 68-31.4 109.4 0 0-10-15.4-10.5-22.8-18 20-48 54-25.4 66.6 27.5 15.2 112.3-91.5 130.3-146.9 35.7-21.5 57.2-48.8 66-67.1 22.7 44.9 98.4 97.5 104.4 60.9z"],aws:[640,512,[],"f375","M180.4 203c-.7 22.6 10.6 32.7 10.9 39-.1 1.3-.6 2.5-1.3 3.6s-1.7 2-2.8 2.6l-12.8 9c-1.7 1.2-3.6 1.8-5.6 1.9-.4 0-8.2 1.8-20.5-25.6-7.5 9.4-17 16.9-27.9 22s-22.7 7.7-34.7 7.5c-16.3 .9-60.4-9.2-58.1-56.2-1.6-38.3 34.1-62.1 70.9-60 7.1 0 21.6 .4 47 6.3l0-15.6c2.7-26.5-14.7-47-44.8-43.9-2.4 0-19.4-.5-45.8 10.1-7.4 3.4-8.3 2.8-10.8 2.8-7.4 0-4.4-21.5-2.9-24.2 5.2-6.4 35.9-18.4 65.9-18.2 20.1-1.8 40.1 4.4 55.7 17.3 6.3 7.1 11.2 15.4 14.2 24.4s4.2 18.5 3.5 28l0 69.3zM94 235.4c32.4-.5 46.2-20 49.3-30.5 2.5-10.1 2.1-16.4 2.1-27.4-9.7-2.3-23.6-4.9-39.6-4.9-15.2-1.1-42.8 5.6-41.7 32.3-1.2 16.8 11.1 31.4 30 30.5zm170.9 23.1c-7.9 .7-11.5-4.9-12.7-10.4L202.4 83.4c-1-2.8-1.6-5.6-1.9-8.6-.2-1.2 .1-2.4 .8-3.4s1.8-1.6 3-1.8c.2 0-2.1 0 22.2 0 8.8-.9 11.6 6 12.6 10.4L274.9 220.8 308.1 80c.5-3.2 2.9-11.1 12.8-10.2l17.2 0c2.2-.2 11.1-.5 12.7 10.4L384.1 222.7 421 80.1c.5-2.2 2.7-11.4 12.7-10.4l19.7 0c.9-.1 6.2-.8 5.3 8.6-.4 1.8 3.4-10.7-52.8 169.9-1.1 5.5-4.8 11.1-12.7 10.4l-18.7 0c-10.9 1.2-12.5-9.7-12.7-10.7l-33.2-137.1-32.8 137c-.2 1.1-1.7 11.9-12.7 10.7l-18.3 0 0 0zm273.5 5.6c-5.9 0-33.9-.3-57.4-12.3-2.3-1-4.3-2.6-5.7-4.8s-2.1-4.6-2.1-7.1l0-10.7c0-8.5 6.2-6.9 8.8-5.9 10 4.1 16.5 7.1 28.8 9.6 36.7 7.5 52.8-2.3 56.7-4.5 13.2-7.8 14.2-25.7 5.3-34.9-10.5-8.8-15.5-9.1-53.1-21-4.6-1.3-43.7-13.6-43.8-52.4-.6-28.2 25-56.2 69.5-56 12.7 0 46.4 4.1 55.6 15.6 1.4 2.1 2 4.6 1.9 7l0 10.1c0 4.4-1.6 6.7-4.9 6.7-7.7-.9-21.4-11.2-49.2-10.8-6.9-.4-39.9 .9-38.4 25-.4 19 26.6 26.1 29.7 26.9 36.5 11 48.6 12.8 63.1 29.6 17.1 22.2 7.9 48.3 4.3 55.4-19.1 37.5-68.4 34.4-69.3 34.4zm40.2 104.9c-70 51.7-171.7 79.2-258.5 79.2-117.1 .8-230.3-42.3-317.3-120.7-6.5-5.9-.8-14 7.2-9.5 96.5 55.2 205.7 84.2 316.9 84.1 83-.4 165.1-17.3 241.6-49.5 11.8-5 21.8 7.8 10.1 16.4zm29.2-33.3c-9-11.5-59.3-5.4-81.8-2.7-6.8 .8-7.9-5.1-1.8-9.5 40.1-28.2 105.9-20.1 113.4-10.6 7.5 9.5-2.1 75.4-39.6 106.9-5.8 4.9-11.3 2.3-8.7-4.1 8.4-21.3 27.4-68.5 18.4-80z"],"glide-g":[448,512,[],"f2a6","M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4 0-71.5-38.2-100.6-108.4-100.6-115.1 0-173.4 113.7-173.4 198.4 0 87.9 51.3 136.6 138.6 136.6 12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9 .1-52.4 51.2-52.4 79.3 0 51.9 32.8 87.9 85.5 87.9 77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zM231.8 126.8c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z"],jsfiddle:[576,512,[],"f1cc","M511.1 237.5c-4.7-2.6-5.7-5.7-6.4-10.8-2.4-16.5-3.5-33.6-9.1-49.1-35.9-100-154-143.4-246.8-91.6-27.4 15.2-49 36.4-65.5 63.9-3.2-1.5-5.5-2.7-7.8-3.7-30.1-12.4-59-10.1-85.3 9.2-25.5 18.7-36.4 44.5-32.7 76.4 .4 3-2 7.6-4.5 9.5-39.7 30-56 78.1-41.9 124.6 13.8 45.6 57.5 79.8 105.6 81.4 30.3 1 60.6 .5 91 .5 84 0 168.1 .5 252.1-.5 52.7-.6 96.1-36.9 108.2-87.3 11.5-48.1-11.1-97.3-56.8-122.6zm21.1 156.9c-18.2 22.4-42.3 35.3-71.3 35.7-56.9 .8-113.8 .2-170.7 .2 0 .7-163 .2-163.7 .2-43.9-.3-76.7-19.8-95.2-60-18.9-41.2-4-90.8 34.2-116.1 9.2-6.1 12.5-11.6 10.1-23.1-5.5-26.4 4.5-48 26.4-63 23-15.7 47.4-16.1 72-3.1 10.3 5.4 14.6 11.6 22.2-2.5 14.2-26.4 34.6-46.7 60.7-61.3 97.5-54.4 228.4 7.6 230.2 132.7 .1 8.2 2.4 12.4 9.8 15.9 57.6 26.8 74.5 96.1 35.1 144.5zm-87.8-80.5c-5.8 31.2-34.6 55.1-66.7 55.1-17 0-32.1-6.5-44.1-17.7-27.7-25.7-71.1-75-95.9-93.4-20.1-14.9-42-12.3-60.3 3.8-50 44.1 15.9 121.8 67.1 77.2 4.5-4 7.8-9.5 12.7-12.8 8.2-5.5 20.8-.9 13.2 10.6-17.4 26.3-49.3 38.2-78.9 29.3-28.9-8.7-48.8-36-48.6-70.2 1.2-22.5 12.4-43.1 35.4-56 22.6-12.6 46.4-13.1 67 2.5 50.8 38.5 75.6 81.7 107.3 101.2 24.6 15.1 54.3 7.4 68.8-17.5 28.8-49.2-34.6-105-78.9-63.5-4 3.7-6.9 8.9-11.4 11.7-11 6.8-17.3-4.1-12.8-10.4 20.7-28.6 50.5-40.4 83.3-28.2 31.4 11.7 49.1 44.4 42.8 78.2z"],keybase:[448,512,[],"f4f5","M286.2 419a18 18 0 1 0 0 36 18 18 0 1 0 0-36zM398.1 271.4c-9.5-14.6-39.4-52.4-87.3-73.7-6.1-2.7-12.2-5.1-18.4-7.3 4.1-9.9 6-20.6 5.8-31.4s-2.7-21.3-7.2-31.1-10.9-18.5-18.9-25.7-17.4-12.6-27.6-16c-12.4-4.1-23.3-6-32.4-5.8-.6-2-1.9-11 9.4-35l-22.9-13.5-5.5 7.6c-8.7 12.1-16.9 23.6-24.3 34.9-2.7-.6-5.5-1.1-8.3-1.2-41.5-2.4-39-2.3-41.1-2.3-50.6 0-50.8 52.1-50.8 45.9l-2.4 36.7c-1.6 27 19.8 50.2 47.6 51.8l8.9 .5C106 215.5 90.4 227.5 76.6 241.4 14 304.7 14 374 14 429.8l0 33.6 23.3-29.8c3.1 13.1 8 25.8 14.6 37.6 5.8 10.1 14.9 9.4 19.6 7.3 4.2-1.9 10-6.9 3.8-20.1-8-16.8-13.3-34.7-15.8-53.1l46.8-59.8-24.7 74.1c58.2-42.4 157.4-61.8 236.2-38.6 34.2 10.1 67.4 .7 84.7-23.8 .7-1 1.2-2.2 1.8-3.2 1.8 9.4 2.7 18.9 2.8 28.4 0 23.3-3.7 52.9-14.9 81.6-2.5 6.5 1.8 14.5 8.6 15.7 7.4 1.6 15.3-3.1 18.4-11.1 9.6-25.5 14.6-54.6 14.6-86.2 0-38.6-13-77.5-35.9-110.9zM142.4 128.6l-15.7-.9-1.4 21.8 13.1 .8c-.6 6.5-.5 13.1 .3 19.6l-22.4-1.3c-1.6-.1-3.2-.5-4.7-1.1s-2.8-1.6-3.9-2.8-1.9-2.6-2.5-4.1-.8-3.1-.7-4.7L107 119c1-12.2 13.9-11.3 13.3-11.3l29.1 1.7c-2.8 6.2-5.1 12.6-7 19.2zM290.8 300.8c-2.1 1.6-4.8 2.4-7.5 2.2s-5.1-1.5-6.9-3.5l-9.7-11.5-34.4 27c-1.6 1.3-3.7 1.9-5.8 1.7s-4-1.2-5.3-2.8l-15.8-18.6c-1.2-1.6-1.7-3.5-1.5-5.4s1.3-3.7 2.8-4.9l34.6-27.2-14.1-16.7-17.1 13.5c-1.6 1.2-3.5 1.8-5.5 1.6s-3.8-1.1-5.1-2.6c0 0-3.7-4.4-3.8-4.5-1.2-1.6-1.7-3.5-1.5-5.5s1.3-3.7 2.8-4.9L214 225.2s-18.5-22-18.6-22.1c-.8-1-1.3-2.1-1.7-3.3s-.4-2.5-.3-3.7 .6-2.4 1.2-3.5 1.5-2 2.5-2.8c2.1-1.7 4.8-2.4 7.4-2.2s5.1 1.5 6.9 3.6l81.1 96.3c.8 1 1.3 2.1 1.7 3.3s.4 2.5 .3 3.7-.6 2.5-1.2 3.5-1.5 2.1-2.5 2.8zM187.4 419a18 18 0 1 0 0 36 18 18 0 1 0 0-36z"],"lumon-drop":[576,512,[],"e7e3","M480 32c53 0 96 43 96 96l0 224c0 53-43 96-96 96L96 448c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l384 0zM302.4 114.7c-9.8-16.4-20.5-16.4-29.6 0l-68.9 114c-10.7 15.6-16.4 32.8-16.4 52.5 0 50.9 44.3 94.3 100.1 94.3 55 0 100.9-43.5 100.9-94.3 0-19.7-6.6-37.8-17.2-52.5l-68.9-114z"],weebly:[512,512,[],"f5cc","M425.1 65.8c-39.9 0-73.3 25.7-83.7 64.3-18.2-58.1-65.5-64.3-85-64.3-19.8 0-66.8 6.3-85.3 64.3-10.4-38.6-43.4-64.3-83.7-64.3-49 0-87.5 33.9-87.5 77.2 0 29 4.2 33.3 77.2 233.5 22.4 60.6 67.8 69.4 92.7 69.4 39.2 0 70-19.5 85.9-54 15.9 34.8 46.7 54.3 85.9 54.3 25 0 70.4-9.1 92.7-69.7 76.6-208.6 77.5-205.6 77.5-227.2 .6-48.3-36-83.5-86.9-83.5zm26.3 114.8L385.9 357.1c-7.9 21.5-21.2 37.2-46.2 37.2-23.4 0-37.4-12.4-44-33.9l-39.3-117.4-1 0-39.3 117.4c-7 21.5-20.9 33.6-44 33.6-25 0-38.3-15.7-46.2-37.2L60.9 181.6c-5.4-14.8-7.9-23.9-7.9-34.5 0-16.3 15.8-29.4 38.3-29.4 18.7 0 32 11.8 36.1 29.1l44 139.8 1 0 44.7-136.8c6-19.7 16.5-32.1 39-32.1s32.9 12.1 39 32.1l44.7 136.8 1 0 44-139.8c4.1-17.2 17.4-29.1 36.1-29.1 22.2 0 38.3 13.3 38.3 35.7-.3 7.9-4.1 16-7.6 27.2z"],docker:[640,512,[],"f395","M349.9 236.3l-66.1 0 0-59.4 66.1 0 0 59.4zm0-204.3l-66.1 0 0 60.7 66.1 0 0-60.7zm78.2 144.8l-66.1 0 0 59.4 66.1 0 0-59.4zM271.8 104.7l-66.1 0 0 60.1 66.1 0 0-60.1zm78.1 0l-66.1 0 0 60.1 66.1 0 0-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7l-434.7 0c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4 .4 67.6 .1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zM115.6 176.8l-66 0 0 59.4 66.1 0 0-59.4-.1 0zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm-78.1-72.1l-66.1 0 0 60.1 66.1 0 0-60.1z"],magento:[448,512,[],"f3c4","M445.9 127.9l0 256.1-63.4 36.5 0-255.8-158.5-91.6-158.6 91.6 .4 255.9-63.3-36.6 0-255.9 221.9-128.1 221.5 127.9zM255.8 420.5l-31.6 18.4-31.8-18.2 0-256-63.3 36.6 .1 255.9 94.9 54.9 95.1-54.9 0-256-63.4-36.6 0 255.9z"],"git-alt":[448,512,[],"f841","M439.6 236.1L244 40.5C238.6 35 231.2 32 223.6 32s-15 3-20.4 8.4l-40.7 40.6 51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3l-46.3-46.3 0 121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56l0-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4L204.1 471.6c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4L439.6 276.9c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4z"],"firefox-browser":[512,512,[],"e007","M130.2 127.5l0 0zm351.4 45.4c-10.6-25.5-32.1-53-48.9-61.7 13.7 26.9 21.7 53.9 24.7 74 0 .1 0 .3 .1 .4-27.6-68.8-74.4-96.5-112.6-156.8-15-23.7-10.9-25.2-13.1-24.7l-.1 .1c-46.7 26-75.3 78.4-82.6 122.7-16.6 .9-32.9 5-47.9 12.1-1.4 .6-2.5 1.7-3.1 3s-.9 2.8-.6 4.3c.2 .8 .6 1.6 1.1 2.3s1.2 1.3 1.9 1.7 1.6 .7 2.4 .8 1.7 0 2.5-.3l.5-.2c15.5-7.3 32.4-11.2 49.5-11.3 62.8-.6 97.2 44 107.6 62.3-13-9.2-36.4-18.2-58.8-14.3 87.7 43.9 64.2 194.5-57.4 189.2-59.5-2.6-97.1-51-100.5-90.8 0 0 11.2-41.9 80.6-41.9 7.5 0 28.9-20.9 29.3-27-.1-2-42.5-18.9-59.1-35.2-8.8-8.7-13.1-12.9-16.8-16.1-2-1.7-4.1-3.3-6.3-4.8-5.6-19.5-5.8-40-.7-59.6-25.1 11.4-44.6 29.4-58.7 45.4l-.1 0c-9.7-12.2-9-52.6-8.4-61.1-.1-.5-7.2 3.7-8.2 4.3-8.6 6.1-16.5 12.9-23.8 20.4-16.3 16.6-44.1 50.2-55.5 101.2-4.5 20.4-6.8 44.4-6.8 52.3 0 134.7 109.2 243.9 243.9 243.9 120.6 0 223-87.2 240.4-202.6 11.6-76.7-14.7-131.1-14.7-132z"],cloudsmith:[512,512,[],"f384","M512 227.6L512 284.5 284.4 512 227.6 512 0 284.4 0 227.6 227.6 0 284.5 0 512 227.6zm-256 162c17.8 .5 35.6-2.6 52.2-9.1s31.8-16.2 44.6-28.7 23-27.3 29.9-43.8 10.5-34.1 10.5-52-3.6-35.5-10.5-52-17.1-31.3-29.9-43.8-28-22.2-44.6-28.7-34.4-9.6-52.2-9.1c-17.8-.5-35.6 2.6-52.2 9.1s-31.8 16.3-44.6 28.7-23 27.3-29.9 43.8-10.5 34.1-10.5 52 3.6 35.5 10.5 52 17.1 31.3 29.9 43.8 28 22.2 44.6 28.7 34.4 9.6 52.2 9.1z"],"wizards-of-the-coast":[640,512,[],"f730","M219.2 345.7c-1.9 1.4-11.1 8.4-.3 23.6 4.6 6.4 14.1 12.8 21.7 6.6 6.5-4.9 7.4-12.9 .3-23-5.5-7.8-14.3-12.9-21.7-7.1zm336.8 75.9c-.3 1.7-.6 1.7 .8 0 2.1-4.2 4.2-10.2 5-19.9 3.1-38.5-40.3-71.5-101.3-78-54.7-6-124.4 9.2-188.8 60.5l-.3 1.6c2.6 5 5 10.7 3.4 21.2l.8 .3c63.9-58.4 131.2-77.2 184.4-73.8 58.4 3.7 100 34 100 68.1 0 10-2.6 15.7-3.9 20.2zM392.3 240.4c.8 7.1 4.2 10.2 9.2 10.5 5.5 .3 9.4-2.6 10.5-6.6 .8-3.4 2.1-29.8 2.1-29.8S402.8 221 399.1 225c-3.7 3.7-7.3 8.4-6.8 15.5zm-50-151.1c-204.5 0-329.2 137.5-341.5 151.9-1 .5-1.3 .8 .8 1.3 60.5 16.5 155.8 81.2 196.1 202.2l1 .3c55.2-69.9 140.9-128.1 237-128.1 80.9 0 130.2 42.2 130.2 80.4 0 18.3-6.6 33.5-22.3 46.3 0 1-.2 .8 .8 .8 14.7-10.7 27.5-28.8 27.5-48.2 0-22.8-12.1-38.2-12.1-38.2 7.1 7.1 10.7 16.2 10.7 16.2 5.8-40.9 27-62.3 27-62.3-2.4-9.7-6.8-17.8-6.8-17.8 7.6 8.1 14.4 27.5 14.4 41.4 0 10.5-3.4 22.8-12.6 31.9l.3 .5c8.1-5 16.5-16.8 16.5-38 0-15.7-4.7-25.9-4.7-25.9 5.8-5.2 11.3-9.2 16-11.8 .8 3.4 2.1 9.7 2.4 14.9 0 1 .8 1.8 1 0 .8-5.8-.3-16.2-.3-16.5 6-3.1 9.7-4.5 9.7-4.5-15.7-110.3-144-196.9-291.2-196.9zM243 378.9c-11.1 9-24.2 4.1-30.6-4.2-7.4-9.6-6.8-24.1 4.2-32.5 14.8-11.4 27.1-.5 31.2 5.5 .3 .4 12.1 16.6-4.7 31.2zm2.1-136.4l9.4-17.8 11.8 71-12.6 6-24.6-28.8 14.1-26.7 3.7 4.4-1.8-8.1zm18.6 117.6l-.3-.3c2-4.1-2.5-6.6-17.5-31.7-1.3-2.4-3.1-2.9-4.4-2.6l-.3-.5c7.9-5.8 15.4-10.2 25.4-15.7l.5 .3c1.3 1.8 2.1 2.9 3.4 4.7l-.3 .5c-1-.3-2.4-.8-5.2 .3-2.1 .8-7.9 3.7-12.3 7.6l0 1.3c1.6 2.4 3.9 6.6 5.8 9.7l.3 0c10-6.3 7.6-4.5 11.5-7.9l.3 0c.5 1.8 .5 1.8 1.8 5.5l-.3 .3c-3.1 .6-4.7 .3-11.5 5.5l0 .3c9.5 17 11 16.8 12.6 16l.3 .3c-2.3 1.6-6.3 4.2-9.7 6.6zM319 327.6c-3.1 1.6-6 2.9-10 5l-.3-.3c1.3-2.6 1.2-2.7-11.8-32.5l-.3-.3c-.2 0-8.9 3.7-10 7.3l-.5 0-1-5.8 .3-.5c7.3-4.6 25.5-11.6 27.8-12.6l.5 .3 3.1 5-.3 .5c-3.5-1.8-7.4 .8-12.3 2.6l0 .3c12.3 32 12.7 30.6 14.7 30.6l0 .2zm44.8-16.5c-4.2 1-5.2 1.3-9.7 2.9l-.3-.3 .5-4.5c-1-3.4-3.1-11.5-3.7-13.6l-.3-.3c-3.4 .8-8.9 2.6-12.8 3.9l-.3 .3c.8 2.6 3.1 9.9 4.2 13.9 .8 2.4 1.8 2.9 2.9 3.1l0 .5c-3.7 1-7.1 2.6-10.2 3.9l-.3-.3c1-1.3 1-2.9 .3-5-1-3.1-8.1-23.8-9.2-27.2-.5-1.8-1.6-3.1-2.6-3.1l0-.5c3.1-1 6-2.1 10.7-3.4l.3 .3-.3 4.7c1.3 3.9 2.4 7.6 3.1 9.7l.3 0c3.9-1.3 9.4-2.9 12.8-3.9l.3-.3-2.6-9.4c-.5-1.8-1-3.4-2.6-3.9l0-.3c4.4-1 7.3-1.8 10.7-2.4l.3 .3c-1 1.3-1 2.9-.5 4.4 1.6 6.3 4.7 20.4 6.3 26.5 .5 2.6 1.8 3.4 2.6 3.9zm32.2-6.8l-.3 .3c-4.7 .5-14.1 2.4-22.5 4.2l-.3-.3 .8-4.2c-1.6-7.9-3.4-18.6-5-26.2-.3-1.8-.8-2.9-2.6-3.7l.8-.5c9.2-1.6 20.2-2.4 24.9-2.6l.3 .3c.5 2.4 .8 3.1 1.6 5.5l-.3 .3c-1.1-1.1-3.3-3.2-16.2-.8l-.3 .3c.3 1.6 1 6.6 1.6 9.9l.3 .3c9.5-1.7 4.8-.1 10.7-2.4l.3 0c0 1.6-.3 1.8-.3 5.2l-.3 0c-4.8-1-2.2-.9-10.2 0l-.3 .3c.3 2.1 1.6 9.4 2.1 12.6l.3 .3c1.2 .4 14.2-.6 16.2-4.7l.3 0c-.5 2.4-1 4.2-1.6 6zm10.7-44.5c-4.5 2.4-8.1 2.9-11 2.9-.2 0-11.4 1.1-17.5-10-6.7-10.8-1-25.2 5.5-31.7 8.8-8.1 23.4-10.1 28.5-17 8-10.3-13-22.3-29.6-5.8l-2.6-2.9 5.2-16.2c25.6-1.6 45.2-3 50 16.2 .8 3.1 0 9.4-.3 12.1 0 2.6-1.8 18.8-2.1 23-.5 4.2-.8 18.3-.8 20.7 .3 2.4 .5 4.2 1.6 5.5 1.6 1.8 5.8 1.8 5.8 1.8l-.8 4.7c-11.8-1.1-10.3-.6-20.4-1-3.2-5.1-2.2-3.3-4.2-7.9 0 0-4.2 3.9-7.3 5.5zM443.9 281c-6.4-10.6-19.8-7.2-21.7 5.5-2.6 17.1 14.3 19.8 20.7 10.2l.3 .3c-.5 1.8-1.8 6-1.8 6.3l-.5 .5c-10.3 6.9-28.5-2.5-25.7-18.6 1.9-10.9 14.4-18.9 28.8-9.9l.3 .5c0 1.1-.3 3.4-.3 5.3zm5.8-87.7l0-6.6c.7 0 19.6 3.3 27.8 7.3l-1.6 17.5s10.2-9.4 15.4-10.7c5.2-1.6 14.9 7.3 14.9 7.3l-11.3 11.3c-12.1-6.4-19.6-.1-20.7 .8-5.3 38.7-8.6 42.2 4.4 46.1l-.5 4.7c-17.6-4.3-18.5-4.5-36.9-7.3l.8-4.7c7.3 0 7.5-5.3 7.6-6.8 0 0 5-53.2 5-55.3 0-2.9-5-3.7-5-3.7zm11 114.4c-8.1-2.1-14.1-11-10.7-20.7 3.1-9.4 12.3-12.3 18.9-10.2 9.2 2.6 12.8 11.8 10.7 19.4-2.6 8.9-9.4 13.9-18.9 11.5zm42.2 9.7c-2.4-.5-7.1-2.4-8.6-2.9l0-.3 1.6-1.8c.6-8.2 .6-7.3 .3-7.6-4.8-1.8-6.7-2.4-7.1-2.4-1.3 1.8-2.9 4.5-3.7 5.5l-.8 3.4 0 .3c-1.3-.3-3.9-1.3-6-1.6l0-.3 2.6-1.8c3.4-4.7 10-14.1 13.9-20.2l0-2.1 .5-.3c2.1 .8 5.5 2.1 7.6 2.9 .5 .5 .2-1.9-1 25.1-.2 1.8 0 2.6 .8 3.9zm-4.7-89.8c11.3-18.3 30.8-16.2 34-3.4l7.6-26.2c2.3-6.2-2.8-9.9-4.5-11.3l1.8-3.7c12.2 10.4 16.4 14 22.5 20.4-25.9 73.1-30.8 80.8-24.6 84.3l-1.8 4.4c-6.4-3.3-8.9-4.4-17.8-8.6l2.1-6.8c-.3-.3-3.9 3.9-9.7 3.7-19.1-1.3-22.9-31.7-9.7-52.9zm29.3 79.3c0-5.7-6.3-7.9-7.9-5.2-1.3 2.1 1 5 2.9 8.4 1.6 2.6 2.6 6.3 1 9.4-2.6 6.3-12.4 5.3-15.4-.8 0-.7-.3 .1 1.8-4.7l.8-.3c-.6 5.7 6.1 9.6 8.4 5 1-2.1-.5-5.5-2.1-8.4-1.6-2.6-3.7-6.3-1.8-9.7 2.7-5.1 11.3-4.5 14.7 2.4l0 .5-2.4 3.4zm21.2 13.4c-2-3.3-.9-2.1-4.5-4.7l-.3 0c-2.4 4.2-5.8 10.5-8.6 16.2-1.3 2.4-1 3.4-.8 3.9l-.3 .3-5.8-4.4 .3-.3 2.1-1.3c3.1-5.8 6.6-12.1 9.2-17l0-.3c-2.6-2-1.2-1.5-6-1.8l0-.3 3.1-3.4 .3 0c3.7 2.4 10 6.8 12.3 8.9l.3 .3-1.3 3.9zM575.8 276l-2.9-2.9c.8-2.4 1.8-5 2.1-7.6 .7-9.7-11.5-11.8-11.5-5 0 5 7.9 19.4 7.9 27.8 0 10.2-5.8 15.7-13.9 16.5-8.4 .8-20.2-10.5-20.2-10.5l5-14.4 2.9 2.1c-3 17.8 17.7 20.4 13.3 5.2-1.1-4-18.7-34.2 2.1-38.2 13.6-2.4 23 16.5 23 16.5L575.8 276zm35.6-10.2c-11-30.4-60.5-127.5-192-129.6-53.4-1-94.3 15.4-132.8 38l85.6-9.2-91.4 20.7 25.1 19.6-3.9-16.5c7.5-1.7 39.1-8.5 66.8-8.9l-22.3 80.4c13.6-.7 19-9 19.6-22.8l5-1 .3 26.7c-22.5 3.2-37.3 6.7-49.5 9.9l13.1-43.2-61.5-36.7 2.4 8.1 10.2 5c6.3 18.6 19.4 56.6 20.4 58.7 2 4.3 3.2 5.8 12 4.5l1.1 5c-16.1 4.9-23.7 7.6-39 14.4l-2.4-4.7c4.4-2.9 8.7-3.9 5.5-12.8-23.7-62.5-21.5-58.1-22.8-59.4l2.4-4.4 33.5 67.3c-3.8-11.9 1.7 1.7-33-78.8l-41.9 88.5 4.7-13.9-35.9-42.2 27.8 93.5-11.8 8.4c-111.9-101.7-105.8-98.4-113.7-98.7-5.5-.3-13.6 5.5-13.6 5.5l-5-6c30.6-23.5 31.6-24.3 58.4-42.7l4.2 7.1s-5.8 4.2-7.9 7.1c-5.9 9.3 1.7 13.3 61.8 75.7l-18.8-58.9 39.8-10.2 25.7 30.6 4.4-12.3-5-24.6 13.1-3.4 .5 3.1 3.7-10.5-94.3 29.3 11.3-5-13.6-42.4 17.3-9.2 30.1 36.1 28.5-13.1c-1.4-7.5-2.5-14.5-4.7-19.6l17.3 13.9 4.7-2.1-59.2-42.7 23.1 11.5c19-6.1 25.2-7.5 32.2-9.7l2.6 11c-12.6 12.6 1.4 16.8 6.5 19.4l-13.6-61 12 28.3c4.2-1.3 7.3-2.1 7.3-2.1l2.6 8.6s-3.1 1-6.3 2.1l8.9 21 33.8-65.7-20.7 61c42.4-24.1 81.4-36.7 132-35.9 67 1 167.3 40.8 199.8 139.8 .8 2.1 0 2.6-.8 .3zm-408-113.4s1.8-.5 4.2-1.3l9.4 7.6c-.4 0-3.4-.3-11.3 2.4l-2.4-8.6zm143.8 38.5c-1.6-.6-26.5-4.8-33.3 20.7l21.7 17 11.5-37.7zM318.4 67.1c-58.4 0-106.1 12-115 14.4l0 .8c8.4 2.1 14.4 4.2 21.2 11.8l1.6 .3c6.6-1.8 49-13.9 110.2-13.9 180.2 0 301.7 116.8 301.7 223.4l0 10c0 1.3 .8 2.6 1.1 .5 .5-2.1 .8-8.6 .8-19.6 .3-83.8-96.6-227.6-321.6-227.6zM529.5 236.8c1.3-5.8 0-12.3-7.3-13.1-9.6-1.1-16.1 23.8-17 33.5-.8 5.5-1.3 14.9 6 14.9 4.7 0 9.7-.9 18.3-35.4zM468 279.7c-2.6-.8-9.4-.8-12.6 10.5-1.8 6.8 .5 13.4 6 14.7 3.7 1.1 8.9 .5 11.8-10.7 2.6-9.9-1.8-13.6-5.2-14.4zm23 21c1.8 .5 3.1 1 5.8 1.8 0-1.8 .5-8.4 .8-12.1-1 1.3-5.5 8.1-6.6 10l0 .3z"],"creative-commons-nd":[512,512,[],"f4eb","M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm94 144.3l0 42.5-180.3 0 0-42.5 180.3 0zm0 79.8l0 42.5-180.3 0 0-42.5 180.3 0z"],usps:[512,512,[],"f7e1","M428.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8l-27 0c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8 .1zM316.2 264.3c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3 196.6 0c-2.7-28.2-152.9-22.6-337.9-22.6L-5 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM62.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2L449.3 415.7 517 96 62.7 96z"],"square-letterboxd":[448,512,[],"e62e","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM105.1 187C66.4 187 35 218.3 35 257s31.4 70 70.1 70c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5 0-13.6 3.9-26.3 10.6-37.1-12.4-19.8-34.4-32.9-59.5-32.9zM224 187c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5 0 13.6-3.9 26.3-10.6 37.1 12.4 19.7 34.4 32.9 59.5 32.9 24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5 0-13.6 3.9-26.3 10.6-37.1-12.4-19.7-34.4-32.9-59.5-32.9zm118.9 0c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5 0 13.6-3.9 26.3-10.6 37.1 12.4 19.8 34.4 32.9 59.5 32.9 38.7 0 70.1-31.3 70.1-70s-31.4-70-70.1-70z"],mandalorian:[384,512,[],"f50f","M200.6 511.9c-1-3.3-1.7-15.8-1.4-24.6 .6-15.9 1-24.7 1.4-28.8 .6-6.2 2.9-20.7 3.3-21.4 .6-1 .4-27.9-.2-33.1-.3-2.6-.6-11.9-.7-20.7-.1-16.5-.5-20.1-2.7-24.8-1.1-2.3-1.2-3.8-1-11.4 .2-4.2 .1-8.5-.3-12.7-2-13-3.5-27.7-3.2-33.9s.4-7.1 2.1-9.7c3.1-4.7 6.5-14 8.6-23.3 2.3-9.9 3.9-17.2 4.6-20.7 1.1-5.1 2.6-10.1 4.4-15.1 2.3-6.2 2.5-15.4 .4-15.4-.3 0-1.4 1.2-2.4 2.7s-4.8 4.8-8.3 7.4c-8.4 6.1-11.7 9.4-12.7 12.6s-1 7.2-.2 7.8c.3 .2 1.3 2.4 2.1 4.9 1.6 5 1.9 10.3 .7 15.4-.4 1.8-1 5.5-1.5 8.2s-1 6.5-1.3 8.2c-.2 1.5-.7 3-1.5 4.3-1 1-1.1 .9-2.1-.5-.7-1.5-1.2-3.1-1.4-4.7-.2-1.7-1.6-7.1-3.1-11.9-3.3-10.9-3.5-16.2-1-21 .8-1.4 1.4-3 1.7-4.6 0-2.4-2.2-5.3-7.4-9.9-7-6.2-8.6-7.9-10.2-11.3-1.7-3.6-3.1-4.1-4.5-1.5-1.8 3-2.6 9.1-3 22l-.3 12.2 2 2.2c3.2 3.7 12.1 16.5 13.8 19.8 3.4 6.7 4.3 11.7 4.4 23.6s1 22.8 2 24.7c.4 .7 .5 1.4 .3 1.5s.4 2.1 1.3 4.3c1 2.9 1.7 5.9 2.1 9 .4 3.5 .9 7 1.7 10.4 2.2 9.6 2.8 14.1 2.4 20.1-.2 3.3-.5 11.1-.7 17.3-1.3 41.8-1.8 58-2 61.2-.1 2-.4 11.5-.6 21.1-.4 16.3-1.3 27.4-2.4 28.6-.6 .7-8.1-4.9-12.5-9.5-3.8-3.9-4-4.8-2.8-9.9 .7-3 2.3-18.3 3.3-32.6 .4-4.8 .8-10.5 1-12.7 .8-9.4 1.7-20.3 2.6-34.8 .6-8.5 1.3-16.4 1.7-17.7s.9-9.9 1.1-19.1l.4-16.8-2.3-4.3c-1.7-3.3-4.9-6.9-13.2-15.3-6-6.1-11.8-12.3-12.9-13.8l-2-2.8 .8-10.9c1.1-15.7 1.1-48.6 0-59.1l-.9-8.7-3.3-4.5c-5.9-8.1-5.8-7.7-6.2-33.3-.1-6.1-.4-11.5-.6-12.1-.8-1.9-3-2.7-8.5-3-8.9-.6-11-1.9-23.8-14.6-6.2-6-12.3-12-13.8-13.2-2.8-2.4-2.8-2-.6-9.6l1.4-4.6-1.7-3c-.8-1.4-1.6-2.8-2.6-4.1-1.3-1.5-5.5-10.9-6-13.5-.2-.7-.2-1.4-.1-2.1s.5-1.3 .9-1.8c2.2-2.9 3.4-5.7 4.5-10.7 2.3-11.2 7.7-26.1 10.6-29.2 3.2-3.5 7.7-1 9.4 5 1.3 4.8 1.4 9.8 .1 18.6-.5 3.7-.9 7.4-1 11.1 0 4 .2 4.7 2.3 7.4 3.3 4.4 7.7 7.4 15.2 10.5 1.7 .7 3.3 1.7 4.7 2.8 11.2 10.7 18.6 16.2 22.9 16.9 5.2 .8 8 4.5 10 13.4 1.3 5.7 4 11.1 5.5 11.1 1.2-.2 2.3-.7 3.3-1.4 2-1.2 2.2-1.7 2.2-4.2-.3-6-.9-11.9-2-17.8-.4-1.7-.8-4.1-.9-5.4s-.6-3.8-1-5.7c-2.6-11.2-3.6-15.5-4.1-16-1.6-2-4.1-10.2-4.9-15.9-1.6-11.1-4-14.2-12.9-17.4-4.9-1.8-9.4-4.5-13.3-7.9-1.2-1-4-3.2-6.4-5.1s-4.4-3.5-4.6-3.8c-.8-.7-1.7-1.4-2.7-2-6.2-4.2-8.8-7-11.3-12l-2.4-5c-.1-8.7-.3-17.3-.4-26l6.9-6.6c4-3.8 8.5-7.4 10.6-8.4 3.3-1.7 4.4-1.9 11.4-2 8.5-.2 10.1 0 11.7 1.6s1.4 6.4-.3 8.5c-.6 .7-1.1 1.5-1.3 2.3 0 .6-2.6 4.9-5.4 9-1.1 2.2-1.9 4.5-2.4 6.8 20.4 13.4 21.6 3.8 14.1 29l11.4 2.5c3.1-8.7 6.5-17.3 8.6-26.2 .3-7.6-12-4.2-15.4-8.7-2.3-5.9 3.1-14.2 6.1-19.2 1.6-2.3 6.6-4.7 8.8-4.1 .9 .2 4.2-.4 7.4-1.3 2.5-.8 5-1.3 7.5-1.7 2-.2 4.1-.7 6-1.3 3.7-1.1 4.5-1.2 6.3-.4 1.9 .6 3.8 1.1 5.8 1.4 2.1 .3 4.1 .9 6 1.9 1.6 .9 3.3 1.7 5 2.2 2.5 .7 3 .6 7-1.7L226 5.4 236.7 5c10.4-.4 10.8-.5 15.3-2.7L256.5 0 259 1.4c1.8 1 3.1 2.7 4.9 6 2.4 4.5 2.4 4.6 1.4 7.4-.9 2.4-.9 3.3-.1 6.4 .5 2 1.2 4 2.1 5.9 .6 1.3 1.1 2.6 1.3 4 .3 4.3 0 5.3-2.4 6.9-2.2 1.5-7 7.9-7 9.3-.2 1-.6 2-1.1 3-5 11.5-6.8 13.6-14.3 17-9.2 4.2-12.3 5.2-16.2 5.2-3.1 0-4 .2-4.5 1.3-1.2 1.4-2.5 2.7-4.1 3.7-1.8 1.2-3.3 2.9-4.4 4.8-.5 1.2-1.4 2.2-2.5 2.9-.9 .4-1.8 1-2.5 1.7-2.2 1.9-4.6 3.7-7 5.4-3.3 2.3-6.9 5-7.9 6-.7 .7-1.5 1.3-2.4 1.7-.8 .4-1.6 .9-2.1 1.6-1.3 1.4-1.5 2.1-1.1 4.6 .3 2 .8 4 1.4 5.9 1.3 3.8 1.3 7.9 0 10.6s-.9 6.7 1.4 9.6c2 2.6 2.2 4.6 .7 8.8-.8 2.9-1.1 5.9-1.1 8.9 0 4.9 .2 6.3 1.5 8.4s1.8 2.5 3.2 2.3c2-.2 2.3-1.1 4.7-12.1 2.2-10 3.7-11.9 13.8-17.1 2.9-1.5 7.5-4 10-5.4s6.8-3.7 9.4-4.9c5.9-2.6 11.2-6.6 15.2-11.7 7.1-8.8 10-16.2 12.8-33.3 .4-2.8 1.3-5.4 2.9-7.7 1.4-2.2 2.4-4.7 2.9-7.3 1-5.3 2.9-9.1 5.6-11.5 4.7-4.2 6-1.1 4.6 10.9-.5 3.9-1.1 10.3-1.4 14.4l-.6 7.4c3 2.7 5.9 5.5 8.9 8.2l.1 8.4c.1 4.6 .5 9.5 .9 10.9l.8 2.5-6.4 6.3c-8.5 8.3-12.9 13.9-16.8 21.6-1.8 3.5-3.7 7.1-4.4 8-2.2 3.1-6.5 13-8.8 20.3l-2.3 7.2-7 6.5c-3.8 3.6-8 7.2-9.2 8.2-3 2.3-4.3 5.1-4.3 10-.1 2.5 .4 5 1.6 7.3 .8 1.6 1.5 3.2 2.1 4.8 .3 1 .9 2 1.6 2.9 1.4 1.6 1.9 16.1 .8 23.2-.7 4.5-3.6 12-4.7 12-1.8 0-4.1 9.3-5.1 20.7-.2 2-.6 5.9-1 8.7s-1 10-1.4 16c-.8 12.2-.2 18.8 2 23.2 3.4 6.7 .5 12.7-11 22.8l-4 3.5 .1 5.2c.1 3 .4 6 1.1 8.9 4.6 16 4.7 16.9 4.4 37.1-.5 26.4-.3 40.3 .6 44.2 .5 2.3 .9 4.6 1.1 7 .2 2 .7 5.3 1.1 7.4 .5 2.3 .8 11 .8 22.7l0 19.1-1.8 2.6c-2.7 3.9-15.1 13.5-15.5 12.3l.1 0zm29.5-45.1c-.2-.3-.3-6.9-.3-14.6 0-14.1-.9-27.5-2.3-34.4-.4-2-.8-9.7-.9-17.1-.2-11.9-1.4-24.4-2.6-26.4-.7-1.1-3-17.7-3-21.3 0-4.2 1-6 5.3-9.1s4.9-3.1 5.5-.7c.3 1.1 1.4 5.6 2.6 10 3.9 15.1 4.1 16.3 4 21.7-.1 5.8-.1 6.1-1.7 17.7-1 7.1-1.2 12.4-1 28.4 .2 19.4-.6 35.7-2 41.3-.7 2.8-2.8 5.5-3.4 4.4l-.1 0zm-71-37.6c-.8-3.6-1.3-7.2-1.7-10.8s-1-7.2-1.7-10.8c-.5-2.1-.9-4.3-1-6.5-.3-3.2-.9-7.5-1.3-9.5-1-4.8-3.3-19.4-3.4-21.1 0-.7-.3-4-.7-7.4-.7-6.2-.8-27.7-.2-28.3 1-1 6.6 2.8 11.3 7.4l5.3 5.3-.4 6.5c-.2 3.6-.6 10.2-.8 14.8-.5 13.3-.7 8.7-1.6 28.4-.8 17.4-1.9 31.3-2.6 32-.1 .1-.2 .1-.2 .2s-.2 0-.3 0-.2 0-.3-.1-.1-.1-.2-.2l0 0zM72 162.6c21.1 12.8 17.8 14.2 28.5 17.7 13 4.3 18.9 7.1 23.2 16.9-43.7 36.1-69 57.9-76.7 70.9-31 52-6 101.6 62.8 87.2-14.2 29.2-78 28.6-98.7-4.9-24.7-40-22.1-118.3 61-187.7l0 0zm210.8 179c56.7 6.9 82.3-37.7 46.5-89.2 0 0-26.9-29.3-64.3-68 3-15.5 9.5-32.1 30.6-53.8 89.2 63.5 92 141.6 92.5 149.4 4.3 70.6-78.7 91.2-105.3 61.7l0 0z"],slack:[448,512,[62447,"slack-hash"],"f198","M94.1 315.1c0 25.9-21.2 47.1-47.1 47.1S0 341 0 315.1 21.2 268 47.1 268l47.1 0 0 47.1zm23.7 0c0-25.9 21.2-47.1 47.1-47.1S212 289.2 212 315.1l0 117.8c0 25.9-21.2 47.1-47.1 47.1s-47.1-21.2-47.1-47.1l0-117.8zm47.1-189c-25.9 0-47.1-21.2-47.1-47.1S139 32 164.9 32 212 53.2 212 79.1l0 47.1-47.1 0zm0 23.7c25.9 0 47.1 21.2 47.1 47.1S190.8 244 164.9 244L47.1 244C21.2 244 0 222.8 0 196.9s21.2-47.1 47.1-47.1l117.8 0zm189 47.1c0-25.9 21.2-47.1 47.1-47.1S448 171 448 196.9 426.8 244 400.9 244l-47.1 0 0-47.1zm-23.7 0c0 25.9-21.2 47.1-47.1 47.1S236 222.8 236 196.9l0-117.8C236 53.2 257.2 32 283.1 32s47.1 21.2 47.1 47.1l0 117.8zm-47.1 189c25.9 0 47.1 21.2 47.1 47.1S309 480 283.1 480 236 458.8 236 432.9l0-47.1 47.1 0zm0-23.7c-25.9 0-47.1-21.2-47.1-47.1S257.2 268 283.1 268l117.8 0c25.9 0 47.1 21.2 47.1 47.1s-21.2 47.1-47.1 47.1l-117.8 0z"],angellist:[384,512,[],"f209","M315.6 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1-9.7-28.5-55.1-172.5-95.1-172.5-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7-.1 72.2 68.3 148.6 164.5 148.6 118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM280.2 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM110.8 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM108.5 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7 .1-7.7 12.7-21.1 20.4-21.1zM292.8 430.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3 .3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7 .1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z"],android:[576,512,[],"f17b","M420.5 253.9a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-265.1 0a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm273.7-96.5l47.9-83c.8-1.1 1.3-2.4 1.5-3.8s.2-2.7-.1-4.1-.9-2.6-1.7-3.7-1.8-2-3-2.7-2.5-1.1-3.9-1.3-2.7 0-4 .4-2.5 1.1-3.6 1.9-1.9 2-2.5 3.2l-48.5 84.1c-38.8-17.4-80.8-26.4-123.3-26.4s-84.5 9-123.3 26.4L116.2 64.4c-.6-1.2-1.5-2.3-2.5-3.2s-2.3-1.5-3.6-1.9-2.7-.5-4-.4-2.7 .6-3.9 1.3-2.2 1.6-3 2.7-1.4 2.4-1.7 3.7-.3 2.7-.1 4.1 .8 2.6 1.5 3.8l47.9 83C64.5 202.2 8.2 285.5 0 384l576 0c-8.2-98.5-64.5-181.8-146.9-226.6z"],meetup:[576,512,[],"f2e0","M131.1 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3s11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3a11.8 11.8 0 1 0 -4.9-23 11.8 11.8 0 1 0 4.9 23zM66.5 226.3a22.2 22.2 0 1 0 -24.7 36.9 22.2 22.2 0 1 0 24.7-36.9zm272-170.9a22.1 22.1 0 1 0 -22.4-38 22.1 22.1 0 1 0 22.4 38zm-191.1 58a16.9 16.9 0 1 0 -18.8-28 16.9 16.9 0 1 0 18.8 28zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8a10.1 10.1 0 1 0 -19.8 4.3 10.1 10.1 0 1 0 19.8-4.3zm-80.3-73.7a18.8 18.8 0 1 0 20.7 31.3 18.8 18.8 0 1 0 -20.7-31.3zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1 .9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9 .6-107.4 53.4-114.9 25.1-66.2 107.6-97.6 163.6-54.2 67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3 .9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3a23.3 23.3 0 1 0 26.2 38.4 23.3 23.3 0 1 0 -26.2-38.4z"],"fonticons-fi":[384,512,[],"f3a2","M114.4 224l92.4 0-15.2 51.2-76.4 0 0 157.8c0 8-2.8 9.2 4.4 10l59.6 5.6 0 34.4-179.2 0 0-35.2 29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8l0-155.8c0-3.2-4-3.2-8-3.2l-30.4 0 0-51.2 38.4 0 0-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4L163.6 180c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6l0 32c0 3.2-4.8 6-.8 6zM384 483l-140.8 0 0-34.4 28-3.6c7.2-.8 10.4-2.4 10.4-10l0-148c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4 110 0 0 208c0 8-3.6 8.8 4 10l21.6 3.6 0 34.4zM354 135.8l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10 38 0 21.2-38.4 12.8 0 21.2 38.4 38 0 4.8 13.2-30 33.2z"],palfed:[576,512,[],"f3d8","M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8 .7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zM190.4 266.1c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4 .9 74.4 2.7 100l0 .2c.2 3.4 .6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4 .2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9 .2 2.5 .4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4l30 0 22.4 217.2s0 44.3 44.7 44.3l288.9 0s44.7-.4 44.7-44.3l22.4-217.2 30 0s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4l-30.1 0c-7.3-25.6-30.2-74.3-119.4-74.3l-28 0 0-19.1s-2.7-18.4-21.1-18.4l-85.8 0S224 31.9 224 50.3l0 19.1-28.1 0s-105 4.2-120.5 74.3l-29 0S8 142.5 8 181.1z"],wpbeginner:[512,512,[],"f297","M463.2 322.4c56.2 64.3 4.2 157.6-91.9 157.6-39.6 0-78.8-17.7-100.1-50-6.9 .4-22.7 .4-29.6 0-21.4 32.4-60.6 50-100.1 50-95.5 0-148.3-93-91.9-157.6-79.1-131.9 31.3-290.4 206.8-290.4 175.6 0 285.9 158.6 206.8 290.4zm-339.6-83l41.5 0 0-58.1-41.5 0 0 58.1zm217.2 86.1l0-23.8c-60.5 20.9-132.4 9.2-187.6-34l.2 24.9c51.1 46.4 131.7 57.9 187.3 32.9zM190 239.4l166.1 0 0-58.1-166.1 0 0 58.1z"],diaspora:[448,512,[],"f791","M219.7 354.6c-1.4 0-88 119.9-88.7 119.9S44.4 414 44 413.3 130.6 287.5 130.6 285.8c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1 .6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3 .4-2 1-148.6 1.7-149.6 .8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3 .8 .9 31.9 102.2 31.5 102.6-.9 .9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5l0 0z"],"product-hunt":[512,512,[],"f288","M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2l-70.3 0 0-74.4 70.3 0c20.5 0 37.2 16.7 37.2 37.2zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm367.9-37.2c0-47.9-38.9-86.8-86.8-86.8l-119.9 0 0 248 49.6 0 0-74.4 70.3 0c47.9 0 86.8-38.9 86.8-86.8z"],"square-upwork":[448,512,[],"e67c","M56 32l336 0c30.9 0 56 25.1 56 56l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32zM270.9 274.2c6.6-52.9 25.9-69.5 51.4-69.5 25.3 0 44.9 20.2 44.9 49.7s-19.7 49.7-44.9 49.7c-27.9 0-46.3-21.5-51.4-29.9zm-26.7-41.8c-8.2-15.5-14.3-36.3-19.2-55.6l-62.9 0 0 78.1c0 28.4-12.9 49.4-38.2 49.4S84.1 283.4 84.1 255l.3-78.1-36.2 0 0 78.1c0 22.8 7.4 43.5 20.9 58.2 13.9 15.2 32.8 23.2 54.8 23.2 43.7 0 74.2-33.5 74.2-81.5l0-52.5c4.6 17.3 15.4 50.5 36.2 79.7l-19.3 110.5 36.8 0 12.8-78.4c4.2 3.5 8.7 6.6 13.4 9.4 12.3 7.8 26.4 12.2 40.9 12.6l3.4 0c45.1 0 80.9-34.9 80.9-81.9s-35.9-82.2-80.9-82.2c-45.4 0-70.9 29.7-78.1 60.1l0 .2z"],cuttlefish:[448,512,[],"f38c","M348 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8-45.3-49.6-110.5-80.7-183-80.7-137 0-248 111-248 248S115 504 252 504c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z"],medapps:[320,512,[],"f3c6","M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7 .2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32L92 416c-21.2 0-21.2 32 0 32l136 0zm-24 64c21.2 0 21.2-32 0-32l-88 0c-21.2 0-21.2 32 0 32l88 0zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5 0-85.6-71.8-155.2-160-155.2S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6-32.6-60.4-66.1-95.6-66.1-151.7 0-67.9 57-123.2 127-123.2S287 87.3 287 155.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z"],pix:[512,512,[],"e43a","M242.4 292.5c5.4-5.4 14.7-5.4 20.1 0l77 77c14.2 14.2 33.1 22 53.1 22l15.1 0-97.1 97.1c-30.3 29.5-79.5 29.5-109.8 0l-97.5-97.4 9.3 0c20 0 38.9-7.8 53.1-22l76.7-76.7zm20.1-73.6c-6.4 5.5-14.6 5.6-20.1 0l-76.7-76.7c-14.2-15.1-33.1-22-53.1-22l-9.3 0 97.4-97.4c30.4-30.3 79.6-30.3 109.9 0l97.2 97.1-15.2 0c-20 0-38.9 7.8-53.1 22l-77 77zM112.6 142.7c13.8 0 26.5 5.6 37.1 15.4l76.7 76.7c7.2 6.3 16.6 10.8 26.1 10.8 9.4 0 18.8-4.5 26-10.8l77-77c9.8-9.7 23.3-15.3 37.1-15.3l37.7 0 58.3 58.3c30.3 30.3 30.3 79.5 0 109.8l-58.3 58.3-37.7 0c-13.8 0-27.3-5.6-37.1-15.4l-77-77c-13.9-13.9-38.2-13.9-52.1 .1l-76.7 76.6c-10.6 9.8-23.3 15.4-37.1 15.4l-31.8 0-58-58c-30.3-30.3-30.3-79.5 0-109.8l58-58.1 31.8 0z"],"square-tumblr":[448,512,["tumblr-square"],"f174","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256.8 416c-75.5 0-91.9-55.5-91.9-87.9l0-90-29.7 0c-3.4 0-6.2-2.8-6.2-6.2l0-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2 .5-6.9 4.1-10.2 10-10.2l44.3 0c3.4 0 6.2 2.8 6.2 6.2l0 72 51.9 0c3.4 0 6.2 2.8 6.2 6.2l0 51.1c0 3.4-2.8 6.2-6.2 6.2l-52.1 0 0 83.3c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2 .5 3.6 2.1 4.6 4.9L318 387.1c1 3.2 2 6.7-.3 9.1-8.5 9.1-31.2 19.8-60.9 19.8z"],react:[512,512,[],"f41b","M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1 .9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2 .6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9-53.4 18.5-91.7 47.7-91.7 77.9 0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zM136.9 187.2c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zM115.7 320.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6 .4 19.5 .6 29.5 .6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8 .9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 301.8a45.8 45.8 0 1 0 0-91.6 45.8 45.8 0 1 0 0 91.6z"],jxl:[448,512,[],"e67b","M412.2 32L35.8 32C16 32 0 48 0 67.8L0 444.2C0 464 16 480 35.8 480l376.4 0c19.8 0 35.8-16 35.8-35.8l0-376.4C448 48 432 32 412.2 32zM378.6 333.7c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0zm0-113.9c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0zm0-113.9c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0z"],"square-linkedin":[448,512,[],"e7d0","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm5 170.2l66.5 0 0 213.8-66.5 0 0-213.8zm71.7-67.7a38.5 38.5 0 1 1 -77 0 38.5 38.5 0 1 1 77 0zM317.9 416l0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2-66.4 0z"],css:[448,512,[],"e6a2","M376.3 32L0 32 0 408.3c0 19 7.6 37.2 21 50.7s31.7 21 50.7 21l304.6 0c19 0 37.2-7.6 50.7-21s21-31.7 21-50.7l0-304.6c0-19-7.6-37.2-21-50.7s-31.7-21-50.7-21zM332.4 431.4c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.5-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-4-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L351.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.5 12.5c7.5 8.4 11.5 20.3 11.8 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4 27.4-12.3 35.7c-8.2 8.3-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-101 0c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.4-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-3.9-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L250.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.4 12.5c7.6 8.4 11.5 20.3 11.9 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4.1 27.4-12.3 35.7s-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-105.6 1.1c-8.4-7.7-12.5-19.2-12.5-34.5l0-75.4c0-15.2 4.4-26.7 13.2-34.6c8.9-7.8 20.7-11.8 35.2-11.8c14.1 0 25.2 4 33.4 12c8.3 8 12.5 20 12.5 35.9l0 6-33.1 0 0-5.8c0-6.1-1.3-10.7-4-13.6c-1.1-1.5-2.6-2.7-4.3-3.5s-3.5-1.2-5.4-1.1c-5.4 0-9.2 1.8-11.4 5.6c-2.3 5.2-3.3 10.8-3 16.4l0 65.5c0 13.7 4.8 20.6 14.4 20.8c4.5 0 7.9-1.6 10.2-4.8c2.5-4.1 3.7-8.8 3.5-13.6l0-4.9 33.1 0 0 5.1c0 10.6-2.1 19.5-6.2 26.6c-4 6.9-9.9 12.5-17.1 16c-7.7 3.7-16.1 5.5-24.6 5.3c-14.2 0-25.5-3.9-33.8-11.6z"],hashnode:[512,512,[],"e499","M35.7 171.1c-46.9 46-46.9 122.9 0 169.8L171.6 476.8c46 46.9 122.9 46.9 169.8 0L477.3 340.9c46.9-46.9 46.9-123.8 0-169.8L341.4 35.2c-46.9-46.9-123.8-46.9-169.8 0L35.7 171.1zM196 196.5a84.5 84.5 0 1 1 120 119 84.5 84.5 0 1 1 -120-119z"],"reddit-alien":[512,512,[],"f281","M373 138.6c-25.2 0-46.3-17.5-51.9-41-30.6 4.3-54.2 30.7-54.2 62.4l0 .2c47.4 1.8 90.6 15.1 124.9 36.3 12.6-9.7 28.4-15.5 45.5-15.5 41.3 0 74.7 33.4 74.7 74.7 0 29.8-17.4 55.5-42.7 67.5-2.4 86.8-97 156.6-213.2 156.6S45.5 410.1 43 323.4c-25.4-11.9-43-37.7-43-67.7 0-41.3 33.4-74.7 74.7-74.7 17.2 0 33 5.8 45.7 15.6 34-21.1 76.8-34.4 123.7-36.4l0-.3c0-44.3 33.7-80.9 76.8-85.5 4.9-24.2 26.3-42.4 52.1-42.4 29.4 0 53.3 23.9 53.3 53.3s-23.9 53.3-53.3 53.3zM157.5 255.3c-20.9 0-38.9 20.8-40.2 47.9s17.1 38.1 38 38.1 36.6-9.8 37.8-36.9-14.7-49.1-35.7-49.1l.1 0zM395 303.1c-1.2-27.1-19.2-47.9-40.2-47.9s-36.9 22-35.7 49.1 16.9 36.9 37.8 36.9 39.3-11 38-38.1l.1 0zm-60.1 70.8c1.5-3.6-1-7.7-4.9-8.1-23-2.3-47.9-3.6-73.8-3.6s-50.8 1.3-73.8 3.6c-3.9 .4-6.4 4.5-4.9 8.1 12.9 30.8 43.3 52.4 78.7 52.4s65.8-21.6 78.7-52.4z"],tiktok:[448,512,[],"e07b","M448.5 209.9c-44 .1-87-13.6-122.8-39.2l0 178.7c0 33.1-10.1 65.4-29 92.6s-45.6 48-76.6 59.6-64.8 13.5-96.9 5.3-60.9-25.9-82.7-50.8-35.3-56-39-88.9 2.9-66.1 18.6-95.2 40-52.7 69.6-67.7 62.9-20.5 95.7-16l0 89.9c-15-4.7-31.1-4.6-46 .4s-27.9 14.6-37 27.3-14 28.1-13.9 43.9 5.2 31 14.5 43.7 22.4 22.1 37.4 26.9 31.1 4.8 46-.1 28-14.4 37.2-27.1 14.2-28.1 14.2-43.8l0-349.4 88 0c-.1 7.4 .6 14.9 1.9 22.2 3.1 16.3 9.4 31.9 18.7 45.7s21.3 25.6 35.2 34.6c19.9 13.1 43.2 20.1 67 20.1l0 87.4z"],wordpress:[512,512,[],"f19a","M61.7 169.4l101.5 278c-71-34.4-119.9-107.2-119.9-191.4 0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8 .9 0 1.8 .1 2.8 .2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7 .3 13.7 .3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4 46.6-139.6-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zM259.7 274.6L195.9 460.1c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9L259.7 274.6zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9c63.3-36.9 105.8-105.4 105.8-183.9 0-37-9.4-71.8-26-102.1zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm484.6 0a236.6 236.6 0 1 0 -473.2 0 236.6 236.6 0 1 0 473.2 0z"],ideal:[512,512,[],"e013","M93.8 165.5a49.1 49.1 0 1 0 0 98.1 49.1 49.1 0 1 0 0-98.1zM54.3 425.8l78.9 0 0-140.5-78.9 0 0 140.5zM205.8 214.2c0-20-10-22.5-18.7-22.5l-14 0 0 45.8 14 0c9.7 0 18.7-2.8 18.7-23.3zm201.7 46l0-91.3 22.8 0 0 68.6 33.7 0C454.6 113.1 356.8 86.2 267.8 86.2l-94.8 0 0 82.8 14 0c25.6 0 41.5 17.4 41.5 45.3 0 28.8-15.5 46-41.5 46l-14 0 0 165.6 94.8 0c144.6 0 194.9-67.2 196.7-165.6l-57.1 0zm-109.8 0l-56.2 0 0-91.2 54.4 0 0 22.7-31.7 0 0 10.6 30 0 0 22.7-30 0 0 12.5 33.5 0 0 22.7zm74.7 0l-5.2-17.7-29.7 0-5.2 17.7-23.7 0 27.5-91.3 32.3 0 27.5 91.3-23.7 0zM267.8 32L.1 32 .1 480 267.8 480c161.8 0 251-79.7 251-224.5 0-83.5-32.6-223.5-251-223.5zm0 426.9l-246.6 0 0-405.9 246.6 0c142.1 0 229.9 64.6 229.9 202.4 0 134.1-81 203.4-229.9 203.4zm83.9-264.9l-7.5 25.8 16.4 0-7.5-25.8-1.4 0z"],"pied-piper-pp":[448,512,[],"f1a7","M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7l0-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2l0 68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6S226 95.9 185 95.9c-12 0-24.1 3.2-34.6 8.8l-45.7 0 0 206.3 51.8-10.1 0-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4 .2-9.6 .7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8l0 156.3 51.8-10.1 0-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z"],ussunnah:[512,512,[],"f407","M496.9 268.1c0 63.9-25.4 125.2-70.6 170.3S319.9 509 256 509 130.8 483.5 85.7 438.4 15.1 331.9 15.1 268c0-63.9 25.4-125.2 70.6-170.4S192.2 27.1 256.1 27.1 381.3 52.4 426.5 97.6 497 204.1 497 268l-.1 .1zM39.5 268c-.6 28.8 4.5 57.5 15.1 84.3s26.4 51.2 46.6 71.8 44.2 37 70.8 48.1 55.1 16.9 83.9 16.9 57.4-5.8 83.9-16.9 50.6-27.5 70.8-48.1 36-45 46.6-71.8 15.7-55.5 15.1-84.3c.6-28.8-4.5-57.5-15.1-84.3s-26.4-51.2-46.6-71.8-44.2-37-70.8-48.1-55.1-16.9-83.9-16.9-57.4 5.8-83.9 16.9-50.6 27.5-70.8 48.1-36 45-46.6 71.8-15.7 55.5-15.1 84.3zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9-5.5-4.3-8.2-12.3-8.2-23.8l0-96.5c0-6.5-5.2-20.2-15.7-41.2 7 0 17-9.1 30-27.2l0 147.8c0 11 2.4 19.4 7 25.3 3.7 4.7 10.1 8.9 19 12.6 1.2 .4 2.6 .9 4.1 1.4 2.9 .9 6.3 2.1 10.3 3.5-1.8 2.7-8.3 4-19.9 4l.1 0zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4l-89.8 0c3.3-5.3 4.9-8.8 4.9-10.8s-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4 0-7.4 2.1-13.9 6.3-19.3l20-25.6-7.1-17.7 16.1-19.8 6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7 0 4.2 2.8 13.3 8.3 27.3l16.2 40.7 17.7 0c2.8 .4 7.7 5 14.6 13.9 1.8 2.4 4.3 5.8 7.7 10.2 1.4 1.9 2.9 3.9 4.6 6.1 1.3-2.3 2-4.6 2-7.1 0-2-1.3-6.6-4-13.4L178 304.1c-4-10.6-6.1-17.7-6.1-21.3 0-6.3 1.9-12.3 5.8-17.9 .5-.6 1-1.3 1.5-1.9 4.4-5.6 8.8-11.1 13.3-16.5-1.1 4.6-1.7 8.7-1.7 12 0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3l25.9 0-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32 13.4 0-6.1-15.8c-1.5-3.9-4-7-7.7-9.3l15.7-20.1 17.3 45.2 13.4 0-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20 22.4 58.7 26.2 0c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3l0-93.5c0-6.5-4.5-20.3-13.7-41.2 5.4 0 14.1-9.1 26.2-27.2l0 163.5c0 7.2 .6 12 1.7 14.6 1.6 3.4 5.3 6.2 11.1 8.2-3.9 5.6-8.7 8.5-14.5 8.5l-154.8 0-.1-.2zm-98-44c-2.7-6.7-4-11.7-4-15-.6 1.2-2.4 3.7-5.4 7.6-1.4 1.9-2.2 3.7-2.2 5.3 0 2.6 .8 5.7 2.2 9.3l5.6 13.9c5 0 9 0 11.9-.1l-8.2-20.9 .1-.1zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0zm-27.6 0c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0zm87 27.5c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0z"],"fort-awesome-alt":[512,512,[],"f3a3","M208 237.4l-22.2 0c-2.1 0-3.7 1.6-3.7 3.7l0 51.7c0 2.1 1.6 3.7 3.7 3.7l22.2 0c2.1 0 3.7-1.6 3.7-3.7l0-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0l-22.2 0c-2.1 0-3.7 1.6-3.7 3.7l0 51.7c0 2.1 1.6 3.7 3.7 3.7l22.2 0c2.1 0 3.7-1.6 3.7-3.7l0-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5-27.6-19.6-59.3-33.7-93.6-40.7-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5-28.9 40.6-45.8 90.1-45.8 143.6 0 2 .1 4 .1 6 .1 .7 .1 1.3 .1 2 .1 1.3 .1 2.7 .2 4 0 .8 .1 1.5 .1 2.3 0 1.3 .1 2.5 .2 3.7 .1 .8 .1 1.6 .2 2.4 .1 1.1 .2 2.3 .3 3.5 0 .8 .1 1.6 .2 2.4 .1 1.2 .3 2.4 .4 3.6 .1 .8 .2 1.5 .3 2.3 .1 1.3 .3 2.6 .5 3.9 .1 .6 .2 1.3 .3 1.9l.9 5.7c.1 .6 .2 1.1 .3 1.7 .3 1.3 .5 2.7 .8 4 .2 .8 .3 1.6 .5 2.4 .2 1 .5 2.1 .7 3.2 .2 .9 .4 1.7 .6 2.6 .2 1 .4 2 .7 3 .2 .9 .5 1.8 .7 2.7 .3 1 .5 1.9 .8 2.9 .3 .9 .5 1.8 .8 2.7 .2 .9 .5 1.9 .8 2.8s.5 1.8 .8 2.7c.3 1 .6 1.9 .9 2.8 .6 1.6 1.1 3.3 1.7 4.9 .4 1 .7 1.9 1 2.8 .3 1 .7 2 1.1 3 .3 .8 .6 1.5 .9 2.3l1.2 3c.3 .7 .6 1.5 .9 2.2 .4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3 .7 .6 1.3 .9 2 .5 1 1 2.1 1.5 3.1 .2 .6 .5 1.1 .8 1.7 .6 1.1 1.1 2.2 1.7 3.3 .1 .2 .2 .3 .3 .5 2.2 4.1 4.4 8.2 6.8 12.2 .2 .4 .5 .8 .7 1.2 .7 1.1 1.3 2.2 2 3.3 .3 .5 .6 .9 .9 1.4 .6 1.1 1.3 2.1 2 3.2 .3 .5 .6 .9 .9 1.4 .7 1.1 1.4 2.1 2.1 3.2 .2 .4 .5 .8 .8 1.2 .7 1.1 1.5 2.2 2.3 3.3 .2 .2 .3 .5 .5 .7 37.5 51.7 94.4 88.5 160 99.4 .9 .1 1.7 .3 2.6 .4 1 .2 2.1 .4 3.1 .5s1.9 .3 2.8 .4c1 .2 2 .3 3 .4 .9 .1 1.9 .2 2.9 .3s1.9 .2 2.9 .3 2.1 .2 3.1 .3c.9 .1 1.8 .1 2.7 .2 1.1 .1 2.3 .1 3.4 .2 .8 0 1.7 .1 2.5 .1 1.3 0 2.6 .1 3.9 .1 .7 .1 1.4 .1 2.1 .1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1 .8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2 .9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5 .9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4 .2-.2 .3-.5 .5-.7 .8-1.1 1.5-2.2 2.3-3.3 .2-.4 .5-.8 .8-1.2 .7-1.1 1.4-2.1 2.1-3.2 .3-.5 .6-.9 .9-1.4 .6-1.1 1.3-2.1 2-3.2 .3-.5 .6-.9 .9-1.4 .7-1.1 1.3-2.2 2-3.3 .2-.4 .5-.8 .7-1.2 2.4-4 4.6-8.1 6.8-12.2 .1-.2 .2-.3 .3-.5 .6-1.1 1.1-2.2 1.7-3.3 .2-.6 .5-1.1 .8-1.7 .5-1 1-2.1 1.5-3.1 .3-.7 .6-1.3 .9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7 .6-1.5 .9-2.2l1.2-3c.3-.8 .6-1.5 .9-2.3 .4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9 .3-1 .6-1.9 .9-2.8s.5-1.8 .8-2.7c.2-.9 .5-1.9 .8-2.8s.6-1.8 .8-2.7c.3-1 .5-1.9 .8-2.9 .2-.9 .5-1.8 .7-2.7 .2-1 .5-2 .7-3 .2-.9 .4-1.7 .6-2.6 .2-1 .5-2.1 .7-3.2 .2-.8 .3-1.6 .5-2.4 .3-1.3 .6-2.7 .8-4 .1-.6 .2-1.1 .3-1.7l.9-5.7c.1-.6 .2-1.3 .3-1.9 .1-1.3 .3-2.6 .5-3.9 .1-.8 .2-1.5 .3-2.3 .1-1.2 .3-2.4 .4-3.6 0-.8 .1-1.6 .2-2.4 .1-1.1 .2-2.3 .3-3.5 .1-.8 .1-1.6 .2-2.4 .1 1.7 .1 .5 .2-.7 0-.8 .1-1.5 .1-2.3 .1-1.3 .2-2.7 .2-4 .1-.7 .1-1.3 .1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2l0-75.8c0-58.6-88.6-58.6-88.6 0l0 75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9l0-71.3c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 25.8 29.6 0 0-144c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-4.8 6.5-3.7 9.5-3.7l0-90.2c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5l0 3.9c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7l0 48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8l0 30.7c3 0 9.5-1.1 9.5 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 144 29.5 0 0-25.8c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 71.3z"],buromobelexperte:[448,512,[],"f37f","M0 32l0 128 128 0 0-128-128 0zM120 152l-112 0 0-112 112 0 0 112zM160 32l0 128 128 0 0-128-128 0zM280 152l-112 0 0-112 112 0 0 112zM320 32l0 128 128 0 0-128-128 0zM440 152l-112 0 0-112 112 0 0 112zM0 192l0 128 128 0 0-128-128 0zM120 312l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM280 312l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM440 312l-112 0 0-112 112 0 0 112zM0 352l0 128 128 0 0-128-128 0zM120 472l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM280 472l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0z"],bilibili:[512,512,[],"e3d9","M488.6 104.1c16.7 18.1 24.4 39.7 23.3 65.7l0 202.4c-.4 26.4-9.2 48.1-26.5 65.1-17.2 17-39.1 25.9-65.5 26.7L92 464c-26.4-.8-48.2-9.8-65.3-27.2-17.1-17.4-26-40.3-26.7-68.6L0 169.8c.8-26 9.7-47.6 26.7-65.7 17.1-16.3 38.8-25.3 65.3-26.1l29.4 0-25.4-25.8c-5.7-5.7-8.6-13-8.6-21.8s2.9-16.1 8.6-21.8 13-8.6 21.9-8.6 16.1 2.9 21.9 8.6l73.3 69.4 88 0 74.5-69.4C381.7 2.9 389.2 0 398 0s16.1 2.9 21.9 8.6c5.7 5.7 8.6 13 8.6 21.8s-2.9 16.1-8.6 21.8L394.6 78 423.9 78c26.4 .8 48 9.8 64.7 26.1zm-38.8 69.7c-.4-9.6-3.7-17.4-10.7-23.5-5.2-6.1-14-9.4-22.7-9.8l-320.4 0c-9.6 .4-17.4 3.7-23.6 9.8-6.1 6.1-9.4 13.9-9.8 23.5l0 194.4c0 9.2 3.3 17 9.8 23.5s14.4 9.8 23.6 9.8l320.4 0c9.2 0 17-3.3 23.3-9.8s9.7-14.3 10.1-23.5l0-194.4zM185.5 216.5c6.3 6.3 9.7 14.1 10.1 23.2l0 33.3c-.4 9.2-3.7 16.9-9.8 23.2-6.2 6.3-14 9.5-23.6 9.5s-17.5-3.2-23.6-9.5-9.4-14-9.8-23.2l0-33.3c.4-9.1 3.8-16.9 10.1-23.2s13.2-9.6 23.3-10c9.2 .4 17 3.7 23.3 10zm191.5 0c6.3 6.3 9.7 14.1 10.1 23.2l0 33.3c-.4 9.2-3.7 16.9-9.8 23.2s-14 9.5-23.6 9.5-17.4-3.2-23.6-9.5c-7-6.3-9.4-14-9.7-23.2l0-33.3c.3-9.1 3.7-16.9 10-23.2s14.1-9.6 23.3-10c9.2 .4 17 3.7 23.3 10z"],neos:[448,512,[],"f612","M383.8 512l-95.1 0-108.2-154.5 0 91.1-86.4 63.4-97.7 0 0-482.2 40.5-29.8 108 0 123.7 176.1 0-112.7 86.4-63.4 97.7 0 0 461.5-68.9 50.5zM7.2 35.3l0 460.7 72-52.9 0-249.1 215.5 307.6 84.8 0 52.4-38.2-78.3 0-316.1-450.5-30.2 22.3zM89.7 501.9l80-58.8 0-101-79.8-114.4 0 220.9-72.6 53.3 72.3 0 0 0zM49 10.8l310.6 442.6 82.4 0 0-442.6-79.8 0 0 317.6-222.9-317.6-90.3 0zM279.4 191.6l72 102.8 0-278.5-72 53 0 122.7z"],dev:[448,512,[],"f6cc","M120.1 208.3c-3.9-2.9-7.8-4.3-11.6-4.3l-17.4 0 0 104.5 17.4 0c3.9 0 7.8-1.4 11.6-4.3s5.8-7.3 5.8-13.1l0-69.7c0-5.8-2-10.2-5.8-13.1zM404.1 32L43.9 32C19.7 32 .1 51.6 0 75.8L0 436.2C.1 460.4 19.7 480 43.9 480l360.2 0c24.2 0 43.8-19.6 43.9-43.8l0-360.4C447.9 51.6 428.3 32 404.1 32zM154.2 291.2c0 18.8-11.6 47.3-48.4 47.3l-46.4 0 0-165.5 47.4 0c35.4 0 47.4 28.5 47.4 47.3l0 70.9zm100.7-88.7l-53.3 0 0 38.4 32.6 0 0 29.6-32.6 0 0 38.4 53.3 0 0 29.6-62.2 0c-11.2 .3-20.4-8.5-20.7-19.7l0-125.1c-.3-11.1 8.6-20.4 19.7-20.7l63.2 0 0 29.5zM358.5 317.8c-13.2 30.7-36.8 24.6-47.4 0l-38.5-144.8 32.6 0 29.7 113.7 29.6-113.7 32.6 0-38.5 144.8z"],hotjar:[512,512,[],"f3b1","M361.8 0c0 131.6-80.7 176.8-140.2 209.4-.6 .3-1.1 .6-1.6 .9-53.8 30.2-88.7 49.8-89.6 122l-98.1 0c0-131.5 80.7-176.7 140.2-209.3 54.8-29.8 90.3-50 90.3-123l99 0zM301.3 302.6c54.8-29.8 90.3-50 90.3-123l98 0c0 131.6-80.7 176.7-140.2 209.4-54.8 29.8-90.3 50-90.3 123l-98 0c0-131.6 80.7-176.8 140.2-209.4z"],dochub:[448,512,[],"f394","M413.9 160L272 160 272 19.6 413.9 160zM320 192l0 130c0 66.8-36.5 100.1-113.3 100.1l-94.7 0 0-337.3 94.7 0c12 0 23.1 .8 33.1 2.5l0-84C228.9 1.1 217.4 0 205.2 0L16 0 16 512 205.2 512C345.7 512 416 447.4 416 318.1l0-126.1-96 0z"],vimeo:[448,512,[],"f40a","M403.2 32L44.8 32C20.1 32 0 52.1 0 76.8L0 435.2C0 459.9 20.1 480 44.8 480l358.4 0c24.7 0 44.8-20.1 44.8-44.8l0-358.4C448 52.1 427.9 32 403.2 32zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2L53.4 191.3c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3 .9 49 22.5 47.1 64.7z"],maxcdn:[512,512,[],"f136","M461.1 442.7l-97.4 0 51.9-242.7c2.3-10.2 .9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6l-49.3 0-59.5 278-97.4 0 59.5-278-83.4 0-59.5 278-97.4 0 59.5-278-44.6-95.4 372.1 0c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9L461.1 442.7z"],"square-font-awesome-stroke":[448,512,["font-awesome-alt"],"f35c","M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm154 58c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2 0 1.8-.4 3.7-1.1 5.4L312 264 342.9 333.4c.8 1.7 1.1 3.5 1.1 5.4 0 7.3-5.9 13.2-13.2 13.2l-186.8 0 0 32-32 0 0-209.5c-6.1-4.8-10-12.2-10-20.5 0-14.4 11.6-26 26-26s26 11.6 26 26z"],speakap:[448,512,[],"f3f3","M64.4 391.8C-15 303.6-7.6 167.4 81.1 87.6s224.8-73 304.2 15.2 72 224.4-16.6 304.1c-18.7 16.9 64 43.1 42 52.3-82.1 34.2-253.9 35-346.2-67.5l0 0zM277.7 180.2l38.5-40.9c-9.6-8.9-32-26.8-76.2-27.6-52.3-.9-95.9 28.3-96.8 80-.2 11.3 .3 36.7 29.4 54.8 34.5 21.4 86.5 21.5 86 52.3-.4 21.3-26.4 25.8-38.6 25.6-3 0-30.2-.5-47.6-24.6l-40 42.6c28.2 27 59 32.6 83.5 33 10.2 .2 96.4 .3 97.8-81 .3-15.8-2.1-39.7-28.9-56.6-34.4-21.6-85-19.4-84.4-49.7 .4-23.3 31-25.4 37.5-25.3 .4 0 26.6 .3 39.6 17.4l0 0z"],"fantasy-flight-games":[512,512,[],"f6dc","M256 32.9L32.9 256 256 479.1 479.1 256 256 32.9zM88.3 255.8c2-2 11.9-12.3 96.5-97.5 41.4-41.8 86.2-43.8 119.8-18.7 24.6 18.4 62.1 58.9 62.1 59 .7 .7 1.1 2.9 .6 3.4-11.3 11.8-22.7 23.5-33.5 34.7-34.2-32.3-40.5-38.2-48.5-44-17.8-12.7-41.4-10.1-57 5.1-2.2 2.1-1.8 3.4 .1 5.4 2.9 2.9 28.1 28.3 35.1 35.8-11.9 11.6-23.7 23-35.7 34.7-12-12.5-24.5-25.5-36.5-38.1-21.4 21.1-41.7 41.1-61.8 61L88.3 255.8zM323.2 357.4c-35.5 35.4-78.1 38.1-107 20.5-22.1-13.5-39.4-32.1-72.9-66.8 12-12.4 23.8-24.4 35.4-36.3 33 31.9 37.1 36 44.7 42.1 18.5 14.7 42.5 13.7 59.3-1.8 3.7-3.4 3.7-3.6 .1-7.2-10.6-10.7-21.2-21.4-31.8-32.2-1.3-1.3-3-2.5-.8-4.7 10.8-10.7 21.5-21.5 32.2-32.3 .3-.3 .6-.4 1.9-1.1 12.4 12.9 24.9 25.9 37.2 38.8 21-20.7 41.2-40.7 61.3-60.4 13.7 13.4 27.1 26.6 40.9 40-20.2 20.9-81.7 82.7-100.5 101.5zM256 0L0 256 256 512 512 256 256 0zM16 256L256 16 496 256 256 496 16 256z"],linux:[448,512,[],"f17c","M220.9 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5 .2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4 .2-.8 .7-.6 1.1 .3 1.3 2.3 1.1 3.4 1.7zM199 125c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6 .2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5 .1-1.3 .6-3.4 1.5-3.2 2.9 .1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72 .5-45.9 5.1-131.2-75.8-131.3-102.4-.2-76.8 103.4-77.9 135.2-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9 .6 7.9 1.2 11.8 1.2 8.1 2.5 15.7 .8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1 .6 2.3 1.4 4.6 2.5 6.7l0 .1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3 .4-8.2-4.4-17.3-15.5-29.7zM223.8 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183.1 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4 .7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4l0-.2c2.4-7.6 .6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7 .8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4 .6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1 .8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7 .4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6 .8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1 .3-.2 .7-.3 1-.5 .8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.4 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z"],"cotton-bureau":[512,512,[],"f89e","M474.3 330.4C450.6 422.3 380.1 475 272.4 478.8l0-49.2c0-48 26.4-74.4 74.4-74.4 62 0 99.2-37.2 99.2-99.2 0-61.4-36.5-98.3-97.4-99.1-33-69.3-146.5-64.7-177.2 0-60.9 .8-97.4 37.7-97.4 99.1 0 62.1 37.3 99.4 99.4 99.4 48 0 74.6 26.2 74.6 74.4l0 49.2c-134.4-5-211.1-85.1-211.1-223 0-141.8 81.4-223.2 223.2-223.2 114.8 0 189.8 53.2 214.7 148.8l25.3 0C473.9 71.5 388.2 8 259.8 8 105 8 12 101.2 12 255.8 12 411.1 105.2 504.3 259.8 504 388.1 504 473.7 440.2 499.5 330.4l-25.2 0zM357 182.3c41.4 3.4 64.2 29 64.2 73.7 0 48-26.4 74.4-74.4 74.4-28.6 0-49.3-9.6-61.6-27.3 83.1-16.5 75.6-99.7 71.8-120.7zm-81.7 97.4c-2.5-10.3-16.3-87 56.2-97 2.3 10.1 16.5 87.1-56.3 97l0 0zM260 132c28.6 0 49 9.7 61.4 27.6-28.4 5.5-49.4 20.6-61.6 43.4-12.2-22.9-33.2-38-61.6-43.4 12.4-17.7 33.3-27.4 61.6-27.4l.2-.3zm-71.5 50.7c73.2 10.6 58.9 86.8 56.5 97-72.4-9.8-59-87-56.2-97l-.2 0zM173.2 330.4c-48 0-74.4-26.4-74.4-74.4 0-44.4 22.9-70 64.2-73.7-6.8 37.2-1.4 106.5 71.6 120.7-12.1 17.6-32.8 27.3-61.1 27.3l-.3 0zm53.2 12.4c14.3-7.6 26-19.3 33.6-33.5 7.8 14.5 19.3 25.5 33.8 33.5-14.4 7.6-26.1 19.4-33.6 33.8-8-14.5-19.1-26.2-33.6-33.8l-.3 0z"],"google-wallet":[448,512,[],"f1ee","M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200l-93.2 0c-6.5 0-10.5 7.5-6.5 12.7 42.2 54.3 71.7 117.8 91.7 187.3l103.5 0c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368L409 480c-12-138-68.4-265-143.2-368l-108.7 0zM408.9 43.5c-1.8-6.8-8.2-11.5-15.2-11.5l-88.3 0c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z"],foursquare:[384,512,[],"f180","M331.1 3L57.9 3C20.4 3 8 31.3 8 49.1L8 482.9c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1 128.9-149.4 131.1-151.9 131.1-151.9 3.1-3.4 3.4-3.1 6.8-3.1l83.4 0c35.1 0 40.6-25.2 44.3-39.7l48.6-243C381.8 25.8 371.1 3 331.1 3zM314.8 76.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2l-106.4 0c-12 0-20.6 8.3-20.6 20.3l0 13c0 12 8.6 20.6 20.6 20.6l90.4 0c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5l-73.5 0c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9 .9-1.8 .6-1.8-.3l0-338.8c0-7.7 6.8-16.6 16.6-16.6l219 0c8.2 0 15.6 7.7 13.5 17.5z"],shirtsinbulk:[448,512,[],"f214","M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4-4.4 9.9zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4-4.4 9.9zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9-30.6 13.4zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4-4.4 9.6zM60.4 392.8l30.6 13.4 4.4-9.6-30.6-13.7-4.4 9.9zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9-30.6 13.4zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6-30.6 13.4zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9-30.6 13.7zM170 46.6l-33.5 0 0 10.5 33.5 0 0-10.5zm-47.2 0l-33.6 0 0 10.5 33.5 0 .1-10.5zm-47.3 0l-33.2 0 0 10.5 33.3 0-.1-10.5zm141.5 0l-33.2 0 0 10.5 33.2 0 0-10.5zm94.5 0l-33.5 0 0 10.5 33.5 0 0-10.5zm47.3 0l-33.5 0 0 10.5 33.5 0 0-10.5zm-94.6 0l-33.2 0 0 10.5 33.2 0 0-10.5zm141.5 0l-33.3 0 0 10.5 33.3 0 0-10.5zM52.8 351.1l-10.8 0 0 33.5 10.8 0 0-33.5zm70-215.9l-33.6 0 0 10.5 33.5 0 .1-10.5zm-70 10.6l22.8 0 0-10.5-33.6 0 0 33.5 10.8 0 0-23zM221.7 374.4a91.3 91.3 0 1 0 0-182.6 91.3 91.3 0 1 0 0 182.6zM173.5 263.3c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9-.9 0c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4 .9 0c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4l-10.8 0 0 33.6 10.8 0 0-33.6zM395.2 384.6l10.8 0 0-33.5-10.8 0 0 33.5zM52.8 307.9l-10.8 0 0 33.5 10.8 0 0-33.5zM0 3.7l0 406 221.7 98.6 226.3-98.6 0-406-448 0zM418.8 390.8l-196.8 85.7-192.8-85.7 0-270.1 389.7 0 0 270.1-.1 0zm0-299.3l-389.6 0 0-58.6 389.7 0 0 58.6-.1 0zM52.8 221.6l-10.8 0 0 33.5 10.8 0 0-33.5zm0 43.2l-10.8 0 0 33.5 10.8 0 0-33.5zM170 135.2l-33.5 0 0 10.5 33.5 0 0-10.5zM395.2 298.3l10.8 0 0-33.5-10.8 0 0 33.5zm0-43.2l10.8 0 0-33.5-10.8 0 0 33.5zM217 135.2l-33.2 0 0 10.5 33.2 0 0-10.5zM395.2 212l10.8 0 0-33.5-10.8 0 0 33.5zm0 129.5l10.8 0 0-33.5-10.8 0 0 33.5zm-131-206.3l-33.2 0 0 10.5 33.2 0 0-10.5zm47.3 0l-33.5 0 0 10.5 33.5 0 0-10.5zm83.7 33.6l10.8 0 0-33.5-33.5 0 0 10.5 22.8 0-.1 23zm-36.4-33.6l-33.5 0 0 10.5 33.5 0 0-10.5z"],mintbit:[512,512,[],"e62f","M73.2 512l0-73.1 292.5 0 0-73.2 73.2 0 0-146.3 73.1 0 0-219.4-219.4 0 0 73.1-146.3 0 0 73.2-73.1 0 0 292.6-73.2 0 0 73.1 73.2 0zm73.1-219.4l73.2 0 0 73.1-73.2 0 0-73.1zm73.2-73.1l73.1 0 0 73.1-73.2 0 0-73.2 .1 .1zm73.1 0l0-73.2 73.2 0 0 73.1-73.2 0 0 .1zM365.7 73.1l73.2 0 0 73.2-73.2 0 0-73.2z"],staylinked:[448,512,[],"f3f5","M386.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L148.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L67.2 268c-3.5-3.5-9.7-3.7-13.9-.5L7.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L215 510.7s7.4 6.8 17.3-.8L430.3 346c4-3.2 4.4-8.7 .7-12.2l-44.3-41.3zm54.5-83.4L230.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L7.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3 .4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7 .9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1 .1c-4.2 3.2-10.5 3.1-14.2-.4L113 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9 .5l160.4 159c3.7 3.5 10 3.7 14.1 .5l45.8-35.8c4.1-3.2 4.4-8.7 .7-12.2z"],webflow:[640,512,[],"e65c","M640 64l-204.2 399.2-191.8 0 85.5-165.5-3.8 0C255.1 389.3 149.9 449.5 0 463.2L0 300.1s95.9-5.7 152.3-64.9l-152.3 0 0-171.2 171.1 0 0 140.8 3.8 0 70-140.8 129.4 0 0 139.9 3.8 0 72.6-139.9 189.3 0z"],renren:[512,512,[],"f18b","M214 169.1C214 279.5 153 374.5 66.4 416.5 30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5l0 156.6zM255 504c-42.9 0-83.3-11-118.5-30.4 57.2-36.1 103.4-90.7 118.5-154.6 15.5 63.9 61.7 118.5 118.8 154.7-35.1 19.3-75.5 30.3-118.8 30.3zm190.6-87.5C359 374.5 298 279.6 298 169.1l0-156.6c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z"],rev:[448,512,[],"f5b2","M158.7 274.9a65.6 65.6 0 1 1 131.2 0 65.6 65.6 0 1 1 -131.2 0zm270.7-5.1l-.1 0c-.7-29.3-7.7-58.2-20.5-84.6s-31.2-49.7-53.8-68.4L309.6 143c22 14.2 40.1 33.8 52.7 56.8s19.1 48.8 19.1 75.1c0 86.6-70.5 157.1-157.1 157.1S67.2 361.5 67.2 274.9c0-81.9 63-149.3 143-156.4l0 39.1 108.8-62.8-108.8-62.8 0 38.3c-106.7 7.2-191 96-191 204.6 0 111.6 89.1 202.3 200.1 205l0 .1 210.2 0 0-210.2z"],keycdn:[512,512,[],"f3ba","M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5 .7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4 .3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4-26.8-.1-47.5-21.7-47.5-48.5 0-34.3 33.1-56.6 63.8-45.6zM418.7 156.9c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3 .3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2 .7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4L92 355.6c-19.3-31.6-28.9-67.7-27.8-104.7 1-44.6 18.3-87.6 47.5-121.1L86.4 103.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4 11.9-11.2 30.6-10.9 42.4 1.2zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3 .1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9 303.3 66 344.6 81.6 377.7 109.5l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5-.1-26.7 22.3-48.4 48.3-48.4zM256.7 113.4c5.5 0 10.9 .4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7 73.7 0-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1 .8-57.3 24.8-58.2 58.3z"],"hire-a-helper":[512,512,[],"f3b0","M443.1 0L71.9 0C67.9 37.3 37.4 67.8 0 71.7L0 443.2c37.4 4.9 66 32.4 71.9 68.8l372.2 0c3-36.4 32.5-65.8 67.9-69.8l0-370.5C475.6 65.8 447 36.4 443.1 0zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8l-111.2 0c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8l0-101.2c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8l109.2 0c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4l0 101.2c0 83.4 .1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z"],"square-hacker-news":[448,512,["hacker-news-square"],"f3af","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM21 229.2s.1-.1 .1-.2 .1-.2 .2-.2c0 .1 0 .3-.1 .4l-.2 0zM239.2 384l-31.4 0 0-102.7-79.8-153.3 37.3 0c41.5 77.7 48.1 95.8 54.1 112 1.6 4.3 3.1 8.5 5.2 13.6 3.2-7 5.1-11.9 7.1-17.3 5.9-15.3 12.8-33.2 53.5-108.3l34.8 0-80.8 155.1 0 100.9z"],"creative-commons-pd-alt":[512,512,[],"f4ed","M255.6 8C112.7 8 8 123.1 8 256 8 394.5 121.6 504 255.6 504 385.5 504 504 403.1 504 256 504 118.1 397.4 8 255.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM324.7 186l-53.2 0 0 137.2 53.2 0c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5l-19.9 0 0-79.7 19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM211.7 186l-68.2 0 0 137.3 34.6 0 0-44.3 27 0c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3l-29.2 0 0-41.6 28.3 0c30.9 0 28.8 41.6 .9 41.6z"],orcid:[512,512,[],"f8d2","M294.7 188.2l-45.9 0 0 153.8 47.5 0c67.6 0 83.1-51.3 83.1-76.9 0-41.6-26.5-76.9-84.7-76.9zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM175.2 368.8l-29.8 0 0-207.5 29.8 0 0 207.5zM160.3 98.5a19.6 19.6 0 1 1 0 39.2 19.6 19.6 0 1 1 0-39.2zM300 369l-81 0 0-207.7 80.6 0c76.7 0 110.4 54.8 110.4 103.9 0 53.3-41.7 103.9-110 103.9z"],behance:[576,512,[],"f1b4","M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8l-167.1 0 0 354.4 171.8 0c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9l73.1 0c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2l-79 0 0-82.7zm83.3 233.7l-83.3 0 0-97.6 84.9 0c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zM519.7 128.9l-143.7 0 0-34.9 143.7 0 0 34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3l-62.2 0c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3l185.1 0c.3-4.2 .6-8.7 .6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8l-114.7 0z"],monero:[512,512,[],"f3d0","M360 384l108.4 0C425 455.9 346.1 504 256 504S87 455.9 43.6 384l108.4 0 0-127.8 104 104.8 104-105 0 128zM96 336l0-208 159.4 159.4 160.6-159.4 0 208 74.8 0c8.5-25.1 13.2-52 13.2-80 0-137-111-248-248-248S8 119 8 256c0 28 4.6 54.9 13.2 80L96 336z"],figma:[384,512,[],"f799","M14 95.8C14 42.9 56.9 0 109.8 0L274.2 0c52.9 0 95.8 42.9 95.8 95.8 0 33.5-17.2 63-43.2 80.1 26 17.1 43.2 46.6 43.2 80.1 0 52.9-42.9 95.8-95.8 95.8l-2.1 0c-24.8 0-47.4-9.4-64.4-24.9l0 88.3c0 53.6-44 96.8-97.4 96.8-52.8 0-96.3-42.8-96.3-95.8 0-33.5 17.2-63 43.2-80.1-26-17.1-43.2-46.6-43.2-80.1s17.2-63 43.2-80.1C31.2 158.8 14 129.3 14 95.8zm162.3 95.8l-66.5 0c-35.6 0-64.4 28.8-64.4 64.4 0 35.4 28.6 64.2 64 64.4l66.9 0 0-128.8zM207.7 256c0 35.6 28.8 64.4 64.4 64.4l2.1 0c35.6 0 64.4-28.8 64.4-64.4s-28.8-64.4-64.4-64.4l-2.1 0c-35.6 0-64.4 28.8-64.4 64.4zm-97.9 95.8l-.4 0c-35.4 .2-64 29-64 64.4s29.2 64.4 64.9 64.4c36.3 0 66-29.4 66-65.5l0-63.4-66.5 0zm0-320.4c-35.6 0-64.4 28.8-64.4 64.4s28.8 64.4 64.4 64.4l66.5 0 0-128.8-66.5 0zm97.9 128.8l66.5 0c35.6 0 64.4-28.8 64.4-64.4s-28.8-64.4-64.4-64.4l-66.5 0 0 128.8z"],instagram:[448,512,[],"f16d","M224.3 141a115 115 0 1 0 -.6 230 115 115 0 1 0 .6-230zm-.6 40.4a74.6 74.6 0 1 1 .6 149.2 74.6 74.6 0 1 1 -.6-149.2zm93.4-45.1a26.8 26.8 0 1 1 53.6 0 26.8 26.8 0 1 1 -53.6 0zm129.7 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM399 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"],perbyte:[448,512,[],"e083","M305.3 284.6l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5zM149.4 128.7l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5zM366.6 32L81.4 32c-21.6 0-42.2 8.6-57.5 23.9S0 91.8 0 113.4L0 398.6c0 21.6 8.6 42.2 23.9 57.5S59.8 480 81.4 480l285.3 0c21.6 0 42.2-8.6 57.5-23.9S448 420.2 448 398.6l0-285.3c0-21.6-8.6-42.2-23.9-57.5S388.2 32 366.6 32zm63.6 366.6c0 16.9-6.7 33-18.7 45s-28.1 18.6-45 18.7l-285.3 0c-16.9 0-33-6.7-45-18.7s-18.6-28.1-18.7-45l0-285.3c0-16.9 6.7-33 18.7-45s28.1-18.6 45-18.7l285.3 0c16.9 0 33 6.7 45 18.7s18.6 28.1 18.7 45l0 285.3zm-125-269.9l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5z"],"square-vimeo":[448,512,["vimeo-square"],"f194","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM318.5 309.5c-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-3.8-13.9-7.3-26.9-10.5-39-18.2-68.3-28.6-107.4-46.2-107.4-2.4 0-10.8 5-25.1 15.1L64 192c7-6.1 13.9-12.4 20.6-18.5 29.1-26.3 55.6-50.3 73.5-51.9 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64-1.4 31.1-23.2 73.8-65.3 127.9z"],pushed:[448,512,[],"f3e1","M415.1 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L30.6 76.9c-15.1 2.7-26 18.3-21.4 36.6L114.3 461.8c6.5 21.3 36.7 24.2 47.7 7L197.3 388 432.5 156.7c16.4-16.8 4.3-42.9-17.4-44.8zM305.7 53.6c5.1-.7 7.5 2.5 5.2 7.4l-16.8 39.9-177.4-16.3 189-31zM30.8 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7-157.9-244.3zM144.1 456.4c-2.6 4-7.9 3.1-9.4-1.2L51.6 179.7 179.3 377.3c-7 15-35.2 79.1-35.2 79.1zM416.9 141.9l-198.7 195.4 89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z"],mixcloud:[640,512,[],"f289","M213 346.6l-33.2 0 0-151.5 6.2-21.6-10.7 0-38.1 173.1-61 0-38.4-173.1-10.5 0 5.9 21.6 0 151.5-33.2 0 0-181.6 65.7 0 36.6 173.1 8.5 0 36.6-173.1 65.7 0 0 181.6zm331.5-63l-86 62.1 0-38.1 72.9-51.8-72.9-51.8 0-38.1 86 62.3 9.3 0 86.3-62.3 0 38.1-73.1 51.8 73.1 51.8 0 38.1-86.3-62.1-9.3 0zM430.2 272.3l-182 0 0-33.1 182 0 0 33.1z"],"yandex-international":[320,512,[],"f414","M129.5 512l0-166.1-111-297.9 55.8 0 81.8 229.7 94.1-277.7 51.3 0-120.7 347.8 0 164.2-51.3 0z"],hive:[512,512,[],"e07f","M260.4 254.9L131.5 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3-.8 .1-1.1 .3-.6 .5-.8 .8L.3 254.9c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1L129.1 478.9c.2 .3 .5 .6 .8 .8s.7 .3 1.1 .3 .8-.1 1.1-.3 .6-.5 .8-.8L260.4 257.1c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1zm39.1-25.7c.2 .3 .5 .6 .8 .8s.7 .3 1.1 .3l66.5 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8 .3-.7 .3-1.1-.1-.8-.3-1.1L259.1 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3l-66.5 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8-.3 .7-.3 1.1 .1 .8 .3 1.1L299.4 229.2zm212.3 25.7L384.9 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3l-66.6 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8-.3 .7-.3 1.1 .1 .8 .3 1.1L440.7 256 314.5 476.7c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1 .5 .6 .8 .8 .7 .3 1.1 .3l66.6 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8L511.7 257.1c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1zM366 284.9l-66.5 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8L188.8 476.7c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1 .5 .6 .8 .8 .7 .3 1.1 .3l66.5 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8L367.9 288.3c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1-.5-.6-.8-.8-.7-.3-1.1-.3z"],"creative-commons-zero":[512,512,[],"f4f3","M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8S174.1 398.8 256 398.8 358.5 321.5 358.5 256 337.9 113.2 256 113.2zm0 53.9c3.3 0 6.4 .5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9L213.8 290.4c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z"],"square-snapchat":[448,512,["snapchat-square"],"f2ad","M384 32L64 32c-17 0-33.3 6.7-45.3 18.7S0 79 0 96L0 416c0 17 6.7 33.3 18.7 45.3S47 480 64 480l320 0c17 0 33.3-6.7 45.3-18.7S448 433 448 416l0-320c0-17-6.7-33.3-18.7-45.3S401 32 384 32zm-3.9 319.3l-.1 .1c-2.5 2.8-5.4 5.1-8.7 6.8-6.5 3.6-13.4 6.3-20.6 8.2-1.4 .4-2.7 1-3.9 1.8-2.2 1.9-2.1 4.6-4.4 8.6-1.7 3-4 5.5-6.8 7.5-6.7 4.6-14.2 4.9-22.2 5.2-7.2 .3-15.4 .6-24.7 3.7-3.8 1.2-7.8 3.7-12.4 6.5-11.3 6.9-26.7 16.4-52.3 16.4s-40.9-9.4-52.1-16.3c-4.7-2.9-8.7-5.4-12.5-6.6-9.3-3.1-17.5-3.4-24.7-3.7-8-.3-15.5-.6-22.2-5.2-2.4-1.6-4.4-3.7-6-6.1-3.2-4.6-2.9-7.8-5.3-9.9-1.3-.8-2.6-1.5-4.1-1.8-7.1-1.9-13.9-4.6-20.3-8.1-3.1-1.6-5.9-3.8-8.3-6.3-6.6-6.8-8.3-14.8-5.7-21.8 3.4-9.3 11.6-12.1 19.4-16.3 14.8-8 26.3-18.1 34.4-29.9 2.3-3.3 4.3-6.9 6-10.6 .8-2.2 .8-3.3 .2-4.4-.6-.9-1.3-1.6-2.2-2.2-2.5-1.7-5.1-3.4-6.9-4.5-3.3-2.1-5.9-3.8-7.5-5-6.3-4.4-10.6-9-13.4-14.2-1.9-3.6-3-7.6-3.3-11.6s.4-8.1 1.9-11.9c4.1-10.9 14.5-17.7 27-17.7 2.6 0 5.3 .3 7.8 .8 .7 .2 1.4 .3 2 .5-.1-7.4 .1-15.4 .7-23.1 2.4-27.3 11.9-41.6 21.9-53 6.4-7.2 13.9-13.2 22.3-17.9 15.1-8.6 32.2-13 50.9-13s35.8 4.4 50.9 13c8.3 4.7 15.9 10.8 22.2 17.9 10 11.4 19.5 25.7 21.9 53 .6 7.7 .9 15.4 .7 23.1 .7-.2 1.4-.3 2.1-.5 2.6-.6 5.2-.8 7.8-.8 12.5 0 22.8 6.8 27 17.7 1.5 3.8 2.1 7.9 1.9 11.9s-1.4 8-3.3 11.6c-2.7 5.2-7.1 9.9-13.4 14.2-1.7 1.2-4.3 2.9-7.5 5-1.8 1.2-4.5 2.9-7.2 4.7-.8 .5-1.4 1.2-1.9 2-.5 1-.5 2.2 .2 4.2 1.7 3.8 3.7 7.4 6.1 10.8 8.3 12.1 20.2 22.3 35.5 30.4 1.5 .8 3 1.5 4.4 2.3 .7 .3 1.6 .8 2.5 1.3 4.9 2.7 9.2 6 11.5 12.2 2.5 6.9 1 14.7-5.2 21.3zm-16.7-18.5c-50.3-24.3-58.3-61.9-58.7-64.7-.4-3.4-.9-6 2.8-9.5 3.6-3.3 19.5-13.2 24-16.3 7.3-5.1 10.5-10.2 8.2-16.5-1.7-4.3-5.7-6-10-6-1.3 0-2.7 .2-4 .4-8 1.7-15.8 5.8-20.4 6.9-.5 .1-1.1 .2-1.7 .2-2.4 0-3.3-1.1-3.1-4 .6-8.8 1.8-25.9 .4-41.9-1.9-22-9-32.9-17.4-42.6-4.1-4.6-23.1-24.7-59.5-24.7s-55.4 20.1-59.5 24.8c-8.4 9.7-15.5 20.6-17.4 42.6-1.4 16-.1 33.1 .4 41.9 .2 2.8-.7 4-3.1 4-.6 0-1.1-.1-1.7-.2-4.5-1.1-12.3-5.1-20.3-6.9-1.3-.3-2.6-.4-4-.4-4.3 0-8.3 1.6-10 6-2.4 6.3 .8 11.4 8.2 16.5 4.4 3.1 20.4 13 24 16.3 3.7 3.4 3.2 6.1 2.8 9.5-.4 2.8-8.4 40.4-58.7 64.7-2.9 1.4-8 4.4 .9 9.3 13.9 7.6 23.1 6.8 30.3 11.4 6.1 3.9 2.5 12.4 6.9 15.4 5.5 3.8 21.6-.3 42.3 6.6 17.4 5.7 28.1 22 59 22s41.8-16.3 58.9-22c20.8-6.9 36.9-2.8 42.3-6.6 4.4-3.1 .8-11.5 6.9-15.4 7.2-4.6 16.4-3.8 30.3-11.5 8.8-4.9 3.8-7.9 .9-9.4z"],themeisle:[512,512,[],"f2b2","M208 88.3c0-10 6.3-21.7 17.7-21.7 11.1 0 17.7 11.7 17.7 21.7 0 10.3-6.6 21.7-17.7 21.7-11.4 0-17.7-11.4-17.7-21.7zm304 160c0 36-11.4 102.3-36.3 129.7-22.9 24.9-87.4 61.1-120.9 70.6l-1.1 .3 0 32.6c0 16.3-12.6 30.6-29.1 30.6-10 0-19.4-5.7-24.6-14.3-5.4 8.6-14.9 14.3-24.9 14.3s-19.4-5.7-24.9-14.3c-5.1 8.6-14.6 14.3-24.6 14.3-10.3 0-19.4-5.7-24.9-14.3-5.1 8.6-14.6 14.3-24.6 14.3-18.9 0-29.4-15.7-29.4-32.9-16.3 12.3-35.7 19.4-56.6 19.4-22 0-43.4-8.3-60.3-22.9 10.3-.3 20.6-2.3 30.3-5.7-20.9-5.7-39.4-18.9-52-36.3 21.4 4.6 46.2 1.7 67.1-11.1-22-22-56.6-58.9-68.6-87.4-5.7-13.4-6.9-31.4-6.9-45.7 0-49.7 20.3-160 86.3-160 10.6 0 18.9 4.9 23.1 14.9 3.7-5.4 7.7-10.5 12-15.4 2-2.6 5.7-5.4 7.1-8.3 8-12.6 11.7-21.1 21.7-34 32.3-41.1 81.7-69.4 134.9-69.4 6 0 12 .3 17.7 1.1 10.9-11.7 26-18.3 41.7-18.3 14.6 0 29.7 6 40 16.3 .9 .9 1.4 2.3 1.4 3.4 0 3.7-10.3 13.4-12.9 16.3 4.3 1.4 15.7 6.9 15.7 12 0 2.9-2.9 5.1-4.6 7.1 31.4 27.7 49.4 67.1 56.3 108 4.3-5.1 10.3-8.6 17.1-8.6 10.6 0 20.9 7.1 28.6 14 20.9 18.6 25.7 53.1 25.7 79.7zM188 89.4c0 18.3 12.6 37.1 32.3 37.1s32.3-18.9 32.3-37.1c0-18-12.6-36.9-32.3-36.9S188 71.4 188 89.4zM237.7 194c0-19.7 3.7-39.1 8.6-58.3-52 79.5-13.5 184.6 68.9 184.6 21.4 0 42.6-7.7 60-20 2-7.4 3.7-14.9 3.7-22.6 0-14.3-6.3-21.4-20.6-21.4-4.6 0-9.1 .9-13.4 1.7-63.3 12.7-107.1 3.7-107.1-64zM196.6 448.9c0-11.1-8.9-20.9-20.3-20.9s-20 9.7-20 20.9l0 32.6c0 11.1 8.6 21.1 20 21.1s20.3-9.7 20.3-21.1l0-32.6zm49.1 0c0-11.1-8.6-20.9-20-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20-10 20-21.1l0-32.6zm49.7 0c0-11.1-8.9-20.9-20.3-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20.3-9.7 20.3-21.1l0-32.6zm49.7 0c0-11.1-8.9-20.9-20.3-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20.3-10 20.3-21.1l0-32.6zM421.7 286c-30.9 59.1-90.3 102.6-158.6 102.6-96.6 0-160.6-84.6-160.6-176.6 0-16.9 2-33.4 6-49.7-20 33.7-29.7 72.6-29.7 111.4 0 60.3 24.9 121.7 71.4 160.9 5.1-9.7 14.9-16.3 26-16.3 10 0 19.4 5.7 24.6 14.3 5.4-8.6 14.6-14.3 24.9-14.3 10 0 19.4 5.7 24.6 14.3 5.4-8.6 14.9-14.3 24.9-14.3s19.4 5.7 24.9 14.3c5.1-8.6 14.6-14.3 24.6-14.3 10.9 0 20.9 6.6 25.7 16 43.4-36.3 68.6-92 71.4-148.3zm10.6-99.7c0-53.7-34.6-105.7-92.6-105.7-30.3 0-58.6 15.1-78.9 36.9-20 66.4-27.4 136.6 41.4 136.6 28.8 0 97.4-28.5 84.3 36.9 28.9-26 45.7-65.7 45.7-104.6z"],"dart-lang":[512,512,[],"e693","M378.6 78.9c-2.8-.1-5.6-.2-8.5-.2l-264.1 0 143.2-72c7.4-4.4 18.8-6.7 30.4-6.7 13.5 0 29.4 9.2 37 16.8l62 62 0 .1zM107.3 96.5l262.8 0c16 0 25.4 1.4 35.4 9.3l106.5 106.4 0 208.8-79.3 .7-325.4-325.2zM96.5 373l0-262.2 323.8 323.8 .7 77.4-212.2 0-98.1-98.2C99.4 402.5 96.5 398.5 96.5 373zM78.7 105.3l0 267.7c0 3.3 .1 6.3 .2 9.1l-62-62C6.5 309.3 0 294.3 0 279.6 0 272.8 3.9 262.1 6.7 256l72-150.7z"],deploydog:[512,512,[],"f38e","M382.2 136l51.7 0 0 239.6-51.7 0 0-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9l0-103.9zM317.5 297.8a33.2 33.2 0 1 0 66.4 1 33.2 33.2 0 1 0 -66.4-1zM188.5 136l51.7 0 0 239.6-51.7 0 0-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9l0-103.9zM123.8 297.8a33.2 33.2 0 1 0 66.4 1 33.2 33.2 0 1 0 -66.4-1zM448 96c17.5 0 32 14.4 32 32l0 256c0 17.5-14.4 32-32 32L64 416c-17.5 0-32-14.4-32-32l0-256c0-17.5 14.4-32 32-32l384 0zm0-32L64 64C28.8 64 0 92.8 0 128L0 384c0 35.2 28.8 64 64 64l384 0c35.2 0 64-28.8 64-64l0-256c0-35.2-28.8-64-64-64z"],flipboard:[448,512,[],"f44d","M0 32l0 448 448 0 0-448-448 0zM358.4 211.2l-89.6 0 0 89.6-89.6 0 0 89.6-89.6 0 0-268.8 268.8 0 0 89.6z"],"buy-n-large":[576,512,[],"f8a6","M288.2 32C133.5 32 8 132.3 8 256S133.5 480 288.2 480 568.4 379.7 568.4 256 442.9 32 288.2 32zM202.8 389.2l-138.5 1.4 77.2-290.7 133.4 0c63.2 0 84.9 28.6 78 72.8-.4 2.3-.9 4.6-1.5 6.9-5.6-1.3-11.4-1.9-17.2-1.9-42.3 0-76.7 33.9-76.7 75.7 0 37.1 27.1 68 62.9 74.5-18.2 37.2-56.2 60.9-117.7 61.5zM358.2 207.1l32 0-22.2 90.3-35.4 0-11.2-35.6-7.8 35.6-37.8 0 26.6-90.3 31.3 0 15 36.8 9.4-36.8zM504.1 389.2l-197.1 0 15.8-61.2c3.8 .6 7.6 .8 11.5 .8 42.3 0 76.7-33.9 76.7-75.6 0-32.6-21-60.5-50.4-71.1l21.3-82.4 92.5 0-53 205.4 103.9 0-21.2 84.1zM211.9 269.4l-24.7 0-13.8 56.5 24.7 0c16.1 0 32.1-3.2 37.9-26.6 5.6-22.3-8-29.8-24.1-29.8zM233.2 170l-21.3 0-11.7 47.7 21.4 0c18 0 35.4-14.6 39.2-30.1 4.6-18.9-9.5-17.6-27.6-17.6z"],"watchman-monitoring":[512,512,[],"e087","M256 16a240 240 0 1 0 0 480 240 240 0 1 0 0-480zM121.7 429.1c-51.6-40.2-84.9-102.8-84.9-173.1 0-21.7 3.2-43.3 9.6-64.1l102.9-17.9-.1 11-13.9 2s-.1 12.5-.1 19.5c0 2 .4 4 1.2 5.8s2.1 3.4 3.7 4.6l9.5 7.4-27.7 204.9zM227.4 145.9l8.5-7.6s6.9-5.4-.1-9.3c-7.2-4-39.5-34.5-39.5-34.5-5.3-5.5-8.3-7.3-15.5 0 0 0-32.3 30.5-39.5 34.5-7.1 4-.1 9.3-.1 9.3l8.5 7.6 0 4.4-73.5-19.2c39.6-56.9 105.5-94.3 180-94.3 31.3 0 62.2 6.7 90.6 19.6s53.8 31.8 74.3 55.4l-193.5 37.7 0-3.6zm34.1 329.3l-33.9-250.9 9.5-7.4c1.6-1.2 2.8-2.8 3.7-4.6s1.3-3.8 1.2-5.8c0-7-.1-19.5-.1-19.5l-13.9-2-.1-10.5 241.7 31.4c3.9 16.4 5.8 33.3 5.8 50.1 0 119.1-95.4 216.2-213.8 219.1z"],hips:[640,512,[],"f452","M251.6 157.6c0-1.9-.9-2.8-2.8-2.8l-40.9 0c-1.6 0-2.7 1.4-2.7 2.8l0 201.8c0 1.4 1.1 2.8 2.7 2.8l40.9 0c1.9 0 2.8-.9 2.8-2.8l0-201.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4l0-81.2c0-1.8-.9-2.7-2.8-2.7l-40.9 0C.9 77.5 0 78.4 0 80.2L0 359.4c0 1.9 .9 2.8 2.7 2.8l41 0c1.9 0 2.8-.9 2.8-2.8l0-136.1c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27l0 122.6c0 9 7.3 16.3 16.4 16.3l27.3 0c1.8 0 2.7-.9 2.7-2.8l0-136.1c0-23.4-9.3-41.8-28-55.3zM634.9 278.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4l0-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5 .4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6L580.4 286c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4 .2-4.4 2.3l0 34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3 .7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5l0 183.5c0 .8 .6 2.7 2.7 2.7l40.9 0c1.9 0 2.8-.9 2.8-2.7l0-88.8c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7 .1-60.3-48.2-108.6-108.6-108.6zm0 46.6a62.2 62.2 0 1 1 0 124.3 62.2 62.2 0 1 1 0-124.3zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z"],cloudversify:[640,512,[],"f385","M160.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5l0 20.4c0 10.7-8.7 19.5-19.5 19.5l-20.2 0c-10.7 0-19.5-6-19.5-16.7l0-6.6-46.8 0c-3.8 0-10.8 4.3-10.8 11.9l0 40.4c0 6.4 5.3 11.8 11.7 11.8l48.9 0 0-.1zM388 312c-10.7 46.3 21.7 72.4 55.3 86.8-107.2 33.8-171.6-50.8-135.3-110.8-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9 30.6-15.8 103.5-8.5 133.6 40.8-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM140 208l-39.8 0c-8.9 0-16.2-7.3-16.2-16.2l0-39.6c0-8.9 7.3-16.2 16.2-16.2l39.8 0c8.9 0 16.2 7.3 16.2 16.2l0 39.6c0 8.9-7.3 16.2-16.2 16.2zM22.1 168c-5.6 0-10.1-4.5-10.1-10.1l0-27.8c0-5.6 4.5-10.1 10.1-10.1l27.7 0c5.5 0 10.1 4.5 10.1 10.1l0 27.8c0 5.6-4.5 10.1-10.1 10.1l-27.7 0zM180 142.7l0-21.4c0-5.1 4.2-9.3 9.3-9.3l21.4 0c5.1 0 9.3 4.2 9.3 9.3l0 21.4c0 5.1-4.2 9.3-9.3 9.3l-21.4 0c-5.1 0-9.3-4.2-9.3-9.3zM68 235.5l0 25c0 6.3-5.1 11.5-11.4 11.5l-25.2 0c-6.3 0-11.4-5.2-11.4-11.5l0-25c0-6.3 5.1-11.5 11.4-11.5l25.1 0c6.4 0 11.5 5.2 11.5 11.5z"],goodreads:[448,512,[],"f3a8","M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32l336 0c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3l-29 0 0 40.3c-.8 .3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9 .4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2 .5-1 1.1-1.9 1.7-2.9 .2 .1 .4 .1 .6 .2 .3 3.8 .2 30.7 .1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3l-26.8 0c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z"],tidal:[640,512,[],"e7dc","M107.2 48l-1.3 0c-32.3 33.1-65.4 65.5-98 98.5-2.6 2.8-6.1 5.1-7.9 8.6 35.6 35.4 71 71 106.6 106.4 35.4-35.3 70.7-70.8 106.1-106.1l0-1.3-73.2-73.2C128.8 69.8 117.3 59.6 107.2 48zm213.5 0l-1.3 0c-34.9 36.1-71.5 71-106.3 107.2 35.9 35.1 71 71 106.7 106.3 34.3-34.1 68.4-68.4 102.6-102.4 1.5-1.5 3.3-2.8 4.1-4.8-34.6-33.8-68.4-68.2-102.6-102.1-1.3-1.3-2.3-2.6-3.3-4.1zm213.5 0l-1.3 0c-17.2 18-35.1 35.3-52.6 53-17.9 17.7-35.4 35.7-53.5 53.3 .8 2.3 3 3.6 4.6 5.5L533.3 261.5c36.1-34.9 70.8-71.2 106.7-106.1-.5-2.2-2.6-3.5-4-5L555.8 70.2c-7.1-7.4-14.9-14.2-21.5-22.2zM319.6 261.7c-34.9 35.1-70 70-104.9 104.9-.3 .7-.7 1.7-1 2.3 24 23.7 47.7 47.5 71.5 71.3 11.8 11.3 22.8 23.5 34.9 34.4 8.4-7.4 16.4-16.4 24.7-24.3 25.5-25.3 51-51 76.5-76.3 1.8-2.2 4.3-3.6 5.5-6.3-35.4-34.9-70.5-70.2-105.6-105.4l-1.5-.7z"],unity:[448,512,[],"e049","M243.6 91.6l80.1 46.8c2.9 1.6 3 6.2 0 7.8l-95.2 55.6c-2.9 1.7-6.3 1.6-9 0l-95.2-55.6c-2.9-1.6-3-6.3 0-7.8l80.1-46.8 0-91.6-204.4 119.4 0 238.8 78.4-45.8 0-93.6c-.1-3.3 3.8-5.7 6.7-3.9l95.2 55.6c2.9 1.7 4.5 4.7 4.5 7.8l0 111.2c.1 3.3-3.8 5.7-6.7 3.9L98 346.8 19.6 392.6 224 512 428.4 392.6 350 346.8 269.9 393.6c-2.8 1.7-6.8-.5-6.7-3.9l0-111.2c0-3.3 1.8-6.3 4.5-7.8L362.9 215c2.8-1.7 6.8 .5 6.7 3.9l0 93.6 78.4 45.8 0-238.8-204.4-119.4 0 91.6z"],"tencent-weibo":[320,512,[],"f1d5","M40.5 495.8c1.4 19.9-27.6 22.2-29.7 2.9-11.6-129.9 31.1-239.5 101.4-313.2-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM160.2 .1c-125.9 0-204.3 134.2-148.3 242.3 8.7 17.4 35.3 4.5 26.3-13.4-46.3-92.6 21-199.2 122-199.2 75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3 0-91.9-74.6-166.5-166.6-166.5z"],"free-code-camp":[576,512,[],"f2c5","M97.4 96.2c10.4-10.6 16-17.1 16-21.9 0-2.8-1.9-5.5-3.8-7.4-2.4-1.8-5.4-2.8-8.4-2.8-8.5 0-20.9 8.8-35.8 25.7-41.5 47.3-62.7 93.1-61.8 160.6S21 367.3 57.6 412.2c18.8 23.6 33.2 35.8 43.5 35.8 3.2-.3 6.1-1.6 8.4-3.8 1.9-2.8 3.8-5.6 3.8-8.4 0-5.6-3.9-12.2-13.2-20.6-44.5-42.3-67.3-97-67.5-165-.2-61.4 21.6-112.4 64.8-154zM239.6 420.1c.6 .4 .9 .6 .9 .6l-.9-.6zm93.8 .6l.2-.1c-.2 .1-.3 .2-.2 .1zm3.1-158.2c-16.2-4.2 50.4-82.9-68.1-177.2 0 0 15.5 49.4-62.8 159.6-74.3 104.4 23.5 168.7 34 175.2-6.7-4.3-47.4-35.7 9.6-128.6 11-18.3 25.5-34.9 43.5-72.2 0 0 15.9 22.4 7.6 71.1-12.5 73.6 53.8 52.5 54.8 53.5 22.8 26.8-17.7 73.5-21.6 76.6 5.5-3.7 117.7-78 33-188.1-6 6-13.8 34.2-30 30.1zM511 89.7c-14.9-16.9-27.4-25.7-35.9-25.7-3 .1-5.9 1.1-8.4 2.8-1.9 1.9-3.8 4.7-3.8 7.4 0 4.8 5.6 11.3 16 21.9 43.2 41.6 65 92.6 64.8 154.1-.2 68-23 122.6-67.5 165-9.3 8.4-13.2 14.9-13.2 20.6 0 2.7 1.9 5.6 3.8 8.4 2.3 2.2 5.2 3.6 8.4 3.8 10.3 0 24.7-12.1 43.5-35.8 36.6-44.9 53.1-94.4 54.1-161.9S552.5 137 511 89.7z"],"x-twitter":[448,512,[],"e61b","M357.2 48L427.8 48 273.6 224.2 455 464 313 464 201.7 318.6 74.5 464 3.8 464 168.7 275.5-5.2 48 140.4 48 240.9 180.9 357.2 48zM332.4 421.8l39.1 0-252.4-333.8-42 0 255.3 333.8z"],"sticker-mule":[576,512,[],"f3f7","M561.7 199.6l0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3 .5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8 .4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5 .5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5 .5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4 .5 1 1 2 1.5 3.5 .5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5 .5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5 .3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6 .5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3 .8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z"],twitch:[448,512,[],"f1e8","M359.4 103.5l-38.6 0 0 109.7 38.6 0 0-109.7zM253.2 103l-38.6 0 0 109.8 38.6 0 0-109.8zM89 0l-96.5 91.4 0 329.2 115.8 0 0 91.4 96.5-91.4 77.3 0 173.8-164.6 0-256-366.9 0zM417.3 237.8l-77.2 73.1-77.2 0-67.6 64 0-64-86.9 0 0-274.3 308.9 0 0 201.2z"],"kickstarter-k":[448,512,[],"f3bc","M356.7 256.2l40.8-40.5c42.2-41.9 42.2-110.3 0-152.1s-111-41.9-153.2 0L229.3 78.4C209.6 50.3 177.1 32 140.2 32 80.5 32 32 80.2 32 139.5l0 233c0 59.4 48.5 107.5 108.2 107.5 37.1 0 69.3-18.3 89-46.4l14.9 14.7c42.2 41.9 111 41.9 153.2 0s42.2-110.3 0-152.1l-40.8-40 .1 0z"],"critical-role":[448,512,[],"f6c9","M225.8 0c.3 .2 216.6 124.5 217.1 124.7 3 1.2 3.7 3.5 3.7 6.6-.1 83.4-.1 166.9 0 250.4 .1 1.2-.2 2.4-.8 3.4s-1.5 1.9-2.6 2.4c-21.4 12-207.9 118.3-218.9 124.6l-3 0c-79.3-45.7-218.3-125.4-218.4-125.5-.6-.3-1.1-.7-1.4-1.3s-.5-1.2-.4-1.9c0-.9 0-225.9-.1-253.1-.1-1 .2-2 .7-2.9s1.3-1.6 2.2-2C27.2 112.1 213.2 6 224.1 0l1.8 0zM215.4 20.4l-.2-.2c-64.7 36.9-129.5 73.7-194.2 110.6 0 .1 .1 .2 .1 .4L52 142.9c-7.7 6-8.3 6-10.6 5.1-.1 0-24.2-9.3-26.8-10l0 230.4c.9-1.4 64.1-110.9 64.1-111 1.6-2.8 3-1.9 9.1-1.5 1.4 .1 1.5 .2 .8 1.4-41.2 71.3-36.4 63-67.5 116.9-.8 1.4-.6 1.1 1.2 1.1l186.5 0c1.4 0 1.7-.2 1.7-1.6l0-8.9c0-1.3 2.4-.8-18.4-1-7.5-.1-14.1-3.2-21.4-12.7-7.4-9.7-14.6-19.4-21.8-29.2-2.3-3.1-3.4-2.4-16.8-2.4-1.8 0-1.8 0-1.8 1.8 .3 26.2 .2 25.3 1 32.7 .5 4.4 2.2 4.2 9.7 4.8 3.1 .3 3.9 4.1 .5 4.9-1.6 .4-31.6 .5-33.7-.1-.5-.1-1-.5-1.3-.9s-.5-1-.4-1.6 .3-1.1 .6-1.5 .9-.7 1.4-.8c3.3-.8 6.2 .8 6.7-4.4 1.3-13.7 1.2-9 1.1-79.4 0-10.8-.4-12.6-5.4-13.6-1.2-.2-3.5-.2-4.7-.6-2.9-1-2-4.8 1.8-4.8 33.7 0 46.1-1.1 56.1 4.9 7.7 4.6 12 11.5 12.5 20.4 .9 14.6-6.5 22.3-15 32.6-.2 .1-.3 .3-.4 .5s-.1 .4-.1 .6 0 .4 .1 .6 .2 .4 .4 .5c2.6 3.2 5 6.6 7.7 9.8 27.6 33.2 24.1 30.5 41.3 33.1 .9 .1 1-.4 1-1.2l0-11c0-1 .3-1.4 1.4-1.3 7.8 1.2 15.8 1.1 23.6-.3 1.1-.1 1.5 .2 1.5 1.3 0 .1 .9 26.7 .9 26.8 0 1.5 .7 1.6 1.9 1.6l186.7 0c-27.2-47-54.2-94-81.2-140.8 2.3-.7-.4 0 6.7-1.4 2-.4 2.1-.4 3.1 1.4 7.3 12.6 77.3 134 77.4 134.1l0-230.4c-1.7 .5-103.3 38.7-105.8 39.7-1.1 .4-1.5 .2-1.9-.9-.6-1.9-1.3-3.8-2.1-5.6-.3-.8-.1-1.1 .6-1.4 .1 0 95.5-35.8 103-38.8-65.4-37.6-130.6-75-196-112.6l86.8 150.4-.3 .3c-9.6-.9-10.5-1.6-11.8-3.9-1-1.7-73.5-127.7-82-142.2-9.1 14.7-83.6 146.2-85.4 146.3-2.9 .2-5.9 .1-9.2 .1 28.8-49.8 57.6-99.5 86.2-149l0 0zm51.9 129.9c1.9-.1 3.7-.4 5.5-.8 1.7-.3 2.5 .2 2.6 1.9 0 .1 .1 19.1-.9 20.5s-1.9 1.2-2.6-.2c-5-9.7 6.2-9.7-39.1-12-.7 0-1 .2-1 .9 0 .1 3.7 122 3.7 122.1 0 .9 .5 1.2 1.2 1.5 3 1.2 5.9 2.5 8.7 4 7.3 4.3 11.4 10.8 12.4 19.3 1.4 11.8-2.8 35.8-32.2 37.1-2.8 .1-28.3 1.1-34.1-23.3-4.7-19.3 8.3-32.7 19.9-36.4 .6-.1 1.2-.4 1.5-.9s.5-1.1 .5-1.7c.1-5.6 3-107.1 3.7-121.3 0-1.1-.6-1.2-1.4-1.1-32.3 .5-36.7-.3-40.2 8.5-2.4 6.2-4.1 1.3-4 .2 1.1-6 2.2-12 3.3-18 .4-2.1 1.4-2.6 3.4-1.9 5.6 2.1 6.7 1.7 37.2 1.9 1.7 0 1.8-.1 1.8-1.8 .7-27.5 .6-22.6 1-29.6 .1-.6-.1-1.2-.3-1.7s-.7-.9-1.3-1.1c-5.6-2.9-8.8-7.6-8.9-13.9-.4-14.8 17.7-21.7 27.4-11.5 6.8 7.2 5.8 18.9-2.5 24.2-.8 .4-1.4 1.1-1.8 1.8s-.6 1.6-.4 2.5c0 .6-.1-4.3 1 30 0 .9 .4 1.1 1.2 1.1 .1 0 23-.1 34.5-.4l0-.1zM68.3 141.7c19.8-4.5 32.7-.6 52.5 1.7 2.8 .3 3.7 1.2 3.6 4-.2 5-1.2 22.3-1.2 23.1 0 .5-.2 1-.5 1.4s-.7 .7-1.2 .9c-4.1 1.7-3.6-4.4-4-7.3-3.1-22.4-73.9-32.7-74.6 25.4-.3 23.9 17 53.6 54.1 50.9 27.2-2 19-20.2 24.8-20.5 .4-.1 .9 0 1.3 .1s.8 .4 1.1 .7 .5 .7 .6 1.2 .1 .9 0 1.3c-1.8 10.8-3.4 19-3.4 19.2-1.5 9.2-86.7 22.1-93.4-42.1-2.7-25.8 10.4-53.4 40.3-60.2zm80 87.7l-19.5 0c-.6 0-1.2-.1-1.6-.4s-.8-.8-1-1.4c2.4-3.8 5.9 .9 5.9-6.1-.1-25.8 .2-38 .2-40.1 0-3.4-.5-4.6-3.3-4.9-7-.7-3.1-3.4-1.1-3.4 11.8-.1 22.6-.2 30 .7 8.8 1.1 16.7 12.6 7.9 22.6-2 2.2-4 4.4-6.1 6.7 1 1.2 6.9 8.8 17.3 19.7 2.7 2.8 6.2 3.5 9.9 3.1 .6 0 1.1-.2 1.5-.6s.7-.9 .7-1.5c.3-3.4 .3 4.7 .4-40.6 0-5.6-.3-6.6-3.2-6.8-4-.4-4-2.3-.7-3.4l19.1-.1c.3 0 4.5 .5 1 3.4 0 0-.2 0-.2 0-3.6 .3-3.9 1-4 4.6-.3 43.9 .1 40.2 .4 42.8 .1 .8 .3 2.2 5.1 2.1 2.5 0 3.9 3.4 0 3.4-10.4 .1-20.7 0-31.1 .1-10.7 0-13.5-6.2-24.2-20.8-1.6-2.2-8.3-2.4-8.2-.4 .9 16.5 0 17.8 4 17.7 4.8-.1 4.7 3.6 .8 3.5l.1 0zm275-10.1c-1.2 7.1 .2 10.4-5.3 10.3-61.5-.4-47.8-.2-50.7-.3-1.2-.1-2.4-.4-3.6-.7-2.5-.6 1.5-1.2-.4-5.6-1.4-3.4-2.8-6.8-4.1-10.2-.1-.4-.4-.8-.7-1.1s-.8-.4-1.3-.4c-4.9-.2-9.7-.2-14.6 .1-.3 0-.6 .2-.9 .3s-.5 .4-.7 .7c-1.6 3.6-3.1 7.3-4.5 11-1.3 3.2 7.9 1.3 12.2 2.2 3 .6 4.5 3.7 .7 3.7l-26.4 0c-2.9 0-3.1-3.2-.7-3.2 1.2 .1 2.4-.2 3.5-.9s1.9-1.5 2.4-2.6c1.5-3 2.8-6 4.1-9.1 18.2-42.1 17.1-40.2 18.4-41.6 .2-.2 .4-.4 .7-.6s.6-.2 .8-.2 .6 .1 .8 .2 .5 .3 .7 .6c2.9 3.3 18.4 44.7 23.6 51.9 2 2.7 5.7 2 6.4 2 3.6 .1 4-1.1 4.1-4.3 .1-1.9 .1 1.2 .1-41.2 0-4.5-2.4-3.7-5.6-4.3-.3 0-2.6-.6-.1-3.1 .2-.2-.9-.2 21.7-.2 2.3 0 5.3 2.8-1.2 3.4-.4 0-.7 0-1.1 .2s-.6 .3-.9 .6-.4 .6-.6 .9-.2 .7-.1 1.1c-.1 1.6-.2 38.9 .3 41.2 .2 .7 .6 1.4 1.2 1.8s1.3 .7 2.1 .6c13.3 .4 14.9 .4 16-3.4 1.7-5.8 4.1-2.5 3.7-.2l0 .1zM318.6 283.6c-4.2 0-4.4-3.4-.6-3.4 35.9-.2 28.1 .4 37.2-.6 1.7-.2 2.4 .2 2.3 1.9-.3 3.4-.6 6.8-1 10.2-.2 2.2-3.2 2.6-3.4-.2-.4-5.3-2.2-4.5-15.6-5.1-1.6-.1-1.6 0-1.6 1.5l0 16.1c0 1.7 0 1.6 1.6 1.5 3.1-.2 10.3 .3 15.7-1.5 .5-.2 3.3-1.8 3.1 1.8 0 .2-.8 10.4-1.2 11.4-.5 1.3-1.9 1.5-2.6 .3-1.2-2 0-5.1-3.7-5.3-15.4-.9-12.9-2.5-12.9 6 0 12.3-.8 16.1 3.9 16.2 16.6 .5 14.4 0 16.4-5.7 .8-2.4 3.5-1.8 3.2 .6-.4 3.2-.8 6.4-1.2 9.6 0 .4-.2 2.4-4.7 2.4-37.2-.1-34.5-.2-35.2-.3-2.7-.5-2.2-3 .2-3.4 1.1-.2 4 .5 4.2-2.6 2.4-56.2-.1-51.3-3.9-51.3l0 0zm-.4-109.5c2.5 .6 3.1 1.8 3 4.6-.3 5.3-.3 9-.6 9.7-.7 2.2-3.1 2.1-3.3-.3-.4-4.8-3-7.8-7.6-9.1-26.3-7.7-32.8 15.5-27.2 30.2 5.9 15.4 22 15.9 28.9 13.8 5.9-1.9 5.9-6.5 6.9-7.6 1.2-1.3 2.2-1.8 3.1 1.1 0 .1 .6 11.9-6 12.7-1.6 .2-19.4 3.7-32.7-3.4-21-11.2-16.7-35.5-6.9-45.3 14-14.1 39.9-7.1 42.3-6.5l0 0zM289.8 280.1c3.3 0 3.7 3 .2 3.4-2.6 .3-5-.4-5 5.5 0 2-.2 29 .4 41.4 .1 2.3 1.2 3.5 3.4 3.7 22 1.2 15-1.7 18.8-6.3 1.8-2.2 2.8 .8 2.8 1.1 .3 13.6-4 12.4-5.2 12.4l-38.2-.2c-1.9-.2-2.1-3-.4-3.4 2-.5 4.9 .4 5.1-2.8 1-15.9 .6-44.6 .3-47.8-.3-3.8-2.8-3.3-5.7-3.7-2.5-.4-2-3.2 .3-3.2 1.4 0 18 0 23.1 0zm-31.6-57.8c.1 4.1 2.9 3.5 6 3.6 2.6 .1 2.5 3.4-.1 3.4-6.5 0-13.7 0-21.6-.1-3.8 0-3.4-3.4 0-3.4 4.5 0 3.2 1.6 3.4-45.5 0-5.1-3.3-3.5-4.7-4.2-2.6-1.2-1.4-3.1 .4-3.2 1.3 0 20.2-.4 21.2 .2s1.9 1.6-.4 2.9c-1 .5-3.9-.3-4.2 2.5 0 .2-.8 1.6-.1 43.8l0 0zM221.3 496.6c.5 .3 1 .5 1.6 .5s1.1-.2 1.6-.5c17-9.8 182-103.6 197.4-112.5-.1-.4 11.3-.2-181.5-.3-1.2 0-1.6 .4-1.5 1.6 0 .1 1.3 44.5 1.2 50.4-.1 2.6-.6 5.2-1.4 7.7-.6 1.8 .4-.5-13.5 32.2-.7 1.7-1 2.2-2-.1-4.2-10.3-8.3-20.7-12.6-31-1.5-3.4-2.2-7.1-2-10.8 .2-2.5 .8-16.1 1.5-48 0-1.9 0-2-2-2l-183 0c2.6 1.6 178.3 102.6 196 112.8l.1 0zM130.4 307.9c0 2.4 .4 2.8 2.8 3 11.5 1.2 21 3.7 25.6-7.3 6-14.5 2.7-34.4-12.5-38.8-2-.6-16-2.8-15.9 1.5 0 8 0 11.6 0 41.6zm105.8-15c0 2.1 1.1 38.7 1.1 39.1 .3 9.9-25.6 5.8-25.2-2.6 .1-2 1.4-37.4 1.1-39.4-14.1 7.4-14.4 40.2 6.4 48.8 4 1.7 8.4 1.9 12.5 .6s7.6-4 9.9-7.7c4.9-7.8 6.8-29.5-5.4-39-.1 .1-.2 .1-.4 .1l0 0zm-12.3-198c-9.8 0-9.7 14.8-.1 14.9s10.1-14.9 .1-14.9l0 0zM143.7 198.6c0 1.8 .4 2.4 2.2 2.6 13.6 1.4 12.5-11 12.2-13.4-1.7-11.2-14.4-10.2-14.4-7.8 0 4.5 0 13.7 0 18.6zM356 205l-6.1-15.8c-2.2 5.5-4.2 10.6-6.2 15.8l12.3 0z"],"steam-symbol":[448,512,[],"f3f6","M273.5 177.5a61 61 0 1 1 122 0 61 61 0 1 1 -122 0zm174.5 .2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358 0 250.7 97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7C220.7 114.5 271.7 64 334.2 64 397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zM410.5 177.7a76.4 76.4 0 1 0 -152.8 0 76.4 76.4 0 1 0 152.8 0z"],mailchimp:[448,512,[],"f59e","M331 243.5c3.1-.4 6.2-.4 9.3 0 1.7-3.8 2-10.4 .5-17.6-2.2-10.7-5.3-17.1-11.5-16.1s-6.5 8.7-4.2 19.4c1.3 6 3.5 11.1 6 14.3l0 0zM277.4 252c4.5 2 7.2 3.3 8.3 2.1 1.9-1.9-3.5-9.4-12.1-13.1-5-2.1-10.4-2.8-15.8-2.2s-10.5 2.7-14.8 5.8c-3 2.2-5.8 5.2-5.4 7.1 .9 3.7 10-2.7 22.6-3.5 7-.4 12.8 1.8 17.3 3.7l0 0zm-9 5.1c-9.1 1.4-15 6.5-13.5 10.1 .9 .3 1.2 .8 5.2-.8 6-2.3 12.4-2.9 18.7-1.9 2.9 .3 4.3 .5 4.9-.5 1.5-2.2-5.7-8-15.4-6.9l0 0zm54.2 17.1c3.4-6.9-10.9-13.9-14.3-7s10.9 13.9 14.3 7l0 0zm15.7-20.5c-7.7-.1-8 15.8-.3 15.9s8-15.8 .3-16l0 0zM119.5 332.7c-1.3 .3-6 1.5-8.5-2.3-5.2-8 11.1-20.4 3-35.8-9.1-17.5-27.8-13.5-35-5.5-8.7 9.6-8.7 23.5-5 24.1 4.3 .6 4.1-6.5 7.4-11.6 .9-1.4 2.1-2.6 3.5-3.6s3-1.6 4.6-2 3.4-.4 5 0 3.3 1 4.7 1.9c11.6 7.6 1.4 17.8 2.3 28.6 1.4 16.7 18.4 16.4 21.6 9 .2-.4 .3-.8 .3-1.2s-.2-.8-.5-1.1c0 .9 .7-1.3-3.4-.4l0 0zm299.7-17.1c-3.3-11.7-2.6-9.2-6.8-20.5 2.4-3.7 15.3-24-3.1-43.3-10.4-10.9-33.9-16.5-41.1-18.5-1.5-11.4 4.6-58.7-21.5-83 20.8-21.6 33.8-45.3 33.7-65.7-.1-39.2-48.2-51-107.4-26.5l-12.5 5.3c-.1 0-22.7-22.3-23.1-22.6-67.5-58.9-278.8 175.9-211.3 232.9l14.8 12.5c-4 10.7-5.4 22.2-4.1 33.5 3.4 33.4 36 60.4 67.5 60.4 57.7 133.1 267.9 133.3 322.3 3 1.7-4.5 9.1-24.6 9.1-42.4s-10.1-25.3-16.5-25.3l0 0zm-316 48.2c-22.8-.6-47.5-21.1-49.9-45.5-6.2-61.3 74.3-75.3 84-12.3 4.5 29.6-4.7 58.5-34.1 57.8l0 0zM84.7 249.6c-15.2 3-28.5 11.5-36.7 23.5-4.9-4.1-14-12-15.6-15-13-24.8 14.2-73 33.3-100.2 47.1-67.2 120.9-118.1 155-108.9 5.5 1.6 23.9 22.9 23.9 22.9s-34.1 18.9-65.8 45.3C136.2 150 104 197.7 84.7 249.6zM323.6 350.7s-35.7 5.3-69.5-7.1c6.2-20.2 27 6.1 96.4-13.8 15.3-4.4 35.4-13 51-25.4 3.4 7.8 5.8 15.9 7.1 24.3 3.7-.7 14.2-.5 11.4 18.1-3.3 19.9-11.7 36-25.9 50.8-8.9 9.6-19.4 17.5-31.2 23.3-6.5 3.4-13.3 6.3-20.3 8.6-53.5 17.5-108.3-1.7-126-43-1.4-3.1-2.6-6.4-3.6-9.7-7.5-27.2-1.1-59.8 18.8-80.4 1.2-1.3 2.5-2.9 2.5-4.8-.2-1.7-.8-3.3-1.9-4.5-7-10.1-31.2-27.4-26.3-60.8 3.5-24 24.5-40.9 44.1-39.9l5 .3c8.5 .5 15.9 1.6 22.9 1.9 11.7 .5 22.2-1.2 34.6-11.6 4.2-3.5 7.6-6.5 13.3-7.5 2.3-.6 4.7-.7 7-.3s4.6 1.2 6.6 2.5c10 6.6 11.4 22.7 11.9 34.5 .3 6.7 1.1 23 1.4 27.6 .6 10.7 3.4 12.2 9.1 14 3.2 1 6.2 1.8 10.5 3.1 13.2 3.7 21 7.5 26 12.3 2.5 2.5 4.2 5.8 4.7 9.3 1.6 11.4-8.8 25.4-36.3 38.2-46.7 21.7-93.7 14.4-100.5 13.7-20.2-2.7-31.6 23.3-19.5 41.1 22.6 33.4 122.4 20 151.4-21.4 .7-1 .1-1.6-.7-1-41.8 28.6-97.1 38.2-128.5 26-4.8-1.8-14.7-6.4-15.9-16.7 43.6 13.5 71 .7 71 .7s2-2.8-.6-2.5zM171.7 157.5c16.7-19.4 37.4-36.2 55.8-45.6 .1-.1 .3-.1 .5-.1s.3 .1 .4 .2 .2 .3 .2 .4 0 .3-.1 .5c-1.5 2.7-4.3 8.3-5.2 12.7 0 .1 0 .3 0 .4s.2 .3 .3 .4 .3 .1 .4 .1 .3 0 .4-.1c11.5-7.8 31.5-16.2 49-17.3 .2 0 .3 0 .5 .1s.2 .2 .3 .4 .1 .3 0 .5-.1 .3-.3 .4c-2.9 2.2-5.5 4.8-7.7 7.7-.1 .1-.1 .2-.1 .4s0 .3 .1 .4 .2 .2 .3 .3 .2 .1 .4 .1c12.3 .1 29.7 4.4 41 10.7 .8 .4 .2 1.9-.6 1.7-69.5-15.9-123.1 18.5-134.5 26.8-.2 .1-.3 .1-.5 .1s-.3-.1-.5-.2-.2-.3-.2-.5 .1-.4 .2-.5l-.1 0z"],lumon:[640,512,[],"e7e2","M452.5 223.5c9.8 0 16.5 6.3 16.5 16.6l0 31.8c0 10.3-6.6 16.6-16.6 16.6l-56.2 0c-9.8 0-16.5-6.3-16.5-16.6l0-31.8c0-10.3 6.7-16.6 16.5-16.6l56.3 0zm-25.7 13.1c-1.5-2.6-3.2-2.6-4.6 0l-10.7 17.6c-1.7 2.4-2.6 5.1-2.6 8.2 0 7.9 6.9 14.6 15.6 14.6 8.5 0 15.6-6.7 15.6-14.6 0-3-1-5.8-2.7-8.2l-10.7-17.6zM85.8 223.8c1 0 1.5 .6 1.5 1.5l0 50.3 64.6 0c1 0 1.6 .6 1.6 1.5l0 9.7c0 .9-.6 1.5-1.6 1.5l-78.4 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l12.3 0zm88.3 0c1 0 1.5 .6 1.5 1.5l0 45c0 4 2 5.2 5.7 5.2l46.9 0c3.8 0 5.7-1.3 5.7-5.2l0-45c0-.9 .5-1.5 1.5-1.5l12.3 0c1 0 1.6 .6 1.6 1.5l0 46c0 10.5-5.3 16.8-17.6 16.8l-54 0c-12.3 0-17.6-6.3-17.6-16.8l0-46c0-.9 .6-1.5 1.6-1.5l12.3 0zm108.2 0c1 0 1.6 .5 2.2 1.4l30.5 46.4 1.4 0 30.5-46.4c.6-.9 1.2-1.4 2.2-1.4l18 0c1 0 1.5 .6 1.5 1.5l0 61.4c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-43.8-1.1 0-28.7 43.8c-.6 .9-1.3 1.5-2.4 1.5l-10.7 0c-1 0-1.7-.6-2.3-1.5l-28.7-43.8-1.1 0 0 43.8c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l17.9 0zm214.4 0c.9 0 1.3 .4 2.2 1.1l52.7 46.3 1.3 0 0-46c0-.9 .6-1.5 1.6-1.5l12.3 0c1 0 1.6 .6 1.6 1.5l0 61.4c0 .9-.6 1.5-1.6 1.5l-14.4 0c-1 0-1.4-.4-2.3-1.1l-52.6-46.3-1.4 0 0 46c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l14.4 0zM320 114.1c87.9 0 167.7 15.7 225.5 41l2.7 1.2C587.1 173.8 640 206.5 640 256s-52.9 82.2-91.8 99.6l-2.7 1.2c-57.8 25.4-137.6 41-225.5 41-76.2 0-155.1-10.5-225.5-41-39.6-17.4-94.5-50.3-94.5-100.8s54.9-83.5 94.5-100.8c70.4-30.5 149.3-41 225.5-41zm-88.9 229c20.3 29 52.8 49.6 88.9 49.6 36.2 0 68.7-20.6 89-49.7l-177.9 .1zm-96.1 0c43.3 29.7 96.7 43.5 148.4 48-24.2-9.1-44.4-26.7-58.6-48.1l-89.9 0zm280.3-.1c-14.2 21.4-34.4 39.1-58.6 48.1 51.8-4.5 105.3-18.3 148.6-48.2l-90 0zm-337.4 .1c44.1 23.1 93.7 35.4 142.7 42.6-33.4-8.6-66.5-21.9-94.4-42.6l-48.3 0zm436.2-.2c-27.9 20.8-61.1 34.2-94.6 42.8 47.3-6.9 89.6-18.5 123.9-33.6l1.7-.8c6.1-2.7 11.9-5.5 17.4-8.4l-48.5 0zM520 173.6c10.7 8.7 19.8 18.1 27 28.2 .4 .6 .5 1.3 .1 2s-1 1-1.7 1l-1.6 0c-.6 0-1.2-.3-1.5-.8-7.9-10.9-18.2-21.1-30.6-30.4l-93.5 0c5.4 8.8 9.9 18.5 13.4 28.6 .2 .6 .1 1.2-.2 1.7s-.9 .8-1.6 .8l-1.4 0c-.8 0-1.5-.5-1.8-1.3-3.8-10.7-8.7-20.8-14.5-29.9l-184.3 .1c-5.8 9.1-10.7 19.1-14.4 29.8-.3 .8-1 1.3-1.8 1.3l-1.4 0c-.6 0-1.2-.3-1.6-.8s-.5-1.1-.2-1.7c3.5-10.2 8-19.7 13.4-28.6l-93.6 0c-12.3 9.3-22.6 19.4-30.4 30.3-.4 .5-.9 .8-1.5 .8l-1.6 0c-.7 0-1.4-.4-1.7-1s-.3-1.4 .1-2c7.6-10.5 16.7-19.9 26.8-28l-51 0c-28.9 16.6-62 43.3-63.5 79.7l44.7 0c.5 0 1 .2 1.3 .6s.6 .8 .6 1.3l0 1.3c0 1.1-.9 1.9-1.9 1.9l-44.7 0C6.8 295 40 321.7 69 338.3l50.9 0c-10.3-8.4-19.1-17.4-26.1-27l-.8-1.1c-.4-.6-.5-1.3-.1-2s1-1 1.7-1l1.6 0 .2 0c.5 .1 1 .3 1.3 .8 7.9 10.9 18.1 21 30.5 30.3l93.6 0c-5.3-8.8-9.8-18.4-13.4-28.5-.2-.6-.1-1.2 .2-1.7s.9-.8 1.6-.8l1.4 0 .2 0c.7 .1 1.4 .6 1.7 1.3 3.8 10.7 8.6 20.7 14.4 29.8l184.5-.1c5.8-9.1 10.6-19.1 14.4-29.7l.1-.1c.3-.7 1-1.1 1.7-1.1l1.4 0c.6 0 1.2 .3 1.6 .8s.5 1.2 .2 1.7c-3.5 10.1-8 19.7-13.3 28.5l93.7 0c12.3-9.3 22.5-19.4 30.3-30.2l.1-.2c.4-.4 .9-.6 1.4-.6l1.6 0c.7 0 1.4 .4 1.7 1s.3 1.4-.1 2c-7.1 10-16.1 19.3-26.7 27.9l51.1 0c28.8-16.6 61.8-43.3 63.4-79.6l-44.7 0c-1 0-1.9-.9-1.9-1.9l0-1.3c0-1.1 .9-1.9 1.9-1.9l44.7 0c-1.6-36.5-34.9-63.3-63.9-79.9l-50.9 0zM220.5 126.2c-49.1 7.1-98.7 19.5-143 42.7l48.4 0c27.9-20.8 61-34.1 94.5-42.7zm62.8-5.4c-51.8 4.5-105.2 18.3-148.6 48.1l90 0c14.2-21.4 34.4-39 58.6-48.1zm36.6-1.6c-36.2 0-68.7 20.6-89 49.7l177.9-.1c-20.3-29.1-52.7-49.6-88.9-49.6zm36.6 1.6c24.2 9.1 44.4 26.6 58.5 48l89.8 0c-43.3-29.7-96.6-43.5-148.3-48zm62.8 5.4c33.4 8.5 66.4 21.9 94.3 42.5l48.3 0c-44.1-23.1-93.6-35.4-142.6-42.5z"],nutritionix:[448,512,[],"f3d6","M112 8.1S245.4-.1 233 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zM424 323.7c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48-22.3-37-32-83.8-32-132.3 0-48.4 17.7-94.7 40-131.7 42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM144 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM216 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM288 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM360 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM384 256c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S118.8 180.1 80 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z"],"creative-commons-sampling-plus":[512,512,[],"f4f1","M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1 .4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7-43.9 0 0 23.2 51.3 0c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2 .2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1 .1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4 50.5 0 0-23.2-58.4 .3zm-78 5.2l-21.9 0 0 21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5l0-21.9-21.9 0c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5l21.9 0 0-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5l0 21.9 21.9 0c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z"],redhat:[512,512,[],"f7bc","M341.5 285.6c33.7 0 82.3-6.9 82.3-47 .2-6.7 .9-1.8-20.9-96.2-4.6-19.1-8.7-27.8-42.3-44.6-26.1-13.3-82.9-35.4-99.7-35.4-15.7 0-20.2 20.2-38.9 20.2-18 0-31.3-15.1-48.1-15.1-16.1 0-26.7 11-34.8 33.6-27.5 77.6-26.3 74.3-26.1 78.3 0 24.8 97.6 106.1 228.5 106.1zM429 254.8c4.7 22 4.7 24.3 4.7 27.2 0 37.7-42.3 58.6-98 58.6-125.7 .1-235.9-73.6-235.9-122.3 0-6.8 1.4-13.5 4.1-19.7-45.2 2.3-103.8 10.3-103.8 62 0 84.7 200.6 189 359.5 189 121.8 0 152.5-55.1 152.5-98.6 0-34.2-29.6-73-82.9-96.2z"],"square-pied-piper":[448,512,["pied-piper-square"],"e01e","M32.1 419l-32 60.2 .8-328C.9 85.3 54.1 32 120.1 32l327.2 0C354.3 60.9 257.4 126.2 193.4 200.6 122.8 282 82.7 338 32.1 419zm416-387S305.3 98.8 261.7 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66l328.4 0c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z"],whatsapp:[448,512,[],"f232","M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z"],imdb:[448,512,[],"f2d8","M89.5 323.6l-35.6 0 0-137.4 35.6 0 0 137.4zm66.6-73.1l9.1-64.3 46.3 0 0 137.4-31 0 0-92.7-13.4 92.7-21.3 0-13-90.7-.1 90.7-31.2 0 0-137.4 46.1 0c.5 8.3 2.8 18.1 4.3 29.4l4.2 34.9zm67.6 73.1l0-137.4 26.6 0c17 0 27 .9 33 2.4 6.1 1.7 10.7 4.2 13.9 7.9 3.1 3.3 5.1 6.6 5.8 12 .9 4.4 1.4 13.1 1.4 26.2l0 48.2c0 12.3-.7 20.5-1.9 24.7-1.1 4.1-3.1 7.4-6 9.7-2.8 2.4-6.4 4.1-10.7 5-4.2 .8-10.6 1.3-19.1 1.3l-43 0zm35.5-113.9l0 89.4c5.1 0 8.3-1 9.4-2.3 1.1-2 1.8-7.6 1.8-16.7l0-53.3c0-6.2-.1-10.2-.7-12-.3-1.8-1.2-3-2.6-4.7-1.4 0-4.1-.4-7.9-.4zm57.3 113.9l0-137.4 34.1 0 0 43.9c2.9-2.4 6.1-4.9 9.5-6.6 3.6-1.5 8.8-2.4 12.8-2.4 4.8 0 8.9 .8 12.3 2.2 3.4 1.5 6 3.5 8 6.2 1.7 2.6 2.7 5.3 3.1 7.8 .4 2.6-.2 8-.2 16.2l0 38.6c0 8.2 .2 14.3-.8 18.4-1.1 4-3.8 7.6-7.8 9.6-4.1 3.9-8.9 5.3-14.6 5.3-4 0-9.2-.9-12.7-2.5-3.5-1.8-6.7-4.5-9.6-8l-2.1 8.7-32 0zm45.1-20.7c.7-1.8 1-6 1-12.5l0-35.4c0-5.6-.3-9.5-1.1-11.2-.7-1.9-3.7-2.7-5.8-2.7-2 0-3.4 .8-4.1 2.3-.6 1.5-1 5.4-1 11.6l0 36.4c0 6.1 .4 10 1.2 11.6 .6 1.7 2.1 2.5 4.1 2.5 2.2 0 4.2-.8 5.7-2.6zM418.4 32c15.7 1.2 28.7 15.2 28.7 31.9l0 384.2c0 16.4-11.9 30.4-28.2 31-.3 0-.5 .9-.8 .9L29.9 480c-.3 0-.6-.9-.8-.1-15.7-1.4-27.9-13.8-29-30.2L0 61.8C1.1 45.9 13.8 33.1 30.3 31.1l387.4 0c.2 0 .5 .9 .7 .9zM30.3 41.3C19 42 10 51 9.3 62.4l0 387.3c.4 5.4 2.7 10.5 6.4 14.3 3.8 3.9 8.8 6.3 14.2 6.7l388.2 0c11.5-1 20.6-11.6 20.6-22.6l0-384.2c0-5.7-2.1-11.3-6-15.5s-9.3-6.8-15-7.2l-387.4 0z"],python:[448,512,[],"f3e2","M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2l-40.1 0 0 47.4c0 36.8-31.2 67.8-66.8 67.8l-106.8 0c-29.2 0-53.4 25-53.4 54.3l0 101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3l0-40.7-106.7 0 0-13.6 160.2 0c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 444.7a20.4 20.4 0 1 1 0-40.7 20.4 20.4 0 1 1 0 40.7zM167.8 248.1l106.8 0c29.7 0 53.4-24.5 53.4-54.3l0-101.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8 .1-45.2 8-53.4 24.7-53.4 55.6l0 40.7 106.9 0 0 13.6-147 0c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2l36.7 0 0-48.8c0-35.3 30.5-66.4 66.8-66.4zM161.2 64.7a20.4 20.4 0 1 1 0 40.8 20.4 20.4 0 1 1 0-40.8z"],"cash-app":[448,512,[],"e7d4","M440.3 96.9c-9.4-26.5-30.3-47.4-56.8-57-24.1-7.9-46.3-7.9-91.6-7.9L156 32c-44.8 0-67.2 0-91.3 7.5-26.5 9.6-47.4 30.5-57 57-7.7 24.3-7.7 46.7-7.7 91.7L0 323.8c0 45.2 0 67.4 7.5 91.5 9.6 26.5 30.5 47.4 57 57 24.3 7.7 46.7 7.7 91.6 7.7l135.7 0c45 0 67.4 0 91.6-7.7 26.5-9.6 47.4-30.5 57-57 7.7-24.3 7.7-46.7 7.7-91.5l0-135.5c0-45 0-67.4-7.7-91.5zM323.1 185.4l-25.8 21.1c-2.3 1.9-5.5 1.5-7.3-.9-13.2-16.2-33.7-25.4-56.1-25.4-25 0-40.6 10.9-40.6 26.2-.4 12.8 11.7 19.6 49.1 27.7 47.2 10 68.7 29.7 68.7 62.7 0 41.4-33.7 71.9-86.4 75.3l-5.1 24.5c-.4 2.3-2.6 4.1-5.1 4.1l-40.6 0c-3.4 0-5.8-3.2-5.1-6.4l6.4-27.3c-26-7.5-47.2-22-59.3-39.7-1.5-2.3-1.1-5.3 1.1-7l28.2-22c2.3-1.9 5.8-1.3 7.5 1.1 14.9 20.9 38 33.3 65.7 33.3 25 0 43.8-12.2 43.8-29.7 0-13.4-9.4-19.6-41.2-26.2-54.2-11.7-75.8-31.8-75.8-64.9 0-38.4 32.2-67.2 80.9-71l5.3-25.4c.4-2.3 2.6-4.1 5.1-4.1l39.9 0c3.2 0 5.8 3 5.1 6.2l-6.2 28.4c20.9 6.4 38 17.9 48.7 32.2 1.7 2.1 1.3 5.3-.9 7z"],"pinterest-p":[384,512,[],"f231","M204 6.5c-102.6 0-204 68.4-204 179.1 0 70.4 39.6 110.4 63.6 110.4 9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8 0-99.3-85.8-164.1-180-164.1z"],whmcs:[448,512,[],"f40d","M448 161l0-21.3-28.5-8.8-2.2-10.4 20.1-20.7-10.4-19.4-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4-22.6 0-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6 .3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zM328.8 92.6a56.8 56.8 0 1 1 0 113.6 56.8 56.8 0 1 1 0-113.6zm72.3 130l46.9 14.5 0 39.9-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1 .5-40.9 53.5-14.7 5.7-19.7-38.9-39.4 20.7-35.8 53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4 22.7-6.1 11.6-52 42.4 0 11.6 45.9-22.6-5.9-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7c0 3.2-.1 9.6-.3 19.3-47.5 10.4-83.3 52.8-83.3 103.5 0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8 9.9 .1 16.6 .2 20.1 .3l1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z"],joget:[512,512,[],"f3b7","M386.1 45C345.6 19.9 300.6 8 256.2 8 173 8 91.8 49.9 44.9 125.9-27 242.5 9.3 395.2 125.9 467.1s269.3 35.6 341.2-80.9C539 269.6 502.7 116.8 386.1 45zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zM237.1 281.9c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7-128.6 8.7-167.3 99.3-178.3 140.2-8.8-49.7-.1-102.7 28.5-149.1 61.9-100.5 193.5-131.7 294-69.8 74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3L393.5 266 440 242.6s3.6-9.5-19.1-15.5z"],"square-youtube":[448,512,[61798,"youtube-square"],"f431","M282 256.2l-95.2-54.1 0 108.2 95.2-54.1zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zm14.4 136.1c7.6 28.6 7.6 88.2 7.6 88.2s0 59.6-7.6 88.1c-4.2 15.8-16.5 27.7-32.2 31.9-28.3 7.7-142.2 7.7-142.2 7.7s-113.9 0-142.2-7.6c-15.7-4.2-28-16.1-32.2-31.9-7.6-28.6-7.6-88.2-7.6-88.2s0-59.7 7.6-88.2c4.2-15.8 16.5-28.2 32.2-32.4 28.3-7.7 142.2-7.7 142.2-7.7s113.9 0 142.2 7.7c15.7 4.2 28 16.6 32.2 32.4z"],atlassian:[512,512,[],"f77b","M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7l175 0c5.8 .1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4L497 512c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6 .1z"],"pied-piper-hat":[640,512,[],"f4e5","M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9 .6 2.8 .8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6-73.4 1.1-97.5-33.5-97.5-35.1 0-1.1 .6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3 73.6-140.3 139.2-189.4 210.6-189.4 0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z"],"internet-explorer":[512,512,[],"f26b","M483.1 159.7c10.9-24.6 21.4-60.4 21.4-87.9 0-72.7-79.6-98.4-209.7-38.6-107.6-7.2-211.2 73.7-237.1 186.5 30.9-34.9 78.3-82.3 122-101.2-54.3 48.3-100.6 109.4-135.7 173.2-20.7 37.9-44 99.2-44 145 0 98.6 92.9 86.5 180.3 42 31.4 15.4 66.6 15.6 101.7 15.6 97.1 0 184.2-54.3 216.8-146l-120.8 0c-52.5 88.6-196.8 53-196.8-47.4l328.8 0c6.4-43.6-1.7-95.7-26.9-141.2zM64.6 346.9C82.3 398 118.3 442.7 164.8 470.2 76.1 519.1-8.4 499.3 64.6 346.9zM180.5 238c2-55.2 50.3-94.9 104-94.9 53.4 0 102 39.7 104 94.9l-208 0zM365.1 50.4c21.4-10.3 48.6-22 72.6-22 31.4 0 54.3 21.7 54.3 53.7 0 20-7.4 49-14.6 67.9-26.3-42.3-66-81.6-112.3-99.6z"],airbnb:[448,512,[],"f834","M224.5 373.1c-25.2-31.7-40.1-59.4-45-83.2-22.5-88 112.6-88 90.1 0-5.4 24.2-20.3 52-45 83.2l-.1 0zm138.2 73.2c-42.1 18.3-83.7-10.9-119.3-50.5 103.9-130.1 46.1-200-18.8-200-54.9 0-85.2 46.5-73.3 100.5 6.9 29.2 25.2 62.4 54.4 99.5-32.5 36-60.5 52.7-85.2 54.9-50 7.4-89.1-41.1-71.3-91.1 15.1-39.2 111.7-231.2 115.9-241.6 15.8-30.1 25.6-57.4 59.4-57.4 32.3 0 43.4 25.9 60.4 59.9 36 70.6 89.4 177.5 114.8 239.1 13.2 33.1-1.4 71.3-37 86.6zm47-136.1c-128.9-274.3-136-278.2-185.1-278.2-45.5 0-64.9 31.7-84.7 72.8-106.2 212.3-116.4 242.4-117.3 245-25.2 69.3 26.7 130.2 89.6 130.2 21.7 0 60.6-6.1 112.4-62.4 58.7 63.8 101.3 62.4 112.4 62.4 62.9 .1 114.9-60.9 89.6-130.2 0-3.9-16.8-38.9-16.8-39.6l0 0z"],js:[448,512,[],"f3b8","M0 32l0 448 448 0 0-448-448 0zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5l0-143.1 42.1 0 0 143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z"],quinscape:[512,512,[],"f459","M313.7 474.6l-1 0c-41.9 0-82.1-16.7-111.8-46.3s-46.3-69.9-46.3-111.8 16.7-82.1 46.3-111.8 69.9-46.3 111.8-46.3c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7 0-135.1-109.5-244.6-244.6-244.6S12.1 117.5 12.1 252.6 121.6 497.2 256.6 497.2c23.8 .2 47.6-3.2 70.4-10.1-5.2-3.5-8.9-8.1-13.3-12.5zm78.3-169a99.2 99.2 0 1 0 0 198.4 99.2 99.2 0 1 0 0-198.4z"],adversal:[512,512,[],"f36a","M482.1 32L28.7 32C5.8 32 0 37.9 0 60.9L0 451.1C0 474.4 5.8 480 28.7 480l453.4 0c24.4 0 29.9-5.2 29.9-29.7l0-388.1c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4 .4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9l-394.9 0c-7.4 0-18.2 4.8-17.8-10.7 .4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5l0 291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5l0-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6 .4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1 .2-.1 .3-.1 .5zM417.4 334.1c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2 .4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zM122.6 369.4c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z"],"creative-commons":[512,512,[],"f25e","M253.8 214.9l-33.2 17.3c-9.4-19.6-25.2-19.9-27.5-19.9-22.1 0-33.2 14.6-33.2 43.8 0 23.6 9.2 43.8 33.2 43.8 14.5 0 24.6-7.1 30.6-21.3l30.6 15.5c-6.2 11.5-25.7 39-65.1 39-22.6 0-74-10.3-74-77 0-58.7 43-77.1 72.6-77.1 30.7 0 52.7 11.9 66 35.9zm143 0l-32.8 17.3c-9.5-19.8-25.7-19.9-27.9-19.9-22.1 0-33.2 14.6-33.2 43.8 0 23.5 9.2 43.8 33.2 43.8 14.4 0 24.6-7.1 30.5-21.3l31 15.5c-2.1 3.8-21.4 39-65.1 39-22.7 0-74-9.9-74-77 0-58.7 43-77.1 72.6-77.1 30.7 0 52.6 11.9 65.6 35.9zM255.6 8C112.7 8 8 123.1 8 256.1 8 394.5 121.6 504.1 255.6 504.1 385.5 504.1 504 403.2 504 256.1 504 118.2 397.4 8 255.6 8zm.9 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.4-203.3 203.7-203.3 112.5 0 202.8 89.5 202.8 203.3 0 121.7-99.7 202.8-202.8 202.8z"],notion:[512,512,[],"e7d9","M94.9 100.2c14.9 12.1 20.5 11.2 48.6 9.3L407.8 93.6c5.6 0 .9-5.6-.9-6.5L362.9 55.4c-8.4-6.5-19.6-14-41.1-12.1L65.9 61.9c-9.3 .9-11.2 5.6-7.5 9.3l36.4 28.9zm15.9 61.6l0 278.1c0 14.9 7.5 20.5 24.3 19.6l290.5-16.8c16.8-.9 18.7-11.2 18.7-23.3l0-276.2c0-12.1-4.7-18.7-15-17.7L125.7 143.1c-11.2 .9-14.9 6.5-14.9 18.7zm286.7 14.9c1.9 8.4 0 16.8-8.4 17.8l-14 2.8 0 205.3c-12.2 6.5-23.4 10.3-32.7 10.3-15 0-18.7-4.7-29.9-18.7l-91.5-143.7 0 139 29 6.5s0 16.8-23.4 16.8l-64.4 3.7c-1.9-3.7 0-13.1 6.5-14.9l16.8-4.7 0-183.8-23.3-1.9c-1.9-8.4 2.8-20.5 15.9-21.5l69.1-4.7 95.3 145.6 0-128.8-24.3-2.8c-1.9-10.3 5.6-17.7 14.9-18.7l64.5-3.8zM44.4 36.7L310.6 17.1c32.7-2.8 41.1-.9 61.6 14l85 59.7c14 10.3 18.7 13.1 18.7 24.3l0 327.6c0 20.5-7.5 32.7-33.6 34.5L133.2 495.8c-19.6 .9-29-1.9-39.2-14.9L31.4 399.7c-11.2-14.9-15.9-26.1-15.9-39.2l0-291.2c0-16.8 7.5-30.8 28.9-32.7z"],chromecast:[512,512,[],"f838","M448 64L64.2 64c-23.6 0-42.7 19.1-42.7 42.7l0 63.9 42.7 0 0-63.9 383.8 0 0 298.6-149.2 0 0 42.7 149.4 0c23.6 0 42.7-19.1 42.7-42.7l0-298.6C490.9 83.1 471.6 64 448 64zM21.5 383.6l0 63.9 63.9 0c0-35.3-28.6-63.9-63.9-63.9zm0-85l0 42.4c58.9 0 106.6 48.1 106.6 107l42.7 0c.1-82.4-66.9-149.3-149.3-149.4zM213.6 448l42.7 0C255.8 318.5 151 213.7 21.5 213.4l0 42.4c106-.2 192 86.2 192.1 192.2z"],"wikipedia-w":[640,512,[],"f266","M640 51.2l-.3 12.2c-28.1 .8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6l-13.6 0-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3 .3-15 0-15-.3-46.9-109.7-96.1-218.6-143.1-328.6-11.4-26.7-49.4-70-75.6-69.7 0-3.1-.3-10-.3-14.2l161.9 0 0 13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7l0-13.9 142.5 .3 0 13.1c-19.4 .6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4 .3-3.6 0-10.3 .3-13.6 44.4-.3 111.1-.3 123.1-.6l0 13.6C462.4 64 439.1 76 426.8 94.9L367.6 217.7c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3l0-13.9 127.8 1.1 .2 .5z"],sitrox:[448,512,[],"e44a","M212.4 0l0 0 235.6 0 0 128-384 0C64 57.6 141.8 .5 212.4 0zm24.8 192l0 0c69.9 .5 146.7 57.6 146.7 128l-173.2 0 0 0C140.9 319.6 64 262.4 64 192l173.3 0zm-1.7 320c70.7-.5 148.4-57.6 148.4-128l-384 0 0 128 235.6 0 0 0z"],"square-gitlab":[448,512,["gitlab-square"],"e5ae","M0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96zm337.5 12.5l44.6 116.4 .4 1.2c5.6 16.8 7.2 35.2 2.3 52.5-5 17.2-15.4 32.4-29.8 43.3l-.2 .1-68.4 51.2-54.1 40.9c-.5 .2-1.1 .5-1.7 .8-2 1-4.4 2-6.7 2-3 0-6.8-1.8-8.3-2.8l-54.2-40.9-67.9-50.9-.4-.3-.2-.1c-14.3-10.8-24.8-26-29.7-43.3s-4.2-35.7 2.2-52.5l.5-1.2 44.7-116.4c.9-2.3 2.5-4.3 4.5-5.6 1.6-1 3.4-1.6 5.2-1.8 1.3-.7 2.1-.4 3.4 .1 .6 .2 1.2 .5 2 .7 1 .4 1.6 .9 2.4 1.5 .6 .4 1.2 1 2.1 1.5 1.2 1.4 2.2 3 2.7 4.8l29.2 92.2 122.9 0 30.2-92.2c.5-1.8 1.4-3.4 2.6-4.8s2.8-2.4 4.5-3.1c1.7-.6 3.6-.9 5.4-.7s3.6 .8 5.2 1.8c2 1.3 3.7 3.3 4.6 5.6z"],shoelace:[512,512,[],"e60c","M405.2 331c2.2-1.1 4.4-2.3 6.5-3.7l8.3-4.8c1.5-1.1 4.4-3.4 8.7-6.7l.5-.5c3.4-3.4 7.2-5 11.3-4.9 1.8 0 3.9 .5 6.4 1.5l31-27.5c.9-.7 1.7-1.3 2.6-1.8l.2 0c3.3-1.9 6-1.8 8.2 .4 3.9 2.1 4.2 5.6 .9 10.6L457.2 322c.2 .5 .4 1 .4 1.5 .5 2.2 .3 4.4-.5 6.6-.7 1.5-1.8 2.9-3.1 4.2-1.4 1.4-2.7 2.8-4.2 4.2L431 352.2c-1.7 1.2-3.4 2.3-5.1 3.3-2.1 1.3-4.3 2.5-6.6 3.6-1 .4-1.9 .9-2.9 1.3-5.9 2.5-11.9 4.2-18.2 5-2.9 24.5-11.3 47.1-25.1 67.8-17.5 25.7-41.4 45.4-71.8 58.8-30.2 13.5-63 20.2-98.2 20.2-48.6-.5-88-11.4-118.2-32.8-35.1-25-52.6-57.9-52.6-99.1l0-5.6c1.2-28.1 9.5-54.6 24.8-79.8 15.1-24.9 37.1-41.7 66.1-50.5 14.9-4.4 29.9-6.6 45-6.6 15.5 0 31.6 2.9 48.1 8.6s35.2 15.5 55.9 29.5l54.1 36.3c15.1 9.8 28.8 16.5 41.2 20-2.6-25.1-11.7-46.6-27.3-64.5-15.7-18.1-35.6-31.3-59.9-39.7L257 220c-21.4-7.5-37.3-14.9-47.7-22.2-28.2-19.1-43.8-45.2-47-78.5l-.5-9.8c0-32.1 13-58.9 39-80.5 23-19.3 50.6-29 82.5-29 24 0 45.6 6.9 64.7 20.8 19.2 14 30.1 33.8 32.6 59.4l.5 10c0 18.6-4.8 34.5-14.4 47.7-9.8 13.2-18.5 19.9-26 19.9-1.6-.1-3.1-.3-4.5-.6l-34 32c-5.5 3-9.2 2.5-11.1-1.6-1.9-2.2-1.8-4.9 .5-8.2l.2-.2c.5-.7 1.2-1.5 2-2.4l31.6-30c-.4-1.5-.6-3.1-.6-4.8 0-4.1 1.6-7.6 4.9-10.4 13.8-12.4 20.8-26.7 20.8-42.8 0-16-6.1-29.5-18.2-40.4s-28.7-16.5-49.7-16.8c-26.2 0-47.8 7.9-64.7 23.7S192.6 89.9 192.6 112c0 17.8 6.9 33.9 20.6 48.3 13.6 14.2 34.6 25.4 63 33.5 39.8 11.5 70.2 31 91.3 58.3 18.7 24.2 29.1 51.3 31.3 81.4 2.2-.7 4.3-1.5 6.5-2.6l-.1 .1zM294.4 178.7c0 1.1 .6 1.6 1.8 1.6 .1 0 9.7-8.9 28.8-26.6 0-2.4-5.1 .9-15.3 10-10.2 9.2-15.3 14.2-15.3 14.9l0 .1zm8 6.4c0-1-.5-1.5-1.5-1.5-1.1 0-2.1 .5-2.9 1.6-1.9-.1-3.3 .1-4.2 .7-.4 .2-.5 .5-.5 .7 0 .7 .5 1.3 1.5 1.6l3.3 0c2.9-1.1 4.4-2.2 4.4-3.3l-.1 .2zM325 165.2c0-2.8-1.6-2.8-4.9 0-1.6 1.5-3.6 3.5-6 6.2-.8 .6-2.6 2.2-5.3 4.9-2.8 2.9-4.2 4.7-4.2 5.3l.2 1.3c.7 .2 1.2 .4 1.5 .4 .1 0 3.3-2.9 9.5-8.7s9.3-8.9 9.3-9.3l-.1-.1zm159.7 120l-30.6 27c1.8 1 3.2 2.4 4 4.2l30.2-27c.2-1.2 .1-2.2-.5-2.9-.6-.5-1.6-.9-3.1-1.3zm-1.6-.9l-.7-.7-27 21.9 1.6 2 26-23.1 .1-.1zM366.9 363.9c-8-2.1-15.4-4.6-22.2-7.5-15.3-6.2-34.3-17-57-32.4l-37.4-25.3c-15.8-10.1-30.2-17.6-43.2-22.6-13.1-4.9-26-7.3-38.6-7.3l-5.5 0c-32.2 1.7-57.2 13.8-75 36.2-16.6 20.8-25 45.3-25 73.6 0 31.8 12.8 56.7 38.2 74.7 25.4 18.1 60.2 27.1 104.4 27.1 34.7 0 64-6.2 87.8-18.6 23.7-12.4 42.1-28.8 55.2-49.2 9.8-15.5 15.9-31.8 18.2-48.8l.1 .1z"],sellcast:[448,512,[],"f2da","M353.5 32L94.8 32C42.7 32 .1 74.6 .1 126.6l0 258.7C.1 437.4 42.7 480 94.8 480l258.7 0c52.1 0 94.7-42.6 94.7-94.6l0-258.8c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8 .1 .1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8 .1 .1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z"],mix:[448,512,[],"f3cb","M0 64L0 412.9c0 56.2 88 58.1 88 0l0-238.6c7.9-52.9 88-50.4 88 6.5l0 175.3c0 57.9 96 58 96 0L272 240c5.3-54.7 88-52.5 88 4.3l0 23.8c0 59.9 88 56.6 88 0L448 64 0 64z"],"cc-apple-pay":[576,512,[],"f416","M302.2 218.4c0 17.2-10.5 27.1-29 27.1l-24.3 0 0-54.2 24.4 0c18.4 0 28.9 9.8 28.9 27.1zM349.7 281c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9l0-7.7-23.5 1.5c-13.3 .9-20.2 5.8-20.2 14.4zM576 79l0 352c0 26.5-21.5 48-48 48L48 479c-26.5 0-48-21.5-48-48L0 79C0 52.5 21.5 31 48 31l480 0c26.5 0 48 21.5 48 48zM127.8 197.2c8.4 .7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4 .3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5 .2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8l-51.2 0 0 136.4 21.2 0 0-46.6 29.3 0c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5l19.1 0c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2l0 7.5-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4l.4 0 0 16.4 19.6 0 0-68 .1 0zM516 210.9l-21.5 0-24.9 80.6-.4 0-24.9-80.6-22.3 0 35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3l0 16.4c1.2 .4 6.5 .5 8.1 .5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z"],brave:[448,512,[],"e63c","M145.6 0l157 0 44.7 50.8s39.3-10.9 57.8 7.6 33.8 34.9 33.8 34.9l-12 29.5 15.3 43.7s-44.9 170.2-50.1 191c-10.4 40.9-17.4 56.8-46.9 77.5s-82.9 56.8-91.6 62.2c-1.9 1.2-3.9 2.5-5.9 3.9-7.5 5.1-15.8 10.8-23.5 10.8s-16.1-5.7-23.5-10.8c-2-1.4-4-2.8-5.9-3.9-8.7-5.5-62.1-41.5-91.6-62.2s-36.5-36.6-46.9-77.5c-5.3-20.8-50.1-191-50.1-191L21.5 122.8 9.3 93.3s15.3-16.4 33.8-34.9 57.8-7.6 57.8-7.6L145.6 0zm78.5 407.6c3.7 0 8.9-4.7 13-8.4 .6-.5 1.2-1.1 1.7-1.5 4.2-3.7 47.8-37.5 51-39.8s5.4-6.5 1.9-8.7c-2.8-1.7-10-5.5-20.3-10.8-3-1.6-6.3-3.2-9.7-5-15.4-8-34.5-14.7-37.5-14.7s-22.1 6.8-37.5 14.7c-3.5 1.8-6.7 3.5-9.7 5-10.3 5.3-17.6 9.1-20.3 10.8-3.6 2.2-1.4 6.4 1.9 8.7s46.8 36.1 51 39.8c.5 .5 1.1 1 1.7 1.5 4.1 3.7 9.3 8.4 13 8.4l-.2 0zm0-165.7c4.7 0 17.6-3 26.4-5l2-.5c7.8-1.8 7.3-6.3 6.4-13-.1-.8-.2-1.6-.3-2.4-.6-6.1-5.8-33.1-9.1-50.3-1.1-5.8-2-10.5-2.4-12.9-1.5-8.1-.6-9.4 .7-11.3 .2-.3 .5-.7 .7-1.1 1.4-2.3 16-6.2 27.9-9.5 2.5-.7 4.8-1.3 6.9-1.9 10.6-3 32.4-.6 44.2 .6 1.8 .2 3.4 .4 4.7 .5 9.6 .9 10.4 2.3 7.2 3.8-2.3 1.1-16.2 6.3-28.7 10.9-4.7 1.8-9.2 3.5-12.8 4.8-1.5 .5-3 1.1-4.5 1.7-12.5 4.6-27.2 10-28.9 19.4-1.5 8.3 5.2 19.9 11.3 30.3 1.6 2.8 3.2 5.5 4.6 8.1 6.3 11.9 6.5 13.3 6.1 18.1-.4 3.9-14.5 12.7-22.4 17.6-1.8 1.1-3.3 2.1-4.2 2.7-.8 .5-2.1 1.4-3.8 2.4-8.6 5.2-26.3 16-26.3 22.5 0 7.8 24.6 28.1 32.4 33.2s28.9 16.1 37.9 17.8 23-8.5 31.2-23.8c7.7-14.4 1.7-28.5-3.2-40l-.9-2.2c-4.5-10.6 1.9-17 6.2-21.3 .5-.5 1-1 1.4-1.4l43-45.7c1.3-1.3 2.5-2.6 3.7-3.8 5.8-5.7 10.8-10.5 10.8-22.8 0-14.9-57.5-84.5-57.5-84.5s-48.5 9.3-55.1 9.3c-5.2 0-15.3-3.5-25.8-7.1-2.7-.9-5.4-1.9-8-2.7-13-4.3-21.8-4.4-21.8-4.4s-8.7 0-21.8 4.4c-2.7 .9-5.4 1.8-8 2.7-10.5 3.6-20.6 7.1-25.8 7.1-6.5 0-55.1-9.3-55.1-9.3s-57.5 69.6-57.5 84.5c0 12.3 4.9 17.1 10.8 22.8 1.2 1.2 2.5 2.4 3.7 3.8l43.1 45.8c.4 .5 .9 .9 1.4 1.4 4.3 4.3 10.6 10.7 6.2 21.3l-.9 2.2c-4.9 11.5-11 25.6-3.2 40 8.2 15.3 22.2 25.5 31.2 23.8s30.1-12.7 37.9-17.8 32.4-25.4 32.4-33.2c0-6.5-17.7-17.3-26.3-22.5-1.7-1-3.1-1.9-3.8-2.4-.9-.6-2.4-1.5-4.2-2.7-7.9-4.9-22-13.7-22.4-17.6-.4-4.8-.3-6.2 6.1-18.1 1.3-2.5 2.9-5.3 4.6-8.1 6-10.4 12.8-22 11.3-30.3-1.7-9.4-16.4-14.8-28.9-19.4-1.6-.6-3.1-1.1-4.5-1.7-3.6-1.4-8.1-3.1-12.8-4.8l-.1 0c-12.5-4.7-26.4-9.9-28.7-10.9-3.2-1.5-2.3-2.8 7.2-3.8 1.3-.1 2.9-.3 4.7-.5 11.8-1.3 33.6-3.6 44.2-.6 2.1 .6 4.4 1.2 6.9 1.9 11.9 3.2 26.5 7.2 27.9 9.5 .2 .4 .5 .7 .7 1.1 1.3 1.9 2.2 3.2 .7 11.3-.4 2.4-1.3 7.1-2.4 12.9-3.3 17.2-8.5 44.2-9.1 50.3-.1 .8-.2 1.7-.3 2.4-.8 6.7-1.4 11.2 6.4 13l2 .5c8.8 2 21.8 5 26.4 5l0-.1z"],etsy:[384,512,[],"f2d7","M384 348c-1.8 10.7-13.8 110-15.5 132-117.9-4.3-219.9-4.7-368.5 0l0-25.5c45.5-8.9 60.6-8 61-35.2 1.8-72.3 3.5-244.1 0-322-1-28.5-12.1-26.8-61-36L0 35.8c73.9 2.4 255.9 8.6 363-3.8-3.5 38.2-7.8 126.5-7.8 126.5l-23.2 0C320.9 115.7 313.2 68 277.3 68l-137 0c-10.2 0-10.7 3.5-10.7 9.8l0 163.8c58 .5 88.5-2.5 88.5-2.5 29.8-1 27.6-8.5 40.7-65.3l25.8 0c-4.4 101.4-3.9 61.8-1.8 160.3L257 334c-9.2-40.1-9.1-61-39.5-61.5 0 0-21.5-2-88-2l0 139c0 26 14.3 38.3 44.3 38.3l89.3 0c63.6 0 66.6-25 98.7-99.8l22.2 0z"],btc:[384,512,[],"f15a","M310.4 242.6c27.7-14.2 45.4-39.4 41.3-81.3-5.4-57.4-52.5-76.6-114.8-81.9l0-79.4-48.5 0 0 77.2c-12.6 0-25.5 .3-38.4 .6l0-77.8-48.5 0 0 79.4c-17.8 .5-38.6 .3-97.4 0l0 51.7c38.3-.7 58.4-3.1 63 21.4l0 217.4c-2.9 19.5-18.5 16.7-53.3 16.1L4 443.7c88.5 0 97.4 .3 97.4 .3l0 68 48.5 0 0-67.1c13.2 .3 26.2 .3 38.4 .3l0 66.7 48.5 0 0-68c81.3-4.4 135.6-24.9 142.9-101.5 5.7-61.4-23.3-88.9-69.3-99.9zM150.8 134.6c27.4 0 113.1-8.5 113.1 48.5 0 54.5-85.7 48.2-113.1 48.2l0-96.7zm0 251.8l0-106.5c32.8 0 133.1-9.1 133.1 53.3 0 60.2-100.4 53.3-133.1 53.3z"],adn:[512,512,[],"f170","M256 167.5l64.9 98.8-129.8 0 64.9-98.8zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm396.2 82.7l-148.2-223.2-148.2 223.2 30.4 0 33.6-51.7 168.6 0 33.6 51.7 30.2 0z"],"square-x-twitter":[448,512,[],"e61a","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm297.1 84l-103.8 118.6 122.1 161.4-95.6 0-74.8-97.9-85.7 97.9-47.5 0 111-126.9-117.1-153.1 98 0 67.7 89.5 78.2-89.5 47.5 0zM323.3 367.6l-169.9-224.7-28.3 0 171.8 224.7 26.4 0z"],"square-font-awesome":[448,512,[],"e5ad","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90 122c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2 0 1.8-.4 3.7-1.1 5.4L312 264 342.9 333.4c.7 1.7 1.1 3.5 1.1 5.4 0 7.3-5.9 13.2-13.2 13.2l-186.8 0 0 32-32 0 0-209.5c-6.1-4.8-10-12.2-10-20.5 0-14.4 11.6-26 26-26s26 11.6 26 26z"],forumbee:[448,512,[],"f211","M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35 239.7 35 256.4 37 272.4 40.5 149 87.5 51.9 186 5.8 309.7zM398.7 120.5c-13.7-17.5-29.7-32.7-47.8-45.3-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8-137.9 45.8-246.4 156.6-291.3 295.1 18.1 7.6 37 12.5 56.6 15.2 46.3-114.1 136.8-206.8 250.5-253.5z"],"42-group":[640,512,["innosoft"],"e080","M320 96l0 320c21 0 41.8-4.1 61.2-12.2s37-19.8 51.9-34.7 26.6-32.5 34.7-51.9 12.2-40.2 12.2-61.2-4.1-41.8-12.2-61.2-19.8-37.1-34.7-51.9-32.5-26.6-51.9-34.7-40.2-12.2-61.2-12.2zM0 256L160 416 320 256 160 96 0 256zm480 0c0 21 4.1 41.8 12.2 61.2s19.8 37 34.7 51.9 32.5 26.6 51.9 34.7 40.2 12.2 61.2 12.2l0-320c-42.4 0-83.1 16.9-113.1 46.9S480 213.6 480 256z"],"stumbleupon-circle":[512,512,[],"f1a3","M264 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 177.5c-9.8 0-17.8 8-17.8 17.8l0 106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9l0-46.5 57.3 0 0 45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8l0-108.4c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6l0 23.7-34.1 10.1-22.9-10.7 0-20.6c.1-9.6-7.9-17.6-17.7-17.6zM431.6 309.1c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2l0-46.8 22.9 10.7 34.1-10.1 0 47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6l0-48 57.3 0c-.1 45.9-.1 46.4-.1 46.4z"],symfony:[512,512,[],"f83d","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM389.7 151.5c-11.5 .4-19.4-6.4-19.8-16.9-.3-9.2 6.7-13.4 6.5-18.9-.2-6.5-10.2-6.8-12.9-6.7-39.8 1.3-48.6 57-58.9 113.8 21.4 3.2 36.6-.7 45.1-6.2 12-7.7-3.3-15.7-1.4-24.6 4-18.2 32.6-19 32 5.3-.4 17.9-25.9 41.8-77.6 35.7-10.8 59.5-18.4 115-58.2 161.7-29 34.5-58.4 39.8-71.6 40.3-24.6 .9-41-12.3-41.6-29.8-.6-17 14.4-26.3 24.3-26.6 21.9-.8 30.1 25.7 14.9 34-12.1 9.7 .1 12.6 2.1 12.6 10.4-.4 17.3-5.5 22.2-9 24-20 33.2-54.9 45.4-118.3 8.2-49.7 17-78 18.2-82-16.9-12.7-27.1-28.6-49.8-34.7-15.6-4.2-25.1-.6-31.8 7.8-7.9 10-5.3 23 2.4 30.7l12.6 14c15.5 17.9 24 31.9 20.8 50.6-5.1 29.9-40.7 52.9-82.9 39.9-36-11.1-42.7-36.6-38.4-50.6 7.5-24.2 42.4-11.7 34.6 13.6-2.8 8.6-4.9 8.7-6.3 13.1-4.6 14.8 41.8 28.4 51-1.4 4.5-14.5-5.3-21.7-22.2-39.9-28.5-31.7-16-65.5 2.9-79.7 52.8-39.4 100.5 17.5 110.6 25.8 37.2-109 100.5-105.5 102.4-105.5 25.2-.8 44.2 10.6 44.8 28.6 .2 7.7-4.2 22.6-19.5 23.1z"],salesforce:[640,512,[],"f83b","M249.4 245.6l-26.4 0c.7-5.2 3.3-14.1 13.6-14.1 6.8 0 12 3.8 12.7 14.1zM386 231.8c-.5 0-14.1-1.8-14.1 20s13.6 20 14.1 20c13 0 14.1-13.5 14.1-20 0-21.8-13.7-20-14.1-20zM142.8 255.5c-1.1 .9-2 2-2.5 3.2s-.8 2.7-.7 4c0 4.8 2.1 6.1 3.3 7 4.7 3.7 15.1 2.1 20.9 1l0-16.9c-5.3-1.1-16.7-2-20.9 1.6zM640.5 232c0 87.6-80 154.4-165.4 136.4-18.4 33-70.7 70.8-132.2 41.6-41.2 96-177.9 92.2-213.8-5.2-119.7 23.9-178.8-138.4-75.3-199.3-34.8-79.4 22.6-173.6 114.3-173.6 19.1 0 37.9 4.4 55 12.9s32 20.7 43.6 35.8c20.7-21.4 49.4-34.8 81.1-34.8 42.3 0 79 23.5 98.8 58.6 92.8-40.7 193.8 28.2 193.8 127.5zM120.9 263.8c0-11.8-11.7-15.2-17.9-17.2-5.3-2.1-13.4-3.5-13.4-8.9 0-9.5 17-6.7 25.2-2.1 0 0 1.2 .7 1.6-.5 .2-.7 2.4-6.6 2.6-7.3 .1-.3 .1-.6-.1-.8s-.4-.5-.6-.6c-12.3-7.6-40.7-8.5-40.7 12.7 0 12.5 11.5 15.4 17.9 17.2 4.7 1.6 13.2 3 13.2 8.7 0 4-3.5 7.1-9.2 7.1-6.9 0-13.5-2.2-19-6.3-.5-.2-1.4-.7-1.6 .7l-2.4 7.5c-.5 .9 .2 1.2 .2 1.4 1.8 1.4 10.3 6.6 22.8 6.6 13.2 0 21.4-7.1 21.4-18.1l0 0zm32-42.6c-10.1 0-18.7 3.2-21.4 5.2-.1 .1-.2 .2-.3 .3s-.1 .2-.1 .4 0 .3 0 .4 .1 .3 .2 .4l2.6 7.1c.1 .2 .2 .5 .5 .6s.5 .2 .7 .1c.6 0 6.8-4 16.9-4 4 0 7.1 .7 9.2 2.4 3.6 2.8 3.1 8.3 3.1 10.6-4.8-.3-19.1-3.4-29.4 3.8-2.3 1.6-4.3 3.8-5.5 6.3s-1.9 5.4-1.8 8.2c0 5.9 1.5 10.4 6.6 14.4 12.2 8.2 36.3 2 38.1 1.4 1.6-.3 3.5-.7 3.5-1.9l0-33.9c0-4.6 .3-21.6-22.8-21.6l0 .1zm46.6-21c0-.2 0-.3-.1-.5s-.1-.3-.3-.4-.2-.2-.4-.3-.3-.1-.5-.1l-9.8 0c-.2 0-.3 0-.5 .1s-.3 .1-.4 .3-.2 .2-.3 .4-.1 .3-.1 .5l0 79c0 .2 0 .3 .1 .5s.1 .3 .3 .4 .2 .2 .4 .3 .3 .1 .5 .1l9.9 0c.2 0 .3 0 .5-.1s.3-.1 .4-.3 .2-.2 .3-.4 .1-.3 .1-.5l-.1-79zm55.7 28.9c-2.1-2.3-6.8-7.5-17.6-7.5-3.5 0-14.2 .2-20.7 8.9-6.4 7.6-6.6 18.1-6.6 21.4 0 3.1 .2 14.3 7.1 21.2 2.6 2.9 9.1 8.2 22.8 8.2 10.8 0 16.5-2.3 18.6-3.8 .5-.2 .7-.7 .2-1.9l-2.3-6.8c-.1-.3-.3-.5-.6-.6s-.5-.2-.8-.1c-2.6 .9-6.3 2.8-15.3 2.8-17.4 0-16.8-14.7-16.9-16.7l37.2 0c.3 0 .5-.1 .7-.3s.4-.4 .4-.7c-.3 0 2.1-14.7-6.1-24.2l0 0zm36.7 52.7c13.2 0 21.4-7.1 21.4-18.1 0-11.8-11.7-15.2-17.9-17.2-4.1-1.7-13.4-3.4-13.4-8.9 0-3.8 3.3-6.4 8.5-6.4 5.8 .1 11.5 1.6 16.7 4.2 0 0 1.2 .7 1.6-.5 .2-.7 2.4-6.6 2.6-7.3 .1-.3 .1-.6-.1-.8s-.4-.5-.6-.6c-7.9-4.9-16.7-4.9-20.2-4.9-12 0-20.5 7.3-20.5 17.6 0 12.5 11.5 15.4 17.9 17.2 6.1 2 13.2 3.3 13.2 8.7 0 4-3.5 7.1-9.2 7.1-6.9 0-13.5-2.2-19-6.4-.1-.1-.3-.2-.5-.2s-.4 0-.5 .1-.3 .2-.4 .3-.2 .3-.2 .5l-2.3 7.5c-.5 .9 .2 1.2 .2 1.4 1.7 1.4 10.3 6.6 22.8 6.6l0 0zM357.6 224c0-.7-.2-1.2-1.2-1.2l-11.8 0c0-.1 .9-8.9 4.5-12.5 4.2-4.2 11.8-1.6 12-1.6 1.2 .5 1.4 0 1.6-.5l2.8-7.8c.7-.9 0-1.2-.2-1.4-5.1-2-17.4-2.9-24.5 4.2-5.5 5.5-7 13.9-8 19.5l-8.5 0c-.3 0-.6 .2-.8 .4s-.3 .5-.4 .8l-1.4 7.8c0 .7 .2 1.2 1.2 1.2l8.2 0c-8.5 47.9-8.7 50.2-10.3 55.5-1.1 3.6-3.3 6.9-5.9 7.8-.1 0-3.9 1.7-9.6-.2 0 0-.9-.5-1.4 .7-.2 .7-2.6 6.8-2.8 7.5s0 1.4 .5 1.4c5.1 2 13 1.8 17.9 0 6.3-2.3 9.7-7.9 11.5-12.9 2.8-7.7 2.8-9.8 11.8-59.7l12.2 0c.3 0 .6-.2 .8-.4s.3-.5 .4-.8l1.4-7.8zM411 240c-.6-1.7-5.1-18.1-25.2-18.1-15.2 0-23 10-25.2 18.1-1 3-3.2 14 0 23.5 .1 .3 4.4 18.1 25.2 18.1 15 0 22.9-9.6 25.2-18.1 3.2-9.6 1-20.5 0-23.5zm45.4-16.7c-5-1.7-16.6-1.9-22.1 5.4l0-4.5c0-.2 0-.3-.1-.5s-.1-.3-.3-.4-.2-.2-.4-.3-.3-.1-.5-.1l-9.4 0c-.2 0-.3 0-.5 .1s-.3 .1-.4 .3-.2 .2-.3 .4-.1 .3-.1 .5l0 55.3c0 .2 0 .3 .1 .5s.1 .3 .3 .4 .2 .2 .4 .3 .3 .1 .5 .1l9.6 0c.2 0 .3 0 .5-.1s.3-.1 .4-.3 .2-.2 .3-.4 .1-.3 .1-.5l0-27.8c0-2.9 .1-11.4 4.5-15.1 4.9-4.9 12-3.4 13.4-3.1 .3 0 .6-.1 .8-.3s.4-.4 .6-.7c1.2-2.6 2.2-5.3 3.1-8 .1-.3 .1-.5 0-.8s-.3-.5-.5-.6l0 0zm46.8 54.1l-2.1-7.3c-.5-1.2-1.4-.7-1.4-.7-4.2 1.8-10.1 1.9-11.3 1.9-4.6 0-17.2-1.1-17.2-19.8 0-6.2 1.8-19.8 16.5-19.8 3.9-.1 7.8 .5 11.5 1.6 0 0 .9 .5 1.2-.7 .9-2.6 1.6-4.5 2.6-7.5 .2-.9-.5-1.2-.7-1.2-11.6-3.9-22.3-2.5-27.8 0-1.6 .7-16.2 6.5-16.2 27.5 0 2.9-.6 30.1 28.9 30.1 5.3 0 10.6-1 15.5-2.8 .2-.2 .4-.4 .5-.6s.1-.5 0-.8l0 0zm53.9-39.5c-.8-3-5.4-16.2-22.3-16.2-16 0-23.5 10.1-25.6 18.6-1.2 3.8-1.7 7.8-1.7 11.8 0 25.9 18.8 29.4 29.9 29.4 10.8 0 16.5-2.3 18.6-3.8 .5-.2 .7-.7 .2-1.9l-2.4-6.8c-.1-.3-.3-.5-.6-.6s-.6-.2-.8-.1c-2.6 .9-6.3 2.8-15.3 2.8-17.4 0-16.9-14.7-16.9-16.7l37.2 0c.3 0 .5-.1 .7-.3s.4-.4 .4-.7c-.2 0 .9-7.1-1.4-15.5l0 0zm-23.3-6.4c-10.3 0-13 9-13.6 14.1l26.4 0c-.9-11.9-7.6-14.1-12.7-14.1l0 0z"],sourcetree:[448,512,[],"f7d3","M427.4 203c0-112.1-90.9-203-203-203-112.1-.2-203 90.6-203.2 202.6-.1 43 13.5 84.8 38.7 119.6s60.9 60.6 101.8 73.8l0 101.7c0 3.8 1.5 7.4 4.2 10.1s6.3 4.2 10.1 4.2l96.4 0c3.8 0 7.4-1.5 10.1-4.2s4.2-6.3 4.2-10.1l0-101.6c40.8-13.2 76.5-39 101.7-73.7s38.9-76.5 39-119.4zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z"],"linkedin-in":[448,512,[],"f0e1","M100.3 448l-92.9 0 0-299.1 92.9 0 0 299.1zM53.8 108.1C24.1 108.1 0 83.5 0 53.8 0 39.5 5.7 25.9 15.8 15.8s23.8-15.8 38-15.8 27.9 5.7 38 15.8 15.8 23.8 15.8 38c0 29.7-24.1 54.3-53.8 54.3zM447.9 448l-92.7 0 0-145.6c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7l0 148.1-92.8 0 0-299.1 89.1 0 0 40.8 1.3 0c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3l0 164.3-.1 0z"],html5:[384,512,[],"f13b","M0 32L34.9 427.8 191.5 480 349.1 427.8 384 32 0 32zM308.2 159.9l-183.8 0 4.1 49.4 175.6 0-13.6 148.4-97.9 27 0 .3-1.1 0-98.7-27.3-6-75.8 47.7 0 3.5 38.1 53.5 14.5 53.7-14.5 6-62.2-166.9 0-12.8-145.6 241.1 0-4.4 47.7z"],rust:[512,512,[],"e07a","M508.5 249.8l-21.8-13.5c-.2-2-.3-3.9-.5-5.9l18.7-17.5c.9-.9 1.6-1.9 2-3.1s.5-2.5 .2-3.7-.8-2.4-1.6-3.3-1.8-1.7-3-2.1l-24-9c-.5-1.9-1.1-3.8-1.7-5.6l15-20.8c.7-1 1.2-2.2 1.3-3.4s0-2.5-.5-3.7-1.2-2.2-2.2-2.9-2.1-1.3-3.4-1.5l-25.4-4.2c-.9-1.7-1.8-3.4-2.7-5.2l10.7-23.4c.5-1.1 .7-2.4 .6-3.6s-.5-2.4-1.2-3.5-1.6-1.9-2.8-2.5-2.4-.8-3.6-.8l-25.8 .9c-1.2-1.5-2.4-2.9-3.6-4.4L439 81.8c.3-1.2 .3-2.5-.1-3.7s-1-2.3-1.9-3.2-2-1.5-3.2-1.9-2.5-.4-3.7-.1L405 78.9c-1.4-1.2-2.9-2.4-4.4-3.6l.9-25.8c.1-1.3-.2-2.5-.8-3.6s-1.4-2.1-2.5-2.8-2.2-1.1-3.5-1.2-2.5 .1-3.7 .6L367.7 53.2c-1.7-.9-3.4-1.8-5.1-2.7l-4.2-25.4c-.2-1.2-.7-2.4-1.5-3.4s-1.8-1.7-2.9-2.2-2.4-.7-3.7-.5-2.4 .6-3.4 1.3L326 35.3c-1.9-.6-3.8-1.1-5.6-1.7l-9-24c-.4-1.2-1.2-2.2-2.1-3s-2.1-1.4-3.3-1.6-2.5-.2-3.7 .2-2.3 1.1-3.1 2L281.6 25.9c-2-.2-3.9-.4-5.9-.5L262.3 3.5c-.7-1.1-1.6-1.9-2.7-2.6s-2.3-.9-3.6-.9-2.5 .3-3.6 .9-2 1.5-2.7 2.6L236.2 25.3c-2 .2-3.9 .3-5.9 .6L212.9 7.1c-.9-.9-1.9-1.6-3.1-2s-2.5-.5-3.7-.2-2.4 .8-3.3 1.6-1.7 1.8-2.1 3l-9 24c-1.9 .6-3.8 1.1-5.7 1.7l-20.8-15c-1-.7-2.2-1.2-3.4-1.3s-2.5 0-3.7 .5-2.2 1.2-2.9 2.2-1.3 2.1-1.5 3.4l-4.2 25.4c-1.7 .9-3.4 1.8-5.2 2.7L120.9 42.6c-1.1-.5-2.4-.7-3.7-.6s-2.5 .5-3.5 1.2-1.9 1.7-2.5 2.8-.8 2.4-.8 3.6l.9 25.8c-1.5 1.2-3 2.4-4.4 3.6L81.8 73c-1.2-.3-2.5-.3-3.7 .1s-2.3 1-3.2 1.9-1.5 2-1.9 3.2-.4 2.5-.1 3.7L78.9 107c-1.2 1.4-2.4 2.9-3.6 4.4l-25.8-.9c-1.3 0-2.5 .2-3.6 .8s-2.1 1.4-2.8 2.4-1.1 2.2-1.2 3.5 .1 2.5 .6 3.6l10.7 23.4c-.9 1.7-1.8 3.4-2.7 5.2l-25.4 4.1c-1.2 .2-2.4 .7-3.4 1.5s-1.7 1.8-2.2 2.9-.7 2.4-.5 3.7 .6 2.4 1.3 3.4l15 20.8c-.6 1.9-1.1 3.8-1.7 5.7l-24 9c-1.2 .4-2.2 1.2-3 2.1s-1.4 2.1-1.6 3.3-.2 2.5 .2 3.7 1.1 2.3 2 3.1l18.7 17.5c-.2 2-.4 3.9-.6 5.9L3.5 249.8c-1.1 .7-1.9 1.6-2.6 2.7s-.9 2.3-.9 3.6 .3 2.5 .9 3.6 1.5 2 2.6 2.7l21.8 13.5c.2 2 .3 3.9 .6 5.9L7.1 299.1c-.9 .9-1.6 1.9-2 3.1s-.5 2.5-.2 3.7 .8 2.4 1.6 3.3 1.8 1.7 3 2.1l24 9c.6 1.9 1.1 3.8 1.7 5.6l-15 20.8c-.7 1-1.2 2.2-1.3 3.4s0 2.5 .5 3.7 1.2 2.2 2.2 2.9 2.1 1.3 3.4 1.5l25.4 4.2c.9 1.7 1.8 3.4 2.7 5.1L42.6 391.1c-.5 1.1-.7 2.4-.6 3.6s.5 2.5 1.2 3.5c.7 1.1 1.6 1.9 2.7 2.5s2.4 .8 3.6 .8l25.8-.9c1.2 1.5 2.4 2.9 3.6 4.4L73 430.2c-.3 1.2-.3 2.5 .1 3.7s1 2.3 1.9 3.2 2 1.5 3.2 1.9 2.5 .4 3.7 .1l25.2-5.9c1.5 1.2 2.9 2.4 4.4 3.6l-.9 25.8c0 1.3 .2 2.5 .8 3.6s1.4 2.1 2.5 2.8 2.2 1.1 3.5 1.2 2.5-.1 3.6-.6l23.4-10.7c1.7 .9 3.4 1.8 5.1 2.7l4.2 25.4c.2 1.2 .7 2.4 1.5 3.4s1.8 1.8 2.9 2.2 2.4 .7 3.7 .5 2.4-.6 3.4-1.3l20.8-15c1.9 .6 3.8 1.1 5.6 1.7l9 24c.4 1.2 1.2 2.2 2.1 3s2.1 1.4 3.3 1.6 2.5 .2 3.7-.2 2.3-1.1 3.1-2l17.5-18.7c2 .2 3.9 .4 5.9 .6l13.5 21.8c.7 1.1 1.6 1.9 2.7 2.6s2.3 .9 3.6 .9 2.5-.3 3.6-.9 2-1.5 2.7-2.6l13.5-21.8c2-.2 3.9-.3 5.9-.6l17.5 18.7c.9 .9 1.9 1.6 3.1 2s2.5 .5 3.7 .2 2.4-.8 3.3-1.6 1.7-1.8 2.1-3l9-24c1.9-.6 3.8-1.1 5.6-1.7l20.8 15c1 .7 2.2 1.2 3.4 1.3s2.5 0 3.7-.5 2.2-1.2 2.9-2.2 1.3-2.1 1.5-3.4l4.2-25.4c1.7-.9 3.4-1.8 5.1-2.7l23.4 10.7c1.1 .5 2.4 .7 3.6 .6s2.4-.5 3.5-1.2 1.9-1.6 2.5-2.8 .8-2.4 .8-3.6l-.9-25.8c1.5-1.2 2.9-2.4 4.4-3.6l25.2 5.9c1.2 .3 2.5 .3 3.7-.1s2.3-1 3.2-1.9 1.5-2 1.9-3.2 .4-2.5 .1-3.7L433.1 405c1.2-1.4 2.4-2.9 3.6-4.4l25.8 .9c1.3 .1 2.5-.2 3.6-.8s2.1-1.4 2.8-2.5c.7-1 1.1-2.2 1.2-3.5s-.1-2.5-.6-3.6l-10.7-23.4c.9-1.7 1.8-3.4 2.7-5.1l25.4-4.2c1.2-.2 2.4-.7 3.4-1.5s1.8-1.8 2.2-2.9 .7-2.4 .5-3.7-.6-2.4-1.3-3.4l-15-20.8c.6-1.9 1.1-3.8 1.7-5.6l24-9c1.2-.4 2.2-1.2 3-2.1s1.4-2.1 1.6-3.3 .2-2.5-.2-3.7-1.1-2.3-2-3.1l-18.7-17.5c.2-1.9 .4-3.9 .6-5.9l21.8-13.5c1.1-.7 1.9-1.6 2.6-2.7s.9-2.3 .9-3.6-.3-2.5-.9-3.6-1.5-2-2.6-2.7l0 0zm-151 129.1c-3.6-.8-7.4-.1-10.5 1.9s-5.3 5.2-6 8.8l-7.6 35.7c-24.6 11.1-51.3 16.8-78.3 16.7s-53.6-6.1-78.1-17.4l-7.6-35.7c-.4-1.8-1.1-3.5-2.1-5s-2.4-2.8-3.9-3.8-3.2-1.7-5-2-3.6-.3-5.4 .1l-31.5 6.8c-5.8-6-11.3-12.5-16.3-19.2l153.2 0c1.7 0 2.9-.3 2.9-1.9l0-54.2c0-1.6-1.2-1.9-2.9-1.9l-44.8 0 0-34.4 48.5 0c4.4 0 23.7 1.3 29.8 25.9 1.9 7.5 6.2 32.1 9.1 40 2.9 8.8 14.6 26.5 27.1 26.5l79 0c-5.3 7.1-11.1 13.8-17.3 20.1l-32.1-6.9zm25.8 34.5c0 3-.9 6-2.6 8.5s-4 4.5-6.8 5.6-5.8 1.5-8.8 .9-5.7-2-7.8-4.2-3.6-4.8-4.2-7.8-.3-6 .8-8.8 3.1-5.2 5.6-6.9 5.4-2.6 8.5-2.6l.4 0c4 .1 7.7 1.8 10.5 4.6s4.3 6.7 4.3 10.6l.1 0zm-225.6-.7c0 3-.9 6-2.6 8.5s-4.1 4.5-6.8 5.6-5.8 1.5-8.8 .9-5.7-2-7.8-4.2-3.6-4.8-4.2-7.8-.3-6 .9-8.8 3.1-5.2 5.6-6.8 5.4-2.6 8.5-2.6l.5 0c4 .1 7.7 1.8 10.5 4.6s4.3 6.7 4.3 10.6l.1 0zM69.6 234.2l32.8-14.6c1.7-.7 3.2-1.8 4.4-3.1s2.2-2.9 2.9-4.6 1-3.5 .9-5.3-.5-3.6-1.2-5.3l-6.8-15.2 26.6 0 0 119.7-53.6 0c-6.6-23.2-8.7-47.6-6.1-71.6zM58.3 198.1c0-2 .4-4 1.2-5.8s1.9-3.5 3.3-4.9 3.1-2.5 4.9-3.3 3.8-1.2 5.8-1.2l.5 0c3 .1 5.9 1 8.3 2.8s4.3 4.1 5.4 6.9 1.3 5.8 .7 8.8-2.1 5.6-4.3 7.7-4.9 3.5-7.8 4.1-6 .2-8.7-.9-5.1-3.1-6.8-5.6-2.5-5.4-2.5-8.4l0 0zm155.2 24.5l0-35.3 63.3 0c3.3 0 23.1 3.8 23.1 18.6 0 12.3-15.2 16.7-27.7 16.7l-58.7 0zM399 306.7c-9.8 1.1-20.6-4.1-22-10.1-5.8-32.5-15.4-39.4-30.6-51.4 18.9-12 38.5-29.6 38.5-53.3 0-25.5-17.5-41.6-29.4-49.5-16.8-11-35.3-13.2-40.3-13.2l-198.9 0c27.5-30.7 64.4-51.5 104.9-59.2l23.5 24.6c1.3 1.3 2.8 2.4 4.4 3.1s3.5 1.1 5.3 1.2 3.6-.3 5.3-.9 3.2-1.7 4.6-2.9l26.3-25c26.8 5 52.1 15.8 74.3 31.6s40.6 36.2 54.1 59.9l-18 40.6c-1.5 3.4-1.5 7.2-.2 10.6s3.9 6.2 7.3 7.7l34.6 15.3c1.1 10.8 1.2 21.7 .4 32.5l-19.3 0c-1.9 0-2.7 1.3-2.7 3.1l0 8.8c0 20.8-11.7 25.3-22 26.5zM240 60.2c0-4 1.6-7.9 4.5-10.7s6.7-4.5 10.7-4.5l.4 0c3 .1 5.9 1 8.4 2.8s4.3 4.1 5.4 6.9 1.3 5.8 .7 8.8-2.1 5.6-4.3 7.7-4.9 3.5-7.8 4-6 .2-8.7-.9-5.1-3.1-6.8-5.6-2.5-5.4-2.5-8.4zM436.8 214c-2 0-4-.4-5.8-1.2s-3.5-1.9-4.9-3.3-2.5-3.1-3.3-4.9-1.2-3.8-1.2-5.8 .4-4 1.2-5.8 1.9-3.5 3.3-4.9 3.1-2.5 4.9-3.3 3.8-1.2 5.8-1.2l.4 0c4 .1 7.9 1.7 10.7 4.6s4.4 6.8 4.3 10.8-1.7 7.9-4.6 10.7-6.8 4.4-10.8 4.3z"],hornbill:[512,512,[],"f592","M76.8 370.3c1 7.8-.4 15.8-4.1 22.8s-9.6 12.6-16.7 16.1-15.1 4.7-22.9 3.3-15-5.1-20.6-10.7-9.2-12.9-10.5-20.7 0-15.8 3.6-22.9 9.3-12.8 16.3-16.5 15-5 22.9-3.9c-78.3-111.3 52-190.5 52-190.5-5.9 43-8.2 91.2-8.2 91.2-67.3 41.5 .9 64.1 39.8 72.9 9.9 27 27.8 50.2 51.4 66.7s51.6 25.3 80.3 25.3c1.9 0 3.8-.2 5.7-.3l.1 18.9c-99.2 1.4-158.7-29.1-188.9-51.6zm108-327.7c.9-7.2-.2-14.6-3.4-21.2-3-6.2-7.6-11.5-13.4-15.3s-12.5-5.9-19.4-6.2-13.8 1.4-19.8 4.7-11.1 8.3-14.5 14.3-5.2 12.8-5 19.7 2.2 13.7 5.9 19.5 8.9 10.6 15.1 13.6 13.1 4.4 20 3.9c-22.6 29.9-53.8 89.6-52.4 190l21.8-.2c0-.9-.1-1.8-.1-2.7 0-28 8.4-55.3 24.1-78.5s37.9-41.2 63.8-51.6c8-37.7 30.7-114.3 73.8-44.3 0 0 48.1 2.4 91.2 8.2 0 0-77.8-128-187.6-54.1l0 0zM489 176.8c6.3-3 11.7-7.7 15.5-13.6s5.9-12.7 6.1-19.8-1.6-14-5.2-20-8.7-11-14.9-14.3-13.2-4.8-20.2-4.4-13.8 2.8-19.5 6.9-10.2 9.6-13 16.1-3.7 13.6-2.7 20.5c-31.7-21.9-89.8-49.1-183.4-47.7l.1 22.5c2.7-.2 5.4-.4 8.1-.4 28.1 0 55.6 8.5 78.9 24.3s41.2 38.3 51.6 64.5c39.1 9 105.1 31.6 38.5 72.5 0 0-2.3 48.1-8.2 91.2 0 0 133.4-81.2 49-194.6 6.6 .6 13.3-.6 19.3-3.5l0 0zM374.4 436.2c21.4-32.5 46.4-89.7 45.1-179.7l-19.5 .1c.1 2.1 .3 4.1 .3 6.2 0 28.6-8.8 56.5-25.1 80s-39.5 41.4-66.3 51.4c-8.9 39-31.4 106.7-72.8 39.5 0 0-48.1-2.3-91.2-8.2 0 0 79.9 131.3 191.9 51 .3 4.9 1.5 9.6 3.6 14 2.9 6.1 7.5 11.4 13.1 15.1s12.2 6 19 6.4 13.6-1.1 19.6-4.2 11.1-7.8 14.7-13.6 5.6-12.4 5.7-19.2-1.5-13.5-4.8-19.4-8.2-10.9-14.1-14.3-12.6-5.2-19.4-5.1l0-.1z"],php:[640,512,[],"f457","M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5C148.6 407.5 16.8 335.3 16.8 256S148.7 104.5 320 104.5zm0-16.8C143.3 87.7 0 163 0 256S143.3 424.3 320 424.3 640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3l36.7 0 8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7l-70.7 0-32.7 168.7zM283.1 136.7l36.5 0-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1l-37 0c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6-36.5 0 32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3l36.8 0 8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7l-70.7 0-32.8 168.7z"],disqus:[576,512,[],"e7d5","M290.2 512c-62.6 0-119.9-22.9-164.2-60.8L17 466.1 59.1 362.2c-14.7-32.4-22.9-68.3-22.9-106.2 0-141.4 113.7-256 254-256 140.3 0 254 114.6 254 256 0 141.4-113.7 256-254 256zM428.9 255.3l0-.7C428.9 180.7 376.8 128 287 128l-97 0 0 256 95.6 0c90.5 0 143.4-54.9 143.4-128.7zM288 321.1l-28.4 0 0-130.2 28.4 0c41.7 0 69.3 23.8 69.3 64.7l0 .7c0 41.3-27.7 64.7-69.3 64.7z"],"500px":[384,512,[],"f26e","M71.8 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2l.3 0 0-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5S151 163.3 126.3 188c-.3 .3-16 16.5-21.2 23.9l-.5 .6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8L70.2 20c0-5 3.9-10.5 10.5-10.5L322 9.5c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1l-223.2 0 0 132.9 .3 0c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zM135.1 83.5c-.5 4.2 4.6 24.5 14.6 20.6 124.8-47.5 202.8 40.4 209.4 40.4 4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM361.5 414.7c-110 109.9-299 60.8-332-104.2 0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM182.1 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6 .2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2l-17.3-17.3 18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L218.2 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L202.5 284c-18.1 17.9-20.4 19.2-20.4 22.6z"],affiliatetheme:[512,512,[],"f36b","M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1 105.5 88.2 170.8 48.3 199.9 69.9s11.1 96.6-40.2 167.5zm351.2-57.3c-73.8 123.4-191.9 187.7-264.5 143.6-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9 .1-8.5-.3-16.8-1-25z"],"red-river":[448,512,[],"f3e3","M353.2 32L94.8 32C42.4 32 0 74.4 0 126.8L0 385.2C0 437.6 42.4 480 94.8 480l258.4 0c52.4 0 94.8-42.4 94.8-94.8l0-258.4C448 74.4 405.6 32 353.2 32zM144.9 200.9l0 56.3c0 27-21.9 48.9-48.9 48.9l0-154.2c0-13.2 10.7-23.9 23.9-23.9l154.2 0c0 27-21.9 48.9-48.9 48.9l-56.3 0c-12.3-.6-24.6 11.6-24 24zm176.3 72l-56.3 0c-12.3-.6-24.6 11.6-24 24l0 56.3c0 27-21.9 48.9-48.9 48.9l0-154.2c0-13.2 10.7-23.9 23.9-23.9l154.2 0c0 27-21.9 48.9-48.9 48.9z"],twitter:[512,512,[],"f099","M459.4 151.7c.3 4.5 .3 9.1 .3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103l0-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53 51.7 63.7 129.3 105.3 216.4 109.8-1.6-7.8-2.6-15.9-2.6-24 0-57.8 46.8-104.9 104.9-104.9 30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3z"],"fort-awesome":[512,512,[],"f286","M489.5 287.9l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-178.3c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-32c0-6-8-4.6-11.7-4.6l0-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8l0-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9l0-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3l0 111.7c-3.7 0-11.7-1.4-11.7 4.6l0 32-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.3 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 178.3-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 219.5 182.9 0 0-96c0-72.6 109.7-72.6 109.7 0l0 96 182.9 0 0-219.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6l-27.4 0c-2.6 0-4.6-2-4.6-4.6l0-64c0-2.6 2-4.6 4.6-4.6l27.4 0c2.6 0 4.6 2 4.6 4.6l0 64zm146.4 0c0 2.6-2 4.6-4.6 4.6l-27.4 0c-2.6 0-4.6-2-4.6-4.6l0-64c0-2.6 2-4.6 4.6-4.6l27.4 0c2.6 0 4.6 2 4.6 4.6l0 64z"],mixer:[448,512,[],"e056","M82.6 76.1c-3.8-5.1-8.7-9.4-14.2-12.5s-11.7-5.1-18.1-5.7-12.8 .1-18.8 2.2-11.6 5.3-16.3 9.6c-17.6 16.2-19 43.5-4.8 62.8l91.8 123-92.3 124.1c-14.2 19.3-13.1 46.6 4.7 62.8 4.7 4.3 10.3 7.6 16.3 9.6s12.5 2.8 18.8 2.2 12.5-2.5 18.1-5.7 10.4-7.4 14.2-12.5L210.9 262.7c1.5-2.1 2.3-4.6 2.3-7.1s-.8-5-2.3-7.1L82.6 76.1zM438.2 379.6l-92.3-124.1 91.8-123c14.2-19.2 12.8-46.6-4.7-62.8-4.7-4.3-10.3-7.6-16.3-9.6s-12.5-2.8-18.8-2.2-12.5 2.5-18.1 5.7-10.4 7.4-14.2 12.5l-128 172.1c-1.5 2.1-2.3 4.6-2.3 7.1s.8 5 2.3 7.1L366 435.9c3.8 5.1 8.7 9.4 14.2 12.5s11.7 5.1 18.1 5.7 12.8-.1 18.8-2.2 11.6-5.3 16.3-9.6c17.8-16.2 19-43.5 4.7-62.8z"],lyft:[512,512,[],"f3c3","M0 81.1l77.8 0 0 208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8-17-14-24.8-37.3-24.8-59L0 81.1zM485.9 254.6l0-22 23.8 0 0-76.8-26.1 0c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7l0 179.2c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59l0-6.7 38.8 0 0-76.8-38.8 0 0-23.3c0-34.6 52.2-34.6 52.2 0l0 77.1c0 56.6 46 102.7 102.7 102.7l0-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99l0 113c0 15.4-23.8 15.4-23.8 0l0-113-76.8 0 0 132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8l0 70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8l0-178.2-77.1 0 0 .5z"],"apple-pay":[640,512,[],"f415","M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8zm10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9 .3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1zm100.4-36.2l0 194.9 30.3 0 0-66.6 41.9 0c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64l-73.2 0zM258.5 165l34.9 0c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8l-34.8 0 0-77.4zM420.7 335.9c19 0 36.6-9.6 44.6-24.9l.6 0 0 23.4 28 0 0-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6l27.3 0c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5l0 10.8-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5 .1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1 0 11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4l53.1-149-30.8 0-35.6 115.1-.6 0-35.6-115.1-31.6 0 51.2 141.9-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5l0 23.4c1.8 .4 9.3 .7 11.6 .7z"],artstation:[512,512,[],"f77a","M2.1 377.4l43 74.3c4.3 8.5 10.8 15.7 18.9 20.7s17.4 7.6 27 7.6l285.4 0-59.2-102.6-315.1 0zM501.9 350L335.7 59.3c-4.4-8.2-10.9-15.1-18.9-20S299.7 32 290.4 32l-88.4 0 257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275.2 304.5l-115.5-200-115.5 200 231 0z"],"node-js":[448,512,[],"f3d3","M224.5 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6 .4l47.4 28.1c1.7 1 4.1 1 5.7 0L412 367.5c1.7-1 2.8-3 2.8-5l0-213.2c0-2.1-1.1-4-2.9-5.1L227.3 37.7c-1.7-1-4-1-5.7 0L37.1 144.3c-1.8 1-2.9 3-2.9 5.1l0 213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7l0-210.4c0-3 2.4-5.3 5.4-5.3l23.4 0c2.9 0 5.4 2.3 5.4 5.3l0 210.5c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6L20.6 396.1c-12-6.9-19.4-19.8-19.4-33.7l0-213.1c0-13.8 7.4-26.8 19.4-33.7L205.1 9c11.7-6.6 27.2-6.6 38.8 0L428.6 115.7c12 6.9 19.4 19.8 19.4 33.7l0 213.1c0 13.8-7.4 26.7-19.4 33.7L243.9 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zM373.6 297.9c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8 .5 2.4 2.7 4.2 5.2 4.2l24 0c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5l-23.9 0c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z"],uncharted:[448,512,[],"e084","M171.8 232.8c1.1 0 2.1-.3 3-.9s1.6-1.4 2-2.4c2.2-9.8 7.4-18.6 14.9-25.3 1.2-.8 1.7-2.5 1.7-4.1-.1-.7-.3-1.3-.6-1.9s-.9-1.1-1.4-1.4L74.5 128.5 149.1 85c1.5-.8 2.7-2 3.6-3.5s1.4-3.1 1.4-4.8c0-1.7-.4-3.4-1.3-4.9s-2.2-2.7-3.7-3.4L126.7 55.6c-1.5-.8-3.1-1.2-4.8-1.2s-3.3 .4-4.8 1.2L17 113.6c-1.5 .8-2.7 2-3.6 3.5s-1.4 3.1-1.4 4.8L12 237c0 1.7 .4 3.4 1.3 4.9s2.2 2.7 3.7 3.4l22.4 12.8c1.5 .9 3.2 1.3 5 1.2 2.4 .1 4.8-.8 6.6-2.5 1.8-1.9 2.8-4.4 2.9-7l0-85.3 115.9 67.9c.6 .3 1.4 .4 2.1 .4zM323.4 377.7c-1.7 .1-3.4 .5-5 1.2l-74.5 43.1 0-134.2c0-2.9-2.9-5.8-6.2-4.6-9.4 2.8-19.5 3-29 .4-.7-.2-1.5-.2-2.2-.1s-1.4 .4-2 .9-1.1 1-1.4 1.7-.5 1.4-.5 2.1l0 133.3-74.5-43.1c-1.5-.9-3.2-1.3-5-1.2-2.5 0-4.9 1-6.7 2.8s-2.8 4.2-2.8 6.7l0 26.1c0 1.7 .4 3.4 1.3 4.9s2.2 2.7 3.7 3.4l100.2 57.6c1.5 .9 3.2 1.3 5 1.2 1.7 0 3.4-.4 5-1.2l100.2-57.6c1.5-.8 2.7-2 3.6-3.5s1.4-3.1 1.4-4.8l0-26.1c-.8-4.6-5.4-9.1-10.4-9.1zM286.1 78a23 23 0 1 0 0-46 23 23 0 1 0 0 46zm63.6-10.1a23 23 0 1 0 0 46 23 23 0 1 0 0-46zm63.2 83.7a23 23 0 1 0 0-46 23 23 0 1 0 0 46zm-63.2-9.2a23 23 0 1 0 0 46 23 23 0 1 0 0-46zm-63.6 83.2c4.5 0 9-1.3 12.8-3.9s6.7-6.1 8.5-10.3 2.2-8.8 1.3-13.3-3.1-8.6-6.3-11.8-7.3-5.4-11.8-6.3-9.1-.4-13.3 1.3-7.8 4.7-10.3 8.5-3.9 8.2-3.9 12.8c0 3 .6 6 1.8 8.8s2.9 5.3 5 7.5 4.7 3.8 7.5 5 5.8 1.8 8.8 1.8l0 0zM224 262c4.5 0 9-1.4 12.8-3.9s6.7-6.1 8.5-10.3 2.2-8.8 1.3-13.3-3.1-8.6-6.3-11.8-7.3-5.4-11.8-6.3-9.1-.4-13.3 1.3-7.8 4.7-10.3 8.5-3.9 8.2-3.9 12.8c0 3 .6 6 1.7 8.8s2.8 5.3 5 7.5 4.7 3.8 7.5 5 5.8 1.8 8.8 1.8l0 0zm188.9-82.4c-4.6 0-9 1.3-12.8 3.9s-6.7 6.1-8.5 10.3-2.2 8.8-1.3 13.3 3.1 8.6 6.3 11.8 7.3 5.4 11.8 6.3 9.1 .4 13.3-1.3 7.8-4.7 10.3-8.5 3.9-8.2 3.9-12.8c0-6.1-2.4-11.9-6.7-16.3s-10.2-6.7-16.3-6.7l0 0zm0 72.3c-4.6 0-9 1.3-12.8 3.9s-6.7 6.1-8.5 10.3-2.2 8.8-1.3 13.3 3.1 8.6 6.3 11.8 7.3 5.4 11.8 6.3 9.1 .4 13.3-1.3 7.8-4.7 10.3-8.5 3.9-8.2 3.9-12.8c0-6.1-2.4-11.9-6.7-16.3s-10.2-6.7-16.3-6.7l0 0z"],playstation:[576,512,[],"f3df","M571 372.3c-11.3 14.2-38.8 24.3-38.8 24.3l-205.1 73.6 0-54.3 150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9l-100.5 35.5 0-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9 .6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zM346.6 279.8l0-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4l0 347.9-93.8-29.8 0-414.7c39.9 7.4 98 24.9 129.2 35.4 79.5 27.3 106.4 61.3 106.4 137.8 0 74.5-46 102.8-104.5 74.6zM43.3 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8 0 54.5-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4s39.1 3.3 56.2-2.9l46.4-16.9 0 48.8c-51.6 9.3-101.4 7.3-153.9-10z"],microblog:[448,512,[],"e01a","M399.8 362.2c29.5-34.7 47.1-78.3 47.1-125.8 0-113-99.6-204.4-222.5-204.4S2 123.5 2 236.4 101.6 440.9 224.5 440.9c27 0 53.9-4.5 79.4-13.4 1.4-.5 3-.5 4.5-.1s2.7 1.4 3.6 2.6c18.6 25.1 47.6 42.7 79.9 49.9 1.1 .2 2.3 0 3.3-.6s1.7-1.6 1.9-2.8c.1-.6 .1-1.3 0-1.9s-.4-1.2-.8-1.7c-12.3-16-18.7-35.8-18-56s8.4-39.5 21.7-54.7l-.2 .1zM330 212.4l-57.3 43.5 20.8 68.9c.4 1.3 .4 2.7-.1 4s-1.2 2.4-2.3 3.2-2.4 1.2-3.8 1.2-2.7-.4-3.8-1.2l-59.1-41-59.1 41.1c-1.1 .8-2.4 1.2-3.8 1.2s-2.7-.4-3.8-1.2-1.9-1.9-2.3-3.2-.5-2.7-.1-4l20.8-68.9-57.3-43.5c-1.1-.8-1.9-1.9-2.3-3.2s-.4-2.7 0-4 1.2-2.4 2.3-3.2 2.4-1.3 3.7-1.3l71.9-1.5 23.7-67.9c.4-1.3 1.3-2.4 2.4-3.2s2.4-1.2 3.8-1.2 2.7 .4 3.8 1.2 1.9 1.9 2.4 3.2l23.7 67.9 71.9 1.5c1.4 0 2.7 .4 3.8 1.2s1.9 1.9 2.3 3.2 .4 2.7 0 4-1.2 2.4-2.3 3.3l0 0z"],gitkraken:[576,512,[],"f3a6","M557.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7l0-123.7c7.9-1.5 15.5-3.6 23-6.2l0 104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4l0-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9l0-14.7c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0-41.2 3-129.1 126.7-129.1 164.7l0 14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5l0 92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8l0-104c7.6 2.5 15.1 4.6 23 6.2l0 123.7c-129.8-17-230.2-128.1-230.2-262.7 0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6-11.8 31.5-18.3 65.6-18.3 101.3 0 155.1 122.6 281.6 276.3 287.8l0-145.9c6.8 .4 15 .5 23.4 0l0 145.8c153.7-6.1 276.3-132.6 276.3-287.7 0-35.7-6.5-69.8-18.3-101.4zM357.9 322.9a23.7 23.7 0 1 1 0-47.4 23.7 23.7 0 1 1 0 47.4zM218.1 275.4a23.7 23.7 0 1 1 0 47.4 23.7 23.7 0 1 1 0-47.4z"],telegram:[512,512,[62462,"telegram-plane"],"f2c6","M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM371 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5c-2.2 .5-37.1 23.5-104.6 69.1-9.9 6.8-18.9 10.1-26.9 9.9-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3 .6-4.5 6.7-9 18.4-13.7 72.3-31.5 120.5-52.3 144.6-62.3 68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9 2 1.7 3.2 4.1 3.5 6.7 .5 3.2 .6 6.5 .4 9.8z"],"itunes-note":[384,512,[],"f3b5","M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2 .8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6 .2 344.5 1.1 326-1.8 338.5z"],less:[640,512,[],"f41d","M613.2 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2l-20.5 0 0 24.2 6.3 0c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3l0 1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6l0 .5-6.3 0 0 25.2 20.5 0c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6l0-27.3c-20.5-.7-27.3-12.3-27.3-23.3zM507.6 251c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zM148.7 310.4c-3.7 0-8.4-3.2-8.4-13.1l0-178.2-74.6 0c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6l0 27.3c20.5 .5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2l20.5 0 0-24.2-6.3 0c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3l0-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1l14.1 0 0 150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1 .8-4.6 .8-6.2 .8zM380.4 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9L271 301.5c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2l95.2 0c.5-3.7 1.6-11 1.6-19.4 .6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31l-56.8 0z"],firefox:[512,512,[],"f269","M503.5 241.5c-.1-1.6-.2-3.1-.2-4.7l0-.1-.4-4.7 0-.1c-1.3-13.9-3.7-27.7-7.3-41.2 0-.1 0-.1-.1-.2l-1.1-4c-.1-.2-.1-.5-.2-.6-.4-1.2-.7-2.5-1.1-3.7-.1-.2-.1-.6-.2-.8-.4-1.2-.7-2.4-1.1-3.5-.1-.4-.2-.6-.4-1-.4-1.2-.7-2.3-1.2-3.5l-.4-1.1c-.4-1.1-.8-2.3-1.2-3.4-.1-.3-.2-.7-.4-1-.5-1.1-.8-2.3-1.3-3.4-.1-.2-.2-.6-.4-.8-.5-1.2-1-2.3-1.4-3.5 0-.1-.1-.2-.1-.4-1.6-3.8-3.2-7.7-5-11.4l-.4-.7c-.5-1-.8-1.8-1.3-2.6-.2-.5-.5-1.1-.7-1.6-.4-.8-.8-1.6-1.2-2.4-.4-.6-.6-1.2-1-1.8s-.8-1.4-1.2-2.3c-.4-.6-.7-1.3-1.1-1.9s-.8-1.4-1.2-2.2c-.4-.7-.8-1.4-1.2-2-.4-.7-.8-1.3-1.2-2s-.8-1.3-1.2-2-.8-1.3-1.2-1.9-.8-1.4-1.3-2.2c-.4-.6-.8-1.2-1.2-1.8l-1.4-2.1c-.4-.6-.8-1.2-1.2-1.8-.5-.7-1.1-1.6-1.6-2.3-.4-.5-.7-1.1-1.1-1.6l-1.8-2.5c-.4-.5-.6-.8-1-1.3-1-1.3-1.8-2.5-2.8-3.7-7.2-9.4-15-18.3-23.5-26.6-5.7-6-11.8-11.5-18.3-16.7-4-3.5-8.2-6.7-12.5-9.8-7.7-5.8-16-10.8-24.6-15.1-2.4-1.3-4.8-2.5-7.2-3.7-17.7-8.6-36.3-15.2-55.4-19.6-1.9-.4-3.8-.8-5.6-1.2l-.1 0c-1-.1-1.8-.4-2.8-.5-12.5-2.4-25.2-3.7-38-4l-10.6 0c-15.3 .2-30.5 1.9-45.5 5-33.6 7.1-63.2 21.2-82.9 39-1.1 1-1.9 1.7-2.4 2.2l-.5 .5 .1 0c0 0 .1 0 .1 0s0-.1 0-.1l-.1 .1c.1-.1 .1-.1 .2-.1 14.6-8.8 34.9-16 49.4-19.6l5.9-1.4c.4-.1 .8-.1 1.2-.2 1.7-.4 3.4-.7 5.2-1.1 .2 0 .6-.1 .8-.1 64.2-11.7 132.6 7.5 180.2 53 10.3 9.8 19.3 20.8 26.9 32.8 30.4 49.2 27.5 111.1 3.8 147.6-34.4 53-111.4 71.3-159 24.8-16-15.5-25.2-36.7-25.6-59-.2-10.7 2-21.2 6.2-31 1.7-3.8 13.1-25.7 18.2-24.6-13.1-2.8-37.5 2.6-54.7 28.2-15.4 22.9-14.5 58.2-5 83.3-6-12.4-10.1-25.6-12.1-39.2-12.2-82.6 43.3-153 94.3-170.5-27.5-24-96.5-22.3-147.7 15.4-29.9 22-51.2 53.2-62.5 90.4 1.7-20.9 9.6-52.1 25.8-83.9-17.2 8.9-39 37-49.8 62.9-15.6 37.4-21 82.2-16.1 124.8 .4 3.2 .7 6.4 1.1 9.6 19.9 117.1 122 206.4 244.8 206.4 137.1 0 248.3-111.2 248.3-248.4-.1-4.5-.2-9.1-.5-13.5z"],kaggle:[320,512,[],"f5fa","M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5l-69.2 0c-3.5 0-7 1.8-10.5 5.3l-132.3 133.7 0-306c0-5-2.5-7.5-7.5-7.5L21.5 0C16.5 0 14 2.5 14 7.5l0 497c0 5 2.5 7.5 7.5 7.5l51.9 0c5 0 7.5-2.5 7.5-7.5l0-109 30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3l66.9 0c3.5 0 5.5-1 6-3l-1.4-7.6z"],"facebook-messenger":[512,512,[],"f39f","M256.6 8c-140 0-248.6 102.3-248.6 240.6 0 72.3 29.7 134.8 78.1 177.9 8.3 7.5 6.6 11.9 8 58.2 .1 3.2 1 6.4 2.6 9.2s3.9 5.2 6.7 6.9 5.9 2.8 9.1 3 6.5-.3 9.5-1.6C174.9 479 175.6 477.2 184.6 479.6 337.8 521.8 504 423.7 504 248.6 504 110.3 396.6 8 256.6 8zM405.8 193.1l-73 115.6c-2.8 4.3-6.4 8.1-10.6 11s-9.1 4.8-14.1 5.8-10.3 .8-15.3-.4-9.7-3.4-13.8-6.4l-58.1-43.5c-2.6-1.9-5.8-3-9-3s-6.4 1.1-9 3l-78.4 59.4c-10.5 7.9-24.2-4.6-17.1-15.7l73-115.6c2.8-4.3 6.4-8.1 10.6-11s9.1-4.8 14.1-5.8 10.3-.8 15.3 .4 9.7 3.4 13.9 6.4l58.1 43.5c2.6 1.9 5.8 3 9 3s6.4-1.1 9-3l78.4-59.4c10.4-8 24.1 4.5 17.1 15.6z"],audible:[640,512,[],"f373","M640 199.9l0 54-320 200-320-199.9 0-54 320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6s-135.5 36.7-172.6 92.4l.3 0c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zM225.4 290.7c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1C235.4 56.8 421.8 84.7 521.1 223.2l.7 1 48.8-30.4c-53.5-81.7-145.8-135.7-250.7-135.7-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6z"],patreon:[512,512,[],"f3d9","M490 153.8c-.1-65.4-51-119-110.7-138.3-74.2-24-172-20.5-242.9 12.9-85.8 40.5-112.8 129.3-113.8 217.8-.8 72.8 6.4 264.4 114.6 265.8 80.3 1 92.3-102.5 129.5-152.3 26.4-35.5 60.5-45.5 102.4-55.9 72-17.8 121.1-74.7 121-150l-.1 0z"],vnv:[640,512,[],"f40b","M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192l32.8 0c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1l32.8 0c20.8 0 10.4 18.1 10.4 18.1L186.4 321.6S174.2 352 140 352l-35.1 0zm395 0c-34.1 0-46.4-30.4-46.4-30.4L397.6 210.1S387.2 192 408 192l32.8 0c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1l32.9 0c20.8 0 10.4 18.1 10.4 18.1L581.5 321.6S569.3 352 535.1 352l-35.2 0zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5S450.3 352 429.5 352l-32.8 0c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1l-32.9 0c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5S268.3 192 302.5 192l35.1 0z"],pagelines:[384,512,[],"f18c","M384.1 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4 .5 1.6 .5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z"],amazon:[448,512,[],"f270","M257.7 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56s-32.3-25.3-32.3-52.8l0-147.1C341.5 89 317 32 229.2 32 141.2 32 94.5 87 94.5 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8l0 40.6zM393.7 413c-7.7 10-70 67-174.5 67S34.7 408.5 10.2 379c-6.8-7.7 1-11.3 5.5-8.3 73.3 44.5 187.8 117.8 372.5 30.3 7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z"],envira:[448,512,[],"f299","M0 32c477.6 0 366.6 317.3 367.1 366.3l80.9 81.7-26 0-70.4-71.2C312.6 413 227.2 443.3 137.2 371.8 47 300.3 52 214.7 0 32zM79.7 78c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z"],linode:[448,512,[],"f2b8","M366.3 186.9l-59.5 36.9-.8 36.9-29.3-19.3-39.4 24.3c2.2 55.2 2.5 59.3 2.5 59.5l-97.2 65.4-15.1-104.7 108.1-62-40.2-26-75.4 38.5-21-143.3 129-49.4-91.3-43.6-125.7 39.4 27.7 134.9 41.9 32.7-31.8 15.1 20.9 101.4 29.3 27.7-20.9 12.6 16.8 78.8 66.2 69.6c-10.8-74.8-11.7-78.6-11.7-78.8l77.9-55.3C244 365.4 242.3 367 242.3 367l.8 24.3 33.5 28.5-.8-77.1 46.9-33.5 26.8-18.4-2.5 36 25.1 17.6 6.7-74.6 58.7-43.6-71.2-39.4z"],accusoft:[640,512,[],"f369","M322.1 252l0-1-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7 .8 0 114.5-36.6 114.5-36.6 .5-.6-.1-.1 .6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zM482.2 372.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8 .5-116.5 .6-19.2 .1-32.9-.3-19.2 16.9 7.7 9.5 234.2 299.7 239.9 306.6zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1 .2-9.6 .8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6 .2 2.5 2 2.6 4.6 3.5 2.7 .8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z"],erlang:[640,512,[],"f39d","M87.2 53.5l-87.2 0 0 405 100.4 0c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9 .1-85.1 33.5-89.2 83.2l169.9 0c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6l.3 0-.1-.1-.2 .1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7 .5 6 .5 11.7 0 24.1l-372.4 0c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8l80.8 0 0-405-83.6 0z"],"cc-discover":[576,512,[],"f1f2","M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1l-4.9 0 0 24.9 4.7 0c10.3 0 15.8-4.4 15.8-12.8zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM483.9 170.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4-19.6 0-22.2-32.8-2.2 0 0 32.8-16 0 0-82zM428 171l45.3 0 0 14-29.3 0 0 18.2 28.3 0 0 13.8-28.3 0 0 22.2 29.3 0 0 13.8-45.3 0 0-82zm-68.7 0l21.9 55.2 22.2-55.2 17.5 0-35.5 84.2-8.6 0-35-84.2 17.5 0zm-55.9 86.2a44.6 44.6 0 1 1 0-89.2 44.6 44.6 0 1 1 0 89.2zm-49.3-83.1l0 19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2l0 19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253l-23.4 0 0-82 23.4 0c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0l-16 0 0-82 16 0 0 82zM544 433c0 8.2-6.8 15-15 15l-401 0c189.6-35.6 382.7-139.2 416-160l0 145zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6l-4.2 0 0 54.2 4.2 0c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z"],safari:[512,512,[],"f267","M274.7 274.7L237.3 237.3 166 346 274.7 274.7zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM411.8 182.8l14.8-6.1c1-.4 2-.6 3.1-.6s2.1 .2 3.1 .6 1.8 1 2.6 1.7 1.3 1.6 1.7 2.6 .6 2 .6 3.1-.2 2.1-.6 3.1-1 1.9-1.7 2.6-1.6 1.3-2.6 1.7L418 197.6c-2 .8-4.2 .8-6.1 0s-3.5-2.4-4.3-4.3-.8-4.2 0-6.1 2.4-3.5 4.3-4.3zM314.4 94l6.1-14.8c.8-2 2.4-3.5 4.3-4.3s4.2-.8 6.1 0 3.5 2.4 4.3 4.3 .8 4.2 0 6.1l-6.1 14.8c-.8 2-2.4 3.5-4.3 4.3s-4.2 .8-6.1 0c-1-.4-1.9-1-2.6-1.7s-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1zM256 60c2.1 0 4.2 .8 5.7 2.3S264 65.9 264 68l0 16c0 2.1-.8 4.2-2.3 5.7s-3.5 2.3-5.7 2.3-4.2-.8-5.7-2.3-2.3-3.5-2.3-5.7l0-16c0-2.1 .8-4.2 2.3-5.7S253.9 60 256 60zM181 74.9c1-.4 2-.6 3.1-.6s2.1 .2 3.1 .6 1.9 1 2.6 1.7 1.3 1.6 1.7 2.6L197.6 94c.4 1 .7 2 .7 3.1s-.2 2.1-.6 3.1-1 1.9-1.7 2.6-1.6 1.4-2.6 1.8-2 .6-3.1 .6-2.1-.2-3.1-.6-1.9-1-2.6-1.8-1.3-1.7-1.7-2.7l-6.1-14.8c-.8-2-.8-4.2 0-6.1s2.4-3.5 4.3-4.3zm-63.6 42.5c1.5-1.5 3.5-2.3 5.7-2.3s4.2 .8 5.7 2.3L140 128.7c1.5 1.5 2.3 3.5 2.3 5.6s-.8 4.1-2.3 5.6c-1.5 1.5-3.5 2.3-5.7 2.3s-4.2-.8-5.7-2.3l-11.3-11.3c-1.5-1.5-2.3-3.5-2.3-5.6s.8-4.1 2.3-5.6l0 0zM60 256c0-2.1 .8-4.2 2.3-5.7S65.9 248 68 248l16 0c2.1 0 4.2 .8 5.7 2.3s2.3 3.5 2.3 5.7-.8 4.2-2.3 5.7-3.5 2.3-5.7 2.3l-16 0c-2.1 0-4.2-.8-5.7-2.3S60 258.1 60 256zm40.2 73.2l-14.8 6.1c-1 .4-2 .6-3.1 .6s-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1 1-1.9 1.7-2.6 1.6-1.3 2.6-1.7L94 314.4c2-.8 4.2-.8 6.1 0s3.5 2.4 4.3 4.3 .8 4.2 0 6.1-2.4 3.5-4.3 4.3zm4.3-136c-.4 1-1 1.9-1.7 2.6s-1.6 1.3-2.6 1.7-2 .6-3.1 .6-2.1-.2-3.1-.6l-14.8-6.1c-2-.8-3.5-2.4-4.3-4.3s-.8-4.2 0-6.1 2.4-3.5 4.3-4.3 4.2-.8 6.1 0l14.8 6.1c2 .8 3.5 2.4 4.3 4.3s.8 4.2 0 6.1l0 0zM197.6 418l-6.1 14.8c-.4 1-1 1.9-1.7 2.6s-1.6 1.3-2.6 1.7-2 .6-3.1 .6-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1l6.1-14.8c.4-1 1-1.9 1.7-2.7s1.6-1.4 2.6-1.8 2-.6 3.1-.6 2.1 .2 3.1 .6 1.9 1 2.6 1.8 1.3 1.7 1.7 2.6 .6 2 .6 3.1-.2 2.1-.7 3.1zM264 444c0 2.1-.8 4.2-2.3 5.7s-3.5 2.3-5.7 2.3-4.2-.8-5.7-2.3-2.3-3.5-2.3-5.7l0-16c0-2.1 .8-4.2 2.3-5.7s3.5-2.3 5.7-2.3 4.2 .8 5.7 2.3 2.3 3.5 2.3 5.7l0 16zm67-6.9c-1 .4-2 .6-3.1 .6s-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6L314.4 418c-.8-2-.8-4.2 0-6.1s2.4-3.5 4.3-4.3 4.2-.8 6.1 0 3.5 2.4 4.3 4.3l6.1 14.8c.8 2 .8 4.2 0 6.1s-2.4 3.5-4.3 4.3zm63.6-42.5c-1.5 1.5-3.5 2.3-5.7 2.3s-4.2-.8-5.7-2.3L372 383.3c-1.5-1.5-2.3-3.5-2.3-5.6s.8-4.1 2.3-5.6 3.5-2.3 5.7-2.3 4.2 .8 5.7 2.3l11.3 11.3c1.5 1.5 2.3 3.5 2.3 5.6s-.8 4.1-2.3 5.6l0 0zM286.2 286.2L110.3 401.7 225.8 225.8 401.7 110.3 286.2 286.2zM437.1 331c-.8 2-2.4 3.5-4.3 4.3s-4.2 .8-6.1 0l-14.8-6.1c-2-.8-3.5-2.4-4.3-4.3s-.8-4.2 0-6.1c.4-1 1-1.9 1.7-2.6s1.6-1.3 2.6-1.7 2-.6 3.1-.6 2.1 .2 3.1 .6l14.8 6.1c2 .8 3.5 2.4 4.3 4.3s.8 4.2 0 6.1zm6.9-67l-16 0c-2.1 0-4.2-.8-5.7-2.3s-2.3-3.5-2.3-5.7 .8-4.2 2.3-5.7 3.5-2.3 5.7-2.3l16 0c2.1 0 4.2 .8 5.7 2.3s2.3 3.5 2.3 5.7-.8 4.2-2.3 5.7-3.5 2.3-5.7 2.3z"],"space-awesome":[512,512,[],"e5ac","M96 256l32 0 0 256-128 0 0-160 32 0 0-32 32 0 0-32 32 0 0-32zm416 96l0 160-128 0 0-256 32 0 0 32 32 0 0 32 32 0 0 32 32 0zM320 64l32 0 0 384-32 0 0-32-128 0 0 32-32 0 0-384 32 0 0-32 32 0 0-32 64 0 0 32 32 0 0 32zm-32 64l-64 0 0 64 64 0 0-64z"],node:[640,512,[],"f419","M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4 .1l14.8 8.8c.5 .3 1.3 .3 1.8 0L375 408c.5-.3 .9-.9 .9-1.6l0-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6 .3-.9 1-.9 1.6l0 66.7c0 .6 .4 1.2 .9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8l0-65.9c0-.9 .7-1.7 1.7-1.7l7.3 0c.9 0 1.7 .7 1.7 1.7l0 65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5l0-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5l0 66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zM363 386.2c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6 .2 .8 .8 1.3 1.6 1.3l7.5 0c.5 0 .9-.2 1.2-.5 .3-.4 .5-.8 .4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4l-7.5 0c-.9 0-1.7 .7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3s4.2 9.4 9.3 9.4c5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2l-2.6 0c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1l-2.2 0 0 5-2.4 0 0-12.5 4.3 0c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7 .1 1.8 1.2 2.1 2.8 .1 1 .3 2.7 .6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7l-2 0 0 3.5 1.9 0c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4L72.3 149.3c-1-.6-2.2-.9-3.4-1l-.6 0c-1.2 0-2.3 .4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3 .7 2.5 1.8 3.2s2.5 .7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4l0-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1s2.6 .3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4l0 44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1 .7 2.6 .7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3l0 176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4l0-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2l0-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6 .3-.9 .9-.9 1.6l0 24.3c0 .7 .4 1.3 .9 1.6l21 12.1c.6 .3 1.3 .3 1.8 0l21-12.1c.6-.3 .9-.9 .9-1.6l0-24.3 .1 0zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4l0-17.1c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4l0 70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2l0-22.2c0-1.3 .7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0L592.1 213c1.1 .7 1.9 1.9 1.9 3.2l0 17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4 .3-.7 .7-.7 1.2l0 13.6c0 .5 .3 1 .7 1.2l11.8 6.8c.4 .3 1 .3 1.4 0L584 235c.4-.3 .7-.7 .7-1.2l0-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zM304.8 262.5l0-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4l0 70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7 .1-.5 .2-1.1 .2-1.7zM230.5 137.6l-.8 .5 1.1 0-.3-.5zm76.2 130.2l-.4-.7 0 .9 .4-.2z"],codepen:[512,512,[],"f1cb","M502.3 159.7l-234-156c-8-4.9-16.5-5-24.6 0l-234 156c-6 4-9.7 11.1-9.7 18.3L0 334c0 7.1 3.7 14.3 9.7 18.3l234 156c8 4.9 16.5 5 24.6 0l234-156c6-4 9.7-11.1 9.7-18.3l0-156c0-7.1-3.7-14.3-9.7-18.3zM278 63.1l172.3 114.9-76.9 51.4-95.4-63.7 0-102.6zm-44 0L234 165.7 138.6 229.4 61.7 178 234 63.1zM44 219.1L99.1 256 44 292.8 44 219.1zM234 448.8L61.7 334 138.6 282.6 234 346.3 234 448.8zM256 308l-77.7-52 77.7-52 77.7 52-77.7 52zm22 140.9l0-102.6 95.4-63.7 76.9 51.4-172.3 114.9zm190-156l-55.1-36.9 55.1-36.9 0 73.7z"],ravelry:[512,512,[],"f2d9","M498.6 234.2c-1.2-10.3-1.7-20.8-3.7-31-2.5-12.4-5.7-24.6-9.6-36.6-6.8-20.9-17.2-40.3-30.9-57.5-5.9-7.6-12.1-14.8-18.8-21.7-14.1-14-30-26.1-47.1-36.1-17.8-10.6-36.8-18.9-56.7-24.7-11-3.1-22.3-5.4-33.5-7.6-6.8-1.3-13.7-1.7-20.6-2.5-.3 0-.6-.4-.9-.6-10.8 0-21.5 0-32.3 0-2.4 .4-4.8 .9-7.2 1.2-11.6 1.2-23.1 3.6-34.3 7.1-13.8 4.1-27.1 9.6-39.8 16.4-13.3 7-26.1 15.1-38.1 24.2-6.2 4.6-12.3 9.4-18 14.5-10.2 9.2-20.4 18.4-29.9 28.3-12.8 13.3-24.1 28.1-33.6 44-8.6 14-15.5 29-20.5 44.6-7.2 22.7-10.3 46.6-9.2 70.3 .6 13.5 2 26.9 4.4 40.2 3.4 18.4 9 36.3 16.7 53.3 13.6 29.2 32.1 51.5 50.4 67.9 12.8 11.6 26.8 21.9 41.8 30.6 17.7 10.4 36.4 18.9 55.9 25.3 13.3 4.3 26.9 7.6 40.6 9.8 6.1 1 12.3 1.3 18.4 1.9 .4 .1 .8 .3 1.2 .6l32.3 0c2.5-.4 5-.9 7.5-1.1 16.3-1.3 32.1-5.3 47.5-10.7 17.2-5.9 33.7-13.9 49-23.8 9.7-6.4 19.4-13.1 28.7-20.1 5.8-4.3 11-9.5 16.3-14.5 4-3.7 7.8-7.6 11.5-11.5 12-12.7 22.6-26.6 31.4-41.6 9.5-16 17.4-32.9 22.3-50.9 2.9-10.4 4.9-21 7-31.7 1-5.3 1.3-10.7 1.9-16.1 0-.3 .4-.6 .6-.9l0-37.1c-.2-.6-.4-1.2-.6-1.8zm-161.1-1.2s-16.6-3-28.5-3c-27.2 0-33.6 14.9-33.6 37l0 93.7-73.5 0 0-190.7 73.5 0 0 31.9c8.9-26.8 26.8-36.2 62-36.2l0 67.3z"],alipay:[448,512,[],"f642","M377.7 32L70.3 32C31.4 32 0 63.4 0 102.3L0 409.7C0 448.6 31.4 480 70.3 480l307.5 0c38.5 0 69.8-31.1 70.3-69.6-46-25.6-110.6-60.3-171.6-88.4-32.1 44-84.1 81-148.6 81-70.6 0-93.7-45.3-97-76.4-4-39 14.9-81.5 99.5-81.5 35.4 0 79.4 10.2 127.1 25 16.5-30.1 26.5-60.3 26.5-60.3l-178.2 0 0-16.7 92.1 0 0-31.2-109.4 0 0-19 109.4 0 0-50.4 50.9 0 0 50.4 109.4 0 0 19-109.4 0 0 31.2 88.8 0s-15.2 46.6-38.3 90.9c48.9 16.7 100 36 148.6 52.7l0-234.4c.2-38.7-31.2-70.3-69.9-70.3zM47.3 323c1 20.2 10.2 53.7 69.9 53.7 52.1 0 92.6-39.7 117.9-72.9-44.6-18.7-84.5-31.4-109.4-31.4-67.4 0-79.4 33.1-78.4 50.6z"],"cc-amex":[576,512,[],"f1f3","M0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-1.1-61.7 0-31.9-35.1-31.9 35.1-203.7 0 0-163.8-65.8 0 81.7-184.7 78.6 0 28.1 63.2 0-63.2 97.2 0 16.9 47.6 17-47.6 75.5 0 0-2.4c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432zm440.4-21.7l42.2-46.3 42 46.3 51.4 0-68-72.1 68-72.1-50.6 0-42 46.7-41.5-46.7-51.4 0 67.5 72.5-67.4 71.6 0-33.1-83 0 0-22.2 80.9 0 0-32.3-80.9 0 0-22.4 83 0 0-33.1-122 0 0 143.2 171.8 0zm96.3-72l39.3 41.9 0-83.3-39.3 41.4zm-36.3-92l36.9-100.6 0 100.6 38.7 0 0-143.3-60.2 0-32.2 89.3-31.9-89.3-61.2 0 0 143.1-63.2-143.1-51.2 0-62.4 143.3 43 0 11.9-28.7 65.9 0 12 28.7 82.7 0 0-100.3 36.8 100.3 34.4 0zM282 185.4l19.5-46.9 19.4 46.9-38.9 0z"],"pied-piper-alt":[576,512,[],"f1a8","M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9 27.7-5.7zM379.9 443.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7 6.1-12.6 11.8-25.8 12.4-39.9l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3 0-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3 .9 .6-.6 .3-1.4zM496.3 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9 .6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zM300.1 428.2l0 27.2 11.8-3.4-2.9-23.8-8.9 0zM231.4 277.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z"],letterboxd:[640,512,[],"e62d","M521.3 128C586.9 128 640 181.1 640 246.6S586.9 365.2 521.3 365.2c-42.5 0-79.7-22.3-100.7-55.8 11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l.8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zM320 128c42.5 0 79.7 22.3 100.7 55.8-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0c-42.5 0-79.7-22.3-100.7-55.8 11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l.8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zm-201.3 0c42.5 0 79.7 22.3 100.7 55.8-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0C53.1 365.1 0 312.1 0 246.6S53.1 128 118.7 128z"],opera:[512,512,[],"f26a","M321.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3-131.5-6.1-236.1-114.6-236.1-247.7 0-137 111-248 248-248l.8 0c63.1 .3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zM423.7 430.4c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z"],weibo:[512,512,[],"f18a","M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7c-106.3 0-214.8-51.4-214.8-136.3 0-44.3 28-95.4 76.3-143.7 99.7-99.7 203.2-100.9 173.6-5.7-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zM358.5 300.4c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8 .3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4 .6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z"],readme:[576,512,[],"f4d5","M528.3 46.5l-139.8 0c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3L48 46.5C21.5 46.5 0 68 0 94.5L0 340.3c0 26.5 21.5 48 48 48l89.7 0c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75l89.7 0c26.5 0 48-21.5 48-48l0-245.7c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zM501.3 311.8c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.8c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.8-.1 0z"],golang:[640,512,[],"e40f","M400.1 194.8c-10.9 2.8-19.9 4.3-29.1 7.6-7.3 1.9-14.7 3.9-23.2 6.1l-.6 .1c-4.2 1.2-4.6 1.3-8.5-3.2-4.7-5.3-8.1-8.7-14.6-11.9-19.7-9.6-38.7-6.8-56.4 4.7-21.2 13.7-32.1 34-31.8 59.2 .3 25 17.4 45.5 41.2 48.9 22 2.8 39.8-4.6 53.8-20.5 2.1-2.6 4-5.3 6.1-8.3 .8-1 1.5-2.1 2.3-3.3l-60.1 0c-6.5 0-8.1-4-5.9-9.3 4-9.7 11.5-25.9 15.9-34 .9-1.8 3.1-5.8 6.9-5.8l101.1 0c4.5-13.4 11.8-26.9 21.6-39.7 22.7-29.9 49.3-45.5 87.2-52 31.8-5.6 61.7-2.5 88.9 15.9 24.6 16.8 39.8 39.6 43.9 69.5 5.3 42.1-6.9 76.3-36.7 105.6-19.7 20.9-44.9 34-73.9 39.9-5.6 1-11.1 1.5-16.5 2-2.9 .2-5.7 .5-8.5 .8-28.3-.6-54.2-8.7-76-27.4-15.3-13.3-25.9-29.6-31.1-48.5-3.7 7.3-8 14.4-14 21.1-21.6 29.6-50.9 48-87.9 52.9-30.6 4.1-58.9-1.8-83.9-20.5-23-17.5-36.1-40.5-39.5-69.2-4.1-34 5.9-65.4 26.4-91.3 22.2-29 51.5-47.4 87.3-53.9 29.3-6.2 57.3-1.9 82.6 15.3 16.5 10.9 28.3 25.8 36.1 43.9 1.9 2.8 .6 4.4-3.1 5.3zM48.3 200.4c-1.3 0-1.6-.6-.9-1.6l6.6-8.4c.6-.9 2.2-1.5 3.4-1.5l111.3 0c1.2 0 1.5 .9 .9 1.8l-5.3 8.1c-.6 1-2.2 1.9-3.1 1.9l-112.8-.3zM1.2 229.1c-1.2 0-1.6-.7-.9-1.6l6.5-8.4c.6-.9 2.2-1.6 3.4-1.6l142.1 0c1.2 0 1.8 1 1.5 1.9l-2.5 7.5c-.3 1.2-1.5 1.9-2.8 1.9L1.2 229.1zm74.5 26.8c-.6 .9-.3 1.8 .9 1.8l68 .3c.9 0 2.2-.9 2.2-2.1l.6-7.5c0-1.3-.6-2.2-1.9-2.2l-62.3 0c-1.2 0-2.5 .9-3.1 1.9l-4.4 7.8zm501.5-18c-.2-2.6-.3-4.8-.7-7-5.6-30.8-34-48.3-63.6-41.4-29 6.5-47.7 24.9-54.5 54.2-5.6 24.3 6.2 48.9 28.6 58.9 17.2 7.5 34.3 6.6 50.8-1.9 24.6-13.6 38-32.7 39.6-59.5-.1-1.2-.1-2.3-.2-3.3z"],"stack-exchange":[448,512,[],"f18d","M18.1 332.3l412.7 0 0 22c0 37.7-29.3 68-65.3 68l-19 0-86.8 89.7 0-89.7-176.3 0c-36 0-65.3-30.3-65.3-68l0-22zm0-23.6l412.7 0 0-85-412.7 0 0 85zm0-109.4l412.7 0 0-85-412.7 0 0 85zM365.4 0L83.4 0c-36 0-65.3 30.3-65.3 67.7l0 22.3 412.7 0 0-22.3C430.7 30.3 401.4 0 365.4 0z"],gulp:[256,512,[],"f3ae","M210 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zM14 137.8L27.6 263.3c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7 .9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3 .2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5 .9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9 .1-1.8 .3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6 .8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5 .6 .2 1.1 .4 1.6 .7 2.6 1.8 1.6 4.5 .3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3 .5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4 .5 3.2 1.5 1.7 2.2 1.3 4.5 .4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9 .9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2 .4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3 .5-.4 .9-.6 .6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3 .8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7 .2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3 .9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3 .2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8 .1 26.3 .4L167 65.1 228.3 .6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1 .1-57.3 60.5-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2 .8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2 .1-.3l.2-.7c-1.8 .6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7 .1 13.9-1.6 13.9-3.7z"],yelp:[384,512,[],"f1e9","M42.9 240.3l99.6 48.6c19.2 9.4 16.2 37.5-4.5 42.7L30.5 358.5c-3.2 .8-6.4 .9-9.6 .3s-6.2-1.8-8.9-3.7-4.9-4.3-6.6-7.1-2.7-5.9-3.1-9.2c-3.3-28.8-.2-57.9 9-85.3 1-3.1 2.7-5.9 4.9-8.3s4.9-4.2 7.9-5.5 6.2-1.8 9.5-1.8 6.4 .9 9.3 2.3zm44 239.3c23.8 16.3 50.9 27.3 79.4 32.1 3.2 .6 6.5 .4 9.6-.4s6.1-2.3 8.6-4.4 4.6-4.6 6-7.5 2.3-6.1 2.4-9.4l3.9-110.8c.7-21.3-25.5-31.9-39.8-16.1L82.8 445.5c-2.2 2.4-3.8 5.3-4.8 8.4s-1.3 6.4-.9 9.6 1.5 6.3 3.1 9.1 3.9 5.2 6.6 7l0 0zM232.2 369.7l58.8 94c1.7 2.8 4 5.1 6.8 6.9s5.8 3 9 3.5 6.5 .3 9.7-.5 6.1-2.4 8.6-4.4c22.3-18.4 40.3-41.5 52.7-67.6 1.4-2.9 2.1-6.1 2.2-9.4s-.6-6.5-1.9-9.4-3.2-5.7-5.6-7.8-5.2-3.9-8.3-4.9L258.7 335.7c-20.3-6.5-37.8 15.8-26.5 33.9zM380.6 237.4c-11.5-26.5-28.7-50.2-50.4-69.3-2.4-2.1-5.3-3.7-8.4-4.7s-6.4-1.2-9.6-.8-6.3 1.5-9.1 3.2-5.1 4-6.9 6.7l-62 91.9c-11.9 17.7 4.7 40.6 25.2 34.7L366 268.6c3.1-.9 6-2.5 8.5-4.6s4.5-4.7 5.8-7.7 2.1-6.2 2.2-9.4-.6-6.5-1.9-9.5l0 0zM62.1 30.2c-2.8 1.4-5.4 3.3-7.4 5.7s-3.6 5.2-4.5 8.2-1.2 6.2-.9 9.3 1.3 6.1 2.9 8.9L156.3 242.6c11.7 20.2 42.6 11.9 42.6-11.4l0-208.3c0-3.1-.6-6.3-1.8-9.2s-3.1-5.5-5.4-7.6-5-3.8-8-4.8-6.1-1.4-9.3-1.2c-39 3.1-77 13.3-112.3 30.1z"],gofore:[448,512,[],"f3a7","M348 319.8l-13.2 0 0 34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3c-41.8-42.3-97.1-65.6-156.1-65.6-122.7 0-220.7 100.6-220.7 224 0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zM335.9 207.3l-106.3 0 0 89 118.4 0c33.5 0 60.5 15.1 76 41.8l0-30.6c0-65.2-40.4-100.2-88.1-100.2z"],aviato:[640,512,[],"f421","M107.2 283.5l-19-41.8-52.1 0-19 41.8-17.1 0 62.2-131.4 62.2 131.4-17.2 0zm-45-98.1l-19.6 42.5 39.2 0-19.6-42.5zM174.9 287.8l-62.2-131.4 17.1 0 45.1 96 45.1-96 17 0-62.1 131.4zm80.6-4.3l0-127.1 15.5 0 0 127.1-15.5 0zM464.6 167.9l0 115.6-17.3 0 0-115.6-41.2 0 0-11.5 99.6 0 0 11.5-41.1 0zM640 218.8c0 9.2-1.7 17.8-5.1 25.8s-8.2 15.1-14.2 21.1-13.1 10.8-21.1 14.2-16.6 5.1-25.8 5.1-17.8-1.7-25.8-5.1-15.1-8.2-21.1-14.2-10.8-13-14.2-21.1c-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8 8.2-15.1 14.2-21.1 13-8.4 21.1-11.9c8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1 15.1 5.8 21.1 11.9c6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3s-6.2-11.7-10.8-16.3-10-8.2-16.2-10.9-12.8-4-19.8-4-13.6 1.3-19.8 4-11.6 6.3-16.2 10.9-8.2 10-10.8 16.3-3.9 13.1-3.9 20.3c0 7.3 1.3 14 3.9 20.3s6.2 11.7 10.8 16.3 10 8.2 16.2 10.9 12.8 4 19.8 4 13.6-1.3 19.8-4 11.6-6.3 16.2-10.9 8.2-10 10.8-16.3 3.9-13.1 3.9-20.3zm-94.8 96.7l0-6.3 88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2 .3-2 .5-4.2 .6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3 23.8 0 19 41.8 17.1 0-62.2-131.4-62.2 131.4 17.1 0 19-41.8 23.6 0-1.1 26.4s-22.7 6.5-25.5 23.7c-.1 .3-.1 .7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3 .3 4.4 .6 6.5 .3 2.6 .8 5 1.4 7.2l-242.9-13.5 88.9 10 0 6.3c-5.9 .9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4s12.4-5.6 12.4-12.4c0-6.2-4.6-11.3-10.5-12.2l0-5.8 80.3 9 0 5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2s12.4-3.4 12.4-10.2c0-6-4.3-11-9.9-12.1l0-4.9 28.4 3.2 0 23.7-5.9 0 0 13.9 5.9 0 0-6.6 5 0 0 6.6 5.9 0 0-13.8-5.9 0 0-23.2 38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1 .2-.1 12.1 4.1 0 .1-5 5.2 0 .1 5 4.1 0-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3 0 23.2-5.9 0 0 13.8 5.9 0 0-6.6 5 0 0 6.6 5.9 0 0-13.8-5.9 0 0-23.7 28.4-3.2 0 4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2s12.4-3.4 12.4-10.2c0-6-4.3-11-9.9-12.1l0-5.4 80.3-9 0 5.8c-5.9 .9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4s12.4-5.6 12.4-12.4c-.2-6.3-4.7-11.4-10.7-12.3zM328.9 227.9l19.6-42.5 19.6 42.5-17.9 0-1.7-40.3-1.7 40.3-17.9 0z"],padlet:[640,512,[],"e4a0","M297.9 0l.1 0c7.6 .1 14.4 4.7 17.5 11.8l132 308.5 .3-.1 .2 .4-2.8 10-42.9 158c-3.7 16.2-19.7 26.3-35.8 22.6l-68.4-15.6-68.5 15.6c-16.1 3.7-32.1-6.4-35.8-22.6l-42.9-158-2.7-10 .1-.4 132.1-308.4c3-7 9.9-11.6 17.5-11.8zM160.1 322.1l131 39.1 6.9 122.5 7.9-121.5 130.6-39.3 .2-.1-131 25.1-8.6-320.2-5.2 320.2-131.8-25.8zM426 222.6l94.4-41 73.8 0-157 247.6 31.6-109-42.8-97.6zm171.5-41.2l41.4 76.2c4 7.5-3.9 15.9-11.6 12.2l-47.6-22.7 17.8-65.7zM127.3 318.5L158.7 430 1.6 154.5c-5.9-10.4 5.5-22 15.9-16.2l151.8 84.2-42.1 96z"],"edge-legacy":[448,512,[],"e078","M-6 228.2l.4-.5c0 .2 0 .3-.1 .5l-.3 0zm460.6 15.5c0-44-7.8-84.5-28.8-122.4-41-73.4-113.6-113.3-198.6-113.3-139.9-.3-218.3 105.2-232.8 219.7 42.4-61.3 117.1-121.4 220.4-125 0 0 109.7 0 99.4 105l-175.8 0c6.4-37.4 18.5-59 34.3-78.9-75 34.9-121.8 96.1-120.8 188.3 .8 71.5 50.1 144.8 120.8 172 83.4 31.8 192.8 7.2 240.1-21.3l0-104.4c-80.9 56.5-270.9 60.9-272.3-67.6l314.1 0 0-52.1z"],"square-lastfm":[448,512,["lastfm-square"],"f203","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM210.7 280.8c-1.8-5.5-3.4-10.8-5-15.9-12.9-41.9-21-68.4-58-68.4-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 67.9 0 79.3 35.3 96.4 88.4 1.4 4.4 2.9 8.9 4.4 13.5 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-17.5-16.9-21.2-40-26.4-3.2-.7-6.5-1.4-9.9-2.2-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 2.2 .5 4.5 1 6.7 1.4 31.1 6.5 65.1 13.7 65.1 56.1 .1 36.7-30.7 50.6-76.1 50.6-63.4 0-85.4-28.6-97.1-64.1z"],"goodreads-g":[320,512,[],"f3a9","M10.8 403.3l2.8 0c12.7 0 25.5 0 38.2 .1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5 .1-5.8 .3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7 20.6-71.1 74.6-118.2 153.9-118.8 61.3-.4 101.5 38.7 116.2 70.3 .5 1.1 1.3 2.3 2.4 1.9l0-61.6 44.3 0c0 280.3 .1 332.2 .1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM157.1 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z"],"cc-mastercard":[576,512,[],"f1f1","M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7s4.4-11.7 11.2-11.7c6.6 0 11.2 5.2 11.2 11.7zM172.1 398.6c-7.1 0-11.2 5.2-11.2 11.7S165 422 172.1 422c6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7l19.1 0c-.9-5.7-4.4-8.7-9.6-8.7zm107.8 .3c-6.8 0-10.9 5.2-10.9 11.7s4.1 11.7 10.9 11.7 11.2-4.9 11.2-11.7c0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3 .3 .5 .3 1.1 0 .3-.3 .5-.3 1.1-.3 .3-.3 .5-.5 .8-.3 .3-.5 .5-1.1 .5-.3 .3-.5 .3-1.1 .3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8 .3-1.1 0-.5 .3-.8 .5-1.1 .3-.3 .5-.3 .8-.5 .5-.3 .8-.3 1.1-.3 .5 0 .8 0 1.1 .3 .5 .3 .8 .3 1.1 .5s.2 .6 .5 1.1zm-2.2 1.4c.5 0 .5-.3 .8-.3 .3-.3 .3-.5 .3-.8s0-.5-.3-.8c-.3 0-.5-.3-1.1-.3l-1.6 0 0 3.5 .8 0 0-1.4 .3 0 1.1 1.4 .8 0-1.1-1.3zM576 81l0 352c0 26.5-21.5 48-48 48L48 481c-26.5 0-48-21.5-48-48L0 81C0 54.5 21.5 33 48 33l480 0c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zM288 329.4c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zM145.7 405.7c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4l0-4.4-8.2 0 0 36.7 8.2 0c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2l7.9 0c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2l8.2 0 0-23-.2 0zM190.6 392l-7.9 0 0 4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4l0 4.6 7.9 0 0-36.8zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7 .8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1l0-16.6 13.1 0 0-7.4-13.1 0 0-11.2-8.2 0 0 11.2-7.6 0 0 7.3 7.6 0 0 16.7c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4l27.5 0c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zM338.9 392c-4.6-2-11.6-1.8-15.2 4.4l0-4.4-8.2 0 0 36.7 8.2 0 0-20.7c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zM416.2 392l-8.2 0 0 4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9l0 4.6 8.2 0 0-36.8zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4l0-4.4-7.9 0 0 36.7 7.9 0 0-20.7c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9l-7.9 0 0 19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9l0 4.6 7.9 0 0-51.7zm7.6-75.1l0 4.6 .8 0 0-4.6 1.9 0 0-.8-4.6 0 0 .8 1.9 0zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1s-.8-.5-1.1-.8c-.5 0-1.1-.3-1.6-.3-.3 0-.8 .3-1.4 .3-.5 .3-.8 .5-1.1 .8-.5 .3-.8 .8-.8 1.1-.3 .5-.3 1.1-.3 1.6 0 .3 0 .8 .3 1.4 0 .3 .3 .8 .8 1.1 .3 .3 .5 .5 1.1 .8 .5 .3 1.1 .3 1.4 .3 .5 0 1.1 0 1.6-.3 .3-.3 .8-.5 1.1-.8s.5-.8 .8-1.1c.3-.6 .3-1.1 .3-1.4zm3.2-124.7l-1.4 0-1.6 3.5-1.6-3.5-1.4 0 0 5.4 .8 0 0-4.1 1.6 3.5 1.1 0 1.4-3.5 0 4.1 1.1 0 0-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4 .1 138.5-61.9 138.5-138.4z"],discourse:[448,512,[],"f393","M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2C348.6 479.8 448 377.5 448 255.9S348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392 111.4 317c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z"],"black-tie":[448,512,[],"f27e","M0 32l0 448 448 0 0-448-448 0zM316.5 357.2l-92.5 88.7-92.5-88.7 64.5-184-64.5-86.6 184.9 0-64.4 86.6 64.5 184z"],"square-facebook":[448,512,["facebook-square"],"f082","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l98.2 0 0-145.8-52.8 0 0-78.2 52.8 0 0-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4l0 70.8c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2l0 27.8 83.6 0-14.4 78.2-69.3 0 0 145.8 129 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"],"battle-net":[512,512,[],"f835","M448.8 225.6c26.9 .2 35.6-7.4 38.9-12.4 12.5-16.3-7.1-47.6-52.8-71.3 17.8-33.6 30.1-63.7 36.3-85.3 3.4-11.8 1.1-19 .5-20.3-1.7 10.5-15.8 48.5-48.2 100-25-11.2-56.5-20.1-93.8-23.8-8.9-16.9-34.9-63.9-60.5-88.9-16.8-16.5-30.3-22.6-40.8-23.5l0 0c-13.8-1.6-22.7 5.8-27.4 11-17.2 18.5-24.3 48.9-25 84.1-7.2-12.3-17.2-24.6-28.5-25.9l-.2 0c-20.7-3.5-38.4 29.2-36 81.3-38.4 1.4-71 5.8-93 11.2-9.9 2.4-16.2 7.3-17.8 9.7 1-.4 22.4-9.2 111.6-9.2 5.2 53 29.8 101.8 26 93.2-9.7 15.4-38.2 62.4-47.3 97.7-5.9 22.9-4.4 37.6 .2 47.1 5.6 12.8 16.4 16.7 23.2 18.3 25 5.7 55.4-3.6 86.7-21.1-7.5 12.8-13.9 28.5-9.1 39.3 7.3 19.6 44.5 18.7 88.4-9.4 20.2 32.2 40.1 57.9 55.7 74.1 2.6 2.8 5.5 5.2 8.8 7.1 5.1 3.2 8.6 3.4 8.6 3.4-8.2-6.7-34-38-62.5-91.8 22.2-16 45.7-38.9 67.5-69.3 122.8 4.6 143.3-24.8 148-31.6 14.7-19.9 3.4-57.4-57.3-93.7zM371 331.8c23.8-37.7 30.3-67.8 29.4-92.3 27.9 17.6 47.2 37.6 49.1 58.8 1.1 12.9-8.1 29.1-78.5 33.5zM217.1 387.7c9.8-6.2 19.5-13.1 29.2-20.5 6.7 13.3 13.6 26.1 20.6 38.2-40.6 21.9-68.8 12.8-49.8-17.7zm215-171.3c-10.3-5.3-21.2-10.3-32.4-15 7.9-12.1 15.5-24.4 22.7-36.9 39.1 24.1 45.9 53.2 9.6 51.9zM279.4 398c-5.5-11.4-11-23.5-16.5-36.4 43.2 1.3 62.4-18.7 63.3-20.4 0 .1-25 15.6-62.5 12.2 30.6-25.6 59.1-53.7 85.1-84 8.7-10.2 17-20.6 24.9-31.1-.4-.3-1.5-3-16.5-12-51.7 60.3-102.3 98-132.8 115.9-20.6-11.2-40.8-31.8-55.7-61.5-20-39.9-30-82.4-31.6-116.1 12.3 .9 25.3 2.2 38.8 3.9-22.3 36.8-14.4 63-13.5 64.2 0-.1-1-29.2 20.1-59.6 9 52.5 24 103.8 44.7 152.8 .9-.4 1.8 .9 18.7-8.2-26.3-74.5-33.8-138.2-34-173.4 20-12.4 48.2-19.8 81.6-17.8 44.6 2.7 86.4 15.2 116.3 30.7-7.1 10.4-14.9 21.3-23.3 32.5-20.7-37.7-47.3-43.9-48.9-43.7 .1 0 25.9 14.1 41.5 47.2-37.5-13.8-76.1-24.4-115.3-31.7-13.1-2.4-26.2-4.4-39.4-6-.1 .4-1.8 1.8-2.2 20.3 77.9 14.5 136.6 39.9 167.2 57.2 .7 23.6-7 51.6-25.4 79.6-24.6 37.3-56.4 67.2-84.8 85.4zm27.4-287c-44.6-1.7-73.6 7.4-94.7 20.7 2-52.3 21.3-76.4 38.2-75.3 16.9-4.2 54.9 52.2 56.5 54.6zm-130.7 3.1c.5 12.1 1.6 24.6 3.2 37.3-14.6-.9-28.7-1.3-42.4-1.3-.1 3.2-.1-51 24.7-49.6l.1 0c5.8 1.1 10.6 6.9 14.4 13.6zm-28.1 162c20.8 39.7 43.3 60.6 65.3 72.3-46.8 24.8-77.5 20-84.9 4.5-.2-.2-11.1-15.3 19.7-76.8l0 0z"],bimobject:[448,512,[],"f378","M416 32L32 32C14.4 32 0 46.4 0 64L0 448c0 17.6 14.4 32 32 32l384 0c17.6 0 32-14.4 32-32l0-384c0-17.6-14.4-32-32-32zM352 289.4c0 49.4-11.4 82.6-103.8 82.6l-16.9 0c-44.1 0-62.4-14.9-70.4-38.8l-.9 0 0 34.8-64 0 0-232 64 0 0 74.7 1.1 0c4.6-30.5 39.7-38.8 69.7-38.8l17.3 0c92.4 0 103.8 33.1 103.8 82.5l0 35 .1 0zm-64-28.9l0 22.9c0 21.7-3.4 33.8-38.4 33.8l-45.3 0c-28.9 0-44.1-6.5-44.1-35.7l0-19c0-29.3 15.2-35.7 44.1-35.7l45.3 0c35-.2 38.4 12 38.4 33.7z"]};SU(function(){JV("fab",zQ),JV("fa-brands",zQ)})})();(function(){var K={},V={};try{if(typeof window<"u")K=window;if(typeof document<"u")V=document}catch(q0){}var Q=K.navigator||{},U=Q.userAgent,H=U===void 0?"":U,Y=K,z=V,M=!!Y.document,A=!!z.documentElement&&!!z.head&&typeof z.addEventListener==="function"&&typeof z.createElement==="function",R=~H.indexOf("MSIE")||~H.indexOf("Trident/");function D(q0,I0){(I0==null||I0>q0.length)&&(I0=q0.length);for(var j0=0,n0=Array(I0);j01?I0-1:0),n0=1;n02&&arguments[2]!==void 0?arguments[2]:{},n0=j0.skipHooks,UK=n0===void 0?!1:n0,uQ=HQ(I0);if(typeof sK.hooks.addPack==="function"&&!UK)sK.hooks.addPack(q0,HQ(I0));else sK.styles[q0]=J(J({},sK.styles[q0]||{}),uQ);if(q0==="fas")JV("fa",I0)}var zQ={"square-minus":[448,512,[61767,"minus-square"],"f146","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM136 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"calendar-check":[448,512,[],"f274","M328 0c13.3 0 24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24zM64 112c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 112zm230.7 65.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 374.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z"],"face-kiss":[512,512,[128535,"kiss"],"f596","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm240 0l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-96-48a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],paste:[512,512,["file-clipboard"],"f0ea","M64 48l224 0c8.8 0 16 7.2 16 16l0 48 48 0 0-48c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 384c0 35.3 28.7 64 64 64l112 0 0-48-112 0c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zm176 72c0-13.3-10.7-24-24-24L104 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l105.6 0c8.8-8.6 19-15.8 30.2-21.1 .1-.9 .2-1.9 .2-2.9zM448 464l-160 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l101.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L464 448c0 8.8-7.2 16-16 16zM224 224l0 224c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-165.5c0-17-6.7-33.3-18.7-45.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7L288 160c-35.3 0-64 28.7-64 64z"],"hand-point-left":[512,512,[],"f0a5","M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-176 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4 .5-3.1 .7-6.2 .7-9.4 0-20-9.2-37.9-23.6-49.7 4.9-9 7.6-19.4 7.6-30.3 0-15.1-5.3-29-14-40 8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80zm32-80l0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16 0 25.3 14.7 47.2 36 57.6-2.6 7-4 14.5-4 22.4 0 20 9.2 37.9 23.6 49.7-4.9 9-7.6 19.4-7.6 30.3 0 35.3 28.7 64 64 64l88 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-34 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z"],"file-excel":[384,512,[],"f1c3","M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm99.2 265.6c-8-10.6-23-12.8-33.6-4.8s-12.8 23-4.8 33.6L162 344 124.8 393.6c-8 10.6-5.8 25.6 4.8 33.6s25.6 5.8 33.6-4.8L192 384 220.8 422.4c8 10.6 23 12.8 33.6 4.8s12.8-23 4.8-33.6L222 344 259.2 294.4c8-10.6 5.8-25.6-4.8-33.6s-25.6-5.8-33.6 4.8L192 304 163.2 265.6z"],envelope:[512,512,[128386,9993,61443],"f0e0","M61.4 64C27.5 64 0 91.5 0 125.4 0 126.3 0 127.1 .1 128L0 128 0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256-.1 0c0-.9 .1-1.7 .1-2.6 0-33.9-27.5-61.4-61.4-61.4L61.4 64zM464 192.3L464 384c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-191.7 154.8 117.4c31.4 23.9 74.9 23.9 106.4 0L464 192.3zM48 125.4C48 118 54 112 61.4 112l389.2 0c7.4 0 13.4 6 13.4 13.4 0 4.2-2 8.2-5.3 10.7L280.2 271.5c-14.3 10.8-34.1 10.8-48.4 0L53.3 136.1c-3.3-2.5-5.3-6.5-5.3-10.7z"],"square-caret-down":[448,512,["caret-square-down"],"f150","M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9S110.5 192 120 192l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"],truck:[576,512,[128666,9951],"f0d1","M64 80c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l3.3 0c10.4-36.9 44.4-64 84.7-64s74.2 27.1 84.7 64l102.6 0c4.9-17.4 15.1-32.7 28.7-43.9L368 96c0-8.8-7.2-16-16-16L64 80zm3.3 368L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l288 0c35.3 0 64 28.7 64 64l0 32 55.4 0c17 0 33.3 6.7 45.3 18.7l40.6 40.6c12 12 18.7 28.3 18.7 45.3L576 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64zM416 256l112 0 0-23.4c0-4.2-1.7-8.3-4.7-11.3l-40.6-40.6c-3-3-7.1-4.7-11.3-4.7l-55.4 0 0 80zm0 48l0 32.4c2.6-.2 5.3-.4 8-.4 40.3 0 74.2 27.1 84.7 64l3.3 0c8.8 0 16-7.2 16-16l0-80-112 0zM152 464a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm272 0a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"],bell:[448,512,[128276,61602],"f0f3","M224 0c-13.3 0-24 10.7-24 24l0 9.7C118.6 45.3 56 115.4 56 200l0 14.5c0 37.7-10 74.7-29 107.3L5.1 359.2C1.8 365 0 371.5 0 378.2 0 399.1 16.9 416 37.8 416l372.4 0c20.9 0 37.8-16.9 37.8-37.8 0-6.7-1.8-13.3-5.1-19L421 321.7c-19-32.6-29-69.6-29-107.3l0-14.5c0-84.6-62.6-154.7-144-166.3l0-9.7c0-13.3-10.7-24-24-24zM392.4 368l-336.9 0 12.9-22.1C91.7 306 104 260.6 104 214.5l0-14.5c0-66.3 53.7-120 120-120s120 53.7 120 120l0 14.5c0 46.2 12.3 91.5 35.5 131.4L392.4 368zM156.1 464c9.9 28 36.6 48 67.9 48s58-20 67.9-48l-135.8 0z"],message:[512,512,["comment-alt"],"f27a","M203.7 512.9s0 0 0 0l-37.8 26.7c-7.3 5.2-16.9 5.8-24.9 1.7S128 529 128 520l0-72-32 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l320 0c53 0 96 43 96 96l0 224c0 53-43 96-96 96l-120.4 0-91.9 64.9zm64.3-104.1c8.1-5.7 17.8-8.8 27.7-8.8L416 400c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L96 80c-26.5 0-48 21.5-48 48l0 224c0 26.5 21.5 48 48 48l56 0c10.4 0 19.3 6.6 22.6 15.9 .9 2.5 1.4 5.2 1.4 8.1l0 49.7c32.7-23.1 63.3-44.7 91.9-64.9z"],"face-dizzy":[512,512,["dizzy"],"f567","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM134.1 153.9l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zm192 0l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"],"calendar-days":[448,512,["calendar-alt"],"f073","M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zM384 432c8.8 0 16-7.2 16-16l0-64-88 0 0 80 72 0zm16-128l0-80-88 0 0 80 88 0zm-136 0l0-80-80 0 0 80 80 0zm-128 0l0-80-88 0 0 80 88 0zM48 352l0 64c0 8.8 7.2 16 16 16l72 0 0-80-88 0zm136 0l0 80 80 0 0-80-80 0zM120 112l-56 0c-8.8 0-16 7.2-16 16l0 48 352 0 0-48c0-8.8-7.2-16-16-16l-264 0z"],"hand-point-up":[384,512,[9757],"f0a6","M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-176c0-8.8-7.2-16-16-16S64 55.2 64 64zM80 288c-17.7 0-32 14.3-32 32l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7-3.1 .5-6.2 .7-9.4 .7-20 0-37.9-9.2-49.7-23.6-9 4.9-19.4 7.6-30.3 7.6-15.1 0-29-5.3-40-14-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-80 0zM0 320l0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2 25.3 0 47.2 14.7 57.6 36 7-2.6 14.5-4 22.4-4 20 0 37.9 9.2 49.7 23.6 9-4.9 19.4-7.6 30.3-7.6 35.3 0 64 28.7 64 64l0 88c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-34c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z"],"hand-lizard":[512,512,[],"f258","M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7-46.9-29.3-145.1 0c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z"],"square-full":[512,512,[128997,128998,128999,129000,129001,129002,129003,11035,11036],"f45c","M448 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l384 0zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0z"],"circle-pause":[512,512,[62092,"pause-circle"],"f28b","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144zm112 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144z"],"hard-drive":[448,512,[128436,"hdd"],"f0a0","M64 80c-8.8 0-16 7.2-16 16l0 162c5.1-1.3 10.5-2 16-2l320 0c5.5 0 10.9 .7 16 2l0-162c0-8.8-7.2-16-16-16L64 80zM48 320l0 96c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L64 304c-8.8 0-16 7.2-16 16zM0 320L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm216 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"],"file-zipper":[384,512,["file-archive"],"f1c6","M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM80 104c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm0 80c0 13.3 10.7 24 24 24l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0c-13.3 0-24 10.7-24 24zm64 56l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"],"floppy-disk":[448,512,[128190,128426,"save"],"f0c7","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-242.7c0-4.2-1.7-8.3-4.7-11.3L320 86.6 320 176c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-96-32 0zm80 0l0 80 128 0 0-80-128 0zM0 96C0 60.7 28.7 32 64 32l242.7 0c17 0 33.3 6.7 45.3 18.7L429.3 128c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM160 320a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"],"face-grin-tongue-squint":[512,512,[128541,"grin-tongue-squint"],"f58a","M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 75.9 40.7 142.4 101.5 178.7-3.6-10.9-5.5-22.6-5.5-34.7l0-37.5c-10.2-12.6-18.3-26.9-23.8-42.4-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8-5.5 15.6-13.6 29.9-23.8 42.5l0 37.5c0 12.1-1.9 23.8-5.5 34.7 60.8-36.3 101.5-102.7 101.5-178.7zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm125.8-75.7c-6.2-5.2-7.6-14.3-3.1-21.1s13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3zm263.6-21.1c4.5 6.8 3.1 15.9-3.1 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"],camera:[512,512,[62258,"camera-alt"],"f030","M193.1 32c-18.7 0-36.2 9.4-46.6 24.9L120.5 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-56.5 0-26-39.1C355.1 41.4 337.6 32 318.9 32L193.1 32zm-6.7 51.6c1.5-2.2 4-3.6 6.7-3.6l125.7 0c2.7 0 5.2 1.3 6.7 3.6l33.2 49.8c4.5 6.7 11.9 10.7 20 10.7l69.3 0c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l69.3 0c8 0 15.5-4 20-10.7l33.2-49.8zM256 384a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 272a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"],"face-grin-stars":[512,512,[129321,"grin-stars"],"f587","M0 256c0-29.6 5-57.9 14.2-84.4l17.3 16.9-4.6 27c-4.2 24.4 5.6 46.2 22 59.9 9.8 105.8 98.8 188.7 207.1 188.7s197.4-82.8 207.1-188.6c16.4-13.7 26.1-35.4 22-59.9l-4.6-27 17.3-16.9c9.2 26.4 14.2 54.8 14.2 84.4 0 141.4-114.6 256-256 256S0 397.4 0 256zM256 48c-15.2 0-30 1.6-44.3 4.7L201.4 31.8C197 23 191.1 15.8 184.2 10.2 207 3.6 231.1 0 256 0s49 3.6 71.8 10.2C320.9 15.8 315 23 310.6 31.8L300.3 52.7C286 49.6 271.2 48 256 48zM372.2 302.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM353.7 53.1c5.9-11.9 22.8-11.9 28.7 0l23.3 47.2 52 7.6c13.1 1.9 18.4 18 8.9 27.3l-37.7 36.7 8.9 51.8c2.2 13.1-11.5 23-23.2 16.9L368 216 321.5 240.5c-11.7 6.2-25.5-3.8-23.2-16.9l8.9-51.8-37.7-36.7c-9.5-9.3-4.3-25.4 8.9-27.3l52-7.6 23.3-47.2zm-195.3 0l23.3 47.2 52 7.6c13.1 1.9 18.4 18 8.9 27.3l-37.7 36.7 8.9 51.8c2.2 13.1-11.5 23-23.2 16.9L144 216 97.5 240.5c-11.7 6.2-25.5-3.8-23.2-16.9l8.9-51.8-37.7-36.7c-9.5-9.3-4.3-25.4 8.9-27.3l52-7.6 23.3-47.2c5.9-11.9 22.8-11.9 28.7 0z"],eye:[576,512,[128065],"f06e","M288 80C222.8 80 169.2 109.6 128.1 147.7 89.6 183.5 63 226 49.4 256 63 286 89.6 328.5 128.1 364.3 169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256 513 226 486.4 183.5 447.9 147.7 406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1 3.3 7.9 3.3 16.7 0 24.6-14.9 35.7-46.2 87.7-93 131.1-47.1 43.7-111.8 80.6-192.6 80.6S142.5 443.2 95.4 399.4c-46.8-43.5-78.1-95.4-93-131.1-3.3-7.9-3.3-16.7 0-24.6 14.9-35.7 46.2-87.7 93-131.1zM288 336c44.2 0 80-35.8 80-80 0-29.6-16.1-55.5-40-69.3-1.4 59.7-49.6 107.9-109.3 109.3 13.8 23.9 39.7 40 69.3 40zm-79.6-88.4c2.5 .3 5 .4 7.6 .4 35.3 0 64-28.7 64-64 0-2.6-.2-5.1-.4-7.6-37.4 3.9-67.2 33.7-71.1 71.1zm45.6-115c10.8-3 22.2-4.5 33.9-4.5 8.8 0 17.5 .9 25.8 2.6 .3 .1 .5 .1 .8 .2 57.9 12.2 101.4 63.7 101.4 125.2 0 70.7-57.3 128-128 128-61.6 0-113-43.5-125.2-101.4-1.8-8.6-2.8-17.5-2.8-26.6 0-11 1.4-21.8 4-32 .2-.7 .3-1.3 .5-1.9 11.9-43.4 46.1-77.6 89.5-89.5z"],"face-sad-tear":[512,512,[128546,"sad-tear"],"f5b4","M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 41.8 12.3 80.7 33.6 113.3 8.2 44.7 47.3 78.6 94.3 78.7 24.7 10.3 51.7 16 80.1 16 114.9 0 208-93.1 208-208zM288 352c-5.5 0-10.9 .6-16 1.8 0-.6 0-1.2 0-1.8 0-16.2-4-31.5-11.1-44.9 8.7-2 17.8-3.1 27.1-3.1 40.2 0 75.7 19.8 97.5 50 7.7 10.8 5.3 25.8-5.5 33.5s-25.8 5.3-33.5-5.5c-13.1-18.2-34.4-30-58.5-30zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM185.4 276.8c6.5 7.8 12.6 16.1 18.3 24.6 9 13.4 20.3 30.2 20.3 47.4 0 28.3-21.5 51.2-48 51.2s-48-22.9-48-51.2c0-17.2 11.2-34 20.3-47.4 5.7-8.5 11.9-16.7 18.3-24.6 2.4-2.9 5.7-4.8 9.4-4.8s7 1.9 9.4 4.8z"],"share-from-square":[576,512,[61509,"share-square"],"f14d","M425.5 7c-6.9-6.9-17.2-8.9-26.2-5.2S384.5 14.3 384.5 24l0 56-48 0c-88.4 0-160 71.6-160 160 0 46.7 20.7 80.4 43.6 103.4 8.1 8.2 16.5 14.9 24.3 20.4 9.2 6.5 21.7 5.7 30.1-1.9s10.2-20 4.5-29.8c-3.6-6.3-6.5-14.9-6.5-26.7 0-36.2 29.3-65.5 65.5-65.5l46.5 0 0 56c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l136-136c9.4-9.4 9.4-24.6 0-33.9L425.5 7zm7 97l0-22.1 78.1 78.1-78.1 78.1 0-22.1c0-13.3-10.7-24-24-24L338 192c-50.9 0-93.9 33.5-108.3 79.6-3.3-9.4-5.2-19.8-5.2-31.6 0-61.9 50.1-112 112-112l72 0c13.3 0 24-10.7 24-24zm-320-8c-44.2 0-80 35.8-80 80l0 256c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0z"],"note-sticky":[448,512,[62026,"sticky-note"],"f249","M240 432L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0c8.8 0 16 7.2 16 16l0 176-88 0c-39.8 0-72 32.2-72 72l0 88zM380.1 320L288 412.1 288 344c0-13.3 10.7-24 24-24l68.1 0zM0 416c0 35.3 28.7 64 64 64l197.5 0c17 0 33.3-6.7 45.3-18.7L429.3 338.7c12-12 18.7-28.3 18.7-45.3L448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416z"],"hand-back-fist":[384,512,["hand-rock"],"f255","M96 400c-17.7 0-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32L96 400zM73.2 352l64.6 0-79.5-88.3C51.7 256.3 48 246.8 48 236.9L48 204c0-16.1 11.9-29.5 27.4-31.7 11.8-1.7 20.6-11.8 20.6-23.8L96 72c0-13.3 10.7-24 24-24 7.2 0 13.6 3.1 18 8.1 4.6 5.2 11.1 8.1 18 8.1s13.4-3 18-8.1c4.4-5 10.8-8.1 18-8.1 8.5 0 15.9 4.4 20.2 11.1 6.9 10.7 20.9 14.2 32 8 3.5-1.9 7.4-3.1 11.8-3.1 10.6 0 19.7 6.9 22.8 16.6 3.8 11.7 15.9 18.7 28 16 1.7-.4 3.4-.6 5.2-.6 13.3 0 24 10.7 24 24l0 92.2c0 14.4-3.5 28.5-10.2 41.2l-52.2 98.6 54.3 0 40.3-76.2c10.4-19.6 15.8-41.5 15.8-63.6l0-92.2c0-38.4-30.1-69.8-68.1-71.9-12.9-19.3-34.9-32.1-59.9-32.1-5.7 0-11.2 .7-16.5 1.9-12.7-11.1-29.3-17.9-47.5-17.9-13.1 0-25.4 3.5-36 9.6-10.6-6.1-22.9-9.6-36-9.6-39.8 0-72 32.2-72 72l0 58.7C19.7 143 0 171.2 0 204l0 32.9c0 21.7 8 42.7 22.6 58.9L73.2 352z"],"chess-queen":[512,512,[9819],"f445","M325.3 90.8c9.1-4.8 20.6-3.3 28.2 4.3l39.8 39.8 3.7 3.3c9.1 7.1 20.9 10 32.4 7.7l46.4-9.3 3.5-.4c8-.4 15.8 3.2 20.6 9.8 5.5 7.6 6.1 17.6 1.6 25.8l-112.6 202.6 51.5 70.9 1.8 2.7c4 6.6 6.2 14.2 6.2 22 0 23.3-18.9 42.1-42.1 42.1l-299.8 0c-21.8 0-39.8-16.6-41.9-37.8l-.2-4.3 .1-3.3c.6-7.7 3.4-15.1 7.9-21.4l51.5-70.9-112.5-202.6c-4.5-8.2-3.9-18.3 1.6-25.8s14.9-11.2 24.1-9.4l46.4 9.3c13.1 2.6 26.7-1.5 36.1-10.9L159.5 95 163 92.2c8.6-5.8 20.1-5.6 28.5 1.1l40 32 2.8 2.1c14.4 9.6 33.5 8.9 47.2-2.1l40-32 3.8-2.5zM164.7 400l-46.6 64 276.7 0-46.6-64-183.6 0zM311.5 162.8c-30.1 24.1-72.1 25.6-103.8 4.5l-6.2-4.5-23.3-18.6-24.6 24.6c-19.8 19.8-47.7 28.9-75.1 24.8l88.1 158.5 179.8 0 88-158.5c-25.7 3.8-51.7-3.9-71.1-21l-4-3.7-24.6-24.6-23.2 18.6zM256.5 72a40 40 0 1 1 0-80 40 40 0 1 1 0 80z"],"face-grin-tears":[640,512,[128514,"grin-tears"],"f588","M504.1 353C512.9 367.2 525.3 379 539.8 387.2 495.1 462 413.4 512 320 512S144.9 462 100.2 387.2c14.6-8.2 26.9-20 35.8-34.3 34.9 66 104.2 111 184.1 111s149.2-45 184.1-111zm16.4-152.5C496.2 112.6 415.7 48 320 48S143.8 112.6 119.5 200.5c-10.6-4.8-22.7-6.8-35.4-5l-13.4 1.9C97.2 84.3 198.8 0 320 0S542.8 84.3 569.3 197.4l-13.4-1.9c-12.7-1.8-24.8 .2-35.4 5zM455.8 320c-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8zM212 208l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28zm188-28c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zM640 300.6c0 28.4-23 51.4-51.4 51.4-25.6 0-47.3-18.8-50.9-44.1L531 261.1c-1.5-10.6 7.5-19.6 18.1-18.1l46.7 6.7c25.3 3.6 44.1 25.3 44.1 50.9zm-640 0c0-25.6 18.8-47.3 44.1-50.9L90.9 243c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C98.7 333.2 77 352 51.4 352 23 352 0 329 0 300.6z"],"pen-to-square":[512,512,["edit"],"f044","M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z"],"face-grin-beam-sweat":[576,512,[128517,"grin-beam-sweat"],"f583","M530.2 15.9c-8.8-10.7-18.5-20.9-29-30-3-2.6-7.4-2.6-10.4 0-10.5 9.1-20.1 19.3-29 30-14.7 17.8-29.8 40.1-29.8 64.1 0 36.4 27.6 64 64 64s64-27.6 64-64c0-24-15.2-46.3-29.8-64.1zm-132 8.9C364.8 8.9 327.4 0 288 0 146.6 0 32 114.6 32 256S146.6 512 288 512 544 397.4 544 256c0-24.4-3.4-48-9.8-70.4-11.9 4.2-24.7 6.4-38.2 6.4-3.4 0-6.8-.1-10.2-.4 6.6 20.3 10.2 41.9 10.2 64.4 0 114.9-93.1 208-208 208S80 370.9 80 256 173.1 48 288 48c34.8 0 67.5 8.5 96.3 23.6 1.4-17.4 6.9-33.1 13.8-46.8zM423.8 320c4.1-11.6-7.8-21.4-19.6-17.8-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 19.8 55.9 73.1 95.9 135.8 95.9 62.7 0 116-40.1 135.8-96zM180 208c0-15.5 12.5-28 28-28s28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8zm188-28c15.5 0 28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-15.5 12.5-28 28-28z"],clock:[512,512,[128339,"clock-four"],"f017","M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"],"face-laugh-wink":[512,512,["laugh-wink"],"f59c","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z"],"paper-plane":[576,512,[61913],"f1d8","M290.5 287.7L491.4 86.9 359 456.3 290.5 287.7zM457.4 53L256.6 253.8 88 185.3 457.4 53zM38.1 216.8l205.8 83.6 83.6 205.8c5.3 13.1 18.1 21.7 32.3 21.7 14.7 0 27.8-9.2 32.8-23.1L570.6 8c3.5-9.8 1-20.6-6.3-28s-18.2-9.8-28-6.3L39.4 151.7c-13.9 5-23.1 18.1-23.1 32.8 0 14.2 8.6 27 21.7 32.3z"],heart:[512,512,[128153,128154,128155,128156,128420,129293,129294,129505,9829,10084,61578],"f004","M378.9 80c-27.3 0-53 13.1-69 35.2l-34.4 47.6c-4.5 6.2-11.7 9.9-19.4 9.9s-14.9-3.7-19.4-9.9l-34.4-47.6c-16-22.1-41.7-35.2-69-35.2-47 0-85.1 38.1-85.1 85.1 0 49.9 32 98.4 68.1 142.3 41.1 50 91.4 94 125.9 120.3 3.2 2.4 7.9 4.2 14 4.2s10.8-1.8 14-4.2c34.5-26.3 84.8-70.4 125.9-120.3 36.2-43.9 68.1-92.4 68.1-142.3 0-47-38.1-85.1-85.1-85.1zM271 87.1c25-34.6 65.2-55.1 107.9-55.1 73.5 0 133.1 59.6 133.1 133.1 0 68.6-42.9 128.9-79.1 172.8-44.1 53.6-97.3 100.1-133.8 127.9-12.3 9.4-27.5 14.1-43.1 14.1s-30.8-4.7-43.1-14.1C176.4 438 123.2 391.5 79.1 338 42.9 294.1 0 233.7 0 165.1 0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1l15 20.7 15-20.7z"],"font-awesome":[512,512,[62501,62694,"font-awesome-flag","font-awesome-logo-full"],"f2b4","M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 48 0 0-64 389.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96zM80 400l0-256 356.4 0-48.2 108.5c-5.5 12.4-5.5 26.6 0 39L436.4 400 80 400z"],clone:[512,512,[],"f24d","M288 464L64 464c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l48 0 0-48-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-48-48 0 0 48c0 8.8-7.2 16-16 16zM224 304c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-224 0zm-64-16c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224z"],"folder-open":[576,512,[128194,128449,61717],"f07c","M97.5 400l50-160 379.4 0-50 160-379.4 0zm190.7 48L477 448c21 0 39.6-13.6 45.8-33.7l50-160c9.7-30.9-13.4-62.3-45.8-62.3l-379.4 0c-21 0-39.6 13.6-45.8 33.7L80.2 294.4 80.2 96c0-8.8 7.2-16 16-16l138.7 0c3.5 0 6.8 1.1 9.6 3.2L282.9 112c13.8 10.4 30.7 16 48 16l117.3 0c8.8 0 16 7.2 16 16l48 0c0-35.3-28.7-64-64-64L330.9 80c-6.9 0-13.7-2.2-19.2-6.4L273.3 44.8C262.2 36.5 248.8 32 234.9 32L96.2 32c-35.3 0-64 28.7-64 64l0 288c0 35.3 28.7 64 64 64l192 0z"],"window-minimize":[512,512,[128469],"f2d1","M0 424c0-13.3 10.7-24 24-24l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 448c-13.3 0-24-10.7-24-24z"],"star-half":[576,512,[61731],"f089","M285.7-15.8c10.8 2.6 18.4 12.2 18.4 23.3l0 387.1c0 9-5.1 17.3-13.1 21.4L143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3L193.1 125.3 258.8-3.3c5-9.9 16.2-15 27-12.4zM256.1 107.4L230.3 158c-3.5 6.8-10 11.6-17.6 12.8l-125.5 20 89.8 89.9c5.4 5.4 7.9 13.1 6.7 20.7l-19.8 125.5 92.2-46.9 0-272.6z"],"alarm-clock":[512,512,[9200],"f34e","M402.6 50.2c-5.4 1.7-11.3 1.8-16.2-.9-5.8-3.2-11.8-6.2-17.8-8.9-10.4-4.7-13.7-18.3-4.1-24.6 15-9.9 33-15.7 52.3-15.7 52.6 0 95.2 42.6 95.2 95.2 0 13.2-2.7 25.8-7.6 37.3-4.5 10.5-18.4 9.8-24.9 .4-3.8-5.5-7.8-10.8-12-16-3.5-4.4-4.5-10.2-3.8-15.8 .2-1.9 .4-3.9 .4-5.9 0-26.1-21.2-47.2-47.2-47.2-4.9 0-9.7 .8-14.2 2.2zM32.5 132.9c-6.5 9.4-20.5 10.1-24.9-.4-4.9-11.5-7.6-24.1-7.6-37.3 0-52.6 42.6-95.2 95.2-95.2 19.3 0 37.3 5.8 52.3 15.7 9.6 6.3 6.3 19.9-4.1 24.6-6.1 2.8-12 5.7-17.8 8.9-4.9 2.7-10.9 2.6-16.2 .9-4.5-1.4-9.2-2.2-14.2-2.2-26.1 0-47.2 21.2-47.2 47.2 0 2 .1 4 .4 5.9 .7 5.6-.3 11.4-3.8 15.8-4.2 5.2-8.2 10.5-12 16zM432 288a176 176 0 1 0 -352 0 176 176 0 1 0 352 0zM396.5 462.5C358.1 493.4 309.2 512 256 512s-102.1-18.6-140.5-49.5L73 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l42.5-42.5C50.6 390.1 32 341.2 32 288 32 164.3 132.3 64 256 64S480 164.3 480 288c0 53.2-18.6 102.1-49.5 140.5L473 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-42.5-42.5zM280 184l0 94.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-4.5-4.5-7-10.6-7-17l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24z"],newspaper:[512,512,[128240],"f1ea","M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM192 152c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zm152 24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM216 256l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],hospital:[576,512,[127973,62589,"hospital-alt","hospital-wide"],"f0f8","M176 0c-35.3 0-64 28.7-64 64l0 48-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-272c0-35.3-28.7-64-64-64l-48 0 0-48c0-35.3-28.7-64-64-64L176 0zM160 64c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 72c0 13.3 10.7 24 24 24l72 0c8.8 0 16 7.2 16 16l0 272c0 8.8-7.2 16-16 16l-176 0 0-80c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 80-176 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l72 0c13.3 0 24-10.7 24-24l0-72zM112 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM96 336l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm320 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16-112c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM264 104l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z"],"circle-stop":[512,512,[62094,"stop-circle"],"f28d","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM160 192l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32zm48 112l0-96 96 0 0 96-96 0z"],"object-ungroup":[640,512,[],"f248","M48.2 66.8c-.1-.8-.2-1.7-.2-2.5l0-.2c0-8.8 7.2-16 16-16 .9 0 1.9 .1 2.8 .2 7.5 1.3 13.2 7.9 13.2 15.8 0 8.8-7.2 16-16 16-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3l0 105.3c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0 28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-105.3c16-6.5 28.9-19.3 35.3-35.3l201.3 0zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16 0-.9 .1-1.9 .2-2.8 1.3-7.5 7.9-13.2 15.8-13.2 8.8 0 16 7.2 16 16zm436.7-40c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-20.7-48 0 0 20.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64-26.9 0-49.9 16.5-59.3 40l-52.7 0 0 9.6c10.7 10.9 19.1 23.9 24.6 38.4l28 0zm59.3-8a16 16 0 1 1 0-32 16 16 0 1 1 0 32zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm301.5 13c-7.5-1.3-13.2-7.9-13.2-15.8 0-8.8 7.2-16 16-16 7.9 0 14.5 5.7 15.8 13.2l0 .1c.1 .9 .2 1.8 .2 2.7 0 8.8-7.2 16-16 16-.9 0-1.9-.1-2.8-.2z"],comment:[512,512,[128489,61669],"f075","M51.9 384.9C19.3 344.6 0 294.4 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240 397.4 480 256 480c-36.5 0-71.2-7.2-102.6-20L37 509.9c-3.7 1.6-7.5 2.1-11.5 2.1-14.1 0-25.5-11.4-25.5-25.5 0-4.3 1.1-8.5 3.1-12.2l48.8-89.4zm37.3-30.2c12.2 15.1 14.1 36.1 4.8 53.2l-18 33.1 58.5-25.1c11.8-5.1 25.2-5.2 37.1-.3 25.7 10.5 54.2 16.4 84.3 16.4 117.8 0 208-88.8 208-192S373.8 48 256 48 48 136.8 48 240c0 42.8 15.1 82.4 41.2 114.7z"],"chess-pawn":[384,512,[9823],"f443","M192-32c66.3 0 120 53.7 120 120 0 27.6-9.3 52.9-24.9 73.2 9.8 3 16.9 12.1 16.9 22.8 0 13.3-10.7 24-24 24l-.6 0 24.6 160 53.6 67c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L63.4 512c-26.2 0-47.4-21.2-47.4-47.4 0-10.8 3.7-21.2 10.4-29.6l53.6-67 24.6-160-.6 0c-13.3 0-24-10.7-24-24 0-10.8 7.1-19.8 16.9-22.8-15.6-20.3-24.9-45.6-24.9-73.2 0-66.3 53.7-120 120-120zM115.9 400l-51.2 64 254.7 0-51.2-64-152.2 0zm36.2-184.7l-21 136.7 121.9 0-21-136.7-1.1-7.3-77.6 0-1.1 7.3zM192 16a72 72 0 1 0 0 144 72 72 0 1 0 0-144z"],"calendar-plus":[448,512,[],"f271","M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm104 64c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24z"],clipboard:[384,512,[128203],"f328","M232 96l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zm0 48c37.1 0 67.6-28 71.6-64L320 80c8.8 0 16 7.2 16 16l0 352c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l16.4 0c4 36 34.5 64 71.6 64l80 0zM291.9 32C279 12.7 257 0 232 0L152 0c-25 0-47 12.7-59.9 32L64 32C28.7 32 0 60.7 0 96L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64l-28.1 0z"],"thumbs-down":[512,512,[128078,61576],"f165","M360 32l7.4 .4c35 3.6 62.5 32.2 64.4 67.7 17.8 11.8 30.1 31.4 32 53.9l.2 6c0 5.7-.7 11.2-2 16.5 10.2 11.5 16.8 26.3 17.8 42.7l.2 4.8c0 13.2-3.6 25.4-9.8 36 4.9 8.4 8.2 17.9 9.3 28l.4 8c0 37.3-28.3 67.9-64.6 71.6l-7.4 .4-109.7 0 14.1 30 3.1 7.6c12.5 35.7-1.8 75.5-34.2 95l-7.2 3.9c-37.5 17.6-81.7 3.6-102.6-31.2l-.6-.9-2.7-5-.6-1.2-30.1-64c-9.4 17.8-28 29.9-49.5 29.9l-32 0c-30.9 0-56-25.1-56-56L0 152c0-30.9 25.1-56 56-56l32 0c12.4 0 23.9 4.1 33.2 11 13.2-21.4 32-39.4 55-51.6l12.2-6.5 .7-.3 6.6-3.2 .7-.3 7.1-3c16.7-6.6 34.5-9.9 52.6-9.9L360 32zM255.9 80c-12 0-23.9 2.3-35.1 6.6l-4.7 2-5.3 2.6 0 0-12.2 6.5c-29.2 15.5-48.3 44.9-50.7 77.6l-.2 8 0 112.9 .1 4.1c.5 8.2 2.5 16.2 6 23.7l56.8 120.9 2.1 3.8c8.4 13.7 26 19.1 40.8 12.2l2.9-1.6c13-7.8 18.7-23.7 13.7-38l-1.2-3-30.2-64.2c-3.5-7.4-2.9-16.1 1.5-23.1s12-11.1 20.2-11.1l147.5 0 2.4-.1c11.3-1.1 20.3-10.1 21.4-21.4l.1-2.5c0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c4.4-3.9 7.4-9.3 8-15.3l.2-2.7c0-8.4-4.4-15.9-11.2-20.2-10.7-6.9-14.2-20.9-8-32 1.5-2.6 2.5-5.6 2.9-8.6l.2-3.2c0-10.6-6.9-19.6-16.6-22.8-11.7-3.8-18.7-15.9-16-28 .2-.9 .3-1.8 .4-2.6l.2-2.6c0-12.4-9.5-22.6-21.6-23.8L360 80 255.9 80zM56 144c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0z"],"id-badge":[384,512,[],"f2c1","M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16-64 0c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0z"],"square-check":[448,512,[9745,9989,61510,"check-square"],"f14a","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zm230.7 89.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z"],"chess-bishop":[320,512,[9821],"f43a","M216 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 81.8 98.1c24.7 29.6 38.2 67 38.2 105.6 0 43.7-17.4 85.7-48.3 116.6l-8.6 8.6 46.5 58.2c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L47.4 512C21.2 512 0 490.8 0 464.6 0 453.9 3.7 443.4 10.4 435l46.5-58.2-8.6-8.6C17.4 337.4 0 295.4 0 251.7 0 213.1 13.5 175.8 38.2 146.1L120 48 104 48C90.7 48 80 37.3 80 24S90.7 0 104 0L216 0zM94.4 406.8l-45.7 57.2 222.7 0-45.7-57.1-5.5-6.9-120.3 0-5.5 6.8zM156.9 78.7L75.1 176.8c-15.3 18.4-24.6 41-26.7 64.7L48 251.7c0 31 12.3 60.7 34.2 82.7l17.7 17.7 120.2 0c6.2-6.2 12.1-12.1 17.8-17.7 21.9-21.9 34.2-51.6 34.2-82.6l-.4-10.2c-1.5-17-6.7-33.3-15.2-48L209 241c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l51.8-51.8-63.7-76.5-3.1-3.8-3.1 3.8z"],"envelope-open":[512,512,[62135],"f2b6","M512 416c0 35.3-28.5 64-63.9 64L64 480c-35.4 0-64-28.7-64-64L0 164c.1-15.5 7.8-30 20.5-38.8L206-2.7c30.1-20.7 69.8-20.7 99.9 0L491.5 125.2c12.8 8.8 20.4 23.3 20.5 38.8l0 252zM64 432l384.1 0c8.8 0 15.9-7.1 15.9-16l0-191.7-154.8 117.4c-31.4 23.9-74.9 23.9-106.4 0L48 224.3 48 416c0 8.9 7.2 16 16 16zM463.6 164.4L278.7 36.8c-13.7-9.4-31.7-9.4-45.4 0L48.4 164.4 231.8 303.5c14.3 10.8 34.1 10.8 48.4 0L463.6 164.4z"],"circle-xmark":[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z"],"square-caret-up":[448,512,["caret-square-up"],"f151","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9S337.5 320 328 320l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"],"file-image":[384,512,[128443],"f1c5","M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM259.4 432l-134.8 0c-15.8 0-28.6-12.8-28.6-28.6 0-6.4 2.1-12.5 6-17.6l67.6-86.9C175 292 183.3 288 192 288s17 4 22.4 10.9L282 385.9c3.9 5 6 11.2 6 17.6 0 15.8-12.8 28.6-28.6 28.6zM112 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"square-caret-right":[448,512,["caret-square-right"],"f152","M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4S160 369.5 160 360l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z"],sun:[576,512,[9728],"f185","M200.6-7.9c-6.7-4.4-15.1-5.2-22.5-2.2S165.4-.5 163.9 7.3L143 110.6 39.7 131.4c-7.8 1.6-14.4 7-17.4 14.3s-2.2 15.8 2.2 22.5L82.7 256 24.5 343.8c-4.4 6.7-5.2 15.1-2.2 22.5s9.6 12.8 17.4 14.3L143 401.4 163.9 504.7c1.6 7.8 7 14.4 14.3 17.4s15.8 2.2 22.5-2.2l87.8-58.2 87.8 58.2c6.7 4.4 15.1 5.2 22.5 2.2s12.8-9.6 14.3-17.4l20.9-103.2 103.2-20.9c7.8-1.6 14.4-7 17.4-14.3s2.2-15.8-2.2-22.5l-58.2-87.8 58.2-87.8c4.4-6.7 5.2-15.1 2.2-22.5s-9.6-12.8-17.4-14.3L433.8 110.6 413 7.3C411.4-.5 406-7 398.6-10.1s-15.8-2.2-22.5 2.2L288.4 50.3 200.6-7.9zM186.9 135.7l17-83.9 71.3 47.3c8 5.3 18.5 5.3 26.5 0l71.3-47.3 17 83.9c1.9 9.5 9.3 16.8 18.8 18.8l83.9 17-47.3 71.3c-5.3 8-5.3 18.5 0 26.5l47.3 71.3-83.9 17c-9.5 1.9-16.9 9.3-18.8 18.8l-17 83.9-71.3-47.3c-8-5.3-18.5-5.3-26.5 0l-71.3 47.3-17-83.9c-1.9-9.5-9.3-16.9-18.8-18.8l-83.9-17 47.3-71.3c5.3-8 5.3-18.5 0-26.5l-47.3-71.3 83.9-17c9.5-1.9 16.8-9.3 18.8-18.8zM239.6 256a48.4 48.4 0 1 1 96.8 0 48.4 48.4 0 1 1 -96.8 0zm144.8 0a96.4 96.4 0 1 0 -192.8 0 96.4 96.4 0 1 0 192.8 0z"],image:[448,512,[],"f03e","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm128 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm136 72c8.5 0 16.4 4.5 20.7 11.8l80 136c4.4 7.4 4.4 16.6 .1 24.1S352.6 384 344 384l-240 0c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l17.2 24.6 46.5-79c4.3-7.3 12.2-11.8 20.7-11.8z"],lightbulb:[384,512,[128161],"f0eb","M296.5 291.1C321 265.2 336 230.4 336 192 336 112.5 271.5 48 192 48S48 112.5 48 192c0 38.4 15 73.2 39.5 99.1 21.3 22.4 44.9 54 53.3 92.9l102.4 0c8.4-39 32-70.5 53.3-92.9zm34.8 33C307.7 349 288 379.4 288 413.7l0 18.3c0 44.2-35.8 80-80 80l-32 0c-44.2 0-80-35.8-80-80l0-18.3C96 379.4 76.3 349 52.7 324.1 20 289.7 0 243.2 0 192 0 86 86 0 192 0S384 86 384 192c0 51.2-20 97.7-52.7 132.1zM144 184c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6 39.4-88 88-88 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.1 0-40 17.9-40 40z"],"address-card":[576,512,[62140,"contact-card","vcard"],"f2bb","M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm-32 40c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z"],"face-meh":[512,512,[128528,"meh"],"f11a","M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM176 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"],map:[512,512,[128506,62072],"f279","M512 48c0-8.3-4.3-16-11.3-20.4s-15.9-4.8-23.3-1.1L352.5 88.1 180 29.4c-13.7-4.7-28.7-3.8-41.9 2.3L13.8 90.3C5.4 94.2 0 102.7 0 112L0 464c0 8.2 4.2 15.9 11.1 20.3s15.6 4.9 23.1 1.4l127.3-59.9 170.7 56.9c13.7 4.6 28.5 3.7 41.6-2.5l124.4-58.5c8.4-4 13.8-12.4 13.8-21.7l0-352zM144 82.1l0 299-96 45.2 0-299 96-45.2zm48 303.3l0-301.1 128 43.5 0 300.3-128-42.7zM368 134l96-47.4 0 298.2-96 45.2 0-296z"],"hand-point-down":[384,512,[],"f0a7","M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7-3.1-.5-6.2-.7-9.4-.7-20 0-37.9 9.2-49.7 23.6-9-4.9-19.4-7.6-30.3-7.6-15.1 0-29 5.3-40 14-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-80 0zM0 192l0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2 25.3 0 47.2-14.7 57.6-36 7 2.6 14.5 4 22.4 4 20 0 37.9-9.2 49.7-23.6 9 4.9 19.4 7.6 30.3 7.6 35.3 0 64-28.7 64-64l0-88C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 34c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z"],"face-meh-blank":[512,512,[128566,"meh-blank"],"f5a4","M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256a256 256 0 1 1 -512 0 256 256 0 1 1 512 0zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"face-grin-tongue":[512,512,[128539,"grin-tongue"],"f589","M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 74.1 38.8 139.2 97.1 176-.7-5.2-1.1-10.6-1.1-16l0-53.5c-10.2-12.6-18.3-26.9-23.8-42.4-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8-5.5 15.6-13.6 29.9-23.8 42.5l0 53.5c0 5.4-.4 10.8-1.1 16 58.4-36.8 97.1-101.9 97.1-176zm48 0c0 116.3-77.6 214.6-183.9 245.7-19.5 16.4-44.6 26.3-72.1 26.3s-52.6-9.9-72.1-26.3C77.6 470.6 0 372.3 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm16 208l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"],futbol:[512,512,[9917,"futbol-ball","soccer-ball"],"f1e3","M387 228.3c-4.4-2.8-7.6-7-9.2-11.9s-1.4-10.2 .5-15L411.6 118c-19.9-22.4-44.6-40.5-72.4-52.7l-69.1 57.6c-4 3.3-9 5.1-14.1 5.1s-10.2-1.8-14.1-5.1L172.8 65.3c-27.8 12.2-52.5 30.3-72.4 52.7l33.4 83.4c1.9 4.8 2.1 10.1 .5 15s-4.9 9.1-9.2 11.9L49 276.2c3 30.9 12.7 59.7 27.6 85.2l89.7-6c5.2-.3 10.3 1.1 14.5 4.2s7.2 7.4 8.4 12.5l22 87.2c14.4 3.2 29.4 4.8 44.8 4.8s30.3-1.7 44.8-4.8l22-87.2c1.3-5 4.2-9.4 8.4-12.5s9.3-4.5 14.5-4.2l89.7 6c15-25.4 24.7-54.3 27.6-85.1L387 228.3zM256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zm62 221c8.4 6.1 11.9 16.9 8.7 26.8l-18.3 56.3c-3.2 9.9-12.4 16.6-22.8 16.6l-59.2 0c-10.4 0-19.6-6.7-22.8-16.6l-18.3-56.3c-3.2-9.9 .3-20.7 8.7-26.8l47.9-34.8c8.4-6.1 19.8-6.1 28.2 0L318 221z"],"face-surprise":[512,512,[128558,"surprise"],"f5c2","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-48 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"],folder:[512,512,[128193,128447,61716,"folder-blank"],"f07b","M64 400l384 0c8.8 0 16-7.2 16-16l0-240c0-8.8-7.2-16-16-16l-149.3 0c-17.3 0-34.2-5.6-48-16L212.3 83.2c-2.8-2.1-6.1-3.2-9.6-3.2L64 80c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16zm384 48L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64z"],cloud:[576,512,[9729],"f0c2","M80 192c0-88.4 71.6-160 160-160 47.1 0 89.4 20.4 118.7 52.7 10.6-3.1 21.8-4.7 33.3-4.7 66.3 0 120 53.7 120 120 0 13.2-2.1 25.9-6.1 37.8 41.6 21.1 70.1 64.3 70.1 114.2 0 70.7-57.3 128-128 128l-304 0c-79.5 0-144-64.5-144-144 0-56.8 32.9-105.9 80.7-129.4-.4-4.8-.7-9.7-.7-14.6zM240 80c-61.9 0-112 50.1-112 112 0 8.4 .9 16.6 2.7 24.5 2.7 12.1-4.3 24.3-16.1 28.1-38.7 12.4-66.6 48.7-66.6 91.4 0 53 43 96 96 96l304 0c44.2 0 80-35.8 80-80 0-37.4-25.7-68.9-60.5-77.6-7.5-1.9-13.6-7.2-16.5-14.3s-2.1-15.2 2-21.7c7-11.1 11-24.2 11-38.3 0-39.8-32.2-72-72-72-11.1 0-21.5 2.5-30.8 6.9-10.5 5-23.1 1.7-29.8-7.8-20.3-28.6-53.7-47.1-91.3-47.1z"],circle:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],"f111","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z"],"face-grin-squint":[512,512,[128518,"grin-squint"],"f585","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zm-249.6-143c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z"],"circle-user":[512,512,[62142,"user-circle"],"f2bd","M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6-35.6-37.3-57.5-87.9-57.5-143.6 0-114.9 93.1-208 208-208s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z"],"rectangle-list":[512,512,["list-alt"],"f022","M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM160 320a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm104-56l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],hand:[512,512,[129306,9995,"hand-paper"],"f256","M256.5 0c-25.3 0-47.2 14.7-57.6 36-7-2.6-14.5-4-22.4-4-35.3 0-64 28.7-64 64l0 165.5-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L107 437c48 48 113.1 75 181 75l16.5 0c1.5 0 3-.1 4.5-.4 91.7-6.2 165-79.4 171.1-171.1 .3-1.5 .4-3 .4-4.5l0-176c0-35.3-28.7-64-64-64-5.5 0-10.9 .7-16 2l0-2c0-35.3-28.7-64-64-64-7.9 0-15.4 1.4-22.4 4-10.4-21.3-32.3-36-57.6-36zm-16 96.1l0-.1 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 168c0 13.3 10.7 24 24 24s24-10.7 24-24l0-136c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-8.8 7.2-16 16-16s16 7.2 16 16l0 172.9c-.1 .6-.1 1.3-.2 1.9-3.4 69.7-59.3 125.6-129 129-.6 0-1.3 .1-1.9 .2L288 464C232.9 464 180 442.1 141 403.1L53.2 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l43.7 43.7c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-223.4c0-8.8 7.2-16 16-16 8.8 0 16 7.1 16 15.9l0 136.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-135.9z"],"thumbs-up":[512,512,[128077,61575],"f164","M171.5 38.8C192.3 4 236.5-10 274 7.6l7.2 3.8C316 32.3 330 76.5 312.4 114l0 0-14.1 30 109.7 0 7.4 .4c36.3 3.7 64.6 34.4 64.6 71.6 0 13.2-3.6 25.4-9.8 36 6.1 10.6 9.7 22.8 9.8 36 0 18.3-6.9 34.8-18 47.5 1.3 5.3 2 10.8 2 16.5 0 25.1-12.9 47-32.2 59.9-1.9 35.5-29.4 64.2-64.4 67.7l-7.4 .4-104.1 0c-18 0-35.9-3.4-52.6-9.9l-7.1-3-.7-.3-6.6-3.2-.7-.3-12.2-6.5c-12.3-6.5-23.3-14.7-32.9-24.1-4.1 26.9-27.3 47.4-55.3 47.4l-32 0c-30.9 0-56-25.1-56-56L0 200c0-30.9 25.1-56 56-56l32 0c10.8 0 20.9 3.1 29.5 8.5l50.1-106.5 .6-1.2 2.7-5 .6-.9zM56 192c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0zM253.6 51c-14.8-6.9-32.3-1.6-40.7 12l-2.2 4-56.8 120.9c-3.5 7.5-5.5 15.5-6 23.7l-.1 4.2 0 112.9 .2 7.9c2.4 32.7 21.4 62.1 50.7 77.7l11.5 6.1 6.3 3.1c12.4 5.6 25.8 8.5 39.4 8.5l104.1 0 2.4-.1c12.1-1.2 21.6-11.5 21.6-23.9l-.2-2.6c-.1-.9-.2-1.7-.4-2.6-2.7-12.1 4.3-24.2 16-28 9.7-3.1 16.6-12.2 16.6-22.8 0-4.3-1.1-8.2-3.1-11.8-6.3-11.1-2.8-25.2 8-32 6.8-4.3 11.2-11.8 11.2-20.2 0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c5.1-4.5 8.2-10.9 8.2-18l-.1-2.4c-1.1-11.3-10.1-20.3-21.4-21.4l-2.4-.1-147.5 0c-8.2 0-15.8-4.2-20.2-11.1-4.4-6.9-5-15.7-1.5-23.1L269 93.6c7-15 1.4-32.7-12.5-41L253.6 51z"],building:[384,512,[127970,61687],"f1ad","M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 80 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z"],"chess-rook":[384,512,[9820],"f447","M352 0c17.7 0 32 14.3 32 32l0 138.7c0 13.8-4.5 27.3-12.8 38.4l-35.2 46.9 0 112 40.8 68.1c4.7 7.8 7.2 16.7 7.2 25.8 0 27.7-22.4 50.1-50.1 50.1L50.1 512c-27.7 0-50.1-22.4-50.1-50.1 0-9.1 2.5-18 7.2-25.8L48 368 48 256 12.8 209.1C4.5 198 0 184.5 0 170.7L0 32C0 14.3 14.3 0 32 0L352 0zM48.3 460.8l-.3 1.1c0 1.2 1 2.1 2.1 2.1l283.8 0c1.2 0 2.1-1 2.1-2.1l-.3-1.1-36.5-60.8-214.4 0-36.5 60.8zM48 170.7c0 2.6 .6 5.1 1.8 7.4l1.4 2.2 0 0 35.2 46.9 9.6 12.8 0 112 192 0 0-112 9.6-12.8 35.2-46.9 0 0 1.4-2.2c1.2-2.3 1.8-4.8 1.8-7.4l0-122.7-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 122.7z"],"circle-question":[512,512,[62108,"question-circle"],"f059","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],file:[384,512,[128196,128459,61462],"f15b","M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z"],"face-sad-cry":[512,512,[128557,"sad-cry"],"f5b3","M400 406.1L400 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 152.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4L160 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1C72.6 368.2 48 315 48 256 48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM152 196l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm172 20c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z"],"calendar-minus":[448,512,[],"f272","M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm32 136l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"face-tired":[512,512,[128555,"tired"],"f5c8","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3c19 17.8 32.5 41.7 32.5 63.7 0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zM122.6 159.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z"],"hand-point-right":[512,512,[],"f0a4","M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 176 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4-.5-3.1-.7-6.2-.7-9.4 0-20 9.2-37.9 23.6-49.7-4.9-9-7.6-19.4-7.6-30.3 0-15.1 5.3-29 14-40-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80zM192 64l0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16 0 25.3-14.7 47.2-36 57.6 2.6 7 4 14.5 4 22.4 0 20-9.2 37.9-23.6 49.7 4.9 9 7.6 19.4 7.6 30.3 0 35.3-28.7 64-64 64l-88 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l34 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z"],"circle-up":[512,512,[61467,"arrow-alt-circle-up"],"f35b","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm11.3-387.3c-6.2-6.2-16.4-6.2-22.6 0l-104 104c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l72 0 0 104c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-104 72 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-104-104z"],"hand-scissors":[512,512,[],"f257","M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1-8.2-1.8C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.6-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-104 0c-35.3 0-64-28.7-64-64 0-2.8 .2-5.6 .5-8.3-19.4-11-32.5-31.8-32.5-55.7 0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.6s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11 0 8.8 7.2 16 16 16 9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6 0 8.8 7.2 16 16 16l104 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l0 0-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12L262.8 171.8 74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z"],gem:[512,512,[128142],"f3a5","M168.5 72l87.5 93 87.5-93-175 0zM383.9 99.1l-72.3 76.9 129 0-56.6-76.9zm50 124.9L78.1 224 256 420.3 433.9 224zM71.5 176l129 0-72.3-76.9-56.6 76.9zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z"],"rectangle-xmark":[512,512,[62164,"rectangle-times","times-rectangle","window-close"],"f410","M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm334.1 49.9c9.4 9.4 9.4 24.6 0 33.9l-44.1 44.1 44.1 44.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-44.1-44.1-44.1 44.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l44.1-44.1-44.1-44.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l44.1 44.1 44.1-44.1c9.4-9.4 24.6-9.4 33.9 0z"],"trash-can":[448,512,[61460,"trash-alt"],"f2ed","M166.2-16c-13.3 0-25.3 8.3-30 20.8L120 48 24 48C10.7 48 0 58.7 0 72S10.7 96 24 96l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0-16.2-43.2C307.1-7.7 295.2-16 281.8-16L166.2-16zM32 144l0 304c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-304-48 0 0 304c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16l0-304-48 0zm160 72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176zm112 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176z"],"life-ring":[512,512,[],"f1cd","M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256S489.9 137.1 453.2 92.7L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0S37.7 71.6 47 81L58.8 92.7C22.1 137.1 0 193.9 0 256S22.1 374.9 58.8 419.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"],copyright:[512,512,[169],"f1f9","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM205.1 306.9c-28.1-28.1-28.1-73.7 0-101.8s73.7-28.1 101.8 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-46.9-46.9-122.8-46.9-169.7 0s-46.9 122.8 0 169.7 122.8 46.9 169.7 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-28.1 28.1-73.7 28.1-101.8 0z"],"circle-left":[512,512,[61840,"arrow-alt-circle-left"],"f359","M48 256a208 208 0 1 1 416 0 208 208 0 1 1 -416 0zm464 0a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM124.7 244.7c-6.2 6.2-6.2 16.4 0 22.6l104 104c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-72 104 0c13.3 0 24-10.7 24-24l0-16c0-13.3-10.7-24-24-24l-104 0 0-72c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-104 104z"],calendar:[448,512,[128197,128198],"f133","M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 48 352 0 0-48c0-8.8-7.2-16-16-16l-264 0zM48 224l0 192c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-192-352 0z"],"face-frown-open":[512,512,[128550,"frown-open"],"f57a","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4 16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"chart-bar":[512,512,["bar-chart"],"f080","M48 56c0-13.3-10.7-24-24-24S0 42.7 0 56L0 400c0 44.2 35.8 80 80 80l408 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L80 432c-17.7 0-32-14.3-32-32L48 56zm104 72l208 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L152 80c-13.3 0-24 10.7-24 24s10.7 24 24 24zm0 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0z"],house:[512,512,[127968,63498,63500,"home","home-alt","home-lg-alt"],"f015","M240 6.1c9.1-8.2 22.9-8.2 32 0l232 208c9.9 8.8 10.7 24 1.8 33.9s-24 10.7-33.9 1.8l-8-7.2 0 205.3c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-205.3-8 7.2c-9.9 8.8-25 8-33.9-1.8s-8-25 1.8-33.9L240 6.1zm16 50.1L96 199.7 96 448c0 8.8 7.2 16 16 16l48 0 0-104c0-39.8 32.2-72 72-72l48 0c39.8 0 72 32.2 72 72l0 104 48 0c8.8 0 16-7.2 16-16l0-248.3-160-143.4zM208 464l96 0 0-104c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 104z"],"face-frown":[512,512,[9785,"frown"],"f119","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM334.7 384.6C319.7 369 293.6 352 256 352s-63.7 17-78.7 32.6c-9.2 9.6-24.4 9.9-33.9 .7s-9.9-24.4-.7-33.9c22.1-23 60-47.4 113.3-47.4s91.2 24.4 113.3 47.4c9.2 9.6 8.9 24.8-.7 33.9s-24.8 8.9-33.9-.7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],user:[448,512,[128100,62144,62470,"user-alt","user-large"],"f007","M144 128a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zm208 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM48 480c0-70.7 57.3-128 128-128l96 0c70.7 0 128 57.3 128 128l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8c0-97.2-78.8-176-176-176l-96 0C78.8 304 0 382.8 0 480l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z"],snowflake:[512,512,[10052,10054],"f2dc","M280.1-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 78.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l57 57 0 76.5-66.2-38.2-20.9-77.8c-3.4-12.8-16.6-20.4-29.4-17S95.2 98 98.7 110.8l8.4 31.5-67.6-39C28 96.6 13.3 100.5 6.7 112S4 138.2 15.5 144.8l67.6 39-31.5 8.4c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l77.8-20.9 66.2 38.2-66.2 38.2-77.8-20.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l31.5 8.4-67.6 39C4 373.8 .1 388.5 6.7 400s21.3 15.4 32.8 8.8l67.6-39-8.4 31.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l20.9-77.8 66.2-38.2 0 76.5-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 78.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-78.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-76.5 66.2 38.2 20.9 77.8c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-8.4-31.5 67.6 39c11.5 6.6 26.2 2.7 32.8-8.8s2.7-26.2-8.8-32.8l-67.6-39 31.5-8.4c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-77.8 20.9-66.2-38.2 66.2-38.2 77.8 20.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-31.5-8.4 67.6-39c11.5-6.6 15.4-21.3 8.8-32.8s-21.3-15.4-32.8-8.8l-67.6 39 8.4-31.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-20.9 77.8-66.2 38.2 0-76.5 57-57c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-78.1z"],bookmark:[384,512,[128278,61591],"f02e","M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 417.1c0 25.6-28.5 40.8-49.8 26.6L192 412.8 49.8 507.7C28.5 521.9 0 506.6 0 481.1L0 64zM64 48c-8.8 0-16 7.2-16 16l0 387.2 117.4-78.2c16.1-10.7 37.1-10.7 53.2 0L336 451.2 336 64c0-8.8-7.2-16-16-16L64 48z"],"square-caret-left":[448,512,["caret-square-left"],"f191","M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4S288 142.5 288 152l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z"],handshake:[640,512,[129309,62662,"handshake-alt","handshake-simple"],"f2b5","M598.1 75.4c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3l-74.5 54.2-9.9-6.6C465.8 71 442.6 64 418.9 64l-59.2 0-.4 0-143.6 0c-26.7 0-52.5 8.9-73.4 25.1L70.1 36.6c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5l88 64c9.6 6.9 22.7 5.9 31.1-2.4l3.9-3.9c13.5-13.5 31.8-21.1 50.9-21.1l46.3 0-91.7 91.7c-15.6 15.6-15.6 40.9 0 56.6l.8 .8C218 308 294 308 340.9 261.1l27.1-27.1 97.8 97.8c15.6 15.6 15.6 40.9 0 56.6l-9.8 9.8-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l28 28c-17.5 10.4-37.2 16.7-57.6 18.5L313 399c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l15 15-3.8 0c-36.1 0-70.7-14.3-96.2-39.8L65 279c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L160.2 442.1c34.5 34.5 81.3 53.9 130.1 53.9l51.8 0 1 1 1-1 5.7 0c48.8 0 95.6-19.4 130.1-53.9l19.9-19.9c1.2-1.2 2.3-2.3 3.4-3.5 .7-.5 1.3-1.1 1.9-1.7L609 313c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-53.8 53.8c-4.2-12.8-11.3-24.9-21.5-35.1L385 183c-9.4-9.4-24.6-9.4-33.9 0l-44.1 44.1c-26.5 26.5-68.5 28-96.7 4.6l98.7-98.7c13.4-13.4 31.6-21 50.6-21.1l8.5 0 .2 0 50.8 0c14.2 0 28.1 4.2 39.9 12.1L482.7 140c8.4 5.6 19.3 5.3 27.4-.6l88-64z"],"face-smile-wink":[512,512,[128521,"smile-wink"],"f4da","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z"],"face-grin-squint-tears":[512,512,[129315,"grin-squint-tears"],"f586","M403.1 403.1c67.2-67.2 78.8-168.9 34.9-248l36.7-5.2c4.5-.6 8.8-1.6 13.1-2.8 44.6 94.9 27.7 211.5-50.7 290s-195.1 95.3-290 50.7c1.2-4.2 2.1-8.6 2.8-13.1l5.2-36.7c79.1 43.9 180.8 32.3 248-34.9zM75 75c78.4-78.4 195.1-95.3 290-50.7-1.2 4.2-2.1 8.6-2.8 13.1l-5.2 36.7c-79.1-43.9-180.8-32.3-248 34.9s-78.8 168.9-34.9 248l-36.7 5.2c-4.5 .6-8.8 1.6-13.1 2.8-44.6-94.9-27.7-211.5 50.7-290zM370.9 206.5c5.8-10.9 21.1-12.4 26.4-1.3 25.6 53.5 16.2 119.6-28.2 163.9-44.3 44.3-110.3 53.7-163.8 28.2-11.1-5.3-9.6-20.6 1.3-26.4 32-17.1 64.2-40.8 93.8-70.4 29.7-29.7 53.4-61.9 70.5-94zM93.3 281.9c-1.7-8 2.9-15.9 10.6-18.4l84.6-28c5.7-1.9 12.1-.4 16.3 3.9s5.8 10.6 3.9 16.3l-28 84.6c-2.6 7.7-10.5 12.3-18.4 10.6s-13.4-9-12.7-17.1l3.9-43.1-43.1 3.9c-8.1 .7-15.5-4.7-17.1-12.7zM294.6 110.4l-3.9 43.1 43.1-3.9c8.1-.7 15.5 4.7 17.1 12.7s-2.9 15.9-10.6 18.4l-84.6 28c-5.7 1.9-12.1 .4-16.3-3.9s-5.8-10.6-3.9-16.3l28-84.6c2.6-7.7 10.5-12.3 18.4-10.6s13.4 9 12.7 17.1zM512 51.4c0 25.6-18.8 47.3-44.1 50.9L421.1 109c-10.6 1.5-19.6-7.5-18.1-18.1l6.7-46.7C413.3 18.8 435 0 460.6 0 489 0 512 23 512 51.4zM44.1 409.7L90.9 403c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C98.7 493.2 77 512 51.4 512 23 512 0 489 0 460.6 0 435 18.8 413.3 44.1 409.7z"],"file-audio":[384,512,[],"f1c7","M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM221.9 267.6c-4.7 10-.3 21.9 9.7 26.6 19.2 8.9 32.4 28.3 32.4 50.8s-13.2 41.9-32.4 50.8c-10 4.7-14.4 16.6-9.7 26.6s16.6 14.4 26.6 9.7C281.2 416.8 304 383.6 304 345s-22.8-71.9-55.6-87.1c-10-4.7-21.9-.3-26.6 9.7zM104 305c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24l16 0 27.2 34c3 3.8 7.6 6 12.5 6l.3 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16l-.3 0c-4.9 0-9.5 2.2-12.5 6l-27.2 34-16 0zM223.3 373c9.9-5.4 16.7-16 16.7-28.1s-6.7-22.7-16.7-28.1c-7.8-4.2-15.3 3.3-15.3 12.1l0 32c0 8.8 7.6 16.3 15.3 12.1z"],"calendar-xmark":[448,512,["calendar-times"],"f273","M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm171.9 92.1c9.4 9.4 9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0z"],"circle-down":[512,512,[61466,"arrow-alt-circle-down"],"f358","M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM244.7 387.3c6.2 6.2 16.4 6.2 22.6 0l104-104c4.6-4.6 5.9-11.5 3.5-17.4S366.5 256 360 256l-72 0 0-104c0-13.3-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24l0 104-72 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l104 104z"],"file-lines":[384,512,[128441,128462,61686,"file-alt","file-text"],"f15c","M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"],comments:[576,512,[128490,61670],"f086","M76.2 258.7c6.1-15.2 4-32.6-5.6-45.9-14.5-20.1-22.6-43.7-22.6-68.8 0-66.8 60.5-128 144-128s144 61.2 144 128-60.5 128-144 128c-15.9 0-31.1-2.3-45.3-6.5-10.3-3.1-21.4-2.5-31.4 1.5l-50.4 20.2 11.4-28.5zM0 144c0 35.8 11.6 69.1 31.7 96.8L1.9 315.2c-1.3 3.2-1.9 6.6-1.9 10 0 14.8 12 26.8 26.8 26.8 3.4 0 6.8-.7 10-1.9l96.3-38.5c18.6 5.5 38.4 8.4 58.9 8.4 106 0 192-78.8 192-176S298-32 192-32 0 46.8 0 144zM384 512c20.6 0 40.3-3 58.9-8.4l96.3 38.5c3.2 1.3 6.6 1.9 10 1.9 14.8 0 26.8-12 26.8-26.8 0-3.4-.7-6.8-1.9-10l-29.7-74.4c20-27.8 31.7-61.1 31.7-96.8 0-82.4-61.7-151.5-145-170.7-1.6 16.3-5.1 31.9-10.1 46.9 63.9 14.8 107.2 67.3 107.2 123.9 0 25.1-8.1 48.7-22.6 68.8-9.6 13.3-11.7 30.6-5.6 45.9l11.4 28.5-50.4-20.2c-10-4-21.1-4.5-31.4-1.5-14.2 4.2-29.4 6.5-45.3 6.5-72.2 0-127.1-45.7-140.7-101.2-15.6 3.2-31.7 5-48.1 5.2 16.4 81.9 94.7 144 188.8 144z"],"circle-check":[512,512,[61533,"check-circle"],"f058","M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm70.7 121.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L243.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z"],moon:[512,512,[127769,9214],"f186","M239.3 48.7c-107.1 8.5-191.3 98.1-191.3 207.3 0 114.9 93.1 208 208 208 33.3 0 64.7-7.8 92.6-21.7-103.4-23.4-180.6-115.8-180.6-226.3 0-65.8 27.4-125.1 71.3-167.3zM0 256c0-141.4 114.6-256 256-256 19.4 0 38.4 2.2 56.7 6.3 9.9 2.2 17.3 10.5 18.5 20.5s-4 19.8-13.1 24.4c-60.6 30.2-102.1 92.7-102.1 164.8 0 101.6 82.4 184 184 184 5 0 9.9-.2 14.8-.6 10.1-.8 19.6 4.8 23.8 14.1s2 20.1-5.3 27.1C387.3 484.8 324.8 512 256 512 114.6 512 0 397.4 0 256z"],"closed-captioning":[512,512,[],"f20a","M448 112c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l384 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm88 144l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z"],images:[576,512,[],"f302","M480 80c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16l-320 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l320 0zM160 32c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L160 32zm80 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm140.7 3.8c-4.3-7.3-12.2-11.8-20.7-11.8s-16.4 4.5-20.7 11.8l-46.5 79-17.2-24.6c-4.5-6.4-11.8-10.2-19.7-10.2s-15.2 3.8-19.7 10.2l-56 80c-5.1 7.3-5.8 16.9-1.6 24.8S191.1 320 200 320l240 0c8.6 0 16.6-4.6 20.8-12.1s4.2-16.7-.1-24.1l-80-136zM48 152c0-13.3-10.7-24-24-24S0 138.7 0 152L0 448c0 35.3 28.7 64 64 64l360 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 464c-8.8 0-16-7.2-16-16l0-296z"],"circle-right":[512,512,[61838,"arrow-alt-circle-right"],"f35a","M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3c6.2-6.2 6.2-16.4 0-22.6l-104-104c-4.6-4.6-11.5-5.9-17.4-3.5S256 145.5 256 152l0 72-104 0c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24l104 0 0 72c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l104-104z"],"id-card":[576,512,[62147,"drivers-license"],"f2c2","M48 416l0-256 480 0 0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM376 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z"],"circle-play":[512,512,[61469,"play-circle"],"f144","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM212.5 147.5c-7.4-4.5-16.7-4.7-24.3-.5S176 159.3 176 168l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88zM298 256l-74 45.2 0-90.4 74 45.2z"],"face-laugh-beam":[512,512,[128513,"laugh-beam"],"f59a","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z"],"address-book":[512,512,[62138,"contact-book"],"f2b9","M384 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16L80 64c0-8.8 7.2-16 16-16l288 0zM96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM240 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm-32 40c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z"],hourglass:[384,512,[9203,62032,"hourglass-empty"],"f254","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5l81.5 81.5-81.5 81.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5l-81.5-81.5 81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24S373.3 0 360 0L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19-224 0 0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z"],headphones:[448,512,[127911,62863,"headphones-alt","headphones-simple"],"f025","M48 224c0-97.2 78.8-176 176-176s176 78.8 176 176l0 44.8c-14.1-8.2-30.5-12.8-48-12.8l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-17.5 0-33.9 4.7-48 12.8L48 224zm0 128c0-26.5 21.5-48 48-48l16 0 0 128-16 0c-26.5 0-48-21.5-48-48l0-32zm352 0l0 32c0 26.5-21.5 48-48 48l-16 0 0-128 16 0c26.5 0 48 21.5 48 48z"],"file-powerpoint":[384,512,[],"f1c4","M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm88 256c-13.3 0-24 10.7-24 24l0 128c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 28 0c37.6 0 68-30.4 68-68s-30.4-68-68-68l-52 0zm52 88l-28 0 0-40 28 0c11 0 20 9 20 20s-9 20-20 20z"],"window-maximize":[512,512,[128470],"f2d0","M48 224l0 160c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-160-416 0zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z"],"comment-dots":[512,512,[128172,62075,"commenting"],"f4ad","M0 240c0 54.4 19.3 104.6 51.9 144.9L3.1 474.3c-2 3.7-3.1 7.9-3.1 12.2 0 14.1 11.4 25.5 25.5 25.5 4 0 7.8-.6 11.5-2.1L153.4 460c31.4 12.9 66.1 20 102.6 20 141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240zM94 407.9c9.3-17.1 7.4-38.1-4.8-53.2-26.1-32.3-41.2-71.9-41.2-114.7 0-103.2 90.2-192 208-192s208 88.8 208 192-90.2 192-208 192c-30.2 0-58.7-5.9-84.3-16.4-11.9-4.9-25.3-4.8-37.1 .3L76 440.9 94 407.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"face-grin-tongue-wink":[512,512,[128540,"grin-tongue-wink"],"f58b","M366.9 432c.8-5.2 1.1-10.6 1.1-16l0-53.5c10.2-12.6 18.3-26.9 23.8-42.5 4.1-11.6-7.8-21.4-19.6-17.8-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 5.5 15.5 13.6 29.9 23.8 42.4l0 53.5c0 5.4 .4 10.8 1.1 16-58.4-36.8-97.1-101.9-97.1-176 0-114.9 93.1-208 208-208s208 93.1 208 208c0 74.1-38.8 139.2-97.1 176zm-38.8 69.7C434.4 470.6 512 372.3 512 256 512 114.6 397.4 0 256 0S0 114.6 0 256C0 372.3 77.6 470.6 183.9 501.7 203.4 518.1 228.5 528 256 528s52.6-9.9 72.1-26.3zM320 378.6l0 37.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-37.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9 2.8 12.6 20.8 12.6 23.6 0 2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM132 232c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zm228.4-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM288 208a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z"],"hourglass-half":[384,512,["hourglass-2"],"f252","M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5l-81.5 81.5 81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5l81.5-81.5-81.5-81.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5l-81.5-81.5-81.5 81.5zM80.8 432c-.5 4.3-.8 8.6-.8 13l0 19 224 0 0-19c0-4.4-.3-8.7-.8-13L80.8 432zM254.1 160l-124.1 0 62.1 62.1 62.1-62.1zm39.7-48C300.4 98.1 304 82.7 304 67l0-19-224 0 0 19c0 15.7 3.6 31.1 10.2 45l203.5 0z"],"credit-card":[512,512,[128179,62083,"credit-card-alt"],"f09d","M448 112c8.8 0 16 7.2 16 16l0 32-416 0 0-32c0-8.8 7.2-16 16-16l384 0zm16 112l0 160c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-160 416 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM80 344c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm144 0c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24z"],"hand-spock":[512,512,[128406],"f259","M138.3 80.8c-9.2-33.8 10.5-68.8 44.3-78.4 34-9.6 69.4 10.2 79 44.2L291.9 153.7 305.1 84c6.6-34.7 40.1-57.5 74.8-50.9 31.4 6 53 33.9 52 64.9 10-2.6 20.8-2.8 31.5-.1 34.3 8.6 55.1 43.3 46.6 77.6L454.7 397.2C437.8 464.7 377.2 512 307.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2-51.8-131.2c-13-32.9 3.2-70.1 36-83 11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L142.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37L73.8 323.4c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104c-2.9 11.7-13.4 19.9-25.5 19.9-16.5 0-28.9-15-25.8-31.2L383.7 99c1.7-8.7-4-17.1-12.7-18.7S354 84.3 352.3 93L320.5 260c-2.2 11.6-12.4 20-24.2 20-11 0-20.7-7.3-23.7-17.9L215.4 59.6z"],"bell-slash":[576,512,[128277,61943],"f1f6","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.8-87.8c17.5-3.3 30.8-18.7 30.8-37.1 0-6.7-1.8-13.3-5.1-19L485 321.7c-19-32.6-29-69.6-29-107.3l0-14.5c0-84.6-62.6-154.7-144-166.3l0-9.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 9.7c-42.2 6-79.4 27.8-105.4 59.1L41-24.9zM192.8 126.9C214.7 98.4 249.2 80 288 80 354.3 80 408 133.7 408 200l0 14.5c0 46.2 12.3 91.5 35.5 131.4l12.9 22.1-22.6 0-241.1-241.1zM132.5 345.9c19.5-33.4 31.3-70.7 34.6-109l-46.7-46.7c-.2 3.3-.3 6.6-.3 9.9l0 14.5c0 37.7-10 74.7-29 107.3L69.1 359.2c-3.4 5.8-5.1 12.3-5.1 19 0 20.9 16.9 37.8 37.8 37.8l244.4 0-48-48-178.6 0 12.9-22.1zM220.1 464c9.9 28 36.6 48 67.9 48s58-20 67.9-48l-135.8 0z"],star:[576,512,[11088,61446],"f005","M288.1-32c9 0 17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2s-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1zm0 76.8L230.3 158c-3.5 6.8-10 11.6-17.6 12.8l-125.5 20 89.8 89.9c5.4 5.4 7.9 13.1 6.7 20.7l-19.8 125.5 113.3-57.6c6.8-3.5 14.9-3.5 21.8 0l113.3 57.6-19.8-125.5c-1.2-7.6 1.3-15.3 6.7-20.7l89.8-89.9-125.5-20c-7.6-1.2-14.1-6-17.6-12.8L288.1 44.8z"],flag:[448,512,[127988,61725],"f024","M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4 44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0-35.1-17.6-75.4-22-113.5-12.5L48 52 48 24zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8 54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4-48.2-24.1-103.3-30.1-155.6-17.1l-68.6 17.2 0-237z"],lemon:[448,512,[127819],"f094","M368 80c-3.2 0-6.2 .4-8.9 1.3-19.1 5.5-46.1 10.7-74.3 3.3-57.4-14.9-124.6 7.4-174.7 57.5S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3-.8 2.8-1.3 5.8-1.3 8.9 0 17.7 14.3 32 32 32 3.2 0 6.2-.4 8.9-1.3 19.1-5.5 46.1-10.7 74.3-3.3 57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3 .8-2.8 1.3-5.8 1.3-8.9 0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80 0 7.7-1.1 15.2-3.1 22.3-4.6 15.8-7.1 32.9-3 48.9 20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3-7.1 2-14.6 3.1-22.3 3.1-44.2 0-80-35.8-80-80 0-7.7 1.1-15.2 3.1-22.3 4.6-15.8 7.1-32.9 3-48.9-20.1-77.6 10.9-161.5 70-220.7S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3 7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7-3.7 12.7-17.1 20-29.8 16.3S85.2 278 89 265.3c19.8-67.7 76.6-124.5 144.3-144.3 12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z"],"window-restore":[576,512,[],"f2d2","M512 80L224 80c-8.8 0-16 7.2-16 16l0 16-48 0 0-16c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-48 48 0c8.8 0 16-7.2 16-16l0-192c0-8.8-7.2-16-16-16zM368 288l-320 0 0 128c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-128zM64 160l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z"],"face-grin-hearts":[512,512,[128525,"grin-hearts"],"f584","M464 256c0 114.9-93.1 208-208 208S48 370.9 48 256c0-3.5 .1-7.1 .3-10.6-14-13.9-29.7-33.1-39.3-56.7-5.8 21.4-8.9 44-8.9 67.3 0 141.4 114.6 256 256 256S512 397.4 512 256c0-23.3-3.1-45.9-8.9-67.3-9.6 23.7-25.4 42.8-39.3 56.7 .2 3.5 .3 7 .3 10.6zM368 58.9c11.7-6 24.5-9.6 37.7-10.6-42.1-30.4-93.8-48.3-149.7-48.3S148.4 17.9 106.3 48.3c13.2 1 26 4.6 37.7 10.6 13.8-7.1 29.3-10.9 45.1-10.9l2.9 0c8.9 0 17.6 1.2 25.8 3.5 12.4-2.3 25.2-3.5 38.2-3.5s25.8 1.2 38.2 3.5c8.2-2.3 16.9-3.5 25.8-3.5l2.9 0c15.8 0 31.3 3.8 45.1 10.9zm4.2 243.4c-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 19.8 55.9 73.1 95.9 135.8 95.9 62.7 0 116-40.1 135.8-96 4.1-11.6-7.8-21.4-19.6-17.8zM322.9 96L320 96c-26.5 0-48 21.5-48 48 0 53.4 66.9 95.7 89 108.2 4.4 2.5 9.6 2.5 14 0 22.1-12.5 89-54.8 89-108.2 0-26.5-21.5-48-48-48l-2.9 0c-13.5 0-26.5 5.4-36 14.9l-9.1 9.1-9.1-9.1c-9.5-9.5-22.5-14.9-36-14.9zm-188 14.9c-9.5-9.5-22.5-14.9-36-14.9L96 96c-26.5 0-48 21.5-48 48 0 53.4 66.9 95.7 89 108.2 4.4 2.5 9.6 2.5 14 0 22.1-12.5 89-54.8 89-108.2 0-26.5-21.5-48-48-48l-2.9 0c-13.5 0-26.5 5.4-36 14.9l-9.1 9.1-9.1-9.1z"],"face-kiss-beam":[512,512,[128537,"kiss-beam"],"f597","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm240 16l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-64-92c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z"],"file-pdf":[576,512,[],"f1c1","M208 48L96 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0 48-80 0c-35.3 0-64-28.7-64-64L32 64C32 28.7 60.7 0 96 0L229.5 0c17 0 33.3 6.7 45.3 18.7L397.3 141.3c12 12 18.7 28.3 18.7 45.3l0 149.5-48 0 0-128-88 0c-39.8 0-72-32.2-72-72l0-88zM348.1 160L256 67.9 256 136c0 13.3 10.7 24 24 24l68.1 0zM240 380l32 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-12 0 0 28c0 11-9 20-20 20s-20-9-20-20l0-128c0-11 9-20 20-20zm32 80c11 0 20-9 20-20s-9-20-20-20l-12 0 0 40 12 0zm96-80l32 0c28.7 0 52 23.3 52 52l0 64c0 28.7-23.3 52-52 52l-32 0c-11 0-20-9-20-20l0-128c0-11 9-20 20-20zm32 128c6.6 0 12-5.4 12-12l0-64c0-6.6-5.4-12-12-12l-12 0 0 88 12 0zm76-108c0-11 9-20 20-20l48 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 24 28 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-128z"],"face-grin-wide":[512,512,[128515,"grin-alt"],"f581","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64 14.3-64 32-64 32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z"],"face-laugh-squint":[512,512,["laugh-squint"],"f59b","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm125.2 76.4c-6.5-14 5-28.4 20.4-28.4l220.8 0c15.4 0 26.8 14.4 20.4 28.4-22.8 49.4-72.8 83.6-130.8 83.6s-107.9-34.2-130.8-83.6zm-2.6-173.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z"],"face-kiss-wink-heart":[640,512,[128536,"kiss-wink-heart"],"f598","M386 439.5c-29.2 15.6-62.5 24.5-98 24.5-114.9 0-208-93.1-208-208S173.2 48 288 48c113.2 0 205.2 90.4 207.9 202.9 14.3 1.5 28.6 6 41.9 13.7 2 1.2 4 2.4 5.9 3.7 .2-4.1 .3-8.2 .3-12.3 0-141.4-114.6-256-256-256S32 114.6 32 256 146.6 512 288 512c41.4 0 80.5-9.8 115.1-27.3-5.8-12.9-12-28.5-17.2-45.2zM256 288c0 8.8 7.2 16 16 16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c26.5 0 48-21.5 48-48 0-12.3-4.6-23.5-12.2-32 7.6-8.5 12.2-19.7 12.2-32 0-26.5-21.5-48-48-48l-32 0c-8.8 0-16 7.2-16 16zm-48-48a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm152-44l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zM542.8 350c-2.2-18.3-12.9-34.6-28.9-43.8-28.1-16.2-63.9-6.6-80.1 21.5l-2.7 4.6c-24.5 42.5 7.9 117.9 24.4 150.8 5.1 10.1 15.5 16.1 26.8 15.5 36.7-2.2 118.2-11.7 142.8-54.2l2.7-4.6c16.2-28.1 6.6-63.9-21.5-80.1-16-9.2-35.4-10.4-52.4-3.1l-9.8 4.2-1.3-10.6z"],copy:[448,512,[],"f0c5","M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-197.5c0-17-6.7-33.3-18.7-45.3L370.7 18.7C358.7 6.7 342.5 0 325.5 0L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-48 0 0 16c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0 0-48-16 0z"],"chess-king":[448,512,[9818],"f43f","M224-32c13.3 0 24 10.7 24 24l0 40 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 80 161.8 0c21.1 0 38.2 17.1 38.2 38.2 0 6.4-1.6 12.7-4.7 18.3L357.2 374.5 405.6 435c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L79.4 512c-26.2 0-47.4-21.2-47.4-47.4 0-10.8 3.7-21.2 10.4-29.6L90.8 374.5 4.7 216.6C1.6 210.9 0 204.6 0 198.2 0 177.1 17.1 160 38.2 160l161.8 0 0-80-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-40c0-13.3 10.7-24 24-24zM131.8 400l-3.6 4.4-47.6 59.6 286.6 0-47.6-59.6-3.6-4.4-184.3 0zm1.1-48.5l.3 .5 181.6 0 .3-.5 78.3-143.5-338.7 0 78.3 143.5z"],"square-plus":[448,512,[61846,"plus-square"],"f0fe","M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"],"file-code":[384,512,[],"f1c9","M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM170.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm80-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z"],"face-grin-wink":[512,512,["grin-wink"],"f58c","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z"],"money-bill-1":[512,512,["money-bill-alt"],"f3d1","M112 112c0 35.3-28.7 64-64 64l0 160c35.3 0 64 28.7 64 64l288 0c0-35.3 28.7-64 64-64l0-160c-35.3 0-64-28.7-64-64l-288 0zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm256 16a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm-16 44c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z"],"eye-slash":[576,512,[],"f070","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM176.9 111.1c32.1-18.9 69.2-31.1 111.1-31.1 65.2 0 118.8 29.6 159.9 67.7 38.5 35.7 65.1 78.3 78.6 108.3-13.6 30-40.2 72.5-78.6 108.3-3.1 2.8-6.2 5.6-9.4 8.4L393.8 328c14-20.5 22.2-45.3 22.2-72 0-70.7-57.3-128-128-128-26.7 0-51.5 8.2-72 22.2l-39.1-39.1zm182 182l-108-108c11.1-5.8 23.7-9.1 37.1-9.1 44.2 0 80 35.8 80 80 0 13.4-3.3 26-9.1 37.1zM103.4 173.2l-34-34c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6L352.2 422c-20 6.4-41.4 10-64.2 10-65.2 0-118.8-29.6-159.9-67.7-38.5-35.7-65.1-78.3-78.6-108.3 10.4-23.1 28.6-53.6 54-82.8z"],"file-word":[384,512,[],"f1c2","M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm71.3 274.2c-3.2-12.9-16.2-20.7-29.1-17.5S85.5 273 88.7 285.8l32 128c2.5 10.2 11.4 17.5 21.9 18.1s20.1-5.7 23.8-15.5l25.5-68.1 25.5 68.1c3.7 9.8 13.3 16.1 23.8 15.5s19.4-7.9 21.9-18.1l32-128c3.2-12.9-4.6-25.9-17.5-29.1s-25.9 4.6-29.1 17.5l-13.3 53.2-20.9-55.8C211 262.2 202 256 192 256s-19 6.2-22.5 15.6l-20.9 55.8-13.3-53.2z"],"face-angry":[512,512,[128544,"angry"],"f556","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-144c24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50s-75.7 19.8-97.5 50c-7.7 10.8-5.3 25.8 5.5 33.5s25.8 5.3 33.5-5.5c13.1-18.2 34.4-30 58.5-30zm-80-96c17.7 0 32-14.3 32-32l0-.3 9.7 3.2c10.5 3.5 21.8-2.2 25.3-12.6s-2.2-21.8-12.6-25.3l-96-32c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3l28.9 9.6c-4.1 5.4-6.6 12.1-6.6 19.4 0 17.7 14.3 32 32 32zm192-32c0-7.3-2.4-14-6.6-19.4l28.9-9.6c10.5-3.5 16.1-14.8 12.6-25.3s-14.8-16.1-25.3-12.6l-96 32c-10.5 3.5-16.1 14.8-12.6 25.3s14.8 16.1 25.3 12.6l9.7-3.2 0 .3c0 17.7 14.3 32 32 32s32-14.3 32-32z"],"chess-knight":[448,512,[9822],"f441","M232-32c110.5 0 200 89.5 200 200l0 127.7c0 18.9-6.1 37.1-17.2 52.2l-5.1 6.2-36.3 40.7 32.1 40.2c6.7 8.4 10.4 18.8 10.4 29.6l-.2 4.8c-2.4 23.9-22.6 42.5-47.1 42.5l-289.2 0-4.8-.2c-23.9-2.4-42.5-22.6-42.5-47.1 0-10.8 3.7-21.2 10.4-29.6l37.6-47 0-24.3c0-24.3 10.1-47.6 27.8-64.2l63.5-59.5-17.4 0-.2 .2c-20.3 20.3-49.6 28.2-77.1 21.1l-5.5-1.6c-30.9-10.3-52.3-38-54.9-70.1l-.2-6.4 0-1.4c0-19.7 7.1-38.8 19.9-53.8l76.1-88.8 0-47.1 .1-2.5C113.4-22.6 123.6-32 136-32l96 0zM80.7 464l286.6 0-38.4-48-209.9 0-38.4 48zM160 48c0 5.7-2.1 11.3-5.8 15.6L72.3 159.1C67 165.4 64 173.4 64 181.7l0 1.4 .4 5.2c1.9 11.9 10.3 21.9 21.9 25.8l4.5 1.1c10.5 1.9 21.3-1.4 29-9l7.2-7.2 3.7-3c3.9-2.6 8.5-4 13.3-4l88 0c9.8 0 18.7 6 22.3 15.2s1.3 19.6-5.9 26.3l-107.8 101c-8.1 7.6-12.7 18.1-12.7 29.2l0 4.3 205.2 0 40.7-45.8 2.3-2.8c5.1-6.8 7.8-15.2 7.8-23.7L384 168c0-83.9-68.1-152-152-152l-72 0 0 32zm32 72a24 24 0 1 1 0-48 24 24 0 1 1 0 48z"],"face-grin-beam":[512,512,[128516,"grin-beam"],"f582","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z"],"hand-peace":[448,512,[9996],"f25b","M219 1.4c-35.2-3.7-66.6 21.8-70.3 57l-6.4 60.6-17.4-49.4C113.2 36.3 76.6 18.8 43.3 30.5S-7.6 78.8 4.1 112.1L56.9 262.2C41.7 276.7 32.2 297.3 32.2 320l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-120c0-35.3-28.7-64-64-64-7.9 0-15.4 1.4-22.4 4-10.4-21.3-32.3-36-57.6-36-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4c-6.6 10.1-10.5 22.2-10.5 35.2l0 48c0 .7 0 1.4 0 2-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM79.6 85.6l54.3 154.4-21.7 0c-4 0-8 .3-11.9 .9L49.4 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM256.2 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36 5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64 0-.7 0-1.4 0-2 5.1 1.3 10.5 2 16 2 7.9 0 15.4-1.4 22.4-4zm73.6-28c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48z"],compass:[512,512,[129517],"f14e","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.3 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"],square:[448,512,[9632,9723,9724,61590],"f0c8","M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"],"face-grin":[512,512,[128512,"grin"],"f580","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"face-smile":[512,512,[128578,"smile"],"f118","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"face-smile-beam":[512,512,[128522,"smile-beam"],"f5b8","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z"],"folder-closed":[512,512,[],"e185","M448 400L64 400c-8.8 0-16-7.2-16-16l0-144 416 0 0 144c0 8.8-7.2 16-16 16zm16-208l-416 0 0-96c0-8.8 7.2-16 16-16l138.7 0c3.5 0 6.8 1.1 9.6 3.2L250.7 112c13.8 10.4 30.7 16 48 16L448 128c8.8 0 16 7.2 16 16l0 48zM64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z"],keyboard:[576,512,[9000],"f11c","M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z"],"face-rolling-eyes":[512,512,[128580,"meh-rolling-eyes"],"f5a5","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 376c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM160 264c-22.1 0-40-17.9-40-40 0-9.5 3.3-18.1 8.8-25 3.2 14.3 16 25 31.2 25s28-10.7 31.2-25c5.5 6.8 8.8 15.5 8.8 25 0 22.1-17.9 40-40 40zm0 40a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-40c-22.1 0-40-17.9-40-40 0-9.5 3.3-18.1 8.8-25 3.2 14.3 16 25 31.2 25s28-10.7 31.2-25c5.5 6.8 8.8 15.5 8.8 25 0 22.1-17.9 40-40 40zm0 40a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"],"face-grimace":[512,512,[128556,"grimace"],"f57f","M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256a256 256 0 1 1 -512 0 256 256 0 1 1 512 0zM152 352c0 11.9 8.6 21.8 20 23.7l0-47.3c-11.4 1.9-20 11.8-20 23.7zm84 24l0-48-24 0 0 48 24 0zm64 0l0-48-24 0 0 48 24 0zm40-.3c11.4-1.9 20-11.8 20-23.7s-8.6-21.8-20-23.7l0 47.3zM176 288l160 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-160 0c-35.3 0-64-28.7-64-64s28.7-64 64-64zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],"circle-dot":[512,512,[128280,"dot-circle"],"f192","M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm0 304a96 96 0 1 1 0-192 96 96 0 1 1 0 192z"],"object-group":[576,512,[],"f247","M40 64a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm48 59.3c16-6.5 28.9-19.3 35.3-35.3l329.3 0c6.5 16 19.3 28.9 35.3 35.3l0 265.3c-16 6.5-28.9 19.3-35.3 35.3l-329.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-265.3zM512 0c-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0 28.7 0 0 28.7 0 64 0 90.9 16.5 113.9 40 123.3l0 265.3c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l329.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-265.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64zM488 64a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 424a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm424 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM192 176l88 0 0 56-88 0 0-56zm-8-40c-17.7 0-32 14.3-32 32l0 72c0 17.7 14.3 32 32 32l104 0c17.7 0 32-14.3 32-32l0-72c0-17.7-14.3-32-32-32l-104 0zm72 184l0 24c0 17.7 14.3 32 32 32l104 0c17.7 0 32-14.3 32-32l0-72c0-17.7-14.3-32-32-32l-24 0c0 14.6-3.9 28.2-10.7 40l26.7 0 0 56-88 0 0-16.4c-2.6 .3-5.3 .4-8 .4l-32 0z"],"face-flushed":[512,512,[128563,"flushed"],"f579","M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM160 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z"],"star-half-stroke":[576,512,["star-half-alt"],"f5c0","M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9zM264.1 91.8l0 284.1-100.1 50.9 19.8-125.5c1.2-7.6-1.3-15.3-6.7-20.7l-89.8-89.9 125.5-20c7.6-1.2 14.1-6 17.6-12.8l33.8-66.2zm48 284.1l0-284.1 33.8 66.2c3.5 6.8 10 11.6 17.6 12.8l125.5 20-89.8 89.9c-5.4 5.4-7.9 13.1-6.7 20.7l19.8 125.5-100.1-50.9z"],"file-video":[384,512,[],"f1c8","M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM80 288l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-24 35 35c3.2 3.2 7.5 5 12 5 9.4 0 17-7.6 17-17l0-94.1c0-9.4-7.6-17-17-17-4.5 0-8.8 1.8-12 5l-35 35 0-24c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32z"],"face-laugh":[512,512,["laugh"],"f599","M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"hand-pointer":[448,512,[],"f25a","M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4 8.8 0 16 7.2 16 16 0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4 7.8 0 14.3 5.6 15.7 13 1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4 8.8 0 16 7.2 16 16l0 120c0 39.8-32.2 72-72 72l-116.6 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23L160 64zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2L328 512c66.3 0 120-53.7 120-120l0-120c0-35.3-28.7-64-64-64-4.5 0-8.8 .5-13 1.3-11.7-15.4-30.2-25.3-51-25.3-6.9 0-13.5 1.1-19.7 3.1-11.6-16.4-30.7-27.1-52.3-27.1-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z"],registered:[512,512,[174],"f25d","M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM200 144c-13.3 0-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56 34.4 0 41 68.3c6.8 11.4 21.6 15 32.9 8.2s15-21.6 8.2-32.9l-30.2-50.3c24.6-11.5 41.6-36.4 41.6-65.3 0-39.8-32.2-72-72-72l-80 0zm72 96l-48 0 0-48 56 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0z"]};SU(function(){JV("far",zQ),JV("fa-regular",zQ)})})();(function(){var K={},V={};try{if(typeof window<"u")K=window;if(typeof document<"u")V=document}catch(q0){}var Q=K.navigator||{},U=Q.userAgent,H=U===void 0?"":U,Y=K,z=V,M=!!Y.document,A=!!z.documentElement&&!!z.head&&typeof z.addEventListener==="function"&&typeof z.createElement==="function",R=~H.indexOf("MSIE")||~H.indexOf("Trident/");function D(q0,I0){(I0==null||I0>q0.length)&&(I0=q0.length);for(var j0=0,n0=Array(I0);j01?I0-1:0),n0=1;n02&&arguments[2]!==void 0?arguments[2]:{},n0=j0.skipHooks,UK=n0===void 0?!1:n0,uQ=HQ(I0);if(typeof sK.hooks.addPack==="function"&&!UK)sK.hooks.addPack(q0,HQ(I0));else sK.styles[q0]=J(J({},sK.styles[q0]||{}),uQ);if(q0==="fas")JV("fa",I0)}var zQ={"0":[320,512,[],"30","M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z"],"1":[256,512,[],"31","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352c0-17.7-14.3-32-32-32L32 32z"],"2":[384,512,[],"32","M48 64c0-17.7 14.3-32 32-32l171 0c60.2 0 109 48.8 109 109 0 43.8-26.2 83.3-66.4 100.4l-139.1 59C119 315.4 96 350.2 96 388.7l0 27.3 224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32l0-59.3c0-64.2 38.4-122.2 97.5-147.3l139.1-59c16.6-7.1 27.4-23.4 27.4-41.4 0-24.9-20.2-45-45-45L80 96C62.3 96 48 81.7 48 64z"],"3":[320,512,[],"33","M80 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l160 0c70.7 0 128 57.3 128 128 0 38.2-16.8 72.5-43.3 96 26.6 23.5 43.3 57.8 43.3 96 0 70.7-57.3 128-128 128L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L80 288z"],"4":[384,512,[],"34","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 288c0 35.3 28.7 64 64 64l192 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224-192 0 0-224z"],"5":[320,512,[],"35","M0 64C0 46.3 14.3 32 32 32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0 0 112 120 0c75.1 0 136 60.9 136 136S259.1 480 184 480L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l152 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-17.7 0-32-14.3-32-32L0 64z"],"6":[384,512,[],"36","M256 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-88 0c-48.6 0-88 39.4-88 88l0 32.2c22.9-15.3 50.4-24.2 80-24.2l48 0c79.5 0 144 64.5 144 144S287.5 480 208 480l-48 0C80.5 480 16 415.5 16 336l0-152C16 100.1 84.1 32 168 32l88 0zM80 336c0 44.2 35.8 80 80 80l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0c-44.2 0-80 35.8-80 80z"],"7":[320,512,[],"37","M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z"],"8":[320,512,[],"38","M304 160c0-70.7-57.3-128-128-128l-32 0c-70.7 0-128 57.3-128 128 0 34.6 13.7 66 36 89-31.5 23.3-52 60.8-52 103 0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128 0-42.2-20.5-79.7-52-103 22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l48.1 0zm0-64L144 224c-35.3 0-64-28.7-64-64 0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64 0 35.3-28.6 64-64 64z"],"9":[384,512,[],"39","M208 320c29.6 0 57.1-8.9 80-24.2l0 32.2c0 48.6-39.4 88-88 88L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l104 0c83.9 0 152-68.1 152-152l0-152.1C351.9 96.4 287.5 32 208 32l-48 0C80.5 32 16 96.5 16 176S80.5 320 160 320l48 0zm80-144c0 44.2-35.8 80-80 80l-48 0c-44.2 0-80-35.8-80-80s35.8-80 80-80l48 0c44.2 0 80 35.8 80 80z"],"dollar-sign":[320,512,[128178,61781,"dollar","usd"],"24","M136 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-114.9 0c-24.9 0-45.1 20.2-45.1 45.1 0 22.5 16.5 41.5 38.7 44.7l91.6 13.1c53.8 7.7 93.7 53.7 93.7 108 0 60.3-48.9 109.1-109.1 109.1l-10.9 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-72 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l130.9 0c24.9 0 45.1-20.2 45.1-45.1 0-22.5-16.5-41.5-38.7-44.7l-91.6-13.1C55.9 273.5 16 227.4 16 173.1 16 112.9 64.9 64 125.1 64l10.9 0 0-40z"],dog:[576,512,[128021],"f6d3","M32 112c16.6 0 30.2 12.6 31.8 28.7l.3 6.6C65.8 163.4 79.4 176 96 176l179.1 0 140.9 60.4 0 243.6c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-131.3C296 361 268.8 368 240 368s-56-7-80-19.3L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-245.6c-37.3-13.2-64-48.6-64-90.4 0-17.7 14.3-32 32-32zM355.8-32c7.7 0 14.9 3.6 19.6 9.8L392 0 444.1 0c12.7 0 24.9 5.1 33.9 14.1L496 32 552 32c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-64 0-7 28-124.7-53.4 31.6-147.2C334.3-23.9 344.2-32 355.8-32zM448 44a20 20 0 1 0 0 40 20 20 0 1 0 0-40z"],"truck-moving":[640,512,[],"f4df","M64 32C28.7 32 0 60.7 0 96L0 424c0 48.6 39.4 88 88 88 25.2 0 48-10.6 64-27.6 16 17 38.8 27.6 64 27.6 40.3 0 74.2-27.1 84.7-64l134.6 0c10.4 36.9 44.4 64 84.7 64 43 0 78.9-30.9 86.5-71.7 20-10.8 33.5-32 33.5-56.3l0-146.7c0-17-6.7-33.3-18.7-45.3L576 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM480 192l50.7 0 45.3 45.3 0 50.7-96 0 0-96zM88 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm392 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM216 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80z"],rotate:[512,512,[128260,"sync-alt"],"f2f1","M480.1 192l7.9 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2S477.9 .2 471 7L419.3 58.8C375 22.1 318 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1C79.2 135.5 159.3 64 256 64 300.4 64 341.2 79 373.7 104.3L327 151c-6.9 6.9-8.9 17.2-5.2 26.2S334.3 192 344 192l136.1 0zm29.4 100.5c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-44.4 0-85.2-15-117.7-40.3L185 361c6.9-6.9 8.9-17.2 5.2-26.2S177.7 320 168 320L24 320c-13.3 0-24 10.7-24 24L0 488c0 9.7 5.8 18.5 14.8 22.2S34.1 511.8 41 505l51.8-51.8C137 489.9 194 512 256 512 385 512 491.7 416.6 509.4 292.5z"],"square-minus":[448,512,[61767,"minus-square"],"f146","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm72 200l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"align-justify":[448,512,[],"f039","M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z"],"calendar-check":[448,512,[],"f274","M320 0c17.7 0 32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32zm22 161.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 331.2 137 279.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 195.2c7.8-10.7 5.4-25.7-5.3-33.5z"],"face-kiss":[512,512,[128535,"kiss"],"f596","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"kitchen-set":[576,512,[],"e51a","M240 144a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288 64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l128 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],dna:[384,512,[129516],"f471","M352 0c17.7 0 32 14.3 32 32 0 57.8-24.4 104.8-57.4 144.5-24.1 28.9-53.8 55.1-83.6 79.5 29.8 24.5 59.5 50.6 83.6 79.5 33 39.6 57.4 86.7 57.4 144.5 0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32S0 497.7 0 480C0 422.2 24.4 375.2 57.4 335.5 81.5 306.6 111.2 280.5 141 256 111.2 231.5 81.5 205.4 57.4 176.5 24.4 136.8 0 89.8 0 32 0 14.3 14.3 0 32 0S64 14.3 64 32l256 0c0-17.7 14.3-32 32-32zM283.5 384l-182.9 0c-8.2 10.5-15.1 21.1-20.6 32l224.2 0c-5.6-10.9-12.5-21.5-20.6-32zM238 336c-14.3-13-29.8-25.8-46-39-16.2 13.1-31.7 26-46 39l92 0zM100.5 128l182.9 0c8.2-10.5 15.1-21.1 20.6-32L79.9 96c5.6 10.9 12.5 21.5 20.6 32zM146 176c14.3 13 29.8 25.8 46 39 16.2-13.1 31.7-26 46-39l-92 0z"],"child-reaching":[384,512,[],"e59d","M256 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.3 85.4S11.6 115 21.4 129.8L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6-12.6 0-24.9-2-36.6-5.8-.9-.3-1.8-.7-2.7-.9z"],paste:[512,512,["file-clipboard"],"f0ea","M64 0C28.7 0 0 28.7 0 64L0 384c0 35.3 28.7 64 64 64l112 0 0-224c0-61.9 50.1-112 112-112l64 0 0-48c0-35.3-28.7-64-64-64L64 0zM248 112l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zm40 48c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-165.5c0-17-6.7-33.3-18.7-45.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7L288 160z"],meteor:[512,512,[9732],"f753","M493.7 .9l-194.2 74.7 2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309 0 421.1 90.9 512 203 512 275.4 512 342.3 473.4 378.6 410.7L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3 74.7-194.2c.6-1.5 .9-3.2 .9-4.8 0-7.5-6-13.5-13.5-13.5-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"],gears:[640,512,["cogs"],"f085","M415.9 210.5c12.2-3.3 25 2.5 30.5 13.8L465 261.9c10.3 1.4 20.4 4.2 29.9 8.1l35-23.3c10.5-7 24.4-5.6 33.3 3.3l19.2 19.2c8.9 8.9 10.3 22.9 3.3 33.3l-23.3 34.9c1.9 4.7 3.6 9.6 5 14.7 1.4 5.1 2.3 10.1 3 15.2l37.7 18.6c11.3 5.6 17.1 18.4 13.8 30.5l-7 26.2c-3.3 12.1-14.6 20.3-27.2 19.5l-42-2.7c-6.3 8.1-13.6 15.6-21.9 22l2.7 41.9c.8 12.6-7.4 24-19.5 27.2l-26.2 7c-12.2 3.3-24.9-2.5-30.5-13.8l-18.6-37.6c-10.3-1.4-20.4-4.2-29.9-8.1l-35 23.3c-10.5 7-24.4 5.6-33.3-3.3l-19.2-19.2c-8.9-8.9-10.3-22.8-3.3-33.3l23.3-35c-1.9-4.7-3.6-9.6-5-14.7s-2.3-10.2-3-15.2l-37.7-18.6c-11.3-5.6-17-18.4-13.8-30.5l7-26.2c3.3-12.1 14.6-20.3 27.2-19.5l41.9 2.7c6.3-8.1 13.6-15.6 21.9-22l-2.7-41.8c-.8-12.6 7.4-24 19.5-27.2l26.2-7zM448.4 340a44 44 0 1 0 .1 88 44 44 0 1 0 -.1-88zM224.9-45.5l26.2 7c12.1 3.3 20.3 14.7 19.5 27.2l-2.7 41.8c8.3 6.4 15.6 13.8 21.9 22l42-2.7c12.5-.8 23.9 7.4 27.2 19.5l7 26.2c3.2 12.1-2.5 24.9-13.8 30.5l-37.7 18.6c-.7 5.1-1.7 10.2-3 15.2s-3.1 10-5 14.7l23.3 35c7 10.5 5.6 24.4-3.3 33.3L307.3 262c-8.9 8.9-22.8 10.3-33.3 3.3L239 242c-9.5 3.9-19.6 6.7-29.9 8.1l-18.6 37.6c-5.6 11.3-18.4 17-30.5 13.8l-26.2-7c-12.2-3.3-20.3-14.7-19.5-27.2l2.7-41.9c-8.3-6.4-15.6-13.8-21.9-22l-42 2.7c-12.5 .8-23.9-7.4-27.2-19.5l-7-26.2c-3.2-12.1 2.5-24.9 13.8-30.5l37.7-18.6c.7-5.1 1.7-10.1 3-15.2 1.4-5.1 3-10 5-14.7L55.1 46.5c-7-10.5-5.6-24.4 3.3-33.3L77.6-6c8.9-8.9 22.8-10.3 33.3-3.3l35 23.3c9.5-3.9 19.6-6.7 29.9-8.1l18.6-37.6c5.6-11.3 18.3-17 30.5-13.8zM192.4 84a44 44 0 1 0 0 88 44 44 0 1 0 0-88z"],"file-circle-plus":[576,512,[58606],"e494","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z"],icicles:[512,512,[],"f7ad","M75.8 304.8L1 35.7C.3 33.2 0 30.7 0 28.2 0 12.6 12.6 0 28.2 0L482.4 0c16.3 0 29.6 13.2 29.6 29.6 0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7-9.3 0-17.5-6.2-20-15.2z"],"arrow-trend-up":[576,512,[],"e098","M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-169.4 169.4c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z"],"hexagon-nodes-bolt":[576,512,[],"e69a","M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56c30.7 0 55.6-24.7 56-55.2c-7.5-12.9-13.5-26.8-17.6-41.5c-4.2-4-9.1-7.3-14.4-9.9l0-98.8c2.8-1.3 5.5-2.9 8-4.7l10.5 6c5.5-15.3 13.1-29.5 22.4-42.5l-9.1-5.2c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8zM440.5 132C425 105.2 390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c.4 .3 .8 .6 1.3 .9c21.7-9.5 45.6-14.8 70.8-14.8c2 0 4 0 5.9 .1c12.1-17.3 13.8-40.6 2.6-60.1zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z"],question:[320,512,[10067,10068,61736],"3f","M64 160c0-53 43-96 96-96s96 43 96 96c0 42.7-27.9 78.9-66.5 91.4-28.4 9.2-61.5 35.3-61.5 76.6l0 24c0 17.7 14.3 32 32 32s32-14.3 32-32l0-24c0-1.7 .6-4.1 3.5-7.3 3-3.3 7.9-6.5 13.7-8.4 64.3-20.7 110.8-81 110.8-152.3 0-88.4-71.6-160-160-160S0 71.6 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm96 352c22.1 0 40-17.9 40-40s-17.9-40-40-40-40 17.9-40 40 17.9 40 40 40z"],"hands-bound":[576,512,[],"e4f9","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 213.9c0 14.2 5.1 27.9 14.3 38.7L99.6 352 96 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7L576 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8-9.7-5.7-12.1-18.7-5.1-27.5L441 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C329 209.7 320 233.4 320 258.1l0 93.9-64 0 0-93.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2S124.2 166.4 135 180l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5-8.1 4.8-18.6 2.7-24.2-4.8L64 144.8 64 32zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L96 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z"],"person-walking-luggage":[512,512,[],"e554","M264.3 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 12.3-7 23-17.2 28.4-.9 4.2-2.4 8.4-4.3 12.3l-69 138.1-.8-.4-27.7 55.3c-9.9 19.8-33.9 27.8-53.7 17.9L14.6 521c-19.8-9.9-27.8-33.9-17.9-53.7L47.3 366.3c9.9-19.8 33.9-27.8 53.7-17.9l30.7 15.3 28.3-56.6c.3-.6 .4-1.2 .4-1.8l0-16.9c0-.2 0-.3 0-.5l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L422.1 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3L448 507.5c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2L372 428.4c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L238 421.1c3.8-3.8 6.6-8.6 8.1-13.8L256.4 371z"],"file-arrow-down":[384,512,["file-download"],"f56d","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM175 441c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-86.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 86.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64z"],"person-booth":[576,512,[],"f756","M40 24A56 56 0 1 1 152 24 56 56 0 1 1 40 24zm51.1 88c23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c6 8.4 15.7 13.4 26 13.4l31.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C209.8 373.3 224 401.8 224 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L70.4 348.8C46.2 330.7 32 302.2 32 272l0-100.9C32 138.5 58.5 112 91.1 112zM32 512l0-132.7c3.1 2.7 6.3 5.4 9.6 7.9L96 428 96 512c0 17.7-14.3 32-32 32s-32-14.3-32-32zm544-88l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-168 0c-7.1 0-13.8-3.1-18.4-8.6s-6.5-12.6-5.3-19.6l30.7-176.7-63.1-137.6 0 72c-5.2-1-10.5-1.6-16-1.6l-32 0 0-120c0-30.9 25.1-56 56-56L520 0c30.9 0 56 25.1 56 56l0 368zM288 336c5.5 0 10.8-.6 16-1.6L304 520c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-184 32 0z"],locust:[576,512,[],"e520","M328 32c137 0 248 111 248 248l0 40-.4 8.2C571.5 368.5 537.4 400 496 400l-12.3 0 25.2 44.1c6.6 11.5 2.6 26.2-8.9 32.8s-26.2 2.6-32.7-8.9l-38.8-67.9-80.4 0-48.2 69.7c-7.5 10.9-22.5 13.6-33.4 6.1s-13.6-22.5-6.1-33.4l29.3-42.3-74.5 0-51.7 70.2c-7.9 10.7-22.9 12.9-33.6 5.1s-12.9-22.9-5.1-33.6l40.5-55-43-16.4-79.3 100.5c-8.2 10.4-23.3 12.2-33.7 4s-12.2-23.3-4-33.7l240-304 2.1-2.3c5.2-5.1 12.5-7.5 19.9-6.6 8.4 1.1 15.6 6.5 18.9 14.3l21.7 50.7 40.9-55.5 2.1-2.4c5.1-5.3 12.5-8 20-7.2 8.5 1 15.9 6.5 19.3 14.4l41.8 97.5 64.2 0c10.2 0 20 2 29 5.5-16.4-94-98.3-165.5-197-165.5l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0zM488 296a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM43.5 331.1C36.2 321.4 32 309.5 32 296.8 32 265.5 57.5 240 88.9 240l27.6 0-72.9 91.1zM225.1 240l48.2 0 1.4-1.9-16.9-39.5-32.7 41.5zm107.8 0l46.7 0-17.2-40-29.5 40z"],"right-long":[576,512,["long-arrow-alt-right"],"f30b","M566.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S384 396.9 384 384l0-64-336 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48l336 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128z"],"truck-droplet":[576,512,[],"e58c","M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM208 304c-39.8 0-72-32.2-72-72 0-33.2 34.5-78 55.8-102.4 8.7-10 23.8-10 32.5 0 21.2 24.4 55.8 69.1 55.8 102.4 0 48-32.2 72-72 72z"],"hand-holding-medical":[576,512,[],"e05c","M240 24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l56 0 0-56zM66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z"],"hand-point-left":[512,512,[],"f0a5","M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64-208 0zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32 0 13.2-4 25.4-10.8 35.6 24.9 8.7 42.8 32.5 42.8 60.4 0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z"],calculator:[384,512,[128425],"f1ec","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm16 168a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM88 352a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM64 424c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm232-24c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z"],minus:[448,512,[8211,8722,10134,"subtract"],"f068","M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z"],"arrow-up-z-a":[512,512,["sort-alpha-up-alt"],"f882","M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80zM288 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 224 320 224l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S461 32 448 32L320 32c-17.7 0-32 14.3-32 32zM412.6 273.7C407.2 262.8 396.1 256 384 256s-23.2 6.8-28.6 17.7l-80 160c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-80-160zM384 359.6l20.2 40.4-40.4 0 20.2-40.4z"],"microphone-slash":[576,512,[],"f131","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L424.7 358.8C458.9 324.2 480 276.6 480 224l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 39.3-15.7 74.9-41.3 100.9L356.8 291C373.6 273.7 384 250 384 224l0-128c0-53-43-96-96-96s-96 43-96 96l0 30.2-151-151zm298.3 434l-41.4-41.4c-3.3 .2-6.5 .3-9.8 .3-79.5 0-144-64.5-144-144l0-10.2-43.6-43.6c-2.8 3.9-4.4 8.7-4.4 13.8l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c9.3-1.2 18.4-3 27.3-5.4z"],"square-pen":[448,512,["pen-square","pencil-square"],"f14b","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-23.8 23.8-71-71 23.8-23.8c15.6-15.6 40.9-15.6 56.6 0zM119.9 289l91.5-91.6 71 71-91.6 91.5c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z"],"hand-fist":[384,512,[9994,"fist-raised"],"f6de","M160 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L37.5 357.5C13.5 333.5 0 300.9 0 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z"],"comment-sms":[512,512,["sms"],"f7cd","M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM140.8 172.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6s18.6-41.6 41.6-41.6zm188.8 41.6c0-23 18.6-41.6 41.6-41.6l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6zm-98.3-33.8l24.7 41.1 24.7-41.1c3.7-6.2 11.1-9.1 18-7.2s11.7 8.2 11.7 15.4l0 102.4c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-44.6-8.7 14.5c-2.9 4.8-8.1 7.8-13.7 7.8s-10.8-3-13.7-7.8l-8.7-14.5 0 44.6c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-102.4c0-7.2 4.8-13.5 11.7-15.4s14.3 1 18 7.2z"],"sim-card":[384,512,[],"f7c4","M0 64C0 28.7 28.7 0 64 0L258.7 0c17 0 33.3 6.7 45.3 18.7L365.3 80c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 256c-17.7 0-32 14.3-32 32l0 40 128 0 0-72-96 0zM64 416c0 17.7 14.3 32 32 32l48 0 0-72-80 0 0 40zm256 0l0-40-128 0 0 72 96 0c17.7 0 32-14.3 32-32zm0-128c0-17.7-14.3-32-32-32l-48 0 0 72 80 0 0-40z"],"scale-balanced":[640,512,[9878,"balance-scale"],"f24e","M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3l0 294.7 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288L584.4 320 512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zM126.8 195.8L54.4 320 199.3 320 126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9S11.7 382 .9 337.1z"],car:[512,512,[128664,"automobile"],"f1b9","M135.2 117.4l-26.1 74.6 293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 192c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-320 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 304a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"crop-simple":[512,512,["crop-alt"],"f565","M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-208 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64l-208 0 0 64 208 0 0 352z"],medal:[448,512,[127941],"f5a2","M224.3 128L139.7-12.9c-6.5-10.8-20.1-14.7-31.3-9.1L21.8 21.3C9.9 27.2 5.1 41.6 11 53.5L80.6 192.6c-30.1 33.9-48.3 78.5-48.3 127.4 0 106 86 192 192 192s192-86 192-192c0-48.9-18.3-93.5-48.3-127.4L437.6 53.5c5.9-11.9 1.1-26.3-10.7-32.2L340.2-22.1c-11.2-5.6-24.9-1.6-31.3 9.1L224.3 128zm30.8 142.5c1.4 2.8 4 4.7 7 5.1l50.1 7.3c7.7 1.1 10.7 10.5 5.2 16l-36.3 35.4c-2.2 2.2-3.2 5.2-2.7 8.3l8.6 49.9c1.3 7.6-6.7 13.5-13.6 9.9l-44.8-23.6c-2.7-1.4-6-1.4-8.7 0l-44.8 23.6c-6.9 3.6-14.9-2.2-13.6-9.9l8.6-49.9c.5-3-.5-6.1-2.7-8.3l-36.3-35.4c-5.6-5.4-2.5-14.8 5.2-16l50.1-7.3c3-.4 5.7-2.4 7-5.1l22.4-45.4c3.4-7 13.3-7 16.8 0l22.4 45.4z"],scroll:[576,512,[128220],"f70e","M0 112C0 70.5 31.6 36.4 72 32.4l0-.4 280 0c53 0 96 43 96 96l0 176-176 0c-39.8 0-72 32.2-72 72l0 60c0 24.3-19.7 44-44 44s-44-19.7-44-44l0-228-64 0c-26.5 0-48-21.5-48-48l0-48zM236.8 480c7.1-13.1 11.2-28.1 11.2-44l0-60c0-13.3 10.7-24 24-24l248 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-227.2 0zM80 80c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32z"],"file-excel":[384,512,[],"f1c3","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM164 266.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3L163.2 352 124 410.7c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l28-42 28 42c7.4 11 22.3 14 33.3 6.7s14-22.3 6.7-33.3L220.8 352 260 293.3c7.4-11 4.4-25.9-6.7-33.3s-25.9-4.4-33.3 6.7l-28 42-28-42z"],filter:[512,512,[],"f0b0","M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c9.2 9.2 22.9 11.9 34.9 6.9S320 492.9 320 480l0-178.7 182.6-182.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64z"],drum:[512,512,[129345],"f569","M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96 114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5 38.8 15.1 44.4 30.6 44.4 41.3 0 .8-2.7 17.2-46 35.9-38.9 16.8-96 28.1-162 28.1S132.9 260.7 94 243.9c-43.3-18.7-46-35.1-46-35.9 0-10.6 5.6-26.2 44.4-41.3 38.3-14.9 95.4-22.7 163.6-22.7 18 0 35.1 .5 51.4 1.6z"],"map-pin":[320,512,[128205],"f276","M192 284.4C256.1 269.9 304 212.5 304 144 304 64.5 239.5 0 160 0S16 64.5 16 144c0 68.5 47.9 125.9 112 140.4L128 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-195.6zM168 96c-30.9 0-56 25.1-56 56 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4 46.6-104 104-104 13.3 0 24 10.7 24 24s-10.7 24-24 24z"],"scale-unbalanced-flip":[640,512,["balance-scale-right"],"f516","M118.2 62.4C101.5 56.8 92.4 38.6 98 21.9S121.7-3.9 138.5 1.6l113 37.7c13.9-23.5 39.6-39.3 68.9-39.3 44.2 0 80 35.8 80 80 0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.7 145.2c-4.5 3.2-9.3 5.9-14.4 8.2l0 326.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.8 288L128.3 163.8 55.9 288 200.8 288zm-72.4 96c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zm382.8-92.2l-72.4 124.2 144.9 0-72.4-124.2zm126 141.3C626.4 478 574.1 512 511.2 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z"],"arrows-to-circle":[512,512,[],"e4bd","M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L128 82.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0-73.4-73.4C-3.1 42.1-3.1 21.9 9.4 9.4zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM502.6 54.6L429.3 128 448 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-45.3 448L384 429.3 384 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0 73.4 73.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM9.4 457.4L82.7 384 64 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3z"],envelope:[512,512,[128386,9993,61443],"f0e0","M48 64c-26.5 0-48 21.5-48 48 0 15.1 7.1 29.3 19.2 38.4l208 156c17.1 12.8 40.5 12.8 57.6 0l208-156c12.1-9.1 19.2-23.3 19.2-38.4 0-26.5-21.5-48-48-48L48 64zM0 196L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-188-198.4 148.8c-34.1 25.6-81.1 25.6-115.2 0L0 196z"],baby:[384,512,[],"f77c","M120 88a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM7.7 144.5c13-17.9 38-21.8 55.9-8.8L99.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L16.5 200.3c-17.9-13-21.8-38-8.8-55.9zM97.5 329.3l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C38 438.6 36.1 417 47.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l24.3-24.3-26-37.2z"],"square-caret-down":[448,512,["caret-square-down"],"f150","M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9S110.5 192 120 192l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z"],tent:[512,512,[],"e57d","M26.9 206.9L3.7 444.9C1.8 463.7 16.6 480 35.5 480l172.7 0c26.5 0 48-21.5 48-48l0-129c0-8.3 6.7-15 15-15 5.5 0 10.6 3 13.2 7.9l86.1 159c8.4 15.5 24.6 25.1 42.2 25.1l64.1 0c18.9 0 33.7-16.3 31.8-35.1L485.6 207.1c-1.9-19.6-12.8-37.3-29.5-47.8L280.9 48.3c-15.7-10-35.8-9.9-51.5 .1L56.1 159.2c-16.5 10.6-27.3 28.2-29.2 47.7z"],a:[384,512,[97],"41","M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7c-93.3 224-146.7 352-160 384-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2l31.8-76.3 197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8c-13.3-32-66.7-160-160-384zM264 320l-144 0 72-172.8 72 172.8z"],"parachute-box":[512,512,[],"f4cd","M128 224C128 152.2 144.3 88.4 169.5 43.4 195.1-2.4 226.6-24 256-24s60.9 21.6 86.5 67.4C367.7 88.4 384 152.2 384 224l-104 0 0 96 8 0c9.3 0 18.1 2 26 5.5l118.4-101.5-.5 0c0-78.4-17.7-150.6-47.6-204-6.1-11-12.9-21.3-20.3-30.9 86.5 35.9 147.8 115.1 147.8 218.9 0 7-3.1 13.7-8.4 18.2L347.4 360.1c3 7.4 4.6 15.4 4.6 23.9l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-64c0-8.4 1.6-16.5 4.6-23.9L8.4 226.2C3.1 221.7 0 215 0 208 0 104.2 61.3 24.9 147.8-10.9 140.5-1.4 133.7 9 127.6 20 97.7 73.4 80 145.6 80 224l-.5 0 118.4 101.5c8-3.5 16.8-5.5 26-5.5l8 0 0-96-104 0z"],"cart-arrow-down":[640,512,[],"f218","M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 187.2 0 0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1 177.4 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"],"bridge-circle-exclamation":[576,512,[],"e4ca","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"],"cloud-arrow-up":[576,512,[62338,"cloud-upload","cloud-upload-alt"],"f0ee","M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM305 191c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z"],at:[512,512,[61946],"40","M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0 512 114.6 512 256l0 32c0 53-43 96-96 96-29.3 0-55.6-13.2-73.2-33.9-22.8 21-53.3 33.9-86.8 33.9-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1 5.7-5 13.1-8.1 21.3-8.1 17.7 0 32 14.3 32 32l0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"],"indian-rupee-sign":[320,512,["indian-rupee","inr"],"e1bc","M0 64C0 46.3 14.3 32 32 32l264 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-76.7 0c17.7 19.8 30.1 44.6 34.7 72l42 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-42 0c-10.4 62.2-60.8 110.9-123.8 118.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c35.8 0 66.1-23.5 76.3-56L24 200c-13.3 0-24-10.7-24-24s10.7-24 24-24l164.3 0c-10.2-32.5-40.5-56-76.3-56L32 96C14.3 96 0 81.7 0 64z"],truck:[576,512,[128666,9951],"f0d1","M0 96C0 60.7 28.7 32 64 32l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L557.3 192c12 12 18.7 28.3 18.7 45.3L576 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64L64 448c-35.3 0-64-28.7-64-64L0 96zM512 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM192 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"],"chalkboard-user":[640,512,["chalkboard-teacher"],"f51c","M128 96c0-35.3 28.7-64 64-64l352 0c35.3 0 64 28.7 64 64l0 240-96 0 0-16c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 16-129.1 0c10.9-18.8 17.1-40.7 17.1-64 0-70.7-57.3-128-128-128-5.4 0-10.8 .3-16 1l0-49zM333 448c-5.1-24.2-16.3-46.1-32.1-64L608 384c0 35.3-28.7 64-64 64l-211 0zM64 272a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM0 480c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32z"],"user-check":[640,512,[],"f4fc","M286 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L78 512c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3l59.4 0zM585.7 105.9c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5L522.1 274.9c-4.2 5.7-10.7 9.4-17.7 9.8s-14-2.2-18.9-7.3l-46.4-48c-9.2-9.5-9-24.7 .6-33.9 9.5-9.2 24.7-8.9 33.9 .6l26.5 27.4 85.6-117.7zM256.3 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z"],"user-ninja":[448,512,[129399],"f504","M352 128c0 70.7-57.3 128-128 128-57.2 0-105.6-37.5-122-89.3-1.1 1.3-2.2 2.6-3.5 3.8-15.8 15.8-38.8 20.7-53.6 22.1-8.1 .8-14.6-5.7-13.8-13.8 1.4-14.7 6.3-37.8 22.1-53.6 5.8-5.8 12.6-10.1 19.6-13.4-7-3.2-13.8-7.6-19.6-13.4-15.8-15.8-20.7-38.8-22.1-53.6-.8-8.1 5.7-14.6 13.8-13.8 14.7 1.4 37.8 6.3 53.6 22.1 4.8 4.8 8.7 10.4 11.7 16.1 21.3-41.2 64.3-69.4 113.8-69.4 70.7 0 128 57.3 128 128zM144 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96c-8.8 0-16 7.2-16 16zm-1.4 211l67 50.2c8.5 6.4 20.3 6.4 28.8 0l67-50.2c6.5-4.9 15.2-6.2 22.6-2.8 61.4 28.2 104.1 90.2 104.1 162.1 0 16.4-13.3 29.7-29.7 29.7L45.7 512c-16.4 0-29.7-13.3-29.7-29.7 0-72 42.7-134 104.1-162.1 7.4-3.4 16.1-2.1 22.6 2.8z"],"plant-wilt":[512,512,[],"e5aa","M344-32c66.3 0 120 53.7 120 120l0 6.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3c-40.7-36.8-66-83.7-66-111.7 0-35.6 18.7-64.7 48-76.9l0-6.2c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 424c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 38.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3C25.3 405.9 0 359 0 331.1 0 295.4 18.7 266.4 48 254.2L48 216c0-66.3 53.7-120 120-120 20.2 0 39.3 5 56 13.8L224 88c0-66.3 53.7-120 120-120z"],"weight-scale":[448,512,["weight"],"f496","M116.6 192c-3-10.1-4.6-20.9-4.6-32 0-61.9 50.1-112 112-112S336 98.1 336 160c0 11.1-1.6 21.9-4.6 32l-71 0 24.6-44.3c6.4-11.6 2.3-26.2-9.3-32.6s-26.2-2.3-32.6 9.3l-37.6 67.7-88.8 0zM128 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-64 0C293.3 11.9 260 0 224 0s-69.3 11.9-96 32z"],"caret-right":[256,512,[],"f0da","M249.3 235.8c10.2 12.6 9.5 31.1-2.2 42.8l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S64.5 396.9 64.5 384l0-256c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128 2.2 2.4z"],"florin-sign":[384,512,[],"e184","M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0-45.1 108.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z"],bell:[448,512,[128276,61602],"f0f3","M224 0c-17.7 0-32 14.3-32 32l0 3.2C119 50 64 114.6 64 192l0 21.7c0 48.1-16.4 94.8-46.4 132.4L7.8 358.3C2.7 364.6 0 372.4 0 380.5 0 400.1 15.9 416 35.5 416l376.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C400.4 308.5 384 261.8 384 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32zM162 464c7.1 27.6 32.2 48 62 48s54.9-20.4 62-48l-124 0z"],"lari-sign":[384,512,[],"e1c8","M144 0c13.3 0 24 10.7 24 24l0 41.5c7.9-1 15.9-1.5 24-1.5s16.1 .5 24 1.5L216 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 54c58.9 23.8 103.2 76 116.2 139.7 3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.7-33.2-26.4-61.8-53.4-80.2l0 81.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-101.8c-7.8-1.5-15.8-2.2-24-2.2s-16.2 .8-24 2.2L168 232c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-81.8c-33.8 23-56 61.9-56 105.8 0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 350 0 305.2 0 256 0 175.4 49.6 106.4 120 78l0-54c0-13.3 10.7-24 24-24z"],"mill-sign":[384,512,[],"e1ed","M297-22.2c12.3 5 18.2 19 13.2 31.3l-29 71.3C338.8 85.1 384 133.3 384 192l0 208c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-208c0-26.5-21.5-48-48-48-6.4 0-12.5 1.2-18 3.5l-30 73.8 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-21.2-57.8 142.2c-5 12.3-19 18.2-31.3 13.2s-18.2-19-13.2-31.3L160 251.3 160 192c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 208c0 17.7-14.3 32-32 32S0 417.7 0 400L0 112c0-17.7 14.3-32 32-32 10.9 0 20.5 5.4 26.3 13.7 16-8.7 34.3-13.7 53.7-13.7 31.3 0 59.7 12.9 80 33.6 9.6-9.8 20.9-17.8 33.5-23.5L265.8-9c5-12.3 19-18.2 31.3-13.2z"],"person-snowboarding":[576,512,[127938,"snowboarding"],"f7ce","M424.5 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM166.4 45.5c10.2-14.4 30.2-17.9 44.6-7.7l272 192c14.4 10.2 17.9 30.2 7.7 44.6s-30.2 17.9-44.6 7.7l-92.2-65.1-62.2 53.3 32.1 26.7c18.2 15.2 28.8 37.7 28.8 61.5l0 87.8 77.5 15.2c6.2 1.2 12.6 .9 18.7-.8l41.2-11.8c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-41.2 11.8c-13.4 3.8-27.4 4.4-41.1 1.8L87.1 443.3c-17.2-3.4-33-11.8-45.3-24.1L15.5 393c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l26.2 26.2c5.6 5.6 12.8 9.4 20.6 11l64.2 12.6 0-123.7c0-27.7 12-54 32.8-72.2l69-60.4-88.2-62.3C159.6 80 156.2 60 166.4 45.5zm58.1 375.7l64 12.5 0-75.3c0-4.7-2.1-9.3-5.8-12.3l-58.2-48.5 0 123.6z"],tty:[512,512,["teletype"],"f1e4","M450.2 266.8c15.8 6.5 34.1 .3 42.6-14.6l2.4-4.2c27.9-48.9 23.6-118.8-31.3-154.5-126-82-289.6-82-415.6 0-54.9 35.7-59.3 105.7-31.3 154.5l2.4 4.2c8.5 14.9 26.7 21.1 42.6 14.6l81.9-33.7c13.9-5.7 22.4-19.9 20.9-34.9l-5.1-51c62.5-21 130.8-19.9 192.6 3.3l-4.8 47.7c-1.5 15 7 29.2 20.9 34.9l81.9 33.7zM32 352a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm96 0a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM64 416a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm352 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM256 320a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm128-32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM128 448c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32z"],"users-rectangle":[576,512,[],"e594","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm224 72a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 152c53 0 96 43 96 96l0 24c0 13.3-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24l0-24c0-53 43-96 96-96zm96-64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 272.3c-15.2 22.8-24 50.2-24 79.7l0 24c0 8.4 1.4 16.5 4.1 24l-46.8 0C89.6 400 80 390.4 80 378.7L80 368c0-50.3 38.7-91.6 88-95.7zM427.9 400c2.7-7.5 4.1-15.6 4.1-24l0-24c0-29.5-8.8-56.9-24-79.7 49.3 4.1 88 45.3 88 95.7l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-46.8 0zM96 192a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"],mobile:[384,512,[128241,"mobile-android","mobile-phone"],"f3ce","M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm72 416l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"arrows-turn-to-dots":[448,512,[],"e4c1","M265.4-6.6c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L285.3 64 352 64c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-66.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm-82.7 272l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L162.7 400 96 400c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 481.7 0 464l0-32c0-53 43-96 96-96l66.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM320 368a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 160a64 64 0 1 1 0-128 64 64 0 1 1 0 128z"],exclamation:[128,512,[10069,10071,61738],"21","M64 432c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40c0-22.1 17.9-40 40-40zM64 0c26.5 0 48 21.5 48 48 0 .6 0 1.1 0 1.7l-16 304c-.9 17-15 30.3-32 30.3S33 370.7 32 353.7L16 49.7c0-.6 0-1.1 0-1.7 0-26.5 21.5-48 48-48z"],church:[512,512,[9962],"f51d","M280-8c0-13.3-10.7-24-24-24S232-21.3 232-8l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 48-98.6 65.8C120 186.7 112 201.6 112 217.7l0 38.3-79.8 45.6C12.3 313 0 334.2 0 357.1L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-90.9c0-23-12.3-44.2-32.2-55.6L400 256 400 217.7c0-16-8-31-21.4-39.9l-98.6-65.8 0-48 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM256 320c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z"],"toggle-off":[576,512,[],"f204","M384 128c70.7 0 128 57.3 128 128S454.7 384 384 384l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"],"shoe-prints":[576,512,[],"f54b","M296 192c-21.1-12.1-42.3-24.2-72-29.3l0-140.3C257.7 13 311.4 0 352 0 448 0 576 48 576 128s-119.6 96-176 96c-48 0-76-16-104-32zM128 32l48 0 0 128-48 0c-35.3 0-64-28.7-64-64s28.7-64 64-64zM232 320c28-16 56-32 104-32 56.4 0 176 16 176 96S384 512 288 512c-40.5 0-94.3-13-128-22.4l0-140.3c29.7-5.2 50.9-17.3 72-29.4zM64 480c-35.3 0-64-28.7-64-64s28.7-64 64-64l48 0 0 128-48 0z"],"file-circle-exclamation":[576,512,[],"e4eb","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"],wallet:[512,512,[],"f555","M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L72 128c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 32zM416 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],message:[512,512,["comment-alt"],"f27a","M0 352L0 128C0 75 43 32 96 32l320 0c53 0 96 43 96 96l0 224c0 53-43 96-96 96l-120 0c-5.2 0-10.2 1.7-14.4 4.8L166.4 539.2c-4.2 3.1-9.2 4.8-14.4 4.8-13.3 0-24-10.7-24-24l0-72-32 0c-53 0-96-43-96-96z"],trophy:[512,512,[127942],"f091","M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z"],"face-dizzy":[512,512,["dizzy"],"f567","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM134.1 153.9l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zm192 0l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zM256 304a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"],bacteria:[640,512,[],"e059","M256-32c13.3 0 24 10.7 24 24l0 11c8.6 2.2 16.9 5.6 24.8 10.3L311 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L345 151c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L217 279c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L73 313c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L39 169c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L103 105c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9S191.6-2.3 201 7l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24zM128 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM240 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm296 40l0 11c8.6 2.2 16.9 5.6 24.8 10.3L567 199c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L601 343c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L473 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L329 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L295 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L359 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24s24 10.7 24 24zM448 384a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"],"ear-deaf":[512,512,["deaf","deafness","hard-of-hearing"],"f2a4","M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z"],"people-arrows":[512,512,["people-arrows-left-right"],"e068","M32 64A64 64 0 1 1 160 64 64 64 0 1 1 32 64zM0 224c0-35.3 28.7-64 64-64l64 0c3.2 0 6.4 .2 9.5 .7L93.1 205.1C65 233.2 65 278.8 93.1 306.9l56 56c3.4 3.4 7 6.4 10.9 9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-120.6C12.9 332.4 0 311.7 0 288l0-64zM352 64a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm66.9 141.1l-44.4-44.4c3.1-.5 6.3-.7 9.5-.7l64 0c35.3 0 64 28.7 64 64l0 64c0 23.7-12.9 44.4-32 55.4L480 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1c3.9-2.6 7.5-5.6 10.9-9l56-56c28.1-28.1 28.1-73.7 0-101.8zM302.8 177.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S288 321.7 288 312l0-24-64 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S224 190.3 224 200l0 24 64 0 0-24c0-9.7 5.8-18.5 14.8-22.2z"],"hands-clapping":[512,512,[],"e1a8","M344 8l0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64c0-13.3 10.7-24 24-24S344-5.3 344 8zM220 10.7l32 48c7.4 11 4.4 25.9-6.7 33.3s-25.9 4.4-33.3-6.7l-32-48c-7.4-11-4.4-25.9 6.7-33.3S212.6-.3 220 10.7zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1 48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM453.3 4c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7z"],"virus-covid-slash":[576,512,[],"e4a9","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-83-83 11.4-11.4c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-11.3 11.3-23.8-23.8c17.9-23.5 29.9-51.7 34.1-82.3l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3l23.8-23.8 11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L440.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l11.3 11.3-23.8 23.8C370.8 97.9 342.7 85.8 312 81.6l0-33.6 16 0c13.3 0 24-10.7 24-24S341.3 0 328 0L248 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L157.9 92 169.2 80.6c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L123.9 58.1 41-24.9zM113.6 232l-33.6 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3l-23.8 23.8-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.3-11.3 23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c13.4-1.8 26.4-5.2 38.7-9.9L123.5 193.3c-4.7 12.3-8 25.2-9.9 38.7z"],"calendar-days":[448,512,["calendar-alt"],"f073","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM64 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"],"diamond-turn-right":[512,512,["directions"],"f5eb","M215 17L17 215C6.1 225.9 0 240.6 0 256s6.1 30.1 17 41L215 495c10.9 10.9 25.6 17 41 17s30.1-6.1 41-17L495 297c10.9-10.9 17-25.6 17-41s-6.1-30.1-17-41L297 17C286.1 6.1 271.4 0 256 0s-30.1 6.1-41 17zM385 257l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-78.1 0c-13.3 0-24 10.7-24 24l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40c0-39.8 32.2-72 72-72l78.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z"],"hand-point-up":[384,512,[9757],"f0a6","M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0 0-208zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z"],"bezier-curve":[640,512,[],"f55b","M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4-118.4 0C111.2 62.7 89.3 48 64 48 28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1 8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1 59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36 35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36l-118.4 0 0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z"],"person-half-dress":[384,512,[],"e548","M143.4-3.9c9.7-16.8 27.8-28.1 48.6-28.1 30.9 0 56 25.1 56 56 0 25.4-16.9 46.8-40 53.7l0 0c-5.1 1.5-10.4 2.3-16 2.3-30.9 0-56-25.1-56-56l0 0c0-10.1 2.7-19.7 7.4-27.9zM318.3 299.1L272 236.7 272 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160 0-.4 0-238.6c36.2 4.4 69.2 23.4 91.2 53l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 113l0 399c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c22-29.6 55.1-48.6 91.2-53z"],"square-poll-horizontal":[448,512,["poll-h"],"f682","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 152c0 13.3-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24zm72 80c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l208 0zM192 360c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24z"],"school-circle-xmark":[640,512,[],"e56d","M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"],"hand-lizard":[512,512,[],"f258","M0 112C0 85.5 21.5 64 48 64l238.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 76c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8-78.1-50.2-161.9 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l128 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L48 160c-26.5 0-48-21.5-48-48z"],chalkboard:[576,512,["blackboard"],"f51b","M96 64c-35.3 0-64 28.7-64 64l0 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-256c0-35.3-28.7-64-64-64L96 64zM480 384l-64 0 0-32c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32l0 32-160 0 0-256 384 0 0 256z"],"up-right-from-square":[512,512,["external-link-alt"],"f35d","M290.4 19.8C295.4 7.8 307.1 0 320 0L480 0c17.7 0 32 14.3 32 32l0 160c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L400 157.3 246.6 310.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L354.7 112 297.4 54.6c-9.2-9.2-11.9-22.9-6.9-34.9zM0 176c0-44.2 35.8-80 80-80l80 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 176z"],"square-full":[512,512,[128997,128998,128999,129000,129001,129002,129003,11035,11036],"f45c","M0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z"],clover:[512,512,[],"e139","M310.4 16C346.6 16 376 45.4 376 81.7l0 5.2c0 11.2-2.7 22.3-7.8 32.2l-2.3 4.2-20.1 33.5c-1.1 1.9-1.2 3.4-1.1 4.5 .2 1.3 .9 2.7 2.1 3.9s2.6 1.9 3.9 2.1c1.1 .2 2.6 .1 4.5-1.1l33.5-20.1 4.2-2.3c10-5.1 21-7.8 32.2-7.8l5.2 0c36.2 0 65.6 29.4 65.6 65.7 0 17.4-6.9 34.1-19.2 46.4l-1.3 1.3c-3.7 3.7-3.7 9.6 0 13.3l1.3 1.3c12.3 12.3 19.2 29 19.2 46.4 0 36.2-29.4 65.6-65.6 65.6l-5.2 0c-12.8 0-25.5-3.5-36.5-10.1l-33.5-20.1c-1.9-1.1-3.4-1.2-4.5-1.1-1.3 .2-2.7 .9-3.9 2.1s-1.9 2.6-2.1 3.9c-.2 1.1-.1 2.6 1.1 4.5l20.1 33.5c6.6 11 10.1 23.6 10.1 36.5l0 5.2c0 36.2-29.4 65.6-65.6 65.6-17.4 0-34.1-6.9-46.4-19.2l-1.3-1.3c-3.7-3.7-9.6-3.7-13.3 0l-1.3 1.3c-12.3 12.3-29 19.2-46.4 19.2-36.2 0-65.6-29.4-65.7-65.6l0-5.2c0-12.8 3.5-25.5 10.1-36.5l20.1-33.5c1.1-1.9 1.2-3.4 1.1-4.5-.2-1.3-.9-2.7-2.1-3.9s-2.6-1.9-3.9-2.1c-.5-.1-1.2-.1-1.9 0l-2.5 1-33.5 20.1c-11 6.6-23.6 10.1-36.5 10.1l-5.2 0C45.4 376 16 346.6 16 310.4 16 293 22.9 276.3 35.2 264l1.3-1.3 1.2-1.5c2.1-3.1 2.1-7.2 0-10.3l-1.2-1.5-1.3-1.3C22.9 235.8 16 219.1 16 201.7 16 165.4 45.4 136 81.7 136l5.2 0c12.8 0 25.5 3.5 36.5 10.1l33.5 20.1 2.5 1c.7 .1 1.4 .1 1.9 .1 1.3-.2 2.7-.9 3.9-2.1s1.9-2.6 2.1-3.9c.1-.5 .1-1.2-.1-1.9l-1-2.5-20.1-33.5c-6.6-11-10.1-23.6-10.1-36.5l0-5.2c0-36.2 29.4-65.7 65.7-65.7 17.4 0 34.1 6.9 46.4 19.2l1.3 1.3c3.7 3.6 9.6 3.7 13.3 0l1.3-1.3 4.8-4.4C280.5 21.3 295.1 16 310.4 16z"],"teeth-open":[512,512,[],"f62f","M64 32C28.7 32 0 60.7 0 96l0 80c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-80c0-35.3-28.7-64-64-64L64 32zm0 272c-35.3 0-64 28.7-64 64l0 48c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-48c0-35.3-28.7-64-64-64L64 304zm80-160c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zm128 0c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM80 112c17.7 0 32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24c0-17.7 14.3-32 32-32zm320 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24zM48 384l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32zm144 48c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm128 0c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm112-16c-17.7 0-32-14.3-32-32l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32z"],"bars-staggered":[512,512,["reorder","stream"],"f550","M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"],warehouse:[576,512,[],"f494","M0 142.1L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-240c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32l0 240c0 17.7 14.3 32 32 32s32-14.3 32-32l0-337.9c0-27.5-17.6-52-43.8-60.7L303.2 5.1c-9.9-3.3-20.5-3.3-30.4 0L43.8 81.4C17.6 90.1 0 114.6 0 142.1zM464 256l-352 0 0 64 352 0 0-64zM112 416l352 0 0-64-352 0 0 64zm352 32l-352 0 0 64 352 0 0-64z"],swatchbook:[512,512,[],"f5c3","M0 48C0 21.5 21.5 0 48 0l96 0c26.5 0 48 21.5 48 48l0 368c0 53-43 96-96 96S0 469 0 416L0 48zM240 409.6l0-271.5 48.1-48.1c18.7-18.7 49.1-18.7 67.9 0l67.9 67.9c18.7 18.7 18.7 49.1 0 67.9L240 409.6zM205.5 512l192-192 66.6 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-258.5 0zM80 64c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 64zM64 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"],campground:[512,512,[9978],"f6bb","M344.8 52.3c11.2-13.7 9.2-33.8-4.5-45s-33.8-9.2-45 4.5l-39.2 48-39.2-48C205.6-1.9 185.4-4 171.7 7.2s-15.7 31.4-4.5 45l47.4 58-202 246.9C4.5 367.1 0 379.6 0 392.6L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-39.4c0-12.9-4.5-25.5-12.7-35.5l-202-246.9 47.4-58zM256 288l112 128-224 0 112-128z"],"person-walking-arrow-right":[576,512,[],"e552","M104.5 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3L73.9 227.9c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L262.3 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8L130 347.5c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zM96.6 371c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5L55.1 534.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L96.6 371zM505.5 345c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72z"],glasses:[576,512,[],"f530","M143.3 96c-14 0-26.5 9.2-30.6 22.6L70.4 256 224 256c17.7 0 32 14.3 32 32l64 0c0-17.7 14.3-32 32-32l153.6 0-42.3-137.4C459.2 105.2 446.8 96 432.7 96L400 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l32.7 0c42.1 0 79.4 27.5 91.8 67.8l45.4 147.5c4.1 13.2 6.1 26.9 6.1 40.7l0 96c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-32-64 0 0 32c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-96c0-13.8 2.1-27.5 6.1-40.7L51.5 99.8C63.9 59.5 101.1 32 143.3 32L176 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.7 0zM64 320l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64-128 0zm416 96c17.7 0 32-14.3 32-32l0-64-128 0 0 64c0 17.7 14.3 32 32 32l64 0z"],"circle-pause":[512,512,[62092,"pause-circle"],"f28b","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z"],memory:[512,512,[],"f538","M64 64C28.7 64 0 92.7 0 128l0 7.4C0 142.2 4.4 148 10.1 151.7 23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6l0 55.4 512 0 0-55.4c0-6.8-4.4-12.6-10.1-16.3-13.2-8.6-21.9-23.4-21.9-40.3s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM512 416l0-64-512 0 0 64c0 17.7 14.3 32 32 32l64 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 64 0c17.7 0 32-14.3 32-32zM160 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z"],gift:[512,512,[127873],"f06b","M321.5 68.8C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-73.3 0 34.8-59.2zm-131 0l34.8 59.2-73.3 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zm89.6-24.3l-24.1 41-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0c-48.6 0-88 39.4-88 88 0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40 0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4zM480 272l-200 0 0 208 136 0c35.3 0 64-28.7 64-64l0-144zm-248 0l-200 0 0 144c0 35.3 28.7 64 64 64l136 0 0-208z"],"money-bill-wheat":[512,512,[],"e52a","M176-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zM56 0l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 48C42.7 48 32 37.3 32 24S42.7 0 56 0zM24 72l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 120C10.7 120 0 109.3 0 96S10.7 72 24 72zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 0c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80zM400-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 112c8.8 0 16 7.2 16 16 0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z"],dungeon:[512,512,[],"f6d9","M347.5 144.8c6.5 5.4 12.5 11.3 18 17.7 8.7 10.2 23.7 14 35.1 6.9l54.1-33.8c11.2-7 14.7-21.7 6.9-32.2-15.3-20.5-33.5-38.6-54.1-53.8-10.4-7.6-24.7-4.3-31.8 6.4l-35.1 52.6c-7.8 11.6-3.8 27.3 7 36.2zM327.8 41.1c8.6-12.9 2.9-30.5-12.2-34.1-19.1-4.6-39.1-7-59.6-7s-40.4 2.4-59.6 7c-15.1 3.6-20.8 21.2-12.2 34.1l40 60c5.2 7.8 14.5 11.7 23.9 11.2 5.2-.3 10.6-.3 15.8 0 9.4 .5 18.7-3.4 23.9-11.2l40-60zM50.5 103.3c-7.9 10.5-4.3 25.3 6.9 32.2l54.1 33.8c11.4 7.1 26.3 3.3 35.1-6.9 5.5-6.4 11.5-12.3 18-17.7 10.8-8.9 14.8-24.6 7-36.2L136.4 55.9c-7.1-10.7-21.5-14-31.8-6.4-20.6 15.1-38.8 33.3-54.1 53.8zm62 141.1c.8-9.9-3.3-19.9-11.8-25.1L41 182c-12.9-8-29.9-2.3-33.6 12.5-4.9 19.7-7.5 40.3-7.5 61.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-3.9 .2-7.8 .5-11.6zm287.1 0c.3 3.8 .5 7.7 .5 11.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-21.2-2.6-41.8-7.5-61.6-3.6-14.7-20.7-20.5-33.6-12.5l-59.7 37.3c-8.4 5.3-12.6 15.2-11.8 25.1zM88 352l-64 0c-13.3 0-24 10.7-24 24L0 488c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm400 0l-64 0c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304zm-80 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272zm160 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272z"],"suitcase-medical":[512,512,["medkit"],"f0fa","M192 56l0 40 128 0 0-40c0-4.4-3.6-8-8-8L200 48c-4.4 0-8 3.6-8 8zm-48 8l0-8c0-30.9 25.1-56 56-56L312 0c30.9 0 56 25.1 56 56l0 424-224 0 0-416zM96 176l0 304-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l32 0 0 80zM416 480l0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-32 0zM244 208c-8.8 0-16 7.2-16 16l0 36-36 0c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l36 0 0 36c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-36 36 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-36 0 0-36c0-8.8-7.2-16-16-16l-24 0z"],"person-cane":[448,512,[],"e53c","M232-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM144 236.7L97.7 299.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C142 132 181.7 112 224 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L304 236.7 304 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3zM392 384c-4.4 0-8 3.6-8 8 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-4.4-3.6-8-8-8z"],gauge:[512,512,["dashboard","gauge-med","tachometer-alt-average"],"f624","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"],"envelope-open-text":[576,512,[],"f658","M288 33.9L96.4 175.8 254.5 293c5.3 3.9 11.2 6.9 17.5 8.7L272 464c0 5.5 .5 10.8 1.3 16L96 480c-35.3 0-64-28.7-64-64l0-239.9c0-20.3 9.6-39.4 25.9-51.4L254.5-21c9.7-7.2 21.4-11 33.5-11s23.8 3.9 33.5 11L518.1 124.7c7.2 5.3 13.1 12 17.4 19.6-2.5-.2-5-.3-7.5-.3L436.6 144 288 33.9zM320 240c0-26.5 21.5-48 48-48l160 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-224zm80 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0z"],toolbox:[512,512,[129520],"f552","M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 76.1-136 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-144 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-136 0 0-76.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1L128 96zM0 416l0-96 136 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 144 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 136 0 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z"],"power-off":[512,512,[9211],"f011","M288 0c0-17.7-14.3-32-32-32S224-17.7 224 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L288 0zM146.3 98.4c14.5-10.1 18-30.1 7.9-44.6s-30.1-18-44.6-7.9C43.4 92.1 0 169 0 256 0 397.4 114.6 512 256 512S512 397.4 512 256c0-87-43.4-163.9-109.7-210.1-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6c49.8 34.8 82.3 92.4 82.3 157.6 0 106-86 192-192 192S64 362 64 256c0-65.2 32.5-122.9 82.3-157.6z"],signal:[512,512,[128246,"signal-5","signal-perfect"],"f012","M488 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400zM360 128c-13.3 0-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-13.3-10.7-24-24-24zM280 248c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zM152 320c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM48 384c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24z"],"arrows-spin":[512,512,[],"e4bb","M481.7 240.1c-17.6-1.2-32.9 12-34.2 29.7-3.3 47-23.6 89.4-54.8 121L361 359c-6.9-6.9-17.2-8.9-26.2-5.2S320 366.3 320 376l0 112c0 13.3 10.7 24 24 24l112 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-35-35c41.7-42.2 68.9-98.8 73.4-161.8 1.2-17.6-12-32.9-29.7-34.2zM39 41L74 76c-41.7 42.2-68.9 98.8-73.4 161.8-1.2 17.6 12 32.9 29.7 34.2s32.9-12 34.2-29.7c3.3-47 23.6-89.4 54.8-121L151 153c6.9 6.9 17.2 8.9 26.2 5.2S192 145.7 192 136l0-112c0-13.3-10.7-24-24-24L56 0C46.3 0 37.5 5.8 33.8 14.8S32.2 34.1 39 41zm201-10.7c-1.2 17.6 12 32.9 29.7 34.2 47 3.3 89.4 23.6 121 54.8L359 151c-6.9 6.9-8.9 17.2-5.2 26.2S366.3 192 376 192l112 0c13.3 0 24-10.7 24-24l0-112c0-9.7-5.8-18.5-14.8-22.2S477.9 32.2 471 39L436 74c-42.2-41.7-98.8-68.9-161.8-73.4-17.6-1.2-32.9 12-34.2 29.7zM41 473l35-35c42.2 41.7 98.8 68.9 161.8 73.4 17.6 1.2 32.9-12 34.2-29.7s-12-32.9-29.7-34.2c-47-3.3-89.4-23.6-121-54.8L153 361c6.9-6.9 8.9-17.2 5.2-26.2S145.7 320 136 320L24 320c-13.3 0-24 10.7-24 24L0 456c0 9.7 5.8 18.5 14.8 22.2S34.1 479.8 41 473z"],joint:[576,512,[],"f595","M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM292.7 320c5.6 0 10.7 2.9 13.6 7.6L394.6 471c1.3 2.1 0 4.9-2.4 5.2-16.1 2.5-32.4 3.7-48.7 3.7l-38.1 0c-5.6 0-10.7-2.9-13.6-7.6l-79-128.4c-6-9.8 0-22.6 11.5-23.3 6.7-.4 13.4-.6 20.2-.6l48.3 0zM459.3 465.9c-6.4 1-12.7-1.9-16.1-7.4L374.1 346.1c-6.7-10.9 1.5-24.7 14.2-22.9 1.3 .2 2.6 .4 3.8 .6l136.4 21c27.3 4.2 47.4 27.7 47.4 55.3s-20.1 51.1-47.4 55.3l-69.2 10.6zM138.7 336c6.7-1.5 13.6 1.4 17.2 7.2l68.9 112c6.6 10.7-1.2 24.4-13.8 23.1-13-1.4-25.9-3.5-38.6-6.5L31.2 439.2C12.9 435 0 418.7 0 400s12.9-35 31.2-39.2L138.7 336z"],braille:[384,512,[],"f2a1","M80 144a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 136c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0 56c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm248-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm56 0c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zM304 232a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0 104a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-192a80 80 0 1 0 0-160 80 80 0 1 0 0 160z"],"basket-shopping":[576,512,["shopping-basket"],"f291","M288 0c6.6 0 12.9 2.7 17.4 7.5l144 152 .5 .5 78.1 0c17.7 0 32 14.3 32 32 0 14.5-9.6 26.7-22.8 30.7L491.1 429.9c-6.5 29.3-32.5 50.1-62.5 50.1l-281.3 0c-30 0-56-20.8-62.5-50.1l-46-207.2c-13.2-3.9-22.8-16.2-22.8-30.7 0-17.7 14.3-32 32-32l78.1 0 .5-.5 144-152C275.1 2.7 281.4 0 288 0zm0 58.9L192.2 160 383.8 160 288 58.9zM208 264c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112zm80-24c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm128 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112z"],bridge:[512,512,[],"e4c8","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-94c0-38.8 26.4-72.6 64-82l0-112-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64z"],"plane-arrival":[576,512,[128748],"f5af","M386.6 193.1L265.9 3.7c-4.8-7.6-12.6-12.8-21.4-14.3l-43.1-7.6c-10.8-1.9-20.2 7.3-18.6 18.1l24 161.6-105-18.5-33.8-61.8C64.5 74.7 58.2 70.2 51.1 69L34 66c-9.8-1.7-18.8 5.9-18.8 15.8l.6 106.3c.2 30.9 22.4 57.3 52.9 62.7l13.5 2.4 0 0 417.6 73.6c30.5 5.4 59.5-15 64.9-45.4s-15-59.5-45.4-64.9L386.6 193.1zM224 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm131.2-15.3a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z"],"cash-register":[512,512,[],"f788","M96 0C60.7 0 32 28.7 32 64s28.7 64 64 64l48 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 48 0c35.3 0 64-28.7 64-64S291.3 0 256 0L96 0zm0 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 424c0-13.3 10.7-24 24-24l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm48-160a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z"],ring:[512,512,[],"f70b","M64 208c0 7.8 4.4 18.7 17.1 30.3 45.4-24.2 107.7-38.3 174.9-38.3s129.5 14.1 174.9 38.3c12.8-11.6 17.1-22.5 17.1-30.3 0-12.3-10.8-32-47.9-50.6-35.2-17.6-86.1-29.4-144.1-29.4s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7 33.2 12.4 75.7 20.3 122.9 20.3s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208C0 158.4 39.4 122.2 83.3 100.2 129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8-45.9 22.9-107 36.2-172.7 36.2S129.1 434.7 83.3 411.8C39.4 389.8 0 353.6 0 304l0-96z"],"share-nodes":[512,512,["share-alt"],"f1e0","M384 192c53 0 96-43 96-96s-43-96-96-96-96 43-96 96c0 5.4 .5 10.8 1.3 16L159.6 184.1c-16.9-15-39.2-24.1-63.6-24.1-53 0-96 43-96 96s43 96 96 96c24.4 0 46.6-9.1 63.6-24.1L289.3 400c-.9 5.2-1.3 10.5-1.3 16 0 53 43 96 96 96s96-43 96-96-43-96-96-96c-24.4 0-46.6 9.1-63.6 24.1L190.7 272c.9-5.2 1.3-10.5 1.3-16s-.5-10.8-1.3-16l129.7-72.1c16.9 15 39.2 24.1 63.6 24.1z"],"person-circle-exclamation":[640,512,[],"e53f","M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"],binoculars:[512,512,[],"f1e5","M128 32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3 13.7-22.8 22.5-48.2 25.8-74.6L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6 17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z"],"kip-sign":[384,512,[],"e1c4","M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 168-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4 171.2 146.7c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L173.2 280 352 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L173.2 232 340.8 88.3z"],"hard-drive":[448,512,[128436,"hdd"],"f0a0","M64 32C28.7 32 0 60.7 0 96L0 260.1C18.1 247.4 40.2 240 64 240l320 0c23.8 0 45.9 7.4 64 20.1L448 96c0-35.3-28.7-64-64-64L64 32zM448 352c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64zM224 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"ranking-star":[576,512,[],"e561","M321.8 54.1L298.2 6.3c-3.9-8.3-16.1-8.6-20.4 0l-23.6 47.8-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-26.5 0-48 21.5-48 48l0 160c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0zM48 320c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-64 0zM416 432l0 32c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-64 0c-26.5 0-48 21.5-48 48z"],"user-tie":[448,512,[],"f508","M224 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm-30.5 56l61 0c9.7 0 17.5 7.8 17.5 17.5 0 4.2-1.5 8.2-4.2 11.4l-27.4 32 31 115.1 .6 0 34.6-138.5c2.2-8.7 11.1-14 19.5-10.8 61.9 23.6 105.9 83.6 105.9 153.8 0 15.1-12.3 27.4-27.4 27.4L43.4 512c-15.1 0-27.4-12.3-27.4-27.4 0-70.2 44-130.2 105.9-153.8 8.4-3.2 17.3 2.1 19.5 10.8l34.6 138.5 .6 0 31-115.1-27.4-32c-2.7-3.2-4.2-7.2-4.2-11.4 0-9.7 7.8-17.5 17.5-17.5z"],ellipsis:[448,512,["ellipsis-h"],"f141","M0 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm168 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm224-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"],"store-slash":[576,512,[],"e071","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-58.6-58.6c1.1-4 1.6-8.2 1.6-12.5l0-151.2c-12.5 4.6-26.1 7.2-40.5 7.2-8.1 0-15.9-.8-23.5-2.4l0 66.4-30.2 0-137.5-137.5c2.9-3.6 5.5-7.4 7.6-11.5 11.6 22 34.7 37 61.3 37 26.8 0 49.8-15.1 61.4-37.1 11.4 22.1 34.5 37.1 60.8 37.1 45.6 0 78.4-43.7 65.6-87.5L513.8 72.3C506.8 48.4 484.9 32 460 32L116 32c-5.5 0-10.8 .8-15.9 2.3L41-24.9zM151.5 221.3L48.7 118.6 38.9 152.5c-12.8 43.7 20 87.5 65.6 87.5 18.1 0 34.7-7.1 47-18.7zM410.2 480l-128-128-154.2 0 0-66.4c-7.6 1.6-15.5 2.4-23.5 2.4-14.4 0-28-2.6-40.5-7.2L64 432c0 26.5 21.5 48 48 48l298.2 0z"],percent:[448,512,[62101,62785,"percentage"],"25","M192 128a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM448 384a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM438.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-384 384c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l384-384z"],"file-zipper":[384,512,["file-archive"],"f1c6","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 72c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 48C74.7 48 64 58.7 64 72zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm64 72l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"],display:[512,512,[],"e163","M448 96l0 256-384 0 0-256 384 0zM64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32z"],icons:[512,512,["heart-music-camera-bolt"],"f86d","M174.9 272c10.7 0 20.7 5.3 26.6 14.2l11.8 17.8 26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0 11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0zm278.6-12c5.6-4.9 13.9-5.3 19.9-.9s8.3 12.4 5.3 19.3L440.3 368 496 368c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.3-12.4-5.3-19.3l38.5-89.7-55.8 0c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112zM144 360a48 48 0 1 0 0 96 48 48 0 1 0 0-96zM483.8 .4c6.5-1.1 13.1 .4 18.5 4.4 6.1 4.5 9.7 11.7 9.7 19.2l0 152-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6l0-49.3-112 33.6 0 110.2-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6L304 72c0-10.6 7-20 17.1-23l160-48 2.7-.6zM188.9 0C226 0 256 30 256 67.1l0 6.1c0 56.1-75.2 112.1-110.3 135.3-10.8 7.1-24.6 7.1-35.4 0-35.1-23.1-110.3-79.2-110.3-135.3l0-6.1C0 30 30 0 67.1 0 88.2 0 108 9.9 120.7 26.8l7.3 9.8 7.3-9.8C148 9.9 167.8 0 188.9 0z"],"ruler-vertical":[256,512,[],"f548","M0 16C0-10.5 21.5-32 48-32l160 0c26.5 0 48 21.5 48 48l0 24-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 24c0 26.5-21.5 48-48 48L48 544c-26.5 0-48-21.5-48-48L0 16z"],"map-location-dot":[640,512,["map-marked-alt"],"f5a0","M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM512 224c-66.3 0-120 52.8-120 117.9 0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9zM472 344a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z"],"heart-crack":[512,512,[128148,"heart-broken"],"f7a9","M133.1 32c17.3 0 34.2 3.4 49.9 9.7l54.8 85.2-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.4 60.6C319.6 42.3 348.6 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32z"],cow:[640,512,[128004],"f6c8","M96 224l0 192c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21 22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L144 64C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4 31.8 0 57.6-25.8 57.6-57.6L72 184c0-24.3 12.1-45.8 30.5-58.9-4.2 10.8-6.5 22.6-6.5 34.9l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6 0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z"],rss:[448,512,["feed"],"f09e","M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 160c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z"],"magnifying-glass":[512,512,[128269,"search"],"f002","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"],"cloud-moon":[640,512,[],"f6c3","M480 0c14.6 0 28.8 1.6 42.5 4.7 7.4 1.7 13 7.8 13.9 15.4s-3 14.9-9.8 18.3c-45.4 22.6-76.6 69.5-76.6 123.6 0 76.2 61.8 138 138 138 3.7 0 7.4-.1 11.1-.4 7.6-.6 14.7 3.6 17.8 10.6s1.5 15.1-3.9 20.4c-26 25-59.1 42.7-95.9 49.9-11.1-25.3-30.2-46.3-54.1-59.8-7.6-63.4-61.6-112.6-127.1-112.6-11.2 0-22.1 1.5-32.5 4.2-4.8-4.2-9.9-8.2-15.2-11.8-.1-2.8-.2-5.6-.2-8.4 0-106 86-192 192-192zm-.1 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96 0-47.6 34.6-87 80-94.6-.4-52.8 42.9-97.3 96-97.3 34.9 0 65.4 18.6 82.2 46.4 13-9.1 28.8-14.4 45.8-14.4 44.2 0 80 35.8 80 80 0 5.9-.6 11.7-1.9 17.2 37.4 6.7 65.8 39.4 65.8 78.7z"],"boxes-stacked":[512,512,[62625,"boxes","boxes-alt"],"f468","M224 0l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 5.5-.7 10.9-2 16l-252 0c-1.3-5.1-2-10.5-2-16l0-128c0-35.3 28.7-64 64-64l32 0zm96 512c-11.2 0-21.8-2.9-31-8 9.5-16.5 15-35.6 15-56l0-128c0-20.4-5.5-39.5-15-56 9.2-5.1 19.7-8 31-8l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64l-128 0zM0 320c0-35.3 28.7-64 64-64l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 320z"],"code-branch":[448,512,[],"f126","M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 70.7 176 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-176 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80S0 476.2 0 432c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"],ban:[512,512,[128683,"cancel"],"f05e","M367.2 412.5L99.5 144.8c-22.4 31.4-35.5 69.8-35.5 111.2 0 106 86 192 192 192 41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3c22.4-31.4 35.5-69.8 35.5-111.2 0-106-86-192-192-192-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z"],"jug-detergent":[384,512,[],"e519","M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72S74.7 48 88 48l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z"],reply:[512,512,[61714,"mail-reply"],"f3e5","M204.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 112 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-96 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9z"],"sun-plant-wilt":[640,512,[],"e57a","M160 0c-5.5 0-10.6 2.8-13.5 7.4l-1.1 2.1-24.8 55.4-56.7-21.7c-5.9-2.2-12.5-.8-17 3.7S41 58 43.2 63.9l21.7 56.7-55.4 24.8C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8-21.7 56.7c-2.2 5.9-.8 12.5 3.7 17s11.1 5.9 17 3.7l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.8 21.7c5.9 2.2 12.5 .8 17-3.7s5.9-11.1 3.7-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7 .7-2.2c1.2-5.3-.4-10.9-4.3-14.8s-9.5-5.5-14.8-4.3l-2.2 .7-56.8 21.7-24.8-55.4C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm376 16l0 53.4c-14.8 7.7-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.6-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176-424 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-272c0-17.7 14.3-32 32-32s32 14.3 32 32z"],bacterium:[576,512,[],"e05a","M408 16c0-13.3-10.7-24-24-24S360 2.7 360 16l0 23.4c-13.9 5.3-26.9 13.5-38.2 24.5L305 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-10 10-20 20-30.1 30.1L177 175c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-11 11.3-19.2 24.3-24.5 38.2L48 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l16.3 0c1.3 18.3 7.1 36.4 17.4 52.4L71 439c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l10.6-10.6c16 10.3 34.1 16.1 52.4 17.4l0 16.3c0 13.3 10.7 24 24 24s24-10.7 24-24l0-23.4c13.9-5.3 26.9-13.5 38.2-24.5L271 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c10-10 20-20 30.1-30.1L399 337c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c11-11.3 19.2-24.3 24.5-38.2l23.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16.3 0c-1.3-18.3-7.1-36.4-17.4-52.4L505 73c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L460.4 49.7c-16-10.3-34.1-16.1-52.4-17.4L408 16zM160 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM272 240a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"record-vinyl":[512,512,[],"f8d9","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-112a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"floppy-disk":[448,512,[128190,128426,"save"],"f0c7","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm32 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"],"toilets-portable":[512,512,[],"e584","M64 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16C0 28.7 28.7 0 64 0zM0 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24S0 501.3 0 488L0 128zM128 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24zM352 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16c0-35.3 28.7-64 64-64zM288 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-360zM416 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24z"],o:[448,512,[111],"4f","M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256a224 224 0 1 1 -448 0 224 224 0 1 1 448 0z"],palette:[512,512,[127912],"f53f","M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],unlock:[384,512,[128275],"f09c","M128 96c0-35.3 28.7-64 64-64 31.7 0 58 23 63.1 53.3 2.9 17.4 19.4 29.2 36.9 26.3s29.2-19.4 26.3-36.9C308.1 14.1 255.5-32 192-32 121.3-32 64 25.3 64 96l0 64c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-192 0 0-64z"],"ear-listen":[512,512,["assistive-listening-systems"],"f2a2","M379.6 .3c-8.9 1.2-17.2 6.2-22.4 14.1-6.8 10.4-7 24.1-.4 34.6 5.6 8.9 15.5 12.7 23.8 18.5 7.5 5.2 17.6 13.2 27.7 24.2 20 21.7 39.5 54.3 39.5 100.3 0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7-13.9-15.1-27.8-26.1-38.3-33.3-11-7.6-23.5-16.6-37.6-14.7zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zM0 480a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zM240 208c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z"],"code-pull-request":[512,512,[],"e13c","M328 24c0-9.7-5.8-18.5-14.8-22.2S293.9 .2 287 7L231 63c-9.4 9.4-9.4 24.6 0 33.9l56 56c6.9 6.9 17.2 8.9 26.2 5.2S328 145.7 328 136l0-24 24 0c17.7 0 32 14.3 32 32l0 214.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3L448 144c0-53-43-96-96-96l-24 0 0-24zM72 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm56 73.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S16 35.8 16 80c0 32.8 19.7 61 48 73.3l0 205.3c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-205.3zM72 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm344-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"],key:[512,512,[128273],"f084","M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0 160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z"],skull:[512,512,[128128],"f54c","M416 427.4c58.5-44 96-111.6 96-187.4 0-132.5-114.6-240-256-240S0 107.5 0 240c0 75.8 37.5 143.4 96 187.4L96 464c0 26.5 21.5 48 48 48l32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 64 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c26.5 0 48-21.5 48-48l0-36.6zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"],"mars-stroke-up":[384,512,[9896,"mars-stroke-v"],"f22a","M192 256a112 112 0 1 0 0 224 112 112 0 1 0 0-224zM16 368c0-86.3 62.1-158.1 144.1-173.1-.1-.9-.1-1.9-.1-2.9l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-61.4-28 22.4c-13.8 11-33.9 8.8-45-5s-8.8-33.9 5-45l80-64c11.7-9.3 28.3-9.3 40 0l80 64c13.8 11 16 31.2 5 45s-31.2 16-45 5l-28-22.4 0 61.4 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 1 0 1.9-.1 2.9 82 15 144.1 86.8 144.1 173.1 0 97.2-78.8 176-176 176S16 465.2 16 368z"],"fire-flame-simple":[384,512,["burn"],"f46a","M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6 0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5 0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z"],tree:[448,512,[127794],"f1bb","M224-32c7 0 13.7 3.1 18.3 8.5l136 160c6.1 7.1 7.4 17.1 3.5 25.6S369.4 176 360 176l-24.9 0 75.2 88.5c6.1 7.1 7.4 17.1 3.5 25.6S401.4 304 392 304l-38.5 0 88.8 104.5c6.1 7.1 7.4 17.1 3.5 25.6S433.4 448 424 448l-168 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-168 0c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L94.5 304 56 304c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L112.9 176 88 176c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6l136-160C210.3-28.9 217-32 224-32z"],smog:[576,512,[],"f75f","M176 288C96.5 288 32 223.5 32 144S96.5 0 176 0c27.2 0 52.6 7.5 74.3 20.6 20.1-13 44-20.6 69.7-20.6 47.4 0 88.7 25.7 110.9 64l1.1 0c61.9 0 112 50.1 112 112 0 60.3-47.6 109.4-107.2 111.9-22.6 20-52.3 32.1-84.8 32.1-32.5 0-62.1-12.1-84.7-32L176 288zM512 392c0 13.3-10.7 24-24 24L24 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l464 0c13.3 0 24 10.7 24 24zM88 464l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm176 0l288 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],s:[320,512,[115],"53","M0 157.5C0 88.2 56.2 32 125.5 32L272 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L125.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61L210.1 230C272.9 237.9 320 291.2 320 354.5 320 423.8 263.8 480 194.5 480L48 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-31-23.1-57.2-53.9-61L109.9 282C47.1 274.1 0 220.8 0 157.5z"],jedi:[576,512,[],"f669","M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9-.1 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5c59.8-10.8 105.1-63.1 105.1-126 0-37-15.7-70.4-40.8-93.7-7-6.5-6.5-18.6 1-24.4 34-26.3 55.8-67.5 55.8-113.9 0-16.8-2.9-33-8.2-48-4.6-13 10.2-30 21.4-22 53.5 38 92.7 94.8 107.8 160.7 .5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6 .1 3.3 .2 6.6 .2 10 0 17.5-1.7 34.7-4.8 51.3-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9-44.5 89.5-136.9 151-243.7 151S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3-3.2-16.6-4.8-33.8-4.8-51.3 0-3.3 .1-6.7 .2-10 .1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9 15.2-66 54.3-122.8 107.8-160.7 11.3-8 26 8.9 21.4 22-5.3 15-8.2 31.2-8.2 48 0 46.3 21.9 87.5 55.8 113.9 7.5 5.8 8 17.9 1 24.4-25.1 23.4-40.8 56.7-40.8 93.7 0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z"],"person-hiking":[448,512,["hiking"],"f6ec","M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM128 173.6c0-34 27.6-61.6 61.6-61.6 20.3 0 39.7 8.1 54 22.4l48.2 48.2c6 6 14.1 9.4 22.6 9.4l37.5 0c5.8 0 11.3 1.6 16 4.3l0-76.3c0-13.3 10.7-24 24-24s24 10.7 24 24l0 400c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-268.3c-4.7 2.7-10.2 4.3-16 4.3l-37.5 0c-25.5 0-49.9-10.1-67.9-28.1l-6.6-6.6 0 109.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-101zm-4.8 203.7c2.3 2.3 4.7 4.4 7.1 6.5l44.9 38.5c-3.6 8.4-8.5 16.3-14.4 23.4L88.6 532.5c-11.3 13.6-31.5 15.4-45.1 4.1s-15.4-31.5-4.1-45.1l72.3-86.7c2.6-3.1 4.5-6.6 5.8-10.4l5.7-17.1zM0 160c0-35.3 28.7-64 64-64 17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96z"],"arrows-up-to-line":[448,512,[],"e4c2","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l384 0c17.7 0 32-14.3 32-32S433.7 0 416 0L32 0zm86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L64 237.3 64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zm256 0c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 242.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z"],"mars-double":[640,512,[9891],"f227","M288 32c0-17.7 14.3-32 32-32L448 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S0 401.2 0 304 78.8 128 176 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm160 64c-6.8 0-13.4-.4-20-1.1 23.6-18.9 43.3-42.5 57.6-69.4 43.3-15.5 74.4-56.9 74.4-105.5 0-25.2-8.3-48.5-22.4-67.2 7.1 2.1 14.6 3.2 22.4 3.2 17 0 32.7-5.3 45.7-14.3 11.7 23.6 18.3 50.2 18.3 78.3 0 97.2-78.8 176-176 176zM528 157.3L528 32c0-11.4-2.4-22.2-6.7-32L608 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-48 48z"],thermometer:[512,512,[],"f491","M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l21.7-21.7 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 7.8-7.8c19.4-19.4 45.6-30.2 73-30.2 57 0 103.2 46.2 103.2 103.2 0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0-89 89c-9.4 9.4-24.6 9.4-33.9 0S-2.3 480.4 7 471l89-89z"],paintbrush:[576,512,[128396,"paint-brush"],"f1fc","M480.5 10.3L259.1 158c-29.1 19.4-47.6 50.9-50.6 85.3 62.3 12.8 111.4 61.9 124.3 124.3 34.5-3 65.9-21.5 85.3-50.6L565.7 95.5c6.7-10.1 10.3-21.9 10.3-34.1 0-33.9-27.5-61.4-61.4-61.4-12.1 0-24 3.6-34.1 10.3zM288 400c0-61.9-50.1-112-112-112S64 338.1 64 400c0 3.9 .2 7.8 .6 11.6 1.8 17.5-10.2 36.4-27.8 36.4L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112z"],neuter:[384,512,[9906],"f22c","M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-1 0-1.9-.1-2.9z"],"square-phone-flip":[448,512,["phone-square-alt"],"f87b","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm232 96.7l2.8 .8c32.3 8.8 59.9 40.1 51.8 78.2-18.5 87.5-87.4 156.3-174.9 174.9-38.1 8.1-69.4-19.5-78.2-51.8l-.8-2.8c-2.7-9.8 2.4-20.1 11.8-24l48.7-20.3c8.3-3.4 17.8-1.1 23.5 5.9l19.3 23.6c35.1-17.4 63.4-46.6 79.6-82.4l-22.1-18c-6.9-5.7-9.3-15.2-5.9-23.5l20.3-48.7c3.9-9.4 14.2-14.4 24-11.8z"],"face-grin-tongue-squint":[512,512,[128541,"grin-tongue-squint"],"f58a","M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm125.8-91.7c-6.2-5.2-7.6-14.3-3.1-21.1s13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3zm263.6-21.1c4.5 6.8 3.1 15.9-3.1 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"],"comment-dollar":[512,512,[],"f651","M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zm4-352c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z"],hippo:[640,512,[129435],"f6ed","M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1 0 10.2 7.4 18.8 16.7 23 27.9 12.5 47.3 40.5 47.3 73 0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4-1.5-1.1-2.9-2.3-4.3-3.5-17-14.7-27.7-36.4-27.7-60.5 0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9-18.1 40.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7 0-107.5 85.2-195.2 191.8-199.1l.2-.1 64 0c41.7 0 83.4 12.1 117.2 25.7 1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"],"bowl-food":[512,512,[],"e4c6","M0 176c0-35.3 28.7-64 64-64 .5 0 1.1 0 1.6 0 7.4-36.5 39.7-64 78.4-64 15 0 29 4.1 40.9 11.2 13.3-25.7 40.1-43.2 71.1-43.2s57.8 17.6 71.1 43.2c12-7.1 26-11.2 40.9-11.2 38.7 0 71 27.5 78.4 64 .5 0 1.1 0 1.6 0 35.3 0 64 28.7 64 64 0 11.7-3.1 22.6-8.6 32L8.6 208C3.1 198.6 0 187.7 0 176zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z"],"square-virus":[448,512,[],"e578","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm160 80c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM192 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"],"cloud-sun-rain":[576,512,[127782],"f743","M303.2-3.2c-1.1-5.2-4.6-9.5-9.5-11.6s-10.5-1.5-14.9 1.4L208 33.6 137.3-13.3c-4.4-2.9-10-3.5-14.9-1.4s-8.5 6.4-9.5 11.6L96 80 12.8 96.8c-5.2 1.1-9.5 4.6-11.6 9.5s-1.5 10.5 1.4 14.9L49.6 192 2.7 262.7c-2.9 4.4-3.5 10-1.4 14.9s6.4 8.5 11.6 9.5L96 304 112.8 387.2c1.1 5.2 4.6 9.5 9.5 11.6s10.5 1.5 14.9-1.4l67.3-44.6c-15.8-19.4-26-43.5-28.2-69.9-37.5-13.1-64.4-48.7-64.4-90.7 0-53 43-96 96-96 21.7 0 41.8 7.2 57.8 19.4 15.5-17.6 36.9-30 61.1-34L320 80 303.2-3.2zM243 159.1c-8.8-9.3-21.2-15.1-35-15.1-26.5 0-48 21.5-48 48 0 17 8.9 32 22.2 40.5 10.2-31.4 32.1-57.4 60.7-73l.1-.4zM304 352l192 0c44.2 0 80-35.8 80-80 0-33.9-21.1-62.9-50.9-74.5 1.9-6.8 2.9-14 2.9-21.5 0-44.2-35.8-80-80-80-30.8 0-57.5 17.4-70.9 42.8-9.3-6.8-20.7-10.8-33.1-10.8-30.9 0-56 25.1-56 56 0 3.2 .3 6.4 .8 9.4-36.9 7.1-64.8 39.6-64.8 78.6 0 44.2 35.8 80 80 80zm-19 49.1c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4z"],"arrow-right-long":[576,512,["long-arrow-right"],"f178","M566.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L466.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l434.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"],"building-un":[512,512,[],"e4d9","M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 272-112 0c-20.9 0-39.5 10.1-51.2 25.6-8-6-18-9.6-28.8-9.6-26.5 0-48 21.5-48 48l0 64 64 0 0 48-144 0c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM427.4 380.5c9-2.1 18.3 2.2 22.5 10.5l26.1 52.2 0-43.3c0-11 9-20 20-20s20 9 20 20l0 128c0 9.3-6.4 17.3-15.4 19.5s-18.3-2.2-22.5-10.5L452 484.7 452 528c0 11-9 20-20 20s-20-9-20-20l0-128c0-9.3 6.4-17.3 15.4-19.5zM324 400l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-11 9-20 20-20s20 9 20 20l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-11 9-20 20-20s20 9 20 20z"],"temperature-low":[512,512,[],"f76b","M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z"],"door-open":[448,512,[],"f52b","M288 64l64 0 0 416c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-384c0-35.3-28.7-64-64-64l-96 0 0 0-160 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-416zM160 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],"align-left":[448,512,[],"f036","M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"],camera:[512,512,[62258,"camera-alt"],"f030","M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0-10.4-31.2C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"],"users-rays":[640,512,[],"e593","M31-33C21.7-23.6 21.7-8.4 31 1L87 57c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L65-33c-9.4-9.4-24.6-9.4-33.9 0zM609-33c-9.4-9.4-24.6-9.4-33.9 0L519 23c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L609 1c9.4-9.4 9.4-24.6 0-33.9zM65 545l56-56c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L31 511c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zm544 0c9.4-9.4 9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56 56c9.4 9.4 24.6 9.4 33.9 0zM320 208a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm0 32c-61.9 0-112 50.1-112 112l0 8c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24l0-8c0-61.9-50.1-112-112-112zm216-80a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM451.2 260.4C469.4 286.3 480 317.9 480 352l0 8c0 8.4-1.4 16.5-4.1 24l78.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-53-43-96-96-96-10 0-19.7 1.5-28.8 4.4zm-262.4 0c-9.1-2.9-18.8-4.4-28.8-4.4-53 0-96 43-96 96l0 10.7c0 11.8 9.6 21.3 21.3 21.3l78.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-8c0-34.1 10.6-65.7 28.8-91.6zM216 160a56 56 0 1 0 -112 0 56 56 0 1 0 112 0z"],rainbow:[640,512,[127752],"f75b","M320 96C178.6 96 64 210.6 64 352l0 64c0 17.7-14.3 32-32 32S0 433.7 0 416l0-64C0 175.3 143.3 32 320 32S640 175.3 640 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64C576 210.6 461.4 96 320 96zm0 112c-79.5 0-144 64.5-144 144l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-114.9 93.1-208 208-208s208 93.1 208 208l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-79.5-64.5-144-144-144zM288 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32z"],sitemap:[512,512,[],"f0e8","M192 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-8 0 0 64 120 0c39.8 0 72 32.2 72 72l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-13.3-10.7-24-24-24l-120 0 0 80 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-80-120 0c-13.3 0-24 10.7-24 24l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-39.8 32.2-72 72-72l120 0 0-64-8 0c-17.7 0-32-14.3-32-32l0-64z"],"face-grin-stars":[512,512,[129321,"grin-stars"],"f587","M256 512c141.4 0 256-114.6 256-256 0-24.4-3.4-48.1-9.8-70.5 18.6-36.1-2.7-83.6-46.7-90-46.9-58.3-118.9-95.5-199.5-95.5S103.4 37.3 56.5 95.5c-44 6.4-65.3 53.9-46.7 90-6.4 22.4-9.8 46-9.8 70.5 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zm-31.6-231c5.3-10.7 20.5-10.7 25.8 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4zm-198.2 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4c5.3-10.7 20.5-10.7 25.8 0z"],"sort-up":[384,512,["sort-asc"],"f0de","M32 224c-12.9 0-24.6-7.8-29.6-19.8S.2 178.5 9.4 169.4l160-160c12.5-12.5 32.8-12.5 45.3 0l160 160c9.2 9.2 11.9 22.9 6.9 34.9S364.9 224 352 224L32 224z"],eye:[576,512,[128065],"f06e","M288 32c-80.8 0-145.5 36.8-192.6 80.6-46.8 43.5-78.1 95.4-93 131.1-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64-11.5 0-22.3-3-31.7-8.4-1 10.9-.1 22.1 2.9 33.2 13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-12.2-45.7-55.5-74.8-101.1-70.8 5.3 9.3 8.4 20.1 8.4 31.7z"],"caret-left":[256,512,[],"f0d9","M7.7 235.8c-10.3 12.6-9.5 31.1 2.2 42.8l128 128c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-256c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-128 128-2.2 2.4z"],"apple-whole":[448,512,[127822,127823,"apple-alt"],"f5d1","M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160 27.3 0 59.7 10.3 82.7 19.3 18.8 7.3 39.9 7.3 58.7 0 22.9-8.9 55.4-19.3 82.7-19.3 76.3 0 112 83.7 112 160 0 128-80 224-160 224-16.5 0-38.1-6.6-51.5-11.3-8.1-2.8-16.9-2.8-25 0-13.4 4.7-35 11.3-51.5 11.3-80 0-160-96-160-224z"],"scroll-torah":[576,512,["torah"],"f6a0","M0 48C0 21.5 21.5 0 48 0 68.9 0 86.7 13.4 93.3 32l389.5 0c6.6-18.6 24.4-32 45.3-32 26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48-20.9 0-38.7-13.4-45.3-32L93.3 480c-6.6 18.6-24.4 32-45.3 32-26.5 0-48-21.5-48-48L0 48zM177.9 301c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2c-2.6-4.2-7.2-6.8-12.2-6.8s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z"],"house-lock":[640,512,[],"e510","M528 224.1c44.2 0 80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l185 171.8C440.2 195 400 244.8 400 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM272 320c-26.5 0-48 21.5-48 48l0 96 96 0 0-87.3c0-16.5 7-31.5 18.4-42.1-8.7-9-20.9-14.6-34.4-14.6l-32 0zm256-47.9c-17.7 0-32 14.3-32 32l0 47.9 64 0 0-47.9c0-17.7-14.3-32-32-32z"],"arrows-left-right-to-line":[576,512,[],"e4ba","M32 96C14.3 96 0 110.3 0 128L0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM390.6 342.6l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-133.5 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 133.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0zM576 128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256z"],trash:[448,512,[],"f1f8","M136.7 5.9L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-8.7-26.1C306.9-7.2 294.7-16 280.9-16L167.1-16c-13.8 0-26 8.8-30.4 21.9zM416 144L32 144 53.1 467.1C54.7 492.4 75.7 512 101 512L347 512c25.3 0 46.3-19.6 47.9-44.9L416 144z"],"face-sad-tear":[512,512,[128546,"sad-tear"],"f5b4","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm271 98c5.5-1.3 11.1-2 17-2 24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50-12.5 0-24.6 1.9-35.9 5.5 9.8 12.7 16.5 27.9 18.9 44.6zM176 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM185.4 292.8c-2.4-2.9-5.7-4.8-9.4-4.8s-7 1.9-9.4 4.8c-6.5 7.8-12.6 16.1-18.3 24.6-9 13.4-20.3 30.2-20.3 47.4 0 28.3 21.5 51.2 48 51.2s48-22.9 48-51.2c0-17.2-11.2-34-20.3-47.4-5.7-8.5-11.9-16.7-18.3-24.6z"],fax:[512,512,[128224,128439],"f1ac","M160 64l0 80 64 0 0-80 146.7 0 45.3 45.3 0 34.7 64 0 0-34.7c0-17-6.7-33.3-18.7-45.3L416 18.7C404 6.7 387.7 0 370.7 0L224 0c-35.3 0-64 28.7-64 64zM32 128c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-288c0-17.7-14.3-32-32-32l-48 0zm448 64l-320 0 0 256c0 17.7 14.3 32 32 32l288 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM224 288a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm0 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM336 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM312 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM424 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM400 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"],"person-circle-plus":[640,512,[],"e541","M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z"],hamsa:[512,512,[],"f665","M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6 0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71S136.6 486.2 95.4 441L9 345.9c-5.8-6.4-9-14.7-9-23.3 0-19.1 15.5-34.6 34.6-34.6zM256 288c-38.4 0-76.8 35.8-90.6 50.2-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"person-circle-question":[640,512,[],"e542","M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z"],"clipboard-check":[384,512,[],"f46c","M256 0c23.7 0 44.4 12.9 55.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0zm26.9 212.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6s-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L288.2 246.1c7.8-10.7 5.4-25.7-5.3-33.5zM136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64z"],"share-from-square":[576,512,[61509,"share-square"],"f14d","M384.5 24l0 72-64 0c-79.5 0-144 64.5-144 144 0 93.4 82.8 134.8 100.6 142.6 2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8 0-8.3-5.9-15.5-12.8-20.3-8.9-6.2-19.2-18.2-19.2-40.5 0-45 36.5-81.5 81.5-81.5l30.5 0 0 72c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l136-136c9.4-9.4 9.4-24.6 0-33.9L425.5 7c-6.9-6.9-17.2-8.9-26.2-5.2S384.5 14.3 384.5 24zm-272 72c-44.2 0-80 35.8-80 80l0 256c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 8.8-7.2 16-16 16l-256 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0z"],receipt:[384,512,[129534],"f543","M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6S384 14.6 384 24l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6l-40.4-34.6-40.4 34.6c-9 7.7-22.2 7.7-31.2 0l-40.4-34.6-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM104 136c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0zM80 352c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24-120c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z"],equals:[448,512,[62764],"3d","M32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320z"],"chevron-up":[448,512,[],"f077","M201.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 173.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z"],"virus-slash":[576,512,[],"e075","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-88.6-88.6c1.7-12.1-2-24.8-11.3-34-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0c-31.2 31.2-84.5 9.1-84.5-35 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-9.3-9.3-22-13-34-11.3L41-24.9zM72 216c-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-21.4 12.6-37.6 29.1-45.1l-240-240C109.6 203.4 93.4 216 72 216z"],slash:[576,512,[],"f715","M7-25c9.4-9.4 24.6-9.4 33.9 0L569 503c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9C-2.3-.4-2.3-15.6 7-25z"],expand:[448,512,[],"f065","M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z"],"note-sticky":[448,512,[62026,"sticky-note"],"f249","M64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 213.5c0 17-6.7 33.3-18.7 45.3L322.7 461.3c-12 12-28.3 18.7-45.3 18.7L64 480zM389.5 304L296 304c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5z"],"table-columns":[448,512,["columns"],"f0db","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 128 0 0-256-128 0zm320 0l-128 0 0 256 128 0 0-256z"],"person-shelter":[512,512,[],"e54f","M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32L64 178.6 256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 192l16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-33.2-61.7C329.7 245.1 294.4 224 256 224s-73.7 21.1-91.9 54.9l-33.2 61.7c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88z"],"circle-notch":[512,512,[],"f1ce","M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8-79.3 23.6-137.1 97.1-137.1 184.1 0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256 512 397.4 397.4 512 256 512S0 397.4 0 256c0-116 77.1-213.9 182.9-245.4 16.9-5 34.8 4.6 39.8 21.5z"],water:[512,512,[],"f773","M410.6 124.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm0 144c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.7-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 144c21.3-16.1 49.9-16.1 71.2 0 20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z"],"delete-left":[640,512,[9003,"backspace"],"f55a","M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM284.1 188.1c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9z"],"broom-ball":[576,512,["quidditch","quidditch-broom-ball"],"f458","M496 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zM106.8 277.2c30.6-30.6 73.1-45.9 115.8-42.2L341 353.3c3.7 42.8-11.6 85.2-42.2 115.9-27.4 27.4-64.6 42.8-103.3 42.8L22.1 512c-12.2 0-22.1-9.9-22.1-22.1 0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2 0-31.5 12.5-61.8 34.8-84l8-8zm417-270c12.6-10.3 31.1-9.5 42.8 2.2s12.4 30.2 2.2 42.8l-2.2 2.4-192 192 34.8 34.7c4.2 4.2 6.6 10 6.6 16 0 12.5-10.1 22.6-22.6 22.6l-29.1 0-108.3-108.3 0-29.1c0-12.5 10.1-22.6 22.6-22.6 6 0 11.8 2.4 16 6.6l34.8 34.7 192-192 2.4-2.2z"],j:[320,512,[106],"4a","M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z"],"shuttle-space":[576,512,["space-shuttle"],"f197","M0 368l0 64c0 26.5 21.5 48 48 48l50 0c40.6 0 80.4-11 115.2-31.9l133.5-80.1-93.3 0-64.9 38.9c-14 8.4-28.9 14.7-44.5 19l0-66.4c9.7-5.6 17.8-13.7 23.4-23.4l198.8 0c67.1 0 127.8-20.6 170.3-70.6 4.6-5.4 4.6-13.3 0-18.8-42.5-50.1-103.2-70.6-170.3-70.6l-198.8 0c-5.6-9.7-13.7-17.8-23.4-23.4l0-66.4c15.6 4.2 30.6 10.6 44.5 19l64.9 38.9 93.3 0-133.5-80.1C178.4 43 138.6 32 98 32L48 32C21.5 32 0 53.5 0 80L0 368zm96 0l0 64-48 0 0-64 48 0zM96 80l0 64-48 0 0-64 48 0zM416 224c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z"],"yin-yang":[512,512,[9775],"f6ad","M224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 352a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-448c53 0 96 43 96 96s-43 96-96 96-96 43-96 96 43 96 96 96C150 448 64 362 64 256S150 64 256 64zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],stop:[448,512,[9209],"f04d","M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z"],trowel:[576,512,[],"e589","M407.9 181.4L277.3 312 342.6 377.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9s-11.5-20.8-7.9-32.2l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L232 266.7 362.6 136.1c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z"],"hand-back-fist":[384,512,["hand-rock"],"f255","M7.4 253.6C2.6 245.9 0 237.1 0 228l0-36c0-26.5 21.5-48 48-48l16 0 0-80c0-26.5 21.5-48 48-48 17.3 0 32.4 9.1 40.9 22.8 4.3-22.1 23.8-38.8 47.1-38.8 23.4 0 42.9 16.8 47.1 38.9 7.3-4.4 15.8-6.9 24.9-6.9 22.1 0 40.8 15 46.3 35.4 5.5-2.2 11.4-3.4 17.7-3.4 26.5 0 48 21.5 48 48l0 96.9c0 9.9-2.3 19.7-6.8 28.6l-39.6 79.1c-10.8 21.7-33 35.4-57.2 35.4L96 352c-16.5 0-31.8-8.4-40.6-22.4l-48-76zM32 480l0-48c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32z"],"temperature-high":[512,512,[],"f769","M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3L216 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z"],"greater-than":[512,512,[62769],"3e","M34.9 50.6c-7.4 16-.4 35.1 15.6 42.5L403.6 256 50.6 419c-16 7.4-23.1 26.4-15.6 42.5s26.4 23 42.5 15.6l416-192c11.3-5.2 18.6-16.6 18.6-29.1s-7.3-23.8-18.6-29.1L77.4 35c-16-7.4-35.1-.4-42.5 15.6z"],crutch:[512,512,[],"f7f7","M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-1.4-1.4-158.6 158.6c-18 18-42.4 28.1-67.9 28.1l-59 0c-8.5 0-16.6 3.4-22.6 9.4-61.7 61.7-92.8 92.8-93.3 93.3-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l16-16 0 0 77.3-77.3c6-6 9.4-14.1 9.4-22.6l0-59c0-25.5 10.1-49.9 28.1-67.9L298.7 56 297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zM344 101.3L261.3 184 328 250.7 410.7 168 344 101.3zm-128 128l-30.6 30.6c-6 6-9.4 14.1-9.4 22.6l0 53.5 53.5 0c8.5 0 16.6-3.4 22.6-9.4L282.7 296 216 229.3z"],septagon:[576,512,["heptagon"],"e820","M267.4-31.5c15.9-5.5 33.5-4.6 48.8 2.7l172.4 83 6.3 3.5c14.2 9 24.5 23.3 28.3 39.9l42.6 186.5 1.2 7.2c1.6 14.3-1.7 28.8-9.4 41.1l-4.2 5.9-119.3 149.6c-12.1 15.2-30.6 24.1-50 24.1l-191.3 0c-19.5 0-37.9-8.9-50-24.1L23.5 338.4c-12.1-15.2-16.7-35.2-12.3-54.2l42.6-186.5 2-7c5.6-15.9 17.2-29 32.6-36.4l172.4-83 6.7-2.7z"],"street-view":[512,512,[],"f21d","M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 160l64 0c35.3 0 64 28.7 64 64l0 48c0 17.7-14.3 32-32 32l-1.8 0-11.1 99.5c-1.8 16.2-15.5 28.5-31.8 28.5l-38.7 0c-16.3 0-30-12.3-31.8-28.5l-11.1-99.5-1.8 0c-17.7 0-32-14.3-32-32l0-48c0-35.3 28.7-64 64-64zM412.4 400.2c-16.1-4.2-34.8-7.6-55.4-10.2l5.3-47.7c22.7 2.9 43.7 6.7 62.1 11.5 22.4 5.8 42.6 13.3 57.8 23.3 14.7 9.6 29.8 24.9 29.8 47s-15.1 37.4-29.8 47c-15.2 9.9-35.5 17.5-57.8 23.3-45.1 11.7-105.3 17.8-168.4 17.8s-123.3-6.1-168.4-17.8C65.2 488.4 45 480.9 29.8 471 15.1 461.4 0 446.1 0 424s15.1-37.4 29.8-47c15.2-9.9 35.5-17.5 57.8-23.3 18.5-4.8 39.5-8.6 62.1-11.5L155 390c-20.6 2.6-39.3 6.1-55.4 10.2-56.6 14.6-56.6 32.9 0 47.5 39.9 10.3 95.8 16.2 156.4 16.2s116.5-5.9 156.4-16.2c56.6-14.6 56.6-32.9 0-47.5z"],"wave-square":[512,512,[],"f83e","M64 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 288 96 0 0-128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-288-96 0 0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-128z"],"angle-left":[256,512,[8249],"f104","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"],screwdriver:[576,512,[129691],"f54a","M352.1 146.7l0-49.6c0-10.7 5.3-20.7 14.2-26.6L485.2-8.7c6.3-4.2 14.8-3.4 20.2 2l45.4 45.5c5.4 5.4 6.2 13.8 2 20.2L473.6 177.8c-5.9 8.9-15.9 14.2-26.6 14.2l-49.6 0-90.7 90.7c15 33.3 8.9 73.9-18.5 101.3L162.1 510.1c-18.7 18.7-49.1 18.7-67.9 0L34.1 449.9c-18.7-18.7-18.7-49.1 0-67.9L160.1 256c27.4-27.4 67.9-33.6 101.3-18.5l90.7-90.7z"],tractor:[576,512,[128668],"f722","M160 96l0 96 133.4 0-57.6-96-75.8 0zM96 223L96 64c0-17.7 14.3-32 32-32l107.8 0c22.5 0 43.3 11.8 54.9 31.1l77.4 128.9 64 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 48 0c26.5 0 48 21.5 48 48l0 41.5c0 14.2-6.3 27.8-17.3 36.9l-35 29.2c26.5 15.2 44.3 43.7 44.3 76.4 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-14.4 3.5-28 9.6-40l-101.2 0c-3 13.4-7.9 26-14.4 37.7 7.7 9.4 7.2 23.4-1.6 32.2l-22.6 22.6c-8.8 8.8-22.7 9.3-32.2 1.6-9.3 5.2-19.3 9.3-29.8 12.3-1.2 12.1-11.4 21.6-23.9 21.6l-32 0c-12.4 0-22.7-9.5-23.9-21.6-10.5-3-20.4-7.2-29.8-12.3-9.4 7.7-23.4 7.2-32.2-1.6L35.5 453.8c-8.8-8.8-9.3-22.7-1.6-32.2-5.2-9.3-9.3-19.3-12.3-29.8-12.1-1.2-21.6-11.4-21.6-23.9l0-32c0-12.4 9.5-22.7 21.6-23.9 3-10.5 7.2-20.4 12.3-29.8-7.7-9.4-7.2-23.4 1.6-32.2l22.6-22.6c8.8-8.8 22.7-9.3 32.2-1.6 1.9-1 3.7-2 5.7-3zm64 65a64 64 0 1 0 0 128 64 64 0 1 0 0-128zM440 424a40 40 0 1 0 80 0 40 40 0 1 0 -80 0z"],"bridge-circle-xmark":[576,512,[],"e4cb","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"],vials:[512,512,[],"f493","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 352c0 53 43 96 96 96s96-43 96-96l0-352 64 0 0 352c0 53 43 96 96 96s96-43 96-96l0-352c17.7 0 32-14.3 32-32S497.7 0 480 0L32 0zM160 64l0 128-64 0 0-128 64 0zm256 0l0 128-64 0 0-128 64 0z"],stethoscope:[576,512,[129658],"f0f1","M32 48C32 21.5 53.5 0 80 0l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-32 0c-17.7 0-32-14.3-32-32S238.3 0 256 0l48 0c26.5 0 48 21.5 48 48l0 144c0 77.4-55 142-128 156.8l0 19.2c0 61.9 50.1 112 112 112s112-50.1 112-112l0-85.5c-37.3-13.2-64-48.7-64-90.5 0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 85.5c0 97.2-78.8 176-176 176S160 465.2 160 368l0-19.2C87 334 32 269.4 32 192L32 48zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],podcast:[448,512,[],"f2ce","M336 359.8c39.1-32.3 64-81.1 64-135.8 0-97.2-78.8-176-176-176S48 126.8 48 224C48 278.7 72.9 327.5 112 359.8 112.4 377.4 115.2 400.2 118.4 421.6 48 383.9 0 309.5 0 224 0 100.3 100.3 0 224 0S448 100.3 448 224c0 85.6-48 159.9-118.5 197.6 3.3-21.4 6-44.2 6.4-61.8zm-14-53.4c-8.3-12.6-19.2-21.6-30.4-27.8-2.1-1.1-4.2-2.2-6.3-3.2 11.7-13.9 18.8-31.9 18.8-51.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 19.6 7.1 37.6 18.8 51.5-2.1 1-4.2 2-6.3 3.2-11.2 6.2-22.1 15.2-30.4 27.8-18.8-22.3-30.1-51-30.1-82.4 0-70.7 57.3-128 128-128s128 57.3 128 128c0 31.4-11.3 60.2-30.1 82.4zM224 312c32.9 0 64 8.6 64 43.8 0 33-12.9 104.1-20.6 132.9-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8 0-35.1 31.1-43.8 64-43.8zm0-128a40 40 0 1 1 0 80 40 40 0 1 1 0-80z"],"arrow-up-right-dots":[512,512,[],"e4b7","M96 32C78.3 32 64 46.3 64 64S78.3 96 96 96L114.7 96 9.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.3 160 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 32zM403.8 70.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM279.7 194.2a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm162.2-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zM156.2 317.8a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM70.1 403.8a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0z"],"chess-queen":[512,512,[9819],"f445","M256 80a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM5.5 185L128 384 71.8 454.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L384 384 506.5 185c3.6-5.9 5.5-12.7 5.5-19.6l0-.6c0-20.3-16.5-36.8-36.8-36.8-7.3 0-14.4 2.2-20.4 6.2l-16.9 11.3c-12.7 8.5-29.6 6.8-40.4-4l-34.1-34.1C356.1 100.1 346.2 96 336 96s-20.1 4.1-27.3 11.3l-30.1 30.1c-12.5 12.5-32.8 12.5-45.3 0l-30.1-30.1C196.1 100.1 186.2 96 176 96s-20.1 4.1-27.3 11.3l-34.1 34.1c-10.8 10.8-27.7 12.5-40.4 4L57.3 134.2c-6.1-4-13.2-6.2-20.4-6.2-20.3 0-36.8 16.5-36.8 36.8l0 .6c0 6.9 1.9 13.7 5.5 19.6z"],"anchor-circle-exclamation":[640,512,[],"e4ab","M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"],"ellipsis-vertical":[128,512,["ellipsis-v"],"f142","M64 144a56 56 0 1 1 0-112 56 56 0 1 1 0 112zm0 224c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-112c0 30.9-25.1 56-56 56s-56-25.1-56-56 25.1-56 56-56 56 25.1 56 56z"],"heart-circle-exclamation":[576,512,[],"e4fe","M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"],"building-circle-exclamation":[576,512,[],"e4d3","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"],"person-arrow-up-from-line":[576,512,[],"e539","M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM208 480l0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128 32 0zM566.6 102.6c-12.5 12.5-32.8 12.5-45.3 0L496 77.3 496 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-146.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3z"],"not-equal":[448,512,[],"f53e","M378.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L270.9 128 32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l196.2 0-85.3 128-110.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l68.2 0-30.8 46.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9L177.1 384 416 384c17.7 0 32-14.3 32-32s-14.3-32-32-32l-196.2 0 85.3-128 110.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-68.2 0 30.8-46.2z"],"train-tram":[384,512,[128650],"e5b4","M0 8C0-5.3 10.7-16 24-16l336 0c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-120 0 0 64 40 0c53 0 96 43 96 96l0 160c0 31.2-14.9 59-38 76.5l64.3 76c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74.6-88.1c-3.6 .4-7.3 .6-11.1 .6l-128 0c-3.8 0-7.5-.2-11.1-.6L42.3 535.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l64.3-76C46.9 411 32 383.2 32 352l0-160c0-53 43-96 96-96l40 0 0-64-120 0 0 8c0 13.3-10.7 24-24 24S0 53.3 0 40L0 8zM128 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"plane-departure":[576,512,[128747],"f5b0","M372 143.9L172.7 40.2c-8-4.1-17.3-4.8-25.7-1.7l-41.1 15c-10.3 3.7-13.8 16.4-7.1 25L200.3 206.4 100.1 242.8 40 206.2c-6.2-3.8-13.8-4.5-20.7-2.1L3 210.1c-9.4 3.4-13.4 14.5-8.3 23.1l53.6 91.8c15.6 26.7 48.1 38.4 77.1 27.8l12.9-4.7 0 0 398.4-145c29.1-10.6 44-42.7 33.5-71.8s-42.7-44-71.8-33.5L372 143.9zM32.2 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-512 0z"],"right-to-bracket":[512,512,["sign-in-alt"],"f2f6","M345 273c9.4-9.4 9.4-24.6 0-33.9L201 95c-6.9-6.9-17.2-8.9-26.2-5.2S160 102.3 160 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L345 273zm7 143c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0z"],"sd-card":[384,512,[],"f7c2","M384 64c0-35.3-28.7-64-64-64L125.3 0C108.3 0 92 6.7 80 18.7L18.7 80C6.7 92 0 108.3 0 125.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z"],"house-circle-exclamation":[640,512,[],"e50a","M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM496 444a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"],"shekel-sign":[448,512,[8362,"ils","shekel","sheqel","sheqel-sign"],"f20b","M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z"],radio:[512,512,[128251],"f8d7","M494.8 15c12.7-3.7 20-17.1 16.3-29.8S494-34.8 481.3-31L51.8 94.9C42.4 97.6 33.9 102.1 26.6 108 10.5 119.7 0 138.6 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L218.5 96 494.8 15zM368 208a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM64 248c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 272c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 368c-13.3 0-24-10.7-24-24z"],"hand-dots":[512,512,["allergies"],"f461","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM200 352a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-88 24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"],"book-skull":[448,512,["book-dead"],"f6b7","M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM272 163.2l0 12.8c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-12.8c-19.4-11.7-32-30.3-32-51.2 0-35.3 35.8-64 80-64s80 28.7 80 64c0 20.9-12.6 39.5-32 51.2zM208 112a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm74.2 95.7c4.6 10.1 .1 21.9-9.9 26.5l-47.9 21.8 47.9 21.8c10.1 4.6 14.5 16.4 9.9 26.5s-16.4 14.5-26.5 9.9L224 294 144.3 330.2c-10.1 4.6-21.9 .1-26.5-9.9s-.1-21.9 9.9-26.5l47.9-21.8-47.9-21.8c-10.1-4.6-14.5-16.4-9.9-26.5s16.4-14.5 26.5-9.9L224 250 303.7 213.8c10.1-4.6 21.9-.1 26.5 9.9z"],"unlock-keyhole":[384,512,["unlock-alt"],"f13e","M192 32c-35.3 0-64 28.7-64 64l0 64 192 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l0-64c0-70.7 57.3-128 128-128 63.5 0 116.1 46.1 126.2 106.7 2.9 17.4-8.8 33.9-26.3 36.9s-33.9-8.8-36.9-26.3C250 55.1 223.7 32 192 32zm40 328c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0z"],"file-arrow-up":[384,512,["file-upload"],"f574","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM209 263c-9.4-9.4-24.6-9.4-33.9 0l-64 64c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 86.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-86.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z"],"face-grin-tears":[640,512,[128514,"grin-tears"],"f588","M554.8 203.4l16.3 2.3C547.7 88.4 444.2 0 320 0S92.3 88.4 68.9 205.7l16.3-2.3c37-5.3 68.6 26.4 63.4 63.4l-6.7 46.7c-4.1 29-21.6 53.2-45.8 66.8 43.7 78.5 127.6 131.7 223.8 131.7s180.1-53.1 223.8-131.7c-24.1-13.5-41.6-37.8-45.8-66.8l-6.7-46.7c-5.3-37 26.4-68.6 63.4-63.4zM470.3 326.9C447.9 388.2 389.1 432 320 432S192.1 388.2 169.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1zM212 208l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28zm188-28c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zM640 300.6c0-25.6-18.8-47.3-44.1-50.9L549.1 243c-10.6-1.5-19.6 7.5-18.1 18.1l6.7 46.7c3.6 25.3 25.3 44.1 50.9 44.1 28.4 0 51.4-23 51.4-51.4zm-640 0C0 329 23 352 51.4 352 77 352 98.7 333.2 102.3 307.9l6.7-46.7c1.5-10.6-7.5-19.6-18.1-18.1l-46.7 6.7C18.8 253.3 0 275 0 300.6z"],"pen-to-square":[512,512,["edit"],"f044","M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L368 46.1 465.9 144 490.3 119.6c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L432 177.9 334.1 80 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z"],"earth-europe":[512,512,["globe-europe"],"f7a2","M256.2 48c114.8 .1 207.8 93.2 207.8 208 0 22.1-3.4 43.4-9.8 63.4-2 .4-4.1 .6-6.2 .6l-2.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-50.7c0-8.8 7.2-16 16-16s16-7.2 16-16-7.2-16-16-16l-24 0c-13.3 0-24 10.7-24 24s-10.7 24-24 24l-56 0c-8.8 0-16 7.2-16 16s-7.2 16-16 16l-25.4 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l70.1-70.1c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3l-14.1 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l23.1-23.1c.8-.8 1.6-1.5 2.5-2.2zM438.4 356.1c-32.8 59.6-93.9 101.4-165.2 107.2-.7-2.3-1.1-4.8-1.1-7.3 0-13.3-10.7-24-24-24l-26.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-66.7c0-17.7 14.3-32 32-32l98.7 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 14.1 9.4 22.6 9.4l5.5 0c8.5 0 16.6 3.4 22.6 9.4l16 16c4.2 4.2 10 6.6 16 6.6 4.8 0 9.3 1.5 13 4.1zM256 512l26.2-1.3c-8.6 .9-17.3 1.3-26.2 1.3zm26.2-1.3C411.3 497.6 512 388.6 512 256 512 114.6 397.4 0 256 0l0 0C114.6 0 0 114.6 0 256 0 383.5 93.2 489.3 215.3 508.8 228.5 510.9 242.1 512 256 512zM187.3 123.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"],"face-grin-beam-sweat":[576,512,[128517,"grin-beam-sweat"],"f583","M546.2-.1c14.7 17.8 29.8 40.1 29.8 64.1 0 36.4-27.6 64-64 64s-64-27.6-64-64c0-24 15.2-46.3 29.8-64.1 8.8-10.7 18.5-20.8 29-30 3-2.6 7.4-2.6 10.4 0 10.5 9.1 20.1 19.3 29 30zM288 0c42.5 0 82.6 10.4 117.8 28.7-3.6 10.9-5.8 22.7-5.8 35.3 0 62.9 49.1 112 112 112 6.4 0 12.7-.5 18.8-1.5 8.6 25.6 13.2 53 13.2 81.5 0 141.4-114.6 256-256 256S32 397.4 32 256 146.6 0 288 0zM418.7 308.9C379.5 321.1 335.1 328 288 328s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 22.4 61.3 81.3 105.1 150.3 105.1s127.9-43.8 150.3-105.1c4.3-11.8-7.7-21.8-19.6-18.1zM208 180c15.5 0 28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-15.5 12.5-28 28-28zm132 28c0-15.5 12.5-28 28-28s28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8z"],"circle-half-stroke":[512,512,[9680,"adjust"],"f042","M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z"],"person-military-to-person":[512,512,[],"e54c","M71 12.5c-8.6 1-15 8.2-15 16.8 0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0c-1.6 5.7-2.5 11.7-2.5 17.9 0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 3 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9S400 497.8 400 488.4l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z"],"table-cells-column-lock":[640,512,[],"e678","M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 368c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z"],"truck-field-un":[640,512,[],"e58e","M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 48c0 21.1 13.7 39.1 32.6 45.5-.4 3.4-.6 7-.6 10.5 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l144.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l.4 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-24.7 0-1.7-4.2-43.8-106.3c-12.3-30-41.6-49.5-74-49.5l-40.4 0C364.4 44.9 343.7 32 320 32L96 32zM384 224l0-96 31.9 0c6.5 0 12.3 3.9 14.8 9.9l35.4 86.1-82.1 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm280 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM256.6 132.9l27.4 41 0-29.9c0-11 9-20 20-20s20 9 20 20l0 96c0 8.8-5.8 16.6-14.2 19.1s-17.5-.7-22.4-8l-27.4-41 0 29.9c0 11-9 20-20 20s-20-9-20-20l0-96c0-8.8 5.8-16.6 14.2-19.1s17.5 .7 22.4 8zM132 144l0 64c0 6.6 5.4 12 12 12s12-5.4 12-12l0-64c0-11 9-20 20-20s20 9 20 20l0 64c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-64c0-11 9-20 20-20s20 9 20 20z"],clock:[512,512,[128339,"clock-four"],"f017","M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z"],book:[448,512,[128212],"f02d","M384 512L96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zM96 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zm32-232c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24 72c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z"],"face-laugh-wink":[512,512,["laugh-wink"],"f59c","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z"],"cloud-meatball":[512,512,[],"f73b","M0 224c0 53 43 96 96 96l26.9 0c3.5-12.1 10.1-23.3 19.2-32.4l1.4-1.4c15-15 35.3-22.9 56.1-22.2 14.2-15.1 34.2-23.9 55.4-23.9l2 0c21.1 0 41.1 8.8 55.4 23.9 20.8-.6 41.1 7.3 56.1 22.2l1.4 1.4c9.2 9.2 15.7 20.4 19.2 32.4l26.9 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM156.5 424.3c9.5 6.3 14.2 17.7 11.9 28.8-1.8 9.2 1 18.7 7.7 25.3l1.4 1.4c6.6 6.6 16.1 9.5 25.3 7.7 11.1-2.2 22.5 2.5 28.8 11.9 5.2 7.8 14 12.5 23.3 12.5l2 0c9.4 0 18.1-4.7 23.3-12.5 6.3-9.5 17.7-14.2 28.8-11.9 9.2 1.8 18.7-1 25.3-7.7l1.4-1.4c6.6-6.6 9.5-16.1 7.7-25.3-2.2-11.1 2.5-22.5 11.9-28.8 7.8-5.2 12.5-14 12.5-23.3l0-2c0-9.4-4.7-18.1-12.5-23.3-9.5-6.3-14.2-17.7-11.9-28.8 1.8-9.2-1-18.7-7.7-25.3l-1.4-1.4c-6.6-6.6-16.1-9.5-25.3-7.7-11.1 2.2-22.5-2.5-28.8-11.9-5.2-7.8-14-12.5-23.3-12.5l-2 0c-9.4 0-18.1 4.7-23.3 12.5-6.3 9.5-17.7 14.2-28.8 11.9-9.2-1.8-18.7 1-25.3 7.7l-1.4 1.4c-6.6 6.6-9.5 16.1-7.7 25.3 2.2 11.1-2.5 22.5-11.9 28.8-7.8 5.2-12.5 14-12.5 23.3l0 2c0 9.4 4.7 18.1 12.5 23.3zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"],"chart-area":[512,512,["area-chart"],"f1fe","M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM240 96c6.7 0 13.1 2.8 17.7 7.8L328.8 181.3 375 135c9.4-9.4 24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17l0 112c0 13.3-10.7 24-24 24l-304 0c-13.3 0-24-10.7-24-24l0-112c0-6 2.3-11.8 6.3-16.2l88-96c4.5-5 11-7.8 17.7-7.8z"],"rupiah-sign":[512,512,[],"e23d","M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm256-32l80 0c61.9 0 112 50.1 112 112S461.9 448 400 448l-48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z"],"text-width":[448,512,[],"f035","M40 0C17.9 0 0 17.9 0 40L0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 128 0 0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-160 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 0zm78.6 406.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 229.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-229.5 0 9.4-9.4z"],satellite:[512,512,[128752],"f7bf","M199 7c9.4-9.4 24.6-9.4 33.9 0l89.4 89.4 55-55c12.5-12.5 32.8-12.5 45.3 0l48 48c12.5 12.5 12.5 32.8 0 45.3l-55 55 89.4 89.4c9.4 9.4 9.4 24.6 0 33.9l-96 96c-9.4 9.4-24.6 9.4-33.9 0l-89.4-89.4-15.5 15.5c11.4 24.6 17.8 52 17.8 80.9 0 31.7-7.7 61.5-21.2 87.8-4.7 9-16.7 10.3-23.8 3.1l-96.3-96.3-60 60c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l60-60-96.3-96.3c-7.2-7.2-5.9-19.2 3.1-23.8 26.3-13.6 56.2-21.2 87.8-21.2 28.9 0 56.3 6.4 80.9 17.8L192.4 226.3 103 137c-9.4-9.4-9.4-24.6 0-33.9L199 7zm17 50.9l-62.1 62.1 72.4 72.4 62.1-62.1-72.4-72.4zM392 358.1l62.1-62.1-72.4-72.4-62.1 62.1 72.4 72.4z"],"magnifying-glass-minus":[512,512,["search-minus"],"f010","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"],"people-group":[512,512,[],"e533","M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1C172.7 359 160 337 160 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zM96 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm16 240l0 32c0 32.5 12.1 62.1 32 84.7l0 75.3c0 1.2 0 2.5 .1 3.7-8.5 7.6-19.7 12.3-32.1 12.3l-32 0c-26.5 0-48-21.5-48-48l0-56.6C12.9 364.4 0 343.7 0 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1zM368 464l0-75.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 56.6c0 26.5-21.5 48-48 48l-32 0c-12.3 0-23.6-4.6-32.1-12.3 0-1.2 .1-2.5 .1-3.7zM416 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"],"square-binary":[448,512,[],"e69b","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm144 4c-24.3 0-44 19.7-44 44l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0zm-4 44c0-2.2 1.8-4 4-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48zm140-44c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0zM132 296c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20zm96 24l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0c-24.3 0-44 19.7-44 44zm44-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48c0-2.2 1.8-4 4-4z"],"masks-theater":[576,512,[127917,"theater-masks"],"f630","M-5 118L23.5 279.7c14 79.5 76.3 141.8 155.8 155.8l12.7 2.2c-16.5-28.6-27.1-60.7-30.6-94.5l-24.1 4.3c-9.7 1.7-18.8-5.8-16.9-15.5 4.8-24.7 19.1-46.6 39.7-60.9l0-74.6c-1.4 .8-3 1.3-4.7 1.6l-63 11.1c-8.7 1.5-17.3-4.4-15.9-13.1 3.1-19.6 18.4-36 39.1-39.7 17.2-3 33.9 3.5 44.6 15.8l0-22.7c0-22.5 6.9-52.4 32.3-73.4 26-21.5 67.7-43.9 124.9-54.2-30.5-16.3-86.3-32-163.8-18.4-80.3 14.2-128 50.1-150.1 76.1-9 10.5-10.8 24.9-8.4 38.5zM208 138.7l0 174.8c0 80.7 50.5 152.9 126.4 180.4L362.1 504c14.1 5.1 29.6 5.1 43.7 0L433.6 494C509.5 466.4 560 394.3 560 313.5l0-174.8c0-6.9-2.1-13.8-7-18.6-22.6-22.5-78.2-56-169-56s-146.4 33.6-169 56c-4.9 4.9-7 11.7-7 18.6zm66.1 187.1c-1.4-7 7-11 12.7-6.6 26.9 20.6 60.6 32.9 97.2 32.9s70.2-12.3 97.2-32.9c5.7-4.4 14.1-.4 12.7 6.6-10.1 51.4-55.5 90.3-109.9 90.3s-99.8-38.8-109.9-90.3zm.5-101.5C281.2 205.5 299 192 320 192s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7l-64 0c-8.8 0-16.3-7.4-13.4-15.7zM480 240l-64 0c-8.8 0-16.3-7.4-13.4-15.7 6.5-18.8 24.4-32.3 45.4-32.3s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7z"],"cart-plus":[640,512,[],"f217","M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 412.7 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM336 78.4c-13.3 0-24 10.7-24 24l0 33.6-33.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.6 0 0 33.6c0 13.3 10.7 24 24 24s24-10.7 24-24l0-33.6 33.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-33.6 0 0-33.6c0-13.3-10.7-24-24-24z"],"hands-asl-interpreting":[640,512,["american-sign-language-interpreting","asl-interpreting","hands-american-sign-language-interpreting"],"f2a3","M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l80 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7 8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20 8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5l-100.7 27.5 81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4l-101.9 84.9 23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-80 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20 22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.6-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z"],"table-cells-row-unlock":[640,512,[],"e691","M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48c-.1-17.6-14.4-31.9-32-31.9-17.7 0-32 14.3-32 32l0 47.9 96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80 44.2 0 79.9 35.8 80 79.9l-48 0z"],rocket:[512,512,[],"f135","M128 320L24.5 320c-24.9 0-40.2-27.1-27.4-48.5L50 183.3C58.7 168.8 74.3 160 91.2 160l95 0c76.1-128.9 189.6-135.4 265.5-124.3 12.8 1.9 22.8 11.9 24.6 24.6 11.1 75.9 4.6 189.4-124.3 265.5l0 95c0 16.9-8.8 32.5-23.3 41.2l-88.2 52.9c-21.3 12.8-48.5-2.6-48.5-27.4L192 384c0-35.3-28.7-64-64-64l-.1 0zM400 160a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"],shrimp:[512,512,[129424],"e448","M72 32C32.2 32 0 64.2 0 104 0 141.9 29.3 172.9 66.4 175.8 77.6 257.2 147.4 320 232 320l56 0 0-192-216 0c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111 0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6 0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"],"tenge-sign":[384,512,[8376,"tenge"],"f7d7","M0 56C0 42.7 10.7 32 24 32l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 80C10.7 80 0 69.3 0 56zM0 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256-128 0c-17.7 0-32-14.3-32-32z"],"house-chimney-medical":[512,512,["clinic-medical"],"f7f2","M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM224 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"],"users-slash":[640,512,[],"e073","M73-24.9c-9.4-9.4-24.6-9.4-33.9 0S29.7-.3 39 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L321.8 224c56.6-1 102.2-47.2 102.2-104 0-57.4-46.6-104-104-104-56.8 0-103 45.6-104 102.2L73-24.9zM512 288c-17.2 0-33.7 3.4-48.7 9.6l170 170c4.2-5.4 6.7-12.2 6.7-19.6l0-32c0-70.7-57.3-128-128-128zM59.9 97.7c-21.5 12.5-35.9 35.7-35.9 62.3 0 39.8 32.2 72 72 72 26.6 0 49.8-14.4 62.3-35.9L59.9 97.7zM250.2 288C196.8 313.9 160 368.7 160 432l0 16c0 17.7 14.3 32 32 32l250.2 0-192-192zM128 288C57.3 288 0 345.3 0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z"],"paper-plane":[576,512,[61913],"f1d8","M536.4-26.3c9.8-3.5 20.6-1 28 6.3s9.8 18.2 6.3 28l-178 496.9c-5 13.9-18.1 23.1-32.8 23.1-14.2 0-27-8.6-32.3-21.7l-64.2-158c-4.5-11-2.5-23.6 5.2-32.6l94.5-112.4c5.1-6.1 4.7-15-.9-20.6s-14.6-6-20.6-.9L229.2 276.1c-9.1 7.6-21.6 9.6-32.6 5.2L38.1 216.8c-13.1-5.3-21.7-18.1-21.7-32.3 0-14.7 9.2-27.8 23.1-32.8l496.9-178z"],"book-atlas":[448,512,["atlas"],"f558","M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM310.6 208L279 208c-1.4 23.1-6 44.2-12.6 61.2 22.7-12.5 39.4-34.8 44.2-61.2zm-173.1 0c4.8 26.4 21.5 48.7 44.2 61.2-6.7-17-11.2-38-12.6-61.2l-31.6 0zm76.4 55c4.5 9.6 8.2 13.8 10.2 15.5 2-1.7 5.7-5.8 10.2-15.5 6.2-13.4 11.1-32.5 12.7-55l-45.8 0c1.6 22.5 6.5 41.6 12.7 55zm-12.7-87l45.8 0c-1.6-22.5-6.5-41.6-12.7-55-4.5-9.6-8.2-13.8-10.2-15.5-2 1.7-5.7 5.8-10.2 15.5-6.2 13.4-11.1 32.5-12.7 55zm109.5 0c-4.8-26.4-21.5-48.7-44.2-61.2 6.7 17 11.2 38 12.6 61.2l31.6 0zM169 176c1.4-23.1 6-44.2 12.6-61.2-22.7 12.5-39.4 34.8-44.2 61.2l31.6 0zM96 192a128 128 0 1 1 256 0 128 128 0 1 1 -256 0z"],table:[448,512,[],"f0ce","M256 160l0 96 128 0 0-96-128 0zm-64 0l-128 0 0 96 128 0 0-96zM0 320L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm384 0l-128 0 0 96 128 0 0-96zM192 416l0-96-128 0 0 96 128 0z"],heart:[512,512,[128153,128154,128155,128156,128420,129293,129294,129505,9829,10084,61578],"f004","M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1z"],"circle-chevron-up":[512,512,["chevron-circle-up"],"f139","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z"],"battery-half":[640,512,["battery-3"],"f242","M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-144 0z"],"font-awesome":[512,512,[62501,62694,"font-awesome-flag","font-awesome-logo-full"],"f2b4","M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96z"],handcuffs:[576,512,[],"e4f8","M320-32c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zM192 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM152 96c-13.3 0-24 10.7-24 24l0 16c0 1 .1 1.9 .2 2.9-74.7 26.3-128.2 97.5-128.2 181.1 0 106 86 192 192 192s192-86 192-192c0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0zM64 320a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm448 0c0 66.9-51.3 121.8-116.6 127.5-14.3 22.8-32.4 43.1-53.4 59.9 13.5 3 27.6 4.6 42 4.6 106 0 192-86 192-192 0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0c-12.3 0-22.4 9.2-23.8 21.1 30.3 19.2 56.1 45 75.2 75.4 65.4 5.8 116.6 60.6 116.6 127.5zM384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"hat-cowboy-side":[640,512,[],"f8c1","M640 388.3c0 16.9-7.1 32.2-18.4 43.1l-35-23.3-292.7-195.1c-36.1-24.1-78.6-36.9-122-36.9l-3.9 0c-2.7 0-5.4 0-8 .1l22.2-100c5.7-25.8 28.6-44.1 55-44.1 12.2 0 24.1 4 33.8 11.3l4.7 3.5c26.3 19.7 62.4 19.7 88.6 0l4.7-3.5c9.8-7.3 21.6-11.3 33.8-11.3 26.4 0 49.3 18.3 55 44.1l33 148.5C574.5 232.3 640 302.6 640 388.3zM171.9 224c33.9 0 67.1 10 95.4 28.9L560 448 56 448c-30.9 0-56-25.1-56-56 0-92.8 75.2-168 168-168l3.9 0z"],industry:[512,512,[],"f275","M32 32C14.3 32 0 46.3 0 64L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-279.8c0-18.2-19.4-29.7-35.4-21.1l-156.6 84.3 0-63.2c0-18.2-19.4-29.7-35.4-21.1L128 215.4 128 64c0-17.7-14.3-32-32-32L32 32z"],"lines-leaning":[384,512,[],"e51e","M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z"],passport:[384,512,[],"f5ab","M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 408c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zM278.6 208c-4.8 26.4-21.5 48.7-44.2 61.2 6.7-17 11.2-38 12.6-61.2l31.6 0zm-173.1 0l31.6 0c1.4 23.1 6 44.2 12.6 61.2-22.7-12.5-39.4-34.8-44.2-61.2zm76.4 55c-6.2-13.4-11.1-32.5-12.7-55l45.8 0c-1.6 22.5-6.5 41.6-12.7 55-4.5 9.6-8.2 13.8-10.2 15.5-2-1.7-5.7-5.8-10.2-15.5zm0-142c4.5-9.6 8.2-13.8 10.2-15.5 2 1.7 5.7 5.8 10.2 15.5 6.2 13.4 11.1 32.5 12.7 55l-45.8 0c1.6-22.5 6.5-41.6 12.7-55zm96.7 55L247 176c-1.4-23.1-6-44.2-12.6-61.2 22.7 12.5 39.4 34.8 44.2 61.2zM137 176l-31.6 0c4.8-26.4 21.5-48.7 44.2-61.2-6.7 17-11.2 38-12.6 61.2zm183 16a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z"],infinity:[640,512,[8734,9854],"f534","M0 256c0-88.4 71.6-160 160-160 50.4 0 97.8 23.7 128 64l32 42.7 32-42.7c30.2-40.3 77.6-64 128-64 88.4 0 160 71.6 160 160S568.4 416 480 416c-50.4 0-97.8-23.7-128-64l-32-42.7-32 42.7c-30.2 40.3-77.6 64-128 64-88.4 0-160-71.6-160-160zm280 0l-43.2-57.6c-18.1-24.2-46.6-38.4-76.8-38.4-53 0-96 43-96 96s43 96 96 96c30.2 0 58.7-14.2 76.8-38.4L280 256zm80 0l43.2 57.6c18.1 24.2 46.6 38.4 76.8 38.4 53 0 96-43 96-96s-43-96-96-96c-30.2 0-58.7 14.2-76.8 38.4L360 256z"],clone:[512,512,[],"f24d","M288 448l-224 0 0-224 48 0 0-64-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-48-64 0 0 48zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z"],forward:[576,512,[9193],"f04e","M371.7 43.1C360.1 32 343 28.9 328.3 35.2S304 56 304 72l0 136.3-172.3-165.1C120.1 32 103 28.9 88.3 35.2S64 56 64 72l0 368c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9L304 303.7 304 440c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9l192-184c7.9-7.5 12.3-18 12.3-28.9s-4.5-21.3-12.3-28.9l-192-184z"],m:[448,512,[109],"4d","M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3-133.4 200.1c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 49.9 9.2 37.5 22.7 33.4z"],"road-spikes":[640,512,[],"e568","M64 116.8c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.8-26.6 49.8L64 352 64 116.8zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z"],mountain:[512,512,[127956],"f6fc","M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4z"],chess:[512,512,[],"f439","M168 56l0 40-78.1 0c-14.3 0-25.9 11.6-25.9 25.9 0 4 .9 8 2.7 11.6l33.4 66.8c-11.4 1.8-20.2 11.7-20.2 23.7 0 13.3 10.7 24 24 24l5.6 0-13.6 136-56.2 70.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l248.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L288 384 274.4 248 280 248c13.3 0 24-10.7 24-24 0-11.9-8.7-21.9-20.2-23.7l33.4-66.8c1.8-3.6 2.7-7.6 2.7-11.6 0-14.3-11.6-25.9-25.9-25.9l-78.1 0 0-40 16 0c13.3 0 24-10.7 24-24S245.3 8 232 8l-16 0 0-16c0-13.3-10.7-24-24-24S168-21.3 168-8l0 16-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0zM325.8 279.6l8.5 85.5 47.4 59.2 4.2 5.7c9.2 13.7 14.1 29.9 14.1 46.5 0 12.7-2.8 24.8-7.9 35.5l83.1 0c20.3 0 36.8-16.5 36.8-36.8 0-7.3-2.2-14.4-6.2-20.4l-25.8-38.7 0-64 13.3-13.3c12-12 18.7-28.3 18.7-45.3L512 192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 16-32 0 0-16c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 22.4-10.2 42.4-26.2 55.6z"],"temperature-three-quarters":[320,512,["temperature-3","thermometer-3","thermometer-three-quarters"],"f2c8","M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 156.7c23.5 9.5 40 32.5 40 59.3z"],b:[320,512,[98],"42","M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l160 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM160 224l-96 0 0-128 96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0 0-128z"],"shield-virus":[512,512,[],"e06c","M253.4 2.9C249.2 1 244.7 0 240 0s-9.2 1-13.4 2.9L38.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L253.4 2.9zM240 128c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM208 264a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"],"litecoin-sign":[384,512,[],"e1d3","M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 157.9-38.6 11c-12.7 3.6-20.1 16.9-16.5 29.7s16.9 20.1 29.7 16.5L64 271.8 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-162.5 134.6-38.5c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5L128 203.6 128 64z"],"dice-d6":[512,512,[],"f6d1","M224.4 8.3C244-2.8 268-2.8 287.6 8.3l176 99.7c20 11.4 32.4 32.6 32.4 55.7l0 197.4c0 23-12.4 44.3-32.4 55.7l-176 99.7c-19.6 11.1-43.6 11.1-63.1 0l-176-99.7C28.4 405.5 16 384.2 16 361.2l0-197.4c0-23 12.4-44.3 32.4-55.7l176-99.7zM102.6 155.6c-8.8-3.1-18.8 .3-23.8 8.6s-3.2 18.7 3.6 25l3.2 2.4 150.2 90.2 0 148.7c0 11 9 20 20 20 11 0 20-9 20-20l0-148.7 150.3-90.2c9.5-5.7 12.6-18 6.9-27.4s-18-12.5-27.4-6.9l-149.7 89.8-149.7-89.8-3.7-1.7z"],"grip-lines-vertical":[192,512,[],"f7a5","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z"],"golf-ball-tee":[384,512,["golf-ball"],"f450","M298.5 384.1c12.1 1.2 21.5 11.5 21.5 23.9s-9.4 22.6-21.5 23.9l-2.5 .1-80 0 0 88c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-88-80 0c-13.3 0-24-10.7-24-24 0-12.4 9.4-22.6 21.5-23.9l2.5-.1 208 0 2.5 .1zM192 0c106 0 192 86 192 192 0 57.4-25.2 108.8-65.1 144L65.1 336C25.2 300.8 0 249.4 0 192 0 86 86 0 192 0zm32 240c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm64-64c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-80-16c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16z"],hexagon:[576,512,[11043],"f312","M33.5 220.3c-12.7 22.2-12.7 49.4 0 71.5l96.2 168.1c12.8 22.4 36.7 36.2 62.5 36.2l191.6 0c25.8 0 49.7-13.8 62.5-36.2l96.2-168.1c12.7-22.2 12.7-49.4 0-71.5L446.3 52.2C433.5 29.8 409.6 16 383.8 16L192.2 16c-25.8 0-49.7 13.8-62.5 36.2L33.5 220.3z"],"folder-open":[576,512,[128194,128449,61717],"f07c","M56 225.6L32.4 296.2 32.4 96c0-35.3 28.7-64 64-64l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4l117.3 0c35.3 0 64 28.7 64 64l0 16-365.4 0c-41.3 0-78 26.4-91.1 65.6zM477.8 448L99 448c-32.8 0-55.9-32.1-45.5-63.2l48-144C108 221.2 126.4 208 147 208l378.8 0c32.8 0 55.9 32.1 45.5 63.2l-48 144c-6.5 19.6-24.9 32.8-45.5 32.8z"],kaaba:[512,512,[128331],"f66b","M256 51.3L92.8 112.4 247.5 171.1c5.5 2.1 11.5 2.1 17 0L419.2 112.4 256 51.3zM0 129.3c0-20 12.4-37.9 31.1-44.9l208-78c10.9-4.1 22.8-4.1 33.7 0l208 78c18.7 7 31.1 24.9 31.1 44.9l0 36-253.2 96c-1.8 .7-3.8 .7-5.7 0l-253.2-96 0-36zm0 140l0-52.7 236.1 89.6c12.8 4.9 26.9 4.9 39.7 0l236.1-89.6 0 52.7-128 48.6 0 51.3 128-48.6 0 62.2c0 20-12.4 37.9-31.1 44.9l-208 78c-10.9 4.1-22.8 4.1-33.7 0l-208-78C12.4 420.7 0 402.7 0 382.7l0-62.2 128 48.6 0-51.3-128-48.6zM236.1 410.1c12.8 4.9 26.9 4.9 39.7 0l60.1-22.8 0-51.3-77.2 29.3c-1.8 .7-3.8 .7-5.7 0l-77.2-29.3 0 51.3 60.1 22.8z"],"hand-holding":[576,512,[],"f4bd","M66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z"],"single-quote-right":[192,512,[],"e81c","M64 416c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136c0 66.3-53.7 120-120 120l-8 0z"],"bottle-droplet":[320,512,[],"e4c4","M80 0c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 103.3c64.9 20.4 112 81 112 152.7l0 192c0 35.3-28.7 64-64 64L64 544c-35.3 0-64-28.7-64-64L0 288c0-71.6 47.1-132.3 112-152.7L112 32C94.3 32 80 17.7 80 0zm80 416c35.3 0 64-32.4 64-64 0-21.2-28.9-64.5-47.9-90.6-8.1-11.1-24.2-11.1-32.3 0-19 26.1-47.9 69.4-47.9 90.6 0 31.6 28.7 64 64 64z"],"window-minimize":[512,512,[128469],"f2d1","M0 416c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32z"],"chevron-right":[320,512,[9002],"f054","M311.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L243.2 256 73.9 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"],egg:[384,512,[129370],"f7fb","M192 496C86 496 0 394 0 288 0 176 64 16 192 16S384 176 384 288c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2-11.2 31.6-16.9 65.1-16.9 93.5 0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8 10.1-28.5 25-54.1 43.7-71.2z"],"landmark-dome":[512,512,["landmark-alt"],"f752","M256 0c-17.7 0-32 14.3-32 32 0 .9 0 1.8 .1 2.6-80.5 13.4-144 76.9-157.5 157.4L64 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 160-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6L448 416 448 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-2.7 0c-13.5-80.4-77-143.9-157.5-157.4 .1-.9 .1-1.7 .1-2.6 0-17.7-14.3-32-32-32zm80 256l64 0 0 160-64 0 0-160zM224 416l0-160 64 0 0 160-64 0zM112 256l64 0 0 160-64 0 0-160z"],worm:[448,512,[],"e599","M224 96c0-53 43-96 96-96l38.4 0C407.9 0 448 40.1 448 89.6L448 376c0 75.1-60.9 136-136 136S176 451.1 176 376l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48S0 490.5 0 464L0 296c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"],"user-injured":[448,512,[],"f728","M242.7 80L334 80c-10.7-24.6-29.5-44.9-52.9-57.6L242.7 80zm-.9-70.7C236 8.4 230 8 224 8 174.8 8 132.5 37.6 114 80l80.6 0 47.1-70.7zM224 248c66.3 0 120-53.7 120-120l-240 0c0 66.3 53.7 120 120 120zM98.7 341.8C49.3 370.2 16 423.5 16 484.6 16 499.7 28.3 512 43.4 512l151 0-95.8-170.2zm45.1-17.7l42.7 75.9 85.5 0c44.2 0 80 35.8 80 80 0 11.4-2.4 22.2-6.7 32l59.2 0c15.1 0 27.4-12.3 27.4-27.4 0-90.9-73.7-164.6-164.6-164.6l-86.9 0c-12.6 0-24.9 1.4-36.7 4.1zM213.5 448l36 64 22.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-58.5 0z"],strikethrough:[512,512,[],"f0cc","M96 157.5C96 88.2 152.2 32 221.5 32L368 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L221.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61l44.1 5.5 222 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l83.1 0C103 204.6 96 181.8 96 157.5zM349.2 336l65.5 0c.9 6.1 1.4 12.2 1.4 18.5 0 69.3-56.2 125.5-125.5 125.5L144 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-6.4-1-12.7-2.8-18.5z"],blog:[512,512,[],"f781","M224 24c0-13.3 10.7-24 24-24 145.8 0 264 118.2 264 264 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-119.3-96.7-216-216-216-13.3 0-24-10.7-24-24zM80 96c26.5 0 48 21.5 48 48l0 224c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16 79.5 0 144 64.5 144 144S255.5 512 176 512 32 447.5 32 368l0-224c0-26.5 21.5-48 48-48zm168 0c92.8 0 168 75.2 168 168 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3-53.7-120-120-120-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"stopwatch-20":[448,512,[],"e06f","M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm-60 240c0-28.7 23.3-52 52-52s52 23.3 52 52l0 3.8c0 11.7-3.2 23.1-9.3 33l-43.8 71.2 33.1 0c11 0 20 9 20 20s-9 20-20 20l-57.8 0c-14.5 0-26.2-11.7-26.2-26.2 0-4.9 1.3-9.6 3.9-13.8l56.7-92.1c2.2-3.6 3.4-7.8 3.4-12.1l0-3.8c0-6.6-5.4-12-12-12s-12 5.4-12 12c0 11-9 20-20 20s-20-9-20-20zm180-52c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12z"],"truck-pickup":[640,512,[128763],"f63c","M363.8 96l57.6 96-133.4 0 0-96 75.8 0zM496 192L418.6 63.1C407.1 43.8 386.2 32 363.8 32L256 32c-17.7 0-32 14.3-32 32l0 128-144 0c-26.5 0-48 21.5-48 48l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32.4 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l160.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l32.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-80c0-26.5-21.5-48-48-48l-64 0zM112 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm376-40a40 40 0 1 1 0 80 40 40 0 1 1 0-80z"],seedling:[512,512,[127793,"sprout"],"f4d8","M512 32C512 140.1 435.4 230.3 333.6 251.4 325.7 193.3 299.6 141 261.1 100.5 301.2 40 369.9 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z"],transgender:[576,512,[9895,"transgender-alt"],"f225","M128-32c17.7 0 32 14.3 32 32s-14.3 32-32 32L97.9 32 136 70.1 151 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-15 15 14.2 14.2c27.9-23.8 64.2-38.2 103.8-38.2 36.7 0 70.6 12.4 97.6 33.2L466.7 32 448 32c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-84.4 84.4c13 23.1 20.4 49.9 20.4 78.3 0 77.4-55 142-128 156.8l0 35.2 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-35.2c-73-14.8-128-79.4-128-156.8 0-31.4 9-60.7 24.7-85.4l-16.7-16.7-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l15-15-38.1-38.1 0 30.1c0 17.7-14.3 32-32 32S0 113.7 0 96L0 0C0-17.7 14.3-32 32-32l96 0zM288 336a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"],"star-half":[576,512,[61731],"f089","M304.1 7.6c0-11.1-7.6-20.7-18.4-23.3s-21.9 2.5-27 12.4L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L291 416.1c8-4.1 13.1-12.4 13.1-21.4l0-387.1z"],"photo-film":[640,512,["photo-video"],"f87c","M192 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224zM320 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm156.5 11.5C472.1 100.4 464.4 96 456 96s-16.1 4.4-20.5 11.5l-54 88.3-17.9-25.6c-4.5-6.4-11.8-10.2-19.7-10.2s-15.2 3.8-19.7 10.2l-56 80c-5.1 7.3-5.8 16.9-1.6 24.8S279.1 288 288 288l256 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144zM144 128l0 160c0 61.9 50.1 112 112 112l192 0 0 16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l80 0zM52 196l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0zm0 96c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0z"],"pump-medical":[320,512,[],"e06a","M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm64 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z"],fire:[448,512,[128293],"f06d","M160.5-26.4c9.3-7.8 23-7.5 31.9 .9 12.3 11.6 23.3 24.4 33.9 37.4 13.5 16.5 29.7 38.3 45.3 64.2 5.2-6.8 10-12.8 14.2-17.9 1.1-1.3 2.2-2.7 3.3-4.1 7.9-9.8 17.7-22.1 30.8-22.1 13.4 0 22.8 11.9 30.8 22.1 1.3 1.7 2.6 3.3 3.9 4.8 10.3 12.4 24 30.3 37.7 52.4 27.2 43.9 55.6 106.4 55.6 176.6 0 123.7-100.3 224-224 224S0 411.7 0 288c0-91.1 41.1-170 80.5-225 19.9-27.7 39.7-49.9 54.6-65.1 8.2-8.4 16.5-16.7 25.5-24.2zM225.7 416c25.3 0 47.7-7 68.8-21 42.1-29.4 53.4-88.2 28.1-134.4-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5-17.3-22.1-49.1-62.4-65.3-83-5.4-6.9-15.2-8-21.5-1.9-18.3 17.8-51.5 56.8-51.5 104.3 0 68.6 50.6 109.2 113.7 109.2z"],"magnifying-glass-plus":[512,512,["search-plus"],"f00e","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 112c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z"],flask:[448,512,[],"f0c3","M288 0L128 0C110.3 0 96 14.3 96 32s14.3 32 32 32L128 215.5 7.5 426.3C2.6 435 0 444.7 0 454.7 0 486.4 25.6 512 57.3 512l333.4 0c31.6 0 57.3-25.6 57.3-57.3 0-10-2.6-19.8-7.5-28.4L320 215.5 320 64c17.7 0 32-14.3 32-32S337.7 0 320 0L288 0zM192 215.5l0-151.5 64 0 0 151.5c0 11.1 2.9 22.1 8.4 31.8l41.6 72.7-164 0 41.6-72.7c5.5-9.7 8.4-20.6 8.4-31.8z"],"align-right":[448,512,[],"f038","M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"],"cable-car":[512,512,[128673,57551,"tram"],"f7da","M288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 24a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-96.2-193.4 55.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l224-64 0 0 224-64c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-206.6 59 0 109.9 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm80 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l56 0 0-96-56 0zm184 96l0-96-80 0 0 96 80 0zm48 0l56 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-56 0 0 96z"],"kit-medical":[512,512,["first-aid"],"f479","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l16 0 0-384-16 0zm64 0l0 384 256 0 0-384-256 0zM448 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-16 0 0 384 16 0zM224 184c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z"],"grip-lines":[448,512,[],"f7a4","M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z"],burger:[512,512,["hamburger"],"f805","M48 384c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l288 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16L48 384zM32 202c0 12.2 9.9 22 22 22L458 224c12.2 0 22-9.9 22-22 0-17.2-2.6-34.4-10.8-49.5-22.2-40.8-82.3-120.5-213.2-120.5S65 111.6 42.8 152.5C34.6 167.6 32 184.8 32 202zM0 304c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 272c-17.7 0-32 14.3-32 32zM256 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM120 128a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm248-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"],snowman:[640,512,[9731,9924],"f7d0","M403 211.7c32.2-24.9 53-63.9 53-107.7 0-75.1-60.9-136-136-136S184 28.9 184 104c0 43.9 20.8 82.9 53 107.7-32.2 16.3-59 41.8-76.8 73.1L112 264.2 112 224c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 19.6-22.5-9.7c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5c36.1 15.5 75.9 32.5 119.4 51.2-3.9 14.9-6 30.6-6 46.7 0 70 39.1 130.8 96.6 161.9 7.9 4.3 16.9 6.1 25.9 6.1l123 0c9 0 18-1.8 25.9-6.1 57.5-31.1 96.6-92 96.6-161.9 0-16.2-2.1-31.8-6-46.7 43.5-18.7 83.4-35.7 119.4-51.2 12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6l-22.5 9.7 0-19.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40.2-48.2 20.6c-17.9-31.3-44.6-56.8-76.8-73.1zM296 416a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24-120a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM292.2 159.3c-2.7-4.8-4.2-10.2-4.2-15.7 0-17.5 14.2-31.6 31.6-31.6l.8 0c17.5 0 31.6 14.2 31.6 31.6 0 5.5-1.4 10.9-4.2 15.7L327 195.8c-3.1 5.4-10.8 5.4-13.9 0l-20.9-36.6z"],hotel:[512,512,[127976],"f594","M16 24C16 10.7 26.7 0 40 0L472 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 416 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-416-8 0C26.7 48 16 37.3 16 24zm208 88l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM128 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm96 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM112 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 384l43.8 0c9.9 0 17.5-9 14-18.2-13.8-36.1-48.8-61.8-89.7-61.8s-75.9 25.7-89.7 61.8c-3.5 9.2 4.1 18.2 14 18.2l43.8 0 0 80 64 0 0-80z"],print:[512,512,[128424,128438,9113],"f02f","M64 64C64 28.7 92.7 0 128 0L341.5 0c17 0 33.3 6.7 45.3 18.7l42.5 42.5c12 12 18.7 28.3 18.7 45.3l0 37.5-384 0 0-80zM0 256c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 96c0 17.7-14.3 32-32 32l-32 0 0 64c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-64-32 0c-17.7 0-32-14.3-32-32l0-96zM128 416l0 32 256 0 0-96-256 0 0 64zM456 272a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"],volleyball:[512,512,[127952,"volleyball-ball"],"f45f","M512 258.9c-23.4 8-47.8 13.1-72.6 15.1 5.9-98.6-30.7-191.1-94.9-258.3 97.8 36 167.5 130 167.5 240.3 0 1 0 1.9 0 2.9zm-5.9 52c-5.2 23.7-13.6 46.2-24.9 66.9-94.7 52.2-214 50-308.4-13.6 21.7-31.3 49.8-58.9 83.8-80.5 79.5 41.6 168.5 49.1 249.5 27.1zM279.7 241.6c-3.7-89.7-41.7-170.5-101.3-229.7 22.3-7.1 46-11.2 70.5-11.9 92.5 55.9 150.3 160.3 142.4 273.8-38-3.2-75.9-13.7-111.6-32.3zM130.5 32.8C149.1 49.1 165.8 67.7 179.9 88.2 91.5 132.3 29.7 210.3 3.7 299.5 1.3 285.3 0 270.8 0 256 0 160.2 52.6 76.7 130.5 32.8zm73.4 97c16.3 34.5 26.1 72.6 27.9 112.8-75.8 48-126.8 121.3-148.3 202.5-17.6-16.1-33-34.6-45.5-55 2.1-108.1 63.7-210.4 165.9-260.3zM256 512c-47.7 0-92.3-13-130.5-35.7 4.8-24.3 12.6-48 23.2-70.4 82.4 54.4 180.8 68.9 271 47-44.4 37-101.5 59.2-163.7 59.2z"],"traffic-light":[320,512,[128678],"f637","M64-32C28.7-32 0-3.3 0 32L0 384c0 88.4 71.6 160 160 160s160-71.6 160-160l0-352c0-35.3-28.7-64-64-64L64-32zm96 392c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-104a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zM160 152a56 56 0 1 1 0-112 56 56 0 1 1 0 112z"],"plane-circle-check":[640,512,[],"e555","M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z"],users:[640,512,[],"f0c0","M320 16a104 104 0 1 1 0 208 104 104 0 1 1 0-208zM96 88a72 72 0 1 1 0 144 72 72 0 1 1 0-144zM0 416c0-70.7 57.3-128 128-128 12.8 0 25.2 1.9 36.9 5.4-32.9 36.8-52.9 85.4-52.9 138.6l0 16c0 11.4 2.4 22.2 6.7 32L32 480c-17.7 0-32-14.3-32-32l0-32zm521.3 64c4.3-9.8 6.7-20.6 6.7-32l0-16c0-53.2-20-101.8-52.9-138.6 11.7-3.5 24.1-5.4 36.9-5.4 70.7 0 128 57.3 128 128l0 32c0 17.7-14.3 32-32 32l-86.7 0zM472 160a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 432c0-88.4 71.6-160 160-160s160 71.6 160 160l0 16c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-16z"],certificate:[576,512,[],"f0a3","M239.2-8c-6.1-6.2-15-8.7-23.4-6.4S200.9-5.6 198.8 2.8L183.5 63c-1.1 4.4-5.6 7-9.9 5.7L113.8 51.9c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l16.9 59.8c1.2 4.3-1.4 8.8-5.7 9.9L35.1 166.5c-8.4 2.1-15 8.7-17.3 17.1s.2 17.3 6.4 23.4l44.5 43.3c3.2 3.1 3.2 8.3 0 11.5L24.3 305.1c-6.2 6.1-8.7 15-6.4 23.4s8.9 14.9 17.3 17.1l60.2 15.3c4.4 1.1 7 5.6 5.7 9.9L84.2 430.5c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l59.8-16.9c4.3-1.2 8.8 1.4 9.9 5.7l15.3 60.2c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l43.3-44.5c3.1-3.2 8.3-3.2 11.5 0L337.3 520c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3L393.1 449c1.1-4.4 5.6-7 9.9-5.7l59.8 16.9c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-16.9-59.8c-1.2-4.3 1.4-8.8 5.7-9.9l60.2-15.3c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-44.5-43.3c-3.2-3.1-3.2-8.3 0-11.5l44.5-43.3c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-60.2-15.3c-4.4-1.1-7-5.6-5.7-9.9l16.9-59.8c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1L403 68.8c-4.3 1.2-8.8-1.4-9.9-5.7L377.8 2.8c-2.1-8.4-8.7-15-17.1-17.3s-17.3 .2-23.4 6.4L294 36.5c-3.1 3.2-8.3 3.2-11.5 0L239.2-8z"],"alarm-clock":[512,512,[9200],"f34e","M504.4 132.5c-4.5 10.5-18.4 9.8-24.9 .4-27.8-40-66.1-72.2-111-92.6-10.4-4.7-13.7-18.3-4.1-24.6 15-9.9 33-15.7 52.3-15.7 52.6 0 95.2 42.6 95.2 95.2 0 13.2-2.7 25.8-7.6 37.3zm-471.9 .4c-6.5 9.4-20.5 10.1-24.9-.4-4.9-11.5-7.6-24.1-7.6-37.3 0-52.6 42.6-95.2 95.2-95.2 19.3 0 37.3 5.8 52.3 15.7 9.6 6.3 6.3 19.9-4.1 24.6-44.8 20.4-83.1 52.6-111 92.6zM390.2 467.4C352.8 495.4 306.3 512 256 512s-96.8-16.6-134.1-44.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l35.2-35.2C48.6 384.8 32 338.3 32 288 32 164.3 132.3 64 256 64S480 164.3 480 288c0 50.3-16.6 96.8-44.6 134.2l35.2 35.2c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-35.2-35.2zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l56 56c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-94.1z"],"helicopter-symbol":[512,512,[],"e502","M445.4 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.4 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.2 368.4 66.7 288L2 288zm0-64l64.7 0C80.2 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z"],"house-chimney-crack":[512,512,["house-damage"],"f6f1","M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-105.6 0-38.4-64 80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L218.6 263.2c-14.6-11.5-33.8 7-22.8 22L256 368 170.5 439.2c-6.1 5-7.5 13.8-3.5 20.5l31.3 52.2-86.4 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208z"],"person-military-pointing":[512,512,[],"e54a","M214.9 14.1C202 15.2 192 26 192 39 192 52.8 203.2 64 217 64l151 0c8.8 0 16-7.2 16-16l0-30.6C384 8 376 .7 366.7 1.4L214.9 14.1zM208 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L209.6 96c-1 5.2-1.6 10.5-1.6 16zM40 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4 162.8-162.8c-13.3-4.3-27.3-6.5-41.6-6.5L40 224zm345.7 20.9l-171.1 171.1 169.4 0 0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L430.3 290.8c-11.2-19-26.6-34.5-44.6-45.9zM192 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z"],database:[448,512,[],"f1c0","M448 205.8c-14.8 9.8-31.8 17.7-49.5 24-47 16.8-108.7 26.2-174.5 26.2S96.4 246.5 49.5 229.8c-17.6-6.3-34.7-14.2-49.5-24L0 288c0 44.2 100.3 80 224 80s224-35.8 224-80l0-82.2zm0-77.8l0-48C448 35.8 347.7 0 224 0S0 35.8 0 80l0 48c0 44.2 100.3 80 224 80s224-35.8 224-80zM398.5 389.8C351.6 406.5 289.9 416 224 416S96.4 406.5 49.5 389.8c-17.6-6.3-34.7-14.2-49.5-24L0 432c0 44.2 100.3 80 224 80s224-35.8 224-80l0-66.2c-14.8 9.8-31.8 17.7-49.5 24z"],newspaper:[512,512,[128240],"f1ea","M0 416L0 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 288c0 13.3 10.7 24 24 24s24-10.7 24-24L96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM160 128l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zm24 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0zm-24-72c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0c-13.3 0-24 10.7-24 24zM360 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0z"],"cloud-rain":[512,512,[127783,9926],"f73d","M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm1.6 68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm152 0c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm121.8 68.2l30.2-68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16z"],maximize:[448,512,["expand-arrows-alt"],"f31e","M168 32L24 32C10.7 32 0 42.7 0 56L0 200c0 9.7 5.8 18.5 14.8 22.2S34.1 223.8 41 217l40-40 79 79-79 79-40-40c-6.9-6.9-17.2-8.9-26.2-5.2S0 302.3 0 312L0 456c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2S270.3 480 280 480l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2S448 209.7 448 200l0-144c0-13.3-10.7-24-24-24L280 32c-9.7 0-18.5 5.8-22.2 14.8S256.2 66.1 263 73l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S177.7 32 168 32z"],"location-arrow":[512,512,[],"f124","M477.9 75.5c4.5-11.8 1.7-25.2-7.2-34.1s-22.3-11.8-34.1-7.2l-416 160C7.9 199-.3 211.2 0 224.7s9.1 25.4 21.9 29.6l176.8 58.9 58.9 176.8c4.3 12.8 16.1 21.6 29.6 21.9s25.7-7.9 30.6-20.5l160-416z"],city:[576,512,[127961],"f64f","M320 0c-35.3 0-64 28.7-64 64l0 32-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72C96 10.7 85.3 0 72 0S48 10.7 48 24l0 74c-27.6 7.1-48 32.2-48 62L0 448c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-64 0 0-128c0-35.3-28.7-64-64-64L320 0zm64 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm-16 80c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm112-16c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM128 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0z"],"x-ray":[512,512,[],"f497","M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zm280 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 48-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0 0 48-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-48 80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0 0-48 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-16z"],"umbrella-beach":[512,512,[127958],"f5ca","M497.5 341.1c-5.9 16.7-25.3 23-41.1 15.1l-178.2-89.1-1.6 3.2-88.8 177.7 292.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l84.2 0 103.2-206.3 1.6-3.2-165.4-82.7c-15.8-7.9-22.4-27.3-12.5-42 45.9-68.6 124.1-113.8 212.9-113.8 141.4 0 256 114.6 256 256 0 29.8-5.1 58.5-14.5 85.1z"],"arrow-right-to-bracket":[512,512,["sign-in"],"f090","M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"],headset:[448,512,[],"f590","M224 64c-79 0-144.7 57.3-157.7 132.7 9.3-3 19.3-4.7 29.7-4.7l16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0c-53 0-96-43-96-96l0-64C0 100.3 100.3 0 224 0S448 100.3 448 224l0 168.1c0 66.3-53.8 120-120.1 120l-87.9-.1-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 0 40 0c39.8 0 72-32.2 72-72l0-20.9c-14.1 8.2-30.5 12.8-48 12.8l-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l16 0c10.4 0 20.3 1.6 29.7 4.7-13-75.3-78.6-132.7-157.7-132.7z"],splotch:[512,512,[],"f5bc","M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0 316.5 0 341.6 18.7 349.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2 0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6-14.8 0-29.3-5.1-40.9-14.3l-55.3-44.3c-4.5-3.6-9.3-6.7-14.5-9.2-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9c-34.6 6.3-66.4-20.3-66.4-55.4 0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1 0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9 0 110.5 30.1 85.1 63 90.7l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z"],"up-long":[320,512,["long-arrow-alt-up"],"f30c","M137.4-22.6c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S300.9 160 288 160l-64 0 0 336c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-336-64 0c-12.9 0-24.6-7.8-29.6-19.8S.2 114.5 9.4 105.4l128-128z"],"hexagon-nodes":[448,512,[],"e699","M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56s56-25.1 56-56c0-22.3-13.1-41.6-32-50.6l0-98.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-1.6 20.8 8.6 41.6 27.8 52.8c26.8 15.5 61 6.3 76.5-20.5s6.3-61-20.5-76.5c-1.3-.8-2.7-1.5-4-2.1l0-90.8c1.4-.6 2.7-1.3 4-2.1c26.8-15.5 36-49.7 20.5-76.5S390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c2.6 1.8 5.2 3.3 8 4.7l0 90.8c-2.8 1.3-5.5 2.9-8 4.6l-80.1-45.8c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8z"],hospital:[576,512,[127973,62589,"hospital-alt","hospital-wide"],"f0f8","M128 64c0-35.3 28.7-64 64-64L384 0c35.3 0 64 28.7 64 64l0 64 64 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l64 0 0-64zM272 352c-17.7 0-32 14.3-32 32l0 80 96 0 0-80c0-17.7-14.3-32-32-32l-32 0zM128 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM112 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM512 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM264 104l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z"],"person-harassing":[576,512,[],"e549","M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l28.1-56.3 54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3 36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z"],"money-bill-trend-up":[512,512,[],"e529","M480 8c0-13.3-10.7-24-24-24L354.2-16c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.9 0-111.3 111.3-95.1-81.5c-9-7.7-22.2-7.7-31.2 0l-112 96c-10.1 8.6-11.2 23.8-2.6 33.8s23.8 11.2 33.8 2.6l96.4-82.6 96.4 82.6c9.5 8.2 23.7 7.6 32.6-1.3l127-127 0 43.9c0 13.3 10.7 24 24 24s24-10.7 24-24L480 8zM48 256c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48L48 256zm47.3 56c-3.4 20.1-19.2 36-39.4 39.4-4.4 .7-8-2.9-8-7.3l0-32c0-4.4 3.6-8 8-8l32 0c4.4 0 8.1 3.6 7.3 8zm0 144.1c.7 4.4-2.9 8-7.3 8l-32 0c-4.4 0-8-3.6-8-8l0-32c0-4.4 3.6-8.1 8-7.3 20.1 3.4 36 19.2 39.4 39.4zM456 416.7c4.4-.7 8 2.9 8 7.3l0 32c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8.1-3.6-7.3-8 3.4-20.1 19.2-36 39.4-39.4zM416.7 312c-.7-4.4 2.9-8 7.3-8l32 0c4.4 0 8 3.6 8 8l0 32c0 4.4-3.6 8.1-8 7.3-20.1-3.4-36-19.2-39.4-39.4zM192 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"],"pen-ruler":[512,512,["pencil-ruler"],"f5ae","M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM58.9 315.1L274.1 100 412 237.9 196.9 453.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7zM225.4 80.8L80.8 225.4 11.7 156.3c-15.6-15.6-15.6-40.9 0-56.6l88-88c15.6-15.6 40.9-15.6 56.6 0l5.9 5.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 34.9 34.9zM431.2 286.6l34.9 34.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 5.9 5.9c15.6 15.6 15.6 40.9 0 56.6l-88 88c-15.6 15.6-40.9 15.6-56.6 0l-69.1-69.1 144.6-144.6z"],repeat:[512,512,[128257],"f363","M470.6 118.6c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S352 19.1 352 32l0 32-160 0C86 64 0 150 0 256 0 273.7 14.3 288 32 288s32-14.3 32-32c0-70.7 57.3-128 128-128l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64zM41.4 393.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S160 492.9 160 480l0-32 160 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z"],bone:[640,512,[129460],"f5d7","M197.4 160c-3.9 0-7.2-2.8-8.1-6.6-10.2-42.1-48.1-73.4-93.3-73.4-53 0-96 43-96 96 0 29.1 12.9 55.1 33.3 72.7 4.3 3.7 4.3 10.8 0 14.5-20.4 17.6-33.3 43.7-33.3 72.7 0 53 43 96 96 96 45.2 0 83.1-31.3 93.3-73.4 .9-3.8 4.2-6.6 8.1-6.6l245.1 0c3.9 0 7.2 2.8 8.1 6.6 10.2 42.1 48.1 73.4 93.3 73.4 53 0 96-43 96-96 0-29.1-12.9-55.1-33.3-72.7-4.3-3.7-4.3-10.8 0-14.5 20.4-17.6 33.3-43.7 33.3-72.7 0-53-43-96-96-96-45.2 0-83.1 31.3-93.3 73.4-.9 3.8-4.2 6.6-8.1 6.6l-245.1 0z"],"fire-flame-curved":[384,512,["fire-alt"],"f7e4","M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0 198.4 0 208 9.6 208 21.3l0 22.1c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7 384 434 306 512 209.7 512L192 512C86 512 0 426 0 320l0-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6 12.5 0 22.6 10.1 22.6 22.6L96 288c0 35.3 28.7 64 64 64s64-28.7 64-64l0-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7 0-27.7 9-54.8 25.6-76.9z"],"bus-simple":[448,512,["bus-alt"],"f55e","M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-96zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"venus-mars":[640,512,[9892],"f228","M480-64c-17.7 0-32 14.3-32 32S462.3 0 480 0L530.7 0 474 56.7c-26.3-15.7-57.1-24.7-90-24.7-35.4 0-68.4 10.5-96 28.5-27.6-18-60.6-28.5-96-28.5-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c23.3-4.3 44.9-13.1 64-25.6 27.6 18 60.6 28.5 96 28.5 97.2 0 176-78.8 176-176 0-41.1-14.1-79-37.8-109L576 45.3 576 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L480-64zM336 309.2c20.2-28.6 32-63.5 32-101.2s-11.8-72.6-32-101.2c14.6-6.9 30.8-10.8 48-10.8 61.9 0 112 50.1 112 112S445.9 320 384 320c-17.2 0-33.5-3.9-48-10.8zM288 150.3c10.2 16.9 16 36.6 16 57.7s-5.8 40.9-16 57.7c-10.2-16.9-16-36.6-16-57.7s5.8-40.9 16-57.7zm-48-43.5c-20.2 28.6-32 63.5-32 101.2s11.8 72.6 32 101.2c-14.5 6.9-30.8 10.8-48 10.8-61.9 0-112-50.1-112-112S130.1 96 192 96c17.2 0 33.5 3.9 48 10.8z"],blender:[512,512,[],"f517","M0 56C0 25.1 25.1 0 56 0L437.6 0c21.3 0 36.6 20.3 30.8 40.8L457.1 80 344 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0-9.1-96-62.9 0c-30.9 0-56-25.1-56-56L0 56zM114.3 192L100.6 48 56 48c-4.4 0-8 3.6-8 8l0 128c0 4.4 3.6 8 8 8l58.3 0zM136 384l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"],u:[384,512,[117],"55","M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z"],share:[512,512,["mail-forward"],"f064","M307.8 18.4c-12 5-19.8 16.6-19.8 29.6l0 80-112 0c-97.2 0-176 78.8-176 176 0 113.3 81.5 163.9 100.2 174.1 2.5 1.4 5.3 1.9 8.1 1.9 10.9 0 19.7-8.9 19.7-19.7 0-7.5-4.3-14.4-9.8-19.5-9.4-8.8-22.2-26.4-22.2-56.7 0-53 43-96 96-96l96 0 0 80c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-9.2-9.2-22.9-11.9-34.9-6.9z"],"phone-flip":[512,512,[128381,"phone-alt"],"f879","M351.8 25c7.8-18.8 28.4-28.9 48.1-23.5l5.5 1.5c64.6 17.6 119.8 80.2 103.7 156.4-37.1 175-174.8 312.7-349.8 349.8-76.3 16.2-138.8-39.1-156.4-103.7l-1.5-5.5c-5.4-19.7 4.7-40.3 23.5-48.1l97.3-40.5c16.5-6.9 35.6-2.1 47 11.8l38.6 47.2c70.3-34.9 126.8-93.3 159.3-164.9l-44.1-36.1c-13.9-11.3-18.6-30.4-11.8-47L351.8 25z"],"toilet-portable":[320,512,[],"e583","M0 64l0 16 320 0 0-16c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64zm24 64L0 128 0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-360-296 0zm224 96l24 0 0 96-24 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z"],"person-pregnant":[384,512,[],"e31e","M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm80 321.2c8.6-4.5 16.8-10 24.3-16.5l4-3.4c22.6-19.4 35.7-47.7 35.7-77.6 0-35.9-18.8-69.1-49.6-87.6l-30.4-18.2 0-1.8c0-46.5-37.7-84.1-84.1-84.1-28.1 0-54.4 14.1-70 37.5L21.4 270.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9l29-43.5-30.5 113.5c-2.6 9.6-.6 19.9 5.5 27.8S94 416 104 416l8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-110.8z"],"less-than":[512,512,[62774],"3c","M477.1 50.6c7.4 16 .4 35.1-15.6 42.5L108.4 256 461.4 419c16 7.4 23 26.4 15.6 42.5s-26.4 23-42.5 15.6l-416-192C7.3 279.8 0 268.5 0 256S7.3 232.2 18.6 227l416-192c16-7.4 35.1-.4 42.5 15.6z"],superscript:[576,512,[],"f12b","M544 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16C449.9 27.3 443.5 46.5 451.4 62.3 457 73.5 468.3 80 480 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64z"],"circle-stop":[512,512,[62094,"stop-circle"],"f28d","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z"],"arrows-up-down":[256,512,["arrows-v"],"f07d","M150.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 77.3 96 434.7 54.6 393.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-41.4 41.4 0-357.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z"],"poo-storm":[512,512,["poo-bolt"],"f75a","M268.9-31.8c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1 0 21.7-8.5 37.2-21.9 47.6-13.9 10.8-34.1 17-58.1 17l-24 0c-48.6 0-88 39.4-88 88 0 14.8 3.7 28.8 10.2 41.1-42 6.6-74.2 43-74.2 86.9 0 46.6 36.2 84.7 81.9 87.8 3.1-12.4 9.9-23.8 19.6-32.5L242.7 225c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7l-12.7 42.4c28.8 1.2 52.7 21.1 59.8 47.9l26.2 0c48.6 0 88-39.4 88-88 0-43.9-32.1-80.3-74.2-86.9 6.5-12.3 10.2-26.2 10.2-41.1 0-48.6-39.4-88-88-88l-9.4 0c.9-5.4 1.4-10.9 1.4-16.6 0-48.7-36.1-88.9-83.1-95.2zM144.6 416l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L346.5 412.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L133.5 387.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z"],"video-slash":[576,512,[],"f4e2","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-153-153 0-222.2c0-35.3-28.7-64-64-64L129.8 64 41-24.9zM32 128l0 256c0 35.3 28.7 64 64 64l256 0c7.8 0 15.3-1.4 22.2-4L36 105.8c-2.6 6.9-4 14.4-4 22.2zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z"],"square-xmark":[448,512,[10062,"times-square","xmark-square"],"f2d3","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm71 135c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z"],"hand-holding-droplet":[576,512,["hand-holding-water"],"f4c1","M275.5 6.6L209.2 103C198 119.3 192 138.6 192 158.3l0 1.7c0 53 43 96 96 96s96-43 96-96l0-1.7c0-19.8-6-39-17.2-55.3L300.5 6.6C297.7 2.5 293 0 288 0s-9.7 2.5-12.5 6.6zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z"],"won-sign":[512,512,[8361,"krw","won"],"f159","M62.4 53.9C56.8 37.1 38.7 28.1 21.9 33.6S-3.9 57.4 1.7 74.1L56.9 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288 279 288 321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288 480 288c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.9 0 55.3-165.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-62 186.1-54.6 0-45.9-183.8C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L179 240 124.4 240 62.4 53.9zm78 234.1l26.6 0-11.4 45.6-15.2-45.6zM245 240l11-44.1 11 44.1-22 0zm100 48l26.6 0-15.2 45.6-11.4-45.6z"],"object-ungroup":[640,512,[],"f248","M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zM544 279.4c-9.7-5.6-17.8-13.7-23.4-23.4l-29.2 0c-5.3-17.7-14.8-33.5-27.4-46.4l0-17.6 56.6 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-24.6 64 0 0 24.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1z"],comment:[512,512,[128489,61669],"f075","M512 240c0 132.5-114.6 240-256 240-37.1 0-72.3-7.4-104.1-20.7L33.5 510.1c-9.4 4-20.2 1.7-27.1-5.8S-2 485.8 2.8 476.8l48.8-92.2C19.2 344.3 0 294.3 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240z"],"hill-avalanche":[576,512,[],"e507","M440.1 401.9c34.2 23.1 81.1 19.5 111.4-10.8 34.4-34.4 34.4-90.1 0-124.5-27.8-27.8-69.5-33.1-102.6-16-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3 15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7c22.3-14.2 37.1-39.1 37.1-67.5 0-33.9-21.1-62.9-50.9-74.5 1.9-6.8 2.9-14 2.9-21.5 0-44.2-35.8-80-80-80-27.3 0-51.5 13.7-65.9 34.6-5.8-20-24.2-34.6-46.1-34.6-26.5 0-48 21.5-48 48 0 4 .5 7.9 1.4 11.6L440.1 401.9zM480.4 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.7 87C43.5 61.8 .4 79.7 .4 115.3L.4 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.7 87z"],"arrows-to-eye":[640,512,[],"e4bf","M176 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 38.1-63-63c-9.4-9.4-24.6-9.4-33.9 0S21.7 55.6 31 65l63 63-38.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24l0-96zm0 400l0-96c0-13.3-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l38.1 0-63 63c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l63-63 0 38.1c0 13.3 10.7 24 24 24s24-10.7 24-24zm312 24c13.3 0 24-10.7 24-24l0-38.1 63 63c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 38.1 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24l0 96c0 13.3 10.7 24 24 24zM464 56l0 96c0 13.3 10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-38.1 0 63-63c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-63 63 0-38.1c0-13.3-10.7-24-24-24s-24 10.7-24 24zM320 120c-57.3 0-99.4 34-125.6 64.3-20 23.1-32.4 45.8-37.6 56.1-2.5 5-4.9 9.7-4.9 15.6s2.3 10.6 4.9 15.6c5.2 10.3 17.6 33 37.6 56.1 26.2 30.3 68.2 64.3 125.6 64.3s99.4-34 125.6-64.3c20-23.1 32.4-45.8 37.6-56.1 2.5-5 4.9-9.7 4.9-15.6s-2.3-10.6-4.9-15.6c-5.2-10.3-17.6-33-37.6-56.1-26.2-30.3-68.2-64.3-125.6-64.3zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"],snowplow:[640,512,[],"f7d2","M128 160l0-96c0-35.3 28.7-64 64-64L296.4 0c24.2 0 46.4 13.7 57.2 35.4l87.6 175.1c4.4 8.9 6.8 18.7 6.8 28.6l0 56.9 80 0 0-80c0-48.6 39.4-88 88-88 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.1 0-40 17.9-40 40l0 208c0 22.1 17.9 40 40 40 13.3 0 24 10.7 24 24s-10.7 24-24 24c-48.6 0-88-39.4-88-88l0-80-63 0c9.5 16.5 15 35.6 15 56 0 61.9-50.1 112-112 112l-224 0c-61.9 0-112-50.1-112-112 0-30.5 12.2-58.2 32-78.4L64 224c0-35.3 28.7-64 64-64zm91.7 34.9l43.6 29.1 113.2 0-80-160-104.4 0 0 108.8 27.7 22.1zM416 400c0-26.5-21.5-48-48-48l-224 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l224 0c26.5 0 48-21.5 48-48zm-280 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm216-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM232 400a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"],"chart-gantt":[512,512,[],"e0e4","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm64 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0zM384 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0z"],video:[576,512,["video-camera"],"f03d","M96 64c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L96 64zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z"],"chess-pawn":[384,512,[9823],"f443","M192-32c66.3 0 120 53.7 120 120 0 27-8.9 51.9-24 72 17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 26.7 160 56.2 70.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L51.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L80 384 106.7 224 96 224c-17.7 0-32-14.3-32-32s14.3-32 32-32c-15.1-20.1-24-45-24-72 0-66.3 53.7-120 120-120z"],synagogue:[576,512,[128333],"f69b","M16 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32-128 0 0-32zm0 368l0-288 128 0 126.2-84.2c10.7-7.2 24.8-7.2 35.5 0l126.2 84.2 128 0 0 288c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64zM560 112l-128 0 0-32c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32zM224 384l0 80 128 0 0-80c0-35.3-28.7-64-64-64s-64 28.7-64 64zm64-152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"],"building-circle-check":[576,512,[],"e4d2","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z"],"calendar-plus":[448,512,[],"f271","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm96 192c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z"],"wheelchair-move":[448,512,["wheelchair-alt"],"e2ce","M312 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM205.4 124.1c-6.4-5.2-15.6-4.7-21.4 1.1l-33.4 33.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L138.8 80c29-29 75.2-31.4 107-5.5l81.3 66c21.4 17.4 23.8 49.2 5.2 69.5l-41.8 46 98 0c30.3 0 53 27.7 47.1 57.4L407.4 454.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L369 320 316.8 320c2.1 10.3 3.2 21 3.2 32 0 88.4-71.6 160-160 160S0 440.4 0 352 71.6 192 160 192c6 0 11.9 .3 17.8 1l50.4-50.4-22.7-18.5zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z"],"user-shield":[576,512,[],"f505","M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l251.5 0C261 469.4 240 414.5 240 356.4l0-31.1c0-7.3 1-14.5 2.9-21.3l-48.6 0zm251 184.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z"],bold:[384,512,[],"f032","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l32 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM288 160c0 35.3-28.7 64-64 64l-96 0 0-128 96 0c35.3 0 64 28.7 64 64zM128 416l0-128 128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0z"],"heart-pulse":[512,512,["heartbeat"],"f21e","M256 107.9L241 87.1C216 52.5 175.9 32 133.1 32 59.6 32 0 91.6 0 165.1l0 2.6c0 23.6 6.2 48 16.6 72.3l106 0c3.2 0 6.1-1.9 7.4-4.9l31.8-76.3c3.7-8.8 12.3-14.6 21.8-14.8s18.3 5.4 22.2 14.1l51.3 113.9 41.4-82.8c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3l23.2 46.3c1.4 2.7 4.1 4.4 7.2 4.4l123.6 0c10.5-24.3 16.6-48.7 16.6-72.3l0-2.6C512 91.6 452.4 32 378.9 32 336.2 32 296 52.5 271 87.1l-15 20.7zM469.6 288l-97.8 0c-21.2 0-40.6-12-50.1-31l-1.7-3.4-42.5 85.1c-4.1 8.3-12.7 13.5-22 13.3s-17.6-5.7-21.4-14.1l-49.3-109.5-10.5 25.2c-8.7 20.9-29.1 34.5-51.7 34.5l-80.2 0c47.2 73.8 123 141.7 170.4 177.9 12.4 9.4 27.6 14.1 43.1 14.1s30.8-4.6 43.1-14.1C346.6 429.7 422.4 361.8 469.6 288z"],"square-root-variable":[576,512,["square-root-alt"],"f698","M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8 84.4-289.5zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0l41.4 41.4 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-41.4 41.4 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l41.4-41.4-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z"],"hands-bubbles":[512,512,["hands-wash"],"e05e","M384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM128 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM0 160l.1 72.6c0 44.8 17.6 87.1 47.9 118.4 .3-77 40.1-148.4 105.4-189.3l1.9-1.2c-2.5-3.7-2.8-8.6-.4-12.7l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S182 5 175.4 16.5l-68 117.8 0 0 0 0-43.3 75 0-49.3c0-17.7-14.4-32-32-32S0 142.4 0 160zm213.6-35.9c14.1-8.8 29.8-12.7 45.2-12.1l36.5-63.3c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-67.1 116.2 27-16.9zm86.5-35.7l-16.4 28.4c15.1 5.5 28.6 15.6 38.3 29.7l19.7-34.2c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-12.5 21.7c2 8.6 2.5 17.5 1.7 26.1l4.3 0 0 0 34.4 0 13.7-23.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM283.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C127.3 234.7 96 291.2 96 352l0 8c0 8.9 .8 17.6 2.2 26.1 35.4 8.2 61.8 40 61.8 77.9 0 6.3-.7 12.5-2.1 18.4 25.2 18.6 56.4 29.6 90.1 29.6l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0 0 0 0 0-93.2 0 46.2-28.9c15-9.4 19.5-29.1 10.2-44.1z"],marker:[512,512,[],"f5a1","M408.8 0c-27.4 0-53.6 10.9-73 30.2L318.1 48 305 34.9c-28.1-28.1-73.7-28.1-101.8 0L103 135c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L237.1 68.9c9.4-9.4 24.6-9.4 33.9 0L284.1 81.9 184 182.1 329.9 328 481.8 176.2c19.4-19.4 30.2-45.6 30.2-73 0-57-46.2-103.2-103.2-103.2zM102.4 263.7c-49.9 49.9-83.3 114-95.5 183.5L.4 483.8C-1 491.6 1.5 499.4 7 505s13.4 8 21.1 6.7l36.7-6.5c69.5-12.3 133.6-45.6 183.5-95.5L296 361.9 150.1 216 102.4 263.7z"],clipboard:[384,512,[128203],"f328","M320 32l-8.6 0C300.4 12.9 279.7 0 256 0L128 0C104.3 0 83.6 12.9 72.6 32L64 32C28.7 32 0 60.7 0 96L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64zM136 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0z"],"place-of-worship":[512,512,[],"f67f","M160 79l0 81-44.8 33.6C103.1 202.7 96 216.9 96 232l0 40-60.6 30.3C13.7 313.2 0 335.3 0 359.6L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-88.4c0-24.2-13.7-46.4-35.4-57.2L416 272 416 232c0-15.1-7.1-29.3-19.2-38.4L352 160 352 79c0-9.5-4.2-18.5-11.5-24.6L271.4-3.2c-8.9-7.4-21.8-7.4-30.7 0L171.5 54.4C164.2 60.5 160 69.5 160 79zm96 241c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z"],cannabis:[512,512,[],"f55f","M256 0c5.3 0 10.3 2.7 13.3 7.1 15.8 23.5 36.7 63.7 49.2 109 7.3 26.4 11.8 55.3 10.3 84 11.6-8.9 23.7-16.7 35.9-23.7 41-23.3 84.4-36.9 112.2-42.5 5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7-9.1 15.9-19.9 31.7-32.5 46.3 27.9 6.6 52.5 17.2 67.3 25.4 5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.2c1.5 6.1-.6 12.5-5.5 16.4s-11.6 4.6-17.2 1.8L280 417.2 280 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.8s-7-10.3-5.5-16.4l8.3-33.2c-22.2 2.6-45 0-65.2-4.6-28.9-6.6-54.5-17.6-69.8-26.1-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14l6.2-3.3c15-7.6 36.8-16.4 61.1-22.2-12.5-14.5-23.3-30.4-32.4-46.2-23.4-40.8-37.1-84-42.7-111.7-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5 12.2 6.9 24.3 14.8 35.8 23.7-1.4-28.7 3.1-57.6 10.3-84 12.5-45.3 33.4-85.5 49.2-109l1.2-1.6C246.9 2 251.3 0 256 0z"],"people-roof":[576,512,[],"e537","M302.3-12.6c-9-4.5-19.6-4.5-28.6 0l-256 128C1.9 123.3-4.5 142.5 3.4 158.3s27.1 22.2 42.9 14.3L288 51.8 529.7 172.6c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-256-128zM288 272a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 48c-53 0-96 43-96 96l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-53-43-96-96-96zM160 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm352 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM112 336c-44.2 0-80 35.8-80 80l0 33.1c0 17 13.8 30.9 30.9 30.9l87.8 0c-4.3-9.8-6.7-20.6-6.7-32l0-48c0-18.4 3.5-36 9.8-52.2-12.2-7.5-26.5-11.8-41.8-11.8zM425.4 480l87.8 0c17 0 30.9-13.8 30.9-30.9l0-33.1c0-44.2-35.8-80-80-80-15.3 0-29.6 4.3-41.8 11.8 6.3 16.2 9.8 33.8 9.8 52.2l0 48c0 11.4-2.4 22.2-6.7 32z"],disease:[512,512,[],"f7fa","M236.5 29.4L224 48c-20 30-53.6 48-89.7 48L68 96c-37.5 0-67.9 30.4-67.9 67.9 0 18 7.2 35.2 19.9 47.9l27 27c11 11 17.2 25.9 17.2 41.5 0 15.8-6.4 30.9-17.7 42L33.4 335.1c-11.1 10.8-17.3 25.7-17.3 41.2 0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6 32.8 0 64.2 14.6 85.2 39.8l30.5 36.6c10.4 12.4 25.7 19.6 41.9 19.6 30.1 0 54.5-24.4 54.5-54.5l0-51.2c0-41.4 25.4-78.5 64-93.5l22.2-8.6c25.2-9.8 41.8-34.1 41.8-61.1 0-26.4-15.9-50.3-40.3-60.5L429 164.8c-33.2-13.9-57.6-43-65.5-78.1l-7.9-35.2c-6.8-30.1-33.5-51.5-64.3-51.5-22 0-42.6 11-54.8 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"book-bible":[448,512,["bible"],"f647","M96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 512zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zM192 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-112 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"],"chess-board":[448,512,[],"f43c","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z"],mars:[512,512,[9794],"f222","M320 32c0-17.7 14.3-32 32-32L480 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S32 401.2 32 304 110.8 128 208 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM208 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z"],laptop:[640,512,[128187],"f109","M128 32C92.7 32 64 60.7 64 96l0 240 64 0 0-240 384 0 0 240 64 0 0-240c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2 0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8 0-10.6-8.6-19.2-19.2-19.2L19.2 384z"],"user-xmark":[640,512,["user-times"],"f235","M136.4 128a120 120 0 1 1 240 0 120 120 0 1 1 -240 0zm-88 354.3c0-98.5 79.8-178.3 178.3-178.3l59.4 0c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L78.1 512c-16.4 0-29.7-13.3-29.7-29.7zM612.3 124.1c9.4 9.4 9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0z"],"flag-usa":[448,512,[],"f74d","M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 61.9-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 400 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zm80 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z"],"hand-middle-finger":[448,512,[128405],"f806","M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2-26.5 0-48 21.5-48 48l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-96c0-26.5-21.5-48-48-48-12.4 0-23.6 4.7-32.1 12.3-1.9-24.8-22.6-44.3-47.9-44.3-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z"],"mortar-pestle":[512,512,[],"f5a7","M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160 397.3 160 502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2-11.1 13.9-19.4 30.3-23.9 48.1-4.4 17.1 10.4 31.7 28.1 31.7l192 0c17.7 0 32.4-14.6 28.1-31.7-4.5-17.8-12.8-34.1-23.9-48.1 80.5-28.6 123.9-93.7 123.9-176.2 17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z"],"head-side-cough":[512,512,[],"e061","M96 512l64 0c53 0 96-43 96-96l0-80c0-8.8 7.2-16 16-16l1 0c26 0 47-21 47-47 0-11-3.9-21.6-10.9-30.1L273.3 200C271.4 197.6 270.1 194.7 269.7 191.7 254 83.3 160.7 0 48 0 40.4 0 32.9 .4 25.4 1.1 10.5 2.6 0 15.9 0 30.9L0 480c0 17.7 14.3 32 32 32l64 0zm16-320a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm63.1 237.2l-41.5-3.5c-12.2-1-21.6-11.2-21.6-23.4 0-10.8 7.3-20.2 17.8-22.8l40.4-10.1c19.2-4.8 37.8 9.7 37.8 29.5 0 17.8-15.2 31.8-32.9 30.3zM480 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40 24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-64 48a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm128 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM480 504a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40-72a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"],"plane-lock":[640,512,[],"e558","M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 82.1 75.2C409.7 248.1 400 274.9 400 304l0 24.4c-7.3 6.6-13.6 14.2-18.7 22.7l-37.3-12.4 0 99.7 24 19.2 0 38.3c0 13.5 2.8 26.4 7.8 38.1L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM560 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z"],"battery-three-quarters":[640,512,["battery-4"],"f241","M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l224 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-224 0z"],"franc-sign":[320,512,[],"e18f","M80 32C62.3 32 48 46.3 48 64l0 256-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z"],"filter-circle-dollar":[576,512,["funnel-dollar"],"f662","M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM416 320c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-45.8 0c-5.6 0-10.2 4.6-10.2 10.2 0 4.9 3.5 9.1 8.3 10l45 8.2c20 3.6 34.6 21.1 34.6 41.5 0 23.3-18.9 42.2-42.2 42.2l-5.8 0 0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l53.8 0c5.6 0 10.2-4.6 10.2-10.2 0-4.9-3.5-9.1-8.3-10l-45-8.2c-20-3.6-34.6-21.1-34.6-41.5 0-22.6 17.7-41 40-42.1l0-8.1z"],cheese:[512,512,[],"f7ef","M512 240.2l0 15.8-512 0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7 115 0 208.2 93.2 208.2 208.2zm0 63.8l0 112c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-112 512 0z"],"circle-h":[512,512,[9405,"hospital-symbol"],"f47e","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm96-344l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z"],school:[576,512,[127979],"f549","M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zM224 376l0 88 128 0 0-88c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zm-112 8c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM288 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z"],"dice-five":[448,512,[9860],"f523","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],tornado:[448,512,[127786],"f76f","M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16 0-12.5-10.1-22.6-22.6-22.6L32 0C14.3 0 0 14.3 0 32zM355.7 144l-336 0c12.4 29.7 30.2 56.8 52.7 80l339.6 0-47.2-62.9c-3.9-5.2-7-11-9.2-17.1zM242.6 334.7c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1 0-17.1-2.9-34-8.6-49.9L136 272 242.6 334.7zM294.3 400c5.3 17 6.5 35.2 3.6 53l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4 5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c8.5-8.5 15.8-17.8 21.9-27.9l-131.8 0z"],"jet-fighter":[576,512,["fighter-jet"],"f0fb","M496.2 206.8c-10.7-4.5-22.2-6.8-33.8-6.8L362 200 248 48 296 48c13.3 0 24-10.7 24-24S309.3 0 296 0L152 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0 152-54.4 0-52.8-66c-3-3.8-7.6-6-12.5-6L16 128c-8.8 0-16 7.2-16 16l0 88 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 88c0 8.8 7.2 16 16 16l24.3 0c4.9 0 9.5-2.2 12.5-6l52.8-66 54.4 0 0 152-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 114-152 100.4 0c11.6 0 23.1-2.3 33.8-6.8l65-27.1c8.9-3.7 14.8-12.5 14.8-22.2s-5.8-18.4-14.8-22.2l-65-27.1z"],"thumbs-down":[512,512,[128078,61576],"f165","M384 32c26.5 0 48 21.5 48 48 0 6.3-1.3 12.2-3.4 17.7 20.4 5.5 35.4 24.1 35.4 46.3 0 9.1-2.6 17.6-7 24.9 22.2 4.2 39 23.7 39 47.1 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 26.5-21.5 48-48 48l-160 0 28.2 70.4c2.5 6.3 3.8 13.1 3.8 19.9l0 4.2c0 27.3-22.1 49.4-49.4 49.4-18.7 0-35.8-10.6-44.2-27.3L170.1 356.3c-6.7-13.3-10.1-28-10.1-42.9l0-186.6c0-19.4 8.9-37.8 24-50l12.2-9.7C224.6 44.4 259.8 32 296.1 32L384 32zM80 96c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l48 0z"],broom:[576,512,[129529],"f51a","M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6-12.5 0-22.6 10.1-22.6 22.6l0 29.1 108.3 108.3 29.1 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8c-22.3 22.3-34.8 52.5-34.8 84 0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9 0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8 30.6-30.6 45.9-73.1 42.3-115.8z"],"file-import":[384,512,["arrow-right-to-file"],"f56f","M64 0C28.7 0 0 28.7 0 64l0 240 182.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-182.1 0 0 96c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z"],utensils:[512,512,[127860,61685,"cutlery"],"f2e7","M63.9 14.4C63.1 6.2 56.2 0 48 0s-15.1 6.2-16 14.3L17.9 149.7c-1.3 6-1.9 12.1-1.9 18.2 0 45.9 35.1 83.6 80 87.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7 0-6.1-.6-12.2-1.9-18.2L223.9 14.3C223.1 6.2 216.2 0 208 0s-15.1 6.2-15.9 14.4L178.5 149.9c-.6 5.7-5.4 10.1-11.1 10.1-5.8 0-10.6-4.4-11.2-10.2L143.9 14.6C143.2 6.3 136.3 0 128 0s-15.2 6.3-15.9 14.6L99.8 149.8c-.5 5.8-5.4 10.2-11.2 10.2-5.8 0-10.6-4.4-11.1-10.1L63.9 14.4zM448 0C432 0 320 32 320 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448c0-17.7-14.3-32-32-32z"],"id-badge":[384,512,[],"f2c1","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 352l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM152 64l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],spider:[512,512,[128375],"f717","M369.3-31c11.9-3.5 24.4 2.7 29 13.9l.8 2.3 40 136c2.5 8.4 .1 17.5-6.1 23.7l-64.1 64.1 76.4-20.8 19.9-59.8 .9-2.3c5-11.1 17.7-16.8 29.5-12.9 11.8 3.9 18.5 16.1 15.8 28l-.7 2.4-24 72c-2.5 7.6-8.7 13.4-16.5 15.6l-91.1 24.8 91.1 24.8c7.7 2.1 13.9 8 16.5 15.6l24 72 .7 2.4c2.7 11.9-4.1 24.1-15.8 28-11.8 3.9-24.5-1.8-29.5-12.9l-.9-2.3-19.9-59.8-76.4-20.8 64.1 64.1c6.1 6.1 8.5 15.1 6.2 23.4l-40 144-.8 2.3c-4.4 11.3-16.8 17.7-28.8 14.4-12-3.3-19.3-15.2-17.2-27.2l.5-2.4 36.2-130.5-37.2-37.2C351 406 308.4 448 256 448s-95-42-96-94.1l-37 37 36 122.3 .6 2.4c2.2 11.9-4.9 23.9-16.8 27.4-11.9 3.5-24.4-2.7-29-13.9l-.8-2.3-40-136c-2.5-8.4-.1-17.5 6.1-23.8l64.1-64.1-76.4 20.8-19.9 59.8-.9 2.3c-5 11.1-17.7 16.8-29.5 12.9s-18.5-16.1-15.8-28l.7-2.4 24-72c2.5-7.6 8.7-13.4 16.5-15.6l91.1-24.8-91.1-24.8c-7.7-2.1-13.9-8-16.5-15.6l-24-72-.7-2.4c-2.7-11.9 4.1-24.1 15.8-28s24.5 1.8 29.5 12.9l.9 2.3 19.9 59.8 76.4 20.8-64.1-64.1c-6.2-6.2-8.5-15.3-6.1-23.7l40-136 .8-2.3c4.6-11.3 17.1-17.4 29-13.9 11.9 3.5 19 15.5 16.8 27.4l-.6 2.4-36 122.3 53 53c1-43.3 36.4-78.1 79.9-78.1s78.9 34.8 79.9 78.2l53.1-53.1-36-122.3-.6-2.4c-2.2-12 4.9-23.9 16.8-27.4z"],"mobile-retro":[384,512,[],"e527","M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm80 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32zm8 192a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zM168 40c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z"],"signs-post":[512,512,["map-signs"],"f277","M256.4 0c-17.7 0-32 14.3-32 32l0 32-160 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 0 64-153.4 0c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7l153.4 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0 0-64 153.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7l-153.4 0 0-32c0-17.7-14.3-32-32-32z"],"group-arrows-rotate":[512,512,[],"e4f6","M37.6 122.3c-11.5 18.7-20.6 39-27 60.5-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c18.4-61.9 67.3-110.8 129.2-129.2 16.9-5 26.6-22.9 21.5-39.8S199.8 5.6 182.9 10.6C161.4 17 141.1 26.1 122.3 37.6 112.3 15.4 89.9 0 64 0 28.7 0 0 28.7 0 64 0 89.9 15.4 112.3 37.6 122.3zm436.7 0c22.2-10 37.6-32.4 37.6-58.3 0-35.3-28.7-64-64-64-25.9 0-48.3 15.4-58.3 37.6-18.7-11.5-39-20.6-60.5-27-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c61.9 18.4 110.8 67.3 129.2 129.2 5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.5zM512 448c0-25.9-15.4-48.3-37.6-58.3 11.5-18.7 20.6-39 27-60.5 5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-18.4 61.9-67.3 110.8-129.2 129.2-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.5-27 10 22.2 32.4 37.6 58.3 37.6 35.3 0 64-28.7 64-64zM37.6 389.7c-22.2 10-37.6 32.4-37.6 58.3 0 35.3 28.7 64 64 64 25.9 0 48.3-15.4 58.3-37.6 18.7 11.5 39 20.6 60.5 27 16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-61.9-18.4-110.8-67.3-129.2-129.2-5-16.9-22.9-26.6-39.8-21.5S5.6 312.2 10.6 329.1c6.4 21.5 15.5 41.8 27 60.5zM256 192c15.6 0 30 5.6 41.1 14.9l-15.3 15.3c-6.6 6.6-1.9 17.8 7.4 17.8l60.5 0c5.7 0 10.4-4.7 10.4-10.4l0-60.5c0-9.3-11.2-13.9-17.8-7.4l-11.2 11.2c-19.8-17.9-46.2-28.9-75.1-28.9-43.6 0-81.3 24.9-99.8 61.1-6 11.8-1.4 26.3 10.4 32.3s26.3 1.4 32.3-10.4c10.6-20.8 32.2-34.9 57-34.9zm58.6 93.1c-10.6 20.8-32.2 34.9-57 34.9-15.7 0-30-5.6-41.1-14.9l15.3-15.3c6.6-6.6 1.9-17.8-7.4-17.8L164 272c-5.7 0-10.4 4.7-10.4 10.4l0 60.5c0 9.3 11.2 13.9 17.8 7.4l11.2-11.2c19.8 17.9 46.2 28.9 75.1 28.9 43.6 0 81.3-24.9 99.8-61.1 6-11.8 1.4-26.3-10.4-32.3s-26.3-1.4-32.3 10.4z"],"arrows-split-up-and-left":[512,512,[],"e4bc","M342.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l41.4-41.4 0 195.9c-18.8-10.9-40.7-17.1-64-17.1l-114.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 320 224 320c35.3 0 64 28.7 64 64 0 70.7 57.3 128 128 128l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-35.3 0-64-28.7-64-64l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z"],"fill-drip":[576,512,[],"f576","M309.7 71.6l-64.4 64.4 33.4 33.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-33.4-33.4-96.4 96.4c-2.9 2.9-5.1 6.5-6.3 10.3l321.5 0 53.7-53.7c4.9-4.9 7.6-11.5 7.6-18.3s-2.7-13.5-7.6-18.3L346.3 71.6C341.5 66.7 334.9 64 328 64s-13.5 2.7-18.3 7.6zM58.3 232.4l96.4-96.4-49.4-49.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L200 90.7 264.4 26.3C281.3 9.5 304.1 0 328 0s46.7 9.5 63.6 26.3L517.7 152.4C534.5 169.3 544 192.1 544 216s-9.5 46.7-26.3 63.6L311.6 485.7C294.7 502.5 271.9 512 248 512s-46.7-9.5-63.6-26.3L58.3 359.6C41.5 342.7 32 319.9 32 296s9.5-46.7 26.3-63.6zM512 544c-35.3 0-64-28.7-64-64 0-25.2 32.6-79.6 51.2-108.7 6-9.4 19.5-9.4 25.5 0 18.7 29.1 51.2 83.5 51.2 108.7 0 35.3-28.7 64-64 64z"],"shield-heart":[512,512,[],"e574","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM249.6 183.5l6.4 8.5 6.4-8.5c11.1-14.8 28.5-23.5 46.9-23.5 32.4 0 58.7 26.3 58.7 58.7l0 5.3c0 49.1-65.8 98.1-96.5 118.3-9.5 6.2-21.5 6.2-30.9 0-30.7-20.2-96.5-69.3-96.5-118.3l0-5.3c0-32.4 26.3-58.7 58.7-58.7 18.5 0 35.9 8.7 46.9 23.5z"],"person-skiing-nordic":[576,512,["skiing-nordic"],"f7ca","M424.8 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm99.8 193.7c7.6 15.2 1.9 33.6-12.6 42l0 180.3-32 0 0-164.2-10.1 5c-27.4 13.7-60.7 6.1-79.4-18.2l-19.6-25.5-39.5 68.8 24.8 12.4c29.5 14.7 42.9 49.5 31.1 80.2l-28.2 73.4 149.4 0c7.9 0 15.6-2.3 22.2-6.7l7.9-5.3c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-7.9 5.3C543 506.9 526 512 508.6 512l-189.1 0c-.5 0-1 0-1.5 0L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l88 0c0-8.2 3.1-16.4 9.4-22.6l74.1-74.1 10.2-35.9c11.3 18.3 27.7 33.8 48.4 44.2l4.8 2.4-1.9 6.8c-3 10.5-8.6 20-16.3 27.7l-51.5 51.5 101.3 0 37.1-96.4-55.6-27.8C230.4 319 215.3 267 239.3 227.1l37.7-62.7-27.7-7.7c-9-2.5-18.1 3.2-20 12.3l-5.9 29.3c-3.1 15.6-17.1 26.3-32.5 25.7l-130 208-37.7 0 140.6-225c-3.4-6.3-4.6-13.8-3.1-21.3l5.9-29.3c9.1-45.6 55.1-73.8 99.9-61.4l32.5 9c46.7 13 88 40.8 117.6 79.3l24.9 32.3 40.4-20.2c15.8-7.9 35-1.5 42.9 14.3z"],"square-check":[448,512,[9745,9989,61510,"check-square"],"f14a","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM342 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 315.2 137 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z"],bath:[512,512,[128705,"bathtub"],"f2cd","M96 77.3c0-7.3 5.9-13.3 13.3-13.3 3.5 0 6.9 1.4 9.4 3.9l14.9 14.9c-3.6 9.1-5.5 18.9-5.5 29.2 0 19.9 7.2 38 19.2 52-5.3 9.2-4 21.1 3.8 29 9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9-7.8-7.9-19.8-9.1-29-3.8-14-12-32.1-19.2-52-19.2-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0 66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 48c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-48c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3z"],"chess-bishop":[320,512,[9821],"f43a","M64 384L48.3 368.3C17.4 337.4 0 295.4 0 251.7 0 213.1 13.5 175.8 38.2 146.1L106.7 64 96 64C78.3 64 64 49.7 64 32S78.3 0 96 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 47.6 57.1-85.9 85.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l82.3-82.3c18.7 27.3 28.7 59.7 28.7 93 0 43.7-17.4 85.7-48.3 116.6L256 384 312.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L35.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L64 384z"],"prescription-bottle-medical":[384,512,["prescription-bottle-alt"],"f486","M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zM160 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"],"draw-polygon":[512,512,[58055,"vector-polygon"],"f5ee","M64 0c23.7 0 44.4 12.9 55.4 32l273.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 34-26.5 61.8-60 63.9l-2.1 2.9-71.5 99.1c3.6 8 5.6 16.9 5.6 26.2s-2 18.2-5.6 26.2l2.2 3.1 69.3 96 2.1 2.9c33.5 2.1 60 29.9 60 63.9 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-273.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0zM394.2 413.4l-65.5-90.6-2.2-3.1c-2.1 .2-4.3 .3-6.5 .3-35.3 0-64-28.7-64-64s28.7-64 64-64c2.2 0 4.4 .1 6.5 .3l67.7-93.7c-.6-.9-1.1-1.7-1.6-2.6L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l273.1 0c.5-.9 1.1-1.8 1.6-2.6z"],"i-cursor":[256,512,[],"f246","M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3l0 95.7-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7S17 513.4 34.7 511.9l8-.7c34.1-2.8 64.2-18.9 85.4-42.9 21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7c-34.1 2.8-64.2 18.9-85.4 42.9-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z"],"heart-circle-plus":[576,512,[],"e500","M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z"],"shield-dog":[512,512,[],"e573","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8 35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7l7.2 14.3 64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4 0-2.8 .6-5.5 1.9-8l15-30zM160 160l48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"],"greater-than-equal":[448,512,[],"f532","M21.9 94.4C5.1 88.8-3.9 70.6 1.7 53.9S25.4 28.1 42.1 33.6l384 128C439.2 166 448 178.2 448 192s-8.8 26-21.9 30.4l-384 128c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5L314.8 192 21.9 94.4zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z"],"envelope-open":[512,512,[62135],"f2b6","M64.4 175.8L256 33.9 447.6 175.8 289.5 293c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64.4 175.8zM256-32c-12.1 0-23.8 3.9-33.5 11L25.9 124.7C9.6 136.8 0 155.8 0 176.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5-21c-9.7-7.2-21.4-11-33.5-11z"],mound:[512,512,[],"e52d","M112.4 179.2C142 127.7 196.8 96 256.2 96s114.2 31.7 143.9 83.2L508.7 368c12.3 21.3-3.1 48-27.7 48L31.5 416c-24.6 0-40-26.6-27.7-48L112.4 179.2z"],voicemail:[640,512,[],"f897","M144 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM263.8 320c15.3-22.9 24.2-50.4 24.2-80 0-79.5-64.5-144-144-144S0 160.5 0 240 64.5 384 144 384l352 0c79.5 0 144-64.5 144-144S575.5 96 496 96 352 160.5 352 240c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z"],vest:[448,512,[],"e085","M200 464l0-170.1c0-3.9-.5-7.8-1.4-11.6L144.4 65.4C162.1 77.2 188.2 88 224 88s61.9-10.8 79.6-22.6L249.4 282.3c-1 3.8-1.4 7.7-1.4 11.6L248 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6L384 48c0-26.5-21.5-48-48-48l-3.5 0c-.3 0-.6 0-1 0-.6 0-1.2 0-1.8 0-18.8 0-34.1 9.7-44.1 18.8-9.3 8.4-28.5 21.2-61.7 21.2s-52.4-12.8-61.7-21.2c-10-9.1-25.3-18.8-44.1-18.8-.6 0-1.2 0-1.8 0-.3 0-.6 0-1 0L112 0C85.5 0 64 21.5 64 48l0 97.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48z"],"audio-description":[512,512,[],"f29e","M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm96 96l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 48 0 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-35.3-28.7-64-64-64l-16 0c-35.3 0-64 28.7-64 64zm48 32l0-32c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 32-48 0zm152-96c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24l48 0c39.8 0 72-32.2 72-72l0-48c0-39.8-32.2-72-72-72l-48 0zm48 144l-24 0 0-96 24 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24z"],w:[576,512,[119],"57","M20.8 34c16.5-6.2 35 2.2 41.2 18.7L172.2 346.7 257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23L403.8 346.7 514 52.8c6.2-16.5 24.6-24.9 41.2-18.7S580.2 58.7 574 75.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z"],"eye-dropper":[512,512,["eye-dropper-empty","eyedropper"],"f1fb","M341.6 29.2l-101.6 101.6-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 101.6-101.6c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4-26.6 39.9c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4l39.9-26.6 42.4 0c21.2 0 41.6-8.4 56.6-23.4l109.4-109.4-45.3-45.3-109.4 109.4c-3 3-7.1 4.7-11.3 4.7l-36.1 0 0-36.1c0-4.2 1.7-8.3 4.7-11.3l109.4-109.4-45.3-45.3-109.4 109.4z"],"circle-xmark":[512,512,[61532,"times-circle","xmark-circle"],"f057","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z"],trailer:[640,512,[],"e041","M32 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zm408 16c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM112 136l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm176-24c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM264 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z"],"turkish-lira-sign":[448,512,["try","turkish-lira"],"e2bb","M160 32c17.7 0 32 14.3 32 32l0 43.6 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 46.1 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 162.5 72 0c53 0 96-43 96-96 0-17.7 14.3-32 32-32s32 14.3 32 32c0 88.4-71.6 160-160 160l-104 0c-17.7 0-32-14.3-32-32l0-176.2-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-46.1-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-61.9c0-17.7 14.3-32 32-32z"],volcano:[512,512,[127755],"f770","M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15 11.2-18.6 31.6-31 54.8-31s43.6 12.4 54.8 31c11.1-9.4 25.5-15 41.2-15 35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8 19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9 11.3 0 21.8-5.6 28-15l9.7-14.6-59-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4 4.7-3.5zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7 0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8 0 447.1 4.7 434.7 13.2 425.2l150.2-169z"],"wand-sparkles":[512,512,[],"f72b","M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9c-6.3 7.1-15.3 11.1-24.8 11.1-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7c-6.2-6.2-9.7-14.7-9.7-23.5 0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z"],microphone:[384,512,[],"f130","M192 0C139 0 96 43 96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96zM48 184c0-13.3-10.7-24-24-24S0 170.7 0 184l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c94.7-11.8 168-92.6 168-190.5l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 79.5-64.5 144-144 144S48 303.5 48 224l0-40z"],crown:[576,512,[128081],"f521","M313 87.2c9.2-7.3 15-18.6 15-31.2 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 12.6 5.9 23.9 15 31.2L194.6 194.8c-10 15.7-31.3 19.6-46.2 8.4L88.9 158.7c4.5-6.4 7.1-14.3 7.1-22.7 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 21.8 17.5 39.6 39.2 40L87.8 393.5c4.7 31.3 31.6 54.5 63.3 54.5l273.8 0c31.7 0 58.6-23.2 63.3-54.5L520.8 176c21.7-.4 39.2-18.2 39.2-40 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 8.4 2.6 16.3 7.1 22.7l-59.4 44.6c-14.9 11.2-36.2 7.3-46.2-8.4L313 87.2z"],"tent-arrow-turn-left":[512,512,[],"e580","M-.5 113l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 350.1 0c22.1 0 40 17.9 40 40l0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24c0-48.6-39.4-88-88-88l-350.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9S80.9-2.3 71.5 7L-.5 79c-9.4 9.4-9.4 24.6 0 33.9zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z"],"truck-fast":[640,512,["shipping-fast"],"f48b","M64 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L621.3 192c12 12 18.7 28.3 18.7 45.3L640 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-3.3 0c-35.3 0-64-28.7-64-64l0-48-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 144c-13.3 0-24-10.7-24-24S10.7 96 24 96l40 0zM576 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM256 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"],"user-pen":[640,512,["user-edit"],"f4ff","M256.1 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56c-98.5 0-178.3 79.8-178.3 178.3 0 16.4 13.3 29.7 29.7 29.7l196.5 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l67.3-67.3c-28-18.3-61.4-28.9-97.4-28.9l-59.4 0zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z"],"user-clock":[576,512,[],"f4fd","M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c3.9 0 7.9 .1 11.8 .4-16.2 28.2-25.5 60.8-25.5 95.6 0 41.8 13.4 80.5 36 112L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z"],shower:[512,512,[128703],"f2cc","M64 131.9c0-19.8 16.1-35.9 35.9-35.9 9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.1-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32 44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"square-caret-up":[448,512,["caret-square-up"],"f151","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9S337.5 320 328 320l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z"],"map-location":[640,512,["map-marked"],"f59f","M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM392 341.9c0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9S392 276.8 392 341.9z"],"pen-fancy":[512,512,[128395,10002],"f5ac","M373.5 27.1c15-17.2 36.7-27.1 59.6-27.1 43.6 0 79 35.4 79 79 0 22.8-9.9 44.6-27.1 59.6L283.7 313.8 273 303 209 239 198.2 228.3 373.5 27.1zM161.1 259C162 260 188 286 239 337l13.9 13.9-17.1 74.2c-3.9 17.1-16.9 30.7-33.8 35.4l-169.8 47.5 92.3-92.3c1.2 .1 2.3 .2 3.5 .2 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 1.2 .1 2.4 .2 3.5L3.9 479.8 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8L161.1 259z"],"euro-sign":[448,512,[8364,"eur","euro"],"f153","M73.3 192C100.8 99.5 186.5 32 288 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-65.6 0-122 39.5-146.7 96L272 192c13.3 0 24 10.7 24 24s-10.7 24-24 24l-143.2 0c-.5 5.3-.8 10.6-.8 16s.3 10.7 .8 16L272 272c13.3 0 24 10.7 24 24s-10.7 24-24 24l-130.7 0c24.7 56.5 81.1 96 146.7 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-101.5 0-187.2-67.5-214.7-160L40 320c-13.3 0-24-10.7-24-24s10.7-24 24-24l24.6 0c-.7-10.5-.7-21.5 0-32L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l33.3 0z"],"house-circle-xmark":[640,512,[],"e50b","M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.2 47.2-175.9 114.8-5-1.8-10.5-2.8-16.1-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 90.9 0c6.1 17.3 14.6 33.4 25.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM555.3 340.7c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7c6.2-6.2 6.2-16.4 0-22.6z"],"lira-sign":[384,512,[8356],"f195","M84.9 256l-28.4 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11.6 0C53.2 124.7 116.8 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-53.8 0-90.1 52.9-73.5 102l162.4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-145.1 0c2.3 10.6 3.6 21.3 3.9 32l141.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L150 336c-4.8 18.6-12.6 36.5-23.6 52.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c3.7-5.6 6.9-11.4 9.4-17.4l-26 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l34.8 0c-.5-10.8-2.6-21.6-6.4-32z"],"yen-sign":[384,512,[165,"cny","jpy","rmb","yen"],"f157","M74.9 46.7c-9.6-14.9-29.4-19.2-44.2-9.6S11.5 66.4 21.1 81.3L143.7 272 88 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 32-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-32 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-55.7 0 122.6-190.7c9.6-14.9 5.3-34.7-9.6-44.2s-34.7-5.3-44.2 9.6L192 228.8 74.9 46.7z"],"box-open":[640,512,[],"f49e","M560.3 237.2c10.4 11.8 28.3 14.4 41.8 5.5 14.7-9.8 18.7-29.7 8.9-44.4l-48-72c-2.8-4.2-6.6-7.7-11.1-10.2L351.4 4.7c-19.3-10.7-42.8-10.7-62.2 0L88.8 116c-5.4 3-9.7 7.4-12.6 12.8L27.7 218.7c-12.6 23.4-3.8 52.5 19.6 65.1l33 17.7 0 53.3c0 23 12.4 44.3 32.4 55.7l176 99.7c19.6 11.1 43.5 11.1 63.1 0l176-99.7c20.1-11.4 32.4-32.6 32.4-55.7l0-117.5zm-240-9.8L170.2 144 320.3 60.6 470.4 144 320.3 227.4zm-41.5 50.2l-21.3 46.2-165.8-88.8 25.4-47.2 161.7 89.8z"],"truck-field":[640,512,[],"e58d","M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l40.4 0c32.4 0 61.6 19.6 74 49.5l43.8 106.3 1.7 4.2 24.7 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8l-144.7 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-3.6 .2-7.1 .6-10.5-19-6.4-32.6-24.4-32.6-45.5l0-48c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zm352 32l0 96 82.1 0-35.4-86.1c-2.5-6-8.3-9.9-14.8-9.9L384 128zM192 392a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm280 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"],"location-pin-lock":[512,512,[],"e51f","M0 188.6C0 84.4 86 0 192 0 294.1 0 377.6 78.3 383.6 177 320.7 185.1 272 238.8 272 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 75.7c-9.9 11.6-18.9 21.7-26.4 29.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm240 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM288 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z"],"person-praying":[384,512,[128720,"pray"],"f683","M320 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM200.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36c-15.6-21.5-40.6-34.2-67.2-34.2-30.9 0-59.2 17.1-73.6 44.4L47.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L126.6 432 40 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7l-116.1-85.8 45-90z"],"clipboard-list":[384,512,[],"f46d","M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32 0c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zm0 128c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM96 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"sack-dollar":[512,512,[128176],"f81d","M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM260 224c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L216 384c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z"],"mountain-sun":[576,512,[],"e52f","M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4zM496.5 160a80 80 0 1 1 0-160 80 80 0 1 1 0 160z"],"arrow-up-wide-short":[576,512,["sort-amount-up"],"f161","M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z"],"users-line":[576,512,[],"e592","M224 128a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 336c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8zM392 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0c-18.2 26-28.8 57.5-28.8 91.6l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 368 32 358.4 32 346.7L32 336c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM0 440c0-13.3 10.7-24 24-24l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 464c-13.3 0-24-10.7-24-24z"],"star-of-david":[512,512,[10017],"f69a","M415.9 311.9l-27.8 48.1 55.7 0-27.8-48.1zM383.6 256l-60.2-104-134.8 0-60.2 104 60.2 104 134.8 0 60.2-104zm64.7 0l58.4 100.9c3.5 6 5.3 12.8 5.3 19.7 0 21.7-17.6 39.4-39.4 39.4l-117 0-61.3 105.8C286.5 535.6 271.8 544 256 544s-30.5-8.4-38.4-22.2l-61.3-105.8-117 0c-21.7 0-39.4-17.6-39.4-39.4 0-6.9 1.8-13.7 5.3-19.7L63.7 256 5.3 155.1C1.8 149.1 0 142.3 0 135.4 0 113.6 17.6 96 39.4 96l117 0 61.3-105.8C225.5-23.6 240.2-32 256-32s30.5 8.4 38.4 22.2l61.3 105.8 117 0c21.7 0 39.4 17.6 39.4 39.4 0 6.9-1.8 13.7-5.3 19.7L448.3 256zM388.1 152l27.8 48.1 27.8-48.1-55.7 0zM291 96l-35-60.4-35 60.4 70 0zM123.9 152l-55.7 0 27.8 48.1 27.8-48.1zM96.1 311.9l-27.8 48.1 55.7 0-27.8-48.1zM221 416l35 60.4 35-60.4-70 0z"],"notes-medical":[512,512,[],"f481","M96 352c0 35.3 28.7 64 64 64l181.5 0c17 0 33.3-6.7 45.3-18.7L493.3 290.7c12-12 18.7-28.3 18.7-45.3L512 64c0-35.3-28.7-64-64-64L160 0C124.7 0 96 28.7 96 64l0 288zM288 112l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 448c0 35.3 28.7 64 64 64l264 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 464c-8.8 0-16-7.2-16-16l0-328z"],"austral-sign":[448,512,[],"e0a9","M266.5 240l-85 0 42.5-106.4 42.5 106.4zm68.9 0L262.9 58.3C256.5 42.4 241.1 32 224 32s-32.5 10.4-38.9 26.3L112.6 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l61.4 0-19.2 48-42.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l23.1 0-20.8 52.1c-6.6 16.4 1.4 35 17.9 41.6s35-1.4 41.6-17.9l30.3-75.9 200 0 30.3 75.9c6.6 16.4 25.2 24.4 41.6 17.9s24.4-25.2 17.9-41.6L392.9 384 416 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-42.3 0-19.2-48 61.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80.6 0zm-49.7 48l19.2 48-161.6 0 19.2-48 123.3 0z"],"clipboard-user":[384,512,[],"f7f3","M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 344a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM98.3 413c-12.9 15.6 2.2 35 22.4 35l142.5 0c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29z"],"file-image":[384,512,[128443],"f1c5","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM92.6 448l198.8 0c15.8 0 28.6-12.8 28.6-28.6 0-7.3-2.8-14.4-7.9-19.7L215.3 297.9c-6-6.3-14.4-9.9-23.2-9.9l-.3 0c-8.8 0-17.1 3.6-23.2 9.9L71.9 399.7C66.8 405 64 412.1 64 419.4 64 435.2 76.8 448 92.6 448z"],"square-caret-right":[448,512,["caret-square-right"],"f152","M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4S160 369.5 160 360l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z"],vial:[512,512,[129514],"f492","M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L306.7 64 28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1l278.6-278.6 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zM205.3 256l146.7-146.7 50.7 50.7-96 96-101.5 0z"],helicopter:[576,512,[128641],"f533","M176 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0 0 48-220.8 0-32.8-39.4C69.9 83.2 63.1 80 56 80L24 80C15.7 80 8 84.3 3.6 91.4s-4.8 15.9-1.1 23.4l48 96C54.6 218.9 62.9 224 72 224l107.8 0 104 143.1c15.1 20.7 39.1 32.9 64.7 32.9l75.5 0c75.1 0 136-60.9 136-136S499.1 128 424 128l-48 0 0-48 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L176 32zM376 192l48 0c39.8 0 72 32.2 72 72s-32.2 72-72 72l-48 0 0-144zM552 416c-13.3 0-24 10.7-24 24 0 4.4-3.6 8-8 8l-272 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24z"],mitten:[448,512,[],"f7b5","M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3 0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3 0 15.9-6 31.2-16.8 42.9L352 384zM32 464c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 16c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-16z"],"gas-pump":[512,512,[9981],"f52f","M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-59.5-25.8-28.3c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l71.7 78.8c9.4 10.3 14.6 23.7 14.6 37.7L512 376c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 161.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z"],"envelope-circle-check":[640,512,[],"e4e8","M64 112c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 81.4c-24.4-11.2-51.4-17.4-80-17.4-87.7 0-161.7 58.8-184.7 139.2-7.1-1.3-14.1-4.2-20.1-8.8l-208-156C71.1 141.3 64 127.1 64 112zM304 368c0 28.6 6.2 55.6 17.4 80L128 448c-35.3 0-64-28.7-64-64l0-188 198.4 148.8c12.6 9.4 26.9 15.4 41.7 17.9 0 1.8-.1 3.5-.1 5.3zm48 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z"],"person-skating":[512,512,["skating"],"f7c5","M368 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM128 128c0-17.7 14.3-32 32-32l150.1 0c49.9 0 74.9 60.3 39.6 95.6l-63.9 63.9 69.8 31c17.3 7.7 28.5 24.9 28.5 43.9l0 85.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-75.2-82.4-36.6c-41-18.2-51-72-19.3-103.7l40.4-40.4-98.7 0c-17.7 0-32-14.3-32-32zM89.4 361.4l75.9-75.9c7.7 19.7 21.6 37.3 41 49.6l-71.6 71.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm346.5 87.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM143.2 486.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L12.7 419.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z"],sun:[576,512,[9728],"f185","M178.2-10.1c7.4-3.1 15.8-2.2 22.5 2.2l87.8 58.2 87.8-58.2c6.7-4.4 15.1-5.2 22.5-2.2S411.4-.5 413 7.3l20.9 103.2 103.2 20.9c7.8 1.6 14.4 7 17.4 14.3s2.2 15.8-2.2 22.5l-58.2 87.8 58.2 87.8c4.4 6.7 5.2 15.1 2.2 22.5s-9.6 12.8-17.4 14.3L433.8 401.4 413 504.7c-1.6 7.8-7 14.4-14.3 17.4s-15.8 2.2-22.5-2.2l-87.8-58.2-87.8 58.2c-6.7 4.4-15.1 5.2-22.5 2.2s-12.8-9.6-14.3-17.4L143 401.4 39.7 380.5c-7.8-1.6-14.4-7-17.4-14.3s-2.2-15.8 2.2-22.5L82.7 256 24.5 168.2c-4.4-6.7-5.2-15.1-2.2-22.5s9.6-12.8 17.4-14.3L143 110.6 163.9 7.3c1.6-7.8 7-14.4 14.3-17.4zM207.6 256a80.4 80.4 0 1 1 160.8 0 80.4 80.4 0 1 1 -160.8 0zm208.8 0a128.4 128.4 0 1 0 -256.8 0 128.4 128.4 0 1 0 256.8 0z"],baseball:[512,512,[129358,9918,"baseball-ball"],"f433","M232.4 1.1c-122.2 11.4-219.5 108.7-230.9 230.9 16.2-.1 32-1.8 47.2-5 13-2.7 25.7 5.5 28.4 18.5s-5.5 25.7-18.5 28.4c-18.4 3.9-37.6 6-57.1 6.1 11.4 122.2 108.7 219.5 230.9 230.9 .1-19.5 2.2-38.7 6.1-57.1 2.7-13 15.5-21.3 28.4-18.5s21.3 15.5 18.5 28.4c-3.2 15.2-4.9 31-5 47.2 122.2-11.4 219.5-108.7 230.9-230.9-16.2 .1-32 1.8-47.2 5-13 2.7-25.7-5.5-28.4-18.5s5.5-25.7 18.5-28.4c18.4-3.9 37.6-6 57.1-6.1-11.4-122.2-108.7-219.5-230.9-230.9-.1 19.5-2.2 38.7-6.1 57.1-2.7 13-15.5 21.3-28.4 18.5s-21.3-15.5-18.5-28.4c3.2-15.2 4.9-31 5-47.2zm2.8 151.4c-21.4 32.9-49.5 60.9-82.3 82.3-11.1 7.2-26 4.1-33.2-7s-4.1-26 7-33.2c27.2-17.7 50.5-41 68.3-68.3 7.2-11.1 22.1-14.3 33.2-7s14.3 22.1 7 33.2zM393.1 284.2c7.2 11.1 4.1 26-7 33.2-27.2 17.7-50.5 41-68.3 68.3-7.2 11.1-22.1 14.3-33.2 7s-14.3-22.1-7-33.2c21.4-32.9 49.5-60.9 82.3-82.3 11.1-7.2 26-4.1 33.2 7z"],image:[448,512,[],"f03e","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 80a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM272 224c8.4 0 16.1 4.4 20.5 11.5l88 144c4.5 7.4 4.7 16.7 .5 24.3S368.7 416 360 416L88 416c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l26.4 37.8 61.4-100.5c4.4-7.1 12.1-11.5 20.5-11.5z"],notdef:[384,512,[],"e1fe","M64 390.3L153.5 256 64 121.7 64 390.3zM102.5 448L281.5 448 192 313.7 102.5 448zm128-192L320 390.3 320 121.7 230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z"],basketball:[512,512,[127936,"basketball-ball"],"f434","M92.7 58.8l78.4 78.4c18.2-25 28.9-55.9 28.9-89.2 0-14.1-1.9-27.7-5.5-40.6-38 9.4-72.6 27.2-101.8 51.4zM58.8 92.7c-24.2 29.2-42 63.8-51.4 101.8 12.9 3.6 26.5 5.5 40.6 5.5 33.3 0 64.1-10.7 89.2-28.9L58.8 92.7zM256 0c-4.6 0-9.2 .1-13.7 .4 3.7 15.3 5.7 31.2 5.7 47.6 0 46.6-15.9 89.4-42.6 123.4L256 222.1 419.3 58.8C374.9 22.1 318.1 0 256 0zM48 248c-16.4 0-32.4-2-47.6-5.7-.2 4.5-.4 9.1-.4 13.7 0 62.1 22.1 118.9 58.8 163.3L222.1 256 171.4 205.4C137.4 232.1 94.6 248 48 248zm463.6 21.7c.2-4.5 .4-9.1 .4-13.7 0-62.1-22.1-118.9-58.8-163.3L289.9 256 340.6 306.6c34-26.7 76.9-42.6 123.4-42.6 16.4 0 32.4 2 47.6 5.7zm-7.1 47.8c-12.9-3.6-26.5-5.5-40.6-5.5-33.3 0-64.1 10.7-89.2 28.9l78.4 78.4c24.2-29.2 42-63.8 51.4-101.8zM340.9 374.8c-18.2 25-28.9 55.9-28.9 89.2 0 14.1 1.9 27.7 5.5 40.6 38-9.4 72.6-27.2 101.8-51.4l-78.4-78.4zm-34.3-34.3L256 289.9 92.7 453.2c44.3 36.7 101.2 58.8 163.3 58.8 4.6 0 9.2-.1 13.7-.4-3.7-15.3-5.7-31.2-5.7-47.6 0-46.6 15.9-89.4 42.6-123.4z"],pencil:[512,512,[9999,61504,"pencil-alt"],"f303","M36.4 353.2c4.1-14.6 11.8-27.9 22.6-38.7l181.2-181.2 33.9-33.9c16.6 16.6 51.3 51.3 104 104l33.9 33.9-33.9 33.9-181.2 181.2c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 510.6c-8.3 2.3-17.3 0-23.4-6.2S-1.4 489.3 .9 481L36.4 353.2zm55.6-3.7c-4.4 4.7-7.6 10.4-9.3 16.6l-24.1 86.9 86.9-24.1c6.4-1.8 12.2-5.1 17-9.7L91.9 349.5zm354-146.1c-16.6-16.6-51.3-51.3-104-104L308 65.5C334.5 39 349.4 24.1 352.9 20.6 366.4 7 384.8-.6 404-.6S441.6 7 455.1 20.6l35.7 35.7C504.4 69.9 512 88.3 512 107.4s-7.6 37.6-21.2 51.1c-3.5 3.5-18.4 18.4-44.9 44.9z"],"person-walking-arrow-loop-left":[640,512,[],"e551","M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM359 335c-9.4 9.4-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 102.1 0c1.2 0 2.4-.1 3.5-.3 56.1-3.9 100.5-50.6 100.5-107.7 0-59.6-48.4-108-108-108l-92 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l92 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-98.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-72 72z"],"dice-six":[448,512,[9861],"f526","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"angles-down":[384,512,["angle-double-down"],"f103","M214.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 402.7 329.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 210.7 329.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z"],syringe:[576,512,[128137],"f48e","M497.5-17c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l15 15-46.1 46.1-63-63c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l7 7-78.1 78.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-46.1 46.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-37.7 37.7c-10.5 10.5-16.4 24.7-16.4 39.6l0 88.8-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 88.8 0c14.9 0 29.1-5.9 39.6-16.4l229.7-229.7 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 46.1-46.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z"],"wheat-awn":[576,512,["wheat-alt"],"e2cd","M79.7 234.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0L134.1 444.3 49.4 529c-9.4 9.4-24.5 9.4-33.9 0-9.4-9.4-9.4-24.6 0-33.9l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zm104-104c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM495.2 15c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.2L529.2 49 414.7 163.4c7.7 1 15.2 3 22.5 5.9L495.5 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-58.3 58.3c2.8 7.1 4.7 14.5 5.7 22.1L495.2 15z"],"plane-up":[512,512,[],"e22d","M200 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 173.6 159.2c6.6 6.1 10.4 14.6 10.4 23.6l0 43.7c0 10.9-10.7 18.6-21.1 15.2l-162.9-54.3 0 99.7 66 52.8c3.8 3 6 7.6 6 12.5l0 19.8c0 10.4-9.8 18-19.9 15.5L256 512 147.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C26.7 396.4 16 388.7 16 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L200 151.3 200 24z"],"align-center":[448,512,[],"f037","M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z"],"hockey-puck":[512,512,[],"f453","M256 256C114.6 256 0 213 0 160s114.6-96 256-96 256 43 256 96-114.6 96-256 96zM0 352L0 242.7c16.9 12.3 37 22.2 58.1 30.1 53 19.9 123 31.2 197.9 31.2s144.9-11.3 197.9-31.2c21.2-7.9 41.2-17.8 58.1-30.1L512 352c0 53-114.6 96-256 96S0 405 0 352z"],"circle-arrow-left":[512,512,["arrow-circle-left"],"f0a8","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM135 239l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-39 39 150.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-150.1 0 39 39c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9z"],"plug-circle-bolt":[640,512,[],"e55b","M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S433.2 416 440 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S558.8 384 552 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z"],restroom:[640,512,[],"f7bd","M80 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C44.4 156.9 83.6 128 128 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z"],"anchor-lock":[640,512,[],"e4ad","M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 28.3 0 55.4-5.7 80-15.9l0-.2 0-72.2c-14.4 9.6-30.6 16.7-48 20.7l0-257.9c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm272 304.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416.5 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z"],timeline:[576,512,[],"e29c","M160 169.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3l0 54.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 0 54.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-256 0 0-54.7z"],lightbulb:[384,512,[128161],"f0eb","M292.9 384c7.3-22.3 21.9-42.5 38.4-59.9 32.7-34.4 52.7-80.9 52.7-132.1 0-106-86-192-192-192S0 86 0 192c0 51.2 20 97.7 52.7 132.1 16.5 17.4 31.2 37.6 38.4 59.9l201.7 0zM288 432l-192 0 0 16c0 44.2 35.8 80 80 80l32 0c44.2 0 80-35.8 80-80l0-16zM184 112c-39.8 0-72 32.2-72 72 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3 53.7-120 120-120 13.3 0 24 10.7 24 24s-10.7 24-24 24z"],"circle-arrow-right":[512,512,["arrow-circle-right"],"f0a9","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm41-159c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39-150.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l150.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80z"],"mars-and-venus":[512,512,[9893],"f224","M368 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7-63 63c19.5 28.4 31 62.7 31 99.8 0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-81.9-15-144-86.8-144-173.1 0-97.2 78.8-176 176-176 37 0 71.4 11.4 99.8 31l63-63-34.7 0zM352 208a112 112 0 1 0 -224 0 112 112 0 1 0 224 0z"],"network-wired":[576,512,[],"f6ff","M248 88l80 0 0 48-80 0 0-48zm-8-56c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l16 0 0 32-224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 192 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-32 16 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-96 0zM448 376l8 0 0 48-80 0 0-48 72 0zm-256 0l8 0 0 48-80 0 0-48 72 0z"],"building-shield":[576,512,[],"e4d8","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0c-12.5-14.7-23.2-30.8-31.8-48l-89.5 0 0-80c0-17.7 14.3-32 32-32l32 0 0-26.7c0-18.1 6.1-35.2 16.6-48.8-.4-1.4-.6-2.9-.6-4.5l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 1 86.7-28.9c3.1-1 6.2-1.8 9.3-2.5L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM445.3 488.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z"],code:[576,512,[],"f121","M360.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm64.6 136.1c-12.5 12.5-12.5 32.8 0 45.3l73.4 73.4-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0zm-274.7 0c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 150.6 182.6c12.5-12.5 12.5-32.8 0-45.3z"],"feather-pointed":[512,512,["feather-alt"],"f56b","M475.3 .1c9.9-.8 19.6 3 26.6 10s10.8 16.7 10 26.6c-4 49.3-17.4 126.2-46.3 199.7-1.8 4.5-5.5 7.9-10.2 9.3L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l38.6 0c12 0 19.7 12.8 13.5 23.1-4 6.7-8.3 13.2-12.7 19.6-2 2.9-5 5-8.4 6.1L310.5 366c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l16 0c14.6 0 21 17.4 8.8 25.4-68 45-137.7 43.3-182.4 31.3-12.7-3.4-24-9.9-34.4-17.9L48 496c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32l80-80 .5 .5c.7-1.3 1.6-2.5 2.7-3.6L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L89.7 326.2c-8.9 8.9-24 4.4-25-8.2-4.3-53.2 9.3-123.1 72.6-186.4 91.1-91.1 254.2-124.7 337.9-131.5z"],"file-circle-question":[576,512,[],"e4ef","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z"],signature:[640,512,[],"f5b7","M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 32.4-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72.5 0c4.2 36 34.8 64 72 64 26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8S405.7 320 416 320l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM616 416c13.3 0 24-10.7 24-24s-10.7-24-24-24l-292.9 0c-6.5 16.3-13.7 32.3-21.6 48L616 416z"],"earth-americas":[512,512,[127758,"earth","earth-america","globe-americas"],"f57d","M55.7 199.7l30.9 30.9c6 6 14.1 9.4 22.6 9.4l21.5 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 9.4 14.1 9.4 22.6l0 37.5c0 8.5 3.4 16.6 9.4 22.6l13.3 13.3c6 6 9.4 14.1 9.4 22.6l0 18.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-2.7c0-8.5 3.4-16.6 9.4-22.6l45.3-45.3c6-6 9.4-14.1 9.4-22.6l0-34.7c0-17.7-14.3-32-32-32l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l34.7 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-19.7-19.7C242 130 240 125.1 240 120s2-10 5.7-13.7l17.3-17.3c5.8-5.8 9.1-13.7 9.1-21.9 0-7.2-2.4-13.7-6.4-18.9-3.2-.1-6.4-.2-9.6-.2-95.4 0-175.7 64.2-200.3 151.7zM464 256c0-34.6-8.4-67.2-23.4-95.8-6.4 .9-12.7 3.9-17.9 9.1l-13.4 13.4c-6 6-9.4 14.1-9.4 22.6l0 34.7c0 17.7 14.3 32 32 32l24.1 0c2.5 0 5-.3 7.3-.8 .4-5 .5-10.1 .5-15.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z"],carrot:[640,512,[129365],"f787","M453.1-36.7L440.9-24.6c-31.2 31.2-31.2 81.9 0 113.1 15.6 15.6 31.2 31.2 46.9 46.9 31.2 31.2 81.9 31.2 113.1 0l12.1-12.1c6.2-6.2 6.2-16.4 0-22.6L600.9 88.6c-31.2-31.2-81.9-31.2-113.1 0 31.2-31.2 31.2-81.9 0-113.1L475.7-36.7c-6.2-6.2-16.4-6.2-22.6 0zM331.6 96c-45.2 0-87.1 20.4-115 54.3L273.3 207c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L191.6 193.2 67.2 466.8c-5.5 12.1-2.9 26.4 6.5 35.9s23.7 12 35.9 6.5l141.6-64.4-43.8-43.8c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.5 56.5 95.3-43.3c53.1-24.1 87.2-77.1 87.2-135.5 0-82.2-66.6-148.8-148.8-148.8z"],"temperature-full":[320,512,["temperature-4","thermometer-4","thermometer-full"],"f2c7","M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 212.7c23.5 9.5 40 32.5 40 59.3z"],"table-cells-row-lock":[640,512,[],"e67a","M256 288l0-64 153.3 0c17.1-42.2 56-73.2 102.7-79l0-49c0-35.3-28.7-64-64-64L128 32C92.7 32 64 60.7 64 96l0 320c0 35.3 28.7 64 64 64l241.3 0c-.9-5.2-1.3-10.6-1.3-16.1l0-47.9-112 0 0-64 113.3 0c3.7-22 14.8-41.4 30.7-55.6l0-8.4-144 0zm0-192l192 0 0 64-192 0 0-64zM560 272.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416 368l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z"],"bolt-lightning":[384,512,[],"e0b7","M0 256L28.5 28c2-16 15.6-28 31.8-28L228.9 0c15 0 27.1 12.1 27.1 27.1 0 3.2-.6 6.5-1.7 9.5L208 160 347.3 160c20.2 0 36.7 16.4 36.7 36.7 0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7l-2.9 0c-15.7 0-28.5-12.8-28.5-28.5 0-2.3 .3-4.6 .9-6.9L176 288 32 288c-17.7 0-32-14.3-32-32z"],"cloud-showers-water":[512,512,[],"e4e4","M279.2 55.7C263.9 22.8 230.6 0 192 0 139 0 96 43 96 96 60.7 96 32 124.7 32 160s28.7 64 64 64l320 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-1.6 0c-7.4-36.5-39.7-64-78.4-64-22.2 0-42.3 9.1-56.8 23.7zM410.6 476.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zM100.1 303.6c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64C29 365 35.8 378.6 48.4 382.8s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm112 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64z"],"arrow-up-long":[320,512,["long-arrow-up"],"f176","M182.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 77.3 128 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-434.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z"],"address-card":[576,512,[62140,"contact-card","vcard"],"f2bb","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm240-48l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"angle-right":[256,512,[8250],"f105","M247.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L179.2 256 41.9 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z"],"face-meh":[512,512,[128528,"meh"],"f11a","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM176 320l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"arrow-up-from-ground-water":[640,512,[],"e4b5","M303 7c9.4-9.4 24.6-9.4 33.9 0l88 88c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47 0 278.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-278.1-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L303 7zM240 192l0 163.1c-10.6-2.2-21.3-3.2-32-3.1-32.5 .2-64.9 10.7-92.3 31.4-8.8 6.6-15.9 10.9-21.7 13.5l-.8 .4c-3.7 1.7-6.4 2.9-9.8 .3-6-4.5-12.6-8-19.3-10.4L64 240c0-26.5 21.5-48 48-48l128 0zm336 48l0 155.2c-1.1 .8-2.2 1.5-3.3 2.4-4.1 3.1-8.3 .8-12.6-1.5-.6-.3-1.2-.6-1.8-1-5.2-2.7-11.1-6.6-18-11.7-28.1-21.1-61.3-31.6-94.4-31.4-15.5 .1-31 2.5-46 7.3l0-167.3 128 0c26.5 0 48 21.5 48 48zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z"],map:[512,512,[128506,62072],"f279","M512 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L349.5 77.5 170.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C6.8 88.8 0 99.9 0 112L0 464c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 179.4 59.8c8.1 2.7 16.8 2.1 24.4-1.7l128-64c10.8-5.4 17.7-16.5 17.7-28.6l0-352zM192 376.9l0-284.5 128 42.7 0 284.5-128-42.7z"],"user-plus":[640,512,[],"f234","M136 128a120 120 0 1 1 240 0 120 120 0 1 1 -240 0zM48 482.3C48 383.8 127.8 304 226.3 304l59.4 0c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3zM544 96c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24z"],venus:[384,512,[9792],"f221","M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64c0-1 0-1.9-.1-2.9z"],"diagram-successor":[448,512,[],"e47a","M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 480L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM160 160l0-64-96 0 0 64 96 0z"],"head-side-cough-slash":[576,512,[],"e062","M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l25-25 0-447.2c0-15 10.5-28.3 25.4-29.8 7.4-.7 14.9-1.1 22.6-1.1 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l2.2 2.6 227.5-227.5zM133.8 512L288 357.8 288 416c0 53-43 96-96 96l-58.2 0zM176 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm336 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88 72a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-64 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm128 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"],"diagram-project":[512,512,["project-diagram"],"f542","M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 128 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-128 0 0 16c0 7.3-1.7 14.3-4.6 20.5l68.6 91.5 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-7.3 1.7-14.3 4.6-20.5L128 224 48 224c-26.5 0-48-21.5-48-48L0 80z"],terminal:[512,512,[],"f120","M9.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 256 9.4 118.6zM224 384l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"],"house-fire":[640,512,[],"e50c","M448 192c14.1 .4 23.8 11.4 32.7 21.7 2 2.3 4 4.6 6 6.7l19 19.9 12.2-13.8c5.4-6.1 13.3-8.9 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.2 26.2 88.2 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.1 5.7-5.2 13.1-7.7 20.3-7.5zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l147.5 137c-19.2-4.3-40 .5-55.5 14.4-36.4 32.6-67.7 69.8-90.3 106.4-10.3 16.6-19.7 34.9-26.8 53.7L272 320c-26.5 0-48 21.5-48 48l0 96 64.6 0c7.3 17.2 16.8 33.4 28.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM489.3 343.7c-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.7 51.9-54.7 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-36.5-37-73-54.7-88.4z"],mask:[576,512,[],"f6fa","M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176S512 64 288 64zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"],hurricane:[384,512,[],"f751","M0 208C0 104.4 75.7 18.5 174.9 2.6 184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5 100.3 14.9 177.3 101.3 177.3 205.7 0 103.6-75.7 189.5-174.9 205.4-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3C192 421.9 185.5 415 177.3 413.7 77 398.9 0 312.4 0 208zm288 48a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"earth-africa":[512,512,[127757,"globe-africa"],"f57c","M447.6 175c-31.6-74.6-105.5-127-191.6-127-22.1 0-43.4 3.5-63.4 9.8-.4 2-.6 4.1-.6 6.2l0 73.4c0 12.5 10.1 22.6 22.6 22.6 6 0 11.8-2.4 16-6.6l16-16c6-6 14.1-9.4 22.6-9.4l5.5 0c28.5 0 42.8 34.5 22.6 54.6-6 6-14.1 9.4-22.6 9.4l-61.5 0c-8.5 0-16.6 3.4-22.6 9.4l-21.3 21.3c-6 6-9.4 14.1-9.4 22.6l0 42.7c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32l0 32c0 17.7 14.3 32 32 32l2.7 0c8.5 0 16.6-3.4 22.6-9.4l29.3-29.3c6-6 9.4-14.1 9.4-22.6l0-18.7c0-8.8 7.2-16 16-16s16-7.2 16-16l0-34.7c0-8.5-3.4-16.6-9.4-22.6l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l45 0c12.4 0 22.7-7.1 28-17zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z"],thumbtack:[384,512,[128204,128392,"thumb-tack"],"f08d","M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 10.3 134.1c37.1 21.2 65.8 56.4 78.2 99.7l3.8 13.4c2.8 9.7 .8 20-5.2 28.1S362 352 352 352L32 352c-10 0-19.5-4.7-25.5-12.7s-8-18.4-5.2-28.1L5 297.8c12.4-43.3 41-78.5 78.2-99.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 400l64 0 0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-112z"],"hand-point-down":[384,512,[],"f0a7","M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6 13.2 0 25.4 4 35.6 10.8 8.7-24.9 32.5-42.8 60.4-42.8 11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z"],"face-meh-blank":[512,512,[128566,"meh-blank"],"f5a4","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm208-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"temperature-empty":[320,512,["temperature-0","thermometer-0","thermometer-empty"],"f2cb","M64 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S16 447.5 16 368c0-42.6 18.5-81 48-107.3L64 96zm96 336c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z"],"border-none":[448,512,[],"f850","M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM288 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM288 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm0-384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM416 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"],highlighter:[576,512,[],"f591","M315 315L473.4 99.9 444.1 70.6 229 229 315 315zm-187 5l0 0 0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0 457.6 0 468.5 4.5 476.6 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5 0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5l-71.7 0-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l51.7-51.7 70.6 70.6-19.7 19.7c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z"],"money-bill-wave":[512,512,[],"f53a","M0 419.6L0 109.5c0-23.2 24.1-38.6 46.3-32 87.7 26.2 149.7 5.5 212.1-15.3 64.5-21.5 129.4-43.1 223.3-13.1 18.5 5.9 30.3 23.8 30.3 43.3l0 310.1c0 23.2-24.1 38.6-46.2 32-87.7-26.2-149.8-5.5-212.1 15.3-64.5 21.5-129.4 43.1-223.3 13.1-18.5-5.9-30.3-23.8-30.3-43.3zM336 256c0-53-35.8-96-80-96s-80 43-80 96 35.8 96 80 96 80-43 80-96zM120 413.6c4.4 0 7.9-3.8 7.2-8.1-4.6-27.8-27-49.5-55.2-53-4.4-.5-8 3.1-8 7.5l0 39.9c0 3.6 2.4 6.8 6 7.7 17.9 4.2 34.3 6.1 50 6.1zm318.5-51.1c5 .8 9.5-3 9.5-8l0-42.6c0-4.4-3.6-8.1-8-7.5-25.2 3.1-45.9 20.9-53.2 44.6-1.4 4.7 2.3 9.1 7.2 9.2 14.2 .4 29 1.7 44.4 4.3zM448 152l0-39.9c0-3.6-2.5-6.8-6-7.7-17.9-4.2-34.3-6.1-50-6.1-4.4 0-7.9 3.8-7.2 8.1 4.6 27.8 27 49.5 55.2 53 4.4 .5 8-3.1 8-7.5zM125.2 162.9c1.4-4.7-2.3-9.1-7.2-9.2-14.2-.4-29-1.7-44.4-4.3-5-.8-9.5 3-9.5 8L64 200c0 4.4 3.6 8.1 8 7.5 25.2-3.1 45.9-20.9 53.2-44.6z"],"toilet-paper-slash":[576,512,[],"e072","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-94.5-94.5c40.2-23 69.5-96.9 69.5-184.6 0-106-43-192-96-192s-96 86-96 192c0 24.1 2.2 47.2 6.3 68.4L304 238.2 304 224c0-58.9 11.8-114.5 33.2-157.2 5.9-11.7 13.1-23.7 21.9-34.8L128 32c-8.3 0-16.4 2.1-24.1 6.1l-63-63zM32 224l0 264c0 30.9 25.1 56 56 56l160 0c30.9 0 56-25.1 56-56l0-114.2-256-256C37.9 148.2 32 184.7 32 224zm416 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z"],"file-shield":[576,512,[],"e4f0","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0C261 469.4 240 414.5 240 356.4l0-31.1c0-34.4 22-65 54.7-75.9l112-37.3c3.1-1 6.2-1.8 9.3-2.5l0-39.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zm87.8 312.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z"],"text-height":[576,512,[],"f034","M40 32C17.9 32 0 49.9 0 72l0 56c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 32zM438.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-229.5 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 229.5-9.4-9.4z"],"face-grin-tongue":[512,512,[128539,"grin-tongue"],"f589","M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm16 240l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z"],"file-signature":[640,512,[],"f573","M64.1 64c0-35.3 28.7-64 64-64L277.6 0c17 0 33.3 6.7 45.3 18.7L429.3 125.3c12 12 18.7 28.3 18.7 45.3l0 97.5-132 132-42.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4-11.3 0-21.9 5.1-28.9 13.9L133.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l31.5 0c-.9 3.1-1.7 6.3-2.3 9.5l-10.9 54.5-146.2 0c-35.3 0-64-28.7-64-64l0-384zm208-5.5l0 93.5c0 13.3 10.7 24 24 24l93.5 0-117.5-117.5zm60.2 408.4c2.5-12.4 8.6-23.8 17.5-32.7l118.9-118.9 80 80-118.9 118.9c-8.9 8.9-20.3 15-32.7 17.5l-59.6 11.9c-.9 .2-1.9 .3-2.9 .3-8 0-14.6-6.5-14.6-14.6 0-1 .1-1.9 .3-2.9l11.9-59.6zm267.8-123l-28.8 28.8-80-80 28.8-28.8c22.1-22.1 57.9-22.1 80 0s22.1 57.9 0 80z"],"building-wheat":[640,512,[],"e4db","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l249.3 0c-6-14.8-9.3-31-9.3-48 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-25.2 14.5-46.9 35.6-57.4-2.4-7.1-3.6-14.7-3.6-22.6l0-32C368 96.7 388 70.1 415.9 60.1 413.9 26.6 386 0 352 0L96 0zM208 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM128 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm352 0l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16zm16 128c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zm0 112c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zM496 528c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zm-16-96c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0zm16-128c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zM512 64c-13.3 0-24 10.7-24 24l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-13.3-10.7-24-24-24zm96 64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM440 104c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24z"],"plug-circle-minus":[640,512,[],"e55e","M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z"],futbol:[512,512,[9917,"futbol-ball","soccer-ball"],"f1e3","M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z"],"circle-plus":[512,512,["plus-circle"],"f055","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"],"brazilian-real-sign":[512,512,[],"e46c","M400 16c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48.9 0c-26 0-47.1 21.1-47.1 47.1 0 22.5 15.9 41.8 37.9 46.2l32.8 6.6c51.9 10.4 89.3 56 89.3 109 0 50.6-33.8 93.3-80 106.7l0 20.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.9 0c26 0 47.1-21.1 47.1-47.1 0-22.5-15.9-41.8-37.9-46.2l-32.8-6.6c-51.9-10.4-89.3-56-89.3-109 0-50.6 33.8-93.2 80-106.7L368 48c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160z"],"star-and-crescent":[512,512,[9770],"f699","M0 256c0-141.4 114.6-256 256-256 33 0 64.6 6.3 93.6 17.7 7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5 7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512 114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z"],"face-surprise":[512,512,[128558,"surprise"],"f5c2","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-48 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"],"hospital-user":[640,512,[],"f80d","M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM248 88c-8.8 0-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0zM416 304a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z"],"arrow-down-up-lock":[576,512,[],"e4b0","M262.6 422.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l25.4 25.4 0-114.7-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l256 0 0-114.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-25.4-25.4 0 94.8c-25.3 20.3-42.8 50.1-47 83.9l-145 0 0 114.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM192 32l0 144-64 0 0-144c0-17.7 14.3-32 32-32s32 14.3 32 32zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z"],folder:[512,512,[128193,128447,61716,"folder-blank"],"f07b","M64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z"],"holly-berry":[512,512,[],"f7aa","M256.2 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM277 383.8c1 .1 2.1 .2 3.2 .2 39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.9 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7 4.2 9.7 5.8 20.8 3.7 32.3l-6.3 34.8c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.8 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32c0 34.6-28.1 62.7-62.7 62.7-16.4 0-27.9 16-22.8 31.6L15 396.4c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.4 489.4 22.8 505.8 40.7 501l19.4-5.3c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7 16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5l-19.4 5.3c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384.2 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"],"venus-double":[640,512,[9890],"f226","M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144.1 173.1 .1 1 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-82-15-144.1-86.8-144.1-173.1 0-97.2 78.8-176 176-176S368 78.8 368 176zM357.5 327c14.4-15.8 26.6-33.7 36.1-53.1 16.1 9 34.7 14.1 54.5 14.1 61.9 0 112-50.1 112-112S509.9 64 448 64c-19.8 0-38.3 5.1-54.5 14.1-9.5-19.4-21.6-37.3-36.1-53.1 26.4-15.9 57.4-25 90.5-25 97.2 0 176 78.8 176 176 0 86.3-62.1 158.1-144.1 173.1 .1 .9 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-21.1-3.9-40.9-11.5-58.6-22.2z"],"clipboard-question":[384,512,[],"e4e3","M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 248c16.1 0 29.2 13.1 29.2 29.2 0 8.7-3.1 13.9-6.9 17.7-4.5 4.4-10.7 7.5-16.8 9.5-14.9 5-29.5 19.3-29.5 39.5 0 13.3 10.7 24 24 24 11.5 0 21.2-8.1 23.5-19 19.2-7.1 53.7-26.3 53.7-71.8 0-42.6-34.6-77.2-77.2-77.2s-77.2 34.6-77.2 77.2c0 13.3 10.7 24 24 24s24-10.7 24-24c0-16.1 13.1-29.2 29.2-29.2zm28 168c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28z"],hotdog:[512,512,[127789],"f80f","M288 0c-20.5 0-40.1 8.1-54.6 22.6L22.6 233.4C8.1 247.9 0 267.5 0 288 0 300.2 2.9 312.1 8.2 322.7L322.7 8.2C312.1 2.9 300.2 0 288 0zM224 512c20.5 0 40.1-8.1 54.6-22.6L489.4 278.6c14.5-14.5 22.6-34.1 22.6-54.6 0-12.2-2.9-24.1-8.2-34.7L189.3 503.8c10.7 5.4 22.6 8.2 34.7 8.2zM456.6 168.6c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-288 288c-31.2 31.2-31.2 81.9 0 113.1s81.9 31.2 113.1 0l288-288z"],"arrow-up-from-bracket":[448,512,[],"e09a","M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z"],microscope:[512,512,[128300],"f610","M176 0c-26.5 0-48 21.5-48 48l0 208c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64 32 0c70.7 0 128 57.3 128 128S390.7 448 320 448L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16.9 0c30.4-34 48.9-78.8 48.9-128 0-106-86-192-192-192l-32 0 0-80c0-26.5-21.5-48-48-48L176 0zM120 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z"],cloud:[576,512,[9729],"f0c2","M0 336c0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-51.6-30.5-96.1-74.5-116.3 6.7-13.1 10.5-28 10.5-43.7 0-53-43-96-96-96-17.7 0-34.2 4.8-48.4 13.1-24.1-45.8-72.2-77.1-127.6-77.1-79.5 0-144 64.5-144 144 0 8 .7 15.9 1.9 23.5-56.9 19.2-97.9 73.1-97.9 136.5z"],"baseball-bat-ball":[576,512,[],"f432","M464.1 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm8.4-576c15.1 0 29.7 5.8 40.7 16.2l47.2 44.8c12.6 12 19.1 29 17.5 46.3-1.2 13.3-7 25.8-16.5 35.2L363.1 309c-7.3 7.3-15.7 13.4-25 18L206 393c-9.2 4.6-17.7 10.7-25 18l-92 92 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7l-1.8-1.7-48-48-1.7-1.8c-7.7-9.4-7.1-23.3 1.7-32.1s22.7-9.3 32.1-1.7l1.8 1.7 92-92c7.3-7.3 13.4-15.7 18-25l66.1-132.1c4.6-9.2 10.7-17.7 18-25L430.8-14.7C441.9-25.8 456.9-32 472.5-32z"],"car-rear":[512,512,["car-alt"],"f5de","M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4l26.1 74.6-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 96c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-40.6c19.1-11.1 32-31.7 32-55.4l0-96c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 288l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"thumbtack-slash":[576,512,["thumb-tack-slash"],"e68f","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L417.8 352 448 352c10 0 19.5-4.7 25.5-12.7s8-18.4 5.2-28.1L475 297.8c-12.4-43.3-41-78.5-78.2-99.7L386.5 64 416 64c17.7 0 32-14.3 32-32S433.7 0 416 0L160 0c-7.4 0-14.1 2.5-19.5 6.6L190.1 56.3 185.3 119.4 41-24.9zM282.2 352L149.7 219.6c-22.7 20.5-39.8 47.4-48.7 78.3l-3.8 13.4c-2.8 9.7-.8 20 5.2 28.1S118 352 128 352l154.2 0zM256 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112-64 0 0 112z"],"plus-minus":[384,512,[],"e43c","M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-128zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z"],"house-circle-check":[640,512,[],"e509","M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM553.4 339.1c-7.1-5.2-17.1-3.6-22.3 3.5l-53 72.8-26.7-26.8c-6.2-6.2-16.4-6.2-22.6 0-6.2 6.2-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.7s8.9-2.8 11.7-6.6l64-88c5.2-7.1 3.6-17.1-3.5-22.3z"],"calendar-day":[448,512,[],"f783","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z"],circle:[512,512,[128308,128309,128992,128993,128994,128995,128996,9679,9898,9899,11044,61708,61915],"f111","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z"],"mobile-vibrate":[576,512,[],"e816","M384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-384c0-35.3 28.7-64 64-64L384 0zM248 416c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM48.8 133.4c9.4-7.7 23.3-7.1 32.1 1.7 9.4 9.4 9.4 24.6 0 33.9l-31 31 25.4 25.4 2.9 3.2c6.3 7.7 9.8 17.4 9.8 27.4 0 11.5-4.6 22.5-12.7 30.6l-25.4 25.4 31 31 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7L47 377 12.7 342.6C5.6 335.5 1.2 326.2 .2 316.3L0 312 .2 307.7c1-9.9 5.4-19.2 12.5-26.3L38.1 256 12.7 230.6C5.6 223.5 1.2 214.2 .2 204.3L0 200 .2 195.7c1-9.9 5.4-19.2 12.5-26.3L47 135 48.8 133.4zM495 135c8.8-8.8 22.7-9.3 32.1-1.7l1.8 1.7 34.3 34.3c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-25.4 25.4 25.4 25.4c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-34.3 34.3-1.8 1.7c-9.4 7.7-23.3 7.1-32.1-1.7s-9.3-22.7-1.7-32.1l1.7-1.8 31-31-25.4-25.4c-8.1-8.1-12.7-19.1-12.7-30.6 0-10 3.5-19.7 9.8-27.4l2.9-3.2 25.4-25.4-31-31c-9.4-9.4-9.4-24.6 0-33.9z"],"face-grin-squint":[512,512,[128518,"grin-squint"],"f585","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM122.6 143.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z"],"users-between-lines":[576,512,[],"e591","M24 16l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 64C10.7 64 0 53.3 0 40S10.7 16 24 16zm0 448l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM392 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0C138.6 318.3 128 349.9 128 384l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 416 32 406.4 32 394.7L32 384c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm152-16a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 384c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8z"],"house-medical-circle-xmark":[640,512,[],"e513","M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z"],"table-list":[448,512,["th-list"],"f00b","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 224l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 352l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64z"],"flask-vial":[640,512,[],"e4f3","M184.6 411.5c-3.1 7.3-5.4 14.9-6.8 22.6-14.5 8.8-31.5 13.9-49.8 13.9-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 255.6-39.4 91.9zM96 64l0 128 64 0 0-128-64 0zM352 0L512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.4 91.3 213c2.3 5.4 3.8 11.1 4.4 17l.3 .6-.3 0c.2 1.8 .3 3.6 .3 5.4 0 32.3-26.2 58.6-58.6 58.6l-266.9 0c-32.3 0-58.6-26.2-58.6-58.6 0-1.8 .1-3.6 .3-5.4l-.3 0 .3-.6c.6-5.8 2.1-11.6 4.4-17L320 217.4 320 64c-17.7 0-32-14.3-32-32S302.3 0 320 0l32 0zM453.2 242.6c-3.4-8-5.2-16.5-5.2-25.2l0-153.4-64 0 0 153.4c0 8.7-1.8 17.2-5.2 25.2l-33.2 77.4 140.7 0-33.2-77.4z"],"circle-exclamation":[512,512,["exclamation-circle"],"f06a","M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-192a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.6 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z"],taxi:[512,512,[128662,"cab"],"f1ba","M192 0c-17.7 0-32 14.3-32 32l0 32-8.9 0c-42 0-79.1 27.3-91.6 67.4l-23 73.5C14.5 219.1 0 243.9 0 272L0 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 320 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-176c0-28.1-14.5-52.9-36.4-67.1l-23-73.5C440.1 91.3 402.9 64 360.9 64l-8.9 0 0-32c0-17.7-14.3-32-32-32L192 0zM151.1 128l209.9 0c14 0 26.4 9.1 30.5 22.5l13 41.5-296.9 0 13-41.5c4.2-13.4 16.5-22.5 30.5-22.5zM96 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],"text-slash":[576,512,["remove-format"],"f87d","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L322.7 256.9 368.2 96 471 96 465 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C545.6 61.3 522.7 32 491.5 32l-319 0c-19.8 0-37.3 12.1-44.5 30.1l-87-87zM180.4 114.5l4.6-18.5 116.7 0-30.8 109-90.5-90.5zM241 310.8L211.3 416 160 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 15.1-53.3-51.9-51.9z"],"people-pulling":[576,512,[],"e535","M80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32 9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8l-20.5-122.7 15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7 8.6 3.6 18 3.1 25.9-.7 3.4-1.6 6.6-3.9 9.3-6.7 3.1-3.2 5.5-7 7.1-11.4 .1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-21.4-10.7-15.3-36.8c-17.1-41.1-57.3-67.9-101.9-67.9-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z"],backward:[576,512,[9194],"f04a","M204.3 43.1C215.9 32 233 28.9 247.7 35.2S272 56 272 72l0 136.3 172.3-165.1C455.9 32 473 28.9 487.7 35.2S512 56 512 72l0 368c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9L272 303.7 272 440c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9l-192-184C4.5 277.3 0 266.9 0 256s4.5-21.3 12.3-28.9l192-184z"],"car-burst":[640,512,["car-crash"],"f5e1","M232 16.1l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24zM32 168.1l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM281.5 70.6c9.4 9.4 24.6 9.4 33.9 0l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L281.5 36.6c-9.4 9.4-9.4 24.6 0 33.9zm-181 215l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352.9 175.4L505 216.2c6.4 1.7 11.1 7.3 11.8 13.9l7.2 74-231.5-62 43.2-60.5c3.9-5.4 10.7-7.9 17.2-6.2zM223.6 228.5l-2.1 2.9c-21.7 5.5-39.9 22.3-46.1 45.5-4.1 15.5-12.4 46.4-24.8 92.7l-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 278.2 74.5-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6 4.1-15.5 12.4-46.4 24.8-92.7l8.3-30.9c6.2-23.2-1.1-46.8-17.2-62.5l-.3-3.6-10-103c-3.2-33.2-26.7-60.9-58.9-69.5L369.5 113.6c-32.2-8.6-66.4 3.6-85.8 30.8l-60.2 84.2zm48.7 57.8a32 32 0 1 1 -16.6 61.8 32 32 0 1 1 16.6-61.8zm208.1 88.9a32 32 0 1 1 61.8 16.6 32 32 0 1 1 -61.8-16.6z"],link:[576,512,[128279,"chain"],"f0c1","M419.5 96c-16.6 0-32.7 4.5-46.8 12.7-15.8-16-34.2-29.4-54.5-39.5 28.2-24 64.1-37.2 101.3-37.2 86.4 0 156.5 70 156.5 156.5 0 41.5-16.5 81.3-45.8 110.6l-71.1 71.1c-29.3 29.3-69.1 45.8-110.6 45.8-86.4 0-156.5-70-156.5-156.5 0-1.5 0-3 .1-4.5 .5-17.7 15.2-31.6 32.9-31.1s31.6 15.2 31.1 32.9c0 .9 0 1.8 0 2.6 0 51.1 41.4 92.5 92.5 92.5 24.5 0 48-9.7 65.4-27.1l71.1-71.1c17.3-17.3 27.1-40.9 27.1-65.4 0-51.1-41.4-92.5-92.5-92.5zM275.2 173.3c-1.9-.8-3.8-1.9-5.5-3.1-12.6-6.5-27-10.2-42.1-10.2-24.5 0-48 9.7-65.4 27.1L91.1 258.2c-17.3 17.3-27.1 40.9-27.1 65.4 0 51.1 41.4 92.5 92.5 92.5 16.5 0 32.6-4.4 46.7-12.6 15.8 16 34.2 29.4 54.6 39.5-28.2 23.9-64 37.2-101.3 37.2-86.4 0-156.5-70-156.5-156.5 0-41.5 16.5-81.3 45.8-110.6l71.1-71.1c29.3-29.3 69.1-45.8 110.6-45.8 86.6 0 156.5 70.6 156.5 156.9 0 1.3 0 2.6 0 3.9-.4 17.7-15.1 31.6-32.8 31.2s-31.6-15.1-31.2-32.8c0-.8 0-1.5 0-2.3 0-33.7-18-63.3-44.8-79.6z"],"backward-step":[384,512,["step-backward"],"f048","M363 36.8c-12.9-7-28.7-6.3-41 1.8L64 208.1 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144.1 258 169.6c12.3 8.1 28 8.8 41 1.8s21-20.5 21-35.2l0-368c0-14.7-8.1-28.2-21-35.2z"],x:[384,512,[120],"58","M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z"],"circle-user":[512,512,[62142,"user-circle"],"f2bd","M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2 35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z"],"rectangle-list":[512,512,["list-alt"],"f022","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm96 256a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm120-56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],hand:[512,512,[129306,9995,"hand-paper"],"f256","M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z"],"van-shuttle":[576,512,[128656,"shuttle-van"],"f5b6","M64 64C28.7 64 0 92.7 0 128L0 336c0 35.3 28.7 64 64 64l.4 0c4 44.9 41.7 80 87.6 80s83.6-35.1 87.6-80l104.7 0c4 44.9 41.7 80 87.6 80 46.1 0 83.9-35.4 87.7-80.5 31.7-3.8 56.3-30.8 56.3-63.5l0-101.3c0-13.8-4.5-27.3-12.8-38.4l-80-106.7C471.1 73.5 452.1 64 432 64L64 64zM504 224l-120 0 0-96 48 0 72 96zM64 224l0-96 96 0 0 96-96 0zm160 0l0-96 96 0 0 96-96 0zM392 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80z"],stairs:[576,512,[],"e289","M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z"],"horse-head":[512,512,[],"f7ab","M0 464L0 316.9C0 208.5 68.3 111.8 170.5 75.6L340.2 15.5c21.4-7.6 43.8 8.3 43.8 30.9 0 11-5.5 21.2-14.6 27.3L336 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0c-6.3 0-12.5-.5-18.6-1.5-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2-4.4-7.7-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4 0 20.3-16.5 36.8-36.8 36.8L48 512c-26.5 0-48-21.5-48-48zM328 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"],vault:[512,512,[],"e2c5","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l256 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM256 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM64 256a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm384-48c0 17.8-9.7 33.3-24 41.6l0 78.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-78.4c-14.3-8.3-24-23.8-24-41.6 0-26.5 21.5-48 48-48s48 21.5 48 48z"],"drum-steelpan":[576,512,[],"f56a","M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4 0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5 47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4-47.1 19.9-55 39.9-55 49.8s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5 0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8c-.9 4.3-1.4 8.7-1.4 13.2 0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2-19.8-1.8-40.8-2.8-62.6-2.8s-42.8 1-62.6 2.8z"],"thumbs-up":[512,512,[128077,61575],"f164","M80 160c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 192c0-17.7 14.3-32 32-32l48 0zM270.6 16C297.9 16 320 38.1 320 65.4l0 4.2c0 6.8-1.3 13.6-3.8 19.9L288 160 448 160c26.5 0 48 21.5 48 48 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 23.4-16.8 42.9-39 47.1 4.4 7.3 7 15.8 7 24.9 0 22.2-15 40.8-35.4 46.3 2.2 5.5 3.4 11.5 3.4 17.7 0 26.5-21.5 48-48 48l-87.9 0c-36.3 0-71.6-12.4-99.9-35.1L184 435.2c-15.2-12.1-24-30.5-24-50l0-186.6c0-14.9 3.5-29.6 10.1-42.9L226.3 43.3C234.7 26.6 251.8 16 270.6 16z"],stamp:[512,512,[],"f5bf","M312 201.8c0-17.4 9.2-33.2 19.9-47 12.6-16.2 20.1-36.6 20.1-58.8 0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8 10.7 13.8 19.9 29.6 19.9 47 0 29.9-24.3 54.2-54.2 54.2L112 256c-61.9 0-112 50.1-112 112 0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM56 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L56 464z"],menorah:[640,512,[],"f676","M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32S96 81.7 96 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64-192 0c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32z"],children:[640,512,[],"e4e1","M160.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-72 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L86.7 285.5 58 323.3c-10.7 14.1-30.8 16.8-44.8 6.2S-3.7 298.7 7 284.7L65.9 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47L314 284.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.7-37.8 31.1 93.4c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5-12.9 20.5c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.6 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10l-12.9-20.5 0 179.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z"],"chart-line":[512,512,["line-chart"],"f201","M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7 262.6 153.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l73.4-73.4 57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z"],"square-envelope":[448,512,["envelope-square"],"f199","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM209.1 267.9L108.4 207.4c-7.7-4.6-12.4-12.9-12.4-21.9 0-14.1 11.4-25.5 25.5-25.5l204.9 0c14.1 0 25.5 11.4 25.5 25.5 0 9-4.7 17.3-12.4 21.9L238.9 267.9c-4.5 2.7-9.6 4.1-14.9 4.1s-10.4-1.4-14.9-4.1zM352 237.3l0 82.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-82.7 96.7 58C202.1 301 213 304 224 304s21.9-3 31.3-8.7l96.7-58z"],"ban-smoking":[512,512,[128685,"smoking-ban"],"f54d","M99.5 144.8l79.2 79.2-50.7 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l146.7 0 92.5 92.5c-31.4 22.4-69.8 35.5-111.2 35.5-106 0-192-86-192-192 0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l18.7 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L269.3 224 144.8 99.5c31.4-22.4 69.8-35.5 111.2-35.5 106 0 192 86 192 192 0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16z"],"truck-front":[448,512,[],"e2b7","M0 112C0 67.8 35.8 32 80 32l288 0c44.2 0 80 35.8 80 80l0 256c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 112zm96 80l0 64 256 0 0-64c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32zm32 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm224 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],building:[384,512,[127970,61687],"f1ad","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z"],bullseye:[512,512,[],"f140","M448 256a192 192 0 1 0 -384 0 192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],"arrow-left-long":[576,512,["long-arrow-left"],"f177","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 544 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-434.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z"],"chess-rook":[384,512,[9820],"f447","M0 32L0 133.5c0 17 6.7 33.3 18.7 45.3L64 224 64 384 7.8 454.3C2.7 460.6 0 468.4 0 476.5 0 496.1 15.9 512 35.5 512l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-56.2-70.3 0-160 45.3-45.3c12-12 18.7-28.3 18.7-45.3L384 32c0-17.7-14.3-32-32-32L320 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32c0-17.7-14.3-32-32-32L176 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32C96 14.3 81.7 0 64 0L32 0C14.3 0 0 14.3 0 32z"],"blender-phone":[576,512,[],"f6b6","M151.4 13.2c10.2 5.8 14.5 18.4 10 29.3L138.2 98.8c-3.9 9.6-13.7 15.4-24 14.4l-20.2-2C78.7 152.9 78 198.9 91.9 241.1l22.4-2.2c10.3-1 20 4.8 24 14.4l23.2 56.3c4.5 10.9 .2 23.4-10 29.3l-2.9 1.6c-33.6 19.2-81.7 16.2-106.2-21.6-56.3-86.6-56.3-199.1 0-285.7 24.6-37.7 72.7-40.7 106.2-21.6l2.9 1.6zM224 336L193.7 17.5C192.8 8.1 200.2 0 209.6 0l324 0c21.3 0 36.6 20.3 30.8 40.8L553.1 80 440 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0zm8 48l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"],"arrow-turn-up":[384,512,["level-up"],"f148","M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z"],bicycle:[640,512,[128690],"f206","M331.7 43.3C336 36.3 343.7 32 352 32l104 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-65.6 0 72.2 148.4c10.7-2.9 21.9-4.4 33.4-4.4 70.7 0 128 57.3 128 128s-57.3 128-128 128-128-57.3-128-128c0-42 20.2-79.2 51.4-102.6l-20.4-41.9-73.5 147c-2.3 4.8-6.3 8.8-11.4 11.2-.6 .3-1.2 .5-1.8 .7-2.9 1.1-5.9 1.6-8.9 1.5L271 368c-7.9 63.1-61.7 112-127 112-70.7 0-128-57.3-128-128S73.3 224 144 224c10.8 0 21.2 1.3 31.2 3.8l28.5-56.9-11.5-26.9-40.2 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c9.6 0 18.3 5.7 22.1 14.5l14.3 33.5 123.7 0-37.7-77.5c-3.6-7.4-3.2-16.2 1.2-23.2zM228.5 228.7l-45.6 91.3 84.8 0-39.1-91.3zM305.7 287l47.5-95-88.2 0 40.7 95zm168.7 75.5l-29.7-61c-12.8 13-20.7 30.8-20.7 50.5 0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72c-2.7 0-5.5 .2-8.1 .5l29.7 61c5.8 11.9 .8 26.3-11.1 32.1s-26.3 .8-32.1-11.1zM149.2 368c-20.2 0-33.4-21.3-24.3-39.4l24.2-48.5c-1.7-.1-3.4-.2-5.1-.2-39.8 0-72 32.2-72 72s32.2 72 72 72c34.3 0 62.9-23.9 70.2-56l-65 0z"],"circle-arrow-down":[512,512,["arrow-circle-down"],"f0ab","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM239 377l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l39 39 0-150.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 150.1 39-39c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0z"],gear:[512,512,[9881,"cog"],"f013","M195.1 9.5C198.1-5.3 211.2-16 226.4-16l59.8 0c15.2 0 28.3 10.7 31.3 25.5L332 79.5c14.1 6 27.3 13.7 39.3 22.8l67.8-22.5c14.4-4.8 30.2 1.2 37.8 14.4l29.9 51.8c7.6 13.2 4.9 29.8-6.5 39.9L447 233.3c.9 7.4 1.3 15 1.3 22.7s-.5 15.3-1.3 22.7l53.4 47.5c11.4 10.1 14 26.8 6.5 39.9l-29.9 51.8c-7.6 13.1-23.4 19.2-37.8 14.4l-67.8-22.5c-12.1 9.1-25.3 16.7-39.3 22.8l-14.4 69.9c-3.1 14.9-16.2 25.5-31.3 25.5l-59.8 0c-15.2 0-28.3-10.7-31.3-25.5l-14.4-69.9c-14.1-6-27.2-13.7-39.3-22.8L73.5 432.3c-14.4 4.8-30.2-1.2-37.8-14.4L5.8 366.1c-7.6-13.2-4.9-29.8 6.5-39.9l53.4-47.5c-.9-7.4-1.3-15-1.3-22.7s.5-15.3 1.3-22.7L12.3 185.8c-11.4-10.1-14-26.8-6.5-39.9L35.7 94.1c7.6-13.2 23.4-19.2 37.8-14.4l67.8 22.5c12.1-9.1 25.3-16.7 39.3-22.8L195.1 9.5zM256.3 336a80 80 0 1 0 -.6-160 80 80 0 1 0 .6 160z"],"mars-and-venus-burst":[640,512,[],"e523","M464-32c0 17.7 14.3 32 32 32l34.7 0-63 63c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-37-11.4-71.4-31-99.8l63-63 0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112c0-17.7-14.3-32-32-32L496-64c-17.7 0-32 14.3-32 32zM368 96a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM190.9-21.9C188.4-28 182.6-32 176-32s-12.4 4-14.9 10.1l-29.4 74-76.2-23.1c-6.3-1.9-13.1 .2-17.2 5.3S33.8 46.5 37 52.2l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2-5.6 79.4c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L152.1 268c-5.3-19.1-8.1-39.2-8.1-60 0-65.4 28-124.2 72.6-165.1L190.9-21.9z"],otter:[640,512,[129446],"f700","M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5 23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6 6.6 0 13.1-1.5 19.1-4.5 9.3-4.7 16.4-8.2 21.2-10.6L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4l-12.9-6.4-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-64c0-23.7 12.9-44.4 32-55.4 9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48 8.8 0 16 7.2 16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1 0 0c0 123.7-100.3 224-224 224l-160.6 0C132 480 32 380 32 256.6l0-39.8c-10.1-14.6-16-32.3-16-51.4l0-21.4 0-1.4C6.7 139.3 0 130.5 0 120 0 106.7 10.7 96 24 96l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24 0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3 12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3-5.1 .9-10.3 1.3-15.6 1.3-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z"],"circle-chevron-left":[512,512,["chevron-circle-left"],"f137","M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z"],"circle-question":[512,512,[62108,"question-circle"],"f059","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-336c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],"walkie-talkie":[384,512,[],"f8ef","M88-32c13.3 0 24 10.7 24 24l0 72 48 0c0-17.7 14.3-32 32-32s32 14.3 32 32l32 0c0-17.7 14.3-32 32-32s32 14.3 32 32l16 0c26.5 0 48 21.5 48 48l0 160.9c0 9.9-2.3 19.7-6.8 28.6l-20.2 40.4c-3.3 6.7-5.1 14-5.1 21.5l0 84.7c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-84.7c0-7.5-1.7-14.8-5.1-21.5L6.8 301.5C2.3 292.6 0 282.8 0 272.9L0 112C0 85.5 21.5 64 48 64l16 0 0-72c0-13.3 10.7-24 24-24zm32 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"],"user-group":[576,512,[128101,"user-friends"],"f500","M64 128a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM0 464c0-97.2 78.8-176 176-176s176 78.8 176 176l0 6c0 23.2-18.8 42-42 42L42 512c-23.2 0-42-18.8-42-42l0-6zM432 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240c79.5 0 144 64.5 144 144l0 22.4c0 23-18.6 41.6-41.6 41.6l-144.8 0c6.6-12.5 10.4-26.8 10.4-42l0-6c0-51.5-17.4-98.9-46.5-136.7 22.6-14.7 49.6-23.3 78.5-23.3z"],"house-chimney":[512,512,[63499,"home-lg"],"e3af","M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM240 320c-26.5 0-48 21.5-48 48l0 96 128 0 0-96c0-26.5-21.5-48-48-48l-32 0z"],"right-from-bracket":[512,512,["sign-out-alt"],"f2f5","M505 273c9.4-9.4 9.4-24.6 0-33.9L361 95c-6.9-6.9-17.2-8.9-26.2-5.2S320 102.3 320 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L505 273zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z"],file:[384,512,[128196,128459,61462],"f15b","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z"],"plane-slash":[576,512,[],"e069","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-183.4-183.4 7.1-7.7 127.3 0c30.9 0 56-25.1 56-56s-25.1-56-56-56L392.7 200 233.5 26.4C227.5 19.8 218.9 16 209.9 16l-43.7 0c-10.9 0-18.6 10.7-15.2 21.1L175.1 109.2 41-24.9zM130.2 200l-24.6 0-52.8-66c-3-3.8-7.6-6-12.5-6l-19.8 0c-10.4 0-18 9.8-15.5 19.9L32 256 5 364.1C2.4 374.2 10.1 384 20.5 384l19.8 0c4.9 0 9.5-2.2 12.5-6l52.8-66 99.7 0-54.3 162.9c-3.5 10.4 4.3 21.1 15.2 21.1l43.7 0c9 0 17.5-3.8 23.6-10.4L320.7 390.5 130.2 200z"],"cloud-showers-heavy":[512,512,[],"f740","M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm6.8 79.6l-32 96C66.6 508.2 53 515 40.4 510.8S21 493 25.2 480.4l32-96C61.4 371.8 75 365 87.6 369.2S107 387 102.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S141 493 145.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S227 387 222.8 399.6zm112 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S253 493 257.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S339 387 334.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S373 493 377.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S459 387 454.8 399.6z"],"person-falling":[512,512,[],"e546","M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 5.4c0 45-23.6 86.6-62.1 109.8l-4.6 2.8C131.4 184.7 96 247.1 96 314.6L96 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-69.4c0-16.7 3.3-33 9.4-48L359.2 500.2c11.1 13.7 31.3 15.8 45 4.7s15.8-31.3 4.7-45L295.2 320 400 320 438.4 371.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C437.3 263.1 423.1 256 408 256l-89 0-62.9-75.5c40.3-36 63.9-87.9 63.9-143.1l0-5.4zM104 144a56 56 0 1 0 0-112 56 56 0 1 0 0 112z"],"turn-down":[384,512,[10549,"level-down-alt"],"f3be","M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S332.9 320 320 320l-64 0 0-160C256 71.6 184.4 0 96 0L32 0C14.3 0 0 14.3 0 32L0 96c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 160-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z"],"up-right-and-down-left-from-center":[512,512,["expand-alt"],"f424","M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2S34.1 320.2 41 327l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S177.7 512 168 512z"],"user-tag":[640,512,[],"f507","M256.1 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.4 304l59.4 0c6.7 0 13.2 .4 19.7 1.1-.9 4.9-1.4 9.9-1.4 15l0 92.1c0 25.5 10.1 49.9 28.1 67.9l31.9 31.9-286.3 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zM352.1 412.2l0-92.1c0-17.7 14.3-32 32-32l92.1 0c12.7 0 24.9 5.1 33.9 14.1l96 96c18.7 18.7 18.7 49.1 0 67.9l-76.1 76.1c-18.7 18.7-49.1 18.7-67.9 0l-96-96c-9-9-14.1-21.2-14.1-33.9zm104-44.2a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"],"hand-sparkles":[640,512,[],"e05d","M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.2c-19.2 5.4-34.7 20.4-40.4 40.3l-6.5 22.7-22.7 6.5c-25.2 7.2-42.5 30.2-42.5 56.4 0 22.1 12.4 42 31.4 51.9-27.5 17.8-60.2 28.1-95.4 28.1l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6l-7.3 25.4-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7l25.4 7.3 7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6l7.3-25.4 25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7l-25.4-7.3-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456 570.2 504.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456 487.7 442.2c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408 549.8 359.7c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z"],"arrows-to-dot":[512,512,[],"e4be","M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9S179.1 64 192 64l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9S332.9 448 320 448l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S64 332.9 64 320l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9S448 179.1 448 192l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"face-sad-cry":[512,512,[128557,"sad-cry"],"f5b3","M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 171.7C44.4 421.6 0 344 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 88-44.4 165.6-112 211.7L400 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 197.4zM152 196l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm172 20c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z"],"dong-sign":[384,512,[],"e169","M288-16c-17.7 0-32 14.3-32 32l0 32-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 72.2c-22.9-15.3-50.4-24.2-80-24.2-79.5 0-144 64.5-144 144S96.5 432 176 432c30 0 57.8-9.1 80.8-24.8 3.3 14.2 16 24.8 31.2 24.8 17.7 0 32-14.3 32-32l0-304 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-32c0-17.7-14.3-32-32-32zM96 288a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464z"],"people-line":[576,512,[],"e534","M288 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 44.1-128 0 0-44.1C204.7 359 192 337 192 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zm16 104l0-27.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 40.6-112 0zM64 375.4C44.9 364.4 32 343.7 32 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1l0 32c0 32.5 12.1 62.1 32 84.7l0 27.3-112 0 0-40.6zM128 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm320 0a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM24 464l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"square-rss":[448,512,["rss-square"],"f143","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24 137 0 248 111 248 248 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24 83.9 0 152 68.1 152 152 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],"calendar-minus":[448,512,[],"f272","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm24 264c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"],"chart-diagram":[512,512,[],"e695","M80 32C53.5 32 32 53.5 32 80s21.5 48 48 48l152 0 0 40-48 48-72 0c-39.8 0-72 32.2-72 72l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-13.3 10.7-24 24-24l72 0 48 48 0 40-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-40 48-48 72 0c13.3 0 24 10.7 24 24l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-39.8-32.2-72-72-72l-72 0-48-48 0-40 152 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L80 32z"],"face-tired":[512,512,[128555,"tired"],"f5c8","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4 6.2 11.7 10.3 24.4 10.3 35.9 0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8S128 405.2 128 400c0-11.6 4.2-24.2 10.3-35.9 6.3-12 15.3-24.3 26.4-35.4zM122.6 159.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z"],"hand-point-right":[512,512,[],"f0a4","M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32 0 13.2 4 25.4 10.8 35.6-24.9 8.7-42.8 32.5-42.8 60.4 0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z"],"arrow-up":[384,512,[8593],"f062","M214.6 17.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 117.3 160 488c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 105.4 105.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z"],"cubes-stacked":[512,512,[],"e4e6","M192 32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64zm32 352l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM320 192l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm-182.6-3.9c12.5-12.5 32.8-12.5 45.3 0l45.3 45.3c12.5 12.5 12.5 32.8 0 45.3l-45.3 45.3c-12.5 12.5-32.8 12.5-45.3 0L92.1 278.6c-12.5-12.5-12.5-32.8 0-45.3l45.3-45.3zM32 384l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z"],"child-combatant":[576,512,["child-rifle"],"e4e0","M176.5 128a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-16 352l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192.2 20.9 33.2c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-39.9-63.3C266.8 184 223.3 160 176.5 160S86.2 184 61.3 223.6L21.4 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10l20.9-33.2 0 192.2c0 17.7 14.3 32 32 32s32-14.3 32-32zM448.5 0l-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7l0-116.3c0-8.8-7.2-16-16-16z"],"vest-patches":[448,512,[],"e086","M200 293.9L200 464c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 48C64 21.5 85.5 0 112 0l3.5 0c.3 0 .6 0 1 0 .6 0 1.2 0 1.8 0 18.8 0 34.1 9.7 44.1 18.8 9.3 8.4 28.5 21.2 61.7 21.2s52.4-12.8 61.7-21.2c10-9.1 25.3-18.8 44.1-18.8 .6 0 1.2 0 1.8 0 .3 0 .6 0 1 0L336 0c26.5 0 48 21.5 48 48l0 97.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-104 0c-26.5 0-48-21.5-48-48l0-170.1c0-3.9 .5-7.8 1.4-11.6L303.6 65.4C285.9 77.2 259.8 88 224 88s-61.9-10.8-79.6-22.6l54.2 216.8c1 3.8 1.4 7.7 1.4 11.6zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305 111.5 320.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288 128.5 272.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 40c0 8.8 7.2 16 16 16l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z"],"martini-glass-empty":[512,512,["glass-martini"],"f000","M32 32C19.1 32 7.4 39.8 2.4 51.8S.2 77.5 9.4 86.6l214.6 214.6 0 146.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-146.7 214.6-214.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 32 480 32L32 32zM256 242.7L109.3 96 402.7 96 256 242.7z"],magnet:[448,512,[129522],"f076","M0 176L0 288C0 411.7 100.3 512 224 512S448 411.7 448 288l0-112-128 0 0 112c0 53-43 96-96 96s-96-43-96-96l0-112-128 0zm0-48l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z"],"road-barrier":[640,512,[],"e562","M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 266.3 149.2 96 64 96 64 64c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3zM362.8 288l74.3 0 5.4-10.7 90.6-181.3-74.3 0-5.4 10.7-90.6 181.3zM202.8 96l-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7-85.2 170.3z"],"compass-drafting":[512,512,["drafting-compass"],"f568","M99.3 256.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2 0-53 43-96 96-96s96 43 96 96c0 14.3-3.1 27.9-8.8 40.2l44.4 76.7c-23.1 26-53.7 45.1-88.4 53.8L256 191.9 187.9 309.5c21.5 6.8 44.3 10.5 68.1 10.5 70.7 0 133.8-32.7 174.9-84 11.1-13.8 31.2-16 45-5s16 31.2 5 45c-52.7 65.8-133.9 108-224.8 108-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7c-12.8-11.2-24.6-23.5-35.3-36.8-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1zM381.1 407.9c32.5-13 62.4-31 88.9-52.9l35.6 61.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9l-32.3-55.8zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"square-person-confined":[448,512,[],"e577","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9-17.5 0-34.3-6.9-46.6-19.3l-54.7-54.7-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9l41.4 41.4 0-58.7z"],"plate-wheat":[512,512,[],"e55a","M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S42.7 64 56 64zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6-6.3 50.2-44.4 89.4-92.6 98.4l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z"],"sign-hanging":[512,512,["sign"],"f4d9","M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zM208 176l240 0c17.7 0 32 14.3 32 32l0 144c0 17.7-14.3 32-32 32l-240 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32z"],"car-battery":[512,512,["battery-car"],"f5df","M80 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l16 0zM392 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM64 240c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 216c-13.3 0-24 10.7-24 24z"],shirt:[640,512,[128085,"t-shirt","tshirt"],"f553","M320.2 112c44.2 0 80-35.8 80-80l53.5 0c17 0 33.3 6.7 45.3 18.7L617.6 169.4c12.5 12.5 12.5 32.8 0 45.3l-50.7 50.7c-12.5 12.5-32.8 12.5-45.3 0l-41.4-41.4 0 224c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-224-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0L22.9 214.6c-12.5-12.5-12.5-32.8 0-45.3L141.5 50.7c12-12 28.3-18.7 45.3-18.7l53.5 0c0 44.2 35.8 80 80 80z"],paragraph:[448,512,[182],"f1dd","M160 0L416 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-416-48 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160-48 0C71.6 320 0 248.4 0 160S71.6 0 160 0z"],"envelopes-bulk":[576,512,["mail-bulk"],"f674","M112 0C85.5 0 64 21.5 64 48l0 160 80 0 0-32c0-53 43-96 96-96l208 0 0-32c0-26.5-21.5-48-48-48L112 0zM240 128c-26.5 0-48 21.5-48 48l0 32 80 0c53 0 96 43 96 96l0 112 160 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-288 0zm200 64l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zM48 256c-26.5 0-48 21.5-48 48l0 10.4 156.6 86.2c1.1 .6 2.2 .9 3.4 .9s2.4-.3 3.4-.9L320 314.4 320 304c0-26.5-21.5-48-48-48L48 256zM320 369.2L186.6 442.6c-8.1 4.5-17.3 6.8-26.6 6.8s-18.4-2.4-26.6-6.8L0 369.2 0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-94.8z"],guitar:[512,512,[],"f7a6","M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6-11 11-18 24.6-21.4 39.6-3.7 16.6-19.1 30.7-36.1 31.6-25.6 1.3-49.3 10.7-67.3 28.6-44.8 44.8-36.4 125.8 18.7 180.9S183.6 528 228.4 483.2c17.9-17.9 27.4-41.7 28.6-67.3 .9-17 15-32.3 31.6-36.1 15-3.4 28.6-10.5 39.6-21.4 31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"],suitcase:[512,512,[129523],"f0f2","M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 424 224 0 0-424c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM416 96l0 384 32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0zM96 480l0-384-32 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0z"],"circle-up":[512,512,[61467,"arrow-alt-circle-up"],"f35b","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm11.3-387.3l104 104c4.6 4.6 5.9 11.5 3.5 17.4S366.5 256 360 256l-56 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-56 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l104-104c6.2-6.2 16.4-6.2 22.6 0z"],f:[320,512,[102],"46","M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z"],"xmarks-lines":[640,512,[],"e59a","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z"],"earth-oceania":[512,512,["globe-oceania"],"e47b","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 150.6c0-12.5 10.1-22.6 22.6-22.6l41.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16zM432 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM411.3 379.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM224 432c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-96-80c-17.7 0-32-14.3-32-32l0-18.7c0-8.5 3.4-16.6 9.4-22.6l48-48c4.2-4.2 10-6.6 16-6.6l6.6 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16 7.2-16 16-16l6.6 0c6 0 11.8 2.4 16 6.6l48 48c6 6 9.4 14.1 9.4 22.6l0 50.7c0 17.7-14.3 32-32 32l-50.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L128 352z"],"comment-slash":[576,512,[],"f4b3","M41-25C31.6-34.3 16.4-34.3 7-25S-2.3-.4 7 9L535 537c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.6-96.6c44.4-43.2 71.6-101.8 71.6-166.5 0-132.5-114.6-240-256-240-63 0-120.8 21.4-165.4 56.8L41-25zm19.4 155C42.2 163 32 200.3 32 239.9 32 294.2 51.2 344.2 83.6 384.4L34.8 476.7c-4.8 9-3.3 20 3.6 27.5S56.1 514 65.5 510l118.4-50.7c31.8 13.3 67.1 20.7 104.1 20.7 36.4 0 70.9-7.1 102.3-19.9L60.3 130.1z"],play:[448,512,[9654],"f04b","M91.2 36.9c-12.4-6.8-27.4-6.5-39.6 .7S32 57.9 32 72l0 368c0 14.1 7.5 27.2 19.6 34.4s27.2 7.5 39.6 .7l336-184c12.8-7 20.8-20.5 20.8-35.1s-8-28.1-20.8-35.1l-336-184z"],"vial-circle-check":[512,512,[],"e596","M32 32C32 14.3 46.3 0 64 0L288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 161.4c-66.1 30.3-112 97.1-112 174.6 0 39.7 12 76.6 32.7 107.2-10.3 3.1-21.3 4.8-32.7 4.8-61.9 0-112-50.1-112-112L64 64C46.3 64 32 49.7 32 32zm96 32l0 128 96 0 0-128-96 0zm96 336a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z"],"bridge-circle-check":[576,512,[],"e4c9","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z"],"cedi-sign":[384,512,[],"e0df","M232 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 26.5C88.8 73.9 16 156.4 16 256S88.8 438.1 184 453.5l0 26.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24.6c46.8-3.7 89.1-23.6 121.3-53.9 12.9-12.1 13.4-32.4 1.3-45.2s-32.4-13.4-45.2-1.3c-20.7 19.6-47.6 32.7-77.3 36.2l0-270.1c29.8 3.5 56.6 16.6 77.3 36.2 12.9 12.1 33.1 11.5 45.2-1.3s11.5-33.1-1.3-45.2C321.1 80.2 278.8 60.3 232 56.6L232 32zm-48 91.8l0 264.4C124.3 373.8 80 320.1 80 256s44.3-117.8 104-132.2z"],"puzzle-piece":[512,512,[129513],"f12e","M224 0c35.3 0 64 21.5 64 48 0 10.4-4.4 20-12 27.9-6.6 6.9-12 15.3-12 24.9 0 15 12.2 27.2 27.2 27.2l44.8 0c26.5 0 48 21.5 48 48l0 44.8c0 15 12.2 27.2 27.2 27.2 9.5 0 18-5.4 24.9-12 7.9-7.5 17.5-12 27.9-12 26.5 0 48 28.7 48 64s-21.5 64-48 64c-10.4 0-20.1-4.4-27.9-12-6.9-6.6-15.3-12-24.9-12-15 0-27.2 12.2-27.2 27.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2 0-9.2 5.8-17.3 13.2-22.8 11.6-8.7 18.8-20.7 18.8-34 0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34 7.4 5.5 13.2 13.5 13.2 22.8 0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2c0-12.8 10.4-23.2 23.2-23.2 9.2 0 17.3 5.8 22.8 13.2 8.7 11.6 20.7 18.8 34 18.8 26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8-5.5 7.4-13.5 13.2-22.8 13.2-12.8 0-23.2-10.4-23.2-23.2L0 176c0-26.5 21.5-48 48-48l108.8 0c15 0 27.2-12.2 27.2-27.2 0-9.5-5.4-18-12-24.9-7.5-7.9-12-17.5-12-27.9 0-26.5 28.7-48 64-48z"],"helmet-un":[512,512,[],"e503","M479.5 224C471.2 98.9 367.2 0 240 0 107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384l127.3 0 128.6 121.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5 0-174.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7 32.4-55.5 45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z"],"glass-water":[384,512,[],"e4f4","M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5l-6.6-92.5 251.3 0-6.6 92.5-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0-20.9-10.4-45.5-10.4-66.4 0-19.4 9.7-42.2 9.7-61.6 0L73 156.5z"],"heart-circle-bolt":[576,512,[],"e4fc","M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S369.2 416 376 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S494.8 384 488 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z"],"pump-soap":[320,512,[],"e06b","M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zM224 344c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9 3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C187 263.1 224 311.5 224 344z"],"hand-scissors":[512,512,[],"f257","M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32 0 25.3 19.5 46 44.3 47.9-7.7 8.5-12.3 19.8-12.3 32.1 0 26.5 21.5 48 48 48l96 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3-22.8-22.8-53.6-35.6-85.8-35.6L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4l-67.1-21.4 0 .1-204-64.1C62.9 59.2 40.5 70.9 33.9 92s5.1 43.5 26.2 50.2L269.5 208 40 208z"],dolly:[576,512,["dolly-box"],"f472","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l72.9 0 92.1 276.2c-22.5 17.6-37 45-37 75.8 0 53 43 96 96 96 52.4 0 95.1-42 96-94.3l202.1-67.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2L331.8 357c-17.2-22.1-43.9-36.5-74-37L165.7 43.8C156.9 17.6 132.5 0 104.9 0L32 0zM208 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM280.5 89.3c-25.2 8.2-39 35.3-30.8 60.5l39.6 121.7c8.2 25.2 35.3 39 60.5 30.8l121.7-39.6c25.2-8.2 39-35.3 30.8-60.5L462.8 80.5c-8.2-25.2-35.3-39-60.5-30.8L280.5 89.3z"],paperclip:[512,512,[128206],"f0c6","M224.6 12.8c56.2-56.2 147.4-56.2 203.6 0s56.2 147.4 0 203.6l-164 164c-34.4 34.4-90.1 34.4-124.5 0s-34.4-90.1 0-124.5L292.5 103.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L185 301.3c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l164-164c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-164 164c-53.1 53.1-53.1 139.2 0 192.3s139.2 53.1 192.3 0L428.3 284.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L343.4 459.6c-78.1 78.1-204.7 78.1-282.8 0s-78.1-204.7 0-282.8l164-164z"],democrat:[640,512,[],"f747","M64 32c0-8.9 3.8-20.9 6.2-27.3 1-2.8 3.8-4.7 6.8-4.7 1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1c1.4-1.3 3.2-2.1 5.2-2.1 3 0 5.8 1.8 6.8 4.7 2.4 6.5 6.2 18.4 6.2 27.3 0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8l219.2 0 32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7 0 190.6 4.1 178.9 11.7 169.4L87.6 74.6C78.1 67.4 64 53.2 64 32zM544 352l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-128 352 0zM256 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm248-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM368 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"],"square-arrow-up-right":[448,512,["external-link-square"],"f14c","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM272 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l54.1 0-103 103c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l103-103 0 54.1z"],ferry:[640,512,[],"e4ea","M224 32c0-17.7 14.3-32 32-32L384 0c17.7 0 32 14.3 32 32l0 32 48 0c44.2 0 80 35.8 80 80l0 128-.1 0c.1 .7 .1 1.3 .1 2 0 30.2-7.6 59.8-22 86.3l-12.7 23.3-.6 1c-22.3-11.3-46.5-16.8-70.8-16.7-32.5 .2-64.9 10.7-92.4 31.4-22.1 16.6-29.1 16.6-51.2 0-28.1-21.1-61.3-31.6-94.4-31.4-23.6 .2-47.1 5.7-68.7 16.7l-.6-1-12.7-23.3c-14.4-26.5-22-56.2-22-86.3 0-.7 0-1.4 .1-2l-.1 0 0-128c0-44.2 35.8-80 80-80l48 0 0-32zM160 256l320 0 0-112c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16l0 112zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z"],mosquito:[576,512,[],"e52b","M178.5 495.2c-7.5 9.6-21 12.1-31.3 5.3S133.5 480 138.9 469l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.8-38.3-2.4-2.4c-5.3-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.3-2.1c-5.8-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8c0-11.8 6.5-22.1 16-27.7l0-60.5 .3-3.3c1.5-7.3 8-12.7 15.7-12.7s14.2 5.5 15.7 12.7l.3 3.2 0 60.5c9.6 5.5 16 15.8 16 27.7l0 28.9 53.4-45.8-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 46.6-37.8 84.4-84.4 84.4l-8.1 0c-22.8 0-44.9-8.5-61.9-23.8l-66.1-59.5 39.2 52.2c2.4 3.2 4 7 4.6 10.9l.3 4 0 41 36.2 58 1.2 2.1c5.4 11 2 24.7-8.3 31.5s-23.8 4.4-31.3-5.3l-1.4-2-40-64-1.6-3.1c-1.4-3.1-2.1-6.6-2.1-10.1l0-39.8-32.4-43.1 0 74.7c0 17.7-14.3 32-32 32-17.7 0-32-14.3-32-32l0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2z"],"building-circle-arrow-right":[576,512,[],"e4d1","M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 144.7c-35.7 2.9-68.5 15.6-96 35.4l0-4c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l4 0c-13.8 19.2-24.1 41-30.1 64.5-1.9-.4-3.9-.5-5.9-.5l-32 0c-17.7 0-32 14.3-32 32l0 80 74.9 0c6.1 17.3 14.6 33.4 25.1 48L96 512c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6l28.7 28.7-89.4 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z"],"left-right":[512,512,[8596,"arrows-alt-h"],"f337","M502.6 406.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 492.9 352 480l0-64-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zM9.4 150.6c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 19.1 160 32l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96z"],virus:[512,512,[],"e074","M296 40c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-15.6-15.6-40.9-15.6-56.6 0s-15.6 40.9 0 56.6c31.2 31.2 9.1 84.5-35 84.5-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-44.1 53.3-66.1 84.5-35 15.6 15.6 40.9 15.6 56.6 0s15.6-40.9 0-56.6c-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0C349.3 106.1 296 84.1 296 40zM160 224a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],gem:[512,512,[128142],"f3a5","M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5L210.5 179.8 63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8l-147.2-12.3 57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z"],toilet:[448,512,[128701],"f7d8","M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4-15.5 13.2-26.4 31.6-26.4 54.6 0 46.9 14.3 84.1 37 112.5 14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8S85.7 512 96 512l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8 22.7-28.4 37-65.5 37-112.5 0-23.1-10.9-41.5-26.4-54.6-1.8-1.5-3.7-3-5.6-4.4l0-148.9 8 0c13.3 0 24-10.7 24-24S437.3 0 424 0L24 0zM96 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zM224 288c-88.4 0-160-14.3-160-32s71.6-32 160-32 160 14.3 160 32-71.6 32-160 32z"],"single-quote-left":[192,512,[],"e81b","M128 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216C0 149.7 53.7 96 120 96l8 0z"],"money-bills":[576,512,[],"e1f3","M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zm176 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM160 152l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 112c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM504 159.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM512 264l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM48 152c0-13.3-10.7-24-24-24S0 138.7 0 152L0 416c0 35.3 28.7 64 64 64l392 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 432c-8.8 0-16-7.2-16-16l0-264z"],"tablet-button":[448,512,[],"f10a","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"rectangle-xmark":[512,512,[62164,"rectangle-times","times-rectangle","window-close"],"f410","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z"],wrench:[576,512,[128295],"f0ad","M509.4 98.6c7.6-7.6 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 88.4-71.6 160-160 160-17.5 0-34.4-2.8-50.2-8L146.9 498.9c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8L232 210.2c-5.2-15.8-8-32.6-8-50.2 0-88.4 71.6-160 160-160 20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1l-88.7 88.7c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l88.7-88.7z"],"trash-can":[448,512,[61460,"trash-alt"],"f2ed","M136.7 5.9C141.1-7.2 153.3-16 167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm88 64c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24z"],"table-cells":[448,512,["th"],"f00a","M384 96l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zM256 288l-64 0 0-64 64 0 0 64zm-64 64l64 0 0 64-64 0 0-64zm-64-64l-64 0 0-64 64 0 0 64zM64 352l64 0 0 64-64 0 0-64zm0-192l0-64 64 0 0 64-64 0zm128 0l0-64 64 0 0 64-64 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"],ribbon:[384,512,[127895],"f4d6","M235.1 0c33.4 0 64.5 17.4 81.9 45.9 1.2 2 13 21.3 35.3 57.8 21.1 34.5 18.3 78.5-7 110L278.3 297.7 364.5 406c5.5 6.9 4.4 16.9-2.5 22.5l-80 64c-6.9 5.5-17 4.4-22.5-2.5L38.6 213.8C13.3 182.3 10.5 138.3 31.6 103.8 54 67.2 65.7 47.9 67 45.9 84.4 17.4 115.4 0 148.9 0l86.3 0zM192 189.2l48.6-61.2-97.3 0 48.6 61.2zM75 336.2l86.2 107.8-36.8 46c-5.5 6.9-15.6 8-22.5 2.5l-80-64c-6.9-5.5-8-15.6-2.5-22.5L75 336.2z"],"landmark-flag":[512,512,[],"e51c","M352-32L240-32c-8.8 0-16 7.2-16 16l0 144-176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 224-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-224 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0 0-64 80 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm48 224l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0z"],"up-down-left-right":[512,512,["arrows-alt"],"f0b2","M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S179.1 128 192 128l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S128 332.9 128 320l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S332.9 384 320 384l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S384 179.1 384 192l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z"],"car-side":[640,512,[128663],"f5e4","M147 106.7l-29.8 85.3 122.9 0 0-96-77.9 0c-6.8 0-12.9 4.3-15.1 10.7zM48.6 193.9L86.5 85.6C97.8 53.5 128.1 32 162.1 32L360 32c25.2 0 48.9 11.9 64 32l96.2 128.3C587.1 196.5 640 252.1 640 320l0 16c0 35.3-28.7 64-64 64l-16.4 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-144.7 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-.4 0c-35.3 0-64-28.7-64-64l0-80c0-30.1 20.7-55.3 48.6-62.1zM440 192l-67.2-89.6c-3-4-7.8-6.4-12.8-6.4l-72 0 0 96 152 0zM152 432a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm360-40a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z"],"trash-arrow-up":[448,512,["trash-restore"],"f829","M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0-21.1 323.1C393.3 492.4 372.3 512 347 512L101 512c-25.3 0-46.3-19.6-47.9-44.9L32 144zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z"],"life-ring":[512,512,[],"f1cd","M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3S491.8 142.1 458 98.7c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256S20.2 369.9 54 413.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"],copyright:[512,512,[169],"f1f9","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM205.1 306.9c28.1 28.1 73.7 28.1 101.8 0 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-46.9 46.9-122.8 46.9-169.7 0s-46.9-122.8 0-169.7 122.8-46.9 169.7 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-28.1-28.1-73.7-28.1-101.8 0s-28.1 73.7 0 101.8z"],"file-prescription":[384,512,[],"f572","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 192c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 22.5 0 58.4 55-33.4 31.6c-9.6 9.1-10.1 24.3-.9 33.9s24.3 10.1 33.9 .9l35.4-33.5 35.6 33.5c9.7 9.1 24.8 8.6 33.9-1s8.6-24.8-1-33.9l-33.6-31.6 33.6-31.8c9.6-9.1 10.1-24.3 .9-33.9s-24.3-10.1-33.9-.9l-35.7 33.7-40.9-38.5c12.9-11.7 21.1-28.6 21.1-47.5 0-35.3-28.7-64-64-64l-56 0zm32 80l-8 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-24 0z"],eraser:[576,512,[],"f12d","M178.5 416l123 0 65.3-65.3-173.5-173.5-126.7 126.7 112 112zM224 480l-45.5 0c-17 0-33.3-6.7-45.3-18.7L17 345C6.1 334.1 0 319.4 0 304s6.1-30.1 17-41L263 17C273.9 6.1 288.6 0 304 0s30.1 6.1 41 17L527 199c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41l-135 135 120 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0z"],"hourglass-start":[384,512,["hourglass-1"],"f251","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM288 437l0 11-192 0 0-11c0-25.5 10.1-49.9 28.1-67.9l67.9-67.9 67.9 67.9c18 18 28.1 42.4 28.1 67.9z"],"circle-left":[512,512,[61840,"arrow-alt-circle-left"],"f359","M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM124.7 244.7l104-104c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 56 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 56c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-104-104c-6.2-6.2-6.2-16.4 0-22.6z"],"cruzeiro-sign":[448,512,[],"e152","M240 96c-88.4 0-160 71.6-160 160 0 71.6 47.1 132.3 112 152.7L192 256c0-13.3 10.7-24 24-24 12.8 0 23.3 10.1 24 22.7 15.5-9.5 33.5-14.7 52.3-14.7l11.8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11.8 0c-18.8 0-36.1 10-45.4 26.3-4.5 7.9-6.9 16.8-6.9 25.9l0 75.8c42.5 0 81.1-16.6 109.8-43.6 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C353.7 456.8 299.5 480 240 480 116.3 480 16 379.7 16 256S116.3 32 240 32c59.5 0 113.7 23.2 153.7 61.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3C321.1 112.6 282.5 96 240 96z"],smoking:[576,512,[128684],"f48d","M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM320 448l96 0 0-32-96 0 0 32zM0 416c0-35.3 28.7-64 64-64l384 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm576-40l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24s24 10.7 24 24z"],"square-poll-vertical":[448,512,["poll"],"f681","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 192c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zm184 88c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48zM224 128c13.3 0 24 10.7 24 24l0 208c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24z"],"person-circle-minus":[640,512,[],"e540","M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z"],biohazard:[576,512,[9763],"f780","M260 12.6c0-8.3-7.6-14.5-15.5-12.1-60.9 18.8-105.1 75.8-105.1 143.1 0 25.1 6.1 48.7 17 69.5-21 1.8-42 8.2-61.5 19.5-57.9 33.6-84.8 100.2-70.9 162.5 1.9 8.4 11.4 12 18.9 7.6 5-2.9 7.6-8.6 7.1-14.4-.3-3.3-.4-6.6-.4-10.1 0-123.5 184.4-123.5 184.4 0 0 88.4-94.5 113.6-148.2 75.4-4.5-3.2-10.5-3.9-15.3-1.1-7 4.1-8.6 13.6-2.7 19.1 46.6 43.8 118 53.9 176.1 20.2 17.9-10.4 32.8-23.9 44.5-39.4 11.7 15.6 26.6 29.1 44.5 39.4 58.1 33.7 129.5 23.6 176.1-20.2 5.9-5.5 4.3-15.1-2.7-19.1-4.8-2.8-10.8-2.1-15.3 1.1-53.7 38.2-148.2 13-148.2-75.4 0-123.5 184.4-123.5 184.4 0 0 3.4-.1 6.8-.4 10.1-.5 5.8 2.1 11.5 7.1 14.4 7.4 4.3 17 .8 18.9-7.6 13.9-62.2-13-128.9-70.9-162.5-19.5-11.3-40.4-17.7-61.5-19.5 10.9-20.8 17-44.4 17-69.5 0-67.3-44.2-124.3-105.1-143.1-7.9-2.4-15.5 3.8-15.5 12.1 0 5.9 4 11 9.5 13.2 83.4 33.6 70.8 178.4-37.8 178.4S167.1 59.4 250.5 25.8c5.5-2.2 9.5-7.3 9.5-13.2zM248.4 288a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM435 317.7c-16.2 0-31.4 5.5-42.1 15-10.1 9.1-18.1 23.4-18.1 45.6 0 21.1 7.2 35 16.5 44.1 32.2-24.6 55.5-60.5 63.9-101.8-6.3-1.9-13.2-3-20.2-3zM202 378.3c0-22.3-8-36.6-18.1-45.6-10.7-9.6-25.9-15-42.1-15-7 0-13.9 1-20.2 3 8.4 41.3 31.6 77.2 63.9 101.8 9.4-9.1 16.5-23.1 16.5-44.2zm41.2-224.3c9 10.2 23.2 18.2 45.2 18.2s36.2-8 45.2-18.2c6.7-7.6 11.5-17.5 13.6-28.4-18.3-6.8-38.2-10.5-58.8-10.5s-40.5 3.7-58.8 10.5c2.2 10.9 6.9 20.8 13.6 28.5z"],"bell-concierge":[512,512,[128718,"concierge-bell"],"f562","M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C124.8 156.7 40.2 243.7 32.6 352l446.9 0C471.8 243.7 387.2 156.7 280 145.3l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z"],"ruler-horizontal":[576,512,[],"f547","M48 384c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48l24 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 24 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 384z"],horse:[576,512,[128014],"f6f0","M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26 20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16S568.8 0 560 0L448 0C377.3 0 320 57.3 320 128l-171.2 0C118.1 128 91.2 144.3 76.3 168.8 33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5 1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7 0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7l0 0 0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z"],calendar:[448,512,[128197,128198],"f133","M128 0C110.3 0 96 14.3 96 32l0 32-32 0C28.7 64 0 92.7 0 128l0 48 448 0 0-48c0-35.3-28.7-64-64-64l-32 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32zM0 224L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192-448 0z"],"hands-holding-child":[640,512,[],"e4fa","M320-32a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40zM384.5 149l-19.8-16.7 11.1 88.8c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8-19.8 16.7c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 72.8 295.3 64 320 64s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8z"],italic:[384,512,[],"f033","M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0-133.3 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0 133.3-320-64 0c-17.7 0-32-14.3-32-32z"],khanda:[512,512,[9772],"f66d","M240.7 8c8.9-7.4 21.8-7.4 30.7 0l37.8 31.5c8.7 7.3 11.1 19.6 6 29.6-1.2 2.4-2.8 5.5-4.6 9.2 34.2 19.2 57.3 55.8 57.3 97.8s-23.1 78.6-57.3 97.8c1.8 3.7 3.3 6.8 4.6 9.2 5.1 10 2.7 22.3-6 29.6l-37.2 31 0 19.8c22.9-15.7 48.4-33.3 76.7-52.7 42.8-29.4 68.4-78 68.4-130l0-11.1c0-23.9-7.1-47.3-20.4-67.2-5.1-7.7-4.6-17.8 1.7-24.6 6.6-7.1 17.2-8.1 25.2-2.8 27.5 18.1 89.4 67.5 89.4 149.1 0 46.5-20.2 88.6-41.8 120.4-21.6 32-45.6 55-55.3 63.8-7.8 7.1-19 7.9-27.6 3l-70.8-40.3-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21l-40.2-27.6 0 28.9c9.6 5.5 16 15.9 16 27.7 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7c-1.8 11.4-11.8 20.1-23.7 20.1-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-70.8 40.3c-8.7 4.9-19.8 4.1-27.6-3-9.7-8.8-33.7-31.9-55.3-63.8-21.5-31.8-41.8-73.9-41.8-120.4 0-81.7 61.9-131.1 89.4-149.1 8.1-5.3 18.6-4.3 25.2 2.8 6.4 6.9 6.8 17 1.7 24.6-13.3 19.9-20.4 43.3-20.4 67.2l0 11.1c0 51.9 25.6 100.6 68.4 130 28.4 19.6 53.7 36.9 75.6 52l0-19.1-37.2-31c-8.7-7.3-11.1-19.6-6-29.6 1.2-2.4 2.8-5.5 4.6-9.2-34.2-19.2-57.3-55.8-57.3-97.8s23.1-78.6 57.3-97.8c-1.8-3.7-3.3-6.8-4.6-9.2-5.1-10-2.7-22.3 6-29.6L240.7 8zM220.3 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1c6.8-19.2 11.8-38.4 11.8-53.1s-4.9-33.9-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1c-6.8 19.2-11.8 38.4-11.8 53.1s4.9 33.9 11.8 53.1z"],"face-frown-open":[512,512,[128550,"frown-open"],"f57a","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4 16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z"],check:[448,512,[10003,10004],"f00c","M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z"],fingerprint:[512,512,[],"f577","M48 256c0-114.9 93.1-208 208-208 63.1 0 119.6 28.1 157.8 72.5 8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0 114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6-15.2 5-18.7 23.7-8.3 35.9 7.1 8.3 18.8 10.8 29.4 7.9 10.6-2.9 21.8-4.4 33.4-4.4 70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3-1.7 14.6 9.4 27.8 24.2 27.8 11.8 0 21.9-8.6 23.3-20.3 3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4-23.1 29.8-36.8 67.1-36.8 107.7l0 24.9c0 24.2-2.6 48.4-7.8 71.9-3.4 15.6 7.9 31.1 23.9 31.1 10.5 0 19.9-7 22.2-17.3 6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1 7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1-3.8 14.3 6.7 29 21.5 29 9.5 0 17.9-6.2 20.4-15.4 10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9-2.7 13.9 7.7 27.2 21.8 27.2 10.2 0 19-7 21-17 7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z"],"charging-station":[576,512,[],"f5e7","M64 64C64 28.7 92.7 0 128 0L288 0c35.3 0 64 28.7 64 64l0 224c44.2 0 80 35.8 80 80l0 12c0 11 9 20 20 20s20-9 20-20l0-127.7c-32.5-10.2-56-40.5-56-76.3l0-32c0-8.8 7.2-16 16-16l16 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 32 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 16 0c8.8 0 16 7.2 16 16l0 32c0 35.8-23.5 66.1-56 76.3L520 380c0 37.6-30.4 68-68 68s-68-30.4-68-68l0-12c0-17.7-14.3-32-32-32l0 129.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L72 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L64 64zm82.7 125.7l39 0-20.9 66.9c-2.4 7.6 3.3 15.4 11.3 15.4 2.9 0 5.6-1 7.8-2.9l94.6-82c3.1-2.7 4.9-6.6 4.9-10.7 0-7.8-6.3-14.1-14.1-14.1l-39 0 20.9-66.9c2.4-7.6-3.3-15.4-11.3-15.4-2.9 0-5.6 1-7.8 2.9l-94.6 82c-3.1 2.7-4.9 6.6-4.9 10.7 0 7.8 6.3 14.1 14.1 14.1z"],"user-lock":[576,512,[],"f502","M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c29.7 0 57.7 7.3 82.3 20.1l0 4.3c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zm301.7 .1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z"],"mobile-screen-button":[384,512,["mobile-alt"],"f3cd","M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm64 0l0 304 224 0 0-304-224 0zM192 472c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z"],"anchor-circle-check":[640,512,[],"e4aa","M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 0c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3L80 307.9c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z"],"person-walking-with-cane":[576,512,["blind"],"f29d","M224-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM160 205.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l34.4-34.4c23.2-23.2 54.6-36.2 87.3-36.2 36.1 0 70.3 15.8 93.8 43.1l68.6 80c11.5 13.4 9.9 33.6-3.5 45.1s-33.6 9.9-45.1-3.5l-55.7-65 0 118.6 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L160.1 371zm233.5-62.2c10.6-8 25.6-5.8 33.6 4.8l144 192c8 10.6 5.8 25.6-4.8 33.6s-25.6 5.8-33.6-4.8l-144-192c-8-10.6-5.8-25.6 4.8-33.6z"],"file-waveform":[384,512,["file-medical-alt"],"f478","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-96 60.3 0 48.8 62.7c5.1 6.6 13.3 10 21.6 9.1s15.5-6.1 19.1-13.6l42.9-91.2 9.9 19.8c4.1 8.1 12.4 13.3 21.5 13.3l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-57.2 0-25.4-50.7c-4.1-8.2-12.6-13.4-21.8-13.3s-17.5 5.5-21.4 13.8l-47.3 100.6-32-41.1C86.4 307.4 79.4 304 72 304L0 304 0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5z"],"house-crack":[512,512,[],"e3b1","M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l86.4 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L256 368 195.8 285.2c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L256 448 294.4 512 400 512c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208z"],"hat-wizard":[512,512,[],"f6e8","M64 400l85.7-208.2c17-41.3 47.8-75.3 87.2-96.3L383.8 17.2c12.3-6.6 26.5 4.7 23 18.2L369.6 177.8c-1.1 4.1-1.6 8.3-1.6 12.6 0 6.3 1.2 12.6 3.6 18.5l76.4 191.1-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 260.4 230.9 256 224 256s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 323 144 329.1 144 336s4.4 13 10.9 15.2l40.4 13.5 11.8 35.4-143.1 0zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z"],"user-doctor":[448,512,["user-md"],"f0f0","M224 8a120 120 0 1 0 0 240 120 120 0 1 0 0-240zm60 312.8c-5.4-.5-11-.8-16.6-.8l-86.9 0c-5.6 0-11.1 .3-16.6 .8l0 67.5c16.5 7.6 28 24.3 28 43.6 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-19.4 11.5-36.1 28-43.6l0-58.4C61 353 16 413.6 16 484.6 16 499.7 28.3 512 43.4 512l361.1 0c15.1 0 27.4-12.3 27.4-27.4 0-71-45-131.5-108-154.6l0 37.4c23.3 8.2 40 30.5 40 56.6l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-11-9-20-20-20s-20 9-20 20l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-26.1 16.7-48.3 40-56.6l0-46.6z"],"chart-bar":[512,512,["bar-chart"],"f080","M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 80l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 112l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"],"spray-can-sparkles":[576,512,["air-freshener"],"f5d0","M160 32l0 80 128 0 0-80c0-17.7-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32zm0 128c-53 0-96 43-96 96l0 208c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96l-128 0zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM448 48c0-1.4-1-3-2.2-3.6L416 32 403.6 2.2C403 1 401.4 0 400 0s-3 1-3.6 2.2L384 32 354.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L384 64 396.4 93.8C397 95 398.6 96 400 96s3-1 3.6-2.2L416 64 445.8 51.6C447 51 448 49.4 448 48zm76.4 45.8C525 95 526.6 96 528 96s3-1 3.6-2.2L544 64 573.8 51.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 32 531.6 2.2C531 1 529.4 0 528 0s-3 1-3.6 2.2L512 32 482.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 64 524.4 93.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L512 224 482.2 236.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 256 524.4 285.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L544 256 573.8 243.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 224 531.6 194.2zM512 144c0-1.4-1-3-2.2-3.6L480 128 467.6 98.2C467 97 465.4 96 464 96s-3 1-3.6 2.2L448 128 418.2 140.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L448 160 460.4 189.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 160 509.8 147.6c1.2-.6 2.2-2.2 2.2-3.6z"],"baht-sign":[320,512,[],"e0ac","M136 0c-13.3 0-24 10.7-24 24l0 40-74.4 0C16.8 64 0 80.8 0 101.6L0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 48 0c61.9 0 112-50.1 112-112 0-40.1-21.1-75.3-52.7-95.1 13.1-18.3 20.7-40.7 20.7-64.9 0-61.9-50.1-112-112-112l-16 0 0-40c0-13.3-10.7-24-24-24zM112 128l0 96-48 0 0-96 48 0zm48 96l0-96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0zm-48 64l0 96-48 0 0-96 48 0zm48 96l0-96 48 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-48 0z"],"temperature-arrow-up":[512,512,["temperature-up"],"e040","M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-212.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 9.4l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-9.4-9.4 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-178.7-9.4 9.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c6-6 14.1-9.4 22.6-9.4s16.6 3.4 22.6 9.4z"],"web-awesome":[640,512,[],"e682","M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192 552.4 171.1c-5.3-7.7-8.4-17.1-8.4-27.1 0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144 0 117.5 21.5 96 48 96s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1 0-28.7 23.3-52 52-52s52 23.3 52 52z"],"non-binary":[384,512,[],"e807","M192 544c-97.2 0-176-78.8-176-176 0-86.3 62.1-158 144-173l0-47.2-49.7 24.8-3 1.3c-15.2 5.7-32.5-.8-39.9-15.7-7.4-14.8-2.2-32.6 11.5-41.3l2.8-1.6 38.8-19.4-38.8-19.4c-15.8-7.9-22.2-27.1-14.3-42.9 7.4-14.8 24.8-21.4 40-15.6l3 1.3 49.7 24.8 0-44.2c0-17.7 14.3-32 32-32s32 14.3 32 32l0 44.2 49.7-24.8 3-1.3c15.2-5.8 32.5 .8 39.9 15.6s2.2 32.7-11.5 41.3l-2.8 1.6-38.7 19.4 38.7 19.3c15.8 7.9 22.2 27.1 14.3 42.9-7.4 14.8-24.7 21.4-39.9 15.6l-3-1.3-49.7-24.8 0 47.2c81.9 15.1 144 86.8 144 173 0 97.2-78.8 176-176 176zm0-64a112 112 0 1 0 0-224 112 112 0 1 0 0 224z"],n:[384,512,[110],"4e","M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 50.5 8.4 38.5 21.1 33.9z"],"arrows-up-down-left-right":[512,512,["arrows"],"f047","M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 114.7-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 114.7 0 0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-114.7 114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-114.7 0 0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z"],house:[512,512,[127968,63498,63500,"home","home-alt","home-lg-alt"],"f015","M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM240 320l32 0c26.5 0 48 21.5 48 48l0 96-128 0 0-96c0-26.5 21.5-48 48-48z"],spinner:[512,512,[],"f110","M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm0 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM48 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm368 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zM75 75A48 48 0 1 1 142.9 142.9 48 48 0 1 1 75 75zM437 369.1A48 48 0 1 1 369.1 437 48 48 0 1 1 437 369.1z"],gavel:[576,512,["legal"],"f0e3","M169.6 153.4l-18.7-18.7c-12.5-12.5-12.5-32.8 0-45.3L265.6-25.4c12.5-12.5 32.8-12.5 45.3 0L329.6-6.6c12.5 12.5 12.5 32.8 0 45.3L214.9 153.4c-12.5 12.5-32.8 12.5-45.3 0zM276 211.7l-31.4-31.4 112-112 119.4 119.4-112 112-31.4-31.4-232 232c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l232-232zM390.9 374.6c-12.5-12.5-12.5-32.8 0-45.3L505.6 214.6c12.5-12.5 32.8-12.5 45.3 0l18.7 18.7c12.5 12.5 12.5 32.8 0 45.3L454.9 393.4c-12.5 12.5-32.8 12.5-45.3 0l-18.7-18.7z"],"ticket-simple":[576,512,["ticket-alt"],"f3ff","M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6-18.8 6.5-32.3 24.4-32.3 45.4s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64C0 311.2 7.4 304.3 15.7 301.4 34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z"],dove:[512,512,[128330],"f4ba","M496 64c13.2 0 20.7 15.1 12.8 25.6L480 128 480 304c0 79.5-64.5 144-144 144l-112 0-46.3 46.3c-10.4 10.4-26.5 12.4-39.1 4.8L41.5 440.9c-17-10.2-15-35.5 3.4-42.9L160 352C23.8 311.1 7.5 169.8 22 95.7 25.6 77.9 45.3 71.4 61.3 80.2L320 224 320 144c0-44.2 35.8-80 80-80l96 0zm-96 56a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM182.5-9.6c12.4-13.7 33.3-8.9 42.5 7.1l56.4 98.3c-5.8 14.4-9.2 30.1-9.4 46.5L138.1 68c10.1-31.6 27-58.4 44.4-77.6z"],"tarp-droplet":[512,512,[],"e57c","M256 160c35.3 0 64-26.9 64-60 0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60zM368 96c0 61.9-50.1 112-112 112S144 157.9 144 96c0-11.1 1.6-21.9 4.6-32L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l277.5 0c17 0 33.3-6.7 45.3-18.7L493.3 322.7c12-12 18.7-28.3 18.7-45.3L512 128c0-35.3-28.7-64-64-64l-84.6 0c3 10.1 4.6 20.9 4.6 32zm85.5 176L336 389.5 336 296c0-13.3 10.7-24 24-24l93.5 0zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"tree-city":[640,512,[],"e587","M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM528 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 480l0-160-16 0c-44.2 0-80-35.8-80-80 0-26.7 13.1-50.3 33.2-64.9-.8-4.9-1.2-10-1.2-15.1 0-53 43-96 96-96s96 43 96 96l0 96c0 35.3-28.7 64-64 64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32z"],"turn-up":[384,512,[10548,"level-up-alt"],"f3bf","M169.4 9.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S332.9 192 320 192l-64 0 0 160c0 88.4-71.6 160-160 160l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32-14.3 32-32l0-160-64 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128z"],"temperature-quarter":[320,512,["temperature-1","thermometer-1","thermometer-quarter"],"f2ca","M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-28.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 28.7c23.5 9.5 40 32.5 40 59.3z"],sliders:[512,512,["sliders-h"],"f1de","M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 224zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384z"],mosque:[576,512,[128332],"f678","M174.8 224l226.4 0c43.5 0 78.8-35.3 78.8-78.8 0-25.5-12.3-49.4-33.1-64.2L297.3-25.4c-5.6-3.9-13-3.9-18.5 0L129.1 81C108.3 95.8 96 119.7 96 145.2 96 188.7 131.3 224 174.8 224zM512 512c35.3 0 64-28.7 64-64l0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-448 0 0-48c0-17.7-14.3-32-32-32S0 206.3 0 224L0 448c0 35.3 28.7 64 64 64l448 0zM240 384c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80-96 0 0-80z"],h:[384,512,[104],"48","M320 288l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-256 0 0-160c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 256 0z"],info:[192,512,[],"f129","M48 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM0 192c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 256 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-224-32 0c-17.7 0-32-14.3-32-32z"],"person-walking":[384,512,[128694,"walking"],"f554","M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM105.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L60.1 182.6C42.1 200.6 32 225 32 250.5L32 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zm12.4 179.4c-1.5 5.2-4.3 10-8.1 13.8L41.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8l-10.4 36.2z"],"arrow-turn-down":[384,512,["level-down"],"f149","M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z"],road:[512,512,[128739],"f018","M223.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L1.4 420.5C-6.1 450.7 16.8 480 48 480l175.9 0 0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 176.1 0c31.2 0 54.1-29.3 46.6-59.5L426.5 80.6C419.4 52.1 393.8 32 364.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z"],spiral:[512,512,[],"e80a","M115.5 7.4c13.6-11.3 33.8-9.5 45.1 4.1s9.5 33.8-4.1 45.1C100.2 103.5 64 175.2 64 256 64 362 150 448 256 448s192-86 192-192c0-75.1-60.9-136-136-136S176 180.9 176 256c0 44.2 35.8 80 80 80s80-35.8 80-80c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-48.6 39.4-88 88-88s88 39.4 88 88c0 79.5-64.5 144-144 144S112 335.5 112 256c0-110.5 89.5-200 200-200s200 89.5 200 200c0 141.4-114.6 256-256 256S0 397.4 0 256C0 155.8 45 66.1 115.5 7.4z"],"face-frown":[512,512,[9785,"frown"],"f119","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm90.6-113.9c-20.4-28-53.4-46.1-90.6-46.1s-70.2 18.1-90.6 46.1c-7.8 10.7-22.8 13.1-33.5 5.3s-13.1-22.8-5.3-33.5C155.7 330 202.8 304 256 304s100.3 26 129.4 65.9c7.8 10.7 5.4 25.7-5.3 33.5s-25.7 5.4-33.5-5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"wine-glass-empty":[320,512,["wine-glass-alt"],"f5ce","M64 0C48.7 0 35.6 10.8 32.6 25.7L3.2 173C1.1 183.5 0 194.2 0 205l0 3c0 77.4 55 142 128 156.8l0 115.2-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-115.2C265 350 320 285.4 320 208l0-3c0-10.7-1.1-21.4-3.2-32L287.4 25.7C284.4 10.8 271.3 0 256 0L64 0zm1.9 185.6L90.2 64 229.8 64 254.1 185.6c1.3 6.4 1.9 12.9 1.9 19.4l0 3c0 53-43 96-96 96s-96-43-96-96l0-3c0-6.5 .6-13 1.9-19.4z"],clapperboard:[512,512,[],"e131","M448 64c2 0 3.9 .1 5.8 .3l-95.7 95.7 67.9 0 72-72c8.8 11 14 24.9 14 40l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l70.1 0-96 96 67.9 0 95-95 1-1 92.1 0-96 96 67.9 0 95-95 1-1 86.1 0z"],"forward-step":[384,512,["step-forward"],"f051","M21 36.8c12.9-7 28.7-6.3 41 1.8L320 208.1 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144.1-258 169.6c-12.3 8.1-28 8.8-41 1.8S0 454.7 0 440L0 72C0 57.3 8.1 43.8 21 36.8z"],"square-up-right":[448,512,[8599,"external-link-square-alt"],"f360","M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM168 160c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l35 35-67 67c-9.4 9.4-9.4 24.6 0 33.9l24 24c9.4 9.4 24.6 9.4 33.9 0l67-67 35 35c6.9 6.9 17.2 8.9 26.2 5.2S320 321.7 320 312l0-128c0-13.3-10.7-24-24-24l-128 0z"],"book-journal-whills":[448,512,["journal-whills"],"f66a","M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM274.1 99.2c2.6-2.6 6.7-3.1 9.9-1.1 32.1 20 53.4 55.6 53.4 96.2 0 62.6-50.7 113.3-113.3 113.3S110.7 256.9 110.7 194.3c0-40.6 21.4-76.2 53.4-96.2 3.1-2 7.2-1.5 9.9 1.1s3.1 6.7 1.2 9.8c-5.2 8.6-8.2 18.7-8.2 29.5 0 15.1 5.9 28.8 15.5 39.1 2.5 2.7 2.9 6.7 .9 9.7-4.7 7.4-7.4 16.1-7.4 25.5 0 21.6 14.3 39.9 34 45.9l1-24.8c-7.1-4.4-11.8-12.2-11.8-21.1 0-9.6 5.5-18 13.5-22.1l3.3-81.8c.2-4.3 3.7-7.7 8-7.7s7.8 3.4 8 7.7l3.3 81.8c8 4.1 13.5 12.4 13.5 22.1 0 8.9-4.7 16.7-11.8 21.1l1 24.8c19.6-6 33.9-24.1 34-45.6l0-.6c-.1-9.3-2.7-17.9-7.4-25.2-1.9-3.1-1.6-7.1 .9-9.7 9.6-10.2 15.5-23.9 15.5-39.1 0-10.8-3-20.9-8.2-29.5-1.9-3.2-1.4-7.2 1.2-9.8z"],"champagne-glasses":[640,512,[129346,"glass-cheers"],"f79f","M155.6 17.3C163 3 179.9-3.6 195 1.9l125 45.6 125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6l31.3 86.2 41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41c-47.4 17.3-94.8 34.5-142.2 51.8-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-33.9-130-95.2l-14.6-64.7-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6.1 25.2 24.4 19.1 41s-24.4 25.2-41 19.1c-47.4-17.3-94.8-34.6-142.2-51.8-16.6-6.1-25.2-24.4-19.1-41S26.3 392 42.9 398l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8 89.2 32.5 13.1-57.9-75.1-27.4zm240.9 0l-75.1 27.4 13.1 57.9 89.2-32.5-27.2-52.8z"],dumpster:[576,512,[],"f793","M132.3 64L106.7 192 24 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L26.5 80.4C29.8 70.6 39 64 49.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM312 64l82.7 0 25.6 128-108.3 0 0-128zm131.7 0l83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1c0 13.3-10.7 24-24 24l-82.7 0-25.6-128zM25.7 240l524.7 0c-.4 2.1-13.3 73.4-38.9 213.7-3 16.3-17.9 27.6-34.4 26.1S448 464.6 448 448l0-16-320 0 0 16c0 16.6-12.6 30.4-29.1 31.9S67.5 470 64.5 453.7C39 313.3 26 242.1 25.7 240z"],"heart-circle-xmark":[576,512,[],"e501","M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z"],computer:[576,512,[],"e4e5","M348.8 32C340.7 46.1 336 62.5 336 80l0 16-272 0 0 224 272 0 0 64-272 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l284.8 0zM336 432c0 17.5 4.7 33.9 12.8 48L120 480c-13.3 0-24-10.7-24-24s10.7-24 24-24l216 0zM432 32l96 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm24 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm56 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"],"wand-magic":[512,512,["magic"],"f0d0","M398.5 12.2l-88.2 88.2 101.3 101.3 88.2-88.2C507.6 105.6 512 95 512 84s-4.4-21.6-12.2-29.5L457.5 12.2C449.6 4.4 439 0 428 0s-21.6 4.4-29.5 12.2zM276.4 134.3L12.2 398.5C4.4 406.4 0 417 0 428s4.4 21.6 12.2 29.5l42.3 42.3C62.4 507.6 73 512 84 512s21.6-4.4 29.5-12.2L377.7 235.6 276.4 134.3z"],brain:[512,512,[129504],"f5dc","M120 56c0-30.9 25.1-56 56-56l24 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-32 0c-29.8 0-54.9-20.4-62-48-.7 0-1.3 0-2 0-44.2 0-80-35.8-80-80 0-18 6-34.6 16-48-19.4-14.6-32-37.8-32-64 0-30.9 17.6-57.8 43.2-71.1-7.1-12-11.2-26-11.2-40.9 0-44.2 35.8-80 80-80l0-24zm272 0l0 24c44.2 0 80 35.8 80 80 0 15-4.1 29-11.2 40.9 25.7 13.3 43.2 40.1 43.2 71.1 0 26.2-12.6 49.4-32 64 10 13.4 16 30 16 48 0 44.2-35.8 80-80 80-.7 0-1.3 0-2 0-7.1 27.6-32.2 48-62 48l-32 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32l24 0c30.9 0 56 25.1 56 56z"],"briefcase-medical":[512,512,[],"f469","M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zm80 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z"],"house-medical-circle-exclamation":[640,512,[],"e512","M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"],"code-commit":[576,512,[],"f386","M288 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C430 361 365.4 416 288 416S146 361 131.2 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l99.2 0C146 151 210.6 96 288 96s142 55 156.8 128l99.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-99.2 0z"],"person-breastfeeding":[448,512,[],"e53a","M224 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5-17.6-14.1-22.7-38.1-13.5-57.7l-.7-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7-4.9-2.8-9.2-6.4-12.6-10.6-4.6-5.4-7.8-11.7-9.6-18.4-3.3-12-1.9-25.2 4.8-36.6 .6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4 2.9 6.7 4.3 13.8 4 20.8-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z"],"person-rays":[512,512,[],"e54d","M312.5 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C338.5 132 298.8 112 256.5 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l46.3-62.4 0 275.3c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM7.5 7c-9.4 9.4-9.4 24.6 0 33.9l80 80c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41.5 7C32.1-2.3 16.9-2.3 7.5 7zm464 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7.5 505c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9zm464 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l80 80z"],"manat-sign":[384,512,[],"e1d5","M192 32c-13.3 0-24 10.7-24 24l0 41.5C73.3 109.3 0 190.1 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-62.5 44.8-114.5 104-125.8L168 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-293.8c59.2 11.2 104 63.3 104 125.8l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-97.9-73.3-178.7-168-190.5L216 56c0-13.3-10.7-24-24-24z"],sort:[384,512,["unsorted"],"f0dc","M2.4 204.2c5 12 16.6 19.8 29.6 19.8l320 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-9.2 9.2-11.9 22.9-6.9 34.9zm0 103.5c-5 12-2.2 25.7 6.9 34.9l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288c-12.9 0-24.6 7.8-29.6 19.8z"],"circle-radiation":[512,512,[9762,"radiation-alt"],"f7ba","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm80 0l64.3 0c8.7 0 15.7-7.1 17.3-15.6 4.4-24.4 18.1-45.5 37.2-59.7 7.4-5.5 10.6-15.6 6-23.6l-32.5-56.3c-4.3-7.5-13.9-10.3-21.2-5.5-48.2 31.5-81.3 84.2-86.3 144.8-.7 8.8 6.5 16 15.3 16zm137.9 89.8c-8.5-3.7-18.8-1.4-23.5 6.6l-31 53.8c-4.3 7.5-1.9 17.2 5.8 21.1 26.1 13.2 55.5 20.7 86.8 20.7s60.7-7.5 86.8-20.7c7.7-3.9 10.1-13.6 5.8-21.1l-31-53.8c-4.6-8-15-10.3-23.5-6.6-11.7 5-24.5 7.8-38.1 7.8s-26.4-2.8-38.1-7.8zM350.4 240.4c1.6 8.6 8.5 15.6 17.3 15.6l64.3 0c8.8 0 16.1-7.2 15.3-16-5-60.6-38.1-113.2-86.3-144.8-7.3-4.8-16.8-2-21.2 5.5L307.3 157c-4.6 8-1.4 18.1 6 23.6 19.1 14.2 32.7 35.4 37.2 59.7zM256 305.7a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"],"laptop-code":[640,512,[],"f5fc","M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"],sink:[512,512,[],"e06d","M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32 14.3 32 32 32 32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-40c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 40-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-40c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 40-64 0 0-192z"],"arrow-up-from-water-pump":[640,512,[],"e4b6","M144 32c-26.5 0-48 21.5-48 48l0 176-16 0c-26.5 0-48 21.5-48 48l0 79.6c17.6-2 36 2.5 51.3 14 3.4 2.6 6.1 1.4 9.8-.3l.8-.4c5.7-2.6 12.9-6.9 21.7-13.5 27.5-20.7 59.9-31.2 92.3-31.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 10.7-8.1 22.9-12.7 35.3-14.1l0-79.5c0-26.5-21.5-48-48-48l-56 0 0-142.1 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L497 39c-9.4-9.4-24.6-9.4-33.9 0l-88 88c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 0 142.1-136 0 0-176c0-26.5-21.5-48-48-48L144 32zM474.6 476.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0z"],"microphone-lines-slash":[576,512,["microphone-alt-slash"],"f539","M7-24.9c9.4-9.4 24.6-9.4 33.9 0l151 151 0-30.2c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L328 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-1.9 22.9-11.8 43.4-26.9 59l33.9 33.9c25.5-26 41.3-61.6 41.3-100.9l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 52.6-21.1 100.2-55.3 134.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM297.8 367.7l41.4 41.4c-8.8 2.4-17.9 4.3-27.3 5.4l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C169.3 402.7 96 321.9 96 224l0-40c0-5.1 1.6-9.9 4.4-13.8l43.6 43.6 0 10.2c0 79.5 64.5 144 144 144 3.3 0 6.6-.1 9.8-.3z"],server:[448,512,[],"f233","M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"],user:[448,512,[128100,62144,62470,"user-alt","user-large"],"f007","M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-59.4 0z"],snowflake:[512,512,[10052,10054],"f2dc","M288.2 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 62.1-15-15c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l49 49 0 70.6-61.2-35.3-17.9-66.9c-3.4-12.8-16.6-20.4-29.4-17S95.3 98 98.7 110.8l5.5 20.5-53.7-31C35.2 91.5 15.6 96.7 6.8 112s-3.6 34.9 11.7 43.7l53.7 31-20.5 5.5c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l66.9-17.9 61.2 35.3-61.2 35.3-66.9-17.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l20.5 5.5-53.7 31C3.2 365.1-2 384.7 6.8 400s28.4 20.6 43.7 11.7l53.7-31-5.5 20.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l17.9-66.9 61.2-35.3 0 70.6-49 49c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l15-15 0 62.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-62.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-70.6 61.2 35.3 17.9 66.9c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-5.5-20.5 53.7 31c15.3 8.8 34.9 3.6 43.7-11.7s3.6-34.9-11.7-43.7l-53.7-31 20.5-5.5c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-66.9 17.9-61.2-35.3 61.2-35.3 66.9 17.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-20.5-5.5 53.7-31c15.3-8.8 20.6-28.4 11.7-43.7s-28.4-20.5-43.7-11.7l-53.7 31 5.5-20.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-17.9 66.9-61.2 35.3 0-70.6 49-49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-15 15 0-62.1z"],"skull-crossbones":[448,512,[128369,9760],"f714","M384 144C384 64.5 312.4 0 224 0S64 64.5 64 144c0 47.1 25.1 88.9 64 115.2l0 28.8c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-28.8c38.9-26.3 64-68.1 64-115.2zM160 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM445.5 339.7c-6.8-16.3-25.5-24-41.8-17.2L224 397.3 44.3 322.5c-16.3-6.8-35 .9-41.8 17.2s.9 35 17.2 41.8L140.8 432 19.7 482.5C3.4 489.3-4.3 508 2.5 524.3s25.5 24 41.8 17.2L224 466.7 403.7 541.5c16.3 6.8 35-.9 41.8-17.2s-.9-35-17.2-41.8L307.2 432 428.3 381.5c16.3-6.8 24-25.5 17.2-41.8z"],"peso-sign":[448,512,[],"e222","M112 32C94.3 32 80 46.3 80 64l0 64-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c65.6 0 122-39.5 146.7-96l37.3 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.8 0c.5-5.3 .8-10.6 .8-16s-.3-10.7-.8-16l24.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-37.3 0C362 71.5 305.6 32 240 32L112 32zm199.6 96l-167.6 0 0-32 96 0c28.4 0 54 12.4 71.6 32zM144 176l190.7 0c.9 5.2 1.3 10.5 1.3 16s-.5 10.8-1.3 16l-190.7 0 0-32zm167.6 80c-17.6 19.6-43.1 32-71.6 32l-96 0 0-32 167.6 0z"],"wine-glass":[320,512,[127863],"f4e3","M32.6 25.7C35.6 10.8 48.7 0 64 0L256 0c15.3 0 28.4 10.8 31.4 25.7L316.8 173c2.1 10.5 3.2 21.2 3.2 32l0 3c0 77.4-55 142-128 156.8l0 115.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-115.2C55 350 0 285.4 0 208l0-3c0-10.7 1.1-21.4 3.2-32L32.6 25.7zM77.4 128l165.1 0-12.8-64-139.5 0-12.8 64z"],"temperature-half":[320,512,[127777,"temperature-2","thermometer-2","thermometer-half"],"f2c9","M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-92.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 92.7c23.5 9.5 40 32.5 40 59.3z"],ticket:[576,512,[127903],"f145","M64 64C28.7 64 0 92.7 0 128l0 64C0 200.8 7.4 207.7 15.7 210.6 34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6-18.8-6.5-32.3-24.4-32.3-45.4s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zM416 336l0-160-256 0 0 160 256 0zM112 160c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32l0-192z"],"wheat-awn-circle-exclamation":[640,512,[],"e598","M496 576a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM81 529c-9.4 9.3-24.5 9.3-33.9 0-9.4-9.4-9.4-24.6 0-33.9L81 529zm30.2-294.4c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 31.7-7.7 66.2 1 90.6 25.3l12 12c-.8 7-1.2 14.2-1.2 21.4 0 20 3 39.3 8.7 57.4-36.8 21.8-85 17-116.6-14.7L165.6 444.3 81 529C69.7 517.7 58.4 506.3 47 495l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM496 476a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16zM215.2 130.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 24.2-5.9 50.1-2.1 71.9 10.8-32.2 24.9-56.2 59.8-67.4 100.1-3.8-2.8-7.5-6-11-9.5l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM526.7 15c9.4-9.4 24.6-9.4 33.9 0 8.8 8.8 9.3 22.7 1.7 32.1L560.6 49 446.2 163.4c7.7 1 15.3 3 22.5 5.9L527 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c3.2 3.2 4.7 7.4 4.7 11.6-17.7-5.4-36.5-8.3-55.9-8.3-34.2 0-66.3 8.9-94.1 24.6l-92.7-92.7c-37.5-37.5-37.5-98.3 0-135.8l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1L465 49 406.7 107.3c2.8 7.1 4.7 14.5 5.8 22.1L526.7 15z"],"arrows-turn-right":[448,512,[],"e4c0","M313.4-6.6c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 128 128 128c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32S0 241.7 0 224l0-32C0 121.3 57.3 64 128 64l210.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 384 96 384c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 465.7 0 448l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3z"],"candy-cane":[448,512,[],"f786","M421.8 39.6C452 85.2 456.5 142.9 435.1 192l-165.4 0 41.4-41.4c.8-.8 1.5-1.6 2.2-2.4L421.8 39.6zM268 102.9c-.8 .7-1.6 1.4-2.4 2.2l-28.1 28.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5L175 14.6C229.9-40.2 314.5-46.7 376.5-5.6L268 102.9zM125.7 336l80-80 181 0-82.5 82.5 0-2.5-178.5 0zm117 64L141.4 501.3c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5l10.7-10.7 181 0z"],wheelchair:[512,512,[],"f193","M136 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM117.9 197.6l12.6 63c-38.6 12.4-66.5 48.7-66.5 91.4 0 53 43 96 96 96 35.6 0 66.7-19.4 83.3-48.2 2.3 .1 4.6 .2 7 .2l4.1 0c1 0 2.1 0 3.1 0l55.2 0c-20.4 64.9-81 112-152.7 112-88.4 0-160-71.6-160-160 0-73.8 50-135.9 117.9-154.4zm148.6-28.1l23.7 118.5 60.5 0c33.3 0 63.2 20.7 74.9 51.9l25.5 68 18.7-6.2c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5l-48 16c-16.3 5.4-34-3-40.1-19.1l-36.3-96.9c-2.3-6.2-8.3-10.4-15-10.4l-86.1 0c-.4 0-.8 0-1.3 0l-13.1 0c-30.5 0-56.8-21.5-62.8-51.4L165.3 189.7c-6.4-31.9 18-61.7 50.6-61.7 24.6 0 45.8 17.4 50.6 41.5z"],"spell-check":[576,512,[],"f891","M120 32c-48.6 0-88 39.4-88 88l0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-168c0-48.6-39.4-88-88-88l-16 0zm40 128l-64 0 0-40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 40zM304 32c-17.7 0-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32l72 0c48.6 0 88-39.4 88-88 0-23.6-9.3-45-24.4-60.8 10.3-14.4 16.4-32.1 16.4-51.2 0-48.6-39.4-88-88-88l-64 0zm64 112l-32 0 0-48 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zM336 256l0-48 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0zm233 84c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-105.7 132.1-38.7-38.7c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.4 6.4 15.3 9.8 24.4 9.3s17.5-4.9 23.2-12L569 340z"],"volume-off":[320,512,[],"f026","M96 352l-48 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l48 0 134.1-119.2c6.4-5.7 14.6-8.8 23.1-8.8 19.2 0 34.8 15.6 34.8 34.8l0 378.4c0 19.2-15.6 34.8-34.8 34.8-8.5 0-16.7-3.1-23.1-8.8L96 352z"],lungs:[576,512,[129729],"f604","M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 141.9-32 19.2 0-116.7c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 22 0 43.7-5.1 63.4-15l5-2.5c37.4-18.7 61-56.9 61-98.8l0-128 64-38.4 64 38.4 0 128c0 41.8 23.6 80.1 61 98.8l5 2.5c19.7 9.8 41.4 15 63.4 15 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 118.2-32-19.2 0-141.9z"],bookmark:[384,512,[128278,61591],"f02e","M64 0C28.7 0 0 28.7 0 64L0 480c0 11.5 6.2 22.2 16.2 27.8s22.3 5.5 32.2-.4L192 421.3 335.5 507.4c9.9 5.9 22.2 6.1 32.2 .4S384 491.5 384 480l0-416c0-35.3-28.7-64-64-64L64 0z"],barcode:[448,512,[],"f02a","M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64c0-17.7-14.3-32-32-32zm88 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24zm72 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32zm208-8l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24zm-96 0l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24z"],"list-ol":[512,512,["list-1-2","list-numeric"],"f0cb","M0 72C0 58.8 10.7 48 24 48l48 0c13.3 0 24 10.7 24 24l0 104 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-80-24 0C10.7 96 0 85.3 0 72zM30.4 301.2C41.8 292.6 55.7 288 70 288l4.9 0c33.7 0 61.1 27.4 61.1 61.1 0 19.6-9.4 37.9-25.2 49.4l-24 17.5 33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-90.7 0C13.1 464 0 450.9 0 434.7 0 425.3 4.5 416.5 12.1 411l70.5-51.3c3.4-2.5 5.4-6.4 5.4-10.6 0-7.2-5.9-13.1-13.1-13.1L70 336c-3.9 0-7.7 1.3-10.8 3.6L38.4 355.2c-10.6 8-25.6 5.8-33.6-4.8S-1 324.8 9.6 316.8l20.8-15.6zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"],"file-circle-xmark":[576,512,[],"e5a1","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"],cube:[512,512,[],"f1b2","M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z"],tape:[576,512,[],"f4db","M412.8 416c41.5-40.7 67.2-97.3 67.2-160 0-123.7-100.3-224-224-224S32 132.3 32 256 132.3 480 256 480l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-131.2 0zM256 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm48 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"],bomb:[576,512,[128163],"f1e2","M480-16c6.9 0 13 4.4 15.2 10.9l13.5 40.4 40.4 13.5C555.6 51 560 57.1 560 64s-4.4 13-10.9 15.2l-40.4 13.5-13.5 40.4C493 139.6 486.9 144 480 144s-13-4.4-15.2-10.9l-13.5-40.4-40.4-13.5C404.4 77 400 70.9 400 64s4.4-13 10.9-15.2l40.4-13.5 13.5-40.4C467-11.6 473.1-16 480-16zM321.4 97.4c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-10.9 10.9c7.9 22 12.2 45.7 12.2 70.5 0 114.9-93.1 208-208 208S32 418.9 32 304 125.1 96 240 96c24.7 0 48.5 4.3 70.5 12.3l10.9-10.9zM144 304c0-53 43-96 96-96 13.3 0 24-10.7 24-24s-10.7-24-24-24c-79.5 0-144 64.5-144 144 0 13.3 10.7 24 24 24s24-10.7 24-24z"],"scale-unbalanced":[640,512,["balance-scale-left"],"f515","M519.8 62.4c16.8-5.6 25.8-23.7 20.2-40.5S516.3-3.9 499.6 1.6l-113 37.7c-13.9-23.5-39.6-39.3-68.9-39.3-44.2 0-80 35.8-80 80 0 3 .2 5.9 .5 8.8L115.6 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2l0 326.7c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM437.3 288l72.4-124.2 72.4 124.2-144.9 0zm72.4 96c62.9 0 115.2-34 126-78.9 2.6-11-1-22.3-6.7-32.1L533.8 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L390.4 273.1c-5.7 9.8-9.3 21.1-6.7 32.1 10.8 44.8 63.1 78.9 126 78.9zM126.8 291.8l72.4 124.2-144.9 0 72.4-124.2zM.9 433.1C11.7 478 64 512 126.8 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L150.9 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L7.6 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z"],"square-caret-left":[448,512,["caret-square-left"],"f191","M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4S288 142.5 288 152l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z"],ruler:[576,512,[128207],"f545","M209.1 516.2c-18.7 18.7-49.1 18.7-67.9 0L28.1 403.1c-18.7-18.7-18.7-49.1 0-67.9l17-17 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 17-17c18.7-18.7 49.1-18.7 67.9 0L548.5 108.9c18.7 18.7 18.7 49.1 0 67.9L209.1 516.2z"],i:[320,512,[105],"49","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z"],"volume-xmark":[576,512,["volume-mute","volume-times"],"f6a9","M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM367 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z"],archway:[512,512,[],"f557","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-272-448 0 0 272z"],"person-digging":[576,512,["digging"],"f85e","M208 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM10.5 181.3c5.9-11.9 20.3-16.7 32.2-10.7l24.6 12.3 12.2-20.4c18.9-31.5 53.2-50.5 89.6-50.5 46.2 0 87.7 30.5 100.5 75.4l32.2 112.7 92.9 46.4 25.8-43c5.8-9.6 16.2-15.5 27.4-15.5s21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S555.5 512 544 512l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2L370 387.8 21.3 213.5c-11.9-5.9-16.7-20.3-10.7-32.2zM94.3 307.4l112 56c10.8 5.4 17.7 16.5 17.7 28.6l0 88c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-68.2-61.3-30.7-36.3 109c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.7 469.9l48-144c2.9-8.8 9.5-15.9 18.1-19.4s18.3-3.2 26.6 .9z"],"gauge-high":[512,512,[62461,"tachometer-alt","tachometer-alt-fast"],"f625","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64 0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"],genderless:[384,512,[],"f22d","M192 128a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 320a192 192 0 1 0 0-384 192 192 0 1 0 0 384z"],"cloud-sun":[576,512,[9925],"f6c4","M453.6-14.8c4.9 2 8.5 6.4 9.5 11.6L480 80 563.2 96.8c5.2 1.1 9.5 4.6 11.6 9.5s1.5 10.5-1.4 14.9l-46.9 70.7 46.9 70.7c2.9 4.4 3.5 10 1.4 14.9s-6.4 8.5-11.6 9.5L501 299.7c-11.9-8.7-25.1-15.6-39.4-20.4-2.5-12.7-6.8-24.7-12.7-35.7 9.5-14.9 15.1-32.6 15.1-51.7 0-53-43-96-96-96-47.9 0-87.6 35.1-94.8 80.9-26.5-20.3-59.5-32.5-95.4-32.9l-15.1-22.7c-2.9-4.4-3.5-10-1.4-14.9s6.4-8.5 11.6-9.5L256 80 272.8-3.2c1.1-5.2 4.6-9.5 9.5-11.6s10.5-1.5 14.9 1.4L368 33.6 438.7-13.3c4.4-2.9 10-3.5 14.9-1.4zM416 192c0 3.8-.4 7.5-1.3 11.1-21.7-17-49-27.1-78.7-27.1-4.6 0-9.1 .2-13.5 .7 6.4-19 24.4-32.7 45.5-32.7 26.5 0 48 21.5 48 48zM96 512c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 512z"],"arrow-right":[512,512,[8594],"f061","M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z"],handshake:[576,512,[129309,62662,"handshake-alt","handshake-simple"],"f2b5","M268.9 85.2L152.3 214.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 182.7L223.4 64 183.8 64c-25.5 0-49.9 10.1-67.9 28.1L112 96 0 32 0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 441c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z"],"person-skiing":[576,512,[9975,"skiing"],"f7c9","M416 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM2.7 300.9c6.1-11.8 20.6-16.3 32.4-10.2l197.8 102.7 62.3-87.2-82-92.2c-11-12.4-16.2-27.5-16.2-42.4l111.6 53.4 42.9 48.2c14.9 16.7 16.2 41.6 3.2 59.8l-64.4 90.2 128.3 66.6c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 333.3C1.2 327.2-3.4 312.7 2.7 300.9zM103 49.6l18 8.7 8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 17 84.8 41 .4-.2 76.1-33.8c31.3-13.9 67.9-.7 83.2 29.9l28.9 57.8 68.7 27.5c16.4 6.6 24.4 25.2 17.8 41.6s-25.2 24.4-41.6 17.8L393.8 224c-10.9-4.4-19.8-12.6-25.1-23.1l-11.5-23.1c-16.4 9.4-25.9 14.8-28.5 16.3l-7.6-3.7-185.6-89.6-9.2 18.3c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-17.9-17.6-8.5C81.1 74.6 77.8 65 81.6 57S95 45.7 103 49.6z"],"bridge-water":[640,512,[],"e4ce","M64 64l512 0 0 112c-37.6 9.4-64 43.2-64 82l0 76.4c-21-9.7-43.5-14.5-66-14.4-10 .1-20.1 1.1-30 3.1l0-35.1c0-53-43-96-96-96s-96 43-96 96l0 32.7c-5.3-.5-10.7-.8-16-.7-27.7 .2-55.4 7.8-80 23l0-85c0-38.8-26.4-72.6-64-82L64 64zM403.4 444.1C379.1 462.3 351.1 480 320 480s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z"],"building-ngo":[576,512,[],"e4d7","M128 0C92.7 0 64 28.7 64 64l0 384c0 35.3 28.7 64 64 64l48 0 0-112c0-35.3 28.7-64 64-64l208 0 0-272c0-35.3-28.7-64-64-64L128 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM304 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM520 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-80c0-24.3-19.7-44-44-44l-16 0zm-4 44c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 80c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80zm-168 0l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-24c0-11-9-20-20-20l-8 0c-11 0-20 9-20 20 0 6.5 3.1 12.4 8 16l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l20.4 0c1.9 9.1 9.9 16 19.6 16 11 0 20-9 20-20 0-19.9-16.1-36-36-36l-24 0c-24.3 0-44 19.7-44 44zm-90.1-32.9c-4.1-8.3-13.5-12.7-22.5-10.5S220 390.7 220 400l0 128c0 11 9 20 20 20s20-9 20-20l0-43.3 26.1 52.2c4.1 8.3 13.5 12.7 22.5 10.5S324 537.3 324 528l0-128c0-11-9-20-20-20s-20 9-20 20l0 43.3-26.1-52.2z"],igloo:[576,512,[],"f7ae","M320 33.8l0 126.2-271.5 0c51.7-77.2 139.6-128 239.5-128 10.8 0 21.5 .6 32 1.8zM368 160l0-116.7c66 19 122.2 61 159.5 116.7L368 160zM22.6 208l73.4 0 0 112-96 0c0-39.7 8-77.6 22.6-112zM176 320l-32 0 0-112 288 0 0 112-32 0 0 48 176 0 0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64 176 0 0-48zm304 0l0-112 73.4 0C568 242.4 576 280.3 576 320l-96 0zM288 288c-35.3 0-64 28.7-64 64l0 80 128 0 0-80c0-35.3-28.7-64-64-64z"],"circle-dollar-to-slot":[576,512,["donate"],"f4b9","M96 224a192 192 0 1 1 384 0 192 192 0 1 1 -384 0zm176-92l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L248 272c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20zM48 344l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 344c0-13.3 10.7-24 24-24s24 10.7 24 24z"],y:[384,512,[121],"59","M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7 154-215.7c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z"],"face-smile-wink":[512,512,[128521,"smile-wink"],"f4da","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z"],"dice-four":[448,512,[9859],"f524","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"face-grin-squint-tears":[576,512,[129315,"grin-squint-tears"],"f586","M560 35.4c0 25.6-18.8 47.3-44.1 50.9L469.1 93c-10.6 1.5-19.6-7.5-18.1-18.1l6.7-46.7C461.3 2.8 483-16 508.6-16 537-16 560 7 560 35.4zM403.5 68.1c-6 42.2 30.2 78.4 72.4 72.4l37.8-5.4C565.7 232 550.8 355.3 469 437s-205 96.6-301.9 44.7l5.4-37.8c6-42.2-30.2-78.4-72.4-72.4l-37.8 5.4C10.3 280 25.2 156.7 107 75S312-21.7 408.9 30.3l-5.4 37.8zM417.8 201c-19.1 36.4-45.6 72.7-78.9 106s-69.6 59.8-106 78.9c-11.1 5.8-12.4 21.4-1.1 26.6 59.2 27.5 131.8 16.8 180.6-32s59.5-121.4 32-180.6c-5.3-11.3-20.8-10-26.6 1.1zM113.9 270.6c1.7 8 9 13.4 17.1 12.7l43.1-3.9-3.9 43.1c-.7 8.1 4.7 15.5 12.7 17.1s15.9-2.9 18.4-10.6l28-84.6c1.9-5.7 .4-12.1-3.9-16.3s-10.6-5.8-16.3-3.9l-84.6 28c-7.7 2.6-12.3 10.5-10.6 18.5zM315.2 99.1c.7-8.1-4.7-15.5-12.7-17.1s-15.9 2.9-18.5 10.6l-28 84.6c-1.9 5.7-.4 12.1 3.9 16.3s10.6 5.8 16.3 3.9l84.6-28c7.7-2.6 12.3-10.5 10.6-18.4s-9-13.4-17.1-12.7l-43.1 3.9 3.9-43.1zM60.1 425.7l46.7-6.7c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C114.7 509.2 93 528 67.4 528 39 528 16 505 16 476.6 16 451 34.8 429.3 60.1 425.7z"],"file-audio":[384,512,[],"f1c7","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zm53.8 185.2c-9.1-6.3-21.5-4.1-27.8 5s-4.1 21.5 5 27.8c23.9 16.7 39.4 44.3 39.4 75.5s-15.6 58.9-39.4 75.5c-9.1 6.3-11.3 18.8-5 27.8s18.8 11.3 27.8 5c34.1-23.8 56.6-63.5 56.6-108.3S296 267.5 261.8 243.7zM80 312c-8.8 0-16 7.2-16 16l0 48c0 8.8 7.2 16 16 16l24 0 27.2 34c3 3.8 7.6 6 12.5 6l.3 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16l-.3 0c-4.9 0-9.5 2.2-12.5 6l-27.2 34-24 0zm128 72.2c0 10.7 10.5 18.2 18.9 11.6 12.9-10.3 21.1-26.1 21.1-43.8s-8.2-33.5-21.1-43.8c-8.4-6.7-18.9 .9-18.9 11.6l0 64.5z"],"arrows-down-to-line":[512,512,[],"e4b8","M214.6 310.6l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 274.7 96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm256 0l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-242.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512z"],g:[448,512,[103],"47","M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6-9.5 115-105.8 205.4-223.2 205.4-123.7 0-224-100.3-224-224S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57 13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z"],vihara:[576,512,[],"f6a7","M273.6-3.2c8.5-6.4 20.3-6.4 28.8 0L443.2 102.4c8.3 6.2 18.4 9.6 28.8 9.6 13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 48 58.7 64 13.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 48 24.4 32 15.6 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l22.1 0 17.9-32 0-48-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.3 0 58.7-64 0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24c10.4 0 20.5-3.4 28.8-9.6L273.6-3.2zM128 368l320 0 0-48-320 0 0 48zM384 160l-192 0 0 48 192 0 0-48z"],"flag-checkered":[448,512,[127937],"f11e","M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 384 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5-64 13.9 0 65.5 48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6l-25.3 5.5 0-75.2-64 16 0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z"],"gauge-simple":[512,512,["gauge-simple-med","tachometer-average"],"f629","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64z"],"right-left":[512,512,["exchange-alt"],"f362","M502.6 150.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 236.9 352 224l0-64-320 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 275.1 160 288l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9z"],pills:[512,512,[],"f484","M64 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM176 368c0-48.7 18.1-93.2 48-127l0-129C224 50.1 173.9 0 112 0S0 50.1 0 112L0 400c0 61.9 50.1 112 112 112 37.3 0 70.3-18.2 90.7-46.3-17-28.6-26.7-62-26.7-97.7zm64.7 67.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 264c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM297.9 472c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4-4.6-8.7-16.3-9.7-23.3-2.7L297.9 472z"],explosion:[512,512,[],"e4e9","M256-32c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zm0 160c12.4 0 22.7 9.4 23.9 21.7L293.4 291.6 467.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L372.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0-75.5-52.3C.6 357-2.8 344.1 2.4 333.5s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.6 9.4-11.3L75.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L214 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7zM32 464l456 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0z"],"arrows-down-to-people":[512,512,[],"e4b9","M113 153c-9.4 9.4-24.6 9.4-33.9 0L15 89C5.7 79.6 5.7 64.4 15 55S39.6 45.7 49 55L72 78.1 72-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zm320 0c-9.4 9.4-24.6 9.4-33.9 0L335 89c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23 0-86.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zM256 192a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 160c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32c0-53 43-96 96-96zM32 288a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm352 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM80 368c15.3 0 29.6 4.3 41.8 11.8-6.3 16.2-9.8 33.8-9.8 52.2l0 48c0 11.4 2.4 22.2 6.7 32l-87.8 0C13.8 512 0 498.2 0 481.1L0 448c0-44.2 35.8-80 80-80zM393.3 512c4.3-9.8 6.7-20.6 6.7-32l0-48c0-18.4-3.5-36-9.8-52.2 12.2-7.5 26.5-11.8 41.8-11.8 44.2 0 80 35.8 80 80l0 33.1c0 17-13.8 30.9-30.9 30.9l-87.8 0z"],"users-viewfinder":[576,512,[],"e595","M64 0C28.7 0 0 28.7 0 64l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-8.8 7.2-16 16-16l72 0c13.3 0 24-10.7 24-24S149.3 0 136 0L64 0zM440 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c8.8 0 16 7.2 16 16l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-35.3-28.7-64-64-64L440 0zM48 376c0-13.3-10.7-24-24-24S0 362.7 0 376l0 72c0 35.3 28.7 64 64 64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0c-8.8 0-16-7.2-16-16l0-72zm528 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72c0 8.8-7.2 16-16 16l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c35.3 0 64-28.7 64-64l0-72zM288 216a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 40c-53 0-96 43-96 96l0 24c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-24c0-53-43-96-96-96zm192-64a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM168 272.3c-49.3 4.1-88 45.3-88 95.7l0 10.7c0 11.8 9.6 21.3 21.3 21.3l46.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-24c0-29.5 8.8-56.9 24-79.7zM427.9 400l46.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-50.3-38.7-91.6-88-95.7 15.2 22.8 24 50.2 24 79.7l0 24c0 8.4-1.4 16.5-4.1 24zM192 192a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"],"car-on":[448,512,[],"e4dd","M248-8c0-13.3-10.7-24-24-24S200-21.3 200-8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM145.3 208l157.5 0c6.7 0 12.6 4.1 15 10.4l26.1 69.6-239.6 0 26.1-69.6c2.3-6.2 8.3-10.4 15-10.4zM34 292.8l-1.3 3.4C13.2 307.1 0 328 0 352L0 480c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 288 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-128c0-24-13.2-44.9-32.8-55.9l-1.3-3.4-36.3-96.9c-11.7-31.2-41.6-51.9-74.9-51.9l-157.5 0c-33.3 0-63.2 20.7-74.9 51.9L34 292.8zM96 336a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm224 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM7 7C-2.3 16.4-2.3 31.6 7 41L55 89c9.4 9.4 24.6 9.4 33.9 0S98.3 64.4 89 55L41 7C31.6-2.3 16.4-2.3 7 7zM407 7L359 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9S416.4-2.3 407 7z"],sleigh:[640,512,[],"f7cc","M64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l0 160c0 41.8 26.7 77.4 64 90.5l0 69.5-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l504 0c44.2 0 80-35.8 80-80l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 17.7-14.3 32-32 32l-80 0 0-64c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 32c0 35.3-28.7 64-64 64l-48.9 0c-48.5 0-92.8-27.4-114.5-70.8l-25.2-50.5C237.7 59.4 193.4 32 144.9 32L64 32zM432 416l-256 0 0-64 256 0 0 64z"],dumbbell:[640,512,[],"f44b","M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112 256 0 0-112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 16 16 0c26.5 0 48 21.5 48 48l0 48c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48c0 26.5-21.5 48-48 48l-16 0 0 16c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-112-256 0 0 112c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-16-16 0c-26.5 0-48-21.5-48-48l0-48c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-48c0-26.5 21.5-48 48-48l16 0 0-16z"],"baby-carriage":[512,512,["carriage-baby"],"f77d","M64 208l0 80c0 53 43 96 96 96l192 0c53 0 96-43 96-96l0-112 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24l0 56-336 0zm.2-48l223.8 0 0-128c0-17.7-14.3-32-32-32L232 0C141.9 0 68.4 70.9 64.2 160zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm288 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"],"kiwi-bird":[576,512,[],"f535","M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1S576 471 576 464l0-240c0-70.7-57.3-128-128-128l-55.7 0C355.9 96 322.4 78.4 291.2 59.6 262.3 42.1 228.3 32 192 32 86 32 0 118 0 224 0 295.1 38.6 357.1 96 390.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6 5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"],"calendar-xmark":[448,512,["calendar-times"],"f273","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM291.9 220.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z"],"circle-down":[512,512,[61466,"arrow-alt-circle-down"],"f358","M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM244.7 387.3l-104-104c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l56 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 56 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-104 104c-6.2 6.2-16.4 6.2-22.6 0z"],"file-medical":[384,512,[],"f477","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM160 280l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z"],xmark:[384,512,[128473,10005,10006,10060,215,"close","multiply","remove","times"],"f00d","M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z"],shapes:[512,512,["triangle-circle-square"],"f61f","M256 0c11.2 0 21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S363.5 224 352 224l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2l96-160C234.3 5.9 244.8 0 256 0zM128 272a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm200 16l112 0c22.1 0 40 17.9 40 40l0 112c0 22.1-17.9 40-40 40l-112 0c-22.1 0-40-17.9-40-40l0-112c0-22.1 17.9-40 40-40z"],"dice-one":[448,512,[9856],"f525","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"lock-open":[576,512,[],"f3c1","M384 96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-70.7-57.3-128-128-128S320 25.3 320 96l0 64-160 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-32 0 0-64z"],"pepper-hot":[576,512,[127798],"f816","M545 65c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L478.9 63.2C452.3 43.6 419.5 32 384 32 348.9 32 316.5 43.3 290.1 62.4 274.1 74.1 284.2 96 304 96l24 0c13.3 0 24 10.7 24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24 10.7 24 24l0 24c0 19.8 21.9 29.9 33.6 13.9 19.1-26.4 30.4-58.8 30.4-93.9 0-35.5-11.6-68.3-31.2-94.9L545 65zM270 135.5l-159.6 228C101.3 376.4 86.7 384 71 384l-7 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l27.1 0c65.7 0 129.7-20.2 183.5-57.8L440.5 306.1C435 295.9 432 284.2 432 272l-56 0c-39.8 0-72-32.2-72-72l0-56c-12.2 0-23.9-3-34-8.5z"],"droplet-slash":[576,512,["tint-slash"],"f5c7","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L463.6 397.8c10.5-23.8 16.4-50.1 16.4-77.8 0-91.2-130.2-274.1-166.6-323.5-5.9-8-15.2-12.5-25.2-12.5l-.4 0c-10 0-19.3 4.5-25.2 12.5-15.6 21.2-48.5 66.9-80.9 119.4L41-24.9zm92 227.7c-21.6 43.8-37 85.9-37 117.2 0 106 86 192 192 192 43.4 0 83.4-14.4 115.5-38.6L133 202.8z"],droplet:[384,512,[128167,"tint"],"f043","M192 512C86 512 0 426 0 320 0 228.8 130.2 45.9 166.6-3.5 172.5-11.5 181.8-16 191.8-16l.4 0c10 0 19.3 4.5 25.2 12.5 36.4 49.4 166.6 232.3 166.6 323.5 0 106-86 192-192 192zM112 312c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 75.1 60.9 136 136 136 13.3 0 24-10.7 24-24s-10.7-24-24-24c-48.6 0-88-39.4-88-88z"],"file-lines":[384,512,[128441,128462,61686,"file-alt","file-text"],"f15c","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM120 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"],"comments-dollar":[576,512,[],"f653","M192 320c106 0 192-78.8 192-176S298-32 192-32 0 46.8 0 144c0 39.6 14.3 76.2 38.4 105.6L2.8 316.8C-2.1 326.1-.4 337.5 7 345s18.9 9.2 28.2 4.2L116.8 306c23.1 9 48.5 14 75.2 14zm3.2 48c16.4 81.9 94.7 144 188.8 144 26.7 0 52.1-5 75.2-14l81.6 43.2c9.3 4.9 20.7 3.2 28.2-4.2s9.2-18.9 4.2-28.2l-35.6-67.2c24.1-29.4 38.4-66 38.4-105.6 0-82.4-61.7-151.5-145-170.7-11.5 115.8-115.8 201.2-235.8 202.7zM196 32c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z"],"magnifying-glass-location":[512,512,["search-location"],"f689","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6 6 7.3 16.8 7.3 22.7 0 22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],"file-invoice":[384,512,[],"f570","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM64 384l0-64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 416c-17.7 0-32-14.3-32-32zM88 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S74.7 64 88 64zm0 96l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],pentagon:[576,512,[],"e790","M316.4-3.1c-16.8-12.2-39.6-12.2-56.4 0L35.3 160.2c-16.8 12.2-23.9 33.9-17.4 53.7l85.8 264.1c6.4 19.8 24.9 33.2 45.7 33.2l277.7 0c20.8 0 39.2-13.4 45.7-33.2l85.8-264.1c6.4-19.8-.6-41.4-17.4-53.7L316.4-3.1z"],republican:[640,512,[],"f75e","M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64-544 0 0-64zm152-32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm232 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM280 160a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 288l416 0 0 112c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 96c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-160 128 0z"],shop:[576,512,["store-alt"],"f54f","M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l56.8 113.7c3.6 7.2 5.5 15.1 5.5 23.2 0 27.3-21.2 49.7-48 51.6L512 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-96 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0z"],film:[448,512,[127902,62368,"film-alt","film-simple"],"f008","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0z"],"building-circle-xmark":[576,512,[],"e4d4","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L454.6 400z"],comments:[576,512,[128490,61670],"f086","M384 144c0 97.2-86 176-192 176-26.7 0-52.1-5-75.2-14L35.2 349.2c-9.3 4.9-20.7 3.2-28.2-4.2s-9.2-18.9-4.2-28.2l35.6-67.2C14.3 220.2 0 183.6 0 144 0 46.8 86-32 192-32S384 46.8 384 144zm0 368c-94.1 0-172.4-62.1-188.8-144 120-1.5 224.3-86.9 235.8-202.7 83.3 19.2 145 88.3 145 170.7 0 39.6-14.3 76.2-38.4 105.6l35.6 67.2c4.9 9.3 3.2 20.7-4.2 28.2s-18.9 9.2-28.2 4.2L459.2 498c-23.1 9-48.5 14-75.2 14z"],tags:[576,512,[],"f02c","M401.2 39.1L549.4 189.4c27.7 28.1 27.7 73.1 0 101.2L393 448.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L515.3 256.8c9.2-9.3 9.2-24.4 0-33.7L367 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM32.1 229.5L32.1 96c0-35.3 28.7-64 64-64l133.5 0c17 0 33.3 6.7 45.3 18.7l144 144c25 25 25 65.5 0 90.5L285.4 418.7c-25 25-65.5 25-90.5 0l-144-144c-12-12-18.7-28.3-18.7-45.3zm144-85.5a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"],gun:[576,512,[],"e19b","M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8-448 0C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352 321.4 352c23.7 0 44.8-14.9 52.7-37.2l26.7-74.8 31.1 0c8.5 0 16.6-3.4 22.6-9.4l22.6-22.6 66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304l-92.5 0 16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z"],"circle-check":[512,512,[61533,"check-circle"],"f058","M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zM374 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L221.1 315.2 169 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.8 7.5 18.8 7s13.4-4.1 17.5-9.8L379.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z"],"id-card-clip":[576,512,["id-card-alt"],"f47f","M256-32l64 0c17.7 0 32 14.3 32 32l0 64-128 0 0-64c0-17.7 14.3-32 32-32zM64 32l112 0 0 32c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-32 112 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM176 400c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM288 280a56 56 0 1 0 0-112 56 56 0 1 0 0 112z"],moon:[512,512,[127769,9214],"f186","M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512c68.8 0 131.3-27.2 177.3-71.4 7.3-7 9.4-17.9 5.3-27.1s-13.7-14.9-23.8-14.1c-4.9 .4-9.8 .6-14.8 .6-101.6 0-184-82.4-184-184 0-72.1 41.5-134.6 102.1-164.8 9.1-4.5 14.3-14.3 13.1-24.4S322.6 8.5 312.7 6.3C294.4 2.2 275.4 0 256 0z"],"oil-well":[576,512,[],"e532","M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4-108.2 28.1-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39-132.2 34.3 0-38.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0-61.4-175.4-62.2 16.1 22.1 63.2-66.6 0 19.9-56.9-74.6 19.3-46.7 133.5-41.3 0 0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l16.8-48 100.2 0 16.8 48-133.8 0z"],"tachograph-digital":[576,512,["digital-tachograph"],"f566","M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 32c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l136 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 352zm256 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zM496 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM88 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm104-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"],tablet:[448,512,["tablet-android"],"f3fb","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM184 400l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"ruble-sign":[448,512,[8381,"rouble","rub","ruble"],"f158","M112 32C94.3 32 80 46.3 80 64l0 208-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 48-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-152 0 0-48 112 0c79.5 0 144-64.5 144-144S335.5 32 256 32L112 32zM256 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z"],"closed-captioning":[512,512,[],"f20a","M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm152 80l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z"],pen:[512,512,[128394],"f304","M352.9 21.2L308 66.1 445.9 204 490.8 159.1C504.4 145.6 512 127.2 512 108s-7.6-37.6-21.2-51.1L455.1 21.2C441.6 7.6 423.2 0 404 0s-37.6 7.6-51.1 21.2zM274.1 100L58.9 315.1c-10.7 10.7-18.5 24.1-22.6 38.7L.9 481.6c-2.3 8.3 0 17.3 6.2 23.4s15.1 8.5 23.4 6.2l127.8-35.5c14.6-4.1 27.9-11.8 38.7-22.6L412 237.9 274.1 100z"],plane:[576,512,[],"f072","M520 200c30.9 0 56 25.1 56 56s-25.1 56-56 56l-127.3 0-159.2 173.6c-6.1 6.6-14.6 10.4-23.6 10.4l-43.7 0c-10.9 0-18.6-10.7-15.2-21.1l54.3-162.9-99.7 0-52.8 66c-3 3.8-7.6 6-12.5 6l-19.8 0c-10.4 0-18-9.8-15.5-19.9L32 256 5 147.9C2.4 137.8 10.1 128 20.5 128l19.8 0c4.9 0 9.5 2.2 12.5 6l52.8 66 99.7 0-54.3-162.9C147.6 26.7 155.3 16 166.2 16l43.7 0c9 0 17.5 3.8 23.6 10.4L392.7 200 520 200z"],images:[576,512,[],"f302","M96 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64L96 96zM24 128c13.3 0 24 10.7 24 24l0 296c0 8.8 7.2 16 16 16l360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L64 512c-35.3 0-64-28.7-64-64L0 152c0-13.3 10.7-24 24-24zm168 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm196.5 11.5c-4.4-7.1-12.1-11.5-20.5-11.5s-16.1 4.4-20.5 11.5l-56.3 92.1-24.5-30.6c-4.6-5.7-11.4-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S174.8 352 184 352l272 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144z"],"mobile-screen":[384,512,["mobile-android-alt"],"f3cf","M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM128 440c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24zM304 64l-224 0 0 304 224 0 0-304z"],"guarani-sign":[384,512,[],"e19a","M192 0c-13.3 0-24 10.7-24 24l0 41.5C73.3 77.3 0 158.1 0 256S73.3 434.7 168 446.5l0 41.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-41.5c94.7-11.8 168-92.6 168-190.5 0-17.7-14.3-32-32-32l-136 0 0-93.8c25.3 4.8 47.9 17 65.6 34.3 12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C297.2 90.2 258.8 70.8 216 65.5L216 24c0-13.3-10.7-24-24-24zM168 130.2l0 251.5C108.8 370.5 64 318.5 64 256s44.8-114.5 104-125.8zm48 251.5l0-93.8 100 0c-12.3 47.6-51.2 84.5-100 93.8z"],"bag-shopping":[448,512,["shopping-bag"],"f290","M160 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 384c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48c0-61.9-50.1-112-112-112S112 18.1 112 80l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"],"circle-right":[512,512,[61838,"arrow-alt-circle-right"],"f35a","M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3l-104 104c-4.6 4.6-11.5 5.9-17.4 3.5S256 366.5 256 360l0-56-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-56c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l104 104c6.2 6.2 6.2 16.4 0 22.6z"],"phone-volume":[576,512,["volume-control-phone"],"f2a0","M344-32c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM320 88c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24zM144.1 1.4c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c32.5 71.6 89 130 159.3 164.9L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5C523.4 470.1 460.9 525.3 384.6 509.2 209.6 472.1 71.9 334.4 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5z"],cubes:[512,512,[],"f1b3","M284-1.3c-17.3-10-38.7-10-56 0L143.8 47.3c-17.3 10-28 28.5-28 48.5l0 101.9-88.3 51c-17.3 10-28 28.5-28 48.5l0 97.3c0 20 10.7 38.5 28 48.5l84.3 48.6c17.3 10 38.7 10 56 0l88.3-51 88.3 51c17.3 10 38.7 10 56 0L484.5 443c17.3-10 28-28.5 28-48.5l0-97.3c0-20-10.7-38.5-28-48.5l-88.3-51 0-101.9c0-20-10.7-38.5-28-48.5L284-1.3zM232 292.6l0 106.5-88.3 51c-1.2 .7-2.6 1.1-4 1.1l0-105.3 92.3-53.3zm231.4 .6c.7 1.2 1.1 2.6 1.1 4l0 97.3c0 2.9-1.5 5.5-4 6.9l-84.3 48.6c-1.2 .7-2.6 1.1-4 1.1l0-105.3 91.2-52.6zM348.3 95.8l0 101.9-92.3 53.3 0-106.5 91.2-52.6c.7 1.2 1.1 2.6 1.1 4z"],phone:[512,512,[128222,128379],"f095","M160.2 25C152.3 6.1 131.7-3.9 112.1 1.4l-5.5 1.5c-64.6 17.6-119.8 80.2-103.7 156.4 37.1 175 174.8 312.7 349.8 349.8 76.3 16.2 138.8-39.1 156.4-103.7l1.5-5.5c5.4-19.7-4.7-40.3-23.5-48.1l-97.3-40.5c-16.5-6.9-35.6-2.1-47 11.8l-38.6 47.2C233.9 335.4 177.3 277 144.8 205.3L189 169.3c13.9-11.3 18.6-30.4 11.8-47L160.2 25z"],"torii-gate":[448,512,[9961],"f6a1","M0 96L0 28.5C0 21.6 5.6 16 12.5 16 14.8 16 17 16.6 19 17.8L58 41.2C82.9 56.1 111.3 64 140.3 64l167.4 0c29 0 57.5-7.9 82.3-22.8l39-23.4c1.9-1.2 4.2-1.8 6.4-1.8 6.9 0 12.5 5.6 12.5 12.5L448 96c0 35.3-28.7 64-64 64l0 64 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-192 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-64C28.7 160 0 131.3 0 96zM128 224l64 0 0-64-64 0 0 64zm128 0l64 0 0-64-64 0 0 64z"],bacon:[576,512,[129363],"f7e5","M557 96.7c14.4 14.4 12.4 38.4-4.3 50.2l-64.6 45.7c-43.7 30.9-79.2 71.9-103.4 119.6l-25.3 49.8c-25.1 49.3-62.1 91.5-107.8 122.6l-74.1 50.6c-13.1 8.9-30.7 7.3-41.8-3.9l-44.9-44.9 86.5-66.5c42.3-32.5 76.7-74.3 100.6-122l24.5-49.1c24.5-49 61.8-90.6 107.9-120.2l108.7-69.9 38 38zM484.2 23.9L384.3 88.2c-53.4 34.3-96.5 82.4-124.9 139.1l-24.5 49.1c-20.6 41.3-50.3 77.3-86.9 105.4l-91.4 70.3-36.9-36.9c-14.4-14.4-12.4-38.4 4.3-50.2l64.6-45.7c43.7-30.9 79.2-71.9 103.4-119.6l25.3-49.8C242.3 100.8 279.3 58.6 325 27.4l74.1-50.6c13.1-8.9 30.6-7.3 41.8 3.9l43.3 43.3z"],"person-falling-burst":[576,512,[],"e547","M256 0c17.7 0 32 14.3 32 32l0 5.4c0 55.2-23.7 107-63.9 143.1l62.9 75.5 89 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L368 320 263.2 320 376.8 459.8c11.1 13.7 9.1 33.9-4.7 45s-33.9 9.1-45-4.7L137.4 266.6c-6.1 15-9.4 31.3-9.4 48l0 69.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-69.4c0-67.4 35.4-129.9 93.2-164.6l4.6-2.8C200.4 124 224 82.4 224 37.4l0-5.4c0-17.7 14.3-32 32-32zM16 88A56 56 0 1 1 128 88 56 56 0 1 1 16 88zm376-7.9c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48zm104 152c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0zm-54.5-97.5c-9.4-9.4-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0z"],"quote-right":[448,512,[8221,"quote-right-alt"],"f10e","M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136z"],"house-medical-flag":[640,512,[],"e514","M480 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM267.5 59.1L400 186.9 400 503.4c-9.4 5.4-20.3 8.6-32 8.6l-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0C12.6 304 0 291.4 0 275.9 0 268.3 3.1 261 8.6 255.7L212.5 59.1C219.9 52 229.7 48 240 48s20.1 4 27.5 11.1zM204.8 256.8l0 44-44 0c-9.7 0-17.6 7.9-17.6 17.6l0 35.2c0 9.7 7.9 17.6 17.6 17.6l44 0 0 44c0 9.7 7.9 17.6 17.6 17.6l35.2 0c9.7 0 17.6-7.9 17.6-17.6l0-44 44 0c9.7 0 17.6-7.9 17.6-17.6l0-35.2c0-9.7-7.9-17.6-17.6-17.6l-44 0 0-44c0-9.7-7.9-17.6-17.6-17.6l-35.2 0c-9.7 0-17.6 7.9-17.6 17.6z"],prescription:[448,512,[],"f5b1","M32 0C14.3 0 0 14.3 0 32L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7 202.2 220.9C251.4 209.1 288 164.8 288 112 288 50.1 237.9 0 176 0L32 0zM176 160l-112 0 0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z"],"dice-three":[448,512,[9858],"f527","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"building-lock":[576,512,[],"e4d6","M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L96 512c-35.3 0-64-28.7-64-64L32 64zM176 384l0 80 80 0 0-64.1c0-13.7 1.9-27 5.5-39.6-5.7-5.2-13.2-8.3-21.5-8.3l-32 0c-17.7 0-32 14.3-32 32zM307 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm352 80.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z"],"id-card":[576,512,[62147,"drivers-license"],"f2c2","M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64L0 96zm0 48l576 0 0 272c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 144zM247.3 416c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29-12.9 15.6 2.2 35 22.4 35l142.5 0zM176 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM360 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z"],"circle-play":[512,512,[61469,"play-circle"],"f144","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z"],"face-laugh-beam":[512,512,[128513,"laugh-beam"],"f59a","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM176 164c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z"],leaf:[512,512,[],"f06c","M471.3 6.7C477.7 .6 487-1.6 495.6 1.2 505.4 4.5 512 13.7 512 24l0 186.9c0 131.2-108.1 237.1-238.8 237.1-77 0-143.4-49.5-167.5-118.7-35.4 30.8-57.7 76.1-57.7 126.7 0 13.3-10.7 24-24 24S0 469.3 0 456C0 381.1 38.2 315.1 96.1 276.3 131.4 252.7 173.5 240 216 240l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-39.7 0-77.3 8.8-111 24.5 23.3-70 89.2-120.5 167-120.5 66.4 0 115.8-22.1 148.7-44 19.2-12.8 35.5-28.1 50.7-45.3z"],"house-chimney-user":[512,512,[],"e065","M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM312 256a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM144 432c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80z"],"rotate-right":[512,512,["redo-alt","rotate-forward"],"f2f9","M488 192l-144 0c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l46.7-46.7c-75.3-58.6-184.3-53.3-253.5 15.9-75 75-75 196.5 0 271.5s196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c94.3-94.3 243.7-99.6 344.3-16.2L471 7c6.9-6.9 17.2-8.9 26.2-5.2S512 14.3 512 24l0 144c0 13.3-10.7 24-24 24z"],tooth:[448,512,[129463],"f5c9","M145 5.7L224 32 303 5.7C314.3 1.9 326 0 337.9 0 398.7 0 448 49.3 448 110.1l0 68.5c0 29.4-9.5 58.1-27.2 81.6l-1.1 1.5c-12.9 17.2-21.3 37.4-24.3 58.7L373.7 471.9c-3.3 23-23 40.1-46.2 40.1-22.8 0-42.3-16.5-46-39L261.3 351.6c-3-18.2-18.8-31.6-37.3-31.6s-34.2 13.4-37.3 31.6L166.5 473c-3.8 22.5-23.2 39-46 39-23.2 0-42.9-17.1-46.2-40.1L52.6 320.5c-3-21.3-11.4-41.5-24.3-58.7l-1.1-1.5C9.5 236.7 0 208.1 0 178.7l0-68.5C0 49.3 49.3 0 110.1 0 122 0 133.7 1.9 145 5.7z"],"house-chimney-window":[512,512,[],"e00d","M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM216 224c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z"],motorcycle:[640,512,[127949],"f21c","M280 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l56.6 0 22.5 48.7-95.1 71.3c-33.4-25.1-75-40-120-40l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c78.5 0 143.2 59.6 151.2 136l-25.4 0c-11.2-59.2-63.3-104-125.8-104-70.7 0-128 57.3-128 128S73.3 480 144 480c62.5 0 114.5-44.8 125.8-104l50.2 0c13.3 0 24-10.7 24-24l0-22.5c0-45.1 25.7-85.4 65.5-107.7l12.1 26.1c-32.4 23.2-53.5 61.2-53.5 104.1 0 70.7 57.3 128 128 128s128-57.3 128-128-57.3-128-128-128c-10.7 0-21 1.3-30.9 3.8L433.8 160 488 160c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-53.3 0c-6.9 0-13.7 2.2-19.2 6.4l-17.1 12.8-24.6-53.3C369.9 21.4 361.4 16 352 16l-72 0zM445.8 300.4l28.4 61.6c5.6 12 19.8 17.3 31.8 11.7s17.3-19.8 11.7-31.8l-28.5-61.6c2.2-.2 4.4-.3 6.7-.3 39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72c0-20.2 8.3-38.5 21.8-51.6zM144 424c-39.8 0-72-32.2-72-72s32.2-72 72-72c31.3 0 58 20 67.9 48L144 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.9 0c-9.9 28-36.6 48-67.9 48z"],"backward-fast":[512,512,[9198,"fast-backward"],"f049","M492.2 477.6c-12 5-25.7 2.2-34.9-6.9L288 301.3 288 448c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L64 301.3 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32S64 46.3 64 64L64 210.7 233.4 41.4c9.2-9.2 22.9-11.9 34.9-6.9S288 51.1 288 64l0 146.7 169.4-169.4c9.2-9.2 22.9-11.9 34.9-6.9S512 51.1 512 64l0 384c0 12.9-7.8 24.6-19.8 29.6z"],"address-book":[512,512,[62138,"contact-book"],"f2b9","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zm0 128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 320c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z"],sailboat:[512,512,[],"e445","M240 35.9l0 348.1-224 0c-8.8 0-16 7.2-16 16 0 61.9 50.1 112 112 112l288 0c61.9 0 112-50.1 112-112 0-8.8-7.2-16-16-16l-208 0 0-48 161.7 0c12.9 0 20.5-14.4 13.2-25L269.2 26.9c-8.9-13-29.2-6.7-29.2 9zM192 320l0-184.2c0-16.1-21-22.1-29.6-8.5L47.3 311.5c-6.7 10.7 1 24.5 13.6 24.5L176 336c8.8 0 16-7.2 16-16z"],"book-bookmark":[448,512,[],"e0bb","M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48l-48 0 0 169.4c0 12.5-10.1 22.6-22.6 22.6-6 0-11.8-2.4-16-6.6L272 144 230.6 185.4c-4.2 4.2-10 6.6-16 6.6-12.5 0-22.6-10.1-22.6-22.6L192 0 96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32z"],"magnifying-glass-arrow-right":[512,512,[],"e521","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM305 225c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z"],"microphone-lines":[384,512,[127897,"microphone-alt"],"f3c9","M96 96c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L232 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-4.1 49.3-45.3 88-95.7 88-53 0-96-43-96-96L96 96zM24 160c13.3 0 24 10.7 24 24l0 40c0 79.5 64.5 144 144 144s144-64.5 144-144l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 97.9-73.3 178.7-168 190.5l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C73.3 402.7 0 321.9 0 224l0-40c0-13.3 10.7-24 24-24z"],"reply-all":[576,512,["mail-reply-all"],"f122","M332.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 48 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-32 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9zM205.6 23.1c9.4 9.4 9.4 24.6 0 33.9L54.6 208 205.6 358.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L10 231.2c-6.4-6-10-14.4-10-23.2s3.6-17.2 10-23.2L171.6 23.1c9.4-9.4 24.6-9.4 33.9 0z"],"universal-access":[512,512,[],"f29a","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2S339 397 334.8 384.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"],"toilet-paper":[512,512,[129531,63263,"toilet-paper-alt","toilet-paper-blank"],"f71e","M327.1 32c-8.8 11.1-16 23.1-21.9 34.8-21.4 42.7-33.2 98.4-33.2 157.2l0 264c0 30.9-25.1 56-56 56L56 544c-30.9 0-56-25.1-56-56L0 224C0 118 43 32 96 32l231.1 0zM416 416c-53 0-96-86-96-192s43-192 96-192 96 86 96 192-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64-32 28.7-32 64 14.3 64 32 64z"],"vr-cardboard":[576,512,[],"f729","M512 96L64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l117.5 0c17 0 33.3-6.7 45.3-18.7l33.9-33.9c7.2-7.2 17.1-11.3 27.3-11.3s20.1 4.1 27.3 11.3l33.9 33.9c12 12 28.3 18.7 45.3 18.7L512 416c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64zM80 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm352-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z"],"pizza-slice":[512,512,[],"f818","M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L112.5 72C293.3 72.3 439.7 218.7 440 399.5l36.4-9.7c20.8-5.5 36.3-24.7 34.7-47.5-12.6-182.8-158.6-328.8-341.4-341.4zm222 411.5c.2-4.1 .3-8.2 .3-12.4 0-154.6-125.4-280-280-280-4.1 0-8.3 .1-12.4 .3L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1l371.6-99.1zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],"spray-can":[576,512,[],"f5bd","M192 0l64 0c17.7 0 32 14.3 32 32l0 80-128 0 0-80c0-17.7 14.3-32 32-32zM64 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48l-224 0c-26.5 0-48-21.5-48-48l0-208zm240 80a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM320 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM512 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"volume-low":[448,512,[128264,"volume-down"],"f027","M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM380.6 181.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C361.1 227.6 368 241 368 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C402.1 312.9 416 286.1 416 256s-13.9-56.9-35.5-74.5z"],cross:[384,512,[128327,10013],"f654","M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z"],person:[384,512,[129485,"male"],"f183","M248 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C274 132 234.3 112 192 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3z"],hourglass:[384,512,[9203,62032,"hourglass-empty"],"f254","M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1l-67.9 67.9 67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1l67.9-67.9-67.9-67.9C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9l67.9 67.9 67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11-192 0zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9l-67.9-67.9-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z"],fish:[576,512,[128031],"f578","M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8 4.7 9.2 4.7 20.1 0 29.3-14.1 27.4-41.9 66.8-81 99.8-39.2 33.1-92 61.5-155.5 61.5s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9s-12.4-26-5.3-38.6L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"],"drumstick-bite":[512,512,[],"f6d7","M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2-4.6-1.1-9.5-1.8-14.5-1.8-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12 0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1 11.9-1.2 16.4-15.5 10.8-26-8.5-15.8-13.3-33.8-13.3-53 0-61.9 50.1-112 112-112 8 0 15.7 .8 23.2 2.4 11.7 2.5 24.1-5.9 22-17.6-14.7-82.3-86.7-144.8-173.2-144.8-97.2 0-176 78.8-176 176l0 89.2z"],"chart-simple":[512,512,[],"e473","M192 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM432 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z"],atom:[448,512,[9883],"f5d2","M224 398.8c-11.8 5.1-23.4 9.7-34.9 13.5 16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM414 256c33 45.2 44.3 90.9 23.6 128-20.2 36.3-62.5 49.3-115.2 43.2-22 52.1-55.7 84.8-98.4 84.8s-76.4-32.7-98.4-84.8C72.9 433.3 30.6 420.3 10.4 384-10.3 346.9 1 301.2 34 256 1 210.8-10.3 165.1 10.4 128 30.6 91.7 72.9 78.7 125.6 84.8 147.6 32.7 181.2 0 224 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2 20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2 31.8 1.4 38.6-8.7 40.2-11.7 2.3-4.2 7-17.9-11.9-48.1-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2 7.6 6.1 14.8 12.3 21.6 18.6 18.9-30.2 14.2-44 11.9-48.1-1.6-2.9-8.4-13-40.2-11.7zM258.9 99.7C242.1 65.9 227.9 64 224 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5 11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2-31.8-1.4-38.6 8.7-40.2 11.7-2.3 4.2-7 17.9 11.9 48.1 6.8-6.3 14-12.5 21.6-18.6zM78.2 304.8c-18.9 30.2-14.2 44-11.9 48.1 1.6 2.9 8.4 13 40.2 11.7-2.8-13.1-5-26.9-6.7-41.2-7.6-6.1-14.8-12.3-21.6-18.6zM304 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],p:[320,512,[112],"50","M0 64C0 46.3 14.3 32 32 32l128 0c88.4 0 160 71.6 160 160S248.4 352 160 352l-96 0 0 96c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96l-96 0 0 192z"],"jet-fighter-up":[512,512,[],"e518","M206.8 47.8C202.3 58.5 200 70 200 81.6l0 100.4-152 114 0-48c0-13.3-10.7-24-24-24S0 234.7 0 248L0 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 152 0 0 54.4-66 52.8c-3.8 3-6 7.6-6 12.5l0 24.3c0 8.8 7.2 16 16 16l88 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 88 0c8.8 0 16-7.2 16-16l0-24.3c0-4.9-2.2-9.5-6-12.5l-66-52.8 0-54.4 152 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48-152-114 0-100.4c0-11.6-2.3-23.1-6.8-33.8l-27.1-65C274.4-26.2 265.7-32 256-32s-18.4 5.8-22.2 14.8l-27.1 65z"],"plug-circle-xmark":[640,512,[],"e560","M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z"],"sheet-plastic":[384,512,[],"e571","M0 448c0 35.3 28.7 64 64 64l149.5 0c17 0 33.3-6.7 45.3-18.7L365.3 386.7c12-12 18.7-28.3 18.7-45.3L384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zm208 5.5l0-93.5c0-13.3 10.7-24 24-24l93.5 0-117.5 117.5zM153 105l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zm96 32L137 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L215 103c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z"],v:[384,512,[118],"56","M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z"],list:[512,512,["list-squares"],"f03a","M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z"],"solar-panel":[576,512,[],"f5ba","M121.8 32c-30 0-56 20.8-62.5 50.1L9.6 306.1C.7 346.1 31.1 384 72 384l184.1 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 184.1 0c40.9 0 71.4-37.9 62.5-77.9l-49.8-224C510.4 52.8 484.5 32 454.5 32L121.8 32zM245.6 96l85.2 0 7.3 88-99.8 0 7.3-88zm-55.5 88l-87.8 0 19.6-88 75.6 0-7.3 88zM91.6 232l94.5 0-7.3 88-106.7 0 19.6-88zm142.6 0l107.8 0 7.3 88-122.5 0 7.3-88zm156 0l94.5 0 19.6 88-106.7 0-7.3-88zM474 184l-87.8 0-7.3-88 75.6 0 19.6 88z"],"land-mine-on":[576,512,[],"e51b","M312 0l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24L264 0c0-13.3 10.7-24 24-24s24 10.7 24 24zM160 288c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l80 0 0-32zM12 114.7c7.4-11 22.3-14 33.3-6.7l96 64c11 7.4 14 22.3 6.7 33.3s-22.3 14-33.3 6.7l-96-64c-11-7.4-14-22.3-6.7-33.3zM530.7 108c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-96 64c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l96-64z"],headphones:[448,512,[127911,62863,"headphones-alt","headphones-simple"],"f025","M64 224c0-88.4 71.6-160 160-160s160 71.6 160 160l0 37.5c-10-3.5-20.8-5.5-32-5.5l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-11.2 0-22 1.9-32 5.5L64 224z"],bus:[448,512,[128653],"f207","M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 176c0-17.7 14.3-32 32-32l104 0 0 112-104 0c-17.7 0-32-14.3-32-32l0-48zm184 80l0-112 104 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-104 0zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM152 72c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24z"],"file-powerpoint":[384,512,[],"f1c4","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM152 256c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 24 0c39.8 0 72-32.2 72-72s-32.2-72-72-72l-48 0zm48 96l-24 0 0-48 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z"],"quote-left":[448,512,[8220,"quote-left-alt"],"f10d","M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-136z"],"chevron-down":[448,512,[],"f078","M201.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 338.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z"],"earth-asia":[512,512,[127759,"globe-asia"],"f57e","M50 284.8c4.2 2.1 9 3.2 14 3.2l50.7 0c8.5 0 16.6 3.4 22.6 9.4l13.3 13.3c6 6 14.1 9.4 22.6 9.4l18.7 0c17.7 0 32-14.3 32-32l0-40c0-13.3 10.7-24 24-24s24-10.7 24-24l0-42.7c0-8.5 3.4-16.6 9.4-22.6l13.3-13.3c6-6 9.4-14.1 9.4-22.6L304 57c0-1.2-.1-2.3-.2-3.5-15.4-3.6-31.4-5.5-47.8-5.5-114.9 0-208 93.1-208 208 0 9.8 .7 19.4 2 28.8zm403.3 37.3c-3.2-1.4-6.7-2.1-10.5-2.1L432 320c-8.8 0-16-7.2-16-16s-7.2-16-16-16l-34.7 0c-8.5 0-16.6 3.4-22.6 9.4l-45.3 45.3c-6 6-9.4 14.1-9.4 22.6l0 18.7c0 17.7 14.3 32 32 32l18.7 0c8.5 0 16.6 3.4 22.6 9.4 2.2 2.2 4.7 4.1 7.3 5.5 39.3-25.4 69.5-63.6 84.6-108.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM128 368c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM272 256c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm48-112l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16z"],"cent-sign":[384,512,[],"e3f5","M208 0c17.7 0 32 14.3 32 32l0 25.4c43.6 5.2 83 24.5 113.3 53.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-24.4-23-57.2-37.1-93.3-37.1-75.1 0-136 60.9-136 136s60.9 136 136 136c36.2 0 69-14.1 93.3-37.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C323 430.1 283.6 449.4 240 454.6l0 25.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-28C84.7 433.5 16 352.8 16 256S84.7 78.5 176 60l0-28c0-17.7 14.3-32 32-32z"],"shield-cat":[512,512,[],"e572","M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"],"school-circle-check":[640,512,[],"e56b","M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z"],"martini-glass":[512,512,[127864,"glass-martini-alt"],"f57b","M2.4 51.8C7.4 39.8 19.1 32 32 32l448 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L288 301.3 288 448 352 448c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-146.7-214.6-214.6C.2 77.5-2.5 63.7 2.4 51.8zM354.7 144l48-48-293.5 0 48 48 197.5 0z"],plug:[448,512,[128268],"f1e6","M128-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 95.1-69.2 174.1-160 189.3l0 66.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C101.2 398.1 32 319.1 32 224l0-64c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0 0-96c0-17.7 14.3-32 32-32z"],panorama:[576,512,[],"e209","M43.9 48C19.7 48 0 67.7 0 91.9L0 420.1c0 24.3 19.7 43.9 43.9 43.9 5.5 0 10.7-1 15.7-2.9 12.9-4.9 103.4-37.1 228.4-37.1s215.5 32.3 228.4 37.1c5 1.9 10.2 2.9 15.7 2.9 24.3 0 43.9-19.7 43.9-43.9l0-328.2c0-24.3-19.7-43.9-43.9-43.9-5.5 0-10.7 1-15.7 2.9-12.9 4.9-103.4 37.1-228.4 37.1S72.5 55.7 59.6 50.9C54.6 49 49.4 48 43.9 48zM72 176a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm264.1-16c7.5 0 14.6 3.6 19.1 9.6L479.7 336.2c5.9 7.9 6.4 18.5 1.3 26.9s-14.8 12.8-24.5 11.1c-45.8-7.8-103.3-14.2-168.4-14.2-65.6 0-123.4 6.5-169.3 14.4-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L165.3 249c4.6-5.7 11.5-9 18.7-9s14.2 3.3 18.7 9l27.5 34.4 86.7-113.9c4.6-6 11.7-9.5 19.2-9.5z"],"clock-rotate-left":[576,512,["history"],"f1da","M288 64c106 0 192 86 192 192S394 448 288 448c-65.2 0-122.9-32.5-157.6-82.3-10.1-14.5-30.1-18-44.6-7.9s-18 30.1-7.9 44.6C124.1 468.6 201 512 288 512 429.4 512 544 397.4 544 256S429.4 0 288 0C202.3 0 126.5 42.1 80 106.7L80 80c0-17.7-14.3-32-32-32S16 62.3 16 80l0 112c0 17.7 14.3 32 32 32l24.6 0c.5 0 1 0 1.5 0l86 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-38.3 0C154.9 102.6 217 64 288 64zm24 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1z"],"jar-wheat":[320,512,[],"e517","M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm112 32l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7z"],"cloud-arrow-down":[576,512,[62337,"cloud-download","cloud-download-alt"],"f0ed","M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM377 313c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72z"],"truck-ramp-box":[576,512,["truck-loading"],"f4de","M400 32c-44.2 0-80 35.8-80 80l0 248.2-297.2 89.2C5.9 454.4-3.7 472.3 1.4 489.2s22.9 26.5 39.8 21.5l315.5-94.6 43.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88l0-392-176 0zM528 424c0 22.1-17.9 40-40 40s-40-17.9-40-40 17.9-40 40-40c22.1 0 39.9 17.9 40 39.9l0 .1zM51.9 149.5C18.1 159.8-.9 195.6 9.4 229.4l28.1 91.8C47.8 355 83.6 374 117.4 363.7l91.8-28.1c33.8-10.3 52.8-46.1 42.5-79.9l-28.1-91.8c-10.3-33.8-46.1-52.8-79.9-42.5L51.9 149.5z"],"angle-down":[384,512,[8964],"f107","M169.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 306.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"],"plug-circle-check":[640,512,[],"e55c","M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z"],"window-maximize":[512,512,[128470],"f2d0","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm24 64l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 176c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"hands-holding-circle":[640,512,[],"e4fb","M320 0a128 128 0 1 1 0 256 128 128 0 1 1 0-256zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40z"],"location-pin":[384,512,["map-marker"],"f041","M192 0C86 0 0 84.4 0 188.6 0 307.9 120.2 450.9 170.4 505.4 182.2 518.2 201.8 518.2 213.6 505.4 263.8 450.9 384 307.9 384 188.6 384 84.4 298 0 192 0z"],"bowling-ball":[512,512,[],"f436","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"cart-flatbed":[576,512,["dolly-flatbed"],"f474","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 39.8 29.1 72.8 67.1 79-2 5.3-3.1 11-3.1 17 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l34.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-400 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM224 64c-26.5 0-48 21.5-48 48l0 176c0 26.5 21.5 48 48 48l240 0c26.5 0 48-21.5 48-48l0-176c0-26.5-21.5-48-48-48L224 64z"],"house-user":[512,512,["home-user"],"e1b0","M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM144 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z"],ghost:[384,512,[128123],"f6e2","M40.1 467.1l-11.2 9C25.7 478.6 21.8 480 17.8 480 8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"comment-nodes":[640,512,[],"e696","M480 208C503.7 208 525.6 215.3 543.7 227.9 536.9 100.9 425 0 288 0 146.6 0 32 107.5 32 240 32 294.3 51.2 344.3 83.6 384.5L34.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7c27.2 11.4 56.9 18.4 88.1 20.2 .1-18.9 4.9-38 15-55.5 17.1-29.7 45.8-48.5 77-54.2l9.2-16c-3.4-10.7-5.2-22-5.2-33.8 0-61.9 50.1-112 112-112zM328.6 448c-17.7 30.6-7.2 69.7 23.4 87.4s69.7 7.2 87.4-23.4c1.5-2.6 2.8-5.3 3.9-8l73.3 0c1.1 2.7 2.4 5.4 3.9 8 17.7 30.6 56.8 41.1 87.4 23.4s41.1-56.8 23.4-87.4c-13.4-23.2-39.1-34.8-64-31.4l-17.6-30.7c-11 11.7-25 20.6-40.6 25.6l16.5 28.9c-3.8 4.8-6.8 10-9 15.6l-73.4 0c-2.2-5.6-5.3-10.8-9-15.6l33-57.7c4.1 .8 8.4 1.3 12.8 1.3 35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64c0 13.4 4.1 25.8 11.2 36.1l-34.6 60.5c-25-3.4-50.6 8.3-64 31.4z"],"person-arrow-down-to-line":[576,512,[],"e538","M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 480l32 0 0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128zM566.6 166.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L432 146.7 432 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 146.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z"],"plug-circle-plus":[640,512,[],"e55f","M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z"],"person-swimming":[640,512,[127946,"swimmer"],"f5c4","M552 152a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM293.4 198.2l-88.6 73.9c1.1 0 2.2-.1 3.3-.1 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 4.8 0 9.7 .2 14.5 .6-8.3-30-24.3-57.7-46.8-80.2-18.4-18.4-40.6-32.7-65-41.8l-68.6-25.7c-27.4-10.3-58-7.5-83.1 7.6l-53.5 32.1c-15.2 9.1-20.1 28.7-11 43.9s28.7 20.1 43.9 11L230 187.3c8.4-5 18.6-5.9 27.7-2.5l35.7 13.4zm110 181.9c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 386.3 17.6 394.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z"],"comment-dots":[512,512,[128172,62075,"commenting"],"f4ad","M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],"chart-pie":[576,512,["pie-chart"],"f200","M512.4 240l-176 0c-17.7 0-32-14.3-32-32l0-176c0-17.7 14.4-32.2 31.9-29.9 107 14.2 191.8 99 206 206 2.3 17.5-12.2 31.9-29.9 31.9zM222.6 37.2c18.1-3.8 33.8 11 33.8 29.5l0 197.3c0 5.6 2 11 5.5 15.3L394 438.7c11.7 14.1 9.2 35.4-6.9 44.1-34.1 18.6-73.2 29.2-114.7 29.2-132.5 0-240-107.5-240-240 0-115.5 81.5-211.9 190.2-234.8zM477.8 288l64 0c18.5 0 33.3 15.7 29.5 33.8-10.2 48.4-35 91.4-69.6 124.2-12.3 11.7-31.6 9.2-42.4-3.9L374.9 340.4c-17.3-20.9-2.4-52.4 24.6-52.4l78.2 0z"],frog:[576,512,[],"f52e","M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9 0 21.8-11.7 41.9-30.7 52.7l-144.5 82.1 92.5 92.5 50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2 27.9-18.5 65.9-15.4 90.5 9.2 24.7 24.7 27.7 62.9 9 90.9-2.6 3.8-5.6 7.5-9 10.9L261.8 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480C28.7 480 0 451.3 0 416 0 249.6 127 112.9 289.3 97.5 296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"],"wine-bottle":[320,512,[],"f72f","M80-32c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32 0 11.8-6.4 22.2-16 27.7l0 145.6c56.5 24.7 96 81.1 96 146.7l0 224c0 35.3-28.7 64-64 64L64 576c-35.3 0-64-28.7-64-64L0 288c0-65.6 39.5-122 96-146.7L96-4.3C86.4-9.8 80-20.2 80-32zM96 288c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 288z"],inbox:[512,512,[],"f01c","M91.8 32C59.9 32 32.9 55.4 28.4 86.9L.6 281.2c-.4 3-.6 6-.6 9.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-125.7c0-3-.2-6.1-.6-9.1L483.6 86.9C479.1 55.4 452.1 32 420.2 32L91.8 32zm0 64l328.5 0 27.4 192-59.9 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L64.3 288 91.8 96z"],"square-h":[448,512,["h-square"],"f0fd","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320 168l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z"],"house-medical":[512,512,[],"e3b2","M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM224 248c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z"],"circle-chevron-right":[512,512,["chevron-circle-right"],"f138","M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z"],"file-csv":[576,512,[],"f6dd","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM264 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-8c0-11-9-20-20-20s-20 9-20 20l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-24.3-19.7-44-44-44l-16 0zm136 0c-28.7 0-52 23.3-52 52s23.3 52 52 52c6.6 0 12 5.4 12 12s-5.4 12-12 12l-32 0c-11 0-20 9-20 20s9 20 20 20l32 0c28.7 0 52-23.3 52-52s-23.3-52-52-52c-6.6 0-12-5.4-12-12s5.4-12 12-12l24 0c11 0 20-9 20-20s-9-20-20-20l-24 0zm96 0c-11 0-20 9-20 20l0 31.6c0 35.5 10.5 70.3 30.2 99.8l5.1 7.7c3.7 5.6 10 8.9 16.6 8.9s12.9-3.3 16.6-8.9l5.1-7.7c19.7-29.6 30.2-64.3 30.2-99.8l0-31.6c0-11-9-20-20-20s-20 9-20 20l0 31.6c0 19.6-4.1 38.9-12 56.7-7.9-17.8-12-37.1-12-56.7l0-31.6c0-11-9-20-20-20z"],"hat-cowboy":[640,512,[],"f8c0","M182.2 76.1L130.8 307.5C145.5 324.9 167.4 336 192 336l256 0c24.6 0 46.5-11.1 61.2-28.5L457.8 76.1c-5.7-25.8-28.6-44.1-55-44.1-12.2 0-24.1 4-33.8 11.3l-4.7 3.5c-26.3 19.7-62.4 19.7-88.6 0L271 43.3c-9.8-7.3-21.6-11.3-33.8-11.3-26.4 0-49.3 18.3-55 44.1zM64 256c0-17.7-14.3-32-32-32S0 238.3 0 256C0 362 86 448 192 448l256 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-256 0c-70.7 0-128-57.3-128-128z"],"face-grin-tongue-wink":[512,512,[128540,"grin-tongue-wink"],"f58b","M152.2 490.1C62.5 450.2 0 360.4 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 104.4-62.5 194.2-152.2 234.1 5.3-13 8.2-27.2 8.2-42.1l0-61.7c16.9-16.5 30.1-36.7 38.3-59.3 4.3-11.8-7.7-21.8-19.6-18.1-39.2 12.2-83.7 19.1-130.7 19.1s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 8.3 22.6 21.5 42.8 38.3 59.3l0 61.7c0 14.9 2.9 29.1 8.2 42.1zM152 212l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm184 60a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9 2.8 12.6 20.8 12.6 23.6 0 2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"],l:[320,512,[108],"4c","M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z"],"arrow-down-short-wide":[576,512,["sort-amount-desc","sort-amount-down-alt"],"f884","M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"],"hourglass-half":[384,512,["hourglass-2"],"f252","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9l67.9-67.9 67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9L112 384z"],spoon:[512,512,[129348,61873,"utensil-spoon"],"f2e5","M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8 0-80.2 96-160.2 192-160.2 53 0 96 43 96 96 0 96-80 192-160.2 192-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z"],"credit-card":[512,512,[128179,62083,"credit-card-alt"],"f09d","M0 128l0 32 512 0 0-32c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128zm0 80L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-176-512 0zM64 360c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm144 0c0-13.3 10.7-24 24-24l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0c-13.3 0-24-10.7-24-24z"],"file-invoice-dollar":[384,512,[],"f571","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 88c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64C74.7 64 64 74.7 64 88zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm112 76l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L152 400c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20z"],"spaghetti-monster-flying":[640,512,["pastafarianism"],"f67b","M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3c-10-11.3-16-26.1-16-42.3 0-35.3 28.7-64 64-64s64 28.7 64 64-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4 7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4 10.7 11.7 16.1 13.4 19.4 13.4 2.5 0 4.3-.6 7.1-3.3 3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7 9.7-9.3 22.9-16.7 40.4-16.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7-9.7 9.3-22.9 16.7-40.4 16.7-18.5 0-32.9-8.5-44.3-18.6-3.1 4-6.6 8.3-10.5 12.7 1.4 4.3 2.8 8.5 4 12.5 .9 3 1.8 5.8 2.6 8.6 3 9.8 5.5 18.2 8.6 25.9 3.9 9.8 7.4 15.4 10.8 18.5 2.6 2.4 5.9 4.3 12.8 4.3 8.7 0 16.9-4.2 33.7-13.2 15-8 35.7-18.8 62.3-18.8 13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2-1 .6-2.1 1.1-3.2 1.7-13.1 7.1-31.6 17.1-53.1 17.1-18.4 0-33.6-6.1-45.5-17.2-11.1-10.3-17.9-23.7-22.7-36-3.6-9-6.7-19.1-9.5-28.5-16.4 12.3-36.1 23.6-58.9 31.3 3.6 10.8 8.4 23.5 14.4 36.2 7.5 15.9 16.2 30.4 25.8 40.5 9.6 10.2 17.7 13.7 24.5 13.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8-14.5-15.4-25.7-34.9-34.2-53-8-17-14.1-33.8-18.3-46.9-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9-8.5 18.1-19.8 37.6-34.2 53-14.4 15.3-34.3 28.8-59.5 28.8-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7 9.5-10.1 18.3-24.6 25.8-40.5 5.9-12.6 10.7-25.4 14.4-36.2-22.8-7.7-42.5-19-58.9-31.3-2.9 9.4-6 19.5-9.5 28.5-4.8 12.2-11.6 25.6-22.7 36-11.9 11.1-27.1 17.2-45.5 17.2-13.1 0-24.5-4.1-33.8-8.9-7.9-4-15.7-9.2-22.1-13.5l0 0-2.4-1.6c-15.3-10.2-25.8-16-37.7-16-13.3 0-24-10.7-24-24s10.7-24 24-24c28.1 0 49.6 14.2 64.3 24l2.4 1.6c6.9 4.6 12.1 8.1 17.2 10.7 5.5 2.8 9.1 3.6 12 3.6 6.8 0 10.2-1.9 12.8-4.3 3.4-3.2 7-8.8 10.8-18.5 3-7.7 5.6-16.1 8.6-25.9 .8-2.7 1.7-5.6 2.6-8.6 1.2-4 2.6-8.2 4-12.5-3.9-4.5-7.4-8.8-10.5-12.7-11.4 10.1-25.9 18.6-44.3 18.6-17.5 0-30.7-7.4-40.4-16.7-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4-2.8-2.7-4.6-3.3-7.1-3.3-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7 8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4 2.8 2.7 4.6 3.3 7.1 3.3 3.3 0 8.7-1.7 19.4-13.4 5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24 13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z"],"martini-glass-citrus":[640,512,["cocktail"],"f561","M576 80c0-44.2-35.8-80-80-80-18 0-34.6 6-48 16l-81 0c23.6-47.4 72.5-80 129-80 79.5 0 144 64.5 144 144S575.5 224 496 224c-6.5 0-13-.4-19.3-1.3l64-74.7c1.1-1.3 2.2-2.7 3.3-4.1 19.4-14.6 32-37.8 32-64zM66.9 82.6C72.2 71.3 83.5 64 96 64l384 0c12.5 0 23.8 7.3 29.1 18.6s3.4 24.7-4.8 34.2l-184.3 215 0 116.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-116.2-184.3-215c-8.1-9.5-10-22.8-4.8-34.2zM165.6 128L288 270.8 410.4 128 165.6 128z"],bullhorn:[512,512,[128226,128363],"f0a1","M461.2 18.9C472.7 24 480 35.4 480 48l0 416c0 12.6-7.3 24-18.8 29.1s-24.8 3.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63l0 95.7c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96C57.3 384 0 326.7 0 256S57.3 128 128 128l84.5 0c61.8-.2 121.4-22.7 167.9-63.3l46.6-40.7c9.4-8.3 22.9-10.2 34.3-5.1zM224 320l0 .2c70.3 2.7 137.8 28.5 192 73.4l0-275.3c-54.2 44.9-121.7 70.7-192 73.4L224 320z"],"box-tissue":[512,512,[],"e05b","M103.9 32l161 0c13.8 0 26 8.8 30.4 21.9l17.4 52.2c4.4 13.1 16.6 21.9 30.4 21.9l60.5 0c21.8 0 37.3 21.4 30.4 42.1L384 320 128 320 72.7 70.9C68.2 51 83.4 32 103.9 32zM48 256l16.6 0 16.5 74.4C86 352.4 105.5 368 128 368l256 0c20.7 0 39-13.2 45.5-32.8l26.4-79.2 8.1 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 304c0-26.5 21.5-48 48-48z"],"mattress-pillow":[576,512,[],"e525","M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm48 384l208 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-208 0 0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z"],"chevron-left":[320,512,[9001],"f053","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z"],"cloud-moon-rain":[576,512,[],"f73c","M448 0c-68.6 0-127.1 43.1-149.8 103.8 17.1 14.1 29.6 33.5 34.9 55.8 39.9 21.7 66.9 63.9 66.9 112.5 0 13.5-2.1 26.5-5.9 38.7 16.9 6 35 9.3 53.9 9.3 43 0 82.1-17 110.8-44.6 4.6-4.4 5.9-11.2 3.3-17s-8.6-9.3-14.9-8.8c-3 .2-6.1 .4-9.2 .4-63.5 0-115-51.5-115-115 0-45.1 26-84.2 63.8-103 5.7-2.8 9-8.9 8.2-15.2S489.6 5.3 483.4 3.9C472 1.4 460.2 0 448 0zM272 352c44.2 0 80-35.8 80-80 0-39-27.9-71.5-64.8-78.6 .5-3.1 .8-6.2 .8-9.4 0-30.9-25.1-56-56-56-12.4 0-23.9 4-33.1 10.8-13.4-25.5-40.1-42.8-70.9-42.8-44.2 0-80 35.8-80 80 0 7.4 1 14.6 2.9 21.5-29.8 11.6-50.9 40.6-50.9 74.5 0 44.2 35.8 80 80 80l192 0zM69 401.1c-12.6-4.2-26.2 2.6-30.4 15.2L17.2 480.4C13 493 19.8 506.6 32.4 510.8s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4z"],"arrow-down-1-9":[512,512,["sort-numeric-asc","sort-numeric-down"],"f162","M418.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM365.1 430.6l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 336a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM150.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96z"],"hand-spock":[512,512,[128406],"f259","M214.9 23.7C210.3 6.6 192.8-3.5 175.7 1.1s-27.2 22.1-22.6 39.2L206 237.8c2.5 9.2-4.5 18.2-14 18.2-6.4 0-12-4.2-13.9-10.3L134.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.1 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L411.5 247.1c-1.6 5.3-6.4 8.9-12 8.9-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L323.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9-11.9 0-22.4-8-25.4-19.5l-57-212.8z"],"wand-magic-sparkles":[576,512,["magic-wand-sparkles"],"e2ca","M263.4-27L278.2 9.8 315 24.6c3 1.2 5 4.2 5 7.4s-2 6.2-5 7.4L278.2 54.2 263.4 91c-1.2 3-4.2 5-7.4 5s-6.2-2-7.4-5L233.8 54.2 197 39.4c-3-1.2-5-4.2-5-7.4s2-6.2 5-7.4L233.8 9.8 248.6-27c1.2-3 4.2-5 7.4-5s6.2 2 7.4 5zM110.7 41.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7L59.8 164.2 9.7 142.7C3.8 140.2 0 134.4 0 128s3.8-12.2 9.7-14.7L59.8 91.8 81.3 41.7C83.8 35.8 89.6 32 96 32s12.2 3.8 14.7 9.7zM464 304c6.4 0 12.2 3.8 14.7 9.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7l-21.5-50.1-50.1-21.5c-5.9-2.5-9.7-8.3-9.7-14.7s3.8-12.2 9.7-14.7l50.1-21.5 21.5-50.1c2.5-5.9 8.3-9.7 14.7-9.7zM460 0c11 0 21.6 4.4 29.5 12.2l42.3 42.3C539.6 62.4 544 73 544 84s-4.4 21.6-12.2 29.5l-88.2 88.2-101.3-101.3 88.2-88.2C438.4 4.4 449 0 460 0zM44.2 398.5L308.4 134.3 409.7 235.6 145.5 499.8C137.6 507.6 127 512 116 512s-21.6-4.4-29.5-12.2L44.2 457.5C36.4 449.6 32 439 32 428s4.4-21.6 12.2-29.5z"],"comment-medical":[512,512,[],"f7f5","M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM217.6 153.6c0-10.6 8.6-19.2 19.2-19.2l38.4 0c10.6 0 19.2 8.6 19.2 19.2l0 48 48 0c10.6 0 19.2 8.6 19.2 19.2l0 38.4c0 10.6-8.6 19.2-19.2 19.2l-48 0 0 48c0 10.6-8.6 19.2-19.2 19.2l-38.4 0c-10.6 0-19.2-8.6-19.2-19.2l0-48-48 0c-10.6 0-19.2-8.6-19.2-19.2l0-38.4c0-10.6 8.6-19.2 19.2-19.2l48 0 0-48z"],"bell-slash":[576,512,[128277,61943],"f1f6","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.5-87.5c17.2-2.4 30.5-17.3 30.5-35.2 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C464.4 308.5 448 261.8 448 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 3.2c-38.6 7.8-72.2 29.6-95.2 59.7L41-24.9zm87 238.5c0 48.1-16.4 94.8-46.4 132.4l-9.8 12.2c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l235.3 0-206.9-206.9 0 4.5zM288 512c29.8 0 54.9-20.4 62-48l-124 0c7.1 27.6 32.2 48 62 48z"],"handshake-slash":[576,512,[57439,"handshake-alt-slash","handshake-simple-slash"],"e060","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-288-288 14.2-14.2c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1l-55.8 62.1-34-34 44.3-49.2-39.7 0c-15.3 0-30.1 3.6-43.5 10.4L41-24.9zM0 69.8L0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c22.2 0 43.8-5.8 62.8-16.4L0 69.8z"],"bottle-water":[320,512,[],"e4c5","M112-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0C94.3 32 80 17.7 80 0s14.3-32 32-32zM16 144c0-35.3 28.7-64 64-64l160 0c35.3 0 64 28.7 64 64 0 24.1-13.3 45.1-33 56 19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56 0 35.3-28.7 64-64 64L80 544c-35.3 0-64-28.7-64-64 0-24.1 13.3-45.1 33-56-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56z"],"dice-d20":[512,512,[],"f6cf","M224.4-8.2c19.6-11.1 43.6-11.1 63.1 0l192 108.8c20 11.4 32.4 32.6 32.4 55.7l0 215.6c0 23-12.4 44.3-32.4 55.7l-192 108.8c-19.6 11.1-43.6 11.1-63.1 0L32.4 427.5C12.4 416.1 0 394.8 0 371.8L0 156.2c0-23 12.4-44.3 32.4-55.7L224.4-8.2zm52 73.2C267 49.8 245 49.8 235.6 65l-76.6 123.7-85.4-46.3-3.8-1.6c-8.9-2.7-18.8 1.1-23.4 9.6s-2.4 18.9 4.7 24.8l3.3 2.3 83.4 45.2-74.6 120.6C55.3 356.2 61 373 75 378.4l161 61.9 0 39.7c0 11 9 20 20 20s20-9 20-20l0-39.7 161-61.9c14-5.4 19.7-22.2 11.8-35l-74.7-120.6 83.4-45.2c9.7-5.3 13.3-17.4 8.1-27.1s-17.4-13.3-27.1-8.1L353 188.7 276.4 65zm-47 329.9l-122-46.9 54.5-88.1 67.5 135zM404.6 348l-122 46.9 67.5-135 54.5 88.1zM319.3 232L256 358.6 192.7 232 319.3 232zM308 192l-104.1 0 52-84 52 84z"],"arrow-down-z-a":[512,512,["sort-alpha-desc","sort-alpha-down-alt"],"f881","M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM288 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 160 448 160c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L370.8 96 320 96c-17.7 0-32-14.3-32-32zM412.6 273.7l80 160c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l80-160c5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 359.6l-20.2 40.4 40.4 0-20.2-40.4z"],brush:[384,512,[],"f55d","M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48l0 208 384 0 0-208c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 304l0 16c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-16-384 0zM192 464c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z"],"person-walking-dashed-line-arrow-right":[640,512,[],"e553","M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM432 8c0-13.3-10.7-24-24-24S384-5.3 384 8l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zm0 128c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM408 320c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM609 273c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z"],"arrow-up-short-wide":[576,512,["sort-amount-up-alt"],"f885","M320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z"],"grip-vertical":[320,512,["grid-vertical"],"f58e","M128 40c0-22.1-17.9-40-40-40L40 0C17.9 0 0 17.9 0 40L0 88c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM0 424l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 40c0-22.1-17.9-40-40-40L232 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM192 232l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 424c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z"],"car-tunnel":[512,512,[],"e4de","M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-113.1c0-13.5 3.1-26.8 9-38.9l39.7-80.8c9.4-19.1 28.9-31.3 50.2-31.3L317 224c21.3 0 40.8 12.1 50.2 31.3L407 336c5.9 12.1 9 25.4 9 38.9L416 488c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-24-192 0 0 24c0 9.6-4.2 18.1-10.8 24l213.7 0zm-175-235.5l-29.3 59.5 194.9 0-29.3-59.5c-1.3-2.7-4.1-4.5-7.2-4.5L195 272c-3 0-5.8 1.7-7.2 4.5zM176 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm184-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"],"chart-column":[512,512,[],"e0e3","M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM144 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm144-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm80 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM512 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z"],"truck-arrow-right":[576,512,[],"e58b","M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM305 225l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z"],tv:[576,512,[63717,"television","tv-alt"],"f26c","M64 96l0 240 448 0 0-240-448 0zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64L64 400c-35.3 0-64-28.7-64-64L0 96zM160 448l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z"],section:[256,512,[],"e447","M110 0C49.2 0 0 49.2 0 110 0 133.7 7.6 155.8 20.5 174 7.6 192 0 214.1 0 238 0 291.7 38.9 337.6 91.9 346.4l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 25.4-20.6 46-46 46l-98 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l98 0c60.7 0 110-49.2 110-110 0-23.7-7.6-45.9-20.5-64 12.9-18 20.5-40.1 20.5-64 0-53.8-38.9-99.6-91.9-108.5l-61.7-10.3C80.2 151.6 64 132.4 64 110 64 84.6 84.6 64 110 64l98 0c17.7 0 32-14.3 32-32S225.7 0 208 0L110 0zm74.7 299.1c-6.5-2.4-13.4-4.3-20.5-5.5l-61.7-10.3c-22.2-3.7-38.4-22.9-38.4-45.3 0-9.2 2.7-17.8 7.4-25 6.5 2.4 13.4 4.3 20.5 5.5l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 9.2-2.7 17.8-7.4 25z"],peace:[512,512,[9774],"f67c","M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8 224 66.7c-90.8 15.2-160 94.2-160 189.3 0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5l-94.3-77.1 0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1 0-95.1-69.2-174.1-160-189.3l0 174.2 134.8 110.3zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z"],star:[576,512,[11088,61446],"f005","M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9z"],flag:[448,512,[127988,61725],"f024","M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-121.6 62.7-18.8c41.9-12.6 87.1-8.7 126.2 10.9 42.7 21.4 92.5 24 137.2 7.2l37.1-13.9c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-11.8 5.9c-44.9 22.5-97.8 22.5-142.8 0-36.4-18.2-78.3-21.8-117.2-10.1L64 54.4 64 32z"],"triangle-exclamation":[512,512,[9888,"exclamation-triangle","warning"],"f071","M256 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.1 480 472 480L40 480c-14.1 0-27.2-7.4-34.4-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zm0 352a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.5 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z"],"school-circle-exclamation":[640,512,[],"e56c","M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"],"graduation-cap":[576,512,[127891,"mortar-board"],"f19d","M48 195.8l209.2 86.1c9.8 4 20.2 6.1 30.8 6.1s21-2.1 30.8-6.1l242.4-99.8c9-3.7 14.8-12.4 14.8-22.1s-5.8-18.4-14.8-22.1L318.8 38.1C309 34.1 298.6 32 288 32s-21 2.1-30.8 6.1L14.8 137.9C5.8 141.6 0 150.3 0 160L0 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-260.2zm48 71.7L96 384c0 53 86 96 192 96s192-43 192-96l0-116.6-142.9 58.9c-15.6 6.4-32.2 9.7-49.1 9.7s-33.5-3.3-49.1-9.7L96 267.4z"],store:[512,512,[],"f54e","M30.7 72.3C37.6 48.4 59.5 32 84.4 32l344 0c24.9 0 46.8 16.4 53.8 40.3l23.4 80.2c12.8 43.7-20.1 87.5-65.6 87.5-26.3 0-49.4-14.9-60.8-37.1-11.6 21.9-34.6 37.1-61.4 37.1-26.6 0-49.7-15-61.3-37-11.6 22-34.7 37-61.3 37-26.8 0-49.8-15.1-61.4-37.1-11.4 22.1-34.5 37.1-60.8 37.1-45.6 0-78.4-43.7-65.6-87.5L30.7 72.3zM96.4 352l320 0 0-66.4c7.6 1.6 15.5 2.4 23.5 2.4 14.3 0 28-2.6 40.5-7.2l0 151.2c0 26.5-21.5 48-48 48l-352 0c-26.5 0-48-21.5-48-48l0-151.2c12.5 4.6 26.1 7.2 40.5 7.2 8.1 0 15.9-.8 23.5-2.4l0 66.4z"],"user-astronaut":[448,512,[],"f4fb","M224 336c74.6 0 138.4-46.4 164-112l4 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-4 0C362.4 30.4 298.6-16 224-16S85.6 30.4 60 96l-4 0c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l4 0c25.6 65.6 89.4 112 164 112zM208 80l32 0c53 0 96 43 96 96s-43 96-96 96l-32 0c-53 0-96-43-96-96s43-96 96-96zM16 484.6C16 499.7 28.3 512 43.4 512l52.6 0 0-48c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 48 52.6 0c15.1 0 27.4-12.3 27.4-27.4 0-59.8-31.9-112.2-79.6-141-36.4 25.5-80.6 40.4-128.4 40.4s-92-14.9-128.4-40.4C47.9 372.4 16 424.8 16 484.6zM183.3 141.5c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6-6-21.2zM152 488l0 24 48 0 0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24zm120-24c-13.3 0-24 10.7-24 24l0 24 48 0 0-24c0-13.3-10.7-24-24-24z"],"building-flag":[640,512,[],"e4d5","M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 0c-17.7 0-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L496 32c0-17.7-14.3-32-32-32z"],"mug-saucer":[576,512,["coffee"],"f0f4","M64 64c0-17.7 14.3-32 32-32l352 0c70.7 0 128 57.3 128 128S518.7 288 448 288c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 64zm448 96c0-35.3-28.7-64-64-64l0 128c35.3 0 64-28.7 64-64zM64 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z"],lemon:[448,512,[127819],"f094","M448 96c0-35.3-28.7-64-64-64-6.6 0-13 1-19 2.9-22.5 7-48.1 14.9-71 9-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71-1.9 6-2.9 12.4-2.9 19 0 35.3 28.7 64 64 64 6.6 0 13-1 19.1-2.9 22.5-7 48.1-14.9 71-9 75.2 19.1 156.4-11 213.7-68.3S455.2 261.2 436.1 186c-5.8-22.9 2-48.4 9-71 1.9-6 2.9-12.4 2.9-19.1zM222.7 143c-52 15.2-96.5 59.7-111.7 111.7-3.7 12.7-17.1 20-29.8 16.3S61.2 254 65 241.3c19.8-67.7 76.6-124.5 144.3-144.3 12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z"],caravan:[640,512,[],"f8ff","M32 96c0-35.3 28.7-64 64-64l320 0c70.7 0 128 57.3 128 128l0 192 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zM352 352l64 0c17.7 0 32-14.3 32-32l0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 160c0 17.7 14.3 32 32 32zM160 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 336a40 40 0 1 0 0-80 40 40 0 1 0 0 80z"],q:[448,512,[113],"51","M64 256c0 88.4 71.6 160 160 160 28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1c20.4-26.8 32.5-60.3 32.5-96.6 0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480 100.3 480 0 379.7 0 256S100.3 32 224 32 448 132.3 448 256c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z"],lock:[384,512,[128274],"f023","M128 96l0 64 128 0 0-64c0-35.3-28.7-64-64-64s-64 28.7-64 64zM64 160l0-64C64 25.3 121.3-32 192-32S320 25.3 320 96l0 64c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z"],"paint-roller":[512,512,[],"f5aa","M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l16 0c44.2 0 80 35.8 80 80l0 96c0 44.2-35.8 80-80 80l-160 0c-8.8 0-16 7.2-16 16l0 18.7c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-18.7c0-44.2 35.8-80 80-80l160 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-16 0c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64z"],"volume-high":[640,512,[128266,"volume-up"],"f028","M533.6 32.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C557.5 113.8 592 180.8 592 256s-34.5 142.2-88.7 186.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C598.5 426.7 640 346.2 640 256S598.5 85.2 533.6 32.5zM473.1 107c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C475.3 170.7 496 210.9 496 256s-20.7 85.3-53.2 111.8c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5c43.2-35.2 70.9-88.9 70.9-149s-27.7-113.8-70.9-149zm-60.5 74.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C393.1 227.6 400 241 400 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C434.1 312.9 448 286.1 448 256s-13.9-56.9-35.4-74.5zM80 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L128 160 80 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48z"],"folder-plus":[512,512,[],"f65e","M512 384c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240zM256 160c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z"],mercury:[384,512,[9791],"f223","M117-4C106-17.8 85.8-20 72.1-9s-16 31.2-5 45C74.9 45.7 83.7 54.5 93.5 62.1 46.7 93.7 16 147.3 16 208 16 294.3 78.1 366.1 160 381.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-60.7-30.7-114.3-77.5-145.9 9.8-7.7 18.7-16.4 26.4-26.1 11.1-13.8 8.8-33.9-5-45S278-17.8 267-4c-17.6 22-44.7 36-75 36S134.7 18 117-4zm75 324c-61.9 0-112-50.1-112-112S130.1 96 192 96 304 146.1 304 208c0 61.8-50.1 112-111.9 112l-.1 0z"],anchor:[576,512,[9875],"f13d","M288 64a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM192 96c0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 257.9c62.9-14.3 110.2-69.7 111.9-136.5l-16.1 14.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3L496 307.9C493.9 421 401.6 512 288 512S82.1 421 80 307.9L63.8 322.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3l-16.1-14.1c1.8 66.8 49.1 122.2 111.9 136.5l0-257.9c-37.3-13.2-64-48.7-64-90.5z"],"square-parking":[448,512,[127359,"parking"],"f540","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-184c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z"],hanukiah:[640,512,[128334],"f6e6","M314.2 3.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104 8 117.3 18.7 128 32 128s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176-192 0c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32S0 174.3 0 192l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z"],"rotate-left":[512,512,["rotate-back","rotate-backward","undo-alt"],"f2ea","M24 192l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-46.7-46.7c75.3-58.6 184.3-53.3 253.5 15.9 75 75 75 196.5 0 271.5s-196.5 75-271.5 0c-10.2-10.2-19-21.3-26.4-33-9.5-14.9-29.3-19.3-44.2-9.8s-19.3 29.3-9.8 44.2C49.7 408.7 61.4 423.5 75 437 175 537 337 537 437 437S537 175 437 75C342.8-19.3 193.3-24.7 92.7 58.8L41 7C34.1 .2 23.8-1.9 14.8 1.8S0 14.3 0 24L0 168c0 13.3 10.7 24 24 24z"],heading:[448,512,["header"],"f1dc","M0 64C0 46.3 14.3 32 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 320 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-320-16 0C14.3 96 0 81.7 0 64z"],crosshairs:[576,512,[],"f05b","M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM131.2 288c12.7 62.7 62.1 112.1 124.8 124.8l0-12.8c0-17.7 14.3-32 32-32s32 14.3 32 32l0 12.8c62.7-12.7 112.1-62.1 124.8-124.8L432 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l12.8 0C432.1 161.3 382.7 111.9 320 99.2l0 12.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-12.8C193.3 111.9 143.9 161.3 131.2 224l12.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-12.8 0zM288 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"],"circle-nodes":[512,512,[],"e4e2","M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9 0-44.2-35.8-80-80-80-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128 35.8 128 0 163.8 0 208s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z"],"window-restore":[576,512,[],"f2d2","M512 96L160 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-64 48 0 0-192zM0 224c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224zm64 40c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 240c-13.3 0-24 10.7-24 24z"],r:[320,512,[114],"52","M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0 102.4 146.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176 320 96.5 255.5 32 176 32L32 32zM176 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z"],"filter-circle-xmark":[576,512,[],"e17b","M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"],gopuram:[512,512,[],"f664","M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 136c26.5 0 48 21.5 48 48l0 80c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-48 0 0-224-32 0 0-128-48 0 0 128 32 0 0 224-224 0 0-224 32 0 0-128-48 0 0 128-32 0 0 224-48 0c-26.5 0-48-21.5-48-48L0 336c0-26.5 21.5-48 48-48l0-80c0-26.5 21.5-48 48-48L96 24c0-13.3 10.7-24 24-24zM256 208c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zM208 400l0 64 96 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48zM256 96c-17.7 0-32 14.3-32 32l0 32 64 0 0-32c0-17.7-14.3-32-32-32z"],"heart-circle-minus":[576,512,[],"e4ff","M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z"],"star-of-life":[512,512,[],"f621","M208.5 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7l-122 70.4 122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7l-122-70.4 0 140.9c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9-122 70.4c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7l122-70.4-122-70.4c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7c8.8-15.3 28.4-20.5 43.7-11.7l122 70.4 0-140.9z"],"business-time":[640,512,["briefcase-clock"],"f64a","M264 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0c-35.3 0-64 28.7-64 64l0 96 305 0c33.8-29.9 78.3-48 127-48 28.6 0 55.6 6.2 80 17.4l0-65.4c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L264 0c-30.9 0-56 25.1-56 56zm80 296c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l193.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-16.6 2.1-32.7 6-48l-22 0zm352 48a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 320c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z"],"fire-extinguisher":[512,512,[129519],"f134","M512 32c0-9.6-4.3-18.7-11.7-24.7S483.1-1.3 473.7 .6l-160 32C301.5 35.1 292 44.3 289 56l-65 0 0-24c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32l0 28.4c-55.3 12.3-101.3 49.5-125.5 99.1-5.8 11.9-.9 26.3 11.1 32.1s26.3 .9 32.1-11.1C62 146.9 91.8 121.1 128 110l0 28.8c-37.8 18-64 56.5-64 101.2l0 128 224 0 0-128c0-44.7-26.2-83.2-64-101.2l0-34.8 65 0c3 11.7 12.5 20.9 24.7 23.4l160 32c9.4 1.9 19.1-.6 26.6-6.6S512 137.6 512 128l0-96zM288 448l0-32-224 0 0 32c0 35.3 28.7 64 64 64l96 0c35.3 0 64-28.7 64-64z"],"arrow-down-long":[320,512,["long-arrow-down"],"f175","M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 434.7 192 0c0-17.7-14.3-32-32-32S128-17.7 128 0l0 434.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z"],"user-minus":[640,512,[],"f503","M136 128a120 120 0 1 1 240 0 120 120 0 1 1 -240 0zM48 482.3C48 383.8 127.8 304 226.3 304l59.4 0c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3zM472 168l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"money-check":[512,512,[],"f53c","M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM96 312c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zm24-136c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0z"],"house-laptop":[640,512,["laptop-house"],"e066","M448 240l19.9 0c15.5 0 28.1-12.6 28.1-28.1 0-7.6-3.1-14.9-8.6-20.2L283.5-4.9C276.1-12 266.3-16 256-16s-20.1 4-27.5 11.1L24.6 191.7C19.1 197 16 204.3 16 211.9 16 227.4 28.6 240 44.1 240l19.9 0 0 144c0 35.3 28.7 64 64 64l85.7 0c7.4-6.6 16.4-11.4 26.3-14l0-130c0-5.5 .7-10.9 2-16l-10 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24 144 0zM352 352l160 0 0 128-160 0 0-128zm-64-32l0 160-32 0c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l288 0c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16l-32 0 0-160c0-17.7-14.3-32-32-32l-224 0c-17.7 0-32 14.3-32 32z"],download:[448,512,[],"f019","M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 242.7 256 32zM64 320c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-46.9 0-56.6 56.6c-31.2 31.2-81.9 31.2-113.1 0L110.9 320 64 320zm304 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"],couch:[640,512,[],"f4b8","M144 272C144 224.7 109.8 185.4 64.8 177.5 72 113.6 126.2 64 192 64l256 0c65.8 0 120 49.6 127.2 113.5-45 8-79.2 47.2-79.2 94.5l0 32-352 0 0-32zM0 384L0 272c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 448 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64z"],"road-lock":[576,512,[],"e567","M256 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L33.4 420.5C25.9 450.7 48.8 480 80 480l175.9 0 0-64c0-17.7 14.3-32 32-32 6.1 0 11.8 1.7 16.7 4.7 2.8-23.9 14.3-45.1 31.4-60.3l0-24.4c0-70.7 57.3-128 128-128 6.2 0 12.4 .4 18.4 1.3L458.5 80.6C451.4 52.1 425.8 32 396.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 80.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM352 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z"],scissors:[512,512,[9984,9986,9988,"cut"],"f0c4","M192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6-28.3-28.3-74.1-28.3-102.4 0L256 192 216.5 152.5c4.9-12.6 7.5-26.2 7.5-40.5 0-61.9-50.1-112-112-112S0 50.1 0 112 50.1 224 112 224c14.3 0 27.9-2.7 40.5-7.5L192 256zm97.9 97.9L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0 7.1-7.1 7.1-18.5 0-25.6l-145.3-145.3-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z"],bug:[576,512,[],"f188","M192 96c0-53 43-96 96-96s96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6zm345.6 12.8c10.6 14.1 7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 2.6-.1 5.3-.2 7.9l83.4 62.5c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4l-63.1-47.3c-23.2 44.2-66.5 76.2-117.7 83.9L312 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 230.2c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c2.5-10.4 6.5-20.2 11.8-29.1L44.8 153.6c-14.1-10.6-17-30.7-6.4-44.8s30.7-17 44.8-6.4L192 184c12.3-5.1 25.8-8 40-8l112 0c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4z"],"arrow-right-from-bracket":[512,512,["sign-out"],"f08b","M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0zM502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z"],"hand-holding-hand":[576,512,[],"e4f7","M466.8 186.5l42.5-42.5 34.7 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L223.6 16c-29 0-57.3 9.3-80.7 26.5L16.3 135.8c-17.8 13.1-21.6 38.1-8.5 55.9s38.1 21.6 55.9 8.5L183.4 112 296 112c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l152.2 0c33.9 0 66.5-13.5 90.5-37.5zm-357.5 139L66.7 368 32 368c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 400 280 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z"],stroopwafel:[512,512,[],"f551","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3-33.9-33.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm67.9 67.9l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zM278.6 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm22.6-67.9l-45.3 45.3-45.3-45.3 45.3-45.3 45.3 45.3z"],child:[320,512,[],"f1ae","M96 64A64 64 0 1 1 224 64 64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L80 287.8 59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z"],"ice-cream":[384,512,[127848],"f810","M335.1 160c.6-5.3 .9-10.6 .9-16 0-79.5-64.5-144-144-144S48 64.5 48 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l288 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM64 304L169.2 529.5c4.1 8.8 13 14.5 22.8 14.5s18.6-5.7 22.8-14.5L320 304 64 304z"],"computer-mouse":[384,512,[128433,"mouse"],"f8cc","M0 192l168 0 0-192-8 0C71.6 0 0 71.6 0 160l0 32zm0 48L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-112-384 0zm384-48l0-32C384 71.6 312.4 0 224 0l-8 0 0 192 168 0z"],faucet:[512,512,[],"e005","M192 64c0-17.7 14.3-32 32-32s32 14.3 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 64 18.7 0c8.5 0 16.6 3.4 22.6 9.4l22.6 22.6 32 0c88.4 0 160 71.6 160 160 0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-64-96 0c-17.7 0-32-14.3-32-32S78.3 64 96 64l96 0z"],award:[448,512,[],"f559","M245.9-25.9c-13.4-8.2-30.3-8.2-43.7 0-24.4 14.9-39.5 18.9-68.1 18.3-15.7-.4-30.3 8.1-37.9 21.9-13.7 25.1-24.8 36.2-49.9 49.9-13.8 7.5-22.2 22.2-21.9 37.9 .7 28.6-3.4 43.7-18.3 68.1-8.2 13.4-8.2 30.3 0 43.7 14.9 24.4 18.9 39.5 18.3 68.1-.4 15.7 8.1 30.3 21.9 37.9 22.1 12.1 33.3 22.1 45.1 41.5L42.7 458.5c-5.9 11.9-1.1 26.3 10.7 32.2l86 43c11.5 5.7 25.5 1.4 31.7-9.8l52.8-95.1 52.8 95.1c6.2 11.2 20.2 15.6 31.7 9.8l86-43c11.9-5.9 16.7-20.3 10.7-32.2l-48.6-97.2c11.7-19.4 23-29.4 45.1-41.5 13.8-7.5 22.2-22.2 21.9-37.9-.7-28.6 3.4-43.7 18.3-68.1 8.2-13.4 8.2-30.3 0-43.7-14.9-24.4-18.9-39.5-18.3-68.1 .4-15.7-8.1-30.3-21.9-37.9-25.1-13.7-36.2-24.8-49.9-49.9-7.5-13.8-22.2-22.2-37.9-21.9-28.6 .7-43.7-3.4-68.1-18.3zM224 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"],"person-drowning":[640,512,[],"e545","M264 88a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM133.9 65.6c16.8-5.6 34.9 3.5 40.5 20.2l10.9 32.8c9.4 28.3 33.2 49.5 62.5 55.6 5.6 1.2 11.3 1.8 17.1 1.8l88 0c17.2 0 34.3-2.8 50.6-8.2l114.4-38.1c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L423.7 228.5c-8.4 2.8-17 5.1-25.7 6.9l-26.5 88.3c-6.1 3.4-12.1 7.3-17.9 11.7-22.1 16.6-29.1 16.6-51.2 0-26.2-19.7-56.9-30.2-87.8-31.3l20.2-67.2c-51.5-10.7-93.5-48.1-110.2-98l-10.9-32.8c-5.6-16.8 3.5-34.9 20.2-40.5zM403.4 412.1C379.1 430.3 351.1 448 320 448s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z"],"camera-rotate":[512,512,[],"e0d8","M138.7 96l10.4-31.2C155.6 45.2 173.9 32 194.6 32l122.8 0c20.7 0 39 13.2 45.5 32.8L373.3 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l74.7 0zM96 305.9c0 3.9 1.4 7.7 4 10.6l48 54c6.4 7.2 17.6 7.2 23.9 0l48-54c2.6-2.9 4-6.7 4-10.6l0-1.9c0-8.8-7.2-16-16-16l-24 0c0-39.8 32.2-72 72-72 4.4 0 8.7 .4 12.9 1.2l34.9-39.3c-14.6-6.4-30.8-9.9-47.8-9.9-66.3 0-120 53.7-120 120l-24 0c-8.8 0-16 7.2-16 16l0 1.9zm196-46.5c-2.6 2.9-4 6.7-4 10.6l0 1.9c0 8.8 7.2 16 16 16l24 0c0 39.8-32.2 72-72 72-4.4 0-8.7-.4-12.9-1.2l-34.9 39.3c14.7 6.4 30.8 9.9 47.8 9.9 66.3 0 120-53.7 120-120l24 0c8.8 0 16-7.2 16-16l0-1.9c0-3.9-1.4-7.7-4-10.6l-48-54c-6.4-7.2-17.6-7.2-23.9 0l-48 54z"],"face-grin-hearts":[512,512,[128525,"grin-hearts"],"f584","M256 512c141.4 0 256-114.6 256-256 0-23.3-3.1-45.9-8.9-67.3 5.5-13.5 8.9-28.4 8.9-44.7 0-53-43-96-96-96l-2.9 0c-2.5 0-5 .1-7.4 .3-42.1-30.4-93.8-48.3-149.7-48.3S148.4 17.9 106.3 48.3c-2.5-.2-4.9-.3-7.4-.3L96 48c-53 0-96 43-96 96 0 16.3 3.5 31.2 8.9 44.7-5.8 21.4-8.9 44-8.9 67.3 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM322.9 96c13.5 0 26.5 5.4 36 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0zm-188 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0c13.5 0 26.5 5.4 36 14.9z"],"file-fragment":[384,512,[],"e697","M64 0C28.7 0 0 28.7 0 64l0 240 128 0c44.2 0 80 35.8 80 80l0 128 112 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM32 352c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0z"],"person-military-rifle":[448,512,[],"e54b","M128 39c0-13 10-23.8 22.9-24.9L302.7 1.4C312 .7 320 8 320 17.4L320 48c0 8.8-7.2 16-16 16L153 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L320 369.7 320 480c0 1.3-.1 2.5-.2 3.8L145.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L389.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l27.7 16c7.7 4.4 10.3 14.2 5.9 21.9l-55.5 96.1 1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L360.7 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM288 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1S-5.7 438.7 5.6 419.7L81.7 290.8c9.4-15.8 21.7-29.3 36-40L299.1 510c-3.5 1.3-7.2 2-11.1 2zM264 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"],"toggle-on":[576,512,[],"f205","M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192S490 64 384 64L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"],"lungs-virus":[576,512,[],"e067","M288 0c-17.7 0-32 14.3-32 32l0 151.3c9.6-4.8 20.5-7.5 32-7.5s22.4 2.7 32 7.5L320 32c0-17.7-14.3-32-32-32zM450.1 451c8 18.3 8.1 39.2 .2 57.5 10.2 2.3 20.6 3.5 31.2 3.5 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 139.9c1.2 2.2 2.2 4.6 3.1 6.9 26.4-11.6 58.3-6.6 79.9 15s26.6 53.6 15 79.9C477 327.2 496 353.3 496 383.8s-19 56.7-45.9 67.1zM220.9 221.8c.9-2.4 2-4.7 3.1-6.9l0-138.5c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 10.5 0 21-1.2 31.2-3.5-7.9-18.3-7.8-39.3 .2-57.5-26.9-10.4-45.9-36.6-45.9-67.1s19-56.7 45.9-67.1c-11.6-26.4-6.6-58.3 15-79.9s53.6-26.6 79.9-15zM152 408c28.8 0 43.2 34.8 22.9 55.2-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-20.4-20.4-5.9-55.2 22.9-55.2 13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-20.4 20.4-55.2 5.9-55.2-22.9 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-80a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"],"table-tennis-paddle-ball":[512,512,[127955,"ping-pong-paddle-ball","table-tennis"],"f45d","M97 127l67.4-67.4c38.2-38.2 90-59.6 144-59.6 112.5 0 203.7 91.2 203.7 203.6 0 46.4-15.8 91.1-44.5 127-23.6-16.8-52.4-26.7-83.5-26.7-31.1 0-59.9 9.9-83.4 26.6L97 127zM240 448c0 9.7 1 19.1 2.8 28.2-19.8-5.2-38-15.5-52.7-30.2-12.2-12.2-31.9-12.2-44.1 0L96.6 495.4c-10.6 10.6-25 16.6-40 16.6-31.2 0-56.6-25.3-56.6-56.6 0-15 6-29.4 16.6-40l49.4-49.4c12.2-12.2 12.2-31.9 0-44.1-21.7-21.7-33.9-51.2-33.9-81.9 0-29.4 11.1-57.6 31.1-79L266.6 364.6C249.9 388.1 240 416.9 240 448zm144-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"],"boxes-packing":[576,512,[],"e4c7","M208 0l80 0 0 56c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-56 80 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-108.8 0c8.2-14.1 12.8-30.5 12.8-48l0-160c10-13.4 16-30 16-48l0-32c0-44.2-35.8-80-80-80l-176 0 0-96c0-26.5 21.5-48 48-48zM32 336l320 0 0 128c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-128zM48 192l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z"],"person-chalkboard":[640,512,[],"e53d","M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM176 512l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-48 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 64-122.7 0c-45.6 0-88.5 21.6-115.6 58.2L14.3 260.9c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32z"],"dice-two":[448,512,[9857],"f528","M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"arrow-right-arrow-left":[512,512,[8644,"exchange"],"f0ec","M502.6 150.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L402.7 160 32 160c-17.7 0-32-14.3-32-32S14.3 96 32 96l370.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 352 480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-370.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z"],football:[512,512,[127944,"football-ball"],"f44e","M261.1 22.6c-89 18-150.5 63.4-190 123.9-23.3 35.6-38.1 75.3-46.7 115.5L251.9 489.4c89-18 150.5-63.4 190.1-123.9 23.3-35.6 38.1-75.3 46.7-115.5L261.1 22.6zm236 168.1c3.2-42.3 .7-83.3-4.8-118.7-4.4-27.8-26.8-48-53.1-51.6-43-5.9-82.2-7.5-117.8-5.4L497.1 190.6zM191.7 497.1L15.9 321.4c-3.2 42.3-.7 83.3 4.8 118.7 4.4 27.8 26.8 48 53.1 51.6 43 5.9 82.2 7.5 117.8 5.4zM271.5 143c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9z"],"truck-monster":[576,512,[],"f63b","M336 96l48 64-128 0 0-64 80 0zm128 64L387.2 57.6C375.1 41.5 356.1 32 336 32L224 32c-17.7 0-32 14.3-32 32l0 96-144 0c-26.5 0-48 21.5-48 48l0 64c0 18.1 10.1 33.9 24.9 42.1-.5 5.7 1.1 11.6 4.7 16.4-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.3 31.3l11.3 11.3c8.6 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.7-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.3-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 2.4-3.2 3.9-6.8 4.5-10.5l114.2 0c.6 3.7 2.1 7.3 4.5 10.5-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.2 31.3l11.3 11.3c8.5 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.8-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.2-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 3.6-4.8 5.2-10.7 4.7-16.4 14.8-8.2 24.9-23.9 24.9-42.1l0-64c0-26.5-21.5-48-48-48l-64 0zM128 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"],asterisk:[448,512,[10033,61545],"2a","M224 0c17.7 0 32 14.3 32 32l0 168.6 144-83.1c15.3-8.8 34.9-3.6 43.7 11.7s3.6 34.9-11.7 43.7L288 256 432 339.1c15.3 8.8 20.6 28.4 11.7 43.7s-28.4 20.6-43.7 11.7L256 311.4 256 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-168.6-144 83.1c-15.3 8.8-34.9 3.6-43.7-11.7S.7 348 16 339.1L160 256 16 172.9C.7 164-4.5 144.5 4.3 129.1S32.7 108.6 48 117.4L192 200.6 192 32c0-17.7 14.3-32 32-32z"],"battery-full":[640,512,[128267,"battery","battery-5"],"f240","M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l304 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-304 0z"],"child-dress":[320,512,[],"e59c","M224 64A64 64 0 1 0 96 64 64 64 0 1 0 224 64zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.7 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2L86.2 285.5 55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z"],"face-kiss-beam":[512,512,[128537,"kiss-beam"],"f597","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z"],"trash-can-arrow-up":[448,512,["trash-restore-alt"],"f82a","M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z"],font:[512,512,[],"f031","M285.1 50.7C279.9 39.3 268.5 32 256 32s-23.9 7.3-29.1 18.7L59.5 416 48 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-6.1 0 22-48 208.3 0 22 48-6.1 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0-167.4-365.3zM330.8 304L181.2 304 256 140.8 330.8 304z"],"bore-hole":[512,512,[],"e4c3","M256 0c-17.7 0-32 14.3-32 32l0 232.6c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM0 384l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-272c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48l0 144c0 61.9-50.1 112-112 112S144 381.9 144 320l0-144c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48L0 384z"],"virus-covid":[512,512,[],"e4a8","M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-11.3-11.3-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3l23.8 23.8 11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l11.3-11.3-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1l-23.8 23.8 11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l11.3 11.3 23.8-23.8C97.9 338.8 85.8 310.7 81.6 280l-33.6 0 0 16c0 13.3-10.7 24-24 24S0 309.3 0 296l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92 149.7 115.7c23.5-17.9 51.7-29.9 82.3-34.1l0-33.6-16 0c-13.3 0-24-10.7-24-24zm32 200a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"file-pdf":[576,512,[],"f1c1","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM240 380c-11 0-20 9-20 20l0 128c0 11 9 20 20 20s20-9 20-20l0-28 12 0c33.1 0 60-26.9 60-60s-26.9-60-60-60l-32 0zm32 80l-12 0 0-40 12 0c11 0 20 9 20 20s-9 20-20 20zm96-80c-11 0-20 9-20 20l0 128c0 11 9 20 20 20l32 0c28.7 0 52-23.3 52-52l0-64c0-28.7-23.3-52-52-52l-32 0zm20 128l0-88 12 0c6.6 0 12 5.4 12 12l0 64c0 6.6-5.4 12-12 12l-12 0zm88-108l0 128c0 11 9 20 20 20s20-9 20-20l0-44 28 0c11 0 20-9 20-20s-9-20-20-20l-28 0 0-24 28 0c11 0 20-9 20-20s-9-20-20-20l-48 0c-11 0-20 9-20 20z"],language:[576,512,[],"f1ab","M160 0c17.7 0 32 14.3 32 32l0 32 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-9.6 0-8.4 23.1c-16.4 45.2-41.1 86.5-72.2 122 14.2 8.8 29 16.6 44.4 23.5l50.4 22.4 62.2-140c5.1-11.6 16.6-19 29.2-19s24.1 7.4 29.2 19l128 288c7.2 16.2-.1 35.1-16.2 42.2s-35.1-.1-42.2-16.2l-20-45-157.5 0-20 45c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l39.8-89.5-50.4-22.4c-23-10.2-45-22.4-65.8-36.4-21.3 17.2-44.6 32.2-69.5 44.7L78.3 380.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l34.5-17.3c16.3-8.2 31.8-17.7 46.4-28.3-13.8-12.7-26.8-26.4-38.9-40.9L81.6 224.7c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l10.2 12.2c11.5 13.9 24.1 26.8 37.4 38.7 27.5-30.4 49.2-66.1 63.5-105.4l.5-1.2-210.3 0C14.3 128 0 113.7 0 96S14.3 64 32 64l96 0 0-32c0-17.7 14.3-32 32-32zM416 270.8L365.7 384 466.3 384 416 270.8z"],"shield-halved":[512,512,["shield-alt"],"f3ed","M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0zm0 66.8l0 378.1c138-66.8 175.1-214.8 176-303.4l-176-74.6 0 0z"],"caret-up":[320,512,[],"f0d8","M140.3 135.2c12.6-10.3 31.1-9.5 42.8 2.2l128 128c9.2 9.2 11.9 22.9 6.9 34.9S301.4 320 288.5 320l-256 0c-12.9 0-24.6-7.8-29.6-19.8S.7 274.5 9.9 265.4l128-128 2.4-2.2z"],"file-pen":[640,512,[128221,"file-edit"],"f31c","M128.1 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l146.2 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l132.2-132.2 0-97.5c0-17-6.7-33.3-18.7-45.3L322.8 18.7C310.8 6.7 294.5 0 277.6 0L128.1 0zM389.6 176l-93.5 0c-13.3 0-24-10.7-24-24l0-93.5 117.5 117.5zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z"],"person-biking":[576,512,[128692,"biking"],"f84a","M368 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L256 305.1 256 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L263 232.9 323.3 184.4 364 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM112 512a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm352 0a112 112 0 1 0 0-224 112 112 0 1 0 0 224z"],"book-open-reader":[512,512,["book-reader"],"f5da","M256 152a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm0 298.7l0-149.3c16.3-6.8 32.9-13.7 49.7-20.7 39-16.2 80.8-24.6 123.1-24.6l19.2 0 0 160-19.2 0c-59.1 0-117.7 11.7-172.3 34.5l-.5 .2zM256 232l-25.1-10.5C184.1 202 133.9 192 83.2 192L48 192c-26.5 0-48 21.5-48 48L0 432c0 26.5 21.5 48 48 48l35.2 0c50.7 0 100.9 10 147.7 29.5l12.8 5.3c7.9 3.3 16.7 3.3 24.6 0l12.8-5.3c46.8-19.5 97-29.5 147.7-29.5l35.2 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-35.2 0c-50.7 0-100.9 10-147.7 29.5L256 232z"],"glass-water-droplet":[384,512,[],"e4f5","M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64 317.6 64 301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60s64-26.9 64-60z"],"tower-broadcast":[576,512,["broadcast-tower"],"f519","M87.9 11.5c-11.3-6.9-26.1-3.2-33 8.1-24.8 41-39 89.1-39 140.4s14.2 99.4 39 140.4c6.9 11.3 21.6 15 33 8.1s15-21.6 8.1-33C75.7 241.9 64 202.3 64 160S75.7 78.1 96.1 44.4c6.9-11.3 3.2-26.1-8.1-33zm400.1 0c-11.3 6.9-15 21.6-8.1 33 20.4 33.7 32.1 73.3 32.1 115.6s-11.7 81.9-32.1 115.6c-6.9 11.3-3.2 26.1 8.1 33s26.1 3.2 33-8.1c24.8-41 39-89.1 39-140.4S545.8 60.6 521 19.6c-6.9-11.3-21.6-15-33-8.1zM320 215.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.7 12.9 44.4 32 55.4L256 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-264.6zM180.2 91c7.2-11.2 3.9-26-7.2-33.2s-26-3.9-33.2 7.2c-17.6 27.4-27.8 60-27.8 95s10.2 67.6 27.8 95c7.2 11.2 22 14.4 33.2 7.2s14.4-22 7.2-33.2c-12.8-19.9-20.2-43.6-20.2-69s7.4-49.1 20.2-69zM436.2 65c-7.2-11.2-22-14.4-33.2-7.2s-14.4 22-7.2 33.2c12.8 19.9 20.2 43.6 20.2 69s-7.4 49.1-20.2 69c-7.2 11.2-3.9 26 7.2 33.2s26 3.9 33.2-7.2c17.6-27.4 27.8-60 27.8-95s-10.2-67.6-27.8-95z"],minimize:[512,512,["compress-arrows-alt"],"f78c","M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2S322.1 32.2 329 39l40 40 73.4-73.4C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143 473 183c6.9 6.9 8.9 17.2 5.2 26.2S465.7 224 456 224zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433 329 473c-6.9 6.9-17.2 8.9-26.2 5.2S288 465.7 288 456l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40-73.4 73.4C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2S46.3 288 56 288l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8S32.2 189.9 39 183L79 143 5.7 69.7C2 66 0 61.1 0 56S2 46 5.7 42.3L42.3 5.7C46 2 50.9 0 56 0S66 2 69.7 5.7L143 79 183 39c6.9-6.9 17.2-8.9 26.2-5.2S224 46.3 224 56l0 144c0 13.3-10.7 24-24 24L56 224z"],"arrow-right-to-city":[640,512,[],"e4b3","M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 80 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 336l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM153 167l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z"],"laptop-medical":[640,512,[],"f812","M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z"],"bread-slice":[512,512,[],"f7ec","M64 432l0-176c-35.3 0-64-28.7-64-64 0-216.5 512-216.5 512 0 0 35.3-28.7 64-64 64l0 176c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48z"],globe:[512,512,[127760],"f0ac","M351.9 280l-190.9 0c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zM160.9 232l190.9 0C349 167.5 334.7 108.1 314.4 64.6 303 40.2 290.7 22.8 279.3 12.2 268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4zm-48 0C116.4 146.4 138.5 66.9 170.8 14.7 78.7 47.3 10.9 131.2 1.5 232l111.4 0zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3L1.5 280zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3l-111.4 0zm111.4-48C501.9 131.2 434.1 47.3 342 14.7 374.3 66.9 396.4 146.4 399.9 232l111.4 0z"],"folder-minus":[512,512,[],"f65d","M448 448L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64zM184 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"],"mask-face":[640,512,[],"e1d7","M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1L64 128c-35.3 0-64 28.7-64 64l0 78.7c0 62.6 45.2 116 107 126.3l97.9 16.3c33 22 72.6 34.7 115.1 34.7s82.2-12.8 115.1-34.7L533 396.9c61.7-10.3 107-63.7 107-126.3l0-78.7c0-35.3-28.7-64-64-64l-89.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM135.9 336.9l-18.4-3.1C86.6 328.7 64 302 64 270.7l0-78.7 48 0 0 48c0 35 8.6 67.9 23.9 96.9zm386.6-3.1l-18.4 3.1C519.4 307.9 528 275 528 240l0-48 48 0 0 78.7c0 31.3-22.6 58-53.5 63.1zM192 232c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm56 56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],bong:[512,512,[],"f55c","M448.5 384c0 41.5-13.1 79.9-35.5 111.3-7.9 11.1-21.2 16.7-34.8 16.7l-243.3 0c-13.7 0-26.9-5.6-34.8-16.7-22.4-31.4-35.5-69.8-35.5-111.3 0-71.1 38.6-133.1 96-166.3l0-153.7c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.7c14.2 8.2 27.2 18.2 38.8 29.6l39.3-39.3-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16 16 32 32 48 48 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3c17.3 28.9 27.3 62.6 27.3 98.8zM288.5 64l-64 0 0 190.6-32 18.5c-19.5 11.3-35.7 27.5-46.9 46.9l221.8 0c-11.2-19.4-27.4-35.6-46.9-46.9l-32-18.5 0-190.6z"],"road-bridge":[576,512,[],"e563","M32 32l208 0 0 64-24 0 0 64 24 0 0 129.3c-45.4 7.6-80 47.1-80 94.7l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64S14.3 32 32 32zM88 96l0 64 80 0 0-64-80 0zM336 32l72 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 72 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-72 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-72 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm96 160c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24z"],"arrow-up-9-1":[512,512,["sort-numeric-up-alt"],"f887","M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM365.1 206.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 112a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm42.7 182c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26z"],"mountain-city":[640,512,[],"e52e","M256.3 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-77.8 0c4-15.4 2.4-32.6-6.7-48.2L354.6 256 368.3 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-6.1 0-11.4 3.4-14.1 8.5l-42.6-73c-6-10.2-14.1-18-23.3-23.3l0-56.2zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm160 96l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm-272-64.7l-65.1 111.6 33.1 33.1 48-48 40.4 0-56.4-96.7zm-27.6-47.9c12.3-21.2 42.9-21.2 55.3 0L420.3 463.9c12.4 21.3-2.9 48.1-27.6 48.1L56 512c-24.7 0-40.1-26.8-27.6-48.1L196.7 175.4z"],"arrow-down-9-1":[512,512,["sort-numeric-desc","sort-numeric-down-alt"],"f886","M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm134.5-184l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 112a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-5.3 182c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4z"],"face-grin-wide":[512,512,[128515,"grin-alt"],"f581","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64 14.3-64 32-64 32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z"],poop:[512,512,[],"f619","M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7 46.9 6.3 83.1 46.5 83.1 95.1 0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64 0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72 0 23.2-11 43.8-28 57 34.1 5.7 60 35.3 60 71 0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72 0-35.7 25.9-65.3 60-71-17-13.2-28-33.8-28-57 0-39.8 32.2-72 72-72l13.7 0c-13.3-11.7-21.7-28.9-21.7-48 0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80 0-9.2-1.5-17.9-4.3-26.1-1.8-5.2-.8-11.1 2.8-15.4z"],dharmachakra:[512,512,[9784],"f655","M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10.1 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.6 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.6-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"battery-quarter":[640,512,["battery-2"],"f243","M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-64 0z"],ankh:[320,512,[9765],"f644","M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1-5.9 6.2-11.8 11.8-17.4 16.7-5.6-4.9-11.5-10.5-17.4-16.7-25.9-27.5-46.6-62.6-46.6-104.1zM160 0C89.3 0 32 57.3 32 128 32 180.4 53.5 223.5 78.8 256L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0C266.5 223.5 288 180.4 288 128 288 57.3 230.7 0 160 0z"],diamond:[512,512,[9830],"f219","M17 215L215 17C225.9 6.1 240.6 0 256 0s30.1 6.1 41 17L495 215c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L297 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17L17 297C6.1 286.1 0 271.4 0 256s6.1-30.1 17-41z"],subscript:[576,512,[],"f12c","M96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64zM544 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9 5.6 11.2 16.9 17.7 28.6 17.7l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z"],"rupee-sign":[448,512,[8360,"rupee"],"f156","M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm285.1-32l34.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1 0 5.7 3.7 10.7 9.1 12.5l49.4 15.9c31.9 10.3 53.5 39.9 53.5 73.4 0 42.6-34.5 77.1-77.1 77.1L320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l50.9 0c7.2 0 13.1-5.9 13.1-13.1 0-5.7-3.7-10.7-9.1-12.5l-49.4-15.9c-31.9-10.3-53.5-39.9-53.5-73.4 0-42.6 34.5-77.1 77.1-77.1z"],"person-rifle":[512,512,[],"e54e","M416 0L384 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7L432 16c0-8.8-7.2-16-16-16zM224 208C118 208 32 294 32 400l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-32.5 12.1-62.1 32-84.7l0 196.7 160 0 0-293.1c-20-7.1-41.6-10.9-64-10.9zM280 88a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z"],d:[384,512,[100],"44","M0 64C0 46.3 14.3 32 32 32l128 0c123.7 0 224 100.3 224 224S283.7 480 160 480L32 480c-17.7 0-32-14.3-32-32L0 64zM64 96l0 320 96 0c88.4 0 160-71.6 160-160S248.4 96 160 96L64 96z"],"square-nfi":[448,512,[],"e576","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM93 172.3l35 63 0-51.4c0-13.3 10.7-24 24-24s24 10.7 24 24l0 144c0 10.9-7.4 20.5-18 23.2s-21.7-2-27-11.6l-35-63 0 51.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-10.9 7.4-20.5 18-23.2s21.7 2 27 11.6zM208 184c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 32 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144zm192 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z"],teeth:[512,512,[],"f62e","M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM144 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm128 0l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM80 176c-17.7 0-32 14.3-32 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32zm320 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32zM48 336c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16zm144 48c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm128 0c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm112-16c17.7 0 32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16c0 17.7 14.3 32 32 32z"],"magnifying-glass-dollar":[512,512,["search-dollar"],"f688","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM212 96c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L168 256c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z"],"dumpster-fire":[640,512,[],"f794","M164.3 64L138.7 192 56 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L58.5 80.4C61.8 70.6 71 64 81.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM344 64l82.7 0 16 80c-14.7 .2-29.3 5.5-40.9 15.9-11.5 10.3-22.5 21-32.8 32.1l-24.9 0 0-128zM96 240l233.2 0c-6.4 8.8-12.3 17.6-17.7 26.3-21.4 34.7-39.5 76.1-39.5 115.8 0 17.1 2.1 33.8 6 49.9l-120.4 0 1.9 10.3c3.2 17.4-8.4 34-25.8 37.2s-34-8.4-37.2-25.8C71 313.3 58 242.1 57.7 240L96 240zm512-72c0 11-7.4 20.3-17.5 23.1-.9-.8-1.7-1.6-2.6-2.4-21.8-20-54.3-21.8-78-5.5-4.2-4.3-8.5-8.5-12.9-12.6l-21.3-106.6 83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1zM505.7 240.3L518 226.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM544 432.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64z"],upload:[448,512,[],"f093","M256 109.3L256 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-210.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 109.3zM224 400c44.2 0 80-35.8 80-80l80 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64l80 0c0 44.2 35.8 80 80 80zm144 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"],"user-slash":[576,512,[62714,"user-alt-slash","user-large-slash"],"f506","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L311.5 245.7c55-10.9 96.5-59.5 96.5-117.7 0-66.3-53.7-120-120-120-58.2 0-106.8 41.5-117.7 96.5L41-24.9zM235.6 305.4C147.9 316.6 80 391.5 80 482.3 80 498.7 93.3 512 109.7 512l332.5 0-206.6-206.6z"],"arrow-left":[512,512,[8592],"f060","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 105.4-105.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z"],"vial-virus":[576,512,[],"e597","M64 32C64 14.3 78.3 0 96 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 151.7c-18.5 0-37 7-51.1 21.1-21.6 21.6-26.6 53.6-15 79.9-26.9 10.4-45.9 36.6-45.9 67.1s19 56.7 45.9 67.1c-7.3 16.5-8 35.2-2.3 52.2-13.4 5.7-28.2 8.8-43.6 8.8-61.9 0-112-50.1-112-112L96 64C78.3 64 64 49.7 64 32zm96 32l0 128 96 0 0-128-96 0zM280 408c-13.3 0-24-10.7-24-24s10.7-24 24-24c28.8 0 43.2-34.8 22.9-55.2-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.4 20.4 55.2 5.9 55.2-22.9 0-13.3 10.7-24 24-24s24 10.7 24 24c0 28.8 34.8 43.2 55.2 22.9 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.4 20.4-5.9 55.2 22.9 55.2 13.3 0 24 10.7 24 24s-10.7 24-24 24c-28.8 0-43.2 34.8-22.9 55.2 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.4-20.4-55.2-5.9-55.2 22.9 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-28.8-34.8-43.2-55.2-22.9-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.4-20.4 5.9-55.2-22.9-55.2zm104-32a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"],"check-double":[384,512,[],"f560","M249.9 66.8c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-106 145.7-37.5-37.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l128-176zm128 136c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-170 233.7-69.5-69.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l192-264z"],paw:[512,512,[],"f1b0","M234.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5 .3-86.2 32.6-96.8 70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3-14.3-70.1 10.2-84.1 59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2-25.8 0-46.7-20.9-46.7-46.7l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3 29.1 51.7 10.2 84.1-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5 46.9 53.9 32.6 96.8-52.1 69.1-84.4 58.5z"],"helmet-safety":[576,512,["hard-hat","hat-hard"],"f807","M352 264l0-200c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 200c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-185.9C90 109.8 32 191.8 32 288l0 64 512 0 0-64c-1-95.2-58.4-177.7-144-209.8L400 264c0 13.3-10.7 24-24 24s-24-10.7-24-24zM40 400c-22.1 0-40 17.9-40 40s17.9 40 40 40l496 0c22.1 0 40-17.9 40-40s-17.9-40-40-40L40 400z"],e:[320,512,[101],"45","M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z"],"face-laugh-squint":[512,512,["laugh-squint"],"f59b","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM107.7 332.1C102 318 113.4 304 128.6 304l254.9 0c15.2 0 26.6 14 20.9 28.1-23.8 58.6-81.2 99.9-148.3 99.9s-124.6-41.3-148.3-99.9zm15-188.8c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z"],"down-left-and-up-right-to-center":[512,512,["compress-alt"],"f422","M439.5 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S450.2 240 440.5 240l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87zM72.5 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S62.8 272 72.5 272z"],gifts:[576,512,[],"f79c","M202-30.6c12.5 4.4 19 18.1 14.6 30.6l-8.2 23.1 25.4-18.5c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5L233.8 64 272 64c26.5 0 48 21.5 48 48l0 2.1c-54.7 10.4-96 58.4-96 116l0 1.9c0 8.9 1 17.5 2.8 25.9-11.9 17.8-18.8 39.1-18.8 62.1l0 128c0 23.8 7.4 45.9 20.1 64L48 512c-26.5 0-48-21.5-48-48L0 112C0 85.5 21.5 64 48 64l38.2 0-28.3-20.6C47.2 35.6 44.8 20.6 52.6 9.9S75.4-3.2 86.1 4.6l27.4 20-8.3-25C101-13 107.8-26.6 120.4-30.8s26.2 2.6 30.4 15.2l9.9 29.8 10.7-30.2c4.4-12.5 18.1-19 30.6-14.6zM489.9 208c-7.5 0-14.5 3.8-18.6 10.1L446.9 256 488 256c13.3 0 24-10.7 24-24l0-1.9c0-12.2-9.9-22.1-22.1-22.1zM385.1 256l-24.4-37.9c-4.1-6.3-11.1-10.1-18.6-10.1-12.2 0-22.1 9.9-22.1 22.1l0 1.9c0 13.3 10.7 24 24 24l41.1 0zM281.9 268.5c-6.3-10.7-9.9-23.2-9.9-36.5l0-1.9c0-38.7 31.4-70.1 70.1-70.1 23.8 0 46 12.1 58.9 32.1l15 23.2 15-23.2c12.9-20 35.1-32.1 58.9-32.1 38.7 0 70.1 31.4 70.1 70.1l0 1.9c0 13.3-3.6 25.8-9.9 36.5 15.7 11.7 25.9 30.4 25.9 51.5l0 128c0 35.3-28.7 64-64 64l-72 0 0-208-48 0 0 208-72 0c-35.3 0-64-28.7-64-64l0-128c0-21.1 10.2-39.8 25.9-51.5z"],bed:[576,512,[128716],"f236","M32 32c17.7 0 32 14.3 32 32l0 224 224 0 0-128c0-17.7 14.3-32 32-32l160 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32zm80 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"],"money-bill-transfer":[640,512,[],"e528","M31 105c-9.4-9.4-9.4-24.6 0-33.9L103-1c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 67.7 0 0 0 338.3 0c35.3 0 64 28.7 64 64l0 178.2-5.1-5.1c-28.1-28.1-73.7-28.1-101.8 0-27.2 27.2-28.1 70.6-2.8 98.9l67.7 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-406.1 0c-35.3 0-64-28.7-64-64l0-178.2 5.1 5.1c28.1 28.1 73.7 28.1 101.8 0 27.2-27.2 28.1-70.6 2.8-98.9l-67.7 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L31 105zM416 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm88-64.5c4.4 .5 8-3.1 8-7.5l0-48c0-4.4-3.6-8-8-8l-48 0c-4.4 0-8.1 3.6-7.5 8 3.6 29 26.6 51.9 55.5 55.5zm-368 129c-4.4-.5-8 3.1-8 7.5l0 48c0 4.4 3.6 8 8 8l48 0c4.4 0 8.1-3.6 7.5-8-3.6-29-26.6-51.9-55.5-55.5z"],"person-running":[448,512,[127939,"running"],"f70c","M256.5-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM123.6 176c-3.3 0-6.2 2-7.4 5L94.2 235.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9C67.7 129.9 94.1 112 123.6 112l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L285.7 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zm-8 181c13.3 14.9 30.7 26.3 51.2 32.4l4.7 1.4-6.9 19.3c-5.8 16.3-16 30.8-29.3 41.8L52.9 519.8c-13.6 11.2-33.8 9.3-45-4.3s-9.3-33.8 4.3-45l82.4-67.9c4.5-3.7 7.8-8.5 9.8-13.9L115.6 357z"],"circle-chevron-down":[512,512,["chevron-circle-down"],"f13a","M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z"],"user-nurse":[448,512,[],"f82f","M96 44.9c0-12.7 7.5-24.2 19.2-29.3l96-42c8.2-3.6 17.5-3.6 25.7 0l96 42C344.5 20.7 352 32.2 352 44.9l0 99.1c0 70.7-57.3 128-128 128S96 214.7 96 144l0-99.1zM304 128l-111.6 0-.4 0-48 0 0 16c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16zM208 16l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8L216 8c-4.4 0-8 3.6-8 8zM142.6 323c-6.5-4.9-15.2-6.2-22.6-2.8-61.4 28.2-104.1 90.2-104.1 162.1 0 16.4 13.3 29.7 29.7 29.7l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-67 50.2c-8.5 6.4-20.3 6.4-28.8 0l-67-50.2z"],"face-kiss-wink-heart":[640,512,[128536,"kiss-wink-heart"],"f598","M543.7 268.3c.2-4.1 .3-8.2 .3-12.3 0-141.4-114.6-256-256-256S32 114.6 32 256 146.6 512 288 512c41.4 0 80.5-9.8 115.1-27.3-7.6-17.1-16.1-38.8-21.8-61.7-7.7-30.5-14.1-76.2 8.2-114.7l2.7-4.6c29.5-51 94.7-68.5 145.7-39 2 1.2 4 2.4 5.9 3.7zM240 304c0-8.8 7.2-16 16-16l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16zM208 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm152 20c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM542.8 350c-2.2-18.3-12.9-34.6-28.9-43.8-28.1-16.2-63.9-6.6-80.1 21.5l-2.7 4.6c-24.5 42.5 7.9 117.9 24.4 150.8 5.1 10.1 15.5 16.1 26.8 15.5 36.7-2.2 118.2-11.7 142.8-54.2l2.7-4.6c16.2-28.1 6.6-63.9-21.5-80.1-16-9.2-35.4-10.4-52.4-3.1l-9.8 4.2-1.3-10.6z"],fill:[512,512,[],"f575","M296 64c6.9 0 13.5 2.7 18.3 7.6L440.4 197.7c4.9 4.9 7.6 11.5 7.6 18.3s-2.7 13.5-7.6 18.3L386.7 288 65.3 288c1.3-3.9 3.4-7.4 6.3-10.3l96.4-96.4 33.4 33.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136 277.7 71.6c4.9-4.9 11.5-7.6 18.3-7.6zM122.7 136L26.3 232.4C9.5 249.3 0 272.1 0 296s9.5 46.7 26.3 63.6L152.4 485.7C169.3 502.5 192.1 512 216 512s46.7-9.5 63.6-26.3L485.7 279.6C502.5 262.7 512 239.9 512 216s-9.5-46.7-26.3-63.6L359.6 26.3C342.7 9.5 319.9 0 296 0s-46.7 9.5-63.6 26.3L168 90.7 118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L122.7 136z"],"money-bill-1-wave":[512,512,["money-bill-wave-alt"],"f53b","M0 109.5L0 419.6c0 19.4 11.8 37.3 30.3 43.3 94 30 158.8 8.4 223.3-13.1 62.4-20.8 124.4-41.5 212.1-15.3 22.2 6.6 46.2-8.8 46.2-32l0-310.1c0-19.4-11.8-37.3-30.3-43.3-94-30-158.8-8.4-223.3 13.1-62.4 20.8-124.4 41.5-212.1 15.3-22.2-6.6-46.3 8.8-46.3 32zM256 368c-53 0-96-50.1-96-112s43-112 96-112 96 50.1 96 112-43 112-96 112zM127.1 405.5c.7 4.4-2.8 8.1-7.2 8.1-15.7 0-32.1-1.8-50-6.1-3.5-.8-6-4-6-7.7L64 360c0-4.4 3.6-8.1 8-7.5 28.1 3.5 50.6 25.2 55.2 53zM448 354.6c0 5-4.6 8.8-9.5 8-15.4-2.5-30.2-3.9-44.4-4.3-4.9-.1-8.7-4.5-7.2-9.2 7.3-23.7 28-41.4 53.2-44.6 4.4-.5 8 3.1 8 7.5l0 42.6zm-8-195.1c-28.1-3.5-50.6-25.2-55.2-53-.7-4.4 2.8-8.1 7.2-8.1 15.7 0 32.1 1.8 50 6.1 3.5 .8 6 4 6 7.7l0 39.9c0 4.4-3.6 8.1-8 7.5zm-322.1-5.8c4.9 .1 8.7 4.5 7.2 9.2-7.3 23.7-28 41.4-53.2 44.6-4.4 .5-8-3.1-8-7.5l0-42.6c0-5 4.6-8.8 9.5-8 15.4 2.5 30.2 3.9 44.4 4.3zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z"],landmark:[512,512,[127963],"f66f","M238.7 5.1c10.5-6.8 24.1-6.8 34.6 0l224 144c11.9 7.7 17.4 22.3 13.4 35.9s-16.5 23-30.7 23l-32 0 0 208 51.2 38.4c8.1 6 12.8 15.5 12.8 25.6 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32 0-10.1 4.7-19.6 12.8-25.6l51.2-38.4 0 0 0-208-32 0c-14.2 0-26.7-9.4-30.7-23s1.5-28.3 13.4-35.9l224-144zM336 208l0 208 64 0 0-208-64 0zM224 416l64 0 0-208-64 0 0 208zM112 208l0 208 64 0 0-208-64 0z"],music:[512,512,[127925],"f001","M468 7c7.6 6.1 12 15.3 12 25l0 304c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6l0-116.7-224 49.8 0 206.3c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6L128 96c0-15 10.4-28 25.1-31.2l288-64c9.5-2.1 19.4 .2 27 6.3z"],"book-medical":[448,512,[],"f7e6","M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM192 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z"],shuffle:[512,512,[128256,"random"],"f074","M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S384 204.9 384 192l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8l-32.4 43.2-40-53.3 21.2-28.3C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM154 296l40 53.3-21.2 28.3C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L154 296zM438.6 470.6c-9.2 9.2-22.9 11.9-34.9 6.9S384 460.9 384 448l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z"],underline:[384,512,[],"f0cd","M0 32C0 14.3 14.3 0 32 0L96 0c17.7 0 32 14.3 32 32S113.7 64 96 64l0 160c0 53 43 96 96 96s96-43 96-96l0-160c-17.7 0-32-14.3-32-32S270.3 0 288 0l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 160c0 88.4-71.6 160-160 160S32 312.4 32 224L32 64C14.3 64 0 49.7 0 32zM0 480c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32z"],"building-user":[640,512,[],"e4da","M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM339 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM176 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm240 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z"],robot:[640,512,[129302],"f544","M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z"],plus:[448,512,[10133,61543,"add"],"2b","M256 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-160z"],copy:[448,512,[],"f0c5","M192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-200.6c0-17.4-7.1-34.1-19.7-46.2L370.6 17.8C358.7 6.4 342.8 0 326.3 0L192 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-64 0 0 16-192 0 0-256 16 0 0-64-16 0z"],"chess-king":[448,512,[9818],"f43f","M224-32c17.7 0 32 14.3 32 32l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64 153.8 0c21.1 0 38.2 17.1 38.2 38.2 0 6.4-1.6 12.7-4.7 18.3L352 384 408.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L67.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L96 384 4.7 216.6C1.6 210.9 0 204.6 0 198.2 0 177.1 17.1 160 38.2 160l153.8 0 0-64-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-32c0-17.7 14.3-32 32-32z"],"house-flood-water":[640,512,[],"e50e","M496 208l4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L348 10.5C340.3 3.7 330.3 0 320 0s-20.3 3.7-28 10.5L121.4 159.8c-6 5.2-9.4 12.8-9.4 20.7 0 15.2 12.3 27.5 27.5 27.5l4.5 0 0 94.4c20.3-9.4 42.1-14.2 64-14.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 16.9-.1 33.8 2.6 50 8l0-88zm-224-8c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM474.6 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 418.3 17.6 426.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 514.3 17.6 522.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z"],"bitcoin-sign":[320,512,[],"e0b4","M64 24C64 10.7 74.7 0 88 0s24 10.7 24 24l0 40 32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 41.1c54.3 7.8 96 54.4 96 110.9 0 24.2-7.7 46.6-20.7 64.9 31.7 19.8 52.7 55 52.7 95.1 0 61.9-50.1 112-112 112l-16 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-32 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-22.3 0C18.7 448 0 429.3 0 406.3L0 101.6C0 80.8 16.8 64 37.6 64L64 64 64 24zm0 200l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-112 0 0 96zm112 64l-112 0 0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z"],box:[448,512,[128230],"f466","M369.4 128l-34.3-48-222.1 0-34.3 48 290.7 0zM0 148.5c0-13.3 4.2-26.3 11.9-37.2L60.9 42.8C72.9 26 92.3 16 112.9 16l222.1 0c20.7 0 40.1 10 52.1 26.8l48.9 68.5c7.8 10.9 11.9 23.9 11.9 37.2L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 148.5z"],"square-plus":[448,512,[61846,"plus-square"],"f0fe","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z"],"arrows-left-right":[576,512,["arrows-h"],"f07e","M470.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l41.4 41.4-357.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-41.4-41.4 357.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"],fan:[512,512,[],"f863","M160 144c0-79.5 64.5-144 144-144 8.8 0 16 7.2 16 16l0 152.2c15-5.3 31.2-8.2 48-8.2 79.5 0 144 64.5 144 144 0 8.8-7.2 16-16 16l-152.2 0c5.3 15 8.2 31.2 8.2 48 0 79.5-64.5 144-144 144-8.8 0-16-7.2-16-16l0-152.2c-15 5.3-31.2 8.2-48 8.2-79.5 0-144-64.5-144-144 0-8.8 7.2-16 16-16l152.2 0c-5.3-15-8.2-31.2-8.2-48zm96 144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],crow:[640,512,[],"f520","M456.5 0c-48.6 0-88 39.4-88 88l0 36-355.2 266.4C-.8 401-3.7 421 6.9 435.2s30.6 17 44.8 6.4l76.8-57.6 131.3 0 46.6 113.1 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-39.1-94.9 40.9 0c1.1 0 2.2 0 3.2 0l46.6 113.2 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-42-102C485.3 354.1 544.5 280 544.5 192l0-72 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4-7.1-28.5-32.7-48.5-62.1-48.5l-50.1 0C508.2 12.5 483.8 0 456.5 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"],"file-circle-check":[576,512,[],"e5a0","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z"],"link-slash":[576,512,["chain-broken","chain-slash","unlink"],"f127","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-122-122c4.2-3.4 8.3-7.1 12.1-10.9l71.1-71.1c29.3-29.3 45.8-69.1 45.8-110.6 0-86.4-70-156.5-156.5-156.5-37.3 0-73.1 13.3-101.3 37.2 20.3 10.1 38.7 23.5 54.5 39.5 14.1-8.3 30.2-12.7 46.8-12.7 51.1 0 92.5 41.4 92.5 92.5 0 24.5-9.7 48-27.1 65.4l-71.1 71.1c-3.9 3.9-8.1 7.4-12.6 10.5l-47.5-47.5c16.5-.9 29.7-14.4 30.2-31.1 0-1.3 0-2.6 0-3.9 0-86.3-69.9-156.9-156.5-156.9-19.2 0-37.9 3.5-55.5 10.2L41-24.9zM225.9 160c.6 0 1.1 0 1.7 0 15.1 0 29.5 3.7 42.1 10.2 1.8 1.2 3.6 2.3 5.5 3.1 26.8 16.3 44.8 45.9 44.8 79.6 0 .4 0 .8 0 1.2L225.9 160zM346.2 416L192 261.8c1.2 84.6 69.6 152.9 154.1 154.1zM139.7 209.5l-45.3-45.3-48.6 48.6c-29.3 29.3-45.8 69.1-45.8 110.6 0 86.4 70 156.5 156.5 156.5 37.2 0 73.1-13.3 101.3-37.2-20.3-10.1-38.8-23.5-54.6-39.5-14 8.2-30.1 12.6-46.7 12.6-51.1 0-92.5-41.4-92.5-92.5 0-24.5 9.7-48 27.1-65.4l48.6-48.6z"],"arrow-rotate-right":[512,512,[8635,"arrow-right-rotate","arrow-rotate-forward","redo"],"f01e","M436.7 74.7L448 85.4 448 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l47.9 0-7.6-7.2c-.2-.2-.4-.4-.6-.6-75-75-196.5-75-271.5 0s-75 196.5 0 271.5 196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c99.9-99.9 261.7-100 361.7-.3z"],"pen-clip":[512,512,["pen-alt"],"f305","M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM274.1 100l0 0 137.9 137.9-215.1 215.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7L240.1 133.9 223 116.9c-9.4-9.4-24.6-9.4-33.9 0L89 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L155.1 82.9c28.1-28.1 73.7-28.1 101.8 0L274.1 100z"],"door-closed":[448,512,[128682],"f52a","M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM320 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"arrow-down-wide-short":[576,512,["sort-amount-asc","sort-amount-down"],"f160","M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z"],"caret-down":[320,512,[],"f0d7","M140.3 376.8c12.6 10.2 31.1 9.5 42.8-2.2l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301.4 192 288.5 192l-256 0c-12.9 0-24.6 7.8-29.6 19.8S.7 237.5 9.9 246.6l128 128 2.4 2.2z"],k:[320,512,[107],"4b","M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7C143.4 167.2 76.4 236.3 64 249L64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z"],"check-to-slot":[576,512,["vote-yea"],"f772","M552 288c13.3 0 24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 312c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24zM416 32c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64L96 96c0-35.3 28.7-64 64-64l256 0zm-37.1 84.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6-9.5 9.2-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L384.2 150.1c7.8-10.7 5.4-25.7-5.3-33.5z"],"fish-fins":[576,512,[],"e4f2","M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9s-12.4 26-5.3 38.6L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3 15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8 39.2-29.4 67.2-64.7 81.6-89.5 5.8-9.9 5.8-22.2 0-32.1-14.4-24.8-42.5-60.1-81.6-89.5-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],compress:[448,512,[],"f066","M160 64c0-17.7-14.3-32-32-32S96 46.3 96 64l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z"],"arrow-up-a-z":[512,512,["sort-alpha-up"],"f15e","M412.6 49.7C407.2 38.8 396.1 32 384 32s-23.2 6.8-28.6 17.7c-50.7 101.3-77.3 154.7-80 160-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9c-2.7-5.3-29.3-58.7-80-160zM384 135.6l20.2 40.4-40.4 0 20.2-40.4zM288 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 480 320 480l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S460.9 288 448 288l-128 0c-17.7 0-32 14.3-32 32zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80z"],"user-graduate":[448,512,[],"f501","M241.3-13c-11.4-2.3-23.1-2.3-34.5 0L19.3 24.5C8.1 26.7 0 36.6 0 48 0 58.3 6.5 67.3 16 70.6L16 144 .3 222.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6l34.9 0c8 0 14.6-6.5 14.6-14.6 0-1-.1-1.9-.3-2.9L48 144 48 77.3 96 86.9 96 144c0 70.7 57.3 128 128 128s128-57.3 128-128l0-57.1 76.7-15.3C439.9 69.3 448 59.4 448 48s-8.1-21.3-19.3-23.5L241.3-13zM224 224c-44.2 0-80-35.8-80-80l160 0c0 44.2-35.8 80-80 80zM120.1 320.1C58.7 348.3 16 410.3 16 482.3 16 498.7 29.3 512 45.7 512l154.3 0 0-146-57.4-43c-6.5-4.9-15.2-6.2-22.6-2.8zM248 512l154.3 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-57.4 43 0 146z"],"file-code":[384,512,[],"f1c9","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM154.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm112-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z"],soap:[512,512,[129532],"e06e","M208-32a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM320 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 160l112 0c0 23.8 7.4 45.9 20.1 64L160 224c-53 0-96 43-96 96s43 96 96 96l192 0c53 0 96-43 96-96 0-35.1-18.9-65.9-47-82.6 19-19.8 30.7-46.6 31-76.1 45.4 7.6 80 47.1 80 94.7l0 128c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 256c0-53 43-96 96-96zm64 112l192 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48s21.5-48 48-48z"],recycle:[512,512,[9842,9850,9851],"f1b8","M152.3 60C198.5-20 314-20 360.2 60l37.3 64.6 27.7-16c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3L436.9 223c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l27.7-16-37.3-64.6c-21.6-37.3-75.4-37.3-97 0l-5.3 9.1c-8.8 15.3-28.4 20.5-43.7 11.7S138.2 84.5 147 69.1l5.3-9.1zM449.7 279.1c15.3-8.8 34.9-3.6 43.7 11.7l5.3 9.1c46.2 80-11.5 180-103.9 180l-74.6 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 74.6 0c43.1 0 70.1-46.7 48.5-84l-5.3-9.1c-8.8-15.3-3.6-34.9 11.7-43.7zM51 235.4l-27.7-16c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20L116.5 152c12.8-3.4 26 4.2 29.4 17l23.4 87.4c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-27.7-16-37.3 64.6c-21.6 37.3 5.4 84 48.5 84l10.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.6 0C25.3 480-32.4 380 13.8 300L51 235.4z"],"face-grin-wink":[512,512,["grin-wink"],"f58c","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM328 196c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"water-ladder":[640,512,["ladder-water","swimming-pool"],"f5c5","M374.5 405.7c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.8 25.7-4.8 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0-24.2 18.3-52.3 35.9-83.4 35.9s-59.1-17.7-83.3-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.6-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3zM511.8 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.8 14.2-31.8 31.8l0 211.8c-23.1-5.1-44.9-4.4-64-.4l0-51.2-192 0 0 48.7c-5.3-.5-10.7-.8-16-.7-16.2 .1-32.4 2.7-48 8l0-216.2c0-52.9 42.9-95.8 95.7-95.8 48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.7 14.2-31.7 31.8l0 96.2 192 0 0-96.2C416 74.9 458.9 32 511.8 32z"],"tower-cell":[576,512,[],"e585","M59.6 9.8C47.3 4.8 33.3 10.7 28.4 23 15.2 55.5 8 90.9 8 128s7.2 72.5 20.4 105c5 12.3 19 18.2 31.3 13.2s18.2-19 13.2-31.3C62 188.2 56 158.8 56 128s6-60.2 16.9-87c5-12.3-1-26.3-13.2-31.3zm456.8 0c-12.3 5-18.2 19-13.2 31.3 10.9 26.8 16.9 56.2 16.9 87s-6 60.2-16.9 87c-5 12.3 1 26.3 13.2 31.3s26.3-1 31.3-13.2c13.1-32.5 20.4-67.9 20.4-105s-7.2-72.5-20.4-105c-5-12.3-19-18.2-31.3-13.2zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9l20.6-45.2 220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM376.5 400l-177 0 21.8-48 133.3 0 21.8 48zM288 205.3l44.8 98.7-89.7 0 44.8-98.7zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z"],"colon-sign":[384,512,[],"e140","M213.8 8.7c12.9 3.2 20.7 16.2 17.5 29.1l-4.6 18.5c15.4 .8 30.4 3.4 44.7 7.5l9.4-37.6C283.9 13.3 297 5.5 309.8 8.7S330.5 25 327.3 37.8L316 82.8c13.5 7.8 26 17.1 37.2 27.8 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-3.1-2.9-6.4-5.8-9.8-8.4L239.2 390c26.9-4.6 51.1-17.1 70.1-35.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2c-34.3 32.3-80 52.8-130.5 54.4l-7.5 29.9c-3.2 12.9-16.2 20.7-29.1 17.5s-20.7-16.2-17.5-29.1l5.6-22.5c-15-3.2-29.4-8-42.9-14.4l-12.1 48.5c-3.2 12.9-16.2 20.7-29.1 17.5S69.5 487 72.7 474.2l16-63.9C44.3 373.6 16 318.1 16 256 16 159.2 84.8 78.4 176.3 60l8.4-33.8C187.9 13.3 201 5.5 213.8 8.7zM158 132.9c-46.1 21.8-78 68.7-78 123.1 0 30.5 10 58.6 26.9 81.3L158 132.9zM147.4 373.4c13 7.6 27.3 13.1 42.5 16.1l65.9-263.6c-12.6-3.8-25.9-5.9-39.8-5.9-1.8 0-3.5 0-5.3 .1L147.4 373.4z"],"laptop-file":[576,512,[],"e51d","M64 64C64 28.7 92.7 0 128 0L416 0c35.3 0 64 28.7 64 64l0 48-64 0 0-48-288 0 0 192 112 0 0 96-163.2 0C34.4 352 0 317.6 0 275.2 0 264.6 8.6 256 19.2 256L64 256 64 64zM529.9 257.9c9 9 14.1 21.2 14.1 33.9L544 464c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-256c0-26.5 21.5-48 48-48l76.1 0c12.7 0 24.9 5.1 33.9 14.1 20 20 47.9 47.9 83.9 83.9zM416 272c0 8.8 7.2 16 16 16l60.1 0-76.1-76.1 0 60.1z"],bahai:[576,512,["haykal"],"f666","M288.4-8c13.2 0 25 8.1 29.8 20.4l31.9 82 77.2-42.3c11.6-6.3 25.8-4.9 35.9 3.5s14 22.3 9.7 34.8l-28.2 83.3 86.3 17.2c12.9 2.6 23 12.8 25.3 25.8s-3.6 26.1-14.9 32.9l-75.2 45.7 55 68.6c8.3 10.3 9.3 24.6 2.7 36s-19.5 17.6-32.6 15.6l-87-13.3-2 88c-.3 13.2-8.6 24.8-21 29.4s-26.3 1-35-9l-58-66.1-58 66.1c-8.7 9.9-22.6 13.5-35 9s-20.8-16.2-21-29.4l-2-88-87 13.3c-13 2-26-4.2-32.6-15.6s-5.5-25.7 2.7-36l55-68.6-75.2-45.7c-11.3-6.8-17.2-19.9-14.9-32.9s12.3-23.2 25.3-25.8l86.3-17.2-28.2-83.3c-4.2-12.5-.4-26.3 9.7-34.8s24.4-9.9 35.9-3.5l77.1 42.3 31.9-82C263.3 .1 275.2-8 288.4-8zm0 120.2L273 151.6c-3.3 8.6-10.2 15.3-18.9 18.5s-18.2 2.4-26.3-2l-37-20.3 13.6 40c3 8.7 2 18.3-2.6 26.3s-12.4 13.6-21.5 15.4l-41.4 8.3 36.1 21.9c7.9 4.8 13.3 12.7 14.9 21.8s-.8 18.4-6.5 25.6l-26.4 33 41.8-6.4c9.1-1.4 18.4 1.2 25.4 7.1s11.2 14.6 11.4 23.8l.9 42.2 27.9-31.8c6.1-6.9 14.8-10.9 24.1-10.9s18 4 24.1 10.9l27.9 31.8 .9-42.2c.2-9.2 4.4-17.9 11.4-23.8s16.3-8.5 25.4-7.1l41.8 6.4-26.4-33c-5.8-7.2-8.2-16.5-6.6-25.6s7-17 14.9-21.8l36.1-21.9-41.4-8.3c-9-1.8-16.9-7.4-21.5-15.4s-5.5-17.6-2.6-26.3l13.6-40-37 20.3c-8.1 4.4-17.7 5.2-26.3 2s-15.5-9.9-18.9-18.5l-15.3-39.4z"],"money-bill-1":[512,512,["money-bill-alt"],"f3d1","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 80a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM64 184l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 144c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM440 191.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM448 328l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z"],"cloud-bolt":[512,512,[127785,"thunderstorm"],"f76c","M0 224c0 53 43 96 96 96l38.6 0 124.1-111c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7L354.1 320 416 320c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM160.6 400l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L362.5 396.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L149.5 371.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z"],ethernet:[512,512,[],"f796","M0 224L0 416c0 17.7 14.3 32 32 32l32 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 32 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z"],"hryvnia-sign":[384,512,[8372,"hryvnia"],"f6f2","M336 149.4C336 77 268.5 23.5 198 40.1L93.2 64.9C76 68.9 65.4 86.2 69.4 103.4s21.3 27.9 38.5 23.8l104.8-24.7c30.3-7.1 59.3 15.8 59.3 46.9 0 17.6-9.6 33.8-25 42.3l-.7 .4-222.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32.4 0c5.5-13.3 8.4-27.8 8.4-42.6zM360 272L24 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.3 0c-6.1 13.4-9.3 28.1-9.3 43.3 0 64.1 56.9 113.4 120.4 104.2l137.9-19.9c17.5-2.5 29.6-18.7 27.1-36.2s-18.8-29.6-36.2-27.1L159.2 404.2c-24.9 3.6-47.2-15.7-47.2-40.9 0-15.1 8.2-28.9 21.4-36.2l13-7.1 213.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24z"],"eye-slash":[576,512,[],"f070","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM325.3 395.1c-11.9 3.2-24.4 4.9-37.3 4.9-79.5 0-144-64.5-144-144 0-12.9 1.7-25.4 4.9-37.3L69.4 139.2c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6l-64.2-64.2z"],"cart-flatbed-suitcase":[576,512,["luggage-cart"],"f59d","M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-6 1.1-11.7 3.1-17-38.1-6.2-67.1-39.2-67.1-79L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM176 144c0-26.5 21.5-48 48-48l32 0 0-24c0-30.9 25.1-56 56-56l64 0c30.9 0 56 25.1 56 56l0 24 32 0c26.5 0 48 21.5 48 48l0 144c0 26.5-21.5 48-48 48l-240 0c-26.5 0-48-21.5-48-48l0-144zM384 96l0-24c0-4.4-3.6-8-8-8l-64 0c-4.4 0-8 3.6-8 8l0 24 80 0z"],radiation:[576,512,[],"f7b9","M446.2 34.5c-14.2-10.1-33.5-4.6-42.2 10.5L331.6 170.3c31.3 15.8 52.8 48.3 52.8 85.7l144 0c17.7 0 32.2-14.4 30.1-31.9-9.1-78.1-51.4-146.1-112.3-189.6zM172.7 44.9C164 29.8 144.7 24.3 130.5 34.5 69.6 77.9 27.3 145.9 18.2 224.1 16.1 241.6 30.7 256 48.3 256l144 0c0-37.5 21.5-69.9 52.8-85.7L172.7 44.9zm-9.4 416.8c-8.7 15.1-3.8 34.5 12 41.8 34.4 15.7 72.7 24.5 113 24.5s78.6-8.8 113-24.5c15.8-7.2 20.7-26.7 12-41.8L341 336.3c-15.1 9.9-33.2 15.7-52.6 15.7s-37.5-5.8-52.6-15.7L163.3 461.7zM288.3 304a48 48 0 1 0 -.7-96 48 48 0 1 0 .7 96z"],"file-word":[384,512,[],"f1c2","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM135.4 274.8c-2.9-12.9-15.7-21.1-28.6-18.2s-21.1 15.7-18.2 28.6l32 144c2.3 10.5 11.4 18.2 22.2 18.8s20.6-6.1 24-16.4l25.2-75.7 25.2 75.7c3.4 10.2 13.2 16.9 24 16.4s19.9-8.2 22.2-18.8l32-144c2.9-12.9-5.3-25.8-18.2-28.6s-25.8 5.3-28.6 18.2l-13.2 59.4-20.6-61.8c-3.3-9.8-12.4-16.4-22.8-16.4s-19.5 6.6-22.8 16.4l-20.6 61.8-13.2-59.4z"],"bed-pulse":[640,512,["procedures"],"f487","M531.2-22.4L572 32 616 32c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0c-7.6 0-14.7-3.6-19.2-9.6l-24.1-32.1-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L387.2 80 344 80c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5c3.6-7.6 10.9-12.8 19.3-13.7s16.6 2.7 21.6 9.5zM320 160c0-17.7 14.3-32 32-32l9.5 0 26.6 39.9c14.4 21.6 39.3 33.8 65.2 31.9s48.8-17.6 59.8-41.1L527 129.2c45.9 7.2 81 46.9 81 94.8l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 224 224 0 0-128zM144 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z"],tents:[576,512,[],"e582","M539.9 352l-95.6 0-8.4-66.1c-2.9-23.2-15.9-43.9-35.4-56.8L252.2 131.5c-18-11.9-39.7-15.7-60.1-11.5 2.5-4.3 5.9-7.9 10.1-10.7L350.6 11.6c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36zM4.8 476l23.3-184c1.2-9.3 6.3-17.6 14.2-22.7l148.4-97.7c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36l-49.7 0c-11.2 0-21.5-5.8-27.3-15.4l-77-126.7c-1.7-2.8-4.8-4.6-8.1-4.6-5.3 0-9.5 4.3-9.5 9.5l0 105.2c0 17.7-14.3 32-32 32L36.5 512c-19.3 0-34.2-16.9-31.7-36z"],"mug-hot":[576,512,[9749],"f7b6","M152-16c-13.3 0-24 10.7-24 24 0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C183.5 31.7 176 24.1 176 8 176-5.3 165.3-16 152-16zM96 192c-17.7 0-32 14.3-32 32l0 192c0 53 43 96 96 96l192 0c41.8 0 77.4-26.7 90.5-64l5.5 0c70.7 0 128-57.3 128-128S518.7 192 448 192L96 192zM448 384l0-128c35.3 0 64 28.7 64 64s-28.7 64-64 64zM288 8c0-13.3-10.7-24-24-24S240-5.3 240 8c0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C295.5 31.7 288 24.1 288 8z"],bolt:[448,512,[9889,"zap"],"f0e7","M338.8-9.9c11.9 8.6 16.3 24.2 10.9 37.8L271.3 224 416 224c13.5 0 25.5 8.4 30.1 21.1s.7 26.9-9.6 35.5l-288 240c-11.3 9.4-27.4 9.9-39.3 1.3s-16.3-24.2-10.9-37.8L176.7 288 32 288c-13.5 0-25.5-8.4-30.1-21.1s-.7-26.9 9.6-35.5l288-240c11.3-9.4 27.4-9.9 39.3-1.3z"],jar:[320,512,[],"e516","M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm96 64c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 192z"],"truck-plane":[640,512,[],"e58f","M144 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 320c0 32.5 12.1 62.1 32 84.7l0 27.3c0 7.1 .9 14.1 2.7 20.7L192 480 83.9 507C73.8 509.6 64 501.9 64 491.5l0-19.8c0-4.9 2.2-9.5 6-12.5l74-59.2 0-57.6-122.1 48.8C11.4 395.4 0 387.7 0 376.4l0-44c0-8 3-15.6 8.3-21.5L144 161.6 144 48zm224 80l192 0c44.2 0 80 35.8 80 80l0 160c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c-19.4-14.6-32-37.8-32-64l0-160c0-44.2 35.8-80 80-80zm0 176l192 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32l0 32zm0 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"],"hand-holding-heart":[576,512,[],"f4be","M279.6 31C265.5 11.5 242.9 0 218.9 0 177.5 0 144 33.5 144 74.9l0 2.4c0 64.4 82 133.4 122.2 163.3 13 9.7 30.5 9.7 43.5 0 40.2-30 122.2-98.9 122.2-163.3l0-2.4c0-41.4-33.5-74.9-74.9-74.9-24 0-46.6 11.5-60.7 31L288 42.7 279.6 31zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z"],"arrow-rotate-left":[512,512,[8634,"arrow-left-rotate","arrow-rotate-back","arrow-rotate-backward","undo"],"f0e2","M256 64c-56.8 0-107.9 24.7-143.1 64l47.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 192c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l0 54.7C110.9 33.6 179.5 0 256 0 397.4 0 512 114.6 512 256S397.4 512 256 512c-87 0-163.9-43.4-210.1-109.7-10.1-14.5-6.6-34.4 7.9-44.6s34.4-6.6 44.6 7.9c34.8 49.8 92.4 82.3 157.6 82.3 106 0 192-86 192-192S362 64 256 64z"],"face-angry":[512,512,[128544,"angry"],"f556","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM256 368c24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50s-75.7 19.8-97.5 50c-7.7 10.8-5.3 25.8 5.5 33.5s25.8 5.3 33.5-5.5c13.1-18.2 34.4-30 58.5-30zm-80-96c17.7 0 32-14.3 32-32l0-.3 9.7 3.2c10.5 3.5 21.8-2.2 25.3-12.6s-2.2-21.8-12.6-25.3l-96-32c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3l28.9 9.6c-4.1 5.4-6.6 12.1-6.6 19.4 0 17.7 14.3 32 32 32zm192-32c0-7.3-2.4-14-6.6-19.4l28.9-9.6c10.5-3.5 16.1-14.8 12.6-25.3s-14.8-16.1-25.3-12.6l-96 32c-10.5 3.5-16.1 14.8-12.6 25.3s14.8 16.1 25.3 12.6l9.7-3.2 0 .3c0 17.7 14.3 32 32 32s32-14.3 32-32z"],burst:[512,512,[],"e4dc","M37.6 4.2C28-2.3 15.2-1.1 7 7S-2.3 28 4.2 37.6l112 163.3-99.6 32.3C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4-52.9 100.6c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1l-52.9-100.6 103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8l-106.5-34.5 25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7-34.5-106.5C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6L200.9 116.2 37.6 4.2z"],z:[384,512,[122],"5a","M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z"],bandage:[576,512,[129657,"band-aid"],"f462","M464 416l48 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-48 0 0 320zM416 96l-256 0 0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l48 0 0-320-48 0zM216 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM216 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"],"plane-circle-exclamation":[640,512,[],"e556","M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"],"bus-side":[640,512,[],"e81d","M480 0c88.4 0 160 71.6 160 160l0 224c0 35.3-28.7 64-64 64l-5.6 0c-13.2 37.3-48.6 64-90.4 64s-77.3-26.7-90.4-64l-139.1 0c-13.2 37.3-48.7 64-90.4 64s-77.2-26.7-90.4-64L64 448c-35.3 0-64-28.7-64-64L0 96C0 43 43 0 96 0L480 0zM160 368a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm320 0a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm0-304c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128c0-53-43-96-96-96zM248 224l104 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-104 0 0 160zM96 64C78.3 64 64 78.3 64 96l0 96c0 17.7 14.3 32 32 32l104 0 0-160-104 0z"],bugs:[576,512,[],"e4d0","M447.5 174.6c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7c26.7 13.5 46.3 39.1 51.4 69.6l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L296 432c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0c5.1-30.5 24.7-56.1 51.4-69.6l-22.9-26.7c-8.6-10.1-7.5-25.2 2.6-33.8s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8zm-256-192c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7C230 55.9 249.5 81.5 254.7 112l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0C70.5 81.5 90 55.9 116.7 42.4L93.8 15.6C85.2 5.6 86.3-9.6 96.4-18.2s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8z"],"beer-mug-empty":[576,512,["beer"],"f0fc","M64 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 16 64 0c35.3 0 64 28.7 64 64l0 108.2c0 24.2-13.7 46.4-35.4 57.2L448 371.8 448 384c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 80zM448 300.2l64-32 0-108.2-64 0 0 140.2zM192 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208z"],"person-circle-check":[640,512,[],"e53e","M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z"],stapler:[640,512,[],"e5af","M640 299.3L640 432c0 26.5-21.5 48-48 48L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48-352 0c-17.7 0-32-14.3-32-32l0-116.6-30.2-5.4c-19.6-3.5-33.8-20.5-33.8-40.4 0-8.9 2.9-17.5 8.2-24.6l35.6-47.5c32.8-43.8 84.4-69.6 139.1-69.6 27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16-320-57.1 0 73.1 320 0z"],"house-medical-circle-check":[640,512,[],"e511","M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z"],"naira-sign":[448,512,[],"e1f6","M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 89.5 0 107.8 161.8c7.8 11.7 22.4 17 35.9 12.9S384 462.1 384 448l0-144 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0-139.8-209.7zM294.5 304l25.5 0 0 38.3-25.5-38.3zM185.5 256l-57.5 0 0-86.3 57.5 86.3z"],wifi:[576,512,["wifi-3","wifi-strong"],"f1eb","M288 96c-90.9 0-173.2 36-233.7 94.6-12.7 12.3-33 12-45.2-.7s-12-33 .7-45.2C81.7 74.9 179.9 32 288 32S494.3 74.9 566.3 144.7c12.7 12.3 13 32.6 .7 45.2s-32.6 13-45.2 .7C461.2 132 378.9 96 288 96zM240 432a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 326.2c-11.7 13.3-31.9 14.5-45.2 2.8s-14.5-31.9-2.8-45.2C161 237.4 221.1 208 288 208s127 29.4 168 75.8c11.7 13.3 10.4 33.5-2.8 45.2s-33.5 10.4-45.2-2.8C378.6 292.9 335.8 272 288 272s-90.6 20.9-120 54.2z"],"money-check-dollar":[512,512,["money-check-alt"],"f53d","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM296 288l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm-24-88c0-13.3 10.7-24 24-24l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24zM148 144c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7C94.5 268 76 246.1 76 220.5 76 191.7 99.2 168.3 128 168l0-4c0-11 9-20 20-20z"],"eye-low-vision":[576,512,["low-vision"],"f2a8","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM88 157.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L328.2 466c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L88 157.9zM45.7 251.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L181.9 455.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L45.7 251.3z"],"circle-arrow-up":[512,512,["arrow-circle-up"],"f0aa","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm17-377l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-39-39 0 150.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-150.1-39 39c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0z"],"camera-retro":[512,512,[128247],"f083","M0 416l0-208 136.2 0c13.5-20.2 32-36.8 53.7-48L0 160 0 125.7c0-35.3 28.7-64 64-64l.1 0C65.3 45.1 79.1 32 96 32l32 0c16.9 0 30.7 13.1 31.9 29.7l32.1 0 51.2-23.8c8.4-3.9 17.6-6 26.9-6L448 32c35.3 0 64 28.7 64 64l0 64-190 0c21.7 11.2 40.2 27.8 53.7 48l136.2 0 0 208c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM256 192a96.1 96.1 0 1 0 0 192.1 96.1 96.1 0 1 0 0-192.1z"],capsules:[576,512,[],"f46b","M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zm-64 0l0 288c0 61.9 50.1 112 112 112s112-50.1 112-112l0-105.8 116.3 169.5c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 145.3c-35.5-51.7-105.3-64.3-156-28.1-5.6 4-10.7 8.4-15.3 13.1l0-18.3C256 50.1 205.9 0 144 0S32 50.1 32 112zM296.6 240.2c-16-23.3-10-55.3 11.9-71 21.2-15.1 50.5-10.3 66 12.2l67 97.6-79.9 55.9-65-94.8z"],poo:[512,512,[128169],"f2fe","M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1 0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64 0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72 0 23.2 11 43.8 28 57-34.1 5.7-60 35.3-60 71 0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72 0-35.7-25.9-65.3-60-71 17-13.2 28-33.8 28-57 0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48 0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32 0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7 0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z"],elevator:[512,512,[],"e16d","M292.7-4.7l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5-32 432-32L304-32c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4zm-160-22.6l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4S73.5 64 80 64l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z"],tag:[512,512,[127991],"f02b","M32.5 96l0 149.5c0 17 6.7 33.3 18.7 45.3l192 192c25 25 65.5 25 90.5 0L483.2 333.3c25-25 25-65.5 0-90.5l-192-192C279.2 38.7 263 32 246 32L96.5 32c-35.3 0-64 28.7-64 64zm112 16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"file-circle-minus":[576,512,[],"e4ed","M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z"],"down-long":[320,512,["long-arrow-alt-down"],"f309","M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S300.9 352 288 352l-64 0 0-336c0-26.5-21.5-48-48-48l-32 0c-26.5 0-48 21.5-48 48l0 336-64 0c-12.9 0-24.6 7.8-29.6 19.8S.2 397.5 9.4 406.6l128 128z"],"compact-disc":[512,512,[128191,128192,128440],"f51f","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zm-56-16c0-32.4 16.3-66.6 42.8-93.2S207.6 104 240 104c13.3 0 24-10.7 24-24s-10.7-24-24-24c-47.9 0-93.7 23.5-127.1 56.9S56 192.1 56 240c0 13.3 10.7 24 24 24s24-10.7 24-24z"],"suitcase-rolling":[384,512,[],"f5c1","M144 24c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zM320 96l-32 0 0-72c0-30.9-25.1-56-56-56l-80 0C121.1-32 96-6.9 96 24l0 72-32 0C28.7 96 0 124.7 0 160L0 448c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64zM120 208l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"book-quran":[448,512,["quran"],"f687","M64 512l288 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L48 0C21.5 0 0 21.5 0 48L0 336c0 20.9 13.4 38.7 32 45.3L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0zM352 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0 0-64 256 0zM273.1 144.4c2.5-6.1 11.2-6.1 13.7 0l10.3 24.8 26.8 2.1c6.6 .5 9.2 8.7 4.2 13L307.8 201.9 314 228c1.5 6.4-5.5 11.5-11.1 8.1l-22.9-14-22.9 14c-5.6 3.4-12.6-1.6-11.1-8.1l6.2-26.1-20.4-17.5c-5-4.3-2.3-12.5 4.2-13l26.8-2.1 10.3-24.8zM100 192c0-68.5 55.5-124 124-124 23.8 0 46.1 6.7 65 18.4 4.8 2.9 6.9 8.8 5 14.1s-7.1 8.6-12.7 8c-3.1-.3-6.2-.5-9.4-.5-46.4 0-84 37.6-84 84s37.6 84 84 84c3.2 0 6.3-.2 9.4-.5 5.6-.6 10.8 2.7 12.7 8s-.3 11.2-5 14.1c-18.9 11.7-41.2 18.4-65 18.4-68.5 0-124-55.5-124-124z"],"phone-slash":[576,512,[],"f3dd","M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L141.5 368.6C89.2 310.5 51.6 238.8 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c12.9 28.5 29.6 54.8 49.5 78.5L535-24.9zm-150.4 534c-63-13.4-121.3-39.8-171.7-76.3L297.8 348c12.2 8.2 25 15.6 38.3 22.2L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5c-17.6 64.6-80.2 119.8-156.4 103.7z"],"road-circle-check":[640,512,[],"e564","M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z"],"shop-lock":[640,512,[],"e4a5","M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l55.6 111.1c-8.2-1.6-16.6-2.5-25.2-2.5-53.7 0-99.7 33.1-118.7 80l-57.3 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z"],"image-portrait":[384,512,["portrait"],"f3e0","M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 368c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM192 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112z"],"bridge-lock":[576,512,[],"e4cc","M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0 0 32.2c13.8 .6 27.2 2.8 40 6.4l0 50.7c-14.8-6-31-9.3-48-9.3-70.7 0-128 57.3-128 128l0 24.4c-.4 .3-.7 .6-1.1 1-17.3-25-46.2-41.3-78.9-41.3-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64zm424 68.6l0-36.6-80 0 0 64 18.8 0c18.2-12.8 38.9-22.2 61.2-27.4zM216 96l0 64 80 0 0-64-80 0zm-48 0l-80 0 0 64 80 0 0-64zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z"],hammer:[640,512,[128296],"f6e3","M246.9 18.3L271 3.8c21.6-13 46.3-19.8 71.5-19.8 36.8 0 72.2 14.6 98.2 40.7l63.9 63.9c15 15 23.4 35.4 23.4 56.6l0 30.9 19.7 19.7 0 0c15.6-15.6 40.9-15.6 56.6 0s15.6 40.9 0 56.6l-64 64c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L464 240 433.1 240c-21.2 0-41.6-8.4-56.6-23.4l-49.1-49.1c-15-15-23.4-35.4-23.4-56.6l0-12.7c0-11.2-5.9-21.7-15.5-27.4l-41.6-25c-10.4-6.2-10.4-21.2 0-27.4zM50.7 402.7l222.1-222.1 90.5 90.5-222.1 222.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5z"],"arrow-up-1-9":[512,512,["sort-numeric-up"],"f163","M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM418.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM365.1 430.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 336a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"],"chess-knight":[384,512,[9822],"f441","M192-32c106 0 192 86 192 192l0 133.5c0 17-6.8 33.2-18.7 45.2L320 384 370.8 434.7c8.5 8.5 13.2 20 13.2 32 0 25-20.3 45.2-45.2 45.3L45.3 512c-25 0-45.2-20.3-45.2-45.3 0-12 4.8-23.5 13.2-32L64 384 64 349.4c0-18.7 8.2-36.4 22.3-48.6l89.7-76.8-48 0-12.1 12.1c-12.7 12.7-30 19.9-48 19.9-37.5 0-67.9-30.4-67.9-67.9l0-8.7c0-22.8 8.2-44.9 23.1-62.3L96 32 96 0c0-17.7 14.3-32 32-32l64 0zM160 72a24 24 0 1 0 0 48 24 24 0 1 0 0-48z"],"house-flood-water-circle-arrow-right":[640,512,[],"e50f","M288.5 112a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM141.2 44.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l28.7-28.7-89.4 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0-28.7-28.7c-6.2-6.2-6.2-16.4 0-22.6zM336.5 112c0 71.1-38.6 133.1-96 166.3l0 12.8c22.1 4.5 43.4 13.9 62.4 28.2 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 6-4.5 12.6-8 19.3-10.4l0-115.2 4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L444.5 10.5C436.8 3.7 426.8 0 416.5 0s-20.3 3.7-28 10.5L329.9 61.8c4.3 16 6.6 32.8 6.6 50.2zm32 88c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM475.1 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 391.8 266 373.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 487.8 266 469.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z"],"arrow-up-right-from-square":[512,512,["external-link"],"f08e","M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0-201.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 96C35.8 96 0 131.8 0 176L0 432c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 80c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 96z"],"arrow-down-up-across-line":[512,512,[],"e4af","M265.4 105.4l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4 0 114.7 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 114.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 402.7 96 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-114.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zM416 336l0 144c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144 64 0zM96 176L96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 144-64 0z"],"face-grin-beam":[512,512,[128516,"grin-beam"],"f582","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z"],"rectangle-ad":[512,512,["ad"],"f641","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM416 184l0 144c0 13.3-10.7 24-24 24-7.1 0-13.5-3.1-17.9-8-10.2 5.1-21.8 8-34.1 8-42 0-76-34-76-76s34-76 76-76c9.9 0 19.3 1.9 28 5.3l0-21.3c0-13.3 10.7-24 24-24s24 10.7 24 24zm-48 92a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM160 208c-8.8 0-16 7.2-16 16l0 32 48 0 0-32c0-8.8-7.2-16-16-16l-16 0zm32 96l-48 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-35.3 28.7-64 64-64l16 0c35.3 0 64 28.7 64 64l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24z"],"book-tanakh":[448,512,["tanakh"],"f827","M352 512L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-66.7C13.4 374.7 0 356.9 0 336L0 48C0 21.5 21.5 0 48 0L352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96zm32-96c0-17.7-14.3-32-32-32l-256 0 0 64 256 0c17.7 0 32-14.3 32-32zM113.9 229c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2C233.6 66.6 229 64 224 64s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z"],"hot-tub-person":[448,512,["hot-tub"],"f593","M240 40c0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C203.5 93.1 192 67.2 192 40 192 26.7 202.7 16 216 16s24 10.7 24 24zM0 336l0-80c0-35.3 28.7-64 64-64l19.7 0c8.1 0 16.2 1.6 23.8 4.6l137.1 54.8c7.6 3 15.6 4.6 23.8 4.6L384 256c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 336zm96-16c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zm152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zm104-24c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zM328 16c13.3 0 24 10.7 24 24 0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C315.5 93.1 304 67.2 304 40 304 26.7 314.7 16 328 16zM64 40a56 56 0 1 1 0 112 56 56 0 1 1 0-112z"],"file-half-dashed":[384,512,[],"e698","M64 0C28.7 0 0 28.7 0 64l0 256 384 0 0-149.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM0 352l0 64 64 0 0-64-64 0zM64 512l0-64-64 0c0 35.3 28.7 64 64 64zm32 0l80 0 0-64-80 0 0 64zm112 0l80 0 0-64-80 0 0 64zm112 0c35.3 0 64-28.7 64-64l-64 0 0 64zm64-160l-64 0 0 64 64 0 0-64z"],outdent:[448,512,["dedent"],"f03b","M.4 64c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0C14.8 96 .4 81.7 .4 64zm192 128c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM.4 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32zM.7 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.7 268.6z"],"hand-peace":[448,512,[9996],"f25b","M192 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM61.3 51.2L143.9 240 74.1 240 2.7 76.8C-4.4 60.6 3 41.8 19.2 34.7S54.2 35 61.3 51.2zm27 221.3l-.2-.5 95.9 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L69.5 453.5C45.5 429.5 32 396.9 32 363l0-27c0-32.7 24.6-59.7 56.3-63.5z"],"head-side-virus":[512,512,[],"e064","M329.7 448c-5.1 0-9.7 3.7-9.7 8.8l0 7.2c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-63.6c0-12.6-5.1-24.5-13.1-34.2-31.8-38.7-50.9-88.2-50.9-142.2 0-123.7 100.3-224 224-224 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l35.8 42.9c7 8.4 10.9 19.1 10.9 30.1 0 25.9-21 47-47 47l-1 0c-8.8 0-16 7.2-16 16l0 48c0 35.3-28.7 64-64 64l-38.3 0zM224 64c-13.3 0-24 10.7-24 24 0 22.9-27.7 34.4-43.9 18.2-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c16.2 16.2 4.7 43.9-18.2 43.9-13.3 0-24 10.7-24 24s10.7 24 24 24c22.9 0 34.4 27.7 18.2 43.9-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c16.2-16.2 43.9-4.7 43.9 18.2 0 13.3 10.7 24 24 24s24-10.7 24-24c0-22.9 27.7-34.4 43.9-18.2 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-16.2-16.2-4.7-43.9 18.2-43.9 13.3 0 24-10.7 24-24s-10.7-24-24-24c-22.9 0-34.4-27.7-18.2-43.9 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-16.2 16.2-43.9 4.7-43.9-18.2 0-13.3-10.7-24-24-24zm-32 88a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"],compass:[512,512,[129517],"f14e","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"],"pen-nib":[512,512,[10001],"f5ad","M368.5 18.3l-50.1 50.1 125.3 125.3 50.1-50.1c21.9-21.9 21.9-57.3 0-79.2L447.7 18.3c-21.9-21.9-57.3-21.9-79.2 0zM279.3 97.2l-.5 .1-144.1 43.2c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-2.9 8.7-1.9 18.2 2.5 26L161.7 316.4c-1.1-4-1.6-8.1-1.6-12.4 0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48c-4.3 0-8.5-.6-12.4-1.6L40.3 505.7c7.8 4.4 17.2 5.4 26 2.5l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 .1-.5-135.5-135.5z"],"tent-arrows-down":[512,512,[],"e581","M185.5 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zm248 72l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z"],"forward-fast":[512,512,[9197,"fast-forward"],"f050","M19.8 477.6c12 5 25.7 2.2 34.9-6.9L224 301.3 224 448c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9L448 301.3 448 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 146.7-169.4-169.4c-9.2-9.2-22.9-11.9-34.9-6.9S224 51.1 224 64L224 210.7 54.6 41.4c-9.2-9.2-22.9-11.9-34.9-6.9S0 51.1 0 64L0 448c0 12.9 7.8 24.6 19.8 29.6z"],crop:[512,512,[],"f125","M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 176 64 176 128 338.7 128 128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-162.7 0 210.7-210.7 0 306.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z"],"whiskey-glass":[448,512,[129347,"glass-whiskey"],"f7a0","M32 32C14.3 32 0 46.3 0 64L0 352c0 70.7 57.3 128 128 128l192 0c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32L32 32zM64 256l0-160 320 0 0 160-320 0z"],square:[448,512,[9632,9723,9724,61590],"f0c8","M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z"],"face-grin":[512,512,[128512,"grin"],"f580","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"file-contract":[384,512,[],"f56c","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 64C74.7 64 64 74.7 64 88s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm70.3 160c-11.3 0-21.9 5.1-28.9 13.9L69.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4z"],"angle-up":[384,512,[8963],"f106","M169.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L192 205.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z"],"face-smile":[512,512,[128578,"smile"],"f118","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"person-dress-burst":[640,512,[],"e544","M208 40.1c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24zM8 144.1c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm92.5 141.4l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM246.2 384l25.8 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 25.8 0c10.9 0 18.6-10.7 15.2-21.1l-43-129 48.3 65.1c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C434 132 394.3 112 352 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l48.3-65.1-43 129c-3.5 10.4 4.3 21.1 15.2 21.1z"],divide:[448,512,[10135,247],"f529","M224 48a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM168 408a56 56 0 1 1 112 0 56 56 0 1 1 -112 0z"],"code-fork":[448,512,[],"e13b","M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 22.7c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-32 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-32 0C98.1 288 48 237.9 48 176l0-22.7C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"],"house-flag":[640,512,[],"e50d","M472 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM283.5 59.1l100.5 96.9 0 356-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L228.5 59.1C235.9 52 245.7 48 256 48s20.1 4 27.5 11.1zM232 256c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z"],"building-columns":[512,512,["bank","institution","museum","university"],"f19c","M271.9 20.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128c-12.6 7.2-18.8 22-15.1 36S17.5 208 32 208l32 0 0 208 0 0-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-208 32 0c14.5 0 27.2-9.8 30.9-23.8s-2.5-28.8-15.1-36l-224-128zM400 208l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zM256 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],rug:[576,512,[],"e569","M24 64l56 0 0 384-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm104 0l320 0 0 384-320 0 0-384zM576 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0-384 56 0c13.3 0 24 10.7 24 24z"],"code-merge":[448,512,[],"f387","M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2 0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432 0 476.2 35.8 512 80 512s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48 44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"],"house-tsunami":[640,512,[],"e515","M288 16C155.5 16 48 123.5 48 256S155.5 496 288 496c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1l-.1 0C128.9 543.9 0 415 0 256 0 96.9 128.9-32 288-32 301.3-32 312-21.3 312-8s-10.7 24-24 24zm44.8 166.4l96-72c11.4-8.5 27.1-8.5 38.5 0l95.5 72c8 6 12.7 15.5 12.7 25.5l.3 121.5c-2.2 1.3-4.3 2.6-6.4 4.2-4.3 3.1-8.7 .8-13.2-1.5l-1.2-.6-.7-.3c-5.4-2.7-11.7-6.6-18.9-11.7-29.5-21.1-64.3-31.6-99.1-31.4-34.1 .2-68.1 10.7-97 31.4-7.8 5.6-13.8 9.3-19.3 11.2L320 208c0-10.1 4.7-19.6 12.8-25.6zm54.6 229.7c-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1-106 0-192-86-192-192S182 64 288 64c13.3 0 24 10.7 24 24s-10.7 24-24 24c-79.5 0-144 64.5-144 144s64.5 144 144 144c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0z"],"magnifying-glass-chart":[512,512,[],"e522","M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z"],umbrella:[512,512,[],"f0e9","M256-32c17.7 0 32 14.3 32 32l0 2c126.3 15.7 224 123.5 224 254 0 3.8-.1 7.5-.2 11.3-.3 6.9-5 12.8-11.7 14.7s-13.8-.7-17.6-6.5c-14.4-21.4-38.8-35.5-66.5-35.5-29.3 0-54.9 15.7-68.9 39.3-2.7 4.6-7.6 7.6-13 7.8s-10.5-2.2-13.7-6.5c-14.6-19.8-38-32.6-64.5-32.6s-49.9 12.8-64.5 32.6c-3.2 4.3-8.3 6.8-13.7 6.5s-10.2-3.2-13-7.8c-14-23.6-39.6-39.3-68.9-39.3-27.7 0-52.1 14.1-66.5 35.5-3.9 5.7-11 8.4-17.6 6.5S.5 274.2 .2 267.3C.1 263.5 0 259.8 0 256 0 125.5 97.7 17.7 224 2l0-2c0-17.7 14.3-32 32-32zm32 360l0 102.6c0 45-36.5 81.4-81.4 81.4-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6 9.6 0 17.4-7.8 17.4-17.4L224 328c0-17.7 14.3-32 32-32s32 14.3 32 32z"],"hill-rockslide":[576,512,[],"e508","M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"user-secret":[448,512,[128373],"f21b","M171-16c-36.4 0-57.8 58.3-68.3 112L72 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32c0 17 3.3 33.2 9.3 48l-9.3 0 0 0-20.5 0c-15.2 0-27.5 12.3-27.5 27.5 0 3 .5 5.9 1.4 8.7l28.9 86.6C40.2 379.6 16 428.1 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-54.2-24.2-102.7-62.3-135.4l28.9-86.6c.9-2.8 1.4-5.7 1.4-8.7 0-15.2-12.3-27.5-27.5-27.5l-20.5 0 0 0-9.3 0c6-14.8 9.3-31 9.3-48l0-32 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-30.7 0c-10.4-53.7-31.9-112-68.3-112-9.6 0-19 3.9-27.5 8.2-8.2 4.1-18.4 7.8-25.5 7.8s-17.3-3.7-25.5-7.8C190-12.1 180.6-16 171-16zm93.7 484.4l-24.8-70.9 27.9-32.5c2.7-3.2 4.2-7.2 4.2-11.4 0-9.7-7.8-17.5-17.5-17.5l-61 0c-9.7 0-17.5 7.8-17.5 17.5 0 4.2 1.5 8.2 4.2 11.4l27.9 32.5-24.8 70.9-57-180.4 35.7 0c18.4 10.2 39.5 16 62 16s43.6-5.8 62-16l35.7 0-57 180.4zM224 256c-34.7 0-64.2-22.1-75.3-53 5.7 3.2 12.3 5 19.3 5l12.4 0c16.5 0 31.1-10.6 36.3-26.2 2.3-7 12.2-7 14.5 0 5.2 15.6 19.9 26.2 36.3 26.2l12.4 0c7 0 13.6-1.8 19.3-5-11.1 30.9-40.6 53-75.3 53z"],pager:[512,512,[128223],"f815","M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z"],briefcase:[512,512,[128188],"f0b1","M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160l0 96 512 0 0-96c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM512 304l-192 0 0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-112z"],"trowel-bricks":[512,512,[],"e58a","M224 32c0-11.5-6.2-22.2-16.2-27.8s-22.3-5.5-32.2 .4l-160 96C5.9 106.3 0 116.8 0 128s5.9 21.7 15.5 27.4l160 96c9.9 5.9 22.2 6.1 32.2 .4S224 235.5 224 224l0-64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-64zm96 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0zM0 416l0 64c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32zm224-32c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-256 0z"],socks:[512,512,[129510],"f696","M252.8 0L176 0c-26.5 0-48 21.5-48 48l0 16 112 0 0-16c0-17.5 4.7-33.9 12.8-48zM128 112l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 15.4 0 30.5-3.7 44-10.7-17.6-23.9-28-53.4-28-85.3 0-45.3 21.3-88 57.6-115.2l64-48c4-3 6.4-7.8 6.4-12.8l0-128-112 0zm160 0l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 20.8 0 41-6.7 57.6-19.2l115.2-86.4C461 382.2 480 344.3 480 304l0-192-192 0zM480 64l0-16c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 16 192 0z"],t:[384,512,[116],"54","M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z"],microchip:[512,512,[],"f2db","M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm16 48l0 160 160 0 0-160-160 0z"],"truck-medical":[576,512,[128657,"ambulance"],"f0f9","M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM176 136c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z"],om:[576,512,[128329],"f679","M388.7 4.7c6.2-6.2 16.4-6.2 22.6 0l16 16c6.2 6.2 6.2 16.4 0 22.6l-16 16c-6.2 6.2-16.4 6.2-22.6 0l-16-16c-6.2-6.2-6.2-16.4 0-22.6l16-16zM176 160c-10.8 0-20.8 3.6-28.8 9.6-14.1 10.6-34.2 7.8-44.8-6.4s-7.8-34.2 6.4-44.8c18.7-14.1 42-22.4 67.2-22.4 61.9 0 112 50.1 112 112 0 17.2-3.9 33.5-10.8 48l49.7 0c12.7 0 24.9-5 33.9-14.1l20.7-20.7c18.7-18.7 44.1-29.3 70.6-29.3 55.2 0 99.9 44.7 99.9 99.9l0 96.1c0 55.2-44.8 100-100 100S352 443.2 352 388l0-4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 4c0 19.9 16.1 36 36 36s36-16.1 36-36l0-96.1c0-19.8-16.1-35.9-35.9-35.9-9.5 0-18.6 3.8-25.4 10.5l-20.7 20.7c-21 21-49.4 32.8-79.1 32.8l-26.8 0c12.6 19.6 19.9 42.8 19.9 68 0 75.2-65 132-140 132S40 463.2 40 388c0-17.7 14.3-32 32-32s32 14.3 32 32c0 35.3 31.7 68 76 68s76-32.7 76-68-31.7-68-76-68l-20 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0c26.5 0 48-21.5 48-48s-21.5-48-48-48zM337.1 60.1c-11-13.8-31.1-16.2-45-5.2s-16.2 31.1-5.2 45C312.6 132.2 354.4 152 400 152s87.4-19.8 113.1-52.1c11-13.8 8.7-34-5.2-45s-34-8.7-45 5.2C450.3 76 427.5 88 400 88s-50.3-12-62.9-27.9z"],"mosquito-net":[640,512,[],"e52c","M576 352c13.3 0 24 10.7 24 24l0 16 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 48 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 16-.1 2.5C598.6 566.6 588.4 576 576 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-48 0 0 16-.1 2.5C502.6 566.6 492.4 576 480 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-48-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 48 0 0-16c0-13.3 10.7-24 24-24zM429.9 16.3c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 3.9-.4 7.7-.9 11.5-7.3-3.5-15.3-5.8-23.8-6.7L576 304c-18.5 0-35.3 7-48 18.4-11-9.9-25.1-16.5-40.6-18.1L480 304c-30.3 0-56.1 18.7-66.8 45.2-12.5 5-23.2 13.4-31.1 24l-30.2-40.1 0 74.7c0 17.7-14.3 32-32 32-16.6 0-30.2-12.6-31.8-28.7l-.2-3.3 0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2c-7.5 9.6-21 12.1-31.3 5.3-10.3-6.8-13.7-20.5-8.3-31.5l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.7-38.3-2.4-2.4c-5.2-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.2-2.1c-5.7-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8 .2-3.2c1.1-10.4 7.2-19.4 15.8-24.4l0-60.5 .3-3.2c1.5-7.3 8-12.7 15.7-12.8 7.7 0 14.2 5.5 15.7 12.8l.3 3.2 0 60.5c8.7 5 14.8 14 15.8 24.4l.2 3.2 0 28.9 53.4-45.7-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2zM504 488l48 0 0-48-48 0 0 48z"],"prescription-bottle":[384,512,[],"f485","M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-64z"],"users-gear":[640,512,["users-cog"],"f509","M320 224a104 104 0 1 0 0-208 104 104 0 1 0 0 208zM96 232a72 72 0 1 0 0-144 72 72 0 1 0 0 144zM0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4-70.7 0-128 57.3-128 128zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zM160 432l0 16c0 17.7 14.3 32 32 32l156.8 0c-7.1-21.6-6.3-44.4 10.7-64-14-16.2-20.5-39.7-11.4-63.3 6.6-17.1 15.9-33.1 27.4-47.3 5.4-6.6 11.6-11.7 18.3-15.4-22.1-11.5-47.2-18-73.8-18-88.4 0-160 71.6-160 160zm464.6-44.1c6.3-3.6 9.5-11.1 6.8-18-4.8-12.4-11.5-24.1-19.9-34.4-4.6-5.7-12.7-6.7-19-3-21.8 12.6-48.6-2.8-48.6-28.1 0-7.3-4.9-13.8-12.1-14.9-12.9-2-26.8-2-39.7 0-7.2 1.1-12.1 7.6-12.1 14.9 0 25.2-26.8 40.7-48.6 28.1-6.3-3.6-14.4-2.6-19 3-8.4 10.3-15.1 22-19.9 34.4-2.6 6.8 .5 14.3 6.8 17.9 21.9 12.6 21.9 43.5 0 56.2-6.3 3.6-9.5 11.1-6.8 17.9 4.8 12.4 11.5 24.1 19.9 34.4 4.6 5.7 12.7 6.7 19 3 21.8-12.6 48.6 2.9 48.6 28.1 0 7.3 4.9 13.8 12.1 14.9 12.9 2 26.8 2 39.7 0 7.2-1.1 12.1-7.6 12.1-14.9 0-25.2 26.8-40.7 48.6-28.1 6.3 3.6 14.4 2.6 19-3 8.4-10.3 15.1-22 19.9-34.4 2.6-6.8-.5-14.3-6.8-17.9-21.9-12.6-21.9-43.5 0-56.2zM472 416a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z"],"road-circle-exclamation":[640,512,[],"e565","M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z"],pause:[384,512,[9208],"f04c","M48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 32zm224 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0z"],"staff-snake":[448,512,["rod-asclepius","rod-snake","staff-aesculapius"],"e579","M192 32l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 64 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-64 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 192 32 0c53 0 96 43 96 96 0 47.6-34.6 87.1-80 94.7l0-67c9.6-5.5 16-15.9 16-27.7 0-17.7-14.3-32-32-32l-32 0 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64-32 0c-53 0-96-43-96-96 0-47.6 34.6-87.1 80-94.7l0 67c-9.6 5.5-16 15.9-16 27.7 0 17.7 14.3 32 32 32l32 0 0-192-72.6 0c-11.1 19.1-31.7 32-55.4 32l-16 0C21.5 128 0 106.5 0 80S21.5 32 48 32l144 0z"],"piggy-bank":[576,512,[],"f4d3","M288-32a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM48 304c0-70.1 47-131.4 117.1-164.9 25.3 41.3 70.9 68.9 122.9 68.9 55.7 0 104.1-31.7 128-78 15.8-11.3 35.1-18 56-18l19.5 0c10.4 0 18 9.8 15.5 19.9l-17.1 68.3c9.9 12.4 18.2 25.7 24.4 39.8l21.7 0c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24l-40 0c-16.5 22-38.5 39.6-64 50.7l0 29.3c0 17.7-14.3 32-32 32l-33 0c-14.3 0-26.8-9.5-30.8-23.2l-7.1-24.8-82.3 0-7.1 24.8C235.8 502.5 223.3 512 209 512l-33 0c-17.7 0-32-14.3-32-32l0-29.3C87.5 426 48 369.6 48 304zm376 16a24 24 0 1 0 0-48 24 24 0 1 0 0 48z"],monument:[384,512,[],"f5a6","M209-33c-9.4-9.4-24.6-9.4-33.9 0L95 47c-4.1 4.1-6.5 9.4-7 15.1L58.4 448 48 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.4 0-29.7-385.8c-.4-5.7-2.9-11.1-7-15.1L209-33zM128 296c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24z"],"angles-right":[448,512,[187,"angle-double-right"],"f101","M439.1 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L371.2 256 233.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L179.2 256 41.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z"],desktop:[512,512,[128421,61704,"desktop-alt"],"f390","M64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32L96 320c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z"],"plane-circle-xmark":[640,512,[],"e557","M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z"],retweet:[576,512,[],"f079","M118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l32 0 0 224c0 53 43 96 96 96l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0c-17.7 0-32-14.3-32-32l0-224 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64zM457.4 470.6c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S556.9 352 544 352l-32 0 0-224c0-53-43-96-96-96L288 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32l0 224-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64z"],"user-gear":[640,512,["user-cog"],"f4fe","M256.5 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.7 304l59.4 0 1.5 0c-12.9 26.8-7.8 58.2 11.5 79.5-20.2 22.3-24.8 55.8-9.4 83.4l22.5 40.4c.9 1.6 1.9 3.2 2.9 4.7l-237 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zm205.9-56.4c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 6.1c0 18.9 24.1 32.8 40.5 23.4l5-2.9c11.6-6.7 26.5-2.6 33 9.1l22.4 40.2c6.2 11.2 2.6 25.2-8.2 32l-4.7 2.9c-16.2 10.1-16.2 39.9 0 50.1l4.6 2.9c10.8 6.8 14.5 20.8 8.3 32L607 483.8c-6.5 11.7-21.4 15.9-33 9.1l-4.9-2.9c-16.4-9.5-40.5 4.5-40.5 23.4l0 6.1c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-5.9c0-19-24.2-33-40.7-23.5l-4.8 2.8c-11.6 6.7-26.4 2.6-33-9.1l-22.6-40.4c-6.2-11.2-2.6-25.3 8.3-32.1l4.4-2.7c16.3-10.1 16.3-40.1 0-50.2l-4.5-2.8c-10.9-6.8-14.5-20.9-8.3-32.1l22.5-40.3c6.5-11.7 21.4-15.8 32.9-9.1l4.8 2.8c16.5 9.5 40.7-4.5 40.7-23.5l0-5.9zm99.9 136.2a52 52 0 1 0 -104 0 52 52 0 1 0 104 0z"],"border-all":[448,512,[],"f84c","M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224l-128 0 0-128 128 0 0 128zM64 288l128 0 0 128-128 0 0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z"],coins:[512,512,[],"f51e","M128 96l0-16c0-44.2 86-80 192-80S512 35.8 512 80l0 16c0 30.6-41.3 57.2-102 70.7-2.4-2.8-4.9-5.5-7.4-8-15.5-15.3-35.5-26.9-56.4-35.5-41.9-17.5-96.5-27.1-154.2-27.1-21.9 0-43.3 1.4-63.8 4.1-.2-1.3-.2-2.7-.2-4.1zM432 353l0-46.2c15.1-3.9 29.3-8.5 42.2-13.9 13.2-5.5 26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zm0-96l0-33c0-4.5-.4-8.8-1-13 15.5-3.9 30-8.6 43.2-14.2s26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zM0 240l0-16c0-44.2 86-80 192-80s192 35.8 192 80l0 16c0 44.2-86 80-192 80S0 284.2 0 240zm384 96c0 44.2-86 80-192 80S0 380.2 0 336l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3l0 15.4zm0 80.6l0 15.4c0 44.2-86 80-192 80S0 476.2 0 432l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3z"],"mars-stroke":[576,512,[9894],"f229","M416-32c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0-58.7 58.7-17.4-17.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l17.4 17.4-23 23c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176c0-37-11.4-71.4-31-99.8l23-23 17.4 17.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L453.3 136 512 77.3 512 128c0 17.7 14.3 32 32 32s32-14.3 32-32L576 0c0-17.7-14.3-32-32-32L416-32zM128 304a112 112 0 1 1 224 0 112 112 0 1 1 -224 0z"],"handshake-angle":[576,512,["hands-helping"],"f4c4","M268.9 53.2L152.3 182.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 344 576 288 576 0 464 64 440.2 48.1C424.4 37.6 405.9 32 386.9 32l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 150.7L223.4 32 183.8 32c-25.5 0-49.9 10.1-67.9 28.1L0 192 0 544 144 408 156.4 418.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 409c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z"],"arrow-down":[384,512,[8595],"f063","M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7-105.4-105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z"],"location-dot":[384,512,["map-marker-alt"],"f3c5","M0 188.6C0 84.4 86 0 192 0S384 84.4 384 188.6c0 119.3-120.2 262.3-170.4 316.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z"],"plug-circle-exclamation":[640,512,[],"e55d","M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z"],"cookie-bite":[512,512,[],"f564","M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9-.9-5.3-5.3-9.3-10.6-10.1-51.5-8.2-92.8-47.1-104.5-97.4-1.8-7.6-8-13.4-15.7-14.6-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"screwdriver-wrench":[576,512,["tools"],"f7d9","M70.8-6.7c5.4-5.4 13.8-6.2 20.2-2L209.9 70.5c8.9 5.9 14.2 15.9 14.2 26.6l0 49.6 90.8 90.8c33.3-15 73.9-8.9 101.2 18.5L542.2 382.1c18.7 18.7 18.7 49.1 0 67.9l-60.1 60.1c-18.7 18.7-49.1 18.7-67.9 0L288.1 384c-27.4-27.4-33.5-67.9-18.5-101.2l-90.8-90.8-49.6 0c-10.7 0-20.7-5.3-26.6-14.2L23.4 58.9c-4.2-6.3-3.4-14.8 2-20.2L70.8-6.7zm145 303.5c-6.3 36.9 2.3 75.9 26.2 107.2l-94.9 95c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8l135.4-135.5 35.2 35.1zM384.1 0c20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1L388.8 91.3c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l56.7-56.7c7.6-7.5 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 43.2-17.2 82.3-45 111.1l-49.1-49.1c-33.1-33-78.5-45.7-121.1-38.4l-56.8-56.8 0-29.7-.2-5c-.8-12.4-4.4-24.3-10.5-34.9 29.4-35 73.4-57.2 122.7-57.3z"],indent:[448,512,[],"f03c","M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z"],bars:[448,512,["navicon"],"f0c9","M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z"],"hands-praying":[640,512,["praying-hands"],"f684","M224 296c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112.6 88.2-119.7c13.1-17.8 9.3-42.8-8.5-55.9s-42.8-9.3-55.9 8.5L106.5 142.9C89.3 166.2 80 194.5 80 223.6l0 110.7-58.1 19.4C8.8 358 0 370.2 0 384l0 96c0 10 4.7 19.5 12.7 25.5s18.4 8 28.1 5.2l154.4-44.1c55-15.7 92.8-65.9 92.8-123.1L288 224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 72zm192 0l0-72c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 119.6c0 57.2 37.9 107.4 92.8 123.1l154.4 44.1c9.7 2.8 20 .8 28.1-5.2S640 490 640 480l0-96c0-13.8-8.8-26-21.9-30.4l-58.1-19.4 0-110.7c0-29-9.3-57.3-26.5-80.7L440.2 16.3C427.1-1.5 402.1-5.3 384.3 7.8s-21.6 38.1-8.5 55.9L464 183.4 464 296c0 13.3-10.7 24-24 24s-24-10.7-24-24z"],viruses:[640,512,[],"e076","M192 0c17.7 0 32 14.3 32 32 0 30.5 36.9 45.8 58.5 24.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-21.6 21.6-6.3 58.5 24.2 58.5 17.7 0 32 14.3 32 32s-14.3 32-32 32c-30.5 0-45.8 36.9-24.2 58.5 12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0c-21.6-21.6-58.5-6.3-58.5 24.2 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-30.5-36.9-45.8-58.5-24.2-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3C77.8 260.9 62.5 224 32 224 14.3 224 0 209.7 0 192s14.3-32 32-32c30.5 0 45.8-36.9 24.2-58.5-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0C123.1 77.8 160 62.5 160 32 160 14.3 174.3 0 192 0zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm248 40c0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24s24 10.7 24 24zM504 384a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"],"school-flag":[576,512,[],"e56e","M256-8c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-72 0 0 19.2 128 76.8 64 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 128-76.8 0-91.2zM240 384l0 80 96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48zM112 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm-224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"],trademark:[640,512,[8482],"f25c","M346.6 110.2c-7.8-11.7-22.4-17-35.9-12.9S288 113.9 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-150.3 69.4 104.1c5.9 8.9 15.9 14.2 26.6 14.2s20.7-5.3 26.6-14.2L544 233.7 544 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-14.1-9.2-26.5-22.7-30.6s-28.1 1.1-35.9 12.9L448 262.3 346.6 110.2zM32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96z"],"fire-burner":[512,512,[],"e4f1","M281.7 48.3L294 34.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM320 240.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64zM92.8 320c37.7 48.3 96.1 80 163.2 80 66.5 0 125.1-31.7 163-80l45 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l44.8 0zM456 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z"],"face-smile-beam":[512,512,[128522,"smile-beam"],"f5b8","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z"],"tent-arrow-left-right":[512,512,[],"e57f","M-.5 113c-9.4-9.4-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 310.1 0 54.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0-.1 0-262 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72zM37.1 476L60.3 292.6c1.2-9.7 6.8-18.3 15.1-23.3L238.8 170c10.2-6.2 22.9-6.2 33.1-.1l165.5 99.4c8.4 5 14 13.7 15.3 23.4L475.9 476c2.4 19.1-12.5 36-31.7 36l-71.9 0c-12.1 0-23.2-6.8-28.6-17.7L275.4 357.9c-1.8-3.6-5.5-5.9-9.5-5.9-5.9 0-10.6 4.7-10.6 10.6l0 117.4c0 17.7-14.3 32-32 32L68.8 512c-19.3 0-34.2-16.9-31.7-36z"],route:[512,512,[],"f4d7","M512 96c0 50.2-59.1 125.1-84.6 155-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8 6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96 0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8-25.2-27.4-85-97.9-85-148.4 0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"angles-up":[384,512,["angle-double-up"],"f102","M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 329.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z"],bucket:[448,512,[],"e4cf","M443.7 208c2.7 4.7 4.3 10.2 4.3 16 0 17.7-14.3 32-32 32l-5.1 0-22.4 213c-2.6 24.4-23.2 43-47.8 43l-233.6 0c-24.6 0-45.2-18.5-47.8-43L37.1 256 32 256c-17.7 0-32-14.3-32-32 0-5.8 1.6-11.3 4.3-16l439.4 0zM224-16c79.5 0 144 64.5 144 144l0 32-48 0 0-32c0-53-43-96-96-96s-96 43-96 96l0 32-48 0 0-32C80 48.5 144.5-16 224-16z"],"less-than-equal":[448,512,[],"f537","M426.1 94.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-384 128C8.8 166 0 178.2 0 192s8.8 26 21.9 30.4l384 128c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L133.2 192 426.1 94.4zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z"],"folder-closed":[512,512,[],"e185","M448 448L64 448c-35.3 0-64-28.7-64-64l0-176 512 0 0 176c0 35.3-28.7 64-64 64zm64-288L0 160 0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 16z"],"person-through-window":[640,512,[],"e5a9","M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4-60.5 24.2-100.1 82.7-100.1 147.9l0 73.8-64 0 0-320zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4 44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-26.6 0 42.7 64 150.9 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4l-84.2-126.2 74.6 0 40 48zm-159.5 0l-73.5 0 0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"],"school-lock":[640,512,[],"e56f","M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c33 0 60.2 25 63.6 57.2-14.7-5.9-30.8-9.2-47.6-9.2-70.7 0-128 57.3-128 128l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L64 512c-35.3 0-64-28.7-64-64L0 192zM332.3 341.5c-6-3.5-12.9-5.5-20.3-5.5l-48 0c-22.1 0-40 17.9-40 40l0 88 96 0 0-64.1c0-20.8 4.4-40.5 12.3-58.4zM112 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm224-48a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM560 352l0-47.9c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0zm-112 2.7l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3z"],"person-burst":[640,512,[],"e53b","M204 40.1c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24zM4 144.1c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM96.5 285.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L96.5 285.5zM62.6 2.7c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L62.6 36.6c-9.4-9.4-9.4-24.6 0-33.9zM352.4-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM478.7 299.1l-46.3-62.4 0 275.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c25.2-33.9 65-53.9 107.2-53.9s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6z"],"left-long":[576,512,["long-arrow-alt-left"],"f30a","M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9S192 115.1 192 128l0 64 336 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-336 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z"],"location-crosshairs":[576,512,["location"],"f601","M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM128 256a160 160 0 1 0 320 0 160 160 0 1 0 -320 0zm160-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"],"person-dots-from-line":[512,512,["diagnoses"],"f470","M184 72a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 299.3c-19.9 22.6-32 52.2-32 84.7l0 32-64 0 0-32c0-106 86-192 192-192s192 86 192 192l0 32-64 0 0-32c0-32.5-12.1-62.1-32-84.7l0 116.7-192 0 0-116.7zM232 384a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88-104a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM24 464l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM64 184a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm424 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48z"],"gauge-simple-high":[512,512,[61668,"tachometer","tachometer-fast"],"f62a","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64z"],"angles-left":[448,512,[171,"angle-double-left"],"f100","M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L269.3 256 406.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z"],"up-down":[512,512,[8597,11021,"arrows-alt-v"],"f338","M406.6 502.6l96-96c9.2-9.2 11.9-22.9 6.9-34.9S492.9 352 480 352l-64 0 0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 320-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l96 96c12.5 12.5 32.8 12.5 45.3 0zM150.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l64 0 0 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320 64 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-96-96z"],"battery-empty":[640,512,["battery-0"],"f244","M112 160c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16l416 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16l-416 0zM32 176c0-44.2 35.8-80 80-80l416 0c44.2 0 80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 48c0 44.2-35.8 80-80 80l-416 0c-44.2 0-80-35.8-80-80l0-224z"],keyboard:[576,512,[9000],"f11c","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM176 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z"],cookie:[512,512,[127850],"f563","M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],stopwatch:[448,512,[9201],"f2f2","M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm80 184l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24z"],eject:[448,512,[9167],"f052","M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z"],"satellite-dish":[512,512,[128225],"f7c0","M232 0c154.6 0 280 125.4 280 280 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-128.1-103.9-232-232-232-13.3 0-24-10.7-24-24S218.7 0 232 0zM208 120c0-13.3 10.7-24 24-24 101.6 0 184 82.4 184 184 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-75.1-60.9-136-136-136-13.3 0-24-10.7-24-24zM26.4 142.7c8.8-17.9 32.4-19.9 46.5-5.8l128.5 128.5 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32 128.5 128.5c14.1 14.1 12 37.6-5.8 46.5-34.2 16.9-72.6 26.4-113.3 26.4-141.4 0-256-114.6-256-256 0-40.7 9.5-79.2 26.4-113.3z"],"face-rolling-eyes":[512,512,[128580,"meh-rolling-eyes"],"f5a5","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 352l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm32-128c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4zm128 64c-35.3 0-64-28.7-64-64 0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4 0 35.3-28.7 64-64 64z"],"list-check":[512,512,["tasks"],"f0ae","M133.8 36.3c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 158 47 153L7 113C-2.3 103.6-2.3 88.4 7 79S31.6 69.7 41 79l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zm0 160c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 318 47 313L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM64 376a40 40 0 1 1 0 80 40 40 0 1 1 0-80z"],"sack-xmark":[512,512,[],"e56a","M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM323.9 284.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z"],hashtag:[512,512,[62098],"23","M214.7 .7c17.3 3.7 28.3 20.7 24.6 38l-19.1 89.3 126.5 0 22-102.7C372.4 8 389.4-3 406.7 .7s28.3 20.7 24.6 38L412.2 128 480 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-27.4 128 67.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38l19.1-89.3-126.5 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38L99.8 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 27.4-128-67.8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 22-102.7C180.4 8 197.4-3 214.7 .7zM206.4 192l-27.4 128 126.5 0 27.4-128-126.5 0z"],train:[384,512,[128646],"f238","M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM192 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],gamepad:[640,512,[],"f11b","M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z"],"file-export":[576,512,["arrow-right-from-file"],"f56e","M96.5 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-96 78.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-78.1 0 0-133.5c0-17-6.7-33.3-18.7-45.3L291.2 18.7C279.2 6.7 263 0 246 0L96.5 0zM358 176l-93.5 0c-13.3 0-24-10.7-24-24L240.5 58.5 358 176zM224.5 328c0-13.3 10.7-24 24-24l104 0 0 48-104 0c-13.3 0-24-10.7-24-24z"],"face-grimace":[512,512,[128556,"grimace"],"f57f","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM400 352c0 25.2-19.4 45.8-44 47.8l0-95.7c24.6 2 44 22.7 44 47.8zM276 304l40 0 0 96-40 0 0-96zm-80 96l0-96 40 0 0 96-40 0zm-40-95.8l0 95.7c-24.6-2-44-22.7-44-47.8s19.4-45.8 44-47.8zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"train-subway":[384,512,["subway"],"f239","M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l72 0 0-160-72 0c-17.7 0-32 14.3-32 32zM216 256l72 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-72 0 0 160zM96 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm224-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z"],"circle-dot":[512,512,[128280,"dot-circle"],"f192","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z"],"object-group":[576,512,[],"f247","M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l337.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1zm448 0c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1zM144 176c0-17.7 14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-64zM256 320l32 0c44.2 0 80-35.8 80-80l32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-16z"],ship:[640,512,[128674],"f21a","M272 0c-26.5 0-48 21.5-48 48l0 16-16 0c-44.2 0-80 35.8-80 80l0 108.8-21.6 8.6c-14.8 5.9-22.5 22.4-17.4 37.5 10.4 31.3 26.8 59.3 47.7 83.1 20.1-9.2 41.7-13.9 63.3-14 33.1-.2 66.3 10.2 94.4 31.4l1.6 1.2 0-215-104 41.6 0-83.2c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 83.2-104-41.6 0 215 1.6-1.2c27.5-20.7 59.9-31.2 92.4-31.4 22.3-.1 44.6 4.5 65.3 14 20.9-23.7 37.3-51.8 47.7-83.1 5-15.2-2.6-31.6-17.4-37.5L512 252.8 512 144c0-44.2-35.8-80-80-80l-16 0 0-16c0-26.5-21.5-48-48-48L272 0zM403.4 476.1c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z"],c:[384,512,[99],"43","M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3 155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8 221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z"],"square-phone":[448,512,["phone-square"],"f098","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 96.7c9.8-2.7 20.1 2.4 24 11.8l20.3 48.7c3.4 8.3 1.1 17.8-5.9 23.5l-22.1 18c16.2 35.8 44.5 65 79.6 82.4l19.3-23.6c5.7-6.9 15.2-9.3 23.5-5.9l48.7 20.3c9.4 3.9 14.4 14.2 11.8 24l-.8 2.8c-8.8 32.3-40.1 59.9-78.2 51.8-87.5-18.5-156.3-87.4-174.9-174.9-8.1-38.1 19.5-69.4 51.8-78.2l2.8-.8z"],"ruler-combined":[448,512,[],"f546","M1 441.7C5.5 463.5 24.8 480 48 480l352 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-64 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-64-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-48c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432c0 3.3 .3 6.6 1 9.7z"],"arrows-rotate":[512,512,[128472,"refresh","sync"],"f021","M65.9 228.5c13.3-93 93.4-164.5 190.1-164.5 53 0 101 21.5 135.8 56.2 .2 .2 .4 .4 .6 .6l7.6 7.2-47.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.4-11.3-10.7C390.5 28.6 326.5 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1zm443.5 64c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-53 0-101-21.5-135.8-56.2-.2-.2-.4-.4-.6-.6l-7.6-7.2 47.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320c-8.5 0-16.7 3.4-22.7 9.5S-.1 343.7 0 352.3l1 127c.1 17.7 14.6 31.9 32.3 31.7S65.2 496.4 65 478.7l-.4-51.5 10.7 10.1c46.3 46.1 110.2 74.7 180.7 74.7 129 0 235.7-95.4 253.4-219.5z"],"person-dress":[384,512,["female"],"f182","M136 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM112 384l-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L270 234 313 362.9c3.5 10.4-4.3 21.1-15.2 21.1l-25.8 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-32 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128z"],"book-open":[512,512,[128214,128366],"f518","M256 141.3l0 309.3 .5-.2C311.1 427.7 369.7 416 428.8 416l19.2 0 0-320-19.2 0c-42.2 0-84.1 8.4-123.1 24.6-16.8 7-33.4 13.9-49.7 20.7zM230.9 61.5L256 72 281.1 61.5C327.9 42 378.1 32 428.8 32L464 32c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-35.2 0c-50.7 0-100.9 10-147.7 29.5l-12.8 5.3c-7.9 3.3-16.7 3.3-24.6 0l-12.8-5.3C184.1 490 133.9 480 83.2 480L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l35.2 0c50.7 0 100.9 10 147.7 29.5z"],"folder-tree":[576,512,[],"f802","M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 392c0 30.9 25.1 56 56 56l184 0 0-48-184 0c-4.4 0-8-3.6-8-8l0-232 192 0 0-48-192 0 0-88zM336 224l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48zm0 288l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 288c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48z"],"box-archive":[512,512,["archive"],"f187","M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64zM32 176l448 0 0 240c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-240zm152 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"],"tent-arrow-down-to-line":[576,512,[],"e57e","M185 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1C120 2.7 109.3-8 96-8S72 2.7 72 16l0 102.1-31-31C31.6 77.7 16.4 77.7 7 87S-2.3 111.6 7 121l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zM155.8 260.6L132.1 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32 0-2.8-.4-5.5-1-8L548.2 260.7c-1.2-9.7-6.9-18.4-15.3-23.4L367.4 137.9c-10.2-6.1-22.9-6.1-33.1 .1L170.9 237.3c-8.3 5.1-13.9 13.7-15.1 23.3zM448 448l-97.1 0 0-149.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9L448 448z"],qrcode:[448,512,[],"f029","M64 160l64 0 0-64-64 0 0 64zM0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 416l64 0 0-64-64 0 0 64zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zM320 96l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zM288 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm96 32c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-32 32a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z"],dragon:[640,512,[128009],"f6d5","M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4-43.3-32.5c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L464 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8 0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7l-13.3-13.3-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1 0 60.6-49.1 109.8-109.8 109.8L32.3 512c-3.3 0-6.6-.4-9.6-1.4-9.2-2.8-16.7-9.6-20.4-18.6-1.3-3.3-2.2-6.9-2.3-10.7-.2-3.7 .3-7.3 1.3-10.7 2.8-9.2 9.6-16.7 18.6-20.4 3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1 0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-102.5zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9 0 13.3 10.7 24 24 24 10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9S.1 232.8 5.4 228L130.9 116.5z"],"hourglass-end":[384,512,[8987,"hourglass-3"],"f253","M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9l-67.9 67.9-67.9-67.9C106.1 124.9 96 100.4 96 75z"],grip:[512,512,[58119,"grid-horizontal","grip-horizontal"],"f58d","M88 96c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM280 224l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm192 0l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm0 192l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zM280 288c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM88 416l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40z"],"border-top-left":[448,512,["border-style"],"f853","M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32C28.7 32 0 60.7 0 96L0 448zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm160 32c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM384 192a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm32 160a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"list-ul":[512,512,["list-dots"],"f0ca","M48 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM48 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM96 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z"],"people-robbery":[576,512,[],"e536","M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6 0 191.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z"],"mobile-button":[384,512,[],"f10b","M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 464c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z"],"arrow-down-a-z":[512,512,["sort-alpha-asc","sort-alpha-down"],"f15d","M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm182-340.9c50.7 101.3 77.3 154.7 80 160 7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9c2.7-5.3 29.3-58.7 80-160 5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 135.6l-20.2 40.4 40.4 0-20.2-40.4zM288 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 416 448 416c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l73.4-73.4-50.7 0c-17.7 0-32-14.3-32-32z"],"money-bill":[512,512,[],"f0d6","M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm192 24c0 4.4-3.6 8.1-8 7.5-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48zM64 328c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zm8-136.5c-4.4 .5-8-3.1-8-7.5l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5zm368 129c4.4-.5 8 3.1 8 7.5l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5z"],"circle-minus":[512,512,["minus-circle"],"f056","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM168 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"arrow-pointer":[448,512,["mouse-pointer"],"f245","M77.3 2.5c8.1-4.1 17.9-3.2 25.1 2.3l320 239.9c8.3 6.2 11.6 17 8.4 26.8s-12.4 16.4-22.8 16.4l-152.3 0 88.9 177.7c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-88.9-177.7-91.3 121.8c-6.2 8.3-17 11.6-26.8 8.4S64 434.3 64 424L64 24c0-9.1 5.1-17.4 13.3-21.5z"],"square-share-nodes":[448,512,["share-alt-square"],"f1e1","M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM368 160c0 35.3-28.7 64-64 64-15.4 0-29.5-5.4-40.6-14.5l-85.3 46.5 85.3 46.5c11-9.1 25.2-14.5 40.6-14.5 35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L158.5 300c-11.7 12.3-28.2 20-46.5 20-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3 0-35.3 28.7-64 64-64s64 28.7 64 64z"],"table-cells-large":[448,512,["th-large"],"f009","M384 96l-128 0 0 128 128 0 0-128zm64 128l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 128zM64 288l0 128 128 0 0-128-128 0zm128-64l0-128-128 0 0 128 128 0zm64 64l0 128 128 0 0-128-128 0z"],cat:[576,512,[128008],"f6be","M64 96c53 0 96 43 96 96l0 85.8c29.7-44.7 77.8-76.2 133.4-84 25.6 60 85.2 102.1 154.6 102.1 10.9 0 21.6-1.1 32-3.1L480 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8-136 108.8 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-224c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 158.2 32 144.6 32 128 32 110.3 46.3 96 64 96zM533.8 3.2C544.2-5.5 560 1.9 560 15.5L560 128c0 61.9-50.1 112-112 112S336 189.9 336 128l0-112.5c0-13.6 15.8-21 26.2-12.3L416 48 480 48 533.8 3.2zM400 108a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm96 0a20 20 0 1 0 0 40 20 20 0 1 0 0-40z"],"calendar-week":[448,512,[],"f784","M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-192 0z"],"code-compare":[512,512,[],"e13a","M198.8 1.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S184 145.7 184 136l0-24-24 0c-17.7 0-32 14.3-32 32l0 214.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L64 144c0-53 43-96 96-96l24 0 0-24c0-9.7 5.8-18.5 14.8-22.2zM392 80a24 24 0 1 0 48 0 24 24 0 1 0 -48 0zm-8 73.3c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L448 368c0 53-43 96-96 96l-24 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S328 366.3 328 376l0 24 24 0c17.7 0 32-14.3 32-32l0-214.7zM72 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z"],"road-circle-xmark":[640,512,[],"e566","M287.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.6 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.2c35.2-40 86.7-65.2 144.2-65.2 9 0 17.8 .6 26.4 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.5 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"],pallet:[576,512,[],"f482","M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320zm96 64l128 0 0 64-128 0 0-64zm192 0l128 0 0 64-128 0 0-64z"],"cake-candles":[448,512,[127874,"birthday-cake","cake"],"f1fd","M86.4-10.5L61.8 31.6C58 38.1 56 45.6 56 53.2L56 56c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zm128 0L189.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zM317.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5L317.8 31.6zM128 160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.5C26.7 226.6 0 262.2 0 304l0 20.8c20.9 1.3 41.6 7.3 60.3 18l7.1 4.1c26.3 15 58.9 13.4 83.6-4.2 43.7-31.2 102.3-31.2 146 0 24.6 17.6 57.3 19.3 83.6 4.2l7.1-4.1c18.7-10.7 39.3-16.7 60.3-18l0-20.8c0-41.8-26.7-77.4-64-90.5l0-53.5c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 373c-12.7 1.2-25.1 5-36.5 11.5l-7.1 4.1c-42.6 24.3-95.4 21.7-135.3-6.8-27-19.3-63.2-19.3-90.2 0-39.9 28.5-92.7 31.2-135.3 6.8l-7.1-4.1C25.1 378 12.7 374.1 0 373l0 75c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-75z"],"bug-slash":[576,512,[],"e490","M7-24.9c9.4-9.4 24.6-9.4 33.9 0L241.8 176 344 176c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4s7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 9.5-.8 18.7-2.4 27.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM398.2 468c-23.2 22.1-53 37.2-86.2 42.2l0-128.4 86.2 86.2zM264 333.8l0 176.4c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c3.3-13.9 9.3-26.7 17.6-37.8L264 333.8zM355.6 128l-82.4 0-72.3-72.3C216.1 22.8 249.4 0 288 0 341 0 384 43 384 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4z"],tarp:[512,512,[],"e57b","M448 64c35.3 0 64 28.7 64 64l0 149.5c0 17-6.7 33.3-18.7 45.3L386.7 429.3c-12 12-28.3 18.7-45.3 18.7L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l384 0zm5.5 208L360 272c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5zM96 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z"],"diagram-predecessor":[448,512,[],"e477","M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 352l-320 0 0 64 320 0 0-64zm64 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64z"],"face-flushed":[512,512,[128563,"flushed"],"f579","M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM168 392c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-96a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z"],"diagram-next":[448,512,[],"e476","M384 224c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l128 0 0 64-32 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S294.5 288 288 288l-32 0 0-64 128 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64l-34 0c5.6 21.7-.5 45.1-16.7 61.3l-64 64c-25 25-65.5 25-90.5 0l-64-64C98.6 333.1 92.4 309.7 98 288l-34 0z"],"anchor-circle-xmark":[640,512,[],"e4ac","M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z"],"person-circle-xmark":[640,512,[],"e543","M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z"],spa:[576,512,[],"f5bb","M169.7 227.5c34.3 18.7 64.5 44.1 88.8 74.5 11.1 13.9 21 28.9 29.4 44.8 8.5-15.9 18.3-30.8 29.4-44.8 24.3-30.5 54.5-55.9 88.8-74.5 41.7-22.7 89.4-35.5 139.7-35.5l9.9 0c11.1 0 20.1 9 20.1 20.1 0 148-119.9 267.9-267.9 267.9l-40.2 0C119.9 480 0 360.1 0 212.1 0 201 9 192 20.1 192l9.9 0c50.4 0 98.1 12.8 139.7 35.5zM303.9 38c16.9 15.9 61.4 63.4 89 142.3-40.1 20.2-75.8 48.2-104.9 82.1-29.2-33.9-64.8-61.8-104.9-82.1 27.6-78.9 72.2-126.4 89-142.3 4.3-4.1 10-6 15.9-6s11.6 2 15.9 6z"],"bars-progress":[448,512,["tasks-alt"],"f828","M288 160l96 0 0-64-96 0 0 64zM0 160L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 224c-26.5 0-48-21.5-48-48l0-16zM160 416l224 0 0-64-224 0 0 64zM0 416l0-80c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-16z"],"heart-circle-check":[576,512,[],"e4fd","M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z"],"mars-stroke-right":[640,512,[9897,"mars-stroke-h"],"f22b","M320.5 256a112 112 0 1 0 -224 0 112 112 0 1 0 224 0zM208.5 80c86.3 0 158.1 62.1 173.1 144.1 1-.1 1.9-.1 2.9-.1l16 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 61.4 0-22.4-28c-11-13.8-8.8-33.9 5-45s33.9-8.8 45 5l64 80c9.3 11.7 9.3 28.3 0 40l-64 80c-11 13.8-31.2 16-45 5s-16-31.2-5-45l22.4-28-61.4 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-16 0c-1 0-1.9 0-2.9-.1-15 82-86.8 144.1-173.1 144.1-97.2 0-176-78.8-176-176s78.8-176 176-176z"],"tower-observation":[448,512,[],"e586","M209.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9-5.6 11.2-16.9 17.7-28.6 17.7l0 80c0 17.7-14.3 32-32 32l-13 0 32 192 45 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l45 0 32-192-13 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7-7.9-15.8-1.5-35 14.3-42.9l160-80zM310.7 448l-86.7-61.9-86.7 61.9 173.4 0zm-153-192l-3.5 21.2 69.9 49.9 69.9-49.9-3.5-21.2-132.7 0zm-12.3 73.9l-10.1 60.6 47.5-33.9-37.4-26.7zm119.9 26.7l47.5 33.9-10.1-60.6-37.4 26.7zM152 128c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z"],"sterling-sign":[384,512,[163,"gbp","pound-sign"],"f154","M91.3 288l-34.8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l21.4 0C37.3 147.3 105.1 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-57.3 0-94.7 59.9-69.7 111.4 3.6 7.4 6.6 14.9 9.1 22.6l149.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-141.2 0c1 35.3-8.7 70.6-28.9 100.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c13.1-19.6 19.2-42.6 18.2-65.4z"],"faucet-drip":[512,512,[128688],"e006","M224 32c-17.7 0-32 14.3-32 32L96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l96 0 0 64-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 224 32 224c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32 0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4l-18.7 0 0-64 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c0-17.7-14.3-32-32-32zM436.8 455.4l-18.2 42.4c-1.8 4.1-2.7 8.6-2.7 13.1l0 1.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.2c0-4.5-.9-8.9-2.7-13.1l-18.2-42.4c-1.9-4.5-6.3-7.4-11.2-7.4s-9.2 2.9-11.2 7.4z"],"circle-info":[512,512,["info-circle"],"f05a","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],feather:[512,512,[129718],"f52d","M352 0c41 0 80.3 16.3 109.2 45.2l5.5 5.5c29 29 45.3 68.3 45.3 109.2 0 24.1-5.7 47.6-16.2 68.8-1.9 3.7-5.3 6.5-9.3 7.7L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l32.2 0c14.3 0 21.4 17.2 11.3 27.3l-22.4 22.4c-1.9 1.9-4.2 3.2-6.7 4l-81 24.3c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2 13.2 0 18.9 15.7 7.8 22.9-41.1 26.6-89.3 41.1-139 41.1l-86 0-48 48c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L79.5 336.5c-5.7 5.7-15.5 1.7-15.5-6.4 0-67.9 27-133 75-181L242.8 45.2C271.7 16.3 311 0 352 0z"],"bowl-rice":[512,512,[],"e2eb","M176 40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 160l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 184c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM104 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM296 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM392 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 16l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z"],"star-half-stroke":[576,512,["star-half-alt"],"f5c0","M288.1 353.6c10 0 19.9 2.3 29 7l74.4 37.9-13-82.5c-3.2-20.2 3.5-40.7 17.9-55.2l59-59.1-82.5-13.1c-20.2-3.2-37.7-15.9-47-34.1l-38-74.4 0 273.6zM457.4 489c-7.3 5.3-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1s17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2z"],"temperature-arrow-down":[512,512,["temperature-down"],"e03f","M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 310.6c-6 6-14.1 9.4-22.6 9.4s-16.6-3.4-22.6-9.4l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-178.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64z"],"mask-ventilator":[640,512,[],"e524","M152.2 192c-15.4 38.3-24.2 77.2-24.2 108.8 0 13.3 1.5 26.2 4.4 38.7l-17-3.4c-29.9-6-51.4-32.2-51.4-62.8l0-81.3 88.2 0zm32.9-64L64 128c-35.3 0-64 28.7-64 64l0 81.3c0 61 43.1 113.5 102.9 125.5l66.3 13.3c18.7 22.1 42.9 40 70.8 51.8l0-87.8c-10.1-14.2-16-31.3-16-49.7 0-49.5 43-134.4 96-134.4 52.5 0 96 84.9 96 134.4 0 18.4-5.9 35.4-16 49.6l0 87.7c27.6-11.8 51.7-29.6 70.4-51.6l66.7-13.3c59.8-12 102.9-64.5 102.9-125.5l0-81.3c0-35.3-28.7-64-64-64l-121.5 0c-34.8-54.2-82.5-96-134.5-96-52.6 0-100.2 41.8-134.9 96zm302.5 64l88.4 0 0 81.3c0 30.5-21.5 56.8-51.4 62.8l-17 3.4c2.9-12.4 4.5-25.4 4.5-38.7 0-31.6-8.9-70.5-24.4-108.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z"],"file-video":[384,512,[],"f1c8","M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM80 304l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-24 35 35c3.2 3.2 7.5 5 12 5 9.4 0 17-7.6 17-17l0-94.1c0-9.4-7.6-17-17-17-4.5 0-8.8 1.8-12 5l-35 35 0-24c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32z"],"arrow-trend-down":[576,512,[],"e097","M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7-169.4-169.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z"],"oil-can":[640,512,[],"f613","M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-176 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30 0 21.3c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192 397.5 166.8c-8.9-4.4-18.7-6.8-28.6-6.8l-80.9 0 0-32 32 0zM96 208l0 86.1-48-21.3 0-64.8 48 0z"],"people-carry-box":[576,512,["people-carry"],"f4ce","M64-32A56 56 0 1 1 64 80 56 56 0 1 1 64-32zM0 171.1c0-32.6 26.5-59.1 59.1-59.1 23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c5.8 8.2 15.1 13.1 25.1 13.4l0-96c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c10-.3 19.3-5.2 25.1-13.4l48.7-68.2c13.6-19.1 35.6-30.4 59.1-30.4 32.6 0 59.1 26.5 59.1 59.1L576 272c0 30.2-14.2 58.7-38.4 76.8l-76.8 57.6c-8.1 6-12.8 15.5-12.8 25.6l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-30.2 14.2-58.7 38.4-76.8l41.6-31.2 0-80.1-2.8 3.9c-18 25.2-47.1 40.2-78.1 40.2L352 288c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-120.4 0c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C177.8 373.3 192 401.8 192 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L38.4 348.8C14.2 330.7 0 302.2 0 272L0 171.1zM0 379.3c3.1 2.7 6.3 5.4 9.6 7.9L64 428 64 512c0 17.7-14.3 32-32 32S0 529.7 0 512L0 379.3zM568 24a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zm8 488c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-84 54.4-40.8c3.3-2.5 6.5-5.1 9.6-7.9L576 512z"],chair:[448,512,[129681],"f6c0","M152 256l0-181.8c-24.5 20.5-40 51.4-40 85.8l0 96 40 0zm48 0l48 0 0-205.4c-7.7-1.7-15.8-2.6-24-2.6s-16.3 .9-24 2.6L200 256zM296 74.2l0 181.8 40 0 0-96c0-34.4-15.5-65.2-40-85.8zM32 256l32 0 0-96C64 71.6 135.6 0 224 0S384 71.6 384 160l0 96 32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-256 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z"],wind:[512,512,[],"f72e","M288 32c0 17.7 14.3 32 32 32l40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L32 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l328 0c48.6 0 88-39.4 88-88S408.6 0 360 0L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l40 0c48.6 0 88-39.4 88-88s-39.4-88-88-88L32 336c-17.7 0-32 14.3-32 32s14.3 32 32 32l136 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z"],"layer-group":[512,512,[],"f5fd","M232.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 149.8C5.4 145.8 0 137.3 0 128s5.4-17.9 13.9-21.8L232.5 5.2zM48.1 218.4l164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 277.8C5.4 273.8 0 265.3 0 256s5.4-17.9 13.9-21.8l34.1-15.8zM13.9 362.2l34.1-15.8 164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 405.8C5.4 401.8 0 393.3 0 384s5.4-17.9 13.9-21.8z"],"head-side-mask":[512,512,[],"e063","M445.9 193c-.1-.4-.2-.9-.2-1.3-15.7-108.4-108.9-191.7-221.7-191.7-85 0-159 47.4-196.9 117.2L283.3 288 456 288 442.9 336 336 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l98.2 0-8.7 32-89.5 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80.6 0c-6.7 19.1-24.8 32-45.3 32L288 464c-17.7 0-32-14.3-32-32l0-104.5-247.5-165C3 182.1 0 202.7 0 224 0 278 19.1 327.5 50.9 366.2 58.9 375.9 64 387.8 64 400.4L64 464c0 26.5 21.5 48 48 48l127.3 0 .7 0 131.3 0c44.9 0 83.8-31.1 93.6-74.9l33.9-150.3c3.3-14.4-.3-29.5-9.7-41L445.9 193zM288 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z"],hands:[512,512,["sign-language","signing"],"f2a7","M512 160l-.1 72.6c0 44.8-17.6 87.1-47.9 118.4-.3-77-40.1-148.4-105.4-189.3l-1.9-1.2c2.5-3.7 2.8-8.6 .4-12.7l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S330 5 336.6 16.5l68 117.8 0 0 0 0 43.3 75 .1-49.3c0-17.7 14.4-32 32-32s32 14.4 32 32zM298.4 124.2c-14.1-8.8-29.8-12.7-45.2-12.1L216.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l67.1 116.2-27-16.9zM211.9 88.5l16.4 28.4c-15.1 5.5-28.6 15.6-38.3 29.7l-19.7-34.2c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l12.5 21.7c-2 8.6-2.5 17.5-1.7 26.1l-4.3 0 0 0-34.4 0-13.7-23.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM228.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C384.7 234.7 416 291.2 416 352l0 8c0 83.9-68.1 152-152 152L88 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L24 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0 0 0 0 0 93.2 0-46.2-28.9c-15-9.4-19.5-29.1-10.2-44.1z"],tablets:[512,512,[],"f490","M495.3 76.6c-4.6-8.7-16.3-9.7-23.3-2.7L297.9 248c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4zM240.7 211.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 40c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM144 224C79.2 224 24.4 266.8 6.3 325.6 3.4 335.1 11 344 20.9 344l246.2 0c9.9 0 17.5-8.9 14.6-18.4-.9-3-1.9-5.9-3-8.7-37.4-18.1-68-48-87-84.8-14.9-5.2-30.9-8.1-47.6-8.1zM281.7 410.4c2.9-9.5-4.7-18.4-14.6-18.4L20.9 392C11 392 3.4 400.9 6.3 410.4 24.4 469.2 79.2 512 144 512s119.6-42.8 137.7-101.6z"],"weight-hanging":[512,512,[],"f5cd","M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32 0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32l-21.8 0c-28.3 0-53.2 18.5-61.3 45.6L2.4 440.2C.8 445.4 0 450.8 0 456.2 0 487 25 512 55.8 512l400.4 0c30.8 0 55.8-25 55.8-55.8 0-5.4-.8-10.8-2.4-16l-80-266.5c-8.1-27.1-33-45.6-61.3-45.6l-21.8 0z"],dice:[512,512,[127922],"f522","M141.4 2.3C103-8 63.5 14.8 53.3 53.2L2.5 242.7C-7.8 281.1 15 320.6 53.4 330.9l189.5 50.8c38.4 10.3 77.9-12.5 88.2-50.9l50.8-189.5c10.3-38.4-12.5-77.9-50.9-88.2L141.4 2.3zm23 205.7a32 32 0 1 1 55.4-32 32 32 0 1 1 -55.4 32zM79.2 220.3a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm185 96.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zm9-208.4a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm-121 14.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zM418 192L377.4 343.2c-17.2 64-83 102-147 84.9l-38.3-10.3 0 30.2c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L418 192z"],"shop-slash":[576,512,["store-alt-slash"],"e070","M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-190.3c26.8-1.9 48-24.3 48-51.6 0-8-1.9-16-5.5-23.2L497.7 67.4C486.8 45.7 464.7 32 440.4 32L135.6 32c-10.7 0-21 2.7-30.2 7.6L41-24.9zM321.8 256L448 256 448 382.2 321.8 256zM352 421.8l-64-64 0 10.2c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16l0-112 58.2 0-134.8-134.8-29.9 59.9c-3.6 7.2-5.5 15.1-5.5 23.2 0 27.3 21.2 49.7 48 51.6L64 432c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-10.2z"],"sort-down":[384,512,["sort-desc"],"f0dd","M32 288c-12.9 0-24.6 7.8-29.6 19.8S.2 333.5 9.4 342.6l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288z"],"peseta-sign":[448,512,[],"e221","M112 32C94.3 32 80 46.3 80 64l0 104-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 232c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c80.2 0 146.6-59 158.2-136l25.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-25.8 0C386.6 91 320.2 32 240 32L112 32zM333 168l-189 0 0-72 96 0c44.7 0 82.3 30.6 93 72zM144 216l189 0c-10.7 41.4-48.2 72-93 72l-96 0 0-72z"],"tablet-screen-button":[448,512,["tablet-alt"],"f3fa","M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 432a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64l-320 0 0 288 320 0 0-288z"],"hand-holding-dollar":[576,512,["hand-holding-usd"],"f4c0","M288-16c-13.3 0-24 10.7-24 24l0 12-1.8 0c-36.6 0-66.2 29.7-66.2 66.2 0 33.4 24.9 61.6 58 65.7l61 7.6c5.1 .6 9 5 9 10.2 0 5.7-4.6 10.2-10.2 10.2L240 180c-15.5 0-28 12.5-28 28s12.5 28 28 28l24 0 0 12c0 13.3 10.7 24 24 24s24-10.7 24-24l0-12 1.8 0c36.6 0 66.2-29.7 66.2-66.2 0-33.4-24.9-61.6-58-65.7l-61-7.6c-5.1-.6-9-5-9-10.2 0-5.7 4.6-10.2 10.2-10.2L328 76c15.5 0 28-12.5 28-28s-12.5-28-28-28l-16 0 0-12c0-13.3-10.7-24-24-24zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z"],shield:[512,512,[128737,"shield-blank"],"f132","M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0z"],"face-laugh":[512,512,["laugh"],"f599","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z"],"hands-holding":[640,512,[],"f4c2","M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0c-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c24.1 24.1 39.9 39.9 47.2 47.2 11 11 9.2 29.2-3.7 37.8-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 104zm480 0l0 160.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1-12.9-8.6-14.7-26.9-3.7-37.8 7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-24.1 24.1-39.9 39.9-47.2 47.2l0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z"],"cart-shopping":[640,512,[128722,"shopping-cart"],"f07a","M24-16C10.7-16 0-5.3 0 8S10.7 32 24 32l45.3 0c3.9 0 7.2 2.8 7.9 6.6l52.1 286.3c6.2 34.2 36 59.1 70.8 59.1L456 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-255.9 0c-11.6 0-21.5-8.3-23.6-19.7l-5.1-28.3 303.6 0c30.8 0 57.2-21.9 62.9-52.2L568.9 69.9C572.6 50.2 557.5 32 537.4 32l-412.7 0-.4-2c-4.8-26.6-28-46-55.1-46L24-16zM208 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z"],octagon:[512,512,[128721],"f306","M188.6 .1c-17 0-33.3 6.7-45.3 18.7L19.2 143C7.2 155 .5 171.2 .5 188.2l0 135.6c0 17 6.7 33.3 18.7 45.3L143.4 493.2c12 12 28.3 18.7 45.3 18.7l135.6 0c17 0 33.3-6.7 45.3-18.7L493.6 369c12-12 18.7-28.3 18.7-45.3l0-135.6c0-17-6.7-33.3-18.7-45.3L369.5 18.8c-12-12-28.3-18.7-45.3-18.7L188.6 .1z"],"hand-pointer":[448,512,[],"f25a","M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2 20.6 0 38.2 13 45 31.2 8.8-9.3 21.2-15.2 35-15.2 25.3 0 46 19.5 47.9 44.3 8.5-7.7 19.8-12.3 32.1-12.3 26.5 0 48 21.5 48 48l0 112c0 70.7-57.3 128-128 128l-85.3 0c-5 0-9.9-.3-14.7-1-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7 0-322.7zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z"],registered:[512,512,[174],"f25d","M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM200 144l80 0c39.8 0 72 32.2 72 72 0 28.9-17 53.8-41.6 65.3l30.2 50.3c6.8 11.4 3.1 26.1-8.2 32.9s-26.1 3.1-32.9-8.2l-41-68.3-34.4 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24zm72 96l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0 48 48 0z"],"house-signal":[576,512,[],"e012","M515.9 240l-19.9 0 0 144c0 35.3-28.7 64-64 64l-137 0c-24-91.7-93.5-165-183-194.3l0-13.7-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L276.5-4.9C283.9-12 293.7-16 304-16s20.1 4 27.5 11.1L535.4 191.7c5.5 5.3 8.6 12.6 8.6 20.2 0 15.5-12.6 28.1-28.1 28.1zM280 192c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0zM24 288c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 408c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24z"],"bangladeshi-taka-sign":[384,512,[],"e2e6","M36 32.3C18.4 30.1 2.4 42.5 .3 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8l0 31.5-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 176c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-176 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-31.5C128 80.1 92 39.2 43.9 33.2l-7.9-1z"]};SU(function(){JV("fas",zQ),JV("fa-solid",zQ)})})();(function(){function K(x,y){(y==null||y>x.length)&&(y=x.length);for(var c=0,l=Array(y);c=x.length?{done:!0}:{done:!1,value:x[l++]}},e:function(J0){throw J0},f:i}}throw TypeError(`Invalid attempt to iterate non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var M0,X0=!0,S0=!1;return{s:function(){c=c.call(x)},n:function(){var J0=c.next();return X0=J0.done,J0},e:function(J0){S0=!0,M0=J0},f:function(){try{X0||c.return==null||c.return()}finally{if(S0)throw M0}}}}function M(x,y,c){return(y=j(y))in x?Object.defineProperty(x,y,{value:c,enumerable:!0,configurable:!0,writable:!0}):x[y]=c,x}function A(x,y){if(typeof y!="function"&&y!==null)throw TypeError("Super expression must either be null or a function");x.prototype=Object.create(y&&y.prototype,{constructor:{value:x,writable:!0,configurable:!0}}),Object.defineProperty(x,"prototype",{writable:!1}),y&&v(x,y)}function R(x){if(typeof Symbol<"u"&&x[Symbol.iterator]!=null||x["@@iterator"]!=null)return Array.from(x)}function D(x,y){var c=x==null?null:typeof Symbol<"u"&&x[Symbol.iterator]||x["@@iterator"];if(c!=null){var l,i,M0,X0,S0=[],J0=!0,e0=!1;try{if(M0=(c=c.call(x)).next,y===0){if(Object(c)!==c)return;J0=!1}else for(;!(J0=(l=M0.call(c)).done)&&(S0.push(l.value),S0.length!==y);J0=!0);}catch(U1){e0=!0,i=U1}finally{try{if(!J0&&c.return!=null&&(X0=c.return(),Object(X0)!==X0))return}finally{if(e0)throw i}}return S0}}function F(){throw TypeError(`Invalid attempt to destructure non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function P(){throw TypeError(`Invalid attempt to spread non-iterable instance. +In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function G(x,y){var c=Object.keys(x);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(x);y&&(l=l.filter(function(i){return Object.getOwnPropertyDescriptor(x,i).enumerable})),c.push.apply(c,l)}return c}function T(x){for(var y=1;y]+)(>|$)/g,function(J0,e0,U1){if(U1==="")return J0;var Q1=X0[e0];return Array.isArray(Q1)?"$"+Q1.join("$"):typeof Q1=="number"?"$"+Q1:""}))}if(typeof M0=="function"){var S0=this;return x[Symbol.replace].call(this,i,function(){var J0=arguments;return typeof J0[J0.length-1]!="object"&&(J0=[].slice.call(J0)).push(l(J0,S0)),M0.apply(this,J0)})}return x[Symbol.replace].call(this,i,M0)},N.apply(this,arguments)}var m=function(){},z0={},L0={},s=null,Z0={mark:m,measure:m};try{if(typeof window<"u")z0=window;if(typeof document<"u")L0=document;if(typeof MutationObserver<"u")s=MutationObserver;if(typeof performance<"u")Z0=performance}catch(x){}var L=z0.navigator||{},O=L.userAgent,X=O===void 0?"":O,q=z0,W=L0,C=s,I=Z0,$=!!q.document,Z=!!W.documentElement&&!!W.head&&typeof W.addEventListener==="function"&&typeof W.createElement==="function",S=~X.indexOf("MSIE")||~X.indexOf("Trident/"),B,E=/fa(k|kd|s|r|l|t|d|dr|dl|dt|b|slr|slpr|wsb|tl|ns|nds|es|jr|jfr|jdr|usb|ufsb|udsb|cr|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\-\ ]/,w=/Font ?Awesome ?([567 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit|Notdog Duo|Notdog|Chisel|Etch|Thumbprint|Jelly Fill|Jelly Duo|Jelly|Utility|Utility Fill|Utility Duo|Slab Press|Slab|Whiteboard)?.*/i,h={classic:{fa:"solid",fas:"solid","fa-solid":"solid",far:"regular","fa-regular":"regular",fal:"light","fa-light":"light",fat:"thin","fa-thin":"thin",fab:"brands","fa-brands":"brands"},duotone:{fa:"solid",fad:"solid","fa-solid":"solid","fa-duotone":"solid",fadr:"regular","fa-regular":"regular",fadl:"light","fa-light":"light",fadt:"thin","fa-thin":"thin"},sharp:{fa:"solid",fass:"solid","fa-solid":"solid",fasr:"regular","fa-regular":"regular",fasl:"light","fa-light":"light",fast:"thin","fa-thin":"thin"},"sharp-duotone":{fa:"solid",fasds:"solid","fa-solid":"solid",fasdr:"regular","fa-regular":"regular",fasdl:"light","fa-light":"light",fasdt:"thin","fa-thin":"thin"},slab:{"fa-regular":"regular",faslr:"regular"},"slab-press":{"fa-regular":"regular",faslpr:"regular"},thumbprint:{"fa-light":"light",fatl:"light"},whiteboard:{"fa-semibold":"semibold",fawsb:"semibold"},notdog:{"fa-solid":"solid",fans:"solid"},"notdog-duo":{"fa-solid":"solid",fands:"solid"},etch:{"fa-solid":"solid",faes:"solid"},jelly:{"fa-regular":"regular",fajr:"regular"},"jelly-fill":{"fa-regular":"regular",fajfr:"regular"},"jelly-duo":{"fa-regular":"regular",fajdr:"regular"},chisel:{"fa-regular":"regular",facr:"regular"},utility:{"fa-semibold":"semibold",fausb:"semibold"},"utility-duo":{"fa-semibold":"semibold",faudsb:"semibold"},"utility-fill":{"fa-semibold":"semibold",faufsb:"semibold"}},u={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},t=["fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone","fa-thumbprint","fa-whiteboard","fa-notdog","fa-notdog-duo","fa-chisel","fa-etch","fa-jelly","fa-jelly-fill","fa-jelly-duo","fa-slab","fa-slab-press","fa-utility","fa-utility-duo","fa-utility-fill"],F0="classic",K0="duotone",r="sharp",A0="sharp-duotone",e="chisel",Y0="etch",r0="jelly",b="jelly-duo",o="jelly-fill",R0="notdog",Q0="notdog-duo",H0="slab",N0="slab-press",d="thumbprint",a="utility",o0="utility-duo",V0="utility-fill",W0="whiteboard",H1="Classic",G0="Duotone",T0="Sharp",v1="Sharp Duotone",P0="Chisel",E0="Etch",i1="Jelly",x0="Jelly Duo",k0="Jelly Fill",N1="Notdog",w0="Notdog Duo",f0="Slab",zK="Slab Press",c0="Thumbprint",g0="Utility",VK="Utility Duo",u0="Utility Fill",y0="Whiteboard",g1=[F0,K0,r,A0,e,Y0,r0,b,o,R0,Q0,H0,N0,d,a,o0,V0,W0],s0=(B={},M(M(M(M(M(M(M(M(M(M(B,F0,H1),K0,G0),r,T0),A0,v1),e,P0),Y0,E0),r0,i1),b,x0),o,k0),R0,N1),M(M(M(M(M(M(M(M(B,Q0,w0),H0,f0),N0,zK),d,c0),a,g0),o0,VK),V0,u0),W0,y0)),b0={classic:{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},duotone:{900:"fad",400:"fadr",300:"fadl",100:"fadt"},sharp:{900:"fass",400:"fasr",300:"fasl",100:"fast"},"sharp-duotone":{900:"fasds",400:"fasdr",300:"fasdl",100:"fasdt"},slab:{400:"faslr"},"slab-press":{400:"faslpr"},whiteboard:{600:"fawsb"},thumbprint:{300:"fatl"},notdog:{900:"fans"},"notdog-duo":{900:"fands"},etch:{900:"faes"},chisel:{400:"facr"},jelly:{400:"fajr"},"jelly-fill":{400:"fajfr"},"jelly-duo":{400:"fajdr"},utility:{600:"fausb"},"utility-duo":{600:"faudsb"},"utility-fill":{600:"faufsb"}},t1={"Font Awesome 7 Free":{900:"fas",400:"far"},"Font Awesome 7 Pro":{900:"fas",400:"far",normal:"far",300:"fal",100:"fat"},"Font Awesome 7 Brands":{400:"fab",normal:"fab"},"Font Awesome 7 Duotone":{900:"fad",400:"fadr",normal:"fadr",300:"fadl",100:"fadt"},"Font Awesome 7 Sharp":{900:"fass",400:"fasr",normal:"fasr",300:"fasl",100:"fast"},"Font Awesome 7 Sharp Duotone":{900:"fasds",400:"fasdr",normal:"fasdr",300:"fasdl",100:"fasdt"},"Font Awesome 7 Jelly":{400:"fajr",normal:"fajr"},"Font Awesome 7 Jelly Fill":{400:"fajfr",normal:"fajfr"},"Font Awesome 7 Jelly Duo":{400:"fajdr",normal:"fajdr"},"Font Awesome 7 Slab":{400:"faslr",normal:"faslr"},"Font Awesome 7 Slab Press":{400:"faslpr",normal:"faslpr"},"Font Awesome 7 Thumbprint":{300:"fatl",normal:"fatl"},"Font Awesome 7 Notdog":{900:"fans",normal:"fans"},"Font Awesome 7 Notdog Duo":{900:"fands",normal:"fands"},"Font Awesome 7 Etch":{900:"faes",normal:"faes"},"Font Awesome 7 Chisel":{400:"facr",normal:"facr"},"Font Awesome 7 Whiteboard":{600:"fawsb",normal:"fawsb"},"Font Awesome 7 Utility":{600:"fausb",normal:"fausb"},"Font Awesome 7 Utility Duo":{600:"faudsb",normal:"faudsb"},"Font Awesome 7 Utility Fill":{600:"faufsb",normal:"faufsb"}},h0=new Map([["classic",{defaultShortPrefixId:"fas",defaultStyleId:"solid",styleIds:["solid","regular","light","thin","brands"],futureStyleIds:[],defaultFontWeight:900}],["duotone",{defaultShortPrefixId:"fad",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["sharp",{defaultShortPrefixId:"fass",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["sharp-duotone",{defaultShortPrefixId:"fasds",defaultStyleId:"solid",styleIds:["solid","regular","light","thin"],futureStyleIds:[],defaultFontWeight:900}],["chisel",{defaultShortPrefixId:"facr",defaultStyleId:"regular",styleIds:["regular"],futureStyleIds:[],defaultFontWeight:400}],["etch",{defaultShortPrefixId:"faes",defaultStyleId:"solid",styleIds:["solid"],futureStyleIds:[],defaultFontWeight:900}],["jelly",{defaultShortPrefixId:"fajr",defaultStyleId:"regular",styleIds:["regular"],futureStyleIds:[],defaultFontWeight:400}],["jelly-duo",{defaultShortPrefixId:"fajdr",defaultStyleId:"regular",styleIds:["regular"],futureStyleIds:[],defaultFontWeight:400}],["jelly-fill",{defaultShortPrefixId:"fajfr",defaultStyleId:"regular",styleIds:["regular"],futureStyleIds:[],defaultFontWeight:400}],["notdog",{defaultShortPrefixId:"fans",defaultStyleId:"solid",styleIds:["solid"],futureStyleIds:[],defaultFontWeight:900}],["notdog-duo",{defaultShortPrefixId:"fands",defaultStyleId:"solid",styleIds:["solid"],futureStyleIds:[],defaultFontWeight:900}],["slab",{defaultShortPrefixId:"faslr",defaultStyleId:"regular",styleIds:["regular"],futureStyleIds:[],defaultFontWeight:400}],["slab-press",{defaultShortPrefixId:"faslpr",defaultStyleId:"regular",styleIds:["regular"],futureStyleIds:[],defaultFontWeight:400}],["thumbprint",{defaultShortPrefixId:"fatl",defaultStyleId:"light",styleIds:["light"],futureStyleIds:[],defaultFontWeight:300}],["utility",{defaultShortPrefixId:"fausb",defaultStyleId:"semibold",styleIds:["semibold"],futureStyleIds:[],defaultFontWeight:600}],["utility-duo",{defaultShortPrefixId:"faudsb",defaultStyleId:"semibold",styleIds:["semibold"],futureStyleIds:[],defaultFontWeight:600}],["utility-fill",{defaultShortPrefixId:"faufsb",defaultStyleId:"semibold",styleIds:["semibold"],futureStyleIds:[],defaultFontWeight:600}],["whiteboard",{defaultShortPrefixId:"fawsb",defaultStyleId:"semibold",styleIds:["semibold"],futureStyleIds:[],defaultFontWeight:600}]]),g={chisel:{regular:"facr"},classic:{brands:"fab",light:"fal",regular:"far",solid:"fas",thin:"fat"},duotone:{light:"fadl",regular:"fadr",solid:"fad",thin:"fadt"},etch:{solid:"faes"},jelly:{regular:"fajr"},"jelly-duo":{regular:"fajdr"},"jelly-fill":{regular:"fajfr"},notdog:{solid:"fans"},"notdog-duo":{solid:"fands"},sharp:{light:"fasl",regular:"fasr",solid:"fass",thin:"fast"},"sharp-duotone":{light:"fasdl",regular:"fasdr",solid:"fasds",thin:"fasdt"},slab:{regular:"faslr"},"slab-press":{regular:"faslpr"},thumbprint:{light:"fatl"},utility:{semibold:"fausb"},"utility-duo":{semibold:"faudsb"},"utility-fill":{semibold:"faufsb"},whiteboard:{semibold:"fawsb"}},n=["fak","fa-kit","fakd","fa-kit-duotone"],U0={kit:{fak:"kit","fa-kit":"kit"},"kit-duotone":{fakd:"kit-duotone","fa-kit-duotone":"kit-duotone"}},O0=["kit"],i0="kit",C0="kit-duotone",B0="Kit",k1="Kit Duotone",l0=M(M({},i0,B0),C0,k1),d0={kit:{"fa-kit":"fak"},"kit-duotone":{"fa-kit-duotone":"fakd"}},QK={"Font Awesome Kit":{400:"fak",normal:"fak"},"Font Awesome Kit Duotone":{400:"fakd",normal:"fakd"}},p0={kit:{fak:"fa-kit"},"kit-duotone":{fakd:"fa-kit-duotone"}},_0={kit:{kit:"fak"},"kit-duotone":{"kit-duotone":"fakd"}},P1,Z1={GROUP:"duotone-group",SWAP_OPACITY:"swap-opacity",PRIMARY:"primary",SECONDARY:"secondary"},Y1=["fa-classic","fa-duotone","fa-sharp","fa-sharp-duotone","fa-thumbprint","fa-whiteboard","fa-notdog","fa-notdog-duo","fa-chisel","fa-etch","fa-jelly","fa-jelly-fill","fa-jelly-duo","fa-slab","fa-slab-press","fa-utility","fa-utility-duo","fa-utility-fill"],F1="classic",A1="duotone",y1="sharp",h1="sharp-duotone",p1="chisel",c1="etch",u1="jelly",b1="jelly-duo",l1="jelly-fill",LK="notdog",d1="notdog-duo",s1="slab",o1="slab-press",m1="thumbprint",ZK="utility",n1="utility-duo",cV="utility-fill",uV="whiteboard",bV="Classic",QQ="Duotone",AU="Sharp",RU="Sharp Duotone",$U="Chisel",T1="Etch",FU="Jelly",fK="Jelly Duo",UQ="Jelly Fill",Pz="Notdog",AV="Notdog Duo",Cz="Slab",RV="Slab Press",Iz="Thumbprint",$V="Utility",Gz="Utility Duo",DU="Utility Fill",Tz="Whiteboard",G6=(P1={},M(M(M(M(M(M(M(M(M(M(P1,F1,bV),A1,QQ),y1,AU),h1,RU),p1,$U),c1,T1),u1,FU),b1,fK),l1,UQ),LK,Pz),M(M(M(M(M(M(M(M(P1,d1,AV),s1,Cz),o1,RV),m1,Iz),ZK,$V),n1,Gz),cV,DU),uV,Tz)),SU="kit",E1="kit-duotone",sK="Kit",HQ="Kit Duotone",JV=M(M({},SU,sK),E1,HQ),zQ={classic:{"fa-brands":"fab","fa-duotone":"fad","fa-light":"fal","fa-regular":"far","fa-solid":"fas","fa-thin":"fat"},duotone:{"fa-regular":"fadr","fa-light":"fadl","fa-thin":"fadt"},sharp:{"fa-solid":"fass","fa-regular":"fasr","fa-light":"fasl","fa-thin":"fast"},"sharp-duotone":{"fa-solid":"fasds","fa-regular":"fasdr","fa-light":"fasdl","fa-thin":"fasdt"},slab:{"fa-regular":"faslr"},"slab-press":{"fa-regular":"faslpr"},whiteboard:{"fa-semibold":"fawsb"},thumbprint:{"fa-light":"fatl"},notdog:{"fa-solid":"fans"},"notdog-duo":{"fa-solid":"fands"},etch:{"fa-solid":"faes"},jelly:{"fa-regular":"fajr"},"jelly-fill":{"fa-regular":"fajfr"},"jelly-duo":{"fa-regular":"fajdr"},chisel:{"fa-regular":"facr"},utility:{"fa-semibold":"fausb"},"utility-duo":{"fa-semibold":"faudsb"},"utility-fill":{"fa-semibold":"faufsb"}},q0={classic:["fas","far","fal","fat","fad"],duotone:["fadr","fadl","fadt"],sharp:["fass","fasr","fasl","fast"],"sharp-duotone":["fasds","fasdr","fasdl","fasdt"],slab:["faslr"],"slab-press":["faslpr"],whiteboard:["fawsb"],thumbprint:["fatl"],notdog:["fans"],"notdog-duo":["fands"],etch:["faes"],jelly:["fajr"],"jelly-fill":["fajfr"],"jelly-duo":["fajdr"],chisel:["facr"],utility:["fausb"],"utility-duo":["faudsb"],"utility-fill":["faufsb"]},I0={classic:{fab:"fa-brands",fad:"fa-duotone",fal:"fa-light",far:"fa-regular",fas:"fa-solid",fat:"fa-thin"},duotone:{fadr:"fa-regular",fadl:"fa-light",fadt:"fa-thin"},sharp:{fass:"fa-solid",fasr:"fa-regular",fasl:"fa-light",fast:"fa-thin"},"sharp-duotone":{fasds:"fa-solid",fasdr:"fa-regular",fasdl:"fa-light",fasdt:"fa-thin"},slab:{faslr:"fa-regular"},"slab-press":{faslpr:"fa-regular"},whiteboard:{fawsb:"fa-semibold"},thumbprint:{fatl:"fa-light"},notdog:{fans:"fa-solid"},"notdog-duo":{fands:"fa-solid"},etch:{faes:"fa-solid"},jelly:{fajr:"fa-regular"},"jelly-fill":{fajfr:"fa-regular"},"jelly-duo":{fajdr:"fa-regular"},chisel:{facr:"fa-regular"},utility:{fausb:"fa-semibold"},"utility-duo":{faudsb:"fa-semibold"},"utility-fill":{faufsb:"fa-semibold"}},j0=["fa-solid","fa-regular","fa-light","fa-thin","fa-duotone","fa-brands","fa-semibold"],n0=["fa","fas","far","fal","fat","fad","fadr","fadl","fadt","fab","fass","fasr","fasl","fast","fasds","fasdr","fasdl","fasdt","faslr","faslpr","fawsb","fatl","fans","fands","faes","fajr","fajfr","fajdr","facr","fausb","faudsb","faufsb"].concat(Y1,j0),UK=["solid","regular","light","thin","duotone","brands","semibold"],uQ=[1,2,3,4,5,6,7,8,9,10],QP=uQ.concat([11,12,13,14,15,16,17,18,19,20]),UP=["aw","fw","pull-left","pull-right"],HP=[].concat(k(Object.keys(q0)),UK,UP,["2xs","xs","sm","lg","xl","2xl","beat","border","fade","beat-fade","bounce","flip-both","flip-horizontal","flip-vertical","flip","inverse","layers","layers-bottom-left","layers-bottom-right","layers-counter","layers-text","layers-top-left","layers-top-right","li","pull-end","pull-start","pulse","rotate-180","rotate-270","rotate-90","rotate-by","shake","spin-pulse","spin-reverse","spin","stack-1x","stack-2x","stack","ul","width-auto","width-fixed",Z1.GROUP,Z1.SWAP_OPACITY,Z1.PRIMARY,Z1.SECONDARY]).concat(uQ.map(function(x){return"".concat(x,"x")})).concat(QP.map(function(x){return"w-".concat(x)})),zP={"Font Awesome 5 Free":{900:"fas",400:"far"},"Font Awesome 5 Pro":{900:"fas",400:"far",normal:"far",300:"fal"},"Font Awesome 5 Brands":{400:"fab",normal:"fab"},"Font Awesome 5 Duotone":{900:"fad"}},CQ="___FONT_AWESOME___",T6=16,GM="fa",TM="svg-inline--fa",PU="data-fa-i2svg",E6="data-fa-pseudo-element",LP="data-fa-pseudo-element-pending",B6="data-prefix",J6="data-icon",EM="fontawesome-i2svg",ZP="async",YP=["HTML","HEAD","STYLE","SCRIPT"],BM=["::before","::after",":before",":after"],v6=function(){try{return!0}catch(x){return!1}}();function tH(x){return new Proxy(x,{get:function(c,l){return l in c?c[l]:c[F0]}})}var JM=T({},h);JM[F0]=T(T(T(T({},{"fa-duotone":"duotone"}),h[F0]),U0.kit),U0["kit-duotone"]);var qP=tH(JM),k6=T({},g);k6[F0]=T(T(T(T({},{duotone:"fad"}),k6[F0]),_0.kit),_0["kit-duotone"]);var vM=tH(k6),f6=T({},I0);f6[F0]=T(T({},f6[F0]),p0.kit);var w6=tH(f6),j6=T({},zQ);j6[F0]=T(T({},j6[F0]),d0.kit);var fj=tH(j6),OP=E,kM="fa-layers-text",MP=w,WP=T({},b0),wj=tH(WP),XP=["class","data-prefix","data-icon","data-fa-transform","data-fa-mask"],x6=u,AP=[].concat(k(O0),k(HP)),aH=q.FontAwesomeConfig||{};function RP(x){var y=W.querySelector("script["+x+"]");if(y)return y.getAttribute(x)}function $P(x){if(x==="")return!0;if(x==="false")return!1;if(x==="true")return!0;return x}if(W&&typeof W.querySelector==="function"){var FP=[["data-family-prefix","familyPrefix"],["data-css-prefix","cssPrefix"],["data-family-default","familyDefault"],["data-style-default","styleDefault"],["data-replacement-class","replacementClass"],["data-auto-replace-svg","autoReplaceSvg"],["data-auto-add-css","autoAddCss"],["data-search-pseudo-elements","searchPseudoElements"],["data-search-pseudo-elements-warnings","searchPseudoElementsWarnings"],["data-search-pseudo-elements-full-scan","searchPseudoElementsFullScan"],["data-observe-mutations","observeMutations"],["data-mutate-approach","mutateApproach"],["data-keep-original-source","keepOriginalSource"],["data-measure-performance","measurePerformance"],["data-show-missing-icons","showMissingIcons"]];FP.forEach(function(x){var y=J(x,2),c=y[0],l=y[1],i=$P(RP(c));if(i!==void 0&&i!==null)aH[l]=i})}var fM={styleDefault:"solid",familyDefault:F0,cssPrefix:GM,replacementClass:TM,autoReplaceSvg:!0,autoAddCss:!0,searchPseudoElements:!1,searchPseudoElementsWarnings:!0,searchPseudoElementsFullScan:!1,observeMutations:!0,mutateApproach:"async",keepOriginalSource:!0,measurePerformance:!1,showMissingIcons:!0};if(aH.familyPrefix)aH.cssPrefix=aH.familyPrefix;var eU=T(T({},fM),aH);if(!eU.autoReplaceSvg)eU.observeMutations=!1;var z1={};Object.keys(fM).forEach(function(x){Object.defineProperty(z1,x,{enumerable:!0,set:function(c){eU[x]=c,eH.forEach(function(l){return l(z1)})},get:function(){return eU[x]}})}),Object.defineProperty(z1,"familyPrefix",{enumerable:!0,set:function(y){eU.cssPrefix=y,eH.forEach(function(c){return c(z1)})},get:function(){return eU.cssPrefix}}),q.FontAwesomeConfig=z1;var eH=[];function DP(x){return eH.push(x),function(){eH.splice(eH.indexOf(x),1)}}var bQ=T6,LQ={size:16,x:0,y:0,rotate:0,flipX:!1,flipY:!1};function SP(x){try{for(var y=arguments.length,c=Array(y>1?y-1:0),l=1;l-1;i--){var M0=c[i],X0=(M0.tagName||"").toUpperCase();if(["STYLE","LINK"].indexOf(X0)>-1)l=M0}return W.head.insertBefore(y,l),x}var CP="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";function wM(){var x=12,y="";while(x-- >0)y+=CP[Math.random()*62|0];return y}function KH(x){var y=[];for(var c=(x||[]).length>>>0;c--;)y[c]=x[c];return y}function _6(x){if(x.classList)return KH(x.classList);else return(x.getAttribute("class")||"").split(" ").filter(function(y){return y})}function jM(x){return"".concat(x).replace(/&/g,"&").replace(/"/g,""").replace(/'/g,"'").replace(//g,">")}function IP(x){return Object.keys(x||{}).reduce(function(y,c){return y+"".concat(c,'="').concat(jM(x[c]),'" ')},"").trim()}function Ez(x){return Object.keys(x||{}).reduce(function(y,c){return y+"".concat(c,": ").concat(x[c].trim(),";")},"")}function N6(x){return x.size!==LQ.size||x.x!==LQ.x||x.y!==LQ.y||x.rotate!==LQ.rotate||x.flipX||x.flipY}function GP(x){var{transform:y,containerWidth:c,iconWidth:l}=x,i={transform:"translate(".concat(c/2," 256)")},M0="translate(".concat(y.x*32,", ").concat(y.y*32,") "),X0="scale(".concat(y.size/16*(y.flipX?-1:1),", ").concat(y.size/16*(y.flipY?-1:1),") "),S0="rotate(".concat(y.rotate," 0 0)"),J0={transform:"".concat(M0," ").concat(X0," ").concat(S0)},e0={transform:"translate(".concat(l/2*-1," -256)")};return{outer:i,inner:J0,path:e0}}function TP(x){var{transform:y,width:c}=x,l=c===void 0?T6:c,i=x.height,M0=i===void 0?T6:i,X0=x.startCentered,S0=X0===void 0?!1:X0,J0="";if(S0&&S)J0+="translate(".concat(y.x/bQ-l/2,"em, ").concat(y.y/bQ-M0/2,"em) ");else if(S0)J0+="translate(calc(-50% + ".concat(y.x/bQ,"em), calc(-50% + ").concat(y.y/bQ,"em)) ");else J0+="translate(".concat(y.x/bQ,"em, ").concat(y.y/bQ,"em) ");return J0+="scale(".concat(y.size/bQ*(y.flipX?-1:1),", ").concat(y.size/bQ*(y.flipY?-1:1),") "),J0+="rotate(".concat(y.rotate,"deg) "),J0}var EP=`:root, :host { + --fa-font-solid: normal 900 1em/1 "Font Awesome 7 Free"; + --fa-font-regular: normal 400 1em/1 "Font Awesome 7 Free"; + --fa-font-light: normal 300 1em/1 "Font Awesome 7 Pro"; + --fa-font-thin: normal 100 1em/1 "Font Awesome 7 Pro"; + --fa-font-duotone: normal 900 1em/1 "Font Awesome 7 Duotone"; + --fa-font-duotone-regular: normal 400 1em/1 "Font Awesome 7 Duotone"; + --fa-font-duotone-light: normal 300 1em/1 "Font Awesome 7 Duotone"; + --fa-font-duotone-thin: normal 100 1em/1 "Font Awesome 7 Duotone"; + --fa-font-brands: normal 400 1em/1 "Font Awesome 7 Brands"; + --fa-font-sharp-solid: normal 900 1em/1 "Font Awesome 7 Sharp"; + --fa-font-sharp-regular: normal 400 1em/1 "Font Awesome 7 Sharp"; + --fa-font-sharp-light: normal 300 1em/1 "Font Awesome 7 Sharp"; + --fa-font-sharp-thin: normal 100 1em/1 "Font Awesome 7 Sharp"; + --fa-font-sharp-duotone-solid: normal 900 1em/1 "Font Awesome 7 Sharp Duotone"; + --fa-font-sharp-duotone-regular: normal 400 1em/1 "Font Awesome 7 Sharp Duotone"; + --fa-font-sharp-duotone-light: normal 300 1em/1 "Font Awesome 7 Sharp Duotone"; + --fa-font-sharp-duotone-thin: normal 100 1em/1 "Font Awesome 7 Sharp Duotone"; + --fa-font-slab-regular: normal 400 1em/1 "Font Awesome 7 Slab"; + --fa-font-slab-press-regular: normal 400 1em/1 "Font Awesome 7 Slab Press"; + --fa-font-whiteboard-semibold: normal 600 1em/1 "Font Awesome 7 Whiteboard"; + --fa-font-thumbprint-light: normal 300 1em/1 "Font Awesome 7 Thumbprint"; + --fa-font-notdog-solid: normal 900 1em/1 "Font Awesome 7 Notdog"; + --fa-font-notdog-duo-solid: normal 900 1em/1 "Font Awesome 7 Notdog Duo"; + --fa-font-etch-solid: normal 900 1em/1 "Font Awesome 7 Etch"; + --fa-font-jelly-regular: normal 400 1em/1 "Font Awesome 7 Jelly"; + --fa-font-jelly-fill-regular: normal 400 1em/1 "Font Awesome 7 Jelly Fill"; + --fa-font-jelly-duo-regular: normal 400 1em/1 "Font Awesome 7 Jelly Duo"; + --fa-font-chisel-regular: normal 400 1em/1 "Font Awesome 7 Chisel"; + --fa-font-utility-semibold: normal 600 1em/1 "Font Awesome 7 Utility"; + --fa-font-utility-duo-semibold: normal 600 1em/1 "Font Awesome 7 Utility Duo"; + --fa-font-utility-fill-semibold: normal 600 1em/1 "Font Awesome 7 Utility Fill"; +} + +.svg-inline--fa { + box-sizing: content-box; + display: var(--fa-display, inline-block); + height: 1em; + overflow: visible; + vertical-align: -0.125em; + width: var(--fa-width, 1.25em); +} +.svg-inline--fa.fa-2xs { + vertical-align: 0.1em; +} +.svg-inline--fa.fa-xs { + vertical-align: 0em; +} +.svg-inline--fa.fa-sm { + vertical-align: -0.0714285714em; +} +.svg-inline--fa.fa-lg { + vertical-align: -0.2em; +} +.svg-inline--fa.fa-xl { + vertical-align: -0.25em; +} +.svg-inline--fa.fa-2xl { + vertical-align: -0.3125em; +} +.svg-inline--fa.fa-pull-left, +.svg-inline--fa .fa-pull-start { + float: inline-start; + margin-inline-end: var(--fa-pull-margin, 0.3em); +} +.svg-inline--fa.fa-pull-right, +.svg-inline--fa .fa-pull-end { + float: inline-end; + margin-inline-start: var(--fa-pull-margin, 0.3em); +} +.svg-inline--fa.fa-li { + width: var(--fa-li-width, 2em); + inset-inline-start: calc(-1 * var(--fa-li-width, 2em)); + inset-block-start: 0.25em; /* syncing vertical alignment with Web Font rendering */ +} + +.fa-layers-counter, .fa-layers-text { + display: inline-block; + position: absolute; + text-align: center; +} + +.fa-layers { + display: inline-block; + height: 1em; + position: relative; + text-align: center; + vertical-align: -0.125em; + width: var(--fa-width, 1.25em); +} +.fa-layers .svg-inline--fa { + inset: 0; + margin: auto; + position: absolute; + transform-origin: center center; +} + +.fa-layers-text { + left: 50%; + top: 50%; + transform: translate(-50%, -50%); + transform-origin: center center; +} + +.fa-layers-counter { + background-color: var(--fa-counter-background-color, #ff253a); + border-radius: var(--fa-counter-border-radius, 1em); + box-sizing: border-box; + color: var(--fa-inverse, #fff); + line-height: var(--fa-counter-line-height, 1); + max-width: var(--fa-counter-max-width, 5em); + min-width: var(--fa-counter-min-width, 1.5em); + overflow: hidden; + padding: var(--fa-counter-padding, 0.25em 0.5em); + right: var(--fa-right, 0); + text-overflow: ellipsis; + top: var(--fa-top, 0); + transform: scale(var(--fa-counter-scale, 0.25)); + transform-origin: top right; +} + +.fa-layers-bottom-right { + bottom: var(--fa-bottom, 0); + right: var(--fa-right, 0); + top: auto; + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: bottom right; +} + +.fa-layers-bottom-left { + bottom: var(--fa-bottom, 0); + left: var(--fa-left, 0); + right: auto; + top: auto; + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: bottom left; +} + +.fa-layers-top-right { + top: var(--fa-top, 0); + right: var(--fa-right, 0); + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: top right; +} + +.fa-layers-top-left { + left: var(--fa-left, 0); + right: auto; + top: var(--fa-top, 0); + transform: scale(var(--fa-layers-scale, 0.25)); + transform-origin: top left; +} + +.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-2xs { + font-size: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-xs { + font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-sm { + font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-lg { + font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-xl { + font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-2xl { + font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that's relative to the scale's 16px base */ + line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it's parent */ + vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */ +} + +.fa-width-auto { + --fa-width: auto; +} + +.fa-fw, +.fa-width-fixed { + --fa-width: 1.25em; +} + +.fa-ul { + list-style-type: none; + margin-inline-start: var(--fa-li-margin, 2.5em); + padding-inline-start: 0; +} +.fa-ul > li { + position: relative; +} + +.fa-li { + inset-inline-start: calc(-1 * var(--fa-li-width, 2em)); + position: absolute; + text-align: center; + width: var(--fa-li-width, 2em); + line-height: inherit; +} + +/* Heads Up: Bordered Icons will not be supported in the future! + - This feature will be deprecated in the next major release of Font Awesome (v8)! + - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8. +*/ +/* Notes: +* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size) +* --@{v.$css-prefix}-border-padding = + ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it's vertical alignment) + ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon) +*/ +.fa-border { + border-color: var(--fa-border-color, #eee); + border-radius: var(--fa-border-radius, 0.1em); + border-style: var(--fa-border-style, solid); + border-width: var(--fa-border-width, 0.0625em); + box-sizing: var(--fa-border-box-sizing, content-box); + padding: var(--fa-border-padding, 0.1875em 0.25em); +} + +.fa-pull-left, +.fa-pull-start { + float: inline-start; + margin-inline-end: var(--fa-pull-margin, 0.3em); +} + +.fa-pull-right, +.fa-pull-end { + float: inline-end; + margin-inline-start: var(--fa-pull-margin, 0.3em); +} + +.fa-beat { + animation-name: fa-beat; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-bounce { + animation-name: fa-bounce; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); +} + +.fa-fade { + animation-name: fa-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-beat-fade { + animation-name: fa-beat-fade; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); +} + +.fa-flip { + animation-name: fa-flip; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, ease-in-out); +} + +.fa-shake { + animation-name: fa-shake; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin { + animation-name: fa-spin; + animation-delay: var(--fa-animation-delay, 0s); + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 2s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, linear); +} + +.fa-spin-reverse { + --fa-animation-direction: reverse; +} + +.fa-pulse, +.fa-spin-pulse { + animation-name: fa-spin; + animation-direction: var(--fa-animation-direction, normal); + animation-duration: var(--fa-animation-duration, 1s); + animation-iteration-count: var(--fa-animation-iteration-count, infinite); + animation-timing-function: var(--fa-animation-timing, steps(8)); +} + +@media (prefers-reduced-motion: reduce) { + .fa-beat, + .fa-bounce, + .fa-fade, + .fa-beat-fade, + .fa-flip, + .fa-pulse, + .fa-shake, + .fa-spin, + .fa-spin-pulse { + animation: none !important; + transition: none !important; + } +} +@keyframes fa-beat { + 0%, 90% { + transform: scale(1); + } + 45% { + transform: scale(var(--fa-beat-scale, 1.25)); + } +} +@keyframes fa-bounce { + 0% { + transform: scale(1, 1) translateY(0); + } + 10% { + transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); + } + 30% { + transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); + } + 50% { + transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); + } + 57% { + transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); + } + 64% { + transform: scale(1, 1) translateY(0); + } + 100% { + transform: scale(1, 1) translateY(0); + } +} +@keyframes fa-fade { + 50% { + opacity: var(--fa-fade-opacity, 0.4); + } +} +@keyframes fa-beat-fade { + 0%, 100% { + opacity: var(--fa-beat-fade-opacity, 0.4); + transform: scale(1); + } + 50% { + opacity: 1; + transform: scale(var(--fa-beat-fade-scale, 1.125)); + } +} +@keyframes fa-flip { + 50% { + transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); + } +} +@keyframes fa-shake { + 0% { + transform: rotate(-15deg); + } + 4% { + transform: rotate(15deg); + } + 8%, 24% { + transform: rotate(-18deg); + } + 12%, 28% { + transform: rotate(18deg); + } + 16% { + transform: rotate(-22deg); + } + 20% { + transform: rotate(22deg); + } + 32% { + transform: rotate(-12deg); + } + 36% { + transform: rotate(12deg); + } + 40%, 100% { + transform: rotate(0deg); + } +} +@keyframes fa-spin { + 0% { + transform: rotate(0deg); + } + 100% { + transform: rotate(360deg); + } +} +.fa-rotate-90 { + transform: rotate(90deg); +} + +.fa-rotate-180 { + transform: rotate(180deg); +} + +.fa-rotate-270 { + transform: rotate(270deg); +} + +.fa-flip-horizontal { + transform: scale(-1, 1); +} + +.fa-flip-vertical { + transform: scale(1, -1); +} + +.fa-flip-both, +.fa-flip-horizontal.fa-flip-vertical { + transform: scale(-1, -1); +} + +.fa-rotate-by { + transform: rotate(var(--fa-rotate-angle, 0)); +} + +.svg-inline--fa .fa-primary { + fill: var(--fa-primary-color, currentColor); + opacity: var(--fa-primary-opacity, 1); +} + +.svg-inline--fa .fa-secondary { + fill: var(--fa-secondary-color, currentColor); + opacity: var(--fa-secondary-opacity, 0.4); +} + +.svg-inline--fa.fa-swap-opacity .fa-primary { + opacity: var(--fa-secondary-opacity, 0.4); +} + +.svg-inline--fa.fa-swap-opacity .fa-secondary { + opacity: var(--fa-primary-opacity, 1); +} + +.svg-inline--fa mask .fa-primary, +.svg-inline--fa mask .fa-secondary { + fill: black; +} + +.svg-inline--fa.fa-inverse { + fill: var(--fa-inverse, #fff); +} + +.fa-stack { + display: inline-block; + height: 2em; + line-height: 2em; + position: relative; + vertical-align: middle; + width: 2.5em; +} + +.fa-inverse { + color: var(--fa-inverse, #fff); +} + +.svg-inline--fa.fa-stack-1x { + --fa-width: 1.25em; + height: 1em; + width: var(--fa-width); +} +.svg-inline--fa.fa-stack-2x { + --fa-width: 2.5em; + height: 2em; + width: var(--fa-width); +} + +.fa-stack-1x, +.fa-stack-2x { + inset: 0; + margin: auto; + position: absolute; + z-index: var(--fa-stack-z-index, auto); +}`;function xM(){var x=GM,y=TM,c=z1.cssPrefix,l=z1.replacementClass,i=EP;if(c!==x||l!==y){var M0=new RegExp("\\.".concat(x,"\\-"),"g"),X0=new RegExp("\\--".concat(x,"\\-"),"g"),S0=new RegExp("\\.".concat(y),"g");i=i.replace(M0,".".concat(c,"-")).replace(X0,"--".concat(c,"-")).replace(S0,".".concat(l))}return i}var _M=!1;function g6(){if(z1.autoAddCss&&!_M)PP(xM()),_M=!0}var BP={mixout:function(){return{dom:{css:xM,insertCss:g6}}},hooks:function(){return{beforeDOMElementCreation:function(){g6()},beforeI2svg:function(){g6()}}}},IQ=q||{};if(!IQ[CQ])IQ[CQ]={};if(!IQ[CQ].styles)IQ[CQ].styles={};if(!IQ[CQ].hooks)IQ[CQ].hooks={};if(!IQ[CQ].shims)IQ[CQ].shims=[];var xK=IQ[CQ],NM=[],gM=function(){W.removeEventListener("DOMContentLoaded",gM),Bz=1,NM.map(function(y){return y()})},Bz=!1;if(Z){if(Bz=(W.documentElement.doScroll?/^loaded|^c/:/^loaded|^i|^c/).test(W.readyState),!Bz)W.addEventListener("DOMContentLoaded",gM)}function yM(x){if(!Z)return;Bz?setTimeout(x,0):NM.push(x)}function K8(x){var{tag:y,attributes:c}=x,l=c===void 0?{}:c,i=x.children,M0=i===void 0?[]:i;if(typeof x==="string")return jM(x);else return"<".concat(y," ").concat(IP(l),">").concat(M0.map(K8).join(""),"")}function hM(x,y,c){if(x&&x[y]&&x[y][c])return{prefix:y,iconName:c,icon:x[y][c]}}var JP=function(y,c){return function(l,i,M0,X0){return y.call(c,l,i,M0,X0)}},y6=function(y,c,l,i){var M0=Object.keys(y),X0=M0.length,S0=i!==void 0?JP(c,i):c,J0,e0,U1;if(l===void 0)J0=1,U1=y[M0[0]];else J0=0,U1=l;for(;J02&&arguments[2]!==void 0?arguments[2]:{},l=c.skipHooks,i=l===void 0?!1:l,M0=cM(y);if(typeof xK.hooks.addPack==="function"&&!i)xK.hooks.addPack(x,cM(y));else xK.styles[x]=T(T({},xK.styles[x]||{}),M0);if(x==="fas")h6("fa",y)}var p6=1,lV=2,jj=[[lV,N(/path opacity="([^"]*)".*d="([^"]*)".*path.*d="([^"]*)"/,{d2:2,d1:3})],[lV,N(/path opacity="([^"]*)".*d="([^"]*)"/,{d2:2})],[p6,N(/path fill="currentColor".*d="([^"]+)"/,{d1:1})]],xj=[[lV,N(/path class="([^"]*secondary[^"]*)".*d="([^"]+)".*path class="([^"]*primary[^"]*)".*d="([^"]+)"/,{attr2:1,d2:2,attr1:3,d1:4})],[lV,N(/path class="([^"]*primary[^"]*)".*d="([^"]+)".*path class="([^"]*secondary[^"]*)".*d="([^"]+)"/,{attr1:1,d1:2,attr2:3,d2:4})],[lV,N(/path class="([^"]*primary[^"]*)".*d="([^"]+)"/,{attr1:1,d1:2})],[lV,N(/path class="([^"]*secondary[^"]*)".*d="([^"]+)"/,{attr2:1,d2:2})],[lV,N(/path d="([^"]+)".*class="([^"]*secondary[^"]*)".*path d="([^"]+)".*class="([^"]*primary[^"]*)"/,{d2:1,attr2:2,d1:3,attr1:4})],[lV,N(/path d="([^"]+)".*class="([^"]*primary[^"]*)".*path d="([^"]+)".*class="([^"]*secondary[^"]*)"/,{d1:1,attr1:2,d2:3,attr2:4})],[lV,N(/path d="([^"]+)".*class="([^"]*primary[^"]*)"/,{d1:1,attr1:2})],[lV,N(/path d="([^"]+)".*class="([^"]*secondary[^"]*)"/,{d2:1,attr2:2})],[lV,N(/path d="([^"]+)".*path d="([^"]+)"/,{d1:1,d2:2})],[p6,N(/path d="([^"]+)"/,{d1:1})],[p6,N(/path style="([^"]+)".*d="([^"]+)"/,{attr1:1,d1:2})]],V8=xK.styles,vP=xK.shims,uM=Object.keys(w6),kP=uM.reduce(function(x,y){return x[y]=Object.keys(w6[y]),x},{}),c6=null,bM={},lM={},dM={},sM={},oM={};function fP(x){return~AP.indexOf(x)}function wP(x,y){var c=y.split("-"),l=c[0],i=c.slice(1).join("-");if(l===x&&i!==""&&!fP(i))return i;else return null}var Q8=function(){var y=function(M0){return y6(V8,function(X0,S0,J0){return X0[J0]=y6(S0,M0,{}),X0},{})};bM=y(function(i,M0,X0){if(M0[3])i[M0[3]]=X0;if(M0[2]){var S0=M0[2].filter(function(J0){return typeof J0==="number"});S0.forEach(function(J0){i[J0.toString(16)]=X0})}return i}),lM=y(function(i,M0,X0){if(i[X0]=X0,M0[2]){var S0=M0[2].filter(function(J0){return typeof J0==="string"});S0.forEach(function(J0){i[J0]=X0})}return i}),oM=y(function(i,M0,X0){var S0=M0[2];return i[X0]=X0,S0.forEach(function(J0){i[J0]=X0}),i});var c="far"in V8||z1.autoFetchSvg,l=y6(vP,function(i,M0){var X0=M0[0],S0=M0[1],J0=M0[2];if(S0==="far"&&!c)S0="fas";if(typeof X0==="string")i.names[X0]={prefix:S0,iconName:J0};if(typeof X0==="number")i.unicodes[X0.toString(16)]={prefix:S0,iconName:J0};return i},{names:{},unicodes:{}});dM=l.names,sM=l.unicodes,c6=Jz(z1.styleDefault,{family:z1.familyDefault})};DP(function(x){c6=Jz(x.styleDefault,{family:z1.familyDefault})}),Q8();function u6(x,y){return(bM[x]||{})[y]}function jP(x,y){return(lM[x]||{})[y]}function CU(x,y){return(oM[x]||{})[y]}function mM(x){return dM[x]||{prefix:null,iconName:null}}function xP(x){var y=sM[x],c=u6("fas",x);return y||(c?{prefix:"fas",iconName:c}:null)||{prefix:null,iconName:null}}function lQ(){return c6}var nM=function(){return{prefix:null,iconName:null,rest:[]}};function _P(x){var y=F0,c=uM.reduce(function(l,i){return l[i]="".concat(z1.cssPrefix,"-").concat(i),l},{});return g1.forEach(function(l){if(x.includes(c[l])||x.some(function(i){return kP[l].includes(i)}))y=l}),y}function Jz(x){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=y.family,l=c===void 0?F0:c,i=qP[l][x];if(l===K0&&!x)return"fad";var M0=vM[l][x]||vM[l][i],X0=x in xK.styles?x:null,S0=M0||X0||null;return S0}function NP(x){var y=[],c=null;return x.forEach(function(l){var i=wP(z1.cssPrefix,l);if(i)c=i;else if(l)y.push(l)}),{iconName:c,rest:y}}function rM(x){return x.sort().filter(function(y,c,l){return l.indexOf(y)===c})}var iM=n0.concat(n);function vz(x){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=y.skipLookups,l=c===void 0?!1:c,i=null,M0=rM(x.filter(function(R1){return iM.includes(R1)})),X0=rM(x.filter(function(R1){return!iM.includes(R1)})),S0=M0.filter(function(R1){return i=R1,!t.includes(R1)}),J0=J(S0,1),e0=J0[0],U1=e0===void 0?null:e0,Q1=_P(M0),B1=T(T({},NP(X0)),{},{prefix:Jz(U1,{family:Q1})});return T(T(T({},B1),pP({values:x,family:Q1,styles:V8,config:z1,canonical:B1,givenPrefix:i})),gP(l,i,B1))}function gP(x,y,c){var{prefix:l,iconName:i}=c;if(x||!l||!i)return{prefix:l,iconName:i};var M0=y==="fa"?mM(i):{},X0=CU(l,i);if(i=M0.iconName||X0||i,l=M0.prefix||l,l==="far"&&!V8.far&&V8.fas&&!z1.autoFetchSvg)l="fas";return{prefix:l,iconName:i}}var yP=g1.filter(function(x){return x!==F0||x!==K0}),hP=Object.keys(I0).filter(function(x){return x!==F0}).map(function(x){return Object.keys(I0[x])}).flat();function pP(x){var{values:y,family:c,canonical:l,givenPrefix:i}=x,M0=i===void 0?"":i,X0=x.styles,S0=X0===void 0?{}:X0,J0=x.config,e0=J0===void 0?{}:J0,U1=c===K0,Q1=y.includes("fa-duotone")||y.includes("fad"),B1=e0.familyDefault==="duotone",R1=l.prefix==="fad"||l.prefix==="fa-duotone";if(!U1&&(Q1||B1||R1))l.prefix="fad";if(y.includes("fa-brands")||y.includes("fab"))l.prefix="fab";if(!l.prefix&&yP.includes(c)){var _K=Object.keys(S0).find(function(iK){return hP.includes(iK)});if(_K||e0.autoFetchSvg){var qK=h0.get(c).defaultShortPrefixId;l.prefix=qK,l.iconName=CU(l.prefix,l.iconName)||l.iconName}}if(l.prefix==="fa"||M0==="fa")l.prefix=lQ()||"fas";return l}var cP=function(){function x(){U(this,x),this.definitions={}}return Y(x,[{key:"add",value:function(){var c=this;for(var l=arguments.length,i=Array(l),M0=0;M00)U1.forEach(function(Q1){if(typeof Q1==="string")c[S0][Q1]=e0});c[S0][J0]=e0}),c}}])}(),tM=[],VH={},QH={},uP=Object.keys(QH);function bP(x,y){var c=y.mixoutsTo;return tM=x,VH={},Object.keys(QH).forEach(function(l){if(uP.indexOf(l)===-1)delete QH[l]}),tM.forEach(function(l){var i=l.mixout?l.mixout():{};if(Object.keys(i).forEach(function(X0){if(typeof i[X0]==="function")c[X0]=i[X0];if(_(i[X0])==="object")Object.keys(i[X0]).forEach(function(S0){if(!c[X0])c[X0]={};c[X0][S0]=i[X0][S0]})}),l.hooks){var M0=l.hooks();Object.keys(M0).forEach(function(X0){if(!VH[X0])VH[X0]=[];VH[X0].push(M0[X0])})}if(l.provides)l.provides(QH)}),c}function b6(x,y){for(var c=arguments.length,l=Array(c>2?c-2:0),i=2;i1?y-1:0),l=1;l0&&arguments[0]!==void 0?arguments[0]:{};if(Z)return dQ("beforeI2svg",y),sQ("pseudoElements2svg",y),sQ("i2svg",y);else return Promise.reject(Error("Operation requires a DOM of some kind."))},watch:function(){var y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},c=y.autoReplaceSvgRoot;if(z1.autoReplaceSvg===!1)z1.autoReplaceSvg=!0;z1.observeMutations=!0,yM(function(){U8({autoReplaceSvgRoot:c}),dQ("watch",y)})}},sP={icon:function(y){if(y===null)return null;if(_(y)==="object"&&y.prefix&&y.iconName)return{prefix:y.prefix,iconName:CU(y.prefix,y.iconName)||y.iconName};if(Array.isArray(y)&&y.length===2){var c=y[1].indexOf("fa-")===0?y[1].slice(3):y[1],l=Jz(y[0]);return{prefix:l,iconName:CU(l,c)||c}}if(typeof y==="string"&&(y.indexOf("".concat(z1.cssPrefix,"-"))>-1||y.match(OP))){var i=vz(y.split(" "),{skipLookups:!0});return{prefix:i.prefix||lQ(),iconName:CU(i.prefix,i.iconName)||i.iconName}}if(typeof y==="string"){var M0=lQ();return{prefix:M0,iconName:CU(M0,y)||y}}}},d6={noAuto:lP,config:z1,dom:dP,parse:sP,library:aM,findIconDefinition:l6,toHtml:K8},U8=function(){var y=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},c=y.autoReplaceSvgRoot,l=c===void 0?W:c;if((Object.keys(xK.styles).length>0||z1.autoFetchSvg)&&Z&&z1.autoReplaceSvg)d6.dom.i2svg({node:l})};function oP(){if($){if(!q.FontAwesome)q.FontAwesome=d6;yM(function(){U8(),dQ("bootstrap")})}xK.hooks=T(T({},xK.hooks),{},{addPack:function(y,c){xK.styles[y]=T(T({},xK.styles[y]||{}),c),Q8(),U8()},addPacks:function(y){y.forEach(function(c){var l=J(c,2),i=l[0],M0=l[1];xK.styles[i]=T(T({},xK.styles[i]||{}),M0)}),Q8(),U8()},addShims:function(y){var c;(c=xK.shims).push.apply(c,k(y)),Q8(),U8()}})}function kz(x,y){return Object.defineProperty(x,"abstract",{get:y}),Object.defineProperty(x,"html",{get:function(){return x.abstract.map(function(l){return K8(l)})}}),Object.defineProperty(x,"node",{get:function(){if(!Z)return;var l=W.createElement("div");return l.innerHTML=x.html,l.children}}),x}function mP(x){var{children:y,main:c,mask:l,attributes:i,styles:M0,transform:X0}=x;if(N6(X0)&&c.found&&!l.found){var{width:S0,height:J0}=c,e0={x:S0/J0/2,y:0.5};i.style=Ez(T(T({},M0),{},{"transform-origin":"".concat(e0.x+X0.x/16,"em ").concat(e0.y+X0.y/16,"em")}))}return[{tag:"svg",attributes:i,children:y}]}function nP(x){var{prefix:y,iconName:c,children:l,attributes:i,symbol:M0}=x,X0=M0===!0?"".concat(y,"-").concat(z1.cssPrefix,"-").concat(c):M0;return[{tag:"svg",attributes:{style:"display: none;"},children:[{tag:"symbol",attributes:T(T({},i),{},{id:X0}),children:l}]}]}function rP(x){var y=["aria-label","aria-labelledby","title","role"];return y.some(function(c){return c in x})}function s6(x){var y=x.icons,c=y.main,l=y.mask,i=x.prefix,M0=x.iconName,X0=x.transform,S0=x.symbol,J0=x.maskId,e0=x.extra,U1=x.watchable,Q1=U1===void 0?!1:U1,B1=l.found?l:c,R1=B1.width,_K=B1.height,qK=[z1.replacementClass,M0?"".concat(z1.cssPrefix,"-").concat(M0):""].filter(function(GQ){return e0.classes.indexOf(GQ)===-1}).filter(function(GQ){return GQ!==""||!!GQ}).concat(e0.classes).join(" "),iK={children:[],attributes:T(T({},e0.attributes),{},{"data-prefix":i,"data-icon":M0,class:qK,role:e0.attributes.role||"img",viewBox:"0 0 ".concat(R1," ").concat(_K)})};if(!rP(e0.attributes)&&!e0.attributes["aria-hidden"])iK.attributes["aria-hidden"]="true";if(Q1)iK.attributes[PU]="";var uK=T(T({},iK),{},{prefix:i,iconName:M0,main:c,mask:l,maskId:J0,transform:X0,symbol:S0,styles:T({},e0.styles)}),UV=l.found&&c.found?sQ("generateAbstractMask",uK)||{children:[],attributes:{}}:sQ("generateAbstractIcon",uK)||{children:[],attributes:{}},dV=UV.children,UH=UV.attributes;if(uK.children=dV,uK.attributes=UH,S0)return nP(uK);else return mP(uK)}function eM(x){var{content:y,width:c,height:l,transform:i,extra:M0,watchable:X0}=x,S0=X0===void 0?!1:X0,J0=T(T({},M0.attributes),{},{class:M0.classes.join(" ")});if(S0)J0[PU]="";var e0=T({},M0.styles);if(N6(i))e0.transform=TP({transform:i,startCentered:!0,width:c,height:l}),e0["-webkit-transform"]=e0.transform;var U1=Ez(e0);if(U1.length>0)J0.style=U1;var Q1=[];return Q1.push({tag:"span",attributes:J0,children:[y]}),Q1}function iP(x){var{content:y,extra:c}=x,l=T(T({},c.attributes),{},{class:c.classes.join(" ")}),i=Ez(c.styles);if(i.length>0)l.style=i;var M0=[];return M0.push({tag:"span",attributes:l,children:[y]}),M0}var o6=xK.styles;function m6(x){var y=x[0],c=x[1],l=x.slice(4),i=J(l,1),M0=i[0],X0=null;if(Array.isArray(M0))X0={tag:"g",attributes:{class:"".concat(z1.cssPrefix,"-").concat(x6.GROUP)},children:[{tag:"path",attributes:{class:"".concat(z1.cssPrefix,"-").concat(x6.SECONDARY),fill:"currentColor",d:M0[0]}},{tag:"path",attributes:{class:"".concat(z1.cssPrefix,"-").concat(x6.PRIMARY),fill:"currentColor",d:M0[1]}}]};else X0={tag:"path",attributes:{fill:"currentColor",d:M0}};return{found:!0,width:y,height:c,icon:X0}}var tP={found:!1,width:512,height:512};function aP(x,y){if(!v6&&!z1.showMissingIcons&&x)console.error('Icon with name "'.concat(x,'" and prefix "').concat(y,'" is missing.'))}function n6(x,y){var c=y;if(y==="fa"&&z1.styleDefault!==null)y=lQ();return new Promise(function(l,i){if(c==="fa"){var M0=mM(x)||{};x=M0.iconName||x,y=M0.prefix||y}if(x&&y&&o6[y]&&o6[y][x]){var X0=o6[y][x];return l(m6(X0))}aP(x,y),l(T(T({},tP),{},{icon:z1.showMissingIcons&&x?sQ("missingIconAbstract")||{}:{}}))})}var KW=function(){},r6=z1.measurePerformance&&I&&I.mark&&I.measure?I:{mark:KW,measure:KW},H8='FA "7.1.0"',eP=function(y){return r6.mark("".concat(H8," ").concat(y," begins")),function(){return VW(y)}},VW=function(y){r6.mark("".concat(H8," ").concat(y," ends")),r6.measure("".concat(H8," ").concat(y),"".concat(H8," ").concat(y," begins"),"".concat(H8," ").concat(y," ends"))},i6={begin:eP,end:VW},fz=function(){};function QW(x){var y=x.getAttribute?x.getAttribute(PU):null;return typeof y==="string"}function KC(x){var y=x.getAttribute?x.getAttribute(B6):null,c=x.getAttribute?x.getAttribute(J6):null;return y&&c}function VC(x){return x&&x.classList&&x.classList.contains&&x.classList.contains(z1.replacementClass)}function QC(){if(z1.autoReplaceSvg===!0)return wz.replace;var x=wz[z1.autoReplaceSvg];return x||wz.replace}function UC(x){return W.createElementNS("http://www.w3.org/2000/svg",x)}function HC(x){return W.createElement(x)}function UW(x){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=y.ceFn,l=c===void 0?x.tag==="svg"?UC:HC:c;if(typeof x==="string")return W.createTextNode(x);var i=l(x.tag);Object.keys(x.attributes||[]).forEach(function(X0){i.setAttribute(X0,x.attributes[X0])});var M0=x.children||[];return M0.forEach(function(X0){i.appendChild(UW(X0,{ceFn:l}))}),i}function zC(x){var y=" ".concat(x.outerHTML," ");return y="".concat(y,"Font Awesome fontawesome.com "),y}var wz={replace:function(y){var c=y[0];if(c.parentNode)if(y[1].forEach(function(i){c.parentNode.insertBefore(UW(i),c)}),c.getAttribute(PU)===null&&z1.keepOriginalSource){var l=W.createComment(zC(c));c.parentNode.replaceChild(l,c)}else c.remove()},nest:function(y){var c=y[0],l=y[1];if(~_6(c).indexOf(z1.replacementClass))return wz.replace(y);var i=new RegExp("".concat(z1.cssPrefix,"-.*"));if(delete l[0].attributes.id,l[0].attributes.class){var M0=l[0].attributes.class.split(" ").reduce(function(S0,J0){if(J0===z1.replacementClass||J0.match(i))S0.toSvg.push(J0);else S0.toNode.push(J0);return S0},{toNode:[],toSvg:[]});if(l[0].attributes.class=M0.toSvg.join(" "),M0.toNode.length===0)c.removeAttribute("class");else c.setAttribute("class",M0.toNode.join(" "))}var X0=l.map(function(S0){return K8(S0)}).join(` +`);c.setAttribute(PU,""),c.innerHTML=X0}};function HW(x){x()}function zW(x,y){var c=typeof y==="function"?y:fz;if(x.length===0)c();else{var l=HW;if(z1.mutateApproach===ZP)l=q.requestAnimationFrame||HW;l(function(){var i=QC(),M0=i6.begin("mutate");x.map(i),M0(),c()})}}var t6=!1;function LW(){t6=!0}function a6(){t6=!1}var jz=null;function ZW(x){if(!C)return;if(!z1.observeMutations)return;var y=x.treeCallback,c=y===void 0?fz:y,l=x.nodeCallback,i=l===void 0?fz:l,M0=x.pseudoElementsCallback,X0=M0===void 0?fz:M0,S0=x.observeMutationsRoot,J0=S0===void 0?W:S0;if(jz=new C(function(e0){if(t6)return;var U1=lQ();KH(e0).forEach(function(Q1){if(Q1.type==="childList"&&Q1.addedNodes.length>0&&!QW(Q1.addedNodes[0])){if(z1.searchPseudoElements)X0(Q1.target);c(Q1.target)}if(Q1.type==="attributes"&&Q1.target.parentNode&&z1.searchPseudoElements)X0([Q1.target],!0);if(Q1.type==="attributes"&&QW(Q1.target)&&~XP.indexOf(Q1.attributeName)){if(Q1.attributeName==="class"&&KC(Q1.target)){var B1=vz(_6(Q1.target)),R1=B1.prefix,_K=B1.iconName;if(Q1.target.setAttribute(B6,R1||U1),_K)Q1.target.setAttribute(J6,_K)}else if(VC(Q1.target))i(Q1.target)}})}),!Z)return;jz.observe(J0,{childList:!0,attributes:!0,characterData:!0,subtree:!0})}function LC(){if(!jz)return;jz.disconnect()}function ZC(x){var y=x.getAttribute("style"),c=[];if(y)c=y.split(";").reduce(function(l,i){var M0=i.split(":"),X0=M0[0],S0=M0.slice(1);if(X0&&S0.length>0)l[X0]=S0.join(":").trim();return l},{});return c}function YC(x){var y=x.getAttribute("data-prefix"),c=x.getAttribute("data-icon"),l=x.innerText!==void 0?x.innerText.trim():"",i=vz(_6(x));if(!i.prefix)i.prefix=lQ();if(y&&c)i.prefix=y,i.iconName=c;if(i.iconName&&i.prefix)return i;if(i.prefix&&l.length>0)i.iconName=jP(i.prefix,x.innerText)||u6(i.prefix,pM(x.innerText));if(!i.iconName&&z1.autoFetchSvg&&x.firstChild&&x.firstChild.nodeType===Node.TEXT_NODE)i.iconName=x.firstChild.data;return i}function qC(x){var y=KH(x.attributes).reduce(function(c,l){if(c.name!=="class"&&c.name!=="style")c[l.name]=l.value;return c},{});return y}function OC(){return{iconName:null,prefix:null,transform:LQ,symbol:!1,mask:{iconName:null,prefix:null,rest:[]},maskId:null,extra:{classes:[],styles:{},attributes:{}}}}function YW(x){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{styleParser:!0},c=YC(x),l=c.iconName,i=c.prefix,M0=c.rest,X0=qC(x),S0=b6("parseNodeAttributes",{},x),J0=y.styleParser?ZC(x):[];return T({iconName:l,prefix:i,transform:LQ,mask:{iconName:null,prefix:null,rest:[]},maskId:null,symbol:!1,extra:{classes:M0,styles:J0,attributes:X0}},S0)}var MC=xK.styles;function qW(x){var y=z1.autoReplaceSvg==="nest"?YW(x,{styleParser:!1}):YW(x);if(~y.extra.classes.indexOf(kM))return sQ("generateLayersText",x,y);else return sQ("generateSvgReplacementMutation",x,y)}function WC(){return[].concat(k(n),k(n0))}function OW(x){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;if(!Z)return Promise.resolve();var c=W.documentElement.classList,l=function(Q1){return c.add("".concat(EM,"-").concat(Q1))},i=function(Q1){return c.remove("".concat(EM,"-").concat(Q1))},M0=z1.autoFetchSvg?WC():t.concat(Object.keys(MC));if(!M0.includes("fa"))M0.push("fa");var X0=[".".concat(kM,":not([").concat(PU,"])")].concat(M0.map(function(U1){return".".concat(U1,":not([").concat(PU,"])")})).join(", ");if(X0.length===0)return Promise.resolve();var S0=[];try{S0=KH(x.querySelectorAll(X0))}catch(U1){}if(S0.length>0)l("pending"),i("complete");else return Promise.resolve();var J0=i6.begin("onTree"),e0=S0.reduce(function(U1,Q1){try{var B1=qW(Q1);if(B1)U1.push(B1)}catch(R1){if(!v6){if(R1.name==="MissingIcon")console.error(R1)}}return U1},[]);return new Promise(function(U1,Q1){Promise.all(e0).then(function(B1){zW(B1,function(){if(l("active"),l("complete"),i("pending"),typeof y==="function")y();J0(),U1()})}).catch(function(B1){J0(),Q1(B1)})})}function XC(x){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;qW(x).then(function(c){if(c)zW([c],y)})}function AC(x){return function(y){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=(y||{}).icon?y:l6(y||{}),i=c.mask;if(i)i=(i||{}).icon?i:l6(i||{});return x(l,T(T({},c),{},{mask:i}))}}var RC=function(y){var c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=c.transform,i=l===void 0?LQ:l,M0=c.symbol,X0=M0===void 0?!1:M0,S0=c.mask,J0=S0===void 0?null:S0,e0=c.maskId,U1=e0===void 0?null:e0,Q1=c.classes,B1=Q1===void 0?[]:Q1,R1=c.attributes,_K=R1===void 0?{}:R1,qK=c.styles,iK=qK===void 0?{}:qK;if(!y)return;var{prefix:uK,iconName:UV,icon:dV}=y;return kz(T({type:"icon"},y),function(){return dQ("beforeDOMElementCreation",{iconDefinition:y,params:c}),s6({icons:{main:m6(dV),mask:J0?m6(J0.icon):{found:!1,width:null,height:null,icon:{}}},prefix:uK,iconName:UV,transform:T(T({},LQ),i),symbol:X0,maskId:U1,extra:{attributes:_K,styles:iK,classes:B1}})})},$C={mixout:function(){return{icon:AC(RC)}},hooks:function(){return{mutationObserverCallbacks:function(c){return c.treeCallback=OW,c.nodeCallback=XC,c}}},provides:function(y){y.i2svg=function(c){var l=c.node,i=l===void 0?W:l,M0=c.callback,X0=M0===void 0?function(){}:M0;return OW(i,X0)},y.generateSvgReplacementMutation=function(c,l){var{iconName:i,prefix:M0,transform:X0,symbol:S0,mask:J0,maskId:e0,extra:U1}=l;return new Promise(function(Q1,B1){Promise.all([n6(i,M0),J0.iconName?n6(J0.iconName,J0.prefix):Promise.resolve({found:!1,width:512,height:512,icon:{}})]).then(function(R1){var _K=J(R1,2),qK=_K[0],iK=_K[1];Q1([c,s6({icons:{main:qK,mask:iK},prefix:M0,iconName:i,transform:X0,symbol:S0,maskId:e0,extra:U1,watchable:!0})])}).catch(B1)})},y.generateAbstractIcon=function(c){var{children:l,attributes:i,main:M0,transform:X0,styles:S0}=c,J0=Ez(S0);if(J0.length>0)i.style=J0;var e0;if(N6(X0))e0=sQ("generateAbstractTransformGrouping",{main:M0,transform:X0,containerWidth:M0.width,iconWidth:M0.width});return l.push(e0||M0.icon),{children:l,attributes:i}}}},FC={mixout:function(){return{layer:function(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=l.classes,M0=i===void 0?[]:i;return kz({type:"layer"},function(){dQ("beforeDOMElementCreation",{assembler:c,params:l});var X0=[];return c(function(S0){Array.isArray(S0)?S0.map(function(J0){X0=X0.concat(J0.abstract)}):X0=X0.concat(S0.abstract)}),[{tag:"span",attributes:{class:["".concat(z1.cssPrefix,"-layers")].concat(k(M0)).join(" ")},children:X0}]})}}}},DC={mixout:function(){return{counter:function(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=l.title,M0=i===void 0?null:i,X0=l.classes,S0=X0===void 0?[]:X0,J0=l.attributes,e0=J0===void 0?{}:J0,U1=l.styles,Q1=U1===void 0?{}:U1;return kz({type:"counter",content:c},function(){return dQ("beforeDOMElementCreation",{content:c,params:l}),iP({content:c.toString(),title:M0,extra:{attributes:e0,styles:Q1,classes:["".concat(z1.cssPrefix,"-layers-counter")].concat(k(S0))}})})}}}},SC={mixout:function(){return{text:function(c){var l=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=l.transform,M0=i===void 0?LQ:i,X0=l.classes,S0=X0===void 0?[]:X0,J0=l.attributes,e0=J0===void 0?{}:J0,U1=l.styles,Q1=U1===void 0?{}:U1;return kz({type:"text",content:c},function(){return dQ("beforeDOMElementCreation",{content:c,params:l}),eM({content:c,transform:T(T({},LQ),M0),extra:{attributes:e0,styles:Q1,classes:["".concat(z1.cssPrefix,"-layers-text")].concat(k(S0))}})})}}},provides:function(y){y.generateLayersText=function(c,l){var{transform:i,extra:M0}=l,X0=null,S0=null;if(S){var J0=parseInt(getComputedStyle(c).fontSize,10),e0=c.getBoundingClientRect();X0=e0.width/J0,S0=e0.height/J0}return Promise.resolve([c,eM({content:c.innerHTML,width:X0,height:S0,transform:i,extra:M0,watchable:!0})])}}},MW=new RegExp('"',"ug"),WW=[1105920,1112319],XW=T(T(T(T({},{FontAwesome:{normal:"fas",400:"fas"}}),t1),zP),QK),e6=Object.keys(XW).reduce(function(x,y){return x[y.toLowerCase()]=XW[y],x},{}),PC=Object.keys(e6).reduce(function(x,y){var c=e6[y];return x[y]=c[900]||k(Object.entries(c))[0][1],x},{});function CC(x){var y=x.replace(MW,"");return pM(k(y)[0]||"")}function IC(x){var y=x.getPropertyValue("font-feature-settings").includes("ss01"),c=x.getPropertyValue("content"),l=c.replace(MW,""),i=l.codePointAt(0),M0=i>=WW[0]&&i<=WW[1],X0=l.length===2?l[0]===l[1]:!1;return M0||X0||y}function GC(x,y){var c=x.replace(/^['"]|['"]$/g,"").toLowerCase(),l=parseInt(y),i=isNaN(l)?"normal":l;return(e6[c]||{})[i]||PC[c]}function AW(x,y){var c="".concat(LP).concat(y.replace(":","-"));return new Promise(function(l,i){if(x.getAttribute(c)!==null)return l();var M0=KH(x.children),X0=M0.filter(function(VZ){return VZ.getAttribute(E6)===y})[0],S0=q.getComputedStyle(x,y),J0=S0.getPropertyValue("font-family"),e0=J0.match(MP),U1=S0.getPropertyValue("font-weight"),Q1=S0.getPropertyValue("content");if(X0&&!e0)return x.removeChild(X0),l();else if(e0&&Q1!=="none"&&Q1!==""){var B1=S0.getPropertyValue("content"),R1=GC(J0,U1),_K=CC(B1),qK=e0[0].startsWith("FontAwesome"),iK=IC(S0),uK=u6(R1,_K),UV=uK;if(qK){var dV=xP(_K);if(dV.iconName&&dV.prefix)uK=dV.iconName,R1=dV.prefix}if(uK&&!iK&&(!X0||X0.getAttribute(B6)!==R1||X0.getAttribute(J6)!==UV)){if(x.setAttribute(c,UV),X0)x.removeChild(X0);var UH=OC(),GQ=UH.extra;GQ.attributes[E6]=y,n6(uK,R1).then(function(VZ){var gC=s6(T(T({},UH),{},{icons:{main:VZ,mask:nM()},prefix:R1,iconName:UV,extra:GQ,watchable:!0})),QZ=W.createElementNS("http://www.w3.org/2000/svg","svg");if(y==="::before")x.insertBefore(QZ,x.firstChild);else x.appendChild(QZ);QZ.outerHTML=gC.map(function(yC){return K8(yC)}).join(` +`),x.removeAttribute(c),l()}).catch(i)}else l()}else l()})}function TC(x){return Promise.all([AW(x,"::before"),AW(x,"::after")])}function EC(x){return x.parentNode!==document.head&&!~YP.indexOf(x.tagName.toUpperCase())&&!x.getAttribute(E6)&&(!x.parentNode||x.parentNode.tagName!=="svg")}var BC=function(y){return!!y&&BM.some(function(c){return y.includes(c)})},JC=function(y){if(!y)return[];var c=new Set,l=y.split(/,(?![^()]*\))/).map(function(J0){return J0.trim()});l=l.flatMap(function(J0){return J0.includes("(")?J0:J0.split(",").map(function(e0){return e0.trim()})});var i=z(l),M0;try{for(i.s();!(M0=i.n()).done;){var X0=M0.value;if(BC(X0)){var S0=BM.reduce(function(J0,e0){return J0.replace(e0,"")},X0);if(S0!==""&&S0!=="*")c.add(S0)}}}catch(J0){i.e(J0)}finally{i.f()}return c};function RW(x){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!1;if(!Z)return;var c;if(y)c=x;else if(z1.searchPseudoElementsFullScan)c=x.querySelectorAll("*");else{var l=new Set,i=z(document.styleSheets),M0;try{for(i.s();!(M0=i.n()).done;){var X0=M0.value;try{var S0=z(X0.cssRules),J0;try{for(S0.s();!(J0=S0.n()).done;){var e0=J0.value,U1=JC(e0.selectorText),Q1=z(U1),B1;try{for(Q1.s();!(B1=Q1.n()).done;){var R1=B1.value;l.add(R1)}}catch(qK){Q1.e(qK)}finally{Q1.f()}}}catch(qK){S0.e(qK)}finally{S0.f()}}catch(qK){if(z1.searchPseudoElementsWarnings)console.warn("Font Awesome: cannot parse stylesheet: ".concat(X0.href," (").concat(qK.message,`) +If it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin="anonymous" to the , enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.`))}}}catch(qK){i.e(qK)}finally{i.f()}if(!l.size)return;var _K=Array.from(l).join(", ");try{c=x.querySelectorAll(_K)}catch(qK){}}return new Promise(function(qK,iK){var uK=KH(c).filter(EC).map(TC),UV=i6.begin("searchPseudoElements");LW(),Promise.all(uK).then(function(){UV(),a6(),qK()}).catch(function(){UV(),a6(),iK()})})}var vC={hooks:function(){return{mutationObserverCallbacks:function(c){return c.pseudoElementsCallback=RW,c}}},provides:function(y){y.pseudoElements2svg=function(c){var l=c.node,i=l===void 0?W:l;if(z1.searchPseudoElements)RW(i)}}},$W=!1,kC={mixout:function(){return{dom:{unwatch:function(){LW(),$W=!0}}}},hooks:function(){return{bootstrap:function(){ZW(b6("mutationObserverCallbacks",{}))},noAuto:function(){LC()},watch:function(c){var l=c.observeMutationsRoot;if($W)a6();else ZW(b6("mutationObserverCallbacks",{observeMutationsRoot:l}))}}}},FW=function(y){var c={size:16,x:0,y:0,flipX:!1,flipY:!1,rotate:0};return y.toLowerCase().split(" ").reduce(function(l,i){var M0=i.toLowerCase().split("-"),X0=M0[0],S0=M0.slice(1).join("-");if(X0&&S0==="h")return l.flipX=!0,l;if(X0&&S0==="v")return l.flipY=!0,l;if(S0=parseFloat(S0),isNaN(S0))return l;switch(X0){case"grow":l.size=l.size+S0;break;case"shrink":l.size=l.size-S0;break;case"left":l.x=l.x-S0;break;case"right":l.x=l.x+S0;break;case"up":l.y=l.y-S0;break;case"down":l.y=l.y+S0;break;case"rotate":l.rotate=l.rotate+S0;break}return l},c)},fC={mixout:function(){return{parse:{transform:function(c){return FW(c)}}}},hooks:function(){return{parseNodeAttributes:function(c,l){var i=l.getAttribute("data-fa-transform");if(i)c.transform=FW(i);return c}}},provides:function(y){y.generateAbstractTransformGrouping=function(c){var{main:l,transform:i,containerWidth:M0,iconWidth:X0}=c,S0={transform:"translate(".concat(M0/2," 256)")},J0="translate(".concat(i.x*32,", ").concat(i.y*32,") "),e0="scale(".concat(i.size/16*(i.flipX?-1:1),", ").concat(i.size/16*(i.flipY?-1:1),") "),U1="rotate(".concat(i.rotate," 0 0)"),Q1={transform:"".concat(J0," ").concat(e0," ").concat(U1)},B1={transform:"translate(".concat(X0/2*-1," -256)")},R1={outer:S0,inner:Q1,path:B1};return{tag:"g",attributes:T({},R1.outer),children:[{tag:"g",attributes:T({},R1.inner),children:[{tag:l.icon.tag,children:l.icon.children,attributes:T(T({},l.icon.attributes),R1.path)}]}]}}}},KZ={x:0,y:0,width:"100%",height:"100%"};function DW(x){var y=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;if(x.attributes&&(x.attributes.fill||y))x.attributes.fill="black";return x}function wC(x){if(x.tag==="g")return x.children;else return[x]}var jC={hooks:function(){return{parseNodeAttributes:function(c,l){var i=l.getAttribute("data-fa-mask"),M0=!i?nM():vz(i.split(" ").map(function(X0){return X0.trim()}));if(!M0.prefix)M0.prefix=lQ();return c.mask=M0,c.maskId=l.getAttribute("data-fa-mask-id"),c}}},provides:function(y){y.generateAbstractMask=function(c){var{children:l,attributes:i,main:M0,mask:X0,maskId:S0,transform:J0}=c,e0=M0.width,U1=M0.icon,Q1=X0.width,B1=X0.icon,R1=GP({transform:J0,containerWidth:Q1,iconWidth:e0}),_K={tag:"rect",attributes:T(T({},KZ),{},{fill:"white"})},qK=U1.children?{children:U1.children.map(DW)}:{},iK={tag:"g",attributes:T({},R1.inner),children:[DW(T({tag:U1.tag,attributes:T(T({},U1.attributes),R1.path)},qK))]},uK={tag:"g",attributes:T({},R1.outer),children:[iK]},UV="mask-".concat(S0||wM()),dV="clip-".concat(S0||wM()),UH={tag:"mask",attributes:T(T({},KZ),{},{id:UV,maskUnits:"userSpaceOnUse",maskContentUnits:"userSpaceOnUse"}),children:[_K,uK]},GQ={tag:"defs",children:[{tag:"clipPath",attributes:{id:dV},children:wC(B1)},UH]};return l.push(GQ,{tag:"rect",attributes:T({fill:"currentColor","clip-path":"url(#".concat(dV,")"),mask:"url(#".concat(UV,")")},KZ)}),{children:l,attributes:i}}}},xC={provides:function(y){var c=!1;if(q.matchMedia)c=q.matchMedia("(prefers-reduced-motion: reduce)").matches;y.missingIconAbstract=function(){var l=[],i={fill:"currentColor"},M0={attributeType:"XML",repeatCount:"indefinite",dur:"2s"};l.push({tag:"path",attributes:T(T({},i),{},{d:"M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z"})});var X0=T(T({},M0),{},{attributeName:"opacity"}),S0={tag:"circle",attributes:T(T({},i),{},{cx:"256",cy:"364",r:"28"}),children:[]};if(!c)S0.children.push({tag:"animate",attributes:T(T({},M0),{},{attributeName:"r",values:"28;14;28;28;14;28;"})},{tag:"animate",attributes:T(T({},X0),{},{values:"1;0;1;1;0;1;"})});if(l.push(S0),l.push({tag:"path",attributes:T(T({},i),{},{opacity:"1",d:"M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z"}),children:c?[]:[{tag:"animate",attributes:T(T({},X0),{},{values:"1;0;0;0;0;1;"})}]}),!c)l.push({tag:"path",attributes:T(T({},i),{},{opacity:"0",d:"M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z"}),children:[{tag:"animate",attributes:T(T({},X0),{},{values:"0;0;1;1;0;0;"})}]});return{tag:"g",attributes:{class:"missing"},children:l}}}},_C={hooks:function(){return{parseNodeAttributes:function(c,l){var i=l.getAttribute("data-fa-symbol"),M0=i===null?!1:i===""?!0:i;return c.symbol=M0,c}}}},NC=[BP,$C,FC,DC,SC,vC,kC,fC,jC,xC,_C];bP(NC,{mixoutsTo:d6}),SP(oP)})();var bC;((K)=>{K[K.NONE=0]="NONE",K[K.ERROR=1]="ERROR",K[K.WARNING=2]="WARNING",K[K.INFO=3]="INFO",K[K.DEBUG=4]="DEBUG",K[K.ALL=5]="ALL"})(bC||={});class Y8{static _level=0;static get currentLevel(){return this._level}static level(K){if(typeof K==="number")this._level=K;return this._level}static setLevel(K){this._level=K}static isEnabled(K){return this._level>=K}static log(...K){if(this._level>=4)console.log(...K)}static debug(...K){if(this._level>=4)console.debug(...K)}static info(...K){if(this._level>=3)console.info(...K)}static error(...K){if(this._level>=1)console.error(...K)}static warning(...K){if(this._level>=2)console.warn(...K)}static warn(...K){this.warning(...K)}static table(K,V){if(this._level>=4)console.table(K,V)}static group(...K){if(this._level>=4)console.group(...K)}static groupCollapsed(...K){if(this._level>=4)console.groupCollapsed(...K)}static groupEnd(){if(this._level>=4)console.groupEnd()}static time(K){if(this._level>=4)console.time(K)}static timeLog(K,...V){if(this._level>=4)console.timeLog(K,...V)}static timeEnd(K){if(this._level>=4)console.timeEnd(K)}static trace(...K){if(this._level>=4)console.trace(...K)}static assert(K,...V){if(this._level>=1)console.assert(K,...V)}static clear(){if(this._level>=4)console.clear()}static count(K){if(this._level>=4)console.count(K)}static countReset(K){if(this._level>=4)console.countReset(K)}static dir(K){if(this._level>=4)console.dir(K)}static dirxml(K){if(this._level>=4)console.dirxml(K)}static format(K,...V){let Q=K,U=0;return Q=Q.replace(/%[sdioOcj%]/g,(H)=>{if(H==="%%")return"%";if(U>=V.length)return H;let Y=V[U++];switch(H){case"%s":return String(Y);case"%d":case"%i":return String(parseInt(String(Y),10));case"%o":case"%O":return JSON.stringify(Y);case"%c":return"";case"%j":return JSON.stringify(Y);default:return H}}),Q}}var Z8=new WeakMap;class bK{collection;length;constructor(K){if(!K)this.collection=[];else if(typeof K==="string")this.collection=Array.from(document.querySelectorAll(K));else if(K instanceof NodeList)this.collection=Array.from(K);else if(K instanceof bK)this.collection=K.collection;else if(K instanceof Element)this.collection=[K];else if(Array.isArray(K))this.collection=K;else this.collection=[];this.length=this.collection.length}hide(){return this.style("display","none")}show(K="block"){return this.style("display",K)}addClass(K){return this.collection.forEach((V)=>V.classList.add(K)),this}removeClass(K){return this.collection.forEach((V)=>{if(!K)V.className="";else V.classList.remove(K)}),this}toggleClass(K){let V=K.split(" ");return this.collection.forEach((Q)=>{V.forEach((U)=>Q.classList.toggle(U))}),this}hasClass(K){if(this.length===0)return!1;return this.collection.every((V)=>V.classList.contains(K))}value(K){if(K!==void 0){let Q=String(K);for(let U of this.collection)if(U instanceof HTMLInputElement||U instanceof HTMLTextAreaElement||U instanceof HTMLSelectElement||U instanceof HTMLButtonElement||U instanceof HTMLOptionElement)U.value=Q;return this}if(this.length===0)return;let V=this.collection[0];if(V instanceof HTMLInputElement||V instanceof HTMLTextAreaElement||V instanceof HTMLSelectElement||V instanceof HTMLButtonElement||V instanceof HTMLOptionElement)return V.value;return}focus(){if(this.length>0)this.collection[0].focus();return this}blur(){if(this.length>0)this.collection[0].blur();return this}click(K){return this.on("click",K)}keyup(K){return this.on("keyup",K)}keydown(K){return this.on("keydown",K)}submit(K){return this.on("submit",K)}change(K){return this.on("change",K)}scroll(K){return this.on("scroll",K)}input(K){return this.on("input",K)}on(K,V,Q){let U=K.split(" "),H=typeof V==="string",Y=H?Q:V,z=H?V:null;if(!Y)return this;return this.collection.forEach((M)=>{U.forEach((A)=>{let R=H&&z?(F)=>{let P=F.target;if(P instanceof Element){let G=P.closest(z);if(G&&M.contains(G))Y.call(G,F)}}:Y;if(!Z8.has(M))Z8.set(M,new Map);let D=Z8.get(M);if(!D.has(A))D.set(A,[]);D.get(A).push({selector:z,originalCallback:Y,wrappedListener:R}),M.addEventListener(A,R,!1)})}),this}off(K,V,Q){return this.collection.forEach((U)=>{let H=Z8.get(U);if(!H)return;let Y=K?K.split(" "):Array.from(H.keys()),z=typeof V==="string",M=z?V:void 0,A=z?Q:V;if(Y.forEach((R)=>{let D=H.get(R);if(!D)return;let F=D.filter((G)=>{if(A&&G.originalCallback!==A)return!1;if(M!==void 0&&G.selector!==M)return!1;return!0});F.forEach((G)=>{U.removeEventListener(R,G.wrappedListener)});let P=D.filter((G)=>!F.includes(G));if(P.length>0)H.set(R,P);else H.delete(R)}),H.size===0)Z8.delete(U)}),this}trigger(K,V){let Q=K.split(" ");return this.collection.forEach((U)=>{Q.forEach((H)=>{let Y=V!==void 0?new CustomEvent(H,{detail:V,bubbles:!0,cancelable:!0}):new Event(H,{bubbles:!0,cancelable:!0});U.dispatchEvent(Y)})}),this}filter(K){return new bK(this.collection.filter((V)=>V.matches(K)))}exists(){return this.length>0}data(K,V){if(V!==void 0)return this.collection.forEach((Q)=>Q.dataset[K]=V),this;return this.length>0?this.collection[0].dataset[K]:void 0}removeData(K){return this.collection.forEach((V)=>delete V.dataset[K]),this}text(K){if(K!==void 0){let V=String(K);for(let Q of this.collection)Q.textContent=V;return this}if(this.length===0)return;return this.collection[0].textContent||""}html(K){if(K!==void 0){let V=String(K);for(let Q of this.collection)Q.innerHTML=V;return this}if(this.length===0)return;return this.collection[0].innerHTML}append(K){return this.collection.forEach((V,Q)=>{if(typeof K==="string")V.insertAdjacentHTML("beforeend",K);else{let U=Q===0?K:K.cloneNode(!0);V.appendChild(U)}}),this}prepend(K){return this.collection.forEach((V,Q)=>{if(typeof K==="string")V.insertAdjacentHTML("afterbegin",K);else{let U=Q===0?K:K.cloneNode(!0);V.prepend(U)}}),this}each(K){return this.collection.forEach((V,Q)=>K(V,Q)),this}get(K){return this.collection[K]}first(){return new bK(this.collection[0]??null)}last(){return new bK(this.collection[this.collection.length-1]??null)}eq(K){let V=K<0?this.collection.length+K:K;return new bK(this.collection[V]??null)}isVisible(){return this.collection.some((K)=>K.style.display!=="none"&&K.offsetWidth>0&&K.offsetHeight>0)}parent(){let K=new Set;return this.collection.forEach((V)=>{if(V.parentElement)K.add(V.parentElement)}),new bK(Array.from(K))}parents(){let K=new Set;return this.collection.forEach((V)=>{let Q=V.parentElement;while(Q)K.add(Q),Q=Q.parentElement}),new bK(Array.from(K))}find(K){let V=new Set;for(let Q of this.collection){let U=Q.querySelectorAll(K);for(let H of U)V.add(H)}return new bK(Array.from(V))}offset(){if(this.length===0)return;let K=this.collection[0].getBoundingClientRect();return{top:K.top+window.scrollY,left:K.left+window.scrollX}}width(){if(this.length===0)return 0;return this.collection[0].getBoundingClientRect().width}height(){if(this.length===0)return 0;return this.collection[0].getBoundingClientRect().height}closest(K){let V=new Set;return this.collection.forEach((Q)=>{let U=Q.closest(K);if(U)V.add(U)}),new bK(Array.from(V))}attribute(K,V){if(V!==void 0)return this.collection.forEach((Q)=>Q.setAttribute(K,String(V))),this;return this.length>0?this.collection[0].getAttribute(K):void 0}removeAttribute(K){return this.collection.forEach((V)=>V.removeAttribute(K)),this}hasAttribute(K){if(this.length===0)return!1;return this.collection.every((V)=>V.hasAttribute(K))}after(K){return this.collection.forEach((V)=>V.insertAdjacentHTML("afterend",K)),this}before(K){return this.collection.forEach((V)=>V.insertAdjacentHTML("beforebegin",K)),this}style(K,V){if(typeof K==="string"&&V===void 0)return this.length>0?this.collection[0].style.getPropertyValue(K):"";return this.collection.forEach((Q)=>{if(typeof K==="string"&&V!==void 0)Q.style.setProperty(K,V);else if(typeof K==="object")Object.entries(K).forEach(([U,H])=>{Q.style.setProperty(U,String(H))})}),this}animate(K,V){return this.collection.forEach((Q)=>Q.animate(K,V)),this}fadeIn(K=400,V){return this.collection.forEach((Q,U)=>{if(getComputedStyle(Q).display==="none")Q.style.display="block";let H=Q.animate([{opacity:0},{opacity:1}],{duration:K,fill:"forwards"});if(V&&U===this.collection.length-1)H.onfinish=()=>V()}),this}fadeOut(K=400,V){return this.collection.forEach((Q,U)=>{let H=Q.animate([{opacity:1},{opacity:0}],{duration:K,fill:"forwards"});H.onfinish=()=>{if(Q.style.display="none",V&&U===this.collection.length-1)V()}}),this}matches(K){if(this.length===0)return!1;return this.collection.every((V)=>V.matches(K))}remove(){return this.collection.forEach((K)=>K.remove()),this}empty(){return this.collection.forEach((K)=>{K.innerHTML=""}),this}clone(K=!0){let V=this.collection.map((Q)=>Q.cloneNode(K));return new bK(V)}replaceWith(K){for(let V=this.collection.length-1;V>=0;V--){let Q=this.collection[V];if(typeof K==="string")Q.outerHTML=K;else{let U=V===0?K:K.cloneNode(!0);Q.replaceWith(U)}}return this}reset(){return this.collection.forEach((K)=>{if(K instanceof HTMLFormElement)K.reset()}),this}property(K,V){if(V!==void 0)return this.collection.forEach((Q)=>{Q[K]=V}),this;if(this.length===0)return;return this.collection[0][K]}siblings(){let K=new Set;return this.collection.forEach((V)=>{if(V.parentElement)Array.from(V.parentElement.children).forEach((Q)=>{if(Q!==V&&Q instanceof HTMLElement)K.add(Q)})}),new bK(Array.from(K))}next(){let K=new Set;return this.collection.forEach((V)=>{let Q=V.nextElementSibling;if(Q instanceof HTMLElement)K.add(Q)}),new bK(Array.from(K))}prev(){let K=new Set;return this.collection.forEach((V)=>{let Q=V.previousElementSibling;if(Q instanceof HTMLElement)K.add(Q)}),new bK(Array.from(K))}children(){let K=new Set;return this.collection.forEach((V)=>{Array.from(V.children).forEach((Q)=>{if(Q instanceof HTMLElement)K.add(Q)})}),new bK(Array.from(K))}scrollIntoView(K){if(this.length>0)this.collection[0].scrollIntoView(K);return this}}function m0(K){return new bK(K)}function _z(K){if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",K);else K()}function Nj(K,V){let Q=document.createElement(K);if(V)Object.entries(V).forEach(([U,H])=>{Q.setAttribute(U,H)});return new bK(Q)}class HH extends Error{status;statusText;response;constructor(K,V){super(V||`Request failed: ${K.status} ${K.statusText}`);this.name="RequestError",this.status=K.status,this.statusText=K.statusText,this.response=K}}class IW extends Error{constructor(K,V){super(`Request to "${K}" timed out after ${V}ms`);this.name="RequestTimeoutError"}}class TK{static serialize(K,V){if(K instanceof FormData){let U=new URLSearchParams;return K.forEach((H,Y)=>{if(typeof H==="string")U.append(Y,H)}),U.toString()}let Q=[];for(let[U,H]of Object.entries(K)){if(H===void 0||H===null)continue;let Y=V?`${V}[${U}]`:U;if(Array.isArray(H))H.forEach((z,M)=>{if(typeof z==="object"&&z!==null)Q.push(TK.serialize(z,`${Y}[${M}]`));else Q.push(`${encodeURIComponent(Y)}[]=${encodeURIComponent(String(z))}`)});else if(typeof H==="object")Q.push(TK.serialize(H,Y));else Q.push(`${encodeURIComponent(Y)}=${encodeURIComponent(String(H))}`)}return Q.filter(Boolean).join("&")}static parseUrl(K){try{return new URL(K)}catch{try{return new URL(K,window.location.origin)}catch(V){throw Error(`Invalid URL: "${K}"`)}}}static createTimeoutController(K,V){let Q=new AbortController;if(!K)return{controller:Q};let U=setTimeout(()=>{Q.abort(new IW(V,K))},K);return{controller:Q,timeoutId:U}}static async send(K,V,Q={},U={}){let{timeout:H,...Y}=U,z=TK.parseUrl(V),M=void 0,A={...Y.headers};if(["GET","DELETE","HEAD"].includes(K.toUpperCase())){if(Q&&typeof Q==="object"&&!(Q instanceof FormData))Object.entries(Q).forEach(([F,P])=>{if(P!==void 0&&P!==null)if(typeof P==="object"){let G=TK.serialize({[F]:P});new URLSearchParams(G).forEach((T,v)=>z.searchParams.append(v,T))}else z.searchParams.append(F,String(P))})}else{let F=A["Content-Type"]||A["content-type"];if(Q instanceof FormData)delete A["Content-Type"],delete A["content-type"],M=Q;else if(F==="application/json")M=JSON.stringify(Q);else{if(!F)A["Content-Type"]="application/x-www-form-urlencoded";let P=new URLSearchParams;Object.entries(Q).forEach(([G,T])=>P.append(G,String(T))),M=P}}let{controller:R,timeoutId:D}=TK.createTimeoutController(H,V);try{return await fetch(z.toString(),{...Y,method:K,headers:A,body:M,signal:R.signal})}finally{if(D)clearTimeout(D)}}static get(K,V={},Q={}){return TK.send("GET",K,V,Q)}static post(K,V,Q={}){return TK.send("POST",K,V,Q)}static put(K,V,Q={}){return TK.send("PUT",K,V,Q)}static patch(K,V,Q={}){return TK.send("PATCH",K,V,Q)}static delete(K,V={},Q={}){return TK.send("DELETE",K,V,Q)}static head(K,V={},Q={}){return TK.send("HEAD",K,V,Q)}static async json(K,V={},Q={}){let U=await TK.get(K,V,Q);if(!U.ok)throw new HH(U);return U.json()}static async postJson(K,V,Q={}){let U={...Q.headers,"Content-Type":"application/json"},H=await TK.post(K,V,{...Q,headers:U});if(!H.ok)throw new HH(H);return H.json()}static async blob(K,V={},Q={}){let U=await TK.get(K,V,Q);if(!U.ok)throw new HH(U);return U.blob()}static async text(K,V={},Q={}){let U=await TK.get(K,V,Q);if(!U.ok)throw new HH(U);return U.text()}static async arrayBuffer(K,V={},Q={}){let U=await TK.get(K,V,Q);if(!U.ok)throw new HH(U);return U.arrayBuffer()}static async exists(K,V={}){try{return(await TK.head(K,{},V)).ok}catch{return!1}}}class GU{static async readRemote(K,V="base64",Q={}){let U=await TK.blob(K,{},Q);return GU.read(U,V)}static async read(K,V="text"){switch(V){case"text":return K.text();case"buffer":return K.arrayBuffer();case"base64":return new Promise((Q,U)=>{let H=new FileReader;H.onload=()=>Q(H.result),H.onerror=()=>U(H.error),H.readAsDataURL(K)});case"binary":return new Promise((Q,U)=>{let H=new FileReader;H.onload=()=>{let Y=H.result,z="",M=new Uint8Array(Y),A=M.byteLength;for(let R=0;RU(H.error),H.readAsArrayBuffer(K)});default:throw Error(`FileSystem.read: Unknown type ${V}`)}}static create(K,V,Q="text/plain"){return new File([V],K,{type:Q})}static download(K,V){let Q=URL.createObjectURL(K),U=document.createElement("a");U.href=Q;let H;if(V!==void 0&&V!=="")H=V;else if(K instanceof File&&K.name!=="")H=K.name;else H="download";U.download=H,document.body.appendChild(U),U.click(),document.body.removeChild(U),URL.revokeObjectURL(Q)}static extension(K,V=!1){let Q=K.split(".");if(Q.length===1||Q[0]===""&&Q.length===2&&!V)return"";return Q.pop()?.toLowerCase()??""}static isImage(K){let V=GU.extension(K);return new Set(["jpg","jpeg","png","gif","svg","webp","avif","bmp","ico","tiff","heic"]).has(V)}static isVideo(K){let V=GU.extension(K);return new Set(["mp4","webm","ogg","mov","avi","mkv","m4v"]).has(V)}static isAudio(K){let V=GU.extension(K);return new Set(["mp3","wav","ogg","flac","aac","m4a","wma"]).has(V)}static humanSize(K,V=2){if(K===0)return"0 Bytes";let Q=1024,U=["Bytes","KB","MB","GB","TB","PB"],H=Math.floor(Math.log(K)/Math.log(Q));return parseFloat((K/Math.pow(Q,H)).toFixed(V))+" "+U[H]}}class xz{static fill(K,V){let Q=document.querySelector(`form[data-form='${K}']`);if(!Q){console.warn(`Form [data-form='${K}'] not found.`);return}Object.entries(V).forEach(([U,H])=>{let Y=Q.querySelectorAll(`[name='${U}']`);if(Y.length===0)return;let z=Y[0].type,M=String(H);switch(z){case"radio":Y.forEach((A)=>{let R=A;if(R.value===M)R.checked=!0});break;case"checkbox":if(Y.length===1)Y[0].checked=!!H;else if(Array.isArray(H)){let A=H.map(String);Y.forEach((R)=>{let D=R;D.checked=A.includes(D.value)})}break;case"file":break;default:Y[0].value=M;break}})}static values(K,V={}){let{parseNumbers:Q=!0,parseBooleans:U=!0}=V,H=document.querySelector(`form[data-form='${K}']`);if(!H)return console.warn(`Form [data-form='${K}'] not found.`),{};let Y=new FormData(H),z={},M=Array.from(new Set(Y.keys()));for(let A of M){let R=Y.getAll(A),D=H.querySelector(`[name='${A}']`),F=D?.type;if(F==="file"){let P=R.filter((G)=>G instanceof File);if(D?.multiple||P.length>1)z[A]=P;else z[A]=P[0]||null;continue}if(F==="checkbox"){let P=H.querySelectorAll(`[name='${A}']`);if(P.length===1&&U){z[A]=P[0].checked;continue}z[A]=R.map((G)=>xz.parseValue(String(G),Q));continue}if(F==="number"&&Q){if(R.length>1)z[A]=R.map((P)=>parseFloat(String(P)));else z[A]=parseFloat(String(R[0]));continue}if(R.length>1)z[A]=R.map((P)=>xz.parseValue(String(P),Q));else z[A]=xz.parseValue(String(R[0]),Q)}return z}static parseValue(K,V){if(V&&K!==""&&!isNaN(Number(K)))return Number(K);return K}static reset(K){let V=document.querySelector(`form[data-form='${K}']`);if(!V){console.warn(`Form [data-form='${K}'] not found.`);return}V.reset()}static isValid(K){let V=document.querySelector(`form[data-form='${K}']`);if(!V)return console.warn(`Form [data-form='${K}'] not found.`),!1;return V.checkValidity()}static reportValidity(K){let V=document.querySelector(`form[data-form='${K}']`);if(!V)return console.warn(`Form [data-form='${K}'] not found.`),!1;return V.reportValidity()}}class C1{static get retina(){return window.devicePixelRatio>=2}static get portrait(){return window.matchMedia("(orientation: portrait)").matches}static get landscape(){return window.matchMedia("(orientation: landscape)").matches}static get orientation(){return C1.portrait?"portrait":"landscape"}static get darkMode(){return window.matchMedia("(prefers-color-scheme: dark)").matches}static get reducedMotion(){return window.matchMedia("(prefers-reduced-motion: reduce)").matches}static get touch(){return"ontouchstart"in window||navigator.maxTouchPoints>0}static get standalone(){let K=navigator;return window.matchMedia("(display-mode: standalone)").matches||K.standalone===!0}static get electron(){let K=window;if(navigator.userAgent.toLowerCase().includes(" electron/"))return!0;if(K.process?.type==="renderer")return!0;if(K.process?.versions?.electron)return!0;return!1}static get electrobun(){return!!window.__electrobun}static get desktopApp(){return C1.electron||C1.electrobun}static get cordova(){return!!window.cordova}static get userAgent(){return navigator.userAgent.toLowerCase()}static desktop(K="Any"){let V=navigator;if(V.userAgentData?.mobile===!0)return!1;if(C1.isIpadOS())return!1;let Q=C1.userAgent,U=V.userAgentData?.platform?.toLowerCase()||"",H={ChromeOS:U.includes("cros")||Q.includes("cros"),Windows:U.includes("windows")||Q.includes("windows"),macOS:U.includes("macos")||Q.includes("macintosh"),Linux:!Q.includes("android")&&(U.includes("linux")||Q.includes("linux")),FreeBSD:U.includes("freebsd")||Q.includes("freebsd")};if(K==="Any")return Object.values(H).some((Y)=>Y);return H[K]||!1}static mobile(K="Any"){if(navigator.userAgentData?.mobile===!0&&K==="Any")return!0;let V=C1.userAgent,Q={Android:V.includes("android"),iOS:/iphone|ipod/.test(V),iPadOS:C1.isIpadOS(),WindowsMobile:/windows phone|iemobile|wpdesktop/.test(V),BlackBerry:/blackberry|bb10/.test(V)};if(K==="Any")return Object.values(Q).some((U)=>U);return Q[K]||!1}static isIpadOS(){let K=C1.userAgent;if(K.includes("ipad"))return!0;if(K.includes("macintosh")&&navigator.maxTouchPoints>0)return!0;return!1}static get serviceWorkers(){return"serviceWorker"in navigator&&window.isSecureContext}static get coarsePointer(){return window.matchMedia("(pointer: coarse)").matches}static get finePointer(){return window.matchMedia("(pointer: fine)").matches}static get canHover(){return window.matchMedia("(hover: hover)").matches}}class tK{static async image(K){let V=new Image;return V.src=K,await V.decode(),V}static async images(K){return Promise.all(K.map((V)=>tK.image(V)))}static async file(K,V="low"){let Q=await fetch(K,{priority:V});if(!Q.ok)throw Error(`Preload failed for "${K}": ${Q.status} ${Q.statusText}`);return Q}static async files(K,V="low"){return Promise.all(K.map((Q)=>tK.file(Q,V)))}static async isCached(K,V){if(!("caches"in window))return!1;try{return!!await(await caches.open(K)).match(V)}catch{return!1}}static async addToCache(K,V){if(!("caches"in window))throw Error("Cache API is not supported in this browser");try{await(await caches.open(K)).add(V)}catch(Q){throw Error(`Failed to cache "${V}": ${Q instanceof Error?Q.message:String(Q)}`)}}static async addAllToCache(K,V){if(!("caches"in window))throw Error("Cache API is not supported in this browser");try{await(await caches.open(K)).addAll(V)}catch(Q){throw Error(`Failed to cache URLs: ${Q instanceof Error?Q.message:String(Q)}`)}}static async stylesheet(K){return new Promise((V,Q)=>{let U=document.createElement("link");U.rel="preload",U.as="style",U.href=K,U.onload=()=>V(),U.onerror=()=>Q(Error(`Failed to preload stylesheet: ${K}`)),document.head.appendChild(U)})}static async script(K){return new Promise((V,Q)=>{let U=document.createElement("link");U.rel="preload",U.as="script",U.href=K,U.onload=()=>V(),U.onerror=()=>Q(Error(`Failed to preload script: ${K}`)),document.head.appendChild(U)})}static async font(K,V=!0){return new Promise((Q,U)=>{let H=document.createElement("link");if(H.rel="preload",H.as="font",H.href=K,V)H.crossOrigin="anonymous";H.onload=()=>Q(),H.onerror=()=>U(Error(`Failed to preload font: ${K}`)),document.head.appendChild(H)})}static async audio(K,V){let Q=await fetch(K);if(!Q.ok)throw Error(`Preload failed for "${K}": ${Q.status} ${Q.statusText}`);let U=await Q.arrayBuffer(),H=V??new AudioContext,Y=!V;try{return await H.decodeAudioData(U)}finally{if(Y)await H.close()}}static async audios(K,V){let Q=V??new AudioContext,U=!V;try{return await Promise.all(K.map((H)=>tK.audio(H,Q)))}finally{if(U)await Q.close()}}}function TQ(K){if(K==="")return 0;let V=K.split("."),Q=0,U=[1000000000000,1e8,1e4];for(let H=0;HHZ(Q));let V={};for(let Q of Object.keys(K))V[Q]=HZ(K[Q]);return V}function lC(K,V){let Q=K.endsWith("/")?K.slice(0,-1):K,U=V.startsWith("/")?V:`/${V}`;return`${Q}${U}`}class zZ extends Error{constructor(K){super(`Key "${K}" not found in storage`);this.name="KeyNotFoundError"}}class LZ{name;version;store;id;numericVersion;upgrades;storage;_openPromise;constructor({name:K="",version:V="",store:Q=""}){this.name=K,this.version=V,this.store=Q,this.upgrades={},this.numericVersion=TQ(V),this.id=this.computeId()}computeId(){if(this.name!==""&&this.version!==""&&this.store!=="")return`${this.name}::${this.store}::${this.version}_`;else if(this.name!==""&&this.version!=="")return`${this.name}::${this.version}_`;else if(this.name!=="")return`${this.name}::_`;else return""}configuration(K){if(K.name!==void 0)this.name=K.name;if(K.version!==void 0)this.version=K.version,this.numericVersion=TQ(K.version);if(K.store!==void 0)this.store=K.store;this.id=this.computeId()}async open(){if(this.storage instanceof Storage)return this;if(this._openPromise)return this._openPromise;this._openPromise=(async()=>{let K=[];if(this.version!==""){let V="";if(this.name!==""&&this.version!==""&&this.store!=="")V=`${this.name}::${this.store}::`;else if(this.name!==""&&this.version!=="")V=`${this.name}::`;let Q=Object.keys(window.localStorage).filter((U)=>{return U.indexOf(V)===0}).map((U)=>{return U.replace(V,"").split("_")[0]}).filter((U)=>{return U.indexOf("::")===-1}).sort();if(Q.length>0){let U=Q[0],H=TQ(U);if(H{let[F]=R.split("::").map(Number),[P]=D.split("::").map(Number);return F-P}),z=Y.findIndex((R)=>{let[D]=R.split("::");return parseInt(D)===H});if(z>-1)K=Y.slice(z).filter((R)=>{let[D,F]=R.split("::");return parseInt(D){return R.indexOf(M)===0}).map((R)=>{return R.replace(M,"")});for(let R of A){let D=window.localStorage.getItem(`${M}${R}`);if(D!==null)window.localStorage.setItem(this.id+R,D);window.localStorage.removeItem(`${M}${R}`)}}}}this.storage=window.localStorage;for(let V of K)try{await this.upgrades[V].call(this,this)}catch(Q){console.error(Q)}return this})();try{return await this._openPromise}finally{this._openPromise=void 0}}async set(K,V){return await this.open(),this.storage.setItem(this.id+K,JSON.stringify(V)),{key:K,value:V}}async update(K,V){try{let Q=await this.get(K);if(typeof Q==="object"&&Q!==null){if(typeof V==="object"&&V!==null)V={...Q,...V}}return this.storage.setItem(this.id+K,JSON.stringify(V)),{key:K,value:V}}catch{return this.set(K,V)}}async get(K){await this.open();let V=this.storage.getItem(this.id+K);if(V===null)throw new zZ(K);try{return JSON.parse(V)}catch{return V}}async getAll(){let K=await this.keys(),V={};for(let Q of K)try{V[Q]=await this.get(Q)}catch{}return V}async contains(K){if((await this.keys()).includes(K))return;else throw new zZ(K)}async upgrade(K,V,Q){let U=`${TQ(K)}::${TQ(V)}`;return this.upgrades[U]=Q,Promise.resolve()}async rename(K){if(this.name===K)throw Error("Cannot rename: new name is identical to current name");let V=await this.keys(),Q=this.id;this.name=K,this.id=this.computeId();for(let U of V){let H=this.storage.getItem(`${Q}${U}`);if(H!==null)this.storage.setItem(this.id+U,H),this.storage.removeItem(`${Q}${U}`)}}async key(K,V=!1){let Q=await this.keys(V);if(K<0||K>=Q.length)throw Error(`Index ${K} out of bounds. Space has ${Q.length} keys.`);return Q[K]}async keys(K=!1){return await this.open(),Object.keys(this.storage).filter((V)=>{return V.indexOf(this.id)===0}).map((V)=>{if(K===!0)return V;else return V.replace(this.id,"")})}async remove(K){let V=await this.get(K);return this.storage.removeItem(this.id+K),V}async clear(){let K=await this.keys();for(let V of K)this.storage.removeItem(this.id+V)}}class GW extends LZ{constructor({name:K="",version:V="",store:Q=""}){super({name:K,version:V,store:Q})}async open(){if(this.storage instanceof Storage)return this;return this.storage=window.sessionStorage,this}async upgrade(K,V,Q){return console.warn("SessionStorage.upgrade() is a no-op. Session data is temporary and does not support migrations."),Promise.resolve()}}class TW extends Error{constructor(K){super(`Key "${K}" not found in IndexedDB`);this.name="KeyNotFoundError"}}class EW{name;version;store;props;index;keyPath;numericVersion;upgrades;storage;constructor({name:K="",version:V="",store:Q="",props:U={},index:H={}}){this.name=K,this.version=V,this.store=Q,this.props=U||{},this.index=H,this.keyPath=U?.keyPath||"id",this.upgrades={},this.numericVersion=TQ(V)}configuration(K){if(K.name!==void 0)this.name=K.name;if(K.version!==void 0)this.version=K.version,this.numericVersion=TQ(K.version);if(K.store!==void 0)this.store=K.store}async open(){if(this.name==="")throw Error("IndexedDB requires a name. No name has been defined for this space.");if(this.store==="")throw Error("IndexedDB requires a store name. No store has been defined for this space.");if(this.numericVersion<1)throw Error("IndexedDB requires a version >= 1. No valid version has been defined for this space.");if(this.storage instanceof IDBDatabase)return this;else if(this.storage instanceof Promise)return await this.storage;else{let K=(async()=>{let V,Q=[],U=await new Promise((H,Y)=>{let z=window.indexedDB.open(this.name,this.numericVersion);z.onerror=(M)=>{Y(Error(`Failed to open IndexedDB "${this.name}": ${M.target.error?.message}`))},z.onsuccess=(M)=>{H(M.target.result)},z.onupgradeneeded=(M)=>{V=M;let A=M.target.result;if(M.oldVersion<1){let D=A.createObjectStore(this.store,this.props);for(let F of Object.keys(this.index)){let P=this.index[F];D.createIndex(P.name,P.field,P.props)}}else{let D=Object.keys(this.upgrades).sort((P,G)=>{let[T]=P.split("::").map(Number),[v]=G.split("::").map(Number);return T-v}),F=D.findIndex((P)=>{let[G]=P.split("::");return parseInt(G)===M.oldVersion});if(F>-1)Q=D.slice(F).filter((P)=>{let[G,T]=P.split("::");return parseInt(G){})}});this.storage=U;for(let H of Q)try{await this.upgrades[H].call(this,this,V)}catch(Y){console.error(Y)}return this})();return this.storage=K,await K}}async set(K=null,V){return await this.open(),new Promise((Q,U)=>{let H=this.storage.transaction(this.store,"readwrite").objectStore(this.store),Y;if(K!==null){let z={};z[this.keyPath]=K,Y=H.put({...z,...V})}else Y=H.add(V);Y.addEventListener("success",(z)=>{Q({key:String(z.target.result),value:V})}),Y.addEventListener("error",(z)=>{U(Error(`Failed to set key "${K}": ${z.target.error?.message}`))})})}async update(K,V){try{let Q=await this.get(K);if(typeof Q>"u")return this.set(K,V);return new Promise((U,H)=>{let Y=this.storage.transaction(this.store,"readwrite").objectStore(this.store).put({...Q,...V});Y.addEventListener("success",(z)=>{U({key:String(z.target.result),value:V})}),Y.addEventListener("error",(z)=>{H(Error(`Failed to update key "${K}": ${z.target.error?.message}`))})})}catch{return this.set(K,V)}}async get(K){return await this.open(),new Promise((V,Q)=>{let U=this.storage.transaction(this.store,"readonly").objectStore(this.store).get(K);U.addEventListener("success",(H)=>{let Y=H.target.result;if(typeof Y<"u"&&Y!==null)V(Y);else Q(new TW(K))}),U.addEventListener("error",(H)=>{Q(Error(`Failed to get key "${K}": ${H.target.error?.message}`))})})}async getAll(){return await this.open(),new Promise((K,V)=>{let Q=this.storage.transaction(this.store,"readonly").objectStore(this.store).getAll();Q.addEventListener("success",(U)=>{let H={};U.target.result.forEach((Y)=>{let z=Y[this.keyPath],M={...Y};delete M[this.keyPath],H[z]=M}),K(H)}),Q.addEventListener("error",(U)=>{V(Error(`Failed to get all items: ${U.target.error?.message}`))})})}async contains(K){await this.get(K)}async upgrade(K,V,Q){let U=`${TQ(K)}::${TQ(V)}`;return this.upgrades[U]=Q,Promise.resolve()}rename(){return Promise.reject(Error("IndexedDB does not support renaming databases. Create a new database and migrate data manually."))}key(){return Promise.reject(Error("IndexedDB does not support getting keys by index. Use keys() to get all keys."))}async keys(){return await this.open(),new Promise((K,V)=>{let Q=this.storage.transaction(this.store,"readonly").objectStore(this.store).getAllKeys();Q.addEventListener("success",(U)=>{K(U.target.result.map(String))},!1),Q.addEventListener("error",(U)=>{V(Error(`Failed to get keys: ${U.target.error?.message}`))},!1)})}async remove(K){let V=await this.get(K);return new Promise((Q,U)=>{let H=this.storage.transaction(this.store,"readwrite").objectStore(this.store).delete(K);H.addEventListener("success",()=>{Q(V)},!1),H.addEventListener("error",(Y)=>{U(Error(`Failed to delete key "${K}": ${Y.target.error?.message}`))},!1)})}async clear(){return await this.open(),new Promise((K,V)=>{let Q=this.storage.transaction(this.store,"readwrite").objectStore(this.store).clear();Q.addEventListener("success",()=>{K()},!1),Q.addEventListener("error",(U)=>{V(Error(`Failed to clear store: ${U.target.error?.message}`))},!1)})}}class BW extends Error{constructor(K){super(`Key "${K}" not found in remote storage`);this.name="KeyNotFoundError"}}class JW{name;version;store;baseEndpoint;endpoint;props;storage;constructor({name:K="",version:V="",store:Q="",endpoint:U="",props:H={}}){this.name=K,this.version=V,this.store=Q,this.baseEndpoint=U,this.endpoint=this.computeEndpoint(),this.props=H}computeEndpoint(){if(this.store)return lC(this.baseEndpoint,`${this.store}/`);return this.baseEndpoint.endsWith("/")?this.baseEndpoint:`${this.baseEndpoint}/`}configuration(K){if(K.name!==void 0)this.name=K.name;if(K.version!==void 0)this.version=K.version;if(K.store!==void 0)this.store=K.store;if(K.endpoint!==void 0)this.baseEndpoint=K.endpoint;this.endpoint=this.computeEndpoint()}async open(){if(typeof this.storage>"u")this.storage=TK;return this}async set(K,V){await this.open();let Q=await(await this.storage.post(this.endpoint+K,V,this.props)).json();return{key:K,value:Q}}async update(K,V){await this.open();try{let Q={...await this.get(K),...V},U=await(await this.storage.put(this.endpoint+K,Q,this.props)).json();return{key:K,value:U}}catch{return this.set(K,V)}}async get(K){return await this.open(),this.storage.json(this.endpoint+K,{},this.props)}async getAll(){return await this.open(),this.storage.json(this.endpoint,{},this.props)}async contains(K){if((await this.keys()).includes(K))return;else throw new BW(K)}upgrade(){return Promise.reject(Error("RemoteStorage cannot be upgraded from the client. Upgrades must be performed server-side."))}rename(){return Promise.reject(Error("RemoteStorage cannot be renamed from the client. Renaming must be performed server-side."))}key(){return Promise.reject(Error("RemoteStorage does not support getting keys by index. Use keys() to get all keys."))}async keys(){return await this.open(),this.storage.json(this.endpoint,{keys:!0},this.props)}async remove(K){return await this.open(),(await this.storage.delete(this.endpoint+K,{},this.props)).json()}async clear(){await this.open(),await this.storage.delete(this.endpoint,{},this.props)}}var ZQ={LocalStorage:LZ,SessionStorage:GW,IndexedDB:EW,RemoteStorage:JW};class TU{_configuration;adapter;callbacks;transformations;constructor(K=ZQ.LocalStorage,V={}){this._configuration={name:"",version:"",store:"",...V},this.adapter=new K(this._configuration),this.callbacks={create:[],update:[],delete:[]},this.transformations={}}configuration(K=null){if(K!==null){if(this._configuration={...this._configuration,...K},this.adapter.configuration)this.adapter.configuration(K);return}else return this._configuration}async open(){return await this.adapter.open(),this}applySetTransformations(K,V){let Q=HZ(V);for(let U of Object.values(this.transformations))if(typeof U.set==="function")Q=U.set(K,Q);return Q}applyGetTransformations(K,V){let Q=V;for(let U of Object.values(this.transformations))if(typeof U.get==="function")Q=U.get(K,Q);return Q}async set(K,V){let Q=this.applySetTransformations(K,V),U=await this.adapter.set(K,Q);for(let H of this.callbacks.create)H.call(null,U.key,U.value);return U}async update(K,V){let Q=this.applySetTransformations(K,V),U=await this.adapter.update(K,Q);for(let H of this.callbacks.update)H.call(null,U.key,U.value);return U}async get(K){let V=await this.adapter.get(K);return this.applyGetTransformations(K,V)}async getAll(){let K=await this.adapter.getAll(),V={};for(let Q of Object.keys(K))V[Q]=this.applyGetTransformations(Q,K[Q]);return V}async each(K){let V=await this.getAll(),Q=[];for(let[U,H]of Object.entries(V))Q.push(K.call(this,U,H));return Promise.all(Q)}contains(K){return this.adapter.contains(K)}async upgrade(K,V,Q){return await this.adapter.upgrade(K,V,Q),this}rename(K){return this.adapter.rename(K)}onCreate(K){this.callbacks.create.push(K)}onUpdate(K){this.callbacks.update.push(K)}onDelete(K){this.callbacks.delete.push(K)}addTransformation({id:K,get:V,set:Q}){this.transformations[K]={id:K,get:V,set:Q}}removeTransformation(K){delete this.transformations[K]}key(K,V=!1){return this.adapter.key(K,V)}keys(K=!1){return this.adapter.keys(K)}async remove(K){let V=await this.adapter.remove(K);for(let Q of this.callbacks.delete)Q.call(null,K,V)}clear(){return this.adapter.clear()}}class PK{static capitalize(K,V={}){let{preserveCase:Q=!1}=V;return K.replace(/\w\S*/g,(U)=>{let H=U.charAt(0).toUpperCase(),Y=Q?U.substring(1):U.substring(1).toLowerCase();return H+Y})}static selection(){return window.getSelection()?.toString()||""}static suffix(K,V){let Q=V.indexOf(K);if(Q===-1)return"";return V.slice(Q+K.length)}static prefix(K,V){let Q=V.indexOf(K);if(Q===-1)return"";return V.slice(0,Q)}static friendly(K){return K.toString().normalize("NFD").replace(/[\u0300-\u036f]/g,"").toLowerCase().trim().replace(/\s+/g,"-").replace(/[^\w-]+/g,"").replace(/--+/g,"-")}static truncate(K,V,Q="..."){if(K.length<=V)return K;if(V<=Q.length)return Q.slice(0,V);return K.slice(0,V-Q.length).trimEnd()+Q}static isBlank(K){return K===null||K===void 0||K.trim()===""}}class I1{static async callAsync(K,V,...Q){try{return await K.apply(V,Q)}catch(U){return Promise.reject(U)}}static uuid(){if(typeof crypto<"u"&&"randomUUID"in crypto)return crypto.randomUUID();if(typeof crypto<"u"&&"getRandomValues"in crypto)return"10000000-1000-4000-8000-100000000000".replace(/[018]/g,(V)=>{let Q=parseInt(V,10),U=crypto.getRandomValues(new Uint8Array(1))[0],H=15>>Math.floor(Q/4);return(Q^U&H).toString(16)});let K=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);return`${K()}${K()}-${K()}-${K()}-${K()}-${K()}${K()}${K()}`}static debounce(K,V){let Q=null;return(...U)=>{if(Q!==null)clearTimeout(Q);Q=setTimeout(()=>{K(...U),Q=null},V)}}static throttle(K,V){let Q=!1;return(...U)=>{if(!Q)K(...U),Q=!0,setTimeout(()=>{Q=!1},V)}}}var EQ="generated",vW="pointerdown",kW="pointerup",q8="pointerleave",fW="pointerout",FV="pointermove",wW="touchstart",ZZ="touchend",jW="touchmove",xW="touchcancel",_W="resize",NW="visibilitychange",EK="tsParticles - Error",DV=100,OK=0.5,a1=1000,NK={x:0,y:0,z:0},O8={a:1,b:0,c:0,d:1},oQ="random",M8="mid",BK=2,gW=Math.PI*2,Nz=60;var YZ="true",qZ="false",gz="canvas",OZ=0,SV=2,MZ=4,yW=1,WZ=1,XZ=1,hW=4,yz=1,W8=255,mQ=360,hz=100,pz=100,AZ=0,cz=0,pW=60,cW=0,RZ=0.25,$Z=0.75,FZ=0,uW=1,bW=0,lW=0,dW=1,X8=1,sW=1,DZ=1,zH=0,uz=1,oW=0,mW=120,nW=0,rW=0,iW=1e4,tW=0,aW=1,EU=0,bz=1,eW=1,K4=0,SZ=1,V4=0,Q4=0,PZ=-0.25,CZ=1.5,IZ=0,U4=1,H4=0,A8=0;var lz=1,z4=1,LH=1,L4=500,GZ=50,Z4=0,R8=1,TZ=0,EZ=1,Y4=0,nQ=255,dz=3,sz=6,q4=1,O4=1,M4=0,W4=0,X4=0,A4=0;var JK;(function(K){K.bottom="bottom",K.bottomLeft="bottom-left",K.bottomRight="bottom-right",K.left="left",K.none="none",K.right="right",K.top="top",K.topLeft="top-left",K.topRight="top-right",K.outside="outside",K.inside="inside"})(JK||(JK={}));function oz(K){return typeof K==="boolean"}function vV(K){return typeof K==="string"}function sV(K){return typeof K==="number"}function BQ(K){return typeof K==="object"&&K!==null}function aK(K){return Array.isArray(K)}function $0(K){return K===null||K===void 0}class HV{constructor(K,V,Q){if(this._updateFromAngle=(U,H)=>{this.x=Math.cos(U)*H,this.y=Math.sin(U)*H},!sV(K)&&K){this.x=K.x,this.y=K.y;let U=K;this.z=U.z?U.z:NK.z}else if(K!==void 0&&V!==void 0)this.x=K,this.y=V,this.z=Q??NK.z;else throw Error(`${EK} Vector3d not initialized correctly`)}static get origin(){return HV.create(NK.x,NK.y,NK.z)}get angle(){return Math.atan2(this.y,this.x)}set angle(K){this._updateFromAngle(K,this.length)}get length(){return Math.sqrt(this.getLengthSq())}set length(K){this._updateFromAngle(this.angle,K)}static clone(K){return HV.create(K.x,K.y,K.z)}static create(K,V,Q){return new HV(K,V,Q)}add(K){return HV.create(this.x+K.x,this.y+K.y,this.z+K.z)}addTo(K){this.x+=K.x,this.y+=K.y,this.z+=K.z}copy(){return HV.clone(this)}distanceTo(K){return this.sub(K).length}distanceToSq(K){return this.sub(K).getLengthSq()}div(K){return HV.create(this.x/K,this.y/K,this.z/K)}divTo(K){this.x/=K,this.y/=K,this.z/=K}getLengthSq(){return this.x**SV+this.y**SV}mult(K){return HV.create(this.x*K,this.y*K,this.z*K)}multTo(K){this.x*=K,this.y*=K,this.z*=K}normalize(){let K=this.length;if(K!=EU)this.multTo(yz/K)}rotate(K){return HV.create(this.x*Math.cos(K)-this.y*Math.sin(K),this.x*Math.sin(K)+this.y*Math.cos(K),NK.z)}setTo(K){this.x=K.x,this.y=K.y;let V=K;this.z=V.z?V.z:NK.z}sub(K){return HV.create(this.x-K.x,this.y-K.y,this.z-K.z)}subFrom(K){this.x-=K.x,this.y-=K.y,this.z-=K.z}}class r1 extends HV{constructor(K,V){super(K,V,NK.z)}static get origin(){return r1.create(NK.x,NK.y)}static clone(K){return r1.create(K.x,K.y)}static create(K,V){return new r1(K,V)}}var dC=Math.random,R4={nextFrame:(K)=>requestAnimationFrame(K),cancel:(K)=>cancelAnimationFrame(K)};function W1(){return CK(dC(),0,1-Number.EPSILON)}function $4(K){return R4.nextFrame(K)}function F4(K){R4.cancel(K)}function CK(K,V,Q){return Math.min(Math.max(K,V),Q)}function mz(K,V,Q,U){return Math.floor((K*Q+V*U)/(Q+U))}function gK(K){let V=eK(K),U=ZH(K);if(V===U)U=0;return W1()*(V-U)+U}function a0(K){return sV(K)?K:gK(K)}function ZH(K){return sV(K)?K:K.min}function eK(K){return sV(K)?K:K.max}function q1(K,V){if(K===V||V===void 0&&sV(K))return K;let Q=ZH(K),U=eK(K);return V!==void 0?{min:Math.min(Q,V),max:Math.max(U,V)}:q1(Q,U)}function YK(K,V){let Q=K.x-V.x,U=K.y-V.y;return{dx:Q,dy:U,distance:Math.sqrt(Q**2+U**2)}}function MK(K,V){return YK(K,V).distance}function kV(K){return K*Math.PI/180}function D4(K,V,Q){if(sV(K))return kV(K);switch(K){case JK.top:return-Math.PI*OK;case JK.topRight:return-Math.PI*RZ;case JK.right:return cW;case JK.bottomRight:return Math.PI*RZ;case JK.bottom:return Math.PI*OK;case JK.bottomLeft:return Math.PI*$Z;case JK.left:return Math.PI;case JK.topLeft:return-Math.PI*$Z;case JK.inside:return Math.atan2(Q.y-V.y,Q.x-V.x);case JK.outside:return Math.atan2(V.y-Q.y,V.x-Q.x);default:return W1()*gW}}function S4(K){let V=r1.origin;return V.length=1,V.angle=K,V}function BZ(K,V,Q,U){return r1.create(K.x*(Q-U)/(Q+U)+V.x*BK*U/(Q+U),K.y)}function P4(K){return{x:K.position?.x??W1()*K.size.width,y:K.position?.y??W1()*K.size.height}}function nz(K){if(!K)return 1;return K.endsWith("%")?parseFloat(K)/DV:parseFloat(K)}var JQ;(function(K){K.auto="auto",K.increase="increase",K.decrease="decrease",K.random="random"})(JQ||(JQ={}));var WK;(function(K){K.increasing="increasing",K.decreasing="decreasing"})(WK||(WK={}));var oV;(function(K){K.none="none",K.max="max",K.min="min"})(oV||(oV={}));var M1;(function(K){K.bottom="bottom",K.left="left",K.right="right",K.top="top"})(M1||(M1={}));var mV;(function(K){K.precise="precise",K.percent="percent"})(mV||(mV={}));var rQ;(function(K){K.max="max",K.min="min",K.random="random"})(rQ||(rQ={}));var sC={debug:console.debug,error:console.error,info:console.info,log:console.log,verbose:console.log,warning:console.warn};function fV(){return sC}function oC(K){let V=new Map;return(...Q)=>{let U=JSON.stringify(Q);if(V.has(U))return V.get(U);let H=K(...Q);return V.set(U,H),H}}function C4(K){let V={bounced:!1},{pSide:Q,pOtherSide:U,rectSide:H,rectOtherSide:Y,velocity:z,factor:M}=K;if(U.minY.max||U.maxY.max)return V;if(Q.max>=H.min&&Q.max<=(H.max+H.min)*OK&&z>FZ||Q.min<=H.max&&Q.min>(H.max+H.min)*OK&&z{return K.matches(U)});return aK(Q)?Q.some((U)=>U):Q}function YQ(){return typeof window>"u"||!window||typeof window.document>"u"||!window.document}function nC(){return!YQ()&&typeof matchMedia<"u"}function rz(K){if(!nC())return;return matchMedia(K)}function I4(K){if(YQ()||typeof IntersectionObserver>"u")return;return new IntersectionObserver(K)}function G4(K){if(YQ()||typeof MutationObserver>"u")return;return new MutationObserver(K)}function f1(K,V){return K===V||aK(V)&&V.indexOf(K)>-1}async function JZ(K,V){try{await document.fonts.load(`${V??"400"} 36px '${K??"Verdana"}'`)}catch{}}function rC(K){return Math.floor(W1()*K.length)}function YH(K,V,Q=!0){return K[V!==void 0&&Q?V%K.length:rC(K)]}function qH(K,V,Q,U,H){return iC(iQ(K,U??0),V,Q,H)}function iC(K,V,Q,U){let H=!0;if(!U||U===M1.bottom)H=K.topQ.x;if(H&&(!U||U===M1.right))H=K.leftQ.y;return H}function iQ(K,V){return{bottom:K.y+V,left:K.x-V,right:K.x+V,top:K.y-V}}function x1(K,...V){for(let Q of V){if(Q===void 0||Q===null)continue;if(!BQ(Q)){K=Q;continue}let U=Array.isArray(Q);if(U&&(BQ(K)||!K||!Array.isArray(K)))K=[];else if(!U&&(BQ(K)||!K||Array.isArray(K)))K={};for(let H in Q){if(H==="__proto__")continue;let Y=Q,z=Y[H],M=K;M[H]=BQ(z)&&Array.isArray(z)?z.map((A)=>x1(M[H],A)):x1(M[H],z)}}return K}function OH(K,V){return!!E4(V,(Q)=>Q.enable&&f1(K,Q.mode))}function MH(K,V,Q){XK(V,(U)=>{let H=U.mode;if(U.enable&&f1(K,H))tC(U,Q)})}function tC(K,V){let Q=K.selectors;XK(Q,(U)=>{V(U,K)})}function iz(K,V){if(!V||!K)return;return E4(K,(Q)=>{return mC(V,Q.selectors)})}function $8(K){return{position:K.getPosition(),radius:K.getRadius(),mass:K.getMass(),velocity:K.velocity,factor:r1.create(a0(K.options.bounce.horizontal.value),a0(K.options.bounce.vertical.value))}}function tz(K,V){let{x:Q,y:U}=K.velocity.sub(V.velocity),[H,Y]=[K.position,V.position],{dx:z,dy:M}=YK(Y,H);if(Q*z+U*M<0)return;let R=-Math.atan2(M,z),D=K.mass,F=V.mass,P=K.velocity.rotate(R),G=V.velocity.rotate(R),T=BZ(P,G,D,F),v=BZ(G,P,D,F),J=T.rotate(-R),k=v.rotate(-R);K.velocity.x=J.x*K.factor.x,K.velocity.y=J.y*K.factor.y,V.velocity.x=k.x*V.factor.x,V.velocity.y=k.y*V.factor.y}function T4(K,V){let Q=K.getPosition(),U=K.getRadius(),H=iQ(Q,U),Y=K.options.bounce,z=C4({pSide:{min:H.left,max:H.right},pOtherSide:{min:H.top,max:H.bottom},rectSide:{min:V.left,max:V.right},rectOtherSide:{min:V.top,max:V.bottom},velocity:K.velocity.x,factor:a0(Y.horizontal.value)});if(z.bounced){if(z.velocity!==void 0)K.velocity.x=z.velocity;if(z.position!==void 0)K.position.x=z.position}let M=C4({pSide:{min:H.top,max:H.bottom},pOtherSide:{min:H.left,max:H.right},rectSide:{min:V.top,max:V.bottom},rectOtherSide:{min:V.left,max:V.right},velocity:K.velocity.y,factor:a0(Y.vertical.value)});if(M.bounced){if(M.velocity!==void 0)K.velocity.y=M.velocity;if(M.position!==void 0)K.position.y=M.position}}function XK(K,V){return aK(K)?K.map((U,H)=>V(U,H)):V(K,0)}function yK(K,V,Q){return aK(K)?YH(K,V,Q):K}function E4(K,V){if(aK(K))return K.find((U,H)=>V(U,H));return V(K,0)?K:void 0}function az(K,V){let{value:Q,animation:U}=K,H={delayTime:a0(U.delay)*a1,enable:U.enable,value:a0(K.value)*V,max:eK(Q)*V,min:ZH(Q)*V,loops:0,maxLoops:a0(U.count),time:0};if(U.enable){switch(H.decay=1-a0(U.decay),U.mode){case JQ.increase:H.status=WK.increasing;break;case JQ.decrease:H.status=WK.decreasing;break;case JQ.random:H.status=W1()>=OK?WK.increasing:WK.decreasing;break}let z=U.mode===JQ.auto;switch(U.startValue){case rQ.min:if(H.value=H.min,z)H.status=WK.increasing;break;case rQ.max:if(H.value=H.max,z)H.status=WK.decreasing;break;case rQ.random:default:if(H.value=gK(H),z)H.status=W1()>=OK?WK.increasing:WK.decreasing;break}}return H.initialValue=H.value,H}function aC(K,V){if(K.mode!==mV.percent){let{mode:H,...Y}=K;return Y}if("x"in K)return{x:K.x/DV*V.width,y:K.y/DV*V.height};else return{width:K.width/DV*V.width,height:K.height/DV*V.height}}function ez(K,V){return aC(K,V)}function eC(K,V,Q,U,H){switch(V){case oV.max:if(Q>=H)K.destroy();break;case oV.min:if(Q<=U)K.destroy();break}}function WH(K,V,Q,U,H){if(K.destroyed||!V||!V.enable||(V.maxLoops??0)>0&&(V.loops??0)>(V.maxLoops??0))return;let D=(V.velocity??0)*H.factor,F=V.min,P=V.max,G=V.decay??1;if(!V.time)V.time=0;if((V.delayTime??0)>0&&V.time<(V.delayTime??0))V.time+=H.value;if((V.delayTime??0)>0&&V.time<(V.delayTime??0))return;switch(V.status){case WK.increasing:if(V.value>=P){if(Q)V.status=WK.decreasing;else V.value-=P;if(!V.loops)V.loops=0;V.loops++}else V.value+=D;break;case WK.decreasing:if(V.value<=F){if(Q)V.status=WK.increasing;else V.value+=P;if(!V.loops)V.loops=0;V.loops++}else V.value-=D}if(V.velocity&&G!==1)V.velocity*=G;if(eC(K,U,V.value,F,P),!K.destroyed)V.value=CK(V.value,F,P)}function B4(K){let V=document.createElement("div").style;if(!K)return V;for(let Q in K){let U=K[Q];if(!Object.prototype.hasOwnProperty.call(K,Q)||$0(U))continue;let H=K.getPropertyValue?.(U);if(!H)continue;let Y=K.getPropertyPriority?.(U);if(!Y)V.setProperty?.(U,H);else V.setProperty?.(U,H,Y)}return V}function KI(K){let V=document.createElement("div").style,U={width:"100%",height:"100%",margin:"0",padding:"0",borderWidth:"0",position:"fixed",zIndex:K.toString(10),"z-index":K.toString(10),top:"0",left:"0"};for(let H in U){let Y=U[H];V.setProperty(H,Y)}return V}var J4=oC(KI);var KL;(function(K){K.darken="darken",K.enlighten="enlighten"})(KL||(KL={}));function VI(K,V){if(!V)return;for(let Q of K.colorManagers.values())if(V.startsWith(Q.stringPrefix))return Q.parseString(V)}function KV(K,V,Q,U=!0){if(!V)return;let H=vV(V)?{value:V}:V;if(vV(H.value))return v4(K,H.value,Q,U);if(aK(H.value))return KV(K,{value:YH(H.value,Q,U)});for(let Y of K.colorManagers.values()){let z=Y.handleRangeColor(H);if(z)return z}}function v4(K,V,Q,U=!0){if(!V)return;let H=vV(V)?{value:V}:V;if(vV(H.value))return H.value===oQ?f4():QI(K,H.value);if(aK(H.value))return v4(K,{value:YH(H.value,Q,U)});for(let Y of K.colorManagers.values()){let z=Y.handleColor(H);if(z)return z}}function vQ(K,V,Q,U=!0){let H=KV(K,V,Q,U);return H?fZ(H):void 0}function fZ(K){let V=K.r/W8,Q=K.g/W8,U=K.b/W8,H=Math.max(V,Q,U),Y=Math.min(V,Q,U),z={h:AZ,l:(H+Y)*OK,s:cz};if(H!==Y)z.s=z.l=mQ)z.h-=mQ;return z}function QI(K,V){return VI(K,V)}function BU(K){let V=(K.h%mQ+mQ)%mQ,Q=Math.max(cz,Math.min(hz,K.s)),U=Math.max(Y4,Math.min(pz,K.l)),H=V/mQ,Y=Q/hz,z=U/pz;if(Q===cz){let T=Math.round(z*nQ);return{r:T,g:T,b:T}}let M=(T,v,J)=>{if(J<0)J++;if(J>1)J--;if(J*sz<1)return T+(v-T)*sz*J;if(J*BK<1)return v;if(J*dz<1*BK){let j=BK/dz;return T+(v-T)*(j-J)*sz}return T},A=z0&&(K.loops??0)>(K.maxLoops??0))return;if(!K.time)K.time=0;if((K.delayTime??0)>0&&K.time<(K.delayTime??0))K.time+=U.value;if((K.delayTime??0)>0&&K.time<(K.delayTime??0))return;let D=K.offset?gK(K.offset):0,F=(K.velocity??0)*U.factor+D*3.6,P=K.decay??1,G=eK(V),T=ZH(V);if(!Q||K.status===WK.increasing){if(K.value+=F,K.value>G){if(!K.loops)K.loops=0;if(K.loops++,Q)K.status=WK.decreasing;else K.value-=G}}else{K.value-=F;let v=0;if(K.valueTZ)Q.stroke();if(U.shapeFill)Q.fill()}function zI(K){let{container:V,context:Q,particle:U,radius:H,opacity:Y,delta:z,transformData:M}=K;if(!U.shape)return;let A=V.shapeDrawers.get(U.shape);if(!A?.afterDraw)return;A.afterDraw({context:Q,particle:U,radius:H,opacity:Y,delta:z,pixelRatio:V.retina.pixelRatio,transformData:{...M}})}function _4(K,V,Q){if(!V.draw)return;V.draw(K,Q)}function N4(K,V,Q,U){if(!V.drawParticle)return;V.drawParticle(K,Q,U)}function g4(K,V,Q){return{h:K.h,s:K.s,l:K.l+(V===KL.darken?-EZ:EZ)*Q}}function LI(K,V,Q){let U=V[Q];if(U!==void 0)K[Q]=(K[Q]??uW)*U}function y4(K,V,Q=!1){if(!V)return;let U=K;if(!U)return;let H=U.style;if(!H)return;let Y=new Set;for(let z in H){if(!Object.prototype.hasOwnProperty.call(H,z))continue;Y.add(H[z])}for(let z in V){if(!Object.prototype.hasOwnProperty.call(V,z))continue;Y.add(V[z])}for(let z of Y){let M=V.getPropertyValue(z);if(!M)H.removeProperty(z);else H.setProperty(z,M,Q?"important":"")}}class jZ{constructor(K,V){this.container=K,this._applyPostDrawUpdaters=(H)=>{for(let Y of this._postDrawUpdaters)Y.afterDraw?.(H)},this._applyPreDrawUpdaters=(H,Y,z,M,A,R)=>{for(let D of this._preDrawUpdaters){if(D.getColorStyles){let{fill:F,stroke:P}=D.getColorStyles(Y,H,z,M);if(F)A.fill=F;if(P)A.stroke=P}if(D.getTransformValues){let F=D.getTransformValues(Y);for(let P in F)LI(R,F,P)}D.beforeDraw?.(Y)}},this._applyResizePlugins=()=>{for(let H of this._resizePlugins)H.resize?.()},this._getPluginParticleColors=(H)=>{let Y,z;for(let M of this._colorPlugins){if(!Y&&M.particleFillColor)Y=vQ(this._engine,M.particleFillColor(H));if(!z&&M.particleStrokeColor)z=vQ(this._engine,M.particleStrokeColor(H));if(Y&&z)break}return[Y,z]},this._initCover=async()=>{let H=this.container.actualOptions,Y=H.backgroundMask.cover,z=Y.color;if(z){let M=KV(this._engine,z);if(M){let A={...M,a:Y.opacity};this._coverColorStyle=zV(A,A.a)}}else await new Promise((M,A)=>{if(!Y.image)return;let R=document.createElement("img");R.addEventListener("load",()=>{this._coverImage={image:R,opacity:Y.opacity},M()}),R.addEventListener("error",(D)=>{A(D.error)}),R.src=Y.image})},this._initStyle=()=>{let H=this.element,Y=this.container.actualOptions;if(!H)return;if(this._fullScreen)this._setFullScreenStyle();else this._resetOriginalStyle();for(let z in Y.style){if(!z||!Y.style||!Object.prototype.hasOwnProperty.call(Y.style,z))continue;let M=Y.style[z];if(!M)continue;H.style.setProperty(z,M,"important")}},this._initTrail=async()=>{let H=this.container.actualOptions,Y=H.particles.move.trail,z=Y.fill;if(!Y.enable)return;let M=yz/Y.length;if(z.color){let A=KV(this._engine,z.color);if(!A)return;this._trailFill={color:{...A},opacity:M}}else await new Promise((A,R)=>{if(!z.image)return;let D=document.createElement("img");D.addEventListener("load",()=>{this._trailFill={image:D,opacity:M},A()}),D.addEventListener("error",(F)=>{R(F.error)}),D.src=z.image})},this._paintBase=(H)=>{this.draw((Y)=>w4(Y,this.size,H))},this._paintImage=(H,Y)=>{this.draw((z)=>j4(z,this.size,H,Y))},this._repairStyle=()=>{let H=this.element;if(!H)return;this._safeMutationObserver((z)=>z.disconnect()),this._initStyle(),this.initBackground();let Y=this._pointerEvents;H.style.pointerEvents=Y,H.setAttribute("pointer-events",Y),this._safeMutationObserver((z)=>{if(!H||!(H instanceof Node))return;z.observe(H,{attributes:!0})})},this._resetOriginalStyle=()=>{let H=this.element,Y=this._originalStyle;if(!H||!Y)return;y4(H,Y,!0)},this._safeMutationObserver=(H)=>{if(!this._mutationObserver)return;H(this._mutationObserver)},this._setFullScreenStyle=()=>{let H=this.element;if(!H)return;y4(H,J4(this.container.actualOptions.fullScreen.zIndex),!0)},this._engine=V,this._standardSize={height:0,width:0};let Q=K.retina.pixelRatio,U=this._standardSize;this.size={height:U.height*Q,width:U.width*Q},this._context=null,this._generated=!1,this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[],this._pointerEvents="none"}get _fullScreen(){return this.container.actualOptions.fullScreen.enable}clear(){let K=this.container.actualOptions,V=K.particles.move.trail,Q=this._trailFill;if(K.backgroundMask.enable)this.paint();else if(V.enable&&V.length>lW&&Q){if(Q.color)this._paintBase(zV(Q.color,Q.opacity));else if(Q.image)this._paintImage(Q.image,Q.opacity)}else if(K.clear)this.draw((U)=>{HL(U,this.size)})}destroy(){if(this.stop(),this._generated)this.element?.remove(),this.element=void 0;else this._resetOriginalStyle();this._preDrawUpdaters=[],this._postDrawUpdaters=[],this._resizePlugins=[],this._colorPlugins=[]}draw(K){let V=this._context;if(!V)return;return K(V)}drawAsync(K){let V=this._context;if(!V)return;return K(V)}drawParticle(K,V){if(K.spawning||K.destroyed)return;let Q=K.getRadius();if(Q<=bW)return;let U=K.getFillColor(),H=K.getStrokeColor()??U,[Y,z]=this._getPluginParticleColors(K);if(!Y)Y=U;if(!z)z=H;if(!Y&&!z)return;this.draw((M)=>{let A=this.container,R=A.actualOptions,D=K.options.zIndex,F=dW-K.zIndexFactor,P=F**D.opacityRate,G=K.bubble.opacity??K.opacity?.value??X8,T=K.strokeOpacity??G,v=G*P,J=T*P,k={},f={fill:Y?tQ(Y,v):void 0};f.stroke=z?tQ(z,J):f.fill,this._applyPreDrawUpdaters(M,K,Q,v,f,k),x4({container:A,context:M,particle:K,delta:V,colorStyles:f,backgroundMask:R.backgroundMask.enable,composite:R.backgroundMask.composite,radius:Q*F**D.sizeRate,opacity:v,shadow:K.options.shadow,transform:k}),this._applyPostDrawUpdaters(K)})}drawParticlePlugin(K,V,Q){this.draw((U)=>N4(U,K,V,Q))}drawPlugin(K,V){this.draw((Q)=>_4(Q,K,V))}async init(){this._safeMutationObserver((K)=>K.disconnect()),this._mutationObserver=G4((K)=>{for(let V of K)if(V.type==="attributes"&&V.attributeName==="style")this._repairStyle()}),this.resize(),this._initStyle(),await this._initCover();try{await this._initTrail()}catch(K){fV().error(K)}this.initBackground(),this._safeMutationObserver((K)=>{if(!this.element||!(this.element instanceof Node))return;K.observe(this.element,{attributes:!0})}),this.initUpdaters(),this.initPlugins(),this.paint()}initBackground(){let K=this.container.actualOptions,V=K.background,Q=this.element;if(!Q)return;let U=Q.style;if(!U)return;if(V.color){let H=KV(this._engine,V.color);U.backgroundColor=H?zV(H,V.opacity):""}else U.backgroundColor="";U.backgroundImage=V.image||"",U.backgroundPosition=V.position||"",U.backgroundRepeat=V.repeat||"",U.backgroundSize=V.size||""}initPlugins(){this._resizePlugins=[];for(let K of this.container.plugins.values()){if(K.resize)this._resizePlugins.push(K);if(K.particleFillColor??K.particleStrokeColor)this._colorPlugins.push(K)}}initUpdaters(){this._preDrawUpdaters=[],this._postDrawUpdaters=[];for(let K of this.container.particles.updaters){if(K.afterDraw)this._postDrawUpdaters.push(K);if(K.getColorStyles??K.getTransformValues??K.beforeDraw)this._preDrawUpdaters.push(K)}}loadCanvas(K){if(this._generated&&this.element)this.element.remove();this._generated=K.dataset&&EQ in K.dataset?K.dataset[EQ]==="true":this._generated,this.element=K,this.element.ariaHidden="true",this._originalStyle=B4(this.element.style);let V=this._standardSize;V.height=K.offsetHeight,V.width=K.offsetWidth;let Q=this.container.retina.pixelRatio,U=this.size;K.height=U.height=V.height*Q,K.width=U.width=V.width*Q,this._context=this.element.getContext("2d"),this._safeMutationObserver((H)=>H.disconnect()),this.container.retina.init(),this.initBackground(),this._safeMutationObserver((H)=>{if(!this.element||!(this.element instanceof Node))return;H.observe(this.element,{attributes:!0})})}paint(){let K=this.container.actualOptions;this.draw((V)=>{if(K.backgroundMask.enable&&K.backgroundMask.cover)if(HL(V,this.size),this._coverImage)this._paintImage(this._coverImage.image,this._coverImage.opacity);else if(this._coverColorStyle)this._paintBase(this._coverColorStyle);else this._paintBase();else this._paintBase()})}resize(){if(!this.element)return!1;let K=this.container,V=K.canvas._standardSize,Q={width:this.element.offsetWidth,height:this.element.offsetHeight},U=K.retina.pixelRatio,H={width:Q.width*U,height:Q.height*U};if(Q.height===V.height&&Q.width===V.width&&H.height===this.element.height&&H.width===this.element.width)return!1;let Y={...V};V.height=Q.height,V.width=Q.width;let z=this.size;if(this.element.width=z.width=H.width,this.element.height=z.height=H.height,this.container.started)K.particles.setResizeFactor({width:V.width/Y.width,height:V.height/Y.height});return!0}setPointerEvents(K){if(!this.element)return;this._pointerEvents=K,this._repairStyle()}stop(){this._safeMutationObserver((K)=>K.disconnect()),this._mutationObserver=void 0,this.draw((K)=>HL(K,this.size))}async windowResize(){if(!this.element||!this.resize())return;let K=this.container,V=K.updateActualOptions();if(K.particles.setDensity(),this._applyResizePlugins(),V)await K.refresh()}}var eQ;(function(K){K.canvas="canvas",K.parent="parent",K.window="window"})(eQ||(eQ={}));function wV(K,V,Q,U,H){if(U){let Y={passive:!0};if(oz(H))Y.capture=H;else if(H!==void 0)Y=H;K.addEventListener(V,Q,Y)}else{let Y=H;K.removeEventListener(V,Q,Y)}}class xZ{constructor(K){this.container=K,this._doMouseTouchClick=(V)=>{let Q=this.container,U=Q.actualOptions;if(this._canPush){let H=Q.interactivity.mouse,Y=H.position;if(!Y)return;H.clickPosition={...Y},H.clickTime=new Date().getTime();let z=U.interactivity.events.onClick;XK(z.mode,(M)=>this.container.handleClickMode(M))}if(V.type==="touchend")setTimeout(()=>this._mouseTouchFinish(),L4)},this._handleThemeChange=(V)=>{let Q=V,U=this.container,H=U.options,Y=H.defaultThemes,z=Q.matches?Y.dark:Y.light;if(H.themes.find((A)=>A.name===z)?.default.auto)U.loadTheme(z)},this._handleVisibilityChange=()=>{let V=this.container,Q=V.actualOptions;if(this._mouseTouchFinish(),!Q.pauseOnBlur)return;if(document?.hidden)V.pageHidden=!0,V.pause();else if(V.pageHidden=!1,V.animationStatus)V.play(!0);else V.draw(!0)},this._handleWindowResize=()=>{if(this._resizeTimeout)clearTimeout(this._resizeTimeout),delete this._resizeTimeout;let V=async()=>{await this.container.canvas?.windowResize()};this._resizeTimeout=setTimeout(()=>void V(),this.container.actualOptions.interactivity.events.resize.delay*a1)},this._manageInteractivityListeners=(V,Q)=>{let U=this._handlers,H=this.container,Y=H.actualOptions,z=H.interactivity.element;if(!z)return;let M=z,A=H.canvas;if(A.setPointerEvents(M===A.element?"initial":"none"),!(Y.interactivity.events.onHover.enable||Y.interactivity.events.onClick.enable))return;if(wV(z,FV,U.mouseMove,Q),wV(z,wW,U.touchStart,Q),wV(z,jW,U.touchMove,Q),!Y.interactivity.events.onClick.enable)wV(z,ZZ,U.touchEnd,Q);else wV(z,ZZ,U.touchEndClick,Q),wV(z,kW,U.mouseUp,Q),wV(z,vW,U.mouseDown,Q);wV(z,V,U.mouseLeave,Q),wV(z,xW,U.touchCancel,Q)},this._manageListeners=(V)=>{let Q=this._handlers,U=this.container,H=U.actualOptions,Y=H.interactivity.detectsOn,z=U.canvas.element,M=q8;if(Y===eQ.window)U.interactivity.element=window,M=fW;else if(Y===eQ.parent&&z)U.interactivity.element=z.parentElement??z.parentNode;else U.interactivity.element=z;if(this._manageMediaMatch(V),this._manageResize(V),this._manageInteractivityListeners(M,V),document)wV(document,NW,Q.visibilityChange,V,!1)},this._manageMediaMatch=(V)=>{let Q=this._handlers,U=rz("(prefers-color-scheme: dark)");if(!U)return;if(U.addEventListener!==void 0){wV(U,"change",Q.themeChange,V);return}if(U.addListener===void 0)return;if(V)U.addListener(Q.oldThemeChange);else U.removeListener(Q.oldThemeChange)},this._manageResize=(V)=>{let Q=this._handlers,U=this.container;if(!U.actualOptions.interactivity.events.resize)return;if(typeof ResizeObserver>"u"){wV(window,_W,Q.resize,V);return}let Y=U.canvas.element;if(this._resizeObserver&&!V){if(Y)this._resizeObserver.unobserve(Y);this._resizeObserver.disconnect(),delete this._resizeObserver}else if(!this._resizeObserver&&V&&Y)this._resizeObserver=new ResizeObserver((z)=>{if(!z.find((A)=>A.target===Y))return;this._handleWindowResize()}),this._resizeObserver.observe(Y)},this._mouseDown=()=>{let{interactivity:V}=this.container;if(!V)return;let{mouse:Q}=V;Q.clicking=!0,Q.downPosition=Q.position},this._mouseTouchClick=(V)=>{let Q=this.container,U=Q.actualOptions,{mouse:H}=Q.interactivity;H.inside=!0;let Y=!1,z=H.position;if(!z||!U.interactivity.events.onClick.enable)return;for(let M of Q.plugins.values()){if(!M.clickPositionValid)continue;if(Y=M.clickPositionValid(z),Y)break}if(!Y)this._doMouseTouchClick(V);H.clicking=!1},this._mouseTouchFinish=()=>{let V=this.container.interactivity;if(!V)return;let Q=V.mouse;delete Q.position,delete Q.clickPosition,delete Q.downPosition,V.status=q8,Q.inside=!1,Q.clicking=!1},this._mouseTouchMove=(V)=>{let Q=this.container,U=Q.actualOptions,H=Q.interactivity,Y=Q.canvas.element;if(!H?.element)return;H.mouse.inside=!0;let z;if(V.type.startsWith("pointer")){this._canPush=!0;let A=V;if(H.element===window){if(Y){let R=Y.getBoundingClientRect();z={x:A.clientX-R.left,y:A.clientY-R.top}}}else if(U.interactivity.detectsOn===eQ.parent){let{target:R,currentTarget:D}=A;if(R&&D&&Y){let F=R.getBoundingClientRect(),P=D.getBoundingClientRect(),G=Y.getBoundingClientRect();z={x:A.offsetX+BK*F.left-(P.left+G.left),y:A.offsetY+BK*F.top-(P.top+G.top)}}else z={x:A.offsetX??A.clientX,y:A.offsetY??A.clientY}}else if(A.target===Y)z={x:A.offsetX??A.clientX,y:A.offsetY??A.clientY}}else if(this._canPush=V.type!=="touchmove",Y){let A=V,R=A.touches[A.touches.length-lz],D=Y.getBoundingClientRect();z={x:R.clientX-(D.left??zH),y:R.clientY-(D.top??zH)}}let M=Q.retina.pixelRatio;if(z)z.x*=M,z.y*=M;H.mouse.position=z,H.status=FV},this._touchEnd=(V)=>{let Q=V,U=Array.from(Q.changedTouches);for(let H of U)this._touches.delete(H.identifier);this._mouseTouchFinish()},this._touchEndClick=(V)=>{let Q=V,U=Array.from(Q.changedTouches);for(let H of U)this._touches.delete(H.identifier);this._mouseTouchClick(V)},this._touchStart=(V)=>{let Q=V,U=Array.from(Q.changedTouches);for(let H of U)this._touches.set(H.identifier,performance.now());this._mouseTouchMove(V)},this._canPush=!0,this._touches=new Map,this._handlers={mouseDown:()=>this._mouseDown(),mouseLeave:()=>this._mouseTouchFinish(),mouseMove:(V)=>this._mouseTouchMove(V),mouseUp:(V)=>this._mouseTouchClick(V),touchStart:(V)=>this._touchStart(V),touchMove:(V)=>this._mouseTouchMove(V),touchEnd:(V)=>this._touchEnd(V),touchCancel:(V)=>this._touchEnd(V),touchEndClick:(V)=>this._touchEndClick(V),visibilityChange:()=>this._handleVisibilityChange(),themeChange:(V)=>this._handleThemeChange(V),oldThemeChange:(V)=>this._handleThemeChange(V),resize:()=>{this._handleWindowResize()}}}addListeners(){this._manageListeners(!0)}removeListeners(){this._manageListeners(!1)}}var jK;(function(K){K.configAdded="configAdded",K.containerInit="containerInit",K.particlesSetup="particlesSetup",K.containerStarted="containerStarted",K.containerStopped="containerStopped",K.containerDestroyed="containerDestroyed",K.containerPaused="containerPaused",K.containerPlay="containerPlay",K.containerBuilt="containerBuilt",K.particleAdded="particleAdded",K.particleDestroyed="particleDestroyed",K.particleRemoved="particleRemoved"})(jK||(jK={}));class e1{constructor(){this.value=""}static create(K,V){let Q=new e1;if(Q.load(K),V!==void 0)if(vV(V)||aK(V))Q.load({value:V});else Q.load(V);return Q}load(K){if($0(K))return;if(!$0(K.value))this.value=K.value}}class _Z{constructor(){this.color=new e1,this.color.value="",this.image="",this.position="",this.repeat="",this.size="",this.opacity=1}load(K){if($0(K))return;if(K.color!==void 0)this.color=e1.create(this.color,K.color);if(K.image!==void 0)this.image=K.image;if(K.position!==void 0)this.position=K.position;if(K.repeat!==void 0)this.repeat=K.repeat;if(K.size!==void 0)this.size=K.size;if(K.opacity!==void 0)this.opacity=K.opacity}}class NZ{constructor(){this.opacity=1}load(K){if($0(K))return;if(K.color!==void 0)this.color=e1.create(this.color,K.color);if(K.image!==void 0)this.image=K.image;if(K.opacity!==void 0)this.opacity=K.opacity}}class gZ{constructor(){this.composite="destination-out",this.cover=new NZ,this.enable=!1}load(K){if($0(K))return;if(K.composite!==void 0)this.composite=K.composite;if(K.cover!==void 0){let V=K.cover,Q=vV(K.cover)?{color:K.cover}:K.cover;this.cover.load(V.color!==void 0||V.image!==void 0?V:{color:Q})}if(K.enable!==void 0)this.enable=K.enable}}class yZ{constructor(){this.enable=!0,this.zIndex=0}load(K){if($0(K))return;if(K.enable!==void 0)this.enable=K.enable;if(K.zIndex!==void 0)this.zIndex=K.zIndex}}class hZ{constructor(){this.enable=!1,this.mode=[]}load(K){if($0(K))return;if(K.enable!==void 0)this.enable=K.enable;if(K.mode!==void 0)this.mode=K.mode}}var qQ;(function(K){K.circle="circle",K.rectangle="rectangle"})(qQ||(qQ={}));class zL{constructor(){this.selectors=[],this.enable=!1,this.mode=[],this.type=qQ.circle}load(K){if($0(K))return;if(K.selectors!==void 0)this.selectors=K.selectors;if(K.enable!==void 0)this.enable=K.enable;if(K.mode!==void 0)this.mode=K.mode;if(K.type!==void 0)this.type=K.type}}class pZ{constructor(){this.enable=!1,this.force=2,this.smooth=10}load(K){if($0(K))return;if(K.enable!==void 0)this.enable=K.enable;if(K.force!==void 0)this.force=K.force;if(K.smooth!==void 0)this.smooth=K.smooth}}class cZ{constructor(){this.enable=!1,this.mode=[],this.parallax=new pZ}load(K){if($0(K))return;if(K.enable!==void 0)this.enable=K.enable;if(K.mode!==void 0)this.mode=K.mode;this.parallax.load(K.parallax)}}class uZ{constructor(){this.delay=0.5,this.enable=!0}load(K){if($0(K))return;if(K.delay!==void 0)this.delay=K.delay;if(K.enable!==void 0)this.enable=K.enable}}class bZ{constructor(){this.onClick=new hZ,this.onDiv=new zL,this.onHover=new cZ,this.resize=new uZ}load(K){if($0(K))return;this.onClick.load(K.onClick);let V=K.onDiv;if(V!==void 0)this.onDiv=XK(V,(Q)=>{let U=new zL;return U.load(Q),U});this.onHover.load(K.onHover),this.resize.load(K.resize)}}class lZ{constructor(K,V){this._engine=K,this._container=V}load(K){if($0(K))return;if(!this._container)return;let V=this._engine.interactors.get(this._container);if(!V)return;for(let Q of V){if(!Q.loadModeOptions)continue;Q.loadModeOptions(this,K)}}}class S8{constructor(K,V){this.detectsOn=eQ.window,this.events=new bZ,this.modes=new lZ(K,V)}load(K){if($0(K))return;let V=K.detectsOn;if(V!==void 0)this.detectsOn=V;this.events.load(K.events),this.modes.load(K.modes)}}class dZ{load(K){if($0(K))return;if(K.position)this.position={x:K.position.x??GZ,y:K.position.y??GZ,mode:K.position.mode??mV.percent};if(K.options)this.options=x1({},K.options)}}var kQ;(function(K){K.screen="screen",K.canvas="canvas"})(kQ||(kQ={}));class sZ{constructor(){this.maxWidth=1/0,this.options={},this.mode=kQ.canvas}load(K){if($0(K))return;if(!$0(K.maxWidth))this.maxWidth=K.maxWidth;if(!$0(K.mode))if(K.mode===kQ.screen)this.mode=kQ.screen;else this.mode=kQ.canvas;if(!$0(K.options))this.options=x1({},K.options)}}var OQ;(function(K){K.any="any",K.dark="dark",K.light="light"})(OQ||(OQ={}));class oZ{constructor(){this.auto=!1,this.mode=OQ.any,this.value=!1}load(K){if($0(K))return;if(K.auto!==void 0)this.auto=K.auto;if(K.mode!==void 0)this.mode=K.mode;if(K.value!==void 0)this.value=K.value}}class mZ{constructor(){this.name="",this.default=new oZ}load(K){if($0(K))return;if(K.name!==void 0)this.name=K.name;if(this.default.load(K.default),K.options!==void 0)this.options=x1({},K.options)}}class XH{constructor(){this.count=0,this.enable=!1,this.speed=1,this.decay=0,this.delay=0,this.sync=!1}load(K){if($0(K))return;if(K.count!==void 0)this.count=q1(K.count);if(K.enable!==void 0)this.enable=K.enable;if(K.speed!==void 0)this.speed=q1(K.speed);if(K.decay!==void 0)this.decay=q1(K.decay);if(K.delay!==void 0)this.delay=q1(K.delay);if(K.sync!==void 0)this.sync=K.sync}}class JU extends XH{constructor(){super();this.mode=JQ.auto,this.startValue=rQ.random}load(K){if(super.load(K),$0(K))return;if(K.mode!==void 0)this.mode=K.mode;if(K.startValue!==void 0)this.startValue=K.startValue}}class P8 extends XH{constructor(){super();this.offset=0,this.sync=!0}load(K){if(super.load(K),$0(K))return;if(K.offset!==void 0)this.offset=q1(K.offset)}}class nZ{constructor(){this.h=new P8,this.s=new P8,this.l=new P8}load(K){if($0(K))return;this.h.load(K.h),this.s.load(K.s),this.l.load(K.l)}}class vU extends e1{constructor(){super();this.animation=new nZ}static create(K,V){let Q=new vU;if(Q.load(K),V!==void 0)if(vV(V)||aK(V))Q.load({value:V});else Q.load(V);return Q}load(K){if(super.load(K),$0(K))return;let V=K.animation;if(V!==void 0)if(V.enable!==void 0)this.animation.h.load(V);else this.animation.load(K.animation)}}var KU;(function(K){K.absorb="absorb",K.bounce="bounce",K.destroy="destroy"})(KU||(KU={}));class rZ{constructor(){this.speed=2}load(K){if($0(K))return;if(K.speed!==void 0)this.speed=K.speed}}class iZ{constructor(){this.enable=!0,this.retries=0}load(K){if($0(K))return;if(K.enable!==void 0)this.enable=K.enable;if(K.retries!==void 0)this.retries=K.retries}}class LV{constructor(){this.value=0}load(K){if($0(K))return;if(!$0(K.value))this.value=q1(K.value)}}class h4 extends LV{constructor(){super();this.animation=new XH}load(K){if(super.load(K),$0(K))return;let V=K.animation;if(V!==void 0)this.animation.load(V)}}class C8 extends h4{constructor(){super();this.animation=new JU}load(K){super.load(K)}}class LL extends LV{constructor(){super();this.value=1}}class I8{constructor(){this.horizontal=new LL,this.vertical=new LL}load(K){if($0(K))return;this.horizontal.load(K.horizontal),this.vertical.load(K.vertical)}}class tZ{constructor(){this.absorb=new rZ,this.bounce=new I8,this.enable=!1,this.maxSpeed=50,this.mode=KU.bounce,this.overlap=new iZ}load(K){if($0(K))return;if(this.absorb.load(K.absorb),this.bounce.load(K.bounce),K.enable!==void 0)this.enable=K.enable;if(K.maxSpeed!==void 0)this.maxSpeed=q1(K.maxSpeed);if(K.mode!==void 0)this.mode=K.mode;this.overlap.load(K.overlap)}}class aZ{constructor(){this.close=!0,this.fill=!0,this.options={},this.type=[]}load(K){if($0(K))return;let V=K.options;if(V!==void 0)for(let Q in V){let U=V[Q];if(U)this.options[Q]=x1(this.options[Q]??{},U)}if(K.close!==void 0)this.close=K.close;if(K.fill!==void 0)this.fill=K.fill;if(K.type!==void 0)this.type=K.type}}class eZ{constructor(){this.offset=0,this.value=90}load(K){if($0(K))return;if(K.offset!==void 0)this.offset=q1(K.offset);if(K.value!==void 0)this.value=q1(K.value)}}class KY{constructor(){this.distance=200,this.enable=!1,this.rotate={x:3000,y:3000}}load(K){if($0(K))return;if(K.distance!==void 0)this.distance=q1(K.distance);if(K.enable!==void 0)this.enable=K.enable;if(K.rotate){let V=K.rotate.x;if(V!==void 0)this.rotate.x=V;let Q=K.rotate.y;if(Q!==void 0)this.rotate.y=Q}}}class VY{constructor(){this.x=50,this.y=50,this.mode=mV.percent,this.radius=0}load(K){if($0(K))return;if(K.x!==void 0)this.x=K.x;if(K.y!==void 0)this.y=K.y;if(K.mode!==void 0)this.mode=K.mode;if(K.radius!==void 0)this.radius=K.radius}}class QY{constructor(){this.acceleration=9.81,this.enable=!1,this.inverse=!1,this.maxSpeed=50}load(K){if($0(K))return;if(K.acceleration!==void 0)this.acceleration=q1(K.acceleration);if(K.enable!==void 0)this.enable=K.enable;if(K.inverse!==void 0)this.inverse=K.inverse;if(K.maxSpeed!==void 0)this.maxSpeed=q1(K.maxSpeed)}}class UY{constructor(){this.clamp=!0,this.delay=new LV,this.enable=!1,this.options={}}load(K){if($0(K))return;if(K.clamp!==void 0)this.clamp=K.clamp;if(this.delay.load(K.delay),K.enable!==void 0)this.enable=K.enable;if(this.generator=K.generator,K.options)this.options=x1(this.options,K.options)}}class HY{load(K){if($0(K))return;if(K.color!==void 0)this.color=e1.create(this.color,K.color);if(K.image!==void 0)this.image=K.image}}class zY{constructor(){this.enable=!1,this.length=10,this.fill=new HY}load(K){if($0(K))return;if(K.enable!==void 0)this.enable=K.enable;if(K.fill!==void 0)this.fill.load(K.fill);if(K.length!==void 0)this.length=K.length}}var _1;(function(K){K.bounce="bounce",K.none="none",K.out="out",K.destroy="destroy",K.split="split"})(_1||(_1={}));class LY{constructor(){this.default=_1.out}load(K){if($0(K))return;if(K.default!==void 0)this.default=K.default;this.bottom=K.bottom??K.default,this.left=K.left??K.default,this.right=K.right??K.default,this.top=K.top??K.default}}class ZY{constructor(){this.acceleration=0,this.enable=!1}load(K){if($0(K))return;if(K.acceleration!==void 0)this.acceleration=q1(K.acceleration);if(K.enable!==void 0)this.enable=K.enable;if(K.position)this.position=x1({},K.position)}}class YY{constructor(){this.angle=new eZ,this.attract=new KY,this.center=new VY,this.decay=0,this.distance={},this.direction=JK.none,this.drift=0,this.enable=!1,this.gravity=new QY,this.path=new UY,this.outModes=new LY,this.random=!1,this.size=!1,this.speed=2,this.spin=new ZY,this.straight=!1,this.trail=new zY,this.vibrate=!1,this.warp=!1}load(K){if($0(K))return;if(this.angle.load(sV(K.angle)?{value:K.angle}:K.angle),this.attract.load(K.attract),this.center.load(K.center),K.decay!==void 0)this.decay=q1(K.decay);if(K.direction!==void 0)this.direction=K.direction;if(K.distance!==void 0)this.distance=sV(K.distance)?{horizontal:K.distance,vertical:K.distance}:{...K.distance};if(K.drift!==void 0)this.drift=q1(K.drift);if(K.enable!==void 0)this.enable=K.enable;this.gravity.load(K.gravity);let V=K.outModes;if(V!==void 0)if(BQ(V))this.outModes.load(V);else this.outModes.load({default:V});if(this.path.load(K.path),K.random!==void 0)this.random=K.random;if(K.size!==void 0)this.size=K.size;if(K.speed!==void 0)this.speed=q1(K.speed);if(this.spin.load(K.spin),K.straight!==void 0)this.straight=K.straight;if(this.trail.load(K.trail),K.vibrate!==void 0)this.vibrate=K.vibrate;if(K.warp!==void 0)this.warp=K.warp}}class qY extends JU{constructor(){super();this.destroy=oV.none,this.speed=2}load(K){if(super.load(K),$0(K))return;if(K.destroy!==void 0)this.destroy=K.destroy}}class OY extends C8{constructor(){super();this.animation=new qY,this.value=1}load(K){if($0(K))return;super.load(K);let V=K.animation;if(V!==void 0)this.animation.load(V)}}class MY{constructor(){this.enable=!1,this.width=1920,this.height=1080}load(K){if($0(K))return;if(K.enable!==void 0)this.enable=K.enable;let V=K.width;if(V!==void 0)this.width=V;let Q=K.height;if(Q!==void 0)this.height=Q}}var kU;(function(K){K.delete="delete",K.wait="wait"})(kU||(kU={}));class WY{constructor(){this.mode=kU.delete,this.value=0}load(K){if($0(K))return;if(K.mode!==void 0)this.mode=K.mode;if(K.value!==void 0)this.value=K.value}}class XY{constructor(){this.density=new MY,this.limit=new WY,this.value=0}load(K){if($0(K))return;if(this.density.load(K.density),this.limit.load(K.limit),K.value!==void 0)this.value=K.value}}class AY{constructor(){this.blur=0,this.color=new e1,this.enable=!1,this.offset={x:0,y:0},this.color.value="#000"}load(K){if($0(K))return;if(K.blur!==void 0)this.blur=K.blur;if(this.color=e1.create(this.color,K.color),K.enable!==void 0)this.enable=K.enable;if(K.offset===void 0)return;if(K.offset.x!==void 0)this.offset.x=K.offset.x;if(K.offset.y!==void 0)this.offset.y=K.offset.y}}class RY{constructor(){this.close=!0,this.fill=!0,this.options={},this.type="circle"}load(K){if($0(K))return;let V=K.options;if(V!==void 0)for(let Q in V){let U=V[Q];if(U)this.options[Q]=x1(this.options[Q]??{},U)}if(K.close!==void 0)this.close=K.close;if(K.fill!==void 0)this.fill=K.fill;if(K.type!==void 0)this.type=K.type}}class $Y extends JU{constructor(){super();this.destroy=oV.none,this.speed=5}load(K){if(super.load(K),$0(K))return;if(K.destroy!==void 0)this.destroy=K.destroy}}class FY extends C8{constructor(){super();this.animation=new $Y,this.value=3}load(K){if(super.load(K),$0(K))return;let V=K.animation;if(V!==void 0)this.animation.load(V)}}class ZL{constructor(){this.width=0}load(K){if($0(K))return;if(K.color!==void 0)this.color=vU.create(this.color,K.color);if(K.width!==void 0)this.width=q1(K.width);if(K.opacity!==void 0)this.opacity=q1(K.opacity)}}class DY extends LV{constructor(){super();this.opacityRate=1,this.sizeRate=1,this.velocityRate=1}load(K){if(super.load(K),$0(K))return;if(K.opacityRate!==void 0)this.opacityRate=K.opacityRate;if(K.sizeRate!==void 0)this.sizeRate=K.sizeRate;if(K.velocityRate!==void 0)this.velocityRate=K.velocityRate}}class SY{constructor(K,V){this._engine=K,this._container=V,this.bounce=new I8,this.collisions=new tZ,this.color=new vU,this.color.value="#fff",this.effect=new aZ,this.groups={},this.move=new YY,this.number=new XY,this.opacity=new OY,this.reduceDuplicates=!1,this.shadow=new AY,this.shape=new RY,this.size=new FY,this.stroke=new ZL,this.zIndex=new DY}load(K){if($0(K))return;if(K.groups!==void 0)for(let Q of Object.keys(K.groups)){if(!Object.hasOwn(K.groups,Q))continue;let U=K.groups[Q];if(U!==void 0)this.groups[Q]=x1(this.groups[Q]??{},U)}if(K.reduceDuplicates!==void 0)this.reduceDuplicates=K.reduceDuplicates;if(this.bounce.load(K.bounce),this.color.load(vU.create(this.color,K.color)),this.effect.load(K.effect),this.move.load(K.move),this.number.load(K.number),this.opacity.load(K.opacity),this.shape.load(K.shape),this.size.load(K.size),this.shadow.load(K.shadow),this.zIndex.load(K.zIndex),this.collisions.load(K.collisions),K.interactivity!==void 0)this.interactivity=x1({},K.interactivity);let V=K.stroke;if(V)this.stroke=XK(V,(Q)=>{let U=new ZL;return U.load(Q),U});if(this._container){let Q=this._engine.updaters.get(this._container);if(Q){for(let H of Q)if(H.loadOptions)H.loadOptions(this,K)}let U=this._engine.interactors.get(this._container);if(U){for(let H of U)if(H.loadParticlesOptions)H.loadParticlesOptions(this,K)}}}}function PY(K,...V){for(let Q of V)K.load(Q)}function YL(K,V,...Q){let U=new SY(K,V);return PY(U,...Q),U}class CY{constructor(K,V){this._findDefaultTheme=(Q)=>{return this.themes.find((U)=>U.default.value&&U.default.mode===Q)??this.themes.find((U)=>U.default.value&&U.default.mode===OQ.any)},this._importPreset=(Q)=>{this.load(this._engine.getPreset(Q))},this._engine=K,this._container=V,this.autoPlay=!0,this.background=new _Z,this.backgroundMask=new gZ,this.clear=!0,this.defaultThemes={},this.delay=0,this.fullScreen=new yZ,this.detectRetina=!0,this.duration=0,this.fpsLimit=120,this.interactivity=new S8(K,V),this.manualParticles=[],this.particles=YL(this._engine,this._container),this.pauseOnBlur=!0,this.pauseOnOutsideViewport=!0,this.responsive=[],this.smooth=!1,this.style={},this.themes=[],this.zLayers=100}load(K){if($0(K))return;if(K.preset!==void 0)XK(K.preset,(Y)=>this._importPreset(Y));if(K.autoPlay!==void 0)this.autoPlay=K.autoPlay;if(K.clear!==void 0)this.clear=K.clear;if(K.key!==void 0)this.key=K.key;if(K.name!==void 0)this.name=K.name;if(K.delay!==void 0)this.delay=q1(K.delay);let V=K.detectRetina;if(V!==void 0)this.detectRetina=V;if(K.duration!==void 0)this.duration=q1(K.duration);let Q=K.fpsLimit;if(Q!==void 0)this.fpsLimit=Q;if(K.pauseOnBlur!==void 0)this.pauseOnBlur=K.pauseOnBlur;if(K.pauseOnOutsideViewport!==void 0)this.pauseOnOutsideViewport=K.pauseOnOutsideViewport;if(K.zLayers!==void 0)this.zLayers=K.zLayers;this.background.load(K.background);let U=K.fullScreen;if(oz(U))this.fullScreen.enable=U;else this.fullScreen.load(U);if(this.backgroundMask.load(K.backgroundMask),this.interactivity.load(K.interactivity),K.manualParticles)this.manualParticles=K.manualParticles.map((Y)=>{let z=new dZ;return z.load(Y),z});if(this.particles.load(K.particles),this.style=x1(this.style,K.style),this._engine.loadOptions(this,K),K.smooth!==void 0)this.smooth=K.smooth;let H=this._engine.interactors.get(this._container);if(H){for(let Y of H)if(Y.loadOptions)Y.loadOptions(this,K)}if(K.responsive!==void 0)for(let Y of K.responsive){let z=new sZ;z.load(Y),this.responsive.push(z)}if(this.responsive.sort((Y,z)=>Y.maxWidth-z.maxWidth),K.themes!==void 0)for(let Y of K.themes){let z=this.themes.find((M)=>M.name===Y.name);if(!z){let M=new mZ;M.load(Y),this.themes.push(M)}else z.load(Y)}this.defaultThemes.dark=this._findDefaultTheme(OQ.dark)?.name,this.defaultThemes.light=this._findDefaultTheme(OQ.light)?.name}setResponsive(K,V,Q){this.load(Q);let U=this.responsive.find((H)=>H.mode===kQ.screen&&screen?H.maxWidth>screen.availWidth:H.maxWidth*V>K);return this.load(U?.options),U?.maxWidth}setTheme(K){if(K){let V=this.themes.find((Q)=>Q.name===K);if(V)this.load(V.options)}else{let V=rz("(prefers-color-scheme: dark)"),Q=V?.matches,U=this._findDefaultTheme(Q?OQ.dark:OQ.light);if(U)this.load(U.options)}}}var fQ;(function(K){K.external="external",K.particles="particles"})(fQ||(fQ={}));class IY{constructor(K,V){this.container=V,this._engine=K,this._interactors=[],this._externalInteractors=[],this._particleInteractors=[]}externalInteract(K){for(let V of this._externalInteractors)if(V.isEnabled())V.interact(K)}handleClickMode(K){for(let V of this._externalInteractors)V.handleClickMode?.(K)}async init(){this._interactors=await this._engine.getInteractors(this.container,!0),this._externalInteractors=[],this._particleInteractors=[];for(let K of this._interactors){switch(K.type){case fQ.external:this._externalInteractors.push(K);break;case fQ.particles:this._particleInteractors.push(K);break}K.init()}}particlesInteract(K,V){for(let Q of this._externalInteractors)Q.clear(K,V);for(let Q of this._particleInteractors)if(Q.isEnabled(K))Q.interact(K,V)}reset(K){for(let V of this._externalInteractors)if(V.isEnabled())V.reset(K);for(let V of this._particleInteractors)if(V.isEnabled(K))V.reset(K)}}var ZV;(function(K){K.normal="normal",K.inside="inside",K.outside="outside"})(ZV||(ZV={}));function ZI(K,V,Q,U){let H=V.options[K];if(!H)return;return x1({close:V.close,fill:V.fill},yK(H,Q,U))}function YI(K,V,Q,U){let H=V.options[K];if(!H)return;return x1({close:V.close,fill:V.fill},yK(H,Q,U))}function p4(K){if(!f1(K.outMode,K.checkModes))return;let V=K.radius*BK;if(K.coord>K.maxCoord-V)K.setCb(-K.radius);else if(K.coord{for(let G of Q.plugins.values()){let T=G.particlePosition!==void 0?G.particlePosition(U,this):void 0;if(T)return HV.create(T.x,T.y,H)}let z=Q.canvas.size,M=P4({size:z,position:U}),A=HV.create(M.x,M.y,H),R=this.getRadius(),D=this.options.move.outModes,F=(G)=>{p4({outMode:G,checkModes:[_1.bounce],coord:A.x,maxCoord:Q.canvas.size.width,setCb:(T)=>A.x+=T,radius:R})},P=(G)=>{p4({outMode:G,checkModes:[_1.bounce],coord:A.y,maxCoord:Q.canvas.size.height,setCb:(T)=>A.y+=T,radius:R})};if(F(D.left??D.default),F(D.right??D.default),P(D.top??D.default),P(D.bottom??D.default),this._checkOverlap(A,Y))return this._calcPosition(Q,void 0,H,Y+eW);return A},this._calculateVelocity=()=>{let Q=S4(this.direction),U=Q.copy(),H=this.options.move;if(H.direction===JK.inside||H.direction===JK.outside)return U;let Y=kV(a0(H.angle.value)),z=kV(a0(H.angle.offset)),M={left:z-Y*OK,right:z+Y*OK};if(!H.straight)U.angle+=gK(q1(M.left,M.right));if(H.random&&typeof H.speed==="number")U.length*=W1();return U},this._checkOverlap=(Q,U=OZ)=>{let H=this.options.collisions,Y=this.getRadius();if(!H.enable)return!1;let z=H.overlap;if(z.enable)return!1;let M=z.retries;if(M>=K4&&U>M)throw Error(`${EK} particle is overlapping and can't be placed`);return!!this.container.particles.find((A)=>MK(Q,A.position){if(!Q||!this.roll||!this.backColor&&!this.roll.alter)return Q;let U=this.roll.horizontal&&this.roll.vertical?BK*SZ:SZ,H=this.roll.horizontal?Math.PI*OK:EU;if(!(Math.floor(((this.roll.angle??EU)+H)/(Math.PI/U))%BK))return Q;if(this.backColor)return this.backColor;if(this.roll.alter)return g4(Q,this.roll.alter.type,this.roll.alter.value);return Q},this._initPosition=(Q)=>{let U=this.container,H=a0(this.options.zIndex.value);this.position=this._calcPosition(U,Q,CK(H,V4,U.zLayers)),this.initialPosition=this.position.copy();let Y=U.canvas.size;switch(this.moveCenter={...ez(this.options.move.center,Y),radius:this.options.move.center.radius??Q4,mode:this.options.move.center.mode??mV.percent},this.direction=D4(this.options.move.direction,this.position,this.moveCenter),this.options.move.direction){case JK.inside:this.outType=ZV.inside;break;case JK.outside:this.outType=ZV.outside;break}this.offset=r1.origin},this._engine=K}destroy(K){if(this.unbreakable||this.destroyed)return;this.destroyed=!0,this.bubble.inRange=!1,this.slow.inRange=!1;let V=this.container,Q=this.pathGenerator;V.shapeDrawers.get(this.shape)?.particleDestroy?.(this);for(let H of V.plugins.values())H.particleDestroyed?.(this,K);for(let H of V.particles.updaters)H.particleDestroyed?.(this,K);Q?.reset(this),this._engine.dispatchEvent(jK.particleDestroyed,{container:this.container,data:{particle:this}})}draw(K){let V=this.container,Q=V.canvas;for(let U of V.plugins.values())Q.drawParticlePlugin(U,this,K);Q.drawParticle(this,K)}getFillColor(){return this._getRollColor(this.bubble.color??wZ(this.color))}getMass(){return this.getRadius()**SV*Math.PI*OK}getPosition(){return{x:this.position.x+this.offset.x,y:this.position.y+this.offset.y,z:this.position.z}}getRadius(){return this.bubble.radius??this.size.value}getStrokeColor(){return this._getRollColor(this.bubble.color??wZ(this.strokeColor))}init(K,V,Q,U){let H=this.container,Y=this._engine;this.id=K,this.group=U,this.effectClose=!0,this.effectFill=!0,this.shapeClose=!0,this.shapeFill=!0,this.pathRotation=!1,this.lastPathTime=0,this.destroyed=!1,this.unbreakable=!1,this.isRotating=!1,this.rotation=0,this.misplaced=!1,this.retina={maxDistance:{}},this.outType=ZV.normal,this.ignoresResizeRatio=!0;let z=H.retina.pixelRatio,M=H.actualOptions,A=YL(this._engine,H,M.particles),{reduceDuplicates:R}=A,D=A.effect.type,F=A.shape.type;this.effect=yK(D,this.id,R),this.shape=yK(F,this.id,R);let{effect:P,shape:G}=A;if(Q){if(Q.effect?.type){let N=Q.effect.type,m=yK(N,this.id,R);if(m)this.effect=m,P.load(Q.effect)}if(Q.shape?.type){let N=Q.shape.type,m=yK(N,this.id,R);if(m)this.shape=m,G.load(Q.shape)}}if(this.effect===oQ){let N=[...this.container.effectDrawers.keys()];this.effect=N[Math.floor(W1()*N.length)]}if(this.shape===oQ){let N=[...this.container.shapeDrawers.keys()];this.shape=N[Math.floor(W1()*N.length)]}this.effectData=ZI(this.effect,P,this.id,R),this.shapeData=YI(this.shape,G,this.id,R),A.load(Q);let T=this.effectData;if(T)A.load(T.particles);let v=this.shapeData;if(v)A.load(v.particles);let J=new S8(Y,H);J.load(H.actualOptions.interactivity),J.load(A.interactivity),this.interactivity=J,this.effectFill=T?.fill??A.effect.fill,this.effectClose=T?.close??A.effect.close,this.shapeFill=v?.fill??A.shape.fill,this.shapeClose=v?.close??A.shape.close,this.options=A;let k=this.options.move.path;if(this.pathDelay=a0(k.delay.value)*a1,k.generator){if(this.pathGenerator=this._engine.getPathGenerator(k.generator),this.pathGenerator&&H.addPath(k.generator,this.pathGenerator))this.pathGenerator.init(H)}H.retina.initParticle(this),this.size=az(this.options.size,z),this.bubble={inRange:!1},this.slow={inRange:!1,factor:1},this._initPosition(V),this.initialVelocity=this._calculateVelocity(),this.velocity=this.initialVelocity.copy(),this.moveDecay=bz-a0(this.options.move.decay);let f=H.particles;f.setLastZIndex(this.position.z),this.zIndexFactor=this.position.z/H.zLayers,this.sides=24;let j=H.effectDrawers.get(this.effect);if(!j){if(j=this._engine.getEffectDrawer(this.effect),j)H.effectDrawers.set(this.effect,j)}if(j?.loadEffect)j.loadEffect(this);let _=H.shapeDrawers.get(this.shape);if(!_){if(_=this._engine.getShapeDrawer(this.shape),_)H.shapeDrawers.set(this.shape,_)}if(_?.loadShape)_.loadShape(this);let p=_?.getSidesCount;if(p)this.sides=p(this);this.spawning=!1,this.shadowColor=KV(this._engine,this.options.shadow.color);for(let N of f.updaters)N.init(this);for(let N of f.movers)N.init?.(this);j?.particleInit?.(H,this),_?.particleInit?.(H,this);for(let N of H.plugins.values())N.particleCreated?.(this)}isInsideCanvas(){let K=this.getRadius(),V=this.container.canvas.size,Q=this.position;return Q.x>=-K&&Q.y>=-K&&Q.y<=V.height+K&&Q.x<=V.width+K}isVisible(){return!this.destroyed&&!this.spawning&&this.isInsideCanvas()}reset(){for(let K of this.container.particles.updaters)K.reset?.(this)}}class TY{constructor(K,V){this.position=K,this.particle=V}}var fU;(function(K){K.circle="circle",K.rectangle="rectangle"})(fU||(fU={}));class EY{constructor(K,V,Q){this.position={x:K,y:V},this.type=Q}}class AK extends EY{constructor(K,V,Q){super(K,V,fU.circle);this.radius=Q}contains(K){return MK(K,this.position)<=this.radius}intersects(K){let V=this.position,Q=K.position,U={x:Math.abs(Q.x-V.x),y:Math.abs(Q.y-V.y)},H=this.radius;if(K instanceof AK||K.type===fU.circle){let Y=K,z=H+Y.radius,M=Math.sqrt(U.x**SV+U.y**SV);return z>M}else if(K instanceof lK||K.type===fU.rectangle){let Y=K,{width:z,height:M}=Y.size;return Math.pow(U.x-z,SV)+Math.pow(U.y-M,SV)<=H**SV||U.x<=H+z&&U.y<=H+M||U.x<=z||U.y<=M}return!1}}class lK extends EY{constructor(K,V,Q,U){super(K,V,fU.rectangle);this.size={height:U,width:Q}}contains(K){let V=this.size.width,Q=this.size.height,U=this.position;return K.x>=U.x&&K.x<=U.x+V&&K.y>=U.y&&K.y<=U.y+Q}intersects(K){if(K instanceof AK)return K.intersects(this);let V=this.size.width,Q=this.size.height,U=this.position,H=K.position,Y=K instanceof lK?K.size:{width:0,height:0},z=Y.width,M=Y.height;return H.xU.x&&H.yU.y}}class G8{constructor(K,V){this.rectangle=K,this.capacity=V,this._subdivide=()=>{let{x:Q,y:U}=this.rectangle.position,{width:H,height:Y}=this.rectangle.size,{capacity:z}=this;for(let M=0;MV.insert(K))}query(K,V){let Q=[];if(!K.intersects(this.rectangle))return[];for(let U of this._points){if(!K.contains(U.position)&&MK(K.position,U.position)>U.particle.getRadius()&&(!V||V(U.particle)))continue;Q.push(U.particle)}if(this._divided)for(let U of this._subs)Q.push(...U.query(K,V));return Q}queryCircle(K,V,Q){return this.query(new AK(K.x,K.y,V),Q)}queryRectangle(K,V,Q){return this.query(new lK(K.x,K.y,V.width,V.height),Q)}}var c4=(K)=>{let{height:V,width:Q}=K;return new lK(PZ*Q,PZ*V,CZ*Q,CZ*V)};class BY{constructor(K,V){this._addToPool=(...U)=>{this._pool.push(...U)},this._applyDensity=(U,H,Y,z)=>{let M=U.number;if(!U.number.density?.enable){if(Y===void 0)this._limit=M.limit.value;else if(z?.number.limit?.value??M.limit.value)this._groupLimits.set(Y,z?.number.limit?.value??M.limit.value);return}let A=this._initDensityFactor(M.density),R=M.value,D=M.limit.value>IZ?M.limit.value:R,F=Math.min(R,D)*A+H,P=Math.min(this.count,this.filter((G)=>G.group===Y).length);if(Y===void 0)this._limit=M.limit.value*A;else this._groupLimits.set(Y,M.limit.value*A);if(PF)this.removeQuantity(P-F,Y)},this._initDensityFactor=(U)=>{let H=this._container;if(!H.canvas.element||!U.enable)return z4;let Y=H.canvas.element,z=H.retina.pixelRatio;return Y.width*Y.height/(U.height*U.width*z**SV)},this._pushParticle=(U,H,Y,z)=>{try{let M=this._pool.pop();if(!M)M=new GY(this._engine,this._container);M.init(this._nextId,U,H,Y);let A=!0;if(z)A=z(M);if(!A)return;return this._array.push(M),this._zArray.push(M),this._nextId++,this._engine.dispatchEvent(jK.particleAdded,{container:this._container,data:{particle:M}}),M}catch(M){fV().warning(`${EK} adding particle: ${M}`)}},this._removeParticle=(U,H,Y)=>{let z=this._array[U];if(!z||z.group!==H)return!1;let M=this._zArray.indexOf(z);return this._array.splice(U,LH),this._zArray.splice(M,LH),z.destroy(Y),this._engine.dispatchEvent(jK.particleRemoved,{container:this._container,data:{particle:z}}),this._addToPool(z),!0},this._engine=K,this._container=V,this._nextId=0,this._array=[],this._zArray=[],this._pool=[],this._limit=0,this._groupLimits=new Map,this._needsSort=!1,this._lastZIndex=0,this._interactionManager=new IY(K,V),this._pluginsInitialized=!1;let Q=V.canvas.size;this.quadTree=new G8(c4(Q),MZ),this.movers=[],this.updaters=[]}get count(){return this._array.length}addManualParticles(){let K=this._container;K.actualOptions.manualParticles.forEach((Q)=>this.addParticle(Q.position?ez(Q.position,K.canvas.size):void 0,Q.options))}addParticle(K,V,Q,U){let H=this._container.actualOptions.particles.number.limit.mode,Y=Q===void 0?this._limit:this._groupLimits.get(Q)??this._limit,z=this.count;if(Y>IZ)switch(H){case kU.delete:{let M=z+U4-Y;if(M>H4)this.removeQuantity(M);break}case kU.wait:if(z>=Y)return;break}return this._pushParticle(K,V,Q,U)}clear(){this._array=[],this._zArray=[],this._pluginsInitialized=!1}destroy(){this._array=[],this._zArray=[],this.movers=[],this.updaters=[]}draw(K){let V=this._container,Q=V.canvas;Q.clear(),this.update(K);for(let U of V.plugins.values())Q.drawPlugin(U,K);for(let U of this._zArray)U.draw(K)}filter(K){return this._array.filter(K)}find(K){return this._array.find(K)}get(K){return this._array[K]}handleClickMode(K){this._interactionManager.handleClickMode(K)}async init(){let K=this._container,V=K.actualOptions;this._lastZIndex=0,this._needsSort=!1,await this.initPlugins();let Q=!1;for(let U of K.plugins.values())if(Q=U.particlesInitialization?.()??Q,Q)break;if(this.addManualParticles(),!Q){let U=V.particles,H=U.groups;for(let Y in H){let z=H[Y];for(let M=this.count,A=0;Athis.count)return;let H=0;for(let Y=K;H!Q.has(Y);this._array=this.filter(H),this._zArray=this._zArray.filter(H);for(let Y of Q)this._engine.dispatchEvent(jK.particleRemoved,{container:this._container,data:{particle:Y}});this._addToPool(...Q)}this._interactionManager.externalInteract(K);for(let H of this._array){for(let Y of this.updaters)Y.update(H,K);if(!H.destroyed&&!H.spawning)this._interactionManager.particlesInteract(H,K)}if(delete this._resizeFactor,this._needsSort){let H=this._zArray;H.sort((Y,z)=>z.position.z-Y.position.z||Y.id-z.id),this._lastZIndex=H[H.length-lz].position.z,this._needsSort=!1}}}class JY{constructor(K){this.container=K,this.pixelRatio=WZ,this.reduceFactor=XZ}init(){let K=this.container,V=K.actualOptions;this.pixelRatio=!V.detectRetina||YQ()?WZ:devicePixelRatio,this.reduceFactor=XZ;let Q=this.pixelRatio,U=K.canvas;if(U.element){let z=U.element;U.size.width=z.offsetWidth*Q,U.size.height=z.offsetHeight*Q}let H=V.particles,Y=H.move;this.maxSpeed=a0(Y.gravity.maxSpeed)*Q,this.sizeAnimationSpeed=a0(H.size.animation.speed)*Q}initParticle(K){let V=K.options,Q=this.pixelRatio,U=V.move,H=U.distance,Y=K.retina;Y.moveDrift=a0(U.drift)*Q,Y.moveSpeed=a0(U.speed)*Q,Y.sizeAnimationSpeed=a0(V.size.animation.speed)*Q;let z=Y.maxDistance;z.horizontal=H.horizontal!==void 0?H.horizontal*Q:void 0,z.vertical=H.vertical!==void 0?H.vertical*Q:void 0,Y.maxSpeed=a0(U.gravity.maxSpeed)*Q}}function DK(K){return K&&!K.destroyed}function qI(K,V=Nz,Q=!1){return{value:K,factor:Q?Nz/V:Nz*K/a1}}function AH(K,V,...Q){let U=new CY(K,V);return PY(U,...Q),U}class vY{constructor(K,V,Q){this._intersectionManager=(U)=>{if(!DK(this)||!this.actualOptions.pauseOnOutsideViewport)return;for(let H of U){if(H.target!==this.interactivity.element)continue;if(H.isIntersecting)this.play();else this.pause()}},this._nextFrame=(U)=>{try{if(!this._smooth&&this._lastFrameTime!==void 0&&Ua1){this.draw(!1);return}if(this.particles.draw(H),!this.alive()){this.destroy();return}if(this.animationStatus)this.draw(!1)}catch(H){fV().error(`${EK} in animation loop`,H)}},this._engine=K,this.id=Symbol(V),this.fpsLimit=120,this._smooth=!1,this._delay=0,this._duration=0,this._lifeTime=0,this._firstStart=!0,this.started=!1,this.destroyed=!1,this._paused=!0,this._lastFrameTime=0,this.zLayers=100,this.pageHidden=!1,this._clickHandlers=new Map,this._sourceOptions=Q,this._initialSourceOptions=Q,this.retina=new JY(this),this.canvas=new jZ(this,this._engine),this.particles=new BY(this._engine,this),this.pathGenerators=new Map,this.interactivity={mouse:{clicking:!1,inside:!1}},this.plugins=new Map,this.effectDrawers=new Map,this.shapeDrawers=new Map,this._options=AH(this._engine,this),this.actualOptions=AH(this._engine,this),this._eventListeners=new xZ(this),this._intersectionObserver=I4((U)=>this._intersectionManager(U)),this._engine.dispatchEvent(jK.containerBuilt,{container:this})}get animationStatus(){return!this._paused&&!this.pageHidden&&DK(this)}get options(){return this._options}get sourceOptions(){return this._sourceOptions}addClickHandler(K){if(!DK(this))return;let V=this.interactivity.element;if(!V)return;let Q=(D,F,P)=>{if(!DK(this))return;let G=this.retina.pixelRatio,T={x:F.x*G,y:F.y*G},v=this.particles.quadTree.queryCircle(T,P*G);K(D,v)},U=(D)=>{if(!DK(this))return;let F=D,P={x:F.offsetX||F.clientX,y:F.offsetY||F.clientY};Q(D,P,sW)},H=()=>{if(!DK(this))return;A=!0,R=!1},Y=()=>{if(!DK(this))return;R=!0},z=(D)=>{if(!DK(this))return;if(A&&!R){let F=D,P=F.touches[F.touches.length-DZ];if(!P){if(P=F.changedTouches[F.changedTouches.length-DZ],!P)return}let G=this.canvas.element,T=G?G.getBoundingClientRect():void 0,v={x:P.clientX-(T?T.left:zH),y:P.clientY-(T?T.top:zH)};Q(D,v,Math.max(P.radiusX,P.radiusY))}A=!1,R=!1},M=()=>{if(!DK(this))return;A=!1,R=!1},A=!1,R=!1;this._clickHandlers.set("click",U),this._clickHandlers.set("touchstart",H),this._clickHandlers.set("touchmove",Y),this._clickHandlers.set("touchend",z),this._clickHandlers.set("touchcancel",M);for(let[D,F]of this._clickHandlers)V.addEventListener(D,F)}addLifeTime(K){this._lifeTime+=K}addPath(K,V,Q=!1){if(!DK(this)||!Q&&this.pathGenerators.has(K))return!1;return this.pathGenerators.set(K,V),!0}alive(){return!this._duration||this._lifeTime<=this._duration}clearClickHandlers(){if(!DK(this))return;for(let[K,V]of this._clickHandlers)this.interactivity.element?.removeEventListener(K,V);this._clickHandlers.clear()}destroy(K=!0){if(!DK(this))return;this.stop(),this.clearClickHandlers(),this.particles.destroy(),this.canvas.destroy();for(let V of this.effectDrawers.values())V.destroy?.(this);for(let V of this.shapeDrawers.values())V.destroy?.(this);for(let V of this.effectDrawers.keys())this.effectDrawers.delete(V);for(let V of this.shapeDrawers.keys())this.shapeDrawers.delete(V);if(this._engine.clearPlugins(this),this.destroyed=!0,K){let V=this._engine.items,Q=V.findIndex((U)=>U===this);if(Q>=oW)V.splice(Q,uz)}this._engine.dispatchEvent(jK.containerDestroyed,{container:this})}draw(K){if(!DK(this))return;let V=K,Q=(U)=>{if(V)this._lastFrameTime=void 0,V=!1;this._nextFrame(U)};this._drawAnimationFrame=$4((U)=>Q(U))}async export(K,V={}){for(let Q of this.plugins.values()){if(!Q.export)continue;let U=await Q.export(K,V);if(!U.supported)continue;return U.blob}fV().error(`${EK} - Export plugin with type ${K} not found`)}handleClickMode(K){if(!DK(this))return;this.particles.handleClickMode(K);for(let V of this.plugins.values())V.handleClickMode?.(K)}async init(){if(!DK(this))return;let K=this._engine.getSupportedEffects();for(let A of K){let R=this._engine.getEffectDrawer(A);if(R)this.effectDrawers.set(A,R)}let V=this._engine.getSupportedShapes();for(let A of V){let R=this._engine.getShapeDrawer(A);if(R)this.shapeDrawers.set(A,R)}await this.particles.initPlugins(),this._options=AH(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=AH(this._engine,this,this._options);let Q=await this._engine.getAvailablePlugins(this);for(let[A,R]of Q)this.plugins.set(A,R);this.retina.init(),await this.canvas.init(),this.updateActualOptions(),this.canvas.initBackground(),this.canvas.resize();let{zLayers:U,duration:H,delay:Y,fpsLimit:z,smooth:M}=this.actualOptions;this.zLayers=U,this._duration=a0(H)*a1,this._delay=a0(Y)*a1,this._lifeTime=0,this.fpsLimit=z>nW?z:mW,this._smooth=M;for(let A of this.effectDrawers.values())await A.init?.(this);for(let A of this.shapeDrawers.values())await A.init?.(this);for(let A of this.plugins.values())await A.init?.();this._engine.dispatchEvent(jK.containerInit,{container:this}),await this.particles.init(),this.particles.setDensity();for(let A of this.plugins.values())A.particlesSetup?.();this._engine.dispatchEvent(jK.particlesSetup,{container:this})}async loadTheme(K){if(!DK(this))return;this._currentTheme=K,await this.refresh()}pause(){if(!DK(this))return;if(this._drawAnimationFrame!==void 0)F4(this._drawAnimationFrame),delete this._drawAnimationFrame;if(this._paused)return;for(let K of this.plugins.values())K.pause?.();if(!this.pageHidden)this._paused=!0;this._engine.dispatchEvent(jK.containerPaused,{container:this})}play(K){if(!DK(this))return;let V=this._paused||K;if(this._firstStart&&!this.actualOptions.autoPlay){this._firstStart=!1;return}if(this._paused)this._paused=!1;if(V){for(let Q of this.plugins.values())if(Q.play)Q.play()}this._engine.dispatchEvent(jK.containerPlay,{container:this}),this.draw(V??!1)}async refresh(){if(!DK(this))return;return this.stop(),this.start()}async reset(K){if(!DK(this))return;return this._initialSourceOptions=K,this._sourceOptions=K,this._options=AH(this._engine,this,this._initialSourceOptions,this.sourceOptions),this.actualOptions=AH(this._engine,this,this._options),this.refresh()}async start(){if(!DK(this)||this.started)return;await this.init(),this.started=!0,await new Promise((K)=>{let V=async()=>{if(this._eventListeners.addListeners(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver)this._intersectionObserver.observe(this.interactivity.element);for(let Q of this.plugins.values())await Q.start?.();this._engine.dispatchEvent(jK.containerStarted,{container:this}),this.play(),K()};this._delayTimeout=setTimeout(()=>void V(),this._delay)})}stop(){if(!DK(this)||!this.started)return;if(this._delayTimeout)clearTimeout(this._delayTimeout),delete this._delayTimeout;if(this._firstStart=!0,this.started=!1,this._eventListeners.removeListeners(),this.pause(),this.particles.clear(),this.canvas.stop(),this.interactivity.element instanceof HTMLElement&&this._intersectionObserver)this._intersectionObserver.unobserve(this.interactivity.element);for(let K of this.plugins.values())K.stop?.();for(let K of this.plugins.keys())this.plugins.delete(K);this._sourceOptions=this._options,this._engine.dispatchEvent(jK.containerStopped,{container:this})}updateActualOptions(){this.actualOptions.responsive=[];let K=this.actualOptions.setResponsive(this.canvas.size.width,this.retina.pixelRatio,this._options);if(this.actualOptions.setTheme(this._currentTheme),this._responsiveMaxWidth===K)return!1;return this._responsiveMaxWidth=K,!0}}class kY{constructor(){this._listeners=new Map}addEventListener(K,V){this.removeEventListener(K,V);let Q=this._listeners.get(K);if(!Q)Q=[],this._listeners.set(K,Q);Q.push(V)}dispatchEvent(K,V){this._listeners.get(K)?.forEach((U)=>U(V))}hasEventListener(K){return!!this._listeners.get(K)}removeAllEventListeners(K){if(!K)this._listeners=new Map;else this._listeners.delete(K)}removeEventListener(K,V){let Q=this._listeners.get(K);if(!Q)return;let U=Q.length,H=Q.indexOf(V);if(HY(K))),V.set(K,H);return H}async function OI(K){let V=yK(K.url,K.index);if(!V)return K.fallback;let Q=await fetch(V);if(Q.ok)return await Q.json();return fV().error(`${EK} ${Q.status} while retrieving config file`),K.fallback}var MI=(K)=>{let V;if(K instanceof HTMLCanvasElement||K.tagName.toLowerCase()===gz){if(V=K,!V.dataset[EQ])V.dataset[EQ]=qZ}else{let U=K.getElementsByTagName(gz);if(U.length)V=U[rW],V.dataset[EQ]=qZ;else V=document.createElement(gz),V.dataset[EQ]=YZ,K.appendChild(V)}let Q="100%";if(!V.style.width)V.style.width=Q;if(!V.style.height)V.style.height=Q;return V},WI=(K,V)=>{let Q=V??document.getElementById(K);if(Q)return Q;return Q=document.createElement("div"),Q.id=K,Q.dataset[EQ]=YZ,document.body.append(Q),Q};class wY{constructor(){this._configs=new Map,this._domArray=[],this._eventDispatcher=new kY,this._initialized=!1,this.plugins=[],this.colorManagers=new Map,this.easingFunctions=new Map,this._initializers={interactors:new Map,movers:new Map,updaters:new Map},this.interactors=new Map,this.movers=new Map,this.updaters=new Map,this.presets=new Map,this.effectDrawers=new Map,this.shapeDrawers=new Map,this.pathGenerators=new Map}get configs(){let K={};for(let[V,Q]of this._configs)K[V]=Q;return K}get items(){return this._domArray}get version(){return"3.9.1"}async addColorManager(K,V=!0){this.colorManagers.set(K.key,K),await this.refresh(V)}addConfig(K){let V=K.key??K.name??"default";this._configs.set(V,K),this._eventDispatcher.dispatchEvent(jK.configAdded,{data:{name:V,config:K}})}async addEasing(K,V,Q=!0){if(this.getEasing(K))return;this.easingFunctions.set(K,V),await this.refresh(Q)}async addEffect(K,V,Q=!0){XK(K,(U)=>{if(!this.getEffectDrawer(U))this.effectDrawers.set(U,V)}),await this.refresh(Q)}addEventListener(K,V){this._eventDispatcher.addEventListener(K,V)}async addInteractor(K,V,Q=!0){this._initializers.interactors.set(K,V),await this.refresh(Q)}async addMover(K,V,Q=!0){this._initializers.movers.set(K,V),await this.refresh(Q)}async addParticleUpdater(K,V,Q=!0){this._initializers.updaters.set(K,V),await this.refresh(Q)}async addPathGenerator(K,V,Q=!0){if(!this.getPathGenerator(K))this.pathGenerators.set(K,V);await this.refresh(Q)}async addPlugin(K,V=!0){if(!this.getPlugin(K.id))this.plugins.push(K);await this.refresh(V)}async addPreset(K,V,Q=!1,U=!0){if(Q||!this.getPreset(K))this.presets.set(K,V);await this.refresh(U)}async addShape(K,V=!0){for(let Q of K.validTypes){if(this.getShapeDrawer(Q))continue;this.shapeDrawers.set(Q,K)}await this.refresh(V)}checkVersion(K){if(this.version===K)return;throw Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${K}`)}clearPlugins(K){this.updaters.delete(K),this.movers.delete(K),this.interactors.delete(K)}dispatchEvent(K,V){this._eventDispatcher.dispatchEvent(K,V)}dom(){return this.items}domItem(K){return this.item(K)}async getAvailablePlugins(K){let V=new Map;for(let Q of this.plugins)if(Q.needsPlugin(K.actualOptions))V.set(Q.id,await Q.getPlugin(K));return V}getEasing(K){return this.easingFunctions.get(K)??((V)=>V)}getEffectDrawer(K){return this.effectDrawers.get(K)}async getInteractors(K,V=!1){return fY(K,this.interactors,this._initializers.interactors,V)}async getMovers(K,V=!1){return fY(K,this.movers,this._initializers.movers,V)}getPathGenerator(K){return this.pathGenerators.get(K)}getPlugin(K){return this.plugins.find((V)=>V.id===K)}getPreset(K){return this.presets.get(K)}getShapeDrawer(K){return this.shapeDrawers.get(K)}getSupportedEffects(){return this.effectDrawers.keys()}getSupportedShapes(){return this.shapeDrawers.keys()}async getUpdaters(K,V=!1){return fY(K,this.updaters,this._initializers.updaters,V)}init(){if(this._initialized)return;this._initialized=!0}item(K){let{items:V}=this,Q=V[K];if(!Q||Q.destroyed){V.splice(K,uz);return}return Q}async load(K){let V=K.id??K.element?.id??`tsparticles${Math.floor(W1()*iW)}`,{index:Q,url:U}=K,H=U?await OI({fallback:K.options,url:U,index:Q}):K.options,Y=yK(H,Q),{items:z}=this,M=z.findIndex((F)=>F.id.description===V),A=new vY(this,V,Y);if(M>=tW){let F=this.item(M),P=F?aW:EU;if(F&&!F.destroyed)F.destroy(!1);z.splice(M,P,A)}else z.push(A);let R=WI(V,K.element),D=MI(R);return A.canvas.loadCanvas(D),await A.start(),A}loadOptions(K,V){this.plugins.forEach((Q)=>Q.loadOptions?.(K,V))}loadParticlesOptions(K,V,...Q){let U=this.updaters.get(K);if(!U)return;U.forEach((H)=>H.loadOptions?.(V,...Q))}async refresh(K=!0){if(!K)return;await Promise.all(this.items.map((V)=>V.refresh()))}removeEventListener(K,V){this._eventDispatcher.removeEventListener(K,V)}setOnClickHandler(K){let{items:V}=this;if(!V.length)throw Error(`${EK} can only set click handlers after calling tsParticles.load()`);V.forEach((Q)=>Q.addClickHandler(K))}}function u4(){let K=new wY;return K.init(),K}class IK{constructor(K){this.type=fQ.external,this.container=K}}class wU{constructor(K){this.type=fQ.particles,this.container=K}}var oK;(function(K){K.clockwise="clockwise",K.counterClockwise="counter-clockwise",K.random="random"})(oK||(oK={}));var MQ;(function(K){K.easeInBack="ease-in-back",K.easeInCirc="ease-in-circ",K.easeInCubic="ease-in-cubic",K.easeInLinear="ease-in-linear",K.easeInQuad="ease-in-quad",K.easeInQuart="ease-in-quart",K.easeInQuint="ease-in-quint",K.easeInExpo="ease-in-expo",K.easeInSine="ease-in-sine",K.easeOutBack="ease-out-back",K.easeOutCirc="ease-out-circ",K.easeOutCubic="ease-out-cubic",K.easeOutLinear="ease-out-linear",K.easeOutQuad="ease-out-quad",K.easeOutQuart="ease-out-quart",K.easeOutQuint="ease-out-quint",K.easeOutExpo="ease-out-expo",K.easeOutSine="ease-out-sine",K.easeInOutBack="ease-in-out-back",K.easeInOutCirc="ease-in-out-circ",K.easeInOutCubic="ease-in-out-cubic",K.easeInOutLinear="ease-in-out-linear",K.easeInOutQuad="ease-in-out-quad",K.easeInOutQuart="ease-in-out-quart",K.easeInOutQuint="ease-in-out-quint",K.easeInOutExpo="ease-in-out-expo",K.easeInOutSine="ease-in-out-sine"})(MQ||(MQ={}));var RH=u4();if(!YQ())window.tsParticles=RH;var jY=0.5,XI=2,VU=0,nV=1,b4=60,l4=0,AI=0.01,RI=Math.PI*XI;function d4(K){let V=K.initialPosition,{dx:Q,dy:U}=YK(V,K.position),H=Math.abs(Q),Y=Math.abs(U),{maxDistance:z}=K.retina,M=z.horizontal,A=z.vertical;if(!M&&!A)return;let R=(M&&H>=M)??!1,D=(A&&Y>=A)??!1;if((R||D)&&!K.misplaced){if(K.misplaced=!!M&&H>M||!!A&&Y>A,M)K.velocity.x=K.velocity.y*jY-K.velocity.x;if(A)K.velocity.y=K.velocity.x*jY-K.velocity.y}else if((!M||HV.x&&P.x>VU))P.x*=-W1();if(A&&(F.yV.y&&P.y>VU))P.y*=-W1()}}function s4(K,V,Q,U,H,Y,z){$I(K,z);let M=K.gravity,A=M?.enable&&M.inverse?-nV:nV;if(H&&Q)K.velocity.x+=H*z.factor/(b4*Q);if(M?.enable&&Q)K.velocity.y+=A*(M.acceleration*z.factor)/(b4*Q);let R=K.moveDecay;K.velocity.multTo(R);let D=K.velocity.mult(Q);if(M?.enable&&U>VU&&(!M.inverse&&D.y>=VU&&D.y>=U||M.inverse&&D.y<=VU&&D.y<=-U)){if(D.y=A*U,Q)K.velocity.y=D.y/Q}let F=K.options.zIndex,P=(nV-K.zIndexFactor)**F.velocityRate;D.multTo(P),D.multTo(Y);let{position:G}=K;if(G.addTo(D),V.vibrate)G.x+=Math.sin(G.x*Math.cos(G.y))*Y,G.y+=Math.cos(G.y*Math.sin(G.x))*Y}function o4(K,V,Q){let U=K.container;if(!K.spin)return;let H=K.spin.direction===oK.clockwise,Y={x:H?Math.cos:Math.sin,y:H?Math.sin:Math.cos};K.position.x=K.spin.center.x+K.spin.radius*Y.x(K.spin.angle)*Q,K.position.y=K.spin.center.y+K.spin.radius*Y.y(K.spin.angle)*Q,K.spin.radius+=K.spin.acceleration*Q;let z=Math.max(U.canvas.size.width,U.canvas.size.height),M=z*jY;if(K.spin.radius>M)K.spin.radius=M,K.spin.acceleration*=-nV;else if(K.spin.radius=VU?oK.clockwise:oK.counterClockwise,angle:W1()*RI,radius:A,acceleration:K.retina.spinAcceleration}}var FI=2,DI=1,SI=1;class xY{init(K){let V=K.options,Q=V.move.gravity;K.gravity={enable:Q.enable,acceleration:a0(Q.acceleration),inverse:Q.inverse},n4(K)}isEnabled(K){return!K.destroyed&&K.options.move.enable}move(K,V){let Q=K.options,U=Q.move;if(!U.enable)return;let H=K.container,Y=H.retina.pixelRatio;K.retina.moveSpeed??=a0(U.speed)*Y,K.retina.moveDrift??=a0(K.options.move.drift)*Y;let z=m4(K),M=H.retina.reduceFactor,A=K.retina.moveSpeed,R=K.retina.moveDrift,D=eK(Q.size.value)*Y,F=U.size?K.getRadius()/D:DI,P=V.factor||SI,G=A*F*z*P/FI,T=K.retina.maxSpeed??H.retina.maxSpeed;if(U.spin.enable)o4(K,G,M);else s4(K,U,G,T,R,M,V);d4(K)}}async function r4(K,V=!0){K.checkVersion("3.9.1"),await K.addMover("base",()=>{return Promise.resolve(new xY)},V)}var PI=Math.PI*2;var i4={x:0,y:0};function t4(K){let{context:V,particle:Q,radius:U}=K;if(!Q.circleRange)Q.circleRange={min:0,max:PI};let H=Q.circleRange;V.arc(i4.x,i4.y,U,H.min,H.max,!1)}var CI=12,II=360,a4=0;class _Y{constructor(){this.validTypes=["circle"]}draw(K){t4(K)}getSidesCount(){return CI}particleInit(K,V){let Q=V.shapeData,U=Q?.angle??{max:II,min:a4};V.circleRange=!BQ(U)?{min:a4,max:kV(U)}:{min:kV(U.min),max:kV(U.max)}}}async function e4(K,V=!0){K.checkVersion("3.9.1"),await K.addShape(new _Y,V)}class NY{constructor(K,V){this._container=K,this._engine=V}init(K){let V=vQ(this._engine,K.options.color,K.id,K.options.reduceDuplicates);if(V)K.color=QL(V,K.options.color.animation,this._container.retina.reduceFactor)}isEnabled(K){let{h:V,s:Q,l:U}=K.options.color.animation,{color:H}=K;return!K.destroyed&&!K.spawning&&(H?.h.value!==void 0&&V.enable||H?.s.value!==void 0&&Q.enable||H?.l.value!==void 0&&U.enable)}update(K,V){UL(K.color,V)}}async function KX(K,V=!0){K.checkVersion("3.9.1"),await K.addParticleUpdater("color",(Q)=>{return Promise.resolve(new NY(Q,K))},V)}var jU;(function(K){K[K.r=1]="r",K[K.g=2]="g",K[K.b=3]="b",K[K.a=4]="a"})(jU||(jU={}));var GI=/^#?([a-f\d])([a-f\d])([a-f\d])([a-f\d])?$/i,TI=/^#?([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})([a-f\d]{2})?$/i,qL=16,EI=1,BI=255;class gY{constructor(){this.key="hex",this.stringPrefix="#"}handleColor(K){return this._parseString(K.value)}handleRangeColor(K){return this._parseString(K.value)}parseString(K){return this._parseString(K)}_parseString(K){if(typeof K!=="string")return;if(!K?.startsWith(this.stringPrefix))return;let V=K.replace(GI,(U,H,Y,z,M)=>{return H+H+Y+Y+z+z+(M!==void 0?M+M:"")}),Q=TI.exec(V);return Q?{a:Q[jU.a]!==void 0?parseInt(Q[jU.a],qL)/BI:EI,b:parseInt(Q[jU.b],qL),g:parseInt(Q[jU.g],qL),r:parseInt(Q[jU.r],qL)}:void 0}}async function VX(K,V=!0){K.checkVersion("3.9.1"),await K.addColorManager(new gY,V)}var $H;(function(K){K[K.h=1]="h",K[K.s=2]="s",K[K.l=3]="l",K[K.a=5]="a"})($H||($H={}));class yY{constructor(){this.key="hsl",this.stringPrefix="hsl"}handleColor(K){let V=K.value,Q=V.hsl??K.value;if(Q.h!==void 0&&Q.s!==void 0&&Q.l!==void 0)return BU(Q)}handleRangeColor(K){let V=K.value,Q=V.hsl??K.value;if(Q.h!==void 0&&Q.l!==void 0)return BU({h:a0(Q.h),l:a0(Q.l),s:a0(Q.s)})}parseString(K){if(!K.startsWith("hsl"))return;let V=/hsla?\(\s*(\d+)\s*[\s,]\s*(\d+)%\s*[\s,]\s*(\d+)%\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i,Q=V.exec(K),U=4,H=1,Y=10;return Q?k4({a:Q.length>U?nz(Q[$H.a]):H,h:parseInt(Q[$H.h],Y),l:parseInt(Q[$H.l],Y),s:parseInt(Q[$H.s],Y)}):void 0}}async function QX(K,V=!0){K.checkVersion("3.9.1"),await K.addColorManager(new yY,V)}class hY{constructor(K){this.container=K}init(K){let V=K.options.opacity;K.opacity=az(V,1);let U=V.animation;if(U.enable){if(K.opacity.velocity=a0(U.speed)/DV*this.container.retina.reduceFactor,!U.sync)K.opacity.velocity*=W1()}}isEnabled(K){return!K.destroyed&&!K.spawning&&!!K.opacity&&K.opacity.enable&&((K.opacity.maxLoops??0)<=0||(K.opacity.maxLoops??0)>0&&(K.opacity.loops??0)<(K.opacity.maxLoops??0))}reset(K){if(K.opacity)K.opacity.time=0,K.opacity.loops=0}update(K,V){if(!this.isEnabled(K)||!K.opacity)return;WH(K,K.opacity,!0,K.options.opacity.animation.destroy,V)}}async function UX(K,V=!0){K.checkVersion("3.9.1"),await K.addParticleUpdater("opacity",(Q)=>{return Promise.resolve(new hY(Q))},V)}var OL=0,FH=0;function HX(K){if(K.outMode!==_1.bounce&&K.outMode!==_1.split||K.direction!==M1.left&&K.direction!==M1.right)return;if(K.bounds.rightK.canvasSize.width&&K.direction===M1.right)K.particle.position.x=K.canvasSize.width-K.size-K.offset.x;let V=K.particle.velocity.x,Q=!1;if(K.direction===M1.right&&K.bounds.right>=K.canvasSize.width&&V>OL||K.direction===M1.left&&K.bounds.left<=FH&&V=K.canvasSize.width&&K.direction===M1.right)K.particle.position.x=K.canvasSize.width-U;else if(K.bounds.left<=FH&&K.direction===M1.left)K.particle.position.x=U;if(K.outMode===_1.split)K.particle.destroy()}function zX(K){if(K.outMode!==_1.bounce&&K.outMode!==_1.split||K.direction!==M1.bottom&&K.direction!==M1.top)return;if(K.bounds.bottomK.canvasSize.height&&K.direction===M1.bottom)K.particle.position.y=K.canvasSize.height-K.size-K.offset.y;let V=K.particle.velocity.y,Q=!1;if(K.direction===M1.bottom&&K.bounds.bottom>=K.canvasSize.height&&V>OL||K.direction===M1.top&&K.bounds.top<=FH&&V=K.canvasSize.height&&K.direction===M1.bottom)K.particle.position.y=K.canvasSize.height-U;else if(K.bounds.top<=FH&&K.direction===M1.top)K.particle.position.y=U;if(K.outMode===_1.split)K.particle.destroy()}class pY{constructor(K){this.container=K,this.modes=[_1.bounce,_1.split]}update(K,V,Q,U){if(!this.modes.includes(U))return;let H=this.container,Y=!1;for(let F of H.plugins.values()){if(F.particleBounce!==void 0)Y=F.particleBounce(K,Q,V);if(Y)break}if(Y)return;let z=K.getPosition(),M=K.offset,A=K.getRadius(),R=iQ(z,A),D=H.canvas.size;HX({particle:K,outMode:U,direction:V,bounds:R,canvasSize:D,offset:M,size:A}),zX({particle:K,outMode:U,direction:V,bounds:R,canvasSize:D,offset:M,size:A})}}var ML=0;class cY{constructor(K){this.container=K,this.modes=[_1.destroy]}update(K,V,Q,U){if(!this.modes.includes(U))return;let H=this.container;switch(K.outType){case ZV.normal:case ZV.outside:if(qH(K.position,H.canvas.size,r1.origin,K.getRadius(),V))return;break;case ZV.inside:{let{dx:Y,dy:z}=YK(K.position,K.moveCenter),{x:M,y:A}=K.velocity;if(MK.moveCenter.radius||AK.moveCenter.radius||M>=ML&&Y<-K.moveCenter.radius||A>=ML&&z<-K.moveCenter.radius)return;break}}H.particles.remove(K,K.group,!0)}}var WL=0;class uY{constructor(K){this.container=K,this.modes=[_1.none]}update(K,V,Q,U){if(!this.modes.includes(U))return;if((K.options.move.distance.horizontal&&(V===M1.left||V===M1.right))??(K.options.move.distance.vertical&&(V===M1.top||V===M1.bottom)))return;let H=K.options.move.gravity,Y=this.container,z=Y.canvas.size,M=K.getRadius();if(!H.enable){if(K.velocity.y>WL&&K.position.y<=z.height+M||K.velocity.y=-M||K.velocity.x>WL&&K.position.x<=z.width+M||K.velocity.x=-M)return;if(!qH(K.position,Y.canvas.size,r1.origin,M,V))Y.particles.remove(K)}else{let A=K.position;if(!H.inverse&&A.y>z.height+M&&V===M1.bottom||H.inverse&&A.y<-M&&V===M1.top)Y.particles.remove(K)}}}var XL=0,AL=0;class bY{constructor(K){this.container=K,this.modes=[_1.out]}update(K,V,Q,U){if(!this.modes.includes(U))return;let H=this.container;switch(K.outType){case ZV.inside:{let{x:Y,y:z}=K.velocity,M=r1.origin;M.length=K.moveCenter.radius,M.angle=K.velocity.angle+Math.PI,M.addTo(r1.create(K.moveCenter));let{dx:A,dy:R}=YK(K.position,M);if(Y<=XL&&A>=AL||z<=XL&&R>=AL||Y>=XL&&A<=AL||z>=XL&&R<=AL)return;K.position.x=Math.floor(gK({min:0,max:H.canvas.size.width})),K.position.y=Math.floor(gK({min:0,max:H.canvas.size.height}));let{dx:D,dy:F}=YK(K.position,K.moveCenter);K.direction=Math.atan2(-F,-D),K.velocity.angle=K.direction;break}default:{if(qH(K.position,H.canvas.size,r1.origin,K.getRadius(),V))return;switch(K.outType){case ZV.outside:{K.position.x=Math.floor(gK({min:-K.moveCenter.radius,max:K.moveCenter.radius}))+K.moveCenter.x,K.position.y=Math.floor(gK({min:-K.moveCenter.radius,max:K.moveCenter.radius}))+K.moveCenter.y;let{dx:Y,dy:z}=YK(K.position,K.moveCenter);if(K.moveCenter.radius)K.direction=Math.atan2(z,Y),K.velocity.angle=K.direction;break}case ZV.normal:{let Y=K.options.move.warp,z=H.canvas.size,M={bottom:z.height+K.getRadius()+K.offset.y,left:-K.getRadius()-K.offset.x,right:z.width+K.getRadius()+K.offset.x,top:-K.getRadius()-K.offset.y},A=K.getRadius(),R=iQ(K.position,A);if(V===M1.right&&R.left>z.width+K.offset.x){if(K.position.x=M.left,K.initialPosition.x=K.position.x,!Y)K.position.y=W1()*z.height,K.initialPosition.y=K.position.y}else if(V===M1.left&&R.right<-K.offset.x){if(K.position.x=M.right,K.initialPosition.x=K.position.x,!Y)K.position.y=W1()*z.height,K.initialPosition.y=K.position.y}if(V===M1.bottom&&R.top>z.height+K.offset.y){if(!Y)K.position.x=W1()*z.width,K.initialPosition.x=K.position.x;K.position.y=M.top,K.initialPosition.y=K.position.y}else if(V===M1.top&&R.bottom<-K.offset.y){if(!Y)K.position.x=W1()*z.width,K.initialPosition.x=K.position.x;K.position.y=M.bottom,K.initialPosition.y=K.position.y}break}}break}}}}var JI=(K,V)=>{return K.default===V||K.bottom===V||K.left===V||K.right===V||K.top===V};class lY{constructor(K){this._addUpdaterIfMissing=(V,Q,U)=>{let H=V.options.move.outModes;if(!this.updaters.has(Q)&&JI(H,Q))this.updaters.set(Q,U(this.container))},this._updateOutMode=(V,Q,U,H)=>{for(let Y of this.updaters.values())Y.update(V,H,Q,U)},this.container=K,this.updaters=new Map}init(K){this._addUpdaterIfMissing(K,_1.bounce,(V)=>new pY(V)),this._addUpdaterIfMissing(K,_1.out,(V)=>new bY(V)),this._addUpdaterIfMissing(K,_1.destroy,(V)=>new cY(V)),this._addUpdaterIfMissing(K,_1.none,(V)=>new uY(V))}isEnabled(K){return!K.destroyed&&!K.spawning}update(K,V){let Q=K.options.move.outModes;this._updateOutMode(K,V,Q.bottom??Q.default,M1.bottom),this._updateOutMode(K,V,Q.left??Q.default,M1.left),this._updateOutMode(K,V,Q.right??Q.default,M1.right),this._updateOutMode(K,V,Q.top??Q.default,M1.top)}}async function LX(K,V=!0){K.checkVersion("3.9.1"),await K.addParticleUpdater("outModes",(Q)=>{return Promise.resolve(new lY(Q))},V)}var DH;(function(K){K[K.r=1]="r",K[K.g=2]="g",K[K.b=3]="b",K[K.a=5]="a"})(DH||(DH={}));class dY{constructor(){this.key="rgb",this.stringPrefix="rgb"}handleColor(K){let V=K.value,Q=V.rgb??K.value;if(Q.r!==void 0)return Q}handleRangeColor(K){let V=K.value,Q=V.rgb??K.value;if(Q.r!==void 0)return{r:a0(Q.r),g:a0(Q.g),b:a0(Q.b)}}parseString(K){if(!K.startsWith(this.stringPrefix))return;let V=/rgba?\(\s*(\d{1,3})\s*[\s,]\s*(\d{1,3})\s*[\s,]\s*(\d{1,3})\s*([\s,]\s*(0|1|0?\.\d+|(\d{1,3})%)\s*)?\)/i,Q=V.exec(K),U=10,H=4,Y=1;return Q?{a:Q.length>H?nz(Q[DH.a]):Y,b:parseInt(Q[DH.b],U),g:parseInt(Q[DH.g],U),r:parseInt(Q[DH.r],U)}:void 0}}async function ZX(K,V=!0){K.checkVersion("3.9.1"),await K.addColorManager(new dY,V)}var xU=0;class sY{init(K){let V=K.container,Q=K.options.size,U=Q.animation;if(U.enable){if(K.size.velocity=(K.retina.sizeAnimationSpeed??V.retina.sizeAnimationSpeed)/DV*V.retina.reduceFactor,!U.sync)K.size.velocity*=W1()}}isEnabled(K){return!K.destroyed&&!K.spawning&&K.size.enable&&((K.size.maxLoops??xU)<=xU||(K.size.maxLoops??xU)>xU&&(K.size.loops??xU)<(K.size.maxLoops??xU))}reset(K){K.size.loops=xU}update(K,V){if(!this.isEnabled(K))return;WH(K,K.size,!0,K.options.size.animation.destroy,V)}}async function YX(K,V=!0){K.checkVersion("3.9.1"),await K.addParticleUpdater("size",()=>{return Promise.resolve(new sY)},V)}async function qX(K,V=!0){K.checkVersion("3.9.1"),await VX(K,!1),await QX(K,!1),await ZX(K,!1),await r4(K,!1),await e4(K,!1),await KX(K,!1),await UX(K,!1),await LX(K,!1),await YX(K,!1),await K.refresh(V)}async function OX(K,V=!0){K.checkVersion("3.9.1"),await K.addEasing(MQ.easeInQuad,(Q)=>Q**2,!1),await K.addEasing(MQ.easeOutQuad,(Q)=>1-(1-Q)**2,!1),await K.addEasing(MQ.easeInOutQuad,(Q)=>Q<0.5?2*Q**2:1-(-2*Q+2)**2/2,!1),await K.refresh(V)}function MX(K,V){let{context:Q,opacity:U}=K,Y=Q.globalAlpha;if(!V)return;let z=V.width,M=z*0.5;Q.globalAlpha=U,Q.drawImage(V,-M,-M,z,z),Q.globalAlpha=Y}var oY='"Twemoji Mozilla", Apple Color Emoji, "Segoe UI Emoji", "Noto Color Emoji", "EmojiOne Color"',WX=0;class mY{constructor(){this.validTypes=["emoji"],this._emojiShapeDict=new Map}destroy(){for(let[K,V]of this._emojiShapeDict){if(V instanceof ImageBitmap)V?.close();this._emojiShapeDict.delete(K)}}draw(K){let V=K.particle.emojiDataKey;if(!V)return;let Q=this._emojiShapeDict.get(V);if(!Q)return;MX(K,Q)}async init(K){let V=K.actualOptions,{validTypes:Q}=this;if(!Q.find((Y)=>f1(Y,V.particles.shape.type)))return;let U=[JZ(oY)],H=Q.map((Y)=>V.particles.shape.options[Y]).find((Y)=>!!Y);if(H)XK(H,(Y)=>{if(Y.font)U.push(JZ(Y.font))});await Promise.all(U)}particleDestroy(K){K.emojiDataKey=void 0}particleInit(K,V){let U=V.shapeData;if(!U?.value)return;let H=yK(U.value,V.randomIndexData);if(!H)return;let Y=typeof H==="string"?{font:U.font??oY,padding:U.padding??WX,value:H}:{font:oY,padding:WX,...U,...H},z=Y.font,M=Y.value,A=`${M}_${z}`;if(this._emojiShapeDict.has(A)){V.emojiDataKey=A;return}let R=Y.padding*2,D=eK(V.size.value),F=D+R,P=F*2,G;if(typeof OffscreenCanvas<"u"){let T=new OffscreenCanvas(P,P),v=T.getContext("2d");if(!v)return;v.font=`400 ${D*2}px ${z}`,v.textBaseline="middle",v.textAlign="center",v.fillText(M,F,F),G=T.transferToImageBitmap()}else{let T=document.createElement("canvas");T.width=P,T.height=P;let v=T.getContext("2d");if(!v)return;v.font=`400 ${D*2}px ${z}`,v.textBaseline="middle",v.textAlign="center",v.fillText(M,F,F),G=T}this._emojiShapeDict.set(A,G),V.emojiDataKey=A}}async function XX(K,V=!0){K.checkVersion("3.9.1"),await K.addShape(new mY,V)}var vI=1,kI=1,AX=0;function RX(K,V,Q,U,H,Y){let z=V.actualOptions.interactivity.modes.attract;if(!z)return;let M=V.particles.quadTree.query(H,Y);for(let A of M){let{dx:R,dy:D,distance:F}=YK(A.position,Q),P=z.speed*z.factor,G=CK(K.getEasing(z.easing)(kI-F/U)*P,vI,z.maxSpeed),T=r1.create(!F?P:R/F*G,!F?P:D/F*G);A.position.subFrom(T)}}function $X(K,V,Q){if(!V.attract)V.attract={particles:[]};let{attract:U}=V;if(!U.finish){if(!U.count)U.count=0;if(U.count++,U.count===V.particles.count)U.finish=!0}if(U.clicking){let H=V.interactivity.mouse.clickPosition,Y=V.retina.attractModeDistance;if(!Y||YQ(z))}else if(U.clicking===!1)U.particles=[]}function FX(K,V,Q){let U=V.interactivity.mouse.position,H=V.retina.attractModeDistance;if(!H||HQ(Y))}class nY{constructor(){this.distance=200,this.duration=0.4,this.easing=MQ.easeOutQuad,this.factor=1,this.maxSpeed=50,this.speed=1}load(K){if($0(K))return;if(K.distance!==void 0)this.distance=K.distance;if(K.duration!==void 0)this.duration=K.duration;if(K.easing!==void 0)this.easing=K.easing;if(K.factor!==void 0)this.factor=K.factor;if(K.maxSpeed!==void 0)this.maxSpeed=K.maxSpeed;if(K.speed!==void 0)this.speed=K.speed}}var T8="attract";class rY extends IK{constructor(K,V){super(V);if(this._engine=K,!V.attract)V.attract={particles:[]};this.handleClickMode=(Q)=>{let U=this.container.actualOptions,H=U.interactivity.modes.attract;if(!H||Q!==T8)return;if(!V.attract)V.attract={particles:[]};V.attract.clicking=!0,V.attract.count=0;for(let Y of V.attract.particles){if(!this.isEnabled(Y))continue;Y.velocity.setTo(Y.initialVelocity)}V.attract.particles=[],V.attract.finish=!1,setTimeout(()=>{if(V.destroyed)return;if(!V.attract)V.attract={particles:[]};V.attract.clicking=!1},H.duration*a1)}}clear(){}init(){let K=this.container,V=K.actualOptions.interactivity.modes.attract;if(!V)return;K.retina.attractModeDistance=V.distance*K.retina.pixelRatio}interact(){let K=this.container,V=K.actualOptions,Q=K.interactivity.status===FV,U=V.interactivity.events,{enable:H,mode:Y}=U.onHover,{enable:z,mode:M}=U.onClick;if(Q&&H&&f1(T8,Y))FX(this._engine,this.container,(A)=>this.isEnabled(A));else if(z&&f1(T8,M))$X(this._engine,this.container,(A)=>this.isEnabled(A))}isEnabled(K){let V=this.container,Q=V.actualOptions,U=V.interactivity.mouse,H=(K?.interactivity??Q.interactivity).events;if((!U.position||!H.onHover.enable)&&(!U.clickPosition||!H.onClick.enable))return!1;let Y=H.onHover.mode,z=H.onClick.mode;return f1(T8,Y)||f1(T8,z)}loadModeOptions(K,...V){if(!K.attract)K.attract=new nY;for(let Q of V)K.attract.load(Q?.attract)}reset(){}}async function DX(K,V=!0){K.checkVersion("3.9.1"),await K.addInteractor("externalAttract",(Q)=>{return Promise.resolve(new rY(K,Q))},V)}var fI=2,RL=0.5,wI=Math.PI*RL,SX=2,PX=10,jI=0;function CX(K,V,Q,U,H){let Y=K.particles.quadTree.query(U,H);for(let z of Y)if(U instanceof AK)tz($8(z),{position:V,radius:Q,mass:Q**fI*wI,velocity:r1.origin,factor:r1.origin});else if(U instanceof lK)T4(z,iQ(V,Q))}function xI(K,V,Q,U){let H=document.querySelectorAll(V);if(!H.length)return;H.forEach((Y)=>{let z=Y,M=K.retina.pixelRatio,A={x:(z.offsetLeft+z.offsetWidth*RL)*M,y:(z.offsetTop+z.offsetHeight*RL)*M},R=z.offsetWidth*RL*M,D=PX*M,F=Q.type===qQ.circle?new AK(A.x,A.y,R+D):new lK(z.offsetLeft*M-D,z.offsetTop*M-D,z.offsetWidth*M+D*SX,z.offsetHeight*M+D*SX);U(A,R,F)})}function IX(K,V,Q,U){MH(Q,V,(H,Y)=>xI(K,H,Y,(z,M,A)=>CX(K,z,M,A,U)))}function GX(K,V){let Q=K.retina.pixelRatio,U=PX*Q,H=K.interactivity.mouse.position,Y=K.retina.bounceModeDistance;if(!Y||Ythis.isEnabled(M));else IX(this.container,z,$L,(M)=>this.isEnabled(M))}isEnabled(K){let V=this.container,Q=V.actualOptions,U=V.interactivity.mouse,H=(K?.interactivity??Q.interactivity).events,Y=H.onDiv;return!!U.position&&H.onHover.enable&&f1($L,H.onHover.mode)||OH($L,Y)}loadModeOptions(K,...V){if(!K.bounce)K.bounce=new iY;for(let Q of V)K.bounce.load(Q?.bounce)}reset(){}}async function TX(K,V=!0){K.checkVersion("3.9.1"),await K.addInteractor("externalBounce",(Q)=>{return Promise.resolve(new tY(Q))},V)}class E8{constructor(){this.distance=200,this.duration=0.4,this.mix=!1}load(K){if($0(K))return;if(K.distance!==void 0)this.distance=K.distance;if(K.duration!==void 0)this.duration=K.duration;if(K.mix!==void 0)this.mix=K.mix;if(K.opacity!==void 0)this.opacity=K.opacity;if(K.color!==void 0){let V=aK(this.color)?void 0:this.color;this.color=XK(K.color,(Q)=>{return e1.create(V,Q)})}if(K.size!==void 0)this.size=K.size}}class aY extends E8{constructor(){super();this.selectors=[]}load(K){if(super.load(K),$0(K))return;if(K.selectors!==void 0)this.selectors=K.selectors}}class eY extends E8{load(K){if(super.load(K),$0(K))return;this.divs=XK(K.divs,(V)=>{let Q=new aY;return Q.load(V),Q})}}var rV;(function(K){K.color="color",K.opacity="opacity",K.size="size"})(rV||(rV={}));function Kq(K,V,Q,U){if(V>=Q){let H=K+(V-Q)*U;return CK(H,K,V)}else if(V{let Q=this.container,U=Q.actualOptions,H=Q.interactivity.mouse.clickPosition,Y=U.interactivity.modes.bubble;if(!Y||!H)return;if(!Q.bubble)Q.bubble={};let z=Q.retina.bubbleModeDistance;if(!z||zthis.isEnabled(R)),{bubble:A}=Q;for(let R of M){if(!A.clicking)continue;R.bubble.inRange=!A.durationEnd;let D=R.getPosition(),F=MK(D,H),P=(new Date().getTime()-(Q.interactivity.mouse.clickTime??_I))/a1;if(P>Y.duration)A.durationEnd=!0;if(P>Y.duration*NI)A.clicking=!1,A.durationEnd=!1;let G={bubbleObj:{optValue:Q.retina.bubbleModeSize,value:R.bubble.radius},particlesObj:{optValue:eK(R.options.size.value)*Q.retina.pixelRatio,value:R.size.value},type:rV.size};this._process(R,F,P,G);let T={bubbleObj:{optValue:Y.opacity,value:R.bubble.opacity},particlesObj:{optValue:eK(R.options.opacity.value),value:R.opacity?.value??EX},type:rV.opacity};if(this._process(R,F,P,T),!A.durationEnd&&F<=z)this._hoverBubbleColor(R,F);else delete R.bubble.color}},this._hoverBubble=()=>{let Q=this.container,U=Q.interactivity.mouse.position,H=Q.retina.bubbleModeDistance;if(!H||Hthis.isEnabled(z));for(let z of Y){z.bubble.inRange=!0;let M=z.getPosition(),A=MK(M,U),R=BX-A/H;if(A<=H){if(R>=yI&&Q.interactivity.status===FV)this._hoverBubbleSize(z,R),this._hoverBubbleOpacity(z,R),this._hoverBubbleColor(z,R)}else this.reset(z);if(Q.interactivity.status===q8)this.reset(z)}},this._hoverBubbleColor=(Q,U,H)=>{let Y=this.container.actualOptions,z=H??Y.interactivity.modes.bubble;if(!z)return;if(!Q.bubble.finalColor){let M=z.color;if(!M)return;let A=yK(M);Q.bubble.finalColor=vQ(this._engine,A)}if(!Q.bubble.finalColor)return;if(z.mix){Q.bubble.color=void 0;let M=Q.getFillColor();Q.bubble.color=M?fZ(F8(M,Q.bubble.finalColor,BX-U,U)):Q.bubble.finalColor}else Q.bubble.color=Q.bubble.finalColor},this._hoverBubbleOpacity=(Q,U,H)=>{let Y=this.container,z=Y.actualOptions,M=H?.opacity??z.interactivity.modes.bubble?.opacity;if(!M)return;let A=Q.options.opacity.value,R=Q.opacity?.value??EX,D=Kq(R,M,eK(A),U);if(D!==void 0)Q.bubble.opacity=D},this._hoverBubbleSize=(Q,U,H)=>{let Y=this.container,z=H?.size?H.size*Y.retina.pixelRatio:Y.retina.bubbleModeSize;if(z===void 0)return;let M=eK(Q.options.size.value)*Y.retina.pixelRatio,A=Q.size.value,R=Kq(A,z,M,U);if(R!==void 0)Q.bubble.radius=R},this._process=(Q,U,H,Y)=>{let z=this.container,M=Y.bubbleObj.optValue,A=z.actualOptions,R=A.interactivity.modes.bubble;if(!R||M===void 0)return;let D=R.duration,F=z.retina.bubbleModeDistance,P=Y.particlesObj.optValue,G=Y.bubbleObj.value,T=Y.particlesObj.value??gI,v=Y.type;if(!F||F{let Y=this.container,z=document.querySelectorAll(U),M=Y.actualOptions.interactivity.modes.bubble;if(!M||!z.length)return;z.forEach((A)=>{let R=A,D=Y.retina.pixelRatio,F={x:(R.offsetLeft+R.offsetWidth*Qq)*D,y:(R.offsetTop+R.offsetHeight*Qq)*D},P=R.offsetWidth*Qq*D,G=H.type===qQ.circle?new AK(F.x,F.y,P):new lK(R.offsetLeft*D,R.offsetTop*D,R.offsetWidth*D,R.offsetHeight*D),T=Y.particles.quadTree.query(G,(v)=>this.isEnabled(v));for(let v of T){if(!G.contains(v.getPosition()))continue;v.bubble.inRange=!0;let J=M.divs,k=iz(J,R);if(!v.bubble.div||v.bubble.div!==R)this.clear(v,Q,!0),v.bubble.div=R;this._hoverBubbleSize(v,Uq,k),this._hoverBubbleOpacity(v,Uq,k),this._hoverBubbleColor(v,Uq,k)}})},this._engine=V,!K.bubble)K.bubble={};this.handleClickMode=(Q)=>{if(Q!==_U)return;if(!K.bubble)K.bubble={};K.bubble.clicking=!0}}clear(K,V,Q){if(K.bubble.inRange&&!Q)return;delete K.bubble.div,delete K.bubble.opacity,delete K.bubble.radius,delete K.bubble.color}init(){let K=this.container,V=K.actualOptions.interactivity.modes.bubble;if(!V)return;if(K.retina.bubbleModeDistance=V.distance*K.retina.pixelRatio,V.size!==void 0)K.retina.bubbleModeSize=V.size*K.retina.pixelRatio}interact(K){let V=this.container.actualOptions,Q=V.interactivity.events,U=Q.onHover,H=Q.onClick,Y=U.enable,z=U.mode,M=H.enable,A=H.mode,R=Q.onDiv;if(Y&&f1(_U,z))this._hoverBubble();else if(M&&f1(_U,A))this._clickBubble();else MH(_U,R,(D,F)=>this._singleSelectorHover(K,D,F))}isEnabled(K){let V=this.container,Q=V.actualOptions,U=V.interactivity.mouse,H=(K?.interactivity??Q.interactivity).events,{onClick:Y,onDiv:z,onHover:M}=H,A=OH(_U,z);if(!(A||M.enable&&!!U.position||Y.enable&&U.clickPosition))return!1;return f1(_U,M.mode)||f1(_U,Y.mode)||A}loadModeOptions(K,...V){if(!K.bubble)K.bubble=new eY;for(let Q of V)K.bubble.load(Q?.bubble)}reset(K){K.bubble.inRange=!1}}async function JX(K,V=!0){K.checkVersion("3.9.1"),await K.addInteractor("externalBubble",(Q)=>{return Promise.resolve(new Hq(Q,K))},V)}class zq{constructor(){this.opacity=0.5}load(K){if($0(K))return;if(K.opacity!==void 0)this.opacity=K.opacity}}class Lq{constructor(){this.distance=80,this.links=new zq,this.radius=60}load(K){if($0(K))return;if(K.distance!==void 0)this.distance=K.distance;if(this.links.load(K.links),K.radius!==void 0)this.radius=K.radius}}var vX=0,kX=1,hI=0;function pI(K,V,Q,U){let H=Math.floor(Q.getRadius()/V.getRadius()),Y=V.getFillColor(),z=Q.getFillColor();if(!Y||!z)return;let M=V.getPosition(),A=Q.getPosition(),R=F8(Y,z,V.getRadius(),Q.getRadius()),D=K.createLinearGradient(M.x,M.y,A.x,A.y);return D.addColorStop(vX,tQ(Y,U)),D.addColorStop(CK(H,vX,kX),zV(R,U)),D.addColorStop(kX,tQ(z,U)),D}function cI(K,V,Q,U,H){aQ(K,U,H),K.lineWidth=V,K.strokeStyle=Q,K.stroke()}function uI(K,V,Q,U){let H=K.actualOptions,Y=H.interactivity.modes.connect;if(!Y)return;return pI(V,Q,U,Y.links.opacity)}function fX(K,V,Q){K.canvas.draw((U)=>{let H=uI(K,U,V,Q);if(!H)return;let Y=V.getPosition(),z=Q.getPosition();cI(U,V.retina.linksWidth??hI,H,Y,z)})}var bI="connect",wX=0;class Zq extends IK{constructor(K){super(K)}clear(){}init(){let K=this.container,V=K.actualOptions.interactivity.modes.connect;if(!V)return;K.retina.connectModeDistance=V.distance*K.retina.pixelRatio,K.retina.connectModeRadius=V.radius*K.retina.pixelRatio}interact(){let K=this.container;if(K.actualOptions.interactivity.events.onHover.enable&&K.interactivity.status==="pointermove"){let Q=K.interactivity.mouse.position,{connectModeDistance:U,connectModeRadius:H}=K.retina;if(!U||Uthis.isEnabled(M));z.forEach((M,A)=>{let R=M.getPosition();for(let F of z.slice(A+1)){let P=F.getPosition(),G=Math.abs(U),T=Math.abs(R.x-P.x),v=Math.abs(R.y-P.y);if(T{return Promise.resolve(new Zq(Q))},V)}class Yq{constructor(){this.blink=!1,this.consent=!1,this.opacity=1}load(K){if($0(K))return;if(K.blink!==void 0)this.blink=K.blink;if(K.color!==void 0)this.color=e1.create(this.color,K.color);if(K.consent!==void 0)this.consent=K.consent;if(K.opacity!==void 0)this.opacity=K.opacity}}class qq{constructor(){this.distance=100,this.links=new Yq}load(K){if($0(K))return;if(K.distance!==void 0)this.distance=K.distance;this.links.load(K.links)}}var lI=0;function dI(K,V,Q,U,H,Y){aQ(K,Q,U),K.strokeStyle=zV(H,Y),K.lineWidth=V,K.stroke()}function xX(K,V,Q,U,H){K.canvas.draw((Y)=>{let z=V.getPosition();dI(Y,V.retina.linksWidth??lI,z,H,Q,U)})}var sI="grab",oI=0,mI=0;class Oq extends IK{constructor(K,V){super(K);this._engine=V}clear(){}init(){let K=this.container,V=K.actualOptions.interactivity.modes.grab;if(!V)return;K.retina.grabModeDistance=V.distance*K.retina.pixelRatio}interact(){let K=this.container,V=K.actualOptions,Q=V.interactivity;if(!Q.modes.grab||!Q.events.onHover.enable||K.interactivity.status!==FV)return;let U=K.interactivity.mouse.position;if(!U)return;let H=K.retina.grabModeDistance;if(!H||Hthis.isEnabled(z));for(let z of Y){let M=z.getPosition(),A=MK(M,U);if(A>H)continue;let R=Q.modes.grab.links,D=R.opacity,F=D-A*D/H;if(F<=mI)continue;let P=R.color??z.options.links?.color;if(!K.particles.grabLineColor&&P){let T=Q.modes.grab.links;K.particles.grabLineColor=VL(this._engine,P,T.blink,T.consent)}let G=D8(z,void 0,K.particles.grabLineColor);if(!G)continue;xX(K,z,G,F,U)}}isEnabled(K){let V=this.container,Q=V.interactivity.mouse,U=(K?.interactivity??V.actualOptions.interactivity).events;return U.onHover.enable&&!!Q.position&&f1(sI,U.onHover.mode)}loadModeOptions(K,...V){if(!K.grab)K.grab=new qq;for(let Q of V)K.grab.load(Q?.grab)}reset(){}}async function _X(K,V=!0){K.checkVersion("3.9.1"),await K.addInteractor("externalGrab",(Q)=>{return Promise.resolve(new Oq(Q,K))},V)}var nI="pause";class Mq extends IK{constructor(K){super(K);this.handleClickMode=(V)=>{if(V!==nI)return;let Q=this.container;if(Q.animationStatus)Q.pause();else Q.play()}}clear(){}init(){}interact(){}isEnabled(){return!0}reset(){}}async function NX(K,V=!0){K.checkVersion("3.9.1"),await K.addInteractor("externalPause",(Q)=>{return Promise.resolve(new Mq(Q))},V)}class Wq{constructor(){this.default=!0,this.groups=[],this.quantity=4}load(K){if($0(K))return;if(K.default!==void 0)this.default=K.default;if(K.groups!==void 0)this.groups=K.groups.map((Q)=>Q);if(!this.groups.length)this.default=!0;let V=K.quantity;if(V!==void 0)this.quantity=q1(V);this.particles=XK(K.particles,(Q)=>{return x1({},Q)})}}var rI="push",iI=0;class Xq extends IK{constructor(K){super(K);this.handleClickMode=(V)=>{if(V!==rI)return;let Q=this.container,U=Q.actualOptions,H=U.interactivity.modes.push;if(!H)return;let Y=a0(H.quantity);if(Y<=iI)return;let z=YH([void 0,...H.groups]),M=z!==void 0?Q.actualOptions.particles.groups[z]:void 0,A=yK(H.particles),R=x1(M,A);Q.particles.push(Y,Q.interactivity.mouse,R,z)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(K,...V){if(!K.push)K.push=new Wq;for(let Q of V)K.push.load(Q?.push)}reset(){}}async function gX(K,V=!0){K.checkVersion("3.9.1"),await K.addInteractor("externalPush",(Q)=>{return Promise.resolve(new Xq(Q))},V)}class Aq{constructor(){this.quantity=2}load(K){if($0(K))return;let V=K.quantity;if(V!==void 0)this.quantity=q1(V)}}var tI="remove";class Rq extends IK{constructor(K){super(K);this.handleClickMode=(V)=>{let Q=this.container,U=Q.actualOptions;if(!U.interactivity.modes.remove||V!==tI)return;let H=a0(U.interactivity.modes.remove.quantity);Q.particles.removeQuantity(H)}}clear(){}init(){}interact(){}isEnabled(){return!0}loadModeOptions(K,...V){if(!K.remove)K.remove=new Aq;for(let Q of V)K.remove.load(Q?.remove)}reset(){}}async function yX(K,V=!0){K.checkVersion("3.9.1"),await K.addInteractor("externalRemove",(Q)=>{return Promise.resolve(new Rq(Q))},V)}class B8{constructor(){this.distance=200,this.duration=0.4,this.factor=100,this.speed=1,this.maxSpeed=50,this.easing=MQ.easeOutQuad}load(K){if($0(K))return;if(K.distance!==void 0)this.distance=K.distance;if(K.duration!==void 0)this.duration=K.duration;if(K.easing!==void 0)this.easing=K.easing;if(K.factor!==void 0)this.factor=K.factor;if(K.speed!==void 0)this.speed=K.speed;if(K.maxSpeed!==void 0)this.maxSpeed=K.maxSpeed}}class $q extends B8{constructor(){super();this.selectors=[]}load(K){if(super.load(K),$0(K))return;if(K.selectors!==void 0)this.selectors=K.selectors}}class Fq extends B8{load(K){if(super.load(K),$0(K))return;this.divs=XK(K.divs,(V)=>{let Q=new $q;return Q.load(V),Q})}}var NU="repulse",aI=0,eI=6,KG=3,VG=2,QG=0,UG=0,HG=1,Dq=0.5;class Sq extends IK{constructor(K,V){super(V);if(this._clickRepulse=()=>{let Q=this.container,U=Q.actualOptions.interactivity.modes.repulse;if(!U)return;let H=Q.repulse??{particles:[]};if(!H.finish){if(!H.count)H.count=0;if(H.count++,H.count===Q.particles.count)H.finish=!0}if(H.clicking){let Y=Q.retina.repulseModeDistance;if(!Y||Ythis.isEnabled(D));for(let D of R){let{dx:F,dy:P,distance:G}=YK(M,D.position),T=G**VG,v=U.speed,J=-z*v/T;if(T<=z){H.particles.push(D);let k=r1.create(F,P);k.length=J,D.velocity.setTo(k)}}}else if(H.clicking===!1){for(let Y of H.particles)Y.velocity.setTo(Y.initialVelocity);H.particles=[]}},this._hoverRepulse=()=>{let Q=this.container,U=Q.interactivity.mouse.position,H=Q.retina.repulseModeDistance;if(!H||H{let z=this.container,M=z.particles.quadTree.query(H,(v)=>this.isEnabled(v)),A=z.actualOptions.interactivity.modes.repulse;if(!A)return;let{easing:R,speed:D,factor:F,maxSpeed:P}=A,G=this._engine.getEasing(R),T=(Y?.speed??D)*F;for(let v of M){let{dx:J,dy:k,distance:f}=YK(v.position,Q),j=CK(G(HG-f/U)*T,UG,P),_=r1.create(!f?T:J/f*j,!f?T:k/f*j);v.position.addTo(_)}},this._singleSelectorRepulse=(Q,U)=>{let H=this.container,Y=H.actualOptions.interactivity.modes.repulse;if(!Y)return;let z=document.querySelectorAll(Q);if(!z.length)return;z.forEach((M)=>{let A=M,R=H.retina.pixelRatio,D={x:(A.offsetLeft+A.offsetWidth*Dq)*R,y:(A.offsetTop+A.offsetHeight*Dq)*R},F=A.offsetWidth*Dq*R,P=U.type===qQ.circle?new AK(D.x,D.y,F):new lK(A.offsetLeft*R,A.offsetTop*R,A.offsetWidth*R,A.offsetHeight*R),G=Y.divs,T=iz(G,A);this._processRepulse(D,F,P,T)})},this._engine=K,!V.repulse)V.repulse={particles:[]};this.handleClickMode=(Q)=>{let U=this.container.actualOptions,H=U.interactivity.modes.repulse;if(!H||Q!==NU)return;if(!V.repulse)V.repulse={particles:[]};let Y=V.repulse;Y.clicking=!0,Y.count=0;for(let z of V.repulse.particles){if(!this.isEnabled(z))continue;z.velocity.setTo(z.initialVelocity)}Y.particles=[],Y.finish=!1,setTimeout(()=>{if(V.destroyed)return;Y.clicking=!1},H.duration*a1)}}clear(){}init(){let K=this.container,V=K.actualOptions.interactivity.modes.repulse;if(!V)return;K.retina.repulseModeDistance=V.distance*K.retina.pixelRatio}interact(){let K=this.container,V=K.actualOptions,Q=K.interactivity.status===FV,U=V.interactivity.events,H=U.onHover,Y=H.enable,z=H.mode,M=U.onClick,A=M.enable,R=M.mode,D=U.onDiv;if(Q&&Y&&f1(NU,z))this._hoverRepulse();else if(A&&f1(NU,R))this._clickRepulse();else MH(NU,D,(F,P)=>this._singleSelectorRepulse(F,P))}isEnabled(K){let V=this.container,Q=V.actualOptions,U=V.interactivity.mouse,H=(K?.interactivity??Q.interactivity).events,Y=H.onDiv,z=H.onHover,M=H.onClick,A=OH(NU,Y);if(!(A||z.enable&&!!U.position||M.enable&&U.clickPosition))return!1;let R=z.mode,D=M.mode;return f1(NU,R)||f1(NU,D)||A}loadModeOptions(K,...V){if(!K.repulse)K.repulse=new Fq;for(let Q of V)K.repulse.load(Q?.repulse)}reset(){}}async function hX(K,V=!0){K.checkVersion("3.9.1"),await K.addInteractor("externalRepulse",(Q)=>{return Promise.resolve(new Sq(K,Q))},V)}class Pq{constructor(){this.factor=3,this.radius=200}load(K){if($0(K))return;if(K.factor!==void 0)this.factor=K.factor;if(K.radius!==void 0)this.radius=K.radius}}var zG="slow",LG=0;class Cq extends IK{constructor(K){super(K)}clear(K,V,Q){if(K.slow.inRange&&!Q)return;K.slow.factor=1}init(){let K=this.container,V=K.actualOptions.interactivity.modes.slow;if(!V)return;K.retina.slowModeRadius=V.radius*K.retina.pixelRatio}interact(){}isEnabled(K){let V=this.container,Q=V.interactivity.mouse,U=(K?.interactivity??V.actualOptions.interactivity).events;return U.onHover.enable&&!!Q.position&&f1(zG,U.onHover.mode)}loadModeOptions(K,...V){if(!K.slow)K.slow=new Pq;for(let Q of V)K.slow.load(Q?.slow)}reset(K){K.slow.inRange=!1;let V=this.container,Q=V.actualOptions,U=V.interactivity.mouse.position,H=V.retina.slowModeRadius,Y=Q.interactivity.modes.slow;if(!Y||!H||HH)return;D.inRange=!0,D.factor=A/R}}async function pX(K,V=!0){K.checkVersion("3.9.1"),await K.addInteractor("externalSlow",(Q)=>{return Promise.resolve(new Cq(Q))},V)}var ZG=0,YG=1,qG=/(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\((-?\d+%?[,\s]+){2,3}\s*[\d.]+%?\))|currentcolor/gi;function OG(K,V,Q){let{svgData:U}=K;if(!U)return"";let H=tQ(V,Q);if(U.includes("fill"))return U.replace(qG,()=>H);let Y=U.indexOf(">");return`${U.substring(ZG,Y)} fill="${H}"${U.substring(Y)}`}async function SH(K){return new Promise((V)=>{K.loading=!0;let Q=new Image;K.element=Q,Q.addEventListener("load",()=>{K.loading=!1,V()}),Q.addEventListener("error",()=>{K.element=void 0,K.error=!0,K.loading=!1,fV().error(`${EK} loading image: ${K.source}`),V()}),Q.src=K.source})}async function cX(K){if(K.type!=="svg"){await SH(K);return}K.loading=!0;let V=await fetch(K.source);if(!V.ok)fV().error(`${EK} Image not found`),K.error=!0;else K.svgData=await V.text();K.loading=!1}function uX(K,V,Q,U){let H=OG(K,Q,U.opacity?.value??YG),Y={color:Q,gif:V.gif,data:{...K,svgData:H},loaded:!1,ratio:V.width/V.height,replaceColor:V.replaceColor,source:V.src};return new Promise((z)=>{let M=new Blob([H],{type:"image/svg+xml"}),A=URL||window.URL||window.webkitURL||window,R=A.createObjectURL(M),D=new Image;D.addEventListener("load",()=>{Y.loaded=!0,Y.element=D,z(Y),A.revokeObjectURL(R)});let F=async()=>{A.revokeObjectURL(R);let P={...K,error:!1,loading:!0};await SH(P),Y.loaded=!0,Y.element=P.element,z(Y)};D.addEventListener("error",()=>void F()),D.src=R})}var FL=[0,4,2,1],Iq=[8,8,4,2];class Gq{constructor(K){this.pos=0,this.data=new Uint8ClampedArray(K)}getString(K){let V=this.data.slice(this.pos,this.pos+K);return this.pos+=V.length,V.reduce((Q,U)=>Q+String.fromCharCode(U),"")}nextByte(){return this.data[this.pos++]}nextTwoBytes(){return this.pos+=2,this.data[this.pos-2]+(this.data[this.pos-1]<<8)}readSubBlocks(){let K="",V=0,Q=0,U=0;do{V=this.data[this.pos++];for(let H=V;--H>=Q;K+=String.fromCharCode(this.data[this.pos++]));}while(V!==U);return K}readSubBlocksBin(){let K=this.data[this.pos],V=0,Q=0,U=1;for(let Y=0;K!==Q;Y+=K+U,K=this.data[this.pos+Y])V+=K;let H=new Uint8Array(V);K=this.data[this.pos++];for(let Y=0;K!==Q;K=this.data[this.pos++])for(let z=K;--z>=Q;H[Y++]=this.data[this.pos++]);return H}skipSubBlocks(){for(let K=1,V=0;this.data[this.pos]!==V;this.pos+=this.data[this.pos]+K);this.pos++}}var jV;(function(K){K[K.Replace=0]="Replace",K[K.Combine=1]="Combine",K[K.RestoreBackground=2]="RestoreBackground",K[K.RestorePrevious=3]="RestorePrevious",K[K.UndefinedA=4]="UndefinedA",K[K.UndefinedB=5]="UndefinedB",K[K.UndefinedC=6]="UndefinedC",K[K.UndefinedD=7]="UndefinedD"})(jV||(jV={}));var WQ;(function(K){K[K.Extension=33]="Extension",K[K.ApplicationExtension=255]="ApplicationExtension",K[K.GraphicsControlExtension=249]="GraphicsControlExtension",K[K.PlainTextExtension=1]="PlainTextExtension",K[K.CommentExtension=254]="CommentExtension",K[K.Image=44]="Image",K[K.EndOfFile=59]="EndOfFile"})(WQ||(WQ={}));var YV={x:0,y:0},MG=0,bX=0.5,WG=0,lX=0,Tq=0;function dX(K,V){let Q=[];for(let U=0;U>>5,H.disposalMethod=(Y&28)>>>2,H.userInputDelayFlag=(Y&2)===2;let z=(Y&1)===1;H.delayTime=K.nextTwoBytes()*10;let M=K.nextByte();if(z)U(M);K.pos++;break}case WQ.ApplicationExtension:{K.pos++;let H={identifier:K.getString(8),authenticationCode:K.getString(3),data:K.readSubBlocksBin()};V.applicationExtensions.push(H);break}case WQ.CommentExtension:{V.comments.push([Q(!1),K.readSubBlocks()]);break}case WQ.PlainTextExtension:{if(V.globalColorTable.length===0)throw EvalError("plain text extension without global color table");K.pos++,V.frames[Q(!1)].plainTextData={left:K.nextTwoBytes(),top:K.nextTwoBytes(),width:K.nextTwoBytes(),height:K.nextTwoBytes(),charSize:{width:K.nextTwoBytes(),height:K.nextTwoBytes()},foregroundColor:K.nextByte(),backgroundColor:K.nextByte(),text:K.readSubBlocks()};break}default:K.skipSubBlocks();break}}async function AG(K,V,Q,U,H,Y){let z=V.frames[U(!0)];z.left=K.nextTwoBytes(),z.top=K.nextTwoBytes(),z.width=K.nextTwoBytes(),z.height=K.nextTwoBytes();let M=K.nextByte(),A=(M&128)===128,R=(M&64)===64;z.sortFlag=(M&32)===32,z.reserved=(M&24)>>>3;let D=1<<(M&7)+1;if(A)z.localColorTable=dX(K,D);let F=(k)=>{let{r:f,g:j,b:_}=(A?z.localColorTable:V.globalColorTable)[k];if(k!==H(null))return{r:f,g:j,b:_,a:255};return{r:f,g:j,b:_,a:Q?~~((f+j+_)/3):0}},P=(()=>{try{return new ImageData(z.width,z.height,{colorSpace:"srgb"})}catch(k){if(k instanceof DOMException&&k.name==="IndexSizeError")return null;throw k}})();if(P==null)throw EvalError("GIF frame size is to large");let G=K.nextByte(),T=K.readSubBlocksBin(),v=1<{let j=k>>>3,_=k&7;return(T[j]+(T[j+1]<<8)+(T[j+2]<<16)&(1<>>_};if(R){for(let k=0,f=G+1,j=0,_=[[0]],p=0;p<4;p++){if(FL[p]=_.length)_.push(_[L0].concat(_[L0][0]));else if(L0!==v)_.push(_[L0].concat(_[k][0]));for(let s of _[k]){let{r:Z0,g:L,b:O,a:X}=F(s);P.data.set([Z0,L,O,X],FL[p]*z.width+Iq[p]*m+N%(z.width*4)),N+=4}if(_.length===1<=z.height)z0=!0}}}Y?.(K.pos/(K.data.length-1),U(!1)+1,P,{x:z.left,y:z.top},{width:V.width,height:V.height})}z.image=P,z.bitmap=await createImageBitmap(P)}else{let k=0,f=G+1,j=0,_=-4,p=!1,N=[[0]];while(!p){let m=k;if(k=J(j,f),j+=f,k===v){f=G+1,N.length=v+2;for(let z0=0;z0=N.length)N.push(N[m].concat(N[m][0]));else if(m!==v)N.push(N[m].concat(N[k][0]));for(let z0 of N[k]){let{r:L0,g:s,b:Z0,a:L}=F(z0);P.data.set([L0,s,Z0,L],_+=4)}if(N.length>=1<>>4,Y.sortFlag=(M&8)===8;let R=1<<(M&7)+1,D=z.nextByte();if(Y.pixelAspectRatio=z.nextByte(),Y.pixelAspectRatio!==0)Y.pixelAspectRatio=(Y.pixelAspectRatio+15)/64;if(A)Y.globalColorTable=dX(z,R);let F=(()=>{try{return new ImageData(Y.width,Y.height,{colorSpace:"srgb"})}catch(_){if(_ instanceof DOMException&&_.name==="IndexSizeError")return null;throw _}})();if(F==null)throw Error("GIF frame size is to large");let{r:P,g:G,b:T}=Y.globalColorTable[D];F.data.set(A?[P,G,T,255]:[0,0,0,0]);for(let _=4;_{if(_)J=!0;return v},j=(_)=>{if(_!=null)k=_;return k};try{do if(J)Y.frames.push({left:0,top:0,width:0,height:0,disposalMethod:jV.Replace,image:new ImageData(1,1,{colorSpace:"srgb"}),plainTextData:null,userInputDelayFlag:!1,delayTime:0,sortFlag:!1,localColorTable:[],reserved:0,GCreserved:0}),v++,k=-1,J=!1;while(!await RG(z,Y,Q,f,j,V));Y.frames.length--;for(let _ of Y.frames){if(_.userInputDelayFlag&&_.delayTime===0){Y.totalTime=1/0;break}Y.totalTime+=_.delayTime}return Y}catch(_){if(_ instanceof EvalError)throw Error(`error while parsing frame ${v} "${_.message}"`);throw _}}function sX(K){let{context:V,radius:Q,particle:U,delta:H}=K,Y=U.image;if(!Y?.gifData||!Y.gif)return;let z=new OffscreenCanvas(Y.gifData.width,Y.gifData.height),M=z.getContext("2d");if(!M)throw Error("could not create offscreen canvas context");if(M.imageSmoothingQuality="low",M.imageSmoothingEnabled=!1,M.clearRect(YV.x,YV.y,z.width,z.height),U.gifLoopCount===void 0)U.gifLoopCount=Y.gifLoopCount??Tq;let A=U.gifFrame??MG,R={x:-Y.gifData.width*bX,y:-Y.gifData.height*bX},D=Y.gifData.frames[A];if(U.gifTime===void 0)U.gifTime=WG;if(!D.bitmap)return;switch(V.scale(Q/Y.gifData.width,Q/Y.gifData.height),D.disposalMethod){case jV.UndefinedA:case jV.UndefinedB:case jV.UndefinedC:case jV.UndefinedD:case jV.Replace:M.drawImage(D.bitmap,D.left,D.top),V.drawImage(z,R.x,R.y),M.clearRect(YV.x,YV.y,z.width,z.height);break;case jV.Combine:M.drawImage(D.bitmap,D.left,D.top),V.drawImage(z,R.x,R.y);break;case jV.RestoreBackground:if(M.drawImage(D.bitmap,D.left,D.top),V.drawImage(z,R.x,R.y),M.clearRect(YV.x,YV.y,z.width,z.height),!Y.gifData.globalColorTable.length)M.putImageData(Y.gifData.frames[lX].image,R.x+D.left,R.y+D.top);else M.putImageData(Y.gifData.backgroundImage,R.x,R.y);break;case jV.RestorePrevious:{let F=M.getImageData(YV.x,YV.y,z.width,z.height);M.drawImage(D.bitmap,D.left,D.top),V.drawImage(z,R.x,R.y),M.clearRect(YV.x,YV.y,z.width,z.height),M.putImageData(F,YV.x,YV.y)}break}if(U.gifTime+=H.value,U.gifTime>D.delayTime){if(U.gifTime-=D.delayTime,++A>=Y.gifData.frames.length){if(--U.gifLoopCount<=Tq)return;A=lX,M.clearRect(YV.x,YV.y,z.width,z.height)}U.gifFrame=A}V.scale(Y.gifData.width/Q,Y.gifData.height/Q)}async function oX(K){if(K.type!=="gif"){await SH(K);return}K.loading=!0;try{if(K.gifData=await FG(K.source),K.gifLoopCount=$G(K.gifData)??Tq,!K.gifLoopCount)K.gifLoopCount=1/0}catch{K.error=!0}K.loading=!1}var DG=2,SG=1,PG=12,CG=1;class Eq{constructor(K){this.validTypes=["image","images"],this.loadImageShape=async(V)=>{if(!this._engine.loadImage)throw Error(`${EK} image shape not initialized`);await this._engine.loadImage({gif:V.gif,name:V.name,replaceColor:V.replaceColor??!1,src:V.src})},this._engine=K}addImage(K){if(!this._engine.images)this._engine.images=[];this._engine.images.push(K)}draw(K){let{context:V,radius:Q,particle:U,opacity:H}=K,Y=U.image,z=Y?.element;if(!Y)return;if(V.globalAlpha=H,Y.gif&&Y.gifData)sX(K);else if(z){let M=Y.ratio,A={x:-Q,y:-Q},R=Q*DG;V.drawImage(z,A.x,A.y,R,R/M)}V.globalAlpha=SG}getSidesCount(){return PG}async init(K){let V=K.actualOptions;if(!V.preload||!this._engine.loadImage)return;for(let Q of V.preload)await this._engine.loadImage(Q)}loadShape(K){if(K.shape!=="image"&&K.shape!=="images")return;if(!this._engine.images)this._engine.images=[];let V=K.shapeData;if(!V)return;if(!this._engine.images.find((U)=>U.name===V.name||U.source===V.src))this.loadImageShape(V).then(()=>{this.loadShape(K)})}particleInit(K,V){if(V.shape!=="image"&&V.shape!=="images")return;if(!this._engine.images)this._engine.images=[];let Q=this._engine.images,U=V.shapeData;if(!U)return;let H=V.getFillColor(),Y=Q.find((M)=>M.name===U.name||M.source===U.src);if(!Y)return;let z=U.replaceColor??Y.replaceColor;if(Y.loading){setTimeout(()=>{this.particleInit(K,V)});return}(async()=>{let M;if(Y.svgData&&H)M=await uX(Y,U,H,V);else M={color:H,data:Y,element:Y.element,gif:Y.gif,gifData:Y.gifData,gifLoopCount:Y.gifLoopCount,loaded:!0,ratio:U.width&&U.height?U.width/U.height:Y.ratio??CG,replaceColor:z,source:U.src};if(!M.ratio)M.ratio=1;let A=U.fill??V.shapeFill,R=U.close??V.shapeClose,D={image:M,fill:A,close:R};V.image=D.image,V.shapeFill=D.fill,V.shapeClose=D.close})()}}class Bq{constructor(){this.src="",this.gif=!1}load(K){if($0(K))return;if(K.gif!==void 0)this.gif=K.gif;if(K.height!==void 0)this.height=K.height;if(K.name!==void 0)this.name=K.name;if(K.replaceColor!==void 0)this.replaceColor=K.replaceColor;if(K.src!==void 0)this.src=K.src;if(K.width!==void 0)this.width=K.width}}class Jq{constructor(K){this.id="imagePreloader",this._engine=K}async getPlugin(){return await Promise.resolve(),{}}loadOptions(K,V){if(!V?.preload)return;if(!K.preload)K.preload=[];let Q=K.preload;for(let U of V.preload){let H=Q.find((Y)=>Y.name===U.name||Y.src===U.src);if(H)H.load(U);else{let Y=new Bq;Y.load(U),Q.push(Y)}}}needsPlugin(){return!0}}var IG=3;function GG(K){if(K.loadImage)return;K.loadImage=async(V)=>{if(!V.name&&!V.src)throw Error(`${EK} no image source provided`);if(!K.images)K.images=[];if(K.images.find((Q)=>Q.name===V.name||Q.source===V.src))return;try{let Q={gif:V.gif??!1,name:V.name??V.src,source:V.src,type:V.src.substring(V.src.length-IG),error:!1,loading:!0,replaceColor:V.replaceColor,ratio:V.width&&V.height?V.width/V.height:void 0};K.images.push(Q);let U;if(V.gif)U=oX;else U=V.replaceColor?cX:SH;await U(Q)}catch{throw Error(`${EK} ${V.name??V.src} not found`)}}}async function mX(K,V=!0){K.checkVersion("3.9.1"),GG(K);let Q=new Jq(K);await K.addPlugin(Q,V),await K.addShape(new Eq(K),V)}class vq extends LV{constructor(){super();this.sync=!1}load(K){if($0(K))return;if(super.load(K),K.sync!==void 0)this.sync=K.sync}}class kq extends LV{constructor(){super();this.sync=!1}load(K){if($0(K))return;if(super.load(K),K.sync!==void 0)this.sync=K.sync}}class fq{constructor(){this.count=0,this.delay=new vq,this.duration=new kq}load(K){if($0(K))return;if(K.count!==void 0)this.count=K.count;this.delay.load(K.delay),this.duration.load(K.duration)}}var PH=0,TG=-1,nX=0,rX=0;function iX(K,V,Q){if(!K.life)return;let U=K.life,H=!1;if(K.spawning)if(U.delayTime+=V.value,U.delayTime>=K.life.delay)H=!0,K.spawning=!1,U.delayTime=PH,U.time=PH;else return;if(U.duration===TG)return;if(K.spawning)return;if(H)U.time=PH;else U.time+=V.value;if(U.timenX)K.life.count--;if(K.life.count===nX){K.destroy();return}let Y=q1(rX,Q.width),z=q1(rX,Q.width);K.position.x=gK(Y),K.position.y=gK(z),K.spawning=!0,U.delayTime=PH,U.time=PH,K.reset();let M=K.options.life;if(M)U.delay=a0(M.delay.value)*a1,U.duration=a0(M.duration.value)*a1}var gU=0,tX=1,aX=-1;class wq{constructor(K){this.container=K}init(K){let V=this.container,Q=K.options,U=Q.life;if(!U)return;if(K.life={delay:V.retina.reduceFactor?a0(U.delay.value)*(U.delay.sync?tX:W1())/V.retina.reduceFactor*a1:gU,delayTime:gU,duration:V.retina.reduceFactor?a0(U.duration.value)*(U.duration.sync?tX:W1())/V.retina.reduceFactor*a1:gU,time:gU,count:U.count},K.life.duration<=gU)K.life.duration=aX;if(K.life.count<=gU)K.life.count=aX;if(K.life)K.spawning=K.life.delay>gU}isEnabled(K){return!K.destroyed}loadOptions(K,...V){if(!K.life)K.life=new fq;for(let Q of V)K.life.load(Q?.life)}update(K,V){if(!this.isEnabled(K)||!K.life)return;iX(K,V,this.container.canvas.size)}}async function eX(K,V=!0){K.checkVersion("3.9.1"),await K.addParticleUpdater("life",async(Q)=>{return Promise.resolve(new wq(Q))},V)}function K5(K){let{context:V,particle:Q,radius:U}=K,H=Q.shapeData;V.moveTo(-U,0),V.lineTo(U,0),V.lineCap=H?.cap??"butt"}var EG=1;class jq{constructor(){this.validTypes=["line"]}draw(K){K5(K)}getSidesCount(){return EG}}async function V5(K,V=!0){K.checkVersion("3.9.1"),await K.addShape(new jq,V)}var Q5=0.5;class xq{init(){}isEnabled(K){return!YQ()&&!K.destroyed&&K.container.actualOptions.interactivity.events.onHover.parallax.enable}move(K){let V=K.container,Q=V.actualOptions,U=Q.interactivity.events.onHover.parallax;if(YQ()||!U.enable)return;let H=U.force,Y=V.interactivity.mouse.position;if(!Y)return;let z=V.canvas.size,M={x:z.width*Q5,y:z.height*Q5},A=U.smooth,R=K.getRadius()/H,D={x:(Y.x-M.x)*R,y:(Y.y-M.y)*R},{offset:F}=K;F.x+=(D.x-F.x)/A,F.y+=(D.y-F.y)/A}}async function U5(K,V=!0){K.checkVersion("3.9.1"),await K.addMover("parallax",()=>{return Promise.resolve(new xq)},V)}var H5=1000,BG=1;class _q extends wU{constructor(K){super(K)}clear(){}init(){}interact(K){let V=this.container;if(K.attractDistance===void 0)K.attractDistance=a0(K.options.move.attract.distance)*V.retina.pixelRatio;let Q=K.attractDistance,U=K.getPosition(),H=V.particles.quadTree.queryCircle(U,Q);for(let Y of H){if(K===Y||!Y.options.move.attract.enable||Y.destroyed||Y.spawning)continue;let z=Y.getPosition(),{dx:M,dy:A}=YK(U,z),R=K.options.move.attract.rotate,D=M/(R.x*H5),F=A/(R.y*H5),P=Y.size.value/K.size.value,G=BG/P;K.velocity.x-=D*P,K.velocity.y-=F*P,Y.velocity.x+=D*G,Y.velocity.y+=F*G}}isEnabled(K){return K.options.move.attract.enable}reset(){}}async function z5(K,V=!0){K.checkVersion("3.9.1"),await K.addInteractor("particlesAttract",(Q)=>{return Promise.resolve(new _q(Q))},V)}var JG=0.5,vG=10,kG=0;function L5(K,V,Q,U,H,Y){let z=CK(K.options.collisions.absorb.speed*H.factor/vG,kG,U);if(K.size.value+=z*JG,Q.size.value-=z,U<=Y)Q.size.value=0,Q.destroy()}function Z5(K,V,Q,U){let H=K.getRadius(),Y=V.getRadius();if(H===void 0&&Y!==void 0)K.destroy();else if(H!==void 0&&Y===void 0)V.destroy();else if(H!==void 0&&Y!==void 0)if(H>=Y)L5(K,H,V,Y,Q,U);else L5(V,Y,K,H,Q,U)}var Y5=(K)=>{if(K.collisionMaxSpeed===void 0)K.collisionMaxSpeed=a0(K.options.collisions.maxSpeed);if(K.velocity.length>K.collisionMaxSpeed)K.velocity.length=K.collisionMaxSpeed};function DL(K,V){tz($8(K),$8(V)),Y5(K),Y5(V)}function q5(K,V){if(!K.unbreakable&&!V.unbreakable)DL(K,V);if(K.getRadius()===void 0&&V.getRadius()!==void 0)K.destroy();else if(K.getRadius()!==void 0&&V.getRadius()===void 0)V.destroy();else if(K.getRadius()!==void 0&&V.getRadius()!==void 0)(K.getRadius()>=V.getRadius()?V:K).destroy()}function O5(K,V,Q,U){switch(K.options.collisions.mode){case KU.absorb:{Z5(K,V,Q,U);break}case KU.bounce:{DL(K,V);break}case KU.destroy:{q5(K,V);break}}}var fG=2;class Nq extends wU{constructor(K){super(K)}clear(){}init(){}interact(K,V){if(K.destroyed||K.spawning)return;let Q=this.container,U=K.getPosition(),H=K.getRadius(),Y=Q.particles.quadTree.queryCircle(U,H*fG);for(let z of Y){if(K===z||!z.options.collisions.enable||K.options.collisions.mode!==z.options.collisions.mode||z.destroyed||z.spawning)continue;let M=z.getPosition(),A=z.getRadius();if(Math.abs(Math.round(U.z)-Math.round(M.z))>H+A)continue;let R=MK(U,M),D=H+A;if(R>D)continue;O5(K,z,V,Q.retina.pixelRatio)}}isEnabled(K){return K.options.collisions.enable}reset(){}}async function M5(K,V=!0){K.checkVersion("3.9.1"),await K.addInteractor("particlesCollisions",(Q)=>{return Promise.resolve(new Nq(Q))},V)}var gq=2;class yq extends AK{constructor(K,V,Q,U){super(K,V,Q);this.canvasSize=U,this.canvasSize={...U}}contains(K){let{width:V,height:Q}=this.canvasSize,{x:U,y:H}=K;return super.contains(K)||super.contains({x:U-V,y:H})||super.contains({x:U-V,y:H-Q})||super.contains({x:U,y:H-Q})}intersects(K){if(super.intersects(K))return!0;let V=K,Q=K,U={x:K.position.x-this.canvasSize.width,y:K.position.y-this.canvasSize.height};if(Q.radius!==void 0){let H=new AK(U.x,U.y,Q.radius*gq);return super.intersects(H)}else if(V.size!==void 0){let H=new lK(U.x,U.y,V.size.width*gq,V.size.height*gq);return super.intersects(H)}return!1}}class hq{constructor(){this.blur=5,this.color=new e1,this.color.value="#000",this.enable=!1}load(K){if($0(K))return;if(K.blur!==void 0)this.blur=K.blur;if(this.color=e1.create(this.color,K.color),K.enable!==void 0)this.enable=K.enable}}class pq{constructor(){this.enable=!1,this.frequency=1}load(K){if($0(K))return;if(K.color!==void 0)this.color=e1.create(this.color,K.color);if(K.enable!==void 0)this.enable=K.enable;if(K.frequency!==void 0)this.frequency=K.frequency;if(K.opacity!==void 0)this.opacity=K.opacity}}class cq{constructor(){this.blink=!1,this.color=new e1,this.color.value="#fff",this.consent=!1,this.distance=100,this.enable=!1,this.frequency=1,this.opacity=1,this.shadow=new hq,this.triangles=new pq,this.width=1,this.warp=!1}load(K){if($0(K))return;if(K.id!==void 0)this.id=K.id;if(K.blink!==void 0)this.blink=K.blink;if(this.color=e1.create(this.color,K.color),K.consent!==void 0)this.consent=K.consent;if(K.distance!==void 0)this.distance=K.distance;if(K.enable!==void 0)this.enable=K.enable;if(K.frequency!==void 0)this.frequency=K.frequency;if(K.opacity!==void 0)this.opacity=K.opacity;if(this.shadow.load(K.shadow),this.triangles.load(K.triangles),K.width!==void 0)this.width=K.width;if(K.warp!==void 0)this.warp=K.warp}}var W5=2,wG=1,SL={x:0,y:0},jG=0;function xG(K,V,Q,U,H){let{dx:Y,dy:z,distance:M}=YK(K,V);if(!H||M<=Q)return M;let A={x:Math.abs(Y),y:Math.abs(z)},R={x:Math.min(A.x,U.width-A.x),y:Math.min(A.y,U.height-A.y)};return Math.sqrt(R.x**W5+R.y**W5)}class uq extends wU{constructor(K,V){super(K);this._setColor=(Q)=>{if(!Q.options.links)return;let U=this._linkContainer,H=Q.options.links,Y=H.id===void 0?U.particles.linksColor:U.particles.linksColors.get(H.id);if(Y)return;let z=H.color;if(Y=VL(this._engine,z,H.blink,H.consent),H.id===void 0)U.particles.linksColor=Y;else U.particles.linksColors.set(H.id,Y)},this._linkContainer=K,this._engine=V}clear(){}init(){this._linkContainer.particles.linksColor=void 0,this._linkContainer.particles.linksColors=new Map}interact(K){if(!K.options.links)return;K.links=[];let V=K.getPosition(),Q=this.container,U=Q.canvas.size;if(V.xU.width||V.y>U.height)return;let H=K.options.links,Y=H.opacity,z=K.retina.linksDistance??jG,M=H.warp,A;if(M)A=new yq(V.x,V.y,z,U);else A=new AK(V.x,V.y,z);let R=Q.particles.quadTree.query(A);for(let D of R){let F=D.options.links;if(K===D||!F?.enable||H.id!==F.id||D.spawning||D.destroyed||!D.links||K.links.some((v)=>v.destination===D)||D.links.some((v)=>v.destination===K))continue;let P=D.getPosition();if(P.xU.width||P.y>U.height)continue;let G=xG(V,P,z,U,M&&F.warp);if(G>z)continue;let T=(wG-G/z)*Y;this._setColor(K),K.links.push({destination:D,opacity:T})}}isEnabled(K){return!!K.options.links?.enable}loadParticlesOptions(K,...V){if(!K.links)K.links=new cq;for(let Q of V)K.links.load(Q?.links)}reset(){}}async function X5(K,V=!0){await K.addInteractor("particlesLinks",async(Q)=>{return Promise.resolve(new uq(Q,K))},V)}function _G(K,V,Q,U){K.beginPath(),K.moveTo(V.x,V.y),K.lineTo(Q.x,Q.y),K.lineTo(U.x,U.y),K.closePath()}function A5(K){let V=!1,{begin:Q,end:U,engine:H,maxDistance:Y,context:z,canvasSize:M,width:A,backgroundMask:R,colorLine:D,opacity:F,links:P}=K;if(MK(Q,U)<=Y)aQ(z,Q,U),V=!0;else if(P.warp){let T,v,J={x:U.x-M.width,y:U.y},k=YK(Q,J);if(k.distance<=Y){let f=Q.y-k.dy/k.dx*Q.x;T={x:0,y:f},v={x:M.width,y:f}}else{let f={x:U.x,y:U.y-M.height},j=YK(Q,f);if(j.distance<=Y){let p=-(Q.y-j.dy/j.dx*Q.x)/(j.dy/j.dx);T={x:p,y:0},v={x:p,y:M.height}}else{let _={x:U.x-M.width,y:U.y-M.height},p=YK(Q,_);if(p.distance<=Y){let N=Q.y-p.dy/p.dx*Q.x;T={x:-N/(p.dy/p.dx),y:N},v={x:T.x+M.width,y:T.y+M.height}}}}if(T&&v)aQ(z,Q,T),aQ(z,U,v),V=!0}if(!V)return;if(z.lineWidth=A,R.enable)z.globalCompositeOperation=R.composite;z.strokeStyle=zV(D,F);let{shadow:G}=P;if(G.enable){let T=KV(H,G.color);if(T)z.shadowBlur=G.blur,z.shadowColor=zV(T)}z.stroke()}function R5(K){let{context:V,pos1:Q,pos2:U,pos3:H,backgroundMask:Y,colorTriangle:z,opacityTriangle:M}=K;if(_G(V,Q,U,H),Y.enable)V.globalCompositeOperation=Y.composite;V.fillStyle=zV(z,M),V.fill()}function NG(K){return K.sort((V,Q)=>V-Q),K.join("_")}function bq(K,V){let Q=NG(K.map((H)=>H.id)),U=V.get(Q);if(U===void 0)U=W1(),V.set(Q,U);return U}var $5=0,lq=0,F5=0,gG=0.5,yG=1;class dq{constructor(K,V){this._drawLinkLine=(Q,U)=>{let H=Q.options.links;if(!H?.enable)return;let Y=this._container,z=Y.actualOptions,M=U.destination,A=Q.getPosition(),R=M.getPosition(),D=U.opacity;Y.canvas.draw((F)=>{let P,G=Q.options.twinkle?.lines;if(G?.enable){let k=G.frequency,f=KV(this._engine,G.color);if(W1(){let Y=Q.options.links;if(!Y?.enable)return;let z=Y.triangles;if(!z.enable)return;let M=this._container,A=M.actualOptions,R=U.destination,D=H.destination,F=z.opacity??(U.opacity+H.opacity)*gG;if(F<=$5)return;M.canvas.draw((P)=>{let G=Q.getPosition(),T=R.getPosition(),v=D.getPosition(),J=Q.retina.linksDistance??F5;if(MK(G,T)>J||MK(v,T)>J||MK(v,G)>J)return;let k=KV(this._engine,z.color);if(!k){let f=Y.id!==void 0?M.particles.linksColors.get(Y.id):M.particles.linksColor;k=D8(Q,R,f)}if(!k)return;R5({context:P,pos1:G,pos2:T,pos3:v,backgroundMask:A.backgroundMask,colorTriangle:k,opacityTriangle:F})})},this._drawTriangles=(Q,U,H,Y)=>{let z=H.destination;if(!(Q.links?.triangles.enable&&z.options.links?.triangles.enable))return;let M=z.links?.filter((A)=>{let R=this._getLinkFrequency(z,A.destination);return z.options.links&&R<=z.options.links.frequency&&Y.findIndex((F)=>F.destination===A.destination)>=0});if(!M?.length)return;for(let A of M){let R=A.destination;if(this._getTriangleFrequency(U,z,R)>Q.links.triangles.frequency)continue;this._drawLinkTriangle(U,H,A)}},this._getLinkFrequency=(Q,U)=>{return bq([Q,U],this._freqs.links)},this._getTriangleFrequency=(Q,U,H)=>{return bq([Q,U,H],this._freqs.triangles)},this._container=K,this._engine=V,this._freqs={links:new Map,triangles:new Map}}drawParticle(K,V){let{links:Q,options:U}=V;if(!Q?.length)return;let H=Q.filter((Y)=>U.links&&(U.links.frequency>=yG||this._getLinkFrequency(V,Y.destination)<=U.links.frequency));for(let Y of H)if(this._drawTriangles(U,V,Y,H),Y.opacity>$5&&(V.retina.linksWidth??lq)>lq)this._drawLinkLine(V,Y)}async init(){this._freqs.links=new Map,this._freqs.triangles=new Map,await Promise.resolve()}particleCreated(K){if(K.links=[],!K.options.links)return;let V=this._container.retina.pixelRatio,{retina:Q}=K,{distance:U,width:H}=K.options.links;Q.linksDistance=U*V,Q.linksWidth=H*V}particleDestroyed(K){K.links=[]}}class sq{constructor(K){this.id="links",this._engine=K}getPlugin(K){return Promise.resolve(new dq(K,this._engine))}loadOptions(){}needsPlugin(){return!0}}async function D5(K,V=!0){let Q=new sq(K);await K.addPlugin(Q,V)}async function S5(K,V=!0){K.checkVersion("3.9.1"),await X5(K,V),await D5(K,V)}var hG=180,PL={x:0,y:0},pG=2;function P5(K,V,Q){let{context:U}=K,H=Q.count.numerator*Q.count.denominator,Y=Q.count.numerator/Q.count.denominator,z=hG*(Y-pG)/Y,M=Math.PI-kV(z);if(!U)return;U.beginPath(),U.translate(V.x,V.y),U.moveTo(PL.x,PL.y);for(let A=0;A0?oK.counterClockwise:oK.clockwise;switch(Q){case oK.counterClockwise:case"counterClockwise":K.rotate.status=WK.decreasing;break;case oK.clockwise:K.rotate.status=WK.increasing;break}let U=V.animation;if(U.enable){if(K.rotate.decay=nG-a0(U.decay),K.rotate.velocity=a0(U.speed)/rG*this.container.retina.reduceFactor,!U.sync)K.rotate.velocity*=W1()}K.rotation=K.rotate.value}isEnabled(K){let V=K.options.rotate;if(!V)return!1;return!K.destroyed&&!K.spawning&&(!!V.value||V.animation.enable||V.path)}loadOptions(K,...V){if(!K.rotate)K.rotate=new rq;for(let Q of V)K.rotate.load(Q?.rotate)}update(K,V){if(!this.isEnabled(K))return;if(K.isRotating=!!K.rotate,!K.rotate)return;WH(K,K.rotate,!1,oV.none,V),K.rotation=K.rotate.value}}async function E5(K,V=!0){K.checkVersion("3.9.1"),await K.addParticleUpdater("rotate",(Q)=>{return Promise.resolve(new iq(Q))},V)}var iG=Math.sqrt(2);function B5(K){let{context:V,radius:Q}=K,U=Q/iG,H=U*2;V.rect(-U,-U,H,H)}var tG=4;class tq{constructor(){this.validTypes=["edge","square"]}draw(K){B5(K)}getSidesCount(){return tG}}async function J5(K,V=!0){K.checkVersion("3.9.1"),await K.addShape(new tq,V)}var CH={x:0,y:0};function v5(K){let{context:V,particle:Q,radius:U}=K,H=Q.sides,Y=Q.starInset??2;V.moveTo(CH.x,CH.y-U);for(let z=0;z{return Promise.resolve(new eq(Q,K))},V)}async function w5(K,V=!0){K.checkVersion("3.9.1"),await U5(K,!1),await DX(K,!1),await TX(K,!1),await JX(K,!1),await jX(K,!1),await _X(K,!1),await NX(K,!1),await gX(K,!1),await yX(K,!1),await hX(K,!1),await pX(K,!1),await z5(K,!1),await M5(K,!1),await S5(K,!1),await OX(K,!1),await XX(K,!1),await mX(K,!1),await V5(K,!1),await G5(K,!1),await J5(K,!1),await k5(K,!1),await eX(K,!1),await E5(K,!1),await f5(K,!1),await qX(K,V)}var GA={};IU(GA,{uuid4:()=>IA,uint53Full:()=>cL,uint53:()=>s8,uint32:()=>d2,string:()=>uL,shuffle:()=>hL,sample:()=>CA,realZeroToOneInclusive:()=>m2,realZeroToOneExclusive:()=>o2,real:()=>SA,picker:()=>Xv,pick:()=>DA,nativeMath:()=>l8,integer:()=>iV,int53Full:()=>l2,int53:()=>yL,int32:()=>pL,hex:()=>FA,die:()=>s2,dice:()=>RA,date:()=>AA,createEntropy:()=>r2,browserCrypto:()=>d8,bool:()=>XA,XorGen4096:()=>b8,Random:()=>kH,MersenneTwister19937:()=>u8});function pL(K){return K.next()|0}function LU(K,V){if(V===0)return K;else return(Q)=>K(Q)+V}function yL(K){let V=K.next()|0,Q=K.next()>>>0;return(V&2097151)*4294967296+Q+(V&2097152?-9007199254740992:0)}function l2(K){while(!0){let V=K.next()|0;if(V&4194304){if((V&8388607)===4194304&&(K.next()|0)===0)return 9007199254740992}else{let Q=K.next()>>>0;return(V&2097151)*4294967296+Q+(V&2097152?-9007199254740992:0)}}}function d2(K){return K.next()>>>0}function s8(K){let V=K.next()&2097151,Q=K.next()>>>0;return V*4294967296+Q}function cL(K){while(!0){let V=K.next()|0;if(V&2097152){if((V&2097151)===0&&(K.next()|0)===0)return 9007199254740992}else{let Q=K.next()>>>0;return(V&2097151)*4294967296+Q}}}function WA(K){return(K+1&K)===0}function nJ(K){return(V)=>V.next()&K}function rJ(K){let V=K+1,Q=V*Math.floor(4294967296/V);return(U)=>{let H=0;do H=U.next()>>>0;while(H>=Q);return H%V}}function iJ(K){if(WA(K))return nJ(K);else return rJ(K)}function tJ(K){return(K|0)===0}function aJ(K){return(V)=>{let Q=V.next()&K,U=V.next()>>>0;return Q*4294967296+U}}function eJ(K){let V=K*Math.floor(9007199254740992/K);return(Q)=>{let U=0;do{let H=Q.next()&2097151,Y=Q.next()>>>0;U=H*4294967296+Y}while(U>=V);return U%K}}function Kv(K){let V=K+1;if(tJ(V)){let Q=(V/4294967296|0)-1;if(WA(Q))return aJ(Q)}return eJ(V)}function YA(K,V){return(Q)=>{let U=0;do{let H=Q.next()|0,Y=Q.next()>>>0;U=(H&2097151)*4294967296+Y+(H&2097152?-9007199254740992:0)}while(UV);return U}}function iV(K,V){if(K=Math.floor(K),V=Math.floor(V),K<-9007199254740992||!isFinite(K))throw RangeError("Expected min to be at least -9007199254740992");else if(V>9007199254740992||!isFinite(V))throw RangeError("Expected max to be at most 9007199254740992");let Q=V-K;if(Q<=0||!isFinite(Q))return()=>K;else if(Q===4294967295)if(K===0)return d2;else return LU(pL,K+2147483648);else if(Q<4294967295)return LU(iJ(Q),K);else if(Q===9007199254740991)return LU(s8,K);else if(Q<9007199254740991)return LU(Kv(Q),K);else if(V-1-K===9007199254740991)return LU(cL,K);else if(K===-9007199254740992&&V===9007199254740992)return l2;else if(K===-9007199254740992&&V===9007199254740991)return yL;else if(K===-9007199254740991&&V===9007199254740992)return LU(yL,1);else if(V===9007199254740992)return LU(YA(K-1,V-1),1);else return YA(K,V)}function Vv(K){return(K.next()&1)===1}function c2(K,V){return(Q)=>K(Q)!1;else if(K>=1)return()=>!0;else{let V=K*4294967296;if(V%1===0)return c2(pL,V-2147483648|0);else return c2(s8,Math.round(K*9007199254740992))}}function XA(K,V){if(V==null){if(K==null)return Vv;return Qv(K)}else{if(K<=0)return()=>!1;else if(K>=V)return()=>!0;return c2(iV(0,V-1),K)}}function AA(K,V){let Q=iV(+K,+V);return(U)=>new Date(Q(U))}function s2(K){return iV(1,K)}function RA(K,V){let Q=s2(K);return(U)=>{let H=[];for(let Y=0;Y{let Y="";for(let z=0;z=z)throw RangeError(`Cannot pick between bounds ${Y} and ${z}`);let M=iV(Y,z-1);return V[M(K)]}function Yv(K,V){if(V===1)return K;else if(V===0)return()=>0;else return(Q)=>K(Q)*V}function o2(K){return s8(K)/9007199254740992}function m2(K){return cL(K)/9007199254740992}function SA(K,V,Q=!1){if(!isFinite(K))throw RangeError("Expected min to be a finite number");else if(!isFinite(V))throw RangeError("Expected max to be a finite number");return LU(Yv(Q?m2:o2,V-K),K)}var PA=Array.prototype.slice;function hL(K,V,Q=0){let U=V.length;if(U)for(let H=U-1>>>0;H>Q;--H){let z=iV(0,H)(K);if(H!==z){let M=V[H];V[H]=V[z],V[z]=M}}return V}function CA(K,V,Q){if(Q<0||Q>V.length||!isFinite(Q))throw RangeError("Expected sampleSize to be within 0 and the length of the population");if(Q===0)return[];let U=PA.call(V),H=U.length;if(H===Q)return hL(K,U,0);let Y=H-Q;return hL(K,U,Y-1).slice(Y)}var qv=(()=>{try{if("x".repeat(3)==="xxx")return(K,V)=>K.repeat(V)}catch(K){console.warn("String.prototype.repeat check failed, using fallback:",K)}return(K,V)=>{let Q="";while(V>0){if(V&1)Q+=K;V>>=1,K+=K}return Q}})();function JH(K,V){return qv("0",V-K.length)+K}function IA(K){let V=K.next()>>>0,Q=K.next()|0,U=K.next()|0,H=K.next()>>>0;return JH(V.toString(16),8)+"-"+JH((Q&65535).toString(16),4)+"-"+JH((Q>>4&4095|16384).toString(16),4)+"-"+JH((U&16383|32768).toString(16),4)+"-"+JH((U>>4&65535).toString(16),4)+JH(H.toString(16),8)}var l8={next(){return Math.random()*4294967296|0}},n2=(()=>{try{let K=new ArrayBuffer(4),V=new Int32Array(K);if(V[0]=2147483648,V[0]===-2147483648)return Int32Array}catch(K){console.warn("Int32Array check failed, falling back to Array:",K)}return Array})(),N2=null,u2=128,g2=u2,d8={next(){if(g2>=u2)N2??=new n2(u2),crypto.getRandomValues(N2),g2=0;return N2[g2++]|0}};function Ov(){if(typeof window<"u"&&typeof window.crypto?.getRandomValues==="function")return d8;if(typeof process<"u"&&process?.versions?.node)try{if((WV(),D1(MV))?.randomBytes)return d8}catch{return l8}return l8}class kH{engine;constructor(K){this.engine=K??l8}static auto(){return new kH(Ov())}int32(){return pL(this.engine)}uint32(){return d2(this.engine)}uint53(){return s8(this.engine)}uint53Full(){return cL(this.engine)}int53(){return yL(this.engine)}int53Full(){return l2(this.engine)}integer(K,V){return iV(K,V)(this.engine)}max(K,V){return Lv(K,V)(this.engine)}min(K,V){return Zv(K,V)(this.engine)}realZeroToOneInclusive(){return m2(this.engine)}realZeroToOneExclusive(){return o2(this.engine)}real(K,V,Q=!1){return SA(K,V,Q)(this.engine)}bool(K,V){return XA(K,V)(this.engine)}pick(K,V,Q){return DA(this.engine,K,V,Q)}shuffle(K){return hL(this.engine,K)}sample(K,V){return CA(this.engine,K,V)}die(K){return s2(K)(this.engine)}dice(K,V){return RA(K,V)(this.engine)}uuid4(){return IA(this.engine)}string(K,V){return uL(V)(this.engine,K)}hex(K,V){return FA(V)(this.engine,K)}date(K,V){return AA(K,V)(this.engine)}}function r2(K=l8,V=16){let Q=[];Q.push(new Date().getTime()|0);for(let U=1;U{try{if(Math.imul(4294967295,5)===-5)return Math.imul}catch(V){console.warn("Math.imul is not available or failed the test, using polyfill.",V)}let K=65535;return(V,Q)=>{let U=V>>>16&K,H=V&K,Y=Q>>>16&K,z=Q&K;return H*z+(U*z+H*Y<<16>>>0)|0}})(),FQ=624,ZU=FQ-1,b2=397,MA=FQ-b2,y2=2567483615;class u8{static seed(K){return new u8().seed(K)}static seedWithArray(K){return new u8().seedWithArray(K)}static autoSeed(){return u8.seedWithArray(r2())}data=new n2(FQ);index=0;uses=0;constructor(){}next(){if((this.index|0)>=FQ)h2(this.data),this.index=0;let K=this.data[this.index];return this.index=this.index+1|0,this.uses+=1,Mv(K)|0}getUseCount(){return this.uses}discard(K){if(K<=0)return this;if(this.uses+=K,(this.index|0)>=FQ)h2(this.data),this.index=0;while(K+this.index>FQ)K-=FQ-this.index,h2(this.data),this.index=0;return this.index=this.index+K|0,this}seed(K){let V=0;this.data[0]=V=K|0;for(let Q=1;Q>>30,1812433253)+Q|0;return this.index=FQ,this.uses=0,this}seedWithArray(K){return this.seed(19650218),Wv(this.data,K),this}}function h2(K){let V=0,Q=0;for(;(V|0)>>1^(Q&1?y2:0);for(;(V|0)>>1^(Q&1?y2:0);Q=K[ZU]&2147483648|K[0]&2147483647,K[ZU]=K[b2-1]^Q>>>1^(Q&1?y2:0)}function Mv(K){return K^=K>>>11,K^=K<<7&2636928640,K^=K<<15&4022730752,K^K>>>18}function Wv(K,V){let Q=1,U=0,H=V.length,Y=Math.max(H,FQ)|0,z=K[0]|0;for(;(Y|0)>0;--Y){if(K[Q]=z=(K[Q]^vH(z^z>>>30,1664525))+(V[U]|0)+(U|0)|0,Q=Q+1|0,++U,(Q|0)>ZU)K[0]=K[ZU],Q=1;if(U>=H)U=0}for(Y=ZU;(Y|0)>0;--Y)if(K[Q]=z=(K[Q]^vH(z^z>>>30,1566083941))-Q|0,Q=Q+1|0,(Q|0)>ZU)K[0]=K[ZU],Q=1;K[0]=2147483648}var $Q=4096,p2=$Q-1;class b8{data=new n2($Q);index=0;uses=0;static seed(K){return new b8().seed(K)}static seedWithArray(K){return new b8().seedWithArray(K)}static autoSeed(){return b8.seedWithArray(r2())}constructor(){}next(){let K=this.index;this.index=this.index+1&p2;let V=this.data[K],Q=this.data[K+1&p2];return V^=V<<13,V^=V>>>17,V^=Q^Q>>>5,this.data[K]=V,this.uses++,V|0}getUseCount(){return this.uses}discard(K){if(K<=0)return this;return this.uses+=K,this.index=this.index+K&p2,this}seed(K){let V=K|0;this.data[0]=V;for(let Q=1;Q<$Q;Q++)V=vH(V^V>>>30,1812433253)+Q|0,this.data[Q]=V;return this.index=0,this.uses=0,this}seedWithArray(K){this.seed(19650218);let V=1,Q=0,U=K.length,H=$Q>U?$Q:U;for(;H>0;H--){if(this.data[V]=(this.data[V]^vH(this.data[V-1]^this.data[V-1]>>>30,1664525))+K[Q]+Q|0,V++,Q++,V>=$Q)this.data[0]=this.data[$Q-1],V=1;if(Q>=U)Q=0}for(H=$Q-1;H>0;H--)if(this.data[V]=(this.data[V]^vH(this.data[V-1]^this.data[V-1]>>>30,1566083941))-V|0,V++,V>=$Q)this.data[0]=this.data[$Q-1],V=1;return this.index=0,this.uses=0,this}}function Xv(K,V,Q){let U=PA.call(K,V,Q);if(U.length===0)throw RangeError("Cannot pick from a source with no items");let H=iV(0,U.length-1);return(Y)=>U[H(Y)]}var z$={};IU(z$,{Zone:()=>mU,VERSION:()=>zf,SystemZone:()=>a8,Settings:()=>KK,InvalidZone:()=>FO,Interval:()=>$K,Info:()=>xH,IANAZone:()=>DQ,FixedOffsetZone:()=>nK,Duration:()=>S1,DateTime:()=>L1});class MU extends Error{}class KR extends MU{constructor(K){super(`Invalid DateTime: ${K.toMessage()}`)}}class VR extends MU{constructor(K){super(`Invalid Interval: ${K.toMessage()}`)}}class QR extends MU{constructor(K){super(`Invalid Duration: ${K.toMessage()}`)}}class sU extends MU{}class $O extends MU{constructor(K){super(`Invalid unit ${K}`)}}class dK extends MU{}class gQ extends MU{constructor(){super("Zone is an abstract class")}}var K1="numeric",eV="short",CV="long",rL={year:K1,month:K1,day:K1},UR={year:K1,month:eV,day:K1},Av={year:K1,month:eV,day:K1,weekday:eV},HR={year:K1,month:CV,day:K1},zR={year:K1,month:CV,day:K1,weekday:CV},LR={hour:K1,minute:K1},ZR={hour:K1,minute:K1,second:K1},YR={hour:K1,minute:K1,second:K1,timeZoneName:eV},qR={hour:K1,minute:K1,second:K1,timeZoneName:CV},OR={hour:K1,minute:K1,hourCycle:"h23"},MR={hour:K1,minute:K1,second:K1,hourCycle:"h23"},WR={hour:K1,minute:K1,second:K1,hourCycle:"h23",timeZoneName:eV},XR={hour:K1,minute:K1,second:K1,hourCycle:"h23",timeZoneName:CV},AR={year:K1,month:K1,day:K1,hour:K1,minute:K1},RR={year:K1,month:K1,day:K1,hour:K1,minute:K1,second:K1},$R={year:K1,month:eV,day:K1,hour:K1,minute:K1},FR={year:K1,month:eV,day:K1,hour:K1,minute:K1,second:K1},Rv={year:K1,month:eV,day:K1,weekday:eV,hour:K1,minute:K1},DR={year:K1,month:CV,day:K1,hour:K1,minute:K1,timeZoneName:eV},SR={year:K1,month:CV,day:K1,hour:K1,minute:K1,second:K1,timeZoneName:eV},PR={year:K1,month:CV,day:K1,weekday:CV,hour:K1,minute:K1,timeZoneName:CV},CR={year:K1,month:CV,day:K1,weekday:CV,hour:K1,minute:K1,second:K1,timeZoneName:CV};class mU{get type(){throw new gQ}get name(){throw new gQ}get ianaName(){return this.name}get isUniversal(){throw new gQ}offsetName(K,V){throw new gQ}formatOffset(K,V){throw new gQ}offset(K){throw new gQ}equals(K){throw new gQ}get isValid(){throw new gQ}}var i2=null;class a8 extends mU{static get instance(){if(i2===null)i2=new a8;return i2}get type(){return"system"}get name(){return new Intl.DateTimeFormat().resolvedOptions().timeZone}get isUniversal(){return!1}offsetName(K,{format:V,locale:Q}){return NR(K,V,Q)}formatOffset(K,V){return i8(this.offset(K),V)}offset(K){return-new Date(K).getTimezoneOffset()}equals(K){return K.type==="system"}get isValid(){return!0}}var zO=new Map;function $v(K){let V=zO.get(K);if(V===void 0)V=new Intl.DateTimeFormat("en-US",{hour12:!1,timeZone:K,year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit",era:"short"}),zO.set(K,V);return V}var Fv={year:0,month:1,day:2,era:3,hour:4,minute:5,second:6};function Dv(K,V){let Q=K.format(V).replace(/\u200E/g,""),U=/(\d+)\/(\d+)\/(\d+) (AD|BC),? (\d+):(\d+):(\d+)/.exec(Q),[,H,Y,z,M,A,R,D]=U;return[z,H,Y,M,A,R,D]}function Sv(K,V){let Q=K.formatToParts(V),U=[];for(let H=0;H=0?G:1000+G,(F-P)/60000}equals(K){return K.type==="iana"&&K.name===this.name}get isValid(){return this.valid}}var TA={};function Pv(K,V={}){let Q=JSON.stringify([K,V]),U=TA[Q];if(!U)U=new Intl.ListFormat(K,V),TA[Q]=U;return U}var LO=new Map;function ZO(K,V={}){let Q=JSON.stringify([K,V]),U=LO.get(Q);if(U===void 0)U=new Intl.DateTimeFormat(K,V),LO.set(Q,U);return U}var YO=new Map;function Cv(K,V={}){let Q=JSON.stringify([K,V]),U=YO.get(Q);if(U===void 0)U=new Intl.NumberFormat(K,V),YO.set(Q,U);return U}var qO=new Map;function Iv(K,V={}){let{base:Q,...U}=V,H=JSON.stringify([K,U]),Y=qO.get(H);if(Y===void 0)Y=new Intl.RelativeTimeFormat(K,V),qO.set(H,Y);return Y}var m8=null;function Gv(){if(m8)return m8;else return m8=new Intl.DateTimeFormat().resolvedOptions().locale,m8}var OO=new Map;function IR(K){let V=OO.get(K);if(V===void 0)V=new Intl.DateTimeFormat(K).resolvedOptions(),OO.set(K,V);return V}var MO=new Map;function Tv(K){let V=MO.get(K);if(!V){let Q=new Intl.Locale(K);if(V="getWeekInfo"in Q?Q.getWeekInfo():Q.weekInfo,!("minimalDays"in V))V={...BR,...V};MO.set(K,V)}return V}function Ev(K){let V=K.indexOf("-x-");if(V!==-1)K=K.substring(0,V);let Q=K.indexOf("-u-");if(Q===-1)return[K];else{let U,H;try{U=ZO(K).resolvedOptions(),H=K}catch(M){let A=K.substring(0,Q);U=ZO(A).resolvedOptions(),H=A}let{numberingSystem:Y,calendar:z}=U;return[H,Y,z]}}function Bv(K,V,Q){if(Q||V){if(!K.includes("-u-"))K+="-u";if(Q)K+=`-ca-${Q}`;if(V)K+=`-nu-${V}`;return K}else return K}function Jv(K){let V=[];for(let Q=1;Q<=12;Q++){let U=L1.utc(2009,Q,1);V.push(K(U))}return V}function vv(K){let V=[];for(let Q=1;Q<=7;Q++){let U=L1.utc(2016,11,13+Q);V.push(K(U))}return V}function bL(K,V,Q,U){let H=K.listingMode();if(H==="error")return null;else if(H==="en")return Q(V);else return U(V)}function kv(K){if(K.numberingSystem&&K.numberingSystem!=="latn")return!1;else return K.numberingSystem==="latn"||!K.locale||K.locale.startsWith("en")||IR(K.locale).numberingSystem==="latn"}class GR{constructor(K,V,Q){this.padTo=Q.padTo||0,this.floor=Q.floor||!1;let{padTo:U,floor:H,...Y}=Q;if(!V||Object.keys(Y).length>0){let z={useGrouping:!1,...Q};if(Q.padTo>0)z.minimumIntegerDigits=Q.padTo;this.inf=Cv(K,z)}}format(K){if(this.inf){let V=this.floor?Math.floor(K):K;return this.inf.format(V)}else{let V=this.floor?Math.floor(K):IO(K,3);return vK(V,this.padTo)}}}class TR{constructor(K,V,Q){this.opts=Q,this.originalZone=void 0;let U=void 0;if(this.opts.timeZone)this.dt=K;else if(K.zone.type==="fixed"){let Y=-1*(K.offset/60),z=Y>=0?`Etc/GMT+${Y}`:`Etc/GMT${Y}`;if(K.offset!==0&&DQ.create(z).valid)U=z,this.dt=K;else U="UTC",this.dt=K.offset===0?K:K.setZone("UTC").plus({minutes:K.offset}),this.originalZone=K.zone}else if(K.zone.type==="system")this.dt=K;else if(K.zone.type==="iana")this.dt=K,U=K.zone.name;else U="UTC",this.dt=K.setZone("UTC").plus({minutes:K.offset}),this.originalZone=K.zone;let H={...this.opts};H.timeZone=H.timeZone||U,this.dtf=ZO(V,H)}format(){if(this.originalZone)return this.formatToParts().map(({value:K})=>K).join("");return this.dtf.format(this.dt.toJSDate())}formatToParts(){let K=this.dtf.formatToParts(this.dt.toJSDate());if(this.originalZone)return K.map((V)=>{if(V.type==="timeZoneName"){let Q=this.originalZone.offsetName(this.dt.ts,{locale:this.dt.locale,format:this.opts.timeZoneName});return{...V,value:Q}}else return V});return K}resolvedOptions(){return this.dtf.resolvedOptions()}}class ER{constructor(K,V,Q){if(this.opts={style:"long",...Q},!V&&xR())this.rtf=Iv(K,Q)}format(K,V){if(this.rtf)return this.rtf.format(K,V);else return iv(V,K,this.opts.numeric,this.opts.style!=="long")}formatToParts(K,V){if(this.rtf)return this.rtf.formatToParts(K,V);else return[]}}var BR={firstDay:1,minimalDays:4,weekend:[6,7]};class j1{static fromOpts(K){return j1.create(K.locale,K.numberingSystem,K.outputCalendar,K.weekSettings,K.defaultToEN)}static create(K,V,Q,U,H=!1){let Y=K||KK.defaultLocale,z=Y||(H?"en-US":Gv()),M=V||KK.defaultNumberingSystem,A=Q||KK.defaultOutputCalendar,R=XO(U)||KK.defaultWeekSettings;return new j1(z,M,A,R,Y)}static resetCache(){m8=null,LO.clear(),YO.clear(),qO.clear(),OO.clear(),MO.clear()}static fromObject({locale:K,numberingSystem:V,outputCalendar:Q,weekSettings:U}={}){return j1.create(K,V,Q,U)}constructor(K,V,Q,U,H){let[Y,z,M]=Ev(K);this.locale=Y,this.numberingSystem=V||z||null,this.outputCalendar=Q||M||null,this.weekSettings=U,this.intl=Bv(this.locale,this.numberingSystem,this.outputCalendar),this.weekdaysCache={format:{},standalone:{}},this.monthsCache={format:{},standalone:{}},this.meridiemCache=null,this.eraCache={},this.specifiedLocale=H,this.fastNumbersCached=null}get fastNumbers(){if(this.fastNumbersCached==null)this.fastNumbersCached=kv(this);return this.fastNumbersCached}listingMode(){let K=this.isEnglish(),V=(this.numberingSystem===null||this.numberingSystem==="latn")&&(this.outputCalendar===null||this.outputCalendar==="gregory");return K&&V?"en":"intl"}clone(K){if(!K||Object.getOwnPropertyNames(K).length===0)return this;else return j1.create(K.locale||this.specifiedLocale,K.numberingSystem||this.numberingSystem,K.outputCalendar||this.outputCalendar,XO(K.weekSettings)||this.weekSettings,K.defaultToEN||!1)}redefaultToEN(K={}){return this.clone({...K,defaultToEN:!0})}redefaultToSystem(K={}){return this.clone({...K,defaultToEN:!1})}months(K,V=!1){return bL(this,K,hR,()=>{let Q=this.intl==="ja"||this.intl.startsWith("ja-");V&=!Q;let U=V?{month:K,day:"numeric"}:{month:K},H=V?"format":"standalone";if(!this.monthsCache[H][K]){let Y=!Q?(z)=>this.extract(z,U,"month"):(z)=>this.dtFormatter(z,U).format();this.monthsCache[H][K]=Jv(Y)}return this.monthsCache[H][K]})}weekdays(K,V=!1){return bL(this,K,uR,()=>{let Q=V?{weekday:K,year:"numeric",month:"long",day:"numeric"}:{weekday:K},U=V?"format":"standalone";if(!this.weekdaysCache[U][K])this.weekdaysCache[U][K]=vv((H)=>this.extract(H,Q,"weekday"));return this.weekdaysCache[U][K]})}meridiems(){return bL(this,void 0,()=>bR,()=>{if(!this.meridiemCache){let K={hour:"numeric",hourCycle:"h12"};this.meridiemCache=[L1.utc(2016,11,13,9),L1.utc(2016,11,13,19)].map((V)=>this.extract(V,K,"dayperiod"))}return this.meridiemCache})}eras(K){return bL(this,K,lR,()=>{let V={era:K};if(!this.eraCache[K])this.eraCache[K]=[L1.utc(-40,1,1),L1.utc(2017,1,1)].map((Q)=>this.extract(Q,V,"era"));return this.eraCache[K]})}extract(K,V,Q){let U=this.dtFormatter(K,V),H=U.formatToParts(),Y=H.find((z)=>z.type.toLowerCase()===Q);return Y?Y.value:null}numberFormatter(K={}){return new GR(this.intl,K.forceSimple||this.fastNumbers,K)}dtFormatter(K,V={}){return new TR(K,this.intl,V)}relFormatter(K={}){return new ER(this.intl,this.isEnglish(),K)}listFormatter(K={}){return Pv(this.intl,K)}isEnglish(){return this.locale==="en"||this.locale.toLowerCase()==="en-us"||IR(this.intl).locale.startsWith("en-us")}getWeekSettings(){if(this.weekSettings)return this.weekSettings;else if(!_R())return BR;else return Tv(this.locale)}getStartOfWeek(){return this.getWeekSettings().firstDay}getMinDaysInFirstWeek(){return this.getWeekSettings().minimalDays}getWeekendDays(){return this.getWeekSettings().weekend}equals(K){return this.locale===K.locale&&this.numberingSystem===K.numberingSystem&&this.outputCalendar===K.outputCalendar}toString(){return`Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`}}var a2=null;class nK extends mU{static get utcInstance(){if(a2===null)a2=new nK(0);return a2}static instance(K){return K===0?nK.utcInstance:new nK(K)}static parseSpecifier(K){if(K){let V=K.match(/^utc(?:([+-]\d{1,2})(?::(\d{2}))?)?$/i);if(V)return new nK(V6(V[1],V[2]))}return null}constructor(K){super();this.fixed=K}get type(){return"fixed"}get name(){return this.fixed===0?"UTC":`UTC${i8(this.fixed,"narrow")}`}get ianaName(){if(this.fixed===0)return"Etc/UTC";else return`Etc/GMT${i8(-this.fixed,"narrow")}`}offsetName(){return this.name}formatOffset(K,V){return i8(this.fixed,V)}get isUniversal(){return!0}offset(){return this.fixed}equals(K){return K.type==="fixed"&&K.fixed===this.fixed}get isValid(){return!0}}class FO extends mU{constructor(K){super();this.zoneName=K}get type(){return"invalid"}get name(){return this.zoneName}get isUniversal(){return!1}offsetName(){return null}formatOffset(){return""}offset(){return NaN}equals(){return!1}get isValid(){return!1}}function qU(K,V){if(O1(K)||K===null)return V;else if(K instanceof mU)return K;else if(Nv(K)){let Q=K.toLowerCase();if(Q==="default")return V;else if(Q==="local"||Q==="system")return a8.instance;else if(Q==="utc"||Q==="gmt")return nK.utcInstance;else return nK.parseSpecifier(Q)||DQ.create(K)}else if(OU(K))return nK.instance(K);else if(typeof K==="object"&&"offset"in K&&typeof K.offset==="function")return K;else return new FO(K)}var DO={arab:"[Ł -Ł©]",arabext:"[Ū°-Ū¹]",bali:"[᭐-į­™]",beng:"[০-ą§Æ]",deva:"[ą„¦-ą„Æ]",fullwide:"[0-ļ¼™]",gujr:"[૦-૯]",hanidec:"[怇|äø€|二|äø‰|四|äŗ”|六|七|八|九]",khmr:"[០-៩]",knda:"[೦-೯]",laoo:"[໐-ą»™]",limb:"[ᄆ-į„]",mlym:"[൦-൯]",mong:"[᠐-į ™]",mymr:"[၀-၉]",orya:"[ą­¦-ą­Æ]",tamldec:"[௦-௯]",telu:"[౦-౯]",thai:"[๐-ą¹™]",tibt:"[ą¼ -༩]",latn:"\\d"},EA={arab:[1632,1641],arabext:[1776,1785],bali:[6992,7001],beng:[2534,2543],deva:[2406,2415],fullwide:[65296,65303],gujr:[2790,2799],khmr:[6112,6121],knda:[3302,3311],laoo:[3792,3801],limb:[6470,6479],mlym:[3430,3439],mong:[6160,6169],mymr:[4160,4169],orya:[2918,2927],tamldec:[3046,3055],telu:[3174,3183],thai:[3664,3673],tibt:[3872,3881]},fv=DO.hanidec.replace(/[\[|\]]/g,"").split("");function wv(K){let V=parseInt(K,10);if(isNaN(V)){V="";for(let Q=0;Q=Y&&U<=z)V+=U-Y}}return parseInt(V,10)}else return V}var WO=new Map;function jv(){WO.clear()}function tV({numberingSystem:K},V=""){let Q=K||"latn",U=WO.get(Q);if(U===void 0)U=new Map,WO.set(Q,U);let H=U.get(V);if(H===void 0)H=new RegExp(`${DO[Q]}${V}`),U.set(V,H);return H}var BA=()=>Date.now(),JA="system",vA=null,kA=null,fA=null,wA=60,jA,xA=null;class KK{static get now(){return BA}static set now(K){BA=K}static set defaultZone(K){JA=K}static get defaultZone(){return qU(JA,a8.instance)}static get defaultLocale(){return vA}static set defaultLocale(K){vA=K}static get defaultNumberingSystem(){return kA}static set defaultNumberingSystem(K){kA=K}static get defaultOutputCalendar(){return fA}static set defaultOutputCalendar(K){fA=K}static get defaultWeekSettings(){return xA}static set defaultWeekSettings(K){xA=XO(K)}static get twoDigitCutoffYear(){return wA}static set twoDigitCutoffYear(K){wA=K%100}static get throwOnInvalid(){return jA}static set throwOnInvalid(K){jA=K}static resetCaches(){j1.resetCache(),DQ.resetCache(),L1.resetCache(),jv()}}class gV{constructor(K,V){this.reason=K,this.explanation=V}toMessage(){if(this.explanation)return`${this.reason}: ${this.explanation}`;else return this.reason}}var JR=[0,31,59,90,120,151,181,212,243,273,304,334],vR=[0,31,60,91,121,152,182,213,244,274,305,335];function yV(K,V){return new gV("unit out of range",`you specified ${V} (of type ${typeof V}) as a ${K}, which is invalid`)}function SO(K,V,Q){let U=new Date(Date.UTC(K,V-1,Q));if(K<100&&K>=0)U.setUTCFullYear(U.getUTCFullYear()-1900);let H=U.getUTCDay();return H===0?7:H}function kR(K,V,Q){return Q+(e8(K)?vR:JR)[V-1]}function fR(K,V){let Q=e8(K)?vR:JR,U=Q.findIndex((Y)=>Yt8(U,V,Q))R=U+1,A=1;else R=U;return{weekYear:R,weekNumber:A,weekday:M,...Q6(K)}}function _A(K,V=4,Q=1){let{weekYear:U,weekNumber:H,weekday:Y}=K,z=PO(SO(U,1,V),Q),M=_H(U),A=H*7+Y-z-7+V,R;if(A<1)R=U-1,A+=_H(R);else if(A>M)R=U+1,A-=_H(U);else R=U;let{month:D,day:F}=fR(R,A);return{year:R,month:D,day:F,...Q6(K)}}function e2(K){let{year:V,month:Q,day:U}=K,H=kR(V,Q,U);return{year:V,ordinal:H,...Q6(K)}}function NA(K){let{year:V,ordinal:Q}=K,{month:U,day:H}=fR(V,Q);return{year:V,month:U,day:H,...Q6(K)}}function gA(K,V){if(!O1(K.localWeekday)||!O1(K.localWeekNumber)||!O1(K.localWeekYear)){if(!O1(K.weekday)||!O1(K.weekNumber)||!O1(K.weekYear))throw new sU("Cannot mix locale-based week fields with ISO-based week fields");if(!O1(K.localWeekday))K.weekday=K.localWeekday;if(!O1(K.localWeekNumber))K.weekNumber=K.localWeekNumber;if(!O1(K.localWeekYear))K.weekYear=K.localWeekYear;return delete K.localWeekday,delete K.localWeekNumber,delete K.localWeekYear,{minDaysInFirstWeek:V.getMinDaysInFirstWeek(),startOfWeek:V.getStartOfWeek()}}else return{minDaysInFirstWeek:4,startOfWeek:1}}function xv(K,V=4,Q=1){let U=eL(K.weekYear),H=hV(K.weekNumber,1,t8(K.weekYear,V,Q)),Y=hV(K.weekday,1,7);if(!U)return yV("weekYear",K.weekYear);else if(!H)return yV("week",K.weekNumber);else if(!Y)return yV("weekday",K.weekday);else return!1}function _v(K){let V=eL(K.year),Q=hV(K.ordinal,1,_H(K.year));if(!V)return yV("year",K.year);else if(!Q)return yV("ordinal",K.ordinal);else return!1}function wR(K){let V=eL(K.year),Q=hV(K.month,1,12),U=hV(K.day,1,tL(K.year,K.month));if(!V)return yV("year",K.year);else if(!Q)return yV("month",K.month);else if(!U)return yV("day",K.day);else return!1}function jR(K){let{hour:V,minute:Q,second:U,millisecond:H}=K,Y=hV(V,0,23)||V===24&&Q===0&&U===0&&H===0,z=hV(Q,0,59),M=hV(U,0,59),A=hV(H,0,999);if(!Y)return yV("hour",V);else if(!z)return yV("minute",Q);else if(!M)return yV("second",U);else if(!A)return yV("millisecond",H);else return!1}function O1(K){return typeof K>"u"}function OU(K){return typeof K==="number"}function eL(K){return typeof K==="number"&&K%1===0}function Nv(K){return typeof K==="string"}function gv(K){return Object.prototype.toString.call(K)==="[object Date]"}function xR(){try{return typeof Intl<"u"&&!!Intl.RelativeTimeFormat}catch(K){return!1}}function _R(){try{return typeof Intl<"u"&&!!Intl.Locale&&(("weekInfo"in Intl.Locale.prototype)||("getWeekInfo"in Intl.Locale.prototype))}catch(K){return!1}}function yv(K){return Array.isArray(K)?K:[K]}function yA(K,V,Q){if(K.length===0)return;return K.reduce((U,H)=>{let Y=[V(H),H];if(!U)return Y;else if(Q(U[0],Y[0])===U[0])return U;else return Y},null)[1]}function hv(K,V){return V.reduce((Q,U)=>{return Q[U]=K[U],Q},{})}function gH(K,V){return Object.prototype.hasOwnProperty.call(K,V)}function XO(K){if(K==null)return null;else if(typeof K!=="object")throw new dK("Week settings must be an object");else{if(!hV(K.firstDay,1,7)||!hV(K.minimalDays,1,7)||!Array.isArray(K.weekend)||K.weekend.some((V)=>!hV(V,1,7)))throw new dK("Invalid week settings");return{firstDay:K.firstDay,minimalDays:K.minimalDays,weekend:Array.from(K.weekend)}}}function hV(K,V,Q){return eL(K)&&K>=V&&K<=Q}function pv(K,V){return K-V*Math.floor(K/V)}function vK(K,V=2){let Q=K<0,U;if(Q)U="-"+(""+-K).padStart(V,"0");else U=(""+K).padStart(V,"0");return U}function YU(K){if(O1(K)||K===null||K==="")return;else return parseInt(K,10)}function lU(K){if(O1(K)||K===null||K==="")return;else return parseFloat(K)}function CO(K){if(O1(K)||K===null||K==="")return;else{let V=parseFloat("0."+K)*1000;return Math.floor(V)}}function IO(K,V,Q="round"){let U=10**V;switch(Q){case"expand":return K>0?Math.ceil(K*U)/U:Math.floor(K*U)/U;case"trunc":return Math.trunc(K*U)/U;case"round":return Math.round(K*U)/U;case"floor":return Math.floor(K*U)/U;case"ceil":return Math.ceil(K*U)/U;default:throw RangeError(`Value rounding ${Q} is out of range`)}}function e8(K){return K%4===0&&(K%100!==0||K%400===0)}function _H(K){return e8(K)?366:365}function tL(K,V){let Q=pv(V-1,12)+1,U=K+(V-Q)/12;if(Q===2)return e8(U)?29:28;else return[31,null,31,30,31,30,31,31,30,31,30,31][Q-1]}function K6(K){let V=Date.UTC(K.year,K.month-1,K.day,K.hour,K.minute,K.second,K.millisecond);if(K.year<100&&K.year>=0)V=new Date(V),V.setUTCFullYear(K.year,K.month-1,K.day);return+V}function hA(K,V,Q){return-PO(SO(K,1,V),Q)+V-1}function t8(K,V=4,Q=1){let U=hA(K,V,Q),H=hA(K+1,V,Q);return(_H(K)-U+H)/7}function AO(K){if(K>99)return K;else return K>KK.twoDigitCutoffYear?1900+K:2000+K}function NR(K,V,Q,U=null){let H=new Date(K),Y={hourCycle:"h23",year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit"};if(U)Y.timeZone=U;let z={timeZoneName:V,...Y},M=new Intl.DateTimeFormat(Q,z).formatToParts(H).find((A)=>A.type.toLowerCase()==="timezonename");return M?M.value:null}function V6(K,V){let Q=parseInt(K,10);if(Number.isNaN(Q))Q=0;let U=parseInt(V,10)||0,H=Q<0||Object.is(Q,-0)?-U:U;return Q*60+H}function gR(K){let V=Number(K);if(typeof K==="boolean"||K===""||!Number.isFinite(V))throw new dK(`Invalid unit value ${K}`);return V}function aL(K,V){let Q={};for(let U in K)if(gH(K,U)){let H=K[U];if(H===void 0||H===null)continue;Q[V(U)]=gR(H)}return Q}function i8(K,V){let Q=Math.trunc(Math.abs(K/60)),U=Math.trunc(Math.abs(K%60)),H=K>=0?"+":"-";switch(V){case"short":return`${H}${vK(Q,2)}:${vK(U,2)}`;case"narrow":return`${H}${Q}${U>0?`:${U}`:""}`;case"techie":return`${H}${vK(Q,2)}${vK(U,2)}`;default:throw RangeError(`Value format ${V} is out of range for property format`)}}function Q6(K){return hv(K,["hour","minute","second","millisecond"])}var cv=["January","February","March","April","May","June","July","August","September","October","November","December"],yR=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],uv=["J","F","M","A","M","J","J","A","S","O","N","D"];function hR(K){switch(K){case"narrow":return[...uv];case"short":return[...yR];case"long":return[...cv];case"numeric":return["1","2","3","4","5","6","7","8","9","10","11","12"];case"2-digit":return["01","02","03","04","05","06","07","08","09","10","11","12"];default:return null}}var pR=["Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"],cR=["Mon","Tue","Wed","Thu","Fri","Sat","Sun"],bv=["M","T","W","T","F","S","S"];function uR(K){switch(K){case"narrow":return[...bv];case"short":return[...cR];case"long":return[...pR];case"numeric":return["1","2","3","4","5","6","7"];default:return null}}var bR=["AM","PM"],lv=["Before Christ","Anno Domini"],dv=["BC","AD"],sv=["B","A"];function lR(K){switch(K){case"narrow":return[...sv];case"short":return[...dv];case"long":return[...lv];default:return null}}function ov(K){return bR[K.hour<12?0:1]}function mv(K,V){return uR(V)[K.weekday-1]}function nv(K,V){return hR(V)[K.month-1]}function rv(K,V){return lR(V)[K.year<0?0:1]}function iv(K,V,Q="always",U=!1){let H={years:["year","yr."],quarters:["quarter","qtr."],months:["month","mo."],weeks:["week","wk."],days:["day","day","days"],hours:["hour","hr."],minutes:["minute","min."],seconds:["second","sec."]},Y=["hours","minutes","seconds"].indexOf(K)===-1;if(Q==="auto"&&Y){let F=K==="days";switch(V){case 1:return F?"tomorrow":`next ${H[K][0]}`;case-1:return F?"yesterday":`last ${H[K][0]}`;case 0:return F?"today":`this ${H[K][0]}`}}let z=Object.is(V,-0)||V<0,M=Math.abs(V),A=M===1,R=H[K],D=U?A?R[1]:R[2]||R[1]:A?H[K][0]:K;return z?`${M} ${D} ago`:`in ${M} ${D}`}function pA(K,V){let Q="";for(let U of K)if(U.literal)Q+=U.val;else Q+=V(U.val);return Q}var tv={D:rL,DD:UR,DDD:HR,DDDD:zR,t:LR,tt:ZR,ttt:YR,tttt:qR,T:OR,TT:MR,TTT:WR,TTTT:XR,f:AR,ff:$R,fff:DR,ffff:PR,F:RR,FF:FR,FFF:SR,FFFF:CR};class mK{static create(K,V={}){return new mK(K,V)}static parseFormat(K){let V=null,Q="",U=!1,H=[];for(let Y=0;Y0||U)H.push({literal:U||/^\s+$/.test(Q),val:Q===""?"'":Q});V=null,Q="",U=!U}else if(U)Q+=z;else if(z===V)Q+=z;else{if(Q.length>0)H.push({literal:/^\s+$/.test(Q),val:Q});Q=z,V=z}}if(Q.length>0)H.push({literal:U||/^\s+$/.test(Q),val:Q});return H}static macroTokenToFormatOpts(K){return tv[K]}constructor(K,V){this.opts=V,this.loc=K,this.systemLoc=null}formatWithSystemDefault(K,V){if(this.systemLoc===null)this.systemLoc=this.loc.redefaultToSystem();return this.systemLoc.dtFormatter(K,{...this.opts,...V}).format()}dtFormatter(K,V={}){return this.loc.dtFormatter(K,{...this.opts,...V})}formatDateTime(K,V){return this.dtFormatter(K,V).format()}formatDateTimeParts(K,V){return this.dtFormatter(K,V).formatToParts()}formatInterval(K,V){return this.dtFormatter(K.start,V).dtf.formatRange(K.start.toJSDate(),K.end.toJSDate())}resolvedOptions(K,V){return this.dtFormatter(K,V).resolvedOptions()}num(K,V=0,Q=void 0){if(this.opts.forceSimple)return vK(K,V);let U={...this.opts};if(V>0)U.padTo=V;if(Q)U.signDisplay=Q;return this.loc.numberFormatter(U).format(K)}formatDateTimeFromString(K,V){let Q=this.loc.listingMode()==="en",U=this.loc.outputCalendar&&this.loc.outputCalendar!=="gregory",H=(P,G)=>this.loc.extract(K,P,G),Y=(P)=>{if(K.isOffsetFixed&&K.offset===0&&P.allowZ)return"Z";return K.isValid?K.zone.formatOffset(K.ts,P.format):""},z=()=>Q?ov(K):H({hour:"numeric",hourCycle:"h12"},"dayperiod"),M=(P,G)=>Q?nv(K,P):H(G?{month:P}:{month:P,day:"numeric"},"month"),A=(P,G)=>Q?mv(K,P):H(G?{weekday:P}:{weekday:P,month:"long",day:"numeric"},"weekday"),R=(P)=>{let G=mK.macroTokenToFormatOpts(P);if(G)return this.formatWithSystemDefault(K,G);else return P},D=(P)=>Q?rv(K,P):H({era:P},"era"),F=(P)=>{switch(P){case"S":return this.num(K.millisecond);case"u":case"SSS":return this.num(K.millisecond,3);case"s":return this.num(K.second);case"ss":return this.num(K.second,2);case"uu":return this.num(Math.floor(K.millisecond/10),2);case"uuu":return this.num(Math.floor(K.millisecond/100));case"m":return this.num(K.minute);case"mm":return this.num(K.minute,2);case"h":return this.num(K.hour%12===0?12:K.hour%12);case"hh":return this.num(K.hour%12===0?12:K.hour%12,2);case"H":return this.num(K.hour);case"HH":return this.num(K.hour,2);case"Z":return Y({format:"narrow",allowZ:this.opts.allowZ});case"ZZ":return Y({format:"short",allowZ:this.opts.allowZ});case"ZZZ":return Y({format:"techie",allowZ:this.opts.allowZ});case"ZZZZ":return K.zone.offsetName(K.ts,{format:"short",locale:this.loc.locale});case"ZZZZZ":return K.zone.offsetName(K.ts,{format:"long",locale:this.loc.locale});case"z":return K.zoneName;case"a":return z();case"d":return U?H({day:"numeric"},"day"):this.num(K.day);case"dd":return U?H({day:"2-digit"},"day"):this.num(K.day,2);case"c":return this.num(K.weekday);case"ccc":return A("short",!0);case"cccc":return A("long",!0);case"ccccc":return A("narrow",!0);case"E":return this.num(K.weekday);case"EEE":return A("short",!1);case"EEEE":return A("long",!1);case"EEEEE":return A("narrow",!1);case"L":return U?H({month:"numeric",day:"numeric"},"month"):this.num(K.month);case"LL":return U?H({month:"2-digit",day:"numeric"},"month"):this.num(K.month,2);case"LLL":return M("short",!0);case"LLLL":return M("long",!0);case"LLLLL":return M("narrow",!0);case"M":return U?H({month:"numeric"},"month"):this.num(K.month);case"MM":return U?H({month:"2-digit"},"month"):this.num(K.month,2);case"MMM":return M("short",!1);case"MMMM":return M("long",!1);case"MMMMM":return M("narrow",!1);case"y":return U?H({year:"numeric"},"year"):this.num(K.year);case"yy":return U?H({year:"2-digit"},"year"):this.num(K.year.toString().slice(-2),2);case"yyyy":return U?H({year:"numeric"},"year"):this.num(K.year,4);case"yyyyyy":return U?H({year:"numeric"},"year"):this.num(K.year,6);case"G":return D("short");case"GG":return D("long");case"GGGGG":return D("narrow");case"kk":return this.num(K.weekYear.toString().slice(-2),2);case"kkkk":return this.num(K.weekYear,4);case"W":return this.num(K.weekNumber);case"WW":return this.num(K.weekNumber,2);case"n":return this.num(K.localWeekNumber);case"nn":return this.num(K.localWeekNumber,2);case"ii":return this.num(K.localWeekYear.toString().slice(-2),2);case"iiii":return this.num(K.localWeekYear,4);case"o":return this.num(K.ordinal);case"ooo":return this.num(K.ordinal,3);case"q":return this.num(K.quarter);case"qq":return this.num(K.quarter,2);case"X":return this.num(Math.floor(K.ts/1000));case"x":return this.num(K.ts);default:return R(P)}};return pA(mK.parseFormat(V),F)}formatDurationFromString(K,V){let Q=this.opts.signMode==="negativeLargestOnly"?-1:1,U=(R)=>{switch(R[0]){case"S":return"milliseconds";case"s":return"seconds";case"m":return"minutes";case"h":return"hours";case"d":return"days";case"w":return"weeks";case"M":return"months";case"y":return"years";default:return null}},H=(R,D)=>(F)=>{let P=U(F);if(P){let G=D.isNegativeDuration&&P!==D.largestUnit?Q:1,T;if(this.opts.signMode==="negativeLargestOnly"&&P!==D.largestUnit)T="never";else if(this.opts.signMode==="all")T="always";else T="auto";return this.num(R.get(P)*G,F.length,T)}else return F},Y=mK.parseFormat(V),z=Y.reduce((R,{literal:D,val:F})=>D?R:R.concat(F),[]),M=K.shiftTo(...z.map(U).filter((R)=>R)),A={isNegativeDuration:M<0,largestUnit:Object.keys(M.values)[0]};return pA(Y,H(M,A))}}var dR=/[A-Za-z_+-]{1,256}(?::?\/[A-Za-z0-9_+-]{1,256}(?:\/[A-Za-z0-9_+-]{1,256})?)?/;function yH(...K){let V=K.reduce((Q,U)=>Q+U.source,"");return RegExp(`^${V}$`)}function hH(...K){return(V)=>K.reduce(([Q,U,H],Y)=>{let[z,M,A]=Y(V,H);return[{...Q,...z},M||U,A]},[{},null,1]).slice(0,2)}function pH(K,...V){if(K==null)return[null,null];for(let[Q,U]of V){let H=Q.exec(K);if(H)return U(H)}return[null,null]}function sR(...K){return(V,Q)=>{let U={},H;for(H=0;HG!==void 0&&(T||G&&D)?-G:G;return[{years:P(lU(Q)),months:P(lU(U)),weeks:P(lU(H)),days:P(lU(Y)),hours:P(lU(z)),minutes:P(lU(M)),seconds:P(lU(A),A==="-0"),milliseconds:P(CO(R),F)}]}var Ok={GMT:0,EDT:-240,EST:-300,CDT:-300,CST:-360,MDT:-360,MST:-420,PDT:-420,PST:-480};function EO(K,V,Q,U,H,Y,z){let M={year:V.length===2?AO(YU(V)):YU(V),month:yR.indexOf(Q)+1,day:YU(U),hour:YU(H),minute:YU(Y)};if(z)M.second=YU(z);if(K)M.weekday=K.length>3?pR.indexOf(K)+1:cR.indexOf(K)+1;return M}var Mk=/^(?:(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\d)(\d\d)))$/;function Wk(K){let[,V,Q,U,H,Y,z,M,A,R,D,F]=K,P=EO(V,H,U,Q,Y,z,M),G;if(A)G=Ok[A];else if(R)G=0;else G=V6(D,F);return[P,new nK(G)]}function Xk(K){return K.replace(/\([^()]*\)|[\n\t]/g," ").replace(/(\s\s+)/g," ").trim()}var Ak=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\d\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\d{4}) (\d\d):(\d\d):(\d\d) GMT$/,Rk=/^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\d\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\d\d) (\d\d):(\d\d):(\d\d) GMT$/,$k=/^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \d|\d\d) (\d\d):(\d\d):(\d\d) (\d{4})$/;function cA(K){let[,V,Q,U,H,Y,z,M]=K;return[EO(V,H,U,Q,Y,z,M),nK.utcInstance]}function Fk(K){let[,V,Q,U,H,Y,z,M]=K;return[EO(V,M,Q,U,H,Y,z),nK.utcInstance]}var Dk=yH(ev,TO),Sk=yH(Kk,TO),Pk=yH(Vk,TO),Ck=yH(mR),rR=hH(Lk,cH,Kz,Vz),Ik=hH(Qk,cH,Kz,Vz),Gk=hH(Uk,cH,Kz,Vz),Tk=hH(cH,Kz,Vz);function Ek(K){return pH(K,[Dk,rR],[Sk,Ik],[Pk,Gk],[Ck,Tk])}function Bk(K){return pH(Xk(K),[Mk,Wk])}function Jk(K){return pH(K,[Ak,cA],[Rk,cA],[$k,Fk])}function vk(K){return pH(K,[Yk,qk])}var kk=hH(cH);function fk(K){return pH(K,[Zk,kk])}var wk=yH(Hk,zk),jk=yH(nR),xk=hH(cH,Kz,Vz);function _k(K){return pH(K,[wk,rR],[jk,xk])}var uA="Invalid Duration",iR={weeks:{days:7,hours:168,minutes:10080,seconds:604800,milliseconds:604800000},days:{hours:24,minutes:1440,seconds:86400,milliseconds:86400000},hours:{minutes:60,seconds:3600,milliseconds:3600000},minutes:{seconds:60,milliseconds:60000},seconds:{milliseconds:1000}},Nk={years:{quarters:4,months:12,weeks:52,days:365,hours:8760,minutes:525600,seconds:31536000,milliseconds:31536000000},quarters:{months:3,weeks:13,days:91,hours:2184,minutes:131040,seconds:7862400,milliseconds:7862400000},months:{weeks:4,days:30,hours:720,minutes:43200,seconds:2592000,milliseconds:2592000000},...iR},NV=365.2425,fH=30.436875,gk={years:{quarters:4,months:12,weeks:NV/7,days:NV,hours:NV*24,minutes:NV*24*60,seconds:NV*24*60*60,milliseconds:NV*24*60*60*1000},quarters:{months:3,weeks:NV/28,days:NV/4,hours:NV*24/4,minutes:NV*24*60/4,seconds:NV*24*60*60/4,milliseconds:NV*24*60*60*1000/4},months:{weeks:fH/7,days:fH,hours:fH*24,minutes:fH*24*60,seconds:fH*24*60*60,milliseconds:fH*24*60*60*1000},...iR},oU=["years","quarters","months","weeks","days","hours","minutes","seconds","milliseconds"],yk=oU.slice(0).reverse();function NQ(K,V,Q=!1){let U={values:Q?V.values:{...K.values,...V.values||{}},loc:K.loc.clone(V.loc),conversionAccuracy:V.conversionAccuracy||K.conversionAccuracy,matrix:V.matrix||K.matrix};return new S1(U)}function tR(K,V){let Q=V.milliseconds??0;for(let U of yk.slice(1))if(V[U])Q+=V[U]*K[U].milliseconds;return Q}function bA(K,V){let Q=tR(K,V)<0?-1:1;oU.reduceRight((U,H)=>{if(!O1(V[H])){if(U){let Y=V[U]*Q,z=K[H][U],M=Math.floor(Y/z);V[H]+=M*Q,V[U]-=M*z*Q}return H}else return U},null),oU.reduce((U,H)=>{if(!O1(V[H])){if(U){let Y=V[U]%1;V[U]-=Y,V[H]+=Y*K[U][H]}return H}else return U},null)}function lA(K){let V={};for(let[Q,U]of Object.entries(K))if(U!==0)V[Q]=U;return V}class S1{constructor(K){let V=K.conversionAccuracy==="longterm"||!1,Q=V?gk:Nk;if(K.matrix)Q=K.matrix;this.values=K.values,this.loc=K.loc||j1.create(),this.conversionAccuracy=V?"longterm":"casual",this.invalid=K.invalid||null,this.matrix=Q,this.isLuxonDuration=!0}static fromMillis(K,V){return S1.fromObject({milliseconds:K},V)}static fromObject(K,V={}){if(K==null||typeof K!=="object")throw new dK(`Duration.fromObject: argument expected to be an object, got ${K===null?"null":typeof K}`);return new S1({values:aL(K,S1.normalizeUnit),loc:j1.fromObject(V),conversionAccuracy:V.conversionAccuracy,matrix:V.matrix})}static fromDurationLike(K){if(OU(K))return S1.fromMillis(K);else if(S1.isDuration(K))return K;else if(typeof K==="object")return S1.fromObject(K);else throw new dK(`Unknown duration argument ${K} of type ${typeof K}`)}static fromISO(K,V){let[Q]=vk(K);if(Q)return S1.fromObject(Q,V);else return S1.invalid("unparsable",`the input "${K}" can't be parsed as ISO 8601`)}static fromISOTime(K,V){let[Q]=fk(K);if(Q)return S1.fromObject(Q,V);else return S1.invalid("unparsable",`the input "${K}" can't be parsed as ISO 8601`)}static invalid(K,V=null){if(!K)throw new dK("need to specify a reason the Duration is invalid");let Q=K instanceof gV?K:new gV(K,V);if(KK.throwOnInvalid)throw new QR(Q);else return new S1({invalid:Q})}static normalizeUnit(K){let V={year:"years",years:"years",quarter:"quarters",quarters:"quarters",month:"months",months:"months",week:"weeks",weeks:"weeks",day:"days",days:"days",hour:"hours",hours:"hours",minute:"minutes",minutes:"minutes",second:"seconds",seconds:"seconds",millisecond:"milliseconds",milliseconds:"milliseconds"}[K?K.toLowerCase():K];if(!V)throw new $O(K);return V}static isDuration(K){return K&&K.isLuxonDuration||!1}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}toFormat(K,V={}){let Q={...V,floor:V.round!==!1&&V.floor!==!1};return this.isValid?mK.create(this.loc,Q).formatDurationFromString(this,K):uA}toHuman(K={}){if(!this.isValid)return uA;let V=K.showZeros!==!1,Q=oU.map((U)=>{let H=this.values[U];if(O1(H)||H===0&&!V)return null;return this.loc.numberFormatter({style:"unit",unitDisplay:"long",...K,unit:U.slice(0,-1)}).format(H)}).filter((U)=>U);return this.loc.listFormatter({type:"conjunction",style:K.listStyle||"narrow",...K}).format(Q)}toObject(){if(!this.isValid)return{};return{...this.values}}toISO(){if(!this.isValid)return null;let K="P";if(this.years!==0)K+=this.years+"Y";if(this.months!==0||this.quarters!==0)K+=this.months+this.quarters*3+"M";if(this.weeks!==0)K+=this.weeks+"W";if(this.days!==0)K+=this.days+"D";if(this.hours!==0||this.minutes!==0||this.seconds!==0||this.milliseconds!==0)K+="T";if(this.hours!==0)K+=this.hours+"H";if(this.minutes!==0)K+=this.minutes+"M";if(this.seconds!==0||this.milliseconds!==0)K+=IO(this.seconds+this.milliseconds/1000,3)+"S";if(K==="P")K+="T0S";return K}toISOTime(K={}){if(!this.isValid)return null;let V=this.toMillis();if(V<0||V>=86400000)return null;return K={suppressMilliseconds:!1,suppressSeconds:!1,includePrefix:!1,format:"extended",...K,includeOffset:!1},L1.fromMillis(V,{zone:"UTC"}).toISOTime(K)}toJSON(){return this.toISO()}toString(){return this.toISO()}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`Duration { values: ${JSON.stringify(this.values)} }`;else return`Duration { Invalid, reason: ${this.invalidReason} }`}toMillis(){if(!this.isValid)return NaN;return tR(this.matrix,this.values)}valueOf(){return this.toMillis()}plus(K){if(!this.isValid)return this;let V=S1.fromDurationLike(K),Q={};for(let U of oU)if(gH(V.values,U)||gH(this.values,U))Q[U]=V.get(U)+this.get(U);return NQ(this,{values:Q},!0)}minus(K){if(!this.isValid)return this;let V=S1.fromDurationLike(K);return this.plus(V.negate())}mapUnits(K){if(!this.isValid)return this;let V={};for(let Q of Object.keys(this.values))V[Q]=gR(K(this.values[Q],Q));return NQ(this,{values:V},!0)}get(K){return this[S1.normalizeUnit(K)]}set(K){if(!this.isValid)return this;let V={...this.values,...aL(K,S1.normalizeUnit)};return NQ(this,{values:V})}reconfigure({locale:K,numberingSystem:V,conversionAccuracy:Q,matrix:U}={}){let Y={loc:this.loc.clone({locale:K,numberingSystem:V}),matrix:U,conversionAccuracy:Q};return NQ(this,Y)}as(K){return this.isValid?this.shiftTo(K).get(K):NaN}normalize(){if(!this.isValid)return this;let K=this.toObject();return bA(this.matrix,K),NQ(this,{values:K},!0)}rescale(){if(!this.isValid)return this;let K=lA(this.normalize().shiftToAll().toObject());return NQ(this,{values:K},!0)}shiftTo(...K){if(!this.isValid)return this;if(K.length===0)return this;K=K.map((Y)=>S1.normalizeUnit(Y));let V={},Q={},U=this.toObject(),H;for(let Y of oU)if(K.indexOf(Y)>=0){H=Y;let z=0;for(let A in Q)z+=this.matrix[A][Y]*Q[A],Q[A]=0;if(OU(U[Y]))z+=U[Y];let M=Math.trunc(z);V[Y]=M,Q[Y]=(z*1000-M*1000)/1000}else if(OU(U[Y]))Q[Y]=U[Y];for(let Y in Q)if(Q[Y]!==0)V[H]+=Y===H?Q[Y]:Q[Y]/this.matrix[H][Y];return bA(this.matrix,V),NQ(this,{values:V},!0)}shiftToAll(){if(!this.isValid)return this;return this.shiftTo("years","months","weeks","days","hours","minutes","seconds","milliseconds")}negate(){if(!this.isValid)return this;let K={};for(let V of Object.keys(this.values))K[V]=this.values[V]===0?0:-this.values[V];return NQ(this,{values:K},!0)}removeZeros(){if(!this.isValid)return this;let K=lA(this.values);return NQ(this,{values:K},!0)}get years(){return this.isValid?this.values.years||0:NaN}get quarters(){return this.isValid?this.values.quarters||0:NaN}get months(){return this.isValid?this.values.months||0:NaN}get weeks(){return this.isValid?this.values.weeks||0:NaN}get days(){return this.isValid?this.values.days||0:NaN}get hours(){return this.isValid?this.values.hours||0:NaN}get minutes(){return this.isValid?this.values.minutes||0:NaN}get seconds(){return this.isValid?this.values.seconds||0:NaN}get milliseconds(){return this.isValid?this.values.milliseconds||0:NaN}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}equals(K){if(!this.isValid||!K.isValid)return!1;if(!this.loc.equals(K.loc))return!1;function V(Q,U){if(Q===void 0||Q===0)return U===void 0||U===0;return Q===U}for(let Q of oU)if(!V(this.values[Q],K.values[Q]))return!1;return!0}}var wH="Invalid Interval";function hk(K,V){if(!K||!K.isValid)return $K.invalid("missing or invalid start");else if(!V||!V.isValid)return $K.invalid("missing or invalid end");else if(VK}isBefore(K){if(!this.isValid)return!1;return this.e<=K}contains(K){if(!this.isValid)return!1;return this.s<=K&&this.e>K}set({start:K,end:V}={}){if(!this.isValid)return this;return $K.fromDateTimes(K||this.s,V||this.e)}splitAt(...K){if(!this.isValid)return[];let V=K.map(o8).filter((Y)=>this.contains(Y)).sort((Y,z)=>Y.toMillis()-z.toMillis()),Q=[],{s:U}=this,H=0;while(U+this.e?this.e:Y;Q.push($K.fromDateTimes(U,z)),U=z,H+=1}return Q}splitBy(K){let V=S1.fromDurationLike(K);if(!this.isValid||!V.isValid||V.as("milliseconds")===0)return[];let{s:Q}=this,U=1,H,Y=[];while(QM*U));H=+z>+this.e?this.e:z,Y.push($K.fromDateTimes(Q,H)),Q=H,U+=1}return Y}divideEqually(K){if(!this.isValid)return[];return this.splitBy(this.length()/K).slice(0,K)}overlaps(K){return this.e>K.s&&this.s=K.e}equals(K){if(!this.isValid||!K.isValid)return!1;return this.s.equals(K.s)&&this.e.equals(K.e)}intersection(K){if(!this.isValid)return this;let V=this.s>K.s?this.s:K.s,Q=this.e=Q)return null;else return $K.fromDateTimes(V,Q)}union(K){if(!this.isValid)return this;let V=this.sK.e?this.e:K.e;return $K.fromDateTimes(V,Q)}static merge(K){let[V,Q]=K.sort((U,H)=>U.s-H.s).reduce(([U,H],Y)=>{if(!H)return[U,Y];else if(H.overlaps(Y)||H.abutsStart(Y))return[U,H.union(Y)];else return[U.concat([H]),Y]},[[],null]);if(Q)V.push(Q);return V}static xor(K){let V=null,Q=0,U=[],H=K.map((M)=>[{time:M.s,type:"s"},{time:M.e,type:"e"}]),Y=Array.prototype.concat(...H),z=Y.sort((M,A)=>M.time-A.time);for(let M of z)if(Q+=M.type==="s"?1:-1,Q===1)V=M.time;else{if(V&&+V!==+M.time)U.push($K.fromDateTimes(V,M.time));V=null}return $K.merge(U)}difference(...K){return $K.xor([this].concat(K)).map((V)=>this.intersection(V)).filter((V)=>V&&!V.isEmpty())}toString(){if(!this.isValid)return wH;return`[${this.s.toISO()} – ${this.e.toISO()})`}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;else return`Interval { Invalid, reason: ${this.invalidReason} }`}toLocaleString(K=rL,V={}){return this.isValid?mK.create(this.s.loc.clone(V),K).formatInterval(this):wH}toISO(K){if(!this.isValid)return wH;return`${this.s.toISO(K)}/${this.e.toISO(K)}`}toISODate(){if(!this.isValid)return wH;return`${this.s.toISODate()}/${this.e.toISODate()}`}toISOTime(K){if(!this.isValid)return wH;return`${this.s.toISOTime(K)}/${this.e.toISOTime(K)}`}toFormat(K,{separator:V=" – "}={}){if(!this.isValid)return wH;return`${this.s.toFormat(K)}${V}${this.e.toFormat(K)}`}toDuration(K,V){if(!this.isValid)return S1.invalid(this.invalidReason);return this.e.diff(this.s,K,V)}mapEndpoints(K){return $K.fromDateTimes(K(this.s),K(this.e))}}class xH{static hasDST(K=KK.defaultZone){let V=L1.now().setZone(K).set({month:12});return!K.isUniversal&&V.offset!==V.set({month:6}).offset}static isValidIANAZone(K){return DQ.isValidZone(K)}static normalizeZone(K){return qU(K,KK.defaultZone)}static getStartOfWeek({locale:K=null,locObj:V=null}={}){return(V||j1.create(K)).getStartOfWeek()}static getMinimumDaysInFirstWeek({locale:K=null,locObj:V=null}={}){return(V||j1.create(K)).getMinDaysInFirstWeek()}static getWeekendWeekdays({locale:K=null,locObj:V=null}={}){return(V||j1.create(K)).getWeekendDays().slice()}static months(K="long",{locale:V=null,numberingSystem:Q=null,locObj:U=null,outputCalendar:H="gregory"}={}){return(U||j1.create(V,Q,H)).months(K)}static monthsFormat(K="long",{locale:V=null,numberingSystem:Q=null,locObj:U=null,outputCalendar:H="gregory"}={}){return(U||j1.create(V,Q,H)).months(K,!0)}static weekdays(K="long",{locale:V=null,numberingSystem:Q=null,locObj:U=null}={}){return(U||j1.create(V,Q,null)).weekdays(K)}static weekdaysFormat(K="long",{locale:V=null,numberingSystem:Q=null,locObj:U=null}={}){return(U||j1.create(V,Q,null)).weekdays(K,!0)}static meridiems({locale:K=null}={}){return j1.create(K).meridiems()}static eras(K="short",{locale:V=null}={}){return j1.create(V,null,"gregory").eras(K)}static features(){return{relative:xR(),localeWeek:_R()}}}function dA(K,V){let Q=(H)=>H.toUTC(0,{keepLocalTime:!0}).startOf("day").valueOf(),U=Q(V)-Q(K);return Math.floor(S1.fromMillis(U).as("days"))}function pk(K,V,Q){let U=[["years",(A,R)=>R.year-A.year],["quarters",(A,R)=>R.quarter-A.quarter+(R.year-A.year)*4],["months",(A,R)=>R.month-A.month+(R.year-A.year)*12],["weeks",(A,R)=>{let D=dA(A,R);return(D-D%7)/7}],["days",dA]],H={},Y=K,z,M;for(let[A,R]of U)if(Q.indexOf(A)>=0)if(z=A,H[A]=R(K,V),M=Y.plus(H),M>V){if(H[A]--,K=Y.plus(H),K>V)M=K,H[A]--,K=Y.plus(H)}else K=M;return[K,H,M,z]}function ck(K,V,Q,U){let[H,Y,z,M]=pk(K,V,Q),A=V-H,R=Q.filter((F)=>["hours","minutes","seconds","milliseconds"].indexOf(F)>=0);if(R.length===0){if(z0)return S1.fromMillis(A,U).shiftTo(...R).plus(D);else return D}var uk="missing Intl.DateTimeFormat.formatToParts support";function J1(K,V=(Q)=>Q){return{regex:K,deser:([Q])=>V(wv(Q))}}var bk=String.fromCharCode(160),aR=`[ ${bk}]`,eR=new RegExp(aR,"g");function lk(K){return K.replace(/\./g,"\\.?").replace(eR,aR)}function sA(K){return K.replace(/\./g,"").replace(eR," ").toLowerCase()}function aV(K,V){if(K===null)return null;else return{regex:RegExp(K.map(lk).join("|")),deser:([Q])=>K.findIndex((U)=>sA(Q)===sA(U))+V}}function oA(K,V){return{regex:K,deser:([,Q,U])=>V6(Q,U),groups:V}}function lL(K){return{regex:K,deser:([V])=>V}}function dk(K){return K.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}function sk(K,V){let Q=tV(V),U=tV(V,"{2}"),H=tV(V,"{3}"),Y=tV(V,"{4}"),z=tV(V,"{6}"),M=tV(V,"{1,2}"),A=tV(V,"{1,3}"),R=tV(V,"{1,6}"),D=tV(V,"{1,9}"),F=tV(V,"{2,4}"),P=tV(V,"{4,6}"),G=(J)=>({regex:RegExp(dk(J.val)),deser:([k])=>k,literal:!0}),v=((J)=>{if(K.literal)return G(J);switch(J.val){case"G":return aV(V.eras("short"),0);case"GG":return aV(V.eras("long"),0);case"y":return J1(R);case"yy":return J1(F,AO);case"yyyy":return J1(Y);case"yyyyy":return J1(P);case"yyyyyy":return J1(z);case"M":return J1(M);case"MM":return J1(U);case"MMM":return aV(V.months("short",!0),1);case"MMMM":return aV(V.months("long",!0),1);case"L":return J1(M);case"LL":return J1(U);case"LLL":return aV(V.months("short",!1),1);case"LLLL":return aV(V.months("long",!1),1);case"d":return J1(M);case"dd":return J1(U);case"o":return J1(A);case"ooo":return J1(H);case"HH":return J1(U);case"H":return J1(M);case"hh":return J1(U);case"h":return J1(M);case"mm":return J1(U);case"m":return J1(M);case"q":return J1(M);case"qq":return J1(U);case"s":return J1(M);case"ss":return J1(U);case"S":return J1(A);case"SSS":return J1(H);case"u":return lL(D);case"uu":return lL(M);case"uuu":return J1(Q);case"a":return aV(V.meridiems(),0);case"kkkk":return J1(Y);case"kk":return J1(F,AO);case"W":return J1(M);case"WW":return J1(U);case"E":case"c":return J1(Q);case"EEE":return aV(V.weekdays("short",!1),1);case"EEEE":return aV(V.weekdays("long",!1),1);case"ccc":return aV(V.weekdays("short",!0),1);case"cccc":return aV(V.weekdays("long",!0),1);case"Z":case"ZZ":return oA(new RegExp(`([+-]${M.source})(?::(${U.source}))?`),2);case"ZZZ":return oA(new RegExp(`([+-]${M.source})(${U.source})?`),2);case"z":return lL(/[a-z_+-/]{1,256}?/i);case" ":return lL(/[^\S\n\r]/);default:return G(J)}})(K)||{invalidReason:uk};return v.token=K,v}var ok={year:{"2-digit":"yy",numeric:"yyyyy"},month:{numeric:"M","2-digit":"MM",short:"MMM",long:"MMMM"},day:{numeric:"d","2-digit":"dd"},weekday:{short:"EEE",long:"EEEE"},dayperiod:"a",dayPeriod:"a",hour12:{numeric:"h","2-digit":"hh"},hour24:{numeric:"H","2-digit":"HH"},minute:{numeric:"m","2-digit":"mm"},second:{numeric:"s","2-digit":"ss"},timeZoneName:{long:"ZZZZZ",short:"ZZZ"}};function mk(K,V,Q){let{type:U,value:H}=K;if(U==="literal"){let A=/^\s+$/.test(H);return{literal:!A,val:A?" ":H}}let Y=V[U],z=U;if(U==="hour")if(V.hour12!=null)z=V.hour12?"hour12":"hour24";else if(V.hourCycle!=null)if(V.hourCycle==="h11"||V.hourCycle==="h12")z="hour12";else z="hour24";else z=Q.hour12?"hour12":"hour24";let M=ok[z];if(typeof M==="object")M=M[Y];if(M)return{literal:!1,val:M};return}function nk(K){return[`^${K.map((Q)=>Q.regex).reduce((Q,U)=>`${Q}(${U.source})`,"")}$`,K]}function rk(K,V,Q){let U=K.match(V);if(U){let H={},Y=1;for(let z in Q)if(gH(Q,z)){let M=Q[z],A=M.groups?M.groups+1:1;if(!M.literal&&M.token)H[M.token.val[0]]=M.deser(U.slice(Y,Y+A));Y+=A}return[U,H]}else return[U,{}]}function ik(K){let V=(Y)=>{switch(Y){case"S":return"millisecond";case"s":return"second";case"m":return"minute";case"h":case"H":return"hour";case"d":return"day";case"o":return"ordinal";case"L":case"M":return"month";case"y":return"year";case"E":case"c":return"weekday";case"W":return"weekNumber";case"k":return"weekYear";case"q":return"quarter";default:return null}},Q=null,U;if(!O1(K.z))Q=DQ.create(K.z);if(!O1(K.Z)){if(!Q)Q=new nK(K.Z);U=K.Z}if(!O1(K.q))K.M=(K.q-1)*3+1;if(!O1(K.h)){if(K.h<12&&K.a===1)K.h+=12;else if(K.h===12&&K.a===0)K.h=0}if(K.G===0&&K.y)K.y=-K.y;if(!O1(K.u))K.S=CO(K.u);return[Object.keys(K).reduce((Y,z)=>{let M=V(z);if(M)Y[M]=K[z];return Y},{}),Q,U]}var KO=null;function tk(){if(!KO)KO=L1.fromMillis(1555555555555);return KO}function ak(K,V){if(K.literal)return K;let Q=mK.macroTokenToFormatOpts(K.val),U=Q$(Q,V);if(U==null||U.includes(void 0))return K;return U}function K$(K,V){return Array.prototype.concat(...K.map((Q)=>ak(Q,V)))}class BO{constructor(K,V){if(this.locale=K,this.format=V,this.tokens=K$(mK.parseFormat(V),K),this.units=this.tokens.map((Q)=>sk(Q,K)),this.disqualifyingUnit=this.units.find((Q)=>Q.invalidReason),!this.disqualifyingUnit){let[Q,U]=nk(this.units);this.regex=RegExp(Q,"i"),this.handlers=U}}explainFromTokens(K){if(!this.isValid)return{input:K,tokens:this.tokens,invalidReason:this.invalidReason};else{let[V,Q]=rk(K,this.regex,this.handlers),[U,H,Y]=Q?ik(Q):[null,null,void 0];if(gH(Q,"a")&&gH(Q,"H"))throw new sU("Can't include meridiem when specifying 24-hour format");return{input:K,tokens:this.tokens,regex:this.regex,rawMatches:V,matches:Q,result:U,zone:H,specificOffset:Y}}}get isValid(){return!this.disqualifyingUnit}get invalidReason(){return this.disqualifyingUnit?this.disqualifyingUnit.invalidReason:null}}function V$(K,V,Q){return new BO(K,Q).explainFromTokens(V)}function ek(K,V,Q){let{result:U,zone:H,specificOffset:Y,invalidReason:z}=V$(K,V,Q);return[U,H,Y,z]}function Q$(K,V){if(!K)return null;let U=mK.create(V,K).dtFormatter(tk()),H=U.formatToParts(),Y=U.resolvedOptions();return H.map((z)=>mk(z,K,Y))}var VO="Invalid DateTime",mA=8640000000000000;function n8(K){return new gV("unsupported zone",`the zone "${K.name}" is not supported`)}function QO(K){if(K.weekData===null)K.weekData=iL(K.c);return K.weekData}function UO(K){if(K.localWeekData===null)K.localWeekData=iL(K.c,K.loc.getMinDaysInFirstWeek(),K.loc.getStartOfWeek());return K.localWeekData}function dU(K,V){let Q={ts:K.ts,zone:K.zone,c:K.c,o:K.o,loc:K.loc,invalid:K.invalid};return new L1({...Q,...V,old:Q})}function U$(K,V,Q){let U=K-V*60*1000,H=Q.offset(U);if(V===H)return[U,V];U-=(H-V)*60*1000;let Y=Q.offset(U);if(H===Y)return[U,H];return[K-Math.min(H,Y)*60*1000,Math.max(H,Y)]}function dL(K,V){K+=V*60*1000;let Q=new Date(K);return{year:Q.getUTCFullYear(),month:Q.getUTCMonth()+1,day:Q.getUTCDate(),hour:Q.getUTCHours(),minute:Q.getUTCMinutes(),second:Q.getUTCSeconds(),millisecond:Q.getUTCMilliseconds()}}function oL(K,V,Q){return U$(K6(K),V,Q)}function nA(K,V){let Q=K.o,U=K.c.year+Math.trunc(V.years),H=K.c.month+Math.trunc(V.months)+Math.trunc(V.quarters)*3,Y={...K.c,year:U,month:H,day:Math.min(K.c.day,tL(U,H))+Math.trunc(V.days)+Math.trunc(V.weeks)*7},z=S1.fromObject({years:V.years-Math.trunc(V.years),quarters:V.quarters-Math.trunc(V.quarters),months:V.months-Math.trunc(V.months),weeks:V.weeks-Math.trunc(V.weeks),days:V.days-Math.trunc(V.days),hours:V.hours,minutes:V.minutes,seconds:V.seconds,milliseconds:V.milliseconds}).as("milliseconds"),M=K6(Y),[A,R]=U$(M,Q,K.zone);if(z!==0)A+=z,R=K.zone.offset(A);return{ts:A,o:R}}function jH(K,V,Q,U,H,Y){let{setZone:z,zone:M}=Q;if(K&&Object.keys(K).length!==0||V){let A=V||M,R=L1.fromObject(K,{...Q,zone:A,specificOffset:Y});return z?R:R.setZone(M)}else return L1.invalid(new gV("unparsable",`the input "${H}" can't be parsed as ${U}`))}function sL(K,V,Q=!0){return K.isValid?mK.create(j1.create("en-US"),{allowZ:Q,forceSimple:!0}).formatDateTimeFromString(K,V):null}function HO(K,V,Q){let U=K.c.year>9999||K.c.year<0,H="";if(U&&K.c.year>=0)H+="+";if(H+=vK(K.c.year,U?6:4),Q==="year")return H;if(V){if(H+="-",H+=vK(K.c.month),Q==="month")return H;H+="-"}else if(H+=vK(K.c.month),Q==="month")return H;return H+=vK(K.c.day),H}function rA(K,V,Q,U,H,Y,z){let M=!Q||K.c.millisecond!==0||K.c.second!==0,A="";switch(z){case"day":case"month":case"year":break;default:if(A+=vK(K.c.hour),z==="hour")break;if(V){if(A+=":",A+=vK(K.c.minute),z==="minute")break;if(M)A+=":",A+=vK(K.c.second)}else{if(A+=vK(K.c.minute),z==="minute")break;if(M)A+=vK(K.c.second)}if(z==="second")break;if(M&&(!U||K.c.millisecond!==0))A+=".",A+=vK(K.c.millisecond,3)}if(H)if(K.isOffsetFixed&&K.offset===0&&!Y)A+="Z";else if(K.o<0)A+="-",A+=vK(Math.trunc(-K.o/60)),A+=":",A+=vK(Math.trunc(-K.o%60));else A+="+",A+=vK(Math.trunc(K.o/60)),A+=":",A+=vK(Math.trunc(K.o%60));if(Y)A+="["+K.zone.ianaName+"]";return A}var H$={month:1,day:1,hour:0,minute:0,second:0,millisecond:0},Kf={weekNumber:1,weekday:1,hour:0,minute:0,second:0,millisecond:0},Vf={ordinal:1,hour:0,minute:0,second:0,millisecond:0},mL=["year","month","day","hour","minute","second","millisecond"],Qf=["weekYear","weekNumber","weekday","hour","minute","second","millisecond"],Uf=["year","ordinal","hour","minute","second","millisecond"];function nL(K){let V={year:"year",years:"year",month:"month",months:"month",day:"day",days:"day",hour:"hour",hours:"hour",minute:"minute",minutes:"minute",quarter:"quarter",quarters:"quarter",second:"second",seconds:"second",millisecond:"millisecond",milliseconds:"millisecond",weekday:"weekday",weekdays:"weekday",weeknumber:"weekNumber",weeksnumber:"weekNumber",weeknumbers:"weekNumber",weekyear:"weekYear",weekyears:"weekYear",ordinal:"ordinal"}[K.toLowerCase()];if(!V)throw new $O(K);return V}function iA(K){switch(K.toLowerCase()){case"localweekday":case"localweekdays":return"localWeekday";case"localweeknumber":case"localweeknumbers":return"localWeekNumber";case"localweekyear":case"localweekyears":return"localWeekYear";default:return nL(K)}}function Hf(K){if(r8===void 0)r8=KK.now();if(K.type!=="iana")return K.offset(r8);let V=K.name,Q=RO.get(V);if(Q===void 0)Q=K.offset(r8),RO.set(V,Q);return Q}function tA(K,V){let Q=qU(V.zone,KK.defaultZone);if(!Q.isValid)return L1.invalid(n8(Q));let U=j1.fromObject(V),H,Y;if(!O1(K.year)){for(let A of mL)if(O1(K[A]))K[A]=H$[A];let z=wR(K)||jR(K);if(z)return L1.invalid(z);let M=Hf(Q);[H,Y]=oL(K,M,Q)}else H=KK.now();return new L1({ts:H,zone:Q,loc:U,o:Y})}function aA(K,V,Q){let U=O1(Q.round)?!0:Q.round,H=O1(Q.rounding)?"trunc":Q.rounding,Y=(M,A)=>{return M=IO(M,U||Q.calendary?0:2,Q.calendary?"round":H),V.loc.clone(Q).relFormatter(Q).format(M,A)},z=(M)=>{if(Q.calendary)if(!V.hasSame(K,M))return V.startOf(M).diff(K.startOf(M),M).get(M);else return 0;else return V.diff(K,M).get(M)};if(Q.unit)return Y(z(Q.unit),Q.unit);for(let M of Q.units){let A=z(M);if(Math.abs(A)>=1)return Y(A,M)}return Y(K>V?-0:0,Q.units[Q.units.length-1])}function eA(K){let V={},Q;if(K.length>0&&typeof K[K.length-1]==="object")V=K[K.length-1],Q=Array.from(K).slice(0,K.length-1);else Q=Array.from(K);return[V,Q]}var r8,RO=new Map;class L1{constructor(K){let V=K.zone||KK.defaultZone,Q=K.invalid||(Number.isNaN(K.ts)?new gV("invalid input"):null)||(!V.isValid?n8(V):null);this.ts=O1(K.ts)?KK.now():K.ts;let U=null,H=null;if(!Q)if(K.old&&K.old.ts===this.ts&&K.old.zone.equals(V))[U,H]=[K.old.c,K.old.o];else{let z=OU(K.o)&&!K.old?K.o:V.offset(this.ts);U=dL(this.ts,z),Q=Number.isNaN(U.year)?new gV("invalid input"):null,U=Q?null:U,H=Q?null:z}this._zone=V,this.loc=K.loc||j1.create(),this.invalid=Q,this.weekData=null,this.localWeekData=null,this.c=U,this.o=H,this.isLuxonDateTime=!0}static now(){return new L1({})}static local(){let[K,V]=eA(arguments),[Q,U,H,Y,z,M,A]=V;return tA({year:Q,month:U,day:H,hour:Y,minute:z,second:M,millisecond:A},K)}static utc(){let[K,V]=eA(arguments),[Q,U,H,Y,z,M,A]=V;return K.zone=nK.utcInstance,tA({year:Q,month:U,day:H,hour:Y,minute:z,second:M,millisecond:A},K)}static fromJSDate(K,V={}){let Q=gv(K)?K.valueOf():NaN;if(Number.isNaN(Q))return L1.invalid("invalid input");let U=qU(V.zone,KK.defaultZone);if(!U.isValid)return L1.invalid(n8(U));return new L1({ts:Q,zone:U,loc:j1.fromObject(V)})}static fromMillis(K,V={}){if(!OU(K))throw new dK(`fromMillis requires a numerical input, but received a ${typeof K} with value ${K}`);else if(K<-mA||K>mA)return L1.invalid("Timestamp out of range");else return new L1({ts:K,zone:qU(V.zone,KK.defaultZone),loc:j1.fromObject(V)})}static fromSeconds(K,V={}){if(!OU(K))throw new dK("fromSeconds requires a numerical input");else return new L1({ts:K*1000,zone:qU(V.zone,KK.defaultZone),loc:j1.fromObject(V)})}static fromObject(K,V={}){K=K||{};let Q=qU(V.zone,KK.defaultZone);if(!Q.isValid)return L1.invalid(n8(Q));let U=j1.fromObject(V),H=aL(K,iA),{minDaysInFirstWeek:Y,startOfWeek:z}=gA(H,U),M=KK.now(),A=!O1(V.specificOffset)?V.specificOffset:Q.offset(M),R=!O1(H.ordinal),D=!O1(H.year),F=!O1(H.month)||!O1(H.day),P=D||F,G=H.weekYear||H.weekNumber;if((P||R)&&G)throw new sU("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(F&&R)throw new sU("Can't mix ordinal dates with month/day");let T=G||H.weekday&&!P,v,J,k=dL(M,A);if(T)v=Qf,J=Kf,k=iL(k,Y,z);else if(R)v=Uf,J=Vf,k=e2(k);else v=mL,J=H$;let f=!1;for(let L0 of v){let s=H[L0];if(!O1(s))f=!0;else if(f)H[L0]=J[L0];else H[L0]=k[L0]}let j=T?xv(H,Y,z):R?_v(H):wR(H),_=j||jR(H);if(_)return L1.invalid(_);let p=T?_A(H,Y,z):R?NA(H):H,[N,m]=oL(p,A,Q),z0=new L1({ts:N,zone:Q,o:m,loc:U});if(H.weekday&&P&&K.weekday!==z0.weekday)return L1.invalid("mismatched weekday",`you can't specify both a weekday of ${H.weekday} and a date of ${z0.toISO()}`);if(!z0.isValid)return L1.invalid(z0.invalid);return z0}static fromISO(K,V={}){let[Q,U]=Ek(K);return jH(Q,U,V,"ISO 8601",K)}static fromRFC2822(K,V={}){let[Q,U]=Bk(K);return jH(Q,U,V,"RFC 2822",K)}static fromHTTP(K,V={}){let[Q,U]=Jk(K);return jH(Q,U,V,"HTTP",V)}static fromFormat(K,V,Q={}){if(O1(K)||O1(V))throw new dK("fromFormat requires an input string and a format");let{locale:U=null,numberingSystem:H=null}=Q,Y=j1.fromOpts({locale:U,numberingSystem:H,defaultToEN:!0}),[z,M,A,R]=ek(Y,K,V);if(R)return L1.invalid(R);else return jH(z,M,Q,`format ${V}`,K,A)}static fromString(K,V,Q={}){return L1.fromFormat(K,V,Q)}static fromSQL(K,V={}){let[Q,U]=_k(K);return jH(Q,U,V,"SQL",K)}static invalid(K,V=null){if(!K)throw new dK("need to specify a reason the DateTime is invalid");let Q=K instanceof gV?K:new gV(K,V);if(KK.throwOnInvalid)throw new KR(Q);else return new L1({invalid:Q})}static isDateTime(K){return K&&K.isLuxonDateTime||!1}static parseFormatForOpts(K,V={}){let Q=Q$(K,j1.fromObject(V));return!Q?null:Q.map((U)=>U?U.val:null).join("")}static expandFormat(K,V={}){return K$(mK.parseFormat(K),j1.fromObject(V)).map((U)=>U.val).join("")}static resetCache(){r8=void 0,RO.clear()}get(K){return this[K]}get isValid(){return this.invalid===null}get invalidReason(){return this.invalid?this.invalid.reason:null}get invalidExplanation(){return this.invalid?this.invalid.explanation:null}get locale(){return this.isValid?this.loc.locale:null}get numberingSystem(){return this.isValid?this.loc.numberingSystem:null}get outputCalendar(){return this.isValid?this.loc.outputCalendar:null}get zone(){return this._zone}get zoneName(){return this.isValid?this.zone.name:null}get year(){return this.isValid?this.c.year:NaN}get quarter(){return this.isValid?Math.ceil(this.c.month/3):NaN}get month(){return this.isValid?this.c.month:NaN}get day(){return this.isValid?this.c.day:NaN}get hour(){return this.isValid?this.c.hour:NaN}get minute(){return this.isValid?this.c.minute:NaN}get second(){return this.isValid?this.c.second:NaN}get millisecond(){return this.isValid?this.c.millisecond:NaN}get weekYear(){return this.isValid?QO(this).weekYear:NaN}get weekNumber(){return this.isValid?QO(this).weekNumber:NaN}get weekday(){return this.isValid?QO(this).weekday:NaN}get isWeekend(){return this.isValid&&this.loc.getWeekendDays().includes(this.weekday)}get localWeekday(){return this.isValid?UO(this).weekday:NaN}get localWeekNumber(){return this.isValid?UO(this).weekNumber:NaN}get localWeekYear(){return this.isValid?UO(this).weekYear:NaN}get ordinal(){return this.isValid?e2(this.c).ordinal:NaN}get monthShort(){return this.isValid?xH.months("short",{locObj:this.loc})[this.month-1]:null}get monthLong(){return this.isValid?xH.months("long",{locObj:this.loc})[this.month-1]:null}get weekdayShort(){return this.isValid?xH.weekdays("short",{locObj:this.loc})[this.weekday-1]:null}get weekdayLong(){return this.isValid?xH.weekdays("long",{locObj:this.loc})[this.weekday-1]:null}get offset(){return this.isValid?+this.o:NaN}get offsetNameShort(){if(this.isValid)return this.zone.offsetName(this.ts,{format:"short",locale:this.locale});else return null}get offsetNameLong(){if(this.isValid)return this.zone.offsetName(this.ts,{format:"long",locale:this.locale});else return null}get isOffsetFixed(){return this.isValid?this.zone.isUniversal:null}get isInDST(){if(this.isOffsetFixed)return!1;else return this.offset>this.set({month:1,day:1}).offset||this.offset>this.set({month:5}).offset}getPossibleOffsets(){if(!this.isValid||this.isOffsetFixed)return[this];let K=86400000,V=60000,Q=K6(this.c),U=this.zone.offset(Q-K),H=this.zone.offset(Q+K),Y=this.zone.offset(Q-U*V),z=this.zone.offset(Q-H*V);if(Y===z)return[this];let M=Q-Y*V,A=Q-z*V,R=dL(M,Y),D=dL(A,z);if(R.hour===D.hour&&R.minute===D.minute&&R.second===D.second&&R.millisecond===D.millisecond)return[dU(this,{ts:M}),dU(this,{ts:A})];return[this]}get isInLeapYear(){return e8(this.year)}get daysInMonth(){return tL(this.year,this.month)}get daysInYear(){return this.isValid?_H(this.year):NaN}get weeksInWeekYear(){return this.isValid?t8(this.weekYear):NaN}get weeksInLocalWeekYear(){return this.isValid?t8(this.localWeekYear,this.loc.getMinDaysInFirstWeek(),this.loc.getStartOfWeek()):NaN}resolvedLocaleOptions(K={}){let{locale:V,numberingSystem:Q,calendar:U}=mK.create(this.loc.clone(K),K).resolvedOptions(this);return{locale:V,numberingSystem:Q,outputCalendar:U}}toUTC(K=0,V={}){return this.setZone(nK.instance(K),V)}toLocal(){return this.setZone(KK.defaultZone)}setZone(K,{keepLocalTime:V=!1,keepCalendarTime:Q=!1}={}){if(K=qU(K,KK.defaultZone),K.equals(this.zone))return this;else if(!K.isValid)return L1.invalid(n8(K));else{let U=this.ts;if(V||Q){let H=K.offset(this.ts),Y=this.toObject();[U]=oL(Y,H,K)}return dU(this,{ts:U,zone:K})}}reconfigure({locale:K,numberingSystem:V,outputCalendar:Q}={}){let U=this.loc.clone({locale:K,numberingSystem:V,outputCalendar:Q});return dU(this,{loc:U})}setLocale(K){return this.reconfigure({locale:K})}set(K){if(!this.isValid)return this;let V=aL(K,iA),{minDaysInFirstWeek:Q,startOfWeek:U}=gA(V,this.loc),H=!O1(V.weekYear)||!O1(V.weekNumber)||!O1(V.weekday),Y=!O1(V.ordinal),z=!O1(V.year),M=!O1(V.month)||!O1(V.day),A=z||M,R=V.weekYear||V.weekNumber;if((A||Y)&&R)throw new sU("Can't mix weekYear/weekNumber units with year/month/day or ordinals");if(M&&Y)throw new sU("Can't mix ordinal dates with month/day");let D;if(H)D=_A({...iL(this.c,Q,U),...V},Q,U);else if(!O1(V.ordinal))D=NA({...e2(this.c),...V});else if(D={...this.toObject(),...V},O1(V.day))D.day=Math.min(tL(D.year,D.month),D.day);let[F,P]=oL(D,this.o,this.zone);return dU(this,{ts:F,o:P})}plus(K){if(!this.isValid)return this;let V=S1.fromDurationLike(K);return dU(this,nA(this,V))}minus(K){if(!this.isValid)return this;let V=S1.fromDurationLike(K).negate();return dU(this,nA(this,V))}startOf(K,{useLocaleWeeks:V=!1}={}){if(!this.isValid)return this;let Q={},U=S1.normalizeUnit(K);switch(U){case"years":Q.month=1;case"quarters":case"months":Q.day=1;case"weeks":case"days":Q.hour=0;case"hours":Q.minute=0;case"minutes":Q.second=0;case"seconds":Q.millisecond=0;break}if(U==="weeks")if(V){let H=this.loc.getStartOfWeek(),{weekday:Y}=this;if(Y=3)M+="T";return M+=rA(this,z,V,Q,U,H,Y),M}toISODate({format:K="extended",precision:V="day"}={}){if(!this.isValid)return null;return HO(this,K==="extended",nL(V))}toISOWeekDate(){return sL(this,"kkkk-'W'WW-c")}toISOTime({suppressMilliseconds:K=!1,suppressSeconds:V=!1,includeOffset:Q=!0,includePrefix:U=!1,extendedZone:H=!1,format:Y="extended",precision:z="milliseconds"}={}){if(!this.isValid)return null;return z=nL(z),(U&&mL.indexOf(z)>=3?"T":"")+rA(this,Y==="extended",V,K,Q,H,z)}toRFC2822(){return sL(this,"EEE, dd LLL yyyy HH:mm:ss ZZZ",!1)}toHTTP(){return sL(this.toUTC(),"EEE, dd LLL yyyy HH:mm:ss 'GMT'")}toSQLDate(){if(!this.isValid)return null;return HO(this,!0)}toSQLTime({includeOffset:K=!0,includeZone:V=!1,includeOffsetSpace:Q=!0}={}){let U="HH:mm:ss.SSS";if(V||K){if(Q)U+=" ";if(V)U+="z";else if(K)U+="ZZ"}return sL(this,U,!0)}toSQL(K={}){if(!this.isValid)return null;return`${this.toSQLDate()} ${this.toSQLTime(K)}`}toString(){return this.isValid?this.toISO():VO}[Symbol.for("nodejs.util.inspect.custom")](){if(this.isValid)return`DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;else return`DateTime { Invalid, reason: ${this.invalidReason} }`}valueOf(){return this.toMillis()}toMillis(){return this.isValid?this.ts:NaN}toSeconds(){return this.isValid?this.ts/1000:NaN}toUnixInteger(){return this.isValid?Math.floor(this.ts/1000):NaN}toJSON(){return this.toISO()}toBSON(){return this.toJSDate()}toObject(K={}){if(!this.isValid)return{};let V={...this.c};if(K.includeConfig)V.outputCalendar=this.outputCalendar,V.numberingSystem=this.loc.numberingSystem,V.locale=this.loc.locale;return V}toJSDate(){return new Date(this.isValid?this.ts:NaN)}diff(K,V="milliseconds",Q={}){if(!this.isValid||!K.isValid)return S1.invalid("created by diffing an invalid DateTime");let U={locale:this.locale,numberingSystem:this.numberingSystem,...Q},H=yv(V).map(S1.normalizeUnit),Y=K.valueOf()>this.valueOf(),z=Y?this:K,M=Y?K:this,A=ck(z,M,H,U);return Y?A.negate():A}diffNow(K="milliseconds",V={}){return this.diff(L1.now(),K,V)}until(K){return this.isValid?$K.fromDateTimes(this,K):this}hasSame(K,V,Q){if(!this.isValid)return!1;let U=K.valueOf(),H=this.setZone(K.zone,{keepLocalTime:!0});return H.startOf(V,Q)<=U&&U<=H.endOf(V,Q)}equals(K){return this.isValid&&K.isValid&&this.valueOf()===K.valueOf()&&this.zone.equals(K.zone)&&this.loc.equals(K.loc)}toRelative(K={}){if(!this.isValid)return null;let V=K.base||L1.fromObject({},{zone:this.zone}),Q=K.padding?thisV.valueOf(),Math.min)}static max(...K){if(!K.every(L1.isDateTime))throw new dK("max requires all arguments be DateTimes");return yA(K,(V)=>V.valueOf(),Math.max)}static fromFormatExplain(K,V,Q={}){let{locale:U=null,numberingSystem:H=null}=Q,Y=j1.fromOpts({locale:U,numberingSystem:H,defaultToEN:!0});return V$(Y,K,V)}static fromStringExplain(K,V,Q={}){return L1.fromFormatExplain(K,V,Q)}static buildFormatParser(K,V={}){let{locale:Q=null,numberingSystem:U=null}=V,H=j1.fromOpts({locale:Q,numberingSystem:U,defaultToEN:!0});return new BO(H,K)}static fromFormatParser(K,V,Q={}){if(O1(K)||O1(V))throw new dK("fromFormatParser requires an input string and a format parser");let{locale:U=null,numberingSystem:H=null}=Q,Y=j1.fromOpts({locale:U,numberingSystem:H,defaultToEN:!0});if(!Y.equals(V.locale))throw new dK(`fromFormatParser called with a locale of ${Y}, but the format parser was created for ${V.locale}`);let{result:z,zone:M,specificOffset:A,invalidReason:R}=V.explainFromTokens(K);if(R)return L1.invalid(R);else return jH(z,M,Q,`format ${V.format}`,K,A)}static get DATE_SHORT(){return rL}static get DATE_MED(){return UR}static get DATE_MED_WITH_WEEKDAY(){return Av}static get DATE_FULL(){return HR}static get DATE_HUGE(){return zR}static get TIME_SIMPLE(){return LR}static get TIME_WITH_SECONDS(){return ZR}static get TIME_WITH_SHORT_OFFSET(){return YR}static get TIME_WITH_LONG_OFFSET(){return qR}static get TIME_24_SIMPLE(){return OR}static get TIME_24_WITH_SECONDS(){return MR}static get TIME_24_WITH_SHORT_OFFSET(){return WR}static get TIME_24_WITH_LONG_OFFSET(){return XR}static get DATETIME_SHORT(){return AR}static get DATETIME_SHORT_WITH_SECONDS(){return RR}static get DATETIME_MED(){return $R}static get DATETIME_MED_WITH_SECONDS(){return FR}static get DATETIME_MED_WITH_WEEKDAY(){return Rv}static get DATETIME_FULL(){return DR}static get DATETIME_FULL_WITH_SECONDS(){return SR}static get DATETIME_HUGE(){return PR}static get DATETIME_HUGE_WITH_SECONDS(){return CR}}function o8(K){if(L1.isDateTime(K))return K;else if(K&&K.valueOf&&OU(K.valueOf()))return L1.fromJSDate(K);else if(K&&typeof K==="object")return L1.fromObject(K);else throw new dK(`Unknown datetime argument: ${K}, of type ${typeof K}`)}var zf="3.7.2";var Lf=Object.defineProperty,Zf=(K,V)=>{for(var Q in V)Lf(K,Q,{get:V[Q],enumerable:!0,configurable:!0,set:(U)=>V[Q]=()=>U})},GV=globalThis,G1=(K)=>{if(!GV.emitLitDebugLogEvents)return;GV.dispatchEvent(new CustomEvent("lit-debug",{detail:K}))},Yf=0,Hz;GV.litIssuedWarnings??=new Set,Hz=(K,V)=>{if(V+=K?` See https://lit.dev/msg/${K} for more information.`:"",!GV.litIssuedWarnings.has(V)&&!GV.litIssuedWarnings.has(K))console.warn(V),GV.litIssuedWarnings.add(V)},queueMicrotask(()=>{Hz("dev-mode","Lit is in dev mode. Not recommended for production!")});var KQ=GV.ShadyDOM?.inUse&&GV.ShadyDOM?.noPatch===!0?GV.ShadyDOM.wrap:(K)=>K,U6=GV.trustedTypes,L$=U6?U6.createPolicy("lit-html",{createHTML:(K)=>K}):void 0,qf=(K)=>K,Z6=(K,V,Q)=>qf,Of=(K)=>{if(tU!==Z6)throw Error("Attempted to overwrite existing lit-html security policy. setSanitizeDOMValueFactory should be called at most once.");tU=K},Mf=()=>{tU=Z6},wO=(K,V,Q)=>{return tU(K,V,Q)},X$="$lit$",yQ=`lit$${Math.random().toFixed(9).slice(2)}$`,A$="?"+yQ,Wf=`<${A$}>`,iU=document,zz=()=>iU.createComment(""),Lz=(K)=>K===null||typeof K!="object"&&typeof K!="function",jO=Array.isArray,Xf=(K)=>jO(K)||typeof K?.[Symbol.iterator]==="function",JO=`[ +\f\r]`,Af=`[^ +\f\r"'\`<>=]`,Rf=`[^\\s"'>=/]`,Qz=/<(?:(!--|\/[^a-zA-Z])|(\/?[a-zA-Z][^>\s]*)|(\/?$))/g,Z$=1,vO=2,$f=3,Y$=/-->/g,q$=/>/g,nU=new RegExp(`>|${JO}(?:(${Rf}+)(${JO}*=${JO}*(?:${Af}|("|')|))|$)`,"g"),Ff=0,O$=1,Df=2,M$=3,kO=/'/g,fO=/"/g,R$=/^(?:script|style|textarea|title)$/i,Sf=1,H6=2,z6=3,xO=1,L6=2,Pf=3,Cf=4,If=5,_O=6,Gf=7,NO=(K)=>(V,...Q)=>{if(V.some((U)=>U===void 0))console.warn(`Some template strings are undefined. +This is probably caused by illegal octal escape sequences.`);if(Q.some((U)=>U?._$litStatic$))Hz("",`Static values 'literal' or 'unsafeStatic' cannot be used as values to non-static templates. +Please use the static 'html' tag function. See https://lit.dev/docs/templates/expressions/#static-expressions`);return{["_$litType$"]:K,strings:V,values:Q}},rd=NO(Sf),id=NO(H6),td=NO(z6),Zz=Symbol.for("lit-noChange"),FK=Symbol.for("lit-nothing"),W$=new WeakMap,rU=iU.createTreeWalker(iU,129),tU=Z6;function $$(K,V){if(!jO(K)||!K.hasOwnProperty("raw")){let Q="invalid template strings array";throw Q=` + Internal Error: expected template strings to be an array + with a 'raw' field. Faking a template strings array by + calling html or svg like an ordinary function is effectively + the same as calling unsafeHtml and can lead to major security + issues, e.g. opening your code up to XSS attacks. + If you're using the html or svg tagged template functions normally + and still seeing this error, please file a bug at + https://github.com/lit/lit/issues/new?template=bug_report.md + and include information about your build tooling, if any. + `.trim().replace(/\n */g,` +`),Error(Q)}return L$!==void 0?L$.createHTML(V):V}var Tf=(K,V)=>{let Q=K.length-1,U=[],H=V===H6?"":V===z6?"":"",Y,z=Qz;for(let A=0;A")z=Y??Qz,D=-1;else if(G[O$]===void 0)D=-2;else D=z.lastIndex-G[Df].length,F=G[O$],z=G[M$]===void 0?nU:G[M$]==='"'?fO:kO;else if(z===fO||z===kO)z=nU;else if(z===Y$||z===q$)z=Qz;else z=nU,Y=void 0}console.assert(D===-1||z===nU||z===kO||z===fO,"unexpected parse state B");let T=z===nU&&K[A+1].startsWith("/>")?" ":"";H+=z===Qz?R+Wf:D>=0?(U.push(F),R.slice(0,D)+X$+R.slice(D))+yQ+T:R+yQ+(D===-2?A:T)}let M=H+(K[Q]||"")+(V===H6?"":V===z6?"":"");return[$$(K,M),U]};class Yz{constructor({strings:K,["_$litType$"]:V},Q){this.parts=[];let U,H=0,Y=0,z=K.length-1,M=this.parts,[A,R]=Tf(K,V);if(this.el=Yz.createElement(A,Q),rU.currentNode=this.el.content,V===H6||V===z6){let D=this.el.content.firstChild;D.replaceWith(...D.childNodes)}while((U=rU.nextNode())!==null&&M.length0){U.textContent=U6?U6.emptyScript:"";for(let P=0;P" contains a duplicate "disabled" attribute. The error was detected in the following template: \n`'+K.join("${...}")+"`");G1&&G1({kind:"template prep",template:this,clonableTemplate:this.el,parts:this.parts,strings:K})}static createElement(K,V){let Q=iU.createElement("template");return Q.innerHTML=K,Q}}function uH(K,V,Q=K,U){if(V===Zz)return V;let H=U!==void 0?Q.__directives?.[U]:Q.__directive,Y=Lz(V)?void 0:V._$litDirective$;if(H?.constructor!==Y){if(H?._$notifyDirectiveConnectionChanged?.(!1),Y===void 0)H=void 0;else H=new Y(K),H._$initialize(K,Q,U);if(U!==void 0)(Q.__directives??=[])[U]=H;else Q.__directive=H}if(H!==void 0)V=uH(K,H._$resolve(K,V.values),H,U);return V}class F${constructor(K,V){this._$parts=[],this._$disconnectableChildren=void 0,this._$template=K,this._$parent=V}get parentNode(){return this._$parent.parentNode}get _$isConnected(){return this._$parent._$isConnected}_clone(K){let{el:{content:V},parts:Q}=this._$template,U=(K?.creationScope??iU).importNode(V,!0);rU.currentNode=U;let H=rU.nextNode(),Y=0,z=0,M=Q[0];while(M!==void 0){if(Y===M.index){let A;if(M.type===L6)A=new Oz(H,H.nextSibling,this,K);else if(M.type===xO)A=new M.ctor(H,M.name,M.strings,this,K);else if(M.type===_O)A=new C$(H,this,K);this._$parts.push(A),M=Q[++z]}if(Y!==M?.index)H=rU.nextNode(),Y++}return rU.currentNode=iU,U}_update(K){let V=0;for(let Q of this._$parts){if(Q!==void 0)if(G1&&G1({kind:"set part",part:Q,value:K[V],valueIndex:V,values:K,templateInstance:this}),Q.strings!==void 0)Q._$setValue(K,Q,V),V+=Q.strings.length-2;else Q._$setValue(K[V]);V++}}}class Oz{get _$isConnected(){return this._$parent?._$isConnected??this.__isConnected}constructor(K,V,Q,U){this.type=L6,this._$committedValue=FK,this._$disconnectableChildren=void 0,this._$startNode=K,this._$endNode=V,this._$parent=Q,this.options=U,this.__isConnected=U?.isConnected??!0,this._textSanitizer=void 0}get parentNode(){let K=KQ(this._$startNode).parentNode,V=this._$parent;if(V!==void 0&&K?.nodeType===11)K=V.parentNode;return K}get startNode(){return this._$startNode}get endNode(){return this._$endNode}_$setValue(K,V=this){if(this.parentNode===null)throw Error("This `ChildPart` has no `parentNode` and therefore cannot accept a value. This likely means the element containing the part was manipulated in an unsupported way outside of Lit's control such that the part's marker nodes were ejected from DOM. For example, setting the element's `innerHTML` or `textContent` can do this.");if(K=uH(this,K,V),Lz(K)){if(K===FK||K==null||K===""){if(this._$committedValue!==FK)G1&&G1({kind:"commit nothing to child",start:this._$startNode,end:this._$endNode,parent:this._$parent,options:this.options}),this._$clear();this._$committedValue=FK}else if(K!==this._$committedValue&&K!==Zz)this._commitText(K)}else if(K._$litType$!==void 0)this._commitTemplateResult(K);else if(K.nodeType!==void 0){if(this.options?.host===K){this._commitText("[probable mistake: rendered a template's host in itself (commonly caused by writing ${this} in a template]"),console.warn("Attempted to render the template host",K,"inside itself. This is almost always a mistake, and in dev mode ","we render some warning text. In production however, we'll ","render it, which will usually result in an error, and sometimes ","in the element disappearing from the DOM.");return}this._commitNode(K)}else if(Xf(K))this._commitIterable(K);else this._commitText(K)}_insert(K){return KQ(KQ(this._$startNode).parentNode).insertBefore(K,this._$endNode)}_commitNode(K){if(this._$committedValue!==K){if(this._$clear(),tU!==Z6){let V=this._$startNode.parentNode?.nodeName;if(V==="STYLE"||V==="SCRIPT"){let Q="Forbidden";if(V==="STYLE")Q="Lit does not support binding inside style nodes. This is a security risk, as style injection attacks can exfiltrate data and spoof UIs. Consider instead using css`...` literals to compose styles, and do dynamic styling with css custom properties, ::parts, s, and by mutating the DOM rather than stylesheets.";else Q="Lit does not support binding inside script nodes. This is a security risk, as it could allow arbitrary code execution.";throw Error(Q)}}G1&&G1({kind:"commit node",start:this._$startNode,parent:this._$parent,value:K,options:this.options}),this._$committedValue=this._insert(K)}}_commitText(K){if(this._$committedValue!==FK&&Lz(this._$committedValue)){let V=KQ(this._$startNode).nextSibling;if(this._textSanitizer===void 0)this._textSanitizer=wO(V,"data","property");K=this._textSanitizer(K),G1&&G1({kind:"commit text",node:V,value:K,options:this.options}),V.data=K}else{let V=iU.createTextNode("");if(this._commitNode(V),this._textSanitizer===void 0)this._textSanitizer=wO(V,"data","property");K=this._textSanitizer(K),G1&&G1({kind:"commit text",node:V,value:K,options:this.options}),V.data=K}this._$committedValue=K}_commitTemplateResult(K){let{values:V,["_$litType$"]:Q}=K,U=typeof Q==="number"?this._$getTemplate(K):(Q.el===void 0&&(Q.el=Yz.createElement($$(Q.h,Q.h[0]),this.options)),Q);if(this._$committedValue?._$template===U)G1&&G1({kind:"template updating",template:U,instance:this._$committedValue,parts:this._$committedValue._$parts,options:this.options,values:V}),this._$committedValue._update(V);else{let H=new F$(U,this),Y=H._clone(this.options);G1&&G1({kind:"template instantiated",template:U,instance:H,parts:H._$parts,options:this.options,fragment:Y,values:V}),H._update(V),G1&&G1({kind:"template instantiated and updated",template:U,instance:H,parts:H._$parts,options:this.options,fragment:Y,values:V}),this._commitNode(Y),this._$committedValue=H}}_$getTemplate(K){let V=W$.get(K.strings);if(V===void 0)W$.set(K.strings,V=new Yz(K));return V}_commitIterable(K){if(!jO(this._$committedValue))this._$committedValue=[],this._$clear();let V=this._$committedValue,Q=0,U;for(let H of K){if(Q===V.length)V.push(U=new Oz(this._insert(zz()),this._insert(zz()),this,this.options));else U=V[Q];U._$setValue(H),Q++}if(Q2||Q[0]!==""||Q[1]!=="")this._$committedValue=Array(Q.length-1).fill(new String),this.strings=Q;else this._$committedValue=FK;this._sanitizer=void 0}_$setValue(K,V=this,Q,U){let H=this.strings,Y=!1;if(H===void 0){if(K=uH(this,K,V,0),Y=!Lz(K)||K!==this._$committedValue&&K!==Zz,Y)this._$committedValue=K}else{let z=K;K=H[0];let M,A;for(M=0;M\` has a \`@${V}=...\` listener with invalid content. Event listeners in templates must have exactly one expression and no surrounding text.`)}_$setValue(K,V=this){if(K=uH(this,K,V,0)??FK,K===Zz)return;let Q=this._$committedValue,U=K===FK&&Q!==FK||K.capture!==Q.capture||K.once!==Q.once||K.passive!==Q.passive,H=K!==FK&&(Q===FK||U);if(G1&&G1({kind:"commit event listener",element:this.element,name:this.name,value:K,options:this.options,removeListener:U,addListener:H,oldListener:Q}),U)this.element.removeEventListener(this.name,this,Q);if(H)this.element.addEventListener(this.name,this,K);this._$committedValue=K}handleEvent(K){if(typeof this._$committedValue==="function")this._$committedValue.call(this.options?.host??this.element,K);else this._$committedValue.handleEvent(K)}}class C${constructor(K,V,Q){this.element=K,this.type=_O,this._$disconnectableChildren=void 0,this._$parent=V,this.options=Q}get _$isConnected(){return this._$parent._$isConnected}_$setValue(K){G1&&G1({kind:"commit to element binding",element:this.element,value:K,options:this.options}),uH(this,K)}}var Ef=GV.litHtmlPolyfillSupportDevMode;Ef?.(Yz,Oz);(GV.litHtmlVersions??=[]).push("3.3.1");if(GV.litHtmlVersions.length>1)queueMicrotask(()=>{Hz("multiple-versions","Multiple versions of Lit loaded. Loading multiple versions is not recommended.")});var Uz=(K,V,Q)=>{if(V==null)throw TypeError(`The container to render into may not be ${V}`);let U=Yf++,H=Q?.renderBefore??V,Y=H._$litPart$;if(G1&&G1({kind:"begin render",id:U,value:K,container:V,options:Q,part:Y}),Y===void 0){let z=Q?.renderBefore??null;H._$litPart$=Y=new Oz(V.insertBefore(zz(),z),z,void 0,Q??{})}return Y._$setValue(K),G1&&G1({kind:"end render",id:U,value:K,container:V,options:Q,part:Y}),Y};Uz.setSanitizer=Of,Uz.createSanitizer=wO,Uz._testOnlyClearSanitizerFactoryDoNotCallOrElse=Mf;var Bf={};Zf(Bf,{isTemplateResult:()=>qz,deserializeCSS:()=>Y6,callAsync:()=>gO});function gO(K,V,...Q){try{let U=K.apply(V,Q);return U instanceof Promise?U:Promise.resolve(U)}catch(U){return Promise.reject(U)}}function qz(K){return K!==null&&typeof K==="object"&&"_$litType$"in K}function Y6(K,V="",Q=0){let U=Object.keys(K),H="";for(let Y of U){let z=K[Y];if(typeof z==="object"&&z!==null){if(V&&!Y.startsWith("@"))if(Y.startsWith("&"))H+=`${Y.replace(/&/g,V)} { +`;else H+=`${V} ${Y} { +`;else H+=`${Y} { +`;let M=Object.keys(z);for(let A of M){H+="\t".repeat(Q);let R=z[A];if(typeof R==="object"&&R!==null){let D={};D[A]=R,H+=Y6(D,V,Q+1)}else H+=` ${A}: ${R}; +`}H+=`} +`}else H+="\t".repeat(Q),H+=` ${Y}: ${z}; +`}return H}class kK extends HTMLElement{_children;_state;_props;_ready;_connected;_isReady;_style;_updatingProps;_renderId;_propsProxy;_stateProxy;_hasBeenMounted;static _tag;static _template;static _observedAttributes=[];static _onMount;static _onUnmount;static _onError;static _applyMiddleware;static _hasMiddleware;static get observedAttributes(){return this._observedAttributes}static set observedAttributes(K){this._observedAttributes=K}static get tag(){if(typeof this._tag>"u"){let K=this.name,V=K.match(/([A-Z])/g);if(V!==null)for(let Q of V)K=K.replace(Q,`-${Q}`.toLowerCase());this._tag=K.slice(1)}return this._tag}static set tag(K){this._tag=K}static template(K=null,V=null){if(K!==null)this._template=K,document.querySelectorAll(this.tag).forEach((Q)=>{if(Q instanceof kK&&Q._isReady)Q.forceRender()});else{if(typeof this._template==="function")return this._template.call(V,V);return this._template}}constructor(){super();this._children="",this._state={},this._props={},this._ready=[],this._connected=!1,this._isReady=!1,this._style={},this._updatingProps=!1,this._renderId=0,this._propsProxy=null,this._stateProxy=null,this._hasBeenMounted=!1}get width(){return parseInt(getComputedStyle(this).width.replace("px",""))}set width(K){this.style.width=typeof K==="number"?`${K}px`:K}get height(){return parseInt(getComputedStyle(this).height.replace("px",""))}set height(K){this.style.height=typeof K==="number"?`${K}px`:K}get static(){return this.constructor}set static(K){throw Error("Component static properties cannot be reassigned.")}get props(){if(!this._propsProxy)this._propsProxy=new Proxy(this._props,{get:(K,V)=>{if(V in K&&typeof K[V]<"u")return K[V];if(this.hasAttribute(V)){let Q=this.getAttribute(V);if(typeof Q==="string"){if(Q==="false")Q=!1;else if(Q==="true"||Q==="")Q=!0;else if(!isNaN(Number(Q)))Q=Q.includes(".")?parseFloat(Q):parseInt(Q)}return Q}return},set:()=>{throw Error("Component props should be set using the `setProps` function.")}});return this._propsProxy}set props(K){if(!this._connected)this._props={...this._props,...K},this._propsProxy=null;else throw Error("Component props cannot be directly assigned. Use the `setProps` function instead.")}get state(){if(!this._stateProxy)this._stateProxy=new Proxy(this._state,{get:(K,V)=>K[V],set:(K,V,Q)=>{if(!this._connected)return K[V]=Q,!0;else throw Error("Component state should be set using the `setState` function instead.")}});return this._stateProxy}set state(K){if(!this._connected)this._state={...this._state,...K},this._stateProxy=null;else throw Error("Component state should be set using the `setState` function instead.")}get dom(){return this}set dom(K){throw Error("Component DOM can not be overwritten.")}get slotContent(){return this._children}get isConnected(){return this._connected}get isReady(){return this._isReady}get isFirstMount(){return!this._hasBeenMounted}static register(){window.customElements.define(this.tag,this)}template(K=null){return this.constructor.template(K,this)}static _styleSheet=null;setStyle(K,V=!1){let Q=this.constructor;if(!Q._styleSheet)Q._styleSheet=new CSSStyleSheet;let U="";if(typeof K==="object"){if(!V)this._style={...this._style,...K};else this._style={...K};U=Y6(this._style,Q.tag)}else if(typeof K==="string")if(!V)U=Array.from(Q._styleSheet.cssRules||[]).map((H)=>H.cssText).join(` +`)+` +`+K;else U=K;if(Q._styleSheet.replaceSync(U),!document.adoptedStyleSheets.includes(Q._styleSheet))document.adoptedStyleSheets=[...document.adoptedStyleSheets,Q._styleSheet];return this._style}setState(K){let V=K;if(kK._hasMiddleware?.("state")&&kK._applyMiddleware)V=kK._applyMiddleware("state",this,K);let Q={...this._state};this._state={...this._state,...V},this._stateProxy=null;for(let U of Object.keys(V))this.updateCallback(U,Q[U],this._state[U],"state",Q,this._state)}setProps(K){let V=K;if(kK._hasMiddleware?.("props")&&kK._applyMiddleware)V=kK._applyMiddleware("props",this,K);let Q={...this._props};this._props={...this._props,...V},this._propsProxy=null;for(let U of Object.keys(V))this.updateCallback(U,Q[U],this._props[U],"props",Q,this._props);this._updatingProps=!0,this._setPropAttributes(!0),this._updatingProps=!1}_setPropAttributes(K=!1){for(let[V,Q]of Object.entries(this._props)){let U=typeof Q;if(U==="string"||U==="number"||U==="boolean")if(K)this.setAttribute(V,String(Q));else this._props[V]=this.props[V],this.setAttribute(V,String(this.props[V]))}}on(K,V,Q){return this.addEventListener(K,V,Q),this}off(K,V,Q){return this.removeEventListener(K,V,Q),this}once(K,V,Q){let U=typeof Q==="boolean"?{capture:Q,once:!0}:{...Q,once:!0};return this.addEventListener(K,V,U),this}emit(K,V,Q){let U=new CustomEvent(K,{detail:V,bubbles:!0,cancelable:!0,composed:!0,...Q});return this.dispatchEvent(U)}query(K){return this.dom.querySelector(K)}queryAll(K){return this.dom.querySelectorAll(K)}async willUpdate(K,V,Q,U,H,Y){}async update(K,V,Q,U,H,Y){}async didUpdate(K,V,Q,U,H,Y){}async onStateUpdate(K,V,Q,U,H){}async onPropsUpdate(K,V,Q,U,H){}async willMount(){}async didMount(){}async didReconnect(){}async willUnmount(){}async unmount(){}async didUnmount(){}forceRender(){return this._render()}render(){return""}async _render(){let K=++this._renderId,V=this.render;if(this.constructor._template!==void 0)V=()=>this.template();let Q=await gO(V,this);if(K!==this._renderId)return;let U=qz(Q)||Q===FK?"lit":"string";if(kK._hasMiddleware?.("render")&&kK._applyMiddleware)Q=kK._applyMiddleware("render",this,Q,U);if(qz(Q)||Q===FK){if(!this.hasAttribute("data-lit-rendered"))this.innerHTML="",this.setAttribute("data-lit-rendered","");Uz(Q,this,{host:this});return}let H=Q.trim();if(H==="")return;let Y=this.dom.querySelector("slot");if(Y!==null){let z=document.createElement("template");z.innerHTML=H,Y.replaceWith(z.content)}else if(this.innerHTML=H,this._children!==""&&H.indexOf(this._children)===-1)this.innerHTML+=this._children}async connectedCallback(){let K=this.static.tag;try{if(this._connected=!0,this.dataset.component=K,typeof this.static._template>"u"){let U=document.querySelector(`template#${K}`);if(U!==null)this.template(U.innerHTML);else this.static._template=void 0}let V=!this._hasBeenMounted;if(V)this._children=this.innerHTML.trim();if(this._setPropAttributes(!1),await this.willMount(),await this._render(),V)await this.didMount();else await this.didReconnect();this._isReady=!0,this._hasBeenMounted=!0;let Q=[...this._ready];this._ready=[];for(let U of Q)U.call(this);if(kK._onMount)kK._onMount(this,K)}catch(V){if(kK._onError)kK._onError(V,this,K,"connectedCallback");else throw V}}ready(K){if(this._isReady)K.call(this);else this._ready.push(K)}async disconnectedCallback(){let K=this.static.tag;try{if(await this.willUnmount(),await this.unmount(),await this.didUnmount(),this._connected=!1,this._isReady=!1,this._ready=[],kK._onUnmount)kK._onUnmount(this,K)}catch(V){if(kK._onError)kK._onError(V,this,K,"disconnectedCallback");else throw V}}async updateCallback(K,V,Q,U="props",H={},Y={}){if(await this.willUpdate(U,K,V,Q,H,Y),await this.update(U,K,V,Q,H,Y),U==="state")await this.onStateUpdate(K,V,Q,H,Y);else if(U==="props"||U==="attribute")await this.onPropsUpdate(K,V,Q,H,Y);await this.didUpdate(U,K,V,Q,H,Y)}attributeChangedCallback(K,V,Q){if(V!==Q&&!this._updatingProps)this.updateCallback(K,V,Q,"attribute")}}var IV=kK;class I$ extends IV{_shadowDOM;static _styleSheet=null;constructor(){super();this._shadowDOM=this.attachShadow({mode:"open"})}setStyle(K,V=!1){let Q=this.constructor;if(!Q._styleSheet)Q._styleSheet=new CSSStyleSheet;let U="";if(typeof K==="object"){if(!V)this._style={...this._style,...K};else this._style={...K};U=Y6(this._style)}else if(typeof K==="string")if(!V)U=Array.from(Q._styleSheet.cssRules||[]).map((H)=>H.cssText).join(` +`)+` +`+K;else U=K;return Q._styleSheet.replaceSync(U),this._shadowDOM.adoptedStyleSheets=[Q._styleSheet],this._style}async _render(){let K=++this._renderId,V=this.render;if(this.constructor._template!==void 0)V=()=>this.template();let Q=await gO(V,this);if(K!==this._renderId)return;let U=qz(Q)||Q===FK?"lit":"string";if(IV._hasMiddleware?.("render")&&IV._applyMiddleware)Q=IV._applyMiddleware("render",this,Q,U);if(qz(Q)||Q===FK){Uz(Q,this._shadowDOM,{host:this});return}let H=Q.trim(),Y=Array.from(this._shadowDOM.childNodes);for(let M of Y)M.remove();if(H==="")return;let z=document.createElement("template");z.innerHTML=H,this._shadowDOM.appendChild(z.content)}get dom(){throw Error("ShadowComponent DOM can not be accessed. Use the `shadowRoot` property instead.")}set dom(K){throw Error("ShadowComponent DOM can not be overwritten.")}get shadowRoot(){return this._shadowDOM}set shadowRoot(K){throw Error("ShadowComponent shadowRoot can not be overwritten.")}query(K){return this._shadowDOM.querySelector(K)}queryAll(K){return this._shadowDOM.querySelectorAll(K)}}var G$=I$;class yO{static _debug=!1;static components={};static implementations={};static state={};static subscribers={};static mountCallbacks=new Set;static unmountCallbacks=new Set;static errorCallbacks=new Set;static aliases={};static lazyLoaders={};static middleware={props:new Set,state:new Set,render:new Set};static _initialized=!1;static _init(){if(this._initialized)return;this._initialized=!0,IV._onMount=(K,V)=>this._notifyMount(K,V),IV._onUnmount=(K,V)=>this._notifyUnmount(K,V),IV._onError=(K,V,Q,U)=>this._notifyError(K,V,Q,U),IV._applyMiddleware=(K,V,Q,U)=>this._applyMiddleware(K,V,Q,U),IV._hasMiddleware=(K)=>this._hasMiddleware(K)}static register(K,V){if(this._init(),typeof this.components[K]>"u")this.components[K]=V,this.implementations[K]=V,V._tag=K,window.customElements.define(K,V),this.components[K]._registered=!0,this.log(`Registered: <${K}>`);else throw Error("A component with this tag has already been registered. Use the evolve() function to modify the component.")}static getImplementation(K){return this.implementations[K]||this.components[K]}static evolve(K,V,Q=!1){if(typeof this.components[K]>"u")throw Error("No component with this tag has been registered. Cannot Evolve.");if(this.implementations[K]=V,V._registered=!0,this.log(`Evolved: <${K}>`),Q){let U=V.prototype,H=Object.getOwnPropertyNames(U),Y={};try{Y=Reflect.construct(V,[],V)}catch(z){this.log(`Could not extract defaults for <${K}> during evolve:`,z)}document.querySelectorAll(K).forEach((z)=>{if(z instanceof IV&&z.isReady){let M=z;for(let A of H)if(A!=="constructor"&&typeof U[A]==="function"){let R=U[A];M[A]=R.bind(z)}if(Y._state){let A=M._state||{},R=Y._state;for(let D of Object.keys(R))if(!(D in A))A[D]=R[D];M._state=A}if(Y._props){let A=M._props||{},R=Y._props;for(let D of Object.keys(R))if(!(D in A))A[D]=R[D];M._props=A}z.forceRender()}})}}static instances(K,V){if(typeof this.components[K]<"u")if(typeof V==="function")document.querySelectorAll(K).forEach(V);else return document.querySelectorAll(K);else throw Error("No component with the provided tag has been registered.")}static instantiate(K,V){if(!this.has(K))throw Error(`No component with tag "${K}" has been registered.`);if(!this.components[K]._registered)this.register(K,this.components[K]);let Q=document.createElement(this.components[K].tag);return Q.setProps(V),Q}static has(K){return typeof this.components[K]<"u"}static get(K){return this.components[K]}static setState(K,V){let Q=this.state[K];if(this.state[K]=V,this.subscribers[K])this.subscribers[K].forEach((U)=>{U(V,Q)})}static getState(K){return this.state[K]}static hasState(K){return K in this.state}static deleteState(K){if(K in this.state){let V=this.state[K];if(delete this.state[K],this.subscribers[K])this.subscribers[K].forEach((Q)=>{Q(void 0,V)});return!0}return!1}static subscribe(K,V){if(!this.subscribers[K])this.subscribers[K]=new Set;return this.subscribers[K].add(V),()=>{this.unsubscribe(K,V)}}static unsubscribe(K,V){if(this.subscribers[K])this.subscribers[K].delete(V)}static getAllState(){return{...this.state}}static clearState(){let K=Object.keys(this.state);for(let V of K)this.deleteState(V)}static get debug(){return this._debug}static set debug(K){this._debug=K}static log(K,V){if(this._debug)if(V!==void 0)console.log(`[Pandora] ${K}`,V);else console.log(`[Pandora] ${K}`)}static list(){return Object.keys(this.components)}static stats(K){if(K){if(!this.has(K))throw Error(`No component with tag "${K}" has been registered.`);return{tag:K,instanceCount:document.querySelectorAll(K).length,isRegistered:this.components[K]?._registered??!1,isLazy:K in this.lazyLoaders}}return this.list().map((V)=>({tag:V,instanceCount:document.querySelectorAll(V).length,isRegistered:this.components[V]?._registered??!1,isLazy:V in this.lazyLoaders}))}static onMount(K){return this._init(),this.mountCallbacks.add(K),()=>this.mountCallbacks.delete(K)}static onUnmount(K){return this._init(),this.unmountCallbacks.add(K),()=>this.unmountCallbacks.delete(K)}static _notifyMount(K,V){this.log(`Mounted: <${V}>`),this.mountCallbacks.forEach((Q)=>{try{Q(K,V)}catch(U){console.error("[Pandora] Error in onMount callback:",U)}})}static _notifyUnmount(K,V){this.log(`Unmounted: <${V}>`),this.unmountCallbacks.forEach((Q)=>{try{Q(K,V)}catch(U){console.error("[Pandora] Error in onUnmount callback:",U)}})}static onError(K){return this._init(),this.errorCallbacks.add(K),()=>this.errorCallbacks.delete(K)}static _notifyError(K,V,Q,U){if(this.log(`Error in <${Q}> during ${U}:`,K),this.errorCallbacks.size===0)throw K;this.errorCallbacks.forEach((H)=>{try{H(K,V,Q,U)}catch(Y){console.error("[Pandora] Error in onError callback:",Y)}})}static alias(K,V){if(!this.has(V))throw Error(`Cannot create alias: no component with tag "${V}" has been registered.`);if(this.has(K))throw Error(`Cannot create alias: a component with tag "${K}" already exists.`);this.aliases[K]=V;let Q=this.components[V],U=class extends Q{static _tag=K};this.components[K]=U,window.customElements.define(K,U),this.log(`Created alias: <${K}> -> <${V}>`)}static getOriginalTag(K){return this.aliases[K]}static isAlias(K){return K in this.aliases}static lazy(K,V){if(this._init(),this.has(K))throw Error(`Cannot register lazy component: a component with tag "${K}" already exists.`);this.lazyLoaders[K]=V;let Q=yO;class U extends IV{static _tag=K;_lazyLoaded=!1;async connectedCallback(){await Q._loadLazyComponent(K);let H=Q.getImplementation(K);if(H&&H!==U){let Y=H.prototype,z=Object.getOwnPropertyNames(Y),M=this;for(let R of z)if(R!=="constructor"&&typeof Y[R]==="function"){let D=Y[R];M[R]=D.bind(this)}let A={};try{A=Reflect.construct(H,[],H)}catch(R){Q.log(`Could not extract defaults for lazy <${K}>:`,R)}if(A._state)M._state={...A._state};if(A._props)M._props={...A._props};this._lazyLoaded=!0}await super.connectedCallback()}}this.components[K]=U,window.customElements.define(K,U),this.log(`Registered lazy component: <${K}>`)}static async _loadLazyComponent(K){if(!(K in this.lazyLoaders))return;let V=this.lazyLoaders[K];this.log(`Loading lazy component: <${K}>`);try{let Q=await V(),U="default"in Q?Q.default:Q;delete this.lazyLoaders[K],this.implementations[K]=U,U._registered=!0,this.log(`Loaded lazy component: <${K}>`)}catch(Q){throw console.error(`[Pandora] Failed to load lazy component <${K}>:`,Q),Q}}static isLazy(K){return K in this.lazyLoaders}static async preload(K){if(this.isLazy(K))await this._loadLazyComponent(K)}static use(K,V){return this._init(),this.middleware[K].add(V),()=>this.middleware[K].delete(V)}static _applyMiddleware(K,V,Q,U){let H=Q;return this.middleware[K].forEach((Y)=>{try{H=Y(V,H,U)}catch(z){console.error(`[Pandora] Error in ${K} middleware:`,z)}}),H}static _hasMiddleware(K){return this.middleware[K].size>0}}var hQ=yO;class t0{static queue=[];static registry=new Map;static isDevEnvironment(){return window.location.protocol.indexOf("file")===0||window.location.hostname==="localhost"||window.location.hostname==="127.0.0.1"}static escapeHtml(K){let V=document.createElement("div");return V.textContent=K,V.innerHTML}static generateModalHtml(K){return` + + `}static attachDismissHandler(K){m0(`[data-error="${K}"] button`).click(function(){m0(`[data-error="${K}"]`).remove(),t0.pop()}),Prism?.highlightAll()}static register(K,V){t0.registry.set(K,V)}static interpolate(K,V){return K.replace(/\{\{(\w+)\}\}/g,(Q,U)=>{let H=V[U];if(H===void 0)return Q;return String(H)})}static interpolateProps(K,V){let Q={};for(let U of Object.keys(K)){let H=K[U];if(typeof H==="string")Q[U]=t0.interpolate(H,V);else if(Array.isArray(H))Q[U]=H.map((Y)=>typeof Y==="string"?t0.interpolate(Y,V):Y);else if(typeof H==="object"&&H!==null&&!(H instanceof NodeList))Q[U]=t0.interpolateProps(H,V);else Q[U]=H}return Q}static pop(){if(t0.isDevEnvironment()&&typeof Prism<"u"){if(t0.queue.length>0){let K=t0.queue.pop();m0("body").prepend(t0.generateModalHtml(K)),t0.attachDismissHandler(K.id)}}}static show(K,V,Q){if(typeof MonogatariDebug==="object"&&Y8.currentLevel>0){let U,H,Y,z=t0.registry.get(K);if(z&&typeof V!=="string"){let R=V||{};U=t0.interpolate(z.title,R),H=t0.interpolate(z.message,R),Y=t0.interpolateProps(z.props,R);for(let D of Object.keys(R))if(/^[A-Z]/.test(D)||D.includes(" "))Y[D]=R[D]}else U=K||"Error",H=V||"An error has occurred! Please check the console so you get more insight.",Y=Q||{};let M=I1.uuid(),A={id:M,title:U,message:H,props:Y};if(m0("[data-error]").isVisible())t0.queue.unshift(A);else{let R=()=>{m0("body").prepend(t0.generateModalHtml(A)),t0.attachDismissHandler(M)};if(m0("body").length>0)R();else _z(R)}}}static render(K={}){let V='
';for(let Q of Object.keys(K)){let U=K[Q];if(typeof U==="string"||typeof U==="number")V+=`

${Q}: ${U}

`;else if(U instanceof Array){V+=`
${Q}:
    `;for(let H of U)V+=`
  • ${H}
  • `;V+="
"}else if(U instanceof NodeList){V+=`

${Q}:

`;for(let H of U)if(H instanceof Element)V+=`${H.outerHTML.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}`;V+="

"}}V+="
";for(let Q of Object.keys(K)){let U=K[Q];if(typeof U==="object"&&!(U instanceof Array)&&!(U instanceof NodeList)){let H=U;V+=`

${PK.capitalize(Q)}

`;for(let Y of Object.keys(H))if(Y.indexOf("_")===0)V+=`

${H[Y]}

`;else{let z=H[Y];if(typeof z==="string"||typeof z==="number")V+=`

${Y}: ${z}

`;else if(z instanceof Array){V+=`
${Y}:
    `;for(let M of z)V+=`
  • ${M}
  • `;V+="
"}else if(z instanceof NodeList){V+=`

${Y}:

`;for(let M of z)if(M instanceof Element)V+=`${M.outerHTML.replace(/&/g,"&").replace(//g,">").replace(/"/g,""")}`;V+="

"}}V+="
"}}return V}}class GK{audioContext;sourceNode=null;gainNode;effectChainNodes=[];_isPlaying=!1;_isPaused=!1;_loop=!1;_volume=1;startedAt=0;pausedAt=0;buffer;effectsConfig;stoppableResources=[];static effectRegistry=new Map;static workletReadyPromises=new WeakMap;onended=null;dataset={};static effect(K,V=null){if(V!==null)this.effectRegistry.set(K,{id:K,...V});return this.effectRegistry.get(K)||null}static effects(){return Array.from(this.effectRegistry.values())}static async initialize(K){if(this.workletReadyPromises.has(K))return this.workletReadyPromises.get(K);if(!K.audioWorklet){console.warn("AudioWorklet not supported in this browser. Some effects may not work.");let H=Promise.resolve([]);return this.workletReadyPromises.set(K,H),H}let Q=Object.entries({"bitcrusher-processor":` + class BitcrusherProcessor extends AudioWorkletProcessor { + static get parameterDescriptors () { + return [ + { name: 'bits', defaultValue: 8, minValue: 1, maxValue: 16 }, + { name: 'frequency', defaultValue: 0.1, minValue: 0, maxValue: 1 } + ]; + } + + constructor () { + super (); + this.phase = 0; + this.lastSample = 0; + } + + process (inputs, outputs, parameters) { + const input = inputs[0]; + const output = outputs[0]; + const bits = parameters.bits[0]; + const frequency = parameters.frequency[0]; + const step = Math.pow (0.5, bits - 1); + const sampleRateFactor = 1 / sampleRate; + const freq = frequency * sampleRate; + + for (let channel = 0; channel < output.length; channel++) { + const inputChannel = input[channel]; + const outputChannel = output[channel]; + for (let i = 0; i < outputChannel.length; i++) { + this.phase += freq * sampleRateFactor; + if (this.phase >= 1.0) { + this.phase -= 1.0; + this.lastSample = step * Math.floor (inputChannel[i] / step + 0.5); + } + outputChannel[i] = this.lastSample; + } + } + return true; + } + } + registerProcessor ('bitcrusher-processor', BitcrusherProcessor); + `,"envelope-follower-processor":` + class EnvelopeFollowerProcessor extends AudioWorkletProcessor { + static get parameterDescriptors () { + return [ + { name: 'attack', defaultValue: 0.01, minValue: 0, maxValue: 1 }, + { name: 'release', defaultValue: 0.1, minValue: 0, maxValue: 1 } + ]; + } + + constructor () { + super (); + this._envelope = 0; + } + + process (inputs, outputs, parameters) { + const input = inputs[0][0]; // Mono input + const output = outputs[0][0]; // Control signal output + const attack = parameters.attack[0]; + const release = parameters.release[0]; + + for (let i = 0; i < input.length; i++) { + const absValue = Math.abs (input[i]); + if (absValue > this._envelope) { + this._envelope = attack * (this._envelope - absValue) + absValue; + } else { + this._envelope = release * (this._envelope - absValue) + absValue; + } + output[i] = this._envelope; + } + return true; + } + } + registerProcessor ('envelope-follower-processor', EnvelopeFollowerProcessor); + `}).map(async([H,Y])=>{let z=new Blob([Y],{type:"application/javascript"}),M=URL.createObjectURL(z);try{await K.audioWorklet.addModule(M)}catch(A){console.error(`Failed to load worklet: ${H}`,A)}finally{URL.revokeObjectURL(M)}}),U=Promise.all(Q);return this.workletReadyPromises.set(K,U),U}constructor(K,V,{outputNode:Q=null,effects:U={},loop:H=!1,paused:Y=!1,volume:z=1}={}){this.audioContext=K,this.buffer=V,this.effectsConfig=U,this._loop=H,this._isPaused=Y,this.gainNode=Q||this.audioContext.createGain(),this._volume=z,this.gainNode.gain.value=z}createSourceNode(){this.cleanup();let K=this.audioContext.createBufferSource();return K.buffer=this.buffer,K.loop=this._loop,K.onended=()=>{if(K.onended===null)return;if(this._isPlaying=!1,this._isPaused=!1,this.cleanup(),typeof this.onended==="function")this.onended()},K}createEffectChain(){let K=this.sourceNode;this.stoppableResources=[],this.effectChainNodes=[];for(let[V,Q]of Object.entries(this.effectsConfig)){let U=GK.effect(V);if(!U){console.warn(`Unknown effect type: ${V}`);continue}try{let H=U.create(this.audioContext,Q||{}),Y;if(H&&typeof H.node<"u"){let z=H;if(Y=z.node,typeof z.stop==="function"||typeof z.disconnect==="function")this.stoppableResources.push(z)}else Y=H;if(Y instanceof AudioNode)K.connect(Y),K=Y,this.effectChainNodes.push(Y)}catch(H){console.error(`Error creating effect '${V}':`,H)}}K.connect(this.gainNode)}cleanup(){if(this.stoppableResources.forEach((K)=>{if(K.stop)K.stop();if(K.disconnect)K.disconnect()}),this.stoppableResources=[],this.effectChainNodes.forEach((K)=>K.disconnect()),this.effectChainNodes=[],this.sourceNode){this.sourceNode.onended=null;try{this.sourceNode.stop(0)}catch(K){console.error("Error stopping source node:",K)}this.sourceNode.disconnect(),this.sourceNode=null}}async play(){if(this._isPlaying)return;let K=GK.workletReadyPromises.get(this.audioContext)||Promise.resolve([]);try{if(await K,this.audioContext.state==="suspended")await this.audioContext.resume();this.sourceNode=this.createSourceNode();let V=this._isPaused?this.pausedAt:0;this.startedAt=this.audioContext.currentTime-V,this.createEffectChain(),this.sourceNode.start(0,V),this._isPlaying=!0,this._isPaused=!1}catch(V){throw console.error("Error during playback:",V),V}}pause(){if(!this._isPlaying)return;this.pausedAt=this.audioContext.currentTime-this.startedAt,this._isPlaying=!1,this._isPaused=!0,this.cleanup()}stop(){if(!this.sourceNode&&!this._isPlaying)return;this.pausedAt=0,this.startedAt=0,this._isPlaying=!1,this._isPaused=!1,this.cleanup()}get volume(){return this._volume}set volume(K){this._volume=K,this.gainNode.gain.setValueAtTime(K,this.audioContext.currentTime)}get loop(){return this._loop}set loop(K){if(this._loop=K,this.sourceNode)this.sourceNode.loop=K}get isPlaying(){return this._isPlaying}get isPaused(){return this._isPaused}get paused(){return this._isPaused}get ended(){return!this._isPlaying&&!this._isPaused}get hasEnded(){return!this._isPlaying&&!this._isPaused}get duration(){return this.buffer.duration}get currentTime(){if(this._isPaused)return this._loop?this.pausedAt%this.duration:this.pausedAt;if(this._isPlaying){let K=this.audioContext.currentTime-this.startedAt;return this._loop?K%this.duration:K}return 0}set currentTime(K){if(K<0||K>this.duration)return;let V=this._isPlaying;if(V)this.cleanup();if(this.pausedAt=K,this._isPaused=!0,this._isPlaying=!1,V)this.play()}get output(){return this.gainNode}_targetVolume=1;async fadeIn(K,V){if(!this._isPlaying)return;let Q=V??this._targetVolume;this._targetVolume=Q;let U=this.audioContext.currentTime,H=U+K;this.gainNode.gain.setValueAtTime(0,U),this.gainNode.gain.linearRampToValueAtTime(Q,H),await new Promise((Y)=>setTimeout(Y,K*1000)),this._volume=Q}async fadeOut(K,V=!1){if(!this._isPlaying)return;this._targetVolume=this._volume;let Q=this.audioContext.currentTime,U=Q+K;if(this.gainNode.gain.setValueAtTime(this._volume,Q),this.gainNode.gain.linearRampToValueAtTime(0,U),await new Promise((H)=>setTimeout(H,K*1000)),this._volume=0,V)this.stop()}destroy(){this.stop(),this.gainNode.disconnect(),this.onended=null}}GK.effect("filter",{description:"Applies a Biquad filter (lowpass, highpass, etc.)",params:["type","frequency","Q","gain"],create:(K,{type:V="lowpass",frequency:Q=800,Q:U=1,gain:H=0})=>{let Y=K.createBiquadFilter();return Y.type=V,Y.frequency.value=Q,Y.Q.value=U,Y.gain.value=H,Y}});GK.effect("delay",{description:"A simple delay effect",params:["time","feedback","mix"],create:(K,{time:V=0.4,feedback:Q=0.5,mix:U=0.5})=>{let H=K.createDelay(5),Y=K.createGain(),z=K.createGain(),M=K.createGain(),A=K.createChannelMerger(1);H.delayTime.value=V,Y.gain.value=Q,z.gain.value=U,M.gain.value=1-U,H.connect(Y),Y.connect(H);let R=K.createGain();return R.connect(M),R.connect(H),M.connect(A,0,0),H.connect(z),z.connect(A,0,0),{node:R,disconnect:()=>z.disconnect()}}});GK.effect("compressor",{description:"Dynamic range compression",params:["threshold","knee","ratio","attack","release"],create:(K,{threshold:V=-24,knee:Q=30,ratio:U=12,attack:H=0.003,release:Y=0.25})=>{let z=K.createDynamicsCompressor();return z.threshold.value=V,z.knee.value=Q,z.ratio.value=U,z.attack.value=H,z.release.value=Y,z}});GK.effect("tremolo",{description:"Modulates the amplitude of the signal",params:["frequency","depth"],create:(K,{frequency:V=5,depth:Q=0.8})=>{let U=K.createGain();U.gain.value=1;let H=K.createOscillator();H.type="sine",H.frequency.value=V;let Y=K.createGain();Y.gain.value=Q/2;let z=K.createConstantSource();return z.offset.value=1-Q/2,z.start(),H.connect(Y),Y.connect(U.gain),z.connect(U.gain),H.start(),{node:U,stop:()=>{H.stop(),z.stop()},disconnect:()=>{H.disconnect(),z.disconnect()}}}});GK.effect("distortion",{description:"Applies wave-shaping distortion",params:["amount","oversample"],create:(K,{amount:V=50,oversample:Q="4x"})=>{let U=K.createWaveShaper(),H=typeof V==="number"?V:50,Y=44100,z=new Float32Array(44100),M=Math.PI/180;for(let A=0;A<44100;++A){let R=A*2/44100-1;z[A]=(3+H)*R*20*M/(Math.PI+H*Math.abs(R))}return U.curve=z,U.oversample=Q,U}});GK.effect("convreverb",{description:"Convolution reverb with a generated impulse response",params:["seconds","decay","reverse"],create:(K,{seconds:V=2,decay:Q=2,reverse:U=!1})=>{let H=K.createConvolver(),Y=K.sampleRate,z=Y*V,M=K.createBuffer(2,z,Y),A=M.getChannelData(0),R=M.getChannelData(1);for(let D=0;D{try{if(!K.audioWorklet)return console.warn("AudioWorklet not available, using fallback for bitcrusher"),K.createGain();let U=new AudioWorkletNode(K,"bitcrusher-processor");return U.parameters.get("bits").value=V,U.parameters.get("frequency").value=Q,U}catch(U){return console.error("Failed to create Bitcrusher"),console.error(U),K.createGain()}}});GK.effect("autowah",{description:"An envelope-following filter (auto-wah)",params:["baseFrequency","octaves","sensitivity","Q"],create:(K,{baseFrequency:V=100,octaves:Q=6,sensitivity:U=0.5,Q:H=10})=>{try{if(!K.audioWorklet)return console.warn("AudioWorklet not available, using fallback for autowah"),K.createGain();let Y=K.createBiquadFilter();Y.type="bandpass",Y.Q.value=H;let z=new AudioWorkletNode(K,"envelope-follower-processor"),M=K.createGain();M.gain.value=V*Math.pow(2,Q)*U;let A=K.createConstantSource();A.offset.value=V,A.start();let R=K.createGain();return R.connect(Y),R.connect(z),z.connect(M),M.connect(Y.frequency),A.connect(Y.frequency),{node:R,stop:()=>A.stop(),disconnect:()=>{z.disconnect(),M.disconnect(),A.disconnect()}}}catch(Y){return console.error("Failed to create AutoWah"),console.error(Y),K.createGain()}}});GK.effect("panner",{description:"Positions the sound in 3D space",params:["x","y","z"],create:(K,{x:V=0,y:Q=0,z:U=0})=>{let H=K.createPanner();return H.panningModel="HRTF",H.positionX.value=V,H.positionY.value=Q,H.positionZ.value=U,H}});GK.effect("phaser",{description:"A sweeping phase-shifting effect",params:["frequency","depth","feedback","stages"],create:(K,{frequency:V=0.5,depth:Q=1000,feedback:U=0.5,stages:H=4})=>{let Y=K.createGain(),z=K.createGain();z.gain.value=U;let M=[];for(let P=0;PR.connect(P.frequency)),Y.connect(M[0]);for(let P=0;PA.stop(),disconnect:()=>{A.disconnect(),F.disconnect()}}}});GK.effect("chorus",{description:"Creates a thicker sound by modulating a delayed signal",params:["frequency","delay","depth","mix"],create:(K,{frequency:V=1.5,delay:Q=0.025,depth:U=0.002,mix:H=0.5})=>{let Y=K.createGain(),z=K.createDelay(0.1),M=K.createGain(),A=K.createGain(),R=K.createOscillator();R.type="sine",R.frequency.value=V;let D=K.createGain();D.gain.value=U,z.delayTime.value=Q,M.gain.value=H,A.gain.value=1-H,R.connect(D),D.connect(z.delayTime),Y.connect(z),Y.connect(A),z.connect(M);let F=K.createChannelMerger(1);return A.connect(F),M.connect(F),R.start(),{node:Y,stop:()=>R.stop(),disconnect:()=>{R.disconnect(),F.disconnect()}}}});GK.effect("wah",{description:"A sweeping filter effect, like a guitar wah-wah pedal",params:["baseFrequency","Q","depth","frequency"],create:(K,{baseFrequency:V=350,Q=15,depth:U=1500,frequency:H=2})=>{let Y=K.createBiquadFilter();Y.type="bandpass",Y.Q.value=Q;let z=K.createOscillator();z.type="sine",z.frequency.value=H;let M=K.createGain();M.gain.value=U;let A=K.createConstantSource();return A.offset.value=V,A.start(),z.connect(M),M.connect(Y.frequency),A.connect(Y.frequency),z.start(),{node:Y,stop:()=>{z.stop(),A.stop()},disconnect:()=>{z.disconnect(),A.disconnect()}}}});GK.effect("ringmod",{description:"Ring modulation for creating metallic, bell-like sounds",params:["frequency","mix"],create:(K,{frequency:V=30,mix:Q=0.5})=>{let U=K.createGain(),H=K.createGain(),Y=K.createGain(),z=K.createGain(),M=K.createOscillator();M.type="sine",M.frequency.value=V,Y.gain.value=Q,z.gain.value=1-Q,H.gain.value=0,M.connect(H.gain),U.connect(H);let A=K.createChannelMerger(1);return U.connect(z),H.connect(Y),z.connect(A),Y.connect(A),M.start(),{node:U,stop:()=>M.stop(),disconnect:()=>{M.disconnect(),A.disconnect()}}}});GK.effect("saturator",{description:"Soft clipping for warmth and harmonics",params:["drive"],create:(K,{drive:V=5})=>{let Q=K.createWaveShaper(),U=new Float32Array(44100);for(let H=0;H<44100;H++){let Y=H*2/44100-1;U[H]=Math.tanh(Y*V)}return Q.curve=U,Q}});GK.effect("limiter",{description:"A hard compressor to prevent signal peaks from exceeding a threshold",params:["threshold","release"],create:(K,{threshold:V=-1,release:Q=0.05})=>{let U=K.createDynamicsCompressor();return U.threshold.value=V,U.knee.value=0,U.ratio.value=20,U.attack.value=0.001,U.release.value=Q,U}});GK.effect("fadein",{description:"Fade in effect that gradually increases volume from 0 to target",params:["duration"],create:(K,{duration:V=1})=>{let Q=K.createGain();return Q.gain.setValueAtTime(0,K.currentTime),Q.gain.linearRampToValueAtTime(1,K.currentTime+V),Q}});GK.effect("fadeout",{description:"Fade out effect that gradually decreases volume to 0",params:["duration"],create:(K,{duration:V=1})=>{let Q=K.createGain();return Q.gain.setValueAtTime(1,K.currentTime),Q.gain.linearRampToValueAtTime(0,K.currentTime+V),Q}});var XV=GK;var jF=UZ(bO(),1);var e$="2.8.0";var K7=UZ(bO(),1),lO=K7.default.bind({});function V7(K,V=null){if(V!==null)K._characters=lO(K._characters,V);return K._characters}function Q7(K,V,Q=null){if(Q!==null)if(typeof K._characters[V]<"u")K._characters[V]=lO(K._characters[V],Q);else K._characters[V]=Q;else{let U=K._characters[V];if(typeof U<"u"){if(typeof U.Images==="object")U.sprites=lO({},U.Images),delete U.Images;if(typeof U.Directory==="string")U.directory=U.Directory,delete U.Directory;if(typeof U.Color==="string")U.color=U.Color,delete U.Color;if(typeof U.Name==="string")U.name=U.Name,delete U.Name;if(typeof U.Face==="string")U.default_expression=U.Face,delete U.Face;if(typeof U.Side==="object")U.expressions=U.Side,delete U.Side;if(typeof U.TypeAnimation==="boolean")U.type_animation=U.TypeAnimation,delete U.TypeAnimation}return U}}function dO(K,V){let Q=K.preference("Language");if(typeof K._translations[Q]>"u"){t0.show("engine:translation:language_not_found",{language:Q,availableLanguages:Object.keys(K._translations),languageSelectorValue:`
${m0('[data-action="set-language"]').value()}
`});return}if(typeof K._translations[Q][V]>"u")t0.show("engine:translation:key_not_found",{key:V,language:Q,elements:m0(`[data-string="${V}"]`).collection,availableStrings:Object.keys(K._translations[Q])});return K._translations[Q][V]}function U7(K){K.trigger("willLocalize");let V=K.preference("Language"),Q=K._languageMetadata[V];if(Q?.code)KK.defaultLocale=Q.code;K.element().find("[data-string]").each((U)=>{let H=m0(U).data("string");if(H){let Y=dO(K,H);if(typeof Y<"u"&&Y!=="")m0(U).text(Y)}}),K.trigger("didLocalize")}function sO(K,V){let Q=V.match(/_\(\S+\)/g),U=K.preference("Language");if(Q===null)return V;for(let H of Q){let Y=H.replace("_(","").replace(")","").split("."),z=mO(K,U);if(!z)continue;let M=z[Y[0]];for(let A=1;A"u")return K._translations[V];if(typeof K._translations[V]<"u")K._translations[V]=Object.assign({},K._translations[V],Q);else K._translations[V]=Q;return K._translations[V]}function z7(K,V,Q=null){if(typeof V<"u"){if(Q!==null){if(typeof K._languageMetadata[V]!=="object")K._languageMetadata[V]={code:"",icon:""};K._languageMetadata[V]=Object.assign({},K._languageMetadata[V],Q)}return K._languageMetadata[V]}return K._languageMetadata}function L7(K,V=null,Q=null){if(V!==null&&Q!==null)if(typeof K._assets[V]<"u")K._assets[V]=Object.assign({},K._assets[V],Q);else K._assets[V]=Q;else if(V!==null){if(typeof V==="string")return K._assets[V];else if(typeof V==="object")K._assets=Object.assign({},K._assets,Q)}else return K._assets}function Z7(K,V,Q,U=null){if(typeof K._assets[V]>"u")console.error(`Tried to interact with a non-existing asset type ${V}.`);if(U!==null)K._assets[V][Q]=U;return K._assets[V][Q]}function Y7(K,V,Q){if(Q!==void 0&&V!==void 0)K._audioBufferCache.set(V,Q);else if(V!==void 0)return K._audioBufferCache.get(V);return}function q7(K,V){return K._audioBufferCache.delete(V)}function O7(K,V){if(!V)K._audioBufferCache.clear();else for(let Q of K._audioBufferCache.keys())if(Q.startsWith(V))K._audioBufferCache.delete(Q)}function M7(K,V,Q){if(Q!==void 0&&V!==void 0)K._imageCache.set(V,Q);else if(V!==void 0)return K._imageCache.get(V);return}function W7(K,V){return K._imageCache.delete(V)}function X7(K,V){if(!V)K._imageCache.clear();else for(let Q of K._imageCache.keys())if(Q.startsWith(V))K._imageCache.delete(Q)}function A7(K){K._audioBufferCache.clear(),K._imageCache.clear()}function nO(K){return new Promise((V,Q)=>{if(!navigator.serviceWorker?.controller){Q(Error("Service worker not available"));return}let U=new MessageChannel;U.port1.onmessage=(H)=>{V(H.data)},navigator.serviceWorker.controller.postMessage(K,[U.port2]),setTimeout(()=>{Q(Error("Service worker message timeout"))},1e4)})}async function R7(K){try{return await nO({type:"CACHE_ASSETS",data:{urls:K}})}catch(V){return{success:!1,error:V.message}}}async function $7(K){try{return(await nO({type:"CHECK_CACHE",data:{url:K}})).cached}catch{return!1}}async function F7(K){try{let V=await nO({type:"GET_CACHED",data:{url:K}});return V.found?V.data:void 0}catch{return}}function rO(K){let V=[];for(let Q=0;Q{let H=U.target;if(H&&H.tagName?.toLowerCase()!=="input")U.preventDefault(),Q.apply(K,[U,m0(H)])})}function T7(K,V,Q,U=!1){let H={...Q,name:V};if(U===!0){let Y=K._listeners.findIndex((z)=>z.name===V);if(Y>-1){K._listeners[Y]=H;return}}if(K.global("_didBind")===!0&&H.keys)aO(K,H.keys,H.callback);K._listeners.push(H)}function E7(K,V){let Q=K._listeners.find((U)=>U.name.toLowerCase()===V.toLowerCase());if(Q){if(Q.keys)K.debug.log(`Unbinding Keys: ${Q.keys}`),tO.default.unbind(Q.keys);K._listeners=K._listeners.filter((U)=>U.name.toLowerCase()!==V.toLowerCase())}}async function B7(K,V,Q=null,U=null){let H=[],Y=V;if(U&&U.matches("path")){if(U=U.closest("[data-action]"),U.length>0)Y=U.data("action")||V}for(let z of K._listeners)if(z.name===Y)H.push(I1.callAsync(z.callback,K,Q,U).then((M)=>{if(M)return Promise.resolve();return Promise.reject()})),K.debug.debug("Running Listener",Y);await Promise.all(H).catch((z)=>{if(Q)Q.stopImmediatePropagation(),Q.stopPropagation(),Q.preventDefault();K.debug.debug("Listener Event Propagation Stopped",z)})}function J7(K,V,Q){let U=document.createElement("alert-modal");U.setAttribute("data-alert-id",V),U.setProps(Q),K.element().prepend(U)}function v7(K,V=null){if(typeof V==="string")K.element().find(`alert-modal[data-alert-id="${V}"]`).remove();else K.element().find("alert-modal").remove()}function eO(K){if(K.setting("MainScreenMusic")!==""&&K.ambientPlayer){let V=K.setting("MainScreenMusic"),Q=K.setting("AssetsPath"),U=K.preference("Volume");K.ambientPlayer.loop=!0;let H=U.Music;if(typeof H==="string")H=parseFloat(H);K.ambientPlayer.volume=H;let Y=K.asset("music",V);if(typeof Y>"u"){let z=K.assets("music");t0.show("engine:music:not_defined",{music:V,availableMusic:Object.keys(z??{})});return}if(!K.ambientPlayer.paused&&!K.ambientPlayer.ended)return;K.ambientPlayer.src=`${Q.root}/${Q.music}/${Y}`,K.ambientPlayer.play().catch((z)=>{console.warn(z);let M=` +
+

${K.string("AllowPlayback")}.

+
+ `;K.element().prepend(M),K.element().on("click",'[data-ui="broadcast"][data-content="allow-playback"]',()=>{eO(K),K.element().find('[data-ui="broadcast"][data-content="allow-playback"]').remove()})})}}function k7(K){let V=K.ambientPlayer;if(V&&!V.paused)V.pause()}function KM(K){if(K.global("on_splash_screen",!1),K.setting("ShowMainScreen")){Wz(K,"main");return}let V=K.label(),Q=K.state("step");K.global("playing",!0),Wz(K,"game"),K.run(V[Q])}function VM(K){let V=K.setting("SplashScreenLabel");if(typeof V==="string"&&V!==""){if(typeof K.label(V)<"u"){K.global("on_splash_screen",!0),K.state({label:V}),K.element().find('[data-component="game-screen"]').addClass("splash-screen"),K.element().find('[data-component="quick-menu"]').addClass("splash-screen"),Wz(K,"game");let U=K.label(),H=K.state("step");K.run(U[H]);return}}KM(K)}function Wz(K,V){if(W6(K),K.element().find(`[data-screen="${V}"]`).get(0)?.setState({open:!0}),K.global("_auto_play_timer"))QM(K,!1);if(K.global("skip"))X6(K,!1)}function W6(K){K.element()?.find("[data-screen]").each((Q)=>{Q.setState({open:!1})})}function QM(K,V){if(V===!0){let Q=K.preference("AutoPlaySpeed")*1000,U=Date.now()+Q,H=()=>{let Y=Date.now()-U;if(Y>Q);K.proceed({userInitiated:!1,skip:!1,autoPlay:!0}).then(()=>{U+=Q,setTimeout(K.global("_auto_play_timer"),Math.max(0,Q-Y))}).catch(()=>{U+=Q,setTimeout(K.global("_auto_play_timer"),Math.max(0,Q-Y))})};K.global("_auto_play_timer",H),setTimeout(H,Q),K.element().find('[data-component="quick-menu"] [data-action="auto-play"] [data-string]').text(K.string("Stop")||"Stop"),K.element().find('[data-component="quick-menu"] [data-action="auto-play"] [data-icon]').replaceWith('')}else clearTimeout(K.global("_auto_play_timer")),K.global("_auto_play_timer",null),K.element().find('[data-component="quick-menu"] [data-action="auto-play"] [data-string]').text(K.string("AutoPlay")||"AutoPlay"),K.element().find('[data-component="quick-menu"] [data-action="auto-play"] [data-icon]').replaceWith('')}function f7(K){if(K.global("playing")){let V=K.element();if(K.global("distraction_free")===!0)V?.find('[data-component="quick-menu"] [data-action="distraction-free"] [data-string]').text(K.string("Hide")??""),V?.find('[data-component="quick-menu"] [data-action="distraction-free"] [data-icon]').replaceWith(''),V?.find('[data-component="quick-menu"]').removeClass("transparent"),V?.find('[data-component="text-box"]').show("grid"),K.global("distraction_free",!1);else V?.find('[data-component="quick-menu"] [data-action="distraction-free"] [data-string]').text(K.string("Show")??""),V?.find('[data-component="quick-menu"] [data-action="distraction-free"] [data-icon]').replaceWith(''),V?.find('[data-component="quick-menu"]').addClass("transparent"),V?.find('[data-component="text-box"]').hide(),K.global("distraction_free",!0)}}function X6(K,V){let Q=K.setting("Skip");if(V===!0){if(Q>0){let U=K.element().find('[data-component="quick-menu"] [data-action="skip"] [data-icon]');if(U.data("icon")!=="play-circle")U.replaceWith('');K.global("skip",setTimeout(()=>{if(K.element().find('[data-screen="game"]').isVisible()&&K.global("playing")===!0)K.proceed({userInitiated:!1,skip:!0,autoPlay:!1}).then(()=>{}).catch((H)=>{K.debug.log(`Proceed Prevented +Reason: ${H}`)});X6(K,!0)},Q))}}else{clearTimeout(K.global("skip")),K.global("skip",null);let U=K.element().find('[data-component="quick-menu"] [data-action="skip"] [data-icon]');if(U.data("icon")!=="fast-forward")U.replaceWith('')}}function w7(K,V,Q,U){let H=K.parentElement();if(!H)return;let Y=H.width(),z=H.height(),M=Math.floor(Y*(U/Q)),A="100%",R="100%",D=0;if(M<=z)D=Math.floor((z-M)/2)+"px",R=M+"px";else A=Math.floor(z*(Q/U))+"px";m0(".forceAspectRatio").style({width:A,height:R,"margin-top":D})}function j7(K,V,Q){if(!m0(`${Q} [data-screen="game"]`).isVisible())if(K.debug.debug("Registered Back Listener on Non-Game Screen"),V.stopImmediatePropagation(),V.stopPropagation(),V.preventDefault(),W6(K),K.global("playing")||K.global("on_splash_screen"))K.element().find('[data-screen="game"]').get(0)?.setState({open:!0});else K.element().find('[data-screen="main"]').get(0)?.setState({open:!0})}function x7(K){K.preload().then(()=>{}).catch((V)=>{console.error(V)}).finally(()=>{if(K.label())VM(K);else{let V=K.script();t0.show("engine:script:label_not_found",{startLabel:K.setting("Label"),availableLabels:Object.keys(V??{})})}})}var Lw=(K)=>{let{history:V}=K;if(V.character instanceof Array){if(V.character.length>0){let Q=[];for(let U=0;U{if(typeof R==="string"){let[,,D]=R.split(" ");return M===D}return!1});Q.push({statement:H,previous:typeof A==="string"?A:null})}else Q.push(H)}V.character=Q,K.history=V}}return K},_7=Lw;var Zw=(K)=>{let{state:V}=K;if(V.music instanceof Array){if(V.music.length>0){let Q=[];for(let U of V.music)if(typeof U==="string")Q.push({statement:U,paused:!1});else Q.push(U);V.music=Q}}if(V.sound instanceof Array){if(V.sound.length>0){let Q=[];for(let U of V.sound)if(typeof U==="string")Q.push({statement:U,paused:!1});else Q.push(U);V.sound=Q}}if(V.voice instanceof Array){if(V.voice.length>0){let Q=[];for(let U of V.voice)if(typeof U==="string")Q.push({statement:U,paused:!1});else Q.push(U);V.voice=Q}}return K.state=V,K},N7=Zw;var Yw=[N7,_7],qw=(K)=>{return Yw.forEach((V)=>{K=V(K)}),K},g7=qw;var Ow=0,Mw=()=>`fss_${++Ow}_${Date.now()}`;class A6{bridge;_config={};_callbacks={create:[],update:[],delete:[]};_transformations={};_pendingRequests=new Map;_upgradeCallbacks=[];constructor(K){this.bridge=K,this.bridge.on("monogatari:storage-response",(V)=>{let Q=V,U=this._pendingRequests.get(Q.requestId);if(U)if(this._pendingRequests.delete(Q.requestId),Q.error)U.reject(Error(Q.error));else U.resolve(Q.data)})}sendRequest(K,V){let Q=Mw();return new Promise((U,H)=>{this._pendingRequests.set(Q,{resolve:U,reject:H}),this.bridge.send(K,{...V,requestId:Q})})}applyGetTransformations(K,V){let Q=V;for(let U of Object.values(this._transformations))if(U.get)Q=U.get(K,Q);return Q}applySetTransformations(K,V){let Q=V;for(let U of Object.values(this._transformations))if(U.set)Q=U.set(K,Q);return Q}async get(K){let V=await this.sendRequest("monogatari:storage-get",{key:K});return this.applyGetTransformations(K,V)}async set(K,V){let Q=this.applySetTransformations(K,V);await this.sendRequest("monogatari:storage-set",{key:K,value:Q});let U={key:K,value:Q};for(let H of this._callbacks.create)H(K,Q);return U}async update(K,V){let Q=this.applySetTransformations(K,V);await this.sendRequest("monogatari:storage-update",{key:K,value:Q});let U={key:K,value:Q};for(let H of this._callbacks.update)H(K,Q);return U}async remove(K){await this.sendRequest("monogatari:storage-remove",{key:K});for(let V of this._callbacks.delete)V(K,void 0)}async getAll(){let K=await this.sendRequest("monogatari:storage-get-all",{}),V={};for(let[Q,U]of Object.entries(K))V[Q]=this.applyGetTransformations(Q,U);return V}async each(K){let V=await this.getAll(),Q=[];for(let[U,H]of Object.entries(V))Q.push(await K(U,H));return Q}async clear(){await this.sendRequest("monogatari:storage-clear",{})}async key(K,V){return(await this.keys(V))[K]??""}async keys(K){return await this.sendRequest("monogatari:storage-keys",{})}async contains(K){await this.sendRequest("monogatari:storage-contains",{key:K})}async open(){return this}configuration(K){if(K)return Object.assign(this._config,K),this._config;if(K===null)return;return this._config}async rename(K){}async upgrade(K,V,Q){return this._upgradeCallbacks.push({oldVersion:K,newVersion:V,callback:Q}),this}onCreate(K){this._callbacks.create.push(K)}onUpdate(K){this._callbacks.update.push(K)}onDelete(K){this._callbacks.delete.push(K)}addTransformation(K){this._transformations[K.id]=K}removeTransformation(K){delete this._transformations[K]}}function dH(){if(typeof window.electron==="object")return window.electron;if(typeof window.electrobun==="object")return window.electrobun;return null}function qM(K){return{history:K.history(),state:K.state(),storage:K.storage()}}async function PF(K,V="SaveLabel",Q=null,U=null){if(!K.global("playing"))return;let H=L1.now(),Y=H.toISO(),z=H.toMillis(),M=qM(K);if(U===null||U.trim()==="")U=Y;let A="",R=K.state("background"),D=K.state("scene");if(R)A=R.split(" ")[2];else if(D)A=D.split(" ")[2];let F=`${K.setting(V)}_${Q||z}`,P;if(K.setting("Screenshots"))try{let{domToBlob:v}=await Promise.resolve().then(() => (SF(),DF)),J=document.querySelector('[data-screen="game"]');if(J){let k=await v(J,{quality:0.8,type:"image/jpeg",scale:400/J.offsetWidth});if(k)P=await K.onSaveScreenshot(F,k)}}catch(v){K.debug.warn("Screenshot capture failed:",v)}let G={name:U,date:Y,image:A,game:M};if(P)G.screenshot=P;let T=await K.Storage.set(F,G);if(T instanceof Response)return Promise.resolve(T.json());return Promise.resolve(T)}function OM(K){if(K.autoPlay(!1),K.setting("Skip")>0)K.skip(!1);let Q=K.global("storageStructure");K.storage(JSON.parse(Q)),K.state({step:0,label:K.setting("Label")}),K.global("block",!1);for(let H of Object.keys(K._history))K._history[H]=[];let U=[];for(let H of K.actions())U.push(H.reset());for(let H of K.components())U.push(H.onReset());return Promise.all(U)}function CF(K,V,Q,U){K._upgrade[`${V}::${Q}`]=U}function IF(K){let V=K.setting("Storage");if(V.Adapter.trim()!==""){let Q,U={};switch(V.Adapter){case"LocalStorage":Q=ZQ.LocalStorage;break;case"SessionStorage":Q=ZQ.SessionStorage;break;case"IndexedDB":Q=ZQ.IndexedDB,U.keyPath="id";break;case"RemoteStorage":Q=ZQ.RemoteStorage,U.headers={"Content-Type":"application/json"};break;case"FileSystem":{let H=dH();if(H){let Y=new A6(H);Y.configuration({name:PK.friendly(K.setting("Name")),version:K.setting("Version"),store:V.Store}),K.Storage=Y}else t0.show("engine:storage:filesystem_no_bridge",{}),Q=ZQ.IndexedDB;break}default:Q=ZQ.IndexedDB;break}if(window.navigator&&!C1.desktopApp&&!C1.cordova){if(window.navigator.storage&&window.navigator.storage.persist)window.navigator.storage.persist().then((H)=>{if(H!==!0)console.warn("Persistent Storage permission has been denied. When your device gets low on storage, it may choose to delete your game files.")}).catch((H)=>{console.error(H)})}if(!(K.Storage instanceof A6))K.Storage=new TU(Q,{name:PK.friendly(K.setting("Name")),version:K.setting("Version"),store:V.Store,endpoint:V.Endpoint,props:U})}for(let Q of Object.keys(K._upgrade)){let[U,H]=Q.split("::"),Y=K._upgrade[Q],z=Y?.storage;if(z){let M=Y?.replaceStorage===!0;K.Storage.upgrade(U,H,async()=>{let A=await K.Storage.getAll(),R=z(A);if(typeof R==="object"&&R!==null){let D=Object.entries(R);if(M){let F=new Set(D.map(([P])=>P));for(let P of Object.keys(A))if(!F.has(P))await K.Storage.remove(P)}for(let[F,P]of D)await K.Storage.set(F,P)}})}}if(K.setting("Screenshots")&&!K._hasCustomSaveScreenshot){let Q=V.Adapter.trim();if(Q==="LocalStorage"||Q==="SessionStorage")t0.show("engine:screenshots:storage_incompatible",{adapter:Q}),K.setting("Screenshots",!1)}}function GF(K,V){return document.body.style.cursor="wait",K.global("playing",!0),K.trigger("willLoadGame"),OM(K).then(()=>{return K.hideScreens(),K.Storage.get(V).then((Q)=>{let U=Q;if(typeof U.Engine<"u"){if(K.state({step:U.Engine.Step,label:U.Engine.Label,scene:`show scene ${U.Engine.Scene}`}),U.Engine.Song!==""&&typeof U.Engine.Song<"u")K.state({music:[{statement:U.Engine.Song,paused:!1}]});if(U.Engine.Sound!==""&&typeof U.Engine.Sound<"u")K.state({sound:[{statement:U.Engine.Sound,paused:!1}]});if(U.Engine.Particles!==""&&typeof U.Engine.Particles<"u")K.state({particles:`show particles ${U.Engine.Particles}`});if(U.Show!==""&&typeof U.Show<"u"){let M=U.Show.split(",");for(let A of M)if(A.trim()!==""){let R=document.createElement("div");if(R.innerHTML=A.replace("img/","assets/"),R.firstChild){let D=m0(R.firstChild),F=D.get(0);if(F){if(A.indexOf("data-character")>-1)K.state("characters").push(`show character ${D.data("character")} ${D.data("sprite")} ${F.className}`);else if(A.indexOf("data-image")>-1)K.state("characters").push(`show image ${D.data("image")} ${F.className}`)}}}}let z=U.Engine.SceneElementsHistory.map((M)=>{return M.map((A)=>A.replace("img/","assets/"))});K.history({music:U.Engine.MusicHistory,sound:U.Engine.SoundHistory,image:U.Engine.ImageHistory,character:U.Engine.CharacterHistory.map((M)=>{let A=document.createElement("div");if(A.innerHTML=M.replace("img/","assets/"),!A.firstChild)return{statement:"",previous:null};let R=m0(A.firstChild),D=R.get(0);if(!D)return{statement:"",previous:null};let F=D.classList;return F.remove("animated"),{statement:`show character ${R.data("character")} ${R.data("sprite")} with ${F.toString()}`,previous:null}}).filter((M)=>M.statement!==""),scene:U.Engine.SceneHistory.map((M)=>{return`show scene ${M}`}),sceneElements:z,sceneState:z.map((M)=>{if(M.length>0)return{characters:M.filter((A)=>A.indexOf("data-character=")>-1).map((A)=>{let R=document.createElement("div");if(R.innerHTML=A,!R.firstChild)return"";let D=m0(R.firstChild),F=D.get(0);if(!F)return"";let P=F.classList.toString().replace("animated","").trim();return`show character ${D.data("character")} ${D.data("sprite")}${P.length>0?` with ${P}`:""}`}).filter((A)=>A!==""),images:M.filter((A)=>A.indexOf("data-image=")>-1).map((A)=>{let R=document.createElement("div");if(R.innerHTML=A,!R.firstChild)return"";let D=m0(R.firstChild),F=D.get(0);if(!F)return"";let P=F.classList.toString().replace("animated","").trim();return`show image ${D.data("image")}${P.length>0?` with ${P}`:""}`}).filter((A)=>A!=="")};return{characters:[],images:[]}}),particle:U.Engine.ParticlesHistory.map((M)=>{return`show particles ${M}`})}),K.storage(U.Storage??{})}else{let z=g7(U.game??{});K.state(z.state),K.history(z.history),K.storage(z.storage)}let H=K.state("step"),Y=K.label().length;if(H>Y-1){let z=H;while(z>Y-1)z=z-1;K.state({step:z})}return K.onLoad().then(()=>{return K.showScreen("game"),document.body.style.cursor="auto",K.trigger("didLoadGame"),Promise.resolve()})})})}function TF(K,V,Q=null,U=null){let H=K.global("block");return K.global("block",!0),new Promise((Y,z)=>{let M=V.apply(Q,U||[]);if(typeof M==="boolean")if(M)Y();else z();else if(M!==null&&typeof M==="object")if("then"in M&&typeof M.then==="function")M.then((A)=>{if(typeof A==="boolean")if(A)Y();else z();else Y()}).catch(z);else Y();else z()}).finally(()=>{K.global("block",H)})}function EF(K){let V=K.state("step");K.state({step:V+1});let Q=K.label(),U=K.state("step");return new Promise((H)=>{setTimeout(()=>{K.run(Q[U]).then(()=>{K.global("_engine_block",!1),H()}).catch(()=>{H()})},0)})}function BF(K){return new Promise((V)=>{setTimeout(()=>{K.revert().then(()=>{K.global("_engine_block",!1),V()}).catch((Q)=>{K.debug.log(`Revert was prevented. +`,Q),K.global("_engine_block",!1);let U=K.state("step");if(U>0)K.state({step:U-1});K.proceed({userInitiated:!1,skip:!1,autoPlay:!1}).then(()=>{V()})})},0)})}function P6(K,V,{cycle:Q,extras:U}){let H,Y;if(typeof V==="string")Y=K.replaceVariables(V).split(" "),H=K.actions().find((z)=>z.matchString(Y));else if(typeof V==="object"&&V!==null)H=K.actions().find((z)=>z.matchObject(V));if(typeof H<"u"){let z=new H(typeof V==="string"?Y:V);return z._setStatement(V),z._setCycle(Q),z.setContext(K),z.setExtras(U||{}),z}return null}async function JF(K,V=null,Q=!0,U=!0){let Y=K.actions().map((F)=>F.beforeRevert({advance:Q,step:U}));await Promise.all(Y);let z=null,M=K.state("step"),A=K.state("label"),R=K.label();if(V!==null)z=V;else if(M>=1)z=R[M-1];else{let P=[...K.history("jump")].reverse().find((G)=>{return G.destination.label===A&&G.destination.step===0});if(typeof P<"u"){K.state({label:P.source.label,step:P.source.step});let G=K.label(),T=K.state("step");z=G[T],K.debug.debug("Will revert to previous label.")}else K.debug.debug("Will not revert since this is the beginning of the game.")}if(z===null||typeof z>"u"){let F=K.label(),P=K.state("step");return setTimeout(()=>{K.run(F[P])},0),K.debug.groupEnd(),Promise.resolve()}if(typeof z==="function")return Promise.reject();let D=P6(K,z,{cycle:"Revert"});if(D===null)return Promise.reject("The action did not match any of the ones registered.");return K.debug.debug("Reverting Action",z),K.debug.groupCollapsed(`Revert Cycle [${D.constructor.id}]`),K.trigger("willRevertAction",{action:D}),D.willRevert().then(()=>{return K.debug.debug("Action Will Revert"),D.revert().then(()=>{return K.debug.debug("Action Reverting"),D.didRevert().then(({advance:F,step:P})=>{K.debug.debug("Action Did Revert"),K.trigger("didRevertAction",{action:D});let G=[];for(let T of K.actions())G.push(T.afterRevert({advance:F,step:P}));return Promise.all(G).then(()=>{let T=K.state("step");if(P===!0&&U===!0)K.state({step:T-1});if(F===!0&&Q===!0)setTimeout(()=>{K.revert()},0);return K.debug.groupEnd(),Promise.resolve({advance:F,step:P})})})})}).catch((F)=>{if(typeof F==="object"||typeof F==="string")console.error(F);let P=K.label(),G=K.state("step");return setTimeout(()=>{K.run(P[G])},0),K.debug.groupEnd(),Promise.resolve()})}async function vF(K,V,Q=!0){let U=K.state("step"),H=K.state("label"),Y=K.actions(),z=Y.map((A)=>A.beforeRun({advance:Q}));if(await Promise.all(z),V===null)throw K.debug.trace(),K.debug.groupEnd(),Error("Statement was null.");if(K.debug.debug("Preparing Action",V),typeof V==="function"){K.debug.groupCollapsed("Run Cycle [JS Function]"),K.global("block",!0);try{let A=await I1.callAsync(V,K);if(K.global("block",!1),K.debug.groupEnd(),Q&&A!==!1){let R=K.state("step"),D=K.state("label");if(R===U&&D===H)return K.next().then(()=>({advance:!0}));else K.debug.debug("Skipping auto-advance: game already advanced by another action")}return Promise.resolve({advance:!1})}catch(A){let R={Label:String(K.state("label")),Step:Number(K.state("step")),Help:{_:"Check the code for your function, there may be additional information in the console."}};if(A&&typeof A==="object"&&"message"in A){let D=A;if(R["Error Message"]=D.message,D.fileName)R["File Name"]=D.fileName;if(D.lineNumber)R["Line Number"]=D.lineNumber}else if(typeof A==="string")R["Error Message"]=A;return t0.show("engine:run:function_error",{label:String(K.state("label")),step:Number(K.state("step")),...R}),K.debug.trace(),K.debug.groupEnd(),{advance:!1}}}let M=P6(K,V,{cycle:"Application"});if(M===null)throw Error("The action did not match any of the ones registered.");K.debug.groupCollapsed(`Run Cycle [${M.constructor.id}]`),K.trigger("willRunAction",{action:M});try{K.debug.debug("Action Will Apply"),await M.willApply()}catch(A){throw K.debug.debug(`Will Apply Failed. +Reason: ${A}`),K.debug.trace(),K.debug.groupEnd(),A}try{K.debug.debug("Action Applying"),await M.apply()}catch(A){throw K.debug.debug(`Apply Failed. +Reason: ${A}`),K.debug.trace(),K.debug.groupEnd(),A}try{let{advance:A}=await M.didApply();K.debug.debug("Action Did Apply"),K.trigger("didRunAction",{action:M});let R=Y.map((D)=>D.afterRun({advance:A===!0}));if(await Promise.all(R),A===!0&&Q===!0){let D=K.state("step"),F=K.state("label");if(D===U&&F===H)K.debug.debug("Next action will be run right away"),await K.next();else K.debug.debug("Skipping auto-advance: game already advanced by another action")}return K.debug.groupEnd(),{advance:A===!0}}catch(A){throw K.debug.debug(`Did Apply Failed. +Reason: ${A}`),K.debug.trace(),K.debug.groupEnd(),A}}async function kF(K,{userInitiated:V=!1,skip:Q=!1,autoPlay:U=!1}={}){await MM(K,{userInitiated:V,skip:Q,autoPlay:U}),K.global("_engine_block",!0),await WM(K),await K.next()}async function fF(K){if(K.setting("AllowRollback")!==!0)return;let Q=K.state();if(Q.step===0){if(typeof[...K.history("jump")].reverse().find((Y)=>{return Y.destination.label===Q.label&&Y.destination.step===0})>"u"){K.debug.debug("Will not attempt rollback since this is the beginning of the game.");return}}await XM(K),K.global("_engine_block",!0),await AM(K),await K.previous()}function MM(K,{userInitiated:V=!1,skip:Q=!1,autoPlay:U=!1}){let H=K.global("block")||K.global("_executing_sub_action");if(!m0(".modal").isVisible()&&!K.global("distraction_free")&&!H&&!K.global("_engine_block")){let Y=[];K.debug.groupCollapsed("shouldProceed Check");try{K.debug.debug("Checking Actions");for(let z of K.actions())Y.push(z.shouldProceed({userInitiated:V,skip:Q,autoPlay:U}).then(()=>{K.debug.debug(`OK ${z.id}`)}).catch((M)=>{return K.debug.debug(`FAIL ${z.id} +Reason: ${M}`),Promise.reject(M)}));K.debug.debug("Checking Components");for(let z of K.components())Y.push(z.shouldProceed({userInitiated:V,skip:Q,autoPlay:U}).then(()=>{K.debug.debug(`OK ${z.tag}`)}).catch((M)=>{return K.debug.debug(`FAIL ${z.tag} +Reason: ${M}`),Promise.reject(M)}))}catch(z){console.error(z);let M=z instanceof Error?z.message:String(z);t0.show("engine:lifecycle:should_proceed_error",{errorMessage:M})}return K.debug.debug("Checking Extra Conditions"),Promise.all(Y).then((...z)=>{return K.debug.groupEnd(),Promise.resolve(...z)}).catch((z)=>{return K.debug.groupEnd(),Promise.reject(z)})}else return K.debug.debug({Block:K.global("block"),"Distraction Free":K.global("distraction_free"),"Engine Block":K.global("_engine_block"),"Executing Sub Action":K.global("_executing_sub_action"),"Modal Visible":m0(".modal").isVisible()}),Promise.reject("Extra condition check failed.")}function WM(K){K.debug.groupCollapsed("Can proceed check passed, game will proceed.");let V=K.actions(),Q=K.components(),U=[];try{for(let H of V)U.push(H.willProceed().then(()=>{K.debug.debug(`OK ${H.id}`)}).catch((Y)=>{return K.debug.debug(`FAIL ${H.id} +Reason: ${Y}`),Promise.reject(Y)}));for(let H of Q)U.push(H.willProceed().then(()=>{K.debug.debug(`OK ${H.tag}`)}).catch((Y)=>{return K.debug.debug(`FAIL ${H.tag} +Reason: ${Y}`),Promise.reject(Y)}))}catch(H){console.error(H);let Y=H instanceof Error?H.message:String(H);t0.show("engine:lifecycle:will_proceed_error",{errorMessage:Y})}return Promise.all(U).then((...H)=>{return K.debug.groupEnd(),Promise.resolve(...H)}).catch((H)=>{return K.debug.groupEnd(),Promise.reject(H)})}function wF(K,V){let Q=K.setting("InstantText");V.finish(Q)}function XM(K){if(!K.global("distraction_free")&&!K.global("block")&&(!K.global("_engine_block")||K.global("_executing_sub_action"))){let V=[];K.debug.groupCollapsed("shouldRollback Check");try{for(let Q of K.actions())V.push(Q.shouldRollback().then(()=>{K.debug.debug(`OK ${Q.id}`)}).catch((U)=>{return K.debug.debug(`FAIL ${Q.id} +Reason: ${U}`),Promise.reject(U)}));for(let Q of K.components())V.push(Q.shouldRollback().then(()=>{K.debug.debug(`OK ${Q.tag}`)}).catch((U)=>{return K.debug.debug(`FAIL ${Q.tag} +Reason: ${U}`),Promise.reject(U)}))}catch(Q){console.error(Q);let U=Q instanceof Error?Q.message:String(Q);t0.show("engine:lifecycle:should_rollback_error",{errorMessage:U})}return Promise.all(V).then((...Q)=>{return K.debug.groupEnd(),Promise.resolve(...Q)}).catch((Q)=>{return K.debug.groupEnd(),Promise.reject(Q)})}else return Promise.reject("Extra condition check failed.")}function AM(K){let V=[];K.debug.groupCollapsed("Should Rollback Check passed, game will roll back.");try{for(let Q of K.actions())V.push(Q.willRollback().then(()=>{K.debug.debug(`OK ${Q.id}`)}).catch((U)=>{return K.debug.debug(`FAIL ${Q.id} +Reason: ${U}`),Promise.reject(U)}));for(let Q of K.components())V.push(Q.willRollback().then(()=>{K.debug.debug(`OK ${Q.tag}`)}).catch((U)=>{return K.debug.debug(`FAIL ${Q.tag} +Reason: ${U}`),Promise.reject(U)}))}catch(Q){console.error(Q);let U=Q instanceof Error?Q.message:String(Q);t0.show("engine:lifecycle:will_rollback_error",{errorMessage:U})}return Promise.all(V).then((...Q)=>{return K.debug.groupEnd(),Promise.resolve(...Q)}).catch((Q)=>{return K.debug.groupEnd(),Promise.reject(Q)})}var XU=jF.default.bind({});class $z{static asEngine(){return this}static _languageMetadata={};static _events={};static _selector="#monogatari";static _actions=[];static _components=[];static _translations={};static _script={};static _characters={};static _storage={};static audioContext;static _audioBufferCache=new Map;static _imageCache=new Map;static _audioBufferSpace=null;static _indexedDBAvailable=null;static _hasCustomSaveScreenshot=!1;static Storage=new TU;static _onSaveScreenshot=async(K,V)=>{return await $z.Storage.set(`${K}__screenshot`,V),`${K}__screenshot`};static get onSaveScreenshot(){return this._onSaveScreenshot}static set onSaveScreenshot(K){this._onSaveScreenshot=K,this._hasCustomSaveScreenshot=!0}static onLoadScreenshot=async(K)=>{let V=await $z.Storage.get(K);return URL.createObjectURL(V)};static onDeleteScreenshot=async(K)=>{await $z.Storage.remove(K)};static _mediaPlayers={music:{},sound:{},voice:{},video:{}};static _state={step:0,label:"Start",music:[],sound:[],voice:[],scene:"",background:"",characters:[],characterLayers:[],images:[],particles:"",videos:[],canvas:[],textboxHidden:!1};static _history={label:[],music:[],sound:[],voice:[],scene:[],background:[],sceneElements:[],sceneState:[],character:[],characterLayer:[],image:[],particle:[],video:[],canvas:[],nvl:[],clear:[],choice:[],jump:[],conditional:[]};static ambientPlayer=null;static _functions={};static _$={};static _assets={music:{},voices:{},sounds:{},videos:{},images:{},scenes:{},gallery:{}};static _settings={Name:"My Visual Novel",Version:"0.1.0",Label:"Start",Slots:10,MultiLanguage:!1,LanguageSelectionScreen:!0,MainScreenMusic:"",SaveLabel:"Save",AutoSaveLabel:"AutoSave",ShowMainScreen:!0,Preload:!0,AutoSave:0,ServiceWorkers:!0,AspectRatio:"16:9",ForceAspectRatio:"None",TypeAnimation:!0,NVLTypeAnimation:!0,NarratorTypeAnimation:!0,CenteredTypeAnimation:!0,InstantText:!1,Orientation:"any",Skip:0,AssetsPath:{root:"assets",characters:"characters",icons:"icons",images:"images",music:"music",scenes:"scenes",sounds:"sounds",ui:"ui",videos:"videos",voices:"voices",gallery:"gallery"},SplashScreenLabel:"_SplashScreen",Storage:{Adapter:"LocalStorage",Store:"GameData",Endpoint:""},AllowRollback:!0,ExperimentalFeatures:!1,Screenshots:!1};static _preferences={Language:"English",Volume:{Music:1,Voice:1,Sound:1,Video:1},Resolution:"800x600",TextSpeed:20,AutoPlaySpeed:5};static _globals={distraction_free:!1,delete_slot:null,overwrite_slot:null,playing:!1,current_auto_save_slot:1,_auto_play_timer:null,skip:null,_log:[],_auto_save_interval:null,_restoring_state:!1,on_splash_screen:!1,_didSetup:!1,_didBind:!1,_didInit:!1,_engine_block:!1,block:!1,_executing_sub_action:!1};static _listeners=[];static _configuration={"main-menu":{buttons:[{string:"Start",data:{action:"start"}},{string:"Load",data:{action:"open-screen",open:"load"}},{string:"Settings",data:{action:"open-screen",open:"settings"}},{string:"Help",data:{action:"open-screen",open:"help"}}]},"quick-menu":{buttons:[{string:"Back",icon:"fas fa-arrow-left",link:"#",data:{action:"back"}},{string:"Hide",icon:"fas fa-eye",data:{action:"distraction-free"}},{string:"AutoPlay",icon:"fas fa-play-circle",data:{action:"auto-play"}},{string:"Skip",icon:"fas fa-fast-forward",data:{action:"skip"}},{string:"Save",icon:"fas fa-save",data:{action:"open-screen",open:"save"}},{string:"Load",icon:"fas fa-undo",data:{action:"open-screen",open:"load"}},{string:"Settings",icon:"fas fa-cog",data:{action:"open-screen",open:"settings"}},{string:"Quit",icon:"fas fa-times-circle",data:{action:"end"}}]},credits:{}};static _templates={};static _upgrade={};static _temp={};static version=e$;static _id="visual-novel";static onStart(){let K=[];for(let V of this.components())K.push(V.onStart());for(let V of this.actions())K.push(V.onStart());return Promise.all(K)}static onLoad(){let K=[];this.global("_restoring_state",!0);let V=this.actions(),Q=[...new Set(V.map((Y)=>Y.loadingOrder))].sort(),U=(Y,z=Promise.resolve())=>{return z.then(()=>{let M=[];for(let A of Y)M.push(A.onLoad());return Promise.all(M)})},H=Promise.resolve();for(let Y of Q)H=U(V.filter((z)=>z.loadingOrder===Y),H);K.push(H);for(let Y of this.components())K.push(Y.onLoad());return Promise.all(K).then((Y)=>{return this.global("_restoring_state",!1),Promise.resolve(Y)})}static width(){return this.element().width()}static height(){return this.element().height()}static get debug(){return new Proxy(Y8,{apply(K,V,Q){if(typeof MonogatariDebug==="object")return Reflect.apply(K,V,Q)}})}static set debug(K){throw Error("Debug reference cannot be overriden.")}static string(K){return dO(this.asEngine(),K)}static history(K){if(K!==null&&K!==void 0)if(typeof K==="string"){if(typeof this._history[K]>"u")this._history[K]=[];return this._history[K]}else this._history=Object.assign({},this._history,K);else return this._history}static state(K){if(typeof K==="string")return this._state[K];if(typeof K==="object"&&K!==null){let V=Object.assign({},this._state),Q=XU(this._state,K);this.trigger("willUpdateState",{oldState:V,newState:Q}),this._state=Q,this.trigger("didUpdateState",{oldState:V,newState:this._state})}return this._state}static registerAction(K,V=!1){if(K.engine=this.asEngine(),V)this._actions.push(K);else this._actions.unshift(K)}static unregisterAction(K){this._actions=this._actions.filter((V)=>V.id.toLowerCase()!==K.toLowerCase())}static actions(){let K=this.setting("ExperimentalFeatures");return this._actions.filter((V)=>{return V._experimental===!1||K===!0})}static action(K){return this._actions.find((V)=>V.id.toLowerCase()===K.toLowerCase())}static registerComponent(K){let V=this.components().findIndex((Q)=>Q.tag===K.tag)>-1;if(typeof window.customElements.get(K.tag)<"u")t0.show("engine:component:already_registered",{tag:K.tag,component:K,unregisterCode:`
monogatari.unregisterComponent ('${K.tag}')
`});if(K.engine=this.asEngine(),V&&!this.global("_didSetup"))this.unregisterComponent(K.tag);else if(!V&&this.global("_didSetup"))hQ.register(K.tag,K);this._components.push(K)}static unregisterComponent(K){if(!this.global("_didSetup"))this._components=this.components().filter((V)=>V.tag.toLowerCase()!==K.toLowerCase());else t0.show("engine:component:unregister_after_setup",{component:K})}static components(){let K=this.setting("ExperimentalFeatures");return this._components.filter((V)=>{return V._experimental===!1||K===!0})}static component(K){let V=K.toLowerCase();return this.components().find((Q)=>Q.tag===V)}static assets(K=null,V=null){return L7(this.asEngine(),K,V)}static asset(K,V,Q=null){return Z7(this.asEngine(),K,V,Q)}static audioBufferCache(K,V){return Y7(this.asEngine(),K,V)}static audioBufferUncache(K){return q7(this.asEngine(),K)}static audioBufferClearCache(K){return O7(this.asEngine(),K)}static imageCache(K,V){return M7(this.asEngine(),K,V)}static imageUncache(K){return W7(this.asEngine(),K)}static imageClearCache(K){return X7(this.asEngine(),K)}static clearAllCaches(){return A7(this.asEngine())}static async cacheInServiceWorker(K){return R7(K)}static async isInServiceWorkerCache(K){return $7(K)}static async getFromServiceWorkerCache(K){return F7(K)}static serializeAudioBuffer(K){return rO(K)}static deserializeAudioBuffer(K,V){return iO(K,V)}static async audioBufferSpace(){return lH(this.asEngine())}static isIndexedDBAvailable(){return D7(this.asEngine())}static async storeAudioBufferPersistent(K,V){return S7(this.asEngine(),K,V)}static async getAudioBufferPersistent(K){return P7(this.asEngine(),K)}static async removeAudioBufferPersistent(K){return C7(this.asEngine(),K)}static async clearAudioBufferPersistent(){return I7(this.asEngine())}static characters(K=null){return V7(this.asEngine(),K)}static character(K,V=null){return Q7(this.asEngine(),K,V)}static languageMetadata(K,V=null){return z7(this.asEngine(),K,V)}static translations(K=null){return mO(this.asEngine(),K)}static translation(K,V){return H7(this.asEngine(),K,V)}static setting(K,V){if(V!==void 0&&V!==null)return this._settings[K]=V,this._settings[K];if(typeof this._settings[K]<"u")return this._settings[K];throw Error(`Tried to access non existent setting with name '${K}'.`)}static settings(K=null){if(K!==null)this._settings=XU(this._settings,K);return this._settings}static preference(K,V){if(V!==void 0&&V!==null)return this._preferences[K]=V,this.Storage.update("Settings",this._preferences),this._preferences[K];if(typeof this._preferences[K]<"u")return this._preferences[K];throw Error(`Tried to access non existent preference with name '${K}'.`)}static preferences(K=null,V=!1){if(K!==null){this._preferences=XU(this._preferences,K);let Q=this.Storage.configuration();if(!Q||Q.name==="")this.setupStorage();if(V===!0)this.Storage.update("Settings",this._preferences)}return this._preferences}static configuration(K,V){if(typeof K==="string"){if(typeof V<"u"){if(this.trigger("configurationElementWillUpdate"),this.trigger(`configurationElementUpdate::${K}`,{newConfiguration:V,oldConfiguration:this._configuration[K]}),typeof this._configuration[K]!=="object"||this._configuration[K]===null)this._configuration[K]={};this._configuration[K]=XU(this._configuration[K],V),this.trigger("configurationElementDidUpdate")}return this._configuration[K]}else if(typeof K==="object")return this.trigger("configurationWillUpdate"),this._configuration=XU(this._configuration,V??{}),this.trigger("configurationDidUpdate"),this._configuration;else if(typeof K>"u")return this._configuration}static storage(K=null){if(K!==null)if(typeof K==="string")return this._storage[K];else this._storage=XU(this._storage,K);else return this._storage}static script(K=null){let V=this.preference("Language");if(typeof K==="object"&&K!==null)this._script=Object.assign({},this._script,K);else{let Q=this._script;if(this.setting("MultiLanguage")===!0)if(!Object.keys(Q).includes(V))t0.show("engine:script:language_not_found",{language:V,multiLanguageSetting:"The Multilanguage Setting is set to "+this.setting("MultiLanguage"),availableLanguages:Object.keys(Q)});else Q=Q[V];if(typeof K==="string")Q=Q[K];return Q}}static label(K=null,V=null,Q=null){if(typeof V==="string"&&Q!==null&&K!==null){if(typeof this._script[V]!=="object")this._script[V]={};this._script[V][K]=Q}else if(typeof V==="object"&&V!==null&&Q===null&&K!==null){if(typeof this._script[K]!=="object")this._script[K]=[];this._script[K]=V}else if(typeof V==="string"&&Q===null&&K!==null)return this._script[V]?.[K];else if(K!==null)return this.script(K);else{let U=this.state("label");return this.script(U)}}static fn(K,{apply:V=()=>!0,revert:Q=()=>!0}={}){if(typeof V==="function"&&typeof Q==="function")this._functions[K]={apply:V,revert:Q};return this._functions[K]}static $(K,V){if(typeof K==="string"){if(typeof V<"u")this._$[K]=V;return this._$[K]}else if(typeof K==="object")this._$=Object.assign({},this._$,K);else if(typeof K>"u")return this._$}static globals(K=null){if(K!==null)this._globals=XU(this._globals,K);return this._globals??{}}static global(K,V){if(typeof V<"u")this._globals[K]=V;return this._globals?.[K]??void 0}static template(K,V){if(typeof V<"u")this._templates[K]=V;return this._templates[K]}static mediaPlayers(K,V=!1){if(typeof K==="string"){if(V)return this._mediaPlayers[K];return Object.values(this._mediaPlayers[K])}return this._mediaPlayers}static mediaPlayer(K,V,Q){if(typeof Q>"u")return this.mediaPlayers(K,!0)?.[V];else return Q.dataset.type=K,Q.dataset.key=V,this._mediaPlayers[K][V]=Q,this._mediaPlayers[K][V]}static removeMediaPlayer(K,V){let Q=this.mediaPlayers(K,!0),U=(H)=>{if(H instanceof XV)H.destroy();else{if(typeof H.pause==="function")H.pause();if(typeof H.setAttribute==="function")H.setAttribute("src",""),H.currentTime=0}};if(typeof V>"u"){if(Q)for(let H of Object.keys(Q)){let Y=this._mediaPlayers[K][H];if(Y)U(Y);delete this._mediaPlayers[K][H]}}else if(typeof this._mediaPlayers[K]?.[V]<"u"){let H=this._mediaPlayers[K][V];if(H)U(H);delete this._mediaPlayers[K][V]}}static temp(K,V){if(typeof V<"u")this._temp[K]=V;else{let Q=this._temp[K];return delete this._temp[K],Q}}static localize(){return U7(this.asEngine())}static preload(){if(!(this.setting("Preload")&&!C1.desktopApp&&!C1.cordova&&location.protocol.indexOf("file")<0))return Promise.resolve();let V=[];this.trigger("willPreloadAssets");let Q=this.setting("AssetsPath"),U=this.action("Preload"),Y=U?.blocks?.()?.default;if(Y&&U)for(let[z,M]of Object.entries(Y)){if(z==="characters"&&typeof M==="object"&&!Array.isArray(M)){for(let[D,F]of Object.entries(M)){let P=this.character(D);if(!P)continue;let G=P.directory?`${P.directory}/`:"";G=`${Q.root}/${Q.characters}/${G}`;for(let T of F){let v=P.sprites?.[T];if(!v||typeof v!=="string")continue;let J=`${G}${v}`;V.push(tK.image(J).then((k)=>{this.imageCache(`characters/${D}/${T}`,k),this.trigger("assetLoaded",{name:T,type:"image",category:"characters"})})),this.trigger("assetQueued")}}continue}if(!Array.isArray(M))continue;let A=U.getLoaderType(z);if(!A){console.warn(`Preload: No loader registered for category "${z}" in default block`);continue}let R=U.getLoader(A);if(!R){console.warn(`Preload: Loader type "${A}" not found`);continue}for(let D of M){let F=this.assets(z)?.[D];if(!F)continue;let P=`${Q.root}/${Q[z]}/${F}`,G=`${z}/${D}`;V.push(R.loader(P,this).then((T)=>{R.cache.set(this,G,T),this.trigger("assetLoaded",{name:D,type:A,category:z})})),this.trigger("assetQueued")}}else{let z=this.assets()||{};for(let M of Object.keys(z)){let A=this.assets(M)||{};for(let R of Object.values(A)){if(typeof R!=="string")continue;let D=`${Q.root}/${Q[M]}`,F=(P,G,T)=>{this.trigger("assetLoaded",{name:P,type:G,category:T})};if(GU.isImage(R))V.push(tK.image(`${D}/${R}`).then(()=>F(R,"image",M)));else V.push(tK.file(`${D}/${R}`).then(()=>F(R,"file",M)));this.trigger("assetQueued")}}for(let M in this.characters()){let A=this.character(M);if(!A)continue;let R="";if(typeof A.directory<"u")R=A.directory+"/";if(R=`${Q.root}/${Q.characters}/${R}`,typeof A.sprites<"u")for(let D of Object.values(A.sprites)){if(typeof D!=="string")continue;V.push(tK.image(`${R}${D}`).then(()=>{this.trigger("assetLoaded",{name:D,type:"image",category:"characters"})}))}if(typeof A.expressions<"u")for(let D of Object.values(A.expressions)){if(typeof D!=="string")continue;V.push(tK.image(`${R}${D}`).then(()=>{this.trigger("assetLoaded",{name:D,type:"image",category:"characters"})}))}if(typeof A.default_expression==="string")V.push(tK.image(`${R}${A.default_expression}`).then(()=>{this.trigger("assetLoaded",{name:A.default_expression,type:"image",category:"characters"})}));if(typeof A.layer_assets==="object"&&A.layer_assets)for(let[D,F]of Object.entries(A.layer_assets))for(let[P,G]of Object.entries(F))V.push(tK.image(`${R}${G}`).then(()=>{this.trigger("assetLoaded",{name:P,type:"image",category:"characters"})}));this.trigger("assetQueued")}}return Promise.all(V).then(()=>{return this.trigger("didPreloadAssets"),Promise.resolve()})}static translate(K){return sO(this.asEngine(),K)}static replaceVariables(K){return oO(this.asEngine(),K)}static async saveTo(K="SaveLabel",V=null,Q=null){return PF(this.asEngine(),K,V,Q)}static assertAsync(K,V=null,Q=null){return TF(this.asEngine(),K,V,Q)}static next(){return EF(this.asEngine())}static previous(){return BF(this.asEngine())}static resetGame(){return OM(this.asEngine())}static keyboardShortcut(K,V){return aO(this.asEngine(),K,V)}static upgrade(K,V,Q){return CF(this.asEngine(),K,V,Q)}static setupStorage(){return IF(this.asEngine())}static registerListener(K,V,Q=!1){return T7(this.asEngine(),K,V,Q)}static unregisterListener(K){return E7(this.asEngine(),K)}static async runListener(K,V=null,Q=null){return B7(this.asEngine(),K,V,Q)}static object(){return qM(this.asEngine())}static prepareAction(K,{cycle:V,extras:Q}){return P6(this.asEngine(),K,{cycle:V,extras:Q})}static async revert(K=null,V=!0,Q=!0){return JF(this.asEngine(),K,V,Q)}static async run(K,V=!0){return vF(this.asEngine(),K,V)}static alert(K,V){return J7(this.asEngine(),K,V)}static dismissAlert(K=null){return v7(this.asEngine(),K)}static loadFromSlot(K){return GF(this.asEngine(),K)}static async proceed({userInitiated:K=!1,skip:V=!1,autoPlay:Q=!1}={}){return kF(this.asEngine(),{userInitiated:K,skip:V,autoPlay:Q})}static async rollback(){return fF(this.asEngine())}static shouldProceed({userInitiated:K=!1,skip:V=!1,autoPlay:Q=!1}){return MM(this.asEngine(),{userInitiated:K,skip:V,autoPlay:Q})}static willProceed(){return WM(this.asEngine())}static stopTyping(K){return wF(this.asEngine(),K)}static shouldRollback(){return XM(this.asEngine())}static willRollback(){return AM(this.asEngine())}static playAmbient(){return eO(this.asEngine())}static stopAmbient(){return k7(this.asEngine())}static showMainScreen(){return KM(this.asEngine())}static showSplashScreen(){return VM(this.asEngine())}static autoPlay(K){return QM(this.asEngine(),K)}static distractionFree(){return f7(this.asEngine())}static setup(K){let V=this.components();return new Promise((U,H)=>{this.Storage.get("Settings").then((Y)=>{this.global("_first_run",!1),this._preferences=XU(this._preferences,Y),U()}).catch((Y)=>{if(console.warn("There was no settings saved. This may be the first time this game was opened, we'll create them now.",Y),this.global("_first_run",!0),this.setting("MultiLanguage")!==!0||this.setting("LanguageSelectionScreen")!==!0)this.Storage.set("Settings",this._preferences).then(()=>U()).catch(()=>U());else U()})}).then(()=>{for(let H of V)try{H.engine=this.asEngine(),hQ.register(H.tag,H)}catch(Y){t0.show("engine:component:already_registered",{tag:H.tag,component:H,unregisterCode:`
monogatari.unregisterComponent ('${H.tag}')
`})}if(this.setting("ServiceWorkers"))if(!C1.desktopApp&&!C1.cordova&&C1.serviceWorkers)if(window.location.protocol==="file:")console.warn("Service Workers are not available when opening the index.html file directly in your browser. Service Workers are available only when serving your files through a server, once you upload your game this warning will go away. You can also try using a simple server like this one for development: https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb/.");else navigator.serviceWorker.register("./service-worker.js").then((H)=>{H.onupdatefound=()=>{let Y=H.installing;if(Y)Y.onstatechange=()=>{if(Y.state==="installed"){if(navigator.serviceWorker.controller){let z=this.element(),M=` +
+

${this.string("NewContent")}.

+
+ `;z?.prepend(M),z?.on("click",'[data-ui="broadcast"][data-content="new-content"]',()=>{this.element()?.find('[data-ui="broadcast"][data-content="new-content"]').remove()})}}}}}).catch((H)=>{console.warn("Failed to register Service Worker:",H.message)});else console.warn("Service Workers are not available in this browser or have been disabled in the engine configuration. Service Workers are available only when serving your files through a server, once you upload your game this warning will go away. You can also try using a simple server like this one for development: https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb/");this.global("storageStructure",JSON.stringify(this.storage())),this.registerListener("open-screen",{callback:(H,Y)=>{this.showScreen(Y.data("open"))}}),this.registerListener("start",{callback:()=>{this.global("playing",!0),this.element().find('[data-ui="broadcast"][data-content="allow-playback"]').remove(),this.onStart().then(()=>{this.element().find("[data-screen]").each((M)=>{M.setState({open:!1})});let H=this.element().find('[data-screen="game"]').get(0);if(H)H.setState({open:!0});let Y=this.label(),z=this.state("step");if(Y)this.run(Y[z])})}}),this.registerListener("dismiss-alert",{callback:()=>{this.dismissAlert()}}),this.registerListener("distraction-free",{keys:"h",callback:()=>{this.distractionFree()}}),this.registerListener("skip",{keys:"s",callback:()=>{if(this.global("playing"))if(this.global("skip")!==null)this.skip(!1);else this.skip(!0)}}),this.registerListener("auto-play",{callback:()=>{this.autoPlay(this.global("_auto_play_timer")===void 0)}});let U=[];for(let H of this.components())H.engine=this.asEngine(),U.push(H.setup());for(let H of this.actions())H.engine=this.asEngine(),U.push(H.setup());return Promise.all(U).then(()=>{return this.global("_didSetup",!0),Promise.resolve()})}).catch((U)=>{console.error("Initialization error",U)})}static skip(K){return X6(this.asEngine(),K)}static showScreen(K){return Wz(this.asEngine(),K)}static hideScreens(){return W6(this.asEngine())}static resize(K,V,Q){return w7(this.asEngine(),K,V,Q)}static goBack(K,V){return j7(this.asEngine(),K,V)}static bind(K){let V=typeof C1.mobile==="function"?C1.mobile():C1.mobile;if(this.setting("Orientation")!=="any"&&V)window.addEventListener("orientationchange",()=>{if(C1.orientation!==this.setting("Orientation"))this.alert("orientation-warning",{message:"OrientationWarning"});else this.dismissAlert("orientation-warning")},!1);this.on("click",'[data-screen]:not([data-screen="game"]) [data-action="back"]',(z)=>{this.goBack(z,K)});let Q=this;this.on("click","[data-action]",function(z){let M=m0(this),A=M.data("action");if(A)z.stopPropagation(),Q.runListener(A,z,M);return A==="set-volume"}),this.keyboardShortcut(["right","space"],()=>{this.proceed({userInitiated:!0,skip:!1,autoPlay:!1}).then(()=>{}).catch((z)=>{this.debug.log(`Proceed Prevented +Reason: ${z}`)})}),this.keyboardShortcut("esc",()=>{if(m0(`${K} [data-screen="game"]`).isVisible()&&this.global("playing"))this.showScreen("settings");else if(m0(`${K} [data-screen="settings"]`).isVisible()&&this.global("playing"))this.showScreen("game")}),this.keyboardShortcut("shift+s",()=>{if(this.global("playing"))this.showScreen("save")}),this.keyboardShortcut("shift+l",()=>{if(this.global("playing"))this.showScreen("load")});let U=this.setting("ForceAspectRatio"),H=!0;switch(U){case"Visuals":m0('[data-content="visuals"]').addClass("forceAspectRatio");break;case"Global":this.parentElement().addClass("forceAspectRatio");break;default:H=!1}if(H){let z=this.setting("AspectRatio"),[M,A]=z.split(":"),R=parseInt(M),D=parseInt(A);if(!(C1.desktopApp&&U==="Global"))this.resize(null,R,D),window.addEventListener("resize",()=>this.resize(null,R,D))}let Y=[];for(let z of this.components())Y.push(z.bind(K));for(let z of this.actions())Y.push(z.bind(K));return Promise.all(Y).then(()=>{for(let z of this._listeners){let{keys:M,callback:A}=z;if(typeof M<"u")this.keyboardShortcut(M,A)}return this.global("_didBind",!0),Promise.resolve()})}static element(K=!1,V=!1){let Q=null,U=!1;if(K===!0)Q=document.querySelector("visual-novel"),U=Q!==null;else Q=m0("visual-novel"),U=Q.length>0;if(U===!1&&V===!1)t0.show("engine:element:not_ready",{});return Q}static on(K,V,Q){let U=this.element();if(U)if(typeof V==="function"&&Q===void 0)U.on(K,V);else U.on(K,V,Q)}static off(K,V){let Q=this.element();if(Q)Q.off(K,V)}static parentElement(){return m0(this._selector)}static trigger(K,V={}){let Q=new CustomEvent(K,{bubbles:!1,detail:V}),U=this.element(!0,!0);if(U)U.dispatchEvent(Q);else _z(()=>dispatchEvent(Q))}static displayInitialScreen(){return x7(this.asEngine())}static _setupRegistry(){if(typeof MonogatariDebug==="object")hQ.debug=!0;hQ.onError((K,V,Q,U)=>{t0.show("engine:component:lifecycle_error",{tag:Q,lifecycle:U,errorMessage:K.message,stackTrace:K.stack}),console.error(`[Monogatari] Component error in <${Q}> during ${U}:`,K)}),hQ.onMount((K,V)=>{this.trigger("componentDidMount",{component:K,tag:V})}),hQ.onUnmount((K,V)=>{this.trigger("componentDidUnmount",{component:K,tag:V})})}static async init(K="#monogatari"){if(this._selector=K,typeof window.Cypress<"u")this.setting("ExperimentalFeatures",!0);this._setupRegistry(),this.trigger("willInit");let V=this.Storage?.configuration();if(!V||V.name==="")this.setupStorage();if(this.trigger("willSetup"),await this.setup(K),this.trigger("didSetup"),this.trigger("willBind"),await this.bind(K),this.trigger("didBind"),this.ambientPlayer=new Audio,this.localize(),this.state({label:this.setting("Label")}),this.setting("Orientation")!=="any"){if(C1.mobile()&&C1.orientation!==this.setting("Orientation"))this.alert("orientation-warning",{message:"OrientationWarning"})}let Q=[];for(let U of this.components())Q.push(U.init(K));for(let U of this.actions())Q.push(U.init(K));if(this.setting("AutoSave")!==0&&typeof this.setting("AutoSave")==="number")this.debug.debug("Automatic save is enabled, setting up timeout"),this.global("_auto_save_interval",setInterval(()=>{this.debug.groupCollapsed("Automatic Save");let U=this.global("current_auto_save_slot");this.debug.debug("Saving data to slot",U),this.saveTo("AutoSaveLabel",U);let H=this.setting("Slots");if(U===H)this.global("current_auto_save_slot",1);else this.global("current_auto_save_slot",U+1);this.debug.groupEnd()},this.setting("AutoSave")*60000));else this.debug.debug("Automatic save is disabled. Section will be hidden from Load Screen"),this.element().find('[data-screen="load"] [data-ui="autoSaveSlots"]').hide();if(await Promise.all(Q),this.global("_didInit",!0),this.trigger("didInit"),this.setting("MultiLanguage")===!0&&this.setting("LanguageSelectionScreen")===!0&&this.global("_first_run")===!0)this.showScreen("language-selection"),this.on("didLocalize",()=>{if(this.Storage.set("Settings",this._preferences),this.element().find('[data-screen="language-selection"]').isVisible())this.displayInitialScreen()});else this.displayInitialScreen()}static random(K,V){try{return new kH(d8).integer(K,V)}catch(Q){return console.error(Q),new kH().integer(K,V)}}}var nH=$z;var xF={AdvanceHelp:"للتقدم في القصة انقز ŲØŲ²Ų± الفأره Ų§Ł„Ų£ŁŠŲ³Ų± او المس الؓاؓه في اي Ł…ŁƒŲ§Ł† او Ų§Ų¶ŲŗŲ· Ų²Ų± المسافة",AllowPlayback:"Ų£Ų¶ŲŗŲ· هنا Ł„ŲŖŁŲ¹ŁŠŁ„ Ų§Ł…ŁƒŲ§Ł†ŁŠŲ© ŲŖŲ“ŲŗŁŠŁ„ Ų§Ł„ŲµŁˆŲŖ",Audio:"Ų§Ł„Ų£ŲµŁˆŲ§ŲŖ",AutoPlay:"ŲŖŁ„Ł‚Ų§Ų¦ŁŠ",AutoPlayButton:"ŲŖŁŲ¹ŁŠŁ„ Ų§Ł„ŲŖŲ“ŲŗŁŠŁ„ Ų§Ł„ŲŖŁ„Ł‚Ų§Ų¦ŁŠ",AutoPlaySpeed:"Ų³Ų±Ų¹Ų© Ų§Ł„ŲŖŲ“ŲŗŁŠŁ„ Ų§Ł„ŲŖŁ„Ł‚Ų§Ų¦ŁŠ",Back:"ŲŖŲ±Ų§Ų¬Ų¹",BackButton:"Ų§Ł„Ų¹ŁˆŲÆŲ©",Cancel:"الغاؔ",Close:"اغلاق",Confirm:"هل ŲŖŲ±ŲŗŲØ ŲØŲ§Ł„Ų®Ų±ŁˆŲ¬ŲŸ",Credits:"Ų§Ł„Ų¹Ų§Ł…Ł„ŁŠŁ† على Ų§Ł„Ł…Ų“Ų±ŁˆŲ¹",Delete:"حذف",DialogLogButton:"اظهار Ų²Ų± Ų§Ł„Ų­ŁˆŲ§Ų±",FullScreen:"ملؔ الؓاؓة",Gallery:"Ł…Ų¹Ų±Ų¶ Ų§Ł„ŲµŁˆŲ±",Help:"مساعده",Hide:"اخفاؔ",HideButton:"اخفاؔ ŲµŁ†ŲÆŁˆŁ‚ Ų§Ł„Ų­ŁˆŲ§Ų±",iOSAudioWarning:"Ų§Ų¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„ŲµŁˆŲŖ غير Ł…ŲÆŲ¹ŁˆŁ…Ł‡ على أنظمة iOS",KeyboardShortcuts:"Ų„Ų®ŲŖŲµŲ§Ų±Ų§ŲŖ Ł„ŁˆŲ­Ų© Ų§Ł„Ł…ŁŲ§ŲŖŁŠŲ­",Language:"اللغة",Load:"Ų§Ų³ŲŖŲ±Ų¬Ų§Ų¹",LoadAutoSaveSlots:"خانات الحفظ Ų§Ł„ŲŖŁ„Ł‚Ų§Ų¦ŁŠ",LoadButton:"فتح Ų“Ų§Ų“Ų© الحفظ ŁˆŲ§Ł„Ų§Ų³ŲŖŲ±Ų¬Ų§Ų¹",Loading:"ŁŠŲŖŁ… الاسترجاع",LoadingMessage:"ŁŠŲ±Ų¬Ł‰ الانتظار Ų±ŁŠŲ«Ł…Ų§ ŁŠŲŖŁ… ŲŖŲ­Ł…ŁŠŁ„ الملفات",LoadSlots:"خانات الحفظ",LocalStorageWarning:"الحفظ Ų§Ł„Ł…Ų­Ł„ŁŠ غير Ł…ŲÆŲ¹ŁˆŁ… على هذا المتصفح",Log:"سجل",Music:"صوت Ų§Ł„Ł…ŁˆŲ³ŁŠŁ‚Ł‰",NewContent:"توجد Ł…Ų­ŲŖŁˆŁŠŲ§ŲŖ Ų¬ŲÆŁŠŲÆŁ‡ ŁŠŲ±Ų¬Ł‰ ŲŖŁ†Ų“ŁŠŲ· الصفحة لمؓاهدتها",NoSavedGames:"لا توجد ملفات حفظ",NoAutoSavedGames:"لا توجد خانات حفظ ŲŖŁ„Ł‚Ų§Ų¦ŁŠ",NoDialogsAvailable:"لا توجد حوارات. ستظهر Ų§Ł„Ų­ŁˆŲ§Ų±Ų§ŲŖ هنا عندما ŁŠŲŖŁ… ŁƒŲŖŲ§ŲØŲŖŁ‡Ų§",OK:"Ł…ŁˆŲ§ŁŁ‚",OrientationWarning:"الرجاؔ وضع الجهاز على الجانب الآخر Ł„ŲŖŲ³ŲŖŲ·ŁŠŲ¹ اللعب",Overwrite:"الاستبدال",QuickButtons:"Ų§Ų²Ų±Ų§Ų± خانات الحفظ Ų§Ł„Ų³Ų±ŁŠŲ¹",QuickMenu:"القائمة Ų§Ł„Ų³Ų±ŁŠŲ¹Ų©",Quit:"خروج",QuitButton:"انهاؔ اللعبه",Resolution:"Ų¹Ų±Ų¶ الؓاؓة",Save:"حفظ",SaveButton:"يفتح Ų“Ų§Ų“Ų© حفظ اللعبة",SaveInSlot:"حفظ في خانة",SelectYourLanguage:"Select your language",Settings:"Ų„Ų¹ŲÆŲ§ŲÆŲ§ŲŖ",SettingsButton:"يفتح صفحة ال؄عدادات",Show:"Ų¹Ų±Ų¶",Skip:"تخطي",SkipButton:"ŲØŲÆŲ” وضع Ų§Ł„ŲŖŲ®Ų·ŁŠ",SlotDeletion:"هل أنت Ł…ŲŖŲ£ŁƒŲÆ من رغبتك في حذف هذه Ų§Ł„Ų®Ų§Ł†Ų©ŲŸ",SlotOverwrite:"هل أنت Ł…ŲŖŲ£ŁƒŲÆ من رغبتك في Ų§Ų³ŲŖŲØŲÆŲ§Ł„ هذه Ų§Ł„Ų®Ų§Ł†Ų©ŲŸ",Sound:"مقدار صوت Ų§Ł„Ų§ŲµŁˆŲ§ŲŖ",Start:"ŲØŲÆŲ”",Stop:"ŲŖŁˆŁ‚Ł",TextSpeed:"Ų³Ų±Ų¹Ų© النص",Video:"مقدار صوت Ų§Ł„ŁŁŠŲÆŁŠŁˆ",Voice:"مقدار صوت Ų§Ł„ŁƒŁ„Ų§Ł… Ų§Ł„Ł…Ł†Ų·ŁˆŁ‚",Windowed:"نافذة"};var _F={AdvanceHelp:"Каб Š³ŃƒŠ»ŃŃ†ŃŒ, націсніце на прабел або Š»ŠµŠ²Š°ŃŽ кнопку Š¼Ń‹ŃˆŃ‹",AllowPlayback:"ŠŠ°Ń†Ń–ŃŠ½Ń–Ń†Šµ тут, каб Š“Š°Š·Š²Š¾Š»Ń–Ń†ŃŒ прайграванне Š°ŃžŠ“Ń‹Ń",Audio:"ŠŃžŠ“Ń‹Ń",AutoPlay:"ŠŃžŃ‚Š°",AutoPlayButton:"Š£ŠŗŠ»ŃŽŃ‡Ń‹Ń†ŃŒ Š°ŃžŃ‚Š°ŠæŃ€Š°Š¹Š³Ń€Š°Š²Š°Š½Š½Šµ",AutoPlaySpeed:"Š„ŃƒŃ‚ŠŗŠ°ŃŃ†ŃŒ Š°ŃžŃ‚Š°ŠæŃ€Š°Š¹Š³Ń€Š°Š²Š°Š½Š½Ń",Back:"ŠŠ°Š·Š°Š“",BackButton:"ŠŸŠµŃ€Š°Š¹ŃŃ†Ń– назаГ",Cancel:"Š”ŠŗŠ°ŃŠ°Š²Š°Ń†ŃŒ",Close:"Š—Š°ŠŗŃ€Ń‹Ń†ŃŒ",Confirm:"Выйсці?",Credits:"Цітры",Delete:"Š’Ń‹Š“Š°Š»Ń–Ń†ŃŒ",DialogLogButton:"ŠŸŠ°ŠŗŠ°Š·Š°Ń†ŃŒ Š¶ŃƒŃ€Š½Š°Š» Š“Ń‹ŃŠ»Š¾Š³Š°Ńž",FullScreen:"ŠŸŠ¾ŃžŠ½Ń‹ ŃŠŗŃ€Š°Š½",Gallery:"Š“Š°Š»ŠµŃ€ŃŃ",Help:"Дапамога",Hide:"Š”Ń…Š°Š²Š°Ń†ŃŒ",HideButton:"Š”Ń…Š°Š²Š°Ń†ŃŒ Ń‚ŃŠŗŃŃ‚Š°Š²Š°Šµ поле",iOSAudioWarning:"ŠŠ°Š»Š°Š“Ń‹ Š°ŃžŠ“Ń‹Ń не ŠæŠ°Š“Ń‚Ń€Ń‹Š¼Š»Ń–Š²Š°ŃŽŃ†Ń†Š° на iOS",KeyboardShortcuts:"Š„ŃƒŃ‚ŠŗŃ–Ń ŠŗŠ»Š°Š²Ń–ŃˆŃ‹",Language:"Мова",Load:"Š—Š°Š³Ń€ŃƒŠ·Ń–Ń†ŃŒ",LoadAutoSaveSlots:"ŠŃžŃ‚Š°Š·Š°Ń…Š°Š²Š°Š½Ń‹Ń Š³ŃƒŠ»ŃŒŠ½Ń–",LoadButton:"ŠŠ“ŠŗŃ€Ń‹Ń†ŃŒ Š¼ŠµŠ½ŃŽ Š·Š°Š³Ń€ŃƒŠ·ŠŗŃ–",Loading:"Š—Š°Š³Ń€ŃƒŠ·ŠŗŠ°",LoadingMessage:"ŠŸŠ°Ń‡Š°ŠŗŠ°Š¹Ń†Šµ ŠæŠ¾ŃžŠ½Š°Š¹ Š·Š°Š³Ń€ŃƒŠ·ŠŗŃ– Ń€ŃŃŃƒŃ€ŃŠ°Ńž",LoadSlots:"Š—Š°Ń…Š°Š²Š°Š½Ń‹Ń Š³ŃƒŠ»ŃŒŠ½Ń–",LocalStorageWarning:"Š›Š°ŠŗŠ°Š»ŃŒŠ½Š°Šµ ŃŃ…Š¾Š²Ń–ŃˆŃ‡Š° Š½ŠµŠ“Š°ŃŃ‚ŃƒŠæŠ½Š° ў Š³ŃŃ‚Ń‹Š¼ Š±Ń€Š°ŃžŠ·ŠµŃ€Ń‹",Log:"Š–ŃƒŃ€Š½Š°Š»",Music:"Š„ŃƒŃ‡Š½Š°ŃŃ†ŃŒ Š¼ŃƒŠ·Ń‹ŠŗŃ–",NewContent:"Š”Š°ŃŃ‚ŃƒŠæŠ½Š° новае змесціва, ŠæŠµŃ€Š°Š·Š°Š³Ń€ŃƒŠ·Ń–Ń†Šµ ŃŃ‚Š°Ń€Š¾Š½ŠŗŃƒ, каб Š°Ń‚Ń€Ń‹Š¼Š°Ń†ŃŒ Š°ŠæŠ¾ŃˆŠ½ŃŽŃŽ Š²ŠµŃ€ŃŃ–ŃŽ",NoSavedGames:"ŠŃŠ¼Š° захаваных Š³ŃƒŠ»ŃŒŠ½ŃŃž",NoAutoSavedGames:"ŠŃŠ¼Š° Š°ŃžŃ‚Š°Š·Š°Ń…Š°Š²Š°Š½Ń‹Ń… Š³ŃƒŠ»ŃŒŠ½ŃŃž",NoDialogsAvailable:"ŠŃŠ¼Š° Š“Š°ŃŃ‚ŃƒŠæŠ½Ń‹Ń… Š“Ń‹ŃŠ»Š¾Š³Š°Ńž. Š”Ń‹ŃŠ»Š¾Š³Ń– Š±ŃƒŠ“ŃƒŃ†ŃŒ Š·'ŃŃžŠ»ŃŃ†Ń†Š° тут па меры ŠæŃ€Š°Ń…Š¾Š“Š¶Š°Š½Š½Ń Š³ŃƒŠ»ŃŒŠ½Ń–",OK:"ŠžŠš",OrientationWarning:"Каб Š³ŃƒŠ»ŃŃ†ŃŒ, ŠæŠ°Š²ŃŃ€Š½Ń–Ń†Šµ вашу ŠæŃ€Ń‹Š»Š°Š“Ńƒ",Overwrite:"ŠŸŠµŃ€Š°Š·Š°ŠæŃ–ŃŠ°Ń†ŃŒ",QuickButtons:"ŠšŠ½Š¾ŠæŠŗŃ– Ń…ŃƒŃ‚ŠŗŠ°Š³Š° Š¼ŠµŠ½ŃŽ",QuickMenu:"Š„ŃƒŃ‚ŠŗŠ°Šµ Š¼ŠµŠ½ŃŽ",Quit:"Выйсці",QuitButton:"Выйсці Š· Š³ŃƒŠ»ŃŒŠ½Ń–",Resolution:"Š Š°Š·Ń€Š¾Š·Š½Š°ŃŃ†ŃŒ",Save:"Š—Š°Ń…Š°Š²Š°Ń†ŃŒ",SaveButton:"ŠŠ“ŠŗŃ€Ń‹Ń†ŃŒ Š¼ŠµŠ½ŃŽ Š·Š°Ń…Š°Š²Š°Š½Š½Ń",SaveInSlot:"Š—Š°Ń…Š°Š²Š°Ń†ŃŒ у слот",SelectYourLanguage:"Select your language",Settings:"ŠŠ°Š»Š°Š“Ń‹",SettingsButton:"ŠŠ“ŠŗŃ€Ń‹Ń†ŃŒ Š¼ŠµŠ½ŃŽ налаГ",Show:"ŠŸŠ°ŠŗŠ°Š·Š°Ń†ŃŒ",Skip:"ŠŸŃ€Š°ŠæŃƒŃŃ†Ń–Ń†ŃŒ",SkipButton:"ŠŃžŃ‚Š°ŠæŠµŃ€Š°Ń…Š¾Š“",SlotDeletion:"Š’Ń‹ ŃžŠæŃŃžŠ½ŠµŠ½Ń‹, ŃˆŃ‚Š¾ хочаце Š²Ń‹Š“Š°Š»Ń–Ń†ŃŒ Š³ŃŃ‚Ń‹ слот?",SlotOverwrite:"Š’Ń‹ ŃžŠæŃŃžŠ½ŠµŠ½Ń‹, ŃˆŃ‚Š¾ хочаце ŠæŠµŃ€Š°Š·Š°ŠæŃ–ŃŠ°Ń†ŃŒ Š³ŃŃ‚Ń‹ слот?",Sound:"Š“ŃƒŃ‡Š½Š°ŃŃ†ŃŒ Š³ŃƒŠŗŠ°Ńž",Start:"ŠŸŠ°Ń‡Š°Ń†ŃŒ",Stop:"Š”ŠæŃ‹Š½Ń–Ń†ŃŒ",TextSpeed:"Š„ŃƒŃ‚ŠŗŠ°ŃŃ†ŃŒ Ń‚ŃŠŗŃŃ‚Ńƒ",Video:"Š“ŃƒŃ‡Š½Š°ŃŃ†ŃŒ Š²Ń–Š“ŃŠ°",Voice:"Š“ŃƒŃ‡Š½Š°ŃŃ†ŃŒ голасу",Windowed:"Аконны Ń€ŃŠ¶Ń‹Š¼"};var NF={AdvanceHelp:"VocĆŖ pode avanƧar no jogo usando o botĆ£o esquerdo do mouse, clicando em qualquer lugar na tela do jogo ou pressionar a barra de espaƧo.",AllowPlayback:"Clique aqui para permitir a reprodução de Ć”udio",Audio:"Ɓudio",AutoPlay:"Auto",AutoPlayButton:"Ativar reprodução automĆ”tica",AutoPlaySpeed:"Velocidade de reprodução automĆ”tica",Back:"Voltar",BackButton:"Voltar",Cancel:"Cancelar",Close:"Fechar",Confirm:"Deseja sair?",Credits:"CrĆ©ditos",Delete:"Apagar",DialogLogButton:"Mostrar registos de diĆ”logo",FullScreen:"Tela Cheia",Gallery:"Galeria",Help:"Ajuda",Hide:"Esconder",HideButton:"Esconder caixa de texto",iOSAudioWarning:"As configuraƧƵes de Ć”udio nĆ£o sĆ£o suportadas no iOS",KeyboardShortcuts:"Atalhos de Teclado",Language:"LĆ­ngua",Load:"Carregar",LoadAutoSaveSlots:"Jogos Salvos Automaticamente",LoadButton:"Abrir Tela de Carregamento",Loading:"Carregando",LoadingMessage:"Aguarde enquanto os recursos sĆ£o carregados",LoadSlots:"Jogos Salvos",LocalStorageWarning:"O armazenamento local nĆ£o estĆ” disponĆ­vel neste navegador",Log:"Registo",Music:"Volume de MĆŗsica",NewContent:"HĆ” novo conteĆŗdo disponĆ­vel, recarregue a pĆ”gina para obter a versĆ£o mais recente",NoSavedGames:"Nenhum jogo salvo",NoAutoSavedGames:"Nenhum jogo salvo automaticamente",NoDialogsAvailable:"NĆ£o hĆ” diĆ”logos disponĆ­veis. Os diĆ”logos aparecerĆ£o aqui quando ocorrerem no jogo",OK:"OK",OrientationWarning:"Por favor rode o seu dispositivo para jogar",Overwrite:"Substituir",QuickButtons:"BotƵes de acesso rĆ”pido",QuickMenu:"Menu de acesso rĆ”pido",Quit:"Sair",QuitButton:"Sair do Jogo",Resolution:"Resolução",Save:"Salvar",SaveButton:"Abrir tela de salvar.",SaveInSlot:"Salvar em slot",SelectYourLanguage:"Selecione seu idioma",Settings:"ConfiguraƧƵes",SettingsButton:"Abrir a Tela de ConfiguraƧƵes",Show:"Mostrar",Skip:"Ignorar",SkipButton:"Entrar em modo de ignorar",SlotDeletion:"Tem certeza de que deseja excluir este jogo?",SlotOverwrite:"Tem certeza de que deseja substituir este jogo?",Sound:"Volume de Som",Start:"InĆ­cio",Stop:"Parar",TextSpeed:"Velocidade do Texto",Video:"Video Volume",Voice:"Volume de Voz",Windowed:"Em Janela"};var gF={AdvanceHelp:"é»žęŒ‰ę»‘é¼ å·¦éµć€č¼•č§øčž¢å¹•ć€ęˆ–ęŒ‰ē©ŗē™½éµē¹¼ēŗŒéŠęˆ²",AllowPlayback:"é»žę“Šä»„ę‰¹å‡†ę’­ę”¾č²ę•ˆ",Audio:"č²ę•ˆ",AutoPlay:"自動",AutoPlayButton:"é€²å…„č‡Ŗå‹•ę’­ę”¾ęØ”å¼",AutoPlaySpeed:"č‡Ŗå‹•ę’­ę”¾é€Ÿåŗ¦",Back:"čæ”å›ž",BackButton:"čæ”å›ž",Cancel:"å–ę¶ˆ",Close:"關閉",Confirm:"ä½ ē¢ŗå®šč¦é›¢é–‹äŗ†å—Žļ¼Ÿ",Credits:"č£½ä½œåŠå—šč¬",Delete:"åˆŖé™¤",DialogLogButton:"é”Æē¤ŗå°č©±ē“€éŒ„",FullScreen:"å…Øčž¢å¹•",Gallery:"åœ–åŗ«",Help:"幫助",Hide:"éš±č—",HideButton:"éš±č—å°č©±ę”†",iOSAudioWarning:"在 iOS äøŠē„”ę³•ę”Æę“č²ę•ˆčØ­å®š",KeyboardShortcuts:"éµē›¤åæ«ę·éµ",Language:"čŖžčØ€",Load:"載兄進度",LoadAutoSaveSlots:"č‡Ŗå‹•äæå­˜é€²åŗ¦",LoadButton:"ę‰“é–‹č¼‰å…„é€²åŗ¦ēš„ē•Œé¢",Loading:"載兄中",LoadingMessage:"åŖ’é«”åŠ č¼‰äø­ļ¼Œč«‹ēØå€™",LoadSlots:"éŠęˆ²å­˜ęŖ”",LocalStorageWarning:"ē€č¦½å™Øäøę”Æę“ Local Storage 功能",Log:"ē“€éŒ„",Music:"éŸ³ęØ‚éŸ³é‡",NewContent:"ęœ‰ę–°ēš„éŠęˆ²å…§å®¹äøŠē·šļ¼Œč«‹é‡ę–°č¼‰å…„ęœ¬é ļ¼Œä»„å–å¾—ęœ€ę–°ē‰ˆęœ¬",NoSavedGames:"ę²’ęœ‰å·²äæå­˜ēš„é€²åŗ¦",NoAutoSavedGames:"ę²’ęœ‰č‡Ŗå‹•äæå­˜ēš„é€²åŗ¦",NoDialogsAvailable:"ę²’ęœ‰å°č©±ć€‚č‹„å “ę™Æęœ‰å°č©±ļ¼Œå°‡ęœƒåœØé€™č£é”Æē¤ŗć€‚",OK:"OK",OrientationWarning:"č«‹ę—‹č½‰ä½ ēš„č£ē½®ä»„é€²č”ŒéŠęˆ²",Overwrite:"č¦†č“‹å­˜ęŖ”",QuickButtons:"åæ«é€Ÿéøå–®éµ",QuickMenu:"åæ«é€Ÿéøå–®",Quit:"離開",QuitButton:"é›¢é–‹éŠęˆ²",Resolution:"č§£åƒåŗ¦",Save:"äæå­˜é€²åŗ¦",SaveButton:"é–‹å•Ÿå­˜ęŖ”ä»‹é¢",SaveInSlot:"åœØé€™ä½ē½®äæå­˜éŠęˆ²",SelectYourLanguage:"éøę“‡čŖžčØ€",Settings:"設定",SettingsButton:"é–‹å•ŸčØ­å®šä»‹é¢",Show:"锯示",Skip:"快轉",SkipButton:"é€²å…„åæ«č½‰ęØ”å¼",SlotDeletion:"ä½ ę˜Æå¦ē¢ŗå®šč¦åˆŖé™¤é€™å€‹ä½ē½®ēš„å­˜ęŖ”ļ¼Ÿ",SlotOverwrite:"ä½ ę˜Æå¦ē¢ŗå®šč¦č¦†č“‹é€™å€‹ä½ē½®ēš„å­˜ęŖ”ļ¼Ÿ",Sound:"č²éŸ³éŸ³é‡",Start:"開始",Stop:"停止",TextSpeed:"ę–‡å­—é€Ÿåŗ¦",Video:"å½±ē‰‡éŸ³é‡",Voice:"čŖžéŸ³éŸ³é‡",Windowed:"視窗"};var yF={AdvanceHelp:"ęŒ‰äø‹ē©ŗę ¼é”®ęˆ–ē‚¹å‡»å±å¹•ä»„ē»§ē»­",AllowPlayback:"ē‚¹å‡»čæ™é‡Œä»„åÆē”ØčÆ­éŸ³å›žę”¾",Audio:"éŸ³ę•ˆ",AutoPlay:"č‡ŖåŠØ",AutoPlayButton:"Enable auto play",AutoPlaySpeed:"č‡ŖåŠØę’­ę”¾é€Ÿåŗ¦",Back:"后退",BackButton:"后退",Cancel:"å–ę¶ˆ",Close:"关闭",Confirm:"ē”®å®šč¦é€€å‡ŗå—ļ¼Ÿ",Credits:"Credits",Delete:"删除",DialogLogButton:"Show the dialog log",FullScreen:"å…Øå±ę˜¾ē¤ŗ",Gallery:"Gallery",Help:"帮助",Hide:"隐藏",HideButton:"éšč—ę–‡å­—",iOSAudioWarning:"iOSęš‚äøę”ÆęŒéŸ³ę•ˆč®¾å®š",KeyboardShortcuts:"Keyboard Shortcuts",Language:"语言",Load:"čÆ»å–",LoadAutoSaveSlots:"č‡ŖåŠØå­˜å‚Øēš„ęøøęˆčæ›åŗ¦",LoadButton:"ę˜¾ē¤ŗčÆ»å–ē•Œé¢",Loading:"加载中",LoadingMessage:"ē­‰å¾…ē“ ęåŠ č½½äø­",LoadSlots:"å­˜å‚Øēš„ęøøęˆčæ›åŗ¦",LocalStorageWarning:"čÆ„ęµč§ˆå™Øęš‚äøę”ÆęŒęœ¬åœ°å­˜å‚ØåŠŸčƒ½",Log:"Log",Music:"音乐音量",NoSavedGames:"ę²”ęœ‰å­˜å‚Øēš„ęøøęˆčæ›åŗ¦",NoAutoSavedGames:"ę²”ęœ‰č‡ŖåŠØå­˜å‚Øēš„ęøøęˆčæ›åŗ¦",NewContent:"ęœ‰ę–°ēš„å†…å®¹åÆä¾›ä½æē”Øļ¼Œé‡ę–°åŠ č½½é”µé¢ä»„čŽ·å–ęœ€ę–°ē‰ˆęœ¬",NoDialogsAvailable:"No dialogs available. Dialogs will appear here as they show up",OK:"確定",OrientationWarning:"čÆ·å°†č®¾å¤‡ę—‹č½¬ä»„ä½“éŖŒęøøęˆå†…å®¹",Overwrite:"覆盖",QuickButtons:"åæ«ę·čœå•ęŒ‰é’®",QuickMenu:"Quick Menu",Quit:"退出",QuitButton:"é€€å‡ŗęøøęˆ",Resolution:"åˆ†č¾ØēŽ‡",Save:"存攣",SaveButton:"ę˜¾ē¤ŗå­˜ę”£ē•Œé¢",SaveInSlot:"å†™å…„å­˜ę”£ę§½ä½",SelectYourLanguage:"Select your language",Settings:"ēŽÆå¢ƒč®¾å®š",SettingsButton:"ę˜¾ē¤ŗēŽÆå¢ƒč®¾å®šē•Œé¢",Show:"显示",Skip:"Skip",SkipButton:"Enter skip mode",SlotDeletion:"ē”®å®šč¦åˆ é™¤čæ™äøŖå­˜ę”£ę§½ä½å—ļ¼Ÿ",SlotOverwrite:"ē”®å®šč¦č¦†ē›–čæ™äøŖå­˜ę”£ę§½ä½å—ļ¼Ÿ",Sound:"éŸ³ę•ˆéŸ³é‡",Start:"开始",Stop:"停止",TextSpeed:"ę–‡å­—ę˜¾ē¤ŗé€Ÿåŗ¦",Video:"Video Volume",Voice:"čÆ­éŸ³éŸ³é‡",Windowed:"ēŖ—å£"};var hF={AdvanceHelp:"Gebruik de spatiebalk of linker muisknop om te spelen",AllowPlayback:"Click here to allow audio playback",Audio:"Audio",AutoPlay:"Auto",AutoPlayButton:"Enable auto play",AutoPlaySpeed:"Autoplay snelheid",Back:"Terug",BackButton:"Terug",Cancel:"Stop",Close:"Sluit",Confirm:"Ben je zeker dat je wilt stoppen?",Credits:"Credits",Delete:"Delete",DialogLogButton:"Show the dialog log",FullScreen:"Volledig scherm",Gallery:"Gallery",Help:"Help",Hide:"Verberg",HideButton:"Verberg tekst",KeyboardShortcuts:"Keyboard Shortcuts",iOSAudioWarning:"Audio instellingen worden niet ondersteund door iOS",Language:"Taal",Load:"Laad",LoadAutoSaveSlots:"Automatisch opgeslagen spellen",LoadButton:"Open het laadscherm",Loading:"Laden",LoadingMessage:"Wacht tot de onderdelen zijn geladen",LoadSlots:"Opgeslagen spellen",LocalStorageWarning:"Locale Opslag is niet mogelijk in deze Browser",Log:"Log",Music:"Muziek Volume",NewContent:"There is new content available, reload the page to get the latest version",NoSavedGames:"Geen opgeslagen spellen",NoAutoSavedGames:"Geen automatsch opgeslagen spellen",NoDialogsAvailable:"No dialogs available. Dialogs will appear here as they show up",OK:"OK",OrientationWarning:"Please rotate your device to play",Overwrite:"Overschrijven",QuickButtons:"Snelmenu knoppen",QuickMenu:"Quick Menu",Quit:"sluit",QuitButton:"Sluit spel",Resolution:"Resolutie",Save:"Opslaan",SaveButton:"Open de Save Screen",SaveInSlot:"Sla op in slot",SelectYourLanguage:"Select your language",Settings:"Instellingen",SettingsButton:"Open de instellingen",Show:"Tonen",Skip:"Skip",SkipButton:"Enter skip mode",SlotDeletion:"Weet u zeker dat u dit slot verwijderen?",SlotOverwrite:"Weet u zeker dat u dit slot overschrijven?",Sound:"Geluids volume",Start:"Start",Stop:"Stop",TextSpeed:"Tekst snelheid",Video:"Video Volume",Voice:"Stem Volume",Windowed:"Window modus"};var pF={AdvanceHelp:"To advance through the game, left-click or tap anywhere on the game screen or press the space key",AllowPlayback:"Click here to allow audio playback",Audio:"Audio",AutoPlay:"Auto",AutoPlayButton:"Enable auto play",AutoPlaySpeed:"Autoplay Speed",Back:"Back",BackButton:"Go back",Cancel:"Cancel",Close:"Close",Confirm:"Do you want to quit?",Credits:"Credits",Delete:"Delete",DialogLogButton:"Show the dialog log",FullScreen:"Full Screen",Gallery:"Gallery",Help:"Help",Hide:"Hide",HideButton:"Hide the text box",iOSAudioWarning:"Audio settings are not supported on iOS",KeyboardShortcuts:"Keyboard Shortcuts",Language:"Language",Load:"Load",LoadAutoSaveSlots:"Auto Saved Games",LoadButton:"Open the Load Screen",Loading:"Loading",LoadingMessage:"Wait while the assets are loaded",LoadSlots:"Saved Games",LocalStorageWarning:"Local Storage is not available in this browser",Log:"Log",Music:"Music Volume",NewContent:"There is new content available, reload the page to get the latest version",NoSavedGames:"No saved games",NoAutoSavedGames:"No automatically saved games",NoDialogsAvailable:"No dialogs available. Dialogs will appear here as they show up",OK:"OK",OrientationWarning:"Please rotate your device to play",Overwrite:"Overwrite",QuickButtons:"Quick Menu Buttons",QuickMenu:"Quick Menu",Quit:"Quit",QuitButton:"Quit Game",Resolution:"Resolution",Save:"Save",SaveButton:"Open the Save Screen",SaveInSlot:"Save in slot",SelectYourLanguage:"Select your language",Settings:"Settings",SettingsButton:"Open the Settings Screen",Show:"Show",Skip:"Skip",SkipButton:"Enter skip mode",SlotDeletion:"Are you sure you want to delete this slot?",SlotOverwrite:"Are you sure you want to overwrite this slot?",Sound:"Sound Volume",Start:"Start",Stop:"Stop",TextSpeed:"Text Speed",Video:"Video Volume",Voice:"Voice Volume",Windowed:"Windowed"};var cF={AdvanceHelp:"Pour avancer dans le jeu, appuyez sur la touche espace ou cliquez",AllowPlayback:"Cliquez ici pour autoriser la musique de fond",Audio:"Audio",AutoPlay:"Auto",AutoPlayButton:"Activer la lecture automatique",AutoPlaySpeed:"Vitesse de lecture automatique",Back:"Retour",BackButton:"Retour",Cancel:"Annuler",Close:"Fermer",Confirm:"Voulez-vous vraiment quitter?",Credits:"CrĆ©dits",Delete:"Supprimer",DialogLogButton:"Afficher le journal de dialogues",FullScreen:"Plein Ɖcran",Gallery:"Gallerie",Help:"Aide",Hide:"Cacher",HideButton:"Cacher le Texte",iOSAudioWarning:"Les paramĆØtres audio ne sont pas pris en charge par iOS",KeyboardShortcuts:"Raccourcis claviers",Language:"Langue",Load:"Charger",LoadAutoSaveSlots:"Parties enregistrĆ©es automatiquement",LoadButton:"Ouvrir l’écran de chargement",Loading:"Chargement",LoadingMessage:"Veuillez patienter pendant le chargement des donnĆ©es du jeu",LoadSlots:"Parties SauvegardĆ©es",LocalStorageWarning:"Le stockage local n’est pas disponible sur ce navigateur !",Log:"Journal",Music:"Volume de la Musique",NewContent:"Un nouveau contenu est disponible, rechargez la page pour obtenir la derniĆØre version",NoSavedGames:"Pas de parties sauvegardĆ©es",NoAutoSavedGames:"Aucune partie enregistrĆ©e automatiquement",NoDialogsAvailable:"Aucun dialogue disponible. Les boĆ®tes de dialogue apparaĆ®tront ici au fur et Ć  mesure qu'elles s'afficheront.",OK:"OK",OrientationWarning:"Changez l'orientation de votre appareil pour jouer.",Overwrite:"Ɖcraser",QuickButtons:"Boutons du Menu rapide",QuickMenu:"Menu rapide",Quit:"Quitter",QuitButton:"Quitter le Jeu",Resolution:"RĆ©solution",Save:"Sauvegarder",SaveButton:"Ouvrir l’écran de Sauvegarde",SaveInSlot:"Enregistrer Ć  l’emplacement",SelectYourLanguage:"Select your language",Settings:"PrĆ©fĆ©rences",SettingsButton:"Ouvrir l’écran des PrĆ©fĆ©rences",Show:"Monter",Skip:"Passer",SkipButton:"Skip mode",SlotDeletion:"Êtes-vous sĆ»r de vouloir supprimer cet emplacement ?",SlotOverwrite:"Êtes vous sĆ»r de vouloir remplacer cet emplacement ?",Sound:"Volume des Sons",Start:"DĆ©marrer",Stop:"ArrĆŖter",TextSpeed:"Vitesse du Texte",Video:"Volume des vidĆ©os",Voice:"Volume de la Voix",Windowed:"FenĆŖtrĆ©"};var uF={AdvanceHelp:"Um dich durch das Spiel zu navigieren, drücke die Leertaste oder klicke",AllowPlayback:"Click here to allow audio playback",Audio:"Audio",AutoPlay:"Auto",AutoPlayButton:"Enable auto play",AutoPlaySpeed:"AutoPlay-Geschwindigkeit",Back:"Zurück",BackButton:"Zurück",Cancel:"Abbrechen",Close:"Schließen",Confirm:"Mƶchtest Du das Spiel verlassen?",Credits:"Credits",Delete:"Lƶschen",DialogLogButton:"Show the dialog log",FullScreen:"Vollbildmodus",Gallery:"Gallery",Help:"Hilfe",Hide:"Verbergen",HideButton:"Text verbergen",iOSAudioWarning:"Audioeinstellungen werden unter iOS nicht unterstützt",KeyboardShortcuts:"Keyboard Shortcuts",Language:"Sprache",Load:"Laden",LoadAutoSaveSlots:"Automatisch gespeicherte Spiele",LoadButton:"Ɩffne den Ladebildschirm",Loading:"LƤdt",LoadingMessage:"Bitte warte, wƤhrend die Assets geladen werden",LoadSlots:"Gespeicherte Spiele",LocalStorageWarning:"Lokaler Speicher ist in diesem Browser nicht verfügbar",Log:"Log",Music:"Musik-LautstƤrke",NewContent:"There is new content available, reload the page to get the latest version",NoSavedGames:"Keine gespeicherten Spiele",NoAutoSavedGames:"Keine automatisch gespeicherten Spiele",NoDialogsAvailable:"No dialogs available. Dialogs will appear here as they show up",OK:"OK",OrientationWarning:"Um das Spiel zu spielen, Bitte drehen sie Ihr GerƤt",Overwrite:"Überschreiben",QuickButtons:"Schnellmenü SchaltflƤchen",QuickMenu:"Quick Menu",Quit:"Verlassen",QuitButton:"Spiel verlassen",Resolution:"Auflƶsung",Save:"Speichern",SaveButton:"Ɩffne den Speicherbildschirm",SaveInSlot:"In Slot speichern",SelectYourLanguage:"Select your language",Settings:"Optionen",SettingsButton:"Ɩffne die Optionen",Show:"Einblenden",Skip:"Skip",SkipButton:"Enter skip mode",SlotDeletion:"Bist Du sicher, dass Du diesen Slot lƶschen mƶchtest?",SlotOverwrite:"Bist Du sicher, dass Du diesen Slot überschreiben mƶchtest?",Sound:"Sound-LautstƤrke",Start:"Start",Stop:"Stop",TextSpeed:"Textgeschwindigkeit",Video:"Video Volume",Voice:"Stimmen-LautstƤrke",Windowed:"Fenstermodus"};var bF={AdvanceHelp:"Ahhoz, hogy tovĆ”bb haladj a jĆ”tĆ©kban, nyomd meg a bal egĆ©rgombot, koppints bĆ”rhovĆ” a kĆ©pernyőn, vagy nyomd le a space-t",AllowPlayback:"Kattints ide hogy engedĆ©lyezd a hangvisszajĆ”tszĆ”st",Audio:"Hang",AutoPlay:"Automata",AutoPlayButton:"Automatikus jĆ”tĆ©k engedĆ©lyezĆ©se",AutoPlaySpeed:"Automata jĆ”tĆ©ksebessĆ©g",Back:"Vissza",BackButton:"Menj vissza",Cancel:"MĆ©gse",Close:"BezĆ”r",Confirm:"Ki akarsz lĆ©pni?",Credits:"StĆ”blista",Delete:"TƶrlĆ©s",DialogLogButton:"PĆ”rbeszĆ©dnapló megjelenĆ­tĆ©se",FullScreen:"TeljeskĆ©pernyő",Gallery:"GalĆ©ria",Help:"SegĆ­tsĆ©g",Hide:"ElrejtĆ©s",HideButton:"Szƶvegdoboz elrejtĆ©se",iOSAudioWarning:"A hangbeĆ”llĆ­tĆ”sok nem tĆ”mogatottak iOS rendszereken",KeyboardShortcuts:"BillentyűkombinĆ”ciók",Language:"Nyelv",Load:"BetƶltĆ©s",LoadAutoSaveSlots:"Automatikusan elmentett jĆ”tĆ©kmenetek",LoadButton:"BetƶltőkĆ©pernyő megnyitĆ”sa",Loading:"BetƶltĆ©s",LoadingMessage:"VĆ”rj, amĆ­g az erőforrĆ”sok betƶltenek",LoadSlots:"Mentett JĆ”tĆ©kmenetek",LocalStorageWarning:"A LokĆ”lis TĆ”rhely nem talĆ”lható ebben a keresőben",Log:"Napló",Music:"Zene Hangereje",NewContent:"Új tartalom elĆ©rhető, frissĆ­tsd az oldalt a legĆŗjabb verzióért",NoSavedGames:"Nem talĆ”lható mentett jĆ”tĆ©kmenet",NoAutoSavedGames:"Nem talĆ”lható automatikusan mentett jĆ”tĆ©kmenet",NoDialogsAvailable:"Nem talĆ”lható pĆ”rbeszĆ©d. A pĆ”rbeszĆ©dek itt fognak megjelenni amint talĆ”lkozol velük",OK:"OkĆ©",OrientationWarning:"KĆ©rlek, fordĆ­tsd el az eszkƶzƶd a jĆ”tĆ©khoz",Overwrite:"FelülĆ­rĆ”s",QuickButtons:"Gyorsmenü gombok",QuickMenu:"Gyorsmenü",Quit:"KilĆ©pĆ©s",QuitButton:"KilĆ©pĆ©s a jĆ”tĆ©kból",Resolution:"FelbontĆ”s",Save:"MentĆ©s",SaveButton:"MentĆ©sek megnyitĆ”sa",SaveInSlot:"Slotba mentĆ©s",SelectYourLanguage:"Nyelved kivĆ”lasztĆ”sa",Settings:"BeĆ”llĆ­tĆ”sok",SettingsButton:"BeĆ”llĆ­tĆ”sok megnyitĆ”sa",Show:"Mutasd",Skip:"KihagyĆ”s",SkipButton:"KihagyĆ”s-mód bekapcsolĆ”sa",SlotDeletion:"Biztosan ki akarod tƶrƶlni ezt a slot-ot?",SlotOverwrite:"Biztosan felül akarod Ć­rni ezt a slot-ot?",Sound:"Hangerő",Start:"Start",Stop:"Stop",TextSpeed:"Szƶveg SebessĆ©ge",Video:"Videó Hangereje",Voice:"BeszĆ©d Hangereje",Windowed:"Ablakozott"};var lF={AdvanceHelp:"Untuk melanjutkan permainan, klik kiri atau ketuk di mana saja pada layar permainan atau tekan tombol spasi",AllowPlayback:"Klik di sini untuk menyalakan putar balik audio",Audio:"Audio",AutoPlay:"Auto",AutoPlayButton:"Nyalakan main otomatis",AutoPlaySpeed:"Kecepatan main otomatis",Back:"Kembali",BackButton:"Kembali",Cancel:"Batalkan",Close:"Tutup",Confirm:"Apakah Anda ingin keluar?",Credits:"Kredit",Delete:"Hapus",DialogLogButton:"Tampilkan log dialog",FullScreen:"Layar Penuh",Gallery:"Galeri",Help:"Bantuan",Hide:"Sembunyikan",HideButton:"Sembunyikan kotak teks",iOSAudioWarning:"Pengaturan audio tidak didukung pada iOS",KeyboardShortcuts:"Pintasan papan tombol",Language:"Bahasa",Load:"Muat",LoadAutoSaveSlots:"Permainan yang Tersimpan Otomatis",LoadButton:"Buka layar pemuatan",Loading:"Memuat",LoadingMessage:"Tunggu sementara aset dimuat",LoadSlots:"Permainan yang Tersimpan",LocalStorageWarning:"Penyimpanan lokal tidak tersedia pada peramban ini",Log:"Log",Music:"Volume Musik",NewContent:"Ada konten baru tersedia, muat ulang halaman untuk mendapatkan versi terkini",NoSavedGames:"Tidak ada permainan yang tersimpan",NoAutoSavedGames:"Tidak ada permainan yang tersimpan otomatis",NoDialogsAvailable:"Tidak ada dialog yang tersedia. Dialog akan ditampilkan di sini ketika muncul",OK:"OK",OrientationWarning:"Mohon putar perangkat Anda untuk bermain",Overwrite:"Timpa",QuickButtons:"Tombol Menu Pintas",QuickMenu:"Menu Pintas",Quit:"Keluar",QuitButton:"Keluar Permainan",Resolution:"Resolusi",Save:"Simpan",SaveButton:"Buka layar Simpan",SaveInSlot:"Simpan di slot",SelectYourLanguage:"Pilih bahasa Anda",Settings:"Pengaturan",SettingsButton:"Buka layar Pengaturan",Show:"Tampilkan",Skip:"Lewati",SkipButton:"Masuki mode lewati",SlotDeletion:"Apakah Anda yakin ingin menghapus slot ini?",SlotOverwrite:"Apakah Anda yakin ingin menimpa slot ini?",Sound:"Volume Bunyi",Start:"Mulai",Stop:"Berhenti",TextSpeed:"Kecepatan Teks",Video:"Volume Video",Voice:"Volume Suara",Windowed:"Berjendela"};var dF={AdvanceHelp:"ć‚²ćƒ¼ćƒ ć‚’é€²ć‚ć‚‹ćŸć‚ć«ćÆć€ć‚¹ćƒšćƒ¼ć‚¹ć‚­ćƒ¼ć‚’ęŠ¼ć™ć‹ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™",AllowPlayback:"Click here to allow audio playback",Audio:"ć‚Ŗćƒ¼ćƒ‡ć‚£ć‚Ŗ",AutoPlay:"自動",AutoPlayButton:"Enable auto play",AutoPlaySpeed:"č‡Ŗå‹•å†ē”Ÿé€Ÿåŗ¦",Back:"å·»ćęˆ»ć—",BackButton:"å·»ćęˆ»ć—",Cancel:"ć‚­ćƒ£ćƒ³ć‚»ćƒ«",Close:"閉悁恦",Confirm:"ēµ‚äŗ†ć—ć¾ć™ć‹ļ¼Ÿ",Credits:"Credits",Delete:"Delete",DialogLogButton:"Show the dialog log",FullScreen:"å…Øē”»é¢č”Øē¤ŗ",Gallery:"Gallery",Help:"ćƒ˜ćƒ«ćƒ—",Hide:"ć€Œéžč”Øē¤ŗć€",HideButton:"ćƒ†ć‚­ć‚¹ćƒˆć‚’éš ć—ć¾ć™",iOSAudioWarning:"iOSć§ćÆć‚Ŗćƒ¼ćƒ‡ć‚£ć‚ŖčØ­å®šćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ć¾ć›ć‚“",KeyboardShortcuts:"Keyboard Shortcuts",Language:"čØ€čŖž",Load:"ćƒ­ćƒ¼ćƒ‰",LoadAutoSaveSlots:"č‡Ŗå‹•ēš„ć«äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ",LoadButton:"ćƒ­ćƒ¼ćƒ‰ē”»é¢ć‚’é–‹ćć¾ć™",Loading:"読み込み中",LoadingMessage:"ćƒ•ć‚”ć‚¤ćƒ«ćŒćƒ­ćƒ¼ćƒ‰ć•ć‚Œć‚‹ć®ć‚’å¾…ć”ć¾ć™",LoadSlots:"äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ",LocalStorageWarning:"ć“ć®ćƒ–ćƒ©ć‚¦ć‚¶ć§ćÆćƒ­ćƒ¼ć‚«ćƒ«ć‚¹ćƒˆćƒ¬ćƒ¼ć‚øćÆä½æē”Øć§ćć¾ć›ć‚“",Log:"Log",Music:"éŸ³ę„½ć®éŸ³é‡",NewContent:"There is new content available, reload the page to get the latest version",NoSavedGames:"äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ćÆć‚ć‚Šć¾ć›ć‚“",NoAutoSavedGames:"č‡Ŗå‹•ēš„ć«äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ćÆć‚ć‚Šć¾ć›ć‚“",NoDialogsAvailable:"No dialogs available. Dialogs will appear here as they show up",OK:"OK",OrientationWarning:"Please rotate your device to play",Overwrite:"äøŠę›øć",QuickButtons:"ć‚Æć‚¤ćƒƒć‚Æćƒ”ćƒ‹ćƒ„ćƒ¼ćƒœć‚æćƒ³",QuickMenu:"Quick Menu",Quit:"終了する",QuitButton:"ć‚²ćƒ¼ćƒ ć‚’ēµ‚äŗ†ć—ć¾ć™",Resolution:"č§£åƒåŗ¦",Save:"ć‚»ćƒ¼ćƒ–",SaveButton:"äæå­˜ē”»é¢ć‚’é–‹ćć¾ć™",SaveInSlot:"ć‚¹ćƒ­ćƒƒćƒˆć«ć‚»ćƒ¼ćƒ–ć™ć‚‹",SelectYourLanguage:"Select your language",Settings:"ē’°å¢ƒčØ­å®š",SettingsButton:"čØ­å®šē”»é¢ć‚’é–‹ćć¾ć™",Show:"ć‚·ćƒ§ćƒ¼",Skip:"Skip",SkipButton:"Enter skip mode",SlotDeletion:"ęœ¬å½“ć«ć“ć®ć‚¹ćƒ­ćƒƒćƒˆć‚’å‰Šé™¤ć—ć¾ć™ć‹ļ¼Ÿ",SlotOverwrite:"ęœ¬å½“ć«ć“ć®ć‚¹ćƒ­ćƒƒćƒˆć‚’äøŠę›øćć—ć¾ć™ć‹ļ¼Ÿ",Sound:"åŠ¹ęžœéŸ³ć®éŸ³é‡",Start:"ć‚¹ć‚æćƒ¼ćƒˆ",Stop:"停止",TextSpeed:"ćƒ†ć‚­ć‚¹ćƒˆć‚¹ćƒ”ćƒ¼ćƒ‰",Video:"Video Volume",Voice:"ćƒœć‚¤ć‚¹ć®éŸ³é‡",Windowed:"ēŖ“"};var sF={AdvanceHelp:"ź²Œģž„ģ„ ģ§„ķ–‰ķ•˜ė ¤ė©“ ź²Œģž„ ķ™”ė©“ģ„ 좌큓릭 ė˜ėŠ” ķƒ­ķ•˜ź±°ė‚˜ ģŠ¤ķŽ˜ģ“ģŠ¤ 키넼 ėˆ„ė„“ģ„øģš”",AllowPlayback:"ģ˜¤ė””ģ˜¤ ģž¬ģƒģ„ ķ—ˆģš©ķ•˜ė ¤ė©“ 여기넼 ķ“ė¦­ķ•˜ģ„øģš”",Audio:"ģ˜¤ė””ģ˜¤",AutoPlay:"ģžė™ģž¬ģƒ",AutoPlayButton:"ģžė™ģž¬ģƒė‹Øģ¶”",AutoPlaySpeed:"ģžė™ģž¬ģƒ ģ†ė„",Back:"되감기",BackButton:"ģ“ģ „ 지문 볓기",Cancel:"ģ·Øģ†Œ",Close:"ė‹«źø°",Confirm:"ģ¢…ė£Œķ•˜ģ‹œź² ģ–“ģš”?",Credits:"ė§Œė“ ģ“",Delete:"ģ‚­ģ œ",DialogLogButton:"ėŒ€ģ‚¬ė” 볓기",FullScreen:"전첓화멓",Gallery:"갤러리",Help:"ė„ģ›€ė§",Hide:"숨기기",HideButton:"지문 ģ°½ģ„ ģˆØź¹ė‹ˆė‹¤",iOSAudioWarning:"ģ˜¤ė””ģ˜¤ ģ„¤ģ •ģ€ iOSģ—ģ„œ ģ§€ģ›ė˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤",KeyboardShortcuts:"ķ‚¤ė³“ė“œ 단축키",Language:"ģ–øģ–“",Load:"불러오기",LoadAutoSaveSlots:"ģžė™ģ €ģž„ėœ ź²Œģž„",LoadButton:"불러오기 화멓 ģ—“źø°",Loading:"ė¶ˆėŸ¬ģ˜¤ėŠ” 중",LoadingMessage:"ģžģ‚°ģ„ ė¶ˆėŸ¬ģ˜¤ėŠ” ė™ģ•ˆ źø°ė‹¤ė ¤ģ£¼ģ„øģš”",LoadSlots:"ģ €ģž„ėœ ź²Œģž„",LocalStorageWarning:"딜컬 ģ €ģž„ģ†ŒėŠ” ģ“ ėøŒė¼ģš°ģ €ģ—ģ„œ ģ‚¬ģš© ė¶ˆź°€ėŠ„ķ•©ė‹ˆė‹¤",Log:"ėŒ€ģ‚¬ė”",Music:"ģŒģ•… ģŒėŸ‰",NewContent:"ķŽ˜ģ“ģ§€ė„¼ ģƒˆė”œź³ ģ¹Øķ•˜ėŠ” 것으딜 ģµœģ‹  ė²„ģ „ģ˜ 새딜욓 ģ½˜ķ…ģø ė„¼ ģ‚¬ģš© ź°€ėŠ„ķ•  수 ģžˆģŠµė‹ˆė‹¤",NoSavedGames:"ģ €ģž„ėœ ź²Œģž„ģ“ ģ—†ģŠµė‹ˆė‹¤",NoAutoSavedGames:"ģžė™ģœ¼ė”œ ģ €ģž„ėœ ź²Œģž„ģ“ ģ—†ģŠµė‹ˆė‹¤",NoDialogsAvailable:"ėŒ€ķ™” ģƒģžė„¼ ģ‚¬ģš©ķ•  수 ģ—†ģŠµė‹ˆė‹¤. ģ‚¬ģš©ķ•  수 ģžˆź²Œ 되멓 여기에 ėŒ€ķ™” ģƒģžź°€ ė‚˜ķƒ€ė‚©ė‹ˆė‹¤",OK:"ķ™•ģø",OrientationWarning:"ķ”Œė ˆģ“ė„¼ ģœ„ķ•“ 기기넼 ķšŒģ „ķ•“ģ£¼ģ„øģš”",Overwrite:"ė®ģ–“ģ“°źø°",QuickButtons:"빠넸 메뉓 단추",QuickMenu:"빠넸 메뉓",Quit:"ģ¢…ė£Œ",QuitButton:"ź²Œģž„ ģ¢…ė£Œ",Resolution:"ķ•“ģƒė„",Save:"ģ €ģž„ķ•˜źø°",SaveButton:"ģ €ģž„ ķ™”ė©“ģ„ ģ—½ė‹ˆė‹¤",SaveInSlot:"ģŠ¬ė”Æģ— ģ €ģž„",SelectYourLanguage:"언얓넼 ģ„ ķƒķ•“ģ£¼ģ„øģš”",Settings:"설정",SettingsButton:"설정 ķ™”ė©“ģ„ ģ—½ė‹ˆė‹¤",Show:"ė³“ģ“źø°",Skip:"ė„˜źø°źø°",SkipButton:"ė„˜źø°źø° ėŖØė“œ ģ‚¬ģš©",SlotDeletion:"ģ“ ģŠ¬ė”Æģ„ ģ‚­ģ œķ•˜ģ‹œź² ģ–“ģš”?",SlotOverwrite:"ģ“ ģŠ¬ė”Æģ— ė®ģ–“ģ“°ģ‹œź² ģ–“ģš”?",Sound:"ģŒķ–„ ģŒėŸ‰",Start:"ģ‹œģž‘",Stop:"중지",TextSpeed:"źø€ģž ģ†ė„",Video:"ė¹„ė””ģ˜¤ ģŒėŸ‰",Voice:"ģŒģ„± ģŒėŸ‰",Windowed:"ģ°½ 화멓"};var oF={AdvanceHelp:"Pode avanƧar no jogo usando o botĆ£o esquerdo do rato, tocar em qualquer sitĆ­o do ecrĆ£ de jogo ou carregar na barra de espaƧo.",AllowPlayback:"Clique aqui para permitir a reprodução de Ć”udio",Audio:"Ɓudio",AutoPlay:"Auto",AutoPlayButton:"Ativar reprodução automĆ”tica",AutoPlaySpeed:"Velocidade de reprodução automĆ”tica",Back:"Voltar",BackButton:"Voltar",Cancel:"Cancelar",Close:"Fechar",Confirm:"Deseja sair?",Credits:"CrĆ©ditos",Delete:"Apagar",DialogLogButton:"Mostrar registos de diĆ”logo",FullScreen:"EcrĆ£ Inteiro",Gallery:"Galeria",Help:"Ajuda",Hide:"Esconder",HideButton:"Esconder caixa de texto",iOSAudioWarning:"As configuraƧƵes de Ć”udio nĆ£o sĆ£o suportadas no iOS",KeyboardShortcuts:"Atalhos de Teclado",Language:"LĆ­ngua",Load:"Carregar",LoadAutoSaveSlots:"Jogos Salvos Automaticamente",LoadButton:"Abrir EcrĆ£ de Carregamento",Loading:"A Carregar",LoadingMessage:"Aguarde enquanto os recursos sĆ£o carregados",LoadSlots:"Jogos Salvos",LocalStorageWarning:"O armazenamento local nĆ£o estĆ” disponĆ­vel neste navegador",Log:"Registo",Music:"Volume de MĆŗsica",NewContent:"HĆ” novo conteĆŗdo disponĆ­vel, recarregue a pĆ”gina para obter a versĆ£o mais recente",NoSavedGames:"Nenhum jogo salvo",NoAutoSavedGames:"Nenhum jogo salvo automaticamente",NoDialogsAvailable:"NĆ£o hĆ” diĆ”logos disponĆ­veis. Os diĆ”logos aparecerĆ£o aqui quando ocorrerem no jogo",OK:"OK",OrientationWarning:"Por favor rode o seu dispositivo para jogar",Overwrite:"Substituir",QuickButtons:"BotƵes de acesso rĆ”pido",QuickMenu:"Menu de acesso rĆ”pido",Quit:"Sair",QuitButton:"Sair do Jogo",Resolution:"Resolução",Save:"Salvar",SaveButton:"Abrir ecrĆ£ de salvar.",SaveInSlot:"Salvar em ranhura",SelectYourLanguage:"Select your language",Settings:"ConfiguraƧƵes",SettingsButton:"Abrir o EcrĆ£ de ConfiguraƧƵes",Show:"Mostrar",Skip:"Ignorar",SkipButton:"Entrar em modo de ignorar",SlotDeletion:"Tem a certeza de que deseja eliminar este jogo?",SlotOverwrite:"Tem a certeza de que deseja substituir este jogo?",Sound:"Volume de Som",Start:"InĆ­cio",Stop:"Parar",TextSpeed:"Velocidade de Texto",Video:"Video Volume",Voice:"Volume de Voz",Windowed:"Em Janela"};var mF={AdvanceHelp:"Чтобы ŠøŠ³Ń€Š°Ń‚ŃŒ, нажимайте на пробел или на Š»ŠµŠ²ŃƒŃŽ кнопку Š¼Ń‹ŃˆŠø.",AllowPlayback:"Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ звуковое сопровожГение",Audio:"Š—Š²ŃƒŠŗ",AutoPlay:"Авто",AutoPlayButton:"Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ авточтение",AutoPlaySpeed:"Š”ŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ Š°Š²Ń‚Š¾Ń‡Ń‚ŠµŠ½ŠøŃ",Back:"ŠŠ°Š·Š°Š“",BackButton:"Š’ŠµŃ€Š½ŃƒŃ‚ŃŒŃŃ назаГ",Cancel:"ŠžŃ‚Š¼ŠµŠ½Š°",Close:"Š—Š°ŠŗŃ€Ń‹Ń‚ŃŒ",Confirm:"Š’Ń‹ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾ хотите выйти?",Credits:"Авторы",Delete:"Š£Š“Š°Š»ŠøŃ‚ŃŒ",DialogLogButton:"ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚ŃŒ Š¶ŃƒŃ€Š½Š°Š» Гиалогов",FullScreen:"ŠŸŠ¾Š»Š½Ń‹Š¹ ŃŠŗŃ€Š°Š½",Gallery:"Š“Š°Š»ŠµŃ€ŠµŃ",Help:"ŠŸŠ¾Š¼Š¾Ń‰ŃŒ",Hide:"Š”ŠŗŃ€Ń‹Ń‚ŃŒ",HideButton:"Š”ŠŗŃ€Ń‹Ń‚ŃŒ текст",iOSAudioWarning:"ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø звука не ŠæŠ¾Š“Š“ŠµŃ€Š¶ŠøŠ²Š°ŃŽŃ‚ŃŃ на iOS.",KeyboardShortcuts:"Š“Š¾Ń€ŃŃ‡ŠøŠµ клавиши",Language:"Язык",Load:"Š—Š°Š³Ń€ŃƒŠ·ŠøŃ‚ŃŒ",LoadAutoSaveSlots:"Автосохранённые игры",LoadButton:"ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ Š·Š°Š³Ń€ŃƒŠ·ŠŗŠø",Loading:"Š—Š°Š³Ń€ŃƒŠ·ŠŗŠ°",LoadingMessage:"ŠŸŠ¾Š“Š¾Š¶Š“ŠøŃ‚Šµ, ŠæŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, игра Š·Š°Š³Ń€ŃƒŠ¶Š°ŠµŃ‚ся",LoadSlots:"Дохранённые игры",LocalStorageWarning:"Š›Š¾ŠŗŠ°Š»ŃŒŠ½Š¾Šµ хранилище Š½ŠµŠ“Š¾ŃŃ‚ŃƒŠæŠ½Š¾ в ŃŃ‚Š¾Š¼ Š±Ń€Š°ŃƒŠ·ŠµŃ€Šµ.",Log:"Š–ŃƒŃ€Š½Š°Š»",Music:"Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ Š¼ŃƒŠ·Ń‹ŠŗŠø",NewContent:"Š”Š¾ŃŃ‚ŃƒŠæŠ½Š¾ обновление, ŠæŠµŃ€ŠµŠ·Š°Š³Ń€ŃƒŠ·ŠøŃ‚Šµ ŃŃ‚Ń€Š°Š½ŠøŃ†Ńƒ",NoSavedGames:"ŠŠµŃ‚ сохранённых игр",NoAutoSavedGames:"ŠŠµŃ‚ автосохранённых игр",NoDialogsAvailable:"ŠŠµŃ‚ Гиалогов. Диалоги Š±ŃƒŠ“ŃƒŃ‚ ŠæŠ¾ŃŠ²Š»ŃŃ‚ŃŒŃŃ зГесь по мере ŠæŃ€Š¾Ń…Š¾Š¶Š“ŠµŠ½ŠøŃ игры",OK:"ŠžŠš",OrientationWarning:"Чтобы ŠøŠ³Ń€Š°Ń‚ŃŒ, ŠæŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, поверните Š’Š°ŃˆŠµ ŃƒŃŃ‚Ń€Š¾Š¹ŃŃ‚Š²Š¾",Overwrite:"ŠŸŠµŃ€ŠµŠ·Š°ŠæŠøŃŠ°Ń‚ŃŒ",QuickButtons:"Кнопки быстрого Š¼ŠµŠ½ŃŽ",QuickMenu:"Быстрое Š¼ŠµŠ½ŃŽ",Quit:"Выйти",QuitButton:"Выйти ŠøŠ· игры",Resolution:"Š Š°Š·Ń€ŠµŃˆŠµŠ½ŠøŠµ",Save:"Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ",SaveButton:"ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ ŃŠ¾Ń…Ń€Š°Š½ŠµŠ½ŠøŃ",SaveInSlot:"Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ",SelectYourLanguage:"Select your language",Settings:"ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø",SettingsButton:"ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ настроек",Show:"ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚ŃŒ",Skip:"ŠŸŃ€Š¾ŠæŃƒŃŃ‚ŠøŃ‚ŃŒ",SkipButton:"АвтоперехоГ",SlotDeletion:"Š’Ń‹ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾ хотите ŃƒŠ“Š°Š»ŠøŃ‚ŃŒ ŃŃ‚Š¾ сохранение?",SlotOverwrite:"Š’Ń‹ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾ хотите ŠæŠµŃ€ŠµŠ·Š°ŠæŠøŃŠ°Ń‚ŃŒ ŃŃ‚Š¾ сохранение?",Sound:"Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ ŃŃ„Ń„ŠµŠŗŃ‚Š¾Š²",Start:"ŠŠ°Ń‡Š°Ń‚ŃŒ ŠøŠ³Ń€Ńƒ",Stop:"Дтоп",TextSpeed:"Š”ŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ текста",Video:"Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ виГео",Voice:"Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ голоса",Windowed:"ŠžŠŗŠ¾Š½Š½Ń‹Š¹ режим"};var nF={AdvanceHelp:"Para avanzar en el juego, presiona espacio o haz click",AllowPlayback:"Click here to allow audio playback",Audio:"Audio",AutoPlay:"Auto",AutoPlayButton:"Activar juego automĆ”tico",AutoPlaySpeed:"Velocidad de Juego AutomĆ”tico",Back:"AtrĆ”s",BackButton:"AtrĆ”s",Cancel:"Cancelar",Close:"Cerrar",Confirm:"ĀæDeseas salir?",Credits:"CrĆ©ditos",Delete:"Eliminar",DialogLogButton:"Mostrar el historial de dialogos",FullScreen:"Pantalla Completa",Gallery:"GalerĆ­a",Help:"Ayuda",Hide:"Ocultar",HideButton:"Esconder el Texto",iOSAudioWarning:"Las configuraciones de Audio no estĆ”n disponibles en iOS",KeyboardShortcuts:"Atajos de Teclado",Language:"Lenguaje",Load:"Cargar",LoadAutoSaveSlots:"Juegos Guardados Automaticamente",LoadButton:"Abrir la Pantalla de Cargar",Loading:"Cargando",LoadingMessage:"Espere mientras se cargan los archivos",LoadSlots:"Juegos Guardados",LocalStorageWarning:"El Almacenaje Local no estĆ” disponible en este navegador",Log:"Historial",Music:"Volumen de la MĆŗsica",NewContent:"Un nuevo contenido estĆ” disponible, recarga la pĆ”gina para obtener la versión mĆ”s nueva",NoSavedGames:"No hay juegos guardados",NoAutoSavedGames:"No hay juegos guardados automaticamente",NoDialogsAvailable:"No hay dialogos disponibles. Los dialogos aparecerĆ”n aqui una vez que ocurran en el juego",OK:"Aceptar",OrientationWarning:"Por favor rota tu dispositivo para jugar",Overwrite:"Sobreescribir",QuickButtons:"Botones del MenĆŗ RĆ”pido",QuickMenu:"MenĆŗ RĆ”pido",Quit:"Salir",QuitButton:"Salir del Juego",Resolution:"Resolución",Save:"Guardar",SaveButton:"Abrir la Pantalla de Guardar",SaveInSlot:"Guardar en ranura",SelectYourLanguage:"Selecciona tu idioma",Settings:"Configuración",SettingsButton:"Abrir la Pantalla de Configuración",Show:"Mostrar",Skip:"Saltar",SkipButton:"Entrar al modo de salto",SlotDeletion:"ĀæEstĆ” seguro de querer eliminar este juego?",SlotOverwrite:"ĀæEstĆ” seguro de querer Sobreescribir este juego?",Sound:"Volumen de los Sonidos",Start:"Comenzar",Stop:"Detener",TextSpeed:"Velocidad del Texto",Video:"Volumen de los Videos",Voice:"Volumen de la Voz",Windowed:"Ventana"};var rF={AdvanceHelp:"sina ken musi e musi ni kepeken ilo luka anu nena palisa pi ilo sitelen.",AllowPlayback:"sina wile kute e musi ni la o luka e mi.",Audio:"kalama",AutoPlay:"luka ala",AutoPlayButton:"o open e pali musi kepeken luka ala.",AutoPlaySpeed:"tenpo tawa pi luka ala",Back:"tenpo pini",BackButton:"o tawa tenpo pini.",Cancel:"ala",Close:"pini",Confirm:"sina wile ala wile pini e musi?",Credits:"pona tawa",Delete:"weka",DialogLogButton:"mi wile lukin e lipu pi toki jan.",FullScreen:"ma ale pi ilo lukin",Gallery:"ma sitelen",Help:"kama sona",Hide:"weka",HideButton:"o weka e palisa nena.",iOSAudioWarning:"sina ken ala ante e kalama lon ilo iOS",KeyboardShortcuts:"pali pi ilo sitelen",Language:"toki",Load:"awen musi",LoadAutoSaveSlots:"musi li awen e musi",LoadButton:"lipu awen pi tenpo pini.",Loading:"musi li kama...",LoadingMessage:"pali e awen",LoadSlots:"lipu awen",LocalStorageWarning:"mi ken ala kepeken e ken Local Storage lon ilo ni",Log:"lipu toki",Music:"kalama musi",NewContent:"musi ni li kama sin! sina wile musi e musi sin, la o kama sin tawa lipu ni.",NoSavedGames:"awen musi pi tenpo pina li lon ala.",NoAutoSavedGames:"awen musi pi tenpo pina li lon ala.",NoDialogsAvailable:"tenpo pini la toki jan li lon ala. jan li toki, la sina ken lukin ni lon lipu ni.",OK:"pona",OrientationWarning:"sina wile musi, la o sike e ilo sona sina.",Overwrite:"ante",QuickButtons:"nena pi pali wawa",QuickMenu:"palisa nena",Quit:"pini",QuitButton:"o pini e musi.",Resolution:"suli musi tawa ilo sitelen",Save:"o awen e musi",SaveButton:"o lukin e lipu pi awen musi.",SaveInSlot:"o awen e musi lon ma.",SelectYourLanguage:"Select your language",Settings:"ante",SettingsButton:"o ante e musi.",Show:"open",Skip:"tawa tenpo kama",SkipButton:"o tawa tenpo kama.",SlotDeletion:"sina wile ala wile weka e awen musi ni?",SlotOverwrite:"sina wile ala wile ante e awen musi ni?",Sound:"kalama ijo",Start:"musi sin",Stop:"pini",TextSpeed:"tenpo kama pi sitelen toki",Video:"kalama pi sitelen tawa",Voice:"kalama toki",Windowed:"ma lili pi ilo lukin"};var iF={AdvanceHelp:"За Га преминете напреГ в играта, използвайте Š»ŠµŠ²ŠøŃ Š±ŃƒŃ‚Š¾Š½ на Š¼ŠøŃˆŠŗŠ°Ń‚а или Гокоснете ŠŗŃŠŠ“ето Šø Га е на ŠøŠ³Ń€Š°Š»Š½ŠøŃ екран, или пък натиснете клавиша Space.",AllowPlayback:"Щракнете Ń‚ŃƒŠŗ, за Га Ń€Š°Š·Ń€ŠµŃˆŠøŃ‚Šµ ауГио плейбек",Audio:"АуГио",AutoPlay:"Авто",AutoPlayButton:"Š Š°Š·Ń€ŠµŃˆŠø авто‑плейбек",AutoPlaySpeed:"Дтепен за авто.Š²ŃŠŠ·ŠæŃ€Š¾ŠøŠ·Š²ŠµŠ¶Š“Š°Š½Šµ",Back:"ŠŠ°Š·Š°Š“",BackButton:"Š‘ŃƒŃ‚Š¾Š½ назаГ",Cancel:"ŠžŃ‚Š¼ŃŠ½Š°",Close:"Затвори",Confirm:"Š˜ŃŠŗŠ°Ń‚Šµ ли Га Š½Š°ŠæŃƒŃŠ½ŠµŃ‚е?",Credits:"ŠŠ°Š“ŠæŠøŃŠø",Delete:"Š˜Š·Ń‚Ń€ŠøŠ¹",DialogLogButton:"Покажи Š“ŠøŠ°Š»Š¾Š³Š¾Š²ŠøŃ Гневник",FullScreen:"Š¦ŃŠ» Екран",Gallery:"Š“Š°Š»ŠµŃ€ŠøŃ",Help:"ŠŸŠ¾Š¼Š¾Ń‰",Hide:"Дкрий",HideButton:"Дкрий текстовото поле",iOSAudioWarning:"АуГио настройки не са ŃŃŠŠ²Š¼ŠµŃŃ‚ŠøŠ¼Šø с iOS.",KeyboardShortcuts:"Клавишни комбинации",Language:"Език",Load:"ЗареГи",LoadAutoSaveSlots:"Авто ŃŃŠŃ…Ń€Š°Š½ŠµŠ½Šø записи",LoadButton:"ŠžŃ‚Š²Š¾Ń€Šø Екран ЗареГи",Loading:"ЗарежГане",LoadingMessage:"Š˜Š·Ń‡Š°ŠŗŠ°Š¹ за зарежГане на активите",LoadSlots:"Š”ŃŠŃ…Ń€Š°Š½ŠµŠ½Šø Записи",LocalStorageWarning:"Локално ŃŃŠŃ…Ń€Š°Š½ŠµŠ½ŠøŠµ не е налично в рамките на Š±Ń€Š°ŃƒŠ·ŃŠŃ€Š°",Log:"Дневник",Music:"Дила на Š—Š²ŃƒŠŗŠ°ā€‘ŠœŃƒŠ·ŠøŠŗŠ°",NewContent:"ŠŠ°Š»ŠøŃ‡Š½Š¾ е ново ŃŃŠŠ“ŃŠŃ€Š¶Š°Š½ŠøŠµ, Š¼Š¾Š»Ń обновете страницата за Га приложите най-новата Š²ŠµŃ€ŃŠøŃ",NoSavedGames:"ŠŃŠ¼Š° ŃŃŠŃ…Ń€Š°Š½ŠµŠ½Šø записи",NoAutoSavedGames:"ŠŃŠ¼Š° Š°Š²Ń‚Š¾ā€‘ŃŃŠŃ…Ń€Š°Š½ŠµŠ½Šø записи",NoDialogsAvailable:"Липсват Гиалози. Диалозите ще се ŠæŠ¾ŃŠ²Š°Ń‚ Ń‚ŃƒŠŗ при ŠæŠ¾ŃŠ²Š°Ń‚Š° им",OK:"ŠžŠš",OrientationWarning:"ŠœŠ¾Š»Ń, Š·Š°Š²ŃŠŃ€Ń‚ŠµŃ‚Šµ ŃƒŃŃ‚Ń€Š¾Š¹ŃŃ‚Š²Š¾Ń‚Š¾, за Га играете",Overwrite:"ŠŸŃ€ŠµŠ·Š°ŠæŠøŃŠ²Š°Š½Šµ",QuickButtons:"Š‘ŃŠŃ€Š·Šø ŠœŠµŠ½ŃŽā€‘Š±ŃƒŃ‚Š¾Š½Šø",QuickMenu:"Š‘ŃŠŃ€Š·Š¾ ŠœŠµŠ½ŃŽ",Quit:"Š˜Š·Ń…Š¾Š“",QuitButton:"ŠŠ°ŠæŃƒŃŠ½ŠµŃ‚Šµ Š˜Š³Ń€Š°Ń‚Š°",Resolution:"Š ŠµŠ·Š¾Š»ŃŽŃ†ŠøŃ",Save:"Š”ŃŠŃ…Ń€Š°Š½Šø",SaveButton:"ŠžŃ‚Š²Š¾Ń€Šø Екран Записи",SaveInSlot:"Š”ŃŠŃ…Ń€Š°Š½Šø в Длот",SelectYourLanguage:"Š˜Š·Š±ŠµŃ€ŠµŃ‚Šµ езика си",Settings:"ŠšŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø",SettingsButton:"ŠžŃ‚Š²Š¾Ń€Šø екран ŠšŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø",Show:"Покажи",Skip:"ŠŸŃ€ŠµŃŠŗŠ¾Ń‡Šø",SkipButton:"Режим на прескачане",SlotDeletion:"ŠŠ°ŠøŃŃ‚ŠøŠ½Š° ли желаете Га изтриете този слот?",SlotOverwrite:"Желаете ли Га ŠæŃ€ŠµŠ·Š°ŠæŠøŃˆŠµŃ‚е този слот?",Sound:"Дила на Š—Š²ŃƒŠŗŠ°",Start:"ŠŠ°Ń‡Š°Š»Š¾",Stop:"Дпри",TextSpeed:"Š‘ŃŠŃ€Š·ŠøŠ½Š° на текста",Video:"Дила на ВиГео",Voice:"Дила на Гласа",Windowed:"ŠŸŃ€Š¾Š·Š¾Ń€ŠµŃ†"};class tF extends IV{static _experimental=!1;static _configuration={};static _priority=0;static engine;_parent;constructor(){super()}static configuration(K=null){if(K!==null)if(typeof K==="string")return this._configuration[K];else this._configuration=Object.assign({},this._configuration,K);else return this._configuration}static all(){return m0(this.tag)}static get(K){return m0(`${this.tag} [data-instance="${K}"]`)}static async onStart(){}static async onLoad(){}static async setup(){}static async shouldProceed(K){let V=[];return this.instances((Q)=>{V.push(Q.shouldProceed())}),Promise.all(V)}static async willProceed(){let K=[];return this.instances((V)=>{K.push(V.willProceed())}),Promise.all(K)}static async shouldRollback(){let K=[];return this.instances((V)=>{K.push(V.shouldRollback())}),Promise.all(K)}static async willRollback(){let K=[];return this.instances((V)=>{K.push(V.willRollback())}),Promise.all(K)}static async bind(){}static async init(){}static async onSave(){}static async onReset(){let K=[];return this.instances((V)=>{K.push(V.onReset())}),Promise.all(K)}static instances(K=null){if(typeof K==="function")return m0(this.tag).each(K);return m0(this.tag)}async onReset(){}element(){return m0(this)}remove(){this.parentNode?.removeChild(this)}instance(K){let V=this.constructor;return m0(`${V.tag}[data-${V.name.toLowerCase()}="${K}"`)}parent(K){if(typeof K<"u")this._parent=K;else return this._parent}get engine(){return this.constructor.engine}set engine(K){throw Error("Component engine reference is hold at static level and cannot be modified.")}async shouldProceed(){}async willProceed(){}async shouldRollback(){}async willRollback(){}async connectedCallback(){return this.classList.add("animated"),super.connectedCallback()}content(K){return m0(this).find(`[data-content="${K}"]`)}}var $1=tF;class RM extends $1{constructor(){super();this.props={active:!0,message:"",context:null,editable:!1,actions:[]}}async onPropsUpdate(K,V,Q){if(K==="active"){if(Q===!0)this.classList.toggle("modal--active")}}async willMount(){this.classList.add("modal","modal--active")}render(){let{message:K,context:V,editable:Q,actions:U}=this.props,H=K;return` + + `}}RM.tag="alert-modal";var aF=RM;class eF extends $1{static tag="canvas-container";layers;constructor(){super();this.props={mode:null,canvas:null,character:null,object:{start:()=>{},stop:()=>{},restart:()=>{},layers:[],state:{},props:{}},classes:[]},this.layers={}}onPropsUpdate(K,V,Q){return Promise.resolve()}willMount(){let{mode:K,canvas:V,classes:Q}=this.props;for(let U of Q)if(U)this.classList.add(U);if(K==="character")this.dataset.character=V??"";return Promise.resolve()}didMount(){let{object:K}=this.props;if(Array.isArray(K.layers)){if(K.layers.length>0)for(let V of K.layers)this.layers[V]=this.querySelector(`canvas[data-layer="${V}"]`)}else this.layers.base=this.querySelector('canvas[data-layer="base"]');return I1.callAsync(K.start,this.engine,this.layers,K.props,K.state,this)}render(){let{object:K}=this.props,V="";if(Array.isArray(K.layers)){if(K.layers.length>0)V=K.layers.map((Q)=>``).join("")}else V='';return` +
${V}
+ `}}var KD=eF;class VD extends $1{static tag="centered-dialog";constructor(){super()}_cleanupTypeWriter(){let K=this.querySelector("type-writer");if(K&&typeof K.destroy==="function")K.destroy()}async willRollback(){this._cleanupTypeWriter(),this.remove()}async onReset(){this._cleanupTypeWriter(),this.remove()}async willUnmount(){this._cleanupTypeWriter()}render(){return` + + `}}var QD=VD;class UD extends $1{static tag="character-sprite";_resizeHandler=null;constructor(){super();this.props={character:"",src:"",directory:"",width:0,height:0,ratio:0},this.state={layers:{}}}onStateUpdate(K,V,Q){if(K==="layers")return this.forceRender().then(()=>{return this.resize(),Promise.resolve()});return Promise.resolve()}onPropsUpdate(K,V,Q,U,H){if(K==="src"){if(typeof Q==="string"&&Q.trim()!==""){let Y=document.createElement("img");Y.src=Q,this.element().find("img:not(:first-child)").each((M)=>{M.remove()});let z=this.element().find("img").get(0);if(z)z.setAttribute("src",Q)}}if(K==="width"||K==="height"){let{height:Y,width:z}=H;this.content("wrapper").style({height:`max(${Y}px, 80vh)`,width:`max(${z}px, 80vh)`})}return Promise.resolve()}willMount(){return Promise.resolve()}didMount(){return this._resizeHandler=()=>{this.resize()},window.addEventListener("resize",this._resizeHandler),this.resize(),Promise.resolve()}willUnmount(){if(this._resizeHandler)window.removeEventListener("resize",this._resizeHandler),this._resizeHandler=null;return Promise.resolve()}resize(){let{width:K,height:V,ratio:Q}=this.props,H=parseInt(getComputedStyle(this).height.replace("px",""))*Q;this.content("wrapper").style({width:`${H}px`}),this.content("wrapper").find("[data-layer]").each((Y)=>{let z=Y;z.onload=()=>{if(z.naturalWidth!==K)z.style.width=`${z.naturalWidth*H/K}px`;if(z.naturalHeight!==V)z.style.height="auto"}})}render(){let{character:K,directory:V}=this.props;if(typeof K==="string")return Promise.resolve('
');let Q=[];for(let U of K.layers){let H=this.state.layers[U];if(typeof H==="object"&&H!==null){let{classes:Y}=H,z=H.asset;if(typeof K.layer_assets==="object"&&K.layer_assets!==null){let M=K.layer_assets[U];if(typeof M==="object"&&M!==null){if(typeof M[z]==="string")z=M[z]}}if(typeof z==="string")Q.push(new Promise((M)=>{let A=new Image;A.src=`${V}${z}`,A.onload=function(){M({layer:U,image:A,classes:Y,sprite:H.asset})}}))}}return Promise.all(Q).then((U)=>{return new Promise((H)=>{let Y=document.createElement("div");Y.dataset.content="wrapper";let z=0,M=0;for(let A of U){let{image:R,layer:D,classes:F,sprite:P}=A,G=R.naturalHeight,T=R.naturalWidth;if(G>z)z=G;if(T>M)M=T;R.style.zIndex=String(K.layers.indexOf(D)),R.dataset.layer=D,R.dataset.sprite=P,R.classList.add(...F),Y.appendChild(R)}this.setProps({ratio:M/z,height:z,width:M}),Y.style.height=`${z}px`,H(Y.outerHTML)})})}}var HD=UD;class zD extends $1{static tag="choice-container";constructor(){super();this.props={choices:[],classes:""}}shouldProceed(){return Promise.reject("Choice Container awaiting for user input.")}willRollback(){return this.remove(),Promise.resolve()}onReset(){return this.remove(),Promise.resolve()}willMount(){if(typeof this.props.classes==="string"&&this.props.classes!=="")this.props.classes.split(" ").forEach((K)=>{if(K)this.classList.add(K)});return Promise.resolve()}didMount(){return Promise.resolve()}render(){let K=this.props.choices.map((V)=>{let Q=this.engine.replaceVariables(V.Text);if(typeof V.Clickable==="function")return new Promise((U)=>{this.engine.assertAsync(V.Clickable,this.engine).then(()=>{U(``)}).catch(()=>{U(``)})});return Promise.resolve(``)});return Promise.all(K).then((V)=>` +
+ ${V.join("")} +
+ `)}}var LD=zD;class rH extends $1{constructor(){super();this.state={open:!1}}async willMount(){this.dataset.screen=this.constructor.tag.replace("-screen","")}async onStateUpdate(K,V,Q){if(K==="open")if(Q===!0)this.classList.add("active");else this.classList.remove("active")}render(){return""}}var rK=rH;class ZD extends rK{static tag="credits-screen";static init(){if(Object.keys(this.engine.configuration("credits")).length>0){let K=this.engine.component("main-menu");if(K?.addButton)K.addButton({string:"Credits",icon:"",data:{action:"open-screen",open:"credits"}})}return Promise.resolve()}constructor(){super();this.props={credits:{}}}willMount(){return super.willMount(),this.setProps({credits:this.engine.configuration("credits")}),Promise.resolve()}render(){return` + +

Credits

+
+ ${Object.keys(this.props.credits).map((V)=>{let Q=`

${this.engine.replaceVariables(V)}

`,U=this.props.credits[V];if(typeof U==="string")return`

${U}

`;for(let H of Object.keys(U)){let Y=this.engine.replaceVariables(H),z=U[H];if(z instanceof Array)z=z.join(", ");if(typeof z==="string")z=this.engine.replaceVariables(z);if(Y.indexOf("_")===0)Q+=`

${z}

`;else Q+=`

${Y}${z}

`}return Q+="
",Q}).join("")} +
+ `}}var YD=ZD;class qD extends $1{static tag="dialog-log";static setup(){let K=this.engine.component("quick-menu");if(K?.addButtonAfter)K.addButtonAfter("Hide",{string:"Log",icon:"far fa-comments",data:{action:"dialog-log"}});return Promise.resolve()}static bind(){return this.engine.registerListener("dialog-log",{callback:(K,V)=>{this.instances((Q)=>{let U=Q.state.active;Q.setState({active:!U})})}}),Promise.resolve()}constructor(){super();this.state={active:!1}}onReset(){return this.content("log").html('
No dialogs available. Dialogs will appear here as they show up.
'),Promise.resolve()}write({id:K,character:V,dialog:Q}){if(this.content("placeholder").remove(),K!=="_narrator"&&K!=="centered"){let{name:U,color:H}=V;this.content("log").append(` +
+ ${this.engine.replaceVariables(U??"")} +

${Q}

+
+ `)}else this.content("log").append(`

${Q}

`)}pop(){let K=this.content("log").find("[data-spoke]").last();if(K.exists())K.remove()}onStateUpdate(K,V,Q){if(K==="active"){if(this.classList.toggle("modal--active"),Q===!0){let U=this.content("log").get(0);if(U)U.scrollTop=U.scrollHeight}}return Promise.resolve()}willMount(){return this.classList.add("modal"),Promise.resolve()}render(){return` + + `}}var OD=qD;class MD extends rK{static tag="gallery-screen";static bind(){let K=this;return this.instances().on("click","[data-image]",function(){let V=m0(this).closest("[data-image]").data("image");if(V)K.showImage(V)}),this.instances().on("click",'[data-ui="image-viewer"]',()=>{this.instances().find('[data-ui="image-viewer"]').removeClass("modal--active"),this.instances().find('[data-ui="image-viewer"] figure').style("background-image","")}),Promise.resolve()}static init(){if(Object.keys(this.engine.assets("gallery")??{}).length>0){let K=this.engine.component("main-menu");if(K&&"addButton"in K)K.addButton({string:"Gallery",icon:"",data:{action:"open-screen",open:"gallery"}})}else this.instances().remove();return Promise.resolve()}static showImage(K){let V=this.engine.setting("AssetsPath"),Q=`${V.root}/${V.gallery}/`;this.instances().find('[data-ui="image-viewer"] figure').style("background-image",`url('${Q}${this.engine.asset("gallery",K)}')`),this.instances().find('[data-ui="image-viewer"]').addClass("modal--active")}constructor(){super();this.state={open:!1,unlocked:[]}}willMount(){return super.willMount(),this.engine.Storage.get("gallery").then((K)=>{let V=K;return this.setState({unlocked:V?.unlocked??[]}),Promise.resolve()}).catch(()=>{return Promise.resolve()})}onStateUpdate(K,V,Q){return super.onStateUpdate(K,V,Q),this.engine.Storage.set("gallery",{unlocked:this.state.unlocked}),this.forceRender(),Promise.resolve()}render(){let K=this.engine.assets("gallery")??{},V=this.engine.setting("AssetsPath");return` + + +

Gallery

+
+ ${Object.keys(K).map((U)=>{let H=`${V.root}/${V.gallery}/`;if(this.state.unlocked.includes(U))return`
`;else return'
'}).join("")} +
+ `}}var WD=MD;class $M extends rK{static async shouldProceed(){if(this.engine.element().find('[data-screen="game"]').isVisible())return;throw Error("Game screen is not visible.")}static async bind(){let K=this.engine;if(K.on("click",'[data-screen="game"] *:not([data-choice]):not([data-action]):not([data-delete])',async function(){if(this.closest("[data-action]")||this.closest("[data-delete]"))return;K.debug.debug("Next Statement Listener");try{await K.proceed({userInitiated:!0,skip:!1,autoPlay:!1})}catch(V){K.debug.log(`Click Proceed Prevented +Reason: ${V}`)}}),K.setting("AllowRollback")===!0)K.registerListener("back",{keys:"left",callback:async()=>{try{await K.rollback()}catch(V){K.debug.log(`Rollback Prevented +Reason: ${V}`)}}})}async didMount(){this.engine.on("didUpdateState",(K)=>{let{detail:{newState:{label:V}}}=K;if(V)this.element().data("label",V)})}render(){return` +
+
+
+
+ `}}$M.tag="game-screen";var XD=$M;class AD extends rK{static tag="help-screen";render(){return` + +

Help

+
+

To advance through the game, left-click or tap anywhere on the game screen or press the space key

+
+
+

Quick Menu

+
+
+ +
+
+ Go back +
+
+
+
+ +
+
+ Hide the text box +
+
+
+
+ +
+
+ Show the dialog log +
+
+
+
+ +
+
+ Enable auto play +
+
+
+
+ +
+
+ Enter skip mode +
+
+
+
+ +
+
+ Open the Save Screen +
+
+
+
+ +
+
+ Open the Load Screen +
+
+
+
+ +
+
+ Open the Settings Screen +
+
+
+
+ +
+
+ Quit Game +
+
+
+
+
+

Keyboard Shortcuts

+
+
+
+ +
+
+ Go Back +
+
+
+
+ H +
+
+ Hide the text box +
+
+
+
+ A +
+
+ Enable auto play +
+
+
+
+ S +
+
+ Enter skip mode +
+
+
+
+ ⇧ S +
+
+ Open the Save Screen +
+
+
+
+ ⇧ L +
+
+ Open the Load Screen +
+
+
+
+ ESC +
+
+ Open the Settings Screen. +
+
+
+
+ ⇧ Q +
+
+ Quit Game +
+
+
+
+
+ `}}var RD=AD;class $D extends rK{static tag="language-selection-screen";timer=null;constructor(){super();this.props={languages:Object.keys(this.engine._script),timeout:2000},this.state={open:!1,index:0}}onStateUpdate(K,V,Q){if(super.onStateUpdate(K,V,Q),K==="index"){let{languages:U}=this.props,H=this.engine.translation(U[Q]);if(typeof H==="object"&&H!==null){let z=H.SelectYourLanguage;if(typeof z==="string")this.content("title").text(z)}}return Promise.resolve()}didMount(){if(this.engine.setting("MultiLanguage")===!0&&this.engine.setting("LanguageSelectionScreen")===!0){let{languages:K,timeout:V}=this.props;this.timer=setTimeout(()=>{if(this.element().isVisible()){let{index:Q}=this.state;if(Q>=K.length-1)this.setState({index:0});else this.setState({index:Q+1});this.timer=setTimeout(()=>this.didMount(),parseInt(String(V)))}else if(this.timer)clearTimeout(this.timer)},parseInt(String(V)))}return this.element().on("click","[data-language]",(K)=>{let V=m0(K.target).closest("[data-language]").data("language");if(V)this.engine.preference("Language",V),this.engine.localize()}),Promise.resolve()}willUnmount(){if(this.timer)clearTimeout(this.timer),this.timer=null;return Promise.resolve()}render(){let K=[];if(this.engine.setting("MultiLanguage")===!0&&this.engine.setting("LanguageSelectionScreen")===!0){let{languages:V}=this.props;K=V.map((Q)=>{let U=this.engine._languageMetadata[Q];if(typeof U==="object"){let{icon:H}=U;return` + + `}else return t0.show("component:language_selection_screen:metadata_not_found",{language:Q,availableLanguages:Object.keys(this.engine._script)}),""}).filter(Boolean)}return` +
+

${this.engine.string("SelectYourLanguage")}

+
+ ${K.join("")} +
+
+ `}}var FD=$D;class DD extends rK{static tag="load-screen";render(){let K=this.engine,V=K.setting("AutoSave"),Q=typeof V==="number"&&V>0;return` + +

Load

+
+

Saved Games

+
+ +
+
+ ${Q?`
+

Auto Saved Games

+
+ +
+
`:""} + `}}var SD=DD;class PD extends rK{static tag="loading-screen";constructor(){super();this.props={max:0},this.state={open:!1,progress:0}}async didMount(){let K=this.engine;K.on("willPreloadAssets",()=>this.setState({open:!0})),K.on("assetQueued",()=>this.setProps({max:this.props.max+1})),K.on("didPreloadAssets",()=>this.setState({open:!1})),K.on("assetLoaded",()=>this.setState({progress:this.state.progress+1}))}async onStateUpdate(K,V,Q){if(super.onStateUpdate(K,V,Q),K==="progress")this.content("progress").value(Q)}async onPropsUpdate(K,V,Q){if(K==="max")this.content("progress").attribute("max",Q)}render(){return` +
+

Loading

+ + Wait while the assets are loaded. +
+ `}}var CD=PD;class Fz extends $1{static tag="menu-component";static addButton(K){this.engine.configuration(this.tag,{buttons:[...this.buttons(),K]}),this.onConfigurationUpdate()}static addButtonAfter(K,V){let Q=this.buttons().findIndex((H)=>H.string===K),U=[...this.buttons()];if(Q>-1)U.splice(Q+1,0,V),this.engine.configuration(this.tag,{buttons:U}),this.onConfigurationUpdate()}static addButtonBefore(K,V){let Q=this.buttons().findIndex((H)=>H.string===K),U=[...this.buttons()];if(Q>-1)U.splice(Q,0,V),this.engine.configuration(this.tag,{buttons:U}),this.onConfigurationUpdate()}static removeButton(K){this.engine.configuration(this.tag,{buttons:this.buttons().filter((V)=>V.string!==K)}),this.onConfigurationUpdate()}static buttons(){return this.engine.configuration(this.tag).buttons}static button(K){return this.buttons().find((V)=>V.string===K)}static async onConfigurationUpdate(){let K=document.querySelectorAll(this.tag);for(let V of K)if(V instanceof $1)V.innerHTML=V.render()}render(){return this.constructor.buttons().map((V)=>{if(typeof V.element!=="string")V.element="button";let Q=document.createElement(V.element);if(typeof V.data==="object")for(let U of Object.keys(V.data))Q.dataset[U]=V.data[U];return Q.setAttribute("icon",V.icon),Q.setAttribute("string",V.string),Q.outerHTML}).join(" ")}}class ID extends Fz{static tag="main-menu";render(){return this.constructor.buttons().map((V)=>{if(typeof V.element!=="string")V.element="button";let Q=document.createElement(V.element);if(typeof V.data==="object")for(let U of Object.keys(V.data))Q.dataset[U]=V.data[U];return Q.setAttribute("icon",V.icon),Q.setAttribute("string",V.string),Q.setAttribute("tabindex","0"),Q.innerHTML=` + + ${this.engine.string(V.string)} + `,Q.outerHTML}).join(" ")}}var GD=ID;class FM extends rH{onStateUpdate(K,V,Q){if(K==="open"){if(Q===!0)this.engine.playAmbient();else if(this.engine.global("playing")===!0)this.engine.stopAmbient()}return super.onStateUpdate(K,V,Q)}}FM.tag="main-screen";var TD=FM;class ED extends $1{static tag="message-modal";constructor(){super();this.props={title:null,subtitle:null,body:"",actionString:"Close"}}shouldProceed(){return Promise.reject("Message Modal awaiting for user to close the modal window.")}willProceed(){return this.remove(),Promise.resolve()}willRollback(){return this.remove(),Promise.resolve()}onReset(){return this.remove(),Promise.resolve()}willMount(){return this.classList.add("modal","modal--active"),Promise.resolve()}render(){let{title:K,subtitle:V,body:Q}=this.props;return` + + `}}var BD=ED;class JD extends Fz{static tag="quick-menu";static async init(){let K=this.engine.setting("Skip"),V=this.engine.setting("AllowRollback");if(K<=0)this.removeButton("Skip");if(!V)this.removeButton("Back")}render(){return this.constructor.buttons().map((V)=>{if(typeof V.element!=="string")V.element="button";let Q=document.createElement(V.element);if(typeof V.data==="object")for(let U of Object.keys(V.data))Q.dataset[U]=V.data[U];return Q.setAttribute("icon",V.icon),Q.setAttribute("string",V.string),Q.setAttribute("tabindex","0"),Q.innerHTML=` + + ${this.engine.string(V.string)} + `,Q.outerHTML}).join(" ")}}var vD=JD;class kD extends rH{static tag="save-screen";static async bind(K){let V=this.engine;V.registerListener("save",{callback:()=>{let U=this.instances().find('[data-content="slot-name"]').value(),H=(typeof U==="string"?U:"").trim();if(H!=="")V.saveTo("SaveLabel",null,H)}})}async onStateUpdate(K,V,Q){if(super.onStateUpdate(K,V,Q),K==="open"&&Q===!0){let U=L1.now().toLocaleString(L1.DATETIME_MED_WITH_SECONDS);this.content("slot-name").value(U)}}render(){return` + +
+ + +
+
+ +
+ `}}var fD=kD;class wD extends $1{static tag="save-slot";data=null;_screenshotObjectUrl=null;static bind(){let K=this;this.engine.registerListener("delete-slot",{callback:async()=>{let Q=this.engine.global("delete_slot");if(!Q)return;try{let H=await this.engine.Storage.get(Q);if(H?.screenshot)await this.engine.onDeleteScreenshot(H.screenshot)}catch{}this.engine.Storage.remove(Q),this.engine.global("delete_slot",null),this.engine.dismissAlert("slot-deletion")}});let V=this.engine;return this.engine.on("click",'[data-component="slot-container"] [data-delete]',function(Q){Q.stopImmediatePropagation(),Q.stopPropagation(),Q.preventDefault(),V.debug.debug("Registered Click on Slot Delete Button");let U=this.dataset.delete;if(U)V.global("delete_slot",U),V.Storage.get(U).then((H)=>{let Y=H;V.alert("slot-deletion",{message:"SlotDeletion",context:typeof Y.name<"u"?Y.name:Y.date,actions:[{label:"Delete",listener:"delete-slot"},{label:"Cancel",listener:"dismiss-alert"}]})})}),Promise.resolve()}constructor(){super();this.props={slot:void 0,name:"",date:"",screenshot:"",image:""},this.data=null}async willMount(){let K=this.props.slot;if(!K){this.engine.debug.error("SaveSlot: No slot key provided");return}let Q=await this.engine.Storage.get(K);if(this.data=Q,typeof Q.Engine<"u"){Q.name=Q.Name,Q.date=Q.Date??"";try{if(Q.date.indexOf("/")>-1){let[H,Y]=Q.date.replace(",","").split(" "),[z,M,A]=H.split("/");if(isNaN(Date.parse(H)))Q.date=`${A}-${M}-${z} ${Y}`;else Q.date=`${A}-${z}-${M} ${Y}`}}catch(H){this.engine.debug.debug("Failed to convert date",H)}Q.image=Q.Engine.Scene}let U="";if(Q.screenshot)try{if(this._screenshotObjectUrl)URL.revokeObjectURL(this._screenshotObjectUrl),this._screenshotObjectUrl=null;if(U=await this.engine.onLoadScreenshot(Q.screenshot),U.startsWith("blob:"))this._screenshotObjectUrl=U}catch(H){this.engine.debug.warn("Failed to load screenshot for slot",K,H)}this.setProps({name:Q.name??"",date:Q.date,image:Q.image??"",screenshot:U})}async willUnmount(){if(this._screenshotObjectUrl)URL.revokeObjectURL(this._screenshotObjectUrl),this._screenshotObjectUrl=null}render(){let K="";if(this.props.screenshot)K=`url(${this.props.screenshot})`;else{let Q=this.engine.setting("AssetsPath");if(this.props.image&&this.engine.asset("scenes",this.props.image))K=`url(${Q.root}/${Q.scenes}/${this.engine.asset("scenes",this.props.image)})`;else if(this.data&&"game"in this.data&&this.data.game){if(this.data.game.state.background){if(K=this.data.game.state.background,K.indexOf(" with ")>-1)K=PK.prefix(" with ",K);K=PK.suffix("show background",K)}else if(this.data.game.state.scene){if(K=this.data.game.state.scene,K.indexOf(" with ")>-1)K=PK.prefix(" with ",K);K=PK.suffix("show scene",K)}}}let V=!!this.props.screenshot||this.props.image&&this.engine.asset("scenes",this.props.image);return` + + ${this.props.name} +
+
${L1.fromISO(this.props.date).toLocaleString(L1.DATETIME_MED_WITH_SECONDS)}
+ `}}var jD=wD;class xD extends rK{static tag="settings-screen";static bind(){let K=this;return this.engine.on("click","[data-select]",function(){let V=`[data-action='${this.dataset.select}']`,Q=K.engine.element().find(V).get(0);if(Q){Q.focus();let U=new MouseEvent("mousedown",{bubbles:!0,cancelable:!0,view:window});Q.dispatchEvent(U)}}),Promise.resolve()}desktop(K){this.element().find('[data-action="set-resolution"]').value(this.engine.preference("Resolution")),window.onbeforeunload=(V)=>{return V.preventDefault(),this.engine.alert("quit-warning",{message:"Confirm",actions:[{label:"Quit",listener:"quit"},{label:"Cancel",listener:"dismiss-alert"}]}),!1},K.send("window-info-request",{title:this.engine.setting("Name"),resizable:this.engine.setting("ForceAspectRatio")!=="Global"}),K.on("window-info-reply",(V)=>{let{resizable:Q,minWidth:U,maxWidth:H,minHeight:Y,maxHeight:z}=V;if(!Q){let M=this.engine.setting("AspectRatio").split(":"),A=parseInt(M[0]),R=parseInt(M[1]);for(let D=0;D<488;D+=8){let F=A*D,P=R*D;if(F>=U&&P>=Y&&F<=H&&P<=z)this.element().find('[data-action="set-resolution"]').append(``)}this.element().find('[data-action="set-resolution"]').append(``),this.changeWindowResolution(K,this.engine.preference("Resolution")),this.element().find('[data-action="set-resolution"]').change((D)=>{let F=D.target.value;this.changeWindowResolution(K,F)}),this.element().find('[data-action="set-resolution"]').value(this.engine.preference("Resolution"))}else this.element().find('[data-settings="resolution"]').hide()}),K.on("resize-reply",(V)=>{let{width:Q,height:U,fullscreen:H}=V;if(H)this.engine.preference("Resolution","fullscreen");else this.engine.preference("Resolution",`${Q}x${U}`)})}changeWindowResolution(K,V){if(V){if(V==="fullscreen")K.send("resize-request",{fullscreen:!0});else if(V.indexOf("x")>-1){let[Q,U]=V.split("x");K.send("resize-request",{width:parseInt(Q),height:parseInt(U),fullscreen:!1})}}}didMount(){if(this.engine.on("didInit",()=>{if(this.engine.setting("MultiLanguage")===!0)this.content("wrapper").html(` + + + `),this.content("language-selector").value(this.engine.preference("Language")),this.content("language-selector").change(()=>{this.engine.preference("Language",this.content("language-selector").value()),this.engine.localize()});else this.content("language-settings").remove();for(let H of Object.keys(this.engine.mediaPlayers())){let Y=this.engine.preference("Volume");this.content(`${H}-audio-controller`).value(Y[PK.capitalize(H)])}let U=dH();if(C1.desktopApp&&U)this.desktop(U);else this.element().find('[data-platform="desktop"]').remove();this.element().find('[data-action="set-text-speed"]').value(this.engine.preference("TextSpeed"))}),C1.mobile("iOS"))this.content("audio-settings").html(`

${this.engine.string("iOSAudioWarning")}

`);let K=this.engine,V=(U,H,Y)=>Math.min(Math.max(U,H),Y);this.content("auto-play-speed-controller").on("change mouseover",function(){let U=V(parseInt(this.value),0,K.setting("MaxAutoPlaySpeed"));K.preference("AutoPlaySpeed",U)});let Q=this.content("auto-play-speed-controller").get(0);if(Q)this.engine.setting("MaxAutoPlaySpeed",parseInt(Q.max));return this.content("auto-play-speed-controller").value(this.engine.preference("AutoPlaySpeed")),Promise.resolve()}render(){return` + +

Settings

+
+
+
+

Audio

+ Music Volume: + + Sound Volume: + + Voice Volume: + + Video Volume: + +
+
+ +
+
+

Text Speed

+ +
+ +
+

Auto Play Speed

+ +
+ +
+

Language

+
+
+ +
+

Resolution

+
+ + +
+
+
+
+ `}}var _D=xD;var DM="__screenshot";class ND extends $1{static tag="slot-container";static bind(){return this.engine.registerListener("overwrite-slot",{callback:(K,V)=>{let U=V.closest('[data-content="wrapper"]').find('[data-content="context"]').value()?.trim()??"";if(U!=="")this.engine.saveTo("SaveLabel",this.engine.global("overwrite_slot"),U),this.engine.global("overwrite_slot",null),this.engine.dismissAlert("slot-overwrite")}}),Promise.resolve()}constructor(){super();this.props={type:void 0,label:void 0},this.state={slots:[]}}willMount(){let K=`${this.props.label}_`;return this.engine.Storage.each((V,Q)=>{if(V.indexOf(K)===0&&V.indexOf(DM)===-1){if(typeof Q==="object"&&Q!==null)return Promise.resolve({valid:!0,id:parseInt(V.split(K)[1]),key:V})}return Promise.resolve({valid:!1})}).then((V)=>{let Q=V.filter((U)=>U.valid).sort((U,H)=>{if((U.id??0)>(H.id??0))return 1;else if((U.id??0)<(H.id??0))return-1;else return 0}).map(({key:U})=>{return U});this.setState({slots:Q})})}didMount(){let K=this.engine,V=this.getAttribute("type")||this.props.type;if(V==="load")this.element().on("click",'[data-component="save-slot"]',function(Q){if(Q.target.closest("[data-delete]")===null){let Y=m0(this).attribute("slot");if(Y)K.loadFromSlot(Y).then(()=>{K.run(K.label()[K.state("step")])})}});else if(V==="save"){let Q=this;this.element().on("click",'[data-component="save-slot"]',function(U){if(U.target.closest("[data-delete]")===null){K.debug.debug("Registered Click on Slot"),U.stopImmediatePropagation(),U.stopPropagation(),U.preventDefault();let M=m0(this).attribute("slot")?.split("_").pop(),A=M?parseInt(M,10):null;K.global("overwrite_slot",A),K.Storage.get(Q.props.label+"_"+K.global("overwrite_slot")).then((R)=>{let D=R;K.alert("slot-overwrite",{message:"SlotOverwrite",context:typeof D.name<"u"?D.name:D.date,editable:!0,actions:[{label:"Overwrite",listener:"overwrite-slot"},{label:"Cancel",listener:"dismiss-alert"}]})})}})}return this.engine.Storage.onCreate((Q,U)=>{if(Q.indexOf(`${this.props.label}_`)===0&&Q.indexOf(DM)===-1){if(typeof U==="object"&&U!==null)this.setState({slots:[...new Set([...this.state.slots,Q])]})}}),this.engine.Storage.onUpdate((Q,U)=>{if(Q.indexOf(`${this.props.label}_`)===0&&Q.indexOf(DM)===-1){if(typeof U==="object"&&U!==null){let H=this.element().find(`[slot="${Q}"]`).get(0);if(H&&"setProps"in H)H.setProps(U)}}}),this.engine.Storage.onDelete((Q)=>{if(Q.indexOf(`${this.props.label}_`)===0)this.setState({slots:this.state.slots.filter((U)=>U!==Q)})}),this.engine.on("didLocalize",()=>{this.forceRender()}),Promise.resolve()}onStateUpdate(K,V,Q){if(K==="slots")this.forceRender();return Promise.resolve()}render(){let K=this.state.slots.map((V)=>``).join("");if(K!=="")return K;return`

${this.engine.string("NoSavedGames")}

`}}var gD=ND;class SM extends $1{constructor(){super();this.props={mode:"adv"},this.state={hidden:!1}}onStateUpdate(K,V,Q){if(K==="hidden")if(Q===!0)this.element().hide();else this.element().show("grid");return Promise.resolve()}show(){if(this.state.hidden)return;this.element().show("grid")}checkUnread(){let K=this.content("text").get(0);if(!K)return;if(K.clientHeight+K.scrollTop + + +
+ +
+
+ ${this.props.mode==="nvl"?"":''} +
+ `}}SM.tag="text-box";var yD=SM;class hD extends $1{static tag="text-input";constructor(){super();this.state={active:!0},this.props={text:"",type:"text",default:null,options:[],warning:"",actionString:"OK",onSubmit:()=>{},validate:()=>!0,callback:()=>{},classes:"",attributes:{}}}shouldProceed(){return Promise.reject("Input is awaiting user input.")}willRollback(){return this.remove(),Promise.resolve()}onStateUpdate(K,V,Q){if(K==="active"){if(Q===!0)this.classList.toggle("modal--active")}return Promise.resolve()}willMount(){if(this.classList.add("modal","modal--active"),typeof this.props.classes==="string"&&this.props.classes!=="")this.props.classes.split(" ").forEach((K)=>{if(K)this.classList.add(K)});return Promise.resolve()}didMount(){this.addEventListener("submit",(U)=>{U.stopPropagation(),U.preventDefault();let H="";if(this.props.type==="radio"){let Y=this.element().find('[data-content="field"]:checked');if(Y.exists())H=Y.value();else H=""}else if(this.props.type==="checkbox")H=[],this.element().find('[data-content="field"]:checked').each((Y)=>{H.push(m0(Y).value())});else H=this.content("field").value();this.engine.assertAsync(this.props.validate,this.engine,[H]).then(()=>{this.engine.assertAsync(this.props.onSubmit,this.engine,[H]).then(()=>{}).catch(()=>{}).finally(()=>{this.remove(),this.props.callback()})}).catch(()=>{this.content("warning").text(this.engine.replaceVariables(this.props.warning))})});let K=["text","textarea","password","email","url","number","color"],{type:V,default:Q}=this.props;if(K.indexOf(V)>-1){if(Q!==null&&Q!=="")this.content("field").value(Q)}return this.content("field").get(0)?.focus(),Promise.resolve()}render(){let{type:K,default:V,options:Q,attributes:U}=this.props,H=["text","password","email","url","number","color","file","date","datetime-local","month","time","week","tel","range"],Y="",z="";if(typeof U==="object"&&U!==null)z=Object.keys(U).map((M)=>{let A=U[M];if(typeof A==="string")A=this.engine.replaceVariables(A);return`${M}="${A}"`}).join(" ");if(H.indexOf(K)>-1)Y=``;else if(K==="textarea")Y=``;else if(K==="select"){let M=Q.map((A)=>{let R="",D=V;if(typeof V==="string"&&V!==null&&V!==""){if(D=this.engine.replaceVariables(V),D==this.engine.replaceVariables(String(A.value)))R="selected"}else if(typeof V==="number"){if(D==A.value)R="selected"}return``}).join("");Y=``}else if(K==="radio"||K==="checkbox")Y=Q.map((M,A)=>{let R="",D=V;if(typeof V==="string"&&V!==null&&V!==""){if(D=this.engine.replaceVariables(V),D==this.engine.replaceVariables(String(M.value)))R="checked"}else if(typeof V==="number"){if(D==M.value)R="checked"}return` +
+ + +
+ `}).join("");return` + + `}}var pD=hD;class cD extends $1{static tag="timer-display";constructor(){super();this.props={callback:()=>{},time:0,step:0,timer:null,tick:null},this.state={elapsed:0,remaining:0,value:100}}async willMount(){let{time:K}=this.props;this.setProps({step:K/100}),this.setState({remaining:K})}async didMount(){let K=()=>{this.setProps({timer:setTimeout(async()=>{if(this.state.elapsed>=this.props.time){if(await I1.callAsync(this.props.callback,this.engine),this.props.timer)clearTimeout(this.props.timer);if(this.parentNode)this.element().remove();return}this.setState({elapsed:this.state.elapsed+this.props.step,remaining:this.state.remaining-this.props.step,value:(1-this.state.elapsed/this.props.time)*100}),this.forceRender(),this.props.tick?.()},this.props.step)})};this.setProps({tick:K}),this.props.tick?.()}async willUnmount(){if(this.props.timer)clearTimeout(this.props.timer);return Promise.resolve()}async render(){return` +
+ `}}var uD=cD;class bD extends $1{static tag="visual-novel";async render(){return""}}var lD=bD;var PM=/\s/;function dD(K){let V=[],Q=(U)=>{let H=U.childNodes;if(H.length===0)V.push(U);else H.forEach((Y)=>Q(Y))};if(K)Q(K);return V}function sD(K){return Math.round(Math.random()*K/2)+K}var Jj=/=(["'])(.*?)\1/g,oD=/(:[ ]?)(.*?);/g,vj=/(["'])(.*?)\1/g;class mD extends $1{static tag="type-writer";static _patternCacheVersion=0;static _numberActionsCache=null;static _enclosedActionsCache=null;static _instanceActionsCache=null;static _configuration={actions:{pause:{name:"pause",type:"number",action:function(K){let V=Number(K);if(!isNaN(V)&&V>=0){if(this.nextPause=V,V>0&&typeof this.state.config.onTypingPaused==="function")this.state.config.onTypingPaused(this.stringPos,this)}else this.engine.debug.error(`Provided value was not a valid number value: +`+K)}},speed:{name:"speed",type:"number",action:function(K){let V=Number(K);if(!isNaN(V)&&V>=0)if(V===0)this.speed=0;else{let Q=Math.floor(this.speed*100/V);this.speed=Q}else this.engine.debug.error(`Provided value was not a valid number value: +`+K)}},shake:{name:"shake",type:"enclosed",action:()=>{}},"shake-hard":{name:"shake-hard",type:"enclosed",action:()=>{}},"shake-slow":{name:"shake-slow",type:"enclosed",action:()=>{}},"shake-little":{name:"shake-little",type:"enclosed",action:()=>{}},"shake-horizontal":{name:"shake-horizontal",type:"enclosed",action:()=>{}},"shake-vertical":{name:"shake-vertical",type:"enclosed",action:()=>{}},wave:{name:"wave",type:"enclosed",action:()=>{}},"wave-slow":{name:"wave-slow",type:"enclosed",action:()=>{}},"wave-fast":{name:"wave-fast",type:"enclosed",action:()=>{}},fade:{name:"fade",type:"enclosed",action:()=>{}},"fade-slow":{name:"fade-slow",type:"enclosed",action:()=>{}},blur:{name:"blur",type:"enclosed",action:()=>{}},scale:{name:"scale",type:"enclosed",action:()=>{}},"scale-bounce":{name:"scale-bounce",type:"enclosed",action:()=>{}},"slide-up":{name:"slide-up",type:"enclosed",action:()=>{}},"slide-down":{name:"slide-down",type:"enclosed",action:()=>{}},glitch:{name:"glitch",type:"enclosed",action:()=>{}},"glitch-hard":{name:"glitch-hard",type:"enclosed",action:()=>{}},"glitch-slow":{name:"glitch-slow",type:"enclosed",action:()=>{}},bold:{name:"bold",type:"enclosed",action:()=>{}},italic:{name:"italic",type:"enclosed",action:()=>{}},big:{name:"big",type:"enclosed",action:()=>{}},small:{name:"small",type:"enclosed",action:()=>{}},impact:{name:"impact",type:"enclosed",action:()=>{}},redacted:{name:"redacted",type:"enclosed",action:()=>{}},"invisible-ink":{name:"invisible-ink",type:"enclosed",action:()=>{}},handwriting:{name:"handwriting",type:"enclosed",action:()=>{}},strike:{name:"strike",type:"enclosed",action:()=>{}},flicker:{name:"flicker",type:"enclosed",action:()=>{}},angry:{name:"angry",type:"enclosed",action:()=>{}},scared:{name:"scared",type:"enclosed",action:()=>{}},happy:{name:"happy",type:"enclosed",action:()=>{}},sad:{name:"sad",type:"enclosed",action:()=>{}},mysterious:{name:"mysterious",type:"enclosed",action:()=>{}},excited:{name:"excited",type:"enclosed",action:()=>{}},whisper:{name:"whisper",type:"enclosed",action:()=>{}},shout:{name:"shout",type:"enclosed",action:()=>{}},dizzy:{name:"dizzy",type:"enclosed",action:()=>{}},dreamy:{name:"dreamy",type:"enclosed",action:()=>{}},robotic:{name:"robotic",type:"enclosed",action:()=>{}},static:{name:"static",type:"enclosed",action:()=>{}},rainbow:{name:"rainbow",type:"enclosed",action:()=>{}},glow:{name:"glow",type:"enclosed",action:()=>{}}}};typeSpeed=100;speed=100;nextPause=null;stringPos=0;loops=!1;stopLoop=!1;nodeCounter=0;enclosedID=[];parseIndex=0;actionsPlayed=0;actions=[];elements=null;ignorePause;_animationFrameId=null;_lastFrameTime=0;_accumulatedTime=0;_targetWaitTime=0;_isAnimating=!1;_actionPatternCache=null;_numberActionsCache=null;_enclosedActionsCache=null;_instanceActionsCache=null;_patternCacheVersion=0;constructor(){super();this.state={config:{},strings:[],cursor:{}},this.props={string:!1}}static configuration(K=null){if(K!==null){if(typeof K==="string")return this._configuration[K];this._configuration=Object.assign({},this._configuration,K)}return this._configuration}static actions(){return this._configuration.actions}static stripActionMarkers(K){let V=this.actions(),Q=K;for(let U in V){let H=V[U];if(H.type==="number")Q=Q.replace(new RegExp(`\\{${U}[:\\s]\\d+\\}`,"g"),"");else if(H.type==="enclosed")Q=Q.replace(new RegExp(`\\{/?${U}(?:\\s[^}]*)?\\}`,"g"),"");else if(H.type==="instance")Q=Q.replace(new RegExp(`\\{${U}\\/\\}`,"g"),"")}return Q}static action(K=null){if(typeof K==="string")return this._configuration.actions[K];if(typeof K==="object"&&K!==null){if(["name","type","action"].every((Q)=>Object.keys(K).includes(Q)))return this._configuration.actions[K.name]=K,this._invalidateAllPatternCaches(),K;throw Error(`Attempted to add an action to typing actions, but an invalid action object was provided: +`+K)}return this._configuration.actions}static _invalidateAllPatternCaches(){this._patternCacheVersion=(this._patternCacheVersion||0)+1}static get patternCacheVersion(){return this._patternCacheVersion||0}get strings(){return this.state.strings}_buildActionPatterns(){let K=Object.entries(this.constructor.actions()).map(([U,H])=>({[H.type]:[U]})).reduce((U,H)=>{for(let Y in H)if(U[Y])U[Y]=U[Y].concat(H[Y]);else U[Y]=H[Y];return U},{}),V=(U)=>U.sort((H,Y)=>Y.length-H.length);this._numberActionsCache=K.number?V(K.number).join("|"):"",this._enclosedActionsCache=K.enclosed?V(K.enclosed).join("|"):"",this._instanceActionsCache=K.instance?V(K.instance).join("|"):"";let Q=[];if(this._numberActionsCache)Q.push(`\\{(?:${this._numberActionsCache})[:\\s]\\d+\\}`);if(this._enclosedActionsCache)Q.push(`\\{/?(?:${this._enclosedActionsCache}).*?\\}`);if(this._instanceActionsCache)Q.push(`\\{(?:${this._instanceActionsCache})\\/\\}`);this._actionPatternCache=Q.length>0?new RegExp(`(${Q.join("|")})`,"g"):null}initiate(){let K={typeSpeed:this.engine.preference("TextSpeed"),loop:!1,showCursor:!1,hideCursorOnEnd:!1,preStringTyped:(Y,z)=>{this.engine.global("finished_typing",!1),this.engine.trigger("didStartTyping")},onStringTyped:(Y,z)=>{this.engine.global("finished_typing",!0),this.engine.trigger("didFinishTyping")},onDestroy:(Y)=>{this.engine.global("finished_typing",!0)}};if(this.setState({config:{...K,...this.state.config}}),!this.state.strings.length&&this.props.string)this.setState({ignore:!0,strings:[this.props.string]});let{config:V,strings:Q}=this.state;if(!Q||Q.length===0){this.engine.debug.warn("TypeWriter: No strings to type"),V.onStringTyped?.(0,this);return}let U=Q[0]??"";if(this.setProps({string:U}),!U){this.engine.debug.warn("TypeWriter: Empty string provided"),V.onStringTyped?.(0,this);return}if(Object.values(this.state.cursor).length)for(let Y in this.state.cursor)this.style.setProperty(`--cursor-${Y}`,this.state.cursor[Y]);if(this.props.typeSpeed)this.typeSpeed=this.props.typeSpeed;else this.typeSpeed=V.typeSpeed??this.typeSpeed;if(!this.loops&&!this.stopLoop)this.loops=this.props.loop||V.loop||!1;this.speed=this.typeSpeed,this.nextPause=null,this._isAnimating=!1,this._animationFrameId=null,this.stringPos=0,this.nodeCounter=0,this.enclosedID=[],this.parseIndex=0,this.actionsPlayed=0;let H=this.constructor.patternCacheVersion;if(!this._actionPatternCache||this._patternCacheVersion!==H)this._patternCacheVersion=H,this._buildActionPatterns();if(this.setDisplay(U),this.elements=this.querySelectorAll("type-character"),typeof V.onBegin==="function")V.onBegin(this);if(V.preStringTyped?.(this.stringPos,this),typeof this.props.delay==="number")setTimeout(()=>{this.typewrite()},this.props.delay);else this.typewrite()}checkVoidTags(K){if(!(K instanceof Element))return!1;let V=(z,M=1)=>z.slice(z.indexOf("-")+M).replace(/[-](\w)/g,(A)=>A[1].toUpperCase()),Q=["br","hr","img"],U=K.localName&&K.getAttributeNames(),H=U&&U.map((z)=>({[z]:z.slice(0,5)==="data-"?K.dataset[V(z)]:z.slice(0,5)==="aria-"?K.getAttribute(z):z==="class"?K.className:K[z]})).reduce((z,M)=>Object.assign(z,M),{}),Y=Q.map((z)=>({[z]:{props:{[z]:!0},state:{...H}}})).reduce((z,M)=>Object.assign(z,M),{});if(K.localName&&Y[K.localName.toLowerCase()]){let{props:z,state:M}=Y[K.localName.toLowerCase()],A=document.createElement("type-character");return A.style.opacity="0",{props:z,state:M,node:A}}return!1}setDisplay(K){let V=document.createElement("div");V.innerHTML=K;let Q=this._getLeafNodes(V);this.actions=[];let U=0;for(let Y of Q){let z=this.checkVoidTags(Y);if(z){U++;let{props:M,state:A,node:R}=z;if(R.setProps(M),A)R.setState(A);Y.replaceWith(R)}else{let[M,A]=this.parseStringToFragment(Y.textContent||"",U);this.actions=this.actions.concat(...A),Y.replaceWith(M)}}let H=this.querySelector("div");if(H){let Y=document.createDocumentFragment();Y.append(...V.childNodes),H.replaceChildren(Y)}}stop(){if(this._isAnimating=!1,this._animationFrameId!==null)cancelAnimationFrame(this._animationFrameId),this._animationFrameId=null;if(typeof this.state.config.onStop==="function")this.state.config.onStop(this.stringPos,this)}finish(K=!1){if(K){let V=this.state.strings[0],Q=this.querySelector("div");if(Q===null)return;this.destroy(),Q.innerHTML=this.constructor.stripActionMarkers(V),this.state.config.onStringTyped?.(this.stringPos,this)}else{let V=this.engine.setting("minTextSpeed");if(this.speed=V>0?0:V,this.ignorePause=!0,this.loops)this.loops=!1,this.stopLoop=!0}}setContent(K,V=!0){if(V&&this.engine.setting("TypeAnimation")===!0)this.engine.global("finished_typing",!1),this.engine.trigger("didStartTyping"),this.setState({strings:[K]});else{let U=this.constructor.stripActionMarkers(K),H=this.querySelector("div");if(!H)H=document.createElement("div"),H.className="type-writer-container",this.appendChild(H);H.innerHTML=U,this.engine.global("finished_typing",!0),this.engine.trigger("didFinishTyping")}}start(){if(this._isAnimating)return;if(this.typewrite(),typeof this.state.config.onStart==="function")this.state.config.onStart(this.stringPos,this)}parseStringToFragment(K,V){let Q=document.createDocumentFragment(),U=[];if(!this._actionPatternCache)return this._parseTextOnlyToFragment(K,Q),[Q,U];let H=K.split(this._actionPatternCache),Y=0,z=0,M=0;return H.forEach((A,R)=>{if(this.parseIndex++,R%2===0){let D={};if(this.enclosedID.length)for(let F of this.enclosedID)D[F]=!0;for(let F of A)if(PM.test(F))Q.appendChild(document.createTextNode(F));else{if(z)Y-=z,z=0;Y++;let G=document.createElement("type-character");if(G.setProps({letter:F,charIndex:M}),M++,this.enclosedID.length)G.setState({special:D});G.style.opacity="0",Q.appendChild(G)}}else{let D=this._parseActionSection(A,Y,V);if(D){let{action:F,adjustedNodeCounter:P,adjustedFalseCounter:G}=D;if(F)U[P]=F;Y=P+1,z=G+1}}}),[Q,U]}_parseTextOnlyToFragment(K,V){let Q=0;for(let U of K)if(PM.test(U))V.appendChild(document.createTextNode(U));else{let H=document.createElement("type-character");H.setProps({letter:U,charIndex:Q}),Q++,H.style.opacity="0",V.appendChild(H)}}_parseActionSection(K,V,Q){let U=null,H;if(this._numberActionsCache)H="number",U=K.match(new RegExp(`^\\{(?${this._numberActionsCache})[:\\s](?\\d+)\\}$`));if(!U&&this._enclosedActionsCache){if(H="enclosed",U=K.match(new RegExp(`^\\{/?(?${this._enclosedActionsCache})(?.*)\\}$`)),U?.groups)if(K.startsWith("{/"))if(this.enclosedID.length){let R=this.enclosedID[this.enclosedID.length-1],D=R.lastIndexOf("-");if((D>0?R.substring(0,D):R)===U.groups.action){this.enclosedID.pop();return}else{this.engine.debug.error("Mismatched closing action:",U.groups.action);return}}else{this.engine.debug.error("Closing action without opening:",U.groups.action);return}else this.enclosedID.push(`${U.groups.action}-${this.parseIndex}`)}if(!U&&this._instanceActionsCache)H="instance",U=K.match(new RegExp(`^\\{(?${this._instanceActionsCache})\\/\\}$`));if(!U?.groups){this.engine.debug.error("Failed to match action:",K);return}let Y;if(H==="enclosed"&&U.groups.options)Y=this._parseOptions(U.groups.options);let z=V;if(Q)z+=Q;let M={action:U.groups.action,...U.groups.n&&{n:U.groups.n},...Y&&{options:Y},...U.groups.text!==void 0&&{text:U.groups.text},...H==="enclosed"&&{id:this.enclosedID[this.enclosedID.length-1]}};if(Q)z-=Q;return{action:M,adjustedNodeCounter:z,adjustedFalseCounter:0}}_parseOptions(K){let V={},Q=K.trim();if(Jj.test(Q))Q=Q.replace(vj,(U,H,Y)=>{return Y.replace(/\s/g,"[~]")}).replace(/\s/g,"=").replace(/\[~\]/g," ").split(/=/g);else if(oD.test(Q))Q=Q.replace(oD,(U,H,Y)=>{return" "+Y.replace(/\s/g,"[~]")}).replace(/\s/g,":").replace(/\[~\]/g," ").split(/:/g);else return Q=Q.split(/\s+/g),Q;if(Array.isArray(Q))Q.forEach((U,H)=>{if(H%2===0)V[U]=Q[H+1]});return V}executeAction(K){let V=this.constructor.actions();for(let Q in V)if(K.action===Q){let{action:U,...H}=K,Y=Object.values(H);V[Q].action.apply(this,Y)}}humanizer(K){return sD(K)}setCursor(K,V){if(V)this.unsetCursor(V);if(K)K.classList.add("cursor")}unsetCursor(K){if(K instanceof NodeList)K.forEach((V)=>V.classList.remove("cursor"));else if(K instanceof Element)K.classList.remove("cursor")}unsetAllCursors(K=!1){if(typeof this.props.showCursor==="boolean"||typeof this.props.showCursor==="number"){if(this.props.showCursor){if(this.props.hideCursorOnEnd||K)this.unsetCursor(this.querySelectorAll("type-character"))}}else if(this.state.config.showCursor){if(this.state.config.hideCursorOnEnd||K)this.unsetCursor(this.querySelectorAll("type-character"))}}typewrite(){if(this.actions[this.nodeCounter])return this.executeAction(this.actions[this.nodeCounter]),this.nodeCounter++,this.actionsPlayed++,this.typewrite();if(this.actionsPlayed)this.nodeCounter-=this.actionsPlayed,this.actionsPlayed=0;this._targetWaitTime=!this.ignorePause&&this.nextPause||this.humanizer(this.speed),this._accumulatedTime=0,this._lastFrameTime=performance.now(),this._isAnimating=!0,this._animationFrameId=requestAnimationFrame((K)=>this._animationLoop(K))}_animationLoop(K){if(!this._isAnimating)return;let V=K-this._lastFrameTime;if(this._lastFrameTime=K,this._accumulatedTime+=V,this._targetWaitTime<0){while(this.elements&&this.nodeCounter=this._targetWaitTime)this._revealNextCharacter();else this._animationFrameId=requestAnimationFrame((Q)=>this._animationLoop(Q))}_revealNextCharacter(K=!1){if(this.nextPause){if(this.nextPause=null,typeof this.state.config.onTypingResumed==="function")this.state.config.onTypingResumed(this.stringPos,this)}if(typeof this.props.showCursor==="boolean"||typeof this.props.showCursor==="number"){if(this.props.showCursor&&this.elements)this.setCursor(this.elements[this.nodeCounter],this.elements[this.nodeCounter-1])}else if(this.state.config.showCursor&&this.elements)this.setCursor(this.elements[this.nodeCounter],this.elements[this.nodeCounter-1]);if(this.stopLoop)this.stopLoop=!1;if(this.elements?.[this.nodeCounter])this.elements[this.nodeCounter].style.opacity="";if(this.nodeCounter+=1,K&&this.elements&&this.nodeCounter0){if(this.loops--,this.loops===0)this.stopLoop=!0;if(typeof this.state.config.onStringLoop==="function")this.state.config.onStringLoop(this.stringPos,this);return this.initiate()}}else{if(typeof this.state.config.onStringLoop==="function")this.state.config.onStringLoop(this.stringPos,this);return this.initiate()}this.state.config.onStringTyped?.(this.stringPos,this)}}_getLeafNodes(K){return dD(K)}destroy(K){if(this._isAnimating=!1,this._animationFrameId!==null)cancelAnimationFrame(this._animationFrameId),this._animationFrameId=null;if(this.ignorePause=void 0,this.loops=!1,K)while(this.firstElementChild?.firstChild)this.firstElementChild.firstChild.remove();if(this.elements)this.elements.forEach((V)=>V.removeAttribute("style"));if(typeof this.state.config.onDestroy==="function")this.state.config.onDestroy(this);if(this.unsetAllCursors(),this.stopLoop)this.stopLoop=!1}async onStateUpdate(K,V,Q){if(K==="strings")if(!this.state.ignore)this.forceRender().then(()=>{this.destroy(!!this.loops)}).finally(()=>{this.initiate()});else this.setState({ignore:!1})}async didMount(){if(this.props.start)this.initiate()}render(){return'
'}async willUnmount(){this.destroy(!0),this.elements=null,this.enclosedID=[],this.innerHTML=""}}var C6=mD;class CM extends $1{_appliedEffects=new Set;constructor(){super();this.props={letter:!1}}_getVoidElementType(){if(this.props.br)return"br";if(this.props.hr)return"hr";if(this.props.img)return"img";return null}_extractEffectNames(){if(!this.state.special)return[];return Object.keys(this.state.special).filter((K)=>this.state.special[K]).map((K)=>{let V=K.lastIndexOf("-");return V>0?K.substring(0,V):K})}_applyEffectAttributes(){let K=this._extractEffectNames();for(let V of this._appliedEffects)if(!K.includes(V))this.removeAttribute(`data-effect-${V}`),this._appliedEffects.delete(V);for(let V of K)if(!this._appliedEffects.has(V))this.setAttribute(`data-effect-${V}`,""),this._appliedEffects.add(V);if(typeof this.props.charIndex==="number")this.style.setProperty("--char-index",String(this.props.charIndex))}didMount(){return this._applyEffectAttributes(),Promise.resolve()}onStateUpdate(K,V,Q){if(K==="special")this._applyEffectAttributes();return Promise.resolve()}onPropsUpdate(K,V,Q){if(K==="charIndex"){if(typeof this.props.charIndex==="number")this.style.setProperty("--char-index",String(this.props.charIndex))}return Promise.resolve()}render(){let{letter:K}=this.props,V=this._getVoidElementType();if(V){let Q=Object.entries(this.state).filter(([U,H])=>H!==void 0&&U!=="special").map(([U,H])=>`${U}="${H}"`).join(" ");return Q?`<${V} ${Q} />`:`<${V} />`}return K||""}}CM.tag="type-character";var nD=CM;class rD{static _experimental=!1;static _configuration={};static id="Action";static loadingOrder=0;static engine;static blocking=!1;_statement;_cycle;_extras;context;static configuration(K=null){if(K===null)return this._configuration;if(typeof K==="string")return this._configuration[K];this._configuration=Object.assign({},this._configuration,K)}static async shouldProceed(K){}static async willProceed(){}static async shouldRollback(){}static async willRollback(){}static async onStart(){}static async onLoad(){}static async onSave(K){}static async reset(){}static async setup(K){}static async bind(K){}static async init(K){}static match(K){return!1}static matchString(K){return!1}static matchObject(K){return!1}static async beforeRun(K){}static async beforeRevert(K){}static async afterRun(K){}static async afterRevert(K){}constructor(K){}get engine(){return this.constructor.engine}set engine(K){throw Error("Component engine reference is hold at static level and cannot be modified.")}setContext(K){this.context=K}_setStatement(K){this._statement=K}_setCycle(K){this._cycle=K}setExtras(K){return this._extras=K,this._extras}async willApply(){}async apply(){}async didApply(K){return{advance:!1}}async interrupt(){}async willRevert(){}async revert(){}async didRevert(){return{advance:!1,step:!0}}}var V1=rD;class TV extends V1{static id="Canvas";static _configuration={objects:{},modes:["modal","displayable","immersive","background","character"]};static configuration(K=null){if(K===null)return TV._configuration;if(typeof K==="string")return TV._configuration[K];TV._configuration=Object.assign({},TV._configuration,K)}static async shouldProceed(){this.engine.element().find('[data-component="canvas-container"]').each((V)=>{let{mode:Q,canvas:U}=V.props;if(["immersive","modal"].indexOf(Q)>-1)throw Error(`Canvas "${U}" must be removed before proceeding.`)})}static async onLoad(){let K=this.engine.state("canvas");if(K.length===0)return;let V=[];for(let Q of K){let U=this.engine.prepareAction(Q,{cycle:"Application"});if(U===null)continue;let H=U.willApply().then(()=>{return U.apply().then(()=>{return U.didApply({updateHistory:!1,updateState:!1})})});V.push(H)}if(V.length>0)await Promise.all(V)}static async setup(){this.engine.history("canvas"),this.engine.state({canvas:[]})}static async bind(){window.addEventListener("resize",()=>{this.engine.element().find('[data-component="canvas-container"][mode="background"], [data-component="canvas-container"][mode="immersive"]').each((K)=>{let{object:V}=K.props;if(typeof V.resize==="function")I1.callAsync(V.resize,this.engine,K.layers,V.props,V.state,K)})})}static async reset(){let K=[];this.engine.element().find('[data-component="canvas-container"]').each((V)=>{let{object:Q}=V.props;K.push(I1.callAsync(Q.stop,this.engine,V.layers,Q.props,Q.state,V).then(()=>{V.remove()}))}),this.engine.history({canvas:[]}),this.engine.state({canvas:[]}),await Promise.all(K)}static matchString([K,V]){return K==="show"&&V==="canvas"}static objects(K=null){if(K===null)return TV._configuration.objects;if(typeof K==="string")return TV._configuration.objects[K];TV._configuration.objects={...TV._configuration.objects,...K}}mode;name;classes;object;element;containerSelector;constructor([K,V,Q,U="displayable",H,...Y]){super();this.mode=U,this.name=Q,this.containerSelector="",this.classes=typeof Y<"u"?["animated",...Y.filter((z)=>z!=="with")]:[]}async willApply(){if(TV._configuration.modes.indexOf(this.mode)===-1)return t0.show("action:canvas:invalid_mode",{mode:this.mode,validModes:this.constructor._configuration.modes,statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")}),Promise.reject("Invalid canvas mode provided.");if(this.object=TV.objects(this.name),typeof this.object!=="object")return t0.show("action:canvas:object_not_found",{name:this.name,availableObjects:Object.keys(TV.objects()),label:this.engine.state("label"),step:this.engine.state("step")}),Promise.reject("Canvas object did not exist or is invalid");return this.element=document.createElement("canvas-container"),this.containerSelector=`[data-component="canvas-container"][canvas="${this.name}"][mode="${this.mode}"]`,Promise.resolve()}async apply(){let K=()=>Promise.resolve();this.element.setProps({mode:this.mode,canvas:this.name,object:{layers:this.object.layers||["base"],props:this.object.props||{},state:{...this.object.state||{}},start:this.object.start||K,stop:this.object.stop||K,resize:this.object.resize||K},classes:this.classes});let V=this.engine.element().find('[data-screen="game"]');if(this.mode==="background")V.find('[data-ui="background"]').append(this.element);else if(this.mode==="immersive")V.append(this.element);else if(this.mode==="displayable"||this.mode==="modal"||this.mode==="character")V.get(0)?.content("visuals")?.append(this.element)}async didApply({updateHistory:K=!0,updateState:V=!0}={}){let Q=this._statement;if(K===!0)this.engine.history("canvas").push(Q);if(V===!0)this.engine.state({canvas:[...this.engine.state("canvas"),Q]});if(this.mode==="background"||this.mode==="character"||this.mode==="displayable")return{advance:!0};return{advance:!1}}async willRevert(){if(this.containerSelector=`[data-component="canvas-container"][canvas="${this.name}"][mode="${this.mode}"]`,this.element=document.querySelector(this.containerSelector),this.element===null)throw Error(`Canvas element "${this.name}" (mode: ${this.mode}) not found in the DOM.`);this.object=this.element.props.object}async revert(){await I1.callAsync(this.element.props.object.stop,this.engine,this.element.layers,this.element.props.object.props,this.element.props.object.state,this.element),this.engine.element().find(this.containerSelector).remove()}async didRevert(){let K=!1;this.engine.state({canvas:this.engine.state("canvas").filter((Q)=>{if(!K){let[,,U,H]=Q.split(" ");if(U===this.name&&H===this.mode)return K=!0,!1}return!0})});let V=this.engine.history("canvas");for(let Q=V.length-1;Q>=0;Q--){let[,,U]=V[Q].split(" ");if(U===this.name){V.splice(Q,1);break}}return{advance:!0,step:!0}}}var iD=TV;class pQ extends V1{static id="Choice";static blocking=!1;static async setup(){this.engine.globals({_CurrentChoice:[],_ChoiceTimer:[],_choice_pending_rollback:[],_choice_just_rolled_back:[]}),this.engine.history("choice")}static async bind(){let K=this.engine;this.engine.on("click","[data-choice]:not([disabled])",function(V){K.debug.debug("Registered Click on Choice Button"),V.stopImmediatePropagation(),V.stopPropagation(),V.preventDefault();let Q=this.dataset.do;if(Q=="null"){pQ.blocking=!1;return}K.element().find("choice-container").remove();let U=this.dataset.choice,Y=K.global("_CurrentChoice").pop()?.Choice;if(Y&&typeof Y.Timer<"u"){let A=K.global("_ChoiceTimer").pop();if(K.global("_choice_pending_rollback").pop(),typeof A<"u"&&A.props){if(clearTimeout(A.props.timer),A.parentNode!==null&&A.element)A.element().remove()}}let z=Y&&typeof U<"u"&&typeof Y[U]<"u";if(z)Q=Y[U].Do;let M=async()=>{if(typeof Q==="string"&&typeof U==="string"){let A=await K.run(Q);return pQ.blocking=!1,K.history("choice").push(U),A}};if(z&&typeof Y[U].onChosen==="function"){I1.callAsync(Y[U].onChosen,K).then(()=>{return M()}).catch((A)=>{pQ.blocking=!1,K.debug.error(A)});return}M().catch((A)=>{pQ.blocking=!1,K.debug.error(A)})})}static async reset(){this.engine.globals({_CurrentChoice:[],_ChoiceTimer:[],_choice_pending_rollback:[],_choice_just_rolled_back:[]})}static async afterRevert(){let K=this.engine;if(K.global("_choice_just_rolled_back").pop())return;if(K.global("_choice_pending_rollback").pop())K.global("_ChoiceTimer").pop()}static async shouldProceed(K){if(pQ.blocking)throw Error("Choice is waiting for input")}static async willRollback(){pQ.blocking=!1}static matchObject(K){return typeof K.Choice<"u"}statement;result;constructor(K){super();this.statement=K.Choice,this.result={advance:!1}}async apply({updateLog:K=!0}={}){pQ.blocking=!0,this.engine.global("_CurrentChoice").push(this._statement);let V=[];for(let R in this.statement){let D=this.statement[R];if(typeof D=="object"){if(R==="Timer")continue;if(this.statement[R]._key=R,typeof D.Condition<"u"&&D.Condition!=="")V.push(new Promise((F)=>{this.engine.assertAsync(this.statement[R].Condition,this.engine).then(()=>{F(this.statement[R])}).catch(()=>{F(void 0)})}));else V.push(Promise.resolve(this.statement[R]))}}let Q=await Promise.all(V),U=document.createElement("choice-container"),H=typeof this.statement.Class==="string"?this.statement.Class.trim():"";U.setProps({choices:Q.filter((R)=>typeof R<"u"),classes:H});let Y=this.statement.Dialog,z=this.statement.Timer,M=this.engine.element().find('[data-component="text-box"]').get(0);if(typeof Y==="string"){let R=this.engine.prepareAction(Y,{cycle:"Application"});if(R!==null)await R.willApply(),await R.apply({updateLog:K}),await R.didApply()}let A=M;if(A?.props?.mode==="nvl"&&A.content)A.content("text").append(U);else this.engine.element().find('[data-screen="game"]').append(U);if(typeof z==="object"){let R=document.createElement("timer-display");R.setProps(z),this.engine.global("_ChoiceTimer").push(R),this.engine.global("_choice_pending_rollback").push(!0),this.engine.element().find('[data-screen="game"]').prepend(R)}}async willRevert(){if(this.engine.history("choice").length>0){let K=this.engine.history("choice")[this.engine.history("choice").length-1];if(typeof this.statement[K]<"u")if(typeof this.statement[K].onRevert==="function"&&typeof this.statement[K].onChosen==="function"||typeof this.statement[K].onChosen!=="function")return Promise.resolve();else return Promise.reject("The choice taken is not reversible because it did not defined a `onRevert` function.")}return Promise.reject("Choice history was empty")}async revert(){let K=this.engine.history("choice")[this.engine.history("choice").length-1],V=this.statement[K];if(V&&typeof V.Do==="string")await this.engine.revert(V.Do,!1);if(V&&typeof V.onRevert==="function")await I1.callAsync(V.onRevert,this.engine);if(typeof this.statement.Timer==="object"&&this.statement.Timer!==null)this.engine.global("_ChoiceTimer").pop();if(typeof this.statement.Dialog==="string"){let U=this.engine.component("dialog-log");if(typeof U<"u"&&U.instances)U.instances((H)=>H.pop())}this.engine.element().find("choice-container").remove();let Q=this.engine.prepareAction(this._statement,{cycle:"Application"});if(Q!==null)await Q.willApply(),await Q.apply(),await Q.didApply({updateHistory:!1,updateState:!1})}async didRevert(){return this.engine.global("_choice_just_rolled_back").push(!0),this.engine.history("choice").pop(),{advance:!1,step:!1}}}var tD=pQ;class aD extends V1{static id="Clear";static async setup(){this.engine.history("clear")}static matchString([K]){return K==="clear"}async apply(){let K=this.engine.action("Dialog");if(K)K.reset({keepNVL:!0,saveNVL:!0})}async didApply(){let K=this.engine.element().find('[data-component="text-box"]').get(0);return this.engine.history("clear").push(K.props.mode),{advance:!0}}async willRevert(){if(this.engine.history("clear").length>0)return;throw Error("No items left on the clear history to revert it.")}async revert(){if(this.engine.history("clear").pop()==="nvl")this.engine.global("_should_restore_nvl",!0)}async didRevert(){return{advance:!0,step:!0}}}var eD=aD;class pV extends V1{static id="Conditional";static blocking=!1;static async setup(){this.engine.history("conditional"),this.engine.global("_conditional_pending_rollback",[]),this.engine.global("_conditional_just_rolled_back",[])}static async reset(){this.engine.global("_conditional_pending_rollback",[]),this.engine.global("_conditional_just_rolled_back",[])}static matchObject(K){return typeof K.Conditional<"u"}static async shouldProceed(K){if(pV.blocking)throw Error("Contitional is still running action")}static async willRollback(){pV.blocking=!1}static async afterRevert(){if(this.engine.global("_conditional_just_rolled_back").pop())return Promise.resolve();let V=this.engine.global("_conditional_pending_rollback");while(V.pop()){let Q=this.engine.label()[this.engine.state("step")];if(typeof Q<"u"&&Q!==null){if(typeof Q.Conditional==="object")this.engine.history("conditional").pop()}}}static async beforeRun(){this.engine.global("_conditional_pending_rollback").pop()}statement;branch;result;constructor(K){super();this.statement=K.Conditional,this.branch="",this.result={advance:!0,step:!1}}async apply(){try{let K=await I1.callAsync(this.statement.Condition,this.engine);if(pV.blocking=!0,typeof K==="number"){if(K<0)throw t0.show("action:conditional:negative_value",{value:K,availableBranches:Object.keys(this.statement).filter((V)=>V!=="Condition")}),Error("Invalid negative value");if(!Number.isInteger(K))throw t0.show("action:conditional:non_integer_value",{value:K,availableBranches:Object.keys(this.statement).filter((V)=>V!=="Condition")}),Error("Invalid non-integer value");K=`${K}`}if(K===!0){this.branch="True";let V=await this.engine.run(this.statement.True);this.result={...V,step:!1},pV.blocking=!1}else if(typeof K==="string"){let V=this.statement[K];if(typeof V>"u")throw t0.show("action:conditional:branch_not_found",{branch:K,availableBranches:Object.keys(this.statement).filter((U)=>U!=="Condition")}),Error("Non existent branch");this.branch=K;let Q=await this.engine.run(V);this.result={...Q,step:!1},pV.blocking=!1}else{this.branch="False";let V=await this.engine.run(this.statement.False);this.result={...V,step:!1},pV.blocking=!1}}catch(K){this.branch="False";let V=await this.engine.run(this.statement.False);this.result={...V,step:!1},pV.blocking=!1}}async didApply({updateHistory:K=!0}={}){if(!this.result.advance)this.engine.global("_conditional_pending_rollback").push(!0);if(K)this.engine.history("conditional").push(this.branch);return pV.blocking=!1,{advance:!1}}async willRevert(){let K=this.engine.history("conditional");if(K.length>0){let V=K[K.length-1];if(typeof this.statement[V]<"u")return Promise.resolve()}throw Error("Conditional history was empty.")}async revert(){let K=this.engine.history("conditional"),V=K[K.length-1];pV.blocking=!0;let Q=await this.engine.revert(this.statement[V]);if(Q)this.result=Q;pV.blocking=!1}async didRevert(){let K=this.engine.global("_conditional_pending_rollback"),V=this.engine.global("_conditional_just_rolled_back");return K.push(!0),V.push(!0),{advance:!1,step:!1}}}var KS=pV;class IM extends V1{static id="Dialog";static async shouldProceed(){let K=this.engine.element(),V,Q=K.find('[data-component="centered-dialog"]');if(Q.exists())V=Q.find('[data-content="wrapper"]').get(0);else{let H=K.find("type-writer");if(H.exists())V=H.last().get(0)}if(!V)return;let U=(V.state?.strings?.length||0)>0;if(!this.engine.global("finished_typing")&&U)throw this.engine.stopTyping(V),Error("TypeWriter effect has not finished.")}static async willProceed(){let K=this.engine.element().find('[data-component="centered-dialog"]');if(K.exists())K.remove();this.engine.global("_dialog_pending_revert",!1)}static async willRollback(){let K=this.engine.element().find('[data-component="text-box"]').get(0);if(this.engine.global("finished_typing",!0),K?.show)K.show();let V=this.engine.component("dialog-log"),Q=this.engine.element().find('[data-component="centered-dialog"]');if(Q.isVisible()){if(Q.remove(),K?.show)K.show()}if(this.engine.element().find('[data-ui="who"]').html(""),typeof V<"u"&&this.engine.global("_dialog_pending_revert")===!0&&V.instances)V.instances((U)=>U.pop()),this.engine.global("_dialog_pending_revert",!1)}static async setup(){this.engine.globals({finished_typing:!1,_dialog_pending_revert:!1}),this.engine.history("nvl")}static async bind(K){let V=this.engine,Q=(U,H,Y)=>Math.min(Math.max(U,H),Y);m0(`${K} [data-action="set-text-speed"]`).on("change mouseover",function(){let U=V.element().find('[data-component="text-box"] [data-component="type-writer"]').get(0),H=V.setting("maxTextSpeed"),Y=V.setting("minTextSpeed"),z=Q(parseInt(this.value),Y,H);V.preference("TextSpeed",z),U?.setState({config:{typeSpeed:z}})}),m0(`${K} [data-component="text-box"] [data-content="text"]`).on("scroll",()=>{let U=this.engine.element().find('[data-component="text-box"]');if(U.exists()){let H=U.get(0);if(typeof H.checkUnread==="function")H.checkUnread()}})}static async init(K){if(this.engine.setting("TypeAnimation")===!1)m0(`${K} [data-settings="text-speed"]`).hide();this.engine.setting("maxTextSpeed",parseInt(m0(`${K} [data-action="set-text-speed"]`).attribute("max")||"0")),this.engine.setting("minTextSpeed",parseInt(m0(`${K} [data-action="set-text-speed"]`).attribute("min")||"0"))}static async reset({keepNVL:K=!1,saveNVL:V=!1}={}){let Q=this.engine.element().find('[data-component="text-box"]').get(0);if(!Q)return;if(V===!0&&Q.props.mode==="nvl")this.engine.history("nvl").push(Q.content("dialog").html());if(K!==!0)Q.setProps({mode:"adv"});this.engine.element().find('[data-component="text-box"]').data("speaking",""),this.engine.element().find('[data-ui="who"]').style("color",""),this.engine.element().find('[data-ui="who"]').html(""),this.engine.element().find('[data-ui="say"]').html(""),this.engine.element().find('[data-ui="face"]').attribute("src",""),this.engine.element().find('[data-ui="face"]').hide(),Array.from(Q.classList).forEach((H)=>Q.classList.remove(H));let U=this.engine.element().find('[data-component="centered-dialog"]').get(0);if(U)Array.from(U.classList).forEach((H)=>U.classList.remove(H))}static matchString(){return!0}dialog;clearDialog;nvl;classes;character;image;expression;id="";constructor(K){super();let[V,...Q]=K,[U,H,Y]=V.split(":");if(this.dialog=Q.join(" "),this.clearDialog=C6.stripActionMarkers(this.dialog),this.nvl=!1,this.classes=Y&&Y.trim()!==""?Y.split("|"):[],typeof this.engine.character(U)<"u")this._setCharacter(U,H);else if(U==="centered")this.id="centered";else{if(this.id="_narrator",typeof this.engine.character("_narrator")<"u")this._setCharacter("_narrator",H);if(U==="nvl")this.nvl=!0;else if(U==="narrator");else this.dialog=`${V} ${this.dialog}`,this.clearDialog=`${V} ${this.clearDialog}`}}async willApply(){this.engine.element().find("[data-character]").removeClass("focus"),this.engine.element().find('[data-ui="face"]').hide(),this.engine.element().find('[data-ui="who"]').html(""),this.engine.element().find('[data-component="text-box"]').removeData("expression")}_handleCustomClasses(K){if(!K)return;Array.from(K.classList).filter((V)=>V!=="unread").forEach((V)=>K.classList.remove(V)),this.classes.forEach((V)=>K.classList.add(V))}_setCharacter(K,V){if(this.character=this.engine.character(K),this.id=K,typeof this.character.nvl<"u")this.nvl=this.character.nvl;if(typeof V<"u"){if(typeof this.character.expressions<"u")this.image=this.character.expressions[V],this.expression=V}else if(typeof this.character.default_expression<"u"){if(typeof this.character.expressions[this.character.default_expression]<"u")this.image=this.character.expressions[this.character.default_expression];else this.image=this.character.default_expression;this.expression="default"}}async displayCenteredDialog(K,V,Q,U){let H=document.createElement("centered-dialog"),Y=this.engine.element().find('[data-screen="game"]'),z=this.engine.element().find('[data-component="text-box"]'),M=z.find("type-writer").get(0);if(this._handleCustomClasses(H),M)M.setState({ignore:!0,strings:[]});z.hide(),Y.append(H),H.ready(()=>{let R=H.content("wrapper")?.get(0);if(R)R.setContent(K,U)})}displayNvlDialog(K,V,Q,U){let H=this.engine.element().find('[data-component="text-box"]').get(0);if(!H){this.engine.debug.error("Text box component not found");return}if(H.props?.mode!=="nvl")IM.reset(),H.setProps({mode:"nvl"}),this._handleCustomClasses(H);let Y=this.engine.element().find('[data-component="text-box"]').data("speaking");this.engine.element().find('[data-component="text-box"]').data("speaking",Q);let z=U&&this.engine.setting("NVLTypeAnimation")===!0;if(Q!=="_narrator"){let D=this.engine.character(Q);if(Y!==Q)this.engine.element().find('[data-ui="say"] [data-spoke]').last().addClass("nvl-dialog-footer"),this.engine.element().find('[data-ui="say"]').append(`
${this.engine.replaceVariables(D?.name??"")}:
`);else this.engine.element().find('[data-ui="say"]').append(`
`)}else{if(Y!==Q)this.engine.element().find('[data-ui="say"] [data-spoke]').last().addClass("nvl-dialog-footer");this.engine.element().find('[data-ui="say"]').append(`
`)}let A=m0('[data-ui="say"] [data-spoke] type-writer').last().get(0);if(A&&typeof A.ready==="function")A.ready(()=>{A.setContent(K,z)});else if(A)A.setContent(K,z);let R=this.engine.element().find('[data-component="text-box"]');if(R.exists()){let D=R.find('[data-content="text"]').get(0);if(D)D.scrollTop=D.scrollHeight;let F=R.get(0);if(typeof F.checkUnread==="function")F.checkUnread()}}async displayDialog(K,V,Q,U){if(this.nvl===!1){let H=this.engine.element().find('[data-component="text-box"]').get(0);if(!H){this.engine.debug.error("Text box component not found");return}if(H.props?.mode==="nvl"&&this._cycle==="Application"&&this.engine.global("_restoring_state")===!1)this.engine.history("nvl").push(H.content("dialog").html());H.setProps({mode:"adv"}),this.engine.element().find('[data-ui="say"] [data-spoke] type-writer').each((z)=>{if(typeof z.destroy==="function")z.destroy()}),this.engine.element().find('[data-ui="say"]').html(""),this.engine.element().find('[data-component="text-box"]').data("speaking",Q);let Y=this.engine.element().find('[data-component="text-box"] type-writer').get(0);if(Y)Y.setContent(K,U)}else this.displayNvlDialog(K,V,Q,U)}characterDialog(){if(typeof this.character.name<"u"&&!this.nvl)this.engine.element().find('[data-ui="who"]').html(this.engine.replaceVariables(this.character.name));let K=this.character.directory;if(typeof K>"u")K="";else K+="/";if(this.engine.element().find(`[data-character="${this.id}"]`).addClass("focus"),typeof this.character.color==="string"&&this.character.color!=="")this.engine.element().find('[data-ui="who"]').style("color",this.character.color);else this.engine.element().find('[data-ui="who"]').style("color","var(--character-name-color)");if(typeof this.image<"u"&&!this.nvl){let V=`${this.engine.setting("AssetsPath").root}/${this.engine.setting("AssetsPath").characters}/${K}${this.image}`;this.engine.element().find('[data-ui="face"]').attribute("src",V),this.engine.element().find('[data-ui="face"]').show(),this.engine.element().find('[data-component="text-box"]').data("expression",this.expression)}if(typeof this.character.type_animation<"u")return this.displayDialog(this.dialog,this.clearDialog,this.id,this.character.type_animation);else return this.displayDialog(this.dialog,this.clearDialog,this.id,!0)}async apply({updateLog:K=!0}={}){try{let Q=this.engine.component("dialog-log");if(typeof Q<"u"&&Q.instances){if(this._cycle==="Application"&&K===!0)Q.instances().each((U)=>U.write({id:this.id,character:this.character,dialog:this.clearDialog}))}}catch(Q){this.engine.debug.error(Q)}let V=this.engine.element().find('[data-component="text-box"]').get(0);if(V?.state?.hidden===!0)t0.show("action:dialog:textbox_hidden",{statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")});if(typeof this.character<"u")return this._handleCustomClasses(V),V?.show(),this.characterDialog();else if(this.id==="centered")return this.displayCenteredDialog(this.dialog,this.clearDialog,this.id,this.engine.setting("CenteredTypeAnimation"));else return this._handleCustomClasses(V),V?.show(),this.displayDialog(this.dialog,this.clearDialog,"_narrator",this.engine.setting("NarratorTypeAnimation"))}async didApply(){return this.engine.global("_dialog_pending_revert",!0),{advance:!1}}async willRevert(){this.engine.element().find("[data-character]").removeClass("focus"),this.engine.element().find('[data-ui="face"]').hide(),this.engine.element().find('[data-ui="who"]').html("")}async revert(){if(this.nvl===!0){let K=this.engine.element().find('[data-component="text-box"]').get(0);if(this._handleCustomClasses(K),K.props.mode==="nvl"){if(this.engine.global("_should_restore_nvl")===!0){if(this.engine.global("_should_restore_nvl",!1),this.engine.history("nvl").length>0){K.content("dialog").html(this.engine.history("nvl").pop());return}throw Error("No more dialogs on history from where to recover previous state.")}this.engine.element().find('[data-ui="say"] [data-spoke]').last().remove();return}else{if(this.engine.history("nvl").length>0){if(this.engine.global("_should_restore_nvl")===!0)this.engine.global("_should_restore_nvl",!1);K.setProps({mode:"nvl"}),K.content("dialog").html(this.engine.history("nvl").pop());return}throw Error("No more dialogs on history from where to recover previous state.")}}else await this.apply(),await this.didApply()}async didRevert(){return{advance:!1,step:!0}}}var VS=IM;class QS extends V1{static id="End";static async bind(){this.engine.registerListener("end",{keys:"shift+q",callback:()=>{if(this.engine.global("playing"))this.engine.alert("quit-warning",{message:"Confirm",actions:[{label:"Quit",listener:"quit"},{label:"Cancel",listener:"dismiss-alert"}]})}}),this.engine.registerListener("quit",{callback:()=>{if(this.engine.dismissAlert("quit-warning"),this.engine.global("playing")===!0){this.engine.run("end");return}let K=dH();if(K)K.send("quit-request")}})}static matchString([K]){return K==="end"}async willApply(){this.engine.hideScreens()}async apply(){let K=this.engine;K.global("playing",!1),K.resetGame(),K.showMainScreen();let V=K.element();V.find('[data-component="quick-menu"]').removeClass("splash-screen"),V.find('[data-component="game-screen"]').removeClass("splash-screen")}async willRevert(){throw Error("End action is not reversible")}}var US=QS;class HS extends V1{static id="Function";static matchObject({Function:K}){return typeof K<"u"}statement;shouldContinue;constructor({Function:K}){super();this.statement=K,this.shouldContinue=!0}async apply(){try{if(await I1.callAsync(this.statement.Apply,this.engine)===!1)this.shouldContinue=!1}catch(K){let V={label:this.engine.state("label"),step:this.engine.state("step")};if(typeof K==="object")V["Error Message"]=K.message,V["File Name"]=K.fileName,V["Line Number"]=K.lineNumber;else if(typeof K==="string")V["Error Message"]=K;t0.show("action:function:apply_error",V)}}async didApply(){return{advance:this.shouldContinue}}async willApply(){if(typeof this.statement.Reverse==="function"&&typeof this.statement.Revert!=="function")this.statement.Revert=this.statement.Reverse}async revert(){try{if(await I1.callAsync(this.statement.Revert,this.engine)===!1)this.shouldContinue=!1}catch(K){let V={label:this.engine.state("label"),step:this.engine.state("step")};if(typeof K==="object")V["Error Message"]=K.message,V["File Name"]=K.fileName,V["Line Number"]=K.lineNumber;else if(typeof K==="string")V["Error Message"]=K;t0.show("action:function:revert_error",V)}}async didRevert(){return{advance:this.shouldContinue,step:!0}}}var zS=HS;class LS extends V1{static id="Gallery";mode;asset;static matchString([K]){return K==="gallery"}constructor([K,V,Q]){super();this.mode=V,this.asset=Q}async apply(){hQ.instances("gallery-screen",(K)=>{let V=this.mode==="unlock"?[...K.state.unlocked,this.asset]:K.state.unlocked.filter((Q)=>Q!==this.asset);K.setState({unlocked:V})})}async didApply(){return{advance:!0}}async revert(){this.mode=this.mode==="lock"?"unlock":"lock",await this.apply()}async didRevert(){return{advance:!0,step:!0}}}var ZS=LS;class YS extends V1{static id="Hide::Canvas";static matchString([K,V]){return K==="hide"&&V==="canvas"}name;object;element;classes;constructor([K,V,Q,U,...H]){super();this.name=Q;let Y=this.engine.action("Canvas");if(this.object=Y?.objects?.(Q)??null,this.element=document.querySelector(`[data-component="canvas-container"][canvas="${this.name}"]`),typeof H<"u")this.classes=H;else this.classes=[]}async willApply(){if(this.element===null)throw t0.show("action:hide_canvas:not_shown",{name:this.name,statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")}),Error("Attempted to hide a canvas that was not being shown.")}async apply(){let{object:K}=this.element.props;if(await I1.callAsync(K.stop,this.engine,this.element.layers,K.props,K.state,this.element),this.classes.length>0){let V=this.element.element();V.addClass("animated");for(let Q of this.classes)if(Q)V.addClass(Q);V.data("visibility","invisible"),V.on("animationend",(Q)=>{if(Q.target.dataset.visibility==="invisible")Q.target.remove()})}else this.engine.element().find(`[data-component="canvas-container"][canvas="${this.name}"]`).remove()}async didApply(){let K=!1;return this.engine.state({canvas:this.engine.state("canvas").filter((V)=>{if(!K){let[,,Q]=V.split(" ");if(Q===this.name)return K=!0,!1}return!0})}),{advance:!0}}async revert(){let K=this.engine.history("canvas");for(let V=K.length-1;V>=0;V--){let Q=K[V],[,,U]=Q.split(" ");if(U===this.name){let H=this.engine.prepareAction(Q,{cycle:"Application"});if(H!==null)await H.willApply(),await H.apply(),await H.didApply({updateHistory:!1,updateState:!0});return}}}async didRevert(){return{advance:!0,step:!0}}}var qS=YS;class OS extends V1{static id="Hide::Character";static matchString([K,V,Q]){return K==="hide"&&V==="character"&&Q.indexOf(":")===-1}asset;element;classes;constructor([K,V,Q,...U]){super();if(this.asset=Q,typeof this.engine.character(this.asset)<"u")this.element=this.engine.element().find(`[data-character="${this.asset}"]`).last();else t0.show("action:hide_character:character_not_found",{asset:this.asset,availableCharacters:Object.keys(this.engine.characters()),statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")});if(typeof U<"u")this.classes=U;else this.classes=[];this.classes=this.classes.filter((H)=>H!=="at"&&H!=="with")}async willApply(){if(!this.element.exists())throw t0.show("action:hide_character:not_shown",{asset:this.asset,availableCharacters:Object.keys(this.engine.characters()),statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")}),Error("Attempted to hide a character that was not being shown.")}async apply(){let K=this.element.data("position"),V=this._statement.match(/at\s(\S*)/),Q=[...this.element.get(0).classList];for(let Y of Q)if(Y!==K||V instanceof Array)this.element.removeClass(Y);if(V instanceof Array){let[Y,z]=V;this.element.data("position",z)}this.element.addClass("animated");let U=Q.find((Y)=>Y.match(/end-([A-Za-z]+)/)!==null);if(typeof U<"u"){let[Y,z]=U.split("-");this.element.addClass(z)}let H=this.classes.indexOf("duration");if(H>-1)this.element.style("animation-duration",this.classes[H+1]);else this.element.style("animation-duration","");if(this.classes.length>0||typeof U<"u"){for(let Y of this.classes)if(Y)this.element.addClass(Y);this.element.data("visibility","invisible"),this.element.on("animationend",(Y)=>{if(Y.target.dataset.visibility==="invisible")Y.target.remove()})}else this.element.remove()}async didApply(){let K=this.engine.state("characters").filter((Q)=>{let[U,H,Y]=Q.split(" ");return Y!==this.asset});if(this.engine.setting("ExperimentalFeatures")){let Q=this.engine.state("characterLayers").filter((U)=>{let[H,Y,z]=U.split(" "),[M,A]=z.split(":");return M!==this.asset});this.engine.state({characters:K,characterLayers:Q})}else this.engine.state({characters:K});return{advance:!0}}async willRevert(){if(this.engine.history("character").length<=0)return Promise.reject()}async revert(){let K=this.engine.history("character");for(let V=K.length-1;V>=0;V--){let{statement:Q}=K[V],[,,U]=Q.split(" ");if(U===this.asset){let H=this.engine.prepareAction(Q,{cycle:"Application"});if(H!==null)await H.apply(),await H.didApply({updateHistory:!1,updateState:!0});return}}throw Error("Failed to revert HideCharacter")}async didRevert(){return{advance:!0,step:!0}}}var MS=OS;class WS extends V1{static id="Hide::Character::Layer";static _experimental=!0;static matchString([K,V,Q]){return K==="hide"&&V==="character"&&Q.indexOf(":")>-1}asset;layer;parent;element;classes;constructor([K,V,Q,...U]){super();let[H,Y]=Q.split(":");if(this.asset=H,this.layer=Y,typeof this.engine.character(this.asset)<"u")this.parent=this.engine.element().find(`[data-character="${this.asset}"]`).last(),this.element=this.parent.find(`[data-layer="${this.layer}"]`).last();else t0.show("action:hide_character_layer:character_not_found",{asset:this.asset,availableCharacters:Object.keys(this.engine.characters()),statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")});if(typeof U<"u")this.classes=U;else this.classes=[];this.classes=this.classes.filter((z)=>z!=="at"&&z!=="with")}async willApply(){if(!this.element.exists())throw t0.show("action:hide_character_layer:layer_not_shown",{layer:this.layer,asset:this.asset,availableCharacters:Object.keys(this.engine.characters()),statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")}),Error("Attempted to hide a character that was not being shown.")}async apply(){let K=[...this.element.get(0).classList];for(let H of K)this.element.removeClass(H);this.element.addClass("animated");let V=K.find((H)=>H.match(/end-([A-Za-z]+)/)!==null);if(typeof V<"u"){let[H,Y]=V.split("-");this.element.addClass(Y)}let Q=this.classes.indexOf("duration");if(Q>-1)this.element.style("animation-duration",this.classes[Q+1]);else this.element.style("animation-duration","");if(this.classes.length>0||typeof V<"u"){for(let H of this.classes)if(H)this.element.addClass(H);this.element.data("visibility","invisible"),this.element.on("animationend",(H)=>{if(H.target.dataset.visibility==="invisible")H.target.remove()})}else this.element.remove();let U=this.parent.get(0);if(U?.state&&U?.setState){let H=U.state.layers||{},{[this.layer]:Y,...z}=H;U.setState({layers:z})}}async didApply({updateHistory:K=!0,updateState:V=!0}={}){let Q=this.engine.state("characterLayers").filter((U)=>{let[H,Y,z]=U.split(" "),[M,A]=z.split(":");return M!==this.asset||A!==this.layer});return this.engine.state({characterLayers:Q}),{advance:!0}}async willRevert(){if(this.engine.history("characterLayer").length<=0)return Promise.reject()}async revert(){for(let K=this.engine.history("characterLayer").length-1;K>=0;K--){let{parent:V,layers:Q}=this.engine.history("characterLayer")[K],U=Q.find((H)=>{let{previous:Y,statement:z}=H,[M,A,R,D]=(z||Y).split(" "),[F,P]=R.split(":");return F===this.asset&&P===this.layer});if(typeof U==="object"&&U!==null){let{statement:H,previous:Y}=U,[,,z]=((H||Y)??"").split(" "),[M,A]=z?.split(":")??[];if(M===this.asset&&A===this.layer){if(H===null)return;let R=this.engine.prepareAction(H,{cycle:"Application"});if(R!==null)await R.apply(),await R.didApply({updateHistory:!1,updateState:!0});return}}}throw Error("Failed to revert HideCharacterLayer")}async didRevert(){return{advance:!0,step:!0}}}var XS=WS;class AS extends V1{static id="Hide::Image";static matchString([K,V]){return K==="hide"&&V==="image"}asset;element;classes;constructor([K,V,Q,...U]){super();if(this.asset=Q,this.element=this.engine.element().find(`[data-image="${this.asset}"]`),typeof U<"u")this.classes=U;else this.classes=[];this.classes=this.classes.filter((H)=>H!=="at"&&H!=="with")}async willApply(){if(!this.element.exists())throw t0.show("action:hide_image:not_shown",{asset:this.asset,statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")}),Error("Attempted to hide an image that was not being shown.")}async apply(){let K=this.element.data("position"),V=this._statement.match(/at\s(\S*)/),Q=[...this.element.get(0).classList];for(let H of Q)if(H!==K||V instanceof Array)this.element.removeClass(H);if(V instanceof Array){let[H,Y]=V;this.element.data("position",Y)}this.element.addClass("animated");let U=this.classes.indexOf("duration");if(U>-1)this.element.style("animation-duration",this.classes[U+1]);else this.element.style("animation-duration","");if(this.classes.length>0){for(let H of this.classes)this.element.addClass(H);this.element.data("visibility","invisible"),this.element.on("animationend",(H)=>{if(H.target.dataset.visibility==="invisible")H.target.remove()})}else this.element.remove()}async didApply(){let K=this.engine.state("images").filter((V)=>{let[Q,U,H]=V.split(" ");return H!==this.asset});return this.engine.state({images:K}),{advance:!0}}async willRevert(){if(this.engine.history("image").length===0)return Promise.reject("Image history was empty.")}async revert(){let K=this.engine.history("image");for(let V=K.length-1;V>=0;V--){let Q=K[V],[,,U]=Q.split(" ");if(U===this.asset){let H=this.engine.prepareAction(Q,{cycle:"Application"});if(H!==null)await H.willApply(),await H.apply(),await H.didApply({updateHistory:!1,updateState:!0});return}}throw Error("Could not find a previous state to revert to")}async didRevert(){return{advance:!0,step:!0}}}var RS=AS;class $S extends V1{static id="Hide::Particles";static matchString([K,V]){return K==="hide"&&V==="particles"}constructor([K,V]){super()}async apply(){let K=this.engine.action("Particles");if(K?.stop)K.stop()}async didApply(){return this.engine.state({particles:""}),{advance:!0}}async revert(){let K=this.engine.history("particle");if(K.length>0){let V=K[K.length-1],Q=this.engine.prepareAction(V,{cycle:"Application"});if(Q!==null)await Q.willApply(),await Q.apply(),await Q.didApply({updateHistory:!1,updateState:!0})}}async didRevert(){return{advance:!0,step:!0}}}var FS=$S;class DS extends V1{static id="Hide::TextBox";static async setup(){this.engine.state({textboxHidden:!1})}static async reset(){this.engine.state({textboxHidden:!1})}static async onLoad(){if(this.engine.state("textboxHidden")===!0)this.engine.element().find('[data-component="text-box"]').get(0)?.setState({hidden:!0})}static matchString([K,V]){return K==="hide"&&V==="textbox"}async apply(){this.engine.element().find('[data-component="text-box"]').get(0)?.setState({hidden:!0})}async didApply(){return this.engine.state({textboxHidden:!0}),{advance:!0}}async revert(){this.engine.element().find('[data-component="text-box"]').get(0)?.setState({hidden:!1})}async didRevert(){return this.engine.state({textboxHidden:!1}),{advance:!0,step:!0}}}var SS=DS;class EV extends V1{static id="Video";static blocking=!1;static _configuration={objects:{},modes:["modal","displayable","immersive","fullscreen","background"]};static cleanupVideoElement(K){K.pause(),K.onended=null,K.onerror=null,K.src="",K.load()}static async shouldProceed(){if(EV.blocking)throw Error("Video is still playing");return new Promise((K,V)=>{m0("[data-video]").each((Q)=>{let U=Q;if(U.ended!==!0&&U.dataset.mode!=="background"&&U.dataset.mode!=="displayable")V("Playing video must end before proceeding.")}),K()})}static async onLoad(){let K=this.engine.state("videos");if(K.length===0)return;let V=[];for(let Q of K){let U=this.engine.prepareAction(Q,{cycle:"Application"});if(U===null)continue;let H=(async()=>{await U.willApply(),await U.apply(),await U.didApply({updateHistory:!1,updateState:!1})})();V.push(H)}if(V.length>0)await Promise.all(V)}static async setup(){this.engine.history({video:[]}),this.engine.state({videos:[]})}static async reset(){this.engine.element().find("[data-video]").each((K)=>{EV.cleanupVideoElement(K)}),this.engine.element().find("[data-video]").remove(),this.engine.history({video:[]}),this.engine.state({videos:[]})}static matchString([K,V]){return K==="show"&&V==="video"}mode;name;props;src;classes;constructor([K,V,Q,U="modal",...H]){super();if(this.mode=U,this.name=Q,this.props=H,typeof this.engine.asset("videos",Q)<"u")this.src=this.engine.asset("videos",Q);if(typeof H<"u")this.classes=["animated",...H.filter((Y)=>Y!=="with")];else this.classes=[]}async willApply(){if(EV._configuration.modes.indexOf(this.mode)===-1)throw t0.show("action:video:invalid_mode",{mode:this.mode,validModes:EV._configuration.modes,statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")}),Error("Invalid video mode provided.")}async apply(){let K=document.createElement("video"),Q=this.engine.preference("Volume")?.Video??1;K.volume=Q,K.dataset.video=this.name,K.dataset.mode=this.mode;for(let Y of this.classes)K.classList.add(Y);let{root:U,videos:H}=this.engine.setting("AssetsPath");if(m0(K).attribute("src",`${U}/${H}/${this.src}`),K.onerror=()=>{this.engine.debug.error(`Failed to load video: ${this.name}`)},this.props.indexOf("close")>-1)K.onended=()=>{if(this.mode==="fullscreen"&&document.fullscreenElement)document.exitFullscreen().catch(()=>{});let Y=this.engine.element().find(`[data-video="${this.name}"][data-mode="${this.mode}"]`).get(0);if(Y)EV.cleanupVideoElement(Y),Y.remove();let z=()=>{let M=!1;this.engine.state({videos:this.engine.state("videos").filter((A)=>{if(!M){let[,,R,D]=A.split(" ");if(R===this.name&&D===this.mode)return M=!0,!1}return!0})})};if(this.mode==="immersive"||this.mode==="fullscreen"||this.mode==="modal")z(),EV.blocking=!1,this.engine.proceed({userInitiated:!1,skip:!1,autoPlay:!1});else if(this.mode==="background"||this.mode==="displayable")z()};if(this.props.indexOf("loop")>-1)m0(K).attribute("loop","");if(this.props.indexOf("controls")>-1)m0(K).attribute("controls","");if(this.mode==="background")this.engine.element().find('[data-ui="background"]').append(K);else if(this.mode==="immersive")EV.blocking=!0,this.engine.element().find('[data-screen="game"]').prepend(K);else if(this.mode==="fullscreen")if(EV.blocking=!0,K.requestFullscreen)this.engine.element().find('[data-screen="game"]').append(K),K.requestFullscreen();else m0(K).addClass("immersive"),this.engine.element().find('[data-screen="game"]').prepend(K);else if(this.mode==="displayable")this.engine.element().find('[data-screen="game"]').append(K);else if(this.mode==="modal")EV.blocking=!0,this.engine.element().find('[data-screen="game"]').append(K);else throw Error("Invalid video mode.");K.play()}async didApply({updateHistory:K=!0,updateState:V=!0}={}){let Q=this._statement;if(K===!0)this.engine.history("video").push(Q);if(V===!0)this.engine.state({videos:[...this.engine.state("videos"),Q]});if(this.mode==="background"||this.mode==="modal"||this.mode==="displayable")return{advance:!0};return{advance:!1}}async revert(){let K=this.engine.element().find(`[data-video="${this.name}"][data-mode="${this.mode}"]`).get(0);if(K){if(this.mode==="fullscreen"&&document.fullscreenElement)await document.exitFullscreen().catch(()=>{});EV.cleanupVideoElement(K),K.remove()}if(this.mode==="immersive"||this.mode==="fullscreen"||this.mode==="modal")EV.blocking=!1}async didRevert(){let K=!1;this.engine.state({videos:this.engine.state("videos").filter((Q)=>{if(!K){let[,,U,H]=Q.split(" ");if(U===this.name&&H===this.mode)return K=!0,!1}return!0})});let V=this.engine.history("video");for(let Q=V.length-1;Q>=0;Q--){let U=V[Q],[,,H,Y]=U.split(" ");if(H===this.name&&Y===this.mode){V.splice(Q,1);break}}return{advance:!0,step:!0}}}var Dz=EV;class PS extends V1{static id="Hide::Video";static matchString([K,V]){return K==="hide"&&V==="video"}name;classes;constructor([K,V,Q,U,...H]){super();if(this.name=Q,typeof H<"u")this.classes=H;else this.classes=[]}async apply(){let K=this.engine.element().find(`[data-video="${this.name}"]`),V=K.get(0);if(this.classes.length>0){K.addClass("animated");for(let Q of this.classes)if(Q)K.addClass(Q);K.data("visibility","invisible"),K.on("animationend",(Q)=>{let U=Q.target;if(U.dataset?.visibility==="invisible")Dz.cleanupVideoElement(U),U.remove()})}else{if(V)Dz.cleanupVideoElement(V);K.remove()}}async didApply(){let K=!1;return this.engine.state({videos:this.engine.state("videos").filter((V)=>{if(!K){let[,,Q]=V.split(" ");if(Q===this.name)return K=!0,!1}return!0})}),{advance:!0}}async revert(){let K=this.engine.history("video");for(let V=K.length-1;V>=0;V--){let Q=K[V],[,,U]=Q.split(" ");if(U===this.name){let H=this.engine.prepareAction(Q,{cycle:"Application"});if(H!==null)await H.willApply(),await H.apply(),await H.didApply({updateHistory:!1,updateState:!0});return}}}async didRevert(){return{advance:!0,step:!0}}}var CS=PS;class iH extends V1{static id="Input";static blocking=!1;static async setup(){this.engine.globals({_InputTimer:null,_input_just_rolled_back:!1})}static async reset(){this.engine.globals({_InputTimer:null,_input_just_rolled_back:!1})}static async afterRevert(){if(this.engine.global("_input_just_rolled_back")){this.engine.global("_input_just_rolled_back",!1);return}let K=this.engine.global("_InputTimer");if(typeof K<"u"&&K!==null){if(K.props?.timer)clearTimeout(K.props.timer);if(K.parentNode!==null&&K.element)K.element().remove();this.engine.global("_InputTimer",null)}}static async shouldProceed(K){if(iH.blocking)throw Error("Waiting for user input")}static async willRollback(){iH.blocking=!1}static matchObject({Input:K}){return typeof K<"u"}statement;constructor({Input:K}){super();if(this.statement=K,typeof this.statement.Validation!=="function")this.statement.Validation=()=>!0;if(typeof this.statement.Save!=="function")this.statement.Save=()=>!0;if(typeof this.statement.Warning!=="string")this.statement.Warning="";if(typeof this.statement.actionString!=="string")this.statement.actionString="OK";if(typeof this.statement.Class!=="string")this.statement.Class="";if(["string","number"].indexOf(typeof this.statement.Default)===-1||this.statement.Default==="")this.statement.Default=null;if(typeof this.statement.Type!=="string")this.statement.Type="text";if(typeof this.statement.Options!=="object"||this.statement.Options===null)this.statement.Options=[];if(typeof this.statement.Timer!=="object")this.statement.Timer=null;if(typeof this.statement.Attributes!=="object")this.statement.Attributes={}}async apply(){iH.blocking=!0;let K=document.createElement("text-input"),{Text:V,Warning:Q,Save:U,Validation:H,actionString:Y,Class:z,Type:M,Options:A,Default:R,Timer:D,Attributes:F}=this.statement;if(K.setProps({text:this.engine.replaceVariables(V),type:M,options:A,default:R,warning:Q,onSubmit:U,validate:H,attributes:F,actionString:Y,callback:()=>{let P=this.engine.global("_InputTimer");if(typeof P<"u"&&P!==null){if(P.props?.timer)clearTimeout(P.props.timer);if(P.parentNode!==null&&P.element)P.element().remove();this.engine.global("_InputTimer",null)}iH.blocking=!1,this.engine.proceed({userInitiated:!0,skip:!1,autoPlay:!1})},classes:z.trim()}),D!==null){let P=document.createElement("timer-display");P.setProps(D),this.engine.global("_InputTimer",P),this.engine.element().find('[data-screen="game"]').prepend(P)}this.engine.element().find('[data-screen="game"]').append(K)}async willRevert(){if(typeof this.statement.Revert==="function")return;throw Error("Input is missing a `Revert` function.")}async revert(){return await I1.callAsync(this.statement.Revert,this.engine),this.apply()}async didRevert(){return this.engine.global("_input_just_rolled_back",!0),{advance:!1,step:!0}}}var IS=iH;class GS extends V1{static id="Jump";static async setup(){this.engine.history("label"),this.engine.history("jump")}static async bind(K){this.engine.registerListener("jump",{callback:(V,Q)=>{this.engine.run(`jump ${Q.data("jump")}`,!1)}})}static matchString([K]){return K==="jump"}label;constructor([K,V]){super();this.label=V}async willApply(){if(typeof this.engine.script(this.label)<"u")return this.engine.stopAmbient(),this.engine.showScreen("game"),Promise.resolve();throw t0.show("action:jump:label_not_found",{targetLabel:this.label,availableLabels:Object.keys(this.engine.script()),statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")}),Error("Label does not exist.")}async apply(){if(this.engine.history("jump").push({source:{label:this.engine.state("label"),step:this.engine.state("step")},destination:{label:this.label,step:0}}),this.engine.state({step:0,label:this.label}),this.engine.element().find('[data-component="text-box"]').get(0)?.props?.mode!=="nvl"){let V=this.engine.action("Dialog");if(V)V.reset()}this.engine.run(this.engine.label()[this.engine.state("step")]),this.engine.history("label").push({label:this.label,step:this.engine.state("step")})}async willRevert(){if(this.engine.history("jump").length>0)return Promise.resolve();throw Error("No elements in history available.")}async revert(){let K=this.engine.history("jump")[this.engine.history("jump").length-1];if(typeof K<"u")return this.engine.state({step:K.source.step,label:K.source.label}),Promise.resolve();throw Error("No elements in history available.")}async didRevert(){return this.engine.history("jump").pop(),this.engine.history("label").pop(),{advance:!0,step:!1}}}var TS=GS;class VQ extends V1{static id="Message";static blocking=!1;static _configuration={messages:{}};static async bind(){this.engine.on("click",'[data-component="message-modal"] [data-action="close"]',()=>{VQ.blocking=!1,this.engine.element().find('[data-component="message-modal"]').remove(),this.engine.proceed({userInitiated:!0,skip:!1,autoPlay:!1})})}static async shouldProceed(K){if(VQ.blocking)throw Error("Message waiting for dismissal")}static async willRollback(){VQ.blocking=!1}static matchString([K,V]){return K==="show"&&V==="message"}static messages(K=null){if(K!==null)if(typeof K==="string")return VQ._configuration.messages[K];else VQ._configuration.messages=Object.assign({},VQ._configuration.messages,K);else return VQ._configuration.messages}id;message;classes;constructor([K,V,Q,...U]){super();this.id=Q,this.message=this.constructor.messages(Q),this.classes=U}async willApply(){if(typeof this.message<"u"){if(this.message.Title&&this.message.Subtitle&&this.message.Message)this.message.title=this.message.Title,this.message.subtitle=this.message.Subtitle,this.message.body=this.message.Message;return Promise.resolve()}else t0.show("action:message:not_found",{id:this.id,availableMessages:Object.keys(VQ.messages()),label:this.engine.state("label"),step:this.engine.state("step")});return Promise.reject()}async apply(){VQ.blocking=!0;let K=document.createElement("message-modal");if(typeof this.message.title==="string")K.setProps({title:this.engine.replaceVariables(this.message.title)});if(typeof this.message.subtitle==="string")K.setProps({subtitle:this.engine.replaceVariables(this.message.subtitle)});if(typeof this.message.body==="string")K.setProps({body:this.engine.replaceVariables(this.message.body)});if(typeof this.message.actionString==="string")K.setProps({actionString:this.engine.replaceVariables(this.message.actionString)});for(let V of this.classes)if(V)K.classList.add(V);this.engine.element().find('[data-screen="game"]').append(K)}async revert(){let K=this.engine.component("message-modal");if(K?.instances)K.instances().remove();return this.apply()}async didRevert(){return{advance:!1,step:!0}}}var ES=VQ;class BS extends V1{static id="Next";static matchString([K]){return K==="next"}async didApply(){return{advance:!0}}async didRevert(){return{advance:!0,step:!0}}}var JS=BS;class BV extends V1{static id="Notification";static blocking=!1;static _configuration={notifications:{}};static async shouldProceed(){if(BV.blocking)throw Error("Waiting for user input")}static async willRollback(){BV.blocking=!1}static matchString([K,V]){return K==="show"&&V==="notification"}static notifications(K=null){if(K!==null)if(typeof K==="string")return BV._configuration.notifications[K];else BV._configuration.notifications=Object.assign({},BV._configuration.notifications,K);else return BV._configuration.notifications}hasPermission;notification;time;constructor([K,V,Q,U]){super();if(this.hasPermission=!1,!("Notification"in window))console.warn("Notifications are not supported in this platform.");if(typeof BV.notifications(Q)<"u"){if(this.notification=Object.assign({},BV.notifications(Q)),typeof U<"u")if(!isNaN(Number(U)))this.time=parseInt(U);else t0.show("action:notification:invalid_time",{time:U,statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")})}else t0.show("action:notification:not_found",{name:Q,availableNotifications:Object.keys(BV.notifications()),label:this.engine.state("label"),step:this.engine.state("step")})}async willApply(){if(!this.notification)return;return BV.blocking=!0,new Promise((K,V)=>{if(Notification.permission==="granted")this.hasPermission=!0,K();else if(Notification.permission!=="denied")Notification.requestPermission((Q)=>{if(Q==="granted")this.hasPermission=!0,K();else console.warn("User denied notifications permission, none will be shown."),K()});else console.warn("The permission to display notifications was denied by the user."),K()})}async apply(){if(!this.notification)return;for(let K of Object.keys(this.notification))if(typeof this.notification[K]==="string")this.notification[K]=this.engine.replaceVariables(this.notification[K]);if(this.hasPermission){let K=new Notification(this.notification.title,this.notification);if(typeof this.time<"u")setTimeout(()=>{K.close()},this.time)}}async didApply(){return BV.blocking=!1,{advance:!0}}async didRevert(){return{advance:!0,step:!0}}}var vS=BV;class cQ extends V1{static id="Particles";static _configuration={particles:{}};static stop(){try{let K=RH.domItem(0);if(typeof K<"u")K.stop(),this.engine.element().find("#tsparticles").html("")}catch(K){console.error("An error ocurred while trying to stop particle system.",K)}}static async setup(){this.engine.history("particle"),this.engine.state({particles:""}),await w5(RH)}static async reset(){this.engine.state({particles:""}),this.stop()}static async onLoad(){let K=this.engine.state("particles");if(K!==""){let V=this.engine.prepareAction(K,{cycle:"Application"});if(V!==null)await V.willApply(),await V.apply(),await V.didApply({updateHistory:!1,updateState:!1})}}static matchString([K,V]){return K==="show"&&V==="particles"}static particles(K=null){if(K!==null)if(typeof K==="string")return cQ._configuration.particles[K];else cQ._configuration.particles=Object.assign({},cQ._configuration.particles,K);else return cQ._configuration.particles}particles;name;constructor([K,V,Q]){super();if(typeof cQ.particles(Q)<"u")this.particles=cQ.particles(Q),this.name=Q;else console.error(`The Particles ${Q} could not be shown because it doesn't exist in the particles object.`)}async willApply(){if(typeof this.particles<"u")return;else throw Error("Particle system object does not exist.")}async apply(){await RH.load({id:"tsparticles",options:this.particles})}async didApply({updateHistory:K=!0,updateState:V=!0}={}){if(K===!0)this.engine.history("particle").push(this._statement);if(V===!0)this.engine.state({particles:this._statement});return{advance:!0}}async revert(){cQ.stop()}async didRevert(){return this.engine.history("particle").pop(),this.engine.state({particles:""}),{advance:!0,step:!0}}}var kS=cQ;class fS extends V1{static id="Pause";static matchString([K]){return K==="pause"}type;media;player;constructor([K,V,Q]){super();if(this.type=V,this.media=Q,typeof Q>"u")this.player=this.engine.mediaPlayers(V);else this.player=this.engine.mediaPlayer(V,Q)}async willApply(){if(this.player)return Promise.resolve();throw Error("Media player was not defined.")}async apply(){if(Array.isArray(this.player))for(let K of this.player)K.pause();else this.player.pause()}async didApply(){let K=this.engine.state(this.type);if(Array.isArray(this.player)){let V=K.map((Q)=>({...Q,paused:!0}));this.engine.state({[this.type]:V})}else{let V=K.map((Q)=>{if(typeof Q.statement==="string"){let[U,H,Y]=Q.statement.split(" ");if(this.media===void 0||Y===this.media)return{...Q,paused:!0}}return Q});this.engine.state({[this.type]:V})}return{advance:!0}}async willRevert(){if(this.player)return Promise.resolve();throw Error("Media player was not defined.")}async revert(){if(Array.isArray(this.player)){let K=[];for(let V of this.player)K.push(V.play());await Promise.all(K)}else await this.player.play()}async didRevert(){let K=this.engine.state(this.type);if(Array.isArray(this.player)){let V=K.map((Q)=>({...Q,paused:!1}));this.engine.state({[this.type]:V})}else{let V=K.map((Q)=>{if(typeof Q.statement==="string"){let[U,H,Y]=Q.statement.split(" ");if(this.media===void 0||Y===this.media)return{...Q,paused:!1}}return Q});this.engine.state({[this.type]:V})}return{advance:!0,step:!0}}}var wS=fS;class jS extends V1{static id="Placeholder";static matchString([K]){return K==="$"}name;action;arguments;constructor([K,V,...Q]){super();this.name=V,this.action=this.engine.$(V),this.arguments=Q}async willApply(){if(this.name.indexOf("_")===0)this.action=await I1.callAsync(this.action,this.engine,...this.arguments);this.action=this.engine.prepareAction(this.action,{cycle:this._cycle}),await this.action.willApply()}async apply(){await this.action.apply()}async didApply(K){return await this.action.didApply(K)}async willRevert(){if(this.name.indexOf("_")===0)this.action=await I1.callAsync(this.action,this.engine,...this.arguments);this.action=this.engine.prepareAction(this.action,{cycle:this._cycle}),await this.action.willRevert()}async revert(){await this.action.revert()}async didRevert(K={advance:!0,step:!0}){return await this.action.didRevert(K)}}var xS=jS;class I6 extends V1{static id="Play";static async shouldProceed(K){if(typeof K!=="object"||K===null)return;let{userInitiated:V,skip:Q}=K;if(V===!1&&Q===!1){let U=this.engine.mediaPlayers("voice");for(let H of U)if(!H.ended)throw Error("Voice player still playing.")}}static async willProceed(){I6.shutUp()}static async willRollback(){I6.shutUp()}static async setup(){if(!this.engine.audioContext)this.engine.audioContext=new(window.AudioContext||window.webkitAudioContext);XV.initialize(this.engine.audioContext).catch((K)=>{console.warn("Failed to initialize AudioPlayer worklets:",K)}),this.engine.history("music"),this.engine.history("sound"),this.engine.history("voice"),this.engine.state({music:[],sound:[],voice:[]})}static async init(K){let V=Object.keys(this.engine.mediaPlayers());for(let Q of V){let U=this.engine.element().find(`[data-target="${Q}"]`).get(0);if(U){let Y=this.engine.preference("Volume")[PK.capitalize(Q)];if(typeof Y==="string")Y=parseFloat(Y);U.value=String(Y)}}}static async bind(K){let V=this.engine;V.registerListener("set-volume",{callback:(Q,U)=>{let H=U.data("target"),Y=U.value();if(typeof Y==="string")Y=parseFloat(Y);if(H==="video")m0("[data-video]").each((M)=>{M.volume=Y});else{let M=V.mediaPlayers(H);if(H==="music"){let A=V.ambientPlayer;if(A&&A.gainNode&&V.audioContext)A.gainNode.gain.setValueAtTime(Y,V.audioContext.currentTime);else if(A&&A.volume!==void 0)A.volume=Y}for(let A of M){let R=A.dataset?.volumePercentage;if(R&&!isNaN(parseInt(R)))A.volume=parseInt(R)/100*Y;else A.volume=Y}}let z=V.preference("Volume");z[PK.capitalize(H)]=Y,V.preferences(V.preferences(),!0)}})}static async onLoad(){let K=Object.keys(this.engine.mediaPlayers()),V=[],Q=[];for(let U of K){let H=this.engine.state(U);if(typeof H<"u"&&Array.isArray(H)){if(H.length>0)for(let Y of H){let z=this.engine.prepareAction(Y.statement,{cycle:"Application"});if(z!==null){let M=z.willApply().then(()=>{return z.apply().then(()=>{return z.didApply({updateHistory:!1,updateState:!1})})});if(V.push(M),Y.paused){let A=Y.statement.split(" ");if(A.length>=3)Q.push({type:A[1],media:A[2]})}}}}}if(V.length>0)await Promise.all(V);for(let{type:U,media:H}of Q)this.engine.mediaPlayer(U,H)?.pause()}static async reset(){let K=this.engine.mediaPlayers();for(let V of Object.keys(K))this.engine.removeMediaPlayer(V);this.engine.state({music:[],sound:[],voice:[]})}static matchString([K]){return K==="play"}static shutUp(){let K=this.engine.mediaPlayers("voice",!0);for(let V of Object.keys(K))this.engine.removeMediaPlayer("voice",V);this.engine.state({voice:[]})}type;directory;mediaKey;props;mediaVolume;media;player;constructor([K,V,Q,...U]){super();if(this.type=V,this.media="",this.type==="music")this.directory=this.type;else this.directory=this.type+"s";this.mediaKey=Q,this.props=U;let H=this.engine.preference("Volume");if(this.mediaVolume=H[PK.capitalize(this.type)],typeof Q<"u"&&Q!=="with"){if(typeof this.engine.asset(this.directory,Q)<"u")this.media=this.engine.asset(this.directory,Q);else this.media=Q;let Y=this.engine.mediaPlayer(this.type,this.mediaKey);this.player=typeof Y>"u"?null:Y}else this.player=this.engine.mediaPlayers(this.type)}async createAudioPlayer(K=!1,V=1){let Q=this.engine.audioContext,U=Q.createGain();U.connect(Q.destination);let H=`${this.directory}/${this.mediaKey}`,Y=this.engine.audioBufferCache(H);if(!Y){let M=this.engine.setting("AssetsPath"),R=await(await fetch(`${M.root}/${M[this.directory]}/${this.media}`)).arrayBuffer();Y=await Q.decodeAudioData(R)}let z=this.parseEffects();return new XV(Q,Y,{outputNode:U,effects:z,paused:K,volume:V})}parseEffects(){let K=XV.effects(),V={};for(let Q of K){let U=this.props.indexOf(Q.id);if(U===-1)continue;let H={};for(let Y=0;Y-1,U=this.props.indexOf("volume")>-1?parseInt(this.props[this.props.indexOf("volume")+1])/100:1,H=this.mediaVolume*U;if(this.player===null)this.player=await this.createAudioPlayer(K,H),this.engine.mediaPlayer(this.type,this.mediaKey,this.player);if(this.player instanceof XV){if(Q)this.player.loop=!0;if(this.player.volume=H,this.player.dataset.volumePercentage=(U*100).toString(),this.player.onended=()=>{let Y={};Y[this.type]=this.engine.state(this.type).filter((z)=>z.statement!==this._statement),this.engine.state(Y),this.engine.removeMediaPlayer(this.type,this.mediaKey)},K===!0)return Promise.resolve();if(await this.player.play(),V>-1){let z=this.props[V+1].match(/\d*(\.\d*)?/),M=z?parseFloat(z[0]):0;this.player.fadeIn(M,this.player.volume)}return}else if(this.player instanceof Array){let Y=[];for(let z of this.player)if(z.paused&&!z.ended){if(V>-1){let A=this.props[V+1].match(/\d*(\.\d*)?/),R=A?parseFloat(A[0]):0;z.fadeIn(R)}Y.push(z.play())}await Promise.all(Y)}else throw Error("An error occurred, you probably have a typo on the media you want to play.")}async didApply({updateHistory:K=!0,updateState:V=!0}={}){if(K===!0){if(this.player instanceof XV||this.mediaKey)this.engine.history(this.type).push(this._statement)}if(V===!0){let Q=this.engine.state(this.type);if(this.player instanceof XV||this.mediaKey){let U={statement:this._statement,paused:!1};this.engine.state({[this.type]:[...Q,U]})}else if(this.player instanceof Array){let U=Q.map((H)=>({...H,paused:!1}));this.engine.state({[this.type]:U})}}return{advance:!0}}async revert(){if(typeof this.mediaKey<"u")this.engine.removeMediaPlayer(this.type,this.mediaKey);else if(this.player instanceof Array){for(let K of this.player)if(!K.paused&&!K.ended)K.pause()}}async didRevert(){let K=this.engine.state(this.type);if(typeof this.mediaKey<"u"){let V=this.engine.history(this.type);for(let U=V.length-1;U>=0;U--)if(V[U]===this._statement){V.splice(U,1);break}let Q=K.filter((U)=>U.statement!==this._statement);this.engine.state({[this.type]:Q})}else if(this.player instanceof Array){let V=K.map((Q)=>({...Q,paused:!0}));this.engine.state({[this.type]:V})}return{advance:!0,step:!0}}}var _S=I6;class SK extends V1{static id="Preload";static _blocks={};static _loaders=new Map;static _categoryLoaderMap=new Map;static _categoryAliases=new Map;static async setup(){if(!this._loaders.has("audio"))this.registerLoader("audio",{loader:async(U,H)=>{let Y=U,z=await H.getAudioBufferPersistent(Y);if(z)return z;let M=await tK.audio(U,H.audioContext);return H.storeAudioBufferPersistent(Y,M).catch(()=>{}),M},cache:{get:(U,H)=>U.audioBufferCache(H),set:(U,H,Y)=>U.audioBufferCache(H,Y),delete:(U,H)=>U.audioBufferUncache(H),clear:(U,H)=>U.audioBufferClearCache(H)}});if(!this._loaders.has("image"))this.registerLoader("image",{loader:async(U)=>{return tK.image(U)},cache:{get:(U,H)=>U.imageCache(H),set:(U,H,Y)=>U.imageCache(H,Y),delete:(U,H)=>U.imageUncache(H),clear:(U,H)=>U.imageClearCache(H)}});let K=["music","sounds","voices"],V=["scenes","images","characters"];for(let U of K)if(!this._categoryLoaderMap.has(U))this.registerCategory(U,"audio");for(let U of V)if(!this._categoryLoaderMap.has(U))this.registerCategory(U,"image");let Q={scene:"scenes",image:"images",sound:"sounds",voice:"voices"};for(let[U,H]of Object.entries(Q))if(!this._categoryAliases.has(U))this.registerAlias(U,H)}static registerLoader(K,V){this._loaders.set(K,V)}static registerCategory(K,V){this._categoryLoaderMap.set(K,V)}static getLoaderType(K){return this._categoryLoaderMap.get(K)}static getLoader(K){return this._loaders.get(K)}static hasLoader(K){let V=this._categoryLoaderMap.get(K);return V!==void 0&&this._loaders.has(V)}static registerAlias(K,V){this._categoryAliases.set(K,V)}static resolveCategory(K){return this._categoryAliases.get(K)??K}static blocks(K){if(K!==void 0)this._blocks={...this._blocks,...K};else return this._blocks}static matchString([K]){return K==="preload"}category="";assetName="";blockId="";isBlock=!1;isBlocking=!1;characterId="";preloadPromise=null;constructor([K,V,...Q]){super();if(V==="block")this.isBlock=!0,this.blockId=Q[0],this.isBlocking=Q.includes("blocking");else if(V==="character")this.category="characters",this.characterId=Q[0],this.assetName=Q[1],this.isBlocking=Q.includes("blocking");else this.category=SK.resolveCategory(V),this.assetName=Q[0],this.isBlocking=Q.includes("blocking")}async preloadAsset(K,V){let Q=SK.getLoaderType(K);if(!Q){console.warn(`Preload: No loader registered for category "${K}"`);return}let U=SK.getLoader(Q);if(!U){console.warn(`Preload: Loader type "${Q}" not found`);return}let H=this.engine.setting("AssetsPath"),Y=this.engine.asset(K,V);if(!Y){console.warn(`Preload: Asset "${V}" not found in category "${K}"`);return}let z=`${H.root}/${H[K]}/${Y}`,M=`${K}/${V}`;if(U.cache.get(this.engine,M)!==void 0)return;try{let A=await U.loader(z,this.engine);U.cache.set(this.engine,M,A)}catch(A){console.error(`Preload: Failed to preload ${K} asset "${V}":`,A)}}async preloadCharacterSprite(K,V){let Q=SK.getLoader("image");if(!Q){console.warn("Preload: Image loader not registered");return}let U=this.engine.character(K);if(!U){console.warn(`Preload: Character "${K}" not found`);return}let H=this.engine.setting("AssetsPath"),Y=U.directory?`${U.directory}/`:"";Y=`${H.root}/${H.characters}/${Y}`;let z=U.sprites?.[V];if(!z||typeof z!=="string"){console.warn(`Preload: Sprite "${V}" not found for character "${K}"`);return}let M=`${Y}${z}`,A=`characters/${K}/${V}`;if(Q.cache.get(this.engine,A)!==void 0)return;try{let R=await Q.loader(M,this.engine);Q.cache.set(this.engine,A,R)}catch(R){console.error(`Preload: Failed to preload character sprite "${K}/${V}":`,R)}}async preloadBlock(K){let V=SK._blocks[K];if(!V){console.warn(`Preload: Block "${K}" not found`);return}let Q=[];for(let[U,H]of Object.entries(V)){if(U==="characters"&&typeof H==="object"&&!Array.isArray(H)){for(let[Y,z]of Object.entries(H))for(let M of z)Q.push(this.preloadCharacterSprite(Y,M));continue}if(!Array.isArray(H))continue;if(SK.hasLoader(U))for(let Y of H)Q.push(this.preloadAsset(U,Y));else console.warn(`Preload: No loader registered for category "${U}" in block "${K}"`)}await Promise.all(Q)}async apply(){if(this.isBlock)this.preloadPromise=this.preloadBlock(this.blockId);else if(this.category==="characters")this.preloadPromise=this.preloadCharacterSprite(this.characterId,this.assetName);else if(SK.hasLoader(this.category))this.preloadPromise=this.preloadAsset(this.category,this.assetName);else console.warn(`Preload: No loader registered for category "${this.category}"`);if(this.isBlocking&&this.preloadPromise)await this.preloadPromise}async didApply(){return{advance:!0}}async revert(){return}async didRevert(){return{advance:!0,step:!0}}}var NS=SK;class gS extends V1{static id="Scene";static loadingOrder=-2;static async setup(){this.engine.history("scene"),this.engine.history("sceneElements"),this.engine.history("sceneState"),this.engine.global("_should_restore_nvl",!1),this.engine.state({scene:""})}static async onLoad(){let K=this.engine.history("sceneState"),V=this.engine.history("sceneElements");if(K.length!==V.length){let U=V.map((H)=>{if(H.length>0)return{characters:H.filter((Y)=>Y.indexOf("data-character=")>-1).map((Y)=>{let z=document.createElement("div");z.innerHTML=Y;let M=z.firstChild;if(!M)return"";let A=m0(M),R=A.get(0);if(!R)return"";let D=Array.from(R.classList).filter((F)=>F!=="animated").join(" ");return`show character ${A.data("character")} ${A.data("sprite")}${D.length>0?` with ${D}`:""}`}),images:H.filter((Y)=>Y.indexOf("data-image=")>-1).map((Y)=>{let z=document.createElement("div");z.innerHTML=Y;let M=z.firstChild;if(!M)return"";let A=m0(M),R=A.get(0);if(!R)return"";let D=Array.from(R.classList).filter((F)=>F!=="animated").join(" ");return`show image ${A.data("image")}${D.length>0?` with ${D}`:""}`})};return{characters:[],images:[]}});for(let H of U)this.engine.history("sceneState").push(H)}let Q=this.engine.state("scene");if(Q!==""){let U=this.engine.prepareAction(Q,{cycle:"Application"});if(U!==null)await U.willApply(),await U.apply(),await U.didApply({updateHistory:!1,updateState:!1})}}static async reset(){this.engine.state({scene:""})}static matchString([K,V]){return K==="show"&&V==="scene"}scene;scene_elements;scene_state;constructor([K,V,Q,...U]){super();this.scene=Q,this.scene_elements=[],this.scene_state={}}async willApply(){return Promise.resolve()}async apply(){let K=['[data-screen="game"] [data-character]:not([data-visibility="invisible"])','[data-screen="game"] [data-image]:not([data-visibility="invisible"])'];this.engine.element().find(K.join(",")).each((Y)=>{this.scene_elements.push(Y.outerHTML)});let V=this.engine.element().find('[data-component="text-box"]').get(0);this.scene_state={characters:[...this.engine.state("characters")],images:[...this.engine.state("images")],textBoxMode:V?.props?.mode??""};let Q=this.engine.global("_restoring_state"),U=this._statement,H=this.engine.prepareAction(U.replace("show scene","show background"),{cycle:"Application"});if(H!==null)await H.willApply(),await H.apply(),await H.didApply({updateHistory:!Q,updateState:!Q});if(Q===!1)this.engine.state({characters:[],images:[]}),this.engine.element().find("[data-character]").remove(),this.engine.element().find("[data-image]").remove()}async didApply({updateHistory:K=!0,updateState:V=!0}={}){if(K===!0)this.engine.history("sceneElements").push(this.scene_elements),this.engine.history("sceneState").push(this.scene_state),this.engine.history("scene").push(this._statement);if(V===!0)this.engine.state({scene:this._statement});if(this.engine.global("_restoring_state")===!1){let U=this.engine.action("Dialog");if(U)U.reset({saveNVL:!0})}return{advance:!0}}async willRevert(){return this.engine.element().find("[data-character]").remove(),this.engine.element().find("[data-image]").remove(),Promise.resolve()}async revert(){let K=this._statement;await this.engine.revert(K.replace("show scene","show background"),!1,!1);let V=()=>{let U=this.engine.history("sceneElements");if(U.length>0){let Y=U.pop();if(typeof Y==="object"&&Y)for(let z of Y)this.engine.element().find('[data-screen="game"]').append(z)}let H=this.engine.history("sceneState");if(H.length>0){let Y=H.pop();if(typeof Y==="object"&&Y){let z={...Y},M=this.engine.element().find('[data-component="text-box"]').get(0);if(M?.setProps)M.setProps({mode:z.textBoxMode||"adv"});if(z.textBoxMode==="nvl")this.engine.global("_should_restore_nvl",!0);this.engine.state({characters:z.characters??[],images:z.images??[]})}}},Q=this.engine.history("scene");if(Q.length>0){this.engine.global("_scene_history_cleared_by_background",!1),Q.pop(),this.engine.state({scene:Q.length>0?Q[Q.length-1]:""}),V();let U=this.engine.action("Dialog");if(U)U.reset();return}if(this.engine.global("_scene_history_cleared_by_background")===!0){this.engine.global("_scene_history_cleared_by_background",!1),V();let U=this.engine.action("Dialog");if(U)U.reset()}}async didRevert(){return{advance:!0,step:!0}}}var yS=gS;class hS extends V1{static id="Show::Background";static async setup(){this.engine.history("background"),this.engine.state({background:""}),this.engine.global("_scene_history_cleared_by_background",!1)}static async onLoad(){let K=this.engine.state("background");if(typeof K==="string"&&K!==""){let V=this.engine.prepareAction(K,{cycle:"Application"});if(V!==null)await V.willApply(),await V.apply(),await V.didApply({updateHistory:!1,updateState:!1})}}static async reset(){let K=this.engine.element().find('[data-ui="background"]');K.style("background-image","initial"),K.style("background-color","initial"),this.engine.state({background:""})}static matchString([K,V]){return K==="show"&&V==="background"}background;property;value;classes;constructor([K,V,Q,...U]){super();if(this.background=Q,this.property="background-image",typeof this.engine.asset("scenes",Q)<"u")this.value=`url(${this.engine.setting("AssetsPath").root}/${this.engine.setting("AssetsPath").scenes}/${this.engine.asset("scenes",Q)})`;else{let H=[Q,...U].join(" ");if(U.indexOf("with")>-1)this.value=PK.prefix("with",H);else this.value=H;let Y=["#","rgb","hsl"].findIndex((M)=>{return this.value.indexOf(M)===0})>-1,z=this.value.indexOf(" ")>-1?!1:new RegExp(/\w+/).test(this.value)&&!new RegExp(/(url|gradient)\(/).test(this.value);if(Y===!0||z===!0)this.property="background-color"}this.classes=["animated",...U]}async willApply(){let K=this.engine.element().find('[data-ui="background"]');K.removeClass();let V=K.get(0);if(V)V.offsetWidth}async apply(){let K=this.engine.element().find('[data-ui="background"]');this.engine.element().find('[data-ui="background"]').style("background-image","initial"),this.engine.element().find('[data-ui="background"]').style("background-color","initial"),this.engine.element().find('[data-ui="background"]').style("animation-duration",""),this.engine.element().find('[data-ui="background"]').style(this.property,this.value);let V=this.classes.indexOf("duration");if(V>-1)K.style("animation-duration",this.classes[V+1]);for(let Q of this.classes)K.addClass(Q)}async didApply({updateHistory:K=!0,updateState:V=!0}={}){if(V===!0)this.engine.state({background:this._statement});if(K===!0)this.engine.history("background").push(this._statement);return{advance:!0}}async willRevert(){this.engine.element().find('[data-ui="background"]').removeClass()}async revert(){let K=this.engine.history("background");if(K.pop(),K.length===0)K=this.engine.history("scene"),K.pop(),this.engine.global("_scene_history_cleared_by_background",!0);if(K.length>0){let V=this.engine.element().find('[data-ui="background"]'),Q=K[K.length-1].replace("show scene","show background"),U=this.engine.prepareAction(Q,{cycle:"Application"});if(V.style("background-image","initial"),V.style("background-color","initial"),U!==null&&U.property&&U.value)V.style(U.property,U.value);let H=U?.classes??[];for(let Y of H)V.addClass(Y);this.engine.state({background:Q})}}async didRevert(){return{advance:!0,step:!0}}}var pS=hS;class cS extends V1{static id="Show::Character";static async setup(){this.engine.history("character"),this.engine.state({characters:[]})}static async reset(){this.engine.element().find('[data-screen="game"] [data-character]').remove(),this.engine.state({characters:[]})}static async onLoad(){let K=this.engine.state("characters"),V=[];for(let Q of K){let U=this.engine.prepareAction(Q,{cycle:"Application"});if(U!==null){let H=(async()=>{await U.willApply(),await U.apply(),await U.didApply({updateHistory:!1,updateState:!1})})();V.push(H)}}if(V.length>0)await Promise.all(V)}static matchString([K,V,Q]){return K==="show"&&V==="character"&&Q.indexOf(":")===-1}asset;state;sprite;character;image;classes;constructor([K,V,Q,U,...H]){super();if(this.asset=Q,this.state=this.engine.state("characters").find((Y)=>{let[z,M,A,R]=Y.split(" ");return A===this.asset}),typeof this.engine.character(Q)<"u")if(this.sprite=U,this.character=this.engine.character(Q),this.image=this.character.sprites[this.sprite],typeof H<"u")this.classes=["animated",...H.filter((Y)=>Y!=="at"&&Y!=="with")];else this.classes=[];else this.sprite="",this.classes=[]}async willApply(){if(typeof this.character>"u")throw t0.show("action:show_character:character_not_found",{asset:this.asset,availableCharacters:Object.keys(this.engine.characters()),statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")}),Error(`Character "${this.asset}" not found.`);if(typeof this.image>"u")throw t0.show("action:show_character:sprite_not_found",{asset:this.asset,sprite:this.sprite,availableSprites:this.character.sprites?Object.keys(this.character.sprites):[],statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")}),Error(`Sprite "${this.sprite}" not found for character "${this.asset}".`)}async apply(){let K=this.character.directory;if(typeof K>"u")K="";else K+="/";let V=!0,Q=this.engine.element().find(`[data-character="${this.asset}"]:not([data-visibility="invisible"])`),U=Q.get(0);if(Q.exists()&&U){let z=[...U.classList],M=z.find((A)=>A.match(/end-([A-Za-z]+)/)!==null);if(typeof M<"u"){let[A,R]=M.split("-"),D=z[z.indexOf(M)-1];Q.removeClass(D),Q.addClass(R),Q.data("visibility","invisible"),Q.on("animationend",(F)=>{F.target.remove()}),V=!1}for(let A of z)if(this.classes.indexOf(A)===-1)Q.removeClass(A)}let H=`${this.engine.setting("AssetsPath").root}/${this.engine.setting("AssetsPath").characters}/${K}`,Y=this._statement.match(/at\s(\S*)/);if(V&&Q.exists()){if(this.engine.setting("ExperimentalFeatures")===!0)if(Q.matches("character-sprite")&&typeof this.image==="object"){let A=Q.get(0),R={};for(let[D,F]of Object.entries(this.image))R[D]={asset:F,classes:[]};if(A?.setState)A.setState({layers:R})}else if(Q.matches("character-sprite")){let A=Q.get(0);if(A?.setProps)A.setProps({src:`${H}${this.image}`})}else Q.attribute("src",`${H}${this.image}`);else Q.attribute("src",`${H}${this.image}`);Q.data("sprite",this.sprite);for(let A of this.classes)if(A)Q.addClass(A);let z=this.classes.indexOf("duration");if(z>-1)Q.style("animation-duration",this.classes[z+1]);else Q.style("animation-duration","");let M=this.classes.indexOf("transition");if(M>-1)Q.style("transition-duration",this.classes[M+1]);else Q.style("transition-duration","");if(Y instanceof Array){let[A,R]=Y;Q.data("position",R)}else Q.addClass("center"),Q.data("position","center");Q.data("sprite",this.sprite)}else{let z=null,M=Promise.resolve();if(typeof this.image==="string"){let A=`characters/${this.asset}/${this.sprite}`,R=this.engine.imageCache(A);if(R)z=R.cloneNode(!0);else z=document.createElement("img"),m0(z).attribute("src",`${H}${this.image}`);m0(z).addClass("animated"),m0(z).data("character",this.asset),m0(z).data("sprite",this.sprite)}else if(this.engine.setting("ExperimentalFeatures")===!0){z=document.createElement("character-sprite"),z.setProps({character:this.character,directory:H});let A={},R=this._extras||{};if(typeof R.layerHistory<"u"){for(let{statement:D,previous:F}of R.layerHistory.layers)if(F!==null){let[P,G,T,v,...J]=F.split(" "),[k,f]=T.split(":");A[f]={asset:v,classes:["animated",...J.filter((j)=>j!=="at"&&j!=="with")]}}}else for(let[D,F]of Object.entries(this.image))A[D]={asset:F,classes:[]};z.setState({layers:A}),m0(z).addClass("animated"),m0(z).data("character",this.asset),m0(z).data("sprite",this.sprite),M=new Promise((D,F)=>{z.ready(()=>D())})}if(z){for(let R of this.classes)if(R)z.classList.add(R);if(Y instanceof Array){let[R,D]=Y;m0(z).data("position",D)}else z.classList.add("center"),m0(z).data("position","center");let A=this.classes.indexOf("duration");if(A>-1)m0(z).style("animation-duration",this.classes[A+1]);this.engine.element().find('[data-screen="game"] [data-content="visuals"]').append(z)}await M}}async didApply({updateHistory:K=!0,updateState:V=!0}={}){let Q=this.engine.setting("ExperimentalFeatures")===!0;if(K===!0){if(this.engine.history("character").push({statement:this._statement,previous:this.state||null}),Q){let H=this.engine.history("characterLayer");if(typeof this.image==="object"){let Y=[];for(let z in this.image){let M=this.engine.state("characterLayers").find((A)=>{let[,,R]=A.split(" "),[D,F]=R.split(":");return D===this.asset&&F==z});Y.push({statement:`show character ${this.asset}:${z} ${this.image[z]}`,previous:M||null})}H.push({parent:this._statement,layers:Y})}else H.push({parent:this._statement,layers:this.engine.state("characterLayers").map((Y)=>{return{statement:null,previous:Y}})})}}if(V===!0){if(this.engine.state({characters:[...this.engine.state("characters").filter((U)=>{if(typeof U==="string"){let[,,H]=U.split(" ");return H!==this.asset}return!1}),this._statement]}),Q)if(typeof this.image==="object"){let U=[],H=this._extras||{};if(typeof H.layerHistory<"u"){for(let{statement:Y,previous:z}of H.layerHistory.layers)if(z!==null)U.push(z)}else for(let Y in this.image)U.push(`show character ${this.asset}:${Y} ${this.image[Y]}`);this.engine.state({characterLayers:[...this.engine.state("characterLayers").filter((Y)=>{if(typeof Y==="string"){let[z,M,A,R]=Y.split(" "),[D]=A.split(":");return D!==this.asset}return!1}),...U]})}else this.engine.state({characterLayers:[...this.engine.state("characterLayers").filter((U)=>{if(typeof U==="string"){let[H,Y,z,M]=U.split(" "),[A]=z.split(":");return A!==this.asset}return!1})]})}return{advance:!0}}async revert(){let K=this.engine.setting("ExperimentalFeatures");this.engine.element().find(`[data-character="${this.asset}"]`).remove();for(let Q=this.engine.history("character").length-1;Q>=0;Q--){let{statement:U,previous:H}=this.engine.history("character")[Q],[Y,z,M,A]=U.split(" ");if(M===this.asset){if(this.engine.history("character").splice(Q,1),K){let R=this.engine.history("characterLayer");if(typeof H<"u"&&H!==null){let D;for(let P=R.length-1;P>=0;P--){let{parent:G}=R[P];if(typeof G==="string"){let[,,T]=G.split(" ");if(T===this.asset){D=R[P];break}}}let F=this.engine.prepareAction(H,{cycle:"Application",extras:{layerHistory:D}});if(F!==null)await F.apply(),await F.didApply({updateHistory:!1,updateState:!0});for(let P=R.length-1;P>=0;P--){let{parent:G}=R[P];if(typeof G==="string"){let[,,T]=G.split(" ");if(T===this.asset){R.splice(P,1);break}}}return}else for(let D=R.length-1;D>=0;D--){let{parent:F}=R[D];if(typeof F==="string"){let[,,P]=F.split(" ");if(P===this.asset){R.splice(D,1);break}}}}else if(typeof H<"u"&&H!==null){let R=this.engine.prepareAction(H,{cycle:"Application"});if(R!==null)await R.apply(),await R.didApply({updateHistory:!1,updateState:!0});return}break}}let V={characters:[...this.engine.state("characters").filter((Q)=>{if(typeof Q==="string"){let[,,U]=Q.split(" ");return U!==this.asset}return!1})]};if(this.engine.setting("ExperimentalFeatures")===!0)V.characterLayers=[...this.engine.state("characterLayers").filter((Q)=>{if(typeof Q==="string"){let[,,U]=Q.split(" "),[H]=U.split(":");return H!==this.asset}return!1})];this.engine.state(V)}async didRevert(){return{advance:!0,step:!0}}}var uS=cS;class bS extends V1{static id="Show::Character::Layer";static _experimental=!0;static loadingOrder=1;static async setup(){this.engine.history("characterLayer"),this.engine.state({characterLayers:[]})}static async reset(){this.engine.state({characterLayers:[]})}static async onLoad(){let K=this.engine.state("characterLayers"),V=[];for(let Q of K){let U=this.engine.prepareAction(Q,{cycle:"Application"});if(U!==null){let H=(async()=>{await U.willApply(),await U.apply(),await U.didApply({updateHistory:!1,updateState:!1})})();V.push(H)}}if(V.length>0)await Promise.all(V)}static matchString([K,V,Q]){return K==="show"&&V==="character"&&Q.indexOf(":")>-1}asset;layer;state;sprite;character;image;classes;constructor([K,V,Q,U,...H]){super();let[Y,z]=Q.split(":");if(this.asset=Y,this.layer=z,this.state=this.engine.state("characterLayers").find((M)=>{let[A,R,D,F]=M.split(" "),[P,G]=D.split(":");return P===Y&&G==z}),typeof this.engine.character(Y)<"u")if(this.sprite=U,this.character=this.engine.character(Y),this.image=this.character.layer_assets[z][U],typeof H<"u")this.classes=["animated",...H.filter((M)=>M!=="at"&&M!=="with")];else this.classes=[];else this.sprite="",this.classes=[]}async willApply(){if(typeof this.character>"u")throw t0.show("action:show_character_layer:character_not_found",{asset:this.asset,layer:this.layer,availableCharacters:Object.keys(this.engine.characters()),statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")}),Error(`Character "${this.asset}" not found.`);if(typeof this.image>"u"){let K=this.character.layer_assets?.[this.layer];throw t0.show("action:show_character_layer:sprite_not_found",{asset:this.asset,layer:this.layer,sprite:this.sprite,availableSprites:K?Object.keys(K):[],statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")}),Error(`Sprite "${this.sprite}" not found for layer "${this.layer}" of character "${this.asset}".`)}}async apply(){let K=this.character.directory;if(typeof K>"u")K="";else K+="/";let V=!0,Q=this.engine.element().find(`[data-character="${this.asset}"]:not([data-visibility="invisible"])`),U=Q.find(`[data-layer="${this.layer}"]:not([data-visibility="invisible"])`),H=U.get(0);if((U.isVisible()||this.engine.global("_restoring_state")&&U.exists())&&H){let M=[...H.classList],A=M.find((R)=>R.match(/end-([A-Za-z]+)/)!==null);if(typeof A<"u"){let[R,D]=A.split("-"),F=M[M.indexOf(A)-1];U.removeClass(F),U.addClass(D),U.data("visibility","invisible"),U.on("animationend",(P)=>{P.target.remove()}),V=!1}for(let R of M)if(this.classes.indexOf(R)===-1)U.removeClass(R)}let Y=`${this.engine.setting("AssetsPath").root}/${this.engine.setting("AssetsPath").characters}/${K}`;if(V&&(U.isVisible()||this.engine.global("_restoring_state")&&U.exists())){U.attribute("src",`${Y}${this.image}`),U.data("sprite",this.sprite);for(let R of this.classes)if(R)U.addClass(R);let M=this.classes.indexOf("duration");if(M>-1)U.style("animation-duration",this.classes[M+1]);else U.style("animation-duration","");let A=this.classes.indexOf("transition");if(A>-1)U.style("transition-duration",this.classes[A+1]);else U.style("transition-duration","")}else{let M=document.createElement("img");m0(M).attribute("src",`${Y}${this.image}`),m0(M).addClass("animated"),m0(M).data("layer",this.layer),m0(M).data("sprite",this.sprite),m0(M).style({zIndex:this.character.layers.indexOf(this.layer)});for(let R of this.classes)if(R)M.classList.add(R);let A=this.classes.indexOf("duration");if(A>-1)m0(M).style("animation-duration",this.classes[A+1]);Q.find('[data-content="wrapper"]').append(M)}let z=Q.get(0);if(z?.state&&z?.setState){let M=z.state.layers||{};z.setState({layers:{...M,[this.layer]:{asset:this.sprite,classes:this.classes}}})}}async didApply({updateHistory:K=!0,updateState:V=!0}={}){if(K===!0){let Q=this.engine.history("characterLayer"),U;for(let Y=Q.length-1;Y>=0;Y--){let z=Q[Y];if(z.parent){let[,,M]=z.parent.split(" ");if(M===this.asset){U=z;break}}}let H=this.engine.state("characters").find((Y)=>{let[,,z]=Y.split(" ");return z===this.asset})||null;if(typeof U<"u")Q.push({parent:H,layers:[...U.layers.filter(({statement:Y})=>{if(Y!==null&&H!==null){let[,,z]=H.split(" "),[M,A]=z.split(":");return M!==this.asset&&A!==this.layer}return!1}),{statement:this._statement,previous:this.state||null}]});else Q.push({parent:H,layers:[{statement:this._statement,previous:this.state||null}]})}if(V===!0)this.engine.state({characterLayers:[...this.engine.state("characterLayers").filter((Q)=>{if(typeof Q==="string"){let[,,U]=Q.split(" "),[H,Y]=U.split(":");return H!==this.asset||Y!==this.layer}return!1}),this._statement]});return{advance:!0}}async revert(){this.engine.element().find(`[data-character="${this.asset}"]`).find(`[data-layer="${this.layer}"]`).remove();let V=this.engine.history("characterLayer");for(let Q=V.length-1;Q>=0;Q--){let{layers:U}=V[Q],H=U.find((Y)=>{let{previous:z,statement:M}=Y,A=M||z;if(A){let[,,R]=A.split(" "),[D,F]=R.split(":");return D===this.asset&&F===this.layer}return!1});if(typeof H==="object"&&H!==null){let{statement:Y,previous:z}=H,M=Y||z;if(M){let[,,A]=M.split(" "),[R,D]=A.split(":");if(R===this.asset&&D===this.layer){if(V.splice(Q,1),typeof z<"u"&&z!==null){let F=this.engine.prepareAction(z,{cycle:"Application"});if(F!==null)await F.apply(),await F.didApply({updateHistory:!1,updateState:!0});return}break}}}}this.engine.state({characterLayers:[...this.engine.state("characterLayers").filter((Q)=>{if(typeof Q==="string"){let[U,H,Y,z]=Q.split(" "),[M,A]=Y.split(":");return M!==this.asset||A!==this.layer}return!1})]})}async didRevert(){return{advance:!0,step:!0}}}var lS=bS;class dS extends V1{static id="Show::Image";static async setup(){this.engine.history("image"),this.engine.state({images:[]})}static async reset(){this.engine.element().find('[data-screen="game"] [data-image]').remove(),this.engine.state({images:[]})}static async onLoad(){let K=this.engine.state("images"),V=[];for(let Q of K){let U=this.engine.prepareAction(Q,{cycle:"Application"});if(U!==null){let H=(async()=>{await U.willApply(),await U.apply(),await U.didApply({updateHistory:!1,updateState:!1})})();V.push(H)}}if(V.length>0)await Promise.all(V)}static matchString([K,V]){return K==="show"&&V==="image"}asset;classes;image;constructor([K,V,Q,...U]){super();this.asset=Q,this.classes=(" "+U.join(" ")).replace(" at "," ").replace(" with "," ").trim().split(" ");let H=this.engine.asset("images",Q);if(typeof H<"u")this.image=H;else this.image=Q}async apply(){let K=this._statement.match(/at\s(\S*)/),V=`images/${this.asset}`,Q=this.engine.imageCache(V),U;if(Q)U=Q.cloneNode(!0);else U=document.createElement("img"),m0(U).attribute("src",`${this.engine.setting("AssetsPath").root}/${this.engine.setting("AssetsPath").images}/${this.image}`);m0(U).addClass("animated"),m0(U).data("image",this.asset);for(let Y of this.classes)if(Y)m0(U).addClass(Y);if(K instanceof Array){let[Y,z]=K;m0(U).data("position",z)}else m0(U).addClass("center"),m0(U).data("position","center");let H=this.classes.indexOf("duration");if(H>-1)m0(U).style("animation-duration",this.classes[H+1]);this.engine.element().find('[data-screen="game"] [data-content="visuals"]').append(U.outerHTML)}async didApply({updateHistory:K=!0,updateState:V=!0}={}){if(K===!0)this.engine.history("image").push(this._statement);if(V===!0)this.engine.state({images:[...this.engine.state("images"),this._statement]});return{advance:!0}}async revert(){this.engine.element().find(`[data-image="${this.asset}"]`).remove()}async didRevert(){let K=this.engine.history("image");for(let V=K.length-1;V>=0;V--){let[,,Q]=K[V].split(" ");if(Q===this.asset){K.splice(V,1);break}}return this.engine.state({images:[...this.engine.state("images").filter((V)=>{if(typeof V==="string"){let[,,Q]=V.split(" ");return Q!==this.asset}return!0})]}),{advance:!0,step:!0}}}var sS=dS;class oS extends V1{static id="Show::TextBox";static matchString([K,V]){return K==="show"&&V==="textbox"}async apply(){this.engine.element().find('[data-component="text-box"]').get(0)?.setState({hidden:!1})}async didApply(){return this.engine.state({textboxHidden:!1}),{advance:!0}}async revert(){this.engine.element().find('[data-component="text-box"]').get(0)?.setState({hidden:!0})}async didRevert(){return this.engine.state({textboxHidden:!0}),{advance:!0,step:!0}}}var mS=oS;class nS extends V1{static id="Stop";static matchString([K]){return K==="stop"}type;media;props;player;constructor([K,V,Q,...U]){super();if(this.type=V,this.media=Q,this.props=U,typeof Q>"u"||Q==="with")this.player=this.engine.mediaPlayers(V);else this.player=this.engine.mediaPlayer(V,Q)}async willApply(){if(this.player)if(Array.isArray(this.player))for(let K of this.player)K.loop=!1;else this.player.loop=!1}async apply(){let K=this.props.indexOf("fade");if(Array.isArray(this.player))if(K>-1){let V=this.props[K+1],Q=parseFloat(V.match(/\d*(\.\d*)?/)[0]);for(let U of this.player){if(U instanceof XV)await U.fadeOut(Q);this.engine.removeMediaPlayer(this.type,U.dataset.key)}}else this.engine.removeMediaPlayer(this.type);else if(K>-1){let V=this.props[K+1],Q=parseFloat(V.match(/\d*(\.\d*)?/)[0]);if(this.player instanceof XV)await this.player.fadeOut(Q);this.engine.removeMediaPlayer(this.type,this.media)}else this.engine.removeMediaPlayer(this.type,this.media)}async didApply(){let K=this.engine.state(this.type);if(typeof this.media<"u"){let V=K.filter((Q)=>{if(typeof Q.statement==="string"){let[U,H,Y]=Q.statement.split(" ");return!(H===this.type&&Y===this.media)}return!0});this.engine.state({[this.type]:V})}else this.engine.history(this.type).push(K),this.engine.state({[this.type]:[]});return{advance:!0}}async revert(){let K=this.engine.history(this.type);if(typeof this.media<"u"){for(let U=K.length-1;U>=0;U--){let H=K[U];if(typeof H==="string"){let[,Y,z]=H.split(" ");if(this.type===Y&&this.media===z){let M=this.engine.prepareAction(H,{cycle:"Application"});if(M)await M.willApply(),await M.apply(),await M.didApply({updateHistory:!1,updateState:!0});return}}}return}let V=K.pop();if(!V||typeof V==="string")return;let Q=[];for(let U of V){let H=this.engine.prepareAction(U.statement,{cycle:"Application"});if(H){let Y=(async()=>{await H.willApply(),await H.apply({paused:U.paused}),await H.didApply({updateHistory:!1,updateState:!0})})();Q.push(Y)}}await Promise.all(Q)}async didRevert(){return{advance:!0,step:!0}}}var rS=nS;class iS extends V1{static id="Unload";static matchString([K]){return K==="unload"}category="";assetName="";blockId="";isBlock=!1;isAll=!1;isCategoryOnly=!1;characterId="";isPermanent=!1;constructor([K,V,...Q]){super();this.isPermanent=Q.includes("permanent");let U=Q.filter((H)=>H!=="permanent");if(V==="all")this.isAll=!0;else if(V==="block")this.isBlock=!0,this.blockId=U[0];else if(V==="character")this.category="characters",this.characterId=U[0],this.assetName=U[1]||"";else if(this.category=SK.resolveCategory(V),U.length>0)this.assetName=U[0];else this.isCategoryOnly=!0}unloadAsset(K,V){let Q=SK.getLoaderType(K);if(!Q){console.warn(`Unload: No loader registered for category "${K}"`);return}let U=SK.getLoader(Q);if(!U){console.warn(`Unload: Loader type "${Q}" not found`);return}if(!U.cache.delete){console.warn(`Unload: Loader type "${Q}" does not support delete operation`);return}let H=`${K}/${V}`;U.cache.delete(this.engine,H)}unloadCharacter(K,V){let Q=SK.getLoader("image");if(!Q){console.warn("Unload: Image loader not registered");return}if(V){if(!Q.cache.delete){console.warn("Unload: Image loader does not support delete operation");return}let U=`characters/${K}/${V}`;Q.cache.delete(this.engine,U)}else{if(!Q.cache.clear){console.warn("Unload: Image loader does not support clear operation");return}Q.cache.clear(this.engine,`characters/${K}/`)}}unloadBlock(K){let Q=SK.blocks()[K];if(!Q){console.warn(`Unload: Block "${K}" not found`);return}for(let[U,H]of Object.entries(Q)){if(U==="characters"&&typeof H==="object"&&!Array.isArray(H)){for(let[Y,z]of Object.entries(H))for(let M of z)this.unloadCharacter(Y,M);continue}if(!Array.isArray(H))continue;if(SK.hasLoader(U))for(let Y of H)this.unloadAsset(U,Y);else console.warn(`Unload: No loader registered for category "${U}" in block "${K}"`)}}unloadCategoryAssets(K){let V=K==="characters"?"image":SK.getLoaderType(K);if(!V){console.warn(`Unload: No loader registered for category "${K}"`);return}let Q=SK.getLoader(V);if(!Q){console.warn(`Unload: Loader type "${V}" not found`);return}if(!Q.cache.clear){console.warn(`Unload: Loader type "${V}" does not support clear operation`);return}let U=K==="characters"?"characters/":`${K}/`;Q.cache.clear(this.engine,U)}isAudioCategory(K){return SK.getLoaderType(K)==="audio"}async unloadPersistent(K,V){if(!this.isAudioCategory(K))return;if(V){let Q=this.engine.setting("AssetsPath"),U=this.engine.asset(K,V);if(U){let H=`${Q.root}/${Q[K]}/${U}`;await this.engine.removeAudioBufferPersistent(H)}}else await this.engine.clearAudioBufferPersistent()}async apply(){if(this.isAll){if(this.engine.clearAllCaches(),this.isPermanent)await this.engine.clearAudioBufferPersistent()}else if(this.isBlock){if(this.unloadBlock(this.blockId),this.isPermanent){let V=SK.blocks()[this.blockId];if(V){for(let[Q,U]of Object.entries(V))if(this.isAudioCategory(Q)&&Array.isArray(U))for(let H of U)await this.unloadPersistent(Q,H)}}}else if(this.isCategoryOnly){if(this.unloadCategoryAssets(this.category),this.isPermanent)await this.unloadPersistent(this.category)}else if(this.category==="characters")this.unloadCharacter(this.characterId,this.assetName||void 0);else if(SK.hasLoader(this.category)){if(this.unloadAsset(this.category,this.assetName),this.isPermanent)await this.unloadPersistent(this.category,this.assetName)}else console.warn(`Unload: No loader registered for category "${this.category}"`)}async didApply(){return{advance:!0}}async revert(){}async didRevert(){return{advance:!0,step:!0}}}var tS=iS;class aS extends V1{static id="Vibrate";static matchString([K]){return K==="vibrate"}time;constructor([K,...V]){super();if(navigator)if(typeof navigator.vibrate==="function"){this.time=[];for(let Q in V)if(!isNaN(Number(V[Q])))this.time[Q]=parseInt(V[Q]);else t0.show("action:vibrate:invalid_time",{time:V[Q],statement:`"${this._statement}"`,label:this.engine.state("label"),step:this.engine.state("step")})}else console.warn("Vibration is not supported in this platform.");else console.warn("Vibration is not supported in this platform.")}async willApply(){if(typeof this.time<"u")return;throw Error("Time for vibration was not provided")}async apply(){if(this.time)navigator.vibrate(0),navigator.vibrate(this.time)}async didApply(){return{advance:!0}}async didRevert(){return{advance:!0,step:!0}}}var eS=aS;class Sz extends V1{static id="Wait";static blocking=!1;static matchString([K]){return K==="wait"}static async shouldProceed(K){if(this.blocking)throw Error("Wait period has not ended")}static async willRollback(){Sz.blocking=!1}time=null;constructor([K,V]){super();this.time=!isNaN(Number(V))?parseInt(V):null}async apply(){if(typeof this.time!=="number")return;return new Promise((K)=>{Sz.blocking=!0,setTimeout(()=>{Sz.blocking=!1,K()},this.time)})}async didApply(){return{advance:typeof this.time==="number"}}async didRevert(){return{advance:!0,step:!0}}}var KP=Sz;class VP extends G${static _experimental=!1;static _configuration={};static _priority=0;static engine;_parent;constructor(){super()}static configuration(K=null){if(K!==null)if(typeof K==="string")return this._configuration[K];else this._configuration=Object.assign({},this._configuration,K);else return this._configuration}static all(){return m0(this.tag)}static get(K){return m0(`${this.tag} [data-instance="${K}"]`)}static async onStart(){}static async onLoad(){}static async setup(){}static async shouldProceed(K){let V=[];return this.instances((Q)=>{V.push(Q.shouldProceed())}),Promise.all(V)}static async willProceed(){let K=[];return this.instances((V)=>{K.push(V.willProceed())}),Promise.all(K)}static async shouldRollback(){let K=[];return this.instances((V)=>{K.push(V.shouldRollback())}),Promise.all(K)}static async willRollback(){let K=[];return this.instances((V)=>{K.push(V.willRollback())}),Promise.all(K)}static async bind(){}static async init(){}static async onSave(){}static async onReset(){let K=[];return this.instances((V)=>{K.push(V.onReset())}),Promise.all(K)}static instances(K=null){if(typeof K==="function")return m0(this.tag).each(K);return m0(this.tag)}async onReset(){}element(){return m0(this)}remove(){this.parentNode?.removeChild(this)}instance(K){let V=this.constructor;return m0(`${V.tag}[data-${V.name.toLowerCase()}="${K}"`)}parent(K){if(typeof K<"u")this._parent=K;else return this._parent}get engine(){return this.constructor.engine}set engine(K){throw Error("Component engine reference is hold at static level and cannot be modified.")}async shouldProceed(){}async willProceed(){}async shouldRollback(){}async willRollback(){}async connectedCallback(){return this.classList.add("animated"),super.connectedCallback()}content(K){let V=this.query(`[data-content="${K}"]`);return m0(V)}}var kj=VP;nH._translations={"Bahasa Indonesia":lF,"Š‘ŃŠŠ»Š³Š°Ń€ŃŠŗŠø":iF,"Š‘ŠµŠ»Š°Ń€ŃƒŃŠŗŠ°Ń":_F,Deutsch:uF,English:pF,"EspaƱol":nF,"FranƧais":cF,Magyar:bF,Nederlands:hF,"PortuguĆŖs":oF,"PortuguĆŖs do Brasil":NF,"Русский":mF,"اللغه Ų§Ł„Ų¹Ų±ŲØŁŠŲ©":xF,"ķ•œźµ­ģ–“":sF,"ę—„ęœ¬čŖž":dF,"繁體中文":gF,"简体中文":yF,"toki pona":rF};nH._languageMetadata={"Bahasa Indonesia":{code:"id",icon:"\uD83C\uDDEE\uD83C\uDDE9"},"Š‘ŠµŠ»Š°Ń€ŃƒŃŠŗŠ°Ń":{code:"be",icon:"\uD83C\uDDE7\uD83C\uDDFE"},"Š‘ŃŠŠ»Š³Š°Ń€ŃŠŗŠø":{code:"bg",icon:"\uD83C\uDDE7\uD83C\uDDEC"},Deutsch:{code:"de",icon:"\uD83C\uDDE9\uD83C\uDDEA"},English:{code:"en",icon:"\uD83C\uDDFA\uD83C\uDDF8"},"EspaƱol":{code:"es",icon:"\uD83C\uDDF2\uD83C\uDDFD"},"FranƧais":{code:"fr",icon:"\uD83C\uDDEB\uD83C\uDDF7"},Magyar:{code:"hu",icon:"\uD83C\uDDED\uD83C\uDDFA"},Nederlands:{code:"nl",icon:"\uD83C\uDDF3\uD83C\uDDF1"},"PortuguĆŖs":{code:"pt",icon:"\uD83C\uDDF5\uD83C\uDDF9"},"PortuguĆŖs do Brasil":{code:"pt-br",icon:"\uD83C\uDDE7\uD83C\uDDF7"},"Русский":{code:"ru",icon:"\uD83C\uDDF7\uD83C\uDDFA"},"اللغه Ų§Ł„Ų¹Ų±ŲØŁŠŲ©":{code:"ar",icon:"\uD83C\uDDE6\uD83C\uDDEA"},"ķ•œźµ­ģ–“":{code:"ko",icon:"\uD83C\uDDF0\uD83C\uDDF7"},"ę—„ęœ¬čŖž":{code:"ja",icon:"\uD83C\uDDEF\uD83C\uDDF5"},"繁體中文":{code:"zh-hant",icon:"\uD83C\uDDF9\uD83C\uDDFC"},"简体中文":{code:"zh-hans",icon:"\uD83C\uDDE8\uD83C\uDDF3"},"toki pona":{code:"en",icon:"\uD83D\uDD6E"}};nH._components=[aF,KD,QD,HD,LD,YD,OD,WD,XD,RD,FD,SD,CD,GD,TD,BD,vD,fD,jD,_D,gD,yD,pD,uD,lD,C6,nD];nH._actions=[iD,tD,eD,KS,US,zS,ZS,qS,MS,XS,RS,FS,SS,CS,IS,TS,ES,JS,vS,kS,wS,_S,xS,NS,yS,pS,uS,lS,sS,mS,rS,tS,eS,Dz,KP,VS];var La=nH;export{RH as tsParticles,w5 as loadSlim,La as default,I1 as Util,PK as Text,ZQ as SpaceAdapter,TU as Space,kj as ShadowComponent,GW as SessionStorage,rH as ScreenComponent,IW as RequestTimeoutError,HH as RequestError,TK as Request,BW as RemoteStorageKeyNotFoundError,JW as RemoteStorage,GA as RandomJS,tK as Preload,C1 as Platform,Fz as MenuComponent,z$ as Luxon,zZ as LocalStorageKeyNotFoundError,LZ as LocalStorage,TW as IndexedDBKeyNotFoundError,EW as IndexedDB,xz as Form,GU as FileSystem,t0 as FancyError,bC as DebugLevel,Y8 as Debug,bK as DOM,$1 as Component,XV as AudioPlayer,V1 as Action,_z as $_ready,Nj as $_create,m0 as $_}; + +//# debugId=C2299FC0E197646E64756E2164756E21 +//# sourceMappingURL=monogatari.module.js.map diff --git a/lib/monogatari.module.js.map b/lib/monogatari.module.js.map new file mode 100644 index 0000000..c301c97 --- /dev/null +++ b/lib/monogatari.module.js.map @@ -0,0 +1,366 @@ +{ + "version": 3, + "sources": ["node:buffer", "node:util", "node:events", "node:stream", "node:crypto", "../node_modules/deeply/flags.js", "../node_modules/deeply/adapters/array.js", "../node_modules/deeply/adapters/date.js", "../node_modules/deeply/lib/reduce_object.js", "../node_modules/deeply/adapters/object.js", "../node_modules/deeply/extra/arrays_combine.js", "../node_modules/deeply/extra/arrays_append.js", "../node_modules/deeply/extra/arrays_append_unique.js", "../node_modules/fulcon/index.js", "../node_modules/deeply/extra/functions_clone.js", "../node_modules/deeply/extra/functions_extend.js", "../node_modules/deeply/adapters.js", "../node_modules/precise-typeof/index.js", "../node_modules/deeply/merge.js", "../node_modules/deeply/mutable.js", "../node_modules/deeply/immutable.js", "../node_modules/deeply/index.js", "../node_modules/mousetrap/mousetrap.js", "../node_modules/modern-screenshot/dist/index.mjs", "../node_modules/@fortawesome/fontawesome-free/js/all.js", "../node_modules/@aegis-framework/artemis/dist/artemis.js", "../node_modules/@tsparticles/engine/browser/Core/Utils/Constants.js", "../node_modules/@tsparticles/engine/browser/Enums/Directions/MoveDirection.js", "../node_modules/@tsparticles/engine/browser/Utils/TypeUtils.js", "../node_modules/@tsparticles/engine/browser/Core/Utils/Vectors.js", "../node_modules/@tsparticles/engine/browser/Utils/NumberUtils.js", "../node_modules/@tsparticles/engine/browser/Enums/Modes/AnimationMode.js", "../node_modules/@tsparticles/engine/browser/Enums/AnimationStatus.js", "../node_modules/@tsparticles/engine/browser/Enums/Types/DestroyType.js", "../node_modules/@tsparticles/engine/browser/Enums/Directions/OutModeDirection.js", "../node_modules/@tsparticles/engine/browser/Enums/Modes/PixelMode.js", "../node_modules/@tsparticles/engine/browser/Enums/Types/StartValueType.js", "../node_modules/@tsparticles/engine/browser/Utils/Utils.js", "../node_modules/@tsparticles/engine/browser/Enums/Types/AlterType.js", "../node_modules/@tsparticles/engine/browser/Utils/ColorUtils.js", "../node_modules/@tsparticles/engine/browser/Utils/CanvasUtils.js", "../node_modules/@tsparticles/engine/browser/Core/Canvas.js", "../node_modules/@tsparticles/engine/browser/Enums/InteractivityDetect.js", "../node_modules/@tsparticles/engine/browser/Core/Utils/EventListeners.js", "../node_modules/@tsparticles/engine/browser/Enums/Types/EventType.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/OptionsColor.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Background/Background.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/BackgroundMask/BackgroundMaskCover.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/BackgroundMask/BackgroundMask.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/FullScreen/FullScreen.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/ClickEvent.js", "../node_modules/@tsparticles/engine/browser/Enums/Types/DivType.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/DivEvent.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/Parallax.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/HoverEvent.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/ResizeEvent.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Events/Events.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Modes/Modes.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Interactivity/Interactivity.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/ManualParticle.js", "../node_modules/@tsparticles/engine/browser/Enums/Modes/ResponsiveMode.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Responsive.js", "../node_modules/@tsparticles/engine/browser/Enums/Modes/ThemeMode.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Theme/ThemeDefault.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Theme/Theme.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/AnimationOptions.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/ColorAnimation.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/HslAnimation.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/AnimatableColor.js", "../node_modules/@tsparticles/engine/browser/Enums/Modes/CollisionMode.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Collisions/CollisionsAbsorb.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Collisions/CollisionsOverlap.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/ValueWithRandom.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Bounce/ParticlesBounceFactor.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Bounce/ParticlesBounce.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Collisions/Collisions.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Effect/Effect.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveAngle.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveAttract.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveCenter.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveGravity.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/Path/MovePath.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveTrailFill.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/MoveTrail.js", "../node_modules/@tsparticles/engine/browser/Enums/Modes/OutMode.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/OutModes.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/Spin.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Move/Move.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Opacity/OpacityAnimation.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Opacity/Opacity.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Number/ParticlesDensity.js", "../node_modules/@tsparticles/engine/browser/Enums/Modes/LimitMode.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Number/ParticlesNumberLimit.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Number/ParticlesNumber.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Shadow.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Shape/Shape.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Size/SizeAnimation.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Size/Size.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/Stroke.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/ZIndex/ZIndex.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Particles/ParticlesOptions.js", "../node_modules/@tsparticles/engine/browser/Utils/OptionsUtils.js", "../node_modules/@tsparticles/engine/browser/Options/Classes/Options.js", "../node_modules/@tsparticles/engine/browser/Enums/Types/InteractorType.js", "../node_modules/@tsparticles/engine/browser/Core/Utils/InteractionManager.js", "../node_modules/@tsparticles/engine/browser/Enums/Types/ParticleOutType.js", "../node_modules/@tsparticles/engine/browser/Core/Particle.js", "../node_modules/@tsparticles/engine/browser/Core/Utils/Point.js", "../node_modules/@tsparticles/engine/browser/Types/RangeType.js", "../node_modules/@tsparticles/engine/browser/Core/Utils/Ranges.js", "../node_modules/@tsparticles/engine/browser/Core/Utils/QuadTree.js", "../node_modules/@tsparticles/engine/browser/Core/Particles.js", "../node_modules/@tsparticles/engine/browser/Core/Retina.js", "../node_modules/@tsparticles/engine/browser/Core/Container.js", "../node_modules/@tsparticles/engine/browser/Utils/EventDispatcher.js", "../node_modules/@tsparticles/engine/browser/Core/Engine.js", "../node_modules/@tsparticles/engine/browser/init.js", "../node_modules/@tsparticles/engine/browser/Core/Utils/ExternalInteractorBase.js", "../node_modules/@tsparticles/engine/browser/Core/Utils/ParticlesInteractorBase.js", "../node_modules/@tsparticles/engine/browser/Enums/Directions/RotateDirection.js", "../node_modules/@tsparticles/engine/browser/Enums/Types/EasingType.js", "../node_modules/@tsparticles/engine/browser/index.js", "../node_modules/@tsparticles/move-base/browser/Utils.js", "../node_modules/@tsparticles/move-base/browser/BaseMover.js", "../node_modules/@tsparticles/move-base/browser/index.js", "../node_modules/@tsparticles/shape-circle/browser/Utils.js", "../node_modules/@tsparticles/shape-circle/browser/CircleDrawer.js", "../node_modules/@tsparticles/shape-circle/browser/index.js", "../node_modules/@tsparticles/updater-color/browser/ColorUpdater.js", "../node_modules/@tsparticles/updater-color/browser/index.js", "../node_modules/@tsparticles/plugin-hex-color/browser/HexColorManager.js", "../node_modules/@tsparticles/plugin-hex-color/browser/index.js", "../node_modules/@tsparticles/plugin-hsl-color/browser/HslColorManager.js", "../node_modules/@tsparticles/plugin-hsl-color/browser/index.js", "../node_modules/@tsparticles/updater-opacity/browser/OpacityUpdater.js", "../node_modules/@tsparticles/updater-opacity/browser/index.js", "../node_modules/@tsparticles/updater-out-modes/browser/Utils.js", "../node_modules/@tsparticles/updater-out-modes/browser/BounceOutMode.js", "../node_modules/@tsparticles/updater-out-modes/browser/DestroyOutMode.js", "../node_modules/@tsparticles/updater-out-modes/browser/NoneOutMode.js", "../node_modules/@tsparticles/updater-out-modes/browser/OutOutMode.js", "../node_modules/@tsparticles/updater-out-modes/browser/OutOfCanvasUpdater.js", "../node_modules/@tsparticles/updater-out-modes/browser/index.js", "../node_modules/@tsparticles/plugin-rgb-color/browser/RgbColorManager.js", "../node_modules/@tsparticles/plugin-rgb-color/browser/index.js", "../node_modules/@tsparticles/updater-size/browser/SizeUpdater.js", "../node_modules/@tsparticles/updater-size/browser/index.js", "../node_modules/@tsparticles/basic/browser/index.js", "../node_modules/@tsparticles/plugin-easing-quad/browser/index.js", "../node_modules/@tsparticles/shape-emoji/browser/Utils.js", "../node_modules/@tsparticles/shape-emoji/browser/EmojiDrawer.js", "../node_modules/@tsparticles/shape-emoji/browser/index.js", "../node_modules/@tsparticles/interaction-external-attract/browser/Utils.js", "../node_modules/@tsparticles/interaction-external-attract/browser/Options/Classes/Attract.js", "../node_modules/@tsparticles/interaction-external-attract/browser/Attractor.js", "../node_modules/@tsparticles/interaction-external-attract/browser/index.js", "../node_modules/@tsparticles/interaction-external-bounce/browser/Utils.js", "../node_modules/@tsparticles/interaction-external-bounce/browser/Options/Classes/Bounce.js", "../node_modules/@tsparticles/interaction-external-bounce/browser/Bouncer.js", "../node_modules/@tsparticles/interaction-external-bounce/browser/index.js", "../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/BubbleBase.js", "../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/BubbleDiv.js", "../node_modules/@tsparticles/interaction-external-bubble/browser/Options/Classes/Bubble.js", "../node_modules/@tsparticles/interaction-external-bubble/browser/Enums.js", "../node_modules/@tsparticles/interaction-external-bubble/browser/Utils.js", "../node_modules/@tsparticles/interaction-external-bubble/browser/Bubbler.js", "../node_modules/@tsparticles/interaction-external-bubble/browser/index.js", "../node_modules/@tsparticles/interaction-external-connect/browser/Options/Classes/ConnectLinks.js", "../node_modules/@tsparticles/interaction-external-connect/browser/Options/Classes/Connect.js", "../node_modules/@tsparticles/interaction-external-connect/browser/Utils.js", "../node_modules/@tsparticles/interaction-external-connect/browser/Connector.js", "../node_modules/@tsparticles/interaction-external-connect/browser/index.js", "../node_modules/@tsparticles/interaction-external-grab/browser/Options/Classes/GrabLinks.js", "../node_modules/@tsparticles/interaction-external-grab/browser/Options/Classes/Grab.js", "../node_modules/@tsparticles/interaction-external-grab/browser/Utils.js", "../node_modules/@tsparticles/interaction-external-grab/browser/Grabber.js", "../node_modules/@tsparticles/interaction-external-grab/browser/index.js", "../node_modules/@tsparticles/interaction-external-pause/browser/Pauser.js", "../node_modules/@tsparticles/interaction-external-pause/browser/index.js", "../node_modules/@tsparticles/interaction-external-push/browser/Options/Classes/Push.js", "../node_modules/@tsparticles/interaction-external-push/browser/Pusher.js", "../node_modules/@tsparticles/interaction-external-push/browser/index.js", "../node_modules/@tsparticles/interaction-external-remove/browser/Options/Classes/Remove.js", "../node_modules/@tsparticles/interaction-external-remove/browser/Remover.js", "../node_modules/@tsparticles/interaction-external-remove/browser/index.js", "../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/RepulseBase.js", "../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/RepulseDiv.js", "../node_modules/@tsparticles/interaction-external-repulse/browser/Options/Classes/Repulse.js", "../node_modules/@tsparticles/interaction-external-repulse/browser/Repulser.js", "../node_modules/@tsparticles/interaction-external-repulse/browser/index.js", "../node_modules/@tsparticles/interaction-external-slow/browser/Options/Classes/Slow.js", "../node_modules/@tsparticles/interaction-external-slow/browser/Slower.js", "../node_modules/@tsparticles/interaction-external-slow/browser/index.js", "../node_modules/@tsparticles/shape-image/browser/Utils.js", "../node_modules/@tsparticles/shape-image/browser/GifUtils/Constants.js", "../node_modules/@tsparticles/shape-image/browser/GifUtils/ByteStream.js", "../node_modules/@tsparticles/shape-image/browser/GifUtils/Enums/DisposalMethod.js", "../node_modules/@tsparticles/shape-image/browser/GifUtils/Types/GIFDataHeaders.js", "../node_modules/@tsparticles/shape-image/browser/GifUtils/Utils.js", "../node_modules/@tsparticles/shape-image/browser/ImageDrawer.js", "../node_modules/@tsparticles/shape-image/browser/Options/Classes/Preload.js", "../node_modules/@tsparticles/shape-image/browser/ImagePreloader.js", "../node_modules/@tsparticles/shape-image/browser/index.js", "../node_modules/@tsparticles/updater-life/browser/Options/Classes/LifeDelay.js", "../node_modules/@tsparticles/updater-life/browser/Options/Classes/LifeDuration.js", "../node_modules/@tsparticles/updater-life/browser/Options/Classes/Life.js", "../node_modules/@tsparticles/updater-life/browser/Utils.js", "../node_modules/@tsparticles/updater-life/browser/LifeUpdater.js", "../node_modules/@tsparticles/updater-life/browser/index.js", "../node_modules/@tsparticles/shape-line/browser/Utils.js", "../node_modules/@tsparticles/shape-line/browser/LineDrawer.js", "../node_modules/@tsparticles/shape-line/browser/index.js", "../node_modules/@tsparticles/move-parallax/browser/ParallaxMover.js", "../node_modules/@tsparticles/move-parallax/browser/index.js", "../node_modules/@tsparticles/interaction-particles-attract/browser/Attractor.js", "../node_modules/@tsparticles/interaction-particles-attract/browser/index.js", "../node_modules/@tsparticles/interaction-particles-collisions/browser/Absorb.js", "../node_modules/@tsparticles/interaction-particles-collisions/browser/Bounce.js", "../node_modules/@tsparticles/interaction-particles-collisions/browser/Destroy.js", "../node_modules/@tsparticles/interaction-particles-collisions/browser/ResolveCollision.js", "../node_modules/@tsparticles/interaction-particles-collisions/browser/Collider.js", "../node_modules/@tsparticles/interaction-particles-collisions/browser/index.js", "../node_modules/@tsparticles/interaction-particles-links/browser/CircleWarp.js", "../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/LinksShadow.js", "../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/LinksTriangle.js", "../node_modules/@tsparticles/interaction-particles-links/browser/Options/Classes/Links.js", "../node_modules/@tsparticles/interaction-particles-links/browser/Linker.js", "../node_modules/@tsparticles/interaction-particles-links/browser/interaction.js", "../node_modules/@tsparticles/interaction-particles-links/browser/Utils.js", "../node_modules/@tsparticles/interaction-particles-links/browser/LinkInstance.js", "../node_modules/@tsparticles/interaction-particles-links/browser/LinksPlugin.js", "../node_modules/@tsparticles/interaction-particles-links/browser/plugin.js", "../node_modules/@tsparticles/interaction-particles-links/browser/index.js", "../node_modules/@tsparticles/shape-polygon/browser/Utils.js", "../node_modules/@tsparticles/shape-polygon/browser/PolygonDrawerBase.js", "../node_modules/@tsparticles/shape-polygon/browser/PolygonDrawer.js", "../node_modules/@tsparticles/shape-polygon/browser/TriangleDrawer.js", "../node_modules/@tsparticles/shape-polygon/browser/index.js", "../node_modules/@tsparticles/updater-rotate/browser/Options/Classes/RotateAnimation.js", "../node_modules/@tsparticles/updater-rotate/browser/Options/Classes/Rotate.js", "../node_modules/@tsparticles/updater-rotate/browser/RotateUpdater.js", "../node_modules/@tsparticles/updater-rotate/browser/index.js", "../node_modules/@tsparticles/shape-square/browser/Utils.js", "../node_modules/@tsparticles/shape-square/browser/SquareDrawer.js", "../node_modules/@tsparticles/shape-square/browser/index.js", "../node_modules/@tsparticles/shape-star/browser/Utils.js", "../node_modules/@tsparticles/shape-star/browser/StarDrawer.js", "../node_modules/@tsparticles/shape-star/browser/index.js", "../node_modules/@tsparticles/updater-stroke-color/browser/StrokeColorUpdater.js", "../node_modules/@tsparticles/updater-stroke-color/browser/index.js", "../node_modules/@tsparticles/slim/browser/index.js", "../node_modules/random-js/dist/random-js.esm.js", "../node_modules/luxon/build/es6/luxon.mjs", "../node_modules/@aegis-framework/pandora/dist/pandora.js", "../src/lib/FancyError.ts", "../src/lib/AudioPlayer.ts", "../src/monogatari.ts", "../src/engine/characters.ts", "../src/engine/i18n.ts", "../src/engine/assets.ts", "../src/engine/input.ts", "../src/engine/ui.ts", "../src/migrations/20211223-add-previous-statement-to-show-history.ts", "../src/migrations/20200310-add-pause-state-to-media-state.ts", "../src/migrations/index.ts", "../src/lib/FileSystemStorage.ts", "../src/lib/DesktopBridge.ts", "../src/engine/persistence.ts", "../src/engine/lifecycle.ts", "../src/translations/Ų§Ł„Ų¹Ų±ŲØŁŠŲ©.ts", "../src/translations/Š‘ŠµŠ»Š°Ń€ŃƒŃŠŗŠ°Ń.ts", "../src/translations/Portugues_Brasil.ts", "../src/translations/繁體中文.ts", "../src/translations/简体中文.ts", "../src/translations/Nederlands.ts", "../src/translations/English.ts", "../src/translations/Francais.ts", "../src/translations/Deutsch.ts", "../src/translations/Hungarian.ts", "../src/translations/Bahasa_Indonesia.ts", "../src/translations/ę—„ęœ¬čŖž.ts", "../src/translations/ķ•œźµ­ģ–“.ts", "../src/translations/Portugues.ts", "../src/translations/Russian.ts", "../src/translations/Espanol.ts", "../src/translations/tokipona.ts", "../src/translations/Bulgarian.ts", "../src/lib/Component.ts", "../src/components/alert-modal/index.ts", "../src/components/canvas-container/index.ts", "../src/components/centered-dialog/index.ts", "../src/components/character-sprite/index.ts", "../src/components/choice-container/index.ts", "../src/lib/ScreenComponent.ts", "../src/components/credits-screen/index.ts", "../src/components/dialog-log/index.ts", "../src/components/gallery-screen/index.ts", "../src/components/game-screen/index.ts", "../src/components/help-screen/index.ts", "../src/components/language-selection-screen/index.ts", "../src/components/load-screen/index.ts", "../src/components/loading-screen/index.ts", "../src/lib/MenuComponent.ts", "../src/components/main-menu/index.ts", "../src/components/main-screen/index.ts", "../src/components/message-modal/index.ts", "../src/components/quick-menu/index.ts", "../src/components/save-screen/index.ts", "../src/components/save-slot/index.ts", "../src/components/settings-screen/index.ts", "../src/components/slot-container/index.ts", "../src/components/text-box/index.ts", "../src/components/text-input/index.ts", "../src/components/timer-display/index.ts", "../src/components/visual-novel/index.ts", "../src/lib/typing-utils.ts", "../src/components/type-writer/index.ts", "../src/components/type-character/index.ts", "../src/lib/Action.ts", "../src/actions/Canvas.ts", "../src/actions/Choice.ts", "../src/actions/Clear.ts", "../src/actions/Conditional.ts", "../src/actions/Dialog.ts", "../src/actions/End.ts", "../src/actions/Function.ts", "../src/actions/Gallery.ts", "../src/actions/HideCanvas.ts", "../src/actions/HideCharacter.ts", "../src/actions/HideCharacterLayer.ts", "../src/actions/HideImage.ts", "../src/actions/HideParticles.ts", "../src/actions/HideTextBox.ts", "../src/actions/Video.ts", "../src/actions/HideVideo.ts", "../src/actions/InputModal.ts", "../src/actions/Jump.ts", "../src/actions/Message.ts", "../src/actions/Next.ts", "../src/actions/Notify.ts", "../src/actions/Particles.ts", "../src/actions/Pause.ts", "../src/actions/Placeholder.ts", "../src/actions/Play.ts", "../src/actions/Preload.ts", "../src/actions/Scene.ts", "../src/actions/ShowBackground.ts", "../src/actions/ShowCharacter.ts", "../src/actions/ShowCharacterLayer.ts", "../src/actions/ShowImage.ts", "../src/actions/ShowTextBox.ts", "../src/actions/Stop.ts", "../src/actions/Unload.ts", "../src/actions/Vibrate.ts", "../src/actions/Wait.ts", "../src/lib/ShadowComponent.ts", "../src/index.ts"], + "sourcesContent": [ + "var lookup=[],revLookup=[],code=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";for(i=0,len=code.length;i0)throw Error(\"Invalid string. Length must be a multiple of 4\");var validLen=b64.indexOf(\"=\");if(validLen===-1)validLen=len2;var placeHoldersLen=validLen===len2?0:4-validLen%4;return[validLen,placeHoldersLen]}function _byteLength(validLen,placeHoldersLen){return(validLen+placeHoldersLen)*3/4-placeHoldersLen}function toByteArray(b64){var tmp,lens=getLens(b64),validLen=lens[0],placeHoldersLen=lens[1],arr=new Uint8Array(_byteLength(validLen,placeHoldersLen)),curByte=0,len2=placeHoldersLen>0?validLen-4:validLen,i2;for(i2=0;i2>16&255,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255;if(placeHoldersLen===2)tmp=revLookup[b64.charCodeAt(i2)]<<2|revLookup[b64.charCodeAt(i2+1)]>>4,arr[curByte++]=tmp&255;if(placeHoldersLen===1)tmp=revLookup[b64.charCodeAt(i2)]<<10|revLookup[b64.charCodeAt(i2+1)]<<4|revLookup[b64.charCodeAt(i2+2)]>>2,arr[curByte++]=tmp>>8&255,arr[curByte++]=tmp&255;return arr}function tripletToBase64(num){return lookup[num>>18&63]+lookup[num>>12&63]+lookup[num>>6&63]+lookup[num&63]}function encodeChunk(uint8,start,end){var tmp,output=[];for(var i2=start;i2len22?len22:i2+maxChunkLength));if(extraBytes===1)tmp=uint8[len2-1],parts.push(lookup[tmp>>2]+lookup[tmp<<4&63]+\"==\");else if(extraBytes===2)tmp=(uint8[len2-2]<<8)+uint8[len2-1],parts.push(lookup[tmp>>10]+lookup[tmp>>4&63]+lookup[tmp<<2&63]+\"=\");return parts.join(\"\")}function read(buffer,offset,isLE,mLen,nBytes){var e,m,eLen=nBytes*8-mLen-1,eMax=(1<>1,nBits=-7,i2=isLE?nBytes-1:0,d=isLE?-1:1,s=buffer[offset+i2];i2+=d,e=s&(1<<-nBits)-1,s>>=-nBits,nBits+=eLen;for(;nBits>0;e=e*256+buffer[offset+i2],i2+=d,nBits-=8);m=e&(1<<-nBits)-1,e>>=-nBits,nBits+=mLen;for(;nBits>0;m=m*256+buffer[offset+i2],i2+=d,nBits-=8);if(e===0)e=1-eBias;else if(e===eMax)return m?NaN:(s?-1:1)*(1/0);else m=m+Math.pow(2,mLen),e=e-eBias;return(s?-1:1)*m*Math.pow(2,e-mLen)}function write(buffer,value,offset,isLE,mLen,nBytes){var e,m,c,eLen=nBytes*8-mLen-1,eMax=(1<>1,rt=mLen===23?Math.pow(2,-24)-Math.pow(2,-77):0,i2=isLE?0:nBytes-1,d=isLE?1:-1,s=value<0||value===0&&1/value<0?1:0;if(value=Math.abs(value),isNaN(value)||value===1/0)m=isNaN(value)?1:0,e=eMax;else{if(e=Math.floor(Math.log(value)/Math.LN2),value*(c=Math.pow(2,-e))<1)e--,c*=2;if(e+eBias>=1)value+=rt/c;else value+=rt*Math.pow(2,1-eBias);if(value*c>=2)e++,c/=2;if(e+eBias>=eMax)m=0,e=eMax;else if(e+eBias>=1)m=(value*c-1)*Math.pow(2,mLen),e=e+eBias;else m=value*Math.pow(2,eBias-1)*Math.pow(2,mLen),e=0}for(;mLen>=8;buffer[offset+i2]=m&255,i2+=d,m/=256,mLen-=8);e=e<0;buffer[offset+i2]=e&255,i2+=d,e/=256,eLen-=8);buffer[offset+i2-d]|=s*128}var customInspectSymbol=typeof Symbol===\"function\"&&typeof Symbol.for===\"function\"?Symbol.for(\"nodejs.util.inspect.custom\"):null,INSPECT_MAX_BYTES=50,kMaxLength=2147483647,kStringMaxLength=536870888,btoa=globalThis.btoa,atob=globalThis.atob,File=globalThis.File,Blob=globalThis.Blob,constants={MAX_LENGTH:kMaxLength,MAX_STRING_LENGTH:kStringMaxLength};function createBuffer(length){if(length>kMaxLength)throw RangeError('The value \"'+length+'\" is invalid for option \"size\"');let buf=new Uint8Array(length);return Object.setPrototypeOf(buf,Buffer.prototype),buf}function E(sym,getMessage,Base){return class extends Base{constructor(){super();Object.defineProperty(this,\"message\",{value:getMessage.apply(this,arguments),writable:!0,configurable:!0}),this.name=`${this.name} [${sym}]`,this.stack,delete this.name}get code(){return sym}set code(value){Object.defineProperty(this,\"code\",{configurable:!0,enumerable:!0,value,writable:!0})}toString(){return`${this.name} [${sym}]: ${this.message}`}}}var ERR_BUFFER_OUT_OF_BOUNDS=E(\"ERR_BUFFER_OUT_OF_BOUNDS\",function(name){if(name)return`${name} is outside of buffer bounds`;return\"Attempt to access memory outside buffer bounds\"},RangeError),ERR_INVALID_ARG_TYPE=E(\"ERR_INVALID_ARG_TYPE\",function(name,actual){return`The \"${name}\" argument must be of type number. Received type ${typeof actual}`},TypeError),ERR_OUT_OF_RANGE=E(\"ERR_OUT_OF_RANGE\",function(str,range,input){let msg=`The value of \"${str}\" is out of range.`,received=input;if(Number.isInteger(input)&&Math.abs(input)>4294967296)received=addNumericalSeparator(String(input));else if(typeof input===\"bigint\"){if(received=String(input),input>BigInt(2)**BigInt(32)||input<-(BigInt(2)**BigInt(32)))received=addNumericalSeparator(received);received+=\"n\"}return msg+=` It must be ${range}. Received ${received}`,msg},RangeError);function Buffer(arg,encodingOrOffset,length){if(typeof arg===\"number\"){if(typeof encodingOrOffset===\"string\")throw TypeError('The \"string\" argument must be of type string. Received type number');return allocUnsafe(arg)}return from(arg,encodingOrOffset,length)}Object.defineProperty(Buffer.prototype,\"parent\",{enumerable:!0,get:function(){if(!Buffer.isBuffer(this))return;return this.buffer}});Object.defineProperty(Buffer.prototype,\"offset\",{enumerable:!0,get:function(){if(!Buffer.isBuffer(this))return;return this.byteOffset}});Buffer.poolSize=8192;function from(value,encodingOrOffset,length){if(typeof value===\"string\")return fromString(value,encodingOrOffset);if(ArrayBuffer.isView(value))return fromArrayView(value);if(value==null)throw TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof value);if(isInstance(value,ArrayBuffer)||value&&isInstance(value.buffer,ArrayBuffer))return fromArrayBuffer(value,encodingOrOffset,length);if(typeof SharedArrayBuffer<\"u\"&&(isInstance(value,SharedArrayBuffer)||value&&isInstance(value.buffer,SharedArrayBuffer)))return fromArrayBuffer(value,encodingOrOffset,length);if(typeof value===\"number\")throw TypeError('The \"value\" argument must not be of type number. Received type number');let valueOf=value.valueOf&&value.valueOf();if(valueOf!=null&&valueOf!==value)return Buffer.from(valueOf,encodingOrOffset,length);let b=fromObject(value);if(b)return b;if(typeof Symbol<\"u\"&&Symbol.toPrimitive!=null&&typeof value[Symbol.toPrimitive]===\"function\")return Buffer.from(value[Symbol.toPrimitive](\"string\"),encodingOrOffset,length);throw TypeError(\"The first argument must be one of type string, Buffer, ArrayBuffer, Array, or Array-like Object. Received type \"+typeof value)}Buffer.from=function(value,encodingOrOffset,length){return from(value,encodingOrOffset,length)};Object.setPrototypeOf(Buffer.prototype,Uint8Array.prototype);Object.setPrototypeOf(Buffer,Uint8Array);function assertSize(size){if(typeof size!==\"number\")throw TypeError('\"size\" argument must be of type number');else if(size<0)throw RangeError('The value \"'+size+'\" is invalid for option \"size\"')}function alloc(size,fill,encoding){if(assertSize(size),size<=0)return createBuffer(size);if(fill!==void 0)return typeof encoding===\"string\"?createBuffer(size).fill(fill,encoding):createBuffer(size).fill(fill);return createBuffer(size)}Buffer.alloc=function(size,fill,encoding){return alloc(size,fill,encoding)};function allocUnsafe(size){return assertSize(size),createBuffer(size<0?0:checked(size)|0)}Buffer.allocUnsafe=function(size){return allocUnsafe(size)};Buffer.allocUnsafeSlow=function(size){return allocUnsafe(size)};function fromString(string,encoding){if(typeof encoding!==\"string\"||encoding===\"\")encoding=\"utf8\";if(!Buffer.isEncoding(encoding))throw TypeError(\"Unknown encoding: \"+encoding);let length=byteLength(string,encoding)|0,buf=createBuffer(length),actual=buf.write(string,encoding);if(actual!==length)buf=buf.slice(0,actual);return buf}function fromArrayLike(array){let length=array.length<0?0:checked(array.length)|0,buf=createBuffer(length);for(let i2=0;i2=kMaxLength)throw RangeError(\"Attempt to allocate Buffer larger than maximum size: 0x\"+kMaxLength.toString(16)+\" bytes\");return length|0}Buffer.isBuffer=function(b){return b!=null&&b._isBuffer===!0&&b!==Buffer.prototype};Buffer.compare=function(a,b){if(isInstance(a,Uint8Array))a=Buffer.from(a,a.offset,a.byteLength);if(isInstance(b,Uint8Array))b=Buffer.from(b,b.offset,b.byteLength);if(!Buffer.isBuffer(a)||!Buffer.isBuffer(b))throw TypeError('The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array');if(a===b)return 0;let x=a.length,y=b.length;for(let i2=0,len2=Math.min(x,y);i2buffer.length){if(!Buffer.isBuffer(buf))buf=Buffer.from(buf);buf.copy(buffer,pos)}else Uint8Array.prototype.set.call(buffer,buf,pos);else if(!Buffer.isBuffer(buf))throw TypeError('\"list\" argument must be an Array of Buffers');else buf.copy(buffer,pos);pos+=buf.length}return buffer};function byteLength(string,encoding){if(Buffer.isBuffer(string))return string.length;if(ArrayBuffer.isView(string)||isInstance(string,ArrayBuffer))return string.byteLength;if(typeof string!==\"string\")throw TypeError('The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. Received type '+typeof string);let len2=string.length,mustMatch=arguments.length>2&&arguments[2]===!0;if(!mustMatch&&len2===0)return 0;let loweredCase=!1;for(;;)switch(encoding){case\"ascii\":case\"latin1\":case\"binary\":return len2;case\"utf8\":case\"utf-8\":return utf8ToBytes(string).length;case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return len2*2;case\"hex\":return len2>>>1;case\"base64\":return base64ToBytes(string).length;default:if(loweredCase)return mustMatch?-1:utf8ToBytes(string).length;encoding=(\"\"+encoding).toLowerCase(),loweredCase=!0}}Buffer.byteLength=byteLength;function slowToString(encoding,start,end){let loweredCase=!1;if(start===void 0||start<0)start=0;if(start>this.length)return\"\";if(end===void 0||end>this.length)end=this.length;if(end<=0)return\"\";if(end>>>=0,start>>>=0,end<=start)return\"\";if(!encoding)encoding=\"utf8\";while(!0)switch(encoding){case\"hex\":return hexSlice(this,start,end);case\"utf8\":case\"utf-8\":return utf8Slice(this,start,end);case\"ascii\":return asciiSlice(this,start,end);case\"latin1\":case\"binary\":return latin1Slice(this,start,end);case\"base64\":return base64Slice(this,start,end);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return utf16leSlice(this,start,end);default:if(loweredCase)throw TypeError(\"Unknown encoding: \"+encoding);encoding=(encoding+\"\").toLowerCase(),loweredCase=!0}}Buffer.prototype._isBuffer=!0;function swap(b,n,m){let i2=b[n];b[n]=b[m],b[m]=i2}Buffer.prototype.swap16=function(){let len2=this.length;if(len2%2!==0)throw RangeError(\"Buffer size must be a multiple of 16-bits\");for(let i2=0;i2max)str+=\" ... \";return\"\"};if(customInspectSymbol)Buffer.prototype[customInspectSymbol]=Buffer.prototype.inspect;Buffer.prototype.compare=function(target,start,end,thisStart,thisEnd){if(isInstance(target,Uint8Array))target=Buffer.from(target,target.offset,target.byteLength);if(!Buffer.isBuffer(target))throw TypeError('The \"target\" argument must be one of type Buffer or Uint8Array. Received type '+typeof target);if(start===void 0)start=0;if(end===void 0)end=target?target.length:0;if(thisStart===void 0)thisStart=0;if(thisEnd===void 0)thisEnd=this.length;if(start<0||end>target.length||thisStart<0||thisEnd>this.length)throw RangeError(\"out of range index\");if(thisStart>=thisEnd&&start>=end)return 0;if(thisStart>=thisEnd)return-1;if(start>=end)return 1;if(start>>>=0,end>>>=0,thisStart>>>=0,thisEnd>>>=0,this===target)return 0;let x=thisEnd-thisStart,y=end-start,len2=Math.min(x,y),thisCopy=this.slice(thisStart,thisEnd),targetCopy=target.slice(start,end);for(let i2=0;i22147483647)byteOffset=2147483647;else if(byteOffset<-2147483648)byteOffset=-2147483648;if(byteOffset=+byteOffset,Number.isNaN(byteOffset))byteOffset=dir?0:buffer.length-1;if(byteOffset<0)byteOffset=buffer.length+byteOffset;if(byteOffset>=buffer.length)if(dir)return-1;else byteOffset=buffer.length-1;else if(byteOffset<0)if(dir)byteOffset=0;else return-1;if(typeof val===\"string\")val=Buffer.from(val,encoding);if(Buffer.isBuffer(val)){if(val.length===0)return-1;return arrayIndexOf(buffer,val,byteOffset,encoding,dir)}else if(typeof val===\"number\"){if(val=val&255,typeof Uint8Array.prototype.indexOf===\"function\")if(dir)return Uint8Array.prototype.indexOf.call(buffer,val,byteOffset);else return Uint8Array.prototype.lastIndexOf.call(buffer,val,byteOffset);return arrayIndexOf(buffer,[val],byteOffset,encoding,dir)}throw TypeError(\"val must be string, number or Buffer\")}function arrayIndexOf(arr,val,byteOffset,encoding,dir){let indexSize=1,arrLength=arr.length,valLength=val.length;if(encoding!==void 0){if(encoding=String(encoding).toLowerCase(),encoding===\"ucs2\"||encoding===\"ucs-2\"||encoding===\"utf16le\"||encoding===\"utf-16le\"){if(arr.length<2||val.length<2)return-1;indexSize=2,arrLength/=2,valLength/=2,byteOffset/=2}}function read2(buf,i3){if(indexSize===1)return buf[i3];else return buf.readUInt16BE(i3*indexSize)}let i2;if(dir){let foundIndex=-1;for(i2=byteOffset;i2arrLength)byteOffset=arrLength-valLength;for(i2=byteOffset;i2>=0;i2--){let found=!0;for(let j=0;jremaining)length=remaining;let strLen=string.length;if(length>strLen/2)length=strLen/2;let i2;for(i2=0;i2>>0,isFinite(length)){if(length=length>>>0,encoding===void 0)encoding=\"utf8\"}else encoding=length,length=void 0;else throw Error(\"Buffer.write(string, encoding, offset[, length]) is no longer supported\");let remaining=this.length-offset;if(length===void 0||length>remaining)length=remaining;if(string.length>0&&(length<0||offset<0)||offset>this.length)throw RangeError(\"Attempt to write outside buffer bounds\");if(!encoding)encoding=\"utf8\";let loweredCase=!1;for(;;)switch(encoding){case\"hex\":return hexWrite(this,string,offset,length);case\"utf8\":case\"utf-8\":return utf8Write(this,string,offset,length);case\"ascii\":case\"latin1\":case\"binary\":return asciiWrite(this,string,offset,length);case\"base64\":return base64Write(this,string,offset,length);case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return ucs2Write(this,string,offset,length);default:if(loweredCase)throw TypeError(\"Unknown encoding: \"+encoding);encoding=(\"\"+encoding).toLowerCase(),loweredCase=!0}};Buffer.prototype.toJSON=function(){return{type:\"Buffer\",data:Array.prototype.slice.call(this._arr||this,0)}};function base64Slice(buf,start,end){if(start===0&&end===buf.length)return fromByteArray(buf);else return fromByteArray(buf.slice(start,end))}function utf8Slice(buf,start,end){end=Math.min(buf.length,end);let res=[],i2=start;while(i2239?4:firstByte>223?3:firstByte>191?2:1;if(i2+bytesPerSequence<=end){let secondByte,thirdByte,fourthByte,tempCodePoint;switch(bytesPerSequence){case 1:if(firstByte<128)codePoint=firstByte;break;case 2:if(secondByte=buf[i2+1],(secondByte&192)===128){if(tempCodePoint=(firstByte&31)<<6|secondByte&63,tempCodePoint>127)codePoint=tempCodePoint}break;case 3:if(secondByte=buf[i2+1],thirdByte=buf[i2+2],(secondByte&192)===128&&(thirdByte&192)===128){if(tempCodePoint=(firstByte&15)<<12|(secondByte&63)<<6|thirdByte&63,tempCodePoint>2047&&(tempCodePoint<55296||tempCodePoint>57343))codePoint=tempCodePoint}break;case 4:if(secondByte=buf[i2+1],thirdByte=buf[i2+2],fourthByte=buf[i2+3],(secondByte&192)===128&&(thirdByte&192)===128&&(fourthByte&192)===128){if(tempCodePoint=(firstByte&15)<<18|(secondByte&63)<<12|(thirdByte&63)<<6|fourthByte&63,tempCodePoint>65535&&tempCodePoint<1114112)codePoint=tempCodePoint}}}if(codePoint===null)codePoint=65533,bytesPerSequence=1;else if(codePoint>65535)codePoint-=65536,res.push(codePoint>>>10&1023|55296),codePoint=56320|codePoint&1023;res.push(codePoint),i2+=bytesPerSequence}return decodeCodePointsArray(res)}var MAX_ARGUMENTS_LENGTH=4096;function decodeCodePointsArray(codePoints){let len2=codePoints.length;if(len2<=MAX_ARGUMENTS_LENGTH)return String.fromCharCode.apply(String,codePoints);let res=\"\",i2=0;while(i2len2)end=len2;let out=\"\";for(let i2=start;i2len2)start=len2;if(end<0){if(end+=len2,end<0)end=0}else if(end>len2)end=len2;if(endlength)throw RangeError(\"Trying to access beyond buffer length\")}Buffer.prototype.readUintLE=Buffer.prototype.readUIntLE=function(offset,byteLength2,noAssert){if(offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert)checkOffset(offset,byteLength2,this.length);let val=this[offset],mul=1,i2=0;while(++i2>>0,byteLength2=byteLength2>>>0,!noAssert)checkOffset(offset,byteLength2,this.length);let val=this[offset+--byteLength2],mul=1;while(byteLength2>0&&(mul*=256))val+=this[offset+--byteLength2]*mul;return val};Buffer.prototype.readUint8=Buffer.prototype.readUInt8=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,1,this.length);return this[offset]};Buffer.prototype.readUint16LE=Buffer.prototype.readUInt16LE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,2,this.length);return this[offset]|this[offset+1]<<8};Buffer.prototype.readUint16BE=Buffer.prototype.readUInt16BE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,2,this.length);return this[offset]<<8|this[offset+1]};Buffer.prototype.readUint32LE=Buffer.prototype.readUInt32LE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,4,this.length);return(this[offset]|this[offset+1]<<8|this[offset+2]<<16)+this[offset+3]*16777216};Buffer.prototype.readUint32BE=Buffer.prototype.readUInt32BE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,4,this.length);return this[offset]*16777216+(this[offset+1]<<16|this[offset+2]<<8|this[offset+3])};Buffer.prototype.readBigUInt64LE=defineBigIntMethod(function(offset){offset=offset>>>0,validateNumber(offset,\"offset\");let first=this[offset],last=this[offset+7];if(first===void 0||last===void 0)boundsError(offset,this.length-8);let lo=first+this[++offset]*256+this[++offset]*65536+this[++offset]*16777216,hi=this[++offset]+this[++offset]*256+this[++offset]*65536+last*16777216;return BigInt(lo)+(BigInt(hi)<>>0,validateNumber(offset,\"offset\");let first=this[offset],last=this[offset+7];if(first===void 0||last===void 0)boundsError(offset,this.length-8);let hi=first*16777216+this[++offset]*65536+this[++offset]*256+this[++offset],lo=this[++offset]*16777216+this[++offset]*65536+this[++offset]*256+last;return(BigInt(hi)<>>0,byteLength2=byteLength2>>>0,!noAssert)checkOffset(offset,byteLength2,this.length);let val=this[offset],mul=1,i2=0;while(++i2=mul)val-=Math.pow(2,8*byteLength2);return val};Buffer.prototype.readIntBE=function(offset,byteLength2,noAssert){if(offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert)checkOffset(offset,byteLength2,this.length);let i2=byteLength2,mul=1,val=this[offset+--i2];while(i2>0&&(mul*=256))val+=this[offset+--i2]*mul;if(mul*=128,val>=mul)val-=Math.pow(2,8*byteLength2);return val};Buffer.prototype.readInt8=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,1,this.length);if(!(this[offset]&128))return this[offset];return(255-this[offset]+1)*-1};Buffer.prototype.readInt16LE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,2,this.length);let val=this[offset]|this[offset+1]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt16BE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,2,this.length);let val=this[offset+1]|this[offset]<<8;return val&32768?val|4294901760:val};Buffer.prototype.readInt32LE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,4,this.length);return this[offset]|this[offset+1]<<8|this[offset+2]<<16|this[offset+3]<<24};Buffer.prototype.readInt32BE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,4,this.length);return this[offset]<<24|this[offset+1]<<16|this[offset+2]<<8|this[offset+3]};Buffer.prototype.readBigInt64LE=defineBigIntMethod(function(offset){offset=offset>>>0,validateNumber(offset,\"offset\");let first=this[offset],last=this[offset+7];if(first===void 0||last===void 0)boundsError(offset,this.length-8);let val=this[offset+4]+this[offset+5]*256+this[offset+6]*65536+(last<<24);return(BigInt(val)<>>0,validateNumber(offset,\"offset\");let first=this[offset],last=this[offset+7];if(first===void 0||last===void 0)boundsError(offset,this.length-8);let val=(first<<24)+this[++offset]*65536+this[++offset]*256+this[++offset];return(BigInt(val)<>>0,!noAssert)checkOffset(offset,4,this.length);return read(this,offset,!0,23,4)};Buffer.prototype.readFloatBE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,4,this.length);return read(this,offset,!1,23,4)};Buffer.prototype.readDoubleLE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,8,this.length);return read(this,offset,!0,52,8)};Buffer.prototype.readDoubleBE=function(offset,noAssert){if(offset=offset>>>0,!noAssert)checkOffset(offset,8,this.length);return read(this,offset,!1,52,8)};function checkInt(buf,value,offset,ext,max,min){if(!Buffer.isBuffer(buf))throw TypeError('\"buffer\" argument must be a Buffer instance');if(value>max||valuebuf.length)throw RangeError(\"Index out of range\")}Buffer.prototype.writeUintLE=Buffer.prototype.writeUIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,byteLength2=byteLength2>>>0,!noAssert){let maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}let mul=1,i2=0;this[offset]=value&255;while(++i2>>0,byteLength2=byteLength2>>>0,!noAssert){let maxBytes=Math.pow(2,8*byteLength2)-1;checkInt(this,value,offset,byteLength2,maxBytes,0)}let i2=byteLength2-1,mul=1;this[offset+i2]=value&255;while(--i2>=0&&(mul*=256))this[offset+i2]=value/mul&255;return offset+byteLength2};Buffer.prototype.writeUint8=Buffer.prototype.writeUInt8=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,1,255,0);return this[offset]=value&255,offset+1};Buffer.prototype.writeUint16LE=Buffer.prototype.writeUInt16LE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,2,65535,0);return this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer.prototype.writeUint16BE=Buffer.prototype.writeUInt16BE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,2,65535,0);return this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer.prototype.writeUint32LE=Buffer.prototype.writeUInt32LE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,4,4294967295,0);return this[offset+3]=value>>>24,this[offset+2]=value>>>16,this[offset+1]=value>>>8,this[offset]=value&255,offset+4};Buffer.prototype.writeUint32BE=Buffer.prototype.writeUInt32BE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,4,4294967295,0);return this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};function wrtBigUInt64LE(buf,value,offset,min,max){checkIntBI(value,min,max,buf,offset,7);let lo=Number(value&BigInt(4294967295));buf[offset++]=lo,lo=lo>>8,buf[offset++]=lo,lo=lo>>8,buf[offset++]=lo,lo=lo>>8,buf[offset++]=lo;let hi=Number(value>>BigInt(32)&BigInt(4294967295));return buf[offset++]=hi,hi=hi>>8,buf[offset++]=hi,hi=hi>>8,buf[offset++]=hi,hi=hi>>8,buf[offset++]=hi,offset}function wrtBigUInt64BE(buf,value,offset,min,max){checkIntBI(value,min,max,buf,offset,7);let lo=Number(value&BigInt(4294967295));buf[offset+7]=lo,lo=lo>>8,buf[offset+6]=lo,lo=lo>>8,buf[offset+5]=lo,lo=lo>>8,buf[offset+4]=lo;let hi=Number(value>>BigInt(32)&BigInt(4294967295));return buf[offset+3]=hi,hi=hi>>8,buf[offset+2]=hi,hi=hi>>8,buf[offset+1]=hi,hi=hi>>8,buf[offset]=hi,offset+8}Buffer.prototype.writeBigUInt64LE=defineBigIntMethod(function(value,offset=0){return wrtBigUInt64LE(this,value,offset,BigInt(0),BigInt(\"0xffffffffffffffff\"))});Buffer.prototype.writeBigUInt64BE=defineBigIntMethod(function(value,offset=0){return wrtBigUInt64BE(this,value,offset,BigInt(0),BigInt(\"0xffffffffffffffff\"))});Buffer.prototype.writeIntLE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){let limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}let i2=0,mul=1,sub=0;this[offset]=value&255;while(++i2>0)-sub&255}return offset+byteLength2};Buffer.prototype.writeIntBE=function(value,offset,byteLength2,noAssert){if(value=+value,offset=offset>>>0,!noAssert){let limit=Math.pow(2,8*byteLength2-1);checkInt(this,value,offset,byteLength2,limit-1,-limit)}let i2=byteLength2-1,mul=1,sub=0;this[offset+i2]=value&255;while(--i2>=0&&(mul*=256)){if(value<0&&sub===0&&this[offset+i2+1]!==0)sub=1;this[offset+i2]=(value/mul>>0)-sub&255}return offset+byteLength2};Buffer.prototype.writeInt8=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,1,127,-128);if(value<0)value=255+value+1;return this[offset]=value&255,offset+1};Buffer.prototype.writeInt16LE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,2,32767,-32768);return this[offset]=value&255,this[offset+1]=value>>>8,offset+2};Buffer.prototype.writeInt16BE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,2,32767,-32768);return this[offset]=value>>>8,this[offset+1]=value&255,offset+2};Buffer.prototype.writeInt32LE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);return this[offset]=value&255,this[offset+1]=value>>>8,this[offset+2]=value>>>16,this[offset+3]=value>>>24,offset+4};Buffer.prototype.writeInt32BE=function(value,offset,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkInt(this,value,offset,4,2147483647,-2147483648);if(value<0)value=4294967295+value+1;return this[offset]=value>>>24,this[offset+1]=value>>>16,this[offset+2]=value>>>8,this[offset+3]=value&255,offset+4};Buffer.prototype.writeBigInt64LE=defineBigIntMethod(function(value,offset=0){return wrtBigUInt64LE(this,value,offset,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))});Buffer.prototype.writeBigInt64BE=defineBigIntMethod(function(value,offset=0){return wrtBigUInt64BE(this,value,offset,-BigInt(\"0x8000000000000000\"),BigInt(\"0x7fffffffffffffff\"))});function checkIEEE754(buf,value,offset,ext,max,min){if(offset+ext>buf.length)throw RangeError(\"Index out of range\");if(offset<0)throw RangeError(\"Index out of range\")}function writeFloat(buf,value,offset,littleEndian,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkIEEE754(buf,value,offset,4,340282346638528860000000000000000000000,-340282346638528860000000000000000000000);return write(buf,value,offset,littleEndian,23,4),offset+4}Buffer.prototype.writeFloatLE=function(value,offset,noAssert){return writeFloat(this,value,offset,!0,noAssert)};Buffer.prototype.writeFloatBE=function(value,offset,noAssert){return writeFloat(this,value,offset,!1,noAssert)};function writeDouble(buf,value,offset,littleEndian,noAssert){if(value=+value,offset=offset>>>0,!noAssert)checkIEEE754(buf,value,offset,8,179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000,-179769313486231570000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000);return write(buf,value,offset,littleEndian,52,8),offset+8}Buffer.prototype.writeDoubleLE=function(value,offset,noAssert){return writeDouble(this,value,offset,!0,noAssert)};Buffer.prototype.writeDoubleBE=function(value,offset,noAssert){return writeDouble(this,value,offset,!1,noAssert)};Buffer.prototype.copy=function(target,targetStart,start,end){if(!Buffer.isBuffer(target))throw TypeError(\"argument should be a Buffer\");if(!start)start=0;if(!end&&end!==0)end=this.length;if(targetStart>=target.length)targetStart=target.length;if(!targetStart)targetStart=0;if(end>0&&end=this.length)throw RangeError(\"Index out of range\");if(end<0)throw RangeError(\"sourceEnd out of bounds\");if(end>this.length)end=this.length;if(target.length-targetStart>>0,end=end===void 0?this.length:end>>>0,!val)val=0;let i2;if(typeof val===\"number\")for(i2=start;i2=start+4;i2-=3)res=`_${val.slice(i2-3,i2)}${res}`;return`${val.slice(0,i2)}${res}`}function checkBounds(buf,offset,byteLength2){if(validateNumber(offset,\"offset\"),buf[offset]===void 0||buf[offset+byteLength2]===void 0)boundsError(offset,buf.length-(byteLength2+1))}function checkIntBI(value,min,max,buf,offset,byteLength2){if(value>max||value3)if(min===0||min===BigInt(0))range=`>= 0${n} and < 2${n} ** ${(byteLength2+1)*8}${n}`;else range=`>= -(2${n} ** ${(byteLength2+1)*8-1}${n}) and < 2 ** ${(byteLength2+1)*8-1}${n}`;else range=`>= ${min}${n} and <= ${max}${n}`;throw new ERR_OUT_OF_RANGE(\"value\",range,value)}checkBounds(buf,offset,byteLength2)}function validateNumber(value,name){if(typeof value!==\"number\")throw new ERR_INVALID_ARG_TYPE(name,\"number\",value)}function boundsError(value,length,type){if(Math.floor(value)!==value)throw validateNumber(value,type),new ERR_OUT_OF_RANGE(type||\"offset\",\"an integer\",value);if(length<0)throw new ERR_BUFFER_OUT_OF_BOUNDS;throw new ERR_OUT_OF_RANGE(type||\"offset\",`>= ${type?1:0} and <= ${length}`,value)}var INVALID_BASE64_RE=/[^+/0-9A-Za-z-_]/g;function base64clean(str){if(str=str.split(\"=\")[0],str=str.trim().replace(INVALID_BASE64_RE,\"\"),str.length<2)return\"\";while(str.length%4!==0)str=str+\"=\";return str}function utf8ToBytes(string,units){units=units||1/0;let codePoint,length=string.length,leadSurrogate=null,bytes=[];for(let i2=0;i255295&&codePoint<57344){if(!leadSurrogate){if(codePoint>56319){if((units-=3)>-1)bytes.push(239,191,189);continue}else if(i2+1===length){if((units-=3)>-1)bytes.push(239,191,189);continue}leadSurrogate=codePoint;continue}if(codePoint<56320){if((units-=3)>-1)bytes.push(239,191,189);leadSurrogate=codePoint;continue}codePoint=(leadSurrogate-55296<<10|codePoint-56320)+65536}else if(leadSurrogate){if((units-=3)>-1)bytes.push(239,191,189)}if(leadSurrogate=null,codePoint<128){if((units-=1)<0)break;bytes.push(codePoint)}else if(codePoint<2048){if((units-=2)<0)break;bytes.push(codePoint>>6|192,codePoint&63|128)}else if(codePoint<65536){if((units-=3)<0)break;bytes.push(codePoint>>12|224,codePoint>>6&63|128,codePoint&63|128)}else if(codePoint<1114112){if((units-=4)<0)break;bytes.push(codePoint>>18|240,codePoint>>12&63|128,codePoint>>6&63|128,codePoint&63|128)}else throw Error(\"Invalid code point\")}return bytes}function asciiToBytes(str){let byteArray=[];for(let i2=0;i2>8,lo=c%256,byteArray.push(lo),byteArray.push(hi)}return byteArray}function base64ToBytes(str){return toByteArray(base64clean(str))}function blitBuffer(src,dst,offset,length){let i2;for(i2=0;i2=dst.length||i2>=src.length)break;dst[i2+offset]=src[i2]}return i2}function isInstance(obj,type){return obj instanceof type||obj!=null&&obj.constructor!=null&&obj.constructor.name!=null&&obj.constructor.name===type.name}var hexSliceLookupTable=function(){let table=Array(256);for(let i2=0;i2<16;++i2){let i16=i2*16;for(let j=0;j<16;++j)table[i16+j]=\"0123456789abcdef\"[i2]+\"0123456789abcdef\"[j]}return table}();function defineBigIntMethod(fn){return typeof BigInt>\"u\"?BufferBigIntNotDefined:fn}function BufferBigIntNotDefined(){throw Error(\"BigInt not supported\")}function notimpl(name){return()=>{throw Error(name+\" is not implemented for node:buffer browser polyfill\")}}var resolveObjectURL=notimpl(\"resolveObjectURL\"),isUtf8=notimpl(\"isUtf8\"),isAscii=(str)=>{for(let char of str)if(char.charCodeAt(0)>127)return!1;return!0},transcode=notimpl(\"transcode\"),buffer_default=Buffer;export{transcode,resolveObjectURL,kStringMaxLength,kMaxLength,isUtf8,isAscii,buffer_default as default,constants,btoa,atob,INSPECT_MAX_BYTES,File,Buffer,Blob};", + "var formatRegExp=/%[sdj%]/g;function format(f,...args){if(!isString(f)){var objects=[f];for(var i=0;i=len)return x2;switch(x2){case\"%s\":return String(args[i++]);case\"%d\":return Number(args[i++]);case\"%j\":try{return JSON.stringify(args[i++])}catch(_){return\"[Circular]\"}default:return x2}});for(var x=args[i];i\"u\"||process?.noDeprecation===!0)return fn;var warned=!1;function deprecated(...args){if(!warned){if(process.throwDeprecation)throw Error(msg);else if(process.traceDeprecation)console.trace(msg);else console.error(msg);warned=!0}return fn.apply(this,...args)}return deprecated}var debuglog=((debugs={},debugEnvRegex={},debugEnv)=>((debugEnv=typeof process<\"u\"&&!1)&&(debugEnv=debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g,\"\\\\$&\").replace(/\\*/g,\".*\").replace(/,/g,\"$|^\").toUpperCase()),debugEnvRegex=new RegExp(\"^\"+debugEnv+\"$\",\"i\"),(set)=>{if(set=set.toUpperCase(),!debugs[set])if(debugEnvRegex.test(set))debugs[set]=function(...args){console.error(\"%s: %s\",set,pid,format.apply(null,...args))};else debugs[set]=function(){};return debugs[set]}))(),inspect=((i)=>(i.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},i.styles={special:\"cyan\",number:\"yellow\",boolean:\"yellow\",undefined:\"grey\",null:\"bold\",string:\"green\",date:\"magenta\",regexp:\"red\"},i.custom=Symbol.for(\"nodejs.util.inspect.custom\"),i))(function(obj,opts,...rest){var ctx={seen:[],stylize:stylizeNoColor};if(rest.length>=1)ctx.depth=rest[0];if(rest.length>=2)ctx.colors=rest[1];if(isBoolean(opts))ctx.showHidden=opts;else if(opts)_extend(ctx,opts);if(isUndefined(ctx.showHidden))ctx.showHidden=!1;if(isUndefined(ctx.depth))ctx.depth=2;if(isUndefined(ctx.colors))ctx.colors=!1;if(ctx.colors)ctx.stylize=stylizeWithColor;return formatValue(ctx,obj,ctx.depth)});function stylizeWithColor(str,styleType){var style=inspect.styles[styleType];if(style)return\"\\x1B[\"+inspect.colors[style][0]+\"m\"+str+\"\\x1B[\"+inspect.colors[style][1]+\"m\";else return str}function stylizeNoColor(str,styleType){return str}function arrayToHash(array){var hash={};return array.forEach(function(val,idx){hash[val]=!0}),hash}function formatValue(ctx,value,recurseTimes){if(ctx.customInspect&&value&&isFunction(value.inspect)&&value.inspect!==inspect&&!(value.constructor&&value.constructor.prototype===value)){var ret=value.inspect(recurseTimes,ctx);if(!isString(ret))ret=formatValue(ctx,ret,recurseTimes);return ret}var primitive=formatPrimitive(ctx,value);if(primitive)return primitive;var keys=Object.keys(value),visibleKeys=arrayToHash(keys);if(ctx.showHidden)keys=Object.getOwnPropertyNames(value);if(isError(value)&&(keys.indexOf(\"message\")>=0||keys.indexOf(\"description\")>=0))return formatError(value);if(keys.length===0){if(isFunction(value)){var name=value.name?\": \"+value.name:\"\";return ctx.stylize(\"[Function\"+name+\"]\",\"special\")}if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),\"regexp\");if(isDate(value))return ctx.stylize(Date.prototype.toString.call(value),\"date\");if(isError(value))return formatError(value)}var base=\"\",array=!1,braces=[\"{\",\"}\"];if(isArray(value))array=!0,braces=[\"[\",\"]\"];if(isFunction(value)){var n=value.name?\": \"+value.name:\"\";base=\" [Function\"+n+\"]\"}if(isRegExp(value))base=\" \"+RegExp.prototype.toString.call(value);if(isDate(value))base=\" \"+Date.prototype.toUTCString.call(value);if(isError(value))base=\" \"+formatError(value);if(keys.length===0&&(!array||value.length==0))return braces[0]+base+braces[1];if(recurseTimes<0)if(isRegExp(value))return ctx.stylize(RegExp.prototype.toString.call(value),\"regexp\");else return ctx.stylize(\"[Object]\",\"special\");ctx.seen.push(value);var output;if(array)output=formatArray(ctx,value,recurseTimes,visibleKeys,keys);else output=keys.map(function(key){return formatProperty(ctx,value,recurseTimes,visibleKeys,key,array)});return ctx.seen.pop(),reduceToSingleString(output,base,braces)}function formatPrimitive(ctx,value){if(isUndefined(value))return ctx.stylize(\"undefined\",\"undefined\");if(isString(value)){var simple=\"'\"+JSON.stringify(value).replace(/^\"|\"$/g,\"\").replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"')+\"'\";return ctx.stylize(simple,\"string\")}if(isNumber(value))return ctx.stylize(\"\"+value,\"number\");if(isBoolean(value))return ctx.stylize(\"\"+value,\"boolean\");if(isNull(value))return ctx.stylize(\"null\",\"null\")}function formatError(value){return\"[\"+Error.prototype.toString.call(value)+\"]\"}function formatArray(ctx,value,recurseTimes,visibleKeys,keys){var output=[];for(var i=0,l=value.length;i-1)if(array)str=str.split(`\n`).map(function(line){return\" \"+line}).join(`\n`).slice(2);else str=`\n`+str.split(`\n`).map(function(line){return\" \"+line}).join(`\n`)}else str=ctx.stylize(\"[Circular]\",\"special\");if(isUndefined(name)){if(array&&key.match(/^\\d+$/))return str;if(name=JSON.stringify(\"\"+key),name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/))name=name.slice(1,-1),name=ctx.stylize(name,\"name\");else name=name.replace(/'/g,\"\\\\'\").replace(/\\\\\"/g,'\"').replace(/(^\"|\"$)/g,\"'\"),name=ctx.stylize(name,\"string\")}return name+\": \"+str}function reduceToSingleString(output,base,braces){var numLinesEst=0,length=output.reduce(function(prev,cur){if(numLinesEst++,cur.indexOf(`\n`)>=0)numLinesEst++;return prev+cur.replace(/\\u001b\\[\\d\\d?m/g,\"\").length+1},0);if(length>60)return braces[0]+(base===\"\"?\"\":base+`\n `)+\" \"+output.join(`,\n `)+\" \"+braces[1];return braces[0]+base+\" \"+output.join(\", \")+\" \"+braces[1]}var types=()=>{};function isArray(ar){return Array.isArray(ar)}function isBoolean(arg){return typeof arg===\"boolean\"}function isNull(arg){return arg===null}function isNullOrUndefined(arg){return arg==null}function isNumber(arg){return typeof arg===\"number\"}function isString(arg){return typeof arg===\"string\"}function isSymbol(arg){return typeof arg===\"symbol\"}function isUndefined(arg){return arg===void 0}function isRegExp(re){return isObject(re)&&objectToString(re)===\"[object RegExp]\"}function isObject(arg){return typeof arg===\"object\"&&arg!==null}function isDate(d){return isObject(d)&&objectToString(d)===\"[object Date]\"}function isError(e){return isObject(e)&&(objectToString(e)===\"[object Error]\"||e instanceof Error)}function isFunction(arg){return typeof arg===\"function\"}function isPrimitive(arg){return arg===null||typeof arg===\"boolean\"||typeof arg===\"number\"||typeof arg===\"string\"||typeof arg===\"symbol\"||typeof arg>\"u\"}function isBuffer(arg){return arg instanceof Buffer}function objectToString(o){return Object.prototype.toString.call(o)}function pad(n){return n<10?\"0\"+n.toString(10):n.toString(10)}var months=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];function timestamp(){var d=new Date,time=[pad(d.getHours()),pad(d.getMinutes()),pad(d.getSeconds())].join(\":\");return[d.getDate(),months[d.getMonth()],time].join(\" \")}function log(...args){console.log(\"%s - %s\",timestamp(),format.apply(null,args))}function inherits(ctor,superCtor){if(superCtor)ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})}function _extend(origin,add){if(!add||!isObject(add))return origin;var keys=Object.keys(add),i=keys.length;while(i--)origin[keys[i]]=add[keys[i]];return origin}function hasOwnProperty(obj,prop){return Object.prototype.hasOwnProperty.call(obj,prop)}var promisify=((x)=>(x.custom=Symbol.for(\"nodejs.util.promisify.custom\"),x))(function(original){if(typeof original!==\"function\")throw TypeError('The \"original\" argument must be of type Function');if(kCustomPromisifiedSymbol&&original[kCustomPromisifiedSymbol]){var fn=original[kCustomPromisifiedSymbol];if(typeof fn!==\"function\")throw TypeError('The \"nodejs.util.promisify.custom\" argument must be of type Function');return Object.defineProperty(fn,kCustomPromisifiedSymbol,{value:fn,enumerable:!1,writable:!1,configurable:!0}),fn}function fn(...args){var promiseResolve,promiseReject,promise=new Promise(function(resolve,reject){promiseResolve=resolve,promiseReject=reject});args.push(function(err,value){if(err)promiseReject(err);else promiseResolve(value)});try{original.apply(this,args)}catch(err){promiseReject(err)}return promise}if(Object.setPrototypeOf(fn,Object.getPrototypeOf(original)),kCustomPromisifiedSymbol)Object.defineProperty(fn,kCustomPromisifiedSymbol,{value:fn,enumerable:!1,writable:!1,configurable:!0});return Object.defineProperties(fn,Object.getOwnPropertyDescriptors(original))});function callbackifyOnRejected(reason,cb){if(!reason){var newReason=Error(\"Promise was rejected with a falsy value\");newReason.reason=reason,reason=newReason}return cb(reason)}function callbackify(original){if(typeof original!==\"function\")throw TypeError('The \"original\" argument must be of type Function');function callbackified(...args){var maybeCb=args.pop();if(typeof maybeCb!==\"function\")throw TypeError(\"The last argument must be of type Function\");var self=this,cb=function(...args2){return maybeCb.apply(self,...args2)};original.apply(this,args).then(function(ret){process.nextTick(cb.bind(null,null,ret))},function(rej){process.nextTick(callbackifyOnRejected.bind(null,rej,cb))})}return Object.setPrototypeOf(callbackified,Object.getPrototypeOf(original)),Object.defineProperties(callbackified,Object.getOwnPropertyDescriptors(original)),callbackified}var{TextEncoder,TextDecoder}=globalThis,util_default={TextEncoder,TextDecoder,promisify,log,inherits,_extend,callbackifyOnRejected,callbackify};export{types,promisify,log,isUndefined,isSymbol,isString,isRegExp,isPrimitive,isObject,isNumber,isNullOrUndefined,isNull,isFunction,isError,isDate,isBuffer,isBoolean,isArray,inspect,inherits,format,deprecate,util_default as default,debuglog,callbackifyOnRejected,callbackify,_extend,TextEncoder,TextDecoder};", + "var SymbolFor=Symbol.for,kCapture=Symbol(\"kCapture\"),kErrorMonitor=SymbolFor(\"events.errorMonitor\"),kMaxEventTargetListeners=Symbol(\"events.maxEventTargetListeners\"),kMaxEventTargetListenersWarned=Symbol(\"events.maxEventTargetListenersWarned\"),kRejection=SymbolFor(\"nodejs.rejection\"),captureRejectionSymbol=SymbolFor(\"nodejs.rejection\"),ArrayPrototypeSlice=Array.prototype.slice,defaultMaxListeners=10,EventEmitter=function(opts){if(this._events===void 0||this._events===this.__proto__._events)this._events={__proto__:null},this._eventsCount=0;if(this._maxListeners??=void 0,this[kCapture]=opts?.captureRejections?Boolean(opts?.captureRejections):EventEmitterPrototype[kCapture])this.emit=emitWithRejectionCapture},EventEmitterPrototype=EventEmitter.prototype={};EventEmitterPrototype._events=void 0;EventEmitterPrototype._eventsCount=0;EventEmitterPrototype._maxListeners=void 0;EventEmitterPrototype.setMaxListeners=function(n){return validateNumber(n,\"setMaxListeners\",0),this._maxListeners=n,this};EventEmitterPrototype.constructor=EventEmitter;EventEmitterPrototype.getMaxListeners=function(){return this?._maxListeners??defaultMaxListeners};function emitError(emitter,args){var{_events:events}=emitter;if(args[0]??=Error(\"Unhandled error.\"),!events)throw args[0];var errorMonitor=events[kErrorMonitor];if(errorMonitor)for(var handler of ArrayPrototypeSlice.call(errorMonitor))handler.apply(emitter,args);var handlers=events.error;if(!handlers)throw args[0];for(var handler of ArrayPrototypeSlice.call(handlers))handler.apply(emitter,args);return!0}function addCatch(emitter,promise,type,args){promise.then(void 0,function(err){queueMicrotask(()=>emitUnhandledRejectionOrErr(emitter,err,type,args))})}function emitUnhandledRejectionOrErr(emitter,err,type,args){if(typeof emitter[kRejection]===\"function\")emitter[kRejection](err,type,...args);else try{emitter[kCapture]=!1,emitter.emit(\"error\",err)}finally{emitter[kCapture]=!0}}var emitWithoutRejectionCapture=function(type,...args){if(type===\"error\")return emitError(this,args);var{_events:events}=this;if(events===void 0)return!1;var handlers=events[type];if(handlers===void 0)return!1;let maybeClonedHandlers=handlers.length>1?handlers.slice():handlers;for(let i=0,{length}=maybeClonedHandlers;i1?handlers.slice():handlers;for(let i=0,{length}=maybeClonedHandlers;i0&&handlers.length>m&&!handlers.warned)overflowWarning(this,type,handlers)}return this};EventEmitterPrototype.on=EventEmitterPrototype.addListener;EventEmitterPrototype.prependListener=function(type,fn){checkListener(fn);var events=this._events;if(!events)events=this._events={__proto__:null},this._eventsCount=0;else if(events.newListener)this.emit(\"newListener\",type,fn.listener??fn);var handlers=events[type];if(!handlers)events[type]=[fn],this._eventsCount++;else{handlers.unshift(fn);var m=this._maxListeners??defaultMaxListeners;if(m>0&&handlers.length>m&&!handlers.warned)overflowWarning(this,type,handlers)}return this};function overflowWarning(emitter,type,handlers){handlers.warned=!0;let warn=Error(`Possible EventEmitter memory leak detected. ${handlers.length} ${String(type)} listeners added to [${emitter.constructor.name}]. Use emitter.setMaxListeners() to increase limit`);warn.name=\"MaxListenersExceededWarning\",warn.emitter=emitter,warn.type=type,warn.count=handlers.length,console.warn(warn)}function onceWrapper(type,listener,...args){this.removeListener(type,listener),listener.apply(this,args)}EventEmitterPrototype.once=function(type,fn){checkListener(fn);let bound=onceWrapper.bind(this,type,fn);return bound.listener=fn,this.addListener(type,bound),this};EventEmitterPrototype.prependOnceListener=function(type,fn){checkListener(fn);let bound=onceWrapper.bind(this,type,fn);return bound.listener=fn,this.prependListener(type,bound),this};EventEmitterPrototype.removeListener=function(type,fn){checkListener(fn);var{_events:events}=this;if(!events)return this;var handlers=events[type];if(!handlers)return this;var length=handlers.length;let position=-1;for(let i=length-1;i>=0;i--)if(handlers[i]===fn||handlers[i].listener===fn){position=i;break}if(position<0)return this;if(position===0)handlers.shift();else handlers.splice(position,1);if(handlers.length===0)delete events[type],this._eventsCount--;return this};EventEmitterPrototype.off=EventEmitterPrototype.removeListener;EventEmitterPrototype.removeAllListeners=function(type){var{_events:events}=this;if(type&&events){if(events[type])delete events[type],this._eventsCount--}else this._events={__proto__:null};return this};EventEmitterPrototype.listeners=function(type){var{_events:events}=this;if(!events)return[];var handlers=events[type];if(!handlers)return[];return handlers.map((x)=>x.listener??x)};EventEmitterPrototype.rawListeners=function(type){var{_events}=this;if(!_events)return[];var handlers=_events[type];if(!handlers)return[];return handlers.slice()};EventEmitterPrototype.listenerCount=function(type){var{_events:events}=this;if(!events)return 0;return events[type]?.length??0};EventEmitterPrototype.eventNames=function(){return this._eventsCount>0?Reflect.ownKeys(this._events):[]};EventEmitterPrototype[kCapture]=!1;function once2(emitter,type,options){var signal=options?.signal;if(validateAbortSignal(signal,\"options.signal\"),signal?.aborted)throw new AbortError(void 0,{cause:signal?.reason});let{resolve,reject,promise}=$newPromiseCapability(Promise),errorListener=(err)=>{if(emitter.removeListener(type,resolver),signal!=null)eventTargetAgnosticRemoveListener(signal,\"abort\",abortListener);reject(err)},resolver=(...args)=>{if(typeof emitter.removeListener===\"function\")emitter.removeListener(\"error\",errorListener);if(signal!=null)eventTargetAgnosticRemoveListener(signal,\"abort\",abortListener);resolve(args)};if(eventTargetAgnosticAddListener(emitter,type,resolver,{once:!0}),type!==\"error\"&&typeof emitter.once===\"function\")emitter.once(\"error\",errorListener);function abortListener(){eventTargetAgnosticRemoveListener(emitter,type,resolver),eventTargetAgnosticRemoveListener(emitter,\"error\",errorListener),reject(new AbortError(void 0,{cause:signal?.reason}))}if(signal!=null)eventTargetAgnosticAddListener(signal,\"abort\",abortListener,{once:!0});return promise}function getEventListeners(emitter,type){return emitter.listeners(type)}function setMaxListeners2(n,...eventTargets){validateNumber(n,\"setMaxListeners\",0);var length;if(eventTargets&&(length=eventTargets.length))for(let i=0;imax||(min!=null||max!=null)&&Number.isNaN(value))throw ERR_OUT_OF_RANGE(name,`${min!=null?`>= ${min}`:\"\"}${min!=null&&max!=null?\" && \":\"\"}${max!=null?`<= ${max}`:\"\"}`,value)}function checkListener(listener){if(typeof listener!==\"function\")throw TypeError(\"The listener must be a function\")}function validateBoolean(value,name){if(typeof value!==\"boolean\")throw ERR_INVALID_ARG_TYPE(name,\"boolean\",value)}function getMaxListeners2(emitterOrTarget){return emitterOrTarget?._maxListeners??defaultMaxListeners}function addAbortListener(signal,listener){if(signal===void 0)throw ERR_INVALID_ARG_TYPE(\"signal\",\"AbortSignal\",signal);if(validateAbortSignal(signal,\"signal\"),typeof listener!==\"function\")throw ERR_INVALID_ARG_TYPE(\"listener\",\"function\",listener);let removeEventListener;if(signal.aborted)queueMicrotask(()=>listener());else signal.addEventListener(\"abort\",listener,{__proto__:null,once:!0}),removeEventListener=()=>{signal.removeEventListener(\"abort\",listener)};return{__proto__:null,[Symbol.dispose](){removeEventListener?.()}}}Object.defineProperties(EventEmitter,{captureRejections:{get(){return EventEmitterPrototype[kCapture]},set(value){validateBoolean(value,\"EventEmitter.captureRejections\"),EventEmitterPrototype[kCapture]=value},enumerable:!0},defaultMaxListeners:{enumerable:!0,get:()=>{return defaultMaxListeners},set:(arg)=>{validateNumber(arg,\"defaultMaxListeners\",0),defaultMaxListeners=arg}},kMaxEventTargetListeners:{value:kMaxEventTargetListeners,enumerable:!1,configurable:!1,writable:!1},kMaxEventTargetListenersWarned:{value:kMaxEventTargetListenersWarned,enumerable:!1,configurable:!1,writable:!1}});Object.assign(EventEmitter,{once:once2,getEventListeners,getMaxListeners:getMaxListeners2,setMaxListeners:setMaxListeners2,EventEmitter,usingDomains:!1,captureRejectionSymbol,errorMonitor:kErrorMonitor,addAbortListener,init:EventEmitter,listenerCount:listenerCount2});var events_default=EventEmitter;export{setMaxListeners2 as setMaxListeners,once2 as once,listenerCount2 as listenerCount,EventEmitter as init,getMaxListeners2 as getMaxListeners,getEventListeners,events_default as default,captureRejectionSymbol,addAbortListener,EventEmitter};", + "var __commonJS=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports);var require_primordials=__commonJS((exports2,module2)=>{class AggregateError extends Error{constructor(errors){if(!Array.isArray(errors))throw TypeError(`Expected input to be an Array, got ${typeof errors}`);let message=\"\";for(let i=0;i{module2.exports={format(format,...args){return format.replace(/%([sdifj])/g,function(...[_unused,type]){let replacement=args.shift();if(type===\"f\")return replacement.toFixed(6);else if(type===\"j\")return JSON.stringify(replacement);else if(type===\"s\"&&typeof replacement===\"object\")return`${replacement.constructor!==Object?replacement.constructor.name:\"\"} {}`.trim();else return replacement.toString()})},inspect(value){switch(typeof value){case\"string\":if(value.includes(\"'\")){if(!value.includes('\"'))return`\"${value}\"`;else if(!value.includes(\"`\")&&!value.includes(\"${\"))return`\\`${value}\\``}return`'${value}'`;case\"number\":if(isNaN(value))return\"NaN\";else if(Object.is(value,-0))return String(value);return value;case\"bigint\":return`${String(value)}n`;case\"boolean\":case\"undefined\":return String(value);case\"object\":return\"{}\"}}}});var require_errors=__commonJS((exports2,module2)=>{var{format,inspect}=require_inspect(),{AggregateError:CustomAggregateError}=require_primordials(),AggregateError=globalThis.AggregateError||CustomAggregateError,kIsNodeError=Symbol(\"kIsNodeError\"),kTypes=[\"string\",\"function\",\"number\",\"object\",\"Function\",\"Object\",\"boolean\",\"bigint\",\"symbol\"],classRegExp=/^([A-Z][a-z0-9]*)+$/,codes={};function assert(value,message){if(!value)throw new codes.ERR_INTERNAL_ASSERTION(message)}function addNumericalSeparator(val){let res=\"\",i=val.length,start=val[0]===\"-\"?1:0;for(;i>=start+4;i-=3)res=`_${val.slice(i-3,i)}${res}`;return`${val.slice(0,i)}${res}`}function getMessage(key,msg,args){if(typeof msg===\"function\")return assert(msg.length<=args.length,`Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${msg.length}).`),msg(...args);let expectedLength=(msg.match(/%[dfijoOs]/g)||[]).length;if(assert(expectedLength===args.length,`Code: ${key}; The provided arguments length (${args.length}) does not match the required ones (${expectedLength}).`),args.length===0)return msg;return format(msg,...args)}function E(code,message,Base){if(!Base)Base=Error;class NodeError extends Base{constructor(...args){super(getMessage(code,message,args))}toString(){return`${this.name} [${code}]: ${this.message}`}}Object.defineProperties(NodeError.prototype,{name:{value:Base.name,writable:!0,enumerable:!1,configurable:!0},toString:{value(){return`${this.name} [${code}]: ${this.message}`},writable:!0,enumerable:!1,configurable:!0}}),NodeError.prototype.code=code,NodeError.prototype[kIsNodeError]=!0,codes[code]=NodeError}function hideStackFrames(fn){let hidden=\"__node_internal_\"+fn.name;return Object.defineProperty(fn,\"name\",{value:hidden}),fn}function aggregateTwoErrors(innerError,outerError){if(innerError&&outerError&&innerError!==outerError){if(Array.isArray(outerError.errors))return outerError.errors.push(innerError),outerError;let err=new AggregateError([outerError,innerError],outerError.message);return err.code=outerError.code,err}return innerError||outerError}class AbortError extends Error{constructor(message=\"The operation was aborted\",options=void 0){if(options!==void 0&&typeof options!==\"object\")throw new codes.ERR_INVALID_ARG_TYPE(\"options\",\"Object\",options);super(message,options);this.code=\"ABORT_ERR\",this.name=\"AbortError\"}}E(\"ERR_ASSERTION\",\"%s\",Error);E(\"ERR_INVALID_ARG_TYPE\",(name,expected,actual)=>{if(assert(typeof name===\"string\",\"'name' must be a string\"),!Array.isArray(expected))expected=[expected];let msg=\"The \";if(name.endsWith(\" argument\"))msg+=`${name} `;else msg+=`\"${name}\" ${name.includes(\".\")?\"property\":\"argument\"} `;msg+=\"must be \";let types=[],instances=[],other=[];for(let value of expected)if(assert(typeof value===\"string\",\"All expected entries have to be of type string\"),kTypes.includes(value))types.push(value.toLowerCase());else if(classRegExp.test(value))instances.push(value);else assert(value!==\"object\",'The value \"object\" should be written as \"Object\"'),other.push(value);if(instances.length>0){let pos=types.indexOf(\"object\");if(pos!==-1)types.splice(types,pos,1),instances.push(\"Object\")}if(types.length>0){switch(types.length){case 1:msg+=`of type ${types[0]}`;break;case 2:msg+=`one of type ${types[0]} or ${types[1]}`;break;default:{let last=types.pop();msg+=`one of type ${types.join(\", \")}, or ${last}`}}if(instances.length>0||other.length>0)msg+=\" or \"}if(instances.length>0){switch(instances.length){case 1:msg+=`an instance of ${instances[0]}`;break;case 2:msg+=`an instance of ${instances[0]} or ${instances[1]}`;break;default:{let last=instances.pop();msg+=`an instance of ${instances.join(\", \")}, or ${last}`}}if(other.length>0)msg+=\" or \"}switch(other.length){case 0:break;case 1:if(other[0].toLowerCase()!==other[0])msg+=\"an \";msg+=`${other[0]}`;break;case 2:msg+=`one of ${other[0]} or ${other[1]}`;break;default:{let last=other.pop();msg+=`one of ${other.join(\", \")}, or ${last}`}}if(actual==null)msg+=`. Received ${actual}`;else if(typeof actual===\"function\"&&actual.name)msg+=`. Received function ${actual.name}`;else if(typeof actual===\"object\"){var _actual$constructor;if((_actual$constructor=actual.constructor)!==null&&_actual$constructor!==void 0&&_actual$constructor.name)msg+=`. Received an instance of ${actual.constructor.name}`;else{let inspected=inspect(actual,{depth:-1});msg+=`. Received ${inspected}`}}else{let inspected=inspect(actual,{colors:!1});if(inspected.length>25)inspected=`${inspected.slice(0,25)}...`;msg+=`. Received type ${typeof actual} (${inspected})`}return msg},TypeError);E(\"ERR_INVALID_ARG_VALUE\",(name,value,reason=\"is invalid\")=>{let inspected=inspect(value);if(inspected.length>128)inspected=inspected.slice(0,128)+\"...\";return`The ${name.includes(\".\")?\"property\":\"argument\"} '${name}' ${reason}. Received ${inspected}`},TypeError);E(\"ERR_INVALID_RETURN_VALUE\",(input,name,value)=>{var _value$constructor;let type=value!==null&&value!==void 0&&(_value$constructor=value.constructor)!==null&&_value$constructor!==void 0&&_value$constructor.name?`instance of ${value.constructor.name}`:`type ${typeof value}`;return`Expected ${input} to be returned from the \"${name}\" function but got ${type}.`},TypeError);E(\"ERR_MISSING_ARGS\",(...args)=>{assert(args.length>0,\"At least one arg needs to be specified\");let msg,len=args.length;switch(args=(Array.isArray(args)?args:[args]).map((a)=>`\"${a}\"`).join(\" or \"),len){case 1:msg+=`The ${args[0]} argument`;break;case 2:msg+=`The ${args[0]} and ${args[1]} arguments`;break;default:{let last=args.pop();msg+=`The ${args.join(\", \")}, and ${last} arguments`}break}return`${msg} must be specified`},TypeError);E(\"ERR_OUT_OF_RANGE\",(str,range,input)=>{assert(range,'Missing \"range\" argument');let received;if(Number.isInteger(input)&&Math.abs(input)>4294967296)received=addNumericalSeparator(String(input));else if(typeof input===\"bigint\"){received=String(input);let limit=BigInt(2)**BigInt(32);if(input>limit||input<-limit)received=addNumericalSeparator(received);received+=\"n\"}else received=inspect(input);return`The value of \"${str}\" is out of range. It must be ${range}. Received ${received}`},RangeError);E(\"ERR_MULTIPLE_CALLBACK\",\"Callback called multiple times\",Error);E(\"ERR_METHOD_NOT_IMPLEMENTED\",\"The %s method is not implemented\",Error);E(\"ERR_STREAM_ALREADY_FINISHED\",\"Cannot call %s after a stream was finished\",Error);E(\"ERR_STREAM_CANNOT_PIPE\",\"Cannot pipe, not readable\",Error);E(\"ERR_STREAM_DESTROYED\",\"Cannot call %s after a stream was destroyed\",Error);E(\"ERR_STREAM_NULL_VALUES\",\"May not write null values to stream\",TypeError);E(\"ERR_STREAM_PREMATURE_CLOSE\",\"Premature close\",Error);E(\"ERR_STREAM_PUSH_AFTER_EOF\",\"stream.push() after EOF\",Error);E(\"ERR_STREAM_UNSHIFT_AFTER_END_EVENT\",\"stream.unshift() after end event\",Error);E(\"ERR_STREAM_WRITE_AFTER_END\",\"write after end\",Error);E(\"ERR_UNKNOWN_ENCODING\",\"Unknown encoding: %s\",TypeError);module2.exports={AbortError,aggregateTwoErrors:hideStackFrames(aggregateTwoErrors),hideStackFrames,codes}});var require_event_target_shim=__commonJS((exports2,module2)=>{Object.defineProperty(exports2,\"__esModule\",{value:!0});var privateData=new WeakMap,wrappers=new WeakMap;function pd(event){let retv=privateData.get(event);return console.assert(retv!=null,\"'this' is expected an Event object, but got\",event),retv}function setCancelFlag(data){if(data.passiveListener!=null){if(typeof console<\"u\"&&typeof console.error===\"function\")console.error(\"Unable to preventDefault inside passive event listener invocation.\",data.passiveListener);return}if(!data.event.cancelable)return;if(data.canceled=!0,typeof data.event.preventDefault===\"function\")data.event.preventDefault()}function Event(eventTarget,event){privateData.set(this,{eventTarget,event,eventPhase:2,currentTarget:eventTarget,canceled:!1,stopped:!1,immediateStopped:!1,passiveListener:null,timeStamp:event.timeStamp||Date.now()}),Object.defineProperty(this,\"isTrusted\",{value:!1,enumerable:!0});let keys=Object.keys(event);for(let i=0;i0){let types=Array(arguments.length);for(let i=0;i{Object.defineProperty(exports2,\"__esModule\",{value:!0});var eventTargetShim=require_event_target_shim();class AbortSignal extends eventTargetShim.EventTarget{constructor(){super();throw TypeError(\"AbortSignal cannot be constructed directly\")}get aborted(){let aborted=abortedFlags.get(this);if(typeof aborted!==\"boolean\")throw TypeError(`Expected 'this' to be an 'AbortSignal' object, but got ${this===null?\"null\":typeof this}`);return aborted}}eventTargetShim.defineEventAttribute(AbortSignal.prototype,\"abort\");function createAbortSignal(){let signal=Object.create(AbortSignal.prototype);return eventTargetShim.EventTarget.call(signal),abortedFlags.set(signal,!1),signal}function abortSignal(signal){if(abortedFlags.get(signal)!==!1)return;abortedFlags.set(signal,!0),signal.dispatchEvent({type:\"abort\"})}var abortedFlags=new WeakMap;Object.defineProperties(AbortSignal.prototype,{aborted:{enumerable:!0}});if(typeof Symbol===\"function\"&&typeof Symbol.toStringTag===\"symbol\")Object.defineProperty(AbortSignal.prototype,Symbol.toStringTag,{configurable:!0,value:\"AbortSignal\"});class AbortController{constructor(){signals.set(this,createAbortSignal())}get signal(){return getSignal(this)}abort(){abortSignal(getSignal(this))}}var signals=new WeakMap;function getSignal(controller){let signal=signals.get(controller);if(signal==null)throw TypeError(`Expected 'this' to be an 'AbortController' object, but got ${controller===null?\"null\":typeof controller}`);return signal}Object.defineProperties(AbortController.prototype,{signal:{enumerable:!0},abort:{enumerable:!0}});if(typeof Symbol===\"function\"&&typeof Symbol.toStringTag===\"symbol\")Object.defineProperty(AbortController.prototype,Symbol.toStringTag,{configurable:!0,value:\"AbortController\"});exports2.AbortController=AbortController;exports2.AbortSignal=AbortSignal;exports2.default=AbortController;module2.exports=AbortController;module2.exports.AbortController=module2.exports.default=AbortController;module2.exports.AbortSignal=AbortSignal});var require_util=__commonJS((exports2,module2)=>{var bufferModule=require(\"buffer\"),{format,inspect}=require_inspect(),{codes:{ERR_INVALID_ARG_TYPE}}=require_errors(),{kResistStopPropagation,AggregateError,SymbolDispose}=require_primordials(),AbortSignal=globalThis.AbortSignal||require_abort_controller().AbortSignal,AbortController=globalThis.AbortController||require_abort_controller().AbortController,AsyncFunction=Object.getPrototypeOf(async function(){}).constructor,Blob=globalThis.Blob||bufferModule.Blob,isBlob=typeof Blob<\"u\"?function(b){return b instanceof Blob}:function(b){return!1},validateAbortSignal=(signal,name)=>{if(signal!==void 0&&(signal===null||typeof signal!==\"object\"||!(\"aborted\"in signal)))throw new ERR_INVALID_ARG_TYPE(name,\"AbortSignal\",signal)},validateFunction=(value,name)=>{if(typeof value!==\"function\")throw new ERR_INVALID_ARG_TYPE(name,\"Function\",value)};module2.exports={AggregateError,kEmptyObject:Object.freeze({}),once(callback){let called=!1;return function(...args){if(called)return;called=!0,callback.apply(this,args)}},createDeferredPromise:function(){let resolve,reject;return{promise:new Promise((res,rej)=>{resolve=res,reject=rej}),resolve,reject}},promisify(fn){return new Promise((resolve,reject)=>{fn((err,...args)=>{if(err)return reject(err);return resolve(...args)})})},debuglog(){return function(){}},format,inspect,types:{isAsyncFunction(fn){return fn instanceof AsyncFunction},isArrayBufferView(arr){return ArrayBuffer.isView(arr)}},isBlob,deprecate(fn,message){return fn},addAbortListener:require(\"events\").addAbortListener||function(signal,listener){if(signal===void 0)throw new ERR_INVALID_ARG_TYPE(\"signal\",\"AbortSignal\",signal);validateAbortSignal(signal,\"signal\"),validateFunction(listener,\"listener\");let removeEventListener;if(signal.aborted)queueMicrotask(()=>listener());else signal.addEventListener(\"abort\",listener,{__proto__:null,once:!0,[kResistStopPropagation]:!0}),removeEventListener=()=>{signal.removeEventListener(\"abort\",listener)};return{__proto__:null,[SymbolDispose](){var _removeEventListener;(_removeEventListener=removeEventListener)===null||_removeEventListener===void 0||_removeEventListener()}}},AbortSignalAny:AbortSignal.any||function(signals){if(signals.length===1)return signals[0];let ac=new AbortController,abort=()=>ac.abort();return signals.forEach((signal)=>{validateAbortSignal(signal,\"signals\"),signal.addEventListener(\"abort\",abort,{once:!0})}),ac.signal.addEventListener(\"abort\",()=>{signals.forEach((signal)=>signal.removeEventListener(\"abort\",abort))},{once:!0}),ac.signal}};module2.exports.promisify.custom=Symbol.for(\"nodejs.util.promisify.custom\")});var require_validators=__commonJS((exports2,module2)=>{var{ArrayIsArray,ArrayPrototypeIncludes,ArrayPrototypeJoin,ArrayPrototypeMap,NumberIsInteger,NumberIsNaN,NumberMAX_SAFE_INTEGER,NumberMIN_SAFE_INTEGER,NumberParseInt,ObjectPrototypeHasOwnProperty,RegExpPrototypeExec,String:String2,StringPrototypeToUpperCase,StringPrototypeTrim}=require_primordials(),{hideStackFrames,codes:{ERR_SOCKET_BAD_PORT,ERR_INVALID_ARG_TYPE,ERR_INVALID_ARG_VALUE,ERR_OUT_OF_RANGE,ERR_UNKNOWN_SIGNAL}}=require_errors(),{normalizeEncoding}=require_util(),{isAsyncFunction,isArrayBufferView}=require_util().types,signals={};function isInt32(value){return value===(value|0)}function isUint32(value){return value===value>>>0}var octalReg=/^[0-7]+$/,modeDesc=\"must be a 32-bit unsigned integer or an octal string\";function parseFileMode(value,name,def){if(typeof value>\"u\")value=def;if(typeof value===\"string\"){if(RegExpPrototypeExec(octalReg,value)===null)throw new ERR_INVALID_ARG_VALUE(name,value,modeDesc);value=NumberParseInt(value,8)}return validateUint32(value,name),value}var validateInteger=hideStackFrames((value,name,min=NumberMIN_SAFE_INTEGER,max=NumberMAX_SAFE_INTEGER)=>{if(typeof value!==\"number\")throw new ERR_INVALID_ARG_TYPE(name,\"number\",value);if(!NumberIsInteger(value))throw new ERR_OUT_OF_RANGE(name,\"an integer\",value);if(valuemax)throw new ERR_OUT_OF_RANGE(name,`>= ${min} && <= ${max}`,value)}),validateInt32=hideStackFrames((value,name,min=-2147483648,max=2147483647)=>{if(typeof value!==\"number\")throw new ERR_INVALID_ARG_TYPE(name,\"number\",value);if(!NumberIsInteger(value))throw new ERR_OUT_OF_RANGE(name,\"an integer\",value);if(valuemax)throw new ERR_OUT_OF_RANGE(name,`>= ${min} && <= ${max}`,value)}),validateUint32=hideStackFrames((value,name,positive=!1)=>{if(typeof value!==\"number\")throw new ERR_INVALID_ARG_TYPE(name,\"number\",value);if(!NumberIsInteger(value))throw new ERR_OUT_OF_RANGE(name,\"an integer\",value);let min=positive?1:0,max=4294967295;if(valuemax)throw new ERR_OUT_OF_RANGE(name,`>= ${min} && <= ${max}`,value)});function validateString(value,name){if(typeof value!==\"string\")throw new ERR_INVALID_ARG_TYPE(name,\"string\",value)}function validateNumber(value,name,min=void 0,max){if(typeof value!==\"number\")throw new ERR_INVALID_ARG_TYPE(name,\"number\",value);if(min!=null&&valuemax||(min!=null||max!=null)&&NumberIsNaN(value))throw new ERR_OUT_OF_RANGE(name,`${min!=null?`>= ${min}`:\"\"}${min!=null&&max!=null?\" && \":\"\"}${max!=null?`<= ${max}`:\"\"}`,value)}var validateOneOf=hideStackFrames((value,name,oneOf)=>{if(!ArrayPrototypeIncludes(oneOf,value)){let reason=\"must be one of: \"+ArrayPrototypeJoin(ArrayPrototypeMap(oneOf,(v)=>typeof v===\"string\"?`'${v}'`:String2(v)),\", \");throw new ERR_INVALID_ARG_VALUE(name,value,reason)}});function validateBoolean(value,name){if(typeof value!==\"boolean\")throw new ERR_INVALID_ARG_TYPE(name,\"boolean\",value)}function getOwnPropertyValueOrDefault(options,key,defaultValue){return options==null||!ObjectPrototypeHasOwnProperty(options,key)?defaultValue:options[key]}var validateObject=hideStackFrames((value,name,options=null)=>{let allowArray=getOwnPropertyValueOrDefault(options,\"allowArray\",!1),allowFunction=getOwnPropertyValueOrDefault(options,\"allowFunction\",!1);if(!getOwnPropertyValueOrDefault(options,\"nullable\",!1)&&value===null||!allowArray&&ArrayIsArray(value)||typeof value!==\"object\"&&(!allowFunction||typeof value!==\"function\"))throw new ERR_INVALID_ARG_TYPE(name,\"Object\",value)}),validateDictionary=hideStackFrames((value,name)=>{if(value!=null&&typeof value!==\"object\"&&typeof value!==\"function\")throw new ERR_INVALID_ARG_TYPE(name,\"a dictionary\",value)}),validateArray=hideStackFrames((value,name,minLength=0)=>{if(!ArrayIsArray(value))throw new ERR_INVALID_ARG_TYPE(name,\"Array\",value);if(value.length{if(!isArrayBufferView(buffer))throw new ERR_INVALID_ARG_TYPE(name,[\"Buffer\",\"TypedArray\",\"DataView\"],buffer)});function validateEncoding(data,encoding){let normalizedEncoding=normalizeEncoding(encoding),length=data.length;if(normalizedEncoding===\"hex\"&&length%2!==0)throw new ERR_INVALID_ARG_VALUE(\"encoding\",encoding,`is invalid for data of length ${length}`)}function validatePort(port,name=\"Port\",allowZero=!0){if(typeof port!==\"number\"&&typeof port!==\"string\"||typeof port===\"string\"&&StringPrototypeTrim(port).length===0||+port!==+port>>>0||port>65535||port===0&&!allowZero)throw new ERR_SOCKET_BAD_PORT(name,port,allowZero);return port|0}var validateAbortSignal=hideStackFrames((signal,name)=>{if(signal!==void 0&&(signal===null||typeof signal!==\"object\"||!(\"aborted\"in signal)))throw new ERR_INVALID_ARG_TYPE(name,\"AbortSignal\",signal)}),validateFunction=hideStackFrames((value,name)=>{if(typeof value!==\"function\")throw new ERR_INVALID_ARG_TYPE(name,\"Function\",value)}),validatePlainFunction=hideStackFrames((value,name)=>{if(typeof value!==\"function\"||isAsyncFunction(value))throw new ERR_INVALID_ARG_TYPE(name,\"Function\",value)}),validateUndefined=hideStackFrames((value,name)=>{if(value!==void 0)throw new ERR_INVALID_ARG_TYPE(name,\"undefined\",value)});function validateUnion(value,name,union){if(!ArrayPrototypeIncludes(union,value))throw new ERR_INVALID_ARG_TYPE(name,`('${ArrayPrototypeJoin(union,\"|\")}')`,value)}var linkValueRegExp=/^(?:<[^>]*>)(?:\\s*;\\s*[^;\"\\s]+(?:=(\")?[^;\"\\s]*\\1)?)*$/;function validateLinkHeaderFormat(value,name){if(typeof value>\"u\"||!RegExpPrototypeExec(linkValueRegExp,value))throw new ERR_INVALID_ARG_VALUE(name,value,'must be an array or string of format \"; rel=preload; as=style\"')}function validateLinkHeaderValue(hints){if(typeof hints===\"string\")return validateLinkHeaderFormat(hints,\"hints\"),hints;else if(ArrayIsArray(hints)){let hintsLength=hints.length,result=\"\";if(hintsLength===0)return result;for(let i=0;i; rel=preload; as=style\"')}module2.exports={isInt32,isUint32,parseFileMode,validateArray,validateStringArray,validateBooleanArray,validateAbortSignalArray,validateBoolean,validateBuffer,validateDictionary,validateEncoding,validateFunction,validateInt32,validateInteger,validateNumber,validateObject,validateOneOf,validatePlainFunction,validatePort,validateSignalName,validateString,validateUint32,validateUndefined,validateUnion,validateAbortSignal,validateLinkHeaderValue}});var require_process=__commonJS((exports2,module2)=>{module2.exports=globalThis.process});var require_utils=__commonJS((exports2,module2)=>{var{SymbolAsyncIterator,SymbolIterator,SymbolFor}=require_primordials(),kIsDestroyed=SymbolFor(\"nodejs.stream.destroyed\"),kIsErrored=SymbolFor(\"nodejs.stream.errored\"),kIsReadable=SymbolFor(\"nodejs.stream.readable\"),kIsWritable=SymbolFor(\"nodejs.stream.writable\"),kIsDisturbed=SymbolFor(\"nodejs.stream.disturbed\"),kIsClosedPromise=SymbolFor(\"nodejs.webstream.isClosedPromise\"),kControllerErrorFunction=SymbolFor(\"nodejs.webstream.controllerErrorFunction\");function isReadableNodeStream(obj,strict=!1){var _obj$_readableState;return!!(obj&&typeof obj.pipe===\"function\"&&typeof obj.on===\"function\"&&(!strict||typeof obj.pause===\"function\"&&typeof obj.resume===\"function\")&&(!obj._writableState||((_obj$_readableState=obj._readableState)===null||_obj$_readableState===void 0?void 0:_obj$_readableState.readable)!==!1)&&(!obj._writableState||obj._readableState))}function isWritableNodeStream(obj){var _obj$_writableState;return!!(obj&&typeof obj.write===\"function\"&&typeof obj.on===\"function\"&&(!obj._readableState||((_obj$_writableState=obj._writableState)===null||_obj$_writableState===void 0?void 0:_obj$_writableState.writable)!==!1))}function isDuplexNodeStream(obj){return!!(obj&&typeof obj.pipe===\"function\"&&obj._readableState&&typeof obj.on===\"function\"&&typeof obj.write===\"function\")}function isNodeStream(obj){return obj&&(obj._readableState||obj._writableState||typeof obj.write===\"function\"&&typeof obj.on===\"function\"||typeof obj.pipe===\"function\"&&typeof obj.on===\"function\")}function isReadableStream(obj){return!!(obj&&!isNodeStream(obj)&&typeof obj.pipeThrough===\"function\"&&typeof obj.getReader===\"function\"&&typeof obj.cancel===\"function\")}function isWritableStream(obj){return!!(obj&&!isNodeStream(obj)&&typeof obj.getWriter===\"function\"&&typeof obj.abort===\"function\")}function isTransformStream(obj){return!!(obj&&!isNodeStream(obj)&&typeof obj.readable===\"object\"&&typeof obj.writable===\"object\")}function isWebStream(obj){return isReadableStream(obj)||isWritableStream(obj)||isTransformStream(obj)}function isIterable(obj,isAsync){if(obj==null)return!1;if(isAsync===!0)return typeof obj[SymbolAsyncIterator]===\"function\";if(isAsync===!1)return typeof obj[SymbolIterator]===\"function\";return typeof obj[SymbolAsyncIterator]===\"function\"||typeof obj[SymbolIterator]===\"function\"}function isDestroyed(stream){if(!isNodeStream(stream))return null;let{_writableState:wState,_readableState:rState}=stream,state=wState||rState;return!!(stream.destroyed||stream[kIsDestroyed]||state!==null&&state!==void 0&&state.destroyed)}function isWritableEnded(stream){if(!isWritableNodeStream(stream))return null;if(stream.writableEnded===!0)return!0;let wState=stream._writableState;if(wState!==null&&wState!==void 0&&wState.errored)return!1;if(typeof(wState===null||wState===void 0?void 0:wState.ended)!==\"boolean\")return null;return wState.ended}function isWritableFinished(stream,strict){if(!isWritableNodeStream(stream))return null;if(stream.writableFinished===!0)return!0;let wState=stream._writableState;if(wState!==null&&wState!==void 0&&wState.errored)return!1;if(typeof(wState===null||wState===void 0?void 0:wState.finished)!==\"boolean\")return null;return!!(wState.finished||strict===!1&&wState.ended===!0&&wState.length===0)}function isReadableEnded(stream){if(!isReadableNodeStream(stream))return null;if(stream.readableEnded===!0)return!0;let rState=stream._readableState;if(!rState||rState.errored)return!1;if(typeof(rState===null||rState===void 0?void 0:rState.ended)!==\"boolean\")return null;return rState.ended}function isReadableFinished(stream,strict){if(!isReadableNodeStream(stream))return null;let rState=stream._readableState;if(rState!==null&&rState!==void 0&&rState.errored)return!1;if(typeof(rState===null||rState===void 0?void 0:rState.endEmitted)!==\"boolean\")return null;return!!(rState.endEmitted||strict===!1&&rState.ended===!0&&rState.length===0)}function isReadable(stream){if(stream&&stream[kIsReadable]!=null)return stream[kIsReadable];if(typeof(stream===null||stream===void 0?void 0:stream.readable)!==\"boolean\")return null;if(isDestroyed(stream))return!1;return isReadableNodeStream(stream)&&stream.readable&&!isReadableFinished(stream)}function isWritable(stream){if(stream&&stream[kIsWritable]!=null)return stream[kIsWritable];if(typeof(stream===null||stream===void 0?void 0:stream.writable)!==\"boolean\")return null;if(isDestroyed(stream))return!1;return isWritableNodeStream(stream)&&stream.writable&&!isWritableEnded(stream)}function isFinished(stream,opts){if(!isNodeStream(stream))return null;if(isDestroyed(stream))return!0;if((opts===null||opts===void 0?void 0:opts.readable)!==!1&&isReadable(stream))return!1;if((opts===null||opts===void 0?void 0:opts.writable)!==!1&&isWritable(stream))return!1;return!0}function isWritableErrored(stream){var _stream$_writableStat,_stream$_writableStat2;if(!isNodeStream(stream))return null;if(stream.writableErrored)return stream.writableErrored;return(_stream$_writableStat=(_stream$_writableStat2=stream._writableState)===null||_stream$_writableStat2===void 0?void 0:_stream$_writableStat2.errored)!==null&&_stream$_writableStat!==void 0?_stream$_writableStat:null}function isReadableErrored(stream){var _stream$_readableStat,_stream$_readableStat2;if(!isNodeStream(stream))return null;if(stream.readableErrored)return stream.readableErrored;return(_stream$_readableStat=(_stream$_readableStat2=stream._readableState)===null||_stream$_readableStat2===void 0?void 0:_stream$_readableStat2.errored)!==null&&_stream$_readableStat!==void 0?_stream$_readableStat:null}function isClosed(stream){if(!isNodeStream(stream))return null;if(typeof stream.closed===\"boolean\")return stream.closed;let{_writableState:wState,_readableState:rState}=stream;if(typeof(wState===null||wState===void 0?void 0:wState.closed)===\"boolean\"||typeof(rState===null||rState===void 0?void 0:rState.closed)===\"boolean\")return(wState===null||wState===void 0?void 0:wState.closed)||(rState===null||rState===void 0?void 0:rState.closed);if(typeof stream._closed===\"boolean\"&&isOutgoingMessage(stream))return stream._closed;return null}function isOutgoingMessage(stream){return typeof stream._closed===\"boolean\"&&typeof stream._defaultKeepAlive===\"boolean\"&&typeof stream._removedConnection===\"boolean\"&&typeof stream._removedContLen===\"boolean\"}function isServerResponse(stream){return typeof stream._sent100===\"boolean\"&&isOutgoingMessage(stream)}function isServerRequest(stream){var _stream$req;return typeof stream._consuming===\"boolean\"&&typeof stream._dumped===\"boolean\"&&((_stream$req=stream.req)===null||_stream$req===void 0?void 0:_stream$req.upgradeOrConnect)===void 0}function willEmitClose(stream){if(!isNodeStream(stream))return null;let{_writableState:wState,_readableState:rState}=stream,state=wState||rState;return!state&&isServerResponse(stream)||!!(state&&state.autoDestroy&&state.emitClose&&state.closed===!1)}function isDisturbed(stream){var _stream$kIsDisturbed;return!!(stream&&((_stream$kIsDisturbed=stream[kIsDisturbed])!==null&&_stream$kIsDisturbed!==void 0?_stream$kIsDisturbed:stream.readableDidRead||stream.readableAborted))}function isErrored(stream){var _ref,_ref2,_ref3,_ref4,_ref5,_stream$kIsErrored,_stream$_readableStat3,_stream$_writableStat3,_stream$_readableStat4,_stream$_writableStat4;return!!(stream&&((_ref=(_ref2=(_ref3=(_ref4=(_ref5=(_stream$kIsErrored=stream[kIsErrored])!==null&&_stream$kIsErrored!==void 0?_stream$kIsErrored:stream.readableErrored)!==null&&_ref5!==void 0?_ref5:stream.writableErrored)!==null&&_ref4!==void 0?_ref4:(_stream$_readableStat3=stream._readableState)===null||_stream$_readableStat3===void 0?void 0:_stream$_readableStat3.errorEmitted)!==null&&_ref3!==void 0?_ref3:(_stream$_writableStat3=stream._writableState)===null||_stream$_writableStat3===void 0?void 0:_stream$_writableStat3.errorEmitted)!==null&&_ref2!==void 0?_ref2:(_stream$_readableStat4=stream._readableState)===null||_stream$_readableStat4===void 0?void 0:_stream$_readableStat4.errored)!==null&&_ref!==void 0?_ref:(_stream$_writableStat4=stream._writableState)===null||_stream$_writableStat4===void 0?void 0:_stream$_writableStat4.errored))}module2.exports={isDestroyed,kIsDestroyed,isDisturbed,kIsDisturbed,isErrored,kIsErrored,isReadable,kIsReadable,kIsClosedPromise,kControllerErrorFunction,kIsWritable,isClosed,isDuplexNodeStream,isFinished,isIterable,isReadableNodeStream,isReadableStream,isReadableEnded,isReadableFinished,isReadableErrored,isNodeStream,isWebStream,isWritable,isWritableNodeStream,isWritableStream,isWritableEnded,isWritableFinished,isWritableErrored,isServerRequest,isServerResponse,willEmitClose,isTransformStream}});var require_end_of_stream=__commonJS((exports2,module2)=>{var process=require_process(),{AbortError,codes}=require_errors(),{ERR_INVALID_ARG_TYPE,ERR_STREAM_PREMATURE_CLOSE}=codes,{kEmptyObject,once}=require_util(),{validateAbortSignal,validateFunction,validateObject,validateBoolean}=require_validators(),{Promise:Promise2,PromisePrototypeThen,SymbolDispose}=require_primordials(),{isClosed,isReadable,isReadableNodeStream,isReadableStream,isReadableFinished,isReadableErrored,isWritable,isWritableNodeStream,isWritableStream,isWritableFinished,isWritableErrored,isNodeStream,willEmitClose:_willEmitClose,kIsClosedPromise}=require_utils(),addAbortListener;function isRequest(stream){return stream.setHeader&&typeof stream.abort===\"function\"}var nop=()=>{};function eos(stream,options,callback){var _options$readable,_options$writable;if(arguments.length===2)callback=options,options=kEmptyObject;else if(options==null)options=kEmptyObject;else validateObject(options,\"options\");if(validateFunction(callback,\"callback\"),validateAbortSignal(options.signal,\"options.signal\"),callback=once(callback),isReadableStream(stream)||isWritableStream(stream))return eosWeb(stream,options,callback);if(!isNodeStream(stream))throw new ERR_INVALID_ARG_TYPE(\"stream\",[\"ReadableStream\",\"WritableStream\",\"Stream\"],stream);let readable=(_options$readable=options.readable)!==null&&_options$readable!==void 0?_options$readable:isReadableNodeStream(stream),writable=(_options$writable=options.writable)!==null&&_options$writable!==void 0?_options$writable:isWritableNodeStream(stream),wState=stream._writableState,rState=stream._readableState,onlegacyfinish=()=>{if(!stream.writable)onfinish()},willEmitClose=_willEmitClose(stream)&&isReadableNodeStream(stream)===readable&&isWritableNodeStream(stream)===writable,writableFinished=isWritableFinished(stream,!1),onfinish=()=>{if(writableFinished=!0,stream.destroyed)willEmitClose=!1;if(willEmitClose&&(!stream.readable||readable))return;if(!readable||readableFinished)callback.call(stream)},readableFinished=isReadableFinished(stream,!1),onend=()=>{if(readableFinished=!0,stream.destroyed)willEmitClose=!1;if(willEmitClose&&(!stream.writable||writable))return;if(!writable||writableFinished)callback.call(stream)},onerror=(err)=>{callback.call(stream,err)},closed=isClosed(stream),onclose=()=>{closed=!0;let errored=isWritableErrored(stream)||isReadableErrored(stream);if(errored&&typeof errored!==\"boolean\")return callback.call(stream,errored);if(readable&&!readableFinished&&isReadableNodeStream(stream,!0)){if(!isReadableFinished(stream,!1))return callback.call(stream,new ERR_STREAM_PREMATURE_CLOSE)}if(writable&&!writableFinished){if(!isWritableFinished(stream,!1))return callback.call(stream,new ERR_STREAM_PREMATURE_CLOSE)}callback.call(stream)},onclosed=()=>{closed=!0;let errored=isWritableErrored(stream)||isReadableErrored(stream);if(errored&&typeof errored!==\"boolean\")return callback.call(stream,errored);callback.call(stream)},onrequest=()=>{stream.req.on(\"finish\",onfinish)};if(isRequest(stream)){if(stream.on(\"complete\",onfinish),!willEmitClose)stream.on(\"abort\",onclose);if(stream.req)onrequest();else stream.on(\"request\",onrequest)}else if(writable&&!wState)stream.on(\"end\",onlegacyfinish),stream.on(\"close\",onlegacyfinish);if(!willEmitClose&&typeof stream.aborted===\"boolean\")stream.on(\"aborted\",onclose);if(stream.on(\"end\",onend),stream.on(\"finish\",onfinish),options.error!==!1)stream.on(\"error\",onerror);if(stream.on(\"close\",onclose),closed)process.nextTick(onclose);else if(wState!==null&&wState!==void 0&&wState.errorEmitted||rState!==null&&rState!==void 0&&rState.errorEmitted){if(!willEmitClose)process.nextTick(onclosed)}else if(!readable&&(!willEmitClose||isReadable(stream))&&(writableFinished||isWritable(stream)===!1))process.nextTick(onclosed);else if(!writable&&(!willEmitClose||isWritable(stream))&&(readableFinished||isReadable(stream)===!1))process.nextTick(onclosed);else if(rState&&stream.req&&stream.aborted)process.nextTick(onclosed);let cleanup=()=>{if(callback=nop,stream.removeListener(\"aborted\",onclose),stream.removeListener(\"complete\",onfinish),stream.removeListener(\"abort\",onclose),stream.removeListener(\"request\",onrequest),stream.req)stream.req.removeListener(\"finish\",onfinish);stream.removeListener(\"end\",onlegacyfinish),stream.removeListener(\"close\",onlegacyfinish),stream.removeListener(\"finish\",onfinish),stream.removeListener(\"end\",onend),stream.removeListener(\"error\",onerror),stream.removeListener(\"close\",onclose)};if(options.signal&&!closed){let abort=()=>{let endCallback=callback;cleanup(),endCallback.call(stream,new AbortError(void 0,{cause:options.signal.reason}))};if(options.signal.aborted)process.nextTick(abort);else{addAbortListener=addAbortListener||require_util().addAbortListener;let disposable=addAbortListener(options.signal,abort),originalCallback=callback;callback=once((...args)=>{disposable[SymbolDispose](),originalCallback.apply(stream,args)})}}return cleanup}function eosWeb(stream,options,callback){let isAborted=!1,abort=nop;if(options.signal)if(abort=()=>{isAborted=!0,callback.call(stream,new AbortError(void 0,{cause:options.signal.reason}))},options.signal.aborted)process.nextTick(abort);else{addAbortListener=addAbortListener||require_util().addAbortListener;let disposable=addAbortListener(options.signal,abort),originalCallback=callback;callback=once((...args)=>{disposable[SymbolDispose](),originalCallback.apply(stream,args)})}let resolverFn=(...args)=>{if(!isAborted)process.nextTick(()=>callback.apply(stream,args))};return PromisePrototypeThen(stream[kIsClosedPromise].promise,resolverFn,resolverFn),nop}function finished(stream,opts){var _opts;let autoCleanup=!1;if(opts===null)opts=kEmptyObject;if((_opts=opts)!==null&&_opts!==void 0&&_opts.cleanup)validateBoolean(opts.cleanup,\"cleanup\"),autoCleanup=opts.cleanup;return new Promise2((resolve,reject)=>{let cleanup=eos(stream,opts,(err)=>{if(autoCleanup)cleanup();if(err)reject(err);else resolve()})})}module2.exports=eos;module2.exports.finished=finished});var require_destroy=__commonJS((exports2,module2)=>{var process=require_process(),{aggregateTwoErrors,codes:{ERR_MULTIPLE_CALLBACK},AbortError}=require_errors(),{Symbol:Symbol2}=require_primordials(),{kIsDestroyed,isDestroyed,isFinished,isServerRequest}=require_utils(),kDestroy=Symbol2(\"kDestroy\"),kConstruct=Symbol2(\"kConstruct\");function checkError(err,w,r){if(err){if(err.stack,w&&!w.errored)w.errored=err;if(r&&!r.errored)r.errored=err}}function destroy(err,cb){let r=this._readableState,w=this._writableState,s=w||r;if(w!==null&&w!==void 0&&w.destroyed||r!==null&&r!==void 0&&r.destroyed){if(typeof cb===\"function\")cb();return this}if(checkError(err,w,r),w)w.destroyed=!0;if(r)r.destroyed=!0;if(!s.constructed)this.once(kDestroy,function(er){_destroy(this,aggregateTwoErrors(er,err),cb)});else _destroy(this,err,cb);return this}function _destroy(self,err,cb){let called=!1;function onDestroy(err2){if(called)return;called=!0;let{_readableState:r,_writableState:w}=self;if(checkError(err2,w,r),w)w.closed=!0;if(r)r.closed=!0;if(typeof cb===\"function\")cb(err2);if(err2)process.nextTick(emitErrorCloseNT,self,err2);else process.nextTick(emitCloseNT,self)}try{self._destroy(err||null,onDestroy)}catch(err2){onDestroy(err2)}}function emitErrorCloseNT(self,err){emitErrorNT(self,err),emitCloseNT(self)}function emitCloseNT(self){let{_readableState:r,_writableState:w}=self;if(w)w.closeEmitted=!0;if(r)r.closeEmitted=!0;if(w!==null&&w!==void 0&&w.emitClose||r!==null&&r!==void 0&&r.emitClose)self.emit(\"close\")}function emitErrorNT(self,err){let{_readableState:r,_writableState:w}=self;if(w!==null&&w!==void 0&&w.errorEmitted||r!==null&&r!==void 0&&r.errorEmitted)return;if(w)w.errorEmitted=!0;if(r)r.errorEmitted=!0;self.emit(\"error\",err)}function undestroy(){let r=this._readableState,w=this._writableState;if(r)r.constructed=!0,r.closed=!1,r.closeEmitted=!1,r.destroyed=!1,r.errored=null,r.errorEmitted=!1,r.reading=!1,r.ended=r.readable===!1,r.endEmitted=r.readable===!1;if(w)w.constructed=!0,w.destroyed=!1,w.closed=!1,w.closeEmitted=!1,w.errored=null,w.errorEmitted=!1,w.finalCalled=!1,w.prefinished=!1,w.ended=w.writable===!1,w.ending=w.writable===!1,w.finished=w.writable===!1}function errorOrDestroy(stream,err,sync){let{_readableState:r,_writableState:w}=stream;if(w!==null&&w!==void 0&&w.destroyed||r!==null&&r!==void 0&&r.destroyed)return this;if(r!==null&&r!==void 0&&r.autoDestroy||w!==null&&w!==void 0&&w.autoDestroy)stream.destroy(err);else if(err){if(err.stack,w&&!w.errored)w.errored=err;if(r&&!r.errored)r.errored=err;if(sync)process.nextTick(emitErrorNT,stream,err);else emitErrorNT(stream,err)}}function construct(stream,cb){if(typeof stream._construct!==\"function\")return;let{_readableState:r,_writableState:w}=stream;if(r)r.constructed=!1;if(w)w.constructed=!1;if(stream.once(kConstruct,cb),stream.listenerCount(kConstruct)>1)return;process.nextTick(constructNT,stream)}function constructNT(stream){let called=!1;function onConstruct(err){if(called){errorOrDestroy(stream,err!==null&&err!==void 0?err:new ERR_MULTIPLE_CALLBACK);return}called=!0;let{_readableState:r,_writableState:w}=stream,s=w||r;if(r)r.constructed=!0;if(w)w.constructed=!0;if(s.destroyed)stream.emit(kDestroy,err);else if(err)errorOrDestroy(stream,err,!0);else process.nextTick(emitConstructNT,stream)}try{stream._construct((err)=>{process.nextTick(onConstruct,err)})}catch(err){process.nextTick(onConstruct,err)}}function emitConstructNT(stream){stream.emit(kConstruct)}function isRequest(stream){return(stream===null||stream===void 0?void 0:stream.setHeader)&&typeof stream.abort===\"function\"}function emitCloseLegacy(stream){stream.emit(\"close\")}function emitErrorCloseLegacy(stream,err){stream.emit(\"error\",err),process.nextTick(emitCloseLegacy,stream)}function destroyer(stream,err){if(!stream||isDestroyed(stream))return;if(!err&&!isFinished(stream))err=new AbortError;if(isServerRequest(stream))stream.socket=null,stream.destroy(err);else if(isRequest(stream))stream.abort();else if(isRequest(stream.req))stream.req.abort();else if(typeof stream.destroy===\"function\")stream.destroy(err);else if(typeof stream.close===\"function\")stream.close();else if(err)process.nextTick(emitErrorCloseLegacy,stream,err);else process.nextTick(emitCloseLegacy,stream);if(!stream.destroyed)stream[kIsDestroyed]=!0}module2.exports={construct,destroyer,destroy,undestroy,errorOrDestroy}});var require_legacy=__commonJS((exports2,module2)=>{var{ArrayIsArray,ObjectSetPrototypeOf}=require_primordials(),{EventEmitter:EE}=require(\"events\");function Stream(opts){EE.call(this,opts)}ObjectSetPrototypeOf(Stream.prototype,EE.prototype);ObjectSetPrototypeOf(Stream,EE);Stream.prototype.pipe=function(dest,options){let source=this;function ondata(chunk){if(dest.writable&&dest.write(chunk)===!1&&source.pause)source.pause()}source.on(\"data\",ondata);function ondrain(){if(source.readable&&source.resume)source.resume()}if(dest.on(\"drain\",ondrain),!dest._isStdio&&(!options||options.end!==!1))source.on(\"end\",onend),source.on(\"close\",onclose);let didOnEnd=!1;function onend(){if(didOnEnd)return;didOnEnd=!0,dest.end()}function onclose(){if(didOnEnd)return;if(didOnEnd=!0,typeof dest.destroy===\"function\")dest.destroy()}function onerror(er){if(cleanup(),EE.listenerCount(this,\"error\")===0)this.emit(\"error\",er)}prependListener(source,\"error\",onerror),prependListener(dest,\"error\",onerror);function cleanup(){source.removeListener(\"data\",ondata),dest.removeListener(\"drain\",ondrain),source.removeListener(\"end\",onend),source.removeListener(\"close\",onclose),source.removeListener(\"error\",onerror),dest.removeListener(\"error\",onerror),source.removeListener(\"end\",cleanup),source.removeListener(\"close\",cleanup),dest.removeListener(\"close\",cleanup)}return source.on(\"end\",cleanup),source.on(\"close\",cleanup),dest.on(\"close\",cleanup),dest.emit(\"pipe\",source),dest};function prependListener(emitter,event,fn){if(typeof emitter.prependListener===\"function\")return emitter.prependListener(event,fn);if(!emitter._events||!emitter._events[event])emitter.on(event,fn);else if(ArrayIsArray(emitter._events[event]))emitter._events[event].unshift(fn);else emitter._events[event]=[fn,emitter._events[event]]}module2.exports={Stream,prependListener}});var require_add_abort_signal=__commonJS((exports2,module2)=>{var{SymbolDispose}=require_primordials(),{AbortError,codes}=require_errors(),{isNodeStream,isWebStream,kControllerErrorFunction}=require_utils(),eos=require_end_of_stream(),{ERR_INVALID_ARG_TYPE}=codes,addAbortListener,validateAbortSignal=(signal,name)=>{if(typeof signal!==\"object\"||!(\"aborted\"in signal))throw new ERR_INVALID_ARG_TYPE(name,\"AbortSignal\",signal)};module2.exports.addAbortSignal=function(signal,stream){if(validateAbortSignal(signal,\"signal\"),!isNodeStream(stream)&&!isWebStream(stream))throw new ERR_INVALID_ARG_TYPE(\"stream\",[\"ReadableStream\",\"WritableStream\",\"Stream\"],stream);return module2.exports.addAbortSignalNoValidate(signal,stream)};module2.exports.addAbortSignalNoValidate=function(signal,stream){if(typeof signal!==\"object\"||!(\"aborted\"in signal))return stream;let onAbort=isNodeStream(stream)?()=>{stream.destroy(new AbortError(void 0,{cause:signal.reason}))}:()=>{stream[kControllerErrorFunction](new AbortError(void 0,{cause:signal.reason}))};if(signal.aborted)onAbort();else{addAbortListener=addAbortListener||require_util().addAbortListener;let disposable=addAbortListener(signal,onAbort);eos(stream,disposable[SymbolDispose])}return stream}});var require_buffer_list=__commonJS((exports2,module2)=>{var{StringPrototypeSlice,SymbolIterator,TypedArrayPrototypeSet,Uint8Array:Uint8Array2}=require_primordials(),{Buffer}=require(\"buffer\"),{inspect}=require_util();module2.exports=class{constructor(){this.head=null,this.tail=null,this.length=0}push(v){let entry={data:v,next:null};if(this.length>0)this.tail.next=entry;else this.head=entry;this.tail=entry,++this.length}unshift(v){let entry={data:v,next:this.head};if(this.length===0)this.tail=entry;this.head=entry,++this.length}shift(){if(this.length===0)return;let ret=this.head.data;if(this.length===1)this.head=this.tail=null;else this.head=this.head.next;return--this.length,ret}clear(){this.head=this.tail=null,this.length=0}join(s){if(this.length===0)return\"\";let p=this.head,ret=\"\"+p.data;while((p=p.next)!==null)ret+=s+p.data;return ret}concat(n){if(this.length===0)return Buffer.alloc(0);let ret=Buffer.allocUnsafe(n>>>0),p=this.head,i=0;while(p)TypedArrayPrototypeSet(ret,p.data,i),i+=p.data.length,p=p.next;return ret}consume(n,hasStrings){let data=this.head.data;if(nstr.length)ret+=str,n-=str.length;else{if(n===str.length)if(ret+=str,++c,p.next)this.head=p.next;else this.head=this.tail=null;else ret+=StringPrototypeSlice(str,0,n),this.head=p,p.data=StringPrototypeSlice(str,n);break}++c}while((p=p.next)!==null);return this.length-=c,ret}_getBuffer(n){let ret=Buffer.allocUnsafe(n),retLen=n,p=this.head,c=0;do{let buf=p.data;if(n>buf.length)TypedArrayPrototypeSet(ret,buf,retLen-n),n-=buf.length;else{if(n===buf.length)if(TypedArrayPrototypeSet(ret,buf,retLen-n),++c,p.next)this.head=p.next;else this.head=this.tail=null;else TypedArrayPrototypeSet(ret,new Uint8Array2(buf.buffer,buf.byteOffset,n),retLen-n),this.head=p,p.data=buf.slice(n);break}++c}while((p=p.next)!==null);return this.length-=c,ret}[Symbol.for(\"nodejs.util.inspect.custom\")](_,options){return inspect(this,{...options,depth:0,customInspect:!1})}}});var require_state=__commonJS((exports2,module2)=>{var{MathFloor,NumberIsInteger}=require_primordials(),{validateInteger}=require_validators(),{ERR_INVALID_ARG_VALUE}=require_errors().codes,defaultHighWaterMarkBytes=16384,defaultHighWaterMarkObjectMode=16;function highWaterMarkFrom(options,isDuplex,duplexKey){return options.highWaterMark!=null?options.highWaterMark:isDuplex?options[duplexKey]:null}function getDefaultHighWaterMark(objectMode){return objectMode?defaultHighWaterMarkObjectMode:defaultHighWaterMarkBytes}function setDefaultHighWaterMark(objectMode,value){if(validateInteger(value,\"value\",0),objectMode)defaultHighWaterMarkObjectMode=value;else defaultHighWaterMarkBytes=value}function getHighWaterMark(state,options,duplexKey,isDuplex){let hwm=highWaterMarkFrom(options,isDuplex,duplexKey);if(hwm!=null){if(!NumberIsInteger(hwm)||hwm<0){let name=isDuplex?`options.${duplexKey}`:\"options.highWaterMark\";throw new ERR_INVALID_ARG_VALUE(name,hwm)}return MathFloor(hwm)}return getDefaultHighWaterMark(state.objectMode)}module2.exports={getHighWaterMark,getDefaultHighWaterMark,setDefaultHighWaterMark}});var require_safe_buffer=__commonJS((exports2,module2)=>{/*! safe-buffer. MIT License. Feross Aboukhadijeh */var buffer=require(\"buffer\"),Buffer=buffer.Buffer;function copyProps(src,dst){for(var key in src)dst[key]=src[key]}if(Buffer.from&&Buffer.alloc&&Buffer.allocUnsafe&&Buffer.allocUnsafeSlow)module2.exports=buffer;else copyProps(buffer,exports2),exports2.Buffer=SafeBuffer;function SafeBuffer(arg,encodingOrOffset,length){return Buffer(arg,encodingOrOffset,length)}SafeBuffer.prototype=Object.create(Buffer.prototype);copyProps(Buffer,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg===\"number\")throw TypeError(\"Argument must not be a number\");return Buffer(arg,encodingOrOffset,length)};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!==\"number\")throw TypeError(\"Argument must be a number\");var buf=Buffer(size);if(fill!==void 0)if(typeof encoding===\"string\")buf.fill(fill,encoding);else buf.fill(fill);else buf.fill(0);return buf};SafeBuffer.allocUnsafe=function(size){if(typeof size!==\"number\")throw TypeError(\"Argument must be a number\");return Buffer(size)};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!==\"number\")throw TypeError(\"Argument must be a number\");return buffer.SlowBuffer(size)}});var require_string_decoder=__commonJS((exports2)=>{var Buffer=require_safe_buffer().Buffer,isEncoding=Buffer.isEncoding||function(encoding){switch(encoding=\"\"+encoding,encoding&&encoding.toLowerCase()){case\"hex\":case\"utf8\":case\"utf-8\":case\"ascii\":case\"binary\":case\"base64\":case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":case\"raw\":return!0;default:return!1}};function _normalizeEncoding(enc){if(!enc)return\"utf8\";var retried;while(!0)switch(enc){case\"utf8\":case\"utf-8\":return\"utf8\";case\"ucs2\":case\"ucs-2\":case\"utf16le\":case\"utf-16le\":return\"utf16le\";case\"latin1\":case\"binary\":return\"latin1\";case\"base64\":case\"ascii\":case\"hex\":return enc;default:if(retried)return;enc=(\"\"+enc).toLowerCase(),retried=!0}}function normalizeEncoding(enc){var nenc=_normalizeEncoding(enc);if(typeof nenc!==\"string\"&&(Buffer.isEncoding===isEncoding||!isEncoding(enc)))throw Error(\"Unknown encoding: \"+enc);return nenc||enc}exports2.StringDecoder=StringDecoder;function StringDecoder(encoding){this.encoding=normalizeEncoding(encoding);var nb;switch(this.encoding){case\"utf16le\":this.text=utf16Text,this.end=utf16End,nb=4;break;case\"utf8\":this.fillLast=utf8FillLast,nb=4;break;case\"base64\":this.text=base64Text,this.end=base64End,nb=3;break;default:this.write=simpleWrite,this.end=simpleEnd;return}this.lastNeed=0,this.lastTotal=0,this.lastChar=Buffer.allocUnsafe(nb)}StringDecoder.prototype.write=function(buf){if(buf.length===0)return\"\";var r,i;if(this.lastNeed){if(r=this.fillLast(buf),r===void 0)return\"\";i=this.lastNeed,this.lastNeed=0}else i=0;if(i>5===6)return 2;else if(byte>>4===14)return 3;else if(byte>>3===30)return 4;return byte>>6===2?-1:-2}function utf8CheckIncomplete(self,buf,i){var j=buf.length-1;if(j=0){if(nb>0)self.lastNeed=nb-1;return nb}if(--j=0){if(nb>0)self.lastNeed=nb-2;return nb}if(--j=0){if(nb>0)if(nb===2)nb=0;else self.lastNeed=nb-3;return nb}return 0}function utf8CheckExtraBytes(self,buf,p){if((buf[0]&192)!==128)return self.lastNeed=0,\"ļæ½\";if(self.lastNeed>1&&buf.length>1){if((buf[1]&192)!==128)return self.lastNeed=1,\"ļæ½\";if(self.lastNeed>2&&buf.length>2){if((buf[2]&192)!==128)return self.lastNeed=2,\"ļæ½\"}}}function utf8FillLast(buf){var p=this.lastTotal-this.lastNeed,r=utf8CheckExtraBytes(this,buf,p);if(r!==void 0)return r;if(this.lastNeed<=buf.length)return buf.copy(this.lastChar,p,0,this.lastNeed),this.lastChar.toString(this.encoding,0,this.lastTotal);buf.copy(this.lastChar,p,0,buf.length),this.lastNeed-=buf.length}function utf8Text(buf,i){var total=utf8CheckIncomplete(this,buf,i);if(!this.lastNeed)return buf.toString(\"utf8\",i);this.lastTotal=total;var end=buf.length-(total-this.lastNeed);return buf.copy(this.lastChar,0,end),buf.toString(\"utf8\",i,end)}function utf8End(buf){var r=buf&&buf.length?this.write(buf):\"\";if(this.lastNeed)return r+\"ļæ½\";return r}function utf16Text(buf,i){if((buf.length-i)%2===0){var r=buf.toString(\"utf16le\",i);if(r){var c=r.charCodeAt(r.length-1);if(c>=55296&&c<=56319)return this.lastNeed=2,this.lastTotal=4,this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1],r.slice(0,-1)}return r}return this.lastNeed=1,this.lastTotal=2,this.lastChar[0]=buf[buf.length-1],buf.toString(\"utf16le\",i,buf.length-1)}function utf16End(buf){var r=buf&&buf.length?this.write(buf):\"\";if(this.lastNeed){var end=this.lastTotal-this.lastNeed;return r+this.lastChar.toString(\"utf16le\",0,end)}return r}function base64Text(buf,i){var n=(buf.length-i)%3;if(n===0)return buf.toString(\"base64\",i);if(this.lastNeed=3-n,this.lastTotal=3,n===1)this.lastChar[0]=buf[buf.length-1];else this.lastChar[0]=buf[buf.length-2],this.lastChar[1]=buf[buf.length-1];return buf.toString(\"base64\",i,buf.length-n)}function base64End(buf){var r=buf&&buf.length?this.write(buf):\"\";if(this.lastNeed)return r+this.lastChar.toString(\"base64\",0,3-this.lastNeed);return r}function simpleWrite(buf){return buf.toString(this.encoding)}function simpleEnd(buf){return buf&&buf.length?this.write(buf):\"\"}});var require_from=__commonJS((exports2,module2)=>{var process=require_process(),{PromisePrototypeThen,SymbolAsyncIterator,SymbolIterator}=require_primordials(),{Buffer}=require(\"buffer\"),{ERR_INVALID_ARG_TYPE,ERR_STREAM_NULL_VALUES}=require_errors().codes;function from(Readable,iterable,opts){let iterator;if(typeof iterable===\"string\"||iterable instanceof Buffer)return new Readable({objectMode:!0,...opts,read(){this.push(iterable),this.push(null)}});let isAsync;if(iterable&&iterable[SymbolAsyncIterator])isAsync=!0,iterator=iterable[SymbolAsyncIterator]();else if(iterable&&iterable[SymbolIterator])isAsync=!1,iterator=iterable[SymbolIterator]();else throw new ERR_INVALID_ARG_TYPE(\"iterable\",[\"Iterable\"],iterable);let readable=new Readable({objectMode:!0,highWaterMark:1,...opts}),reading=!1;readable._read=function(){if(!reading)reading=!0,next()},readable._destroy=function(error,cb){PromisePrototypeThen(close(error),()=>process.nextTick(cb,error),(e)=>process.nextTick(cb,e||error))};async function close(error){let hadError=error!==void 0&&error!==null,hasThrow=typeof iterator.throw===\"function\";if(hadError&&hasThrow){let{value,done}=await iterator.throw(error);if(await value,done)return}if(typeof iterator.return===\"function\"){let{value}=await iterator.return();await value}}async function next(){for(;;){try{let{value,done}=isAsync?await iterator.next():iterator.next();if(done)readable.push(null);else{let res=value&&typeof value.then===\"function\"?await value:value;if(res===null)throw reading=!1,new ERR_STREAM_NULL_VALUES;else if(readable.push(res))continue;else reading=!1}}catch(err){readable.destroy(err)}break}}return readable}module2.exports=from});var require_readable=__commonJS((exports2,module2)=>{var process=require_process(),{ArrayPrototypeIndexOf,NumberIsInteger,NumberIsNaN,NumberParseInt,ObjectDefineProperties,ObjectKeys,ObjectSetPrototypeOf,Promise:Promise2,SafeSet,SymbolAsyncDispose,SymbolAsyncIterator,Symbol:Symbol2}=require_primordials();module2.exports=Readable;Readable.ReadableState=ReadableState;var{EventEmitter:EE}=require(\"events\"),{Stream,prependListener}=require_legacy(),{Buffer}=require(\"buffer\"),{addAbortSignal}=require_add_abort_signal(),eos=require_end_of_stream(),debug=require_util().debuglog(\"stream\",(fn)=>{debug=fn}),BufferList=require_buffer_list(),destroyImpl=require_destroy(),{getHighWaterMark,getDefaultHighWaterMark}=require_state(),{aggregateTwoErrors,codes:{ERR_INVALID_ARG_TYPE,ERR_METHOD_NOT_IMPLEMENTED,ERR_OUT_OF_RANGE,ERR_STREAM_PUSH_AFTER_EOF,ERR_STREAM_UNSHIFT_AFTER_END_EVENT},AbortError}=require_errors(),{validateObject}=require_validators(),kPaused=Symbol2(\"kPaused\"),{StringDecoder}=require_string_decoder(),from=require_from();ObjectSetPrototypeOf(Readable.prototype,Stream.prototype);ObjectSetPrototypeOf(Readable,Stream);var nop=()=>{},{errorOrDestroy}=destroyImpl,kObjectMode=1,kEnded=2,kEndEmitted=4,kReading=8,kConstructed=16,kSync=32,kNeedReadable=64,kEmittedReadable=128,kReadableListening=256,kResumeScheduled=512,kErrorEmitted=1024,kEmitClose=2048,kAutoDestroy=4096,kDestroyed=8192,kClosed=16384,kCloseEmitted=32768,kMultiAwaitDrain=65536,kReadingMore=131072,kDataEmitted=262144;function makeBitMapDescriptor(bit){return{enumerable:!1,get(){return(this.state&bit)!==0},set(value){if(value)this.state|=bit;else this.state&=~bit}}}ObjectDefineProperties(ReadableState.prototype,{objectMode:makeBitMapDescriptor(kObjectMode),ended:makeBitMapDescriptor(kEnded),endEmitted:makeBitMapDescriptor(kEndEmitted),reading:makeBitMapDescriptor(kReading),constructed:makeBitMapDescriptor(kConstructed),sync:makeBitMapDescriptor(kSync),needReadable:makeBitMapDescriptor(kNeedReadable),emittedReadable:makeBitMapDescriptor(kEmittedReadable),readableListening:makeBitMapDescriptor(kReadableListening),resumeScheduled:makeBitMapDescriptor(kResumeScheduled),errorEmitted:makeBitMapDescriptor(kErrorEmitted),emitClose:makeBitMapDescriptor(kEmitClose),autoDestroy:makeBitMapDescriptor(kAutoDestroy),destroyed:makeBitMapDescriptor(kDestroyed),closed:makeBitMapDescriptor(kClosed),closeEmitted:makeBitMapDescriptor(kCloseEmitted),multiAwaitDrain:makeBitMapDescriptor(kMultiAwaitDrain),readingMore:makeBitMapDescriptor(kReadingMore),dataEmitted:makeBitMapDescriptor(kDataEmitted)});function ReadableState(options,stream,isDuplex){if(typeof isDuplex!==\"boolean\")isDuplex=stream instanceof require_duplex();if(this.state=kEmitClose|kAutoDestroy|kConstructed|kSync,options&&options.objectMode)this.state|=kObjectMode;if(isDuplex&&options&&options.readableObjectMode)this.state|=kObjectMode;if(this.highWaterMark=options?getHighWaterMark(this,options,\"readableHighWaterMark\",isDuplex):getDefaultHighWaterMark(!1),this.buffer=new BufferList,this.length=0,this.pipes=[],this.flowing=null,this[kPaused]=null,options&&options.emitClose===!1)this.state&=~kEmitClose;if(options&&options.autoDestroy===!1)this.state&=~kAutoDestroy;if(this.errored=null,this.defaultEncoding=options&&options.defaultEncoding||\"utf8\",this.awaitDrainWriters=null,this.decoder=null,this.encoding=null,options&&options.encoding)this.decoder=new StringDecoder(options.encoding),this.encoding=options.encoding}function Readable(options){if(!(this instanceof Readable))return new Readable(options);let isDuplex=this instanceof require_duplex();if(this._readableState=new ReadableState(options,this,isDuplex),options){if(typeof options.read===\"function\")this._read=options.read;if(typeof options.destroy===\"function\")this._destroy=options.destroy;if(typeof options.construct===\"function\")this._construct=options.construct;if(options.signal&&!isDuplex)addAbortSignal(options.signal,this)}Stream.call(this,options),destroyImpl.construct(this,()=>{if(this._readableState.needReadable)maybeReadMore(this,this._readableState)})}Readable.prototype.destroy=destroyImpl.destroy;Readable.prototype._undestroy=destroyImpl.undestroy;Readable.prototype._destroy=function(err,cb){cb(err)};Readable.prototype[EE.captureRejectionSymbol]=function(err){this.destroy(err)};Readable.prototype[SymbolAsyncDispose]=function(){let error;if(!this.destroyed)error=this.readableEnded?null:new AbortError,this.destroy(error);return new Promise2((resolve,reject)=>eos(this,(err)=>err&&err!==error?reject(err):resolve(null)))};Readable.prototype.push=function(chunk,encoding){return readableAddChunk(this,chunk,encoding,!1)};Readable.prototype.unshift=function(chunk,encoding){return readableAddChunk(this,chunk,encoding,!0)};function readableAddChunk(stream,chunk,encoding,addToFront){debug(\"readableAddChunk\",chunk);let state=stream._readableState,err;if((state.state&kObjectMode)===0){if(typeof chunk===\"string\"){if(encoding=encoding||state.defaultEncoding,state.encoding!==encoding)if(addToFront&&state.encoding)chunk=Buffer.from(chunk,encoding).toString(state.encoding);else chunk=Buffer.from(chunk,encoding),encoding=\"\"}else if(chunk instanceof Buffer)encoding=\"\";else if(Stream._isUint8Array(chunk))chunk=Stream._uint8ArrayToBuffer(chunk),encoding=\"\";else if(chunk!=null)err=new ERR_INVALID_ARG_TYPE(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],chunk)}if(err)errorOrDestroy(stream,err);else if(chunk===null)state.state&=~kReading,onEofChunk(stream,state);else if((state.state&kObjectMode)!==0||chunk&&chunk.length>0)if(addToFront)if((state.state&kEndEmitted)!==0)errorOrDestroy(stream,new ERR_STREAM_UNSHIFT_AFTER_END_EVENT);else if(state.destroyed||state.errored)return!1;else addChunk(stream,state,chunk,!0);else if(state.ended)errorOrDestroy(stream,new ERR_STREAM_PUSH_AFTER_EOF);else if(state.destroyed||state.errored)return!1;else if(state.state&=~kReading,state.decoder&&!encoding)if(chunk=state.decoder.write(chunk),state.objectMode||chunk.length!==0)addChunk(stream,state,chunk,!1);else maybeReadMore(stream,state);else addChunk(stream,state,chunk,!1);else if(!addToFront)state.state&=~kReading,maybeReadMore(stream,state);return!state.ended&&(state.length0){if((state.state&kMultiAwaitDrain)!==0)state.awaitDrainWriters.clear();else state.awaitDrainWriters=null;state.dataEmitted=!0,stream.emit(\"data\",chunk)}else{if(state.length+=state.objectMode?1:chunk.length,addToFront)state.buffer.unshift(chunk);else state.buffer.push(chunk);if((state.state&kNeedReadable)!==0)emitReadable(stream)}maybeReadMore(stream,state)}Readable.prototype.isPaused=function(){let state=this._readableState;return state[kPaused]===!0||state.flowing===!1};Readable.prototype.setEncoding=function(enc){let decoder=new StringDecoder(enc);this._readableState.decoder=decoder,this._readableState.encoding=this._readableState.decoder.encoding;let buffer=this._readableState.buffer,content=\"\";for(let data of buffer)content+=decoder.write(data);if(buffer.clear(),content!==\"\")buffer.push(content);return this._readableState.length=content.length,this};var MAX_HWM=1073741824;function computeNewHighWaterMark(n){if(n>MAX_HWM)throw new ERR_OUT_OF_RANGE(\"size\",\"<= 1GiB\",n);else n--,n|=n>>>1,n|=n>>>2,n|=n>>>4,n|=n>>>8,n|=n>>>16,n++;return n}function howMuchToRead(n,state){if(n<=0||state.length===0&&state.ended)return 0;if((state.state&kObjectMode)!==0)return 1;if(NumberIsNaN(n)){if(state.flowing&&state.length)return state.buffer.first().length;return state.length}if(n<=state.length)return n;return state.ended?state.length:0}Readable.prototype.read=function(n){if(debug(\"read\",n),n===void 0)n=NaN;else if(!NumberIsInteger(n))n=NumberParseInt(n,10);let state=this._readableState,nOrig=n;if(n>state.highWaterMark)state.highWaterMark=computeNewHighWaterMark(n);if(n!==0)state.state&=~kEmittedReadable;if(n===0&&state.needReadable&&((state.highWaterMark!==0?state.length>=state.highWaterMark:state.length>0)||state.ended)){if(debug(\"read: emitReadable\",state.length,state.ended),state.length===0&&state.ended)endReadable(this);else emitReadable(this);return null}if(n=howMuchToRead(n,state),n===0&&state.ended){if(state.length===0)endReadable(this);return null}let doRead=(state.state&kNeedReadable)!==0;if(debug(\"need readable\",doRead),state.length===0||state.length-n0)ret=fromList(n,state);else ret=null;if(ret===null)state.needReadable=state.length<=state.highWaterMark,n=0;else if(state.length-=n,state.multiAwaitDrain)state.awaitDrainWriters.clear();else state.awaitDrainWriters=null;if(state.length===0){if(!state.ended)state.needReadable=!0;if(nOrig!==n&&state.ended)endReadable(this)}if(ret!==null&&!state.errorEmitted&&!state.closeEmitted)state.dataEmitted=!0,this.emit(\"data\",ret);return ret};function onEofChunk(stream,state){if(debug(\"onEofChunk\"),state.ended)return;if(state.decoder){let chunk=state.decoder.end();if(chunk&&chunk.length)state.buffer.push(chunk),state.length+=state.objectMode?1:chunk.length}if(state.ended=!0,state.sync)emitReadable(stream);else state.needReadable=!1,state.emittedReadable=!0,emitReadable_(stream)}function emitReadable(stream){let state=stream._readableState;if(debug(\"emitReadable\",state.needReadable,state.emittedReadable),state.needReadable=!1,!state.emittedReadable)debug(\"emitReadable\",state.flowing),state.emittedReadable=!0,process.nextTick(emitReadable_,stream)}function emitReadable_(stream){let state=stream._readableState;if(debug(\"emitReadable_\",state.destroyed,state.length,state.ended),!state.destroyed&&!state.errored&&(state.length||state.ended))stream.emit(\"readable\"),state.emittedReadable=!1;state.needReadable=!state.flowing&&!state.ended&&state.length<=state.highWaterMark,flow(stream)}function maybeReadMore(stream,state){if(!state.readingMore&&state.constructed)state.readingMore=!0,process.nextTick(maybeReadMore_,stream,state)}function maybeReadMore_(stream,state){while(!state.reading&&!state.ended&&(state.length1&&state.pipes.includes(dest))debug(\"false write response, pause\",state.awaitDrainWriters.size),state.awaitDrainWriters.add(dest);src.pause()}if(!ondrain)ondrain=pipeOnDrain(src,dest),dest.on(\"drain\",ondrain)}src.on(\"data\",ondata);function ondata(chunk){debug(\"ondata\");let ret=dest.write(chunk);if(debug(\"dest.write\",ret),ret===!1)pause()}function onerror(er){if(debug(\"onerror\",er),unpipe(),dest.removeListener(\"error\",onerror),dest.listenerCount(\"error\")===0){let s=dest._writableState||dest._readableState;if(s&&!s.errorEmitted)errorOrDestroy(dest,er);else dest.emit(\"error\",er)}}prependListener(dest,\"error\",onerror);function onclose(){dest.removeListener(\"finish\",onfinish),unpipe()}dest.once(\"close\",onclose);function onfinish(){debug(\"onfinish\"),dest.removeListener(\"close\",onclose),unpipe()}dest.once(\"finish\",onfinish);function unpipe(){debug(\"unpipe\"),src.unpipe(dest)}if(dest.emit(\"pipe\",src),dest.writableNeedDrain===!0)pause();else if(!state.flowing)debug(\"pipe resume\"),src.resume();return dest};function pipeOnDrain(src,dest){return function(){let state=src._readableState;if(state.awaitDrainWriters===dest)debug(\"pipeOnDrain\",1),state.awaitDrainWriters=null;else if(state.multiAwaitDrain)debug(\"pipeOnDrain\",state.awaitDrainWriters.size),state.awaitDrainWriters.delete(dest);if((!state.awaitDrainWriters||state.awaitDrainWriters.size===0)&&src.listenerCount(\"data\"))src.resume()}}Readable.prototype.unpipe=function(dest){let state=this._readableState,unpipeInfo={hasUnpiped:!1};if(state.pipes.length===0)return this;if(!dest){let dests=state.pipes;state.pipes=[],this.pause();for(let i=0;i0,state.flowing!==!1)this.resume()}else if(ev===\"readable\"){if(!state.endEmitted&&!state.readableListening){if(state.readableListening=state.needReadable=!0,state.flowing=!1,state.emittedReadable=!1,debug(\"on readable\",state.length,state.reading),state.length)emitReadable(this);else if(!state.reading)process.nextTick(nReadingNextTick,this)}}return res};Readable.prototype.addListener=Readable.prototype.on;Readable.prototype.removeListener=function(ev,fn){let res=Stream.prototype.removeListener.call(this,ev,fn);if(ev===\"readable\")process.nextTick(updateReadableListening,this);return res};Readable.prototype.off=Readable.prototype.removeListener;Readable.prototype.removeAllListeners=function(ev){let res=Stream.prototype.removeAllListeners.apply(this,arguments);if(ev===\"readable\"||ev===void 0)process.nextTick(updateReadableListening,this);return res};function updateReadableListening(self){let state=self._readableState;if(state.readableListening=self.listenerCount(\"readable\")>0,state.resumeScheduled&&state[kPaused]===!1)state.flowing=!0;else if(self.listenerCount(\"data\")>0)self.resume();else if(!state.readableListening)state.flowing=null}function nReadingNextTick(self){debug(\"readable nexttick read 0\"),self.read(0)}Readable.prototype.resume=function(){let state=this._readableState;if(!state.flowing)debug(\"resume\"),state.flowing=!state.readableListening,resume(this,state);return state[kPaused]=!1,this};function resume(stream,state){if(!state.resumeScheduled)state.resumeScheduled=!0,process.nextTick(resume_,stream,state)}function resume_(stream,state){if(debug(\"resume\",state.reading),!state.reading)stream.read(0);if(state.resumeScheduled=!1,stream.emit(\"resume\"),flow(stream),state.flowing&&!state.reading)stream.read(0)}Readable.prototype.pause=function(){if(debug(\"call pause flowing=%j\",this._readableState.flowing),this._readableState.flowing!==!1)debug(\"pause\"),this._readableState.flowing=!1,this.emit(\"pause\");return this._readableState[kPaused]=!0,this};function flow(stream){let state=stream._readableState;debug(\"flow\",state.flowing);while(state.flowing&&stream.read()!==null);}Readable.prototype.wrap=function(stream){let paused=!1;stream.on(\"data\",(chunk)=>{if(!this.push(chunk)&&stream.pause)paused=!0,stream.pause()}),stream.on(\"end\",()=>{this.push(null)}),stream.on(\"error\",(err)=>{errorOrDestroy(this,err)}),stream.on(\"close\",()=>{this.destroy()}),stream.on(\"destroy\",()=>{this.destroy()}),this._read=()=>{if(paused&&stream.resume)paused=!1,stream.resume()};let streamKeys=ObjectKeys(stream);for(let j=1;j{error=err?aggregateTwoErrors(error,err):null,callback(),callback=nop});try{while(!0){let chunk=stream.destroyed?null:stream.read();if(chunk!==null)yield chunk;else if(error)throw error;else if(error===null)return;else await new Promise2(next)}}catch(err){throw error=aggregateTwoErrors(error,err),error}finally{if((error||(options===null||options===void 0?void 0:options.destroyOnReturn)!==!1)&&(error===void 0||stream._readableState.autoDestroy))destroyImpl.destroyer(stream,null);else stream.off(\"readable\",next),cleanup()}}ObjectDefineProperties(Readable.prototype,{readable:{__proto__:null,get(){let r=this._readableState;return!!r&&r.readable!==!1&&!r.destroyed&&!r.errorEmitted&&!r.endEmitted},set(val){if(this._readableState)this._readableState.readable=!!val}},readableDidRead:{__proto__:null,enumerable:!1,get:function(){return this._readableState.dataEmitted}},readableAborted:{__proto__:null,enumerable:!1,get:function(){return!!(this._readableState.readable!==!1&&(this._readableState.destroyed||this._readableState.errored)&&!this._readableState.endEmitted)}},readableHighWaterMark:{__proto__:null,enumerable:!1,get:function(){return this._readableState.highWaterMark}},readableBuffer:{__proto__:null,enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}},readableFlowing:{__proto__:null,enumerable:!1,get:function(){return this._readableState.flowing},set:function(state){if(this._readableState)this._readableState.flowing=state}},readableLength:{__proto__:null,enumerable:!1,get(){return this._readableState.length}},readableObjectMode:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.objectMode:!1}},readableEncoding:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.encoding:null}},errored:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.errored:null}},closed:{__proto__:null,get(){return this._readableState?this._readableState.closed:!1}},destroyed:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.destroyed:!1},set(value){if(!this._readableState)return;this._readableState.destroyed=value}},readableEnded:{__proto__:null,enumerable:!1,get(){return this._readableState?this._readableState.endEmitted:!1}}});ObjectDefineProperties(ReadableState.prototype,{pipesCount:{__proto__:null,get(){return this.pipes.length}},paused:{__proto__:null,get(){return this[kPaused]!==!1},set(value){this[kPaused]=!!value}}});Readable._fromList=fromList;function fromList(n,state){if(state.length===0)return null;let ret;if(state.objectMode)ret=state.buffer.shift();else if(!n||n>=state.length){if(state.decoder)ret=state.buffer.join(\"\");else if(state.buffer.length===1)ret=state.buffer.first();else ret=state.buffer.concat(state.length);state.buffer.clear()}else ret=state.buffer.consume(n,state.decoder);return ret}function endReadable(stream){let state=stream._readableState;if(debug(\"endReadable\",state.endEmitted),!state.endEmitted)state.ended=!0,process.nextTick(endReadableNT,state,stream)}function endReadableNT(state,stream){if(debug(\"endReadableNT\",state.endEmitted,state.length),!state.errored&&!state.closeEmitted&&!state.endEmitted&&state.length===0){if(state.endEmitted=!0,stream.emit(\"end\"),stream.writable&&stream.allowHalfOpen===!1)process.nextTick(endWritableNT,stream);else if(state.autoDestroy){let wState=stream._writableState;if(!wState||wState.autoDestroy&&(wState.finished||wState.writable===!1))stream.destroy()}}}function endWritableNT(stream){if(stream.writable&&!stream.writableEnded&&!stream.destroyed)stream.end()}Readable.from=function(iterable,opts){return from(Readable,iterable,opts)};var webStreamsAdapters;function lazyWebStreams(){if(webStreamsAdapters===void 0)webStreamsAdapters={};return webStreamsAdapters}Readable.fromWeb=function(readableStream,options){return lazyWebStreams().newStreamReadableFromReadableStream(readableStream,options)};Readable.toWeb=function(streamReadable,options){return lazyWebStreams().newReadableStreamFromStreamReadable(streamReadable,options)};Readable.wrap=function(src,options){var _ref,_src$readableObjectMo;return new Readable({objectMode:(_ref=(_src$readableObjectMo=src.readableObjectMode)!==null&&_src$readableObjectMo!==void 0?_src$readableObjectMo:src.objectMode)!==null&&_ref!==void 0?_ref:!0,...options,destroy(err,callback){destroyImpl.destroyer(src,err),callback(err)}}).wrap(src)}});var require_writable=__commonJS((exports2,module2)=>{var process=require_process(),{ArrayPrototypeSlice,Error:Error2,FunctionPrototypeSymbolHasInstance,ObjectDefineProperty,ObjectDefineProperties,ObjectSetPrototypeOf,StringPrototypeToLowerCase,Symbol:Symbol2,SymbolHasInstance}=require_primordials();module2.exports=Writable;Writable.WritableState=WritableState;var{EventEmitter:EE}=require(\"events\"),Stream=require_legacy().Stream,{Buffer}=require(\"buffer\"),destroyImpl=require_destroy(),{addAbortSignal}=require_add_abort_signal(),{getHighWaterMark,getDefaultHighWaterMark}=require_state(),{ERR_INVALID_ARG_TYPE,ERR_METHOD_NOT_IMPLEMENTED,ERR_MULTIPLE_CALLBACK,ERR_STREAM_CANNOT_PIPE,ERR_STREAM_DESTROYED,ERR_STREAM_ALREADY_FINISHED,ERR_STREAM_NULL_VALUES,ERR_STREAM_WRITE_AFTER_END,ERR_UNKNOWN_ENCODING}=require_errors().codes,{errorOrDestroy}=destroyImpl;ObjectSetPrototypeOf(Writable.prototype,Stream.prototype);ObjectSetPrototypeOf(Writable,Stream);function nop(){}var kOnFinished=Symbol2(\"kOnFinished\");function WritableState(options,stream,isDuplex){if(typeof isDuplex!==\"boolean\")isDuplex=stream instanceof require_duplex();if(this.objectMode=!!(options&&options.objectMode),isDuplex)this.objectMode=this.objectMode||!!(options&&options.writableObjectMode);this.highWaterMark=options?getHighWaterMark(this,options,\"writableHighWaterMark\",isDuplex):getDefaultHighWaterMark(!1),this.finalCalled=!1,this.needDrain=!1,this.ending=!1,this.ended=!1,this.finished=!1,this.destroyed=!1;let noDecode=!!(options&&options.decodeStrings===!1);this.decodeStrings=!noDecode,this.defaultEncoding=options&&options.defaultEncoding||\"utf8\",this.length=0,this.writing=!1,this.corked=0,this.sync=!0,this.bufferProcessing=!1,this.onwrite=onwrite.bind(void 0,stream),this.writecb=null,this.writelen=0,this.afterWriteTickInfo=null,resetBuffer(this),this.pendingcb=0,this.constructed=!0,this.prefinished=!1,this.errorEmitted=!1,this.emitClose=!options||options.emitClose!==!1,this.autoDestroy=!options||options.autoDestroy!==!1,this.errored=null,this.closed=!1,this.closeEmitted=!1,this[kOnFinished]=[]}function resetBuffer(state){state.buffered=[],state.bufferedIndex=0,state.allBuffers=!0,state.allNoop=!0}WritableState.prototype.getBuffer=function(){return ArrayPrototypeSlice(this.buffered,this.bufferedIndex)};ObjectDefineProperty(WritableState.prototype,\"bufferedRequestCount\",{__proto__:null,get(){return this.buffered.length-this.bufferedIndex}});function Writable(options){let isDuplex=this instanceof require_duplex();if(!isDuplex&&!FunctionPrototypeSymbolHasInstance(Writable,this))return new Writable(options);if(this._writableState=new WritableState(options,this,isDuplex),options){if(typeof options.write===\"function\")this._write=options.write;if(typeof options.writev===\"function\")this._writev=options.writev;if(typeof options.destroy===\"function\")this._destroy=options.destroy;if(typeof options.final===\"function\")this._final=options.final;if(typeof options.construct===\"function\")this._construct=options.construct;if(options.signal)addAbortSignal(options.signal,this)}Stream.call(this,options),destroyImpl.construct(this,()=>{let state=this._writableState;if(!state.writing)clearBuffer(this,state);finishMaybe(this,state)})}ObjectDefineProperty(Writable,SymbolHasInstance,{__proto__:null,value:function(object){if(FunctionPrototypeSymbolHasInstance(this,object))return!0;if(this!==Writable)return!1;return object&&object._writableState instanceof WritableState}});Writable.prototype.pipe=function(){errorOrDestroy(this,new ERR_STREAM_CANNOT_PIPE)};function _write(stream,chunk,encoding,cb){let state=stream._writableState;if(typeof encoding===\"function\")cb=encoding,encoding=state.defaultEncoding;else{if(!encoding)encoding=state.defaultEncoding;else if(encoding!==\"buffer\"&&!Buffer.isEncoding(encoding))throw new ERR_UNKNOWN_ENCODING(encoding);if(typeof cb!==\"function\")cb=nop}if(chunk===null)throw new ERR_STREAM_NULL_VALUES;else if(!state.objectMode)if(typeof chunk===\"string\"){if(state.decodeStrings!==!1)chunk=Buffer.from(chunk,encoding),encoding=\"buffer\"}else if(chunk instanceof Buffer)encoding=\"buffer\";else if(Stream._isUint8Array(chunk))chunk=Stream._uint8ArrayToBuffer(chunk),encoding=\"buffer\";else throw new ERR_INVALID_ARG_TYPE(\"chunk\",[\"string\",\"Buffer\",\"Uint8Array\"],chunk);let err;if(state.ending)err=new ERR_STREAM_WRITE_AFTER_END;else if(state.destroyed)err=new ERR_STREAM_DESTROYED(\"write\");if(err)return process.nextTick(cb,err),errorOrDestroy(stream,err,!0),err;return state.pendingcb++,writeOrBuffer(stream,state,chunk,encoding,cb)}Writable.prototype.write=function(chunk,encoding,cb){return _write(this,chunk,encoding,cb)===!0};Writable.prototype.cork=function(){this._writableState.corked++};Writable.prototype.uncork=function(){let state=this._writableState;if(state.corked){if(state.corked--,!state.writing)clearBuffer(this,state)}};Writable.prototype.setDefaultEncoding=function(encoding){if(typeof encoding===\"string\")encoding=StringPrototypeToLowerCase(encoding);if(!Buffer.isEncoding(encoding))throw new ERR_UNKNOWN_ENCODING(encoding);return this._writableState.defaultEncoding=encoding,this};function writeOrBuffer(stream,state,chunk,encoding,callback){let len=state.objectMode?1:chunk.length;state.length+=len;let ret=state.lengthstate.bufferedIndex)clearBuffer(stream,state);if(sync)if(state.afterWriteTickInfo!==null&&state.afterWriteTickInfo.cb===cb)state.afterWriteTickInfo.count++;else state.afterWriteTickInfo={count:1,cb,stream,state},process.nextTick(afterWriteTick,state.afterWriteTickInfo);else afterWrite(stream,state,1,cb)}}function afterWriteTick({stream,state,count,cb}){return state.afterWriteTickInfo=null,afterWrite(stream,state,count,cb)}function afterWrite(stream,state,count,cb){if(!state.ending&&!stream.destroyed&&state.length===0&&state.needDrain)state.needDrain=!1,stream.emit(\"drain\");while(count-- >0)state.pendingcb--,cb();if(state.destroyed)errorBuffer(state);finishMaybe(stream,state)}function errorBuffer(state){if(state.writing)return;for(let n=state.bufferedIndex;n1&&stream._writev){state.pendingcb-=bufferedLength-1;let callback=state.allNoop?nop:(err)=>{for(let n=i;n256)buffered.splice(0,i),state.bufferedIndex=0;else state.bufferedIndex=i}state.bufferProcessing=!1}Writable.prototype._write=function(chunk,encoding,cb){if(this._writev)this._writev([{chunk,encoding}],cb);else throw new ERR_METHOD_NOT_IMPLEMENTED(\"_write()\")};Writable.prototype._writev=null;Writable.prototype.end=function(chunk,encoding,cb){let state=this._writableState;if(typeof chunk===\"function\")cb=chunk,chunk=null,encoding=null;else if(typeof encoding===\"function\")cb=encoding,encoding=null;let err;if(chunk!==null&&chunk!==void 0){let ret=_write(this,chunk,encoding);if(ret instanceof Error2)err=ret}if(state.corked)state.corked=1,this.uncork();if(err);else if(!state.errored&&!state.ending)state.ending=!0,finishMaybe(this,state,!0),state.ended=!0;else if(state.finished)err=new ERR_STREAM_ALREADY_FINISHED(\"end\");else if(state.destroyed)err=new ERR_STREAM_DESTROYED(\"end\");if(typeof cb===\"function\")if(err||state.finished)process.nextTick(cb,err);else state[kOnFinished].push(cb);return this};function needFinish(state){return state.ending&&!state.destroyed&&state.constructed&&state.length===0&&!state.errored&&state.buffered.length===0&&!state.finished&&!state.writing&&!state.errorEmitted&&!state.closeEmitted}function callFinal(stream,state){let called=!1;function onFinish(err){if(called){errorOrDestroy(stream,err!==null&&err!==void 0?err:ERR_MULTIPLE_CALLBACK());return}if(called=!0,state.pendingcb--,err){let onfinishCallbacks=state[kOnFinished].splice(0);for(let i=0;i{if(needFinish(state2))finish(stream2,state2);else state2.pendingcb--},stream,state);else if(needFinish(state))state.pendingcb++,finish(stream,state)}}}function finish(stream,state){state.pendingcb--,state.finished=!0;let onfinishCallbacks=state[kOnFinished].splice(0);for(let i=0;i{var process=require_process(),bufferModule=require(\"buffer\"),{isReadable,isWritable,isIterable,isNodeStream,isReadableNodeStream,isWritableNodeStream,isDuplexNodeStream,isReadableStream,isWritableStream}=require_utils(),eos=require_end_of_stream(),{AbortError,codes:{ERR_INVALID_ARG_TYPE,ERR_INVALID_RETURN_VALUE}}=require_errors(),{destroyer}=require_destroy(),Duplex=require_duplex(),Readable=require_readable(),Writable=require_writable(),{createDeferredPromise}=require_util(),from=require_from(),Blob=globalThis.Blob||bufferModule.Blob,isBlob=typeof Blob<\"u\"?function(b){return b instanceof Blob}:function(b){return!1},AbortController=globalThis.AbortController||require_abort_controller().AbortController,{FunctionPrototypeCall}=require_primordials();class Duplexify extends Duplex{constructor(options){super(options);if((options===null||options===void 0?void 0:options.readable)===!1)this._readableState.readable=!1,this._readableState.ended=!0,this._readableState.endEmitted=!0;if((options===null||options===void 0?void 0:options.writable)===!1)this._writableState.writable=!1,this._writableState.ending=!0,this._writableState.ended=!0,this._writableState.finished=!0}}module2.exports=function duplexify(body,name){if(isDuplexNodeStream(body))return body;if(isReadableNodeStream(body))return _duplexify({readable:body});if(isWritableNodeStream(body))return _duplexify({writable:body});if(isNodeStream(body))return _duplexify({writable:!1,readable:!1});if(isReadableStream(body))return _duplexify({readable:Readable.fromWeb(body)});if(isWritableStream(body))return _duplexify({writable:Writable.fromWeb(body)});if(typeof body===\"function\"){let{value,write,final,destroy}=fromAsyncGen(body);if(isIterable(value))return from(Duplexify,value,{objectMode:!0,write,final,destroy});let then2=value===null||value===void 0?void 0:value.then;if(typeof then2===\"function\"){let d,promise=FunctionPrototypeCall(then2,value,(val)=>{if(val!=null)throw new ERR_INVALID_RETURN_VALUE(\"nully\",\"body\",val)},(err)=>{destroyer(d,err)});return d=new Duplexify({objectMode:!0,readable:!1,write,final(cb){final(async()=>{try{await promise,process.nextTick(cb,null)}catch(err){process.nextTick(cb,err)}})},destroy})}throw new ERR_INVALID_RETURN_VALUE(\"Iterable, AsyncIterable or AsyncFunction\",name,value)}if(isBlob(body))return duplexify(body.arrayBuffer());if(isIterable(body))return from(Duplexify,body,{objectMode:!0,writable:!1});if(isReadableStream(body===null||body===void 0?void 0:body.readable)&&isWritableStream(body===null||body===void 0?void 0:body.writable))return Duplexify.fromWeb(body);if(typeof(body===null||body===void 0?void 0:body.writable)===\"object\"||typeof(body===null||body===void 0?void 0:body.readable)===\"object\"){let readable=body!==null&&body!==void 0&&body.readable?isReadableNodeStream(body===null||body===void 0?void 0:body.readable)?body===null||body===void 0?void 0:body.readable:duplexify(body.readable):void 0,writable=body!==null&&body!==void 0&&body.writable?isWritableNodeStream(body===null||body===void 0?void 0:body.writable)?body===null||body===void 0?void 0:body.writable:duplexify(body.writable):void 0;return _duplexify({readable,writable})}let then=body===null||body===void 0?void 0:body.then;if(typeof then===\"function\"){let d;return FunctionPrototypeCall(then,body,(val)=>{if(val!=null)d.push(val);d.push(null)},(err)=>{destroyer(d,err)}),d=new Duplexify({objectMode:!0,writable:!1,read(){}})}throw new ERR_INVALID_ARG_TYPE(name,[\"Blob\",\"ReadableStream\",\"WritableStream\",\"Stream\",\"Iterable\",\"AsyncIterable\",\"Function\",\"{ readable, writable } pair\",\"Promise\"],body)};function fromAsyncGen(fn){let{promise,resolve}=createDeferredPromise(),ac=new AbortController,signal=ac.signal;return{value:fn(async function*(){while(!0){let _promise=promise;promise=null;let{chunk,done,cb}=await _promise;if(process.nextTick(cb),done)return;if(signal.aborted)throw new AbortError(void 0,{cause:signal.reason});({promise,resolve}=createDeferredPromise()),yield chunk}}(),{signal}),write(chunk,encoding,cb){let _resolve=resolve;resolve=null,_resolve({chunk,done:!1,cb})},final(cb){let _resolve=resolve;resolve=null,_resolve({done:!0,cb})},destroy(err,cb){ac.abort(),cb(err)}}}function _duplexify(pair){let r=pair.readable&&typeof pair.readable.read!==\"function\"?Readable.wrap(pair.readable):pair.readable,w=pair.writable,readable=!!isReadable(r),writable=!!isWritable(w),ondrain,onfinish,onreadable,onclose,d;function onfinished(err){let cb=onclose;if(onclose=null,cb)cb(err);else if(err)d.destroy(err)}if(d=new Duplexify({readableObjectMode:!!(r!==null&&r!==void 0&&r.readableObjectMode),writableObjectMode:!!(w!==null&&w!==void 0&&w.writableObjectMode),readable,writable}),writable)eos(w,(err)=>{if(writable=!1,err)destroyer(r,err);onfinished(err)}),d._write=function(chunk,encoding,callback){if(w.write(chunk,encoding))callback();else ondrain=callback},d._final=function(callback){w.end(),onfinish=callback},w.on(\"drain\",function(){if(ondrain){let cb=ondrain;ondrain=null,cb()}}),w.on(\"finish\",function(){if(onfinish){let cb=onfinish;onfinish=null,cb()}});if(readable)eos(r,(err)=>{if(readable=!1,err)destroyer(r,err);onfinished(err)}),r.on(\"readable\",function(){if(onreadable){let cb=onreadable;onreadable=null,cb()}}),r.on(\"end\",function(){d.push(null)}),d._read=function(){while(!0){let buf=r.read();if(buf===null){onreadable=d._read;return}if(!d.push(buf))return}};return d._destroy=function(err,callback){if(!err&&onclose!==null)err=new AbortError;if(onreadable=null,ondrain=null,onfinish=null,onclose===null)callback(err);else onclose=callback,destroyer(w,err),destroyer(r,err)},d}});var require_duplex=__commonJS((exports2,module2)=>{var{ObjectDefineProperties,ObjectGetOwnPropertyDescriptor,ObjectKeys,ObjectSetPrototypeOf}=require_primordials();module2.exports=Duplex;var Readable=require_readable(),Writable=require_writable();ObjectSetPrototypeOf(Duplex.prototype,Readable.prototype);ObjectSetPrototypeOf(Duplex,Readable);{let keys=ObjectKeys(Writable.prototype);for(let i=0;i{var{ObjectSetPrototypeOf,Symbol:Symbol2}=require_primordials();module2.exports=Transform;var{ERR_METHOD_NOT_IMPLEMENTED}=require_errors().codes,Duplex=require_duplex(),{getHighWaterMark}=require_state();ObjectSetPrototypeOf(Transform.prototype,Duplex.prototype);ObjectSetPrototypeOf(Transform,Duplex);var kCallback=Symbol2(\"kCallback\");function Transform(options){if(!(this instanceof Transform))return new Transform(options);let readableHighWaterMark=options?getHighWaterMark(this,options,\"readableHighWaterMark\",!0):null;if(readableHighWaterMark===0)options={...options,highWaterMark:null,readableHighWaterMark,writableHighWaterMark:options.writableHighWaterMark||0};if(Duplex.call(this,options),this._readableState.sync=!1,this[kCallback]=null,options){if(typeof options.transform===\"function\")this._transform=options.transform;if(typeof options.flush===\"function\")this._flush=options.flush}this.on(\"prefinish\",prefinish)}function final(cb){if(typeof this._flush===\"function\"&&!this.destroyed)this._flush((er,data)=>{if(er){if(cb)cb(er);else this.destroy(er);return}if(data!=null)this.push(data);if(this.push(null),cb)cb()});else if(this.push(null),cb)cb()}function prefinish(){if(this._final!==final)final.call(this)}Transform.prototype._final=final;Transform.prototype._transform=function(chunk,encoding,callback){throw new ERR_METHOD_NOT_IMPLEMENTED(\"_transform()\")};Transform.prototype._write=function(chunk,encoding,callback){let rState=this._readableState,wState=this._writableState,length=rState.length;this._transform(chunk,encoding,(err,val)=>{if(err){callback(err);return}if(val!=null)this.push(val);if(wState.ended||length===rState.length||rState.length{var{ObjectSetPrototypeOf}=require_primordials();module2.exports=PassThrough;var Transform=require_transform();ObjectSetPrototypeOf(PassThrough.prototype,Transform.prototype);ObjectSetPrototypeOf(PassThrough,Transform);function PassThrough(options){if(!(this instanceof PassThrough))return new PassThrough(options);Transform.call(this,options)}PassThrough.prototype._transform=function(chunk,encoding,cb){cb(null,chunk)}});var require_pipeline=__commonJS((exports2,module2)=>{var process=require_process(),{ArrayIsArray,Promise:Promise2,SymbolAsyncIterator,SymbolDispose}=require_primordials(),eos=require_end_of_stream(),{once}=require_util(),destroyImpl=require_destroy(),Duplex=require_duplex(),{aggregateTwoErrors,codes:{ERR_INVALID_ARG_TYPE,ERR_INVALID_RETURN_VALUE,ERR_MISSING_ARGS,ERR_STREAM_DESTROYED,ERR_STREAM_PREMATURE_CLOSE},AbortError}=require_errors(),{validateFunction,validateAbortSignal}=require_validators(),{isIterable,isReadable,isReadableNodeStream,isNodeStream,isTransformStream,isWebStream,isReadableStream,isReadableFinished}=require_utils(),AbortController=globalThis.AbortController||require_abort_controller().AbortController,PassThrough,Readable,addAbortListener;function destroyer(stream,reading,writing){let finished=!1;stream.on(\"close\",()=>{finished=!0});let cleanup=eos(stream,{readable:reading,writable:writing},(err)=>{finished=!err});return{destroy:(err)=>{if(finished)return;finished=!0,destroyImpl.destroyer(stream,err||new ERR_STREAM_DESTROYED(\"pipe\"))},cleanup}}function popCallback(streams){return validateFunction(streams[streams.length-1],\"streams[stream.length - 1]\"),streams.pop()}function makeAsyncIterable(val){if(isIterable(val))return val;else if(isReadableNodeStream(val))return fromReadable(val);throw new ERR_INVALID_ARG_TYPE(\"val\",[\"Readable\",\"Iterable\",\"AsyncIterable\"],val)}async function*fromReadable(val){if(!Readable)Readable=require_readable();yield*Readable.prototype[SymbolAsyncIterator].call(val)}async function pumpToNode(iterable,writable,finish,{end}){let error,onresolve=null,resume=(err)=>{if(err)error=err;if(onresolve){let callback=onresolve;onresolve=null,callback()}},wait=()=>new Promise2((resolve,reject)=>{if(error)reject(error);else onresolve=()=>{if(error)reject(error);else resolve()}});writable.on(\"drain\",resume);let cleanup=eos(writable,{readable:!1},resume);try{if(writable.writableNeedDrain)await wait();for await(let chunk of iterable)if(!writable.write(chunk))await wait();if(end)writable.end(),await wait();finish()}catch(err){finish(error!==err?aggregateTwoErrors(error,err):err)}finally{cleanup(),writable.off(\"drain\",resume)}}async function pumpToWeb(readable,writable,finish,{end}){if(isTransformStream(writable))writable=writable.writable;let writer=writable.getWriter();try{for await(let chunk of readable)await writer.ready,writer.write(chunk).catch(()=>{});if(await writer.ready,end)await writer.close();finish()}catch(err){try{await writer.abort(err),finish(err)}catch(err2){finish(err2)}}}function pipeline(...streams){return pipelineImpl(streams,once(popCallback(streams)))}function pipelineImpl(streams,callback,opts){if(streams.length===1&&ArrayIsArray(streams[0]))streams=streams[0];if(streams.length<2)throw new ERR_MISSING_ARGS(\"streams\");let ac=new AbortController,signal=ac.signal,outerSignal=opts===null||opts===void 0?void 0:opts.signal,lastStreamCleanup=[];validateAbortSignal(outerSignal,\"options.signal\");function abort(){finishImpl(new AbortError)}addAbortListener=addAbortListener||require_util().addAbortListener;let disposable;if(outerSignal)disposable=addAbortListener(outerSignal,abort);let error,value,destroys=[],finishCount=0;function finish(err){finishImpl(err,--finishCount===0)}function finishImpl(err,final){var _disposable;if(err&&(!error||error.code===\"ERR_STREAM_PREMATURE_CLOSE\"))error=err;if(!error&&!final)return;while(destroys.length)destroys.shift()(error);if((_disposable=disposable)===null||_disposable===void 0||_disposable[SymbolDispose](),ac.abort(),final){if(!error)lastStreamCleanup.forEach((fn)=>fn());process.nextTick(callback,error,value)}}let ret;for(let i=0;i0,end=reading||(opts===null||opts===void 0?void 0:opts.end)!==!1,isLastStream=i===streams.length-1;if(isNodeStream(stream)){let onError2=function(err){if(err&&err.name!==\"AbortError\"&&err.code!==\"ERR_STREAM_PREMATURE_CLOSE\")finish(err)};var onError=onError2;if(end){let{destroy,cleanup}=destroyer(stream,reading,writing);if(destroys.push(destroy),isReadable(stream)&&isLastStream)lastStreamCleanup.push(cleanup)}if(stream.on(\"error\",onError2),isReadable(stream)&&isLastStream)lastStreamCleanup.push(()=>{stream.removeListener(\"error\",onError2)})}if(i===0)if(typeof stream===\"function\"){if(ret=stream({signal}),!isIterable(ret))throw new ERR_INVALID_RETURN_VALUE(\"Iterable, AsyncIterable or Stream\",\"source\",ret)}else if(isIterable(stream)||isReadableNodeStream(stream)||isTransformStream(stream))ret=stream;else ret=Duplex.from(stream);else if(typeof stream===\"function\"){if(isTransformStream(ret)){var _ret;ret=makeAsyncIterable((_ret=ret)===null||_ret===void 0?void 0:_ret.readable)}else ret=makeAsyncIterable(ret);if(ret=stream(ret,{signal}),reading){if(!isIterable(ret,!0))throw new ERR_INVALID_RETURN_VALUE(\"AsyncIterable\",`transform[${i-1}]`,ret)}else{var _ret2;if(!PassThrough)PassThrough=require_passthrough();let pt=new PassThrough({objectMode:!0}),then=(_ret2=ret)===null||_ret2===void 0?void 0:_ret2.then;if(typeof then===\"function\")finishCount++,then.call(ret,(val)=>{if(value=val,val!=null)pt.write(val);if(end)pt.end();process.nextTick(finish)},(err)=>{pt.destroy(err),process.nextTick(finish,err)});else if(isIterable(ret,!0))finishCount++,pumpToNode(ret,pt,finish,{end});else if(isReadableStream(ret)||isTransformStream(ret)){let toRead=ret.readable||ret;finishCount++,pumpToNode(toRead,pt,finish,{end})}else throw new ERR_INVALID_RETURN_VALUE(\"AsyncIterable or Promise\",\"destination\",ret);ret=pt;let{destroy,cleanup}=destroyer(ret,!1,!0);if(destroys.push(destroy),isLastStream)lastStreamCleanup.push(cleanup)}}else if(isNodeStream(stream)){if(isReadableNodeStream(ret)){finishCount+=2;let cleanup=pipe(ret,stream,finish,{end});if(isReadable(stream)&&isLastStream)lastStreamCleanup.push(cleanup)}else if(isTransformStream(ret)||isReadableStream(ret)){let toRead=ret.readable||ret;finishCount++,pumpToNode(toRead,stream,finish,{end})}else if(isIterable(ret))finishCount++,pumpToNode(ret,stream,finish,{end});else throw new ERR_INVALID_ARG_TYPE(\"val\",[\"Readable\",\"Iterable\",\"AsyncIterable\",\"ReadableStream\",\"TransformStream\"],ret);ret=stream}else if(isWebStream(stream)){if(isReadableNodeStream(ret))finishCount++,pumpToWeb(makeAsyncIterable(ret),stream,finish,{end});else if(isReadableStream(ret)||isIterable(ret))finishCount++,pumpToWeb(ret,stream,finish,{end});else if(isTransformStream(ret))finishCount++,pumpToWeb(ret.readable,stream,finish,{end});else throw new ERR_INVALID_ARG_TYPE(\"val\",[\"Readable\",\"Iterable\",\"AsyncIterable\",\"ReadableStream\",\"TransformStream\"],ret);ret=stream}else ret=Duplex.from(stream)}if(signal!==null&&signal!==void 0&&signal.aborted||outerSignal!==null&&outerSignal!==void 0&&outerSignal.aborted)process.nextTick(abort);return ret}function pipe(src,dst,finish,{end}){let ended=!1;if(dst.on(\"close\",()=>{if(!ended)finish(new ERR_STREAM_PREMATURE_CLOSE)}),src.pipe(dst,{end:!1}),end){let endFn2=function(){ended=!0,dst.end()};var endFn=endFn2;if(isReadableFinished(src))process.nextTick(endFn2);else src.once(\"end\",endFn2)}else finish();return eos(src,{readable:!0,writable:!1},(err)=>{let rState=src._readableState;if(err&&err.code===\"ERR_STREAM_PREMATURE_CLOSE\"&&rState&&rState.ended&&!rState.errored&&!rState.errorEmitted)src.once(\"end\",finish).once(\"error\",finish);else finish(err)}),eos(dst,{readable:!1,writable:!0},finish)}module2.exports={pipelineImpl,pipeline}});var require_compose=__commonJS((exports2,module2)=>{var{pipeline}=require_pipeline(),Duplex=require_duplex(),{destroyer}=require_destroy(),{isNodeStream,isReadable,isWritable,isWebStream,isTransformStream,isWritableStream,isReadableStream}=require_utils(),{AbortError,codes:{ERR_INVALID_ARG_VALUE,ERR_MISSING_ARGS}}=require_errors(),eos=require_end_of_stream();module2.exports=function(...streams){if(streams.length===0)throw new ERR_MISSING_ARGS(\"streams\");if(streams.length===1)return Duplex.from(streams[0]);let orgStreams=[...streams];if(typeof streams[0]===\"function\")streams[0]=Duplex.from(streams[0]);if(typeof streams[streams.length-1]===\"function\"){let idx=streams.length-1;streams[idx]=Duplex.from(streams[idx])}for(let n=0;n0&&!(isWritable(streams[n])||isWritableStream(streams[n])||isTransformStream(streams[n])))throw new ERR_INVALID_ARG_VALUE(`streams[${n}]`,orgStreams[n],\"must be writable\")}let ondrain,onfinish,onreadable,onclose,d;function onfinished(err){let cb=onclose;if(onclose=null,cb)cb(err);else if(err)d.destroy(err);else if(!readable&&!writable)d.destroy()}let head=streams[0],tail=pipeline(streams,onfinished),writable=!!(isWritable(head)||isWritableStream(head)||isTransformStream(head)),readable=!!(isReadable(tail)||isReadableStream(tail)||isTransformStream(tail));if(d=new Duplex({writableObjectMode:!!(head!==null&&head!==void 0&&head.writableObjectMode),readableObjectMode:!!(tail!==null&&tail!==void 0&&tail.readableObjectMode),writable,readable}),writable){if(isNodeStream(head))d._write=function(chunk,encoding,callback){if(head.write(chunk,encoding))callback();else ondrain=callback},d._final=function(callback){head.end(),onfinish=callback},head.on(\"drain\",function(){if(ondrain){let cb=ondrain;ondrain=null,cb()}});else if(isWebStream(head)){let writer=(isTransformStream(head)?head.writable:head).getWriter();d._write=async function(chunk,encoding,callback){try{await writer.ready,writer.write(chunk).catch(()=>{}),callback()}catch(err){callback(err)}},d._final=async function(callback){try{await writer.ready,writer.close().catch(()=>{}),onfinish=callback}catch(err){callback(err)}}}let toRead=isTransformStream(tail)?tail.readable:tail;eos(toRead,()=>{if(onfinish){let cb=onfinish;onfinish=null,cb()}})}if(readable){if(isNodeStream(tail))tail.on(\"readable\",function(){if(onreadable){let cb=onreadable;onreadable=null,cb()}}),tail.on(\"end\",function(){d.push(null)}),d._read=function(){while(!0){let buf=tail.read();if(buf===null){onreadable=d._read;return}if(!d.push(buf))return}};else if(isWebStream(tail)){let reader=(isTransformStream(tail)?tail.readable:tail).getReader();d._read=async function(){while(!0)try{let{value,done}=await reader.read();if(!d.push(value))return;if(done){d.push(null);return}}catch{return}}}}return d._destroy=function(err,callback){if(!err&&onclose!==null)err=new AbortError;if(onreadable=null,ondrain=null,onfinish=null,onclose===null)callback(err);else if(onclose=callback,isNodeStream(tail))destroyer(tail,err)},d}});var require_operators=__commonJS((exports2,module2)=>{var AbortController=globalThis.AbortController||require_abort_controller().AbortController,{codes:{ERR_INVALID_ARG_VALUE,ERR_INVALID_ARG_TYPE,ERR_MISSING_ARGS,ERR_OUT_OF_RANGE},AbortError}=require_errors(),{validateAbortSignal,validateInteger,validateObject}=require_validators(),kWeakHandler=require_primordials().Symbol(\"kWeak\"),kResistStopPropagation=require_primordials().Symbol(\"kResistStopPropagation\"),{finished}=require_end_of_stream(),staticCompose=require_compose(),{addAbortSignalNoValidate}=require_add_abort_signal(),{isWritable,isNodeStream}=require_utils(),{deprecate}=require_util(),{ArrayPrototypePush,Boolean:Boolean2,MathFloor,Number:Number2,NumberIsNaN,Promise:Promise2,PromiseReject,PromiseResolve,PromisePrototypeThen,Symbol:Symbol2}=require_primordials(),kEmpty=Symbol2(\"kEmpty\"),kEof=Symbol2(\"kEof\");function compose(stream,options){if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");if(isNodeStream(stream)&&!isWritable(stream))throw new ERR_INVALID_ARG_VALUE(\"stream\",stream,\"must be writable\");let composedStream=staticCompose(this,stream);if(options!==null&&options!==void 0&&options.signal)addAbortSignalNoValidate(options.signal,composedStream);return composedStream}function map(fn,options){if(typeof fn!==\"function\")throw new ERR_INVALID_ARG_TYPE(\"fn\",[\"Function\",\"AsyncFunction\"],fn);if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");let concurrency=1;if((options===null||options===void 0?void 0:options.concurrency)!=null)concurrency=MathFloor(options.concurrency);let highWaterMark=concurrency-1;if((options===null||options===void 0?void 0:options.highWaterMark)!=null)highWaterMark=MathFloor(options.highWaterMark);return validateInteger(concurrency,\"options.concurrency\",1),validateInteger(highWaterMark,\"options.highWaterMark\",0),highWaterMark+=concurrency,async function*(){let signal=require_util().AbortSignalAny([options===null||options===void 0?void 0:options.signal].filter(Boolean2)),stream=this,queue=[],signalOpt={signal},next,resume,done=!1,cnt=0;function onCatch(){done=!0,afterItemProcessed()}function afterItemProcessed(){cnt-=1,maybeResume()}function maybeResume(){if(resume&&!done&&cnt=highWaterMark||cnt>=concurrency))await new Promise2((resolve)=>{resume=resolve})}queue.push(kEof)}catch(err){let val=PromiseReject(err);PromisePrototypeThen(val,afterItemProcessed,onCatch),queue.push(val)}finally{if(done=!0,next)next(),next=null}}pump();try{while(!0){while(queue.length>0){let val=await queue[0];if(val===kEof)return;if(signal.aborted)throw new AbortError;if(val!==kEmpty)yield val;queue.shift(),maybeResume()}await new Promise2((resolve)=>{next=resolve})}}finally{if(done=!0,resume)resume(),resume=null}}.call(this)}function asIndexedPairs(options=void 0){if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");return async function*(){let index=0;for await(let val of this){var _options$signal;if(options!==null&&options!==void 0&&(_options$signal=options.signal)!==null&&_options$signal!==void 0&&_options$signal.aborted)throw new AbortError({cause:options.signal.reason});yield[index++,val]}}.call(this)}async function some(fn,options=void 0){for await(let unused of filter.call(this,fn,options))return!0;return!1}async function every(fn,options=void 0){if(typeof fn!==\"function\")throw new ERR_INVALID_ARG_TYPE(\"fn\",[\"Function\",\"AsyncFunction\"],fn);return!await some.call(this,async(...args)=>{return!await fn(...args)},options)}async function find(fn,options){for await(let result of filter.call(this,fn,options))return result;return}async function forEach(fn,options){if(typeof fn!==\"function\")throw new ERR_INVALID_ARG_TYPE(\"fn\",[\"Function\",\"AsyncFunction\"],fn);async function forEachFn(value,options2){return await fn(value,options2),kEmpty}for await(let unused of map.call(this,forEachFn,options));}function filter(fn,options){if(typeof fn!==\"function\")throw new ERR_INVALID_ARG_TYPE(\"fn\",[\"Function\",\"AsyncFunction\"],fn);async function filterFn(value,options2){if(await fn(value,options2))return value;return kEmpty}return map.call(this,filterFn,options)}class ReduceAwareErrMissingArgs extends ERR_MISSING_ARGS{constructor(){super(\"reduce\");this.message=\"Reduce of an empty stream requires an initial value\"}}async function reduce(reducer,initialValue,options){var _options$signal2;if(typeof reducer!==\"function\")throw new ERR_INVALID_ARG_TYPE(\"reducer\",[\"Function\",\"AsyncFunction\"],reducer);if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");let hasInitialValue=arguments.length>1;if(options!==null&&options!==void 0&&(_options$signal2=options.signal)!==null&&_options$signal2!==void 0&&_options$signal2.aborted){let err=new AbortError(void 0,{cause:options.signal.reason});throw this.once(\"error\",()=>{}),await finished(this.destroy(err)),err}let ac=new AbortController,signal=ac.signal;if(options!==null&&options!==void 0&&options.signal){let opts={once:!0,[kWeakHandler]:this,[kResistStopPropagation]:!0};options.signal.addEventListener(\"abort\",()=>ac.abort(),opts)}let gotAnyItemFromStream=!1;try{for await(let value of this){var _options$signal3;if(gotAnyItemFromStream=!0,options!==null&&options!==void 0&&(_options$signal3=options.signal)!==null&&_options$signal3!==void 0&&_options$signal3.aborted)throw new AbortError;if(!hasInitialValue)initialValue=value,hasInitialValue=!0;else initialValue=await reducer(initialValue,value,{signal})}if(!gotAnyItemFromStream&&!hasInitialValue)throw new ReduceAwareErrMissingArgs}finally{ac.abort()}return initialValue}async function toArray(options){if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");let result=[];for await(let val of this){var _options$signal4;if(options!==null&&options!==void 0&&(_options$signal4=options.signal)!==null&&_options$signal4!==void 0&&_options$signal4.aborted)throw new AbortError(void 0,{cause:options.signal.reason});ArrayPrototypePush(result,val)}return result}function flatMap(fn,options){let values=map.call(this,fn,options);return async function*(){for await(let val of values)yield*val}.call(this)}function toIntegerOrInfinity(number){if(number=Number2(number),NumberIsNaN(number))return 0;if(number<0)throw new ERR_OUT_OF_RANGE(\"number\",\">= 0\",number);return number}function drop(number,options=void 0){if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");return number=toIntegerOrInfinity(number),async function*(){var _options$signal5;if(options!==null&&options!==void 0&&(_options$signal5=options.signal)!==null&&_options$signal5!==void 0&&_options$signal5.aborted)throw new AbortError;for await(let val of this){var _options$signal6;if(options!==null&&options!==void 0&&(_options$signal6=options.signal)!==null&&_options$signal6!==void 0&&_options$signal6.aborted)throw new AbortError;if(number--<=0)yield val}}.call(this)}function take(number,options=void 0){if(options!=null)validateObject(options,\"options\");if((options===null||options===void 0?void 0:options.signal)!=null)validateAbortSignal(options.signal,\"options.signal\");return number=toIntegerOrInfinity(number),async function*(){var _options$signal7;if(options!==null&&options!==void 0&&(_options$signal7=options.signal)!==null&&_options$signal7!==void 0&&_options$signal7.aborted)throw new AbortError;for await(let val of this){var _options$signal8;if(options!==null&&options!==void 0&&(_options$signal8=options.signal)!==null&&_options$signal8!==void 0&&_options$signal8.aborted)throw new AbortError;if(number-- >0)yield val;if(number<=0)return}}.call(this)}module2.exports.streamReturningOperators={asIndexedPairs:deprecate(asIndexedPairs,\"readable.asIndexedPairs will be removed in a future version.\"),drop,filter,flatMap,map,take,compose};module2.exports.promiseReturningOperators={every,forEach,reduce,toArray,some,find}});var require_promises=__commonJS((exports2,module2)=>{var{ArrayPrototypePop,Promise:Promise2}=require_primordials(),{isIterable,isNodeStream,isWebStream}=require_utils(),{pipelineImpl:pl}=require_pipeline(),{finished}=require_end_of_stream();require_stream();function pipeline(...streams){return new Promise2((resolve,reject)=>{let signal,end,lastArg=streams[streams.length-1];if(lastArg&&typeof lastArg===\"object\"&&!isNodeStream(lastArg)&&!isIterable(lastArg)&&!isWebStream(lastArg)){let options=ArrayPrototypePop(streams);signal=options.signal,end=options.end}pl(streams,(err,value)=>{if(err)reject(err);else resolve(value)},{signal,end})})}module2.exports={finished,pipeline}});var require_stream=__commonJS((exports2,module2)=>{var{Buffer}=require(\"buffer\"),{ObjectDefineProperty,ObjectKeys,ReflectApply}=require_primordials(),{promisify:{custom:customPromisify}}=require_util(),{streamReturningOperators,promiseReturningOperators}=require_operators(),{codes:{ERR_ILLEGAL_CONSTRUCTOR}}=require_errors(),compose=require_compose(),{setDefaultHighWaterMark,getDefaultHighWaterMark}=require_state(),{pipeline}=require_pipeline(),{destroyer}=require_destroy(),eos=require_end_of_stream(),promises=require_promises(),utils=require_utils(),Stream=module2.exports=require_legacy().Stream;Stream.isDestroyed=utils.isDestroyed;Stream.isDisturbed=utils.isDisturbed;Stream.isErrored=utils.isErrored;Stream.isReadable=utils.isReadable;Stream.isWritable=utils.isWritable;Stream.Readable=require_readable();for(let key of ObjectKeys(streamReturningOperators)){let fn=function(...args){if(new.target)throw ERR_ILLEGAL_CONSTRUCTOR();return Stream.Readable.from(ReflectApply(op,this,args))},op=streamReturningOperators[key];ObjectDefineProperty(fn,\"name\",{__proto__:null,value:op.name}),ObjectDefineProperty(fn,\"length\",{__proto__:null,value:op.length}),ObjectDefineProperty(Stream.Readable.prototype,key,{__proto__:null,value:fn,enumerable:!1,configurable:!0,writable:!0})}for(let key of ObjectKeys(promiseReturningOperators)){let fn=function(...args){if(new.target)throw ERR_ILLEGAL_CONSTRUCTOR();return ReflectApply(op,this,args)},op=promiseReturningOperators[key];ObjectDefineProperty(fn,\"name\",{__proto__:null,value:op.name}),ObjectDefineProperty(fn,\"length\",{__proto__:null,value:op.length}),ObjectDefineProperty(Stream.Readable.prototype,key,{__proto__:null,value:fn,enumerable:!1,configurable:!0,writable:!0})}Stream.Writable=require_writable();Stream.Duplex=require_duplex();Stream.Transform=require_transform();Stream.PassThrough=require_passthrough();Stream.pipeline=pipeline;var{addAbortSignal}=require_add_abort_signal();Stream.addAbortSignal=addAbortSignal;Stream.finished=eos;Stream.destroy=destroyer;Stream.compose=compose;Stream.setDefaultHighWaterMark=setDefaultHighWaterMark;Stream.getDefaultHighWaterMark=getDefaultHighWaterMark;ObjectDefineProperty(Stream,\"promises\",{__proto__:null,configurable:!0,enumerable:!0,get(){return promises}});ObjectDefineProperty(pipeline,customPromisify,{__proto__:null,enumerable:!0,get(){return promises.pipeline}});ObjectDefineProperty(eos,customPromisify,{__proto__:null,enumerable:!0,get(){return promises.finished}});Stream.Stream=Stream;Stream._isUint8Array=function(value){return value instanceof Uint8Array};Stream._uint8ArrayToBuffer=function(chunk){return Buffer.from(chunk.buffer,chunk.byteOffset,chunk.byteLength)}});var require_ours=__commonJS((exports2,module2)=>{var Stream=require(\"stream\");{let CustomStream=require_stream(),promises=require_promises(),originalDestroy=CustomStream.Readable.destroy;module2.exports=CustomStream.Readable,module2.exports._uint8ArrayToBuffer=CustomStream._uint8ArrayToBuffer,module2.exports._isUint8Array=CustomStream._isUint8Array,module2.exports.isDisturbed=CustomStream.isDisturbed,module2.exports.isErrored=CustomStream.isErrored,module2.exports.isReadable=CustomStream.isReadable,module2.exports.Readable=CustomStream.Readable,module2.exports.Writable=CustomStream.Writable,module2.exports.Duplex=CustomStream.Duplex,module2.exports.Transform=CustomStream.Transform,module2.exports.PassThrough=CustomStream.PassThrough,module2.exports.addAbortSignal=CustomStream.addAbortSignal,module2.exports.finished=CustomStream.finished,module2.exports.destroy=CustomStream.destroy,module2.exports.destroy=originalDestroy,module2.exports.pipeline=CustomStream.pipeline,module2.exports.compose=CustomStream.compose,Object.defineProperty(CustomStream,\"promises\",{configurable:!0,enumerable:!0,get(){return promises}}),module2.exports.Stream=CustomStream.Stream}module2.exports.default=module2.exports});module.exports=require_ours();", + "var __create=Object.create;var{getPrototypeOf:__getProtoOf,defineProperty:__defProp,getOwnPropertyNames:__getOwnPropNames}=Object;var __hasOwnProp=Object.prototype.hasOwnProperty;var __toESM=(mod,isNodeMode,target)=>{target=mod!=null?__create(__getProtoOf(mod)):{};let to=isNodeMode||!mod||!mod.__esModule?__defProp(target,\"default\",{value:mod,enumerable:!0}):target;for(let key of __getOwnPropNames(mod))if(!__hasOwnProp.call(to,key))__defProp(to,key,{get:()=>mod[key],enumerable:!0});return to};var __commonJS=(cb,mod)=>()=>(mod||cb((mod={exports:{}}).exports,mod),mod.exports);var __require=('');var require_randombytes=__commonJS((exports,module)=>{module.exports=require(\"crypto\").randomBytes});var require_create_hash=__commonJS((exports,module)=>{module.exports=require(\"crypto\").createHash});var require_create_hmac=__commonJS((exports,module)=>{module.exports=require(\"crypto\").createHmac});var require_algorithms=__commonJS((exports,module)=>{module.exports={sha224WithRSAEncryption:{sign:\"rsa\",hash:\"sha224\",id:\"302d300d06096086480165030402040500041c\"},\"RSA-SHA224\":{sign:\"ecdsa/rsa\",hash:\"sha224\",id:\"302d300d06096086480165030402040500041c\"},sha256WithRSAEncryption:{sign:\"rsa\",hash:\"sha256\",id:\"3031300d060960864801650304020105000420\"},\"RSA-SHA256\":{sign:\"ecdsa/rsa\",hash:\"sha256\",id:\"3031300d060960864801650304020105000420\"},sha384WithRSAEncryption:{sign:\"rsa\",hash:\"sha384\",id:\"3041300d060960864801650304020205000430\"},\"RSA-SHA384\":{sign:\"ecdsa/rsa\",hash:\"sha384\",id:\"3041300d060960864801650304020205000430\"},sha512WithRSAEncryption:{sign:\"rsa\",hash:\"sha512\",id:\"3051300d060960864801650304020305000440\"},\"RSA-SHA512\":{sign:\"ecdsa/rsa\",hash:\"sha512\",id:\"3051300d060960864801650304020305000440\"},\"RSA-SHA1\":{sign:\"rsa\",hash:\"sha1\",id:\"3021300906052b0e03021a05000414\"},\"ecdsa-with-SHA1\":{sign:\"ecdsa\",hash:\"sha1\",id:\"\"},sha256:{sign:\"ecdsa\",hash:\"sha256\",id:\"\"},sha224:{sign:\"ecdsa\",hash:\"sha224\",id:\"\"},sha384:{sign:\"ecdsa\",hash:\"sha384\",id:\"\"},sha512:{sign:\"ecdsa\",hash:\"sha512\",id:\"\"},\"DSA-SHA\":{sign:\"dsa\",hash:\"sha1\",id:\"\"},\"DSA-SHA1\":{sign:\"dsa\",hash:\"sha1\",id:\"\"},DSA:{sign:\"dsa\",hash:\"sha1\",id:\"\"},\"DSA-WITH-SHA224\":{sign:\"dsa\",hash:\"sha224\",id:\"\"},\"DSA-SHA224\":{sign:\"dsa\",hash:\"sha224\",id:\"\"},\"DSA-WITH-SHA256\":{sign:\"dsa\",hash:\"sha256\",id:\"\"},\"DSA-SHA256\":{sign:\"dsa\",hash:\"sha256\",id:\"\"},\"DSA-WITH-SHA384\":{sign:\"dsa\",hash:\"sha384\",id:\"\"},\"DSA-SHA384\":{sign:\"dsa\",hash:\"sha384\",id:\"\"},\"DSA-WITH-SHA512\":{sign:\"dsa\",hash:\"sha512\",id:\"\"},\"DSA-SHA512\":{sign:\"dsa\",hash:\"sha512\",id:\"\"},\"DSA-RIPEMD160\":{sign:\"dsa\",hash:\"rmd160\",id:\"\"},ripemd160WithRSA:{sign:\"rsa\",hash:\"rmd160\",id:\"3021300906052b2403020105000414\"},\"RSA-RIPEMD160\":{sign:\"rsa\",hash:\"rmd160\",id:\"3021300906052b2403020105000414\"},md5WithRSAEncryption:{sign:\"rsa\",hash:\"md5\",id:\"3020300c06082a864886f70d020505000410\"},\"RSA-MD5\":{sign:\"rsa\",hash:\"md5\",id:\"3020300c06082a864886f70d020505000410\"}}});var require_precondition=__commonJS((exports,module)=>{var $isFinite=isFinite,MAX_ALLOC=Math.pow(2,30)-1;module.exports=function(iterations,keylen){if(typeof iterations!==\"number\")throw TypeError(\"Iterations not a number\");if(iterations<0||!$isFinite(iterations))throw TypeError(\"Bad iterations\");if(typeof keylen!==\"number\")throw TypeError(\"Key length not a number\");if(keylen<0||keylen>MAX_ALLOC||keylen!==keylen)throw TypeError(\"Bad key length\")}});var require_default_encoding=__commonJS((exports,module)=>{var defaultEncoding;if(globalThis.process&&globalThis.process.browser)defaultEncoding=\"utf-8\";else if(globalThis.process&&globalThis.process.version)pVersionMajor=parseInt(process.version.split(\".\")[0].slice(1),10),defaultEncoding=pVersionMajor>=6?\"utf-8\":\"binary\";else defaultEncoding=\"utf-8\";var pVersionMajor;module.exports=defaultEncoding});var require_safe_buffer=__commonJS((exports,module)=>{/*! safe-buffer. MIT License. Feross Aboukhadijeh */var buffer=require(\"buffer\"),Buffer2=buffer.Buffer;function copyProps(src,dst){for(var key in src)dst[key]=src[key]}if(Buffer2.from&&Buffer2.alloc&&Buffer2.allocUnsafe&&Buffer2.allocUnsafeSlow)module.exports=buffer;else copyProps(buffer,exports),exports.Buffer=SafeBuffer;function SafeBuffer(arg,encodingOrOffset,length){return Buffer2(arg,encodingOrOffset,length)}SafeBuffer.prototype=Object.create(Buffer2.prototype);copyProps(Buffer2,SafeBuffer);SafeBuffer.from=function(arg,encodingOrOffset,length){if(typeof arg===\"number\")throw TypeError(\"Argument must not be a number\");return Buffer2(arg,encodingOrOffset,length)};SafeBuffer.alloc=function(size,fill,encoding){if(typeof size!==\"number\")throw TypeError(\"Argument must be a number\");var buf=Buffer2(size);if(fill!==void 0)if(typeof encoding===\"string\")buf.fill(fill,encoding);else buf.fill(fill);else buf.fill(0);return buf};SafeBuffer.allocUnsafe=function(size){if(typeof size!==\"number\")throw TypeError(\"Argument must be a number\");return Buffer2(size)};SafeBuffer.allocUnsafeSlow=function(size){if(typeof size!==\"number\")throw TypeError(\"Argument must be a number\");return buffer.SlowBuffer(size)}});var require_isarray=__commonJS((exports,module)=>{var toString={}.toString;module.exports=Array.isArray||function(arr){return toString.call(arr)==\"[object Array]\"}});var require_type=__commonJS((exports,module)=>{module.exports=TypeError});var require_es_object_atoms=__commonJS((exports,module)=>{module.exports=Object});var require_es_errors=__commonJS((exports,module)=>{module.exports=Error});var require_eval=__commonJS((exports,module)=>{module.exports=EvalError});var require_range=__commonJS((exports,module)=>{module.exports=RangeError});var require_ref=__commonJS((exports,module)=>{module.exports=ReferenceError});var require_syntax=__commonJS((exports,module)=>{module.exports=SyntaxError});var require_uri=__commonJS((exports,module)=>{module.exports=URIError});var require_abs=__commonJS((exports,module)=>{module.exports=Math.abs});var require_floor=__commonJS((exports,module)=>{module.exports=Math.floor});var require_max=__commonJS((exports,module)=>{module.exports=Math.max});var require_min=__commonJS((exports,module)=>{module.exports=Math.min});var require_pow=__commonJS((exports,module)=>{module.exports=Math.pow});var require_round=__commonJS((exports,module)=>{module.exports=Math.round});var require_isNaN=__commonJS((exports,module)=>{module.exports=Number.isNaN||function(a){return a!==a}});var require_sign=__commonJS((exports,module)=>{var $isNaN=require_isNaN();module.exports=function(number){if($isNaN(number)||number===0)return number;return number<0?-1:1}});var require_gOPD=__commonJS((exports,module)=>{module.exports=Object.getOwnPropertyDescriptor});var require_gopd=__commonJS((exports,module)=>{var $gOPD=require_gOPD();if($gOPD)try{$gOPD([],\"length\")}catch(e){$gOPD=null}module.exports=$gOPD});var require_es_define_property=__commonJS((exports,module)=>{var $defineProperty=Object.defineProperty||!1;if($defineProperty)try{$defineProperty({},\"a\",{value:1})}catch(e){$defineProperty=!1}module.exports=$defineProperty});var require_shams=__commonJS((exports,module)=>{module.exports=function(){if(typeof Symbol!==\"function\"||typeof Object.getOwnPropertySymbols!==\"function\")return!1;if(typeof Symbol.iterator===\"symbol\")return!0;var obj={},sym=Symbol(\"test\"),symObj=Object(sym);if(typeof sym===\"string\")return!1;if(Object.prototype.toString.call(sym)!==\"[object Symbol]\")return!1;if(Object.prototype.toString.call(symObj)!==\"[object Symbol]\")return!1;var symVal=42;obj[sym]=symVal;for(var _ in obj)return!1;if(typeof Object.keys===\"function\"&&Object.keys(obj).length!==0)return!1;if(typeof Object.getOwnPropertyNames===\"function\"&&Object.getOwnPropertyNames(obj).length!==0)return!1;var syms=Object.getOwnPropertySymbols(obj);if(syms.length!==1||syms[0]!==sym)return!1;if(!Object.prototype.propertyIsEnumerable.call(obj,sym))return!1;if(typeof Object.getOwnPropertyDescriptor===\"function\"){var descriptor=Object.getOwnPropertyDescriptor(obj,sym);if(descriptor.value!==symVal||descriptor.enumerable!==!0)return!1}return!0}});var require_has_symbols=__commonJS((exports,module)=>{var origSymbol=typeof Symbol<\"u\"&&Symbol,hasSymbolSham=require_shams();module.exports=function(){if(typeof origSymbol!==\"function\")return!1;if(typeof Symbol!==\"function\")return!1;if(typeof origSymbol(\"foo\")!==\"symbol\")return!1;if(typeof Symbol(\"bar\")!==\"symbol\")return!1;return hasSymbolSham()}});var require_Reflect_getPrototypeOf=__commonJS((exports,module)=>{module.exports=typeof Reflect<\"u\"&&Reflect.getPrototypeOf||null});var require_Object_getPrototypeOf=__commonJS((exports,module)=>{var $Object=require_es_object_atoms();module.exports=$Object.getPrototypeOf||null});var require_implementation=__commonJS((exports,module)=>{var ERROR_MESSAGE=\"Function.prototype.bind called on incompatible \",toStr=Object.prototype.toString,max=Math.max,funcType=\"[object Function]\",concatty=function(a,b){var arr=[];for(var i=0;i{var implementation=require_implementation();module.exports=Function.prototype.bind||implementation});var require_functionCall=__commonJS((exports,module)=>{module.exports=Function.prototype.call});var require_functionApply=__commonJS((exports,module)=>{module.exports=Function.prototype.apply});var require_reflectApply=__commonJS((exports,module)=>{module.exports=typeof Reflect<\"u\"&&Reflect&&Reflect.apply});var require_actualApply=__commonJS((exports,module)=>{var bind=require_function_bind(),$apply=require_functionApply(),$call=require_functionCall(),$reflectApply=require_reflectApply();module.exports=$reflectApply||bind.call($call,$apply)});var require_call_bind_apply_helpers=__commonJS((exports,module)=>{var bind=require_function_bind(),$TypeError=require_type(),$call=require_functionCall(),$actualApply=require_actualApply();module.exports=function(args){if(args.length<1||typeof args[0]!==\"function\")throw new $TypeError(\"a function is required\");return $actualApply(bind,$call,args)}});var require_get=__commonJS((exports,module)=>{var callBind=require_call_bind_apply_helpers(),gOPD=require_gopd(),hasProtoAccessor;try{hasProtoAccessor=[].__proto__===Array.prototype}catch(e){if(!e||typeof e!==\"object\"||!(\"code\"in e)||e.code!==\"ERR_PROTO_ACCESS\")throw e}var desc=!!hasProtoAccessor&&gOPD&&gOPD(Object.prototype,\"__proto__\"),$Object=Object,$getPrototypeOf=$Object.getPrototypeOf;module.exports=desc&&typeof desc.get===\"function\"?callBind([desc.get]):typeof $getPrototypeOf===\"function\"?function(value){return $getPrototypeOf(value==null?value:$Object(value))}:!1});var require_get_proto=__commonJS((exports,module)=>{var reflectGetProto=require_Reflect_getPrototypeOf(),originalGetProto=require_Object_getPrototypeOf(),getDunderProto=require_get();module.exports=reflectGetProto?function(O){return reflectGetProto(O)}:originalGetProto?function(O){if(!O||typeof O!==\"object\"&&typeof O!==\"function\")throw TypeError(\"getProto: not an object\");return originalGetProto(O)}:getDunderProto?function(O){return getDunderProto(O)}:null});var require_hasown=__commonJS((exports,module)=>{var call=Function.prototype.call,$hasOwn=Object.prototype.hasOwnProperty,bind=require_function_bind();module.exports=bind.call(call,$hasOwn)});var require_get_intrinsic=__commonJS((exports,module)=>{var undefined2,$Object=require_es_object_atoms(),$Error=require_es_errors(),$EvalError=require_eval(),$RangeError=require_range(),$ReferenceError=require_ref(),$SyntaxError=require_syntax(),$TypeError=require_type(),$URIError=require_uri(),abs=require_abs(),floor=require_floor(),max=require_max(),min=require_min(),pow=require_pow(),round=require_round(),sign=require_sign(),$Function=Function,getEvalledConstructor=function(expressionSyntax){try{return $Function('\"use strict\"; return ('+expressionSyntax+\").constructor;\")()}catch(e){}},$gOPD=require_gopd(),$defineProperty=require_es_define_property(),throwTypeError=function(){throw new $TypeError},ThrowTypeError=$gOPD?function(){try{return arguments.callee,throwTypeError}catch(calleeThrows){try{return $gOPD(arguments,\"callee\").get}catch(gOPDthrows){return throwTypeError}}}():throwTypeError,hasSymbols=require_has_symbols()(),getProto=require_get_proto(),$ObjectGPO=require_Object_getPrototypeOf(),$ReflectGPO=require_Reflect_getPrototypeOf(),$apply=require_functionApply(),$call=require_functionCall(),needsEval={},TypedArray=typeof Uint8Array>\"u\"||!getProto?undefined2:getProto(Uint8Array),INTRINSICS={__proto__:null,\"%AggregateError%\":typeof AggregateError>\"u\"?undefined2:AggregateError,\"%Array%\":Array,\"%ArrayBuffer%\":typeof ArrayBuffer>\"u\"?undefined2:ArrayBuffer,\"%ArrayIteratorPrototype%\":hasSymbols&&getProto?getProto([][Symbol.iterator]()):undefined2,\"%AsyncFromSyncIteratorPrototype%\":undefined2,\"%AsyncFunction%\":needsEval,\"%AsyncGenerator%\":needsEval,\"%AsyncGeneratorFunction%\":needsEval,\"%AsyncIteratorPrototype%\":needsEval,\"%Atomics%\":typeof Atomics>\"u\"?undefined2:Atomics,\"%BigInt%\":typeof BigInt>\"u\"?undefined2:BigInt,\"%BigInt64Array%\":typeof BigInt64Array>\"u\"?undefined2:BigInt64Array,\"%BigUint64Array%\":typeof BigUint64Array>\"u\"?undefined2:BigUint64Array,\"%Boolean%\":Boolean,\"%DataView%\":typeof DataView>\"u\"?undefined2:DataView,\"%Date%\":Date,\"%decodeURI%\":decodeURI,\"%decodeURIComponent%\":decodeURIComponent,\"%encodeURI%\":encodeURI,\"%encodeURIComponent%\":encodeURIComponent,\"%Error%\":$Error,\"%eval%\":eval,\"%EvalError%\":$EvalError,\"%Float16Array%\":typeof Float16Array>\"u\"?undefined2:Float16Array,\"%Float32Array%\":typeof Float32Array>\"u\"?undefined2:Float32Array,\"%Float64Array%\":typeof Float64Array>\"u\"?undefined2:Float64Array,\"%FinalizationRegistry%\":typeof FinalizationRegistry>\"u\"?undefined2:FinalizationRegistry,\"%Function%\":$Function,\"%GeneratorFunction%\":needsEval,\"%Int8Array%\":typeof Int8Array>\"u\"?undefined2:Int8Array,\"%Int16Array%\":typeof Int16Array>\"u\"?undefined2:Int16Array,\"%Int32Array%\":typeof Int32Array>\"u\"?undefined2:Int32Array,\"%isFinite%\":isFinite,\"%isNaN%\":isNaN,\"%IteratorPrototype%\":hasSymbols&&getProto?getProto(getProto([][Symbol.iterator]())):undefined2,\"%JSON%\":typeof JSON===\"object\"?JSON:undefined2,\"%Map%\":typeof Map>\"u\"?undefined2:Map,\"%MapIteratorPrototype%\":typeof Map>\"u\"||!hasSymbols||!getProto?undefined2:getProto(new Map()[Symbol.iterator]()),\"%Math%\":Math,\"%Number%\":Number,\"%Object%\":$Object,\"%Object.getOwnPropertyDescriptor%\":$gOPD,\"%parseFloat%\":parseFloat,\"%parseInt%\":parseInt,\"%Promise%\":typeof Promise>\"u\"?undefined2:Promise,\"%Proxy%\":typeof Proxy>\"u\"?undefined2:Proxy,\"%RangeError%\":$RangeError,\"%ReferenceError%\":$ReferenceError,\"%Reflect%\":typeof Reflect>\"u\"?undefined2:Reflect,\"%RegExp%\":RegExp,\"%Set%\":typeof Set>\"u\"?undefined2:Set,\"%SetIteratorPrototype%\":typeof Set>\"u\"||!hasSymbols||!getProto?undefined2:getProto(new Set()[Symbol.iterator]()),\"%SharedArrayBuffer%\":typeof SharedArrayBuffer>\"u\"?undefined2:SharedArrayBuffer,\"%String%\":String,\"%StringIteratorPrototype%\":hasSymbols&&getProto?getProto(\"\"[Symbol.iterator]()):undefined2,\"%Symbol%\":hasSymbols?Symbol:undefined2,\"%SyntaxError%\":$SyntaxError,\"%ThrowTypeError%\":ThrowTypeError,\"%TypedArray%\":TypedArray,\"%TypeError%\":$TypeError,\"%Uint8Array%\":typeof Uint8Array>\"u\"?undefined2:Uint8Array,\"%Uint8ClampedArray%\":typeof Uint8ClampedArray>\"u\"?undefined2:Uint8ClampedArray,\"%Uint16Array%\":typeof Uint16Array>\"u\"?undefined2:Uint16Array,\"%Uint32Array%\":typeof Uint32Array>\"u\"?undefined2:Uint32Array,\"%URIError%\":$URIError,\"%WeakMap%\":typeof WeakMap>\"u\"?undefined2:WeakMap,\"%WeakRef%\":typeof WeakRef>\"u\"?undefined2:WeakRef,\"%WeakSet%\":typeof WeakSet>\"u\"?undefined2:WeakSet,\"%Function.prototype.call%\":$call,\"%Function.prototype.apply%\":$apply,\"%Object.defineProperty%\":$defineProperty,\"%Object.getPrototypeOf%\":$ObjectGPO,\"%Math.abs%\":abs,\"%Math.floor%\":floor,\"%Math.max%\":max,\"%Math.min%\":min,\"%Math.pow%\":pow,\"%Math.round%\":round,\"%Math.sign%\":sign,\"%Reflect.getPrototypeOf%\":$ReflectGPO};if(getProto)try{null.error}catch(e){errorProto=getProto(getProto(e)),INTRINSICS[\"%Error.prototype%\"]=errorProto}var errorProto,doEval=function doEval(name){var value;if(name===\"%AsyncFunction%\")value=getEvalledConstructor(\"async function () {}\");else if(name===\"%GeneratorFunction%\")value=getEvalledConstructor(\"function* () {}\");else if(name===\"%AsyncGeneratorFunction%\")value=getEvalledConstructor(\"async function* () {}\");else if(name===\"%AsyncGenerator%\"){var fn=doEval(\"%AsyncGeneratorFunction%\");if(fn)value=fn.prototype}else if(name===\"%AsyncIteratorPrototype%\"){var gen=doEval(\"%AsyncGenerator%\");if(gen&&getProto)value=getProto(gen.prototype)}return INTRINSICS[name]=value,value},LEGACY_ALIASES={__proto__:null,\"%ArrayBufferPrototype%\":[\"ArrayBuffer\",\"prototype\"],\"%ArrayPrototype%\":[\"Array\",\"prototype\"],\"%ArrayProto_entries%\":[\"Array\",\"prototype\",\"entries\"],\"%ArrayProto_forEach%\":[\"Array\",\"prototype\",\"forEach\"],\"%ArrayProto_keys%\":[\"Array\",\"prototype\",\"keys\"],\"%ArrayProto_values%\":[\"Array\",\"prototype\",\"values\"],\"%AsyncFunctionPrototype%\":[\"AsyncFunction\",\"prototype\"],\"%AsyncGenerator%\":[\"AsyncGeneratorFunction\",\"prototype\"],\"%AsyncGeneratorPrototype%\":[\"AsyncGeneratorFunction\",\"prototype\",\"prototype\"],\"%BooleanPrototype%\":[\"Boolean\",\"prototype\"],\"%DataViewPrototype%\":[\"DataView\",\"prototype\"],\"%DatePrototype%\":[\"Date\",\"prototype\"],\"%ErrorPrototype%\":[\"Error\",\"prototype\"],\"%EvalErrorPrototype%\":[\"EvalError\",\"prototype\"],\"%Float32ArrayPrototype%\":[\"Float32Array\",\"prototype\"],\"%Float64ArrayPrototype%\":[\"Float64Array\",\"prototype\"],\"%FunctionPrototype%\":[\"Function\",\"prototype\"],\"%Generator%\":[\"GeneratorFunction\",\"prototype\"],\"%GeneratorPrototype%\":[\"GeneratorFunction\",\"prototype\",\"prototype\"],\"%Int8ArrayPrototype%\":[\"Int8Array\",\"prototype\"],\"%Int16ArrayPrototype%\":[\"Int16Array\",\"prototype\"],\"%Int32ArrayPrototype%\":[\"Int32Array\",\"prototype\"],\"%JSONParse%\":[\"JSON\",\"parse\"],\"%JSONStringify%\":[\"JSON\",\"stringify\"],\"%MapPrototype%\":[\"Map\",\"prototype\"],\"%NumberPrototype%\":[\"Number\",\"prototype\"],\"%ObjectPrototype%\":[\"Object\",\"prototype\"],\"%ObjProto_toString%\":[\"Object\",\"prototype\",\"toString\"],\"%ObjProto_valueOf%\":[\"Object\",\"prototype\",\"valueOf\"],\"%PromisePrototype%\":[\"Promise\",\"prototype\"],\"%PromiseProto_then%\":[\"Promise\",\"prototype\",\"then\"],\"%Promise_all%\":[\"Promise\",\"all\"],\"%Promise_reject%\":[\"Promise\",\"reject\"],\"%Promise_resolve%\":[\"Promise\",\"resolve\"],\"%RangeErrorPrototype%\":[\"RangeError\",\"prototype\"],\"%ReferenceErrorPrototype%\":[\"ReferenceError\",\"prototype\"],\"%RegExpPrototype%\":[\"RegExp\",\"prototype\"],\"%SetPrototype%\":[\"Set\",\"prototype\"],\"%SharedArrayBufferPrototype%\":[\"SharedArrayBuffer\",\"prototype\"],\"%StringPrototype%\":[\"String\",\"prototype\"],\"%SymbolPrototype%\":[\"Symbol\",\"prototype\"],\"%SyntaxErrorPrototype%\":[\"SyntaxError\",\"prototype\"],\"%TypedArrayPrototype%\":[\"TypedArray\",\"prototype\"],\"%TypeErrorPrototype%\":[\"TypeError\",\"prototype\"],\"%Uint8ArrayPrototype%\":[\"Uint8Array\",\"prototype\"],\"%Uint8ClampedArrayPrototype%\":[\"Uint8ClampedArray\",\"prototype\"],\"%Uint16ArrayPrototype%\":[\"Uint16Array\",\"prototype\"],\"%Uint32ArrayPrototype%\":[\"Uint32Array\",\"prototype\"],\"%URIErrorPrototype%\":[\"URIError\",\"prototype\"],\"%WeakMapPrototype%\":[\"WeakMap\",\"prototype\"],\"%WeakSetPrototype%\":[\"WeakSet\",\"prototype\"]},bind=require_function_bind(),hasOwn=require_hasown(),$concat=bind.call($call,Array.prototype.concat),$spliceApply=bind.call($apply,Array.prototype.splice),$replace=bind.call($call,String.prototype.replace),$strSlice=bind.call($call,String.prototype.slice),$exec=bind.call($call,RegExp.prototype.exec),rePropName=/[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g,reEscapeChar=/\\\\(\\\\)?/g,stringToPath=function(string){var first=$strSlice(string,0,1),last=$strSlice(string,-1);if(first===\"%\"&&last!==\"%\")throw new $SyntaxError(\"invalid intrinsic syntax, expected closing `%`\");else if(last===\"%\"&&first!==\"%\")throw new $SyntaxError(\"invalid intrinsic syntax, expected opening `%`\");var result=[];return $replace(string,rePropName,function(match,number,quote,subString){result[result.length]=quote?$replace(subString,reEscapeChar,\"$1\"):number||match}),result},getBaseIntrinsic=function(name,allowMissing){var intrinsicName=name,alias;if(hasOwn(LEGACY_ALIASES,intrinsicName))alias=LEGACY_ALIASES[intrinsicName],intrinsicName=\"%\"+alias[0]+\"%\";if(hasOwn(INTRINSICS,intrinsicName)){var value=INTRINSICS[intrinsicName];if(value===needsEval)value=doEval(intrinsicName);if(typeof value>\"u\"&&!allowMissing)throw new $TypeError(\"intrinsic \"+name+\" exists, but is not available. Please file an issue!\");return{alias,name:intrinsicName,value}}throw new $SyntaxError(\"intrinsic \"+name+\" does not exist!\")};module.exports=function(name,allowMissing){if(typeof name!==\"string\"||name.length===0)throw new $TypeError(\"intrinsic name must be a non-empty string\");if(arguments.length>1&&typeof allowMissing!==\"boolean\")throw new $TypeError('\"allowMissing\" argument must be a boolean');if($exec(/^%?[^%]*%?$/,name)===null)throw new $SyntaxError(\"`%` may not be present anywhere but at the beginning and end of the intrinsic name\");var parts=stringToPath(name),intrinsicBaseName=parts.length>0?parts[0]:\"\",intrinsic=getBaseIntrinsic(\"%\"+intrinsicBaseName+\"%\",allowMissing),intrinsicRealName=intrinsic.name,value=intrinsic.value,skipFurtherCaching=!1,alias=intrinsic.alias;if(alias)intrinsicBaseName=alias[0],$spliceApply(parts,$concat([0,1],alias));for(var i=1,isOwn=!0;i=parts.length){var desc=$gOPD(value,part);if(isOwn=!!desc,isOwn&&\"get\"in desc&&!(\"originalValue\"in desc.get))value=desc.get;else value=value[part]}else isOwn=hasOwn(value,part),value=value[part];if(isOwn&&!skipFurtherCaching)INTRINSICS[intrinsicRealName]=value}}return value}});var require_call_bound=__commonJS((exports,module)=>{var GetIntrinsic=require_get_intrinsic(),callBindBasic=require_call_bind_apply_helpers(),$indexOf=callBindBasic([GetIntrinsic(\"%String.prototype.indexOf%\")]);module.exports=function(name,allowMissing){var intrinsic=GetIntrinsic(name,!!allowMissing);if(typeof intrinsic===\"function\"&&$indexOf(name,\".prototype.\")>-1)return callBindBasic([intrinsic]);return intrinsic}});var require_is_callable=__commonJS((exports,module)=>{var fnToStr=Function.prototype.toString,reflectApply=typeof Reflect===\"object\"&&Reflect!==null&&Reflect.apply,badArrayLike,isCallableMarker;if(typeof reflectApply===\"function\"&&typeof Object.defineProperty===\"function\")try{badArrayLike=Object.defineProperty({},\"length\",{get:function(){throw isCallableMarker}}),isCallableMarker={},reflectApply(function(){throw 42},null,badArrayLike)}catch(_){if(_!==isCallableMarker)reflectApply=null}else reflectApply=null;var constructorRegex=/^\\s*class\\b/,isES6ClassFn=function(value){try{var fnStr=fnToStr.call(value);return constructorRegex.test(fnStr)}catch(e){return!1}},tryFunctionObject=function(value){try{if(isES6ClassFn(value))return!1;return fnToStr.call(value),!0}catch(e){return!1}},toStr=Object.prototype.toString,objectClass=\"[object Object]\",fnClass=\"[object Function]\",genClass=\"[object GeneratorFunction]\",ddaClass=\"[object HTMLAllCollection]\",ddaClass2=\"[object HTML document.all class]\",ddaClass3=\"[object HTMLCollection]\",hasToStringTag=typeof Symbol===\"function\"&&!!Symbol.toStringTag,isIE68=!(0 in[,]),isDDA=function(){return!1};if(typeof document===\"object\"){if(all=document.all,toStr.call(all)===toStr.call(document.all))isDDA=function(value){if((isIE68||!value)&&(typeof value>\"u\"||typeof value===\"object\"))try{var str=toStr.call(value);return(str===ddaClass||str===ddaClass2||str===ddaClass3||str===objectClass)&&value(\"\")==null}catch(e){}return!1}}var all;module.exports=reflectApply?function(value){if(isDDA(value))return!0;if(!value)return!1;if(typeof value!==\"function\"&&typeof value!==\"object\")return!1;try{reflectApply(value,null,badArrayLike)}catch(e){if(e!==isCallableMarker)return!1}return!isES6ClassFn(value)&&tryFunctionObject(value)}:function(value){if(isDDA(value))return!0;if(!value)return!1;if(typeof value!==\"function\"&&typeof value!==\"object\")return!1;if(hasToStringTag)return tryFunctionObject(value);if(isES6ClassFn(value))return!1;var strClass=toStr.call(value);if(strClass!==fnClass&&strClass!==genClass&&!/^\\[object HTML/.test(strClass))return!1;return tryFunctionObject(value)}});var require_for_each=__commonJS((exports,module)=>{var isCallable=require_is_callable(),toStr=Object.prototype.toString,hasOwnProperty=Object.prototype.hasOwnProperty,forEachArray=function(array,iterator,receiver){for(var i=0,len=array.length;i=3)receiver=thisArg;if(isArray(list))forEachArray(list,iterator,receiver);else if(typeof list===\"string\")forEachString(list,iterator,receiver);else forEachObject(list,iterator,receiver)}});var require_possible_typed_array_names=__commonJS((exports,module)=>{module.exports=[\"Float16Array\",\"Float32Array\",\"Float64Array\",\"Int8Array\",\"Int16Array\",\"Int32Array\",\"Uint8Array\",\"Uint8ClampedArray\",\"Uint16Array\",\"Uint32Array\",\"BigInt64Array\",\"BigUint64Array\"]});var require_available_typed_arrays=__commonJS((exports,module)=>{var possibleNames=require_possible_typed_array_names(),g=typeof globalThis>\"u\"?globalThis:globalThis;module.exports=function(){var out=[];for(var i=0;i{var $defineProperty=require_es_define_property(),$SyntaxError=require_syntax(),$TypeError=require_type(),gopd=require_gopd();module.exports=function(obj,property,value){if(!obj||typeof obj!==\"object\"&&typeof obj!==\"function\")throw new $TypeError(\"`obj` must be an object or a function`\");if(typeof property!==\"string\"&&typeof property!==\"symbol\")throw new $TypeError(\"`property` must be a string or a symbol`\");if(arguments.length>3&&typeof arguments[3]!==\"boolean\"&&arguments[3]!==null)throw new $TypeError(\"`nonEnumerable`, if provided, must be a boolean or null\");if(arguments.length>4&&typeof arguments[4]!==\"boolean\"&&arguments[4]!==null)throw new $TypeError(\"`nonWritable`, if provided, must be a boolean or null\");if(arguments.length>5&&typeof arguments[5]!==\"boolean\"&&arguments[5]!==null)throw new $TypeError(\"`nonConfigurable`, if provided, must be a boolean or null\");if(arguments.length>6&&typeof arguments[6]!==\"boolean\")throw new $TypeError(\"`loose`, if provided, must be a boolean\");var nonEnumerable=arguments.length>3?arguments[3]:null,nonWritable=arguments.length>4?arguments[4]:null,nonConfigurable=arguments.length>5?arguments[5]:null,loose=arguments.length>6?arguments[6]:!1,desc=!!gopd&&gopd(obj,property);if($defineProperty)$defineProperty(obj,property,{configurable:nonConfigurable===null&&desc?desc.configurable:!nonConfigurable,enumerable:nonEnumerable===null&&desc?desc.enumerable:!nonEnumerable,value,writable:nonWritable===null&&desc?desc.writable:!nonWritable});else if(loose||!nonEnumerable&&!nonWritable&&!nonConfigurable)obj[property]=value;else throw new $SyntaxError(\"This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.\")}});var require_has_property_descriptors=__commonJS((exports,module)=>{var $defineProperty=require_es_define_property(),hasPropertyDescriptors=function(){return!!$defineProperty};hasPropertyDescriptors.hasArrayLengthDefineBug=function(){if(!$defineProperty)return null;try{return $defineProperty([],\"length\",{value:1}).length!==1}catch(e){return!0}};module.exports=hasPropertyDescriptors});var require_set_function_length=__commonJS((exports,module)=>{var GetIntrinsic=require_get_intrinsic(),define=require_define_data_property(),hasDescriptors=require_has_property_descriptors()(),gOPD=require_gopd(),$TypeError=require_type(),$floor=GetIntrinsic(\"%Math.floor%\");module.exports=function(fn,length){if(typeof fn!==\"function\")throw new $TypeError(\"`fn` is not a function\");if(typeof length!==\"number\"||length<0||length>4294967295||$floor(length)!==length)throw new $TypeError(\"`length` must be a positive 32-bit integer\");var loose=arguments.length>2&&!!arguments[2],functionLengthIsConfigurable=!0,functionLengthIsWritable=!0;if(\"length\"in fn&&gOPD){var desc=gOPD(fn,\"length\");if(desc&&!desc.configurable)functionLengthIsConfigurable=!1;if(desc&&!desc.writable)functionLengthIsWritable=!1}if(functionLengthIsConfigurable||functionLengthIsWritable||!loose)if(hasDescriptors)define(fn,\"length\",length,!0,!0);else define(fn,\"length\",length);return fn}});var require_applyBind=__commonJS((exports,module)=>{var bind=require_function_bind(),$apply=require_functionApply(),actualApply=require_actualApply();module.exports=function(){return actualApply(bind,$apply,arguments)}});var require_call_bind=__commonJS((exports,module)=>{var setFunctionLength=require_set_function_length(),$defineProperty=require_es_define_property(),callBindBasic=require_call_bind_apply_helpers(),applyBind=require_applyBind();module.exports=function(originalFunction){var func=callBindBasic(arguments),adjustedLength=originalFunction.length-(arguments.length-1);return setFunctionLength(func,1+(adjustedLength>0?adjustedLength:0),!0)};if($defineProperty)$defineProperty(module.exports,\"apply\",{value:applyBind});else module.exports.apply=applyBind});var require_shams2=__commonJS((exports,module)=>{var hasSymbols=require_shams();module.exports=function(){return hasSymbols()&&!!Symbol.toStringTag}});var require_which_typed_array=__commonJS((exports,module)=>{var forEach=require_for_each(),availableTypedArrays=require_available_typed_arrays(),callBind=require_call_bind(),callBound=require_call_bound(),gOPD=require_gopd(),getProto=require_get_proto(),$toString=callBound(\"Object.prototype.toString\"),hasToStringTag=require_shams2()(),g=typeof globalThis>\"u\"?globalThis:globalThis,typedArrays=availableTypedArrays(),$slice=callBound(\"String.prototype.slice\"),$indexOf=callBound(\"Array.prototype.indexOf\",!0)||function(array,value){for(var i=0;i-1)return tag;if(tag!==\"Object\")return!1;return trySlices(value)}if(!gOPD)return null;return tryTypedArrays(value)}});var require_is_typed_array=__commonJS((exports,module)=>{var whichTypedArray=require_which_typed_array();module.exports=function(value){return!!whichTypedArray(value)}});var require_typed_array_buffer=__commonJS((exports,module)=>{var $TypeError=require_type(),callBound=require_call_bound(),$typedArrayBuffer=callBound(\"TypedArray.prototype.buffer\",!0),isTypedArray=require_is_typed_array();module.exports=$typedArrayBuffer||function(x){if(!isTypedArray(x))throw new $TypeError(\"Not a Typed Array\");return x.buffer}});var require_to_buffer=__commonJS((exports,module)=>{var Buffer2=require_safe_buffer().Buffer,isArray=require_isarray(),typedArrayBuffer=require_typed_array_buffer(),isView=ArrayBuffer.isView||function(obj){try{return typedArrayBuffer(obj),!0}catch(e){return!1}},useUint8Array=typeof Uint8Array<\"u\",useArrayBuffer=typeof ArrayBuffer<\"u\"&&typeof Uint8Array<\"u\",useFromArrayBuffer=useArrayBuffer&&(Buffer2.prototype instanceof Uint8Array||Buffer2.TYPED_ARRAY_SUPPORT);module.exports=function(data,encoding){if(Buffer2.isBuffer(data)){if(data.constructor&&!(\"isBuffer\"in data))return Buffer2.from(data);return data}if(typeof data===\"string\")return Buffer2.from(data,encoding);if(useArrayBuffer&&isView(data)){if(data.byteLength===0)return Buffer2.alloc(0);if(useFromArrayBuffer){var res=Buffer2.from(data.buffer,data.byteOffset,data.byteLength);if(res.byteLength===data.byteLength)return res}var uint8=data instanceof Uint8Array?data:new Uint8Array(data.buffer,data.byteOffset,data.byteLength),result=Buffer2.from(uint8);if(result.length===data.byteLength)return result}if(useUint8Array&&data instanceof Uint8Array)return Buffer2.from(data);var isArr=isArray(data);if(isArr)for(var i=0;i255||~~x!==x)throw RangeError(\"Array items must be numbers in the range 0-255.\")}if(isArr||Buffer2.isBuffer(data)&&data.constructor&&typeof data.constructor.isBuffer===\"function\"&&data.constructor.isBuffer(data))return Buffer2.from(data);throw TypeError('The \"data\" argument must be a string, an Array, a Buffer, a Uint8Array, or a DataView.')}});var require_to_buffer2=__commonJS((exports,module)=>{var Buffer2=require_safe_buffer().Buffer,toBuffer=require_to_buffer(),useUint8Array=typeof Uint8Array<\"u\",useArrayBuffer=useUint8Array&&typeof ArrayBuffer<\"u\",isView=useArrayBuffer&&ArrayBuffer.isView;module.exports=function(thing,encoding,name){if(typeof thing===\"string\"||Buffer2.isBuffer(thing)||useUint8Array&&thing instanceof Uint8Array||isView&&isView(thing))return toBuffer(thing,encoding);throw TypeError(name+\" must be a string, a Buffer, a Uint8Array, or a DataView\")}});var require_sync=__commonJS((exports,module)=>{var sizes={__proto__:null,md5:16,sha1:20,sha224:28,sha256:32,sha384:48,sha512:64,\"sha512-256\":32,rmd160:20,ripemd160:20},mapping={__proto__:null,\"sha-1\":\"sha1\",\"sha-224\":\"sha224\",\"sha-256\":\"sha256\",\"sha-384\":\"sha384\",\"sha-512\":\"sha512\",\"ripemd-160\":\"ripemd160\"},createHmac=require_create_hmac(),Buffer2=require_safe_buffer().Buffer,checkParameters=require_precondition(),defaultEncoding=require_default_encoding(),toBuffer=require_to_buffer2();function pbkdf2(password,salt,iterations,keylen,digest){checkParameters(iterations,keylen),password=toBuffer(password,defaultEncoding,\"Password\"),salt=toBuffer(salt,defaultEncoding,\"Salt\");var lowerDigest=(digest||\"sha1\").toLowerCase(),mappedDigest=mapping[lowerDigest]||lowerDigest,size=sizes[mappedDigest];if(typeof size!==\"number\"||!size)throw TypeError(\"Digest algorithm not supported: \"+digest);var DK=Buffer2.allocUnsafe(keylen),block1=Buffer2.allocUnsafe(salt.length+4);salt.copy(block1,0,0,salt.length);var destPos=0,hLen=size,l=Math.ceil(keylen/hLen);for(var i=1;i<=l;i++){block1.writeUInt32BE(i,salt.length);var T=createHmac(mappedDigest,password).update(block1).digest(),U=T;for(var j=1;j{var Buffer2=require_safe_buffer().Buffer,checkParameters=require_precondition(),defaultEncoding=require_default_encoding(),sync=require_sync(),toBuffer=require_to_buffer2(),ZERO_BUF,subtle=globalThis.crypto&&globalThis.crypto.subtle,toBrowser={sha:\"SHA-1\",\"sha-1\":\"SHA-1\",sha1:\"SHA-1\",sha256:\"SHA-256\",\"sha-256\":\"SHA-256\",sha384:\"SHA-384\",\"sha-384\":\"SHA-384\",\"sha-512\":\"SHA-512\",sha512:\"SHA-512\"},checks=[],nextTick;function getNextTick(){if(nextTick)return nextTick;if(globalThis.process&&globalThis.process.nextTick)nextTick=globalThis.process.nextTick;else if(globalThis.queueMicrotask)nextTick=globalThis.queueMicrotask;else if(globalThis.setImmediate)nextTick=globalThis.setImmediate;else nextTick=globalThis.setTimeout;return nextTick}function browserPbkdf2(password,salt,iterations,length,algo){return subtle.importKey(\"raw\",password,{name:\"PBKDF2\"},!1,[\"deriveBits\"]).then(function(key){return subtle.deriveBits({name:\"PBKDF2\",salt,iterations,hash:{name:algo}},key,length<<3)}).then(function(res){return Buffer2.from(res)})}function checkNative(algo){if(globalThis.process&&!globalThis.process.browser)return Promise.resolve(!1);if(!subtle||!subtle.importKey||!subtle.deriveBits)return Promise.resolve(!1);if(checks[algo]!==void 0)return checks[algo];ZERO_BUF=ZERO_BUF||Buffer2.alloc(8);var prom=browserPbkdf2(ZERO_BUF,ZERO_BUF,10,128,algo).then(function(){return!0},function(){return!1});return checks[algo]=prom,prom}function resolvePromise(promise,callback){promise.then(function(out){getNextTick()(function(){callback(null,out)})},function(e){getNextTick()(function(){callback(e)})})}module.exports=function(password,salt,iterations,keylen,digest,callback){if(typeof digest===\"function\")callback=digest,digest=void 0;if(checkParameters(iterations,keylen),password=toBuffer(password,defaultEncoding,\"Password\"),salt=toBuffer(salt,defaultEncoding,\"Salt\"),typeof callback!==\"function\")throw Error(\"No callback provided to pbkdf2\");digest=digest||\"sha1\";var algo=toBrowser[digest.toLowerCase()];if(!algo||typeof globalThis.Promise!==\"function\"){getNextTick()(function(){var out;try{out=sync(password,salt,iterations,keylen,digest)}catch(e){callback(e);return}callback(null,out)});return}resolvePromise(checkNative(algo).then(function(resp){if(resp)return browserPbkdf2(password,salt,iterations,keylen,algo);return sync(password,salt,iterations,keylen,digest)}),callback)}});var require_pbkdf2=__commonJS((exports)=>{var nativeImpl=require(\"crypto\"),checkParameters=require_precondition(),defaultEncoding=require_default_encoding(),toBuffer=require_to_buffer2();function nativePBKDF2(password,salt,iterations,keylen,digest,callback){if(checkParameters(iterations,keylen),password=toBuffer(password,defaultEncoding,\"Password\"),salt=toBuffer(salt,defaultEncoding,\"Salt\"),typeof digest===\"function\")callback=digest,digest=\"sha1\";if(typeof callback!==\"function\")throw Error(\"No callback provided to pbkdf2\");return nativeImpl.pbkdf2(password,salt,iterations,keylen,digest,callback)}function nativePBKDF2Sync(password,salt,iterations,keylen,digest){return checkParameters(iterations,keylen),password=toBuffer(password,defaultEncoding,\"Password\"),salt=toBuffer(salt,defaultEncoding,\"Salt\"),digest=digest||\"sha1\",nativeImpl.pbkdf2Sync(password,salt,iterations,keylen,digest)}if(!nativeImpl.pbkdf2Sync||nativeImpl.pbkdf2Sync.toString().indexOf(\"keylen, digest\")===-1)exports.pbkdf2Sync=require_sync(),exports.pbkdf2=require_async();else exports.pbkdf2Sync=nativePBKDF2Sync,exports.pbkdf2=nativePBKDF2});var require_browserify_cipher=__commonJS((exports)=>{var crypto2=require(\"crypto\");exports.createCipher=exports.Cipher=crypto2.createCipher;exports.createCipheriv=exports.Cipheriv=crypto2.createCipheriv;exports.createDecipher=exports.Decipher=crypto2.createDecipher;exports.createDecipheriv=exports.Decipheriv=crypto2.createDecipheriv;exports.listCiphers=exports.getCiphers=crypto2.getCiphers});var require_diffie_hellman=__commonJS((exports)=>{var crypto2=require(\"crypto\");exports.DiffieHellmanGroup=crypto2.DiffieHellmanGroup;exports.createDiffieHellmanGroup=crypto2.createDiffieHellmanGroup;exports.getDiffieHellman=crypto2.getDiffieHellman;exports.createDiffieHellman=crypto2.createDiffieHellman;exports.DiffieHellman=crypto2.DiffieHellman});var require_browserify_sign=__commonJS((exports)=>{var crypto2=require(\"crypto\");exports.createSign=crypto2.createSign;exports.Sign=crypto2.Sign;exports.createVerify=crypto2.createVerify;exports.Verify=crypto2.Verify});var require_package=__commonJS((exports,module)=>{module.exports={name:\"elliptic\",version:\"6.6.1\",description:\"EC cryptography\",main:\"lib/elliptic.js\",files:[\"lib\"],scripts:{lint:\"eslint lib test\",\"lint:fix\":\"npm run lint -- --fix\",unit:\"istanbul test _mocha --reporter=spec test/index.js\",test:\"npm run lint && npm run unit\",version:\"grunt dist && git add dist/\"},repository:{type:\"git\",url:\"git@github.com:indutny/elliptic\"},keywords:[\"EC\",\"Elliptic\",\"curve\",\"Cryptography\"],author:\"Fedor Indutny \",license:\"MIT\",bugs:{url:\"https://github.com/indutny/elliptic/issues\"},homepage:\"https://github.com/indutny/elliptic\",devDependencies:{brfs:\"^2.0.2\",coveralls:\"^3.1.0\",eslint:\"^7.6.0\",grunt:\"^1.2.1\",\"grunt-browserify\":\"^5.3.0\",\"grunt-cli\":\"^1.3.2\",\"grunt-contrib-connect\":\"^3.0.0\",\"grunt-contrib-copy\":\"^1.0.0\",\"grunt-contrib-uglify\":\"^5.0.0\",\"grunt-mocha-istanbul\":\"^5.0.2\",\"grunt-saucelabs\":\"^9.0.1\",istanbul:\"^0.4.5\",mocha:\"^8.0.1\"},dependencies:{\"bn.js\":\"^4.11.9\",brorand:\"^1.1.0\",\"hash.js\":\"^1.0.0\",\"hmac-drbg\":\"^1.0.1\",inherits:\"^2.0.4\",\"minimalistic-assert\":\"^1.0.1\",\"minimalistic-crypto-utils\":\"^1.0.1\"}}});var require_bn=__commonJS((exports,module)=>{(function(module2,exports2){function assert(val,msg){if(!val)throw Error(msg||\"Assertion failed\")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;if(this.negative=0,this.words=null,this.length=0,this.red=null,number!==null){if(base===\"le\"||base===\"be\")endian=base,base=10;this._init(number||0,base||10,endian||\"be\")}}if(typeof module2===\"object\")module2.exports=BN;else exports2.BN=BN;BN.BN=BN,BN.wordSize=26;var Buffer2;try{if(typeof window<\"u\"&&typeof window.Buffer<\"u\")Buffer2=window.Buffer;else Buffer2=require(\"buffer\").Buffer}catch(e){}BN.isBN=function(num){if(num instanceof BN)return!0;return num!==null&&typeof num===\"object\"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){if(left.cmp(right)>0)return left;return right},BN.min=function(left,right){if(left.cmp(right)<0)return left;return right},BN.prototype._init=function(number,base,endian){if(typeof number===\"number\")return this._initNumber(number,base,endian);if(typeof number===\"object\")return this._initArray(number,base,endian);if(base===\"hex\")base=16;assert(base===(base|0)&&base>=2&&base<=36),number=number.toString().replace(/\\s+/g,\"\");var start=0;if(number[0]===\"-\")start++,this.negative=1;if(start=0;i-=3)if(w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,off+=24,off>=26)off-=26,j++}else if(endian===\"le\"){for(i=0,j=0;i>>26-off&67108863,off+=24,off>=26)off-=26,j++}return this.strip()};function parseHex4Bits(string,index){var c=string.charCodeAt(index);if(c>=65&&c<=70)return c-55;else if(c>=97&&c<=102)return c-87;else return c-48&15}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);if(index-1>=lowerBound)r|=parseHex4Bits(string,index-1)<<4;return r}BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=Array(this.length);for(var i=0;i=start;i-=2)if(w=parseHexByte(number,start,i)<=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8;else{var parseLength=number.length-start;for(i=parseLength%2===0?start+1:start;i=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8}this.strip()};function parseBase(str,start,end,mul){var r=0,len=Math.min(str.length,end);for(var i=start;i=49)r+=c-49+10;else if(c>=17)r+=c-17+10;else r+=c}return r}BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0;for(var i=start;i1&&this.words[this.length-1]===0)this.length--;return this._normSign()},BN.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},BN.prototype.inspect=function(){return(this.red?\"\"};var zeros=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(BN.prototype.toString=function(base,padding){base=base||10,padding=padding|0||1;var out;if(base===16||base===\"hex\"){out=\"\";var off=0,carry=0;for(var i=0;i>>24-off&16777215,off+=2,off>=26)off-=26,i--;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out=\"\";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modn(groupBase).toString(base);if(c=c.idivn(groupBase),!c.isZero())out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.isZero())out=\"0\"+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}assert(!1,\"Base should be between 2 and 36\")},BN.prototype.toNumber=function(){var ret=this.words[0];if(this.length===2)ret+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)ret+=4503599627370496+this.words[1]*67108864;else if(this.length>2)assert(!1,\"Number can only safely store up to 53 bits\");return this.negative!==0?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(typeof Buffer2<\"u\"),this.toArrayLike(Buffer2,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,\"byte array longer than desired length\"),assert(reqLength>0,\"Requested array length <= 0\"),this.strip();var littleEndian=endian===\"le\",res=new ArrayType(reqLength),b,i,q=this.clone();if(!littleEndian){for(i=0;i=4096)r+=13,t>>>=13;if(t>=64)r+=7,t>>>=7;if(t>=8)r+=4,t>>>=4;if(t>=2)r+=2,t>>>=2;return r+t};BN.prototype._zeroBits=function(w){if(w===0)return 26;var t=w,r=0;if((t&8191)===0)r+=13,t>>>=13;if((t&127)===0)r+=7,t>>>=7;if((t&15)===0)r+=4,t>>>=4;if((t&3)===0)r+=2,t>>>=2;if((t&1)===0)r++;return r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=Array(num.bitLength());for(var bit=0;bit>>wbit}return w}BN.prototype.zeroBits=function(){if(this.isZero())return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);return num.clone().ior(this)},BN.prototype.uor=function(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;if(this.length>num.length)b=num;else b=this;for(var i=0;inum.length)return this.clone().iand(num);return num.clone().iand(this)},BN.prototype.uand=function(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;if(this.length>num.length)a=this,b=num;else a=num,b=this;for(var i=0;inum.length)return this.clone().ixor(num);return num.clone().ixor(this)},BN.prototype.uxor=function(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert(typeof width===\"number\"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0,bitsLeft=width%26;if(this._expand(bytesNeeded),bitsLeft>0)bytesNeeded--;for(var i=0;i0)this.words[i]=~this.words[i]&67108863>>26-bitsLeft;return this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert(typeof bit===\"number\"&&bit>=0);var off=bit/26|0,wbit=bit%26;if(this._expand(off+1),val)this.words[off]=this.words[off]|1<num.length)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>>26;for(;carry!==0&&i>>26;if(this.length=a.length,carry!==0)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length)return this.clone().iadd(num);return num.clone().iadd(this)},BN.prototype.isub=function(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var cmp=this.cmp(num);if(cmp===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,b;if(cmp>0)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>26,this.words[i]=r&67108863;for(;carry!==0&&i>26,this.words[i]=r&67108863;if(carry===0&&i>>26,rword=carry&67108863,maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self2.length+1);j<=maxJ;j++){var i=k-j|0;a=self2.words[i]|0,b=num.words[j]|0,r=a*b+rword,ncarry+=r/67108864|0,rword=r&67108863}out.words[k]=rword|0,carry=ncarry|0}if(carry!==0)out.words[k]=carry|0;else out.length--;return out.strip()}var comb10MulTo=function(self2,num,out){var a=self2.words,b=num.words,o=out.words,c=0,lo,mid,hi,a0=a[0]|0,al0=a0&8191,ah0=a0>>>13,a1=a[1]|0,al1=a1&8191,ah1=a1>>>13,a2=a[2]|0,al2=a2&8191,ah2=a2>>>13,a3=a[3]|0,al3=a3&8191,ah3=a3>>>13,a4=a[4]|0,al4=a4&8191,ah4=a4>>>13,a5=a[5]|0,al5=a5&8191,ah5=a5>>>13,a6=a[6]|0,al6=a6&8191,ah6=a6>>>13,a7=a[7]|0,al7=a7&8191,ah7=a7>>>13,a8=a[8]|0,al8=a8&8191,ah8=a8>>>13,a9=a[9]|0,al9=a9&8191,ah9=a9>>>13,b0=b[0]|0,bl0=b0&8191,bh0=b0>>>13,b1=b[1]|0,bl1=b1&8191,bh1=b1>>>13,b2=b[2]|0,bl2=b2&8191,bh2=b2>>>13,b3=b[3]|0,bl3=b3&8191,bh3=b3>>>13,b4=b[4]|0,bl4=b4&8191,bh4=b4>>>13,b5=b[5]|0,bl5=b5&8191,bh5=b5>>>13,b6=b[6]|0,bl6=b6&8191,bh6=b6>>>13,b7=b[7]|0,bl7=b7&8191,bh7=b7>>>13,b8=b[8]|0,bl8=b8&8191,bh8=b8>>>13,b9=b[9]|0,bl9=b9&8191,bh9=b9>>>13;out.negative=self2.negative^num.negative,out.length=19,lo=Math.imul(al0,bl0),mid=Math.imul(al0,bh0),mid=mid+Math.imul(ah0,bl0)|0,hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=Math.imul(al1,bh0),mid=mid+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0),lo=lo+Math.imul(al0,bl1)|0,mid=mid+Math.imul(al0,bh1)|0,mid=mid+Math.imul(ah0,bl1)|0,hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=Math.imul(al2,bh0),mid=mid+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=mid+Math.imul(al1,bh1)|0,mid=mid+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0,lo=lo+Math.imul(al0,bl2)|0,mid=mid+Math.imul(al0,bh2)|0,mid=mid+Math.imul(ah0,bl2)|0,hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=Math.imul(al3,bh0),mid=mid+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=mid+Math.imul(al2,bh1)|0,mid=mid+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=mid+Math.imul(al1,bh2)|0,mid=mid+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0,lo=lo+Math.imul(al0,bl3)|0,mid=mid+Math.imul(al0,bh3)|0,mid=mid+Math.imul(ah0,bl3)|0,hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=Math.imul(al4,bh0),mid=mid+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=mid+Math.imul(al3,bh1)|0,mid=mid+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=mid+Math.imul(al2,bh2)|0,mid=mid+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=mid+Math.imul(al1,bh3)|0,mid=mid+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0,lo=lo+Math.imul(al0,bl4)|0,mid=mid+Math.imul(al0,bh4)|0,mid=mid+Math.imul(ah0,bl4)|0,hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=Math.imul(al5,bh0),mid=mid+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=mid+Math.imul(al4,bh1)|0,mid=mid+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=mid+Math.imul(al3,bh2)|0,mid=mid+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=mid+Math.imul(al2,bh3)|0,mid=mid+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=mid+Math.imul(al1,bh4)|0,mid=mid+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0,lo=lo+Math.imul(al0,bl5)|0,mid=mid+Math.imul(al0,bh5)|0,mid=mid+Math.imul(ah0,bl5)|0,hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=Math.imul(al6,bh0),mid=mid+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=mid+Math.imul(al5,bh1)|0,mid=mid+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=mid+Math.imul(al4,bh2)|0,mid=mid+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=mid+Math.imul(al3,bh3)|0,mid=mid+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=mid+Math.imul(al2,bh4)|0,mid=mid+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=mid+Math.imul(al1,bh5)|0,mid=mid+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0,lo=lo+Math.imul(al0,bl6)|0,mid=mid+Math.imul(al0,bh6)|0,mid=mid+Math.imul(ah0,bl6)|0,hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=Math.imul(al7,bh0),mid=mid+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=mid+Math.imul(al6,bh1)|0,mid=mid+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=mid+Math.imul(al5,bh2)|0,mid=mid+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=mid+Math.imul(al4,bh3)|0,mid=mid+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=mid+Math.imul(al3,bh4)|0,mid=mid+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=mid+Math.imul(al2,bh5)|0,mid=mid+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=mid+Math.imul(al1,bh6)|0,mid=mid+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0,lo=lo+Math.imul(al0,bl7)|0,mid=mid+Math.imul(al0,bh7)|0,mid=mid+Math.imul(ah0,bl7)|0,hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=Math.imul(al8,bh0),mid=mid+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=mid+Math.imul(al7,bh1)|0,mid=mid+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=mid+Math.imul(al6,bh2)|0,mid=mid+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=mid+Math.imul(al5,bh3)|0,mid=mid+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=mid+Math.imul(al4,bh4)|0,mid=mid+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=mid+Math.imul(al3,bh5)|0,mid=mid+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=mid+Math.imul(al2,bh6)|0,mid=mid+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=mid+Math.imul(al1,bh7)|0,mid=mid+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0,lo=lo+Math.imul(al0,bl8)|0,mid=mid+Math.imul(al0,bh8)|0,mid=mid+Math.imul(ah0,bl8)|0,hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=Math.imul(al9,bh0),mid=mid+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=mid+Math.imul(al8,bh1)|0,mid=mid+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=mid+Math.imul(al7,bh2)|0,mid=mid+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=mid+Math.imul(al6,bh3)|0,mid=mid+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=mid+Math.imul(al5,bh4)|0,mid=mid+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=mid+Math.imul(al4,bh5)|0,mid=mid+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=mid+Math.imul(al3,bh6)|0,mid=mid+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=mid+Math.imul(al2,bh7)|0,mid=mid+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=mid+Math.imul(al1,bh8)|0,mid=mid+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0,lo=lo+Math.imul(al0,bl9)|0,mid=mid+Math.imul(al0,bh9)|0,mid=mid+Math.imul(ah0,bl9)|0,hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=Math.imul(al9,bh1),mid=mid+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=mid+Math.imul(al8,bh2)|0,mid=mid+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=mid+Math.imul(al7,bh3)|0,mid=mid+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=mid+Math.imul(al6,bh4)|0,mid=mid+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=mid+Math.imul(al5,bh5)|0,mid=mid+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=mid+Math.imul(al4,bh6)|0,mid=mid+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=mid+Math.imul(al3,bh7)|0,mid=mid+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=mid+Math.imul(al2,bh8)|0,mid=mid+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0,lo=lo+Math.imul(al1,bl9)|0,mid=mid+Math.imul(al1,bh9)|0,mid=mid+Math.imul(ah1,bl9)|0,hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=Math.imul(al9,bh2),mid=mid+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=mid+Math.imul(al8,bh3)|0,mid=mid+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=mid+Math.imul(al7,bh4)|0,mid=mid+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=mid+Math.imul(al6,bh5)|0,mid=mid+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=mid+Math.imul(al5,bh6)|0,mid=mid+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=mid+Math.imul(al4,bh7)|0,mid=mid+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=mid+Math.imul(al3,bh8)|0,mid=mid+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0,lo=lo+Math.imul(al2,bl9)|0,mid=mid+Math.imul(al2,bh9)|0,mid=mid+Math.imul(ah2,bl9)|0,hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=Math.imul(al9,bh3),mid=mid+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=mid+Math.imul(al8,bh4)|0,mid=mid+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=mid+Math.imul(al7,bh5)|0,mid=mid+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=mid+Math.imul(al6,bh6)|0,mid=mid+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=mid+Math.imul(al5,bh7)|0,mid=mid+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=mid+Math.imul(al4,bh8)|0,mid=mid+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0,lo=lo+Math.imul(al3,bl9)|0,mid=mid+Math.imul(al3,bh9)|0,mid=mid+Math.imul(ah3,bl9)|0,hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=Math.imul(al9,bh4),mid=mid+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=mid+Math.imul(al8,bh5)|0,mid=mid+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=mid+Math.imul(al7,bh6)|0,mid=mid+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=mid+Math.imul(al6,bh7)|0,mid=mid+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=mid+Math.imul(al5,bh8)|0,mid=mid+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0,lo=lo+Math.imul(al4,bl9)|0,mid=mid+Math.imul(al4,bh9)|0,mid=mid+Math.imul(ah4,bl9)|0,hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=Math.imul(al9,bh5),mid=mid+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=mid+Math.imul(al8,bh6)|0,mid=mid+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=mid+Math.imul(al7,bh7)|0,mid=mid+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=mid+Math.imul(al6,bh8)|0,mid=mid+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0,lo=lo+Math.imul(al5,bl9)|0,mid=mid+Math.imul(al5,bh9)|0,mid=mid+Math.imul(ah5,bl9)|0,hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=Math.imul(al9,bh6),mid=mid+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=mid+Math.imul(al8,bh7)|0,mid=mid+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=mid+Math.imul(al7,bh8)|0,mid=mid+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0,lo=lo+Math.imul(al6,bl9)|0,mid=mid+Math.imul(al6,bh9)|0,mid=mid+Math.imul(ah6,bl9)|0,hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=Math.imul(al9,bh7),mid=mid+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=mid+Math.imul(al8,bh8)|0,mid=mid+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0,lo=lo+Math.imul(al7,bl9)|0,mid=mid+Math.imul(al7,bh9)|0,mid=mid+Math.imul(ah7,bl9)|0,hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=Math.imul(al9,bh8),mid=mid+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8),lo=lo+Math.imul(al8,bl9)|0,mid=mid+Math.imul(al8,bh9)|0,mid=mid+Math.imul(ah8,bl9)|0,hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863,lo=Math.imul(al9,bl9),mid=Math.imul(al9,bh9),mid=mid+Math.imul(ah9,bl9)|0,hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;if(c=(hi+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,c!==0)o[19]=c,out.length++;return out};if(!Math.imul)comb10MulTo=smallMulTo;function bigMulTo(self2,num,out){out.negative=num.negative^self2.negative,out.length=self2.length+num.length;var carry=0,hncarry=0;for(var k=0;k>>26)|0,hncarry+=ncarry>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}if(carry!==0)out.words[k]=carry;else out.length--;return out.strip()}function jumboMulTo(self2,num,out){var fftm=new FFTM;return fftm.mulp(self2,num,out)}BN.prototype.mulTo=function(num,out){var res,len=this.length+num.length;if(this.length===10&&num.length===10)res=comb10MulTo(this,num,out);else if(len<63)res=smallMulTo(this,num,out);else if(len<1024)res=bigMulTo(this,num,out);else res=jumboMulTo(this,num,out);return res};function FFTM(x,y){this.x=x,this.y=y}FFTM.prototype.makeRBT=function(N){var t=Array(N),l=BN.prototype._countBits(N)-1;for(var i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1)i++;return 1<>>13,rws[2*i+1]=carry&8191,carry=carry>>>13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=lo&67108863}if(carry!==0)this.words[i]=carry,this.length++;return this.length=num===0?1:this.length,this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i=0);var r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r,i;if(r!==0){var carry=0;for(i=0;i>>26-r}if(carry)this.words[i]=carry,this.length++}if(s!==0){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0);var h;if(hint)h=(hint-hint%26)/26;else h=0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s){this.length-=s;for(i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r,carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0)this.words[0]=0,this.length=1;return this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(this.negative===0),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert(typeof bit===\"number\"&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(this.negative===0,\"imaskn works only with positive numbers\"),this.length<=s)return this;if(r!==0)s++;if(this.length=Math.min(s,this.length),r!==0){var mask=67108863^67108863>>>r<=67108864;i++)if(this.words[i]-=67108864,i===this.length-1)this.words[i+1]=1;else this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert(typeof num===\"number\"),assert(num<67108864),num<0)return this.iaddn(-num);if(this.negative!==0)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=w&67108863}for(;i>26,this.words[i+shift]=w&67108863;if(carry===0)return this.strip();assert(carry===-1),carry=0;for(i=0;i>26,this.words[i]=w&67108863;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=this.length-num.length,a=this.clone(),b=num,bhi=b.words[b.length-1]|0,bhiBits=this._countBits(bhi);if(shift=26-bhiBits,shift!==0)b=b.ushln(shift),a.iushln(shift),bhi=b.words[b.length-1]|0;var m=a.length-b.length,q;if(mode!==\"mod\"){q=new BN(null),q.length=m+1,q.words=Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);while(a.negative!==0)if(qj--,a.negative=0,a._ishlnsubmul(b,1,j),!a.isZero())a.negative^=1;if(q)q.words[j]=qj}if(q)q.strip();if(a.strip(),mode!==\"div\"&&shift!==0)a.iushrn(shift);return{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){if(assert(!num.isZero()),this.isZero())return{div:new BN(0),mod:new BN(0)};var div,mod,res;if(this.negative!==0&&num.negative===0){if(res=this.neg().divmod(num,mode),mode!==\"mod\")div=res.div.neg();if(mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.iadd(num)}return{div,mod}}if(this.negative===0&&num.negative!==0){if(res=this.divmod(num.neg(),mode),mode!==\"mod\")div=res.div.neg();return{div,mod:res.mod}}if((this.negative&num.negative)!==0){if(res=this.neg().divmod(num.neg(),mode),mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.isub(num)}return{div:res.div,mod}}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode===\"div\")return{div:this.divn(num.words[0]),mod:null};if(mode===\"mod\")return{div:null,mod:new BN(this.modn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)},BN.prototype.div=function(num){return this.divmod(num,\"div\",!1).div},BN.prototype.mod=function(num){return this.divmod(num,\"mod\",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,\"mod\",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);var p=67108864%num,acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+(this.words[i]|0))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(p.negative===0),assert(!p.isZero());var x=this,y=p.clone();if(x.negative!==0)x=x.umod(p);else x=x.clone();var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;while(x.isEven()&&y.isEven())x.iushrn(1),y.iushrn(1),++g;var yp=y.clone(),xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd())A.iadd(yp),B.isub(xp);A.iushrn(1),B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd())C.iadd(yp),D.isub(xp);C.iushrn(1),D.iushrn(1)}}if(x.cmp(y)>=0)x.isub(y),A.isub(C),B.isub(D);else y.isub(x),C.isub(A),D.isub(B)}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(p.negative===0),assert(!p.isZero());var a=this,b=p.clone();if(a.negative!==0)a=a.umod(p);else a=a.clone();var x1=new BN(1),x2=new BN(0),delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd())x1.iadd(delta);x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd())x2.iadd(delta);x2.iushrn(1)}}if(a.cmp(b)>=0)a.isub(b),x1.isub(x2);else b.isub(a),x2.isub(x1)}var res;if(a.cmpn(1)===0)res=x1;else res=x2;if(res.cmpn(0)<0)res.iadd(p);return res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);do{while(a.isEven())a.iushrn(1);while(b.isEven())b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(r===0||b.cmpn(1)===0)break;a.isub(b)}while(!0);return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return(this.words[0]&1)===0},BN.prototype.isOdd=function(){return(this.words[0]&1)===1},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert(typeof bit===\"number\");var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}if(carry!==0)this.words[i]=carry,this.length++;return this},BN.prototype.isZero=function(){return this.length===1&&this.words[0]===0},BN.prototype.cmpn=function(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this.strip();var res;if(this.length>1)res=1;else{if(negative)num=-num;assert(num<=67108863,\"Number is too big\");var w=this.words[0]|0;res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=this.words[i]|0,b=num.words[i]|0;if(a===b)continue;if(ab)res=1;break}return res},BN.prototype.gtn=function(num){return this.cmpn(num)===1},BN.prototype.gt=function(num){return this.cmp(num)===1},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return this.cmpn(num)===-1},BN.prototype.lt=function(num){return this.cmp(num)===-1},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return this.cmpn(num)===0},BN.prototype.eq=function(num){return this.cmp(num)===0},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),assert(this.negative===0,\"red works only with positives\"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,\"redAdd works only with red numbers\"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,\"redSub works only with red numbers\"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,\"redISub works only with red numbers\"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,\"redShl works only with red numbers\"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var r=num,rlen;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),rlen=r.bitLength();while(rlen>this.n);var cmp=rlen0)r.isub(this.p);else if(r.strip!==void 0)r.strip();else r._strip();return r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)};function K256(){MPrime.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}inherits(K256,MPrime),K256.prototype.split=function(input,output){var mask=4194303,outLen=Math.min(input.length,9);for(var i=0;i>>22,prev=next}if(prev>>>=22,input.words[i-10]=prev,prev===0&&input.length>10)input.length-=10;else input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;var lo=0;for(var i=0;i>>=26,num.words[i]=lo,carry=hi}if(carry!==0)num.words[num.length++]=carry;return num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if(name===\"k256\")prime=new K256;else if(name===\"p224\")prime=new P224;else if(name===\"p192\")prime=new P192;else if(name===\"p25519\")prime=new P25519;else throw Error(\"Unknown prime \"+name);return primes[name]=prime,prime};function Red(m){if(typeof m===\"string\"){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),\"modulus must be greater than 1\"),this.m=m,this.prime=null}Red.prototype._verify1=function(a){assert(a.negative===0,\"red works only with positives\"),assert(a.red,\"red works only with red numbers\")},Red.prototype._verify2=function(a,b){assert((a.negative|b.negative)===0,\"red works only with positives\"),assert(a.red&&a.red===b.red,\"red works only with red numbers\")},Red.prototype.imod=function(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){if(a.isZero())return a.clone();return this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2===1),mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1),s=0;while(!q.isZero()&&q.andln(1)===0)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0])res=this.sqr(res);if(bit===0&¤t===0){currentLen=0;continue}if(current<<=1,current|=bit,currentLen++,currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]),currentLen=0,current=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)};function Mont(m){if(Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.invm=function(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module>\"u\"||module,exports)});var require_minimalistic_assert=__commonJS((exports,module)=>{module.exports=assert;function assert(val,msg){if(!val)throw Error(msg||\"Assertion failed\")}assert.equal=function(l,r,msg){if(l!=r)throw Error(msg||\"Assertion failed: \"+l+\" != \"+r)}});var require_utils=__commonJS((exports)=>{var utils=exports;function toArray(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if(typeof msg!==\"string\"){for(var i=0;i>8,lo=c&255;if(hi)res.push(hi,lo);else res.push(lo)}return res}utils.toArray=toArray;function zero2(word){if(word.length===1)return\"0\"+word;else return word}utils.zero2=zero2;function toHex(msg){var res=\"\";for(var i=0;i{var utils=exports,BN=require_bn(),minAssert=require_minimalistic_assert(),minUtils=require_utils();utils.assert=minAssert;utils.toArray=minUtils.toArray;utils.zero2=minUtils.zero2;utils.toHex=minUtils.toHex;utils.encode=minUtils.encode;function getNAF(num,w,bits){var naf=Array(Math.max(num.bitLength(),bits)+1),i;for(i=0;i(ws>>1)-1)z=(ws>>1)-mod;else z=mod;k.isubn(z)}else z=0;naf[i]=z,k.iushrn(1)}return naf}utils.getNAF=getNAF;function getJSF(k1,k2){var jsf=[[],[]];k1=k1.clone(),k2=k2.clone();var d1=0,d2=0,m8;while(k1.cmpn(-d1)>0||k2.cmpn(-d2)>0){var m14=k1.andln(3)+d1&3,m24=k2.andln(3)+d2&3;if(m14===3)m14=-1;if(m24===3)m24=-1;var u1;if((m14&1)===0)u1=0;else if(m8=k1.andln(7)+d1&7,(m8===3||m8===5)&&m24===2)u1=-m14;else u1=m14;jsf[0].push(u1);var u2;if((m24&1)===0)u2=0;else if(m8=k2.andln(7)+d2&7,(m8===3||m8===5)&&m14===2)u2=-m24;else u2=m24;if(jsf[1].push(u2),2*d1===u1+1)d1=1-d1;if(2*d2===u2+1)d2=1-d2;k1.iushrn(1),k2.iushrn(1)}return jsf}utils.getJSF=getJSF;function cachedProperty(obj,name,computer){var key=\"_\"+name;obj.prototype[name]=function(){return this[key]!==void 0?this[key]:this[key]=computer.call(this)}}utils.cachedProperty=cachedProperty;function parseBytes(bytes){return typeof bytes===\"string\"?utils.toArray(bytes,\"hex\"):bytes}utils.parseBytes=parseBytes;function intFromLE(bytes){return new BN(bytes,\"hex\",\"le\")}utils.intFromLE=intFromLE});var require_brorand=__commonJS((exports,module)=>{var r;module.exports=function(len){if(!r)r=new Rand(null);return r.generate(len)};function Rand(rand){this.rand=rand}module.exports.Rand=Rand;Rand.prototype.generate=function(len){return this._rand(len)};Rand.prototype._rand=function(n){if(this.rand.getBytes)return this.rand.getBytes(n);var res=new Uint8Array(n);for(var i=0;i{var BN=require_bn(),utils=require_utils2(),getNAF=utils.getNAF,getJSF=utils.getJSF,assert=utils.assert;function BaseCurve(type,conf){this.type=type,this.p=new BN(conf.p,16),this.red=conf.prime?BN.red(conf.prime):BN.mont(this.p),this.zero=new BN(0).toRed(this.red),this.one=new BN(1).toRed(this.red),this.two=new BN(2).toRed(this.red),this.n=conf.n&&new BN(conf.n,16),this.g=conf.g&&this.pointFromJSON(conf.g,conf.gRed),this._wnafT1=[,,,,],this._wnafT2=[,,,,],this._wnafT3=[,,,,],this._wnafT4=[,,,,],this._bitLength=this.n?this.n.bitLength():0;var adjustCount=this.n&&this.p.div(this.n);if(!adjustCount||adjustCount.cmpn(100)>0)this.redN=null;else this._maxwellTrick=!0,this.redN=this.n.toRed(this.red)}module.exports=BaseCurve;BaseCurve.prototype.point=function(){throw Error(\"Not implemented\")};BaseCurve.prototype.validate=function(){throw Error(\"Not implemented\")};BaseCurve.prototype._fixedNafMul=function(p,k){assert(p.precomputed);var doubles=p._getDoubles(),naf=getNAF(k,1,this._bitLength),I=(1<=j;l--)nafW=(nafW<<1)+naf[l];repr.push(nafW)}var a=this.jpoint(null,null,null),b=this.jpoint(null,null,null);for(var i=I;i>0;i--){for(j=0;j=0;i--){for(var l=0;i>=0&&naf[i]===0;i--)l++;if(i>=0)l++;if(acc=acc.dblp(l),i<0)break;var z=naf[i];if(assert(z!==0),p.type===\"affine\")if(z>0)acc=acc.mixedAdd(wnd[z-1>>1]);else acc=acc.mixedAdd(wnd[-z-1>>1].neg());else if(z>0)acc=acc.add(wnd[z-1>>1]);else acc=acc.add(wnd[-z-1>>1].neg())}return p.type===\"affine\"?acc.toP():acc};BaseCurve.prototype._wnafMulAdd=function(defW,points,coeffs,len,jacobianResult){var wndWidth=this._wnafT1,wnd=this._wnafT2,naf=this._wnafT3,max=0,i,j,p;for(i=0;i=1;i-=2){var a=i-1,b=i;if(wndWidth[a]!==1||wndWidth[b]!==1){naf[a]=getNAF(coeffs[a],wndWidth[a],this._bitLength),naf[b]=getNAF(coeffs[b],wndWidth[b],this._bitLength),max=Math.max(naf[a].length,max),max=Math.max(naf[b].length,max);continue}var comb=[points[a],null,null,points[b]];if(points[a].y.cmp(points[b].y)===0)comb[1]=points[a].add(points[b]),comb[2]=points[a].toJ().mixedAdd(points[b].neg());else if(points[a].y.cmp(points[b].y.redNeg())===0)comb[1]=points[a].toJ().mixedAdd(points[b]),comb[2]=points[a].add(points[b].neg());else comb[1]=points[a].toJ().mixedAdd(points[b]),comb[2]=points[a].toJ().mixedAdd(points[b].neg());var index=[-3,-1,-5,-7,0,7,5,1,3],jsf=getJSF(coeffs[a],coeffs[b]);max=Math.max(jsf[0].length,max),naf[a]=Array(max),naf[b]=Array(max);for(j=0;j=0;i--){var k=0;while(i>=0){var zero=!0;for(j=0;j=0)k++;if(acc=acc.dblp(k),i<0)break;for(j=0;j0)p=wnd[j][z-1>>1];else if(z<0)p=wnd[j][-z-1>>1].neg();if(p.type===\"affine\")acc=acc.mixedAdd(p);else acc=acc.add(p)}}for(i=0;i=Math.ceil((k.bitLength()+1)/doubles.step)};BasePoint.prototype._getDoubles=function(step,power){if(this.precomputed&&this.precomputed.doubles)return this.precomputed.doubles;var doubles=[this],acc=this;for(var i=0;i{if(typeof Object.create===\"function\")module.exports=function(ctor,superCtor){if(superCtor)ctor.super_=superCtor,ctor.prototype=Object.create(superCtor.prototype,{constructor:{value:ctor,enumerable:!1,writable:!0,configurable:!0}})};else module.exports=function(ctor,superCtor){if(superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}}});var require_inherits=__commonJS((exports,module)=>{try{if(util=require(\"util\"),typeof util.inherits!==\"function\")throw\"\";module.exports=util.inherits}catch(e){module.exports=require_inherits_browser()}var util});var require_short=__commonJS((exports,module)=>{var utils=require_utils2(),BN=require_bn(),inherits=require_inherits(),Base=require_base(),assert=utils.assert;function ShortCurve(conf){Base.call(this,\"short\",conf),this.a=new BN(conf.a,16).toRed(this.red),this.b=new BN(conf.b,16).toRed(this.red),this.tinv=this.two.redInvm(),this.zeroA=this.a.fromRed().cmpn(0)===0,this.threeA=this.a.fromRed().sub(this.p).cmpn(-3)===0,this.endo=this._getEndomorphism(conf),this._endoWnafT1=[,,,,],this._endoWnafT2=[,,,,]}inherits(ShortCurve,Base);module.exports=ShortCurve;ShortCurve.prototype._getEndomorphism=function(conf){if(!this.zeroA||!this.g||!this.n||this.p.modn(3)!==1)return;var beta,lambda;if(conf.beta)beta=new BN(conf.beta,16).toRed(this.red);else{var betas=this._getEndoRoots(this.p);beta=betas[0].cmp(betas[1])<0?betas[0]:betas[1],beta=beta.toRed(this.red)}if(conf.lambda)lambda=new BN(conf.lambda,16);else{var lambdas=this._getEndoRoots(this.n);if(this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta))===0)lambda=lambdas[0];else lambda=lambdas[1],assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta))===0)}var basis;if(conf.basis)basis=conf.basis.map(function(vec){return{a:new BN(vec.a,16),b:new BN(vec.b,16)}});else basis=this._getEndoBasis(lambda);return{beta,lambda,basis}};ShortCurve.prototype._getEndoRoots=function(num){var red=num===this.p?this.red:BN.mont(num),tinv=new BN(2).toRed(red).redInvm(),ntinv=tinv.redNeg(),s=new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv),l1=ntinv.redAdd(s).fromRed(),l2=ntinv.redSub(s).fromRed();return[l1,l2]};ShortCurve.prototype._getEndoBasis=function(lambda){var aprxSqrt=this.n.ushrn(Math.floor(this.n.bitLength()/2)),u=lambda,v=this.n.clone(),x1=new BN(1),y1=new BN(0),x2=new BN(0),y2=new BN(1),a0,b0,a1,b1,a2,b2,prevR,i=0,r,x;while(u.cmpn(0)!==0){var q=v.div(u);r=v.sub(q.mul(u)),x=x2.sub(q.mul(x1));var y=y2.sub(q.mul(y1));if(!a1&&r.cmp(aprxSqrt)<0)a0=prevR.neg(),b0=x1,a1=r.neg(),b1=x;else if(a1&&++i===2)break;prevR=r,v=u,u=r,x2=x1,x1=x,y2=y1,y1=y}a2=r.neg(),b2=x;var len1=a1.sqr().add(b1.sqr()),len2=a2.sqr().add(b2.sqr());if(len2.cmp(len1)>=0)a2=a0,b2=b0;if(a1.negative)a1=a1.neg(),b1=b1.neg();if(a2.negative)a2=a2.neg(),b2=b2.neg();return[{a:a1,b:b1},{a:a2,b:b2}]};ShortCurve.prototype._endoSplit=function(k){var basis=this.endo.basis,v1=basis[0],v2=basis[1],c1=v2.b.mul(k).divRound(this.n),c2=v1.b.neg().mul(k).divRound(this.n),p1=c1.mul(v1.a),p2=c2.mul(v2.a),q1=c1.mul(v1.b),q2=c2.mul(v2.b),k1=k.sub(p1).sub(p2),k2=q1.add(q2).neg();return{k1,k2}};ShortCurve.prototype.pointFromX=function(x,odd){if(x=new BN(x,16),!x.red)x=x.toRed(this.red);var y2=x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b),y=y2.redSqrt();if(y.redSqr().redSub(y2).cmp(this.zero)!==0)throw Error(\"invalid point\");var isOdd=y.fromRed().isOdd();if(odd&&!isOdd||!odd&&isOdd)y=y.redNeg();return this.point(x,y)};ShortCurve.prototype.validate=function(point){if(point.inf)return!0;var{x,y}=point,ax=this.a.redMul(x),rhs=x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);return y.redSqr().redISub(rhs).cmpn(0)===0};ShortCurve.prototype._endoWnafMulAdd=function(points,coeffs,jacobianResult){var npoints=this._endoWnafT1,ncoeffs=this._endoWnafT2;for(var i=0;i\";return\"\"};Point.prototype.isInfinity=function(){return this.inf};Point.prototype.add=function(p){if(this.inf)return p;if(p.inf)return this;if(this.eq(p))return this.dbl();if(this.neg().eq(p))return this.curve.point(null,null);if(this.x.cmp(p.x)===0)return this.curve.point(null,null);var c=this.y.redSub(p.y);if(c.cmpn(0)!==0)c=c.redMul(this.x.redSub(p.x).redInvm());var nx=c.redSqr().redISub(this.x).redISub(p.x),ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)};Point.prototype.dbl=function(){if(this.inf)return this;var ys1=this.y.redAdd(this.y);if(ys1.cmpn(0)===0)return this.curve.point(null,null);var a=this.curve.a,x2=this.x.redSqr(),dyinv=ys1.redInvm(),c=x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv),nx=c.redSqr().redISub(this.x.redAdd(this.x)),ny=c.redMul(this.x.redSub(nx)).redISub(this.y);return this.curve.point(nx,ny)};Point.prototype.getX=function(){return this.x.fromRed()};Point.prototype.getY=function(){return this.y.fromRed()};Point.prototype.mul=function(k){if(k=new BN(k,16),this.isInfinity())return this;else if(this._hasDoubles(k))return this.curve._fixedNafMul(this,k);else if(this.curve.endo)return this.curve._endoWnafMulAdd([this],[k]);else return this.curve._wnafMul(this,k)};Point.prototype.mulAdd=function(k1,p2,k2){var points=[this,p2],coeffs=[k1,k2];if(this.curve.endo)return this.curve._endoWnafMulAdd(points,coeffs);else return this.curve._wnafMulAdd(1,points,coeffs,2)};Point.prototype.jmulAdd=function(k1,p2,k2){var points=[this,p2],coeffs=[k1,k2];if(this.curve.endo)return this.curve._endoWnafMulAdd(points,coeffs,!0);else return this.curve._wnafMulAdd(1,points,coeffs,2,!0)};Point.prototype.eq=function(p){return this===p||this.inf===p.inf&&(this.inf||this.x.cmp(p.x)===0&&this.y.cmp(p.y)===0)};Point.prototype.neg=function(_precompute){if(this.inf)return this;var res=this.curve.point(this.x,this.y.redNeg());if(_precompute&&this.precomputed){var pre=this.precomputed,negate=function(p){return p.neg()};res.precomputed={naf:pre.naf&&{wnd:pre.naf.wnd,points:pre.naf.points.map(negate)},doubles:pre.doubles&&{step:pre.doubles.step,points:pre.doubles.points.map(negate)}}}return res};Point.prototype.toJ=function(){if(this.inf)return this.curve.jpoint(null,null,null);var res=this.curve.jpoint(this.x,this.y,this.curve.one);return res};function JPoint(curve,x,y,z){if(Base.BasePoint.call(this,curve,\"jacobian\"),x===null&&y===null&&z===null)this.x=this.curve.one,this.y=this.curve.one,this.z=new BN(0);else this.x=new BN(x,16),this.y=new BN(y,16),this.z=new BN(z,16);if(!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);this.zOne=this.z===this.curve.one}inherits(JPoint,Base.BasePoint);ShortCurve.prototype.jpoint=function(x,y,z){return new JPoint(this,x,y,z)};JPoint.prototype.toP=function(){if(this.isInfinity())return this.curve.point(null,null);var zinv=this.z.redInvm(),zinv2=zinv.redSqr(),ax=this.x.redMul(zinv2),ay=this.y.redMul(zinv2).redMul(zinv);return this.curve.point(ax,ay)};JPoint.prototype.neg=function(){return this.curve.jpoint(this.x,this.y.redNeg(),this.z)};JPoint.prototype.add=function(p){if(this.isInfinity())return p;if(p.isInfinity())return this;var pz2=p.z.redSqr(),z2=this.z.redSqr(),u1=this.x.redMul(pz2),u2=p.x.redMul(z2),s1=this.y.redMul(pz2.redMul(p.z)),s2=p.y.redMul(z2.redMul(this.z)),h=u1.redSub(u2),r=s1.redSub(s2);if(h.cmpn(0)===0)if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl();var h2=h.redSqr(),h3=h2.redMul(h),v=u1.redMul(h2),nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v),ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)),nz=this.z.redMul(p.z).redMul(h);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.mixedAdd=function(p){if(this.isInfinity())return p.toJ();if(p.isInfinity())return this;var z2=this.z.redSqr(),u1=this.x,u2=p.x.redMul(z2),s1=this.y,s2=p.y.redMul(z2).redMul(this.z),h=u1.redSub(u2),r=s1.redSub(s2);if(h.cmpn(0)===0)if(r.cmpn(0)!==0)return this.curve.jpoint(null,null,null);else return this.dbl();var h2=h.redSqr(),h3=h2.redMul(h),v=u1.redMul(h2),nx=r.redSqr().redIAdd(h3).redISub(v).redISub(v),ny=r.redMul(v.redISub(nx)).redISub(s1.redMul(h3)),nz=this.z.redMul(h);return this.curve.jpoint(nx,ny,nz)};JPoint.prototype.dblp=function(pow){if(pow===0)return this;if(this.isInfinity())return this;if(!pow)return this.dbl();var i;if(this.curve.zeroA||this.curve.threeA){var r=this;for(i=0;i=0)return!1;if(rx.redIAdd(t),this.x.cmp(rx)===0)return!0}};JPoint.prototype.inspect=function(){if(this.isInfinity())return\"\";return\"\"};JPoint.prototype.isInfinity=function(){return this.z.cmpn(0)===0}});var require_mont=__commonJS((exports,module)=>{var BN=require_bn(),inherits=require_inherits(),Base=require_base(),utils=require_utils2();function MontCurve(conf){Base.call(this,\"mont\",conf),this.a=new BN(conf.a,16).toRed(this.red),this.b=new BN(conf.b,16).toRed(this.red),this.i4=new BN(4).toRed(this.red).redInvm(),this.two=new BN(2).toRed(this.red),this.a24=this.i4.redMul(this.a.redAdd(this.two))}inherits(MontCurve,Base);module.exports=MontCurve;MontCurve.prototype.validate=function(point){var x=point.normalize().x,x2=x.redSqr(),rhs=x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x),y=rhs.redSqrt();return y.redSqr().cmp(rhs)===0};function Point(curve,x,z){if(Base.BasePoint.call(this,curve,\"projective\"),x===null&&z===null)this.x=this.curve.one,this.z=this.curve.zero;else{if(this.x=new BN(x,16),this.z=new BN(z,16),!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red)}}inherits(Point,Base.BasePoint);MontCurve.prototype.decodePoint=function(bytes,enc){return this.point(utils.toArray(bytes,enc),1)};MontCurve.prototype.point=function(x,z){return new Point(this,x,z)};MontCurve.prototype.pointFromJSON=function(obj){return Point.fromJSON(this,obj)};Point.prototype.precompute=function(){};Point.prototype._encode=function(){return this.getX().toArray(\"be\",this.curve.p.byteLength())};Point.fromJSON=function(curve,obj){return new Point(curve,obj[0],obj[1]||curve.one)};Point.prototype.inspect=function(){if(this.isInfinity())return\"\";return\"\"};Point.prototype.isInfinity=function(){return this.z.cmpn(0)===0};Point.prototype.dbl=function(){var a=this.x.redAdd(this.z),aa=a.redSqr(),b=this.x.redSub(this.z),bb=b.redSqr(),c=aa.redSub(bb),nx=aa.redMul(bb),nz=c.redMul(bb.redAdd(this.curve.a24.redMul(c)));return this.curve.point(nx,nz)};Point.prototype.add=function(){throw Error(\"Not supported on Montgomery curve\")};Point.prototype.diffAdd=function(p,diff){var a=this.x.redAdd(this.z),b=this.x.redSub(this.z),c=p.x.redAdd(p.z),d=p.x.redSub(p.z),da=d.redMul(a),cb=c.redMul(b),nx=diff.z.redMul(da.redAdd(cb).redSqr()),nz=diff.x.redMul(da.redISub(cb).redSqr());return this.curve.point(nx,nz)};Point.prototype.mul=function(k){var t=k.clone(),a=this,b=this.curve.point(null,null),c=this;for(var bits=[];t.cmpn(0)!==0;t.iushrn(1))bits.push(t.andln(1));for(var i=bits.length-1;i>=0;i--)if(bits[i]===0)a=a.diffAdd(b,c),b=b.dbl();else b=a.diffAdd(b,c),a=a.dbl();return b};Point.prototype.mulAdd=function(){throw Error(\"Not supported on Montgomery curve\")};Point.prototype.jumlAdd=function(){throw Error(\"Not supported on Montgomery curve\")};Point.prototype.eq=function(other){return this.getX().cmp(other.getX())===0};Point.prototype.normalize=function(){return this.x=this.x.redMul(this.z.redInvm()),this.z=this.curve.one,this};Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()}});var require_edwards=__commonJS((exports,module)=>{var utils=require_utils2(),BN=require_bn(),inherits=require_inherits(),Base=require_base(),assert=utils.assert;function EdwardsCurve(conf){this.twisted=(conf.a|0)!==1,this.mOneA=this.twisted&&(conf.a|0)===-1,this.extended=this.mOneA,Base.call(this,\"edwards\",conf),this.a=new BN(conf.a,16).umod(this.red.m),this.a=this.a.toRed(this.red),this.c=new BN(conf.c,16).toRed(this.red),this.c2=this.c.redSqr(),this.d=new BN(conf.d,16).toRed(this.red),this.dd=this.d.redAdd(this.d),assert(!this.twisted||this.c.fromRed().cmpn(1)===0),this.oneC=(conf.c|0)===1}inherits(EdwardsCurve,Base);module.exports=EdwardsCurve;EdwardsCurve.prototype._mulA=function(num){if(this.mOneA)return num.redNeg();else return this.a.redMul(num)};EdwardsCurve.prototype._mulC=function(num){if(this.oneC)return num;else return this.c.redMul(num)};EdwardsCurve.prototype.jpoint=function(x,y,z,t){return this.point(x,y,z,t)};EdwardsCurve.prototype.pointFromX=function(x,odd){if(x=new BN(x,16),!x.red)x=x.toRed(this.red);var x2=x.redSqr(),rhs=this.c2.redSub(this.a.redMul(x2)),lhs=this.one.redSub(this.c2.redMul(this.d).redMul(x2)),y2=rhs.redMul(lhs.redInvm()),y=y2.redSqrt();if(y.redSqr().redSub(y2).cmp(this.zero)!==0)throw Error(\"invalid point\");var isOdd=y.fromRed().isOdd();if(odd&&!isOdd||!odd&&isOdd)y=y.redNeg();return this.point(x,y)};EdwardsCurve.prototype.pointFromY=function(y,odd){if(y=new BN(y,16),!y.red)y=y.toRed(this.red);var y2=y.redSqr(),lhs=y2.redSub(this.c2),rhs=y2.redMul(this.d).redMul(this.c2).redSub(this.a),x2=lhs.redMul(rhs.redInvm());if(x2.cmp(this.zero)===0)if(odd)throw Error(\"invalid point\");else return this.point(this.zero,y);var x=x2.redSqrt();if(x.redSqr().redSub(x2).cmp(this.zero)!==0)throw Error(\"invalid point\");if(x.fromRed().isOdd()!==odd)x=x.redNeg();return this.point(x,y)};EdwardsCurve.prototype.validate=function(point){if(point.isInfinity())return!0;point.normalize();var x2=point.x.redSqr(),y2=point.y.redSqr(),lhs=x2.redMul(this.a).redAdd(y2),rhs=this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));return lhs.cmp(rhs)===0};function Point(curve,x,y,z,t){if(Base.BasePoint.call(this,curve,\"projective\"),x===null&&y===null&&z===null)this.x=this.curve.zero,this.y=this.curve.one,this.z=this.curve.one,this.t=this.curve.zero,this.zOne=!0;else{if(this.x=new BN(x,16),this.y=new BN(y,16),this.z=z?new BN(z,16):this.curve.one,this.t=t&&new BN(t,16),!this.x.red)this.x=this.x.toRed(this.curve.red);if(!this.y.red)this.y=this.y.toRed(this.curve.red);if(!this.z.red)this.z=this.z.toRed(this.curve.red);if(this.t&&!this.t.red)this.t=this.t.toRed(this.curve.red);if(this.zOne=this.z===this.curve.one,this.curve.extended&&!this.t){if(this.t=this.x.redMul(this.y),!this.zOne)this.t=this.t.redMul(this.z.redInvm())}}}inherits(Point,Base.BasePoint);EdwardsCurve.prototype.pointFromJSON=function(obj){return Point.fromJSON(this,obj)};EdwardsCurve.prototype.point=function(x,y,z,t){return new Point(this,x,y,z,t)};Point.fromJSON=function(curve,obj){return new Point(curve,obj[0],obj[1],obj[2])};Point.prototype.inspect=function(){if(this.isInfinity())return\"\";return\"\"};Point.prototype.isInfinity=function(){return this.x.cmpn(0)===0&&(this.y.cmp(this.z)===0||this.zOne&&this.y.cmp(this.curve.c)===0)};Point.prototype._extDbl=function(){var a=this.x.redSqr(),b=this.y.redSqr(),c=this.z.redSqr();c=c.redIAdd(c);var d=this.curve._mulA(a),e=this.x.redAdd(this.y).redSqr().redISub(a).redISub(b),g=d.redAdd(b),f=g.redSub(c),h=d.redSub(b),nx=e.redMul(f),ny=g.redMul(h),nt=e.redMul(h),nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)};Point.prototype._projDbl=function(){var b=this.x.redAdd(this.y).redSqr(),c=this.x.redSqr(),d=this.y.redSqr(),nx,ny,nz,e,h,j;if(this.curve.twisted){e=this.curve._mulA(c);var f=e.redAdd(d);if(this.zOne)nx=b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two)),ny=f.redMul(e.redSub(d)),nz=f.redSqr().redSub(f).redSub(f);else h=this.z.redSqr(),j=f.redSub(h).redISub(h),nx=b.redSub(c).redISub(d).redMul(j),ny=f.redMul(e.redSub(d)),nz=f.redMul(j)}else e=c.redAdd(d),h=this.curve._mulC(this.z).redSqr(),j=e.redSub(h).redSub(h),nx=this.curve._mulC(b.redISub(e)).redMul(j),ny=this.curve._mulC(e).redMul(c.redISub(d)),nz=e.redMul(j);return this.curve.point(nx,ny,nz)};Point.prototype.dbl=function(){if(this.isInfinity())return this;if(this.curve.extended)return this._extDbl();else return this._projDbl()};Point.prototype._extAdd=function(p){var a=this.y.redSub(this.x).redMul(p.y.redSub(p.x)),b=this.y.redAdd(this.x).redMul(p.y.redAdd(p.x)),c=this.t.redMul(this.curve.dd).redMul(p.t),d=this.z.redMul(p.z.redAdd(p.z)),e=b.redSub(a),f=d.redSub(c),g=d.redAdd(c),h=b.redAdd(a),nx=e.redMul(f),ny=g.redMul(h),nt=e.redMul(h),nz=f.redMul(g);return this.curve.point(nx,ny,nz,nt)};Point.prototype._projAdd=function(p){var a=this.z.redMul(p.z),b=a.redSqr(),c=this.x.redMul(p.x),d=this.y.redMul(p.y),e=this.curve.d.redMul(c).redMul(d),f=b.redSub(e),g=b.redAdd(e),tmp=this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d),nx=a.redMul(f).redMul(tmp),ny,nz;if(this.curve.twisted)ny=a.redMul(g).redMul(d.redSub(this.curve._mulA(c))),nz=f.redMul(g);else ny=a.redMul(g).redMul(d.redSub(c)),nz=this.curve._mulC(f).redMul(g);return this.curve.point(nx,ny,nz)};Point.prototype.add=function(p){if(this.isInfinity())return p;if(p.isInfinity())return this;if(this.curve.extended)return this._extAdd(p);else return this._projAdd(p)};Point.prototype.mul=function(k){if(this._hasDoubles(k))return this.curve._fixedNafMul(this,k);else return this.curve._wnafMul(this,k)};Point.prototype.mulAdd=function(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,!1)};Point.prototype.jmulAdd=function(k1,p,k2){return this.curve._wnafMulAdd(1,[this,p],[k1,k2],2,!0)};Point.prototype.normalize=function(){if(this.zOne)return this;var zi=this.z.redInvm();if(this.x=this.x.redMul(zi),this.y=this.y.redMul(zi),this.t)this.t=this.t.redMul(zi);return this.z=this.curve.one,this.zOne=!0,this};Point.prototype.neg=function(){return this.curve.point(this.x.redNeg(),this.y,this.z,this.t&&this.t.redNeg())};Point.prototype.getX=function(){return this.normalize(),this.x.fromRed()};Point.prototype.getY=function(){return this.normalize(),this.y.fromRed()};Point.prototype.eq=function(other){return this===other||this.getX().cmp(other.getX())===0&&this.getY().cmp(other.getY())===0};Point.prototype.eqXToP=function(x){var rx=x.toRed(this.curve.red).redMul(this.z);if(this.x.cmp(rx)===0)return!0;var xc=x.clone(),t=this.curve.redN.redMul(this.z);for(;;){if(xc.iadd(this.curve.n),xc.cmp(this.curve.p)>=0)return!1;if(rx.redIAdd(t),this.x.cmp(rx)===0)return!0}};Point.prototype.toP=Point.prototype.normalize;Point.prototype.mixedAdd=Point.prototype.add});var require_curve=__commonJS((exports)=>{var curve=exports;curve.base=require_base();curve.short=require_short();curve.mont=require_mont();curve.edwards=require_edwards()});var require_utils3=__commonJS((exports)=>{var assert=require_minimalistic_assert(),inherits=require_inherits();exports.inherits=inherits;function isSurrogatePair(msg,i){if((msg.charCodeAt(i)&64512)!==55296)return!1;if(i<0||i+1>=msg.length)return!1;return(msg.charCodeAt(i+1)&64512)===56320}function toArray(msg,enc){if(Array.isArray(msg))return msg.slice();if(!msg)return[];var res=[];if(typeof msg===\"string\"){if(!enc){var p=0;for(var i=0;i>6|192,res[p++]=c&63|128;else if(isSurrogatePair(msg,i))c=65536+((c&1023)<<10)+(msg.charCodeAt(++i)&1023),res[p++]=c>>18|240,res[p++]=c>>12&63|128,res[p++]=c>>6&63|128,res[p++]=c&63|128;else res[p++]=c>>12|224,res[p++]=c>>6&63|128,res[p++]=c&63|128}}else if(enc===\"hex\"){if(msg=msg.replace(/[^a-z0-9]+/ig,\"\"),msg.length%2!==0)msg=\"0\"+msg;for(i=0;i>>24|w>>>8&65280|w<<8&16711680|(w&255)<<24;return res>>>0}exports.htonl=htonl;function toHex32(msg,endian){var res=\"\";for(var i=0;i>>0}return res}exports.join32=join32;function split32(msg,endian){var res=Array(msg.length*4);for(var i=0,k=0;i>>24,res[k+1]=m>>>16&255,res[k+2]=m>>>8&255,res[k+3]=m&255;else res[k+3]=m>>>24,res[k+2]=m>>>16&255,res[k+1]=m>>>8&255,res[k]=m&255}return res}exports.split32=split32;function rotr32(w,b){return w>>>b|w<<32-b}exports.rotr32=rotr32;function rotl32(w,b){return w<>>32-b}exports.rotl32=rotl32;function sum32(a,b){return a+b>>>0}exports.sum32=sum32;function sum32_3(a,b,c){return a+b+c>>>0}exports.sum32_3=sum32_3;function sum32_4(a,b,c,d){return a+b+c+d>>>0}exports.sum32_4=sum32_4;function sum32_5(a,b,c,d,e){return a+b+c+d+e>>>0}exports.sum32_5=sum32_5;function sum64(buf,pos,ah,al){var bh=buf[pos],bl=buf[pos+1],lo=al+bl>>>0,hi=(lo>>0,buf[pos+1]=lo}exports.sum64=sum64;function sum64_hi(ah,al,bh,bl){var lo=al+bl>>>0,hi=(lo>>0}exports.sum64_hi=sum64_hi;function sum64_lo(ah,al,bh,bl){var lo=al+bl;return lo>>>0}exports.sum64_lo=sum64_lo;function sum64_4_hi(ah,al,bh,bl,ch,cl,dh,dl){var carry=0,lo=al;lo=lo+bl>>>0,carry+=lo>>0,carry+=lo>>0,carry+=lo>>0}exports.sum64_4_hi=sum64_4_hi;function sum64_4_lo(ah,al,bh,bl,ch,cl,dh,dl){var lo=al+bl+cl+dl;return lo>>>0}exports.sum64_4_lo=sum64_4_lo;function sum64_5_hi(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var carry=0,lo=al;lo=lo+bl>>>0,carry+=lo>>0,carry+=lo>>0,carry+=lo>>0,carry+=lo>>0}exports.sum64_5_hi=sum64_5_hi;function sum64_5_lo(ah,al,bh,bl,ch,cl,dh,dl,eh,el){var lo=al+bl+cl+dl+el;return lo>>>0}exports.sum64_5_lo=sum64_5_lo;function rotr64_hi(ah,al,num){var r=al<<32-num|ah>>>num;return r>>>0}exports.rotr64_hi=rotr64_hi;function rotr64_lo(ah,al,num){var r=ah<<32-num|al>>>num;return r>>>0}exports.rotr64_lo=rotr64_lo;function shr64_hi(ah,al,num){return ah>>>num}exports.shr64_hi=shr64_hi;function shr64_lo(ah,al,num){var r=ah<<32-num|al>>>num;return r>>>0}exports.shr64_lo=shr64_lo});var require_common=__commonJS((exports)=>{var utils=require_utils3(),assert=require_minimalistic_assert();function BlockHash(){this.pending=null,this.pendingTotal=0,this.blockSize=this.constructor.blockSize,this.outSize=this.constructor.outSize,this.hmacStrength=this.constructor.hmacStrength,this.padLength=this.constructor.padLength/8,this.endian=\"big\",this._delta8=this.blockSize/8,this._delta32=this.blockSize/32}exports.BlockHash=BlockHash;BlockHash.prototype.update=function(msg,enc){if(msg=utils.toArray(msg,enc),!this.pending)this.pending=msg;else this.pending=this.pending.concat(msg);if(this.pendingTotal+=msg.length,this.pending.length>=this._delta8){msg=this.pending;var r=msg.length%this._delta8;if(this.pending=msg.slice(msg.length-r,msg.length),this.pending.length===0)this.pending=null;msg=utils.join32(msg,0,msg.length-r,this.endian);for(var i=0;i>>24&255,res[i++]=len>>>16&255,res[i++]=len>>>8&255,res[i++]=len&255}else{res[i++]=len&255,res[i++]=len>>>8&255,res[i++]=len>>>16&255,res[i++]=len>>>24&255,res[i++]=0,res[i++]=0,res[i++]=0,res[i++]=0;for(t=8;t{var utils=require_utils3(),rotr32=utils.rotr32;function ft_1(s,x,y,z){if(s===0)return ch32(x,y,z);if(s===1||s===3)return p32(x,y,z);if(s===2)return maj32(x,y,z)}exports.ft_1=ft_1;function ch32(x,y,z){return x&y^~x&z}exports.ch32=ch32;function maj32(x,y,z){return x&y^x&z^y&z}exports.maj32=maj32;function p32(x,y,z){return x^y^z}exports.p32=p32;function s0_256(x){return rotr32(x,2)^rotr32(x,13)^rotr32(x,22)}exports.s0_256=s0_256;function s1_256(x){return rotr32(x,6)^rotr32(x,11)^rotr32(x,25)}exports.s1_256=s1_256;function g0_256(x){return rotr32(x,7)^rotr32(x,18)^x>>>3}exports.g0_256=g0_256;function g1_256(x){return rotr32(x,17)^rotr32(x,19)^x>>>10}exports.g1_256=g1_256});var require_1=__commonJS((exports,module)=>{var utils=require_utils3(),common=require_common(),shaCommon=require_common2(),rotl32=utils.rotl32,sum32=utils.sum32,sum32_5=utils.sum32_5,ft_1=shaCommon.ft_1,BlockHash=common.BlockHash,sha1_K=[1518500249,1859775393,2400959708,3395469782];function SHA1(){if(!(this instanceof SHA1))return new SHA1;BlockHash.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.W=Array(80)}utils.inherits(SHA1,BlockHash);module.exports=SHA1;SHA1.blockSize=512;SHA1.outSize=160;SHA1.hmacStrength=80;SHA1.padLength=64;SHA1.prototype._update=function(msg,start){var W=this.W;for(var i=0;i<16;i++)W[i]=msg[start+i];for(;i{var utils=require_utils3(),common=require_common(),shaCommon=require_common2(),assert=require_minimalistic_assert(),sum32=utils.sum32,sum32_4=utils.sum32_4,sum32_5=utils.sum32_5,ch32=shaCommon.ch32,maj32=shaCommon.maj32,s0_256=shaCommon.s0_256,s1_256=shaCommon.s1_256,g0_256=shaCommon.g0_256,g1_256=shaCommon.g1_256,BlockHash=common.BlockHash,sha256_K=[1116352408,1899447441,3049323471,3921009573,961987163,1508970993,2453635748,2870763221,3624381080,310598401,607225278,1426881987,1925078388,2162078206,2614888103,3248222580,3835390401,4022224774,264347078,604807628,770255983,1249150122,1555081692,1996064986,2554220882,2821834349,2952996808,3210313671,3336571891,3584528711,113926993,338241895,666307205,773529912,1294757372,1396182291,1695183700,1986661051,2177026350,2456956037,2730485921,2820302411,3259730800,3345764771,3516065817,3600352804,4094571909,275423344,430227734,506948616,659060556,883997877,958139571,1322822218,1537002063,1747873779,1955562222,2024104815,2227730452,2361852424,2428436474,2756734187,3204031479,3329325298];function SHA256(){if(!(this instanceof SHA256))return new SHA256;BlockHash.call(this),this.h=[1779033703,3144134277,1013904242,2773480762,1359893119,2600822924,528734635,1541459225],this.k=sha256_K,this.W=Array(64)}utils.inherits(SHA256,BlockHash);module.exports=SHA256;SHA256.blockSize=512;SHA256.outSize=256;SHA256.hmacStrength=192;SHA256.padLength=64;SHA256.prototype._update=function(msg,start){var W=this.W;for(var i=0;i<16;i++)W[i]=msg[start+i];for(;i{var utils=require_utils3(),SHA256=require_256();function SHA224(){if(!(this instanceof SHA224))return new SHA224;SHA256.call(this),this.h=[3238371032,914150663,812702999,4144912697,4290775857,1750603025,1694076839,3204075428]}utils.inherits(SHA224,SHA256);module.exports=SHA224;SHA224.blockSize=512;SHA224.outSize=224;SHA224.hmacStrength=192;SHA224.padLength=64;SHA224.prototype._digest=function(enc){if(enc===\"hex\")return utils.toHex32(this.h.slice(0,7),\"big\");else return utils.split32(this.h.slice(0,7),\"big\")}});var require_512=__commonJS((exports,module)=>{var utils=require_utils3(),common=require_common(),assert=require_minimalistic_assert(),rotr64_hi=utils.rotr64_hi,rotr64_lo=utils.rotr64_lo,shr64_hi=utils.shr64_hi,shr64_lo=utils.shr64_lo,sum64=utils.sum64,sum64_hi=utils.sum64_hi,sum64_lo=utils.sum64_lo,sum64_4_hi=utils.sum64_4_hi,sum64_4_lo=utils.sum64_4_lo,sum64_5_hi=utils.sum64_5_hi,sum64_5_lo=utils.sum64_5_lo,BlockHash=common.BlockHash,sha512_K=[1116352408,3609767458,1899447441,602891725,3049323471,3964484399,3921009573,2173295548,961987163,4081628472,1508970993,3053834265,2453635748,2937671579,2870763221,3664609560,3624381080,2734883394,310598401,1164996542,607225278,1323610764,1426881987,3590304994,1925078388,4068182383,2162078206,991336113,2614888103,633803317,3248222580,3479774868,3835390401,2666613458,4022224774,944711139,264347078,2341262773,604807628,2007800933,770255983,1495990901,1249150122,1856431235,1555081692,3175218132,1996064986,2198950837,2554220882,3999719339,2821834349,766784016,2952996808,2566594879,3210313671,3203337956,3336571891,1034457026,3584528711,2466948901,113926993,3758326383,338241895,168717936,666307205,1188179964,773529912,1546045734,1294757372,1522805485,1396182291,2643833823,1695183700,2343527390,1986661051,1014477480,2177026350,1206759142,2456956037,344077627,2730485921,1290863460,2820302411,3158454273,3259730800,3505952657,3345764771,106217008,3516065817,3606008344,3600352804,1432725776,4094571909,1467031594,275423344,851169720,430227734,3100823752,506948616,1363258195,659060556,3750685593,883997877,3785050280,958139571,3318307427,1322822218,3812723403,1537002063,2003034995,1747873779,3602036899,1955562222,1575990012,2024104815,1125592928,2227730452,2716904306,2361852424,442776044,2428436474,593698344,2756734187,3733110249,3204031479,2999351573,3329325298,3815920427,3391569614,3928383900,3515267271,566280711,3940187606,3454069534,4118630271,4000239992,116418474,1914138554,174292421,2731055270,289380356,3203993006,460393269,320620315,685471733,587496836,852142971,1086792851,1017036298,365543100,1126000580,2618297676,1288033470,3409855158,1501505948,4234509866,1607167915,987167468,1816402316,1246189591];function SHA512(){if(!(this instanceof SHA512))return new SHA512;BlockHash.call(this),this.h=[1779033703,4089235720,3144134277,2227873595,1013904242,4271175723,2773480762,1595750129,1359893119,2917565137,2600822924,725511199,528734635,4215389547,1541459225,327033209],this.k=sha512_K,this.W=Array(160)}utils.inherits(SHA512,BlockHash);module.exports=SHA512;SHA512.blockSize=1024;SHA512.outSize=512;SHA512.hmacStrength=192;SHA512.padLength=128;SHA512.prototype._prepareBlock=function(msg,start){var W=this.W;for(var i=0;i<32;i++)W[i]=msg[start+i];for(;i{var utils=require_utils3(),SHA512=require_512();function SHA384(){if(!(this instanceof SHA384))return new SHA384;SHA512.call(this),this.h=[3418070365,3238371032,1654270250,914150663,2438529370,812702999,355462360,4144912697,1731405415,4290775857,2394180231,1750603025,3675008525,1694076839,1203062813,3204075428]}utils.inherits(SHA384,SHA512);module.exports=SHA384;SHA384.blockSize=1024;SHA384.outSize=384;SHA384.hmacStrength=192;SHA384.padLength=128;SHA384.prototype._digest=function(enc){if(enc===\"hex\")return utils.toHex32(this.h.slice(0,12),\"big\");else return utils.split32(this.h.slice(0,12),\"big\")}});var require_sha=__commonJS((exports)=>{exports.sha1=require_1();exports.sha224=require_224();exports.sha256=require_256();exports.sha384=require_384();exports.sha512=require_512()});var require_ripemd=__commonJS((exports)=>{var utils=require_utils3(),common=require_common(),rotl32=utils.rotl32,sum32=utils.sum32,sum32_3=utils.sum32_3,sum32_4=utils.sum32_4,BlockHash=common.BlockHash;function RIPEMD160(){if(!(this instanceof RIPEMD160))return new RIPEMD160;BlockHash.call(this),this.h=[1732584193,4023233417,2562383102,271733878,3285377520],this.endian=\"little\"}utils.inherits(RIPEMD160,BlockHash);exports.ripemd160=RIPEMD160;RIPEMD160.blockSize=512;RIPEMD160.outSize=160;RIPEMD160.hmacStrength=192;RIPEMD160.padLength=64;RIPEMD160.prototype._update=function(msg,start){var A=this.h[0],B=this.h[1],C=this.h[2],D=this.h[3],E=this.h[4],Ah=A,Bh=B,Ch=C,Dh=D,Eh=E;for(var j=0;j<80;j++){var T=sum32(rotl32(sum32_4(A,f(j,B,C,D),msg[r[j]+start],K(j)),s[j]),E);A=E,E=D,D=rotl32(C,10),C=B,B=T,T=sum32(rotl32(sum32_4(Ah,f(79-j,Bh,Ch,Dh),msg[rh[j]+start],Kh(j)),sh[j]),Eh),Ah=Eh,Eh=Dh,Dh=rotl32(Ch,10),Ch=Bh,Bh=T}T=sum32_3(this.h[1],C,Dh),this.h[1]=sum32_3(this.h[2],D,Eh),this.h[2]=sum32_3(this.h[3],E,Ah),this.h[3]=sum32_3(this.h[4],A,Bh),this.h[4]=sum32_3(this.h[0],B,Ch),this.h[0]=T};RIPEMD160.prototype._digest=function(enc){if(enc===\"hex\")return utils.toHex32(this.h,\"little\");else return utils.split32(this.h,\"little\")};function f(j,x,y,z){if(j<=15)return x^y^z;else if(j<=31)return x&y|~x&z;else if(j<=47)return(x|~y)^z;else if(j<=63)return x&z|y&~z;else return x^(y|~z)}function K(j){if(j<=15)return 0;else if(j<=31)return 1518500249;else if(j<=47)return 1859775393;else if(j<=63)return 2400959708;else return 2840853838}function Kh(j){if(j<=15)return 1352829926;else if(j<=31)return 1548603684;else if(j<=47)return 1836072691;else if(j<=63)return 2053994217;else return 0}var r=[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,7,4,13,1,10,6,15,3,12,0,9,5,2,14,11,8,3,10,14,4,9,15,8,1,2,7,0,6,13,11,5,12,1,9,11,10,0,8,12,4,13,3,7,15,14,5,6,2,4,0,5,9,7,12,2,10,14,1,3,8,11,6,15,13],rh=[5,14,7,0,9,2,11,4,13,6,15,8,1,10,3,12,6,11,3,7,0,13,5,10,14,15,8,12,4,9,1,2,15,5,1,3,7,14,6,9,11,8,12,2,10,0,4,13,8,6,4,1,3,11,15,0,5,12,2,13,9,7,10,14,12,15,10,4,1,5,8,7,6,2,13,14,0,3,9,11],s=[11,14,15,12,5,8,7,9,11,13,14,15,6,7,9,8,7,6,8,13,11,9,7,15,7,12,15,9,11,7,13,12,11,13,6,7,14,9,13,15,14,8,13,6,5,12,7,5,11,12,14,15,14,15,9,8,9,14,5,6,8,6,5,12,9,15,5,11,6,8,13,12,5,12,13,14,11,8,5,6],sh=[8,9,9,11,13,15,15,5,7,7,8,11,14,14,12,6,9,13,15,7,12,8,9,11,7,7,12,7,6,15,13,11,9,7,15,11,8,6,6,14,12,13,5,14,13,13,7,5,15,5,8,11,14,14,6,14,6,9,12,9,12,5,15,8,8,5,12,9,12,5,14,6,8,13,6,5,15,13,11,11]});var require_hmac=__commonJS((exports,module)=>{var utils=require_utils3(),assert=require_minimalistic_assert();function Hmac(hash,key,enc){if(!(this instanceof Hmac))return new Hmac(hash,key,enc);this.Hash=hash,this.blockSize=hash.blockSize/8,this.outSize=hash.outSize/8,this.inner=null,this.outer=null,this._init(utils.toArray(key,enc))}module.exports=Hmac;Hmac.prototype._init=function(key){if(key.length>this.blockSize)key=new this.Hash().update(key).digest();assert(key.length<=this.blockSize);for(var i=key.length;i{var hash=exports;hash.utils=require_utils3();hash.common=require_common();hash.sha=require_sha();hash.ripemd=require_ripemd();hash.hmac=require_hmac();hash.sha1=hash.sha.sha1;hash.sha256=hash.sha.sha256;hash.sha224=hash.sha.sha224;hash.sha384=hash.sha.sha384;hash.sha512=hash.sha.sha512;hash.ripemd160=hash.ripemd.ripemd160});var require_secp256k1=__commonJS((exports,module)=>{module.exports={doubles:{step:4,points:[[\"e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a\",\"f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821\"],[\"8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508\",\"11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf\"],[\"175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739\",\"d3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695\"],[\"363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640\",\"4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9\"],[\"8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c\",\"4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36\"],[\"723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda\",\"96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f\"],[\"eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa\",\"5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999\"],[\"100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0\",\"cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09\"],[\"e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d\",\"9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d\"],[\"feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d\",\"e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088\"],[\"da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1\",\"9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d\"],[\"53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0\",\"5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8\"],[\"8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047\",\"10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a\"],[\"385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862\",\"283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453\"],[\"6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7\",\"7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160\"],[\"3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd\",\"56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0\"],[\"85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83\",\"7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6\"],[\"948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a\",\"53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589\"],[\"6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8\",\"bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17\"],[\"e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d\",\"4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda\"],[\"e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725\",\"7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd\"],[\"213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754\",\"4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2\"],[\"4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c\",\"17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6\"],[\"fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6\",\"6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f\"],[\"76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39\",\"c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01\"],[\"c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891\",\"893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3\"],[\"d895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b\",\"febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f\"],[\"b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03\",\"2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7\"],[\"e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d\",\"eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78\"],[\"a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070\",\"7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1\"],[\"90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4\",\"e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150\"],[\"8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da\",\"662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82\"],[\"e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11\",\"1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc\"],[\"8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e\",\"efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b\"],[\"e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41\",\"2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51\"],[\"b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef\",\"67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45\"],[\"d68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8\",\"db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120\"],[\"324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d\",\"648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84\"],[\"4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96\",\"35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d\"],[\"9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd\",\"ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d\"],[\"6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5\",\"9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8\"],[\"a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266\",\"40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8\"],[\"7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71\",\"34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac\"],[\"928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac\",\"c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f\"],[\"85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751\",\"1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962\"],[\"ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e\",\"493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907\"],[\"827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241\",\"c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec\"],[\"eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3\",\"be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d\"],[\"e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f\",\"4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414\"],[\"1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19\",\"aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd\"],[\"146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be\",\"b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0\"],[\"fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9\",\"6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811\"],[\"da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2\",\"8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1\"],[\"a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13\",\"7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c\"],[\"174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c\",\"ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73\"],[\"959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba\",\"2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd\"],[\"d2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151\",\"e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405\"],[\"64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073\",\"d99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589\"],[\"8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458\",\"38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e\"],[\"13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b\",\"69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27\"],[\"bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366\",\"d3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1\"],[\"8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa\",\"40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482\"],[\"8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0\",\"620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945\"],[\"dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787\",\"7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573\"],[\"f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e\",\"ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82\"]]},naf:{wnd:7,points:[[\"f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9\",\"388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672\"],[\"2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4\",\"d8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6\"],[\"5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc\",\"6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da\"],[\"acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe\",\"cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37\"],[\"774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb\",\"d984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b\"],[\"f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8\",\"ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81\"],[\"d7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e\",\"581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58\"],[\"defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34\",\"4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77\"],[\"2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c\",\"85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a\"],[\"352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5\",\"321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c\"],[\"2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f\",\"2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67\"],[\"9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714\",\"73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402\"],[\"daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729\",\"a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55\"],[\"c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db\",\"2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482\"],[\"6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4\",\"e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82\"],[\"1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5\",\"b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396\"],[\"605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479\",\"2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49\"],[\"62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d\",\"80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf\"],[\"80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f\",\"1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a\"],[\"7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb\",\"d0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7\"],[\"d528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9\",\"eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933\"],[\"49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963\",\"758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a\"],[\"77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74\",\"958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6\"],[\"f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530\",\"e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37\"],[\"463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b\",\"5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e\"],[\"f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247\",\"cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6\"],[\"caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1\",\"cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476\"],[\"2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120\",\"4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40\"],[\"7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435\",\"91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61\"],[\"754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18\",\"673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683\"],[\"e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8\",\"59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5\"],[\"186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb\",\"3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b\"],[\"df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f\",\"55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417\"],[\"5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143\",\"efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868\"],[\"290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba\",\"e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a\"],[\"af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45\",\"f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6\"],[\"766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a\",\"744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996\"],[\"59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e\",\"c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e\"],[\"f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8\",\"e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d\"],[\"7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c\",\"30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2\"],[\"948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519\",\"e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e\"],[\"7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab\",\"100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437\"],[\"3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca\",\"ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311\"],[\"d3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf\",\"8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4\"],[\"1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610\",\"68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575\"],[\"733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4\",\"f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d\"],[\"15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c\",\"d56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d\"],[\"a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940\",\"edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629\"],[\"e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980\",\"a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06\"],[\"311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3\",\"66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374\"],[\"34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf\",\"9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee\"],[\"f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63\",\"4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1\"],[\"d7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448\",\"fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b\"],[\"32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf\",\"5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661\"],[\"7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5\",\"8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6\"],[\"ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6\",\"8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e\"],[\"16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5\",\"5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d\"],[\"eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99\",\"f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc\"],[\"78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51\",\"f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4\"],[\"494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5\",\"42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c\"],[\"a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5\",\"204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b\"],[\"c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997\",\"4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913\"],[\"841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881\",\"73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154\"],[\"5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5\",\"39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865\"],[\"36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66\",\"d2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc\"],[\"336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726\",\"ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224\"],[\"8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede\",\"6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e\"],[\"1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94\",\"60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6\"],[\"85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31\",\"3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511\"],[\"29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51\",\"b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b\"],[\"a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252\",\"ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2\"],[\"4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5\",\"cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c\"],[\"d24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b\",\"6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3\"],[\"ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4\",\"322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d\"],[\"af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f\",\"6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700\"],[\"e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889\",\"2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4\"],[\"591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246\",\"b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196\"],[\"11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984\",\"998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4\"],[\"3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a\",\"b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257\"],[\"cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030\",\"bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13\"],[\"c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197\",\"6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096\"],[\"c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593\",\"c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38\"],[\"a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef\",\"21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f\"],[\"347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38\",\"60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448\"],[\"da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a\",\"49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a\"],[\"c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111\",\"5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4\"],[\"4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502\",\"7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437\"],[\"3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea\",\"be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7\"],[\"cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26\",\"8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d\"],[\"b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986\",\"39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a\"],[\"d4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e\",\"62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54\"],[\"48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4\",\"25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77\"],[\"dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda\",\"ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517\"],[\"6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859\",\"cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10\"],[\"e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f\",\"f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125\"],[\"eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c\",\"6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e\"],[\"13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942\",\"fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1\"],[\"ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a\",\"1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2\"],[\"b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80\",\"5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423\"],[\"ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d\",\"438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8\"],[\"8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1\",\"cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758\"],[\"52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63\",\"c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375\"],[\"e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352\",\"6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d\"],[\"7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193\",\"ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec\"],[\"5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00\",\"9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0\"],[\"32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58\",\"ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c\"],[\"e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7\",\"d3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4\"],[\"8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8\",\"c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f\"],[\"4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e\",\"67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649\"],[\"3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d\",\"cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826\"],[\"674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b\",\"299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5\"],[\"d32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f\",\"f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87\"],[\"30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6\",\"462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b\"],[\"be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297\",\"62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc\"],[\"93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a\",\"7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c\"],[\"b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c\",\"ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f\"],[\"d5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52\",\"4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a\"],[\"d3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb\",\"bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46\"],[\"463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065\",\"bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f\"],[\"7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917\",\"603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03\"],[\"74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9\",\"cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08\"],[\"30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3\",\"553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8\"],[\"9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57\",\"712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373\"],[\"176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66\",\"ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3\"],[\"75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8\",\"9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8\"],[\"809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721\",\"9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1\"],[\"1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180\",\"4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9\"]]}}});var require_curves=__commonJS((exports)=>{var curves=exports,hash=require_hash(),curve=require_curve(),utils=require_utils2(),assert=utils.assert;function PresetCurve(options){if(options.type===\"short\")this.curve=new curve.short(options);else if(options.type===\"edwards\")this.curve=new curve.edwards(options);else this.curve=new curve.mont(options);this.g=this.curve.g,this.n=this.curve.n,this.hash=options.hash,assert(this.g.validate(),\"Invalid curve\"),assert(this.g.mul(this.n).isInfinity(),\"Invalid curve, G*N != O\")}curves.PresetCurve=PresetCurve;function defineCurve(name,options){Object.defineProperty(curves,name,{configurable:!0,enumerable:!0,get:function(){var curve2=new PresetCurve(options);return Object.defineProperty(curves,name,{configurable:!0,enumerable:!0,value:curve2}),curve2}})}defineCurve(\"p192\",{type:\"short\",prime:\"p192\",p:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc\",b:\"64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1\",n:\"ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831\",hash:hash.sha256,gRed:!1,g:[\"188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012\",\"07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811\"]});defineCurve(\"p224\",{type:\"short\",prime:\"p224\",p:\"ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001\",a:\"ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe\",b:\"b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4\",n:\"ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d\",hash:hash.sha256,gRed:!1,g:[\"b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21\",\"bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34\"]});defineCurve(\"p256\",{type:\"short\",prime:null,p:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff\",a:\"ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc\",b:\"5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b\",n:\"ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551\",hash:hash.sha256,gRed:!1,g:[\"6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296\",\"4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5\"]});defineCurve(\"p384\",{type:\"short\",prime:null,p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 ffffffff\",a:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe ffffffff 00000000 00000000 fffffffc\",b:\"b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f 5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef\",n:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 f4372ddf 581a0db2 48b0a77a ecec196a ccc52973\",hash:hash.sha384,gRed:!1,g:[\"aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 5502f25d bf55296c 3a545e38 72760ab7\",\"3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 0a60b1ce 1d7e819d 7a431d7c 90ea0e5f\"]});defineCurve(\"p521\",{type:\"short\",prime:null,p:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff\",a:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffc\",b:\"00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b 99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd 3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00\",n:\"000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409\",hash:hash.sha512,gRed:!1,g:[\"000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66\",\"00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 3fad0761 353c7086 a272c240 88be9476 9fd16650\"]});defineCurve(\"curve25519\",{type:\"mont\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"76d06\",b:\"1\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:hash.sha256,gRed:!1,g:[\"9\"]});defineCurve(\"ed25519\",{type:\"edwards\",prime:\"p25519\",p:\"7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed\",a:\"-1\",c:\"1\",d:\"52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3\",n:\"1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed\",hash:hash.sha256,gRed:!1,g:[\"216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a\",\"6666666666666666666666666666666666666666666666666666666666666658\"]});var pre;try{pre=require_secp256k1()}catch(e){pre=void 0}defineCurve(\"secp256k1\",{type:\"short\",prime:\"k256\",p:\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\",a:\"0\",b:\"7\",n:\"ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141\",h:\"1\",hash:hash.sha256,beta:\"7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee\",lambda:\"5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72\",basis:[{a:\"3086d221a7d46bcde86c90e49284eb15\",b:\"-e4437ed6010e88286f547fa90abfe4c3\"},{a:\"114ca50f7a8e2f3f657c1108d9d44cfd8\",b:\"3086d221a7d46bcde86c90e49284eb15\"}],gRed:!1,g:[\"79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798\",\"483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8\",pre]})});var require_hmac_drbg=__commonJS((exports,module)=>{var hash=require_hash(),utils=require_utils(),assert=require_minimalistic_assert();function HmacDRBG(options){if(!(this instanceof HmacDRBG))return new HmacDRBG(options);this.hash=options.hash,this.predResist=!!options.predResist,this.outLen=this.hash.outSize,this.minEntropy=options.minEntropy||this.hash.hmacStrength,this._reseed=null,this.reseedInterval=null,this.K=null,this.V=null;var entropy=utils.toArray(options.entropy,options.entropyEnc||\"hex\"),nonce=utils.toArray(options.nonce,options.nonceEnc||\"hex\"),pers=utils.toArray(options.pers,options.persEnc||\"hex\");assert(entropy.length>=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\"),this._init(entropy,nonce,pers)}module.exports=HmacDRBG;HmacDRBG.prototype._init=function(entropy,nonce,pers){var seed=entropy.concat(nonce).concat(pers);this.K=Array(this.outLen/8),this.V=Array(this.outLen/8);for(var i=0;i=this.minEntropy/8,\"Not enough entropy. Minimum is: \"+this.minEntropy+\" bits\"),this._update(entropy.concat(add||[])),this._reseed=1};HmacDRBG.prototype.generate=function(len,enc,add,addEnc){if(this._reseed>this.reseedInterval)throw Error(\"Reseed is required\");if(typeof enc!==\"string\")addEnc=add,add=enc,enc=null;if(add)add=utils.toArray(add,addEnc||\"hex\"),this._update(add);var temp=[];while(temp.length{var BN=require_bn(),utils=require_utils2(),assert=utils.assert;function KeyPair(ec,options){if(this.ec=ec,this.priv=null,this.pub=null,options.priv)this._importPrivate(options.priv,options.privEnc);if(options.pub)this._importPublic(options.pub,options.pubEnc)}module.exports=KeyPair;KeyPair.fromPublic=function(ec,pub,enc){if(pub instanceof KeyPair)return pub;return new KeyPair(ec,{pub,pubEnc:enc})};KeyPair.fromPrivate=function(ec,priv,enc){if(priv instanceof KeyPair)return priv;return new KeyPair(ec,{priv,privEnc:enc})};KeyPair.prototype.validate=function(){var pub=this.getPublic();if(pub.isInfinity())return{result:!1,reason:\"Invalid public key\"};if(!pub.validate())return{result:!1,reason:\"Public key is not a point\"};if(!pub.mul(this.ec.curve.n).isInfinity())return{result:!1,reason:\"Public key * N != O\"};return{result:!0,reason:null}};KeyPair.prototype.getPublic=function(compact,enc){if(typeof compact===\"string\")enc=compact,compact=null;if(!this.pub)this.pub=this.ec.g.mul(this.priv);if(!enc)return this.pub;return this.pub.encode(enc,compact)};KeyPair.prototype.getPrivate=function(enc){if(enc===\"hex\")return this.priv.toString(16,2);else return this.priv};KeyPair.prototype._importPrivate=function(key,enc){this.priv=new BN(key,enc||16),this.priv=this.priv.umod(this.ec.curve.n)};KeyPair.prototype._importPublic=function(key,enc){if(key.x||key.y){if(this.ec.curve.type===\"mont\")assert(key.x,\"Need x coordinate\");else if(this.ec.curve.type===\"short\"||this.ec.curve.type===\"edwards\")assert(key.x&&key.y,\"Need both x and y coordinate\");this.pub=this.ec.curve.point(key.x,key.y);return}this.pub=this.ec.curve.decodePoint(key,enc)};KeyPair.prototype.derive=function(pub){if(!pub.validate())assert(pub.validate(),\"public point not validated\");return pub.mul(this.priv).getX()};KeyPair.prototype.sign=function(msg,enc,options){return this.ec.sign(msg,this,enc,options)};KeyPair.prototype.verify=function(msg,signature,options){return this.ec.verify(msg,signature,this,void 0,options)};KeyPair.prototype.inspect=function(){return\"\"}});var require_signature=__commonJS((exports,module)=>{var BN=require_bn(),utils=require_utils2(),assert=utils.assert;function Signature(options,enc){if(options instanceof Signature)return options;if(this._importDER(options,enc))return;if(assert(options.r&&options.s,\"Signature without r or s\"),this.r=new BN(options.r,16),this.s=new BN(options.s,16),options.recoveryParam===void 0)this.recoveryParam=null;else this.recoveryParam=options.recoveryParam}module.exports=Signature;function Position(){this.place=0}function getLength(buf,p){var initial=buf[p.place++];if(!(initial&128))return initial;var octetLen=initial&15;if(octetLen===0||octetLen>4)return!1;if(buf[p.place]===0)return!1;var val=0;for(var i=0,off=p.place;i>>=0;if(val<=127)return!1;return p.place=off,val}function rmPadding(buf){var i=0,len=buf.length-1;while(!buf[i]&&!(buf[i+1]&128)&&i>>3);arr.push(octets|128);while(--octets)arr.push(len>>>(octets<<3)&255);arr.push(len)}Signature.prototype.toDER=function(enc){var r=this.r.toArray(),s=this.s.toArray();if(r[0]&128)r=[0].concat(r);if(s[0]&128)s=[0].concat(s);r=rmPadding(r),s=rmPadding(s);while(!s[0]&&!(s[1]&128))s=s.slice(1);var arr=[2];constructLength(arr,r.length),arr=arr.concat(r),arr.push(2),constructLength(arr,s.length);var backHalf=arr.concat(s),res=[48];return constructLength(res,backHalf.length),res=res.concat(backHalf),utils.encode(res,enc)}});var require_ec=__commonJS((exports,module)=>{var BN=require_bn(),HmacDRBG=require_hmac_drbg(),utils=require_utils2(),curves=require_curves(),rand=require_brorand(),assert=utils.assert,KeyPair=require_key(),Signature=require_signature();function EC(options){if(!(this instanceof EC))return new EC(options);if(typeof options===\"string\")assert(Object.prototype.hasOwnProperty.call(curves,options),\"Unknown curve \"+options),options=curves[options];if(options instanceof curves.PresetCurve)options={curve:options};this.curve=options.curve.curve,this.n=this.curve.n,this.nh=this.n.ushrn(1),this.g=this.curve.g,this.g=options.curve.g,this.g.precompute(options.curve.n.bitLength()+1),this.hash=options.hash||options.curve.hash}module.exports=EC;EC.prototype.keyPair=function(options){return new KeyPair(this,options)};EC.prototype.keyFromPrivate=function(priv,enc){return KeyPair.fromPrivate(this,priv,enc)};EC.prototype.keyFromPublic=function(pub,enc){return KeyPair.fromPublic(this,pub,enc)};EC.prototype.genKeyPair=function(options){if(!options)options={};var drbg=new HmacDRBG({hash:this.hash,pers:options.pers,persEnc:options.persEnc||\"utf8\",entropy:options.entropy||rand(this.hash.hmacStrength),entropyEnc:options.entropy&&options.entropyEnc||\"utf8\",nonce:this.n.toArray()}),bytes=this.n.byteLength(),ns2=this.n.sub(new BN(2));for(;;){var priv=new BN(drbg.generate(bytes));if(priv.cmp(ns2)>0)continue;return priv.iaddn(1),this.keyFromPrivate(priv)}};EC.prototype._truncateToN=function(msg,truncOnly,bitLength){var byteLength;if(BN.isBN(msg)||typeof msg===\"number\")msg=new BN(msg,16),byteLength=msg.byteLength();else if(typeof msg===\"object\")byteLength=msg.length,msg=new BN(msg,16);else{var str=msg.toString();byteLength=str.length+1>>>1,msg=new BN(str,16)}if(typeof bitLength!==\"number\")bitLength=byteLength*8;var delta=bitLength-this.n.bitLength();if(delta>0)msg=msg.ushrn(delta);if(!truncOnly&&msg.cmp(this.n)>=0)return msg.sub(this.n);else return msg};EC.prototype.sign=function(msg,key,enc,options){if(typeof enc===\"object\")options=enc,enc=null;if(!options)options={};if(typeof msg!==\"string\"&&typeof msg!==\"number\"&&!BN.isBN(msg)){assert(typeof msg===\"object\"&&msg&&typeof msg.length===\"number\",\"Expected message to be an array-like, a hex string, or a BN instance\"),assert(msg.length>>>0===msg.length);for(var i=0;i=0)continue;var kp=this.g.mul(k);if(kp.isInfinity())continue;var kpX=kp.getX(),r=kpX.umod(this.n);if(r.cmpn(0)===0)continue;var s=k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));if(s=s.umod(this.n),s.cmpn(0)===0)continue;var recoveryParam=(kp.getY().isOdd()?1:0)|(kpX.cmp(r)!==0?2:0);if(options.canonical&&s.cmp(this.nh)>0)s=this.n.sub(s),recoveryParam^=1;return new Signature({r,s,recoveryParam})}};EC.prototype.verify=function(msg,signature,key,enc,options){if(!options)options={};msg=this._truncateToN(msg,!1,options.msgBitLength),key=this.keyFromPublic(key,enc),signature=new Signature(signature,\"hex\");var{r,s}=signature;if(r.cmpn(1)<0||r.cmp(this.n)>=0)return!1;if(s.cmpn(1)<0||s.cmp(this.n)>=0)return!1;var sinv=s.invm(this.n),u1=sinv.mul(msg).umod(this.n),u2=sinv.mul(r).umod(this.n),p;if(!this.curve._maxwellTrick){if(p=this.g.mulAdd(u1,key.getPublic(),u2),p.isInfinity())return!1;return p.getX().umod(this.n).cmp(r)===0}if(p=this.g.jmulAdd(u1,key.getPublic(),u2),p.isInfinity())return!1;return p.eqXToP(r)};EC.prototype.recoverPubKey=function(msg,signature,j,enc){assert((3&j)===j,\"The recovery param is more than two bits\"),signature=new Signature(signature,enc);var n=this.n,e=new BN(msg),r=signature.r,s=signature.s,isYOdd=j&1,isSecondKey=j>>1;if(r.cmp(this.curve.p.umod(this.curve.n))>=0&&isSecondKey)throw Error(\"Unable to find sencond key candinate\");if(isSecondKey)r=this.curve.pointFromX(r.add(this.curve.n),isYOdd);else r=this.curve.pointFromX(r,isYOdd);var rInv=signature.r.invm(n),s1=n.sub(e).mul(rInv).umod(n),s2=s.mul(rInv).umod(n);return this.g.mulAdd(s1,r,s2)};EC.prototype.getKeyRecoveryParam=function(e,signature,Q,enc){if(signature=new Signature(signature,enc),signature.recoveryParam!==null)return signature.recoveryParam;for(var i=0;i<4;i++){var Qprime;try{Qprime=this.recoverPubKey(e,signature,i)}catch(e2){continue}if(Qprime.eq(Q))return i}throw Error(\"Unable to find valid recovery factor\")}});var require_key2=__commonJS((exports,module)=>{var utils=require_utils2(),assert=utils.assert,parseBytes=utils.parseBytes,cachedProperty=utils.cachedProperty;function KeyPair(eddsa,params){if(this.eddsa=eddsa,this._secret=parseBytes(params.secret),eddsa.isPoint(params.pub))this._pub=params.pub;else this._pubBytes=parseBytes(params.pub)}KeyPair.fromPublic=function(eddsa,pub){if(pub instanceof KeyPair)return pub;return new KeyPair(eddsa,{pub})};KeyPair.fromSecret=function(eddsa,secret){if(secret instanceof KeyPair)return secret;return new KeyPair(eddsa,{secret})};KeyPair.prototype.secret=function(){return this._secret};cachedProperty(KeyPair,\"pubBytes\",function(){return this.eddsa.encodePoint(this.pub())});cachedProperty(KeyPair,\"pub\",function(){if(this._pubBytes)return this.eddsa.decodePoint(this._pubBytes);return this.eddsa.g.mul(this.priv())});cachedProperty(KeyPair,\"privBytes\",function(){var eddsa=this.eddsa,hash=this.hash(),lastIx=eddsa.encodingLength-1,a=hash.slice(0,eddsa.encodingLength);return a[0]&=248,a[lastIx]&=127,a[lastIx]|=64,a});cachedProperty(KeyPair,\"priv\",function(){return this.eddsa.decodeInt(this.privBytes())});cachedProperty(KeyPair,\"hash\",function(){return this.eddsa.hash().update(this.secret()).digest()});cachedProperty(KeyPair,\"messagePrefix\",function(){return this.hash().slice(this.eddsa.encodingLength)});KeyPair.prototype.sign=function(message){return assert(this._secret,\"KeyPair can only verify\"),this.eddsa.sign(message,this)};KeyPair.prototype.verify=function(message,sig){return this.eddsa.verify(message,sig,this)};KeyPair.prototype.getSecret=function(enc){return assert(this._secret,\"KeyPair is public only\"),utils.encode(this.secret(),enc)};KeyPair.prototype.getPublic=function(enc){return utils.encode(this.pubBytes(),enc)};module.exports=KeyPair});var require_signature2=__commonJS((exports,module)=>{var BN=require_bn(),utils=require_utils2(),assert=utils.assert,cachedProperty=utils.cachedProperty,parseBytes=utils.parseBytes;function Signature(eddsa,sig){if(this.eddsa=eddsa,typeof sig!==\"object\")sig=parseBytes(sig);if(Array.isArray(sig))assert(sig.length===eddsa.encodingLength*2,\"Signature has invalid size\"),sig={R:sig.slice(0,eddsa.encodingLength),S:sig.slice(eddsa.encodingLength)};if(assert(sig.R&&sig.S,\"Signature without R or S\"),eddsa.isPoint(sig.R))this._R=sig.R;if(sig.S instanceof BN)this._S=sig.S;this._Rencoded=Array.isArray(sig.R)?sig.R:sig.Rencoded,this._Sencoded=Array.isArray(sig.S)?sig.S:sig.Sencoded}cachedProperty(Signature,\"S\",function(){return this.eddsa.decodeInt(this.Sencoded())});cachedProperty(Signature,\"R\",function(){return this.eddsa.decodePoint(this.Rencoded())});cachedProperty(Signature,\"Rencoded\",function(){return this.eddsa.encodePoint(this.R())});cachedProperty(Signature,\"Sencoded\",function(){return this.eddsa.encodeInt(this.S())});Signature.prototype.toBytes=function(){return this.Rencoded().concat(this.Sencoded())};Signature.prototype.toHex=function(){return utils.encode(this.toBytes(),\"hex\").toUpperCase()};module.exports=Signature});var require_eddsa=__commonJS((exports,module)=>{var hash=require_hash(),curves=require_curves(),utils=require_utils2(),assert=utils.assert,parseBytes=utils.parseBytes,KeyPair=require_key2(),Signature=require_signature2();function EDDSA(curve){if(assert(curve===\"ed25519\",\"only tested with ed25519 so far\"),!(this instanceof EDDSA))return new EDDSA(curve);curve=curves[curve].curve,this.curve=curve,this.g=curve.g,this.g.precompute(curve.n.bitLength()+1),this.pointClass=curve.point().constructor,this.encodingLength=Math.ceil(curve.n.bitLength()/8),this.hash=hash.sha512}module.exports=EDDSA;EDDSA.prototype.sign=function(message,secret){message=parseBytes(message);var key=this.keyFromSecret(secret),r=this.hashInt(key.messagePrefix(),message),R=this.g.mul(r),Rencoded=this.encodePoint(R),s_=this.hashInt(Rencoded,key.pubBytes(),message).mul(key.priv()),S=r.add(s_).umod(this.curve.n);return this.makeSignature({R,S,Rencoded})};EDDSA.prototype.verify=function(message,sig,pub){if(message=parseBytes(message),sig=this.makeSignature(sig),sig.S().gte(sig.eddsa.curve.n)||sig.S().isNeg())return!1;var key=this.keyFromPublic(pub),h=this.hashInt(sig.Rencoded(),key.pubBytes(),message),SG=this.g.mul(sig.S()),RplusAh=sig.R().add(key.pub().mul(h));return RplusAh.eq(SG)};EDDSA.prototype.hashInt=function(){var hash2=this.hash();for(var i=0;i{var elliptic=exports;elliptic.version=require_package().version;elliptic.utils=require_utils2();elliptic.rand=require_brorand();elliptic.curve=require_curve();elliptic.curves=require_curves();elliptic.ec=require_ec();elliptic.eddsa=require_eddsa()});var require_bn2=__commonJS((exports,module)=>{(function(module2,exports2){function assert(val,msg){if(!val)throw Error(msg||\"Assertion failed\")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;if(this.negative=0,this.words=null,this.length=0,this.red=null,number!==null){if(base===\"le\"||base===\"be\")endian=base,base=10;this._init(number||0,base||10,endian||\"be\")}}if(typeof module2===\"object\")module2.exports=BN;else exports2.BN=BN;BN.BN=BN,BN.wordSize=26;var Buffer2;try{if(typeof window<\"u\"&&typeof window.Buffer<\"u\")Buffer2=window.Buffer;else Buffer2=require(\"buffer\").Buffer}catch(e){}BN.isBN=function(num){if(num instanceof BN)return!0;return num!==null&&typeof num===\"object\"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){if(left.cmp(right)>0)return left;return right},BN.min=function(left,right){if(left.cmp(right)<0)return left;return right},BN.prototype._init=function(number,base,endian){if(typeof number===\"number\")return this._initNumber(number,base,endian);if(typeof number===\"object\")return this._initArray(number,base,endian);if(base===\"hex\")base=16;assert(base===(base|0)&&base>=2&&base<=36),number=number.toString().replace(/\\s+/g,\"\");var start=0;if(number[0]===\"-\")start++,this.negative=1;if(start=0;i-=3)if(w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,off+=24,off>=26)off-=26,j++}else if(endian===\"le\"){for(i=0,j=0;i>>26-off&67108863,off+=24,off>=26)off-=26,j++}return this.strip()};function parseHex4Bits(string,index){var c=string.charCodeAt(index);if(c>=65&&c<=70)return c-55;else if(c>=97&&c<=102)return c-87;else return c-48&15}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);if(index-1>=lowerBound)r|=parseHex4Bits(string,index-1)<<4;return r}BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=Array(this.length);for(var i=0;i=start;i-=2)if(w=parseHexByte(number,start,i)<=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8;else{var parseLength=number.length-start;for(i=parseLength%2===0?start+1:start;i=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8}this.strip()};function parseBase(str,start,end,mul){var r=0,len=Math.min(str.length,end);for(var i=start;i=49)r+=c-49+10;else if(c>=17)r+=c-17+10;else r+=c}return r}BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0;for(var i=start;i1&&this.words[this.length-1]===0)this.length--;return this._normSign()},BN.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},BN.prototype.inspect=function(){return(this.red?\"\"};var zeros=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(BN.prototype.toString=function(base,padding){base=base||10,padding=padding|0||1;var out;if(base===16||base===\"hex\"){out=\"\";var off=0,carry=0;for(var i=0;i>>24-off&16777215,off+=2,off>=26)off-=26,i--;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out=\"\";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modn(groupBase).toString(base);if(c=c.idivn(groupBase),!c.isZero())out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.isZero())out=\"0\"+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}assert(!1,\"Base should be between 2 and 36\")},BN.prototype.toNumber=function(){var ret=this.words[0];if(this.length===2)ret+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)ret+=4503599627370496+this.words[1]*67108864;else if(this.length>2)assert(!1,\"Number can only safely store up to 53 bits\");return this.negative!==0?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(typeof Buffer2<\"u\"),this.toArrayLike(Buffer2,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,\"byte array longer than desired length\"),assert(reqLength>0,\"Requested array length <= 0\"),this.strip();var littleEndian=endian===\"le\",res=new ArrayType(reqLength),b,i,q=this.clone();if(!littleEndian){for(i=0;i=4096)r+=13,t>>>=13;if(t>=64)r+=7,t>>>=7;if(t>=8)r+=4,t>>>=4;if(t>=2)r+=2,t>>>=2;return r+t};BN.prototype._zeroBits=function(w){if(w===0)return 26;var t=w,r=0;if((t&8191)===0)r+=13,t>>>=13;if((t&127)===0)r+=7,t>>>=7;if((t&15)===0)r+=4,t>>>=4;if((t&3)===0)r+=2,t>>>=2;if((t&1)===0)r++;return r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=Array(num.bitLength());for(var bit=0;bit>>wbit}return w}BN.prototype.zeroBits=function(){if(this.isZero())return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);return num.clone().ior(this)},BN.prototype.uor=function(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;if(this.length>num.length)b=num;else b=this;for(var i=0;inum.length)return this.clone().iand(num);return num.clone().iand(this)},BN.prototype.uand=function(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;if(this.length>num.length)a=this,b=num;else a=num,b=this;for(var i=0;inum.length)return this.clone().ixor(num);return num.clone().ixor(this)},BN.prototype.uxor=function(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert(typeof width===\"number\"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0,bitsLeft=width%26;if(this._expand(bytesNeeded),bitsLeft>0)bytesNeeded--;for(var i=0;i0)this.words[i]=~this.words[i]&67108863>>26-bitsLeft;return this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert(typeof bit===\"number\"&&bit>=0);var off=bit/26|0,wbit=bit%26;if(this._expand(off+1),val)this.words[off]=this.words[off]|1<num.length)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>>26;for(;carry!==0&&i>>26;if(this.length=a.length,carry!==0)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length)return this.clone().iadd(num);return num.clone().iadd(this)},BN.prototype.isub=function(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var cmp=this.cmp(num);if(cmp===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,b;if(cmp>0)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>26,this.words[i]=r&67108863;for(;carry!==0&&i>26,this.words[i]=r&67108863;if(carry===0&&i>>26,rword=carry&67108863,maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self2.length+1);j<=maxJ;j++){var i=k-j|0;a=self2.words[i]|0,b=num.words[j]|0,r=a*b+rword,ncarry+=r/67108864|0,rword=r&67108863}out.words[k]=rword|0,carry=ncarry|0}if(carry!==0)out.words[k]=carry|0;else out.length--;return out.strip()}var comb10MulTo=function(self2,num,out){var a=self2.words,b=num.words,o=out.words,c=0,lo,mid,hi,a0=a[0]|0,al0=a0&8191,ah0=a0>>>13,a1=a[1]|0,al1=a1&8191,ah1=a1>>>13,a2=a[2]|0,al2=a2&8191,ah2=a2>>>13,a3=a[3]|0,al3=a3&8191,ah3=a3>>>13,a4=a[4]|0,al4=a4&8191,ah4=a4>>>13,a5=a[5]|0,al5=a5&8191,ah5=a5>>>13,a6=a[6]|0,al6=a6&8191,ah6=a6>>>13,a7=a[7]|0,al7=a7&8191,ah7=a7>>>13,a8=a[8]|0,al8=a8&8191,ah8=a8>>>13,a9=a[9]|0,al9=a9&8191,ah9=a9>>>13,b0=b[0]|0,bl0=b0&8191,bh0=b0>>>13,b1=b[1]|0,bl1=b1&8191,bh1=b1>>>13,b2=b[2]|0,bl2=b2&8191,bh2=b2>>>13,b3=b[3]|0,bl3=b3&8191,bh3=b3>>>13,b4=b[4]|0,bl4=b4&8191,bh4=b4>>>13,b5=b[5]|0,bl5=b5&8191,bh5=b5>>>13,b6=b[6]|0,bl6=b6&8191,bh6=b6>>>13,b7=b[7]|0,bl7=b7&8191,bh7=b7>>>13,b8=b[8]|0,bl8=b8&8191,bh8=b8>>>13,b9=b[9]|0,bl9=b9&8191,bh9=b9>>>13;out.negative=self2.negative^num.negative,out.length=19,lo=Math.imul(al0,bl0),mid=Math.imul(al0,bh0),mid=mid+Math.imul(ah0,bl0)|0,hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=Math.imul(al1,bh0),mid=mid+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0),lo=lo+Math.imul(al0,bl1)|0,mid=mid+Math.imul(al0,bh1)|0,mid=mid+Math.imul(ah0,bl1)|0,hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=Math.imul(al2,bh0),mid=mid+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=mid+Math.imul(al1,bh1)|0,mid=mid+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0,lo=lo+Math.imul(al0,bl2)|0,mid=mid+Math.imul(al0,bh2)|0,mid=mid+Math.imul(ah0,bl2)|0,hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=Math.imul(al3,bh0),mid=mid+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=mid+Math.imul(al2,bh1)|0,mid=mid+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=mid+Math.imul(al1,bh2)|0,mid=mid+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0,lo=lo+Math.imul(al0,bl3)|0,mid=mid+Math.imul(al0,bh3)|0,mid=mid+Math.imul(ah0,bl3)|0,hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=Math.imul(al4,bh0),mid=mid+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=mid+Math.imul(al3,bh1)|0,mid=mid+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=mid+Math.imul(al2,bh2)|0,mid=mid+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=mid+Math.imul(al1,bh3)|0,mid=mid+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0,lo=lo+Math.imul(al0,bl4)|0,mid=mid+Math.imul(al0,bh4)|0,mid=mid+Math.imul(ah0,bl4)|0,hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=Math.imul(al5,bh0),mid=mid+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=mid+Math.imul(al4,bh1)|0,mid=mid+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=mid+Math.imul(al3,bh2)|0,mid=mid+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=mid+Math.imul(al2,bh3)|0,mid=mid+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=mid+Math.imul(al1,bh4)|0,mid=mid+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0,lo=lo+Math.imul(al0,bl5)|0,mid=mid+Math.imul(al0,bh5)|0,mid=mid+Math.imul(ah0,bl5)|0,hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=Math.imul(al6,bh0),mid=mid+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=mid+Math.imul(al5,bh1)|0,mid=mid+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=mid+Math.imul(al4,bh2)|0,mid=mid+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=mid+Math.imul(al3,bh3)|0,mid=mid+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=mid+Math.imul(al2,bh4)|0,mid=mid+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=mid+Math.imul(al1,bh5)|0,mid=mid+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0,lo=lo+Math.imul(al0,bl6)|0,mid=mid+Math.imul(al0,bh6)|0,mid=mid+Math.imul(ah0,bl6)|0,hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=Math.imul(al7,bh0),mid=mid+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=mid+Math.imul(al6,bh1)|0,mid=mid+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=mid+Math.imul(al5,bh2)|0,mid=mid+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=mid+Math.imul(al4,bh3)|0,mid=mid+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=mid+Math.imul(al3,bh4)|0,mid=mid+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=mid+Math.imul(al2,bh5)|0,mid=mid+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=mid+Math.imul(al1,bh6)|0,mid=mid+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0,lo=lo+Math.imul(al0,bl7)|0,mid=mid+Math.imul(al0,bh7)|0,mid=mid+Math.imul(ah0,bl7)|0,hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=Math.imul(al8,bh0),mid=mid+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=mid+Math.imul(al7,bh1)|0,mid=mid+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=mid+Math.imul(al6,bh2)|0,mid=mid+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=mid+Math.imul(al5,bh3)|0,mid=mid+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=mid+Math.imul(al4,bh4)|0,mid=mid+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=mid+Math.imul(al3,bh5)|0,mid=mid+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=mid+Math.imul(al2,bh6)|0,mid=mid+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=mid+Math.imul(al1,bh7)|0,mid=mid+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0,lo=lo+Math.imul(al0,bl8)|0,mid=mid+Math.imul(al0,bh8)|0,mid=mid+Math.imul(ah0,bl8)|0,hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=Math.imul(al9,bh0),mid=mid+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=mid+Math.imul(al8,bh1)|0,mid=mid+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=mid+Math.imul(al7,bh2)|0,mid=mid+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=mid+Math.imul(al6,bh3)|0,mid=mid+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=mid+Math.imul(al5,bh4)|0,mid=mid+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=mid+Math.imul(al4,bh5)|0,mid=mid+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=mid+Math.imul(al3,bh6)|0,mid=mid+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=mid+Math.imul(al2,bh7)|0,mid=mid+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=mid+Math.imul(al1,bh8)|0,mid=mid+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0,lo=lo+Math.imul(al0,bl9)|0,mid=mid+Math.imul(al0,bh9)|0,mid=mid+Math.imul(ah0,bl9)|0,hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=Math.imul(al9,bh1),mid=mid+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=mid+Math.imul(al8,bh2)|0,mid=mid+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=mid+Math.imul(al7,bh3)|0,mid=mid+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=mid+Math.imul(al6,bh4)|0,mid=mid+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=mid+Math.imul(al5,bh5)|0,mid=mid+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=mid+Math.imul(al4,bh6)|0,mid=mid+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=mid+Math.imul(al3,bh7)|0,mid=mid+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=mid+Math.imul(al2,bh8)|0,mid=mid+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0,lo=lo+Math.imul(al1,bl9)|0,mid=mid+Math.imul(al1,bh9)|0,mid=mid+Math.imul(ah1,bl9)|0,hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=Math.imul(al9,bh2),mid=mid+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=mid+Math.imul(al8,bh3)|0,mid=mid+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=mid+Math.imul(al7,bh4)|0,mid=mid+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=mid+Math.imul(al6,bh5)|0,mid=mid+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=mid+Math.imul(al5,bh6)|0,mid=mid+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=mid+Math.imul(al4,bh7)|0,mid=mid+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=mid+Math.imul(al3,bh8)|0,mid=mid+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0,lo=lo+Math.imul(al2,bl9)|0,mid=mid+Math.imul(al2,bh9)|0,mid=mid+Math.imul(ah2,bl9)|0,hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=Math.imul(al9,bh3),mid=mid+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=mid+Math.imul(al8,bh4)|0,mid=mid+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=mid+Math.imul(al7,bh5)|0,mid=mid+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=mid+Math.imul(al6,bh6)|0,mid=mid+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=mid+Math.imul(al5,bh7)|0,mid=mid+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=mid+Math.imul(al4,bh8)|0,mid=mid+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0,lo=lo+Math.imul(al3,bl9)|0,mid=mid+Math.imul(al3,bh9)|0,mid=mid+Math.imul(ah3,bl9)|0,hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=Math.imul(al9,bh4),mid=mid+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=mid+Math.imul(al8,bh5)|0,mid=mid+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=mid+Math.imul(al7,bh6)|0,mid=mid+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=mid+Math.imul(al6,bh7)|0,mid=mid+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=mid+Math.imul(al5,bh8)|0,mid=mid+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0,lo=lo+Math.imul(al4,bl9)|0,mid=mid+Math.imul(al4,bh9)|0,mid=mid+Math.imul(ah4,bl9)|0,hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=Math.imul(al9,bh5),mid=mid+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=mid+Math.imul(al8,bh6)|0,mid=mid+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=mid+Math.imul(al7,bh7)|0,mid=mid+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=mid+Math.imul(al6,bh8)|0,mid=mid+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0,lo=lo+Math.imul(al5,bl9)|0,mid=mid+Math.imul(al5,bh9)|0,mid=mid+Math.imul(ah5,bl9)|0,hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=Math.imul(al9,bh6),mid=mid+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=mid+Math.imul(al8,bh7)|0,mid=mid+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=mid+Math.imul(al7,bh8)|0,mid=mid+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0,lo=lo+Math.imul(al6,bl9)|0,mid=mid+Math.imul(al6,bh9)|0,mid=mid+Math.imul(ah6,bl9)|0,hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=Math.imul(al9,bh7),mid=mid+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=mid+Math.imul(al8,bh8)|0,mid=mid+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0,lo=lo+Math.imul(al7,bl9)|0,mid=mid+Math.imul(al7,bh9)|0,mid=mid+Math.imul(ah7,bl9)|0,hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=Math.imul(al9,bh8),mid=mid+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8),lo=lo+Math.imul(al8,bl9)|0,mid=mid+Math.imul(al8,bh9)|0,mid=mid+Math.imul(ah8,bl9)|0,hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863,lo=Math.imul(al9,bl9),mid=Math.imul(al9,bh9),mid=mid+Math.imul(ah9,bl9)|0,hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;if(c=(hi+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,c!==0)o[19]=c,out.length++;return out};if(!Math.imul)comb10MulTo=smallMulTo;function bigMulTo(self2,num,out){out.negative=num.negative^self2.negative,out.length=self2.length+num.length;var carry=0,hncarry=0;for(var k=0;k>>26)|0,hncarry+=ncarry>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}if(carry!==0)out.words[k]=carry;else out.length--;return out.strip()}function jumboMulTo(self2,num,out){var fftm=new FFTM;return fftm.mulp(self2,num,out)}BN.prototype.mulTo=function(num,out){var res,len=this.length+num.length;if(this.length===10&&num.length===10)res=comb10MulTo(this,num,out);else if(len<63)res=smallMulTo(this,num,out);else if(len<1024)res=bigMulTo(this,num,out);else res=jumboMulTo(this,num,out);return res};function FFTM(x,y){this.x=x,this.y=y}FFTM.prototype.makeRBT=function(N){var t=Array(N),l=BN.prototype._countBits(N)-1;for(var i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1)i++;return 1<>>13,rws[2*i+1]=carry&8191,carry=carry>>>13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=lo&67108863}if(carry!==0)this.words[i]=carry,this.length++;return this.length=num===0?1:this.length,this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i=0);var r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r,i;if(r!==0){var carry=0;for(i=0;i>>26-r}if(carry)this.words[i]=carry,this.length++}if(s!==0){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0);var h;if(hint)h=(hint-hint%26)/26;else h=0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s){this.length-=s;for(i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r,carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0)this.words[0]=0,this.length=1;return this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(this.negative===0),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert(typeof bit===\"number\"&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(this.negative===0,\"imaskn works only with positive numbers\"),this.length<=s)return this;if(r!==0)s++;if(this.length=Math.min(s,this.length),r!==0){var mask=67108863^67108863>>>r<=67108864;i++)if(this.words[i]-=67108864,i===this.length-1)this.words[i+1]=1;else this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert(typeof num===\"number\"),assert(num<67108864),num<0)return this.iaddn(-num);if(this.negative!==0)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=w&67108863}for(;i>26,this.words[i+shift]=w&67108863;if(carry===0)return this.strip();assert(carry===-1),carry=0;for(i=0;i>26,this.words[i]=w&67108863;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=this.length-num.length,a=this.clone(),b=num,bhi=b.words[b.length-1]|0,bhiBits=this._countBits(bhi);if(shift=26-bhiBits,shift!==0)b=b.ushln(shift),a.iushln(shift),bhi=b.words[b.length-1]|0;var m=a.length-b.length,q;if(mode!==\"mod\"){q=new BN(null),q.length=m+1,q.words=Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);while(a.negative!==0)if(qj--,a.negative=0,a._ishlnsubmul(b,1,j),!a.isZero())a.negative^=1;if(q)q.words[j]=qj}if(q)q.strip();if(a.strip(),mode!==\"div\"&&shift!==0)a.iushrn(shift);return{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){if(assert(!num.isZero()),this.isZero())return{div:new BN(0),mod:new BN(0)};var div,mod,res;if(this.negative!==0&&num.negative===0){if(res=this.neg().divmod(num,mode),mode!==\"mod\")div=res.div.neg();if(mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.iadd(num)}return{div,mod}}if(this.negative===0&&num.negative!==0){if(res=this.divmod(num.neg(),mode),mode!==\"mod\")div=res.div.neg();return{div,mod:res.mod}}if((this.negative&num.negative)!==0){if(res=this.neg().divmod(num.neg(),mode),mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.isub(num)}return{div:res.div,mod}}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode===\"div\")return{div:this.divn(num.words[0]),mod:null};if(mode===\"mod\")return{div:null,mod:new BN(this.modn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)},BN.prototype.div=function(num){return this.divmod(num,\"div\",!1).div},BN.prototype.mod=function(num){return this.divmod(num,\"mod\",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,\"mod\",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);var p=67108864%num,acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+(this.words[i]|0))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(p.negative===0),assert(!p.isZero());var x=this,y=p.clone();if(x.negative!==0)x=x.umod(p);else x=x.clone();var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;while(x.isEven()&&y.isEven())x.iushrn(1),y.iushrn(1),++g;var yp=y.clone(),xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd())A.iadd(yp),B.isub(xp);A.iushrn(1),B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd())C.iadd(yp),D.isub(xp);C.iushrn(1),D.iushrn(1)}}if(x.cmp(y)>=0)x.isub(y),A.isub(C),B.isub(D);else y.isub(x),C.isub(A),D.isub(B)}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(p.negative===0),assert(!p.isZero());var a=this,b=p.clone();if(a.negative!==0)a=a.umod(p);else a=a.clone();var x1=new BN(1),x2=new BN(0),delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd())x1.iadd(delta);x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd())x2.iadd(delta);x2.iushrn(1)}}if(a.cmp(b)>=0)a.isub(b),x1.isub(x2);else b.isub(a),x2.isub(x1)}var res;if(a.cmpn(1)===0)res=x1;else res=x2;if(res.cmpn(0)<0)res.iadd(p);return res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);do{while(a.isEven())a.iushrn(1);while(b.isEven())b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(r===0||b.cmpn(1)===0)break;a.isub(b)}while(!0);return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return(this.words[0]&1)===0},BN.prototype.isOdd=function(){return(this.words[0]&1)===1},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert(typeof bit===\"number\");var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}if(carry!==0)this.words[i]=carry,this.length++;return this},BN.prototype.isZero=function(){return this.length===1&&this.words[0]===0},BN.prototype.cmpn=function(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this.strip();var res;if(this.length>1)res=1;else{if(negative)num=-num;assert(num<=67108863,\"Number is too big\");var w=this.words[0]|0;res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=this.words[i]|0,b=num.words[i]|0;if(a===b)continue;if(ab)res=1;break}return res},BN.prototype.gtn=function(num){return this.cmpn(num)===1},BN.prototype.gt=function(num){return this.cmp(num)===1},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return this.cmpn(num)===-1},BN.prototype.lt=function(num){return this.cmp(num)===-1},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return this.cmpn(num)===0},BN.prototype.eq=function(num){return this.cmp(num)===0},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),assert(this.negative===0,\"red works only with positives\"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,\"redAdd works only with red numbers\"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,\"redSub works only with red numbers\"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,\"redISub works only with red numbers\"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,\"redShl works only with red numbers\"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var r=num,rlen;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),rlen=r.bitLength();while(rlen>this.n);var cmp=rlen0)r.isub(this.p);else if(r.strip!==void 0)r.strip();else r._strip();return r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)};function K256(){MPrime.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}inherits(K256,MPrime),K256.prototype.split=function(input,output){var mask=4194303,outLen=Math.min(input.length,9);for(var i=0;i>>22,prev=next}if(prev>>>=22,input.words[i-10]=prev,prev===0&&input.length>10)input.length-=10;else input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;var lo=0;for(var i=0;i>>=26,num.words[i]=lo,carry=hi}if(carry!==0)num.words[num.length++]=carry;return num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if(name===\"k256\")prime=new K256;else if(name===\"p224\")prime=new P224;else if(name===\"p192\")prime=new P192;else if(name===\"p25519\")prime=new P25519;else throw Error(\"Unknown prime \"+name);return primes[name]=prime,prime};function Red(m){if(typeof m===\"string\"){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),\"modulus must be greater than 1\"),this.m=m,this.prime=null}Red.prototype._verify1=function(a){assert(a.negative===0,\"red works only with positives\"),assert(a.red,\"red works only with red numbers\")},Red.prototype._verify2=function(a,b){assert((a.negative|b.negative)===0,\"red works only with positives\"),assert(a.red&&a.red===b.red,\"red works only with red numbers\")},Red.prototype.imod=function(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){if(a.isZero())return a.clone();return this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2===1),mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1),s=0;while(!q.isZero()&&q.andln(1)===0)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0])res=this.sqr(res);if(bit===0&¤t===0){currentLen=0;continue}if(current<<=1,current|=bit,currentLen++,currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]),currentLen=0,current=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)};function Mont(m){if(Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.invm=function(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module>\"u\"||module,exports)});var require_browser=__commonJS((exports,module)=>{var elliptic=require_elliptic(),BN=require_bn2();module.exports=function(curve){return new ECDH(curve)};var aliases={secp256k1:{name:\"secp256k1\",byteLength:32},secp224r1:{name:\"p224\",byteLength:28},prime256v1:{name:\"p256\",byteLength:32},prime192v1:{name:\"p192\",byteLength:24},ed25519:{name:\"ed25519\",byteLength:32},secp384r1:{name:\"p384\",byteLength:48},secp521r1:{name:\"p521\",byteLength:66}};aliases.p224=aliases.secp224r1;aliases.p256=aliases.secp256r1=aliases.prime256v1;aliases.p192=aliases.secp192r1=aliases.prime192v1;aliases.p384=aliases.secp384r1;aliases.p521=aliases.secp521r1;function ECDH(curve){if(this.curveType=aliases[curve],!this.curveType)this.curveType={name:curve};this.curve=new elliptic.ec(this.curveType.name),this.keys=void 0}ECDH.prototype.generateKeys=function(enc,format){return this.keys=this.curve.genKeyPair(),this.getPublicKey(enc,format)};ECDH.prototype.computeSecret=function(other,inenc,enc){if(inenc=inenc||\"utf8\",!Buffer.isBuffer(other))other=new Buffer(other,inenc);var otherPub=this.curve.keyFromPublic(other).getPublic(),out=otherPub.mul(this.keys.getPrivate()).getX();return formatReturnValue(out,enc,this.curveType.byteLength)};ECDH.prototype.getPublicKey=function(enc,format){var key=this.keys.getPublic(format===\"compressed\",!0);if(format===\"hybrid\")if(key[key.length-1]%2)key[0]=7;else key[0]=6;return formatReturnValue(key,enc)};ECDH.prototype.getPrivateKey=function(enc){return formatReturnValue(this.keys.getPrivate(),enc)};ECDH.prototype.setPublicKey=function(pub,enc){if(enc=enc||\"utf8\",!Buffer.isBuffer(pub))pub=new Buffer(pub,enc);return this.keys._importPublic(pub),this};ECDH.prototype.setPrivateKey=function(priv,enc){if(enc=enc||\"utf8\",!Buffer.isBuffer(priv))priv=new Buffer(priv,enc);var _priv=new BN(priv);return _priv=_priv.toString(16),this.keys=this.curve.genKeyPair(),this.keys._importPrivate(_priv),this};function formatReturnValue(bn,enc,len){if(!Array.isArray(bn))bn=bn.toArray();var buf=new Buffer(bn);if(len&&buf.length{var createECDH=require(\"crypto\").createECDH;module.exports=createECDH||require_browser()});var require_bn3=__commonJS((exports,module)=>{(function(module2,exports2){function assert(val,msg){if(!val)throw Error(msg||\"Assertion failed\")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;if(this.negative=0,this.words=null,this.length=0,this.red=null,number!==null){if(base===\"le\"||base===\"be\")endian=base,base=10;this._init(number||0,base||10,endian||\"be\")}}if(typeof module2===\"object\")module2.exports=BN;else exports2.BN=BN;BN.BN=BN,BN.wordSize=26;var Buffer2;try{if(typeof window<\"u\"&&typeof window.Buffer<\"u\")Buffer2=window.Buffer;else Buffer2=require(\"buffer\").Buffer}catch(e){}BN.isBN=function(num){if(num instanceof BN)return!0;return num!==null&&typeof num===\"object\"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){if(left.cmp(right)>0)return left;return right},BN.min=function(left,right){if(left.cmp(right)<0)return left;return right},BN.prototype._init=function(number,base,endian){if(typeof number===\"number\")return this._initNumber(number,base,endian);if(typeof number===\"object\")return this._initArray(number,base,endian);if(base===\"hex\")base=16;assert(base===(base|0)&&base>=2&&base<=36),number=number.toString().replace(/\\s+/g,\"\");var start=0;if(number[0]===\"-\")start++,this.negative=1;if(start=0;i-=3)if(w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,off+=24,off>=26)off-=26,j++}else if(endian===\"le\"){for(i=0,j=0;i>>26-off&67108863,off+=24,off>=26)off-=26,j++}return this.strip()};function parseHex4Bits(string,index){var c=string.charCodeAt(index);if(c>=65&&c<=70)return c-55;else if(c>=97&&c<=102)return c-87;else return c-48&15}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);if(index-1>=lowerBound)r|=parseHex4Bits(string,index-1)<<4;return r}BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=Array(this.length);for(var i=0;i=start;i-=2)if(w=parseHexByte(number,start,i)<=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8;else{var parseLength=number.length-start;for(i=parseLength%2===0?start+1:start;i=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8}this.strip()};function parseBase(str,start,end,mul){var r=0,len=Math.min(str.length,end);for(var i=start;i=49)r+=c-49+10;else if(c>=17)r+=c-17+10;else r+=c}return r}BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0;for(var i=start;i1&&this.words[this.length-1]===0)this.length--;return this._normSign()},BN.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},BN.prototype.inspect=function(){return(this.red?\"\"};var zeros=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(BN.prototype.toString=function(base,padding){base=base||10,padding=padding|0||1;var out;if(base===16||base===\"hex\"){out=\"\";var off=0,carry=0;for(var i=0;i>>24-off&16777215,off+=2,off>=26)off-=26,i--;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out=\"\";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modn(groupBase).toString(base);if(c=c.idivn(groupBase),!c.isZero())out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.isZero())out=\"0\"+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}assert(!1,\"Base should be between 2 and 36\")},BN.prototype.toNumber=function(){var ret=this.words[0];if(this.length===2)ret+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)ret+=4503599627370496+this.words[1]*67108864;else if(this.length>2)assert(!1,\"Number can only safely store up to 53 bits\");return this.negative!==0?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(typeof Buffer2<\"u\"),this.toArrayLike(Buffer2,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,\"byte array longer than desired length\"),assert(reqLength>0,\"Requested array length <= 0\"),this.strip();var littleEndian=endian===\"le\",res=new ArrayType(reqLength),b,i,q=this.clone();if(!littleEndian){for(i=0;i=4096)r+=13,t>>>=13;if(t>=64)r+=7,t>>>=7;if(t>=8)r+=4,t>>>=4;if(t>=2)r+=2,t>>>=2;return r+t};BN.prototype._zeroBits=function(w){if(w===0)return 26;var t=w,r=0;if((t&8191)===0)r+=13,t>>>=13;if((t&127)===0)r+=7,t>>>=7;if((t&15)===0)r+=4,t>>>=4;if((t&3)===0)r+=2,t>>>=2;if((t&1)===0)r++;return r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=Array(num.bitLength());for(var bit=0;bit>>wbit}return w}BN.prototype.zeroBits=function(){if(this.isZero())return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);return num.clone().ior(this)},BN.prototype.uor=function(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;if(this.length>num.length)b=num;else b=this;for(var i=0;inum.length)return this.clone().iand(num);return num.clone().iand(this)},BN.prototype.uand=function(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;if(this.length>num.length)a=this,b=num;else a=num,b=this;for(var i=0;inum.length)return this.clone().ixor(num);return num.clone().ixor(this)},BN.prototype.uxor=function(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert(typeof width===\"number\"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0,bitsLeft=width%26;if(this._expand(bytesNeeded),bitsLeft>0)bytesNeeded--;for(var i=0;i0)this.words[i]=~this.words[i]&67108863>>26-bitsLeft;return this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert(typeof bit===\"number\"&&bit>=0);var off=bit/26|0,wbit=bit%26;if(this._expand(off+1),val)this.words[off]=this.words[off]|1<num.length)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>>26;for(;carry!==0&&i>>26;if(this.length=a.length,carry!==0)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length)return this.clone().iadd(num);return num.clone().iadd(this)},BN.prototype.isub=function(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var cmp=this.cmp(num);if(cmp===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,b;if(cmp>0)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>26,this.words[i]=r&67108863;for(;carry!==0&&i>26,this.words[i]=r&67108863;if(carry===0&&i>>26,rword=carry&67108863,maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self2.length+1);j<=maxJ;j++){var i=k-j|0;a=self2.words[i]|0,b=num.words[j]|0,r=a*b+rword,ncarry+=r/67108864|0,rword=r&67108863}out.words[k]=rword|0,carry=ncarry|0}if(carry!==0)out.words[k]=carry|0;else out.length--;return out.strip()}var comb10MulTo=function(self2,num,out){var a=self2.words,b=num.words,o=out.words,c=0,lo,mid,hi,a0=a[0]|0,al0=a0&8191,ah0=a0>>>13,a1=a[1]|0,al1=a1&8191,ah1=a1>>>13,a2=a[2]|0,al2=a2&8191,ah2=a2>>>13,a3=a[3]|0,al3=a3&8191,ah3=a3>>>13,a4=a[4]|0,al4=a4&8191,ah4=a4>>>13,a5=a[5]|0,al5=a5&8191,ah5=a5>>>13,a6=a[6]|0,al6=a6&8191,ah6=a6>>>13,a7=a[7]|0,al7=a7&8191,ah7=a7>>>13,a8=a[8]|0,al8=a8&8191,ah8=a8>>>13,a9=a[9]|0,al9=a9&8191,ah9=a9>>>13,b0=b[0]|0,bl0=b0&8191,bh0=b0>>>13,b1=b[1]|0,bl1=b1&8191,bh1=b1>>>13,b2=b[2]|0,bl2=b2&8191,bh2=b2>>>13,b3=b[3]|0,bl3=b3&8191,bh3=b3>>>13,b4=b[4]|0,bl4=b4&8191,bh4=b4>>>13,b5=b[5]|0,bl5=b5&8191,bh5=b5>>>13,b6=b[6]|0,bl6=b6&8191,bh6=b6>>>13,b7=b[7]|0,bl7=b7&8191,bh7=b7>>>13,b8=b[8]|0,bl8=b8&8191,bh8=b8>>>13,b9=b[9]|0,bl9=b9&8191,bh9=b9>>>13;out.negative=self2.negative^num.negative,out.length=19,lo=Math.imul(al0,bl0),mid=Math.imul(al0,bh0),mid=mid+Math.imul(ah0,bl0)|0,hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=Math.imul(al1,bh0),mid=mid+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0),lo=lo+Math.imul(al0,bl1)|0,mid=mid+Math.imul(al0,bh1)|0,mid=mid+Math.imul(ah0,bl1)|0,hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=Math.imul(al2,bh0),mid=mid+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=mid+Math.imul(al1,bh1)|0,mid=mid+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0,lo=lo+Math.imul(al0,bl2)|0,mid=mid+Math.imul(al0,bh2)|0,mid=mid+Math.imul(ah0,bl2)|0,hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=Math.imul(al3,bh0),mid=mid+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=mid+Math.imul(al2,bh1)|0,mid=mid+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=mid+Math.imul(al1,bh2)|0,mid=mid+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0,lo=lo+Math.imul(al0,bl3)|0,mid=mid+Math.imul(al0,bh3)|0,mid=mid+Math.imul(ah0,bl3)|0,hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=Math.imul(al4,bh0),mid=mid+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=mid+Math.imul(al3,bh1)|0,mid=mid+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=mid+Math.imul(al2,bh2)|0,mid=mid+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=mid+Math.imul(al1,bh3)|0,mid=mid+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0,lo=lo+Math.imul(al0,bl4)|0,mid=mid+Math.imul(al0,bh4)|0,mid=mid+Math.imul(ah0,bl4)|0,hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=Math.imul(al5,bh0),mid=mid+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=mid+Math.imul(al4,bh1)|0,mid=mid+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=mid+Math.imul(al3,bh2)|0,mid=mid+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=mid+Math.imul(al2,bh3)|0,mid=mid+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=mid+Math.imul(al1,bh4)|0,mid=mid+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0,lo=lo+Math.imul(al0,bl5)|0,mid=mid+Math.imul(al0,bh5)|0,mid=mid+Math.imul(ah0,bl5)|0,hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=Math.imul(al6,bh0),mid=mid+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=mid+Math.imul(al5,bh1)|0,mid=mid+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=mid+Math.imul(al4,bh2)|0,mid=mid+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=mid+Math.imul(al3,bh3)|0,mid=mid+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=mid+Math.imul(al2,bh4)|0,mid=mid+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=mid+Math.imul(al1,bh5)|0,mid=mid+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0,lo=lo+Math.imul(al0,bl6)|0,mid=mid+Math.imul(al0,bh6)|0,mid=mid+Math.imul(ah0,bl6)|0,hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=Math.imul(al7,bh0),mid=mid+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=mid+Math.imul(al6,bh1)|0,mid=mid+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=mid+Math.imul(al5,bh2)|0,mid=mid+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=mid+Math.imul(al4,bh3)|0,mid=mid+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=mid+Math.imul(al3,bh4)|0,mid=mid+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=mid+Math.imul(al2,bh5)|0,mid=mid+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=mid+Math.imul(al1,bh6)|0,mid=mid+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0,lo=lo+Math.imul(al0,bl7)|0,mid=mid+Math.imul(al0,bh7)|0,mid=mid+Math.imul(ah0,bl7)|0,hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=Math.imul(al8,bh0),mid=mid+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=mid+Math.imul(al7,bh1)|0,mid=mid+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=mid+Math.imul(al6,bh2)|0,mid=mid+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=mid+Math.imul(al5,bh3)|0,mid=mid+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=mid+Math.imul(al4,bh4)|0,mid=mid+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=mid+Math.imul(al3,bh5)|0,mid=mid+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=mid+Math.imul(al2,bh6)|0,mid=mid+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=mid+Math.imul(al1,bh7)|0,mid=mid+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0,lo=lo+Math.imul(al0,bl8)|0,mid=mid+Math.imul(al0,bh8)|0,mid=mid+Math.imul(ah0,bl8)|0,hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=Math.imul(al9,bh0),mid=mid+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=mid+Math.imul(al8,bh1)|0,mid=mid+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=mid+Math.imul(al7,bh2)|0,mid=mid+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=mid+Math.imul(al6,bh3)|0,mid=mid+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=mid+Math.imul(al5,bh4)|0,mid=mid+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=mid+Math.imul(al4,bh5)|0,mid=mid+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=mid+Math.imul(al3,bh6)|0,mid=mid+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=mid+Math.imul(al2,bh7)|0,mid=mid+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=mid+Math.imul(al1,bh8)|0,mid=mid+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0,lo=lo+Math.imul(al0,bl9)|0,mid=mid+Math.imul(al0,bh9)|0,mid=mid+Math.imul(ah0,bl9)|0,hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=Math.imul(al9,bh1),mid=mid+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=mid+Math.imul(al8,bh2)|0,mid=mid+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=mid+Math.imul(al7,bh3)|0,mid=mid+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=mid+Math.imul(al6,bh4)|0,mid=mid+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=mid+Math.imul(al5,bh5)|0,mid=mid+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=mid+Math.imul(al4,bh6)|0,mid=mid+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=mid+Math.imul(al3,bh7)|0,mid=mid+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=mid+Math.imul(al2,bh8)|0,mid=mid+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0,lo=lo+Math.imul(al1,bl9)|0,mid=mid+Math.imul(al1,bh9)|0,mid=mid+Math.imul(ah1,bl9)|0,hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=Math.imul(al9,bh2),mid=mid+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=mid+Math.imul(al8,bh3)|0,mid=mid+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=mid+Math.imul(al7,bh4)|0,mid=mid+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=mid+Math.imul(al6,bh5)|0,mid=mid+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=mid+Math.imul(al5,bh6)|0,mid=mid+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=mid+Math.imul(al4,bh7)|0,mid=mid+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=mid+Math.imul(al3,bh8)|0,mid=mid+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0,lo=lo+Math.imul(al2,bl9)|0,mid=mid+Math.imul(al2,bh9)|0,mid=mid+Math.imul(ah2,bl9)|0,hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=Math.imul(al9,bh3),mid=mid+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=mid+Math.imul(al8,bh4)|0,mid=mid+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=mid+Math.imul(al7,bh5)|0,mid=mid+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=mid+Math.imul(al6,bh6)|0,mid=mid+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=mid+Math.imul(al5,bh7)|0,mid=mid+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=mid+Math.imul(al4,bh8)|0,mid=mid+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0,lo=lo+Math.imul(al3,bl9)|0,mid=mid+Math.imul(al3,bh9)|0,mid=mid+Math.imul(ah3,bl9)|0,hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=Math.imul(al9,bh4),mid=mid+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=mid+Math.imul(al8,bh5)|0,mid=mid+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=mid+Math.imul(al7,bh6)|0,mid=mid+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=mid+Math.imul(al6,bh7)|0,mid=mid+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=mid+Math.imul(al5,bh8)|0,mid=mid+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0,lo=lo+Math.imul(al4,bl9)|0,mid=mid+Math.imul(al4,bh9)|0,mid=mid+Math.imul(ah4,bl9)|0,hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=Math.imul(al9,bh5),mid=mid+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=mid+Math.imul(al8,bh6)|0,mid=mid+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=mid+Math.imul(al7,bh7)|0,mid=mid+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=mid+Math.imul(al6,bh8)|0,mid=mid+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0,lo=lo+Math.imul(al5,bl9)|0,mid=mid+Math.imul(al5,bh9)|0,mid=mid+Math.imul(ah5,bl9)|0,hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=Math.imul(al9,bh6),mid=mid+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=mid+Math.imul(al8,bh7)|0,mid=mid+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=mid+Math.imul(al7,bh8)|0,mid=mid+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0,lo=lo+Math.imul(al6,bl9)|0,mid=mid+Math.imul(al6,bh9)|0,mid=mid+Math.imul(ah6,bl9)|0,hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=Math.imul(al9,bh7),mid=mid+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=mid+Math.imul(al8,bh8)|0,mid=mid+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0,lo=lo+Math.imul(al7,bl9)|0,mid=mid+Math.imul(al7,bh9)|0,mid=mid+Math.imul(ah7,bl9)|0,hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=Math.imul(al9,bh8),mid=mid+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8),lo=lo+Math.imul(al8,bl9)|0,mid=mid+Math.imul(al8,bh9)|0,mid=mid+Math.imul(ah8,bl9)|0,hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863,lo=Math.imul(al9,bl9),mid=Math.imul(al9,bh9),mid=mid+Math.imul(ah9,bl9)|0,hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;if(c=(hi+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,c!==0)o[19]=c,out.length++;return out};if(!Math.imul)comb10MulTo=smallMulTo;function bigMulTo(self2,num,out){out.negative=num.negative^self2.negative,out.length=self2.length+num.length;var carry=0,hncarry=0;for(var k=0;k>>26)|0,hncarry+=ncarry>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}if(carry!==0)out.words[k]=carry;else out.length--;return out.strip()}function jumboMulTo(self2,num,out){var fftm=new FFTM;return fftm.mulp(self2,num,out)}BN.prototype.mulTo=function(num,out){var res,len=this.length+num.length;if(this.length===10&&num.length===10)res=comb10MulTo(this,num,out);else if(len<63)res=smallMulTo(this,num,out);else if(len<1024)res=bigMulTo(this,num,out);else res=jumboMulTo(this,num,out);return res};function FFTM(x,y){this.x=x,this.y=y}FFTM.prototype.makeRBT=function(N){var t=Array(N),l=BN.prototype._countBits(N)-1;for(var i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1)i++;return 1<>>13,rws[2*i+1]=carry&8191,carry=carry>>>13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=lo&67108863}if(carry!==0)this.words[i]=carry,this.length++;return this.length=num===0?1:this.length,this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i=0);var r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r,i;if(r!==0){var carry=0;for(i=0;i>>26-r}if(carry)this.words[i]=carry,this.length++}if(s!==0){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0);var h;if(hint)h=(hint-hint%26)/26;else h=0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s){this.length-=s;for(i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r,carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0)this.words[0]=0,this.length=1;return this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(this.negative===0),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert(typeof bit===\"number\"&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(this.negative===0,\"imaskn works only with positive numbers\"),this.length<=s)return this;if(r!==0)s++;if(this.length=Math.min(s,this.length),r!==0){var mask=67108863^67108863>>>r<=67108864;i++)if(this.words[i]-=67108864,i===this.length-1)this.words[i+1]=1;else this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert(typeof num===\"number\"),assert(num<67108864),num<0)return this.iaddn(-num);if(this.negative!==0)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=w&67108863}for(;i>26,this.words[i+shift]=w&67108863;if(carry===0)return this.strip();assert(carry===-1),carry=0;for(i=0;i>26,this.words[i]=w&67108863;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=this.length-num.length,a=this.clone(),b=num,bhi=b.words[b.length-1]|0,bhiBits=this._countBits(bhi);if(shift=26-bhiBits,shift!==0)b=b.ushln(shift),a.iushln(shift),bhi=b.words[b.length-1]|0;var m=a.length-b.length,q;if(mode!==\"mod\"){q=new BN(null),q.length=m+1,q.words=Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);while(a.negative!==0)if(qj--,a.negative=0,a._ishlnsubmul(b,1,j),!a.isZero())a.negative^=1;if(q)q.words[j]=qj}if(q)q.strip();if(a.strip(),mode!==\"div\"&&shift!==0)a.iushrn(shift);return{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){if(assert(!num.isZero()),this.isZero())return{div:new BN(0),mod:new BN(0)};var div,mod,res;if(this.negative!==0&&num.negative===0){if(res=this.neg().divmod(num,mode),mode!==\"mod\")div=res.div.neg();if(mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.iadd(num)}return{div,mod}}if(this.negative===0&&num.negative!==0){if(res=this.divmod(num.neg(),mode),mode!==\"mod\")div=res.div.neg();return{div,mod:res.mod}}if((this.negative&num.negative)!==0){if(res=this.neg().divmod(num.neg(),mode),mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.isub(num)}return{div:res.div,mod}}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode===\"div\")return{div:this.divn(num.words[0]),mod:null};if(mode===\"mod\")return{div:null,mod:new BN(this.modn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)},BN.prototype.div=function(num){return this.divmod(num,\"div\",!1).div},BN.prototype.mod=function(num){return this.divmod(num,\"mod\",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,\"mod\",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);var p=67108864%num,acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+(this.words[i]|0))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(p.negative===0),assert(!p.isZero());var x=this,y=p.clone();if(x.negative!==0)x=x.umod(p);else x=x.clone();var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;while(x.isEven()&&y.isEven())x.iushrn(1),y.iushrn(1),++g;var yp=y.clone(),xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd())A.iadd(yp),B.isub(xp);A.iushrn(1),B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd())C.iadd(yp),D.isub(xp);C.iushrn(1),D.iushrn(1)}}if(x.cmp(y)>=0)x.isub(y),A.isub(C),B.isub(D);else y.isub(x),C.isub(A),D.isub(B)}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(p.negative===0),assert(!p.isZero());var a=this,b=p.clone();if(a.negative!==0)a=a.umod(p);else a=a.clone();var x1=new BN(1),x2=new BN(0),delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd())x1.iadd(delta);x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd())x2.iadd(delta);x2.iushrn(1)}}if(a.cmp(b)>=0)a.isub(b),x1.isub(x2);else b.isub(a),x2.isub(x1)}var res;if(a.cmpn(1)===0)res=x1;else res=x2;if(res.cmpn(0)<0)res.iadd(p);return res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);do{while(a.isEven())a.iushrn(1);while(b.isEven())b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(r===0||b.cmpn(1)===0)break;a.isub(b)}while(!0);return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return(this.words[0]&1)===0},BN.prototype.isOdd=function(){return(this.words[0]&1)===1},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert(typeof bit===\"number\");var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}if(carry!==0)this.words[i]=carry,this.length++;return this},BN.prototype.isZero=function(){return this.length===1&&this.words[0]===0},BN.prototype.cmpn=function(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this.strip();var res;if(this.length>1)res=1;else{if(negative)num=-num;assert(num<=67108863,\"Number is too big\");var w=this.words[0]|0;res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=this.words[i]|0,b=num.words[i]|0;if(a===b)continue;if(ab)res=1;break}return res},BN.prototype.gtn=function(num){return this.cmpn(num)===1},BN.prototype.gt=function(num){return this.cmp(num)===1},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return this.cmpn(num)===-1},BN.prototype.lt=function(num){return this.cmp(num)===-1},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return this.cmpn(num)===0},BN.prototype.eq=function(num){return this.cmp(num)===0},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),assert(this.negative===0,\"red works only with positives\"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,\"redAdd works only with red numbers\"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,\"redSub works only with red numbers\"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,\"redISub works only with red numbers\"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,\"redShl works only with red numbers\"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var r=num,rlen;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),rlen=r.bitLength();while(rlen>this.n);var cmp=rlen0)r.isub(this.p);else if(r.strip!==void 0)r.strip();else r._strip();return r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)};function K256(){MPrime.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}inherits(K256,MPrime),K256.prototype.split=function(input,output){var mask=4194303,outLen=Math.min(input.length,9);for(var i=0;i>>22,prev=next}if(prev>>>=22,input.words[i-10]=prev,prev===0&&input.length>10)input.length-=10;else input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;var lo=0;for(var i=0;i>>=26,num.words[i]=lo,carry=hi}if(carry!==0)num.words[num.length++]=carry;return num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if(name===\"k256\")prime=new K256;else if(name===\"p224\")prime=new P224;else if(name===\"p192\")prime=new P192;else if(name===\"p25519\")prime=new P25519;else throw Error(\"Unknown prime \"+name);return primes[name]=prime,prime};function Red(m){if(typeof m===\"string\"){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),\"modulus must be greater than 1\"),this.m=m,this.prime=null}Red.prototype._verify1=function(a){assert(a.negative===0,\"red works only with positives\"),assert(a.red,\"red works only with red numbers\")},Red.prototype._verify2=function(a,b){assert((a.negative|b.negative)===0,\"red works only with positives\"),assert(a.red&&a.red===b.red,\"red works only with red numbers\")},Red.prototype.imod=function(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){if(a.isZero())return a.clone();return this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2===1),mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1),s=0;while(!q.isZero()&&q.andln(1)===0)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0])res=this.sqr(res);if(bit===0&¤t===0){currentLen=0;continue}if(current<<=1,current|=bit,currentLen++,currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]),currentLen=0,current=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)};function Mont(m){if(Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.invm=function(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module>\"u\"||module,exports)});var require_api=__commonJS((exports)=>{var asn1=require_asn1(),inherits=require_inherits(),api=exports;api.define=function(name,body){return new Entity(name,body)};function Entity(name,body){this.name=name,this.body=body,this.decoders={},this.encoders={}}Entity.prototype._createNamed=function(base){var named;try{named=require(\"vm\").runInThisContext(\"(function \"+this.name+`(entity) {\n this._initNamed(entity);\n})`)}catch(e){named=function(entity){this._initNamed(entity)}}return inherits(named,base),named.prototype._initNamed=function(entity){base.call(this,entity)},new named(this)};Entity.prototype._getDecoder=function(enc){if(enc=enc||\"der\",!this.decoders.hasOwnProperty(enc))this.decoders[enc]=this._createNamed(asn1.decoders[enc]);return this.decoders[enc]};Entity.prototype.decode=function(data,enc,options){return this._getDecoder(enc).decode(data,options)};Entity.prototype._getEncoder=function(enc){if(enc=enc||\"der\",!this.encoders.hasOwnProperty(enc))this.encoders[enc]=this._createNamed(asn1.encoders[enc]);return this.encoders[enc]};Entity.prototype.encode=function(data,enc,reporter){return this._getEncoder(enc).encode(data,reporter)}});var require_reporter=__commonJS((exports)=>{var inherits=require_inherits();function Reporter(options){this._reporterState={obj:null,path:[],options:options||{},errors:[]}}exports.Reporter=Reporter;Reporter.prototype.isError=function(obj){return obj instanceof ReporterError};Reporter.prototype.save=function(){var state=this._reporterState;return{obj:state.obj,pathLen:state.path.length}};Reporter.prototype.restore=function(data){var state=this._reporterState;state.obj=data.obj,state.path=state.path.slice(0,data.pathLen)};Reporter.prototype.enterKey=function(key){return this._reporterState.path.push(key)};Reporter.prototype.exitKey=function(index){var state=this._reporterState;state.path=state.path.slice(0,index-1)};Reporter.prototype.leaveKey=function(index,key,value){var state=this._reporterState;if(this.exitKey(index),state.obj!==null)state.obj[key]=value};Reporter.prototype.path=function(){return this._reporterState.path.join(\"/\")};Reporter.prototype.enterObject=function(){var state=this._reporterState,prev=state.obj;return state.obj={},prev};Reporter.prototype.leaveObject=function(prev){var state=this._reporterState,now=state.obj;return state.obj=prev,now};Reporter.prototype.error=function(msg){var err,state=this._reporterState,inherited=msg instanceof ReporterError;if(inherited)err=msg;else err=new ReporterError(state.path.map(function(elem){return\"[\"+JSON.stringify(elem)+\"]\"}).join(\"\"),msg.message||msg,msg.stack);if(!state.options.partial)throw err;if(!inherited)state.errors.push(err);return err};Reporter.prototype.wrapResult=function(result){var state=this._reporterState;if(!state.options.partial)return result;return{result:this.isError(result)?null:result,errors:state.errors}};function ReporterError(path,msg){this.path=path,this.rethrow(msg)}inherits(ReporterError,Error);ReporterError.prototype.rethrow=function(msg){if(this.message=msg+\" at: \"+(this.path||\"(shallow)\"),Error.captureStackTrace)Error.captureStackTrace(this,ReporterError);if(!this.stack)try{throw Error(this.message)}catch(e){this.stack=e.stack}return this}});var require_buffer=__commonJS((exports)=>{var inherits=require_inherits(),Reporter=require_base2().Reporter,Buffer2=require(\"buffer\").Buffer;function DecoderBuffer(base,options){if(Reporter.call(this,options),!Buffer2.isBuffer(base)){this.error(\"Input not Buffer\");return}this.base=base,this.offset=0,this.length=base.length}inherits(DecoderBuffer,Reporter);exports.DecoderBuffer=DecoderBuffer;DecoderBuffer.prototype.save=function(){return{offset:this.offset,reporter:Reporter.prototype.save.call(this)}};DecoderBuffer.prototype.restore=function(save){var res=new DecoderBuffer(this.base);return res.offset=save.offset,res.length=this.offset,this.offset=save.offset,Reporter.prototype.restore.call(this,save.reporter),res};DecoderBuffer.prototype.isEmpty=function(){return this.offset===this.length};DecoderBuffer.prototype.readUInt8=function(fail){if(this.offset+1<=this.length)return this.base.readUInt8(this.offset++,!0);else return this.error(fail||\"DecoderBuffer overrun\")};DecoderBuffer.prototype.skip=function(bytes,fail){if(!(this.offset+bytes<=this.length))return this.error(fail||\"DecoderBuffer overrun\");var res=new DecoderBuffer(this.base);return res._reporterState=this._reporterState,res.offset=this.offset,res.length=this.offset+bytes,this.offset+=bytes,res};DecoderBuffer.prototype.raw=function(save){return this.base.slice(save?save.offset:this.offset,this.length)};function EncoderBuffer(value,reporter){if(Array.isArray(value))this.length=0,this.value=value.map(function(item){if(!(item instanceof EncoderBuffer))item=new EncoderBuffer(item,reporter);return this.length+=item.length,item},this);else if(typeof value===\"number\"){if(!(0<=value&&value<=255))return reporter.error(\"non-byte EncoderBuffer value\");this.value=value,this.length=1}else if(typeof value===\"string\")this.value=value,this.length=Buffer2.byteLength(value);else if(Buffer2.isBuffer(value))this.value=value,this.length=value.length;else return reporter.error(\"Unsupported type: \"+typeof value)}exports.EncoderBuffer=EncoderBuffer;EncoderBuffer.prototype.join=function(out,offset){if(!out)out=new Buffer2(this.length);if(!offset)offset=0;if(this.length===0)return out;if(Array.isArray(this.value))this.value.forEach(function(item){item.join(out,offset),offset+=item.length});else{if(typeof this.value===\"number\")out[offset]=this.value;else if(typeof this.value===\"string\")out.write(this.value,offset);else if(Buffer2.isBuffer(this.value))this.value.copy(out,offset);offset+=this.length}return out}});var require_node=__commonJS((exports,module)=>{var Reporter=require_base2().Reporter,EncoderBuffer=require_base2().EncoderBuffer,DecoderBuffer=require_base2().DecoderBuffer,assert=require_minimalistic_assert(),tags=[\"seq\",\"seqof\",\"set\",\"setof\",\"objid\",\"bool\",\"gentime\",\"utctime\",\"null_\",\"enum\",\"int\",\"objDesc\",\"bitstr\",\"bmpstr\",\"charstr\",\"genstr\",\"graphstr\",\"ia5str\",\"iso646str\",\"numstr\",\"octstr\",\"printstr\",\"t61str\",\"unistr\",\"utf8str\",\"videostr\"],methods=[\"key\",\"obj\",\"use\",\"optional\",\"explicit\",\"implicit\",\"def\",\"choice\",\"any\",\"contains\"].concat(tags),overrided=[\"_peekTag\",\"_decodeTag\",\"_use\",\"_decodeStr\",\"_decodeObjid\",\"_decodeTime\",\"_decodeNull\",\"_decodeInt\",\"_decodeBool\",\"_decodeList\",\"_encodeComposite\",\"_encodeStr\",\"_encodeObjid\",\"_encodeTime\",\"_encodeNull\",\"_encodeInt\",\"_encodeBool\"];function Node(enc,parent){var state={};if(this._baseState=state,state.enc=enc,state.parent=parent||null,state.children=null,state.tag=null,state.args=null,state.reverseArgs=null,state.choice=null,state.optional=!1,state.any=!1,state.obj=!1,state.use=null,state.useDecoder=null,state.key=null,state.default=null,state.explicit=null,state.implicit=null,state.contains=null,!state.parent)state.children=[],this._wrap()}module.exports=Node;var stateProps=[\"enc\",\"parent\",\"children\",\"tag\",\"args\",\"reverseArgs\",\"choice\",\"optional\",\"any\",\"obj\",\"use\",\"alteredUse\",\"key\",\"default\",\"explicit\",\"implicit\",\"contains\"];Node.prototype.clone=function(){var state=this._baseState,cstate={};stateProps.forEach(function(prop){cstate[prop]=state[prop]});var res=new this.constructor(cstate.parent);return res._baseState=cstate,res};Node.prototype._wrap=function(){var state=this._baseState;methods.forEach(function(method){this[method]=function(){var clone=new this.constructor(this);return state.children.push(clone),clone[method].apply(clone,arguments)}},this)};Node.prototype._init=function(body){var state=this._baseState;assert(state.parent===null),body.call(this),state.children=state.children.filter(function(child){return child._baseState.parent===this},this),assert.equal(state.children.length,1,\"Root node can have only one child\")};Node.prototype._useArgs=function(args){var state=this._baseState,children=args.filter(function(arg){return arg instanceof this.constructor},this);if(args=args.filter(function(arg){return!(arg instanceof this.constructor)},this),children.length!==0)assert(state.children===null),state.children=children,children.forEach(function(child){child._baseState.parent=this},this);if(args.length!==0)assert(state.args===null),state.args=args,state.reverseArgs=args.map(function(arg){if(typeof arg!==\"object\"||arg.constructor!==Object)return arg;var res={};return Object.keys(arg).forEach(function(key){if(key==(key|0))key|=0;var value=arg[key];res[value]=key}),res})};overrided.forEach(function(method){Node.prototype[method]=function(){var state=this._baseState;throw Error(method+\" not implemented for encoding: \"+state.enc)}});tags.forEach(function(tag){Node.prototype[tag]=function(){var state=this._baseState,args=Array.prototype.slice.call(arguments);return assert(state.tag===null),state.tag=tag,this._useArgs(args),this}});Node.prototype.use=function(item){assert(item);var state=this._baseState;return assert(state.use===null),state.use=item,this};Node.prototype.optional=function(){var state=this._baseState;return state.optional=!0,this};Node.prototype.def=function(val){var state=this._baseState;return assert(state.default===null),state.default=val,state.optional=!0,this};Node.prototype.explicit=function(num){var state=this._baseState;return assert(state.explicit===null&&state.implicit===null),state.explicit=num,this};Node.prototype.implicit=function(num){var state=this._baseState;return assert(state.explicit===null&&state.implicit===null),state.implicit=num,this};Node.prototype.obj=function(){var state=this._baseState,args=Array.prototype.slice.call(arguments);if(state.obj=!0,args.length!==0)this._useArgs(args);return this};Node.prototype.key=function(newKey){var state=this._baseState;return assert(state.key===null),state.key=newKey,this};Node.prototype.any=function(){var state=this._baseState;return state.any=!0,this};Node.prototype.choice=function(obj){var state=this._baseState;return assert(state.choice===null),state.choice=obj,this._useArgs(Object.keys(obj).map(function(key){return obj[key]})),this};Node.prototype.contains=function(item){var state=this._baseState;return assert(state.use===null),state.contains=item,this};Node.prototype._decode=function(input,options){var state=this._baseState;if(state.parent===null)return input.wrapResult(state.children[0]._decode(input,options));var result=state.default,present=!0,prevKey=null;if(state.key!==null)prevKey=input.enterKey(state.key);if(state.optional){var tag=null;if(state.explicit!==null)tag=state.explicit;else if(state.implicit!==null)tag=state.implicit;else if(state.tag!==null)tag=state.tag;if(tag===null&&!state.any){var save=input.save();try{if(state.choice===null)this._decodeGeneric(state.tag,input,options);else this._decodeChoice(input,options);present=!0}catch(e){present=!1}input.restore(save)}else if(present=this._peekTag(input,tag,state.any),input.isError(present))return present}var prevObj;if(state.obj&&present)prevObj=input.enterObject();if(present){if(state.explicit!==null){var explicit=this._decodeTag(input,state.explicit);if(input.isError(explicit))return explicit;input=explicit}var start=input.offset;if(state.use===null&&state.choice===null){if(state.any)var save=input.save();var body=this._decodeTag(input,state.implicit!==null?state.implicit:state.tag,state.any);if(input.isError(body))return body;if(state.any)result=input.raw(save);else input=body}if(options&&options.track&&state.tag!==null)options.track(input.path(),start,input.length,\"tagged\");if(options&&options.track&&state.tag!==null)options.track(input.path(),input.offset,input.length,\"content\");if(state.any)result=result;else if(state.choice===null)result=this._decodeGeneric(state.tag,input,options);else result=this._decodeChoice(input,options);if(input.isError(result))return result;if(!state.any&&state.choice===null&&state.children!==null)state.children.forEach(function(child){child._decode(input,options)});if(state.contains&&(state.tag===\"octstr\"||state.tag===\"bitstr\")){var data=new DecoderBuffer(result);result=this._getUse(state.contains,input._reporterState.obj)._decode(data,options)}}if(state.obj&&present)result=input.leaveObject(prevObj);if(state.key!==null&&(result!==null||present===!0))input.leaveKey(prevKey,state.key,result);else if(prevKey!==null)input.exitKey(prevKey);return result};Node.prototype._decodeGeneric=function(tag,input,options){var state=this._baseState;if(tag===\"seq\"||tag===\"set\")return null;if(tag===\"seqof\"||tag===\"setof\")return this._decodeList(input,tag,state.args[0],options);else if(/str$/.test(tag))return this._decodeStr(input,tag,options);else if(tag===\"objid\"&&state.args)return this._decodeObjid(input,state.args[0],state.args[1],options);else if(tag===\"objid\")return this._decodeObjid(input,null,null,options);else if(tag===\"gentime\"||tag===\"utctime\")return this._decodeTime(input,tag,options);else if(tag===\"null_\")return this._decodeNull(input,options);else if(tag===\"bool\")return this._decodeBool(input,options);else if(tag===\"objDesc\")return this._decodeStr(input,tag,options);else if(tag===\"int\"||tag===\"enum\")return this._decodeInt(input,state.args&&state.args[0],options);if(state.use!==null)return this._getUse(state.use,input._reporterState.obj)._decode(input,options);else return input.error(\"unknown tag: \"+tag)};Node.prototype._getUse=function(entity,obj){var state=this._baseState;if(state.useDecoder=this._use(entity,obj),assert(state.useDecoder._baseState.parent===null),state.useDecoder=state.useDecoder._baseState.children[0],state.implicit!==state.useDecoder._baseState.implicit)state.useDecoder=state.useDecoder.clone(),state.useDecoder._baseState.implicit=state.implicit;return state.useDecoder};Node.prototype._decodeChoice=function(input,options){var state=this._baseState,result=null,match=!1;if(Object.keys(state.choice).some(function(key){var save=input.save(),node=state.choice[key];try{var value=node._decode(input,options);if(input.isError(value))return!1;result={type:key,value},match=!0}catch(e){return input.restore(save),!1}return!0},this),!match)return input.error(\"Choice not matched\");return result};Node.prototype._createEncoderBuffer=function(data){return new EncoderBuffer(data,this.reporter)};Node.prototype._encode=function(data,reporter,parent){var state=this._baseState;if(state.default!==null&&state.default===data)return;var result=this._encodeValue(data,reporter,parent);if(result===void 0)return;if(this._skipDefault(result,reporter,parent))return;return result};Node.prototype._encodeValue=function(data,reporter,parent){var state=this._baseState;if(state.parent===null)return state.children[0]._encode(data,reporter||new Reporter);var result=null;if(this.reporter=reporter,state.optional&&data===void 0)if(state.default!==null)data=state.default;else return;var content=null,primitive=!1;if(state.any)result=this._createEncoderBuffer(data);else if(state.choice)result=this._encodeChoice(data,reporter);else if(state.contains)content=this._getUse(state.contains,parent)._encode(data,reporter),primitive=!0;else if(state.children)content=state.children.map(function(child2){if(child2._baseState.tag===\"null_\")return child2._encode(null,reporter,data);if(child2._baseState.key===null)return reporter.error(\"Child should have a key\");var prevKey=reporter.enterKey(child2._baseState.key);if(typeof data!==\"object\")return reporter.error(\"Child expected, but input is not object\");var res=child2._encode(data[child2._baseState.key],reporter,data);return reporter.leaveKey(prevKey),res},this).filter(function(child2){return child2}),content=this._createEncoderBuffer(content);else if(state.tag===\"seqof\"||state.tag===\"setof\"){if(!(state.args&&state.args.length===1))return reporter.error(\"Too many args for : \"+state.tag);if(!Array.isArray(data))return reporter.error(\"seqof/setof, but data is not Array\");var child=this.clone();child._baseState.implicit=null,content=this._createEncoderBuffer(data.map(function(item){var state2=this._baseState;return this._getUse(state2.args[0],data)._encode(item,reporter)},child))}else if(state.use!==null)result=this._getUse(state.use,parent)._encode(data,reporter);else content=this._encodePrimitive(state.tag,data),primitive=!0;var result;if(!state.any&&state.choice===null){var tag=state.implicit!==null?state.implicit:state.tag,cls=state.implicit===null?\"universal\":\"context\";if(tag===null){if(state.use===null)reporter.error(\"Tag could be omitted only for .use()\")}else if(state.use===null)result=this._encodeComposite(tag,primitive,cls,content)}if(state.explicit!==null)result=this._encodeComposite(state.explicit,!1,\"context\",result);return result};Node.prototype._encodeChoice=function(data,reporter){var state=this._baseState,node=state.choice[data.type];if(!node)assert(!1,data.type+\" not found in \"+JSON.stringify(Object.keys(state.choice)));return node._encode(data.value,reporter)};Node.prototype._encodePrimitive=function(tag,data){var state=this._baseState;if(/str$/.test(tag))return this._encodeStr(data,tag);else if(tag===\"objid\"&&state.args)return this._encodeObjid(data,state.reverseArgs[0],state.args[1]);else if(tag===\"objid\")return this._encodeObjid(data,null,null);else if(tag===\"gentime\"||tag===\"utctime\")return this._encodeTime(data,tag);else if(tag===\"null_\")return this._encodeNull();else if(tag===\"int\"||tag===\"enum\")return this._encodeInt(data,state.args&&state.reverseArgs[0]);else if(tag===\"bool\")return this._encodeBool(data);else if(tag===\"objDesc\")return this._encodeStr(data,tag);else throw Error(\"Unsupported tag: \"+tag)};Node.prototype._isNumstr=function(str){return/^[0-9 ]*$/.test(str)};Node.prototype._isPrintstr=function(str){return/^[A-Za-z0-9 '\\(\\)\\+,\\-\\.\\/:=\\?]*$/.test(str)}});var require_base2=__commonJS((exports)=>{var base=exports;base.Reporter=require_reporter().Reporter;base.DecoderBuffer=require_buffer().DecoderBuffer;base.EncoderBuffer=require_buffer().EncoderBuffer;base.Node=require_node()});var require_der=__commonJS((exports)=>{var constants=require_constants();exports.tagClass={0:\"universal\",1:\"application\",2:\"context\",3:\"private\"};exports.tagClassByName=constants._reverse(exports.tagClass);exports.tag={0:\"end\",1:\"bool\",2:\"int\",3:\"bitstr\",4:\"octstr\",5:\"null_\",6:\"objid\",7:\"objDesc\",8:\"external\",9:\"real\",10:\"enum\",11:\"embed\",12:\"utf8str\",13:\"relativeOid\",16:\"seq\",17:\"set\",18:\"numstr\",19:\"printstr\",20:\"t61str\",21:\"videostr\",22:\"ia5str\",23:\"utctime\",24:\"gentime\",25:\"graphstr\",26:\"iso646str\",27:\"genstr\",28:\"unistr\",29:\"charstr\",30:\"bmpstr\"};exports.tagByName=constants._reverse(exports.tag)});var require_constants=__commonJS((exports)=>{var constants=exports;constants._reverse=function(map){var res={};return Object.keys(map).forEach(function(key){if((key|0)==key)key=key|0;var value=map[key];res[value]=key}),res};constants.der=require_der()});var require_der2=__commonJS((exports,module)=>{var inherits=require_inherits(),asn1=require_asn1(),base=asn1.base,bignum=asn1.bignum,der=asn1.constants.der;function DERDecoder(entity){this.enc=\"der\",this.name=entity.name,this.entity=entity,this.tree=new DERNode,this.tree._init(entity.body)}module.exports=DERDecoder;DERDecoder.prototype.decode=function(data,options){if(!(data instanceof base.DecoderBuffer))data=new base.DecoderBuffer(data,options);return this.tree._decode(data,options)};function DERNode(parent){base.Node.call(this,\"der\",parent)}inherits(DERNode,base.Node);DERNode.prototype._peekTag=function(buffer,tag,any){if(buffer.isEmpty())return!1;var state=buffer.save(),decodedTag=derDecodeTag(buffer,'Failed to peek tag: \"'+tag+'\"');if(buffer.isError(decodedTag))return decodedTag;return buffer.restore(state),decodedTag.tag===tag||decodedTag.tagStr===tag||decodedTag.tagStr+\"of\"===tag||any};DERNode.prototype._decodeTag=function(buffer,tag,any){var decodedTag=derDecodeTag(buffer,'Failed to decode tag of \"'+tag+'\"');if(buffer.isError(decodedTag))return decodedTag;var len=derDecodeLen(buffer,decodedTag.primitive,'Failed to get length of \"'+tag+'\"');if(buffer.isError(len))return len;if(!any&&decodedTag.tag!==tag&&decodedTag.tagStr!==tag&&decodedTag.tagStr+\"of\"!==tag)return buffer.error('Failed to match tag: \"'+tag+'\"');if(decodedTag.primitive||len!==null)return buffer.skip(len,'Failed to match body of: \"'+tag+'\"');var state=buffer.save(),res=this._skipUntilEnd(buffer,'Failed to skip indefinite length body: \"'+this.tag+'\"');if(buffer.isError(res))return res;return len=buffer.offset-state.offset,buffer.restore(state),buffer.skip(len,'Failed to match body of: \"'+tag+'\"')};DERNode.prototype._skipUntilEnd=function(buffer,fail){while(!0){var tag=derDecodeTag(buffer,fail);if(buffer.isError(tag))return tag;var len=derDecodeLen(buffer,tag.primitive,fail);if(buffer.isError(len))return len;var res;if(tag.primitive||len!==null)res=buffer.skip(len);else res=this._skipUntilEnd(buffer,fail);if(buffer.isError(res))return res;if(tag.tagStr===\"end\")break}};DERNode.prototype._decodeList=function(buffer,tag,decoder,options){var result=[];while(!buffer.isEmpty()){var possibleEnd=this._peekTag(buffer,\"end\");if(buffer.isError(possibleEnd))return possibleEnd;var res=decoder.decode(buffer,\"der\",options);if(buffer.isError(res)&&possibleEnd)break;result.push(res)}return result};DERNode.prototype._decodeStr=function(buffer,tag){if(tag===\"bitstr\"){var unused=buffer.readUInt8();if(buffer.isError(unused))return unused;return{unused,data:buffer.raw()}}else if(tag===\"bmpstr\"){var raw=buffer.raw();if(raw.length%2===1)return buffer.error(\"Decoding of string type: bmpstr length mismatch\");var str=\"\";for(var i=0;i>6],primitive=(tag&32)===0;if((tag&31)===31){var oct=tag;tag=0;while((oct&128)===128){if(oct=buf.readUInt8(fail),buf.isError(oct))return oct;tag<<=7,tag|=oct&127}}else tag&=31;var tagStr=der.tag[tag];return{cls,primitive,tag,tagStr}}function derDecodeLen(buf,primitive,fail){var len=buf.readUInt8(fail);if(buf.isError(len))return len;if(!primitive&&len===128)return null;if((len&128)===0)return len;var num=len&127;if(num>4)return buf.error(\"length octect is too long\");len=0;for(var i=0;i{var inherits=require_inherits(),Buffer2=require(\"buffer\").Buffer,DERDecoder=require_der2();function PEMDecoder(entity){DERDecoder.call(this,entity),this.enc=\"pem\"}inherits(PEMDecoder,DERDecoder);module.exports=PEMDecoder;PEMDecoder.prototype.decode=function(data,options){var lines=data.toString().split(/[\\r\\n]+/g),label=options.label.toUpperCase(),re=/^-----(BEGIN|END) ([^-]+)-----$/,start=-1,end=-1;for(var i=0;i{var decoders=exports;decoders.der=require_der2();decoders.pem=require_pem()});var require_der3=__commonJS((exports,module)=>{var inherits=require_inherits(),Buffer2=require(\"buffer\").Buffer,asn1=require_asn1(),base=asn1.base,der=asn1.constants.der;function DEREncoder(entity){this.enc=\"der\",this.name=entity.name,this.entity=entity,this.tree=new DERNode,this.tree._init(entity.body)}module.exports=DEREncoder;DEREncoder.prototype.encode=function(data,reporter){return this.tree._encode(data,reporter).join()};function DERNode(parent){base.Node.call(this,\"der\",parent)}inherits(DERNode,base.Node);DERNode.prototype._encodeComposite=function(tag,primitive,cls,content){var encodedTag=encodeTag(tag,primitive,cls,this.reporter);if(content.length<128){var header=new Buffer2(2);return header[0]=encodedTag,header[1]=content.length,this._createEncoderBuffer([header,content])}var lenOctets=1;for(var i=content.length;i>=256;i>>=8)lenOctets++;var header=new Buffer2(2+lenOctets);header[0]=encodedTag,header[1]=128|lenOctets;for(var i=1+lenOctets,j=content.length;j>0;i--,j>>=8)header[i]=j&255;return this._createEncoderBuffer([header,content])};DERNode.prototype._encodeStr=function(str,tag){if(tag===\"bitstr\")return this._createEncoderBuffer([str.unused|0,str.data]);else if(tag===\"bmpstr\"){var buf=new Buffer2(str.length*2);for(var i=0;i=40)return this.reporter.error(\"Second objid identifier OOB\");id.splice(0,2,id[0]*40+id[1])}var size=0;for(var i=0;i=128;ident>>=7)size++}var objid=new Buffer2(size),offset=objid.length-1;for(var i=id.length-1;i>=0;i--){var ident=id[i];objid[offset--]=ident&127;while((ident>>=7)>0)objid[offset--]=128|ident&127}return this._createEncoderBuffer(objid)};function two(num){if(num<10)return\"0\"+num;else return num}DERNode.prototype._encodeTime=function(time,tag){var str,date=new Date(time);if(tag===\"gentime\")str=[two(date.getFullYear()),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),\"Z\"].join(\"\");else if(tag===\"utctime\")str=[two(date.getFullYear()%100),two(date.getUTCMonth()+1),two(date.getUTCDate()),two(date.getUTCHours()),two(date.getUTCMinutes()),two(date.getUTCSeconds()),\"Z\"].join(\"\");else this.reporter.error(\"Encoding \"+tag+\" time is not supported yet\");return this._encodeStr(str,\"octstr\")};DERNode.prototype._encodeNull=function(){return this._createEncoderBuffer(\"\")};DERNode.prototype._encodeInt=function(num,values){if(typeof num===\"string\"){if(!values)return this.reporter.error(\"String int or enum given, but no values map\");if(!values.hasOwnProperty(num))return this.reporter.error(\"Values map doesn't contain: \"+JSON.stringify(num));num=values[num]}if(typeof num!==\"number\"&&!Buffer2.isBuffer(num)){var numArray=num.toArray();if(!num.sign&&numArray[0]&128)numArray.unshift(0);num=new Buffer2(numArray)}if(Buffer2.isBuffer(num)){var size=num.length;if(num.length===0)size++;var out=new Buffer2(size);if(num.copy(out),num.length===0)out[0]=0;return this._createEncoderBuffer(out)}if(num<128)return this._createEncoderBuffer(num);if(num<256)return this._createEncoderBuffer([0,num]);var size=1;for(var i=num;i>=256;i>>=8)size++;var out=Array(size);for(var i=out.length-1;i>=0;i--)out[i]=num&255,num>>=8;if(out[0]&128)out.unshift(0);return this._createEncoderBuffer(new Buffer2(out))};DERNode.prototype._encodeBool=function(value){return this._createEncoderBuffer(value?255:0)};DERNode.prototype._use=function(entity,obj){if(typeof entity===\"function\")entity=entity(obj);return entity._getEncoder(\"der\").tree};DERNode.prototype._skipDefault=function(dataBuffer,reporter,parent){var state=this._baseState,i;if(state.default===null)return!1;var data=dataBuffer.join();if(state.defaultBuffer===void 0)state.defaultBuffer=this._encodeValue(state.default,reporter,parent).join();if(data.length!==state.defaultBuffer.length)return!1;for(i=0;i=31)return reporter.error(\"Multi-octet tag encoding unsupported\");if(!primitive)res|=32;return res|=der.tagClassByName[cls||\"universal\"]<<6,res}});var require_pem2=__commonJS((exports,module)=>{var inherits=require_inherits(),DEREncoder=require_der3();function PEMEncoder(entity){DEREncoder.call(this,entity),this.enc=\"pem\"}inherits(PEMEncoder,DEREncoder);module.exports=PEMEncoder;PEMEncoder.prototype.encode=function(data,options){var buf=DEREncoder.prototype.encode.call(this,data),p=buf.toString(\"base64\"),out=[\"-----BEGIN \"+options.label+\"-----\"];for(var i=0;i{var encoders=exports;encoders.der=require_der3();encoders.pem=require_pem2()});var require_asn1=__commonJS((exports)=>{var asn1=exports;asn1.bignum=require_bn3();asn1.define=require_api().define;asn1.base=require_base2();asn1.constants=require_constants();asn1.decoders=require_decoders();asn1.encoders=require_encoders()});var require_certificate=__commonJS((exports,module)=>{var asn=require_asn1(),Time=asn.define(\"Time\",function(){this.choice({utcTime:this.utctime(),generalTime:this.gentime()})}),AttributeTypeValue=asn.define(\"AttributeTypeValue\",function(){this.seq().obj(this.key(\"type\").objid(),this.key(\"value\").any())}),AlgorithmIdentifier=asn.define(\"AlgorithmIdentifier\",function(){this.seq().obj(this.key(\"algorithm\").objid(),this.key(\"parameters\").optional(),this.key(\"curve\").objid().optional())}),SubjectPublicKeyInfo=asn.define(\"SubjectPublicKeyInfo\",function(){this.seq().obj(this.key(\"algorithm\").use(AlgorithmIdentifier),this.key(\"subjectPublicKey\").bitstr())}),RelativeDistinguishedName=asn.define(\"RelativeDistinguishedName\",function(){this.setof(AttributeTypeValue)}),RDNSequence=asn.define(\"RDNSequence\",function(){this.seqof(RelativeDistinguishedName)}),Name=asn.define(\"Name\",function(){this.choice({rdnSequence:this.use(RDNSequence)})}),Validity=asn.define(\"Validity\",function(){this.seq().obj(this.key(\"notBefore\").use(Time),this.key(\"notAfter\").use(Time))}),Extension=asn.define(\"Extension\",function(){this.seq().obj(this.key(\"extnID\").objid(),this.key(\"critical\").bool().def(!1),this.key(\"extnValue\").octstr())}),TBSCertificate=asn.define(\"TBSCertificate\",function(){this.seq().obj(this.key(\"version\").explicit(0).int().optional(),this.key(\"serialNumber\").int(),this.key(\"signature\").use(AlgorithmIdentifier),this.key(\"issuer\").use(Name),this.key(\"validity\").use(Validity),this.key(\"subject\").use(Name),this.key(\"subjectPublicKeyInfo\").use(SubjectPublicKeyInfo),this.key(\"issuerUniqueID\").implicit(1).bitstr().optional(),this.key(\"subjectUniqueID\").implicit(2).bitstr().optional(),this.key(\"extensions\").explicit(3).seqof(Extension).optional())}),X509Certificate=asn.define(\"X509Certificate\",function(){this.seq().obj(this.key(\"tbsCertificate\").use(TBSCertificate),this.key(\"signatureAlgorithm\").use(AlgorithmIdentifier),this.key(\"signatureValue\").bitstr())});module.exports=X509Certificate});var require_asn12=__commonJS((exports)=>{var asn1=require_asn1();exports.certificate=require_certificate();var RSAPrivateKey=asn1.define(\"RSAPrivateKey\",function(){this.seq().obj(this.key(\"version\").int(),this.key(\"modulus\").int(),this.key(\"publicExponent\").int(),this.key(\"privateExponent\").int(),this.key(\"prime1\").int(),this.key(\"prime2\").int(),this.key(\"exponent1\").int(),this.key(\"exponent2\").int(),this.key(\"coefficient\").int())});exports.RSAPrivateKey=RSAPrivateKey;var RSAPublicKey=asn1.define(\"RSAPublicKey\",function(){this.seq().obj(this.key(\"modulus\").int(),this.key(\"publicExponent\").int())});exports.RSAPublicKey=RSAPublicKey;var AlgorithmIdentifier=asn1.define(\"AlgorithmIdentifier\",function(){this.seq().obj(this.key(\"algorithm\").objid(),this.key(\"none\").null_().optional(),this.key(\"curve\").objid().optional(),this.key(\"params\").seq().obj(this.key(\"p\").int(),this.key(\"q\").int(),this.key(\"g\").int()).optional())}),PublicKey=asn1.define(\"SubjectPublicKeyInfo\",function(){this.seq().obj(this.key(\"algorithm\").use(AlgorithmIdentifier),this.key(\"subjectPublicKey\").bitstr())});exports.PublicKey=PublicKey;var PrivateKeyInfo=asn1.define(\"PrivateKeyInfo\",function(){this.seq().obj(this.key(\"version\").int(),this.key(\"algorithm\").use(AlgorithmIdentifier),this.key(\"subjectPrivateKey\").octstr())});exports.PrivateKey=PrivateKeyInfo;var EncryptedPrivateKeyInfo=asn1.define(\"EncryptedPrivateKeyInfo\",function(){this.seq().obj(this.key(\"algorithm\").seq().obj(this.key(\"id\").objid(),this.key(\"decrypt\").seq().obj(this.key(\"kde\").seq().obj(this.key(\"id\").objid(),this.key(\"kdeparams\").seq().obj(this.key(\"salt\").octstr(),this.key(\"iters\").int())),this.key(\"cipher\").seq().obj(this.key(\"algo\").objid(),this.key(\"iv\").octstr()))),this.key(\"subjectPrivateKey\").octstr())});exports.EncryptedPrivateKey=EncryptedPrivateKeyInfo;var DSAPrivateKey=asn1.define(\"DSAPrivateKey\",function(){this.seq().obj(this.key(\"version\").int(),this.key(\"p\").int(),this.key(\"q\").int(),this.key(\"g\").int(),this.key(\"pub_key\").int(),this.key(\"priv_key\").int())});exports.DSAPrivateKey=DSAPrivateKey;exports.DSAparam=asn1.define(\"DSAparam\",function(){this.int()});var ECParameters=asn1.define(\"ECParameters\",function(){this.choice({namedCurve:this.objid()})}),ECPrivateKey=asn1.define(\"ECPrivateKey\",function(){this.seq().obj(this.key(\"version\").int(),this.key(\"privateKey\").octstr(),this.key(\"parameters\").optional().explicit(0).use(ECParameters),this.key(\"publicKey\").optional().explicit(1).bitstr())});exports.ECPrivateKey=ECPrivateKey;exports.signature=asn1.define(\"signature\",function(){this.seq().obj(this.key(\"r\").int(),this.key(\"s\").int())})});var require_aesid=__commonJS((exports,module)=>{module.exports={\"2.16.840.1.101.3.4.1.1\":\"aes-128-ecb\",\"2.16.840.1.101.3.4.1.2\":\"aes-128-cbc\",\"2.16.840.1.101.3.4.1.3\":\"aes-128-ofb\",\"2.16.840.1.101.3.4.1.4\":\"aes-128-cfb\",\"2.16.840.1.101.3.4.1.21\":\"aes-192-ecb\",\"2.16.840.1.101.3.4.1.22\":\"aes-192-cbc\",\"2.16.840.1.101.3.4.1.23\":\"aes-192-ofb\",\"2.16.840.1.101.3.4.1.24\":\"aes-192-cfb\",\"2.16.840.1.101.3.4.1.41\":\"aes-256-ecb\",\"2.16.840.1.101.3.4.1.42\":\"aes-256-cbc\",\"2.16.840.1.101.3.4.1.43\":\"aes-256-ofb\",\"2.16.840.1.101.3.4.1.44\":\"aes-256-cfb\"}});var require_hash_base=__commonJS((exports,module)=>{var Buffer2=require_safe_buffer().Buffer,Transform=require(\"stream\").Transform,inherits=require_inherits();function HashBase(blockSize){Transform.call(this),this._block=Buffer2.allocUnsafe(blockSize),this._blockSize=blockSize,this._blockOffset=0,this._length=[0,0,0,0],this._finalized=!1}inherits(HashBase,Transform);HashBase.prototype._transform=function(chunk,encoding,callback){var error=null;try{this.update(chunk,encoding)}catch(err){error=err}callback(error)};HashBase.prototype._flush=function(callback){var error=null;try{this.push(this.digest())}catch(err){error=err}callback(error)};var useUint8Array=typeof Uint8Array<\"u\",useArrayBuffer=typeof ArrayBuffer<\"u\"&&typeof Uint8Array<\"u\"&&ArrayBuffer.isView&&(Buffer2.prototype instanceof Uint8Array||Buffer2.TYPED_ARRAY_SUPPORT);function toBuffer(data,encoding){if(data instanceof Buffer2)return data;if(typeof data===\"string\")return Buffer2.from(data,encoding);if(useArrayBuffer&&ArrayBuffer.isView(data)){if(data.byteLength===0)return Buffer2.alloc(0);var res=Buffer2.from(data.buffer,data.byteOffset,data.byteLength);if(res.byteLength===data.byteLength)return res}if(useUint8Array&&data instanceof Uint8Array)return Buffer2.from(data);if(Buffer2.isBuffer(data)&&data.constructor&&typeof data.constructor.isBuffer===\"function\"&&data.constructor.isBuffer(data))return Buffer2.from(data);throw TypeError('The \"data\" argument must be of type string or an instance of Buffer, TypedArray, or DataView.')}HashBase.prototype.update=function(data,encoding){if(this._finalized)throw Error(\"Digest already called\");data=toBuffer(data,encoding);var block=this._block,offset=0;while(this._blockOffset+data.length-offset>=this._blockSize){for(var i=this._blockOffset;i0;++j)if(this._length[j]+=carry,carry=this._length[j]/4294967296|0,carry>0)this._length[j]-=4294967296*carry;return this};HashBase.prototype._update=function(){throw Error(\"_update is not implemented\")};HashBase.prototype.digest=function(encoding){if(this._finalized)throw Error(\"Digest already called\");this._finalized=!0;var digest=this._digest();if(encoding!==void 0)digest=digest.toString(encoding);this._block.fill(0),this._blockOffset=0;for(var i=0;i<4;++i)this._length[i]=0;return digest};HashBase.prototype._digest=function(){throw Error(\"_digest is not implemented\")};module.exports=HashBase});var require_md5=__commonJS((exports,module)=>{var inherits=require_inherits(),HashBase=require_hash_base(),Buffer2=require_safe_buffer().Buffer,ARRAY16=Array(16);function MD5(){HashBase.call(this,64),this._a=1732584193,this._b=4023233417,this._c=2562383102,this._d=271733878}inherits(MD5,HashBase);MD5.prototype._update=function(){var M=ARRAY16;for(var i=0;i<16;++i)M[i]=this._block.readInt32LE(i*4);var a=this._a,b=this._b,c=this._c,d=this._d;a=fnF(a,b,c,d,M[0],3614090360,7),d=fnF(d,a,b,c,M[1],3905402710,12),c=fnF(c,d,a,b,M[2],606105819,17),b=fnF(b,c,d,a,M[3],3250441966,22),a=fnF(a,b,c,d,M[4],4118548399,7),d=fnF(d,a,b,c,M[5],1200080426,12),c=fnF(c,d,a,b,M[6],2821735955,17),b=fnF(b,c,d,a,M[7],4249261313,22),a=fnF(a,b,c,d,M[8],1770035416,7),d=fnF(d,a,b,c,M[9],2336552879,12),c=fnF(c,d,a,b,M[10],4294925233,17),b=fnF(b,c,d,a,M[11],2304563134,22),a=fnF(a,b,c,d,M[12],1804603682,7),d=fnF(d,a,b,c,M[13],4254626195,12),c=fnF(c,d,a,b,M[14],2792965006,17),b=fnF(b,c,d,a,M[15],1236535329,22),a=fnG(a,b,c,d,M[1],4129170786,5),d=fnG(d,a,b,c,M[6],3225465664,9),c=fnG(c,d,a,b,M[11],643717713,14),b=fnG(b,c,d,a,M[0],3921069994,20),a=fnG(a,b,c,d,M[5],3593408605,5),d=fnG(d,a,b,c,M[10],38016083,9),c=fnG(c,d,a,b,M[15],3634488961,14),b=fnG(b,c,d,a,M[4],3889429448,20),a=fnG(a,b,c,d,M[9],568446438,5),d=fnG(d,a,b,c,M[14],3275163606,9),c=fnG(c,d,a,b,M[3],4107603335,14),b=fnG(b,c,d,a,M[8],1163531501,20),a=fnG(a,b,c,d,M[13],2850285829,5),d=fnG(d,a,b,c,M[2],4243563512,9),c=fnG(c,d,a,b,M[7],1735328473,14),b=fnG(b,c,d,a,M[12],2368359562,20),a=fnH(a,b,c,d,M[5],4294588738,4),d=fnH(d,a,b,c,M[8],2272392833,11),c=fnH(c,d,a,b,M[11],1839030562,16),b=fnH(b,c,d,a,M[14],4259657740,23),a=fnH(a,b,c,d,M[1],2763975236,4),d=fnH(d,a,b,c,M[4],1272893353,11),c=fnH(c,d,a,b,M[7],4139469664,16),b=fnH(b,c,d,a,M[10],3200236656,23),a=fnH(a,b,c,d,M[13],681279174,4),d=fnH(d,a,b,c,M[0],3936430074,11),c=fnH(c,d,a,b,M[3],3572445317,16),b=fnH(b,c,d,a,M[6],76029189,23),a=fnH(a,b,c,d,M[9],3654602809,4),d=fnH(d,a,b,c,M[12],3873151461,11),c=fnH(c,d,a,b,M[15],530742520,16),b=fnH(b,c,d,a,M[2],3299628645,23),a=fnI(a,b,c,d,M[0],4096336452,6),d=fnI(d,a,b,c,M[7],1126891415,10),c=fnI(c,d,a,b,M[14],2878612391,15),b=fnI(b,c,d,a,M[5],4237533241,21),a=fnI(a,b,c,d,M[12],1700485571,6),d=fnI(d,a,b,c,M[3],2399980690,10),c=fnI(c,d,a,b,M[10],4293915773,15),b=fnI(b,c,d,a,M[1],2240044497,21),a=fnI(a,b,c,d,M[8],1873313359,6),d=fnI(d,a,b,c,M[15],4264355552,10),c=fnI(c,d,a,b,M[6],2734768916,15),b=fnI(b,c,d,a,M[13],1309151649,21),a=fnI(a,b,c,d,M[4],4149444226,6),d=fnI(d,a,b,c,M[11],3174756917,10),c=fnI(c,d,a,b,M[2],718787259,15),b=fnI(b,c,d,a,M[9],3951481745,21),this._a=this._a+a|0,this._b=this._b+b|0,this._c=this._c+c|0,this._d=this._d+d|0};MD5.prototype._digest=function(){if(this._block[this._blockOffset++]=128,this._blockOffset>56)this._block.fill(0,this._blockOffset,64),this._update(),this._blockOffset=0;this._block.fill(0,this._blockOffset,56),this._block.writeUInt32LE(this._length[0],56),this._block.writeUInt32LE(this._length[1],60),this._update();var buffer=Buffer2.allocUnsafe(16);return buffer.writeInt32LE(this._a,0),buffer.writeInt32LE(this._b,4),buffer.writeInt32LE(this._c,8),buffer.writeInt32LE(this._d,12),buffer};function rotl(x,n){return x<>>32-n}function fnF(a,b,c,d,m,k,s){return rotl(a+(b&c|~b&d)+m+k|0,s)+b|0}function fnG(a,b,c,d,m,k,s){return rotl(a+(b&d|c&~d)+m+k|0,s)+b|0}function fnH(a,b,c,d,m,k,s){return rotl(a+(b^c^d)+m+k|0,s)+b|0}function fnI(a,b,c,d,m,k,s){return rotl(a+(c^(b|~d))+m+k|0,s)+b|0}module.exports=MD5});var require_evp_bytestokey=__commonJS((exports,module)=>{var Buffer2=require_safe_buffer().Buffer,MD5=require_md5();function EVP_BytesToKey(password,salt,keyBits,ivLen){if(!Buffer2.isBuffer(password))password=Buffer2.from(password,\"binary\");if(salt){if(!Buffer2.isBuffer(salt))salt=Buffer2.from(salt,\"binary\");if(salt.length!==8)throw RangeError(\"salt should be Buffer with 8 byte length\")}var keyLen=keyBits/8,key=Buffer2.alloc(keyLen),iv=Buffer2.alloc(ivLen||0),tmp=Buffer2.alloc(0);while(keyLen>0||ivLen>0){var hash=new MD5;if(hash.update(tmp),hash.update(password),salt)hash.update(salt);tmp=hash.digest();var used=0;if(keyLen>0){var keyStart=key.length-keyLen;used=Math.min(keyLen,tmp.length),tmp.copy(key,keyStart,0,used),keyLen-=used}if(used0){var ivStart=iv.length-ivLen,length=Math.min(ivLen,tmp.length-used);tmp.copy(iv,ivStart,used,used+length),ivLen-=length}}return tmp.fill(0),{key,iv}}module.exports=EVP_BytesToKey});var require_browserify_aes=__commonJS((exports)=>{var crypto2=require(\"crypto\");exports.createCipher=exports.Cipher=crypto2.createCipher;exports.createCipheriv=exports.Cipheriv=crypto2.createCipheriv;exports.createDecipher=exports.Decipher=crypto2.createDecipher;exports.createDecipheriv=exports.Decipheriv=crypto2.createDecipheriv;exports.listCiphers=exports.getCiphers=crypto2.getCiphers});var require_fixProc=__commonJS((exports,module)=>{var findProc=/Proc-Type: 4,ENCRYPTED[\\n\\r]+DEK-Info: AES-((?:128)|(?:192)|(?:256))-CBC,([0-9A-H]+)[\\n\\r]+([0-9A-z\\n\\r+/=]+)[\\n\\r]+/m,startRegex=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----/m,fullRegex=/^-----BEGIN ((?:.*? KEY)|CERTIFICATE)-----([0-9A-z\\n\\r+/=]+)-----END \\1-----$/m,evp=require_evp_bytestokey(),ciphers=require_browserify_aes(),Buffer2=require_safe_buffer().Buffer;module.exports=function(okey,password){var key=okey.toString(),match=key.match(findProc),decrypted;if(!match){var match2=key.match(fullRegex);decrypted=Buffer2.from(match2[2].replace(/[\\r\\n]/g,\"\"),\"base64\")}else{var suite=\"aes\"+match[1],iv=Buffer2.from(match[2],\"hex\"),cipherText=Buffer2.from(match[3].replace(/[\\r\\n]/g,\"\"),\"base64\"),cipherKey=evp(password,iv.slice(0,8),parseInt(match[1],10)).key,out=[],cipher=ciphers.createDecipheriv(suite,cipherKey,iv);out.push(cipher.update(cipherText)),out.push(cipher.final()),decrypted=Buffer2.concat(out)}var tag=key.match(startRegex)[1];return{tag,data:decrypted}}});var require_parse_asn1=__commonJS((exports,module)=>{var asn1=require_asn12(),aesid=require_aesid(),fixProc=require_fixProc(),ciphers=require_browserify_aes(),pbkdf2Sync=require_pbkdf2().pbkdf2Sync,Buffer2=require_safe_buffer().Buffer;function decrypt(data,password){var salt=data.algorithm.decrypt.kde.kdeparams.salt,iters=parseInt(data.algorithm.decrypt.kde.kdeparams.iters.toString(),10),algo=aesid[data.algorithm.decrypt.cipher.algo.join(\".\")],iv=data.algorithm.decrypt.cipher.iv,cipherText=data.subjectPrivateKey,keylen=parseInt(algo.split(\"-\")[1],10)/8,key=pbkdf2Sync(password,salt,iters,keylen,\"sha1\"),cipher=ciphers.createDecipheriv(algo,key,iv),out=[];return out.push(cipher.update(cipherText)),out.push(cipher.final()),Buffer2.concat(out)}function parseKeys(buffer){var password;if(typeof buffer===\"object\"&&!Buffer2.isBuffer(buffer))password=buffer.passphrase,buffer=buffer.key;if(typeof buffer===\"string\")buffer=Buffer2.from(buffer);var stripped=fixProc(buffer,password),type=stripped.tag,data=stripped.data,subtype,ndata;switch(type){case\"CERTIFICATE\":ndata=asn1.certificate.decode(data,\"der\").tbsCertificate.subjectPublicKeyInfo;case\"PUBLIC KEY\":if(!ndata)ndata=asn1.PublicKey.decode(data,\"der\");switch(subtype=ndata.algorithm.algorithm.join(\".\"),subtype){case\"1.2.840.113549.1.1.1\":return asn1.RSAPublicKey.decode(ndata.subjectPublicKey.data,\"der\");case\"1.2.840.10045.2.1\":return ndata.subjectPrivateKey=ndata.subjectPublicKey,{type:\"ec\",data:ndata};case\"1.2.840.10040.4.1\":return ndata.algorithm.params.pub_key=asn1.DSAparam.decode(ndata.subjectPublicKey.data,\"der\"),{type:\"dsa\",data:ndata.algorithm.params};default:throw Error(\"unknown key id \"+subtype)}case\"ENCRYPTED PRIVATE KEY\":data=asn1.EncryptedPrivateKey.decode(data,\"der\"),data=decrypt(data,password);case\"PRIVATE KEY\":switch(ndata=asn1.PrivateKey.decode(data,\"der\"),subtype=ndata.algorithm.algorithm.join(\".\"),subtype){case\"1.2.840.113549.1.1.1\":return asn1.RSAPrivateKey.decode(ndata.subjectPrivateKey,\"der\");case\"1.2.840.10045.2.1\":return{curve:ndata.algorithm.curve,privateKey:asn1.ECPrivateKey.decode(ndata.subjectPrivateKey,\"der\").privateKey};case\"1.2.840.10040.4.1\":return ndata.algorithm.params.priv_key=asn1.DSAparam.decode(ndata.subjectPrivateKey,\"der\"),{type:\"dsa\",params:ndata.algorithm.params};default:throw Error(\"unknown key id \"+subtype)}case\"RSA PUBLIC KEY\":return asn1.RSAPublicKey.decode(data,\"der\");case\"RSA PRIVATE KEY\":return asn1.RSAPrivateKey.decode(data,\"der\");case\"DSA PRIVATE KEY\":return{type:\"dsa\",params:asn1.DSAPrivateKey.decode(data,\"der\")};case\"EC PRIVATE KEY\":return data=asn1.ECPrivateKey.decode(data,\"der\"),{curve:data.parameters.value,privateKey:data.privateKey};default:throw Error(\"unknown key type \"+type)}}parseKeys.signature=asn1.signature;module.exports=parseKeys});var require_mgf=__commonJS((exports,module)=>{var createHash=require_create_hash(),Buffer2=require_safe_buffer().Buffer;module.exports=function(seed,len){var t=Buffer2.alloc(0),i=0,c;while(t.length{module.exports=function(a,b){var len=a.length,i=-1;while(++i{(function(module2,exports2){function assert(val,msg){if(!val)throw Error(msg||\"Assertion failed\")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;if(this.negative=0,this.words=null,this.length=0,this.red=null,number!==null){if(base===\"le\"||base===\"be\")endian=base,base=10;this._init(number||0,base||10,endian||\"be\")}}if(typeof module2===\"object\")module2.exports=BN;else exports2.BN=BN;BN.BN=BN,BN.wordSize=26;var Buffer2;try{if(typeof window<\"u\"&&typeof window.Buffer<\"u\")Buffer2=window.Buffer;else Buffer2=require(\"buffer\").Buffer}catch(e){}BN.isBN=function(num){if(num instanceof BN)return!0;return num!==null&&typeof num===\"object\"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){if(left.cmp(right)>0)return left;return right},BN.min=function(left,right){if(left.cmp(right)<0)return left;return right},BN.prototype._init=function(number,base,endian){if(typeof number===\"number\")return this._initNumber(number,base,endian);if(typeof number===\"object\")return this._initArray(number,base,endian);if(base===\"hex\")base=16;assert(base===(base|0)&&base>=2&&base<=36),number=number.toString().replace(/\\s+/g,\"\");var start=0;if(number[0]===\"-\")start++,this.negative=1;if(start=0;i-=3)if(w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,off+=24,off>=26)off-=26,j++}else if(endian===\"le\"){for(i=0,j=0;i>>26-off&67108863,off+=24,off>=26)off-=26,j++}return this.strip()};function parseHex4Bits(string,index){var c=string.charCodeAt(index);if(c>=65&&c<=70)return c-55;else if(c>=97&&c<=102)return c-87;else return c-48&15}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);if(index-1>=lowerBound)r|=parseHex4Bits(string,index-1)<<4;return r}BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=Array(this.length);for(var i=0;i=start;i-=2)if(w=parseHexByte(number,start,i)<=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8;else{var parseLength=number.length-start;for(i=parseLength%2===0?start+1:start;i=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8}this.strip()};function parseBase(str,start,end,mul){var r=0,len=Math.min(str.length,end);for(var i=start;i=49)r+=c-49+10;else if(c>=17)r+=c-17+10;else r+=c}return r}BN.prototype._parseBase=function(number,base,start){this.words=[0],this.length=1;for(var limbLen=0,limbPow=1;limbPow<=67108863;limbPow*=base)limbLen++;limbLen--,limbPow=limbPow/base|0;var total=number.length-start,mod=total%limbLen,end=Math.min(total,total-mod)+start,word=0;for(var i=start;i1&&this.words[this.length-1]===0)this.length--;return this._normSign()},BN.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},BN.prototype.inspect=function(){return(this.red?\"\"};var zeros=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(BN.prototype.toString=function(base,padding){base=base||10,padding=padding|0||1;var out;if(base===16||base===\"hex\"){out=\"\";var off=0,carry=0;for(var i=0;i>>24-off&16777215,off+=2,off>=26)off-=26,i--;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out=\"\";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modn(groupBase).toString(base);if(c=c.idivn(groupBase),!c.isZero())out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.isZero())out=\"0\"+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}assert(!1,\"Base should be between 2 and 36\")},BN.prototype.toNumber=function(){var ret=this.words[0];if(this.length===2)ret+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)ret+=4503599627370496+this.words[1]*67108864;else if(this.length>2)assert(!1,\"Number can only safely store up to 53 bits\");return this.negative!==0?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16)},BN.prototype.toBuffer=function(endian,length){return assert(typeof Buffer2<\"u\"),this.toArrayLike(Buffer2,endian,length)},BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)},BN.prototype.toArrayLike=function(ArrayType,endian,length){var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,\"byte array longer than desired length\"),assert(reqLength>0,\"Requested array length <= 0\"),this.strip();var littleEndian=endian===\"le\",res=new ArrayType(reqLength),b,i,q=this.clone();if(!littleEndian){for(i=0;i=4096)r+=13,t>>>=13;if(t>=64)r+=7,t>>>=7;if(t>=8)r+=4,t>>>=4;if(t>=2)r+=2,t>>>=2;return r+t};BN.prototype._zeroBits=function(w){if(w===0)return 26;var t=w,r=0;if((t&8191)===0)r+=13,t>>>=13;if((t&127)===0)r+=7,t>>>=7;if((t&15)===0)r+=4,t>>>=4;if((t&3)===0)r+=2,t>>>=2;if((t&1)===0)r++;return r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=Array(num.bitLength());for(var bit=0;bit>>wbit}return w}BN.prototype.zeroBits=function(){if(this.isZero())return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);return num.clone().ior(this)},BN.prototype.uor=function(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;if(this.length>num.length)b=num;else b=this;for(var i=0;inum.length)return this.clone().iand(num);return num.clone().iand(this)},BN.prototype.uand=function(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;if(this.length>num.length)a=this,b=num;else a=num,b=this;for(var i=0;inum.length)return this.clone().ixor(num);return num.clone().ixor(this)},BN.prototype.uxor=function(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert(typeof width===\"number\"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0,bitsLeft=width%26;if(this._expand(bytesNeeded),bitsLeft>0)bytesNeeded--;for(var i=0;i0)this.words[i]=~this.words[i]&67108863>>26-bitsLeft;return this.strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert(typeof bit===\"number\"&&bit>=0);var off=bit/26|0,wbit=bit%26;if(this._expand(off+1),val)this.words[off]=this.words[off]|1<num.length)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>>26;for(;carry!==0&&i>>26;if(this.length=a.length,carry!==0)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length)return this.clone().iadd(num);return num.clone().iadd(this)},BN.prototype.isub=function(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var cmp=this.cmp(num);if(cmp===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,b;if(cmp>0)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>26,this.words[i]=r&67108863;for(;carry!==0&&i>26,this.words[i]=r&67108863;if(carry===0&&i>>26,rword=carry&67108863,maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self2.length+1);j<=maxJ;j++){var i=k-j|0;a=self2.words[i]|0,b=num.words[j]|0,r=a*b+rword,ncarry+=r/67108864|0,rword=r&67108863}out.words[k]=rword|0,carry=ncarry|0}if(carry!==0)out.words[k]=carry|0;else out.length--;return out.strip()}var comb10MulTo=function(self2,num,out){var a=self2.words,b=num.words,o=out.words,c=0,lo,mid,hi,a0=a[0]|0,al0=a0&8191,ah0=a0>>>13,a1=a[1]|0,al1=a1&8191,ah1=a1>>>13,a2=a[2]|0,al2=a2&8191,ah2=a2>>>13,a3=a[3]|0,al3=a3&8191,ah3=a3>>>13,a4=a[4]|0,al4=a4&8191,ah4=a4>>>13,a5=a[5]|0,al5=a5&8191,ah5=a5>>>13,a6=a[6]|0,al6=a6&8191,ah6=a6>>>13,a7=a[7]|0,al7=a7&8191,ah7=a7>>>13,a8=a[8]|0,al8=a8&8191,ah8=a8>>>13,a9=a[9]|0,al9=a9&8191,ah9=a9>>>13,b0=b[0]|0,bl0=b0&8191,bh0=b0>>>13,b1=b[1]|0,bl1=b1&8191,bh1=b1>>>13,b2=b[2]|0,bl2=b2&8191,bh2=b2>>>13,b3=b[3]|0,bl3=b3&8191,bh3=b3>>>13,b4=b[4]|0,bl4=b4&8191,bh4=b4>>>13,b5=b[5]|0,bl5=b5&8191,bh5=b5>>>13,b6=b[6]|0,bl6=b6&8191,bh6=b6>>>13,b7=b[7]|0,bl7=b7&8191,bh7=b7>>>13,b8=b[8]|0,bl8=b8&8191,bh8=b8>>>13,b9=b[9]|0,bl9=b9&8191,bh9=b9>>>13;out.negative=self2.negative^num.negative,out.length=19,lo=Math.imul(al0,bl0),mid=Math.imul(al0,bh0),mid=mid+Math.imul(ah0,bl0)|0,hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=Math.imul(al1,bh0),mid=mid+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0),lo=lo+Math.imul(al0,bl1)|0,mid=mid+Math.imul(al0,bh1)|0,mid=mid+Math.imul(ah0,bl1)|0,hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=Math.imul(al2,bh0),mid=mid+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=mid+Math.imul(al1,bh1)|0,mid=mid+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0,lo=lo+Math.imul(al0,bl2)|0,mid=mid+Math.imul(al0,bh2)|0,mid=mid+Math.imul(ah0,bl2)|0,hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=Math.imul(al3,bh0),mid=mid+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=mid+Math.imul(al2,bh1)|0,mid=mid+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=mid+Math.imul(al1,bh2)|0,mid=mid+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0,lo=lo+Math.imul(al0,bl3)|0,mid=mid+Math.imul(al0,bh3)|0,mid=mid+Math.imul(ah0,bl3)|0,hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=Math.imul(al4,bh0),mid=mid+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=mid+Math.imul(al3,bh1)|0,mid=mid+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=mid+Math.imul(al2,bh2)|0,mid=mid+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=mid+Math.imul(al1,bh3)|0,mid=mid+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0,lo=lo+Math.imul(al0,bl4)|0,mid=mid+Math.imul(al0,bh4)|0,mid=mid+Math.imul(ah0,bl4)|0,hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=Math.imul(al5,bh0),mid=mid+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=mid+Math.imul(al4,bh1)|0,mid=mid+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=mid+Math.imul(al3,bh2)|0,mid=mid+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=mid+Math.imul(al2,bh3)|0,mid=mid+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=mid+Math.imul(al1,bh4)|0,mid=mid+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0,lo=lo+Math.imul(al0,bl5)|0,mid=mid+Math.imul(al0,bh5)|0,mid=mid+Math.imul(ah0,bl5)|0,hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=Math.imul(al6,bh0),mid=mid+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=mid+Math.imul(al5,bh1)|0,mid=mid+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=mid+Math.imul(al4,bh2)|0,mid=mid+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=mid+Math.imul(al3,bh3)|0,mid=mid+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=mid+Math.imul(al2,bh4)|0,mid=mid+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=mid+Math.imul(al1,bh5)|0,mid=mid+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0,lo=lo+Math.imul(al0,bl6)|0,mid=mid+Math.imul(al0,bh6)|0,mid=mid+Math.imul(ah0,bl6)|0,hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=Math.imul(al7,bh0),mid=mid+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=mid+Math.imul(al6,bh1)|0,mid=mid+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=mid+Math.imul(al5,bh2)|0,mid=mid+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=mid+Math.imul(al4,bh3)|0,mid=mid+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=mid+Math.imul(al3,bh4)|0,mid=mid+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=mid+Math.imul(al2,bh5)|0,mid=mid+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=mid+Math.imul(al1,bh6)|0,mid=mid+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0,lo=lo+Math.imul(al0,bl7)|0,mid=mid+Math.imul(al0,bh7)|0,mid=mid+Math.imul(ah0,bl7)|0,hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=Math.imul(al8,bh0),mid=mid+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=mid+Math.imul(al7,bh1)|0,mid=mid+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=mid+Math.imul(al6,bh2)|0,mid=mid+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=mid+Math.imul(al5,bh3)|0,mid=mid+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=mid+Math.imul(al4,bh4)|0,mid=mid+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=mid+Math.imul(al3,bh5)|0,mid=mid+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=mid+Math.imul(al2,bh6)|0,mid=mid+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=mid+Math.imul(al1,bh7)|0,mid=mid+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0,lo=lo+Math.imul(al0,bl8)|0,mid=mid+Math.imul(al0,bh8)|0,mid=mid+Math.imul(ah0,bl8)|0,hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=Math.imul(al9,bh0),mid=mid+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=mid+Math.imul(al8,bh1)|0,mid=mid+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=mid+Math.imul(al7,bh2)|0,mid=mid+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=mid+Math.imul(al6,bh3)|0,mid=mid+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=mid+Math.imul(al5,bh4)|0,mid=mid+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=mid+Math.imul(al4,bh5)|0,mid=mid+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=mid+Math.imul(al3,bh6)|0,mid=mid+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=mid+Math.imul(al2,bh7)|0,mid=mid+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=mid+Math.imul(al1,bh8)|0,mid=mid+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0,lo=lo+Math.imul(al0,bl9)|0,mid=mid+Math.imul(al0,bh9)|0,mid=mid+Math.imul(ah0,bl9)|0,hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=Math.imul(al9,bh1),mid=mid+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=mid+Math.imul(al8,bh2)|0,mid=mid+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=mid+Math.imul(al7,bh3)|0,mid=mid+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=mid+Math.imul(al6,bh4)|0,mid=mid+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=mid+Math.imul(al5,bh5)|0,mid=mid+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=mid+Math.imul(al4,bh6)|0,mid=mid+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=mid+Math.imul(al3,bh7)|0,mid=mid+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=mid+Math.imul(al2,bh8)|0,mid=mid+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0,lo=lo+Math.imul(al1,bl9)|0,mid=mid+Math.imul(al1,bh9)|0,mid=mid+Math.imul(ah1,bl9)|0,hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=Math.imul(al9,bh2),mid=mid+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=mid+Math.imul(al8,bh3)|0,mid=mid+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=mid+Math.imul(al7,bh4)|0,mid=mid+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=mid+Math.imul(al6,bh5)|0,mid=mid+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=mid+Math.imul(al5,bh6)|0,mid=mid+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=mid+Math.imul(al4,bh7)|0,mid=mid+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=mid+Math.imul(al3,bh8)|0,mid=mid+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0,lo=lo+Math.imul(al2,bl9)|0,mid=mid+Math.imul(al2,bh9)|0,mid=mid+Math.imul(ah2,bl9)|0,hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=Math.imul(al9,bh3),mid=mid+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=mid+Math.imul(al8,bh4)|0,mid=mid+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=mid+Math.imul(al7,bh5)|0,mid=mid+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=mid+Math.imul(al6,bh6)|0,mid=mid+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=mid+Math.imul(al5,bh7)|0,mid=mid+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=mid+Math.imul(al4,bh8)|0,mid=mid+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0,lo=lo+Math.imul(al3,bl9)|0,mid=mid+Math.imul(al3,bh9)|0,mid=mid+Math.imul(ah3,bl9)|0,hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=Math.imul(al9,bh4),mid=mid+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=mid+Math.imul(al8,bh5)|0,mid=mid+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=mid+Math.imul(al7,bh6)|0,mid=mid+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=mid+Math.imul(al6,bh7)|0,mid=mid+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=mid+Math.imul(al5,bh8)|0,mid=mid+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0,lo=lo+Math.imul(al4,bl9)|0,mid=mid+Math.imul(al4,bh9)|0,mid=mid+Math.imul(ah4,bl9)|0,hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=Math.imul(al9,bh5),mid=mid+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=mid+Math.imul(al8,bh6)|0,mid=mid+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=mid+Math.imul(al7,bh7)|0,mid=mid+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=mid+Math.imul(al6,bh8)|0,mid=mid+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0,lo=lo+Math.imul(al5,bl9)|0,mid=mid+Math.imul(al5,bh9)|0,mid=mid+Math.imul(ah5,bl9)|0,hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=Math.imul(al9,bh6),mid=mid+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=mid+Math.imul(al8,bh7)|0,mid=mid+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=mid+Math.imul(al7,bh8)|0,mid=mid+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0,lo=lo+Math.imul(al6,bl9)|0,mid=mid+Math.imul(al6,bh9)|0,mid=mid+Math.imul(ah6,bl9)|0,hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=Math.imul(al9,bh7),mid=mid+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=mid+Math.imul(al8,bh8)|0,mid=mid+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0,lo=lo+Math.imul(al7,bl9)|0,mid=mid+Math.imul(al7,bh9)|0,mid=mid+Math.imul(ah7,bl9)|0,hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=Math.imul(al9,bh8),mid=mid+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8),lo=lo+Math.imul(al8,bl9)|0,mid=mid+Math.imul(al8,bh9)|0,mid=mid+Math.imul(ah8,bl9)|0,hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863,lo=Math.imul(al9,bl9),mid=Math.imul(al9,bh9),mid=mid+Math.imul(ah9,bl9)|0,hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;if(c=(hi+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,c!==0)o[19]=c,out.length++;return out};if(!Math.imul)comb10MulTo=smallMulTo;function bigMulTo(self2,num,out){out.negative=num.negative^self2.negative,out.length=self2.length+num.length;var carry=0,hncarry=0;for(var k=0;k>>26)|0,hncarry+=ncarry>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}if(carry!==0)out.words[k]=carry;else out.length--;return out.strip()}function jumboMulTo(self2,num,out){var fftm=new FFTM;return fftm.mulp(self2,num,out)}BN.prototype.mulTo=function(num,out){var res,len=this.length+num.length;if(this.length===10&&num.length===10)res=comb10MulTo(this,num,out);else if(len<63)res=smallMulTo(this,num,out);else if(len<1024)res=bigMulTo(this,num,out);else res=jumboMulTo(this,num,out);return res};function FFTM(x,y){this.x=x,this.y=y}FFTM.prototype.makeRBT=function(N){var t=Array(N),l=BN.prototype._countBits(N)-1;for(var i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1)i++;return 1<>>13,rws[2*i+1]=carry&8191,carry=carry>>>13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=lo&67108863}if(carry!==0)this.words[i]=carry,this.length++;return this.length=num===0?1:this.length,this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i=0);var r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r,i;if(r!==0){var carry=0;for(i=0;i>>26-r}if(carry)this.words[i]=carry,this.length++}if(s!==0){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0);var h;if(hint)h=(hint-hint%26)/26;else h=0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s){this.length-=s;for(i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r,carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0)this.words[0]=0,this.length=1;return this.strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(this.negative===0),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert(typeof bit===\"number\"&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(this.negative===0,\"imaskn works only with positive numbers\"),this.length<=s)return this;if(r!==0)s++;if(this.length=Math.min(s,this.length),r!==0){var mask=67108863^67108863>>>r<=67108864;i++)if(this.words[i]-=67108864,i===this.length-1)this.words[i+1]=1;else this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert(typeof num===\"number\"),assert(num<67108864),num<0)return this.iaddn(-num);if(this.negative!==0)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=w&67108863}for(;i>26,this.words[i+shift]=w&67108863;if(carry===0)return this.strip();assert(carry===-1),carry=0;for(i=0;i>26,this.words[i]=w&67108863;return this.negative=1,this.strip()},BN.prototype._wordDiv=function(num,mode){var shift=this.length-num.length,a=this.clone(),b=num,bhi=b.words[b.length-1]|0,bhiBits=this._countBits(bhi);if(shift=26-bhiBits,shift!==0)b=b.ushln(shift),a.iushln(shift),bhi=b.words[b.length-1]|0;var m=a.length-b.length,q;if(mode!==\"mod\"){q=new BN(null),q.length=m+1,q.words=Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);while(a.negative!==0)if(qj--,a.negative=0,a._ishlnsubmul(b,1,j),!a.isZero())a.negative^=1;if(q)q.words[j]=qj}if(q)q.strip();if(a.strip(),mode!==\"div\"&&shift!==0)a.iushrn(shift);return{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){if(assert(!num.isZero()),this.isZero())return{div:new BN(0),mod:new BN(0)};var div,mod,res;if(this.negative!==0&&num.negative===0){if(res=this.neg().divmod(num,mode),mode!==\"mod\")div=res.div.neg();if(mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.iadd(num)}return{div,mod}}if(this.negative===0&&num.negative!==0){if(res=this.divmod(num.neg(),mode),mode!==\"mod\")div=res.div.neg();return{div,mod:res.mod}}if((this.negative&num.negative)!==0){if(res=this.neg().divmod(num.neg(),mode),mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.isub(num)}return{div:res.div,mod}}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode===\"div\")return{div:this.divn(num.words[0]),mod:null};if(mode===\"mod\")return{div:null,mod:new BN(this.modn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modn(num.words[0]))}}return this._wordDiv(num,mode)},BN.prototype.div=function(num){return this.divmod(num,\"div\",!1).div},BN.prototype.mod=function(num){return this.divmod(num,\"mod\",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,\"mod\",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modn=function(num){assert(num<=67108863);var p=67108864%num,acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+(this.words[i]|0))%num;return acc},BN.prototype.idivn=function(num){assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0,carry=w%num}return this.strip()},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(p.negative===0),assert(!p.isZero());var x=this,y=p.clone();if(x.negative!==0)x=x.umod(p);else x=x.clone();var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;while(x.isEven()&&y.isEven())x.iushrn(1),y.iushrn(1),++g;var yp=y.clone(),xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd())A.iadd(yp),B.isub(xp);A.iushrn(1),B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd())C.iadd(yp),D.isub(xp);C.iushrn(1),D.iushrn(1)}}if(x.cmp(y)>=0)x.isub(y),A.isub(C),B.isub(D);else y.isub(x),C.isub(A),D.isub(B)}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(p.negative===0),assert(!p.isZero());var a=this,b=p.clone();if(a.negative!==0)a=a.umod(p);else a=a.clone();var x1=new BN(1),x2=new BN(0),delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd())x1.iadd(delta);x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd())x2.iadd(delta);x2.iushrn(1)}}if(a.cmp(b)>=0)a.isub(b),x1.isub(x2);else b.isub(a),x2.isub(x1)}var res;if(a.cmpn(1)===0)res=x1;else res=x2;if(res.cmpn(0)<0)res.iadd(p);return res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);do{while(a.isEven())a.iushrn(1);while(b.isEven())b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(r===0||b.cmpn(1)===0)break;a.isub(b)}while(!0);return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return(this.words[0]&1)===0},BN.prototype.isOdd=function(){return(this.words[0]&1)===1},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert(typeof bit===\"number\");var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}if(carry!==0)this.words[i]=carry,this.length++;return this},BN.prototype.isZero=function(){return this.length===1&&this.words[0]===0},BN.prototype.cmpn=function(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this.strip();var res;if(this.length>1)res=1;else{if(negative)num=-num;assert(num<=67108863,\"Number is too big\");var w=this.words[0]|0;res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=this.words[i]|0,b=num.words[i]|0;if(a===b)continue;if(ab)res=1;break}return res},BN.prototype.gtn=function(num){return this.cmpn(num)===1},BN.prototype.gt=function(num){return this.cmp(num)===1},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return this.cmpn(num)===-1},BN.prototype.lt=function(num){return this.cmp(num)===-1},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return this.cmpn(num)===0},BN.prototype.eq=function(num){return this.cmp(num)===0},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),assert(this.negative===0,\"red works only with positives\"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,\"redAdd works only with red numbers\"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,\"redSub works only with red numbers\"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,\"redISub works only with red numbers\"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,\"redShl works only with red numbers\"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var r=num,rlen;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),rlen=r.bitLength();while(rlen>this.n);var cmp=rlen0)r.isub(this.p);else if(r.strip!==void 0)r.strip();else r._strip();return r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)};function K256(){MPrime.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}inherits(K256,MPrime),K256.prototype.split=function(input,output){var mask=4194303,outLen=Math.min(input.length,9);for(var i=0;i>>22,prev=next}if(prev>>>=22,input.words[i-10]=prev,prev===0&&input.length>10)input.length-=10;else input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;var lo=0;for(var i=0;i>>=26,num.words[i]=lo,carry=hi}if(carry!==0)num.words[num.length++]=carry;return num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if(name===\"k256\")prime=new K256;else if(name===\"p224\")prime=new P224;else if(name===\"p192\")prime=new P192;else if(name===\"p25519\")prime=new P25519;else throw Error(\"Unknown prime \"+name);return primes[name]=prime,prime};function Red(m){if(typeof m===\"string\"){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),\"modulus must be greater than 1\"),this.m=m,this.prime=null}Red.prototype._verify1=function(a){assert(a.negative===0,\"red works only with positives\"),assert(a.red,\"red works only with red numbers\")},Red.prototype._verify2=function(a,b){assert((a.negative|b.negative)===0,\"red works only with positives\"),assert(a.red&&a.red===b.red,\"red works only with red numbers\")},Red.prototype.imod=function(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return a.umod(this.m)._forceRed(this)},Red.prototype.neg=function(a){if(a.isZero())return a.clone();return this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2===1),mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1),s=0;while(!q.isZero()&&q.andln(1)===0)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0])res=this.sqr(res);if(bit===0&¤t===0){currentLen=0;continue}if(current<<=1,current|=bit,currentLen++,currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]),currentLen=0,current=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)};function Mont(m){if(Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.invm=function(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module>\"u\"||module,exports)});var require_withPublic=__commonJS((exports,module)=>{var BN=require_bn4(),Buffer2=require_safe_buffer().Buffer;function withPublic(paddedMsg,key){return Buffer2.from(paddedMsg.toRed(BN.mont(key.modulus)).redPow(new BN(key.publicExponent)).fromRed().toArray())}module.exports=withPublic});var require_bn5=__commonJS((exports,module)=>{(function(module2,exports2){function assert(val,msg){if(!val)throw Error(msg||\"Assertion failed\")}function inherits(ctor,superCtor){ctor.super_=superCtor;var TempCtor=function(){};TempCtor.prototype=superCtor.prototype,ctor.prototype=new TempCtor,ctor.prototype.constructor=ctor}function BN(number,base,endian){if(BN.isBN(number))return number;if(this.negative=0,this.words=null,this.length=0,this.red=null,number!==null){if(base===\"le\"||base===\"be\")endian=base,base=10;this._init(number||0,base||10,endian||\"be\")}}if(typeof module2===\"object\")module2.exports=BN;else exports2.BN=BN;BN.BN=BN,BN.wordSize=26;var Buffer2;try{if(typeof window<\"u\"&&typeof window.Buffer<\"u\")Buffer2=window.Buffer;else Buffer2=require(\"buffer\").Buffer}catch(e){}BN.isBN=function(num){if(num instanceof BN)return!0;return num!==null&&typeof num===\"object\"&&num.constructor.wordSize===BN.wordSize&&Array.isArray(num.words)},BN.max=function(left,right){if(left.cmp(right)>0)return left;return right},BN.min=function(left,right){if(left.cmp(right)<0)return left;return right},BN.prototype._init=function(number,base,endian){if(typeof number===\"number\")return this._initNumber(number,base,endian);if(typeof number===\"object\")return this._initArray(number,base,endian);if(base===\"hex\")base=16;assert(base===(base|0)&&base>=2&&base<=36),number=number.toString().replace(/\\s+/g,\"\");var start=0;if(number[0]===\"-\")start++,this.negative=1;if(start=0;i-=3)if(w=number[i]|number[i-1]<<8|number[i-2]<<16,this.words[j]|=w<>>26-off&67108863,off+=24,off>=26)off-=26,j++}else if(endian===\"le\"){for(i=0,j=0;i>>26-off&67108863,off+=24,off>=26)off-=26,j++}return this._strip()};function parseHex4Bits(string,index){var c=string.charCodeAt(index);if(c>=48&&c<=57)return c-48;else if(c>=65&&c<=70)return c-55;else if(c>=97&&c<=102)return c-87;else assert(!1,\"Invalid character in \"+string)}function parseHexByte(string,lowerBound,index){var r=parseHex4Bits(string,index);if(index-1>=lowerBound)r|=parseHex4Bits(string,index-1)<<4;return r}BN.prototype._parseHex=function(number,start,endian){this.length=Math.ceil((number.length-start)/6),this.words=Array(this.length);for(var i=0;i=start;i-=2)if(w=parseHexByte(number,start,i)<=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8;else{var parseLength=number.length-start;for(i=parseLength%2===0?start+1:start;i=18)off-=18,j+=1,this.words[j]|=w>>>26;else off+=8}this._strip()};function parseBase(str,start,end,mul){var r=0,b=0,len=Math.min(str.length,end);for(var i=start;i=49)b=c-49+10;else if(c>=17)b=c-17+10;else b=c;assert(c>=0&&b1&&this.words[this.length-1]===0)this.length--;return this._normSign()},BN.prototype._normSign=function(){if(this.length===1&&this.words[0]===0)this.negative=0;return this},typeof Symbol<\"u\"&&typeof Symbol.for===\"function\")try{BN.prototype[Symbol.for(\"nodejs.util.inspect.custom\")]=inspect}catch(e){BN.prototype.inspect=inspect}else BN.prototype.inspect=inspect;function inspect(){return(this.red?\"\"}var zeros=[\"\",\"0\",\"00\",\"000\",\"0000\",\"00000\",\"000000\",\"0000000\",\"00000000\",\"000000000\",\"0000000000\",\"00000000000\",\"000000000000\",\"0000000000000\",\"00000000000000\",\"000000000000000\",\"0000000000000000\",\"00000000000000000\",\"000000000000000000\",\"0000000000000000000\",\"00000000000000000000\",\"000000000000000000000\",\"0000000000000000000000\",\"00000000000000000000000\",\"000000000000000000000000\",\"0000000000000000000000000\"],groupSizes=[0,0,25,16,12,11,10,9,8,8,7,7,7,7,6,6,6,6,6,6,6,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5,5],groupBases=[0,0,33554432,43046721,16777216,48828125,60466176,40353607,16777216,43046721,1e7,19487171,35831808,62748517,7529536,11390625,16777216,24137569,34012224,47045881,64000000,4084101,5153632,6436343,7962624,9765625,11881376,14348907,17210368,20511149,24300000,28629151,33554432,39135393,45435424,52521875,60466176];if(BN.prototype.toString=function(base,padding){base=base||10,padding=padding|0||1;var out;if(base===16||base===\"hex\"){out=\"\";var off=0,carry=0;for(var i=0;i>>24-off&16777215,off+=2,off>=26)off-=26,i--;if(carry!==0||i!==this.length-1)out=zeros[6-word.length]+word+out;else out=word+out}if(carry!==0)out=carry.toString(16)+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}if(base===(base|0)&&base>=2&&base<=36){var groupSize=groupSizes[base],groupBase=groupBases[base];out=\"\";var c=this.clone();c.negative=0;while(!c.isZero()){var r=c.modrn(groupBase).toString(base);if(c=c.idivn(groupBase),!c.isZero())out=zeros[groupSize-r.length]+r+out;else out=r+out}if(this.isZero())out=\"0\"+out;while(out.length%padding!==0)out=\"0\"+out;if(this.negative!==0)out=\"-\"+out;return out}assert(!1,\"Base should be between 2 and 36\")},BN.prototype.toNumber=function(){var ret=this.words[0];if(this.length===2)ret+=this.words[1]*67108864;else if(this.length===3&&this.words[2]===1)ret+=4503599627370496+this.words[1]*67108864;else if(this.length>2)assert(!1,\"Number can only safely store up to 53 bits\");return this.negative!==0?-ret:ret},BN.prototype.toJSON=function(){return this.toString(16,2)},Buffer2)BN.prototype.toBuffer=function(endian,length){return this.toArrayLike(Buffer2,endian,length)};BN.prototype.toArray=function(endian,length){return this.toArrayLike(Array,endian,length)};var allocate=function(ArrayType,size){if(ArrayType.allocUnsafe)return ArrayType.allocUnsafe(size);return new ArrayType(size)};if(BN.prototype.toArrayLike=function(ArrayType,endian,length){this._strip();var byteLength=this.byteLength(),reqLength=length||Math.max(1,byteLength);assert(byteLength<=reqLength,\"byte array longer than desired length\"),assert(reqLength>0,\"Requested array length <= 0\");var res=allocate(ArrayType,reqLength),postfix=endian===\"le\"?\"LE\":\"BE\";return this[\"_toArrayLike\"+postfix](res,byteLength),res},BN.prototype._toArrayLikeLE=function(res,byteLength){var position=0,carry=0;for(var i=0,shift=0;i>8&255;if(position>16&255;if(shift===6){if(position>24&255;carry=0,shift=0}else carry=word>>>24,shift+=2}if(position=0)res[position--]=word>>8&255;if(position>=0)res[position--]=word>>16&255;if(shift===6){if(position>=0)res[position--]=word>>24&255;carry=0,shift=0}else carry=word>>>24,shift+=2}if(position>=0){res[position--]=carry;while(position>=0)res[position--]=0}},Math.clz32)BN.prototype._countBits=function(w){return 32-Math.clz32(w)};else BN.prototype._countBits=function(w){var t=w,r=0;if(t>=4096)r+=13,t>>>=13;if(t>=64)r+=7,t>>>=7;if(t>=8)r+=4,t>>>=4;if(t>=2)r+=2,t>>>=2;return r+t};BN.prototype._zeroBits=function(w){if(w===0)return 26;var t=w,r=0;if((t&8191)===0)r+=13,t>>>=13;if((t&127)===0)r+=7,t>>>=7;if((t&15)===0)r+=4,t>>>=4;if((t&3)===0)r+=2,t>>>=2;if((t&1)===0)r++;return r},BN.prototype.bitLength=function(){var w=this.words[this.length-1],hi=this._countBits(w);return(this.length-1)*26+hi};function toBitArray(num){var w=Array(num.bitLength());for(var bit=0;bit>>wbit&1}return w}BN.prototype.zeroBits=function(){if(this.isZero())return 0;var r=0;for(var i=0;inum.length)return this.clone().ior(num);return num.clone().ior(this)},BN.prototype.uor=function(num){if(this.length>num.length)return this.clone().iuor(num);return num.clone().iuor(this)},BN.prototype.iuand=function(num){var b;if(this.length>num.length)b=num;else b=this;for(var i=0;inum.length)return this.clone().iand(num);return num.clone().iand(this)},BN.prototype.uand=function(num){if(this.length>num.length)return this.clone().iuand(num);return num.clone().iuand(this)},BN.prototype.iuxor=function(num){var a,b;if(this.length>num.length)a=this,b=num;else a=num,b=this;for(var i=0;inum.length)return this.clone().ixor(num);return num.clone().ixor(this)},BN.prototype.uxor=function(num){if(this.length>num.length)return this.clone().iuxor(num);return num.clone().iuxor(this)},BN.prototype.inotn=function(width){assert(typeof width===\"number\"&&width>=0);var bytesNeeded=Math.ceil(width/26)|0,bitsLeft=width%26;if(this._expand(bytesNeeded),bitsLeft>0)bytesNeeded--;for(var i=0;i0)this.words[i]=~this.words[i]&67108863>>26-bitsLeft;return this._strip()},BN.prototype.notn=function(width){return this.clone().inotn(width)},BN.prototype.setn=function(bit,val){assert(typeof bit===\"number\"&&bit>=0);var off=bit/26|0,wbit=bit%26;if(this._expand(off+1),val)this.words[off]=this.words[off]|1<num.length)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>>26;for(;carry!==0&&i>>26;if(this.length=a.length,carry!==0)this.words[this.length]=carry,this.length++;else if(a!==this)for(;inum.length)return this.clone().iadd(num);return num.clone().iadd(this)},BN.prototype.isub=function(num){if(num.negative!==0){num.negative=0;var r=this.iadd(num);return num.negative=1,r._normSign()}else if(this.negative!==0)return this.negative=0,this.iadd(num),this.negative=1,this._normSign();var cmp=this.cmp(num);if(cmp===0)return this.negative=0,this.length=1,this.words[0]=0,this;var a,b;if(cmp>0)a=this,b=num;else a=num,b=this;var carry=0;for(var i=0;i>26,this.words[i]=r&67108863;for(;carry!==0&&i>26,this.words[i]=r&67108863;if(carry===0&&i>>26,rword=carry&67108863,maxJ=Math.min(k,num.length-1);for(var j=Math.max(0,k-self2.length+1);j<=maxJ;j++){var i=k-j|0;a=self2.words[i]|0,b=num.words[j]|0,r=a*b+rword,ncarry+=r/67108864|0,rword=r&67108863}out.words[k]=rword|0,carry=ncarry|0}if(carry!==0)out.words[k]=carry|0;else out.length--;return out._strip()}var comb10MulTo=function(self2,num,out){var a=self2.words,b=num.words,o=out.words,c=0,lo,mid,hi,a0=a[0]|0,al0=a0&8191,ah0=a0>>>13,a1=a[1]|0,al1=a1&8191,ah1=a1>>>13,a2=a[2]|0,al2=a2&8191,ah2=a2>>>13,a3=a[3]|0,al3=a3&8191,ah3=a3>>>13,a4=a[4]|0,al4=a4&8191,ah4=a4>>>13,a5=a[5]|0,al5=a5&8191,ah5=a5>>>13,a6=a[6]|0,al6=a6&8191,ah6=a6>>>13,a7=a[7]|0,al7=a7&8191,ah7=a7>>>13,a8=a[8]|0,al8=a8&8191,ah8=a8>>>13,a9=a[9]|0,al9=a9&8191,ah9=a9>>>13,b0=b[0]|0,bl0=b0&8191,bh0=b0>>>13,b1=b[1]|0,bl1=b1&8191,bh1=b1>>>13,b2=b[2]|0,bl2=b2&8191,bh2=b2>>>13,b3=b[3]|0,bl3=b3&8191,bh3=b3>>>13,b4=b[4]|0,bl4=b4&8191,bh4=b4>>>13,b5=b[5]|0,bl5=b5&8191,bh5=b5>>>13,b6=b[6]|0,bl6=b6&8191,bh6=b6>>>13,b7=b[7]|0,bl7=b7&8191,bh7=b7>>>13,b8=b[8]|0,bl8=b8&8191,bh8=b8>>>13,b9=b[9]|0,bl9=b9&8191,bh9=b9>>>13;out.negative=self2.negative^num.negative,out.length=19,lo=Math.imul(al0,bl0),mid=Math.imul(al0,bh0),mid=mid+Math.imul(ah0,bl0)|0,hi=Math.imul(ah0,bh0);var w0=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w0>>>26)|0,w0&=67108863,lo=Math.imul(al1,bl0),mid=Math.imul(al1,bh0),mid=mid+Math.imul(ah1,bl0)|0,hi=Math.imul(ah1,bh0),lo=lo+Math.imul(al0,bl1)|0,mid=mid+Math.imul(al0,bh1)|0,mid=mid+Math.imul(ah0,bl1)|0,hi=hi+Math.imul(ah0,bh1)|0;var w1=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w1>>>26)|0,w1&=67108863,lo=Math.imul(al2,bl0),mid=Math.imul(al2,bh0),mid=mid+Math.imul(ah2,bl0)|0,hi=Math.imul(ah2,bh0),lo=lo+Math.imul(al1,bl1)|0,mid=mid+Math.imul(al1,bh1)|0,mid=mid+Math.imul(ah1,bl1)|0,hi=hi+Math.imul(ah1,bh1)|0,lo=lo+Math.imul(al0,bl2)|0,mid=mid+Math.imul(al0,bh2)|0,mid=mid+Math.imul(ah0,bl2)|0,hi=hi+Math.imul(ah0,bh2)|0;var w2=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w2>>>26)|0,w2&=67108863,lo=Math.imul(al3,bl0),mid=Math.imul(al3,bh0),mid=mid+Math.imul(ah3,bl0)|0,hi=Math.imul(ah3,bh0),lo=lo+Math.imul(al2,bl1)|0,mid=mid+Math.imul(al2,bh1)|0,mid=mid+Math.imul(ah2,bl1)|0,hi=hi+Math.imul(ah2,bh1)|0,lo=lo+Math.imul(al1,bl2)|0,mid=mid+Math.imul(al1,bh2)|0,mid=mid+Math.imul(ah1,bl2)|0,hi=hi+Math.imul(ah1,bh2)|0,lo=lo+Math.imul(al0,bl3)|0,mid=mid+Math.imul(al0,bh3)|0,mid=mid+Math.imul(ah0,bl3)|0,hi=hi+Math.imul(ah0,bh3)|0;var w3=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w3>>>26)|0,w3&=67108863,lo=Math.imul(al4,bl0),mid=Math.imul(al4,bh0),mid=mid+Math.imul(ah4,bl0)|0,hi=Math.imul(ah4,bh0),lo=lo+Math.imul(al3,bl1)|0,mid=mid+Math.imul(al3,bh1)|0,mid=mid+Math.imul(ah3,bl1)|0,hi=hi+Math.imul(ah3,bh1)|0,lo=lo+Math.imul(al2,bl2)|0,mid=mid+Math.imul(al2,bh2)|0,mid=mid+Math.imul(ah2,bl2)|0,hi=hi+Math.imul(ah2,bh2)|0,lo=lo+Math.imul(al1,bl3)|0,mid=mid+Math.imul(al1,bh3)|0,mid=mid+Math.imul(ah1,bl3)|0,hi=hi+Math.imul(ah1,bh3)|0,lo=lo+Math.imul(al0,bl4)|0,mid=mid+Math.imul(al0,bh4)|0,mid=mid+Math.imul(ah0,bl4)|0,hi=hi+Math.imul(ah0,bh4)|0;var w4=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w4>>>26)|0,w4&=67108863,lo=Math.imul(al5,bl0),mid=Math.imul(al5,bh0),mid=mid+Math.imul(ah5,bl0)|0,hi=Math.imul(ah5,bh0),lo=lo+Math.imul(al4,bl1)|0,mid=mid+Math.imul(al4,bh1)|0,mid=mid+Math.imul(ah4,bl1)|0,hi=hi+Math.imul(ah4,bh1)|0,lo=lo+Math.imul(al3,bl2)|0,mid=mid+Math.imul(al3,bh2)|0,mid=mid+Math.imul(ah3,bl2)|0,hi=hi+Math.imul(ah3,bh2)|0,lo=lo+Math.imul(al2,bl3)|0,mid=mid+Math.imul(al2,bh3)|0,mid=mid+Math.imul(ah2,bl3)|0,hi=hi+Math.imul(ah2,bh3)|0,lo=lo+Math.imul(al1,bl4)|0,mid=mid+Math.imul(al1,bh4)|0,mid=mid+Math.imul(ah1,bl4)|0,hi=hi+Math.imul(ah1,bh4)|0,lo=lo+Math.imul(al0,bl5)|0,mid=mid+Math.imul(al0,bh5)|0,mid=mid+Math.imul(ah0,bl5)|0,hi=hi+Math.imul(ah0,bh5)|0;var w5=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w5>>>26)|0,w5&=67108863,lo=Math.imul(al6,bl0),mid=Math.imul(al6,bh0),mid=mid+Math.imul(ah6,bl0)|0,hi=Math.imul(ah6,bh0),lo=lo+Math.imul(al5,bl1)|0,mid=mid+Math.imul(al5,bh1)|0,mid=mid+Math.imul(ah5,bl1)|0,hi=hi+Math.imul(ah5,bh1)|0,lo=lo+Math.imul(al4,bl2)|0,mid=mid+Math.imul(al4,bh2)|0,mid=mid+Math.imul(ah4,bl2)|0,hi=hi+Math.imul(ah4,bh2)|0,lo=lo+Math.imul(al3,bl3)|0,mid=mid+Math.imul(al3,bh3)|0,mid=mid+Math.imul(ah3,bl3)|0,hi=hi+Math.imul(ah3,bh3)|0,lo=lo+Math.imul(al2,bl4)|0,mid=mid+Math.imul(al2,bh4)|0,mid=mid+Math.imul(ah2,bl4)|0,hi=hi+Math.imul(ah2,bh4)|0,lo=lo+Math.imul(al1,bl5)|0,mid=mid+Math.imul(al1,bh5)|0,mid=mid+Math.imul(ah1,bl5)|0,hi=hi+Math.imul(ah1,bh5)|0,lo=lo+Math.imul(al0,bl6)|0,mid=mid+Math.imul(al0,bh6)|0,mid=mid+Math.imul(ah0,bl6)|0,hi=hi+Math.imul(ah0,bh6)|0;var w6=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w6>>>26)|0,w6&=67108863,lo=Math.imul(al7,bl0),mid=Math.imul(al7,bh0),mid=mid+Math.imul(ah7,bl0)|0,hi=Math.imul(ah7,bh0),lo=lo+Math.imul(al6,bl1)|0,mid=mid+Math.imul(al6,bh1)|0,mid=mid+Math.imul(ah6,bl1)|0,hi=hi+Math.imul(ah6,bh1)|0,lo=lo+Math.imul(al5,bl2)|0,mid=mid+Math.imul(al5,bh2)|0,mid=mid+Math.imul(ah5,bl2)|0,hi=hi+Math.imul(ah5,bh2)|0,lo=lo+Math.imul(al4,bl3)|0,mid=mid+Math.imul(al4,bh3)|0,mid=mid+Math.imul(ah4,bl3)|0,hi=hi+Math.imul(ah4,bh3)|0,lo=lo+Math.imul(al3,bl4)|0,mid=mid+Math.imul(al3,bh4)|0,mid=mid+Math.imul(ah3,bl4)|0,hi=hi+Math.imul(ah3,bh4)|0,lo=lo+Math.imul(al2,bl5)|0,mid=mid+Math.imul(al2,bh5)|0,mid=mid+Math.imul(ah2,bl5)|0,hi=hi+Math.imul(ah2,bh5)|0,lo=lo+Math.imul(al1,bl6)|0,mid=mid+Math.imul(al1,bh6)|0,mid=mid+Math.imul(ah1,bl6)|0,hi=hi+Math.imul(ah1,bh6)|0,lo=lo+Math.imul(al0,bl7)|0,mid=mid+Math.imul(al0,bh7)|0,mid=mid+Math.imul(ah0,bl7)|0,hi=hi+Math.imul(ah0,bh7)|0;var w7=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w7>>>26)|0,w7&=67108863,lo=Math.imul(al8,bl0),mid=Math.imul(al8,bh0),mid=mid+Math.imul(ah8,bl0)|0,hi=Math.imul(ah8,bh0),lo=lo+Math.imul(al7,bl1)|0,mid=mid+Math.imul(al7,bh1)|0,mid=mid+Math.imul(ah7,bl1)|0,hi=hi+Math.imul(ah7,bh1)|0,lo=lo+Math.imul(al6,bl2)|0,mid=mid+Math.imul(al6,bh2)|0,mid=mid+Math.imul(ah6,bl2)|0,hi=hi+Math.imul(ah6,bh2)|0,lo=lo+Math.imul(al5,bl3)|0,mid=mid+Math.imul(al5,bh3)|0,mid=mid+Math.imul(ah5,bl3)|0,hi=hi+Math.imul(ah5,bh3)|0,lo=lo+Math.imul(al4,bl4)|0,mid=mid+Math.imul(al4,bh4)|0,mid=mid+Math.imul(ah4,bl4)|0,hi=hi+Math.imul(ah4,bh4)|0,lo=lo+Math.imul(al3,bl5)|0,mid=mid+Math.imul(al3,bh5)|0,mid=mid+Math.imul(ah3,bl5)|0,hi=hi+Math.imul(ah3,bh5)|0,lo=lo+Math.imul(al2,bl6)|0,mid=mid+Math.imul(al2,bh6)|0,mid=mid+Math.imul(ah2,bl6)|0,hi=hi+Math.imul(ah2,bh6)|0,lo=lo+Math.imul(al1,bl7)|0,mid=mid+Math.imul(al1,bh7)|0,mid=mid+Math.imul(ah1,bl7)|0,hi=hi+Math.imul(ah1,bh7)|0,lo=lo+Math.imul(al0,bl8)|0,mid=mid+Math.imul(al0,bh8)|0,mid=mid+Math.imul(ah0,bl8)|0,hi=hi+Math.imul(ah0,bh8)|0;var w8=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w8>>>26)|0,w8&=67108863,lo=Math.imul(al9,bl0),mid=Math.imul(al9,bh0),mid=mid+Math.imul(ah9,bl0)|0,hi=Math.imul(ah9,bh0),lo=lo+Math.imul(al8,bl1)|0,mid=mid+Math.imul(al8,bh1)|0,mid=mid+Math.imul(ah8,bl1)|0,hi=hi+Math.imul(ah8,bh1)|0,lo=lo+Math.imul(al7,bl2)|0,mid=mid+Math.imul(al7,bh2)|0,mid=mid+Math.imul(ah7,bl2)|0,hi=hi+Math.imul(ah7,bh2)|0,lo=lo+Math.imul(al6,bl3)|0,mid=mid+Math.imul(al6,bh3)|0,mid=mid+Math.imul(ah6,bl3)|0,hi=hi+Math.imul(ah6,bh3)|0,lo=lo+Math.imul(al5,bl4)|0,mid=mid+Math.imul(al5,bh4)|0,mid=mid+Math.imul(ah5,bl4)|0,hi=hi+Math.imul(ah5,bh4)|0,lo=lo+Math.imul(al4,bl5)|0,mid=mid+Math.imul(al4,bh5)|0,mid=mid+Math.imul(ah4,bl5)|0,hi=hi+Math.imul(ah4,bh5)|0,lo=lo+Math.imul(al3,bl6)|0,mid=mid+Math.imul(al3,bh6)|0,mid=mid+Math.imul(ah3,bl6)|0,hi=hi+Math.imul(ah3,bh6)|0,lo=lo+Math.imul(al2,bl7)|0,mid=mid+Math.imul(al2,bh7)|0,mid=mid+Math.imul(ah2,bl7)|0,hi=hi+Math.imul(ah2,bh7)|0,lo=lo+Math.imul(al1,bl8)|0,mid=mid+Math.imul(al1,bh8)|0,mid=mid+Math.imul(ah1,bl8)|0,hi=hi+Math.imul(ah1,bh8)|0,lo=lo+Math.imul(al0,bl9)|0,mid=mid+Math.imul(al0,bh9)|0,mid=mid+Math.imul(ah0,bl9)|0,hi=hi+Math.imul(ah0,bh9)|0;var w9=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w9>>>26)|0,w9&=67108863,lo=Math.imul(al9,bl1),mid=Math.imul(al9,bh1),mid=mid+Math.imul(ah9,bl1)|0,hi=Math.imul(ah9,bh1),lo=lo+Math.imul(al8,bl2)|0,mid=mid+Math.imul(al8,bh2)|0,mid=mid+Math.imul(ah8,bl2)|0,hi=hi+Math.imul(ah8,bh2)|0,lo=lo+Math.imul(al7,bl3)|0,mid=mid+Math.imul(al7,bh3)|0,mid=mid+Math.imul(ah7,bl3)|0,hi=hi+Math.imul(ah7,bh3)|0,lo=lo+Math.imul(al6,bl4)|0,mid=mid+Math.imul(al6,bh4)|0,mid=mid+Math.imul(ah6,bl4)|0,hi=hi+Math.imul(ah6,bh4)|0,lo=lo+Math.imul(al5,bl5)|0,mid=mid+Math.imul(al5,bh5)|0,mid=mid+Math.imul(ah5,bl5)|0,hi=hi+Math.imul(ah5,bh5)|0,lo=lo+Math.imul(al4,bl6)|0,mid=mid+Math.imul(al4,bh6)|0,mid=mid+Math.imul(ah4,bl6)|0,hi=hi+Math.imul(ah4,bh6)|0,lo=lo+Math.imul(al3,bl7)|0,mid=mid+Math.imul(al3,bh7)|0,mid=mid+Math.imul(ah3,bl7)|0,hi=hi+Math.imul(ah3,bh7)|0,lo=lo+Math.imul(al2,bl8)|0,mid=mid+Math.imul(al2,bh8)|0,mid=mid+Math.imul(ah2,bl8)|0,hi=hi+Math.imul(ah2,bh8)|0,lo=lo+Math.imul(al1,bl9)|0,mid=mid+Math.imul(al1,bh9)|0,mid=mid+Math.imul(ah1,bl9)|0,hi=hi+Math.imul(ah1,bh9)|0;var w10=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w10>>>26)|0,w10&=67108863,lo=Math.imul(al9,bl2),mid=Math.imul(al9,bh2),mid=mid+Math.imul(ah9,bl2)|0,hi=Math.imul(ah9,bh2),lo=lo+Math.imul(al8,bl3)|0,mid=mid+Math.imul(al8,bh3)|0,mid=mid+Math.imul(ah8,bl3)|0,hi=hi+Math.imul(ah8,bh3)|0,lo=lo+Math.imul(al7,bl4)|0,mid=mid+Math.imul(al7,bh4)|0,mid=mid+Math.imul(ah7,bl4)|0,hi=hi+Math.imul(ah7,bh4)|0,lo=lo+Math.imul(al6,bl5)|0,mid=mid+Math.imul(al6,bh5)|0,mid=mid+Math.imul(ah6,bl5)|0,hi=hi+Math.imul(ah6,bh5)|0,lo=lo+Math.imul(al5,bl6)|0,mid=mid+Math.imul(al5,bh6)|0,mid=mid+Math.imul(ah5,bl6)|0,hi=hi+Math.imul(ah5,bh6)|0,lo=lo+Math.imul(al4,bl7)|0,mid=mid+Math.imul(al4,bh7)|0,mid=mid+Math.imul(ah4,bl7)|0,hi=hi+Math.imul(ah4,bh7)|0,lo=lo+Math.imul(al3,bl8)|0,mid=mid+Math.imul(al3,bh8)|0,mid=mid+Math.imul(ah3,bl8)|0,hi=hi+Math.imul(ah3,bh8)|0,lo=lo+Math.imul(al2,bl9)|0,mid=mid+Math.imul(al2,bh9)|0,mid=mid+Math.imul(ah2,bl9)|0,hi=hi+Math.imul(ah2,bh9)|0;var w11=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w11>>>26)|0,w11&=67108863,lo=Math.imul(al9,bl3),mid=Math.imul(al9,bh3),mid=mid+Math.imul(ah9,bl3)|0,hi=Math.imul(ah9,bh3),lo=lo+Math.imul(al8,bl4)|0,mid=mid+Math.imul(al8,bh4)|0,mid=mid+Math.imul(ah8,bl4)|0,hi=hi+Math.imul(ah8,bh4)|0,lo=lo+Math.imul(al7,bl5)|0,mid=mid+Math.imul(al7,bh5)|0,mid=mid+Math.imul(ah7,bl5)|0,hi=hi+Math.imul(ah7,bh5)|0,lo=lo+Math.imul(al6,bl6)|0,mid=mid+Math.imul(al6,bh6)|0,mid=mid+Math.imul(ah6,bl6)|0,hi=hi+Math.imul(ah6,bh6)|0,lo=lo+Math.imul(al5,bl7)|0,mid=mid+Math.imul(al5,bh7)|0,mid=mid+Math.imul(ah5,bl7)|0,hi=hi+Math.imul(ah5,bh7)|0,lo=lo+Math.imul(al4,bl8)|0,mid=mid+Math.imul(al4,bh8)|0,mid=mid+Math.imul(ah4,bl8)|0,hi=hi+Math.imul(ah4,bh8)|0,lo=lo+Math.imul(al3,bl9)|0,mid=mid+Math.imul(al3,bh9)|0,mid=mid+Math.imul(ah3,bl9)|0,hi=hi+Math.imul(ah3,bh9)|0;var w12=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w12>>>26)|0,w12&=67108863,lo=Math.imul(al9,bl4),mid=Math.imul(al9,bh4),mid=mid+Math.imul(ah9,bl4)|0,hi=Math.imul(ah9,bh4),lo=lo+Math.imul(al8,bl5)|0,mid=mid+Math.imul(al8,bh5)|0,mid=mid+Math.imul(ah8,bl5)|0,hi=hi+Math.imul(ah8,bh5)|0,lo=lo+Math.imul(al7,bl6)|0,mid=mid+Math.imul(al7,bh6)|0,mid=mid+Math.imul(ah7,bl6)|0,hi=hi+Math.imul(ah7,bh6)|0,lo=lo+Math.imul(al6,bl7)|0,mid=mid+Math.imul(al6,bh7)|0,mid=mid+Math.imul(ah6,bl7)|0,hi=hi+Math.imul(ah6,bh7)|0,lo=lo+Math.imul(al5,bl8)|0,mid=mid+Math.imul(al5,bh8)|0,mid=mid+Math.imul(ah5,bl8)|0,hi=hi+Math.imul(ah5,bh8)|0,lo=lo+Math.imul(al4,bl9)|0,mid=mid+Math.imul(al4,bh9)|0,mid=mid+Math.imul(ah4,bl9)|0,hi=hi+Math.imul(ah4,bh9)|0;var w13=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w13>>>26)|0,w13&=67108863,lo=Math.imul(al9,bl5),mid=Math.imul(al9,bh5),mid=mid+Math.imul(ah9,bl5)|0,hi=Math.imul(ah9,bh5),lo=lo+Math.imul(al8,bl6)|0,mid=mid+Math.imul(al8,bh6)|0,mid=mid+Math.imul(ah8,bl6)|0,hi=hi+Math.imul(ah8,bh6)|0,lo=lo+Math.imul(al7,bl7)|0,mid=mid+Math.imul(al7,bh7)|0,mid=mid+Math.imul(ah7,bl7)|0,hi=hi+Math.imul(ah7,bh7)|0,lo=lo+Math.imul(al6,bl8)|0,mid=mid+Math.imul(al6,bh8)|0,mid=mid+Math.imul(ah6,bl8)|0,hi=hi+Math.imul(ah6,bh8)|0,lo=lo+Math.imul(al5,bl9)|0,mid=mid+Math.imul(al5,bh9)|0,mid=mid+Math.imul(ah5,bl9)|0,hi=hi+Math.imul(ah5,bh9)|0;var w14=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w14>>>26)|0,w14&=67108863,lo=Math.imul(al9,bl6),mid=Math.imul(al9,bh6),mid=mid+Math.imul(ah9,bl6)|0,hi=Math.imul(ah9,bh6),lo=lo+Math.imul(al8,bl7)|0,mid=mid+Math.imul(al8,bh7)|0,mid=mid+Math.imul(ah8,bl7)|0,hi=hi+Math.imul(ah8,bh7)|0,lo=lo+Math.imul(al7,bl8)|0,mid=mid+Math.imul(al7,bh8)|0,mid=mid+Math.imul(ah7,bl8)|0,hi=hi+Math.imul(ah7,bh8)|0,lo=lo+Math.imul(al6,bl9)|0,mid=mid+Math.imul(al6,bh9)|0,mid=mid+Math.imul(ah6,bl9)|0,hi=hi+Math.imul(ah6,bh9)|0;var w15=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w15>>>26)|0,w15&=67108863,lo=Math.imul(al9,bl7),mid=Math.imul(al9,bh7),mid=mid+Math.imul(ah9,bl7)|0,hi=Math.imul(ah9,bh7),lo=lo+Math.imul(al8,bl8)|0,mid=mid+Math.imul(al8,bh8)|0,mid=mid+Math.imul(ah8,bl8)|0,hi=hi+Math.imul(ah8,bh8)|0,lo=lo+Math.imul(al7,bl9)|0,mid=mid+Math.imul(al7,bh9)|0,mid=mid+Math.imul(ah7,bl9)|0,hi=hi+Math.imul(ah7,bh9)|0;var w16=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w16>>>26)|0,w16&=67108863,lo=Math.imul(al9,bl8),mid=Math.imul(al9,bh8),mid=mid+Math.imul(ah9,bl8)|0,hi=Math.imul(ah9,bh8),lo=lo+Math.imul(al8,bl9)|0,mid=mid+Math.imul(al8,bh9)|0,mid=mid+Math.imul(ah8,bl9)|0,hi=hi+Math.imul(ah8,bh9)|0;var w17=(c+lo|0)+((mid&8191)<<13)|0;c=(hi+(mid>>>13)|0)+(w17>>>26)|0,w17&=67108863,lo=Math.imul(al9,bl9),mid=Math.imul(al9,bh9),mid=mid+Math.imul(ah9,bl9)|0,hi=Math.imul(ah9,bh9);var w18=(c+lo|0)+((mid&8191)<<13)|0;if(c=(hi+(mid>>>13)|0)+(w18>>>26)|0,w18&=67108863,o[0]=w0,o[1]=w1,o[2]=w2,o[3]=w3,o[4]=w4,o[5]=w5,o[6]=w6,o[7]=w7,o[8]=w8,o[9]=w9,o[10]=w10,o[11]=w11,o[12]=w12,o[13]=w13,o[14]=w14,o[15]=w15,o[16]=w16,o[17]=w17,o[18]=w18,c!==0)o[19]=c,out.length++;return out};if(!Math.imul)comb10MulTo=smallMulTo;function bigMulTo(self2,num,out){out.negative=num.negative^self2.negative,out.length=self2.length+num.length;var carry=0,hncarry=0;for(var k=0;k>>26)|0,hncarry+=ncarry>>>26,ncarry&=67108863}out.words[k]=rword,carry=ncarry,ncarry=hncarry}if(carry!==0)out.words[k]=carry;else out.length--;return out._strip()}function jumboMulTo(self2,num,out){return bigMulTo(self2,num,out)}BN.prototype.mulTo=function(num,out){var res,len=this.length+num.length;if(this.length===10&&num.length===10)res=comb10MulTo(this,num,out);else if(len<63)res=smallMulTo(this,num,out);else if(len<1024)res=bigMulTo(this,num,out);else res=jumboMulTo(this,num,out);return res};function FFTM(x,y){this.x=x,this.y=y}FFTM.prototype.makeRBT=function(N){var t=Array(N),l=BN.prototype._countBits(N)-1;for(var i=0;i>=1;return rb},FFTM.prototype.permute=function(rbt,rws,iws,rtws,itws,N){for(var i=0;i>>1)i++;return 1<>>13,rws[2*i+1]=carry&8191,carry=carry>>>13;for(i=2*len;i>=26,carry+=w/67108864|0,carry+=lo>>>26,this.words[i]=lo&67108863}if(carry!==0)this.words[i]=carry,this.length++;return this.length=num===0?1:this.length,isNegNum?this.ineg():this},BN.prototype.muln=function(num){return this.clone().imuln(num)},BN.prototype.sqr=function(){return this.mul(this)},BN.prototype.isqr=function(){return this.imul(this.clone())},BN.prototype.pow=function(num){var w=toBitArray(num);if(w.length===0)return new BN(1);var res=this;for(var i=0;i=0);var r=bits%26,s=(bits-r)/26,carryMask=67108863>>>26-r<<26-r,i;if(r!==0){var carry=0;for(i=0;i>>26-r}if(carry)this.words[i]=carry,this.length++}if(s!==0){for(i=this.length-1;i>=0;i--)this.words[i+s]=this.words[i];for(i=0;i=0);var h;if(hint)h=(hint-hint%26)/26;else h=0;var r=bits%26,s=Math.min((bits-r)/26,this.length),mask=67108863^67108863>>>r<s){this.length-=s;for(i=0;i=0&&(carry!==0||i>=h);i--){var word=this.words[i]|0;this.words[i]=carry<<26-r|word>>>r,carry=word&mask}if(maskedWords&&carry!==0)maskedWords.words[maskedWords.length++]=carry;if(this.length===0)this.words[0]=0,this.length=1;return this._strip()},BN.prototype.ishrn=function(bits,hint,extended){return assert(this.negative===0),this.iushrn(bits,hint,extended)},BN.prototype.shln=function(bits){return this.clone().ishln(bits)},BN.prototype.ushln=function(bits){return this.clone().iushln(bits)},BN.prototype.shrn=function(bits){return this.clone().ishrn(bits)},BN.prototype.ushrn=function(bits){return this.clone().iushrn(bits)},BN.prototype.testn=function(bit){assert(typeof bit===\"number\"&&bit>=0);var r=bit%26,s=(bit-r)/26,q=1<=0);var r=bits%26,s=(bits-r)/26;if(assert(this.negative===0,\"imaskn works only with positive numbers\"),this.length<=s)return this;if(r!==0)s++;if(this.length=Math.min(s,this.length),r!==0){var mask=67108863^67108863>>>r<=67108864;i++)if(this.words[i]-=67108864,i===this.length-1)this.words[i+1]=1;else this.words[i+1]++;return this.length=Math.max(this.length,i+1),this},BN.prototype.isubn=function(num){if(assert(typeof num===\"number\"),assert(num<67108864),num<0)return this.iaddn(-num);if(this.negative!==0)return this.negative=0,this.iaddn(num),this.negative=1,this;if(this.words[0]-=num,this.length===1&&this.words[0]<0)this.words[0]=-this.words[0],this.negative=1;else for(var i=0;i>26)-(right/67108864|0),this.words[i+shift]=w&67108863}for(;i>26,this.words[i+shift]=w&67108863;if(carry===0)return this._strip();assert(carry===-1),carry=0;for(i=0;i>26,this.words[i]=w&67108863;return this.negative=1,this._strip()},BN.prototype._wordDiv=function(num,mode){var shift=this.length-num.length,a=this.clone(),b=num,bhi=b.words[b.length-1]|0,bhiBits=this._countBits(bhi);if(shift=26-bhiBits,shift!==0)b=b.ushln(shift),a.iushln(shift),bhi=b.words[b.length-1]|0;var m=a.length-b.length,q;if(mode!==\"mod\"){q=new BN(null),q.length=m+1,q.words=Array(q.length);for(var i=0;i=0;j--){var qj=(a.words[b.length+j]|0)*67108864+(a.words[b.length+j-1]|0);qj=Math.min(qj/bhi|0,67108863),a._ishlnsubmul(b,qj,j);while(a.negative!==0)if(qj--,a.negative=0,a._ishlnsubmul(b,1,j),!a.isZero())a.negative^=1;if(q)q.words[j]=qj}if(q)q._strip();if(a._strip(),mode!==\"div\"&&shift!==0)a.iushrn(shift);return{div:q||null,mod:a}},BN.prototype.divmod=function(num,mode,positive){if(assert(!num.isZero()),this.isZero())return{div:new BN(0),mod:new BN(0)};var div,mod,res;if(this.negative!==0&&num.negative===0){if(res=this.neg().divmod(num,mode),mode!==\"mod\")div=res.div.neg();if(mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.iadd(num)}return{div,mod}}if(this.negative===0&&num.negative!==0){if(res=this.divmod(num.neg(),mode),mode!==\"mod\")div=res.div.neg();return{div,mod:res.mod}}if((this.negative&num.negative)!==0){if(res=this.neg().divmod(num.neg(),mode),mode!==\"div\"){if(mod=res.mod.neg(),positive&&mod.negative!==0)mod.isub(num)}return{div:res.div,mod}}if(num.length>this.length||this.cmp(num)<0)return{div:new BN(0),mod:this};if(num.length===1){if(mode===\"div\")return{div:this.divn(num.words[0]),mod:null};if(mode===\"mod\")return{div:null,mod:new BN(this.modrn(num.words[0]))};return{div:this.divn(num.words[0]),mod:new BN(this.modrn(num.words[0]))}}return this._wordDiv(num,mode)},BN.prototype.div=function(num){return this.divmod(num,\"div\",!1).div},BN.prototype.mod=function(num){return this.divmod(num,\"mod\",!1).mod},BN.prototype.umod=function(num){return this.divmod(num,\"mod\",!0).mod},BN.prototype.divRound=function(num){var dm=this.divmod(num);if(dm.mod.isZero())return dm.div;var mod=dm.div.negative!==0?dm.mod.isub(num):dm.mod,half=num.ushrn(1),r2=num.andln(1),cmp=mod.cmp(half);if(cmp<0||r2===1&&cmp===0)return dm.div;return dm.div.negative!==0?dm.div.isubn(1):dm.div.iaddn(1)},BN.prototype.modrn=function(num){var isNegNum=num<0;if(isNegNum)num=-num;assert(num<=67108863);var p=67108864%num,acc=0;for(var i=this.length-1;i>=0;i--)acc=(p*acc+(this.words[i]|0))%num;return isNegNum?-acc:acc},BN.prototype.modn=function(num){return this.modrn(num)},BN.prototype.idivn=function(num){var isNegNum=num<0;if(isNegNum)num=-num;assert(num<=67108863);var carry=0;for(var i=this.length-1;i>=0;i--){var w=(this.words[i]|0)+carry*67108864;this.words[i]=w/num|0,carry=w%num}return this._strip(),isNegNum?this.ineg():this},BN.prototype.divn=function(num){return this.clone().idivn(num)},BN.prototype.egcd=function(p){assert(p.negative===0),assert(!p.isZero());var x=this,y=p.clone();if(x.negative!==0)x=x.umod(p);else x=x.clone();var A=new BN(1),B=new BN(0),C=new BN(0),D=new BN(1),g=0;while(x.isEven()&&y.isEven())x.iushrn(1),y.iushrn(1),++g;var yp=y.clone(),xp=x.clone();while(!x.isZero()){for(var i=0,im=1;(x.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){x.iushrn(i);while(i-- >0){if(A.isOdd()||B.isOdd())A.iadd(yp),B.isub(xp);A.iushrn(1),B.iushrn(1)}}for(var j=0,jm=1;(y.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){y.iushrn(j);while(j-- >0){if(C.isOdd()||D.isOdd())C.iadd(yp),D.isub(xp);C.iushrn(1),D.iushrn(1)}}if(x.cmp(y)>=0)x.isub(y),A.isub(C),B.isub(D);else y.isub(x),C.isub(A),D.isub(B)}return{a:C,b:D,gcd:y.iushln(g)}},BN.prototype._invmp=function(p){assert(p.negative===0),assert(!p.isZero());var a=this,b=p.clone();if(a.negative!==0)a=a.umod(p);else a=a.clone();var x1=new BN(1),x2=new BN(0),delta=b.clone();while(a.cmpn(1)>0&&b.cmpn(1)>0){for(var i=0,im=1;(a.words[0]&im)===0&&i<26;++i,im<<=1);if(i>0){a.iushrn(i);while(i-- >0){if(x1.isOdd())x1.iadd(delta);x1.iushrn(1)}}for(var j=0,jm=1;(b.words[0]&jm)===0&&j<26;++j,jm<<=1);if(j>0){b.iushrn(j);while(j-- >0){if(x2.isOdd())x2.iadd(delta);x2.iushrn(1)}}if(a.cmp(b)>=0)a.isub(b),x1.isub(x2);else b.isub(a),x2.isub(x1)}var res;if(a.cmpn(1)===0)res=x1;else res=x2;if(res.cmpn(0)<0)res.iadd(p);return res},BN.prototype.gcd=function(num){if(this.isZero())return num.abs();if(num.isZero())return this.abs();var a=this.clone(),b=num.clone();a.negative=0,b.negative=0;for(var shift=0;a.isEven()&&b.isEven();shift++)a.iushrn(1),b.iushrn(1);do{while(a.isEven())a.iushrn(1);while(b.isEven())b.iushrn(1);var r=a.cmp(b);if(r<0){var t=a;a=b,b=t}else if(r===0||b.cmpn(1)===0)break;a.isub(b)}while(!0);return b.iushln(shift)},BN.prototype.invm=function(num){return this.egcd(num).a.umod(num)},BN.prototype.isEven=function(){return(this.words[0]&1)===0},BN.prototype.isOdd=function(){return(this.words[0]&1)===1},BN.prototype.andln=function(num){return this.words[0]&num},BN.prototype.bincn=function(bit){assert(typeof bit===\"number\");var r=bit%26,s=(bit-r)/26,q=1<>>26,w&=67108863,this.words[i]=w}if(carry!==0)this.words[i]=carry,this.length++;return this},BN.prototype.isZero=function(){return this.length===1&&this.words[0]===0},BN.prototype.cmpn=function(num){var negative=num<0;if(this.negative!==0&&!negative)return-1;if(this.negative===0&&negative)return 1;this._strip();var res;if(this.length>1)res=1;else{if(negative)num=-num;assert(num<=67108863,\"Number is too big\");var w=this.words[0]|0;res=w===num?0:wnum.length)return 1;if(this.length=0;i--){var a=this.words[i]|0,b=num.words[i]|0;if(a===b)continue;if(ab)res=1;break}return res},BN.prototype.gtn=function(num){return this.cmpn(num)===1},BN.prototype.gt=function(num){return this.cmp(num)===1},BN.prototype.gten=function(num){return this.cmpn(num)>=0},BN.prototype.gte=function(num){return this.cmp(num)>=0},BN.prototype.ltn=function(num){return this.cmpn(num)===-1},BN.prototype.lt=function(num){return this.cmp(num)===-1},BN.prototype.lten=function(num){return this.cmpn(num)<=0},BN.prototype.lte=function(num){return this.cmp(num)<=0},BN.prototype.eqn=function(num){return this.cmpn(num)===0},BN.prototype.eq=function(num){return this.cmp(num)===0},BN.red=function(num){return new Red(num)},BN.prototype.toRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),assert(this.negative===0,\"red works only with positives\"),ctx.convertTo(this)._forceRed(ctx)},BN.prototype.fromRed=function(){return assert(this.red,\"fromRed works only with numbers in reduction context\"),this.red.convertFrom(this)},BN.prototype._forceRed=function(ctx){return this.red=ctx,this},BN.prototype.forceRed=function(ctx){return assert(!this.red,\"Already a number in reduction context\"),this._forceRed(ctx)},BN.prototype.redAdd=function(num){return assert(this.red,\"redAdd works only with red numbers\"),this.red.add(this,num)},BN.prototype.redIAdd=function(num){return assert(this.red,\"redIAdd works only with red numbers\"),this.red.iadd(this,num)},BN.prototype.redSub=function(num){return assert(this.red,\"redSub works only with red numbers\"),this.red.sub(this,num)},BN.prototype.redISub=function(num){return assert(this.red,\"redISub works only with red numbers\"),this.red.isub(this,num)},BN.prototype.redShl=function(num){return assert(this.red,\"redShl works only with red numbers\"),this.red.shl(this,num)},BN.prototype.redMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.mul(this,num)},BN.prototype.redIMul=function(num){return assert(this.red,\"redMul works only with red numbers\"),this.red._verify2(this,num),this.red.imul(this,num)},BN.prototype.redSqr=function(){return assert(this.red,\"redSqr works only with red numbers\"),this.red._verify1(this),this.red.sqr(this)},BN.prototype.redISqr=function(){return assert(this.red,\"redISqr works only with red numbers\"),this.red._verify1(this),this.red.isqr(this)},BN.prototype.redSqrt=function(){return assert(this.red,\"redSqrt works only with red numbers\"),this.red._verify1(this),this.red.sqrt(this)},BN.prototype.redInvm=function(){return assert(this.red,\"redInvm works only with red numbers\"),this.red._verify1(this),this.red.invm(this)},BN.prototype.redNeg=function(){return assert(this.red,\"redNeg works only with red numbers\"),this.red._verify1(this),this.red.neg(this)},BN.prototype.redPow=function(num){return assert(this.red&&!num.red,\"redPow(normalNum)\"),this.red._verify1(this),this.red.pow(this,num)};var primes={k256:null,p224:null,p192:null,p25519:null};function MPrime(name,p){this.name=name,this.p=new BN(p,16),this.n=this.p.bitLength(),this.k=new BN(1).iushln(this.n).isub(this.p),this.tmp=this._tmp()}MPrime.prototype._tmp=function(){var tmp=new BN(null);return tmp.words=Array(Math.ceil(this.n/13)),tmp},MPrime.prototype.ireduce=function(num){var r=num,rlen;do this.split(r,this.tmp),r=this.imulK(r),r=r.iadd(this.tmp),rlen=r.bitLength();while(rlen>this.n);var cmp=rlen0)r.isub(this.p);else if(r.strip!==void 0)r.strip();else r._strip();return r},MPrime.prototype.split=function(input,out){input.iushrn(this.n,0,out)},MPrime.prototype.imulK=function(num){return num.imul(this.k)};function K256(){MPrime.call(this,\"k256\",\"ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f\")}inherits(K256,MPrime),K256.prototype.split=function(input,output){var mask=4194303,outLen=Math.min(input.length,9);for(var i=0;i>>22,prev=next}if(prev>>>=22,input.words[i-10]=prev,prev===0&&input.length>10)input.length-=10;else input.length-=9},K256.prototype.imulK=function(num){num.words[num.length]=0,num.words[num.length+1]=0,num.length+=2;var lo=0;for(var i=0;i>>=26,num.words[i]=lo,carry=hi}if(carry!==0)num.words[num.length++]=carry;return num},BN._prime=function(name){if(primes[name])return primes[name];var prime;if(name===\"k256\")prime=new K256;else if(name===\"p224\")prime=new P224;else if(name===\"p192\")prime=new P192;else if(name===\"p25519\")prime=new P25519;else throw Error(\"Unknown prime \"+name);return primes[name]=prime,prime};function Red(m){if(typeof m===\"string\"){var prime=BN._prime(m);this.m=prime.p,this.prime=prime}else assert(m.gtn(1),\"modulus must be greater than 1\"),this.m=m,this.prime=null}Red.prototype._verify1=function(a){assert(a.negative===0,\"red works only with positives\"),assert(a.red,\"red works only with red numbers\")},Red.prototype._verify2=function(a,b){assert((a.negative|b.negative)===0,\"red works only with positives\"),assert(a.red&&a.red===b.red,\"red works only with red numbers\")},Red.prototype.imod=function(a){if(this.prime)return this.prime.ireduce(a)._forceRed(this);return move(a,a.umod(this.m)._forceRed(this)),a},Red.prototype.neg=function(a){if(a.isZero())return a.clone();return this.m.sub(a)._forceRed(this)},Red.prototype.add=function(a,b){this._verify2(a,b);var res=a.add(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res._forceRed(this)},Red.prototype.iadd=function(a,b){this._verify2(a,b);var res=a.iadd(b);if(res.cmp(this.m)>=0)res.isub(this.m);return res},Red.prototype.sub=function(a,b){this._verify2(a,b);var res=a.sub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res._forceRed(this)},Red.prototype.isub=function(a,b){this._verify2(a,b);var res=a.isub(b);if(res.cmpn(0)<0)res.iadd(this.m);return res},Red.prototype.shl=function(a,num){return this._verify1(a),this.imod(a.ushln(num))},Red.prototype.imul=function(a,b){return this._verify2(a,b),this.imod(a.imul(b))},Red.prototype.mul=function(a,b){return this._verify2(a,b),this.imod(a.mul(b))},Red.prototype.isqr=function(a){return this.imul(a,a.clone())},Red.prototype.sqr=function(a){return this.mul(a,a)},Red.prototype.sqrt=function(a){if(a.isZero())return a.clone();var mod3=this.m.andln(3);if(assert(mod3%2===1),mod3===3){var pow=this.m.add(new BN(1)).iushrn(2);return this.pow(a,pow)}var q=this.m.subn(1),s=0;while(!q.isZero()&&q.andln(1)===0)s++,q.iushrn(1);assert(!q.isZero());var one=new BN(1).toRed(this),nOne=one.redNeg(),lpow=this.m.subn(1).iushrn(1),z=this.m.bitLength();z=new BN(2*z*z).toRed(this);while(this.pow(z,lpow).cmp(nOne)!==0)z.redIAdd(nOne);var c=this.pow(z,q),r=this.pow(a,q.addn(1).iushrn(1)),t=this.pow(a,q),m=s;while(t.cmp(one)!==0){var tmp=t;for(var i=0;tmp.cmp(one)!==0;i++)tmp=tmp.redSqr();assert(i=0;i--){var word=num.words[i];for(var j=start-1;j>=0;j--){var bit=word>>j&1;if(res!==wnd[0])res=this.sqr(res);if(bit===0&¤t===0){currentLen=0;continue}if(current<<=1,current|=bit,currentLen++,currentLen!==windowSize&&(i!==0||j!==0))continue;res=this.mul(res,wnd[current]),currentLen=0,current=0}start=26}return res},Red.prototype.convertTo=function(num){var r=num.umod(this.m);return r===num?r.clone():r},Red.prototype.convertFrom=function(num){var res=num.clone();return res.red=null,res},BN.mont=function(num){return new Mont(num)};function Mont(m){if(Red.call(this,m),this.shift=this.m.bitLength(),this.shift%26!==0)this.shift+=26-this.shift%26;this.r=new BN(1).iushln(this.shift),this.r2=this.imod(this.r.sqr()),this.rinv=this.r._invmp(this.m),this.minv=this.rinv.mul(this.r).isubn(1).div(this.m),this.minv=this.minv.umod(this.r),this.minv=this.r.sub(this.minv)}inherits(Mont,Red),Mont.prototype.convertTo=function(num){return this.imod(num.ushln(this.shift))},Mont.prototype.convertFrom=function(num){var r=this.imod(num.mul(this.rinv));return r.red=null,r},Mont.prototype.imul=function(a,b){if(a.isZero()||b.isZero())return a.words[0]=0,a.length=1,a;var t=a.imul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.mul=function(a,b){if(a.isZero()||b.isZero())return new BN(0)._forceRed(this);var t=a.mul(b),c=t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m),u=t.isub(c).iushrn(this.shift),res=u;if(u.cmp(this.m)>=0)res=u.isub(this.m);else if(u.cmpn(0)<0)res=u.iadd(this.m);return res._forceRed(this)},Mont.prototype.invm=function(a){var res=this.imod(a._invmp(this.m).mul(this.r2));return res._forceRed(this)}})(typeof module>\"u\"||module,exports)});var require_browserify_rsa=__commonJS((exports,module)=>{var BN=require_bn5(),randomBytes=require_randombytes(),Buffer2=require_safe_buffer().Buffer;function getr(priv){var len=priv.modulus.byteLength(),r;do r=new BN(randomBytes(len));while(r.cmp(priv.modulus)>=0||!r.umod(priv.prime1)||!r.umod(priv.prime2));return r}function blind(priv){var r=getr(priv),blinder=r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed();return{blinder,unblinder:r.invm(priv.modulus)}}function crt(msg,priv){var blinds=blind(priv),len=priv.modulus.byteLength(),blinded=new BN(msg).mul(blinds.blinder).umod(priv.modulus),c1=blinded.toRed(BN.mont(priv.prime1)),c2=blinded.toRed(BN.mont(priv.prime2)),qinv=priv.coefficient,p=priv.prime1,q=priv.prime2,m1=c1.redPow(priv.exponent1).fromRed(),m2=c2.redPow(priv.exponent2).fromRed(),h=m1.isub(m2).imul(qinv).umod(p).imul(q);return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer2,\"be\",len)}crt.getr=getr;module.exports=crt});var require_publicEncrypt=__commonJS((exports,module)=>{var parseKeys=require_parse_asn1(),randomBytes=require_randombytes(),createHash=require_create_hash(),mgf=require_mgf(),xor=require_xor(),BN=require_bn4(),withPublic=require_withPublic(),crt=require_browserify_rsa(),Buffer2=require_safe_buffer().Buffer;module.exports=function(publicKey,msg,reverse){var padding;if(publicKey.padding)padding=publicKey.padding;else if(reverse)padding=1;else padding=4;var key=parseKeys(publicKey),paddedMsg;if(padding===4)paddedMsg=oaep(key,msg);else if(padding===1)paddedMsg=pkcs1(key,msg,reverse);else if(padding===3){if(paddedMsg=new BN(msg),paddedMsg.cmp(key.modulus)>=0)throw Error(\"data too long for modulus\")}else throw Error(\"unknown padding\");if(reverse)return crt(paddedMsg,key);else return withPublic(paddedMsg,key)};function oaep(key,msg){var k=key.modulus.byteLength(),mLen=msg.length,iHash=createHash(\"sha1\").update(Buffer2.alloc(0)).digest(),hLen=iHash.length,hLen2=2*hLen;if(mLen>k-hLen2-2)throw Error(\"message too long\");var ps=Buffer2.alloc(k-mLen-hLen2-2),dblen=k-hLen-1,seed=randomBytes(hLen),maskedDb=xor(Buffer2.concat([iHash,ps,Buffer2.alloc(1,1),msg],dblen),mgf(seed,dblen)),maskedSeed=xor(seed,mgf(maskedDb,hLen));return new BN(Buffer2.concat([Buffer2.alloc(1),maskedSeed,maskedDb],k))}function pkcs1(key,msg,reverse){var mLen=msg.length,k=key.modulus.byteLength();if(mLen>k-11)throw Error(\"message too long\");var ps;if(reverse)ps=Buffer2.alloc(k-mLen-3,255);else ps=nonZero(k-mLen-3);return new BN(Buffer2.concat([Buffer2.from([0,reverse?1:2]),ps,Buffer2.alloc(1),msg],k))}function nonZero(len){var out=Buffer2.allocUnsafe(len),i=0,cache=randomBytes(len*2),cur=0,num;while(i{var parseKeys=require_parse_asn1(),mgf=require_mgf(),xor=require_xor(),BN=require_bn4(),crt=require_browserify_rsa(),createHash=require_create_hash(),withPublic=require_withPublic(),Buffer2=require_safe_buffer().Buffer;module.exports=function(privateKey,enc,reverse){var padding;if(privateKey.padding)padding=privateKey.padding;else if(reverse)padding=1;else padding=4;var key=parseKeys(privateKey),k=key.modulus.byteLength();if(enc.length>k||new BN(enc).cmp(key.modulus)>=0)throw Error(\"decryption error\");var msg;if(reverse)msg=withPublic(new BN(enc),key);else msg=crt(enc,key);var zBuffer=Buffer2.alloc(k-msg.length);if(msg=Buffer2.concat([zBuffer,msg],k),padding===4)return oaep(key,msg);else if(padding===1)return pkcs1(key,msg,reverse);else if(padding===3)return msg;else throw Error(\"unknown padding\")};function oaep(key,msg){var k=key.modulus.byteLength(),iHash=createHash(\"sha1\").update(Buffer2.alloc(0)).digest(),hLen=iHash.length;if(msg[0]!==0)throw Error(\"decryption error\");var maskedSeed=msg.slice(1,hLen+1),maskedDb=msg.slice(hLen+1),seed=xor(maskedSeed,mgf(maskedDb,hLen)),db=xor(maskedDb,mgf(seed,k-hLen-1));if(compare(iHash,db.slice(0,hLen)))throw Error(\"decryption error\");var i=hLen;while(db[i]===0)i++;if(db[i++]!==1)throw Error(\"decryption error\");return db.slice(i)}function pkcs1(key,msg,reverse){var p1=msg.slice(0,2),i=2,status=0;while(msg[i++]!==0)if(i>=msg.length){status++;break}var ps=msg.slice(2,i-1);if(p1.toString(\"hex\")!==\"0002\"&&!reverse||p1.toString(\"hex\")!==\"0001\"&&reverse)status++;if(ps.length<8)status++;if(status)throw Error(\"decryption error\");return msg.slice(i)}function compare(a,b){a=Buffer2.from(a),b=Buffer2.from(b);var dif=0,len=a.length;if(a.length!==b.length)dif++,len=Math.min(a.length,b.length);var i=-1;while(++i{exports.publicEncrypt=require_publicEncrypt();exports.privateDecrypt=require_privateDecrypt();exports.privateEncrypt=function(key,buf){return exports.publicEncrypt(key,buf,!0)};exports.publicDecrypt=function(key,buf){return exports.privateDecrypt(key,buf,!0)}});var require_public_encrypt=__commonJS((exports)=>{var crypto2=require(\"crypto\");if(typeof crypto2.publicEncrypt!==\"function\")crypto2=require_browser2();exports.publicEncrypt=crypto2.publicEncrypt;exports.privateDecrypt=crypto2.privateDecrypt;if(typeof crypto2.privateEncrypt!==\"function\")exports.privateEncrypt=require_browser2().privateEncrypt;else exports.privateEncrypt=crypto2.privateEncrypt;if(typeof crypto2.publicDecrypt!==\"function\")exports.publicDecrypt=require_browser2().publicDecrypt;else exports.publicDecrypt=crypto2.publicDecrypt});var require_browser3=__commonJS((exports)=>{var safeBuffer=require_safe_buffer(),randombytes=require_randombytes(),Buffer2=safeBuffer.Buffer,kBufferMaxLength=safeBuffer.kMaxLength,crypto2=globalThis.crypto||globalThis.msCrypto,kMaxUint32=Math.pow(2,32)-1;function assertOffset(offset,length){if(typeof offset!==\"number\"||offset!==offset)throw TypeError(\"offset must be a number\");if(offset>kMaxUint32||offset<0)throw TypeError(\"offset must be a uint32\");if(offset>kBufferMaxLength||offset>length)throw RangeError(\"offset out of range\")}function assertSize(size,offset,length){if(typeof size!==\"number\"||size!==size)throw TypeError(\"size must be a number\");if(size>kMaxUint32||size<0)throw TypeError(\"size must be a uint32\");if(size+offset>length||size>kBufferMaxLength)throw RangeError(\"buffer too small\")}crypto2&&crypto2.getRandomValues,exports.randomFill=randomFill,exports.randomFillSync=randomFillSync;function randomFill(buf,offset,size,cb){if(!Buffer2.isBuffer(buf)&&!(buf instanceof globalThis.Uint8Array))throw TypeError('\"buf\" argument must be a Buffer or Uint8Array');if(typeof offset===\"function\")cb=offset,offset=0,size=buf.length;else if(typeof size===\"function\")cb=size,size=buf.length-offset;else if(typeof cb!==\"function\")throw TypeError('\"cb\" argument must be a function');return assertOffset(offset,buf.length),assertSize(size,offset,buf.length),actualFill(buf,offset,size,cb)}function actualFill(buf,offset,size,cb){if(!1)var ourBuf,uint;if(cb){randombytes(size,function(err,bytes2){if(err)return cb(err);bytes2.copy(buf,offset),cb(null,buf)});return}var bytes=randombytes(size);return bytes.copy(buf,offset),buf}function randomFillSync(buf,offset,size){if(typeof offset>\"u\")offset=0;if(!Buffer2.isBuffer(buf)&&!(buf instanceof globalThis.Uint8Array))throw TypeError('\"buf\" argument must be a Buffer or Uint8Array');if(assertOffset(offset,buf.length),size===void 0)size=buf.length-offset;return assertSize(size,offset,buf.length),actualFill(buf,offset,size)}});var require_randomfill=__commonJS((exports,module)=>{var crypto2=require(\"crypto\");if(typeof crypto2.randomFill===\"function\"&&typeof crypto2.randomFillSync===\"function\")exports.randomFill=crypto2.randomFill,exports.randomFillSync=crypto2.randomFillSync;else module.exports=require_browser3()});var require_crypto_browserify=__commonJS((exports)=>{exports.randomBytes=exports.rng=exports.pseudoRandomBytes=exports.prng=require_randombytes();exports.createHash=exports.Hash=require_create_hash();exports.createHmac=exports.Hmac=require_create_hmac();var algos=require_algorithms(),algoKeys=Object.keys(algos),hashes=[\"sha1\",\"sha224\",\"sha256\",\"sha384\",\"sha512\",\"md5\",\"rmd160\"].concat(algoKeys);exports.getHashes=function(){return hashes};var p=require_pbkdf2();exports.pbkdf2=p.pbkdf2;exports.pbkdf2Sync=p.pbkdf2Sync;var aes=require_browserify_cipher();exports.Cipher=aes.Cipher;exports.createCipher=aes.createCipher;exports.Cipheriv=aes.Cipheriv;exports.createCipheriv=aes.createCipheriv;exports.Decipher=aes.Decipher;exports.createDecipher=aes.createDecipher;exports.Decipheriv=aes.Decipheriv;exports.createDecipheriv=aes.createDecipheriv;exports.getCiphers=aes.getCiphers;exports.listCiphers=aes.listCiphers;var dh=require_diffie_hellman();exports.DiffieHellmanGroup=dh.DiffieHellmanGroup;exports.createDiffieHellmanGroup=dh.createDiffieHellmanGroup;exports.getDiffieHellman=dh.getDiffieHellman;exports.createDiffieHellman=dh.createDiffieHellman;exports.DiffieHellman=dh.DiffieHellman;var sign=require_browserify_sign();exports.createSign=sign.createSign;exports.Sign=sign.Sign;exports.createVerify=sign.createVerify;exports.Verify=sign.Verify;exports.createECDH=require_create_ecdh();var publicEncrypt=require_public_encrypt();exports.publicEncrypt=publicEncrypt.publicEncrypt;exports.privateEncrypt=publicEncrypt.privateEncrypt;exports.publicDecrypt=publicEncrypt.publicDecrypt;exports.privateDecrypt=publicEncrypt.privateDecrypt;var rf=require_randomfill();exports.randomFill=rf.randomFill;exports.randomFillSync=rf.randomFillSync;exports.createCredentials=function(){throw Error(`sorry, createCredentials is not implemented yet\nwe accept pull requests\nhttps://github.com/browserify/crypto-browserify`)};exports.constants={DH_CHECK_P_NOT_SAFE_PRIME:2,DH_CHECK_P_NOT_PRIME:1,DH_UNABLE_TO_CHECK_GENERATOR:4,DH_NOT_SUITABLE_GENERATOR:8,NPN_ENABLED:1,ALPN_ENABLED:1,RSA_PKCS1_PADDING:1,RSA_SSLV23_PADDING:2,RSA_NO_PADDING:3,RSA_PKCS1_OAEP_PADDING:4,RSA_X931_PADDING:5,RSA_PKCS1_PSS_PADDING:6,POINT_CONVERSION_COMPRESSED:2,POINT_CONVERSION_UNCOMPRESSED:4,POINT_CONVERSION_HYBRID:6}});var cryptoBrowserify=__toESM(require_crypto_browserify(),1),prng2=cryptoBrowserify.prng,pseudoRandomBytes2=cryptoBrowserify.pseudoRandomBytes,rng2=cryptoBrowserify.rng,randomBytes2=cryptoBrowserify.randomBytes,Hash2=cryptoBrowserify.Hash,createHash2=cryptoBrowserify.createHash,Hmac2=cryptoBrowserify.Hmac,createHmac2=cryptoBrowserify.createHmac,getHashes2=cryptoBrowserify.getHashes,pbkdf22=cryptoBrowserify.pbkdf2,pbkdf2Sync2=cryptoBrowserify.pbkdf2Sync,Cipher2=cryptoBrowserify.Cipher,createCipher2=cryptoBrowserify.createCipher,Cipheriv2=cryptoBrowserify.Cipheriv,createCipheriv2=cryptoBrowserify.createCipheriv,Decipher2=cryptoBrowserify.Decipher,createDecipher2=cryptoBrowserify.createDecipher,Decipheriv2=cryptoBrowserify.Decipheriv,createDecipheriv2=cryptoBrowserify.createDecipheriv,getCiphers2=cryptoBrowserify.getCiphers,listCiphers2=cryptoBrowserify.listCiphers,DiffieHellmanGroup2=cryptoBrowserify.DiffieHellmanGroup,createDiffieHellmanGroup2=cryptoBrowserify.createDiffieHellmanGroup,getDiffieHellman2=cryptoBrowserify.getDiffieHellman,createDiffieHellman2=cryptoBrowserify.createDiffieHellman,DiffieHellman2=cryptoBrowserify.DiffieHellman,createSign2=cryptoBrowserify.createSign,Sign2=cryptoBrowserify.Sign,createVerify2=cryptoBrowserify.createVerify,Verify2=cryptoBrowserify.Verify,createECDH2=cryptoBrowserify.createECDH,publicEncrypt2=cryptoBrowserify.publicEncrypt,privateEncrypt2=cryptoBrowserify.privateEncrypt,publicDecrypt2=cryptoBrowserify.publicDecrypt,privateDecrypt2=cryptoBrowserify.privateDecrypt,randomFill2=cryptoBrowserify.randomFill,randomFillSync2=cryptoBrowserify.randomFillSync,createCredentials2=cryptoBrowserify.createCredentials,constants2=cryptoBrowserify.constants,DEFAULT_ENCODING=\"buffer\",getRandomValues=(array)=>{return crypto.getRandomValues(array)},randomUUID=()=>{return crypto.randomUUID()},hardcoded_curves=[\"p192\",\"p224\",\"p256\",\"p384\",\"p521\",\"curve25519\",\"ed25519\",\"secp256k1\",\"secp224r1\",\"prime256v1\",\"prime192v1\",\"ed25519\",\"secp384r1\",\"secp521r1\"];function getCurves(){return hardcoded_curves}var webcrypto=crypto,crypto_default=crypto;export{webcrypto,rng2 as rng,randomUUID,randomFillSync2 as randomFillSync,randomFill2 as randomFill,randomBytes2 as randomBytes,publicEncrypt2 as publicEncrypt,publicDecrypt2 as publicDecrypt,pseudoRandomBytes2 as pseudoRandomBytes,prng2 as prng,privateEncrypt2 as privateEncrypt,privateDecrypt2 as privateDecrypt,pbkdf2Sync2 as pbkdf2Sync,pbkdf22 as pbkdf2,listCiphers2 as listCiphers,getRandomValues,getHashes2 as getHashes,getDiffieHellman2 as getDiffieHellman,getCurves,getCiphers2 as getCiphers,crypto_default as default,createVerify2 as createVerify,createSign2 as createSign,createHmac2 as createHmac,createHash2 as createHash,createECDH2 as createECDH,createDiffieHellmanGroup2 as createDiffieHellmanGroup,createDiffieHellman2 as createDiffieHellman,createDecipheriv2 as createDecipheriv,createDecipher2 as createDecipher,createCredentials2 as createCredentials,createCipheriv2 as createCipheriv,createCipher2 as createCipher,constants2 as constants,Verify2 as Verify,Sign2 as Sign,Hmac2 as Hmac,Hash2 as Hash,DiffieHellmanGroup2 as DiffieHellmanGroup,DiffieHellman2 as DiffieHellman,Decipheriv2 as Decipheriv,Decipher2 as Decipher,DEFAULT_ENCODING,Cipheriv2 as Cipheriv,Cipher2 as Cipher};", + "// list of available flags\nmodule.exports =\n{\n // allow (original) unsafe behavior of merge all properties, including ones like `__proto__`\n allowDangerousObjectKeys: 'deeply:allowDangerousObjectKeys:' + Math.random(),\n\n // to prevent (reduce chance of) accidental leaking of the global variables into runtime flags\n useCustomAdapters: 'deeply:useCustomAdapters:' + Math.random(),\n useCustomTypeOf: 'deeply:useCustomTypeOf:' + Math.random()\n};\n", + "// Public API\nmodule.exports = arrayAdapter;\n\n/**\n * Adapter to merge arrays\n *\n * Note: resets target value\n *\n * @param {array} to - target array to update\n * @param {array} from - array to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {array} - modified target object\n */\nfunction arrayAdapter(to, from, merge)\n{\n // reset target array\n to.splice(0);\n\n // transfer actual values\n from.reduce(function(target, value, index)\n {\n // use `undefined` as always-override value\n target[index] = merge(undefined, value);\n\n return target;\n }, to);\n\n return to;\n}\n", + "// Public API\nmodule.exports = dateAdapter;\n\n/**\n * Custom `initialValue` method\n * used when default approach of creating\n * initial value for the target object\n * isn't good enough\n *\n * @returns {object.Date} - new Date object\n */\nmodule.exports.initialValue = function()\n{\n return new Date();\n};\n\n/**\n * Adapter to merge Date objects\n *\n * @param {object.Date} to - target object to update\n * @param {object.Date} from - Date object to clone\n * @returns {object.Date} - modified target object\n */\nfunction dateAdapter(to, from)\n{\n // transfer actual value\n to.setTime(from.valueOf());\n\n return to;\n}\n", + "var behaviors = require('../flags.js');\n\n// Public API\nmodule.exports = reduceObject;\n\n/**\n * Iterates over own properties of the provided object\n * and copies then over to the target object.\n * While recursively running merge on the elements.\n *\n * @param {mixed} target - target object to modify\n * @param {mixed} source - source object to read from\n * @param {function} merge - iterator to merge sub elements\n * @returns {mixed} - modified target object\n */\nfunction reduceObject(target, source, merge)\n{\n var context = this;\n\n // clone exposed properties\n Object.keys(source).reduce(function(acc, key)\n {\n if (context.allowDangerousObjectKeys !== behaviors.allowDangerousObjectKeys && isUnsafeKey(key))\n {\n return acc;\n }\n\n acc[key] = merge(acc[key], source[key]);\n\n return acc;\n }, target);\n\n return target;\n}\n\n\n/**\n * Checks if provide key is unsafe to use within object\n *\n * @param {string} key - object key to check against\n * @returns {boolean} - `true` if key is unsafe to use (e.g. __proto__), `false` otherwise\n */\nfunction isUnsafeKey(key) {\n return ['__proto__'].indexOf(key) != -1;\n}\n", + "var reduceObject = require('../lib/reduce_object.js');\n\n// Public API\nmodule.exports = objectAdapter;\n\n/**\n * Adapter to merge regular (user land) objects\n *\n * Note: overrides target value\n * if it's not a regular object\n *\n * @param {object} to - target object to update\n * @param {object} from - object to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {object} - modified target object\n */\nfunction objectAdapter(to, from, merge)\n{\n // transfer source values\n // pass context down the line, to allow behavior overrides\n reduceObject.call(this, to, from, merge);\n\n return to;\n}\n", + "// Public API\nmodule.exports = arraysCombineAdapter;\n\n/**\n * Adapter to merge arrays\n * by combining/merging it's elements\n *\n * @param {array} to - target array to update\n * @param {array} from - array to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {array} - modified target object\n */\nfunction arraysCombineAdapter(to, from, merge)\n{\n // transfer actual values\n from.reduce(function(target, value, index)\n {\n // combine elements index to index\n target[index] = merge(target[index], value);\n\n return target;\n }, to);\n\n return to;\n}\n", + "// Public API\nmodule.exports = arraysAppendAdapter;\n\n/**\n * Adapter to merge arrays\n * by appending cloned elements\n * of the second array to the first\n *\n * @param {array} to - target array to update\n * @param {array} from - array to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {array} - modified target object\n */\nfunction arraysAppendAdapter(to, from, merge)\n{\n // transfer actual values\n from.reduce(function(target, value)\n {\n target.push(merge(undefined, value));\n\n return target;\n }, to);\n\n return to;\n}\n", + "// Public API\nmodule.exports = arraysAppendUniqueAdapter;\n\n/**\n * Adapter to merge arrays\n * by appending cloned elements\n * of the second array to the first\n * unless they already exist in the target array\n *\n * @param {array} to - target array to update\n * @param {array} from - array to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {array} - modified target object\n */\nfunction arraysAppendUniqueAdapter(to, from, merge)\n{\n // transfer actual values\n from.reduce(function(target, value)\n {\n // append only if new element isn't present yet\n if (target.indexOf(value) == -1)\n {\n target.push(merge(undefined, value));\n }\n\n return target;\n }, to);\n\n return to;\n}\n", + "// Public API\nmodule.exports = fulcon;\n\n/**\n * Creates wrapper function with the same signature\n *\n * @param {function} source - function to clone\n * @returns {function} - wrapped function\n */\nfunction fulcon(source)\n{\n // makes \"clone\" look and smell the same\n // strip `bound ` prefix from the function name\n return Function('source', 'return function ' + source.name.replace(/^bound /, '') + '(' + Array(source.length + 1).join('a').split('').join(',') + '){ return source.apply(this, arguments); }')(source);\n}\n", + "var cloneFunction = require('fulcon')\n , reduceObject = require('../lib/reduce_object.js')\n ;\n\n// Public API\nmodule.exports = functionsCloneAdapter;\n\n/**\n * Clones provided source function and replaces\n * target function with the clone.\n * Also cloning the prototype tree.\n *\n * @param {function} to - target function to ignore\n * @param {function} from - function to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {function} - cloned source function\n */\nfunction functionsCloneAdapter(to, from, merge)\n{\n var copy = cloneFunction(from);\n\n // to fully stand up to Ludicrous name\n // let's clone prototype chain\n copy.prototype = merge(undefined, from.prototype);\n\n // duplicate function's properties\n reduceObject(copy, from, merge);\n\n return copy;\n}\n", + "var cloneFunction = require('fulcon')\n , reduceObject = require('../lib/reduce_object.js')\n ;\n\n// Public API\nmodule.exports = functionsExtendAdapter;\n\n/**\n * Clones provided source function and replaces\n * target function with the clone.\n * While keeping original prototype in the prototype chain.\n *\n * @param {function} to - target function to ignore\n * @param {function} from - function to clone\n * @param {function} merge - iterator to merge sub elements\n * @returns {function} - cloned source function\n */\nfunction functionsExtendAdapter(to, from, merge)\n{\n var copy = cloneFunction(from);\n\n // keep from.prototype in the prototype chain\n copy.prototype = from.prototype;\n\n // duplicate function's properties\n reduceObject(copy, from, merge);\n\n return copy;\n}\n", + "// collect available adapters\nmodule.exports =\n{\n 'array' : require('./adapters/array.js'),\n 'date' : require('./adapters/date.js'),\n 'object': require('./adapters/object.js'),\n\n // extra adapters\n arraysCombine : require('./extra/arrays_combine.js'),\n arraysAppend : require('./extra/arrays_append.js'),\n arraysAppendUnique: require('./extra/arrays_append_unique.js'),\n functionsClone : require('./extra/functions_clone.js'),\n functionsExtend : require('./extra/functions_extend.js')\n};\n", + "'use strict';\n\n// Public API\nmodule.exports = preciseTypeOf;\n\n/**\n * Detects real type of the objects like 'Array()', `new Number(1)`, `new Boolean(true)`, etc\n *\n * @param {mixed} obj - object to get type of\n * @param {object} [options] - object to get type of\n * @returns {string} precise type\n */\nfunction preciseTypeOf(obj, options)\n{\n var type, stamp = Object.prototype.toString.call(obj);\n\n options = options || {};\n\n if (!type && obj === undefined) type = 'undefined';\n if (!type && obj === null) type = 'null';\n\n if (!type && obj.constructor && typeof obj.constructor.isBuffer == 'function' && obj.constructor.isBuffer(obj)) type = 'buffer';\n\n if (!type && typeof window == 'object' && obj === window) type = 'global';\n if (!type && typeof global == 'object' && obj === global) type = 'global';\n\n if (!type && typeof obj == 'number' && isNaN(obj)) type = 'nan';\n if (!type && typeof obj == 'object' && stamp == '[object Number]' && isNaN(obj)) type = 'nan';\n\n if (!type && typeof obj == 'object' && stamp.substr(-6) == 'Event]') type = 'event';\n if (!type && stamp.substr(0, 12) == '[object HTML') type = 'html';\n if (!type && stamp.substr(0, 12) == '[object Node') type = 'html';\n\n // last resort\n if (!type) type = stamp.match(/\\[object\\s*([^\\]]+)\\]/)[1].toLowerCase();\n\n // be even more precise by reporting \"instance of\" names\n // Note: only check objects that were created by constructors\n if (type == 'object' && options.pojoOnly && obj.constructor) {\n // some constructors don't have names\n type = obj.constructor.name || 'unknown';\n\n // preserve `object` response for POJOs\n if (type == 'Object') type = 'object';\n }\n\n return type;\n}\n", + "var preciseTypeOf = require('precise-typeof')\n , adapters = require('./adapters.js')\n , behaviors = require('./flags.js')\n ;\n\n// Public API\nmodule.exports = merge;\n\n/**\n * Merges provided values, utilizing available adapters\n * if no adapter found, reference to the same object\n * will be returned, considering it as primitive value\n *\n * @param {mixed} to - value to merge into\n * @param {mixed} from - value to merge\n * @returns {mixed} - result of the merge\n */\nfunction merge(to, from)\n{\n // if no suitable adapters found\n // just return overriding value\n var result = from\n , typeOf = getTypeOfAdapter.call(this)\n , type = typeOf(from)\n , adapter = getMergeByTypeAdapter.call(this, type)\n ;\n\n // if target object isn't the same type as the source object,\n // then override with new instance of the same type\n if (typeOf(to) != type)\n {\n to = getInitialValue(type, adapter);\n }\n\n // bind merge callback to the current context\n // so not to loose runtime flags\n result = adapter.call(this, to, from, merge.bind(this));\n\n return result;\n}\n\n/**\n * Returns typeof adapter, either default one or custom one if provided\n *\n * @returns {function} - typeof custom adapter or default one\n */\nfunction getTypeOfAdapter()\n{\n var adapter = preciseTypeOf;\n\n // only if usage of custom adapters is authorized\n // to prevent global context leaking in\n if (this.useCustomTypeOf === behaviors.useCustomTypeOf)\n {\n adapter = this['typeof'];\n }\n\n return adapter;\n}\n\n/**\n * Returns merge adapter for the requested type\n * either default one or custom one if provided\n *\n * @param {string} type - hook type to look for\n * @returns {function} - merge adapter or pass-thru function, if not adapter found\n */\nfunction getMergeByTypeAdapter(type)\n{\n var adapter = adapters[type] || passThru;\n\n // only if usage of custom adapters is authorized\n // to prevent global context leaking in\n if (this.useCustomAdapters === behaviors.useCustomAdapters\n && typeof this[type] == 'function'\n )\n {\n adapter = this[type];\n }\n\n return adapter;\n}\n\n/**\n * Creates initial value for the provided type\n *\n * @param {string} type - type to create new value of\n * @param {function} adapter - adapter function with custom `initialValue` method\n * @returns {mixed} - new value of the requested type\n */\nfunction getInitialValue(type, adapter)\n{\n var value\n // should be either `window` or `global`\n , glob = typeof window == 'object' ? window : global\n // capitalize the first letter to make object constructor\n , objectType = type[0].toUpperCase() + type.substr(1)\n ;\n\n if (typeof adapter.initialValue == 'function')\n {\n value = adapter.initialValue();\n }\n else if (objectType in glob)\n {\n // create new type object and get it's actual value\n // e.g. `new String().valueOf() // -> ''`\n value = new glob[objectType]().valueOf();\n }\n\n // set initial value as `undefined` if no initialValue method found\n return value;\n}\n\n/**\n * Returns provided `from` value\n *\n * @param {mixed} to - value to ignore\n * @param {mixed} from - value to pass back\n * @returns {mixed} - passed `from` value\n */\nfunction passThru(to, from)\n{\n return from;\n}\n", + "var merge = require('./merge.js');\n\n// Public API\nmodule.exports = mutable;\n\n/**\n * Deeply merges properties of the provided objects, into the first object.\n *\n * @param {...mixed} value - values to merge\n * @returns {mixed} first value with merged in properties from other values\n */\nfunction mutable(/* a[, b[, ...]] */)\n{\n var args = Array.prototype.slice.call(arguments)\n , result = args.shift()\n ;\n\n while (args.length)\n {\n result = merge.call(this, result, args.shift());\n }\n\n return result;\n}\n", + "var mutable = require('./mutable.js');\n\n// Public API\nmodule.exports = immutable;\n\n/**\n * Creates untangled copy (deep clone) of the provided value,\n * and deeply merges rest of the provided values.\n *\n * @param {...mixed} value - value(s) to merge/clone\n * @returns {mixed} - deep merged copy of all the provided values\n */\nfunction immutable(/* a[, b[, ...]] */)\n{\n // invoke mutable with new object as first argument\n var args = Array.prototype.slice.call(arguments, 0);\n // use `undefined` as always-override value\n return mutable.apply(this, [undefined].concat(args));\n}\n", + "var behaviors = require('./flags.js')\n , adapters = require('./adapters.js')\n , mutable = require('./mutable.js')\n , immutable = require('./immutable.js')\n ;\n\n// Public API\n// keep immutable behavior as default\nmodule.exports = immutable;\n// expose both variants\nmodule.exports.mutable = mutable;\nmodule.exports.immutable = immutable;\n// expose behavior flags\nmodule.exports.behaviors = behaviors;\n// expose available adapters\nmodule.exports.adapters = adapters;\n", + "/*global define:false */\n/**\n * Copyright 2012-2017 Craig Campbell\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 * Mousetrap is a simple keyboard shortcut library for Javascript with\n * no external dependencies\n *\n * @version 1.6.5\n * @url craig.is/killing/mice\n */\n(function(window, document, undefined) {\n\n // Check if mousetrap is used inside browser, if not, return\n if (!window) {\n return;\n }\n\n /**\n * mapping of special keycodes to their corresponding keys\n *\n * everything in this dictionary cannot use keypress events\n * so it has to be here to map to the correct keycodes for\n * keyup/keydown events\n *\n * @type {Object}\n */\n var _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\n /**\n * mapping for special characters so they can support\n *\n * this dictionary is only used incase you want to bind a\n * keyup or keydown event to one of these keys\n *\n * @type {Object}\n */\n var _KEYCODE_MAP = {\n 106: '*',\n 107: '+',\n 109: '-',\n 110: '.',\n 111 : '/',\n 186: ';',\n 187: '=',\n 188: ',',\n 189: '-',\n 190: '.',\n 191: '/',\n 192: '`',\n 219: '[',\n 220: '\\\\',\n 221: ']',\n 222: '\\''\n };\n\n /**\n * this is a mapping of keys that require shift on a US keypad\n * back to the non shift equivelents\n *\n * this is so you can use keyup events with these keys\n *\n * note that this will only work reliably on US keyboards\n *\n * @type {Object}\n */\n var _SHIFT_MAP = {\n '~': '`',\n '!': '1',\n '@': '2',\n '#': '3',\n '$': '4',\n '%': '5',\n '^': '6',\n '&': '7',\n '*': '8',\n '(': '9',\n ')': '0',\n '_': '-',\n '+': '=',\n ':': ';',\n '\\\"': '\\'',\n '<': ',',\n '>': '.',\n '?': '/',\n '|': '\\\\'\n };\n\n /**\n * this is a list of special strings you can use to map\n * to modifier keys when you specify your keyboard shortcuts\n *\n * @type {Object}\n */\n var _SPECIAL_ALIASES = {\n 'option': 'alt',\n 'command': 'meta',\n 'return': 'enter',\n 'escape': 'esc',\n 'plus': '+',\n 'mod': /Mac|iPod|iPhone|iPad/.test(navigator.platform) ? 'meta' : 'ctrl'\n };\n\n /**\n * variable to store the flipped version of _MAP from above\n * needed to check if we should use keypress or not when no action\n * is specified\n *\n * @type {Object|undefined}\n */\n var _REVERSE_MAP;\n\n /**\n * loop through the f keys, f1 to f19 and add them to the map\n * programatically\n */\n for (var i = 1; i < 20; ++i) {\n _MAP[111 + i] = 'f' + i;\n }\n\n /**\n * loop through to map numbers on the numeric keypad\n */\n for (i = 0; i <= 9; ++i) {\n\n // This needs to use a string cause otherwise since 0 is falsey\n // mousetrap will never fire for numpad 0 pressed as part of a keydown\n // event.\n //\n // @see https://github.com/ccampbell/mousetrap/pull/258\n _MAP[i + 96] = i.toString();\n }\n\n /**\n * cross browser add event method\n *\n * @param {Element|HTMLDocument} object\n * @param {string} type\n * @param {Function} callback\n * @returns void\n */\n function _addEvent(object, type, callback) {\n if (object.addEventListener) {\n object.addEventListener(type, callback, false);\n return;\n }\n\n object.attachEvent('on' + type, callback);\n }\n\n /**\n * takes the event and returns the key character\n *\n * @param {Event} e\n * @return {string}\n */\n function _characterFromEvent(e) {\n\n // for keypress events we should return the character as is\n if (e.type == 'keypress') {\n var character = String.fromCharCode(e.which);\n\n // if the shift key is not pressed then it is safe to assume\n // that we want the character to be lowercase. this means if\n // you accidentally have caps lock on then your key bindings\n // will continue to work\n //\n // the only side effect that might not be desired is if you\n // bind something like 'A' cause you want to trigger an\n // event when capital A is pressed caps lock will no longer\n // trigger the event. shift+a will though.\n if (!e.shiftKey) {\n character = character.toLowerCase();\n }\n\n return character;\n }\n\n // for non keypress events the special maps are needed\n if (_MAP[e.which]) {\n return _MAP[e.which];\n }\n\n if (_KEYCODE_MAP[e.which]) {\n return _KEYCODE_MAP[e.which];\n }\n\n // if it is not in the special map\n\n // with keydown and keyup events the character seems to always\n // come in as an uppercase character whether you are pressing shift\n // or not. we should make sure it is always lowercase for comparisons\n return String.fromCharCode(e.which).toLowerCase();\n }\n\n /**\n * checks if two arrays are equal\n *\n * @param {Array} modifiers1\n * @param {Array} modifiers2\n * @returns {boolean}\n */\n function _modifiersMatch(modifiers1, modifiers2) {\n return modifiers1.sort().join(',') === modifiers2.sort().join(',');\n }\n\n /**\n * takes a key event and figures out what the modifiers are\n *\n * @param {Event} e\n * @returns {Array}\n */\n function _eventModifiers(e) {\n var modifiers = [];\n\n if (e.shiftKey) {\n modifiers.push('shift');\n }\n\n if (e.altKey) {\n modifiers.push('alt');\n }\n\n if (e.ctrlKey) {\n modifiers.push('ctrl');\n }\n\n if (e.metaKey) {\n modifiers.push('meta');\n }\n\n return modifiers;\n }\n\n /**\n * prevents default for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _preventDefault(e) {\n if (e.preventDefault) {\n e.preventDefault();\n return;\n }\n\n e.returnValue = false;\n }\n\n /**\n * stops propogation for this event\n *\n * @param {Event} e\n * @returns void\n */\n function _stopPropagation(e) {\n if (e.stopPropagation) {\n e.stopPropagation();\n return;\n }\n\n e.cancelBubble = true;\n }\n\n /**\n * determines if the keycode specified is a modifier key or not\n *\n * @param {string} key\n * @returns {boolean}\n */\n function _isModifier(key) {\n return key == 'shift' || key == 'ctrl' || key == 'alt' || key == 'meta';\n }\n\n /**\n * reverses the map lookup so that we can look for specific keys\n * to see what can and can't use keypress\n *\n * @return {Object}\n */\n function _getReverseMap() {\n if (!_REVERSE_MAP) {\n _REVERSE_MAP = {};\n for (var key in _MAP) {\n\n // pull out the numeric keypad from here cause keypress should\n // be able to detect the keys from the character\n if (key > 95 && key < 112) {\n continue;\n }\n\n if (_MAP.hasOwnProperty(key)) {\n _REVERSE_MAP[_MAP[key]] = key;\n }\n }\n }\n return _REVERSE_MAP;\n }\n\n /**\n * picks the best action based on the key combination\n *\n * @param {string} key - character for key\n * @param {Array} modifiers\n * @param {string=} action passed in\n */\n function _pickBestAction(key, modifiers, action) {\n\n // if no action was picked in we should try to pick the one\n // that we think would work best for this key\n if (!action) {\n action = _getReverseMap()[key] ? 'keydown' : 'keypress';\n }\n\n // modifier keys don't work as expected with keypress,\n // switch to keydown\n if (action == 'keypress' && modifiers.length) {\n action = 'keydown';\n }\n\n return action;\n }\n\n /**\n * Converts from a string key combination to an array\n *\n * @param {string} combination like \"command+shift+l\"\n * @return {Array}\n */\n function _keysFromString(combination) {\n if (combination === '+') {\n return ['+'];\n }\n\n combination = combination.replace(/\\+{2}/g, '+plus');\n return combination.split('+');\n }\n\n /**\n * Gets info for a specific key combination\n *\n * @param {string} combination key combination (\"command+s\" or \"a\" or \"*\")\n * @param {string=} action\n * @returns {Object}\n */\n function _getKeyInfo(combination, action) {\n var keys;\n var key;\n var i;\n var modifiers = [];\n\n // take the keys from this pattern and figure out what the actual\n // pattern is all about\n keys = _keysFromString(combination);\n\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n\n // normalize key names\n if (_SPECIAL_ALIASES[key]) {\n key = _SPECIAL_ALIASES[key];\n }\n\n // if this is not a keypress event then we should\n // be smart about using shift keys\n // this will only work for US keyboards however\n if (action && action != 'keypress' && _SHIFT_MAP[key]) {\n key = _SHIFT_MAP[key];\n modifiers.push('shift');\n }\n\n // if this key is a modifier then add it to the list of modifiers\n if (_isModifier(key)) {\n modifiers.push(key);\n }\n }\n\n // depending on what the key combination is\n // we will try to pick the best event for it\n action = _pickBestAction(key, modifiers, action);\n\n return {\n key: key,\n modifiers: modifiers,\n action: action\n };\n }\n\n function _belongsTo(element, ancestor) {\n if (element === null || element === document) {\n return false;\n }\n\n if (element === ancestor) {\n return true;\n }\n\n return _belongsTo(element.parentNode, ancestor);\n }\n\n function Mousetrap(targetElement) {\n var self = this;\n\n targetElement = targetElement || document;\n\n if (!(self instanceof Mousetrap)) {\n return new Mousetrap(targetElement);\n }\n\n /**\n * element to attach key events to\n *\n * @type {Element}\n */\n self.target = targetElement;\n\n /**\n * a list of all the callbacks setup via Mousetrap.bind()\n *\n * @type {Object}\n */\n self._callbacks = {};\n\n /**\n * direct map of string combinations to callbacks used for trigger()\n *\n * @type {Object}\n */\n self._directMap = {};\n\n /**\n * keeps track of what level each sequence is at since multiple\n * sequences can start out with the same sequence\n *\n * @type {Object}\n */\n var _sequenceLevels = {};\n\n /**\n * variable to store the setTimeout call\n *\n * @type {null|number}\n */\n var _resetTimer;\n\n /**\n * temporary state where we will ignore the next keyup\n *\n * @type {boolean|string}\n */\n var _ignoreNextKeyup = false;\n\n /**\n * temporary state where we will ignore the next keypress\n *\n * @type {boolean}\n */\n var _ignoreNextKeypress = false;\n\n /**\n * are we currently inside of a sequence?\n * type of action (\"keyup\" or \"keydown\" or \"keypress\") or false\n *\n * @type {boolean|string}\n */\n var _nextExpectedAction = false;\n\n /**\n * resets all sequence counters except for the ones passed in\n *\n * @param {Object} doNotReset\n * @returns void\n */\n function _resetSequences(doNotReset) {\n doNotReset = doNotReset || {};\n\n var activeSequences = false,\n key;\n\n for (key in _sequenceLevels) {\n if (doNotReset[key]) {\n activeSequences = true;\n continue;\n }\n _sequenceLevels[key] = 0;\n }\n\n if (!activeSequences) {\n _nextExpectedAction = false;\n }\n }\n\n /**\n * finds all callbacks that match based on the keycode, modifiers,\n * and action\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event|Object} e\n * @param {string=} sequenceName - name of the sequence we are looking for\n * @param {string=} combination\n * @param {number=} level\n * @returns {Array}\n */\n function _getMatches(character, modifiers, e, sequenceName, combination, level) {\n var i;\n var callback;\n var matches = [];\n var action = e.type;\n\n // if there are no events related to this keycode\n if (!self._callbacks[character]) {\n return [];\n }\n\n // if a modifier key is coming up on its own we should allow it\n if (action == 'keyup' && _isModifier(character)) {\n modifiers = [character];\n }\n\n // loop through all callbacks for the key that was pressed\n // and see if any of them match\n for (i = 0; i < self._callbacks[character].length; ++i) {\n callback = self._callbacks[character][i];\n\n // if a sequence name is not specified, but this is a sequence at\n // the wrong level then move onto the next match\n if (!sequenceName && callback.seq && _sequenceLevels[callback.seq] != callback.level) {\n continue;\n }\n\n // if the action we are looking for doesn't match the action we got\n // then we should keep going\n if (action != callback.action) {\n continue;\n }\n\n // if this is a keypress event and the meta key and control key\n // are not pressed that means that we need to only look at the\n // character, otherwise check the modifiers as well\n //\n // chrome will not fire a keypress if meta or control is down\n // safari will fire a keypress if meta or meta+shift is down\n // firefox will fire a keypress if meta or control is down\n if ((action == 'keypress' && !e.metaKey && !e.ctrlKey) || _modifiersMatch(modifiers, callback.modifiers)) {\n\n // when you bind a combination or sequence a second time it\n // should overwrite the first one. if a sequenceName or\n // combination is specified in this call it does just that\n //\n // @todo make deleting its own method?\n var deleteCombo = !sequenceName && callback.combo == combination;\n var deleteSequence = sequenceName && callback.seq == sequenceName && callback.level == level;\n if (deleteCombo || deleteSequence) {\n self._callbacks[character].splice(i, 1);\n }\n\n matches.push(callback);\n }\n }\n\n return matches;\n }\n\n /**\n * actually calls the callback function\n *\n * if your callback function returns false this will use the jquery\n * convention - prevent default and stop propogation on the event\n *\n * @param {Function} callback\n * @param {Event} e\n * @returns void\n */\n function _fireCallback(callback, e, combo, sequence) {\n\n // if this event should not happen stop here\n if (self.stopCallback(e, e.target || e.srcElement, combo, sequence)) {\n return;\n }\n\n if (callback(e, combo) === false) {\n _preventDefault(e);\n _stopPropagation(e);\n }\n }\n\n /**\n * handles a character key event\n *\n * @param {string} character\n * @param {Array} modifiers\n * @param {Event} e\n * @returns void\n */\n self._handleKey = function(character, modifiers, e) {\n var callbacks = _getMatches(character, modifiers, e);\n var i;\n var doNotReset = {};\n var maxLevel = 0;\n var processedSequenceCallback = false;\n\n // Calculate the maxLevel for sequences so we can only execute the longest callback sequence\n for (i = 0; i < callbacks.length; ++i) {\n if (callbacks[i].seq) {\n maxLevel = Math.max(maxLevel, callbacks[i].level);\n }\n }\n\n // loop through matching callbacks for this key event\n for (i = 0; i < callbacks.length; ++i) {\n\n // fire for all sequence callbacks\n // this is because if for example you have multiple sequences\n // bound such as \"g i\" and \"g t\" they both need to fire the\n // callback for matching g cause otherwise you can only ever\n // match the first one\n if (callbacks[i].seq) {\n\n // only fire callbacks for the maxLevel to prevent\n // subsequences from also firing\n //\n // for example 'a option b' should not cause 'option b' to fire\n // even though 'option b' is part of the other sequence\n //\n // any sequences that do not match here will be discarded\n // below by the _resetSequences call\n if (callbacks[i].level != maxLevel) {\n continue;\n }\n\n processedSequenceCallback = true;\n\n // keep a list of which sequences were matches for later\n doNotReset[callbacks[i].seq] = 1;\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo, callbacks[i].seq);\n continue;\n }\n\n // if there were no sequence matches but we are still here\n // that means this is a regular match so we should fire that\n if (!processedSequenceCallback) {\n _fireCallback(callbacks[i].callback, e, callbacks[i].combo);\n }\n }\n\n // if the key you pressed matches the type of sequence without\n // being a modifier (ie \"keyup\" or \"keypress\") then we should\n // reset all sequences that were not matched by this event\n //\n // this is so, for example, if you have the sequence \"h a t\" and you\n // type \"h e a r t\" it does not match. in this case the \"e\" will\n // cause the sequence to reset\n //\n // modifier keys are ignored because you can have a sequence\n // that contains modifiers such as \"enter ctrl+space\" and in most\n // cases the modifier key will be pressed before the next key\n //\n // also if you have a sequence such as \"ctrl+b a\" then pressing the\n // \"b\" key will trigger a \"keypress\" and a \"keydown\"\n //\n // the \"keydown\" is expected when there is a modifier, but the\n // \"keypress\" ends up matching the _nextExpectedAction since it occurs\n // after and that causes the sequence to reset\n //\n // we ignore keypresses in a sequence that directly follow a keydown\n // for the same character\n var ignoreThisKeypress = e.type == 'keypress' && _ignoreNextKeypress;\n if (e.type == _nextExpectedAction && !_isModifier(character) && !ignoreThisKeypress) {\n _resetSequences(doNotReset);\n }\n\n _ignoreNextKeypress = processedSequenceCallback && e.type == 'keydown';\n };\n\n /**\n * handles a keydown event\n *\n * @param {Event} e\n * @returns void\n */\n function _handleKeyEvent(e) {\n\n // normalize e.which for key events\n // @see http://stackoverflow.com/questions/4285627/javascript-keycode-vs-charcode-utter-confusion\n if (typeof e.which !== 'number') {\n e.which = e.keyCode;\n }\n\n var character = _characterFromEvent(e);\n\n // no character found then stop\n if (!character) {\n return;\n }\n\n // need to use === for the character check because the character can be 0\n if (e.type == 'keyup' && _ignoreNextKeyup === character) {\n _ignoreNextKeyup = false;\n return;\n }\n\n self.handleKey(character, _eventModifiers(e), e);\n }\n\n /**\n * called to set a 1 second timeout on the specified sequence\n *\n * this is so after each key press in the sequence you have 1 second\n * to press the next key before you have to start over\n *\n * @returns void\n */\n function _resetSequenceTimer() {\n clearTimeout(_resetTimer);\n _resetTimer = setTimeout(_resetSequences, 1000);\n }\n\n /**\n * binds a key sequence to an event\n *\n * @param {string} combo - combo specified in bind call\n * @param {Array} keys\n * @param {Function} callback\n * @param {string=} action\n * @returns void\n */\n function _bindSequence(combo, keys, callback, action) {\n\n // start off by adding a sequence level record for this combination\n // and setting the level to 0\n _sequenceLevels[combo] = 0;\n\n /**\n * callback to increase the sequence level for this sequence and reset\n * all other sequences that were active\n *\n * @param {string} nextAction\n * @returns {Function}\n */\n function _increaseSequence(nextAction) {\n return function() {\n _nextExpectedAction = nextAction;\n ++_sequenceLevels[combo];\n _resetSequenceTimer();\n };\n }\n\n /**\n * wraps the specified callback inside of another function in order\n * to reset all sequence counters as soon as this sequence is done\n *\n * @param {Event} e\n * @returns void\n */\n function _callbackAndReset(e) {\n _fireCallback(callback, e, combo);\n\n // we should ignore the next key up if the action is key down\n // or keypress. this is so if you finish a sequence and\n // release the key the final key will not trigger a keyup\n if (action !== 'keyup') {\n _ignoreNextKeyup = _characterFromEvent(e);\n }\n\n // weird race condition if a sequence ends with the key\n // another sequence begins with\n setTimeout(_resetSequences, 10);\n }\n\n // loop through keys one at a time and bind the appropriate callback\n // function. for any key leading up to the final one it should\n // increase the sequence. after the final, it should reset all sequences\n //\n // if an action is specified in the original bind call then that will\n // be used throughout. otherwise we will pass the action that the\n // next key in the sequence should match. this allows a sequence\n // to mix and match keypress and keydown events depending on which\n // ones are better suited to the key provided\n for (var i = 0; i < keys.length; ++i) {\n var isFinal = i + 1 === keys.length;\n var wrappedCallback = isFinal ? _callbackAndReset : _increaseSequence(action || _getKeyInfo(keys[i + 1]).action);\n _bindSingle(keys[i], wrappedCallback, action, combo, i);\n }\n }\n\n /**\n * binds a single keyboard combination\n *\n * @param {string} combination\n * @param {Function} callback\n * @param {string=} action\n * @param {string=} sequenceName - name of sequence if part of sequence\n * @param {number=} level - what part of the sequence the command is\n * @returns void\n */\n function _bindSingle(combination, callback, action, sequenceName, level) {\n\n // store a direct mapped reference for use with Mousetrap.trigger\n self._directMap[combination + ':' + action] = callback;\n\n // make sure multiple spaces in a row become a single space\n combination = combination.replace(/\\s+/g, ' ');\n\n var sequence = combination.split(' ');\n var info;\n\n // if this pattern is a sequence of keys then run through this method\n // to reprocess each pattern one key at a time\n if (sequence.length > 1) {\n _bindSequence(combination, sequence, callback, action);\n return;\n }\n\n info = _getKeyInfo(combination, action);\n\n // make sure to initialize array if this is the first time\n // a callback is added for this key\n self._callbacks[info.key] = self._callbacks[info.key] || [];\n\n // remove an existing match if there is one\n _getMatches(info.key, info.modifiers, {type: info.action}, sequenceName, combination, level);\n\n // add this call back to the array\n // if it is a sequence put it at the beginning\n // if not put it at the end\n //\n // this is important because the way these are processed expects\n // the sequence ones to come first\n self._callbacks[info.key][sequenceName ? 'unshift' : 'push']({\n callback: callback,\n modifiers: info.modifiers,\n action: info.action,\n seq: sequenceName,\n level: level,\n combo: combination\n });\n }\n\n /**\n * binds multiple combinations to the same callback\n *\n * @param {Array} combinations\n * @param {Function} callback\n * @param {string|undefined} action\n * @returns void\n */\n self._bindMultiple = function(combinations, callback, action) {\n for (var i = 0; i < combinations.length; ++i) {\n _bindSingle(combinations[i], callback, action);\n }\n };\n\n // start!\n _addEvent(targetElement, 'keypress', _handleKeyEvent);\n _addEvent(targetElement, 'keydown', _handleKeyEvent);\n _addEvent(targetElement, 'keyup', _handleKeyEvent);\n }\n\n /**\n * binds an event to mousetrap\n *\n * can be a single key, a combination of keys separated with +,\n * an array of keys, or a sequence of keys separated by spaces\n *\n * be sure to list the modifier keys first to make sure that the\n * correct key ends up getting bound (the last key in the pattern)\n *\n * @param {string|Array} keys\n * @param {Function} callback\n * @param {string=} action - 'keypress', 'keydown', or 'keyup'\n * @returns void\n */\n Mousetrap.prototype.bind = function(keys, callback, action) {\n var self = this;\n keys = keys instanceof Array ? keys : [keys];\n self._bindMultiple.call(self, keys, callback, action);\n return self;\n };\n\n /**\n * unbinds an event to mousetrap\n *\n * the unbinding sets the callback function of the specified key combo\n * to an empty function and deletes the corresponding key in the\n * _directMap dict.\n *\n * TODO: actually remove this from the _callbacks dictionary instead\n * of binding an empty function\n *\n * the keycombo+action has to be exactly the same as\n * it was defined in the bind method\n *\n * @param {string|Array} keys\n * @param {string} action\n * @returns void\n */\n Mousetrap.prototype.unbind = function(keys, action) {\n var self = this;\n return self.bind.call(self, keys, function() {}, action);\n };\n\n /**\n * triggers an event that has already been bound\n *\n * @param {string} keys\n * @param {string=} action\n * @returns void\n */\n Mousetrap.prototype.trigger = function(keys, action) {\n var self = this;\n if (self._directMap[keys + ':' + action]) {\n self._directMap[keys + ':' + action]({}, keys);\n }\n return self;\n };\n\n /**\n * resets the library back to its initial state. this is useful\n * if you want to clear out the current keyboard shortcuts and bind\n * new ones - for example if you switch to another page\n *\n * @returns void\n */\n Mousetrap.prototype.reset = function() {\n var self = this;\n self._callbacks = {};\n self._directMap = {};\n return self;\n };\n\n /**\n * should we stop this event before firing off callbacks\n *\n * @param {Event} e\n * @param {Element} element\n * @return {boolean}\n */\n Mousetrap.prototype.stopCallback = function(e, element) {\n var self = this;\n\n // if the element has the class \"mousetrap\" then no need to stop\n if ((' ' + element.className + ' ').indexOf(' mousetrap ') > -1) {\n return false;\n }\n\n if (_belongsTo(element, self.target)) {\n return false;\n }\n\n // Events originating from a shadow DOM are re-targetted and `e.target` is the shadow host,\n // not the initial event target in the shadow tree. Note that not all events cross the\n // shadow boundary.\n // For shadow trees with `mode: 'open'`, the initial event target is the first element in\n // the event’s composed path. For shadow trees with `mode: 'closed'`, the initial event\n // target cannot be obtained.\n if ('composedPath' in e && typeof e.composedPath === 'function') {\n // For open shadow trees, update `element` so that the following check works.\n var initialEventTarget = e.composedPath()[0];\n if (initialEventTarget !== e.target) {\n element = initialEventTarget;\n }\n }\n\n // stop for input, select, and textarea\n return element.tagName == 'INPUT' || element.tagName == 'SELECT' || element.tagName == 'TEXTAREA' || element.isContentEditable;\n };\n\n /**\n * exposes _handleKey publicly so it can be overwritten by extensions\n */\n Mousetrap.prototype.handleKey = function() {\n var self = this;\n return self._handleKey.apply(self, arguments);\n };\n\n /**\n * allow custom key mappings\n */\n Mousetrap.addKeycodes = function(object) {\n for (var key in object) {\n if (object.hasOwnProperty(key)) {\n _MAP[key] = object[key];\n }\n }\n _REVERSE_MAP = null;\n };\n\n /**\n * Init the global mousetrap functions\n *\n * This method is needed to allow the global mousetrap functions to work\n * now that mousetrap is a constructor function.\n */\n Mousetrap.init = function() {\n var documentMousetrap = Mousetrap(document);\n for (var method in documentMousetrap) {\n if (method.charAt(0) !== '_') {\n Mousetrap[method] = (function(method) {\n return function() {\n return documentMousetrap[method].apply(documentMousetrap, arguments);\n };\n } (method));\n }\n }\n };\n\n Mousetrap.init();\n\n // expose mousetrap to the global object\n window.Mousetrap = Mousetrap;\n\n // expose as a common js module\n if (typeof module !== 'undefined' && module.exports) {\n module.exports = Mousetrap;\n }\n\n // expose mousetrap as an AMD module\n if (typeof define === 'function' && define.amd) {\n define(function() {\n return Mousetrap;\n });\n }\n}) (typeof window !== 'undefined' ? window : null, typeof window !== 'undefined' ? document : null);\n", + "function changeJpegDpi(uint8Array, dpi) {\n uint8Array[13] = 1;\n uint8Array[14] = dpi >> 8;\n uint8Array[15] = dpi & 255;\n uint8Array[16] = dpi >> 8;\n uint8Array[17] = dpi & 255;\n return uint8Array;\n}\n\nconst _P = \"p\".charCodeAt(0);\nconst _H = \"H\".charCodeAt(0);\nconst _Y = \"Y\".charCodeAt(0);\nconst _S = \"s\".charCodeAt(0);\nlet pngDataTable;\nfunction createPngDataTable() {\n const crcTable = new Int32Array(256);\n for (let n = 0; n < 256; n++) {\n let c = n;\n for (let k = 0; k < 8; k++) {\n c = c & 1 ? 3988292384 ^ c >>> 1 : c >>> 1;\n }\n crcTable[n] = c;\n }\n return crcTable;\n}\nfunction calcCrc(uint8Array) {\n let c = -1;\n if (!pngDataTable)\n pngDataTable = createPngDataTable();\n for (let n = 0; n < uint8Array.length; n++) {\n c = pngDataTable[(c ^ uint8Array[n]) & 255] ^ c >>> 8;\n }\n return c ^ -1;\n}\nfunction searchStartOfPhys(uint8Array) {\n const length = uint8Array.length - 1;\n for (let i = length; i >= 4; i--) {\n if (uint8Array[i - 4] === 9 && uint8Array[i - 3] === _P && uint8Array[i - 2] === _H && uint8Array[i - 1] === _Y && uint8Array[i] === _S) {\n return i - 3;\n }\n }\n return 0;\n}\nfunction changePngDpi(uint8Array, dpi, overwritepHYs = false) {\n const physChunk = new Uint8Array(13);\n dpi *= 39.3701;\n physChunk[0] = _P;\n physChunk[1] = _H;\n physChunk[2] = _Y;\n physChunk[3] = _S;\n physChunk[4] = dpi >>> 24;\n physChunk[5] = dpi >>> 16;\n physChunk[6] = dpi >>> 8;\n physChunk[7] = dpi & 255;\n physChunk[8] = physChunk[4];\n physChunk[9] = physChunk[5];\n physChunk[10] = physChunk[6];\n physChunk[11] = physChunk[7];\n physChunk[12] = 1;\n const crc = calcCrc(physChunk);\n const crcChunk = new Uint8Array(4);\n crcChunk[0] = crc >>> 24;\n crcChunk[1] = crc >>> 16;\n crcChunk[2] = crc >>> 8;\n crcChunk[3] = crc & 255;\n if (overwritepHYs) {\n const startingIndex = searchStartOfPhys(uint8Array);\n uint8Array.set(physChunk, startingIndex);\n uint8Array.set(crcChunk, startingIndex + 13);\n return uint8Array;\n } else {\n const chunkLength = new Uint8Array(4);\n chunkLength[0] = 0;\n chunkLength[1] = 0;\n chunkLength[2] = 0;\n chunkLength[3] = 9;\n const finalHeader = new Uint8Array(54);\n finalHeader.set(uint8Array, 0);\n finalHeader.set(chunkLength, 33);\n finalHeader.set(physChunk, 37);\n finalHeader.set(crcChunk, 50);\n return finalHeader;\n }\n}\nconst b64PhysSignature1 = \"AAlwSFlz\";\nconst b64PhysSignature2 = \"AAAJcEhZ\";\nconst b64PhysSignature3 = \"AAAACXBI\";\nfunction detectPhysChunkFromDataUrl(dataUrl) {\n let b64index = dataUrl.indexOf(b64PhysSignature1);\n if (b64index === -1) {\n b64index = dataUrl.indexOf(b64PhysSignature2);\n }\n if (b64index === -1) {\n b64index = dataUrl.indexOf(b64PhysSignature3);\n }\n return b64index;\n}\n\nconst PREFIX = \"[modern-screenshot]\";\nconst IN_BROWSER = typeof window !== \"undefined\";\nconst SUPPORT_WEB_WORKER = IN_BROWSER && \"Worker\" in window;\nconst SUPPORT_ATOB = IN_BROWSER && \"atob\" in window;\nconst SUPPORT_BTOA = IN_BROWSER && \"btoa\" in window;\nconst USER_AGENT = IN_BROWSER ? window.navigator?.userAgent : \"\";\nconst IN_CHROME = USER_AGENT.includes(\"Chrome\");\nconst IN_SAFARI = USER_AGENT.includes(\"AppleWebKit\") && !IN_CHROME;\nconst IN_FIREFOX = USER_AGENT.includes(\"Firefox\");\nconst isContext = (value) => value && \"__CONTEXT__\" in value;\nconst isCssFontFaceRule = (rule) => rule.constructor.name === \"CSSFontFaceRule\";\nconst isCSSImportRule = (rule) => rule.constructor.name === \"CSSImportRule\";\nconst isLayerBlockRule = (rule) => rule.constructor.name === \"CSSLayerBlockRule\";\nconst isElementNode = (node) => node.nodeType === 1;\nconst isSVGElementNode = (node) => typeof node.className === \"object\";\nconst isSVGImageElementNode = (node) => node.tagName === \"image\";\nconst isSVGUseElementNode = (node) => node.tagName === \"use\";\nconst isHTMLElementNode = (node) => isElementNode(node) && typeof node.style !== \"undefined\" && !isSVGElementNode(node);\nconst isCommentNode = (node) => node.nodeType === 8;\nconst isTextNode = (node) => node.nodeType === 3;\nconst isImageElement = (node) => node.tagName === \"IMG\";\nconst isVideoElement = (node) => node.tagName === \"VIDEO\";\nconst isCanvasElement = (node) => node.tagName === \"CANVAS\";\nconst isTextareaElement = (node) => node.tagName === \"TEXTAREA\";\nconst isInputElement = (node) => node.tagName === \"INPUT\";\nconst isStyleElement = (node) => node.tagName === \"STYLE\";\nconst isScriptElement = (node) => node.tagName === \"SCRIPT\";\nconst isSelectElement = (node) => node.tagName === \"SELECT\";\nconst isSlotElement = (node) => node.tagName === \"SLOT\";\nconst isIFrameElement = (node) => node.tagName === \"IFRAME\";\nconst consoleWarn = (...args) => console.warn(PREFIX, ...args);\nfunction supportWebp(ownerDocument) {\n const canvas = ownerDocument?.createElement?.(\"canvas\");\n if (canvas) {\n canvas.height = canvas.width = 1;\n }\n return Boolean(canvas) && \"toDataURL\" in canvas && Boolean(canvas.toDataURL(\"image/webp\").includes(\"image/webp\"));\n}\nconst isDataUrl = (url) => url.startsWith(\"data:\");\nfunction resolveUrl(url, baseUrl) {\n if (url.match(/^[a-z]+:\\/\\//i))\n return url;\n if (IN_BROWSER && url.match(/^\\/\\//))\n return window.location.protocol + url;\n if (url.match(/^[a-z]+:/i))\n return url;\n if (!IN_BROWSER)\n return url;\n const doc = getDocument().implementation.createHTMLDocument();\n const base = doc.createElement(\"base\");\n const a = doc.createElement(\"a\");\n doc.head.appendChild(base);\n doc.body.appendChild(a);\n if (baseUrl)\n base.href = baseUrl;\n a.href = url;\n return a.href;\n}\nfunction getDocument(target) {\n return (target && isElementNode(target) ? target?.ownerDocument : target) ?? window.document;\n}\nconst XMLNS = \"http://www.w3.org/2000/svg\";\nfunction createSvg(width, height, ownerDocument) {\n const svg = getDocument(ownerDocument).createElementNS(XMLNS, \"svg\");\n svg.setAttributeNS(null, \"width\", width.toString());\n svg.setAttributeNS(null, \"height\", height.toString());\n svg.setAttributeNS(null, \"viewBox\", `0 0 ${width} ${height}`);\n return svg;\n}\nfunction svgToDataUrl(svg, removeControlCharacter) {\n let xhtml = new XMLSerializer().serializeToString(svg);\n if (removeControlCharacter) {\n xhtml = xhtml.replace(/[\\u0000-\\u0008\\v\\f\\u000E-\\u001F\\uD800-\\uDFFF\\uFFFE\\uFFFF]/gu, \"\");\n }\n return `data:image/svg+xml;charset=utf-8,${encodeURIComponent(xhtml)}`;\n}\nasync function canvasToBlob(canvas, type = \"image/png\", quality = 1) {\n try {\n return await new Promise((resolve, reject) => {\n canvas.toBlob((blob) => {\n if (blob) {\n resolve(blob);\n } else {\n reject(new Error(\"Blob is null\"));\n }\n }, type, quality);\n });\n } catch (error) {\n if (SUPPORT_ATOB) {\n return dataUrlToBlob(canvas.toDataURL(type, quality));\n }\n throw error;\n }\n}\nfunction dataUrlToBlob(dataUrl) {\n const [header, base64] = dataUrl.split(\",\");\n const type = header.match(/data:(.+);/)?.[1] ?? void 0;\n const decoded = window.atob(base64);\n const length = decoded.length;\n const buffer = new Uint8Array(length);\n for (let i = 0; i < length; i += 1) {\n buffer[i] = decoded.charCodeAt(i);\n }\n return new Blob([buffer], { type });\n}\nfunction readBlob(blob, type) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onload = () => resolve(reader.result);\n reader.onerror = () => reject(reader.error);\n reader.onabort = () => reject(new Error(`Failed read blob to ${type}`));\n if (type === \"dataUrl\") {\n reader.readAsDataURL(blob);\n } else if (type === \"arrayBuffer\") {\n reader.readAsArrayBuffer(blob);\n }\n });\n}\nconst blobToDataUrl = (blob) => readBlob(blob, \"dataUrl\");\nconst blobToArrayBuffer = (blob) => readBlob(blob, \"arrayBuffer\");\nfunction createImage(url, ownerDocument) {\n const img = getDocument(ownerDocument).createElement(\"img\");\n img.decoding = \"sync\";\n img.loading = \"eager\";\n img.src = url;\n return img;\n}\nfunction loadMedia(media, options) {\n return new Promise((resolve) => {\n const { timeout, ownerDocument, onError: userOnError, onWarn } = options ?? {};\n const node = typeof media === \"string\" ? createImage(media, getDocument(ownerDocument)) : media;\n let timer = null;\n let removeEventListeners = null;\n function onResolve() {\n resolve(node);\n timer && clearTimeout(timer);\n removeEventListeners?.();\n }\n if (timeout) {\n timer = setTimeout(onResolve, timeout);\n }\n if (isVideoElement(node)) {\n const currentSrc = node.currentSrc || node.src;\n if (!currentSrc) {\n if (node.poster) {\n return loadMedia(node.poster, options).then(resolve);\n }\n return onResolve();\n }\n if (node.readyState >= 2) {\n return onResolve();\n }\n const onLoadeddata = onResolve;\n const onError = (error) => {\n onWarn?.(\n \"Failed video load\",\n currentSrc,\n error\n );\n userOnError?.(error);\n onResolve();\n };\n removeEventListeners = () => {\n node.removeEventListener(\"loadeddata\", onLoadeddata);\n node.removeEventListener(\"error\", onError);\n };\n node.addEventListener(\"loadeddata\", onLoadeddata, { once: true });\n node.addEventListener(\"error\", onError, { once: true });\n } else {\n const currentSrc = isSVGImageElementNode(node) ? node.href.baseVal : node.currentSrc || node.src;\n if (!currentSrc) {\n return onResolve();\n }\n const onLoad = async () => {\n if (isImageElement(node) && \"decode\" in node) {\n try {\n await node.decode();\n } catch (error) {\n onWarn?.(\n \"Failed to decode image, trying to render anyway\",\n node.dataset.originalSrc || currentSrc,\n error\n );\n }\n }\n onResolve();\n };\n const onError = (error) => {\n onWarn?.(\n \"Failed image load\",\n node.dataset.originalSrc || currentSrc,\n error\n );\n onResolve();\n };\n if (isImageElement(node) && node.complete) {\n return onLoad();\n }\n removeEventListeners = () => {\n node.removeEventListener(\"load\", onLoad);\n node.removeEventListener(\"error\", onError);\n };\n node.addEventListener(\"load\", onLoad, { once: true });\n node.addEventListener(\"error\", onError, { once: true });\n }\n });\n}\nasync function waitUntilLoad(node, options) {\n if (isHTMLElementNode(node)) {\n if (isImageElement(node) || isVideoElement(node)) {\n await loadMedia(node, options);\n } else {\n await Promise.all(\n [\"img\", \"video\"].flatMap((selectors) => {\n return Array.from(node.querySelectorAll(selectors)).map((el) => loadMedia(el, options));\n })\n );\n }\n }\n}\nconst uuid = /* @__PURE__ */ function uuid2() {\n let counter = 0;\n const random = () => `0000${(Math.random() * 36 ** 4 << 0).toString(36)}`.slice(-4);\n return () => {\n counter += 1;\n return `u${random()}${counter}`;\n };\n}();\nfunction splitFontFamily(fontFamily) {\n return fontFamily?.split(\",\").map((val) => val.trim().replace(/\"|'/g, \"\").toLowerCase()).filter(Boolean);\n}\n\nlet uid = 0;\nfunction createLogger(debug) {\n const prefix = `${PREFIX}[#${uid}]`;\n uid++;\n return {\n // eslint-disable-next-line no-console\n time: (label) => debug && console.time(`${prefix} ${label}`),\n // eslint-disable-next-line no-console\n timeEnd: (label) => debug && console.timeEnd(`${prefix} ${label}`),\n warn: (...args) => debug && consoleWarn(...args)\n };\n}\n\nfunction getDefaultRequestInit(bypassingCache) {\n return {\n cache: bypassingCache ? \"no-cache\" : \"force-cache\"\n };\n}\n\nasync function orCreateContext(node, options) {\n return isContext(node) ? node : createContext(node, { ...options, autoDestruct: true });\n}\nasync function createContext(node, options) {\n const { scale = 1, workerUrl, workerNumber = 1 } = options || {};\n const debug = Boolean(options?.debug);\n const features = options?.features ?? true;\n const ownerDocument = node.ownerDocument ?? (IN_BROWSER ? window.document : void 0);\n const ownerWindow = node.ownerDocument?.defaultView ?? (IN_BROWSER ? window : void 0);\n const requests = /* @__PURE__ */ new Map();\n const context = {\n // Options\n width: 0,\n height: 0,\n quality: 1,\n type: \"image/png\",\n scale,\n backgroundColor: null,\n style: null,\n filter: null,\n maximumCanvasSize: 0,\n timeout: 3e4,\n progress: null,\n debug,\n fetch: {\n requestInit: getDefaultRequestInit(options?.fetch?.bypassingCache),\n placeholderImage: \"data:image/png;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7\",\n bypassingCache: false,\n ...options?.fetch\n },\n fetchFn: null,\n font: {},\n drawImageInterval: 100,\n workerUrl: null,\n workerNumber,\n onCloneEachNode: null,\n onCloneNode: null,\n onEmbedNode: null,\n onCreateForeignObjectSvg: null,\n includeStyleProperties: null,\n autoDestruct: false,\n ...options,\n // InternalContext\n __CONTEXT__: true,\n log: createLogger(debug),\n node,\n ownerDocument,\n ownerWindow,\n dpi: scale === 1 ? null : 96 * scale,\n svgStyleElement: createStyleElement(ownerDocument),\n svgDefsElement: ownerDocument?.createElementNS(XMLNS, \"defs\"),\n svgStyles: /* @__PURE__ */ new Map(),\n defaultComputedStyles: /* @__PURE__ */ new Map(),\n workers: [\n ...Array.from({\n length: SUPPORT_WEB_WORKER && workerUrl && workerNumber ? workerNumber : 0\n })\n ].map(() => {\n try {\n const worker = new Worker(workerUrl);\n worker.onmessage = async (event) => {\n const { url, result } = event.data;\n if (result) {\n requests.get(url)?.resolve?.(result);\n } else {\n requests.get(url)?.reject?.(new Error(`Error receiving message from worker: ${url}`));\n }\n };\n worker.onmessageerror = (event) => {\n const { url } = event.data;\n requests.get(url)?.reject?.(new Error(`Error receiving message from worker: ${url}`));\n };\n return worker;\n } catch (error) {\n context.log.warn(\"Failed to new Worker\", error);\n return null;\n }\n }).filter(Boolean),\n fontFamilies: /* @__PURE__ */ new Map(),\n fontCssTexts: /* @__PURE__ */ new Map(),\n acceptOfImage: `${[\n supportWebp(ownerDocument) && \"image/webp\",\n \"image/svg+xml\",\n \"image/*\",\n \"*/*\"\n ].filter(Boolean).join(\",\")};q=0.8`,\n requests,\n drawImageCount: 0,\n tasks: [],\n features,\n isEnable: (key) => {\n if (key === \"restoreScrollPosition\") {\n return typeof features === \"boolean\" ? false : features[key] ?? false;\n }\n if (typeof features === \"boolean\") {\n return features;\n }\n return features[key] ?? true;\n },\n shadowRoots: []\n };\n context.log.time(\"wait until load\");\n await waitUntilLoad(node, { timeout: context.timeout, onWarn: context.log.warn });\n context.log.timeEnd(\"wait until load\");\n const { width, height } = resolveBoundingBox(node, context);\n context.width = width;\n context.height = height;\n return context;\n}\nfunction createStyleElement(ownerDocument) {\n if (!ownerDocument)\n return void 0;\n const style = ownerDocument.createElement(\"style\");\n const cssText = style.ownerDocument.createTextNode(`\n.______background-clip--text {\n background-clip: text;\n -webkit-background-clip: text;\n}\n`);\n style.appendChild(cssText);\n return style;\n}\nfunction resolveBoundingBox(node, context) {\n let { width, height } = context;\n if (isElementNode(node) && (!width || !height)) {\n const box = node.getBoundingClientRect();\n width = width || box.width || Number(node.getAttribute(\"width\")) || 0;\n height = height || box.height || Number(node.getAttribute(\"height\")) || 0;\n }\n return { width, height };\n}\n\nasync function imageToCanvas(image, context) {\n const {\n log,\n timeout,\n drawImageCount,\n drawImageInterval\n } = context;\n log.time(\"image to canvas\");\n const loaded = await loadMedia(image, { timeout, onWarn: context.log.warn });\n const { canvas, context2d } = createCanvas(image.ownerDocument, context);\n const drawImage = () => {\n try {\n context2d?.drawImage(loaded, 0, 0, canvas.width, canvas.height);\n } catch (error) {\n context.log.warn(\"Failed to drawImage\", error);\n }\n };\n drawImage();\n if (context.isEnable(\"fixSvgXmlDecode\")) {\n for (let i = 0; i < drawImageCount; i++) {\n await new Promise((resolve) => {\n setTimeout(() => {\n context2d?.clearRect(0, 0, canvas.width, canvas.height);\n drawImage();\n resolve();\n }, i + drawImageInterval);\n });\n }\n }\n context.drawImageCount = 0;\n log.timeEnd(\"image to canvas\");\n return canvas;\n}\nfunction createCanvas(ownerDocument, context) {\n const { width, height, scale, backgroundColor, maximumCanvasSize: max } = context;\n const canvas = ownerDocument.createElement(\"canvas\");\n canvas.width = Math.floor(width * scale);\n canvas.height = Math.floor(height * scale);\n canvas.style.width = `${width}px`;\n canvas.style.height = `${height}px`;\n if (max) {\n if (canvas.width > max || canvas.height > max) {\n if (canvas.width > max && canvas.height > max) {\n if (canvas.width > canvas.height) {\n canvas.height *= max / canvas.width;\n canvas.width = max;\n } else {\n canvas.width *= max / canvas.height;\n canvas.height = max;\n }\n } else if (canvas.width > max) {\n canvas.height *= max / canvas.width;\n canvas.width = max;\n } else {\n canvas.width *= max / canvas.height;\n canvas.height = max;\n }\n }\n }\n const context2d = canvas.getContext(\"2d\");\n if (context2d && backgroundColor) {\n context2d.fillStyle = backgroundColor;\n context2d.fillRect(0, 0, canvas.width, canvas.height);\n }\n return { canvas, context2d };\n}\n\nfunction cloneCanvas(canvas, context) {\n if (canvas.ownerDocument) {\n try {\n const dataURL = canvas.toDataURL();\n if (dataURL !== \"data:,\") {\n return createImage(dataURL, canvas.ownerDocument);\n }\n } catch (error) {\n context.log.warn(\"Failed to clone canvas\", error);\n }\n }\n const cloned = canvas.cloneNode(false);\n const ctx = canvas.getContext(\"2d\");\n const clonedCtx = cloned.getContext(\"2d\");\n try {\n if (ctx && clonedCtx) {\n clonedCtx.putImageData(\n ctx.getImageData(0, 0, canvas.width, canvas.height),\n 0,\n 0\n );\n }\n return cloned;\n } catch (error) {\n context.log.warn(\"Failed to clone canvas\", error);\n }\n return cloned;\n}\n\nfunction cloneIframe(iframe, context) {\n try {\n if (iframe?.contentDocument?.body) {\n return cloneNode(iframe.contentDocument.body, context);\n }\n } catch (error) {\n context.log.warn(\"Failed to clone iframe\", error);\n }\n return iframe.cloneNode(false);\n}\n\nfunction cloneImage(image) {\n const cloned = image.cloneNode(false);\n if (image.currentSrc && image.currentSrc !== image.src) {\n cloned.src = image.currentSrc;\n cloned.srcset = \"\";\n }\n if (cloned.loading === \"lazy\") {\n cloned.loading = \"eager\";\n }\n return cloned;\n}\n\nasync function cloneVideo(video, context) {\n if (video.ownerDocument && !video.currentSrc && video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n const cloned = video.cloneNode(false);\n cloned.crossOrigin = \"anonymous\";\n if (video.currentSrc && video.currentSrc !== video.src) {\n cloned.src = video.currentSrc;\n }\n const ownerDocument = cloned.ownerDocument;\n if (ownerDocument) {\n let canPlay = true;\n await loadMedia(cloned, { onError: () => canPlay = false, onWarn: context.log.warn });\n if (!canPlay) {\n if (video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n return cloned;\n }\n cloned.currentTime = video.currentTime;\n await new Promise((resolve) => {\n cloned.addEventListener(\"seeked\", resolve, { once: true });\n });\n const canvas = ownerDocument.createElement(\"canvas\");\n canvas.width = video.offsetWidth;\n canvas.height = video.offsetHeight;\n try {\n const ctx = canvas.getContext(\"2d\");\n if (ctx)\n ctx.drawImage(cloned, 0, 0, canvas.width, canvas.height);\n } catch (error) {\n context.log.warn(\"Failed to clone video\", error);\n if (video.poster) {\n return createImage(video.poster, video.ownerDocument);\n }\n return cloned;\n }\n return cloneCanvas(canvas, context);\n }\n return cloned;\n}\n\nfunction cloneElement(node, context) {\n if (isCanvasElement(node)) {\n return cloneCanvas(node, context);\n }\n if (isIFrameElement(node)) {\n return cloneIframe(node, context);\n }\n if (isImageElement(node)) {\n return cloneImage(node);\n }\n if (isVideoElement(node)) {\n return cloneVideo(node, context);\n }\n return node.cloneNode(false);\n}\n\nfunction getSandBox(context) {\n let sandbox = context.sandbox;\n if (!sandbox) {\n const { ownerDocument } = context;\n try {\n if (ownerDocument) {\n sandbox = ownerDocument.createElement(\"iframe\");\n sandbox.id = `__SANDBOX__${uuid()}`;\n sandbox.width = \"0\";\n sandbox.height = \"0\";\n sandbox.style.visibility = \"hidden\";\n sandbox.style.position = \"fixed\";\n ownerDocument.body.appendChild(sandbox);\n sandbox.srcdoc = '';\n context.sandbox = sandbox;\n }\n } catch (error) {\n context.log.warn(\"Failed to getSandBox\", error);\n }\n }\n return sandbox;\n}\n\nconst ignoredStyles = [\n \"width\",\n \"height\",\n \"-webkit-text-fill-color\"\n];\nconst includedAttributes = [\n \"stroke\",\n \"fill\"\n];\nfunction getDefaultStyle(node, pseudoElement, context) {\n const { defaultComputedStyles } = context;\n const nodeName = node.nodeName.toLowerCase();\n const isSvgNode = isSVGElementNode(node) && nodeName !== \"svg\";\n const attributes = isSvgNode ? includedAttributes.map((name) => [name, node.getAttribute(name)]).filter(([, value]) => value !== null) : [];\n const key = [\n isSvgNode && \"svg\",\n nodeName,\n attributes.map((name, value) => `${name}=${value}`).join(\",\"),\n pseudoElement\n ].filter(Boolean).join(\":\");\n if (defaultComputedStyles.has(key))\n return defaultComputedStyles.get(key);\n const sandbox = getSandBox(context);\n const sandboxWindow = sandbox?.contentWindow;\n if (!sandboxWindow)\n return /* @__PURE__ */ new Map();\n const sandboxDocument = sandboxWindow?.document;\n let root;\n let el;\n if (isSvgNode) {\n root = sandboxDocument.createElementNS(XMLNS, \"svg\");\n el = root.ownerDocument.createElementNS(root.namespaceURI, nodeName);\n attributes.forEach(([name, value]) => {\n el.setAttributeNS(null, name, value);\n });\n root.appendChild(el);\n } else {\n root = el = sandboxDocument.createElement(nodeName);\n }\n el.textContent = \" \";\n sandboxDocument.body.appendChild(root);\n const computedStyle = sandboxWindow.getComputedStyle(el, pseudoElement);\n const styles = /* @__PURE__ */ new Map();\n for (let len = computedStyle.length, i = 0; i < len; i++) {\n const name = computedStyle.item(i);\n if (ignoredStyles.includes(name))\n continue;\n styles.set(name, computedStyle.getPropertyValue(name));\n }\n sandboxDocument.body.removeChild(root);\n defaultComputedStyles.set(key, styles);\n return styles;\n}\n\nfunction getDiffStyle(style, defaultStyle, includeStyleProperties) {\n const diffStyle = /* @__PURE__ */ new Map();\n const prefixs = [];\n const prefixTree = /* @__PURE__ */ new Map();\n if (includeStyleProperties) {\n for (const name of includeStyleProperties) {\n applyTo(name);\n }\n } else {\n for (let len = style.length, i = 0; i < len; i++) {\n const name = style.item(i);\n applyTo(name);\n }\n }\n for (let len = prefixs.length, i = 0; i < len; i++) {\n prefixTree.get(prefixs[i])?.forEach((value, name) => diffStyle.set(name, value));\n }\n function applyTo(name) {\n const value = style.getPropertyValue(name);\n const priority = style.getPropertyPriority(name);\n const subIndex = name.lastIndexOf(\"-\");\n const prefix = subIndex > -1 ? name.substring(0, subIndex) : void 0;\n if (prefix) {\n let map = prefixTree.get(prefix);\n if (!map) {\n map = /* @__PURE__ */ new Map();\n prefixTree.set(prefix, map);\n }\n map.set(name, [value, priority]);\n }\n if (defaultStyle.get(name) === value && !priority)\n return;\n if (prefix) {\n prefixs.push(prefix);\n } else {\n diffStyle.set(name, [value, priority]);\n }\n }\n return diffStyle;\n}\n\nfunction copyCssStyles(node, cloned, isRoot, context) {\n const { ownerWindow, includeStyleProperties, currentParentNodeStyle } = context;\n const clonedStyle = cloned.style;\n const computedStyle = ownerWindow.getComputedStyle(node);\n const defaultStyle = getDefaultStyle(node, null, context);\n currentParentNodeStyle?.forEach((_, key) => {\n defaultStyle.delete(key);\n });\n const style = getDiffStyle(computedStyle, defaultStyle, includeStyleProperties);\n style.delete(\"transition-property\");\n style.delete(\"all\");\n style.delete(\"d\");\n style.delete(\"content\");\n if (isRoot) {\n style.delete(\"margin-top\");\n style.delete(\"margin-right\");\n style.delete(\"margin-bottom\");\n style.delete(\"margin-left\");\n style.delete(\"margin-block-start\");\n style.delete(\"margin-block-end\");\n style.delete(\"margin-inline-start\");\n style.delete(\"margin-inline-end\");\n style.set(\"box-sizing\", [\"border-box\", \"\"]);\n }\n if (style.get(\"background-clip\")?.[0] === \"text\") {\n cloned.classList.add(\"______background-clip--text\");\n }\n if (IN_CHROME) {\n if (!style.has(\"font-kerning\"))\n style.set(\"font-kerning\", [\"normal\", \"\"]);\n if ((style.get(\"overflow-x\")?.[0] === \"hidden\" || style.get(\"overflow-y\")?.[0] === \"hidden\") && style.get(\"text-overflow\")?.[0] === \"ellipsis\" && node.scrollWidth === node.clientWidth) {\n style.set(\"text-overflow\", [\"clip\", \"\"]);\n }\n }\n for (let len = clonedStyle.length, i = 0; i < len; i++) {\n clonedStyle.removeProperty(clonedStyle.item(i));\n }\n style.forEach(([value, priority], name) => {\n clonedStyle.setProperty(name, value, priority);\n });\n return style;\n}\n\nfunction copyInputValue(node, cloned) {\n if (isTextareaElement(node) || isInputElement(node) || isSelectElement(node)) {\n cloned.setAttribute(\"value\", node.value);\n }\n}\n\nconst pseudoClasses = [\n \"::before\",\n \"::after\"\n // '::placeholder', TODO\n];\nconst scrollbarPseudoClasses = [\n \"::-webkit-scrollbar\",\n \"::-webkit-scrollbar-button\",\n // '::-webkit-scrollbar:horizontal', TODO\n \"::-webkit-scrollbar-thumb\",\n \"::-webkit-scrollbar-track\",\n \"::-webkit-scrollbar-track-piece\",\n // '::-webkit-scrollbar:vertical', TODO\n \"::-webkit-scrollbar-corner\",\n \"::-webkit-resizer\"\n];\nfunction copyPseudoClass(node, cloned, copyScrollbar, context, addWordToFontFamilies) {\n const { ownerWindow, svgStyleElement, svgStyles, currentNodeStyle } = context;\n if (!svgStyleElement || !ownerWindow)\n return;\n function copyBy(pseudoClass) {\n const computedStyle = ownerWindow.getComputedStyle(node, pseudoClass);\n let content = computedStyle.getPropertyValue(\"content\");\n if (!content || content === \"none\")\n return;\n addWordToFontFamilies?.(content);\n content = content.replace(/(')|(\")|(counter\\(.+\\))/g, \"\");\n const klasses = [uuid()];\n const defaultStyle = getDefaultStyle(node, pseudoClass, context);\n currentNodeStyle?.forEach((_, key) => {\n defaultStyle.delete(key);\n });\n const style = getDiffStyle(computedStyle, defaultStyle, context.includeStyleProperties);\n style.delete(\"content\");\n style.delete(\"-webkit-locale\");\n if (style.get(\"background-clip\")?.[0] === \"text\") {\n cloned.classList.add(\"______background-clip--text\");\n }\n const cloneStyle = [\n `content: '${content}';`\n ];\n style.forEach(([value, priority], name) => {\n cloneStyle.push(`${name}: ${value}${priority ? \" !important\" : \"\"};`);\n });\n if (cloneStyle.length === 1)\n return;\n try {\n cloned.className = [cloned.className, ...klasses].join(\" \");\n } catch (err) {\n context.log.warn(\"Failed to copyPseudoClass\", err);\n return;\n }\n const cssText = cloneStyle.join(\"\\n \");\n let allClasses = svgStyles.get(cssText);\n if (!allClasses) {\n allClasses = [];\n svgStyles.set(cssText, allClasses);\n }\n allClasses.push(`.${klasses[0]}${pseudoClass}`);\n }\n pseudoClasses.forEach(copyBy);\n if (copyScrollbar)\n scrollbarPseudoClasses.forEach(copyBy);\n}\n\nconst excludeParentNodes = /* @__PURE__ */ new Set([\n \"symbol\"\n // test/fixtures/svg.symbol.html\n]);\nasync function appendChildNode(node, cloned, child, context, addWordToFontFamilies) {\n if (isElementNode(child) && (isStyleElement(child) || isScriptElement(child)))\n return;\n if (context.filter && !context.filter(child))\n return;\n if (excludeParentNodes.has(cloned.nodeName) || excludeParentNodes.has(child.nodeName)) {\n context.currentParentNodeStyle = void 0;\n } else {\n context.currentParentNodeStyle = context.currentNodeStyle;\n }\n const childCloned = await cloneNode(child, context, false, addWordToFontFamilies);\n if (context.isEnable(\"restoreScrollPosition\")) {\n restoreScrollPosition(node, childCloned);\n }\n cloned.appendChild(childCloned);\n}\nasync function cloneChildNodes(node, cloned, context, addWordToFontFamilies) {\n let firstChild = node.firstChild;\n if (isElementNode(node)) {\n if (node.shadowRoot) {\n firstChild = node.shadowRoot?.firstChild;\n context.shadowRoots.push(node.shadowRoot);\n }\n }\n for (let child = firstChild; child; child = child.nextSibling) {\n if (isCommentNode(child))\n continue;\n if (isElementNode(child) && isSlotElement(child) && typeof child.assignedNodes === \"function\") {\n const nodes = child.assignedNodes();\n for (let i = 0; i < nodes.length; i++) {\n await appendChildNode(node, cloned, nodes[i], context, addWordToFontFamilies);\n }\n } else {\n await appendChildNode(node, cloned, child, context, addWordToFontFamilies);\n }\n }\n}\nfunction restoreScrollPosition(node, chlidCloned) {\n if (!isHTMLElementNode(node) || !isHTMLElementNode(chlidCloned))\n return;\n const { scrollTop, scrollLeft } = node;\n if (!scrollTop && !scrollLeft) {\n return;\n }\n const { transform } = chlidCloned.style;\n const matrix = new DOMMatrix(transform);\n const { a, b, c, d } = matrix;\n matrix.a = 1;\n matrix.b = 0;\n matrix.c = 0;\n matrix.d = 1;\n matrix.translateSelf(-scrollLeft, -scrollTop);\n matrix.a = a;\n matrix.b = b;\n matrix.c = c;\n matrix.d = d;\n chlidCloned.style.transform = matrix.toString();\n}\nfunction applyCssStyleWithOptions(cloned, context) {\n const { backgroundColor, width, height, style: styles } = context;\n const clonedStyle = cloned.style;\n if (backgroundColor)\n clonedStyle.setProperty(\"background-color\", backgroundColor, \"important\");\n if (width)\n clonedStyle.setProperty(\"width\", `${width}px`, \"important\");\n if (height)\n clonedStyle.setProperty(\"height\", `${height}px`, \"important\");\n if (styles) {\n for (const name in styles) clonedStyle[name] = styles[name];\n }\n}\nconst NORMAL_ATTRIBUTE_RE = /^[\\w-:]+$/;\nasync function cloneNode(node, context, isRoot = false, addWordToFontFamilies) {\n const { ownerDocument, ownerWindow, fontFamilies, onCloneEachNode } = context;\n if (ownerDocument && isTextNode(node)) {\n if (addWordToFontFamilies && /\\S/.test(node.data)) {\n addWordToFontFamilies(node.data);\n }\n return ownerDocument.createTextNode(node.data);\n }\n if (ownerDocument && ownerWindow && isElementNode(node) && (isHTMLElementNode(node) || isSVGElementNode(node))) {\n const cloned2 = await cloneElement(node, context);\n if (context.isEnable(\"removeAbnormalAttributes\")) {\n const names = cloned2.getAttributeNames();\n for (let len = names.length, i = 0; i < len; i++) {\n const name = names[i];\n if (!NORMAL_ATTRIBUTE_RE.test(name)) {\n cloned2.removeAttribute(name);\n }\n }\n }\n const style = context.currentNodeStyle = copyCssStyles(node, cloned2, isRoot, context);\n if (isRoot)\n applyCssStyleWithOptions(cloned2, context);\n let copyScrollbar = false;\n if (context.isEnable(\"copyScrollbar\")) {\n const overflow = [\n style.get(\"overflow-x\")?.[0],\n style.get(\"overflow-y\")?.[0]\n ];\n copyScrollbar = overflow.includes(\"scroll\") || (overflow.includes(\"auto\") || overflow.includes(\"overlay\")) && (node.scrollHeight > node.clientHeight || node.scrollWidth > node.clientWidth);\n }\n const textTransform = style.get(\"text-transform\")?.[0];\n const families = splitFontFamily(style.get(\"font-family\")?.[0]);\n const addWordToFontFamilies2 = families ? (word) => {\n if (textTransform === \"uppercase\") {\n word = word.toUpperCase();\n } else if (textTransform === \"lowercase\") {\n word = word.toLowerCase();\n } else if (textTransform === \"capitalize\") {\n word = word[0].toUpperCase() + word.substring(1);\n }\n families.forEach((family) => {\n let fontFamily = fontFamilies.get(family);\n if (!fontFamily) {\n fontFamilies.set(family, fontFamily = /* @__PURE__ */ new Set());\n }\n word.split(\"\").forEach((text) => fontFamily.add(text));\n });\n } : void 0;\n copyPseudoClass(\n node,\n cloned2,\n copyScrollbar,\n context,\n addWordToFontFamilies2\n );\n copyInputValue(node, cloned2);\n if (!isVideoElement(node)) {\n await cloneChildNodes(\n node,\n cloned2,\n context,\n addWordToFontFamilies2\n );\n }\n await onCloneEachNode?.(cloned2);\n return cloned2;\n }\n const cloned = node.cloneNode(false);\n await cloneChildNodes(node, cloned, context);\n await onCloneEachNode?.(cloned);\n return cloned;\n}\n\nfunction destroyContext(context) {\n context.ownerDocument = void 0;\n context.ownerWindow = void 0;\n context.svgStyleElement = void 0;\n context.svgDefsElement = void 0;\n context.svgStyles.clear();\n context.defaultComputedStyles.clear();\n if (context.sandbox) {\n try {\n context.sandbox.remove();\n } catch (err) {\n context.log.warn(\"Failed to destroyContext\", err);\n }\n context.sandbox = void 0;\n }\n context.workers = [];\n context.fontFamilies.clear();\n context.fontCssTexts.clear();\n context.requests.clear();\n context.tasks = [];\n context.shadowRoots = [];\n}\n\nfunction baseFetch(options) {\n const { url, timeout, responseType, ...requestInit } = options;\n const controller = new AbortController();\n const timer = timeout ? setTimeout(() => controller.abort(), timeout) : void 0;\n return fetch(url, { signal: controller.signal, ...requestInit }).then((response) => {\n if (!response.ok) {\n throw new Error(\"Failed fetch, not 2xx response\", { cause: response });\n }\n switch (responseType) {\n case \"arrayBuffer\":\n return response.arrayBuffer();\n case \"dataUrl\":\n return response.blob().then(blobToDataUrl);\n case \"text\":\n default:\n return response.text();\n }\n }).finally(() => clearTimeout(timer));\n}\nfunction contextFetch(context, options) {\n const { url: rawUrl, requestType = \"text\", responseType = \"text\", imageDom } = options;\n let url = rawUrl;\n const {\n timeout,\n acceptOfImage,\n requests,\n fetchFn,\n fetch: {\n requestInit,\n bypassingCache,\n placeholderImage\n },\n font,\n workers,\n fontFamilies\n } = context;\n if (requestType === \"image\" && (IN_SAFARI || IN_FIREFOX)) {\n context.drawImageCount++;\n }\n let request = requests.get(rawUrl);\n if (!request) {\n if (bypassingCache) {\n if (bypassingCache instanceof RegExp && bypassingCache.test(url)) {\n url += (/\\?/.test(url) ? \"&\" : \"?\") + (/* @__PURE__ */ new Date()).getTime();\n }\n }\n const canFontMinify = requestType.startsWith(\"font\") && font && font.minify;\n const fontTexts = /* @__PURE__ */ new Set();\n if (canFontMinify) {\n const families = requestType.split(\";\")[1].split(\",\");\n families.forEach((family) => {\n if (!fontFamilies.has(family))\n return;\n fontFamilies.get(family).forEach((text) => fontTexts.add(text));\n });\n }\n const needFontMinify = canFontMinify && fontTexts.size;\n const baseFetchOptions = {\n url,\n timeout,\n responseType: needFontMinify ? \"arrayBuffer\" : responseType,\n headers: requestType === \"image\" ? { accept: acceptOfImage } : void 0,\n ...requestInit\n };\n request = {\n type: requestType,\n resolve: void 0,\n reject: void 0,\n response: null\n };\n request.response = (async () => {\n if (fetchFn && requestType === \"image\") {\n const result = await fetchFn(rawUrl);\n if (result)\n return result;\n }\n if (!IN_SAFARI && rawUrl.startsWith(\"http\") && workers.length) {\n return new Promise((resolve, reject) => {\n const worker = workers[requests.size & workers.length - 1];\n worker.postMessage({ rawUrl, ...baseFetchOptions });\n request.resolve = resolve;\n request.reject = reject;\n });\n }\n return baseFetch(baseFetchOptions);\n })().catch((error) => {\n requests.delete(rawUrl);\n if (requestType === \"image\" && placeholderImage) {\n context.log.warn(\"Failed to fetch image base64, trying to use placeholder image\", url);\n return typeof placeholderImage === \"string\" ? placeholderImage : placeholderImage(imageDom);\n }\n throw error;\n });\n requests.set(rawUrl, request);\n }\n return request.response;\n}\n\nasync function replaceCssUrlToDataUrl(cssText, baseUrl, context, isImage) {\n if (!hasCssUrl(cssText))\n return cssText;\n for (const [rawUrl, url] of parseCssUrls(cssText, baseUrl)) {\n try {\n const dataUrl = await contextFetch(\n context,\n {\n url,\n requestType: isImage ? \"image\" : \"text\",\n responseType: \"dataUrl\"\n }\n );\n cssText = cssText.replace(toRE(rawUrl), `$1${dataUrl}$3`);\n } catch (error) {\n context.log.warn(\"Failed to fetch css data url\", rawUrl, error);\n }\n }\n return cssText;\n}\nfunction hasCssUrl(cssText) {\n return /url\\((['\"]?)([^'\"]+?)\\1\\)/.test(cssText);\n}\nconst URL_RE = /url\\((['\"]?)([^'\"]+?)\\1\\)/g;\nfunction parseCssUrls(cssText, baseUrl) {\n const result = [];\n cssText.replace(URL_RE, (raw, quotation, url) => {\n result.push([url, resolveUrl(url, baseUrl)]);\n return raw;\n });\n return result.filter(([url]) => !isDataUrl(url));\n}\nfunction toRE(url) {\n const escaped = url.replace(/([.*+?^${}()|\\[\\]\\/\\\\])/g, \"\\\\$1\");\n return new RegExp(`(url\\\\(['\"]?)(${escaped})(['\"]?\\\\))`, \"g\");\n}\n\nconst properties = [\n \"background-image\",\n \"border-image-source\",\n \"-webkit-border-image\",\n \"-webkit-mask-image\",\n \"list-style-image\"\n];\nfunction embedCssStyleImage(style, context) {\n return properties.map((property) => {\n const value = style.getPropertyValue(property);\n if (!value || value === \"none\") {\n return null;\n }\n if (IN_SAFARI || IN_FIREFOX) {\n context.drawImageCount++;\n }\n return replaceCssUrlToDataUrl(value, null, context, true).then((newValue) => {\n if (!newValue || value === newValue)\n return;\n style.setProperty(\n property,\n newValue,\n style.getPropertyPriority(property)\n );\n });\n }).filter(Boolean);\n}\n\nfunction embedImageElement(cloned, context) {\n if (isImageElement(cloned)) {\n const originalSrc = cloned.currentSrc || cloned.src;\n if (!isDataUrl(originalSrc)) {\n return [\n contextFetch(context, {\n url: originalSrc,\n imageDom: cloned,\n requestType: \"image\",\n responseType: \"dataUrl\"\n }).then((url) => {\n if (!url)\n return;\n cloned.srcset = \"\";\n cloned.dataset.originalSrc = originalSrc;\n cloned.src = url || \"\";\n })\n ];\n }\n if (IN_SAFARI || IN_FIREFOX) {\n context.drawImageCount++;\n }\n } else if (isSVGElementNode(cloned) && !isDataUrl(cloned.href.baseVal)) {\n const originalSrc = cloned.href.baseVal;\n return [\n contextFetch(context, {\n url: originalSrc,\n imageDom: cloned,\n requestType: \"image\",\n responseType: \"dataUrl\"\n }).then((url) => {\n if (!url)\n return;\n cloned.dataset.originalSrc = originalSrc;\n cloned.href.baseVal = url || \"\";\n })\n ];\n }\n return [];\n}\n\nfunction embedSvgUse(cloned, context) {\n const { ownerDocument, svgDefsElement } = context;\n const href = cloned.getAttribute(\"href\") ?? cloned.getAttribute(\"xlink:href\");\n if (!href)\n return [];\n const [svgUrl, id] = href.split(\"#\");\n if (id) {\n const query = `#${id}`;\n const definition = context.shadowRoots.reduce(\n (res, root) => {\n return res ?? root.querySelector(`svg ${query}`);\n },\n ownerDocument?.querySelector(`svg ${query}`)\n );\n if (svgUrl) {\n cloned.setAttribute(\"href\", query);\n }\n if (svgDefsElement?.querySelector(query))\n return [];\n if (definition) {\n svgDefsElement?.appendChild(definition.cloneNode(true));\n return [];\n } else if (svgUrl) {\n return [\n contextFetch(context, {\n url: svgUrl,\n responseType: \"text\"\n }).then((svgData) => {\n svgDefsElement?.insertAdjacentHTML(\"beforeend\", svgData);\n })\n ];\n }\n }\n return [];\n}\n\nfunction embedNode(cloned, context) {\n const { tasks } = context;\n if (isElementNode(cloned)) {\n if (isImageElement(cloned) || isSVGImageElementNode(cloned)) {\n tasks.push(...embedImageElement(cloned, context));\n }\n if (isSVGUseElementNode(cloned)) {\n tasks.push(...embedSvgUse(cloned, context));\n }\n }\n if (isHTMLElementNode(cloned)) {\n tasks.push(...embedCssStyleImage(cloned.style, context));\n }\n cloned.childNodes.forEach((child) => {\n embedNode(child, context);\n });\n}\n\nasync function embedWebFont(clone, context) {\n const {\n ownerDocument,\n svgStyleElement,\n fontFamilies,\n fontCssTexts,\n tasks,\n font\n } = context;\n if (!ownerDocument || !svgStyleElement || !fontFamilies.size) {\n return;\n }\n if (font && font.cssText) {\n const cssText = filterPreferredFormat(font.cssText, context);\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText}\n`));\n } else {\n const styleSheets = Array.from(ownerDocument.styleSheets).filter((styleSheet) => {\n try {\n return \"cssRules\" in styleSheet && Boolean(styleSheet.cssRules.length);\n } catch (error) {\n context.log.warn(`Error while reading CSS rules from ${styleSheet.href}`, error);\n return false;\n }\n });\n await Promise.all(\n styleSheets.flatMap((styleSheet) => {\n return Array.from(styleSheet.cssRules).map(async (cssRule, index) => {\n if (isCSSImportRule(cssRule)) {\n let importIndex = index + 1;\n const baseUrl = cssRule.href;\n let cssText = \"\";\n try {\n cssText = await contextFetch(context, {\n url: baseUrl,\n requestType: \"text\",\n responseType: \"text\"\n });\n } catch (error) {\n context.log.warn(`Error fetch remote css import from ${baseUrl}`, error);\n }\n const replacedCssText = cssText.replace(\n URL_RE,\n (raw, quotation, url) => raw.replace(url, resolveUrl(url, baseUrl))\n );\n for (const rule of parseCss(replacedCssText)) {\n try {\n styleSheet.insertRule(\n rule,\n rule.startsWith(\"@import\") ? importIndex += 1 : styleSheet.cssRules.length\n );\n } catch (error) {\n context.log.warn(\"Error inserting rule from remote css import\", { rule, error });\n }\n }\n }\n });\n })\n );\n const cssRules = [];\n styleSheets.forEach((sheet) => {\n unwrapCssLayers(sheet.cssRules, cssRules);\n });\n cssRules.filter((cssRule) => isCssFontFaceRule(cssRule) && hasCssUrl(cssRule.style.getPropertyValue(\"src\")) && splitFontFamily(cssRule.style.getPropertyValue(\"font-family\"))?.some((val) => fontFamilies.has(val))).forEach((value) => {\n const rule = value;\n const cssText = fontCssTexts.get(rule.cssText);\n if (cssText) {\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText}\n`));\n } else {\n tasks.push(\n replaceCssUrlToDataUrl(\n rule.cssText,\n rule.parentStyleSheet ? rule.parentStyleSheet.href : null,\n context\n ).then((cssText2) => {\n cssText2 = filterPreferredFormat(cssText2, context);\n fontCssTexts.set(rule.cssText, cssText2);\n svgStyleElement.appendChild(ownerDocument.createTextNode(`${cssText2}\n`));\n })\n );\n }\n });\n }\n}\nconst COMMENTS_RE = /(\\/\\*[\\s\\S]*?\\*\\/)/g;\nconst KEYFRAMES_RE = /((@.*?keyframes [\\s\\S]*?){([\\s\\S]*?}\\s*?)})/gi;\nfunction parseCss(source) {\n if (source == null)\n return [];\n const result = [];\n let cssText = source.replace(COMMENTS_RE, \"\");\n while (true) {\n const matches = KEYFRAMES_RE.exec(cssText);\n if (!matches)\n break;\n result.push(matches[0]);\n }\n cssText = cssText.replace(KEYFRAMES_RE, \"\");\n const IMPORT_RE = /@import[\\s\\S]*?url\\([^)]*\\)[\\s\\S]*?;/gi;\n const UNIFIED_RE = new RegExp(\n // eslint-disable-next-line\n \"((\\\\s*?(?:\\\\/\\\\*[\\\\s\\\\S]*?\\\\*\\\\/)?\\\\s*?@media[\\\\s\\\\S]*?){([\\\\s\\\\S]*?)}\\\\s*?})|(([\\\\s\\\\S]*?){([\\\\s\\\\S]*?)})\",\n \"gi\"\n );\n while (true) {\n let matches = IMPORT_RE.exec(cssText);\n if (!matches) {\n matches = UNIFIED_RE.exec(cssText);\n if (!matches) {\n break;\n } else {\n IMPORT_RE.lastIndex = UNIFIED_RE.lastIndex;\n }\n } else {\n UNIFIED_RE.lastIndex = IMPORT_RE.lastIndex;\n }\n result.push(matches[0]);\n }\n return result;\n}\nconst URL_WITH_FORMAT_RE = /url\\([^)]+\\)\\s*format\\(([\"']?)([^\"']+)\\1\\)/g;\nconst FONT_SRC_RE = /src:\\s*(?:url\\([^)]+\\)\\s*format\\([^)]+\\)[,;]\\s*)+/g;\nfunction filterPreferredFormat(str, context) {\n const { font } = context;\n const preferredFormat = font ? font?.preferredFormat : void 0;\n return preferredFormat ? str.replace(FONT_SRC_RE, (match) => {\n while (true) {\n const [src, , format] = URL_WITH_FORMAT_RE.exec(match) || [];\n if (!format)\n return \"\";\n if (format === preferredFormat)\n return `src: ${src};`;\n }\n }) : str;\n}\nfunction unwrapCssLayers(rules, out = []) {\n for (const rule of Array.from(rules)) {\n if (isLayerBlockRule(rule)) {\n out.push(...unwrapCssLayers(rule.cssRules));\n } else if (\"cssRules\" in rule) {\n unwrapCssLayers(rule.cssRules, out);\n } else {\n out.push(rule);\n }\n }\n return out;\n}\n\nasync function domToForeignObjectSvg(node, options) {\n const context = await orCreateContext(node, options);\n if (isElementNode(context.node) && isSVGElementNode(context.node))\n return context.node;\n const {\n ownerDocument,\n log,\n tasks,\n svgStyleElement,\n svgDefsElement,\n svgStyles,\n font,\n progress,\n autoDestruct,\n onCloneNode,\n onEmbedNode,\n onCreateForeignObjectSvg\n } = context;\n log.time(\"clone node\");\n const clone = await cloneNode(context.node, context, true);\n if (svgStyleElement && ownerDocument) {\n let allCssText = \"\";\n svgStyles.forEach((klasses, cssText) => {\n allCssText += `${klasses.join(\",\\n\")} {\n ${cssText}\n}\n`;\n });\n svgStyleElement.appendChild(ownerDocument.createTextNode(allCssText));\n }\n log.timeEnd(\"clone node\");\n await onCloneNode?.(clone);\n if (font !== false && isElementNode(clone)) {\n log.time(\"embed web font\");\n await embedWebFont(clone, context);\n log.timeEnd(\"embed web font\");\n }\n log.time(\"embed node\");\n embedNode(clone, context);\n const count = tasks.length;\n let current = 0;\n const runTask = async () => {\n while (true) {\n const task = tasks.pop();\n if (!task)\n break;\n try {\n await task;\n } catch (error) {\n context.log.warn(\"Failed to run task\", error);\n }\n progress?.(++current, count);\n }\n };\n progress?.(current, count);\n await Promise.all([...Array.from({ length: 4 })].map(runTask));\n log.timeEnd(\"embed node\");\n await onEmbedNode?.(clone);\n const svg = createForeignObjectSvg(clone, context);\n svgDefsElement && svg.insertBefore(svgDefsElement, svg.children[0]);\n svgStyleElement && svg.insertBefore(svgStyleElement, svg.children[0]);\n autoDestruct && destroyContext(context);\n await onCreateForeignObjectSvg?.(svg);\n return svg;\n}\nfunction createForeignObjectSvg(clone, context) {\n const { width, height } = context;\n const svg = createSvg(width, height, clone.ownerDocument);\n const foreignObject = svg.ownerDocument.createElementNS(svg.namespaceURI, \"foreignObject\");\n foreignObject.setAttributeNS(null, \"x\", \"0%\");\n foreignObject.setAttributeNS(null, \"y\", \"0%\");\n foreignObject.setAttributeNS(null, \"width\", \"100%\");\n foreignObject.setAttributeNS(null, \"height\", \"100%\");\n foreignObject.append(clone);\n svg.appendChild(foreignObject);\n return svg;\n}\n\nasync function domToCanvas(node, options) {\n const context = await orCreateContext(node, options);\n const svg = await domToForeignObjectSvg(context);\n const dataUrl = svgToDataUrl(svg, context.isEnable(\"removeControlCharacter\"));\n if (!context.autoDestruct) {\n context.svgStyleElement = createStyleElement(context.ownerDocument);\n context.svgDefsElement = context.ownerDocument?.createElementNS(XMLNS, \"defs\");\n context.svgStyles.clear();\n }\n const image = createImage(dataUrl, svg.ownerDocument);\n return await imageToCanvas(image, context);\n}\n\nasync function domToBlob(node, options) {\n const context = await orCreateContext(node, options);\n const { log, type, quality, dpi } = context;\n const canvas = await domToCanvas(context);\n log.time(\"canvas to blob\");\n const blob = await canvasToBlob(canvas, type, quality);\n if ([\"image/png\", \"image/jpeg\"].includes(type) && dpi) {\n const arrayBuffer = await blobToArrayBuffer(blob.slice(0, 33));\n let uint8Array = new Uint8Array(arrayBuffer);\n if (type === \"image/png\") {\n uint8Array = changePngDpi(uint8Array, dpi);\n } else if (type === \"image/jpeg\") {\n uint8Array = changeJpegDpi(uint8Array, dpi);\n }\n log.timeEnd(\"canvas to blob\");\n return new Blob([uint8Array, blob.slice(33)], { type });\n }\n log.timeEnd(\"canvas to blob\");\n return blob;\n}\n\nasync function domToDataUrl(node, options) {\n const context = await orCreateContext(node, options);\n const { log, quality, type, dpi } = context;\n const canvas = await domToCanvas(context);\n log.time(\"canvas to data url\");\n let dataUrl = canvas.toDataURL(type, quality);\n if ([\"image/png\", \"image/jpeg\"].includes(type) && dpi && SUPPORT_ATOB && SUPPORT_BTOA) {\n const [format, body] = dataUrl.split(\",\");\n let headerLength = 0;\n let overwritepHYs = false;\n if (type === \"image/png\") {\n const b64Index = detectPhysChunkFromDataUrl(body);\n if (b64Index >= 0) {\n headerLength = Math.ceil((b64Index + 28) / 3) * 4;\n overwritepHYs = true;\n } else {\n headerLength = 33 / 3 * 4;\n }\n } else if (type === \"image/jpeg\") {\n headerLength = 18 / 3 * 4;\n }\n const stringHeader = body.substring(0, headerLength);\n const restOfData = body.substring(headerLength);\n const headerBytes = window.atob(stringHeader);\n const uint8Array = new Uint8Array(headerBytes.length);\n for (let i = 0; i < uint8Array.length; i++) {\n uint8Array[i] = headerBytes.charCodeAt(i);\n }\n const finalArray = type === \"image/png\" ? changePngDpi(uint8Array, dpi, overwritepHYs) : changeJpegDpi(uint8Array, dpi);\n const base64Header = window.btoa(String.fromCharCode(...finalArray));\n dataUrl = [format, \",\", base64Header, restOfData].join(\"\");\n }\n log.timeEnd(\"canvas to data url\");\n return dataUrl;\n}\n\nasync function domToSvg(node, options) {\n const context = await orCreateContext(node, options);\n const { width, height, ownerDocument } = context;\n const dataUrl = await domToDataUrl(context);\n const svg = createSvg(width, height, ownerDocument);\n const svgImage = svg.ownerDocument.createElementNS(svg.namespaceURI, \"image\");\n svgImage.setAttributeNS(null, \"href\", dataUrl);\n svgImage.setAttributeNS(null, \"height\", \"100%\");\n svgImage.setAttributeNS(null, \"width\", \"100%\");\n svg.appendChild(svgImage);\n return svgToDataUrl(svg, context.isEnable(\"removeControlCharacter\"));\n}\n\nasync function domToImage(node, options) {\n const context = await orCreateContext(node, options);\n const { ownerDocument, width, height, scale, type } = context;\n const url = type === \"image/svg+xml\" ? await domToSvg(context) : await domToDataUrl(context);\n const image = createImage(url, ownerDocument);\n image.width = Math.floor(width * scale);\n image.height = Math.floor(height * scale);\n image.style.width = `${width}px`;\n image.style.height = `${height}px`;\n return image;\n}\n\nasync function domToJpeg(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/jpeg\" })\n );\n}\n\nasync function domToPixel(node, options) {\n const context = await orCreateContext(node, options);\n const canvas = await domToCanvas(context);\n return canvas.getContext(\"2d\").getImageData(0, 0, canvas.width, canvas.height).data;\n}\n\nasync function domToPng(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/png\" })\n );\n}\n\nasync function domToWebp(node, options) {\n return domToDataUrl(\n await orCreateContext(node, { ...options, type: \"image/webp\" })\n );\n}\n\nexport { createContext, destroyContext, domToBlob, domToCanvas, domToDataUrl, domToForeignObjectSvg, domToImage, domToJpeg, domToPixel, domToPng, domToSvg, domToWebp, loadMedia, waitUntilLoad };\n", + "/*!\n * Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n * Copyright 2025 Fonticons, Inc.\n */\n(function () {\n 'use strict';\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n } catch (e) {} // eslint-disable-line no-empty\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n }\n function _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n }\n function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n }\n\n var _dt;\n var q = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n slab: {\n \"fa-regular\": \"regular\",\n faslr: \"regular\"\n },\n \"slab-press\": {\n \"fa-regular\": \"regular\",\n faslpr: \"regular\"\n },\n thumbprint: {\n \"fa-light\": \"light\",\n fatl: \"light\"\n },\n whiteboard: {\n \"fa-semibold\": \"semibold\",\n fawsb: \"semibold\"\n },\n notdog: {\n \"fa-solid\": \"solid\",\n fans: \"solid\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"solid\",\n fands: \"solid\"\n },\n etch: {\n \"fa-solid\": \"solid\",\n faes: \"solid\"\n },\n jelly: {\n \"fa-regular\": \"regular\",\n fajr: \"regular\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"regular\",\n fajfr: \"regular\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"regular\",\n fajdr: \"regular\"\n },\n chisel: {\n \"fa-regular\": \"regular\",\n facr: \"regular\"\n },\n utility: {\n \"fa-semibold\": \"semibold\",\n fausb: \"semibold\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"semibold\",\n faudsb: \"semibold\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"semibold\",\n faufsb: \"semibold\"\n }\n };\n var i = \"classic\",\n t = \"duotone\",\n d = \"sharp\",\n l = \"sharp-duotone\",\n f = \"chisel\",\n n = \"etch\",\n h = \"jelly\",\n o = \"jelly-duo\",\n u = \"jelly-fill\",\n g = \"notdog\",\n s = \"notdog-duo\",\n y = \"slab\",\n m = \"slab-press\",\n e = \"thumbprint\",\n p = \"utility\",\n a = \"utility-duo\",\n w = \"utility-fill\",\n x = \"whiteboard\",\n b = \"Classic\",\n c = \"Duotone\",\n I = \"Sharp\",\n F = \"Sharp Duotone\",\n v = \"Chisel\",\n S = \"Etch\",\n A = \"Jelly\",\n P = \"Jelly Duo\",\n j = \"Jelly Fill\",\n B = \"Notdog\",\n N = \"Notdog Duo\",\n k = \"Slab\",\n D = \"Slab Press\",\n T = \"Thumbprint\",\n C = \"Utility\",\n W = \"Utility Duo\",\n K = \"Utility Fill\",\n R = \"Whiteboard\",\n dt = (_dt = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, i, b), t, c), d, I), l, F), f, v), n, S), h, A), o, P), u, j), g, B), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, s, N), y, k), m, D), e, T), p, C), a, W), w, K), x, R));\n var gt = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n slab: {\n 400: \"faslr\"\n },\n \"slab-press\": {\n 400: \"faslpr\"\n },\n whiteboard: {\n 600: \"fawsb\"\n },\n thumbprint: {\n 300: \"fatl\"\n },\n notdog: {\n 900: \"fans\"\n },\n \"notdog-duo\": {\n 900: \"fands\"\n },\n etch: {\n 900: \"faes\"\n },\n chisel: {\n 400: \"facr\"\n },\n jelly: {\n 400: \"fajr\"\n },\n \"jelly-fill\": {\n 400: \"fajfr\"\n },\n \"jelly-duo\": {\n 400: \"fajdr\"\n },\n utility: {\n 600: \"fausb\"\n },\n \"utility-duo\": {\n 600: \"faudsb\"\n },\n \"utility-fill\": {\n 600: \"faufsb\"\n }\n };\n var _t = {\n chisel: {\n regular: \"facr\"\n },\n classic: {\n brands: \"fab\",\n light: \"fal\",\n regular: \"far\",\n solid: \"fas\",\n thin: \"fat\"\n },\n duotone: {\n light: \"fadl\",\n regular: \"fadr\",\n solid: \"fad\",\n thin: \"fadt\"\n },\n etch: {\n solid: \"faes\"\n },\n jelly: {\n regular: \"fajr\"\n },\n \"jelly-duo\": {\n regular: \"fajdr\"\n },\n \"jelly-fill\": {\n regular: \"fajfr\"\n },\n notdog: {\n solid: \"fans\"\n },\n \"notdog-duo\": {\n solid: \"fands\"\n },\n sharp: {\n light: \"fasl\",\n regular: \"fasr\",\n solid: \"fass\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n light: \"fasdl\",\n regular: \"fasdr\",\n solid: \"fasds\",\n thin: \"fasdt\"\n },\n slab: {\n regular: \"faslr\"\n },\n \"slab-press\": {\n regular: \"faslpr\"\n },\n thumbprint: {\n light: \"fatl\"\n },\n utility: {\n semibold: \"fausb\"\n },\n \"utility-duo\": {\n semibold: \"faudsb\"\n },\n \"utility-fill\": {\n semibold: \"faufsb\"\n },\n whiteboard: {\n semibold: \"fawsb\"\n }\n };\n var qt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n Ht = [\"kit\"];\n var L = \"kit\",\n r = \"kit-duotone\",\n U = \"Kit\",\n J = \"Kit Duotone\",\n $t = _defineProperty(_defineProperty({}, L, U), r, J);\n var ol = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n };\n var fl = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\n var ul = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\n var _ml;\n var l$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n };\n var n$1 = \"classic\",\n o$1 = \"duotone\",\n u$1 = \"sharp\",\n s$1 = \"sharp-duotone\",\n h$1 = \"chisel\",\n g$1 = \"etch\",\n y$1 = \"jelly\",\n e$1 = \"jelly-duo\",\n m$1 = \"jelly-fill\",\n p$1 = \"notdog\",\n a$1 = \"notdog-duo\",\n w$1 = \"slab\",\n b$1 = \"slab-press\",\n r$1 = \"thumbprint\",\n c$1 = \"utility\",\n i$1 = \"utility-duo\",\n x$1 = \"utility-fill\",\n I$1 = \"whiteboard\",\n F$1 = \"Classic\",\n v$1 = \"Duotone\",\n S$1 = \"Sharp\",\n A$1 = \"Sharp Duotone\",\n P$1 = \"Chisel\",\n j$1 = \"Etch\",\n B$1 = \"Jelly\",\n N$1 = \"Jelly Duo\",\n k$1 = \"Jelly Fill\",\n D$1 = \"Notdog\",\n C$1 = \"Notdog Duo\",\n T$1 = \"Slab\",\n L$1 = \"Slab Press\",\n W$1 = \"Thumbprint\",\n R$1 = \"Utility\",\n K$1 = \"Utility Duo\",\n U$1 = \"Utility Fill\",\n J$1 = \"Whiteboard\",\n ml$1 = (_ml = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, n$1, F$1), o$1, v$1), u$1, S$1), s$1, A$1), h$1, P$1), g$1, j$1), y$1, B$1), e$1, N$1), m$1, k$1), p$1, D$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, a$1, C$1), w$1, T$1), b$1, L$1), r$1, W$1), c$1, R$1), i$1, K$1), x$1, U$1), I$1, J$1));\n var E$1 = \"kit\",\n d$1 = \"kit-duotone\",\n _$1 = \"Kit\",\n M$1 = \"Kit Duotone\",\n rt$1 = _defineProperty(_defineProperty({}, E$1, _$1), d$1, M$1);\n var $t$1 = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n },\n slab: {\n \"fa-regular\": \"faslr\"\n },\n \"slab-press\": {\n \"fa-regular\": \"faslpr\"\n },\n whiteboard: {\n \"fa-semibold\": \"fawsb\"\n },\n thumbprint: {\n \"fa-light\": \"fatl\"\n },\n notdog: {\n \"fa-solid\": \"fans\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"fands\"\n },\n etch: {\n \"fa-solid\": \"faes\"\n },\n jelly: {\n \"fa-regular\": \"fajr\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"fajfr\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"fajdr\"\n },\n chisel: {\n \"fa-regular\": \"facr\"\n },\n utility: {\n \"fa-semibold\": \"fausb\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"faudsb\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"faufsb\"\n }\n },\n z = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"],\n slab: [\"faslr\"],\n \"slab-press\": [\"faslpr\"],\n whiteboard: [\"fawsb\"],\n thumbprint: [\"fatl\"],\n notdog: [\"fans\"],\n \"notdog-duo\": [\"fands\"],\n etch: [\"faes\"],\n jelly: [\"fajr\"],\n \"jelly-fill\": [\"fajfr\"],\n \"jelly-duo\": [\"fajdr\"],\n chisel: [\"facr\"],\n utility: [\"fausb\"],\n \"utility-duo\": [\"faudsb\"],\n \"utility-fill\": [\"faufsb\"]\n },\n Ht$1 = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n },\n slab: {\n faslr: \"fa-regular\"\n },\n \"slab-press\": {\n faslpr: \"fa-regular\"\n },\n whiteboard: {\n fawsb: \"fa-semibold\"\n },\n thumbprint: {\n fatl: \"fa-light\"\n },\n notdog: {\n fans: \"fa-solid\"\n },\n \"notdog-duo\": {\n fands: \"fa-solid\"\n },\n etch: {\n faes: \"fa-solid\"\n },\n jelly: {\n fajr: \"fa-regular\"\n },\n \"jelly-fill\": {\n fajfr: \"fa-regular\"\n },\n \"jelly-duo\": {\n fajdr: \"fa-regular\"\n },\n chisel: {\n facr: \"fa-regular\"\n },\n utility: {\n fausb: \"fa-semibold\"\n },\n \"utility-duo\": {\n faudsb: \"fa-semibold\"\n },\n \"utility-fill\": {\n faufsb: \"fa-semibold\"\n }\n },\n G$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\", \"semibold\"],\n O$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n V$1 = O$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n $$1 = [\"aw\", \"fw\", \"pull-left\", \"pull-right\"],\n to = [].concat(_toConsumableArray(Object.keys(z)), G$1, $$1, [\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"inverse\", \"layers\", \"layers-bottom-left\", \"layers-bottom-right\", \"layers-counter\", \"layers-text\", \"layers-top-left\", \"layers-top-right\", \"li\", \"pull-end\", \"pull-start\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", \"width-auto\", \"width-fixed\", l$1.GROUP, l$1.SWAP_OPACITY, l$1.PRIMARY, l$1.SECONDARY]).concat(O$1.map(function (t) {\n return \"\".concat(t, \"x\");\n })).concat(V$1.map(function (t) {\n return \"w-\".concat(t);\n }));\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e$$1) {\n return false;\n }\n }();\n function familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[i];\n }\n });\n }\n var _PREFIX_TO_STYLE = _objectSpread2({}, q);\n\n // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n // {'fa-duotone': 'duotone'}\n _PREFIX_TO_STYLE[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n }), q[i]), qt['kit']), qt['kit-duotone']);\n var PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\n var _STYLE_TO_PREFIX = _objectSpread2({}, _t);\n\n // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n _STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n }), _STYLE_TO_PREFIX[i]), ul['kit']), ul['kit-duotone']);\n var STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\n var _PREFIX_TO_LONG_STYLE = _objectSpread2({}, Ht$1);\n _PREFIX_TO_LONG_STYLE[i] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[i]), fl['kit']);\n var PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\n var _LONG_STYLE_TO_PREFIX = _objectSpread2({}, $t$1);\n _LONG_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[i]), ol['kit']);\n var LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\n var _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, gt);\n var FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\n var RESERVED_CLASSES = [].concat(_toConsumableArray(Ht), _toConsumableArray(to));\n\n function bunker(fn) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n fn.apply(void 0, args);\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n var w$2 = WINDOW || {};\n if (!w$2[NAMESPACE_IDENTIFIER]) w$2[NAMESPACE_IDENTIFIER] = {};\n if (!w$2[NAMESPACE_IDENTIFIER].styles) w$2[NAMESPACE_IDENTIFIER].styles = {};\n if (!w$2[NAMESPACE_IDENTIFIER].hooks) w$2[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w$2[NAMESPACE_IDENTIFIER].shims) w$2[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w$2[NAMESPACE_IDENTIFIER];\n\n function normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n }\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var icons = {\n \"square-github\": [448, 512, [\"github-square\"], \"f092\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM265.8 407.7c0-1.8 0-6 .1-11.6 .1-11.4 .1-28.8 .1-43.7 0-15.6-5.2-25.5-11.3-30.7 37-4.1 76-9.2 76-73.1 0-18.2-6.5-27.3-17.1-39 1.7-4.3 7.4-22-1.7-45-13.9-4.3-45.7 17.9-45.7 17.9-26.6-7.5-56.6-7.5-83.2 0 0 0-31.8-22.2-45.7-17.9-9.1 22.9-3.5 40.6-1.7 45-10.6 11.7-15.6 20.8-15.6 39 0 63.6 37.3 69 74.3 73.1-4.8 4.3-9.1 11.7-10.6 22.3-9.5 4.3-33.8 11.7-48.3-13.9-9.1-15.8-25.5-17.1-25.5-17.1-16.2-.2-1.1 10.2-1.1 10.2 10.8 5 18.4 24.2 18.4 24.2 9.7 29.7 56.1 19.7 56.1 19.7 0 9 .1 21.7 .1 30.6 0 4.8 .1 8.6 .1 10 0 4.3-3 9.5-11.5 8-66-22.1-112.2-84.9-112.2-158.3 0-91.8 70.2-161.5 162-161.5S388 165.6 388 257.4c.1 73.4-44.7 136.3-110.7 158.3-8.4 1.5-11.5-3.7-11.5-8zm-90.5-54.8c-.2-1.5 1.1-2.8 3-3.2 1.9-.2 3.7 .6 3.9 1.9 .3 1.3-1 2.6-3 3-1.9 .4-3.7-.4-3.9-1.7zm-9.1 3.2c-2.2 .2-3.7-.9-3.7-2.4 0-1.3 1.5-2.4 3.5-2.4 1.9-.2 3.7 .9 3.7 2.4 0 1.3-1.5 2.4-3.5 2.4zm-14.3-2.2c-1.9-.4-3.2-1.9-2.8-3.2s2.4-1.9 4.1-1.5c2 .6 3.3 2.1 2.8 3.4-.4 1.3-2.4 1.9-4.1 1.3zm-12.5-7.3c-1.5-1.3-1.9-3.2-.9-4.1 .9-1.1 2.8-.9 4.3 .6 1.3 1.3 1.8 3.3 .9 4.1-.9 1.1-2.8 .9-4.3-.6zm-8.5-10c-1.1-1.5-1.1-3.2 0-3.9 1.1-.9 2.8-.2 3.7 1.3 1.1 1.5 1.1 3.3 0 4.1-.9 .6-2.6 0-3.7-1.5zm-6.3-8.8c-1.1-1.3-1.3-2.8-.4-3.5 .9-.9 2.4-.4 3.5 .6 1.1 1.3 1.3 2.8 .4 3.5-.9 .9-2.4 .4-3.5-.6zm-6-6.4c-1.3-.6-1.9-1.7-1.5-2.6 .4-.6 1.5-.9 2.8-.4 1.3 .7 1.9 1.8 1.5 2.6-.4 .9-1.7 1.1-2.8 .4z\"],\n \"think-peaks\": [576, 512, [], \"f731\", \"M465.4 409.4l87.1-150.2-32-.3-55.1 95-206.2-353.9-236.2 407.4 32 .3 204.2-352.1 206.2 353.8zM110.1 365.3l32.1 0 117.4-202.5 203.4 349.1 32.5 .1-235.8-404.6-149.6 257.9z\"],\n \"google-drive\": [512, 512, [], \"f3aa\", \"M339 314.9L175.4 32 336.6 32 500.2 314.9 339 314.9zM201.5 338.5l-80.6 141.5 310.5 0 80.6-141.5-310.5 0zM154.1 67.4L0 338.5 80.6 480 237 208.8 154.1 67.4z\"],\n \"autoprefixer\": [640, 512, [], \"f41c\", \"M318.4 16l-161 480 77.5 0 25.4-81.4 119.5 0 25.2 81.4 77.5 0-164.1-480zM278.1 357.9l41.2-130.4 1.5 0 40.9 130.4-83.6 0zM640 405L630 373.6 462.1 358 481.5 414.5 640 405zM177.9 358L10 373.7 0 405 158.5 414.4 177.9 358z\"],\n \"square-viadeo\": [448, 512, [\"viadeo-square\"], \"f2aa\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM118.3 381.2c-68-73.6-19.8-196.1 81.2-196.1 13.3 0 26.6 2.1 39.1 6.7-4.3 8.4-7.3 17.6-8.4 27.1-9.7-4.1-20.2-6-30.7-6-48.8 0-84.6 41.7-84.6 88.9 0 43 28.5 78.7 69.5 85.9 61.5-24 72.9-117.6 72.9-175 0-7.3 0-14.8-.6-22.1-11.2-32.9-26.6-64.6-44.2-94.5 27.1 18.3 41.9 62.5 44.2 94.1l0 .4c7.7 22.5 11.8 46.2 11.8 70 0 54.1-21.9 99-68.3 128.2l-2.4 .2c50 1 86.2-38.6 86.2-87.2 0-12.2-2.1-24.3-6.9-35.7 9.5-1.9 18.5-5.6 26.4-10.5 15.3 36.6 12.6 87.3-22.8 125.6-42.4 46.2-120 46.6-162.4 0zM274.6 217.6c21.9-12 49.6-30.7 62.3-53 1.5-3 4.1-8.6 4.5-12-12.5 27.9-44.2 49.8-73.9 56.7-4.7-7.3-7.5-15.5-7.5-24.3 0-10.3 5.2-24.1 12.9-31.6 8.3-7.9 18-10.9 27.9-14.1 16-5.1 32.5-10.3 44.5-35.9 32.5 46.2 13.1 130.3-36.3 130.3-13.3 0-25.1-7.1-34.4-16.1z\"],\n \"cpanel\": [640, 512, [], \"f388\", \"M210.3 220.2c-5.6-24.8-26.9-41.2-51-41.2l-37 0c-7.1 0-12.5 4.5-14.3 10.9L73.1 320 97.8 319.9c6.8 0 12.3-4.5 14.2-10.7l25.8-95.7 19.8 0c8.4 0 16.2 5.6 18.3 14.8 2.5 10.9-5.9 22.6-18.3 22.6l-10.3 0c-7 0-12.5 4.6-14.3 10.8l-6.4 23.8 32 0c37.2 0 58.3-36.2 51.7-65.3zm-156.5 28l18.6 0c6.9 0 12.4-4.4 14.3-10.9l6.2-23.6-40 0C30 213.7 9 227.8 1.7 254.8-7 288.6 18.5 320 52 320l12.4 0 7.1-26.1c1.2-4.4-2.2-8.3-6.4-8.3l-11.3 0c-24.7 0-24.9-37.4 0-37.4zm247.5-34.8l-77.9 0-3.5 13.4c-2.4 9.6 4.5 18.5 14.2 18.5l57.5 0c4 0 2.4 4.3 2.1 5.3l-8.6 31.8c-.4 1.4-.9 5.3-5.5 5.3l-34.9 0c-5.3 0-5.3-7.9 0-7.9l21.6 0c6.8 0 12.3-4.6 14.2-10.8l3.5-13.2-48.4 0c-39.2 0-43.6 63.8-.7 63.8l57.5 .2c11.2 0 20.6-7.2 23.4-17.8l14-51.8c4.8-19.2-9.7-36.8-28.5-36.8zM633.1 179l-18.9 0c-4.9 0-9.2 3.2-10.4 7.9L568.2 320c20.7 0 39.8-13.8 44.9-34.5l26.5-98.2c1.2-4.3-2-8.3-6.5-8.3zM396.8 213.7l0 .1-48.3 0-26.2 98c-1.2 4.4 2.2 8.3 6.4 8.3l18.9 0c4.8 0 9.2-3 10.4-7.8l17.2-64 19.8 0c12.5 0 21.4 11.8 18.1 23.4l-10.6 40c-1.2 4.3 1.9 8.3 6.4 8.3l19.1 0c4.6 0 9.1-2.9 10.3-7.8l8.8-33.1c9-33.1-15.9-65.4-50.3-65.4zm98.3 74.6c-3.6 0-6-3.4-5.1-6.7l8-30c.9-3.9 3.7-6 7.8-6l32.9 0c2.6 0 4.6 2.4 3.9 5.1l-.7 2.6c-.6 2-1.9 3-3.9 3l-21.6 0c-7 0-12.6 4.6-14.2 10.8l-3.5 13 53.4 0c10.5 0 20.3-6.6 23.2-17.6l3.2-12c4.9-19.1-9.3-36.8-28.3-36.8l-47.3 0c-17.9 0-33.8 12-38.6 29.6l-10.8 40c-5 17.7 8.3 36.7 28.3 36.7l66.7 0c6.8 0 12.3-4.5 14.2-10.7l5.7-21-73.3 0z\"],\n \"mendeley\": [640, 512, [], \"f7b3\", \"M624.6 325.2c-12.3-12.4-29.7-19.2-48.4-17.2-43.3-1-49.7-34.9-37.5-98.8 22.8-57.5-14.9-131.5-87.4-130.8-77.4 .7-81.7 82-130.9 82-48.1 0-54-81.3-130.9-82-72.9-.8-110.1 73.3-87.4 130.8 12.2 63.9 5.8 97.8-37.5 98.8-21.2-2.3-37 6.5-53 22.5-19.9 19.7-19.3 94.8 42.6 102.6 47.1 5.9 81.6-42.9 61.2-87.8-47.3-103.7 185.9-106.1 146.5-8.2-.1 .1-.2 .2-.3 .4-26.8 42.8 6.8 97.4 58.8 95.2 52.1 2.1 85.4-52.6 58.8-95.2-.1-.2-.2-.3-.3-.4-39.4-97.9 193.8-95.5 146.5 8.2-4.6 10-6.7 21.3-5.7 33 4.9 53.4 68.7 74.1 104.9 35.2 17.8-14.8 23.1-65.6 0-88.3zM320.7 306.1l-.6 0c-43.4 0-62.8-37.5-62.8-62.8 0-34.7 28.2-62.8 62.8-62.8l.6 0c34.7 0 62.8 28.1 62.8 62.8 0 25-19.2 62.8-62.8 62.8z\"],\n \"draft2digital\": [512, 512, [], \"f396\", \"M496 398.1l-144-82.2 0 64.7-91.3 0c30.8-35 81.8-95.9 111.8-149.3 35.2-62.6 16.1-123.4-12.8-153.3-4.4-4.6-62.2-62.9-166-41.2-59.1 12.4-89.4 43.4-104.3 67.3-13.1 20.9-17 39.8-18.2 47.7-5.5 33 19.4 67.1 56.7 67.1 31.7 0 57.3-25.7 57.3-57.4 0-27.1-19.7-52.1-48-56.8 1.8-7.3 17.7-21.1 26.3-24.7 41.1-17.3 78 5.2 83.3 33.5 8.3 44.3-37.1 90.4-69.7 127.6-76.6 87-142.8 155.7-161.1 174.8l336-.1 0 64.2 144-81.9zM385.9 371l47.1 27.2-47.1 27.2 0-54.4zM105.4 161.4a22.4 22.4 0 1 1 44.8 0 22.4 22.4 0 1 1 -44.8 0zM98.5 380.5c25.6-27.4 97.7-104.7 150.8-169.9 35.1-43.1 40.3-82.4 28.4-112.7-7.4-18.8-17.5-30.2-24.3-35.7 45.3 2.1 68 23.4 82.2 38.3 0 0 42.4 48.2 5.8 113.3-37 65.9-110.9 147.5-128.5 166.7l-114.4 0z\"],\n \"replyd\": [448, 512, [], \"f3e6\", \"M320 480l-192 0C57.6 480 0 422.4 0 352L0 160C0 89.6 57.6 32 128 32l192 0c70.4 0 128 57.6 128 128l0 192c0 70.4-57.6 128-128 128zM193.4 273.2c-6.1-2-11.6-3.1-16.4-3.1-7.2 0-13.5 1.9-18.9 5.6s-9.6 9-12.8 15.8l-1.1 0-4.2-18.3-28 0 0 138.9 36.1 0 0-89.7c1.5-5.4 4.4-9.8 8.7-13.2s9.8-5.1 16.2-5.1c4.6 0 9.8 1 15.6 3.1l4.8-34zM308.6 376.6c-3.2 2.4-7.7 4.8-13.7 7.1s-12.8 3.5-20.4 3.5c-12.2 0-21.1-3-26.5-8.9-5.5-5.9-8.5-14.7-9-26.4l83.3 0c.9-4.8 1.6-9.4 2.1-13.9 .5-4.4 .7-8.6 .7-12.5 0-10.7-1.6-19.7-4.7-26.9-3.2-7.2-7.3-13-12.5-17.2-5.2-4.3-11.1-7.3-17.8-9.2-6.7-1.8-13.5-2.8-20.6-2.8-21.1 0-37.5 6.1-49.2 18.3s-17.5 30.5-17.5 55c0 22.8 5.2 40.7 15.6 53.7 10.4 13.1 26.8 19.6 49.2 19.6 10.7 0 20.9-1.5 30.4-4.6s17.1-6.8 22.6-11.2l-12-23.6zm-21.8-70.3c3.8 5.4 5.3 13.1 4.6 23.1l-51.7 0c.9-9.4 3.7-17 8.2-22.6s11.5-8.5 21-8.5c8.2-.1 14.1 2.6 17.9 8zm79.9 2.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4-9.6-5.7-16.7-5.7c-6.7 0-12 1.9-16.1 5.7s-6.1 8.9-6.1 15.4 2 11.7 6.1 15.6zm0 100.5c4.1 3.9 9.4 5.8 16.1 5.8 7 0 12.6-1.9 16.7-5.8s6.1-9.1 6.1-15.6-2-11.6-6.1-15.4-9.6-5.7-16.7-5.7c-6.7 0-12 1.9-16.1 5.7s-6.1 8.9-6.1 15.4c0 6.6 2 11.7 6.1 15.6z\"],\n \"empire\": [512, 512, [], \"f1d1\", \"M295.6 54.2c-10.8-2.2-22.1-3.3-33.5-3.6l0-18.2c78.1 2.2 146.1 44 184.6 106.6l-15.8 9.1c-6.1-9.7-12.7-18.8-20.2-27.1l-18 15.5c-26-29.6-61.4-50.7-101.9-58.4l4.8-23.9zM61.4 322.4l23-7.7c-6.4-18.3-10-38.2-10-58.7s3.3-40.4 9.7-58.7l-22.7-7.7c3.6-10.8 8.3-21.3 13.6-31l-15.8-9.1C42 181 32.1 217.5 32.1 256s10 75 27.1 106.6L75 353.5c-5.3-10-9.7-20.3-13.6-31.1zM221.1 434c-40.4-8-75.8-29.1-101.9-58.7l-18 15.8c-7.5-8.6-14.4-17.7-20.2-27.4l-16 9.4c38.5 62.3 106.8 104.3 184.9 106.6l0-18.3c-11.3-.3-22.7-1.7-33.5-3.6l4.7-23.8zM101.3 120.9l18 15.5c26-29.6 61.4-50.7 101.9-58.4l-4.7-23.8c10.8-2.2 22.1-3.3 33.5-3.6l0-18.2C171.9 34.6 103.9 76.4 65.4 139l15.8 9.1c6-9.7 12.6-18.9 20.1-27.2zM410.7 391.1l-18-15.8c-26 29.6-61.4 50.7-101.9 58.7l4.7 23.8c-10.8 1.9-22.1 3.3-33.5 3.6l0 18.3c78.1-2.2 146.4-44.3 184.9-106.6l-16.1-9.4c-5.7 9.7-12.6 18.8-20.1 27.4zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm483.8 0a235.8 235.8 0 1 0 -471.6 0 235.8 235.8 0 1 0 471.6 0zm-39-106.6L437 158.5c5.3 9.7 10 20.2 13.6 31l-22.7 7.7c6.4 18.3 9.7 38.2 9.7 58.7s-3.6 40.4-10 58.7l23 7.7c-3.9 10.8-8.3 21-13.6 31l15.8 9.1C470 331 479.9 294.5 479.9 256s-9.9-75-27.1-106.6zm-183 177.7c16.3-3.3 30.4-11.6 40.7-23.5l51.2 44.8c11.9-13.6 21.3-29.3 27.1-46.8l-64.2-22.1c2.5-7.5 3.9-15.2 3.9-23.5s-1.4-16.1-3.9-23.5l64.5-22.1c-6.1-17.4-15.5-33.2-27.4-46.8l-51.2 44.8c-10.2-11.9-24.4-20.5-40.7-23.8l13.3-66.4c-8.6-1.9-17.7-2.8-27.1-2.8s-18.5 .8-27.1 2.8l13.3 66.4c-16.3 3.3-30.4 11.9-40.7 23.8l-51.2-44.8c-11.9 13.6-21.3 29.3-27.4 46.8l64.5 22.1c-2.5 7.5-3.9 15.2-3.9 23.5s1.4 16.1 3.9 23.5l-64.2 22.1c5.8 17.4 15.2 33.2 27.1 46.8l51.2-44.8c10.2 11.9 24.4 20.2 40.7 23.5l-13.3 66.7c8.6 1.7 17.7 2.8 27.1 2.8s18.5-1.1 27.1-2.8l-13.3-66.7z\"],\n \"accessible-icon\": [448, 512, [62107], \"f368\", \"M423.9 255.8L411 413.1c-3.3 40.7-63.9 35.1-60.6-4.9l10-122.5-41.1 2.3c10.1 20.7 15.8 43.9 15.8 68.5 0 41.2-16.1 78.7-42.3 106.5l-39.3-39.3c57.9-63.7 13.1-167.2-74-167.2-25.9 0-49.5 9.9-67.2 26L73 243.2c22-20.7 50.1-35.1 81.4-40.2l75.3-85.7-42.6-24.8-51.6 46C105.5 165.3 64.9 120 95 93.1l68-60.7c9.8-8.8 24.1-10.2 35.5-3.6 0 0 139.3 80.9 139.5 81.1 16.2 10.1 20.7 36 6.1 52.6l-58.4 66.5 106.1-5.9c18.5-1.1 33.6 14.4 32.1 32.7zM359 101.8A50.9 50.9 0 1 0 359 0 50.9 50.9 0 1 0 359 101.8zM179.6 456.5c-80.6 0-127.4-90.6-82.7-156.1L57.2 260.7C36.4 287 24 320.3 24 356.4 24 487.1 174.7 557.8 275.4 478.9l-39.7-39.7c-16 10.9-35.3 17.3-56.1 17.3z\"],\n \"quora\": [448, 512, [], \"f2c4\", \"M440.7 386.7l-29.3 0c-1.5 13.5-10.5 30.8-33 30.8-20.5 0-35.3-14.2-49.5-35.8 44.2-34.2 74.7-87.5 74.7-153 .1-117.5-96.6-196.7-198.4-196.7-99.7 0-197.7 79.7-197.7 196.7 0 134.1 131.3 221.6 249 189 19.7 33.6 45.7 62.3 95.2 62.3 81.8 0 90.8-75.3 89-93.3zM297.2 329.2c-19.5-29.2-43.7-52.2-91.5-52.2-30.5 0-54.3 10-69 22.8l12.2 24.3c6.2-3 13-4 19.8-4 35.5 0 53.7 30.8 69.2 61.3-10 3-20.7 4.2-32.7 4.2-75 0-107.5-53-107.5-156.7 0-104.4 32.5-157.9 107.5-157.9 76.2 0 108.7 53.5 108.7 157.7 .1 41.8-5.4 75.6-16.7 100.5z\"],\n \"cc-jcb\": [576, 512, [], \"f24b\", \"M431.5 244.3l0-32.3c41.2 0 38.5 .2 38.5 .2 7.3 1.3 13.3 7.3 13.3 16 0 8.8-6 14.5-13.3 15.8-1.2 .4-3.3 .3-38.5 .3zm42.8 20.2c-2.8-.7-3.3-.5-42.8-.5l0 35c39.6 0 40 .2 42.8-.5 7.5-1.5 13.5-8 13.5-17 0-8.7-6-15.5-13.5-17zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM182 192.3l-57 0c0 67.1 10.7 109.7-35.8 109.7-19.5 0-38.8-5.7-57.2-14.8l0 28c30 8.3 68 8.3 68 8.3 97.9 0 82-47.7 82-131.2zm178.5 4.5c-63.4-16-165-14.9-165 59.3 0 77.1 108.2 73.6 165 59.2l0-28.3C312.9 311.7 253 309 253 256s59.8-55.6 107.5-31.2l0-28zM544 286.5c0-18.5-16.5-30.5-38-32l0-.8c19.5-2.7 30.3-15.5 30.3-30.2 0-19-15.7-30-37-31 0 0 6.3-.3-120.3-.3l0 127.5 122.7 0c24.3 .1 42.3-12.9 42.3-33.2z\"],\n \"fedora\": [448, 512, [], \"f798\", \"M0 255.8C.1 132.2 100.3 32 224 32S448 132.3 448 256 347.8 479.9 224.1 480L50.9 480C22.8 480 .1 457.3 0 429.2l0 0 0-173.4 0 0zm342.6-63.1c0-39.7-35.6-68.5-73.2-68.5-34.9 0-65.8 26.3-70.1 59.9-.2 3.8-.4 5-.4 8.5-.1 21.1 0 42.8-.8 64.4 .9 26.1 1 52.1 0 76.6 0 27.1-19.4 45.5-44.7 45.5s-45.8-20.2-45.8-45.5c.5-27.7 22.6-45.3 48.5-46.1l.2 0 26.3-.2 0-37.3-26.3 .2c-47.1-.4-84.6 36.5-85.9 83.4 0 45.6 37.5 82.9 83 82.9 43 0 78.7-33.6 82.6-75.6l.2-53.5 32.6-.3c25.3 .2 25-37.8-.2-37.3l-32.4 .3c0-6.4 .1-12.8 .1-19.2 .1-12.7 .1-25.4-.1-38.2 .1-16.5 15.8-31.2 33.2-31.2 17.5 0 35.9 8.7 35.9 31.2 0 3.2-.1 5.1-.3 6.3-1.9 10.5 5.2 20.4 15.7 21.9 10.6 1.5 20.2-6.1 21.2-16.6 .6-4.2 .7-7.9 .7-11.6z\"],\n \"duolingo\": [576, 512, [], \"e812\", \"M504.3 230.5c10.4 88.5-43.4 172.1-128.2 199s-176.6-10.3-218.9-88.7c-72 3-137.4-39.8-163.2-105.5-2.6-6.6-1.9-14 1.9-19.9s10.2-9.7 17.2-10.1l96.1-6-23.8-75.9c-6.3-20-2.2-41.9 11-58.3s33.7-25 54.5-23c52.2 5 86.8 4.8 104-.6S300 16.7 339-16.9c15.9-13.7 37.7-18.5 57.8-12.7s36.1 21.3 42.4 41.4L462.8 87 543.6 37.3c6-3.7 13.4-4.3 19.9-1.6s11.3 8.3 12.9 15.2c16.2 68.2-12.4 140.3-72.1 179.5zM258.5 475.9l0 0c15.1 7.5 21.5 25.8 14.2 41s-25.4 21.9-40.7 14.9l-43.9-21c-15.1-7.5-21.5-25.8-14.2-41s25.4-21.9 40.7-14.9l43.8 21zM564.6 345.7c14.8 8.4 20 27.3 11.6 42.2l-23.9 42.4c-8.7 14.3-27.1 19.2-41.6 10.9s-19.9-26.6-12-41.4l23.9-42.4c4-7.1 10.7-12.4 18.6-14.6s16.3-1.2 23.4 2.9z\"],\n \"firstdraft\": [384, 512, [], \"f3a1\", \"M384 192l-64 0 0 128-128 0 0 128-192 0 0-25.6 166.4 0 0-128 128 0 0-128 89.6 0 0 25.6zm-25.6 38.4l0 128-128 0 0 128-166.4 0 0 25.6 192 0 0-128 128 0 0-153.6-25.6 0zm25.6 192l-89.6 0 0 89.6 25.6 0 0-64 64 0 0-25.6zM0 0l0 384 128 0 0-128 128 0 0-128 128 0 0-128-384 0z\"],\n \"freebsd\": [448, 512, [], \"f3a4\", \"M303.7 96.2c11.1-11.1 115.5-77 139.2-53.2 23.7 23.7-42.1 128.1-53.2 139.2s-39.4 .9-63.1-22.9c-23.8-23.7-34.1-52-22.9-63.1zM109.9 68.1C73.6 47.5 22 24.6 5.6 41.1-11 57.7 12.7 110.5 33.5 146.8 52 114.6 78.3 87.5 109.9 68.1zM406.7 174c3.3 11.3 2.7 20.7-2.7 26.1-20.3 20.3-87.5-27-109.3-70.1-18-32.3-11.1-53.4 14.9-48.7 5.7-3.6 12.3-7.6 19.6-11.6-29.8-15.5-63.6-24.3-99.5-24.3-119.1 0-215.6 96.5-215.6 215.6 0 119 96.5 215.6 215.6 215.6S445.3 380.1 445.3 261c0-38.4-10.1-74.5-27.7-105.8-3.9 7-7.6 13.3-10.9 18.8z\"],\n \"odysee\": [512, 512, [], \"e5c6\", \"M406.7 463c-42.3 30.8-94.4 49-150.7 49-111.1 0-205.7-70.8-241.1-169.8 2.4 1.7 5.9 3.6 7.9 4.4 16.3 7.4 40.1-5.4 62.9-28.7 6.9-6.9 14.4-12.4 22.8-17.3 18.3-11.9 37.6-20.8 58.4-27.2 0 0 22.3 34.2 43.1 74.8s-22.3 54-27.2 54c-.3 0-.8 0-1.5-.1-11-.5-70-3-56 51.1 14.9 57.4 97.5 36.6 139.6 8.9s31.7-118.3 31.7-118.3c41.1-6.4 54 37.1 57.9 59.4 .8 4.6 1.1 9.9 1.4 15.5 1.1 21.2 2.3 45.6 35.3 46.4 5.3 0 10.6-.8 15.5-2l0-.1zm-95.3-23.7c-2-.5-3.5-2.5-3-5 1-2.5 3-3.5 5-3s3.5 3 3 5-2.5 3.5-5 3zm-207-95.6c1.5-.5 3.5 1 4 3 0 2-1 4-3 4-1.5 .5-3.5-1-4-3-.5-1.5 1-3.5 3-4zM451.8 421c37.5-44.6 60.2-102.2 60.2-165 0-67.5-26.1-128.9-68.8-174.7-.1 23.5-6.1 48.2-16.8 69.2-11.9 20.3-49 58.9-69.8 78.7-.7 .3-1.1 .9-1.5 1.4-.2 .2-.3 .4-.5 .6-5 6.9-4 16.8 3 21.8 21.3 15.8 56.4 45.6 59.4 72.8 3.5 34.9 27.9 75.6 34.2 86.2 .8 1.3 1.3 2.1 1.4 2.4 0 2.2-.4 4.3-.8 6.5l0 .1zM390.7 251c-.5 3 1 5.9 4 6.4s5.9-1 6.4-4-1-5.9-4-6.4c-3-1-5.9 1-6.4 4zm61.4-60.9l-11.4 5.4-3 12.9-5.4-11.4-12.9-3 11.4-5.4 3-12.9 5.4 11.4 12.9 3zM395.5 41.3c-16.2 8.2-22.1 32.8-29 61.4-.3 1.4-.7 2.8-1 4.2-9.5 38.5-30.6 37.6-41.7 37.2-1.1 0-2-.1-2.9-.1-5.1 0-6-4-8.9-17.1-2.6-12.1-6.9-32-17.9-63.6-22.7-65.8-82.7-49.4-128.2-22.2-55.3 33.1-34.4 101.9-19.8 149.4 .7 2.2 1.4 4.4 2 6.6-4 4-13.8 7.5-26 11.9-12.1 4.3-26.6 9.5-40.3 16.9-33.9 18-70.3 49-79.8 62.6-1.3-10.7-2-21.5-2-32.5 0-141.4 114.6-256 256-256 51.4 0 99.4 15.2 139.5 41.3zM58.9 189.6c-1.5-2-4.5-3-6.4-1.5s-3 4.5-1.5 6.4 4.5 3 6.4 1.5c2.5-1.5 3-4.5 1.5-6.4zM327.3 64.9c2-1.5 5-.5 6.4 1.5 1.5 2.5 1 5.4-1.5 6.4-2 1.5-5 .5-6.4-1.5s-.5-5 1.5-6.4zM95.1 105c-.5 1.5 .5 3 2 3 1.5 .5 3-.5 3-2 .5-1.5-.5-3-2-3s-3 .5-3 2zm84.7-.5c-3.5-43.1 37.1-54 37.1-54 44.1-15.4 56 5.9 66.4 37.6s3 42.6-38.6 58.9-61.9-4.5-64.9-42.6l0 .1zm89.6 14.9l1 0c2.5 0 5-2 5-5 2-6.9 1-14.4-2-20.8-1.5-2-4-3.5-6.4-2.5-3 1-4.5 4-3.5 6.9 2 4.5 3 9.9 1.5 14.9-.5 3 1.5 5.9 4.5 6.4l-.1 .1zm-9.9-41.6c-2 0-4-1-5-3s-2-3.5-3-5c-2-2-2-5.4 0-7.4s5.4-2 7.4 0c2 2.5 3.5 5 5 7.4s.5 5.9-2.5 7.4c-.6 0-1 .2-1.3 .3-.2 .1-.4 .2-.6 .2l0 .1z\"],\n \"gg-circle\": [512, 512, [], \"f261\", \"M257.5 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM208 382.8l-125.7-125.7 125.7-125.7 35.2 35.4-24.2 24.2-11.1-11.1-77.2 77.2 77.2 77.2 26.6-26.6-53.1-52.9 24.4-24.4 77.2 77.2-75 75.2zm99-2.2l-35.2-35.2 24.1-24.4 11.1 11.1 77.2-77.2-77.2-77.2-26.5 26.5 53.1 52.9-24.4 24.4-77.2-77.2 75-75 125.7 125.7-125.7 125.6z\"],\n \"cloudflare\": [640, 512, [], \"e07d\", \"M407.9 319.9L177.1 317c-.7 0-1.4-.2-2-.5s-1.2-.8-1.6-1.4c-.4-.6-.7-1.3-.7-2s0-1.4 .2-2.1c.4-1.1 1.1-2.1 2.1-2.8s2.1-1.2 3.3-1.2l232.9-2.9c27.6-1.3 57.5-23.6 68-50.8l13.3-34.5c.4-.9 .5-1.9 .5-2.9 0-.5-.1-1.1-.2-1.6-7.4-32.2-25-61.1-50.3-82.3s-56.7-33.7-89.7-35.5-65.6 7.3-93 25.7-48 45.3-58.8 76.5c-11.3-8.5-24.9-13.3-39-13.7s-28 3.5-39.8 11.4-20.8 19.1-25.9 32.3-5.9 27.6-2.4 41.3c-52.3 1.5-94.2 44.1-94.2 96.5 0 4.7 .3 9.3 1 14 .2 1.1 .7 2.1 1.5 2.8s1.9 1.1 2.9 1.1l426.1 .1c0 0 .1 0 .1 0 1.2 0 2.3-.4 3.3-1.1s1.6-1.7 2-2.9l3.3-11.3c3.9-13.4 2.4-25.8-4.1-34.9-6-8.4-16.1-13.3-28.2-13.9zm105.9-98.8c-2.1 0-4.3 .1-6.4 .2-.8 .1-1.5 .3-2.1 .8s-1 1.1-1.3 1.8l-9.1 31.2c-3.9 13.4-2.4 25.8 4.1 34.9 6 8.4 16.1 13.3 28.2 13.9l49.2 2.9c.7 0 1.4 .2 2 .5s1.1 .8 1.5 1.4c.4 .6 .7 1.3 .8 2s0 1.5-.2 2.1c-.4 1.1-1.1 2.1-2.1 2.8s-2.1 1.2-3.3 1.2l-51.1 2.9c-27.8 1.3-57.7 23.6-68.1 50.8l-3.7 9.6c-.2 .4-.2 .8-.2 1.3s.2 .8 .4 1.2 .6 .7 .9 .9 .8 .3 1.2 .3c0 0 .1 0 .1 0l175.9 0c1 0 2-.3 2.8-.9s1.4-1.5 1.7-2.4c3.1-11.1 4.7-22.5 4.7-34 0-69.3-56.5-125.5-126.1-125.5z\"],\n \"hackerrank\": [512, 512, [], \"f5f7\", \"M477.9 128C463.4 103 285.5 0 256.5 0s-206.9 102.8-221.3 128-14.5 230.8 0 256 192.4 128 221.3 128 206.8-102.9 221.3-128 14.5-231 0-256zM316.5 414.2c-4 0-40.9-35.8-38-38.7 .9-.9 6.3-1.5 17.5-1.8 0-26.2 .6-68.6 .9-86.3 0-2-.4-3.4-.4-5.8l-79.9 0c0 7.1-.5 36.2 1.4 72.9 .2 4.5-1.6 6-5.7 5.9-10.1 0-20.3-.1-30.4-.1-4.1 0-5.9-1.5-5.7-6.1 .9-33.4 3-84-.2-212.7l0-3.2c-9.7-.4-16.4-1-17.3-1.8-2.9-2.9 34.5-38.7 38.5-38.7s41.2 35.8 38.3 38.7c-.9 .9-7.9 1.5-16.8 1.8l0 3.2c-2.4 25.8-2 79.6-2.6 105.4l80.3 0c0-4.6 .4-34.7-1.2-83.6-.1-3.4 1-5.2 4.2-5.2 11.1-.1 22.2-.1 33.2-.1 3.5 0 4.6 1.7 4.5 5.4-3.7 191.3-.7 177.9-.7 210.3 8.9 .4 16.8 1 17.7 1.8 2.9 2.9-33.6 38.7-37.6 38.7l0 0z\"],\n \"skyatlas\": [640, 512, [], \"f216\", \"M640 329.3c0 65.9-52.5 114.4-117.5 114.4-165.9 0-196.6-249.7-359.7-249.7-146.9 0-147.1 212.2 5.6 212.2 42.5 0 90.9-17.8 125.3-42.5 5.6-4.1 16.9-16.3 22.8-16.3s10.9 5 10.9 10.9c0 7.8-13.1 19.1-18.7 24.1-40.9 35.6-100.3 61.2-154.7 61.2-83.4 .1-154-59-154-144.9S67.5 149.6 152.8 149.6c185.3 0 222.5 245.9 361.9 245.9 99.9 0 94.8-139.7 3.4-139.7-17.5 0-35 11.6-46.9 11.6-8.4 0-15.9-7.2-15.9-15.6 0-11.6 5.3-23.7 5.3-36.3 0-66.6-50.9-114.7-116.9-114.7-53.1 0-80 36.9-88.8 36.9-6.2 0-11.2-5-11.2-11.2 0-5.6 4.1-10.3 7.8-14.4 25.3-28.8 64.7-43.7 102.8-43.7 79.4 0 139.1 58.4 139.1 137.8 0 6.9-.3 13.7-1.2 20.6 11.9-3.1 24.1-4.7 35.9-4.7 60.7 0 111.9 45.3 111.9 107.2z\"],\n \"deskpro\": [512, 512, [], \"f38f\", \"M222 512l31.1-38.4c12.3-.2 25.6-1.4 36.5-6.6 38.9-18.6 38.4-61.9 38.3-63.8-.1-5-.8-4.4-28.9-37.4l79.1 0c-.2 50.1-7.3 68.5-10.2 75.7-9.4 23.7-43.9 62.8-95.2 69.4-8.7 1.1-32.8 1.2-50.7 1.1zM422.4 344.3c38.6 0 58.5-13.6 73.7-30.9l-175.5-.3-17.4 31.3 119.2-.1zM378.8 120.4l0 168.3-73.5 0-32.7 55.5-6.5 0c-52.3 0-58.1-56.5-58.3-58.9-1.2-13.2-21.3-11.6-20.1 1.8 1.4 15.8 8.8 40 26.4 57.1l-91 0c-25.5 0-110.8-26.8-107-114l0-213.3c0-16 9.7-16.6 15-16.8l82 0c.2 0 .3 .1 .5 .1 4.3-.4 50.1-2.1 50.1 43.7 0 13.3 20.2 13.4 20.2 0 0-18.2-5.5-32.8-15.8-43.7l84.2 0C361-.2 378.8 79.6 378.8 120.4zm-132.5 56l64 29.3c13.3-45.5-42.2-71.7-64-29.3z\"],\n \"resolving\": [512, 512, [], \"f3e7\", \"M289.2 278.2c46-13.3 49.6-23.5 44-43.4L322 195.5c-6.1-20.9-18.4-28.1-71.1-12.8l-188.2 54.1 28.6 98.6 197.9-57.2zM256.5 8C139.4 8 41.2 88.7 15.2 197.5l221.9-63.9c34.8-10.2 54.2-11.7 79.3-8.2 36.3 6.1 52.7 25 61.4 55.2l10.7 37.8c8.2 28.1 1 50.6-23.5 73.6-19.4 17.4-31.2 24.5-61.4 33.2l-92.6 26.6 220.4 27.1 9.7 34.2-48.1 13.3-286.8-37.3 23 80.2C166 491.3 209.5 504 255.5 504 392.5 504 504 392.6 504 255.7 505 119.4 393.5 8 256.5 8zM46.3 388.6L8 256.8c0 48.5 14.3 93.4 38.3 131.8z\"],\n \"blackberry\": [512, 512, [], \"f37b\", \"M166 116.9c0 23.4-16.4 49.1-72.5 49.1l-70.1 0 21-88.8 67.8 0c42.1 0 53.8 23.3 53.8 39.7zM292.2 77.2l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-25.7 70.1-49.1 .1-16.4-11.6-39.7-53.7-39.7zM88.8 208.1l-67.8 0-21 88.8 70.1 0c56.1 0 72.5-23.4 72.5-49.1 0-16.3-11.7-39.7-53.8-39.7zm180.1 0l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-23.4 70.1-49.1 0-16.3-11.7-39.7-53.7-39.7zm189.3-53.8l-67.8 0-18.7 88.8 70.1 0c53.8 0 70.1-23.4 70.1-49.1 .1-16.3-11.6-39.7-53.7-39.7zm-28 137.9l-67.8 0-18.7 88.8 70.1 0c56.1 0 70.1-23.4 70.1-49.1 0-16.3-11.6-39.7-53.7-39.7zM240.8 346l-67.8 0-18.7 88.8 70.1 0c56.1 0 70.1-25.7 70.1-49.1 .1-16.3-11.6-39.7-53.7-39.7z\"],\n \"stripe-s\": [384, 512, [], \"f42a\", \"M155.6 154.6c0-22.3 18.6-30.9 48.4-30.9 43.4 0 98.5 13.3 141.9 36.7l0-134.3c-47.3-18.9-94.5-26.1-141.8-26.1-115.7 0-192.8 60.4-192.8 161.4 0 157.9 216.8 132.3 216.8 200.4 0 26.4-22.9 34.9-54.7 34.9-47.2 0-108.2-19.5-156.1-45.5l0 128.5c49.3 21.3 102.3 32.3 156 32.4 118.6 0 200.3-51 200.3-153.6 0-170.2-218-139.7-218-203.9z\"],\n \"square-behance\": [448, 512, [\"behance-square\"], \"f1b5\", \"M155.3 318.4c17.2 0 31.2-6.1 31.2-25.4 0-19.7-11.7-27.4-30.3-27.5l-46 0 0 52.9 45.1 0zm-5.4-129.6l-39.6 0 0 44.8 42.7 0c15.1 0 25.8-6.6 25.8-22.9 0-17.7-13.7-21.9-28.9-21.9zm129.5 74.8l62.2 0c-1.7-18.5-11.3-29.7-30.5-29.7-18.3 0-30.5 11.4-31.7 29.7zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM349.5 185l-77.8 0 0-18.9 77.8 0 0 18.9zM193.7 243.7c23.6 6.7 35 27.5 35 51.6 0 39-32.7 55.7-67.6 55.9l-93.1 0 0-192 90.5 0c32.9 0 61.4 9.3 61.4 47.5 0 19.3-9 28.8-26.2 37zm118.7-38.6c43.5 0 67.6 34.3 67.6 75.4 0 1.6-.1 3.3-.2 5 0 .8-.1 1.5-.1 2.2l-100.2 0c0 22.2 11.7 35.3 34.1 35.3 11.6 0 26.5-6.2 30.2-18.1l33.7 0c-10.4 31.9-31.9 46.8-65.1 46.8-43.8 0-71.1-29.7-71.1-73 0-41.8 28.7-73.6 71.1-73.6z\"],\n \"servicestack\": [512, 512, [], \"f3ec\", \"M96 216c81.7 10.2 273.7 102.3 304 232L8 448c99.5-8.1 184.5-137 88-232zM128 64c32.3 35.6 47.7 83.9 46.4 133.6 82.9 33.7 207.3 123.7 233.6 250.4l96 0C463.3 231.9 230.8 79.5 128 64z\"],\n \"rocketchat\": [576, 512, [], \"f3e8\", \"M284.5 224.8c-6.7 0-13.3 2.1-18.9 5.8s-9.9 9.1-12.5 15.4-3.2 13.1-1.9 19.7 4.6 12.7 9.4 17.4 10.9 8 17.5 9.3 13.5 .6 19.7-2 11.5-7 15.3-12.6 5.7-12.2 5.7-18.9c0-9.1-3.7-17.8-10.1-24.2s-15.1-10-24.2-9.9zm-110.4 0c-6.7 0-13.3 2.1-18.9 5.8s-9.9 9.1-12.5 15.4-3.2 13.1-1.9 19.7 4.6 12.7 9.4 17.4 10.9 8 17.5 9.3 13.5 .6 19.7-2 11.5-7 15.3-12.6 5.7-12.2 5.7-18.9c0-9.1-3.7-17.8-10.1-24.2s-15.1-10-24.2-10l0 0zm220.9 0a34.1 34.1 0 1 0 .4 68.2 34.1 34.1 0 1 0 -.4-68.2zm153.8-55.3c-15.5-24.2-37.3-45.6-64.7-63.6-52.9-34.8-122.4-54-195.7-54-24.2 0-48.3 2.1-72 6.4-14.9-14.3-31.5-26.6-49.5-36.6-66.8-33.3-125.6-20.9-155.3-10.2-2.3 .8-4.3 2.1-5.9 3.9s-2.7 3.9-3.3 6.2-.5 4.7 .1 7.1 1.8 4.4 3.5 6.1C27 56.5 61.6 99.3 53.1 138.3 20 172.2 2 213 2 255.6 2 299 20 339.8 53.1 373.7 61.6 412.7 27 455.6 6 477.2 4.3 479 3.2 481.1 2.5 483.4s-.7 4.7-.1 7 1.7 4.5 3.3 6.2 3.6 3.1 5.9 3.9c29.7 10.7 88.5 23.1 155.3-10.2 18-10 34.7-22.3 49.5-36.6 23.8 4.3 47.9 6.4 72 6.4 73.3 0 142.8-19.2 195.7-54 27.4-18 49.1-39.4 64.7-63.6 17.3-26.9 26.1-55.9 26.1-86.1 0-31-8.8-60-26.1-86.9l0 0zM285.4 409.9c-30.2 .1-60.3-3.8-89.4-11.5l-20.1 19.4c-11.2 10.7-23.6 20-37.1 27.6-16.4 8.2-34.2 13.3-52.5 14.9 1-1.8 1.9-3.6 2.8-5.4 20.2-37.1 25.6-70.5 16.3-100.1-33-26-52.8-59.2-52.8-95.4 0-83.1 104.3-150.5 232.8-150.5s232.9 67.4 232.9 150.5c0 83.1-104.3 150.5-232.9 150.5z\"],\n \"rebel\": [512, 512, [], \"f1d0\", \"M256.9 504c-139.3 0-247.5-116.2-243.3-254.1 2.8-79.2 43.2-152.2 116.5-200.4 .3 0 1.9-.6 1.1 .8-5.8 5.5-111.3 129.8-14.1 226.4 49.8 49.5 90 2.5 90 2.5 38.5-50.1-.6-125.9-.6-125.9-10-24.9-45.7-40.1-45.7-40.1l28.8-31.8c24.4 10.5 43.2 38.7 43.2 38.7 .8-29.6-21.9-61.4-21.9-61.4L255.5 8 299.8 58.1c-20.5 28.8-21.9 62.6-21.9 62.6 13.8-23 43.5-39.3 43.5-39.3l28.5 31.8c-27.4 8.9-45.4 39.9-45.4 39.9-15.8 28.5-27.1 89.4 .6 127.3 32.4 44.6 87.7-2.8 87.7-2.8 102.7-91.9-10.5-225-10.5-225-6.1-5.5 .8-2.8 .8-2.8 50.1 36.5 114.6 84.4 116.2 204.8 2 145.6-99.9 249.4-242.4 249.4z\"],\n \"square-web-awesome\": [448, 512, [], \"e683\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM235 177.6l53 46.4 52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224c-12.9-.4-23.2-11-23.2-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224 213.1 177.6c-8.9-4.1-15-13.1-15-23.6 0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"],\n \"linktree\": [448, 512, [], \"e7d8\", \"M32 173.4l125.8 0-89.4-85.4 49.5-51 85.2 87.8 0-124.8 73.9 0 0 124.8 85.2-87.6 49.4 50.8-89.4 85.2 125.7 0 0 70.5-126.4 0 90 87.6-49.3 49.8-122.2-123-122.2 123-49.5-49.6 90-87.6-126.4 0 0-70.5zM202.9 344.8l73.9 0 0 167.2-73.9 0 0-167.2z\"],\n \"simplybuilt\": [512, 512, [], \"f215\", \"M481.6 64l-106 0C361.1 64 349 75.8 349 90.3l0 39.6-185.3 0 0-39.6c0-14.5-12-26.3-26.6-26.3l-106 0C16.5 64 4.7 75.8 4.7 90.3l0 331.4c0 14.5 11.8 26.3 26.6 26.3l450.4 0c14.8 0 26.6-11.8 26.6-26.3l0-331.4c-.2-14.5-12-26.3-26.7-26.3zM150.5 222.7a66.5 66.5 0 1 1 -.3 133.1 66.5 66.5 0 1 1 .3-133.1zm211.9 .1a66.5 66.5 0 1 1 .3 132.9 66.5 66.5 0 1 1 -.3-132.9z\"],\n \"stubber\": [448, 512, [], \"e5c7\", \"M136.5 294.2l58.8 22.9c9.1-36.8 25.4-61.1 55-61.1 49.4 0 71.4 63.6 142.4 63.6 15.6 0 35.9-2.8 55.3-13.3l0 61.7c0 61.8-50.4 112-112.3 112L0 480 41.8 424 0 368 41.7 312 0 256.1 41.8 200.1 0 144.1 41.8 88 0 32 335.7 32C397.6 32 448 82.3 448 144.1l0 51.3c-9.2 36.3-25.9 60.6-55 60.6-49.6 0-71.6-63.5-142.4-63.5-35.9 0-95.2 14.6-114.1 101.6l0 .1z\"],\n \"apper\": [640, 512, [], \"f371\", \"M42.1 239.1c22.2 0 29 2.8 33.5 14.6l.8 0 0-22.9c0-11.3-4.8-15.4-17.9-15.4-11.3 0-14.4 2.5-15.1 12.8l-38.6 0c.3-13.9 1.5-19.1 5.8-24.4 7.3-8.8 18.9-11.8 46.1-11.8 33 0 47.1 5 53.9 18.9 2 4.3 4 15.6 4 23.7l0 76.3-38.3 0 1.3-19.1-1 0c-5.3 15.6-13.6 20.4-35.5 20.4-30.3 0-41.1-10.1-41.1-37.3 0-25.2 12.3-35.8 42.1-35.8zm17.1 48.1c13.1 0 16.9-3 16.9-13.4 0-9.1-4.3-11.6-19.6-11.6-13.1 0-17.9 3-17.9 12.1-.1 10.4 3.7 12.9 20.6 12.9zM137 192.3l38.3 0-1.5 20.6 .8 0c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.2 10.1-20.4 0-29.2-5.5-33.8-21.2l-.8 0 0 70.3-39.5 0 0-169zM217.9 253c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm57.9-60.7l38.3 0-1.5 20.6 .8 0c9.1-17.1 15.9-20.9 37.5-20.9 14.4 0 24.7 3 31.5 9.1 9.8 8.6 12.8 20.4 12.8 48.1 0 30-3 43.1-12.1 52.9-6.8 7.3-16.4 10.1-33.3 10.1-20.4 0-29.2-5.5-33.8-21.2l-.8 0 0 70.3-39.5 0 0-169 .1 0zM356.7 253c0-27.5-3.3-32.5-20.7-32.5-16.9 0-20.7 5-20.7 28.7 0 28 3.5 33.5 21.2 33.5 16.4 0 20.2-5.6 20.2-29.7zm53.8-3.8c0-25.4 3.3-37.8 12.3-45.8 8.8-8.1 22.2-11.3 45.1-11.3 42.8 0 55.7 12.8 55.7 55.7l0 11.1-75.3 0c-.3 2-.3 4-.3 4.8 0 16.9 4.5 21.9 20.1 21.9 13.9 0 17.9-3 17.9-13.9l37.5 0 0 2.3c0 9.8-2.5 18.9-6.8 24.7-7.3 9.8-19.6 13.6-44.3 13.6-27.5 0-41.6-3.3-50.6-12.3-8.5-8.5-11.3-21.3-11.3-50.8zm76.4-11.6c-.3-1.8-.3-3.3-.3-3.8 0-12.3-3.3-14.6-19.6-14.6-14.4 0-17.1 3-18.1 15.1l-.3 3.3 38.3 0zm55.6-45.3l38.3 0-1.8 19.9 .7 0c6.8-14.9 14.4-20.2 29.7-20.2 10.8 0 19.1 3.3 23.4 9.3 5.3 7.3 6.8 14.4 6.8 34 0 1.5 0 5 .2 9.3l-35 0c.3-1.8 .3-3.3 .3-4 0-15.4-2-19.4-10.3-19.4-6.3 0-10.8 3.3-13.1 9.3-1 3-1 4.3-1 12.3l0 68-38.3 0 0-118.5 .1 0z\"],\n \"google-scholar\": [512, 512, [], \"e63b\", \"M390.9 298.5s0 .1 .1 .1c9.2 19.4 14.4 41.1 14.4 64-.1 82.5-66.9 149.4-149.4 149.4S106.7 445.1 106.7 362.7c0-22.9 5.2-44.6 14.4-64 1.7-3.6 3.6-7.2 5.6-10.7 4.4-7.6 9.4-14.7 15-21.3 27.4-32.6 68.5-53.3 114.4-53.3 33.6 0 64.6 11.1 89.6 29.9 9.1 6.9 17.4 14.7 24.8 23.5 5.6 6.6 10.6 13.8 15 21.3 2 3.4 3.8 7 5.5 10.5l-.1-.1zm26.4-18.8c-30.1-58.4-91-98.4-161.3-98.4s-131.2 40-161.3 98.4l-94.7-77 256-202.7 256 202.7-94.7 77.1 0-.1z\"],\n \"yarn\": [512, 512, [], \"f7e3\", \"M401.9 345.2c-39 9.3-48.4 32.1-104 47.4 0 0-2.7 4-10.4 5.8-13.4 3.3-63.9 6-68.5 6.1-12.4 .1-19.9-3.2-22-8.2-6.4-15.3 9.2-22 9.2-22-8.1-5-9-9.9-9.8-8.1-2.4 5.8-3.6 20.1-10.1 26.5-8.8 8.9-25.5 5.9-35.3 .8-10.8-5.7 .8-19.2 .8-19.2s-5.8 3.4-10.5-3.6c-6-9.3-17.1-37.3 11.5-62-1.3-10.1-4.6-53.7 40.6-85.6 0 0-20.6-22.8-12.9-43.3 5-13.4 7-13.3 8.6-13.9 5.7-2.2 11.3-4.6 15.4-9.1 20.6-22.2 46.8-18 46.8-18s12.4-37.8 23.9-30.4c3.5 2.3 16.3 30.6 16.3 30.6s13.6-7.9 15.1-5c8.2 16 9.2 46.5 5.6 65.1-6.1 30.6-21.4 47.1-27.6 57.5-1.4 2.4 16.5 10 27.8 41.3 10.4 28.6 1.1 52.7 2.8 55.3 .8 1.4 13.7 .8 36.4-13.2 12.8-7.9 28.1-16.9 45.4-17 16.7-.5 17.6 19.2 4.9 22.2zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm416.7 75.2c-1.7-13.6-13.2-23-28-22.8-22 .3-40.5 11.7-52.8 19.2-4.8 3-8.9 5.2-12.4 6.8 3.1-44.5-22.5-73.1-28.7-79.4 7.8-11.3 18.4-27.8 23.4-53.2 4.3-21.7 3-55.5-6.9-74.5-1.6-3.1-7.4-11.2-21-7.4-9.7-20-13-22.1-15.6-23.8-1.1-.7-23.6-16.4-41.4 28-12.2 .9-31.3 5.3-47.5 22.8-2 2.2-5.9 3.8-10.1 5.4l.1 0c-8.4 3-12.3 9.9-16.9 22.3-6.5 17.4 .2 34.6 6.8 45.7-17.8 15.9-37 39.8-35.7 82.5-34 36-11.8 73-5.6 79.6-1.6 11.1 3.7 19.4 12 23.8 12.6 6.7 30.3 9.6 43.9 2.8 4.9 5.2 13.8 10.1 30 10.1 6.8 0 58-2.9 72.6-6.5 6.8-1.6 11.5-4.5 14.6-7.1 9.8-3.1 36.8-12.3 62.2-28.7 18-11.7 24.2-14.2 37.6-17.4 12.9-3.2 21-15.1 19.4-28.2z\"],\n \"stack-overflow\": [384, 512, [], \"f16c\", \"M291 311l-195.7-41.3-8.2 39.3 195.7 41 8.2-39zm51-87L188.5 95.7 163 126.5 316.5 254.8 342 224zm-31.2 39.7L129.5 179 112.8 215.5 294 300 310.8 263.7zM262.3 32l-32 24 119.3 160.3 32-24-119.3-160.3zm20.5 328l-200 0 0 39.7 200 0 0-39.7zm39.7 80l-279.5 0 0-120-40 0 0 160 359.5 0 0-160-40 0 0 120z\"],\n \"bluetooth\": [384, 512, [], \"f293\", \"M260.6 171.1l-42.9 42.9-.3-86 43.2 43.1zM217.4 390.9l43.1-43.1-42.9-42.9-.2 86zM384 259.4C384 465 312.1 512 198.9 512S0 465 0 259.4 83.4 0 196.6 0 384 53.9 384 259.4zm-158.5 0l79.4-88.6-125.1-134.3 0 176.9-73.8-73.8-27 26.9 92.7 93-92.7 93 26.9 26.9 73.8-73.8 2.3 170 127.4-127.5-83.9-88.7z\"],\n \"creative-commons-nc-jp\": [512, 512, [], \"f4ea\", \"M255.7 8C111.6 8 8 124.8 8 256 8 392.4 119.8 504 255.7 504 385.9 504 504 403.2 504 256 504 117.2 396.5 8 255.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-21.1 3-41.2 9-60.3l127 56.5-27.9 0 0 38.6 58.1 0 5.7 11.8 0 18.7-63.8 0 0 38.7 63.8 0 0 56 61.7 0 0-56 64.2 0 0-35.7 81 36.1c-1.5 2.2-57.1 98.3-175.2 98.3zm87.6-137.3l-57.6 0 0-18.7 2.9-5.6 54.7 24.3zm6.5-51.4l0-17.8-38.6 0 63-116-65.8 0-43.4 96-23-10.2-39.6-85.7-65.8 0 27.3 51-81.9-36.5c27.8-44.1 82.6-98.1 173.7-98.1 112.8 0 203 90 203 203.4 0 21-2.7 40.6-7.9 59L350.4 270z\"],\n \"reddit\": [512, 512, [], \"f1a1\", \"M0 256C0 114.6 114.6 0 256 0S512 114.6 512 256 397.4 512 256 512L37.1 512c-13.7 0-20.5-16.5-10.9-26.2L75 437C28.7 390.7 0 326.7 0 256zM349.6 153.6c23.6 0 42.7-19.1 42.7-42.7s-19.1-42.7-42.7-42.7c-20.6 0-37.8 14.6-41.8 34-34.5 3.7-61.4 33-61.4 68.4l0 .2c-37.5 1.6-71.8 12.3-99 29.1-10.1-7.8-22.8-12.5-36.5-12.5-33 0-59.8 26.8-59.8 59.8 0 24 14.1 44.6 34.4 54.1 2 69.4 77.6 125.2 170.6 125.2s168.7-55.9 170.6-125.3c20.2-9.6 34.1-30.2 34.1-54 0-33-26.8-59.8-59.8-59.8-13.7 0-26.3 4.6-36.4 12.4-27.4-17-62.1-27.7-100-29.1l0-.2c0-25.4 18.9-46.5 43.4-49.9 4.4 18.8 21.3 32.8 41.5 32.8l.1 .2zM177.1 246.9c16.7 0 29.5 17.6 28.5 39.3s-13.5 29.6-30.3 29.6-31.4-8.8-30.4-30.5 15.4-38.3 32.1-38.3l.1-.1zm190.1 38.3c1 21.7-13.7 30.5-30.4 30.5s-29.3-7.9-30.3-29.6 11.8-39.3 28.5-39.3 31.2 16.6 32.1 38.3l.1 .1zm-48.1 56.7c-10.3 24.6-34.6 41.9-63 41.9s-52.7-17.3-63-41.9c-1.2-2.9 .8-6.2 3.9-6.5 18.4-1.9 38.3-2.9 59.1-2.9s40.7 1 59.1 2.9c3.1 .3 5.1 3.6 3.9 6.5z\"],\n \"connectdevelop\": [576, 512, [], \"f20e\", \"M550.8 241l-50.1-86.8c1.1-2.1 1.9-4.6 1.9-7.2 0-8-6.7-14.7-14.7-15L432.4 36.1c.5-1.6 1.1-3.2 1.1-4.8 0-8.6-7-15.3-15.3-15.3-4.8 0-8.8 2.1-11.8 5.6l-106.6 0c-2.7-3.5-6.7-5.6-11.5-5.6s-8.8 2.1-11.5 5.6l-106.1 0c-2.9-3.5-7-5.6-11.8-5.6-8.3 0-15.3 6.7-15.3 15.3 0 1.6 .5 3.5 1.1 4.8l-56 97.2c-5.4 2.4-9.1 7.5-9.1 13.7 0 .5 .3 1.1 .3 1.6L26.6 240.7c-7.2 1.3-12.6 7.5-12.6 15 0 7.2 5.1 13.4 12.1 15l55.2 95.4c-.5 1.6-.8 2.9-.8 4.8 0 7.2 5.1 13.4 12.1 14.7l51.7 89.7c-.5 1.6-1.1 3.5-1.1 5.4 0 8.6 7 15.3 15.3 15.3 4.8 0 8.8-2.1 11.5-5.4l106.9 0c2.7 3.2 7 5.4 11.5 5.4s8.8-2.1 11.5-5.4l107.1 0c2.7 2.9 6.7 4.8 11 4.8 8.6 0 15.3-7 15.3-15.3 0-1.6-.3-2.9-.8-4.3l51.7-90.3c7-1.3 12.1-7.5 12.1-14.7 0-1.6-.3-3.2-.8-4.8l54.9-95.4c7-1.3 12.3-7.5 12.3-15 0-7.2-5.1-13.4-11.8-14.7zm-397 209.7l-43.7-75.8 43.7 0 0 75.8zm0-83.8l-43.7 0c-.3-1.1-.8-2.1-1.3-3.2l45-47.4 0 50.6zm0-62.4l-50.4 53.3c-1.3-.5-2.7-1.3-4-1.6L43.7 259.8c.5-1.3 .5-2.7 .5-4s0-2.4-.3-3.5l52-90c2.7-.3 5.4-1.1 7.8-2.7l50.1 52 0 92.9zm0-102.3L108 154.8c1.3-2.1 2.1-4.8 2.1-7.8 0-.3-.3-.8-.3-1.1l43.9-15.8 0 72.1zm0-80.6l-43.7 15.8 43.7-75.5 0 59.7zm326.5 39.1l.8 1.3-35.4 167.1-63.8-67.2 98-101.5 .3 .3zM292.1 355.1l11.5 11.8-22.8 0 11.3-11.8zm-.3-11.3l-83.3-85.4 79.6-84.4 83 87.6-79.3 82.2zm5.4 5.9l79.3-82.2 67.5 71.3-5.9 28.1-124 0-16.9-17.1zM410.7 44.4c1.1 .5 2.1 1.1 3.5 1.3l57.9 100.7 0 .5c0 2.9 .8 5.6 2.1 7.8l-97.5 101.2-83-87.6 117.1-124zm-9.1-2.1l-113.6 120.3-57.1-60.3 166.3-60 4.3 0zm-123.5 0c2.7 2.7 6.2 4.3 10.2 4.3s7.5-1.6 10.2-4.3l75 0-148.4 53.6-50.9-53.6 103.9 0zM161.9 47.9l1.1-2.1c.9-.2 1.8-.5 2.7-.8l51.2 53.8-54.9 19.8 0-70.7zm0 79.3l60.8-22 59.7 63.2-79.6 84.1-41-42.1 0-83.3zm0 92.7l36.4 37.8-36.4 38.3 0-76.1zm0 87.9l42.1-44.5 82.8 86-17.1 17.7-107.7 0 0-59.2zm7 162.1c-1.6-1.6-3.5-2.7-5.9-3.5l-1.1-1.6 0-89.7 99.9 0-91.6 94.8-1.3 0zm129.9 0c-2.7-2.4-6.4-4.3-10.4-4.3s-7.8 1.9-10.4 4.3l-96.4 0 91.6-94.8 38.3 0 91.6 94.8-104.2 0zm120-11.8l-4.3 7.5c-1.3 .3-2.4 .8-3.5 1.3l-89.2-91.9 114.4 0-17.4 83zm12.9-22.2l12.9-60.8 22 0-34.8 60.8zm34.8-68.8l-20.4 0 4.6-21.2 17.1 18.2c-.5 .8-1.1 1.9-1.3 2.9zm66.2-107.4l-55.4 96.7c-1.3 .5-2.7 1.1-4 1.9l-20.6-22 34.6-163.9 45.8 79.3c-.3 1.3-.8 2.7-.8 4.3 0 1.3 .3 2.4 .5 3.7z\"],\n \"researchgate\": [448, 512, [], \"f4f8\", \"M0 32l0 448 448 0 0-448-448 0zM262.2 366.4c-6.6 3-33.2 6-50-14.2-9.2-10.6-25.3-33.3-42.2-63.6-8.9 0-14.7 0-21.4-.6l0 46.4c0 23.5 6 21.2 25.8 23.9l0 8.1c-6.9-.3-23.1-.8-35.6-.8-13.1 0-26.1 .6-33.6 .8l0-8.1c15.5-2.9 22-1.3 22-23.9l0-109.4c0-22.6-6.4-21-22-23.9l0-8.1c25.8 1 53.1-.6 70.9-.6 31.7 0 55.9 14.4 55.9 45.6 0 21.1-16.7 42.2-39.2 47.5 13.6 24.2 30 45.6 42.2 58.9 7.2 7.8 17.2 14.7 27.2 14.7l0 7.3zm22.9-135c-23.3 0-32.2-15.7-32.2-32.2l0-32.2c0-12.2 8.8-30.4 34-30.4s30.4 17.9 30.4 17.9l-10.7 7.2s-5.5-12.5-19.7-12.5c-7.9 0-19.7 7.3-19.7 19.7l0 26.8c0 13.4 6.6 23.3 17.9 23.3 14.1 0 21.5-10.9 21.5-26.8l-17.9 0 0-10.7 30.4 0c0 20.5 4.7 49.9-34 49.9zM168.6 276.1c-9.4 0-13.6-.3-20-.8l0-69.7c6.4-.6 15-.6 22.5-.6 23.3 0 37.2 12.2 37.2 34.5 0 21.9-15 36.6-39.7 36.6z\"],\n \"signal-messenger\": [512, 512, [], \"e663\", \"M256 0c-13.3 0-26.3 1-39.1 3l3.7 23.7C232.1 24.9 244 24 256 24s23.9 .9 35.4 2.7L295.1 3C282.3 1 269.3 0 256 0zm60.8 7.3l-5.7 23.3c23.4 5.7 45.4 14.9 65.4 27.1l12.5-20.5c-22.1-13.4-46.4-23.6-72.2-29.9zm76.4 61.6c19.1 14 36 30.9 50.1 50.1l19.4-14.2C447 83.6 428.4 65 407.3 49.5L393.1 68.8zm81.7 54.2l-20.5 12.5c12.2 20 21.4 42 27.1 65.4l23.3-5.7c-6.3-25.8-16.5-50.1-29.9-72.2zm10.5 97.5c1.8 11.5 2.7 23.4 2.7 35.4s-.9 23.9-2.7 35.4l23.7 3.7c1.9-12.7 3-25.8 3-39.1s-1-26.3-3-39.1l-23.7 3.7zm-31 155.9l20.5 12.5c13.4-22.1 23.6-46.4 29.9-72.2l-23.3-5.7c-5.7 23.4-14.9 45.4-27.1 65.4zm8.2 30.8l-19.4-14.2c-14 19.1-30.9 36-50.1 50.1l14.2 19.4c21.1-15.5 39.8-34.1 55.2-55.2zm-86.1 47c-20 12.2-42 21.4-65.4 27.1l5.7 23.3c25.8-6.3 50.1-16.5 72.2-29.9l-12.5-20.5zM295.1 509l-3.7-23.7C279.9 487.1 268 488 256 488s-23.9-.9-35.4-2.7L216.9 509c12.7 1.9 25.8 3 39.1 3s26.3-1 39.1-3zm-94.1-27.6c-17.6-4.3-34.4-10.6-50.1-18.6l-7.8-4-32.8 7.7 5.5 23.4 24.3-5.7c17.4 8.9 35.9 15.8 55.3 20.5l5.7-23.3zM95.4 494.6L90 471.3 48.3 481c-10.4 2.4-19.7-6.9-17.3-17.3l9.7-41.6-23.4-5.5-9.7 41.6C1.2 486 26 510.8 53.8 504.4l41.6-9.7zm-50-92.9l7.7-32.8-4-7.8c-8-15.7-14.3-32.5-18.6-50.1L7.3 316.7C12 336.1 18.9 354.7 27.7 372l-5.7 24.3 23.4 5.5zM3 295.1l23.7-3.7C24.9 279.9 24 268 24 256s.9-23.9 2.7-35.4L3 216.9C1 229.7 0 242.7 0 256s1 26.3 3 39.1zm27.6-94.1c5.7-23.4 14.9-45.4 27.1-65.4L37.2 123.1c-13.4 22.1-23.6 46.4-29.9 72.2l23.3 5.7zm18.9-96.2l19.4 14.2c14-19.1 30.9-36 50.1-50.1L104.7 49.5C83.6 65 65 83.6 49.5 104.7zm86.1-47c20-12.2 42-21.4 65.4-27.1L195.2 7.3c-25.8 6.3-50.1 16.5-72.2 29.9l12.5 20.5zM256 464c114.9 0 208-93.1 208-208S370.9 48 256 48 48 141.1 48 256c0 36.4 9.4 70.7 25.8 100.5 1.6 2.9 2.1 6.2 1.4 9.4l-21.6 92.5 92.5-21.6c3.2-.7 6.5-.2 9.4 1.4 29.8 16.5 64 25.8 100.5 25.8z\"],\n \"xing\": [384, 512, [], \"f168\", \"M162.7 210c-1.8 3.3-25.2 44.4-70.1 123.5-4.9 8.3-10.8 12.5-17.7 12.5L9.8 346c-7.7 0-12.1-7.5-8.5-14.4l69-121.3c.2 0 .2-.1 0-.3L26.4 134.4c-4.3-7.8 .3-14.1 8.5-14.1l65.1 0c7.3 0 13.3 4.1 18 12.2L162.7 210zM382.6 46.1l-144 253 0 .3 91.6 166.6c3.9 7.1 .2 14.1-8.5 14.1l-65.2 0c-7.6 0-13.6-4-18-12.2L146.1 299.4c3.3-5.8 51.5-90.8 144.8-255.2 4.6-8.1 10.4-12.2 17.5-12.2l65.7 0c8 0 12.3 6.7 8.5 14.1z\"],\n \"square-js\": [448, 512, [\"js-square\"], \"f3b9\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM180.9 444.9c-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5l0-143.1 42.1 0 0 143.7c0 43.6-25.6 63.5-62.9 63.5zm85.8-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6-39.1 0-64.4-18.6-76.7-43z\"],\n \"fonticons\": [448, 512, [], \"f280\", \"M0 32l0 448 448 0 0-448-448 0zM187 172.9c-18.4 0-19 9.9-19 27.4l0 23.3c0 2.4-3.5 4.4-.6 4.4l67.4 0-11.1 37.3-55.7 0 0 112.9c0 5.8-2 6.7 3.2 7.3l43.5 4.1 0 25.1-130.7 0 0-25.7 21.3-2c5.2-.6 6.7-2.3 6.7-7.9l0-111.4c0-2.3-2.9-2.3-5.8-2.3l-22.2 0 0-37.4 28 0 0-21c0-49.6 26.5-70 77.3-70 34.1 0 64.7 8.2 64.7 52.8l-50.7 6.1c.3-18.7-4.4-23-16.3-23zm74.3 241.8l0-25.1 20.4-2.6c5.2-.6 7.6-1.7 7.6-7.3l0-107.9c0-4.1-2.9-6.7-6.7-7.9l-24.2-6.4 6.7-29.5 80.2 0 0 151.7c0 5.8-2.6 6.4 2.9 7.3l15.7 2.6 0 25.1-102.6 0zm80.8-255.5l9 33.2-7.3 7.3-31.2-16.6-31.2 16.6-7.3-7.3 9-33.2-21.8-24.2 3.5-9.6 27.7 0 15.5-28 9.3 0 15.5 28 27.7 0 3.5 9.6-21.9 24.2z\"],\n \"ups\": [384, 512, [], \"f7e0\", \"M103.2 303c-5.2 3.6-32.6 13.1-32.6-19l0-104-32.7 0 0 102.6c0 74.9 80.2 51.1 97.9 39l0-141.6-32.6 0 0 123zM4 74.8L4 295.7c0 103.7 74.9 135.2 187.7 184.1 112.4-48.9 187.7-80.2 187.7-184.1l0-220.9C263.1 13.2 97.6 25.2 4 74.8zM362.1 295.7c0 86.6-53.2 113.6-170.4 165.3-117.5-51.8-170.5-78.7-170.5-165.3l0-126.4c102.3-93.8 231.6-100 340.9-89.8l0 216.2zM152.5 188.3l0 212.8 32.7 0 0-68.7c24.4 7.3 71.7-2.6 71.7-78.5 0-97.4-80.7-80.9-104.4-65.6zm32.7 117.3l0-100.3c8.4-4.2 38.4-12.7 38.4 49.3 0 67.9-36.4 51.8-38.4 51zm79.1-86.4c.1 47.3 51.6 42.5 52.2 70.4 .6 23.5-30.4 23-50.8 4.9l0 30.1c36.2 21.5 81.9 8.1 83.2-33.5 1.7-51.5-54.1-46.6-53.4-73.2 .6-20.3 30.6-20.5 48.5-2.2l0-28.4c-28.5-22-79.9-9.2-79.7 31.9z\"],\n \"amazon-pay\": [640, 512, [], \"f42c\", \"M14 325.3c2.3-4.2 5.2-4.9 9.7-2.5 10.4 5.6 20.6 11.4 31.2 16.7 40.6 20.2 83.3 35.8 127.4 46.3 20.8 5 41.9 9 63.2 11.8 31.5 4.2 63.2 6 95 5.2 17.4-.4 34.8-1.8 52.1-3.8 56.2-6.6 111.1-21 163.3-42.8 2.9-1.2 5.9-2 9.1-1.2 6.7 1.8 9 9 4.1 13.9-3 2.7-6.2 5.2-9.6 7.4-30.7 21.1-64.2 36.4-99.6 47.9-24.5 7.9-49.6 13.8-75.1 17.6-17.6 2.7-35.4 4.3-53.2 4.8-.8 0-1.7 .2-2.5 .3l-21.1 0c-.8-.1-1.7-.2-2.5-.3-3.6-.2-7.2-.3-10.7-.4-16.9-.8-33.7-2.5-50.4-5.3-27.4-4.5-54.3-11.5-80.4-20.9-53.7-19.4-103.1-48.9-145.6-87-1.8-1.6-3-3.8-4.4-5.7l0-2zM172 65.1l-4.3 .6c-13.8 1.7-26.8 6.9-38 15.1-2.4 1.7-4.6 3.5-7.1 5.4-.2-.4-.3-.9-.4-1.4-.4-2.7-.8-5.5-1.3-8.2-.7-4.6-3-6.6-7.6-6.6l-11.5 0c-6.9 0-8.2 1.3-8.2 8.2l0 209.3c0 1 0 2 .1 3 .2 3 2 4.9 4.9 5 7 .1 14.1 .1 21.1 0 2.9 0 4.7-2 5-5 .1-1 .1-2 .1-3l0-72.4c1.1 .9 1.7 1.4 2.2 1.9 17.9 14.9 38.5 19.8 61 15.4 20.4-4 34.6-16.5 43.8-34.9 7-13.9 9.9-28.7 10.3-44.1 .5-17.1-1.2-33.9-8.1-49.8-8.5-19.6-22.6-32.5-43.9-36.9-3.2-.7-6.5-1-9.8-1.5-2.8-.1-5.5-.1-8.3-.1zM124.6 107c-.1-.7 .1-1.3 .4-1.9s.8-1.1 1.3-1.4c13.7-9.5 28.8-14.5 45.6-13.2 14.9 1.1 27.1 8.4 33.5 25.9 3.9 10.7 4.9 21.8 4.9 33 0 10.4-.8 20.6-4 30.6-6.8 21.3-22.4 29.4-42.6 28.5-14-.6-26.2-6-37.4-13.9-.6-.3-1-.8-1.3-1.4s-.4-1.2-.4-1.9c.1-14.1 0-28.1 0-42.2s.1-28 0-42.1zM330.3 65.1c-1 .1-2 .3-2.9 .4-9.7 .4-19.4 1.8-28.9 4.1-6.1 1.6-12 3.8-17.9 5.8-3.6 1.2-5.4 3.8-5.3 7.7 .1 3.3-.1 6.6 0 9.9 .1 4.8 2.1 6.1 6.8 4.9 7.8-2 15.6-4.2 23.5-5.7 12.3-2.3 24.7-3.3 37.2-1.4 6.5 1 12.6 2.9 16.8 8.4 3.7 4.8 5.1 10.5 5.3 16.4 .3 8.3 .2 16.6 .3 24.9 0 .5-.1 .9-.2 1.4-.5-.1-.9 0-1.3-.1-10.5-2.6-21.2-4.2-32-4.9-11.3-.6-22.5 .1-33.3 3.9-12.9 4.5-23.3 12.3-29.4 24.9-4.7 9.8-5.4 20.2-3.9 30.7 2 14 9 24.8 21.4 31.7 11.9 6.6 24.8 7.4 37.9 5.4 15.1-2.3 28.5-8.7 40.3-18.4 .5-.4 1-.8 1.6-1.1 .6 3.8 1.1 7.4 1.8 11 .6 3.1 2.5 5.1 5.4 5.2 5.4 .1 10.9 .1 16.3 0 1.3 0 2.5-.5 3.4-1.4s1.4-2.1 1.5-3.3c.1-.9 .1-1.9 .1-2.8l0-106c0-4.3-.3-8.6-.9-12.9-1.9-12.9-7.4-23.5-19-30.4-6.7-4-14.1-6-21.8-7.1-3.6-.5-7.2-.8-10.8-1.3-3.9 .1-7.9 .1-11.9 .1zm35 127.7c0 .6-.1 1.2-.3 1.7s-.7 1-1.2 1.3c-11.2 8.1-23.5 13.5-37.4 14.9-5.7 .6-11.4 .4-16.8-1.8-3-1.1-5.6-2.9-7.8-5.2s-3.7-5.1-4.6-8.1c-2-6.3-2-13.1-.1-19.4 2.5-8.3 8.4-13 16.4-15.6 8-2.4 16.5-3.2 24.8-2.2 8.4 .7 16.6 2.3 25 3.4 1.6 .2 2.1 1 2.1 2.6-.1 4.8 0 9.5 0 14.3s-.2 9.4-.1 14.1zM625.2 322.2c-1-5-4.8-6.9-9.1-8.3-6.8-2.1-13.9-3.5-21-3.9-13.1-1.1-26.3-.5-39.2 1.9-14.3 2.7-27.9 7.3-40 15.6-1.4 .9-2.7 2.1-3.7 3.5-.4 .6-.6 1.3-.7 1.9s0 1.4 .2 2.1c.4 1.5 2.1 1.9 3.6 1.8 .7 0 1.5 0 2.2-.1 7.8-.8 15.5-1.7 23.3-2.5 11.4-1.1 22.9-1.8 34.3-.9 4.9 .4 9.7 1.3 14.4 2.7 5.1 1.4 7.4 5.2 7.6 10.4 .4 8-1.4 15.7-3.5 23.3-4.1 15.4-10 30.3-15.8 45.1-.4 1-.8 2-1 3-.5 2.9 1.2 4.8 4.1 4.1 1.8-.4 3.4-1.3 4.8-2.5 4.5-4.2 8.8-8.7 12.7-13.4 12.8-16.4 20.3-35.3 24.7-55.6 .8-3.6 1.4-7.3 2.1-10.9l0-17.3zM493.1 199c-12.9-35.7-25.8-71.4-38.7-107.2-2-5.7-4.2-11.3-6.3-16.9-1.1-2.9-3.2-4.8-6.4-4.8-7.6-.1-15.2-.2-22.9-.1-2.5 0-3.7 2-3.2 4.5 .5 2.1 1.1 4.1 1.9 6.1 19.6 48.5 39.3 97 59.1 145.5 1.7 4.1 2.1 7.6 .2 11.8-3.3 7.3-5.9 15-9.3 22.3-3 6.5-8 11.4-15.2 13.3-5 1.3-10.2 1.7-15.4 1.1-2.5-.2-5-.8-7.5-1-3.4-.2-5.1 1.3-5.2 4.8-.1 3.3-.1 6.6 0 9.9 .1 5.5 2 8 7.4 8.9 5.6 1.1 11.2 1.8 16.9 2 17.1 .4 30.7-6.5 39.5-21.4 3.5-5.9 6.6-12 9.2-18.4 23.7-59.8 47.2-119.7 70.6-179.6 .7-1.8 1.3-3.6 1.6-5.5 .4-2.8-.9-4.4-3.7-4.4-6.6-.1-13.3 0-19.9 0-1.7-.1-3.4 .3-4.7 1.3s-2.4 2.3-3 3.9c-.5 1.4-1.1 2.7-1.6 4.1l-34.8 100c-2.5 7.2-5.1 14.5-7.7 22.2-.4-1.1-.6-1.7-.9-2.4z\"],\n \"pandora\": [384, 512, [], \"e7da\", \"M201.3 32L0 32 0 480 120.2 480c11.2 0 20.3-9.1 20.3-20.3l0-86.1 30.1 0c147.1 0 207.3-82.9 207.3-179.9 0-119.7-90.9-161.8-176.5-161.8z\"],\n \"openid\": [448, 512, [], \"f19b\", \"M271.5 432l-68 32C88.5 453.7 0 392.5 0 318.2 0 246.7 82.5 187.2 191.7 173.9l0 43c-71.5 12.5-124 53-124 101.3 0 51 58.5 93.3 135.7 103l0-340 68-33.2 0 384 .1 0zM448 291l-131.3-28.5 36.8-20.7c-19.5-11.5-43.5-20-70-24.8l0-43c46.2 5.5 87.7 19.5 120.3 39.3l35-19.8 9.2 97.5z\"],\n \"vsco\": [512, 512, [], \"e7dd\", \"M357.6 256c0-27.1-10.6-52.5-29.7-71.7s-44.6-29.7-71.7-29.7l-.1 0c-27.1 0-52.6 10.6-71.7 29.7s-29.7 44.6-29.7 71.7c0 27.1 10.6 52.5 29.7 71.7 19.2 19.2 44.6 29.7 71.7 29.7l.1 0c27.1 0 52.6-10.6 71.7-29.7 19.2-19.2 29.7-44.6 29.7-71.7zM176.3 482.1c23 8.1 47 12.6 71.6 13.4l0-59.1c-17.1-.7-33.5-3.8-49-8.9l-22.6 54.6zm137-54.6c-15.5 5.1-32 8.2-49 8.9l0 59.1c24.6-.8 48.6-5.3 71.6-13.4l-22.6-54.6zM92.5 431.2c20.2 18.9 43.3 34 68.7 45l22.5-54.5c-18.3-7.9-35.1-18.8-49.8-31.9L92.5 431.2zm285.9-41.4c-14.6 13.2-31.4 24-49.8 31.9l22.5 54.5c25.4-11 48.4-26.1 68.7-45l-41.4-41.4zM145.4 378.2c13.6 12.1 29 21.9 45.8 29 18 7.6 37.1 12 56.7 12.9l0-46.8c-26.4-1.8-50.3-12.3-69.1-28.6l-33.4 33.4zm188-33.4c-18.8 16.3-42.7 26.8-69.1 28.6l0 46.8c19.6-.9 38.7-5.3 56.7-12.9 16.8-7.1 32.2-16.9 45.8-29l-33.4-33.4zM38.5 356.6c10.7 23.2 25 44.3 42.5 63.1l41.3-41.3c-12.4-13.4-22.9-28.6-30.9-45.2L38.5 356.6zm382.4-23.5c-8 16.6-18.5 31.9-30.9 45.2l41.3 41.3c17.5-18.7 31.8-39.9 42.5-63.1l-52.9-23.5zm-331-69c1.1 18.8 5.4 37.2 12.8 54.5 7.5 17.8 18 34 31.2 48.2l33.5-33.5c-16.4-18.8-26.9-42.8-28.7-69.2l-48.8 0zm283.7 0c-1.8 26.4-12.3 50.4-28.7 69.2l33.5 33.5c13.1-14.2 23.6-30.4 31.2-48.2 7.3-17.4 11.6-35.7 12.7-54.5l-48.7 0zm-357.1 0c.9 26.7 6.1 52.7 15.6 77.5L85 318.2c-6.4-17-10.3-35.1-11.3-54l-57.1 0zm422.1 0c-1 18.9-5 37.1-11.3 54l52.8 23.5c9.5-24.8 14.7-50.8 15.6-77.5l-57.1 0zM32.1 170.4c-9.5 24.8-14.7 50.8-15.6 77.5l57.1 0c1-18.9 5-37.1 11.3-54L32.1 170.4zm101.7-25.2c-13.1 14.2-23.6 30.4-31.2 48.2-7.3 17.4-11.6 35.7-12.8 54.5l48.8 0c1.8-26.4 12.3-50.4 28.7-69.2l-33.5-33.5zm211.1 33.5c16.4 18.8 26.9 42.8 28.7 69.2l48.7 0c-1.1-18.8-5.4-37.2-12.7-54.5-7.5-17.8-18-34-31.2-48.2l-33.5 33.5zm82.4 15.2c6.4 17 10.3 35.1 11.3 54l57.1 0c-.9-26.7-6.1-52.7-15.6-77.5l-52.8 23.5zM81 92.3C63.4 111 49.2 132.2 38.5 155.4l52.9 23.5c8-16.6 18.5-31.9 30.9-45.2L81 92.3zm309 41.3c12.4 13.4 22.9 28.6 30.9 45.2l52.9-23.5c-10.7-23.2-25-44.3-42.5-63.1L390 133.7zM248 91.8c-19.6 .9-38.7 5.3-56.7 12.9-16.8 7.1-32.2 16.9-45.8 29l33.4 33.4c18.8-16.3 42.7-26.8 69.1-28.6l0-46.7zm16.3 46.7c26.4 1.8 50.3 12.3 69.1 28.6l33.4-33.4c-13.6-12.1-29-21.9-45.8-29-18-7.6-37.1-12-56.7-12.9l0 46.7zM161.2 35.8c-25.4 11-48.4 26.1-68.7 45l41.4 41.4c14.7-13.2 31.4-24 49.8-31.9L161.2 35.8zM328.6 90.3c18.3 7.9 35.1 18.8 49.8 31.9l41.4-41.4c-20.2-18.9-43.3-34-68.7-45L328.6 90.3zM248 16.4c-24.6 .8-48.6 5.3-71.6 13.4l22.6 54.6c15.5-5.1 32-8.2 49-8.9l0-59.1zm16.3 59.1c17.1 .7 33.5 3.8 49 8.9l22.6-54.6c-23-8.1-47-12.6-71.6-13.4l0 59.1zM512.2 264.2l-.2 0C507.8 399 399.2 507.7 264.3 511.9l0 .1-16.3 0 0-.1C113.1 507.7 4.5 399 .2 264.1l-.2 0 0-16.3 .2 0C4.5 113 113.1 4.3 248 .1l0-.1 16.3 0 0 .1C399.2 4.3 507.8 113 512 247.9l.2 0 0 16.3z\"],\n \"ubuntu\": [576, 512, [], \"f7df\", \"M469.2 75c0-20.1-8-39.3-22.2-53.5s-33.4-22.2-53.5-22.2-39.3 8-53.5 22.2-22.2 33.4-22.2 53.5c0 20.1 8 39.3 22.1 53.5s33.4 22.1 53.5 22.1 39.3-8 53.5-22.1 22.1-33.4 22.1-53.5l.1 0zm-315 165.7a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM57 346c18.6 46.9 51 87 93 115.1s91.5 42.6 142 41.7c-14.7-18.6-22.9-41.5-23.2-65.2-6.8-.9-13.3-2.1-19.5-3.4-26.8-5.7-51.9-17.3-73.6-34s-39.3-38.1-51.7-62.5c-20.9 9.9-44.5 12.8-67.1 8.2l.1 .1zm395.1 89.8a75.6 75.6 0 1 0 -151.2 0 75.6 75.6 0 1 0 151.2 0zM444 351.6c18.5 14.8 31.6 35.2 37.2 58.2 33.3-41.3 52.6-92.2 54.8-145.2s-12.5-105.4-42.2-149.4c-8.6 21.5-24 39.6-43.8 51.6 15.4 28.6 22.9 60.8 21.9 93.2s-10.7 64-28 91.6l.1 0zM101.1 135.4c12.4 2.7 24.3 7.5 35.1 14.3 16.6-24.2 38.9-44.1 64.8-58S255.8 70.4 285.2 70c.2-5.9 .9-11.9 2-17.7 3.6-16.7 11.1-32.3 21.8-45.5-47.7-3.8-95.4 6-137.6 28.5S94.3 91.7 70.8 133.4c2.7-.2 5.3-.3 8-.3 7.5 0 15 .8 22.4 2.3l-.1 0z\"],\n \"viacoin\": [384, 512, [], \"f237\", \"M384 32l-64 0-80.7 192-94.5 0-80.8-192-64 0 48 112-48 0 0 48 68.5 0 13.8 32-82.3 0 0 48 102.8 0 89.2 208 89.2-208 102.8 0 0-48-82.3 0 13.8-32 68.5 0 0-48-48 0 48-112zM192 336l-27-64 54 0-27 64z\"],\n \"zhihu\": [640, 512, [], \"f63f\", \"M170.5 148.1l0 217.5 23.4 0 7.7 26.4 42-26.4 49.5 0 0-217.5-122.7 0zm97.8 193.9l-27.9 0-27.9 17.5-5.1-17.5-11.9 0 0-170.3 72.8 0 0 170.3zM149.8 247.7l-52.3 0c1.7-27.1 2.2-51.6 2.2-73.5l51.2 0s2-22.6-8.6-22.3l-88.5 0c3.5-13.1 7.9-26.7 13.1-40.7 0 0-24.1 0-32.3 21.6-3.4 8.9-13.2 43.1-30.7 78.1 5.9-.6 25.4-1.2 36.8-22.2 2.1-5.9 2.5-6.7 5.1-14.5l28.9 0c0 10.5-1.2 66.9-1.7 73.4l-52.3 0c-11.7 0-15.6 23.6-15.6 23.6l65.6 0c-4.4 49.9-28 91.9-70.8 125.1 20.5 5.9 40.9-.9 51-9.9 0 0 23-20.9 35.6-69.3l54 64.9s7.9-26.9-1.2-40c-7.6-8.9-28.1-33.1-36.8-41.8L87.9 312c4.4-14 7-27.6 7.9-40.7l61.6 0s-.1-23.6-7.6-23.6l0 0zm412-1.6c20.8-25.6 45-58.6 45-58.6s-18.6-14.8-27.4-4.1c-6 8.2-36.8 48.2-36.8 48.2l19.2 14.4zM411.8 187c-9-8.2-25.9 2.1-25.9 2.1s39.5 55 41.1 57.4l19.5-13.7s-25.7-37.6-34.7-45.9l0 0 0 0zM640 258.4c-19.8 0-130.9 .9-131.1 .9l0-101c4.8 0 12.4-.4 22.8-1.2 40.9-2.4 70.1-4 87.8-4.8 0 0 12.2-27.2-.6-33.4-3.1-1.2-23.2 4.6-23.2 4.6s-165.2 16.5-232.4 18c1.6 8.8 7.6 17.1 15.8 19.6 13.3 3.5 22.7 1.7 49.2 .9 24.8-1.6 43.7-2.4 56.5-2.4l0 99.8-133.5 0s2.8 22.3 25.5 22.9l107.9 0 0 70.9c0 14-11.2 22-24.5 21.1-14.1 .1-26.1-1.1-41.7-1.8 2 4 6.3 14.4 19.3 21.8 9.9 4.8 16.2 6.6 26 6.6 29.6 0 45.7-17.3 44.9-45.3l0-73.3 122.4 0c9.7 0 8.7-23.8 8.7-23.8l0 0z\"],\n \"yandex\": [256, 512, [], \"f413\", \"M153.1 315.8L65.7 512 2 512 98 302.2C52.9 279.3 22.8 237.8 22.8 161.1 22.7 53.7 90.8 0 171.7 0l82.3 0 0 512-55.1 0 0-196.2-45.8 0zM198.9 46.5l-29.4 0c-44.4 0-87.4 29.4-87.4 114.6 0 82.3 39.4 108.8 87.4 108.8l29.4 0 0-223.4z\"],\n \"pixiv\": [448, 512, [], \"e640\", \"M96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96L96 32zm77.7 217.3a60.1 60.1 0 1 0 120.3 0 60.1 60.1 0 1 0 -120.3 0zM119.1 387.8c-.3-.8-.5-1.7-.5-2.6l0-244.3c0-1.8 .7-3.6 2-4.9s3-2 4.9-2l16.9 0c1.2 0 2.3 .3 3.3 .8s1.9 1.3 2.5 2.3l14 21.8c19.7-15.6 44.5-25 71.6-25 63.6 0 115.2 51.6 115.2 115.2S297.5 364.5 233.8 364.5c-22 0-42.6-6.2-60.1-16.9l0 37.6c0 .9-.2 1.8-.5 2.6s-.9 1.6-1.5 2.2-1.4 1.1-2.2 1.5-1.7 .5-2.6 .5l-41.3 0c-.9 0-1.8-.2-2.6-.5s-1.6-.9-2.2-1.5-1.1-1.4-1.5-2.2z\"],\n \"openai\": [512, 512, [], \"e7cf\", \"M196.4 185.8l0-48.6c0-4.1 1.5-7.2 5.1-9.2l97.8-56.3c13.3-7.7 29.2-11.3 45.6-11.3 61.4 0 100.4 47.6 100.4 98.3 0 3.6 0 7.7-.5 11.8L343.3 111.1c-6.1-3.6-12.3-3.6-18.4 0L196.4 185.8zM424.7 375.2l0-116.2c0-7.2-3.1-12.3-9.2-15.9L287 168.4 329 144.3c3.6-2 6.7-2 10.2 0L437 200.7c28.2 16.4 47.1 51.2 47.1 85 0 38.9-23 74.8-59.4 89.6l0 0zM166.2 272.8l-42-24.6c-3.6-2-5.1-5.1-5.1-9.2l0-112.6c0-54.8 42-96.3 98.8-96.3 21.5 0 41.5 7.2 58.4 20L175.4 108.5c-6.1 3.6-9.2 8.7-9.2 15.9l0 148.5 0 0zm90.4 52.2l-60.2-33.8 0-71.7 60.2-33.8 60.2 33.8 0 71.7-60.2 33.8zm38.7 155.7c-21.5 0-41.5-7.2-58.4-20l100.9-58.4c6.1-3.6 9.2-8.7 9.2-15.9l0-148.5 42.5 24.6c3.6 2 5.1 5.1 5.1 9.2l0 112.6c0 54.8-42.5 96.3-99.3 96.3l0 0zM173.8 366.5L76.1 310.2c-28.2-16.4-47.1-51.2-47.1-85 0-39.4 23.6-74.8 59.9-89.6l0 116.7c0 7.2 3.1 12.3 9.2 15.9l128 74.2-42 24.1c-3.6 2-6.7 2-10.2 0zm-5.6 84c-57.9 0-100.4-43.5-100.4-97.3 0-4.1 .5-8.2 1-12.3l100.9 58.4c6.1 3.6 12.3 3.6 18.4 0l128.5-74.2 0 48.6c0 4.1-1.5 7.2-5.1 9.2l-97.8 56.3c-13.3 7.7-29.2 11.3-45.6 11.3l0 0zm127 60.9c62 0 113.7-44 125.4-102.4 57.3-14.9 94.2-68.6 94.2-123.4 0-35.8-15.4-70.7-43-95.7 2.6-10.8 4.1-21.5 4.1-32.3 0-73.2-59.4-128-128-128-13.8 0-27.1 2-40.4 6.7-23-22.5-54.8-36.9-89.6-36.9-62 0-113.7 44-125.4 102.4-57.3 14.8-94.2 68.6-94.2 123.4 0 35.8 15.4 70.7 43 95.7-2.6 10.8-4.1 21.5-4.1 32.3 0 73.2 59.4 128 128 128 13.8 0 27.1-2 40.4-6.7 23 22.5 54.8 36.9 89.6 36.9z\"],\n \"sith\": [448, 512, [], \"f512\", \"M0 32l69.7 118.8-58.9-11.5 69.8 91c-3 17-3 34.4 0 51.4l-69.8 91 58.9-11.5-69.7 118.8 118.8-69.7-11.5 58.9 91-69.8c17 3 34.5 3 51.5 0l91 69.8-11.5-58.9 118.7 69.7-69.7-118.8 58.9 11.5-69.8-91c3-17 3-34.4 0-51.4l69.8-91-58.9 11.5 69.7-118.8-118.7 69.7 11.5-58.9-91.1 69.9c-8.5-1.5-17.1-2.3-25.7-2.3s-17.2 .8-25.7 2.3L107.2 42.8 118.8 101.7 0 32zM224 380.2a124.2 124.2 0 1 1 0-248.4 124.2 124.2 0 1 1 0 248.4zm0-211.8a87.6 87.6 0 1 0 0 175.1 87.6 87.6 0 1 0 0-175.1z\"],\n \"nfc-directional\": [512, 512, [], \"e530\", \"M211.8 488.6c1.6 2.5 2.1 5.6 1.4 8.5-.6 2.9-2.4 5.5-4.9 7.1-2.6 1.6-5.6 2.1-8.6 1.5-61.4-13.9-115.6-49.9-152.2-101.2S-5.4 290.3 1.6 227.7c7-62.7 36.8-120.5 83.7-162.5 46.9-42 107.7-65.2 170.7-65.2 1.5 0 2.1 .3 4.3 .9 1.4 .6 1.8 1.4 3.7 2.5 1.1 1.1 1.9 2.3 2.5 3.7 .5 1.4 .8 2.8 .8 4.3l0 101 24.5-25.9c1-1.1 2.2-2 3.6-2.6 1.3-.6 2.8-.9 4.3-1 1.5-.1 2.9 .2 4.3 .7s2.7 1.3 3.8 2.4c1 1 1.9 2.2 2.5 3.6 .6 1.3 1 2.8 1 4.3s-.2 3-.7 4.3c-.6 1.4-1.4 2.6-2.4 3.7l-44 46.6c-1.1 1.1-2.3 2-3.7 2.6-1.5 .6-3 .9-5.4 .9-.6 0-2.2-.3-3.6-.9s-2.7-1.5-3.7-2.6l-44.1-46.6c-2-2.2-3.1-5.1-3-8.1 0-3 1.3-6.7 3.5-7.9 2.2-2.1 5.1-3.2 8.1-3.1 3 .1 5.8 1.3 7.9 3.5l24.5 26 0-89.5c-56.4 2.8-109.8 25.8-150.5 65-40.6 39.1-65.7 91.7-70.6 147.9S34.4 348.1 67.7 393.7c32.4 45.5 82 77.5 137 89.9 2.9 .7 5.5 2.5 7.1 5zM171.4 126.1c-.8 1.3-1.9 2.4-3.1 3.2-20.5 13.9-37.2 32.6-48.8 54.5s-17.7 46.3-17.7 71.1 6.1 49.2 17.7 70.2c11.6 22.8 28.3 41.5 48.8 55.4 2.5 1.7 4.2 4.3 4.7 7.3 .6 2.9-.9 6-1.7 8.4-1.7 2.5-5.2 4.2-7.3 3.9-2.9 1.4-6 .8-8.4-.9-23.6-16-42.8-37.5-56.1-62.7-13.3-25.1-20.3-53.1-20.3-81.6 0-28.4 7-56.5 20.3-81.6 13.3-25.2 32.5-46.7 56.1-62.7 1.2-.8 2.6-1.4 4-1.8 1.5-.3 3-.3 4.5 0 1.4 .2 2.8 .8 4.1 1.6s2.3 1.9 3.2 3.1c.8 1.2 1.4 2.6 1.7 4.1s.3 3 0 4.4c-.3 1.5-.8 2.9-1.7 4.1zM340.9 383.5c.8-1.2 1.9-2.3 2.2-3.1l0-.1c21.3-14 38-32.7 49.6-54.6 11.5-21.8 17.5-46.2 17.5-70.9s-6-49.1-17.5-71c-11.6-22.7-28.3-40.5-49.6-54.5-.3-.8-1.4-1.9-2.2-3.1-.8-1.3-1.4-2.7-1.6-4.1-1.2-1.5-.3-3 0-4.4 .3-1.5 .9-2.9 1.7-4.1 .9-1.2 1.1-2.3 3.2-3.1 1.2-.8 2.6-1.3 4.1-1.6s2.9-.3 4.4 0 2.8 .9 4.1 1.8c23.4 16 42.7 37.5 55.9 62.6 13.3 25.1 19.4 53.1 19.4 81.5 0 28.5-6.1 56.5-19.4 81.6-13.2 25.1-32.5 46.6-55.9 62.6-1.3 .9-2.6 1.5-4.1 1.8s-2.9 .3-4.4 0-2.9-1.7-4.1-1.6c-2.1-.8-2.3-1.9-3.2-3.1-.8-1.2-1.4-2.6-1.7-4.1-.3-1.4-1.2-2.9 0-4.4 .2-1.4 .8-2.8 1.6-4.1zM312.3 6.3c56.2 12.7 106.4 44 142.7 88.7 30.4 37.6 49.6 83 55.3 131 5.6 48-2.4 96.7-23.2 140.3-20.9 43.6-53.6 80.5-94.5 106.3-40.9 25.7-88.2 39.4-136.6 39.4-1.5 0-2.9-.3-4.3-.9-1.4-.5-2.6-1.4-3.7-2.4-1.9-1.1-1.9-2.3-2.4-3.7-.6-1.4-.9-2.8-.9-4.3l0-99.2-24.5 26c-2.1 2.2-4.9 2.6-7.9 3.6-3 .1-5.9-1.1-8.1-4-2.2-1.2-3.5-4-3.5-7-.1-3 1-5.9 3-8.1l44.1-46.6c1.3-2.2 5.1-3.4 7.3-3.4 4 0 6.9 1.2 9.1 3.4l44 46.6c2.1 2.2 3.2 5.1 3.1 8.1s-1.4 5.8-3.5 7c-2.2 2.9-5.1 4.1-8.1 4-3-1-5.9-1.4-7.9-3.6l-24.5-25.9 0 87.5c56.4-2.8 109.8-25.8 150.5-65 40.7-40 65.8-91.7 70.7-147.9 4.8-57.1-10.8-112.3-44.1-157.9-33.3-45.6-82-77.5-137-89.9-1.5-.3-2.8-.9-4.1-1.8-1.2-.9-2.2-1.9-3-3.2-.8-1.2-2.2-2.6-1.6-4.1-.2-1.5-.2-3 .1-4.4 .4-1.4 1-2.8 1.8-4 .9-1.2 2-2.2 3.2-3 1.3-.8 2.7-1.3 4.1-1.6 1.5-.3 3-.2 4.4 .1zm40.8 249.8c0 31.4-17.5 61.1-49.3 83.5-2.1 1.5-4.8 2.3-7.4 2-2.7-.2-5.2-1.3-7-3.2l-70.1-69.8c-2.2-2.1-4.2-5-3.4-8 0-3 1.2-5.9 3.3-8 2.2-2.1 5-3.3 8-3.3s5.9 1.2 8 3.3l63.1 62.8c20.8-17.1 32.2-37.9 32.2-59.3 0-23.9-14.1-47-39.7-65.1-2.5-1.7-4.1-4.3-4.6-7.3-.5-2.9 .1-6 1.9-8.4 1.7-2.5 4.3-4.1 7.3-4.6 2.9-.5 6 .1 8.4 1.9 31.8 22.4 49.3 52.1 49.3 83.5zM216.7 341.5c-3 .5-6-.2-8.5-1.9-31.7-22.4-50.1-52.1-50.1-83.5s18.4-61.1 50.1-83.5c2.2-1.6 4.9-2.3 7.5-2.1 2.7 .3 5.1 1.4 7 3.3l70.1 69.8c2.1 2.1 3.3 5 3.3 8s-2 5.8-3.3 8c-2.1 2.1-5 3.3-7.9 3.3-3 0-6.8-1.2-8-3.3l-63.1-62.9c-20.9 17.3-32.2 38-32.2 59.4 0 23 14.1 47 39.7 65 2.4 1.8 4.1 4.4 4.6 7.4 .5 2.9-.2 5.9-1.9 8.4-1.7 2.4-4.4 4.1-7.3 4.6z\"],\n \"creative-commons-by\": [512, 512, [], \"f4e7\", \"M322.9 194.4l0 101.4-28.3 0 0 120.5-77.1 0 0-120.4-28.3 0 0-101.5c0-4.4 1.6-8.2 4.6-11.3 3.1-3.1 6.9-4.7 11.3-4.7l101.9 0c4.1 0 7.8 1.6 11.1 4.7 3.1 3.2 4.8 6.9 4.8 11.3zm-32.5-64.5a34.5 34.5 0 1 1 -69 .8 34.5 34.5 0 1 1 69-.8zM255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3z\"],\n \"umbraco\": [512, 512, [], \"f8e8\", \"M256.3 8a248 248 0 1 0 -.7 496 248 248 0 1 0 .7-496zm145 266c-.8 27.1-5.4 48.8-14 65s-23.1 27.9-43.5 35c-20.4 7.1-48.9 10.6-85.4 10.5l-4.6 0c-36.5 .1-65-3.3-85.4-10.5s-34.9-18.8-43.5-35c-8.6-16.2-13.2-37.9-14-65-.7-10.2-.7-20.5 0-30.7 .4-14.7 1.6-29.3 3.6-43.9 1.9-13.4 3.6-22.6 5.4-32 1-4.9 1.3-6.4 1.8-8.4 .3-1.1 .9-2.1 1.8-2.8s2-1.1 3.1-1.1l.7 0 32 5c1.2 .2 2.2 .8 3 1.7s1.2 2.1 1.2 3.3c0 .3 0 .5 0 .8l-1.7 8.8c-1.6 8.8-3.2 20.1-4.8 33.7-1.7 14-2.5 28.1-2.6 42.2-.2 27 2.5 46.9 8.1 59.8 2.8 6.4 7.2 12 12.6 16.4s11.9 7.4 18.7 8.8c18.8 4 38.1 5.7 57.3 5.1l10.3 0c19.2 .6 38.5-1.2 57.3-5.2 6.8-1.4 13.2-4.5 18.6-8.8s9.7-10 12.5-16.4c5.7-12.9 8.4-32.9 8.1-59.8-.1-14.1-1-28.2-2.6-42.1-1.7-13.6-3.3-24.8-4.9-33.7l-1.7-8.8c0-.3 0-.5 0-.8 0-1.2 .4-2.4 1.2-3.3s1.8-1.5 3-1.7l32-5 .8 0c1.1 0 2.2 .4 3.1 1.1s1.5 1.7 1.8 2.8c.6 2 .8 3.6 1.8 8.4 1.8 9.6 3.5 18.8 5.4 32 2 14.6 3.2 29.2 3.6 43.9 .7 10.2 .7 20.5 0 30.7l0 0z\"],\n \"hooli\": [640, 512, [], \"f427\", \"M144.5 352l38.3 .8c-13.2-4.6-26-10.2-38.3-16.8l0 16zm57.7-5.3l0 5.3-19.4 .8c36.5 12.5 69.9 14.2 94.7 7.2-19.9 .2-45.8-2.6-75.3-13.3zM611.1 231.5c15.9 0 28.9-12.9 28.9-28.9s-12.9-24.5-28.9-24.5c-15.9 0-28.9 8.6-28.9 24.5s12.9 28.9 28.9 28.9zM582.1 352l57.9 0 0-110.5-57.9 0 0 110.5zm-73.7 0l57.9 0 0-195.3-57.9 27.3 0 168zm-31-119.4c-18.2-18.2-50.4-17.1-50.4-17.1s-32.3-1.1-50.4 17.1c-18.2 18.2-16.8 33.9-16.8 52.6s-1.4 34.3 16.8 52.5 50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.8-33.8 16.8-52.5-.1-18.8 1.3-34.5-16.8-52.6zm-39.8 71.9c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5l0-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9l0 40.4zM331.4 232.6c-18.2-18.2-50.4-17.1-50.4-17.1s-32.2-1.1-50.4 17.1c-1.9 1.9-3.7 3.9-5.3 6-38.2-29.6-72.5-46.5-102.1-61.1l0-20.7-22.5 10.6c-54.4-22.1-89-18.2-97.3 .1 0 0-24.9 32.8 61.8 110.8l0 73.7 57.9 0 0-28.6c-6.5-4.2-13-8.7-19.4-13.6-14.8-11.2-27.4-21.6-38.4-31.4l0-31c13.1 14.7 30.5 31.4 53.4 50.3l4.5 3.6 0-29.8c0-6.9 1.7-18.2 10.8-18.2s10.6 6.9 10.6 15l0 48.7c18 12.2 37.3 22.1 57.7 29.6l0-93.9c0-18.7-13.4-37.4-40.6-37.4-15.8-.1-30.5 8.2-38.5 21.9l0-54.3c41.9 20.9 83.9 46.5 99.9 58.3-10.2 14.6-9.3 28.1-9.3 43.7 0 18.7-1.4 34.3 16.8 52.5s50.4 17.1 50.4 17.1 32.3 1.1 50.4-17.1c18.2-18.2 16.7-33.8 16.7-52.5 0-18.5 1.5-34.2-16.7-52.3zM65.2 184l0 63.3c-48.7-54.5-38.9-76-35.2-79.1 13.5-11.4 37.5-8 64.4 2.1L65.2 184zM291.7 304.5c0 3.6-1.8 12.5-10.7 12.5s-10.7-8.9-10.7-12.5l0-40.4c0-8.7 7.3-10.9 10.7-10.9s10.7 2.1 10.7 10.9l0 40.4z\"],\n \"square-git\": [448, 512, [\"git-square\"], \"f1d2\", \"M120.8 335.5c-5.9-.4-12.6-.8-20.2-1.3-3.3 4.1-6.6 8.4-6.6 13.5 0 18.5 65.5 18.5 65.5-1.5 0-8.3-7.4-8.7-38.8-10.7l.1 0zm7.8-117.9c-32.3 0-33.7 44.5-.7 44.5 32.5 0 31.7-44.5 .7-44.5zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM243.9 172.2c-14.5 0-22.9-8.4-22.9-22.9s8.4-22.3 22.9-22.3c14.7 0 23.1 7.8 23.1 22.3s-8.4 22.9-23.1 22.9zM149.6 195l49.5 0 0 21.6-23.4 1.8c4.6 5.8 9.4 14 9.4 25.7 0 48.7-57.2 47.2-74.2 42.4l-8.4 13.4c5 .3 9.8 .6 14.3 .8 56.3 3.2 80.5 4.6 80.5 38.5 0 29.2-25.7 45.7-69.9 45.7-46 0-63.5-11.6-63.5-31.7 0-11.4 5.1-17.5 14-25.9-8.4-3.5-11.2-9.9-11.2-16.8 0-9.6 7.4-16.3 23-30.6l.2-.2c-12.4-6.1-21.8-19.3-21.8-38.1 0-51.6 56.6-53.3 81.6-46.8l-.1 .2zM270.5 303.1l13 1.8 0 20.1-72.4 0 0-20.1c2.7-.4 5-.7 6.9-.9 9.9-1.2 10.1-1.3 10.1-6l0-74.7c0-4.4-.9-4.7-10.1-7.8-1.9-.7-4.2-1.4-6.9-2.4l2.8-20.6 52.6 0 0 105.5c0 4.1 .2 4.6 4.1 5.1l-.1 0zm106.6-10.4L384 315c-10.9 5.4-26.9 10.2-41.4 10.2-30.2 0-41.7-12.2-41.7-40.9l0-66.6c0-.8 0-1.4-.2-1.8-.8-1.2-4.2-.7-19.6-.7l0-22.6c22.3-2.5 31.2-13.7 34-41.4l24.2 0c0 33.3-.6 38 .7 38.6 .3 .1 .7 0 1.3 0l35.8 0 0 25.4-37.8 0 0 61.6c-.2 6.3-.9 30.4 37.9 15.9l-.1 0z\"],\n \"odnoklassniki\": [320, 512, [], \"f263\", \"M275.1 334c-27.4 17.4-65.1 24.3-90 26.9l20.9 20.6 76.3 76.3c27.9 28.6-17.5 73.3-45.7 45.7-19.1-19.4-47.1-47.4-76.3-76.6L84 503.4c-28.2 27.5-73.6-17.6-45.4-45.7 19.4-19.4 47.1-47.4 76.3-76.3l20.6-20.6c-24.6-2.6-62.9-9.1-90.6-26.9-32.6-21-46.9-33.3-34.3-59 7.4-14.6 27.7-26.9 54.6-5.7 0 0 36.3 28.9 94.9 28.9S255 269.2 255 269.2c26.9-21.1 47.1-8.9 54.6 5.7 12.4 25.7-1.9 38-34.5 59.1zm14.6-204.7a129.7 129.7 0 1 1 -259.4 .4 129.7 129.7 0 1 1 259.4-.4zm-193.4 .4a63.7 63.7 0 1 0 127.4-.4 63.7 63.7 0 1 0 -127.4 .4z\"],\n \"drupal\": [384, 512, [], \"f1a9\", \"M272.3 108.1C236.5 72.5 202.5 38.4 192.4 0 182.4 38.4 148.1 72.5 112.4 108.1 58.8 161.7-1.9 222.4-1.9 313.4-4.3 420.7 80.8 509.6 188.1 512s196.2-82.8 198.5-190.1c.1-2.8 .1-5.6 0-8.5 0-91.1-60.8-151.7-114.3-205.3zM98 331.1c-5.9 7.5-11 15.6-15.2 24.2-.3 .7-.8 1.3-1.3 1.8s-1.2 .8-2 1l-1.7 0c-4.3 0-9.2-8.5-9.2-8.5-1.3-2-2.5-4.2-3.7-6.4l-.8-1.8c-11.2-25.7-1.5-62.3-1.5-62.3 4.8-17.8 12.7-34.7 23.2-49.9 6.4-9.6 13.5-18.9 21-27.7l9.2 9.2 43.5 44.4c.8 .9 1.3 2.1 1.3 3.3s-.5 2.4-1.3 3.3L114.1 312.3 98 331.1zm96.6 127.3c-12.9-.1-25.6-3.9-36.4-11s-19.4-17.1-24.6-28.9-7-24.9-5-37.7 7.6-24.7 16.2-34.4c14.2-16.9 31.5-33.5 50.3-55.3 22.3 23.8 36.9 40.1 51.2 58 1.1 1.4 2.1 2.9 3 4.4 7.8 11.1 12 24.4 12 38 0 8.8-1.7 17.4-5 25.5s-8.2 15.5-14.4 21.7-13.5 11.1-21.6 14.5-16.7 5.1-25.5 5.1l-.2 0zM320.7 351.6c-.4 1.4-1.2 2.6-2.3 3.6s-2.4 1.6-3.8 1.8l-1.3 0c-2.6-.9-4.9-2.7-6.3-5.1-11.6-17.5-24.9-33.9-39.5-49l-17.8-18.4-59.1-61.3c-12.4-11.5-24.2-23.6-35.4-36.3-.3-.5-.6-.9-.9-1.4-2-2.8-3.6-5.9-4.7-9.2l0-1.8c-.8-5-.4-10.1 1.2-15s4.4-9.2 8-12.7c11.4-11.4 23-23 33.8-34.9 12 13.3 24.8 26 37.4 38.6 25.8 24 49.1 50.5 69.6 79.1 17.3 24.5 26.7 53.8 27 83.8-.1 12.9-2.2 25.8-6 38.2z\"],\n \"blogger-b\": [448, 512, [], \"f37d\", \"M446.6 222.7c-1.8-8-6.8-15.4-12.5-18.5-1.8-1-13-2.2-25-2.7-20.1-.9-22.3-1.3-28.7-5-10.1-5.9-12.8-12.3-12.9-29.5-.1-33-13.8-63.7-40.9-91.3-19.3-19.7-40.9-33-65.5-40.5-5.9-1.8-19.1-2.4-63.3-2.9-69.4-.8-84.8 .6-108.4 10-43.5 17.2-74.7 53.8-86.1 100.6-2.1 8.8-2.6 22.9-3.1 103.9-.6 101.5 .1 116.4 6.4 136.5 15.6 49.6 59.9 86.3 104.4 94.3 14.8 2.7 197.3 3.3 216 .8 32.5-4.4 58-17.5 81.9-41.9 17.3-17.7 28.1-36.8 35.2-62.1 4.9-17.6 4.5-142.8 2.5-151.7zM124.5 159.1c7.8-7.9 10-8.2 58.8-8.2 43.9 0 45.4 .1 51.8 3.4 9.3 4.7 13.4 11.3 13.4 21.9 0 9.5-3.8 16.2-12.3 21.6-4.6 2.9-7.3 3.1-50.3 3.3-26.5 .2-47.7-.4-50.8-1.2-16.6-4.7-22.8-28.5-10.6-40.8zM316.3 358.9l-14.9 2.4-77.5 .9c-68.1 .8-87.3-.4-90.9-2-7.1-3.1-13.8-11.7-14.9-19.4-1.1-7.3 2.6-17.3 8.2-22.4 7.1-6.4 10.2-6.6 97.3-6.7 89.6-.1 89.1-.1 97.6 7.8 12.1 11.3 9.5 31.2-4.9 39.4z\"],\n \"invision\": [448, 512, [], \"f7b0\", \"M407.4 32L40.6 32C18.2 32 0 50.2 0 72.6L0 439.4C0 461.8 18.2 480 40.6 480l366.8 0c22.4 0 40.6-18.2 40.6-40.6l0-366.8C448 50.2 429.8 32 407.4 32zM176.1 145.6c.4 23.4-22.4 27.3-26.6 27.4-14.9 0-27.1-12-27.1-27 .1-35.2 53.1-35.5 53.7-.4zM332.8 377c-65.6 0-34.1-74-25-106.6 14.1-46.4-45.2-59-59.9 .7l-25.8 103.3-45.1 0 8.1-32.5c-31.5 51.8-94.6 44.4-94.6-4.3 .1-14.3 .9-14 23-104.1l-31.8 0 9.7-35.6 76.4 0c-33.6 133.7-32.6 126.9-32.9 138.2 0 20.9 40.9 13.5 57.4-23.2l19.8-79.4-32.3 0 9.7-35.6 68.8 0-8.9 40.5c40.5-75.5 127.9-47.8 101.8 38-14.2 51.1-14.6 50.7-14.9 58.8 0 15.5 17.5 22.6 31.8-16.9L386 325c-10.5 36.7-29.4 52-53.2 52z\"],\n \"facebook-f\": [320, 512, [], \"f39e\", \"M80 299.3l0 212.7 116 0 0-212.7 86.5 0 18-97.8-104.5 0 0-34.6c0-51.7 20.3-71.5 72.7-71.5 16.3 0 29.4 .4 37 1.2l0-88.7C291.4 4 256.4 0 236.2 0 129.3 0 80 50.5 80 159.4l0 42.1-66 0 0 97.8 66 0z\"],\n \"centos\": [448, 512, [], \"f789\", \"M289.6 97.5l31.6 31.7-76.3 76.5 0-108.2 44.7 0zM127.2 129.2l76.3 76.5 0-108.2-44.7 0-31.6 31.7zm41.5-41.6l44.7 0 0 127.9 10.8 10.8 10.8-10.8 0-127.9 44.7 0-55.5-55.6-55.5 55.6zm26.2 168.1l-10.8-10.8-128.6 0 0-44.8-55.5 55.6 55.5 55.6 0-44.8 128.6 0 10.8-10.8zM274.2 235l107.9 0 0-44.8-31.6-31.7-76.3 76.5zm173.3 20.7l-55.5-55.6 0 44.8-127.7 0-10.8 10.8 10.8 10.8 127.7 0 0 44.8 55.5-55.6zM65.4 176.2l32.5-31.7 90.3 90.5 15.3 0 0-15.3-90.3-90.5 31.6-31.7-79.4 0 0 78.7zM382.1 97.5l-78.5 0 31.6 31.7-90.3 90.5 0 15.3 15.3 0 90.3-90.5 31.6 31.7 0-78.7zM203.5 413.9l0-108.1-76.3 76.5 31.6 31.7 44.7 0 0-.1zM65.4 235l108.8 0-76.3-76.5-32.5 31.7 0 44.8zM382.1 335.2l-31.6 31.7-90.3-90.5-15.3 0 0 15.3 90.3 90.5-31.6 31.7 78.5 0 0-78.7zm0-58.8l-107.9 0 76.3 76.5 31.6-31.7 0-44.8zM321.2 382.2l-76.3-76.5 0 108.1 44.7 0 31.6-31.6zM97.9 352.9l76.3-76.5-108.8 0 0 44.8 32.5 31.7zm181.8 70.9l-44.7 0 0-127.9-10.8-10.8-10.8 10.8 0 127.9-44.7 0 55.5 55.6 55.5-55.6zM113.2 382.2l90.3-90.5 0-15.3-15.3 0-90.3 90.5-32.5-31.7 0 78.7 79.4 0-31.6-31.7z\"],\n \"cc-amazon-pay\": [576, 512, [], \"f42d\", \"M124.7 201.8c.1-11.8 0-23.5 0-35.3l0-35.3c0-1.3 .4-2 1.4-2.7 11.5-8 24.1-12.1 38.2-11.1 12.5 .9 22.7 7 28.1 21.7 3.3 8.9 4.1 18.2 4.1 27.7 0 8.7-.7 17.3-3.4 25.6-5.7 17.8-18.7 24.7-35.7 23.9-11.7-.5-21.9-5-31.4-11.7-.9-.8-1.4-1.6-1.3-2.8zm154.9 14.6c4.6 1.8 9.3 2 14.1 1.5 11.6-1.2 21.9-5.7 31.3-12.5 .9-.6 1.3-1.3 1.3-2.5-.1-3.9 0-7.9 0-11.8 0-4-.1-8 0-12 0-1.4-.4-2-1.8-2.2-7-.9-13.9-2.2-20.9-2.9-7-.6-14-.3-20.8 1.9-6.7 2.2-11.7 6.2-13.7 13.1-1.6 5.4-1.6 10.8 .1 16.2 1.6 5.5 5.2 9.2 10.4 11.2zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM368.5 103.9c.4 1.7 .9 3.4 1.6 5.1 16.5 40.6 32.9 81.3 49.5 121.9 1.4 3.5 1.7 6.4 .2 9.9-2.8 6.2-4.9 12.6-7.8 18.7-2.6 5.5-6.7 9.5-12.7 11.2-4.2 1.1-8.5 1.3-12.9 .9-2.1-.2-4.2-.7-6.3-.8-2.8-.2-4.2 1.1-4.3 4-.1 2.8-.1 5.6 0 8.3 .1 4.6 1.6 6.7 6.2 7.5 4.7 .8 9.4 1.6 14.2 1.7 14.3 .3 25.7-5.4 33.1-17.9 2.9-4.9 5.6-10.1 7.7-15.4 19.8-50.1 39.5-100.3 59.2-150.5 .6-1.5 1.1-3 1.3-4.6 .4-2.4-.7-3.6-3.1-3.7-5.6-.1-11.1 0-16.7 0-3.1 0-5.3 1.4-6.4 4.3-.4 1.1-.9 2.3-1.3 3.4l-29.1 83.7c-2.1 6.1-4.2 12.1-6.5 18.6-.4-.9-.6-1.4-.8-1.9-10.8-29.9-21.6-59.9-32.4-89.8-1.7-4.7-3.5-9.5-5.3-14.2-.9-2.5-2.7-4-5.4-4-6.4-.1-12.8-.2-19.2-.1-2.2 0-3.3 1.6-2.8 3.7zM242.4 206c1.7 11.7 7.6 20.8 18 26.6 9.9 5.5 20.7 6.2 31.7 4.6 12.7-1.9 23.9-7.3 33.8-15.5 .4-.3 .8-.6 1.4-1 .5 3.2 .9 6.2 1.5 9.2 .5 2.6 2.1 4.3 4.5 4.4 4.6 .1 9.1 .1 13.7 0 2.3-.1 3.8-1.6 4-3.9 .1-.8 .1-1.6 .1-2.3l0-88.8c0-3.6-.2-7.2-.7-10.8-1.6-10.8-6.2-19.7-15.9-25.4-5.6-3.3-11.8-5-18.2-5.9-3-.4-6-.7-9.1-1.1l-10 0c-.8 .1-1.6 .3-2.5 .3-8.2 .4-16.3 1.4-24.2 3.5-5.1 1.3-10 3.2-15 4.9-3 1-4.5 3.2-4.4 6.5 .1 2.8-.1 5.6 0 8.3 .1 4.1 1.8 5.2 5.7 4.1 6.5-1.7 13.1-3.5 19.7-4.8 10.3-1.9 20.7-2.7 31.1-1.2 5.4 .8 10.5 2.4 14.1 7 3.1 4 4.2 8.8 4.4 13.7 .3 6.9 .2 13.9 .3 20.8 0 .4-.1 .7-.2 1.2-.4 0-.8 0-1.1-.1-8.8-2.1-17.7-3.6-26.8-4.1-9.5-.5-18.9 .1-27.9 3.2-10.8 3.8-19.5 10.3-24.6 20.8-4.1 8.3-4.6 17-3.4 25.8zM98.7 106.9l0 175.3c0 .8 0 1.7 .1 2.5 .2 2.5 1.7 4.1 4.1 4.2 5.9 .1 11.8 .1 17.7 0 2.5 0 4-1.7 4.1-4.1 .1-.8 .1-1.7 .1-2.5l0-60.7c.9 .7 1.4 1.2 1.9 1.6 15 12.5 32.2 16.6 51.1 12.9 17.1-3.4 28.9-13.9 36.7-29.2 5.8-11.6 8.3-24.1 8.7-37 .5-14.3-1-28.4-6.8-41.7-7.1-16.4-18.9-27.3-36.7-30.9-2.7-.6-5.5-.8-8.2-1.2l-7 0c-1.2 .2-2.4 .3-3.6 .5-11.7 1.4-22.3 5.8-31.8 12.7-2 1.4-3.9 3-5.9 4.5-.1-.5-.3-.8-.4-1.2-.4-2.3-.7-4.6-1.1-6.9-.6-3.9-2.5-5.5-6.4-5.6l-9.7 0c-5.9-.1-6.9 1-6.9 6.8zM493.6 339c-2.7-.7-5.1 0-7.6 1-43.9 18.4-89.5 30.2-136.8 35.8-14.5 1.7-29.1 2.8-43.7 3.2-26.6 .7-53.2-.8-79.6-4.3-17.8-2.4-35.5-5.7-53-9.9-37-8.9-72.7-21.7-106.7-38.8-8.8-4.4-17.4-9.3-26.1-14-3.8-2.1-6.2-1.5-8.2 2.1l0 1.7c1.2 1.6 2.2 3.4 3.7 4.8 36 32.2 76.6 56.5 122 72.9 21.9 7.9 44.4 13.7 67.3 17.5 14 2.3 28 3.8 42.2 4.5 3 .1 6 .2 9 .4 .7 0 1.4 .2 2.1 .3l17.7 0c.7-.1 1.4-.3 2.1-.3 14.9-.4 29.8-1.8 44.6-4 21.4-3.2 42.4-8.1 62.9-14.7 29.6-9.6 57.7-22.4 83.4-40.1 2.8-1.9 5.7-3.8 8-6.2 4.3-4.4 2.3-10.4-3.3-11.9zM544 311.3c-.8-4.2-4-5.8-7.6-7-5.7-1.9-11.6-2.8-17.6-3.3-11-.9-22-.4-32.8 1.6-12 2.2-23.4 6.1-33.5 13.1-1.2 .8-2.4 1.8-3.1 3-.6 .9-.7 2.3-.5 3.4 .3 1.3 1.7 1.6 3 1.5 .6 0 1.2 0 1.8-.1l19.5-2.1c9.6-.9 19.2-1.5 28.8-.8 4.1 .3 8.1 1.2 12 2.2 4.3 1.1 6.2 4.4 6.4 8.7 .3 6.7-1.2 13.1-2.9 19.5-3.5 12.9-8.3 25.4-13.3 37.8-.3 .8-.7 1.7-.8 2.5-.4 2.5 1 4 3.4 3.5 1.4-.3 3-1.1 4-2.1 3.7-3.6 7.5-7.2 10.6-11.2 10.7-13.8 17-29.6 20.7-46.6 .7-3 1.2-6.1 1.7-9.1 .2-4.7 .2-9.6 .2-14.5z\"],\n \"ebay\": [640, 512, [], \"f4f4\", \"M606.5 189.5l-54.8 109.9-54.9-109.9-37.5 0 10.9 20.6c-11.5-19-35.9-26-63.3-26-31.8 0-67.9 8.7-71.5 43.1l33.7 0c1.4-13.8 15.7-21.8 35-21.8 26 0 41 9.6 41 33l0 3.4c-12.7 0-28 .1-41.7 .4-42.4 .9-69.6 10-76.7 34.4 1-5.2 1.5-10.6 1.5-16.2 0-52.1-39.7-76.2-75.4-76.2-21.3 0-43 5.5-58.7 24.2l0-80.6-32.1 0 0 169.5c0 10.3-.6 22.9-1.1 33.1l31.5 0c.7-6.3 1.1-12.9 1.1-19.5 13.6 16.6 35.4 24.9 58.7 24.9 36.9 0 64.9-21.9 73.3-54.2-.5 2.8-.7 5.8-.7 9 0 24.1 21.1 45 60.6 45 26.6 0 45.8-5.7 61.9-25.5 0 6.6 .3 13.3 1.1 20.2l29.8 0c-.7-8.2-1-17.5-1-26.8l0-65.6c0-9.3-1.7-17.2-4.8-23.8l61.5 116.1-28.5 54.1 35.9 0 99.2-194.8-34 0zM244.2 313.8c-29.6 0-50.2-21.5-50.2-53.8 0-32.4 20.6-53.8 50.2-53.8 29.8 0 50.2 21.4 50.2 53.8 0 32.3-20.4 53.8-50.2 53.8zm200.9-47.3c0 30-17.9 48.4-51.6 48.4-25.1 0-35-13.4-35-25.8 0-19.1 18.1-24.4 47.2-25.3 13.1-.5 27.6-.6 39.4-.6l0 3.3zM33.2 268.1l128.8 0 0-8.5c0-51.7-33.1-75.4-78.4-75.4-56.8 0-83 30.8-83 77.6 0 42.5 25.3 74 82.5 74 31.4 0 68-11.7 74.4-46.1l-33.1 0c-12 35.8-87.7 36.7-91.2-21.6zm95-21.4l-94.4 0c6.9-56.6 92.1-54.7 94.4 0z\"],\n \"contao\": [512, 512, [], \"f26d\", \"M45.4 305c14.4 67.1 26.4 129 68.2 175L34 480c-18.7 0-34-15.2-34-34L0 66C0 47.3 15.2 32 34 32l57.7 0c-13.8 12.6-26.1 27.2-36.9 43.6-45.4 70-27 146.8-9.4 229.4zM478 32l-90.2 0c21.4 21.4 39.2 49.5 52.7 84.1L303.4 145.4c-14.9-29-37.8-53.3-82.6-43.9-24.6 5.3-41 19.3-48.3 34.6-8.8 18.7-13.2 39.8 8.2 140.3 21.1 100.2 33.7 117.7 49.5 131.2 12.9 11.1 33.4 17 58.3 11.7 44.5-9.4 55.7-40.7 57.4-73.2l137.4-29.6c3.2 71.5-18.7 125.2-57.4 163.6l52.1 0c18.7 0 34-15.2 34-34L512 66c0-18.8-15.2-34-34-34z\"],\n \"ello\": [512, 512, [], \"f5f1\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM399.8 293.2C383.3 358.5 323.8 404.8 256 404.8S128.7 358.5 112.2 293.2c-1.6-7.4 2.5-15.7 9.9-17.4s15.7 2.5 17.4 9.9c14 52.9 62 90.1 116.6 90.1s102.5-37.2 116.6-90.1c1.7-7.4 9.9-12.4 17.4-9.9 7.4 1.7 12.4 9.9 9.9 17.4z\"],\n \"sistrix\": [448, 512, [], \"f3ee\", \"M448 449L301.2 300.2c20-27.9 31.9-62.2 31.9-99.2 0-93.1-74.7-168.9-166.5-168.9-91.9-.1-166.6 75.7-166.6 168.8S74.7 369.8 166.5 369.8c39.8 0 76.3-14.2 105-37.9L417.5 480 448 449zM166.5 330.8c-70.6 0-128.1-58.3-128.1-129.9S95.9 71 166.5 71 294.6 129.3 294.6 200.9 237.2 330.8 166.5 330.8z\"],\n \"periscope\": [448, 512, [], \"f3da\", \"M370 63.6c-38.6-41-89.5-63.6-143.4-63.6-114.7 0-208.1 96.2-208.1 214.4 0 75.1 57.8 159.8 82.7 192.7 36.6 48.4 91.4 104.9 125.4 104.9 41.6 0 112.9-94.2 120.9-105 24.6-33.1 82-118.3 82-192.6 0-56.5-21.1-110.1-59.5-150.8zM226.6 493.9c-42.5 0-190-167.3-190-279.4 0-107.4 83.9-196.3 190-196.3 100.8 0 184.7 89 184.7 196.3 .1 112.1-147.4 279.4-184.7 279.4zM338 206.8c0 59.1-51.1 109.7-110.8 109.7-100.6 0-150.7-108.2-92.9-181.8l0 .4c0 24.5 20.1 44.4 44.8 44.4s44.8-19.9 44.8-44.4c0-18.2-11.1-33.8-26.9-40.7 76.6-19.2 141 39.3 141 112.4z\"],\n \"expeditedssl\": [512, 512, [], \"f23e\", \"M256 43.4a212.6 212.6 0 1 0 0 425.2 212.6 212.6 0 1 0 0-425.2zM158.6 176.3c0-53.7 43.7-97.4 97.4-97.4s97.4 43.7 97.4 97.4l0 26.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-26.6c0-82.1-124-82.1-124 0l0 26.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-26.6 .2 0zM397.7 380c0 9.7-8 17.7-17.7 17.7l-248 0c-9.7 0-17.7-8-17.7-17.7l0-141.7c0-9.7 8-17.7 17.7-17.7l248 0c9.7 0 17.7 8 17.7 17.7l0 141.7zm-248-137.3l0 132.9c0 2.5-1.9 4.4-4.4 4.4l-8.9 0c-2.5 0-4.4-1.9-4.4-4.4l0-132.9c0-2.5 1.9-4.4 4.4-4.4l8.9 0c2.5 0 4.4 1.9 4.4 4.4zm141.7 48.7c0 13-7.2 24.4-17.7 30.4l0 31.6c0 5-3.9 8.9-8.9 8.9l-17.7 0c-5 0-8.9-3.9-8.9-8.9l0-31.6c-10.5-6.1-17.7-17.4-17.7-30.4 0-19.7 15.8-35.4 35.4-35.4s35.5 15.8 35.5 35.4zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 17.7a230.3 230.3 0 1 1 0 460.6 230.3 230.3 0 1 1 0-460.6z\"],\n \"napster\": [512, 512, [], \"f3d2\", \"M306.3 373.6c-14.2 13.6-31.3 24.1-50.4 30.5-19-6.4-36.2-16.9-50.3-30.5l100.7 0zm44-199.6c20-16.9 43.6-29.2 69.6-36.2l0 161.2c0 219.4-328 217.6-328 .3l0-161.6c25.9 6.9 49.6 19.6 69.5 36.4 56.8-40 132.5-39.9 188.9-.1zM141.5 115.5c64.4-60 164.3-60.1 228.9-.2-7.1 3.5-13.9 7.3-20.6 11.5-58.7-30.5-129.2-30.4-187.9 .1-6.3-4-13.9-8.2-20.4-11.4zM51.8 93.2l0 69.3c-58.4 36.5-58.4 121.1 .1 158.3 26.4 245.1 381.7 240.3 407.6 1.5l.3-1.7c58.7-36.3 58.9-121.7 .2-158.2l0-69.2c-17.3 .5-34 3-50.1 7.4-82-91.5-225.5-91.5-307.5 .1-16.3-4.4-33.1-7-50.6-7.5zM267.2 352s36-.3 61.3-1.5c10.2-.5 21.1-4 25.5-6.5 26.3-15.1 25.4-39.2 26.2-47.4-79.5-.6-99.9-3.9-113 55.4zM131.7 296.7c.8 8.2-.1 32.3 26.2 47.4 4.4 2.5 15.2 6 25.5 6.5 25.3 1.1 61.3 1.5 61.3 1.5-13.2-59.4-33.7-56.1-113-55.4zM300.8 420.1c-3.2-5.3-6.9-7.3-6.9-7.3-24.8 7.3-52.2 6.9-75.9 0 0 0-2.9 1.5-6.4 6.6-2.8 4.1-3.7 9.6-3.7 9.6 29.1 17.6 67.1 17.6 96.2 0-.1-.1-.3-4-3.3-8.9z\"],\n \"delicious\": [448, 512, [], \"f1a5\", \"M446.6 68c-.4-1.5-.9-3-1.4-4.5-.9-2.5-2-4.8-3.3-7.1-1.4-2.4-3-4.8-4.7-6.9-2.1-2.5-4.4-4.8-6.9-6.8-1.1-.9-2.2-1.7-3.3-2.5-1.3-.9-2.6-1.7-4-2.4-1.8-1-3.6-1.8-5.5-2.5-1.7-.7-3.5-1.3-5.4-1.7-3.8-1-7.9-1.5-12-1.5l-352 0C21.6 32 .1 53.5 .1 80l0 352c0 4.1 .5 8.2 1.5 12 2 7.7 5.8 14.6 11 20.3 1 1.1 2.1 2.2 3.3 3.3 5.7 5.2 12.6 9 20.3 11 3.8 1 7.9 1.5 12 1.5l352 0c26.5 0 48-21.5 48-48l0-352.1c-.1-4.1-.6-8.2-1.6-12zM416.1 432c0 8.8-7.2 16-16 16l-176 0 0-192-192 0 0-176c0-8.8 7.2-16 16-16l176 0 0 192 192 0 0 176z\"],\n \"guilded\": [448, 512, [], \"e07e\", \"M443.9 64L5 64c0 103.3 22.2 180.1 43.4 222.4 64.1 127.8 176 161.6 177.3 161.6 55.7-20.5 104.5-56.3 140.6-103.5 25.9-33.9 53.1-87.2 65.9-145.8l-259.9 0c4.1 36.4 22.2 67.9 45.1 86.9l88.6 0c-17 28.2-48.2 54.4-80.5 69.5-31.2-13.3-69.1-46.5-96.5-98.4-26.7-53.8-27.1-105.9-27.1-105.9l336.1 0c4-28.8 5.9-57.9 5.9-86.9z\"],\n \"xbox\": [512, 512, [], \"f412\", \"M369.9 318.2c44.3 54.3 64.7 98.8 54.4 118.7-7.9 15.1-56.7 44.6-92.6 55.9-29.6 9.3-68.4 13.3-100.4 10.2-38.2-3.7-76.9-17.4-110.1-39-27.9-18.2-34.2-25.7-34.2-40.6 0-29.9 32.9-82.3 89.2-142.1 32-33.9 76.5-73.7 81.4-72.6 9.4 2.1 84.3 75.1 112.3 109.5zM188.6 143.8c-29.7-26.9-58.1-53.9-86.4-63.4-15.2-5.1-16.3-4.8-28.7 8.1-29.2 30.4-53.5 79.7-60.3 122.4-5.4 34.2-6.1 43.8-4.2 60.5 5.6 50.5 17.3 85.4 40.5 120.9 9.5 14.6 12.1 17.3 9.3 9.9-4.2-11-.3-37.5 9.5-64 14.3-39 53.9-112.9 120.3-194.4zm311.6 63.5c-16.9-80-67.5-130.3-74.6-130.3-7.3 0-24.2 6.5-36 13.9-23.3 14.5-41 31.4-64.3 52.8 42.4 53.3 102.2 139.4 122.9 202.3 6.8 20.7 9.7 41.1 7.4 52.3-1.7 8.5-1.7 8.5 1.4 4.6 6.1-7.7 19.9-31.3 25.4-43.5 7.4-16.2 15-40.2 18.6-58.7 4.3-22.5 3.9-70.8-.8-93.4zM141.3 43c47.7-2.5 109.7 34.5 114.3 35.4 .7 .1 10.4-4.2 21.6-9.7 63.9-31.1 94-25.8 107.4-25.2-63.9-39.3-152.7-50-233.9-11.7-23.4 11.1-24 11.9-9.4 11.2z\"],\n \"untappd\": [640, 512, [], \"f405\", \"M401.5 49.9C321.7 210 316.9 202.4 313.6 223.1l-5.2 32.8c-1.9 12-6.6 23.5-13.7 33.4L145.8 497.1c-7.6 10.6-20.4 16.2-33.4 14.6-40.3-5-77.8-32.2-95.3-68.5-5.7-11.8-4.5-25.8 3.1-36.4L169.1 198.9c7.1-9.9 16.4-18 27.2-23.7l29.3-15.5c18.5-9.8 9.7-11.9 135.6-138.9 1-4.8 1-7.3 3.6-8 3-.7 6.6-1 6.3-4.6l-.4-4.6c-.2-1.9 1.3-3.6 3.2-3.6 4.5-.1 13.2 1.2 25.6 10 12.3 8.9 16.4 16.8 17.7 21.1 .6 1.8-.6 3.7-2.4 4.2l-4.5 1.1c-3.4 .9-2.5 4.4-2.3 7.4 .1 2.8-2.3 3.6-6.5 6.1zM230.3 36.4c3.4 .9 2.5 4.4 2.3 7.4-.2 2.7 2.1 3.5 6.4 6 7.9 15.9 15.3 30.5 22.2 44 .7 1.3 2.3 1.5 3.3 .5 11.2-12 24.6-26.2 40.5-42.6 1.3-1.4 1.4-3.5 .1-4.9-8-8.2-16.5-16.9-25.6-26.1-1-4.7-1-7.3-3.6-8-3-.8-6.6-1-6.3-4.6 .3-3.3 1.4-8.1-2.8-8.2-4.5-.1-13.2 1.1-25.6 10-12.3 8.9-16.4 16.8-17.7 21.1-1.4 4.2 3.6 4.6 6.8 5.4zM620.2 406.7L471.4 198.8c-13.2-18.5-26.6-23.4-56.4-39.1-11.2-5.9-14.2-10.9-30.5-28.9-1-1.1-2.9-.9-3.6 .5-46.3 88.8-47.1 82.8-49 94.8-1.7 10.7-1.3 20 .3 29.8 1.9 12 6.6 23.5 13.7 33.4L494.8 497.2c7.6 10.6 20.2 16.2 33.1 14.7 40.3-4.9 78-32 95.7-68.6 5.4-11.9 4.3-25.9-3.4-36.6z\"],\n \"google-plus-g\": [640, 512, [], \"f0d5\", \"M386.3 228.5c1.8 9.7 3.1 19.4 3.1 32 0 109.8-73.6 187.5-184.4 187.5-106.1 0-192-85.9-192-192S98.9 64 205 64c51.9 0 95.1 18.9 128.6 50.3l-52.1 50c-14.1-13.6-39-29.6-76.5-29.6-65.5 0-118.9 54.2-118.9 121.3S139.5 377.3 205 377.3c76 0 104.5-54.7 109-82.8l-109 0 0-66 181.3 0 0 0zm185.4 6.4l0-55.7-56 0 0 55.7-55.7 0 0 56 55.7 0 0 55.7 56 0 0-55.7 55.7 0 0-56-55.7 0z\"],\n \"github-alt\": [512, 512, [], \"f113\", \"M202.1 328.7c0 20.9-10.9 55.1-36.7 55.1s-36.7-34.2-36.7-55.1 10.9-55.1 36.7-55.1 36.7 34.2 36.7 55.1zM496 278.2c0 31.9-3.2 65.7-17.5 95-37.9 76.6-142.1 74.8-216.7 74.8-75.8 0-186.2 2.7-225.6-74.8-14.6-29-20.2-63.1-20.2-95 0-41.9 13.9-81.5 41.5-113.6-5.2-15.8-7.7-32.4-7.7-48.8 0-21.5 4.9-32.3 14.6-51.8 45.3 0 74.3 9 108.8 36 29-6.9 58.8-10 88.7-10 27 0 54.2 2.9 80.4 9.2 34-26.7 63-35.2 107.8-35.2 9.8 19.5 14.6 30.3 14.6 51.8 0 16.4-2.6 32.7-7.7 48.2 27.5 32.4 39 72.3 39 114.2zm-64.3 50.5c0-43.9-26.7-82.6-73.5-82.6-18.9 0-37 3.4-56 6-14.9 2.3-29.8 3.2-45.1 3.2-15.2 0-30.1-.9-45.1-3.2-18.7-2.6-37-6-56-6-46.8 0-73.5 38.7-73.5 82.6 0 87.8 80.4 101.3 150.4 101.3l48.2 0c70.3 0 150.6-13.4 150.6-101.3zm-82.6-55.1c-25.8 0-36.7 34.2-36.7 55.1s10.9 55.1 36.7 55.1 36.7-34.2 36.7-55.1-10.9-55.1-36.7-55.1z\"],\n \"get-pocket\": [448, 512, [], \"f265\", \"M407.6 64l-367 0C18.5 64 0 82.5 0 104.6L0 239.8C0 364.5 99.7 464 224.2 464 348.2 464 448 364.5 448 239.8l0-135.2C448 82.2 430.3 64 407.6 64zm-162 268.5c-12.4 11.8-31.4 11.1-42.4 0-113.7-108.9-114.9-105.1-114.9-123.2 0-16.9 13.8-30.7 30.7-30.7 17 0 16.1 3.8 105.2 89.3 90.6-86.9 88.6-89.3 105.5-89.3s30.7 13.8 30.7 30.7c0 17.8-2.9 15.7-114.8 123.2z\"],\n \"glide\": [448, 512, [], \"f2a5\", \"M252.8 148.6c0 8.8-1.6 17.7-3.4 26.4-5.8 27.8-11.6 55.8-17.3 83.6-1.4 6.3-8.3 4.9-13.7 4.9-23.8 0-30.5-26-30.5-45.5 0-29.3 11.2-68.1 38.5-83.1 4.3-2.5 9.2-4.2 14.1-4.2 11.4 0 12.3 8.3 12.3 17.9zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM384 267c0-5.1-20.8-37.7-25.5-39.5-2.2-.9-7.2-2.3-9.6-2.3-23.1 0-38.7 10.5-58.2 21.5l-.5-.5c4.3-29.4 14.6-57.2 14.6-87.4 0-44.6-23.8-62.7-67.5-62.7-71.7 0-108 70.8-108 123.5 0 54.7 32 85 86.3 85 7.5 0 6.9-.6 6.9 2.3-10.5 80.3-56.5 82.9-56.5 58.9 0-24.4 28-36.5 28.3-38-.2-7.6-29.3-17.2-36.7-17.2-21.1 0-32.7 33-32.7 50.6 0 32.3 20.4 54.7 53.3 54.7 48.2 0 83.4-49.7 94.3-91.7 9.4-37.7 7-39.4 12.3-42.1 20-10.1 35.8-16.8 58.4-16.8 11.1 0 19 2.3 36.7 5.2 1.8 .1 4.1-1.7 4.1-3.5z\"],\n \"bity\": [512, 512, [], \"f37a\", \"M86.5 67.2c95.4-89.2 246.1-91.2 343.1 3.8 14.3 14.1-6.4 37.1-22.4 21.5-84.8-82.4-215.8-80.3-298.9-3.2-16.3 15.1-36.5-8.3-21.8-22.1zm98.9 418.6c19.3 5.7 29.3-23.6 7.9-30-112.2-33.9-175.8-149.7-147.5-261 5-19.6-24.9-28.1-30.2-7.1-32.1 127.4 41.1 259.8 169.8 298.1zm148.1-2c121.9-40.2 192.9-166.9 164.4-291-4.5-19.7-34.9-13.8-30 7.9 24.2 107.7-37.1 217.9-143.2 253.4-21.2 7-10.4 36 8.8 29.7zm-62.9-79l.2-71.8c0-8.2-6.6-14.8-14.8-14.8s-14.8 6.7-14.8 14.8l-.2 71.8c0 8.2 6.6 14.8 14.8 14.8s14.8-6.6 14.8-14.8zm71-269c2.1 90.9 4.7 131.9-85.5 132.5-92.5-.7-86.9-44.3-85.5-132.5 0-21.8-32.5-19.6-32.5 0l0 71.6c0 69.3 60.7 90.9 118 90.1 57.3 .8 118-20.8 118-90.1l0-71.6c0-19.6-32.5-21.8-32.5 0z\"],\n \"wpexplorer\": [512, 512, [], \"f2de\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm480 0a224 224 0 1 0 -448 0 224 224 0 1 0 448 0zM160.9 124.6l86.9 37.1-37.1 86.9-86.9-37.1 37.1-86.9zm110 169.1l46.6 94-14.6 0-50-100-48.9 100-14 0 51.1-106.9-22.3-9.4 6-14 68.6 29.1-6 14.3-16.5-7.1zM259.1 177.4l68.6 29.4-29.4 68.3-68.3-29.1 29.1-68.6zm80.3 42.9l54.6 23.1-23.4 54.3-54.3-23.1 23.1-54.3z\"],\n \"megaport\": [512, 512, [], \"f5a3\", \"M222.5 209.6l0 66.2 33.5 33.5 33.3-33.3 0-66.4-33.4-33.4-33.4 33.4zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM401.1 422.4l-26.1 19.2-26-19.2 0-65.5-33.4-33.4-33.4 33.4 0 65.5-26.2 19.2-26.1-19.2 0-65.5-33.4-33.4-33.5 33.4 0 65.5-26.1 19.2-26.1-19.2 0-87 59.5-59.5 0-87.9 59.5-59.5 0-75.6 26.1-19.2 26.1 19.2 0 75.6 59.5 59.5 0 87.6 59.7 59.7 0 87.1-.1 0z\"],\n \"mdb\": [576, 512, [], \"f8ca\", \"M17.4 160.4l-10.4 191.6 43.9 0 5.6-79.8 27.9 79.8 44.7 0 25.5-77.4 4.8 77.4 45.5 0-12.8-191.6-45.5 0-40.7 117.3-42.3-117.3-46.3 0zm281 0l-47.9 0 0 191.6 47.9 0s95 .8 94.2-95.8c-.8-94.2-94.2-95.8-94.2-95.8l0 0zm-1.2 146.5l0-102.1s46 4.3 46.8 50.6-46.8 51.5-46.8 51.5l0 0zm238.3-74.2c7.2-11.4 10-25 8-38.3-5.3-35.8-55.1-34.3-55.1-34.3l-51.9 0 0 191.6 45.5 0s87 4.8 87-63.8c0-43.1-33.5-55.1-33.5-55.1l0 0zm-51.9-31.9s13.6-1.6 16 9.6c1.4 6.7-4 12-4 12l-12 0 0-21.6zm-.1 109.5l.1-24.9 0-18.2 .1 0s41.6-4.7 41.2 22.4c-.3 25.7-41.3 20.7-41.3 20.7l0 0z\"],\n \"page4\": [512, 512, [], \"f3d7\", \"M256 504C119 504 8 393 8 256S119 8 256 8c20.9 0 41.3 2.6 60.7 7.5L50.3 392 256 392 256 504zm0-143.6l0-213.6-149.4 213.6 149.4 0zM352 392l0 92.7c45.7-19.2 84.5-51.7 111.4-92.7L352 392zm57.4-138.2l-21.2 8.4 21.2 8.3 0-16.7zm-20.3 54.5c-6.7 0-8 6.3-8 12.9l0 7.7 16.2 0 0-10c0-5.9-2.3-10.6-8.2-10.6zM504 256c0 37.3-8.2 72.7-23 104.4l-129 0 0-333.1C441.3 64.8 504 153.1 504 256zM368.4 143.6l68.2 0 0-47.6-13.9 0 0 32.6-13.9 0 0-29.6-13.9 0 0 29.6-12.7 0 0-32.6-13.9 0 0 47.6 .1 0zm68.1 185.3l-26.5 0 0-11c0-15.4-5.6-25.2-20.9-25.2-15.4 0-20.7 10.6-20.7 25.9l0 25.3 68.2 0 0-15-.1 0zm0-103l-68.2 29.7 0 12.4 68.2 29.5 0-16.6-14.4-5.7 0-26.5 14.4-5.9 0-16.9zm-4.8-68.5l-35.6 0 0 26.6 13.9 0 0-12.2 11 0c8.6 15.8 1.3 35.3-18.6 35.3-22.5 0-28.3-25.3-15.5-37.7l-11.6-10.6c-16.2 17.5-12.2 63.9 27.1 63.9 34 0 44.7-35.9 29.3-65.3z\"],\n \"the-red-yeti\": [512, 512, [], \"f69d\", \"M488.7 241.7l20.7 7.1c-9.6-23.9-23.9-37-31.7-44.8l7.1-18.2c.2 0 12.3-27.8-2.5-30.7-.6-11.3-6.6-27-18.4-27-7.6-10.6-17.7-12.3-30.7-5.9-9.1 4.4-17.6 10-25.3 16.5-5.3-6.4-3 .4-3-29.8-37.1-24.3-45.4-11.7-74.8 3l.5 .5c-22-7.7-45.1-12.2-68.4-13.3-5.5-8.7-18.6-19.1-25.1-25.1l24.8 7.1c-5.5-5.5-26.8-12.9-34.2-15.2 18.2-4.1 29.8-20.8 42.5-33-34.9-10.1-67.9-5.9-97.9 11.8l12-44.2-1.8-.5c-31.6 24.2-33 41.9-33.7 45.5-.9-2.4-6.3-19.6-15.2-27-3.3 8.1-3.5 17.1-.5 25.3 3 8.4 5.9 14.8 8.4 18.9-16-3.3-28.3-4.9-49.2 0l-3.7 0 33 14.3c-20.2 18.9-36.1 41.9-46.7 67.4l-1.7 8.4 1.7 1.7 7.6-4.7c-3.3 11.6-5.3 19.4-6.6 25.8-10.9 12.2-20.2 25.8-27.8 40.3-15 1-31.8 10.8-40.3 14.3l3 3.4 28.8 1c-.5 1-.7 2.2-1.2 3.2-7.3 6.4-39.8 37.7-33 80.7l20.2-22.4c.5 1.7 .7 3.4 1.2 5.2 0 25.5 .4 89.6 64.9 150.5 43.6 40 96 60.2 157.5 60.2 121.7 0 223-87.3 223-211.5 6.8-9.7-1.2 3 16.7-25.1l13 14.3 2.5-.5c-1.8-11.7-4.8-23.1-8.9-34.2-1.5-4.8-3.8-9.3-6.8-13.3l0 0zM398.5 111.2l-.5 21.9c5.5 18.1 16.9 17.2 22.4 17.2l-3.4-4.7 22.4-5.4c-9 .5-18 .5-27 0 12.8-2.1 33.3-29 43-11.3 3.4 7.6 6.4 17.2 9.3 27.8l1.7-5.9c-1.3-5-1.8-10.1-1.7-15.2 5.4 .5 8.8 3.4 9.3 10.1 .5 6.4 1.7 14.8 3.4 25.3l4.7-11.3c4.6 0 4.5-3.6-2.5 20.7-20.9-8.7-35.1-8.4-46.5-8.4l18.2-16c-25.3 8.2-33 10.8-54.8 20.9-1.1-5.4-5-13.5-16-19.9-3.2 3.8-2.8 .9-.7 14.8l-2.5 0c-1.2-8.2-4.1-16-8.4-23.1l4.2-3.4c8.4-7.1 11.8-14.3 10.6-21.9-.5-6.4-5.4-13.5-13.5-20.7 5.6-3.4 15.2-.4 28.3 8.5zm-39.6-10.1c2.7 1.9 11.4 5.4 18.9 17.2 4.2 8.4 4 9.8 3.4 11.1-.5 2.4-.5 4.3-3 7.1-1.7 2.5-5.4 4.7-11.8 7.6-7.6-13-16.5-23.6-27.8-31.2l20.3-11.8zm-267.4 42l1.2-1.7c1.2-2.9 4.2-7.6 9.3-15.2l2.5-3.4-13 12.3 5.4-4.7-10.1 9.3-4.2 1.2c12.3-24.1 23.1-41.3 32.5-50.2 9.3-9.3 16-16 20.2-19.4l-6.4 1.2c-11.3-4.2-19.4-7.1-24.8-8.4 2.5-.5 3.7-.5 3.2-.5 10.3 0 17.5 .5 20.9 1.2 5.2 1.7 10.6 2.5 16 2.5l.5-1.7-8.4-35.8 13.5 29c2.8-4.4 4.8-9.2 5.9-14.3 1.7-6.4 5.4-13 10.1-19.4s7.6-10.6 9.3-11.3c-2.6 8.3-4.7 16.8-6.4 25.3l-1.7 7.1-.5 4.7 2.5 2.5c21.9-13.5 45.5-19.4 71.3-18.9l21.1 .5c-11.8 13.5-27.8 21.9-48.5 24.8-7.7 1.4-15.6 2.4-23.4 2.9l-.2-.5-2.5-1.2c-4.8-1-9.7-.3-14 2-2.5-.2-4.9-.5-7.1-.7l-2.5 1.7 .5 1.2c2 .2 3.9 .5 6.2 .7l-2 3.4 3.4-.5-10.6 11.3c-4.2 3-5.4 6.4-4.2 9.3l5.4-3.4 1.2 0c6.1-8.2 15.2-13.6 25.3-15.2l0-3c6.4 .5 13 1 19.4 1.2 6.4 0 8.4 .5 5.4 1.2 7.2 4 14.1 8.6 20.7 13.5 13.5 10.1 23.6 21.9 30 35.4 8.8 18.2 13.5 37.1 13.5 56.6 0 9.5-1 19-3 28.3-3.5 15.9-8.9 31.3-16 46l2.5 .5c18.2-19.7 41.9-16 49.2-16l-6.4 5.9 22.4 17.7-1.7 30.7c-5.4-12.3-16.5-21.1-33-27.8 16.5 14.8 23.6 21.1 21.9 20.2-4.8-2.8-3.5-1.9-10.8-3.7 4.1 4.1 17.5 18.8 18.2 20.7l.2 .2-.2 .2c0 1.8 1.6-1.2-14 22.9-75.2-15.3-106.3-42.7-141.2-63.2l11.8 1.2c-11.8-18.5-15.6-17.7-38.4-26.1l10.6-8.4c-8.8-3-18.2-3-28.3 .5l7.6-10.6-1.2-1.7c-14.9 4.3-19.8 9.2-22.6 11.3-1.1-5.5-2.8-12.4-12.3-28.8l-1.2 27-13.2-5c1.5-25.2 5.4-50.5 13.2-74.6zM368 473.1c-49.9 25-56.1 22.4-59 23.9-29.8-11.8-50.9-31.7-63.5-58.8l30 16.5c-9.8-9.3-18.3-16.5-38.4-44.3l11.8 23.1-17.7-7.6c14.2 21.1 23.5 51.7 66.6 73.5-120.8 24.2-199-72.1-200.9-74.3 11.1 9.2 22.9 17.5 35.4 24.8 3.4 1.7 7.1 2.5 10.1 1.2l-16-20.7c9.2 4.2 9.5 4.5 69.1 29-42.5-20.7-73.8-40.8-93.2-60.2-.5 6.4-1.2 10.1-1.2 10.1 8.7 7.3 15.8 16.4 20.7 26.6-39-18.9-57.6-47.6-71.3-82.6 49.9 55.1 118.9 37.5 120.5 37.1 34.8 16.4 69.9 23.6 113.9 10.6 3.3 0 20.3 17 25.3 39.1l4.2-3-2.5-23.6c9 9 24.9 22.6 34.4 13-15.6-5.3-23.5-9.5-29.5-31.7 4.6 4.2 7.6 9 27.8 15l1.2-1.2-10.5-14.2c11.7-4.8-3.5 1 32-10.8 4.3 34.3 9 49.2 .7 89.5zM483.3 258.7l-2.5 .5 3 9.3c-3.5 5.9-23.7 44.3-71.6 79.7-39.5 29.8-76.6 39.1-80.9 40.3l-7.6-7.1-1.2 3 14.3 16-7.1-4.7 3.4 4.2-1.2 0-21.9-13.5 9.3 26.6-19-27.9-1.2 2.5 7.6 29c-6.1-8.2-21-32.6-56.8-39.6l32.5 21.2c-31.2 4.7-63 2.5-93.2-6.4-4.2-1.2-8.9-2.5-13.5-4.2l1.2-3-44.8-22.4 26.1 22.4c-57.7 9.1-113-25.4-126.4-83.4L29.3 284.8 7 307.1c19.5-57.5 25.6-57.9 51.4-70.1-9.1-5.3-1.6-3.3-38.4-9.3 15.8-5.8 33-15.4 73 5.2 1.2-.7 2.4-1.3 3.7-1.7 .6-3.2 .4-.8 1-11.8 3.9 10 3.6 8.7 3 9.3l1.7 .5c12.7-6.5 8.9-4.5 17-8.9l-5.4 13.5 22.3-5.8-8.4 8.4 2.5 2.5c4.5-1.8 30.3 3.4 40.8 16l-23.6-2.5c39.4 23 51.5 54 55.8 69.6l1.7-1.2c-2.8-22.3-12.4-33.9-16-40.1 4.2 5 39.2 34.6 110.4 46-11.3-.5-23.1 5.4-34.9 18.9l46.7-20.2-9.3 21.9c7.6-10.1 14.8-23.6 21.2-39.6l0-.5 1.2-3-1.2 16c13.5-41.8 25.3-78.5 35.4-109.7l13.5-27.8 0-2-5.4-4.2 10.1 0 5.9 4.2 2.5-1.2-3.4-16 12.3 18.9 41.8-20.2-14.8 13 .5 2.9 17.7-.5c11.1 .4 22.1 1.8 33 4.2l-23.6 2.5-1.2 3 26.6 23.1c9.9 9.9 18.9 20.6 27 32-11.2-3.3-10.3-3.4-21.2-3.4l12.3 32.5-8.9-12.8zm-6.1-71.3l-3.9 13-14.3-11.8 18.2-1.2zm-254.8 7.1c1.7 10.6 4.7 17.7 8.8 21.9-9.3 6.6-27.5 13.9-46.5 16l.5 1.2c8.3 1.3 16.9 .4 24.8-2.5l-7.1 13c4.2-1.7 10.1-7.1 17.7-14.8 11.9-5.5 12.7-5.1 20.2-16-12.7-6.4-15.7-13.7-18.4-18.8zm3.7-102.3c-6.4-3.4-10.6 3-12.3 18.9s2.5 29.5 11.8 39.6 18.2 10.6 26.1 3 3.4-23.6-11.3-47.7c-3.5-5.7-8.4-10.5-14.3-13.8l0 0zm-4.7 46.3c5.4 2.2 10.5 1.9 12.3-10.6l0-4.7-1.2 .5c-4.3-3.1-2.5-4.5-1.7-6.2l.5-.5c-.9-1.2-5-8.1-12.5 4.7-.5-13.5 .5-21.9 3-24.8 1.2-2.5 4.7-1.2 11.3 4.2 6.4 5.4 11.3 16 15.2 32.5 6.5 28-19.8 26.2-26.9 4.9zm-45-5.5c1.6 .3 9.3-1.1 9.3-14.8l-.5 0c-5.4-1.1-2.2-5.5-.7-5.9-1.7-3-3.4-4.2-5.4-4.7-8.1 0-11.6 12.7-8.1 21.2 .5 1.1 1.3 2 2.2 2.8s2 1.2 3.2 1.4l0 0zm40.1-50.1l-2.5 .5 .5 3c9.1-.5 18.1 1.5 26.1 5.9-2.5-5.5-10-14.3-28.3-14.3l.5 2.5 3.7 2.4zm-71.8 49.4c21.7 16.8 16.5 21.4 46.5 23.6l-2.9-4.7c8.4-7.2 13.7-17.3 14.8-28.3 1.7-16-1.2-29.5-8.8-41.3l13-7.6c0-.3 0-.6-.1-.9s-.2-.6-.4-.8c-2.2-.9-4.6-1.2-7-.9s-4.6 1.2-6.5 2.6c-12.7 6.7-28 20.9-29 22.4-1.7 1.7-3.4 5.9-5.4 13.5-1.9 7.7-2.9 15.6-2.9 23.6-4.7-8-10.5-6.4-19.9-5.9l7.1 7.6c-16.5 0-23.3 15.4-23.6 16 6.8 0 4.6-7.6 30-12.3-4.3-6.3-3.3-5-4.9-6.6zm18.7-18.7c1.2-7.6 3.4-13 6.4-17.2 5.4-6.4 10.6-10.1 16-11.8 4.2-1.7 7.1 1.2 10.1 9.3 2.5 8.2 3.5 16.8 3 25.3-.5 9.3-3.4 17.2-8.4 23.1-2.9 3.4-5.4 5.9-6.4 7.6-3.8 .4-7.6 .2-11.3-.5l-7.1-3.4-5.4-6.4c.8-10 1.3-18.8 3.1-26zm42 56.1c-34.8 14.4-34.7 14-36.1 14.3-20.8 4.7-19-24.4-18.9-24.8l5.9-1.2-.5-2.5c-20.2-2.6-31 4.2-32.5 4.9 .5 .5 3 3.4 5.9 9.3 4.2-6.4 8.8-10.1 15.2-10.6-1.7 11.2-1.2 22.7 1.7 33.7 .1 .5 2.6 17.4 27.5 24.1 11.3 3 27 1.2 48.9-5.4l-9.2 .5c-4.2-14.8-6.4-24.8-5.9-29.5 11.3-8.8 21.9-11.3 30.7-7.6l2.5 0-11.8-7.6-7.1 .5c-5.9 1.2-12.3 4.2-19.4 8.4l3.1-6.5z\"],\n \"jira\": [512, 512, [], \"f7b1\", \"M498.5 241.7c-72.9-72.7-169.4-169.9-241.5-241.7-165.5 164.9-242.5 241.7-242.5 241.7-7.9 7.9-7.9 20.7 0 28.7 132.8 132.3 61.8 61.5 242.5 241.6 379.4-378 15.7-16.7 241.5-241.7 8-7.9 8-20.7 0-28.6zM257 331.7l-76-75.7 76-75.7 76 75.7-76 75.7z\"],\n \"fedex\": [640, 512, [], \"f797\", \"M586 284.5l53.3-59.9-62.4 0-21.7 24.8-22.5-24.8-118.7 0 0-16 56.1 0 0-48.1-151.2 0 0 75.5-.5 0c-9.6-11-21.5-14.8-35.4-14.8-28.4 0-49.8 19.4-57.3 44.9-18-59.4-97.4-57.6-121.9-14l0-24.2-54.8 0 0-26.2 60 0 0-41.1-109 0 0 184.4 49 0 0-77.5 48.9 0c-1.5 5.7-2.3 11.8-2.3 18.2 0 73.1 102.6 91.4 130.2 23.7l-42 0c-14.7 20.9-45.8 8.9-45.8-14.6l85.5 0c3.7 30.5 27.4 56.9 60.1 56.9 14.1 0 27-6.9 34.9-18.6l.5 0 0 11.9 212.2 0 22.1-25 22.3 25 64.4 0-54-60.5zM139.3 267.9c6.1-26.3 41.7-25.6 46.5 0l-46.5 0zm153.4 48.9c-34.6 0-34-62.8 0-62.8 32.6 0 34.5 62.8 0 62.8zm167.8 19.1l-94.4 0 0-166.5 95 0 0 30.2-56.1 0 0 33.9 55.5 0 0 28.1-56.1 0 0 44.7 56.1 0 0 29.6zm-45.9-39.8l0-24.4 56.1 0 0-44 50.7 57-50.7 57 0-45.6-56.1 0zm138.6 10.3l-26.1 29.5-38.1 0 45.6-51.2-45.6-51.2 39.7 0 26.6 29.3 25.6-29.3 38.5 0-45.4 51 46 51.4-40.5 0-26.3-29.5z\"],\n \"evernote\": [384, 512, [], \"f839\", \"M121.1 132.2c1.6 22.3-17.6 21.6-21.6 21.6-68.9 0-73.6-1-83.6 3.3-.6 .2-.7 0-.4-.4L124.1 46.4c.4-.4 .6-.2 .4 .4-4.4 10-3.4 15.1-3.4 85.4zm79 308c-14.7-37.1 13-76.9 52.5-76.6 17.5 0 22.6 23.2 7.9 31.4-6.2 3.3-24.9 1.7-25.1 19.2 0 17.1 19.7 25 31.2 24.9 6 0 11.9-1.2 17.5-3.5s10.6-5.7 14.8-9.9 7.6-9.3 9.9-14.8 3.5-11.5 3.5-17.5l0-.1c0-11.6-7.8-47.2-47.5-55.3-7.7-1.5-65-6.3-68.4-50.5-3.7 16.9-17.4 63.5-43.1 69.1-8.7 1.9-69.7 7.6-112.9-36.8 0 0-18.6-15.2-28.2-58-3.4-15.7-9.3-39.7-11.1-62 0-18 11.1-30.4 25.1-32.2 81 0 90 2.3 101-7.8 9.8-9.2 7.8-15.5 7.8-102.8 1-8.3 7.8-30.8 53.4-24.1 6 .9 31.9 4.2 37.5 30.6L290 74.8c20.4 3.7 70.9 7 80.6 57.9 22.7 121.1 8.9 238.5 7.8 238.5-16 114.4-111.1 108.9-111.1 108.9-19-.2-54.2-9.4-67.3-39.8l0 0zM281 235.4c-1 1.9-2.2 6 .9 7 14.1 4.9 39.8 6.8 45.9 5.5 3.1-.2 3.1-4.4 2.5-6.6-3.5-21.8-40.8-26.5-49.2-5.9l0 0z\"],\n \"usb\": [640, 512, [], \"f287\", \"M633.5 256c0 3.1-1.7 6.1-4.5 7.5L539.9 317c-1.4 .8-2.8 1.4-4.5 1.4-1.4 0-3.1-.3-4.5-1.1-2.8-1.7-4.5-4.5-4.5-7.8l0-35.6-230.7 0c25.3 39.6 40.5 106.9 69.6 106.9l26.7 0 0-26.8c0-5 3.9-8.9 8.9-8.9l89.1 0c5 0 8.9 3.9 8.9 8.9l0 89.1c0 5-3.9 8.9-8.9 8.9l-89.1 0c-5 0-8.9-3.9-8.9-8.9l0-26.7-26.7 0c-75.4 0-81.1-142.5-124.7-142.5l-100.3 0c-8.1 30.6-35.9 53.5-69 53.5-39.3-.1-71.3-32.1-71.3-71.4s32-71.3 71.3-71.3c33.1 0 61 22.8 69 53.5 39.1 0 43.9 9.5 74.6-60.4 40.1-89.1 58.1-82.1 108.9-82.1 7.5-20.9 27-35.6 50.4-35.6 29.5 0 53.5 23.9 53.5 53.5s-23.9 53.5-53.5 53.5c-23.4 0-42.9-14.8-50.4-35.6l-29.8 0c-29.1 0-44.3 67.4-69.6 106.9l302.1 0 0-35.6c0-3.3 1.7-6.1 4.5-7.8s6.4-1.4 8.9 .3L629 248.8c2.8 1.1 4.5 4.1 4.5 7.2z\"],\n \"angrycreative\": [640, 512, [], \"f36e\", \"M640 238.2l-3.2 28.2-34.5 2.3-2 18.1 34.5-2.3-3.2 28.2-34.4 2.2-2.3 20.1 34.4-2.2-3 26.1-64.7 4.1 12.7-113.2-47.3 115.4-31.9 2-23.8-117.8 30.3-2 13.6 79.4 31.7-82.4 93.1-6.2zM426.8 371.5l28.3-1.8 12.9-120.1-28.4 1.9-12.8 120zM162 388.1l-19.4-36-3.5 37.4-28.2 1.7 2.7-29.1c-11 18-32 34.3-56.9 35.8-32.8 2-59.7-20.9-56.4-58.2 2.6-29.3 26.7-62.8 67.5-65.4 37.7-2.4 47.6 23.2 51.3 28.8l2.8-30.8 38.9-2.5c20.1-1.3 38.7 3.7 42.5 23.7l2.6-26.6 64.8-4.2-2.7 27.9-36.4 2.4-1.7 17.9 36.4-2.3-2.7 27.9-36.4 2.3-1.9 19.9 36.3-2.3-2.1 20.8 55-117.2 23.8-1.6 32.1 110.6 8.9-85.6-22.3 1.4 2.9-27.9 75-4.9-3 28-24.3 1.6-9.7 91.9-58 3.7-4.3-15.6-39.4 2.5-8 16.3-126.2 7.7zm-44.3-70.2l-26.4 1.7c-6.7-12.4-14.4-16.6-26.3-15.8-19 1.2-33.3 17.5-34.6 33.3-1.4 16 7.3 32.5 28.7 31.2 12.8-.8 21.3-8.6 28.9-18.9l27-1.7 2.7-29.8zm56.1-7.7c1.2-12.9-7.6-13.6-26.1-12.4L145 326.3c14.2-.9 27.5-2.1 28.8-16.1zM194.9 381l5.8-60c-5 13.5-14.7 21.1-27.9 26.6L194.9 381zm135.4-45l-7.9-37.8-15.8 39.3 23.7-1.5zM160.2 261.4l-4.3-17.5-39.6 2.6-8.1 18.2-31.9 2.1 57-121.9 23.9-1.6 30.7 102 9.9-104.7 27-1.8 37.8 63.6 6.5-66.6 28.5-1.9-4 41.2c7.4-13.5 22.9-44.7 63.6-47.5 40.5-2.8 52.4 29.3 53.4 30.3l3.3-32 39.3-2.7c12.7-.9 27.8 .3 36.3 9.7l-4.4-11.9 32.2-2.2 12.9 43.2 23-45.7 31-2.2-43.6 78.4-4.8 44.3-28.4 1.9 4.8-44.3-15.8-43c1 22.3-9.2 40.1-32 49.6l25.2 38.8-36.4 2.4-19.2-36.8-4 38.3-28.4 1.9 3.3-31.5c-6.7 9.3-19.7 35.4-59.6 38-26.2 1.7-45.6-10.3-55.4-39.2l-4 40.3-25 1.6-37.6-63.3-6.3 66.2-56.8 3.7zm276.6-82.1c10.2-.7 17.5-2.1 21.6-4.3 4.5-2.4 7-6.4 7.6-12.1 .6-5.3-.6-8.8-3.4-10.4-3.6-2.1-10.6-2.8-22.9-2l-2.9 28.8zM327.7 214c5.6 5.9 12.7 8.5 21.3 7.9 4.7-.3 9.1-1.8 13.3-4.1 5.5-3 10.6-8 15.1-14.3l-34.2 2.3 2.4-23.9 63.1-4.3 1.2-12-31.2 2.1c-4.1-3.7-7.8-6.6-11.1-8.1-4-1.7-8.1-2.8-12.2-2.5-8 .5-15.3 3.6-22 9.2-7.7 6.4-12 14.5-12.9 24.4-1.1 9.6 1.4 17.3 7.2 23.3zm-201.3 8.2l23.8-1.6-8.3-37.6-15.5 39.2z\"],\n \"mizuni\": [512, 512, [], \"f3cc\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM176 359.9c-31.4 10.6-58.8 27.3-80 48.2L96 136c0-22.1 17.9-40 40-40s40 17.9 40 40l0 223.9zM296 350c-12.9-2-26.2-3.1-39.8-3.1-13.8 0-27.2 1.1-40.2 3.1l0-214c0-22.1 17.9-40 40-40s40 17.9 40 40l0 214zm120 57.7c-21.2-20.8-48.6-37.4-80-48L336 136c0-22.1 17.9-40 40-40s40 17.9 40 40l0 271.7z\"],\n \"itch-io\": [512, 512, [], \"f83a\", \"M71.9 34.8C50.2 47.7 7.4 96.8 7 109.7l0 21.3c0 27.1 25.3 50.8 48.2 50.8 27.6 0 50.5-22.8 50.5-50 0 27.1 22.2 50 49.8 50s49-22.8 49-50c0 27.1 23.6 50 51.2 50l.5 0c27.6 0 51.2-22.8 51.2-50 0 27.1 21.5 50 49 50s49.8-22.8 49.8-50c0 27.1 23 50 50.5 50 23 0 48.3-23.8 48.3-50.8l0-21.3c-.4-12.9-43.2-62.1-64.9-75-67.4-2.3-114.2-2.7-184-2.7S91.1 33.1 71.9 34.8zM204.2 169.2c-22 38.4-77.9 38.7-99.8 .2-13.2 23.1-43.2 32.1-56 27.7-3.9 40.2-13.7 237.1 17.7 269.2 80 18.7 302.1 18.1 379.8 0 31.6-32.3 21.3-232 17.7-269.2-12.9 4.4-42.9-4.6-56-27.7-22 38.5-77.8 38.1-99.8-.2-7.1 12.5-23 28.9-51.8 28.9-10.4 .3-20.8-2.2-29.9-7.3s-16.7-12.6-21.9-21.6l0 0zm-41.6 53.8c16.5 0 31.1 0 49.2 19.8 29.3-3 58.9-3 88.2 0 18.2-19.7 32.8-19.7 49.2-19.7 52.3 0 65.2 77.5 83.9 144.4 17.3 62.2-5.5 63.7-34 63.7-42.1-1.6-65.5-32.2-65.5-62.8-39.3 6.4-101.9 8.8-155.6 0 0 30.6-23.3 61.2-65.5 62.8-28.4-.1-51.2-1.6-33.9-63.7 18.7-67 31.6-144.4 83.9-144.4l0-.1zM256 270.8s-44.4 40.8-52.4 55.2l29-1.2 0 25.3c0 1.5 21.3 .2 23.3 .2 11.6 .5 23.3 1 23.3-.2l0-25.3 29 1.2c-8-14.5-52.4-55.2-52.4-55.2l.1 0z\"],\n \"windows\": [448, 512, [], \"f17a\", \"M0 93.7l183.6-25.3 0 177.4-183.6 0 0-152.1zM0 418.3l183.6 25.3 0-175.2-183.6 0 0 149.9zm203.8 28l244.2 33.7 0-211.6-244.2 0 0 177.9zm0-380.6l0 180.1 244.2 0 0-213.8-244.2 33.7z\"],\n \"stumbleupon\": [512, 512, [], \"f1a4\", \"M502.9 266l0 69.7c0 62.1-50.3 112.4-112.4 112.4-61.8 0-112.4-49.8-112.4-111.3l0-70.2 34.3 16 51.1-15.2 0 70.6c0 14.7 12 26.5 26.7 26.5S417 352.7 417 338l0-72 85.9 0zM278.2 207.8l34.3 16 51.1-15.2 0-35.6c0-60.5-51.1-109-112.1-109-60.8 0-112.1 48.2-112.1 108.2l0 162.4c0 14.9-12 26.7-26.7 26.7S86 349.5 86 334.6l0-68.6-86 0 0 69.7c0 62 50.3 112.3 112.4 112.3 61.6 0 112.4-49.5 112.4-110.8l0-160.3c0-14.7 12-26.7 26.7-26.7s26.7 12 26.7 26.7l0 30.9z\"],\n \"google\": [512, 512, [], \"f1a0\", \"M500 261.8C500 403.3 403.1 504 260 504 122.8 504 12 393.2 12 256S122.8 8 260 8c66.8 0 123 24.5 166.3 64.9l-67.5 64.9c-88.3-85.2-252.5-21.2-252.5 118.2 0 86.5 69.1 156.6 153.7 156.6 98.2 0 135-70.4 140.8-106.9l-140.8 0 0-85.3 236.1 0c2.3 12.7 3.9 24.9 3.9 41.4z\"],\n \"discord\": [576, 512, [], \"f392\", \"M492.5 69.8c-.2-.3-.4-.6-.8-.7-38.1-17.5-78.4-30-119.7-37.1-.4-.1-.8 0-1.1 .1s-.6 .4-.8 .8c-5.5 9.9-10.5 20.2-14.9 30.6-44.6-6.8-89.9-6.8-134.4 0-4.5-10.5-9.5-20.7-15.1-30.6-.2-.3-.5-.6-.8-.8s-.7-.2-1.1-.2c-41.3 7.1-81.6 19.6-119.7 37.1-.3 .1-.6 .4-.8 .7-76.2 113.8-97.1 224.9-86.9 334.5 0 .3 .1 .5 .2 .8s.3 .4 .5 .6c44.4 32.9 94 58 146.8 74.2 .4 .1 .8 .1 1.1 0s.7-.4 .9-.7c11.3-15.4 21.4-31.8 30-48.8 .1-.2 .2-.5 .2-.8s0-.5-.1-.8-.2-.5-.4-.6-.4-.3-.7-.4c-15.8-6.1-31.2-13.4-45.9-21.9-.3-.2-.5-.4-.7-.6s-.3-.6-.3-.9 0-.6 .2-.9 .3-.5 .6-.7c3.1-2.3 6.2-4.7 9.1-7.1 .3-.2 .6-.4 .9-.4s.7 0 1 .1c96.2 43.9 200.4 43.9 295.5 0 .3-.1 .7-.2 1-.2s.7 .2 .9 .4c2.9 2.4 6 4.9 9.1 7.2 .2 .2 .4 .4 .6 .7s.2 .6 .2 .9-.1 .6-.3 .9-.4 .5-.6 .6c-14.7 8.6-30 15.9-45.9 21.8-.2 .1-.5 .2-.7 .4s-.3 .4-.4 .7-.1 .5-.1 .8 .1 .5 .2 .8c8.8 17 18.8 33.3 30 48.8 .2 .3 .6 .6 .9 .7s.8 .1 1.1 0c52.9-16.2 102.6-41.3 147.1-74.2 .2-.2 .4-.4 .5-.6s.2-.5 .2-.8c12.3-126.8-20.5-236.9-86.9-334.5zm-302 267.7c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.4 59.2-52.8 59.2zm195.4 0c-29 0-52.8-26.6-52.8-59.2s23.4-59.2 52.8-59.2c29.7 0 53.3 26.8 52.8 59.2 0 32.7-23.2 59.2-52.8 59.2z\"],\n \"hacker-news\": [448, 512, [], \"f1d4\", \"M0 32l0 448 448 0 0-448-448 0zM21.2 229.2l-.2 0c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4zm218 53.9l0 100.9-31.4 0 0-102.7-79.8-153.3 37.3 0c52.5 98.3 49.2 101.2 59.3 125.6 12.3-27 5.8-24.4 60.6-125.6l34.8 0-80.8 155.1z\"],\n \"eleventy\": [640, 512, [\"11ty\"], \"e7d6\", \"M615.3 168.5c2.3 0 4.6 .7 6.6 2.2 1.9 1.4 3.1 3.3 3.8 5 1.4 3.3 1.8 7.3 1.8 11.3 0 2.2-.3 4.9-.7 7.6l0 .4-50.9 264.9 0 0c-4 22.1-8.5 39.4-13.6 51.7-5 12.1-10.9 21.6-18.6 27l0 0c-7.5 5.3-16.9 7.7-27.6 8l-3 0c-16 0-29.3-4.2-36.9-14.8-.1-.1-.1-.1-.2-.2-.1-.2-.3-.4-.5-.6l0 0c-1.8-2.4-2.5-5.2-2.9-7.4-.5-2.8-.7-6.1-.7-9.8 0-7.3 .6-13.5 2.1-18.2 1.4-4.4 4.8-10.4 12.2-10.4l1.3 .1c.2 0 .4 .1 .5 .1 .3 .1 .6 .1 .8 .2 .6 .1 1.3 .3 2.2 .6l7.6 2.2 .1 0 7.6 2.1c.9 .2 1.7 .4 2.2 .5 .4 .1 .6 .1 .7 .1 0 0 .1 0 .2-.1 .1-.1 .4-.2 .8-.6 .9-.9 2.2-2.6 3.6-5.7 2.6-5.8 4.2-14.7 4.2-27.4 0-.7-.3-3.4-1.3-8.9-.9-5.1-2.3-12.2-4.2-21.1l-56-232.9-.1-.4 0-.3c-.4-2.7-.7-5.3-.7-7.3 0-3.7 .4-7.5 1.7-10.6 .7-1.6 1.8-3.4 3.5-4.9 1.9-1.5 4.2-2.3 6.5-2.3l34.6 0c4.6 0 8.7 1.7 11.9 5l1.3 1.5c1.2 1.6 2 3.4 2.7 5.2 .9 2.4 1.5 5.1 2 8.1l30.4 161.2 23.8-160c.8-5.8 2.2-11.4 5.1-15.1 3-3.8 7.2-5.8 12-5.8l24 0zM375.1 34.6c2.6 0 5.1 .7 7.4 2.3 2.2 1.5 3.7 3.6 4.7 5.7 1.9 4 2.5 9.1 2.5 14.5l0 111.2c0 .1 0 .2 0 .3l32.4 0c2.5 0 5 .6 7.2 2.1 2.2 1.4 3.7 3.4 4.8 5.5 2 3.9 2.6 8.8 2.6 13.9l0 15.4c0 5-.6 9.8-2.6 13.7-1.1 2-2.6 4-4.8 5.4-2.2 1.4-4.7 2-7.1 2l-32.5 0 0 145.8c0 10.8 .7 19.5 2 26.2 1.4 6.9 3.1 10.9 4.7 12.9 1.2 1.5 2.2 2.5 3.1 3.2l2.2 1.4 .1 .1 2.9 .8c1.2 .2 2.6 .3 4.3 .3l20.3 0c4.5 0 8.9 1.7 11.8 5.8 2.6 3.6 3.3 8.1 3.3 12.2l0 17.2c0 4.5-.8 9.3-3.4 13.1-3 4.2-7.5 6-12.3 6l0 0-29.1 .1c-8 0-15-.6-21.2-1.7-6.7-1.3-13.4-4.1-20.1-8.1-7.2-4.4-13-10.3-17.5-17.8-4.5-7.5-7.9-17.5-10.5-29.5-2.6-12.2-3.9-26.6-3.9-43l0-144.9-13.4 0c-2.4 0-4.9-.6-7.1-2-2.2-1.4-3.7-3.4-4.8-5.4-2-3.9-2.6-8.7-2.6-13.7l0-15.4c0-5.1 .6-10 2.6-13.9 1.1-2.1 2.6-4 4.8-5.5 2.2-1.5 4.7-2.1 7.2-2.1l13.4 0 0-.6 5.2-111.2 0-.1 .3-3.9c.5-3.8 1.3-7.4 2.7-10.3 2.1-4.2 6-7.9 11.8-7.9l28.6 0zm-268 11.7c1.8 .3 3.6 .9 5.3 2.1 2.1 1.5 3.5 3.5 4.4 5.4 1.7 3.7 2.3 8.4 2.3 13.2l0 377.8c0 6.7-.6 12.6-2.4 17.1-.9 2.3-2.3 4.7-4.4 6.5-2.3 2-5.1 3-8.1 3l-43.7 0c-3 0-5.8-1.1-8.1-3.1-2.1-1.9-3.4-4.3-4.2-6.5-1.7-4.5-2.3-10.3-2.3-17l0-315.8c-4.8 1.2-8.7 2.2-11.5 2.9-1.9 .5-3.4 .8-4.4 1.1-.5 .1-.9 .2-1.2 .3-.1 0-.3 .1-.5 .1-.1 0-.2 0-.3 .1 0 0-.2 0-.3 0 0 0-.2 0-.4 0l0 0c-.1 0-.3 0-.4 0-.1 0-.2 0-.2 0-2.2 .1-4.5-.4-6.6-1.7-2.3-1.4-3.8-3.4-4.7-5.3-1.8-3.7-2.3-8.4-2.3-13l0-27.4c0-4.4 .7-8.8 2.6-12.4 2.1-3.9 5.5-6.6 9.8-7.6l75.5-19.5c1.4-.4 2.9-.5 4.4-.5l1.8 .1zm143.8-.5c1.8 .3 3.6 .9 5.2 2.1 2.1 1.5 3.5 3.5 4.4 5.4 1.7 3.7 2.2 8.4 2.2 13.2l0 377.8c0 6.7-.6 12.6-2.4 17.1-.9 2.3-2.3 4.7-4.4 6.5-2.3 2-5.1 3-8.1 3l-43.7 0c-3 0-5.8-1.1-8.1-3.1-2.1-1.9-3.4-4.3-4.2-6.5-1.7-4.5-2.3-10.3-2.3-17l0-315.8c-4.8 1.2-8.7 2.2-11.5 2.9-1.9 .5-3.4 .8-4.4 1.1-.5 .1-.9 .2-1.2 .3-.1 0-.3 .1-.5 .1-.1 0-.2 0-.3 .1-.1 0-.2 0-.3 0 0 0-.2 0-.4 0l0 0c-.1 0-.2 0-.3 0-.1 0-.2 0-.3 0-2.2 .1-4.5-.4-6.6-1.7-2.3-1.4-3.8-3.4-4.7-5.3-1.8-3.7-2.3-8.3-2.3-13l0-27.4c0-4.4 .7-8.7 2.6-12.4 2.1-3.9 5.5-6.6 9.8-7.6l75.4-19.4c1.4-.4 2.9-.5 4.4-.5l1.8 .1z\"],\n \"teamspeak\": [576, 512, [], \"f4f9\", \"M152.8 37.2c-32.2 38.1-56.1 82.6-69.9 130.5 0 .2-.1 .3-.1 .5-39.3 16.2-66.8 54.8-66.8 99.8 0 59.6 48.4 108 108 108s108-48.4 108-108c0-53.5-38.9-97.9-90-106.5 15.7-41.8 40.4-79.6 72.3-110.7 1.8-1.6 4-2.6 6.3-3.1 37.2-11.5 76.7-13.3 114.8-5.2 119.3 25.1 198.6 138.2 181.7 258.8-8.4 62.6-38.6 112.7-87.7 151.4-50.1 39.7-107.5 54.3-170.2 52.2l-24-1c12.4 2.8 25 4.9 37.6 6.3 40.7 4.2 81.4 2.1 120.1-12.5 94-35.5 149.3-102.3 162.9-202.5 4.8-52.6-5.8-105.4-30.8-152-70.4-131.9-234.2-181.6-366-111.2-2.4 1.4-4.5 3.1-6.3 5.2l.1 0zM309.4 433.9c-2.1 11.5-4.2 21.9-14.6 31.3 53.2-1 123.2-29.2 161.8-97.1 39.7-69.9 37.6-139.9-6.3-207.8-36.5-55.3-89.8-82.4-156.6-86.6 1.5 2.3 3.2 4.4 5.2 6.3l5.2 6.3c25.1 31.3 37.6 67.9 42.8 107.5 2.1 15.7-1 30.3-13.6 41.8-4.2 3.1-5.2 6.3-4.2 10.4l7.3 17.7 29.3 54.3c5.2 11.5 4.2 19.8-6.3 28.2-3.2 2.5-6.7 4.6-10.4 6.3l-18.8 8.4 3.1 13.6c3.1 6.3 1 12.5-3.1 17.7-2.5 2.4-3.8 5.9-3.1 9.4 2.1 11.5-2.1 19.8-12.5 25.1-2.1 1-4.2 5.2-5.2 7.3l0-.1zm-133.6-3.1c16.7 11.5 34.5 20.9 53.2 26.1 24 5.2 41.8-6.3 44.9-30.3 1-8.4 5.2-14.6 12.5-17.7 7.3-4.2 8.4-7.3 2.1-13.6l-9.4-8.4 13.6-4.2c6.3-2.1 7.3-5.2 5.2-11.5-1.4-3-2.4-6.2-3.1-9.4-3.1-14.6-2.1-15.7 11.5-18.8 8.4-3.1 15.7-6.3 21.9-12.5 3.1-2.1 3.1-4.2 1-8.4l-16.7-30.3c-1-1.9-2.1-3.8-3.1-5.7-6.4-11.7-13-23.6-15.7-37.1-2.1-9.4-1-17.7 8.4-24 5.2-4.2 8.4-9.4 8.4-16.7-.4-10.1-1.5-20.3-3.1-30.3-6.3-37.6-23-68.9-51.2-95-5.2-4.2-9.4-6.3-16.7-4.2l-35.6 12.7 6 3.6c6.3 3.7 12.2 7.3 17 12.1 30.3 26.1 41.8 61.6 45.9 100.2 1 8.4 0 16.7-7.3 21.9-8.4 5.2-10.4 12.5-7.3 20.9 4.9 13.2 10.4 26 16.7 38.6L291.6 318c-6.3 8.4-13.6 11.5-21.9 14.6-12.5 3.1-14.6 7.3-10.4 20.9 .6 1.5 1.4 2.8 2.1 4.2 2.1 5.2 1 8.4-4.2 10.4l-12.5 3.1 5.2 4.2 4.2 4.2c4.2 5.2 4.2 8.4-2.1 10.4-7.3 4.2-11.5 9.4-11.5 17.7 0 12.5-7.3 19.8-18.8 24-3.8 1-7.6 1.5-11.5 1l-34.5-2.1 .1 .2z\"],\n \"supple\": [640, 512, [], \"f3f9\", \"M640 262.5c0 64.1-109 116.1-243.5 116.1-24.8 0-48.6-1.8-71.1-5 7.7 .4 15.5 .6 23.4 .6 134.5 0 243.5-56.9 243.5-127.1 0-29.4-19.1-56.4-51.2-78 60 21.1 98.9 55.1 98.9 93.4zM47.7 227.9c-.1-70.2 108.8-127.3 243.3-127.6 7.9 0 15.6 .2 23.3 .5-22.5-3.2-46.3-4.9-71-4.9-134.5 .4-243.4 52.6-243.3 116.7 .1 38.3 39.1 72.3 99.3 93.3-32.3-21.5-51.5-48.6-51.6-78zm60.2 39.9S118.4 281 137.2 281c17.9 0 28.4-11.5 28.4-25.1 0-28-40.2-25.1-40.2-39.7 0-5.4 5.3-9.1 12.5-9.1 5.7 0 11.3 2.6 11.3 6.6l0 3.9 14.2 0 0-7.9c0-12.1-15.4-16.8-25.4-16.8-16.5 0-28.5 10.2-28.5 24.1 0 26.6 40.2 25.4 40.2 39.9 0 6.6-5.8 10.1-12.3 10.1-11.9 0-20.7-10.1-20.7-10.1l-8.8 10.9zm120.8-73.6l0 54.4c0 11.3-7.1 17.8-17.8 17.8s-17.8-6.5-17.8-17.7l0-54.5-15.8 0 0 55c0 18.9 13.4 31.9 33.7 31.9 20.1 0 33.4-13 33.4-31.9l0-55-15.7 0zm34.4 85.4l15.8 0 0-29.5 15.5 0c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8l-39.1 0 0 13.4 7.8 0 0 72zm15.8-43l0-29.1 12.9 0c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5.1 14.7-14 14.7l-12.6 0zm57 43l15.8 0 0-29.5 15.5 0c16 0 27.2-11.5 27.2-28.1s-11.2-27.8-27.2-27.8l-39.1 0 0 13.4 7.8 0 0 72zm15.7-43l0-29.1 12.9 0c8.7 0 13.7 5.7 13.7 14.4 0 8.9-5 14.7-14 14.7l-12.6 0zm57.1 34.8c0 5.8 2.4 8.2 8.2 8.2l37.6 0c5.8 0 8.2-2.4 8.2-8.2l0-13-14.3 0 0 5.2c0 1.7-1 2.6-2.6 2.6l-18.6 0c-1.7 0-2.6-1-2.6-2.6l0-61.2c0-5.7-2.4-8.2-8.2-8.2l-15.4 0 0 13.4 5.2 0c1.7 0 2.6 1 2.6 2.6l0 61.2-.1 0zm63.4 0c0 5.8 2.4 8.2 8.2 8.2l38.7 0c5.7 0 8.2-2.4 8.2-8.2l0-13-14.3 0 0 5.2c0 1.7-1 2.6-2.6 2.6l-19.7 0c-1.7 0-2.6-1-2.6-2.6l0-20.3 27.7 0 0-13.4-27.7 0 0-22.4 19.2 0c1.7 0 2.6 1 2.6 2.6l0 5.2 14.2 0 0-13c0-5.7-2.5-8.2-8.2-8.2l-51.6 0 0 13.4 7.8 0 0 63.9 .1 0zm58.9-76l0 5.9 1.6 0 0-5.9 2.7 0 0-1.2-7 0 0 1.2 2.7 0zm5.7-1.2l0 7.1 1.5 0 0-5.7 2.3 5.7 1.3 0 2.3-5.7 0 5.7 1.5 0 0-7.1-2.3 0-2.1 5.1-2.1-5.1-2.4 0z\"],\n \"square-twitter\": [448, 512, [\"twitter-square\"], \"f081\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM351.3 199.3c0 86.7-66 186.6-186.6 186.6-37.2 0-71.7-10.8-100.7-29.4 5.3 .6 10.4 .8 15.8 .8 30.7 0 58.9-10.4 81.4-28-28.8-.6-53-19.5-61.3-45.5 10.1 1.5 19.2 1.5 29.6-1.2-30-6.1-52.5-32.5-52.5-64.4l0-.8c8.7 4.9 18.9 7.9 29.6 8.3-9-6-16.4-14.1-21.5-23.6s-7.8-20.2-7.7-31c0-12.2 3.2-23.4 8.9-33.1 32.3 39.8 80.8 65.8 135.2 68.6-9.3-44.5 24-80.6 64-80.6 18.9 0 35.9 7.9 47.9 20.7 14.8-2.8 29-8.3 41.6-15.8-4.9 15.2-15.2 28-28.8 36.1 13.2-1.4 26-5.1 37.8-10.2-8.9 13.1-20.1 24.7-32.9 34 .2 2.8 .2 5.7 .2 8.5z\"],\n \"font-awesome\": [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"],\n \"wirsindhandwerk\": [448, 512, [\"wsh\"], \"e2d0\", \"M18.9 479.8l83.4 0 0-112-83.4 47 0 65zm329 0l82.4 0 0-65-82.4-47 0 112zm0-448l0 219.8-123.6-72.4-121.7 72.4 0-219.8-83.7 0 0 360.8 205.4-122.3 206 122.3 0-360.8-82.3 0z\"],\n \"confluence\": [512, 512, [], \"f78d\", \"M2.8 412.2c-4.5 7.6-2.1 17.5 5.5 22.2l105.9 65.2c7.7 4.7 17.7 2.4 22.4-5.3 0-.1 .1-.2 .1-.2 67.1-112.2 80.5-95.9 280.9-.7 8.1 3.9 17.8 .4 21.7-7.7 .1-.1 .1-.3 .2-.4l50.4-114.1c3.6-8.1-.1-17.6-8.1-21.3-22.2-10.4-66.2-31.2-105.9-50.3-247.9-120.6-330.8 45.7-373.1 112.6zM510.2 100.1c4.5-7.6 2.1-17.5-5.5-22.2L398.9 12.8c-7.5-5-17.6-3.1-22.6 4.4-.2 .3-.4 .6-.6 1-67.3 112.6-81.1 95.6-280.6 .9-8.1-3.9-17.8-.4-21.7 7.7-.1 .1-.1 .3-.2 .4L22.7 141.3c-3.6 8.1 .1 17.6 8.1 21.3 22.2 10.4 66.3 31.2 106 50.4 248 120 330.8-45.4 373.4-112.9z\"],\n \"digg\": [512, 512, [], \"f1a6\", \"M81.7 172.3l-81.7 0 0 174.4 132.7 0 0-250.7-51 0 0 76.3zm0 133.4l-30.8 0 0-92.3 30.8 0 0 92.3zM378.9 172.3l0 174.4 81.8 0 0 28.5-81.8 0 0 40.8 133.1 0 0-243.7-133.1 0zm81.8 133.4l-30.8 0 0-92.3 30.8 0 0 92.3zm-235.6 41l82.1 0 0 28.5-82.1 0 0 40.8 133.3 0 0-243.7-133.3 0 0 174.4zm51.2-133.3l30.8 0 0 92.3-30.8 0 0-92.3zM153.3 96l51.3 0 0 51-51.3 0 0-51zm0 76.3l51.3 0 0 174.4-51.3 0 0-174.4z\"],\n \"threads\": [448, 512, [], \"e618\", \"M331.5 235.7c2.2 .9 4.2 1.9 6.3 2.8 29.2 14.1 50.6 35.2 61.8 61.4 15.7 36.5 17.2 95.8-30.3 143.2-36.2 36.2-80.3 52.5-142.6 53l-.3 0c-70.2-.5-124.1-24.1-160.4-70.2-32.3-41-48.9-98.1-49.5-169.6l0-.5C17 184.3 33.6 127.2 65.9 86.2 102.2 40.1 156.2 16.5 226.4 16l.3 0c70.3 .5 124.9 24 162.3 69.9 18.4 22.7 32 50 40.6 81.7l-40.4 10.8c-7.1-25.8-17.8-47.8-32.2-65.4-29.2-35.8-73-54.2-130.5-54.6-57 .5-100.1 18.8-128.2 54.4-26.2 33.3-39.8 81.5-40.3 143.2 .5 61.7 14.1 109.9 40.3 143.3 28 35.6 71.2 53.9 128.2 54.4 51.4-.4 85.4-12.6 113.7-40.9 32.3-32.2 31.7-71.8 21.4-95.9-6.1-14.2-17.1-26-31.9-34.9-3.7 26.9-11.8 48.3-24.7 64.8-17.1 21.8-41.4 33.6-72.7 35.3-23.6 1.3-46.3-4.4-63.9-16-20.8-13.8-33-34.8-34.3-59.3-2.5-48.3 35.7-83 95.2-86.4 21.1-1.2 40.9-.3 59.2 2.8-2.4-14.8-7.3-26.6-14.6-35.2-10-11.7-25.6-17.7-46.2-17.8l-.7 0c-16.6 0-39 4.6-53.3 26.3l-34.4-23.6c19.2-29.1 50.3-45.1 87.8-45.1l.8 0c62.6 .4 99.9 39.5 103.7 107.7l-.2 .2 .1 0zm-156 68.8c1.3 25.1 28.4 36.8 54.6 35.3 25.6-1.4 54.6-11.4 59.5-73.2-13.2-2.9-27.8-4.4-43.4-4.4-4.8 0-9.6 .1-14.4 .4-42.9 2.4-57.2 23.2-56.2 41.8l-.1 .1z\"],\n \"wpressr\": [512, 512, [\"rendact\"], \"f3e4\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM427.3 166.6c-15.2 34.5-30.4 69-45.6 103.5-2.4 5.5-6.9 8.2-13 8.2-23 0-46 .1-69 0-5.1 0-8.2 1.9-10.3 6.7-10.2 23.6-20.6 47-31 70.5-1.5 3.5-4.1 5.3-7.9 5.3-45.9 0-91.9 0-137.8 0-3.1 0-5.6-1.1-7.7-3.4-11.2-12.3-22.5-24.6-33.7-36.9-2.7-3-2.8-6.2-1.2-9.7 8.7-19.5 17.3-39.1 25.9-58.7 12.9-29.4 25.9-58.7 38.7-88.1 1.7-3.9 4.3-5.7 8.5-5.7 14.2 .1 28.5 0 42.7 0 6.2 0 9.2 4.8 6.7 10.6-13.6 30.8-27.2 61.6-40.7 92.3-5.7 13-11.4 26-17.1 39-3.9 9 7.1 12 11 5.6 .2-.4-1.4 4.2 30-67.7 1.4-3.1 3.4-4.4 6.8-4.4 15.2 .1 30.4 0 45.6 0 5.6 0 7.9 3.6 5.7 8.7-8.3 19-16.7 37.9-25 56.9-5 11.4 8.1 12.5 11.3 5.3 0-.1 27.9-63.3 32.2-73.2 2-4.6 5.4-6.5 10.3-6.5 26.4 .1 52.9 0 79.3 0 12.4 0 13.9-13.6 3.9-13.6-25.3 0-50.5 0-75.8 0-6.3 0-7.8-2.5-5.3-8.3 5.8-13.1 11.6-26.1 17.3-39.2 1.7-4 4.5-5.8 8.8-5.8 23.1 .1 26 0 130.8 0 6.1 0 8 2.8 5.6 8.3z\"],\n \"yoast\": [448, 512, [], \"f2b1\", \"M91.3 76l186 0-7 18.9-179 0c-39.7 0-71.9 31.6-71.9 70.3l0 205.4c0 35.4 24.9 70.3 84 70.3l0 19.1-12.1 0C41.2 460 0 419.8 0 370.5L0 165.2C0 115.9 40.7 76 91.3 76zM320.4 20l66.5 0c-143.8 378.1-145.7 398.9-184.7 439.3-20.8 21.6-49.3 31.7-78.3 32.7l0-51.1c49.2-7.7 64.6-49.9 64.6-75.3 0-20.1 .6-12.6-82.1-223.2l61.4 0 50.4 156.6 102.2-279zM448 161.5l0 298.5-214 0c6.6-9.6 10.7-16.3 12.1-19.4l182.5 0 0-279.1c0-32.5-17.1-51.9-48.2-62.9L387.1 81c41.7 13.6 60.9 43.1 60.9 80.5z\"],\n \"nimblr\": [384, 512, [], \"f5a8\", \"M246.6 353.3a27 27 0 1 1 0-54 27 27 0 1 1 0 54zm-79.4-27a27.1 27.1 0 1 1 -54.3 0 27.1 27.1 0 1 1 54.3 0zM191.8 159C157 159 89.4 178.8 59.2 227L14 0 14 335.5C14 433.1 93.6 512 191.8 512S369.5 433 369.5 335.5 290.1 159 191.8 159zm0 308.1c-73.3 0-132.5-58.9-132.5-131.6s59.2-131.6 132.5-131.6 132.5 58.9 132.5 131.5-59.3 131.6-132.5 131.6l0 .1z\"],\n \"pixelfed\": [512, 512, [], \"e7db\", \"M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM235.7 311.9l47 0c44.2 0 80.1-34.9 80.1-78s-35.9-78-80.1-78l-67.8 0c-25.5 0-46.2 20.1-46.2 45l0 175.1 67-64.1z\"],\n \"yahoo\": [512, 512, [], \"f19e\", \"M223.8 141.1l-56.7 143.2-56-143.2-96.1 0 105.8 249.1-38.6 89.8 94.2 0 140.9-338.9-93.6 0zM329.2 276.9a58.2 58.2 0 1 0 0 116.4 58.2 58.2 0 1 0 0-116.4zM394.7 32l-93 223.5 104.8 0 92.6-223.5-104.4 0z\"],\n \"bluesky\": [576, 512, [], \"e671\", \"M407.8 294.7c-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3zM288 227.1C261.9 176.4 190.9 81.9 124.9 35.3 61.6-9.4 37.5-1.7 21.6 5.5 3.3 13.8 0 41.9 0 58.4S9.1 194 15 213.9c19.5 65.7 89.1 87.9 153.2 80.7 3.3-.5 6.6-.9 10-1.4-3.3 .5-6.6 1-10 1.4-93.9 14-177.3 48.2-67.9 169.9 120.3 124.6 164.8-26.7 187.7-103.4 22.9 76.7 49.2 222.5 185.6 103.4 102.4-103.4 28.1-156-65.8-169.9-3.3-.4-6.7-.8-10-1.3 3.4 .4 6.7 .9 10 1.3 64.1 7.1 133.6-15.1 153.2-80.7 5.9-19.9 15-138.9 15-155.5s-3.3-44.7-21.6-52.9c-15.8-7.1-40-14.9-103.2 29.8-66.1 46.6-137.1 141.1-163.2 191.8z\"],\n \"scribd\": [384, 512, [], \"f28a\", \"M42.6 252.7c-16.1-19-24.7-45.9-24.8-79.9 0-100.4 75.2-153.1 167.2-153.1 98.6-1.6 156.8 49 184.3 70.6l-50.5 72.1-37.3-24.6 26.9-38.6c-36.5-24-79.4-36.5-123-35.8-50.7-.8-111.7 27.2-111.7 76.2 0 18.7 11.2 20.7 28.6 15.6 23.3-5.3 41.9 .6 55.8 14 26.4 24.3 23.2 67.6-.7 91.9-29.2 29.5-85.2 27.3-114.8-8.4zm317.7 5.9c-15.5-18.8-38.9-29.4-63.2-28.6-38.1-2-71.1 28-70.5 67.2-.7 16.8 6 33 18.4 44.3 14.1 13.9 33 19.7 56.3 14.4 17.4-5.1 28.6-3.1 28.6 15.6 0 4.3-.5 8.5-1.4 12.7-16.7 40.9-59.5 64.4-121.4 64.4-51.9 .2-102.4-16.4-144.1-47.3l33.7-39.4-35.6-27.4-60.8 71.8 15.4 13.8c52.5 46.8 120.4 72.5 190.7 72.2 51.4 0 94.4-10.5 133.6-44.1 57.1-51.4 54.2-149.2 20.3-189.6z\"],\n \"creative-commons-pd\": [512, 512, [], \"f4ec\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 449.5c-139.2 0-235.8-138-190.2-267.9l78.8 35.1c-2.1 10.5-3.3 21.5-3.3 32.9 0 99 73.9 126.9 120.4 126.9 22.9 0 53.5-6.7 79.4-29.5L305 311.1c-5.5 6.3-17.6 16.7-36.3 16.7-37.8 0-53.7-39.9-53.9-71.9 230.4 102.6 216.5 96.5 217.9 96.8-34.3 62.4-100.6 104.8-176.7 104.8zm194.2-150l-224-100c18.8-34 54.9-30.7 74.7-11l40.4-41.6c-27.1-23.3-58-27.5-78.1-27.5-47.4 0-80.9 20.5-100.7 51.6L87.6 145.6c36.1-54.9 98.1-91.2 168.5-91.2 111.1 0 201.5 90.4 201.5 201.5 0 18-2.4 35.4-6.8 52-.3-.1-.4-.2-.6-.4z\"],\n \"earlybirds\": [512, 512, [], \"f39a\", \"M329.3 47.5c1.2-13 21.3-14 36.6-8.7 .9 .3 26.2 9.7 19 15.2-27.9-7.4-56.4 18.2-55.6-6.5zm-201 6.9c30.7-8.1 62 20 61.1-7.1-1.3-14.2-23.4-15.3-40.2-9.6-1 .3-28.7 10.5-20.9 16.7zM335.5 160a16 16 0 1 0 0 32 16 16 0 1 0 0-32zm-159.7 0a16 16 0 1 0 0 32 16 16 0 1 0 0-32zM494.3 323.2c-9.9 24-40.7 11-63.9-1.2-13.5 69.1-58.1 111.4-126.3 124.2 .3 .9-2-.1 24 1 33.6 1.4 63.8-3.1 97.4-8-19.8-13.8-11.4-37.1-9.8-38.1 1.4-.9 14.7 1.7 21.6 11.5 8.6-12.5 28.4-14.8 30.2-13.6 1.6 1.1 6.6 20.9-6.9 34.6 4.7-.9 8.2-1.6 9.8-2.1 2.6-.8 17.7 11.3 3.1 13.3-14.3 2.3-22.6 5.1-47.1 10.8-45.9 10.7-85.9 11.8-117.7 12.8l1 11.6c3.8 18.1-23.4 24.3-27.6 6.2 .8 17.9-27.1 21.8-28.4-1l-.5 5.3c-.7 18.4-28.4 17.9-28.3-.6-7.5 13.5-28.1 6.8-26.4-8.5l1.2-12.4c-36.7 .9-59.7 3.1-61.8 3.1-20.9 0-20.9-31.6 0-31.6 2.4 0 27.7 1.3 63.2 2.8-61.1-15.5-103.7-55-114.9-118.2-25 12.8-57.5 26.8-68.2 .8-10.5-25.4 21.5-42.6 66.8-73.4 .7-6.6 1.6-13.3 2.7-19.8-14.4-19.6-11.6-36.3-16.1-60.4-16.8 2.4-23.2-9.1-23.6-23.1 .3-7.3 2.1-14.9 2.4-15.4 1.1-1.8 10.1-2 12.7-2.6 6-31.7 50.6-33.2 90.9-34.5 19.7-21.8 45.2-41.5 80.9-48.3-15.3-19.4-3.4-39.9-2.4-40.4 1.7-.8 21.2 4.3 26.3 23.2 5.2-8.8 18.3-11.4 19.6-10.7 1.1 .6 6.4 15-4.9 25.9 40.3 3.5 72.2 24.7 96 50.7 36.1 1.5 71.8 5.9 77.1 34 2.7 .6 11.6 .8 12.7 2.6 .3 .5 2.1 8.1 2.4 15.4-.5 13.9-6.8 25.4-23.6 23.1-3.2 17.3-2.7 32.9-8.7 47.7 2.4 11.7 4 23.8 4.8 36.4 37 25.4 70.3 42.5 60.3 66.9zM223.5 159.9c.9-44-37.9-42.2-78.6-40.3-21.7 1-38.9 1.9-45.5 13.9-11.4 20.9 5.9 92.9 23.2 101.2 9.8 4.7 73.4 7.9 86.3-7.1 8.2-9.4 15-49.4 14.6-67.7zm52 58.3c-4.3-12.4-6-30.1-15.3-32.7-2-.5-9-.5-11 0-10 2.8-10.8 22.1-17 37.2 15.4 0 19.3 9.7 23.7 9.7 4.3 0 6.3-11.3 19.6-14.2zm135.7-84.7c-6.6-12.1-24.8-12.9-46.5-13.9-40.2-1.9-78.2-3.8-77.3 40.3-.5 18.3 5 58.3 13.2 67.8 13 14.9 76.6 11.8 86.3 7.1 15.8-7.6 36.5-78.9 24.3-101.3z\"],\n \"square-odnoklassniki\": [448, 512, [\"odnoklassniki-square\"], \"f264\", \"M224 137.1c-5.4-.3-10.8 .6-15.9 2.4s-9.7 4.8-13.6 8.5-7 8.2-9.2 13.2-3.2 10.3-3.2 15.7 1.1 10.8 3.2 15.7 5.3 9.5 9.2 13.2 8.6 6.6 13.6 8.5 10.5 2.7 15.9 2.4c5.4 .3 10.8-.6 15.9-2.4s9.7-4.8 13.6-8.5 7-8.2 9.2-13.2 3.2-10.3 3.2-15.7-1.1-10.8-3.2-15.7-5.3-9.5-9.2-13.2-8.6-6.6-13.6-8.5-10.5-2.7-15.9-2.4zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM224 258a81 81 0 1 1 0-162.1 81 81 0 1 1 0 162.1zm59.3 6.2c16.8-13.2 29.5-5.5 34.1 3.6 7.8 16-1.1 23.7-21.5 37-17.1 10.9-40.7 15.2-56.2 16.8l13 12.9 47.7 47.7c17.4 17.9-11 45.8-28.6 28.6-12-12.2-29.5-29.7-47.7-47.9l-47.7 47.9c-17.7 17.2-46-11-28.4-28.6 3.7-3.7 7.9-7.9 12.5-12.5 10.4-10.4 22.6-22.7 35.2-35.2l12.9-12.9c-15.4-1.6-39.3-5.7-56.6-16.8-20.3-13.3-29.3-20.9-21.4-37 4.6-9.1 17.3-16.8 34.1-3.6 0 0 22.7 18 59.3 18s59.3-18 59.3-18z\"],\n \"markdown\": [640, 512, [], \"f60f\", \"M593.8 59.1l-547.6 0C20.7 59.1 0 79.8 0 105.2L0 406.7c0 25.5 20.7 46.2 46.2 46.2l547.7 0c25.5 0 46.2-20.7 46.1-46.1l0-301.6c0-25.4-20.7-46.1-46.2-46.1zM338.5 360.6l-61.5 0 0-120-61.5 76.9-61.5-76.9 0 120-61.7 0 0-209.2 61.5 0 61.5 76.9 61.5-76.9 61.5 0 0 209.2 .2 0zm135.3 3.1l-92.3-107.7 61.5 0 0-104.6 61.5 0 0 104.6 61.5 0-92.2 107.7z\"],\n \"typo3\": [448, 512, [], \"f42b\", \"M178.7 78.4c0-24.7 5.4-32.4 13.9-39.4-69.5 8.5-149.3 34-176.3 66.4-5.4 7.7-9.3 20.8-9.3 37.1 0 103.5 106.8 337.5 184.1 337.5 36.3 0 97.3-59.5 146.7-139-7 2.3-11.6 2.3-18.5 2.3-57.2 0-140.6-198.5-140.6-264.9zM301.5 32c-30.1 0-41.7 5.4-41.7 36.3 0 66.4 53.8 198.5 101.7 198.5 26.3 0 78.8-99.7 78.8-182.3 0-40.9-67-52.5-138.8-52.5z\"],\n \"joomla\": [448, 512, [], \"f1aa\", \"M.6 92.1c0-33.3 26.8-60.1 59.8-60.1 30 0 54.5 21.9 59.2 50.2 32.6-7.6 67.1 .6 96.5 30l-44.3 44.3c-20.5-20.5-42.6-16.3-55.4-3.5-14.3 14.3-14.3 37.9 0 52.2l99.5 99.5-44 44.3c-87.7-87.2-49.7-49.7-99.8-99.7-26.8-26.5-35-64.8-24.8-98.9-26.9-5.8-46.7-29.7-46.7-58.3zM130.1 208.5l44.3 44.3c10-10 89.7-89.7 99.7-99.8 14.3-14.3 37.6-14.3 51.9 0 12.8 12.8 17 35-3.5 55.4l44 44.3c31.2-31.2 38.5-67.6 28.9-101.2 29.2-4.1 51.9-29.2 51.9-59.5 0-33.2-26.8-60.1-59.8-60.1-30.3 0-55.4 22.5-59.5 51.6-33.8-9.9-71.7-1.5-98.3 25.1-18.3 19.1-71.1 71.5-99.6 99.9zM396.4 360.7c8.2-32.7-.9-68.5-26.3-93.9-11.8-12.2 5 4.7-99.5-99.7l-44.3 44.3 99.7 99.7c14.3 14.3 14.3 37.6 0 51.9-12.8 12.8-35 17-55.4-3.5l-44 44.3c27.6 30.2 68 38.8 102.7 28 5.5 27.4 29.7 48.1 58.9 48.1 33 0 59.8-26.8 59.8-60.1 0-30.2-22.5-55-51.6-59.1zm-84.3-53.1l-44-44.3c-87 86.4-50.4 50.4-99.7 99.8-14.3 14.3-37.6 14.3-51.9 0-13.1-13.4-16.9-35.3 3.2-55.4l-44-44.3c-30.2 30.2-38 65.2-29.5 98.3-26.7 6-46.2 29.9-46.2 58.2 0 33.3 26.8 60.1 59.8 60.1 28.6 0 52.5-19.8 58.6-46.7 32.7 8.2 68.5-.6 94.2-26 32.1-32 12.2-12.4 99.5-99.7z\"],\n \"weixin\": [576, 512, [], \"f1d7\", \"M385.2 167.6c6.4 0 12.6 .3 18.8 1.1-16.6-78.4-100.7-136.7-196.3-136.7-107.2 0-194.7 72.8-194.7 165.4 0 53.4 29.3 97.5 77.9 131.6l-19.3 58.6 68-34.1c24.4 4.8 43.8 9.7 68.2 9.7 6.2 0 12.1-.3 18.3-.8-4-12.9-6.2-26.6-6.2-40.8-.1-84.9 72.9-154 165.3-154zM280.7 114.7c14.5 0 24.2 9.7 24.2 24.4 0 14.5-9.7 24.2-24.2 24.2-14.8 0-29.3-9.7-29.3-24.2 .1-14.7 14.6-24.4 29.3-24.4zM144.3 163.3c-14.5 0-29.3-9.7-29.3-24.2 0-14.8 14.8-24.4 29.3-24.4 14.8 0 24.4 9.7 24.4 24.4 0 14.6-9.6 24.2-24.4 24.2zM563 319.4c0-77.9-77.9-141.3-165.4-141.3-92.7 0-165.4 63.4-165.4 141.3S305 460.7 397.6 460.7c19.3 0 38.9-5.1 58.6-9.9l53.4 29.3-14.8-48.6C534 402.1 563 363.2 563 319.4zM343.9 294.9c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.8 0 24.4 9.7 24.4 19.3 0 10-9.7 19.6-24.4 19.6zm107.1 0c-9.7 0-19.3-9.7-19.3-19.6 0-9.7 9.7-19.3 19.3-19.3 14.5 0 24.4 9.7 24.4 19.3 .1 10-9.9 19.6-24.4 19.6z\"],\n \"grunt\": [384, 512, [], \"f3ad\", \"M61.6 189.3c-1.1 10 5.2 19.1 5.2 19.1 .7-7.5 2.2-12.8 4-16.6 .4 10.3 3.2 23.5 12.8 34.1 6.9 7.6 35.6 23.3 54.9 6.1 1 2.4 2.1 5.3 3 8.5 2.9 10.3-2.7 25.3-2.7 25.3s15.1-17.1 13.9-32.5c10.8-.5 21.4-8.4 21.1-19.5 0 0-18.9 10.4-35.5-8.8-9.7-11.2-40.9-42-83.1-31.8 4.3 1 8.9 2.4 13.5 4.1l-.1 0c-4.2 2-6.5 7.1-7 12zm28.3-1.8c19.5 11 37.4 25.7 44.9 37-5.7 3.3-21.7 10.4-38-1.7-10.3-7.6-9.8-26.2-6.9-35.3zM232 233.3c-1.2 15.5 13.9 32.5 13.9 32.5s-5.6-15-2.7-25.3c.9-3.2 2-6 3-8.5 19.3 17.3 48 1.5 54.8-6.1 9.6-10.6 12.3-23.8 12.8-34.1 1.8 3.8 3.4 9.1 4 16.6 0 0 6.4-9.1 5.2-19.1-.6-5-2.9-10-7-11.8l-.1 0c4.6-1.8 9.2-3.2 13.5-4.1-42.3-10.2-73.4 20.6-83.1 31.8-16.7 19.2-35.5 8.8-35.5 8.8-.2 10.9 10.4 18.9 21.2 19.3zm62.7-45.8c3 9.1 3.4 27.7-7 35.4-16.3 12.1-32.2 5-37.9 1.6 7.5-11.4 25.4-26 44.9-37zm-134.4 231l-29.4 0c-5.5 0-8.2 1.6-9.5 2.9-1.9 2-2.2 4.7-.9 8.1 3.5 9.1 11.4 16.5 13.7 18.6 3.1 2.7 7.5 4.3 11.8 4.3 4.4 0 8.3-1.7 11-4.6 7.5-8.2 11.9-17.1 13-19.8 .6-1.5 1.3-4.5-.9-6.8-1.8-1.8-4.7-2.7-8.8-2.7zM349.5 317.3c-2.4 17.9-13 33.8-24.6 43.7-3.1-22.7-3.7-55.5-3.7-62.4 0-14.7 9.5-24.5 12.2-26.1 2.5-1.5 5.4-3 8.3-4.6 18-9.6 40.4-21.6 40.4-43.7 0-16.2-9.3-23.2-15.4-27.8-.8-.6-1.5-1.1-2.2-1.7-2.1-1.7-3.7-3-4.3-4.4-4.4-9.8-3.6-34.2-1.7-37.6 .6-.6 16.7-20.9 11.8-39.2-2-7.4-6.9-13.3-14.1-17-5.3-2.7-11.9-4.2-19.5-4.5-.1-2-.5-3.9-.9-5.9-.6-2.6-1.1-5.3-.9-8.1 .4-4.7 .8-9 2.2-11.3 8.4-13.3 28.8-17.6 29-17.6l12.3-2.4-8.1-9.5c-.1-.2-17.3-17.5-46.3-17.5-7.9 0-16 1.3-24.1 3.9-24.2 7.8-42.9 30.5-49.4 39.3-3.1-1-6.3-1.9-9.6-2.7-4.2-15.8 9-38.5 9-38.5s-13.6-3-33.7 15.2c-2.6-6.5-8.1-20.5-1.8-37.2-29.5 10.4-36.9 26.3-39.1 40.7-7.6-5.4-6.7-23.1-7.2-27.6-7.5 .9-29.2 21.9-28.2 48.3-2 .5-3.9 1.1-5.9 1.7-6.5-8.8-25.1-31.5-49.4-39.3-7.9-2.2-16-3.5-23.9-3.5-29 0-46.1 17.3-46.3 17.5l-8.1 9.4 12.3 2.4c.2 0 20.6 4.3 29 17.6 1.4 2.2 1.8 6.6 2.2 11.3 .2 2.8-.4 5.5-.9 8.1-.4 1.9-.8 3.9-.9 5.9-7.7 .3-14.2 1.8-19.5 4.5-7.2 3.7-12.1 9.6-14.1 17-5 18.2 11.2 38.5 11.8 39.2 1.9 3.4 2.7 27.8-1.7 37.6-.6 1.4-2.2 2.7-4.3 4.4-.7 .5-1.4 1.1-2.2 1.7-6.1 4.6-15.4 11.7-15.4 27.8 0 22.1 22.4 34.1 40.4 43.7 3 1.6 5.8 3.1 8.3 4.6 2.7 1.6 12.2 11.4 12.2 26.1 0 6.9-.6 39.7-3.7 62.4-11.6-9.9-22.2-25.9-24.6-43.8 0 0-29.2 22.6-20.6 70.8 5.2 29.5 23.2 46.1 47 54.7 8.8 19.1 29.4 45.7 67.3 49.6 14.4 11.8 34.4 19.5 63.6 19.5l.2 0c29.1 0 49.1-7.7 63.6-19.5 37.9-3.9 58.5-30.5 67.3-49.6 23.8-8.7 41.7-25.2 47-54.7 8.2-48.4-21.1-70.9-21.1-70.9zM306 37.7c5.6-1.8 11.6-2.7 17.7-2.7 11 0 19.9 3 24.7 5-3.1 1.4-6.4 3.2-9.7 5.3-2.4-.4-5.6-.8-9.2-.8-10.5 0-20.5 3.1-28.7 8.9-12.3 8.7-18 16.9-20.7 22.4-2.2-1.3-4.5-2.5-7.1-3.7-1.6-.8-3.1-1.5-4.7-2.2 6.1-9.1 19.9-26.5 37.7-32.2zm21 18.2c-.8 1-1.6 2.1-2.3 3.2-3.3 5.2-3.9 11.6-4.4 17.8-.5 6.4-1.1 12.5-4.4 17-4.2 .8-8.1 1.7-11.5 2.7-2.3-3.1-5.6-7-10.5-11.2 1.4-4.8 5.5-16.1 13.5-22.5 5.6-4.3 12.2-6.7 19.6-7zM45.9 45.3c-3.3-2.2-6.6-4-9.7-5.3 4.8-2 13.7-5 24.7-5 6.1 0 12 .9 17.7 2.7 17.8 5.8 31.6 23.2 37.7 32.1-1.6 .7-3.2 1.4-4.8 2.2-2.5 1.2-4.9 2.5-7.1 3.7-2.6-5.4-8.3-13.7-20.7-22.4-8.3-5.8-18.2-8.9-28.8-8.9-3.4 .1-6.6 .5-9 .9zM90.6 85.4c-4.9 4.2-8.3 8-10.5 11.2-3.4-.9-7.3-1.9-11.5-2.7-3.3-4.4-3.8-10.5-4.3-16.9-.5-6.2-1.1-12.6-4.4-17.8-.7-1.1-1.5-2.2-2.3-3.2 7.4 .3 14 2.6 19.5 7 8 6.3 12.1 17.6 13.5 22.4zM58.4 259.9c-2.7-1.6-5.6-3.1-8.4-4.6-14.9-8-30.2-16.3-30.2-30.5 0-11.1 4.3-14.6 8.9-18.2l.5-.4c.7-.6 1.4-1.2 2.2-1.8-.9 7.2-1.9 13.3-2.7 14.9 0 0 12.1-15 15.7-44.3 1.4-11.5-1.1-34.3-5.1-43 .2 4.9 0 9.8-.3 14.4-.4-.8-.8-1.6-1.3-2.2-3.2-4-11.8-17.5-9.4-26.6 .9-3.5 3.1-6 6.7-7.8 3.8-1.9 8.8-2.9 15.1-2.9 12.3 0 25.9 3.7 32.9 6 25.1 8 55.4 30.9 64.1 37.7 .2 .2 .4 .3 .4 .3l5.6 3.9-3.5-5.8c-.2-.3-19.1-31.4-53.2-46.5 2-2.9 7.4-8.1 21.6-15.1 21.4-10.5 46.5-15.8 74.3-15.8 27.9 0 52.9 5.3 74.3 15.8 14.2 6.9 19.6 12.2 21.6 15.1-34 15.1-52.9 46.2-53.1 46.5l-3.5 5.8 5.6-3.9s.2-.1 .4-.3c8.7-6.8 39-29.8 64.1-37.7 7-2.2 20.6-6 32.9-6 6.3 0 11.3 1 15.1 2.9 3.5 1.8 5.7 4.4 6.7 7.8 2.5 9.1-6.1 22.6-9.4 26.6-.5 .6-.9 1.3-1.3 2.2-.3-4.6-.5-9.5-.3-14.4-4 8.8-6.5 31.5-5.1 43 3.6 29.3 15.7 44.3 15.7 44.3-.8-1.6-1.8-7.7-2.7-14.9 .7 .6 1.5 1.2 2.2 1.8l.5 .4c4.6 3.7 8.9 7.1 8.9 18.2 0 14.2-15.4 22.5-30.2 30.5-2.9 1.5-5.7 3.1-8.4 4.6-8.7 5-18 16.7-19.1 34.2-.9 14.6 .9 49.9 3.4 75.9-12.4 4.8-26.7 6.4-39.7 6.8-2-4.1-3.9-8.5-5.5-13.1-.7-2-19.6-51.1-26.4-62.2 5.5 39 17.5 73.7 23.5 89.6-3.5-.5-7.3-.7-11.7-.7l-117 0c-4.4 0-8.3 .3-11.7 .7 6-15.9 18.1-50.6 23.5-89.6-6.8 11.2-25.7 60.3-26.4 62.2-1.6 4.6-3.5 9-5.5 13.1-13-.4-27.2-2-39.7-6.8 2.5-26 4.3-61.2 3.4-75.9-.9-17.4-10.3-29.2-19-34.2zM35.1 404.6c-12.1-20-8.7-54.1-3.7-59.1 10.9 34.4 47.2 44.3 74.4 45.4-2.7 4.2-5.2 7.6-7 10l-1.4 1.4c-7.2 7.8-8.6 18.5-4.1 31.8-22.7-.1-46.3-9.8-58.2-29.5zm45.7 43.5c6 1.1 12.2 1.9 18.6 2.4 3.5 8 7.4 15.9 12.3 23.1-14.4-5.9-24.4-16-30.9-25.5zm111.5 50.1c-60.6-.1-78.3-45.8-84.9-64.7-3.7-10.5-3.4-18.2 .9-23.1 2.9-3.3 9.5-7.2 24.6-7.2l118.8 0c15.1 0 21.8 3.9 24.6 7.2 4.2 4.8 4.5 12.6 .9 23.1-6.6 18.8-24.3 64.6-84.9 64.7zm80.6-24.6c4.9-7.2 8.8-15.1 12.3-23.1 6.4-.5 12.6-1.3 18.6-2.4-6.5 9.5-16.5 19.6-30.9 25.5zm76.6-69c-12 19.7-35.6 29.3-58.1 29.7 4.5-13.3 3.1-24.1-4.1-31.8-.4-.5-.9-1-1.4-1.5-1.8-2.4-4.3-5.8-7-10 27.2-1.2 63.5-11 74.4-45.4 5 5 8.4 39.1-3.8 59zM192.2 187.7l.2 0c12.7-.1 27.2-17.8 27.2-17.8-9.9 6-18.8 8.1-27.3 8.3-8.5-.2-17.4-2.3-27.3-8.3 0 0 14.5 17.6 27.2 17.8zm61.7 230.7l-29.4 0c-4.2 0-7.2 .9-8.9 2.7-2.2 2.3-1.5 5.2-.9 6.7 1 2.6 5.5 11.3 13 19.3 2.7 2.9 6.6 4.5 11 4.5s8.7-1.6 11.8-4.2c2.3-2 10.2-9.2 13.7-18.1 1.3-3.3 1-6-.9-7.9-1.3-1.3-4-2.9-9.4-3z\"],\n \"rockrms\": [512, 512, [], \"f3e9\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM413.4 427.5l-90 0-112-131.3c-17.9-20.4-3.9-56.1 26.6-56.1l75.3 0-84.6-99.3-84.3 98.9-90 0 147.1-172.5c14.4-18.4 41.3-17.3 54.5 0L413.7 252.3c19 22.8 2 57.2-27.6 56.1-.6 0-74.2 .2-74.2 .2L413.4 427.5z\"],\n \"unsplash\": [448, 512, [], \"e07c\", \"M448 230.2l0 249.8-448 0 0-249.8 141.1 0 0 124.9 165.7 0 0-124.9 141.1 0zM306.9 32l-165.7 0 0 124.9 165.7 0 0-124.9z\"],\n \"square-instagram\": [448, 512, [\"instagram-square\"], \"e055\", \"M194.4 211.7a53.3 53.3 0 1 0 59.2 88.6 53.3 53.3 0 1 0 -59.2-88.6zm142.3-68.4c-5.2-5.2-11.5-9.3-18.4-12-18.1-7.1-57.6-6.8-83.1-6.5-4.1 0-7.9 .1-11.2 .1s-7.2 0-11.4-.1c-25.5-.3-64.8-.7-82.9 6.5-6.9 2.7-13.1 6.8-18.4 12s-9.3 11.5-12 18.4c-7.1 18.1-6.7 57.7-6.5 83.2 0 4.1 .1 7.9 .1 11.1s0 7-.1 11.1c-.2 25.5-.6 65.1 6.5 83.2 2.7 6.9 6.8 13.1 12 18.4s11.5 9.3 18.4 12c18.1 7.1 57.6 6.8 83.1 6.5 4.1 0 7.9-.1 11.2-.1s7.2 0 11.4 .1c25.5 .3 64.8 .7 82.9-6.5 6.9-2.7 13.1-6.8 18.4-12s9.3-11.5 12-18.4c7.2-18 6.8-57.4 6.5-83 0-4.2-.1-8.1-.1-11.4s0-7.1 .1-11.4c.3-25.5 .7-64.9-6.5-83-2.7-6.9-6.8-13.1-12-18.4l0 .2zm-67.1 44.5c18.1 12.1 30.6 30.9 34.9 52.2s-.2 43.5-12.3 61.6c-6 9-13.7 16.6-22.6 22.6s-19 10.1-29.6 12.2c-21.3 4.2-43.5-.2-61.6-12.3s-30.6-30.9-34.9-52.2 .2-43.5 12.2-61.6 30.9-30.6 52.2-34.9 43.5 .2 61.6 12.2l.1 0zm29.2-1.3c-3.1-2.1-5.6-5.1-7.1-8.6s-1.8-7.3-1.1-11.1 2.6-7.1 5.2-9.8 6.1-4.5 9.8-5.2 7.6-.4 11.1 1.1 6.5 3.9 8.6 7 3.2 6.8 3.2 10.6c0 2.5-.5 5-1.4 7.3s-2.4 4.4-4.1 6.2-3.9 3.2-6.2 4.2-4.8 1.5-7.3 1.5c-3.8 0-7.5-1.1-10.6-3.2l-.1 0zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM357 389c-18.7 18.7-41.4 24.6-67 25.9-26.4 1.5-105.6 1.5-132 0-25.6-1.3-48.3-7.2-67-25.9s-24.6-41.4-25.8-67c-1.5-26.4-1.5-105.6 0-132 1.3-25.6 7.1-48.3 25.8-67s41.5-24.6 67-25.8c26.4-1.5 105.6-1.5 132 0 25.6 1.3 48.3 7.1 67 25.8s24.6 41.4 25.8 67c1.5 26.3 1.5 105.4 0 131.9-1.3 25.6-7.1 48.3-25.8 67l0 .1z\"],\n \"first-order-alt\": [512, 512, [], \"f50a\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 7.8a240.2 240.2 0 1 1 0 480.4 240.2 240.2 0 1 1 0-480.4zm0 20.5a219.7 219.7 0 1 0 0 439.4 219.7 219.7 0 1 0 0-439.4zm0 8.2a211.5 211.5 0 1 1 0 423 211.5 211.5 0 1 1 0-423zm186.2 260c-4.4 17.1-11.2 33.5-20.1 48.7l-74.1-35.9 61.5 54.8c-10.6 14.1-23.2 26.6-37.2 37.3l-54.8-61.6 35.9 74.3c-15.2 9-31.6 15.8-48.6 20.2l-27.3-78.5 4.8 82.9c-8.6 1.2-17.4 1.8-26.3 1.8s-17.7-.6-26.3-1.8l4.8-82.5-27.2 78c-17.1-4.5-33.4-11.3-48.7-20.2l35.9-74.3-54.9 61.6c-14-10.7-26.6-23.2-37.2-37.3l61.6-54.9-74.3 35.9C80.7 338 74 321.7 69.5 304.6l77.8-27.1-82.2 4.8c-1.2-8.6-1.8-17.3-1.8-26.2 0-9 .6-17.8 1.8-26.5l82.4 4.8-77.9-27.2c4.5-17.1 11.3-33.5 20.2-48.7l74.2 35.9-61.5-54.9c10.7-14 23.2-26.6 37.3-37.2l54.8 61.5-35.8-74.2c15.2-8.9 31.6-15.7 48.6-20.1l26.9 77.2-4.7-81.6c8.6-1.2 17.4-1.8 26.3-1.8s17.7 .6 26.3 1.8l-4.7 82.2 27-77.8c17.3 4.5 33.6 11.4 48.6 20.2l-35.8 74.1 54.7-61.5c14.1 10.7 26.6 23.2 37.2 37.2l-61.4 54.8 74.1-35.9c8.9 15.2 15.7 31.6 20.2 48.6l-77.8 27.1 82.2-4.7c1.2 8.7 1.8 17.5 1.8 26.5 0 8.9-.6 17.6-1.8 26.2l-82.1-4.7 77.7 27.1z\"],\n \"fulcrum\": [256, 512, [], \"f50b\", \"M63.8 164.1L28.4 207.7-7 164.1 28.4 120.6 63.8 164.1zM112.2 0l-20.5 198.2-51 57.8 51 57.8 20.5 198.2 0-211.1-41.1-44.9 41.1-44.9 0-211.1zm79.7 164.1l35.4 43.6 35.4-43.6-35.4-43.5-35.4 43.5zm-48.5 47l41.1 44.9-41.1 44.9 0 211.1 20.6-198.2 51-57.8-51-57.8-20.6-198.2 0 211.1z\"],\n \"brave-reverse\": [448, 512, [], \"e63d\", \"M298.5 0c3 0 5.8 1.3 7.8 3.6l38.1 44c.5-.1 1-.2 1.5-.3 9.2-1.6 18.6-2.2 27.7-1.2 11.6 1.4 21.5 5.4 28.9 12.9 7.7 7.8 15.4 15.8 22.6 23.6 2.5 2.7 4.9 5.2 6.9 7.4 .7 .8 1.4 1.5 1.9 2 3.4 3.7 4.2 8.1 2.7 11.9l-9.8 24.6 13.1 38.1c.7 2 .8 4.1 .2 6.2-.1 .4-.1 .4-.5 2.1l-1.5 5.8c-1.6 6.3-3.5 13.3-5.4 20.9-5.6 21.6-11.2 43.2-16.4 63.4-12.9 49.9-21.4 82.7-23.4 90.9-11.1 44.5-19.9 60-48.3 80.3-24.9 17.8-76.8 53.6-86.8 60-1 .6-2 1.3-3.4 2.3-.5 .4-3.2 2.2-3.9 2.7-4.9 3.3-8.3 5.5-12.1 7.3-4.7 2.2-9.3 3.5-13.9 3.5s-9.1-1.2-13.9-3.5c-3.7-1.8-7.2-3.9-12.1-7.3-.8-.5-3.4-2.4-3.9-2.7-1.4-1-2.5-1.7-3.4-2.3-10-6.4-61.9-42.1-86.8-60-28.4-20.4-37.2-35.8-48.3-80.3-2-8.2-10.5-41-23.3-90.5-5.3-20.6-10.9-42.2-16.5-63.8-2-7.6-3.8-14.6-5.4-20.9l-1.5-5.8-.5-2.1c-.5-2-.4-4.2 .2-6.2l13.1-38.1-9.9-24.5c-1.5-3.8-.7-8.2 2-11.2 1.2-1.3 1.8-2 2.6-2.8 2-2.2 4.4-4.7 6.9-7.4 7.3-7.7 15-15.7 22.7-23.5 7.4-7.5 17.3-11.6 28.9-12.9 9.1-1.1 18.5-.5 27.7 1.2 .5 .1 1 .2 1.5 .3l38.1-44c2-2.4 4.8-3.7 7.8-3.7l148 0zm-4.7 21.1l-138.6 0-39.1 45.1c-2.6 3-6.7 4.3-10.6 3.2-.2-.1-.7-.2-1.5-.4-1.3-.3-2.9-.6-4.5-.9-7.4-1.3-14.9-1.8-21.7-1-7.3 .9-13 3.2-16.6 6.9-7.6 7.7-15.2 15.6-22.3 23.3-1.7 1.8-3.3 3.5-4.8 5.1l8.8 22c1 2.4 1 5 .2 7.5L29.7 170.6c.4 1.4 .5 1.9 1.2 4.8 1.6 6.3 3.5 13.3 5.4 20.9 5.6 21.6 11.2 43.2 16.4 63.4 12.9 50 21.4 82.8 23.4 91 10.1 40.1 16.4 51.3 40.2 68.3 24.6 17.6 76.3 53.2 85.9 59.3 1.2 .8 2.5 1.6 4 2.7 .6 .4 3.2 2.2 3.9 2.7 4 2.8 6.7 4.4 9.2 5.6 2.2 1 3.9 1.5 5.1 1.5s2.9-.5 5.1-1.5c2.5-1.2 5.2-2.8 9.2-5.6 .7-.5 3.3-2.3 3.9-2.7 1.6-1.1 2.8-1.9 4-2.7 9.6-6.1 61.3-41.7 85.9-59.3 23.8-17.1 30.2-28.2 40.1-68.3 2.1-8.3 10.5-41.1 23.3-90.7 5.3-20.6 10.9-42.2 16.5-63.8 2-7.6 3.8-14.6 5.4-20.9 .7-2.9 .9-3.4 1.2-4.8l-13.3-38.8c-.8-2.4-.8-5.1 .2-7.5l8.8-22c-1.5-1.6-3.1-3.3-4.8-5.1-7.2-7.6-14.7-15.5-22.3-23.3-3.7-3.7-9.3-6-16.6-6.9-6.8-.8-14.4-.3-21.7 1-1.7 .3-3.2 .6-4.5 .9-.8 .2-1.3 .3-1.5 .4-3.8 1.1-7.9-.2-10.6-3.2L293.8 21.1zM224.5 316c2.8 0 20.9 6.5 35.4 14.1s25 13 28.3 15.2 1.3 6.2-1.7 8.4-44.1 34.6-48.1 38.2-9.8 9.5-13.8 9.5-9.8-5.9-13.8-9.5-45.1-36-48.1-38.2-5.1-6.2-1.7-8.4 13.9-7.5 28.3-15.2 32.5-14.1 35.4-14.1l-.2 0zm.1-230.7c.7 0 8.8 .2 20.5 4.2 12.3 4.2 25.7 9.4 31.9 9.4s51.9-8.9 51.9-8.9 54.2 66.7 54.2 81-6.8 18-13.7 25.4-36.8 39.8-40.7 43.9-11.9 10.5-7.1 21.8 11.7 25.8 3.9 40.4-21 24.4-29.4 22.8-28.4-12.2-35.7-17.1-30.5-24.3-30.5-31.8 24-20.8 28.4-23.9 24.7-14.8 25.1-19.4 .3-6-5.7-17.4-16.7-26.7-14.9-36.8 19.1-15.4 31.5-20.2 36.2-13.7 39.2-15.1 2.2-2.7-6.8-3.6-34.6-4.3-46.1-1.1-31.2 8.2-32.8 10.9-3 2.7-1.4 11.8 10.1 52.8 10.9 60.6 2.4 12.9-5.8 14.8-22.1 5.2-26.8 5.2-18.6-3.3-26.8-5.2-6.6-7-5.8-14.8 9.3-51.5 10.9-60.6 .2-9.2-1.4-11.8-21.3-7.6-32.8-10.9-37.1 .2-46.1 1.1-9.8 2.2-6.8 3.6 26.8 10.4 39.2 15.1 29.7 10 31.5 20.2-9 25.4-14.9 36.8-6.1 12.8-5.7 17.4 20.6 16.4 25.1 19.4 28.4 16.4 28.4 23.9-23.2 27-30.5 31.8-27.2 15.4-35.7 17.1-21.7-8.2-29.4-22.8-.8-29.1 3.9-40.4-3.3-17.7-7.1-21.8-33.8-36.5-40.7-43.9-13.7-11.2-13.7-25.4 54.2-81 54.2-81 45.8 8.9 51.9 8.9 19.5-5.2 31.9-9.4 20.6-4.2 20.6-4.2l-.3 0z\"],\n \"avianex\": [512, 512, [], \"f374\", \"M453.2 32l-312 0C102.3 32 65 63.2 57.9 101.7L1.3 410.3C-5.8 448.8 20 480 59 480l312 0c38.9 0 76.2-31.2 83.3-69.7L511 101.8C518 63.2 492.2 32 453.2 32zM395 379.3l-32 13.5-115.4-110c-14.7 10-29.2 19.5-41.7 27.1l22.1 64.2-17.9 12.7-40.6-61-52.4-48.1 15.7-15.4 58 31.1c9.3-10.5 20.8-22.6 32.8-34.9l-20.5-29.6-68.8-99.8 18.8-28.9 8.9-4.8 103.1 112.4 4.9 4.5c19.4-18.8 33.8-32.4 33.8-32.4 7.7-6.5 21.5-2.9 30.7 7.9 9 10.5 10.6 24.7 2.7 31.3-1.8 1.3-15.5 11.4-35.3 25.6l4.5 7.3 94.9 119.4-6.3 7.9z\"],\n \"ns8\": [640, 512, [], \"f3d5\", \"M104.3 269.2l26.1 0 0-26.2-26.1 0 0 26.2zM156.8 243l-.1-26.2 0-.9c-.2-10.4-4.4-20.3-11.9-27.6s-17.5-11.3-27.9-11.1-20.3 4.4-27.6 11.8-11.3 17.5-11.2 27.9l0 .2 26.4 0 0-.2c.1-3.4 1.5-6.6 3.9-9s5.7-3.7 9.1-3.7 6.7 1.3 9.1 3.7 3.8 5.6 3.9 9l0 26.2 26.3 0zm52.4 25.8c0 12-2.4 23.8-6.9 34.9s-11.3 21.1-19.7 29.6-18.5 15.2-29.6 19.7-22.9 6.9-34.9 6.9l-.6 0c-24.2 0-47.3-9.6-64.4-26.7S26.3 293 26.3 268.8l-26.3 0 0 .2c0 15.4 3.1 30.7 9 44.9s14.6 27.2 25.5 38.1 23.9 19.5 38.1 25.4 29.5 8.9 44.9 8.9l.8 0c15.4 0 30.7-3 44.9-9s27.2-14.6 38.1-25.5 19.5-23.8 25.4-38.1 8.9-29.5 8.9-44.9l0-26-26.3 0 0 26zm-157.2 0c.1 17.3 7 33.9 19.2 46.1s28.8 19.1 46.1 19.1 33.9-6.9 46.1-19.1 19.2-28.8 19.2-46.1l-26.3 0c-.2 10.2-4.4 20-11.7 27.2s-17.1 11.2-27.4 11.2-20.1-4-27.4-11.2-11.5-16.9-11.7-27.2l0-26-26.3 0 0-26.6c.3-17.3 7.4-33.8 19.7-45.8s29-18.8 46.3-18.6 33.8 7.2 45.9 19.5 18.9 28.9 18.9 46.2l0 25.3 26.3 0 0-25.3c0-24.3-9.7-47.7-26.9-64.9s-40.5-26.9-64.9-26.9-47.7 9.7-64.9 26.9-26.9 40.5-26.9 64.9l0 25.4 26.3 0 0 26zm418.4-71.2c13.7 0 24.6 6.6 30.1 18.3l.7 1.5 23.2-11.5-.6-1.4c-8-19.3-28.5-31.3-53.4-31.3-23.1 0-43.6 11.4-51 28.4-.1 26.9-.2 23.9 0 24.8 4.7 11 14.6 19.4 28.7 24.2 6.5 2 13.1 3.3 19.8 4 5.5 .7 10.6 1.4 15.8 3.1 6.4 2.1 10.5 5.3 12.8 9.8l0 9.9c-3.7 7.5-13.8 12.3-25.8 12.3-14.3 0-26-6.9-31.9-19l-.7-1.5-23 11.5 .6 1.4c7.9 19.4 29.6 32 55.3 32 23.6 0 44.6-11.4 52.3-28.4l.2-25.9-.2-.7c-4.9-11-15.2-19.6-28.9-24.2-7.7-2.7-14.3-3.6-20.7-4.4-5-.5-10-1.5-14.8-2.9-6.3-1.9-10.4-5.1-12.6-9.6l0-8.4c3.4-7.4 12.9-12.1 24.2-12.1l0 0zM287.6 311.3l26.1 0 0-68.4-26.1 0 0 68.4zM639.8 258c-2.9-6.3-8.3-12-15.4-16.7 5.6-3.8 10.1-9.1 13-15.3l.2-25.3-.2-.7c-7.4-16-26.7-26.7-48.2-26.7S548.5 184 541.1 200l-.2 25.3 .2 .7c2.9 6.1 7.4 11.4 13 15.3-7.2 4.7-12.5 10.5-15.4 16.7l-.2 28.9 .2 .7c7.6 16 27.9 26.7 50.6 26.7s43.1-10.7 50.6-26.7l.2-28.9-.2-.7zm-73.2-50.8c3.6-6.3 12.6-10.5 22.6-10.5s19 4.2 22.6 10.5l0 13.7c-3.5 6.2-12.6 10.3-22.6 10.3s-19.1-4.2-22.6-10.3l0-13.7zm47.3 72.2c-3.8 6.6-13.3 10.9-24.7 10.9-11.1 0-21-4.4-24.7-10.9l0-16.2c3.7-6.3 13.5-10.5 24.7-10.5 11.3 0 20.9 4.1 24.7 10.5l0 16.2zM376.4 266l-59.8-89.7-29 0 0 40.6 26.5 0 0 .4 62.5 94.1 25.7 0 0-135.1-25.9 0 0 89.7z\"],\n \"square-pinterest\": [448, 512, [\"pinterest-square\"], \"f0d3\", \"M384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l72.6 0-2.2-.8c-5.4-48.1-3.1-57.5 15.7-134.7 3.9-16 8.5-35 13.9-57.9 0 0-7.3-14.8-7.3-36.5 0-70.7 75.5-78 75.5-25 0 13.5-5.4 31.1-11.2 49.8-3.3 10.6-6.6 21.5-9.1 32-5.7 24.5 12.3 44.4 36.4 44.4 43.7 0 77.2-46 77.2-112.4 0-58.8-42.3-99.9-102.6-99.9-69.9 0-110.9 52.4-110.9 106.6 0 21.1 8.2 43.7 18.3 56 2 2.4 2.3 4.5 1.7 7-1.1 4.7-3.1 12.9-4.7 19.2-1 4-1.8 7.3-2.1 8.6-1.1 4.5-3.5 5.5-8.2 3.3-30.6-14.3-49.8-59.1-49.8-95.1 0-77.5 56.2-148.6 162.2-148.6 85.2 0 151.4 60.7 151.4 141.8 0 84.6-53.3 152.7-127.4 152.7-24.9 0-48.3-12.9-56.3-28.2 0 0-12.3 46.9-15.3 58.4-5 19.3-17.6 42.9-27.4 59.3L384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64z\"],\n \"bluetooth-b\": [256, 512, [], \"f294\", \"M164.9 260L257.5 156.7 111.6 0 111.6 206.3 25.4 120.2-6 151.6 102.1 260-6 368.4 25.4 399.8 111.6 313.7 114.3 512 262.8 363.4 164.9 260zm40.9-103l-50 50-.3-100.3 50.3 50.3zm-50 156l50 50-50.3 50.3 .3-100.3z\"],\n \"gripfire\": [320, 512, [], \"f3ac\", \"M80.5 301.4c0-73.8 105.1-122.5 105.1-203 0-47.1-34-88-39.1-90.4 .4 3.3 .6 6.7 .6 10 0 92.1-147.1 153.9-147.1 268.6 0 49.8 32.2 79.2 66.5 108.3 65.1 46.7 78.1 71.4 78.1 86.6 0 10.1-4.8 17-4.8 22.3 13.1-16.7 17.4-31.9 17.5-46.4 0-29.6-21.7-56.3-44.2-86.5-16-22.3-32.6-42.6-32.6-69.5zm205.3-39c-12.1-66.8-78-124.4-94.7-130.9l4 7.2c2.4 5.1 3.4 10.9 3.4 17.1 0 44.7-54.2 111.2-56.6 116.7-2.2 5.1-3.2 10.5-3.2 15.8 0 20.1 15.2 42.1 17.9 42.1 2.4 0 56.6-55.4 58.1-87.7 6.4 11.7 9.1 22.6 9.1 33.4 0 41.2-41.8 96.9-41.8 96.9 0 11.6 31.9 53.2 35.5 53.2 1 0 2.2-1.4 3.2-2.4 37.9-39.3 67.3-85 67.3-136.8 0-8-.7-16.2-2.2-24.6z\"],\n \"square-google-plus\": [448, 512, [\"google-plus-square\"], \"f0d4\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM64 256c0-55.3 44.7-100 100-100 27 0 49.5 9.8 67 26.2l-27.1 26.1c-7.4-7.1-20.3-15.4-39.8-15.4-34.1 0-61.9 28.2-61.9 63.2 0 34.9 27.8 63.2 61.9 63.2 39.6 0 54.4-28.5 56.8-43.1l-56.9 0 0-34.4 94.4 0c1 5 1.6 10.1 1.6 16.6 0 57.1-38.3 97.6-96 97.6-55.3 0-100-44.7-100-100zm291 18.2l0 29-29.2 0 0-29-29 0 0-29.2 29 0 0-29 29.2 0 0 29 29 0 0 29.2-29 0z\"],\n \"app-store\": [512, 512, [], \"f36f\", \"M255.9 120.9l9.1-15.7c5.6-9.8 18.1-13.1 27.9-7.5s13.1 18.1 7.5 27.9l-87.5 151.5 63.3 0c20.5 0 32 24.1 23.1 40.8l-185.5 0c-11.3 0-20.4-9.1-20.4-20.4s9.1-20.4 20.4-20.4l52 0 66.6-115.4-20.8-36.1c-5.6-9.8-2.3-22.2 7.5-27.9 9.8-5.6 22.2-2.3 27.9 7.5l8.9 15.7zm-78.7 218l-19.6 34c-5.6 9.8-18.1 13.1-27.9 7.5s-13.1-18.1-7.5-27.9l14.6-25.2c16.4-5.1 29.8-1.2 40.4 11.6zm168.9-61.7l53.1 0c11.3 0 20.4 9.1 20.4 20.4S410.5 318 399.2 318l-29.5 0 19.9 34.5c5.6 9.8 2.3 22.2-7.5 27.9-9.8 5.6-22.2 2.3-27.9-7.5-33.5-58.1-58.7-101.6-75.4-130.6-17.1-29.5-4.9-59.1 7.2-69.1 13.4 23 33.4 57.7 60.1 104zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM40 256a216 216 0 1 1 432 0 216 216 0 1 1 -432 0z\"],\n \"wix\": [640, 512, [], \"f5cf\", \"M393.4 131.7c0 13 2.1 32.7-28.7 43.8-9.5 3.4-16 9.7-16 9.7 0-31 4.7-42.2 17.4-48.9 9.8-5.1 27.2-4.6 27.2-4.6zM277.6 167.2l-34.2 132.7-28.5-108.6c-7.7-32-20.8-48.5-48.4-48.5-27.4 0-40.7 16.2-48.4 48.5L89.5 299.9 55.3 167.2C49.7 140.5 23.9 129 0 132L65.6 379.9s21.6 1.6 32.5-4c14.2-7.2 21-12.8 29.6-46.6 7.7-30.1 29.1-118.4 31.1-124.7 4.8-14.9 11.1-13.8 15.4 0 2 6.3 23.5 94.6 31.1 124.7 8.6 33.7 15.4 39.3 29.6 46.6 10.8 5.5 32.5 4 32.5 4L332.9 132c-24.4-3.1-49.8 8.9-55.3 35.3zm115.8 5.2s-4.1 6.3-13.5 11.6c-6 3.4-11.8 5.6-18 8.6-15.1 7.3-13.2 13.9-13.2 35.2l0 152.1s16.6 2.1 27.4-3.4c13.9-7.1 17.1-14 17.3-44.8l0-150.3 0 0 0-9zm163.4 84.1L640 132.8s-35.1-6-52.5 9.8c-13.3 12.1-24.4 29.6-54.2 72.5-.5 .7-6.3 10.5-13.1 0-29.3-42.2-40.8-60.3-54.2-72.5-17.4-15.8-52.5-9.8-52.5-9.8l83.2 123.7-83 123.4s36.6 4.6 54-11.2c11.5-10.5 17.6-20.4 52.5-70.7 6.8-10.5 12.6-.8 13.1 0 29.4 42.4 39.2 58.1 53.1 70.7 17.4 15.8 53.3 11.2 53.3 11.2l-83-123.4z\"],\n \"intercom\": [448, 512, [], \"f7af\", \"M392 32L56 32C25.1 32 0 57.1 0 88L0 424c0 30.9 25.1 56 56 56l336 0c30.9 0 56-25.1 56-56l0-336c0-30.9-25.1-56-56-56zM283.7 114.1c0-19.8 29.9-19.8 29.9 0l0 199.5c0 19.8-29.9 19.8-29.9 0l0-199.5zm-74.6-7.5c0-19.8 29.9-19.8 29.9 0l0 216.5c0 19.8-29.9 19.8-29.9 0l0-216.5zm-74.7 7.5c0-19.8 29.9-19.8 29.9 0l0 199.5c0 19.8-29.9 19.8-29.9 0l0-199.5zM59.7 144c0-19.8 29.9-19.8 29.9 0l0 134.3c0 19.8-29.9 19.8-29.9 0l0-134.3zM383.1 371.8c-72.8 63-241.7 65.4-318.1 0-15-12.8 4.4-35.5 19.4-22.7 65.9 55.3 216.1 53.9 279.3 0 14.9-12.9 34.3 9.8 19.4 22.7zm5.2-93.5c0 19.8-29.9 19.8-29.9 0l0-134.3c0-19.8 29.9-19.8 29.9 0l0 134.3z\"],\n \"reacteurope\": [576, 512, [], \"f75d\", \"M250.7 211.7l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8-2.3 6.8-7.2 .1 5.7 4.3-2 6.8zm63.7 0l5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.2-.1-2.3-6.8-2.3 6.8-7.2 .1 5.7 4.3-1.9 6.8zm-91.3 50.5l-3.4 0c-4.8 0-3.8 4-3.8 12.1 0 4.7-2.3 6.1-5.8 6.1s-5.8-1.4-5.8-6.1l0-36.6c0-4.7 2.3-6.1 5.8-6.1s5.8 1.4 5.8 6.1c0 7.2-.7 10.5 3.8 10.5l3.4 0c4.7-.1 3.8-3.9 3.8-12.3 0-9.9-6.7-14.1-16.8-14.1l-.2 0c-10.1 0-16.8 4.2-16.8 14.1l0 40.1c0 10.4 6.7 14.1 16.8 14.1l.2 0c10.1 0 16.8-3.8 16.8-14.1 0-9.9 1.1-13.8-3.8-13.8zm-80.7 17.4l-14.7 0 0-19.3 11.4 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-11.4 0 0-18.3 14.4 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-21.7 0c-2.4-.1-3.7 1.3-3.7 3.8l0 59.1c0 2.5 1.3 3.8 3.8 3.8l21.9 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8zm-42-18.5c4.6-2 7.3-6 7.3-12.4l0-11.9c0-10.1-6.7-14.1-16.8-14.1l-13.4 0c-2.5 0-3.8 1.3-3.8 3.8l0 59.1c0 2.5 1.3 3.8 3.8 3.8l3.4 0c2.5 0 3.8-1.3 3.8-3.8l0-22.9 5.6 0 7.4 23.5c.2 1 .8 1.8 1.6 2.4s1.8 .9 2.7 .8l3.3 0c2.8 0 4-1.8 3.2-4.4l-8.1-23.9zm-3.8-14c0 4.8-2.5 6.1-6.1 6.1l-5.8 0 0-20.9 5.8 0c3.6 0 6.1 1.3 6.1 6.1l0 8.7zM176.1 226c-.1-.5-.2-1-.4-1.4s-.6-.8-1-1.1-.8-.6-1.3-.7-1-.2-1.5-.1l-6.9 0c-.5 0-1 0-1.4 .2s-.9 .4-1.3 .7-.7 .7-.9 1.1-.4 .9-.4 1.4l-11 59.2c-.5 2.7 .9 4.1 3.4 4.1l3 0c.5 .1 1 0 1.5-.2s.9-.4 1.3-.7 .7-.7 .9-1.2 .4-.9 .4-1.4l1.8-11.3 12.2 0 1.8 11.3c0 .5 .2 1 .4 1.4s.5 .9 .9 1.2 .8 .6 1.3 .7 1 .2 1.5 .2l3.5 0c2.6 0 3.9-1.4 3.4-4.1L176.1 226zm-12.3 39.3l4.7-29.7 4.7 29.7-9.4 0zm89.3 20.2l0-53.2 7.5 0c2.5 0 3.8-1.3 3.8-3.8l0-2.1c0-2.5-1.3-3.8-3.8-3.8l-25.8 0c-2.5 0-3.8 1.3-3.8 3.8l0 2.1c0 2.5 1.3 3.8 3.8 3.8l7.3 0 0 53.2c0 2.5 1.3 3.8 3.8 3.8l3.4 0c2.5 0 3.8-1.3 3.8-3.8l0 0zm248-.8l-19.4 0 0-26.7 16.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-16.1 0 0-25.8 19.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-22.2 0c-.3-.1-.5-.1-.8 0s-.5 .2-.7 .4-.3 .4-.4 .7-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l22.5 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l0 0zM408 221.8l-.8 0c-10.1 0-15.3 4.7-15.3 14.1l0 40.1c0 9.3 5.2 14.1 15.3 14.1l.8 0c10.1 0 15.3-4.8 15.3-14.1l0-40.1c0-9.4-5.2-14.1-15.3-14.1l0 0zm10.2 52.4c-.1 8-3 11.1-10.5 11.1s-10.5-3.1-10.5-11.1l0-36.6c0-7.9 3-11.1 10.5-11.1s10.5 3.2 10.5 11.1l0 36.6zm-46.5-14.5c6.1-1.6 9.2-6.1 9.2-13.3l0-9.7c0-9.4-5.2-14.1-15.3-14.1l-13.7 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l1.2 0c.3 0 .5 0 .8-.1s.5-.2 .6-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-26.9 11.6 0 10.4 27.2c.2 .5 .5 .9 .9 1.1s.9 .4 1.4 .4l1.5 0c1.4 0 2-1 1.5-2.3l-10.6-27.3zm-6.4-3.9l-10.2 0 0-28.5 10.2 0c7.5 0 10.5 3.1 10.5 11.1l0 6.4c0 7.8-3 11-10.5 11l0 0zm85.9-33.1l-13.7 0c-.3-.1-.5-.1-.8 0s-.5 .2-.7 .4-.3 .4-.4 .7-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l1.2 0c.3 0 .5 0 .8-.1s.5-.2 .6-.4 .3-.4 .4-.6 .1-.5 .1-.8l0-26.1 10.6 0c10.1 0 15.3-4.8 15.3-14.1l0-10.5c0-9.4-5.2-14.1-15.3-14.1zm10.2 22.8c0 7.9-3 11.1-10.5 11.1l-10.2 0 0-29.2 10.2 0c7.5-.1 10.5 3.1 10.5 11l0 7.1zM259.6 308l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zM487.2 171.9c-11.7-4.4-23.5-8.1-35.6-11.3 19.6-78 11.6-134.7-22.3-153.9-34.5-19.4-85.9 4.3-138.2 55.2 3.4 3.3 6.8 6.7 10.2 10.2 82.5-80 119.6-53.5 120.9-52.8 22.4 12.7 36 55.8 15.5 137.8-27.8-6.4-56.1-10.7-84.6-13-71.9-100.5-140.6-142.1-182.2-142.1-30.8 0-43.8 21-47.6 27.7-18.1 32-13.3 84.2 .1 133.8-70.5 20.3-120.7 54.1-120.3 95 .5 59.6 103.2 87.8 122.1 92.8-20.5 81.9-10.1 135.6 22.3 153.9 28 15.8 75.1 6 138.2-55.2-3.4-3.3-6.8-6.7-10.2-10.2-82.5 80-119.7 53.5-120.9 52.8-22.3-12.6-36-55.6-15.5-137.9 12.4 2.9 41.8 9.5 84.6 13 71.9 100.4 140.6 142 182.1 142 30.8 0 43.8-21 47.6-27.7 18-31.9 13.3-84.1-.1-133.8 152.3-43.8 156.2-130.2 33.9-176.3l0 0zM136 36.8c2.9-5.1 11.9-20.3 34.9-20.3 36.8 0 98.8 39.6 163.3 126.2-31.3-1.8-62.7-1.5-93.9 .9 13-18.3 27.1-35.8 42.2-52.4-3.4-3.5-6.8-6.9-10.2-10.2-18.3 20.2-35.3 41.7-50.7 64.2-28.5 2.7-56.7 7.6-84.4 14.6-.2-1.4-24.3-82.2-1.2-123l0 0zM440.8 475.1c-2.9 5.1-11.8 20.3-34.9 20.3-36.7 0-98.7-39.4-163.3-126.2 31.3 1.8 62.7 1.5 93.9-.9-13 18.3-27.1 35.8-42.2 52.4 3.4 3.5 6.8 6.9 10.2 10.2 18.4-20.2 35.3-41.7 50.7-64.2 47.3-4.7 80.3-13.5 84.4-14.6 22.7 84.4 4.5 117 1.2 123zm9.1-138.6c-3.6-11.9-7.7-24.1-12.4-36.4-2.1 0-4.2-.5-6.1-1.5s-3.5-2.4-4.6-4.2l-.1 .1c-1.6 1.5-3.4 2.7-5.4 3.6 5.7 14.3 10.6 28.4 14.7 42.2-23.7 6-47.7 10.3-72 13 3.5-5.3 17.2-26.2 32.2-54.2-2.1-.8-4.2-1.9-6-3.2-1.1 1.2-3.6 4.2-10.9 4.2-6.2 11.2-17.4 30.9-33.9 55.2-37.4 3.3-75 3.6-112.4 1-7.9-11.2-21.5-31.1-36.8-57.8-1-.4-2-.9-3-1.5-1.9 1.6-3.9 3.2-12.6 3.2 6.3 11.2 17.5 30.7 33.8 54.6-24.3-2.3-48.4-6.2-72.2-11.7 3.9-14 8.6-28.3 14.1-42.9-3.2 0-5.4 .2-8.4-1-2.2 .8-4.6 1.1-6.9 1-4.9 13.4-9.1 26.5-12.7 39.4-159.9-42.6-140.3-123.6-1.5-164 3.6 11.9 7.7 24.1 12.4 36.4 10.4 0 12.9 3.4 14.4 5.3 .7-.8 1.4-1.6 2.3-2.2-5.8-14.7-10.9-29.2-15.2-43.3 7-1.8 32.4-8.4 72-13-15.9 24.3-26.7 43.9-32.8 55.3 3.1 1.8 5.3 4.6 6.4 8 2.5-3.7 6.1-6.6 10.2-8.4 6.5-11.7 17.9-31.9 34.8-56.9 37.4-3.3 75-3.6 112.4-1 31.5 44.6 28.9 48.1 42.5 64.5 2.6-3.5 6.3-6 10.4-7.4-6.4-11.4-17.6-31-34.3-55.5 40.4 4.1 65 10 72.2 11.7-4 14.4-8.9 29.2-14.6 44.2 2.5 1 4.8 2.4 6.8 4.3l.1 .1c1-1.5 2.3-2.8 3.8-3.8s3.3-1.6 5.1-1.8c4.9-13.4 9.2-26.6 12.8-39.5 11.7 3.1 23.2 6.8 34.5 11 106.1 39.9 74 87.9 72.6 90.4-19.8 35.1-80.1 55.2-105.7 62.5zm-114.4-114l-1.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.6 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 49.8c0 7.9-2.6 11.1-10.1 11.1s-10.1-3.1-10.1-11.1l0-49.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-1.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 51.5c0 9.6 5 14.1 15.1 14.1l.4 0c10.1 0 15.1-4.6 15.1-14.1l0-51.5c0-.3-.1-.5-.2-.8s-.3-.5-.5-.6-.4-.3-.7-.4-.5-.1-.8-.1zM321.8 308l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zm-31.1 7.4l-2.3-6.8-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1zm5.1-30.8l-19.4 0 0-26.7 16.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-16.1 0 0-25.8 19.1 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.5-.1-.8s-.2-.5-.4-.7-.4-.3-.7-.4-.5-.1-.8-.1l-22.2 0c-.3 0-.5 0-.8 .1s-.5 .2-.7 .4-.3 .4-.4 .6-.1 .5-.1 .8l0 63c0 .3 0 .5 .1 .8s.2 .5 .4 .6 .4 .3 .7 .4 .5 .1 .8 .1l22.5 0c.3 0 .5 0 .8-.1s.5-.2 .7-.4 .3-.4 .4-.7 .1-.5 .1-.8l0-.8c0-.3 0-.6-.1-.8s-.2-.5-.4-.7-.4-.4-.7-.4-.5-.1-.8-.1l0 0zm-7.4-99.4l-2.3 6.8-7.1 .1 5.7 4.3-2.1 6.8 5.8-4.1 5.8 4.1-2.1-6.8 5.7-4.3-7.1-.1-2.3-6.8z\"],\n \"waze\": [512, 512, [], \"f83f\", \"M502.6 201.7c14.5 85.9-30.9 167.9-113.2 208.1 13 34.1-12.4 70.2-48.3 70.2-13.2 0-26-5.1-35.6-14.2s-15.3-21.6-16-34.8c-6.4 .2-64.2 0-76.3-.6-.3 6.8-1.9 13.5-4.7 19.6s-6.9 11.7-11.9 16.3-10.8 8.2-17.2 10.5-13.2 3.4-19.9 3.1c-33.9-1.4-58-34.8-47-67.9-37.2-13.1-72.5-34.9-99.6-70.8-13-17.3-.5-41.8 20.8-41.8 46.3 0 32.2-54.2 43.2-110.3 18.4-93.9 116.8-157.1 211.7-157.1 102.5 0 197.2 70.7 214.1 169.7zM373.9 388.3c42-19.2 81.3-56.7 96.3-102.1 40.5-123.1-64.2-228-181.7-228-83.4 0-170.3 55.4-186.1 136-9.5 48.9 5 131.4-68.7 131.4 24.9 33.1 58.3 52.6 93.7 64 24.7-21.8 63.9-15.5 79.8 14.3 14.2 1 79.2 1.2 87.9 .8 3.5-6.9 8.5-12.9 14.7-17.5s13.2-7.9 20.8-9.5 15.4-1.4 22.9 .4 14.5 5.3 20.5 10.2zM205.5 187.1c0-34.7 50.8-34.7 50.8 0s-50.8 34.7-50.8 0zm116.6 0c0-34.7 50.9-34.7 50.9 0s-50.9 34.8-50.9 0zM199.5 257.8c-3.4-16.9 22.2-22.2 25.6-5.2l.1 .3c4.1 21.4 29.8 44 64.1 43.1 35.7-.9 59.3-22.2 64.1-42.8 4.5-16.1 28.6-10.4 25.5 6-5.2 22.2-31.2 62-91.5 62.9-42.6 0-80.9-27.8-87.9-64.2l0 0z\"],\n \"creative-commons-remix\": [512, 512, [], \"f4ee\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zM418.1 260.4l4.9 2.2 0 70c-7.2 3.6-63.4 27.5-67.3 28.8-6.5-1.8-113.7-46.8-137.3-56.2l-64.2 26.6-63.3-27.5 0-63.8 59.3-24.8c-.7-.7-.4 5-.4-70.4l67.3-29.7 151.9 62.9 0 61.6 49.1 20.3zm-70.4 81.5l0-43.8-.4 0 0-1.8-113.8-46.5 0 45.2 113.8 46.9 0-.4 .4 .4zm7.5-57.6l39.9-16.4-36.8-15.5-39 16.4 35.9 15.5zm52.3 38.1l0-43-44.3 18.6 0 43.4 44.3-19z\"],\n \"bandcamp\": [512, 512, [], \"f2d5\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm48.2 326.1l-181 0 84.7-156.1 181 0-84.7 156.1z\"],\n \"square-web-awesome-stroke\": [448, 512, [], \"e684\", \"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm235 81.6l53 46.4 52.2-10.4c-2.6-3.9-4.2-8.5-4.2-13.6 0-13.3 10.7-24 24-24s24 10.7 24 24c0 13-10.3 23.6-23.2 24L304.5 349.1c-5.2 11.5-16.6 18.9-29.2 18.9l-102.6 0c-12.6 0-24-7.4-29.2-18.9L87.2 224c-12.9-.4-23.2-11-23.2-24 0-13.3 10.7-24 24-24s24 10.7 24 24c0 5-1.5 9.7-4.2 13.6L160 224 213.1 177.6c-8.9-4.1-15-13.1-15-23.6 0-14.4 11.6-26 26-26s26 11.6 26 26c0 10.5-6.2 19.5-15.1 23.6z\"],\n \"vimeo-v\": [448, 512, [], \"f27d\", \"M447.8 153.6c-2 43.6-32.4 103.3-91.4 179.1-60.9 79.2-112.4 118.8-154.6 118.8-26.1 0-48.2-24.1-66.3-72.3-35.2-129.2-50.2-204.9-79.3-204.9-3.4 0-15.1 7.1-35.2 21.1L0 168.2c51.6-45.3 100.9-95.7 131.8-98.5 34.9-3.4 56.3 20.5 64.4 71.5 28.7 181.5 41.4 208.9 93.6 126.7 18.7-29.6 28.8-52.1 30.2-67.6 4.8-45.9-35.8-42.8-63.3-31 22-72.1 64.1-107.1 126.2-105.1 45.8 1.2 67.5 31.1 64.9 89.4z\"],\n \"strava\": [384, 512, [], \"f428\", \"M158.4 0L7 292 96.2 292 158.4 175.9 220.1 292 308.6 292 158.4 0zM308.6 292l-43.9 88.2-44.6-88.2-67.6 0 112.2 220 111.5-220-67.6 0z\"],\n \"uniregistry\": [384, 512, [], \"f404\", \"M192 480c39.5 0 76.2-11.8 106.8-32.2l-213.5 0C115.8 468.2 152.5 480 192 480zM102.9 286.9l0-12.4-102.9 0 0 12.4c0 2.5 0 5 .1 7.4l103.1 0c-.2-2.4-.3-4.9-.3-7.4zm20.5 57l-114.9 0c2.6 8.5 5.8 16.8 9.6 24.8l138.3 0c-12.9-5.7-24.1-14.2-33-24.8zm-17.7-34.7l-104.4 0c.9 7.6 2.2 15 3.9 22.3l109.7 0c-4-6.9-7.2-14.4-9.2-22.3zm-2.8-69.3l-102.9 0 0 17.3 102.9 0 0-17.3zm0-173.2l-102.9 0 0 4.9 102.9 0 0-4.9zm0-34.7l-102.9 0 0 2.5 102.9 0 0-2.5zm0 69.3l-102.9 0 0 7.4 102.9 0 0-7.4zm0 104l-102.9 0 0 14.8 102.9 0 0-14.8zm0-69.3l-102.9 0 0 9.9 102.9 0 0-9.9zm0 34.6l-102.9 0 0 12.4 102.9 0 0-12.4zM269.1 331.5l109.7 0c1.8-7.3 3.1-14.7 3.9-22.3l-104.4 0c-2.1 7.9-5.2 15.4-9.2 22.3zm12-185.7l102.9 0 0-9.8-102.9 0 0 9.8zm0 37.2l102.9 0 0-12.4-102.9 0 0 12.4zm0-74.3l102.9 0 0-7.4-102.9 0 0 7.4zm0-76.7l0 2.5 102.9 0 0-2.5-102.9 0zM78.1 442.9l227.7 0c11.8-8.7 22.7-18.6 32.2-29.7l-293.1 0c9.6 11 21.4 21 33.2 29.7zm203-371.3l102.9 0 0-4.9-102.9 0 0 4.9zm0 148.5l102.9 0 0-14.8-102.9 0 0 14.8zM38.8 405.7l305.3 0c6.7-8.5 12.6-17.6 17.8-27.2L23 378.5c5.2 9.6 9.2 18.7 15.8 27.2zm188.8-37.1l139.4 0c3.7-8 5.8-16.2 8.5-24.8l-115 0c-8.8 10.7-20.1 19.2-32.9 24.8zm53.5-81.7c0 2.5-.1 5-.4 7.4l103.1 0c.1-2.5 .2-4.9 .2-7.4l0-12.4-102.9 0 0 12.4zm0-29.7l102.9 0 0-17.3-102.9 0 0 17.3z\"],\n \"cc-diners-club\": [576, 512, [], \"f24c\", \"M239.7 79.9a175.8 175.8 0 1 0 0 351.6 175.8 175.8 0 1 0 0-351.6zM199.8 359.5c-41.7-15.9-71.4-56.4-71.4-103.8s29.7-87.9 71.4-104.1l0 207.9zm79.8 .3l0-208.2c41.7 16.2 71.4 56.7 71.4 104.1s-29.7 87.9-71.4 104.1zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM329.7 448l-90.3 0C133.2 448 45.6 362.5 45.6 257.8 45.6 143.2 133.2 64 239.4 64l90.3 0c105 0 200.7 79.2 200.7 193.8 0 104.7-95.7 190.2-200.7 190.2z\"],\n \"pinterest\": [512, 512, [], \"f0d2\", \"M504 256c0 137-111 248-248 248-25.6 0-50.2-3.9-73.4-11.1 10.1-16.5 25.2-43.5 30.8-65 3-11.6 15.4-59 15.4-59 8.1 15.4 31.7 28.5 56.8 28.5 74.8 0 128.7-68.8 128.7-154.3 0-81.9-66.9-143.2-152.9-143.2-107 0-163.9 71.8-163.9 150.1 0 36.4 19.4 81.7 50.3 96.1 4.7 2.2 7.2 1.2 8.3-3.3 .8-3.4 5-20.3 6.9-28.1 .6-2.5 .3-4.7-1.7-7.1-10.1-12.5-18.3-35.3-18.3-56.6 0-54.7 41.4-107.6 112-107.6 60.9 0 103.6 41.5 103.6 100.9 0 67.1-33.9 113.6-78 113.6-24.3 0-42.6-20.1-36.7-44.8 7-29.5 20.5-61.3 20.5-82.6 0-19-10.2-34.9-31.4-34.9-24.9 0-44.9 25.7-44.9 60.2 0 22 7.4 36.8 7.4 36.8s-24.5 103.8-29 123.2C161.5 437.2 163.5 467.4 165.6 487 73.4 450.9 8 361.1 8 256 8 119 119 8 256 8S504 119 504 256z\"],\n \"algolia\": [512, 512, [], \"f36c\", \"M256 0c-139.9 0-254 112.7-256 252.1-2 141.5 112.9 258.7 254.5 259.5 43.7 .3 85.9-10.4 123.3-30.7 3.6-2 4.2-7 1.1-9.7l-24-21.2c-4.9-4.3-11.8-5.5-17.8-3-26.1 11.1-54.5 16.8-83.7 16.4-114.4-1.5-206.9-96.6-205.1-211 1.8-112.9 94.3-204.2 207.7-204.2l207.7 0 0 369-117.8-104.7c-3.8-3.4-9.7-2.7-12.7 1.3-18.9 25-49.7 40.6-83.9 38.2-47.5-3.3-85.9-41.5-89.5-88.9-4.2-56.6 40.6-103.9 96.3-103.9 50.4 0 91.9 38.8 96.2 88 .4 4.4 2.4 8.5 5.7 11.4l30.7 27.2c3.5 3.1 9 1.2 9.9-3.4 2.2-11.8 3-24.2 2.1-36.8-4.9-72-63.3-130-135.4-134.4-82.7-5.1-151.8 59.5-154 140.6-2.1 78.9 62.6 147 141.6 148.7 33 .7 63.6-9.6 88.3-27.6L495 509.4c6.6 5.8 17 1.2 17-7.7l0-492c0-5.4-4.4-9.7-9.7-9.7L256 0z\"],\n \"stackpath\": [448, 512, [], \"f842\", \"M244.6 232.4c0 8.5-4.3 20.5-21.3 20.5l-19.6 0 0-41.5 19.6 0c17.1 0 21.3 12.4 21.3 21zM448 32l0 448-448 0 0-448 448 0zM151.3 287.8c0-21.2-12.1-34.5-46.7-44.8-20.6-7.4-26-10.9-26-18.6s7-14.6 20.4-14.6c14.1 0 20.8 8.4 20.8 18.4l30.7 0 .2-.6c.5-19.6-15.1-41.6-51.1-41.6-23.4 0-52.6 10.8-52.6 38.3 0 19.4 9.2 31.3 50.7 44.4 17.3 6.2 21.9 10.4 21.9 19.5 0 15.2-19.1 14.2-19.5 14.2-20.4 0-25.7-9.1-25.7-21.9l-30.8 0-.2 .6c-.7 31.3 28.4 45.2 56.6 45.2 30 0 51.1-13.6 51.1-38.3zm125.4-55.6c0-25.3-18.4-45.5-53.4-45.5l-51.8 0 0 138.2 32.2 0 0-47.4 19.6 0c30.3 0 53.4-16 53.4-45.4zM297.9 325l49.1-138.2-31.1 0-47.9 138.2 29.9 0zM404.5 186.8l-31.1 0-47.9 138.2 29.9 0 49.1-138.2z\"],\n \"octopus-deploy\": [512, 512, [], \"e082\", \"M455.7 349.2c-45.9-39.1-36.7-77.9-16.1-128.1 35.7-87-23.5-186.9-109.6-212.8-92.9-27.9-195.7 16-230.3 108.8-8.7 23.5-12.5 48.5-11 73.5 1.7 29.5 14.7 53 24.1 80.3 17.2 50.2-28.1 92.7-66.7 117.6-46.8 30.2-36.3 39.9-8.4 41.9 23.4 1.7 44.5-4.5 65.3-15 9.2-4.6 40.7-18.9 45.1-28.6-12.2 26.6-37 72.7-21.5 102.1 19.1 36.2 67.1-31.8 76.7-45.8 8.6-12.6 43-81.3 63.6-46.9 18.9 31.4 8.6 76.4 35.7 104.6 32.9 34.2 51.2-18.3 51.4-44.2 .2-16.4-6.1-95.9 29.9-59.9 21.4 21.4 52.9 71.2 88.6 67 38.7-4.5-22.1-68-28.3-78.7 5.4 4.3 53.7 34.1 53.8 9.5 .1-18.8-30.1-34.7-42.5-45.3z\"],\n \"yammer\": [512, 512, [], \"f840\", \"M500.7 159.5c-.4-1.8-1.2-3.4-2.3-4.8s-2.5-2.6-4.1-3.5c-3.1-1.6-6.7-2-10.1-1.1l-26.4 6.6 0-.2-22.3 5.8-1.2 .3-.6-2.2c-15.5-58.3-45-111.9-86.1-156.2-2.6-2.7-6.1-4.2-9.8-4.3s-7.3 1.3-10 3.8l-102.9 102.7-199.9 0c-6.6 0-12.9 2.6-17.6 7.3S0 124.8 0 131.4l0 249C0 387 2.6 393.3 7.3 398s11 7.3 17.6 7.3L225 405.3 328.1 508c2.6 2.6 6 4 9.7 4s7.1-1.4 9.7-4c.1-.1 .2-.3 .4-.4 29.3-31.5 52.8-67.8 69.6-107.4 6.9-16.5 12.7-33.5 17.3-50.8l0 0 20.4 5.3 0-.1 28.3 7.3c.9 .2 1.7 .4 2.6 .5 1.4 .2 2.8 .2 4.1-.1 2.5-.5 4.8-1.7 6.7-3.4s3.2-4 3.8-6.5c15.2-63.4 15.2-129.6 .1-193l0 0zM337.1 24.7l0 0 0 0 0 0zM226.9 189.8l-52.6 91.3c-1 1.7-1.5 3.7-1.5 5.7l0 46.2c0 5.8-2.3 11.4-6.5 15.6s-9.7 6.4-15.6 6.4l-3.4 0c-5.8 0-11.4-2.3-15.6-6.4s-6.5-9.7-6.5-15.6l0-45.7c0-1.9-.5-3.8-1.4-5.5L72.3 189.6c-1.9-3.4-2.8-7.1-2.8-11s1.1-7.6 3-10.9 4.7-6.1 8.1-8 7.1-2.9 11-2.9l3.3 0c4 0 8 1.1 11.5 3.2s6.3 5.1 8.1 8.7l36.4 70.3 37.5-70.5c1.8-3.5 4.6-6.4 7.9-8.4s7.2-3.2 11.1-3.2 7.8 .9 11.2 2.8 6.3 4.7 8.2 8.1c2 3.3 3 7.1 3 11s-1 7.7-3 11l0 0zM337.1 24.7c35.9 40.6 61.9 89 75.8 141.3l.6 2-114.1 29.6 0-66.1c0-6.6-2.7-12.9-7.3-17.6s-11-7.3-17.6-7.3l-19.4 0 82.1-81.8zM397.6 392l0 0 0 0c-14.7 34.8-35.1 67-60.2 95.2l-82.2-81.9 19.2 0c6.6 0 12.9-2.6 17.6-7.3s7.3-11 7.3-17.6l0-66.2 114.6 29.9c-4.4 16.3-9.8 32.3-16.3 47.9l0 0zm84-52.4l0 0-50.6-13.1-131.7-34.3 0-72.5 119.7-31 4.5-1.2c29.9-7.7 49.2-12.8 58.1-15.1 12 55.1 12 112.1 0 167.2z\"],\n \"modx\": [448, 512, [], \"f285\", \"M356 241.8l36.7 23.7 0 214.5-133-83.8 96.3-154.4zM440 75l-213.7 0-23 37.8 153.5 96.5 83.2-134.3zM351 217.8l-295.8-185.8 0 214.5 46 29 249.8-57.7zM97 294.2L8 437 221.7 437 346.7 236.5 97 294.2z\"],\n \"square-threads\": [448, 512, [], \"e619\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM294.2 244.3c19.5 9.3 33.7 23.5 41.2 40.9 10.4 24.3 11.4 63.9-20.2 95.4-24.2 24.1-53.5 35-95.1 35.3l-.2 0c-46.8-.3-82.8-16.1-106.9-46.8-21.5-27.3-32.6-65.4-33-113.1l0-.2c.4-47.7 11.5-85.7 33-113.1 24.2-30.7 60.2-46.5 106.9-46.8l.2 0c46.9 .3 83.3 16 108.2 46.6 12.3 15.1 21.3 33.3 27 54.4l-26.9 7.2c-4.7-17.2-11.9-31.9-21.4-43.6-19.4-23.9-48.7-36.1-87-36.4-38 .3-66.8 12.5-85.5 36.2-17.5 22.3-26.6 54.4-26.9 95.5 .3 41.1 9.4 73.3 26.9 95.5 18.7 23.8 47.4 36 85.5 36.2 34.3-.3 56.9-8.4 75.8-27.3 21.5-21.5 21.1-47.9 14.2-64-4-9.4-11.4-17.3-21.3-23.3-2.4 18-7.9 32.2-16.5 43.2-11.4 14.5-27.7 22.4-48.4 23.5-15.7 .9-30.8-2.9-42.6-10.7-13.9-9.2-22-23.2-22.9-39.5-1.7-32.2 23.8-55.3 63.5-57.6 14.1-.8 27.3-.2 39.5 1.9-1.6-9.9-4.9-17.7-9.8-23.4-6.7-7.8-17.1-11.8-30.8-11.9l-.4 0c-11 0-26 3.1-35.6 17.6l-23-15.8c12.8-19.4 33.6-30.1 58.5-30.1l.6 0c41.8 .3 66.6 26.3 69.1 71.8 1.4 .6 2.8 1.2 4.2 1.9l.1 .5zm-71.8 67.5c17-.9 36.4-7.6 39.7-48.8-8.8-1.9-18.6-2.9-29-2.9-3.2 0-6.4 .1-9.6 .3-28.6 1.6-38.1 15.5-37.4 27.9 .9 16.7 19 24.5 36.4 23.6l-.1-.1z\"],\n \"old-republic\": [512, 512, [], \"f510\", \"M243.8 10.2c7.5-.3 15-.3 22.5-.1 3.6 .1 7.2 .4 10.8 .7 4.9 .3 9.8 1 14.7 1.6 2.9 .4 5.8 1 8.7 1.5 7.9 1.3 15.7 3.3 23.4 5.4 12.2 3.5 24.2 7.9 35.8 13.2 26.6 12.2 50.9 29.2 71.6 49.9 20 20.1 36.7 43.5 48.9 69.2 1.1 2.6 2.4 5.1 3.5 7.7 2.8 6.4 5.4 13 7.6 19.6 4.1 12.3 7.3 25 9.4 37.8 .6 3.1 1 6.3 1.4 9.5 .5 3.8 .9 7.7 1.2 11.6 .8 8.3 .8 16.7 .8 25.1-.1 5-.3 9.9-.7 14.9-.2 3.4-.5 6.8-1 10.1-.4 2.7-.6 5.5-1.1 8.2-.9 5.1-1.7 10.3-2.9 15.4-4.1 18.5-10.3 36.6-18.5 53.6-15.8 32.8-38.8 62.2-67.1 85.1-17.3 14.1-36.4 25.9-56.9 34.9-6.2 2.7-12.5 5.3-18.9 7.4-3.5 1.2-7 2.4-10.6 3.4-6.6 1.9-13.3 3.6-20 5-4.7 .9-9.3 1.7-14 2.5-5.3 .7-10.5 1.4-15.8 1.7-6.7 .7-13.4 .8-20.1 .8-6.8 0-13.6-.1-20.4-.8-3.3-.2-6.6-.5-9.8-1-2.7-.4-5.5-.6-8.2-1.1-4.1-.7-8.2-1.4-12.4-2.2-4.2-.9-8.5-1.9-12.7-3-8.6-2.2-17.1-5-25.4-8.1-10.5-4.1-20.8-8.7-30.6-14.2-2.1-1.2-4.3-2.3-6.4-3.6-11.2-6.6-21.9-14.1-31.9-22.3-34.7-28.4-61.4-66.4-76.4-108.7-3.1-8.7-5.7-17.6-7.8-26.7-1.5-6.2-2.5-12.4-3.6-18.7-.4-2.3-.6-4.7-1-7.1-.6-4-.8-8-1.2-11.9-.8-9.5-.7-19-.5-28.5 .1-3.5 .3-7 .7-10.5 .3-3.2 .5-6.4 .9-9.5 .4-2.8 .7-5.6 1.2-8.4 .7-3.9 1.3-7.9 2.1-11.8 3.4-16.5 8.5-32.7 15.3-48.2 1.2-2.9 2.6-5.7 3.9-8.6 8.1-16.7 17.9-32.6 29.5-47.1 20-25.4 45.1-46.7 73.3-62.5 7.5-4.2 15.2-8 23.1-11.4 15.8-6.9 32.4-12 49.3-15.4 3.5-.7 7-1.2 10.6-1.8 2.6-.5 5.3-.7 7.9-1.1 3.5-.5 7.1-.7 10.6-1 2.5-.2 4.9-.4 7.4-.5zm8.6 24.4c-9.2 .1-18.4 1-27.6 2.2-7.3 1.1-14.5 2.6-21.7 4.3-13.9 3.5-27.5 8.3-40.5 14.4-10.5 5-20.6 10.7-30.2 17.2-4.2 2.9-8.4 5.8-12.3 9-5.1 4-10 8.2-14.7 12.6-2.5 2.2-4.8 4.7-7.2 7.1-28.2 28.8-48.4 65.4-57.5 104.7-2 8.4-3.5 17-4.4 25.6-1.1 8.9-1.4 17.9-1.4 26.8 .1 7.1 .4 14.3 1.2 21.4 .6 7.1 1.9 14.2 3.2 21.2 1.1 4.6 2 9.3 3.3 13.9 6.3 23.4 16.5 45.7 30.1 65.8 8.6 13 18.8 24.9 30 35.8 16.3 15.8 35 29 55.3 39.2 7.3 3.5 14.7 6.9 22.3 9.6 5 1.8 10.1 3.6 15.2 5 11.3 3.2 22.8 5.6 34.4 7.1 2.9 .3 5.8 .6 8.7 .9 13.8 1.1 27.7 1 41.5-.4 4.4-.6 8.9-1 13.3-1.8 3.6-.7 7.3-1.2 10.9-2.1 4.1-1 8.3-1.9 12.4-3.1 26.5-7.3 51.6-19.7 73.6-36.2 15.8-11.8 30-25.8 42.1-41.3 3.3-4 6.2-8.3 9.1-12.6 3.4-5.1 6.6-10.2 9.6-15.5 2.4-4.4 4.7-8.9 7-13.4 5.7-12.1 10.3-24.6 13.8-37.5 2.6-10 4.7-20.2 5.9-30.4 1.8-13.5 1.9-27.1 1.3-40.7-.3-3.9-.7-7.8-1-11.7-2.2-19.1-6.8-37.9-13.8-55.8-6-15.1-13.5-29.6-22.6-43.1-12.7-18.8-28.2-35.7-46-49.8-25-20-54.5-34.5-85.6-42.1-7.8-1.9-15.7-3.3-23.6-4.4-3.9-.6-7.8-.8-11.8-1.2-7.4-.6-14.8-.7-22.2-.6zM147.3 83.5c13.3-8.9 28.1-15.4 43.3-20.2-3.2 1.8-6.4 3.4-9.5 5.3-11.2 6.7-21.5 14.9-30.4 24.5-6.8 7.4-12.8 15.7-17 24.9-3.3 6.9-5.6 14.2-6.9 21.7-.9 4.8-1.3 9.8-1.2 14.8 .1 13.7 4.4 27.1 11.3 38.8 5.9 10.2 13.6 19.3 22.4 27.3 4.9 4.4 10.2 8.1 15 12.6 2.3 2.2 4.5 4.4 6.4 6.9 2.6 3.3 4.9 7 6 11.1 .9 3 .7 6.2 .7 9.3 0 4.1 0 8.2 0 12.3 .1 3.5 0 7.1 .1 10.6 .1 2.4 0 4.8 .1 7.1 .2 5.8 .1 11.5 .1 17.3 .1 2.9 0 5.8 .1 8.7 0 1.6 .1 3.3 0 4.9-.9 .1-1.8 .2-2.7 .2-11 0-21.9-2.6-32-6.9-6-2.7-11.8-5.9-17.1-9.8-5.8-4.2-11.1-9-15.8-14.3-6.5-7.2-12-15.4-16.6-23.9-1.1-2-2.2-4-3.2-6.1-1.2-2.6-2.6-5.1-3.7-7.8-4-9.7-6.6-19.9-8.1-30.3-.5-4.4-1.1-8.9-1.2-13.3-.7-15.7 .8-31.6 4.7-46.8 2.1-8.2 4.8-16.2 8.3-23.8 6.3-14.2 15.3-27.2 26.3-38.2 6.3-6.2 13.1-11.8 20.5-16.7zM322.7 63.4c2.7 .7 5.4 1.7 8.1 2.7 6.4 2.3 12.7 4.8 18.7 8 13.1 6.4 25.3 14.8 35.8 25 10.2 10 18.7 21.6 25.1 34.3 1.3 2.7 2.6 5.5 3.8 8.3 6.3 15.1 10 31.3 11.2 47.6 .4 4.5 .4 9.1 .5 13.6 .1 11.6-1.5 23.3-4.3 34.5-2 7.3-4.3 14.5-7.9 21.2-3.2 6.6-6.7 13.2-10.8 19.2-6.9 10.5-15.6 19.9-25.8 27.2-10.5 7.6-22.6 13-35.4 15.4-3.5 .7-7.1 1.1-10.7 1.2-1.8 .1-3.7 .2-5.6-.1-.3-2.1 0-4.3 0-6.5 0-3.7 .1-7.4 .1-11.2 .2-7 0-14.1 .2-21.1 0-2.4 0-4.8 0-7.1 .2-5.1 0-10.1 .1-15.2 .1-3-.2-6 .5-9 .7-2.5 1.8-4.9 3.1-7.1 4.5-7.3 11.1-13 17.7-18.3 5.4-4.2 10.5-8.8 15-13.8 7.7-8.4 14.2-17.9 18.8-28.3 2.5-5.9 4.5-12.1 5.5-18.5 .9-4.4 1.1-8.8 1-13.3 0-7.8-1.4-15.6-3.6-23.2-1.8-5.7-4.3-11.2-7.1-16.4-3.9-6.9-8.6-13.3-14-19.2-9.9-10.8-21.8-19.9-34.6-27.1-1.8-1-3.8-1.8-5.6-3zM221.9 121.9c1-1.2 2-2.3 3.1-3.4-.6 .9-1.3 1.8-2 2.7-3.1 3.9-5.5 8.3-7 13.1-.9 3.3-1.7 6.6-1.7 10-.1 2.5-.1 5.1 .3 7.6 1.1 7.6 4.3 14.9 8.8 21.1 2 2.7 4.2 5.3 6.9 7.3 1.6 1.3 3.5 2.1 5.3 3 3.1 1.7 6.3 3.2 9.1 5.5 2.7 2.1 4.6 5.3 4.4 8.8 0 73.7 0 147.3 0 221 0 1.4-.1 2.7 0 4 .1 1.5 .8 2.8 1.5 4.1 .9 1.7 1.8 3.3 3.2 4.6 .9 .8 2 1.4 3.2 1.2 1.5-.2 2.7-1.4 3.4-2.6 1-1.5 1.7-3.2 2.3-4.9 .8-2.1 .4-4.4 .5-6.6 .1-4 0-8.1 .1-12.1 0-5.9 0-11.8 .1-17.7 .1-3.6 0-7.2 .1-10.9 .2-4 0-8.1 .1-12.1 0-6 0-12 .1-18 .1-3.6 0-7.2 .1-10.9 .1-3.9 0-7.9 .1-11.8 0-6 0-12 .1-18 .2-3.9 0-7.9 .2-11.8 .3 1.4 .1 2.9 .2 4.4 .2 3.6 .4 7.2 .8 10.8 .3 3.4 .4 6.9 .9 10.3 .4 3.1 .5 6.2 1 9.3 .6 4.1 .9 8.2 1.5 12.3 1.5 9 2.8 18.1 5.1 27 1.1 4.8 2.4 9.6 4 14.3 2.5 7.9 5.7 15.7 10.3 22.6 1.7 2.6 3.9 5 6.1 7.2 .3 .2 .6 .5 .9 .7 .6 .3 1.3-.1 1.7-.6 .7-.9 1.2-1.9 1.7-2.9 4.1-7.8 8.2-15.6 12.3-23.3 .7-1.3 1.4-2.6 2.6-3.6 1.8-1.6 3.8-2.7 6-3.6 2.9-1.2 5.9-2.2 9-2.4 6.6-.6 13.1 .7 19.6 1.8 3.7 .6 7.4 1.2 11.1 1.4 3.7 .1 7.5 .1 11.2-.3 8.6-.9 17-3 24.9-6.2 5.3-2.2 10.5-4.8 15.3-7.9 11.5-7.2 21.5-16.6 30-27 1.2-1.4 2.2-2.9 3.5-4.3-1.2 3.2-2.7 6.4-4.2 9.5-1.3 2.9-2.8 5.6-4.3 8.4-5.2 9.6-11 18.9-17.8 27.5-4 5.2-8.5 10.1-13.3 14.6-6.6 6.1-14.1 11.4-22.4 14.8-8.2 3.4-17.3 4.6-26.1 3.3-3.6-.6-7-1.7-10.4-2.9-2.8-1-5.4-2.4-8-3.7-3.4-1.7-6.6-3.8-9.7-6.1 2.7 3.1 5.7 5.9 8.7 8.6 4.3 3.8 8.7 7.3 13.6 10.2 4 2.5 8.3 4.4 12.8 5.5 1.5 .4 3 .5 4.5 .6-1.3 1.1-2.6 2-4 3-9.6 6.5-20 11.9-30.7 16.4-20.9 8.7-43.2 14-65.7 15.3-4.7 .2-9.3 .4-14 .4-5-.1-10-.1-14.9-.7-11.2-.8-22.3-2.7-33.2-5.4-10.4-2.7-20.6-6.1-30.3-10.6-8.7-3.9-17.1-8.4-25-13.8-1.8-1.3-3.7-2.5-5.4-4.1 6.6-1.2 13-3.4 19-6.5 5.7-2.9 11-6.7 15.6-11.1 2.2-2.2 4.3-4.6 6.2-7.1-3.4 2.1-6.9 4.2-10.6 5.8-4.4 2.2-9.1 3.8-13.8 5-5.7 1.5-11.7 1.7-17.6 1.1-8.1-1-15.9-4.3-22.5-9-4.3-2.9-8.2-6.4-12-10.1-9.9-10.2-18.2-21.8-25.7-33.9-3.9-6.3-7.5-12.7-11.1-19.2-1-2-2.1-4.1-3.2-6.1 2.8 2.9 5.6 6 8.4 8.9 19.2 19.2 37.6 32.3 53.7 35.5 3.1 .7 6.3 .5 9.5 .8 2.8 .3 5.6 .2 8.3 .3 5 .1 10.1 0 15.2-.2 3.6-.2 7.3-.7 10.9-1.1 2.1-.2 4.1-.7 6.1-1.2 3.9-1 8.1-1 11.8 .6 4.8 1.8 8.4 5.6 11.4 9.7 2.2 3 4.1 6.2 5.7 9.6 1.2 2.4 2.5 4.8 3.6 7.3 1 2.2 2.2 4.4 3.4 6.5 .7 1 1.4 2.2 2.6 2.6 1.1-.8 1.7-1.9 2.3-3 2.1-4.2 3.4-8.6 4.9-13 2-6.6 3.8-13.3 5.2-20 2.2-9.3 3.2-18.7 4.5-28.1 .6-4 .8-8 1.3-12 .9-10.6 1.9-21.3 2.2-31.9 .1-1.9 .2-3.7 .3-5.6 0-4.3 .2-8.7 .2-13 0-2.4 0-4.8 0-7.1 0-5.1-.2-10.1-.2-15.2-.2-6.6-.7-13.2-1.3-19.8-.7-5.9-1.5-11.8-3.1-17.5-2-7.7-5.6-15-9.8-21.8-3.2-5.1-6.8-9.9-11.1-14-3.9-3.9-8.6-7.1-13.9-8.4-1.5-.4-3.1-.4-4.6-.6 .1-3 .7-5.9 1.3-8.8 1.6-7.7 3.8-15.3 6.8-22.6 1.5-4 3.4-7.9 5.4-11.7 3.4-6.6 7.6-12.8 12.5-18.5zm31.3 1.7c.4-.1 .7-.1 1.1-.2 .2 1.8 .1 3.6 .1 5.4l0 38.1c0 1.7 .1 3.5-.2 5.2-.4 0-.7 0-1.1 0-.9-3.8-1.7-7.6-2.6-11.3-.4-1.5-.6-3.1-1.1-4.6-1.7-.2-3.4-.2-5.2-.2-5.1 0-10.1 0-15.2 0-1.7 0-3.3 .1-5 0 0-.4-.3-.9 .2-1.2 1.3-.7 2.7-.9 4.1-1.4 3.4-1.1 6.9-2.2 10.3-3.3 1.4-.5 2.9-.7 4.2-1.5 0-.6 0-1.1 0-1.7-1.2-.6-2.5-.9-3.8-1.3-3.1-1-6.3-2-9.4-3-1.8-.6-3.7-1-5.4-1.8 0-.4-.1-.7-.1-1.1 5.1-.2 10.2 .1 15.3-.1 3.4-.1 6.7 .1 10.1-.1 .1-.4 .3-.8 .4-1.2 1.1-4.9 2.3-9.8 3.4-14.7zm6-.2c.4 0 .7 .1 1.1 .2 1 3.8 1.7 7.8 2.7 11.6 .4 1.4 .6 2.9 1 4.3 2.5 .2 5.1 0 7.6 0 5.2 .1 10.3 .1 15.5 .1 .8 0 1.5 0 2.3 .1 0 .4-.1 .7-.1 1.1-1.8 .8-3.8 1.2-5.7 1.9-3.7 1.2-7.5 2.4-11.2 3.6-.6 .2-1.1 .4-1.7 .6-.2 .6-.2 1.1-.1 1.7 .9 .5 1.8 .8 2.8 1.1 4.9 1.5 9.7 3.1 14.6 4.6 .4 .1 .8 .3 1.1 .5 .4 .3 .2 .8 .2 1.2-1.7 .1-3.3 0-5 0-5.2 0-10.3 0-15.5 0-1.6 0-3.2 0-4.8 .2-.5 1.7-.7 3.4-1.2 5.1-.9 3.6-1.5 7.2-2.5 10.8-.4 0-.7 0-1.1 .1-.3-1.7-.2-3.5-.2-5.2l0-38.1c0-1.8-.1-3.6 .1-5.4zm-186 45c1.1-2.2 2.1-4.4 3.4-6.5-1.8 7.6-2.9 15.3-3.6 23-.8 7.7-.8 15.5-.5 23.2 1.1 19.9 5.5 39.8 14.2 57.9 3 6 6.4 11.8 10.5 17.1 6.1 7.5 12.5 14.8 19.8 21.1 4.8 4.1 10 7.8 15.5 10.8 3.3 1.7 6.5 3.4 9.9 4.7 5 2 10.2 3.6 15.4 4.9 3.8 1 7.8 1.4 11.5 2.7 5 1.6 9.5 4.6 13 8.4 4.9 5.2 8.1 11.9 10.2 18.7 1 2.9 1.6 5.9 2.2 8.9 .2 .8 .2 1.5 .2 2.3-6.5 2.8-13.3 5.1-20.3 6.2-4.1 .8-8.3 1-12.5 1.1-10.2 .2-20.5-1.8-30.1-5.1-3.7-1.4-7.5-2.9-11-4.7-8.1-3.8-15.6-8.7-22.5-14.5-2.9-2.6-5.8-5.1-8.4-8-9.2-9.8-16.3-21.4-21.8-33.7-2.4-5.5-4.6-11.2-6.4-17-1.2-3.9-2.4-7.9-3.3-11.9-.7-2.9-1.2-5.9-1.9-8.9-.5-2.1-.7-4.3-1-6.5-.8-5.4-1.3-10.9-1.3-16.4 .1-6.2 .2-12.4 1.1-18.5 .4-2.9 .7-5.7 1.2-8.6 1-5.7 2.1-11.4 3.7-16.9 3.1-11.6 7.5-23 12.7-33.8zm363.7-6.4c1.1 1.7 1.9 3.5 2.8 5.3 2.1 4.5 4.2 8.9 6 13.5 7.6 18.8 12.3 38.8 13 59 0 1.8 .1 3.5 .1 5.3 .1 9.6-1.3 19.1-3.2 28.5-.7 3.6-1.5 7.2-2.6 10.7-4 14.7-10 29-18.4 41.8-8.2 12.6-19 23.5-31.8 31.4-5.7 3.6-11.8 6.6-18 9.2-5.8 2.2-11.7 4-17.8 5.1-6.4 1-12.9 1.5-19.4 1.2-7.9-.5-15.8-2.1-23.2-4.8-1.9-.8-3.9-1.5-5.8-2.3-.2-1.5 .2-3 .5-4.5 1.2-5.7 3-11.4 5.7-16.6 2.4-4.5 5.5-8.7 9.5-11.9 2.4-2.1 5.2-3.6 8.2-4.8 3.6-1.5 7.5-2 11.2-2.8 7.2-1.7 14.4-3.9 21.2-7 10.3-4.7 19.7-11.4 27.6-19.5 1.6-1.6 3.2-3.2 4.7-4.9 3.4-3.8 6.7-7.6 9.8-11.5 7.5-10.1 12.8-21.6 16.7-33.5 1.6-5.3 3.2-10.6 4.2-16.1 .6-2.9 1-5.8 1.5-8.7 .9-6.1 1.6-12.2 1.7-18.4 .1-6.6 .1-13.3-.5-19.9-.7-8-1.9-16-3.7-23.8z\"],\n \"suse\": [640, 512, [], \"f7d6\", \"M604.5 210a10.4 10.4 0 1 1 -11.4-17.4 10.4 10.4 0 1 1 11.4 17.4zM621 187.2a38.5 38.5 0 1 1 -75 17.6 38.5 38.5 0 1 1 75-17.6zM433.7 336.7c3.2 4.6 5.8 9 7.3 13.4 1 3.1 2.4 7.3 5.5 8.9 .2 .1 .3 .2 .5 .2 5.7 2.1 20.3 1.7 20.3 1.7l26.8 0c2.3 0 22.4 0 21.9-2.3-2.4-10.8-14.9-12.7-24.4-18.3-8.7-5.2-17-11.1-20.8-21.3-2-5.2-.8-17.4 2.6-21.8 2.5-3.2 6.1-5.3 10-6.2 4.3-.9 8.8-.1 13.1 .3 5.3 .5 10.6 1.5 15.9 2.2 10.3 1.3 20.6 1.9 31 1.6 17.1-.5 34.2-3.2 50.4-8.7 11.3-3.8 22.4-8.9 32-16.1 10.9-8.1 8.1-7.4-3-6.2-13.3 1.4-26.6 1.6-39.9 .8-12.4-.7-24.7-2.2-35.9-7.9-8.8-4.6-16.4-9.1-23.4-16.2-1-1.1-1.7-4.2 .2-6.2 1.9-1.9 5.8-.8 7 .2 12.2 10.2 30.5 18.6 49.3 19.5 10.2 .5 20.1 .7 30.4 .3 5.1-.2 12.8-.2 17.9-.3 2.6 0 9.8 .7 11.2-2.1 .4-.8 .4-1.8 .3-2.7-1.5-40.9-4.5-86.9-47.3-106.5-31.9-14.6-79.7-37.2-99.9-46.6-4.7-2.2-10.2 1.3-10.2 6.5 0 13.6 .7 33.3 .7 51.1-9.7-9.9-26-16.1-38.4-21.8-14.1-6.5-28.7-12-43.5-16.6-29.8-9.2-60.7-14.9-91.7-18-35.2-3.5-71-1.8-105.7 5.3-56.9 12.2-113.1 39.7-155.7 79.8-26.1 24.6-46.6 59.7-48 95.2-2 50.3 12.1 77.3 38 105.2 41.3 44.4 130.2 50.6 166.2-2 16.2-23.7 19.7-55.8 8-82-11.8-26.2-38.8-45.1-67.4-46-22.2-.7-45.9 10.6-54.5 31.1-6.5 15.7-2.8 35.1 9 47.3 4.6 4.8 10.9 8.7 17.7 7.1 4-.9 7.4-3.9 8-8 .9-6-4.4-9.9-7.6-14.5-5.8-8.3-4.7-20.9 2.7-27.9 6.2-6 15.3-7.8 23.9-7.7 8 0 16.2 1.4 23.1 5.5 9.7 5.7 16.2 16.2 18.4 27.2 6.7 33-20.2 59.9-56.6 62-18.6 1.1-37.6-3.8-52.1-15.5-36.9-29.8-45.9-90.3-3.8-122.7 40-30.7 90.4-22.8 120.2-6.8 23.8 12.8 41.5 33.6 55 56.7 6.7 11.6 12.5 23.7 17.8 36.1 5.1 11.8 9.9 23.8 20.2 32.5 6.8 5.8 15.2 5.6 24.1 5.6l50.8 0c6.9 0 5.2-4.6 2.2-7.7-6.7-6.9-16.4-8.4-25.4-10.9-20.5-5.6-18.4-32.8-12.7-32.8 18.3 0 18.9 .6 34.9 .3 23.2-.3 30.2-1.7 48.3 5 9.7 3.6 19 13.1 25.1 21.7z\"],\n \"app-store-ios\": [448, 512, [], \"f370\", \"M400 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM127 384.5c-5.5 9.6-17.8 12.8-27.3 7.3-9.6-5.5-12.8-17.8-7.3-27.3l14.3-24.7c16.1-4.9 29.3-1.1 39.6 11.4L127 384.5zm138.9-53.9L84 330.6c-11 0-20-9-20-20s9-20 20-20l51 0 65.4-113.2-20.5-35.4c-5.5-9.6-2.2-21.8 7.3-27.3 9.6-5.5 21.8-2.2 27.3 7.3l8.9 15.4 8.9-15.4c5.5-9.6 17.8-12.8 27.3-7.3 9.6 5.5 12.8 17.8 7.3 27.3l-85.8 148.6 62.1 0c20.2 0 31.5 23.7 22.7 40zm98.1 0l-29 0 19.6 33.9c5.5 9.6 2.2 21.8-7.3 27.3-9.6 5.5-21.8 2.2-27.3-7.3-32.9-56.9-57.5-99.7-74-128.1-16.7-29-4.8-58 7.1-67.8 13.1 22.7 32.7 56.7 58.9 102l52 0c11 0 20 9 20 20 0 11.1-9 20-20 20z\"],\n \"square-dribbble\": [448, 512, [\"dribbble-square\"], \"f397\", \"M165.9 132.5c-38.3 18-66.8 53.3-75.7 95.7 6.1 .1 62.4 .3 126.4-16.7-22.7-40.2-47.1-74.1-50.7-79zm26.1-9.1c3.8 5.1 28.6 38.9 51 80 48.6-18.3 69.1-45.9 71.6-49.4-33.6-29.8-79.3-41.1-122.6-30.6zM277.4 382c-2-12-10-53.8-29.2-103.6-55.1 18.8-93.8 56.4-108.1 85.6 40.5 31.6 93.3 36.7 137.3 18zM227.8 232.6C159.6 253 93.4 252.2 87.4 252l0 4.2c0 35.1 13.3 67.1 35.1 91.4 22.2-37.9 67.1-77.9 116.5-91.8-3.4-7.8-7.2-15.5-11.1-23.2l-.1 0zm72.5 136.9c30.7-20.7 52.5-53.6 58.6-91.6-4.6-1.5-42.3-12.7-85.1-5.8 17.9 49.1 25.1 89.1 26.5 97.4zm-34.8-119c45.5-5.7 90.7 3.4 95.2 4.4-.3-32.3-11.8-61.9-30.9-85.1-2.9 3.9-25.8 33.2-76.3 53.9 4.8 9.8 8.3 17.8 12 26.8zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zM224 96a160 160 0 1 1 0 320 160 160 0 1 1 0-320z\"],\n \"uikit\": [448, 512, [], \"f403\", \"M443.9 128l0 256-225.9 128-218-128 0-214.3 87.6 45.1 0 117 133.5 75.5 135.8-75.5 0-151-101.1-57.6 87.6-53.1 100.5 57.9zM308.6 49.1l-84.8-49.1-88.6 54.8 86 47.3 87.4-53z\"],\n \"superpowers\": [448, 512, [], \"f2dd\", \"M448 32c-83.3 11-166.8 22-250 33-92 12.5-163.3 86.7-169 180-3.3 55.5 18 109.5 57.8 148.2L0 480c83.3-11 166.5-22 249.8-33 91.8-12.5 163.3-86.8 168.7-179.8 3.5-55.5-18-109.5-57.7-148.2L448 32zM368.3 264.3c-4.2 79.5-74 139.2-152.8 134.5-79.5-4.7-140.7-71-136.3-151 4.5-79.2 74.3-139.3 153-134.5 79.3 4.7 140.5 71 136.1 151z\"],\n \"youtube\": [576, 512, [61802], \"f167\", \"M549.7 124.1C543.5 100.4 524.9 81.8 501.4 75.5 458.9 64 288.1 64 288.1 64S117.3 64 74.7 75.5C51.2 81.8 32.7 100.4 26.4 124.1 15 167 15 256.4 15 256.4s0 89.4 11.4 132.3c6.3 23.6 24.8 41.5 48.3 47.8 42.6 11.5 213.4 11.5 213.4 11.5s170.8 0 213.4-11.5c23.5-6.3 42-24.2 48.3-47.8 11.4-42.9 11.4-132.3 11.4-132.3s0-89.4-11.4-132.3zM232.2 337.6l0-162.4 142.7 81.2-142.7 81.2z\"],\n \"ember\": [640, 512, [], \"f423\", \"M639.9 254.6c-1.1-10.7-10.7-6.8-10.7-6.8s-15.6 12.1-29.3 10.7c-13.7-1.3-9.4-32-9.4-32s3-28.1-5.1-30.4c-8.1-2.4-18 7.3-18 7.3s-12.4 13.7-18.3 31.2l-1.6 .5s1.9-30.6-.3-37.6c-1.6-3.5-16.4-3.2-18.8 3s-14.2 49.2-15 67.2c0 0-23.1 19.6-43.3 22.8s-25-9.4-25-9.4 54.8-15.3 52.9-59.1-44.2-27.6-49-24c-4.6 3.5-29.4 18.4-36.6 59.7-.2 1.4-.7 7.5-.7 7.5s-21.2 14.2-33 18c0 0 33-55.6-7.3-80.9-11.4-6.8-21.3-.5-27.2 5.3 13.6-17.3 46.4-64.2 36.9-105.2-5.8-24.4-18-27.1-29.2-23.1-17 6.7-23.5 16.7-23.5 16.7s-22 32-27.1 79.5-12.6 105.1-12.6 105.1-10.5 10.2-20.2 10.7-5.4-28.7-5.4-28.7 7.5-44.6 7-52.1-1.1-11.6-9.9-14.2c-8.9-2.7-18.5 8.6-18.5 8.6s-25.5 38.7-27.7 44.6l-1.3 2.4-1.3-1.6s18-52.7 .8-53.5-28.5 18.8-28.5 18.8-19.6 32.8-20.4 36.5l-1.3-1.6s8.1-38.2 6.4-47.6c-1.6-9.4-10.5-7.5-10.5-7.5s-11.3-1.3-14.2 5.9-13.7 55.3-15 70.7c0 0-28.2 20.2-46.8 20.4-18.5 .3-16.7-11.8-16.7-11.8s68-23.3 49.4-69.2c-8.3-11.8-18-15.5-31.7-15.3-13.7 .3-30.3 8.6-41.3 33.3-5.3 11.8-6.8 23-7.8 31.5 0 0-12.3 2.4-18.8-2.9s-10 0-10 0-11.2 14-.1 18.3 28.1 6.1 28.1 6.1c1.6 7.5 6.2 19.5 19.6 29.7 20.2 15.3 58.8-1.3 58.8-1.3l15.9-8.8s.5 14.6 12.1 16.7 16.4 1 36.5-47.9c11.8-25 12.6-23.6 12.6-23.6l1.3-.3s-9.1 46.8-5.6 59.7C187.7 319.4 203 318 203 318s8.3 2.4 15-21.2 19.6-49.9 19.6-49.9l1.6 0s-5.6 48.1 3 63.7 30.9 5.3 30.9 5.3 15.6-7.8 18-10.2c0 0 18.5 15.8 44.6 12.9 58.3-11.5 79.1-25.9 79.1-25.9s10 24.4 41.1 26.7c35.5 2.7 54.8-18.6 54.8-18.6s-.3 13.5 12.1 18.6 20.7-22.8 20.7-22.8l20.7-57.2 1.9 0s1.1 37.3 21.5 43.2 47-13.7 47-13.7 6.4-3.5 5.3-14.3zm-578 5.3c.8-32 21.8-45.9 29-39 7.3 7 4.6 22-9.1 31.4-13.7 9.5-19.9 7.6-19.9 7.6zM334.7 136.1s19.1-49.7 23.6-25.5-40 96.2-40 96.2c.5-16.2 16.4-70.7 16.4-70.7zm22.8 138.4c-12.6 33-43.3 19.6-43.3 19.6s-3.5-11.8 6.4-44.9 33.3-20.2 33.3-20.2 16.2 12.4 3.6 45.5zm84.6-14.6s-3-10.5 8.1-30.6c11-20.2 19.6-9.1 19.6-9.1s9.4 10.2-1.3 25.5-26.4 14.2-26.4 14.2z\"],\n \"bootstrap\": [576, 512, [], \"f836\", \"M333.5 201.4c0-22.1-15.6-34.3-43-34.3l-50.4 0 0 71.2 42.5 0c32.8-.1 50.9-13.3 50.9-36.9zM517 188.6c-9.5-30.9-10.9-68.8-9.8-98.1 1.1-30.5-22.7-58.5-54.7-58.5L123.7 32c-32.1 0-55.8 28.1-54.7 58.5 1 29.3-.3 67.2-9.8 98.1-9.6 31-25.7 50.6-52.2 53.1l0 28.5c26.4 2.5 42.6 22.1 52.2 53.1 9.5 30.9 10.9 68.8 9.8 98.1-1.1 30.5 22.7 58.5 54.7 58.5l328.7 0c32.1 0 55.8-28.1 54.7-58.5-1-29.3 .3-67.2 9.8-98.1 9.6-31 25.7-50.6 52.1-53.1l0-28.5c-26.3-2.5-42.5-22.1-52-53.1zM300.2 375.1l-97.9 0 0-238.3 97.4 0c43.3 0 71.7 23.4 71.7 59.4 0 25.3-19.1 47.9-43.5 51.8l0 1.3c33.2 3.6 55.5 26.6 55.5 58.3 0 42.1-31.3 67.5-83.2 67.5zm-10-108.7l-50.1 0 0 78.4 52.3 0c34.2 0 52.3-13.7 52.3-39.5 0-25.7-18.6-38.9-54.5-38.9z\"],\n \"itunes\": [448, 512, [], \"f3b4\", \"M223.6 80.3a171.3 171.3 0 1 0 .2 342.5 171.3 171.3 0 1 0 -.2-342.5zm79.4 240c-3.2 13.6-13.5 21.2-27.3 23.8-12.1 2.2-22.2 2.8-31.9-5-11.8-10-12-26.4-1.4-36.8 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 3.2-3.6 2.2-2 2.2-80.8 0-5.6-2.7-7.1-8.4-6.1-4 .7-91.9 17.1-91.9 17.1-5 1.1-6.7 2.6-6.7 8.3 0 116.1 .5 110.8-1.2 118.5-2.1 9-7.6 15.8-14.9 19.6-8.3 4.6-23.4 6.6-31.4 5.2-21.4-4-28.9-28.7-14.4-42.9 8.4-8 20.3-9.6 38-12.8 3-.5 5.6-1.2 7.7-3.7 5-5.7 .9-127 2.6-133.7 .4-2.6 1.5-4.8 3.5-6.4 2.1-1.7 5.8-2.7 6.7-2.7 101-19 113.3-21.4 115.1-21.4 5.7-.4 9 3 9 8.7-.1 170.6 .4 161.4-1 167.6zM345.2 32L102.8 32C45.9 32 0 77.9 0 134.8L0 377.2C0 434.1 45.9 480 102.8 480l242.4 0c57 0 102.8-45.9 102.8-102.8l0-242.4C448 77.9 402.1 32 345.2 32zM223.6 59a192.5 192.5 0 1 1 0 385 192.5 192.5 0 1 1 0-385z\"],\n \"square-xing\": [448, 512, [\"xing-square\"], \"f169\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM93.8 320.2c-5.5 0-8.7-5.3-6-10.3l49.3-86.7c.1 0 .1-.1 0-.2l-31.4-54c-3-5.6 .2-10.1 6-10.1l46.6 0c5.2 0 9.5 2.9 12.9 8.7l31.9 55.3c-1.3 2.3-18 31.7-50.1 88.2-3.5 6.2-7.7 9.1-12.6 9.1l-46.6 0zm163.5-33.4l0 .2 65.5 119c2.8 5.1 .1 10.1-6 10.1l-46.6 0c-5.5 0-9.7-2.9-12.9-8.7l-66-120.3c1.8-3.2 22.9-40.4 63.3-111.6 11.7-20.7 25.1-44.3 40.1-70.8 3.3-5.8 7.4-8.7 12.5-8.7l46.9 0c5.7-.1 8.8 4.7 6 10L257.3 286.8z\"],\n \"css3-alt\": [384, 512, [], \"f38b\", \"M0 32L34.9 427.8 192 480 349.1 427.8 384 32 0 32zm313.1 80l-4.8 47.3-115.3 49.3-.3 .1 111.5 0-12.8 146.6-98.2 28.7-98.8-29.2-6.4-73.9 48.9 0 3.2 38.3 52.6 13.3 54.7-15.4 3.7-61.6-166.3-.5 0-.1-.2 .1-3.6-46.3 112.1-46.7 6.5-2.7-122.9 0-5.8-47.3 242.2 0z\"],\n \"squarespace\": [512, 512, [], \"f5be\", \"M186.1 343.3c-9.7 9.7-9.7 25.3 0 34.9s25.3 9.6 34.9 0L378.3 221.1c19.3-19.3 50.6-19.3 69.9 0s19.3 50.6 0 69.9L294 445.1c19.3 19.3 50.5 19.3 69.8 0l0 0 119.3-119.2c38.6-38.6 38.6-101.1 0-139.7-38.6-38.6-101.2-38.6-139.7 0L186.1 343.3zM430.7 238.5c-9.7-9.7-25.3-9.7-34.9 0L238.5 395.7c-19.3 19.3-50.5 19.3-69.8 0l0 0c-9.6-9.6-25.3-9.7-34.9 0l0 0c-9.7 9.6-9.7 25.3 0 34.9l0 0c38.6 38.6 101.1 38.6 139.7 0L430.7 273.5c9.6-9.7 9.6-25.3 0-34.9zm-262 87.3L325.9 168.7c9.6-9.6 9.6-25.3 0-34.9-9.6-9.6-25.3-9.6-34.9 0L133.7 290.9c-19.3 19.3-50.6 19.3-69.9 0l0 0c-19.3-19.3-19.3-50.5 0-69.8l0 0 154.2-154.2c-19.3-19.3-50.5-19.3-69.8 0l0 0-119.2 119.3c-38.6 38.6-38.6 101.1 0 139.7 38.6 38.6 101.1 38.6 139.7 0zM81.3 273.5c9.6 9.6 25.3 9.6 34.9 0L273.5 116.3c19.3-19.3 50.6-19.3 69.8 0l0 0c9.7 9.6 25.3 9.6 34.9 0s9.6-25.3 0-34.9c-38.6-38.6-101.1-38.6-139.7 0L81.3 238.5c-9.6 9.6-9.6 25.3 0 34.9l0 0z\"],\n \"trello\": [448, 512, [], \"f181\", \"M392.3 32L56.1 32c-31 0-56.1 25.1-56.1 56-.1 0 0-4 0 336 0 30.9 25.1 56 56 56l336.2 0c30.8-.2 55.7-25.2 55.7-56l0-336c.1-30.8-24.8-55.8-55.6-56zM197 371.3c-.2 14.7-12.1 26.6-26.9 26.6l-82.7 0c-14.8 .1-26.9-11.8-27-26.6l0-254.2c0-14.8 12-26.9 26.9-26.9l82.9 0c14.8 0 26.9 12 26.9 26.9l0 254.2-.1 0zm193.1-112c0 14.8-12 26.9-26.9 26.9l-81 0c-14.8 0-26.9-12-26.9-26.9l0-142.1c0-14.8 12-26.9 26.8-26.9l81.1 0c14.8 0 26.9 12 26.9 26.9l0 142.1z\"],\n \"viadeo\": [448, 512, [], \"f2a9\", \"M276.4 150.5l0 .7c-17.9-52.6-42.6-103.4-70.8-151.2 43.3 29.2 67 100 70.8 150.5zm32.7 121.7c7.6 18.2 11 37.5 11 57 0 77.7-57.8 141-137.8 139.4l3.8-.3c74.2-46.7 109.3-118.6 109.3-205.1 0-38.1-6.5-75.9-18.9-112 1 11.7 1 23.7 1 35.4 0 91.8-18.1 241.6-116.6 280-65.7-11.4-111.3-68.6-111.3-137.4 0-75.6 57.4-142.3 135.4-142.3 16.8 0 33.7 3.1 49.1 9.6 1.7-15.1 6.5-29.9 13.4-43.3-19.9-7.2-41.2-10.7-62.5-10.7-161.5 0-238.7 195.9-129.9 313.7 67.9 74.6 192 73.9 259.8 0 56.6-61.3 60.9-142.4 36.4-201-12.7 8-27.1 13.9-42.2 17zM418.3 11.7c-31 66.5-81.3 47.2-115.8 80.1-12.4 12-20.6 34-20.6 50.5 0 14.1 4.5 27.1 12 38.8 47.4-11 98.3-46 118.2-90.7-.7 5.5-4.8 14.4-7.2 19.2-20.3 35.7-64.6 65.6-99.7 84.9 14.8 14.4 33.7 25.8 55 25.8 79 0 110.1-134.6 58.1-208.6z\"],\n \"searchengin\": [448, 512, [], \"f3eb\", \"M214.6 130.3l-67.2 28.2 0-115.3-54.7 190.3 54.7-24.2 0 130.3 67.2-209.3zM131.4 33.6l-1.3 4.7-15.2 52.9C74.6 106.7 46 145.8 46 191.5 46 243.8 80.3 287.4 129.4 297l0 53.6C51.5 340.1-6 272.4-6 191.6-6 111.1 53.8 44.4 131.4 33.6zM442.8 480.8c-11.2 11.2-23.1 12.3-28.6 10.5-5.4-1.8-27.1-19.9-60.4-44.4-33.3-24.6-33.6-35.7-43-56.7-9.4-20.9-30.4-42.6-57.5-52.4l-9.7-14.7c-24.7 16.9-53 26.9-81.3 28.7l2.1-6.6 15.9-49.5c46.5-11.9 80.9-54 80.9-104.2 0-54.5-38.4-102.1-96-107.1l0-52.1c83.2 5.1 148.8 74.5 148.8 159.3 0 33.6-11.2 64.7-29 90.4l14.6 9.6c9.8 27.1 31.5 48 52.4 57.4s32.2 9.7 56.8 43c24.6 33.2 42.7 54.9 44.5 60.3s.7 17.3-10.5 28.5zm-9.9-17.9c0-4.4-3.6-8-8-8s-8 3.6-8 8 3.6 8 8 8 8-3.6 8-8z\"],\n \"paypal\": [384, 512, [], \"f1ed\", \"M111.9 295.9c-3.5 19.2-17.4 108.7-21.5 134-.3 1.8-1 2.5-3 2.5l-74.6 0c-7.6 0-13.1-6.6-12.1-13.9L59.3 46.6c1.5-9.6 10.1-16.9 20-16.9 152.3 0 165.1-3.7 204 11.4 60.1 23.3 65.6 79.5 44 140.3-21.5 62.6-72.5 89.5-140.1 90.3-43.4 .7-69.5-7-75.3 24.2zM357.6 152c-1.8-1.3-2.5-1.8-3 1.3-2 11.4-5.1 22.5-8.8 33.6-39.9 113.8-150.5 103.9-204.5 103.9-6.1 0-10.1 3.3-10.9 9.4-22.6 140.4-27.1 169.7-27.1 169.7-1 7.1 3.5 12.9 10.6 12.9l63.5 0c8.6 0 15.7-6.3 17.4-14.9 .7-5.4-1.1 6.1 14.4-91.3 4.6-22 14.3-19.7 29.3-19.7 71 0 126.4-28.8 142.9-112.3 6.5-34.8 4.6-71.4-23.8-92.6z\"],\n \"square-bluesky\": [448, 512, [], \"e6a3\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 247.4c14.5-30 54-85.8 90.7-113.3 26.5-19.9 69.3-35.2 69.3 13.7 0 9.8-5.6 82.1-8.9 93.8-11.4 40.8-53 51.2-90 44.9 64.7 11 81.2 47.5 45.6 84-67.5 69.3-97-17.4-104.6-39.6l-.3-.9c-.9-2.6-1.4-4.1-1.8-4.1s-.9 1.5-1.8 4.1c-.1 .3-.2 .6-.3 .9-7.6 22.2-37.1 108.8-104.6 39.6-35.5-36.5-19.1-73 45.6-84-37 6.3-78.6-4.1-90-44.9-3.3-11.7-8.9-84-8.9-93.8 0-48.9 42.9-33.5 69.3-13.7 36.7 27.5 76.2 83.4 90.7 113.3z\"],\n \"d-and-d-beyond\": [640, 512, [], \"f6ca\", \"M313.8 241.5c13.8 0 21-10.1 24.8-17.9-1-1.1-5-4.2-7.4-6.6-2.4 4.3-8.2 10.7-13.9 10.7-10.2 0-15.4-14.7-3.2-26.6-.5-.2-4.3-1.8-8 2.4 0-3 1-5.1 2.1-6.6-3.5 1.3-9.8 5.6-11.4 7.9 .2-5.8 1.6-7.5 .6-9l-.2-.2s-8.5 5.6-9.3 14.7c0 0 1.1-1.6 2.1-1.9 .6-.3 1.3 0 .6 1.9-.2 .6-5.8 15.7 5.1 26-.6-1.6-1.9-7.6 2.4-1.9-.3 .1 5.8 7.1 15.7 7.1zm52.4-21.1c0-4-4.9-4.4-5.6-4.5 2 3.9 .9 7.5 .2 9 2.5-.4 5.4-1.6 5.4-4.5zm10.3 5.2c0-6.4-6.2-11.4-13.5-10.7 8 1.3 5.6 13.8-5 11.4 3.7-2.6 3.2-9.9-1.3-12.5 1.4 4.2-3 8.2-7.4 4.6-2.4-1.9-8-6.6-10.6-8.6-2.4-2.1-5.5-1-6.6-1.8-1.3-1.1-.5-3.8-2.2-5-1.6-.8-3-.3-4.8-1-1.6-.6-2.7-1.9-2.6-3.5-2.5 4.4 3.4 6.3 4.5 8.5 1 1.9-.8 4.8 4 8.5 14.8 11.6 9.1 8 10.4 18.1 .6 4.3 4.2 6.7 6.4 7.4-2.1-1.9-2.9-6.4 0-9.3 0 13.9 19.2 13.3 23.1 6.4-2.4 1.1-7-.2-9-1.9 7.7 1 14.2-4.1 14.6-10.6zm-39.4-18.4c2 .8 1.6 .7 6.4 4.5 10.2-24.5 21.7-15.7 22-15.5 2.2-1.9 9.8-3.8 13.8-2.7-2.4-2.7-7.5-6.2-13.3-6.2-4.7 0-7.4 2.2-8 1.3-.8-1.4 3.2-3.4 3.2-3.4-5.4 .2-9.6 6.7-11.2 5.9-1.1-.5 1.4-3.7 1.4-3.7-5.1 2.9-9.3 9.1-10.2 13 4.6-5.8 13.8-9.8 19.7-9-10.5 .5-19.5 9.7-23.8 15.8zm242.5 51.9c-20.7 0-40 1.3-50.3 2.1l7.4 8.2 0 77.2-7.4 8.2c10.4 .8 30.9 2.1 51.6 2.1 42.1 0 59.1-20.7 59.1-48.9 0-29.3-23.2-48.9-60.4-48.9zm-15.1 75.6l0-53.3c30.1-3.3 46.8 3.8 46.8 26.3 0 25.6-21.4 30.2-46.8 27zM301.6 181c-1-3.4-.2-6.9 1.1-9.4 1 3 2.6 6.4 7.5 9-.5-2.4-.2-5.6 .5-8-1.4-5.4 2.1-9.9 6.4-9.9 6.9 0 8.5 8.8 4.7 14.4 2.1 3.2 5.5 5.6 7.7 7.8 3.2-3.7 5.5-9.5 5.5-13.8 0-8.2-5.5-15.9-16.7-16.5-20-.9-20.2 16.6-20 18.9 .5 5.2 3.4 7.8 3.3 7.5zm-.4 6c-.5 1.8-7 3.7-10.2 6.9 4.8-1 7-.2 7.8 1.8 .5 1.4-.2 3.4-.5 5.6 1.6-1.8 7-5.5 11-6.2-1-.3-3.4-.8-4.3-.8 2.9-3.4 9.3-4.5 12.8-3.7-2.2-.2-6.7 1.1-8.5 2.6 1.6 .3 3 .6 4.3 1.1-2.1 .8-4.8 3.4-5.8 6.1 7-5 13.1 5.2 7 8.2 .8 .2 2.7 0 3.5-.5-.3 1.1-1.9 3-3 3.4 2.9 0 7-1.9 8.2-4.6 0 0-1.8 .6-2.6-.2s.3-4.3 .3-4.3c-2.3 2.9-3.4-1.3-1.3-4.2-1-.3-3.5-.6-4.6-.5 3.2-1.1 10.4-1.8 11.2-.3 .6 1.1-1 3.4-1 3.4 4-.5 8.3 1.1 6.7 5.1 2.9-1.4 5.5-5.9 4.8-10.4-.3 1-1.6 2.4-2.9 2.7 .2-1.4-1-2.2-1.9-2.6 1.7-9.6-14.6-14.2-14.1-23.9-1 1.3-1.8 5-.8 7.1 2.7 3.2 8.7 6.7 10.1 12.2-2.6-6.4-15.1-11.4-14.6-20.2-1.6 1.6-2.6 7.8-1.3 11 2.4 1.4 4.5 3.8 4.8 6.1-2.2-5.1-11.4-6.1-13.9-12.2-.6 2.2-.3 5 1 6.7 0 0-2.2-.8-7-.6 1.7 .6 5.1 3.5 4.8 5.2zm25.9 7.4c-2.7 0-3.5-2.1-4.2-4.3 3.3 1.3 4.2 4.3 4.2 4.3zm38.9 3.7l-1-.6c-1.1-1-2.9-1.4-4.7-1.4-2.9 0-5.8 1.3-7.5 3.4-.8 .8-1.4 1.8-2.1 2.6l0 15.7c3.5 2.6 7.1-2.9 3-7.2 1.5 .3 4.6 2.7 5.1 3.2 0 0 2.6-.5 5-.5 2.1 0 3.9 .3 5.6 1.1l0-18.4c-1.1 .5-2.2 1-2.7 1.4l-.7 .7zM79.9 305.9c17.2-4.6 16.2-18 16.2-19.9 0-20.6-24.1-25-37-25l-56.1 0 8.3 8.6 0 29.5-11.3 0 11.4 14.6 0 32.3-8.4 8.6c61.7 0 73.8 1.5 86.4-5.9 6.7-4 9.9-9.8 9.9-17.6 0-5.1 2.6-18.8-19.4-25.2zM38.6 278.4c20 0 29.6-.8 29.6 9.1l0 3c0 12.1-19 8.8-29.6 8.8l0-20.9zm0 59.2l0-22.6c12.2 0 32.7-2.3 32.7 8.8l0 4.5 .2 0c0 11.2-12.5 9.3-32.9 9.3zm101.2-19.3l23.1 .2 0-.2 14.1-21.2-37.2 0 0-14.9 52.4 0-14.1-21 0-.2-73.5 .2 7.4 8.2 0 77.1-7.4 8.2 81.2 0 14.1-21.2-60.1 .2 0-15.4zm214.7-60.1c-73.9 0-77.5 99.3-.3 99.3 77.9 0 74.1-99.3 .3-99.3zm-.3 77.5c-37.4 0-36.9-55.3 .2-55.3 36.8 .1 38.8 55.3-.2 55.3zm-91.3-8.3l44.1-66.2-41.7 0 6.1 7.2-20.5 37.2-.3 0-21-37.2 6.4-7.2-44.9 0 44.1 65.8 .2 19.4-7.7 8.2 42.6 0-7.2-8.2-.2-19zM234.5 176.1c1.6 1.3 2.9 2.4 2.9 6.6l0 38.8c0 4.2-.8 5.3-2.7 6.4-.1 .1-7.5 4.5-7.9 4.6l35.1 0c10 0 17.4-1.5 26-8.6-.6-5 .2-9.5 .8-12 0-.2-1.8 1.4-2.7 3.5 0-5.7 1.6-15.4 9.6-20.5-.1 0-3.7-.8-9 1.1 2-3.1 10-7.9 10.4-7.9-8.2-26-38-22.9-32.2-22.9-30.9 0-32.6 .3-39.9-4 .1 .8 .5 8.2 9.6 14.9zm21.5 5.5c4.6 0 23.1-3.3 23.1 17.3 0 20.7-18.4 17.3-23.1 17.3l0-34.6zm228.9 79.6l7 8.3 0 42.5-.3 0c-5.4-14.4-42.3-41.5-45.2-50.9l-31.6 0 7.4 8.5 0 76.9-7.2 8.3 39 0-7.4-8.2 0-47.4 .3 0c3.7 10.6 44.5 42.9 48.5 55.6l21.3 0 0-85.2 7.4-8.3-39.2-.1zM378.2 165.1c-32.2 0-32.8 .2-39.9-4 .1 .7 .5 8.3 9.6 14.9 3.1 2 2.9 4.3 2.9 9.5 1.8-1.1 3.8-2.2 6.1-3-1.1 1.1-2.7 2.7-3.5 4.5 1-1.1 7.5-5.1 14.6-3.5-1.6 .3-4 1.1-6.1 2.9 .1 0 2.1-1.1 7.5-.3l0-4.3c4.7 0 23.1-3.4 23.1 17.3 0 20.5-18.5 17.3-19.7 17.3 5.7 4.4 5.8 12 2.2 16.3l.3 0c33.4 0 36.7-27.3 36.7-34 0-3.8-1.1-32-33.8-33.6z\"],\n \"microsoft\": [448, 512, [], \"f3ca\", \"M0 32l214.6 0 0 214.6-214.6 0 0-214.6zm233.4 0l214.6 0 0 214.6-214.6 0 0-214.6zM0 265.4l214.6 0 0 214.6-214.6 0 0-214.6zm233.4 0l214.6 0 0 214.6-214.6 0 0-214.6z\"],\n \"fly\": [320, 512, [], \"f417\", \"M165.9 427.8c12.9 11.7 33.7 33.3 33.2 50.7 0 .8-.1 1.6-.1 2.5-1.8 19.8-18.8 31.1-39.1 31-25-.1-39.9-16.8-38.7-35.8 1-16.2 20.5-36.7 32.4-47.6 2.3-2.1 2.7-2.7 5.6-3.6 3.4 0 3.9 .3 6.7 2.8zM300 67.3c-16.3-25.7-38.6-40.6-63.3-52.1-25.5-10.7-54.6-15.4-76.6-15.2-44.1 0-71.2 13.2-81.1 17.3-53.6 27.9-84.4 69.9-82.9 141.3 7.1 82.2 97 176 155.8 233.8 1.7 1.6 4.5 4.5 6.2 5.1l3.3 .1c2.1-.7 1.8-.5 3.5-2.1 52.3-49.2 140.7-145.8 155.9-215.7 7-39.2 3.1-72.5-20.8-112.5zM154.9 351.9c-28-51.1-65.2-130.7-69.3-189-3.4-47.5 11.4-131.2 69.3-136.7l0 325.7zM296.8 180c-16.4 56.8-77.3 128-118.9 170.3 27.8-51.9 65.2-133.3 67.2-191.9 1.6-45.9-9.8-105.8-48-131.4 88.8 18.3 115.5 98.1 99.7 153z\"],\n \"cc-stripe\": [576, 512, [], \"f1f5\", \"M492.4 220.8c-8.9 0-18.7 6.7-18.7 22.7l36.7 0c0-16-9.3-22.7-18-22.7zM375 223.4c-8.2 0-13.3 2.9-17 7l.2 52.8c3.5 3.7 8.5 6.7 16.8 6.7 13.1 0 21.9-14.3 21.9-33.4 0-18.6-9-33.2-21.9-33.1zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM122.2 281.1c0 25.6-20.3 40.1-49.9 40.3-12.2 0-25.6-2.4-38.8-8.1l0-33.9c12 6.4 27.1 11.3 38.9 11.3 7.9 0 13.6-2.1 13.6-8.7 0-17-54-10.6-54-49.9 0-25.2 19.2-40.2 48-40.2 11.8 0 23.5 1.8 35.3 6.5l0 33.4c-10.8-5.8-24.5-9.1-35.3-9.1-7.5 0-12.1 2.2-12.1 7.7 0 16 54.3 8.4 54.3 50.7zM191 224.5l-27 0 0 50.5c0 20.9 22.5 14.4 27 12.6l0 28.9c-4.7 2.6-13.3 4.7-24.9 4.7-21.1 0-36.9-15.5-36.9-36.5l.2-113.9 34.7-7.4 0 30.8 26.9 0 0 30.3zm74 2.4c-4.5-1.5-18.7-3.6-27.1 7.4l0 84.4-35.5 0 0-124.5 30.7 0 2.2 10.5c8.3-15.3 24.9-12.2 29.6-10.5l.1 0 0 32.7zm44.1 91.8l-35.7 0 0-124.5 35.7 0 0 124.5zm0-142.9l-35.7 7.6 0-28.9 35.7-7.6 0 28.9zm74.1 145.5c-12.4 0-20-5.3-25.1-9l-.1 40.2-35.5 7.5 0-165.8 31.3 0 1.8 8.8c4.9-4.5 13.9-11.1 27.8-11.1 24.9 0 48.4 22.5 48.4 63.8 0 45.1-23.2 65.5-48.6 65.6zm160.4-51.5l-69.5 0c1.6 16.6 13.8 21.5 27.6 21.5 14.1 0 25.2-3 34.9-7.9l0 28.6c-9.7 5.3-22.4 9.2-39.4 9.2-34.6 0-58.8-21.7-58.8-64.5 0-36.2 20.5-64.9 54.3-64.9 33.7 0 51.3 28.7 51.3 65.1 0 3.5-.3 10.9-.4 12.9z\"],\n \"wordpress-simple\": [512, 512, [], \"f411\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM33 256c0-32.3 6.9-63 19.3-90.7L158.7 456.7C84.3 420.5 33 344.2 33 256zM256 479c-21.9 0-43-3.2-63-9.1l66.9-194.4 68.5 187.8c.5 1.1 1 2.1 1.6 3.1-23.1 8.1-48 12.6-74 12.6zm30.7-327.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-21.9 0-58.7-2.8-58.7-2.8-12-.7-13.4 17.7-1.4 18.4 0 0 11.4 1.4 23.4 2.1l34.7 95.2-48.8 146.3-81.2-241.5c13.4-.7 25.5-2.1 25.5-2.1 12-1.4 10.6-19.1-1.4-18.4 0 0-36.1 2.8-59.4 2.8-4.2 0-9.1-.1-14.4-.3 39.9-60.5 108.4-100.5 186.3-100.5 58 0 110.9 22.2 150.6 58.5-1-.1-1.9-.2-2.9-.2-21.9 0-37.4 19.1-37.4 39.6 0 18.4 10.6 33.9 21.9 52.3 8.5 14.8 18.4 33.9 18.4 61.5 0 19.1-7.3 41.2-17 72.1l-22.2 74.3-80.7-239.6zm81.4 297.2l68.1-196.9c12.7-31.8 17-57.2 17-79.9 0-8.2-.5-15.8-1.5-22.9 17.4 31.8 27.3 68.2 27.3 107 0 82.3-44.6 154.1-110.9 192.7z\"],\n \"sellsy\": [640, 512, [], \"f213\", \"M540 237.3c3.1-12.3 4.3-24.8 4.3-37.4 0-92.5-75.4-167.9-167.9-167.9-77.2 0-144.6 53-163 127.8-15.3-13.2-34.9-20.5-55.2-20.5-46.3 0-84 37.7-84 84 0 7.4 .9 15 3.1 22.4-42.9 20.2-70.8 63.7-70.8 111.2 0 68 55.5 123.2 123.2 123.2l381.2 0c67.7 0 123.2-55.2 123.2-123.2 0-56.4-38.9-106-94.1-119.5zM200.2 401.6c0 8.3-7 15.3-15.3 15.3l-30.9 0c-8.3 0-15.3-7-15.3-15.3l0-110.9c0-8.3 7-15.3 15.3-15.3l30.9 0c8.3 0 15.3 7 15.3 15.3l0 110.9zm89.5 0c0 8.3-7 15.3-15.3 15.3l-30.9 0c-8.3 0-15.3-7-15.3-15.3l0-131.5c0-8.3 7-15.3 15.3-15.3l30.9 0c8.3 0 15.3 7 15.3 15.3l0 131.5zm89.5 0c0 8.3-7 15.3-15.3 15.3l-31 0c-8.3 0-15.3-7-15.3-15.3l0-162.7c0-8.3 7-15.3 15.3-15.3l31 0c8.3 0 15.3 7 15.3 15.3l0 162.7zm87 0c0 8.3-7 15.3-15.3 15.3l-28.5 0c-8.3 0-15.3-7-15.3-15.3l0-224.6c0-8.6 7-15.6 15.3-15.6l28.5 0c8.3 0 15.3 7 15.3 15.6l0 224.6z\"],\n \"dashcube\": [448, 512, [], \"f210\", \"M326.9 104l-216.2 0c-51.1 0-91.2 43.3-91.2 93.5l0 229.5c0 50.5 40.1 85 91.2 85l227.2 0c51.1 0 91.2-34.5 91.2-85l0-427-102.2 104zM154.2 416.5c-17.7 0-32.4-15.1-32.4-32.8l0-142.9c0-17.7 14.7-32.5 32.4-32.5l140.7 0c17.7 0 32 14.8 32 32.5l0 123.5 51.1 52.3-223.8 0 0-.1z\"],\n \"gitter\": [384, 512, [], \"f426\", \"M66.4 322.5l-50.4 0 0-322.5 50.4 0 0 322.5zM166.9 76.1l-50.4 0 0 435.9 50.4 0 0-435.9zm100.6 0l-50.4 0 0 435.9 50.4 0 0-435.9zM368 76l-50.4 0 0 247 50.4 0 0-247z\"],\n \"wolf-pack-battalion\": [448, 512, [], \"f514\", \"M236.2 471.5l10.6 15.8 5.3-12.3 5.3 7 0 29.9c21.1-7.9 21.1-66.9 25.5-97.2 4.6-31.9-.9-92.8 81.4-149.1-8.9-23.6-12-49.4-2.6-80 27.9 3.4 53.9 10.6 63.3 54.1l-30.3 8.4c11.1 23 17 46.8 13.2 72.1l-27.3-7-6.2 33.4-18.5-7-8.8 33.4-19.4-7 26.4 21.1 8.8-28.2 24.6 5.2 7-35.6 26.4 14.5c.2-20 7-58.1-8.8-84.5l26.4 5.3c4-22.1-2.4-39.2-7.9-56.7l22.4 9.7c-.4-25.1-29.9-56.8-61.6-58.5-20.2-1.1-56.7-25.2-54.1-51.9 2-19.9 17.4-42.6 43.1-49.7-44 36.5-9.7 67.3 5.3 73.5 4.4-11.4 17.5-69.1 0-130.2-40.4 22.9-89.7 65.1-93.2 147.8l-58 38.7-3.5 93.2 107.3-59.8 7 7-17.6 3.5-44 38.7-15.8-5.3-28.1 49.3-3.5 119.6 21.1 15.8-32.5 15.8-32.6-15.8 21.1-15.8-3.5-119.6-28.2-49.3-15.8 5.3-44-38.7-17.6-3.5 7-7 107.3 59.8-3.5-93.3-58.1-38.7c-3.5-82.8-52.7-125-93.2-147.9-17.5 61.1-4.4 118.8 0 130.2 15-6.2 49.3-37 5.3-73.5 25.7 7.1 41.1 29.8 43.1 49.7 2.6 26.7-33.9 50.8-54.1 51.9-31.7 1.7-61.2 33.4-61.6 58.5l22.4-9.7C13.4 224.7 7 241.8 11 263.9l26.4-5.3c-15.8 26.4-9.1 64.4-8.8 84.4l26.4-14.5 7 35.6 24.6-5.3 8.8 28.2 26.4-21.1-19.4 7-8.8-33.4-18.5 7-6.2-33.4-27.3 7C38 294.8 43.8 271 55 248l-30.3-8.4c9.4-43.5 35.5-50.8 63.3-54.1 9.4 30.6 6.2 56.5-2.6 80.1 82.3 56.3 76.8 117.2 81.4 149.1 4.4 30.3 4.4 89.3 25.5 97.2l0-29.8 5.3-7 5.3 12.3 10.6-15.8 11.4 21.1 11.4-21.1 0 0zm79.2-95L299.5 366c7.5-4.4 13.8-8.4 19.4-12.3-.6 7.2-.3 13.8-3.5 22.8l0 0zm28.2-49.3c-.4 10.9-.9 21.7-1.8 31.7-7.8-1.9-15.6-3.8-21.1-7 8.2-7.9 15.6-16.3 22.9-24.7l0 0zm24.6 5.3c0-13.4-2.1-24.2-5.3-33.4-5.5 9.5-11.7 18.6-18.5 27.3l23.8 6.2zm3.5-80.9c19.4 12.8 27.8 33.7 29.9 56.3-12.3-4.5-24.6-9.3-37-10.6 5.1-12 6.6-28.1 7-45.7l0 0zm-1.8-45.7c.8 14.3 1.8 28.8 1.8 42.2 19.2-8.1 29.8-9.7 44-14.1-10.6-19-27.2-25.5-45.8-28.2l0 0zM134.2 376.5L150 366c-7.5-4.4-13.8-8.4-19.4-12.3 .6 7.3 .3 13.9 3.5 22.9l0 0zM106 327.3c.4 10.9 .9 21.7 1.8 31.7 7.8-1.9 15.6-3.8 21.1-7-8.2-7.9-15.6-16.3-22.9-24.7zm-24.6 5.3c0-13.4 2-24.2 5.3-33.4 5.5 9.5 11.7 18.6 18.5 27.3l-23.8 6.2zm-3.5-80.9c-19.4 12.8-27.8 33.7-29.9 56.3 12.3-4.5 24.6-9.3 37-10.6-5-12-6.6-28.1-7-45.7l-.1 0zm1.8-45.7c-.8 14.3-1.8 28.8-1.8 42.2-19.2-8.1-29.8-9.7-44-14.1 10.6-19 27.2-25.5 45.8-28.1z\"],\n \"lastfm\": [512, 512, [], \"f202\", \"M225.8 367.1l-18.8-51s-30.5 34-76.2 34c-40.5 0-69.2-35.2-69.2-91.5 0-72.1 36.4-97.9 72.1-97.9 66.5 0 74.8 53.3 100.9 134.9 18.8 56.9 54 102.6 155.4 102.6 72.7 0 122-22.3 122-80.9 0-72.9-62.7-80.6-115-92.1-25.8-5.9-33.4-16.4-33.4-34 0-19.9 15.8-31.7 41.6-31.7 28.2 0 43.4 10.6 45.7 35.8l58.6-7c-4.7-52.8-41.1-74.5-100.9-74.5-52.8 0-104.4 19.9-104.4 83.9 0 39.9 19.4 65.1 68 76.8 44.9 10.6 79.8 13.8 79.8 45.7 0 21.7-21.1 30.5-61 30.5-59.2 0-83.9-31.1-97.9-73.9-32-96.8-43.6-163-161.3-163-86.1 0-131.8 54.5-131.8 147.2 0 89.1 45.7 137.2 127.9 137.2 66.2 0 97.9-31.1 97.9-31.1z\"],\n \"shopware\": [512, 512, [], \"f5b5\", \"M403.5 455.4c-42.6 31.7-94.4 48.7-147.5 48.6-137.2 0-248-111-248-248 0-137.2 111-248 248-248 61.2-.1 120.2 22.6 165.7 63.5 .6 .5 .9 1.2 1.1 1.9s.1 1.5-.3 2.2-.8 1.3-1.5 1.6-1.4 .5-2.2 .4c-18.8-2.5-37.7-3.7-56.7-3.7-129.4 0-222.4 53.5-222.4 155.4 0 109 92.1 145.9 176.8 178.7 33.6 13 65.4 25.4 87 41.6 .4 .3 .8 .8 1.1 1.3s.4 1 .4 1.6-.1 1.1-.4 1.6-.6 .9-1.1 1.3l-.1 0zM503 233.1c-.1-.9-.5-1.8-1.3-2.4-51.8-43-93.6-60.5-144.5-60.5-84.1 0-80.3 52.2-80.3 53.6 0 42.6 52.1 62 112.3 84.5 31.1 11.6 63.2 23.6 92.7 39.9 .4 .2 .9 .4 1.4 .4s1 0 1.5-.2 .9-.4 1.3-.8 .6-.8 .8-1.2c14.1-36 19.5-74.8 16-113.3z\"],\n \"blogger\": [448, 512, [], \"f37c\", \"M162.4 196c4.8-4.9 6.2-5.1 36.4-5.1 27.2 0 28.1 .1 32.1 2.1 5.8 2.9 8.3 7 8.3 13.6 0 5.9-2.4 10-7.6 13.4-2.8 1.8-4.5 1.9-31.1 2.1-16.4 .1-29.5-.2-31.5-.8-10.3-2.9-14.1-17.7-6.6-25.3zm61.4 94.5c-53.9 0-55.8 .2-60.2 4.1-3.5 3.1-5.7 9.4-5.1 13.9 .7 4.7 4.8 10.1 9.2 12 2.2 1 14.1 1.7 56.3 1.2l47.9-.6 9.2-1.5c9-5.1 10.5-17.4 3.1-24.4-5.3-4.7-5-4.7-60.4-4.7zM447.2 420.6c-3.5 28.4-23 50.4-51.1 57.5-7.2 1.8-9.7 1.9-172.9 1.8-157.8 0-165.9-.1-172-1.8-8.4-2.2-15.6-5.5-22.3-10-5.6-3.8-13.9-11.8-17-16.4-3.8-5.6-8.2-15.3-10-22S0 420.3 0 256.3c0-163.1 0-166.6 1.8-173.7 6.3-24.7 25.9-43.6 51.2-49.2 7.3-1.6 332.1-1.9 340-.3 21.2 4.3 37.9 17.1 47.6 36.4 7.7 15.3 7-1.5 7.3 180.6 .2 115.8 0 164.5-.7 170.5zM361.8 235.4c-1.1-5-4.2-9.6-7.7-11.5-1.1-.6-8-1.3-15.5-1.7-12.4-.6-13.8-.8-17.8-3.1-6.2-3.6-7.9-7.6-8-18.3 0-20.4-8.5-39.4-25.3-56.5-12-12.2-25.3-20.5-40.6-25.1-3.6-1.1-11.8-1.5-39.2-1.8-42.9-.5-52.5 .4-67.1 6.2-27 10.7-46.3 33.4-53.4 62.4-1.3 5.4-1.6 14.2-1.9 64.3-.4 62.8 0 72.1 4 84.5 9.7 30.7 37.1 53.4 64.6 58.4 9.2 1.7 122.2 2.1 133.7 .5 20.1-2.7 35.9-10.8 50.7-25.9 10.7-10.9 17.4-22.8 21.8-38.5 3.2-10.9 2.9-88.4 1.7-93.9z\"],\n \"edge\": [512, 512, [], \"f282\", \"M120.1 37.4c41-25.2 87.6-38.2 134.9-37.4 168 0 257 123.8 257 219.5-.1 32.7-13 63.9-35.9 87.2-22.9 23.2-54 36.5-86.7 37-75.2 0-91.5-23.1-91.5-32 0-3.8 1.2-6.2 4.8-9.4l1-1.2 .4-1.6c10.5-11.5 15.9-26.2 15.9-41.6 0-78.7-82.2-142.7-184-142.7-37.5-.3-74.5 8.9-107.5 26.9 27-57.5 82.7-97.6 91.3-103.8 .8-.6 .3-.8 .3-.8zm15.6 318.1c-1.4 30 4.6 60 16.4 87.2 13.6 26.4 32.7 51 56.5 69.3-59.5-11.5-111.5-43.9-149.4-89.3-38.1-46.4-59.2-104.3-59.2-164.8 0-51.2 62.4-94.4 136-94.4 36.6-.6 72.4 10.9 101.8 32.7l-3.6 1.2c-51.5 17.6-98.5 90.7-98.5 158.1zM469.8 400l-.7 .1c-11.8 18.8-25.9 35.1-42.2 49.5-30.8 28-68.1 45.5-108.8 49.9-18.6 .3-36.8-3.2-53.8-11.4-25.6-10.3-47.1-30-61.6-53-14.4-23.9-21.1-51.7-19-79.6-.6-20.1 5.4-40.3 15-58.2 13.9 33.1 37.5 61.3 67.6 80.8s65.5 29.5 101.4 28.6c31 .3 62.1-6.7 90.2-20.5l1.9-.9c3.9-2.3 7.7-3.9 11.6 0 4.5 4.9 1.8 9.2-1.2 14-.2 .2-.3 .5-.4 .7z\"],\n \"ioxhost\": [640, 512, [], \"f208\", \"M616 160l-67.3 0C511.2 70.7 422.9 8 320 8 183 8 72 119 72 256 72 272.4 73.6 288.5 76.7 304L24 304c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24l67.3 0c37.5 89.3 125.8 152 228.7 152 137 0 248-111 248-248 0-16.4-1.6-32.5-4.7-48l52.7 0c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24zm-96 96c0 110.5-89.5 200-200 200-75.7 0-141.6-42-175.5-104L424 352c13.3 0 24-10.8 24-24 0-13.3-10.7-24-24-24l-298.2 0c-3.8-15.4-5.8-31.4-5.8-48 0-110.5 89.5-200 200-200 75.7 0 141.6 42 175.5 104L216 160c-13.3 0-24 10.8-24 24 0 13.3 10.7 24 24 24l298.2 0c3.8 15.4 5.8 31.4 5.8 48zM216 232l208 0c13.3 0 24 10.7 24 24 0 13.2-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24 0-13.2 10.7-24 24-24z\"],\n \"schlix\": [448, 512, [], \"f3ea\", \"M350.5 157.7l-54.2-46.1 73.4-39 78.3 44.2-97.5 40.9zM192 122.1l45.7-28.2 34.7 34.6-55.4 29-25-35.4zm-65.1 6.6l31.9-22.1 17.2 28.4-36.7 22.5-12.4-28.8zm-23.3 88.2l-8.8-34.8 29.6-18.3 13.1 35.3-33.9 17.8zM82.4 133.2l23.9-18.1 8.9 24-26.7 18.3-6.1-24.2zM59 206.5l-3.6-28.4 22.3-15.5 6.1 28.7-24.8 15.2zM28.4 223.1l20.8-12.8 3.3 33.4-22.9 12-1.2-32.6zM1.4 268L20.6 257.8 21 296 0 304.8 1.4 268zm59.1 59.3l-28.3 8.3-1.6-46.8 25.1-10.7 4.8 49.2zM99 263.2l-31.1 13-5.2-40.8 27.4-14.4 8.9 42.2zM123.2 377l-41.6 5.9-8.1-63.5 35.2-10.8 14.5 68.4zm28.5-139.9l21.2 57.1-46.2 13.6-13.7-54.1 38.7-16.6zm85.7 230.5l-70.9-3.3-24.3-95.8 55.2-8.6 40 107.7zM152.5 187.9l42.2-22.4 28 45.9-50.8 21.3-19.4-44.8zm41 94.9l61.3-18.7 52.8 86.6-79.8 11.3-34.3-79.2zm51.4-85.6l67.3-28.8 65.5 65.4-88.6 26.2-44.2-62.8z\"],\n \"d-and-d\": [576, 512, [], \"f38d\", \"M82.9 98.9c-.6-17.2 2-33.8 12.7-48.2 .3 7.4 1.2 14.5 4.2 21.6 5.9-27.5 19.7-49.3 42.3-65.5-1.9 5.9-3.5 11.8-3 17.7 8.7-7.4 18.8-17.8 44.4-22.7 14.7-2.8 29.7-2 42.1 1 38.5 9.3 61 34.3 69.7 72.3 5.3 23.1 .7 45-8.3 66.4-5.2 12.4-12 24.4-20.7 35.1-2-1.9-3.9-3.8-5.8-5.6-42.8-40.8-26.8-25.2-37.4-37.4-1.1-1.2-1-2.2-.1-3.6 8.3-13.5 11.8-28.2 10-44-1.1-9.8-4.3-18.9-11.3-26.2-14.5-15.3-39.2-15-53.5 .6-11.4 12.5-14.1 27.4-10.9 43.6 .2 1.3 .4 2.7 0 3.9-3.4 13.7-4.6 27.6-2.5 41.6 .1 .5 .1 1.1 .1 1.6 0 .3-.1 .5-.2 1.1-21.8-11-36-28.3-43.2-52.2-8.3 17.8-11.1 35.5-6.6 54.1-15.6-15.2-21.3-34.3-22-55.2zM552.5 222.1c-11.6-11.6-25-20.4-40.1-26.6-12.8-5.2-26-7.9-39.9-7.1-10 .6-19.6 3.1-29 6.4-2.5 .9-5.1 1.6-7.7 2.2-4.9 1.2-7.3-3.1-4.7-6.8 3.2-4.6 3.4-4.2 15-12 .6-.4 1.2-.8 2.2-1.5l-2.5 0c-.6 0-1.2 .2-1.9 .3-19.3 3.3-30.7 15.5-48.9 29.6-10.4 8.1-13.8 3.8-12-.5 1.4-3.5 3.3-6.7 5.1-10 1-1.8 2.3-3.4 3.5-5.1-.2-.2-.5-.3-.7-.5-27 18.3-46.7 42.4-57.7 73.3 .3 .3 .7 .6 1 .9 .3-.6 .5-1.2 .9-1.7 10.4-12.1 22.8-21.8 36.6-29.8 18.2-10.6 37.5-18.3 58.7-20.2 4.3-.4 8.7-.1 13.1-.1-1.8 .7-3.5 .9-5.3 1.1-18.5 2.4-35.5 9-51.5 18.5-30.2 17.9-54.5 42.2-75.1 70.4-.3 .4-.4 .9-.7 1.3 14.5 5.3 24 17.3 36.1 25.6 .2-.1 .3-.2 .4-.4l1.2-2.7c12.2-26.9 27-52.3 46.7-74.5 16.7-18.8 38-25.3 62.5-20 5.9 1.3 11.4 4.4 17.2 6.8 2.3-1.4 5.1-3.2 8-4.7 8.4-4.3 17.4-7 26.7-9 14.7-3.1 29.5-4.9 44.5-1.3l0-.5c-.5-.4-1.2-.8-1.7-1.4zM317.1 397.6c-39.4-33-22.8-19.5-42.7-35.6-.8 .9 0-.2-1.9 3-11.2 19.1-25.5 35.3-44 47.6-10.3 6.8-21.5 11.8-34.1 11.8-21.6 0-38.2-9.5-49.4-27.8-12-19.5-13.3-40.7-8.2-62.6 7.8-33.8 30.1-55.2 38.6-64.3-18.7-6.2-33 1.7-46.4 13.9 .8-13.9 4.3-26.2 11.8-37.3-24.3 10.6-45.9 25-64.8 43.9-.3-5.8 5.4-43.7 5.6-44.7 .3-2.7-.6-5.3-3-7.4-24.2 24.7-44.5 51.8-56.1 84.6 7.4-5.9 14.9-11.4 23.6-16.2-8.3 22.3-19.6 52.8-7.8 101.1 4.6 19 11.9 36.8 24.1 52.3 2.9 3.7 6.3 6.9 9.5 10.3 .2-.2 .4-.3 .6-.5-1.4-7-2.2-14.1-1.5-21.9 2.2 3.2 3.9 6 5.9 8.6 12.6 16 28.7 27.4 47.2 35.6 25 11.3 51.1 13.3 77.9 8.6 54.9-9.7 90.7-48.6 116-98.8 1-1.8 .6-2.9-.9-4.2zm172-46.4c-9.5-3.1-22.2-4.2-28.7-2.9 9.9 4 14.1 6.6 18.8 12 12.6 14.4 10.4 34.7-5.4 45.6-11.7 8.1-24.9 10.5-38.9 9.1-1.2-.1-2.3-.4-3-.6 2.8-3.7 6-7 8.1-10.8 9.4-16.8 5.4-42.1-8.7-56.1-2.1-2.1-4.6-3.9-7-5.9-.3 1.3-.1 2.1 .1 2.8 4.2 16.6-8.1 32.4-24.8 31.8-7.6-.3-13.9-3.8-19.6-8.5-19.5-16.1-39.1-32.1-58.5-48.3-5.9-4.9-12.5-8.1-20.1-8.7-4.6-.4-9.3-.6-13.9-.9-5.9-.4-8.8-2.8-10.4-8.4-.9-3.4-1.5-6.8-2.2-10.2-1.5-8.1-6.2-13-14.3-14.2-4.4-.7-8.9-1-13.3-1.5-13-1.4-19.8-7.4-22.6-20.3-5 11-1.6 22.4 7.3 29.9 4.5 3.8 9.3 7.3 13.8 11.2 4.6 3.8 7.4 8.7 7.9 14.8 .4 4.7 .8 9.5 1.8 14.1 2.2 10.6 8.9 18.4 17 25.1 16.5 13.7 33 27.3 49.5 41.1 17.9 15 13.9 32.8 13 56-.9 22.9 12.2 42.9 33.5 51.2 1 .4 2 .6 3.6 1.1-15.7-18.2-10.1-44.1 .7-52.3 .3 2.2 .4 4.3 .9 6.4 9.4 44.1 45.4 64.2 85 56.9 16-2.9 30.6-8.9 42.9-19.8 2-1.8 3.7-4.1 5.9-6.5-19.3 4.6-35.8 .1-50.9-10.6 .7-.3 1.3-.3 1.9-.3 21.3 1.8 40.6-3.4 57-17.4 19.5-16.6 26.6-42.9 17.4-66-8.3-20.1-23.6-32.3-43.8-38.9zM99.8 179.3c-5.3-9.2-13.2-15.6-22.1-21.3 13.7-.5 26.6 .2 39.6 3.7-7-12.2-8.5-24.7-5-38.7 5.3 11.9 13.7 20.1 23.6 26.8 19.7 13.2 35.7 19.6 46.7 30.2 3.4 3.3 6.3 7.1 9.6 10.9-.8-2.1-1.4-4.1-2.2-6-5-10.6-13-18.6-22.6-25-1.8-1.2-2.8-2.5-3.4-4.5-3.3-12.5-3-25.1-.7-37.6 1-5.5 2.8-10.9 4.5-16.3 .8-2.4 2.3-4.6 4-6.6 .6 6.9 0 25.5 19.6 46 10.8 11.3 22.4 21.9 33.9 32.7 9 8.5 18.3 16.7 25.5 26.8 1.1 1.6 2.2 3.3 3.8 4.7-5-13-14.2-24.1-24.2-33.8-9.6-9.3-19.4-18.4-29.2-27.4-3.3-3-4.6-6.7-5.1-10.9-1.2-10.4 0-20.6 4.3-30.2 .5-1 1.1-2 1.9-3.3 .5 4.2 .6 7.9 1.4 11.6 4.8 23.1 20.4 36.3 49.3 63.5 10 9.4 19.3 19.2 25.6 31.6 4.8 9.3 7.3 19 5.7 29.6-.1 .6 .5 1.7 1.1 2 6.2 2.6 10 6.9 9.7 14.3 7.7-2.6 12.5-8 16.4-14.5 4.2 20.2-9.1 50.3-27.2 58.7 .4-4.5 5-23.4-16.5-27.7-6.8-1.3-12.8-1.3-22.9-2.1 4.7-9 10.4-20.6 .5-22.4-24.9-4.6-52.8 1.9-57.8 4.6 8.2 .4 16.3 1 23.5 3.3-2 6.5-4 12.7-5.8 18.9-1.9 6.5 2.1 14.6 9.3 9.6 1.2-.9 2.3-1.9 3.3-2.7-3.1 17.9-2.9 15.9-2.8 18.3 .3 10.2 9.5 7.8 15.7 7.3-2.5 11.8-29.5 27.3-45.4 25.8 7-4.7 12.7-10.3 15.9-17.9-6.5 .8-12.9 1.6-19.2 2.4l-.3-.9c4.7-3.4 8-7.8 10.2-13.1 8.7-21.1-3.6-38-25-39.9-9.1-.8-17.8 .8-25.9 5.5 6.2-15.6 17.2-26.6 32.6-34.5-15.2-4.3-8.9-2.7-24.6-6.3 14.6-9.3 30.2-13.2 46.5-14.6-5.2-3.2-48.1-3.6-70.2 20.9 7.9 1.4 15.5 2.8 23.2 4.2-23.8 7-44 19.7-62.4 35.6 1.1-4.8 2.7-9.5 3.3-14.3 .6-4.5 .8-9.2 .1-13.6-1.5-9.4-8.9-15.1-19.7-16.3-7.9-.9-15.6 .1-23.3 1.3-.9 .1-1.7 .3-2.9 0 15.8-14.8 36-21.7 53.1-33.5 6-4.5 6.8-8.2 3-14.9zm128.4 26.8c3.3 16 12.6 25.5 23.8 24.3-4.6-11.3-12.1-19.5-23.8-24.3z\"],\n \"vuejs\": [448, 512, [], \"f41f\", \"M356.9 64.3l-76.9 0-56 88.6-48-88.6-176 0 224 383.7 224-383.7-91.1 0zM55.7 96.3l53.8 0 114.5 198.2 114.4-198.2 53.8 0-168.2 288.2-168.3-288.2z\"],\n \"meta\": [640, 512, [], \"e49b\", \"M640 317.9c0 91.3-39.4 148.5-110.3 148.5-62.6 0-95.8-34.6-156.9-136.6l-31.4-52.6c-8.3-12.5-14.5-24.2-21.2-35-20.1 33.8-47.1 83-47.1 83-67 116.6-104.6 141.2-156.9 141.2-72.8 0-116.2-57.3-116.2-145.9 0-143 79.8-278.1 183.9-278.1 50.2 0 93.8 24.7 144.8 89.5 37.1-50.1 78.1-89.5 130.6-89.5 99.1 0 180.7 125.7 180.7 275.5zM287.4 192.2c-42.9-62.1-70.9-80.5-104.4-80.5-61.9 0-113.8 106.1-113.8 210 0 48.5 18.5 75.7 49.6 75.7 30.2 0 49-19 103.2-103.8 0 0 24.7-39.1 65.4-101.4zM531.2 397.4c32.2 0 46.9-27.5 46.9-74.9 0-124.2-54.3-225.4-123.2-225.4-33.2 0-61.1 25.9-94.9 78 9.4 13.8 19.1 29 29.3 45.4l37.5 62.4c58.7 94.1 73.5 114.5 104.4 114.5z\"],\n \"creative-commons-share\": [512, 512, [], \"f4f2\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm101 132.4c7.8 0 13.7 6.1 13.7 13.7l0 182.5c0 7.7-6.1 13.7-13.7 13.7l-135.1 0c-7.7 0-13.7-6-13.7-13.7l0-54-54 0c-7.8 0-13.7-6-13.7-13.7l0-182.5c0-8.2 6.6-12.7 12.4-13.7l136.4 0c7.7 0 13.7 6 13.7 13.7l0 54 54 0zM167.9 300.3l40.7 0 0-101.4c0-7.4 5.8-12.6 12-13.7l55.8 0 0-40.3-108.5 0 0 155.4zm176.2-88.1l-108.5 0 0 155.4 108.5 0 0-155.4z\"],\n \"studiovinari\": [512, 512, [], \"f3f8\", \"M480.7 187.7l4.2 28 0 28-25.1 44.1-39.8 78.4-56.1 67.5-79.1 37.8-17.7 24.5-7.7 12-9.6 4s17.3-63.6 19.4-63.6 20.3 .7 20.3 .7l66.7-38.6-92.5 26.1-55.9 36.8-22.8 28-6.6 1.4 20.8-73.6 6.9-5.5 20.7 12.9 88.3-45.2 56.8-51.5 14.8-68.4-125.4 23.3 15.2-18.2-173.4-53.3 81.9-10.5-166-122.9 114.9 18.1-101.3-108 252.9 126.6-31.5-38 124.4 74.4-143.3-99 18.7 38.4-49.6-18.1-45.5-84.3 194.6 122-42.9-55.8 108 96.4 12-8.9-21-16.4 4.2-37.8 37.8-10.4 29.2 24.7 11.5 4.2-7 6.2 8.5 12-13.1 7.4-10.3 20.2 10.5 23.9z\"],\n \"bitbucket\": [512, 512, [61810], \"f171\", \"M22.2 32c-2.1 0-4.2 .4-6.1 1.1s-3.7 1.9-5.2 3.4-2.7 3.2-3.5 5.1-1.3 4-1.3 6.1c0 .9 .1 1.9 .2 2.8L74.1 462.7c.8 5.1 3.4 9.7 7.3 13s8.8 5.2 14 5.2l325.7 0c3.8 .1 7.5-1.3 10.5-3.7s4.9-5.9 5.5-9.7L505 50.7c.7-4.2-.3-8.4-2.8-11.9s-6.2-5.7-10.4-6.4c-.9-.1-1.9-.2-2.8-.2L22.2 32zM308.1 329.8l-104 0-28.1-147 157.3 0-25.2 147z\"],\n \"vk\": [448, 512, [], \"f189\", \"M31.5 63.5C0 95 0 145.7 0 247L0 265C0 366.3 0 417 31.5 448.5S113.7 480 215 480l17.9 0c101.4 0 152.1 0 183.5-31.5S448 366.3 448 265l0-17.9c0-101.4 0-152.1-31.5-183.5S334.3 32 233 32L215 32C113.7 32 63 32 31.5 63.5zM75.6 168.3l51.1 0c1.7 85.5 39.4 121.7 69.3 129.2l0-129.2 48.2 0 0 73.7c29.5-3.2 60.5-36.8 70.9-73.7l48.2 0c-3.9 19.2-11.8 37.3-23.1 53.3s-25.7 29.5-42.5 39.6c18.7 9.3 35.2 22.4 48.4 38.5s22.9 34.9 28.3 55l-53 0c-4.9-17.5-14.8-33.1-28.6-45s-30.7-19.4-48.7-21.6l0 66.6-5.8 0c-102.1 0-160.3-70-162.8-186.5z\"],\n \"github\": [512, 512, [], \"f09b\", \"M173.9 397.4c0 2-2.3 3.6-5.2 3.6-3.3 .3-5.6-1.3-5.6-3.6 0-2 2.3-3.6 5.2-3.6 3-.3 5.6 1.3 5.6 3.6zm-31.1-4.5c-.7 2 1.3 4.3 4.3 4.9 2.6 1 5.6 0 6.2-2s-1.3-4.3-4.3-5.2c-2.6-.7-5.5 .3-6.2 2.3zm44.2-1.7c-2.9 .7-4.9 2.6-4.6 4.9 .3 2 2.9 3.3 5.9 2.6 2.9-.7 4.9-2.6 4.6-4.6-.3-1.9-3-3.2-5.9-2.9zM252.8 8c-138.7 0-244.8 105.3-244.8 244 0 110.9 69.8 205.8 169.5 239.2 12.8 2.3 17.3-5.6 17.3-12.1 0-6.2-.3-40.4-.3-61.4 0 0-70 15-84.7-29.8 0 0-11.4-29.1-27.8-36.6 0 0-22.9-15.7 1.6-15.4 0 0 24.9 2 38.6 25.8 21.9 38.6 58.6 27.5 72.9 20.9 2.3-16 8.8-27.1 16-33.7-55.9-6.2-112.3-14.3-112.3-110.5 0-27.5 7.6-41.3 23.6-58.9-2.6-6.5-11.1-33.3 2.6-67.9 20.9-6.5 69 27 69 27 20-5.6 41.5-8.5 62.8-8.5s42.8 2.9 62.8 8.5c0 0 48.1-33.6 69-27 13.7 34.7 5.2 61.4 2.6 67.9 16 17.7 25.8 31.5 25.8 58.9 0 96.5-58.9 104.2-114.8 110.5 9.2 7.9 17 22.9 17 46.4 0 33.7-.3 75.4-.3 83.6 0 6.5 4.6 14.4 17.3 12.1 100-33.2 167.8-128.1 167.8-239 0-138.7-112.5-244-251.2-244zM105.2 352.9c-1.3 1-1 3.3 .7 5.2 1.6 1.6 3.9 2.3 5.2 1 1.3-1 1-3.3-.7-5.2-1.6-1.6-3.9-2.3-5.2-1zm-10.8-8.1c-.7 1.3 .3 2.9 2.3 3.9 1.6 1 3.6 .7 4.3-.7 .7-1.3-.3-2.9-2.3-3.9-2-.6-3.6-.3-4.3 .7zm32.4 35.6c-1.6 1.3-1 4.3 1.3 6.2 2.3 2.3 5.2 2.6 6.5 1 1.3-1.3 .7-4.3-1.3-6.2-2.2-2.3-5.2-2.6-6.5-1zm-11.4-14.7c-1.6 1-1.6 3.6 0 5.9s4.3 3.3 5.6 2.3c1.6-1.3 1.6-3.9 0-6.2-1.4-2.3-4-3.3-5.6-2z\"],\n \"codiepie\": [512, 512, [], \"f284\", \"M442.5 202.9c30.7 0 33.5 53.1-.3 53.1l-10.8 0 0 44.3-26.6 0 0-97.4 37.7 0zM492 352.6C449.9 444.5 370.4 504 268 504 131 504 20 393 20 256S131 8 268 8c97.4 0 172.8 53.7 218.2 138.4L300.2 255.2 492 352.6zm-38.5 12.5l-60.3-30.7c-27.1 44.3-70.4 71.4-122.4 71.4-82.5 0-149.2-66.7-149.2-148.9 0-82.5 66.7-149.2 149.2-149.2 48.4 0 88.9 23.5 116.9 63.4l59.5-34.6C406.5 73.9 342.5 36.5 268 36.5 146.8 36.5 48.5 134.8 48.5 256S146.8 475.5 268 475.5c78.6 0 146.5-42.1 185.5-110.4z\"],\n \"pied-piper\": [448, 512, [], \"f2ae\", \"M440.2 23.2c-26.7 6.8-68.1 28.5-114.6 67.5-30.9-17.5-65.8-26.7-101.4-26.7-114.9 0-208 93.1-208 208s93.1 208 208 208 208-93.1 208-208c.1-54.1-21-106.1-58.7-144.8-6.6 8.5-12.3 17.7-17 27.4 28.9 32.3 44.8 74.1 44.9 117.4 0 97.7-79.4 177.1-177.1 177.1-30.8 0-61-8.1-87.6-23.4 82.9-107.3 150.8-37.8 184.3-226.6 5.8-32.6 28-94.3 126.2-160.2 8.1-5.4 2.4-18.1-7-15.7zM109.3 406.4C89.8 389.8 74.2 369.2 63.5 346s-16.3-48.5-16.3-74c0-97.7 79.4-177.1 177.1-177.1 26.6 0 52.8 6.1 76.6 17.8-66 62.1-126.9 152.9-191.6 293.8z\"],\n \"raspberry-pi\": [448, 512, [], \"f7bb\", \"M392.5 232.5l-3.7-6.5c.1-46.4-21.4-65.3-46.5-79.7 7.6-2 15.4-3.6 17.6-13.2 13.1-3.3 15.8-9.4 17.1-15.8 3.4-2.3 14.8-8.7 13.6-19.7 6.4-4.4 10-10.1 8.1-18.1 6.9-7.5 8.7-13.7 5.8-19.4 8.3-10.3 4.6-15.6 1.1-20.9 6.2-11.2 .7-23.2-16.6-21.2-6.9-10.1-21.9-7.8-24.2-7.8-2.6-3.2-6-6-16.5-4.7-6.8-6.1-14.4-5-22.3-2.1-9.3-7.3-15.5-1.4-22.6 .8-11.3-3.6-13.9 1.3-19.4 3.4-12.3-2.6-16.1 3-22 8.9l-6.9-.1c-18.6 10.8-27.8 32.8-31.1 44.1-3.3-11.3-12.5-33.3-31.1-44.1l-6.9 .1c-5.9-5.9-9.7-11.5-22-8.9-5.6-2-8.1-7-19.4-3.4-4.6-1.4-8.9-4.4-13.9-4.3-2.6 .1-5.5 1-8.7 3.5-7.9-3-15.5-4-22.3 2.1-10.5-1.3-14 1.4-16.5 4.7-2.3 0-17.3-2.3-24.2 7.8-17.3-2-22.7 10-16.5 21.2-3.5 5.4-7.2 10.7 1.1 20.9-2.9 5.7-1.1 11.9 5.8 19.4-1.8 8 1.8 13.7 8.1 18.1-1.2 11 10.2 17.4 13.6 19.7 1.3 6.4 4 12.4 17.1 15.8 2.2 9.5 10 11.2 17.6 13.2-25.1 14.4-46.6 33.3-46.5 79.7l-3.7 6.5c-28.8 17.2-54.7 72.7-14.2 117.7 2.6 14.1 7.1 24.2 11 35.4 5.9 45.2 44.5 66.3 54.6 68.8 14.9 11.2 30.8 21.8 52.2 29.2 20.3 20.6 42.3 28.4 64.3 28.4l1 0c22.1 0 44-7.8 64.2-28.4 21.5-7.4 37.3-18 52.2-29.2 10.2-2.5 48.7-23.6 54.6-68.8 3.9-11.2 8.4-21.3 11-35.4 40.6-45.1 14.7-100.5-14-117.7zm-22.2-8c-1.5 18.7-98.9-65.1-82.1-67.9 45.7-7.5 83.6 19.2 82.1 67.9zm-43 93.1c-24.5 15.8-59.8 5.6-78.8-22.8s-14.6-64.2 9.9-80 59.8-5.6 78.8 22.8 14.6 64.2-9.9 80zM259.4 29.3c.8 4.2 1.8 6.8 2.9 7.6 5.4-5.8 9.8-11.7 16.8-17.3 0 3.3-1.7 6.8 2.5 9.4 3.7-5 8.8-9.5 15.5-13.3-3.2 5.6-.6 7.3 1.2 9.6 5.1-4.4 10-8.8 19.4-12.3-2.6 3.1-6.2 6.2-2.4 9.8 5.3-3.3 10.6-6.6 23.1-8.9-2.8 3.1-8.7 6.3-5.1 9.4 6.6-2.5 14-4.4 22.1-5.4-3.9 3.2-7.1 6.3-3.9 8.8 7.1-2.2 16.9-5.1 26.4-2.6l-6 6.1c-.7 .8 14.1 .6 23.9 .8-3.6 5-7.2 9.7-9.3 18.2 1 1 5.8 .4 10.4 0-4.7 9.9-12.8 12.3-14.7 16.6 2.9 2.2 6.8 1.6 11.2 .1-3.4 6.9-10.4 11.7-16 17.3 1.4 1 3.9 1.6 9.7 .9-5.2 5.5-11.4 10.5-18.8 15 1.3 1.5 5.8 1.5 10 1.6-6.7 6.5-15.3 9.9-23.4 14.2 4 2.7 6.9 2.1 10 2.1-5.7 4.7-15.4 7.1-24.4 10 1.7 2.7 3.4 3.4 7.1 4.1-9.5 5.3-23.2 2.9-27 5.6 .9 2.7 3.6 4.4 6.7 5.8-15.4 .9-57.3-.6-65.4-32.3 15.7-17.3 44.4-37.5 93.7-62.6-38.4 12.8-73 30-102 53.5-34.3-15.9-10.8-55.9 5.8-71.8zM225 143.9c24.2-.3 54.1 17.8 54 34.7-.1 15-21 27.1-53.8 26.9-32.1-.4-53.7-15.2-53.6-29.8 0-11.9 26.2-32.5 53.4-31.8zM102 131.1c3.7-.7 5.4-1.5 7.1-4.1-9-2.8-18.7-5.3-24.4-10 3.1 0 6 .7 10-2.1-8.1-4.3-16.7-7.7-23.4-14.2 4.2-.1 8.7 0 10-1.6-7.4-4.5-13.6-9.5-18.8-15 5.8 .7 8.3 .1 9.7-.9-5.6-5.6-12.7-10.4-16-17.3 4.3 1.5 8.3 2 11.2-.1-1.9-4.2-10-6.7-14.7-16.6 4.6 .4 9.4 1 10.4 0-2.1-8.5-5.8-13.3-9.3-18.2 9.8-.1 24.6 0 23.9-.8l-6-6.1c9.5-2.5 19.3 .4 26.4 2.6 3.2-2.5-.1-5.6-3.9-8.8 8.1 1.1 15.4 2.9 22.1 5.4 3.5-3.1-2.3-6.3-5.1-9.4 12.5 2.3 17.8 5.6 23.1 8.9 3.8-3.6 .2-6.7-2.4-9.8 9.4 3.4 14.3 7.9 19.4 12.3 1.7-2.3 4.4-4 1.2-9.6 6.7 3.8 11.8 8.3 15.5 13.3 4.1-2.6 2.5-6.2 2.5-9.4 7 5.6 11.4 11.5 16.8 17.3 1.1-.8 2-3.4 2.9-7.6 16.6 15.9 40.1 55.9 6 71.8-29-23.5-63.6-40.7-102-53.5 49.3 25 78 45.3 93.7 62.6-8 31.8-50 33.2-65.4 32.3 3.1-1.4 5.8-3.2 6.7-5.8-4-2.8-17.6-.4-27.2-5.6zm60.1 24.1c16.8 2.8-80.6 86.5-82.1 67.9-1.5-48.7 36.5-75.5 82.1-67.9zM58.7 342c-23.7-18.8-31.3-73.7 12.6-98.3 26.5-7 9 107.8-12.6 98.3zm91 98.2c-13.3 7.9-45.8 4.7-68.8-27.9-15.5-27.4-13.5-55.2-2.6-63.4 16.3-9.8 41.5 3.4 60.9 25.6 16.9 20 24.6 55.3 10.5 65.7zM123.3 320.5c-24.5-15.8-28.9-51.6-9.9-80s54.3-38.6 78.8-22.8 28.9 51.6 9.9 80c-19.1 28.4-54.4 38.6-78.8 22.8zM225.5 496c-29.4 1.2-58.2-23.7-57.8-32.3-.4-12.7 35.8-22.6 59.3-22 23.7-1 55.6 7.5 55.7 18.9 .5 11-28.8 35.9-57.2 35.4zm58.9-124.9c.2 29.7-26.2 53.8-58.8 54s-59.2-23.8-59.4-53.4l0-.6c-.2-29.7 26.2-53.8 58.8-54s59.2 23.8 59.4 53.4l0 .6zm82.2 42.7c-25.3 34.6-59.6 35.9-72.3 26.3-13.3-12.4-3.2-50.9 15.1-72 20.9-23.3 43.3-38.5 58.9-26.6 10.5 10.3 16.7 49.1-1.7 72.3zm22.9-73.2c-21.5 9.4-39-105.3-12.6-98.3 43.9 24.7 36.3 79.6 12.6 98.3z\"],\n \"css3\": [512, 512, [], \"f13c\", \"M480 32l-64 368-223.3 80-192.7-80 19.6-94.8 82 0-8 40.6 116.4 44.4 134.1-44.4 18.8-97.1-333.4 0 16-82 333.7 0 10.5-52.7-333.4 0 16.3-82 407.4 0z\"],\n \"hubspot\": [448, 512, [], \"f3b2\", \"M235.8 211.6c-25.1 23.7-40.8 57.3-40.8 94.6 0 29.3 9.7 56.3 26 78L171.5 434c-4.4-1.6-9.1-2.5-14-2.5-10.8 0-20.9 4.2-28.5 11.8s-11.8 17.8-11.8 28.6 4.2 20.9 11.8 28.5 17.8 11.6 28.5 11.6c10.8 0 20.9-3.9 28.6-11.6 7.6-7.6 11.8-17.8 11.8-28.5 0-4.2-.6-8.2-1.9-12.1l50-50.2c22 16.9 49.4 26.9 79.3 26.9 71.9 0 130-58.3 130-130.2 0-65.2-47.7-119.2-110.2-128.7l0-61.6c17.5-7.4 28.2-23.8 28.2-42.9 0-26.1-20.9-47.9-47-47.9S279.6 47 279.6 73.1c0 19.1 10.7 35.5 28.2 42.9l0 61.2c-15.2 2.1-29.6 6.7-42.7 13.6-27.6-20.9-117.5-85.7-168.9-124.8 1.2-4.4 2-9 2-13.8 0-28.8-23.5-52.2-52.4-52.2-28.8 0-52.2 23.4-52.2 52.2 0 28.9 23.4 52.3 52.2 52.3 9.8 0 18.9-2.9 26.8-7.6L235.8 211.6zm89.5 25.6a69 69 0 1 1 0 138 69 69 0 1 1 0-138z\"],\n \"cmplid\": [640, 512, [], \"e360\", \"M226.1 388.2c0-.7-.2-1.5-.6-2.1s-1-1.1-1.7-1.4c-.5-.2-1.1-.4-1.6-.4l-149.6 0c-3.1 0-6.2-.8-8.9-2.2s-5.1-3.5-6.9-6.1-2.9-5.5-3.3-8.6 0-6.2 1.1-9.1L81.6 255.7c2-7.2 6.2-13.5 12-18.2s12.9-7.4 20.4-7.8l148.6 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6l10.8-41.1c.4-1 .3-2-.1-2.9s-1.2-1.6-2.1-2c-.4-.2-.9-.3-1.4-.3-.1 0-.1 0-.2 0l-148.5 0c-22.2 1.2-43.4 9.2-60.8 23s-30 32.7-36.2 54.1L3.5 358.8c-3.2 8.7-4.2 18-3 27.1s4.6 17.9 9.9 25.5 12.3 13.8 20.5 18 17.3 6.5 26.5 6.6c1 0 1.9 0 2.9-.1l148.6 0c1.5-.1 2.9-.7 4-1.6s2-2.2 2.4-3.6l10.7-41.1c.2-.5 .3-.9 .3-1.4zm80.5-307c.2-.4 .3-.9 .3-1.4 0-.5-.1-1-.3-1.5s-.5-.9-.8-1.2-.8-.6-1.2-.8-1-.3-1.5-.3l-41.2 0c-1.5 .1-2.9 .6-4 1.6s-2 2.2-2.4 3.6l-21.3 80.9 51.1 0 21.4-80.9zm-126.3 287l51.1 0 32-122.6-51.1 0-32 122.6zM511.9 79.7c0-1-.5-1.9-1.2-2.6s-1.7-1.1-2.6-1.1c-.1 0-.1 0-.2 0l-41 0c-1.5 .1-2.9 .6-4.1 1.5s-2 2.2-2.5 3.6L368.9 430.6c-.2 .4-.3 .9-.3 1.3 0 1 .4 2 1.1 2.7s1.7 1.1 2.7 1.1l41.2 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6L511.5 81.2c.2-.5 .3-1 .3-1.5zM324.6 384.5l-41 0c-1.5 .1-2.9 .7-4 1.6s-2 2.2-2.4 3.6l-10.7 41.1c-.2 .4-.3 .9-.3 1.4 0 .5 .1 1 .3 1.5s.5 .9 .8 1.2 .8 .6 1.2 .8 1 .3 1.5 .3c.1 0 .2 0 .3 0l40.9 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6l10.8-41.1c.2-.6 .3-1.2 .3-1.8s-.3-1.2-.6-1.7-.8-.9-1.3-1.2-1.2-.4-1.8-.4c-.1 0-.2 0-.3 0l0 0zM636 76.1l-41 0c-1.5 .1-2.9 .6-4 1.5s-2 2.2-2.4 3.6L497.1 430.6c-.2 .4-.2 .9-.2 1.3 0 1 .4 2 1.1 2.7s1.7 1.1 2.7 1.1l41.1 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6L639.7 81.2c.2-.5 .3-1 .3-1.5-.1-1-.5-1.9-1.2-2.5s-1.6-1-2.6-1c-.1 0-.1 0-.2 0l0-.1zM371.6 225.2l10.8-41.1c.2-.4 .2-.9 .2-1.4 0-1-.4-2-1.1-2.7s-1.7-1.1-2.7-1.1l-41.3 0c-1.5 .1-2.9 .7-4 1.6s-2 2.2-2.4 3.6l-10.8 41.1c-.2 .5-.3 1-.3 1.5l0 .2c.1 1 .5 1.8 1.2 2.5s1.6 1 2.6 1c.1 0 .2 0 .3 0l41.1 0c1.5-.1 2.9-.6 4-1.6s2-2.2 2.4-3.6z\"],\n \"dyalog\": [448, 512, [], \"f399\", \"M16 32l0 119.2 64 0 0-55.2 107.2 0C300.6 96 368 176.2 368 255.9 368 332 309.4 416 187.2 416l-171.2 0 0 64 171.2 0C347.9 480 432 367.3 432 255.9 432 197.2 409.9 142.5 369.7 101.6 324.9 56 261.7 32 187.2 32L16 32z\"],\n \"elementor\": [512, 512, [], \"f430\", \"M.5 256c0 141 113.6 255 254.6 255 142 0 256-114 256-255 0-140-114-253.9-256-253.9-141 0-254.6 113.9-254.6 253.9zM192.1 150l0 213-43 0 0-213 43 0zm42 0l128 0 0 43-128 0 0-43zm128 85l0 43-128 0 0-43 128 0zm-128 85l128 0 0 43-128 0 0-43z\"],\n \"first-order\": [448, 512, [], \"f2b0\", \"M13.3 229.2c.1-.1 .2-.3 .3-.4 0 .1 0 .3-.1 .4l-.2 0zM224.4 96.6c-7.1 0-14.6 .6-21.4 1.7l3.7 67.4-22-64c-14.3 3.7-27.7 9.4-40 16.6l29.4 61.4-45.1-50.9c-11.4 8.9-21.7 19.1-30.6 30.9l50.6 45.4-61.1-29.7c-7.1 12.3-12.9 25.7-16.6 40l64.3 22.6-68-4c-.9 7.1-1.4 14.6-1.4 22s.6 14.6 1.4 21.7l67.7-4-64 22.6c3.7 14.3 9.4 27.7 16.6 40.3L149 306.9 98.1 352c8.9 11.7 19.1 22.3 30.9 30.9l44.9-50.9-29.5 61.4c12.3 7.4 25.7 13.1 40 16.9l22.3-64.6-4 68c7.1 1.1 14.6 1.7 21.7 1.7 7.4 0 14.6-.6 21.7-1.7l-4-68.6 22.6 65.1c14.3-4 27.7-9.4 40-16.9l-29.4-61.3 44.9 50.9c11.7-8.9 22-19.1 30.6-30.9l-50.6-45.1 61.1 29.4c7.1-12.3 12.9-25.7 16.6-40.3l-64-22.3 67.4 4c1.1-7.1 1.4-14.3 1.4-21.7s-.3-14.9-1.4-22l-67.7 4 64-22.3c-3.7-14.3-9.1-28-16.6-40.3l-60.9 29.7 50.6-45.4c-8.9-11.7-19.1-22-30.6-30.9l-45.1 50.9 29.4-61.1c-12.3-7.4-25.7-13.1-40-16.9l-22.3 64.3 4-67.7c-7.1-1.2-14.3-1.7-21.7-1.7zM443.8 128L443.8 384 224.4 512 5 384 5 128 224.4 0 443.8 128zm-17.1 10.3l-202.3-117.4-202.3 117.4 0 235.1 202.3 117.7 202.3-117.7 0-235.1zM224.4 37.1l187.7 109.4 0 218.9-187.7 109.5-187.7-109.5 0-218.8 187.7-109.5zm0 50.9c-92.3 0-166.9 75.1-166.9 168 0 92.6 74.6 167.7 166.9 167.7 92 0 166.9-75.1 166.9-167.7 0-92.9-74.9-168-166.9-168z\"],\n \"dribbble\": [512, 512, [], \"f17d\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM420 122.4c29.5 36 47.4 82 47.8 132-7-1.5-77-15.7-147.5-6.8-5.8-14-11.2-26.4-18.6-41.6 78.3-32 113.8-77.5 118.3-83.5zM396.4 97.9c-3.8 5.4-35.7 48.3-111 76.5-34.7-63.8-73.2-116.2-79-124 67.2-16.2 138 1.3 190.1 47.5zM165.9 64.6c5.6 7.7 43.4 60.1 78.5 122.5-99.1 26.3-186.4 25.9-195.8 25.8 13.7-65.7 58-120.4 117.3-148.3zM44.2 256.3c0-2.2 0-4.3 .1-6.5 9.3 .2 111.9 1.5 217.7-30.1 6.1 11.9 11.9 23.9 17.2 35.9-76.6 21.6-146.2 83.5-180.5 142.3-33.8-37.6-54.5-87.2-54.5-141.6zM126 423.4c22.1-45.2 82.2-103.6 167.6-132.8 29.7 77.3 42 142.1 45.2 160.6-68.1 29-150 21.1-212.8-27.9zm248.4 8.5c-2.2-12.9-13.4-74.9-41.2-151 66.4-10.6 124.7 6.8 131.9 9.1-9.4 58.9-43.3 109.8-90.8 142z\"],\n \"linkedin\": [448, 512, [], \"f08c\", \"M416 32L31.9 32C14.3 32 0 46.5 0 64.3L0 447.7C0 465.5 14.3 480 31.9 480L416 480c17.6 0 32-14.5 32-32.3l0-383.4C448 46.5 433.6 32 416 32zM135.4 416l-66.4 0 0-213.8 66.5 0 0 213.8-.1 0zM102.2 96a38.5 38.5 0 1 1 0 77 38.5 38.5 0 1 1 0-77zM384.3 416l-66.4 0 0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2z\"],\n \"cc-paypal\": [576, 512, [], \"f1f4\", \"M186.3 258.2c0 12.2-9.7 21.5-22 21.5-9.2 0-16-5.2-16-15 0-12.2 9.5-22 21.7-22 9.3 0 16.3 5.7 16.3 15.5zM80.5 209.7l-4.7 0c-1.5 0-3 1-3.2 2.7l-4.3 26.7 8.2-.3c11 0 19.5-1.5 21.5-14.2 2.3-13.4-6.2-14.9-17.5-14.9zm284 0l-4.5 0c-1.8 0-3 1-3.2 2.7l-4.2 26.7 8-.3c13 0 22-3 22-18-.1-10.6-9.6-11.1-18.1-11.1zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM128.3 215.4c0-21-16.2-28-34.7-28l-40 0c-2.5 0-5 2-5.2 4.7L32 294.2c-.3 2 1.2 4 3.2 4l19 0c2.7 0 5.2-2.9 5.5-5.7l4.5-26.6c1-7.2 13.2-4.7 18-4.7 28.6 0 46.1-17 46.1-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.2 8.2-5.8-8.5-14.2-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9 0 20.2-4.9 26.5-11.9-.5 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.2 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM253 322.1l63.7-92.6c.5-.5 .5-1 .5-1.7 0-1.7-1.5-3.5-3.2-3.5l-19.2 0c-1.7 0-3.5 1-4.5 2.5l-26.5 39-11-37.5c-.8-2.2-3-4-5.5-4l-18.7 0c-1.7 0-3.2 1.8-3.2 3.5 0 1.2 19.5 56.8 21.2 62.1-2.7 3.8-20.5 28.6-20.5 31.6 0 1.8 1.5 3.2 3.2 3.2l19.2 0c1.8-.1 3.5-1.1 4.5-2.6zM412.3 215.4c0-21-16.2-28-34.7-28l-39.7 0c-2.7 0-5.2 2-5.5 4.7l-16.2 102c-.2 2 1.3 4 3.2 4l20.5 0c2 0 3.5-1.5 4-3.2l4.5-29c1-7.2 13.2-4.7 18-4.7 28.4 0 45.9-17 45.9-45.8zm84.2 8.8l-19 0c-3.8 0-4 5.5-4.3 8.2-5.5-8.5-14-10-23.7-10-24.5 0-43.2 21.5-43.2 45.2 0 19.5 12.2 32.2 31.7 32.2 9.3 0 20.5-4.9 26.5-11.9-.3 1.5-1 4.7-1 6.2 0 2.3 1 4 3.2 4l17.3 0c2.7 0 5-2.9 5.5-5.7l10.2-64.3c.3-1.9-1.2-3.9-3.2-3.9zM544 190.9c0-2-1.5-3.5-3.2-3.5l-18.5 0c-1.5 0-3 1.2-3.2 2.7l-16.2 104-.3 .5c0 1.8 1.5 3.5 3.5 3.5l16.5 0c2.5 0 5-2.9 5.2-5.7l16.2-101.2 0-.3zm-90 51.8c-12.2 0-21.7 9.7-21.7 22 0 9.7 7 15 16.2 15 12 0 21.7-9.2 21.7-21.5 .1-9.8-6.9-15.5-16.2-15.5z\"],\n \"dhl\": [640, 512, [], \"f790\", \"M238 301.2l58.7 0 22.3-30.2-58.7 0-22.3 30.2zM0 282.9l0 6.4 81.8 0 4.7-6.4-86.5 0zM172.9 271c-8.7 0-6-3.6-4.6-5.5 2.8-3.8 7.6-10.4 10.4-14.1s2.8-5.9-2.8-5.9l-51 0-41.1 55.8 100.1 0c33.1 0 51.5-22.5 57.2-30.3l-68.2 0zm317.5-6.9l39.3-53.4-62.2 0-39.3 53.4 62.2 0zM95.3 271l-95.3 0 0 6.4 90.6 0 4.7-6.4zm111-26.6c-2.8 3.8-7.5 10.4-10.3 14.2-1.4 2-4.1 5.5 4.6 5.5l45.6 0s7.3-10 13.5-18.4c8.4-11.4 .7-35-29.2-35l-117.9 0-20.4 27.8 111.4 0c5.6 0 5.5 2.2 2.7 5.9zM0 301.2l73.1 0 4.7-6.4-77.8 0 0 6.4zm323 0l58.7 0 22.3-30.2-58.7 0c-.1 0-22.3 30.2-22.3 30.2zm222 .1l95 0 0-6.4-90.3 0-4.7 6.4zM567.3 271l-4.7 6.4 77.4 0 0-6.4-72.7 0zm-13.5 18.3l86.2 0 0-6.4-81.5 0-4.7 6.4zM389.6 210.7l-22.5 30.6-26.2 0 22.5-30.6-58.7 0-39.3 53.4 143.6 0 39.3-53.4-58.7 0zM423.1 271s-4.3 5.9-6.4 8.7c-7.4 10-.9 21.6 23.2 21.6l94.3 0 22.3-30.3-133.4 0z\"],\n \"tex\": [640, 512, [], \"e7ff\", \"M620.8 95.4c-30.8 .4-42.1 16.6-47.7 24.5l-.1 .1-55.7 80.5 82.8 121.1c7.5 10.6 11.3 12.5 35.4 12.5l0 9.1c-9.1-.7-28-.7-37.7-.7-12.4 0-30.8 0-42.9 .7l0-9.1c13.2-.8 16.6-7.3 16.6-10.2 0-1.1 0-2.3-3-6.4l-65.5-96.3-60.2 87.9c-1.9 2.7-3.8 5.4-3.8 10.2 0 6.1 3.4 13.6 15 14.7l0 9.1c-9.4-.7-27.1-.7-37.2-.7l-2.8 0-11.7 82.6-195.9 0 0-9.1c26.7 0 30.9 0 30.9-16.9l0-203.2c0-16.9-4.3-16.9-30.9-16.9l0-10.3 19.8 0c-4.8-61.1-10.8-71.7-68-71.8l-20.7 0c-6.8 1.5-6.8 6.1-6.8 14.4l0 205c0 13.6 1.1 17.8 32.4 17.8l10.5 0 0 9.1-.4 0c-17.9-.3-36.7-.7-54.9-.7s-36.9 .3-54.8 .7l-.6 0 0-9.1 10.7 0c31.7 0 32.8-4.1 32.8-17.8l0-205c0-8.7 0-13.2-7.2-14.3l-20.8 0c-58.4 0-63.7 10.9-68.6 73.3l-6.8 0 6.3-83.3 217.5 0 6.1 81.8 164.1 0 9 83.3-6.8 0c-5.3-49.8-12.1-73-70.3-73l-51.5 0c-15 0-15.8 1.9-15.8 14.6l0 93.3 35.5 0c35.5 0 38.9-12.8 38.9-44l6 0 0 97.9-6 0c0-31.8-3.4-44.8-38.9-44.8l-35.5 0 0 105.2c0 13 .7 14.8 15.8 14.8l52.2 0c61.1 0 69.9-25.8 77.4-73.6-7.7 0-16.3 .2-22.2 .7l0-9.1c7.2 0 31.7-.4 47.8-23.8l65.5-95.7-72.7-106.7c-8.3-11.7-15.1-12.5-35.8-12.5l0-9.1c9.1 .7 27.9 .7 37.7 .7 12.4 0 30.8 0 42.9-.7l0 9.1c-12.5 .4-16.6 6.8-16.6 10.2 0 1.1 .4 2.3 3 6.4l55.7 81.6 49.7-72.1c2.7-3.7 4.5-6.8 4.5-11.3 0-6.1-3-13.6-15-14.8l0-9.1c9.4 .7 24.8 .7 37.2 .7 9 0 23.3 0 32-.7l0 9.1z\"],\n \"shopify\": [448, 512, [], \"e057\", \"M388.5 104.1c-.2-1.1-.7-2.1-1.5-2.8s-1.8-1.2-2.9-1.2c-2 0-37.2-.8-37.2-.8s-21.6-20.8-29.6-28.8l0 432.7 125.7-31.2s-54-365.5-54.4-367.9zM288.9 70.5c-1.9-6.1-4.3-11.9-7.2-17.6-10.4-20-26-30.9-44.4-30.9-1.3 0-2.7 .1-4 .4-.4-.8-1.2-1.2-1.6-2-8-8.8-18.4-12.8-30.8-12.4-24 .8-48 18-67.2 48.8-13.6 21.6-24 48.8-26.8 70.1-27.6 8.4-46.8 14.4-47.2 14.8-14 4.4-14.4 4.8-16 18-1.2 10-38 291.8-38 291.8l302.6 52.5 0-438.3c-1.5 .1-2.9 .2-4.4 .4 0 0-5.6 1.6-14.8 4.4zM233.6 87.7c-16 4.8-33.6 10.4-50.8 15.6 4.8-18.8 14.4-37.6 25.6-50 4.4-4.4 10.4-9.6 17.2-12.8 6.8 14.4 8.4 34 8 47.2zM200.8 24.4c5-.2 10 1.1 14.4 3.6-6.4 3.2-12.8 8.4-18.8 14.4-15.2 16.4-26.8 42-31.6 66.5-14.4 4.4-28.8 8.8-42 12.8 8.8-38.4 41.2-96.4 78-97.2zM154.4 244.6c1.6 25.6 69.2 31.2 73.2 91.7 2.8 47.6-25.2 80.1-65.6 82.5-48.8 3.2-75.6-25.6-75.6-25.6l10.4-44s26.8 20.4 48.4 18.8c14-.8 19.2-12.4 18.8-20.4-2-33.6-57.2-31.6-60.8-86.9-3.2-46.4 27.2-93.3 94.5-97.7 26-1.6 39.2 4.8 39.2 4.8l-15.2 57.6s-17.2-8-37.6-6.4c-29.6 2-30 20.8-29.6 25.6zM249.6 82.9c0-12-1.6-29.2-7.2-43.6 18.4 3.6 27.2 24 31.2 36.4-7.2 2-15.2 4.4-24 7.2z\"],\n \"square-reddit\": [448, 512, [\"reddit-square\"], \"f1a2\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM305.9 166.4c20.6 0 37.3-16.7 37.3-37.3s-16.7-37.3-37.3-37.3c-18 0-33.1 12.8-36.6 29.8-30.2 3.2-53.8 28.8-53.8 59.9l0 .2c-32.8 1.4-62.8 10.7-86.6 25.5-8.8-6.8-19.9-10.9-32-10.9-28.9 0-52.3 23.4-52.3 52.3 0 21 12.3 39 30.1 47.4 1.7 60.7 67.9 109.6 149.3 109.6s147.6-48.9 149.3-109.7c17.7-8.4 29.9-26.4 29.9-47.3 0-28.9-23.4-52.3-52.3-52.3-12 0-23 4-31.9 10.8-24-14.9-54.3-24.2-87.5-25.4l0-.1c0-22.2 16.5-40.7 37.9-43.7 3.9 16.5 18.7 28.7 36.3 28.7l.2-.2zM155 248.1c14.6 0 25.8 15.4 25 34.4s-11.8 25.9-26.5 25.9-27.5-7.7-26.6-26.7 13.5-33.5 28.1-33.5l0-.1zm166.4 33.5c.9 19-12 26.7-26.6 26.7s-25.6-6.9-26.5-25.9 10.3-34.4 25-34.4 27.3 14.6 28.1 33.5l0 .1zm-42.1 49.6c-9 21.5-30.3 36.7-55.1 36.7s-46.1-15.1-55.1-36.7c-1.1-2.6 .7-5.4 3.4-5.7 16.1-1.6 33.5-2.5 51.7-2.5s35.6 .9 51.7 2.5c2.7 .3 4.5 3.1 3.4 5.7z\"],\n \"creative-commons-nc\": [512, 512, [], \"f4e8\", \"M255.6 8C395.4 8 504 115.9 504 256 504 403.2 385.5 504 255.6 504 121.1 504 8 393.2 8 256 8 123.1 112.7 8 255.6 8zM63.8 189.1c-7.4 20.4-11.1 42.7-11.1 66.9 0 110.9 92.1 202.4 203.7 202.4 122.4 0 177.2-101.8 178.5-104.1l-93.4-41.6c-7.7 37.1-41.2 53-68.2 55.4l0 38.1-28.8 0 0-38.2c-27.5-.3-52.6-10.2-75.3-29.7l34.1-34.5c31.7 29.4 86.4 31.8 86.4-2.2 0-6.2-2.2-11.2-6.6-15.1-14.2-6-1.8-.1-219.3-97.4zM256.4 52.3C218 52.3 144 61 85.9 145.3l94.8 42.5c10-31.3 40.4-42.9 63.8-44.3l0-38.1 28.8 0 0 38.1c22.7 1.2 43.4 8.9 62 23L303 199.7c-42.7-29.9-83.5-8-70 11.1 53.4 24.1 43.8 19.8 93 41.6l127.1 56.7c4.1-17.4 6.2-35.1 6.2-53.1 0-57-19.8-105-59.3-143.9-39.3-39.9-87.2-59.8-143.6-59.8z\"],\n \"galactic-republic\": [512, 512, [], \"f50c\", \"M256 8a248 248 0 1 1 0 496 248 248 0 1 1 0-496zm0 16.5a231.5 231.5 0 1 0 0 462.9 231.5 231.5 0 1 0 0-462.9zm27.6 21.8l0 24.6c30.3 4.5 59 16.3 83.6 34.5l17.4-17.4c-28.7-22.1-63.3-36.9-101-41.8zm-55.4 .1c-37.6 4.9-72.2 19.8-100.9 41.9l17.3 17.4 .1 0c24.1-17.8 52.6-30.1 83.5-34.7l0-24.5zm12.2 50.2l0 82.9c-10 2-19.4 5.9-27.7 11.4l-58.6-58.6-21.9 21.9 58.7 58.7c-5.5 8.2-9.4 17.6-11.5 27.6l-82.9 0 0 31 82.9 0c2 10 6 19.3 11.5 27.5l-58.7 58.7 21.9 21.9 58.6-58.6c8.4 5.6 17.8 9.5 27.7 11.5l0 82.9 31 0 0-82.9c10-2 19.4-6.1 27.6-11.5l58.7 58.7 21.9-21.9-58.7-58.7c5.5-8.2 9.5-17.5 11.5-27.5l82.9 0 0-31-82.9 0c-2-10-6-19.4-11.5-27.6l58.7-58.7-21.9-21.9-58.7 58.7c-8.2-5.5-17.6-9.5-27.6-11.5l0-82.9-31 0zm183.2 30.7l-17.4 17.4c18.3 24.6 30.2 53.4 34.7 83.7l24.6 0c-5-37.7-19.8-72.3-41.9-101zm-335.6 .1c-22.1 28.7-36.9 63.3-41.8 100.9l24.6 0c4.6-31 16.8-59.4 34.6-83.5L88.2 127.4zM46.3 283.7c4.9 37.6 19.7 72.2 41.8 100.9l17.4-17.4C87.7 343.1 75.6 314.6 71 283.7l-24.6 0 0 0zm394.7 0c-4.6 31-16.8 59.5-34.7 83.6l17.4 17.4c22.1-28.7 37-63.3 41.9-101l-24.6 0zM144.7 406.4l-17.4 17.4c28.7 22.1 63.3 37 101 41.9l0-24.6c-31-4.6-59.5-16.8-83.6-34.6zm222.5 0c-24.1 17.8-52.6 30.1-83.6 34.7l0 24.6c37.7-4.9 72.2-19.8 101-41.8l-17.3-17.4-.1 0z\"],\n \"facebook\": [512, 512, [62000], \"f09a\", \"M512 256C512 114.6 397.4 0 256 0S0 114.6 0 256C0 376 82.7 476.8 194.2 504.5l0-170.3-52.8 0 0-78.2 52.8 0 0-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4l0 70.8c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2l0 27.8 83.6 0-14.4 78.2-69.3 0 0 175.9C413.8 494.8 512 386.9 512 256z\"],\n \"gitlab\": [512, 512, [], \"f296\", \"M504 204.6l-.7-1.8-69.7-181.8c-1.4-3.6-3.9-6.6-7.2-8.6-2.4-1.6-5.1-2.5-8-2.8s-5.7 .1-8.4 1.1-5.1 2.7-7.1 4.8c-1.9 2.1-3.3 4.7-4.1 7.4l-47 144-190.5 0-47.1-144c-.8-2.8-2.2-5.3-4.1-7.4-2-2.1-4.4-3.7-7.1-4.8-2.6-1-5.5-1.4-8.4-1.1s-5.6 1.2-8 2.8c-3.2 2-5.8 5.1-7.2 8.6L9.8 202.8 9 204.6c-10 26.2-11.3 55-3.5 82 7.7 26.9 24 50.7 46.4 67.6l.3 .2 .6 .4 106 79.5c38.5 29.1 66.7 50.3 84.6 63.9 3.7 1.9 8.3 4.3 13 4.3s9.3-2.4 13-4.3c17.9-13.5 46.1-34.9 84.6-63.9l106.7-79.9 .3-.3c22.4-16.9 38.7-40.6 45.6-67.5 8.6-27 7.4-55.8-2.6-82z\"],\n \"qq\": [448, 512, [], \"f1d6\", \"M434.1 420.4c-11.5 1.4-44.9-52.7-44.9-52.7 0 31.3-16.1 72.2-51 101.8 16.8 5.2 54.8 19.2 45.8 34.4-7.3 12.3-125.5 7.9-159.6 4-34.1 3.8-152.3 8.3-159.6-4-9-15.2 28.9-29.2 45.8-34.4-34.9-29.5-51.1-70.4-51.1-101.8 0 0-33.3 54.1-44.9 52.7-5.4-.6-12.4-29.6 9.3-99.7 10.3-33 22-60.5 40.1-105.8-3.1-116.9 45.2-215 160.3-215 113.7 0 163.2 96.1 160.3 215 18.1 45.2 29.9 72.9 40.1 105.8 21.8 70.1 14.7 99.1 9.3 99.7z\"],\n \"stripe\": [640, 512, [], \"f429\", \"M165 144.7l-43.3 9.2-.2 142.4c0 26.3 19.8 43.3 46.1 43.3 14.6 0 25.3-2.7 31.2-5.9l0-33.8c-5.7 2.3-33.7 10.5-33.7-15.7l0-63.2 33.7 0 0-37.8-33.7 0-.1-38.5zm89.1 51.6l-2.7-13.1-38.4 0 0 153.2 44.3 0 0-103.1c10.5-13.8 28.2-11.1 33.9-9.3l0-40.8c-6-2.1-26.7-6-37.1 13.1zM346.4 124l-44.6 9.5 0 36.2 44.6-9.5 0-36.2zM44.9 228.3c0-6.9 5.8-9.6 15.1-9.7 13.5 0 30.7 4.1 44.2 11.4l0-41.8c-14.7-5.8-29.4-8.1-44.1-8.1-36 0-60 18.8-60 50.2 0 49.2 67.5 41.2 67.5 62.4 0 8.2-7.1 10.9-17 10.9-14.7 0-33.7-6.1-48.6-14.2l0 40c16.5 7.1 33.2 10.1 48.5 10.1 36.9 0 62.3-15.8 62.3-47.8 0-52.9-67.9-43.4-67.9-63.4zM640 261.6c0-45.5-22-81.4-64.2-81.4s-67.9 35.9-67.9 81.1c0 53.5 30.3 78.2 73.5 78.2 21.2 0 37.1-4.8 49.2-11.5l0-33.4c-12.1 6.1-26 9.8-43.6 9.8-17.3 0-32.5-6.1-34.5-26.9l86.9 0c.2-2.3 .6-11.6 .6-15.9zm-87.9-16.8c0-20 12.3-28.4 23.4-28.4 10.9 0 22.5 8.4 22.5 28.4l-45.9 0zM439.2 180.2c-17.4 0-28.6 8.2-34.8 13.9l-2.3-11-39.1 0 0 204.8 44.4-9.4 .1-50.2c6.4 4.7 15.9 11.2 31.4 11.2 31.8 0 60.8-23.2 60.8-79.6 .1-51.6-29.3-79.7-60.5-79.7zM428.6 302.7c-10.4 0-16.6-3.8-20.9-8.4l-.3-66c4.6-5.1 11-8.8 21.2-8.8 16.2 0 27.4 18.2 27.4 41.4 .1 23.9-10.9 41.8-27.4 41.8zM301.9 336.4l44.6 0 0-153.2-44.6 0 0 153.2z\"],\n \"dailymotion\": [448, 512, [], \"e052\", \"M298.9 267c-7.4-4.2-15.8-6.3-24.4-6.2-13.2 0-24.4 4.4-33.4 13.3s-13.6 20-13.6 33.4c0 14.1 4.4 25.6 13.3 34.6s20 13.4 33.4 13.4c13.7 0 25-4.6 34.1-13.8S322 321.1 322 307.5c0-8.2-2.1-16.3-6.1-23.5-4-7.1-9.8-13-17-17zM0 32l0 448 448 0 0-448-448 0zM374.7 405.3l-53.1 0 0-23.9-.7 0c-10.5 17.5-29.1 26.2-55.8 26.2-18.4 0-34.7-4.4-48.9-13.1-14.1-8.6-25.5-21-32.9-35.8-7.7-15.1-11.6-32.1-11.6-50.9 0-18.4 3.9-35.1 11.8-50.2 7.5-14.7 18.9-27.1 32.9-35.8 14.1-8.7 30-13.1 47.7-13.1 10.2-.1 20.2 1.6 29.7 5.2 8.9 3.5 17.2 9.1 25 17l0-77.9 55.8-12.1 0 264.4z\"],\n \"steam\": [512, 512, [], \"f1b6\", \"M504 256c0 137-111.2 248-248.4 248-113.8 0-209.6-76.3-239-180.4l95.2 39.3c6.4 32.1 34.9 56.4 68.9 56.4 39.2 0 71.9-32.4 70.2-73.5l84.5-60.2c52.1 1.3 95.8-40.9 95.8-93.5 0-51.6-42-93.5-93.7-93.5s-93.7 42-93.7 93.5l0 1.2-59.2 85.7c-15.5-.9-30.7 3.4-43.5 12.1L8 236.1C18.2 108.4 125.1 8 255.6 8 392.8 8 504 119 504 256zM163.7 384.3l-30.5-12.6c5.6 11.6 15.3 20.8 27.2 25.8 26.9 11.2 57.8-1.6 69-28.4 5.4-13 5.5-27.3 .1-40.3S214 305.6 201 300.2c-12.9-5.4-26.7-5.2-38.9-.6l31.5 13c19.8 8.2 29.2 30.9 20.9 50.7-8.3 19.9-31 29.2-50.8 21zM337.5 129.8a62.3 62.3 0 1 1 0 124.6 62.3 62.3 0 1 1 0-124.6zm.1 109a46.8 46.8 0 1 0 0-93.6 46.8 46.8 0 1 0 0 93.6z\"],\n \"snapchat\": [512, 512, [62124, \"snapchat-ghost\"], \"f2ab\", \"M497.1 366.6c-3.4-9.2-9.8-14.1-17.1-18.2-1.4-.8-2.6-1.5-3.7-1.9-2.2-1.1-4.4-2.2-6.6-3.4-22.8-12.1-40.6-27.3-53-45.4-3.5-5.1-6.6-10.5-9.1-16.1-1.1-3-1-4.7-.2-6.3 .8-1.2 1.7-2.2 2.9-3 3.9-2.6 8-5.2 10.7-7 4.9-3.2 8.8-5.7 11.2-7.4 9.4-6.5 15.9-13.5 20-21.3 2.9-5.4 4.5-11.3 4.9-17.4s-.6-12.2-2.8-17.8c-6.2-16.3-21.6-26.4-40.3-26.4-3.9 0-7.9 .4-11.7 1.2-1 .2-2.1 .5-3.1 .7 .2-11.2-.1-22.9-1.1-34.5-3.5-40.8-17.8-62.1-32.7-79.2-9.5-10.7-20.7-19.7-33.2-26.7-22.6-12.9-48.2-19.4-76.1-19.4s-53.4 6.5-76 19.4c-12.5 7-23.7 16.1-33.3 26.8-14.9 17-29.2 38.4-32.7 79.2-1 11.6-1.2 23.4-1.1 34.5-1-.3-2-.5-3.1-.7-3.9-.8-7.8-1.2-11.7-1.2-18.7 0-34.1 10.1-40.3 26.4-2.2 5.7-3.2 11.8-2.8 17.8s2 12 4.9 17.4c4.1 7.8 10.7 14.7 20 21.3 2.5 1.7 6.4 4.2 11.2 7.4 2.6 1.7 6.5 4.2 10.3 6.7 1.3 .9 2.4 2 3.3 3.3 .8 1.6 .8 3.4-.4 6.6-2.5 5.5-5.5 10.8-8.9 15.8-12.1 17.7-29.4 32.6-51.4 44.6-11.7 6.2-23.9 10.3-29 24.3-3.9 10.5-1.3 22.5 8.5 32.6 3.6 3.8 7.8 6.9 12.4 9.4 9.6 5.3 19.8 9.3 30.3 12.1 2.2 .6 4.3 1.5 6.1 2.7 3.6 3.1 3.1 7.9 7.8 14.8 2.4 3.6 5.4 6.7 9 9.1 10 6.9 21.3 7.4 33.2 7.8 10.8 .4 23 .9 36.9 5.5 5.8 1.9 11.8 5.6 18.7 9.9 16.7 10.3 39.6 24.3 77.8 24.3s61.3-14.1 78.1-24.4c6.9-4.2 12.9-7.9 18.5-9.8 13.9-4.6 26.2-5.1 36.9-5.5 11.9-.5 23.2-.9 33.2-7.8 4.2-2.9 7.7-6.7 10.2-11.2 3.4-5.8 3.4-9.9 6.6-12.8 1.8-1.2 3.7-2.1 5.8-2.6 10.7-2.8 21-6.9 30.8-12.2 4.9-2.6 9.3-6.1 13-10.2l.1-.2c9.2-9.9 11.5-21.5 7.8-31.8zm-34 18.3c-20.7 11.5-34.5 10.2-45.3 17.1-9.1 5.9-3.7 18.5-10.3 23.1-8.1 5.6-32.2-.4-63.2 9.9-25.6 8.5-42 32.8-88 32.8s-62-24.3-88.1-32.9c-31-10.3-55.1-4.2-63.2-9.9-6.6-4.6-1.2-17.2-10.3-23.1-10.7-6.9-24.5-5.7-45.3-17.1-13.2-7.3-5.7-11.8-1.3-13.9 75.1-36.4 87.1-92.6 87.7-96.7 .6-5 1.4-9-4.2-14.1-5.4-5-29.2-19.7-35.8-24.3-10.9-7.6-15.7-15.3-12.2-24.6 2.5-6.5 8.5-8.9 14.9-8.9 2 0 4 .2 6 .7 12 2.6 23.7 8.6 30.4 10.2 .8 .2 1.6 .3 2.5 .3 3.6 0 4.9-1.8 4.6-5.9-.8-13.1-2.6-38.7-.6-62.6 2.8-32.9 13.4-49.2 26-63.6 6.1-6.9 34.5-37 88.9-37S339 74.2 345 81.1c12.6 14.4 23.2 30.7 26 63.6 2.1 23.9 .3 49.5-.6 62.6-.3 4.3 1 5.9 4.6 5.9 .8 0 1.7-.1 2.5-.3 6.7-1.6 18.4-7.6 30.4-10.2 2-.4 4-.7 6-.7 6.4 0 12.4 2.5 14.9 8.9 3.5 9.4-1.2 17-12.2 24.6-6.6 4.6-30.4 19.3-35.8 24.3-5.6 5.1-4.8 9.1-4.2 14.2 .5 4.2 12.5 60.4 87.7 96.7 4.4 2.2 11.9 6.7-1.3 14.1z\"],\n \"galactic-senate\": [512, 512, [], \"f50d\", \"M249.9 33.5l0 26.1c-13.6 20.6-23.9 108.6-24.5 215.3 11.7-15.6 19.1-33.3 19.1-48.2l0-16.9c0-5.3 .8-10.5 2.2-15.6 .6-2.1 1.4-4.1 2.6-5.8s3.4-3.8 6.7-3.8 5.4 2.1 6.7 3.8c1.2 1.8 2 3.7 2.6 5.8 1.4 5.1 2.2 10.3 2.2 15.6l0 16.9c0 14.9 7.4 32.6 19.1 48.2-.6-106.8-10.9-194.7-24.5-215.3l0-26.1-12.3 0zM223.5 181.3c-9.5 2.1-18.7 5.2-27.5 9.1 8.9 16.1 9.8 32.6 1.7 37.3-8 4.6-21.8-4.2-31.4-19.8-11.6 8.8-21.9 19.3-30.6 31.1 14.7 9.6 22.9 22.9 18.3 30.7-4.5 7.7-20 7.1-35.5-1-5.8 13.2-9.7 27.5-11.6 42.4 9.7 .2 18.7 2.4 26.2 6 17.8-.3 32.8-2 40.5-4.2 5.6-26.4 23-48.2 46.3-59.5 .7-25.6 1.9-49.7 3.5-72.1zm65 0c1.6 22.4 2.7 46.5 3.5 72.1 23.3 11.3 40.8 33.2 46.3 59.5 7.7 2.3 22.7 3.9 40.5 4.2 7.5-3.7 16.5-5.8 26.2-6-1.9-14.9-5.9-29.2-11.7-42.4-15.4 8.1-30.9 8.7-35.5 1-4.6-7.7 3.6-21.1 18.3-30.7-8.7-11.8-19-22.3-30.6-31.1-9.5 15.6-23.4 24.4-31.4 19.8-8.1-4.6-7.2-21.2 1.7-37.3-8.8-3.9-18-7-27.4-9.1zM256 189.9c-3.2 0-5.9 8.8-6.1 19.9l0 0 0 16.9c0 41.4-49 95-93.5 95-52 0-122.8-1.4-156.4 29.2l0 2.5c9.4 17.1 20.6 33.2 33.2 48 12.5-21.1 51.6-41 108-41.4 45.7 1 79 20.3 90.8 40.9 0 0 0 0 0 .1 7.7 2.1 15.8 3.2 24 3.2 8.2 0 16.4-1.1 24-3.2 0 0 0 0 0-.1 11.7-20.5 45.1-39.8 90.8-40.9 56.4 .4 95.5 20.3 108 41.4 12.6-14.8 23.8-30.9 33.2-48l0-2.5c-33.6-30.6-104.4-29.2-156.4-29.2-44.5 0-93.5-53.6-93.5-95l0-16.9-.1 0c-.2-11.1-2.9-19.9-6.1-19.9zm0 177.9a40.6 40.6 0 1 1 0-81.3 40.6 40.6 0 1 1 0 81.3zm0-73.6a33 33 0 1 0 0 65.9 33 33 0 1 0 0-65.9zm0 59.8a26.8 26.8 0 1 1 0-53.6 26.8 26.8 0 1 1 0 53.6zm-114.8 13c-10.2 .1-21.6 .4-30.5 1.7 .4 4.4 1.5 18.6 7.1 29.8 9.1-2.6 18.4-3.9 27.6-3.9 41.3 .9 71.5 34.4 78.3 74.5l.1 4.7c10.4 1.9 21.2 2.9 32.2 2.9 11 0 21.8-1 32.2-2.9l.1-4.7c6.8-40.1 37-73.5 78.3-74.5 9.3 0 18.5 1.3 27.6 3.9 5.6-11.1 6.7-25.3 7.1-29.8-8.9-1.3-20.3-1.6-30.5-1.7-18.8 .4-35.2 4.2-48.6 9.7-12.5 16-29.2 30-49.6 33.1-.1 0-.2 0-.3 0 0 0-.1 0-.2 .1-5.2 1.1-10.6 1.6-16.2 1.6-5.5 0-10.9-.5-16.2-1.6-.1 0-.1 0-.2-.1-.1 0-.2 0-.3 0-20.4-3-37-17-49.6-33.1-13.4-5.5-29.9-9.2-48.6-9.7z\"],\n \"phoenix-framework\": [640, 512, [], \"f3dc\", \"M212.9 344.3c3.8-.1 22.8-1.4 25.6-2.2-2.4-2.6-43.6-1-68-49.6-4.3-8.6-7.5-17.6-6.4-27.6 2.9-25.5 32.9-30 52-18.5 36 21.6 63.3 91.3 113.7 97.5 37 4.5 84.6-17 108.2-45.4-.6-.1-.8-.2-1-.1-.4 .1-.8 .2-1.1 .3-33.3 12.1-94.3 9.7-134.7-14.8-37.6-22.8-53.1-58.7-51.8-74.6 1.8-21.3 22.9-23.2 35.9-19.6 14.4 3.9 24.4 17.6 38.9 27.4 15.6 10.4 32.9 13.7 51.3 10.3 14.9-2.7 34.4-12.3 36.5-14.5-1.1-.1-1.8-.1-2.5-.2-6.2-.6-12.4-.8-18.5-1.7-111.2-16.5-128.9-163.6-252.5-173.1-44.3-3.4-99.4 8.1-136.3 35-.8 .6-1.5 1.2-2.2 1.8 .1 .2 .1 .3 .2 .5 .8 0 1.6-.1 2.4-.2 6.3-1 12.5-.8 18.7 .3 23.8 4.3 47.7 23.1 55.9 76.5 5.3 34.3-.7 50.8 8 86.1 19 77.1 91 107.6 127.7 106.4zM75.3 64.9c-.9-1-.9-1.2-1.3-2 12.1-2.6 24.2-4.1 36.6-4.8-1.1 14.7-22.2 21.3-35.3 6.8zM272.2 415.4c-42.8 1.2-92-26.7-123.5-61.4-4.6-5-16.8-20.2-18.6-23.4l.4-.4c6.6 4.1 25.7 18.6 54.8 27 24.2 7 48.1 6.3 71.6-3.3 22.7-9.3 41-.5 43.1 2.9-18.5 3.8-20.1 4.4-24 7.9-5.1 4.4-4.6 11.7 7 17.2 26.2 12.4 63-2.8 97.2 25.4 2.4 2 8.1 7.8 10.1 10.7-.1 .2-.3 .3-.4 .5-4.8-1.5-16.4-7.5-40.2-9.3-24.7-2-46.3 5.3-77.5 6.2zM447 163.4c16.4-5.2 41.3-13.4 66.5-3.3 16.1 6.5 26.2 18.7 32.1 34.6 3.5 9.4 5.1 19.7 5.1 28.7-.2 0-.4 0-.6 .1-.2-.4-.4-.9-.5-1.3-5-22-29.9-43.8-67.6-29.9-50.2 18.6-130.4 9.7-176.9-48-.7-.9-2.4-1.7-1.3-3.2 .1-.2 2.1 .6 3 1.3 18.1 13.4 38.3 21.9 60.3 26.2 30.5 6.1 54.6 2.9 79.9-5.2zM549.7 280.9c-32.4 .2-33.8 50.1-103.6 64.4-18.2 3.7-38.7 4.6-44.9 4.2l0-.4c2.8-1.5 14.7-2.6 29.7-16.6 7.9-7.3 15.3-15.1 22.8-22.9 19.5-20.2 41.4-42.2 81.9-39 23.1 1.8 29.3 8.2 36.1 12.7 .3 .2 .4 .5 .7 .9-.5 0-.7 .1-.9 0-7-2.7-14.3-3.3-21.8-3.3zm-12.3-24.1c-.1 .2-.1 .4-.2 .6-28.9-4.4-48-7.9-68.5 4-17 9.9-31.4 20.5-62 24.4-27.1 3.4-45.1 2.4-66.1-8-.3-.2-.6-.4-1-.6 0-.2 .1-.3 .1-.5 24.9 3.8 36.4 5.1 55.5-5.8 22.3-12.9 40.1-26.6 71.3-31 29.6-4.1 51.3 2.5 70.9 16.9zM268.6 97.3c-.6-.6-1.1-1.2-2.1-2.3 7.6 0 29.7-1.2 53.4 8.4 19.7 8 32.2 21 50.2 32.9 11.1 7.3 23.4 9.3 36.4 8.1 4.3-.4 8.5-1.2 12.8-1.7 .4-.1 .9 0 1.5 .3-.6 .4-1.2 .9-1.8 1.2-8.1 4-16.7 6.3-25.6 7.1-26.1 2.6-50.3-3.7-73.4-15.4-19.3-9.9-36.4-22.9-51.4-38.6zM640 335.7c-3.5 3.1-22.7 11.6-42.7 5.3-12.3-3.9-19.5-14.9-31.6-24.1-10-7.6-20.9-7.9-28.1-8.4 .6-.8 .9-1.2 1.2-1.4 14.8-9.2 30.5-12.2 47.3-6.5 12.5 4.2 19.2 13.5 30.4 24.2 10.8 10.4 21 9.9 23.1 10.5 .1-.1 .2 0 .4 .4zm-212.5 137c2.2 1.2 1.6 1.5 1.5 2-18.5-1.4-33.9-7.6-46.8-22.2-21.8-24.7-41.7-27.9-48.6-29.7 .5-.2 .8-.4 1.1-.4 13.1 .1 26.1 .7 38.9 3.9 25.3 6.4 35 25.4 41.6 35.3 3.2 4.8 7.3 8.3 12.3 11.1z\"],\n \"git\": [512, 512, [], \"f1d3\", \"M216.3 158.4l-79.3 0c-40-10.5-130.5-7.8-130.5 74.8 0 30.1 15 51.2 35 61-25.1 23-37 33.8-37 49.2 0 11 4.5 21.1 17.9 26.8-14.3 13.4-22.4 23.1-22.4 41.4 0 32.1 28 50.8 101.6 50.8 70.8 0 111.8-26.4 111.8-73.2 0-58.7-45.2-56.5-151.6-63l13.4-21.6c27.3 7.6 118.7 10 118.7-67.9 0-18.7-7.7-31.7-15-41.1l37.4-2.8 0-34.5zM152.9 400.3c0 32.1-104.9 32.1-104.9 2.4 0-8.1 5.3-15 10.6-21.5 77.7 5.3 94.3 3.4 94.3 19.1zM102.1 265.7c-52.8 0-50.5-71.2 1.2-71.2 49.5 0 50.8 71.2-1.2 71.2zM235.4 366.2l0-32.1c26.7-3.7 27.2-2 27.2-11l0-119.5c0-8.5-2.1-7.4-27.2-16.3l4.5-32.9 84.2 0 0 168.7c0 6.5 .4 7.3 6.5 8.1l20.7 2.8 0 32.1-115.9 0zm52.5-244.3c-23.2 0-36.6-13.4-36.6-36.6s13.4-35.8 36.6-35.8c23.6 0 37 12.6 37 35.8s-13.4 36.6-37 36.6zM512 350.5c-17.5 8.5-43.1 16.3-66.3 16.3-48.4 0-66.7-19.5-66.7-65.5l0-106.5c0-5.4 1-4.1-31.7-4.1l0-36.2c35.8-4.1 50-22 54.5-66.3l38.6 0c0 65.8-1.3 61.8 3.3 61.8l57.3 0 0 40.6-60.6 0 0 97.1c0 6.9-4.9 51.4 60.6 26.8l11 35.8z\"],\n \"optin-monster\": [576, 512, [], \"f23c\", \"M572.8 421.4c5.6-9.5 4.7-15.2-5.4-11.6-3-4.9-7-9.5-11.1-13.8 2.9-9.7-.7-14.2-10.8-9.2-4.6-3.2-10.3-6.5-15.9-9.2 0-15.1-11.6-11.6-17.6-5.7-10.4-1.5-18.7-.3-26.8 5.7 .3-6.5 .3-13 .3-19.7 12.6 0 40.2-11 45.9-36.2 1.4-6.8 1.6-13.8-.3-21.9-3-13.5-14.3-21.3-25.1-25.7-.8-5.9-7.6-14.3-14.9-15.9s-12.4 4.9-14.1 10.3c-8.5 0-19.2 2.8-21.1 8.4-5.4-.5-11.1-1.4-16.8-1.9 2.7-1.9 5.4-3.5 8.4-4.6 5.4-9.2 14.6-11.4 25.7-11.6l0-2.8c19.5-.5 43-5.9 53.8-18.1 12.7-13.8 14.6-37.3 12.4-55.1-2.4-17.3-9.7-37.6-24.6-48.1-8.4-5.9-21.6-.8-22.7 9.5-2.2 19.6 1.2 30-38.6 25.1-10.3-23.8-24.6-44.6-42.7-60-69.6-59.7-167.7-53.8-244.2-37.6 19.7 4.6 41.1 8.6 59.7 16.5-26.2 2.4-52.7 11.3-76.2 23.2-32.8 17-44 29.9-56.7 42.4 14.9-2.2 28.9-5.1 43.8-3.8-9.7 5.4-18.4 12.2-26.5 20-25.8 .9-23.8-5.3-26.2-25.9-1.1-10.5-14.3-15.4-22.7-9.7-28.1 19.9-33.5 79.9-12.2 103.5 10.8 12.2 35.1 17.3 54.9 17.8-.3 1.1-.3 1.9-.3 2.7 10.8 .5 19.5 2.7 24.6 11.6 3 1.1 5.7 2.7 8.1 4.6-5.4 .5-11.1 1.4-16.5 1.9-3.3-6.6-13.7-8.1-21.1-8.1-1.6-5.7-6.5-12.2-14.1-10.3-6.8 1.9-14.1 10-14.9 15.9-22.5 9.5-30.1 26.8-25.1 47.6 5.3 24.8 33 36.2 45.9 36.2l0 19.7c-6.6-5-14.3-7.5-26.8-5.7-5.5-5.5-17.3-10.1-17.3 5.7-5.9 2.7-11.4 5.9-15.9 9.2-9.8-4.9-13.6-1.7-11.1 9.2-4.1 4.3-7.8 8.6-11.1 13.8-10.2-3.7-11 2.2-5.4 11.6-1.1 3.5-1.6 7-1.9 10.8-.5 31.6 44.6 64 73.5 65.1 17.3 .5 34.6-8.4 43-23.5 113.2 4.9 226.7 4.1 340.2 0 8.1 15.1 25.4 24.3 42.7 23.5 29.2-1.1 74.3-33.5 73.5-65.1 .2-3.7-.7-7.2-1.7-10.7zM499 167.4c1.1-3 2.4-8.4 2.4-14.6 0-5.9 6.8-8.1 14.1-.8 11.1 11.6 14.9 40.5 13.8 51.1-4.1-13.6-13-29-30.3-35.7zm-4.6 6.7c19.5 6.2 28.6 27.6 29.7 48.9-1.1 2.7-3 5.4-4.9 7.6-5.7 5.9-15.4 10-26.2 12.2 4.3-21.3 .3-47.3-12.7-63 4.9-.8 10.9-2.4 14.1-5.7zm-24.1 6.8c13.8 11.9 20 39.2 14.1 63.5-4.1 .5-8.1 .8-11.6 .8-1.9-21.9-6.8-44-14.3-64.6 3.7 .3 8.1 .3 11.8 .3zM47.7 203c-1.1-10.5 2.4-39.5 13.8-51.1 7-7.3 14.1-5.1 14.1 .8 0 6.2 1.4 11.6 2.4 14.6-17.3 6.8-26.2 22.2-30.3 35.7zm9.7 27.6c-1.9-2.2-3.5-4.9-4.9-7.6 1.4-21.3 10.3-42.7 29.7-48.9 3.2 3.2 9.2 4.9 14.1 5.7-13 15.7-17 41.6-12.7 63-10.8-2.2-20.5-6-26.2-12.2zm47.9 14.6c-4.1 0-8.1-.3-12.7-.8-4.6-18.6-1.9-38.9 5.4-53l0 .3 12.2-5.1c4.9-1.9 9.7-3.8 14.9-4.9-10.7 19.7-17.4 41.3-19.8 63.5zm184-10.5a76.1 76.1 0 1 1 0-152.2 76.1 76.1 0 1 1 0 152.2zm115.6 22.1c-.3 17.8-7 48.9-23 57-13.2 6.6-6.5-7.5-16.5-58.1 13.3 .3 26.6 .3 39.5 1.1zm-54-1.6c.8 4.9 3.8 40.3-1.6 41.9-11.6 3.5-40 4.3-51.1-1.1-4.1-3-4.6-35.9-4.3-41.1l0 .3c18.9-.3 38.1-.3 57 0zM278.5 309c-13 3.5-41.6 4.1-54.6-1.6-6.5-2.7-3.8-42.4-1.9-51.6 19.2-.5 38.4-.5 57.8-.8l0 .3c1.1 8.3 3.3 51.2-1.3 53.7zM172 257.9c12.2-.8 24.6-1.4 36.8-1.6-2.4 15.4-3 43.5-4.9 52.2-1.1 6.8-4.3 6.8-9.7 4.3-21.9-9.8-27.6-35.2-22.2-54.9zm-35.4 31.3c7.8-1.1 15.7-1.9 23.5-2.7 1.6 6.2 3.8 11.9 7 17.6 10 17 44 35.7 45.1 7 6.2 14.9 40.8 12.2 54.9 10.8 15.7-1.4 23.8-1.4 26.8-14.3 12.4 4.3 30.8 4.1 44 3 11.3-.8 20.8-.5 24.6-8.9 1.1 5.1 1.9 11.6 4.6 16.8 10.8 21.3 37.3 1.4 46.8-31.6 8.6 .8 17.6 1.9 26.5 2.7-.4 1.3-3.8 7.3 7.3 11.6-47.6 47-95.7 87.8-163.2 107-63.2-20.8-112.1-59.5-155.9-106.5 9.6-3.4 10.4-8.8 8-12.5zM115 461.7c-3.8 17.8-21.9 29.7-39.7 28.9-19.2-.8-46.5-17-59.2-36.5-2.7-31.1 43.8-61.3 66.2-54.6 14.9 4.3 27.8 30.8 33.5 54 0 3-.3 5.7-.8 8.2zm-8.7-66c-.5-13.5-.5-27-.3-40.5l.3 0c2.7-1.6 5.7-3.8 7.8-6.5 6.5-1.6 13-5.1 15.1-9.2 3.3-7.1-7-7.5-5.4-12.4 2.7-1.1 5.7-2.2 7.8-3.5 29.2 29.2 58.6 56.5 97.3 77-36.8 11.3-72.4 27.6-105.9 47-1.2-18.6-7.7-35.9-16.7-51.9zm337.6 64.6c-103 3.5-206.2 4.1-309.4 0 0 .3 0 .3-.3 .3l0-.3 .3 0c35.1-21.6 72.2-39.2 112.4-50.8 11.6 5.1 23 9.5 34.9 13.2 2.2 .8 2.2 .8 4.3 0 14.3-4.1 28.4-9.2 42.2-15.4 41.5 11.7 78.8 31.7 115.6 53zm10.5-12.4c-35.9-19.5-73-35.9-111.9-47.6 38.1-20 71.9-47.3 103.5-76.7 2.2 1.4 4.6 2.4 7.6 3.2 0 .8 .3 1.9 .5 2.4-4.6 2.7-7.8 6.2-5.9 10.3 2.2 3.8 8.6 7.6 15.1 8.9 2.4 2.7 5.1 5.1 8.1 6.8 0 13.8-.3 27.6-.8 41.3l.3-.3c-9.3 15.9-15.5 37-16.5 51.7zm105.9 6.2c-12.7 19.5-40 35.7-59.2 36.5-19.3 .9-40.5-13.2-40.5-37 5.7-23.2 18.9-49.7 33.5-54 22.7-6.9 69.2 23.4 66.2 54.5zM373.1 75.2c-3.8-72.1-100.8-79.7-126-23.5 44.6-24.3 90.3-15.7 126 23.5zM75 407.1c-15.7 1.6-49.5 25.4-49.5 43.2 0 11.6 15.7 19.5 32.2 14.9 12.2-3.2 31.1-17.6 35.9-27.3 6-11.6-3.7-32.7-18.6-30.8zM290.9 230.9c28.6 0 51.9-21.6 51.9-48.4 0-36.1-40.5-58.1-72.2-44.3 9.5 3 16.5 11.6 16.5 21.6 0 23.3-33.3 32-46.5 11.3-7.3 34.1 19.4 59.8 50.3 59.8zM68.2 474.1c.5 6.5 12.2 12.7 21.6 9.5 6.8-2.7 14.6-10.5 17.3-16.2 3-7-1.1-20-9.7-18.4-8.9 1.6-29.7 16.7-29.2 25.1zm433.2-67c-14.9-1.9-24.6 19.2-18.9 30.8 4.9 9.7 24.1 24.1 36.2 27.3 16.5 4.6 32.2-3.2 32.2-14.9 0-17.8-33.8-41.6-49.5-43.2zM479 449c-8.4-1.6-12.4 11.3-9.5 18.4 2.4 5.7 10.3 13.5 17.3 16.2 9.2 3.2 21.1-3 21.3-9.5 .9-8.4-20.2-23.5-29.1-25.1z\"],\n \"jenkins\": [448, 512, [], \"f3b6\", \"M455.4 425c-1.4-11.2-19-23.1-28.2-31.9-5.1-5-29-23.1-30.4-29.9-1.4-6.6 9.7-21.5 13.3-28.9 5.1-10.7 8.8-23.7 11.3-32.6 18.8-66.1 20.7-156.9-6.2-211.2-10.2-20.6-38.6-49-56.4-62.5-42-31.7-119.6-35.3-170.1-16.6-14.1 5.2-27.8 9.8-40.1 17.1-33.1 19.4-68.3 32.5-78.1 71.6-24.2 10.8-31.5 41.8-30.3 77.8 .2 7 4.1 15.8 2.7 22.4-.7 3.3-5.2 7.6-6.1 9.8-11.6 27.7-2.3 64 11.1 83.7 8.1 11.9 21.5 22.4 39.2 25.2 .7 10.6 3.3 19.7 8.2 30.4 3.1 6.8 14.7 19 10.4 27.7-2.2 4.4-21 13.8-27.3 17.6-21.1 12.5-36.4 20.3-55.9 34.3-12.6 9-32.3 10.2-29.2 31.1 2.1 14.1 10.1 31.6 14.7 45.8 .7 2 1.4 4.1 2.1 6l422 0c4.9-15.3 9.7-30.9 14.6-47.2 3.4-11.4 10.2-27.8 8.7-39.7zM174.2 33.7c1.8-.5 3.4 .7 4.9 2.4-.2 5.2-5.4 5.1-8.9 6.8-5.4 6.7-13.4 9.8-20 17.2-6.8 7.5-14.4 27.7-23.4 30-4.5 1.1-9.7-.8-13.6-.5-10.4 .7-17.7 6-28.3 7.5 13.6-29.9 56.1-54 89.3-63.4zM69.4 127.3c13.5-14.9 32.1-24.1 54.8-25.9 11.7 29.7-8.4 65-.9 97.6 2.3 9.9 10.2 25.4-2.4 25.7 .3-28.3-34.8-46.3-61.3-29.6-1.8-21.5-4.9-51.7 9.8-67.8zm36.7 200.2c-1-4.1-2.7-12.9-2.3-15.1 1.6-8.7 17.1-12.5 11-24.7-11.3-.1-13.8 10.2-24.1 11.3-26.7 2.6-45.6-35.4-44.4-58.4 1-19.5 17.6-38.2 40.1-35.8 16 1.8 21.4 19.2 24.5 34.7 9.2 .5 22.5-.4 26.9-7.6-.6-17.5-8.8-31.6-8.2-47.7 1-30.3 17.5-57.6 4.8-87.4 13.6-30.9 53.5-55.3 83.1-70 36.6-18.3 94.9-3.7 129.3 15.8 19.7 11.1 34.4 32.7 48.3 50.7-19.5-5.8-36.1 4.2-33.1 20.3 16.3-14.9 44.2-.2 52.5 16.4 7.9 15.8 7.8 39.3 9 62.8 2.9 57-10.4 115.9-39.1 157.1-7.7 11-14.1 23-24.9 30.6-26 18.2-65.4 34.7-99.2 23.4-44.7-15-65-44.8-89.5-78.8 .7 18.7 13.8 34.1 26.8 48.4 11.3 12.5 25 26.6 39.7 32.4-12.3-2.9-31.1-3.8-36.2 7.2-28.6-1.9-55.1-4.8-68.7-24.2-10.6-15.4-21.4-41.4-26.3-61.4zm222 124.1c4.1-3 11.1-2.9 17.4-3.6-5.4-2.7-13-3.7-19.3-2.2-.1-4.2-2-6.8-3.2-10.2 10.6-3.8 35.5-28.5 49.6-20.3 6.7 3.9 9.5 26.2 10.1 37 .4 9-.8 18-4.5 22.8-18.8-.6-35.8-2.8-50.7-7 .9-6.1-1-12.1 .6-16.5zm-17.2-20c-16.8 .8-26-1.2-38.3-10.8 .2-.8 1.4-.5 1.5-1.4 18 8 40.8-3.3 59-4.9-7.9 5.1-14.6 11.6-22.2 17.1zm-12.1 33.2c-1.6-9.4-3.5-12-2.8-20.2 25-16.6 29.7 28.6 2.8 20.2zM194.3 438.6c-11.6-.7-48.1-14-38.5-23.7 9.4 6.5 27.5 4.9 41.3 7.3 .8 4.4-2.8 10.2-2.8 16.4zM26 497.1c-4.3-12.7-9.2-25.1-14.8-36.9 30.8-23.8 65.3-48.9 102.2-63.5 2.8-1.1 23.2 25.4 26.2 27.6 16.5 11.7 37 21 56.2 30.2 1.2 8.8 3.9 20.2 8.7 35.5 .7 2.3 1.4 4.7 2.2 7.2l-180.7 0 0-.1zm240.6 5.7l-.8 0c.3-.2 .5-.4 .8-.5l0 .5zm7.5-5.7c2.1-1.4 4.3-2.8 6.4-4.3 1.1 1.4 2.2 2.8 3.2 4.3l-9.6 0zm15.1-24.7c-10.8 7.3-20.6 18.3-33.3 25.2-6 3.3-27 11.7-33.4 10.2-3.6-.8-3.9-5.3-5.4-9.5-3.1-9-10.1-23.4-10.8-37-.8-17.2-2.5-46 16-42.4 14.9 2.9 32.3 9.7 43.9 16.1 7.1 3.9 11.1 8.6 21.9 9.5-.1 1.4-.1 2.8-.2 4.3-5.9 3.9-15.3 3.8-21.8 7.1 9.5 .4 17 2.7 23.5 5.9-.1 3.4-.3 7-.4 10.6zm53.4 24.7l-14 0c-.1-3.2-2.8-5.8-6.1-5.8s-5.9 2.6-6.1 5.8l-17.4 0c-2.8-4.4-5.7-8.6-8.9-12.5 2.1-2.2 4-4.7 6-6.9 9 3.7 14.8-4.9 21.7-4.2 7.9 .8 14.2 11.7 25.4 11l-.6 12.6zm8.7 0c.2-4 .4-7.8 .6-11.5 15.6-7.3 29 1.3 35.7 11.5l-36.3 0zm83.4-37c-2.3 11.2-5.8 24-9.9 37.1-.2-.1-.4-.1-.6-.1l-27.9 0c.6-1.1 1.2-2.2 1.9-3.3-2.6-6.1-9-8.7-10.9-15.5 12.1-22.7 6.5-93.4-24.2-78.5 4.3-6.3 15.6-11.5 20.8-19.3 13 10.4 20.8 20.3 33.2 31.4 6.8 6 20 13.3 21.4 23.1 .8 5.5-2.6 18.9-3.8 25.1zM190.5 130.5c5.4-14.9 27.2-34.7 45-32 7.7 1.2 18 8.2 12.2 17.7-30.2-7-45.2 12.6-54.4 33.1-8.1-2-4.9-13.1-2.8-18.8zm184.1 63.1c8.2-3.6 22.4-.7 29.6-5.3-4.2-11.5-10.3-21.4-9.3-37.7 .5 0 1 0 1.4 .1 6.8 14.2 12.7 29.2 21.4 41.7-5.7 13.5-43.6 25.4-43.1 1.2zm-96.8 2.7c-6.8-10.9-19-32.5-14.5-45.3 6.5 11.9 8.6 24.4 17.8 33.3 4.1 4 12.2 9 8.2 20.2-.9 2.7-7.8 8.6-11.7 9.7-14.4 4.3-47.9 .9-36.6-17.1 11.9 .7 27.9 7.8 36.8-.8zm27.3 70c3.8 6.6 1.4 18.7 12.1 20.6 20.2 3.4 43.6-12.3 58.1-17.8 9-15.2-.8-20.7-8.9-30.5-16.6-20-38.8-44.8-38-74.7 6.7-4.9 7.3 7.4 8.2 9.7 8.7 20.3 30.4 46.2 46.3 63.5 3.9 4.3 10.3 8.4 11 11.2 2.1 8.2-5.4 18-4.5 23.5-21.7 13.9-45.8 29.1-81.4 25.6-7.4-6.7-10.3-21.4-2.9-31.1zm-201.3-9.2c-6.8-3.9-8.4-21-16.4-21.4-11.4-.7-9.3 22.2-9.3 35.5-7.8-7.1-9.2-29.1-3.5-40.3-6.6-3.2-9.5 3.6-13.1 5.9 4.7-34.1 49.8-15.8 42.3 20.3zm299.6 28.8c-10.1 19.2-24.4 40.4-54 41-.6-6.2-1.1-15.6 0-19.4 22.7-2.2 36.6-13.7 54-21.6zM261.5 298.3c18.9 9.9 53.6 11 79.3 10.2 1.4 5.6 1.3 12.6 1.4 19.4-33 1.8-72-6.4-80.7-29.6zM353.7 345c-1.7 4.3-5.3 9.3-9.8 11.1-12.1 4.9-45.6 8.7-62.4-.3-10.7-5.7-17.5-18.5-23.4-26-2.8-3.6-16.9-12.9-.2-12.9 13.1 32.7 58 29 95.8 28.1z\"],\n \"slideshare\": [512, 512, [], \"f1e7\", \"M187.9 153.7c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7s61.7-26 61.7-57.7c0-32-27.7-57.7-61.7-57.7zm143.4 0c-34 0-61.7 25.7-61.7 57.7 0 31.7 27.7 57.7 61.7 57.7 34.3 0 61.7-26 61.7-57.7 .1-32-27.4-57.7-61.7-57.7zm156.6 90l-6 4.3 0-198.3c0-27.4-20.6-49.7-46-49.7L76.8 0c-25.4 0-46 22.3-46 49.7l0 198.3c-2-1.4-4.3-2.9-6.3-4.3-15.1-10.6-25.1 4-16 17.7 18.3 22.6 53.1 50.3 106.3 72-56.3 191.7 137.4 222.3 134.3 124.1 0-.7 .3-56.6 .3-96.6 5.1 1.1 9.4 2.3 13.7 3.1 0 39.7 .3 92.8 .3 93.5-3.1 98.3 190.6 67.7 134.3-124 53.1-21.7 88-49.4 106.3-72 9.1-13.8-.9-28.3-16.1-17.8zm-30.5 19.2c-68.9 37.4-128.3 31.1-160.6 29.7-23.7-.9-32.6 9.1-33.7 24.9-10.3-7.7-18.6-15.5-20.3-17.1-5.1-5.4-13.7-8-27.1-7.7-31.7 1.1-89.7 7.4-157.4-28l0-192.4c0-34.9 8.9-45.7 40.6-45.7l317.7 0c30.3 0 40.9 12.9 40.9 45.7l0 190.6-.1 0z\"],\n \"uber\": [448, 512, [], \"f402\", \"M414.1 32L33.9 32C15.2 32 0 47.2 0 65.9L0 446c0 18.8 15.2 34 33.9 34L414 480c18.7 0 33.9-15.2 33.9-33.9l0-380.2C448 47.2 432.8 32 414.1 32zM237.6 391.1C163 398.6 96.4 344.2 88.9 269.6l94.4 0 0 20.4c0 3.7 3 6.8 6.8 6.8l67.9 0c3.7 0 6.8-3 6.8-6.8l0-67.9c0-3.7-3-6.8-6.8-6.8l-67.9 0c-3.7 0-6.8 3-6.8 6.8l0 20.4-94.4 0c7-69.4 65.4-122.2 135.1-122.2s128.1 52.8 135.1 122.2c7.5 74.5-46.9 141.1-121.5 148.6z\"],\n \"digital-ocean\": [512, 512, [], \"f391\", \"M87 481.8l73.7 0 0-73.6-73.7 0 0 73.6zM25.4 346.6l0 61.6 61.6 0 0-61.6-61.6 0zM491.6 176.9C468.6 102.7 409.2 43.6 335 20.3 164.9-32.8 8 93.7 8 255.9l95.8 0c0-101.8 101-180.5 208.1-141.7 39.7 14.3 71.5 46.1 85.8 85.7 39.1 107-39.7 207.8-141.4 208l0 .3-.3 0 0 95.8c162.6 0 288.8-156.8 235.6-327.1zm-235.3 231l0-95.3-95.6 0 0 95.6 95.3 0 0-.3 .3 0z\"],\n \"soundcloud\": [640, 512, [], \"f1be\", \"M640.2 298.6c-1.3 23.1-11.5 44.8-28.4 60.5s-39.2 24.4-62.3 24.1l-218 0c-4.8 0-9.4-2-12.8-5.4s-5.3-8-5.3-12.8l0-234.8c-.2-4 .9-8 3.1-11.4s5.3-6.1 9-7.7c0 0 20.1-13.9 62.3-13.9 25.8 0 51.1 6.9 73.3 20.1 17.3 10.2 32.3 23.8 44.1 40.1s20 34.8 24.2 54.4c7.5-2.1 15.3-3.2 23.1-3.2 11.7-.1 23.3 2.2 34.2 6.7s20.5 11.3 28.7 19.7 14.6 18.3 18.9 29.3 6.3 22.6 5.9 34.3zm-354-153.5c.1-1 0-2-.3-2.9s-.8-1.8-1.5-2.6-1.5-1.3-2.4-1.7c-1.8-.8-4-.8-5.8 0-.9 .4-1.7 1-2.4 1.7s-1.2 1.6-1.5 2.6-.4 1.9-.3 2.9c-6 78.9-10.6 152.9 0 231.6 .2 1.7 1 3.3 2.3 4.5 2.6 2.4 6.8 2.4 9.4 0 1.3-1.2 2.1-2.8 2.3-4.5 11.3-79.4 6.6-152 0-231.6l.2 0zm-44 27.3c-.2-1.8-1.1-3.5-2.4-4.7s-3.1-1.9-5-1.9-3.6 .7-5 1.9-2.2 2.9-2.4 4.7c-7.9 67.9-7.9 136.5 0 204.4 .3 1.8 1.2 3.4 2.5 4.5s3.1 1.8 4.8 1.8 3.5-.6 4.8-1.8 2.2-2.8 2.5-4.5c8.8-67.8 8.8-136.5 .1-204.4l.1 0zm-44.3-6.9c-.2-1.8-1-3.4-2.3-4.6s-3-1.8-4.8-1.8-3.5 .7-4.8 1.8-2.1 2.8-2.3 4.6c-6.7 72-10.2 139.3 0 211.1 0 1.9 .7 3.7 2.1 5s3.1 2.1 5 2.1 3.7-.7 5-2.1 2.1-3.1 2.1-5c10.5-72.8 7.3-138.2 .1-211.1l-.1 0zm-44 20.6c0-1.9-.8-3.8-2.1-5.2s-3.2-2.1-5.2-2.1-3.8 .8-5.2 2.1-2.1 3.2-2.1 5.2c-8.1 63.3-8.1 127.5 0 190.8 .2 1.8 1 3.4 2.4 4.6s3.1 1.9 4.8 1.9 3.5-.7 4.8-1.9 2.2-2.8 2.4-4.6c8.8-63.3 8.9-127.5 .3-190.8l-.1 0zm-44.5 47.6c0-1.9-.8-3.8-2.1-5.1s-3.2-2.1-5.1-2.1-3.8 .8-5.1 2.1-2.1 3.2-2.1 5.1c-10.5 49.2-5.5 93.9 .4 143.6 .3 1.6 1.1 3.1 2.3 4.2s2.8 1.7 4.5 1.7 3.2-.6 4.5-1.7 2.1-2.5 2.3-4.2c6.6-50.4 11.6-94.1 .4-143.6zm-44.1-7.5c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9-3.6 .7-5 1.9-2.2 2.9-2.4 4.8c-9.3 50.2-6.2 94.4 .3 144.5 .7 7.6 13.6 7.5 14.4 0 7.2-50.9 10.5-93.8 .3-144.5l-.2 0zM20.7 250.8c-.2-1.8-1.1-3.5-2.4-4.8s-3.2-1.9-5-1.9-3.6 .7-5 1.9-2.3 2.9-2.4 4.8c-8.5 33.7-5.9 61.6 .6 95.4 .2 1.7 1 3.3 2.3 4.4s2.9 1.8 4.7 1.8 3.4-.6 4.7-1.8 2.1-2.7 2.3-4.4c7.5-34.5 11.2-61.8 .4-95.4l-.2 0z\"],\n \"square-figma\": [448, 512, [], \"e7e4\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM173.7 96c-33 0-59.8 26.8-59.8 59.8 0 21 10.8 39.4 27.2 50.1-16.4 10.7-27.2 29.1-27.2 50.1s10.8 39.5 27.2 50.1c-16.4 10.7-27.2 29.1-27.2 50.1 0 33.1 27.1 59.8 60.1 59.8 33.2 0 60.6-26.9 60.6-60.3l0-55.7c10.6 9.8 24.8 15.8 40.4 15.8l1.1 0c33 0 59.8-26.8 59.8-59.8 0-21-10.8-39.5-27.2-50.1 16.4-10.7 27.2-29.1 27.2-50.1 0-33-26.8-59.8-59.8-59.8L173.7 96zm41.6 219.8l0 39.9c0 22.6-18.6 41-41.3 41-22.4 0-40.7-18.2-40.7-40.5 0-22.3 18.1-40.4 40.3-40.4l41.7 0zm0-100.3l0 80.9-41.7 0c-22.3-.1-40.3-18.2-40.3-40.5 0-22.3 18.1-40.5 40.5-40.5l41.6 0zm60.8 0c22.3 0 40.5 18.1 40.5 40.5s-18.1 40.5-40.5 40.5l-1.1 0c-22.3 0-40.4-18.1-40.4-40.5s18.1-40.5 40.4-40.5l1.1 0zm-60.8-19.3l-41.6 0c-22.3 0-40.5-18.1-40.5-40.4s18.1-40.5 40.5-40.5l41.6 0 0 80.9zm60.8-80.9c22.3 0 40.5 18.1 40.5 40.5s-18.1 40.4-40.5 40.4l-41.5 0 0-80.9 41.5 0z\"],\n \"creative-commons-sa\": [512, 512, [], \"f4ef\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zM145.7 221c13-83.9 80.5-95.7 108.9-95.7 99.8 0 127.5 82.5 127.5 134.2 0 63.6-41 132.9-128.9 132.9-38.9 0-99.1-20-109.4-97l62.5 0c1.5 30.1 19.6 45.2 54.5 45.2 23.3 0 58-18.2 58-82.8 0-82.5-49.1-80.6-56.7-80.6-33.1 0-51.7 14.6-55.8 43.8l18.2 0-49.2 49.2-49-49.2 19.4 0z\"],\n \"chrome\": [512, 512, [], \"f268\", \"M0 256c0-46.6 12.5-90.4 34.3-128.9L144.1 318.3c21.9 39.2 63.8 65.7 111.9 65.7 14.3 0 27.1-2.3 40.8-6.6L220.5 509.6C95.9 492.3 0 385.3 0 256zm365.1 65.6c12.3-19.2 18.9-42.5 18.9-65.6 0-38.2-16.8-72.5-43.3-96l152.7 0c12 29.6 18.6 62.1 18.6 96 0 141.4-114.6 255.1-256 256L365.1 321.6zM477.8 128L256 128c-62.9 0-113.7 44.1-125.5 102.7L54.2 98.5C101 38.5 174 0 256 0 350.8 0 433.5 51.5 477.8 128zM344 256a88 88 0 1 1 -176 0 88 88 0 1 1 176 0z\"],\n \"trade-federation\": [512, 512, [], \"f513\", \"M256 8.8a247.2 247.2 0 1 0 0 494.4 247.2 247.2 0 1 0 0-494.4zm0 11.6a235.6 235.6 0 1 1 0 471.2 235.6 235.6 0 1 1 0-471.2zM411.1 163.1l0-46.8-193.8 0 0 81.7-155.1 0 36.7 46 117.7 0 0 196.8 48.8 0 0-195.8 83.3 0 0-47-83.3 0 0-34.8 145.7 0 0-.1zm-73.3 45.1l0 23.9-82.9 0 0 197.4-26.8 0 0-197.4-123.8 0-20.1-23.9 143.9 0 0-80.6 171.8 0 0 24.4-145 0 0 56.2 82.9 0zm-161.3-69l-12.4-20.7 2.1 23.8-23.5 5.4 23.3 5.4-2.1 24 12.3-20.5 22.2 9.5-15.7-18.1 15.8-18.1-22 9.3zm-29.6-19.7l9.3-11.5-12.7 5.9-8-12.4 1.7 13.9-14.3 3.8 13.7 2.7-.8 14.7 6.8-12.2 13.8 5.3-9.5-10.2zM312.3 264.7l-13.1 5.6-7.3-12.2 1.3 14.2-13.9 3.2 13.9 3.2-1.2 14.2 7.3-12.2 13.1 5.5-9.4-10.7 9.3-10.8zm106.9-77.2l-20.9 9.1-12-19.6 2.2 22.7-22.3 5.4 22.2 4.9-1.8 22.9 11.5-19.6 21.2 8.8-15.1-17 15-17.6zM256 29.9a226.1 226.1 0 1 0 0 452.2 226.1 226.1 0 1 0 0-452.2zM350.6 196l0 51-83.3 0 0 195.7-52.7 0 0-196.8-116.7 0-40-49.9 157.4 0 0-81.6 197.8 0 0 50.7-145.7 0 0 30.9 83.2 0zM256 43.2c60.3 0 114.8 25 153.6 65.2l-199.1 0 0 81.6-157.4 0C81.1 104.8 161.4 43.2 256 43.2zm0 427.1c-117.9 0-213.6-95.6-213.6-213.5 0-21.2 3.1-41.8 8.9-61.1l43.8 56.3 114.7 0 0 196.8 64.6 0 0-195.8 83.3 0 0-62.7-83.2 0 0-19.2 145.6 0 0-50.8c30.8 37 49.3 84.6 49.3 136.5 .1 117.9-95.5 213.5-213.4 213.5zM186.8 275l-11-21.4 1.7 24.5-23.7 3.9 23.8 5.9-3.7 23.8 13-20.9 21.5 10.8-15.8-18.8 16.9-17.1-22.7 9.3z\"],\n \"vaadin\": [448, 512, [], \"f408\", \"M224.5 140.7C226 123.1 229.4 88 274.3 88l98.6 0c20.7 0 32.1-7.8 32.1-21.6l0-12.3c0-12.2 9.3-22.1 21.5-22.1S448 41.9 448 54.1l0 36.5c0 42.9-21.5 62-66.8 62l-100.5 0c-30.1 0-33 14.7-33 27.1 0 1.3-.1 2.5-.2 3.7-.7 12.3-10.9 22.2-23.4 22.2s-22.7-9.8-23.4-22.2c-.1-1.2-.2-2.4-.2-3.7 0-12.3-3-27.1-33-27.1l-100.7 0C21.5 152.6 0 133.5 0 90.6L0 54.1C0 41.9 9.4 32 21.6 32s21.5 9.9 21.5 22.1l0 12.3C43.1 80.2 54.5 88 75.2 88l98.6 0c44.8 0 48.3 35.1 49.8 52.7l.9 0zM224 456c11.5 0 21.4-7 25.7-16.3 1.1-1.8 97.1-169.6 98.2-171.4 11.9-19.6-3.2-44.3-27.2-44.3-13.9 0-23.3 6.4-29.8 20.3L224 362 157.1 244.3c-6.4-13.9-15.9-20.3-29.8-20.3-24 0-39.1 24.6-27.2 44.3 1.1 1.9 97.1 169.6 98.2 171.4 4.3 9.3 14.2 16.3 25.7 16.3z\"],\n \"deviantart\": [320, 512, [], \"f1bd\", \"M320 93.2l-98.2 179.1 7.4 9.5 90.8 0 0 127.7-160.9 0-13.5 9.2-43.7 84c-.3 0-8.6 8.6-9.2 9.2l-92.7 0 0-93.2 93.2-179.4-7.4-9.2-85.8 0 0-127.6 156 0 13.5-9.2 43.7-84c.3 0 8.6-8.6 9.2-9.2l97.6 0 0 93.1z\"],\n \"medium\": [448, 512, [62407, \"medium-m\"], \"f23a\", \"M369.4 32c43.4 0 78.6 35.2 78.6 78.6l0 83.8c-1.9-.1-3.8-.2-5.7-.2l-.4 0c-10 0-22.3 2.4-31.1 6.8-10 4.6-18.7 11.5-26 20.6-11.8 14.6-18.9 34.3-20.6 56.4-.1 .7-.1 1.3-.2 2s-.1 1.2-.1 1.9c-.1 1.2-.1 2.4-.1 3.6 0 1.9-.1 3.8 0 5.8 1.2 50.1 28.2 90.2 76.3 90.2 2.7 0 5.3-.1 7.9-.4l0 20.4c0 43.4-35.2 78.6-78.6 78.6L78.6 480C35.2 480 0 444.8 0 401.4L0 110.6C0 67.2 35.2 32 78.6 32l290.8 0zM82.3 138.9l.3 .1c13.2 3 19.8 7.4 19.8 23.4l0 187.2c0 16-6.7 20.4-19.9 23.4l-.3 .1 0 2.8 52.8 0 0-2.8-.3-.1c-13.2-3-19.9-7.4-19.9-23.4l0-176.3 86.1 202.5 4.9 0 88.6-208.2 0 186.6c-1.1 12.6-7.8 16.5-19.7 19.2l-.3 .1 0 2.7 91.9 0 0-2.7-.3-.1c-11.9-2.7-18.7-6.6-19.9-19.2l-.1-191.8 .1 0c0-16 6.7-20.4 19.9-23.4l.3-.1 0-2.7-72.2 0-67 157.4-67-157.4-77.8 0 0 2.7zM448 340.3c-25.1-7.4-43-35.1-41.2-67.8l0 0 41.1 0 0 67.8zm-6.4-135.6c2.3 0 4.4 .3 6.4 .9l0 57.4-40.2 0c1.5-33.6 13.6-57.9 33.8-58.3z\"],\n \"opencart\": [640, 512, [], \"f23d\", \"M331.8 440.4a45.8 45.8 0 1 1 91.5 .3 45.8 45.8 0 1 1 -91.5-.3zM169.4 394.9a45.7 45.7 0 1 0 .3 91.3 45.7 45.7 0 1 0 -.3-91.3zm291.7-270c-302.2 0-379.2-12.8-461.1-99.2 34.4 51.7 53.3 148.9 373.1 144.2 333.3-5 130 86.1 70.8 188.9 186.7-166.7 319.4-233.9 17.2-233.9z\"],\n \"y-combinator\": [448, 512, [], \"f23b\", \"M448 32l0 448-448 0 0-448 448 0zM236 287.5l77.5-145.5-32.7 0-45.8 91c-4.7 9.3-9 18.3-12.8 26.8l-12.2-26.8-45.2-91-35 0 76.7 143.8 0 94.5 29.5 0 0-92.8z\"],\n \"line\": [512, 512, [], \"f3c0\", \"M311 196.8l0 81.3c0 2.1-1.6 3.7-3.7 3.7l-13 0c-1.3 0-2.4-.7-3-1.5L254 230 254 278.2c0 2.1-1.6 3.7-3.7 3.7l-13 0c-2.1 0-3.7-1.6-3.7-3.7l0-81.3c0-2.1 1.6-3.7 3.7-3.7l12.9 0c1.1 0 2.4 .6 3 1.6l37.3 50.3 0-48.2c0-2.1 1.6-3.7 3.7-3.7l13 0c2.1-.1 3.8 1.6 3.8 3.5l0 .1zm-93.7-3.7l-13 0c-2.1 0-3.7 1.6-3.7 3.7l0 81.3c0 2.1 1.6 3.7 3.7 3.7l13 0c2.1 0 3.7-1.6 3.7-3.7l0-81.3c0-1.9-1.6-3.7-3.7-3.7zm-31.4 68.1l-35.6 0 0-64.4c0-2.1-1.6-3.7-3.7-3.7l-13 0c-2.1 0-3.7 1.6-3.7 3.7l0 81.3c0 1 .3 1.8 1 2.5 .7 .6 1.5 1 2.5 1l52.2 0c2.1 0 3.7-1.6 3.7-3.7l0-13c0-1.9-1.6-3.7-3.5-3.7l.1 0zm193.7-68.1l-52.3 0c-1.9 0-3.7 1.6-3.7 3.7l0 81.3c0 1.9 1.6 3.7 3.7 3.7l52.2 0c2.1 0 3.7-1.6 3.7-3.7l0-13.1c0-2.1-1.6-3.7-3.7-3.7l-35.5 0 0-13.6 35.5 0c2.1 0 3.7-1.6 3.7-3.7l0-13.1c0-2.1-1.6-3.7-3.7-3.7l-35.5 0 0-13.7 35.5 0c2.1 0 3.7-1.6 3.7-3.7l0-13c-.1-1.9-1.7-3.7-3.7-3.7l.1 0zM512 93.4l0 326c-.1 51.2-42.1 92.7-93.4 92.6l-326 0C41.4 511.9-.1 469.8 0 418.6l0-326C.1 41.4 42.2-.1 93.4 0l326 0c51.2 .1 92.7 42.1 92.6 93.4zM441.6 233.5c0-83.4-83.7-151.3-186.4-151.3S68.8 150.1 68.8 233.5c0 74.7 66.3 137.4 155.9 149.3 21.8 4.7 19.3 12.7 14.4 42.1-.8 4.7-3.8 18.4 16.1 10.1s107.3-63.2 146.5-108.2c27-29.7 39.9-59.8 39.9-93.1l0-.2z\"],\n \"amilia\": [448, 512, [], \"f36d\", \"M240.2 32c-61.9 0-131.5 16.9-184.2 55.4-5.1 3.1-9.1 9.2-7.2 19.4 1.1 5.1 5.1 27.4 10.2 39.6 4.1 10.2 14.2 10.2 20.3 6.1 32.5-22.3 96.5-47.7 152.3-47.7 57.9 0 58.9 28.4 58.9 73.1l0 38.5C203.1 227.7 78.3 251 46.8 264.2 11.3 280.5 16.4 357.7 16.4 376S31.6 480 141.3 480c47.8 0 113.7-20.7 153.3-42.1l0 25.4c0 3 2.1 8.2 6.1 9.1 3.1 1 50.7 2 59.9 2s62.5 .3 66.5-.7c4.1-1 5.1-6.1 5.1-9.1l0-296.6c-.1-80.3-57.9-136-192-136zm50.2 348c-21.4 13.2-48.7 24.4-79.1 24.4-52.8 0-58.9-33.5-59-44.7 0-12.2-3-42.7 18.3-52.9 24.3-13.2 75.1-29.4 119.8-33.5l0 106.7z\"],\n \"asymmetrik\": [576, 512, [], \"f372\", \"M517.5 309.2c38.8-40 58.1-80 58.5-116.1 .8-65.5-59.4-118.2-169.4-135-128.7-19.7-288.5 15.5-406.6 82.4 52-26.5 110.6-48.2 170.7-58.2 74.5-20.5 153-25.4 221.3-14.8 152.5 23.8 196.8 127.5 98.8 231.7-10.2 10.8-22 21.1-35 30.6L304.9 103.4 114.7 388.9c-65.6-29.4-76.5-90.2-19.1-151.2 20.8-22.2 48.3-41.9 79.5-58.1 20-12.2 39.7-22.6 62-30.7-65.1 20.3-122.7 52.9-161.6 92.9-27.7 28.6-41.4 57.1-41.7 82.9-.5 35.1 23.4 65.1 68.4 83l-34.5 51.7 101.6 0 22-34.4c22.2 1 45.3 0 68.6-2.7l-22.8 37.1 135.5 0-32.6-53.1c18.6-5.3 36.9-11.5 54.5-18.7l45.9 71.8 101.6 0-73.4-110.4c18.5-12.1 35-25.5 48.9-39.8zM329.9 389.7l-25-40.6-32.7 53.3c-23.4 3.5-46.7 5.1-69.2 4.4l101.9-159.3 78.7 123c-17.2 7.4-35.3 13.9-53.7 19.2z\"],\n \"phabricator\": [512, 512, [], \"f3db\", \"M331.1 262.1l-.1-13s21.7-19.8 21.1-21.2l-9.5-20c-.6-1.4-29.5-.5-29.5-.5l-9.4-9.3s.2-28.5-1.2-29.1l-20.1-9.2c-1.4-.6-20.7 21-20.7 21l-13.1-.2s-20.5-21.4-21.9-20.8l-20 8.3c-1.4 .5 .2 28.9 .2 28.9l-9.1 9.1s-29.2-.9-29.7 .4L160 226.3c-.6 1.4 21 21 21 21l.1 12.9S159.4 280 160 281.4l9.5 20c.6 1.4 29.5 .5 29.5 .5l9.4 9.3s-.2 31.8 1.2 32.3l20.1 8.3c1.4 .6 20.7-23.5 20.7-23.5l13.1 .2s20.5 23.8 21.8 23.3l20-7.5c1.4-.6-.2-32.1-.2-32.1l9.1-9.1s29.2 .9 29.7-.5l8.1-19.8c.7-1.1-20.9-20.7-20.9-20.7zm-44.9-8.7c.7 17.1-12.8 31.6-30.1 32.4s-32.1-12.5-32.8-29.6 12.8-31.6 30.1-32.3c17.3-.8 32.1 12.5 32.8 29.5zm201.2-37.9l-97-97-.1 .1c-75.1-73.3-195.4-72.8-269.8 1.6-50.9 51-27.8 27.9-95.7 95.3-22.3 22.3-22.3 58.7 0 81 69.9 69.4 46.4 46 97.4 97l.1-.1c75.1 73.3 195.4 72.9 269.8-1.6 51-50.9 27.9-27.9 95.3-95.3 22.3-22.3 22.3-58.7 0-81zM363.5 148.2a152.3 152.3 0 1 1 -215 215.6 152.3 152.3 0 1 1 215-215.6z\"],\n \"bots\": [640, 512, [], \"e340\", \"M86.3 197.8c-8-.1-15.9 1.7-23.1 5.1s-13.5 8.6-18.4 14.9l0-61.9c0-2.2-.9-4.3-2.4-5.8s-3.6-2.4-5.8-2.4l-28.4 0c-2.2 0-4.3 .9-5.8 2.4S0 153.8 0 156L0 333.6c0 1.1 .2 2.1 .6 3.1s1 1.9 1.8 2.7 1.7 1.4 2.7 1.8 2.1 .6 3.1 .6l28.4 0c1.1 0 2.1-.2 3.1-.6s1.9-1 2.7-1.8 1.4-1.7 1.8-2.7 .6-2.1 .6-3.1l0-8.1c11.6 13.4 25.9 19.8 41.6 19.8 34.6 0 61.9-26.2 61.9-73.8 0-45.9-27-73.6-61.9-73.6zM71.5 305.7c-9.6 0-21.2-4.9-26.7-12.5l0-43c5.5-7.6 17.2-12.8 26.7-12.8 17.7 0 31.1 13.1 31.1 34 0 21.2-13.4 34.3-31.1 34.3zm156.4-59a17.4 17.4 0 1 0 0 34.8 17.4 17.4 0 1 0 0-34.8zm46.1-90l0-44.7c2.8-1.2 5.2-3.3 6.6-6s1.9-5.8 1.3-8.9-2.2-5.7-4.6-7.7-5.4-3-8.4-3-6.1 1.1-8.4 3-4 4.7-4.6 7.7-.1 6.1 1.3 8.9 3.8 4.8 6.6 6l0 44.7c-28 1.3-54.4 13.6-73.6 34.1s-29.5 47.7-28.8 75.8 12.3 54.7 32.4 74.3 47 30.6 75.1 30.6 55-11 75.1-30.6 31.7-46.3 32.4-74.3-9.7-55.3-28.8-75.8-45.5-32.8-73.6-34.1zm86 107.4c0 30.5-40.8 55.3-91.1 55.3s-91.1-24.7-91.1-55.3 40.8-55.3 91.1-55.3 91.1 24.7 91.1 55.3l0 0zm-50.2 17.4c3.4 0 6.8-1 9.7-2.9s5.1-4.6 6.4-7.8 1.7-6.7 1-10.1-2.3-6.5-4.8-8.9-5.5-4.1-8.9-4.8-6.9-.3-10.1 1-5.9 3.5-7.8 6.4-2.9 6.2-2.9 9.7c0 4.6 1.8 9 5.1 12.3s7.7 5.1 12.3 5.1l0 0zm270.9-31c-14.8-2.6-22.4-3.8-22.4-9.9 0-5.5 7.3-9.9 17.7-9.9 12.2 .1 24.2 3.6 34.5 10.1 1.8 1.2 4 1.6 6.2 1.1s4-1.7 5.1-3.6c.1-.1 .1-.2 .2-.3l8.6-14.9c1.1-1.9 1.4-4.1 .8-6.1s-1.9-3.9-3.7-5c-15.7-9.4-33.7-14.3-52-14.1-39 0-60.2 21.5-60.2 46.2 0 36.3 33.7 41.9 57.6 45.6 13.4 2.3 24.1 4.4 24.1 11 0 6.4-5.5 10.8-18.9 10.8-13.6 0-31-6.2-42.6-13.6-.9-.6-1.9-1-3-1.2s-2.1-.2-3.2 .1-2.1 .7-2.9 1.3-1.6 1.4-2.2 2.3c0 .1-.1 .1-.1 .2l-10.2 16.9c-1.1 1.8-1.4 4-1 6s1.7 3.9 3.5 5c15.2 10.3 37.7 16.7 59.4 16.7 40.4 0 64-19.8 64-46.5 0-38.1-35.5-43.9-59.3-48.3zm-95.9 60.8c-.5-2-1.8-3.7-3.6-4.8s-3.9-1.5-5.9-1.1c-1.4 .3-2.8 .4-4.2 .4-7.8 0-12.5-6.1-12.5-14.2l0-51.2 20.3 0c2.2 0 4.2-.9 5.8-2.4s2.4-3.6 2.4-5.8l0-22.7c0-2.2-.9-4.2-2.4-5.8s-3.6-2.4-5.8-2.4l-20.3 0 0-30.2c0-2.2-.9-4.2-2.4-5.8s-3.6-2.4-5.8-2.4l-28.2 0c-2.2 0-4.2 .9-5.8 2.4s-2.4 3.6-2.4 5.8l0 30.2-15.1 0c-1.1 0-2.1 .2-3.1 .6s-1.9 1-2.6 1.8-1.4 1.7-1.8 2.6-.6 2-.6 3.1l0 22.7c0 1.1 .2 2.1 .6 3.1s1 1.9 1.8 2.6 1.7 1.4 2.6 1.8 2 .6 3.1 .6l15.1 0 0 63.7c0 27 15.4 41.3 43.9 41.3 12.2 0 21.4-2.2 27.6-5.4 1.6-.8 2.9-2.2 3.7-3.9s.9-3.6 .5-5.4l-5-19.3z\"],\n \"vine\": [384, 512, [], \"f1ca\", \"M384 254.7l0 52.1c-18.4 4.2-36.9 6.1-52.1 6.1-36.9 77.4-103 143.8-125.1 156.2-14 7.9-27.1 8.4-42.7-.8-27.1-16.3-129.9-100.6-164.1-365.6l74.5 0c18.7 159.1 64.5 240.7 114.8 301.8 27.9-27.9 54.8-65.1 75.6-106.9-49.8-25.3-80.1-80.9-80.1-145.6 0-65.6 37.7-115.1 102.2-115.1 114.9 0 106.2 127.9 81.6 181.5 0 0-46.4 9.2-63.5-20.5 3.4-11.3 8.2-30.8 8.2-48.5 0-31.3-11.3-46.6-28.4-46.6-18.2 0-30.8 17.1-30.8 50 .1 79.2 59.4 118.7 129.9 101.9z\"],\n \"medrt\": [576, 512, [], \"f3c8\", \"M129.7 256c0 121.8 83.9 222.8 193.5 241.1-18.7 4.5-38.2 6.9-58.2 6.9-137.6 0-249-111-249-248S127.4 8 264.9 8c20.1 0 39.6 2.4 58.2 6.9-109.6 18.3-193.4 119.3-193.4 241.1zM427.1 356.3c-77.7 55.4-179.6 47.5-240.4-14.6 5.5 14.1 12.7 27.7 21.7 40.5 61.6 88.2 182.4 109.3 269.7 47s108.1-184.3 46.5-272.6c-9-12.9-19.3-24.3-30.5-34.2 37.4 78.8 10.7 178.5-67 233.9zm-218.8-244c-1.4 1-2.7 2.1-4 3.1 64.3-17.8 135.9 4 178.9 60.5 35.7 47 42.9 106.6 24.4 158 56.7-56.2 67.6-142.1 22.3-201.8-50-65.5-149.1-74.4-221.6-19.8zM312 224c-4.4 0-8-3.6-8-8l0-40c0-4.4-3.6-8-8-8l-48 0c-4.4 0-8 3.6-8 8l0 40c0 4.4-3.6 8-8 8l-40 0c-4.4 0-8 3.6-8 8l0 48c0 4.4 3.6 8 8 8l40 0c4.4 0 8 3.6 8 8l0 40c0 4.4 3.6 8 8 8l48 0c4.4 0 8-3.6 8-8l0-40c0-4.4 3.6-8 8-8l40 0c4.4 0 8-3.6 8-8l0-48c0-4.4-3.6-8-8-8l-40 0z\"],\n \"osi\": [512, 512, [], \"f41a\", \"M8 266.4c2.3-135.8 97.4-232.4 213.8-248.1 138.8-18.6 255.6 75.8 278 201.1 21.3 118.8-44 230-151.6 274-9.3 3.8-14.4 1.7-18-7.7-17.8-46.3-35.6-92.6-53.4-139-3.1-8.1-1-13.2 7-16.8 24.2-11 39.3-29.4 43.3-55.8 1.5-9.7 1-19.6-1.5-29.1s-6.9-18.4-12.9-26.1-13.6-14.1-22.2-18.8-18.1-7.5-27.9-8.3c-39-3.4-71.8 23.7-77.5 59.7-5.2 33 11.1 63.7 41.9 77.7 9.6 4.4 11.5 8.6 7.8 18.4-17.9 46.6-35.8 93.2-53.7 139.9-2.6 6.9-8.3 9.3-15.5 6.5-52.6-20.3-101.4-61-130.8-119-24.9-49.2-25.2-87.7-26.8-108.7zm20.9-1.9c.4 6.6 .6 14.3 1.3 22.1 6.3 71.9 49.6 143.5 131 183.1 3.2 1.5 4.4 .8 5.6-2.3 14.9-39.1 29.9-78.2 45-117.3 1.3-3.3 .6-4.8-2.4-6.7-31.6-19.9-47.3-48.5-45.6-86 1-21.6 9.3-40.5 23.8-56.3 30-32.7 77-39.8 115.5-17.6 15.6 9 28.2 22.3 36.2 38.4s11.2 34.2 9 52c-3.6 30.6-19.3 53.9-45.7 69.8-2.7 1.6-3.5 2.9-2.3 6 15.2 39.2 30.3 78.4 45.2 117.7 1.2 3.1 2.4 3.8 5.6 2.3 35.5-16.6 65.2-40.3 88.1-72 34.8-48.2 49.1-101.9 42.3-161-13.7-117.5-119.4-214.8-255.5-198-106.1 13-195.3 102.5-197.1 225.8z\"],\n \"gg\": [512, 512, [], \"f260\", \"M179.2 230.4l102.4 102.4-102.4 102.4-179.2-179.2 179.2-179.2 44.8 44.8-25.6 25.6-19.2-19.2-128 128 128 128 51.5-51.5-77.1-76.5 25.6-25.6zM332.8 76.8l-102.4 102.4 102.4 102.4 25.6-25.6-77.1-76.5 51.5-51.5 128 128-128 128-19.2-19.2-25.6 25.6 44.8 44.8 179.2-179.2-179.2-179.2z\"],\n \"buysellads\": [448, 512, [], \"f20d\", \"M224 150.7l42.9 160.7-85.8 0 42.9-160.7zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM382.7 405.3l-94.5-298.7-128.4 0-94.5 298.7 90.7 0 111.7-91.6 24.2 91.6 90.8 0z\"],\n \"google-plus\": [512, 512, [], \"f2b3\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM185.3 380c-32.9 0-64.4-13.1-87.7-36.3s-36.3-54.8-36.3-87.7 13.1-64.4 36.3-87.7 54.8-36.3 87.7-36.3c31.3 0 60.1 11 83 32.3l-33.6 32.6c-13.2-12.9-31.3-19.1-49.4-19.1-42.9 0-77.2 35.5-77.2 78.1S142.3 334 185.3 334c32.6 0 64.9-19.1 70.1-53.3l-70.1 0 0-42.6 116.9 0c1.3 6.8 1.9 13.8 1.9 20.7 0 70.8-47.5 121.2-118.8 121.2zM415.5 273.8l0 35.5-35.5 0 0-35.5-35.5 0 0-35.5 35.5 0 0-35.5 35.5 0 0 35.5 35.2 0 0 35.5-35.2 0z\"],\n \"screenpal\": [512, 512, [], \"e570\", \"M278.6 22.5a22.5 22.5 0 1 1 -45 0 22.5 22.5 0 1 1 45 0zM198.7 259a57.4 57.4 0 1 1 114.8 0 57.4 57.4 0 1 1 -114.8 0zm138.6 91c22.3-19.9 36.5-47.3 39.9-77l119.5 0c-3.5 61.4-30.4 119.2-75.2 161.4-44.7 42.2-103.9 65.8-165.4 65.8S135.4 476.6 90.7 434.4C45.9 392.2 19.1 334.4 15.5 273l119.7 0c3.4 29.7 17.6 57.1 39.9 77s51.2 30.9 81.1 30.9c29 0 58.7-11 81.1-30.9zM28.3 141.7a22.5 22.5 0 1 1 45-1.4 22.5 22.5 0 1 1 -45 1.4zm455.6-.7a22.4 22.4 0 1 1 -44.9 0 22.4 22.4 0 1 1 44.9 0zM318 95.3c-17.3 13.8-39.2 22.8-61.9 22.8s-44.6-9-61.9-22.8c-17.3-14.7-28.8-35.1-32.4-57.5 15.1-6.4 30.8-11.3 46.9-14.5 0 12.6 5 24.6 13.9 33.5s20.9 13.9 33.5 13.9 24.6-5 33.5-13.9 13.9-20.9 13.9-33.5c16.1 3.2 31.8 8.1 46.9 14.5-3.6 22.4-15.1 42.8-32.4 57.5zM82.9 231c-21.4 7.6-44.7 7.4-65.9-.6 2-16.3 5.6-32.3 10.8-47.9 5.4 3.1 11.3 5.1 17.5 6 6.2 .8 12.4 .4 18.5-1.2 6-1.7 11.6-4.4 16.6-8.2s9.1-8.5 12.2-13.9 5.1-11.4 6-17.5c.8-6.2 .4-12.5-1.2-18.5s-4.4-11.6-8.2-16.6c-3.8-4.9-8.5-9.1-13.9-12.2 10.8-12.3 22.9-23.5 36-33.3 17.6 14.3 29.5 34.5 33.6 56.8s.1 45.4-11.2 65c-11.4 19.6-29.4 34.5-50.7 42.1zm346.4 .1c-21.3-7.6-39.3-22.6-50.7-42.2-11.3-19.6-15.2-42.7-11.1-65 4.1-22.2 16-42.4 33.5-56.7 13.1 9.8 25.2 21 36 33.3-10.7 6.4-18.4 16.7-21.5 28.8-3.2 12-2.3 24.8 4.8 35.6 6.2 10.8 16.4 18.7 28.4 22s24.9 1.7 35.7-4.3c5.3 15.5 8.9 31.6 10.9 47.8-22.1 8.1-44.6 8.3-66 .7z\"],\n \"bitcoin\": [512, 512, [], \"f379\", \"M8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm354.3-35.3c4.9-33-20.2-50.7-54.6-62.6l11.1-44.7-27.2-6.8-10.9 43.5c-7.2-1.8-14.5-3.5-21.8-5.1l10.9-43.8-27.2-6.8-11.2 44.7c-5.9-1.3-11.7-2.7-17.4-4.1l0-.1-37.5-9.4-7.2 29.1s20.2 4.6 19.8 4.9c11 2.8 13 10 12.7 15.8l-12.7 50.9c.8 .2 1.7 .5 2.8 .9-.9-.2-1.9-.5-2.9-.7l-17.8 71.3c-1.3 3.3-4.8 8.4-12.5 6.5 .3 .4-19.8-4.9-19.8-4.9l-13.5 31.1 35.4 8.8c6.6 1.7 13 3.4 19.4 5l-11.3 45.2 27.2 6.8 11.2-44.7c7.2 2 14.4 3.8 21.7 5.6l-11.1 44.5 27.2 6.8 11.3-45.1c46.4 8.8 81.3 5.2 96-36.7 11.8-33.8-.6-53.3-25-66 17.8-4.1 31.2-15.8 34.7-39.9zm-62.2 87.2c-8.4 33.8-65.3 15.5-83.8 10.9l14.9-59.9c18.4 4.6 77.6 13.7 68.8 49zm8.4-87.7c-7.7 30.7-55 15.1-70.4 11.3l13.5-54.3c15.4 3.8 64.8 11 56.8 43z\"],\n \"swift\": [448, 512, [], \"f8e1\", \"M448 156.1c0-4.5-.1-9-.2-13.5-.1-9.9-1-19.7-2.6-29.4-1.7-9.7-4.8-19.2-9.2-28-9-17.7-23.4-32.1-41.2-41.1-8.8-4.5-18.3-7.6-28-9.2-9.7-1.6-19.6-2.5-29.4-2.6-4.5-.1-9-.2-13.5-.2L124.1 32c-4.5 0-9 .1-13.5 .2-2.4 .1-4.9 .2-7.4 .3-7.4 .3-14.8 1.1-22.1 2.3-7.3 1.3-14.4 3.3-21.2 6.1-2.3 1-4.6 2-6.8 3.1-6.6 3.4-12.8 7.5-18.4 12.3-1.9 1.6-3.7 3.3-5.4 5-7 7-12.9 15-17.4 23.8-4.4 8.8-7.6 18.3-9.2 28-1.6 9.7-2.4 19.6-2.5 29.4-.1 4.5-.2 9-.2 13.5L0 355.9c0 4.5 .1 9 .2 13.5 .1 9.9 1 19.7 2.6 29.4 1.7 9.7 4.8 19.2 9.2 28 9 17.7 23.4 32.1 41.1 41.1 8.8 4.4 18.3 7.5 28 9.2 9.7 1.6 19.6 2.5 29.4 2.6 4.5 .1 9 .2 13.5 .2l199.8 0c4.5 0 9-.1 13.5-.2 9.9-.1 19.7-1 29.4-2.6 9.7-1.7 19.2-4.8 28-9.2 17.7-9 32.1-23.4 41.1-41.2 4.4-8.8 7.6-18.3 9.2-28 1.6-9.7 2.5-19.6 2.6-29.4 .1-4.5 .2-9 .2-13.5l0-183.8c0-5.4 0-10.7 0-16zm-69.9 241c-20-38.9-57.2-29.3-76.3-19.5-1.7 1-3.5 2-5.2 3l-.4 .2c-39.5 21-92.5 22.5-145.8-.4-43.4-18.8-80.1-50.3-105.3-90.4 12.3 9.1 25.4 16.9 39.2 23.4 56.4 26.4 113 24.5 153 0-57-43.8-104.6-101-141.1-147.2-7-8.1-13.2-16.8-18.8-25.9 43.7 40 112.7 90.2 137.5 104.1-52.6-55.5-98.9-123.9-96.7-121.7 82.8 83.4 159.2 130.6 159.2 130.6 2.9 1.6 5 2.8 6.7 4 1.6-4.1 3-8.2 4.2-12.5 13.2-48.3-1.7-103.6-35.3-149.2 76.8 46.1 122.2 133.7 103.6 207.8-.4 1.7-1 3.4-1.4 5.1 38.5 47.4 28 98.2 23.1 88.6l0 0z\"],\n \"files-pinwheel\": [512, 512, [], \"e69f\", \"M253.5 246.4L137.2 130.2c-.6-.6-1-1.3-1.4-2s-.5-1.6-.5-2.4 .2-1.6 .5-2.4 .8-1.4 1.4-2L253.6 5.1c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3 2.1 1.3 2.8 2.3 1.1 2.2 1.1 3.5l0 232.5c0 1.3-.3 2.5-1 3.6s-1.7 1.9-2.9 2.4-2.5 .6-3.7 .3-2.4-.9-3.2-1.9zm40.3-4.4l0-134.4c0-.8 .1-1.6 .5-2.4s.8-1.5 1.3-2.1 1.3-1.1 2-1.4 1.6-.5 2.4-.5l134.4 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8 .6 2.4 .3 3.6-.9 2.3-1.7 3.2L304.3 246.4c-.9 .8-2 1.4-3.2 1.6s-2.4 .1-3.5-.4-2.1-1.3-2.8-2.3-1.1-2.2-1.1-3.4l.1 .1zm30.6 35c-1.2 0-2.5-.3-3.5-1s-1.9-1.6-2.4-2.8-.6-2.4-.4-3.6 .8-2.3 1.7-3.2L404 182.2c.6-.6 1.3-1 2-1.4s1.6-.5 2.4-.5 1.6 .2 2.4 .5 1.4 .8 2 1.4l84.4 84.2c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6-1.3 2.1-2.3 2.8-2.2 1.1-3.5 1.1l-168.5 0 .1-.1zm90.7 131l-95.3-95.2c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.7 1.3-2.1 2.4-2.8 2.3-1 3.5-1l95.2 0c1.7 0 3.2 .7 4.4 1.8s1.8 2.8 1.8 4.4l0 95.3c0 1.2-.4 2.5-1.1 3.5s-1.7 1.8-2.8 2.3-2.4 .6-3.6 .3-2.3-.9-3.2-1.7zM16.8 302.1l216.9 0c1.2 0 2.5 .4 3.5 1.1s1.8 1.7 2.3 2.8 .6 2.4 .3 3.6-.8 2.3-1.7 3.2L129.7 421.2c-.6 .6-1.3 1-2 1.4s-1.6 .5-2.4 .5-1.6-.2-2.4-.5-1.4-.8-2-1.4L12.3 312.8c-.9-.9-1.5-2-1.7-3.2s-.1-2.5 .4-3.6 1.3-2.1 2.3-2.8 2.3-1 3.5-1l0-.1zM264.3 465.3c0 .8-.2 1.6-.5 2.4s-.8 1.5-1.4 2-1.3 1-2 1.4-1.6 .5-2.4 .5l-128 0c-1.2 0-2.5-.4-3.5-1.1s-1.8-1.7-2.3-2.8-.6-2.4-.3-3.6 .8-2.3 1.7-3.2l128-128c.9-.9 2-1.5 3.2-1.7s2.5-.1 3.6 .3 2.1 1.3 2.8 2.3 1.1 2.2 1.1 3.5l0 128zm40-132.5l82.8 82.7c.6 .6 1 1.3 1.4 2s.5 1.6 .5 2.4-.2 1.6-.5 2.4-.8 1.4-1.4 2L304.3 507c-.9 .9-2 1.5-3.2 1.7s-2.5 .1-3.6-.3-2.1-1.3-2.8-2.3-1.1-2.2-1.1-3.5l0-165.4c0-1.2 .4-2.5 1.1-3.5s1.7-1.8 2.8-2.3 2.4-.6 3.6-.3 2.3 .8 3.2 1.7zM79 122.4c0-1.2 .3-2.5 1-3.5s1.7-1.8 2.8-2.3 2.4-.6 3.6-.4 2.3 .8 3.2 1.7L238.1 266.4c.9 .9 1.5 2 1.7 3.2s.1 2.5-.3 3.6-1.3 2.1-2.3 2.8-2.2 1.1-3.5 1.1l-148.4 0c-1.7 0-3.2-.7-4.4-1.8s-1.8-2.8-1.8-4.4l0-148.4-.1-.1z\"],\n \"laravel\": [512, 512, [], \"f3bd\", \"M504.6 115.8c-.1-.2-.2-.5-.3-.7-.1-.4-.3-.8-.5-1.2-.2-.2-.3-.5-.5-.7-.2-.3-.5-.6-.7-.9-.2-.2-.5-.4-.8-.6-.3-.2-.6-.5-.9-.7L404.6 55.5c-1.2-.7-2.6-1.1-4-1.1s-2.8 .4-4 1.1L300.3 111c-.3 .2-.6 .4-.9 .7-.3 .2-.5 .4-.8 .6-.3 .3-.5 .6-.7 .9-.2 .2-.4 .4-.5 .7-.2 .4-.4 .8-.5 1.2-.1 .2-.2 .4-.3 .7-.2 .7-.3 1.4-.3 2.1l0 105.2-80.2 46.2 0-205.9c0-.7-.1-1.4-.3-2.1-.1-.2-.2-.4-.3-.7-.1-.4-.3-.8-.5-1.2-.1-.3-.4-.5-.5-.7-.2-.3-.5-.6-.7-.9-.2-.2-.5-.4-.8-.6-.3-.2-.6-.5-.9-.7L115.8 1.1c-1.2-.7-2.6-1.1-4-1.1s-2.8 .4-4 1.1L11.5 56.5c-.3 .2-.6 .4-.9 .7-.3 .2-.5 .4-.8 .6-.3 .3-.5 .6-.7 .9-.2 .3-.4 .5-.6 .7-.2 .4-.4 .8-.5 1.2-.1 .2-.2 .4-.3 .7-.2 .7-.3 1.4-.3 2.1l0 329.7c0 1.4 .4 2.8 1.1 4s1.7 2.2 2.9 2.9L204 510.9c.4 .2 .9 .4 1.3 .5 .2 .1 .4 .2 .6 .3 1.3 .4 2.8 .4 4.1 0 .2-.1 .4-.2 .6-.2 .5-.2 1-.3 1.4-.6L404.6 400.1c1.2-.7 2.2-1.7 2.9-2.9s1.1-2.6 1.1-4l0-105.3 92.2-53.1c1.2-.7 2.2-1.7 2.9-3s1.1-2.6 1.1-4l0-109.8c0-.7-.1-1.4-.2-2.1zM111.8 17.3l80.2 46.1-80.2 46.2-80.2-46.2 80.2-46.2zm88.2 60l0 201.3c-33.2 19.1-59.9 34.5-80.2 46.2l0-201.3C153 104.4 179.7 89 200 77.3zm0 412.8L23.5 388.5 23.5 77.3c20.3 11.7 47.1 27.1 80.2 46.2l0 215.2c0 .3 .1 .6 .1 .9 0 .4 .1 .8 .2 1.2 .1 .3 .2 .6 .4 .9 .1 .3 .3 .7 .4 1 .2 .3 .4 .5 .6 .8 .2 .3 .4 .6 .7 .8 .2 .2 .5 .4 .8 .6 .3 .2 .6 .5 .9 .7l92.2 52.2 .1 92.4zm8-106.2L128 338.6c54.7-31.5 113.5-65.3 176.3-101.5l80.1 46.1C355 300 296.2 333.5 208 383.9zm184.5 4.6l-176.5 101.6 0-92.3C317.4 340 376.2 306.4 392.5 297l0 91.4zm0-119.1c-20.3-11.6-47.1-27-80.2-46.1l0-91.4c20.3 11.7 47.1 27.1 80.2 46.2l0 91.3zm8-105.3l-80.2-46.2 80.2-46.2 80.2 46.1-80.2 46.2zm8 105.3l0-91.3c33.2-19.1 60-34.5 80.3-46.2l0 91.4-80.3 46.2z\"],\n \"wpforms\": [448, 512, [], \"f298\", \"M448 75.2l0 361.7c0 24.3-19 43.2-43.2 43.2l-361.6 0C19.3 480 0 461.4 0 436.8L0 75.2C0 51.1 18.8 32 43.2 32l361.7 0c24 0 43.1 18.8 43.1 43.2zM410.7 436.8l0-361.6c0-3-2.6-5.8-5.8-5.8l-9.3 0-110.3 74.6-61.3-49.9-61.2 49.9-110.3-74.7-9.3 0c-3.2 0-5.8 2.8-5.8 5.8l0 361.7c0 3 2.6 5.8 5.8 5.8l361.7 0c3.2 .1 5.8-2.7 5.8-5.8zM150.2 186l0 37-73.5 0 0-37 73.5 0zm0 74.4l0 37.3-73.5 0 0-37.3 73.5 0zm11.1-147.3l54-43.7-118.5 0 64.5 43.7zm210 72.9l0 37-196 0 0-37 196 0zm0 74.4l0 37.3-196 0 0-37.3 196 0zM286.7 113.1l64.5-43.7-118.4 0 53.9 43.7zM371.3 335l0 37.3-99.4 0 0-37.3 99.4 0z\"],\n \"speaker-deck\": [512, 512, [], \"f83c\", \"M213.9 296L100 296c-26.5 0-52-10.5-70.7-29.3S0 222.5 0 196 10.5 144 29.3 125.3 73.5 96 100 96l132.8 0c10.6 0 20.8 4.2 28.3 11.7s11.7 17.7 11.7 28.3-4.2 20.8-11.7 28.3-17.7 11.7-28.3 11.7L98 176c-26.5 0-26.4 40 0 40l113.8 0c26.5 0 52 10.5 70.7 29.3s29.3 44.2 29.3 70.7-10.5 52-29.3 70.7-44.2 29.3-70.7 29.3L40 416c-10.6 0-20.8-4.2-28.3-11.7S0 386.6 0 376 4.2 355.2 11.7 347.7 29.4 336 40 336l173.9 0c26.5 0 26.5-40 0-40zM298 416c13.5-9.2 25-21 33.8-34.7s14.7-29.2 17.3-45.3l64.6 0c2.6 0 5.2-.6 7.6-1.6s4.6-2.5 6.4-4.4 3.3-4.1 4.2-6.5 1.5-5 1.4-7.6l0-120c0-2.6-.5-5.2-1.4-7.6s-2.4-4.6-4.2-6.5-4-3.3-6.4-4.4-5-1.6-7.6-1.6l-117.2 0c9.7-11.1 15-25.3 15-40s-5.3-28.9-15-40l136.9 0c43.4 0 78.6 35.8 78.6 80l0 160c0 44.2-35.2 80-78.6 80L298 416z\"],\n \"flickr\": [448, 512, [], \"f16e\", \"M400 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l352 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM144.5 192a63.5 63.5 0 1 1 0 127 63.5 63.5 0 1 1 0-127zm159 0a63.5 63.5 0 1 1 0 127 63.5 63.5 0 1 1 0-127z\"],\n \"cc-visa\": [576, 512, [], \"f1f0\", \"M470.1 231.3s7.6 37.2 9.3 45l-33.4 0c3.3-8.9 16-43.5 16-43.5-.2 .3 3.3-9.1 5.3-14.9l2.8 13.4zM576 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l480 0c26.5 0 48 21.5 48 48zM152.5 331.2l63.2-155.2-42.5 0-39.3 106-4.3-21.5-14-71.4c-2.3-9.9-9.4-12.7-18.2-13.1l-64.7 0-.7 3.1c15.8 4 29.9 9.8 42.2 17.1l35.8 135 42.5 0zm94.4 .2l25.2-155.4-40.2 0-25.1 155.4 40.1 0zm139.9-50.8c.2-17.7-10.6-31.2-33.7-42.3-14.1-7.1-22.7-11.9-22.7-19.2 .2-6.6 7.3-13.4 23.1-13.4 13.1-.3 22.7 2.8 29.9 5.9l3.6 1.7 5.5-33.6c-7.9-3.1-20.5-6.6-36-6.6-39.7 0-67.6 21.2-67.8 51.4-.3 22.3 20 34.7 35.2 42.2 15.5 7.6 20.8 12.6 20.8 19.3-.2 10.4-12.6 15.2-24.1 15.2-16 0-24.6-2.5-37.7-8.3l-5.3-2.5-5.6 34.9c9.4 4.3 26.8 8.1 44.8 8.3 42.2 .1 69.7-20.8 70-53zM528 331.4l-32.4-155.4-31.1 0c-9.6 0-16.9 2.8-21 12.9l-59.7 142.5 42.2 0s6.9-19.2 8.4-23.3l51.6 0c1.2 5.5 4.8 23.3 4.8 23.3l37.2 0z\"],\n \"upwork\": [640, 512, [], \"e641\", \"M493.9 295.6c-50.3 0-83.5-38.9-92.8-53.9 11.9-95.3 46.8-125.4 92.8-125.4 45.5 0 80.9 36.4 80.9 89.7s-35.4 89.7-80.9 89.7l0-.1zm0-237.8c-81.9 0-127.8 53.4-141 108.4-14.9-28-25.9-65.5-34.5-100.3l-113.2 0 0 141c0 51.1-23.3 89-68.8 89s-71.6-37.8-71.6-89l.5-141-65.3 0 0 141c0 41.1 13.3 78.4 37.6 105.1 25 27.5 59.2 41.8 98.8 41.8 78.8 0 133.8-60.4 133.8-146.9l0-94.8c8.2 31.2 27.8 91.1 65.3 143.6l-35 199.4 66.4 0 23.1-141.3c7.6 6.3 15.7 12 24.2 17 22.2 14 47.7 21.9 73.9 22.8 0 0 4 .2 6.1 .2 81.2 0 145.9-62.9 145.9-147.8S575.3 57.9 494.1 57.9l-.2-.1z\"],\n \"kakao-talk\": [576, 512, [], \"e7d7\", \"M288 2.5c159.1 0 288 101.7 288 227.1 0 125.4-128.9 227.1-288 227.1-17.5 0-34.6-1.2-51.2-3.6-16.6 11.7-112.6 79.1-121.7 80.4 0 0-3.7 1.4-6.9-.4s-2.6-6.7-2.6-6.7C106.6 519.8 130.6 437.2 135 421.9 53.9 381.8 0 310.6 0 229.5 0 104.1 128.9 2.5 288 2.5zM86.2 161.7c-9 0-16.3 7.3-16.3 16.3s7.3 16.3 16.3 16.3l25.9 0 0 98.7c0 8.8 7.5 15.9 16.6 15.9s16.6-7.1 16.6-15.9l0-98.7 25.9 0c9 0 16.3-7.3 16.3-16.3s-7.3-16.3-16.3-16.3l-85.1 0zm140.8 0c-10.8 .2-19.3 8.4-22.1 16.4L165.2 282.7c-5 15.7-.6 21.5 3.9 23.6 3.2 1.5 6.9 2.3 10.6 2.3 6.9 0 12.2-2.8 13.8-7.3l8.2-21.6 50.7 0 8.2 21.5c1.6 4.5 6.9 7.3 13.8 7.3 3.7 0 7.3-.8 10.6-2.3 4.6-2.1 9-7.9 3.9-23.6L249.2 178.1c-2.8-8-11.3-16.2-22.2-16.4zm180.9 0c-9.2 0-16.6 7.5-16.6 16.6l0 113.7c0 9.2 7.5 16.6 16.6 16.6s16.6-7.5 16.6-16.6l0-36.2 5.8-5.8 38.9 51.6c3.2 4.2 8 6.6 13.3 6.6 3.6 0 7.1-1.1 10-3.3 3.5-2.7 5.8-6.6 6.4-11s-.5-8.8-3.2-12.3l-40.9-54.2 37.9-37.8c2.6-2.6 3.9-6.2 3.7-10.1-.2-3.9-2-7.6-4.9-10.5-3.1-3.1-7.3-4.9-11.4-4.9-3.6 0-6.8 1.3-9.2 3.7l-46.3 46.4 0-35.7c0-9.2-7.5-16.6-16.6-16.6zm-91.3 0c-9.3 0-16.9 7.5-16.9 16.6l0 112.8c0 8.4 7.1 15.2 15.9 15.3l53.3 0c8.8 0 15.9-6.9 15.9-15.3s-7.2-15.2-15.9-15.2l-35.3 0 0-97.6c0-9.2-7.6-16.6-17-16.6zm-73 88.6l-33.2 0 16.6-47.1 16.6 47.1z\"],\n \"flutter\": [448, 512, [], \"e694\", \"M429.5 236.3L291.7 374.1 429.5 512 272 512c-36.1-36.1-82.1-82.1-137.9-137.9l137.9-137.8 157.5 0zM272 0L16 256 94.8 334.8 429.5 0 272 0z\"],\n \"buffer\": [448, 512, [], \"f837\", \"M428.2 380.7L231.7 478.5c-2.3 1-4.8 1.5-7.3 1.5s-5-.5-7.3-1.5L20.5 380.7c-4-2-4-5.3 0-7.3L67.6 350c2.3-1 4.8-1.5 7.3-1.5s5 .5 7.3 1.5l134.8 67c2.3 1 4.8 1.5 7.3 1.5s5-.5 7.3-1.5l134.8-67c2.3-1 4.8-1.5 7.3-1.5s5 .5 7.3 1.5l47.1 23.4c4 2 4 5.2 0 7.2zm0-136.5l-47.1-23.4c-2.3-1-4.8-1.5-7.3-1.5s-5 .5-7.3 1.5L231.7 287.8c-2.3 1-4.8 1.5-7.3 1.5s-5-.5-7.3-1.5L82.3 220.7c-2.3-1-4.8-1.5-7.3-1.5s-5 .5-7.3 1.5L20.5 244.1c-4 2-4 5.3 0 7.3l196.5 97.8c2.3 1 4.8 1.5 7.3 1.5s5-.5 7.3-1.5l196.5-97.8c4-2 4-5.3 0-7.3zM20.5 130.4L217 220.7c4.7 1.9 10 1.9 14.7 0l196.5-90.3c4-1.9 4-4.9 0-6.7L231.7 33.4c-4.7-1.9-10-1.9-14.7 0L20.5 123.7c-4 1.8-4 4.9 0 6.7z\"],\n \"gratipay\": [512, 512, [], \"f184\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM374.3 233.7L257.7 391.3 141.3 233.7c-9-12.3-19.7-52 14-74.3 29-18.7 56.4-4.3 70.7 12.3 16.4 18.5 48.1 17.4 63.7 0 14.3-16.6 41.7-31 70.3-12.3 34 22.3 23.3 61.9 14.2 74.3z\"],\n \"google-pay\": [640, 512, [], \"e079\", \"M105.7 215l0 41.2 57.1 0c-1.2 6.6-3.6 12.9-7.2 18.5s-8.4 10.4-13.9 14.1c-9.5 6.6-21.7 10.3-36 10.3-27.6 0-50.9-18.9-59.3-44.2-4.4-13.3-4.4-27.7 0-41 8.4-25.5 31.7-44.4 59.3-44.4 7.5-.1 14.9 1.2 21.9 4s13.3 6.9 18.6 12.1L176.5 155c-19.1-18.1-44.4-28.1-70.7-27.8-19.7 .1-38.9 5.7-55.6 16.1s-30.1 25.3-38.8 43C3.9 201.2 0 217.7 0 234.4s3.9 33.2 11.3 48.1l0 .2c8.7 17.7 22.1 32.5 38.8 43s35.9 16 55.6 16c28.5 0 52.5-9.5 70-25.9 20-18.6 31.4-46.2 31.4-78.9 0-7.3-.6-14.6-1.8-21.8l-99.7 0zm389.4-4c-10.1-9.4-23.9-14.1-41.4-14.1-22.5 0-39.3 8.3-50.5 24.9L424.1 235c7.6-11.3 18.1-17 31.3-17 8.4 0 16.5 3.2 22.7 8.8 3 2.6 5.5 5.9 7.1 9.6s2.5 7.6 2.5 11.7l0 5.5c-9.1-5.1-20.6-7.8-34.6-7.8-16.4 0-29.6 3.9-39.5 11.8s-14.8 18.3-14.8 31.6c-.2 5.9 1 11.8 3.4 17.2s6 10.2 10.5 14.1c9.2 8.3 21 12.5 34.8 12.5 16.3 0 29.2-7.3 39-21.9l1 0 0 17.7 22.6 0 0-78.7c.1-16.6-4.9-29.7-15-39zm-19.2 89.3c-3.5 3.5-7.6 6.3-12.2 8.2s-9.5 2.9-14.4 2.9c-6.7 .1-13.1-2.1-18.3-6.2-2.4-1.8-4.4-4.2-5.7-6.9s-2-5.7-2-8.7c0-7 3.2-12.8 9.5-17.4s14.5-7 24.1-7c13.2-.2 23.5 2.8 30.8 8.8 0 10.1-4 18.9-11.7 26.4zm-93.7-142c-5.3-5.3-11.6-9.5-18.6-12.3s-14.4-4.2-21.9-4l-62.7 0 0 186.7 23.6 0 0-75.6 39 0c16 0 29.5-5.4 40.5-15.9 .9-.9 1.8-1.8 2.6-2.7 9.6-10.5 14.8-24.4 14.3-38.6s-6.6-27.7-16.9-37.6l0 0zm-16.6 62.2c-3 3.2-6.6 5.7-10.6 7.4s-8.4 2.5-12.7 2.3l-39.6 0 0-65.2 39.6 0c8.5 0 16.6 3.3 22.6 9.2 6.1 6.1 9.6 14.3 9.8 23s-3.1 17-9 23.3l0 0zM614.3 201l-36.5 91.7-.5 0-37.4-91.7-25.7 0 51.8 119.6-29.4 64.3 24.3 0 79-183.9-25.7 0z\"],\n \"apple\": [384, 512, [], \"f179\", \"M319.1 268.7c-.2-36.7 16.4-64.4 50-84.8-18.8-26.9-47.2-41.7-84.7-44.6-35.5-2.8-74.3 20.7-88.5 20.7-15 0-49.4-19.7-76.4-19.7-55.8 .9-115.1 44.5-115.1 133.2 0 26.2 4.8 53.3 14.4 81.2 12.8 36.7 59 126.7 107.2 125.2 25.2-.6 43-17.9 75.8-17.9 31.8 0 48.3 17.9 76.4 17.9 48.6-.7 90.4-82.5 102.6-119.3-65.2-30.7-61.7-90-61.7-91.9zM262.5 104.5c27.3-32.4 24.8-61.9 24-72.5-24.1 1.4-52 16.4-67.9 34.9-17.5 19.8-27.8 44.3-25.6 71.9 26.1 2 49.9-11.4 69.5-34.3z\"],\n \"tumblr\": [320, 512, [], \"f173\", \"M309.9 480.3c-13.6 14.5-50 31.7-97.4 31.7-120.8 0-147-88.8-147-140.6l0-144-47.5 0c-5.5 0-10-4.5-10-10l0-68c0-7.2 4.5-13.6 11.3-16 62-21.8 81.5-76 84.3-117.1 .8-11 6.5-16.3 16.1-16.3l70.9 0c5.5 0 10 4.5 10 10l0 115.2 83 0c5.5 0 10 4.4 10 9.9l0 81.7c0 5.5-4.5 10-10 10l-83.4 0 0 133.2c0 34.2 23.7 53.6 68 35.8 4.8-1.9 9-3.2 12.7-2.2 3.5 .9 5.8 3.4 7.4 7.9l22 64.3c1.8 5 3.3 10.6-.4 14.5z\"],\n \"phoenix-squadron\": [512, 512, [], \"f511\", \"M96 63.4c46.5-36.1 105.6-56.1 164.5-54.6 29.6-.4 59.1 5.4 86.9 15.3-24.1-4.6-49-6.3-73.4-2.5-42.9 5.3-83 27.2-111.8 59.2 5.7-1 10.8-3.7 16-5.9 18.1-7.9 37.5-13.3 57.2-14.8 19.7-2.1 39.6-.4 59.3 1.9-14.4 2.8-29.1 4.6-43 9.6-34.4 11.1-65.3 33.2-86.3 62.6-13.8 19.7-23.6 42.9-24.7 67.1-.4 16.5 5.2 34.8 19.8 44 11.2 6.8 24.6 9.2 37.5 6.7 15.4-2.5 30.1-8.6 43.6-16.3 11.5-6.8 22.7-14.6 32-24.3 3.8-3.2 2.5-8.4 2.6-12.8-2.1-.3-4.4-1.1-6.3 .3-11.4 6.3-23.4 11.4-35.8 15.4-20 6.2-42.2 8.5-62.1 .8 12.8 1.7 26.1 .3 37.7-5.4 20.2-9.7 36.8-25.2 54.4-38.8 27.7-21.3 57.5-39.9 88.9-55.3 25.7-12 52.9-22.8 81.6-24.1-15.6 13.7-32.1 26.5-46.8 41.4-14.5 14-27.5 29.5-40.1 45.2-3.5 4.6-9 6.9-13.6 10.2-22.4 15-40.3 35.8-51.9 60.1-9.3 19.7-14.5 41.9-11.8 63.6 1.9 13.7 8.7 27.6 20.9 34.9 12.9 8 29 8.1 43.5 5.1 32.8-7.4 61.4-28.9 81-55.8 20.4-27.5 30.5-62.2 29.2-96.3-.5-7.5-1.6-15-1.7-22.5 8 19.5 14.8 39.7 16.6 60.8 2 14.3 .7 28.8-1.6 42.9-1.9 11-5.7 21.5-7.8 32.4 20.4-22.9 34-50.9 39.3-81.1 5.6-35.5 .7-71.9-14.2-104.6 20.8 32 32.3 69.6 35.7 107.5 .5 12.7 .5 25.5 0 38.2-2.8 34.3-12.9 67.6-29.6 97.8-26.1 47.3-68 85.6-117.2 108-78.3 36.2-174.7 31.3-248-14.7-39-23.8-70.6-58-91.4-98.7-14.7-28.9-23.3-60.5-25.4-92.9l0-31.3C3.9 172 40.9 105.8 96 63.4zm222 80.3c5.5-.9 10.8-2.4 16-4.5 5-1.8 9.2-5.9 10.3-11.2-9 5-18 9.9-26.3 15.7z\"],\n \"centercode\": [512, 512, [], \"f380\", \"M201.8 254.8a64.1 64.1 0 1 1 127.4 13.8 64.1 64.1 0 1 1 -127.4-13.8zm41.6 248.9C96.7 496-8.2 365.5 10.1 224.3 21.3 137.7 75.9 67.4 149.2 32.3 310.2-44.8 498.9 69.7 503.9 248.9 508 395.9 385.5 511.1 243.4 503.7zm179.9-180c27.9-118-160.5-205.9-237.2-234.2-57.5 56.3-69.1 188.6-33.8 344.4 68.8 15.8 169.1-26.4 271-110.2z\"],\n \"debian\": [448, 512, [], \"e60b\", \"M380.4 245.6c3-7.6 5.5-14 5.2-24.4l-4.3 9c4.4-13.2 4-27.1 3.6-40.4-.2-6-.3-11.8 0-17.4l-1.8-.5c-1.5-45.2-40.6-93.1-75.3-109.4-30-13.8-76.1-16.2-97.3-5.8 1.3-1.1 4.2-2 6.8-2.7l.3-.1c3.3-1 6-1.7 4-2.9-19.2 1.9-24.9 5.5-31.1 9.4l-.1 0c-4.6 2.9-9.5 6-20.3 8.7-3.5 3.4 1.7 2 5.8 .9s7.2-1.9-.1 2.4c-3.5 1-6.6 1.3-9.6 1.6l-.1 0c-8.3 .8-15.8 1.6-30.7 17 .8 1.3 3.4-.2 5.3-1.3l.1-.1c2.3-1.4 3.4-2-1.7 4.4-19.1-2.4-60.3 43.7-69.1 59l4.6 .8c-3.2 8-6.8 14.8-10 20.8-4.3 8.1-7.9 14.9-8.7 21.3-.3 5.1-1 11-1.7 17.3-.1 1-.2 2-.3 3l-.1 .6c-3 27.3-6.7 60.8 3.9 73l-1.3 13c.6 1.2 1.1 2.3 1.6 3.5 .2 .4 .4 .8 .5 1.1 1 2.1 2 4.2 3.3 6.2l-3 .2c7 22.1 10.8 22.5 15.1 22.9 4.4 .4 9.3 .9 18.7 24.2-2.7-.9-5.5-1.9-9.4-7.2-.5 4.1 5.8 16.3 13.1 25.8l-3.1 3.6c2.1 3.7 4.8 6.2 7.6 8.8 1 .9 2.1 1.9 3.1 2.9-11.9-6.5 3.2 13.7 11.9 25.2 .8 1.1 1.5 2 2.2 2.9 1.4 1.9 2.5 3.4 2.9 4.1l2.4-4.2c-.3 6.1 4.3 13.9 13.1 24.7l7.3-.3c3 6 14 16.7 20.7 17.2l-4.4 5.8c8.1 2.6 10.3 4.3 12.7 6.2 2.6 2.1 5.4 4.3 16.1 8.1l-4.2-7.4c3.5 3 6.2 5.9 8.8 8.7l.1 .1c5.2 5.6 9.9 10.6 19.7 15.3 10.7 3.7 16.6 4.7 22.7 5.8 .3 0 .6 .1 .9 .1 5.4 .8 11.2 1.8 20.8 4.5-1.1-.1-2.2-.1-3.3-.1-2.3-.1-4.7-.1-7-.1-14.4-.2-29.2-.4-42.7-5.2-96.6-25.7-184.9-139-178.4-255.6-.6-9.9-.3-20.9 0-30.7 .4-13.5 .7-24.8-1.6-28.3l1-3.1c5.3-17.4 11.7-38.2 23.8-62.8l-.1-.2 0-.1c.4 .4 3.4 3.4 8.8-5.8 .8-1.8 1.6-3.7 2.4-5.6 .5-1.1 .9-2.2 1.4-3.2 2.5-6.1 5.1-12.3 8.4-17.9l2.6-.6c1.7-10.1 17-23.8 29.8-35.2l1.1-1c5.7-5.1 10.7-9.7 13.6-13.1l.7 4.4c17-15.9 44.6-27.5 65.6-36.4l.5-.2c4.8-2 9.3-3.9 13.3-5.7-3.4 3.8 2.2 2.7 10 1 4.8-1 10.4-2.1 15.3-2.4l-3.9 2.1c-2.7 1.4-5.4 2.8-8 4.6 8.1-2 11.7-1.4 15.7-.8l.3 0c3.5 .6 7.3 1.2 14.6 .2-5.6 .8-12.3 3-11.2 3.8 7.9 .9 12.8-.1 17.2-1l.2 0c5.5-1.1 10.3-2 19.3 .9l-1-4.8c7.3 2.6 12.7 4.3 17.5 5.8l.5 .1c10 3 17.6 5.3 34.2 14.1 3.2 .2 5.3-.5 7.4-1.2l.1 0c3.6-1.1 7-2.1 15.2 1.2 .3 .5 .5 1 .7 1.4 .1 .2 .2 .5 .3 .7l0 .1c1 2.6 1.8 4.6 14.6 12.1 1.7-.7-2.7-4.7-6.4-8.2l-.1-.1c-.2-.1-.3-.3-.5-.4 32.2 17.3 67.3 54.1 78 93.5-6-11.1-5.2-5.5-4.3 .5 .6 4 1.2 8.1-.2 7.5 4.5 12.1 8.1 24.5 10.4 37.4l-.8-2.9-.1-.3c-3.3-11.9-9.6-34.3-19.9-49.3-.4 4.3-2.8 3.9-5.2 3.5l-.1 0c-3.3-.6-6.2-1.1-1.9 12.6 2.6 3.8 3.1 2.4 3.5 1.1 .5-1.5 .9-2.7 4.7 5.2 .1 4.1 1 8.2 2.1 12.7l.1 .6c.1 .3 .1 .5 .2 .8l.1 .6c.6 2.6 1.3 5.4 1.8 8.4-1.1-.2-2.3-2.2-3.4-4.2-1.4-2.4-2.8-4.7-3.7-3.2 2.4 11.5 6.5 17.4 8 18.3-.3 .6-.6 .7-1.1 .7-.8 0-1.8 .1-1.9 5.3 .7 13.7 3.3 12.5 5.3 11.6 .6-.3 1.2-.6 1.7-.4-.6 2.5-1.6 5.1-2.7 7.9-2.8 7.1-6 15.4-3.4 26.1-.8-3-2-6-3.1-8.9l-.1-.4c-.2-.5-.4-1-.6-1.5-.3-.8-.6-1.6-.9-2.3-.6 4.4-.3 7.7-.1 10.6l0 .7c.4 5.3 .7 10-3 19.9 4.3-14.2 3.8-26.9-.2-20.8 1 10.9-3.7 20.4-8 28.9l-.1 .2c-3.6 7.1-6.8 13.5-5.9 19.3l-5.2-7.1c-7.5 10.9-7 13.3-6.5 15.5l0 .1c.5 1.9 1 3.8-3.4 10.8 1.7-2.9 1.3-3.6 1-4.2-.4-.8-.7-1.5 1.7-5.1-1.6 .1-5.5 3.9-10.1 8.5-3.9 3.9-8.5 8.4-12.8 11.8-37.5 30.1-82.3 34-125.6 17.8 .2-1-.2-2.1-3.1-4.1-36.8-28.2-58.5-52.1-50.9-107.5 2.1-1.6 3.6-5.8 5.3-10.8l.2-.4 .1-.3 0-.1c2.9-8.4 6.5-18.8 14.3-23.8 7.8-17.3 31.3-33.3 56.4-33.7 25.6-1.4 47.2 13.7 58.1 27.9-19.8-18.4-52.1-24-79.7-10.4-28.2 12.7-45 43.8-42.5 74.7 .3-.4 .6-.6 .9-.8l.2-.2c.6-.5 1.1-.9 1.4-3.3-.9 60.2 64.8 104.3 112.1 82l.6 1.3c12.7-3.5 15.9-6.5 20.3-10.7l.1-.1c2.2-2.1 4.7-4.5 8.9-7.3-.3 .7-1.3 1.7-2.4 2.7-2.2 2.1-4.6 4.5-1.6 4.6 5-1.3 18.5-13.4 28.5-22.3 .6-.5 1.2-1 1.7-1.5 1.5-1.3 2.8-2.5 4-3.6l.3-.3c1.9-4.2 1.6-5.6 1.3-7l0-.1c-.4-1.6-.8-3.3 2.4-9.6l7.3-3.7c.8-2.1 1.5-4.1 2.2-6 .2-.6 .5-1.2 .7-1.8l-.4-.2-.1-.1zM248 334.1c-6-3-13.7-8.9-14.8-11.4l-.4 .3c-.3 .6-.5 1.3-.2 2.2-12.2-5.7-23.4-14.3-32.6-24.9 4.9 7.1 10.1 14.1 17 19.5-6.9-2.3-15.1-11.8-21.6-19.3l-.1-.1c-4.3-5-7.9-9.1-9.7-9.5 19.8 35.5 80.5 62.3 112.3 49-14.7 .5-33.4 .3-49.9-5.8zm79.3-119.7l-.1-.2c-.5-1.5-1.1-3.1-1.7-3.4 1.4-5.8 5.4-10.7 4.4 4.6-1 3.8-1.8 1.5-2.6-1zm-4.2 22.2c-1.3 7.9-5 15.5-10.1 22.5 .2-2-1.2-2.4-2.6-2.8-2.9-.8-5.9-1.6 5.6-16.1-.5 1.9-2.1 4.6-3.7 7.3l-.3 .4c-3.6 5.9-6.7 11 4 4.3l1-1.8c2.6-4.5 5-8.8 6-13.8l.1 0zm-55.6 33.9c7.1 .6 14.1 .6 21-1.1-2.5 2.4-5.2 4.8-8.3 7.2-11.1-1.7-21.2-6-12.7-6.1zm-92.6 11.6c3.6 7.1 6.4 11.5 9 15.7l.1 .2c2.3 3.7 4.4 7.1 6.8 11.7-5.1-4.2-8.7-9.5-12.5-15l-.3-.5c-1.4-2.1-2.8-4.2-4.4-6.2l1.2-5.9 .1 0zm7.5-9.6c1.6 3.3 3.2 6.4 5.7 9.1l2.6 7.7-1.3-2.1c-3.2-5.3-6.3-10.6-8-16.7l1 2zm238.9-41.6c-2.3 17.4-7.7 34.6-16 50.3 7.6-14.9 12.5-30.9 14.8-47.2l1.2-3.1zM35.8 110.6c.4 .8 1.4 .5 2.3 .3 1.9-.5 3.6-.9-.1 7.6-.5 .3-1 .7-1.5 1-1.4 .9-2.8 1.9-3.9 3 1.9-3.8 3.5-7.4 3.2-11.9zM25.5 152.3c-.7 3.7-1.5 7.9-3.4 13.9 .2-1.9 0-3.5-.2-4.9l0-.1c-.4-3.4-.7-6.3 4.3-12.8-.3 1.2-.5 2.5-.7 3.8l0 .1z\"],\n \"mastodon\": [448, 512, [], \"f4f6\", \"M433 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.6-28.4-290.5 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.6-.9-9.3-.9-13.9 85.6 20.9 158.7 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zM357.9 304.3l-46.6 0 0-114.2c0-49.7-64-51.6-64 6.9l0 62.5-46.3 0 0-62.5c0-58.5-64-56.6-64-6.9l0 114.2-46.7 0c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175l0 0z\"],\n \"sketch\": [512, 512, [], \"f7c6\", \"M27.8 162.2l-18.5 24.9 90.5 0 6.9-130.7-78.9 105.8zM396.6 45.7L268 32 403.7 179.2 396.6 45.7zM112.5 218.3l-11.2-22-91.1 0 224.9 261.7-122.6-239.7zm2-31.2l284 0C340.6 124.3 293.3 72.9 256.6 33L114.5 187.1zm297.3 9.1l-133.9 261.8 224.8-261.7-90.9 0 0-.1zM415.7 69l-9.4-12.6 .9 17.3 6.1 113.4 90.3 0-87.9-118.1zM113.8 93.5L109.2 179.1 245 32 116.4 45.7 113.8 93.5zM401.5 196.2l-290 0c18.2 35.6 66.6 130.2 145.1 283.8L401.5 196.2z\"],\n \"web-awesome\": [640, 512, [], \"e682\", \"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192 552.4 171.1c-5.3-7.7-8.4-17.1-8.4-27.1 0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144 0 117.5 21.5 96 48 96s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1 0-28.7 23.3-52 52-52s52 23.3 52 52l.1 0z\"],\n \"sass\": [640, 512, [], \"f41e\", \"M301.8 378.9l0 0zm249.1-87c-20.1 0-40 4.6-58 13.5-5.9-11.9-12-22.3-13-30.1-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.3 5.9c-2.3 6.2-4.1 12.6-5.3 19.1-2.3 11.7-25.8 53.5-39.1 75.3-4.4-8.5-8.1-16-8.9-22-1.2-9.1-2.5-14.5-1.1-25.3s7.7-26.1 7.6-27.2-1.4-6.6-14.3-6.7-24 2.5-25.3 5.9-2.7 11.4-5.3 19.1-33.9 77.3-42.1 95.4c-4.2 9.2-7.8 16.6-10.4 21.6-.4 .8-.7 1.3-.9 1.7 .3-.5 .5-1 .5-.8-2.2 4.3-3.5 6.7-3.5 6.7l0 .1c-1.7 3.2-3.6 6.1-4.5 6.1-.6 0-1.9-8.4 .3-19.9 4.7-24.2 15.8-61.8 15.7-63.1-.1-.7 2.1-7.2-7.3-10.7-9.1-3.3-12.4 2.2-13.2 2.2s-1.4 2-1.4 2 10.1-42.4-19.4-42.4c-18.4 0-44 20.2-56.6 38.5-7.9 4.3-25 13.6-43 23.5-6.9 3.8-14 7.7-20.7 11.4-.5-.5-.9-1-1.4-1.5-35.8-38.2-101.9-65.2-99.1-116.5 1-18.7 7.5-67.8 127.1-127.4 98-48.8 176.3-35.4 189.8-5.6 19.4 42.5-41.9 121.6-143.7 133-38.8 4.3-59.2-10.7-64.3-16.3-5.3-5.9-6.1-6.2-8.1-5.1-3.3 1.8-1.2 7 0 10.1 3 7.9 15.5 21.9 36.8 28.9 18.7 6.1 64.2 9.5 119.2-11.8 61.8-23.8 109.9-90.1 95.8-145.6-14.4-56.4-107.9-74.9-196.3-43.5-52.7 18.7-109.7 48.1-150.7 86.4-48.7 45.6-56.5 85.3-53.3 101.9 11.4 58.9 92.6 97.3 125.1 125.7-1.6 .9-3.1 1.7-4.5 2.5-16.3 8.1-78.2 40.5-93.7 74.7-17.5 38.8 2.9 66.6 16.3 70.4 41.8 11.6 84.6-9.3 107.6-43.6s20.2-79.1 9.6-99.5c-.1-.3-.3-.5-.4-.8 4.2-2.5 8.5-5 12.8-7.5 8.3-4.9 16.4-9.4 23.5-13.3-4 10.8-6.9 23.8-8.4 42.6-1.8 22 7.3 50.5 19.1 61.7 5.2 4.9 11.5 5 15.4 5 13.8 0 20-11.4 26.9-25 8.5-16.6 16-35.9 16-35.9s-9.4 52.2 16.3 52.2c9.4 0 18.8-12.1 23-18.3l0 .1s.2-.4 .7-1.2c1-1.5 1.5-2.4 1.5-2.4l0-.3c3.8-6.5 12.1-21.4 24.6-46 16.2-31.8 31.7-71.5 31.7-71.5 1.5 8.7 3.6 17.3 6.2 25.8 2.8 9.5 8.7 19.9 13.4 30-3.8 5.2-6.1 8.2-6.1 8.2 0 .1 0 .1 .1 .2-3 4-6.4 8.3-9.9 12.5-12.8 15.2-28 32.6-30 37.6-2.4 5.9-1.8 10.3 2.8 13.7 3.4 2.6 9.4 3 15.7 2.5 11.5-.8 19.6-3.6 23.5-5.4 7.2-2.6 14-6.1 20.2-10.6 12.5-9.2 20.1-22.4 19.4-39.8-.4-9.6-3.5-19.2-7.3-28.2 1.1-1.6 2.3-3.3 3.4-5 19.8-28.9 35.1-60.6 35.1-60.6 1.5 8.7 3.6 17.3 6.2 25.8 2.4 8.1 7.1 17 11.4 25.7-18.6 15.1-30.1 32.6-34.1 44.1-7.4 21.3-1.6 30.9 9.3 33.1 4.9 1 11.9-1.3 17.1-3.5 7.7-2.6 15-6.3 21.6-11.1 12.5-9.2 24.6-22.1 23.8-39.6-.3-7.9-2.5-15.8-5.4-23.4 15.7-6.6 36.1-10.2 62.1-7.2 55.7 6.5 66.6 41.3 64.5 55.8s-13.8 22.6-17.7 25-5.1 3.3-4.8 5.1c.5 2.6 2.3 2.5 5.6 1.9 4.6-.8 29.2-11.8 30.3-38.7 1.6-34-31.1-71.4-89-71.1l0 0zM121.8 436.6c-18.4 20.1-44.2 27.7-55.3 21.3-11.9-6.9-7.2-36.5 15.5-57.9 13.8-13 31.6-25 43.4-32.4 2.7-1.6 6.6-4 11.4-6.9 .8-.5 1.2-.7 1.2-.7 .9-.6 1.9-1.1 2.9-1.7 8.3 30.4 .3 57.2-19.1 78.3l0 0zm134.4-91.4c-6.4 15.7-19.9 55.7-28.1 53.6-7-1.8-11.3-32.3-1.4-62.3 5-15.1 15.6-33.1 21.9-40.1 10.1-11.3 21.2-14.9 23.8-10.4 3.5 5.9-12.2 49.4-16.2 59.2zm111 53c-2.7 1.4-5.2 2.3-6.4 1.6-.9-.5 1.1-2.4 1.1-2.4s13.9-14.9 19.4-21.7c3.2-4 6.9-8.7 10.9-13.9 0 .5 .1 1 .1 1.6-.1 17.9-17.3 30-25.1 34.8l0 0zm85.6-19.5c-2-1.4-1.7-6.1 5-20.7 2.6-5.7 8.6-15.3 19-24.5 1.2 3.5 1.8 7.1 1.9 10.8-.1 22.5-16.2 30.9-25.9 34.4l0 0z\"],\n \"square-whatsapp\": [448, 512, [\"whatsapp-square\"], \"f40c\", \"M92.1 254.6c0 24.9 7 49.2 20.2 70.1l3.1 5-13.3 48.6 49.9-13.1 4.8 2.9c20.2 12 43.4 18.4 67.1 18.4l.1 0c72.6 0 133.3-59.1 133.3-131.8 0-35.2-15.2-68.3-40.1-93.2-25-25-58-38.7-93.2-38.7-72.7 0-131.8 59.1-131.9 131.8zM274.8 330c-12.6 1.9-22.4 .9-47.5-9.9-36.8-15.9-61.8-51.5-66.9-58.7-.4-.6-.7-.9-.8-1.1-2-2.6-16.2-21.5-16.2-41 0-18.4 9-27.9 13.2-32.3 .3-.3 .5-.5 .7-.8 3.6-4 7.9-5 10.6-5 2.6 0 5.3 0 7.6 .1l.8 0c2.3 0 5.2 0 8.1 6.8 1.2 2.9 3 7.3 4.9 11.8 3.3 8 6.7 16.3 7.3 17.6 1 2 1.7 4.3 .3 6.9-3.4 6.8-6.9 10.4-9.3 13-3.1 3.2-4.5 4.7-2.3 8.6 15.3 26.3 30.6 35.4 53.9 47.1 4 2 6.3 1.7 8.6-1 2.3-2.6 9.9-11.6 12.5-15.5 2.6-4 5.3-3.3 8.9-2s23.1 10.9 27.1 12.9c.8 .4 1.5 .7 2.1 1 2.8 1.4 4.7 2.3 5.5 3.6 .9 1.9 .9 9.9-2.4 19.1-3.3 9.3-19.1 17.7-26.7 18.8zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM148.1 393.9L64 416 86.5 333.8c-13.9-24-21.2-51.3-21.2-79.3 .1-87.4 71.2-158.5 158.6-158.5 42.4 0 82.2 16.5 112.2 46.5 29.9 30 47.9 69.8 47.9 112.2 0 87.4-72.7 158.5-160.1 158.5-26.6 0-52.7-6.7-75.8-19.3z\"],\n \"skype\": [448, 512, [], \"f17e\", \"M424.7 299.8c2.9-14 4.7-28.9 4.7-43.8 0-113.5-91.9-205.3-205.3-205.3-14.9 0-29.7 1.7-43.8 4.7-19-14.7-42.6-23.4-68.3-23.4-61.8 0-112 50.2-112 112 0 25.7 8.7 49.3 23.3 68.2-2.9 14-4.7 28.9-4.7 43.8 0 113.5 91.9 205.3 205.3 205.3 14.9 0 29.7-1.7 43.8-4.7 19 14.6 42.6 23.3 68.2 23.3 61.8 0 112-50.2 112-112 .1-25.6-8.6-49.2-23.2-68.1zM230.1 391.3c-65.6 0-120.5-29.2-120.5-65 0-16 9-30.6 29.5-30.6 31.2 0 34.1 44.9 88.1 44.9 25.7 0 42.3-11.4 42.3-26.3 0-18.7-16-21.6-42-28-62.5-15.4-117.8-22-117.8-87.2 0-59.2 58.6-81.1 109.1-81.1 55.1 0 110.8 21.9 110.8 55.4 0 16.9-11.4 31.8-30.3 31.8-28.3 0-29.2-33.5-75-33.5-25.7 0-42 7-42 22.5 0 19.8 20.8 21.8 69.1 33 41.4 9.3 90.7 26.8 90.7 77.6 0 59.1-57.1 86.5-112 86.5z\"],\n \"angular\": [448, 512, [], \"f420\", \"M185.7 268.1l76.2 0-38.1-91.6-38.1 91.6zM223.8 32L16 106.4 47.8 382.1 223.8 480 399.8 382.1 431.6 106.4 223.8 32zM354 373.8l-48.6 0-26.2-65.4-110.6 0-26.2 65.4-48.7 0 130.1-292.3 130.2 292.3z\"],\n \"opensuse\": [640, 512, [], \"e62b\", \"M471.1 102.7s-.3 18.3-.3 20.3c-9.1-3-74.4-24.1-135.7-26.3-51.9-1.8-122.8-4.3-223 57.3-19.4 12.4-73.9 46.1-99.6 109.7-5.5 13.3-12.6 43.3-5.5 71.4 3.3 12.8 8.9 24.9 16.5 35.7 17.4 25 46.6 41.6 78.1 44.4 44.4 3.9 78.1-16 90-53.3 8.2-25.8 0-63.6-31.5-82.9-25.6-15.7-53.3-12.1-69.2-1.6-13.9 9.2-21.8 23.5-21.6 39.2 .3 27.8 24.3 42.6 41.5 42.6 5.4 0 10.7-.9 15.8-2.7 6.5-1.8 13.3-6.5 13.3-14.9 0-12.1-11.6-14.8-16.8-13.9-2.9 .5-4.5 2-11.8 2.4-2-.2-12-3.1-12-14l0-.1c.2-12.3 13.2-18 25.5-16.9 32.3 2.8 47.7 40.7 28.5 65.7-18.3 23.7-76.6 23.2-99.7-20.4-26-49.2 12.7-111.2 87-98.4 33.2 5.7 83.6 35.5 102.4 104.3l45.9 0c-5.7-17.6-8.9-68.3 42.7-68.3 56.7 0 63.9 39.9 79.8 68.3l48.6 0c-12.8-18.3-21.7-38.7-18.9-55.8 5.6-33.8 39.7-18.4 82.4-17.4 66.5 .4 102.1-27 103.1-28 3.7-3.1 6.5-15.8 7-17.7 1.3-5.1-3.2-2.4-3.2-2.4-8.7 5.2-30.5 15.2-50.9 15.6-25.3 .5-76.2-25.4-81.6-28.2-.3-.4 .1 1.2-11-25.5 88.4 58.3 118.3 40.5 145.2 21.7 .8-.6 4.3-2.9 3.6-5.7-13.8-48.1-22.4-62.7-34.5-69.6-37-21.6-125-34.7-129.2-35.3 .1-.1-.9-.3-.9 .7zm60.4 72.8a37.6 37.6 0 1 1 75.2 2.6 37.6 37.6 0 1 1 -75.2-2.6zm38.6-25.3c-3.6-.3-7.1 .1-10.5 1.2s-6.5 2.9-9.2 5.3-4.8 5.3-6.3 8.5-2.4 6.7-2.5 10.3 .5 7.1 1.8 10.4 3.3 6.3 5.8 8.9 5.5 4.5 8.8 5.9 6.9 2 10.4 1.9c3.6 .3 7.1-.1 10.5-1.2s6.5-2.9 9.2-5.3 4.8-5.3 6.3-8.5 2.4-6.7 2.5-10.3-.5-7.1-1.8-10.4-3.3-6.3-5.8-8.9-5.5-4.5-8.8-5.9-6.9-2-10.4-1.9zm4.3 28.8c-15.4 0-15.4-15.6 0-15.6s15.4 15.6 0 15.6z\"],\n \"dropbox\": [576, 512, [], \"f16b\", \"M288.4 116.3l-132 84.3 132 84.3-132 84.3-132.4-85.1 132.3-84.3-132.3-83.5 132.3-84.3 132.1 84.3zM155.6 395.7l132-84.3 132 84.3-132 84.3-132-84.3zM288.4 284.1l132-84.3-132-83.6 131.3-84.2 132.3 84.3-132.3 84.3 132.3 84.2-132.3 84.3-131.3-85z\"],\n \"deezer\": [512, 512, [], \"e077\", \"M14.8 101.1C6.6 101.1 0 127.6 0 160.3s6.6 59.2 14.8 59.2 14.8-26.5 14.8-59.2-6.6-59.2-14.8-59.2zM448.7 40.9c-7.7 0-14.5 17.1-19.4 44.1-7.7-46.7-20.2-77-34.2-77-16.8 0-31.1 42.9-38 105.4-6.6-45.4-16.8-74.2-28.3-74.2-16.1 0-29.6 56.9-34.7 136.2-9.4-40.8-23.2-66.3-38.3-66.3s-28.8 25.5-38.3 66.3c-5.1-79.3-18.6-136.2-34.7-136.2-11.5 0-21.7 28.8-28.3 74.2-6.6-62.5-21.2-105.4-37.8-105.4-14 0-26.5 30.4-34.2 77-4.8-27-11.7-44.1-19.4-44.1-14.3 0-26 59.2-26 132.1S49 305.2 63.3 305.2c5.9 0 11.5-9.9 15.8-26.8 6.9 61.7 21.2 104.1 38 104.1 13 0 24.5-25.5 32.1-65.6 5.4 76.3 18.6 130.4 34.2 130.4 9.7 0 18.6-21.4 25.3-56.4 7.9 72.2 26.3 122.7 47.7 122.7s39.5-50.5 47.7-122.7c6.6 35 15.6 56.4 25.3 56.4 15.6 0 28.8-54.1 34.2-130.4 7.7 40.1 19.4 65.6 32.1 65.6 16.6 0 30.9-42.3 38-104.1 4.3 16.8 9.7 26.8 15.8 26.8 14.3 0 26-59.2 26-132.1S463 40.9 448.7 40.9zm48.5 60.2c-8.2 0-14.8 26.5-14.8 59.2s6.6 59.2 14.8 59.2 14.8-26.5 14.8-59.2-6.6-59.2-14.8-59.2z\"],\n \"creative-commons-sampling\": [512, 512, [], \"f4f0\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm3.6 53.2c2.8-.3 11.5 1 11.5 11.5l6.6 107.2 4.9-59.3c0-6 4.7-10.6 10.6-10.6s10.6 4.7 10.6 10.6c0 2.5-.5-5.7 5.7 81.5l5.8-64.2c.3-2.9 2.9-9.3 10.2-9.3 3.8 0 9.9 2.3 10.6 8.9l11.5 96.5 5.3-12.8c1.8-4.4 5.2-6.6 10.2-6.6l58 0 0 21.3-50.9 0-18.2 44.3c-3.9 9.9-19.5 9.1-20.8-3.1l-4-31.9-7.5 92.6c-.3 3-3 9.3-10.2 9.3-3 0-9.8-2.1-10.6-9.3 0-1.9 .6 5.8-6.2-77.9l-5.3 72.2c-1.1 4.8-4.8 9.3-10.6 9.3-2.9 0-9.8-2-10.6-9.3 0-1.9 .5 6.7-5.8-87.7L255 383.9c0 6.3-3.6 12.4-10.6 12.4-5.2 0-10.6-4.1-10.6-12L228 296.6c-5.8 92.5-5.3 84-5.3 85.9-1.1 4.8-4.8 9.3-10.6 9.3-3 0-9.8-2.1-10.6-9.3 0-.7-.4-1.1-.4-2.6l-6.2-88.6-4.9 56.7c-.7 6.5-6.7 9.3-10.6 9.3-5.8 0-9.6-4.1-10.6-8.9L157.7 272c-2 4-3.5 8.4-11.1 8.4l-51.4 0 0-21.3 44.8 0 13.7-27.9c4.4-9.9 18.2-7.2 19.9 2.7l3.1 20.4 8.4-97.9c0-6 4.8-10.6 10.6-10.6 .5 0 10.6-.2 10.6 12.4l4.9 69.1 6.6-92.6c0-10.1 9.5-10.6 10.2-10.6 .6 0 10.6 .7 10.6 10.6l5.3 80.6 6.2-97.9c.1-1.1-.6-10.3 9.9-11.5z\"],\n \"jedi-order\": [448, 512, [], \"f50e\", \"M398.9 373.6c95.9-122.1 17.2-233.1 17.2-233.1 45.4 85.8-41.4 170.5-41.4 170.5 105-171.5-60.5-271.5-60.5-271.5 96.9 72.7-10.1 190.7-10.1 190.7 85.8 158.4-68.6 230.1-68.6 230.1s-.4-16.9-2.2-85.7c4.3 4.5 34.5 36.2 34.5 36.2l-24.2-47.4 62.6-9.1-62.6-9.1 20.2-55.5-31.4 45.9c-2.2-87.7-7.8-305.1-7.9-306.9 0 1-5.6 219-7.9 306.9l-31.4-45.9 20.2 55.5-62.6 9.1 62.6 9.1-24.2 47.4 34.5-36.2c-1.8 68.8-2.2 85.7-2.2 85.7S59.1 388.6 144.9 230.2c0 0-107-118.1-10.1-190.7 0 0-165.5 99.9-60.5 271.5 0 0-86.8-84.8-41.4-170.5 0 0-78.7 111 17.2 233.1 0 0-26.2-16.1-49.4-77.7 0 0 16.9 183.3 222 185.7l4.1 0c205-2.4 222-185.7 222-185.7-23.6 61.5-49.9 77.7-49.9 77.7z\"],\n \"r-project\": [576, 512, [], \"f4f7\", \"M578.5 226.6C578.5 119.1 448.4 32 288 32S-2.5 119.1-2.5 226.6c0 95.8 103.3 175.4 239.4 191.5l0 61.9 99.1 0 0-61.5c24.3-2.7 47.6-7.4 69.4-13.9l40.1 75.4 112 0-67.4-113.7c54.5-35.4 88.4-84.9 88.4-139.7zM111.7 241.1c0-73.5 98.9-133 220.8-133s211.9 40.7 211.9 133c0 50.1-26.5 85-70.3 106.4-2.4-1.6-4.7-2.9-6.4-3.7-10.2-5.2-27.8-10.5-27.8-10.5s86.6-6.4 86.6-92.7-90.6-87.9-90.6-87.9l-199 0 0 208.3c-74.1-21.5-125.2-67.1-125.2-119.9zm225.1 38.3l0-55.6c57.8 0 87.8-6.8 87.8 27.3 0 36.5-38.2 28.3-87.8 28.3zm-.9 72.5l26.6 0c10.8 0 18.9 11.7 24 19.2-16.1 1.9-33 2.8-50.6 2.9l0-22.1z\"],\n \"instalod\": [512, 512, [], \"e081\", \"M153.6 480l233.7 0 115.4-204.2-298.3 57.4-50.8 146.8zM505 240.1L387.4 32 155.9 32 360.5 267.9 505 240.1zM124.6 48.8L7.5 256 123.5 461.2 225.9 165.6 124.6 48.8z\"],\n \"canadian-maple-leaf\": [512, 512, [], \"f785\", \"M383.8 351.7c2.5-2.5 105.2-92.4 105.2-92.4l-17.5-7.5c-10-4.9-7.4-11.5-5-17.4 2.4-7.6 20.1-67.3 20.1-67.3s-47.7 10-57.7 12.5c-7.5 2.4-10-2.5-12.5-7.5s-15-32.4-15-32.4-52.6 59.9-55.1 62.3c-10 7.5-20.1 0-17.6-10 0-10 27.6-129.6 27.6-129.6s-30.1 17.4-40.1 22.4c-7.5 5-12.6 5-17.6-5-5.1-7.5-42.7-79.8-42.7-79.8s-37.5 72.3-42.5 79.8c-5 10-10 10-17.6 5-10-5-40.1-22.4-40.1-22.4S183.3 182 183.3 192c2.5 10-7.5 17.5-17.6 10-2.5-2.5-55.1-62.3-55.1-62.3s-12.5 27.3-15 32.3-5 9.9-12.5 7.5C73 177 25.4 167 25.4 167S43 226.7 45.5 234.3c2.4 6 5 12.5-5 17.4L23 259.3s102.6 89.9 105.2 92.4c5.1 5 10 7.5 5.1 22.5-5.1 15-10.1 35.1-10.1 35.1s95.2-20.1 105.3-22.6c8.7-.9 18.3 2.5 18.3 12.5S241 512 241 512l30 0s-5.8-102.7-5.8-112.8 9.5-13.4 18.4-12.5c10 2.5 105.2 22.6 105.2 22.6s-5-20.1-10-35.1 0-17.5 5-22.5z\"],\n \"ethereum\": [320, 512, [], \"f42e\", \"M311.9 260.8L160 353.6 8 260.8 160 0 311.9 260.8zM160 383.4L8 290.6 160 512 312 290.6 160 383.4z\"],\n \"houzz\": [448, 512, [], \"f27c\", \"M276 330.7l-104.6 0 0 149.3-154.3 0 0-448 109.5 0 0 104.5 305.1 85.6 0 257.9-155.7 0 0-149.3z\"],\n \"viber\": [512, 512, [], \"f409\", \"M444.3 49.9c-12.7-11.7-64.1-49-178.7-49.5 0 0-135.1-8.1-200.9 52.3-36.6 36.6-49.5 90.3-50.9 156.8s-3.1 191.1 117 224.9l.1 0-.1 51.6s-.8 20.9 13 25.1c16.6 5.2 26.4-10.7 42.3-27.8 8.7-9.4 20.7-23.2 29.8-33.7 82.2 6.9 145.3-8.9 152.5-11.2 16.6-5.4 110.5-17.4 125.7-142 15.8-128.6-7.6-209.8-49.8-246.5zM458.2 287c-12.9 104-89 110.6-103 115.1-6 1.9-61.5 15.7-131.2 11.2 0 0-52 62.7-68.2 79-5.3 5.3-11.1 4.8-11-5.7 0-6.9 .4-85.7 .4-85.7l0 0C43.4 372.7 49.4 266.6 50.5 211.1s11.6-101 42.6-131.6c55.7-50.5 170.4-43 170.4-43 96.9 .4 143.3 29.6 154.1 39.4 35.7 30.6 53.9 103.8 40.6 211.1zm-139-80.8c.4 8.6-12.5 9.2-12.9 .6-1.1-22-11.4-32.7-32.6-33.9-8.6-.5-7.8-13.4 .7-12.9 27.9 1.5 43.4 17.5 44.8 46.2zm20.3 11.3c1-42.4-25.5-75.6-75.8-79.3-8.5-.6-7.6-13.5 .9-12.9 58 4.2 88.9 44.1 87.8 92.5-.1 8.6-13.1 8.2-12.9-.3zm47 13.4c.1 8.6-12.9 8.7-12.9 .1-.6-81.5-54.9-125.9-120.8-126.4-8.5-.1-8.5-12.9 0-12.9 73.7 .5 133 51.4 133.7 139.2zM375.2 329l0 .2c-10.8 19-31 40-51.8 33.3l-.2-.3c-21.1-5.9-70.8-31.5-102.2-56.5-16.2-12.8-31-27.9-42.4-42.4-10.3-12.9-20.7-28.2-30.8-46.6-21.3-38.5-26-55.7-26-55.7-6.7-20.8 14.2-41 33.3-51.8l.2 0c9.2-4.8 18-3.2 23.9 3.9 0 0 12.4 14.8 17.7 22.1 5 6.8 11.7 17.7 15.2 23.8 6.1 10.9 2.3 22-3.7 26.6l-12 9.6c-6.1 4.9-5.3 14-5.3 14s17.8 67.3 84.3 84.3c0 0 9.1 .8 14-5.3l9.6-12c4.6-6 15.7-9.8 26.6-3.7 14.7 8.3 33.4 21.2 45.8 32.9 7 5.7 8.6 14.4 3.8 23.6z\"],\n \"kickstarter\": [448, 512, [\"square-kickstarter\"], \"f3bb\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320.8 233l-23.3 23.1 23.3 22.9c24.1 23.9 24.1 63 0 86.9s-63.4 23.9-87.6 0l-8.5-8.4c-11.3 16-29.7 26.5-50.9 26.5-34.1 0-61.9-27.5-61.9-61.4l0-133.2c0-33.8 27.7-61.4 61.9-61.4 21.1 0 39.6 10.5 50.9 26.5l8.5-8.4c24.1-23.9 63.4-23.9 87.6 0s24.1 63 0 86.9z\"],\n \"spotify\": [512, 512, [], \"f1bc\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM356.7 372.9c-4.2 0-6.8-1.3-10.7-3.6-62.4-37.6-135-39.2-206.7-24.5-3.9 1-9 2.6-11.9 2.6-9.7 0-15.8-7.7-15.8-15.8 0-10.3 6.1-15.2 13.6-16.8 81.9-18.1 165.6-16.5 237 26.2 6.1 3.9 9.7 7.4 9.7 16.5s-7.1 15.4-15.2 15.4zm26.9-65.6c-5.2 0-8.7-2.3-12.3-4.2-62.5-37-155.7-51.9-238.6-29.4-4.8 1.3-7.4 2.6-11.9 2.6-10.7 0-19.4-8.7-19.4-19.4s5.2-17.8 15.5-20.7c27.8-7.8 56.2-13.6 97.8-13.6 64.9 0 127.6 16.1 177 45.5 8.1 4.8 11.3 11 11.3 19.7-.1 10.8-8.5 19.5-19.4 19.5zm31-76.2c-5.2 0-8.4-1.3-12.9-3.9-71.2-42.5-198.5-52.7-280.9-29.7-3.6 1-8.1 2.6-12.9 2.6-13.2 0-23.3-10.3-23.3-23.6 0-13.6 8.4-21.3 17.4-23.9 35.2-10.3 74.6-15.2 117.5-15.2 73 0 149.5 15.2 205.4 47.8 7.8 4.5 12.9 10.7 12.9 22.6 0 13.6-11 23.3-23.2 23.3z\"],\n \"leanpub\": [576, 512, [], \"f212\", \"M386.6 111.5l15.1 249-11-.3c-36.2-.8-71.6 8.8-102.7 28-31-19.2-66.4-28-102.7-28-45.6 0-82.1 10.7-123.5 27.7L93.2 129.6c28.5-11.8 61.5-18.1 92.2-18.1 41.2 0 73.8 13.2 102.7 42.5 27.7-28.3 59-41.7 98.5-42.5zM569.2 448c-25.5 0-47.5-5.2-70.5-15.6-34.3-15.6-70-25-107.9-25-39 0-74.9 12.9-102.7 40.6-27.7-27.7-63.7-40.6-102.7-40.6-37.9 0-73.6 9.3-107.9 25-22.2 9.9-44.7 15.6-69.2 15.6L7 448 49.6 98.9c39.3-22.2 87-34.9 132.3-34.9 37.1 0 75.2 7.7 106.2 29.1 31-21.4 69.2-29.1 106.2-29.1 45.3 0 93 12.6 132.3 34.9L569.2 448zm-43.4-44.7L491.8 123c-30.7-14-67.2-21.4-101-21.4-38.4 0-74.4 12.1-102.7 38.7-28.3-26.6-64.2-38.7-102.7-38.7-33.8 0-70.3 7.4-101 21.4l-34 280.2c47.2-19.5 82.9-33.5 135-33.5 37.6 0 70.8 9.6 102.7 29.6 31.8-20 65.1-29.6 102.7-29.6 52.2 0 87.8 14 135 33.5z\"],\n \"java\": [384, 512, [], \"f4e4\", \"M277.8 312.9c9.8-6.7 23.4-12.5 23.4-12.5s-38.7 7-77.2 10.2c-47.1 3.9-97.7 4.7-123.1 1.3-60.1-8 33-30.1 33-30.1s-36.1-2.4-80.6 19c-52.5 25.4 130 37 224.5 12.1zm-85.4-32.1c-19-42.7-83.1-80.2 0-145.8 103.7-81.8 50.5-135 50.5-135 21.5 84.5-75.6 110.1-110.7 162.6-23.9 35.9 11.7 74.4 60.2 118.2zM307 104.6c.1 0-175.2 43.8-91.5 140.2 24.7 28.4-6.5 54-6.5 54s62.7-32.4 33.9-72.9C216 188.1 195.4 169.3 307 104.6zm-6.1 270.5c-.5 1-1.2 1.8-2 2.6 128.3-33.7 81.1-118.9 19.8-97.3-3.3 1.2-6.2 3.4-8.2 6.3 3.6-1.3 7.3-2.3 11-3 31-6.5 75.5 41.5-20.6 91.4zM348 437.4s14.5 11.9-15.9 21.2c-57.9 17.5-240.8 22.8-291.6 .7-18.3-7.9 16-19 26.8-21.3 11.2-2.4 17.7-2 17.7-2-20.3-14.3-131.3 28.1-56.4 40.2 204.2 33.2 372.4-14.9 319.4-38.8zM124.5 396c-78.7 22 47.9 67.4 148.1 24.5-9.8-3.8-19.2-8.4-28.2-13.8-44.7 8.5-65.4 9.1-106 4.5-33.5-3.8-13.9-15.2-13.9-15.2zm179.8 97.2c-78.7 14.8-175.8 13.1-233.3 3.6 0-.1 11.8 9.7 72.4 13.6 92.2 5.9 233.8-3.3 237.1-46.9 0 0-6.4 16.5-76.2 29.7zM260.7 353c-59.2 11.4-93.5 11.1-136.8 6.6-33.5-3.5-11.6-19.7-11.6-19.7-86.8 28.8 48.2 61.4 169.5 25.9-7.8-2.8-15-7.1-21.1-12.8z\"],\n \"nfc-symbol\": [512, 512, [], \"e531\", \"M360.9 32.4c7.7-1.3 15.7 .5 21.2 5 84.1 58.7 129.9 136.3 129.9 217.7 0 83.1-45.8 160.8-129.9 219.5-4.8 4-11.7 5.9-18.6 5.3-7-.6-13.5-3.6-18.4-8.5L161.7 288.7c-5.6-5.5-8.7-13-9.6-20.9 0-7.8 4-15.3 9.5-20.9 5.6-5.5 13.1-8.7 20.9-8.7 7.9 0 15.4 3.1 20.9 8.6L368.5 411.2c54.6-44.7 84.3-99.2 84.3-156.1 0-61.6-36.9-122.2-103.9-169.3-6.4-4.5-10.8-11.4-12.1-19.1-1.4-7.7 .4-15.7 5-22.1 4.5-6.4 11.4-10.8 19.1-12.1zm-206 447.2c-7.7 1.3-15.6-.5-22.1-5-83.1-58.7-129-136.4-129-219.5 0-81.4 45.8-159 129-217.7 5.7-4 12.6-5.9 19.6-5.3 6.9 .6 13.4 3.6 18.3 8.5L354.1 223.3c5.6 5.5 8.7 13 8.7 20.9 .1 6.9-3 15.3-8.6 20.9-5.5 5.5-13 8.7-20.9 8.7-7.8 0-16.2-3.1-20.9-8.6L147.3 100.7c-54.6 45.2-84.3 99.2-84.3 154.4 0 63.4 36.9 124 103.1 171.1 7.3 4.6 11.6 11.4 13 19.2 1.3 7.7-.5 15.7-5 22.1s-11.4 10.7-19.2 12.1z\"],\n \"wodu\": [640, 512, [], \"e088\", \"M178.4 339.7l-37.3 0-28.9-116.2-.5 0-28.5 116.2-38 0-45.2-170.8 37.5 0 27 116.2 .5 0 29.7-116.2 35.2 0 29.2 117.7 .5 0 28-117.7 36.8 0-45.9 170.8zm93-127c39 0 64.1 25.8 64.1 65.3 0 39.2-25.1 65-64.1 65-38.7 0-63.9-25.8-63.9-65 0-39.5 25.1-65.3 63.9-65.3zm0 104.8c23.2 0 30.1-19.9 30.1-39.5 0-19.9-6.9-39.7-30.1-39.7-27.7 0-29.9 19.9-29.9 39.7 0 19.6 6.9 39.5 29.9 39.5zm163.7 6.5l-.5 0c-7.9 13.4-21.8 19.1-37.5 19.1-37.3 0-55.5-32-55.5-66.2 0-33.2 18.4-64.1 54.8-64.1 14.6 0 28.9 6.2 36.8 18.4l.2 0 0-62.2 34 0 0 170.8-32.3 0 0-15.8zm-29.7-85.6c-22.2 0-29.9 19.1-29.9 39.5 0 19.4 8.8 39.7 29.9 39.7 22.5 0 29.2-19.6 29.2-39.9 0-20.1-7.2-39.2-29.2-39.2zM593 339.7l-32.3 0 0-17.2-.7 0c-8.6 13.9-23.4 20.6-37.8 20.6-36.1 0-45.2-20.3-45.2-50.9l0-76.1 34 0 0 69.8c0 20.3 6 30.4 21.8 30.4 18.4 0 26.3-10.3 26.3-35.4l0-64.8 34 0 0 123.6zm9.5-36.8l37.5 0 0 36.8-37.5 0 0-36.8z\"],\n \"square-steam\": [448, 512, [\"steam-square\"], \"f1b7\", \"M165.6 309.1c18.6 7.7 27.3 28.9 19.6 47.4s-29 27.2-47.6 19.4l-28.5-11.8c5 10.6 13.8 19.4 25.4 24.2 25.2 10.5 54.1-1.4 64.6-26.5 5.1-12.1 5.1-25.5 .1-37.7-5.1-12.1-14.5-21.6-26.7-26.7-12.1-5-25-4.8-36.4-.5l29.5 12.2zM448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96l0 144.7 116.6 48.1c12-8.2 26.2-12.1 40.7-11.3l55.4-80.2 0-1.1c0-48.2 39.3-87.5 87.6-87.5s87.6 39.3 87.6 87.5c0 49.2-40.9 88.7-89.6 87.5l-79 56.3c1.6 38.5-29.1 68.8-65.7 68.8-31.8 0-58.5-22.7-64.5-52.7L0 319.2 0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM241.9 196.2a58.4 58.4 0 1 0 116.8 0 58.4 58.4 0 1 0 -116.8 0zm102.4-.1a43.9 43.9 0 1 1 -87.8 0 43.9 43.9 0 1 1 87.8 0z\"],\n \"creative-commons-nc-eu\": [512, 512, [], \"f4e9\", \"M255.7 8C111.6 8 8 124.8 8 256 8 392.3 119.7 504 255.7 504 385.9 504 504 403.1 504 256 504 117 396.4 8 255.7 8zm.6 450.7c-112 0-203.6-92.5-203.6-202.7 0-23.2 3.7-45.2 10.9-66l65.7 29.1-4.7 0 0 29.5 23.3 0c0 6.2-.4 3.2-.4 19.5l-22.8 0 0 29.5 27 0c11.4 67 67.2 101.3 124.6 101.3 26.6 0 50.6-7.9 64.8-15.8l-10-46.1c-8.7 4.6-28.2 10.8-47.3 10.8-28.2 0-58.1-10.9-67.3-50.2l90.3 0 128.3 56.8c-1.5 2.1-56.2 104.3-178.8 104.3zM239.6 268.1l-.5-.4 .9 .4-.4 0zm77.2-19.5l3.7 0 0-29.5-70.3 0-28.6-12.6c2.5-5.5 5.4-10.5 8.8-14.3 12.9-15.8 31.1-22.4 51.1-22.4 18.3 0 35.3 5.4 46.1 10l11.6-47.3c-15-6.6-37-12.4-62.3-12.4-39 0-72.2 15.8-95.9 42.3-5.3 6.1-9.8 12.9-13.9 20.1L85.5 146.4c64.6-96.8 157.7-93.6 170.7-93.6 113 0 203 90.2 203 203.4 0 18.7-2.1 36.3-6.3 52.9L316.8 248.6z\"],\n \"npm\": [576, 512, [], \"f3d4\", \"M288 288l-32 0 0-64 32 0 0 64zM576 160l0 192-288 0 0 32-128 0 0-32-160 0 0-192 576 0zM160 192l-128 0 0 128 64 0 0-96 32 0 0 96 32 0 0-128zm160 0l-128 0 0 160 64 0 0-32 64 0 0-128zm224 0l-192 0 0 128 64 0 0-96 32 0 0 96 32 0 0-96 32 0 0 96 32 0 0-128z\"],\n \"cloudscale\": [448, 512, [], \"f383\", \"M318.1 154l-9.4 7.6c-22.5-19.3-51.5-33.6-83.3-33.6-71.6 0-129.4 60.8-129.4 132.3 0 6.6 .4 13.1 1.4 19.4-2-56 41.8-97.4 92.6-97.4 24.2 0 46.2 9.4 62.6 24.7l-25.2 20.4c-8.3-.9-16.8 1.8-23.1 8.1-11.1 11-11.1 28.9 0 40 11.1 11 28.9 11 40 0 6.3-6.3 9-14.9 8.1-23.1l75.2-88.8c6.3-6.5-3.3-15.9-9.5-9.6zM213.7 246.5a14 14 0 1 1 20.6 19 14 14 0 1 1 -20.6-19zM224 32a224 224 0 1 0 0 448 224 224 0 1 0 0-448zm0 64a160 160 0 1 1 0 320 160 160 0 1 1 0-320z\"],\n \"themeco\": [448, 512, [], \"f5c6\", \"M202.9 8.4c9.9-5.7 26-5.8 36-.2L430 115.9c10 5.6 18 19.4 18 30.9L448 364c0 11.4-8.1 25.3-18 31L238.8 503.7c-9.9 5.7-26 5.6-35.8-.2L17.9 395.1C8 389.3 0 375.4 0 364L0 146.7c0-11.4 8-25.4 17.9-31.1L202.9 8.4zM125.5 208.3c-15.9 0-31.9 .1-47.8 .1l0 101.4 19.1 0 0-29.8 28.7 0c49.7 0 49.6-71.7 0-71.7zM265.6 308.6l-30.7-34.6c37-7.5 34.8-65.2-10.9-65.5-16.1 0-32.2-.1-48.3-.1l0 101.6 19.1 0 0-33.9 18.4 0 29.6 33.9 22.8 0 0-1.3zm-41.6-82.3c23.3 0 23.3 32.5 0 32.5l-29.1 0 0-32.5 29.1 0zm-95.6-1.6c21.2 0 21.1 38.9 0 38.9l-32.3 0 0-38.8 32.3 0zm192.6-18.2c-68.5 0-71 105.8 0 105.8 69.5 0 69.4-105.8 0-105.8zm0 17.4c44.1 0 44.8 70.9 0 70.9s-44.4-70.9 0-70.9z\"],\n \"google-play\": [448, 512, [], \"f3ab\", \"M293.6 234.3L72.9 13 353.7 174.2 293.6 234.3zM15.3 0C2.3 6.8-6.4 19.2-6.4 35.3l0 441.3c0 16.1 8.7 28.5 21.7 35.3L271.9 255.9 15.3 0zM440.5 225.6l-58.9-34.1-65.7 64.5 65.7 64.5 60.1-34.1c18-14.3 18-46.5-1.2-60.8zM72.9 499L353.7 337.8 293.6 277.7 72.9 499z\"],\n \"korvue\": [448, 512, [], \"f42f\", \"M387.6 34l-327 0C27.9 34 1.1 60.8 1.1 93.5l0 327.1c0 32.6 26.8 59.4 59.5 59.4l327.1 0c33 0 59.5-26.8 59.5-59.5l0-327C447.1 60.8 420.3 34 387.6 34zM88.2 120.8l96 0 0 116 61.8-116 110.9 0-81.2 132-187.5 0 0-132zM250 392.9l-65.7-113.6 0 113.6-96 0 0-130.8 191.5 0 88.6 130.8-118.4 0z\"],\n \"w3c\": [640, 512, [], \"e7de\", \"M105.2 305.3l30.9-104.7c7.9-26.7 8.6-40.6 .2-68.8l-10.1-33.9 44.1 0 61 207.4 45.7-155.5c13.3-45.3 21.1-51.9 59.4-51.9l132.8 0c-24.2 42.9-49.3 85.2-73.9 127.9 2.6 .8 5.2 1.8 7.7 2.8 17.3 7.1 32.2 19.4 42 35.5 11.2 18.5 16.8 40.2 16.8 65.2 0 30.8-8.2 56.8-24.6 77.8-14.5 18.6-35 29.5-58.2 31.2 0 .3-5.2 .4-5.8 .4-39.7-.1-70.8-32.1-83.1-68.7l42.9 0c3.5 5.3 6.8 10.7 11.2 15.5 8.1 7.3 18.5 10.9 29.3 11.1 13.1 0 23.3-9.1 29.9-19.8 8.1-13.2 12.2-29 12.2-47.5 0-13.1-1.8-24.3-5.3-33.6-.9-2.3-1.9-4.5-3-6.6-1.4-2.6-2.9-5.1-4.7-7.4-10.1-13.2-29.3-19.7-47.5-19.8l-28.2 0 70.3-122-35.6 0c-43.1 0-35.9-5.4-50.4 43.3l-75.7 255.3-4.2 0-63.1-211.1-63.1 211.1-4.2 0-101-340.7 44.2 0 61 207.4zM467 335.7c.3 .6 11.3 20.3 18.3 30.3 7.1 10.1 19.8 20.9 24.8 24.6s19.1 12.5 34.3 13.9c15.2 1.5 23.3 .2 38.7-6.6 15.4-6.8 27.9-20.4 34.9-28.1 6.9-7.6 17.9-27.3 18.2-27.7l3.3 16.8c1.7 9-1 23.7-4.1 30-4.3 8.6-7.6 13.5-14 20.3-6.1 6.5-16.7 13.5-21.3 16.4-4.6 2.9-23.1 15.1-50.1 10.3s-44.7-25.9-53.9-38.2c-9.8-13.2-16.7-28.3-19-33.2-3.8-8.4-9.9-28.2-10.1-28.8zm169.7-218c3.3 20.3-.1 28.7-9.1 46l-12.7 24.2c-.3-.6-10-20.7-25.9-31.9-13.6-9.6-22.5-11.7-36.3-8.8-17.8 3.7-38 25-46.8 51.2-10.5 31.4-10.7 46.6-11 60.6-.6 22.4 2.9 35.6 2.9 35.6s-15.4-28.5-15.2-70.1c.1-29.7 4.8-56.7 18.5-83.3 12.1-23.4 30.1-37.4 46.1-39.1 16.5-1.7 29.6 6.3 39.7 14.9 10.6 9 21.3 28.8 21.3 28.8l24.9-49.8 3.6 21.8z\"],\n \"grav\": [512, 512, [], \"f2d6\", \"M302.6 210.6c4.5 4.5 4.5 12.3 0 16.8l-10 10c-4.5 4.9-12.3 4.9-17.1 0l-10.8-10.8c-4.5-4.9-4.5-12.3 0-17.1l10-10c4.5-4.5 12.3-4.5 17.1 0l10.8 11.1zm-31.2-20.3a7.7 7.7 0 1 0 -10.6-11 7.7 7.7 0 1 0 10.6 11zm-26.8 5.5a7.5 7.5 0 1 0 10.7 10.5 7.5 7.5 0 1 0 -10.7-10.5zM319.4 182c-20.5-14.9-34.9-44.6-12.3-70.3 22.3-25.7 42-17.8 61.7 .8 12.3 11.7 30.2 25.7 17.8 49.8-12.9 24.3-46.6 34.3-67.2 19.7zm49.2-45.9c-9.2-10.3-24.1 7.1-16 16.6 7.6 9.3 33.1 2.5 16-16.6zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm443.7 44c2.6-16.6-20.9-17.1-26-26.5-14-24.9-28.6-38-56.3-31.4 12-8.3 24.3-6.3 24.3-6.3 .3-6.6 0-13.4-9.7-25.7 4-12.9 .3-23.1 .3-23.1 16-8.9 27.7-25.2 30-44.6 3.7-32-19.4-61.1-51.4-64.8-22.8-2.6-45.1 7.9-56.1 26.5-23.9 41.4 1.4 73.2 23.1 84-14.9-1.4-35.4-12.3-41.4-35.4-6.8-26.5 2.9-51.4 9.2-63.4 0 0-4.5-6-8.3-9.2 0 0-14.2 0-25.4 5.5 12.3-15.7 26-14.9 26-14.9 0-6.6-.6-15.4-3.7-22.3-5.6-11.4-24.6-13.3-32.7 2.9 .1-.2 .3-.4 .4-.5-5.2 12.3-1.1 57.7 17.4 90-2.6 1.4-9.4 6.3-13.4 10.3-22.3 10-58 62.2-58 62.2-29.1 11.1-79.7 52.5-72.9 82.3 .3 3.1 1.4 5.7 3.1 7.7-2.9 2.3-5.7 5.2-8.6 8.6-12.3 14.2-5.5 36.3 18.3 25.2 16.3-7.4 30.6-20.9 37.5-31.4 0 0-5.7-5.2-16.8-4.5 28.6-6.8 35.4-9.7 47.7-9.4 8.3 4 8.3-35.4 8.3-35.4 0-15.2-2.3-32-11.5-42.8 12.9 12.6 30 33.8 28.9 62.6-.8 18.9-15.7 23.7-15.7 23.7-9.4 17.1-44.6 68-31.4 109.4 0 0-10-15.4-10.5-22.8-18 20-48 54-25.4 66.6 27.5 15.2 112.3-91.5 130.3-146.9 35.7-21.5 57.2-48.8 66-67.1 22.7 44.9 98.4 97.5 104.4 60.9z\"],\n \"aws\": [640, 512, [], \"f375\", \"M180.4 203c-.7 22.6 10.6 32.7 10.9 39-.1 1.3-.6 2.5-1.3 3.6s-1.7 2-2.8 2.6l-12.8 9c-1.7 1.2-3.6 1.8-5.6 1.9-.4 0-8.2 1.8-20.5-25.6-7.5 9.4-17 16.9-27.9 22s-22.7 7.7-34.7 7.5c-16.3 .9-60.4-9.2-58.1-56.2-1.6-38.3 34.1-62.1 70.9-60 7.1 0 21.6 .4 47 6.3l0-15.6c2.7-26.5-14.7-47-44.8-43.9-2.4 0-19.4-.5-45.8 10.1-7.4 3.4-8.3 2.8-10.8 2.8-7.4 0-4.4-21.5-2.9-24.2 5.2-6.4 35.9-18.4 65.9-18.2 20.1-1.8 40.1 4.4 55.7 17.3 6.3 7.1 11.2 15.4 14.2 24.4s4.2 18.5 3.5 28l0 69.3zM94 235.4c32.4-.5 46.2-20 49.3-30.5 2.5-10.1 2.1-16.4 2.1-27.4-9.7-2.3-23.6-4.9-39.6-4.9-15.2-1.1-42.8 5.6-41.7 32.3-1.2 16.8 11.1 31.4 30 30.5zm170.9 23.1c-7.9 .7-11.5-4.9-12.7-10.4L202.4 83.4c-1-2.8-1.6-5.6-1.9-8.6-.2-1.2 .1-2.4 .8-3.4s1.8-1.6 3-1.8c.2 0-2.1 0 22.2 0 8.8-.9 11.6 6 12.6 10.4L274.9 220.8 308.1 80c.5-3.2 2.9-11.1 12.8-10.2l17.2 0c2.2-.2 11.1-.5 12.7 10.4L384.1 222.7 421 80.1c.5-2.2 2.7-11.4 12.7-10.4l19.7 0c.9-.1 6.2-.8 5.3 8.6-.4 1.8 3.4-10.7-52.8 169.9-1.1 5.5-4.8 11.1-12.7 10.4l-18.7 0c-10.9 1.2-12.5-9.7-12.7-10.7l-33.2-137.1-32.8 137c-.2 1.1-1.7 11.9-12.7 10.7l-18.3 0 0 0zm273.5 5.6c-5.9 0-33.9-.3-57.4-12.3-2.3-1-4.3-2.6-5.7-4.8s-2.1-4.6-2.1-7.1l0-10.7c0-8.5 6.2-6.9 8.8-5.9 10 4.1 16.5 7.1 28.8 9.6 36.7 7.5 52.8-2.3 56.7-4.5 13.2-7.8 14.2-25.7 5.3-34.9-10.5-8.8-15.5-9.1-53.1-21-4.6-1.3-43.7-13.6-43.8-52.4-.6-28.2 25-56.2 69.5-56 12.7 0 46.4 4.1 55.6 15.6 1.4 2.1 2 4.6 1.9 7l0 10.1c0 4.4-1.6 6.7-4.9 6.7-7.7-.9-21.4-11.2-49.2-10.8-6.9-.4-39.9 .9-38.4 25-.4 19 26.6 26.1 29.7 26.9 36.5 11 48.6 12.8 63.1 29.6 17.1 22.2 7.9 48.3 4.3 55.4-19.1 37.5-68.4 34.4-69.3 34.4zm40.2 104.9c-70 51.7-171.7 79.2-258.5 79.2-117.1 .8-230.3-42.3-317.3-120.7-6.5-5.9-.8-14 7.2-9.5 96.5 55.2 205.7 84.2 316.9 84.1 83-.4 165.1-17.3 241.6-49.5 11.8-5 21.8 7.8 10.1 16.4zm29.2-33.3c-9-11.5-59.3-5.4-81.8-2.7-6.8 .8-7.9-5.1-1.8-9.5 40.1-28.2 105.9-20.1 113.4-10.6 7.5 9.5-2.1 75.4-39.6 106.9-5.8 4.9-11.3 2.3-8.7-4.1 8.4-21.3 27.4-68.5 18.4-80z\"],\n \"glide-g\": [448, 512, [], \"f2a6\", \"M407.1 211.2c-3.5-1.4-11.6-3.8-15.4-3.8-37.1 0-62.2 16.8-93.5 34.5l-.9-.9c7-47.3 23.5-91.9 23.5-140.4 0-71.5-38.2-100.6-108.4-100.6-115.1 0-173.4 113.7-173.4 198.4 0 87.9 51.3 136.6 138.6 136.6 12 0 11-1 11 3.8-16.9 128.9-90.8 133.1-90.8 94.6 0-39.2 45-58.6 45.5-61-.3-12.2-47-27.6-58.9-27.6-33.9 .1-52.4 51.2-52.4 79.3 0 51.9 32.8 87.9 85.5 87.9 77.4 0 134-77.8 151.4-145.4 15.1-60.5 11.2-63.3 19.7-67.6 32.2-16.2 57.5-27 93.8-27 17.8 0 30.5 3.7 58.9 8.4 2.9 0 6.7-2.9 6.7-5.8 0-8-33.4-60.5-40.9-63.4zM231.8 126.8c-9.3 44.7-18.6 89.6-27.8 134.3-2.3 10.2-13.3 7.8-22 7.8-38.3 0-49-41.8-49-73.1 0-47 18-109.3 61.8-133.4 7-4.1 14.8-6.7 22.6-6.7 18.6 0 20 13.3 20 28.7-.1 14.3-2.7 28.5-5.6 42.4z\"],\n \"jsfiddle\": [576, 512, [], \"f1cc\", \"M511.1 237.5c-4.7-2.6-5.7-5.7-6.4-10.8-2.4-16.5-3.5-33.6-9.1-49.1-35.9-100-154-143.4-246.8-91.6-27.4 15.2-49 36.4-65.5 63.9-3.2-1.5-5.5-2.7-7.8-3.7-30.1-12.4-59-10.1-85.3 9.2-25.5 18.7-36.4 44.5-32.7 76.4 .4 3-2 7.6-4.5 9.5-39.7 30-56 78.1-41.9 124.6 13.8 45.6 57.5 79.8 105.6 81.4 30.3 1 60.6 .5 91 .5 84 0 168.1 .5 252.1-.5 52.7-.6 96.1-36.9 108.2-87.3 11.5-48.1-11.1-97.3-56.8-122.6zm21.1 156.9c-18.2 22.4-42.3 35.3-71.3 35.7-56.9 .8-113.8 .2-170.7 .2 0 .7-163 .2-163.7 .2-43.9-.3-76.7-19.8-95.2-60-18.9-41.2-4-90.8 34.2-116.1 9.2-6.1 12.5-11.6 10.1-23.1-5.5-26.4 4.5-48 26.4-63 23-15.7 47.4-16.1 72-3.1 10.3 5.4 14.6 11.6 22.2-2.5 14.2-26.4 34.6-46.7 60.7-61.3 97.5-54.4 228.4 7.6 230.2 132.7 .1 8.2 2.4 12.4 9.8 15.9 57.6 26.8 74.5 96.1 35.1 144.5zm-87.8-80.5c-5.8 31.2-34.6 55.1-66.7 55.1-17 0-32.1-6.5-44.1-17.7-27.7-25.7-71.1-75-95.9-93.4-20.1-14.9-42-12.3-60.3 3.8-50 44.1 15.9 121.8 67.1 77.2 4.5-4 7.8-9.5 12.7-12.8 8.2-5.5 20.8-.9 13.2 10.6-17.4 26.3-49.3 38.2-78.9 29.3-28.9-8.7-48.8-36-48.6-70.2 1.2-22.5 12.4-43.1 35.4-56 22.6-12.6 46.4-13.1 67 2.5 50.8 38.5 75.6 81.7 107.3 101.2 24.6 15.1 54.3 7.4 68.8-17.5 28.8-49.2-34.6-105-78.9-63.5-4 3.7-6.9 8.9-11.4 11.7-11 6.8-17.3-4.1-12.8-10.4 20.7-28.6 50.5-40.4 83.3-28.2 31.4 11.7 49.1 44.4 42.8 78.2z\"],\n \"keybase\": [448, 512, [], \"f4f5\", \"M286.2 419a18 18 0 1 0 0 36 18 18 0 1 0 0-36zM398.1 271.4c-9.5-14.6-39.4-52.4-87.3-73.7-6.1-2.7-12.2-5.1-18.4-7.3 4.1-9.9 6-20.6 5.8-31.4s-2.7-21.3-7.2-31.1-10.9-18.5-18.9-25.7-17.4-12.6-27.6-16c-12.4-4.1-23.3-6-32.4-5.8-.6-2-1.9-11 9.4-35l-22.9-13.5-5.5 7.6c-8.7 12.1-16.9 23.6-24.3 34.9-2.7-.6-5.5-1.1-8.3-1.2-41.5-2.4-39-2.3-41.1-2.3-50.6 0-50.8 52.1-50.8 45.9l-2.4 36.7c-1.6 27 19.8 50.2 47.6 51.8l8.9 .5C106 215.5 90.4 227.5 76.6 241.4 14 304.7 14 374 14 429.8l0 33.6 23.3-29.8c3.1 13.1 8 25.8 14.6 37.6 5.8 10.1 14.9 9.4 19.6 7.3 4.2-1.9 10-6.9 3.8-20.1-8-16.8-13.3-34.7-15.8-53.1l46.8-59.8-24.7 74.1c58.2-42.4 157.4-61.8 236.2-38.6 34.2 10.1 67.4 .7 84.7-23.8 .7-1 1.2-2.2 1.8-3.2 1.8 9.4 2.7 18.9 2.8 28.4 0 23.3-3.7 52.9-14.9 81.6-2.5 6.5 1.8 14.5 8.6 15.7 7.4 1.6 15.3-3.1 18.4-11.1 9.6-25.5 14.6-54.6 14.6-86.2 0-38.6-13-77.5-35.9-110.9zM142.4 128.6l-15.7-.9-1.4 21.8 13.1 .8c-.6 6.5-.5 13.1 .3 19.6l-22.4-1.3c-1.6-.1-3.2-.5-4.7-1.1s-2.8-1.6-3.9-2.8-1.9-2.6-2.5-4.1-.8-3.1-.7-4.7L107 119c1-12.2 13.9-11.3 13.3-11.3l29.1 1.7c-2.8 6.2-5.1 12.6-7 19.2zM290.8 300.8c-2.1 1.6-4.8 2.4-7.5 2.2s-5.1-1.5-6.9-3.5l-9.7-11.5-34.4 27c-1.6 1.3-3.7 1.9-5.8 1.7s-4-1.2-5.3-2.8l-15.8-18.6c-1.2-1.6-1.7-3.5-1.5-5.4s1.3-3.7 2.8-4.9l34.6-27.2-14.1-16.7-17.1 13.5c-1.6 1.2-3.5 1.8-5.5 1.6s-3.8-1.1-5.1-2.6c0 0-3.7-4.4-3.8-4.5-1.2-1.6-1.7-3.5-1.5-5.5s1.3-3.7 2.8-4.9L214 225.2s-18.5-22-18.6-22.1c-.8-1-1.3-2.1-1.7-3.3s-.4-2.5-.3-3.7 .6-2.4 1.2-3.5 1.5-2 2.5-2.8c2.1-1.7 4.8-2.4 7.4-2.2s5.1 1.5 6.9 3.6l81.1 96.3c.8 1 1.3 2.1 1.7 3.3s.4 2.5 .3 3.7-.6 2.5-1.2 3.5-1.5 2.1-2.5 2.8zM187.4 419a18 18 0 1 0 0 36 18 18 0 1 0 0-36z\"],\n \"lumon-drop\": [576, 512, [], \"e7e3\", \"M480 32c53 0 96 43 96 96l0 224c0 53-43 96-96 96L96 448c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l384 0zM302.4 114.7c-9.8-16.4-20.5-16.4-29.6 0l-68.9 114c-10.7 15.6-16.4 32.8-16.4 52.5 0 50.9 44.3 94.3 100.1 94.3 55 0 100.9-43.5 100.9-94.3 0-19.7-6.6-37.8-17.2-52.5l-68.9-114z\"],\n \"weebly\": [512, 512, [], \"f5cc\", \"M425.1 65.8c-39.9 0-73.3 25.7-83.7 64.3-18.2-58.1-65.5-64.3-85-64.3-19.8 0-66.8 6.3-85.3 64.3-10.4-38.6-43.4-64.3-83.7-64.3-49 0-87.5 33.9-87.5 77.2 0 29 4.2 33.3 77.2 233.5 22.4 60.6 67.8 69.4 92.7 69.4 39.2 0 70-19.5 85.9-54 15.9 34.8 46.7 54.3 85.9 54.3 25 0 70.4-9.1 92.7-69.7 76.6-208.6 77.5-205.6 77.5-227.2 .6-48.3-36-83.5-86.9-83.5zm26.3 114.8L385.9 357.1c-7.9 21.5-21.2 37.2-46.2 37.2-23.4 0-37.4-12.4-44-33.9l-39.3-117.4-1 0-39.3 117.4c-7 21.5-20.9 33.6-44 33.6-25 0-38.3-15.7-46.2-37.2L60.9 181.6c-5.4-14.8-7.9-23.9-7.9-34.5 0-16.3 15.8-29.4 38.3-29.4 18.7 0 32 11.8 36.1 29.1l44 139.8 1 0 44.7-136.8c6-19.7 16.5-32.1 39-32.1s32.9 12.1 39 32.1l44.7 136.8 1 0 44-139.8c4.1-17.2 17.4-29.1 36.1-29.1 22.2 0 38.3 13.3 38.3 35.7-.3 7.9-4.1 16-7.6 27.2z\"],\n \"docker\": [640, 512, [], \"f395\", \"M349.9 236.3l-66.1 0 0-59.4 66.1 0 0 59.4zm0-204.3l-66.1 0 0 60.7 66.1 0 0-60.7zm78.2 144.8l-66.1 0 0 59.4 66.1 0 0-59.4zM271.8 104.7l-66.1 0 0 60.1 66.1 0 0-60.1zm78.1 0l-66.1 0 0 60.1 66.1 0 0-60.1zm276.8 100c-14.4-9.7-47.6-13.2-73.1-8.4-3.3-24-16.7-44.9-41.1-63.7l-14-9.3-9.3 14c-18.4 27.8-23.4 73.6-3.7 103.8-8.7 4.7-25.8 11.1-48.4 10.7l-434.7 0c-8.7 50.8 5.8 116.8 44 162.1 37.1 43.9 92.7 66.2 165.4 66.2 157.4 0 273.9-72.5 328.4-204.2 21.4 .4 67.6 .1 91.3-45.2 1.5-2.5 6.6-13.2 8.5-17.1l-13.3-8.9zM115.6 176.8l-66 0 0 59.4 66.1 0 0-59.4-.1 0zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm78.1 0l-66.1 0 0 59.4 66.1 0 0-59.4zm-78.1-72.1l-66.1 0 0 60.1 66.1 0 0-60.1z\"],\n \"magento\": [448, 512, [], \"f3c4\", \"M445.9 127.9l0 256.1-63.4 36.5 0-255.8-158.5-91.6-158.6 91.6 .4 255.9-63.3-36.6 0-255.9 221.9-128.1 221.5 127.9zM255.8 420.5l-31.6 18.4-31.8-18.2 0-256-63.3 36.6 .1 255.9 94.9 54.9 95.1-54.9 0-256-63.4-36.6 0 255.9z\"],\n \"git-alt\": [448, 512, [], \"f841\", \"M439.6 236.1L244 40.5C238.6 35 231.2 32 223.6 32s-15 3-20.4 8.4l-40.7 40.6 51.5 51.5c27.1-9.1 52.7 16.8 43.4 43.7l49.7 49.7c34.2-11.8 61.2 31 35.5 56.7-26.5 26.5-70.2-2.9-56-37.3l-46.3-46.3 0 121.9c25.3 12.5 22.3 41.8 9.1 55-6.4 6.4-15.2 10.1-24.3 10.1s-17.8-3.6-24.3-10.1c-17.6-17.6-11.1-46.9 11.2-56l0-123c-20.8-8.5-24.6-30.7-18.6-45L142.6 101 8.5 235.1C3 240.6 0 247.9 0 255.5s3 15 8.5 20.4L204.1 471.6c5.4 5.4 12.7 8.4 20.4 8.4s15-3 20.4-8.4L439.6 276.9c5.4-5.4 8.4-12.8 8.4-20.4s-3-15-8.4-20.4z\"],\n \"firefox-browser\": [512, 512, [], \"e007\", \"M130.2 127.5l0 0zm351.4 45.4c-10.6-25.5-32.1-53-48.9-61.7 13.7 26.9 21.7 53.9 24.7 74 0 .1 0 .3 .1 .4-27.6-68.8-74.4-96.5-112.6-156.8-15-23.7-10.9-25.2-13.1-24.7l-.1 .1c-46.7 26-75.3 78.4-82.6 122.7-16.6 .9-32.9 5-47.9 12.1-1.4 .6-2.5 1.7-3.1 3s-.9 2.8-.6 4.3c.2 .8 .6 1.6 1.1 2.3s1.2 1.3 1.9 1.7 1.6 .7 2.4 .8 1.7 0 2.5-.3l.5-.2c15.5-7.3 32.4-11.2 49.5-11.3 62.8-.6 97.2 44 107.6 62.3-13-9.2-36.4-18.2-58.8-14.3 87.7 43.9 64.2 194.5-57.4 189.2-59.5-2.6-97.1-51-100.5-90.8 0 0 11.2-41.9 80.6-41.9 7.5 0 28.9-20.9 29.3-27-.1-2-42.5-18.9-59.1-35.2-8.8-8.7-13.1-12.9-16.8-16.1-2-1.7-4.1-3.3-6.3-4.8-5.6-19.5-5.8-40-.7-59.6-25.1 11.4-44.6 29.4-58.7 45.4l-.1 0c-9.7-12.2-9-52.6-8.4-61.1-.1-.5-7.2 3.7-8.2 4.3-8.6 6.1-16.5 12.9-23.8 20.4-16.3 16.6-44.1 50.2-55.5 101.2-4.5 20.4-6.8 44.4-6.8 52.3 0 134.7 109.2 243.9 243.9 243.9 120.6 0 223-87.2 240.4-202.6 11.6-76.7-14.7-131.1-14.7-132z\"],\n \"cloudsmith\": [512, 512, [], \"f384\", \"M512 227.6L512 284.5 284.4 512 227.6 512 0 284.4 0 227.6 227.6 0 284.5 0 512 227.6zm-256 162c17.8 .5 35.6-2.6 52.2-9.1s31.8-16.2 44.6-28.7 23-27.3 29.9-43.8 10.5-34.1 10.5-52-3.6-35.5-10.5-52-17.1-31.3-29.9-43.8-28-22.2-44.6-28.7-34.4-9.6-52.2-9.1c-17.8-.5-35.6 2.6-52.2 9.1s-31.8 16.3-44.6 28.7-23 27.3-29.9 43.8-10.5 34.1-10.5 52 3.6 35.5 10.5 52 17.1 31.3 29.9 43.8 28 22.2 44.6 28.7 34.4 9.6 52.2 9.1z\"],\n \"wizards-of-the-coast\": [640, 512, [], \"f730\", \"M219.2 345.7c-1.9 1.4-11.1 8.4-.3 23.6 4.6 6.4 14.1 12.8 21.7 6.6 6.5-4.9 7.4-12.9 .3-23-5.5-7.8-14.3-12.9-21.7-7.1zm336.8 75.9c-.3 1.7-.6 1.7 .8 0 2.1-4.2 4.2-10.2 5-19.9 3.1-38.5-40.3-71.5-101.3-78-54.7-6-124.4 9.2-188.8 60.5l-.3 1.6c2.6 5 5 10.7 3.4 21.2l.8 .3c63.9-58.4 131.2-77.2 184.4-73.8 58.4 3.7 100 34 100 68.1 0 10-2.6 15.7-3.9 20.2zM392.3 240.4c.8 7.1 4.2 10.2 9.2 10.5 5.5 .3 9.4-2.6 10.5-6.6 .8-3.4 2.1-29.8 2.1-29.8S402.8 221 399.1 225c-3.7 3.7-7.3 8.4-6.8 15.5zm-50-151.1c-204.5 0-329.2 137.5-341.5 151.9-1 .5-1.3 .8 .8 1.3 60.5 16.5 155.8 81.2 196.1 202.2l1 .3c55.2-69.9 140.9-128.1 237-128.1 80.9 0 130.2 42.2 130.2 80.4 0 18.3-6.6 33.5-22.3 46.3 0 1-.2 .8 .8 .8 14.7-10.7 27.5-28.8 27.5-48.2 0-22.8-12.1-38.2-12.1-38.2 7.1 7.1 10.7 16.2 10.7 16.2 5.8-40.9 27-62.3 27-62.3-2.4-9.7-6.8-17.8-6.8-17.8 7.6 8.1 14.4 27.5 14.4 41.4 0 10.5-3.4 22.8-12.6 31.9l.3 .5c8.1-5 16.5-16.8 16.5-38 0-15.7-4.7-25.9-4.7-25.9 5.8-5.2 11.3-9.2 16-11.8 .8 3.4 2.1 9.7 2.4 14.9 0 1 .8 1.8 1 0 .8-5.8-.3-16.2-.3-16.5 6-3.1 9.7-4.5 9.7-4.5-15.7-110.3-144-196.9-291.2-196.9zM243 378.9c-11.1 9-24.2 4.1-30.6-4.2-7.4-9.6-6.8-24.1 4.2-32.5 14.8-11.4 27.1-.5 31.2 5.5 .3 .4 12.1 16.6-4.7 31.2zm2.1-136.4l9.4-17.8 11.8 71-12.6 6-24.6-28.8 14.1-26.7 3.7 4.4-1.8-8.1zm18.6 117.6l-.3-.3c2-4.1-2.5-6.6-17.5-31.7-1.3-2.4-3.1-2.9-4.4-2.6l-.3-.5c7.9-5.8 15.4-10.2 25.4-15.7l.5 .3c1.3 1.8 2.1 2.9 3.4 4.7l-.3 .5c-1-.3-2.4-.8-5.2 .3-2.1 .8-7.9 3.7-12.3 7.6l0 1.3c1.6 2.4 3.9 6.6 5.8 9.7l.3 0c10-6.3 7.6-4.5 11.5-7.9l.3 0c.5 1.8 .5 1.8 1.8 5.5l-.3 .3c-3.1 .6-4.7 .3-11.5 5.5l0 .3c9.5 17 11 16.8 12.6 16l.3 .3c-2.3 1.6-6.3 4.2-9.7 6.6zM319 327.6c-3.1 1.6-6 2.9-10 5l-.3-.3c1.3-2.6 1.2-2.7-11.8-32.5l-.3-.3c-.2 0-8.9 3.7-10 7.3l-.5 0-1-5.8 .3-.5c7.3-4.6 25.5-11.6 27.8-12.6l.5 .3 3.1 5-.3 .5c-3.5-1.8-7.4 .8-12.3 2.6l0 .3c12.3 32 12.7 30.6 14.7 30.6l0 .2zm44.8-16.5c-4.2 1-5.2 1.3-9.7 2.9l-.3-.3 .5-4.5c-1-3.4-3.1-11.5-3.7-13.6l-.3-.3c-3.4 .8-8.9 2.6-12.8 3.9l-.3 .3c.8 2.6 3.1 9.9 4.2 13.9 .8 2.4 1.8 2.9 2.9 3.1l0 .5c-3.7 1-7.1 2.6-10.2 3.9l-.3-.3c1-1.3 1-2.9 .3-5-1-3.1-8.1-23.8-9.2-27.2-.5-1.8-1.6-3.1-2.6-3.1l0-.5c3.1-1 6-2.1 10.7-3.4l.3 .3-.3 4.7c1.3 3.9 2.4 7.6 3.1 9.7l.3 0c3.9-1.3 9.4-2.9 12.8-3.9l.3-.3-2.6-9.4c-.5-1.8-1-3.4-2.6-3.9l0-.3c4.4-1 7.3-1.8 10.7-2.4l.3 .3c-1 1.3-1 2.9-.5 4.4 1.6 6.3 4.7 20.4 6.3 26.5 .5 2.6 1.8 3.4 2.6 3.9zm32.2-6.8l-.3 .3c-4.7 .5-14.1 2.4-22.5 4.2l-.3-.3 .8-4.2c-1.6-7.9-3.4-18.6-5-26.2-.3-1.8-.8-2.9-2.6-3.7l.8-.5c9.2-1.6 20.2-2.4 24.9-2.6l.3 .3c.5 2.4 .8 3.1 1.6 5.5l-.3 .3c-1.1-1.1-3.3-3.2-16.2-.8l-.3 .3c.3 1.6 1 6.6 1.6 9.9l.3 .3c9.5-1.7 4.8-.1 10.7-2.4l.3 0c0 1.6-.3 1.8-.3 5.2l-.3 0c-4.8-1-2.2-.9-10.2 0l-.3 .3c.3 2.1 1.6 9.4 2.1 12.6l.3 .3c1.2 .4 14.2-.6 16.2-4.7l.3 0c-.5 2.4-1 4.2-1.6 6zm10.7-44.5c-4.5 2.4-8.1 2.9-11 2.9-.2 0-11.4 1.1-17.5-10-6.7-10.8-1-25.2 5.5-31.7 8.8-8.1 23.4-10.1 28.5-17 8-10.3-13-22.3-29.6-5.8l-2.6-2.9 5.2-16.2c25.6-1.6 45.2-3 50 16.2 .8 3.1 0 9.4-.3 12.1 0 2.6-1.8 18.8-2.1 23-.5 4.2-.8 18.3-.8 20.7 .3 2.4 .5 4.2 1.6 5.5 1.6 1.8 5.8 1.8 5.8 1.8l-.8 4.7c-11.8-1.1-10.3-.6-20.4-1-3.2-5.1-2.2-3.3-4.2-7.9 0 0-4.2 3.9-7.3 5.5zM443.9 281c-6.4-10.6-19.8-7.2-21.7 5.5-2.6 17.1 14.3 19.8 20.7 10.2l.3 .3c-.5 1.8-1.8 6-1.8 6.3l-.5 .5c-10.3 6.9-28.5-2.5-25.7-18.6 1.9-10.9 14.4-18.9 28.8-9.9l.3 .5c0 1.1-.3 3.4-.3 5.3zm5.8-87.7l0-6.6c.7 0 19.6 3.3 27.8 7.3l-1.6 17.5s10.2-9.4 15.4-10.7c5.2-1.6 14.9 7.3 14.9 7.3l-11.3 11.3c-12.1-6.4-19.6-.1-20.7 .8-5.3 38.7-8.6 42.2 4.4 46.1l-.5 4.7c-17.6-4.3-18.5-4.5-36.9-7.3l.8-4.7c7.3 0 7.5-5.3 7.6-6.8 0 0 5-53.2 5-55.3 0-2.9-5-3.7-5-3.7zm11 114.4c-8.1-2.1-14.1-11-10.7-20.7 3.1-9.4 12.3-12.3 18.9-10.2 9.2 2.6 12.8 11.8 10.7 19.4-2.6 8.9-9.4 13.9-18.9 11.5zm42.2 9.7c-2.4-.5-7.1-2.4-8.6-2.9l0-.3 1.6-1.8c.6-8.2 .6-7.3 .3-7.6-4.8-1.8-6.7-2.4-7.1-2.4-1.3 1.8-2.9 4.5-3.7 5.5l-.8 3.4 0 .3c-1.3-.3-3.9-1.3-6-1.6l0-.3 2.6-1.8c3.4-4.7 10-14.1 13.9-20.2l0-2.1 .5-.3c2.1 .8 5.5 2.1 7.6 2.9 .5 .5 .2-1.9-1 25.1-.2 1.8 0 2.6 .8 3.9zm-4.7-89.8c11.3-18.3 30.8-16.2 34-3.4l7.6-26.2c2.3-6.2-2.8-9.9-4.5-11.3l1.8-3.7c12.2 10.4 16.4 14 22.5 20.4-25.9 73.1-30.8 80.8-24.6 84.3l-1.8 4.4c-6.4-3.3-8.9-4.4-17.8-8.6l2.1-6.8c-.3-.3-3.9 3.9-9.7 3.7-19.1-1.3-22.9-31.7-9.7-52.9zm29.3 79.3c0-5.7-6.3-7.9-7.9-5.2-1.3 2.1 1 5 2.9 8.4 1.6 2.6 2.6 6.3 1 9.4-2.6 6.3-12.4 5.3-15.4-.8 0-.7-.3 .1 1.8-4.7l.8-.3c-.6 5.7 6.1 9.6 8.4 5 1-2.1-.5-5.5-2.1-8.4-1.6-2.6-3.7-6.3-1.8-9.7 2.7-5.1 11.3-4.5 14.7 2.4l0 .5-2.4 3.4zm21.2 13.4c-2-3.3-.9-2.1-4.5-4.7l-.3 0c-2.4 4.2-5.8 10.5-8.6 16.2-1.3 2.4-1 3.4-.8 3.9l-.3 .3-5.8-4.4 .3-.3 2.1-1.3c3.1-5.8 6.6-12.1 9.2-17l0-.3c-2.6-2-1.2-1.5-6-1.8l0-.3 3.1-3.4 .3 0c3.7 2.4 10 6.8 12.3 8.9l.3 .3-1.3 3.9zM575.8 276l-2.9-2.9c.8-2.4 1.8-5 2.1-7.6 .7-9.7-11.5-11.8-11.5-5 0 5 7.9 19.4 7.9 27.8 0 10.2-5.8 15.7-13.9 16.5-8.4 .8-20.2-10.5-20.2-10.5l5-14.4 2.9 2.1c-3 17.8 17.7 20.4 13.3 5.2-1.1-4-18.7-34.2 2.1-38.2 13.6-2.4 23 16.5 23 16.5L575.8 276zm35.6-10.2c-11-30.4-60.5-127.5-192-129.6-53.4-1-94.3 15.4-132.8 38l85.6-9.2-91.4 20.7 25.1 19.6-3.9-16.5c7.5-1.7 39.1-8.5 66.8-8.9l-22.3 80.4c13.6-.7 19-9 19.6-22.8l5-1 .3 26.7c-22.5 3.2-37.3 6.7-49.5 9.9l13.1-43.2-61.5-36.7 2.4 8.1 10.2 5c6.3 18.6 19.4 56.6 20.4 58.7 2 4.3 3.2 5.8 12 4.5l1.1 5c-16.1 4.9-23.7 7.6-39 14.4l-2.4-4.7c4.4-2.9 8.7-3.9 5.5-12.8-23.7-62.5-21.5-58.1-22.8-59.4l2.4-4.4 33.5 67.3c-3.8-11.9 1.7 1.7-33-78.8l-41.9 88.5 4.7-13.9-35.9-42.2 27.8 93.5-11.8 8.4c-111.9-101.7-105.8-98.4-113.7-98.7-5.5-.3-13.6 5.5-13.6 5.5l-5-6c30.6-23.5 31.6-24.3 58.4-42.7l4.2 7.1s-5.8 4.2-7.9 7.1c-5.9 9.3 1.7 13.3 61.8 75.7l-18.8-58.9 39.8-10.2 25.7 30.6 4.4-12.3-5-24.6 13.1-3.4 .5 3.1 3.7-10.5-94.3 29.3 11.3-5-13.6-42.4 17.3-9.2 30.1 36.1 28.5-13.1c-1.4-7.5-2.5-14.5-4.7-19.6l17.3 13.9 4.7-2.1-59.2-42.7 23.1 11.5c19-6.1 25.2-7.5 32.2-9.7l2.6 11c-12.6 12.6 1.4 16.8 6.5 19.4l-13.6-61 12 28.3c4.2-1.3 7.3-2.1 7.3-2.1l2.6 8.6s-3.1 1-6.3 2.1l8.9 21 33.8-65.7-20.7 61c42.4-24.1 81.4-36.7 132-35.9 67 1 167.3 40.8 199.8 139.8 .8 2.1 0 2.6-.8 .3zm-408-113.4s1.8-.5 4.2-1.3l9.4 7.6c-.4 0-3.4-.3-11.3 2.4l-2.4-8.6zm143.8 38.5c-1.6-.6-26.5-4.8-33.3 20.7l21.7 17 11.5-37.7zM318.4 67.1c-58.4 0-106.1 12-115 14.4l0 .8c8.4 2.1 14.4 4.2 21.2 11.8l1.6 .3c6.6-1.8 49-13.9 110.2-13.9 180.2 0 301.7 116.8 301.7 223.4l0 10c0 1.3 .8 2.6 1.1 .5 .5-2.1 .8-8.6 .8-19.6 .3-83.8-96.6-227.6-321.6-227.6zM529.5 236.8c1.3-5.8 0-12.3-7.3-13.1-9.6-1.1-16.1 23.8-17 33.5-.8 5.5-1.3 14.9 6 14.9 4.7 0 9.7-.9 18.3-35.4zM468 279.7c-2.6-.8-9.4-.8-12.6 10.5-1.8 6.8 .5 13.4 6 14.7 3.7 1.1 8.9 .5 11.8-10.7 2.6-9.9-1.8-13.6-5.2-14.4zm23 21c1.8 .5 3.1 1 5.8 1.8 0-1.8 .5-8.4 .8-12.1-1 1.3-5.5 8.1-6.6 10l0 .3z\"],\n \"creative-commons-nd\": [512, 512, [], \"f4eb\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm94 144.3l0 42.5-180.3 0 0-42.5 180.3 0zm0 79.8l0 42.5-180.3 0 0-42.5 180.3 0z\"],\n \"usps\": [512, 512, [], \"f7e1\", \"M428.3 241.7c25.8-41.3 15.2-48.8-11.7-48.8l-27 0c-.1 0-1.5-1.4-10.9 8-11.2 5.6-37.9 6.3-37.9 8.7 0 4.5 70.3-3.1 88.1 0 9.5 1.5-1.5 20.4-4.4 32-.5 4.5 2.4 2.3 3.8 .1zM316.2 264.3c64-21.3 97.3-23.9 102-26.2 4.4-2.9-4.4-6.6-26.2-5.8-51.7 2.2-137.6 37.1-172.6 53.9l-30.7-93.3 196.6 0c-2.7-28.2-152.9-22.6-337.9-22.6L-5 415.8c196.4-97.3 258.9-130.3 321.2-151.5zM62.7 96c253.3 53.7 330 65.7 332.1 85.2 36.4 0 45.9 0 52.4 6.6 21.1 19.7-14.6 67.7-14.6 67.7-4.4 2.9-406.4 160.2-406.4 160.2L449.3 415.7 517 96 62.7 96z\"],\n \"square-letterboxd\": [448, 512, [], \"e62e\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM105.1 187C66.4 187 35 218.3 35 257s31.4 70 70.1 70c24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5 0-13.6 3.9-26.3 10.6-37.1-12.4-19.8-34.4-32.9-59.5-32.9zM224 187c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5 0 13.6-3.9 26.3-10.6 37.1 12.4 19.7 34.4 32.9 59.5 32.9 24.8 0 46.5-12.8 59-32.2l.5-.7-.4-.6c-6.5-10.6-10.2-23.1-10.2-36.5 0-13.6 3.9-26.3 10.6-37.1-12.4-19.7-34.4-32.9-59.5-32.9zm118.9 0c-24.8 0-46.5 12.8-59 32.2l-.5 .7 .4 .6c6.5 10.6 10.2 23.1 10.2 36.5 0 13.6-3.9 26.3-10.6 37.1 12.4 19.8 34.4 32.9 59.5 32.9 38.7 0 70.1-31.3 70.1-70s-31.4-70-70.1-70z\"],\n \"mandalorian\": [384, 512, [], \"f50f\", \"M200.6 511.9c-1-3.3-1.7-15.8-1.4-24.6 .6-15.9 1-24.7 1.4-28.8 .6-6.2 2.9-20.7 3.3-21.4 .6-1 .4-27.9-.2-33.1-.3-2.6-.6-11.9-.7-20.7-.1-16.5-.5-20.1-2.7-24.8-1.1-2.3-1.2-3.8-1-11.4 .2-4.2 .1-8.5-.3-12.7-2-13-3.5-27.7-3.2-33.9s.4-7.1 2.1-9.7c3.1-4.7 6.5-14 8.6-23.3 2.3-9.9 3.9-17.2 4.6-20.7 1.1-5.1 2.6-10.1 4.4-15.1 2.3-6.2 2.5-15.4 .4-15.4-.3 0-1.4 1.2-2.4 2.7s-4.8 4.8-8.3 7.4c-8.4 6.1-11.7 9.4-12.7 12.6s-1 7.2-.2 7.8c.3 .2 1.3 2.4 2.1 4.9 1.6 5 1.9 10.3 .7 15.4-.4 1.8-1 5.5-1.5 8.2s-1 6.5-1.3 8.2c-.2 1.5-.7 3-1.5 4.3-1 1-1.1 .9-2.1-.5-.7-1.5-1.2-3.1-1.4-4.7-.2-1.7-1.6-7.1-3.1-11.9-3.3-10.9-3.5-16.2-1-21 .8-1.4 1.4-3 1.7-4.6 0-2.4-2.2-5.3-7.4-9.9-7-6.2-8.6-7.9-10.2-11.3-1.7-3.6-3.1-4.1-4.5-1.5-1.8 3-2.6 9.1-3 22l-.3 12.2 2 2.2c3.2 3.7 12.1 16.5 13.8 19.8 3.4 6.7 4.3 11.7 4.4 23.6s1 22.8 2 24.7c.4 .7 .5 1.4 .3 1.5s.4 2.1 1.3 4.3c1 2.9 1.7 5.9 2.1 9 .4 3.5 .9 7 1.7 10.4 2.2 9.6 2.8 14.1 2.4 20.1-.2 3.3-.5 11.1-.7 17.3-1.3 41.8-1.8 58-2 61.2-.1 2-.4 11.5-.6 21.1-.4 16.3-1.3 27.4-2.4 28.6-.6 .7-8.1-4.9-12.5-9.5-3.8-3.9-4-4.8-2.8-9.9 .7-3 2.3-18.3 3.3-32.6 .4-4.8 .8-10.5 1-12.7 .8-9.4 1.7-20.3 2.6-34.8 .6-8.5 1.3-16.4 1.7-17.7s.9-9.9 1.1-19.1l.4-16.8-2.3-4.3c-1.7-3.3-4.9-6.9-13.2-15.3-6-6.1-11.8-12.3-12.9-13.8l-2-2.8 .8-10.9c1.1-15.7 1.1-48.6 0-59.1l-.9-8.7-3.3-4.5c-5.9-8.1-5.8-7.7-6.2-33.3-.1-6.1-.4-11.5-.6-12.1-.8-1.9-3-2.7-8.5-3-8.9-.6-11-1.9-23.8-14.6-6.2-6-12.3-12-13.8-13.2-2.8-2.4-2.8-2-.6-9.6l1.4-4.6-1.7-3c-.8-1.4-1.6-2.8-2.6-4.1-1.3-1.5-5.5-10.9-6-13.5-.2-.7-.2-1.4-.1-2.1s.5-1.3 .9-1.8c2.2-2.9 3.4-5.7 4.5-10.7 2.3-11.2 7.7-26.1 10.6-29.2 3.2-3.5 7.7-1 9.4 5 1.3 4.8 1.4 9.8 .1 18.6-.5 3.7-.9 7.4-1 11.1 0 4 .2 4.7 2.3 7.4 3.3 4.4 7.7 7.4 15.2 10.5 1.7 .7 3.3 1.7 4.7 2.8 11.2 10.7 18.6 16.2 22.9 16.9 5.2 .8 8 4.5 10 13.4 1.3 5.7 4 11.1 5.5 11.1 1.2-.2 2.3-.7 3.3-1.4 2-1.2 2.2-1.7 2.2-4.2-.3-6-.9-11.9-2-17.8-.4-1.7-.8-4.1-.9-5.4s-.6-3.8-1-5.7c-2.6-11.2-3.6-15.5-4.1-16-1.6-2-4.1-10.2-4.9-15.9-1.6-11.1-4-14.2-12.9-17.4-4.9-1.8-9.4-4.5-13.3-7.9-1.2-1-4-3.2-6.4-5.1s-4.4-3.5-4.6-3.8c-.8-.7-1.7-1.4-2.7-2-6.2-4.2-8.8-7-11.3-12l-2.4-5c-.1-8.7-.3-17.3-.4-26l6.9-6.6c4-3.8 8.5-7.4 10.6-8.4 3.3-1.7 4.4-1.9 11.4-2 8.5-.2 10.1 0 11.7 1.6s1.4 6.4-.3 8.5c-.6 .7-1.1 1.5-1.3 2.3 0 .6-2.6 4.9-5.4 9-1.1 2.2-1.9 4.5-2.4 6.8 20.4 13.4 21.6 3.8 14.1 29l11.4 2.5c3.1-8.7 6.5-17.3 8.6-26.2 .3-7.6-12-4.2-15.4-8.7-2.3-5.9 3.1-14.2 6.1-19.2 1.6-2.3 6.6-4.7 8.8-4.1 .9 .2 4.2-.4 7.4-1.3 2.5-.8 5-1.3 7.5-1.7 2-.2 4.1-.7 6-1.3 3.7-1.1 4.5-1.2 6.3-.4 1.9 .6 3.8 1.1 5.8 1.4 2.1 .3 4.1 .9 6 1.9 1.6 .9 3.3 1.7 5 2.2 2.5 .7 3 .6 7-1.7L226 5.4 236.7 5c10.4-.4 10.8-.5 15.3-2.7L256.5 0 259 1.4c1.8 1 3.1 2.7 4.9 6 2.4 4.5 2.4 4.6 1.4 7.4-.9 2.4-.9 3.3-.1 6.4 .5 2 1.2 4 2.1 5.9 .6 1.3 1.1 2.6 1.3 4 .3 4.3 0 5.3-2.4 6.9-2.2 1.5-7 7.9-7 9.3-.2 1-.6 2-1.1 3-5 11.5-6.8 13.6-14.3 17-9.2 4.2-12.3 5.2-16.2 5.2-3.1 0-4 .2-4.5 1.3-1.2 1.4-2.5 2.7-4.1 3.7-1.8 1.2-3.3 2.9-4.4 4.8-.5 1.2-1.4 2.2-2.5 2.9-.9 .4-1.8 1-2.5 1.7-2.2 1.9-4.6 3.7-7 5.4-3.3 2.3-6.9 5-7.9 6-.7 .7-1.5 1.3-2.4 1.7-.8 .4-1.6 .9-2.1 1.6-1.3 1.4-1.5 2.1-1.1 4.6 .3 2 .8 4 1.4 5.9 1.3 3.8 1.3 7.9 0 10.6s-.9 6.7 1.4 9.6c2 2.6 2.2 4.6 .7 8.8-.8 2.9-1.1 5.9-1.1 8.9 0 4.9 .2 6.3 1.5 8.4s1.8 2.5 3.2 2.3c2-.2 2.3-1.1 4.7-12.1 2.2-10 3.7-11.9 13.8-17.1 2.9-1.5 7.5-4 10-5.4s6.8-3.7 9.4-4.9c5.9-2.6 11.2-6.6 15.2-11.7 7.1-8.8 10-16.2 12.8-33.3 .4-2.8 1.3-5.4 2.9-7.7 1.4-2.2 2.4-4.7 2.9-7.3 1-5.3 2.9-9.1 5.6-11.5 4.7-4.2 6-1.1 4.6 10.9-.5 3.9-1.1 10.3-1.4 14.4l-.6 7.4c3 2.7 5.9 5.5 8.9 8.2l.1 8.4c.1 4.6 .5 9.5 .9 10.9l.8 2.5-6.4 6.3c-8.5 8.3-12.9 13.9-16.8 21.6-1.8 3.5-3.7 7.1-4.4 8-2.2 3.1-6.5 13-8.8 20.3l-2.3 7.2-7 6.5c-3.8 3.6-8 7.2-9.2 8.2-3 2.3-4.3 5.1-4.3 10-.1 2.5 .4 5 1.6 7.3 .8 1.6 1.5 3.2 2.1 4.8 .3 1 .9 2 1.6 2.9 1.4 1.6 1.9 16.1 .8 23.2-.7 4.5-3.6 12-4.7 12-1.8 0-4.1 9.3-5.1 20.7-.2 2-.6 5.9-1 8.7s-1 10-1.4 16c-.8 12.2-.2 18.8 2 23.2 3.4 6.7 .5 12.7-11 22.8l-4 3.5 .1 5.2c.1 3 .4 6 1.1 8.9 4.6 16 4.7 16.9 4.4 37.1-.5 26.4-.3 40.3 .6 44.2 .5 2.3 .9 4.6 1.1 7 .2 2 .7 5.3 1.1 7.4 .5 2.3 .8 11 .8 22.7l0 19.1-1.8 2.6c-2.7 3.9-15.1 13.5-15.5 12.3l.1 0zm29.5-45.1c-.2-.3-.3-6.9-.3-14.6 0-14.1-.9-27.5-2.3-34.4-.4-2-.8-9.7-.9-17.1-.2-11.9-1.4-24.4-2.6-26.4-.7-1.1-3-17.7-3-21.3 0-4.2 1-6 5.3-9.1s4.9-3.1 5.5-.7c.3 1.1 1.4 5.6 2.6 10 3.9 15.1 4.1 16.3 4 21.7-.1 5.8-.1 6.1-1.7 17.7-1 7.1-1.2 12.4-1 28.4 .2 19.4-.6 35.7-2 41.3-.7 2.8-2.8 5.5-3.4 4.4l-.1 0zm-71-37.6c-.8-3.6-1.3-7.2-1.7-10.8s-1-7.2-1.7-10.8c-.5-2.1-.9-4.3-1-6.5-.3-3.2-.9-7.5-1.3-9.5-1-4.8-3.3-19.4-3.4-21.1 0-.7-.3-4-.7-7.4-.7-6.2-.8-27.7-.2-28.3 1-1 6.6 2.8 11.3 7.4l5.3 5.3-.4 6.5c-.2 3.6-.6 10.2-.8 14.8-.5 13.3-.7 8.7-1.6 28.4-.8 17.4-1.9 31.3-2.6 32-.1 .1-.2 .1-.2 .2s-.2 0-.3 0-.2 0-.3-.1-.1-.1-.2-.2l0 0zM72 162.6c21.1 12.8 17.8 14.2 28.5 17.7 13 4.3 18.9 7.1 23.2 16.9-43.7 36.1-69 57.9-76.7 70.9-31 52-6 101.6 62.8 87.2-14.2 29.2-78 28.6-98.7-4.9-24.7-40-22.1-118.3 61-187.7l0 0zm210.8 179c56.7 6.9 82.3-37.7 46.5-89.2 0 0-26.9-29.3-64.3-68 3-15.5 9.5-32.1 30.6-53.8 89.2 63.5 92 141.6 92.5 149.4 4.3 70.6-78.7 91.2-105.3 61.7l0 0z\"],\n \"slack\": [448, 512, [62447, \"slack-hash\"], \"f198\", \"M94.1 315.1c0 25.9-21.2 47.1-47.1 47.1S0 341 0 315.1 21.2 268 47.1 268l47.1 0 0 47.1zm23.7 0c0-25.9 21.2-47.1 47.1-47.1S212 289.2 212 315.1l0 117.8c0 25.9-21.2 47.1-47.1 47.1s-47.1-21.2-47.1-47.1l0-117.8zm47.1-189c-25.9 0-47.1-21.2-47.1-47.1S139 32 164.9 32 212 53.2 212 79.1l0 47.1-47.1 0zm0 23.7c25.9 0 47.1 21.2 47.1 47.1S190.8 244 164.9 244L47.1 244C21.2 244 0 222.8 0 196.9s21.2-47.1 47.1-47.1l117.8 0zm189 47.1c0-25.9 21.2-47.1 47.1-47.1S448 171 448 196.9 426.8 244 400.9 244l-47.1 0 0-47.1zm-23.7 0c0 25.9-21.2 47.1-47.1 47.1S236 222.8 236 196.9l0-117.8C236 53.2 257.2 32 283.1 32s47.1 21.2 47.1 47.1l0 117.8zm-47.1 189c25.9 0 47.1 21.2 47.1 47.1S309 480 283.1 480 236 458.8 236 432.9l0-47.1 47.1 0zm0-23.7c-25.9 0-47.1-21.2-47.1-47.1S257.2 268 283.1 268l117.8 0c25.9 0 47.1 21.2 47.1 47.1s-21.2 47.1-47.1 47.1l-117.8 0z\"],\n \"angellist\": [384, 512, [], \"f209\", \"M315.6 215.4c11.7-32.6 45.4-126.9 45.4-157.1 0-26.6-15.7-48.9-43.7-48.9-44.6 0-84.6 131.7-97.1 163.1-9.7-28.5-55.1-172.5-95.1-172.5-31.1 0-45.7 22.9-45.7 51.7 0 35.3 34.2 126.8 46.6 162-6.3-2.3-13.1-4.3-20-4.3-23.4 0-48.3 29.1-48.3 52.6 0 8.9 4.9 21.4 8 29.7-36.9 10-51.1 34.6-51.1 71.7-.1 72.2 68.3 148.6 164.5 148.6 118 0 191.4-88.6 191.4-202.9 0-43.1-6.9-82-54.9-93.7zM280.2 108c4-12.3 21.1-64.3 37.1-64.3 8.6 0 10.9 8.9 10.9 16 0 19.1-38.6 124.6-47.1 148l-34-6 33.1-93.7zM110.8 48.3c0-11.9 14.5-45.7 46.3 47.1l34.6 100.3c-15.6-1.3-27.7-3-35.4 1.4-10.9-28.8-45.5-119.7-45.5-148.8zM108.5 244c29.3 0 67.1 94.6 67.1 107.4 0 5.1-4.9 11.4-10.6 11.4-20.9 0-76.9-76.9-76.9-97.7 .1-7.7 12.7-21.1 20.4-21.1zM292.8 430.3c-29.1 32-66.3 48.6-109.7 48.6-59.4 0-106.3-32.6-128.9-88.3-17.1-43.4 3.8-68.3 20.6-68.3 11.4 0 54.3 60.3 54.3 73.1 0 4.9-7.7 8.3-11.7 8.3-16.1 0-22.4-15.5-51.1-51.4-29.7 29.7 20.5 86.9 58.3 86.9 26.1 0 43.1-24.2 38-42 3.7 0 8.3 .3 11.7-.6 1.1 27.1 9.1 59.4 41.7 61.7 0-.9 2-7.1 2-7.4 0-17.4-10.6-32.6-10.6-50.3 0-28.3 21.7-55.7 43.7-71.7 8-6 17.7-9.7 27.1-13.1 9.7-3.7 20-8 27.4-15.4-1.1-11.2-5.7-21.1-16.9-21.1-27.7 0-120.6 4-120.6-39.7 0-6.7 .1-13.1 17.4-13.1 32.3 0 114.3 8 138.3 29.1 18.1 16.1 24.3 113.2-31 174.7zm-98.6-126c9.7 3.1 19.7 4 29.7 6-7.4 5.4-14 12-20.3 19.1-2.8-8.5-6.2-16.8-9.4-25.1z\"],\n \"android\": [576, 512, [], \"f17b\", \"M420.5 253.9a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-265.1 0a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm273.7-96.5l47.9-83c.8-1.1 1.3-2.4 1.5-3.8s.2-2.7-.1-4.1-.9-2.6-1.7-3.7-1.8-2-3-2.7-2.5-1.1-3.9-1.3-2.7 0-4 .4-2.5 1.1-3.6 1.9-1.9 2-2.5 3.2l-48.5 84.1c-38.8-17.4-80.8-26.4-123.3-26.4s-84.5 9-123.3 26.4L116.2 64.4c-.6-1.2-1.5-2.3-2.5-3.2s-2.3-1.5-3.6-1.9-2.7-.5-4-.4-2.7 .6-3.9 1.3-2.2 1.6-3 2.7-1.4 2.4-1.7 3.7-.3 2.7-.1 4.1 .8 2.6 1.5 3.8l47.9 83C64.5 202.2 8.2 285.5 0 384l576 0c-8.2-98.5-64.5-181.8-146.9-226.6z\"],\n \"meetup\": [576, 512, [], \"f2e0\", \"M131.1 414.3c1.1 5.7-2.3 11.1-8 12.3-5.4 1.1-10.9-2.3-12-8-1.1-5.4 2.3-11.1 7.7-12.3s11.1 2.3 12.3 8zm143.1 71.4c-6.3 4.6-8 13.4-3.7 20 4.6 6.6 13.4 8.3 20 3.7 6.3-4.6 8-13.4 3.4-20-4.2-6.5-13.1-8.3-19.7-3.7zm-86-462.3a11.8 11.8 0 1 0 -4.9-23 11.8 11.8 0 1 0 4.9 23zM66.5 226.3a22.2 22.2 0 1 0 -24.7 36.9 22.2 22.2 0 1 0 24.7-36.9zm272-170.9a22.1 22.1 0 1 0 -22.4-38 22.1 22.1 0 1 0 22.4 38zm-191.1 58a16.9 16.9 0 1 0 -18.8-28 16.9 16.9 0 1 0 18.8 28zm372.3 156c-7.4 1.7-12.3 9.1-10.6 16.9 1.4 7.4 8.9 12.3 16.3 10.6 7.4-1.4 12.3-8.9 10.6-16.6-1.5-7.4-8.9-12.3-16.3-10.9zm39.7-56.8a10.1 10.1 0 1 0 -19.8 4.3 10.1 10.1 0 1 0 19.8-4.3zm-80.3-73.7a18.8 18.8 0 1 0 20.7 31.3 18.8 18.8 0 1 0 -20.7-31.3zm-6.3 139.4c26.3 43.1 15.1 100-26.3 129.1-17.4 12.3-37.1 17.7-56.9 17.1-12 47.1-69.4 64.6-105.1 32.6-1.1 .9-2.6 1.7-3.7 2.9-39.1 27.1-92.3 17.4-119.4-22.3-9.7-14.3-14.6-30.6-15.1-46.9-65.4-10.9-90-94-41.1-139.7-28.3-46.9 .6-107.4 53.4-114.9 25.1-66.2 107.6-97.6 163.6-54.2 67.4-22.3 136.3 29.4 130.9 101.1 41.1 12.6 52.8 66.9 19.7 95.2zm-70 74.3c-3.1-20.6-40.9-4.6-43.1-27.1-3.1-32 43.7-101.1 40-128-3.4-24-19.4-29.1-33.4-29.4-13.4-.3-16.9 2-21.4 4.6-2.9 1.7-6.6 4.9-11.7-.3-6.3-6-11.1-11.7-19.4-12.9-12.3-2-17.7 2-26.6 9.7-3.4 2.9-12 12.9-20 9.1-3.4-1.7-15.4-7.7-24-11.4-16.3-7.1-40 4.6-48.6 20-12.9 22.9-38 113.1-41.7 125.1-8.6 26.6 10.9 48.6 36.9 47.1 11.1-.6 18.3-4.6 25.4-17.4 4-7.4 41.7-107.7 44.6-112.6 2-3.4 8.9-8 14.6-5.1 5.7 3.1 6.9 9.4 6 15.1-1.1 9.7-28 70.9-28.9 77.7-3.4 22.9 26.9 26.6 38.6 4 3.7-7.1 45.7-92.6 49.4-98.3 4.3-6.3 7.4-8.3 11.7-8 3.1 0 8.3 .9 7.1 10.9-1.4 9.4-35.1 72.3-38.9 87.7-4.6 20.6 6.6 41.4 24.9 50.6 11.4 5.7 62.5 15.7 58.5-11.1zm5.7 92.3a23.3 23.3 0 1 0 26.2 38.4 23.3 23.3 0 1 0 -26.2-38.4z\"],\n \"fonticons-fi\": [384, 512, [], \"f3a2\", \"M114.4 224l92.4 0-15.2 51.2-76.4 0 0 157.8c0 8-2.8 9.2 4.4 10l59.6 5.6 0 34.4-179.2 0 0-35.2 29.2-2.8c7.2-.8 9.2-3.2 9.2-10.8l0-155.8c0-3.2-4-3.2-8-3.2l-30.4 0 0-51.2 38.4 0 0-28.8c0-68 36.4-96 106-96 46.8 0 88.8 11.2 88.8 72.4L163.6 180c.4-25.6-6-31.6-22.4-31.6-25.2 0-26 13.6-26 37.6l0 32c0 3.2-4.8 6-.8 6zM384 483l-140.8 0 0-34.4 28-3.6c7.2-.8 10.4-2.4 10.4-10l0-148c0-5.6-4-9.2-9.2-10.8l-33.2-8.8 9.2-40.4 110 0 0 208c0 8-3.6 8.8 4 10l21.6 3.6 0 34.4zM354 135.8l12.4 45.6-10 10-42.8-22.8-42.8 22.8-10-10 12.4-45.6-30-36.4 4.8-10 38 0 21.2-38.4 12.8 0 21.2 38.4 38 0 4.8 13.2-30 33.2z\"],\n \"palfed\": [576, 512, [], \"f3d8\", \"M384.9 193.9c0-47.4-55.2-44.2-95.4-29.8-1.3 39.4-2.5 80.7-3 119.8 .7 2.8 2.6 6.2 15.1 6.2 36.8 0 83.4-42.8 83.3-96.2zM190.4 266.1c.2 0 6.5-2.7 11.2-2.7 26.6 0 20.7 44.1-14.4 44.1-21.5 0-37.1-18.1-37.1-43 0-42 42.9-95.6 100.7-126.5 1-12.4 3-22 10.5-28.2 11.2-9 26.6-3.5 29.5 11.1 72.2-22.2 135.2 1 135.2 72 0 77.9-79.3 152.6-140.1 138.2-.1 39.4 .9 74.4 2.7 100l0 .2c.2 3.4 .6 12.5-5.3 19.1-9.6 10.6-33.4 10-36.4-22.3-4.1-44.4 .2-206.1 1.4-242.5-21.5 15-58.5 50.3-58.5 75.9 .2 2.5 .4 4 .6 4.6zM8 181.1s-.1 37.4 38.4 37.4l30 0 22.4 217.2s0 44.3 44.7 44.3l288.9 0s44.7-.4 44.7-44.3l22.4-217.2 30 0s38.4 1.2 38.4-37.4c0 0 .1-37.4-38.4-37.4l-30.1 0c-7.3-25.6-30.2-74.3-119.4-74.3l-28 0 0-19.1s-2.7-18.4-21.1-18.4l-85.8 0S224 31.9 224 50.3l0 19.1-28.1 0s-105 4.2-120.5 74.3l-29 0S8 142.5 8 181.1z\"],\n \"wpbeginner\": [512, 512, [], \"f297\", \"M463.2 322.4c56.2 64.3 4.2 157.6-91.9 157.6-39.6 0-78.8-17.7-100.1-50-6.9 .4-22.7 .4-29.6 0-21.4 32.4-60.6 50-100.1 50-95.5 0-148.3-93-91.9-157.6-79.1-131.9 31.3-290.4 206.8-290.4 175.6 0 285.9 158.6 206.8 290.4zm-339.6-83l41.5 0 0-58.1-41.5 0 0 58.1zm217.2 86.1l0-23.8c-60.5 20.9-132.4 9.2-187.6-34l.2 24.9c51.1 46.4 131.7 57.9 187.3 32.9zM190 239.4l166.1 0 0-58.1-166.1 0 0 58.1z\"],\n \"diaspora\": [448, 512, [], \"f791\", \"M219.7 354.6c-1.4 0-88 119.9-88.7 119.9S44.4 414 44 413.3 130.6 287.5 130.6 285.8c0-2.2-129.6-44-137.6-47.1-1.3-.5 31.4-101.8 31.7-102.1 .6-.7 144.4 47 145.5 47 .4 0 .9-.6 1-1.3 .4-2 1-148.6 1.7-149.6 .8-1.2 104.5-.7 105.1-.3 1.5 1 3.5 156.1 6.1 156.1 1.4 0 138.7-47 139.3-46.3 .8 .9 31.9 102.2 31.5 102.6-.9 .9-140.2 47.1-140.6 48.8-.3 1.4 82.8 122.1 82.5 122.9s-85.5 63.5-86.3 63.5c-1-.2-89-125.5-90.9-125.5l0 0z\"],\n \"product-hunt\": [512, 512, [], \"f288\", \"M326.3 218.8c0 20.5-16.7 37.2-37.2 37.2l-70.3 0 0-74.4 70.3 0c20.5 0 37.2 16.7 37.2 37.2zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm367.9-37.2c0-47.9-38.9-86.8-86.8-86.8l-119.9 0 0 248 49.6 0 0-74.4 70.3 0c47.9 0 86.8-38.9 86.8-86.8z\"],\n \"square-upwork\": [448, 512, [], \"e67c\", \"M56 32l336 0c30.9 0 56 25.1 56 56l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32zM270.9 274.2c6.6-52.9 25.9-69.5 51.4-69.5 25.3 0 44.9 20.2 44.9 49.7s-19.7 49.7-44.9 49.7c-27.9 0-46.3-21.5-51.4-29.9zm-26.7-41.8c-8.2-15.5-14.3-36.3-19.2-55.6l-62.9 0 0 78.1c0 28.4-12.9 49.4-38.2 49.4S84.1 283.4 84.1 255l.3-78.1-36.2 0 0 78.1c0 22.8 7.4 43.5 20.9 58.2 13.9 15.2 32.8 23.2 54.8 23.2 43.7 0 74.2-33.5 74.2-81.5l0-52.5c4.6 17.3 15.4 50.5 36.2 79.7l-19.3 110.5 36.8 0 12.8-78.4c4.2 3.5 8.7 6.6 13.4 9.4 12.3 7.8 26.4 12.2 40.9 12.6l3.4 0c45.1 0 80.9-34.9 80.9-81.9s-35.9-82.2-80.9-82.2c-45.4 0-70.9 29.7-78.1 60.1l0 .2z\"],\n \"cuttlefish\": [448, 512, [], \"f38c\", \"M348 305.5c-17.5 31.6-57.4 54.5-96 54.5-56.6 0-104-47.4-104-104s47.4-104 104-104c38.6 0 78.5 22.9 96 54.5 13.7-50.9 41.7-93.3 87-117.8-45.3-49.6-110.5-80.7-183-80.7-137 0-248 111-248 248S115 504 252 504c72.5 0 137.7-31.1 183-80.7-45.3-24.5-73.3-66.9-87-117.8z\"],\n \"medapps\": [320, 512, [], \"f3c6\", \"M118.3 238.4c3.5-12.5 6.9-33.6 13.2-33.6 8.3 1.8 9.6 23.4 18.6 36.6 4.6-23.5 5.3-85.1 14.1-86.7 9-.7 19.7 66.5 22 77.5 9.9 4.1 48.9 6.6 48.9 6.6 1.9 7.3-24 7.6-40 7.8-4.6 14.8-5.4 27.7-11.4 28-4.7 .2-8.2-28.8-17.5-49.6l-9.4 65.5c-4.4 13-15.5-22.5-21.9-39.3-3.3-.1-62.4-1.6-47.6-7.8l31-5zM228 448c21.2 0 21.2-32 0-32L92 416c-21.2 0-21.2 32 0 32l136 0zm-24 64c21.2 0 21.2-32 0-32l-88 0c-21.2 0-21.2 32 0 32l88 0zm34.2-141.5c3.2-18.9 5.2-36.4 11.9-48.8 7.9-14.7 16.1-28.1 24-41 24.6-40.4 45.9-75.2 45.9-125.5 0-85.6-71.8-155.2-160-155.2S0 69.6 0 155.2c0 50.2 21.3 85.1 45.9 125.5 7.9 12.9 16 26.3 24 41 6.7 12.5 8.7 29.8 11.9 48.9 3.5 21 36.1 15.7 32.6-5.1-3.6-21.7-5.6-40.7-15.3-58.6-32.6-60.4-66.1-95.6-66.1-151.7 0-67.9 57-123.2 127-123.2S287 87.3 287 155.2c0 56.1-33.5 91.3-66.1 151.6-9.7 18-11.7 37.4-15.3 58.6-3.4 20.6 29 26.4 32.6 5.1z\"],\n \"pix\": [512, 512, [], \"e43a\", \"M242.4 292.5c5.4-5.4 14.7-5.4 20.1 0l77 77c14.2 14.2 33.1 22 53.1 22l15.1 0-97.1 97.1c-30.3 29.5-79.5 29.5-109.8 0l-97.5-97.4 9.3 0c20 0 38.9-7.8 53.1-22l76.7-76.7zm20.1-73.6c-6.4 5.5-14.6 5.6-20.1 0l-76.7-76.7c-14.2-15.1-33.1-22-53.1-22l-9.3 0 97.4-97.4c30.4-30.3 79.6-30.3 109.9 0l97.2 97.1-15.2 0c-20 0-38.9 7.8-53.1 22l-77 77zM112.6 142.7c13.8 0 26.5 5.6 37.1 15.4l76.7 76.7c7.2 6.3 16.6 10.8 26.1 10.8 9.4 0 18.8-4.5 26-10.8l77-77c9.8-9.7 23.3-15.3 37.1-15.3l37.7 0 58.3 58.3c30.3 30.3 30.3 79.5 0 109.8l-58.3 58.3-37.7 0c-13.8 0-27.3-5.6-37.1-15.4l-77-77c-13.9-13.9-38.2-13.9-52.1 .1l-76.7 76.6c-10.6 9.8-23.3 15.4-37.1 15.4l-31.8 0-58-58c-30.3-30.3-30.3-79.5 0-109.8l58-58.1 31.8 0z\"],\n \"square-tumblr\": [448, 512, [\"tumblr-square\"], \"f174\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256.8 416c-75.5 0-91.9-55.5-91.9-87.9l0-90-29.7 0c-3.4 0-6.2-2.8-6.2-6.2l0-42.5c0-4.5 2.8-8.5 7.1-10 38.8-13.7 50.9-47.5 52.7-73.2 .5-6.9 4.1-10.2 10-10.2l44.3 0c3.4 0 6.2 2.8 6.2 6.2l0 72 51.9 0c3.4 0 6.2 2.8 6.2 6.2l0 51.1c0 3.4-2.8 6.2-6.2 6.2l-52.1 0 0 83.3c0 21.4 14.8 33.5 42.5 22.4 3-1.2 5.6-2 8-1.4 2.2 .5 3.6 2.1 4.6 4.9L318 387.1c1 3.2 2 6.7-.3 9.1-8.5 9.1-31.2 19.8-60.9 19.8z\"],\n \"react\": [512, 512, [], \"f41b\", \"M418.2 177.2c-5.4-1.8-10.8-3.5-16.2-5.1 .9-3.7 1.7-7.4 2.5-11.1 12.3-59.6 4.2-107.5-23.1-123.3-26.3-15.1-69.2 .6-112.6 38.4-4.3 3.7-8.5 7.6-12.5 11.5-2.7-2.6-5.5-5.2-8.3-7.7-45.5-40.4-91.1-57.4-118.4-41.5-26.2 15.2-34 60.3-23 116.7 1.1 5.6 2.3 11.1 3.7 16.7-6.4 1.8-12.7 3.8-18.6 5.9-53.4 18.5-91.7 47.7-91.7 77.9 0 31.2 40.8 62.5 96.3 81.5 4.5 1.5 9 3 13.6 4.3-1.5 6-2.8 11.9-4 18-10.5 55.5-2.3 99.5 23.9 114.6 27 15.6 72.4-.4 116.6-39.1 3.5-3.1 7-6.3 10.5-9.7 4.4 4.3 9 8.4 13.6 12.4 42.8 36.8 85.1 51.7 111.2 36.6 27-15.6 35.8-62.9 24.4-120.5-.9-4.4-1.9-8.9-3-13.5 3.2-.9 6.3-1.9 9.4-2.9 57.7-19.1 99.5-50 99.5-81.7 0-30.3-39.4-59.7-93.8-78.4zM282.9 92.3c37.2-32.4 71.9-45.1 87.7-36 16.9 9.7 23.4 48.9 12.8 100.4-.7 3.4-1.4 6.7-2.3 10-22.2-5-44.7-8.6-67.3-10.6-13-18.6-27.2-36.4-42.6-53.1 3.9-3.7 7.7-7.2 11.7-10.7zM167.2 307.5c5.1 8.7 10.3 17.4 15.8 25.9-15.6-1.7-31.1-4.2-46.4-7.5 4.4-14.4 9.9-29.3 16.3-44.5 4.6 8.8 9.3 17.5 14.3 26.1zM136.9 187.2c14.4-3.2 29.7-5.8 45.6-7.8-5.3 8.3-10.5 16.8-15.4 25.4-4.9 8.5-9.7 17.2-14.2 26-6.3-14.9-11.6-29.5-16-43.6zm27.4 68.9c6.6-13.8 13.8-27.3 21.4-40.6s15.8-26.2 24.4-38.9c15-1.1 30.3-1.7 45.9-1.7s31 .6 45.9 1.7c8.5 12.6 16.6 25.5 24.3 38.7s14.9 26.7 21.7 40.4c-6.7 13.8-13.9 27.4-21.6 40.8-7.6 13.3-15.7 26.2-24.2 39-14.9 1.1-30.4 1.6-46.1 1.6s-30.9-.5-45.6-1.4c-8.7-12.7-16.9-25.7-24.6-39s-14.8-26.8-21.5-40.6zm180.6 51.2c5.1-8.8 9.9-17.7 14.6-26.7 6.4 14.5 12 29.2 16.9 44.3-15.5 3.5-31.2 6.2-47 8 5.4-8.4 10.5-17 15.5-25.6zm14.4-76.5c-4.7-8.8-9.5-17.6-14.5-26.2-4.9-8.5-10-16.9-15.3-25.2 16.1 2 31.5 4.7 45.9 8-4.6 14.8-10 29.2-16.1 43.4zM256.2 118.3c10.5 11.4 20.4 23.4 29.6 35.8-19.8-.9-39.7-.9-59.5 0 9.8-12.9 19.9-24.9 29.9-35.8zM140.2 57c16.8-9.8 54.1 4.2 93.4 39 2.5 2.2 5 4.6 7.6 7-15.5 16.7-29.8 34.5-42.9 53.1-22.6 2-45 5.5-67.2 10.4-1.3-5.1-2.4-10.3-3.5-15.5-9.4-48.4-3.2-84.9 12.6-94zM115.7 320.6c-4.2-1.2-8.3-2.5-12.4-3.9-21.3-6.7-45.5-17.3-63-31.2-10.1-7-16.9-17.8-18.8-29.9 0-18.3 31.6-41.7 77.2-57.6 5.7-2 11.5-3.8 17.3-5.5 6.8 21.7 15 43 24.5 63.6-9.6 20.9-17.9 42.5-24.8 64.5zm116.6 98c-16.5 15.1-35.6 27.1-56.4 35.3-11.1 5.3-23.9 5.8-35.3 1.3-15.9-9.2-22.5-44.5-13.5-92 1.1-5.6 2.3-11.2 3.7-16.7 22.4 4.8 45 8.1 67.9 9.8 13.2 18.7 27.7 36.6 43.2 53.4-3.2 3.1-6.4 6.1-9.6 8.9zm24.5-24.3c-10.2-11-20.4-23.2-30.3-36.3 9.6 .4 19.5 .6 29.5 .6 10.3 0 20.4-.2 30.4-.7-9.2 12.7-19.1 24.8-29.6 36.4zm130.7 30c-.9 12.2-6.9 23.6-16.5 31.3-15.9 9.2-49.8-2.8-86.4-34.2-4.2-3.6-8.4-7.5-12.7-11.5 15.3-16.9 29.4-34.8 42.2-53.6 22.9-1.9 45.7-5.4 68.2-10.5 1 4.1 1.9 8.2 2.7 12.2 4.9 21.6 5.7 44.1 2.5 66.3zm18.2-107.5c-2.8 .9-5.6 1.8-8.5 2.6-7-21.8-15.6-43.1-25.5-63.8 9.6-20.4 17.7-41.4 24.5-62.9 5.2 1.5 10.2 3.1 15 4.7 46.6 16 79.3 39.8 79.3 58 0 19.6-34.9 44.9-84.8 61.4zM256 301.8a45.8 45.8 0 1 0 0-91.6 45.8 45.8 0 1 0 0 91.6z\"],\n \"jxl\": [448, 512, [], \"e67b\", \"M412.2 32L35.8 32C16 32 0 48 0 67.8L0 444.2C0 464 16 480 35.8 480l376.4 0c19.8 0 35.8-16 35.8-35.8l0-376.4C448 48 432 32 412.2 32zM378.6 333.7c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0zm0-113.9c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0zm0-113.9c0 40.2-32.6 72.8-72.8 72.8l-235.6 0c0-40.2 32.6-72.8 72.8-72.8l235.6 0z\"],\n \"square-linkedin\": [448, 512, [], \"e7d0\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm5 170.2l66.5 0 0 213.8-66.5 0 0-213.8zm71.7-67.7a38.5 38.5 0 1 1 -77 0 38.5 38.5 0 1 1 77 0zM317.9 416l0-104c0-24.8-.5-56.7-34.5-56.7-34.6 0-39.9 27-39.9 54.9l0 105.8-66.4 0 0-213.8 63.7 0 0 29.2 .9 0c8.9-16.8 30.6-34.5 62.9-34.5 67.2 0 79.7 44.3 79.7 101.9l0 117.2-66.4 0z\"],\n \"css\": [448, 512, [], \"e6a2\", \"M376.3 32L0 32 0 408.3c0 19 7.6 37.2 21 50.7s31.7 21 50.7 21l304.6 0c19 0 37.2-7.6 50.7-21s21-31.7 21-50.7l0-304.6c0-19-7.6-37.2-21-50.7s-31.7-21-50.7-21zM332.4 431.4c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.5-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-4-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L351.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.5 12.5c7.5 8.4 11.5 20.3 11.8 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4 27.4-12.3 35.7c-8.2 8.3-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-101 0c-7.7-8.5-11.7-20.7-12-36.6l31.3 0c.2 14.1 5.1 21.1 14.8 21.1c4.9 0 8.4-1.6 10.4-4.7c2-3.1 3-8 3-14.8c0-5.4-1.3-9.9-3.9-13.4c-3.5-4.2-8.1-7.5-13.2-9.5L250.2 368c-10.3-4.9-17.8-10.8-22.5-17.6c-4.5-6.8-6.7-16.3-6.7-28.4c0-13.6 4-24.6 11.8-33.1c8.1-8.5 19.1-12.7 33.2-12.7c13.6 0 24.1 4.2 31.4 12.5c7.6 8.4 11.5 20.3 11.9 35.9l-30.1 0c.2-5.1-.9-10.2-3-14.8c-1.7-3.4-5-5.1-10-5.1c-8.8 0-13.2 5.2-13.2 15.7c0 5.3 1.1 9.4 3.2 12.6c3.1 3.5 7 6.2 11.4 7.8l11.1 4.9c11.5 5.3 19.7 11.7 24.8 19.4c5.1 7.7 7.6 18 7.6 31c0 15.5-4.1 27.4-12.3 35.7s-19.5 12.5-34.1 12.5s-25.6-4.2-33.4-12.7zm-105.6 1.1c-8.4-7.7-12.5-19.2-12.5-34.5l0-75.4c0-15.2 4.4-26.7 13.2-34.6c8.9-7.8 20.7-11.8 35.2-11.8c14.1 0 25.2 4 33.4 12c8.3 8 12.5 20 12.5 35.9l0 6-33.1 0 0-5.8c0-6.1-1.3-10.7-4-13.6c-1.1-1.5-2.6-2.7-4.3-3.5s-3.5-1.2-5.4-1.1c-5.4 0-9.2 1.8-11.4 5.6c-2.3 5.2-3.3 10.8-3 16.4l0 65.5c0 13.7 4.8 20.6 14.4 20.8c4.5 0 7.9-1.6 10.2-4.8c2.5-4.1 3.7-8.8 3.5-13.6l0-4.9 33.1 0 0 5.1c0 10.6-2.1 19.5-6.2 26.6c-4 6.9-9.9 12.5-17.1 16c-7.7 3.7-16.1 5.5-24.6 5.3c-14.2 0-25.5-3.9-33.8-11.6z\"],\n \"hashnode\": [512, 512, [], \"e499\", \"M35.7 171.1c-46.9 46-46.9 122.9 0 169.8L171.6 476.8c46 46.9 122.9 46.9 169.8 0L477.3 340.9c46.9-46.9 46.9-123.8 0-169.8L341.4 35.2c-46.9-46.9-123.8-46.9-169.8 0L35.7 171.1zM196 196.5a84.5 84.5 0 1 1 120 119 84.5 84.5 0 1 1 -120-119z\"],\n \"reddit-alien\": [512, 512, [], \"f281\", \"M373 138.6c-25.2 0-46.3-17.5-51.9-41-30.6 4.3-54.2 30.7-54.2 62.4l0 .2c47.4 1.8 90.6 15.1 124.9 36.3 12.6-9.7 28.4-15.5 45.5-15.5 41.3 0 74.7 33.4 74.7 74.7 0 29.8-17.4 55.5-42.7 67.5-2.4 86.8-97 156.6-213.2 156.6S45.5 410.1 43 323.4c-25.4-11.9-43-37.7-43-67.7 0-41.3 33.4-74.7 74.7-74.7 17.2 0 33 5.8 45.7 15.6 34-21.1 76.8-34.4 123.7-36.4l0-.3c0-44.3 33.7-80.9 76.8-85.5 4.9-24.2 26.3-42.4 52.1-42.4 29.4 0 53.3 23.9 53.3 53.3s-23.9 53.3-53.3 53.3zM157.5 255.3c-20.9 0-38.9 20.8-40.2 47.9s17.1 38.1 38 38.1 36.6-9.8 37.8-36.9-14.7-49.1-35.7-49.1l.1 0zM395 303.1c-1.2-27.1-19.2-47.9-40.2-47.9s-36.9 22-35.7 49.1 16.9 36.9 37.8 36.9 39.3-11 38-38.1l.1 0zm-60.1 70.8c1.5-3.6-1-7.7-4.9-8.1-23-2.3-47.9-3.6-73.8-3.6s-50.8 1.3-73.8 3.6c-3.9 .4-6.4 4.5-4.9 8.1 12.9 30.8 43.3 52.4 78.7 52.4s65.8-21.6 78.7-52.4z\"],\n \"tiktok\": [448, 512, [], \"e07b\", \"M448.5 209.9c-44 .1-87-13.6-122.8-39.2l0 178.7c0 33.1-10.1 65.4-29 92.6s-45.6 48-76.6 59.6-64.8 13.5-96.9 5.3-60.9-25.9-82.7-50.8-35.3-56-39-88.9 2.9-66.1 18.6-95.2 40-52.7 69.6-67.7 62.9-20.5 95.7-16l0 89.9c-15-4.7-31.1-4.6-46 .4s-27.9 14.6-37 27.3-14 28.1-13.9 43.9 5.2 31 14.5 43.7 22.4 22.1 37.4 26.9 31.1 4.8 46-.1 28-14.4 37.2-27.1 14.2-28.1 14.2-43.8l0-349.4 88 0c-.1 7.4 .6 14.9 1.9 22.2 3.1 16.3 9.4 31.9 18.7 45.7s21.3 25.6 35.2 34.6c19.9 13.1 43.2 20.1 67 20.1l0 87.4z\"],\n \"wordpress\": [512, 512, [], \"f19a\", \"M61.7 169.4l101.5 278c-71-34.4-119.9-107.2-119.9-191.4 0-30.9 6.6-60.1 18.4-86.6zm337.9 75.9c0-26.3-9.4-44.5-17.5-58.7-10.8-17.5-20.9-32.4-20.9-49.9 0-19.6 14.8-37.8 35.7-37.8 .9 0 1.8 .1 2.8 .2-37.9-34.7-88.3-55.9-143.7-55.9-74.3 0-139.7 38.1-177.8 95.9 5 .2 9.7 .3 13.7 .3 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l77.5 230.4 46.6-139.6-33.1-90.8c-11.5-.7-22.3-2-22.3-2-11.5-.7-10.1-18.2 1.3-17.5 0 0 35.1 2.7 56 2.7 22.2 0 56.7-2.7 56.7-2.7 11.5-.7 12.8 16.2 1.4 17.5 0 0-11.5 1.3-24.3 2l76.9 228.7 21.2-70.9c9-29.4 16-50.5 16-68.7zM259.7 274.6L195.9 460.1c19.1 5.6 39.2 8.7 60.1 8.7 24.8 0 48.5-4.3 70.6-12.1-.6-.9-1.1-1.9-1.5-2.9L259.7 274.6zm183-120.7c.9 6.8 1.4 14 1.4 21.9 0 21.6-4 45.8-16.2 76.2l-65 187.9c63.3-36.9 105.8-105.4 105.8-183.9 0-37-9.4-71.8-26-102.1zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm484.6 0a236.6 236.6 0 1 0 -473.2 0 236.6 236.6 0 1 0 473.2 0z\"],\n \"ideal\": [512, 512, [], \"e013\", \"M93.8 165.5a49.1 49.1 0 1 0 0 98.1 49.1 49.1 0 1 0 0-98.1zM54.3 425.8l78.9 0 0-140.5-78.9 0 0 140.5zM205.8 214.2c0-20-10-22.5-18.7-22.5l-14 0 0 45.8 14 0c9.7 0 18.7-2.8 18.7-23.3zm201.7 46l0-91.3 22.8 0 0 68.6 33.7 0C454.6 113.1 356.8 86.2 267.8 86.2l-94.8 0 0 82.8 14 0c25.6 0 41.5 17.4 41.5 45.3 0 28.8-15.5 46-41.5 46l-14 0 0 165.6 94.8 0c144.6 0 194.9-67.2 196.7-165.6l-57.1 0zm-109.8 0l-56.2 0 0-91.2 54.4 0 0 22.7-31.7 0 0 10.6 30 0 0 22.7-30 0 0 12.5 33.5 0 0 22.7zm74.7 0l-5.2-17.7-29.7 0-5.2 17.7-23.7 0 27.5-91.3 32.3 0 27.5 91.3-23.7 0zM267.8 32L.1 32 .1 480 267.8 480c161.8 0 251-79.7 251-224.5 0-83.5-32.6-223.5-251-223.5zm0 426.9l-246.6 0 0-405.9 246.6 0c142.1 0 229.9 64.6 229.9 202.4 0 134.1-81 203.4-229.9 203.4zm83.9-264.9l-7.5 25.8 16.4 0-7.5-25.8-1.4 0z\"],\n \"pied-piper-pp\": [448, 512, [], \"f1a7\", \"M205.3 174.6c0 21.1-14.2 38.1-31.7 38.1-7.1 0-12.8-1.2-17.2-3.7l0-68c4.4-2.7 10.1-4.2 17.2-4.2 17.5 0 31.7 16.9 31.7 37.8zm52.6 67c-7.1 0-12.8 1.5-17.2 4.2l0 68c4.4 2.5 10.1 3.7 17.2 3.7 17.4 0 31.7-16.9 31.7-37.8 0-21.1-14.3-38.1-31.7-38.1zM448 80l0 352c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48zM185 255.1c41 0 74.2-35.6 74.2-79.6S226 95.9 185 95.9c-12 0-24.1 3.2-34.6 8.8l-45.7 0 0 206.3 51.8-10.1 0-50.6c8.6 3.1 18.1 4.8 28.5 4.8zm158.4 25.3c0-44-33.2-79.6-73.9-79.6-3.2 0-6.4 .2-9.6 .7-3.7 12.5-10.1 23.8-19.2 33.4-13.8 15-32.2 23.8-51.8 24.8l0 156.3 51.8-10.1 0-50.6c8.6 3.2 18.2 4.7 28.7 4.7 40.8 0 74-35.6 74-79.6z\"],\n \"ussunnah\": [512, 512, [], \"f407\", \"M496.9 268.1c0 63.9-25.4 125.2-70.6 170.3S319.9 509 256 509 130.8 483.5 85.7 438.4 15.1 331.9 15.1 268c0-63.9 25.4-125.2 70.6-170.4S192.2 27.1 256.1 27.1 381.3 52.4 426.5 97.6 497 204.1 497 268l-.1 .1zM39.5 268c-.6 28.8 4.5 57.5 15.1 84.3s26.4 51.2 46.6 71.8 44.2 37 70.8 48.1 55.1 16.9 83.9 16.9 57.4-5.8 83.9-16.9 50.6-27.5 70.8-48.1 36-45 46.6-71.8 15.7-55.5 15.1-84.3c.6-28.8-4.5-57.5-15.1-84.3s-26.4-51.2-46.6-71.8-44.2-37-70.8-48.1-55.1-16.9-83.9-16.9-57.4 5.8-83.9 16.9-50.6 27.5-70.8 48.1-36 45-46.6 71.8-15.7 55.5-15.1 84.3zm385.9 63.3c-12.7 0-21.6-1.9-26.7-5.9-5.5-4.3-8.2-12.3-8.2-23.8l0-96.5c0-6.5-5.2-20.2-15.7-41.2 7 0 17-9.1 30-27.2l0 147.8c0 11 2.4 19.4 7 25.3 3.7 4.7 10.1 8.9 19 12.6 1.2 .4 2.6 .9 4.1 1.4 2.9 .9 6.3 2.1 10.3 3.5-1.8 2.7-8.3 4-19.9 4l.1 0zm-219 0c-1.3 2.4-3.6 5.5-6.8 9.4l-18.5 22.5c-1-6.1-4-13-9.3-20.6s-9.7-11.4-13.4-11.4l-89.8 0c3.3-5.3 4.9-8.8 4.9-10.8s-.8-5.3-2.4-9.7c-1.5-4.4-2.4-8.5-2.4-12.4 0-7.4 2.1-13.9 6.3-19.3l20-25.6-7.1-17.7 16.1-19.8 6.7 16.8 8-10.3c-1.8 6.4-2.6 12.3-2.6 17.7 0 4.2 2.8 13.3 8.3 27.3l16.2 40.7 17.7 0c2.8 .4 7.7 5 14.6 13.9 1.8 2.4 4.3 5.8 7.7 10.2 1.4 1.9 2.9 3.9 4.6 6.1 1.3-2.3 2-4.6 2-7.1 0-2-1.3-6.6-4-13.4L178 304.1c-4-10.6-6.1-17.7-6.1-21.3 0-6.3 1.9-12.3 5.8-17.9 .5-.6 1-1.3 1.5-1.9 4.4-5.6 8.8-11.1 13.3-16.5-1.1 4.6-1.7 8.7-1.7 12 0 3.7 1.7 9.9 5.1 18.8l7.9 20.4c1.9 4.7 3 8.2 3.7 10.3l25.9 0-.9-2.6c-1.4-3.9-4-7-7.7-9.3l15.6-20.1 12.3 32 13.4 0-6.1-15.8c-1.5-3.9-4-7-7.7-9.3l15.7-20.1 17.3 45.2 13.4 0-11.4-29.4c-1.5-3.9-4-7-7.7-9.3l15.6-20 22.4 58.7 26.2 0c1.5 0 3-1.1 4.5-3.1s2.2-4.1 2.2-6.3l0-93.5c0-6.5-4.5-20.3-13.7-41.2 5.4 0 14.1-9.1 26.2-27.2l0 163.5c0 7.2 .6 12 1.7 14.6 1.6 3.4 5.3 6.2 11.1 8.2-3.9 5.6-8.7 8.5-14.5 8.5l-154.8 0-.1-.2zm-98-44c-2.7-6.7-4-11.7-4-15-.6 1.2-2.4 3.7-5.4 7.6-1.4 1.9-2.2 3.7-2.2 5.3 0 2.6 .8 5.7 2.2 9.3l5.6 13.9c5 0 9 0 11.9-.1l-8.2-20.9 .1-.1zm13.5-72.4c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0zm-27.6 0c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0zm87 27.5c-3-5.2-7-9.3-11.9-11.9-3.5-1.9-5.3-4.3-5.3-7.4 0-2.4 4.6-8.6 14-18.3 .2 3.8 1.9 7.6 4.9 11.2 3.1 3.6 4.6 7 4.6 10.1 0 2.6-2.1 8-6.2 16.3l-.1 0z\"],\n \"fort-awesome-alt\": [512, 512, [], \"f3a3\", \"M208 237.4l-22.2 0c-2.1 0-3.7 1.6-3.7 3.7l0 51.7c0 2.1 1.6 3.7 3.7 3.7l22.2 0c2.1 0 3.7-1.6 3.7-3.7l0-51.7c0-2.1-1.6-3.7-3.7-3.7zm118.2 0l-22.2 0c-2.1 0-3.7 1.6-3.7 3.7l0 51.7c0 2.1 1.6 3.7 3.7 3.7l22.2 0c2.1 0 3.7-1.6 3.7-3.7l0-51.7c-.1-2.1-1.7-3.7-3.7-3.7zm132-125.1c-2.3-3.2-4.6-6.4-7.1-9.5-9.8-12.5-20.8-24-32.8-34.4-4.5-3.9-9.1-7.6-13.9-11.2-1.6-1.2-3.2-2.3-4.8-3.5-27.6-19.6-59.3-33.7-93.6-40.7-16.2-3.3-32.9-5-50-5s-33.9 1.7-50 5c-34.3 7.1-66 21.2-93.3 40.8-1.6 1.1-3.2 2.3-4.8 3.5-4.8 3.6-9.4 7.3-13.9 11.2-3 2.6-5.9 5.3-8.8 8s-5.7 5.5-8.4 8.4c-5.5 5.7-10.7 11.8-15.6 18-2.4 3.1-4.8 6.3-7.1 9.5-28.9 40.6-45.8 90.1-45.8 143.6 0 2 .1 4 .1 6 .1 .7 .1 1.3 .1 2 .1 1.3 .1 2.7 .2 4 0 .8 .1 1.5 .1 2.3 0 1.3 .1 2.5 .2 3.7 .1 .8 .1 1.6 .2 2.4 .1 1.1 .2 2.3 .3 3.5 0 .8 .1 1.6 .2 2.4 .1 1.2 .3 2.4 .4 3.6 .1 .8 .2 1.5 .3 2.3 .1 1.3 .3 2.6 .5 3.9 .1 .6 .2 1.3 .3 1.9l.9 5.7c.1 .6 .2 1.1 .3 1.7 .3 1.3 .5 2.7 .8 4 .2 .8 .3 1.6 .5 2.4 .2 1 .5 2.1 .7 3.2 .2 .9 .4 1.7 .6 2.6 .2 1 .4 2 .7 3 .2 .9 .5 1.8 .7 2.7 .3 1 .5 1.9 .8 2.9 .3 .9 .5 1.8 .8 2.7 .2 .9 .5 1.9 .8 2.8s.5 1.8 .8 2.7c.3 1 .6 1.9 .9 2.8 .6 1.6 1.1 3.3 1.7 4.9 .4 1 .7 1.9 1 2.8 .3 1 .7 2 1.1 3 .3 .8 .6 1.5 .9 2.3l1.2 3c.3 .7 .6 1.5 .9 2.2 .4 1 .9 2 1.3 3l.9 2.1c.5 1 .9 2 1.4 3 .3 .7 .6 1.3 .9 2 .5 1 1 2.1 1.5 3.1 .2 .6 .5 1.1 .8 1.7 .6 1.1 1.1 2.2 1.7 3.3 .1 .2 .2 .3 .3 .5 2.2 4.1 4.4 8.2 6.8 12.2 .2 .4 .5 .8 .7 1.2 .7 1.1 1.3 2.2 2 3.3 .3 .5 .6 .9 .9 1.4 .6 1.1 1.3 2.1 2 3.2 .3 .5 .6 .9 .9 1.4 .7 1.1 1.4 2.1 2.1 3.2 .2 .4 .5 .8 .8 1.2 .7 1.1 1.5 2.2 2.3 3.3 .2 .2 .3 .5 .5 .7 37.5 51.7 94.4 88.5 160 99.4 .9 .1 1.7 .3 2.6 .4 1 .2 2.1 .4 3.1 .5s1.9 .3 2.8 .4c1 .2 2 .3 3 .4 .9 .1 1.9 .2 2.9 .3s1.9 .2 2.9 .3 2.1 .2 3.1 .3c.9 .1 1.8 .1 2.7 .2 1.1 .1 2.3 .1 3.4 .2 .8 0 1.7 .1 2.5 .1 1.3 0 2.6 .1 3.9 .1 .7 .1 1.4 .1 2.1 .1 2 .1 4 .1 6 .1s4-.1 6-.1c.7 0 1.4-.1 2.1-.1 1.3 0 2.6 0 3.9-.1 .8 0 1.7-.1 2.5-.1 1.1-.1 2.3-.1 3.4-.2 .9 0 1.8-.1 2.7-.2 1-.1 2.1-.2 3.1-.3s1.9-.2 2.9-.3c.9-.1 1.9-.2 2.9-.3s2-.3 3-.4 1.9-.3 2.8-.4c1-.2 2.1-.3 3.1-.5 .9-.1 1.7-.3 2.6-.4 65.6-11 122.5-47.7 160.1-102.4 .2-.2 .3-.5 .5-.7 .8-1.1 1.5-2.2 2.3-3.3 .2-.4 .5-.8 .8-1.2 .7-1.1 1.4-2.1 2.1-3.2 .3-.5 .6-.9 .9-1.4 .6-1.1 1.3-2.1 2-3.2 .3-.5 .6-.9 .9-1.4 .7-1.1 1.3-2.2 2-3.3 .2-.4 .5-.8 .7-1.2 2.4-4 4.6-8.1 6.8-12.2 .1-.2 .2-.3 .3-.5 .6-1.1 1.1-2.2 1.7-3.3 .2-.6 .5-1.1 .8-1.7 .5-1 1-2.1 1.5-3.1 .3-.7 .6-1.3 .9-2 .5-1 1-2 1.4-3l.9-2.1c.5-1 .9-2 1.3-3 .3-.7 .6-1.5 .9-2.2l1.2-3c.3-.8 .6-1.5 .9-2.3 .4-1 .7-2 1.1-3s.7-1.9 1-2.8c.6-1.6 1.2-3.3 1.7-4.9 .3-1 .6-1.9 .9-2.8s.5-1.8 .8-2.7c.2-.9 .5-1.9 .8-2.8s.6-1.8 .8-2.7c.3-1 .5-1.9 .8-2.9 .2-.9 .5-1.8 .7-2.7 .2-1 .5-2 .7-3 .2-.9 .4-1.7 .6-2.6 .2-1 .5-2.1 .7-3.2 .2-.8 .3-1.6 .5-2.4 .3-1.3 .6-2.7 .8-4 .1-.6 .2-1.1 .3-1.7l.9-5.7c.1-.6 .2-1.3 .3-1.9 .1-1.3 .3-2.6 .5-3.9 .1-.8 .2-1.5 .3-2.3 .1-1.2 .3-2.4 .4-3.6 0-.8 .1-1.6 .2-2.4 .1-1.1 .2-2.3 .3-3.5 .1-.8 .1-1.6 .2-2.4 .1 1.7 .1 .5 .2-.7 0-.8 .1-1.5 .1-2.3 .1-1.3 .2-2.7 .2-4 .1-.7 .1-1.3 .1-2 .1-2 .1-4 .1-6 0-53.5-16.9-103-45.8-143.7zM448 371.5c-9.4 15.5-20.6 29.9-33.6 42.9-20.6 20.6-44.5 36.7-71.2 48-13.9 5.8-28.2 10.3-42.9 13.2l0-75.8c0-58.6-88.6-58.6-88.6 0l0 75.8c-14.7-2.9-29-7.3-42.9-13.2-26.7-11.3-50.6-27.4-71.2-48-13-13-24.2-27.4-33.6-42.9l0-71.3c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 25.8 29.6 0 0-144c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-4.8 6.5-3.7 9.5-3.7l0-90.2c-4.4-2-7.4-6.7-7.4-11.5 0-16.8 25.4-16.8 25.4 0 0 4.8-3 9.4-7.4 11.5l0 3.9c6.3-1.4 12.7-2.3 19.2-2.3 9.4 0 18.4 3.5 26.3 3.5 7.2 0 15.2-3.5 19.4-3.5 2.1 0 3.7 1.6 3.7 3.7l0 48.4c0 5.6-18.7 6.5-22.4 6.5-8.6 0-16.6-3.5-25.4-3.5-7 0-14.1 1.2-20.8 2.8l0 30.7c3 0 9.5-1.1 9.5 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 25.9 29.5 0 0-25.9c0-2.1 1.6-3.7 3.7-3.7l22.1 0c2.1 0 3.7 1.6 3.7 3.7l0 144 29.5 0 0-25.8c0-2.1 1.6-3.7 3.7-3.7l22.2 0c2.1 0 3.7 1.6 3.7 3.7l0 71.3z\"],\n \"buromobelexperte\": [448, 512, [], \"f37f\", \"M0 32l0 128 128 0 0-128-128 0zM120 152l-112 0 0-112 112 0 0 112zM160 32l0 128 128 0 0-128-128 0zM280 152l-112 0 0-112 112 0 0 112zM320 32l0 128 128 0 0-128-128 0zM440 152l-112 0 0-112 112 0 0 112zM0 192l0 128 128 0 0-128-128 0zM120 312l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM280 312l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM440 312l-112 0 0-112 112 0 0 112zM0 352l0 128 128 0 0-128-128 0zM120 472l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0zM280 472l-112 0 0-112 112 0 0 112zm40-120l0 128 128 0 0-128-128 0z\"],\n \"bilibili\": [512, 512, [], \"e3d9\", \"M488.6 104.1c16.7 18.1 24.4 39.7 23.3 65.7l0 202.4c-.4 26.4-9.2 48.1-26.5 65.1-17.2 17-39.1 25.9-65.5 26.7L92 464c-26.4-.8-48.2-9.8-65.3-27.2-17.1-17.4-26-40.3-26.7-68.6L0 169.8c.8-26 9.7-47.6 26.7-65.7 17.1-16.3 38.8-25.3 65.3-26.1l29.4 0-25.4-25.8c-5.7-5.7-8.6-13-8.6-21.8s2.9-16.1 8.6-21.8 13-8.6 21.9-8.6 16.1 2.9 21.9 8.6l73.3 69.4 88 0 74.5-69.4C381.7 2.9 389.2 0 398 0s16.1 2.9 21.9 8.6c5.7 5.7 8.6 13 8.6 21.8s-2.9 16.1-8.6 21.8L394.6 78 423.9 78c26.4 .8 48 9.8 64.7 26.1zm-38.8 69.7c-.4-9.6-3.7-17.4-10.7-23.5-5.2-6.1-14-9.4-22.7-9.8l-320.4 0c-9.6 .4-17.4 3.7-23.6 9.8-6.1 6.1-9.4 13.9-9.8 23.5l0 194.4c0 9.2 3.3 17 9.8 23.5s14.4 9.8 23.6 9.8l320.4 0c9.2 0 17-3.3 23.3-9.8s9.7-14.3 10.1-23.5l0-194.4zM185.5 216.5c6.3 6.3 9.7 14.1 10.1 23.2l0 33.3c-.4 9.2-3.7 16.9-9.8 23.2-6.2 6.3-14 9.5-23.6 9.5s-17.5-3.2-23.6-9.5-9.4-14-9.8-23.2l0-33.3c.4-9.1 3.8-16.9 10.1-23.2s13.2-9.6 23.3-10c9.2 .4 17 3.7 23.3 10zm191.5 0c6.3 6.3 9.7 14.1 10.1 23.2l0 33.3c-.4 9.2-3.7 16.9-9.8 23.2s-14 9.5-23.6 9.5-17.4-3.2-23.6-9.5c-7-6.3-9.4-14-9.7-23.2l0-33.3c.3-9.1 3.7-16.9 10-23.2s14.1-9.6 23.3-10c9.2 .4 17 3.7 23.3 10z\"],\n \"neos\": [448, 512, [], \"f612\", \"M383.8 512l-95.1 0-108.2-154.5 0 91.1-86.4 63.4-97.7 0 0-482.2 40.5-29.8 108 0 123.7 176.1 0-112.7 86.4-63.4 97.7 0 0 461.5-68.9 50.5zM7.2 35.3l0 460.7 72-52.9 0-249.1 215.5 307.6 84.8 0 52.4-38.2-78.3 0-316.1-450.5-30.2 22.3zM89.7 501.9l80-58.8 0-101-79.8-114.4 0 220.9-72.6 53.3 72.3 0 0 0zM49 10.8l310.6 442.6 82.4 0 0-442.6-79.8 0 0 317.6-222.9-317.6-90.3 0zM279.4 191.6l72 102.8 0-278.5-72 53 0 122.7z\"],\n \"dev\": [448, 512, [], \"f6cc\", \"M120.1 208.3c-3.9-2.9-7.8-4.3-11.6-4.3l-17.4 0 0 104.5 17.4 0c3.9 0 7.8-1.4 11.6-4.3s5.8-7.3 5.8-13.1l0-69.7c0-5.8-2-10.2-5.8-13.1zM404.1 32L43.9 32C19.7 32 .1 51.6 0 75.8L0 436.2C.1 460.4 19.7 480 43.9 480l360.2 0c24.2 0 43.8-19.6 43.9-43.8l0-360.4C447.9 51.6 428.3 32 404.1 32zM154.2 291.2c0 18.8-11.6 47.3-48.4 47.3l-46.4 0 0-165.5 47.4 0c35.4 0 47.4 28.5 47.4 47.3l0 70.9zm100.7-88.7l-53.3 0 0 38.4 32.6 0 0 29.6-32.6 0 0 38.4 53.3 0 0 29.6-62.2 0c-11.2 .3-20.4-8.5-20.7-19.7l0-125.1c-.3-11.1 8.6-20.4 19.7-20.7l63.2 0 0 29.5zM358.5 317.8c-13.2 30.7-36.8 24.6-47.4 0l-38.5-144.8 32.6 0 29.7 113.7 29.6-113.7 32.6 0-38.5 144.8z\"],\n \"hotjar\": [512, 512, [], \"f3b1\", \"M361.8 0c0 131.6-80.7 176.8-140.2 209.4-.6 .3-1.1 .6-1.6 .9-53.8 30.2-88.7 49.8-89.6 122l-98.1 0c0-131.5 80.7-176.7 140.2-209.3 54.8-29.8 90.3-50 90.3-123l99 0zM301.3 302.6c54.8-29.8 90.3-50 90.3-123l98 0c0 131.6-80.7 176.7-140.2 209.4-54.8 29.8-90.3 50-90.3 123l-98 0c0-131.6 80.7-176.8 140.2-209.4z\"],\n \"dochub\": [448, 512, [], \"f394\", \"M413.9 160L272 160 272 19.6 413.9 160zM320 192l0 130c0 66.8-36.5 100.1-113.3 100.1l-94.7 0 0-337.3 94.7 0c12 0 23.1 .8 33.1 2.5l0-84C228.9 1.1 217.4 0 205.2 0L16 0 16 512 205.2 512C345.7 512 416 447.4 416 318.1l0-126.1-96 0z\"],\n \"vimeo\": [448, 512, [], \"f40a\", \"M403.2 32L44.8 32C20.1 32 0 52.1 0 76.8L0 435.2C0 459.9 20.1 480 44.8 480l358.4 0c24.7 0 44.8-20.1 44.8-44.8l0-358.4C448 52.1 427.9 32 403.2 32zM377 180.8c-1.4 31.5-23.4 74.7-66 129.4-44 57.2-81.3 85.8-111.7 85.8-18.9 0-34.8-17.4-47.9-52.3-25.5-93.3-36.4-148-57.4-148-2.4 0-10.9 5.1-25.4 15.2L53.4 191.3c37.3-32.8 72.9-69.2 95.2-71.2 25.2-2.4 40.7 14.8 46.5 51.7 20.7 131.2 29.9 151 67.6 91.6 13.5-21.4 20.8-37.7 21.8-48.9 3.5-33.2-25.9-30.9-45.8-22.4 15.9-52.1 46.3-77.4 91.2-76 33.3 .9 49 22.5 47.1 64.7z\"],\n \"maxcdn\": [512, 512, [], \"f136\", \"M461.1 442.7l-97.4 0 51.9-242.7c2.3-10.2 .9-19.5-4.4-25.7-5-6.1-13.7-9.6-24.2-9.6l-49.3 0-59.5 278-97.4 0 59.5-278-83.4 0-59.5 278-97.4 0 59.5-278-44.6-95.4 372.1 0c39.4 0 75.3 16.3 98.3 44.9 23.3 28.6 31.8 67.4 23.6 105.9L461.1 442.7z\"],\n \"square-font-awesome-stroke\": [448, 512, [\"font-awesome-alt\"], \"f35c\", \"M64 64C46.3 64 32 78.3 32 96l0 320c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-320c0-17.7-14.3-32-32-32L64 64zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm154 58c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2 0 1.8-.4 3.7-1.1 5.4L312 264 342.9 333.4c.8 1.7 1.1 3.5 1.1 5.4 0 7.3-5.9 13.2-13.2 13.2l-186.8 0 0 32-32 0 0-209.5c-6.1-4.8-10-12.2-10-20.5 0-14.4 11.6-26 26-26s26 11.6 26 26z\"],\n \"speakap\": [448, 512, [], \"f3f3\", \"M64.4 391.8C-15 303.6-7.6 167.4 81.1 87.6s224.8-73 304.2 15.2 72 224.4-16.6 304.1c-18.7 16.9 64 43.1 42 52.3-82.1 34.2-253.9 35-346.2-67.5l0 0zM277.7 180.2l38.5-40.9c-9.6-8.9-32-26.8-76.2-27.6-52.3-.9-95.9 28.3-96.8 80-.2 11.3 .3 36.7 29.4 54.8 34.5 21.4 86.5 21.5 86 52.3-.4 21.3-26.4 25.8-38.6 25.6-3 0-30.2-.5-47.6-24.6l-40 42.6c28.2 27 59 32.6 83.5 33 10.2 .2 96.4 .3 97.8-81 .3-15.8-2.1-39.7-28.9-56.6-34.4-21.6-85-19.4-84.4-49.7 .4-23.3 31-25.4 37.5-25.3 .4 0 26.6 .3 39.6 17.4l0 0z\"],\n \"fantasy-flight-games\": [512, 512, [], \"f6dc\", \"M256 32.9L32.9 256 256 479.1 479.1 256 256 32.9zM88.3 255.8c2-2 11.9-12.3 96.5-97.5 41.4-41.8 86.2-43.8 119.8-18.7 24.6 18.4 62.1 58.9 62.1 59 .7 .7 1.1 2.9 .6 3.4-11.3 11.8-22.7 23.5-33.5 34.7-34.2-32.3-40.5-38.2-48.5-44-17.8-12.7-41.4-10.1-57 5.1-2.2 2.1-1.8 3.4 .1 5.4 2.9 2.9 28.1 28.3 35.1 35.8-11.9 11.6-23.7 23-35.7 34.7-12-12.5-24.5-25.5-36.5-38.1-21.4 21.1-41.7 41.1-61.8 61L88.3 255.8zM323.2 357.4c-35.5 35.4-78.1 38.1-107 20.5-22.1-13.5-39.4-32.1-72.9-66.8 12-12.4 23.8-24.4 35.4-36.3 33 31.9 37.1 36 44.7 42.1 18.5 14.7 42.5 13.7 59.3-1.8 3.7-3.4 3.7-3.6 .1-7.2-10.6-10.7-21.2-21.4-31.8-32.2-1.3-1.3-3-2.5-.8-4.7 10.8-10.7 21.5-21.5 32.2-32.3 .3-.3 .6-.4 1.9-1.1 12.4 12.9 24.9 25.9 37.2 38.8 21-20.7 41.2-40.7 61.3-60.4 13.7 13.4 27.1 26.6 40.9 40-20.2 20.9-81.7 82.7-100.5 101.5zM256 0L0 256 256 512 512 256 256 0zM16 256L256 16 496 256 256 496 16 256z\"],\n \"linux\": [448, 512, [], \"f17c\", \"M220.9 123.3c1 .5 1.8 1.7 3 1.7 1.1 0 2.8-.4 2.9-1.5 .2-1.4-1.9-2.3-3.2-2.9-1.7-.7-3.9-1-5.5-.1-.4 .2-.8 .7-.6 1.1 .3 1.3 2.3 1.1 3.4 1.7zM199 125c1.2 0 2-1.2 3-1.7 1.1-.6 3.1-.4 3.5-1.6 .2-.4-.2-.9-.6-1.1-1.6-.9-3.8-.6-5.5 .1-1.3 .6-3.4 1.5-3.2 2.9 .1 1 1.8 1.5 2.8 1.4zM420 403.8c-3.6-4-5.3-11.6-7.2-19.7-1.8-8.1-3.9-16.8-10.5-22.4-1.3-1.1-2.6-2.1-4-2.9-1.3-.8-2.7-1.5-4.1-2 9.2-27.3 5.6-54.5-3.7-79.1-11.4-30.1-31.3-56.4-46.5-74.4-17.1-21.5-33.7-41.9-33.4-72 .5-45.9 5.1-131.2-75.8-131.3-102.4-.2-76.8 103.4-77.9 135.2-1.7 23.4-6.4 41.8-22.5 64.7-18.9 22.5-45.5 58.8-58.1 96.7-6 17.9-8.8 36.1-6.2 53.3-6.5 5.8-11.4 14.7-16.6 20.2-4.2 4.3-10.3 5.9-17 8.3s-14 6-18.5 14.5c-2.1 3.9-2.8 8.1-2.8 12.4 0 3.9 .6 7.9 1.2 11.8 1.2 8.1 2.5 15.7 .8 20.8-5.2 14.4-5.9 24.4-2.2 31.7 3.8 7.3 11.4 10.5 20.1 12.3 17.3 3.6 40.8 2.7 59.3 12.5 19.8 10.4 39.9 14.1 55.9 10.4 11.6-2.6 21.1-9.6 25.9-20.2 12.5-.1 26.3-5.4 48.3-6.6 14.9-1.2 33.6 5.3 55.1 4.1 .6 2.3 1.4 4.6 2.5 6.7l0 .1c8.3 16.7 23.8 24.3 40.3 23 16.6-1.3 34.1-11 48.3-27.9 13.6-16.4 36-23.2 50.9-32.2 7.4-4.5 13.4-10.1 13.9-18.3 .4-8.2-4.4-17.3-15.5-29.7zM223.8 87.3c9.8-22.2 34.2-21.8 44-.4 6.5 14.2 3.6 30.9-4.3 40.4-1.6-.8-5.9-2.6-12.6-4.9 1.1-1.2 3.1-2.7 3.9-4.6 4.8-11.8-.2-27-9.1-27.3-7.3-.5-13.9 10.8-11.8 23-4.1-2-9.4-3.5-13-4.4-1-6.9-.3-14.6 2.9-21.8zM183.1 75.8c10.1 0 20.8 14.2 19.1 33.5-3.5 1-7.1 2.5-10.2 4.6 1.2-8.9-3.3-20.1-9.6-19.6-8.4 .7-9.8 21.2-1.8 28.1 1 .8 1.9-.2-5.9 5.5-15.6-14.6-10.5-52.1 8.4-52.1zm-13.6 60.7c6.2-4.6 13.6-10 14.1-10.5 4.7-4.4 13.5-14.2 27.9-14.2 7.1 0 15.6 2.3 25.9 8.9 6.3 4.1 11.3 4.4 22.6 9.3 8.4 3.5 13.7 9.7 10.5 18.2-2.6 7.1-11 14.4-22.7 18.1-11.1 3.6-19.8 16-38.2 14.9-3.9-.2-7-1-9.6-2.1-8-3.5-12.2-10.4-20-15-8.6-4.8-13.2-10.4-14.7-15.3-1.4-4.9 0-9 4.2-12.3zm3.3 334c-2.7 35.1-43.9 34.4-75.3 18-29.9-15.8-68.6-6.5-76.5-21.9-2.4-4.7-2.4-12.7 2.6-26.4l0-.2c2.4-7.6 .6-16-.6-23.9-1.2-7.8-1.8-15 .9-20 3.5-6.7 8.5-9.1 14.8-11.3 10.3-3.7 11.8-3.4 19.6-9.9 5.5-5.7 9.5-12.9 14.3-18 5.1-5.5 10-8.1 17.7-6.9 8.1 1.2 15.1 6.8 21.9 16l19.6 35.6c9.5 19.9 43.1 48.4 41 68.9zm-1.4-25.9c-4.1-6.6-9.6-13.6-14.4-19.6 7.1 0 14.2-2.2 16.7-8.9 2.3-6.2 0-14.9-7.4-24.9-13.5-18.2-38.3-32.5-38.3-32.5-13.5-8.4-21.1-18.7-24.6-29.9s-3-23.3-.3-35.2c5.2-22.9 18.6-45.2 27.2-59.2 2.3-1.7 .8 3.2-8.7 20.8-8.5 16.1-24.4 53.3-2.6 82.4 .6-20.7 5.5-41.8 13.8-61.5 12-27.4 37.3-74.9 39.3-112.7 1.1 .8 4.6 3.2 6.2 4.1 4.6 2.7 8.1 6.7 12.6 10.3 12.4 10 28.5 9.2 42.4 1.2 6.2-3.5 11.2-7.5 15.9-9 9.9-3.1 17.8-8.6 22.3-15 7.7 30.4 25.7 74.3 37.2 95.7 6.1 11.4 18.3 35.5 23.6 64.6 3.3-.1 7 .4 10.9 1.4 13.8-35.7-11.7-74.2-23.3-84.9-4.7-4.6-4.9-6.6-2.6-6.5 12.6 11.2 29.2 33.7 35.2 59 2.8 11.6 3.3 23.7 .4 35.7 16.4 6.8 35.9 17.9 30.7 34.8-2.2-.1-3.2 0-4.2 0 3.2-10.1-3.9-17.6-22.8-26.1-19.6-8.6-36-8.6-38.3 12.5-12.1 4.2-18.3 14.7-21.4 27.3-2.8 11.2-3.6 24.7-4.4 39.9-.5 7.7-3.6 18-6.8 29-32.1 22.9-76.7 32.9-114.3 7.2zm257.4-11.5c-.9 16.8-41.2 19.9-63.2 46.5-13.2 15.7-29.4 24.4-43.6 25.5s-26.5-4.8-33.7-19.3c-4.7-11.1-2.4-23.1 1.1-36.3 3.7-14.2 9.2-28.8 9.9-40.6 .8-15.2 1.7-28.5 4.2-38.7 2.6-10.3 6.6-17.2 13.7-21.1 .3-.2 .7-.3 1-.5 .8 13.2 7.3 26.6 18.8 29.5 12.6 3.3 30.7-7.5 38.4-16.3 9-.3 15.7-.9 22.6 5.1 9.9 8.5 7.1 30.3 17.1 41.6 10.6 11.6 14 19.5 13.7 24.6zM173.4 148.7c2 1.9 4.7 4.5 8 7.1 6.6 5.2 15.8 10.6 27.3 10.6 11.6 0 22.5-5.9 31.8-10.8 4.9-2.6 10.9-7 14.8-10.4s5.9-6.3 3.1-6.6-2.6 2.6-6 5.1c-4.4 3.2-9.7 7.4-13.9 9.8-7.4 4.2-19.5 10.2-29.9 10.2s-18.7-4.8-24.9-9.7c-3.1-2.5-5.7-5-7.7-6.9-1.5-1.4-1.9-4.6-4.3-4.9-1.4-.1-1.8 3.7 1.7 6.5z\"],\n \"cotton-bureau\": [512, 512, [], \"f89e\", \"M474.3 330.4C450.6 422.3 380.1 475 272.4 478.8l0-49.2c0-48 26.4-74.4 74.4-74.4 62 0 99.2-37.2 99.2-99.2 0-61.4-36.5-98.3-97.4-99.1-33-69.3-146.5-64.7-177.2 0-60.9 .8-97.4 37.7-97.4 99.1 0 62.1 37.3 99.4 99.4 99.4 48 0 74.6 26.2 74.6 74.4l0 49.2c-134.4-5-211.1-85.1-211.1-223 0-141.8 81.4-223.2 223.2-223.2 114.8 0 189.8 53.2 214.7 148.8l25.3 0C473.9 71.5 388.2 8 259.8 8 105 8 12 101.2 12 255.8 12 411.1 105.2 504.3 259.8 504 388.1 504 473.7 440.2 499.5 330.4l-25.2 0zM357 182.3c41.4 3.4 64.2 29 64.2 73.7 0 48-26.4 74.4-74.4 74.4-28.6 0-49.3-9.6-61.6-27.3 83.1-16.5 75.6-99.7 71.8-120.7zm-81.7 97.4c-2.5-10.3-16.3-87 56.2-97 2.3 10.1 16.5 87.1-56.3 97l0 0zM260 132c28.6 0 49 9.7 61.4 27.6-28.4 5.5-49.4 20.6-61.6 43.4-12.2-22.9-33.2-38-61.6-43.4 12.4-17.7 33.3-27.4 61.6-27.4l.2-.3zm-71.5 50.7c73.2 10.6 58.9 86.8 56.5 97-72.4-9.8-59-87-56.2-97l-.2 0zM173.2 330.4c-48 0-74.4-26.4-74.4-74.4 0-44.4 22.9-70 64.2-73.7-6.8 37.2-1.4 106.5 71.6 120.7-12.1 17.6-32.8 27.3-61.1 27.3l-.3 0zm53.2 12.4c14.3-7.6 26-19.3 33.6-33.5 7.8 14.5 19.3 25.5 33.8 33.5-14.4 7.6-26.1 19.4-33.6 33.8-8-14.5-19.1-26.2-33.6-33.8l-.3 0z\"],\n \"google-wallet\": [448, 512, [], \"f1ee\", \"M156.8 126.8c37.6 60.6 64.2 113.1 84.3 162.5-8.3 33.8-18.8 66.5-31.3 98.3-13.2-52.3-26.5-101.3-56-148.5 6.5-36.4 2.3-73.6 3-112.3zM109.3 200l-93.2 0c-6.5 0-10.5 7.5-6.5 12.7 42.2 54.3 71.7 117.8 91.7 187.3l103.5 0c-16.2-69.7-38.7-133.7-82.5-193.5-3-4-8-6.5-13-6.5zm47.8-88c68.5 108 130 234.5 138.2 368L409 480c-12-138-68.4-265-143.2-368l-108.7 0zM408.9 43.5c-1.8-6.8-8.2-11.5-15.2-11.5l-88.3 0c-5.3 0-9 5-7.8 10.3 13.2 46.5 22.3 95.5 26.5 146 48.2 86.2 79.7 178.3 90.6 270.8 15.8-60.5 25.3-133.5 25.3-203 0-73.6-12.1-145.1-31.1-212.6z\"],\n \"foursquare\": [384, 512, [], \"f180\", \"M331.1 3L57.9 3C20.4 3 8 31.3 8 49.1L8 482.9c0 20.3 12.1 27.7 18.2 30.1 6.2 2.5 22.8 4.6 32.9-7.1 128.9-149.4 131.1-151.9 131.1-151.9 3.1-3.4 3.4-3.1 6.8-3.1l83.4 0c35.1 0 40.6-25.2 44.3-39.7l48.6-243C381.8 25.8 371.1 3 331.1 3zM314.8 76.8l-11.4 59.7c-1.2 6.5-9.5 13.2-16.9 13.2l-106.4 0c-12 0-20.6 8.3-20.6 20.3l0 13c0 12 8.6 20.6 20.6 20.6l90.4 0c8.3 0 16.6 9.2 14.8 18.2-1.8 8.9-10.5 53.8-11.4 58.8-.9 4.9-6.8 13.5-16.9 13.5l-73.5 0c-13.5 0-17.2 1.8-26.5 12.6 0 0-8.9 11.4-89.5 108.3-.9 .9-1.8 .6-1.8-.3l0-338.8c0-7.7 6.8-16.6 16.6-16.6l219 0c8.2 0 15.6 7.7 13.5 17.5z\"],\n \"shirtsinbulk\": [448, 512, [], \"f214\", \"M100 410.3l30.6 13.4 4.4-9.9-30.6-13.4-4.4 9.9zm39.4 17.5l30.6 13.4 4.4-9.9-30.6-13.4-4.4 9.9zm172.1-14l4.4 9.9 30.6-13.4-4.4-9.9-30.6 13.4zM179.1 445l30.3 13.7 4.4-9.9-30.3-13.4-4.4 9.6zM60.4 392.8l30.6 13.4 4.4-9.6-30.6-13.7-4.4 9.9zm211.4 38.5l4.4 9.9 30.6-13.4-4.4-9.9-30.6 13.4zm-39.3 17.5l4.4 9.9 30.6-13.7-4.4-9.6-30.6 13.4zm118.4-52.2l4.4 9.6 30.6-13.4-4.4-9.9-30.6 13.7zM170 46.6l-33.5 0 0 10.5 33.5 0 0-10.5zm-47.2 0l-33.6 0 0 10.5 33.5 0 .1-10.5zm-47.3 0l-33.2 0 0 10.5 33.3 0-.1-10.5zm141.5 0l-33.2 0 0 10.5 33.2 0 0-10.5zm94.5 0l-33.5 0 0 10.5 33.5 0 0-10.5zm47.3 0l-33.5 0 0 10.5 33.5 0 0-10.5zm-94.6 0l-33.2 0 0 10.5 33.2 0 0-10.5zm141.5 0l-33.3 0 0 10.5 33.3 0 0-10.5zM52.8 351.1l-10.8 0 0 33.5 10.8 0 0-33.5zm70-215.9l-33.6 0 0 10.5 33.5 0 .1-10.5zm-70 10.6l22.8 0 0-10.5-33.6 0 0 33.5 10.8 0 0-23zM221.7 374.4a91.3 91.3 0 1 0 0-182.6 91.3 91.3 0 1 0 0 182.6zM173.5 263.3c0-25.4 29.5-31.8 49.6-31.8 16.9 0 29.2 5.8 44.3 12l-8.8 16.9-.9 0c-6.4-9.9-24.8-13.1-35.6-13.1-9 0-29.8 1.8-29.8 14.9 0 21.6 78.5-10.2 78.5 37.9 0 25.4-31.5 31.2-51 31.2-18.1 0-32.4-2.9-47.2-12.2l9-18.4 .9 0c6.1 12.2 23.6 14.9 35.9 14.9 8.7 0 32.7-1.2 32.7-14.3 0-26.1-77.6 6.3-77.6-38zM52.8 178.4l-10.8 0 0 33.6 10.8 0 0-33.6zM395.2 384.6l10.8 0 0-33.5-10.8 0 0 33.5zM52.8 307.9l-10.8 0 0 33.5 10.8 0 0-33.5zM0 3.7l0 406 221.7 98.6 226.3-98.6 0-406-448 0zM418.8 390.8l-196.8 85.7-192.8-85.7 0-270.1 389.7 0 0 270.1-.1 0zm0-299.3l-389.6 0 0-58.6 389.7 0 0 58.6-.1 0zM52.8 221.6l-10.8 0 0 33.5 10.8 0 0-33.5zm0 43.2l-10.8 0 0 33.5 10.8 0 0-33.5zM170 135.2l-33.5 0 0 10.5 33.5 0 0-10.5zM395.2 298.3l10.8 0 0-33.5-10.8 0 0 33.5zm0-43.2l10.8 0 0-33.5-10.8 0 0 33.5zM217 135.2l-33.2 0 0 10.5 33.2 0 0-10.5zM395.2 212l10.8 0 0-33.5-10.8 0 0 33.5zm0 129.5l10.8 0 0-33.5-10.8 0 0 33.5zm-131-206.3l-33.2 0 0 10.5 33.2 0 0-10.5zm47.3 0l-33.5 0 0 10.5 33.5 0 0-10.5zm83.7 33.6l10.8 0 0-33.5-33.5 0 0 10.5 22.8 0-.1 23zm-36.4-33.6l-33.5 0 0 10.5 33.5 0 0-10.5z\"],\n \"mintbit\": [512, 512, [], \"e62f\", \"M73.2 512l0-73.1 292.5 0 0-73.2 73.2 0 0-146.3 73.1 0 0-219.4-219.4 0 0 73.1-146.3 0 0 73.2-73.1 0 0 292.6-73.2 0 0 73.1 73.2 0zm73.1-219.4l73.2 0 0 73.1-73.2 0 0-73.1zm73.2-73.1l73.1 0 0 73.1-73.2 0 0-73.2 .1 .1zm73.1 0l0-73.2 73.2 0 0 73.1-73.2 0 0 .1zM365.7 73.1l73.2 0 0 73.2-73.2 0 0-73.2z\"],\n \"staylinked\": [448, 512, [], \"f3f5\", \"M386.7 292.5l2.7 2.7-170-167.3c-3.5-3.5-9.7-3.7-13.8-.5L148.3 171c-4.2 3.2-4.6 8.7-1.1 12.2l68.1 64.3c3.6 3.5 9.9 3.7 14 .5l.1-.1c4.1-3.2 10.4-3 14 .5l84 81.3c3.6 3.5 3.2 9-.9 12.2l-93.2 74c-4.2 3.3-10.5 3.1-14.2-.4L67.2 268c-3.5-3.5-9.7-3.7-13.9-.5L7.5 302.4c-4.2 3.2-4.7 8.7-1.2 12.2L215 510.7s7.4 6.8 17.3-.8L430.3 346c4-3.2 4.4-8.7 .7-12.2l-44.3-41.3zm54.5-83.4L230.7 2.5c-1.5-1.2-8-5.5-16.3 1.1L7.6 165.7c-4.2 3.2-4.8 8.7-1.2 12.2l42.3 41.7 171.7 165.1c3.7 3.5 10.1 3.7 14.3 .4l50.2-38.8-.3-.3 7.7-6c4.2-3.2 4.6-8.7 .9-12.2l-57.1-54.4c-3.6-3.5-10-3.7-14.2-.5l-.1 .1c-4.2 3.2-10.5 3.1-14.2-.4L113 180.8c-3.6-3.5-3.1-8.9 1.1-12.2l92.2-71.5c4.1-3.2 10.3-3 13.9 .5l160.4 159c3.7 3.5 10 3.7 14.1 .5l45.8-35.8c4.1-3.2 4.4-8.7 .7-12.2z\"],\n \"webflow\": [640, 512, [], \"e65c\", \"M640 64l-204.2 399.2-191.8 0 85.5-165.5-3.8 0C255.1 389.3 149.9 449.5 0 463.2L0 300.1s95.9-5.7 152.3-64.9l-152.3 0 0-171.2 171.1 0 0 140.8 3.8 0 70-140.8 129.4 0 0 139.9 3.8 0 72.6-139.9 189.3 0z\"],\n \"renren\": [512, 512, [], \"f18b\", \"M214 169.1C214 279.5 153 374.5 66.4 416.5 30 373.2 8 317.7 8 256.6 8 133.9 97.1 32.2 214 12.5l0 156.6zM255 504c-42.9 0-83.3-11-118.5-30.4 57.2-36.1 103.4-90.7 118.5-154.6 15.5 63.9 61.7 118.5 118.8 154.7-35.1 19.3-75.5 30.3-118.8 30.3zm190.6-87.5C359 374.5 298 279.6 298 169.1l0-156.6c116.9 19.7 206 121.4 206 244.1 0 61.1-22 116.6-58.4 159.9z\"],\n \"rev\": [448, 512, [], \"f5b2\", \"M158.7 274.9a65.6 65.6 0 1 1 131.2 0 65.6 65.6 0 1 1 -131.2 0zm270.7-5.1l-.1 0c-.7-29.3-7.7-58.2-20.5-84.6s-31.2-49.7-53.8-68.4L309.6 143c22 14.2 40.1 33.8 52.7 56.8s19.1 48.8 19.1 75.1c0 86.6-70.5 157.1-157.1 157.1S67.2 361.5 67.2 274.9c0-81.9 63-149.3 143-156.4l0 39.1 108.8-62.8-108.8-62.8 0 38.3c-106.7 7.2-191 96-191 204.6 0 111.6 89.1 202.3 200.1 205l0 .1 210.2 0 0-210.2z\"],\n \"keycdn\": [512, 512, [], \"f3ba\", \"M63.8 409.3l60.5-59c32.1 42.8 71.1 66 126.6 67.4 30.5 .7 60.3-7 86.4-22.4 5.1 5.3 18.5 19.5 20.9 22-32.2 20.7-69.6 31.1-108.1 30.2-43.3-1.1-84.6-16.7-117.7-44.4 .3-.6-38.2 37.5-38.6 37.9 9.5 29.8-13.1 62.4-46.3 62.4-26.8-.1-47.5-21.7-47.5-48.5 0-34.3 33.1-56.6 63.8-45.6zM418.7 156.9c19.1 31.3 29.6 67.4 28.7 104-1.1 44.8-19 87.5-48.6 121 .3 .3 23.8 25.2 24.1 25.5 9.6-1.3 19.2 2 25.9 9.1 11.3 12 10.9 30.9-1.1 42.4-12 11.3-30.9 10.9-42.4-1.1-6.7-7-9.4-16.8-7.6-26.3-24.9-26.6-44.4-47.2-44.4-47.2 42.7-34.1 63.3-79.6 64.4-124.2 .7-28.9-7.2-57.2-21.1-82.2l22.1-21zM104 53.1c6.7 7 9.4 16.8 7.6 26.3l45.9 48.1c-4.7 3.8-13.3 10.4-22.8 21.3-25.4 28.5-39.6 64.8-40.7 102.9-.7 28.9 6.1 57.2 20 82.4L92 355.6c-19.3-31.6-28.9-67.7-27.8-104.7 1-44.6 18.3-87.6 47.5-121.1L86.4 103.4c-9.6 1.3-19.2-2-25.9-9.1-11.3-12-10.9-30.9 1.1-42.4 11.9-11.2 30.6-10.9 42.4 1.2zM464.9 8c26 0 47.1 22.4 47.1 48.3S490.9 104 464.9 104c-6.3 .1-14-1.1-15.9-1.8l-62.9 59.7c-32.7-43.6-76.7-65.9-126.9-67.2-30.5-.7-60.3 6.8-86.2 22.4l-21.1-22C184.1 74.3 221.5 64 260 64.9 303.3 66 344.6 81.6 377.7 109.5l41.1-38.6c-1.5-4.7-2.2-9.6-2.2-14.5-.1-26.7 22.3-48.4 48.3-48.4zM256.7 113.4c5.5 0 10.9 .4 16.4 1.1 78.1 9.8 133.4 81.1 123.8 159.1-9.8 78.1-81.1 133.4-159.1 123.8-78.1-9.8-133.4-81.1-123.8-159.2 9.3-72.4 70.1-124.6 142.7-124.8zm-59 119.4c.6 22.7 12.2 41.8 32.4 52.2l-11 51.7 73.7 0-11-51.7c20.1-10.9 32.1-29 32.4-52.2-.4-32.8-25.8-57.5-58.3-58.3-32.1 .8-57.3 24.8-58.2 58.3z\"],\n \"hire-a-helper\": [512, 512, [], \"f3b0\", \"M443.1 0L71.9 0C67.9 37.3 37.4 67.8 0 71.7L0 443.2c37.4 4.9 66 32.4 71.9 68.8l372.2 0c3-36.4 32.5-65.8 67.9-69.8l0-370.5C475.6 65.8 447 36.4 443.1 0zm-37 404.9c-36.3 0-18.8-2-55.1-2-35.8 0-21 2-56.1 2-5.9 0-4.9-8.2 0-9.8 22.8-7.6 22.9-10.2 24.6-12.8 10.4-15.6 5.9-83 5.9-113 0-5.3-6.4-12.8-13.8-12.8l-111.2 0c-7.4 0-13.8 7.5-13.8 12.8 0 30-4.5 97.4 5.9 113 1.7 2.5 1.8 5.2 24.6 12.8 4.9 1.6 6 9.8 0 9.8-35.1 0-20.3-2-56.1-2-36.3 0-18.8 2-55.1 2-7.9 0-5.8-10.8 0-10.8 10.2-3.4 13.5-3.5 21.7-13.8 7.7-12.9 7.9-44.4 7.9-127.8l0-101.2c0-22.2-12.2-28.3-28.6-32.4-8.8-2.2-4-11.8 1-11.8 36.5 0 20.6 2 57.1 2 32.7 0 16.5-2 49.2-2 3.3 0 8.5 8.3 1 10.8-4.9 1.6-27.6 3.7-27.6 39.3 0 45.6-.2 55.8 1 68.8 0 1.3 2.3 12.8 12.8 12.8l109.2 0c10.5 0 12.8-11.5 12.8-12.8 1.2-13 1-23.2 1-68.8 0-35.6-22.7-37.7-27.6-39.3-7.5-2.5-2.3-10.8 1-10.8 32.7 0 16.5 2 49.2 2 36.5 0 20.6-2 57.1-2 4.9 0 9.9 9.6 1 11.8-16.4 4.1-28.6 10.3-28.6 32.4l0 101.2c0 83.4 .1 114.9 7.9 127.8 8.2 10.2 11.4 10.4 21.7 13.8 5.8 0 7.8 10.8 0 10.8z\"],\n \"square-hacker-news\": [448, 512, [\"hacker-news-square\"], \"f3af\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM21 229.2s.1-.1 .1-.2 .1-.2 .2-.2c0 .1 0 .3-.1 .4l-.2 0zM239.2 384l-31.4 0 0-102.7-79.8-153.3 37.3 0c41.5 77.7 48.1 95.8 54.1 112 1.6 4.3 3.1 8.5 5.2 13.6 3.2-7 5.1-11.9 7.1-17.3 5.9-15.3 12.8-33.2 53.5-108.3l34.8 0-80.8 155.1 0 100.9z\"],\n \"creative-commons-pd-alt\": [512, 512, [], \"f4ed\", \"M255.6 8C112.7 8 8 123.1 8 256 8 394.5 121.6 504 255.6 504 385.5 504 504 403.1 504 256 504 118.1 397.4 8 255.6 8zm.8 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.5-203.3 203.7-203.3 112.6 0 202.9 89.5 202.8 203.3 0 121.7-99.6 202.8-202.8 202.8zM324.7 186l-53.2 0 0 137.2 53.2 0c21.4 0 70-5.1 70-68.6 0-63.4-48.6-68.6-70-68.6zm.8 108.5l-19.9 0 0-79.7 19.4-.1c3.8 0 35-2.1 35 39.9 0 24.6-10.5 39.9-34.5 39.9zM211.7 186l-68.2 0 0 137.3 34.6 0 0-44.3 27 0c54.1 0 57.1-37.5 57.1-46.5 0-31-16.8-46.5-50.5-46.5zm-4.9 67.3l-29.2 0 0-41.6 28.3 0c30.9 0 28.8 41.6 .9 41.6z\"],\n \"orcid\": [512, 512, [], \"f8d2\", \"M294.7 188.2l-45.9 0 0 153.8 47.5 0c67.6 0 83.1-51.3 83.1-76.9 0-41.6-26.5-76.9-84.7-76.9zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM175.2 368.8l-29.8 0 0-207.5 29.8 0 0 207.5zM160.3 98.5a19.6 19.6 0 1 1 0 39.2 19.6 19.6 0 1 1 0-39.2zM300 369l-81 0 0-207.7 80.6 0c76.7 0 110.4 54.8 110.4 103.9 0 53.3-41.7 103.9-110 103.9z\"],\n \"behance\": [576, 512, [], \"f1b4\", \"M232 237.2c31.8-15.2 48.4-38.2 48.4-74 0-70.6-52.6-87.8-113.3-87.8l-167.1 0 0 354.4 171.8 0c64.4 0 124.9-30.9 124.9-102.9 0-44.5-21.1-77.4-64.7-89.7zM77.9 135.9l73.1 0c28.1 0 53.4 7.9 53.4 40.5 0 30.1-19.7 42.2-47.5 42.2l-79 0 0-82.7zm83.3 233.7l-83.3 0 0-97.6 84.9 0c34.3 0 56 14.3 56 50.6 0 35.8-25.9 47-57.6 47zM519.7 128.9l-143.7 0 0-34.9 143.7 0 0 34.9zM576 305.2c0-75.9-44.4-139.2-124.9-139.2-78.2 0-131.3 58.8-131.3 135.8 0 79.9 50.3 134.7 131.3 134.7 61.3 0 101-27.6 120.1-86.3l-62.2 0c-6.7 21.9-34.3 33.5-55.7 33.5-41.3 0-63-24.2-63-65.3l185.1 0c.3-4.2 .6-8.7 .6-13.2zM390.4 274c2.3-33.7 24.7-54.8 58.5-54.8 35.4 0 53.2 20.8 56.2 54.8l-114.7 0z\"],\n \"monero\": [512, 512, [], \"f3d0\", \"M360 384l108.4 0C425 455.9 346.1 504 256 504S87 455.9 43.6 384l108.4 0 0-127.8 104 104.8 104-105 0 128zM96 336l0-208 159.4 159.4 160.6-159.4 0 208 74.8 0c8.5-25.1 13.2-52 13.2-80 0-137-111-248-248-248S8 119 8 256c0 28 4.6 54.9 13.2 80L96 336z\"],\n \"figma\": [384, 512, [], \"f799\", \"M14 95.8C14 42.9 56.9 0 109.8 0L274.2 0c52.9 0 95.8 42.9 95.8 95.8 0 33.5-17.2 63-43.2 80.1 26 17.1 43.2 46.6 43.2 80.1 0 52.9-42.9 95.8-95.8 95.8l-2.1 0c-24.8 0-47.4-9.4-64.4-24.9l0 88.3c0 53.6-44 96.8-97.4 96.8-52.8 0-96.3-42.8-96.3-95.8 0-33.5 17.2-63 43.2-80.1-26-17.1-43.2-46.6-43.2-80.1s17.2-63 43.2-80.1C31.2 158.8 14 129.3 14 95.8zm162.3 95.8l-66.5 0c-35.6 0-64.4 28.8-64.4 64.4 0 35.4 28.6 64.2 64 64.4l66.9 0 0-128.8zM207.7 256c0 35.6 28.8 64.4 64.4 64.4l2.1 0c35.6 0 64.4-28.8 64.4-64.4s-28.8-64.4-64.4-64.4l-2.1 0c-35.6 0-64.4 28.8-64.4 64.4zm-97.9 95.8l-.4 0c-35.4 .2-64 29-64 64.4s29.2 64.4 64.9 64.4c36.3 0 66-29.4 66-65.5l0-63.4-66.5 0zm0-320.4c-35.6 0-64.4 28.8-64.4 64.4s28.8 64.4 64.4 64.4l66.5 0 0-128.8-66.5 0zm97.9 128.8l66.5 0c35.6 0 64.4-28.8 64.4-64.4s-28.8-64.4-64.4-64.4l-66.5 0 0 128.8z\"],\n \"instagram\": [448, 512, [], \"f16d\", \"M224.3 141a115 115 0 1 0 -.6 230 115 115 0 1 0 .6-230zm-.6 40.4a74.6 74.6 0 1 1 .6 149.2 74.6 74.6 0 1 1 -.6-149.2zm93.4-45.1a26.8 26.8 0 1 1 53.6 0 26.8 26.8 0 1 1 -53.6 0zm129.7 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM399 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z\"],\n \"perbyte\": [448, 512, [], \"e083\", \"M305.3 284.6l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5zM149.4 128.7l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5zM366.6 32L81.4 32c-21.6 0-42.2 8.6-57.5 23.9S0 91.8 0 113.4L0 398.6c0 21.6 8.6 42.2 23.9 57.5S59.8 480 81.4 480l285.3 0c21.6 0 42.2-8.6 57.5-23.9S448 420.2 448 398.6l0-285.3c0-21.6-8.6-42.2-23.9-57.5S388.2 32 366.6 32zm63.6 366.6c0 16.9-6.7 33-18.7 45s-28.1 18.6-45 18.7l-285.3 0c-16.9 0-33-6.7-45-18.7s-18.6-28.1-18.7-45l0-285.3c0-16.9 6.7-33 18.7-45s28.1-18.6 45-18.7l285.3 0c16.9 0 33 6.7 45 18.7s18.6 28.1 18.7 45l0 285.3zm-125-269.9l-58.7 0 0 98.7 58.7 0c16.3 0 29-4.6 38.2-13.8s13.8-21.2 13.8-36.1c0-14.6-4.7-26.3-14-35.3s-22-13.5-37.9-13.5z\"],\n \"square-vimeo\": [448, 512, [\"vimeo-square\"], \"f194\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM318.5 309.5c-43.5 56.5-80.3 84.8-110.4 84.8-18.7 0-34.4-17.2-47.3-51.6-3.8-13.9-7.3-26.9-10.5-39-18.2-68.3-28.6-107.4-46.2-107.4-2.4 0-10.8 5-25.1 15.1L64 192c7-6.1 13.9-12.4 20.6-18.5 29.1-26.3 55.6-50.3 73.5-51.9 24.9-2.4 40.2 14.6 46 51.1 20.5 129.6 29.6 149.2 66.8 90.5 13.4-21.2 20.6-37.2 21.5-48.3 3.4-32.8-25.6-30.6-45.2-22.2 15.7-51.5 45.8-76.5 90.1-75.1 32.9 1 48.4 22.4 46.5 64-1.4 31.1-23.2 73.8-65.3 127.9z\"],\n \"pushed\": [448, 512, [], \"f3e1\", \"M415.1 111.9l-98.5-9 14-33.4c10.4-23.5-10.8-40.4-28.7-37L30.6 76.9c-15.1 2.7-26 18.3-21.4 36.6L114.3 461.8c6.5 21.3 36.7 24.2 47.7 7L197.3 388 432.5 156.7c16.4-16.8 4.3-42.9-17.4-44.8zM305.7 53.6c5.1-.7 7.5 2.5 5.2 7.4l-16.8 39.9-177.4-16.3 189-31zM30.8 107.9c-3.1-5.1 1-10 6.1-9.1l248.7 22.7-96.9 230.7-157.9-244.3zM144.1 456.4c-2.6 4-7.9 3.1-9.4-1.2L51.6 179.7 179.3 377.3c-7 15-35.2 79.1-35.2 79.1zM416.9 141.9l-198.7 195.4 89.7-213.7 106.4 9.7c4 1.1 5.7 5.3 2.6 8.6z\"],\n \"mixcloud\": [640, 512, [], \"f289\", \"M213 346.6l-33.2 0 0-151.5 6.2-21.6-10.7 0-38.1 173.1-61 0-38.4-173.1-10.5 0 5.9 21.6 0 151.5-33.2 0 0-181.6 65.7 0 36.6 173.1 8.5 0 36.6-173.1 65.7 0 0 181.6zm331.5-63l-86 62.1 0-38.1 72.9-51.8-72.9-51.8 0-38.1 86 62.3 9.3 0 86.3-62.3 0 38.1-73.1 51.8 73.1 51.8 0 38.1-86.3-62.1-9.3 0zM430.2 272.3l-182 0 0-33.1 182 0 0 33.1z\"],\n \"yandex-international\": [320, 512, [], \"f414\", \"M129.5 512l0-166.1-111-297.9 55.8 0 81.8 229.7 94.1-277.7 51.3 0-120.7 347.8 0 164.2-51.3 0z\"],\n \"hive\": [512, 512, [], \"e07f\", \"M260.4 254.9L131.5 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3-.8 .1-1.1 .3-.6 .5-.8 .8L.3 254.9c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1L129.1 478.9c.2 .3 .5 .6 .8 .8s.7 .3 1.1 .3 .8-.1 1.1-.3 .6-.5 .8-.8L260.4 257.1c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1zm39.1-25.7c.2 .3 .5 .6 .8 .8s.7 .3 1.1 .3l66.5 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8 .3-.7 .3-1.1-.1-.8-.3-1.1L259.1 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3l-66.5 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8-.3 .7-.3 1.1 .1 .8 .3 1.1L299.4 229.2zm212.3 25.7L384.9 33.1c-.2-.3-.5-.6-.8-.8s-.7-.3-1.1-.3l-66.6 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8-.3 .7-.3 1.1 .1 .8 .3 1.1L440.7 256 314.5 476.7c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1 .5 .6 .8 .8 .7 .3 1.1 .3l66.6 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8L511.7 257.1c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1zM366 284.9l-66.5 0c-.4 0-.8 .1-1.1 .3s-.6 .5-.8 .8L188.8 476.7c-.2 .3-.3 .7-.3 1.1s.1 .8 .3 1.1 .5 .6 .8 .8 .7 .3 1.1 .3l66.5 0c.4 0 .8-.1 1.1-.3s.6-.5 .8-.8L367.9 288.3c.2-.3 .3-.7 .3-1.1s-.1-.8-.3-1.1-.5-.6-.8-.8-.7-.3-1.1-.3z\"],\n \"creative-commons-zero\": [512, 512, [], \"f4f3\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm-.4 60.5c-81.9 0-102.5 77.3-102.5 142.8S174.1 398.8 256 398.8 358.5 321.5 358.5 256 337.9 113.2 256 113.2zm0 53.9c3.3 0 6.4 .5 9.2 1.2 5.9 5.1 8.8 12.1 3.1 21.9L213.8 290.4c-1.7-12.7-1.9-25.1-1.9-34.4 0-28.8 2-88.9 44.1-88.9zm40.8 46.2c2.9 15.4 3.3 31.4 3.3 42.7 0 28.9-2 88.9-44.1 88.9-13.5 0-32.6-7.7-20.1-26.4l60.9-105.2z\"],\n \"square-snapchat\": [448, 512, [\"snapchat-square\"], \"f2ad\", \"M384 32L64 32c-17 0-33.3 6.7-45.3 18.7S0 79 0 96L0 416c0 17 6.7 33.3 18.7 45.3S47 480 64 480l320 0c17 0 33.3-6.7 45.3-18.7S448 433 448 416l0-320c0-17-6.7-33.3-18.7-45.3S401 32 384 32zm-3.9 319.3l-.1 .1c-2.5 2.8-5.4 5.1-8.7 6.8-6.5 3.6-13.4 6.3-20.6 8.2-1.4 .4-2.7 1-3.9 1.8-2.2 1.9-2.1 4.6-4.4 8.6-1.7 3-4 5.5-6.8 7.5-6.7 4.6-14.2 4.9-22.2 5.2-7.2 .3-15.4 .6-24.7 3.7-3.8 1.2-7.8 3.7-12.4 6.5-11.3 6.9-26.7 16.4-52.3 16.4s-40.9-9.4-52.1-16.3c-4.7-2.9-8.7-5.4-12.5-6.6-9.3-3.1-17.5-3.4-24.7-3.7-8-.3-15.5-.6-22.2-5.2-2.4-1.6-4.4-3.7-6-6.1-3.2-4.6-2.9-7.8-5.3-9.9-1.3-.8-2.6-1.5-4.1-1.8-7.1-1.9-13.9-4.6-20.3-8.1-3.1-1.6-5.9-3.8-8.3-6.3-6.6-6.8-8.3-14.8-5.7-21.8 3.4-9.3 11.6-12.1 19.4-16.3 14.8-8 26.3-18.1 34.4-29.9 2.3-3.3 4.3-6.9 6-10.6 .8-2.2 .8-3.3 .2-4.4-.6-.9-1.3-1.6-2.2-2.2-2.5-1.7-5.1-3.4-6.9-4.5-3.3-2.1-5.9-3.8-7.5-5-6.3-4.4-10.6-9-13.4-14.2-1.9-3.6-3-7.6-3.3-11.6s.4-8.1 1.9-11.9c4.1-10.9 14.5-17.7 27-17.7 2.6 0 5.3 .3 7.8 .8 .7 .2 1.4 .3 2 .5-.1-7.4 .1-15.4 .7-23.1 2.4-27.3 11.9-41.6 21.9-53 6.4-7.2 13.9-13.2 22.3-17.9 15.1-8.6 32.2-13 50.9-13s35.8 4.4 50.9 13c8.3 4.7 15.9 10.8 22.2 17.9 10 11.4 19.5 25.7 21.9 53 .6 7.7 .9 15.4 .7 23.1 .7-.2 1.4-.3 2.1-.5 2.6-.6 5.2-.8 7.8-.8 12.5 0 22.8 6.8 27 17.7 1.5 3.8 2.1 7.9 1.9 11.9s-1.4 8-3.3 11.6c-2.7 5.2-7.1 9.9-13.4 14.2-1.7 1.2-4.3 2.9-7.5 5-1.8 1.2-4.5 2.9-7.2 4.7-.8 .5-1.4 1.2-1.9 2-.5 1-.5 2.2 .2 4.2 1.7 3.8 3.7 7.4 6.1 10.8 8.3 12.1 20.2 22.3 35.5 30.4 1.5 .8 3 1.5 4.4 2.3 .7 .3 1.6 .8 2.5 1.3 4.9 2.7 9.2 6 11.5 12.2 2.5 6.9 1 14.7-5.2 21.3zm-16.7-18.5c-50.3-24.3-58.3-61.9-58.7-64.7-.4-3.4-.9-6 2.8-9.5 3.6-3.3 19.5-13.2 24-16.3 7.3-5.1 10.5-10.2 8.2-16.5-1.7-4.3-5.7-6-10-6-1.3 0-2.7 .2-4 .4-8 1.7-15.8 5.8-20.4 6.9-.5 .1-1.1 .2-1.7 .2-2.4 0-3.3-1.1-3.1-4 .6-8.8 1.8-25.9 .4-41.9-1.9-22-9-32.9-17.4-42.6-4.1-4.6-23.1-24.7-59.5-24.7s-55.4 20.1-59.5 24.8c-8.4 9.7-15.5 20.6-17.4 42.6-1.4 16-.1 33.1 .4 41.9 .2 2.8-.7 4-3.1 4-.6 0-1.1-.1-1.7-.2-4.5-1.1-12.3-5.1-20.3-6.9-1.3-.3-2.6-.4-4-.4-4.3 0-8.3 1.6-10 6-2.4 6.3 .8 11.4 8.2 16.5 4.4 3.1 20.4 13 24 16.3 3.7 3.4 3.2 6.1 2.8 9.5-.4 2.8-8.4 40.4-58.7 64.7-2.9 1.4-8 4.4 .9 9.3 13.9 7.6 23.1 6.8 30.3 11.4 6.1 3.9 2.5 12.4 6.9 15.4 5.5 3.8 21.6-.3 42.3 6.6 17.4 5.7 28.1 22 59 22s41.8-16.3 58.9-22c20.8-6.9 36.9-2.8 42.3-6.6 4.4-3.1 .8-11.5 6.9-15.4 7.2-4.6 16.4-3.8 30.3-11.5 8.8-4.9 3.8-7.9 .9-9.4z\"],\n \"themeisle\": [512, 512, [], \"f2b2\", \"M208 88.3c0-10 6.3-21.7 17.7-21.7 11.1 0 17.7 11.7 17.7 21.7 0 10.3-6.6 21.7-17.7 21.7-11.4 0-17.7-11.4-17.7-21.7zm304 160c0 36-11.4 102.3-36.3 129.7-22.9 24.9-87.4 61.1-120.9 70.6l-1.1 .3 0 32.6c0 16.3-12.6 30.6-29.1 30.6-10 0-19.4-5.7-24.6-14.3-5.4 8.6-14.9 14.3-24.9 14.3s-19.4-5.7-24.9-14.3c-5.1 8.6-14.6 14.3-24.6 14.3-10.3 0-19.4-5.7-24.9-14.3-5.1 8.6-14.6 14.3-24.6 14.3-18.9 0-29.4-15.7-29.4-32.9-16.3 12.3-35.7 19.4-56.6 19.4-22 0-43.4-8.3-60.3-22.9 10.3-.3 20.6-2.3 30.3-5.7-20.9-5.7-39.4-18.9-52-36.3 21.4 4.6 46.2 1.7 67.1-11.1-22-22-56.6-58.9-68.6-87.4-5.7-13.4-6.9-31.4-6.9-45.7 0-49.7 20.3-160 86.3-160 10.6 0 18.9 4.9 23.1 14.9 3.7-5.4 7.7-10.5 12-15.4 2-2.6 5.7-5.4 7.1-8.3 8-12.6 11.7-21.1 21.7-34 32.3-41.1 81.7-69.4 134.9-69.4 6 0 12 .3 17.7 1.1 10.9-11.7 26-18.3 41.7-18.3 14.6 0 29.7 6 40 16.3 .9 .9 1.4 2.3 1.4 3.4 0 3.7-10.3 13.4-12.9 16.3 4.3 1.4 15.7 6.9 15.7 12 0 2.9-2.9 5.1-4.6 7.1 31.4 27.7 49.4 67.1 56.3 108 4.3-5.1 10.3-8.6 17.1-8.6 10.6 0 20.9 7.1 28.6 14 20.9 18.6 25.7 53.1 25.7 79.7zM188 89.4c0 18.3 12.6 37.1 32.3 37.1s32.3-18.9 32.3-37.1c0-18-12.6-36.9-32.3-36.9S188 71.4 188 89.4zM237.7 194c0-19.7 3.7-39.1 8.6-58.3-52 79.5-13.5 184.6 68.9 184.6 21.4 0 42.6-7.7 60-20 2-7.4 3.7-14.9 3.7-22.6 0-14.3-6.3-21.4-20.6-21.4-4.6 0-9.1 .9-13.4 1.7-63.3 12.7-107.1 3.7-107.1-64zM196.6 448.9c0-11.1-8.9-20.9-20.3-20.9s-20 9.7-20 20.9l0 32.6c0 11.1 8.6 21.1 20 21.1s20.3-9.7 20.3-21.1l0-32.6zm49.1 0c0-11.1-8.6-20.9-20-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20-10 20-21.1l0-32.6zm49.7 0c0-11.1-8.9-20.9-20.3-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20.3-9.7 20.3-21.1l0-32.6zm49.7 0c0-11.1-8.9-20.9-20.3-20.9s-20.3 9.7-20.3 20.9l0 32.6c0 11.1 8.9 21.1 20.3 21.1s20.3-10 20.3-21.1l0-32.6zM421.7 286c-30.9 59.1-90.3 102.6-158.6 102.6-96.6 0-160.6-84.6-160.6-176.6 0-16.9 2-33.4 6-49.7-20 33.7-29.7 72.6-29.7 111.4 0 60.3 24.9 121.7 71.4 160.9 5.1-9.7 14.9-16.3 26-16.3 10 0 19.4 5.7 24.6 14.3 5.4-8.6 14.6-14.3 24.9-14.3 10 0 19.4 5.7 24.6 14.3 5.4-8.6 14.9-14.3 24.9-14.3s19.4 5.7 24.9 14.3c5.1-8.6 14.6-14.3 24.6-14.3 10.9 0 20.9 6.6 25.7 16 43.4-36.3 68.6-92 71.4-148.3zm10.6-99.7c0-53.7-34.6-105.7-92.6-105.7-30.3 0-58.6 15.1-78.9 36.9-20 66.4-27.4 136.6 41.4 136.6 28.8 0 97.4-28.5 84.3 36.9 28.9-26 45.7-65.7 45.7-104.6z\"],\n \"dart-lang\": [512, 512, [], \"e693\", \"M378.6 78.9c-2.8-.1-5.6-.2-8.5-.2l-264.1 0 143.2-72c7.4-4.4 18.8-6.7 30.4-6.7 13.5 0 29.4 9.2 37 16.8l62 62 0 .1zM107.3 96.5l262.8 0c16 0 25.4 1.4 35.4 9.3l106.5 106.4 0 208.8-79.3 .7-325.4-325.2zM96.5 373l0-262.2 323.8 323.8 .7 77.4-212.2 0-98.1-98.2C99.4 402.5 96.5 398.5 96.5 373zM78.7 105.3l0 267.7c0 3.3 .1 6.3 .2 9.1l-62-62C6.5 309.3 0 294.3 0 279.6 0 272.8 3.9 262.1 6.7 256l72-150.7z\"],\n \"deploydog\": [512, 512, [], \"f38e\", \"M382.2 136l51.7 0 0 239.6-51.7 0 0-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9l0-103.9zM317.5 297.8a33.2 33.2 0 1 0 66.4 1 33.2 33.2 0 1 0 -66.4-1zM188.5 136l51.7 0 0 239.6-51.7 0 0-20.7c-19.8 24.8-52.8 24.1-73.8 14.7-26.2-11.7-44.3-38.1-44.3-71.8 0-29.8 14.8-57.9 43.3-70.8 20.2-9.1 52.7-10.6 74.8 12.9l0-103.9zM123.8 297.8a33.2 33.2 0 1 0 66.4 1 33.2 33.2 0 1 0 -66.4-1zM448 96c17.5 0 32 14.4 32 32l0 256c0 17.5-14.4 32-32 32L64 416c-17.5 0-32-14.4-32-32l0-256c0-17.5 14.4-32 32-32l384 0zm0-32L64 64C28.8 64 0 92.8 0 128L0 384c0 35.2 28.8 64 64 64l384 0c35.2 0 64-28.8 64-64l0-256c0-35.2-28.8-64-64-64z\"],\n \"flipboard\": [448, 512, [], \"f44d\", \"M0 32l0 448 448 0 0-448-448 0zM358.4 211.2l-89.6 0 0 89.6-89.6 0 0 89.6-89.6 0 0-268.8 268.8 0 0 89.6z\"],\n \"buy-n-large\": [576, 512, [], \"f8a6\", \"M288.2 32C133.5 32 8 132.3 8 256S133.5 480 288.2 480 568.4 379.7 568.4 256 442.9 32 288.2 32zM202.8 389.2l-138.5 1.4 77.2-290.7 133.4 0c63.2 0 84.9 28.6 78 72.8-.4 2.3-.9 4.6-1.5 6.9-5.6-1.3-11.4-1.9-17.2-1.9-42.3 0-76.7 33.9-76.7 75.7 0 37.1 27.1 68 62.9 74.5-18.2 37.2-56.2 60.9-117.7 61.5zM358.2 207.1l32 0-22.2 90.3-35.4 0-11.2-35.6-7.8 35.6-37.8 0 26.6-90.3 31.3 0 15 36.8 9.4-36.8zM504.1 389.2l-197.1 0 15.8-61.2c3.8 .6 7.6 .8 11.5 .8 42.3 0 76.7-33.9 76.7-75.6 0-32.6-21-60.5-50.4-71.1l21.3-82.4 92.5 0-53 205.4 103.9 0-21.2 84.1zM211.9 269.4l-24.7 0-13.8 56.5 24.7 0c16.1 0 32.1-3.2 37.9-26.6 5.6-22.3-8-29.8-24.1-29.8zM233.2 170l-21.3 0-11.7 47.7 21.4 0c18 0 35.4-14.6 39.2-30.1 4.6-18.9-9.5-17.6-27.6-17.6z\"],\n \"watchman-monitoring\": [512, 512, [], \"e087\", \"M256 16a240 240 0 1 0 0 480 240 240 0 1 0 0-480zM121.7 429.1c-51.6-40.2-84.9-102.8-84.9-173.1 0-21.7 3.2-43.3 9.6-64.1l102.9-17.9-.1 11-13.9 2s-.1 12.5-.1 19.5c0 2 .4 4 1.2 5.8s2.1 3.4 3.7 4.6l9.5 7.4-27.7 204.9zM227.4 145.9l8.5-7.6s6.9-5.4-.1-9.3c-7.2-4-39.5-34.5-39.5-34.5-5.3-5.5-8.3-7.3-15.5 0 0 0-32.3 30.5-39.5 34.5-7.1 4-.1 9.3-.1 9.3l8.5 7.6 0 4.4-73.5-19.2c39.6-56.9 105.5-94.3 180-94.3 31.3 0 62.2 6.7 90.6 19.6s53.8 31.8 74.3 55.4l-193.5 37.7 0-3.6zm34.1 329.3l-33.9-250.9 9.5-7.4c1.6-1.2 2.8-2.8 3.7-4.6s1.3-3.8 1.2-5.8c0-7-.1-19.5-.1-19.5l-13.9-2-.1-10.5 241.7 31.4c3.9 16.4 5.8 33.3 5.8 50.1 0 119.1-95.4 216.2-213.8 219.1z\"],\n \"hips\": [640, 512, [], \"f452\", \"M251.6 157.6c0-1.9-.9-2.8-2.8-2.8l-40.9 0c-1.6 0-2.7 1.4-2.7 2.8l0 201.8c0 1.4 1.1 2.8 2.7 2.8l40.9 0c1.9 0 2.8-.9 2.8-2.8l0-201.8zM156.5 168c-16.1-11.8-36.3-17.9-60.3-18-18.1-.1-34.6 3.7-49.8 11.4l0-81.2c0-1.8-.9-2.7-2.8-2.7l-40.9 0C.9 77.5 0 78.4 0 80.2L0 359.4c0 1.9 .9 2.8 2.7 2.8l41 0c1.9 0 2.8-.9 2.8-2.8l0-136.1c0-.8-2.8-27 45.8-27 48.5 0 45.8 26.1 45.8 27l0 122.6c0 9 7.3 16.3 16.4 16.3l27.3 0c1.8 0 2.7-.9 2.7-2.8l0-136.1c0-23.4-9.3-41.8-28-55.3zM634.9 278.1c-6.8-15.7-18.4-27-34.9-34.1l-57.6-25.3c-8.6-3.6-9.2-11.2-2.6-16.1 7.4-5.5 44.3-13.9 84 6.8 1.7 1 4-.3 4-2.4l0-44.7c0-1.3-.6-2.1-1.9-2.6-17.7-6.6-36.1-9.9-55.1-9.9-26.5 0-45.3 5.8-58.5 15.4-.5 .4-28.4 20-22.7 53.7 3.4 19.6 15.8 34.2 37.2 43.6L580.4 286c11.6 5.1 15.2 13.3 12.2 21.2-3.7 9.1-13.2 13.6-36.5 13.6-24.3 0-44.7-8.9-58.4-19.1-2.1-1.4-4.4 .2-4.4 2.3l0 34.4c0 10.4 4.9 17.3 14.6 20.7 15.6 5.5 31.6 8.2 48.2 8.2 12.7 0 25.8-1.2 36.3-4.3 .7-.3 36-8.9 45.6-45.8 3.5-13.5 2.4-26.5-3.1-39.1zM376.2 149.8c-31.7 0-104.2 20.1-104.2 103.5l0 183.5c0 .8 .6 2.7 2.7 2.7l40.9 0c1.9 0 2.8-.9 2.8-2.7l0-88.8c16.5 12.7 35.8 19.1 57.7 19.1 60.5 0 108.7-48.5 108.7-108.7 .1-60.3-48.2-108.6-108.6-108.6zm0 46.6a62.2 62.2 0 1 1 0 124.3 62.2 62.2 0 1 1 0-124.3zM228.3 72.5c-15.9 0-28.8 12.9-28.9 28.9 0 15.6 12.7 28.9 28.9 28.9s28.9-13.1 28.9-28.9c0-16.2-13-28.9-28.9-28.9z\"],\n \"cloudversify\": [640, 512, [], \"f385\", \"M160.6 304c8.2 68.5 67.4 115.5 146 111.3 51.2 43.3 136.8 45.8 186.4-5.6 69.2 1.1 118.5-44.6 131.5-99.5 14.8-62.5-18.2-132.5-92.1-155.1-33-88.1-131.4-101.5-186.5-85-57.3 17.3-84.3 53.2-99.3 109.7-7.8 2.7-26.5 8.9-45 24.1 11.7 0 15.2 8.9 15.2 19.5l0 20.4c0 10.7-8.7 19.5-19.5 19.5l-20.2 0c-10.7 0-19.5-6-19.5-16.7l0-6.6-46.8 0c-3.8 0-10.8 4.3-10.8 11.9l0 40.4c0 6.4 5.3 11.8 11.7 11.8l48.9 0 0-.1zM388 312c-10.7 46.3 21.7 72.4 55.3 86.8-107.2 33.8-171.6-50.8-135.3-110.8-33.2 21.6-33.7 71.2-29.2 92.9-17.9-12.4-53.8-32.4-57.4-79.8-3-39.9 21.5-75.7 57-93.9 30.6-15.8 103.5-8.5 133.6 40.8-14.1-48-53.8-70.1-101.8-74.8 30.9-30.7 64.4-50.3 114.2-43.7 69.8 9.3 133.2 82.8 67.7 150.5 35-16.3 48.7-54.4 47.5-76.9l10.5 19.6c11.8 22 15.2 47.6 9.4 72-9.2 39-40.6 68.8-79.7 76.5-32.1 6.3-83.1-5.1-91.8-59.2zM140 208l-39.8 0c-8.9 0-16.2-7.3-16.2-16.2l0-39.6c0-8.9 7.3-16.2 16.2-16.2l39.8 0c8.9 0 16.2 7.3 16.2 16.2l0 39.6c0 8.9-7.3 16.2-16.2 16.2zM22.1 168c-5.6 0-10.1-4.5-10.1-10.1l0-27.8c0-5.6 4.5-10.1 10.1-10.1l27.7 0c5.5 0 10.1 4.5 10.1 10.1l0 27.8c0 5.6-4.5 10.1-10.1 10.1l-27.7 0zM180 142.7l0-21.4c0-5.1 4.2-9.3 9.3-9.3l21.4 0c5.1 0 9.3 4.2 9.3 9.3l0 21.4c0 5.1-4.2 9.3-9.3 9.3l-21.4 0c-5.1 0-9.3-4.2-9.3-9.3zM68 235.5l0 25c0 6.3-5.1 11.5-11.4 11.5l-25.2 0c-6.3 0-11.4-5.2-11.4-11.5l0-25c0-6.3 5.1-11.5 11.4-11.5l25.1 0c6.4 0 11.5 5.2 11.5 11.5z\"],\n \"goodreads\": [448, 512, [], \"f3a8\", \"M299.9 191.2c5.1 37.3-4.7 79-35.9 100.7-22.3 15.5-52.8 14.1-70.8 5.7-37.1-17.3-49.5-58.6-46.8-97.2 4.3-60.9 40.9-87.9 75.3-87.5 46.9-.2 71.8 31.8 78.2 78.3zM448 88l0 336c0 30.9-25.1 56-56 56L56 480c-30.9 0-56-25.1-56-56L0 88C0 57.1 25.1 32 56 32l336 0c30.9 0 56 25.1 56 56zM330 313.2s-.1-34-.1-217.3l-29 0 0 40.3c-.8 .3-1.2-.5-1.6-1.2-9.6-20.7-35.9-46.3-76-46-51.9 .4-87.2 31.2-100.6 77.8-4.3 14.9-5.8 30.1-5.5 45.6 1.7 77.9 45.1 117.8 112.4 115.2 28.9-1.1 54.5-17 69-45.2 .5-1 1.1-1.9 1.7-2.9 .2 .1 .4 .1 .6 .2 .3 3.8 .2 30.7 .1 34.5-.2 14.8-2 29.5-7.2 43.5-7.8 21-22.3 34.7-44.5 39.5-17.8 3.9-35.6 3.8-53.2-1.2-21.5-6.1-36.5-19-41.1-41.8-.3-1.6-1.3-1.3-2.3-1.3l-26.8 0c.8 10.6 3.2 20.3 8.5 29.2 24.2 40.5 82.7 48.5 128.2 37.4 49.9-12.3 67.3-54.9 67.4-106.3z\"],\n \"tidal\": [640, 512, [], \"e7dc\", \"M107.2 48l-1.3 0c-32.3 33.1-65.4 65.5-98 98.5-2.6 2.8-6.1 5.1-7.9 8.6 35.6 35.4 71 71 106.6 106.4 35.4-35.3 70.7-70.8 106.1-106.1l0-1.3-73.2-73.2C128.8 69.8 117.3 59.6 107.2 48zm213.5 0l-1.3 0c-34.9 36.1-71.5 71-106.3 107.2 35.9 35.1 71 71 106.7 106.3 34.3-34.1 68.4-68.4 102.6-102.4 1.5-1.5 3.3-2.8 4.1-4.8-34.6-33.8-68.4-68.2-102.6-102.1-1.3-1.3-2.3-2.6-3.3-4.1zm213.5 0l-1.3 0c-17.2 18-35.1 35.3-52.6 53-17.9 17.7-35.4 35.7-53.5 53.3 .8 2.3 3 3.6 4.6 5.5L533.3 261.5c36.1-34.9 70.8-71.2 106.7-106.1-.5-2.2-2.6-3.5-4-5L555.8 70.2c-7.1-7.4-14.9-14.2-21.5-22.2zM319.6 261.7c-34.9 35.1-70 70-104.9 104.9-.3 .7-.7 1.7-1 2.3 24 23.7 47.7 47.5 71.5 71.3 11.8 11.3 22.8 23.5 34.9 34.4 8.4-7.4 16.4-16.4 24.7-24.3 25.5-25.3 51-51 76.5-76.3 1.8-2.2 4.3-3.6 5.5-6.3-35.4-34.9-70.5-70.2-105.6-105.4l-1.5-.7z\"],\n \"unity\": [448, 512, [], \"e049\", \"M243.6 91.6l80.1 46.8c2.9 1.6 3 6.2 0 7.8l-95.2 55.6c-2.9 1.7-6.3 1.6-9 0l-95.2-55.6c-2.9-1.6-3-6.3 0-7.8l80.1-46.8 0-91.6-204.4 119.4 0 238.8 78.4-45.8 0-93.6c-.1-3.3 3.8-5.7 6.7-3.9l95.2 55.6c2.9 1.7 4.5 4.7 4.5 7.8l0 111.2c.1 3.3-3.8 5.7-6.7 3.9L98 346.8 19.6 392.6 224 512 428.4 392.6 350 346.8 269.9 393.6c-2.8 1.7-6.8-.5-6.7-3.9l0-111.2c0-3.3 1.8-6.3 4.5-7.8L362.9 215c2.8-1.7 6.8 .5 6.7 3.9l0 93.6 78.4 45.8 0-238.8-204.4-119.4 0 91.6z\"],\n \"tencent-weibo\": [320, 512, [], \"f1d5\", \"M40.5 495.8c1.4 19.9-27.6 22.2-29.7 2.9-11.6-129.9 31.1-239.5 101.4-313.2-15.6-34 9.2-77.1 50.6-77.1 30.3 0 55.1 24.6 55.1 55.1 0 44-49.5 70.8-86.9 45.1-65.7 71.3-101.4 169.8-90.5 287.2zM160.2 .1c-125.9 0-204.3 134.2-148.3 242.3 8.7 17.4 35.3 4.5 26.3-13.4-46.3-92.6 21-199.2 122-199.2 75.4 0 136.9 61.4 136.9 136.9 0 90.8-86.9 153.9-167.7 133.1-19.1-4.1-25.6 24.4-6.6 29.1 110.7 23.2 204-60 204-162.3 0-91.9-74.6-166.5-166.6-166.5z\"],\n \"free-code-camp\": [576, 512, [], \"f2c5\", \"M97.4 96.2c10.4-10.6 16-17.1 16-21.9 0-2.8-1.9-5.5-3.8-7.4-2.4-1.8-5.4-2.8-8.4-2.8-8.5 0-20.9 8.8-35.8 25.7-41.5 47.3-62.7 93.1-61.8 160.6S21 367.3 57.6 412.2c18.8 23.6 33.2 35.8 43.5 35.8 3.2-.3 6.1-1.6 8.4-3.8 1.9-2.8 3.8-5.6 3.8-8.4 0-5.6-3.9-12.2-13.2-20.6-44.5-42.3-67.3-97-67.5-165-.2-61.4 21.6-112.4 64.8-154zM239.6 420.1c.6 .4 .9 .6 .9 .6l-.9-.6zm93.8 .6l.2-.1c-.2 .1-.3 .2-.2 .1zm3.1-158.2c-16.2-4.2 50.4-82.9-68.1-177.2 0 0 15.5 49.4-62.8 159.6-74.3 104.4 23.5 168.7 34 175.2-6.7-4.3-47.4-35.7 9.6-128.6 11-18.3 25.5-34.9 43.5-72.2 0 0 15.9 22.4 7.6 71.1-12.5 73.6 53.8 52.5 54.8 53.5 22.8 26.8-17.7 73.5-21.6 76.6 5.5-3.7 117.7-78 33-188.1-6 6-13.8 34.2-30 30.1zM511 89.7c-14.9-16.9-27.4-25.7-35.9-25.7-3 .1-5.9 1.1-8.4 2.8-1.9 1.9-3.8 4.7-3.8 7.4 0 4.8 5.6 11.3 16 21.9 43.2 41.6 65 92.6 64.8 154.1-.2 68-23 122.6-67.5 165-9.3 8.4-13.2 14.9-13.2 20.6 0 2.7 1.9 5.6 3.8 8.4 2.3 2.2 5.2 3.6 8.4 3.8 10.3 0 24.7-12.1 43.5-35.8 36.6-44.9 53.1-94.4 54.1-161.9S552.5 137 511 89.7z\"],\n \"x-twitter\": [448, 512, [], \"e61b\", \"M357.2 48L427.8 48 273.6 224.2 455 464 313 464 201.7 318.6 74.5 464 3.8 464 168.7 275.5-5.2 48 140.4 48 240.9 180.9 357.2 48zM332.4 421.8l39.1 0-252.4-333.8-42 0 255.3 333.8z\"],\n \"sticker-mule\": [576, 512, [], \"f3f7\", \"M561.7 199.6l0 0zm-6.2-77.4c-7.7-22.3-5.1-7.2-13.4-36.9-1.6-6.5-3.6-14.5-6.2-20-4.4-8.7-4.6-7.5-4.6-9.5 0-5.3 30.7-45.3 19-46.9-5.7-.6-12.2 11.6-20.6 17-8.6 4.2-8 5-10.3 5-2.6 0-5.7-3-6.2-5-2-5.7 1.9-25.9-3.6-25.9-3.6 0-12.3 24.8-17 25.8-5.2 1.3-27.9-11.4-75.1 18-25.3 13.2-86.9 65.2-87 65.3-6.7 4.7-20 4.7-35.5 16-44.4 30.1-109.6 9.4-110.7 9-110.6-26.8-128-15.2-159 11.5-20.8 17.9-23.7 36.5-24.2 38.9-4.2 20.4 5.2 48.3 6.7 64.3 1.8 19.3-2.7 17.7 7.7 98.3 .5 1 4.1 0 5.1 1.5 0 8.4-3.8 12.1-4.1 13-1.5 4.5-1.5 10.5 0 16 2.3 8.2 8.2 37.2 8.2 46.9 0 41.8 .4 44 2.6 49.4 3.9 10 12.5 9.1 17 12 3.1 3.5-.5 8.5 1 12.5 .5 2 3.6 4 6.2 5 9.2 3.6 27 .3 29.9-2.5 1.6-1.5 .5-4.5 3.1-5 5.1 0 10.8-.5 14.4-2.5 5.1-2.5 4.1-6 1.5-10.5-.4-.8-7-13.3-9.8-16-2.1-2-5.1-3-7.2-4.5-5.8-4.9-10.3-19.4-10.3-19.5-4.6-19.4-10.3-46.3-4.1-66.8 4.6-17.2 39.5-87.7 39.6-87.8 4.1-6.5 17-11.5 27.3-7 6 1.9 19.3 22 65.4 30.9 47.9 8.7 97.4-2 112.2-2 2.8 2-1.9 13-.5 38.9 0 26.4-.4 13.7-4.1 29.9-2.2 9.7 3.4 23.2-1.5 46.9-1.4 9.8-9.9 32.7-8.2 43.4 .5 1 1 2 1.5 3.5 .5 4.5 1.5 8.5 4.6 10 7.3 3.6 12-3.5 9.8 11.5-.7 3.1-2.6 12 1.5 15 4.4 3.7 30.6 3.4 36.5 .5 2.6-1.5 1.6-4.5 6.4-7.4 1.9-.9 11.3-.4 11.3-6.5 .3-1.8-9.2-19.9-9.3-20-2.6-3.5-9.2-4.5-11.3-8-6.9-10.1-1.7-52.6 .5-59.4 3-11 5.6-22.4 8.7-32.4 11-42.5 10.3-50.6 16.5-68.3 .8-1.8 6.4-23.1 10.3-29.9 9.3-17 21.7-32.4 33.5-47.4 18-22.9 34-46.9 52-69.8 6.1-7 8.2-13.7 18-8 10.8 5.7 21.6 7 31.9 17 14.6 12.8 10.2 18.2 11.8 22.9 1.5 5 7.7 10.5 14.9 9.5 10.4-2 13-2.5 13.4-2.5 2.6-.5 5.7-5 7.2-8 3.1-5.5 7.2-9 7.2-16.5 0-7.7-.4-2.8-20.6-52.9z\"],\n \"twitch\": [448, 512, [], \"f1e8\", \"M359.4 103.5l-38.6 0 0 109.7 38.6 0 0-109.7zM253.2 103l-38.6 0 0 109.8 38.6 0 0-109.8zM89 0l-96.5 91.4 0 329.2 115.8 0 0 91.4 96.5-91.4 77.3 0 173.8-164.6 0-256-366.9 0zM417.3 237.8l-77.2 73.1-77.2 0-67.6 64 0-64-86.9 0 0-274.3 308.9 0 0 201.2z\"],\n \"kickstarter-k\": [448, 512, [], \"f3bc\", \"M356.7 256.2l40.8-40.5c42.2-41.9 42.2-110.3 0-152.1s-111-41.9-153.2 0L229.3 78.4C209.6 50.3 177.1 32 140.2 32 80.5 32 32 80.2 32 139.5l0 233c0 59.4 48.5 107.5 108.2 107.5 37.1 0 69.3-18.3 89-46.4l14.9 14.7c42.2 41.9 111 41.9 153.2 0s42.2-110.3 0-152.1l-40.8-40 .1 0z\"],\n \"critical-role\": [448, 512, [], \"f6c9\", \"M225.8 0c.3 .2 216.6 124.5 217.1 124.7 3 1.2 3.7 3.5 3.7 6.6-.1 83.4-.1 166.9 0 250.4 .1 1.2-.2 2.4-.8 3.4s-1.5 1.9-2.6 2.4c-21.4 12-207.9 118.3-218.9 124.6l-3 0c-79.3-45.7-218.3-125.4-218.4-125.5-.6-.3-1.1-.7-1.4-1.3s-.5-1.2-.4-1.9c0-.9 0-225.9-.1-253.1-.1-1 .2-2 .7-2.9s1.3-1.6 2.2-2C27.2 112.1 213.2 6 224.1 0l1.8 0zM215.4 20.4l-.2-.2c-64.7 36.9-129.5 73.7-194.2 110.6 0 .1 .1 .2 .1 .4L52 142.9c-7.7 6-8.3 6-10.6 5.1-.1 0-24.2-9.3-26.8-10l0 230.4c.9-1.4 64.1-110.9 64.1-111 1.6-2.8 3-1.9 9.1-1.5 1.4 .1 1.5 .2 .8 1.4-41.2 71.3-36.4 63-67.5 116.9-.8 1.4-.6 1.1 1.2 1.1l186.5 0c1.4 0 1.7-.2 1.7-1.6l0-8.9c0-1.3 2.4-.8-18.4-1-7.5-.1-14.1-3.2-21.4-12.7-7.4-9.7-14.6-19.4-21.8-29.2-2.3-3.1-3.4-2.4-16.8-2.4-1.8 0-1.8 0-1.8 1.8 .3 26.2 .2 25.3 1 32.7 .5 4.4 2.2 4.2 9.7 4.8 3.1 .3 3.9 4.1 .5 4.9-1.6 .4-31.6 .5-33.7-.1-.5-.1-1-.5-1.3-.9s-.5-1-.4-1.6 .3-1.1 .6-1.5 .9-.7 1.4-.8c3.3-.8 6.2 .8 6.7-4.4 1.3-13.7 1.2-9 1.1-79.4 0-10.8-.4-12.6-5.4-13.6-1.2-.2-3.5-.2-4.7-.6-2.9-1-2-4.8 1.8-4.8 33.7 0 46.1-1.1 56.1 4.9 7.7 4.6 12 11.5 12.5 20.4 .9 14.6-6.5 22.3-15 32.6-.2 .1-.3 .3-.4 .5s-.1 .4-.1 .6 0 .4 .1 .6 .2 .4 .4 .5c2.6 3.2 5 6.6 7.7 9.8 27.6 33.2 24.1 30.5 41.3 33.1 .9 .1 1-.4 1-1.2l0-11c0-1 .3-1.4 1.4-1.3 7.8 1.2 15.8 1.1 23.6-.3 1.1-.1 1.5 .2 1.5 1.3 0 .1 .9 26.7 .9 26.8 0 1.5 .7 1.6 1.9 1.6l186.7 0c-27.2-47-54.2-94-81.2-140.8 2.3-.7-.4 0 6.7-1.4 2-.4 2.1-.4 3.1 1.4 7.3 12.6 77.3 134 77.4 134.1l0-230.4c-1.7 .5-103.3 38.7-105.8 39.7-1.1 .4-1.5 .2-1.9-.9-.6-1.9-1.3-3.8-2.1-5.6-.3-.8-.1-1.1 .6-1.4 .1 0 95.5-35.8 103-38.8-65.4-37.6-130.6-75-196-112.6l86.8 150.4-.3 .3c-9.6-.9-10.5-1.6-11.8-3.9-1-1.7-73.5-127.7-82-142.2-9.1 14.7-83.6 146.2-85.4 146.3-2.9 .2-5.9 .1-9.2 .1 28.8-49.8 57.6-99.5 86.2-149l0 0zm51.9 129.9c1.9-.1 3.7-.4 5.5-.8 1.7-.3 2.5 .2 2.6 1.9 0 .1 .1 19.1-.9 20.5s-1.9 1.2-2.6-.2c-5-9.7 6.2-9.7-39.1-12-.7 0-1 .2-1 .9 0 .1 3.7 122 3.7 122.1 0 .9 .5 1.2 1.2 1.5 3 1.2 5.9 2.5 8.7 4 7.3 4.3 11.4 10.8 12.4 19.3 1.4 11.8-2.8 35.8-32.2 37.1-2.8 .1-28.3 1.1-34.1-23.3-4.7-19.3 8.3-32.7 19.9-36.4 .6-.1 1.2-.4 1.5-.9s.5-1.1 .5-1.7c.1-5.6 3-107.1 3.7-121.3 0-1.1-.6-1.2-1.4-1.1-32.3 .5-36.7-.3-40.2 8.5-2.4 6.2-4.1 1.3-4 .2 1.1-6 2.2-12 3.3-18 .4-2.1 1.4-2.6 3.4-1.9 5.6 2.1 6.7 1.7 37.2 1.9 1.7 0 1.8-.1 1.8-1.8 .7-27.5 .6-22.6 1-29.6 .1-.6-.1-1.2-.3-1.7s-.7-.9-1.3-1.1c-5.6-2.9-8.8-7.6-8.9-13.9-.4-14.8 17.7-21.7 27.4-11.5 6.8 7.2 5.8 18.9-2.5 24.2-.8 .4-1.4 1.1-1.8 1.8s-.6 1.6-.4 2.5c0 .6-.1-4.3 1 30 0 .9 .4 1.1 1.2 1.1 .1 0 23-.1 34.5-.4l0-.1zM68.3 141.7c19.8-4.5 32.7-.6 52.5 1.7 2.8 .3 3.7 1.2 3.6 4-.2 5-1.2 22.3-1.2 23.1 0 .5-.2 1-.5 1.4s-.7 .7-1.2 .9c-4.1 1.7-3.6-4.4-4-7.3-3.1-22.4-73.9-32.7-74.6 25.4-.3 23.9 17 53.6 54.1 50.9 27.2-2 19-20.2 24.8-20.5 .4-.1 .9 0 1.3 .1s.8 .4 1.1 .7 .5 .7 .6 1.2 .1 .9 0 1.3c-1.8 10.8-3.4 19-3.4 19.2-1.5 9.2-86.7 22.1-93.4-42.1-2.7-25.8 10.4-53.4 40.3-60.2zm80 87.7l-19.5 0c-.6 0-1.2-.1-1.6-.4s-.8-.8-1-1.4c2.4-3.8 5.9 .9 5.9-6.1-.1-25.8 .2-38 .2-40.1 0-3.4-.5-4.6-3.3-4.9-7-.7-3.1-3.4-1.1-3.4 11.8-.1 22.6-.2 30 .7 8.8 1.1 16.7 12.6 7.9 22.6-2 2.2-4 4.4-6.1 6.7 1 1.2 6.9 8.8 17.3 19.7 2.7 2.8 6.2 3.5 9.9 3.1 .6 0 1.1-.2 1.5-.6s.7-.9 .7-1.5c.3-3.4 .3 4.7 .4-40.6 0-5.6-.3-6.6-3.2-6.8-4-.4-4-2.3-.7-3.4l19.1-.1c.3 0 4.5 .5 1 3.4 0 0-.2 0-.2 0-3.6 .3-3.9 1-4 4.6-.3 43.9 .1 40.2 .4 42.8 .1 .8 .3 2.2 5.1 2.1 2.5 0 3.9 3.4 0 3.4-10.4 .1-20.7 0-31.1 .1-10.7 0-13.5-6.2-24.2-20.8-1.6-2.2-8.3-2.4-8.2-.4 .9 16.5 0 17.8 4 17.7 4.8-.1 4.7 3.6 .8 3.5l.1 0zm275-10.1c-1.2 7.1 .2 10.4-5.3 10.3-61.5-.4-47.8-.2-50.7-.3-1.2-.1-2.4-.4-3.6-.7-2.5-.6 1.5-1.2-.4-5.6-1.4-3.4-2.8-6.8-4.1-10.2-.1-.4-.4-.8-.7-1.1s-.8-.4-1.3-.4c-4.9-.2-9.7-.2-14.6 .1-.3 0-.6 .2-.9 .3s-.5 .4-.7 .7c-1.6 3.6-3.1 7.3-4.5 11-1.3 3.2 7.9 1.3 12.2 2.2 3 .6 4.5 3.7 .7 3.7l-26.4 0c-2.9 0-3.1-3.2-.7-3.2 1.2 .1 2.4-.2 3.5-.9s1.9-1.5 2.4-2.6c1.5-3 2.8-6 4.1-9.1 18.2-42.1 17.1-40.2 18.4-41.6 .2-.2 .4-.4 .7-.6s.6-.2 .8-.2 .6 .1 .8 .2 .5 .3 .7 .6c2.9 3.3 18.4 44.7 23.6 51.9 2 2.7 5.7 2 6.4 2 3.6 .1 4-1.1 4.1-4.3 .1-1.9 .1 1.2 .1-41.2 0-4.5-2.4-3.7-5.6-4.3-.3 0-2.6-.6-.1-3.1 .2-.2-.9-.2 21.7-.2 2.3 0 5.3 2.8-1.2 3.4-.4 0-.7 0-1.1 .2s-.6 .3-.9 .6-.4 .6-.6 .9-.2 .7-.1 1.1c-.1 1.6-.2 38.9 .3 41.2 .2 .7 .6 1.4 1.2 1.8s1.3 .7 2.1 .6c13.3 .4 14.9 .4 16-3.4 1.7-5.8 4.1-2.5 3.7-.2l0 .1zM318.6 283.6c-4.2 0-4.4-3.4-.6-3.4 35.9-.2 28.1 .4 37.2-.6 1.7-.2 2.4 .2 2.3 1.9-.3 3.4-.6 6.8-1 10.2-.2 2.2-3.2 2.6-3.4-.2-.4-5.3-2.2-4.5-15.6-5.1-1.6-.1-1.6 0-1.6 1.5l0 16.1c0 1.7 0 1.6 1.6 1.5 3.1-.2 10.3 .3 15.7-1.5 .5-.2 3.3-1.8 3.1 1.8 0 .2-.8 10.4-1.2 11.4-.5 1.3-1.9 1.5-2.6 .3-1.2-2 0-5.1-3.7-5.3-15.4-.9-12.9-2.5-12.9 6 0 12.3-.8 16.1 3.9 16.2 16.6 .5 14.4 0 16.4-5.7 .8-2.4 3.5-1.8 3.2 .6-.4 3.2-.8 6.4-1.2 9.6 0 .4-.2 2.4-4.7 2.4-37.2-.1-34.5-.2-35.2-.3-2.7-.5-2.2-3 .2-3.4 1.1-.2 4 .5 4.2-2.6 2.4-56.2-.1-51.3-3.9-51.3l0 0zm-.4-109.5c2.5 .6 3.1 1.8 3 4.6-.3 5.3-.3 9-.6 9.7-.7 2.2-3.1 2.1-3.3-.3-.4-4.8-3-7.8-7.6-9.1-26.3-7.7-32.8 15.5-27.2 30.2 5.9 15.4 22 15.9 28.9 13.8 5.9-1.9 5.9-6.5 6.9-7.6 1.2-1.3 2.2-1.8 3.1 1.1 0 .1 .6 11.9-6 12.7-1.6 .2-19.4 3.7-32.7-3.4-21-11.2-16.7-35.5-6.9-45.3 14-14.1 39.9-7.1 42.3-6.5l0 0zM289.8 280.1c3.3 0 3.7 3 .2 3.4-2.6 .3-5-.4-5 5.5 0 2-.2 29 .4 41.4 .1 2.3 1.2 3.5 3.4 3.7 22 1.2 15-1.7 18.8-6.3 1.8-2.2 2.8 .8 2.8 1.1 .3 13.6-4 12.4-5.2 12.4l-38.2-.2c-1.9-.2-2.1-3-.4-3.4 2-.5 4.9 .4 5.1-2.8 1-15.9 .6-44.6 .3-47.8-.3-3.8-2.8-3.3-5.7-3.7-2.5-.4-2-3.2 .3-3.2 1.4 0 18 0 23.1 0zm-31.6-57.8c.1 4.1 2.9 3.5 6 3.6 2.6 .1 2.5 3.4-.1 3.4-6.5 0-13.7 0-21.6-.1-3.8 0-3.4-3.4 0-3.4 4.5 0 3.2 1.6 3.4-45.5 0-5.1-3.3-3.5-4.7-4.2-2.6-1.2-1.4-3.1 .4-3.2 1.3 0 20.2-.4 21.2 .2s1.9 1.6-.4 2.9c-1 .5-3.9-.3-4.2 2.5 0 .2-.8 1.6-.1 43.8l0 0zM221.3 496.6c.5 .3 1 .5 1.6 .5s1.1-.2 1.6-.5c17-9.8 182-103.6 197.4-112.5-.1-.4 11.3-.2-181.5-.3-1.2 0-1.6 .4-1.5 1.6 0 .1 1.3 44.5 1.2 50.4-.1 2.6-.6 5.2-1.4 7.7-.6 1.8 .4-.5-13.5 32.2-.7 1.7-1 2.2-2-.1-4.2-10.3-8.3-20.7-12.6-31-1.5-3.4-2.2-7.1-2-10.8 .2-2.5 .8-16.1 1.5-48 0-1.9 0-2-2-2l-183 0c2.6 1.6 178.3 102.6 196 112.8l.1 0zM130.4 307.9c0 2.4 .4 2.8 2.8 3 11.5 1.2 21 3.7 25.6-7.3 6-14.5 2.7-34.4-12.5-38.8-2-.6-16-2.8-15.9 1.5 0 8 0 11.6 0 41.6zm105.8-15c0 2.1 1.1 38.7 1.1 39.1 .3 9.9-25.6 5.8-25.2-2.6 .1-2 1.4-37.4 1.1-39.4-14.1 7.4-14.4 40.2 6.4 48.8 4 1.7 8.4 1.9 12.5 .6s7.6-4 9.9-7.7c4.9-7.8 6.8-29.5-5.4-39-.1 .1-.2 .1-.4 .1l0 0zm-12.3-198c-9.8 0-9.7 14.8-.1 14.9s10.1-14.9 .1-14.9l0 0zM143.7 198.6c0 1.8 .4 2.4 2.2 2.6 13.6 1.4 12.5-11 12.2-13.4-1.7-11.2-14.4-10.2-14.4-7.8 0 4.5 0 13.7 0 18.6zM356 205l-6.1-15.8c-2.2 5.5-4.2 10.6-6.2 15.8l12.3 0z\"],\n \"steam-symbol\": [448, 512, [], \"f3f6\", \"M273.5 177.5a61 61 0 1 1 122 0 61 61 0 1 1 -122 0zm174.5 .2c0 63-51 113.8-113.7 113.8L225 371.3c-4 43-40.5 76.8-84.5 76.8-40.5 0-74.7-28.8-83-67L0 358 0 250.7 97.2 290c15.1-9.2 32.2-13.3 52-11.5l71-101.7C220.7 114.5 271.7 64 334.2 64 397 64 448 115 448 177.7zM203 363c0-34.7-27.8-62.5-62.5-62.5-4.5 0-9 .5-13.5 1.5l26 10.5c25.5 10.2 38 39 27.7 64.5-10.2 25.5-39.2 38-64.7 27.5-10.2-4-20.5-8.3-30.7-12.2 10.5 19.7 31.2 33.2 55.2 33.2 34.7 0 62.5-27.8 62.5-62.5zM410.5 177.7a76.4 76.4 0 1 0 -152.8 0 76.4 76.4 0 1 0 152.8 0z\"],\n \"mailchimp\": [448, 512, [], \"f59e\", \"M331 243.5c3.1-.4 6.2-.4 9.3 0 1.7-3.8 2-10.4 .5-17.6-2.2-10.7-5.3-17.1-11.5-16.1s-6.5 8.7-4.2 19.4c1.3 6 3.5 11.1 6 14.3l0 0zM277.4 252c4.5 2 7.2 3.3 8.3 2.1 1.9-1.9-3.5-9.4-12.1-13.1-5-2.1-10.4-2.8-15.8-2.2s-10.5 2.7-14.8 5.8c-3 2.2-5.8 5.2-5.4 7.1 .9 3.7 10-2.7 22.6-3.5 7-.4 12.8 1.8 17.3 3.7l0 0zm-9 5.1c-9.1 1.4-15 6.5-13.5 10.1 .9 .3 1.2 .8 5.2-.8 6-2.3 12.4-2.9 18.7-1.9 2.9 .3 4.3 .5 4.9-.5 1.5-2.2-5.7-8-15.4-6.9l0 0zm54.2 17.1c3.4-6.9-10.9-13.9-14.3-7s10.9 13.9 14.3 7l0 0zm15.7-20.5c-7.7-.1-8 15.8-.3 15.9s8-15.8 .3-16l0 0zM119.5 332.7c-1.3 .3-6 1.5-8.5-2.3-5.2-8 11.1-20.4 3-35.8-9.1-17.5-27.8-13.5-35-5.5-8.7 9.6-8.7 23.5-5 24.1 4.3 .6 4.1-6.5 7.4-11.6 .9-1.4 2.1-2.6 3.5-3.6s3-1.6 4.6-2 3.4-.4 5 0 3.3 1 4.7 1.9c11.6 7.6 1.4 17.8 2.3 28.6 1.4 16.7 18.4 16.4 21.6 9 .2-.4 .3-.8 .3-1.2s-.2-.8-.5-1.1c0 .9 .7-1.3-3.4-.4l0 0zm299.7-17.1c-3.3-11.7-2.6-9.2-6.8-20.5 2.4-3.7 15.3-24-3.1-43.3-10.4-10.9-33.9-16.5-41.1-18.5-1.5-11.4 4.6-58.7-21.5-83 20.8-21.6 33.8-45.3 33.7-65.7-.1-39.2-48.2-51-107.4-26.5l-12.5 5.3c-.1 0-22.7-22.3-23.1-22.6-67.5-58.9-278.8 175.9-211.3 232.9l14.8 12.5c-4 10.7-5.4 22.2-4.1 33.5 3.4 33.4 36 60.4 67.5 60.4 57.7 133.1 267.9 133.3 322.3 3 1.7-4.5 9.1-24.6 9.1-42.4s-10.1-25.3-16.5-25.3l0 0zm-316 48.2c-22.8-.6-47.5-21.1-49.9-45.5-6.2-61.3 74.3-75.3 84-12.3 4.5 29.6-4.7 58.5-34.1 57.8l0 0zM84.7 249.6c-15.2 3-28.5 11.5-36.7 23.5-4.9-4.1-14-12-15.6-15-13-24.8 14.2-73 33.3-100.2 47.1-67.2 120.9-118.1 155-108.9 5.5 1.6 23.9 22.9 23.9 22.9s-34.1 18.9-65.8 45.3C136.2 150 104 197.7 84.7 249.6zM323.6 350.7s-35.7 5.3-69.5-7.1c6.2-20.2 27 6.1 96.4-13.8 15.3-4.4 35.4-13 51-25.4 3.4 7.8 5.8 15.9 7.1 24.3 3.7-.7 14.2-.5 11.4 18.1-3.3 19.9-11.7 36-25.9 50.8-8.9 9.6-19.4 17.5-31.2 23.3-6.5 3.4-13.3 6.3-20.3 8.6-53.5 17.5-108.3-1.7-126-43-1.4-3.1-2.6-6.4-3.6-9.7-7.5-27.2-1.1-59.8 18.8-80.4 1.2-1.3 2.5-2.9 2.5-4.8-.2-1.7-.8-3.3-1.9-4.5-7-10.1-31.2-27.4-26.3-60.8 3.5-24 24.5-40.9 44.1-39.9l5 .3c8.5 .5 15.9 1.6 22.9 1.9 11.7 .5 22.2-1.2 34.6-11.6 4.2-3.5 7.6-6.5 13.3-7.5 2.3-.6 4.7-.7 7-.3s4.6 1.2 6.6 2.5c10 6.6 11.4 22.7 11.9 34.5 .3 6.7 1.1 23 1.4 27.6 .6 10.7 3.4 12.2 9.1 14 3.2 1 6.2 1.8 10.5 3.1 13.2 3.7 21 7.5 26 12.3 2.5 2.5 4.2 5.8 4.7 9.3 1.6 11.4-8.8 25.4-36.3 38.2-46.7 21.7-93.7 14.4-100.5 13.7-20.2-2.7-31.6 23.3-19.5 41.1 22.6 33.4 122.4 20 151.4-21.4 .7-1 .1-1.6-.7-1-41.8 28.6-97.1 38.2-128.5 26-4.8-1.8-14.7-6.4-15.9-16.7 43.6 13.5 71 .7 71 .7s2-2.8-.6-2.5zM171.7 157.5c16.7-19.4 37.4-36.2 55.8-45.6 .1-.1 .3-.1 .5-.1s.3 .1 .4 .2 .2 .3 .2 .4 0 .3-.1 .5c-1.5 2.7-4.3 8.3-5.2 12.7 0 .1 0 .3 0 .4s.2 .3 .3 .4 .3 .1 .4 .1 .3 0 .4-.1c11.5-7.8 31.5-16.2 49-17.3 .2 0 .3 0 .5 .1s.2 .2 .3 .4 .1 .3 0 .5-.1 .3-.3 .4c-2.9 2.2-5.5 4.8-7.7 7.7-.1 .1-.1 .2-.1 .4s0 .3 .1 .4 .2 .2 .3 .3 .2 .1 .4 .1c12.3 .1 29.7 4.4 41 10.7 .8 .4 .2 1.9-.6 1.7-69.5-15.9-123.1 18.5-134.5 26.8-.2 .1-.3 .1-.5 .1s-.3-.1-.5-.2-.2-.3-.2-.5 .1-.4 .2-.5l-.1 0z\"],\n \"lumon\": [640, 512, [], \"e7e2\", \"M452.5 223.5c9.8 0 16.5 6.3 16.5 16.6l0 31.8c0 10.3-6.6 16.6-16.6 16.6l-56.2 0c-9.8 0-16.5-6.3-16.5-16.6l0-31.8c0-10.3 6.7-16.6 16.5-16.6l56.3 0zm-25.7 13.1c-1.5-2.6-3.2-2.6-4.6 0l-10.7 17.6c-1.7 2.4-2.6 5.1-2.6 8.2 0 7.9 6.9 14.6 15.6 14.6 8.5 0 15.6-6.7 15.6-14.6 0-3-1-5.8-2.7-8.2l-10.7-17.6zM85.8 223.8c1 0 1.5 .6 1.5 1.5l0 50.3 64.6 0c1 0 1.6 .6 1.6 1.5l0 9.7c0 .9-.6 1.5-1.6 1.5l-78.4 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l12.3 0zm88.3 0c1 0 1.5 .6 1.5 1.5l0 45c0 4 2 5.2 5.7 5.2l46.9 0c3.8 0 5.7-1.3 5.7-5.2l0-45c0-.9 .5-1.5 1.5-1.5l12.3 0c1 0 1.6 .6 1.6 1.5l0 46c0 10.5-5.3 16.8-17.6 16.8l-54 0c-12.3 0-17.6-6.3-17.6-16.8l0-46c0-.9 .6-1.5 1.6-1.5l12.3 0zm108.2 0c1 0 1.6 .5 2.2 1.4l30.5 46.4 1.4 0 30.5-46.4c.6-.9 1.2-1.4 2.2-1.4l18 0c1 0 1.5 .6 1.5 1.5l0 61.4c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-43.8-1.1 0-28.7 43.8c-.6 .9-1.3 1.5-2.4 1.5l-10.7 0c-1 0-1.7-.6-2.3-1.5l-28.7-43.8-1.1 0 0 43.8c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l17.9 0zm214.4 0c.9 0 1.3 .4 2.2 1.1l52.7 46.3 1.3 0 0-46c0-.9 .6-1.5 1.6-1.5l12.3 0c1 0 1.6 .6 1.6 1.5l0 61.4c0 .9-.6 1.5-1.6 1.5l-14.4 0c-1 0-1.4-.4-2.3-1.1l-52.6-46.3-1.4 0 0 46c0 .9-.5 1.5-1.5 1.5l-12.3 0c-1 0-1.6-.6-1.6-1.5l0-61.4c0-.9 .6-1.5 1.6-1.5l14.4 0zM320 114.1c87.9 0 167.7 15.7 225.5 41l2.7 1.2C587.1 173.8 640 206.5 640 256s-52.9 82.2-91.8 99.6l-2.7 1.2c-57.8 25.4-137.6 41-225.5 41-76.2 0-155.1-10.5-225.5-41-39.6-17.4-94.5-50.3-94.5-100.8s54.9-83.5 94.5-100.8c70.4-30.5 149.3-41 225.5-41zm-88.9 229c20.3 29 52.8 49.6 88.9 49.6 36.2 0 68.7-20.6 89-49.7l-177.9 .1zm-96.1 0c43.3 29.7 96.7 43.5 148.4 48-24.2-9.1-44.4-26.7-58.6-48.1l-89.9 0zm280.3-.1c-14.2 21.4-34.4 39.1-58.6 48.1 51.8-4.5 105.3-18.3 148.6-48.2l-90 0zm-337.4 .1c44.1 23.1 93.7 35.4 142.7 42.6-33.4-8.6-66.5-21.9-94.4-42.6l-48.3 0zm436.2-.2c-27.9 20.8-61.1 34.2-94.6 42.8 47.3-6.9 89.6-18.5 123.9-33.6l1.7-.8c6.1-2.7 11.9-5.5 17.4-8.4l-48.5 0zM520 173.6c10.7 8.7 19.8 18.1 27 28.2 .4 .6 .5 1.3 .1 2s-1 1-1.7 1l-1.6 0c-.6 0-1.2-.3-1.5-.8-7.9-10.9-18.2-21.1-30.6-30.4l-93.5 0c5.4 8.8 9.9 18.5 13.4 28.6 .2 .6 .1 1.2-.2 1.7s-.9 .8-1.6 .8l-1.4 0c-.8 0-1.5-.5-1.8-1.3-3.8-10.7-8.7-20.8-14.5-29.9l-184.3 .1c-5.8 9.1-10.7 19.1-14.4 29.8-.3 .8-1 1.3-1.8 1.3l-1.4 0c-.6 0-1.2-.3-1.6-.8s-.5-1.1-.2-1.7c3.5-10.2 8-19.7 13.4-28.6l-93.6 0c-12.3 9.3-22.6 19.4-30.4 30.3-.4 .5-.9 .8-1.5 .8l-1.6 0c-.7 0-1.4-.4-1.7-1s-.3-1.4 .1-2c7.6-10.5 16.7-19.9 26.8-28l-51 0c-28.9 16.6-62 43.3-63.5 79.7l44.7 0c.5 0 1 .2 1.3 .6s.6 .8 .6 1.3l0 1.3c0 1.1-.9 1.9-1.9 1.9l-44.7 0C6.8 295 40 321.7 69 338.3l50.9 0c-10.3-8.4-19.1-17.4-26.1-27l-.8-1.1c-.4-.6-.5-1.3-.1-2s1-1 1.7-1l1.6 0 .2 0c.5 .1 1 .3 1.3 .8 7.9 10.9 18.1 21 30.5 30.3l93.6 0c-5.3-8.8-9.8-18.4-13.4-28.5-.2-.6-.1-1.2 .2-1.7s.9-.8 1.6-.8l1.4 0 .2 0c.7 .1 1.4 .6 1.7 1.3 3.8 10.7 8.6 20.7 14.4 29.8l184.5-.1c5.8-9.1 10.6-19.1 14.4-29.7l.1-.1c.3-.7 1-1.1 1.7-1.1l1.4 0c.6 0 1.2 .3 1.6 .8s.5 1.2 .2 1.7c-3.5 10.1-8 19.7-13.3 28.5l93.7 0c12.3-9.3 22.5-19.4 30.3-30.2l.1-.2c.4-.4 .9-.6 1.4-.6l1.6 0c.7 0 1.4 .4 1.7 1s.3 1.4-.1 2c-7.1 10-16.1 19.3-26.7 27.9l51.1 0c28.8-16.6 61.8-43.3 63.4-79.6l-44.7 0c-1 0-1.9-.9-1.9-1.9l0-1.3c0-1.1 .9-1.9 1.9-1.9l44.7 0c-1.6-36.5-34.9-63.3-63.9-79.9l-50.9 0zM220.5 126.2c-49.1 7.1-98.7 19.5-143 42.7l48.4 0c27.9-20.8 61-34.1 94.5-42.7zm62.8-5.4c-51.8 4.5-105.2 18.3-148.6 48.1l90 0c14.2-21.4 34.4-39 58.6-48.1zm36.6-1.6c-36.2 0-68.7 20.6-89 49.7l177.9-.1c-20.3-29.1-52.7-49.6-88.9-49.6zm36.6 1.6c24.2 9.1 44.4 26.6 58.5 48l89.8 0c-43.3-29.7-96.6-43.5-148.3-48zm62.8 5.4c33.4 8.5 66.4 21.9 94.3 42.5l48.3 0c-44.1-23.1-93.6-35.4-142.6-42.5z\"],\n \"nutritionix\": [448, 512, [], \"f3d6\", \"M112 8.1S245.4-.1 233 112.5c0 0 19.1-74.9 103-40.6 0 0-17.7 74-88 56 0 0 14.6-54.6 66.1-56.6 0 0-39.9-10.3-82.1 48.8 0 0-19.8-94.5-93.6-99.7 0 0 75.2 19.4 77.6 107.5 0 .1-106.4 7-104-119.8zM424 323.7c0 48.5-9.7 95.3-32 132.3-42.2 30.9-105 48-168 48-62.9 0-125.8-17.1-168-48-22.3-37-32-83.8-32-132.3 0-48.4 17.7-94.7 40-131.7 42.2-30.9 97.1-48.6 160-48.6 63 0 117.8 17.6 160 48.6 22.3 37 40 83.3 40 131.7zM144 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM216 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM288 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM360 428a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zm0-66.2a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM384 256c-4.8-22.3-7.4-36.9-16-56-38.8-19.9-90.5-32-144-32S118.8 180.1 80 200c-8.8 19.5-11.2 33.9-16 56 42.2-7.9 98.7-14.8 160-14.8s117.8 6.9 160 14.8z\"],\n \"creative-commons-sampling-plus\": [512, 512, [], \"f4f1\", \"M255.6 8C397.4 8 504 118.1 504 256 504 403.1 385.5 504 255.6 504 121.6 504 8 394.5 8 256 8 123.1 112.7 8 255.6 8zm.8 44.7c-118.2 0-203.7 97.9-203.7 203.3 0 109.8 91.2 202.8 203.7 202.8 103.2 0 202.8-81.1 202.8-202.8 .1-113.8-90.2-203.3-202.8-203.3zm107 205.6c-4.7 0-9 2.8-10.7 7.2l-4 9.5-11-92.8c-1.7-13.9-22-13.4-23.1 .4l-4.3 51.4-5.2-68.8c-1.1-14.3-22.1-14.2-23.2 0l-3.5 44.9-5.9-94.3c-.9-14.5-22.3-14.4-23.2 0l-5.1 83.7-4.3-66.3c-.9-14.4-22.2-14.4-23.2 0l-5.3 80.2-4.1-57c-1.1-14.3-22-14.3-23.2-.2l-7.7 89.8-1.8-12.2c-1.7-11.4-17.1-13.6-22-3.3l-13.2 27.7-43.9 0 0 23.2 51.3 0c4.4 0 8.4-2.5 10.4-6.4l10.7 73.1c2 13.5 21.9 13 23.1-.7l3.8-43.6 5.7 78.3c1.1 14.4 22.3 14.2 23.2-.1l4.6-70.4 4.8 73.3c.9 14.4 22.3 14.4 23.2-.1l4.9-80.5 4.5 71.8c.9 14.3 22.1 14.5 23.2 .2l4.6-58.6 4.9 64.4c1.1 14.3 22 14.2 23.1 .1l6.8-83 2.7 22.3c1.4 11.8 17.7 14.1 22.3 3.1l18-43.4 50.5 0 0-23.2-58.4 .3zm-78 5.2l-21.9 0 0 21.9c0 4.1-3.3 7.5-7.5 7.5-4.1 0-7.5-3.3-7.5-7.5l0-21.9-21.9 0c-4.1 0-7.5-3.3-7.5-7.5 0-4.1 3.4-7.5 7.5-7.5l21.9 0 0-21.9c0-4.1 3.4-7.5 7.5-7.5s7.5 3.3 7.5 7.5l0 21.9 21.9 0c4.1 0 7.5 3.3 7.5 7.5 0 4.1-3.4 7.5-7.5 7.5z\"],\n \"redhat\": [512, 512, [], \"f7bc\", \"M341.5 285.6c33.7 0 82.3-6.9 82.3-47 .2-6.7 .9-1.8-20.9-96.2-4.6-19.1-8.7-27.8-42.3-44.6-26.1-13.3-82.9-35.4-99.7-35.4-15.7 0-20.2 20.2-38.9 20.2-18 0-31.3-15.1-48.1-15.1-16.1 0-26.7 11-34.8 33.6-27.5 77.6-26.3 74.3-26.1 78.3 0 24.8 97.6 106.1 228.5 106.1zM429 254.8c4.7 22 4.7 24.3 4.7 27.2 0 37.7-42.3 58.6-98 58.6-125.7 .1-235.9-73.6-235.9-122.3 0-6.8 1.4-13.5 4.1-19.7-45.2 2.3-103.8 10.3-103.8 62 0 84.7 200.6 189 359.5 189 121.8 0 152.5-55.1 152.5-98.6 0-34.2-29.6-73-82.9-96.2z\"],\n \"square-pied-piper\": [448, 512, [\"pied-piper-square\"], \"e01e\", \"M32.1 419l-32 60.2 .8-328C.9 85.3 54.1 32 120.1 32l327.2 0C354.3 60.9 257.4 126.2 193.4 200.6 122.8 282 82.7 338 32.1 419zm416-387S305.3 98.8 261.7 199.1c-23.2 53.6-28.9 118.1-71 158.6-28.9 27.8-69.8 38.2-105.3 56.3-23.2 12-66.4 40.5-84.9 66l328.4 0c66 0 119.3-53.3 119.3-119.2-.1 0-.1-328.8-.1-328.8z\"],\n \"whatsapp\": [448, 512, [], \"f232\", \"M380.9 97.1c-41.9-42-97.7-65.1-157-65.1-122.4 0-222 99.6-222 222 0 39.1 10.2 77.3 29.6 111L0 480 117.7 449.1c32.4 17.7 68.9 27 106.1 27l.1 0c122.3 0 224.1-99.6 224.1-222 0-59.3-25.2-115-67.1-157zm-157 341.6c-33.2 0-65.7-8.9-94-25.7l-6.7-4-69.8 18.3 18.6-68.1-4.4-7c-18.5-29.4-28.2-63.3-28.2-98.2 0-101.7 82.8-184.5 184.6-184.5 49.3 0 95.6 19.2 130.4 54.1s56.2 81.2 56.1 130.5c0 101.8-84.9 184.6-186.6 184.6zM325.1 300.5c-5.5-2.8-32.8-16.2-37.9-18-5.1-1.9-8.8-2.8-12.5 2.8s-14.3 18-17.6 21.8c-3.2 3.7-6.5 4.2-12 1.4-32.6-16.3-54-29.1-75.5-66-5.7-9.8 5.7-9.1 16.3-30.3 1.8-3.7 .9-6.9-.5-9.7s-12.5-30.1-17.1-41.2c-4.5-10.8-9.1-9.3-12.5-9.5-3.2-.2-6.9-.2-10.6-.2s-9.7 1.4-14.8 6.9c-5.1 5.6-19.4 19-19.4 46.3s19.9 53.7 22.6 57.4c2.8 3.7 39.1 59.7 94.8 83.8 35.2 15.2 49 16.5 66.6 13.9 10.7-1.6 32.8-13.4 37.4-26.4s4.6-24.1 3.2-26.4c-1.3-2.5-5-3.9-10.5-6.6z\"],\n \"imdb\": [448, 512, [], \"f2d8\", \"M89.5 323.6l-35.6 0 0-137.4 35.6 0 0 137.4zm66.6-73.1l9.1-64.3 46.3 0 0 137.4-31 0 0-92.7-13.4 92.7-21.3 0-13-90.7-.1 90.7-31.2 0 0-137.4 46.1 0c.5 8.3 2.8 18.1 4.3 29.4l4.2 34.9zm67.6 73.1l0-137.4 26.6 0c17 0 27 .9 33 2.4 6.1 1.7 10.7 4.2 13.9 7.9 3.1 3.3 5.1 6.6 5.8 12 .9 4.4 1.4 13.1 1.4 26.2l0 48.2c0 12.3-.7 20.5-1.9 24.7-1.1 4.1-3.1 7.4-6 9.7-2.8 2.4-6.4 4.1-10.7 5-4.2 .8-10.6 1.3-19.1 1.3l-43 0zm35.5-113.9l0 89.4c5.1 0 8.3-1 9.4-2.3 1.1-2 1.8-7.6 1.8-16.7l0-53.3c0-6.2-.1-10.2-.7-12-.3-1.8-1.2-3-2.6-4.7-1.4 0-4.1-.4-7.9-.4zm57.3 113.9l0-137.4 34.1 0 0 43.9c2.9-2.4 6.1-4.9 9.5-6.6 3.6-1.5 8.8-2.4 12.8-2.4 4.8 0 8.9 .8 12.3 2.2 3.4 1.5 6 3.5 8 6.2 1.7 2.6 2.7 5.3 3.1 7.8 .4 2.6-.2 8-.2 16.2l0 38.6c0 8.2 .2 14.3-.8 18.4-1.1 4-3.8 7.6-7.8 9.6-4.1 3.9-8.9 5.3-14.6 5.3-4 0-9.2-.9-12.7-2.5-3.5-1.8-6.7-4.5-9.6-8l-2.1 8.7-32 0zm45.1-20.7c.7-1.8 1-6 1-12.5l0-35.4c0-5.6-.3-9.5-1.1-11.2-.7-1.9-3.7-2.7-5.8-2.7-2 0-3.4 .8-4.1 2.3-.6 1.5-1 5.4-1 11.6l0 36.4c0 6.1 .4 10 1.2 11.6 .6 1.7 2.1 2.5 4.1 2.5 2.2 0 4.2-.8 5.7-2.6zM418.4 32c15.7 1.2 28.7 15.2 28.7 31.9l0 384.2c0 16.4-11.9 30.4-28.2 31-.3 0-.5 .9-.8 .9L29.9 480c-.3 0-.6-.9-.8-.1-15.7-1.4-27.9-13.8-29-30.2L0 61.8C1.1 45.9 13.8 33.1 30.3 31.1l387.4 0c.2 0 .5 .9 .7 .9zM30.3 41.3C19 42 10 51 9.3 62.4l0 387.3c.4 5.4 2.7 10.5 6.4 14.3 3.8 3.9 8.8 6.3 14.2 6.7l388.2 0c11.5-1 20.6-11.6 20.6-22.6l0-384.2c0-5.7-2.1-11.3-6-15.5s-9.3-6.8-15-7.2l-387.4 0z\"],\n \"python\": [448, 512, [], \"f3e2\", \"M439.8 200.5c-7.7-30.9-22.3-54.2-53.4-54.2l-40.1 0 0 47.4c0 36.8-31.2 67.8-66.8 67.8l-106.8 0c-29.2 0-53.4 25-53.4 54.3l0 101.8c0 29 25.2 46 53.4 54.3 33.8 9.9 66.3 11.7 106.8 0 26.9-7.8 53.4-23.5 53.4-54.3l0-40.7-106.7 0 0-13.6 160.2 0c31.1 0 42.6-21.7 53.4-54.2 11.2-33.5 10.7-65.7 0-108.6zM286.2 444.7a20.4 20.4 0 1 1 0-40.7 20.4 20.4 0 1 1 0 40.7zM167.8 248.1l106.8 0c29.7 0 53.4-24.5 53.4-54.3l0-101.9c0-29-24.4-50.7-53.4-55.6-35.8-5.9-74.7-5.6-106.8 .1-45.2 8-53.4 24.7-53.4 55.6l0 40.7 106.9 0 0 13.6-147 0c-31.1 0-58.3 18.7-66.8 54.2-9.8 40.7-10.2 66.1 0 108.6 7.6 31.6 25.7 54.2 56.8 54.2l36.7 0 0-48.8c0-35.3 30.5-66.4 66.8-66.4zM161.2 64.7a20.4 20.4 0 1 1 0 40.8 20.4 20.4 0 1 1 0-40.8z\"],\n \"cash-app\": [448, 512, [], \"e7d4\", \"M440.3 96.9c-9.4-26.5-30.3-47.4-56.8-57-24.1-7.9-46.3-7.9-91.6-7.9L156 32c-44.8 0-67.2 0-91.3 7.5-26.5 9.6-47.4 30.5-57 57-7.7 24.3-7.7 46.7-7.7 91.7L0 323.8c0 45.2 0 67.4 7.5 91.5 9.6 26.5 30.5 47.4 57 57 24.3 7.7 46.7 7.7 91.6 7.7l135.7 0c45 0 67.4 0 91.6-7.7 26.5-9.6 47.4-30.5 57-57 7.7-24.3 7.7-46.7 7.7-91.5l0-135.5c0-45 0-67.4-7.7-91.5zM323.1 185.4l-25.8 21.1c-2.3 1.9-5.5 1.5-7.3-.9-13.2-16.2-33.7-25.4-56.1-25.4-25 0-40.6 10.9-40.6 26.2-.4 12.8 11.7 19.6 49.1 27.7 47.2 10 68.7 29.7 68.7 62.7 0 41.4-33.7 71.9-86.4 75.3l-5.1 24.5c-.4 2.3-2.6 4.1-5.1 4.1l-40.6 0c-3.4 0-5.8-3.2-5.1-6.4l6.4-27.3c-26-7.5-47.2-22-59.3-39.7-1.5-2.3-1.1-5.3 1.1-7l28.2-22c2.3-1.9 5.8-1.3 7.5 1.1 14.9 20.9 38 33.3 65.7 33.3 25 0 43.8-12.2 43.8-29.7 0-13.4-9.4-19.6-41.2-26.2-54.2-11.7-75.8-31.8-75.8-64.9 0-38.4 32.2-67.2 80.9-71l5.3-25.4c.4-2.3 2.6-4.1 5.1-4.1l39.9 0c3.2 0 5.8 3 5.1 6.2l-6.2 28.4c20.9 6.4 38 17.9 48.7 32.2 1.7 2.1 1.3 5.3-.9 7z\"],\n \"pinterest-p\": [384, 512, [], \"f231\", \"M204 6.5c-102.6 0-204 68.4-204 179.1 0 70.4 39.6 110.4 63.6 110.4 9.9 0 15.6-27.6 15.6-35.4 0-9.3-23.7-29.1-23.7-67.8 0-80.4 61.2-137.4 140.4-137.4 68.1 0 118.5 38.7 118.5 109.8 0 53.1-21.3 152.7-90.3 152.7-24.9 0-46.2-18-46.2-43.8 0-37.8 26.4-74.4 26.4-113.4 0-66.2-93.9-54.2-93.9 25.8 0 16.8 2.1 35.4 9.6 50.7-13.8 59.4-42 147.9-42 209.1 0 18.9 2.7 37.5 4.5 56.4 3.4 3.8 1.7 3.4 6.9 1.5 50.4-69 48.6-82.5 71.4-172.8 12.3 23.4 44.1 36 69.3 36 106.2 0 153.9-103.5 153.9-196.8 0-99.3-85.8-164.1-180-164.1z\"],\n \"whmcs\": [448, 512, [], \"f40d\", \"M448 161l0-21.3-28.5-8.8-2.2-10.4 20.1-20.7-10.4-19.4-29 7.5-7.2-7.5 7.5-28.2-19.1-11.6-21.3 21-10.7-3.2-7-26.4-22.6 0-6.2 26.4-12.1 3.2-19.7-21-19.4 11 8.1 27.7-8.1 8.4-28.5-7.5-11 19.1 20.7 21-2.9 10.4-28.5 7.8-.3 21.7 28.8 7.5 2.4 12.1-20.1 19.9 10.4 18.5 29.6-7.5 7.2 8.6-8.1 26.9 19.9 11.6 19.4-20.4 11.6 2.9 6.7 28.5 22.6 .3 6.7-28.8 11.6-3.5 20.7 21.6 20.4-12.1-8.8-28 7.8-8.1 28.8 8.8 10.3-20.1-20.9-18.8 2.2-12.1 29.1-7zM328.8 92.6a56.8 56.8 0 1 1 0 113.6 56.8 56.8 0 1 1 0-113.6zm72.3 130l46.9 14.5 0 39.9-55.1 13.4-4.1 22.7 38.9 35.3-19.2 37.9-54-16.7-14.6 15.2 16.7 52.5-38.3 22.7-38.9-40.5-21.7 6.6-12.6 54-42.4-.5-12.6-53.6-21.7-5.6-36.4 38.4-37.4-21.7 15.2-50.5-13.7-16.1-55.5 14.1-19.7-34.8 37.9-37.4-4.8-22.8-54-14.1 .5-40.9 53.5-14.7 5.7-19.7-38.9-39.4 20.7-35.8 53.6 14.1 15.2-15.7-15.2-52 36.4-20.7 36.8 39.4 22.7-6.1 11.6-52 42.4 0 11.6 45.9-22.6-5.9-6.3-1.7-3.3 5.7-11 19.1-3.3 5.6 4.6 4.6 17.2 17.4-.3 1-23.8 6.5-6.2 1.7c0 3.2-.1 9.6-.3 19.3-47.5 10.4-83.3 52.8-83.3 103.5 0 58.3 47.3 105.7 105.7 105.7 50.5 0 92.7-35.4 103.2-82.8 9.9 .1 16.6 .2 20.1 .3l1.6-6.7 5.6-24 1.9-.6 17.1 17.8 4.7 4.9 5.8-3.4 20.4-12.1 5.8-3.5-2-6.5-6.8-21.2z\"],\n \"joget\": [512, 512, [], \"f3b7\", \"M386.1 45C345.6 19.9 300.6 8 256.2 8 173 8 91.8 49.9 44.9 125.9-27 242.5 9.3 395.2 125.9 467.1s269.3 35.6 341.2-80.9C539 269.6 502.7 116.8 386.1 45zm51.8 323.2c-40.4 65.5-110.4 101.5-182 101.5-6.8 0-13.6-.4-20.4-1-9-13.6-19.9-33.3-23.7-42.4-5.7-13.7-27.2-45.6 31.2-67.1 51.7-19.1 176.7-16.5 208.8-17.6-4 9-8.6 17.9-13.9 26.6zM237.1 281.9c-55.5-1.4-81.7-20.8-58.5-48.2s51.1-40.7 68.9-51.2c17.9-10.5 27.3-33.7-23.6-29.7-128.6 8.7-167.3 99.3-178.3 140.2-8.8-49.7-.1-102.7 28.5-149.1 61.9-100.5 193.5-131.7 294-69.8 74.8 46.1 111.2 130.9 99.3 212.7-24.9-.5-179.3-3.6-230.3-4.9zm183.8-54.8c-22.7-6-57 11.3-86.7 27.2-29.7 15.8-31.1 8.2-31.1 8.2s40.2-28.1 50.7-34.5 31.9-14 13.4-24.6c-3.2-1.8-6.7-2.7-10.4-2.7-17.8 0-41.5 18.7-67.5 35.6-31.5 20.5-65.3 31.3-65.3 31.3L393.5 266 440 242.6s3.6-9.5-19.1-15.5z\"],\n \"square-youtube\": [448, 512, [61798, \"youtube-square\"], \"f431\", \"M282 256.2l-95.2-54.1 0 108.2 95.2-54.1zM384 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64zm14.4 136.1c7.6 28.6 7.6 88.2 7.6 88.2s0 59.6-7.6 88.1c-4.2 15.8-16.5 27.7-32.2 31.9-28.3 7.7-142.2 7.7-142.2 7.7s-113.9 0-142.2-7.6c-15.7-4.2-28-16.1-32.2-31.9-7.6-28.6-7.6-88.2-7.6-88.2s0-59.7 7.6-88.2c4.2-15.8 16.5-28.2 32.2-32.4 28.3-7.7 142.2-7.7 142.2-7.7s113.9 0 142.2 7.7c15.7 4.2 28 16.6 32.2 32.4z\"],\n \"atlassian\": [512, 512, [], \"f77b\", \"M152.2 236.4c-7.7-8.2-19.7-7.7-24.8 2.8L1.6 490.2c-5 10 2.4 21.7 13.4 21.7l175 0c5.8 .1 11-3.2 13.4-8.4 37.9-77.8 15.1-196.3-51.2-267.1zM244.4 8.1c-122.3 193.4-8.5 348.6 65 495.5 2.5 5.1 7.7 8.4 13.4 8.4L497 512c11.2 0 18.4-11.8 13.4-21.7 0 0-234.5-470.6-240.4-482.3-5.3-10.6-18.8-10.8-25.6 .1z\"],\n \"pied-piper-hat\": [640, 512, [], \"f4e5\", \"M640 24.9c-80.8 53.6-89.4 92.5-96.4 104.4-6.7 12.2-11.7 60.3-23.3 83.6-11.7 23.6-54.2 42.2-66.1 50-11.7 7.8-28.3 38.1-41.9 64.2-108.1-4.4-167.4 38.8-259.2 93.6 29.4-9.7 43.3-16.7 43.3-16.7 94.2-36 139.3-68.3 281.1-49.2 1.1 0 1.9 .6 2.8 .8 3.9 2.2 5.3 6.9 3.1 10.8l-53.9 95.8c-2.5 4.7-7.8 7.2-13.1 6.1-126.8-23.8-226.9 17.3-318.9 18.6-73.4 1.1-97.5-33.5-97.5-35.1 0-1.1 .6-1.7 1.7-1.7 0 0 38.3 0 103.1-15.3 73.6-140.3 139.2-189.4 210.6-189.4 0 0 71.7 0 90.6 61.9 22.8-39.7 28.3-49.2 28.3-49.2 5.3-9.4 35-77.2 86.4-141.4 51.5-64 90.4-79.9 119.3-91.8z\"],\n \"internet-explorer\": [512, 512, [], \"f26b\", \"M483.1 159.7c10.9-24.6 21.4-60.4 21.4-87.9 0-72.7-79.6-98.4-209.7-38.6-107.6-7.2-211.2 73.7-237.1 186.5 30.9-34.9 78.3-82.3 122-101.2-54.3 48.3-100.6 109.4-135.7 173.2-20.7 37.9-44 99.2-44 145 0 98.6 92.9 86.5 180.3 42 31.4 15.4 66.6 15.6 101.7 15.6 97.1 0 184.2-54.3 216.8-146l-120.8 0c-52.5 88.6-196.8 53-196.8-47.4l328.8 0c6.4-43.6-1.7-95.7-26.9-141.2zM64.6 346.9C82.3 398 118.3 442.7 164.8 470.2 76.1 519.1-8.4 499.3 64.6 346.9zM180.5 238c2-55.2 50.3-94.9 104-94.9 53.4 0 102 39.7 104 94.9l-208 0zM365.1 50.4c21.4-10.3 48.6-22 72.6-22 31.4 0 54.3 21.7 54.3 53.7 0 20-7.4 49-14.6 67.9-26.3-42.3-66-81.6-112.3-99.6z\"],\n \"airbnb\": [448, 512, [], \"f834\", \"M224.5 373.1c-25.2-31.7-40.1-59.4-45-83.2-22.5-88 112.6-88 90.1 0-5.4 24.2-20.3 52-45 83.2l-.1 0zm138.2 73.2c-42.1 18.3-83.7-10.9-119.3-50.5 103.9-130.1 46.1-200-18.8-200-54.9 0-85.2 46.5-73.3 100.5 6.9 29.2 25.2 62.4 54.4 99.5-32.5 36-60.5 52.7-85.2 54.9-50 7.4-89.1-41.1-71.3-91.1 15.1-39.2 111.7-231.2 115.9-241.6 15.8-30.1 25.6-57.4 59.4-57.4 32.3 0 43.4 25.9 60.4 59.9 36 70.6 89.4 177.5 114.8 239.1 13.2 33.1-1.4 71.3-37 86.6zm47-136.1c-128.9-274.3-136-278.2-185.1-278.2-45.5 0-64.9 31.7-84.7 72.8-106.2 212.3-116.4 242.4-117.3 245-25.2 69.3 26.7 130.2 89.6 130.2 21.7 0 60.6-6.1 112.4-62.4 58.7 63.8 101.3 62.4 112.4 62.4 62.9 .1 114.9-60.9 89.6-130.2 0-3.9-16.8-38.9-16.8-39.6l0 0z\"],\n \"js\": [448, 512, [], \"f3b8\", \"M0 32l0 448 448 0 0-448-448 0zM243.8 381.4c0 43.6-25.6 63.5-62.9 63.5-33.7 0-53.2-17.4-63.2-38.5L152 385.7c6.6 11.7 12.6 21.6 27.1 21.6 13.8 0 22.6-5.4 22.6-26.5l0-143.1 42.1 0 0 143.7zm99.6 63.5c-39.1 0-64.4-18.6-76.7-43L301 382.1c9 14.7 20.8 25.6 41.5 25.6 17.4 0 28.6-8.7 28.6-20.8 0-14.4-11.4-19.5-30.7-28l-10.5-4.5c-30.4-12.9-50.5-29.2-50.5-63.5 0-31.6 24.1-55.6 61.6-55.6 26.8 0 46 9.3 59.8 33.7L368 290c-7.2-12.9-15-18-27.1-18-12.3 0-20.1 7.8-20.1 18 0 12.6 7.8 17.7 25.9 25.6l10.5 4.5c35.8 15.3 55.9 31 55.9 66.2 0 37.8-29.8 58.6-69.7 58.6z\"],\n \"quinscape\": [512, 512, [], \"f459\", \"M313.7 474.6l-1 0c-41.9 0-82.1-16.7-111.8-46.3s-46.3-69.9-46.3-111.8 16.7-82.1 46.3-111.8 69.9-46.3 111.8-46.3c94.9 0 168.2 83.1 157 176.6 4 5.1 8.2 9.6 11.2 15.3 13.4-30.3 20.3-62.4 20.3-97.7 0-135.1-109.5-244.6-244.6-244.6S12.1 117.5 12.1 252.6 121.6 497.2 256.6 497.2c23.8 .2 47.6-3.2 70.4-10.1-5.2-3.5-8.9-8.1-13.3-12.5zm78.3-169a99.2 99.2 0 1 0 0 198.4 99.2 99.2 0 1 0 0-198.4z\"],\n \"adversal\": [512, 512, [], \"f36a\", \"M482.1 32L28.7 32C5.8 32 0 37.9 0 60.9L0 451.1C0 474.4 5.8 480 28.7 480l453.4 0c24.4 0 29.9-5.2 29.9-29.7l0-388.1c0-24.6-5.4-30.2-29.9-30.2zM178.4 220.3c-27.5-20.2-72.1-8.7-84.2 23.4-4.3 11.1-9.3 9.5-17.5 8.3-9.7-1.5-17.2-3.2-22.5-5.5-28.8-11.4 8.6-55.3 24.9-64.3 41.1-21.4 83.4-22.2 125.3-4.8 40.9 16.8 34.5 59.2 34.5 128.5 2.7 25.8-4.3 58.3 9.3 88.8 1.9 4.4 .4 7.9-2.7 10.7-8.4 6.7-39.3 2.2-46.6-7.4-1.9-2.2-1.8-3.6-3.9-6.2-3.6-3.9-7.3-2.2-11.9 1-57.4 36.4-140.3 21.4-147-43.3-3.1-29.3 12.4-57.1 39.6-71 38.2-19.5 112.2-11.8 114-30.9 1.1-10.2-1.9-20.1-11.3-27.3zm286.7 222c0 15.1-11.1 9.9-17.8 9.9l-394.9 0c-7.4 0-18.2 4.8-17.8-10.7 .4-13.9 10.5-9.1 17.1-9.1 132.3-.4 264.5-.4 396.8 0 6.8 0 16.6-4.4 16.6 9.9zm3.8-340.5l0 291c0 5.7-.7 13.9-8.1 13.9-12.4-.4-27.5 7.1-36.1-5.6-5.8-8.7-7.8-4-12.4-1.2-53.4 29.7-128.1 7.1-144.4-85.2-6.1-33.4-.7-67.1 15.7-100 11.8-23.9 56.9-76.1 136.1-30.5l0-71c0-26.2-.1-26.2 26-26.2 3.1 0 6.6 .4 9.7 0 10.1-.8 13.6 4.4 13.6 14.3-.1 .2-.1 .3-.1 .5zM417.4 334.1c-19.5 47.6-72.9 43.3-90 5.2-15.1-33.3-15.5-68.2 .4-101.5 16.3-34.1 59.7-35.7 81.5-4.8 20.6 28.8 14.9 84.6 8.1 101.1zM122.6 369.4c-7.5-1.3-33-3.3-33.7-27.8-.4-13.9 7.8-23 19.8-25.8 24.4-5.9 49.3-9.9 73.7-14.7 8.9-2 7.4 4.4 7.8 9.5 1.4 33-26.1 59.2-67.6 58.8z\"],\n \"creative-commons\": [512, 512, [], \"f25e\", \"M253.8 214.9l-33.2 17.3c-9.4-19.6-25.2-19.9-27.5-19.9-22.1 0-33.2 14.6-33.2 43.8 0 23.6 9.2 43.8 33.2 43.8 14.5 0 24.6-7.1 30.6-21.3l30.6 15.5c-6.2 11.5-25.7 39-65.1 39-22.6 0-74-10.3-74-77 0-58.7 43-77.1 72.6-77.1 30.7 0 52.7 11.9 66 35.9zm143 0l-32.8 17.3c-9.5-19.8-25.7-19.9-27.9-19.9-22.1 0-33.2 14.6-33.2 43.8 0 23.5 9.2 43.8 33.2 43.8 14.4 0 24.6-7.1 30.5-21.3l31 15.5c-2.1 3.8-21.4 39-65.1 39-22.7 0-74-9.9-74-77 0-58.7 43-77.1 72.6-77.1 30.7 0 52.6 11.9 65.6 35.9zM255.6 8C112.7 8 8 123.1 8 256.1 8 394.5 121.6 504.1 255.6 504.1 385.5 504.1 504 403.2 504 256.1 504 118.2 397.4 8 255.6 8zm.9 450.8c-112.5 0-203.7-93-203.7-202.8 0-105.4 85.4-203.3 203.7-203.3 112.5 0 202.8 89.5 202.8 203.3 0 121.7-99.7 202.8-202.8 202.8z\"],\n \"notion\": [512, 512, [], \"e7d9\", \"M94.9 100.2c14.9 12.1 20.5 11.2 48.6 9.3L407.8 93.6c5.6 0 .9-5.6-.9-6.5L362.9 55.4c-8.4-6.5-19.6-14-41.1-12.1L65.9 61.9c-9.3 .9-11.2 5.6-7.5 9.3l36.4 28.9zm15.9 61.6l0 278.1c0 14.9 7.5 20.5 24.3 19.6l290.5-16.8c16.8-.9 18.7-11.2 18.7-23.3l0-276.2c0-12.1-4.7-18.7-15-17.7L125.7 143.1c-11.2 .9-14.9 6.5-14.9 18.7zm286.7 14.9c1.9 8.4 0 16.8-8.4 17.8l-14 2.8 0 205.3c-12.2 6.5-23.4 10.3-32.7 10.3-15 0-18.7-4.7-29.9-18.7l-91.5-143.7 0 139 29 6.5s0 16.8-23.4 16.8l-64.4 3.7c-1.9-3.7 0-13.1 6.5-14.9l16.8-4.7 0-183.8-23.3-1.9c-1.9-8.4 2.8-20.5 15.9-21.5l69.1-4.7 95.3 145.6 0-128.8-24.3-2.8c-1.9-10.3 5.6-17.7 14.9-18.7l64.5-3.8zM44.4 36.7L310.6 17.1c32.7-2.8 41.1-.9 61.6 14l85 59.7c14 10.3 18.7 13.1 18.7 24.3l0 327.6c0 20.5-7.5 32.7-33.6 34.5L133.2 495.8c-19.6 .9-29-1.9-39.2-14.9L31.4 399.7c-11.2-14.9-15.9-26.1-15.9-39.2l0-291.2c0-16.8 7.5-30.8 28.9-32.7z\"],\n \"chromecast\": [512, 512, [], \"f838\", \"M448 64L64.2 64c-23.6 0-42.7 19.1-42.7 42.7l0 63.9 42.7 0 0-63.9 383.8 0 0 298.6-149.2 0 0 42.7 149.4 0c23.6 0 42.7-19.1 42.7-42.7l0-298.6C490.9 83.1 471.6 64 448 64zM21.5 383.6l0 63.9 63.9 0c0-35.3-28.6-63.9-63.9-63.9zm0-85l0 42.4c58.9 0 106.6 48.1 106.6 107l42.7 0c.1-82.4-66.9-149.3-149.3-149.4zM213.6 448l42.7 0C255.8 318.5 151 213.7 21.5 213.4l0 42.4c106-.2 192 86.2 192.1 192.2z\"],\n \"wikipedia-w\": [640, 512, [], \"f266\", \"M640 51.2l-.3 12.2c-28.1 .8-45 15.8-55.8 40.3-25 57.8-103.3 240-155.3 358.6l-13.6 0-81.9-193.1c-32.5 63.6-68.3 130-99.2 193.1-.3 .3-15 0-15-.3-46.9-109.7-96.1-218.6-143.1-328.6-11.4-26.7-49.4-70-75.6-69.7 0-3.1-.3-10-.3-14.2l161.9 0 0 13.9c-19.2 1.1-52.8 13.3-43.3 34.2 21.9 49.7 103.6 240.3 125.6 288.6 15-29.7 57.8-109.2 75.3-142.8-13.9-28.3-58.6-133.9-72.8-160-9.7-17.8-36.1-19.4-55.8-19.7l0-13.9 142.5 .3 0 13.1c-19.4 .6-38.1 7.8-29.4 26.1 18.9 40 30.6 68.1 48.1 104.7 5.6-10.8 34.7-69.4 48.1-100.8 8.9-20.6-3.9-28.6-38.6-29.4 .3-3.6 0-10.3 .3-13.6 44.4-.3 111.1-.3 123.1-.6l0 13.6C462.4 64 439.1 76 426.8 94.9L367.6 217.7c6.4 16.1 63.3 142.8 69.2 156.7L559.2 91.8c-8.6-23.1-36.4-28.1-47.2-28.3l0-13.9 127.8 1.1 .2 .5z\"],\n \"sitrox\": [448, 512, [], \"e44a\", \"M212.4 0l0 0 235.6 0 0 128-384 0C64 57.6 141.8 .5 212.4 0zm24.8 192l0 0c69.9 .5 146.7 57.6 146.7 128l-173.2 0 0 0C140.9 319.6 64 262.4 64 192l173.3 0zm-1.7 320c70.7-.5 148.4-57.6 148.4-128l-384 0 0 128 235.6 0 0 0z\"],\n \"square-gitlab\": [448, 512, [\"gitlab-square\"], \"e5ae\", \"M0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96zm337.5 12.5l44.6 116.4 .4 1.2c5.6 16.8 7.2 35.2 2.3 52.5-5 17.2-15.4 32.4-29.8 43.3l-.2 .1-68.4 51.2-54.1 40.9c-.5 .2-1.1 .5-1.7 .8-2 1-4.4 2-6.7 2-3 0-6.8-1.8-8.3-2.8l-54.2-40.9-67.9-50.9-.4-.3-.2-.1c-14.3-10.8-24.8-26-29.7-43.3s-4.2-35.7 2.2-52.5l.5-1.2 44.7-116.4c.9-2.3 2.5-4.3 4.5-5.6 1.6-1 3.4-1.6 5.2-1.8 1.3-.7 2.1-.4 3.4 .1 .6 .2 1.2 .5 2 .7 1 .4 1.6 .9 2.4 1.5 .6 .4 1.2 1 2.1 1.5 1.2 1.4 2.2 3 2.7 4.8l29.2 92.2 122.9 0 30.2-92.2c.5-1.8 1.4-3.4 2.6-4.8s2.8-2.4 4.5-3.1c1.7-.6 3.6-.9 5.4-.7s3.6 .8 5.2 1.8c2 1.3 3.7 3.3 4.6 5.6z\"],\n \"shoelace\": [512, 512, [], \"e60c\", \"M405.2 331c2.2-1.1 4.4-2.3 6.5-3.7l8.3-4.8c1.5-1.1 4.4-3.4 8.7-6.7l.5-.5c3.4-3.4 7.2-5 11.3-4.9 1.8 0 3.9 .5 6.4 1.5l31-27.5c.9-.7 1.7-1.3 2.6-1.8l.2 0c3.3-1.9 6-1.8 8.2 .4 3.9 2.1 4.2 5.6 .9 10.6L457.2 322c.2 .5 .4 1 .4 1.5 .5 2.2 .3 4.4-.5 6.6-.7 1.5-1.8 2.9-3.1 4.2-1.4 1.4-2.7 2.8-4.2 4.2L431 352.2c-1.7 1.2-3.4 2.3-5.1 3.3-2.1 1.3-4.3 2.5-6.6 3.6-1 .4-1.9 .9-2.9 1.3-5.9 2.5-11.9 4.2-18.2 5-2.9 24.5-11.3 47.1-25.1 67.8-17.5 25.7-41.4 45.4-71.8 58.8-30.2 13.5-63 20.2-98.2 20.2-48.6-.5-88-11.4-118.2-32.8-35.1-25-52.6-57.9-52.6-99.1l0-5.6c1.2-28.1 9.5-54.6 24.8-79.8 15.1-24.9 37.1-41.7 66.1-50.5 14.9-4.4 29.9-6.6 45-6.6 15.5 0 31.6 2.9 48.1 8.6s35.2 15.5 55.9 29.5l54.1 36.3c15.1 9.8 28.8 16.5 41.2 20-2.6-25.1-11.7-46.6-27.3-64.5-15.7-18.1-35.6-31.3-59.9-39.7L257 220c-21.4-7.5-37.3-14.9-47.7-22.2-28.2-19.1-43.8-45.2-47-78.5l-.5-9.8c0-32.1 13-58.9 39-80.5 23-19.3 50.6-29 82.5-29 24 0 45.6 6.9 64.7 20.8 19.2 14 30.1 33.8 32.6 59.4l.5 10c0 18.6-4.8 34.5-14.4 47.7-9.8 13.2-18.5 19.9-26 19.9-1.6-.1-3.1-.3-4.5-.6l-34 32c-5.5 3-9.2 2.5-11.1-1.6-1.9-2.2-1.8-4.9 .5-8.2l.2-.2c.5-.7 1.2-1.5 2-2.4l31.6-30c-.4-1.5-.6-3.1-.6-4.8 0-4.1 1.6-7.6 4.9-10.4 13.8-12.4 20.8-26.7 20.8-42.8 0-16-6.1-29.5-18.2-40.4s-28.7-16.5-49.7-16.8c-26.2 0-47.8 7.9-64.7 23.7S192.6 89.9 192.6 112c0 17.8 6.9 33.9 20.6 48.3 13.6 14.2 34.6 25.4 63 33.5 39.8 11.5 70.2 31 91.3 58.3 18.7 24.2 29.1 51.3 31.3 81.4 2.2-.7 4.3-1.5 6.5-2.6l-.1 .1zM294.4 178.7c0 1.1 .6 1.6 1.8 1.6 .1 0 9.7-8.9 28.8-26.6 0-2.4-5.1 .9-15.3 10-10.2 9.2-15.3 14.2-15.3 14.9l0 .1zm8 6.4c0-1-.5-1.5-1.5-1.5-1.1 0-2.1 .5-2.9 1.6-1.9-.1-3.3 .1-4.2 .7-.4 .2-.5 .5-.5 .7 0 .7 .5 1.3 1.5 1.6l3.3 0c2.9-1.1 4.4-2.2 4.4-3.3l-.1 .2zM325 165.2c0-2.8-1.6-2.8-4.9 0-1.6 1.5-3.6 3.5-6 6.2-.8 .6-2.6 2.2-5.3 4.9-2.8 2.9-4.2 4.7-4.2 5.3l.2 1.3c.7 .2 1.2 .4 1.5 .4 .1 0 3.3-2.9 9.5-8.7s9.3-8.9 9.3-9.3l-.1-.1zm159.7 120l-30.6 27c1.8 1 3.2 2.4 4 4.2l30.2-27c.2-1.2 .1-2.2-.5-2.9-.6-.5-1.6-.9-3.1-1.3zm-1.6-.9l-.7-.7-27 21.9 1.6 2 26-23.1 .1-.1zM366.9 363.9c-8-2.1-15.4-4.6-22.2-7.5-15.3-6.2-34.3-17-57-32.4l-37.4-25.3c-15.8-10.1-30.2-17.6-43.2-22.6-13.1-4.9-26-7.3-38.6-7.3l-5.5 0c-32.2 1.7-57.2 13.8-75 36.2-16.6 20.8-25 45.3-25 73.6 0 31.8 12.8 56.7 38.2 74.7 25.4 18.1 60.2 27.1 104.4 27.1 34.7 0 64-6.2 87.8-18.6 23.7-12.4 42.1-28.8 55.2-49.2 9.8-15.5 15.9-31.8 18.2-48.8l.1 .1z\"],\n \"sellcast\": [448, 512, [], \"f2da\", \"M353.5 32L94.8 32C42.7 32 .1 74.6 .1 126.6l0 258.7C.1 437.4 42.7 480 94.8 480l258.7 0c52.1 0 94.7-42.6 94.7-94.6l0-258.8c0-52-42.6-94.6-94.7-94.6zm-50 316.4c-27.9 48.2-89.9 64.9-138.2 37.2-22.9 39.8-54.9 8.6-42.3-13.2l15.7-27.2c5.9-10.3 19.2-13.9 29.5-7.9 18.6 10.8-.1-.1 18.5 10.7 27.6 15.9 63.4 6.3 79.4-21.3 15.9-27.6 6.3-63.4-21.3-79.4-17.8-10.2-.6-.4-18.6-10.6-24.6-14.2-3.4-51.9 21.6-37.5 18.6 10.8-.1-.1 18.5 10.7 48.4 28 65.1 90.3 37.2 138.5zm21.8-208.8c-17 29.5-16.3 28.8-19 31.5-6.5 6.5-16.3 8.7-26.5 3.6-18.6-10.8 .1 .1-18.5-10.7-27.6-15.9-63.4-6.3-79.4 21.3s-6.3 63.4 21.3 79.4c0 0 18.5 10.6 18.6 10.6 24.6 14.2 3.4 51.9-21.6 37.5-18.6-10.8 .1 .1-18.5-10.7-48.2-27.8-64.9-90.1-37.1-138.4 27.9-48.2 89.9-64.9 138.2-37.2l4.8-8.4c14.3-24.9 52-3.3 37.7 21.5z\"],\n \"mix\": [448, 512, [], \"f3cb\", \"M0 64L0 412.9c0 56.2 88 58.1 88 0l0-238.6c7.9-52.9 88-50.4 88 6.5l0 175.3c0 57.9 96 58 96 0L272 240c5.3-54.7 88-52.5 88 4.3l0 23.8c0 59.9 88 56.6 88 0L448 64 0 64z\"],\n \"cc-apple-pay\": [576, 512, [], \"f416\", \"M302.2 218.4c0 17.2-10.5 27.1-29 27.1l-24.3 0 0-54.2 24.4 0c18.4 0 28.9 9.8 28.9 27.1zM349.7 281c0 8.3 7.2 13.7 18.5 13.7 14.4 0 25.2-9.1 25.2-21.9l0-7.7-23.5 1.5c-13.3 .9-20.2 5.8-20.2 14.4zM576 79l0 352c0 26.5-21.5 48-48 48L48 479c-26.5 0-48-21.5-48-48L0 79C0 52.5 21.5 31 48 31l480 0c26.5 0 48 21.5 48 48zM127.8 197.2c8.4 .7 16.8-4.2 22.1-10.4 5.2-6.4 8.6-15 7.7-23.7-7.4 .3-16.6 4.9-21.9 11.3-4.8 5.5-8.9 14.4-7.9 22.8zm60.6 74.5c-.2-.2-19.6-7.6-19.8-30-.2-18.7 15.3-27.7 16-28.2-8.8-13-22.4-14.4-27.1-14.7-12.2-.7-22.6 6.9-28.4 6.9-5.9 0-14.7-6.6-24.3-6.4-12.5 .2-24.2 7.3-30.5 18.6-13.1 22.6-3.4 56 9.3 74.4 6.2 9.1 13.7 19.1 23.5 18.7 9.3-.4 13-6 24.2-6 11.3 0 14.5 6 24.3 5.9 10.2-.2 16.5-9.1 22.8-18.2 6.9-10.4 9.8-20.4 10-21zm135.4-53.4c0-26.6-18.5-44.8-44.9-44.8l-51.2 0 0 136.4 21.2 0 0-46.6 29.3 0c26.8 0 45.6-18.4 45.6-45zm90 23.7c0-19.7-15.8-32.4-40-32.4-22.5 0-39.1 12.9-39.7 30.5l19.1 0c1.6-8.4 9.4-13.9 20-13.9 13 0 20.2 6 20.2 17.2l0 7.5-26.4 1.6c-24.6 1.5-37.9 11.6-37.9 29.1 0 17.7 13.7 29.4 33.4 29.4 13.3 0 25.6-6.7 31.2-17.4l.4 0 0 16.4 19.6 0 0-68 .1 0zM516 210.9l-21.5 0-24.9 80.6-.4 0-24.9-80.6-22.3 0 35.9 99.3-1.9 6c-3.2 10.2-8.5 14.2-17.9 14.2-1.7 0-4.9-.2-6.2-.3l0 16.4c1.2 .4 6.5 .5 8.1 .5 20.7 0 30.4-7.9 38.9-31.8L516 210.9z\"],\n \"brave\": [448, 512, [], \"e63c\", \"M145.6 0l157 0 44.7 50.8s39.3-10.9 57.8 7.6 33.8 34.9 33.8 34.9l-12 29.5 15.3 43.7s-44.9 170.2-50.1 191c-10.4 40.9-17.4 56.8-46.9 77.5s-82.9 56.8-91.6 62.2c-1.9 1.2-3.9 2.5-5.9 3.9-7.5 5.1-15.8 10.8-23.5 10.8s-16.1-5.7-23.5-10.8c-2-1.4-4-2.8-5.9-3.9-8.7-5.5-62.1-41.5-91.6-62.2s-36.5-36.6-46.9-77.5c-5.3-20.8-50.1-191-50.1-191L21.5 122.8 9.3 93.3s15.3-16.4 33.8-34.9 57.8-7.6 57.8-7.6L145.6 0zm78.5 407.6c3.7 0 8.9-4.7 13-8.4 .6-.5 1.2-1.1 1.7-1.5 4.2-3.7 47.8-37.5 51-39.8s5.4-6.5 1.9-8.7c-2.8-1.7-10-5.5-20.3-10.8-3-1.6-6.3-3.2-9.7-5-15.4-8-34.5-14.7-37.5-14.7s-22.1 6.8-37.5 14.7c-3.5 1.8-6.7 3.5-9.7 5-10.3 5.3-17.6 9.1-20.3 10.8-3.6 2.2-1.4 6.4 1.9 8.7s46.8 36.1 51 39.8c.5 .5 1.1 1 1.7 1.5 4.1 3.7 9.3 8.4 13 8.4l-.2 0zm0-165.7c4.7 0 17.6-3 26.4-5l2-.5c7.8-1.8 7.3-6.3 6.4-13-.1-.8-.2-1.6-.3-2.4-.6-6.1-5.8-33.1-9.1-50.3-1.1-5.8-2-10.5-2.4-12.9-1.5-8.1-.6-9.4 .7-11.3 .2-.3 .5-.7 .7-1.1 1.4-2.3 16-6.2 27.9-9.5 2.5-.7 4.8-1.3 6.9-1.9 10.6-3 32.4-.6 44.2 .6 1.8 .2 3.4 .4 4.7 .5 9.6 .9 10.4 2.3 7.2 3.8-2.3 1.1-16.2 6.3-28.7 10.9-4.7 1.8-9.2 3.5-12.8 4.8-1.5 .5-3 1.1-4.5 1.7-12.5 4.6-27.2 10-28.9 19.4-1.5 8.3 5.2 19.9 11.3 30.3 1.6 2.8 3.2 5.5 4.6 8.1 6.3 11.9 6.5 13.3 6.1 18.1-.4 3.9-14.5 12.7-22.4 17.6-1.8 1.1-3.3 2.1-4.2 2.7-.8 .5-2.1 1.4-3.8 2.4-8.6 5.2-26.3 16-26.3 22.5 0 7.8 24.6 28.1 32.4 33.2s28.9 16.1 37.9 17.8 23-8.5 31.2-23.8c7.7-14.4 1.7-28.5-3.2-40l-.9-2.2c-4.5-10.6 1.9-17 6.2-21.3 .5-.5 1-1 1.4-1.4l43-45.7c1.3-1.3 2.5-2.6 3.7-3.8 5.8-5.7 10.8-10.5 10.8-22.8 0-14.9-57.5-84.5-57.5-84.5s-48.5 9.3-55.1 9.3c-5.2 0-15.3-3.5-25.8-7.1-2.7-.9-5.4-1.9-8-2.7-13-4.3-21.8-4.4-21.8-4.4s-8.7 0-21.8 4.4c-2.7 .9-5.4 1.8-8 2.7-10.5 3.6-20.6 7.1-25.8 7.1-6.5 0-55.1-9.3-55.1-9.3s-57.5 69.6-57.5 84.5c0 12.3 4.9 17.1 10.8 22.8 1.2 1.2 2.5 2.4 3.7 3.8l43.1 45.8c.4 .5 .9 .9 1.4 1.4 4.3 4.3 10.6 10.7 6.2 21.3l-.9 2.2c-4.9 11.5-11 25.6-3.2 40 8.2 15.3 22.2 25.5 31.2 23.8s30.1-12.7 37.9-17.8 32.4-25.4 32.4-33.2c0-6.5-17.7-17.3-26.3-22.5-1.7-1-3.1-1.9-3.8-2.4-.9-.6-2.4-1.5-4.2-2.7-7.9-4.9-22-13.7-22.4-17.6-.4-4.8-.3-6.2 6.1-18.1 1.3-2.5 2.9-5.3 4.6-8.1 6-10.4 12.8-22 11.3-30.3-1.7-9.4-16.4-14.8-28.9-19.4-1.6-.6-3.1-1.1-4.5-1.7-3.6-1.4-8.1-3.1-12.8-4.8l-.1 0c-12.5-4.7-26.4-9.9-28.7-10.9-3.2-1.5-2.3-2.8 7.2-3.8 1.3-.1 2.9-.3 4.7-.5 11.8-1.3 33.6-3.6 44.2-.6 2.1 .6 4.4 1.2 6.9 1.9 11.9 3.2 26.5 7.2 27.9 9.5 .2 .4 .5 .7 .7 1.1 1.3 1.9 2.2 3.2 .7 11.3-.4 2.4-1.3 7.1-2.4 12.9-3.3 17.2-8.5 44.2-9.1 50.3-.1 .8-.2 1.7-.3 2.4-.8 6.7-1.4 11.2 6.4 13l2 .5c8.8 2 21.8 5 26.4 5l0-.1z\"],\n \"etsy\": [384, 512, [], \"f2d7\", \"M384 348c-1.8 10.7-13.8 110-15.5 132-117.9-4.3-219.9-4.7-368.5 0l0-25.5c45.5-8.9 60.6-8 61-35.2 1.8-72.3 3.5-244.1 0-322-1-28.5-12.1-26.8-61-36L0 35.8c73.9 2.4 255.9 8.6 363-3.8-3.5 38.2-7.8 126.5-7.8 126.5l-23.2 0C320.9 115.7 313.2 68 277.3 68l-137 0c-10.2 0-10.7 3.5-10.7 9.8l0 163.8c58 .5 88.5-2.5 88.5-2.5 29.8-1 27.6-8.5 40.7-65.3l25.8 0c-4.4 101.4-3.9 61.8-1.8 160.3L257 334c-9.2-40.1-9.1-61-39.5-61.5 0 0-21.5-2-88-2l0 139c0 26 14.3 38.3 44.3 38.3l89.3 0c63.6 0 66.6-25 98.7-99.8l22.2 0z\"],\n \"btc\": [384, 512, [], \"f15a\", \"M310.4 242.6c27.7-14.2 45.4-39.4 41.3-81.3-5.4-57.4-52.5-76.6-114.8-81.9l0-79.4-48.5 0 0 77.2c-12.6 0-25.5 .3-38.4 .6l0-77.8-48.5 0 0 79.4c-17.8 .5-38.6 .3-97.4 0l0 51.7c38.3-.7 58.4-3.1 63 21.4l0 217.4c-2.9 19.5-18.5 16.7-53.3 16.1L4 443.7c88.5 0 97.4 .3 97.4 .3l0 68 48.5 0 0-67.1c13.2 .3 26.2 .3 38.4 .3l0 66.7 48.5 0 0-68c81.3-4.4 135.6-24.9 142.9-101.5 5.7-61.4-23.3-88.9-69.3-99.9zM150.8 134.6c27.4 0 113.1-8.5 113.1 48.5 0 54.5-85.7 48.2-113.1 48.2l0-96.7zm0 251.8l0-106.5c32.8 0 133.1-9.1 133.1 53.3 0 60.2-100.4 53.3-133.1 53.3z\"],\n \"adn\": [512, 512, [], \"f170\", \"M256 167.5l64.9 98.8-129.8 0 64.9-98.8zM8 256a248 248 0 1 1 496 0 248 248 0 1 1 -496 0zm396.2 82.7l-148.2-223.2-148.2 223.2 30.4 0 33.6-51.7 168.6 0 33.6 51.7 30.2 0z\"],\n \"square-x-twitter\": [448, 512, [], \"e61a\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm297.1 84l-103.8 118.6 122.1 161.4-95.6 0-74.8-97.9-85.7 97.9-47.5 0 111-126.9-117.1-153.1 98 0 67.7 89.5 78.2-89.5 47.5 0zM323.3 367.6l-169.9-224.7-28.3 0 171.8 224.7 26.4 0z\"],\n \"square-font-awesome\": [448, 512, [], \"e5ad\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm90 122c0 9.3-4.8 17.4-12.1 22l188.9 0c7.3 0 13.2 5.9 13.2 13.2 0 1.8-.4 3.7-1.1 5.4L312 264 342.9 333.4c.7 1.7 1.1 3.5 1.1 5.4 0 7.3-5.9 13.2-13.2 13.2l-186.8 0 0 32-32 0 0-209.5c-6.1-4.8-10-12.2-10-20.5 0-14.4 11.6-26 26-26s26 11.6 26 26z\"],\n \"forumbee\": [448, 512, [], \"f211\", \"M5.8 309.7C2 292.7 0 275.5 0 258.3 0 135 99.8 35 223.1 35 239.7 35 256.4 37 272.4 40.5 149 87.5 51.9 186 5.8 309.7zM398.7 120.5c-13.7-17.5-29.7-32.7-47.8-45.3-149.6 44.3-266.3 162.1-309.7 312 12.5 18.1 28 35.6 45.2 49 43.1-151.3 161.2-271.7 312.3-315.7zm15.8 252.7c15.2-25.1 25.4-53.7 29.5-82.8-79.4 42.9-145 110.6-187.6 190.3 30-4.4 58.9-15.3 84.6-31.3 35 13.1 70.9 24.3 107 33.6-9.3-36.5-20.4-74.5-33.5-109.8zm29.7-145.5c-2.6-19.5-7.9-38.7-15.8-56.8-137.9 45.8-246.4 156.6-291.3 295.1 18.1 7.6 37 12.5 56.6 15.2 46.3-114.1 136.8-206.8 250.5-253.5z\"],\n \"42-group\": [640, 512, [\"innosoft\"], \"e080\", \"M320 96l0 320c21 0 41.8-4.1 61.2-12.2s37-19.8 51.9-34.7 26.6-32.5 34.7-51.9 12.2-40.2 12.2-61.2-4.1-41.8-12.2-61.2-19.8-37.1-34.7-51.9-32.5-26.6-51.9-34.7-40.2-12.2-61.2-12.2zM0 256L160 416 320 256 160 96 0 256zm480 0c0 21 4.1 41.8 12.2 61.2s19.8 37 34.7 51.9 32.5 26.6 51.9 34.7 40.2 12.2 61.2 12.2l0-320c-42.4 0-83.1 16.9-113.1 46.9S480 213.6 480 256z\"],\n \"stumbleupon-circle\": [512, 512, [], \"f1a3\", \"M264 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zm0 177.5c-9.8 0-17.8 8-17.8 17.8l0 106.9c0 40.9-33.9 73.9-74.9 73.9-41.4 0-74.9-33.5-74.9-74.9l0-46.5 57.3 0 0 45.8c0 10 8 17.8 17.8 17.8s17.8-7.9 17.8-17.8l0-108.4c0-40 34.2-72.1 74.7-72.1 40.7 0 74.7 32.3 74.7 72.6l0 23.7-34.1 10.1-22.9-10.7 0-20.6c.1-9.6-7.9-17.6-17.7-17.6zM431.6 309.1c0 41.4-33.5 74.9-74.9 74.9-41.2 0-74.9-33.2-74.9-74.2l0-46.8 22.9 10.7 34.1-10.1 0 47.1c0 9.8 8 17.6 17.8 17.6s17.8-7.9 17.8-17.6l0-48 57.3 0c-.1 45.9-.1 46.4-.1 46.4z\"],\n \"symfony\": [512, 512, [], \"f83d\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM389.7 151.5c-11.5 .4-19.4-6.4-19.8-16.9-.3-9.2 6.7-13.4 6.5-18.9-.2-6.5-10.2-6.8-12.9-6.7-39.8 1.3-48.6 57-58.9 113.8 21.4 3.2 36.6-.7 45.1-6.2 12-7.7-3.3-15.7-1.4-24.6 4-18.2 32.6-19 32 5.3-.4 17.9-25.9 41.8-77.6 35.7-10.8 59.5-18.4 115-58.2 161.7-29 34.5-58.4 39.8-71.6 40.3-24.6 .9-41-12.3-41.6-29.8-.6-17 14.4-26.3 24.3-26.6 21.9-.8 30.1 25.7 14.9 34-12.1 9.7 .1 12.6 2.1 12.6 10.4-.4 17.3-5.5 22.2-9 24-20 33.2-54.9 45.4-118.3 8.2-49.7 17-78 18.2-82-16.9-12.7-27.1-28.6-49.8-34.7-15.6-4.2-25.1-.6-31.8 7.8-7.9 10-5.3 23 2.4 30.7l12.6 14c15.5 17.9 24 31.9 20.8 50.6-5.1 29.9-40.7 52.9-82.9 39.9-36-11.1-42.7-36.6-38.4-50.6 7.5-24.2 42.4-11.7 34.6 13.6-2.8 8.6-4.9 8.7-6.3 13.1-4.6 14.8 41.8 28.4 51-1.4 4.5-14.5-5.3-21.7-22.2-39.9-28.5-31.7-16-65.5 2.9-79.7 52.8-39.4 100.5 17.5 110.6 25.8 37.2-109 100.5-105.5 102.4-105.5 25.2-.8 44.2 10.6 44.8 28.6 .2 7.7-4.2 22.6-19.5 23.1z\"],\n \"salesforce\": [640, 512, [], \"f83b\", \"M249.4 245.6l-26.4 0c.7-5.2 3.3-14.1 13.6-14.1 6.8 0 12 3.8 12.7 14.1zM386 231.8c-.5 0-14.1-1.8-14.1 20s13.6 20 14.1 20c13 0 14.1-13.5 14.1-20 0-21.8-13.7-20-14.1-20zM142.8 255.5c-1.1 .9-2 2-2.5 3.2s-.8 2.7-.7 4c0 4.8 2.1 6.1 3.3 7 4.7 3.7 15.1 2.1 20.9 1l0-16.9c-5.3-1.1-16.7-2-20.9 1.6zM640.5 232c0 87.6-80 154.4-165.4 136.4-18.4 33-70.7 70.8-132.2 41.6-41.2 96-177.9 92.2-213.8-5.2-119.7 23.9-178.8-138.4-75.3-199.3-34.8-79.4 22.6-173.6 114.3-173.6 19.1 0 37.9 4.4 55 12.9s32 20.7 43.6 35.8c20.7-21.4 49.4-34.8 81.1-34.8 42.3 0 79 23.5 98.8 58.6 92.8-40.7 193.8 28.2 193.8 127.5zM120.9 263.8c0-11.8-11.7-15.2-17.9-17.2-5.3-2.1-13.4-3.5-13.4-8.9 0-9.5 17-6.7 25.2-2.1 0 0 1.2 .7 1.6-.5 .2-.7 2.4-6.6 2.6-7.3 .1-.3 .1-.6-.1-.8s-.4-.5-.6-.6c-12.3-7.6-40.7-8.5-40.7 12.7 0 12.5 11.5 15.4 17.9 17.2 4.7 1.6 13.2 3 13.2 8.7 0 4-3.5 7.1-9.2 7.1-6.9 0-13.5-2.2-19-6.3-.5-.2-1.4-.7-1.6 .7l-2.4 7.5c-.5 .9 .2 1.2 .2 1.4 1.8 1.4 10.3 6.6 22.8 6.6 13.2 0 21.4-7.1 21.4-18.1l0 0zm32-42.6c-10.1 0-18.7 3.2-21.4 5.2-.1 .1-.2 .2-.3 .3s-.1 .2-.1 .4 0 .3 0 .4 .1 .3 .2 .4l2.6 7.1c.1 .2 .2 .5 .5 .6s.5 .2 .7 .1c.6 0 6.8-4 16.9-4 4 0 7.1 .7 9.2 2.4 3.6 2.8 3.1 8.3 3.1 10.6-4.8-.3-19.1-3.4-29.4 3.8-2.3 1.6-4.3 3.8-5.5 6.3s-1.9 5.4-1.8 8.2c0 5.9 1.5 10.4 6.6 14.4 12.2 8.2 36.3 2 38.1 1.4 1.6-.3 3.5-.7 3.5-1.9l0-33.9c0-4.6 .3-21.6-22.8-21.6l0 .1zm46.6-21c0-.2 0-.3-.1-.5s-.1-.3-.3-.4-.2-.2-.4-.3-.3-.1-.5-.1l-9.8 0c-.2 0-.3 0-.5 .1s-.3 .1-.4 .3-.2 .2-.3 .4-.1 .3-.1 .5l0 79c0 .2 0 .3 .1 .5s.1 .3 .3 .4 .2 .2 .4 .3 .3 .1 .5 .1l9.9 0c.2 0 .3 0 .5-.1s.3-.1 .4-.3 .2-.2 .3-.4 .1-.3 .1-.5l-.1-79zm55.7 28.9c-2.1-2.3-6.8-7.5-17.6-7.5-3.5 0-14.2 .2-20.7 8.9-6.4 7.6-6.6 18.1-6.6 21.4 0 3.1 .2 14.3 7.1 21.2 2.6 2.9 9.1 8.2 22.8 8.2 10.8 0 16.5-2.3 18.6-3.8 .5-.2 .7-.7 .2-1.9l-2.3-6.8c-.1-.3-.3-.5-.6-.6s-.5-.2-.8-.1c-2.6 .9-6.3 2.8-15.3 2.8-17.4 0-16.8-14.7-16.9-16.7l37.2 0c.3 0 .5-.1 .7-.3s.4-.4 .4-.7c-.3 0 2.1-14.7-6.1-24.2l0 0zm36.7 52.7c13.2 0 21.4-7.1 21.4-18.1 0-11.8-11.7-15.2-17.9-17.2-4.1-1.7-13.4-3.4-13.4-8.9 0-3.8 3.3-6.4 8.5-6.4 5.8 .1 11.5 1.6 16.7 4.2 0 0 1.2 .7 1.6-.5 .2-.7 2.4-6.6 2.6-7.3 .1-.3 .1-.6-.1-.8s-.4-.5-.6-.6c-7.9-4.9-16.7-4.9-20.2-4.9-12 0-20.5 7.3-20.5 17.6 0 12.5 11.5 15.4 17.9 17.2 6.1 2 13.2 3.3 13.2 8.7 0 4-3.5 7.1-9.2 7.1-6.9 0-13.5-2.2-19-6.4-.1-.1-.3-.2-.5-.2s-.4 0-.5 .1-.3 .2-.4 .3-.2 .3-.2 .5l-2.3 7.5c-.5 .9 .2 1.2 .2 1.4 1.7 1.4 10.3 6.6 22.8 6.6l0 0zM357.6 224c0-.7-.2-1.2-1.2-1.2l-11.8 0c0-.1 .9-8.9 4.5-12.5 4.2-4.2 11.8-1.6 12-1.6 1.2 .5 1.4 0 1.6-.5l2.8-7.8c.7-.9 0-1.2-.2-1.4-5.1-2-17.4-2.9-24.5 4.2-5.5 5.5-7 13.9-8 19.5l-8.5 0c-.3 0-.6 .2-.8 .4s-.3 .5-.4 .8l-1.4 7.8c0 .7 .2 1.2 1.2 1.2l8.2 0c-8.5 47.9-8.7 50.2-10.3 55.5-1.1 3.6-3.3 6.9-5.9 7.8-.1 0-3.9 1.7-9.6-.2 0 0-.9-.5-1.4 .7-.2 .7-2.6 6.8-2.8 7.5s0 1.4 .5 1.4c5.1 2 13 1.8 17.9 0 6.3-2.3 9.7-7.9 11.5-12.9 2.8-7.7 2.8-9.8 11.8-59.7l12.2 0c.3 0 .6-.2 .8-.4s.3-.5 .4-.8l1.4-7.8zM411 240c-.6-1.7-5.1-18.1-25.2-18.1-15.2 0-23 10-25.2 18.1-1 3-3.2 14 0 23.5 .1 .3 4.4 18.1 25.2 18.1 15 0 22.9-9.6 25.2-18.1 3.2-9.6 1-20.5 0-23.5zm45.4-16.7c-5-1.7-16.6-1.9-22.1 5.4l0-4.5c0-.2 0-.3-.1-.5s-.1-.3-.3-.4-.2-.2-.4-.3-.3-.1-.5-.1l-9.4 0c-.2 0-.3 0-.5 .1s-.3 .1-.4 .3-.2 .2-.3 .4-.1 .3-.1 .5l0 55.3c0 .2 0 .3 .1 .5s.1 .3 .3 .4 .2 .2 .4 .3 .3 .1 .5 .1l9.6 0c.2 0 .3 0 .5-.1s.3-.1 .4-.3 .2-.2 .3-.4 .1-.3 .1-.5l0-27.8c0-2.9 .1-11.4 4.5-15.1 4.9-4.9 12-3.4 13.4-3.1 .3 0 .6-.1 .8-.3s.4-.4 .6-.7c1.2-2.6 2.2-5.3 3.1-8 .1-.3 .1-.5 0-.8s-.3-.5-.5-.6l0 0zm46.8 54.1l-2.1-7.3c-.5-1.2-1.4-.7-1.4-.7-4.2 1.8-10.1 1.9-11.3 1.9-4.6 0-17.2-1.1-17.2-19.8 0-6.2 1.8-19.8 16.5-19.8 3.9-.1 7.8 .5 11.5 1.6 0 0 .9 .5 1.2-.7 .9-2.6 1.6-4.5 2.6-7.5 .2-.9-.5-1.2-.7-1.2-11.6-3.9-22.3-2.5-27.8 0-1.6 .7-16.2 6.5-16.2 27.5 0 2.9-.6 30.1 28.9 30.1 5.3 0 10.6-1 15.5-2.8 .2-.2 .4-.4 .5-.6s.1-.5 0-.8l0 0zm53.9-39.5c-.8-3-5.4-16.2-22.3-16.2-16 0-23.5 10.1-25.6 18.6-1.2 3.8-1.7 7.8-1.7 11.8 0 25.9 18.8 29.4 29.9 29.4 10.8 0 16.5-2.3 18.6-3.8 .5-.2 .7-.7 .2-1.9l-2.4-6.8c-.1-.3-.3-.5-.6-.6s-.6-.2-.8-.1c-2.6 .9-6.3 2.8-15.3 2.8-17.4 0-16.9-14.7-16.9-16.7l37.2 0c.3 0 .5-.1 .7-.3s.4-.4 .4-.7c-.2 0 .9-7.1-1.4-15.5l0 0zm-23.3-6.4c-10.3 0-13 9-13.6 14.1l26.4 0c-.9-11.9-7.6-14.1-12.7-14.1l0 0z\"],\n \"sourcetree\": [448, 512, [], \"f7d3\", \"M427.4 203c0-112.1-90.9-203-203-203-112.1-.2-203 90.6-203.2 202.6-.1 43 13.5 84.8 38.7 119.6s60.9 60.6 101.8 73.8l0 101.7c0 3.8 1.5 7.4 4.2 10.1s6.3 4.2 10.1 4.2l96.4 0c3.8 0 7.4-1.5 10.1-4.2s4.2-6.3 4.2-10.1l0-101.6c40.8-13.2 76.5-39 101.7-73.7s38.9-76.5 39-119.4zm-271.6 0c0-90.8 137.3-90.8 137.3 0-.1 89.9-137.3 91-137.3 0z\"],\n \"linkedin-in\": [448, 512, [], \"f0e1\", \"M100.3 448l-92.9 0 0-299.1 92.9 0 0 299.1zM53.8 108.1C24.1 108.1 0 83.5 0 53.8 0 39.5 5.7 25.9 15.8 15.8s23.8-15.8 38-15.8 27.9 5.7 38 15.8 15.8 23.8 15.8 38c0 29.7-24.1 54.3-53.8 54.3zM447.9 448l-92.7 0 0-145.6c0-34.7-.7-79.2-48.3-79.2-48.3 0-55.7 37.7-55.7 76.7l0 148.1-92.8 0 0-299.1 89.1 0 0 40.8 1.3 0c12.4-23.5 42.7-48.3 87.9-48.3 94 0 111.3 61.9 111.3 142.3l0 164.3-.1 0z\"],\n \"html5\": [384, 512, [], \"f13b\", \"M0 32L34.9 427.8 191.5 480 349.1 427.8 384 32 0 32zM308.2 159.9l-183.8 0 4.1 49.4 175.6 0-13.6 148.4-97.9 27 0 .3-1.1 0-98.7-27.3-6-75.8 47.7 0 3.5 38.1 53.5 14.5 53.7-14.5 6-62.2-166.9 0-12.8-145.6 241.1 0-4.4 47.7z\"],\n \"rust\": [512, 512, [], \"e07a\", \"M508.5 249.8l-21.8-13.5c-.2-2-.3-3.9-.5-5.9l18.7-17.5c.9-.9 1.6-1.9 2-3.1s.5-2.5 .2-3.7-.8-2.4-1.6-3.3-1.8-1.7-3-2.1l-24-9c-.5-1.9-1.1-3.8-1.7-5.6l15-20.8c.7-1 1.2-2.2 1.3-3.4s0-2.5-.5-3.7-1.2-2.2-2.2-2.9-2.1-1.3-3.4-1.5l-25.4-4.2c-.9-1.7-1.8-3.4-2.7-5.2l10.7-23.4c.5-1.1 .7-2.4 .6-3.6s-.5-2.4-1.2-3.5-1.6-1.9-2.8-2.5-2.4-.8-3.6-.8l-25.8 .9c-1.2-1.5-2.4-2.9-3.6-4.4L439 81.8c.3-1.2 .3-2.5-.1-3.7s-1-2.3-1.9-3.2-2-1.5-3.2-1.9-2.5-.4-3.7-.1L405 78.9c-1.4-1.2-2.9-2.4-4.4-3.6l.9-25.8c.1-1.3-.2-2.5-.8-3.6s-1.4-2.1-2.5-2.8-2.2-1.1-3.5-1.2-2.5 .1-3.7 .6L367.7 53.2c-1.7-.9-3.4-1.8-5.1-2.7l-4.2-25.4c-.2-1.2-.7-2.4-1.5-3.4s-1.8-1.7-2.9-2.2-2.4-.7-3.7-.5-2.4 .6-3.4 1.3L326 35.3c-1.9-.6-3.8-1.1-5.6-1.7l-9-24c-.4-1.2-1.2-2.2-2.1-3s-2.1-1.4-3.3-1.6-2.5-.2-3.7 .2-2.3 1.1-3.1 2L281.6 25.9c-2-.2-3.9-.4-5.9-.5L262.3 3.5c-.7-1.1-1.6-1.9-2.7-2.6s-2.3-.9-3.6-.9-2.5 .3-3.6 .9-2 1.5-2.7 2.6L236.2 25.3c-2 .2-3.9 .3-5.9 .6L212.9 7.1c-.9-.9-1.9-1.6-3.1-2s-2.5-.5-3.7-.2-2.4 .8-3.3 1.6-1.7 1.8-2.1 3l-9 24c-1.9 .6-3.8 1.1-5.7 1.7l-20.8-15c-1-.7-2.2-1.2-3.4-1.3s-2.5 0-3.7 .5-2.2 1.2-2.9 2.2-1.3 2.1-1.5 3.4l-4.2 25.4c-1.7 .9-3.4 1.8-5.2 2.7L120.9 42.6c-1.1-.5-2.4-.7-3.7-.6s-2.5 .5-3.5 1.2-1.9 1.7-2.5 2.8-.8 2.4-.8 3.6l.9 25.8c-1.5 1.2-3 2.4-4.4 3.6L81.8 73c-1.2-.3-2.5-.3-3.7 .1s-2.3 1-3.2 1.9-1.5 2-1.9 3.2-.4 2.5-.1 3.7L78.9 107c-1.2 1.4-2.4 2.9-3.6 4.4l-25.8-.9c-1.3 0-2.5 .2-3.6 .8s-2.1 1.4-2.8 2.4-1.1 2.2-1.2 3.5 .1 2.5 .6 3.6l10.7 23.4c-.9 1.7-1.8 3.4-2.7 5.2l-25.4 4.1c-1.2 .2-2.4 .7-3.4 1.5s-1.7 1.8-2.2 2.9-.7 2.4-.5 3.7 .6 2.4 1.3 3.4l15 20.8c-.6 1.9-1.1 3.8-1.7 5.7l-24 9c-1.2 .4-2.2 1.2-3 2.1s-1.4 2.1-1.6 3.3-.2 2.5 .2 3.7 1.1 2.3 2 3.1l18.7 17.5c-.2 2-.4 3.9-.6 5.9L3.5 249.8c-1.1 .7-1.9 1.6-2.6 2.7s-.9 2.3-.9 3.6 .3 2.5 .9 3.6 1.5 2 2.6 2.7l21.8 13.5c.2 2 .3 3.9 .6 5.9L7.1 299.1c-.9 .9-1.6 1.9-2 3.1s-.5 2.5-.2 3.7 .8 2.4 1.6 3.3 1.8 1.7 3 2.1l24 9c.6 1.9 1.1 3.8 1.7 5.6l-15 20.8c-.7 1-1.2 2.2-1.3 3.4s0 2.5 .5 3.7 1.2 2.2 2.2 2.9 2.1 1.3 3.4 1.5l25.4 4.2c.9 1.7 1.8 3.4 2.7 5.1L42.6 391.1c-.5 1.1-.7 2.4-.6 3.6s.5 2.5 1.2 3.5c.7 1.1 1.6 1.9 2.7 2.5s2.4 .8 3.6 .8l25.8-.9c1.2 1.5 2.4 2.9 3.6 4.4L73 430.2c-.3 1.2-.3 2.5 .1 3.7s1 2.3 1.9 3.2 2 1.5 3.2 1.9 2.5 .4 3.7 .1l25.2-5.9c1.5 1.2 2.9 2.4 4.4 3.6l-.9 25.8c0 1.3 .2 2.5 .8 3.6s1.4 2.1 2.5 2.8 2.2 1.1 3.5 1.2 2.5-.1 3.6-.6l23.4-10.7c1.7 .9 3.4 1.8 5.1 2.7l4.2 25.4c.2 1.2 .7 2.4 1.5 3.4s1.8 1.8 2.9 2.2 2.4 .7 3.7 .5 2.4-.6 3.4-1.3l20.8-15c1.9 .6 3.8 1.1 5.6 1.7l9 24c.4 1.2 1.2 2.2 2.1 3s2.1 1.4 3.3 1.6 2.5 .2 3.7-.2 2.3-1.1 3.1-2l17.5-18.7c2 .2 3.9 .4 5.9 .6l13.5 21.8c.7 1.1 1.6 1.9 2.7 2.6s2.3 .9 3.6 .9 2.5-.3 3.6-.9 2-1.5 2.7-2.6l13.5-21.8c2-.2 3.9-.3 5.9-.6l17.5 18.7c.9 .9 1.9 1.6 3.1 2s2.5 .5 3.7 .2 2.4-.8 3.3-1.6 1.7-1.8 2.1-3l9-24c1.9-.6 3.8-1.1 5.6-1.7l20.8 15c1 .7 2.2 1.2 3.4 1.3s2.5 0 3.7-.5 2.2-1.2 2.9-2.2 1.3-2.1 1.5-3.4l4.2-25.4c1.7-.9 3.4-1.8 5.1-2.7l23.4 10.7c1.1 .5 2.4 .7 3.6 .6s2.4-.5 3.5-1.2 1.9-1.6 2.5-2.8 .8-2.4 .8-3.6l-.9-25.8c1.5-1.2 2.9-2.4 4.4-3.6l25.2 5.9c1.2 .3 2.5 .3 3.7-.1s2.3-1 3.2-1.9 1.5-2 1.9-3.2 .4-2.5 .1-3.7L433.1 405c1.2-1.4 2.4-2.9 3.6-4.4l25.8 .9c1.3 .1 2.5-.2 3.6-.8s2.1-1.4 2.8-2.5c.7-1 1.1-2.2 1.2-3.5s-.1-2.5-.6-3.6l-10.7-23.4c.9-1.7 1.8-3.4 2.7-5.1l25.4-4.2c1.2-.2 2.4-.7 3.4-1.5s1.8-1.8 2.2-2.9 .7-2.4 .5-3.7-.6-2.4-1.3-3.4l-15-20.8c.6-1.9 1.1-3.8 1.7-5.6l24-9c1.2-.4 2.2-1.2 3-2.1s1.4-2.1 1.6-3.3 .2-2.5-.2-3.7-1.1-2.3-2-3.1l-18.7-17.5c.2-1.9 .4-3.9 .6-5.9l21.8-13.5c1.1-.7 1.9-1.6 2.6-2.7s.9-2.3 .9-3.6-.3-2.5-.9-3.6-1.5-2-2.6-2.7l0 0zm-151 129.1c-3.6-.8-7.4-.1-10.5 1.9s-5.3 5.2-6 8.8l-7.6 35.7c-24.6 11.1-51.3 16.8-78.3 16.7s-53.6-6.1-78.1-17.4l-7.6-35.7c-.4-1.8-1.1-3.5-2.1-5s-2.4-2.8-3.9-3.8-3.2-1.7-5-2-3.6-.3-5.4 .1l-31.5 6.8c-5.8-6-11.3-12.5-16.3-19.2l153.2 0c1.7 0 2.9-.3 2.9-1.9l0-54.2c0-1.6-1.2-1.9-2.9-1.9l-44.8 0 0-34.4 48.5 0c4.4 0 23.7 1.3 29.8 25.9 1.9 7.5 6.2 32.1 9.1 40 2.9 8.8 14.6 26.5 27.1 26.5l79 0c-5.3 7.1-11.1 13.8-17.3 20.1l-32.1-6.9zm25.8 34.5c0 3-.9 6-2.6 8.5s-4 4.5-6.8 5.6-5.8 1.5-8.8 .9-5.7-2-7.8-4.2-3.6-4.8-4.2-7.8-.3-6 .8-8.8 3.1-5.2 5.6-6.9 5.4-2.6 8.5-2.6l.4 0c4 .1 7.7 1.8 10.5 4.6s4.3 6.7 4.3 10.6l.1 0zm-225.6-.7c0 3-.9 6-2.6 8.5s-4.1 4.5-6.8 5.6-5.8 1.5-8.8 .9-5.7-2-7.8-4.2-3.6-4.8-4.2-7.8-.3-6 .9-8.8 3.1-5.2 5.6-6.8 5.4-2.6 8.5-2.6l.5 0c4 .1 7.7 1.8 10.5 4.6s4.3 6.7 4.3 10.6l.1 0zM69.6 234.2l32.8-14.6c1.7-.7 3.2-1.8 4.4-3.1s2.2-2.9 2.9-4.6 1-3.5 .9-5.3-.5-3.6-1.2-5.3l-6.8-15.2 26.6 0 0 119.7-53.6 0c-6.6-23.2-8.7-47.6-6.1-71.6zM58.3 198.1c0-2 .4-4 1.2-5.8s1.9-3.5 3.3-4.9 3.1-2.5 4.9-3.3 3.8-1.2 5.8-1.2l.5 0c3 .1 5.9 1 8.3 2.8s4.3 4.1 5.4 6.9 1.3 5.8 .7 8.8-2.1 5.6-4.3 7.7-4.9 3.5-7.8 4.1-6 .2-8.7-.9-5.1-3.1-6.8-5.6-2.5-5.4-2.5-8.4l0 0zm155.2 24.5l0-35.3 63.3 0c3.3 0 23.1 3.8 23.1 18.6 0 12.3-15.2 16.7-27.7 16.7l-58.7 0zM399 306.7c-9.8 1.1-20.6-4.1-22-10.1-5.8-32.5-15.4-39.4-30.6-51.4 18.9-12 38.5-29.6 38.5-53.3 0-25.5-17.5-41.6-29.4-49.5-16.8-11-35.3-13.2-40.3-13.2l-198.9 0c27.5-30.7 64.4-51.5 104.9-59.2l23.5 24.6c1.3 1.3 2.8 2.4 4.4 3.1s3.5 1.1 5.3 1.2 3.6-.3 5.3-.9 3.2-1.7 4.6-2.9l26.3-25c26.8 5 52.1 15.8 74.3 31.6s40.6 36.2 54.1 59.9l-18 40.6c-1.5 3.4-1.5 7.2-.2 10.6s3.9 6.2 7.3 7.7l34.6 15.3c1.1 10.8 1.2 21.7 .4 32.5l-19.3 0c-1.9 0-2.7 1.3-2.7 3.1l0 8.8c0 20.8-11.7 25.3-22 26.5zM240 60.2c0-4 1.6-7.9 4.5-10.7s6.7-4.5 10.7-4.5l.4 0c3 .1 5.9 1 8.4 2.8s4.3 4.1 5.4 6.9 1.3 5.8 .7 8.8-2.1 5.6-4.3 7.7-4.9 3.5-7.8 4-6 .2-8.7-.9-5.1-3.1-6.8-5.6-2.5-5.4-2.5-8.4zM436.8 214c-2 0-4-.4-5.8-1.2s-3.5-1.9-4.9-3.3-2.5-3.1-3.3-4.9-1.2-3.8-1.2-5.8 .4-4 1.2-5.8 1.9-3.5 3.3-4.9 3.1-2.5 4.9-3.3 3.8-1.2 5.8-1.2l.4 0c4 .1 7.9 1.7 10.7 4.6s4.4 6.8 4.3 10.8-1.7 7.9-4.6 10.7-6.8 4.4-10.8 4.3z\"],\n \"hornbill\": [512, 512, [], \"f592\", \"M76.8 370.3c1 7.8-.4 15.8-4.1 22.8s-9.6 12.6-16.7 16.1-15.1 4.7-22.9 3.3-15-5.1-20.6-10.7-9.2-12.9-10.5-20.7 0-15.8 3.6-22.9 9.3-12.8 16.3-16.5 15-5 22.9-3.9c-78.3-111.3 52-190.5 52-190.5-5.9 43-8.2 91.2-8.2 91.2-67.3 41.5 .9 64.1 39.8 72.9 9.9 27 27.8 50.2 51.4 66.7s51.6 25.3 80.3 25.3c1.9 0 3.8-.2 5.7-.3l.1 18.9c-99.2 1.4-158.7-29.1-188.9-51.6zm108-327.7c.9-7.2-.2-14.6-3.4-21.2-3-6.2-7.6-11.5-13.4-15.3s-12.5-5.9-19.4-6.2-13.8 1.4-19.8 4.7-11.1 8.3-14.5 14.3-5.2 12.8-5 19.7 2.2 13.7 5.9 19.5 8.9 10.6 15.1 13.6 13.1 4.4 20 3.9c-22.6 29.9-53.8 89.6-52.4 190l21.8-.2c0-.9-.1-1.8-.1-2.7 0-28 8.4-55.3 24.1-78.5s37.9-41.2 63.8-51.6c8-37.7 30.7-114.3 73.8-44.3 0 0 48.1 2.4 91.2 8.2 0 0-77.8-128-187.6-54.1l0 0zM489 176.8c6.3-3 11.7-7.7 15.5-13.6s5.9-12.7 6.1-19.8-1.6-14-5.2-20-8.7-11-14.9-14.3-13.2-4.8-20.2-4.4-13.8 2.8-19.5 6.9-10.2 9.6-13 16.1-3.7 13.6-2.7 20.5c-31.7-21.9-89.8-49.1-183.4-47.7l.1 22.5c2.7-.2 5.4-.4 8.1-.4 28.1 0 55.6 8.5 78.9 24.3s41.2 38.3 51.6 64.5c39.1 9 105.1 31.6 38.5 72.5 0 0-2.3 48.1-8.2 91.2 0 0 133.4-81.2 49-194.6 6.6 .6 13.3-.6 19.3-3.5l0 0zM374.4 436.2c21.4-32.5 46.4-89.7 45.1-179.7l-19.5 .1c.1 2.1 .3 4.1 .3 6.2 0 28.6-8.8 56.5-25.1 80s-39.5 41.4-66.3 51.4c-8.9 39-31.4 106.7-72.8 39.5 0 0-48.1-2.3-91.2-8.2 0 0 79.9 131.3 191.9 51 .3 4.9 1.5 9.6 3.6 14 2.9 6.1 7.5 11.4 13.1 15.1s12.2 6 19 6.4 13.6-1.1 19.6-4.2 11.1-7.8 14.7-13.6 5.6-12.4 5.7-19.2-1.5-13.5-4.8-19.4-8.2-10.9-14.1-14.3-12.6-5.2-19.4-5.1l0-.1z\"],\n \"php\": [640, 512, [], \"f457\", \"M320 104.5c171.4 0 303.2 72.2 303.2 151.5S491.3 407.5 320 407.5C148.6 407.5 16.8 335.3 16.8 256S148.7 104.5 320 104.5zm0-16.8C143.3 87.7 0 163 0 256S143.3 424.3 320 424.3 640 349 640 256 496.7 87.7 320 87.7zM218.2 242.5c-7.9 40.5-35.8 36.3-70.1 36.3l13.7-70.6c38 0 63.8-4.1 56.4 34.3zM97.4 350.3l36.7 0 8.7-44.8c41.1 0 66.6 3 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7l-70.7 0-32.7 168.7zM283.1 136.7l36.5 0-8.7 44.8c31.5 0 60.7-2.3 74.8 10.7 14.8 13.6 7.7 31-8.3 113.1l-37 0c15.4-79.4 18.3-86 12.7-92-5.4-5.8-17.7-4.6-47.4-4.6l-18.8 96.6-36.5 0 32.7-168.6zM505 242.5c-8 41.1-36.7 36.3-70.1 36.3l13.7-70.6c38.2 0 63.8-4.1 56.4 34.3zM384.2 350.3l36.8 0 8.7-44.8c43.2 0 67.1 2.5 90.2-19.1 26.1-24 32.9-66.7 14.3-88.1-9.7-11.2-25.3-16.7-46.5-16.7l-70.7 0-32.8 168.7z\"],\n \"disqus\": [576, 512, [], \"e7d5\", \"M290.2 512c-62.6 0-119.9-22.9-164.2-60.8L17 466.1 59.1 362.2c-14.7-32.4-22.9-68.3-22.9-106.2 0-141.4 113.7-256 254-256 140.3 0 254 114.6 254 256 0 141.4-113.7 256-254 256zM428.9 255.3l0-.7C428.9 180.7 376.8 128 287 128l-97 0 0 256 95.6 0c90.5 0 143.4-54.9 143.4-128.7zM288 321.1l-28.4 0 0-130.2 28.4 0c41.7 0 69.3 23.8 69.3 64.7l0 .7c0 41.3-27.7 64.7-69.3 64.7z\"],\n \"500px\": [384, 512, [], \"f26e\", \"M71.8 344.3c-6.5-14.2-6.9-18.3 7.4-23.1 25.6-8 8 9.2 43.2 49.2l.3 0 0-93.9c1.2-50.2 44-92.2 97.7-92.2 53.9 0 97.7 43.5 97.7 96.8 0 63.4-60.8 113.2-128.5 93.3-10.5-4.2-2.1-31.7 8.5-28.6 53 0 89.4-10.1 89.4-64.4 0-61-77.1-89.6-116.9-44.6-23.5 26.4-17.6 42.1-17.6 157.6 50.7 31 118.3 22 160.4-20.1 24.8-24.8 38.5-58 38.5-93 0-35.2-13.8-68.2-38.8-93.3-24.8-24.8-57.8-38.5-93.3-38.5S151 163.3 126.3 188c-.3 .3-16 16.5-21.2 23.9l-.5 .6c-3.3 4.7-6.3 9.1-20.1 6.1-6.9-1.7-14.3-5.8-14.3-11.8L70.2 20c0-5 3.9-10.5 10.5-10.5L322 9.5c8.3 0 8.3 11.6 8.3 15.1 0 3.9 0 15.1-8.3 15.1l-223.2 0 0 132.9 .3 0c104.2-109.8 282.8-36 282.8 108.9 0 178.1-244.8 220.3-310.1 62.8zM135.1 83.5c-.5 4.2 4.6 24.5 14.6 20.6 124.8-47.5 202.8 40.4 209.4 40.4 4.8 0 22.8-15.3 14.3-22.8-93.2-89-234.5-57-238.3-38.2zM361.5 414.7c-110 109.9-299 60.8-332-104.2 0-12.2-30.4-7.4-28.9 3.3 24 173.4 246 256.9 381.6 121.3 6.9-7.8-12.6-28.4-20.7-20.4zM182.1 306.6c0 4 4.3 7.3 5.5 8.5 3 3 6.1 4.4 8.5 4.4 3.8 0 2.6 .2 22.3-19.5 19.6 19.3 19.1 19.5 22.3 19.5 5.4 0 18.5-10.4 10.7-18.2l-17.3-17.3 18.2-18.2c6.3-6.8-10.1-21.8-16.2-15.7L218.2 268c-18.6-18.8-18.4-19.5-21.5-19.5-5 0-18 11.7-12.4 17.3L202.5 284c-18.1 17.9-20.4 19.2-20.4 22.6z\"],\n \"affiliatetheme\": [512, 512, [], \"f36b\", \"M159.7 237.4C108.4 308.3 43.1 348.2 14 326.6-15.2 304.9 2.8 230 54.2 159.1 105.5 88.2 170.8 48.3 199.9 69.9s11.1 96.6-40.2 167.5zm351.2-57.3c-73.8 123.4-191.9 187.7-264.5 143.6-25-15.2-41.3-41.2-49-73.8-33.6 64.8-92.8 113.8-164.1 133.2 49.8 59.3 124.1 96.9 207 96.9 150 0 271.6-123.1 271.6-274.9 .1-8.5-.3-16.8-1-25z\"],\n \"red-river\": [448, 512, [], \"f3e3\", \"M353.2 32L94.8 32C42.4 32 0 74.4 0 126.8L0 385.2C0 437.6 42.4 480 94.8 480l258.4 0c52.4 0 94.8-42.4 94.8-94.8l0-258.4C448 74.4 405.6 32 353.2 32zM144.9 200.9l0 56.3c0 27-21.9 48.9-48.9 48.9l0-154.2c0-13.2 10.7-23.9 23.9-23.9l154.2 0c0 27-21.9 48.9-48.9 48.9l-56.3 0c-12.3-.6-24.6 11.6-24 24zm176.3 72l-56.3 0c-12.3-.6-24.6 11.6-24 24l0 56.3c0 27-21.9 48.9-48.9 48.9l0-154.2c0-13.2 10.7-23.9 23.9-23.9l154.2 0c0 27-21.9 48.9-48.9 48.9z\"],\n \"twitter\": [512, 512, [], \"f099\", \"M459.4 151.7c.3 4.5 .3 9.1 .3 13.6 0 138.7-105.6 298.6-298.6 298.6-59.5 0-114.7-17.2-161.1-47.1 8.4 1 16.6 1.3 25.3 1.3 49.1 0 94.2-16.6 130.3-44.8-46.1-1-84.8-31.2-98.1-72.8 6.5 1 13 1.6 19.8 1.6 9.4 0 18.8-1.3 27.6-3.6-48.1-9.7-84.1-52-84.1-103l0-1.3c14 7.8 30.2 12.7 47.4 13.3-28.3-18.8-46.8-51-46.8-87.4 0-19.5 5.2-37.4 14.3-53 51.7 63.7 129.3 105.3 216.4 109.8-1.6-7.8-2.6-15.9-2.6-24 0-57.8 46.8-104.9 104.9-104.9 30.2 0 57.5 12.7 76.7 33.1 23.7-4.5 46.5-13.3 66.6-25.3-7.8 24.4-24.4 44.8-46.1 57.8 21.1-2.3 41.6-8.1 60.4-16.2-14.3 20.8-32.2 39.3-52.6 54.3z\"],\n \"fort-awesome\": [512, 512, [], \"f286\", \"M489.5 287.9l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-178.3c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.6 0 0-32c0-6-8-4.6-11.7-4.6l0-38c8.3-2 17.1-3.4 25.7-3.4 10.9 0 20.9 4.3 31.4 4.3 4.6 0 27.7-1.1 27.7-8l0-60c0-2.6-2-4.6-4.6-4.6-5.1 0-15.1 4.3-24 4.3-9.7 0-20.9-4.3-32.6-4.3-8 0-16 1.1-23.7 2.9l0-4.9c5.4-2.6 9.1-8.3 9.1-14.3 0-20.7-31.4-20.8-31.4 0 0 6 3.7 11.7 9.1 14.3l0 111.7c-3.7 0-11.7-1.4-11.7 4.6l0 32-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 32-36.3 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 178.3-36.6 0 0-32c0-2.6-2-4.6-4.6-4.6l-27.4 0c-2.6 0-4.6 2-4.6 4.6l0 219.5 182.9 0 0-96c0-72.6 109.7-72.6 109.7 0l0 96 182.9 0 0-219.5c.1-2.6-1.9-4.6-4.5-4.6zm-288.1-4.5c0 2.6-2 4.6-4.6 4.6l-27.4 0c-2.6 0-4.6-2-4.6-4.6l0-64c0-2.6 2-4.6 4.6-4.6l27.4 0c2.6 0 4.6 2 4.6 4.6l0 64zm146.4 0c0 2.6-2 4.6-4.6 4.6l-27.4 0c-2.6 0-4.6-2-4.6-4.6l0-64c0-2.6 2-4.6 4.6-4.6l27.4 0c2.6 0 4.6 2 4.6 4.6l0 64z\"],\n \"mixer\": [448, 512, [], \"e056\", \"M82.6 76.1c-3.8-5.1-8.7-9.4-14.2-12.5s-11.7-5.1-18.1-5.7-12.8 .1-18.8 2.2-11.6 5.3-16.3 9.6c-17.6 16.2-19 43.5-4.8 62.8l91.8 123-92.3 124.1c-14.2 19.3-13.1 46.6 4.7 62.8 4.7 4.3 10.3 7.6 16.3 9.6s12.5 2.8 18.8 2.2 12.5-2.5 18.1-5.7 10.4-7.4 14.2-12.5L210.9 262.7c1.5-2.1 2.3-4.6 2.3-7.1s-.8-5-2.3-7.1L82.6 76.1zM438.2 379.6l-92.3-124.1 91.8-123c14.2-19.2 12.8-46.6-4.7-62.8-4.7-4.3-10.3-7.6-16.3-9.6s-12.5-2.8-18.8-2.2-12.5 2.5-18.1 5.7-10.4 7.4-14.2 12.5l-128 172.1c-1.5 2.1-2.3 4.6-2.3 7.1s.8 5 2.3 7.1L366 435.9c3.8 5.1 8.7 9.4 14.2 12.5s11.7 5.1 18.1 5.7 12.8-.1 18.8-2.2 11.6-5.3 16.3-9.6c17.8-16.2 19-43.5 4.7-62.8z\"],\n \"lyft\": [512, 512, [], \"f3c3\", \"M0 81.1l77.8 0 0 208.7c0 33.1 15 52.8 27.2 61-12.7 11.1-51.2 20.9-80.2-2.8-17-14-24.8-37.3-24.8-59L0 81.1zM485.9 254.6l0-22 23.8 0 0-76.8-26.1 0c-10.1-46.3-51.2-80.7-100.3-80.7-56.6 0-102.7 46-102.7 102.7l0 179.2c16 2.3 35.4-.3 51.7-14 17.1-14 24.8-37.2 24.8-59l0-6.7 38.8 0 0-76.8-38.8 0 0-23.3c0-34.6 52.2-34.6 52.2 0l0 77.1c0 56.6 46 102.7 102.7 102.7l0-76.5c-14.5 0-26.1-11.7-26.1-25.9zm-294.3-99l0 113c0 15.4-23.8 15.4-23.8 0l0-113-76.8 0 0 132.7c0 23.8 8 54 45 63.9 37 9.8 58.2-10.6 58.2-10.6-2.1 13.4-14.5 23.3-34.9 25.3-15.5 1.6-35.2-3.6-45-7.8l0 70.3c25.1 7.5 51.5 9.8 77.6 4.7 47.1-9.1 76.8-48.4 76.8-100.8l0-178.2-77.1 0 0 .5z\"],\n \"apple-pay\": [640, 512, [], \"f415\", \"M116.9 158.5c-7.5 8.9-19.5 15.9-31.5 14.9-1.5-12 4.4-24.8 11.3-32.6 7.5-9.1 20.6-15.6 31.3-16.1 1.2 12.4-3.7 24.7-11.1 33.8zm10.9 17.2c-17.4-1-32.3 9.9-40.5 9.9-8.4 0-21-9.4-34.8-9.1-17.9 .3-34.5 10.4-43.6 26.5-18.8 32.3-4.9 80 13.3 106.3 8.9 13 19.5 27.3 33.5 26.8 13.3-.5 18.5-8.6 34.5-8.6 16.1 0 20.8 8.6 34.8 8.4 14.5-.3 23.6-13 32.5-26 10.1-14.8 14.3-29.1 14.5-29.9-.3-.3-28-10.9-28.3-42.9-.3-26.8 21.9-39.5 22.9-40.3-12.5-18.6-32-20.6-38.8-21.1zm100.4-36.2l0 194.9 30.3 0 0-66.6 41.9 0c38.3 0 65.1-26.3 65.1-64.3s-26.4-64-64.1-64l-73.2 0zM258.5 165l34.9 0c26.3 0 41.3 14 41.3 38.6s-15 38.8-41.4 38.8l-34.8 0 0-77.4zM420.7 335.9c19 0 36.6-9.6 44.6-24.9l.6 0 0 23.4 28 0 0-97c0-28.1-22.5-46.3-57.1-46.3-32.1 0-55.9 18.4-56.8 43.6l27.3 0c2.3-12 13.4-19.9 28.6-19.9 18.5 0 28.9 8.6 28.9 24.5l0 10.8-37.8 2.3c-35.1 2.1-54.1 16.5-54.1 41.5 .1 25.2 19.7 42 47.8 42zm8.2-23.1c-16.1 0-26.4-7.8-26.4-19.6 0-12.3 9.9-19.4 28.8-20.5l33.6-2.1 0 11c0 18.2-15.5 31.2-36 31.2zm102.5 74.6c29.5 0 43.4-11.3 55.5-45.4l53.1-149-30.8 0-35.6 115.1-.6 0-35.6-115.1-31.6 0 51.2 141.9-2.8 8.6c-4.6 14.6-12.1 20.3-25.5 20.3-2.4 0-7-.3-8.9-.5l0 23.4c1.8 .4 9.3 .7 11.6 .7z\"],\n \"artstation\": [512, 512, [], \"f77a\", \"M2.1 377.4l43 74.3c4.3 8.5 10.8 15.7 18.9 20.7s17.4 7.6 27 7.6l285.4 0-59.2-102.6-315.1 0zM501.9 350L335.7 59.3c-4.4-8.2-10.9-15.1-18.9-20S299.7 32 290.4 32l-88.4 0 257.3 447.6 40.7-70.5c1.9-3.2 21-29.7 2-59.1zM275.2 304.5l-115.5-200-115.5 200 231 0z\"],\n \"node-js\": [448, 512, [], \"f3d3\", \"M224.5 508c-6.7 0-13.5-1.8-19.4-5.2l-61.7-36.5c-9.2-5.2-4.7-7-1.7-8 12.3-4.3 14.8-5.2 27.9-12.7 1.4-.8 3.2-.5 4.6 .4l47.4 28.1c1.7 1 4.1 1 5.7 0L412 367.5c1.7-1 2.8-3 2.8-5l0-213.2c0-2.1-1.1-4-2.9-5.1L227.3 37.7c-1.7-1-4-1-5.7 0L37.1 144.3c-1.8 1-2.9 3-2.9 5.1l0 213.1c0 2 1.1 4 2.9 4.9l50.6 29.2c27.5 13.7 44.3-2.4 44.3-18.7l0-210.4c0-3 2.4-5.3 5.4-5.3l23.4 0c2.9 0 5.4 2.3 5.4 5.3l0 210.5c0 36.6-20 57.6-54.7 57.6-10.7 0-19.1 0-42.5-11.6L20.6 396.1c-12-6.9-19.4-19.8-19.4-33.7l0-213.1c0-13.8 7.4-26.8 19.4-33.7L205.1 9c11.7-6.6 27.2-6.6 38.8 0L428.6 115.7c12 6.9 19.4 19.8 19.4 33.7l0 213.1c0 13.8-7.4 26.7-19.4 33.7L243.9 502.8c-5.9 3.4-12.6 5.2-19.4 5.2zM373.6 297.9c0-39.9-27-50.5-83.7-58-57.4-7.6-63.2-11.5-63.2-24.9 0-11.1 4.9-25.9 47.4-25.9 37.9 0 51.9 8.2 57.7 33.8 .5 2.4 2.7 4.2 5.2 4.2l24 0c1.5 0 2.9-.6 3.9-1.7s1.5-2.6 1.4-4.1c-3.7-44.1-33-64.6-92.2-64.6-52.7 0-84.1 22.2-84.1 59.5 0 40.4 31.3 51.6 81.8 56.6 60.5 5.9 65.2 14.8 65.2 26.7 0 20.6-16.6 29.4-55.5 29.4-48.9 0-59.6-12.3-63.2-36.6-.4-2.6-2.6-4.5-5.3-4.5l-23.9 0c-3 0-5.3 2.4-5.3 5.3 0 31.1 16.9 68.2 97.8 68.2 58.4-.1 92-23.2 92-63.4z\"],\n \"uncharted\": [448, 512, [], \"e084\", \"M171.8 232.8c1.1 0 2.1-.3 3-.9s1.6-1.4 2-2.4c2.2-9.8 7.4-18.6 14.9-25.3 1.2-.8 1.7-2.5 1.7-4.1-.1-.7-.3-1.3-.6-1.9s-.9-1.1-1.4-1.4L74.5 128.5 149.1 85c1.5-.8 2.7-2 3.6-3.5s1.4-3.1 1.4-4.8c0-1.7-.4-3.4-1.3-4.9s-2.2-2.7-3.7-3.4L126.7 55.6c-1.5-.8-3.1-1.2-4.8-1.2s-3.3 .4-4.8 1.2L17 113.6c-1.5 .8-2.7 2-3.6 3.5s-1.4 3.1-1.4 4.8L12 237c0 1.7 .4 3.4 1.3 4.9s2.2 2.7 3.7 3.4l22.4 12.8c1.5 .9 3.2 1.3 5 1.2 2.4 .1 4.8-.8 6.6-2.5 1.8-1.9 2.8-4.4 2.9-7l0-85.3 115.9 67.9c.6 .3 1.4 .4 2.1 .4zM323.4 377.7c-1.7 .1-3.4 .5-5 1.2l-74.5 43.1 0-134.2c0-2.9-2.9-5.8-6.2-4.6-9.4 2.8-19.5 3-29 .4-.7-.2-1.5-.2-2.2-.1s-1.4 .4-2 .9-1.1 1-1.4 1.7-.5 1.4-.5 2.1l0 133.3-74.5-43.1c-1.5-.9-3.2-1.3-5-1.2-2.5 0-4.9 1-6.7 2.8s-2.8 4.2-2.8 6.7l0 26.1c0 1.7 .4 3.4 1.3 4.9s2.2 2.7 3.7 3.4l100.2 57.6c1.5 .9 3.2 1.3 5 1.2 1.7 0 3.4-.4 5-1.2l100.2-57.6c1.5-.8 2.7-2 3.6-3.5s1.4-3.1 1.4-4.8l0-26.1c-.8-4.6-5.4-9.1-10.4-9.1zM286.1 78a23 23 0 1 0 0-46 23 23 0 1 0 0 46zm63.6-10.1a23 23 0 1 0 0 46 23 23 0 1 0 0-46zm63.2 83.7a23 23 0 1 0 0-46 23 23 0 1 0 0 46zm-63.2-9.2a23 23 0 1 0 0 46 23 23 0 1 0 0-46zm-63.6 83.2c4.5 0 9-1.3 12.8-3.9s6.7-6.1 8.5-10.3 2.2-8.8 1.3-13.3-3.1-8.6-6.3-11.8-7.3-5.4-11.8-6.3-9.1-.4-13.3 1.3-7.8 4.7-10.3 8.5-3.9 8.2-3.9 12.8c0 3 .6 6 1.8 8.8s2.9 5.3 5 7.5 4.7 3.8 7.5 5 5.8 1.8 8.8 1.8l0 0zM224 262c4.5 0 9-1.4 12.8-3.9s6.7-6.1 8.5-10.3 2.2-8.8 1.3-13.3-3.1-8.6-6.3-11.8-7.3-5.4-11.8-6.3-9.1-.4-13.3 1.3-7.8 4.7-10.3 8.5-3.9 8.2-3.9 12.8c0 3 .6 6 1.7 8.8s2.8 5.3 5 7.5 4.7 3.8 7.5 5 5.8 1.8 8.8 1.8l0 0zm188.9-82.4c-4.6 0-9 1.3-12.8 3.9s-6.7 6.1-8.5 10.3-2.2 8.8-1.3 13.3 3.1 8.6 6.3 11.8 7.3 5.4 11.8 6.3 9.1 .4 13.3-1.3 7.8-4.7 10.3-8.5 3.9-8.2 3.9-12.8c0-6.1-2.4-11.9-6.7-16.3s-10.2-6.7-16.3-6.7l0 0zm0 72.3c-4.6 0-9 1.3-12.8 3.9s-6.7 6.1-8.5 10.3-2.2 8.8-1.3 13.3 3.1 8.6 6.3 11.8 7.3 5.4 11.8 6.3 9.1 .4 13.3-1.3 7.8-4.7 10.3-8.5 3.9-8.2 3.9-12.8c0-6.1-2.4-11.9-6.7-16.3s-10.2-6.7-16.3-6.7l0 0z\"],\n \"playstation\": [576, 512, [], \"f3df\", \"M571 372.3c-11.3 14.2-38.8 24.3-38.8 24.3l-205.1 73.6 0-54.3 150.9-53.8c17.1-6.1 19.8-14.8 5.8-19.4-13.9-4.6-39.1-3.3-56.2 2.9l-100.5 35.5 0-56.4c23.2-7.8 47.1-13.6 75.7-16.8 40.9-4.5 90.9 .6 130.2 15.5 44.2 14 49.2 34.7 38 48.9zM346.6 279.8l0-139c0-16.3-3-31.3-18.3-35.6-11.7-3.8-19 7.1-19 23.4l0 347.9-93.8-29.8 0-414.7c39.9 7.4 98 24.9 129.2 35.4 79.5 27.3 106.4 61.3 106.4 137.8 0 74.5-46 102.8-104.5 74.6zM43.3 410.2c-45.4-12.8-53-39.5-32.3-54.8 19.1-14.2 51.7-24.9 51.7-24.9l134.5-47.8 0 54.5-96.8 34.6c-17.1 6.1-19.7 14.8-5.8 19.4s39.1 3.3 56.2-2.9l46.4-16.9 0 48.8c-51.6 9.3-101.4 7.3-153.9-10z\"],\n \"microblog\": [448, 512, [], \"e01a\", \"M399.8 362.2c29.5-34.7 47.1-78.3 47.1-125.8 0-113-99.6-204.4-222.5-204.4S2 123.5 2 236.4 101.6 440.9 224.5 440.9c27 0 53.9-4.5 79.4-13.4 1.4-.5 3-.5 4.5-.1s2.7 1.4 3.6 2.6c18.6 25.1 47.6 42.7 79.9 49.9 1.1 .2 2.3 0 3.3-.6s1.7-1.6 1.9-2.8c.1-.6 .1-1.3 0-1.9s-.4-1.2-.8-1.7c-12.3-16-18.7-35.8-18-56s8.4-39.5 21.7-54.7l-.2 .1zM330 212.4l-57.3 43.5 20.8 68.9c.4 1.3 .4 2.7-.1 4s-1.2 2.4-2.3 3.2-2.4 1.2-3.8 1.2-2.7-.4-3.8-1.2l-59.1-41-59.1 41.1c-1.1 .8-2.4 1.2-3.8 1.2s-2.7-.4-3.8-1.2-1.9-1.9-2.3-3.2-.5-2.7-.1-4l20.8-68.9-57.3-43.5c-1.1-.8-1.9-1.9-2.3-3.2s-.4-2.7 0-4 1.2-2.4 2.3-3.2 2.4-1.3 3.7-1.3l71.9-1.5 23.7-67.9c.4-1.3 1.3-2.4 2.4-3.2s2.4-1.2 3.8-1.2 2.7 .4 3.8 1.2 1.9 1.9 2.4 3.2l23.7 67.9 71.9 1.5c1.4 0 2.7 .4 3.8 1.2s1.9 1.9 2.3 3.2 .4 2.7 0 4-1.2 2.4-2.3 3.3l0 0z\"],\n \"gitkraken\": [576, 512, [], \"f3a6\", \"M557.7 118.1c-2.3-6.1-9.3-9.2-15.3-6.6-5.7 2.4-8.5 8.9-6.3 14.6 10.9 29 16.9 60.5 16.9 93.3 0 134.6-100.3 245.7-230.2 262.7l0-123.7c7.9-1.5 15.5-3.6 23-6.2l0 104c106.7-25.9 185.9-122.1 185.9-236.8 0-91.8-50.8-171.8-125.8-213.3-5.7-3.2-13-.9-15.9 5-2.7 5.5-.6 12.2 4.7 15.1 67.9 37.6 113.9 110 113.9 193.2 0 93.3-57.9 173.1-139.8 205.4l0-92.2c14.2-4.5 24.9-17.7 24.9-33.5 0-13.1-6.8-24.4-17.3-30.5 8.3-79.5 44.5-58.6 44.5-83.9l0-14.7c0-38-87.9-161.8-129-164.7-2.5-.2-5-.2-7.6 0-41.2 3-129.1 126.7-129.1 164.7l0 14.8c0 25.3 36.3 4.3 44.5 83.9-10.6 6.1-17.3 17.4-17.3 30.5 0 15.8 10.6 29 24.8 33.5l0 92.2c-81.9-32.2-139.8-112-139.8-205.4 0-83.1 46-155.5 113.9-193.2 5.4-3 7.4-9.6 4.7-15.1-2.9-5.9-10.1-8.2-15.9-5-75 41.5-125.8 121.5-125.8 213.3 0 114.7 79.2 210.8 185.9 236.8l0-104c7.6 2.5 15.1 4.6 23 6.2l0 123.7c-129.8-17-230.2-128.1-230.2-262.7 0-32.8 6-64.3 16.9-93.3 2.2-5.8-.6-12.2-6.3-14.6-6-2.6-13 .4-15.3 6.6-11.8 31.5-18.3 65.6-18.3 101.3 0 155.1 122.6 281.6 276.3 287.8l0-145.9c6.8 .4 15 .5 23.4 0l0 145.8c153.7-6.1 276.3-132.6 276.3-287.7 0-35.7-6.5-69.8-18.3-101.4zM357.9 322.9a23.7 23.7 0 1 1 0-47.4 23.7 23.7 0 1 1 0 47.4zM218.1 275.4a23.7 23.7 0 1 1 0 47.4 23.7 23.7 0 1 1 0-47.4z\"],\n \"telegram\": [512, 512, [62462, \"telegram-plane\"], \"f2c6\", \"M256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM371 176.7c-3.7 39.2-19.9 134.4-28.1 178.3-3.5 18.6-10.3 24.8-16.9 25.4-14.4 1.3-25.3-9.5-39.3-18.7-21.8-14.3-34.2-23.2-55.3-37.2-24.5-16.1-8.6-25 5.3-39.5 3.7-3.8 67.1-61.5 68.3-66.7 .2-.7 .3-3.1-1.2-4.4s-3.6-.8-5.1-.5c-2.2 .5-37.1 23.5-104.6 69.1-9.9 6.8-18.9 10.1-26.9 9.9-8.9-.2-25.9-5-38.6-9.1-15.5-5-27.9-7.7-26.8-16.3 .6-4.5 6.7-9 18.4-13.7 72.3-31.5 120.5-52.3 144.6-62.3 68.9-28.6 83.2-33.6 92.5-33.8 2.1 0 6.6 .5 9.6 2.9 2 1.7 3.2 4.1 3.5 6.7 .5 3.2 .6 6.5 .4 9.8z\"],\n \"itunes-note\": [384, 512, [], \"f3b5\", \"M381.9 388.2c-6.4 27.4-27.2 42.8-55.1 48-24.5 4.5-44.9 5.6-64.5-10.2-23.9-20.1-24.2-53.4-2.7-74.4 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 6.4-7.2 4.4-4.1 4.4-163.2 0-11.2-5.5-14.3-17-12.3-8.2 1.4-185.7 34.6-185.7 34.6-10.2 2.2-13.4 5.2-13.4 16.7 0 234.7 1.1 223.9-2.5 239.5-4.2 18.2-15.4 31.9-30.2 39.5-16.8 9.3-47.2 13.4-63.4 10.4-43.2-8.1-58.4-58-29.1-86.6 17-16.2 40.9-19.5 76.8-25.8 6-1.1 11.2-2.5 15.6-7.4 10.1-11.5 1.8-256.6 5.2-270.2 .8-5.2 3-9.6 7.1-12.9 4.2-3.5 11.8-5.5 13.4-5.5 204-38.2 228.9-43.1 232.4-43.1 11.5-.8 18.1 6 18.1 17.6 .2 344.5 1.1 326-1.8 338.5z\"],\n \"less\": [640, 512, [], \"f41d\", \"M613.2 219c0-20.5 3.2-32.6 3.2-54.6 0-34.2-12.6-45.2-40.5-45.2l-20.5 0 0 24.2 6.3 0c14.2 0 17.3 4.7 17.3 22.1 0 16.3-1.6 32.6-1.6 51.5 0 24.2 7.9 33.6 23.6 37.3l0 1.6c-15.8 3.7-23.6 13.1-23.6 37.3 0 18.9 1.6 34.2 1.6 51.5 0 17.9-3.7 22.6-17.3 22.6l0 .5-6.3 0 0 25.2 20.5 0c27.8 0 40.5-11 40.5-45.2 0-22.6-3.2-34.2-3.2-54.6 0-11 6.8-22.6 27.3-23.6l0-27.3c-20.5-.7-27.3-12.3-27.3-23.3zM507.6 251c-15.8-6.3-30.5-10-30.5-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-21 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51s-22.5-41-43-47.8zM148.7 310.4c-3.7 0-8.4-3.2-8.4-13.1l0-178.2-74.6 0c-28.4 0-41 11-41 45.2 0 22.6 3.2 35.2 3.2 54.6 0 11-6.8 22.6-27.3 23.6l0 27.3c20.5 .5 27.3 12.1 27.3 23.1 0 19.4-3.2 31-3.2 53.6 0 34.2 12.6 45.2 40.5 45.2l20.5 0 0-24.2-6.3 0c-13.1 0-17.3-5.3-17.3-22.6s1.6-32.1 1.6-51.5c0-24.2-7.9-33.6-23.6-37.3l0-1.6c15.8-3.7 23.6-13.1 23.6-37.3 0-18.9-1.6-34.2-1.6-51.5s3.7-22.1 17.3-22.1l14.1 0 0 150.8c0 32.1 11 53.1 43.1 53.1 10 0 17.9-1.6 23.6-3.7l-5.3-34.2c-3.1 .8-4.6 .8-6.2 .8zM380.4 251c-16.3-6.3-31-10-31-20.5 0-7.9 6.3-12.6 17.9-12.6s22.1 4.7 33.6 13.1l21-27.8c-13.1-10-31-20.5-55.2-20.5-35.7 0-59.9 20.5-59.9 49.4 0 25.7 22.6 38.9 41.5 46.2 16.3 6.3 32.1 11.6 32.1 22.1 0 7.9-6.3 13.1-20.5 13.1-13.1 0-26.3-5.3-40.5-16.3l-20.5 30.5c15.8 13.1 39.9 22.1 59.9 22.1 42 0 64.6-22.1 64.6-51 .1-28.9-22.5-41-43-47.8zm-155-68.8c-38.4 0-75.1 32.1-74.1 82.5 0 52 34.2 82.5 79.3 82.5 18.9 0 39.9-6.8 56.2-17.9L271 301.5c-11.6 6.8-22.6 10-34.2 10-21 0-37.3-10-41.5-34.2l95.2 0c.5-3.7 1.6-11 1.6-19.4 .6-42.6-22.6-75.7-66.7-75.7zm-30 66.2c3.2-21 15.8-31 30.5-31 18.9 0 26.3 13.1 26.3 31l-56.8 0z\"],\n \"firefox\": [512, 512, [], \"f269\", \"M503.5 241.5c-.1-1.6-.2-3.1-.2-4.7l0-.1-.4-4.7 0-.1c-1.3-13.9-3.7-27.7-7.3-41.2 0-.1 0-.1-.1-.2l-1.1-4c-.1-.2-.1-.5-.2-.6-.4-1.2-.7-2.5-1.1-3.7-.1-.2-.1-.6-.2-.8-.4-1.2-.7-2.4-1.1-3.5-.1-.4-.2-.6-.4-1-.4-1.2-.7-2.3-1.2-3.5l-.4-1.1c-.4-1.1-.8-2.3-1.2-3.4-.1-.3-.2-.7-.4-1-.5-1.1-.8-2.3-1.3-3.4-.1-.2-.2-.6-.4-.8-.5-1.2-1-2.3-1.4-3.5 0-.1-.1-.2-.1-.4-1.6-3.8-3.2-7.7-5-11.4l-.4-.7c-.5-1-.8-1.8-1.3-2.6-.2-.5-.5-1.1-.7-1.6-.4-.8-.8-1.6-1.2-2.4-.4-.6-.6-1.2-1-1.8s-.8-1.4-1.2-2.3c-.4-.6-.7-1.3-1.1-1.9s-.8-1.4-1.2-2.2c-.4-.7-.8-1.4-1.2-2-.4-.7-.8-1.3-1.2-2s-.8-1.3-1.2-2-.8-1.3-1.2-1.9-.8-1.4-1.3-2.2c-.4-.6-.8-1.2-1.2-1.8l-1.4-2.1c-.4-.6-.8-1.2-1.2-1.8-.5-.7-1.1-1.6-1.6-2.3-.4-.5-.7-1.1-1.1-1.6l-1.8-2.5c-.4-.5-.6-.8-1-1.3-1-1.3-1.8-2.5-2.8-3.7-7.2-9.4-15-18.3-23.5-26.6-5.7-6-11.8-11.5-18.3-16.7-4-3.5-8.2-6.7-12.5-9.8-7.7-5.8-16-10.8-24.6-15.1-2.4-1.3-4.8-2.5-7.2-3.7-17.7-8.6-36.3-15.2-55.4-19.6-1.9-.4-3.8-.8-5.6-1.2l-.1 0c-1-.1-1.8-.4-2.8-.5-12.5-2.4-25.2-3.7-38-4l-10.6 0c-15.3 .2-30.5 1.9-45.5 5-33.6 7.1-63.2 21.2-82.9 39-1.1 1-1.9 1.7-2.4 2.2l-.5 .5 .1 0c0 0 .1 0 .1 0s0-.1 0-.1l-.1 .1c.1-.1 .1-.1 .2-.1 14.6-8.8 34.9-16 49.4-19.6l5.9-1.4c.4-.1 .8-.1 1.2-.2 1.7-.4 3.4-.7 5.2-1.1 .2 0 .6-.1 .8-.1 64.2-11.7 132.6 7.5 180.2 53 10.3 9.8 19.3 20.8 26.9 32.8 30.4 49.2 27.5 111.1 3.8 147.6-34.4 53-111.4 71.3-159 24.8-16-15.5-25.2-36.7-25.6-59-.2-10.7 2-21.2 6.2-31 1.7-3.8 13.1-25.7 18.2-24.6-13.1-2.8-37.5 2.6-54.7 28.2-15.4 22.9-14.5 58.2-5 83.3-6-12.4-10.1-25.6-12.1-39.2-12.2-82.6 43.3-153 94.3-170.5-27.5-24-96.5-22.3-147.7 15.4-29.9 22-51.2 53.2-62.5 90.4 1.7-20.9 9.6-52.1 25.8-83.9-17.2 8.9-39 37-49.8 62.9-15.6 37.4-21 82.2-16.1 124.8 .4 3.2 .7 6.4 1.1 9.6 19.9 117.1 122 206.4 244.8 206.4 137.1 0 248.3-111.2 248.3-248.4-.1-4.5-.2-9.1-.5-13.5z\"],\n \"kaggle\": [320, 512, [], \"f5fa\", \"M304.2 501.5L158.4 320.3 298.2 185c2.6-2.7 1.7-10.5-5.3-10.5l-69.2 0c-3.5 0-7 1.8-10.5 5.3l-132.3 133.7 0-306c0-5-2.5-7.5-7.5-7.5L21.5 0C16.5 0 14 2.5 14 7.5l0 497c0 5 2.5 7.5 7.5 7.5l51.9 0c5 0 7.5-2.5 7.5-7.5l0-109 30.8-29.3 110.5 140.6c3 3.5 6.5 5.3 10.5 5.3l66.9 0c3.5 0 5.5-1 6-3l-1.4-7.6z\"],\n \"facebook-messenger\": [512, 512, [], \"f39f\", \"M256.6 8c-140 0-248.6 102.3-248.6 240.6 0 72.3 29.7 134.8 78.1 177.9 8.3 7.5 6.6 11.9 8 58.2 .1 3.2 1 6.4 2.6 9.2s3.9 5.2 6.7 6.9 5.9 2.8 9.1 3 6.5-.3 9.5-1.6C174.9 479 175.6 477.2 184.6 479.6 337.8 521.8 504 423.7 504 248.6 504 110.3 396.6 8 256.6 8zM405.8 193.1l-73 115.6c-2.8 4.3-6.4 8.1-10.6 11s-9.1 4.8-14.1 5.8-10.3 .8-15.3-.4-9.7-3.4-13.8-6.4l-58.1-43.5c-2.6-1.9-5.8-3-9-3s-6.4 1.1-9 3l-78.4 59.4c-10.5 7.9-24.2-4.6-17.1-15.7l73-115.6c2.8-4.3 6.4-8.1 10.6-11s9.1-4.8 14.1-5.8 10.3-.8 15.3 .4 9.7 3.4 13.9 6.4l58.1 43.5c2.6 1.9 5.8 3 9 3s6.4-1.1 9-3l78.4-59.4c10.4-8 24.1 4.5 17.1 15.6z\"],\n \"audible\": [640, 512, [], \"f373\", \"M640 199.9l0 54-320 200-320-199.9 0-54 320 200 320-200.1zm-194.5 72l47.1-29.4c-37.2-55.8-100.7-92.6-172.7-92.6s-135.5 36.7-172.6 92.4l.3 0c2.5-2.3 5.1-4.5 7.7-6.7 89.7-74.4 219.4-58.1 290.2 36.3zM225.4 290.7c16.9-11.9 36.5-18.7 57.4-18.7 34.4 0 65.2 18.4 86.4 47.6l45.4-28.4c-20.9-29.9-55.6-49.5-94.8-49.5-38.9 0-73.4 19.4-94.4 49zM103.6 161.1C235.4 56.8 421.8 84.7 521.1 223.2l.7 1 48.8-30.4c-53.5-81.7-145.8-135.7-250.7-135.7-103.5 0-196.6 53.5-250.5 135.6 9.9-10.5 22.7-23.5 34.2-32.6z\"],\n \"patreon\": [512, 512, [], \"f3d9\", \"M490 153.8c-.1-65.4-51-119-110.7-138.3-74.2-24-172-20.5-242.9 12.9-85.8 40.5-112.8 129.3-113.8 217.8-.8 72.8 6.4 264.4 114.6 265.8 80.3 1 92.3-102.5 129.5-152.3 26.4-35.5 60.5-45.5 102.4-55.9 72-17.8 121.1-74.7 121-150l-.1 0z\"],\n \"vnv\": [640, 512, [], \"f40b\", \"M104.9 352c-34.1 0-46.4-30.4-46.4-30.4L2.6 210.1S-7.8 192 13 192l32.8 0c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.7-74.5c5.6-9.5 8.4-18.1 18.8-18.1l32.8 0c20.8 0 10.4 18.1 10.4 18.1L186.4 321.6S174.2 352 140 352l-35.1 0zm395 0c-34.1 0-46.4-30.4-46.4-30.4L397.6 210.1S387.2 192 408 192l32.8 0c10.4 0 13.2 8.7 18.8 18.1l36.7 74.5s5.2 13.1 21.1 13.1 21.1-13.1 21.1-13.1l36.8-74.5c5.6-9.5 8.4-18.1 18.8-18.1l32.9 0c20.8 0 10.4 18.1 10.4 18.1L581.5 321.6S569.3 352 535.1 352l-35.2 0zM337.6 192c34.1 0 46.4 30.4 46.4 30.4l55.9 111.5S450.3 352 429.5 352l-32.8 0c-10.4 0-13.2-8.7-18.8-18.1l-36.7-74.5s-5.2-13.1-21.1-13.1-21.1 13.1-21.1 13.1l-36.7 74.5c-5.6 9.4-8.4 18.1-18.8 18.1l-32.9 0c-20.8 0-10.4-18.1-10.4-18.1l55.9-111.5S268.3 192 302.5 192l35.1 0z\"],\n \"pagelines\": [384, 512, [], \"f18c\", \"M384.1 312.7c-55.1 136.7-187.1 54-187.1 54-40.5 81.8-107.4 134.4-184.6 134.7-16.1 0-16.6-24.4 0-24.4 64.4-.3 120.5-42.7 157.2-110.1-41.1 15.9-118.6 27.9-161.6-82.2 109-44.9 159.1 11.2 178.3 45.5 9.9-24.4 17-50.9 21.6-79.7 0 0-139.7 21.9-149.5-98.1 119.1-47.9 152.6 76.7 152.6 76.7 1.6-16.7 3.3-52.6 3.3-53.4 0 0-106.3-73.7-38.1-165.2 124.6 43 61.4 162.4 61.4 162.4 .5 1.6 .5 23.8 0 33.4 0 0 45.2-89 136.4-57.5-4.2 134-141.9 106.4-141.9 106.4-4.4 27.4-11.2 53.4-20 77.5 0 0 83-91.8 172-20z\"],\n \"amazon\": [448, 512, [], \"f270\", \"M257.7 162.7c-48.7 1.8-169.5 15.5-169.5 117.5 0 109.5 138.3 114 183.5 43.2 6.5 10.2 35.4 37.5 45.3 46.8l56.8-56s-32.3-25.3-32.3-52.8l0-147.1C341.5 89 317 32 229.2 32 141.2 32 94.5 87 94.5 136.3l73.5 6.8c16.3-49.5 54.2-49.5 54.2-49.5 40.7-.1 35.5 29.8 35.5 69.1zm0 86.8c0 80-84.2 68-84.2 17.2 0-47.2 50.5-56.7 84.2-57.8l0 40.6zM393.7 413c-7.7 10-70 67-174.5 67S34.7 408.5 10.2 379c-6.8-7.7 1-11.3 5.5-8.3 73.3 44.5 187.8 117.8 372.5 30.3 7.5-3.7 13.3 2 5.5 12zm39.8 2.2c-6.5 15.8-16 26.8-21.2 31-5.5 4.5-9.5 2.7-6.5-3.8s19.3-46.5 12.7-55c-6.5-8.3-37-4.3-48-3.2-10.8 1-13 2-14-.3-2.3-5.7 21.7-15.5 37.5-17.5 15.7-1.8 41-.8 46 5.7 3.7 5.1 0 27.1-6.5 43.1z\"],\n \"envira\": [448, 512, [], \"f299\", \"M0 32c477.6 0 366.6 317.3 367.1 366.3l80.9 81.7-26 0-70.4-71.2C312.6 413 227.2 443.3 137.2 371.8 47 300.3 52 214.7 0 32zM79.7 78c-49.7-23.5-5.2 9.2-5.2 9.2 45.2 31.2 66 73.7 90.2 119.9 31.5 60.2 79 139.7 144.2 167.7 65 28 34.2 12.5 6-8.5-28.2-21.2-68.2-87-91-130.2-31.7-60-61-118.6-144.2-158.1z\"],\n \"linode\": [448, 512, [], \"f2b8\", \"M366.3 186.9l-59.5 36.9-.8 36.9-29.3-19.3-39.4 24.3c2.2 55.2 2.5 59.3 2.5 59.5l-97.2 65.4-15.1-104.7 108.1-62-40.2-26-75.4 38.5-21-143.3 129-49.4-91.3-43.6-125.7 39.4 27.7 134.9 41.9 32.7-31.8 15.1 20.9 101.4 29.3 27.7-20.9 12.6 16.8 78.8 66.2 69.6c-10.8-74.8-11.7-78.6-11.7-78.8l77.9-55.3C244 365.4 242.3 367 242.3 367l.8 24.3 33.5 28.5-.8-77.1 46.9-33.5 26.8-18.4-2.5 36 25.1 17.6 6.7-74.6 58.7-43.6-71.2-39.4z\"],\n \"accusoft\": [640, 512, [], \"f369\", \"M322.1 252l0-1-51.2-65.8s-12 1.6-25 15.1c-9 9.3-242.1 239.1-243.4 240.9-7 10 1.6 6.8 15.7 1.7 .8 0 114.5-36.6 114.5-36.6 .5-.6-.1-.1 .6-.6-.4-5.1-.8-26.2-1-27.7-.6-5.2 2.2-6.9 7-8.9l92.6-33.8c.6-.8 88.5-81.7 90.2-83.3zM482.2 372.1c13.3 16.1 20.7 13.3 30.8 9.3 3.2-1.2 115.4-47.6 117.8-48.9 8-4.3-1.7-16.7-7.2-23.4-2.1-2.5-205.1-245.6-207.2-248.3-9.7-12.2-14.3-12.9-38.4-12.8-10.2 0-106.8 .5-116.5 .6-19.2 .1-32.9-.3-19.2 16.9 7.7 9.5 234.2 299.7 239.9 306.6zm152.7 1.6c-2.3-.3-24.6-4.7-38-7.2 0 0-115 50.4-117.5 51.6-16 7.3-26.9-3.2-36.7-14.6l-57.1-74c-5.4-.9-60.4-9.6-65.3-9.3-3.1 .2-9.6 .8-14.4 2.9-4.9 2.1-145.2 52.8-150.2 54.7-5.1 2-11.4 3.6-11.1 7.6 .2 2.5 2 2.6 4.6 3.5 2.7 .8 300.9 67.6 308 69.1 15.6 3.3 38.5 10.5 53.6 1.7 2.1-1.2 123.8-76.4 125.8-77.8 5.4-4 4.3-6.8-1.7-8.2z\"],\n \"erlang\": [640, 512, [], \"f39d\", \"M87.2 53.5l-87.2 0 0 405 100.4 0c-49.7-52.6-78.8-125.3-78.7-212.1-.1-76.7 24-142.7 65.5-192.9zm238.2 9.7c-45.9 .1-85.1 33.5-89.2 83.2l169.9 0c-1.1-49.7-34.5-83.1-80.7-83.2zm230.7-9.6l.3 0-.1-.1-.2 .1zm.3 0c31.4 42.7 48.7 97.5 46.2 162.7 .5 6 .5 11.7 0 24.1l-372.4 0c-.2 109.7 38.9 194.9 138.6 195.3 68.5-.3 118-51 151.9-106.1l96.4 48.2c-17.4 30.9-36.5 57.8-57.9 80.8l80.8 0 0-405-83.6 0z\"],\n \"cc-discover\": [576, 512, [], \"f1f2\", \"M520.4 196.1c0-7.9-5.5-12.1-15.6-12.1l-4.9 0 0 24.9 4.7 0c10.3 0 15.8-4.4 15.8-12.8zM528 32L48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48zM483.9 170.9c22.6 0 52.9-4.1 52.9 24.4 0 12.6-6.6 20.7-18.7 23.2l25.8 34.4-19.6 0-22.2-32.8-2.2 0 0 32.8-16 0 0-82zM428 171l45.3 0 0 14-29.3 0 0 18.2 28.3 0 0 13.8-28.3 0 0 22.2 29.3 0 0 13.8-45.3 0 0-82zm-68.7 0l21.9 55.2 22.2-55.2 17.5 0-35.5 84.2-8.6 0-35-84.2 17.5 0zm-55.9 86.2a44.6 44.6 0 1 1 0-89.2 44.6 44.6 0 1 1 0 89.2zm-49.3-83.1l0 19c-20.1-20.1-46.8-4.7-46.8 19 0 25 27.5 38.5 46.8 19.2l0 19c-29.7 14.3-63.3-5.7-63.3-38.2 0-31.2 33.1-53 63.3-38zm-97.2 66.3c11.4 0 22.4-15.3-3.3-24.4-15-5.5-20.2-11.4-20.2-22.7 0-23.2 30.6-31.4 49.7-14.3l-8.4 10.8c-10.4-11.6-24.9-6.2-24.9 2.5 0 4.4 2.7 6.9 12.3 10.3 18.2 6.6 23.6 12.5 23.6 25.6 0 29.5-38.8 37.4-56.6 11.3l10.3-9.9c3.7 7.1 9.9 10.8 17.5 10.8zM55.4 253l-23.4 0 0-82 23.4 0c26.1 0 44.1 17 44.1 41.1 0 18.5-13.2 40.9-44.1 40.9zm67.5 0l-16 0 0-82 16 0 0 82zM544 433c0 8.2-6.8 15-15 15l-401 0c189.6-35.6 382.7-139.2 416-160l0 145zM74.1 191.6c-5.2-4.9-11.6-6.6-21.9-6.6l-4.2 0 0 54.2 4.2 0c10.3 0 17-2 21.9-6.4 5.7-5.2 8.9-12.8 8.9-20.7s-3.2-15.5-8.9-20.5z\"],\n \"safari\": [512, 512, [], \"f267\", \"M274.7 274.7L237.3 237.3 166 346 274.7 274.7zM256 8a248 248 0 1 0 0 496 248 248 0 1 0 0-496zM411.8 182.8l14.8-6.1c1-.4 2-.6 3.1-.6s2.1 .2 3.1 .6 1.8 1 2.6 1.7 1.3 1.6 1.7 2.6 .6 2 .6 3.1-.2 2.1-.6 3.1-1 1.9-1.7 2.6-1.6 1.3-2.6 1.7L418 197.6c-2 .8-4.2 .8-6.1 0s-3.5-2.4-4.3-4.3-.8-4.2 0-6.1 2.4-3.5 4.3-4.3zM314.4 94l6.1-14.8c.8-2 2.4-3.5 4.3-4.3s4.2-.8 6.1 0 3.5 2.4 4.3 4.3 .8 4.2 0 6.1l-6.1 14.8c-.8 2-2.4 3.5-4.3 4.3s-4.2 .8-6.1 0c-1-.4-1.9-1-2.6-1.7s-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1zM256 60c2.1 0 4.2 .8 5.7 2.3S264 65.9 264 68l0 16c0 2.1-.8 4.2-2.3 5.7s-3.5 2.3-5.7 2.3-4.2-.8-5.7-2.3-2.3-3.5-2.3-5.7l0-16c0-2.1 .8-4.2 2.3-5.7S253.9 60 256 60zM181 74.9c1-.4 2-.6 3.1-.6s2.1 .2 3.1 .6 1.9 1 2.6 1.7 1.3 1.6 1.7 2.6L197.6 94c.4 1 .7 2 .7 3.1s-.2 2.1-.6 3.1-1 1.9-1.7 2.6-1.6 1.4-2.6 1.8-2 .6-3.1 .6-2.1-.2-3.1-.6-1.9-1-2.6-1.8-1.3-1.7-1.7-2.7l-6.1-14.8c-.8-2-.8-4.2 0-6.1s2.4-3.5 4.3-4.3zm-63.6 42.5c1.5-1.5 3.5-2.3 5.7-2.3s4.2 .8 5.7 2.3L140 128.7c1.5 1.5 2.3 3.5 2.3 5.6s-.8 4.1-2.3 5.6c-1.5 1.5-3.5 2.3-5.7 2.3s-4.2-.8-5.7-2.3l-11.3-11.3c-1.5-1.5-2.3-3.5-2.3-5.6s.8-4.1 2.3-5.6l0 0zM60 256c0-2.1 .8-4.2 2.3-5.7S65.9 248 68 248l16 0c2.1 0 4.2 .8 5.7 2.3s2.3 3.5 2.3 5.7-.8 4.2-2.3 5.7-3.5 2.3-5.7 2.3l-16 0c-2.1 0-4.2-.8-5.7-2.3S60 258.1 60 256zm40.2 73.2l-14.8 6.1c-1 .4-2 .6-3.1 .6s-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1 1-1.9 1.7-2.6 1.6-1.3 2.6-1.7L94 314.4c2-.8 4.2-.8 6.1 0s3.5 2.4 4.3 4.3 .8 4.2 0 6.1-2.4 3.5-4.3 4.3zm4.3-136c-.4 1-1 1.9-1.7 2.6s-1.6 1.3-2.6 1.7-2 .6-3.1 .6-2.1-.2-3.1-.6l-14.8-6.1c-2-.8-3.5-2.4-4.3-4.3s-.8-4.2 0-6.1 2.4-3.5 4.3-4.3 4.2-.8 6.1 0l14.8 6.1c2 .8 3.5 2.4 4.3 4.3s.8 4.2 0 6.1l0 0zM197.6 418l-6.1 14.8c-.4 1-1 1.9-1.7 2.6s-1.6 1.3-2.6 1.7-2 .6-3.1 .6-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6-.6-2-.6-3.1 .2-2.1 .6-3.1l6.1-14.8c.4-1 1-1.9 1.7-2.7s1.6-1.4 2.6-1.8 2-.6 3.1-.6 2.1 .2 3.1 .6 1.9 1 2.6 1.8 1.3 1.7 1.7 2.6 .6 2 .6 3.1-.2 2.1-.7 3.1zM264 444c0 2.1-.8 4.2-2.3 5.7s-3.5 2.3-5.7 2.3-4.2-.8-5.7-2.3-2.3-3.5-2.3-5.7l0-16c0-2.1 .8-4.2 2.3-5.7s3.5-2.3 5.7-2.3 4.2 .8 5.7 2.3 2.3 3.5 2.3 5.7l0 16zm67-6.9c-1 .4-2 .6-3.1 .6s-2.1-.2-3.1-.6-1.9-1-2.6-1.7-1.3-1.6-1.7-2.6L314.4 418c-.8-2-.8-4.2 0-6.1s2.4-3.5 4.3-4.3 4.2-.8 6.1 0 3.5 2.4 4.3 4.3l6.1 14.8c.8 2 .8 4.2 0 6.1s-2.4 3.5-4.3 4.3zm63.6-42.5c-1.5 1.5-3.5 2.3-5.7 2.3s-4.2-.8-5.7-2.3L372 383.3c-1.5-1.5-2.3-3.5-2.3-5.6s.8-4.1 2.3-5.6 3.5-2.3 5.7-2.3 4.2 .8 5.7 2.3l11.3 11.3c1.5 1.5 2.3 3.5 2.3 5.6s-.8 4.1-2.3 5.6l0 0zM286.2 286.2L110.3 401.7 225.8 225.8 401.7 110.3 286.2 286.2zM437.1 331c-.8 2-2.4 3.5-4.3 4.3s-4.2 .8-6.1 0l-14.8-6.1c-2-.8-3.5-2.4-4.3-4.3s-.8-4.2 0-6.1c.4-1 1-1.9 1.7-2.6s1.6-1.3 2.6-1.7 2-.6 3.1-.6 2.1 .2 3.1 .6l14.8 6.1c2 .8 3.5 2.4 4.3 4.3s.8 4.2 0 6.1zm6.9-67l-16 0c-2.1 0-4.2-.8-5.7-2.3s-2.3-3.5-2.3-5.7 .8-4.2 2.3-5.7 3.5-2.3 5.7-2.3l16 0c2.1 0 4.2 .8 5.7 2.3s2.3 3.5 2.3 5.7-.8 4.2-2.3 5.7-3.5 2.3-5.7 2.3z\"],\n \"space-awesome\": [512, 512, [], \"e5ac\", \"M96 256l32 0 0 256-128 0 0-160 32 0 0-32 32 0 0-32 32 0 0-32zm416 96l0 160-128 0 0-256 32 0 0 32 32 0 0 32 32 0 0 32 32 0zM320 64l32 0 0 384-32 0 0-32-128 0 0 32-32 0 0-384 32 0 0-32 32 0 0-32 64 0 0 32 32 0 0 32zm-32 64l-64 0 0 64 64 0 0-64z\"],\n \"node\": [640, 512, [], \"f419\", \"M316.3 452c-2.1 0-4.2-.6-6.1-1.6L291 439c-2.9-1.6-1.5-2.2-.5-2.5 3.8-1.3 4.6-1.6 8.7-4 .4-.2 1-.1 1.4 .1l14.8 8.8c.5 .3 1.3 .3 1.8 0L375 408c.5-.3 .9-.9 .9-1.6l0-66.7c0-.7-.3-1.3-.9-1.6l-57.8-33.3c-.5-.3-1.2-.3-1.8 0l-57.8 33.3c-.6 .3-.9 1-.9 1.6l0 66.7c0 .6 .4 1.2 .9 1.5l15.8 9.1c8.6 4.3 13.9-.8 13.9-5.8l0-65.9c0-.9 .7-1.7 1.7-1.7l7.3 0c.9 0 1.7 .7 1.7 1.7l0 65.9c0 11.5-6.2 18-17.1 18-3.3 0-6 0-13.3-3.6l-15.2-8.7c-3.7-2.2-6.1-6.2-6.1-10.5l0-66.7c0-4.3 2.3-8.4 6.1-10.5l57.8-33.4c3.7-2.1 8.5-2.1 12.1 0l57.8 33.4c3.7 2.2 6.1 6.2 6.1 10.5l0 66.7c0 4.3-2.3 8.4-6.1 10.5l-57.8 33.4c-1.7 1.1-3.8 1.7-6 1.7zM363 386.2c0-12.5-8.4-15.8-26.2-18.2-18-2.4-19.8-3.6-19.8-7.8 0-3.5 1.5-8.1 14.8-8.1 11.9 0 16.3 2.6 18.1 10.6 .2 .8 .8 1.3 1.6 1.3l7.5 0c.5 0 .9-.2 1.2-.5 .3-.4 .5-.8 .4-1.3-1.2-13.8-10.3-20.2-28.8-20.2-16.5 0-26.3 7-26.3 18.6 0 12.7 9.8 16.1 25.6 17.7 18.9 1.9 20.4 4.6 20.4 8.3 0 6.5-5.2 9.2-17.4 9.2-15.3 0-18.7-3.8-19.8-11.4-.1-.8-.8-1.4-1.7-1.4l-7.5 0c-.9 0-1.7 .7-1.7 1.7 0 9.7 5.3 21.3 30.6 21.3 18.5 0 29-7.2 29-19.8zm54.5-50.1c0 6.1-5 11.1-11.1 11.1s-11.1-5-11.1-11.1c0-6.3 5.2-11.1 11.1-11.1 6-.1 11.1 4.8 11.1 11.1zm-1.8 0c0-5.2-4.2-9.3-9.4-9.3-5.1 0-9.3 4.1-9.3 9.3s4.2 9.4 9.3 9.4c5.2-.1 9.4-4.3 9.4-9.4zm-4.5 6.2l-2.6 0c-.1-.6-.5-3.8-.5-3.9-.2-.7-.4-1.1-1.3-1.1l-2.2 0 0 5-2.4 0 0-12.5 4.3 0c1.5 0 4.4 0 4.4 3.3 0 2.3-1.5 2.8-2.4 3.1 1.7 .1 1.8 1.2 2.1 2.8 .1 1 .3 2.7 .6 3.3zm-2.8-8.8c0-1.7-1.2-1.7-1.8-1.7l-2 0 0 3.5 1.9 0c1.6 0 1.9-1.1 1.9-1.8zM137.3 191c0-2.7-1.4-5.1-3.7-6.4L72.3 149.3c-1-.6-2.2-.9-3.4-1l-.6 0c-1.2 0-2.3 .4-3.4 1L3.7 184.6C1.4 185.9 0 188.4 0 191l.1 95c0 1.3 .7 2.5 1.8 3.2s2.5 .7 3.7 0L42 268.3c2.3-1.4 3.7-3.8 3.7-6.4l0-44.4c0-2.6 1.4-5.1 3.7-6.4l15.5-8.9c1.2-.7 2.4-1 3.7-1s2.6 .3 3.7 1l15.5 8.9c2.3 1.3 3.7 3.8 3.7 6.4l0 44.4c0 2.6 1.4 5.1 3.7 6.4l36.4 20.9c1.1 .7 2.6 .7 3.7 0 1.1-.6 1.8-1.9 1.8-3.2l.2-95zM472.5 87.3l0 176.4c0 2.6-1.4 5.1-3.7 6.4l-61.3 35.4c-2.3 1.3-5.1 1.3-7.4 0l-61.3-35.4c-2.3-1.3-3.7-3.8-3.7-6.4l0-70.8c0-2.6 1.4-5.1 3.7-6.4l61.3-35.4c2.3-1.3 5.1-1.3 7.4 0l15.3 8.8c1.7 1 3.9-.3 3.9-2.2l0-94c0-2.8 3-4.6 5.5-3.2l36.5 20.4c2.3 1.2 3.8 3.7 3.8 6.4zm-46 128.9c0-.7-.4-1.3-.9-1.6l-21-12.2c-.6-.3-1.3-.3-1.9 0l-21 12.2c-.6 .3-.9 .9-.9 1.6l0 24.3c0 .7 .4 1.3 .9 1.6l21 12.1c.6 .3 1.3 .3 1.8 0l21-12.1c.6-.3 .9-.9 .9-1.6l0-24.3 .1 0zm209.8-.7c2.3-1.3 3.7-3.8 3.7-6.4l0-17.1c0-2.6-1.4-5.1-3.7-6.4l-60.9-35.4c-2.3-1.3-5.1-1.3-7.4 0l-61.3 35.4c-2.3 1.3-3.7 3.8-3.7 6.4l0 70.8c0 2.7 1.4 5.1 3.7 6.4l60.9 34.7c2.2 1.3 5 1.3 7.3 0l36.8-20.5c2.5-1.4 2.5-5 0-6.4L550 241.6c-1.2-.7-1.9-1.9-1.9-3.2l0-22.2c0-1.3 .7-2.5 1.9-3.2l19.2-11.1c1.1-.7 2.6-.7 3.7 0L592.1 213c1.1 .7 1.9 1.9 1.9 3.2l0 17.4c0 2.8 3.1 4.6 5.6 3.2l36.7-21.3zM559 219c-.4 .3-.7 .7-.7 1.2l0 13.6c0 .5 .3 1 .7 1.2l11.8 6.8c.4 .3 1 .3 1.4 0L584 235c.4-.3 .7-.7 .7-1.2l0-13.6c0-.5-.3-1-.7-1.2l-11.8-6.8c-.4-.3-1-.3-1.4 0L559 219zM304.8 262.5l0-70.4c0-2.6-1.6-5.1-3.9-6.4l-61.1-35.2c-2.1-1.2-5-1.4-7.4 0l-61.1 35.2c-2.3 1.3-3.9 3.7-3.9 6.4l0 70.4c0 2.8 1.9 5.2 4 6.4l61.2 35.2c2.4 1.4 5.2 1.3 7.4 0l61-35.2c1.8-1 3.1-2.7 3.6-4.7 .1-.5 .2-1.1 .2-1.7zM230.5 137.6l-.8 .5 1.1 0-.3-.5zm76.2 130.2l-.4-.7 0 .9 .4-.2z\"],\n \"codepen\": [512, 512, [], \"f1cb\", \"M502.3 159.7l-234-156c-8-4.9-16.5-5-24.6 0l-234 156c-6 4-9.7 11.1-9.7 18.3L0 334c0 7.1 3.7 14.3 9.7 18.3l234 156c8 4.9 16.5 5 24.6 0l234-156c6-4 9.7-11.1 9.7-18.3l0-156c0-7.1-3.7-14.3-9.7-18.3zM278 63.1l172.3 114.9-76.9 51.4-95.4-63.7 0-102.6zm-44 0L234 165.7 138.6 229.4 61.7 178 234 63.1zM44 219.1L99.1 256 44 292.8 44 219.1zM234 448.8L61.7 334 138.6 282.6 234 346.3 234 448.8zM256 308l-77.7-52 77.7-52 77.7 52-77.7 52zm22 140.9l0-102.6 95.4-63.7 76.9 51.4-172.3 114.9zm190-156l-55.1-36.9 55.1-36.9 0 73.7z\"],\n \"ravelry\": [512, 512, [], \"f2d9\", \"M498.6 234.2c-1.2-10.3-1.7-20.8-3.7-31-2.5-12.4-5.7-24.6-9.6-36.6-6.8-20.9-17.2-40.3-30.9-57.5-5.9-7.6-12.1-14.8-18.8-21.7-14.1-14-30-26.1-47.1-36.1-17.8-10.6-36.8-18.9-56.7-24.7-11-3.1-22.3-5.4-33.5-7.6-6.8-1.3-13.7-1.7-20.6-2.5-.3 0-.6-.4-.9-.6-10.8 0-21.5 0-32.3 0-2.4 .4-4.8 .9-7.2 1.2-11.6 1.2-23.1 3.6-34.3 7.1-13.8 4.1-27.1 9.6-39.8 16.4-13.3 7-26.1 15.1-38.1 24.2-6.2 4.6-12.3 9.4-18 14.5-10.2 9.2-20.4 18.4-29.9 28.3-12.8 13.3-24.1 28.1-33.6 44-8.6 14-15.5 29-20.5 44.6-7.2 22.7-10.3 46.6-9.2 70.3 .6 13.5 2 26.9 4.4 40.2 3.4 18.4 9 36.3 16.7 53.3 13.6 29.2 32.1 51.5 50.4 67.9 12.8 11.6 26.8 21.9 41.8 30.6 17.7 10.4 36.4 18.9 55.9 25.3 13.3 4.3 26.9 7.6 40.6 9.8 6.1 1 12.3 1.3 18.4 1.9 .4 .1 .8 .3 1.2 .6l32.3 0c2.5-.4 5-.9 7.5-1.1 16.3-1.3 32.1-5.3 47.5-10.7 17.2-5.9 33.7-13.9 49-23.8 9.7-6.4 19.4-13.1 28.7-20.1 5.8-4.3 11-9.5 16.3-14.5 4-3.7 7.8-7.6 11.5-11.5 12-12.7 22.6-26.6 31.4-41.6 9.5-16 17.4-32.9 22.3-50.9 2.9-10.4 4.9-21 7-31.7 1-5.3 1.3-10.7 1.9-16.1 0-.3 .4-.6 .6-.9l0-37.1c-.2-.6-.4-1.2-.6-1.8zm-161.1-1.2s-16.6-3-28.5-3c-27.2 0-33.6 14.9-33.6 37l0 93.7-73.5 0 0-190.7 73.5 0 0 31.9c8.9-26.8 26.8-36.2 62-36.2l0 67.3z\"],\n \"alipay\": [448, 512, [], \"f642\", \"M377.7 32L70.3 32C31.4 32 0 63.4 0 102.3L0 409.7C0 448.6 31.4 480 70.3 480l307.5 0c38.5 0 69.8-31.1 70.3-69.6-46-25.6-110.6-60.3-171.6-88.4-32.1 44-84.1 81-148.6 81-70.6 0-93.7-45.3-97-76.4-4-39 14.9-81.5 99.5-81.5 35.4 0 79.4 10.2 127.1 25 16.5-30.1 26.5-60.3 26.5-60.3l-178.2 0 0-16.7 92.1 0 0-31.2-109.4 0 0-19 109.4 0 0-50.4 50.9 0 0 50.4 109.4 0 0 19-109.4 0 0 31.2 88.8 0s-15.2 46.6-38.3 90.9c48.9 16.7 100 36 148.6 52.7l0-234.4c.2-38.7-31.2-70.3-69.9-70.3zM47.3 323c1 20.2 10.2 53.7 69.9 53.7 52.1 0 92.6-39.7 117.9-72.9-44.6-18.7-84.5-31.4-109.4-31.4-67.4 0-79.4 33.1-78.4 50.6z\"],\n \"cc-amex\": [576, 512, [], \"f1f3\", \"M0 432c0 26.5 21.5 48 48 48l480 0c26.5 0 48-21.5 48-48l0-1.1-61.7 0-31.9-35.1-31.9 35.1-203.7 0 0-163.8-65.8 0 81.7-184.7 78.6 0 28.1 63.2 0-63.2 97.2 0 16.9 47.6 17-47.6 75.5 0 0-2.4c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432zm440.4-21.7l42.2-46.3 42 46.3 51.4 0-68-72.1 68-72.1-50.6 0-42 46.7-41.5-46.7-51.4 0 67.5 72.5-67.4 71.6 0-33.1-83 0 0-22.2 80.9 0 0-32.3-80.9 0 0-22.4 83 0 0-33.1-122 0 0 143.2 171.8 0zm96.3-72l39.3 41.9 0-83.3-39.3 41.4zm-36.3-92l36.9-100.6 0 100.6 38.7 0 0-143.3-60.2 0-32.2 89.3-31.9-89.3-61.2 0 0 143.1-63.2-143.1-51.2 0-62.4 143.3 43 0 11.9-28.7 65.9 0 12 28.7 82.7 0 0-100.3 36.8 100.3 34.4 0zM282 185.4l19.5-46.9 19.4 46.9-38.9 0z\"],\n \"pied-piper-alt\": [576, 512, [], \"f1a8\", \"M244 246c-3.2-2-6.3-2.9-10.1-2.9-6.6 0-12.6 3.2-19.3 3.7l1.7 4.9 27.7-5.7zM379.9 443.9c-19 0-64.1 9.5-79.9 19.8l6.9 45.1c35.7 6.1 70.1 3.6 106-9.8-4.8-10-23.5-55.1-33-55.1zM340.8 177c6.6 2.8 11.5 9.2 22.7 22.1 2-1.4 7.5-5.2 7.5-8.6 0-4.9-11.8-13.2-13.2-23 11.2-5.7 25.2-6 37.6-8.9 68.1-16.4 116.3-52.9 146.8-116.7 6.1-12.6 11.8-25.8 12.4-39.9l-2 2.6c-28.4 50-33 63.2-81.3 100-31.9 24.4-69.2 40.2-106.6 54.6l-6.3-.3 0-21.8c-19.6 1.6-19.7-14.6-31.6-23-18.7 20.6-31.6 40.8-58.9 51.1-12.7 4.8-19.6 10-25.9 21.8 34.9-16.4 91.2-13.5 98.8-10zM555.5 0l-.6 1.1-.3 .9 .6-.6 .3-1.4zM496.3 382.1c-33.9-56.9-75.3-118.4-150-115.5l-.3-6c-1.1-13.5 32.8 3.2 35.1-31l-14.4 7.2c-19.8-45.7-8.6-54.3-65.5-54.3-14.7 0-26.7 1.7-41.4 4.6 2.9 18.6 2.2 36.7-10.9 50.3l19.5 5.5c-1.7 3.2-2.9 6.3-2.9 9.8 0 21 42.8 2.9 42.8 33.6 0 18.4-36.8 60.1-54.9 60.1-8 0-53.7-50-53.4-60.1l.3-4.6 52.3-11.5c13-2.6 12.3-22.7-2.9-22.7-3.7 0-43.1 9.2-49.4 10.6-2-5.2-7.5-14.1-13.8-14.1-3.2 0-6.3 3.2-9.5 4-9.2 2.6-31 2.9-21.5 20.1L15.9 298.5c-5.5 1.1-8.9 6.3-8.9 11.8 0 6 5.5 10.9 11.5 10.9 8 0 131.3-28.4 147.4-32.2 2.6 3.2 4.6 6.3 7.8 8.6 20.1 14.4 59.8 85.9 76.4 85.9 24.1 0 58-22.4 71.3-41.9 3.2-4.3 6.9-7.5 12.4-6.9 .6 13.8-31.6 34.2-33 43.7-1.4 10.2-1 35.2-.3 41.1 26.7 8.1 52-3.6 77.9-2.9 4.3-21 10.6-41.9 9.8-63.5l-.3-9.5c-1.4-34.2-10.9-38.5-34.8-58.6-1.1-1.1-2.6-2.6-3.7-4 2.2-1.4 1.1-1 4.6-1.7 88.5 0 56.3 183.6 111.5 229.9 33.1-15 72.5-27.9 103.5-47.2-29-25.6-52.6-45.7-72.7-79.9zM300.1 428.2l0 27.2 11.8-3.4-2.9-23.8-8.9 0zM231.4 277.8l24.1 61.2 21-13.8-31.3-50.9-13.8 3.5zm84.4 154.9l2 12.4c9-1.5 58.4-6.6 58.4-14.1 0-1.4-.6-3.2-.9-4.6-26.8 0-36.9 3.8-59.5 6.3z\"],\n \"letterboxd\": [640, 512, [], \"e62d\", \"M521.3 128C586.9 128 640 181.1 640 246.6S586.9 365.2 521.3 365.2c-42.5 0-79.7-22.3-100.7-55.8 11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l.8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zM320 128c42.5 0 79.7 22.3 100.7 55.8-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0c-42.5 0-79.7-22.3-100.7-55.8 11.4-18.2 18-39.7 18-62.8s-6.6-44.6-18-62.8l.8-1.2c20.8-32.3 56.8-53.9 97.9-54.6l2 0zm-201.3 0c42.5 0 79.7 22.3 100.7 55.8-11.4 18.2-18 39.7-18 62.8s6.6 44.6 18 62.8l-.8 1.2c-20.8 32.3-56.8 53.9-97.9 54.6l-2 0C53.1 365.1 0 312.1 0 246.6S53.1 128 118.7 128z\"],\n \"opera\": [512, 512, [], \"f26a\", \"M321.9 32.7c-170.2 0-252.6 223.8-147.5 355.1 36.5 45.4 88.6 75.6 147.5 75.6 36.3 0 70.3-11.1 99.4-30.4-43.8 39.2-101.9 63-165.3 63-3.9 0-8 0-11.9-.3-131.5-6.1-236.1-114.6-236.1-247.7 0-137 111-248 248-248l.8 0c63.1 .3 120.7 24.1 164.4 63.1-29-19.4-63.1-30.4-99.3-30.4zM423.7 430.4c-40.9 24.7-90.7 23.6-132-5.8 56.2-20.5 97.7-91.6 97.7-176.6 0-84.7-41.2-155.8-97.4-176.6 41.8-29.2 91.2-30.3 132.9-5 105.9 98.7 105.5 265.7-1.2 364z\"],\n \"weibo\": [512, 512, [], \"f18a\", \"M407 177.6c7.6-24-13.4-46.8-37.4-41.7-22 4.8-28.8-28.1-7.1-32.8 50.1-10.9 92.3 37.1 76.5 84.8-6.8 21.2-38.8 10.8-32-10.3zM214.8 446.7c-106.3 0-214.8-51.4-214.8-136.3 0-44.3 28-95.4 76.3-143.7 99.7-99.7 203.2-100.9 173.6-5.7-4 13.1 12.3 5.7 12.3 6 79.5-33.6 140.5-16.8 114 51.4-3.7 9.4 1.1 10.9 8.3 13.1 135.7 42.3 34.8 215.2-169.7 215.2zM358.5 300.4c-5.4-55.7-78.5-94-163.4-85.7-84.8 8.6-148.8 60.3-143.4 116s78.5 94 163.4 85.7c84.8-8.6 148.8-60.3 143.4-116zM347.9 35.1c-25.9 5.6-16.8 43.7 8.3 38.3 72.3-15.2 134.8 52.8 111.7 124-7.4 24.2 29.1 37 37.4 12 31.9-99.8-55.1-195.9-157.4-174.3zm-78.5 311c-17.1 38.8-66.8 60-109.1 46.3-40.8-13.1-58-53.4-40.3-89.7 17.7-35.4 63.1-55.4 103.4-45.1 42 10.8 63.1 50.2 46 88.5zm-86.3-30c-12.9-5.4-30 .3-38 12.9-8.3 12.9-4.3 28 8.6 34 13.1 6 30.8 .3 39.1-12.9 8-13.1 3.7-28.3-9.7-34zm32.6-13.4c-5.1-1.7-11.4 .6-14.3 5.4-2.9 5.1-1.4 10.6 3.7 12.9 5.1 2 11.7-.3 14.6-5.4 2.8-5.2 1.1-10.9-4-12.9z\"],\n \"readme\": [576, 512, [], \"f4d5\", \"M528.3 46.5l-139.8 0c-48.1 0-89.9 33.3-100.4 80.3-10.6-47-52.3-80.3-100.4-80.3L48 46.5C21.5 46.5 0 68 0 94.5L0 340.3c0 26.5 21.5 48 48 48l89.7 0c102.2 0 132.7 24.4 147.3 75 .7 2.8 5.2 2.8 6 0 14.7-50.6 45.2-75 147.3-75l89.7 0c26.5 0 48-21.5 48-48l0-245.7c0-26.4-21.3-47.9-47.7-48.1zM242 311.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zM501.3 311.8c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.9c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.9-.1 0zm0-60.9c0 1.9-1.5 3.5-3.5 3.5l-160.3 0c-1.9 0-3.5-1.5-3.5-3.5l0-22.8c0-1.9 1.5-3.5 3.5-3.5l160.4 0c1.9 0 3.5 1.5 3.5 3.5l0 22.8-.1 0z\"],\n \"golang\": [640, 512, [], \"e40f\", \"M400.1 194.8c-10.9 2.8-19.9 4.3-29.1 7.6-7.3 1.9-14.7 3.9-23.2 6.1l-.6 .1c-4.2 1.2-4.6 1.3-8.5-3.2-4.7-5.3-8.1-8.7-14.6-11.9-19.7-9.6-38.7-6.8-56.4 4.7-21.2 13.7-32.1 34-31.8 59.2 .3 25 17.4 45.5 41.2 48.9 22 2.8 39.8-4.6 53.8-20.5 2.1-2.6 4-5.3 6.1-8.3 .8-1 1.5-2.1 2.3-3.3l-60.1 0c-6.5 0-8.1-4-5.9-9.3 4-9.7 11.5-25.9 15.9-34 .9-1.8 3.1-5.8 6.9-5.8l101.1 0c4.5-13.4 11.8-26.9 21.6-39.7 22.7-29.9 49.3-45.5 87.2-52 31.8-5.6 61.7-2.5 88.9 15.9 24.6 16.8 39.8 39.6 43.9 69.5 5.3 42.1-6.9 76.3-36.7 105.6-19.7 20.9-44.9 34-73.9 39.9-5.6 1-11.1 1.5-16.5 2-2.9 .2-5.7 .5-8.5 .8-28.3-.6-54.2-8.7-76-27.4-15.3-13.3-25.9-29.6-31.1-48.5-3.7 7.3-8 14.4-14 21.1-21.6 29.6-50.9 48-87.9 52.9-30.6 4.1-58.9-1.8-83.9-20.5-23-17.5-36.1-40.5-39.5-69.2-4.1-34 5.9-65.4 26.4-91.3 22.2-29 51.5-47.4 87.3-53.9 29.3-6.2 57.3-1.9 82.6 15.3 16.5 10.9 28.3 25.8 36.1 43.9 1.9 2.8 .6 4.4-3.1 5.3zM48.3 200.4c-1.3 0-1.6-.6-.9-1.6l6.6-8.4c.6-.9 2.2-1.5 3.4-1.5l111.3 0c1.2 0 1.5 .9 .9 1.8l-5.3 8.1c-.6 1-2.2 1.9-3.1 1.9l-112.8-.3zM1.2 229.1c-1.2 0-1.6-.7-.9-1.6l6.5-8.4c.6-.9 2.2-1.6 3.4-1.6l142.1 0c1.2 0 1.8 1 1.5 1.9l-2.5 7.5c-.3 1.2-1.5 1.9-2.8 1.9L1.2 229.1zm74.5 26.8c-.6 .9-.3 1.8 .9 1.8l68 .3c.9 0 2.2-.9 2.2-2.1l.6-7.5c0-1.3-.6-2.2-1.9-2.2l-62.3 0c-1.2 0-2.5 .9-3.1 1.9l-4.4 7.8zm501.5-18c-.2-2.6-.3-4.8-.7-7-5.6-30.8-34-48.3-63.6-41.4-29 6.5-47.7 24.9-54.5 54.2-5.6 24.3 6.2 48.9 28.6 58.9 17.2 7.5 34.3 6.6 50.8-1.9 24.6-13.6 38-32.7 39.6-59.5-.1-1.2-.1-2.3-.2-3.3z\"],\n \"stack-exchange\": [448, 512, [], \"f18d\", \"M18.1 332.3l412.7 0 0 22c0 37.7-29.3 68-65.3 68l-19 0-86.8 89.7 0-89.7-176.3 0c-36 0-65.3-30.3-65.3-68l0-22zm0-23.6l412.7 0 0-85-412.7 0 0 85zm0-109.4l412.7 0 0-85-412.7 0 0 85zM365.4 0L83.4 0c-36 0-65.3 30.3-65.3 67.7l0 22.3 412.7 0 0-22.3C430.7 30.3 401.4 0 365.4 0z\"],\n \"gulp\": [256, 512, [], \"f3ae\", \"M210 391.1l-14.1 24.6-4.6 80.2c0 8.9-28.3 16.1-63.1 16.1s-63.1-7.2-63.1-16.1l-5.8-79.4-14.9-25.4c41.2 17.3 126 16.7 165.6 0zM14 137.8L27.6 263.3c5.9-20 20.8-47 40-55.2 6.3-2.7 12.7-2.7 18.7 .9 5.2 3 9.6 9.3 10.1 11.8 1.2 6.5-2 9.1-4.5 9.1-3 0-5.3-4.6-6.8-7.3-4.1-7.3-10.3-7.6-16.9-2.8-6.9 5-12.9 13.4-17.1 20.7-5.1 8.8-9.4 18.5-12 28.2-1.5 5.6-2.9 14.6-.6 19.9 1 2.2 2.5 3.6 4.9 3.6 5 0 12.3-6.6 15.8-10.1 4.5-4.5 10.3-11.5 12.5-16l5.2-15.5c2.6-6.8 9.9-5.6 9.9 0 0 10.2-3.7 13.6-10 34.7-5.8 19.5-7.6 25.8-7.6 25.8-.7 2.8-3.4 7.5-6.3 7.5-1.2 0-2.1-.4-2.6-1.2-1-1.4-.9-5.3-.8-6.3 .2-3.2 6.3-22.2 7.3-25.2-2 2.2-4.1 4.4-6.4 6.6-5.4 5.1-14.1 11.8-21.5 11.8-3.4 0-5.6-.9-7.7-2.4l7.6 79.6c2 5 39.2 17.1 88.2 17.1 49.1 0 86.3-12.2 88.2-17.1l10.9-94.6c-5.7 5.2-12.3 11.6-19.6 14.8-5.4 2.3-17.4 3.8-17.4-5.7 0-5.2 9.1-14.8 14.4-21.5 1.4-1.7 4.7-5.9 4.7-8.1 0-2.9-6-2.2-11.7 2.5-3.2 2.7-6.2 6.3-8.7 9.7-4.3 6-6.6 11.2-8.5 15.5-6.2 14.2-4.1 8.6-9.1 22-5 13.3-4.2 11.8-5.2 14-.9 1.9-2.2 3.5-4 4.5-1.9 1-4.5 .9-6.1-.3-.9-.6-1.3-1.9-1.3-3.7 0-.9 .1-1.8 .3-2.7 1.5-6.1 7.8-18.1 15-34.3 1.6-3.7 1-2.6 .8-2.3-6.2 6-10.9 8.9-14.4 10.5-5.8 2.6-13 2.6-14.5-4.1-.1-.4-.1-.8-.2-1.2-11.8 9.2-24.3 11.7-20-8.1-4.6 8.2-12.6 14.9-22.4 14.9-4.1 0-7.1-1.4-8.6-5.1-2.3-5.5 1.3-14.9 4.6-23.8 1.7-4.5 4-9.9 7.1-16.2 1.6-3.4 4.2-5.4 7.6-4.5 .6 .2 1.1 .4 1.6 .7 2.6 1.8 1.6 4.5 .3 7.2-3.8 7.5-7.1 13-9.3 20.8-.9 3.3-2 9 1.5 9 2.4 0 4.7-.8 6.9-2.4 4.6-3.4 8.3-8.5 11.1-13.5 2-3.6 4.4-8.3 5.6-12.3 .5-1.7 1.1-3.3 1.8-4.8 1.1-2.5 2.6-5.1 5.2-5.1 1.3 0 2.4 .5 3.2 1.5 1.7 2.2 1.3 4.5 .4 6.9-2 5.6-4.7 10.6-6.9 16.7-1.3 3.5-2.7 8-2.7 11.7 0 3.4 3.7 2.6 6.8 1.2 2.4-1.1 4.8-2.8 6.8-4.5 1.2-4.9 .9-3.8 26.4-68.2 1.3-3.3 3.7-4.7 6.1-4.7 1.2 0 2.2 .4 3.2 1.1 1.7 1.3 1.7 4.1 1 6.2-.7 1.9-.6 1.3-4.5 10.5-5.2 12.1-8.6 20.8-13.2 31.9-1.9 4.6-7.7 18.9-8.7 22.3-.6 2.2-1.3 5.8 1 5.8 5.4 0 19.3-13.1 23.1-17 .2-.3 .5-.4 .9-.6 .6-1.9 1.2-3.7 1.7-5.5 1.4-3.8 2.7-8.2 5.3-11.3 .8-1 1.7-1.6 2.7-1.6 2.8 0 4.2 1.2 4.2 4 0 1.1-.7 5.1-1.1 6.2 1.4-1.5 2.9-3 4.5-4.5 15-13.9 25.7-6.8 25.7 .2 0 7.4-8.9 17.7-13.8 23.4-1.6 1.9-4.9 5.4-5 6.4 0 1.3 .9 1.8 2.2 1.8 2 0 6.4-3.5 8-4.7 5-3.9 11.8-9.9 16.6-14.1l14.8-136.8c-30.5 17.1-197.6 17.2-228.3 .2zm229.7-8.5c0 21-231.2 21-231.2 0 0-8.8 51.8-15.9 115.6-15.9 9 0 17.8 .1 26.3 .4L167 65.1 228.3 .6c1.4-1.4 5.8-.2 9.9 3.5s6.6 7.9 5.3 9.3l-.1 .1-57.3 60.5-10 40.7c39.9 2.6 67.6 8.1 67.6 14.6zm-69.4 4.6c0-.8-.9-1.5-2.5-2.1l-.2 .8c0 1.3-5 2.4-11.1 2.4s-11.1-1.1-11.1-2.4c0-.1 0-.2 .1-.3l.2-.7c-1.8 .6-3 1.4-3 2.3 0 2.1 6.2 3.7 13.7 3.7 7.7 .1 13.9-1.6 13.9-3.7z\"],\n \"yelp\": [384, 512, [], \"f1e9\", \"M42.9 240.3l99.6 48.6c19.2 9.4 16.2 37.5-4.5 42.7L30.5 358.5c-3.2 .8-6.4 .9-9.6 .3s-6.2-1.8-8.9-3.7-4.9-4.3-6.6-7.1-2.7-5.9-3.1-9.2c-3.3-28.8-.2-57.9 9-85.3 1-3.1 2.7-5.9 4.9-8.3s4.9-4.2 7.9-5.5 6.2-1.8 9.5-1.8 6.4 .9 9.3 2.3zm44 239.3c23.8 16.3 50.9 27.3 79.4 32.1 3.2 .6 6.5 .4 9.6-.4s6.1-2.3 8.6-4.4 4.6-4.6 6-7.5 2.3-6.1 2.4-9.4l3.9-110.8c.7-21.3-25.5-31.9-39.8-16.1L82.8 445.5c-2.2 2.4-3.8 5.3-4.8 8.4s-1.3 6.4-.9 9.6 1.5 6.3 3.1 9.1 3.9 5.2 6.6 7l0 0zM232.2 369.7l58.8 94c1.7 2.8 4 5.1 6.8 6.9s5.8 3 9 3.5 6.5 .3 9.7-.5 6.1-2.4 8.6-4.4c22.3-18.4 40.3-41.5 52.7-67.6 1.4-2.9 2.1-6.1 2.2-9.4s-.6-6.5-1.9-9.4-3.2-5.7-5.6-7.8-5.2-3.9-8.3-4.9L258.7 335.7c-20.3-6.5-37.8 15.8-26.5 33.9zM380.6 237.4c-11.5-26.5-28.7-50.2-50.4-69.3-2.4-2.1-5.3-3.7-8.4-4.7s-6.4-1.2-9.6-.8-6.3 1.5-9.1 3.2-5.1 4-6.9 6.7l-62 91.9c-11.9 17.7 4.7 40.6 25.2 34.7L366 268.6c3.1-.9 6-2.5 8.5-4.6s4.5-4.7 5.8-7.7 2.1-6.2 2.2-9.4-.6-6.5-1.9-9.5l0 0zM62.1 30.2c-2.8 1.4-5.4 3.3-7.4 5.7s-3.6 5.2-4.5 8.2-1.2 6.2-.9 9.3 1.3 6.1 2.9 8.9L156.3 242.6c11.7 20.2 42.6 11.9 42.6-11.4l0-208.3c0-3.1-.6-6.3-1.8-9.2s-3.1-5.5-5.4-7.6-5-3.8-8-4.8-6.1-1.4-9.3-1.2c-39 3.1-77 13.3-112.3 30.1z\"],\n \"gofore\": [448, 512, [], \"f3a7\", \"M348 319.8l-13.2 0 0 34.7c-24.5 23.1-56.3 35.8-89.9 35.8-73.2 0-132.4-60.2-132.4-134.4 0-74.1 59.2-134.4 132.4-134.4 35.3 0 68.6 14 93.6 39.4l62.3-63.3c-41.8-42.3-97.1-65.6-156.1-65.6-122.7 0-220.7 100.6-220.7 224 0 122.5 97 224 220.7 224 63.2 0 124.5-26.2 171-82.5-2-27.6-13.4-77.7-67.7-77.7zM335.9 207.3l-106.3 0 0 89 118.4 0c33.5 0 60.5 15.1 76 41.8l0-30.6c0-65.2-40.4-100.2-88.1-100.2z\"],\n \"aviato\": [640, 512, [], \"f421\", \"M107.2 283.5l-19-41.8-52.1 0-19 41.8-17.1 0 62.2-131.4 62.2 131.4-17.2 0zm-45-98.1l-19.6 42.5 39.2 0-19.6-42.5zM174.9 287.8l-62.2-131.4 17.1 0 45.1 96 45.1-96 17 0-62.1 131.4zm80.6-4.3l0-127.1 15.5 0 0 127.1-15.5 0zM464.6 167.9l0 115.6-17.3 0 0-115.6-41.2 0 0-11.5 99.6 0 0 11.5-41.1 0zM640 218.8c0 9.2-1.7 17.8-5.1 25.8s-8.2 15.1-14.2 21.1-13.1 10.8-21.1 14.2-16.6 5.1-25.8 5.1-17.8-1.7-25.8-5.1-15.1-8.2-21.1-14.2-10.8-13-14.2-21.1c-3.4-8-5.1-16.6-5.1-25.8s1.7-17.8 5.1-25.8 8.2-15.1 14.2-21.1 13-8.4 21.1-11.9c8-3.4 16.6-5.1 25.8-5.1s17.8 1.7 25.8 5.1 15.1 5.8 21.1 11.9c6 6 10.7 13.1 14.2 21.1 3.4 8 5.1 16.6 5.1 25.8zm-15.5 0c0-7.3-1.3-14-3.9-20.3s-6.2-11.7-10.8-16.3-10-8.2-16.2-10.9-12.8-4-19.8-4-13.6 1.3-19.8 4-11.6 6.3-16.2 10.9-8.2 10-10.8 16.3-3.9 13.1-3.9 20.3c0 7.3 1.3 14 3.9 20.3s6.2 11.7 10.8 16.3 10 8.2 16.2 10.9 12.8 4 19.8 4 13.6-1.3 19.8-4 11.6-6.3 16.2-10.9 8.2-10 10.8-16.3 3.9-13.1 3.9-20.3zm-94.8 96.7l0-6.3 88.9-10-242.9 13.4c.6-2.2 1.1-4.6 1.4-7.2 .3-2 .5-4.2 .6-6.5l64.8-8.1-64.9 1.9c0-.4-.1-.7-.1-1.1-2.8-17.2-25.5-23.7-25.5-23.7l-1.1-26.3 23.8 0 19 41.8 17.1 0-62.2-131.4-62.2 131.4 17.1 0 19-41.8 23.6 0-1.1 26.4s-22.7 6.5-25.5 23.7c-.1 .3-.1 .7-.1 1.1l-64.9-1.9 64.8 8.1c.1 2.3 .3 4.4 .6 6.5 .3 2.6 .8 5 1.4 7.2l-242.9-13.5 88.9 10 0 6.3c-5.9 .9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4s12.4-5.6 12.4-12.4c0-6.2-4.6-11.3-10.5-12.2l0-5.8 80.3 9 0 5.4c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2s12.4-3.4 12.4-10.2c0-6-4.3-11-9.9-12.1l0-4.9 28.4 3.2 0 23.7-5.9 0 0 13.9 5.9 0 0-6.6 5 0 0 6.6 5.9 0 0-13.8-5.9 0 0-23.2 38.3 4.3c8.1 11.4 19 13.6 19 13.6l-.1 6.7-5.1 .2-.1 12.1 4.1 0 .1-5 5.2 0 .1 5 4.1 0-.1-12.1-5.1-.2-.1-6.7s10.9-2.1 19-13.6l38.3-4.3 0 23.2-5.9 0 0 13.8 5.9 0 0-6.6 5 0 0 6.6 5.9 0 0-13.8-5.9 0 0-23.7 28.4-3.2 0 4.9c-5.7 1.1-9.9 6.2-9.9 12.1 0 6.8 5.6 10.2 12.4 10.2s12.4-3.4 12.4-10.2c0-6-4.3-11-9.9-12.1l0-5.4 80.3-9 0 5.8c-5.9 .9-10.5 6-10.5 12.2 0 6.8 5.6 12.4 12.4 12.4s12.4-5.6 12.4-12.4c-.2-6.3-4.7-11.4-10.7-12.3zM328.9 227.9l19.6-42.5 19.6 42.5-17.9 0-1.7-40.3-1.7 40.3-17.9 0z\"],\n \"padlet\": [640, 512, [], \"e4a0\", \"M297.9 0l.1 0c7.6 .1 14.4 4.7 17.5 11.8l132 308.5 .3-.1 .2 .4-2.8 10-42.9 158c-3.7 16.2-19.7 26.3-35.8 22.6l-68.4-15.6-68.5 15.6c-16.1 3.7-32.1-6.4-35.8-22.6l-42.9-158-2.7-10 .1-.4 132.1-308.4c3-7 9.9-11.6 17.5-11.8zM160.1 322.1l131 39.1 6.9 122.5 7.9-121.5 130.6-39.3 .2-.1-131 25.1-8.6-320.2-5.2 320.2-131.8-25.8zM426 222.6l94.4-41 73.8 0-157 247.6 31.6-109-42.8-97.6zm171.5-41.2l41.4 76.2c4 7.5-3.9 15.9-11.6 12.2l-47.6-22.7 17.8-65.7zM127.3 318.5L158.7 430 1.6 154.5c-5.9-10.4 5.5-22 15.9-16.2l151.8 84.2-42.1 96z\"],\n \"edge-legacy\": [448, 512, [], \"e078\", \"M-6 228.2l.4-.5c0 .2 0 .3-.1 .5l-.3 0zm460.6 15.5c0-44-7.8-84.5-28.8-122.4-41-73.4-113.6-113.3-198.6-113.3-139.9-.3-218.3 105.2-232.8 219.7 42.4-61.3 117.1-121.4 220.4-125 0 0 109.7 0 99.4 105l-175.8 0c6.4-37.4 18.5-59 34.3-78.9-75 34.9-121.8 96.1-120.8 188.3 .8 71.5 50.1 144.8 120.8 172 83.4 31.8 192.8 7.2 240.1-21.3l0-104.4c-80.9 56.5-270.9 60.9-272.3-67.6l314.1 0 0-52.1z\"],\n \"square-lastfm\": [448, 512, [\"lastfm-square\"], \"f203\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM210.7 280.8c-1.8-5.5-3.4-10.8-5-15.9-12.9-41.9-21-68.4-58-68.4-22.4 0-45.1 16.1-45.1 61.2 0 35.2 18 57.2 43.3 57.2 28.6 0 47.6-21.3 47.6-21.3l11.7 31.9s-19.8 19.4-61.2 19.4c-51.3 0-79.9-30.1-79.9-85.8 0-57.9 28.6-92 82.5-92 67.9 0 79.3 35.3 96.4 88.4 1.4 4.4 2.9 8.9 4.4 13.5 8.8 26.8 24.2 46.2 61.2 46.2 24.9 0 38.1-5.5 38.1-19.1 0-17.5-16.9-21.2-40-26.4-3.2-.7-6.5-1.4-9.9-2.2-30.4-7.3-42.5-23.1-42.5-48 0-40 32.3-52.4 65.2-52.4 37.4 0 60.1 13.6 63 46.6l-36.7 4.4c-1.5-15.8-11-22.4-28.6-22.4-16.1 0-26 7.3-26 19.8 0 11 4.8 17.6 20.9 21.3 2.2 .5 4.5 1 6.7 1.4 31.1 6.5 65.1 13.7 65.1 56.1 .1 36.7-30.7 50.6-76.1 50.6-63.4 0-85.4-28.6-97.1-64.1z\"],\n \"goodreads-g\": [320, 512, [], \"f3a9\", \"M10.8 403.3l2.8 0c12.7 0 25.5 0 38.2 .1 1.6 0 3.1-.4 3.6 2.1 7.1 34.9 30 54.6 62.9 63.9 26.9 7.6 54.1 7.8 81.3 1.8 33.8-7.4 56-28.3 68-60.4 8-21.5 10.7-43.8 11-66.5 .1-5.8 .3-47-.2-52.8l-.9-.3c-.8 1.5-1.7 2.9-2.5 4.4-22.1 43.1-61.3 67.4-105.4 69.1-103 4-169.4-57-172-176.2-.5-23.7 1.8-46.9 8.3-69.7 20.6-71.1 74.6-118.2 153.9-118.8 61.3-.4 101.5 38.7 116.2 70.3 .5 1.1 1.3 2.3 2.4 1.9l0-61.6 44.3 0c0 280.3 .1 332.2 .1 332.2-.1 78.5-26.7 143.7-103 162.2-69.5 16.9-159 4.8-196-57.2-8-13.5-11.8-28.3-13-44.5zM157.1 36.5c-52.5-.5-108.5 40.7-115 133.8-4.1 59 14.8 122.2 71.5 148.6 27.6 12.9 74.3 15 108.3-8.7 47.6-33.2 62.7-97 54.8-154-9.7-71.1-47.8-120-119.6-119.7z\"],\n \"cc-mastercard\": [576, 512, [], \"f1f1\", \"M482.9 410.3c0 6.8-4.6 11.7-11.2 11.7-6.8 0-11.2-5.2-11.2-11.7s4.4-11.7 11.2-11.7c6.6 0 11.2 5.2 11.2 11.7zM172.1 398.6c-7.1 0-11.2 5.2-11.2 11.7S165 422 172.1 422c6.5 0 10.9-4.9 10.9-11.7-.1-6.5-4.4-11.7-10.9-11.7zm117.5-.3c-5.4 0-8.7 3.5-9.5 8.7l19.1 0c-.9-5.7-4.4-8.7-9.6-8.7zm107.8 .3c-6.8 0-10.9 5.2-10.9 11.7s4.1 11.7 10.9 11.7 11.2-4.9 11.2-11.7c0-6.5-4.4-11.7-11.2-11.7zm105.9 26.1c0 .3 .3 .5 .3 1.1 0 .3-.3 .5-.3 1.1-.3 .3-.3 .5-.5 .8-.3 .3-.5 .5-1.1 .5-.3 .3-.5 .3-1.1 .3-.3 0-.5 0-1.1-.3-.3 0-.5-.3-.8-.5-.3-.3-.5-.5-.5-.8-.3-.5-.3-.8-.3-1.1 0-.5 0-.8 .3-1.1 0-.5 .3-.8 .5-1.1 .3-.3 .5-.3 .8-.5 .5-.3 .8-.3 1.1-.3 .5 0 .8 0 1.1 .3 .5 .3 .8 .3 1.1 .5s.2 .6 .5 1.1zm-2.2 1.4c.5 0 .5-.3 .8-.3 .3-.3 .3-.5 .3-.8s0-.5-.3-.8c-.3 0-.5-.3-1.1-.3l-1.6 0 0 3.5 .8 0 0-1.4 .3 0 1.1 1.4 .8 0-1.1-1.3zM576 81l0 352c0 26.5-21.5 48-48 48L48 481c-26.5 0-48-21.5-48-48L0 81C0 54.5 21.5 33 48 33l480 0c26.5 0 48 21.5 48 48zM64 220.6c0 76.5 62.1 138.5 138.5 138.5 27.2 0 53.9-8.2 76.5-23.1-72.9-59.3-72.4-171.2 0-230.5-22.6-15-49.3-23.1-76.5-23.1-76.4-.1-138.5 62-138.5 138.2zM288 329.4c70.5-55 70.2-162.2 0-217.5-70.2 55.3-70.5 162.6 0 217.5zM145.7 405.7c0-8.7-5.7-14.4-14.7-14.7-4.6 0-9.5 1.4-12.8 6.5-2.4-4.1-6.5-6.5-12.2-6.5-3.8 0-7.6 1.4-10.6 5.4l0-4.4-8.2 0 0 36.7 8.2 0c0-18.9-2.5-30.2 9-30.2 10.2 0 8.2 10.2 8.2 30.2l7.9 0c0-18.3-2.5-30.2 9-30.2 10.2 0 8.2 10 8.2 30.2l8.2 0 0-23-.2 0zM190.6 392l-7.9 0 0 4.4c-2.7-3.3-6.5-5.4-11.7-5.4-10.3 0-18.2 8.2-18.2 19.3 0 11.2 7.9 19.3 18.2 19.3 5.2 0 9-1.9 11.7-5.4l0 4.6 7.9 0 0-36.8zm40.5 25.6c0-15-22.9-8.2-22.9-15.2 0-5.7 11.9-4.8 18.5-1.1l3.3-6.5c-9.4-6.1-30.2-6-30.2 8.2 0 14.3 22.9 8.3 22.9 15 0 6.3-13.5 5.8-20.7 .8l-3.5 6.3c11.2 7.6 32.6 6 32.6-7.5zm35.4 9.3l-2.2-6.8c-3.8 2.1-12.2 4.4-12.2-4.1l0-16.6 13.1 0 0-7.4-13.1 0 0-11.2-8.2 0 0 11.2-7.6 0 0 7.3 7.6 0 0 16.7c0 17.6 17.3 14.4 22.6 10.9zm13.3-13.4l27.5 0c0-16.2-7.4-22.6-17.4-22.6-10.6 0-18.2 7.9-18.2 19.3 0 20.5 22.6 23.9 33.8 14.2l-3.8-6c-7.8 6.4-19.6 5.8-21.9-4.9zM338.9 392c-4.6-2-11.6-1.8-15.2 4.4l0-4.4-8.2 0 0 36.7 8.2 0 0-20.7c0-11.6 9.5-10.1 12.8-8.4l2.4-7.6zm10.6 18.3c0-11.4 11.6-15.1 20.7-8.4l3.8-6.5c-11.6-9.1-32.7-4.1-32.7 15 0 19.8 22.4 23.8 32.7 15l-3.8-6.5c-9.2 6.5-20.7 2.6-20.7-8.6zM416.2 392l-8.2 0 0 4.4c-8.3-11-29.9-4.8-29.9 13.9 0 19.2 22.4 24.7 29.9 13.9l0 4.6 8.2 0 0-36.8zm33.7 0c-2.4-1.2-11-2.9-15.2 4.4l0-4.4-7.9 0 0 36.7 7.9 0 0-20.7c0-11 9-10.3 12.8-8.4l2.4-7.6zm40.3-14.9l-7.9 0 0 19.3c-8.2-10.9-29.9-5.1-29.9 13.9 0 19.4 22.5 24.6 29.9 13.9l0 4.6 7.9 0 0-51.7zm7.6-75.1l0 4.6 .8 0 0-4.6 1.9 0 0-.8-4.6 0 0 .8 1.9 0zm6.6 123.8c0-.5 0-1.1-.3-1.6-.3-.3-.5-.8-.8-1.1s-.8-.5-1.1-.8c-.5 0-1.1-.3-1.6-.3-.3 0-.8 .3-1.4 .3-.5 .3-.8 .5-1.1 .8-.5 .3-.8 .8-.8 1.1-.3 .5-.3 1.1-.3 1.6 0 .3 0 .8 .3 1.4 0 .3 .3 .8 .8 1.1 .3 .3 .5 .5 1.1 .8 .5 .3 1.1 .3 1.4 .3 .5 0 1.1 0 1.6-.3 .3-.3 .8-.5 1.1-.8s.5-.8 .8-1.1c.3-.6 .3-1.1 .3-1.4zm3.2-124.7l-1.4 0-1.6 3.5-1.6-3.5-1.4 0 0 5.4 .8 0 0-4.1 1.6 3.5 1.1 0 1.4-3.5 0 4.1 1.1 0 0-5.4zm4.4-80.5c0-76.2-62.1-138.3-138.5-138.3-27.2 0-53.9 8.2-76.5 23.1 72.1 59.3 73.2 171.5 0 230.5 22.6 15 49.5 23.1 76.5 23.1 76.4 .1 138.5-61.9 138.5-138.4z\"],\n \"discourse\": [448, 512, [], \"f393\", \"M225.9 32C103.3 32 0 130.5 0 252.1 0 256 .1 480 .1 480l225.8-.2C348.6 479.8 448 377.5 448 255.9S348.6 32 225.9 32zM224 384c-19.4 0-37.9-4.3-54.4-12.1L88.5 392 111.4 317c-9.8-18.1-15.4-38.9-15.4-61 0-70.7 57.3-128 128-128s128 57.3 128 128-57.3 128-128 128z\"],\n \"black-tie\": [448, 512, [], \"f27e\", \"M0 32l0 448 448 0 0-448-448 0zM316.5 357.2l-92.5 88.7-92.5-88.7 64.5-184-64.5-86.6 184.9 0-64.4 86.6 64.5 184z\"],\n \"square-facebook\": [448, 512, [\"facebook-square\"], \"f082\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l98.2 0 0-145.8-52.8 0 0-78.2 52.8 0 0-33.7c0-87.1 39.4-127.5 125-127.5 16.2 0 44.2 3.2 55.7 6.4l0 70.8c-6-.6-16.5-1-29.6-1-42 0-58.2 15.9-58.2 57.2l0 27.8 83.6 0-14.4 78.2-69.3 0 0 145.8 129 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"],\n \"battle-net\": [512, 512, [], \"f835\", \"M448.8 225.6c26.9 .2 35.6-7.4 38.9-12.4 12.5-16.3-7.1-47.6-52.8-71.3 17.8-33.6 30.1-63.7 36.3-85.3 3.4-11.8 1.1-19 .5-20.3-1.7 10.5-15.8 48.5-48.2 100-25-11.2-56.5-20.1-93.8-23.8-8.9-16.9-34.9-63.9-60.5-88.9-16.8-16.5-30.3-22.6-40.8-23.5l0 0c-13.8-1.6-22.7 5.8-27.4 11-17.2 18.5-24.3 48.9-25 84.1-7.2-12.3-17.2-24.6-28.5-25.9l-.2 0c-20.7-3.5-38.4 29.2-36 81.3-38.4 1.4-71 5.8-93 11.2-9.9 2.4-16.2 7.3-17.8 9.7 1-.4 22.4-9.2 111.6-9.2 5.2 53 29.8 101.8 26 93.2-9.7 15.4-38.2 62.4-47.3 97.7-5.9 22.9-4.4 37.6 .2 47.1 5.6 12.8 16.4 16.7 23.2 18.3 25 5.7 55.4-3.6 86.7-21.1-7.5 12.8-13.9 28.5-9.1 39.3 7.3 19.6 44.5 18.7 88.4-9.4 20.2 32.2 40.1 57.9 55.7 74.1 2.6 2.8 5.5 5.2 8.8 7.1 5.1 3.2 8.6 3.4 8.6 3.4-8.2-6.7-34-38-62.5-91.8 22.2-16 45.7-38.9 67.5-69.3 122.8 4.6 143.3-24.8 148-31.6 14.7-19.9 3.4-57.4-57.3-93.7zM371 331.8c23.8-37.7 30.3-67.8 29.4-92.3 27.9 17.6 47.2 37.6 49.1 58.8 1.1 12.9-8.1 29.1-78.5 33.5zM217.1 387.7c9.8-6.2 19.5-13.1 29.2-20.5 6.7 13.3 13.6 26.1 20.6 38.2-40.6 21.9-68.8 12.8-49.8-17.7zm215-171.3c-10.3-5.3-21.2-10.3-32.4-15 7.9-12.1 15.5-24.4 22.7-36.9 39.1 24.1 45.9 53.2 9.6 51.9zM279.4 398c-5.5-11.4-11-23.5-16.5-36.4 43.2 1.3 62.4-18.7 63.3-20.4 0 .1-25 15.6-62.5 12.2 30.6-25.6 59.1-53.7 85.1-84 8.7-10.2 17-20.6 24.9-31.1-.4-.3-1.5-3-16.5-12-51.7 60.3-102.3 98-132.8 115.9-20.6-11.2-40.8-31.8-55.7-61.5-20-39.9-30-82.4-31.6-116.1 12.3 .9 25.3 2.2 38.8 3.9-22.3 36.8-14.4 63-13.5 64.2 0-.1-1-29.2 20.1-59.6 9 52.5 24 103.8 44.7 152.8 .9-.4 1.8 .9 18.7-8.2-26.3-74.5-33.8-138.2-34-173.4 20-12.4 48.2-19.8 81.6-17.8 44.6 2.7 86.4 15.2 116.3 30.7-7.1 10.4-14.9 21.3-23.3 32.5-20.7-37.7-47.3-43.9-48.9-43.7 .1 0 25.9 14.1 41.5 47.2-37.5-13.8-76.1-24.4-115.3-31.7-13.1-2.4-26.2-4.4-39.4-6-.1 .4-1.8 1.8-2.2 20.3 77.9 14.5 136.6 39.9 167.2 57.2 .7 23.6-7 51.6-25.4 79.6-24.6 37.3-56.4 67.2-84.8 85.4zm27.4-287c-44.6-1.7-73.6 7.4-94.7 20.7 2-52.3 21.3-76.4 38.2-75.3 16.9-4.2 54.9 52.2 56.5 54.6zm-130.7 3.1c.5 12.1 1.6 24.6 3.2 37.3-14.6-.9-28.7-1.3-42.4-1.3-.1 3.2-.1-51 24.7-49.6l.1 0c5.8 1.1 10.6 6.9 14.4 13.6zm-28.1 162c20.8 39.7 43.3 60.6 65.3 72.3-46.8 24.8-77.5 20-84.9 4.5-.2-.2-11.1-15.3 19.7-76.8l0 0z\"],\n \"bimobject\": [448, 512, [], \"f378\", \"M416 32L32 32C14.4 32 0 46.4 0 64L0 448c0 17.6 14.4 32 32 32l384 0c17.6 0 32-14.4 32-32l0-384c0-17.6-14.4-32-32-32zM352 289.4c0 49.4-11.4 82.6-103.8 82.6l-16.9 0c-44.1 0-62.4-14.9-70.4-38.8l-.9 0 0 34.8-64 0 0-232 64 0 0 74.7 1.1 0c4.6-30.5 39.7-38.8 69.7-38.8l17.3 0c92.4 0 103.8 33.1 103.8 82.5l0 35 .1 0zm-64-28.9l0 22.9c0 21.7-3.4 33.8-38.4 33.8l-45.3 0c-28.9 0-44.1-6.5-44.1-35.7l0-19c0-29.3 15.2-35.7 44.1-35.7l45.3 0c35-.2 38.4 12 38.4 33.7z\"]\n };\n\n bunker(function () {\n defineIcons('fab', icons);\n defineIcons('fa-brands', icons);\n });\n\n}());\n(function () {\n 'use strict';\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n } catch (e) {} // eslint-disable-line no-empty\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n }\n function _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n }\n function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n }\n\n var _dt;\n var q = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n slab: {\n \"fa-regular\": \"regular\",\n faslr: \"regular\"\n },\n \"slab-press\": {\n \"fa-regular\": \"regular\",\n faslpr: \"regular\"\n },\n thumbprint: {\n \"fa-light\": \"light\",\n fatl: \"light\"\n },\n whiteboard: {\n \"fa-semibold\": \"semibold\",\n fawsb: \"semibold\"\n },\n notdog: {\n \"fa-solid\": \"solid\",\n fans: \"solid\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"solid\",\n fands: \"solid\"\n },\n etch: {\n \"fa-solid\": \"solid\",\n faes: \"solid\"\n },\n jelly: {\n \"fa-regular\": \"regular\",\n fajr: \"regular\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"regular\",\n fajfr: \"regular\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"regular\",\n fajdr: \"regular\"\n },\n chisel: {\n \"fa-regular\": \"regular\",\n facr: \"regular\"\n },\n utility: {\n \"fa-semibold\": \"semibold\",\n fausb: \"semibold\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"semibold\",\n faudsb: \"semibold\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"semibold\",\n faufsb: \"semibold\"\n }\n };\n var i = \"classic\",\n t = \"duotone\",\n d = \"sharp\",\n l = \"sharp-duotone\",\n f = \"chisel\",\n n = \"etch\",\n h = \"jelly\",\n o = \"jelly-duo\",\n u = \"jelly-fill\",\n g = \"notdog\",\n s = \"notdog-duo\",\n y = \"slab\",\n m = \"slab-press\",\n e = \"thumbprint\",\n p = \"utility\",\n a = \"utility-duo\",\n w = \"utility-fill\",\n x = \"whiteboard\",\n b = \"Classic\",\n c = \"Duotone\",\n I = \"Sharp\",\n F = \"Sharp Duotone\",\n v = \"Chisel\",\n S = \"Etch\",\n A = \"Jelly\",\n P = \"Jelly Duo\",\n j = \"Jelly Fill\",\n B = \"Notdog\",\n N = \"Notdog Duo\",\n k = \"Slab\",\n D = \"Slab Press\",\n T = \"Thumbprint\",\n C = \"Utility\",\n W = \"Utility Duo\",\n K = \"Utility Fill\",\n R = \"Whiteboard\",\n dt = (_dt = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, i, b), t, c), d, I), l, F), f, v), n, S), h, A), o, P), u, j), g, B), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, s, N), y, k), m, D), e, T), p, C), a, W), w, K), x, R));\n var gt = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n slab: {\n 400: \"faslr\"\n },\n \"slab-press\": {\n 400: \"faslpr\"\n },\n whiteboard: {\n 600: \"fawsb\"\n },\n thumbprint: {\n 300: \"fatl\"\n },\n notdog: {\n 900: \"fans\"\n },\n \"notdog-duo\": {\n 900: \"fands\"\n },\n etch: {\n 900: \"faes\"\n },\n chisel: {\n 400: \"facr\"\n },\n jelly: {\n 400: \"fajr\"\n },\n \"jelly-fill\": {\n 400: \"fajfr\"\n },\n \"jelly-duo\": {\n 400: \"fajdr\"\n },\n utility: {\n 600: \"fausb\"\n },\n \"utility-duo\": {\n 600: \"faudsb\"\n },\n \"utility-fill\": {\n 600: \"faufsb\"\n }\n };\n var _t = {\n chisel: {\n regular: \"facr\"\n },\n classic: {\n brands: \"fab\",\n light: \"fal\",\n regular: \"far\",\n solid: \"fas\",\n thin: \"fat\"\n },\n duotone: {\n light: \"fadl\",\n regular: \"fadr\",\n solid: \"fad\",\n thin: \"fadt\"\n },\n etch: {\n solid: \"faes\"\n },\n jelly: {\n regular: \"fajr\"\n },\n \"jelly-duo\": {\n regular: \"fajdr\"\n },\n \"jelly-fill\": {\n regular: \"fajfr\"\n },\n notdog: {\n solid: \"fans\"\n },\n \"notdog-duo\": {\n solid: \"fands\"\n },\n sharp: {\n light: \"fasl\",\n regular: \"fasr\",\n solid: \"fass\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n light: \"fasdl\",\n regular: \"fasdr\",\n solid: \"fasds\",\n thin: \"fasdt\"\n },\n slab: {\n regular: \"faslr\"\n },\n \"slab-press\": {\n regular: \"faslpr\"\n },\n thumbprint: {\n light: \"fatl\"\n },\n utility: {\n semibold: \"fausb\"\n },\n \"utility-duo\": {\n semibold: \"faudsb\"\n },\n \"utility-fill\": {\n semibold: \"faufsb\"\n },\n whiteboard: {\n semibold: \"fawsb\"\n }\n };\n var qt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n Ht = [\"kit\"];\n var L = \"kit\",\n r = \"kit-duotone\",\n U = \"Kit\",\n J = \"Kit Duotone\",\n $t = _defineProperty(_defineProperty({}, L, U), r, J);\n var ol = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n };\n var fl = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\n var ul = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\n var _ml;\n var l$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n };\n var n$1 = \"classic\",\n o$1 = \"duotone\",\n u$1 = \"sharp\",\n s$1 = \"sharp-duotone\",\n h$1 = \"chisel\",\n g$1 = \"etch\",\n y$1 = \"jelly\",\n e$1 = \"jelly-duo\",\n m$1 = \"jelly-fill\",\n p$1 = \"notdog\",\n a$1 = \"notdog-duo\",\n w$1 = \"slab\",\n b$1 = \"slab-press\",\n r$1 = \"thumbprint\",\n c$1 = \"utility\",\n i$1 = \"utility-duo\",\n x$1 = \"utility-fill\",\n I$1 = \"whiteboard\",\n F$1 = \"Classic\",\n v$1 = \"Duotone\",\n S$1 = \"Sharp\",\n A$1 = \"Sharp Duotone\",\n P$1 = \"Chisel\",\n j$1 = \"Etch\",\n B$1 = \"Jelly\",\n N$1 = \"Jelly Duo\",\n k$1 = \"Jelly Fill\",\n D$1 = \"Notdog\",\n C$1 = \"Notdog Duo\",\n T$1 = \"Slab\",\n L$1 = \"Slab Press\",\n W$1 = \"Thumbprint\",\n R$1 = \"Utility\",\n K$1 = \"Utility Duo\",\n U$1 = \"Utility Fill\",\n J$1 = \"Whiteboard\",\n ml$1 = (_ml = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, n$1, F$1), o$1, v$1), u$1, S$1), s$1, A$1), h$1, P$1), g$1, j$1), y$1, B$1), e$1, N$1), m$1, k$1), p$1, D$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, a$1, C$1), w$1, T$1), b$1, L$1), r$1, W$1), c$1, R$1), i$1, K$1), x$1, U$1), I$1, J$1));\n var E$1 = \"kit\",\n d$1 = \"kit-duotone\",\n _$1 = \"Kit\",\n M$1 = \"Kit Duotone\",\n rt$1 = _defineProperty(_defineProperty({}, E$1, _$1), d$1, M$1);\n var $t$1 = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n },\n slab: {\n \"fa-regular\": \"faslr\"\n },\n \"slab-press\": {\n \"fa-regular\": \"faslpr\"\n },\n whiteboard: {\n \"fa-semibold\": \"fawsb\"\n },\n thumbprint: {\n \"fa-light\": \"fatl\"\n },\n notdog: {\n \"fa-solid\": \"fans\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"fands\"\n },\n etch: {\n \"fa-solid\": \"faes\"\n },\n jelly: {\n \"fa-regular\": \"fajr\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"fajfr\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"fajdr\"\n },\n chisel: {\n \"fa-regular\": \"facr\"\n },\n utility: {\n \"fa-semibold\": \"fausb\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"faudsb\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"faufsb\"\n }\n },\n z = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"],\n slab: [\"faslr\"],\n \"slab-press\": [\"faslpr\"],\n whiteboard: [\"fawsb\"],\n thumbprint: [\"fatl\"],\n notdog: [\"fans\"],\n \"notdog-duo\": [\"fands\"],\n etch: [\"faes\"],\n jelly: [\"fajr\"],\n \"jelly-fill\": [\"fajfr\"],\n \"jelly-duo\": [\"fajdr\"],\n chisel: [\"facr\"],\n utility: [\"fausb\"],\n \"utility-duo\": [\"faudsb\"],\n \"utility-fill\": [\"faufsb\"]\n },\n Ht$1 = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n },\n slab: {\n faslr: \"fa-regular\"\n },\n \"slab-press\": {\n faslpr: \"fa-regular\"\n },\n whiteboard: {\n fawsb: \"fa-semibold\"\n },\n thumbprint: {\n fatl: \"fa-light\"\n },\n notdog: {\n fans: \"fa-solid\"\n },\n \"notdog-duo\": {\n fands: \"fa-solid\"\n },\n etch: {\n faes: \"fa-solid\"\n },\n jelly: {\n fajr: \"fa-regular\"\n },\n \"jelly-fill\": {\n fajfr: \"fa-regular\"\n },\n \"jelly-duo\": {\n fajdr: \"fa-regular\"\n },\n chisel: {\n facr: \"fa-regular\"\n },\n utility: {\n fausb: \"fa-semibold\"\n },\n \"utility-duo\": {\n faudsb: \"fa-semibold\"\n },\n \"utility-fill\": {\n faufsb: \"fa-semibold\"\n }\n },\n G$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\", \"semibold\"],\n O$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n V$1 = O$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n $$1 = [\"aw\", \"fw\", \"pull-left\", \"pull-right\"],\n to = [].concat(_toConsumableArray(Object.keys(z)), G$1, $$1, [\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"inverse\", \"layers\", \"layers-bottom-left\", \"layers-bottom-right\", \"layers-counter\", \"layers-text\", \"layers-top-left\", \"layers-top-right\", \"li\", \"pull-end\", \"pull-start\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", \"width-auto\", \"width-fixed\", l$1.GROUP, l$1.SWAP_OPACITY, l$1.PRIMARY, l$1.SECONDARY]).concat(O$1.map(function (t) {\n return \"\".concat(t, \"x\");\n })).concat(V$1.map(function (t) {\n return \"w-\".concat(t);\n }));\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e$$1) {\n return false;\n }\n }();\n function familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[i];\n }\n });\n }\n var _PREFIX_TO_STYLE = _objectSpread2({}, q);\n\n // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n // {'fa-duotone': 'duotone'}\n _PREFIX_TO_STYLE[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n }), q[i]), qt['kit']), qt['kit-duotone']);\n var PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\n var _STYLE_TO_PREFIX = _objectSpread2({}, _t);\n\n // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n _STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n }), _STYLE_TO_PREFIX[i]), ul['kit']), ul['kit-duotone']);\n var STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\n var _PREFIX_TO_LONG_STYLE = _objectSpread2({}, Ht$1);\n _PREFIX_TO_LONG_STYLE[i] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[i]), fl['kit']);\n var PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\n var _LONG_STYLE_TO_PREFIX = _objectSpread2({}, $t$1);\n _LONG_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[i]), ol['kit']);\n var LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\n var _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, gt);\n var FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\n var RESERVED_CLASSES = [].concat(_toConsumableArray(Ht), _toConsumableArray(to));\n\n function bunker(fn) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n fn.apply(void 0, args);\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n var w$2 = WINDOW || {};\n if (!w$2[NAMESPACE_IDENTIFIER]) w$2[NAMESPACE_IDENTIFIER] = {};\n if (!w$2[NAMESPACE_IDENTIFIER].styles) w$2[NAMESPACE_IDENTIFIER].styles = {};\n if (!w$2[NAMESPACE_IDENTIFIER].hooks) w$2[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w$2[NAMESPACE_IDENTIFIER].shims) w$2[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w$2[NAMESPACE_IDENTIFIER];\n\n function normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n }\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var icons = {\n \"square-minus\": [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM136 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"calendar-check\": [448, 512, [], \"f274\", \"M328 0c13.3 0 24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24zM64 112c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16L64 112zm230.7 65.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 374.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z\"],\n \"face-kiss\": [512, 512, [128535, \"kiss\"], \"f596\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm240 0l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-96-48a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"paste\": [512, 512, [\"file-clipboard\"], \"f0ea\", \"M64 48l224 0c8.8 0 16 7.2 16 16l0 48 48 0 0-48c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 384c0 35.3 28.7 64 64 64l112 0 0-48-112 0c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zm176 72c0-13.3-10.7-24-24-24L104 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l105.6 0c8.8-8.6 19-15.8 30.2-21.1 .1-.9 .2-1.9 .2-2.9zM448 464l-160 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l101.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L464 448c0 8.8-7.2 16-16 16zM224 224l0 224c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-165.5c0-17-6.7-33.3-18.7-45.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7L288 160c-35.3 0-64 28.7-64 64z\"],\n \"hand-point-left\": [512, 512, [], \"f0a5\", \"M64 128l177.6 0c-1 5.2-1.6 10.5-1.6 16l0 16-176 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm224 16c0-17.7 14.3-32 32-32l24 0c66.3 0 120 53.7 120 120l0 48c0 52.5-33.7 97.1-80.7 113.4 .5-3.1 .7-6.2 .7-9.4 0-20-9.2-37.9-23.6-49.7 4.9-9 7.6-19.4 7.6-30.3 0-15.1-5.3-29-14-40 8.8-11 14-24.9 14-40l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80zm32-80l0 0c-18 0-34.6 6-48 16L64 80C28.7 80 0 108.7 0 144s28.7 64 64 64l82 0c-1.3 5.1-2 10.5-2 16 0 25.3 14.7 47.2 36 57.6-2.6 7-4 14.5-4 22.4 0 20 9.2 37.9 23.6 49.7-4.9 9-7.6 19.4-7.6 30.3 0 35.3 28.7 64 64 64l88 0c92.8 0 168-75.2 168-168l0-48c0-92.8-75.2-168-168-168l-24 0zM256 400c-8.8 0-16-7.2-16-16s7.2-16 16-16l64 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0zM240 224c0 5.5 .7 10.9 2 16l-34 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l32 0 0 16zm24 64l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l24 0z\"],\n \"file-excel\": [384, 512, [], \"f1c3\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm99.2 265.6c-8-10.6-23-12.8-33.6-4.8s-12.8 23-4.8 33.6L162 344 124.8 393.6c-8 10.6-5.8 25.6 4.8 33.6s25.6 5.8 33.6-4.8L192 384 220.8 422.4c8 10.6 23 12.8 33.6 4.8s12.8-23 4.8-33.6L222 344 259.2 294.4c8-10.6 5.8-25.6-4.8-33.6s-25.6-5.8-33.6 4.8L192 304 163.2 265.6z\"],\n \"envelope\": [512, 512, [128386, 9993, 61443], \"f0e0\", \"M61.4 64C27.5 64 0 91.5 0 125.4 0 126.3 0 127.1 .1 128L0 128 0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256-.1 0c0-.9 .1-1.7 .1-2.6 0-33.9-27.5-61.4-61.4-61.4L61.4 64zM464 192.3L464 384c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-191.7 154.8 117.4c31.4 23.9 74.9 23.9 106.4 0L464 192.3zM48 125.4C48 118 54 112 61.4 112l389.2 0c7.4 0 13.4 6 13.4 13.4 0 4.2-2 8.2-5.3 10.7L280.2 271.5c-14.3 10.8-34.1 10.8-48.4 0L53.3 136.1c-3.3-2.5-5.3-6.5-5.3-10.7z\"],\n \"square-caret-down\": [448, 512, [\"caret-square-down\"], \"f150\", \"M384 432c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0zm64-16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9S110.5 192 120 192l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"],\n \"truck\": [576, 512, [128666, 9951], \"f0d1\", \"M64 80c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l3.3 0c10.4-36.9 44.4-64 84.7-64s74.2 27.1 84.7 64l102.6 0c4.9-17.4 15.1-32.7 28.7-43.9L368 96c0-8.8-7.2-16-16-16L64 80zm3.3 368L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l288 0c35.3 0 64 28.7 64 64l0 32 55.4 0c17 0 33.3 6.7 45.3 18.7l40.6 40.6c12 12 18.7 28.3 18.7 45.3L576 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64zM416 256l112 0 0-23.4c0-4.2-1.7-8.3-4.7-11.3l-40.6-40.6c-3-3-7.1-4.7-11.3-4.7l-55.4 0 0 80zm0 48l0 32.4c2.6-.2 5.3-.4 8-.4 40.3 0 74.2 27.1 84.7 64l3.3 0c8.8 0 16-7.2 16-16l0-80-112 0zM152 464a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm272 0a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"bell\": [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-13.3 0-24 10.7-24 24l0 9.7C118.6 45.3 56 115.4 56 200l0 14.5c0 37.7-10 74.7-29 107.3L5.1 359.2C1.8 365 0 371.5 0 378.2 0 399.1 16.9 416 37.8 416l372.4 0c20.9 0 37.8-16.9 37.8-37.8 0-6.7-1.8-13.3-5.1-19L421 321.7c-19-32.6-29-69.6-29-107.3l0-14.5c0-84.6-62.6-154.7-144-166.3l0-9.7c0-13.3-10.7-24-24-24zM392.4 368l-336.9 0 12.9-22.1C91.7 306 104 260.6 104 214.5l0-14.5c0-66.3 53.7-120 120-120s120 53.7 120 120l0 14.5c0 46.2 12.3 91.5 35.5 131.4L392.4 368zM156.1 464c9.9 28 36.6 48 67.9 48s58-20 67.9-48l-135.8 0z\"],\n \"message\": [512, 512, [\"comment-alt\"], \"f27a\", \"M203.7 512.9s0 0 0 0l-37.8 26.7c-7.3 5.2-16.9 5.8-24.9 1.7S128 529 128 520l0-72-32 0c-53 0-96-43-96-96L0 128C0 75 43 32 96 32l320 0c53 0 96 43 96 96l0 224c0 53-43 96-96 96l-120.4 0-91.9 64.9zm64.3-104.1c8.1-5.7 17.8-8.8 27.7-8.8L416 400c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L96 80c-26.5 0-48 21.5-48 48l0 224c0 26.5 21.5 48 48 48l56 0c10.4 0 19.3 6.6 22.6 15.9 .9 2.5 1.4 5.2 1.4 8.1l0 49.7c32.7-23.1 63.3-44.7 91.9-64.9z\"],\n \"face-dizzy\": [512, 512, [\"dizzy\"], \"f567\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM134.1 153.9l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zm192 0l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zM256 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"calendar-days\": [448, 512, [\"calendar-alt\"], \"f073\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zM384 432c8.8 0 16-7.2 16-16l0-64-88 0 0 80 72 0zm16-128l0-80-88 0 0 80 88 0zm-136 0l0-80-80 0 0 80 80 0zm-128 0l0-80-88 0 0 80 88 0zM48 352l0 64c0 8.8 7.2 16 16 16l72 0 0-80-88 0zm136 0l0 80 80 0 0-80-80 0zM120 112l-56 0c-8.8 0-16 7.2-16 16l0 48 352 0 0-48c0-8.8-7.2-16-16-16l-264 0z\"],\n \"hand-point-up\": [384, 512, [9757], \"f0a6\", \"M64 64l0 177.6c5.2-1 10.5-1.6 16-1.6l16 0 0-176c0-8.8-7.2-16-16-16S64 55.2 64 64zM80 288c-17.7 0-32 14.3-32 32l0 24c0 66.3 53.7 120 120 120l48 0c52.5 0 97.1-33.7 113.4-80.7-3.1 .5-6.2 .7-9.4 .7-20 0-37.9-9.2-49.7-23.6-9 4.9-19.4 7.6-30.3 7.6-15.1 0-29-5.3-40-14-11 8.8-24.9 14-40 14l-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l40 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-80 0zM0 320l0 0c0-18 6-34.6 16-48L16 64C16 28.7 44.7 0 80 0s64 28.7 64 64l0 82c5.1-1.3 10.5-2 16-2 25.3 0 47.2 14.7 57.6 36 7-2.6 14.5-4 22.4-4 20 0 37.9 9.2 49.7 23.6 9-4.9 19.4-7.6 30.3-7.6 35.3 0 64 28.7 64 64l0 88c0 92.8-75.2 168-168 168l-48 0C75.2 512 0 436.8 0 344l0-24zm336-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM160 240c5.5 0 10.9 .7 16 2l0-34c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 32 16 0zm64 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 24z\"],\n \"hand-lizard\": [512, 512, [], \"f258\", \"M72 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l168 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0c4.5 0 8.9 1.3 12.7 3.6l64 40c7 4.4 11.3 12.1 11.3 20.4l0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-10.7-46.9-29.3-145.1 0c-39.8 0-72-32.2-72-72s32.2-72 72-72l104 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L72 208c-39.8 0-72-32.2-72-72S32.2 64 72 64l209.6 0c46.7 0 90.9 21.5 119.7 58.3l78.4 100.1c20.9 26.7 32.3 59.7 32.3 93.7L512 424c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-107.9c0-23.2-7.8-45.8-22.1-64.1L363.5 151.9c-19.7-25.2-49.9-39.9-81.9-39.9L72 112z\"],\n \"square-full\": [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M448 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16l384 0zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0z\"],\n \"circle-pause\": [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144zm112 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144z\"],\n \"hard-drive\": [448, 512, [128436, \"hdd\"], \"f0a0\", \"M64 80c-8.8 0-16 7.2-16 16l0 162c5.1-1.3 10.5-2 16-2l320 0c5.5 0 10.9 .7 16 2l0-162c0-8.8-7.2-16-16-16L64 80zM48 320l0 96c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L64 304c-8.8 0-16 7.2-16 16zM0 320L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm216 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"file-zipper\": [384, 512, [\"file-archive\"], \"f1c6\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM80 104c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24zm0 80c0 13.3 10.7 24 24 24l32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0c-13.3 0-24 10.7-24 24zm64 56l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"],\n \"floppy-disk\": [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-242.7c0-4.2-1.7-8.3-4.7-11.3L320 86.6 320 176c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-96-32 0zm80 0l0 80 128 0 0-80-128 0zM0 96C0 60.7 28.7 32 64 32l242.7 0c17 0 33.3 6.7 45.3 18.7L429.3 128c12 12 18.7 28.3 18.7 45.3L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM160 320a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\n \"face-grin-tongue-squint\": [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 75.9 40.7 142.4 101.5 178.7-3.6-10.9-5.5-22.6-5.5-34.7l0-37.5c-10.2-12.6-18.3-26.9-23.8-42.4-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8-5.5 15.6-13.6 29.9-23.8 42.5l0 37.5c0 12.1-1.9 23.8-5.5 34.7 60.8-36.3 101.5-102.7 101.5-178.7zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm125.8-75.7c-6.2-5.2-7.6-14.3-3.1-21.1s13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3zm263.6-21.1c4.5 6.8 3.1 15.9-3.1 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5zM320 416l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n \"camera\": [512, 512, [62258, \"camera-alt\"], \"f030\", \"M193.1 32c-18.7 0-36.2 9.4-46.6 24.9L120.5 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-56.5 0-26-39.1C355.1 41.4 337.6 32 318.9 32L193.1 32zm-6.7 51.6c1.5-2.2 4-3.6 6.7-3.6l125.7 0c2.7 0 5.2 1.3 6.7 3.6l33.2 49.8c4.5 6.7 11.9 10.7 20 10.7l69.3 0c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l69.3 0c8 0 15.5-4 20-10.7l33.2-49.8zM256 384a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM192 272a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\n \"face-grin-stars\": [512, 512, [129321, \"grin-stars\"], \"f587\", \"M0 256c0-29.6 5-57.9 14.2-84.4l17.3 16.9-4.6 27c-4.2 24.4 5.6 46.2 22 59.9 9.8 105.8 98.8 188.7 207.1 188.7s197.4-82.8 207.1-188.6c16.4-13.7 26.1-35.4 22-59.9l-4.6-27 17.3-16.9c9.2 26.4 14.2 54.8 14.2 84.4 0 141.4-114.6 256-256 256S0 397.4 0 256zM256 48c-15.2 0-30 1.6-44.3 4.7L201.4 31.8C197 23 191.1 15.8 184.2 10.2 207 3.6 231.1 0 256 0s49 3.6 71.8 10.2C320.9 15.8 315 23 310.6 31.8L300.3 52.7C286 49.6 271.2 48 256 48zM372.2 302.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM353.7 53.1c5.9-11.9 22.8-11.9 28.7 0l23.3 47.2 52 7.6c13.1 1.9 18.4 18 8.9 27.3l-37.7 36.7 8.9 51.8c2.2 13.1-11.5 23-23.2 16.9L368 216 321.5 240.5c-11.7 6.2-25.5-3.8-23.2-16.9l8.9-51.8-37.7-36.7c-9.5-9.3-4.3-25.4 8.9-27.3l52-7.6 23.3-47.2zm-195.3 0l23.3 47.2 52 7.6c13.1 1.9 18.4 18 8.9 27.3l-37.7 36.7 8.9 51.8c2.2 13.1-11.5 23-23.2 16.9L144 216 97.5 240.5c-11.7 6.2-25.5-3.8-23.2-16.9l8.9-51.8-37.7-36.7c-9.5-9.3-4.3-25.4 8.9-27.3l52-7.6 23.3-47.2c5.9-11.9 22.8-11.9 28.7 0z\"],\n \"eye\": [576, 512, [128065], \"f06e\", \"M288 80C222.8 80 169.2 109.6 128.1 147.7 89.6 183.5 63 226 49.4 256 63 286 89.6 328.5 128.1 364.3 169.2 402.4 222.8 432 288 432s118.8-29.6 159.9-67.7C486.4 328.5 513 286 526.6 256 513 226 486.4 183.5 447.9 147.7 406.8 109.6 353.2 80 288 80zM95.4 112.6C142.5 68.8 207.2 32 288 32s145.5 36.8 192.6 80.6c46.8 43.5 78.1 95.4 93 131.1 3.3 7.9 3.3 16.7 0 24.6-14.9 35.7-46.2 87.7-93 131.1-47.1 43.7-111.8 80.6-192.6 80.6S142.5 443.2 95.4 399.4c-46.8-43.5-78.1-95.4-93-131.1-3.3-7.9-3.3-16.7 0-24.6 14.9-35.7 46.2-87.7 93-131.1zM288 336c44.2 0 80-35.8 80-80 0-29.6-16.1-55.5-40-69.3-1.4 59.7-49.6 107.9-109.3 109.3 13.8 23.9 39.7 40 69.3 40zm-79.6-88.4c2.5 .3 5 .4 7.6 .4 35.3 0 64-28.7 64-64 0-2.6-.2-5.1-.4-7.6-37.4 3.9-67.2 33.7-71.1 71.1zm45.6-115c10.8-3 22.2-4.5 33.9-4.5 8.8 0 17.5 .9 25.8 2.6 .3 .1 .5 .1 .8 .2 57.9 12.2 101.4 63.7 101.4 125.2 0 70.7-57.3 128-128 128-61.6 0-113-43.5-125.2-101.4-1.8-8.6-2.8-17.5-2.8-26.6 0-11 1.4-21.8 4-32 .2-.7 .3-1.3 .5-1.9 11.9-43.4 46.1-77.6 89.5-89.5z\"],\n \"face-sad-tear\": [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 41.8 12.3 80.7 33.6 113.3 8.2 44.7 47.3 78.6 94.3 78.7 24.7 10.3 51.7 16 80.1 16 114.9 0 208-93.1 208-208zM288 352c-5.5 0-10.9 .6-16 1.8 0-.6 0-1.2 0-1.8 0-16.2-4-31.5-11.1-44.9 8.7-2 17.8-3.1 27.1-3.1 40.2 0 75.7 19.8 97.5 50 7.7 10.8 5.3 25.8-5.5 33.5s-25.8 5.3-33.5-5.5c-13.1-18.2-34.4-30-58.5-30zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM185.4 276.8c6.5 7.8 12.6 16.1 18.3 24.6 9 13.4 20.3 30.2 20.3 47.4 0 28.3-21.5 51.2-48 51.2s-48-22.9-48-51.2c0-17.2 11.2-34 20.3-47.4 5.7-8.5 11.9-16.7 18.3-24.6 2.4-2.9 5.7-4.8 9.4-4.8s7 1.9 9.4 4.8z\"],\n \"share-from-square\": [576, 512, [61509, \"share-square\"], \"f14d\", \"M425.5 7c-6.9-6.9-17.2-8.9-26.2-5.2S384.5 14.3 384.5 24l0 56-48 0c-88.4 0-160 71.6-160 160 0 46.7 20.7 80.4 43.6 103.4 8.1 8.2 16.5 14.9 24.3 20.4 9.2 6.5 21.7 5.7 30.1-1.9s10.2-20 4.5-29.8c-3.6-6.3-6.5-14.9-6.5-26.7 0-36.2 29.3-65.5 65.5-65.5l46.5 0 0 56c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l136-136c9.4-9.4 9.4-24.6 0-33.9L425.5 7zm7 97l0-22.1 78.1 78.1-78.1 78.1 0-22.1c0-13.3-10.7-24-24-24L338 192c-50.9 0-93.9 33.5-108.3 79.6-3.3-9.4-5.2-19.8-5.2-31.6 0-61.9 50.1-112 112-112l72 0c13.3 0 24-10.7 24-24zm-320-8c-44.2 0-80 35.8-80 80l0 256c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24 0z\"],\n \"note-sticky\": [448, 512, [62026, \"sticky-note\"], \"f249\", \"M240 432L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0c8.8 0 16 7.2 16 16l0 176-88 0c-39.8 0-72 32.2-72 72l0 88zM380.1 320L288 412.1 288 344c0-13.3 10.7-24 24-24l68.1 0zM0 416c0 35.3 28.7 64 64 64l197.5 0c17 0 33.3-6.7 45.3-18.7L429.3 338.7c12-12 18.7-28.3 18.7-45.3L448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416z\"],\n \"hand-back-fist\": [384, 512, [\"hand-rock\"], \"f255\", \"M96 400c-17.7 0-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32L96 400zM73.2 352l64.6 0-79.5-88.3C51.7 256.3 48 246.8 48 236.9L48 204c0-16.1 11.9-29.5 27.4-31.7 11.8-1.7 20.6-11.8 20.6-23.8L96 72c0-13.3 10.7-24 24-24 7.2 0 13.6 3.1 18 8.1 4.6 5.2 11.1 8.1 18 8.1s13.4-3 18-8.1c4.4-5 10.8-8.1 18-8.1 8.5 0 15.9 4.4 20.2 11.1 6.9 10.7 20.9 14.2 32 8 3.5-1.9 7.4-3.1 11.8-3.1 10.6 0 19.7 6.9 22.8 16.6 3.8 11.7 15.9 18.7 28 16 1.7-.4 3.4-.6 5.2-.6 13.3 0 24 10.7 24 24l0 92.2c0 14.4-3.5 28.5-10.2 41.2l-52.2 98.6 54.3 0 40.3-76.2c10.4-19.6 15.8-41.5 15.8-63.6l0-92.2c0-38.4-30.1-69.8-68.1-71.9-12.9-19.3-34.9-32.1-59.9-32.1-5.7 0-11.2 .7-16.5 1.9-12.7-11.1-29.3-17.9-47.5-17.9-13.1 0-25.4 3.5-36 9.6-10.6-6.1-22.9-9.6-36-9.6-39.8 0-72 32.2-72 72l0 58.7C19.7 143 0 171.2 0 204l0 32.9c0 21.7 8 42.7 22.6 58.9L73.2 352z\"],\n \"chess-queen\": [512, 512, [9819], \"f445\", \"M325.3 90.8c9.1-4.8 20.6-3.3 28.2 4.3l39.8 39.8 3.7 3.3c9.1 7.1 20.9 10 32.4 7.7l46.4-9.3 3.5-.4c8-.4 15.8 3.2 20.6 9.8 5.5 7.6 6.1 17.6 1.6 25.8l-112.6 202.6 51.5 70.9 1.8 2.7c4 6.6 6.2 14.2 6.2 22 0 23.3-18.9 42.1-42.1 42.1l-299.8 0c-21.8 0-39.8-16.6-41.9-37.8l-.2-4.3 .1-3.3c.6-7.7 3.4-15.1 7.9-21.4l51.5-70.9-112.5-202.6c-4.5-8.2-3.9-18.3 1.6-25.8s14.9-11.2 24.1-9.4l46.4 9.3c13.1 2.6 26.7-1.5 36.1-10.9L159.5 95 163 92.2c8.6-5.8 20.1-5.6 28.5 1.1l40 32 2.8 2.1c14.4 9.6 33.5 8.9 47.2-2.1l40-32 3.8-2.5zM164.7 400l-46.6 64 276.7 0-46.6-64-183.6 0zM311.5 162.8c-30.1 24.1-72.1 25.6-103.8 4.5l-6.2-4.5-23.3-18.6-24.6 24.6c-19.8 19.8-47.7 28.9-75.1 24.8l88.1 158.5 179.8 0 88-158.5c-25.7 3.8-51.7-3.9-71.1-21l-4-3.7-24.6-24.6-23.2 18.6zM256.5 72a40 40 0 1 1 0-80 40 40 0 1 1 0 80z\"],\n \"face-grin-tears\": [640, 512, [128514, \"grin-tears\"], \"f588\", \"M504.1 353C512.9 367.2 525.3 379 539.8 387.2 495.1 462 413.4 512 320 512S144.9 462 100.2 387.2c14.6-8.2 26.9-20 35.8-34.3 34.9 66 104.2 111 184.1 111s149.2-45 184.1-111zm16.4-152.5C496.2 112.6 415.7 48 320 48S143.8 112.6 119.5 200.5c-10.6-4.8-22.7-6.8-35.4-5l-13.4 1.9C97.2 84.3 198.8 0 320 0S542.8 84.3 569.3 197.4l-13.4-1.9c-12.7-1.8-24.8 .2-35.4 5zM455.8 320c-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8zM212 208l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28zm188-28c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zM640 300.6c0 28.4-23 51.4-51.4 51.4-25.6 0-47.3-18.8-50.9-44.1L531 261.1c-1.5-10.6 7.5-19.6 18.1-18.1l46.7 6.7c25.3 3.6 44.1 25.3 44.1 50.9zm-640 0c0-25.6 18.8-47.3 44.1-50.9L90.9 243c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C98.7 333.2 77 352 51.4 352 23 352 0 329 0 300.6z\"],\n \"pen-to-square\": [512, 512, [\"edit\"], \"f044\", \"M441 58.9L453.1 71c9.4 9.4 9.4 24.6 0 33.9L424 134.1 377.9 88 407 58.9c9.4-9.4 24.6-9.4 33.9 0zM209.8 256.2L344 121.9 390.1 168 255.8 302.2c-2.9 2.9-6.5 5-10.4 6.1l-58.5 16.7 16.7-58.5c1.1-3.9 3.2-7.5 6.1-10.4zM373.1 25L175.8 222.2c-8.7 8.7-15 19.4-18.3 31.1l-28.6 100c-2.4 8.4-.1 17.4 6.1 23.6s15.2 8.5 23.6 6.1l100-28.6c11.8-3.4 22.5-9.7 31.1-18.3L487 138.9c28.1-28.1 28.1-73.7 0-101.8L474.9 25C446.8-3.1 401.2-3.1 373.1 25zM88 64C39.4 64 0 103.4 0 152L0 424c0 48.6 39.4 88 88 88l272 0c48.6 0 88-39.4 88-88l0-112c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 22.1-17.9 40-40 40L88 464c-22.1 0-40-17.9-40-40l0-272c0-22.1 17.9-40 40-40l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64z\"],\n \"face-grin-beam-sweat\": [576, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M530.2 15.9c-8.8-10.7-18.5-20.9-29-30-3-2.6-7.4-2.6-10.4 0-10.5 9.1-20.1 19.3-29 30-14.7 17.8-29.8 40.1-29.8 64.1 0 36.4 27.6 64 64 64s64-27.6 64-64c0-24-15.2-46.3-29.8-64.1zm-132 8.9C364.8 8.9 327.4 0 288 0 146.6 0 32 114.6 32 256S146.6 512 288 512 544 397.4 544 256c0-24.4-3.4-48-9.8-70.4-11.9 4.2-24.7 6.4-38.2 6.4-3.4 0-6.8-.1-10.2-.4 6.6 20.3 10.2 41.9 10.2 64.4 0 114.9-93.1 208-208 208S80 370.9 80 256 173.1 48 288 48c34.8 0 67.5 8.5 96.3 23.6 1.4-17.4 6.9-33.1 13.8-46.8zM423.8 320c4.1-11.6-7.8-21.4-19.6-17.8-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 19.8 55.9 73.1 95.9 135.8 95.9 62.7 0 116-40.1 135.8-96zM180 208c0-15.5 12.5-28 28-28s28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8zm188-28c15.5 0 28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-15.5 12.5-28 28-28z\"],\n \"clock\": [512, 512, [128339, \"clock-four\"], \"f017\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n \"face-laugh-wink\": [512, 512, [\"laugh-wink\"], \"f59c\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"],\n \"paper-plane\": [576, 512, [61913], \"f1d8\", \"M290.5 287.7L491.4 86.9 359 456.3 290.5 287.7zM457.4 53L256.6 253.8 88 185.3 457.4 53zM38.1 216.8l205.8 83.6 83.6 205.8c5.3 13.1 18.1 21.7 32.3 21.7 14.7 0 27.8-9.2 32.8-23.1L570.6 8c3.5-9.8 1-20.6-6.3-28s-18.2-9.8-28-6.3L39.4 151.7c-13.9 5-23.1 18.1-23.1 32.8 0 14.2 8.6 27 21.7 32.3z\"],\n \"heart\": [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M378.9 80c-27.3 0-53 13.1-69 35.2l-34.4 47.6c-4.5 6.2-11.7 9.9-19.4 9.9s-14.9-3.7-19.4-9.9l-34.4-47.6c-16-22.1-41.7-35.2-69-35.2-47 0-85.1 38.1-85.1 85.1 0 49.9 32 98.4 68.1 142.3 41.1 50 91.4 94 125.9 120.3 3.2 2.4 7.9 4.2 14 4.2s10.8-1.8 14-4.2c34.5-26.3 84.8-70.4 125.9-120.3 36.2-43.9 68.1-92.4 68.1-142.3 0-47-38.1-85.1-85.1-85.1zM271 87.1c25-34.6 65.2-55.1 107.9-55.1 73.5 0 133.1 59.6 133.1 133.1 0 68.6-42.9 128.9-79.1 172.8-44.1 53.6-97.3 100.1-133.8 127.9-12.3 9.4-27.5 14.1-43.1 14.1s-30.8-4.7-43.1-14.1C176.4 438 123.2 391.5 79.1 338 42.9 294.1 0 233.7 0 165.1 0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1l15 20.7 15-20.7z\"],\n \"font-awesome\": [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 48 0 0-64 389.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96zM80 400l0-256 356.4 0-48.2 108.5c-5.5 12.4-5.5 26.6 0 39L436.4 400 80 400z\"],\n \"clone\": [512, 512, [], \"f24d\", \"M288 464L64 464c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l48 0 0-48-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-48-48 0 0 48c0 8.8-7.2 16-16 16zM224 304c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-224 0zm-64-16c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224z\"],\n \"folder-open\": [576, 512, [128194, 128449, 61717], \"f07c\", \"M97.5 400l50-160 379.4 0-50 160-379.4 0zm190.7 48L477 448c21 0 39.6-13.6 45.8-33.7l50-160c9.7-30.9-13.4-62.3-45.8-62.3l-379.4 0c-21 0-39.6 13.6-45.8 33.7L80.2 294.4 80.2 96c0-8.8 7.2-16 16-16l138.7 0c3.5 0 6.8 1.1 9.6 3.2L282.9 112c13.8 10.4 30.7 16 48 16l117.3 0c8.8 0 16 7.2 16 16l48 0c0-35.3-28.7-64-64-64L330.9 80c-6.9 0-13.7-2.2-19.2-6.4L273.3 44.8C262.2 36.5 248.8 32 234.9 32L96.2 32c-35.3 0-64 28.7-64 64l0 288c0 35.3 28.7 64 64 64l192 0z\"],\n \"window-minimize\": [512, 512, [128469], \"f2d1\", \"M0 424c0-13.3 10.7-24 24-24l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 448c-13.3 0-24-10.7-24-24z\"],\n \"star-half\": [576, 512, [61731], \"f089\", \"M285.7-15.8c10.8 2.6 18.4 12.2 18.4 23.3l0 387.1c0 9-5.1 17.3-13.1 21.4L143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3L193.1 125.3 258.8-3.3c5-9.9 16.2-15 27-12.4zM256.1 107.4L230.3 158c-3.5 6.8-10 11.6-17.6 12.8l-125.5 20 89.8 89.9c5.4 5.4 7.9 13.1 6.7 20.7l-19.8 125.5 92.2-46.9 0-272.6z\"],\n \"alarm-clock\": [512, 512, [9200], \"f34e\", \"M402.6 50.2c-5.4 1.7-11.3 1.8-16.2-.9-5.8-3.2-11.8-6.2-17.8-8.9-10.4-4.7-13.7-18.3-4.1-24.6 15-9.9 33-15.7 52.3-15.7 52.6 0 95.2 42.6 95.2 95.2 0 13.2-2.7 25.8-7.6 37.3-4.5 10.5-18.4 9.8-24.9 .4-3.8-5.5-7.8-10.8-12-16-3.5-4.4-4.5-10.2-3.8-15.8 .2-1.9 .4-3.9 .4-5.9 0-26.1-21.2-47.2-47.2-47.2-4.9 0-9.7 .8-14.2 2.2zM32.5 132.9c-6.5 9.4-20.5 10.1-24.9-.4-4.9-11.5-7.6-24.1-7.6-37.3 0-52.6 42.6-95.2 95.2-95.2 19.3 0 37.3 5.8 52.3 15.7 9.6 6.3 6.3 19.9-4.1 24.6-6.1 2.8-12 5.7-17.8 8.9-4.9 2.7-10.9 2.6-16.2 .9-4.5-1.4-9.2-2.2-14.2-2.2-26.1 0-47.2 21.2-47.2 47.2 0 2 .1 4 .4 5.9 .7 5.6-.3 11.4-3.8 15.8-4.2 5.2-8.2 10.5-12 16zM432 288a176 176 0 1 0 -352 0 176 176 0 1 0 352 0zM396.5 462.5C358.1 493.4 309.2 512 256 512s-102.1-18.6-140.5-49.5L73 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l42.5-42.5C50.6 390.1 32 341.2 32 288 32 164.3 132.3 64 256 64S480 164.3 480 288c0 53.2-18.6 102.1-49.5 140.5L473 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-42.5-42.5zM280 184l0 94.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-4.5-4.5-7-10.6-7-17l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"newspaper\": [512, 512, [128240], \"f1ea\", \"M168 80c-13.3 0-24 10.7-24 24l0 304c0 8.4-1.4 16.5-4.1 24L440 432c13.3 0 24-10.7 24-24l0-304c0-13.3-10.7-24-24-24L168 80zM72 480c-39.8 0-72-32.2-72-72L0 112C0 98.7 10.7 88 24 88s24 10.7 24 24l0 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-39.8 32.2-72 72-72l272 0c39.8 0 72 32.2 72 72l0 304c0 39.8-32.2 72-72 72L72 480zM192 152c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zm152 24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM216 256l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 80l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"hospital\": [576, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M176 0c-35.3 0-64 28.7-64 64l0 48-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-272c0-35.3-28.7-64-64-64l-48 0 0-48c0-35.3-28.7-64-64-64L176 0zM160 64c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 72c0 13.3 10.7 24 24 24l72 0c8.8 0 16 7.2 16 16l0 272c0 8.8-7.2 16-16 16l-176 0 0-80c0-17.7-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 80-176 0c-8.8 0-16-7.2-16-16l0-272c0-8.8 7.2-16 16-16l72 0c13.3 0 24-10.7 24-24l0-72zM112 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM96 336l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm320 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16-112c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM264 104l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"],\n \"circle-stop\": [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM160 192l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32zm48 112l0-96 96 0 0 96-96 0z\"],\n \"object-ungroup\": [640, 512, [], \"f248\", \"M48.2 66.8c-.1-.8-.2-1.7-.2-2.5l0-.2c0-8.8 7.2-16 16-16 .9 0 1.9 .1 2.8 .2 7.5 1.3 13.2 7.9 13.2 15.8 0 8.8-7.2 16-16 16-7.9 0-14.5-5.7-15.8-13.2zM0 64c0 26.9 16.5 49.9 40 59.3l0 105.3c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0 28.7 0 0 28.7 0 64zm368 0a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM324.7 88c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-105.3c16-6.5 28.9-19.3 35.3-35.3l201.3 0zM384 272a16 16 0 1 1 0 32 16 16 0 1 1 0-32zM80 288c0 7.9-5.7 14.5-13.2 15.8-.8 .1-1.7 .2-2.5 .2l-.2 0c-8.8 0-16-7.2-16-16 0-.9 .1-1.9 .2-2.8 1.3-7.5 7.9-13.2 15.8-13.2 8.8 0 16 7.2 16 16zm436.7-40c6.5 16 19.3 28.9 35.3 35.3l0 105.3c-16 6.5-28.9 19.3-35.3 35.3l-201.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-20.7-48 0 0 20.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l201.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-105.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64-26.9 0-49.9 16.5-59.3 40l-52.7 0 0 9.6c10.7 10.9 19.1 23.9 24.6 38.4l28 0zm59.3-8a16 16 0 1 1 0-32 16 16 0 1 1 0 32zM271.8 450.7a16 16 0 1 1 -31.5-5.5 16 16 0 1 1 31.5 5.5zm301.5 13c-7.5-1.3-13.2-7.9-13.2-15.8 0-8.8 7.2-16 16-16 7.9 0 14.5 5.7 15.8 13.2l0 .1c.1 .9 .2 1.8 .2 2.7 0 8.8-7.2 16-16 16-.9 0-1.9-.1-2.8-.2z\"],\n \"comment\": [512, 512, [128489, 61669], \"f075\", \"M51.9 384.9C19.3 344.6 0 294.4 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240 397.4 480 256 480c-36.5 0-71.2-7.2-102.6-20L37 509.9c-3.7 1.6-7.5 2.1-11.5 2.1-14.1 0-25.5-11.4-25.5-25.5 0-4.3 1.1-8.5 3.1-12.2l48.8-89.4zm37.3-30.2c12.2 15.1 14.1 36.1 4.8 53.2l-18 33.1 58.5-25.1c11.8-5.1 25.2-5.2 37.1-.3 25.7 10.5 54.2 16.4 84.3 16.4 117.8 0 208-88.8 208-192S373.8 48 256 48 48 136.8 48 240c0 42.8 15.1 82.4 41.2 114.7z\"],\n \"chess-pawn\": [384, 512, [9823], \"f443\", \"M192-32c66.3 0 120 53.7 120 120 0 27.6-9.3 52.9-24.9 73.2 9.8 3 16.9 12.1 16.9 22.8 0 13.3-10.7 24-24 24l-.6 0 24.6 160 53.6 67c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L63.4 512c-26.2 0-47.4-21.2-47.4-47.4 0-10.8 3.7-21.2 10.4-29.6l53.6-67 24.6-160-.6 0c-13.3 0-24-10.7-24-24 0-10.8 7.1-19.8 16.9-22.8-15.6-20.3-24.9-45.6-24.9-73.2 0-66.3 53.7-120 120-120zM115.9 400l-51.2 64 254.7 0-51.2-64-152.2 0zm36.2-184.7l-21 136.7 121.9 0-21-136.7-1.1-7.3-77.6 0-1.1 7.3zM192 16a72 72 0 1 0 0 144 72 72 0 1 0 0-144z\"],\n \"calendar-plus\": [448, 512, [], \"f271\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm104 64c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24z\"],\n \"clipboard\": [384, 512, [128203], \"f328\", \"M232 96l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zm0 48c37.1 0 67.6-28 71.6-64L320 80c8.8 0 16 7.2 16 16l0 352c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l16.4 0c4 36 34.5 64 71.6 64l80 0zM291.9 32C279 12.7 257 0 232 0L152 0c-25 0-47 12.7-59.9 32L64 32C28.7 32 0 60.7 0 96L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64l-28.1 0z\"],\n \"thumbs-down\": [512, 512, [128078, 61576], \"f165\", \"M360 32l7.4 .4c35 3.6 62.5 32.2 64.4 67.7 17.8 11.8 30.1 31.4 32 53.9l.2 6c0 5.7-.7 11.2-2 16.5 10.2 11.5 16.8 26.3 17.8 42.7l.2 4.8c0 13.2-3.6 25.4-9.8 36 4.9 8.4 8.2 17.9 9.3 28l.4 8c0 37.3-28.3 67.9-64.6 71.6l-7.4 .4-109.7 0 14.1 30 3.1 7.6c12.5 35.7-1.8 75.5-34.2 95l-7.2 3.9c-37.5 17.6-81.7 3.6-102.6-31.2l-.6-.9-2.7-5-.6-1.2-30.1-64c-9.4 17.8-28 29.9-49.5 29.9l-32 0c-30.9 0-56-25.1-56-56L0 152c0-30.9 25.1-56 56-56l32 0c12.4 0 23.9 4.1 33.2 11 13.2-21.4 32-39.4 55-51.6l12.2-6.5 .7-.3 6.6-3.2 .7-.3 7.1-3c16.7-6.6 34.5-9.9 52.6-9.9L360 32zM255.9 80c-12 0-23.9 2.3-35.1 6.6l-4.7 2-5.3 2.6 0 0-12.2 6.5c-29.2 15.5-48.3 44.9-50.7 77.6l-.2 8 0 112.9 .1 4.1c.5 8.2 2.5 16.2 6 23.7l56.8 120.9 2.1 3.8c8.4 13.7 26 19.1 40.8 12.2l2.9-1.6c13-7.8 18.7-23.7 13.7-38l-1.2-3-30.2-64.2c-3.5-7.4-2.9-16.1 1.5-23.1s12-11.1 20.2-11.1l147.5 0 2.4-.1c11.3-1.1 20.3-10.1 21.4-21.4l.1-2.5c0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c4.4-3.9 7.4-9.3 8-15.3l.2-2.7c0-8.4-4.4-15.9-11.2-20.2-10.7-6.9-14.2-20.9-8-32 1.5-2.6 2.5-5.6 2.9-8.6l.2-3.2c0-10.6-6.9-19.6-16.6-22.8-11.7-3.8-18.7-15.9-16-28 .2-.9 .3-1.8 .4-2.6l.2-2.6c0-12.4-9.5-22.6-21.6-23.8L360 80 255.9 80zM56 144c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0z\"],\n \"id-badge\": [384, 512, [], \"f2c1\", \"M256 48l0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16-64 0c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16l-64 0zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM160 320l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L96 416c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0z\"],\n \"square-check\": [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zm230.7 89.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L211.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z\"],\n \"chess-bishop\": [320, 512, [9821], \"f43a\", \"M216 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 81.8 98.1c24.7 29.6 38.2 67 38.2 105.6 0 43.7-17.4 85.7-48.3 116.6l-8.6 8.6 46.5 58.2c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L47.4 512C21.2 512 0 490.8 0 464.6 0 453.9 3.7 443.4 10.4 435l46.5-58.2-8.6-8.6C17.4 337.4 0 295.4 0 251.7 0 213.1 13.5 175.8 38.2 146.1L120 48 104 48C90.7 48 80 37.3 80 24S90.7 0 104 0L216 0zM94.4 406.8l-45.7 57.2 222.7 0-45.7-57.1-5.5-6.9-120.3 0-5.5 6.8zM156.9 78.7L75.1 176.8c-15.3 18.4-24.6 41-26.7 64.7L48 251.7c0 31 12.3 60.7 34.2 82.7l17.7 17.7 120.2 0c6.2-6.2 12.1-12.1 17.8-17.7 21.9-21.9 34.2-51.6 34.2-82.6l-.4-10.2c-1.5-17-6.7-33.3-15.2-48L209 241c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l51.8-51.8-63.7-76.5-3.1-3.8-3.1 3.8z\"],\n \"envelope-open\": [512, 512, [62135], \"f2b6\", \"M512 416c0 35.3-28.5 64-63.9 64L64 480c-35.4 0-64-28.7-64-64L0 164c.1-15.5 7.8-30 20.5-38.8L206-2.7c30.1-20.7 69.8-20.7 99.9 0L491.5 125.2c12.8 8.8 20.4 23.3 20.5 38.8l0 252zM64 432l384.1 0c8.8 0 15.9-7.1 15.9-16l0-191.7-154.8 117.4c-31.4 23.9-74.9 23.9-106.4 0L48 224.3 48 416c0 8.9 7.2 16 16 16zM463.6 164.4L278.7 36.8c-13.7-9.4-31.7-9.4-45.4 0L48.4 164.4 231.8 303.5c14.3 10.8 34.1 10.8 48.4 0L463.6 164.4z\"],\n \"circle-xmark\": [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"],\n \"square-caret-up\": [448, 512, [\"caret-square-up\"], \"f151\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm224 64c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9S337.5 320 328 320l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"],\n \"file-image\": [384, 512, [128443], \"f1c5\", \"M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM259.4 432l-134.8 0c-15.8 0-28.6-12.8-28.6-28.6 0-6.4 2.1-12.5 6-17.6l67.6-86.9C175 292 183.3 288 192 288s17 4 22.4 10.9L282 385.9c3.9 5 6 11.2 6 17.6 0 15.8-12.8 28.6-28.6 28.6zM112 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"square-caret-right\": [448, 512, [\"caret-square-right\"], \"f152\", \"M400 96c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320zM384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4S160 369.5 160 360l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"],\n \"sun\": [576, 512, [9728], \"f185\", \"M200.6-7.9c-6.7-4.4-15.1-5.2-22.5-2.2S165.4-.5 163.9 7.3L143 110.6 39.7 131.4c-7.8 1.6-14.4 7-17.4 14.3s-2.2 15.8 2.2 22.5L82.7 256 24.5 343.8c-4.4 6.7-5.2 15.1-2.2 22.5s9.6 12.8 17.4 14.3L143 401.4 163.9 504.7c1.6 7.8 7 14.4 14.3 17.4s15.8 2.2 22.5-2.2l87.8-58.2 87.8 58.2c6.7 4.4 15.1 5.2 22.5 2.2s12.8-9.6 14.3-17.4l20.9-103.2 103.2-20.9c7.8-1.6 14.4-7 17.4-14.3s2.2-15.8-2.2-22.5l-58.2-87.8 58.2-87.8c4.4-6.7 5.2-15.1 2.2-22.5s-9.6-12.8-17.4-14.3L433.8 110.6 413 7.3C411.4-.5 406-7 398.6-10.1s-15.8-2.2-22.5 2.2L288.4 50.3 200.6-7.9zM186.9 135.7l17-83.9 71.3 47.3c8 5.3 18.5 5.3 26.5 0l71.3-47.3 17 83.9c1.9 9.5 9.3 16.8 18.8 18.8l83.9 17-47.3 71.3c-5.3 8-5.3 18.5 0 26.5l47.3 71.3-83.9 17c-9.5 1.9-16.9 9.3-18.8 18.8l-17 83.9-71.3-47.3c-8-5.3-18.5-5.3-26.5 0l-71.3 47.3-17-83.9c-1.9-9.5-9.3-16.9-18.8-18.8l-83.9-17 47.3-71.3c5.3-8 5.3-18.5 0-26.5l-47.3-71.3 83.9-17c9.5-1.9 16.8-9.3 18.8-18.8zM239.6 256a48.4 48.4 0 1 1 96.8 0 48.4 48.4 0 1 1 -96.8 0zm144.8 0a96.4 96.4 0 1 0 -192.8 0 96.4 96.4 0 1 0 192.8 0z\"],\n \"image\": [448, 512, [], \"f03e\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm128 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm136 72c8.5 0 16.4 4.5 20.7 11.8l80 136c4.4 7.4 4.4 16.6 .1 24.1S352.6 384 344 384l-240 0c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l17.2 24.6 46.5-79c4.3-7.3 12.2-11.8 20.7-11.8z\"],\n \"lightbulb\": [384, 512, [128161], \"f0eb\", \"M296.5 291.1C321 265.2 336 230.4 336 192 336 112.5 271.5 48 192 48S48 112.5 48 192c0 38.4 15 73.2 39.5 99.1 21.3 22.4 44.9 54 53.3 92.9l102.4 0c8.4-39 32-70.5 53.3-92.9zm34.8 33C307.7 349 288 379.4 288 413.7l0 18.3c0 44.2-35.8 80-80 80l-32 0c-44.2 0-80-35.8-80-80l0-18.3C96 379.4 76.3 349 52.7 324.1 20 289.7 0 243.2 0 192 0 86 86 0 192 0S384 86 384 192c0 51.2-20 97.7-52.7 132.1zM144 184c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6 39.4-88 88-88 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.1 0-40 17.9-40 40z\"],\n \"address-card\": [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M512 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l448 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm-32 40c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0zM376 144c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"],\n \"face-meh\": [512, 512, [128528, \"meh\"], \"f11a\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM176 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM184 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"map\": [512, 512, [128506, 62072], \"f279\", \"M512 48c0-8.3-4.3-16-11.3-20.4s-15.9-4.8-23.3-1.1L352.5 88.1 180 29.4c-13.7-4.7-28.7-3.8-41.9 2.3L13.8 90.3C5.4 94.2 0 102.7 0 112L0 464c0 8.2 4.2 15.9 11.1 20.3s15.6 4.9 23.1 1.4l127.3-59.9 170.7 56.9c13.7 4.6 28.5 3.7 41.6-2.5l124.4-58.5c8.4-4 13.8-12.4 13.8-21.7l0-352zM144 82.1l0 299-96 45.2 0-299 96-45.2zm48 303.3l0-301.1 128 43.5 0 300.3-128-42.7zM368 134l96-47.4 0 298.2-96 45.2 0-296z\"],\n \"hand-point-down\": [384, 512, [], \"f0a7\", \"M64 448l0-177.6c5.2 1 10.5 1.6 16 1.6l16 0 0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16zM80 224c-17.7 0-32-14.3-32-32l0-24c0-66.3 53.7-120 120-120l48 0c52.5 0 97.1 33.7 113.4 80.7-3.1-.5-6.2-.7-9.4-.7-20 0-37.9 9.2-49.7 23.6-9-4.9-19.4-7.6-30.3-7.6-15.1 0-29 5.3-40 14-11-8.8-24.9-14-40-14l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-80 0zM0 192l0 0c0 18 6 34.6 16 48l0 208c0 35.3 28.7 64 64 64s64-28.7 64-64l0-82c5.1 1.3 10.5 2 16 2 25.3 0 47.2-14.7 57.6-36 7 2.6 14.5 4 22.4 4 20 0 37.9-9.2 49.7-23.6 9 4.9 19.4 7.6 30.3 7.6 35.3 0 64-28.7 64-64l0-88C384 75.2 308.8 0 216 0L168 0C75.2 0 0 75.2 0 168l0 24zm336 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64zM160 272c5.5 0 10.9-.7 16-2l0 34c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32 16 0zm64-24l0-40c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-24z\"],\n \"face-meh-blank\": [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256a256 256 0 1 1 -512 0 256 256 0 1 1 512 0zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"face-grin-tongue\": [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M464 256c0-114.9-93.1-208-208-208S48 141.1 48 256c0 74.1 38.8 139.2 97.1 176-.7-5.2-1.1-10.6-1.1-16l0-53.5c-10.2-12.6-18.3-26.9-23.8-42.4-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6 11.8-3.6 23.7 6.1 19.6 17.8-5.5 15.6-13.6 29.9-23.8 42.5l0 53.5c0 5.4-.4 10.8-1.1 16 58.4-36.8 97.1-101.9 97.1-176zm48 0c0 116.3-77.6 214.6-183.9 245.7-19.5 16.4-44.6 26.3-72.1 26.3s-52.6-9.9-72.1-26.3C77.6 470.6 0 372.3 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm16 208l0-37.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 37.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n \"futbol\": [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M387 228.3c-4.4-2.8-7.6-7-9.2-11.9s-1.4-10.2 .5-15L411.6 118c-19.9-22.4-44.6-40.5-72.4-52.7l-69.1 57.6c-4 3.3-9 5.1-14.1 5.1s-10.2-1.8-14.1-5.1L172.8 65.3c-27.8 12.2-52.5 30.3-72.4 52.7l33.4 83.4c1.9 4.8 2.1 10.1 .5 15s-4.9 9.1-9.2 11.9L49 276.2c3 30.9 12.7 59.7 27.6 85.2l89.7-6c5.2-.3 10.3 1.1 14.5 4.2s7.2 7.4 8.4 12.5l22 87.2c14.4 3.2 29.4 4.8 44.8 4.8s30.3-1.7 44.8-4.8l22-87.2c1.3-5 4.2-9.4 8.4-12.5s9.3-4.5 14.5-4.2l89.7 6c15-25.4 24.7-54.3 27.6-85.1L387 228.3zM256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zm62 221c8.4 6.1 11.9 16.9 8.7 26.8l-18.3 56.3c-3.2 9.9-12.4 16.6-22.8 16.6l-59.2 0c-10.4 0-19.6-6.7-22.8-16.6l-18.3-56.3c-3.2-9.9 .3-20.7 8.7-26.8l47.9-34.8c8.4-6.1 19.8-6.1 28.2 0L318 221z\"],\n \"face-surprise\": [512, 512, [128558, \"surprise\"], \"f5c2\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-48 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"folder\": [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 400l384 0c8.8 0 16-7.2 16-16l0-240c0-8.8-7.2-16-16-16l-149.3 0c-17.3 0-34.2-5.6-48-16L212.3 83.2c-2.8-2.1-6.1-3.2-9.6-3.2L64 80c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16zm384 48L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64z\"],\n \"cloud\": [576, 512, [9729], \"f0c2\", \"M80 192c0-88.4 71.6-160 160-160 47.1 0 89.4 20.4 118.7 52.7 10.6-3.1 21.8-4.7 33.3-4.7 66.3 0 120 53.7 120 120 0 13.2-2.1 25.9-6.1 37.8 41.6 21.1 70.1 64.3 70.1 114.2 0 70.7-57.3 128-128 128l-304 0c-79.5 0-144-64.5-144-144 0-56.8 32.9-105.9 80.7-129.4-.4-4.8-.7-9.7-.7-14.6zM240 80c-61.9 0-112 50.1-112 112 0 8.4 .9 16.6 2.7 24.5 2.7 12.1-4.3 24.3-16.1 28.1-38.7 12.4-66.6 48.7-66.6 91.4 0 53 43 96 96 96l304 0c44.2 0 80-35.8 80-80 0-37.4-25.7-68.9-60.5-77.6-7.5-1.9-13.6-7.2-16.5-14.3s-2.1-15.2 2-21.7c7-11.1 11-24.2 11-38.3 0-39.8-32.2-72-72-72-11.1 0-21.5 2.5-30.8 6.9-10.5 5-23.1 1.7-29.8-7.8-20.3-28.6-53.7-47.1-91.3-47.1z\"],\n \"circle\": [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"face-grin-squint\": [512, 512, [128518, \"grin-squint\"], \"f585\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zm-249.6-143c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"],\n \"circle-user\": [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M406.5 399.6C387.4 352.9 341.5 320 288 320l-64 0c-53.5 0-99.4 32.9-118.5 79.6-35.6-37.3-57.5-87.9-57.5-143.6 0-114.9 93.1-208 208-208s208 93.1 208 208c0 55.7-21.9 106.2-57.5 143.6zm-40.1 32.7C334.4 452.4 296.6 464 256 464s-78.4-11.6-110.5-31.7c7.3-36.7 39.7-64.3 78.5-64.3l64 0c38.8 0 71.2 27.6 78.5 64.3zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-272a40 40 0 1 1 0-80 40 40 0 1 1 0 80zm-88-40a88 88 0 1 0 176 0 88 88 0 1 0 -176 0z\"],\n \"rectangle-list\": [512, 512, [\"list-alt\"], \"f022\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM160 320a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm104-56l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"hand\": [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M256.5 0c-25.3 0-47.2 14.7-57.6 36-7-2.6-14.5-4-22.4-4-35.3 0-64 28.7-64 64l0 165.5-2.7-2.7c-25-25-65.5-25-90.5 0s-25 65.5 0 90.5L107 437c48 48 113.1 75 181 75l16.5 0c1.5 0 3-.1 4.5-.4 91.7-6.2 165-79.4 171.1-171.1 .3-1.5 .4-3 .4-4.5l0-176c0-35.3-28.7-64-64-64-5.5 0-10.9 .7-16 2l0-2c0-35.3-28.7-64-64-64-7.9 0-15.4 1.4-22.4 4-10.4-21.3-32.3-36-57.6-36zm-16 96.1l0-.1 0-32c0-8.8 7.2-16 16-16s16 7.2 16 16l0 168c0 13.3 10.7 24 24 24s24-10.7 24-24l0-136c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-8.8 7.2-16 16-16s16 7.2 16 16l0 172.9c-.1 .6-.1 1.3-.2 1.9-3.4 69.7-59.3 125.6-129 129-.6 0-1.3 .1-1.9 .2L288 464C232.9 464 180 442.1 141 403.1L53.2 315.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l43.7 43.7c6.9 6.9 17.2 8.9 26.2 5.2s14.8-12.5 14.8-22.2l0-223.4c0-8.8 7.2-16 16-16 8.8 0 16 7.1 16 15.9l0 136.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-135.9z\"],\n \"thumbs-up\": [512, 512, [128077, 61575], \"f164\", \"M171.5 38.8C192.3 4 236.5-10 274 7.6l7.2 3.8C316 32.3 330 76.5 312.4 114l0 0-14.1 30 109.7 0 7.4 .4c36.3 3.7 64.6 34.4 64.6 71.6 0 13.2-3.6 25.4-9.8 36 6.1 10.6 9.7 22.8 9.8 36 0 18.3-6.9 34.8-18 47.5 1.3 5.3 2 10.8 2 16.5 0 25.1-12.9 47-32.2 59.9-1.9 35.5-29.4 64.2-64.4 67.7l-7.4 .4-104.1 0c-18 0-35.9-3.4-52.6-9.9l-7.1-3-.7-.3-6.6-3.2-.7-.3-12.2-6.5c-12.3-6.5-23.3-14.7-32.9-24.1-4.1 26.9-27.3 47.4-55.3 47.4l-32 0c-30.9 0-56-25.1-56-56L0 200c0-30.9 25.1-56 56-56l32 0c10.8 0 20.9 3.1 29.5 8.5l50.1-106.5 .6-1.2 2.7-5 .6-.9zM56 192c-4.4 0-8 3.6-8 8l0 224c0 4.4 3.6 8 8 8l32 0c4.4 0 8-3.6 8-8l0-224c0-4.4-3.6-8-8-8l-32 0zM253.6 51c-14.8-6.9-32.3-1.6-40.7 12l-2.2 4-56.8 120.9c-3.5 7.5-5.5 15.5-6 23.7l-.1 4.2 0 112.9 .2 7.9c2.4 32.7 21.4 62.1 50.7 77.7l11.5 6.1 6.3 3.1c12.4 5.6 25.8 8.5 39.4 8.5l104.1 0 2.4-.1c12.1-1.2 21.6-11.5 21.6-23.9l-.2-2.6c-.1-.9-.2-1.7-.4-2.6-2.7-12.1 4.3-24.2 16-28 9.7-3.1 16.6-12.2 16.6-22.8 0-4.3-1.1-8.2-3.1-11.8-6.3-11.1-2.8-25.2 8-32 6.8-4.3 11.2-11.8 11.2-20.2 0-7.1-3.1-13.5-8.2-18-5.2-4.6-8.2-11.1-8.2-18s3-13.4 8.2-18c5.1-4.5 8.2-10.9 8.2-18l-.1-2.4c-1.1-11.3-10.1-20.3-21.4-21.4l-2.4-.1-147.5 0c-8.2 0-15.8-4.2-20.2-11.1-4.4-6.9-5-15.7-1.5-23.1L269 93.6c7-15 1.4-32.7-12.5-41L253.6 51z\"],\n \"building\": [384, 512, [127970, 61687], \"f1ad\", \"M64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0-80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 80 80 0c8.8 0 16-7.2 16-16l0-384c0-8.8-7.2-16-16-16L64 48zM0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm96 48c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"],\n \"chess-rook\": [384, 512, [9820], \"f447\", \"M352 0c17.7 0 32 14.3 32 32l0 138.7c0 13.8-4.5 27.3-12.8 38.4l-35.2 46.9 0 112 40.8 68.1c4.7 7.8 7.2 16.7 7.2 25.8 0 27.7-22.4 50.1-50.1 50.1L50.1 512c-27.7 0-50.1-22.4-50.1-50.1 0-9.1 2.5-18 7.2-25.8L48 368 48 256 12.8 209.1C4.5 198 0 184.5 0 170.7L0 32C0 14.3 14.3 0 32 0L352 0zM48.3 460.8l-.3 1.1c0 1.2 1 2.1 2.1 2.1l283.8 0c1.2 0 2.1-1 2.1-2.1l-.3-1.1-36.5-60.8-214.4 0-36.5 60.8zM48 170.7c0 2.6 .6 5.1 1.8 7.4l1.4 2.2 0 0 35.2 46.9 9.6 12.8 0 112 192 0 0-112 9.6-12.8 35.2-46.9 0 0 1.4-2.2c1.2-2.3 1.8-4.8 1.8-7.4l0-122.7-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24-64 0 0 122.7z\"],\n \"circle-question\": [512, 512, [62108, \"question-circle\"], \"f059\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"file\": [384, 512, [128196, 128459, 61462], \"f15b\", \"M176 48L64 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-240-88 0c-39.8 0-72-32.2-72-72l0-88zM316.1 160L224 67.9 224 136c0 13.3 10.7 24 24 24l68.1 0zM0 64C0 28.7 28.7 0 64 0L197.5 0c17 0 33.3 6.7 45.3 18.7L365.3 141.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"],\n \"face-sad-cry\": [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M400 406.1L400 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 152.6c-28.7 15-61.4 23.4-96 23.4s-67.3-8.5-96-23.4L160 288c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 118.1C72.6 368.2 48 315 48 256 48 141.1 141.1 48 256 48s208 93.1 208 208c0 59-24.6 112.2-64 150.1zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM152 196l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm172 20c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"],\n \"calendar-minus\": [448, 512, [], \"f272\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm32 136l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"face-tired\": [512, 512, [128555, \"tired\"], \"f5c8\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm176.5 64.3C196.1 302.1 223.8 288 256 288s59.9 14.1 79.5 32.3c19 17.8 32.5 41.7 32.5 63.7 0 5.4-2.7 10.4-7.2 13.4s-10.2 3.4-15.2 1.3l-17.2-7.5c-22.8-10-47.5-15.1-72.4-15.1s-49.6 5.2-72.4 15.1l-17.2 7.5c-4.9 2.2-10.7 1.7-15.2-1.3s-7.2-8-7.2-13.4c0-22 13.5-45.9 32.5-63.7zM122.6 159.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"],\n \"hand-point-right\": [512, 512, [], \"f0a4\", \"M448 128l-177.6 0c1 5.2 1.6 10.5 1.6 16l0 16 176 0c8.8 0 16-7.2 16-16s-7.2-16-16-16zM224 144c0-17.7-14.3-32-32-32l-24 0c-66.3 0-120 53.7-120 120l0 48c0 52.5 33.7 97.1 80.7 113.4-.5-3.1-.7-6.2-.7-9.4 0-20 9.2-37.9 23.6-49.7-4.9-9-7.6-19.4-7.6-30.3 0-15.1 5.3-29 14-40-8.8-11-14-24.9-14-40l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80zM192 64l0 0c18 0 34.6 6 48 16l208 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-82 0c1.3 5.1 2 10.5 2 16 0 25.3-14.7 47.2-36 57.6 2.6 7 4 14.5 4 22.4 0 20-9.2 37.9-23.6 49.7 4.9 9 7.6 19.4 7.6 30.3 0 35.3-28.7 64-64 64l-88 0C75.2 448 0 372.8 0 280l0-48C0 139.2 75.2 64 168 64l24 0zm64 336c8.8 0 16-7.2 16-16s-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0zm16-176c0 5.5-.7 10.9-2 16l34 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0 16zm-24 64l-40 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l64 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-24 0z\"],\n \"circle-up\": [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm11.3-387.3c-6.2-6.2-16.4-6.2-22.6 0l-104 104c-4.6 4.6-5.9 11.5-3.5 17.4s8.3 9.9 14.8 9.9l72 0 0 104c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-104 72 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-104-104z\"],\n \"hand-scissors\": [512, 512, [], \"f257\", \"M.2 276.3c-1.2-35.3 26.4-65 61.7-66.2l3.3-.1-8.2-1.8C22.5 200.5 .7 166.3 8.3 131.8S50.2 75.5 84.7 83.2l173 38.3c2.3-2.9 4.6-5.7 7.1-8.5l18.4-20.3C299.9 74.5 323.5 64 348.3 64l10.2 0c54.1 0 104.1 28.7 131.3 75.4l1.5 2.6c13.6 23.2 20.7 49.7 20.7 76.6L512 344c0 66.3-53.7 120-120 120l-104 0c-35.3 0-64-28.7-64-64 0-2.8 .2-5.6 .5-8.3-19.4-11-32.5-31.8-32.5-55.7 0-.8 0-1.6 0-2.4L66.4 338c-35.3 1.2-65-26.4-66.2-61.7zm63.4-18.2c-8.8 .3-15.7 7.7-15.4 16.6s7.7 15.7 16.5 15.4l161.5-5.6c9.8-.3 18.7 5.3 22.7 14.2s2.2 19.3-4.5 26.4c-2.8 2.9-4.4 6.7-4.4 11 0 8.8 7.2 16 16 16 9.1 0 17.4 5.1 21.5 13.3s3.2 17.9-2.3 25.1c-2 2.7-3.2 6-3.2 9.6 0 8.8 7.2 16 16 16l104 0c39.8 0 72-32.2 72-72l0-125.4c0-18.4-4.9-36.5-14.2-52.4l-1.5-2.6c-18.6-32-52.8-51.6-89.8-51.6l-10.2 0c-11.3 0-22 4.8-29.6 13.1l0 0-18.4 20.3c-.6 .6-1.1 1.3-1.7 1.9l57 13.2c8.6 2 14 10.6 12 19.2s-10.6 14-19.2 12L262.8 171.8 74.3 130c-8.6-1.9-17.2 3.5-19.1 12.2s3.5 17.2 12.2 19.1l187.5 41.6c10.2 2.3 17.8 10.9 18.7 21.4l.1 1c.6 6.6-1.5 13.1-5.8 18.1s-10.6 7.9-17.2 8.2L63.6 258.1z\"],\n \"gem\": [512, 512, [128142], \"f3a5\", \"M168.5 72l87.5 93 87.5-93-175 0zM383.9 99.1l-72.3 76.9 129 0-56.6-76.9zm50 124.9L78.1 224 256 420.3 433.9 224zM71.5 176l129 0-72.3-76.9-56.6 76.9zm434.3 40.1l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4z\"],\n \"rectangle-xmark\": [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm334.1 49.9c9.4 9.4 9.4 24.6 0 33.9l-44.1 44.1 44.1 44.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-44.1-44.1-44.1 44.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l44.1-44.1-44.1-44.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l44.1 44.1 44.1-44.1c9.4-9.4 24.6-9.4 33.9 0z\"],\n \"trash-can\": [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M166.2-16c-13.3 0-25.3 8.3-30 20.8L120 48 24 48C10.7 48 0 58.7 0 72S10.7 96 24 96l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0-16.2-43.2C307.1-7.7 295.2-16 281.8-16L166.2-16zM32 144l0 304c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-304-48 0 0 304c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16l0-304-48 0zm160 72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176zm112 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-176z\"],\n \"life-ring\": [512, 512, [], \"f1cd\", \"M385.1 419.1C349.7 447.2 304.8 464 256 464s-93.7-16.8-129.1-44.9l80.4-80.4c14.3 8.4 31 13.3 48.8 13.3s34.5-4.8 48.8-13.3l80.4 80.4zm68.1 .2C489.9 374.9 512 318.1 512 256S489.9 137.1 453.2 92.7L465 81c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L419.3 58.8C374.9 22.1 318.1 0 256 0S137.1 22.1 92.7 58.8L81 47c-9.4-9.4-24.6-9.4-33.9 0S37.7 71.6 47 81L58.8 92.7C22.1 137.1 0 193.9 0 256S22.1 374.9 58.8 419.3L47 431c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l11.8-11.8C137.1 489.9 193.9 512 256 512s118.9-22.1 163.3-58.8L431 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.8-11.8zm-34.1-34.1l-80.4-80.4c8.4-14.3 13.3-31 13.3-48.8s-4.8-34.5-13.3-48.8l80.4-80.4C447.2 162.3 464 207.2 464 256s-16.8 93.7-44.9 129.1zM385.1 92.9l-80.4 80.4c-14.3-8.4-31-13.3-48.8-13.3s-34.5 4.8-48.8 13.3L126.9 92.9C162.3 64.8 207.2 48 256 48s93.7 16.8 129.1 44.9zM173.3 304.8L92.9 385.1C64.8 349.7 48 304.8 48 256s16.8-93.7 44.9-129.1l80.4 80.4c-8.4 14.3-13.3 31-13.3 48.8s4.8 34.5 13.3 48.8zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\n \"copyright\": [512, 512, [169], \"f1f9\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM205.1 306.9c-28.1-28.1-28.1-73.7 0-101.8s73.7-28.1 101.8 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-46.9-46.9-122.8-46.9-169.7 0s-46.9 122.8 0 169.7 122.8 46.9 169.7 0c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-28.1 28.1-73.7 28.1-101.8 0z\"],\n \"circle-left\": [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M48 256a208 208 0 1 1 416 0 208 208 0 1 1 -416 0zm464 0a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM124.7 244.7c-6.2 6.2-6.2 16.4 0 22.6l104 104c4.6 4.6 11.5 5.9 17.4 3.5s9.9-8.3 9.9-14.8l0-72 104 0c13.3 0 24-10.7 24-24l0-16c0-13.3-10.7-24-24-24l-104 0 0-72c0-6.5-3.9-12.3-9.9-14.8s-12.9-1.1-17.4 3.5l-104 104z\"],\n \"calendar\": [448, 512, [128197, 128198], \"f133\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 48 352 0 0-48c0-8.8-7.2-16-16-16l-264 0zM48 224l0 192c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-192-352 0z\"],\n \"face-frown-open\": [512, 512, [128550, \"frown-open\"], \"f57a\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4 16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"chart-bar\": [512, 512, [\"bar-chart\"], \"f080\", \"M48 56c0-13.3-10.7-24-24-24S0 42.7 0 56L0 400c0 44.2 35.8 80 80 80l408 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L80 432c-17.7 0-32-14.3-32-32L48 56zm104 72l208 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L152 80c-13.3 0-24 10.7-24 24s10.7 24 24 24zm0 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 112c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0z\"],\n \"house\": [512, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M240 6.1c9.1-8.2 22.9-8.2 32 0l232 208c9.9 8.8 10.7 24 1.8 33.9s-24 10.7-33.9 1.8l-8-7.2 0 205.3c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-205.3-8 7.2c-9.9 8.8-25 8-33.9-1.8s-8-25 1.8-33.9L240 6.1zm16 50.1L96 199.7 96 448c0 8.8 7.2 16 16 16l48 0 0-104c0-39.8 32.2-72 72-72l48 0c39.8 0 72 32.2 72 72l0 104 48 0c8.8 0 16-7.2 16-16l0-248.3-160-143.4zM208 464l96 0 0-104c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24l0 104z\"],\n \"face-frown\": [512, 512, [9785, \"frown\"], \"f119\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM334.7 384.6C319.7 369 293.6 352 256 352s-63.7 17-78.7 32.6c-9.2 9.6-24.4 9.9-33.9 .7s-9.9-24.4-.7-33.9c22.1-23 60-47.4 113.3-47.4s91.2 24.4 113.3 47.4c9.2 9.6 8.9 24.8-.7 33.9s-24.8 8.9-33.9-.7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"user\": [448, 512, [128100, 62144, 62470, \"user-alt\", \"user-large\"], \"f007\", \"M144 128a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zm208 0a128 128 0 1 0 -256 0 128 128 0 1 0 256 0zM48 480c0-70.7 57.3-128 128-128l96 0c70.7 0 128 57.3 128 128l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8c0-97.2-78.8-176-176-176l-96 0C78.8 304 0 382.8 0 480l0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8z\"],\n \"snowflake\": [512, 512, [10052, 10054], \"f2dc\", \"M280.1-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 78.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l57 57 0 76.5-66.2-38.2-20.9-77.8c-3.4-12.8-16.6-20.4-29.4-17S95.2 98 98.7 110.8l8.4 31.5-67.6-39C28 96.6 13.3 100.5 6.7 112S4 138.2 15.5 144.8l67.6 39-31.5 8.4c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l77.8-20.9 66.2 38.2-66.2 38.2-77.8-20.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l31.5 8.4-67.6 39C4 373.8 .1 388.5 6.7 400s21.3 15.4 32.8 8.8l67.6-39-8.4 31.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l20.9-77.8 66.2-38.2 0 76.5-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 78.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-78.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-76.5 66.2 38.2 20.9 77.8c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-8.4-31.5 67.6 39c11.5 6.6 26.2 2.7 32.8-8.8s2.7-26.2-8.8-32.8l-67.6-39 31.5-8.4c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-77.8 20.9-66.2-38.2 66.2-38.2 77.8 20.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-31.5-8.4 67.6-39c11.5-6.6 15.4-21.3 8.8-32.8s-21.3-15.4-32.8-8.8l-67.6 39 8.4-31.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-20.9 77.8-66.2 38.2 0-76.5 57-57c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-78.1z\"],\n \"bookmark\": [384, 512, [128278, 61591], \"f02e\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 417.1c0 25.6-28.5 40.8-49.8 26.6L192 412.8 49.8 507.7C28.5 521.9 0 506.6 0 481.1L0 64zM64 48c-8.8 0-16 7.2-16 16l0 387.2 117.4-78.2c16.1-10.7 37.1-10.7 53.2 0L336 451.2 336 64c0-8.8-7.2-16-16-16L64 48z\"],\n \"square-caret-left\": [448, 512, [\"caret-square-left\"], \"f191\", \"M48 416c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80c-8.8 0-16 7.2-16 16l0 320zm16 64c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480zm64-224c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4S288 142.5 288 152l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"],\n \"handshake\": [640, 512, [129309, 62662, \"handshake-alt\", \"handshake-simple\"], \"f2b5\", \"M598.1 75.4c10.7-7.8 13.1-22.8 5.3-33.5s-22.8-13.1-33.5-5.3l-74.5 54.2-9.9-6.6C465.8 71 442.6 64 418.9 64l-59.2 0-.4 0-143.6 0c-26.7 0-52.5 8.9-73.4 25.1L70.1 36.6c-10.7-7.8-25.7-5.4-33.5 5.3s-5.4 25.7 5.3 33.5l88 64c9.6 6.9 22.7 5.9 31.1-2.4l3.9-3.9c13.5-13.5 31.8-21.1 50.9-21.1l46.3 0-91.7 91.7c-15.6 15.6-15.6 40.9 0 56.6l.8 .8C218 308 294 308 340.9 261.1l27.1-27.1 97.8 97.8c15.6 15.6 15.6 40.9 0 56.6l-9.8 9.8-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l28 28c-17.5 10.4-37.2 16.7-57.6 18.5L313 399c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l15 15-3.8 0c-36.1 0-70.7-14.3-96.2-39.8L65 279c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L160.2 442.1c34.5 34.5 81.3 53.9 130.1 53.9l51.8 0 1 1 1-1 5.7 0c48.8 0 95.6-19.4 130.1-53.9l19.9-19.9c1.2-1.2 2.3-2.3 3.4-3.5 .7-.5 1.3-1.1 1.9-1.7L609 313c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-53.8 53.8c-4.2-12.8-11.3-24.9-21.5-35.1L385 183c-9.4-9.4-24.6-9.4-33.9 0l-44.1 44.1c-26.5 26.5-68.5 28-96.7 4.6l98.7-98.7c13.4-13.4 31.6-21 50.6-21.1l8.5 0 .2 0 50.8 0c14.2 0 28.1 4.2 39.9 12.1L482.7 140c8.4 5.6 19.3 5.3 27.4-.6l88-64z\"],\n \"face-smile-wink\": [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"],\n \"face-grin-squint-tears\": [512, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M403.1 403.1c67.2-67.2 78.8-168.9 34.9-248l36.7-5.2c4.5-.6 8.8-1.6 13.1-2.8 44.6 94.9 27.7 211.5-50.7 290s-195.1 95.3-290 50.7c1.2-4.2 2.1-8.6 2.8-13.1l5.2-36.7c79.1 43.9 180.8 32.3 248-34.9zM75 75c78.4-78.4 195.1-95.3 290-50.7-1.2 4.2-2.1 8.6-2.8 13.1l-5.2 36.7c-79.1-43.9-180.8-32.3-248 34.9s-78.8 168.9-34.9 248l-36.7 5.2c-4.5 .6-8.8 1.6-13.1 2.8-44.6-94.9-27.7-211.5 50.7-290zM370.9 206.5c5.8-10.9 21.1-12.4 26.4-1.3 25.6 53.5 16.2 119.6-28.2 163.9-44.3 44.3-110.3 53.7-163.8 28.2-11.1-5.3-9.6-20.6 1.3-26.4 32-17.1 64.2-40.8 93.8-70.4 29.7-29.7 53.4-61.9 70.5-94zM93.3 281.9c-1.7-8 2.9-15.9 10.6-18.4l84.6-28c5.7-1.9 12.1-.4 16.3 3.9s5.8 10.6 3.9 16.3l-28 84.6c-2.6 7.7-10.5 12.3-18.4 10.6s-13.4-9-12.7-17.1l3.9-43.1-43.1 3.9c-8.1 .7-15.5-4.7-17.1-12.7zM294.6 110.4l-3.9 43.1 43.1-3.9c8.1-.7 15.5 4.7 17.1 12.7s-2.9 15.9-10.6 18.4l-84.6 28c-5.7 1.9-12.1 .4-16.3-3.9s-5.8-10.6-3.9-16.3l28-84.6c2.6-7.7 10.5-12.3 18.4-10.6s13.4 9 12.7 17.1zM512 51.4c0 25.6-18.8 47.3-44.1 50.9L421.1 109c-10.6 1.5-19.6-7.5-18.1-18.1l6.7-46.7C413.3 18.8 435 0 460.6 0 489 0 512 23 512 51.4zM44.1 409.7L90.9 403c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C98.7 493.2 77 512 51.4 512 23 512 0 489 0 460.6 0 435 18.8 413.3 44.1 409.7z\"],\n \"file-audio\": [384, 512, [], \"f1c7\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM221.9 267.6c-4.7 10-.3 21.9 9.7 26.6 19.2 8.9 32.4 28.3 32.4 50.8s-13.2 41.9-32.4 50.8c-10 4.7-14.4 16.6-9.7 26.6s16.6 14.4 26.6 9.7C281.2 416.8 304 383.6 304 345s-22.8-71.9-55.6-87.1c-10-4.7-21.9-.3-26.6 9.7zM104 305c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24l16 0 27.2 34c3 3.8 7.6 6 12.5 6l.3 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16l-.3 0c-4.9 0-9.5 2.2-12.5 6l-27.2 34-16 0zM223.3 373c9.9-5.4 16.7-16 16.7-28.1s-6.7-22.7-16.7-28.1c-7.8-4.2-15.3 3.3-15.3 12.1l0 32c0 8.8 7.6 16.3 15.3 12.1z\"],\n \"calendar-xmark\": [448, 512, [\"calendar-times\"], \"f273\", \"M120 0c13.3 0 24 10.7 24 24l0 40 160 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-40c0-13.3 10.7-24 24-24zm0 112l-56 0c-8.8 0-16 7.2-16 16l0 288c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-288c0-8.8-7.2-16-16-16l-264 0zm171.9 92.1c9.4 9.4 9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0z\"],\n \"circle-down\": [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 464a208 208 0 1 1 0-416 208 208 0 1 1 0 416zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM244.7 387.3c6.2 6.2 16.4 6.2 22.6 0l104-104c4.6-4.6 5.9-11.5 3.5-17.4S366.5 256 360 256l-72 0 0-104c0-13.3-10.7-24-24-24l-16 0c-13.3 0-24 10.7-24 24l0 104-72 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l104 104z\"],\n \"file-lines\": [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm56 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"comments\": [576, 512, [128490, 61670], \"f086\", \"M76.2 258.7c6.1-15.2 4-32.6-5.6-45.9-14.5-20.1-22.6-43.7-22.6-68.8 0-66.8 60.5-128 144-128s144 61.2 144 128-60.5 128-144 128c-15.9 0-31.1-2.3-45.3-6.5-10.3-3.1-21.4-2.5-31.4 1.5l-50.4 20.2 11.4-28.5zM0 144c0 35.8 11.6 69.1 31.7 96.8L1.9 315.2c-1.3 3.2-1.9 6.6-1.9 10 0 14.8 12 26.8 26.8 26.8 3.4 0 6.8-.7 10-1.9l96.3-38.5c18.6 5.5 38.4 8.4 58.9 8.4 106 0 192-78.8 192-176S298-32 192-32 0 46.8 0 144zM384 512c20.6 0 40.3-3 58.9-8.4l96.3 38.5c3.2 1.3 6.6 1.9 10 1.9 14.8 0 26.8-12 26.8-26.8 0-3.4-.7-6.8-1.9-10l-29.7-74.4c20-27.8 31.7-61.1 31.7-96.8 0-82.4-61.7-151.5-145-170.7-1.6 16.3-5.1 31.9-10.1 46.9 63.9 14.8 107.2 67.3 107.2 123.9 0 25.1-8.1 48.7-22.6 68.8-9.6 13.3-11.7 30.6-5.6 45.9l11.4 28.5-50.4-20.2c-10-4-21.1-4.5-31.4-1.5-14.2 4.2-29.4 6.5-45.3 6.5-72.2 0-127.1-45.7-140.7-101.2-15.6 3.2-31.7 5-48.1 5.2 16.4 81.9 94.7 144 188.8 144z\"],\n \"circle-check\": [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm70.7 121.9c7.8-10.7 22.8-13.1 33.5-5.3 10.7 7.8 13.1 22.8 5.3 33.5L243.4 366.1c-4.1 5.7-10.5 9.3-17.5 9.8-7 .5-13.9-2-18.8-6.9l-55.9-55.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l36 36 105.6-145.2z\"],\n \"moon\": [512, 512, [127769, 9214], \"f186\", \"M239.3 48.7c-107.1 8.5-191.3 98.1-191.3 207.3 0 114.9 93.1 208 208 208 33.3 0 64.7-7.8 92.6-21.7-103.4-23.4-180.6-115.8-180.6-226.3 0-65.8 27.4-125.1 71.3-167.3zM0 256c0-141.4 114.6-256 256-256 19.4 0 38.4 2.2 56.7 6.3 9.9 2.2 17.3 10.5 18.5 20.5s-4 19.8-13.1 24.4c-60.6 30.2-102.1 92.7-102.1 164.8 0 101.6 82.4 184 184 184 5 0 9.9-.2 14.8-.6 10.1-.8 19.6 4.8 23.8 14.1s2 20.1-5.3 27.1C387.3 484.8 324.8 512 256 512 114.6 512 0 397.4 0 256z\"],\n \"closed-captioning\": [512, 512, [], \"f20a\", \"M448 112c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l384 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm88 144l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z\"],\n \"images\": [576, 512, [], \"f302\", \"M480 80c8.8 0 16 7.2 16 16l0 256c0 8.8-7.2 16-16 16l-320 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l320 0zM160 32c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L160 32zm80 112a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm140.7 3.8c-4.3-7.3-12.2-11.8-20.7-11.8s-16.4 4.5-20.7 11.8l-46.5 79-17.2-24.6c-4.5-6.4-11.8-10.2-19.7-10.2s-15.2 3.8-19.7 10.2l-56 80c-5.1 7.3-5.8 16.9-1.6 24.8S191.1 320 200 320l240 0c8.6 0 16.6-4.6 20.8-12.1s4.2-16.7-.1-24.1l-80-136zM48 152c0-13.3-10.7-24-24-24S0 138.7 0 152L0 448c0 35.3 28.7 64 64 64l360 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 464c-8.8 0-16-7.2-16-16l0-296z\"],\n \"circle-right\": [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3c6.2-6.2 6.2-16.4 0-22.6l-104-104c-4.6-4.6-11.5-5.9-17.4-3.5S256 145.5 256 152l0 72-104 0c-13.3 0-24 10.7-24 24l0 16c0 13.3 10.7 24 24 24l104 0 0 72c0 6.5 3.9 12.3 9.9 14.8s12.9 1.1 17.4-3.5l104-104z\"],\n \"id-card\": [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M48 416l0-256 480 0 0 256c0 8.8-7.2 16-16 16l-192 0c0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80l-32 0c-8.8 0-16-7.2-16-16zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM208 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM376 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0z\"],\n \"circle-play\": [512, 512, [61469, \"play-circle\"], \"f144\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM212.5 147.5c-7.4-4.5-16.7-4.7-24.3-.5S176 159.3 176 168l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88zM298 256l-74 45.2 0-90.4 74 45.2z\"],\n \"face-laugh-beam\": [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"address-book\": [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M384 48c8.8 0 16 7.2 16 16l0 384c0 8.8-7.2 16-16 16L96 464c-8.8 0-16-7.2-16-16L80 64c0-8.8 7.2-16 16-16l288 0zM96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM240 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm-32 40c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 192c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm16 144c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64z\"],\n \"hourglass\": [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 19c0 40.3 16 79 44.5 107.5l81.5 81.5-81.5 81.5C48 366 32 404.7 32 445l0 19-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-19c0-40.3-16-79-44.5-107.5l-81.5-81.5 81.5-81.5C336 146 352 107.3 352 67l0-19 8 0c13.3 0 24-10.7 24-24S373.3 0 360 0L24 0zM192 289.9l81.5 81.5C293 391 304 417.4 304 445l0 19-224 0 0-19c0-27.6 11-54 30.5-73.5L192 289.9zm0-67.9l-81.5-81.5C91 121 80 94.6 80 67l0-19 224 0 0 19c0 27.6-11 54-30.5 73.5L192 222.1z\"],\n \"headphones\": [448, 512, [127911, 62863, \"headphones-alt\", \"headphones-simple\"], \"f025\", \"M48 224c0-97.2 78.8-176 176-176s176 78.8 176 176l0 44.8c-14.1-8.2-30.5-12.8-48-12.8l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-17.5 0-33.9 4.7-48 12.8L48 224zm0 128c0-26.5 21.5-48 48-48l16 0 0 128-16 0c-26.5 0-48-21.5-48-48l0-32zm352 0l0 32c0 26.5-21.5 48-48 48l-16 0 0-128 16 0c26.5 0 48 21.5 48 48z\"],\n \"file-powerpoint\": [384, 512, [], \"f1c4\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm88 256c-13.3 0-24 10.7-24 24l0 128c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 28 0c37.6 0 68-30.4 68-68s-30.4-68-68-68l-52 0zm52 88l-28 0 0-40 28 0c11 0 20 9 20 20s-9 20-20 20z\"],\n \"window-maximize\": [512, 512, [128470], \"f2d0\", \"M48 224l0 160c0 8.8 7.2 16 16 16l384 0c8.8 0 16-7.2 16-16l0-160-416 0zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128z\"],\n \"comment-dots\": [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M0 240c0 54.4 19.3 104.6 51.9 144.9L3.1 474.3c-2 3.7-3.1 7.9-3.1 12.2 0 14.1 11.4 25.5 25.5 25.5 4 0 7.8-.6 11.5-2.1L153.4 460c31.4 12.9 66.1 20 102.6 20 141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240zM94 407.9c9.3-17.1 7.4-38.1-4.8-53.2-26.1-32.3-41.2-71.9-41.2-114.7 0-103.2 90.2-192 208-192s208 88.8 208 192-90.2 192-208 192c-30.2 0-58.7-5.9-84.3-16.4-11.9-4.9-25.3-4.8-37.1 .3L76 440.9 94 407.9zM144 272a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm144-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm80 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"face-grin-tongue-wink\": [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M366.9 432c.8-5.2 1.1-10.6 1.1-16l0-53.5c10.2-12.6 18.3-26.9 23.8-42.5 4.1-11.6-7.8-21.4-19.6-17.8-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 5.5 15.5 13.6 29.9 23.8 42.4l0 53.5c0 5.4 .4 10.8 1.1 16-58.4-36.8-97.1-101.9-97.1-176 0-114.9 93.1-208 208-208s208 93.1 208 208c0 74.1-38.8 139.2-97.1 176zm-38.8 69.7C434.4 470.6 512 372.3 512 256 512 114.6 397.4 0 256 0S0 114.6 0 256C0 372.3 77.6 470.6 183.9 501.7 203.4 518.1 228.5 528 256 528s52.6-9.9 72.1-26.3zM320 378.6l0 37.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-37.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9 2.8 12.6 20.8 12.6 23.6 0 2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM132 232c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zm228.4-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM288 208a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"],\n \"hourglass-half\": [384, 512, [\"hourglass-2\"], \"f252\", \"M0 24C0 10.7 10.7 0 24 0L360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 19c0 40.3-16 79-44.5 107.5l-81.5 81.5 81.5 81.5C336 366 352 404.7 352 445l0 19 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-19c0-40.3 16-79 44.5-107.5l81.5-81.5-81.5-81.5C48 146 32 107.3 32 67l0-19-8 0C10.7 48 0 37.3 0 24zM110.5 371.5c-3.9 3.9-7.5 8.1-10.7 12.5l184.4 0c-3.2-4.4-6.8-8.6-10.7-12.5l-81.5-81.5-81.5 81.5zM80.8 432c-.5 4.3-.8 8.6-.8 13l0 19 224 0 0-19c0-4.4-.3-8.7-.8-13L80.8 432zM254.1 160l-124.1 0 62.1 62.1 62.1-62.1zm39.7-48C300.4 98.1 304 82.7 304 67l0-19-224 0 0 19c0 15.7 3.6 31.1 10.2 45l203.5 0z\"],\n \"credit-card\": [512, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M448 112c8.8 0 16 7.2 16 16l0 32-416 0 0-32c0-8.8 7.2-16 16-16l384 0zm16 112l0 160c0 8.8-7.2 16-16 16L64 400c-8.8 0-16-7.2-16-16l0-160 416 0zM64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM80 344c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm144 0c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24z\"],\n \"hand-spock\": [512, 512, [128406], \"f259\", \"M138.3 80.8c-9.2-33.8 10.5-68.8 44.3-78.4 34-9.6 69.4 10.2 79 44.2L291.9 153.7 305.1 84c6.6-34.7 40.1-57.5 74.8-50.9 31.4 6 53 33.9 52 64.9 10-2.6 20.8-2.8 31.5-.1 34.3 8.6 55.1 43.3 46.6 77.6L454.7 397.2C437.8 464.7 377.2 512 307.6 512l-33.7 0c-56.9 0-112.2-19-157.2-53.9l-92-71.6c-27.9-21.7-32.9-61.9-11.2-89.8s61.9-32.9 89.8-11.2l17 13.2-51.8-131.2c-13-32.9 3.2-70.1 36-83 11.1-4.4 22.7-5.4 33.7-3.7zm77.1-21.2c-2.4-8.5-11.2-13.4-19.7-11s-13.4 11.2-11 19.7l54.8 182.4c3.5 12.3-3.3 25.2-15.4 29.3s-25.3-2-30-13.9L142.9 138.1c-3.2-8.2-12.5-12.3-20.8-9s-12.3 12.5-9 20.8l73.3 185.6c12 30.3-23.7 57-49.4 37L73.8 323.4c-7-5.4-17-4.2-22.5 2.8s-4.2 17 2.8 22.5l92 71.6c36.5 28.4 81.4 43.8 127.7 43.8l33.7 0c47.5 0 89-32.4 100.5-78.5l55.4-221.6c2.1-8.6-3.1-17.3-11.6-19.4s-17.3 3.1-19.4 11.6l-26 104c-2.9 11.7-13.4 19.9-25.5 19.9-16.5 0-28.9-15-25.8-31.2L383.7 99c1.7-8.7-4-17.1-12.7-18.7S354 84.3 352.3 93L320.5 260c-2.2 11.6-12.4 20-24.2 20-11 0-20.7-7.3-23.7-17.9L215.4 59.6z\"],\n \"bell-slash\": [576, 512, [128277, 61943], \"f1f6\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.8-87.8c17.5-3.3 30.8-18.7 30.8-37.1 0-6.7-1.8-13.3-5.1-19L485 321.7c-19-32.6-29-69.6-29-107.3l0-14.5c0-84.6-62.6-154.7-144-166.3l0-9.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 9.7c-42.2 6-79.4 27.8-105.4 59.1L41-24.9zM192.8 126.9C214.7 98.4 249.2 80 288 80 354.3 80 408 133.7 408 200l0 14.5c0 46.2 12.3 91.5 35.5 131.4l12.9 22.1-22.6 0-241.1-241.1zM132.5 345.9c19.5-33.4 31.3-70.7 34.6-109l-46.7-46.7c-.2 3.3-.3 6.6-.3 9.9l0 14.5c0 37.7-10 74.7-29 107.3L69.1 359.2c-3.4 5.8-5.1 12.3-5.1 19 0 20.9 16.9 37.8 37.8 37.8l244.4 0-48-48-178.6 0 12.9-22.1zM220.1 464c9.9 28 36.6 48 67.9 48s58-20 67.9-48l-135.8 0z\"],\n \"star\": [576, 512, [11088, 61446], \"f005\", \"M288.1-32c9 0 17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2s-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1zm0 76.8L230.3 158c-3.5 6.8-10 11.6-17.6 12.8l-125.5 20 89.8 89.9c5.4 5.4 7.9 13.1 6.7 20.7l-19.8 125.5 113.3-57.6c6.8-3.5 14.9-3.5 21.8 0l113.3 57.6-19.8-125.5c-1.2-7.6 1.3-15.3 6.7-20.7l89.8-89.9-125.5-20c-7.6-1.2-14.1-6-17.6-12.8L288.1 44.8z\"],\n \"flag\": [448, 512, [127988, 61725], \"f024\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-100 80.3-20.1c41.1-10.3 84.6-5.5 122.5 13.4 44.2 22.1 95.5 24.8 141.7 7.4l34.7-13c12.5-4.7 20.8-16.6 20.8-30l0-279.7c0-23-24.2-38-44.8-27.7l-9.6 4.8c-46.3 23.2-100.8 23.2-147.1 0-35.1-17.6-75.4-22-113.5-12.5L48 52 48 24zm0 77.5l96.6-24.2c27-6.7 55.5-3.6 80.4 8.8 54.9 27.4 118.7 29.7 175 6.8l0 241.8-24.4 9.1c-33.7 12.6-71.2 10.7-103.4-5.4-48.2-24.1-103.3-30.1-155.6-17.1l-68.6 17.2 0-237z\"],\n \"lemon\": [448, 512, [127819], \"f094\", \"M368 80c-3.2 0-6.2 .4-8.9 1.3-19.1 5.5-46.1 10.7-74.3 3.3-57.4-14.9-124.6 7.4-174.7 57.5S37.7 259.4 52.6 316.8c7.3 28.2 2.2 55.2-3.3 74.3-.8 2.8-1.3 5.8-1.3 8.9 0 17.7 14.3 32 32 32 3.2 0 6.2-.4 8.9-1.3 19.1-5.5 46.1-10.7 74.3-3.3 57.4 14.9 124.6-7.4 174.7-57.5s72.4-117.3 57.5-174.7c-7.3-28.2-2.2-55.2 3.3-74.3 .8-2.8 1.3-5.8 1.3-8.9 0-17.7-14.3-32-32-32zm0-48c44.2 0 80 35.8 80 80 0 7.7-1.1 15.2-3.1 22.3-4.6 15.8-7.1 32.9-3 48.9 20.1 77.6-10.9 161.5-70 220.7s-143.1 90.2-220.7 70c-16-4.1-33-1.6-48.9 3-7.1 2-14.6 3.1-22.3 3.1-44.2 0-80-35.8-80-80 0-7.7 1.1-15.2 3.1-22.3 4.6-15.8 7.1-32.9 3-48.9-20.1-77.6 10.9-161.5 70-220.7S219.3 18 296.8 38.1c16 4.1 33 1.6 48.9-3 7.1-2 14.6-3.1 22.3-3.1zM246.7 167c-52 15.2-96.5 59.7-111.7 111.7-3.7 12.7-17.1 20-29.8 16.3S85.2 278 89 265.3c19.8-67.7 76.6-124.5 144.3-144.3 12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"],\n \"window-restore\": [576, 512, [], \"f2d2\", \"M512 80L224 80c-8.8 0-16 7.2-16 16l0 16-48 0 0-16c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-48 48 0c8.8 0 16-7.2 16-16l0-192c0-8.8-7.2-16-16-16zM368 288l-320 0 0 128c0 8.8 7.2 16 16 16l288 0c8.8 0 16-7.2 16-16l0-128zM64 160l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z\"],\n \"face-grin-hearts\": [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M464 256c0 114.9-93.1 208-208 208S48 370.9 48 256c0-3.5 .1-7.1 .3-10.6-14-13.9-29.7-33.1-39.3-56.7-5.8 21.4-8.9 44-8.9 67.3 0 141.4 114.6 256 256 256S512 397.4 512 256c0-23.3-3.1-45.9-8.9-67.3-9.6 23.7-25.4 42.8-39.3 56.7 .2 3.5 .3 7 .3 10.6zM368 58.9c11.7-6 24.5-9.6 37.7-10.6-42.1-30.4-93.8-48.3-149.7-48.3S148.4 17.9 106.3 48.3c13.2 1 26 4.6 37.7 10.6 13.8-7.1 29.3-10.9 45.1-10.9l2.9 0c8.9 0 17.6 1.2 25.8 3.5 12.4-2.3 25.2-3.5 38.2-3.5s25.8 1.2 38.2 3.5c8.2-2.3 16.9-3.5 25.8-3.5l2.9 0c15.8 0 31.3 3.8 45.1 10.9zm4.2 243.4c-34.8 10.6-74.3 16.6-116.3 16.6-41.9 0-81.4-6-116.1-16.5-11.8-3.6-23.7 6.1-19.6 17.8 19.8 55.9 73.1 95.9 135.8 95.9 62.7 0 116-40.1 135.8-96 4.1-11.6-7.8-21.4-19.6-17.8zM322.9 96L320 96c-26.5 0-48 21.5-48 48 0 53.4 66.9 95.7 89 108.2 4.4 2.5 9.6 2.5 14 0 22.1-12.5 89-54.8 89-108.2 0-26.5-21.5-48-48-48l-2.9 0c-13.5 0-26.5 5.4-36 14.9l-9.1 9.1-9.1-9.1c-9.5-9.5-22.5-14.9-36-14.9zm-188 14.9c-9.5-9.5-22.5-14.9-36-14.9L96 96c-26.5 0-48 21.5-48 48 0 53.4 66.9 95.7 89 108.2 4.4 2.5 9.6 2.5 14 0 22.1-12.5 89-54.8 89-108.2 0-26.5-21.5-48-48-48l-2.9 0c-13.5 0-26.5 5.4-36 14.9l-9.1 9.1-9.1-9.1z\"],\n \"face-kiss-beam\": [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm240 16l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-64-92c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"file-pdf\": [576, 512, [], \"f1c1\", \"M208 48L96 48c-8.8 0-16 7.2-16 16l0 384c0 8.8 7.2 16 16 16l80 0 0 48-80 0c-35.3 0-64-28.7-64-64L32 64C32 28.7 60.7 0 96 0L229.5 0c17 0 33.3 6.7 45.3 18.7L397.3 141.3c12 12 18.7 28.3 18.7 45.3l0 149.5-48 0 0-128-88 0c-39.8 0-72-32.2-72-72l0-88zM348.1 160L256 67.9 256 136c0 13.3 10.7 24 24 24l68.1 0zM240 380l32 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-12 0 0 28c0 11-9 20-20 20s-20-9-20-20l0-128c0-11 9-20 20-20zm32 80c11 0 20-9 20-20s-9-20-20-20l-12 0 0 40 12 0zm96-80l32 0c28.7 0 52 23.3 52 52l0 64c0 28.7-23.3 52-52 52l-32 0c-11 0-20-9-20-20l0-128c0-11 9-20 20-20zm32 128c6.6 0 12-5.4 12-12l0-64c0-6.6-5.4-12-12-12l-12 0 0 88 12 0zm76-108c0-11 9-20 20-20l48 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 24 28 0c11 0 20 9 20 20s-9 20-20 20l-28 0 0 44c0 11-9 20-20 20s-20-9-20-20l0-128z\"],\n \"face-grin-wide\": [512, 512, [128515, \"grin-alt\"], \"f581\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM224 192c0 35.3-14.3 64-32 64s-32-28.7-32-64 14.3-64 32-64 32 28.7 32 64zm96 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"],\n \"face-laugh-squint\": [512, 512, [\"laugh-squint\"], \"f59b\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm125.2 76.4c-6.5-14 5-28.4 20.4-28.4l220.8 0c15.4 0 26.8 14.4 20.4 28.4-22.8 49.4-72.8 83.6-130.8 83.6s-107.9-34.2-130.8-83.6zm-2.6-173.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"],\n \"face-kiss-wink-heart\": [640, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M386 439.5c-29.2 15.6-62.5 24.5-98 24.5-114.9 0-208-93.1-208-208S173.2 48 288 48c113.2 0 205.2 90.4 207.9 202.9 14.3 1.5 28.6 6 41.9 13.7 2 1.2 4 2.4 5.9 3.7 .2-4.1 .3-8.2 .3-12.3 0-141.4-114.6-256-256-256S32 114.6 32 256 146.6 512 288 512c41.4 0 80.5-9.8 115.1-27.3-5.8-12.9-12-28.5-17.2-45.2zM256 288c0 8.8 7.2 16 16 16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-16 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l32 0c26.5 0 48-21.5 48-48 0-12.3-4.6-23.5-12.2-32 7.6-8.5 12.2-19.7 12.2-32 0-26.5-21.5-48-48-48l-32 0c-8.8 0-16 7.2-16 16zm-48-48a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm152-44l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zM542.8 350c-2.2-18.3-12.9-34.6-28.9-43.8-28.1-16.2-63.9-6.6-80.1 21.5l-2.7 4.6c-24.5 42.5 7.9 117.9 24.4 150.8 5.1 10.1 15.5 16.1 26.8 15.5 36.7-2.2 118.2-11.7 142.8-54.2l2.7-4.6c16.2-28.1 6.6-63.9-21.5-80.1-16-9.2-35.4-10.4-52.4-3.1l-9.8 4.2-1.3-10.6z\"],\n \"copy\": [448, 512, [], \"f0c5\", \"M384 336l-192 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l133.5 0c4.2 0 8.3 1.7 11.3 4.7l58.5 58.5c3 3 4.7 7.1 4.7 11.3L400 320c0 8.8-7.2 16-16 16zM192 384l192 0c35.3 0 64-28.7 64-64l0-197.5c0-17-6.7-33.3-18.7-45.3L370.7 18.7C358.7 6.7 342.5 0 325.5 0L192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-48 0 0 16c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0 0-48-16 0z\"],\n \"chess-king\": [448, 512, [9818], \"f43f\", \"M224-32c13.3 0 24 10.7 24 24l0 40 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 80 161.8 0c21.1 0 38.2 17.1 38.2 38.2 0 6.4-1.6 12.7-4.7 18.3L357.2 374.5 405.6 435c6.7 8.4 10.4 18.8 10.4 29.6 0 26.2-21.2 47.4-47.4 47.4L79.4 512c-26.2 0-47.4-21.2-47.4-47.4 0-10.8 3.7-21.2 10.4-29.6L90.8 374.5 4.7 216.6C1.6 210.9 0 204.6 0 198.2 0 177.1 17.1 160 38.2 160l161.8 0 0-80-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-40c0-13.3 10.7-24 24-24zM131.8 400l-3.6 4.4-47.6 59.6 286.6 0-47.6-59.6-3.6-4.4-184.3 0zm1.1-48.5l.3 .5 181.6 0 .3-.5 78.3-143.5-338.7 0 78.3 143.5z\"],\n \"square-plus\": [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 80c-8.8 0-16 7.2-16 16l0 320c0 8.8 7.2 16 16 16l320 0c8.8 0 16-7.2 16-16l0-320c0-8.8-7.2-16-16-16L64 80zM0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\n \"file-code\": [384, 512, [], \"f1c9\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM170.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm80-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z\"],\n \"face-grin-wink\": [512, 512, [\"grin-wink\"], \"f58c\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"],\n \"money-bill-1\": [512, 512, [\"money-bill-alt\"], \"f3d1\", \"M112 112c0 35.3-28.7 64-64 64l0 160c35.3 0 64 28.7 64 64l288 0c0-35.3 28.7-64 64-64l0-160c-35.3 0-64-28.7-64-64l-288 0zM0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm256 16a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm-16 44c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"],\n \"eye-slash\": [576, 512, [], \"f070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM176.9 111.1c32.1-18.9 69.2-31.1 111.1-31.1 65.2 0 118.8 29.6 159.9 67.7 38.5 35.7 65.1 78.3 78.6 108.3-13.6 30-40.2 72.5-78.6 108.3-3.1 2.8-6.2 5.6-9.4 8.4L393.8 328c14-20.5 22.2-45.3 22.2-72 0-70.7-57.3-128-128-128-26.7 0-51.5 8.2-72 22.2l-39.1-39.1zm182 182l-108-108c11.1-5.8 23.7-9.1 37.1-9.1 44.2 0 80 35.8 80 80 0 13.4-3.3 26-9.1 37.1zM103.4 173.2l-34-34c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6L352.2 422c-20 6.4-41.4 10-64.2 10-65.2 0-118.8-29.6-159.9-67.7-38.5-35.7-65.1-78.3-78.6-108.3 10.4-23.1 28.6-53.6 54-82.8z\"],\n \"file-word\": [384, 512, [], \"f1c2\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zm71.3 274.2c-3.2-12.9-16.2-20.7-29.1-17.5S85.5 273 88.7 285.8l32 128c2.5 10.2 11.4 17.5 21.9 18.1s20.1-5.7 23.8-15.5l25.5-68.1 25.5 68.1c3.7 9.8 13.3 16.1 23.8 15.5s19.4-7.9 21.9-18.1l32-128c3.2-12.9-4.6-25.9-17.5-29.1s-25.9 4.6-29.1 17.5l-13.3 53.2-20.9-55.8C211 262.2 202 256 192 256s-19 6.2-22.5 15.6l-20.9 55.8-13.3-53.2z\"],\n \"face-angry\": [512, 512, [128544, \"angry\"], \"f556\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-144c24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50s-75.7 19.8-97.5 50c-7.7 10.8-5.3 25.8 5.5 33.5s25.8 5.3 33.5-5.5c13.1-18.2 34.4-30 58.5-30zm-80-96c17.7 0 32-14.3 32-32l0-.3 9.7 3.2c10.5 3.5 21.8-2.2 25.3-12.6s-2.2-21.8-12.6-25.3l-96-32c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3l28.9 9.6c-4.1 5.4-6.6 12.1-6.6 19.4 0 17.7 14.3 32 32 32zm192-32c0-7.3-2.4-14-6.6-19.4l28.9-9.6c10.5-3.5 16.1-14.8 12.6-25.3s-14.8-16.1-25.3-12.6l-96 32c-10.5 3.5-16.1 14.8-12.6 25.3s14.8 16.1 25.3 12.6l9.7-3.2 0 .3c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\n \"chess-knight\": [448, 512, [9822], \"f441\", \"M232-32c110.5 0 200 89.5 200 200l0 127.7c0 18.9-6.1 37.1-17.2 52.2l-5.1 6.2-36.3 40.7 32.1 40.2c6.7 8.4 10.4 18.8 10.4 29.6l-.2 4.8c-2.4 23.9-22.6 42.5-47.1 42.5l-289.2 0-4.8-.2c-23.9-2.4-42.5-22.6-42.5-47.1 0-10.8 3.7-21.2 10.4-29.6l37.6-47 0-24.3c0-24.3 10.1-47.6 27.8-64.2l63.5-59.5-17.4 0-.2 .2c-20.3 20.3-49.6 28.2-77.1 21.1l-5.5-1.6c-30.9-10.3-52.3-38-54.9-70.1l-.2-6.4 0-1.4c0-19.7 7.1-38.8 19.9-53.8l76.1-88.8 0-47.1 .1-2.5C113.4-22.6 123.6-32 136-32l96 0zM80.7 464l286.6 0-38.4-48-209.9 0-38.4 48zM160 48c0 5.7-2.1 11.3-5.8 15.6L72.3 159.1C67 165.4 64 173.4 64 181.7l0 1.4 .4 5.2c1.9 11.9 10.3 21.9 21.9 25.8l4.5 1.1c10.5 1.9 21.3-1.4 29-9l7.2-7.2 3.7-3c3.9-2.6 8.5-4 13.3-4l88 0c9.8 0 18.7 6 22.3 15.2s1.3 19.6-5.9 26.3l-107.8 101c-8.1 7.6-12.7 18.1-12.7 29.2l0 4.3 205.2 0 40.7-45.8 2.3-2.8c5.1-6.8 7.8-15.2 7.8-23.7L384 168c0-83.9-68.1-152-152-152l-72 0 0 32zm32 72a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"],\n \"face-grin-beam\": [512, 512, [128516, \"grin-beam\"], \"f582\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"hand-peace\": [448, 512, [9996], \"f25b\", \"M219 1.4c-35.2-3.7-66.6 21.8-70.3 57l-6.4 60.6-17.4-49.4C113.2 36.3 76.6 18.8 43.3 30.5S-7.6 78.8 4.1 112.1L56.9 262.2C41.7 276.7 32.2 297.3 32.2 320l0 24c0 92.8 75.2 168 168 168l48 0c92.8 0 168-75.2 168-168l0-120c0-35.3-28.7-64-64-64-7.9 0-15.4 1.4-22.4 4-10.4-21.3-32.3-36-57.6-36-.7 0-1.5 0-2.2 0l5.9-56.3c3.7-35.2-21.8-66.6-57-70.3zm-.2 155.4c-6.6 10.1-10.5 22.2-10.5 35.2l0 48c0 .7 0 1.4 0 2-5.1-1.3-10.5-2-16-2l-7.4 0-5.4-15.3 17-161.3c.9-8.8 8.8-15.2 17.6-14.2s15.2 8.8 14.2 17.6l-9.5 90.1zM79.6 85.6l54.3 154.4-21.7 0c-4 0-8 .3-11.9 .9L49.4 96.2c-2.9-8.3 1.5-17.5 9.8-20.4s17.5 1.5 20.4 9.8zM256.2 192c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48zm38.4 108c10.4 21.3 32.3 36 57.6 36 5.5 0 10.9-.7 16-2l0 10c0 66.3-53.7 120-120 120l-48 0c-66.3 0-120-53.7-120-120l0-24c0-17.7 14.3-32 32-32l80 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c35.3 0 64-28.7 64-64 0-.7 0-1.4 0-2 5.1 1.3 10.5 2 16 2 7.9 0 15.4-1.4 22.4-4zm73.6-28c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48z\"],\n \"compass\": [512, 512, [129517], \"f14e\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm306.7 69.1L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.3 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"square\": [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M384 80c8.8 0 16 7.2 16 16l0 320c0 8.8-7.2 16-16 16L64 432c-8.8 0-16-7.2-16-16L48 96c0-8.8 7.2-16 16-16l320 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"],\n \"face-grin\": [512, 512, [128512, \"grin\"], \"f580\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm372.2 46.3c11.8-3.6 23.7 6.1 19.6 17.8-19.8 55.9-73.1 96-135.8 96-62.7 0-116-40-135.8-95.9-4.1-11.6 7.8-21.4 19.6-17.8 34.7 10.6 74.2 16.5 116.1 16.5 42 0 81.5-6 116.3-16.6zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"face-smile\": [512, 512, [128578, \"smile\"], \"f118\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"face-smile-beam\": [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm177.3 63.4C192.3 335 218.4 352 256 352s63.7-17 78.7-32.6c9.2-9.6 24.4-9.9 33.9-.7s9.9 24.4 .7 33.9c-22.1 23-60 47.4-113.3 47.4s-91.2-24.4-113.3-47.4c-9.2-9.6-8.9-24.8 .7-33.9s24.8-8.9 33.9 .7zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"folder-closed\": [512, 512, [], \"e185\", \"M448 400L64 400c-8.8 0-16-7.2-16-16l0-144 416 0 0 144c0 8.8-7.2 16-16 16zm16-208l-416 0 0-96c0-8.8 7.2-16 16-16l138.7 0c3.5 0 6.8 1.1 9.6 3.2L250.7 112c13.8 10.4 30.7 16 48 16L448 128c8.8 0 16 7.2 16 16l0 48zM64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z\"],\n \"keyboard\": [576, 512, [9000], \"f11c\", \"M64 112c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-256c0-8.8-7.2-16-16-16L64 112zM0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM176 320l224 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm-72-72c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16zm64 96c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16zm16-96l16 0c8.8 0 16 7.2 16 16l0 16c0 8.8-7.2 16-16 16l-16 0c-8.8 0-16-7.2-16-16l0-16c0-8.8 7.2-16 16-16z\"],\n \"face-rolling-eyes\": [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 376c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM160 264c-22.1 0-40-17.9-40-40 0-9.5 3.3-18.1 8.8-25 3.2 14.3 16 25 31.2 25s28-10.7 31.2-25c5.5 6.8 8.8 15.5 8.8 25 0 22.1-17.9 40-40 40zm0 40a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm192-40c-22.1 0-40-17.9-40-40 0-9.5 3.3-18.1 8.8-25 3.2 14.3 16 25 31.2 25s28-10.7 31.2-25c5.5 6.8 8.8 15.5 8.8 25 0 22.1-17.9 40-40 40zm0 40a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"],\n \"face-grimace\": [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 48a208 208 0 1 0 0 416 208 208 0 1 0 0-416zM512 256a256 256 0 1 1 -512 0 256 256 0 1 1 512 0zM152 352c0 11.9 8.6 21.8 20 23.7l0-47.3c-11.4 1.9-20 11.8-20 23.7zm84 24l0-48-24 0 0 48 24 0zm64 0l0-48-24 0 0 48 24 0zm40-.3c11.4-1.9 20-11.8 20-23.7s-8.6-21.8-20-23.7l0 47.3zM176 288l160 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-160 0c-35.3 0-64-28.7-64-64s28.7-64 64-64zm0-112a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"circle-dot\": [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-464a208 208 0 1 0 0 416 208 208 0 1 0 0-416zm0 304a96 96 0 1 1 0-192 96 96 0 1 1 0 192z\"],\n \"object-group\": [576, 512, [], \"f247\", \"M40 64a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm48 59.3c16-6.5 28.9-19.3 35.3-35.3l329.3 0c6.5 16 19.3 28.9 35.3 35.3l0 265.3c-16 6.5-28.9 19.3-35.3 35.3l-329.3 0c-6.5-16-19.3-28.9-35.3-35.3l0-265.3zM512 0c-26.9 0-49.9 16.5-59.3 40L123.3 40C113.9 16.5 90.9 0 64 0 28.7 0 0 28.7 0 64 0 90.9 16.5 113.9 40 123.3l0 265.3c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64 26.9 0 49.9-16.5 59.3-40l329.3 0c9.5 23.5 32.5 40 59.3 40 35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-265.3c23.5-9.5 40-32.5 40-59.3 0-35.3-28.7-64-64-64zM488 64a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 424a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm424 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM192 176l88 0 0 56-88 0 0-56zm-8-40c-17.7 0-32 14.3-32 32l0 72c0 17.7 14.3 32 32 32l104 0c17.7 0 32-14.3 32-32l0-72c0-17.7-14.3-32-32-32l-104 0zm72 184l0 24c0 17.7 14.3 32 32 32l104 0c17.7 0 32-14.3 32-32l0-72c0-17.7-14.3-32-32-32l-24 0c0 14.6-3.9 28.2-10.7 40l26.7 0 0 56-88 0 0-16.4c-2.6 .3-5.3 .4-8 .4l-32 0z\"],\n \"face-flushed\": [512, 512, [128563, \"flushed\"], \"f579\", \"M464 256a208 208 0 1 1 -416 0 208 208 0 1 1 416 0zM256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM160 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM192 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0zM160 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm0 128a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm144-80a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm128 0a80 80 0 1 0 -160 0 80 80 0 1 0 160 0z\"],\n \"star-half-stroke\": [576, 512, [\"star-half-alt\"], \"f5c0\", \"M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9zM264.1 91.8l0 284.1-100.1 50.9 19.8-125.5c1.2-7.6-1.3-15.3-6.7-20.7l-89.8-89.9 125.5-20c7.6-1.2 14.1-6 17.6-12.8l33.8-66.2zm48 284.1l0-284.1 33.8 66.2c3.5 6.8 10 11.6 17.6 12.8l125.5 20-89.8 89.9c-5.4 5.4-7.9 13.1-6.7 20.7l19.8 125.5-100.1-50.9z\"],\n \"file-video\": [384, 512, [], \"f1c8\", \"M64 48l112 0 0 88c0 39.8 32.2 72 72 72l88 0 0 240c0 8.8-7.2 16-16 16L64 464c-8.8 0-16-7.2-16-16L48 64c0-8.8 7.2-16 16-16zM224 67.9l92.1 92.1-68.1 0c-13.3 0-24-10.7-24-24l0-68.1zM64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-261.5c0-17-6.7-33.3-18.7-45.3L242.7 18.7C230.7 6.7 214.5 0 197.5 0L64 0zM80 288l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-24 35 35c3.2 3.2 7.5 5 12 5 9.4 0 17-7.6 17-17l0-94.1c0-9.4-7.6-17-17-17-4.5 0-8.8 1.8-12 5l-35 35 0-24c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32z\"],\n \"face-laugh\": [512, 512, [\"laugh\"], \"f599\", \"M464 256a208 208 0 1 0 -416 0 208 208 0 1 0 416 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm118.3 58.2c-4.2-13.7 7.1-26.2 21.4-26.2l232.6 0c14.3 0 25.6 12.5 21.4 26.2-18 58.9-72.9 101.8-137.7 101.8S136.3 373.1 118.3 314.2zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"hand-pointer\": [448, 512, [], \"f25a\", \"M160 64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 136c0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4 8.8 0 16 7.2 16 16 0 10.3 6.6 19.5 16.4 22.8s20.6-.1 26.8-8.3c3-3.9 7.6-6.4 12.8-6.4 7.8 0 14.3 5.6 15.7 13 1.6 8.2 7.3 15.1 15.1 18s16.7 1.6 23.3-3.6c2.7-2.1 6.1-3.4 9.9-3.4 8.8 0 16 7.2 16 16l0 120c0 39.8-32.2 72-72 72l-116.6 0c-37.4 0-72.4-18.7-93.2-49.9L50.7 312.9c-4.9-7.4-2.9-17.3 4.4-22.2s17.3-2.9 22.2 4.4L116 353.2c5.9 8.8 16.8 12.7 26.9 9.7s17-12.4 17-23L160 64zM176 0c-35.3 0-64 28.7-64 64l0 197.7C91.2 238 55.5 232.8 28.5 250.7-.9 270.4-8.9 310.1 10.8 339.5L78.3 440.8c29.7 44.5 79.6 71.2 133.1 71.2L328 512c66.3 0 120-53.7 120-120l0-120c0-35.3-28.7-64-64-64-4.5 0-8.8 .5-13 1.3-11.7-15.4-30.2-25.3-51-25.3-6.9 0-13.5 1.1-19.7 3.1-11.6-16.4-30.7-27.1-52.3-27.1-2.7 0-5.4 .2-8 .5L240 64c0-35.3-28.7-64-64-64zm48 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"],\n \"registered\": [512, 512, [174], \"f25d\", \"M256 48a208 208 0 1 1 0 416 208 208 0 1 1 0-416zm0 464a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM200 144c-13.3 0-24 10.7-24 24l0 176c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56 34.4 0 41 68.3c6.8 11.4 21.6 15 32.9 8.2s15-21.6 8.2-32.9l-30.2-50.3c24.6-11.5 41.6-36.4 41.6-65.3 0-39.8-32.2-72-72-72l-80 0zm72 96l-48 0 0-48 56 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0z\"]\n };\n\n bunker(function () {\n defineIcons('far', icons);\n defineIcons('fa-regular', icons);\n });\n\n}());\n(function () {\n 'use strict';\n\n var _WINDOW = {};\n var _DOCUMENT = {};\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n } catch (e) {} // eslint-disable-line no-empty\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n }\n function _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n }\n function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n }\n\n var _dt;\n var q = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n slab: {\n \"fa-regular\": \"regular\",\n faslr: \"regular\"\n },\n \"slab-press\": {\n \"fa-regular\": \"regular\",\n faslpr: \"regular\"\n },\n thumbprint: {\n \"fa-light\": \"light\",\n fatl: \"light\"\n },\n whiteboard: {\n \"fa-semibold\": \"semibold\",\n fawsb: \"semibold\"\n },\n notdog: {\n \"fa-solid\": \"solid\",\n fans: \"solid\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"solid\",\n fands: \"solid\"\n },\n etch: {\n \"fa-solid\": \"solid\",\n faes: \"solid\"\n },\n jelly: {\n \"fa-regular\": \"regular\",\n fajr: \"regular\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"regular\",\n fajfr: \"regular\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"regular\",\n fajdr: \"regular\"\n },\n chisel: {\n \"fa-regular\": \"regular\",\n facr: \"regular\"\n },\n utility: {\n \"fa-semibold\": \"semibold\",\n fausb: \"semibold\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"semibold\",\n faudsb: \"semibold\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"semibold\",\n faufsb: \"semibold\"\n }\n };\n var i = \"classic\",\n t = \"duotone\",\n d = \"sharp\",\n l = \"sharp-duotone\",\n f = \"chisel\",\n n = \"etch\",\n h = \"jelly\",\n o = \"jelly-duo\",\n u = \"jelly-fill\",\n g = \"notdog\",\n s = \"notdog-duo\",\n y = \"slab\",\n m = \"slab-press\",\n e = \"thumbprint\",\n p = \"utility\",\n a = \"utility-duo\",\n w = \"utility-fill\",\n x = \"whiteboard\",\n b = \"Classic\",\n c = \"Duotone\",\n I = \"Sharp\",\n F = \"Sharp Duotone\",\n v = \"Chisel\",\n S = \"Etch\",\n A = \"Jelly\",\n P = \"Jelly Duo\",\n j = \"Jelly Fill\",\n B = \"Notdog\",\n N = \"Notdog Duo\",\n k = \"Slab\",\n D = \"Slab Press\",\n T = \"Thumbprint\",\n C = \"Utility\",\n W = \"Utility Duo\",\n K = \"Utility Fill\",\n R = \"Whiteboard\",\n dt = (_dt = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, i, b), t, c), d, I), l, F), f, v), n, S), h, A), o, P), u, j), g, B), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, s, N), y, k), m, D), e, T), p, C), a, W), w, K), x, R));\n var gt = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n slab: {\n 400: \"faslr\"\n },\n \"slab-press\": {\n 400: \"faslpr\"\n },\n whiteboard: {\n 600: \"fawsb\"\n },\n thumbprint: {\n 300: \"fatl\"\n },\n notdog: {\n 900: \"fans\"\n },\n \"notdog-duo\": {\n 900: \"fands\"\n },\n etch: {\n 900: \"faes\"\n },\n chisel: {\n 400: \"facr\"\n },\n jelly: {\n 400: \"fajr\"\n },\n \"jelly-fill\": {\n 400: \"fajfr\"\n },\n \"jelly-duo\": {\n 400: \"fajdr\"\n },\n utility: {\n 600: \"fausb\"\n },\n \"utility-duo\": {\n 600: \"faudsb\"\n },\n \"utility-fill\": {\n 600: \"faufsb\"\n }\n };\n var _t = {\n chisel: {\n regular: \"facr\"\n },\n classic: {\n brands: \"fab\",\n light: \"fal\",\n regular: \"far\",\n solid: \"fas\",\n thin: \"fat\"\n },\n duotone: {\n light: \"fadl\",\n regular: \"fadr\",\n solid: \"fad\",\n thin: \"fadt\"\n },\n etch: {\n solid: \"faes\"\n },\n jelly: {\n regular: \"fajr\"\n },\n \"jelly-duo\": {\n regular: \"fajdr\"\n },\n \"jelly-fill\": {\n regular: \"fajfr\"\n },\n notdog: {\n solid: \"fans\"\n },\n \"notdog-duo\": {\n solid: \"fands\"\n },\n sharp: {\n light: \"fasl\",\n regular: \"fasr\",\n solid: \"fass\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n light: \"fasdl\",\n regular: \"fasdr\",\n solid: \"fasds\",\n thin: \"fasdt\"\n },\n slab: {\n regular: \"faslr\"\n },\n \"slab-press\": {\n regular: \"faslpr\"\n },\n thumbprint: {\n light: \"fatl\"\n },\n utility: {\n semibold: \"fausb\"\n },\n \"utility-duo\": {\n semibold: \"faudsb\"\n },\n \"utility-fill\": {\n semibold: \"faufsb\"\n },\n whiteboard: {\n semibold: \"fawsb\"\n }\n };\n var qt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n Ht = [\"kit\"];\n var L = \"kit\",\n r = \"kit-duotone\",\n U = \"Kit\",\n J = \"Kit Duotone\",\n $t = _defineProperty(_defineProperty({}, L, U), r, J);\n var ol = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n };\n var fl = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\n var ul = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\n var _ml;\n var l$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n };\n var n$1 = \"classic\",\n o$1 = \"duotone\",\n u$1 = \"sharp\",\n s$1 = \"sharp-duotone\",\n h$1 = \"chisel\",\n g$1 = \"etch\",\n y$1 = \"jelly\",\n e$1 = \"jelly-duo\",\n m$1 = \"jelly-fill\",\n p$1 = \"notdog\",\n a$1 = \"notdog-duo\",\n w$1 = \"slab\",\n b$1 = \"slab-press\",\n r$1 = \"thumbprint\",\n c$1 = \"utility\",\n i$1 = \"utility-duo\",\n x$1 = \"utility-fill\",\n I$1 = \"whiteboard\",\n F$1 = \"Classic\",\n v$1 = \"Duotone\",\n S$1 = \"Sharp\",\n A$1 = \"Sharp Duotone\",\n P$1 = \"Chisel\",\n j$1 = \"Etch\",\n B$1 = \"Jelly\",\n N$1 = \"Jelly Duo\",\n k$1 = \"Jelly Fill\",\n D$1 = \"Notdog\",\n C$1 = \"Notdog Duo\",\n T$1 = \"Slab\",\n L$1 = \"Slab Press\",\n W$1 = \"Thumbprint\",\n R$1 = \"Utility\",\n K$1 = \"Utility Duo\",\n U$1 = \"Utility Fill\",\n J$1 = \"Whiteboard\",\n ml$1 = (_ml = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, n$1, F$1), o$1, v$1), u$1, S$1), s$1, A$1), h$1, P$1), g$1, j$1), y$1, B$1), e$1, N$1), m$1, k$1), p$1, D$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, a$1, C$1), w$1, T$1), b$1, L$1), r$1, W$1), c$1, R$1), i$1, K$1), x$1, U$1), I$1, J$1));\n var E$1 = \"kit\",\n d$1 = \"kit-duotone\",\n _$1 = \"Kit\",\n M$1 = \"Kit Duotone\",\n rt$1 = _defineProperty(_defineProperty({}, E$1, _$1), d$1, M$1);\n var $t$1 = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n },\n slab: {\n \"fa-regular\": \"faslr\"\n },\n \"slab-press\": {\n \"fa-regular\": \"faslpr\"\n },\n whiteboard: {\n \"fa-semibold\": \"fawsb\"\n },\n thumbprint: {\n \"fa-light\": \"fatl\"\n },\n notdog: {\n \"fa-solid\": \"fans\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"fands\"\n },\n etch: {\n \"fa-solid\": \"faes\"\n },\n jelly: {\n \"fa-regular\": \"fajr\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"fajfr\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"fajdr\"\n },\n chisel: {\n \"fa-regular\": \"facr\"\n },\n utility: {\n \"fa-semibold\": \"fausb\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"faudsb\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"faufsb\"\n }\n },\n z = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"],\n slab: [\"faslr\"],\n \"slab-press\": [\"faslpr\"],\n whiteboard: [\"fawsb\"],\n thumbprint: [\"fatl\"],\n notdog: [\"fans\"],\n \"notdog-duo\": [\"fands\"],\n etch: [\"faes\"],\n jelly: [\"fajr\"],\n \"jelly-fill\": [\"fajfr\"],\n \"jelly-duo\": [\"fajdr\"],\n chisel: [\"facr\"],\n utility: [\"fausb\"],\n \"utility-duo\": [\"faudsb\"],\n \"utility-fill\": [\"faufsb\"]\n },\n Ht$1 = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n },\n slab: {\n faslr: \"fa-regular\"\n },\n \"slab-press\": {\n faslpr: \"fa-regular\"\n },\n whiteboard: {\n fawsb: \"fa-semibold\"\n },\n thumbprint: {\n fatl: \"fa-light\"\n },\n notdog: {\n fans: \"fa-solid\"\n },\n \"notdog-duo\": {\n fands: \"fa-solid\"\n },\n etch: {\n faes: \"fa-solid\"\n },\n jelly: {\n fajr: \"fa-regular\"\n },\n \"jelly-fill\": {\n fajfr: \"fa-regular\"\n },\n \"jelly-duo\": {\n fajdr: \"fa-regular\"\n },\n chisel: {\n facr: \"fa-regular\"\n },\n utility: {\n fausb: \"fa-semibold\"\n },\n \"utility-duo\": {\n faudsb: \"fa-semibold\"\n },\n \"utility-fill\": {\n faufsb: \"fa-semibold\"\n }\n },\n G$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\", \"semibold\"],\n O$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n V$1 = O$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n $$1 = [\"aw\", \"fw\", \"pull-left\", \"pull-right\"],\n to = [].concat(_toConsumableArray(Object.keys(z)), G$1, $$1, [\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"inverse\", \"layers\", \"layers-bottom-left\", \"layers-bottom-right\", \"layers-counter\", \"layers-text\", \"layers-top-left\", \"layers-top-right\", \"li\", \"pull-end\", \"pull-start\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", \"width-auto\", \"width-fixed\", l$1.GROUP, l$1.SWAP_OPACITY, l$1.PRIMARY, l$1.SECONDARY]).concat(O$1.map(function (t) {\n return \"\".concat(t, \"x\");\n })).concat(V$1.map(function (t) {\n return \"w-\".concat(t);\n }));\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e$$1) {\n return false;\n }\n }();\n function familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[i];\n }\n });\n }\n var _PREFIX_TO_STYLE = _objectSpread2({}, q);\n\n // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n // {'fa-duotone': 'duotone'}\n _PREFIX_TO_STYLE[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n }), q[i]), qt['kit']), qt['kit-duotone']);\n var PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\n var _STYLE_TO_PREFIX = _objectSpread2({}, _t);\n\n // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n _STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n }), _STYLE_TO_PREFIX[i]), ul['kit']), ul['kit-duotone']);\n var STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\n var _PREFIX_TO_LONG_STYLE = _objectSpread2({}, Ht$1);\n _PREFIX_TO_LONG_STYLE[i] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[i]), fl['kit']);\n var PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\n var _LONG_STYLE_TO_PREFIX = _objectSpread2({}, $t$1);\n _LONG_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[i]), ol['kit']);\n var LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\n var _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, gt);\n var FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\n var RESERVED_CLASSES = [].concat(_toConsumableArray(Ht), _toConsumableArray(to));\n\n function bunker(fn) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n fn.apply(void 0, args);\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n\n var w$2 = WINDOW || {};\n if (!w$2[NAMESPACE_IDENTIFIER]) w$2[NAMESPACE_IDENTIFIER] = {};\n if (!w$2[NAMESPACE_IDENTIFIER].styles) w$2[NAMESPACE_IDENTIFIER].styles = {};\n if (!w$2[NAMESPACE_IDENTIFIER].hooks) w$2[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w$2[NAMESPACE_IDENTIFIER].shims) w$2[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w$2[NAMESPACE_IDENTIFIER];\n\n function normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n }\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var icons = {\n \"0\": [320, 512, [], \"30\", \"M0 192C0 103.6 71.6 32 160 32s160 71.6 160 160l0 128c0 88.4-71.6 160-160 160S0 408.4 0 320L0 192zM160 96c-53 0-96 43-96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96z\"],\n \"1\": [256, 512, [], \"31\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l64 0 0 320-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-352c0-17.7-14.3-32-32-32L32 32z\"],\n \"2\": [384, 512, [], \"32\", \"M48 64c0-17.7 14.3-32 32-32l171 0c60.2 0 109 48.8 109 109 0 43.8-26.2 83.3-66.4 100.4l-139.1 59C119 315.4 96 350.2 96 388.7l0 27.3 224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32l0-59.3c0-64.2 38.4-122.2 97.5-147.3l139.1-59c16.6-7.1 27.4-23.4 27.4-41.4 0-24.9-20.2-45-45-45L80 96C62.3 96 48 81.7 48 64z\"],\n \"3\": [320, 512, [], \"33\", \"M80 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l160 0c70.7 0 128 57.3 128 128 0 38.2-16.8 72.5-43.3 96 26.6 23.5 43.3 57.8 43.3 96 0 70.7-57.3 128-128 128L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c35.3 0 64-28.7 64-64s-28.7-64-64-64L80 288z\"],\n \"4\": [384, 512, [], \"34\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 288c0 35.3 28.7 64 64 64l192 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 224-192 0 0-224z\"],\n \"5\": [320, 512, [], \"35\", \"M0 64C0 46.3 14.3 32 32 32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0 0 112 120 0c75.1 0 136 60.9 136 136S259.1 480 184 480L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l152 0c39.8 0 72-32.2 72-72s-32.2-72-72-72L32 272c-17.7 0-32-14.3-32-32L0 64z\"],\n \"6\": [384, 512, [], \"36\", \"M256 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-88 0c-48.6 0-88 39.4-88 88l0 32.2c22.9-15.3 50.4-24.2 80-24.2l48 0c79.5 0 144 64.5 144 144S287.5 480 208 480l-48 0C80.5 480 16 415.5 16 336l0-152C16 100.1 84.1 32 168 32l88 0zM80 336c0 44.2 35.8 80 80 80l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0c-44.2 0-80 35.8-80 80z\"],\n \"7\": [320, 512, [], \"37\", \"M0 64C0 46.3 14.3 32 32 32l256 0c11.5 0 22 6.1 27.7 16.1s5.7 22.2-.1 32.1l-224 384c-8.9 15.3-28.5 20.4-43.8 11.5s-20.4-28.5-11.5-43.8L232.3 96 32 96C14.3 96 0 81.7 0 64z\"],\n \"8\": [320, 512, [], \"38\", \"M304 160c0-70.7-57.3-128-128-128l-32 0c-70.7 0-128 57.3-128 128 0 34.6 13.7 66 36 89-31.5 23.3-52 60.8-52 103 0 70.7 57.3 128 128 128l64 0c70.7 0 128-57.3 128-128 0-42.2-20.5-79.7-52-103 22.3-23 36-54.4 36-89zM176.1 288l15.9 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64s28.7-64 64-64l48.1 0zm0-64L144 224c-35.3 0-64-28.7-64-64 0-35.3 28.7-64 64-64l32 0c35.3 0 64 28.7 64 64 0 35.3-28.6 64-64 64z\"],\n \"9\": [384, 512, [], \"39\", \"M208 320c29.6 0 57.1-8.9 80-24.2l0 32.2c0 48.6-39.4 88-88 88L96 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l104 0c83.9 0 152-68.1 152-152l0-152.1C351.9 96.4 287.5 32 208 32l-48 0C80.5 32 16 96.5 16 176S80.5 320 160 320l48 0zm80-144c0 44.2-35.8 80-80 80l-48 0c-44.2 0-80-35.8-80-80s35.8-80 80-80l48 0c44.2 0 80 35.8 80 80z\"],\n \"dollar-sign\": [320, 512, [128178, 61781, \"dollar\", \"usd\"], \"24\", \"M136 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-114.9 0c-24.9 0-45.1 20.2-45.1 45.1 0 22.5 16.5 41.5 38.7 44.7l91.6 13.1c53.8 7.7 93.7 53.7 93.7 108 0 60.3-48.9 109.1-109.1 109.1l-10.9 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-72 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l130.9 0c24.9 0 45.1-20.2 45.1-45.1 0-22.5-16.5-41.5-38.7-44.7l-91.6-13.1C55.9 273.5 16 227.4 16 173.1 16 112.9 64.9 64 125.1 64l10.9 0 0-40z\"],\n \"dog\": [576, 512, [128021], \"f6d3\", \"M32 112c16.6 0 30.2 12.6 31.8 28.7l.3 6.6C65.8 163.4 79.4 176 96 176l179.1 0 140.9 60.4 0 243.6c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-131.3C296 361 268.8 368 240 368s-56-7-80-19.3L160 480c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-245.6c-37.3-13.2-64-48.6-64-90.4 0-17.7 14.3-32 32-32zM355.8-32c7.7 0 14.9 3.6 19.6 9.8L392 0 444.1 0c12.7 0 24.9 5.1 33.9 14.1L496 32 552 32c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-64 0-7 28-124.7-53.4 31.6-147.2C334.3-23.9 344.2-32 355.8-32zM448 44a20 20 0 1 0 0 40 20 20 0 1 0 0-40z\"],\n \"truck-moving\": [640, 512, [], \"f4df\", \"M64 32C28.7 32 0 60.7 0 96L0 424c0 48.6 39.4 88 88 88 25.2 0 48-10.6 64-27.6 16 17 38.8 27.6 64 27.6 40.3 0 74.2-27.1 84.7-64l134.6 0c10.4 36.9 44.4 64 84.7 64 43 0 78.9-30.9 86.5-71.7 20-10.8 33.5-32 33.5-56.3l0-146.7c0-17-6.7-33.3-18.7-45.3L576 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM480 192l50.7 0 45.3 45.3 0 50.7-96 0 0-96zM88 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm392 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM216 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],\n \"rotate\": [512, 512, [128260, \"sync-alt\"], \"f2f1\", \"M480.1 192l7.9 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2S477.9 .2 471 7L419.3 58.8C375 22.1 318 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1C79.2 135.5 159.3 64 256 64 300.4 64 341.2 79 373.7 104.3L327 151c-6.9 6.9-8.9 17.2-5.2 26.2S334.3 192 344 192l136.1 0zm29.4 100.5c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-44.4 0-85.2-15-117.7-40.3L185 361c6.9-6.9 8.9-17.2 5.2-26.2S177.7 320 168 320L24 320c-13.3 0-24 10.7-24 24L0 488c0 9.7 5.8 18.5 14.8 22.2S34.1 511.8 41 505l51.8-51.8C137 489.9 194 512 256 512 385 512 491.7 416.6 509.4 292.5z\"],\n \"square-minus\": [448, 512, [61767, \"minus-square\"], \"f146\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm72 200l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"align-justify\": [448, 512, [], \"f039\", \"M448 64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32zm0 256c0-17.7-14.3-32-32-32L32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 192c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32zM448 448c0-17.7-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32z\"],\n \"calendar-check\": [448, 512, [], \"f274\", \"M320 0c17.7 0 32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32zm22 161.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 331.2 137 279.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 195.2c7.8-10.7 5.4-25.7-5.3-33.5z\"],\n \"face-kiss\": [512, 512, [128535, \"kiss\"], \"f596\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zm-96-80a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"kitchen-set\": [576, 512, [], \"e51a\", \"M240 144a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm44.4 32C269.9 240.1 212.5 288 144 288 64.5 288 0 223.5 0 144S64.5 0 144 0c68.5 0 125.9 47.9 140.4 112l71.8 0c8.8-9.8 21.6-16 35.8-16l104 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-104 0c-14.2 0-27-6.2-35.8-16l-71.8 0zM144 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM400 240c13.3 0 24 10.7 24 24l0 8 96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-240 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l96 0 0-8c0-13.3 10.7-24 24-24zM288 464l0-112 224 0 0 112c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48zM48 320l128 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-80c0-8.8 7.2-16 16-16zm128 64c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0 0 32 16 0zM24 464l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"dna\": [384, 512, [129516], \"f471\", \"M352 0c17.7 0 32 14.3 32 32 0 57.8-24.4 104.8-57.4 144.5-24.1 28.9-53.8 55.1-83.6 79.5 29.8 24.5 59.5 50.6 83.6 79.5 33 39.6 57.4 86.7 57.4 144.5 0 17.7-14.3 32-32 32s-32-14.3-32-32L64 480c0 17.7-14.3 32-32 32S0 497.7 0 480C0 422.2 24.4 375.2 57.4 335.5 81.5 306.6 111.2 280.5 141 256 111.2 231.5 81.5 205.4 57.4 176.5 24.4 136.8 0 89.8 0 32 0 14.3 14.3 0 32 0S64 14.3 64 32l256 0c0-17.7 14.3-32 32-32zM283.5 384l-182.9 0c-8.2 10.5-15.1 21.1-20.6 32l224.2 0c-5.6-10.9-12.5-21.5-20.6-32zM238 336c-14.3-13-29.8-25.8-46-39-16.2 13.1-31.7 26-46 39l92 0zM100.5 128l182.9 0c8.2-10.5 15.1-21.1 20.6-32L79.9 96c5.6 10.9 12.5 21.5 20.6 32zM146 176c14.3 13 29.8 25.8 46 39 16.2-13.1 31.7-26 46-39l-92 0z\"],\n \"child-reaching\": [384, 512, [], \"e59d\", \"M256 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM152.9 169.3c-23.7-8.4-44.5-24.3-58.8-45.8L74.6 94.2C64.8 79.5 45 75.6 30.3 85.4S11.6 115 21.4 129.8L40.9 159c18.1 27.1 42.8 48.4 71.1 62.4L112 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-258.4c29.1-14.2 54.4-36.2 72.7-64.2l18.2-27.9c9.6-14.8 5.4-34.6-9.4-44.3s-34.6-5.5-44.3 9.4L291 122.4c-21.8 33.4-58.9 53.6-98.8 53.6-12.6 0-24.9-2-36.6-5.8-.9-.3-1.8-.7-2.7-.9z\"],\n \"paste\": [512, 512, [\"file-clipboard\"], \"f0ea\", \"M64 0C28.7 0 0 28.7 0 64L0 384c0 35.3 28.7 64 64 64l112 0 0-224c0-61.9 50.1-112 112-112l64 0 0-48c0-35.3-28.7-64-64-64L64 0zM248 112l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zm40 48c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l160 0c35.3 0 64-28.7 64-64l0-165.5c0-17-6.7-33.3-18.7-45.3l-58.5-58.5c-12-12-28.3-18.7-45.3-18.7L288 160z\"],\n \"meteor\": [512, 512, [9732], \"f753\", \"M493.7 .9l-194.2 74.7 2.3-29.3c1-12.8-12.8-21.5-24-15.1L101.3 133.4C38.6 169.7 0 236.6 0 309 0 421.1 90.9 512 203 512 275.4 512 342.3 473.4 378.6 410.7L480.8 234.3c6.5-11.1-2.2-25-15.1-24l-29.3 2.3 74.7-194.2c.6-1.5 .9-3.2 .9-4.8 0-7.5-6-13.5-13.5-13.5-1.7 0-3.3 .3-4.8 .9zM192 192a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm16 96a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\n \"gears\": [640, 512, [\"cogs\"], \"f085\", \"M415.9 210.5c12.2-3.3 25 2.5 30.5 13.8L465 261.9c10.3 1.4 20.4 4.2 29.9 8.1l35-23.3c10.5-7 24.4-5.6 33.3 3.3l19.2 19.2c8.9 8.9 10.3 22.9 3.3 33.3l-23.3 34.9c1.9 4.7 3.6 9.6 5 14.7 1.4 5.1 2.3 10.1 3 15.2l37.7 18.6c11.3 5.6 17.1 18.4 13.8 30.5l-7 26.2c-3.3 12.1-14.6 20.3-27.2 19.5l-42-2.7c-6.3 8.1-13.6 15.6-21.9 22l2.7 41.9c.8 12.6-7.4 24-19.5 27.2l-26.2 7c-12.2 3.3-24.9-2.5-30.5-13.8l-18.6-37.6c-10.3-1.4-20.4-4.2-29.9-8.1l-35 23.3c-10.5 7-24.4 5.6-33.3-3.3l-19.2-19.2c-8.9-8.9-10.3-22.8-3.3-33.3l23.3-35c-1.9-4.7-3.6-9.6-5-14.7s-2.3-10.2-3-15.2l-37.7-18.6c-11.3-5.6-17-18.4-13.8-30.5l7-26.2c3.3-12.1 14.6-20.3 27.2-19.5l41.9 2.7c6.3-8.1 13.6-15.6 21.9-22l-2.7-41.8c-.8-12.6 7.4-24 19.5-27.2l26.2-7zM448.4 340a44 44 0 1 0 .1 88 44 44 0 1 0 -.1-88zM224.9-45.5l26.2 7c12.1 3.3 20.3 14.7 19.5 27.2l-2.7 41.8c8.3 6.4 15.6 13.8 21.9 22l42-2.7c12.5-.8 23.9 7.4 27.2 19.5l7 26.2c3.2 12.1-2.5 24.9-13.8 30.5l-37.7 18.6c-.7 5.1-1.7 10.2-3 15.2s-3.1 10-5 14.7l23.3 35c7 10.5 5.6 24.4-3.3 33.3L307.3 262c-8.9 8.9-22.8 10.3-33.3 3.3L239 242c-9.5 3.9-19.6 6.7-29.9 8.1l-18.6 37.6c-5.6 11.3-18.4 17-30.5 13.8l-26.2-7c-12.2-3.3-20.3-14.7-19.5-27.2l2.7-41.9c-8.3-6.4-15.6-13.8-21.9-22l-42 2.7c-12.5 .8-23.9-7.4-27.2-19.5l-7-26.2c-3.2-12.1 2.5-24.9 13.8-30.5l37.7-18.6c.7-5.1 1.7-10.1 3-15.2 1.4-5.1 3-10 5-14.7L55.1 46.5c-7-10.5-5.6-24.4 3.3-33.3L77.6-6c8.9-8.9 22.8-10.3 33.3-3.3l35 23.3c9.5-3.9 19.6-6.7 29.9-8.1l18.6-37.6c5.6-11.3 18.3-17 30.5-13.8zM192.4 84a44 44 0 1 0 0 88 44 44 0 1 0 0-88z\"],\n \"file-circle-plus\": [576, 512, [58606], \"e494\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n \"icicles\": [512, 512, [], \"f7ad\", \"M75.8 304.8L1 35.7C.3 33.2 0 30.7 0 28.2 0 12.6 12.6 0 28.2 0L482.4 0c16.3 0 29.6 13.2 29.6 29.6 0 1.6-.1 3.3-.4 4.9L434.6 496.1c-1.5 9.2-9.5 15.9-18.8 15.9-9.2 0-17.1-6.6-18.7-15.6L336 160 307.2 303.9c-1.9 9.3-10.1 16.1-19.6 16.1-9.2 0-17.2-6.2-19.4-15.1L240 192 210.6 368.2c-1.5 9.1-9.4 15.8-18.6 15.8s-17.1-6.7-18.6-15.8L144 192 115.9 304.3c-2.3 9.2-10.6 15.7-20.1 15.7-9.3 0-17.5-6.2-20-15.2z\"],\n \"arrow-trend-up\": [576, 512, [], \"e098\", \"M384 160c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-82.7-169.4 169.4c-12.5 12.5-32.8 12.5-45.3 0L192 269.3 54.6 406.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160c12.5-12.5 32.8-12.5 45.3 0L320 306.7 466.7 160 384 160z\"],\n \"hexagon-nodes-bolt\": [576, 512, [], \"e69a\", \"M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56c30.7 0 55.6-24.7 56-55.2c-7.5-12.9-13.5-26.8-17.6-41.5c-4.2-4-9.1-7.3-14.4-9.9l0-98.8c2.8-1.3 5.5-2.9 8-4.7l10.5 6c5.5-15.3 13.1-29.5 22.4-42.5l-9.1-5.2c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8zM440.5 132C425 105.2 390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c.4 .3 .8 .6 1.3 .9c21.7-9.5 45.6-14.8 70.8-14.8c2 0 4 0 5.9 .1c12.1-17.3 13.8-40.6 2.6-60.1zM432 512a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm47.9-225c4.3 3.7 5.4 9.9 2.6 14.9L452.4 356l35.6 0c5.2 0 9.8 3.3 11.4 8.2s-.1 10.3-4.2 13.4l-96 72c-4.5 3.4-10.8 3.2-15.1-.6s-5.4-9.9-2.6-14.9L411.6 380 376 380c-5.2 0-9.8-3.3-11.4-8.2s.1-10.3 4.2-13.4l96-72c4.5-3.4 10.8-3.2 15.1 .6z\"],\n \"question\": [320, 512, [10067, 10068, 61736], \"3f\", \"M64 160c0-53 43-96 96-96s96 43 96 96c0 42.7-27.9 78.9-66.5 91.4-28.4 9.2-61.5 35.3-61.5 76.6l0 24c0 17.7 14.3 32 32 32s32-14.3 32-32l0-24c0-1.7 .6-4.1 3.5-7.3 3-3.3 7.9-6.5 13.7-8.4 64.3-20.7 110.8-81 110.8-152.3 0-88.4-71.6-160-160-160S0 71.6 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32zm96 352c22.1 0 40-17.9 40-40s-17.9-40-40-40-40 17.9-40 40 17.9 40 40 40z\"],\n \"hands-bound\": [576, 512, [], \"e4f9\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 213.9c0 14.2 5.1 27.9 14.3 38.7L99.6 352 96 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-3.6 0 85.3-99.5c9.2-10.8 14.3-24.5 14.3-38.7L576 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112.8-69.3 92.4c-5.7 7.6-16.1 9.6-24.2 4.8-9.7-5.7-12.1-18.7-5.1-27.5L441 180c10.8-13.5 8.9-33.3-4.4-44.5s-33-9.8-44.5 3.2l-46.7 52.5C329 209.7 320 233.4 320 258.1l0 93.9-64 0 0-93.9c0-24.6-9-48.4-25.4-66.8l-46.7-52.5c-11.5-13-31.3-14.4-44.5-3.2S124.2 166.4 135 180l27.6 34.5c7 8.8 4.7 21.8-5.1 27.5-8.1 4.8-18.6 2.7-24.2-4.8L64 144.8 64 32zm64 448l0 32 128 0 0-32 64 0 0 32 128 0 0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L96 432c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0z\"],\n \"person-walking-luggage\": [512, 512, [], \"e554\", \"M264.3 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 12.3-7 23-17.2 28.4-.9 4.2-2.4 8.4-4.3 12.3l-69 138.1-.8-.4-27.7 55.3c-9.9 19.8-33.9 27.8-53.7 17.9L14.6 521c-19.8-9.9-27.8-33.9-17.9-53.7L47.3 366.3c9.9-19.8 33.9-27.8 53.7-17.9l30.7 15.3 28.3-56.6c.3-.6 .4-1.2 .4-1.8l0-16.9c0-.2 0-.3 0-.5l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L422.1 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3L448 507.5c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2L372 428.4c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L238 421.1c3.8-3.8 6.6-8.6 8.1-13.8L256.4 371z\"],\n \"file-arrow-down\": [384, 512, [\"file-download\"], \"f56d\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM175 441c9.4 9.4 24.6 9.4 33.9 0l64-64c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-23 23 0-86.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 86.1-23-23c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l64 64z\"],\n \"person-booth\": [576, 512, [], \"f756\", \"M40 24A56 56 0 1 1 152 24 56 56 0 1 1 40 24zm51.1 88c23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c6 8.4 15.7 13.4 26 13.4l31.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C209.8 373.3 224 401.8 224 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L70.4 348.8C46.2 330.7 32 302.2 32 272l0-100.9C32 138.5 58.5 112 91.1 112zM32 512l0-132.7c3.1 2.7 6.3 5.4 9.6 7.9L96 428 96 512c0 17.7-14.3 32-32 32s-32-14.3-32-32zm544-88l0 96c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-168 0c-7.1 0-13.8-3.1-18.4-8.6s-6.5-12.6-5.3-19.6l30.7-176.7-63.1-137.6 0 72c-5.2-1-10.5-1.6-16-1.6l-32 0 0-120c0-30.9 25.1-56 56-56L520 0c30.9 0 56 25.1 56 56l0 368zM288 336c5.5 0 10.8-.6 16-1.6L304 520c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-184 32 0z\"],\n \"locust\": [576, 512, [], \"e520\", \"M328 32c137 0 248 111 248 248l0 40-.4 8.2C571.5 368.5 537.4 400 496 400l-12.3 0 25.2 44.1c6.6 11.5 2.6 26.2-8.9 32.8s-26.2 2.6-32.7-8.9l-38.8-67.9-80.4 0-48.2 69.7c-7.5 10.9-22.5 13.6-33.4 6.1s-13.6-22.5-6.1-33.4l29.3-42.3-74.5 0-51.7 70.2c-7.9 10.7-22.9 12.9-33.6 5.1s-12.9-22.9-5.1-33.6l40.5-55-43-16.4-79.3 100.5c-8.2 10.4-23.3 12.2-33.7 4s-12.2-23.3-4-33.7l240-304 2.1-2.3c5.2-5.1 12.5-7.5 19.9-6.6 8.4 1.1 15.6 6.5 18.9 14.3l21.7 50.7 40.9-55.5 2.1-2.4c5.1-5.3 12.5-8 20-7.2 8.5 1 15.9 6.5 19.3 14.4l41.8 97.5 64.2 0c10.2 0 20 2 29 5.5-16.4-94-98.3-165.5-197-165.5l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0zM488 296a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM43.5 331.1C36.2 321.4 32 309.5 32 296.8 32 265.5 57.5 240 88.9 240l27.6 0-72.9 91.1zM225.1 240l48.2 0 1.4-1.9-16.9-39.5-32.7 41.5zm107.8 0l46.7 0-17.2-40-29.5 40z\"],\n \"right-long\": [576, 512, [\"long-arrow-alt-right\"], \"f30b\", \"M566.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S384 396.9 384 384l0-64-336 0c-26.5 0-48-21.5-48-48l0-32c0-26.5 21.5-48 48-48l336 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128z\"],\n \"truck-droplet\": [576, 512, [], \"e58c\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM208 304c-39.8 0-72-32.2-72-72 0-33.2 34.5-78 55.8-102.4 8.7-10 23.8-10 32.5 0 21.2 24.4 55.8 69.1 55.8 102.4 0 48-32.2 72-72 72z\"],\n \"hand-holding-medical\": [576, 512, [], \"e05c\", \"M240 24c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 56 56 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-56 0 0 56c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-56-56 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l56 0 0-56zM66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z\"],\n \"hand-point-left\": [512, 512, [], \"f0a5\", \"M32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l208 0 0-64-208 0zM192 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm-64-64c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0c-17.7 0-32 14.3-32 32zm96 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0zm88-96l-.6 0c5.4 9.4 8.6 20.3 8.6 32 0 13.2-4 25.4-10.8 35.6 24.9 8.7 42.8 32.5 42.8 60.4 0 11.7-3.1 22.6-8.6 32l8.6 0c88.4 0 160-71.6 160-160l0-61.7c0-42.4-16.9-83.1-46.9-113.1l-11.6-11.6C429.5 77.5 396.9 64 363 64l-27 0c-35.3 0-64 28.7-64 64l0 88c0 22.1 17.9 40 40 40s40-17.9 40-40l0-56c0-8.8 7.2-16 16-16s16 7.2 16 16l0 56c0 39.8-32.2 72-72 72z\"],\n \"calculator\": [384, 512, [128425], \"f1ec\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM96 64l192 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L96 160c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32zm16 168a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM88 352a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm128-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zm80 24a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM64 424c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm232-24c13.3 0 24 10.7 24 24s-10.7 24-24 24-24-10.7-24-24 10.7-24 24-24z\"],\n \"minus\": [448, 512, [8211, 8722, 10134, \"subtract\"], \"f068\", \"M0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32z\"],\n \"arrow-up-z-a\": [512, 512, [\"sort-alpha-up-alt\"], \"f882\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80zM288 64c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 224 320 224l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S461 32 448 32L320 32c-17.7 0-32 14.3-32 32zM412.6 273.7C407.2 262.8 396.1 256 384 256s-23.2 6.8-28.6 17.7l-80 160c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9l-80-160zM384 359.6l20.2 40.4-40.4 0 20.2-40.4z\"],\n \"microphone-slash\": [576, 512, [], \"f131\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L424.7 358.8C458.9 324.2 480 276.6 480 224l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 39.3-15.7 74.9-41.3 100.9L356.8 291C373.6 273.7 384 250 384 224l0-128c0-53-43-96-96-96s-96 43-96 96l0 30.2-151-151zm298.3 434l-41.4-41.4c-3.3 .2-6.5 .3-9.8 .3-79.5 0-144-64.5-144-144l0-10.2-43.6-43.6c-2.8 3.9-4.4 8.7-4.4 13.8l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c9.3-1.2 18.4-3 27.3-5.4z\"],\n \"square-pen\": [448, 512, [\"pen-square\", \"pencil-square\"], \"f14b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM325.8 139.7l14.4 14.4c15.6 15.6 15.6 40.9 0 56.6l-23.8 23.8-71-71 23.8-23.8c15.6-15.6 40.9-15.6 56.6 0zM119.9 289l91.5-91.6 71 71-91.6 91.5c-4.1 4.1-9.2 7-14.9 8.4l-60.1 15c-5.5 1.4-11.2-.2-15.2-4.2s-5.6-9.7-4.2-15.2l15-60.1c1.4-5.6 4.3-10.8 8.4-14.9z\"],\n \"hand-fist\": [384, 512, [9994, \"fist-raised\"], \"f6de\", \"M160 0c17.7 0 32 14.3 32 32l0 112-64 0 0-112c0-17.7 14.3-32 32-32zM32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 80-64 0 0-80zm192 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96zm96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 52.3-25.1 98.8-64 128l0 96c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-78.4c-17.3-7.9-33.2-18.8-46.9-32.5L37.5 357.5C13.5 333.5 0 300.9 0 267l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"],\n \"comment-sms\": [512, 512, [\"sms\"], \"f7cd\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM140.8 172.8l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6s18.6-41.6 41.6-41.6zm188.8 41.6c0-23 18.6-41.6 41.6-41.6l19.2 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-19.2 0c-5.3 0-9.6 4.3-9.6 9.6s4.3 9.6 9.6 9.6c23 0 41.6 18.6 41.6 41.6s-18.6 41.6-41.6 41.6l-25.6 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l25.6 0c5.3 0 9.6-4.3 9.6-9.6s-4.3-9.6-9.6-9.6c-23 0-41.6-18.6-41.6-41.6zm-98.3-33.8l24.7 41.1 24.7-41.1c3.7-6.2 11.1-9.1 18-7.2s11.7 8.2 11.7 15.4l0 102.4c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-44.6-8.7 14.5c-2.9 4.8-8.1 7.8-13.7 7.8s-10.8-3-13.7-7.8l-8.7-14.5 0 44.6c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-102.4c0-7.2 4.8-13.5 11.7-15.4s14.3 1 18 7.2z\"],\n \"sim-card\": [384, 512, [], \"f7c4\", \"M0 64C0 28.7 28.7 0 64 0L258.7 0c17 0 33.3 6.7 45.3 18.7L365.3 80c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 256c-17.7 0-32 14.3-32 32l0 40 128 0 0-72-96 0zM64 416c0 17.7 14.3 32 32 32l48 0 0-72-80 0 0 40zm256 0l0-40-128 0 0 72 96 0c17.7 0 32-14.3 32-32zm0-128c0-17.7-14.3-32-32-32l-48 0 0 72 80 0 0-40z\"],\n \"scale-balanced\": [640, 512, [9878, \"balance-scale\"], \"f24e\", \"M384 32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L398.4 96c-5.2 25.8-22.9 47.1-46.4 57.3l0 294.7 160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-23.5-10.3-41.2-31.6-46.4-57.3L128 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0c14.6-19.4 37.8-32 64-32s49.4 12.6 64 32zm55.6 288L584.4 320 512 195.8 439.6 320zM512 416c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zM126.8 195.8L54.4 320 199.3 320 126.8 195.8zM.9 337.1c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9S11.7 382 .9 337.1z\"],\n \"car\": [512, 512, [128664, \"automobile\"], \"f1b9\", \"M135.2 117.4l-26.1 74.6 293.8 0-26.1-74.6C372.3 104.6 360.2 96 346.6 96L165.4 96c-13.6 0-25.7 8.6-30.2 21.4zM39.6 196.8L74.8 96.3C88.3 57.8 124.6 32 165.4 32l181.2 0c40.8 0 77.1 25.8 90.6 64.3l35.2 100.5c23.2 9.6 39.6 32.5 39.6 59.2l0 192c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-320 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32L0 256c0-26.7 16.4-49.6 39.6-59.2zM128 304a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"crop-simple\": [512, 512, [\"crop-alt\"], \"f565\", \"M128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-208 0 0-352zM384 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-256c0-35.3-28.7-64-64-64l-208 0 0 64 208 0 0 352z\"],\n \"medal\": [448, 512, [127941], \"f5a2\", \"M224.3 128L139.7-12.9c-6.5-10.8-20.1-14.7-31.3-9.1L21.8 21.3C9.9 27.2 5.1 41.6 11 53.5L80.6 192.6c-30.1 33.9-48.3 78.5-48.3 127.4 0 106 86 192 192 192s192-86 192-192c0-48.9-18.3-93.5-48.3-127.4L437.6 53.5c5.9-11.9 1.1-26.3-10.7-32.2L340.2-22.1c-11.2-5.6-24.9-1.6-31.3 9.1L224.3 128zm30.8 142.5c1.4 2.8 4 4.7 7 5.1l50.1 7.3c7.7 1.1 10.7 10.5 5.2 16l-36.3 35.4c-2.2 2.2-3.2 5.2-2.7 8.3l8.6 49.9c1.3 7.6-6.7 13.5-13.6 9.9l-44.8-23.6c-2.7-1.4-6-1.4-8.7 0l-44.8 23.6c-6.9 3.6-14.9-2.2-13.6-9.9l8.6-49.9c.5-3-.5-6.1-2.7-8.3l-36.3-35.4c-5.6-5.4-2.5-14.8 5.2-16l50.1-7.3c3-.4 5.7-2.4 7-5.1l22.4-45.4c3.4-7 13.3-7 16.8 0l22.4 45.4z\"],\n \"scroll\": [576, 512, [128220], \"f70e\", \"M0 112C0 70.5 31.6 36.4 72 32.4l0-.4 280 0c53 0 96 43 96 96l0 176-176 0c-39.8 0-72 32.2-72 72l0 60c0 24.3-19.7 44-44 44s-44-19.7-44-44l0-228-64 0c-26.5 0-48-21.5-48-48l0-48zM236.8 480c7.1-13.1 11.2-28.1 11.2-44l0-60c0-13.3 10.7-24 24-24l248 0c13.3 0 24 10.7 24 24l0 24c0 44.2-35.8 80-80 80l-227.2 0zM80 80c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32z\"],\n \"file-excel\": [384, 512, [], \"f1c3\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM164 266.7c-7.4-11-22.3-14-33.3-6.7s-14 22.3-6.7 33.3L163.2 352 124 410.7c-7.4 11-4.4 25.9 6.7 33.3s25.9 4.4 33.3-6.7l28-42 28 42c7.4 11 22.3 14 33.3 6.7s14-22.3 6.7-33.3L220.8 352 260 293.3c7.4-11 4.4-25.9-6.7-33.3s-25.9-4.4-33.3 6.7l-28 42-28-42z\"],\n \"filter\": [512, 512, [], \"f0b0\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c9.2 9.2 22.9 11.9 34.9 6.9S320 492.9 320 480l0-178.7 182.6-182.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64z\"],\n \"drum\": [512, 512, [129345], \"f569\", \"M501.2 76.1c11.1-7.3 14.2-22.1 6.9-33.2s-22.1-14.2-33.2-6.9L370.2 104.5C335.8 98.7 297 96 256 96 114.6 96 0 128 0 208L0 368c0 31.3 27.4 58.8 72 78.7L72 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 119.4c33 8.9 71.1 14.5 112 16.1L232 376c0-13.3 10.7-24 24-24s24 10.7 24 24l0 103.5c40.9-1.6 79-7.2 112-16.1L392 344c0-13.3 10.7-24 24-24s24 10.7 24 24l0 102.7c44.6-19.9 72-47.4 72-78.7l0-160c0-41.1-30.2-69.5-78.8-87.4l67.9-44.5zM307.4 145.6l-64.6 42.3c-11.1 7.3-14.2 22.1-6.9 33.2s22.1 14.2 33.2 6.9l111.1-72.8c14.7 3.2 27.9 7 39.4 11.5 38.8 15.1 44.4 30.6 44.4 41.3 0 .8-2.7 17.2-46 35.9-38.9 16.8-96 28.1-162 28.1S132.9 260.7 94 243.9c-43.3-18.7-46-35.1-46-35.9 0-10.6 5.6-26.2 44.4-41.3 38.3-14.9 95.4-22.7 163.6-22.7 18 0 35.1 .5 51.4 1.6z\"],\n \"map-pin\": [320, 512, [128205], \"f276\", \"M192 284.4C256.1 269.9 304 212.5 304 144 304 64.5 239.5 0 160 0S16 64.5 16 144c0 68.5 47.9 125.9 112 140.4L128 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-195.6zM168 96c-30.9 0-56 25.1-56 56 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4 46.6-104 104-104 13.3 0 24 10.7 24 24s-10.7 24-24 24z\"],\n \"scale-unbalanced-flip\": [640, 512, [\"balance-scale-right\"], \"f516\", \"M118.2 62.4C101.5 56.8 92.4 38.6 98 21.9S121.7-3.9 138.5 1.6l113 37.7c13.9-23.5 39.6-39.3 68.9-39.3 44.2 0 80 35.8 80 80 0 3-.2 5.9-.5 8.8l122.6 40.9c16.8 5.6 25.8 23.7 20.2 40.5s-23.7 25.8-40.5 20.2L366.7 145.2c-4.5 3.2-9.3 5.9-14.4 8.2l0 326.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0 0-294.7c-21-9.2-37.2-27-44.2-49l-125.9-42zM200.8 288L128.3 163.8 55.9 288 200.8 288zm-72.4 96c-62.9 0-115.2-34-126-78.9-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1-10.8 44.8-63.1 78.9-126 78.9zm382.8-92.2l-72.4 124.2 144.9 0-72.4-124.2zm126 141.3C626.4 478 574.1 512 511.2 512s-115.2-34-126-78.9c-2.6-11 1-22.3 6.7-32.1l95.2-163.2c5-8.6 14.2-13.8 24.1-13.8s19.1 5.3 24.1 13.8l95.2 163.2c5.7 9.8 9.3 21.1 6.7 32.1z\"],\n \"arrows-to-circle\": [512, 512, [], \"e4bd\", \"M9.4 9.4C21.9-3.1 42.1-3.1 54.6 9.4L128 82.7 128 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.7 0-73.4-73.4C-3.1 42.1-3.1 21.9 9.4 9.4zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM502.6 54.6L429.3 128 448 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 18.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-45.3 448L384 429.3 384 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0 73.4 73.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0zM9.4 457.4L82.7 384 64 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-73.4 73.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3z\"],\n \"envelope\": [512, 512, [128386, 9993, 61443], \"f0e0\", \"M48 64c-26.5 0-48 21.5-48 48 0 15.1 7.1 29.3 19.2 38.4l208 156c17.1 12.8 40.5 12.8 57.6 0l208-156c12.1-9.1 19.2-23.3 19.2-38.4 0-26.5-21.5-48-48-48L48 64zM0 196L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-188-198.4 148.8c-34.1 25.6-81.1 25.6-115.2 0L0 196z\"],\n \"baby\": [384, 512, [], \"f77c\", \"M120 88a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM7.7 144.5c13-17.9 38-21.8 55.9-8.8L99.8 162c26.8 19.5 59.1 30 92.2 30s65.4-10.5 92.2-30l36.2-26.4c17.9-13 42.9-9 55.9 8.8s9 42.9-8.8 55.9l-36.2 26.4c-13.6 9.9-28.1 18.2-43.3 25l0 36.3-192 0 0-36.3c-15.2-6.7-29.7-15.1-43.3-25L16.5 200.3c-17.9-13-21.8-38-8.8-55.9zM97.5 329.3l60.6 53-26 37.2 24.3 24.3c15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-48-48C38 438.6 36.1 417 47.2 401.1l50.2-71.8zm128.5 53l60.6-53 50.2 71.8c11.1 15.9 9.2 37.5-4.5 51.2l-48 48c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l24.3-24.3-26-37.2z\"],\n \"square-caret-down\": [448, 512, [\"caret-square-down\"], \"f150\", \"M384 480c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0zM224 352c-6.7 0-13-2.8-17.6-7.7l-104-112c-6.5-7-8.2-17.2-4.4-25.9S110.5 192 120 192l208 0c9.5 0 18.2 5.7 22 14.4s2.1 18.9-4.4 25.9l-104 112c-4.5 4.9-10.9 7.7-17.6 7.7z\"],\n \"tent\": [512, 512, [], \"e57d\", \"M26.9 206.9L3.7 444.9C1.8 463.7 16.6 480 35.5 480l172.7 0c26.5 0 48-21.5 48-48l0-129c0-8.3 6.7-15 15-15 5.5 0 10.6 3 13.2 7.9l86.1 159c8.4 15.5 24.6 25.1 42.2 25.1l64.1 0c18.9 0 33.7-16.3 31.8-35.1L485.6 207.1c-1.9-19.6-12.8-37.3-29.5-47.8L280.9 48.3c-15.7-10-35.8-9.9-51.5 .1L56.1 159.2c-16.5 10.6-27.3 28.2-29.2 47.7z\"],\n \"a\": [384, 512, [97], \"41\", \"M221.5 51.7C216.6 39.8 204.9 32 192 32s-24.6 7.8-29.5 19.7c-93.3 224-146.7 352-160 384-6.8 16.3 .9 35 17.2 41.8s35-.9 41.8-17.2l31.8-76.3 197.3 0 31.8 76.3c6.8 16.3 25.5 24 41.8 17.2s24-25.5 17.2-41.8c-13.3-32-66.7-160-160-384zM264 320l-144 0 72-172.8 72 172.8z\"],\n \"parachute-box\": [512, 512, [], \"f4cd\", \"M128 224C128 152.2 144.3 88.4 169.5 43.4 195.1-2.4 226.6-24 256-24s60.9 21.6 86.5 67.4C367.7 88.4 384 152.2 384 224l-104 0 0 96 8 0c9.3 0 18.1 2 26 5.5l118.4-101.5-.5 0c0-78.4-17.7-150.6-47.6-204-6.1-11-12.9-21.3-20.3-30.9 86.5 35.9 147.8 115.1 147.8 218.9 0 7-3.1 13.7-8.4 18.2L347.4 360.1c3 7.4 4.6 15.4 4.6 23.9l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-64c0-8.4 1.6-16.5 4.6-23.9L8.4 226.2C3.1 221.7 0 215 0 208 0 104.2 61.3 24.9 147.8-10.9 140.5-1.4 133.7 9 127.6 20 97.7 73.4 80 145.6 80 224l-.5 0 118.4 101.5c8-3.5 16.8-5.5 26-5.5l8 0 0-96-104 0z\"],\n \"cart-arrow-down\": [640, 512, [], \"f218\", \"M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 187.2 0 0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1 177.4 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\n \"bridge-circle-exclamation\": [576, 512, [], \"e4ca\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"cloud-arrow-up\": [576, 512, [62338, \"cloud-upload\", \"cloud-upload-alt\"], \"f0ee\", \"M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM305 191c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"],\n \"at\": [512, 512, [61946], \"40\", \"M256 64C150 64 64 150 64 256s86 192 192 192c17.7 0 32 14.3 32 32s-14.3 32-32 32C114.6 512 0 397.4 0 256S114.6 0 256 0 512 114.6 512 256l0 32c0 53-43 96-96 96-29.3 0-55.6-13.2-73.2-33.9-22.8 21-53.3 33.9-86.8 33.9-70.7 0-128-57.3-128-128s57.3-128 128-128c27.9 0 53.7 8.9 74.7 24.1 5.7-5 13.1-8.1 21.3-8.1 17.7 0 32 14.3 32 32l0 112c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-106-86-192-192-192zm64 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"],\n \"indian-rupee-sign\": [320, 512, [\"indian-rupee\", \"inr\"], \"e1bc\", \"M0 64C0 46.3 14.3 32 32 32l264 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-76.7 0c17.7 19.8 30.1 44.6 34.7 72l42 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-42 0c-10.4 62.2-60.8 110.9-123.8 118.9L274.6 422c14.4 10.3 17.7 30.3 7.4 44.6s-30.3 17.7-44.6 7.4L13.4 314C2.1 306-2.7 291.5 1.5 278.2S18.1 256 32 256l80 0c35.8 0 66.1-23.5 76.3-56L24 200c-13.3 0-24-10.7-24-24s10.7-24 24-24l164.3 0c-10.2-32.5-40.5-56-76.3-56L32 96C14.3 96 0 81.7 0 64z\"],\n \"truck\": [576, 512, [128666, 9951], \"f0d1\", \"M0 96C0 60.7 28.7 32 64 32l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L557.3 192c12 12 18.7 28.3 18.7 45.3L576 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64L64 448c-35.3 0-64-28.7-64-64L0 96zM512 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM192 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"chalkboard-user\": [640, 512, [\"chalkboard-teacher\"], \"f51c\", \"M128 96c0-35.3 28.7-64 64-64l352 0c35.3 0 64 28.7 64 64l0 240-96 0 0-16c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 16-129.1 0c10.9-18.8 17.1-40.7 17.1-64 0-70.7-57.3-128-128-128-5.4 0-10.8 .3-16 1l0-49zM333 448c-5.1-24.2-16.3-46.1-32.1-64L608 384c0 35.3-28.7 64-64 64l-211 0zM64 272a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM0 480c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32z\"],\n \"user-check\": [640, 512, [], \"f4fc\", \"M286 304c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L78 512c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3l59.4 0zM585.7 105.9c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5L522.1 274.9c-4.2 5.7-10.7 9.4-17.7 9.8s-14-2.2-18.9-7.3l-46.4-48c-9.2-9.5-9-24.7 .6-33.9 9.5-9.2 24.7-8.9 33.9 .6l26.5 27.4 85.6-117.7zM256.3 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240z\"],\n \"user-ninja\": [448, 512, [129399], \"f504\", \"M352 128c0 70.7-57.3 128-128 128-57.2 0-105.6-37.5-122-89.3-1.1 1.3-2.2 2.6-3.5 3.8-15.8 15.8-38.8 20.7-53.6 22.1-8.1 .8-14.6-5.7-13.8-13.8 1.4-14.7 6.3-37.8 22.1-53.6 5.8-5.8 12.6-10.1 19.6-13.4-7-3.2-13.8-7.6-19.6-13.4-15.8-15.8-20.7-38.8-22.1-53.6-.8-8.1 5.7-14.6 13.8-13.8 14.7 1.4 37.8 6.3 53.6 22.1 4.8 4.8 8.7 10.4 11.7 16.1 21.3-41.2 64.3-69.4 113.8-69.4 70.7 0 128 57.3 128 128zM144 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16s-7.2-16-16-16L160 96c-8.8 0-16 7.2-16 16zm-1.4 211l67 50.2c8.5 6.4 20.3 6.4 28.8 0l67-50.2c6.5-4.9 15.2-6.2 22.6-2.8 61.4 28.2 104.1 90.2 104.1 162.1 0 16.4-13.3 29.7-29.7 29.7L45.7 512c-16.4 0-29.7-13.3-29.7-29.7 0-72 42.7-134 104.1-162.1 7.4-3.4 16.1-2.1 22.6 2.8z\"],\n \"plant-wilt\": [512, 512, [], \"e5aa\", \"M344-32c66.3 0 120 53.7 120 120l0 6.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3c-40.7-36.8-66-83.7-66-111.7 0-35.6 18.7-64.7 48-76.9l0-6.2c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 424c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-296c0-30.9-25.1-56-56-56s-56 25.1-56 56l0 38.2c29.3 12.2 48 41.3 48 76.9 0 27.9-25.3 74.8-66 111.7-3.8 3.5-8.8 5.3-14 5.3s-10.2-1.8-14-5.3C25.3 405.9 0 359 0 331.1 0 295.4 18.7 266.4 48 254.2L48 216c0-66.3 53.7-120 120-120 20.2 0 39.3 5 56 13.8L224 88c0-66.3 53.7-120 120-120z\"],\n \"weight-scale\": [448, 512, [\"weight\"], \"f496\", \"M116.6 192c-3-10.1-4.6-20.9-4.6-32 0-61.9 50.1-112 112-112S336 98.1 336 160c0 11.1-1.6 21.9-4.6 32l-71 0 24.6-44.3c6.4-11.6 2.3-26.2-9.3-32.6s-26.2-2.3-32.6 9.3l-37.6 67.7-88.8 0zM128 32L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64l-64 0C293.3 11.9 260 0 224 0s-69.3 11.9-96 32z\"],\n \"caret-right\": [256, 512, [], \"f0da\", \"M249.3 235.8c10.2 12.6 9.5 31.1-2.2 42.8l-128 128c-9.2 9.2-22.9 11.9-34.9 6.9S64.5 396.9 64.5 384l0-256c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l128 128 2.2 2.4z\"],\n \"florin-sign\": [384, 512, [], \"e184\", \"M314.7 32c-38.8 0-73.7 23.3-88.6 59.1L170.7 224 64 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l80 0-45.1 108.3c-5 11.9-16.6 19.7-29.5 19.7L32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l37.3 0c38.8 0 73.7-23.3 88.6-59.1L213.3 288 320 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 45.1-108.3c5-11.9 16.6-19.7 29.5-19.7L352 96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-37.3 0z\"],\n \"bell\": [448, 512, [128276, 61602], \"f0f3\", \"M224 0c-17.7 0-32 14.3-32 32l0 3.2C119 50 64 114.6 64 192l0 21.7c0 48.1-16.4 94.8-46.4 132.4L7.8 358.3C2.7 364.6 0 372.4 0 380.5 0 400.1 15.9 416 35.5 416l376.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C400.4 308.5 384 261.8 384 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32zM162 464c7.1 27.6 32.2 48 62 48s54.9-20.4 62-48l-124 0z\"],\n \"lari-sign\": [384, 512, [], \"e1c8\", \"M144 0c13.3 0 24 10.7 24 24l0 41.5c7.9-1 15.9-1.5 24-1.5s16.1 .5 24 1.5L216 24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 54c58.9 23.8 103.2 76 116.2 139.7 3.5 17.3-7.7 34.2-25 37.7s-34.2-7.7-37.7-25c-6.7-33.2-26.4-61.8-53.4-80.2l0 81.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-101.8c-7.8-1.5-15.8-2.2-24-2.2s-16.2 .8-24 2.2L168 232c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-81.8c-33.8 23-56 61.9-56 105.8 0 70.7 57.3 128 128 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l16.9 0C18.5 350 0 305.2 0 256 0 175.4 49.6 106.4 120 78l0-54c0-13.3 10.7-24 24-24z\"],\n \"mill-sign\": [384, 512, [], \"e1ed\", \"M297-22.2c12.3 5 18.2 19 13.2 31.3l-29 71.3C338.8 85.1 384 133.3 384 192l0 208c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-208c0-26.5-21.5-48-48-48-6.4 0-12.5 1.2-18 3.5l-30 73.8 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-21.2-57.8 142.2c-5 12.3-19 18.2-31.3 13.2s-18.2-19-13.2-31.3L160 251.3 160 192c0-26.5-21.5-48-48-48s-48 21.5-48 48l0 208c0 17.7-14.3 32-32 32S0 417.7 0 400L0 112c0-17.7 14.3-32 32-32 10.9 0 20.5 5.4 26.3 13.7 16-8.7 34.3-13.7 53.7-13.7 31.3 0 59.7 12.9 80 33.6 9.6-9.8 20.9-17.8 33.5-23.5L265.8-9c5-12.3 19-18.2 31.3-13.2z\"],\n \"person-snowboarding\": [576, 512, [127938, \"snowboarding\"], \"f7ce\", \"M424.5 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM166.4 45.5c10.2-14.4 30.2-17.9 44.6-7.7l272 192c14.4 10.2 17.9 30.2 7.7 44.6s-30.2 17.9-44.6 7.7l-92.2-65.1-62.2 53.3 32.1 26.7c18.2 15.2 28.8 37.7 28.8 61.5l0 87.8 77.5 15.2c6.2 1.2 12.6 .9 18.7-.8l41.2-11.8c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-41.2 11.8c-13.4 3.8-27.4 4.4-41.1 1.8L87.1 443.3c-17.2-3.4-33-11.8-45.3-24.1L15.5 393c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l26.2 26.2c5.6 5.6 12.8 9.4 20.6 11l64.2 12.6 0-123.7c0-27.7 12-54 32.8-72.2l69-60.4-88.2-62.3C159.6 80 156.2 60 166.4 45.5zm58.1 375.7l64 12.5 0-75.3c0-4.7-2.1-9.3-5.8-12.3l-58.2-48.5 0 123.6z\"],\n \"tty\": [512, 512, [\"teletype\"], \"f1e4\", \"M450.2 266.8c15.8 6.5 34.1 .3 42.6-14.6l2.4-4.2c27.9-48.9 23.6-118.8-31.3-154.5-126-82-289.6-82-415.6 0-54.9 35.7-59.3 105.7-31.3 154.5l2.4 4.2c8.5 14.9 26.7 21.1 42.6 14.6l81.9-33.7c13.9-5.7 22.4-19.9 20.9-34.9l-5.1-51c62.5-21 130.8-19.9 192.6 3.3l-4.8 47.7c-1.5 15 7 29.2 20.9 34.9l81.9 33.7zM32 352a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm96 0a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM64 416a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm352 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zM256 320a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64 32a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm128-32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM128 448c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32z\"],\n \"users-rectangle\": [576, 512, [], \"e594\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm224 72a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 152c53 0 96 43 96 96l0 24c0 13.3-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24l0-24c0-53 43-96 96-96zm96-64a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 272.3c-15.2 22.8-24 50.2-24 79.7l0 24c0 8.4 1.4 16.5 4.1 24l-46.8 0C89.6 400 80 390.4 80 378.7L80 368c0-50.3 38.7-91.6 88-95.7zM427.9 400c2.7-7.5 4.1-15.6 4.1-24l0-24c0-29.5-8.8-56.9-24-79.7 49.3 4.1 88 45.3 88 95.7l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-46.8 0zM96 192a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\n \"mobile\": [384, 512, [128241, \"mobile-android\", \"mobile-phone\"], \"f3ce\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zm72 416l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"arrows-turn-to-dots\": [448, 512, [], \"e4c1\", \"M265.4-6.6c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L285.3 64 352 64c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32c0-17.7-14.3-32-32-32l-66.7 0 25.4 25.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3l80-80zm-82.7 272l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L162.7 400 96 400c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 481.7 0 464l0-32c0-53 43-96 96-96l66.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0zM320 368a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM64 160a64 64 0 1 1 0-128 64 64 0 1 1 0 128z\"],\n \"exclamation\": [128, 512, [10069, 10071, 61738], \"21\", \"M64 432c22.1 0 40 17.9 40 40s-17.9 40-40 40-40-17.9-40-40c0-22.1 17.9-40 40-40zM64 0c26.5 0 48 21.5 48 48 0 .6 0 1.1 0 1.7l-16 304c-.9 17-15 30.3-32 30.3S33 370.7 32 353.7L16 49.7c0-.6 0-1.1 0-1.7 0-26.5 21.5-48 48-48z\"],\n \"church\": [512, 512, [9962], \"f51d\", \"M280-8c0-13.3-10.7-24-24-24S232-21.3 232-8l0 24-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 48-98.6 65.8C120 186.7 112 201.6 112 217.7l0 38.3-79.8 45.6C12.3 313 0 334.2 0 357.1L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-90.9c0-23-12.3-44.2-32.2-55.6L400 256 400 217.7c0-16-8-31-21.4-39.9l-98.6-65.8 0-48 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-24zM256 320c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z\"],\n \"toggle-off\": [576, 512, [], \"f204\", \"M384 128c70.7 0 128 57.3 128 128S454.7 384 384 384l-192 0c-70.7 0-128-57.3-128-128s57.3-128 128-128l192 0zM576 256c0-106-86-192-192-192L192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192zM192 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"],\n \"shoe-prints\": [576, 512, [], \"f54b\", \"M296 192c-21.1-12.1-42.3-24.2-72-29.3l0-140.3C257.7 13 311.4 0 352 0 448 0 576 48 576 128s-119.6 96-176 96c-48 0-76-16-104-32zM128 32l48 0 0 128-48 0c-35.3 0-64-28.7-64-64s28.7-64 64-64zM232 320c28-16 56-32 104-32 56.4 0 176 16 176 96S384 512 288 512c-40.5 0-94.3-13-128-22.4l0-140.3c29.7-5.2 50.9-17.3 72-29.4zM64 480c-35.3 0-64-28.7-64-64s28.7-64 64-64l48 0 0 128-48 0z\"],\n \"file-circle-exclamation\": [576, 512, [], \"e4eb\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"wallet\": [512, 512, [], \"f555\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L72 128c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 32zM416 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"message\": [512, 512, [\"comment-alt\"], \"f27a\", \"M0 352L0 128C0 75 43 32 96 32l320 0c53 0 96 43 96 96l0 224c0 53-43 96-96 96l-120 0c-5.2 0-10.2 1.7-14.4 4.8L166.4 539.2c-4.2 3.1-9.2 4.8-14.4 4.8-13.3 0-24-10.7-24-24l0-72-32 0c-53 0-96-43-96-96z\"],\n \"trophy\": [512, 512, [127942], \"f091\", \"M144.3 0l224 0c26.5 0 48.1 21.8 47.1 48.2-.2 5.3-.4 10.6-.7 15.8l49.6 0c26.1 0 49.1 21.6 47.1 49.8-7.5 103.7-60.5 160.7-118 190.5-15.8 8.2-31.9 14.3-47.2 18.8-20.2 28.6-41.2 43.7-57.9 51.8l0 73.1 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-73.1c-16-7.7-35.9-22-55.3-48.3-18.4-4.8-38.4-12.1-57.9-23.1-54.1-30.3-102.9-87.4-109.9-189.9-1.9-28.1 21-49.7 47.1-49.7l49.6 0c-.3-5.2-.5-10.4-.7-15.8-1-26.5 20.6-48.2 47.1-48.2zM101.5 112l-52.4 0c6.2 84.7 45.1 127.1 85.2 149.6-14.4-37.3-26.3-86-32.8-149.6zM380 256.8c40.5-23.8 77.1-66.1 83.3-144.8L411 112c-6.2 60.9-17.4 108.2-31 144.8z\"],\n \"face-dizzy\": [512, 512, [\"dizzy\"], \"f567\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM134.1 153.9l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zm192 0l25.9 25.9 25.9-25.9c7.8-7.8 20.5-7.8 28.3 0s7.8 20.5 0 28.3l-25.9 25.9 25.9 25.9c7.8 7.8 7.8 20.5 0 28.3s-20.5 7.8-28.3 0l-25.9-25.9-25.9 25.9c-7.8 7.8-20.5 7.8-28.3 0s-7.8-20.5 0-28.3l25.9-25.9-25.9-25.9c-7.8-7.8-7.8-20.5 0-28.3s20.5-7.8 28.3 0zM256 304a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"bacteria\": [640, 512, [], \"e059\", \"M256-32c13.3 0 24 10.7 24 24l0 11c8.6 2.2 16.9 5.6 24.8 10.3L311 7c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L345 151c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L217 279c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L73 313c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L39 169c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L103 105c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9S191.6-2.3 201 7l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24zM128 256a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM240 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm296 40l0 11c8.6 2.2 16.9 5.6 24.8 10.3L567 199c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-6.3 6.3c4.6 7.8 8 16.2 10.3 24.8l11 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11 0c-2.2 8.6-5.6 16.9-10.3 24.8L601 343c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1-30.1 30.1 4.1 4.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-4.1-4.1c-10 10-20 20-30.1 30.1L473 471c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-6.3-6.3c-7.8 4.6-16.2 8-24.8 10.3l0 11c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-11c-8.6-2.2-16.9-5.6-24.8-10.3L329 505c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l6.3-6.3c-4.6-7.8-8-16.2-10.3-24.8l-11 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11 0c2.2-8.6 5.6-16.9 10.3-24.8L295 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1c10-10 20-20 30.1-30.1L359 297c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l4.1 4.1 30.1-30.1-4.1-4.1c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l6.3 6.3c7.8-4.6 16.2-8 24.8-10.3l0-11c0-13.3 10.7-24 24-24s24 10.7 24 24zM448 384a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"ear-deaf\": [512, 512, [\"deaf\", \"deafness\", \"hard-of-hearing\"], \"f2a4\", \"M502.6 54.6l-40 40c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l40-40c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm-320 320l-128 128c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l128-128c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zm0 80c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"],\n \"people-arrows\": [512, 512, [\"people-arrows-left-right\"], \"e068\", \"M32 64A64 64 0 1 1 160 64 64 64 0 1 1 32 64zM0 224c0-35.3 28.7-64 64-64l64 0c3.2 0 6.4 .2 9.5 .7L93.1 205.1C65 233.2 65 278.8 93.1 306.9l56 56c3.4 3.4 7 6.4 10.9 9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-120.6C12.9 332.4 0 311.7 0 288l0-64zM352 64a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm66.9 141.1l-44.4-44.4c3.1-.5 6.3-.7 9.5-.7l64 0c35.3 0 64 28.7 64 64l0 64c0 23.7-12.9 44.4-32 55.4L480 464c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1c3.9-2.6 7.5-5.6 10.9-9l56-56c28.1-28.1 28.1-73.7 0-101.8zM302.8 177.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S288 321.7 288 312l0-24-64 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S224 190.3 224 200l0 24 64 0 0-24c0-9.7 5.8-18.5 14.8-22.2z\"],\n \"hands-clapping\": [512, 512, [], \"e1a8\", \"M344 8l0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64c0-13.3 10.7-24 24-24S344-5.3 344 8zM220 10.7l32 48c7.4 11 4.4 25.9-6.7 33.3s-25.9 4.4-33.3-6.7l-32-48c-7.4-11-4.4-25.9 6.7-33.3S212.6-.3 220 10.7zM135 119c9.4-9.4 24.6-9.4 33.9 0L292.7 242.7c10.1 10.1 27.3 2.9 27.3-11.3l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4-64 38.4-145.8 28.3-198.5-24.4L7 361c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l53 53c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L23 265c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l93 93c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1L55 185c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l117 117c6.1 6.1 16 6.1 22.1 0s6.1-16 0-22.1l-93-93c-9.4-9.4-9.4-24.6 0-33.9zM433.1 484.9c-24.2 14.5-50.9 22.1-77.7 23.1 48.1-39.6 76.6-99 76.6-162.4l0-98.1c8.2-.1 16-6.4 16-16l0-39.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 153.6c0 57.1-30 110-78.9 139.4zM453.3 4c11 7.4 14 22.3 6.7 33.3l-32 48c-7.4 11-22.3 14-33.3 6.7s-14-22.3-6.7-33.3l32-48c7.4-11 22.3-14 33.3-6.7z\"],\n \"virus-covid-slash\": [576, 512, [], \"e4a9\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-83-83 11.4-11.4c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-11.3 11.3-23.8-23.8c17.9-23.5 29.9-51.7 34.1-82.3l33.6 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-33.6 0c-4.2-30.7-16.3-58.8-34.1-82.3l23.8-23.8 11.3 11.3c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L440.7 46.7c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l11.3 11.3-23.8 23.8C370.8 97.9 342.7 85.8 312 81.6l0-33.6 16 0c13.3 0 24-10.7 24-24S341.3 0 328 0L248 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.6c-30.7 4.2-58.8 16.3-82.3 34.1L157.9 92 169.2 80.6c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L123.9 58.1 41-24.9zM113.6 232l-33.6 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 33.6 0c4.2 30.7 16.3 58.8 34.1 82.3l-23.8 23.8-11.3-11.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56.6 56.6c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-11.3-11.3 23.8-23.8c23.5 17.9 51.7 29.9 82.3 34.1l0 33.6-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16 0 0-33.6c13.4-1.8 26.4-5.2 38.7-9.9L123.5 193.3c-4.7 12.3-8 25.2-9.9 38.7z\"],\n \"calendar-days\": [448, 512, [\"calendar-alt\"], \"f073\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM64 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm128 0l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM64 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm144-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"],\n \"diamond-turn-right\": [512, 512, [\"directions\"], \"f5eb\", \"M215 17L17 215C6.1 225.9 0 240.6 0 256s6.1 30.1 17 41L215 495c10.9 10.9 25.6 17 41 17s30.1-6.1 41-17L495 297c10.9-10.9 17-25.6 17-41s-6.1-30.1-17-41L297 17C286.1 6.1 271.4 0 256 0s-30.1 6.1-41 17zM385 257l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-78.1 0c-13.3 0-24 10.7-24 24l0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40c0-39.8 32.2-72 72-72l78.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z\"],\n \"hand-point-up\": [384, 512, [9757], \"f0a6\", \"M32 32C32 14.3 46.3 0 64 0S96 14.3 96 32l0 208-64 0 0-208zM224 192c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-64-64c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-17.7 14.3-32 32-32zm160 96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm-96 88l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L37.5 453.5C13.5 429.5 0 396.9 0 363l0-27c0-35.3 28.7-64 64-64l88 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72z\"],\n \"bezier-curve\": [640, 512, [], \"f55b\", \"M296 136l0-48 48 0 0 48-48 0zM288 32c-26.5 0-48 21.5-48 48l0 4-118.4 0C111.2 62.7 89.3 48 64 48 28.7 48 0 76.7 0 112s28.7 64 64 64c25.3 0 47.2-14.7 57.6-36l66.9 0c-58.9 39.6-98.9 105-104 180L80 320c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-3.3 0c5.9-67 48.5-123.4 107.5-149.1 8.6 12.7 23.2 21.1 39.8 21.1l64 0c16.6 0 31.1-8.4 39.8-21.1 59 25.7 101.6 82.1 107.5 149.1l-3.3 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-4.5 0c-5-75-45.1-140.4-104-180l66.9 0c10.4 21.3 32.3 36 57.6 36 35.3 0 64-28.7 64-64s-28.7-64-64-64c-25.3 0-47.2 14.7-57.6 36l-118.4 0 0-4c0-26.5-21.5-48-48-48l-64 0zM88 376l48 0 0 48-48 0 0-48zm416 48l0-48 48 0 0 48-48 0z\"],\n \"person-half-dress\": [384, 512, [], \"e548\", \"M143.4-3.9c9.7-16.8 27.8-28.1 48.6-28.1 30.9 0 56 25.1 56 56 0 25.4-16.9 46.8-40 53.7l0 0c-5.1 1.5-10.4 2.3-16 2.3-30.9 0-56-25.1-56-56l0 0c0-10.1 2.7-19.7 7.4-27.9zM318.3 299.1L272 236.7 272 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160 0-.4 0-238.6c36.2 4.4 69.2 23.4 91.2 53l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 113l0 399c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c22-29.6 55.1-48.6 91.2-53z\"],\n \"square-poll-horizontal\": [448, 512, [\"poll-h\"], \"f682\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM256 152c0 13.3-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24zm72 80c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l208 0zM192 360c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24z\"],\n \"school-circle-xmark\": [640, 512, [], \"e56d\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"hand-lizard\": [512, 512, [], \"f258\", \"M0 112C0 85.5 21.5 64 48 64l238.5 0c36.8 0 71.2 18 92.1 48.2l113.5 164c13 18.7 19.9 41 19.9 63.8l0 76c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-13.8-78.1-50.2-161.9 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l128 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L48 160c-26.5 0-48-21.5-48-48z\"],\n \"chalkboard\": [576, 512, [\"blackboard\"], \"f51b\", \"M96 64c-35.3 0-64 28.7-64 64l0 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-256c0-35.3-28.7-64-64-64L96 64zM480 384l-64 0 0-32c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32l0 32-160 0 0-256 384 0 0 256z\"],\n \"up-right-from-square\": [512, 512, [\"external-link-alt\"], \"f35d\", \"M290.4 19.8C295.4 7.8 307.1 0 320 0L480 0c17.7 0 32 14.3 32 32l0 160c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L400 157.3 246.6 310.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L354.7 112 297.4 54.6c-9.2-9.2-11.9-22.9-6.9-34.9zM0 176c0-44.2 35.8-80 80-80l80 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-80 0c-8.8 0-16 7.2-16 16l0 256c0 8.8 7.2 16 16 16l256 0c8.8 0 16-7.2 16-16l0-80c0-17.7 14.3-32 32-32s32 14.3 32 32l0 80c0 44.2-35.8 80-80 80L80 512c-44.2 0-80-35.8-80-80L0 176z\"],\n \"square-full\": [512, 512, [128997, 128998, 128999, 129000, 129001, 129002, 129003, 11035, 11036], \"f45c\", \"M0 64C0 28.7 28.7 0 64 0L448 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64z\"],\n \"clover\": [512, 512, [], \"e139\", \"M310.4 16C346.6 16 376 45.4 376 81.7l0 5.2c0 11.2-2.7 22.3-7.8 32.2l-2.3 4.2-20.1 33.5c-1.1 1.9-1.2 3.4-1.1 4.5 .2 1.3 .9 2.7 2.1 3.9s2.6 1.9 3.9 2.1c1.1 .2 2.6 .1 4.5-1.1l33.5-20.1 4.2-2.3c10-5.1 21-7.8 32.2-7.8l5.2 0c36.2 0 65.6 29.4 65.6 65.7 0 17.4-6.9 34.1-19.2 46.4l-1.3 1.3c-3.7 3.7-3.7 9.6 0 13.3l1.3 1.3c12.3 12.3 19.2 29 19.2 46.4 0 36.2-29.4 65.6-65.6 65.6l-5.2 0c-12.8 0-25.5-3.5-36.5-10.1l-33.5-20.1c-1.9-1.1-3.4-1.2-4.5-1.1-1.3 .2-2.7 .9-3.9 2.1s-1.9 2.6-2.1 3.9c-.2 1.1-.1 2.6 1.1 4.5l20.1 33.5c6.6 11 10.1 23.6 10.1 36.5l0 5.2c0 36.2-29.4 65.6-65.6 65.6-17.4 0-34.1-6.9-46.4-19.2l-1.3-1.3c-3.7-3.7-9.6-3.7-13.3 0l-1.3 1.3c-12.3 12.3-29 19.2-46.4 19.2-36.2 0-65.6-29.4-65.7-65.6l0-5.2c0-12.8 3.5-25.5 10.1-36.5l20.1-33.5c1.1-1.9 1.2-3.4 1.1-4.5-.2-1.3-.9-2.7-2.1-3.9s-2.6-1.9-3.9-2.1c-.5-.1-1.2-.1-1.9 0l-2.5 1-33.5 20.1c-11 6.6-23.6 10.1-36.5 10.1l-5.2 0C45.4 376 16 346.6 16 310.4 16 293 22.9 276.3 35.2 264l1.3-1.3 1.2-1.5c2.1-3.1 2.1-7.2 0-10.3l-1.2-1.5-1.3-1.3C22.9 235.8 16 219.1 16 201.7 16 165.4 45.4 136 81.7 136l5.2 0c12.8 0 25.5 3.5 36.5 10.1l33.5 20.1 2.5 1c.7 .1 1.4 .1 1.9 .1 1.3-.2 2.7-.9 3.9-2.1s1.9-2.6 2.1-3.9c.1-.5 .1-1.2-.1-1.9l-1-2.5-20.1-33.5c-6.6-11-10.1-23.6-10.1-36.5l0-5.2c0-36.2 29.4-65.7 65.7-65.7 17.4 0 34.1 6.9 46.4 19.2l1.3 1.3c3.7 3.6 9.6 3.7 13.3 0l1.3-1.3 4.8-4.4C280.5 21.3 295.1 16 310.4 16z\"],\n \"teeth-open\": [512, 512, [], \"f62f\", \"M64 32C28.7 32 0 60.7 0 96l0 80c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-80c0-35.3-28.7-64-64-64L64 32zm0 272c-35.3 0-64 28.7-64 64l0 48c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-48c0-35.3-28.7-64-64-64L64 304zm80-160c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zm128 0c0-26.5 21.5-48 48-48s48 21.5 48 48l0 24c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-24zM80 112c17.7 0 32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24c0-17.7 14.3-32 32-32zm320 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 24c0 13.3-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24l0-24zM48 384l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32zm144 48c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm128 0c-26.5 0-48-21.5-48-48l0-16c0-8.8 7.2-16 16-16l64 0c8.8 0 16 7.2 16 16l0 16c0 26.5-21.5 48-48 48zm112-16c-17.7 0-32-14.3-32-32l0-16c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 16c0 17.7-14.3 32-32 32z\"],\n \"bars-staggered\": [512, 512, [\"reorder\", \"stream\"], \"f550\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM64 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"],\n \"warehouse\": [576, 512, [], \"f494\", \"M0 142.1L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-240c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32l0 240c0 17.7 14.3 32 32 32s32-14.3 32-32l0-337.9c0-27.5-17.6-52-43.8-60.7L303.2 5.1c-9.9-3.3-20.5-3.3-30.4 0L43.8 81.4C17.6 90.1 0 114.6 0 142.1zM464 256l-352 0 0 64 352 0 0-64zM112 416l352 0 0-64-352 0 0 64zm352 32l-352 0 0 64 352 0 0-64z\"],\n \"swatchbook\": [512, 512, [], \"f5c3\", \"M0 48C0 21.5 21.5 0 48 0l96 0c26.5 0 48 21.5 48 48l0 368c0 53-43 96-96 96S0 469 0 416L0 48zM240 409.6l0-271.5 48.1-48.1c18.7-18.7 49.1-18.7 67.9 0l67.9 67.9c18.7 18.7 18.7 49.1 0 67.9L240 409.6zM205.5 512l192-192 66.6 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-258.5 0zM80 64c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L80 64zM64 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 440a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"campground\": [512, 512, [9978], \"f6bb\", \"M344.8 52.3c11.2-13.7 9.2-33.8-4.5-45s-33.8-9.2-45 4.5l-39.2 48-39.2-48C205.6-1.9 185.4-4 171.7 7.2s-15.7 31.4-4.5 45l47.4 58-202 246.9C4.5 367.1 0 379.6 0 392.6L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-39.4c0-12.9-4.5-25.5-12.7-35.5l-202-246.9 47.4-58zM256 288l112 128-224 0 112-128z\"],\n \"person-walking-arrow-right\": [576, 512, [], \"e552\", \"M104.5 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm-8 181.3L73.9 227.9c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l35.1-35.1c22.8-22.8 53.6-35.6 85.8-35.6 36.9 0 71.8 16.8 94.8 45.6L262.3 180c6.1 7.6 15.3 12 25 12l33.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-33.2 0c-29.2 0-56.7-13.3-75-36l-3.8-4.7 0 115.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8L130 347.5c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zM96.6 371c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5L55.1 534.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L96.6 371zM505.5 345c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72z\"],\n \"glasses\": [576, 512, [], \"f530\", \"M143.3 96c-14 0-26.5 9.2-30.6 22.6L70.4 256 224 256c17.7 0 32 14.3 32 32l64 0c0-17.7 14.3-32 32-32l153.6 0-42.3-137.4C459.2 105.2 446.8 96 432.7 96L400 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l32.7 0c42.1 0 79.4 27.5 91.8 67.8l45.4 147.5c4.1 13.2 6.1 26.9 6.1 40.7l0 96c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-32-64 0 0 32c0 53-43 96-96 96l-64 0c-53 0-96-43-96-96l0-96c0-13.8 2.1-27.5 6.1-40.7L51.5 99.8C63.9 59.5 101.1 32 143.3 32L176 32c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32.7 0zM64 320l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64-128 0zm416 96c17.7 0 32-14.3 32-32l0-64-128 0 0 64c0 17.7 14.3 32 32 32l64 0z\"],\n \"circle-pause\": [512, 512, [62092, \"pause-circle\"], \"f28b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 192l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n \"memory\": [512, 512, [], \"f538\", \"M64 64C28.7 64 0 92.7 0 128l0 7.4C0 142.2 4.4 148 10.1 151.7 23.3 160.3 32 175.1 32 192s-8.7 31.7-21.9 40.3C4.4 236 0 241.8 0 248.6l0 55.4 512 0 0-55.4c0-6.8-4.4-12.6-10.1-16.3-13.2-8.6-21.9-23.4-21.9-40.3s8.7-31.7 21.9-40.3c5.7-3.7 10.1-9.5 10.1-16.3l0-7.4c0-35.3-28.7-64-64-64L64 64zM512 416l0-64-512 0 0 64c0 17.7 14.3 32 32 32l64 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 88 0 0-24c0-13.3 10.7-24 24-24s24 10.7 24 24l0 24 64 0c17.7 0 32-14.3 32-32zM160 160l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm128 0l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n \"gift\": [512, 512, [127873], \"f06b\", \"M321.5 68.8C329.1 55.9 342.9 48 357.8 48l2.2 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-73.3 0 34.8-59.2zm-131 0l34.8 59.2-73.3 0c-22.1 0-40-17.9-40-40s17.9-40 40-40l2.2 0c14.9 0 28.8 7.9 36.3 20.8zm89.6-24.3l-24.1 41-24.1-41C215.7 16.9 186.1 0 154.2 0L152 0c-48.6 0-88 39.4-88 88 0 14.4 3.5 28 9.6 40L32 128c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-41.6 0c6.1-12 9.6-25.6 9.6-40 0-48.6-39.4-88-88-88l-2.2 0c-31.9 0-61.5 16.9-77.7 44.4zM480 272l-200 0 0 208 136 0c35.3 0 64-28.7 64-64l0-144zm-248 0l-200 0 0 144c0 35.3 28.7 64 64 64l136 0 0-208z\"],\n \"money-bill-wheat\": [512, 512, [], \"e52a\", \"M176-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zM56 0l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 48C42.7 48 32 37.3 32 24S42.7 0 56 0zM24 72l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 120C10.7 120 0 109.3 0 96S10.7 72 24 72zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 0c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80zM400-16c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80 0-8.8 7.2-16 16-16zm80 144c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 112c8.8 0 16 7.2 16 16 0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-96 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM0 304c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 304zM48 416l0 48 48 0c0-26.5-21.5-48-48-48zM96 304l-48 0 0 48c26.5 0 48-21.5 48-48zM464 416c-26.5 0-48 21.5-48 48l48 0 0-48zM416 304c0 26.5 21.5 48 48 48l0-48-48 0zm-96 80a64 64 0 1 0 -128 0 64 64 0 1 0 128 0z\"],\n \"dungeon\": [512, 512, [], \"f6d9\", \"M347.5 144.8c6.5 5.4 12.5 11.3 18 17.7 8.7 10.2 23.7 14 35.1 6.9l54.1-33.8c11.2-7 14.7-21.7 6.9-32.2-15.3-20.5-33.5-38.6-54.1-53.8-10.4-7.6-24.7-4.3-31.8 6.4l-35.1 52.6c-7.8 11.6-3.8 27.3 7 36.2zM327.8 41.1c8.6-12.9 2.9-30.5-12.2-34.1-19.1-4.6-39.1-7-59.6-7s-40.4 2.4-59.6 7c-15.1 3.6-20.8 21.2-12.2 34.1l40 60c5.2 7.8 14.5 11.7 23.9 11.2 5.2-.3 10.6-.3 15.8 0 9.4 .5 18.7-3.4 23.9-11.2l40-60zM50.5 103.3c-7.9 10.5-4.3 25.3 6.9 32.2l54.1 33.8c11.4 7.1 26.3 3.3 35.1-6.9 5.5-6.4 11.5-12.3 18-17.7 10.8-8.9 14.8-24.6 7-36.2L136.4 55.9c-7.1-10.7-21.5-14-31.8-6.4-20.6 15.1-38.8 33.3-54.1 53.8zm62 141.1c.8-9.9-3.3-19.9-11.8-25.1L41 182c-12.9-8-29.9-2.3-33.6 12.5-4.9 19.7-7.5 40.3-7.5 61.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-3.9 .2-7.8 .5-11.6zm287.1 0c.3 3.8 .5 7.7 .5 11.6l0 24c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-24c0-21.2-2.6-41.8-7.5-61.6-3.6-14.7-20.7-20.5-33.6-12.5l-59.7 37.3c-8.4 5.3-12.6 15.2-11.8 25.1zM88 352l-64 0c-13.3 0-24 10.7-24 24L0 488c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm400 0l-64 0c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304zm-80 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272zm160 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 272c0 13.3 10.7 24 24 24s24-10.7 24-24l0-272z\"],\n \"suitcase-medical\": [512, 512, [\"medkit\"], \"f0fa\", \"M192 56l0 40 128 0 0-40c0-4.4-3.6-8-8-8L200 48c-4.4 0-8 3.6-8 8zm-48 8l0-8c0-30.9 25.1-56 56-56L312 0c30.9 0 56 25.1 56 56l0 424-224 0 0-416zM96 176l0 304-32 0c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l32 0 0 80zM416 480l0-384 32 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-32 0zM244 208c-8.8 0-16 7.2-16 16l0 36-36 0c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l36 0 0 36c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-36 36 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-36 0 0-36c0-8.8-7.2-16-16-16l-24 0z\"],\n \"person-cane\": [448, 512, [], \"e53c\", \"M232-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM144 236.7L97.7 299.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C142 132 181.7 112 224 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L304 236.7 304 512c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3zM392 384c-4.4 0-8 3.6-8 8 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-128c0-4.4-3.6-8-8-8z\"],\n \"gauge\": [512, 512, [\"dashboard\", \"gauge-med\", \"tachometer-alt-average\"], \"f624\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm-16 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm288 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM400 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"envelope-open-text\": [576, 512, [], \"f658\", \"M288 33.9L96.4 175.8 254.5 293c5.3 3.9 11.2 6.9 17.5 8.7L272 464c0 5.5 .5 10.8 1.3 16L96 480c-35.3 0-64-28.7-64-64l0-239.9c0-20.3 9.6-39.4 25.9-51.4L254.5-21c9.7-7.2 21.4-11 33.5-11s23.8 3.9 33.5 11L518.1 124.7c7.2 5.3 13.1 12 17.4 19.6-2.5-.2-5-.3-7.5-.3L436.6 144 288 33.9zM320 240c0-26.5 21.5-48 48-48l160 0c26.5 0 48 21.5 48 48l0 224c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-224zm80 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0z\"],\n \"toolbox\": [512, 512, [129520], \"f552\", \"M176 56l0 40 160 0 0-40c0-4.4-3.6-8-8-8L184 48c-4.4 0-8 3.6-8 8zM128 96l0-40c0-30.9 25.1-56 56-56L328 0c30.9 0 56 25.1 56 56l0 40 28.1 0c12.7 0 24.9 5.1 33.9 14.1l51.9 51.9c9 9 14.1 21.2 14.1 33.9l0 76.1-136 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-144 0 0-16c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-136 0 0-76.1c0-12.7 5.1-24.9 14.1-33.9l51.9-51.9c9-9 21.2-14.1 33.9-14.1L128 96zM0 416l0-96 136 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 144 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 136 0 0 96c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64z\"],\n \"power-off\": [512, 512, [9211], \"f011\", \"M288 0c0-17.7-14.3-32-32-32S224-17.7 224 0l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32L288 0zM146.3 98.4c14.5-10.1 18-30.1 7.9-44.6s-30.1-18-44.6-7.9C43.4 92.1 0 169 0 256 0 397.4 114.6 512 256 512S512 397.4 512 256c0-87-43.4-163.9-109.7-210.1-14.5-10.1-34.4-6.6-44.6 7.9s-6.6 34.4 7.9 44.6c49.8 34.8 82.3 92.4 82.3 157.6 0 106-86 192-192 192S64 362 64 256c0-65.2 32.5-122.9 82.3-157.6z\"],\n \"signal\": [512, 512, [128246, \"signal-5\", \"signal-perfect\"], \"f012\", \"M488 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400zM360 128c-13.3 0-24 10.7-24 24l0 304c0 13.3 10.7 24 24 24s24-10.7 24-24l0-304c0-13.3-10.7-24-24-24zM280 248c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zM152 320c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zM48 384c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48c0-13.3-10.7-24-24-24z\"],\n \"arrows-spin\": [512, 512, [], \"e4bb\", \"M481.7 240.1c-17.6-1.2-32.9 12-34.2 29.7-3.3 47-23.6 89.4-54.8 121L361 359c-6.9-6.9-17.2-8.9-26.2-5.2S320 366.3 320 376l0 112c0 13.3 10.7 24 24 24l112 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-35-35c41.7-42.2 68.9-98.8 73.4-161.8 1.2-17.6-12-32.9-29.7-34.2zM39 41L74 76c-41.7 42.2-68.9 98.8-73.4 161.8-1.2 17.6 12 32.9 29.7 34.2s32.9-12 34.2-29.7c3.3-47 23.6-89.4 54.8-121L151 153c6.9 6.9 17.2 8.9 26.2 5.2S192 145.7 192 136l0-112c0-13.3-10.7-24-24-24L56 0C46.3 0 37.5 5.8 33.8 14.8S32.2 34.1 39 41zm201-10.7c-1.2 17.6 12 32.9 29.7 34.2 47 3.3 89.4 23.6 121 54.8L359 151c-6.9 6.9-8.9 17.2-5.2 26.2S366.3 192 376 192l112 0c13.3 0 24-10.7 24-24l0-112c0-9.7-5.8-18.5-14.8-22.2S477.9 32.2 471 39L436 74c-42.2-41.7-98.8-68.9-161.8-73.4-17.6-1.2-32.9 12-34.2 29.7zM41 473l35-35c42.2 41.7 98.8 68.9 161.8 73.4 17.6 1.2 32.9-12 34.2-29.7s-12-32.9-29.7-34.2c-47-3.3-89.4-23.6-121-54.8L153 361c6.9-6.9 8.9-17.2 5.2-26.2S145.7 320 136 320L24 320c-13.3 0-24 10.7-24 24L0 456c0 9.7 5.8 18.5 14.8 22.2S34.1 479.8 41 473z\"],\n \"joint\": [576, 512, [], \"f595\", \"M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM292.7 320c5.6 0 10.7 2.9 13.6 7.6L394.6 471c1.3 2.1 0 4.9-2.4 5.2-16.1 2.5-32.4 3.7-48.7 3.7l-38.1 0c-5.6 0-10.7-2.9-13.6-7.6l-79-128.4c-6-9.8 0-22.6 11.5-23.3 6.7-.4 13.4-.6 20.2-.6l48.3 0zM459.3 465.9c-6.4 1-12.7-1.9-16.1-7.4L374.1 346.1c-6.7-10.9 1.5-24.7 14.2-22.9 1.3 .2 2.6 .4 3.8 .6l136.4 21c27.3 4.2 47.4 27.7 47.4 55.3s-20.1 51.1-47.4 55.3l-69.2 10.6zM138.7 336c6.7-1.5 13.6 1.4 17.2 7.2l68.9 112c6.6 10.7-1.2 24.4-13.8 23.1-13-1.4-25.9-3.5-38.6-6.5L31.2 439.2C12.9 435 0 418.7 0 400s12.9-35 31.2-39.2L138.7 336z\"],\n \"braille\": [384, 512, [], \"f2a1\", \"M80 144a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 192a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0 136c-13.3 0-24-10.7-24-24s10.7-24 24-24 24 10.7 24 24-10.7 24-24 24zm0 56c44.2 0 80-35.8 80-80s-35.8-80-80-80-80 35.8-80 80 35.8 80 80 80zm248-80c0 13.3-10.7 24-24 24s-24-10.7-24-24 10.7-24 24-24 24 10.7 24 24zm56 0c0-44.2-35.8-80-80-80s-80 35.8-80 80 35.8 80 80 80 80-35.8 80-80zM304 232a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm0 104a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-192a80 80 0 1 0 0-160 80 80 0 1 0 0 160z\"],\n \"basket-shopping\": [576, 512, [\"shopping-basket\"], \"f291\", \"M288 0c6.6 0 12.9 2.7 17.4 7.5l144 152 .5 .5 78.1 0c17.7 0 32 14.3 32 32 0 14.5-9.6 26.7-22.8 30.7L491.1 429.9c-6.5 29.3-32.5 50.1-62.5 50.1l-281.3 0c-30 0-56-20.8-62.5-50.1l-46-207.2c-13.2-3.9-22.8-16.2-22.8-30.7 0-17.7 14.3-32 32-32l78.1 0 .5-.5 144-152C275.1 2.7 281.4 0 288 0zm0 58.9L192.2 160 383.8 160 288 58.9zM208 264c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112zm80-24c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24zm128 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112z\"],\n \"bridge\": [512, 512, [], \"e4c8\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-94c0-38.8 26.4-72.6 64-82l0-112-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64z\"],\n \"plane-arrival\": [576, 512, [128748], \"f5af\", \"M386.6 193.1L265.9 3.7c-4.8-7.6-12.6-12.8-21.4-14.3l-43.1-7.6c-10.8-1.9-20.2 7.3-18.6 18.1l24 161.6-105-18.5-33.8-61.8C64.5 74.7 58.2 70.2 51.1 69L34 66c-9.8-1.7-18.8 5.9-18.8 15.8l.6 106.3c.2 30.9 22.4 57.3 52.9 62.7l13.5 2.4 0 0 417.6 73.6c30.5 5.4 59.5-15 64.9-45.4s-15-59.5-45.4-64.9L386.6 193.1zM224 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm131.2-15.3a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448z\"],\n \"cash-register\": [512, 512, [], \"f788\", \"M96 0C60.7 0 32 28.7 32 64s28.7 64 64 64l48 0 0 32-57 0c-31.6 0-58.5 23.1-63.3 54.4L1.1 364.1C.4 368.8 0 373.6 0 378.4L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-69.6c0-4.8-.4-9.6-1.1-14.4L488.2 214.4C483.5 183.1 456.6 160 425 160l-217 0 0-32 48 0c35.3 0 64-28.7 64-64S291.3 0 256 0L96 0zm0 48l160 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L96 80c-8.8 0-16-7.2-16-16s7.2-16 16-16zM64 424c0-13.3 10.7-24 24-24l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 448c-13.3 0-24-10.7-24-24zm48-160a24 24 0 1 1 0-48 24 24 0 1 1 0 48zm120-24a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM160 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM328 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM256 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48zM424 240a24 24 0 1 1 -48 0 24 24 0 1 1 48 0zM352 344a24 24 0 1 1 0-48 24 24 0 1 1 0 48z\"],\n \"ring\": [512, 512, [], \"f70b\", \"M64 208c0 7.8 4.4 18.7 17.1 30.3 45.4-24.2 107.7-38.3 174.9-38.3s129.5 14.1 174.9 38.3c12.8-11.6 17.1-22.5 17.1-30.3 0-12.3-10.8-32-47.9-50.6-35.2-17.6-86.1-29.4-144.1-29.4s-108.9 11.8-144.1 29.4C74.8 176 64 195.7 64 208zm192 40c-47 0-89.3 7.6-122.9 19.7 33.2 12.4 75.7 20.3 122.9 20.3s89.7-7.8 122.9-20.3C345.3 255.6 303 248 256 248zM0 208C0 158.4 39.4 122.2 83.3 100.2 129.1 77.3 190.3 64 256 64s126.9 13.3 172.7 36.2c43.9 22 83.3 58.2 83.3 107.8l0 96c0 49.6-39.4 85.8-83.3 107.8-45.9 22.9-107 36.2-172.7 36.2S129.1 434.7 83.3 411.8C39.4 389.8 0 353.6 0 304l0-96z\"],\n \"share-nodes\": [512, 512, [\"share-alt\"], \"f1e0\", \"M384 192c53 0 96-43 96-96s-43-96-96-96-96 43-96 96c0 5.4 .5 10.8 1.3 16L159.6 184.1c-16.9-15-39.2-24.1-63.6-24.1-53 0-96 43-96 96s43 96 96 96c24.4 0 46.6-9.1 63.6-24.1L289.3 400c-.9 5.2-1.3 10.5-1.3 16 0 53 43 96 96 96s96-43 96-96-43-96-96-96c-24.4 0-46.6 9.1-63.6 24.1L190.7 272c.9-5.2 1.3-10.5 1.3-16s-.5-10.8-1.3-16l129.7-72.1c16.9 15 39.2 24.1 63.6 24.1z\"],\n \"person-circle-exclamation\": [640, 512, [], \"e53f\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"binoculars\": [512, 512, [], \"f1e5\", \"M128 32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32c0-17.7 14.3-32 32-32zm64 96l0 320c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32l0-59.1c0-34.6 9.4-68.6 27.2-98.3 13.7-22.8 22.5-48.2 25.8-74.6L60.5 156c2-16 15.6-28 31.8-28l99.8 0zm227.8 0c16.1 0 29.8 12 31.8 28L459 216c3.3 26.4 12.1 51.8 25.8 74.6 17.8 29.7 27.2 63.7 27.2 98.3l0 59.1c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-320 99.8 0zM320 64c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 32-96 0 0-32zm-32 64l0 160-64 0 0-160 64 0z\"],\n \"kip-sign\": [384, 512, [], \"e1c4\", \"M340.8 88.3c13.4-11.5 15-31.7 3.5-45.1s-31.7-15-45.1-3.5L128 186.4 128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 168-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-122.4 171.2 146.7c13.4 11.5 33.6 9.9 45.1-3.5s9.9-33.6-3.5-45.1L173.2 280 352 280c13.3 0 24-10.7 24-24s-10.7-24-24-24L173.2 232 340.8 88.3z\"],\n \"hard-drive\": [448, 512, [128436, \"hdd\"], \"f0a0\", \"M64 32C28.7 32 0 60.7 0 96L0 260.1C18.1 247.4 40.2 240 64 240l320 0c23.8 0 45.9 7.4 64 20.1L448 96c0-35.3-28.7-64-64-64L64 32zM448 352c0-35.3-28.7-64-64-64L64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64zM224 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"ranking-star\": [576, 512, [], \"e561\", \"M321.8 54.1L298.2 6.3c-3.9-8.3-16.1-8.6-20.4 0l-23.6 47.8-52.3 7.5c-9.3 1.4-13.3 12.9-6.4 19.8l38 37-9 52.1c-1.4 9.3 8.2 16.5 16.8 12.2l46.9-24.8 46.6 24.4c8.6 4.3 18.3-2.9 16.8-12.2l-9-52.1 38-36.6c6.8-6.8 2.9-18.3-6.4-19.8l-52.3-7.5zM256 256c-26.5 0-48 21.5-48 48l0 160c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48l-64 0zM48 320c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-64 0zM416 432l0 32c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-64 0c-26.5 0-48 21.5-48 48z\"],\n \"user-tie\": [448, 512, [], \"f508\", \"M224 248a120 120 0 1 1 0-240 120 120 0 1 1 0 240zm-30.5 56l61 0c9.7 0 17.5 7.8 17.5 17.5 0 4.2-1.5 8.2-4.2 11.4l-27.4 32 31 115.1 .6 0 34.6-138.5c2.2-8.7 11.1-14 19.5-10.8 61.9 23.6 105.9 83.6 105.9 153.8 0 15.1-12.3 27.4-27.4 27.4L43.4 512c-15.1 0-27.4-12.3-27.4-27.4 0-70.2 44-130.2 105.9-153.8 8.4-3.2 17.3 2.1 19.5 10.8l34.6 138.5 .6 0 31-115.1-27.4-32c-2.7-3.2-4.2-7.2-4.2-11.4 0-9.7 7.8-17.5 17.5-17.5z\"],\n \"ellipsis\": [448, 512, [\"ellipsis-h\"], \"f141\", \"M0 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm168 0a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm224-56a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"],\n \"store-slash\": [576, 512, [], \"e071\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-58.6-58.6c1.1-4 1.6-8.2 1.6-12.5l0-151.2c-12.5 4.6-26.1 7.2-40.5 7.2-8.1 0-15.9-.8-23.5-2.4l0 66.4-30.2 0-137.5-137.5c2.9-3.6 5.5-7.4 7.6-11.5 11.6 22 34.7 37 61.3 37 26.8 0 49.8-15.1 61.4-37.1 11.4 22.1 34.5 37.1 60.8 37.1 45.6 0 78.4-43.7 65.6-87.5L513.8 72.3C506.8 48.4 484.9 32 460 32L116 32c-5.5 0-10.8 .8-15.9 2.3L41-24.9zM151.5 221.3L48.7 118.6 38.9 152.5c-12.8 43.7 20 87.5 65.6 87.5 18.1 0 34.7-7.1 47-18.7zM410.2 480l-128-128-154.2 0 0-66.4c-7.6 1.6-15.5 2.4-23.5 2.4-14.4 0-28-2.6-40.5-7.2L64 432c0 26.5 21.5 48 48 48l298.2 0z\"],\n \"percent\": [448, 512, [62101, 62785, \"percentage\"], \"25\", \"M192 128a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM448 384a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zM438.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-384 384c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l384-384z\"],\n \"file-zipper\": [384, 512, [\"file-archive\"], \"f1c6\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 72c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 48C74.7 48 64 58.7 64 72zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm64 72l-32 0c-17.7 0-32 14.3-32 32l0 48c0 26.5 21.5 48 48 48s48-21.5 48-48l0-48c0-17.7-14.3-32-32-32zm-16 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"],\n \"display\": [512, 512, [], \"e163\", \"M448 96l0 256-384 0 0-256 384 0zM64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32z\"],\n \"icons\": [512, 512, [\"heart-music-camera-bolt\"], \"f86d\", \"M174.9 272c10.7 0 20.7 5.3 26.6 14.2l11.8 17.8 26.7 0c26.5 0 48 21.5 48 48l0 112c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 352c0-26.5 21.5-48 48-48l26.7 0 11.8-17.8c5.9-8.9 15.9-14.2 26.6-14.2l61.7 0zm278.6-12c5.6-4.9 13.9-5.3 19.9-.9s8.3 12.4 5.3 19.3L440.3 368 496 368c6.7 0 12.6 4.1 15 10.4s.6 13.3-4.4 17.7l-128 112c-5.6 4.9-13.9 5.3-19.9 .9s-8.3-12.4-5.3-19.3l38.5-89.7-55.8 0c-6.7 0-12.6-4.1-15-10.4s-.6-13.3 4.4-17.7l128-112zM144 360a48 48 0 1 0 0 96 48 48 0 1 0 0-96zM483.8 .4c6.5-1.1 13.1 .4 18.5 4.4 6.1 4.5 9.7 11.7 9.7 19.2l0 152-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6l0-49.3-112 33.6 0 110.2-.3 4.9c-3.3 24.2-30.5 43.1-63.7 43.1-35.3 0-64-21.5-64-48s28.7-48 64-48c5.5 0 10.9 .6 16 1.6L304 72c0-10.6 7-20 17.1-23l160-48 2.7-.6zM188.9 0C226 0 256 30 256 67.1l0 6.1c0 56.1-75.2 112.1-110.3 135.3-10.8 7.1-24.6 7.1-35.4 0-35.1-23.1-110.3-79.2-110.3-135.3l0-6.1C0 30 30 0 67.1 0 88.2 0 108 9.9 120.7 26.8l7.3 9.8 7.3-9.8C148 9.9 167.8 0 188.9 0z\"],\n \"ruler-vertical\": [256, 512, [], \"f548\", \"M0 16C0-10.5 21.5-32 48-32l160 0c26.5 0 48 21.5 48 48l0 24-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 24c0 26.5-21.5 48-48 48L48 544c-26.5 0-48-21.5-48-48L0 16z\"],\n \"map-location-dot\": [640, 512, [\"map-marked-alt\"], \"f5a0\", \"M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM512 224c-66.3 0-120 52.8-120 117.9 0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9zM472 344a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"],\n \"heart-crack\": [512, 512, [128148, \"heart-broken\"], \"f7a9\", \"M133.1 32c17.3 0 34.2 3.4 49.9 9.7l54.8 85.2-75.4 75.4c-1.5 1.5-2.4 3.6-2.3 5.8s1 4.2 2.6 5.7l112 104c2.9 2.7 7.4 2.9 10.5 .3s3.8-7 1.7-10.4l-60.4-98.1 90.7-75.6c2.6-2.1 3.5-5.7 2.4-8.8L296.4 60.6C319.6 42.3 348.6 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32z\"],\n \"cow\": [640, 512, [128004], \"f6c8\", \"M96 224l0 192c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-88.2c9.9 6.6 20.6 12 32 16.1l0 24.2c0 8.8 7.2 16 16 16s16-7.2 16-16l0-16.9c5.3 .6 10.6 .9 16 .9s10.7-.3 16-.9l0 16.9c0 8.8 7.2 16 16 16s16-7.2 16-16l0-24.2c11.4-4 22.1-9.4 32-16.1l0 88.2c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-160 32 32 0 49.5c0 9.5 2.8 18.7 8.1 26.6L530 427c8.8 13.1 23.5 21 39.3 21 22.5 0 41.9-15.9 46.3-38l20.3-101.6c2.6-13-.3-26.5-8-37.3l-3.9-5.5 0-81.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 14.4-52.9-74.1C496 86.5 452.4 64 405.9 64L144 64C77.7 64 24 117.7 24 184l0 54C9.4 249.8 0 267.8 0 288l0 17.6c0 8 6.4 14.4 14.4 14.4 31.8 0 57.6-25.8 57.6-57.6L72 184c0-24.3 12.1-45.8 30.5-58.9-4.2 10.8-6.5 22.6-6.5 34.9l0 64zM560 336a16 16 0 1 1 32 0 16 16 0 1 1 -32 0zM166.6 166.6c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l178.7 0c12.5 0 22.6 10.1 22.6 22.6 0 6-2.4 11.8-6.6 16l-23.4 23.4C332.2 211.8 302.7 224 272 224s-60.2-12.2-81.9-33.9l-23.4-23.4z\"],\n \"rss\": [448, 512, [\"feed\"], \"f09e\", \"M0 64c0-17.7 14.3-32 32-32 229.8 0 416 186.2 416 416 0 17.7-14.3 32-32 32s-32-14.3-32-32C384 253.6 226.4 96 32 96 14.3 96 0 81.7 0 64zM0 416a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM32 160c159.1 0 288 128.9 288 288 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-123.7-100.3-224-224-224-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"magnifying-glass\": [512, 512, [128269, \"search\"], \"f002\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z\"],\n \"cloud-moon\": [640, 512, [], \"f6c3\", \"M480 0c14.6 0 28.8 1.6 42.5 4.7 7.4 1.7 13 7.8 13.9 15.4s-3 14.9-9.8 18.3c-45.4 22.6-76.6 69.5-76.6 123.6 0 76.2 61.8 138 138 138 3.7 0 7.4-.1 11.1-.4 7.6-.6 14.7 3.6 17.8 10.6s1.5 15.1-3.9 20.4c-26 25-59.1 42.7-95.9 49.9-11.1-25.3-30.2-46.3-54.1-59.8-7.6-63.4-61.6-112.6-127.1-112.6-11.2 0-22.1 1.5-32.5 4.2-4.8-4.2-9.9-8.2-15.2-11.8-.1-2.8-.2-5.6-.2-8.4 0-106 86-192 192-192zm-.1 431.9c0 44.2-35.8 80-80 80l-271.9 0c-53 0-96-43-96-96 0-47.6 34.6-87 80-94.6-.4-52.8 42.9-97.3 96-97.3 34.9 0 65.4 18.6 82.2 46.4 13-9.1 28.8-14.4 45.8-14.4 44.2 0 80 35.8 80 80 0 5.9-.6 11.7-1.9 17.2 37.4 6.7 65.8 39.4 65.8 78.7z\"],\n \"boxes-stacked\": [512, 512, [62625, \"boxes\", \"boxes-alt\"], \"f468\", \"M224 0l0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 5.5-.7 10.9-2 16l-252 0c-1.3-5.1-2-10.5-2-16l0-128c0-35.3 28.7-64 64-64l32 0zm96 512c-11.2 0-21.8-2.9-31-8 9.5-16.5 15-35.6 15-56l0-128c0-20.4-5.5-39.5-15-56 9.2-5.1 19.7-8 31-8l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64l-128 0zM0 320c0-35.3 28.7-64 64-64l32 0 0 64c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-64 32 0c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 320z\"],\n \"code-branch\": [448, 512, [], \"f126\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 70.7 176 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-176 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80S0 476.2 0 432c0-32.8 19.7-61 48-73.3l0-205.3C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm232 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM80 456a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"ban\": [512, 512, [128683, \"cancel\"], \"f05e\", \"M367.2 412.5L99.5 144.8c-22.4 31.4-35.5 69.8-35.5 111.2 0 106 86 192 192 192 41.5 0 79.9-13.1 111.2-35.5zm45.3-45.3c22.4-31.4 35.5-69.8 35.5-111.2 0-106-86-192-192-192-41.5 0-79.9 13.1-111.2 35.5L412.5 367.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"jug-detergent\": [384, 512, [], \"e519\", \"M96 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24l0 24 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 96C74.7 96 64 85.3 64 72S74.7 48 88 48l8 0 0-24zM0 256c0-70.7 57.3-128 128-128l128 0c70.7 0 128 57.3 128 128l0 192c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 256zm256 0l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\n \"reply\": [512, 512, [61714, \"mail-reply\"], \"f3e5\", \"M204.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 112 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-96 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9z\"],\n \"sun-plant-wilt\": [640, 512, [], \"e57a\", \"M160 0c-5.5 0-10.6 2.8-13.5 7.4l-1.1 2.1-24.8 55.4-56.7-21.7c-5.9-2.2-12.5-.8-17 3.7S41 58 43.2 63.9l21.7 56.7-55.4 24.8C3.7 148 0 153.7 0 160s3.7 12 9.5 14.6l55.4 24.8-21.7 56.7c-2.2 5.9-.8 12.5 3.7 17s11.1 5.9 17 3.7l56.7-21.7 24.8 55.4c2.6 5.8 8.3 9.5 14.6 9.5s12-3.7 14.6-9.5l24.8-55.4 56.8 21.7c5.9 2.2 12.5 .8 17-3.7s5.9-11.1 3.7-17l-21.7-56.7 55.4-24.8c5.8-2.6 9.5-8.3 9.5-14.6s-3.7-12-9.5-14.6l-55.4-24.8 21.7-56.7 .7-2.2c1.2-5.3-.4-10.9-4.3-14.8s-9.5-5.5-14.8-4.3l-2.2 .7-56.8 21.7-24.8-55.4C172 3.7 166.3 0 160 0zm0 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm376 16l0 53.4c-14.8 7.7-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-53.4c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 22.7c-9.8-4.3-20.6-6.7-32-6.7-44.2 0-80 35.8-80 80l0 21.4c-14.8 7.6-24 23.1-24 44.6 0 16.8 16 44 37.4 67.2 5.8 6.2 15.5 6.2 21.2 0 21.4-23.3 37.4-50.6 37.4-67.2 0-21.5-9.2-37-24-44.6l0-21.4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176-424 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-104 0 0-272c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n \"bacterium\": [576, 512, [], \"e05a\", \"M408 16c0-13.3-10.7-24-24-24S360 2.7 360 16l0 23.4c-13.9 5.3-26.9 13.5-38.2 24.5L305 47c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-10 10-20 20-30.1 30.1L177 175c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8-30.1 30.1-16.8-16.8c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l16.8 16.8c-11 11.3-19.2 24.3-24.5 38.2L48 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l16.3 0c1.3 18.3 7.1 36.4 17.4 52.4L71 439c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l10.6-10.6c16 10.3 34.1 16.1 52.4 17.4l0 16.3c0 13.3 10.7 24 24 24s24-10.7 24-24l0-23.4c13.9-5.3 26.9-13.5 38.2-24.5L271 465c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c10-10 20-20 30.1-30.1L399 337c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8 30.1-30.1 16.8 16.8c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-16.8-16.8c11-11.3 19.2-24.3 24.5-38.2l23.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-16.3 0c-1.3-18.3-7.1-36.4-17.4-52.4L505 73c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L460.4 49.7c-16-10.3-34.1-16.1-52.4-17.4L408 16zM160 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM272 240a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"record-vinyl\": [512, 512, [], \"f8d9\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-112a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"floppy-disk\": [448, 512, [128190, 128426, \"save\"], \"f0c7\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-242.7c0-17-6.7-33.3-18.7-45.3L352 50.7C340 38.7 323.7 32 306.7 32L64 32zm32 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-64zM224 288a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"toilets-portable\": [512, 512, [], \"e584\", \"M64 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16C0 28.7 28.7 0 64 0zM0 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24S0 501.3 0 488L0 128zM128 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24zM352 0l96 0c35.3 0 64 28.7 64 64l0 16-224 0 0-16c0-35.3 28.7-64 64-64zM288 128l224 0 0 360c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-128 0 0 8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-360zM416 248l0 48c0 13.3 10.7 24 24 24l24 0 0-96-24 0c-13.3 0-24 10.7-24 24z\"],\n \"o\": [448, 512, [111], \"4f\", \"M224 96a160 160 0 1 0 0 320 160 160 0 1 0 0-320zM448 256a224 224 0 1 1 -448 0 224 224 0 1 1 448 0z\"],\n \"palette\": [512, 512, [127912], \"f53f\", \"M512 256c0 .9 0 1.8 0 2.7-.4 36.5-33.6 61.3-70.1 61.3L344 320c-26.5 0-48 21.5-48 48 0 3.4 .4 6.7 1 9.9 2.1 10.2 6.5 20 10.8 29.9 6.1 13.8 12.1 27.5 12.1 42 0 31.8-21.6 60.7-53.4 62-3.5 .1-7 .2-10.6 .2-141.4 0-256-114.6-256-256S114.6 0 256 0 512 114.6 512 256zM128 288a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"unlock\": [384, 512, [128275], \"f09c\", \"M128 96c0-35.3 28.7-64 64-64 31.7 0 58 23 63.1 53.3 2.9 17.4 19.4 29.2 36.9 26.3s29.2-19.4 26.3-36.9C308.1 14.1 255.5-32 192-32 121.3-32 64 25.3 64 96l0 64c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-192 0 0-64z\"],\n \"ear-listen\": [512, 512, [\"assistive-listening-systems\"], \"f2a2\", \"M379.6 .3c-8.9 1.2-17.2 6.2-22.4 14.1-6.8 10.4-7 24.1-.4 34.6 5.6 8.9 15.5 12.7 23.8 18.5 7.5 5.2 17.6 13.2 27.7 24.2 20 21.7 39.5 54.3 39.5 100.3 0 17.7 14.3 32 32 32s32-14.3 32-32c0-66-28.5-113.4-56.5-143.7-13.9-15.1-27.8-26.1-38.3-33.3-11-7.6-23.5-16.6-37.6-14.7zM240 128c-57.6 0-105.1 43.6-111.3 99.5-1.9 17.6-17.8 30.2-35.3 28.3s-30.2-17.8-28.3-35.3c9.7-88 84.3-156.5 174.9-156.5 97.2 0 176 78.8 176 176 0 46-17.7 87.9-46.6 119.3-12 13-17.4 24.8-17.4 34.7l0 6.1c0 61.9-50.1 112-112 112-17.7 0-32-14.3-32-32s14.3-32 32-32c26.5 0 48-21.5 48-48l0-6.1c0-32.9 17.4-59.6 34.4-78 18.4-20 29.6-46.6 29.6-75.9 0-61.9-50.1-112-112-112zM0 480a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160-96a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM86.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zM240 208c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 13.3-10.7 24-24 24s-24-10.7-24-24c0-17.7-14.3-32-32-32z\"],\n \"code-pull-request\": [512, 512, [], \"e13c\", \"M328 24c0-9.7-5.8-18.5-14.8-22.2S293.9 .2 287 7L231 63c-9.4 9.4-9.4 24.6 0 33.9l56 56c6.9 6.9 17.2 8.9 26.2 5.2S328 145.7 328 136l0-24 24 0c17.7 0 32 14.3 32 32l0 214.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3L448 144c0-53-43-96-96-96l-24 0 0-24zM72 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm56 73.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S16 35.8 16 80c0 32.8 19.7 61 48 73.3l0 205.3c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-205.3zM72 432a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm344-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"key\": [512, 512, [128273], \"f084\", \"M336 352c97.2 0 176-78.8 176-176S433.2 0 336 0 160 78.8 160 176c0 18.7 2.9 36.8 8.3 53.7L7 391c-4.5 4.5-7 10.6-7 17l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-40 40 0c13.3 0 24-10.7 24-24l0-40 40 0c6.4 0 12.5-2.5 17-7l33.3-33.3c16.9 5.4 35 8.3 53.7 8.3zM376 96a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],\n \"skull\": [512, 512, [128128], \"f54c\", \"M416 427.4c58.5-44 96-111.6 96-187.4 0-132.5-114.6-240-256-240S0 107.5 0 240c0 75.8 37.5 143.4 96 187.4L96 464c0 26.5 21.5 48 48 48l32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 64 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 32 0c26.5 0 48-21.5 48-48l0-36.6zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm256-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"mars-stroke-up\": [384, 512, [9896, \"mars-stroke-v\"], \"f22a\", \"M192 256a112 112 0 1 0 0 224 112 112 0 1 0 0-224zM16 368c0-86.3 62.1-158.1 144.1-173.1-.1-.9-.1-1.9-.1-2.9l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-61.4-28 22.4c-13.8 11-33.9 8.8-45-5s-8.8-33.9 5-45l80-64c11.7-9.3 28.3-9.3 40 0l80 64c13.8 11 16 31.2 5 45s-31.2 16-45 5l-28-22.4 0 61.4 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 1 0 1.9-.1 2.9 82 15 144.1 86.8 144.1 173.1 0 97.2-78.8 176-176 176S16 465.2 16 368z\"],\n \"fire-flame-simple\": [384, 512, [\"burn\"], \"f46a\", \"M372.5 256.5l-.7-1.9C337.8 160.8 282 76.5 209.1 8.5l-3.3-3C202.1 2 197.1 0 192 0s-10.1 2-13.8 5.5l-3.3 3C102 76.5 46.2 160.8 12.2 254.6l-.7 1.9C3.9 277.3 0 299.4 0 321.6 0 426.7 86.8 512 192 512s192-85.3 192-190.4c0-22.2-3.9-44.2-11.5-65.1zm-90.8 49.5c4.1 9.3 6.2 19.4 6.2 29.5 0 53-43 96.5-96 96.5s-96-43.5-96-96.5c0-10.1 2.1-20.3 6.2-29.5l1.9-4.3c15.8-35.4 37.9-67.7 65.3-95.1l8.9-8.9c3.6-3.6 8.5-5.6 13.6-5.6s10 2 13.6 5.6l8.9 8.9c27.4 27.4 49.6 59.7 65.3 95.1l1.9 4.3z\"],\n \"tree\": [448, 512, [127794], \"f1bb\", \"M224-32c7 0 13.7 3.1 18.3 8.5l136 160c6.1 7.1 7.4 17.1 3.5 25.6S369.4 176 360 176l-24.9 0 75.2 88.5c6.1 7.1 7.4 17.1 3.5 25.6S401.4 304 392 304l-38.5 0 88.8 104.5c6.1 7.1 7.4 17.1 3.5 25.6S433.4 448 424 448l-168 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-168 0c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L94.5 304 56 304c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6L112.9 176 88 176c-9.4 0-17.9-5.4-21.8-13.9s-2.6-18.5 3.5-25.6l136-160C210.3-28.9 217-32 224-32z\"],\n \"smog\": [576, 512, [], \"f75f\", \"M176 288C96.5 288 32 223.5 32 144S96.5 0 176 0c27.2 0 52.6 7.5 74.3 20.6 20.1-13 44-20.6 69.7-20.6 47.4 0 88.7 25.7 110.9 64l1.1 0c61.9 0 112 50.1 112 112 0 60.3-47.6 109.4-107.2 111.9-22.6 20-52.3 32.1-84.8 32.1-32.5 0-62.1-12.1-84.7-32L176 288zM512 392c0 13.3-10.7 24-24 24L24 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l464 0c13.3 0 24 10.7 24 24zM88 464l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm176 0l288 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-288 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"s\": [320, 512, [115], \"53\", \"M0 157.5C0 88.2 56.2 32 125.5 32L272 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L125.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61L210.1 230C272.9 237.9 320 291.2 320 354.5 320 423.8 263.8 480 194.5 480L48 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-31-23.1-57.2-53.9-61L109.9 282C47.1 274.1 0 220.8 0 157.5z\"],\n \"jedi\": [576, 512, [], \"f669\", \"M246 315.7l-21.2-31.9c-2.1-3.2-1.7-7.4 1-10.1s6.9-3.1 10.1-1l29.5 19.7c2.1 1.4 4.9-.1 5-2.6L279.7 8c.1-4.5 3.8-8 8.3-8s8.1 3.5 8.3 8l9.4 281.9c.1 2.5 2.9 3.9 5 2.6l29.5-19.7c3.2-2.1 7.4-1.7 10.1 1s3.1 6.9 1 10.1L330 315.7c-1.3 1.9-.2 4.5 2 4.9l37.6 7.5c3.7 .7 6.4 4 6.4 7.8s-2.7 7.1-6.4 7.8L332 351.4c-2.2 .4-3.3 3-2 4.9l21.2 31.9c2.1 3.2 1.7 7.4-1 10.1s-6.9 3.1-10.1 1l-26.3-17.6c-2.2-1.4-5.1 .2-5 2.8l2.1 61.5c59.8-10.8 105.1-63.1 105.1-126 0-37-15.7-70.4-40.8-93.7-7-6.5-6.5-18.6 1-24.4 34-26.3 55.8-67.5 55.8-113.9 0-16.8-2.9-33-8.2-48-4.6-13 10.2-30 21.4-22 53.5 38 92.7 94.8 107.8 160.7 .5 2.1-.2 4.3-1.7 5.9l-28.4 28.4c-4 4-1.2 10.9 4.5 10.9l26 0c3.4 0 6.2 2.6 6.3 6 .1 3.3 .2 6.6 .2 10 0 17.5-1.7 34.7-4.8 51.3-.2 1.2-.9 2.4-1.7 3.3l-46.5 46.5c-4 4-1.2 10.9 4.5 10.9l14.6 0c4.6 0 7.7 4.8 5.7 9-44.5 89.5-136.9 151-243.7 151S88.8 450.5 44.3 361c-2.1-4.2 1-9 5.7-9l14.6 0c5.7 0 8.6-6.9 4.5-10.9L22.6 294.6c-.9-.9-1.5-2-1.7-3.3-3.2-16.6-4.8-33.8-4.8-51.3 0-3.3 .1-6.7 .2-10 .1-3.4 2.9-6 6.3-6l26 0c5.7 0 8.6-6.9 4.5-10.9L24.6 184.6c-1.5-1.5-2.2-3.8-1.7-5.9 15.2-66 54.3-122.8 107.8-160.7 11.3-8 26 8.9 21.4 22-5.3 15-8.2 31.2-8.2 48 0 46.3 21.9 87.5 55.8 113.9 7.5 5.8 8 17.9 1 24.4-25.1 23.4-40.8 56.7-40.8 93.7 0 62.9 45.4 115.2 105.1 126l2.1-61.5c.1-2.6-2.8-4.2-5-2.8l-26.3 17.6c-3.2 2.1-7.4 1.7-10.1-1s-3.1-6.9-1-10.1L246 356.3c1.3-1.9 .2-4.5-2-4.9l-37.6-7.5c-3.7-.7-6.4-4-6.4-7.8s2.7-7.1 6.4-7.8l37.6-7.5c2.2-.4 3.3-3 2-4.9z\"],\n \"person-hiking\": [448, 512, [\"hiking\"], \"f6ec\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM128 173.6c0-34 27.6-61.6 61.6-61.6 20.3 0 39.7 8.1 54 22.4l48.2 48.2c6 6 14.1 9.4 22.6 9.4l37.5 0c5.8 0 11.3 1.6 16 4.3l0-76.3c0-13.3 10.7-24 24-24s24 10.7 24 24l0 400c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-268.3c-4.7 2.7-10.2 4.3-16 4.3l-37.5 0c-25.5 0-49.9-10.1-67.9-28.1l-6.6-6.6 0 109.2 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-101zm-4.8 203.7c2.3 2.3 4.7 4.4 7.1 6.5l44.9 38.5c-3.6 8.4-8.5 16.3-14.4 23.4L88.6 532.5c-11.3 13.6-31.5 15.4-45.1 4.1s-15.4-31.5-4.1-45.1l72.3-86.7c2.6-3.1 4.5-6.6 5.8-10.4l5.7-17.1zM0 160c0-35.3 28.7-64 64-64 17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96z\"],\n \"arrows-up-to-line\": [448, 512, [], \"e4c2\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l384 0c17.7 0 32-14.3 32-32S433.7 0 416 0L32 0zm86.6 137.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L64 237.3 64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64zm256 0c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 242.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-242.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"],\n \"mars-double\": [640, 512, [9891], \"f227\", \"M288 32c0-17.7 14.3-32 32-32L448 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S0 401.2 0 304 78.8 128 176 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM176 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm160 64c-6.8 0-13.4-.4-20-1.1 23.6-18.9 43.3-42.5 57.6-69.4 43.3-15.5 74.4-56.9 74.4-105.5 0-25.2-8.3-48.5-22.4-67.2 7.1 2.1 14.6 3.2 22.4 3.2 17 0 32.7-5.3 45.7-14.3 11.7 23.6 18.3 50.2 18.3 78.3 0 97.2-78.8 176-176 176zM528 157.3L528 32c0-11.4-2.4-22.2-6.7-32L608 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-48 48z\"],\n \"thermometer\": [512, 512, [], \"f491\", \"M96 382.1l0-88.8c0-14.9 5.9-29.1 16.4-39.6l21.7-21.7 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 46.1-46.1 41 41c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-41-41 7.8-7.8c19.4-19.4 45.6-30.2 73-30.2 57 0 103.2 46.2 103.2 103.2 0 27.4-10.9 53.6-30.2 73L258.3 399.6c-10.5 10.5-24.7 16.4-39.6 16.4l-88.8 0-89 89c-9.4 9.4-24.6 9.4-33.9 0S-2.3 480.4 7 471l89-89z\"],\n \"paintbrush\": [576, 512, [128396, \"paint-brush\"], \"f1fc\", \"M480.5 10.3L259.1 158c-29.1 19.4-47.6 50.9-50.6 85.3 62.3 12.8 111.4 61.9 124.3 124.3 34.5-3 65.9-21.5 85.3-50.6L565.7 95.5c6.7-10.1 10.3-21.9 10.3-34.1 0-33.9-27.5-61.4-61.4-61.4-12.1 0-24 3.6-34.1 10.3zM288 400c0-61.9-50.1-112-112-112S64 338.1 64 400c0 3.9 .2 7.8 .6 11.6 1.8 17.5-10.2 36.4-27.8 36.4L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l144 0c61.9 0 112-50.1 112-112z\"],\n \"neuter\": [384, 512, [9906], \"f22c\", \"M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-1 0-1.9-.1-2.9z\"],\n \"square-phone-flip\": [448, 512, [\"phone-square-alt\"], \"f87b\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm232 96.7l2.8 .8c32.3 8.8 59.9 40.1 51.8 78.2-18.5 87.5-87.4 156.3-174.9 174.9-38.1 8.1-69.4-19.5-78.2-51.8l-.8-2.8c-2.7-9.8 2.4-20.1 11.8-24l48.7-20.3c8.3-3.4 17.8-1.1 23.5 5.9l19.3 23.6c35.1-17.4 63.4-46.6 79.6-82.4l-22.1-18c-6.9-5.7-9.3-15.2-5.9-23.5l20.3-48.7c3.9-9.4 14.2-14.4 24-11.8z\"],\n \"face-grin-tongue-squint\": [512, 512, [128541, \"grin-tongue-squint\"], \"f58a\", \"M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm125.8-91.7c-6.2-5.2-7.6-14.3-3.1-21.1s13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3zm263.6-21.1c4.5 6.8 3.1 15.9-3.1 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5zM320 448l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n \"comment-dollar\": [512, 512, [], \"f651\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zm4-352c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z\"],\n \"hippo\": [640, 512, [129435], \"f6ed\", \"M407 47c9.4-9.4 24.6-9.4 33.9 0l17.2 17.2c1.9-.1 3.9-.2 5.8-.2l32 0c11.2 0 21.9 2.3 31.6 6.5L543 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L564 101.9c7.6 12.2 12 26.7 12 42.1 0 10.2 7.4 18.8 16.7 23 27.9 12.5 47.3 40.5 47.3 73 0 26.2-12.6 49.4-32 64l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-16-64 0 0 16c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-17.6c-11.8-2.4-22.7-7.4-32-14.4-1.5-1.1-2.9-2.3-4.3-3.5-17-14.7-27.7-36.4-27.7-60.5 0-8.8-7.2-16-16-16s-16 7.2-16 16c0 44.7 26.2 83.2 64 101.2l0 10.8c0 17.7 14.3 32 32 32l32 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-76c-19.8 7.7-41.4 12-64 12s-44.2-4.3-64-12l0 76c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-118.9-18.1 40.7c-5.4 12.1-19.6 17.6-31.7 12.2S-3.3 362.4 2.1 350.3L24 300.9c5.3-11.9 8-24.7 8-37.7 0-107.5 85.2-195.2 191.8-199.1l.2-.1 64 0c41.7 0 83.4 12.1 117.2 25.7 1.7-1.8 3.5-3.6 5.3-5.2L407 81c-9.4-9.4-9.4-24.6 0-33.9zm73 185a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm88 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM480 144a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\n \"bowl-food\": [512, 512, [], \"e4c6\", \"M0 176c0-35.3 28.7-64 64-64 .5 0 1.1 0 1.6 0 7.4-36.5 39.7-64 78.4-64 15 0 29 4.1 40.9 11.2 13.3-25.7 40.1-43.2 71.1-43.2s57.8 17.6 71.1 43.2c12-7.1 26-11.2 40.9-11.2 38.7 0 71 27.5 78.4 64 .5 0 1.1 0 1.6 0 35.3 0 64 28.7 64 64 0 11.7-3.1 22.6-8.6 32L8.6 208C3.1 198.6 0 187.7 0 176zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4z\"],\n \"square-virus\": [448, 512, [], \"e578\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm160 80c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM192 248a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"cloud-sun-rain\": [576, 512, [127782], \"f743\", \"M303.2-3.2c-1.1-5.2-4.6-9.5-9.5-11.6s-10.5-1.5-14.9 1.4L208 33.6 137.3-13.3c-4.4-2.9-10-3.5-14.9-1.4s-8.5 6.4-9.5 11.6L96 80 12.8 96.8c-5.2 1.1-9.5 4.6-11.6 9.5s-1.5 10.5 1.4 14.9L49.6 192 2.7 262.7c-2.9 4.4-3.5 10-1.4 14.9s6.4 8.5 11.6 9.5L96 304 112.8 387.2c1.1 5.2 4.6 9.5 9.5 11.6s10.5 1.5 14.9-1.4l67.3-44.6c-15.8-19.4-26-43.5-28.2-69.9-37.5-13.1-64.4-48.7-64.4-90.7 0-53 43-96 96-96 21.7 0 41.8 7.2 57.8 19.4 15.5-17.6 36.9-30 61.1-34L320 80 303.2-3.2zM243 159.1c-8.8-9.3-21.2-15.1-35-15.1-26.5 0-48 21.5-48 48 0 17 8.9 32 22.2 40.5 10.2-31.4 32.1-57.4 60.7-73l.1-.4zM304 352l192 0c44.2 0 80-35.8 80-80 0-33.9-21.1-62.9-50.9-74.5 1.9-6.8 2.9-14 2.9-21.5 0-44.2-35.8-80-80-80-30.8 0-57.5 17.4-70.9 42.8-9.3-6.8-20.7-10.8-33.1-10.8-30.9 0-56 25.1-56 56 0 3.2 .3 6.4 .8 9.4-36.9 7.1-64.8 39.6-64.8 78.6 0 44.2 35.8 80 80 80zm-19 49.1c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4z\"],\n \"arrow-right-long\": [576, 512, [\"long-arrow-right\"], \"f178\", \"M566.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L466.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l434.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"],\n \"building-un\": [512, 512, [], \"e4d9\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 272-112 0c-20.9 0-39.5 10.1-51.2 25.6-8-6-18-9.6-28.8-9.6-26.5 0-48 21.5-48 48l0 64 64 0 0 48-144 0c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM427.4 380.5c9-2.1 18.3 2.2 22.5 10.5l26.1 52.2 0-43.3c0-11 9-20 20-20s20 9 20 20l0 128c0 9.3-6.4 17.3-15.4 19.5s-18.3-2.2-22.5-10.5L452 484.7 452 528c0 11-9 20-20 20s-20-9-20-20l0-128c0-9.3 6.4-17.3 15.4-19.5zM324 400l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-11 9-20 20-20s20 9 20 20l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-11 9-20 20-20s20 9 20 20z\"],\n \"temperature-low\": [512, 512, [], \"f76b\", \"M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z\"],\n \"door-open\": [448, 512, [], \"f52b\", \"M288 64l64 0 0 416c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-384c0-35.3-28.7-64-64-64l-96 0 0 0-160 0C60.7 0 32 28.7 32 64l0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32l0-416zM160 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"align-left\": [448, 512, [], \"f036\", \"M288 64c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32L32 352c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"],\n \"camera\": [512, 512, [62258, \"camera-alt\"], \"f030\", \"M149.1 64.8L138.7 96 64 96C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-74.7 0-10.4-31.2C356.4 45.2 338.1 32 317.4 32L194.6 32c-20.7 0-39 13.2-45.5 32.8zM256 192a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\n \"users-rays\": [640, 512, [], \"e593\", \"M31-33C21.7-23.6 21.7-8.4 31 1L87 57c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L65-33c-9.4-9.4-24.6-9.4-33.9 0zM609-33c-9.4-9.4-24.6-9.4-33.9 0L519 23c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L609 1c9.4-9.4 9.4-24.6 0-33.9zM65 545l56-56c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L31 511c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zm544 0c9.4-9.4 9.4-24.6 0-33.9l-56-56c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l56 56c9.4 9.4 24.6 9.4 33.9 0zM320 208a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm0 32c-61.9 0-112 50.1-112 112l0 8c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24l0-8c0-61.9-50.1-112-112-112zm216-80a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM451.2 260.4C469.4 286.3 480 317.9 480 352l0 8c0 8.4-1.4 16.5-4.1 24l78.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-53-43-96-96-96-10 0-19.7 1.5-28.8 4.4zm-262.4 0c-9.1-2.9-18.8-4.4-28.8-4.4-53 0-96 43-96 96l0 10.7c0 11.8 9.6 21.3 21.3 21.3l78.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-8c0-34.1 10.6-65.7 28.8-91.6zM216 160a56 56 0 1 0 -112 0 56 56 0 1 0 112 0z\"],\n \"rainbow\": [640, 512, [127752], \"f75b\", \"M320 96C178.6 96 64 210.6 64 352l0 64c0 17.7-14.3 32-32 32S0 433.7 0 416l0-64C0 175.3 143.3 32 320 32S640 175.3 640 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64C576 210.6 461.4 96 320 96zm0 112c-79.5 0-144 64.5-144 144l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-114.9 93.1-208 208-208s208 93.1 208 208l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-79.5-64.5-144-144-144zM288 352l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-53 43-96 96-96s96 43 96 96l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\n \"sitemap\": [512, 512, [], \"f0e8\", \"M192 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-8 0 0 64 120 0c39.8 0 72 32.2 72 72l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-13.3-10.7-24-24-24l-120 0 0 80 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-80-120 0c-13.3 0-24 10.7-24 24l0 56 8 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l8 0 0-56c0-39.8 32.2-72 72-72l120 0 0-64-8 0c-17.7 0-32-14.3-32-32l0-64z\"],\n \"face-grin-stars\": [512, 512, [129321, \"grin-stars\"], \"f587\", \"M256 512c141.4 0 256-114.6 256-256 0-24.4-3.4-48.1-9.8-70.5 18.6-36.1-2.7-83.6-46.7-90-46.9-58.3-118.9-95.5-199.5-95.5S103.4 37.3 56.5 95.5c-44 6.4-65.3 53.9-46.7 90-6.4 22.4-9.8 46-9.8 70.5 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zm-31.6-231c5.3-10.7 20.5-10.7 25.8 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4zm-198.2 0l20.9 42.4 46.7 6.8c11.8 1.7 16.5 16.2 8 24.5l-33.8 33 8 46.6c2 11.7-10.3 20.7-20.9 15.2l-41.8-22-41.8 22c-10.5 5.5-22.9-3.4-20.9-15.2l8-46.6-33.8-33c-8.5-8.3-3.8-22.8 8-24.5l46.7-6.8 20.9-42.4c5.3-10.7 20.5-10.7 25.8 0z\"],\n \"sort-up\": [384, 512, [\"sort-asc\"], \"f0de\", \"M32 224c-12.9 0-24.6-7.8-29.6-19.8S.2 178.5 9.4 169.4l160-160c12.5-12.5 32.8-12.5 45.3 0l160 160c9.2 9.2 11.9 22.9 6.9 34.9S364.9 224 352 224L32 224z\"],\n \"eye\": [576, 512, [128065], \"f06e\", \"M288 32c-80.8 0-145.5 36.8-192.6 80.6-46.8 43.5-78.1 95.4-93 131.1-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6s145.5-36.8 192.6-80.6c46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6zM144 256a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-64c0 35.3-28.7 64-64 64-11.5 0-22.3-3-31.7-8.4-1 10.9-.1 22.1 2.9 33.2 13.7 51.2 66.4 81.6 117.6 67.9s81.6-66.4 67.9-117.6c-12.2-45.7-55.5-74.8-101.1-70.8 5.3 9.3 8.4 20.1 8.4 31.7z\"],\n \"caret-left\": [256, 512, [], \"f0d9\", \"M7.7 235.8c-10.3 12.6-9.5 31.1 2.2 42.8l128 128c9.2 9.2 22.9 11.9 34.9 6.9s19.8-16.6 19.8-29.6l0-256c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-128 128-2.2 2.4z\"],\n \"apple-whole\": [448, 512, [127822, 127823, \"apple-alt\"], \"f5d1\", \"M224 112c-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80l16 0c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80l-16 0zM0 288c0-76.3 35.7-160 112-160 27.3 0 59.7 10.3 82.7 19.3 18.8 7.3 39.9 7.3 58.7 0 22.9-8.9 55.4-19.3 82.7-19.3 76.3 0 112 83.7 112 160 0 128-80 224-160 224-16.5 0-38.1-6.6-51.5-11.3-8.1-2.8-16.9-2.8-25 0-13.4 4.7-35 11.3-51.5 11.3-80 0-160-96-160-224z\"],\n \"scroll-torah\": [576, 512, [\"torah\"], \"f6a0\", \"M0 48C0 21.5 21.5 0 48 0 68.9 0 86.7 13.4 93.3 32l389.5 0c6.6-18.6 24.4-32 45.3-32 26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48-20.9 0-38.7-13.4-45.3-32L93.3 480c-6.6 18.6-24.4 32-45.3 32-26.5 0-48-21.5-48-48L0 48zM177.9 301c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2c-2.6-4.2-7.2-6.8-12.2-6.8s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z\"],\n \"house-lock\": [640, 512, [], \"e510\", \"M528 224.1c44.2 0 80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l185 171.8C440.2 195 400 244.8 400 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM272 320c-26.5 0-48 21.5-48 48l0 96 96 0 0-87.3c0-16.5 7-31.5 18.4-42.1-8.7-9-20.9-14.6-34.4-14.6l-32 0zm256-47.9c-17.7 0-32 14.3-32 32l0 47.9 64 0 0-47.9c0-17.7-14.3-32-32-32z\"],\n \"arrows-left-right-to-line\": [576, 512, [], \"e4ba\", \"M32 96C14.3 96 0 110.3 0 128L0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-17.7-14.3-32-32-32zM390.6 342.6l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-133.5 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 133.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0zM576 128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256z\"],\n \"trash\": [448, 512, [], \"f1f8\", \"M136.7 5.9L128 32 32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0-8.7-26.1C306.9-7.2 294.7-16 280.9-16L167.1-16c-13.8 0-26 8.8-30.4 21.9zM416 144L32 144 53.1 467.1C54.7 492.4 75.7 512 101 512L347 512c25.3 0 46.3-19.6 47.9-44.9L416 144z\"],\n \"face-sad-tear\": [512, 512, [128546, \"sad-tear\"], \"f5b4\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm271 98c5.5-1.3 11.1-2 17-2 24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50-12.5 0-24.6 1.9-35.9 5.5 9.8 12.7 16.5 27.9 18.9 44.6zM176 240a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm192-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM185.4 292.8c-2.4-2.9-5.7-4.8-9.4-4.8s-7 1.9-9.4 4.8c-6.5 7.8-12.6 16.1-18.3 24.6-9 13.4-20.3 30.2-20.3 47.4 0 28.3 21.5 51.2 48 51.2s48-22.9 48-51.2c0-17.2-11.2-34-20.3-47.4-5.7-8.5-11.9-16.7-18.3-24.6z\"],\n \"fax\": [512, 512, [128224, 128439], \"f1ac\", \"M160 64l0 80 64 0 0-80 146.7 0 45.3 45.3 0 34.7 64 0 0-34.7c0-17-6.7-33.3-18.7-45.3L416 18.7C404 6.7 387.7 0 370.7 0L224 0c-35.3 0-64 28.7-64 64zM32 128c-17.7 0-32 14.3-32 32L0 448c0 17.7 14.3 32 32 32l48 0c17.7 0 32-14.3 32-32l0-288c0-17.7-14.3-32-32-32l-48 0zm448 64l-320 0 0 256c0 17.7 14.3 32 32 32l288 0c17.7 0 32-14.3 32-32l0-224c0-17.7-14.3-32-32-32zM224 288a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm0 96a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM336 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM312 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM424 264a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM400 384a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"person-circle-plus\": [640, 512, [], \"e541\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm16-208l0 48 48 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n \"hamsa\": [512, 512, [], \"f665\", \"M34.6 288L80 288c8.8 0 16-7.2 16-16L96 72c0-22.1 17.9-40 40-40s40 17.9 40 40l0 132c0 11 9 20 20 20s20-9 20-20l0-164c0-22.1 17.9-40 40-40s40 17.9 40 40l0 164c0 11 9 20 20 20s20-9 20-20l0-132c0-22.1 17.9-40 40-40s40 17.9 40 40l0 200c0 8.8 7.2 16 16 16l45.4 0c19.1 0 34.6 15.5 34.6 34.6 0 8.6-3.2 16.9-9 23.3L416.6 441c-41.1 45.2-99.4 71-160.6 71S136.6 486.2 95.4 441L9 345.9c-5.8-6.4-9-14.7-9-23.3 0-19.1 15.5-34.6 34.6-34.6zM256 288c-38.4 0-76.8 35.8-90.6 50.2-3.6 3.7-5.4 8.7-5.4 13.8s1.8 10.1 5.4 13.8C179.2 380.2 217.6 416 256 416s76.8-35.8 90.6-50.2c3.6-3.7 5.4-8.7 5.4-13.8s-1.8-10.1-5.4-13.8C332.8 323.8 294.4 288 256 288zm0 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"person-circle-question\": [640, 512, [], \"e542\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z\"],\n \"clipboard-check\": [384, 512, [], \"f46c\", \"M256 0c23.7 0 44.4 12.9 55.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0zm26.9 212.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6s-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L288.2 246.1c7.8-10.7 5.4-25.7-5.3-33.5zM136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64z\"],\n \"share-from-square\": [576, 512, [61509, \"share-square\"], \"f14d\", \"M384.5 24l0 72-64 0c-79.5 0-144 64.5-144 144 0 93.4 82.8 134.8 100.6 142.6 2.2 1 4.6 1.4 7.1 1.4l2.5 0c9.8 0 17.8-8 17.8-17.8 0-8.3-5.9-15.5-12.8-20.3-8.9-6.2-19.2-18.2-19.2-40.5 0-45 36.5-81.5 81.5-81.5l30.5 0 0 72c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2l136-136c9.4-9.4 9.4-24.6 0-33.9L425.5 7c-6.9-6.9-17.2-8.9-26.2-5.2S384.5 14.3 384.5 24zm-272 72c-44.2 0-80 35.8-80 80l0 256c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 8.8-7.2 16-16 16l-256 0c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0z\"],\n \"receipt\": [384, 512, [129534], \"f543\", \"M14 2.2C22.5-1.7 32.5-.3 39.6 5.8L80 40.4 120.4 5.8c9-7.7 22.3-7.7 31.2 0L192 40.4 232.4 5.8c9-7.7 22.2-7.7 31.2 0L304 40.4 344.4 5.8c7.1-6.1 17.1-7.5 25.6-3.6S384 14.6 384 24l0 464c0 9.4-5.5 17.9-14 21.8s-18.5 2.5-25.6-3.6l-40.4-34.6-40.4 34.6c-9 7.7-22.2 7.7-31.2 0l-40.4-34.6-40.4 34.6c-9 7.7-22.3 7.7-31.2 0L80 471.6 39.6 506.2c-7.1 6.1-17.1 7.5-25.6 3.6S0 497.4 0 488L0 24C0 14.6 5.5 6.1 14 2.2zM104 136c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0zM80 352c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24-120c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"],\n \"equals\": [448, 512, [62764], \"3d\", \"M32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 128zm0 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320z\"],\n \"chevron-up\": [448, 512, [], \"f077\", \"M201.4 105.4c12.5-12.5 32.8-12.5 45.3 0l192 192c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L224 173.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l192-192z\"],\n \"virus-slash\": [576, 512, [], \"e075\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-88.6-88.6c1.7-12.1-2-24.8-11.3-34-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0c-31.2 31.2-84.5 9.1-84.5-35 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-9.3-9.3-22-13-34-11.3L41-24.9zM72 216c-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-21.4 12.6-37.6 29.1-45.1l-240-240C109.6 203.4 93.4 216 72 216z\"],\n \"slash\": [576, 512, [], \"f715\", \"M7-25c9.4-9.4 24.6-9.4 33.9 0L569 503c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9C-2.3-.4-2.3-15.6 7-25z\"],\n \"expand\": [448, 512, [], \"f065\", \"M32 32C14.3 32 0 46.3 0 64l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM448 352c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96z\"],\n \"note-sticky\": [448, 512, [62026, \"sticky-note\"], \"f249\", \"M64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 213.5c0 17-6.7 33.3-18.7 45.3L322.7 461.3c-12 12-28.3 18.7-45.3 18.7L64 480zM389.5 304L296 304c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5z\"],\n \"table-columns\": [448, 512, [\"columns\"], \"f0db\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 64l0 256 128 0 0-256-128 0zm320 0l-128 0 0 256 128 0 0-256z\"],\n \"person-shelter\": [512, 512, [], \"e54f\", \"M271.9 4.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128C6.2 137.9 0 148.5 0 160L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32L64 178.6 256 68.9 448 178.6 448 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320c0-11.5-6.2-22.1-16.1-27.8l-224-128zM256 208a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm-8 192l16 0 0 88c0 13.3 10.7 24 24 24s24-10.7 24-24l0-174.5 26.9 49.9c6.3 11.7 20.8 16 32.5 9.8s16-20.8 9.8-32.5l-33.2-61.7C329.7 245.1 294.4 224 256 224s-73.7 21.1-91.9 54.9l-33.2 61.7c-6.3 11.7-1.9 26.2 9.8 32.5s26.2 1.9 32.5-9.8L200 313.5 200 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-88z\"],\n \"circle-notch\": [512, 512, [], \"f1ce\", \"M222.7 32.1c5 16.9-4.6 34.8-21.5 39.8-79.3 23.6-137.1 97.1-137.1 184.1 0 106 86 192 192 192s192-86 192-192c0-86.9-57.8-160.4-137.1-184.1-16.9-5-26.6-22.9-21.5-39.8s22.9-26.6 39.8-21.5C434.9 42.1 512 140 512 256 512 397.4 397.4 512 256 512S0 397.4 0 256c0-116 77.1-213.9 182.9-245.4 16.9-5 34.8 4.6 39.8 21.5z\"],\n \"water\": [512, 512, [], \"f773\", \"M410.6 124.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm0 144c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.7-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 144c21.3-16.1 49.9-16.1 71.2 0 20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"],\n \"delete-left\": [640, 512, [9003, \"backspace\"], \"f55a\", \"M576 128c0-35.3-28.7-64-64-64L205.3 64c-17 0-33.3 6.7-45.3 18.7L9.4 233.4c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6L160 429.3c12 12 28.3 18.7 45.3 18.7L512 448c35.3 0 64-28.7 64-64l0-256zM284.1 188.1c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"broom-ball\": [576, 512, [\"quidditch\", \"quidditch-broom-ball\"], \"f458\", \"M496 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zM106.8 277.2c30.6-30.6 73.1-45.9 115.8-42.2L341 353.3c3.7 42.8-11.6 85.2-42.2 115.9-27.4 27.4-64.6 42.8-103.3 42.8L22.1 512c-12.2 0-22.1-9.9-22.1-22.1 0-6.3 2.7-12.3 7.3-16.5L133.7 359.7c4.2-3.7-.4-10.4-5.4-7.9L77.2 377.4c-6.1 3-13.2-1.4-13.2-8.2 0-31.5 12.5-61.8 34.8-84l8-8zm417-270c12.6-10.3 31.1-9.5 42.8 2.2s12.4 30.2 2.2 42.8l-2.2 2.4-192 192 34.8 34.7c4.2 4.2 6.6 10 6.6 16 0 12.5-10.1 22.6-22.6 22.6l-29.1 0-108.3-108.3 0-29.1c0-12.5 10.1-22.6 22.6-22.6 6 0 11.8 2.4 16 6.6l34.8 34.7 192-192 2.4-2.2z\"],\n \"j\": [320, 512, [106], \"4a\", \"M288 32c17.7 0 32 14.3 32 32l0 256c0 88.4-71.6 160-160 160S0 408.4 0 320l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32c0 53 43 96 96 96s96-43 96-96l0-256c0-17.7 14.3-32 32-32z\"],\n \"shuttle-space\": [576, 512, [\"space-shuttle\"], \"f197\", \"M0 368l0 64c0 26.5 21.5 48 48 48l50 0c40.6 0 80.4-11 115.2-31.9l133.5-80.1-93.3 0-64.9 38.9c-14 8.4-28.9 14.7-44.5 19l0-66.4c9.7-5.6 17.8-13.7 23.4-23.4l198.8 0c67.1 0 127.8-20.6 170.3-70.6 4.6-5.4 4.6-13.3 0-18.8-42.5-50.1-103.2-70.6-170.3-70.6l-198.8 0c-5.6-9.7-13.7-17.8-23.4-23.4l0-66.4c15.6 4.2 30.6 10.6 44.5 19l64.9 38.9 93.3 0-133.5-80.1C178.4 43 138.6 32 98 32L48 32C21.5 32 0 53.5 0 80L0 368zm96 0l0 64-48 0 0-64 48 0zM96 80l0 64-48 0 0-64 48 0zM416 224c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"],\n \"yin-yang\": [512, 512, [9775], \"f6ad\", \"M224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 352a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-448c53 0 96 43 96 96s-43 96-96 96-96 43-96 96 43 96 96 96C150 448 64 362 64 256S150 64 256 64zM224 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"stop\": [448, 512, [9209], \"f04d\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z\"],\n \"trowel\": [576, 512, [], \"e589\", \"M407.9 181.4L277.3 312 342.6 377.4c7.9 7.9 11.1 19.4 8.4 30.3s-10.8 19.6-21.5 22.9l-256 80c-11.4 3.5-23.8 .5-32.2-7.9s-11.5-20.8-7.9-32.2l80-256c3.3-10.7 12-18.9 22.9-21.5s22.4 .5 30.3 8.4L232 266.7 362.6 136.1c-14.3-14.6-14.2-38 .3-52.5l95.4-95.4c26.9-26.9 70.5-26.9 97.5 0s26.9 70.5 0 97.5l-95.4 95.4c-14.5 14.5-37.9 14.6-52.5 .3z\"],\n \"hand-back-fist\": [384, 512, [\"hand-rock\"], \"f255\", \"M7.4 253.6C2.6 245.9 0 237.1 0 228l0-36c0-26.5 21.5-48 48-48l16 0 0-80c0-26.5 21.5-48 48-48 17.3 0 32.4 9.1 40.9 22.8 4.3-22.1 23.8-38.8 47.1-38.8 23.4 0 42.9 16.8 47.1 38.9 7.3-4.4 15.8-6.9 24.9-6.9 22.1 0 40.8 15 46.3 35.4 5.5-2.2 11.4-3.4 17.7-3.4 26.5 0 48 21.5 48 48l0 96.9c0 9.9-2.3 19.7-6.8 28.6l-39.6 79.1c-10.8 21.7-33 35.4-57.2 35.4L96 352c-16.5 0-31.8-8.4-40.6-22.4l-48-76zM32 480l0-48c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32z\"],\n \"temperature-high\": [512, 512, [], \"f769\", \"M96 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S48 447.5 48 368c0-42.6 18.5-81 48-107.3L96 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3L216 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM464 80a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM352 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0z\"],\n \"greater-than\": [512, 512, [62769], \"3e\", \"M34.9 50.6c-7.4 16-.4 35.1 15.6 42.5L403.6 256 50.6 419c-16 7.4-23.1 26.4-15.6 42.5s26.4 23 42.5 15.6l416-192c11.3-5.2 18.6-16.6 18.6-29.1s-7.3-23.8-18.6-29.1L77.4 35c-16-7.4-35.1-.4-42.5 15.6z\"],\n \"crutch\": [512, 512, [], \"f7f7\", \"M297.4 9.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-1.4-1.4-158.6 158.6c-18 18-42.4 28.1-67.9 28.1l-59 0c-8.5 0-16.6 3.4-22.6 9.4-61.7 61.7-92.8 92.8-93.3 93.3-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l16-16 0 0 77.3-77.3c6-6 9.4-14.1 9.4-22.6l0-59c0-25.5 10.1-49.9 28.1-67.9L298.7 56 297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3zM344 101.3L261.3 184 328 250.7 410.7 168 344 101.3zm-128 128l-30.6 30.6c-6 6-9.4 14.1-9.4 22.6l0 53.5 53.5 0c8.5 0 16.6-3.4 22.6-9.4L282.7 296 216 229.3z\"],\n \"septagon\": [576, 512, [\"heptagon\"], \"e820\", \"M267.4-31.5c15.9-5.5 33.5-4.6 48.8 2.7l172.4 83 6.3 3.5c14.2 9 24.5 23.3 28.3 39.9l42.6 186.5 1.2 7.2c1.6 14.3-1.7 28.8-9.4 41.1l-4.2 5.9-119.3 149.6c-12.1 15.2-30.6 24.1-50 24.1l-191.3 0c-19.5 0-37.9-8.9-50-24.1L23.5 338.4c-12.1-15.2-16.7-35.2-12.3-54.2l42.6-186.5 2-7c5.6-15.9 17.2-29 32.6-36.4l172.4-83 6.7-2.7z\"],\n \"street-view\": [512, 512, [], \"f21d\", \"M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM224 160l64 0c35.3 0 64 28.7 64 64l0 48c0 17.7-14.3 32-32 32l-1.8 0-11.1 99.5c-1.8 16.2-15.5 28.5-31.8 28.5l-38.7 0c-16.3 0-30-12.3-31.8-28.5l-11.1-99.5-1.8 0c-17.7 0-32-14.3-32-32l0-48c0-35.3 28.7-64 64-64zM412.4 400.2c-16.1-4.2-34.8-7.6-55.4-10.2l5.3-47.7c22.7 2.9 43.7 6.7 62.1 11.5 22.4 5.8 42.6 13.3 57.8 23.3 14.7 9.6 29.8 24.9 29.8 47s-15.1 37.4-29.8 47c-15.2 9.9-35.5 17.5-57.8 23.3-45.1 11.7-105.3 17.8-168.4 17.8s-123.3-6.1-168.4-17.8C65.2 488.4 45 480.9 29.8 471 15.1 461.4 0 446.1 0 424s15.1-37.4 29.8-47c15.2-9.9 35.5-17.5 57.8-23.3 18.5-4.8 39.5-8.6 62.1-11.5L155 390c-20.6 2.6-39.3 6.1-55.4 10.2-56.6 14.6-56.6 32.9 0 47.5 39.9 10.3 95.8 16.2 156.4 16.2s116.5-5.9 156.4-16.2c56.6-14.6 56.6-32.9 0-47.5z\"],\n \"wave-square\": [512, 512, [], \"f83e\", \"M64 96c0-17.7 14.3-32 32-32l160 0c17.7 0 32 14.3 32 32l0 288 96 0 0-128c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 17.7-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32l0-288-96 0 0 128c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-128z\"],\n \"angle-left\": [256, 512, [8249], \"f104\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"],\n \"screwdriver\": [576, 512, [129691], \"f54a\", \"M352.1 146.7l0-49.6c0-10.7 5.3-20.7 14.2-26.6L485.2-8.7c6.3-4.2 14.8-3.4 20.2 2l45.4 45.5c5.4 5.4 6.2 13.8 2 20.2L473.6 177.8c-5.9 8.9-15.9 14.2-26.6 14.2l-49.6 0-90.7 90.7c15 33.3 8.9 73.9-18.5 101.3L162.1 510.1c-18.7 18.7-49.1 18.7-67.9 0L34.1 449.9c-18.7-18.7-18.7-49.1 0-67.9L160.1 256c27.4-27.4 67.9-33.6 101.3-18.5l90.7-90.7z\"],\n \"tractor\": [576, 512, [128668], \"f722\", \"M160 96l0 96 133.4 0-57.6-96-75.8 0zM96 223L96 64c0-17.7 14.3-32 32-32l107.8 0c22.5 0 43.3 11.8 54.9 31.1l77.4 128.9 64 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 48 0c26.5 0 48 21.5 48 48l0 41.5c0 14.2-6.3 27.8-17.3 36.9l-35 29.2c26.5 15.2 44.3 43.7 44.3 76.4 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-14.4 3.5-28 9.6-40l-101.2 0c-3 13.4-7.9 26-14.4 37.7 7.7 9.4 7.2 23.4-1.6 32.2l-22.6 22.6c-8.8 8.8-22.7 9.3-32.2 1.6-9.3 5.2-19.3 9.3-29.8 12.3-1.2 12.1-11.4 21.6-23.9 21.6l-32 0c-12.4 0-22.7-9.5-23.9-21.6-10.5-3-20.4-7.2-29.8-12.3-9.4 7.7-23.4 7.2-32.2-1.6L35.5 453.8c-8.8-8.8-9.3-22.7-1.6-32.2-5.2-9.3-9.3-19.3-12.3-29.8-12.1-1.2-21.6-11.4-21.6-23.9l0-32c0-12.4 9.5-22.7 21.6-23.9 3-10.5 7.2-20.4 12.3-29.8-7.7-9.4-7.2-23.4 1.6-32.2l22.6-22.6c8.8-8.8 22.7-9.3 32.2-1.6 1.9-1 3.7-2 5.7-3zm64 65a64 64 0 1 0 0 128 64 64 0 1 0 0-128zM440 424a40 40 0 1 0 80 0 40 40 0 1 0 -80 0z\"],\n \"bridge-circle-xmark\": [576, 512, [], \"e4cb\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"vials\": [512, 512, [], \"f493\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 352c0 53 43 96 96 96s96-43 96-96l0-352 64 0 0 352c0 53 43 96 96 96s96-43 96-96l0-352c17.7 0 32-14.3 32-32S497.7 0 480 0L32 0zM160 64l0 128-64 0 0-128 64 0zm256 0l0 128-64 0 0-128 64 0z\"],\n \"stethoscope\": [576, 512, [129658], \"f0f1\", \"M32 48C32 21.5 53.5 0 80 0l48 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 128c0 53 43 96 96 96s96-43 96-96l0-128-32 0c-17.7 0-32-14.3-32-32S238.3 0 256 0l48 0c26.5 0 48 21.5 48 48l0 144c0 77.4-55 142-128 156.8l0 19.2c0 61.9 50.1 112 112 112s112-50.1 112-112l0-85.5c-37.3-13.2-64-48.7-64-90.5 0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 85.5c0 97.2-78.8 176-176 176S160 465.2 160 368l0-19.2C87 334 32 269.4 32 192L32 48zM480 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"podcast\": [448, 512, [], \"f2ce\", \"M336 359.8c39.1-32.3 64-81.1 64-135.8 0-97.2-78.8-176-176-176S48 126.8 48 224C48 278.7 72.9 327.5 112 359.8 112.4 377.4 115.2 400.2 118.4 421.6 48 383.9 0 309.5 0 224 0 100.3 100.3 0 224 0S448 100.3 448 224c0 85.6-48 159.9-118.5 197.6 3.3-21.4 6-44.2 6.4-61.8zm-14-53.4c-8.3-12.6-19.2-21.6-30.4-27.8-2.1-1.1-4.2-2.2-6.3-3.2 11.7-13.9 18.8-31.9 18.8-51.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 19.6 7.1 37.6 18.8 51.5-2.1 1-4.2 2-6.3 3.2-11.2 6.2-22.1 15.2-30.4 27.8-18.8-22.3-30.1-51-30.1-82.4 0-70.7 57.3-128 128-128s128 57.3 128 128c0 31.4-11.3 60.2-30.1 82.4zM224 312c32.9 0 64 8.6 64 43.8 0 33-12.9 104.1-20.6 132.9-5.1 19-24.5 23.4-43.4 23.4s-38.2-4.4-43.4-23.4c-7.8-28.5-20.6-99.7-20.6-132.8 0-35.1 31.1-43.8 64-43.8zm0-128a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],\n \"arrow-up-right-dots\": [512, 512, [], \"e4b7\", \"M96 32C78.3 32 64 46.3 64 64S78.3 96 96 96L114.7 96 9.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 141.3 160 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 32zM403.8 70.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM279.7 194.2a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm162.2-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zM156.2 317.8a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zM70.1 403.8a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0zm161.6-38.1a38.1 38.1 0 1 0 0 76.2 38.1 38.1 0 1 0 0-76.2zm86.1 38.1a38.1 38.1 0 1 0 76.2 0 38.1 38.1 0 1 0 -76.2 0z\"],\n \"chess-queen\": [512, 512, [9819], \"f445\", \"M256 80a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM5.5 185L128 384 71.8 454.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L384 384 506.5 185c3.6-5.9 5.5-12.7 5.5-19.6l0-.6c0-20.3-16.5-36.8-36.8-36.8-7.3 0-14.4 2.2-20.4 6.2l-16.9 11.3c-12.7 8.5-29.6 6.8-40.4-4l-34.1-34.1C356.1 100.1 346.2 96 336 96s-20.1 4.1-27.3 11.3l-30.1 30.1c-12.5 12.5-32.8 12.5-45.3 0l-30.1-30.1C196.1 100.1 186.2 96 176 96s-20.1 4.1-27.3 11.3l-34.1 34.1c-10.8 10.8-27.7 12.5-40.4 4L57.3 134.2c-6.1-4-13.2-6.2-20.4-6.2-20.3 0-36.8 16.5-36.8 36.8l0 .6c0 6.9 1.9 13.7 5.5 19.6z\"],\n \"anchor-circle-exclamation\": [640, 512, [], \"e4ab\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"ellipsis-vertical\": [128, 512, [\"ellipsis-v\"], \"f142\", \"M64 144a56 56 0 1 1 0-112 56 56 0 1 1 0 112zm0 224c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-112c0 30.9-25.1 56-56 56s-56-25.1-56-56 25.1-56 56-56 56 25.1 56 56z\"],\n \"heart-circle-exclamation\": [576, 512, [], \"e4fe\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"],\n \"building-circle-exclamation\": [576, 512, [], \"e4d3\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"person-arrow-up-from-line\": [576, 512, [], \"e539\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM208 480l0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128 32 0zM566.6 102.6c-12.5 12.5-32.8 12.5-45.3 0L496 77.3 496 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-146.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3z\"],\n \"not-equal\": [448, 512, [], \"f53e\", \"M378.6 81.8c9.8-14.7 5.8-34.6-8.9-44.4s-34.6-5.8-44.4 8.9L270.9 128 32 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l196.2 0-85.3 128-110.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l68.2 0-30.8 46.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9L177.1 384 416 384c17.7 0 32-14.3 32-32s-14.3-32-32-32l-196.2 0 85.3-128 110.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-68.2 0 30.8-46.2z\"],\n \"train-tram\": [384, 512, [128650], \"e5b4\", \"M0 8C0-5.3 10.7-16 24-16l336 0c13.3 0 24 10.7 24 24l0 32c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8-120 0 0 64 40 0c53 0 96 43 96 96l0 160c0 31.2-14.9 59-38 76.5l64.3 76c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74.6-88.1c-3.6 .4-7.3 .6-11.1 .6l-128 0c-3.8 0-7.5-.2-11.1-.6L42.3 535.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l64.3-76C46.9 411 32 383.2 32 352l0-160c0-53 43-96 96-96l40 0 0-64-120 0 0 8c0 13.3-10.7 24-24 24S0 53.3 0 40L0 8zM128 160c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32l-128 0zm32 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"plane-departure\": [576, 512, [128747], \"f5b0\", \"M372 143.9L172.7 40.2c-8-4.1-17.3-4.8-25.7-1.7l-41.1 15c-10.3 3.7-13.8 16.4-7.1 25L200.3 206.4 100.1 242.8 40 206.2c-6.2-3.8-13.8-4.5-20.7-2.1L3 210.1c-9.4 3.4-13.4 14.5-8.3 23.1l53.6 91.8c15.6 26.7 48.1 38.4 77.1 27.8l12.9-4.7 0 0 398.4-145c29.1-10.6 44-42.7 33.5-71.8s-42.7-44-71.8-33.5L372 143.9zM32.2 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-512 0z\"],\n \"right-to-bracket\": [512, 512, [\"sign-in-alt\"], \"f2f6\", \"M345 273c9.4-9.4 9.4-24.6 0-33.9L201 95c-6.9-6.9-17.2-8.9-26.2-5.2S160 102.3 160 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L345 273zm7 143c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0z\"],\n \"sd-card\": [384, 512, [], \"f7c2\", \"M384 64c0-35.3-28.7-64-64-64L125.3 0C108.3 0 92 6.7 80 18.7L18.7 80C6.7 92 0 108.3 0 125.3L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384zM160 88l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24zm88 0l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"house-circle-exclamation\": [640, 512, [], \"e50a\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM496 444a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"],\n \"shekel-sign\": [448, 512, [8362, \"ils\", \"shekel\", \"sheqel\", \"sheqel-sign\"], \"f20b\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c35.3 0 64 28.7 64 64l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-70.7-57.3-128-128-128L32 32zM320 480c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 288c0 35.3-28.7 64-64 64l-128 0 0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 256c0 17.7 14.3 32 32 32l160 0z\"],\n \"radio\": [512, 512, [128251], \"f8d7\", \"M494.8 15c12.7-3.7 20-17.1 16.3-29.8S494-34.8 481.3-31L51.8 94.9C42.4 97.6 33.9 102.1 26.6 108 10.5 119.7 0 138.6 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L218.5 96 494.8 15zM368 208a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM64 248c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 272c-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 368c-13.3 0-24-10.7-24-24z\"],\n \"hand-dots\": [512, 512, [\"allergies\"], \"f461\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208zM200 352a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-88 24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"book-skull\": [448, 512, [\"book-dead\"], \"f6b7\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM272 163.2l0 12.8c0 8.8-7.2 16-16 16l-64 0c-8.8 0-16-7.2-16-16l0-12.8c-19.4-11.7-32-30.3-32-51.2 0-35.3 35.8-64 80-64s80 28.7 80 64c0 20.9-12.6 39.5-32 51.2zM208 112a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 16a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm74.2 95.7c4.6 10.1 .1 21.9-9.9 26.5l-47.9 21.8 47.9 21.8c10.1 4.6 14.5 16.4 9.9 26.5s-16.4 14.5-26.5 9.9L224 294 144.3 330.2c-10.1 4.6-21.9 .1-26.5-9.9s-.1-21.9 9.9-26.5l47.9-21.8-47.9-21.8c-10.1-4.6-14.5-16.4-9.9-26.5s16.4-14.5 26.5-9.9L224 250 303.7 213.8c10.1-4.6 21.9-.1 26.5 9.9z\"],\n \"unlock-keyhole\": [384, 512, [\"unlock-alt\"], \"f13e\", \"M192 32c-35.3 0-64 28.7-64 64l0 64 192 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l0-64c0-70.7 57.3-128 128-128 63.5 0 116.1 46.1 126.2 106.7 2.9 17.4-8.8 33.9-26.3 36.9s-33.9-8.8-36.9-26.3C250 55.1 223.7 32 192 32zm40 328c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0z\"],\n \"file-arrow-up\": [384, 512, [\"file-upload\"], \"f574\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM209 263c-9.4-9.4-24.6-9.4-33.9 0l-64 64c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l23-23 0 86.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-86.1 23 23c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z\"],\n \"face-grin-tears\": [640, 512, [128514, \"grin-tears\"], \"f588\", \"M554.8 203.4l16.3 2.3C547.7 88.4 444.2 0 320 0S92.3 88.4 68.9 205.7l16.3-2.3c37-5.3 68.6 26.4 63.4 63.4l-6.7 46.7c-4.1 29-21.6 53.2-45.8 66.8 43.7 78.5 127.6 131.7 223.8 131.7s180.1-53.1 223.8-131.7c-24.1-13.5-41.6-37.8-45.8-66.8l-6.7-46.7c-5.3-37 26.4-68.6 63.4-63.4zM470.3 326.9C447.9 388.2 389.1 432 320 432S192.1 388.2 169.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1zM212 208l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28zm188-28c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zM640 300.6c0-25.6-18.8-47.3-44.1-50.9L549.1 243c-10.6-1.5-19.6 7.5-18.1 18.1l6.7 46.7c3.6 25.3 25.3 44.1 50.9 44.1 28.4 0 51.4-23 51.4-51.4zm-640 0C0 329 23 352 51.4 352 77 352 98.7 333.2 102.3 307.9l6.7-46.7c1.5-10.6-7.5-19.6-18.1-18.1l-46.7 6.7C18.8 253.3 0 275 0 300.6z\"],\n \"pen-to-square\": [512, 512, [\"edit\"], \"f044\", \"M471.6 21.7c-21.9-21.9-57.3-21.9-79.2 0L368 46.1 465.9 144 490.3 119.6c21.9-21.9 21.9-57.3 0-79.2L471.6 21.7zm-299.2 220c-6.1 6.1-10.8 13.6-13.5 21.9l-29.6 88.8c-2.9 8.6-.6 18.1 5.8 24.6s15.9 8.7 24.6 5.8l88.8-29.6c8.2-2.7 15.7-7.4 21.9-13.5L432 177.9 334.1 80 172.4 241.7zM96 64C43 64 0 107 0 160L0 416c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 64z\"],\n \"earth-europe\": [512, 512, [\"globe-europe\"], \"f7a2\", \"M256.2 48c114.8 .1 207.8 93.2 207.8 208 0 22.1-3.4 43.4-9.8 63.4-2 .4-4.1 .6-6.2 .6l-2.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-50.7c0-8.8 7.2-16 16-16s16-7.2 16-16-7.2-16-16-16l-24 0c-13.3 0-24 10.7-24 24s-10.7 24-24 24l-56 0c-8.8 0-16 7.2-16 16s-7.2 16-16 16l-25.4 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l70.1-70.1c2.1-2.1 3.3-5 3.3-8 0-6.2-5.1-11.3-11.3-11.3l-14.1 0c-12.5 0-22.6-10.1-22.6-22.6 0-6 2.4-11.8 6.6-16l23.1-23.1c.8-.8 1.6-1.5 2.5-2.2zM438.4 356.1c-32.8 59.6-93.9 101.4-165.2 107.2-.7-2.3-1.1-4.8-1.1-7.3 0-13.3-10.7-24-24-24l-26.7 0c-8.5 0-16.6-3.4-22.6-9.4l-29.3-29.3c-6-6-9.4-14.1-9.4-22.6l0-66.7c0-17.7 14.3-32 32-32l98.7 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 14.1 9.4 22.6 9.4l5.5 0c8.5 0 16.6 3.4 22.6 9.4l16 16c4.2 4.2 10 6.6 16 6.6 4.8 0 9.3 1.5 13 4.1zM256 512l26.2-1.3c-8.6 .9-17.3 1.3-26.2 1.3zm26.2-1.3C411.3 497.6 512 388.6 512 256 512 114.6 397.4 0 256 0l0 0C114.6 0 0 114.6 0 256 0 383.5 93.2 489.3 215.3 508.8 228.5 510.9 242.1 512 256 512zM187.3 123.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"face-grin-beam-sweat\": [576, 512, [128517, \"grin-beam-sweat\"], \"f583\", \"M546.2-.1c14.7 17.8 29.8 40.1 29.8 64.1 0 36.4-27.6 64-64 64s-64-27.6-64-64c0-24 15.2-46.3 29.8-64.1 8.8-10.7 18.5-20.8 29-30 3-2.6 7.4-2.6 10.4 0 10.5 9.1 20.1 19.3 29 30zM288 0c42.5 0 82.6 10.4 117.8 28.7-3.6 10.9-5.8 22.7-5.8 35.3 0 62.9 49.1 112 112 112 6.4 0 12.7-.5 18.8-1.5 8.6 25.6 13.2 53 13.2 81.5 0 141.4-114.6 256-256 256S32 397.4 32 256 146.6 0 288 0zM418.7 308.9C379.5 321.1 335.1 328 288 328s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 22.4 61.3 81.3 105.1 150.3 105.1s127.9-43.8 150.3-105.1c4.3-11.8-7.7-21.8-19.6-18.1zM208 180c15.5 0 28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-15.5 12.5-28 28-28zm132 28c0-15.5 12.5-28 28-28s28 12.5 28 28l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-37.6-30.4-68-68-68s-68 30.4-68 68l0 8c0 11 9 20 20 20s20-9 20-20l0-8z\"],\n \"circle-half-stroke\": [512, 512, [9680, \"adjust\"], \"f042\", \"M448 256c0-106-86-192-192-192l0 384c106 0 192-86 192-192zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"person-military-to-person\": [512, 512, [], \"e54c\", \"M71 12.5c-8.6 1-15 8.2-15 16.8 0 9.3 7.5 16.8 16.7 16.9l111.4 0c8.8-.1 15.9-7.2 15.9-16L200 16c0-9.5-8.3-17-17.8-15.9L71 12.5zM189.5 78.1l-122.9 0c-1.6 5.7-2.5 11.7-2.5 17.9 0 35.3 28.7 64 64 64s64-28.7 64-64c0-6.2-.9-12.2-2.5-17.9zM32 256l0 32c0 17.7 14.3 32 32 32l128 0c1.8 0 3.5-.1 5.2-.4L53 208.6C40.1 220.3 32 237.2 32 256zm190.2 42.5c1.1-3.3 1.8-6.8 1.8-10.5l0-32c0-35.3-28.7-64-64-64l-64 0c-3.7 0-7.4 .3-10.9 .9L222.2 298.5zM384 160a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-32 32c-35.3 0-64 28.7-64 64l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-35.3-28.7-64-64-64l-64 0zM215.8 450.1c5.2-4.6 8.2-11.1 8.2-18.1s-3-13.5-8.2-18.1l-64-56c-7.1-6.2-17.1-7.7-25.7-3.8S112 366.6 112 376l0 32-88 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l88 0 0 32c0 9.4 5.5 18 14.1 21.9s18.6 2.4 25.7-3.8l64-56zM288 431.9c0 6.9 3 13.5 8.1 18.1l64 56.4c7.1 6.2 17.1 7.8 25.7 3.9S400 497.8 400 488.4l0-32.4 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-32c0-9.4-5.5-18-14.1-21.9s-18.6-2.4-25.7 3.8l-64 56c-5.2 4.5-8.2 11.1-8.2 18z\"],\n \"table-cells-column-lock\": [640, 512, [], \"e678\", \"M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 368c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"truck-field-un\": [640, 512, [], \"e58e\", \"M96 32C60.7 32 32 60.7 32 96l0 32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l0 48c0 21.1 13.7 39.1 32.6 45.5-.4 3.4-.6 7-.6 10.5 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l144.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l.4 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-24.7 0-1.7-4.2-43.8-106.3c-12.3-30-41.6-49.5-74-49.5l-40.4 0C364.4 44.9 343.7 32 320 32L96 32zM384 224l0-96 31.9 0c6.5 0 12.3 3.9 14.8 9.9l35.4 86.1-82.1 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm280 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM256.6 132.9l27.4 41 0-29.9c0-11 9-20 20-20s20 9 20 20l0 96c0 8.8-5.8 16.6-14.2 19.1s-17.5-.7-22.4-8l-27.4-41 0 29.9c0 11-9 20-20 20s-20-9-20-20l0-96c0-8.8 5.8-16.6 14.2-19.1s17.5 .7 22.4 8zM132 144l0 64c0 6.6 5.4 12 12 12s12-5.4 12-12l0-64c0-11 9-20 20-20s20 9 20 20l0 64c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-64c0-11 9-20 20-20s20 9 20 20z\"],\n \"clock\": [512, 512, [128339, \"clock-four\"], \"f017\", \"M256 0a256 256 0 1 1 0 512 256 256 0 1 1 0-512zM232 120l0 136c0 8 4 15.5 10.7 20l96 64c11 7.4 25.9 4.4 33.3-6.7s4.4-25.9-6.7-33.3L280 243.2 280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n \"book\": [448, 512, [128212], \"f02d\", \"M384 512L96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zM96 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zm32-232c0 13.3 10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0c-13.3 0-24 10.7-24 24zm24 72c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"],\n \"face-laugh-wink\": [512, 512, [\"laugh-wink\"], \"f59c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"],\n \"cloud-meatball\": [512, 512, [], \"f73b\", \"M0 224c0 53 43 96 96 96l26.9 0c3.5-12.1 10.1-23.3 19.2-32.4l1.4-1.4c15-15 35.3-22.9 56.1-22.2 14.2-15.1 34.2-23.9 55.4-23.9l2 0c21.1 0 41.1 8.8 55.4 23.9 20.8-.6 41.1 7.3 56.1 22.2l1.4 1.4c9.2 9.2 15.7 20.4 19.2 32.4l26.9 0c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM156.5 424.3c9.5 6.3 14.2 17.7 11.9 28.8-1.8 9.2 1 18.7 7.7 25.3l1.4 1.4c6.6 6.6 16.1 9.5 25.3 7.7 11.1-2.2 22.5 2.5 28.8 11.9 5.2 7.8 14 12.5 23.3 12.5l2 0c9.4 0 18.1-4.7 23.3-12.5 6.3-9.5 17.7-14.2 28.8-11.9 9.2 1.8 18.7-1 25.3-7.7l1.4-1.4c6.6-6.6 9.5-16.1 7.7-25.3-2.2-11.1 2.5-22.5 11.9-28.8 7.8-5.2 12.5-14 12.5-23.3l0-2c0-9.4-4.7-18.1-12.5-23.3-9.5-6.3-14.2-17.7-11.9-28.8 1.8-9.2-1-18.7-7.7-25.3l-1.4-1.4c-6.6-6.6-16.1-9.5-25.3-7.7-11.1 2.2-22.5-2.5-28.8-11.9-5.2-7.8-14-12.5-23.3-12.5l-2 0c-9.4 0-18.1 4.7-23.3 12.5-6.3 9.5-17.7 14.2-28.8 11.9-9.2-1.8-18.7 1-25.3 7.7l-1.4 1.4c-6.6 6.6-9.5 16.1-7.7 25.3 2.2 11.1-2.5 22.5-11.9 28.8-7.8 5.2-12.5 14-12.5 23.3l0 2c0 9.4 4.7 18.1 12.5 23.3zM48 448a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm416 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],\n \"chart-area\": [512, 512, [\"area-chart\"], \"f1fe\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM240 96c6.7 0 13.1 2.8 17.7 7.8L328.8 181.3 375 135c9.4-9.4 24.6-9.4 33.9 0l64 64c4.5 4.5 7 10.6 7 17l0 112c0 13.3-10.7 24-24 24l-304 0c-13.3 0-24-10.7-24-24l0-112c0-6 2.3-11.8 6.3-16.2l88-96c4.5-5 11-7.8 17.7-7.8z\"],\n \"rupiah-sign\": [512, 512, [], \"e23d\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm256-32l80 0c61.9 0 112 50.1 112 112S461.9 448 400 448l-48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32zm80 160c26.5 0 48-21.5 48-48s-21.5-48-48-48l-48 0 0 96 48 0z\"],\n \"text-width\": [448, 512, [], \"f035\", \"M40 0C17.9 0 0 17.9 0 40L0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 128 0 0 160-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-160 128 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 0zm78.6 406.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 229.5 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-229.5 0 9.4-9.4z\"],\n \"satellite\": [512, 512, [128752], \"f7bf\", \"M199 7c9.4-9.4 24.6-9.4 33.9 0l89.4 89.4 55-55c12.5-12.5 32.8-12.5 45.3 0l48 48c12.5 12.5 12.5 32.8 0 45.3l-55 55 89.4 89.4c9.4 9.4 9.4 24.6 0 33.9l-96 96c-9.4 9.4-24.6 9.4-33.9 0l-89.4-89.4-15.5 15.5c11.4 24.6 17.8 52 17.8 80.9 0 31.7-7.7 61.5-21.2 87.8-4.7 9-16.7 10.3-23.8 3.1l-96.3-96.3-60 60c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l60-60-96.3-96.3c-7.2-7.2-5.9-19.2 3.1-23.8 26.3-13.6 56.2-21.2 87.8-21.2 28.9 0 56.3 6.4 80.9 17.8L192.4 226.3 103 137c-9.4-9.4-9.4-24.6 0-33.9L199 7zm17 50.9l-62.1 62.1 72.4 72.4 62.1-62.1-72.4-72.4zM392 358.1l62.1-62.1-72.4-72.4-62.1 62.1 72.4 72.4z\"],\n \"magnifying-glass-minus\": [512, 512, [\"search-minus\"], \"f010\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM136 184c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"people-group\": [512, 512, [], \"e533\", \"M256 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 92.1c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-92.1C172.7 359 160 337 160 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zM96 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm16 240l0 32c0 32.5 12.1 62.1 32 84.7l0 75.3c0 1.2 0 2.5 .1 3.7-8.5 7.6-19.7 12.3-32.1 12.3l-32 0c-26.5 0-48-21.5-48-48l0-56.6C12.9 364.4 0 343.7 0 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1zM368 464l0-75.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 56.6c0 26.5-21.5 48-48 48l-32 0c-12.3 0-23.6-4.6-32.1-12.3 0-1.2 .1-2.5 .1-3.7zM416 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"],\n \"square-binary\": [448, 512, [], \"e69b\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm144 4c-24.3 0-44 19.7-44 44l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0zm-4 44c0-2.2 1.8-4 4-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48zm140-44c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0zM132 296c0 9.7 6.9 17.7 16 19.6l0 76.4c0 11 9 20 20 20s20-9 20-20l0-96c0-11-9-20-20-20l-16 0c-11 0-20 9-20 20zm96 24l0 48c0 24.3 19.7 44 44 44l32 0c24.3 0 44-19.7 44-44l0-48c0-24.3-19.7-44-44-44l-32 0c-24.3 0-44 19.7-44 44zm44-4l32 0c2.2 0 4 1.8 4 4l0 48c0 2.2-1.8 4-4 4l-32 0c-2.2 0-4-1.8-4-4l0-48c0-2.2 1.8-4 4-4z\"],\n \"masks-theater\": [576, 512, [127917, \"theater-masks\"], \"f630\", \"M-5 118L23.5 279.7c14 79.5 76.3 141.8 155.8 155.8l12.7 2.2c-16.5-28.6-27.1-60.7-30.6-94.5l-24.1 4.3c-9.7 1.7-18.8-5.8-16.9-15.5 4.8-24.7 19.1-46.6 39.7-60.9l0-74.6c-1.4 .8-3 1.3-4.7 1.6l-63 11.1c-8.7 1.5-17.3-4.4-15.9-13.1 3.1-19.6 18.4-36 39.1-39.7 17.2-3 33.9 3.5 44.6 15.8l0-22.7c0-22.5 6.9-52.4 32.3-73.4 26-21.5 67.7-43.9 124.9-54.2-30.5-16.3-86.3-32-163.8-18.4-80.3 14.2-128 50.1-150.1 76.1-9 10.5-10.8 24.9-8.4 38.5zM208 138.7l0 174.8c0 80.7 50.5 152.9 126.4 180.4L362.1 504c14.1 5.1 29.6 5.1 43.7 0L433.6 494C509.5 466.4 560 394.3 560 313.5l0-174.8c0-6.9-2.1-13.8-7-18.6-22.6-22.5-78.2-56-169-56s-146.4 33.6-169 56c-4.9 4.9-7 11.7-7 18.6zm66.1 187.1c-1.4-7 7-11 12.7-6.6 26.9 20.6 60.6 32.9 97.2 32.9s70.2-12.3 97.2-32.9c5.7-4.4 14.1-.4 12.7 6.6-10.1 51.4-55.5 90.3-109.9 90.3s-99.8-38.8-109.9-90.3zm.5-101.5C281.2 205.5 299 192 320 192s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7l-64 0c-8.8 0-16.3-7.4-13.4-15.7zM480 240l-64 0c-8.8 0-16.3-7.4-13.4-15.7 6.5-18.8 24.4-32.3 45.4-32.3s38.9 13.5 45.4 32.3c2.9 8.4-4.5 15.7-13.4 15.7z\"],\n \"cart-plus\": [640, 512, [], \"f217\", \"M0 8C0-5.3 10.7-16 24-16l45.3 0c27.1 0 50.3 19.4 55.1 46l.4 2 412.7 0c20 0 35.1 18.2 31.4 37.9L537.8 235.8c-5.7 30.3-32.1 52.2-62.9 52.2l-303.6 0 5.1 28.3c2.1 11.4 12 19.7 23.6 19.7L456 336c13.3 0 24 10.7 24 24s-10.7 24-24 24l-255.9 0c-34.8 0-64.6-24.9-70.8-59.1L77.2 38.6c-.7-3.8-4-6.6-7.9-6.6L24 32C10.7 32 0 21.3 0 8zM160 464a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm224 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM336 78.4c-13.3 0-24 10.7-24 24l0 33.6-33.6 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.6 0 0 33.6c0 13.3 10.7 24 24 24s24-10.7 24-24l0-33.6 33.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-33.6 0 0-33.6c0-13.3-10.7-24-24-24z\"],\n \"hands-asl-interpreting\": [640, 512, [\"american-sign-language-interpreting\", \"asl-interpreting\", \"hands-american-sign-language-interpreting\"], \"f2a3\", \"M156.6 46.3c7.9-15.8 1.5-35-14.3-42.9s-35-1.5-42.9 14.3L13.5 189.4C4.6 207.2 0 226.8 0 246.7L0 256c0 70.7 57.3 128 128 128l80 0 0-.3c35.2-2.7 65.4-22.8 82.1-51.7 8.8-15.3 3.6-34.9-11.7-43.7s-34.9-3.6-43.7 11.7c-7 12-19.9 20-34.7 20-22.1 0-40-17.9-40-40s17.9-40 40-40c14.8 0 27.7 8 34.7 20 8.8 15.3 28.4 20.5 43.7 11.7s20.5-28.4 11.7-43.7c-12.8-22.1-33.6-39.1-58.4-47.1l80.8-22c17-4.6 27.1-22.2 22.5-39.3s-22.2-27.1-39.3-22.5l-100.7 27.5 81.6-68c13.6-11.3 15.4-31.5 4.1-45.1S249.1-3.9 235.5 7.4l-101.9 84.9 23-46zM483.4 465.7c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l85.9-171.7c8.9-17.8 13.5-37.4 13.5-57.2l0-9.3c0-70.7-57.3-128-128-128l-80 0 0 .3c-35.2 2.7-65.4 22.8-82.1 51.7-8.9 15.3-3.6 34.9 11.7 43.7s34.9 3.6 43.7-11.7c7-12 19.9-20 34.7-20 22.1 0 40 17.9 40 40s-17.9 40-40 40c-14.8 0-27.7-8-34.7-20-8.9-15.3-28.4-20.5-43.7-11.7s-20.5 28.4-11.7 43.7c12.8 22.1 33.6 39.1 58.4 47.1l-80.8 22c-17.1 4.6-27.1 22.2-22.5 39.3s22.2 27.1 39.3 22.5l100.7-27.5-81.6 68c-13.6 11.3-15.4 31.5-4.1 45.1s31.5 15.4 45.1 4.1l101.9-84.9-23 46z\"],\n \"table-cells-row-unlock\": [640, 512, [], \"e691\", \"M256 224l0 192 64 0 0-192-64 0zm256-79c-46.7 5.8-85.6 36.8-102.7 79l-25.3 0 0 90.8c-10.1 15.2-16 33.4-16 53.1l0 96c0 5.5 .5 10.9 1.3 16.1L128 480c-35.3 0-64-28.7-64-64L64 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 49zM128 224l0 192 64 0 0-192-64 0zm432 48c-.1-17.6-14.4-31.9-32-31.9-17.7 0-32 14.3-32 32l0 47.9 96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80 44.2 0 79.9 35.8 80 79.9l-48 0z\"],\n \"rocket\": [512, 512, [], \"f135\", \"M128 320L24.5 320c-24.9 0-40.2-27.1-27.4-48.5L50 183.3C58.7 168.8 74.3 160 91.2 160l95 0c76.1-128.9 189.6-135.4 265.5-124.3 12.8 1.9 22.8 11.9 24.6 24.6 11.1 75.9 4.6 189.4-124.3 265.5l0 95c0 16.9-8.8 32.5-23.3 41.2l-88.2 52.9c-21.3 12.8-48.5-2.6-48.5-27.4L192 384c0-35.3-28.7-64-64-64l-.1 0zM400 160a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"shrimp\": [512, 512, [129424], \"e448\", \"M72 32C32.2 32 0 64.2 0 104 0 141.9 29.3 172.9 66.4 175.8 77.6 257.2 147.4 320 232 320l56 0 0-192-216 0c-13.3 0-24-10.7-24-24S58.7 80 72 80l384 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L72 32zM224 456c0 13.3 10.7 24 24 24l72 0 0-72.2-64.1-22.4c-12.5-4.4-26.2 2.2-30.6 14.7s2.2 26.2 14.7 30.6l4.5 1.6C233 433.9 224 443.9 224 456zm128 23.3c36.4-3.3 69.5-17.6 96.1-39.6l-86.5-34.6c-3 1.8-6.2 3.2-9.6 4.3l0 69.9zM472.6 415c24.6-30.3 39.4-68.9 39.4-111 0-12.3-1.3-24.3-3.7-35.9L382.8 355.1c.8 3.4 1.2 7 1.2 10.6 0 4.6-.7 9-1.9 13.1L472.6 415zM336 128l-16 0 0 192 18.3 0c9.9 0 19.1 3.2 26.6 8.5l133.5-92.4C471.8 172.6 409.1 128 336 128zM168 192a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"tenge-sign\": [384, 512, [8376, \"tenge\"], \"f7d7\", \"M0 56C0 42.7 10.7 32 24 32l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 80C10.7 80 0 69.3 0 56zM0 160c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0 0 256c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-256-128 0c-17.7 0-32-14.3-32-32z\"],\n \"house-chimney-medical\": [512, 512, [\"clinic-medical\"], \"f7f2\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM224 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"],\n \"users-slash\": [640, 512, [], \"e073\", \"M73-24.9c-9.4-9.4-24.6-9.4-33.9 0S29.7-.3 39 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L321.8 224c56.6-1 102.2-47.2 102.2-104 0-57.4-46.6-104-104-104-56.8 0-103 45.6-104 102.2L73-24.9zM512 288c-17.2 0-33.7 3.4-48.7 9.6l170 170c4.2-5.4 6.7-12.2 6.7-19.6l0-32c0-70.7-57.3-128-128-128zM59.9 97.7c-21.5 12.5-35.9 35.7-35.9 62.3 0 39.8 32.2 72 72 72 26.6 0 49.8-14.4 62.3-35.9L59.9 97.7zM250.2 288C196.8 313.9 160 368.7 160 432l0 16c0 17.7 14.3 32 32 32l250.2 0-192-192zM128 288C57.3 288 0 345.3 0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z\"],\n \"paper-plane\": [576, 512, [61913], \"f1d8\", \"M536.4-26.3c9.8-3.5 20.6-1 28 6.3s9.8 18.2 6.3 28l-178 496.9c-5 13.9-18.1 23.1-32.8 23.1-14.2 0-27-8.6-32.3-21.7l-64.2-158c-4.5-11-2.5-23.6 5.2-32.6l94.5-112.4c5.1-6.1 4.7-15-.9-20.6s-14.6-6-20.6-.9L229.2 276.1c-9.1 7.6-21.6 9.6-32.6 5.2L38.1 216.8c-13.1-5.3-21.7-18.1-21.7-32.3 0-14.7 9.2-27.8 23.1-32.8l496.9-178z\"],\n \"book-atlas\": [448, 512, [\"atlas\"], \"f558\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM310.6 208L279 208c-1.4 23.1-6 44.2-12.6 61.2 22.7-12.5 39.4-34.8 44.2-61.2zm-173.1 0c4.8 26.4 21.5 48.7 44.2 61.2-6.7-17-11.2-38-12.6-61.2l-31.6 0zm76.4 55c4.5 9.6 8.2 13.8 10.2 15.5 2-1.7 5.7-5.8 10.2-15.5 6.2-13.4 11.1-32.5 12.7-55l-45.8 0c1.6 22.5 6.5 41.6 12.7 55zm-12.7-87l45.8 0c-1.6-22.5-6.5-41.6-12.7-55-4.5-9.6-8.2-13.8-10.2-15.5-2 1.7-5.7 5.8-10.2 15.5-6.2 13.4-11.1 32.5-12.7 55zm109.5 0c-4.8-26.4-21.5-48.7-44.2-61.2 6.7 17 11.2 38 12.6 61.2l31.6 0zM169 176c1.4-23.1 6-44.2 12.6-61.2-22.7 12.5-39.4 34.8-44.2 61.2l31.6 0zM96 192a128 128 0 1 1 256 0 128 128 0 1 1 -256 0z\"],\n \"table\": [448, 512, [], \"f0ce\", \"M256 160l0 96 128 0 0-96-128 0zm-64 0l-128 0 0 96 128 0 0-96zM0 320L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-96zm384 0l-128 0 0 96 128 0 0-96zM192 416l0-96-128 0 0 96 128 0z\"],\n \"heart\": [512, 512, [128153, 128154, 128155, 128156, 128420, 129293, 129294, 129505, 9829, 10084, 61578], \"f004\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 112.2-139.9 242.5-212.9 298.2-12.4 9.4-27.6 14.1-43.1 14.1s-30.8-4.6-43.1-14.1C139.9 410.2 0 279.9 0 167.7l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1z\"],\n \"circle-chevron-up\": [512, 512, [\"chevron-circle-up\"], \"f139\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM377 271c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-87-87-87 87c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L239 167c9.4-9.4 24.6-9.4 33.9 0L377 271z\"],\n \"battery-half\": [640, 512, [\"battery-3\"], \"f242\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-144 0z\"],\n \"font-awesome\": [512, 512, [62501, 62694, \"font-awesome-flag\", \"font-awesome-logo-full\"], \"f2b4\", \"M91.7 96C106.3 86.8 116 70.5 116 52 116 23.3 92.7 0 64 0S12 23.3 12 52c0 16.7 7.8 31.5 20 41l0 419 64 0 0-64 373.6 0c14.6 0 26.4-11.8 26.4-26.4 0-3.7-.8-7.3-2.3-10.7L432 272 493.7 133.1c1.5-3.4 2.3-7 2.3-10.7 0-14.6-11.8-26.4-26.4-26.4L91.7 96z\"],\n \"handcuffs\": [576, 512, [], \"e4f8\", \"M320-32c0-17.7-14.3-32-32-32s-32 14.3-32 32 14.3 32 32 32 32-14.3 32-32zM192 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM152 96c-13.3 0-24 10.7-24 24l0 16c0 1 .1 1.9 .2 2.9-74.7 26.3-128.2 97.5-128.2 181.1 0 106 86 192 192 192s192-86 192-192c0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0zM64 320a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm448 0c0 66.9-51.3 121.8-116.6 127.5-14.3 22.8-32.4 43.1-53.4 59.9 13.5 3 27.6 4.6 42 4.6 106 0 192-86 192-192 0-83.7-53.5-154.8-128.2-181.1 .1-.9 .2-1.9 .2-2.9l0-16c0-13.3-10.7-24-24-24l-80 0c-12.3 0-22.4 9.2-23.8 21.1 30.3 19.2 56.1 45 75.2 75.4 65.4 5.8 116.6 60.6 116.6 127.5zM384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"hat-cowboy-side\": [640, 512, [], \"f8c1\", \"M640 388.3c0 16.9-7.1 32.2-18.4 43.1l-35-23.3-292.7-195.1c-36.1-24.1-78.6-36.9-122-36.9l-3.9 0c-2.7 0-5.4 0-8 .1l22.2-100c5.7-25.8 28.6-44.1 55-44.1 12.2 0 24.1 4 33.8 11.3l4.7 3.5c26.3 19.7 62.4 19.7 88.6 0l4.7-3.5c9.8-7.3 21.6-11.3 33.8-11.3 26.4 0 49.3 18.3 55 44.1l33 148.5C574.5 232.3 640 302.6 640 388.3zM171.9 224c33.9 0 67.1 10 95.4 28.9L560 448 56 448c-30.9 0-56-25.1-56-56 0-92.8 75.2-168 168-168l3.9 0z\"],\n \"industry\": [512, 512, [], \"f275\", \"M32 32C14.3 32 0 46.3 0 64L0 432c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-279.8c0-18.2-19.4-29.7-35.4-21.1l-156.6 84.3 0-63.2c0-18.2-19.4-29.7-35.4-21.1L128 215.4 128 64c0-17.7-14.3-32-32-32L32 32z\"],\n \"lines-leaning\": [384, 512, [], \"e51e\", \"M190.4 74.1c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-128 384c-5.6 16.8 3.5 34.9 20.2 40.5s34.9-3.5 40.5-20.2l128-384zm70.9-41.7c-17.4-2.9-33.9 8.9-36.8 26.3l-64 384c-2.9 17.4 8.9 33.9 26.3 36.8s33.9-8.9 36.8-26.3l64-384c2.9-17.4-8.9-33.9-26.3-36.8zM352 32c-17.7 0-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32z\"],\n \"passport\": [384, 512, [], \"f5ab\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM96 408c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zM278.6 208c-4.8 26.4-21.5 48.7-44.2 61.2 6.7-17 11.2-38 12.6-61.2l31.6 0zm-173.1 0l31.6 0c1.4 23.1 6 44.2 12.6 61.2-22.7-12.5-39.4-34.8-44.2-61.2zm76.4 55c-6.2-13.4-11.1-32.5-12.7-55l45.8 0c-1.6 22.5-6.5 41.6-12.7 55-4.5 9.6-8.2 13.8-10.2 15.5-2-1.7-5.7-5.8-10.2-15.5zm0-142c4.5-9.6 8.2-13.8 10.2-15.5 2 1.7 5.7 5.8 10.2 15.5 6.2 13.4 11.1 32.5 12.7 55l-45.8 0c1.6-22.5 6.5-41.6 12.7-55zm96.7 55L247 176c-1.4-23.1-6-44.2-12.6-61.2 22.7 12.5 39.4 34.8 44.2 61.2zM137 176l-31.6 0c4.8-26.4 21.5-48.7 44.2-61.2-6.7 17-11.2 38-12.6 61.2zm183 16a128 128 0 1 0 -256 0 128 128 0 1 0 256 0z\"],\n \"infinity\": [640, 512, [8734, 9854], \"f534\", \"M0 256c0-88.4 71.6-160 160-160 50.4 0 97.8 23.7 128 64l32 42.7 32-42.7c30.2-40.3 77.6-64 128-64 88.4 0 160 71.6 160 160S568.4 416 480 416c-50.4 0-97.8-23.7-128-64l-32-42.7-32 42.7c-30.2 40.3-77.6 64-128 64-88.4 0-160-71.6-160-160zm280 0l-43.2-57.6c-18.1-24.2-46.6-38.4-76.8-38.4-53 0-96 43-96 96s43 96 96 96c30.2 0 58.7-14.2 76.8-38.4L280 256zm80 0l43.2 57.6c18.1 24.2 46.6 38.4 76.8 38.4 53 0 96-43 96-96s-43-96-96-96c-30.2 0-58.7 14.2-76.8 38.4L360 256z\"],\n \"clone\": [512, 512, [], \"f24d\", \"M288 448l-224 0 0-224 48 0 0-64-48 0c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-48-64 0 0 48zm-64-96l224 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L224 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64z\"],\n \"forward\": [576, 512, [9193], \"f04e\", \"M371.7 43.1C360.1 32 343 28.9 328.3 35.2S304 56 304 72l0 136.3-172.3-165.1C120.1 32 103 28.9 88.3 35.2S64 56 64 72l0 368c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9L304 303.7 304 440c0 16 9.6 30.5 24.3 36.8s31.8 3.2 43.4-7.9l192-184c7.9-7.5 12.3-18 12.3-28.9s-4.5-21.3-12.3-28.9l-192-184z\"],\n \"m\": [448, 512, [109], \"4d\", \"M22.7 33.4c13.5-4.1 28.1 1.1 35.9 12.9L224 294.3 389.4 46.3c7.8-11.7 22.4-17 35.9-12.9S448 49.9 448 64l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-278.3-133.4 200.1c-5.9 8.9-15.9 14.2-26.6 14.2s-20.7-5.3-26.6-14.2L64 169.7 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 49.9 9.2 37.5 22.7 33.4z\"],\n \"road-spikes\": [640, 512, [], \"e568\", \"M64 116.8c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9l98.7 148 0-139.2c0-15.8 20.5-22 29.3-8.9L606.8 302.2c14.2 21.3-1.1 49.8-26.6 49.8L64 352 64 116.8zM32 384l576 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"mountain\": [512, 512, [127956], \"f6fc\", \"M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4z\"],\n \"chess\": [512, 512, [], \"f439\", \"M168 56l0 40-78.1 0c-14.3 0-25.9 11.6-25.9 25.9 0 4 .9 8 2.7 11.6l33.4 66.8c-11.4 1.8-20.2 11.7-20.2 23.7 0 13.3 10.7 24 24 24l5.6 0-13.6 136-56.2 70.3c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l248.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2L288 384 274.4 248 280 248c13.3 0 24-10.7 24-24 0-11.9-8.7-21.9-20.2-23.7l33.4-66.8c1.8-3.6 2.7-7.6 2.7-11.6 0-14.3-11.6-25.9-25.9-25.9l-78.1 0 0-40 16 0c13.3 0 24-10.7 24-24S245.3 8 232 8l-16 0 0-16c0-13.3-10.7-24-24-24S168-21.3 168-8l0 16-16 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0zM325.8 279.6l8.5 85.5 47.4 59.2 4.2 5.7c9.2 13.7 14.1 29.9 14.1 46.5 0 12.7-2.8 24.8-7.9 35.5l83.1 0c20.3 0 36.8-16.5 36.8-36.8 0-7.3-2.2-14.4-6.2-20.4l-25.8-38.7 0-64 13.3-13.3c12-12 18.7-28.3 18.7-45.3L512 192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 16-32 0 0-16c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32c0 22.4-10.2 42.4-26.2 55.6z\"],\n \"temperature-three-quarters\": [320, 512, [\"temperature-3\", \"thermometer-3\", \"thermometer-three-quarters\"], \"f2c8\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 152c0-13.3 10.7-24 24-24s24 10.7 24 24l0 156.7c23.5 9.5 40 32.5 40 59.3z\"],\n \"b\": [320, 512, [98], \"42\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l160 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM160 224l-96 0 0-128 96 0c35.3 0 64 28.7 64 64s-28.7 64-64 64zM64 288l128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0 0-128z\"],\n \"shield-virus\": [512, 512, [], \"e06c\", \"M253.4 2.9C249.2 1 244.7 0 240 0s-9.2 1-13.4 2.9L38.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L253.4 2.9zM240 128c13.3 0 24 10.7 24 24 0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24zM208 264a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"litecoin-sign\": [384, 512, [], \"e1d3\", \"M128 64c0-17.7-14.3-32-32-32S64 46.3 64 64l0 157.9-38.6 11c-12.7 3.6-20.1 16.9-16.5 29.7s16.9 20.1 29.7 16.5L64 271.8 64 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-162.5 134.6-38.5c12.7-3.6 20.1-16.9 16.5-29.7s-16.9-20.1-29.7-16.5L128 203.6 128 64z\"],\n \"dice-d6\": [512, 512, [], \"f6d1\", \"M224.4 8.3C244-2.8 268-2.8 287.6 8.3l176 99.7c20 11.4 32.4 32.6 32.4 55.7l0 197.4c0 23-12.4 44.3-32.4 55.7l-176 99.7c-19.6 11.1-43.6 11.1-63.1 0l-176-99.7C28.4 405.5 16 384.2 16 361.2l0-197.4c0-23 12.4-44.3 32.4-55.7l176-99.7zM102.6 155.6c-8.8-3.1-18.8 .3-23.8 8.6s-3.2 18.7 3.6 25l3.2 2.4 150.2 90.2 0 148.7c0 11 9 20 20 20 11 0 20-9 20-20l0-148.7 150.3-90.2c9.5-5.7 12.6-18 6.9-27.4s-18-12.5-27.4-6.9l-149.7 89.8-149.7-89.8-3.7-1.7z\"],\n \"grip-lines-vertical\": [192, 512, [], \"f7a5\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64zm128 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384z\"],\n \"golf-ball-tee\": [384, 512, [\"golf-ball\"], \"f450\", \"M298.5 384.1c12.1 1.2 21.5 11.5 21.5 23.9s-9.4 22.6-21.5 23.9l-2.5 .1-80 0 0 88c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-88-80 0c-13.3 0-24-10.7-24-24 0-12.4 9.4-22.6 21.5-23.9l2.5-.1 208 0 2.5 .1zM192 0c106 0 192 86 192 192 0 57.4-25.2 108.8-65.1 144L65.1 336C25.2 300.8 0 249.4 0 192 0 86 86 0 192 0zm32 240c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm64-64c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16zm-80-16c-7.7 0-14.2 5.5-15.7 12.8l-.6 6.4c-1.3 6.3-6.2 11.2-12.5 12.5l-6.4 .6c-7.3 1.5-12.8 8-12.8 15.7 0 8.8 7.2 16 16 16 26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16z\"],\n \"hexagon\": [576, 512, [11043], \"f312\", \"M33.5 220.3c-12.7 22.2-12.7 49.4 0 71.5l96.2 168.1c12.8 22.4 36.7 36.2 62.5 36.2l191.6 0c25.8 0 49.7-13.8 62.5-36.2l96.2-168.1c12.7-22.2 12.7-49.4 0-71.5L446.3 52.2C433.5 29.8 409.6 16 383.8 16L192.2 16c-25.8 0-49.7 13.8-62.5 36.2L33.5 220.3z\"],\n \"folder-open\": [576, 512, [128194, 128449, 61717], \"f07c\", \"M56 225.6L32.4 296.2 32.4 96c0-35.3 28.7-64 64-64l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4l117.3 0c35.3 0 64 28.7 64 64l0 16-365.4 0c-41.3 0-78 26.4-91.1 65.6zM477.8 448L99 448c-32.8 0-55.9-32.1-45.5-63.2l48-144C108 221.2 126.4 208 147 208l378.8 0c32.8 0 55.9 32.1 45.5 63.2l-48 144c-6.5 19.6-24.9 32.8-45.5 32.8z\"],\n \"kaaba\": [512, 512, [128331], \"f66b\", \"M256 51.3L92.8 112.4 247.5 171.1c5.5 2.1 11.5 2.1 17 0L419.2 112.4 256 51.3zM0 129.3c0-20 12.4-37.9 31.1-44.9l208-78c10.9-4.1 22.8-4.1 33.7 0l208 78c18.7 7 31.1 24.9 31.1 44.9l0 36-253.2 96c-1.8 .7-3.8 .7-5.7 0l-253.2-96 0-36zm0 140l0-52.7 236.1 89.6c12.8 4.9 26.9 4.9 39.7 0l236.1-89.6 0 52.7-128 48.6 0 51.3 128-48.6 0 62.2c0 20-12.4 37.9-31.1 44.9l-208 78c-10.9 4.1-22.8 4.1-33.7 0l-208-78C12.4 420.7 0 402.7 0 382.7l0-62.2 128 48.6 0-51.3-128-48.6zM236.1 410.1c12.8 4.9 26.9 4.9 39.7 0l60.1-22.8 0-51.3-77.2 29.3c-1.8 .7-3.8 .7-5.7 0l-77.2-29.3 0 51.3 60.1 22.8z\"],\n \"hand-holding\": [576, 512, [], \"f4bd\", \"M66.7 384l42.5-42.5c24-24 56.6-37.5 90.5-37.5L352 304c17.7 0 32 14.3 32 32s-14.3 32-32 32l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l112.6 0 119.7-88.2c17.8-13.1 42.8-9.3 55.9 8.5s9.3 42.8-8.5 55.9L433.1 485.5c-23.4 17.2-51.6 26.5-80.7 26.5L32 512c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l34.7 0z\"],\n \"single-quote-right\": [192, 512, [], \"e81c\", \"M64 416c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136c0 66.3-53.7 120-120 120l-8 0z\"],\n \"bottle-droplet\": [320, 512, [], \"e4c4\", \"M80 0c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 103.3c64.9 20.4 112 81 112 152.7l0 192c0 35.3-28.7 64-64 64L64 544c-35.3 0-64-28.7-64-64L0 288c0-71.6 47.1-132.3 112-152.7L112 32C94.3 32 80 17.7 80 0zm80 416c35.3 0 64-32.4 64-64 0-21.2-28.9-64.5-47.9-90.6-8.1-11.1-24.2-11.1-32.3 0-19 26.1-47.9 69.4-47.9 90.6 0 31.6 28.7 64 64 64z\"],\n \"window-minimize\": [512, 512, [128469], \"f2d1\", \"M0 416c0-17.7 14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32z\"],\n \"chevron-right\": [320, 512, [9002], \"f054\", \"M311.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L243.2 256 73.9 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z\"],\n \"egg\": [384, 512, [129370], \"f7fb\", \"M192 496C86 496 0 394 0 288 0 176 64 16 192 16S384 176 384 288c0 106-86 208-192 208zM154.8 134c6.5-6 7-16.1 1-22.6s-16.1-7-22.6-1c-23.9 21.8-41.1 52.7-52.3 84.2-11.2 31.6-16.9 65.1-16.9 93.5 0 8.8 7.2 16 16 16s16-7.2 16-16c0-24.5 5-54.4 15.1-82.8 10.1-28.5 25-54.1 43.7-71.2z\"],\n \"landmark-dome\": [512, 512, [\"landmark-alt\"], \"f752\", \"M256 0c-17.7 0-32 14.3-32 32 0 .9 0 1.8 .1 2.6-80.5 13.4-144 76.9-157.5 157.4L64 192c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 160-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6L448 416 448 256c17.7 0 32-14.3 32-32s-14.3-32-32-32l-2.7 0c-13.5-80.4-77-143.9-157.5-157.4 .1-.9 .1-1.7 .1-2.6 0-17.7-14.3-32-32-32zm80 256l64 0 0 160-64 0 0-160zM224 416l0-160 64 0 0 160-64 0zM112 256l64 0 0 160-64 0 0-160z\"],\n \"worm\": [448, 512, [], \"e599\", \"M224 96c0-53 43-96 96-96l38.4 0C407.9 0 448 40.1 448 89.6L448 376c0 75.1-60.9 136-136 136S176 451.1 176 376l0-80c0-22.1-17.9-40-40-40s-40 17.9-40 40l0 168c0 26.5-21.5 48-48 48S0 490.5 0 464L0 296c0-75.1 60.9-136 136-136s136 60.9 136 136l0 80c0 22.1 17.9 40 40 40s40-17.9 40-40l0-184-32 0c-53 0-96-43-96-96zm144-8a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"user-injured\": [448, 512, [], \"f728\", \"M242.7 80L334 80c-10.7-24.6-29.5-44.9-52.9-57.6L242.7 80zm-.9-70.7C236 8.4 230 8 224 8 174.8 8 132.5 37.6 114 80l80.6 0 47.1-70.7zM224 248c66.3 0 120-53.7 120-120l-240 0c0 66.3 53.7 120 120 120zM98.7 341.8C49.3 370.2 16 423.5 16 484.6 16 499.7 28.3 512 43.4 512l151 0-95.8-170.2zm45.1-17.7l42.7 75.9 85.5 0c44.2 0 80 35.8 80 80 0 11.4-2.4 22.2-6.7 32l59.2 0c15.1 0 27.4-12.3 27.4-27.4 0-90.9-73.7-164.6-164.6-164.6l-86.9 0c-12.6 0-24.9 1.4-36.7 4.1zM213.5 448l36 64 22.5 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-58.5 0z\"],\n \"strikethrough\": [512, 512, [], \"f0cc\", \"M96 157.5C96 88.2 152.2 32 221.5 32L368 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L221.5 96c-34 0-61.5 27.5-61.5 61.5 0 31 23.1 57.2 53.9 61l44.1 5.5 222 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l83.1 0C103 204.6 96 181.8 96 157.5zM349.2 336l65.5 0c.9 6.1 1.4 12.2 1.4 18.5 0 69.3-56.2 125.5-125.5 125.5L144 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l146.5 0c34 0 61.5-27.5 61.5-61.5 0-6.4-1-12.7-2.8-18.5z\"],\n \"blog\": [512, 512, [], \"f781\", \"M224 24c0-13.3 10.7-24 24-24 145.8 0 264 118.2 264 264 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-119.3-96.7-216-216-216-13.3 0-24-10.7-24-24zM80 96c26.5 0 48 21.5 48 48l0 224c0 26.5 21.5 48 48 48s48-21.5 48-48-21.5-48-48-48c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16 79.5 0 144 64.5 144 144S255.5 512 176 512 32 447.5 32 368l0-224c0-26.5 21.5-48 48-48zm168 0c92.8 0 168 75.2 168 168 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3-53.7-120-120-120-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"stopwatch-20\": [448, 512, [], \"e06f\", \"M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm-60 240c0-28.7 23.3-52 52-52s52 23.3 52 52l0 3.8c0 11.7-3.2 23.1-9.3 33l-43.8 71.2 33.1 0c11 0 20 9 20 20s-9 20-20 20l-57.8 0c-14.5 0-26.2-11.7-26.2-26.2 0-4.9 1.3-9.6 3.9-13.8l56.7-92.1c2.2-3.6 3.4-7.8 3.4-12.1l0-3.8c0-6.6-5.4-12-12-12s-12 5.4-12 12c0 11-9 20-20 20s-20-9-20-20zm180-52c28.7 0 52 23.3 52 52l0 96c0 28.7-23.3 52-52 52s-52-23.3-52-52l0-96c0-28.7 23.3-52 52-52zm-12 52l0 96c0 6.6 5.4 12 12 12s12-5.4 12-12l0-96c0-6.6-5.4-12-12-12s-12 5.4-12 12z\"],\n \"truck-pickup\": [640, 512, [128763], \"f63c\", \"M363.8 96l57.6 96-133.4 0 0-96 75.8 0zM496 192L418.6 63.1C407.1 43.8 386.2 32 363.8 32L256 32c-17.7 0-32 14.3-32 32l0 128-144 0c-26.5 0-48 21.5-48 48l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l32.4 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l160.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88c0-2.7-.1-5.4-.4-8l32.4 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-80c0-26.5-21.5-48-48-48l-64 0zM112 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm376-40a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],\n \"seedling\": [512, 512, [127793, \"sprout\"], \"f4d8\", \"M512 32C512 140.1 435.4 230.3 333.6 251.4 325.7 193.3 299.6 141 261.1 100.5 301.2 40 369.9 0 448 0l32 0c17.7 0 32 14.3 32 32zM0 96C0 78.3 14.3 64 32 64l32 0c123.7 0 224 100.3 224 224l0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160C100.3 320 0 219.7 0 96z\"],\n \"transgender\": [576, 512, [9895, \"transgender-alt\"], \"f225\", \"M128-32c17.7 0 32 14.3 32 32s-14.3 32-32 32L97.9 32 136 70.1 151 55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-15 15 14.2 14.2c27.9-23.8 64.2-38.2 103.8-38.2 36.7 0 70.6 12.4 97.6 33.2L466.7 32 448 32c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.7-84.4 84.4c13 23.1 20.4 49.9 20.4 78.3 0 77.4-55 142-128 156.8l0 35.2 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 16c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-35.2c-73-14.8-128-79.4-128-156.8 0-31.4 9-60.7 24.7-85.4l-16.7-16.7-15 15c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l15-15-38.1-38.1 0 30.1c0 17.7-14.3 32-32 32S0 113.7 0 96L0 0C0-17.7 14.3-32 32-32l96 0zM288 336a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"],\n \"star-half\": [576, 512, [61731], \"f089\", \"M304.1 7.6c0-11.1-7.6-20.7-18.4-23.3s-21.9 2.5-27 12.4L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L291 416.1c8-4.1 13.1-12.4 13.1-21.4l0-387.1z\"],\n \"photo-film\": [640, 512, [\"photo-video\"], \"f87c\", \"M192 64c0-35.3 28.7-64 64-64L576 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64l0-224zM320 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm156.5 11.5C472.1 100.4 464.4 96 456 96s-16.1 4.4-20.5 11.5l-54 88.3-17.9-25.6c-4.5-6.4-11.8-10.2-19.7-10.2s-15.2 3.8-19.7 10.2l-56 80c-5.1 7.3-5.8 16.9-1.6 24.8S279.1 288 288 288l256 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144zM144 128l0 160c0 61.9 50.1 112 112 112l192 0 0 16c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l80 0zM52 196l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0zm0 96c-8.8 0-16 7.2-16 16l0 24c0 8.8 7.2 16 16 16l24 0c8.8 0 16-7.2 16-16l0-24c0-8.8-7.2-16-16-16l-24 0z\"],\n \"pump-medical\": [320, 512, [], \"e06a\", \"M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm64 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"fire\": [448, 512, [128293], \"f06d\", \"M160.5-26.4c9.3-7.8 23-7.5 31.9 .9 12.3 11.6 23.3 24.4 33.9 37.4 13.5 16.5 29.7 38.3 45.3 64.2 5.2-6.8 10-12.8 14.2-17.9 1.1-1.3 2.2-2.7 3.3-4.1 7.9-9.8 17.7-22.1 30.8-22.1 13.4 0 22.8 11.9 30.8 22.1 1.3 1.7 2.6 3.3 3.9 4.8 10.3 12.4 24 30.3 37.7 52.4 27.2 43.9 55.6 106.4 55.6 176.6 0 123.7-100.3 224-224 224S0 411.7 0 288c0-91.1 41.1-170 80.5-225 19.9-27.7 39.7-49.9 54.6-65.1 8.2-8.4 16.5-16.7 25.5-24.2zM225.7 416c25.3 0 47.7-7 68.8-21 42.1-29.4 53.4-88.2 28.1-134.4-4.5-9-16-9.6-22.5-2l-25.2 29.3c-6.6 7.6-18.5 7.4-24.7-.5-17.3-22.1-49.1-62.4-65.3-83-5.4-6.9-15.2-8-21.5-1.9-18.3 17.8-51.5 56.8-51.5 104.3 0 68.6 50.6 109.2 113.7 109.2z\"],\n \"magnifying-glass-plus\": [512, 512, [\"search-plus\"], \"f00e\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM208 112c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"],\n \"flask\": [448, 512, [], \"f0c3\", \"M288 0L128 0C110.3 0 96 14.3 96 32s14.3 32 32 32L128 215.5 7.5 426.3C2.6 435 0 444.7 0 454.7 0 486.4 25.6 512 57.3 512l333.4 0c31.6 0 57.3-25.6 57.3-57.3 0-10-2.6-19.8-7.5-28.4L320 215.5 320 64c17.7 0 32-14.3 32-32S337.7 0 320 0L288 0zM192 215.5l0-151.5 64 0 0 151.5c0 11.1 2.9 22.1 8.4 31.8l41.6 72.7-164 0 41.6-72.7c5.5-9.7 8.4-20.6 8.4-31.8z\"],\n \"align-right\": [448, 512, [], \"f038\", \"M448 64c0 17.7-14.3 32-32 32L192 96c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zm0 256c0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32zM0 192c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 224c-17.7 0-32-14.3-32-32zM448 448c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"],\n \"cable-car\": [512, 512, [128673, 57551, \"tram\"], \"f7da\", \"M288-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM160 24a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM32 288c0-35.3 28.7-64 64-64l136 0 0-96.2-193.4 55.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l224-64 0 0 224-64c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-206.6 59 0 109.9 136 0c35.3 0 64 28.7 64 64l0 160c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-160zm80 0c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l56 0 0-96-56 0zm184 96l0-96-80 0 0 96 80 0zm48 0l56 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16l-56 0 0 96z\"],\n \"kit-medical\": [512, 512, [\"first-aid\"], \"f479\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l16 0 0-384-16 0zm64 0l0 384 256 0 0-384-256 0zM448 448c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-16 0 0 384 16 0zM224 184c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"grip-lines\": [448, 512, [], \"f7a4\", \"M32 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 288zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 160z\"],\n \"burger\": [512, 512, [\"hamburger\"], \"f805\", \"M48 384c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l288 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16L48 384zM32 202c0 12.2 9.9 22 22 22L458 224c12.2 0 22-9.9 22-22 0-17.2-2.6-34.4-10.8-49.5-22.2-40.8-82.3-120.5-213.2-120.5S65 111.6 42.8 152.5C34.6 167.6 32 184.8 32 202zM0 304c0 17.7 14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 272c-17.7 0-32 14.3-32 32zM256 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM120 128a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm248-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"snowman\": [640, 512, [9731, 9924], \"f7d0\", \"M403 211.7c32.2-24.9 53-63.9 53-107.7 0-75.1-60.9-136-136-136S184 28.9 184 104c0 43.9 20.8 82.9 53 107.7-32.2 16.3-59 41.8-76.8 73.1L112 264.2 112 224c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 19.6-22.5-9.7c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5c36.1 15.5 75.9 32.5 119.4 51.2-3.9 14.9-6 30.6-6 46.7 0 70 39.1 130.8 96.6 161.9 7.9 4.3 16.9 6.1 25.9 6.1l123 0c9 0 18-1.8 25.9-6.1 57.5-31.1 96.6-92 96.6-161.9 0-16.2-2.1-31.8-6-46.7 43.5-18.7 83.4-35.7 119.4-51.2 12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6l-22.5 9.7 0-19.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40.2-48.2 20.6c-17.9-31.3-44.6-56.8-76.8-73.1zM296 416a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24-120a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM248 80a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM368 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM292.2 159.3c-2.7-4.8-4.2-10.2-4.2-15.7 0-17.5 14.2-31.6 31.6-31.6l.8 0c17.5 0 31.6 14.2 31.6 31.6 0 5.5-1.4 10.9-4.2 15.7L327 195.8c-3.1 5.4-10.8 5.4-13.9 0l-20.9-36.6z\"],\n \"hotel\": [512, 512, [127976], \"f594\", \"M16 24C16 10.7 26.7 0 40 0L472 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 416 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-416-8 0C26.7 48 16 37.3 16 24zm208 88l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM128 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm96 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM112 208l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm240-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 384l43.8 0c9.9 0 17.5-9 14-18.2-13.8-36.1-48.8-61.8-89.7-61.8s-75.9 25.7-89.7 61.8c-3.5 9.2 4.1 18.2 14 18.2l43.8 0 0 80 64 0 0-80z\"],\n \"print\": [512, 512, [128424, 128438, 9113], \"f02f\", \"M64 64C64 28.7 92.7 0 128 0L341.5 0c17 0 33.3 6.7 45.3 18.7l42.5 42.5c12 12 18.7 28.3 18.7 45.3l0 37.5-384 0 0-80zM0 256c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 96c0 17.7-14.3 32-32 32l-32 0 0 64c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64l0-64-32 0c-17.7 0-32-14.3-32-32l0-96zM128 416l0 32 256 0 0-96-256 0 0 64zM456 272a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"volleyball\": [512, 512, [127952, \"volleyball-ball\"], \"f45f\", \"M512 258.9c-23.4 8-47.8 13.1-72.6 15.1 5.9-98.6-30.7-191.1-94.9-258.3 97.8 36 167.5 130 167.5 240.3 0 1 0 1.9 0 2.9zm-5.9 52c-5.2 23.7-13.6 46.2-24.9 66.9-94.7 52.2-214 50-308.4-13.6 21.7-31.3 49.8-58.9 83.8-80.5 79.5 41.6 168.5 49.1 249.5 27.1zM279.7 241.6c-3.7-89.7-41.7-170.5-101.3-229.7 22.3-7.1 46-11.2 70.5-11.9 92.5 55.9 150.3 160.3 142.4 273.8-38-3.2-75.9-13.7-111.6-32.3zM130.5 32.8C149.1 49.1 165.8 67.7 179.9 88.2 91.5 132.3 29.7 210.3 3.7 299.5 1.3 285.3 0 270.8 0 256 0 160.2 52.6 76.7 130.5 32.8zm73.4 97c16.3 34.5 26.1 72.6 27.9 112.8-75.8 48-126.8 121.3-148.3 202.5-17.6-16.1-33-34.6-45.5-55 2.1-108.1 63.7-210.4 165.9-260.3zM256 512c-47.7 0-92.3-13-130.5-35.7 4.8-24.3 12.6-48 23.2-70.4 82.4 54.4 180.8 68.9 271 47-44.4 37-101.5 59.2-163.7 59.2z\"],\n \"traffic-light\": [320, 512, [128678], \"f637\", \"M64-32C28.7-32 0-3.3 0 32L0 384c0 88.4 71.6 160 160 160s160-71.6 160-160l0-352c0-35.3-28.7-64-64-64L64-32zm96 392c30.9 0 56 25.1 56 56s-25.1 56-56 56-56-25.1-56-56 25.1-56 56-56zm56-104a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zM160 152a56 56 0 1 1 0-112 56 56 0 1 1 0 112z\"],\n \"plane-circle-check\": [640, 512, [], \"e555\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"],\n \"users\": [640, 512, [], \"f0c0\", \"M320 16a104 104 0 1 1 0 208 104 104 0 1 1 0-208zM96 88a72 72 0 1 1 0 144 72 72 0 1 1 0-144zM0 416c0-70.7 57.3-128 128-128 12.8 0 25.2 1.9 36.9 5.4-32.9 36.8-52.9 85.4-52.9 138.6l0 16c0 11.4 2.4 22.2 6.7 32L32 480c-17.7 0-32-14.3-32-32l0-32zm521.3 64c4.3-9.8 6.7-20.6 6.7-32l0-16c0-53.2-20-101.8-52.9-138.6 11.7-3.5 24.1-5.4 36.9-5.4 70.7 0 128 57.3 128 128l0 32c0 17.7-14.3 32-32 32l-86.7 0zM472 160a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 432c0-88.4 71.6-160 160-160s160 71.6 160 160l0 16c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-16z\"],\n \"certificate\": [576, 512, [], \"f0a3\", \"M239.2-8c-6.1-6.2-15-8.7-23.4-6.4S200.9-5.6 198.8 2.8L183.5 63c-1.1 4.4-5.6 7-9.9 5.7L113.8 51.9c-8.4-2.4-17.4 0-23.5 6.1s-8.5 15.1-6.1 23.5l16.9 59.8c1.2 4.3-1.4 8.8-5.7 9.9L35.1 166.5c-8.4 2.1-15 8.7-17.3 17.1s.2 17.3 6.4 23.4l44.5 43.3c3.2 3.1 3.2 8.3 0 11.5L24.3 305.1c-6.2 6.1-8.7 15-6.4 23.4s8.9 14.9 17.3 17.1l60.2 15.3c4.4 1.1 7 5.6 5.7 9.9L84.2 430.5c-2.4 8.4 0 17.4 6.1 23.5s15.1 8.5 23.5 6.1l59.8-16.9c4.3-1.2 8.8 1.4 9.9 5.7l15.3 60.2c2.1 8.4 8.7 15 17.1 17.3s17.3-.2 23.4-6.4l43.3-44.5c3.1-3.2 8.3-3.2 11.5 0L337.3 520c6.1 6.2 15 8.7 23.4 6.4s14.9-8.9 17.1-17.3L393.1 449c1.1-4.4 5.6-7 9.9-5.7l59.8 16.9c8.4 2.4 17.4 0 23.5-6.1s8.5-15.1 6.1-23.5l-16.9-59.8c-1.2-4.3 1.4-8.8 5.7-9.9l60.2-15.3c8.4-2.1 15-8.7 17.3-17.1s-.2-17.4-6.4-23.4l-44.5-43.3c-3.2-3.1-3.2-8.3 0-11.5l44.5-43.3c6.2-6.1 8.7-15 6.4-23.4s-8.9-14.9-17.3-17.1l-60.2-15.3c-4.4-1.1-7-5.6-5.7-9.9l16.9-59.8c2.4-8.4 0-17.4-6.1-23.5s-15.1-8.5-23.5-6.1L403 68.8c-4.3 1.2-8.8-1.4-9.9-5.7L377.8 2.8c-2.1-8.4-8.7-15-17.1-17.3s-17.3 .2-23.4 6.4L294 36.5c-3.1 3.2-8.3 3.2-11.5 0L239.2-8z\"],\n \"alarm-clock\": [512, 512, [9200], \"f34e\", \"M504.4 132.5c-4.5 10.5-18.4 9.8-24.9 .4-27.8-40-66.1-72.2-111-92.6-10.4-4.7-13.7-18.3-4.1-24.6 15-9.9 33-15.7 52.3-15.7 52.6 0 95.2 42.6 95.2 95.2 0 13.2-2.7 25.8-7.6 37.3zm-471.9 .4c-6.5 9.4-20.5 10.1-24.9-.4-4.9-11.5-7.6-24.1-7.6-37.3 0-52.6 42.6-95.2 95.2-95.2 19.3 0 37.3 5.8 52.3 15.7 9.6 6.3 6.3 19.9-4.1 24.6-44.8 20.4-83.1 52.6-111 92.6zM390.2 467.4C352.8 495.4 306.3 512 256 512s-96.8-16.6-134.1-44.6L86.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l35.2-35.2C48.6 384.8 32 338.3 32 288 32 164.3 132.3 64 256 64S480 164.3 480 288c0 50.3-16.6 96.8-44.6 134.2l35.2 35.2c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-35.2-35.2zM280 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l56 56c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-94.1z\"],\n \"helicopter-symbol\": [512, 512, [], \"e502\", \"M445.4 224l64.7 0C495.6 108.2 403.8 16.4 288 2l0 64.7C368.4 80.1 431.9 143.6 445.4 224zM510 288l-64.7 0C431.9 368.4 368.4 431.9 288 445.3l0 64.7c115.8-14.4 207.6-106.2 222-222zM2 288C16.4 403.8 108.2 495.6 224 510l0-64.7C143.6 431.9 80.2 368.4 66.7 288L2 288zm0-64l64.7 0C80.2 143.6 143.6 80.1 224 66.7L224 2C108.2 16.4 16.4 108.2 2 224zm206-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 96 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64-96 0 0-64z\"],\n \"house-chimney-crack\": [512, 512, [\"house-damage\"], \"f6f1\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-105.6 0-38.4-64 80.8-67.3c7.8-6.5 7.6-18.6-.4-24.9L218.6 263.2c-14.6-11.5-33.8 7-22.8 22L256 368 170.5 439.2c-6.1 5-7.5 13.8-3.5 20.5l31.3 52.2-86.4 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208z\"],\n \"person-military-pointing\": [512, 512, [], \"e54a\", \"M214.9 14.1C202 15.2 192 26 192 39 192 52.8 203.2 64 217 64l151 0c8.8 0 16-7.2 16-16l0-30.6C384 8 376 .7 366.7 1.4L214.9 14.1zM208 112c0 44.2 35.8 80 80 80s80-35.8 80-80c0-5.5-.6-10.8-1.6-16L209.6 96c-1 5.2-1.6 10.5-1.6 16zM40 224c-22.1 0-40 17.9-40 40s17.9 40 40 40l152 0 0 89.4 162.8-162.8c-13.3-4.3-27.3-6.5-41.6-6.5L40 224zm345.7 20.9l-171.1 171.1 169.4 0 0-46.3 53.6 90.6c11.2 19 35.8 25.3 54.8 14.1s25.3-35.8 14.1-54.8L430.3 290.8c-11.2-19-26.6-34.5-44.6-45.9zM192 448l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32-192 0z\"],\n \"database\": [448, 512, [], \"f1c0\", \"M448 205.8c-14.8 9.8-31.8 17.7-49.5 24-47 16.8-108.7 26.2-174.5 26.2S96.4 246.5 49.5 229.8c-17.6-6.3-34.7-14.2-49.5-24L0 288c0 44.2 100.3 80 224 80s224-35.8 224-80l0-82.2zm0-77.8l0-48C448 35.8 347.7 0 224 0S0 35.8 0 80l0 48c0 44.2 100.3 80 224 80s224-35.8 224-80zM398.5 389.8C351.6 406.5 289.9 416 224 416S96.4 406.5 49.5 389.8c-17.6-6.3-34.7-14.2-49.5-24L0 432c0 44.2 100.3 80 224 80s224-35.8 224-80l0-66.2c-14.8 9.8-31.8 17.7-49.5 24z\"],\n \"newspaper\": [512, 512, [128240], \"f1ea\", \"M0 416L0 120c0-13.3 10.7-24 24-24s24 10.7 24 24l0 288c0 13.3 10.7 24 24 24s24-10.7 24-24L96 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM160 128l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32zm24 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0zm-24-72c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-240 0c-13.3 0-24 10.7-24 24zM360 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0z\"],\n \"cloud-rain\": [512, 512, [127783, 9926], \"f73d\", \"M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm1.6 68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm152 0c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16l30.2-68.2zm121.8 68.2l30.2-68.2c1.1-2.5 3.6-4.2 6.4-4.2s5.3 1.6 6.4 4.2l30.2 68.2c2.2 5.1 3.4 10.5 3.4 16 0 21.9-18.1 39.6-40 39.6s-40-17.7-40-39.6c0-5.5 1.2-11 3.4-16z\"],\n \"maximize\": [448, 512, [\"expand-arrows-alt\"], \"f31e\", \"M168 32L24 32C10.7 32 0 42.7 0 56L0 200c0 9.7 5.8 18.5 14.8 22.2S34.1 223.8 41 217l40-40 79 79-79 79-40-40c-6.9-6.9-17.2-8.9-26.2-5.2S0 302.3 0 312L0 456c0 13.3 10.7 24 24 24l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-40-40 79-79 79 79-40 40c-6.9 6.9-8.9 17.2-5.2 26.2S270.3 480 280 480l144 0c13.3 0 24-10.7 24-24l0-144c0-9.7-5.8-18.5-14.8-22.2s-19.3-1.7-26.2 5.2l-40 40-79-79 79-79 40 40c6.9 6.9 17.2 8.9 26.2 5.2S448 209.7 448 200l0-144c0-13.3-10.7-24-24-24L280 32c-9.7 0-18.5 5.8-22.2 14.8S256.2 66.1 263 73l40 40-79 79-79-79 40-40c6.9-6.9 8.9-17.2 5.2-26.2S177.7 32 168 32z\"],\n \"location-arrow\": [512, 512, [], \"f124\", \"M477.9 75.5c4.5-11.8 1.7-25.2-7.2-34.1s-22.3-11.8-34.1-7.2l-416 160C7.9 199-.3 211.2 0 224.7s9.1 25.4 21.9 29.6l176.8 58.9 58.9 176.8c4.3 12.8 16.1 21.6 29.6 21.9s25.7-7.9 30.6-20.5l160-416z\"],\n \"city\": [576, 512, [127961], \"f64f\", \"M320 0c-35.3 0-64 28.7-64 64l0 32-48 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-64 0 0-72C96 10.7 85.3 0 72 0S48 10.7 48 24l0 74c-27.6 7.1-48 32.2-48 62L0 448c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-64 0 0-128c0-35.3-28.7-64-64-64L320 0zm64 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm-16 80c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zm16 112l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zm112-16c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM256 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM240 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0zM128 304l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16zM112 192c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0z\"],\n \"x-ray\": [512, 512, [], \"f497\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 320c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 96C14.3 96 0 81.7 0 64zm280 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 16-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 48-80 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0 0 48-64 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l64 0 0 16c0 13.3 10.7 24 24 24s24-10.7 24-24l0-16 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-48 80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0 0-48 64 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0 0-16z\"],\n \"umbrella-beach\": [512, 512, [127958], \"f5ca\", \"M497.5 341.1c-5.9 16.7-25.3 23-41.1 15.1l-178.2-89.1-1.6 3.2-88.8 177.7 292.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l84.2 0 103.2-206.3 1.6-3.2-165.4-82.7c-15.8-7.9-22.4-27.3-12.5-42 45.9-68.6 124.1-113.8 212.9-113.8 141.4 0 256 114.6 256 256 0 29.8-5.1 58.5-14.5 85.1z\"],\n \"arrow-right-to-bracket\": [512, 512, [\"sign-in\"], \"f090\", \"M352 96l64 0c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c53 0 96-43 96-96l0-256c0-53-43-96-96-96l-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm-9.4 182.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L242.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"],\n \"headset\": [448, 512, [], \"f590\", \"M224 64c-79 0-144.7 57.3-157.7 132.7 9.3-3 19.3-4.7 29.7-4.7l16 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-16 0c-53 0-96-43-96-96l0-64C0 100.3 100.3 0 224 0S448 100.3 448 224l0 168.1c0 66.3-53.8 120-120.1 120l-87.9-.1-32 0c-26.5 0-48-21.5-48-48s21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 0 40 0c39.8 0 72-32.2 72-72l0-20.9c-14.1 8.2-30.5 12.8-48 12.8l-16 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l16 0c10.4 0 20.3 1.6 29.7 4.7-13-75.3-78.6-132.7-157.7-132.7z\"],\n \"splotch\": [512, 512, [], \"f5bc\", \"M208.5 62.3l28.1-36.9C248.8 9.4 267.8 0 288 0 316.5 0 341.6 18.7 349.8 46l17.8 59.4c10.3 34.4 36.1 62 69.8 74.6l39.8 14.9c20.9 7.9 34.8 27.9 34.8 50.2 0 16.9-7.9 32.8-21.5 42.9l-67.3 50.5c-24.3 18.2-37.2 47.9-33.8 78.1l2.5 22.7c4.3 38.7-26 72.6-65 72.6-14.8 0-29.3-5.1-40.9-14.3l-55.3-44.3c-4.5-3.6-9.3-6.7-14.5-9.2-15.8-7.9-33.7-10.4-51-7.3L82.4 451.9c-34.6 6.3-66.4-20.3-66.4-55.4 0-13.2 4.7-26 13.1-36.2l11.2-13.4c14.6-17.4 22.6-39.4 22.6-62.1 0-18.8-5.5-37.2-15.8-53L8.8 173.5C3.1 164.7 0 154.4 0 143.9 0 110.5 30.1 85.1 63 90.7l51.3 8.7c35.9 6.1 72.2-8.2 94.2-37.1z\"],\n \"up-long\": [320, 512, [\"long-arrow-alt-up\"], \"f30c\", \"M137.4-22.6c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S300.9 160 288 160l-64 0 0 336c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-336-64 0c-12.9 0-24.6-7.8-29.6-19.8S.2 114.5 9.4 105.4l128-128z\"],\n \"hexagon-nodes\": [448, 512, [], \"e699\", \"M248 106.6c18.9-9 32-28.3 32-50.6c0-30.9-25.1-56-56-56s-56 25.1-56 56c0 22.3 13.1 41.6 32 50.6l0 98.8c-2.8 1.3-5.5 2.9-8 4.7l-80.1-45.8c1.6-20.8-8.6-41.6-27.9-52.8C57.2 96 23 105.2 7.5 132S1.2 193 28 208.5c1.3 .8 2.6 1.5 4 2.1l0 90.8c-1.3 .6-2.7 1.3-4 2.1C1.2 319-8 353.2 7.5 380S57.2 416 84 400.5c19.3-11.1 29.4-32 27.8-52.8l50.5-28.9c-11.5-11.2-19.9-25.6-23.8-41.7L88 306.1c-2.6-1.8-5.2-3.3-8-4.7l0-90.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-.1 1.4-.2 2.8-.2 4.3c0 22.3 13.1 41.6 32 50.6l0 98.8c-18.9 9-32 28.3-32 50.6c0 30.9 25.1 56 56 56s56-25.1 56-56c0-22.3-13.1-41.6-32-50.6l0-98.8c2.8-1.3 5.5-2.9 8-4.7l80.1 45.8c-1.6 20.8 8.6 41.6 27.8 52.8c26.8 15.5 61 6.3 76.5-20.5s6.3-61-20.5-76.5c-1.3-.8-2.7-1.5-4-2.1l0-90.8c1.4-.6 2.7-1.3 4-2.1c26.8-15.5 36-49.7 20.5-76.5S390.8 96 364 111.5c-19.3 11.1-29.4 32-27.8 52.8l-50.6 28.9c11.5 11.2 19.9 25.6 23.8 41.7L360 205.9c2.6 1.8 5.2 3.3 8 4.7l0 90.8c-2.8 1.3-5.5 2.9-8 4.6l-80.1-45.8c.1-1.4 .2-2.8 .2-4.3c0-22.3-13.1-41.6-32-50.6l0-98.8z\"],\n \"hospital\": [576, 512, [127973, 62589, \"hospital-alt\", \"hospital-wide\"], \"f0f8\", \"M128 64c0-35.3 28.7-64 64-64L384 0c35.3 0 64 28.7 64 64l0 64 64 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192c0-35.3 28.7-64 64-64l64 0 0-64zM272 352c-17.7 0-32 14.3-32 32l0 80 96 0 0-80c0-17.7-14.3-32-32-32l-32 0zM128 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM112 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM512 368l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zM264 104l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16z\"],\n \"person-harassing\": [576, 512, [], \"e549\", \"M192 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM59.4 304.5L88 256.9 88 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-244.7 47.4 57.1c11.3 13.6 31.5 15.5 45.1 4.2s15.5-31.5 4.2-45.1l-73.7-88.9c-18.2-22-45.3-34.7-73.9-34.7l-35.9 0c-33.7 0-64.9 17.7-82.3 46.6l-58.3 97c-9.1 15.1-4.2 34.8 10.9 43.9s34.8 4.2 43.9-10.9zM480 240a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM464 344l0 58.7-41.4-41.4c-7.3-7.3-17.6-10.6-27.8-9s-18.9 8.1-23.5 17.3l-48 96c-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l28.1-56.3 54.7 54.7c12.4 12.4 29.1 19.3 46.6 19.3 36.4 0 65.9-29.5 65.9-65.9L576 344c0-30.9-25.1-56-56-56s-56 25.1-56 56zM288 48c0 8.8 7.2 16 16 16l56 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-56 0c-8.8 0-16 7.2-16 16zm-.8 49.7c-7.9-4-17.5-.7-21.5 7.2s-.7 17.5 7.2 21.5l48 24c7.9 4 17.5 .7 21.5-7.2s.7-17.5-7.2-21.5l-48-24z\"],\n \"money-bill-trend-up\": [512, 512, [], \"e529\", \"M480 8c0-13.3-10.7-24-24-24L354.2-16c-13.3 0-24 10.7-24 24s10.7 24 24 24l43.9 0-111.3 111.3-95.1-81.5c-9-7.7-22.2-7.7-31.2 0l-112 96c-10.1 8.6-11.2 23.8-2.6 33.8s23.8 11.2 33.8 2.6l96.4-82.6 96.4 82.6c9.5 8.2 23.7 7.6 32.6-1.3l127-127 0 43.9c0 13.3 10.7 24 24 24s24-10.7 24-24L480 8zM48 256c-26.5 0-48 21.5-48 48L0 464c0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48l0-160c0-26.5-21.5-48-48-48L48 256zm47.3 56c-3.4 20.1-19.2 36-39.4 39.4-4.4 .7-8-2.9-8-7.3l0-32c0-4.4 3.6-8 8-8l32 0c4.4 0 8.1 3.6 7.3 8zm0 144.1c.7 4.4-2.9 8-7.3 8l-32 0c-4.4 0-8-3.6-8-8l0-32c0-4.4 3.6-8.1 8-7.3 20.1 3.4 36 19.2 39.4 39.4zM456 416.7c4.4-.7 8 2.9 8 7.3l0 32c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8.1-3.6-7.3-8 3.4-20.1 19.2-36 39.4-39.4zM416.7 312c-.7-4.4 2.9-8 7.3-8l32 0c4.4 0 8 3.6 8 8l0 32c0 4.4-3.6 8.1-8 7.3-20.1-3.4-36-19.2-39.4-39.4zM192 384a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\n \"pen-ruler\": [512, 512, [\"pencil-ruler\"], \"f5ae\", \"M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM58.9 315.1L274.1 100 412 237.9 196.9 453.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7zM225.4 80.8L80.8 225.4 11.7 156.3c-15.6-15.6-15.6-40.9 0-56.6l88-88c15.6-15.6 40.9-15.6 56.6 0l5.9 5.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 34.9 34.9zM431.2 286.6l34.9 34.9-56.3 56.3c-7.8 7.8-7.8 20.5 0 28.3s20.5 7.8 28.3 0l56.3-56.3 5.9 5.9c15.6 15.6 15.6 40.9 0 56.6l-88 88c-15.6 15.6-40.9 15.6-56.6 0l-69.1-69.1 144.6-144.6z\"],\n \"repeat\": [512, 512, [128257], \"f363\", \"M470.6 118.6c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S352 19.1 352 32l0 32-160 0C86 64 0 150 0 256 0 273.7 14.3 288 32 288s32-14.3 32-32c0-70.7 57.3-128 128-128l160 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64zM41.4 393.4c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S160 492.9 160 480l0-32 160 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-160 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64z\"],\n \"bone\": [640, 512, [129460], \"f5d7\", \"M197.4 160c-3.9 0-7.2-2.8-8.1-6.6-10.2-42.1-48.1-73.4-93.3-73.4-53 0-96 43-96 96 0 29.1 12.9 55.1 33.3 72.7 4.3 3.7 4.3 10.8 0 14.5-20.4 17.6-33.3 43.7-33.3 72.7 0 53 43 96 96 96 45.2 0 83.1-31.3 93.3-73.4 .9-3.8 4.2-6.6 8.1-6.6l245.1 0c3.9 0 7.2 2.8 8.1 6.6 10.2 42.1 48.1 73.4 93.3 73.4 53 0 96-43 96-96 0-29.1-12.9-55.1-33.3-72.7-4.3-3.7-4.3-10.8 0-14.5 20.4-17.6 33.3-43.7 33.3-72.7 0-53-43-96-96-96-45.2 0-83.1 31.3-93.3 73.4-.9 3.8-4.2 6.6-8.1 6.6l-245.1 0z\"],\n \"fire-flame-curved\": [384, 512, [\"fire-alt\"], \"f7e4\", \"M153.6 29.9l16-21.3C173.6 3.2 180 0 186.7 0 198.4 0 208 9.6 208 21.3l0 22.1c0 13.1 5.4 25.7 14.9 34.7L307.6 159C356.4 205.6 384 270.2 384 337.7 384 434 306 512 209.7 512L192 512C86 512 0 426 0 320l0-3.8c0-48.8 19.4-95.6 53.9-130.1l3.5-3.5c4.2-4.2 10-6.6 16-6.6 12.5 0 22.6 10.1 22.6 22.6L96 288c0 35.3 28.7 64 64 64s64-28.7 64-64l0-3.9c0-18-7.2-35.3-19.9-48l-38.6-38.6c-24-24-37.5-56.7-37.5-90.7 0-27.7 9-54.8 25.6-76.9z\"],\n \"bus-simple\": [448, 512, [\"bus-alt\"], \"f55e\", \"M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 128c0-17.7 14.3-32 32-32l256 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L96 256c-17.7 0-32-14.3-32-32l0-96zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"venus-mars\": [640, 512, [9892], \"f228\", \"M480-64c-17.7 0-32 14.3-32 32S462.3 0 480 0L530.7 0 474 56.7c-26.3-15.7-57.1-24.7-90-24.7-35.4 0-68.4 10.5-96 28.5-27.6-18-60.6-28.5-96-28.5-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c23.3-4.3 44.9-13.1 64-25.6 27.6 18 60.6 28.5 96 28.5 97.2 0 176-78.8 176-176 0-41.1-14.1-79-37.8-109L576 45.3 576 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L480-64zM336 309.2c20.2-28.6 32-63.5 32-101.2s-11.8-72.6-32-101.2c14.6-6.9 30.8-10.8 48-10.8 61.9 0 112 50.1 112 112S445.9 320 384 320c-17.2 0-33.5-3.9-48-10.8zM288 150.3c10.2 16.9 16 36.6 16 57.7s-5.8 40.9-16 57.7c-10.2-16.9-16-36.6-16-57.7s5.8-40.9 16-57.7zm-48-43.5c-20.2 28.6-32 63.5-32 101.2s11.8 72.6 32 101.2c-14.5 6.9-30.8 10.8-48 10.8-61.9 0-112-50.1-112-112S130.1 96 192 96c17.2 0 33.5 3.9 48 10.8z\"],\n \"blender\": [512, 512, [], \"f517\", \"M0 56C0 25.1 25.1 0 56 0L437.6 0c21.3 0 36.6 20.3 30.8 40.8L457.1 80 344 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0-9.1-96-62.9 0c-30.9 0-56-25.1-56-56L0 56zM114.3 192L100.6 48 56 48c-4.4 0-8 3.6-8 8l0 128c0 4.4 3.6 8 8 8l58.3 0zM136 384l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"u\": [384, 512, [117], \"55\", \"M32 32c17.7 0 32 14.3 32 32l0 224c0 70.7 57.3 128 128 128s128-57.3 128-128l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32l0 224c0 106-86 192-192 192S0 394 0 288L0 64C0 46.3 14.3 32 32 32z\"],\n \"share\": [512, 512, [\"mail-forward\"], \"f064\", \"M307.8 18.4c-12 5-19.8 16.6-19.8 29.6l0 80-112 0c-97.2 0-176 78.8-176 176 0 113.3 81.5 163.9 100.2 174.1 2.5 1.4 5.3 1.9 8.1 1.9 10.9 0 19.7-8.9 19.7-19.7 0-7.5-4.3-14.4-9.8-19.5-9.4-8.8-22.2-26.4-22.2-56.7 0-53 43-96 96-96l96 0 0 80c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-9.2-9.2-22.9-11.9-34.9-6.9z\"],\n \"phone-flip\": [512, 512, [128381, \"phone-alt\"], \"f879\", \"M351.8 25c7.8-18.8 28.4-28.9 48.1-23.5l5.5 1.5c64.6 17.6 119.8 80.2 103.7 156.4-37.1 175-174.8 312.7-349.8 349.8-76.3 16.2-138.8-39.1-156.4-103.7l-1.5-5.5c-5.4-19.7 4.7-40.3 23.5-48.1l97.3-40.5c16.5-6.9 35.6-2.1 47 11.8l38.6 47.2c70.3-34.9 126.8-93.3 159.3-164.9l-44.1-36.1c-13.9-11.3-18.6-30.4-11.8-47L351.8 25z\"],\n \"toilet-portable\": [320, 512, [], \"e583\", \"M0 64l0 16 320 0 0-16c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64zm24 64L0 128 0 488c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 224 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-360-296 0zm224 96l24 0 0 96-24 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24z\"],\n \"person-pregnant\": [384, 512, [], \"e31e\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm80 321.2c8.6-4.5 16.8-10 24.3-16.5l4-3.4c22.6-19.4 35.7-47.7 35.7-77.6 0-35.9-18.8-69.1-49.6-87.6l-30.4-18.2 0-1.8c0-46.5-37.7-84.1-84.1-84.1-28.1 0-54.4 14.1-70 37.5L21.4 270.2c-9.8 14.7-5.8 34.6 8.9 44.4s34.6 5.8 44.4-8.9l29-43.5-30.5 113.5c-2.6 9.6-.6 19.9 5.5 27.8S94 416 104 416l8 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-110.8z\"],\n \"less-than\": [512, 512, [62774], \"3c\", \"M477.1 50.6c7.4 16 .4 35.1-15.6 42.5L108.4 256 461.4 419c16 7.4 23 26.4 15.6 42.5s-26.4 23-42.5 15.6l-416-192C7.3 279.8 0 268.5 0 256S7.3 232.2 18.6 227l416-192c16-7.4 35.1-.4 42.5 15.6z\"],\n \"superscript\": [576, 512, [], \"f12b\", \"M544 32c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16C449.9 27.3 443.5 46.5 451.4 62.3 457 73.5 468.3 80 480 80l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128zM96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64z\"],\n \"circle-stop\": [512, 512, [62094, \"stop-circle\"], \"f28d\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 160l128 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-128c0-17.7 14.3-32 32-32z\"],\n \"arrows-up-down\": [256, 512, [\"arrows-v\"], \"f07d\", \"M150.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 77.3 96 434.7 54.6 393.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6 6 14.1 9.4 22.6 9.4s16.6-3.4 22.6-9.4l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-41.4 41.4 0-357.5 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"],\n \"poo-storm\": [512, 512, [\"poo-bolt\"], \"f75a\", \"M268.9-31.8c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.3c2.8 8.2 4.3 16.9 4.3 26.1 0 21.7-8.5 37.2-21.9 47.6-13.9 10.8-34.1 17-58.1 17l-24 0c-48.6 0-88 39.4-88 88 0 14.8 3.7 28.8 10.2 41.1-42 6.6-74.2 43-74.2 86.9 0 46.6 36.2 84.7 81.9 87.8 3.1-12.4 9.9-23.8 19.6-32.5L242.7 225c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7l-12.7 42.4c28.8 1.2 52.7 21.1 59.8 47.9l26.2 0c48.6 0 88-39.4 88-88 0-43.9-32.1-80.3-74.2-86.9 6.5-12.3 10.2-26.2 10.2-41.1 0-48.6-39.4-88-88-88l-9.4 0c.9-5.4 1.4-10.9 1.4-16.6 0-48.7-36.1-88.9-83.1-95.2zM144.6 416l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L346.5 412.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L133.5 387.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z\"],\n \"video-slash\": [576, 512, [], \"f4e2\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-153-153 0-222.2c0-35.3-28.7-64-64-64L129.8 64 41-24.9zM32 128l0 256c0 35.3 28.7 64 64 64l256 0c7.8 0 15.3-1.4 22.2-4L36 105.8c-2.6 6.9-4 14.4-4 22.2zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"],\n \"square-xmark\": [448, 512, [10062, \"times-square\", \"xmark-square\"], \"f2d3\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm71 135c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"hand-holding-droplet\": [576, 512, [\"hand-holding-water\"], \"f4c1\", \"M275.5 6.6L209.2 103C198 119.3 192 138.6 192 158.3l0 1.7c0 53 43 96 96 96s96-43 96-96l0-1.7c0-19.8-6-39-17.2-55.3L300.5 6.6C297.7 2.5 293 0 288 0s-9.7 2.5-12.5 6.6zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"],\n \"won-sign\": [512, 512, [8361, \"krw\", \"won\"], \"f159\", \"M62.4 53.9C56.8 37.1 38.7 28.1 21.9 33.6S-3.9 57.4 1.7 74.1L56.9 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l40.9 0 56.7 170.1c4.5 13.5 17.4 22.4 31.6 21.9s26.4-10.4 29.8-24.2L233 288 279 288 321 455.8c3.4 13.8 15.6 23.7 29.8 24.2s27.1-8.4 31.6-21.9L439.1 288 480 288c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.9 0 55.3-165.9c5.6-16.8-3.5-34.9-20.2-40.5s-34.9 3.5-40.5 20.2l-62 186.1-54.6 0-45.9-183.8C283.5 42 270.7 32 256 32s-27.5 10-31 24.2L179 240 124.4 240 62.4 53.9zm78 234.1l26.6 0-11.4 45.6-15.2-45.6zM245 240l11-44.1 11 44.1-22 0zm100 48l26.6 0-15.2 45.6-11.4-45.6z\"],\n \"object-ungroup\": [640, 512, [], \"f248\", \"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l209.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-113.1zM119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 113.1c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96zM544 279.4c-9.7-5.6-17.8-13.7-23.4-23.4l-29.2 0c-5.3-17.7-14.8-33.5-27.4-46.4l0-17.6 56.6 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 113.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-209.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-24.6 64 0 0 24.6c9.7 5.6 17.8 13.7 23.4 23.4l209.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-113.1z\"],\n \"comment\": [512, 512, [128489, 61669], \"f075\", \"M512 240c0 132.5-114.6 240-256 240-37.1 0-72.3-7.4-104.1-20.7L33.5 510.1c-9.4 4-20.2 1.7-27.1-5.8S-2 485.8 2.8 476.8l48.8-92.2C19.2 344.3 0 294.3 0 240 0 107.5 114.6 0 256 0S512 107.5 512 240z\"],\n \"hill-avalanche\": [576, 512, [], \"e507\", \"M440.1 401.9c34.2 23.1 81.1 19.5 111.4-10.8 34.4-34.4 34.4-90.1 0-124.5-27.8-27.8-69.5-33.1-102.6-16-11.8 6.1-16.4 20.6-10.3 32.3s20.6 16.4 32.3 10.3c15.1-7.8 34-5.3 46.6 7.3 15.6 15.6 15.6 40.9 0 56.6s-40.9 15.6-56.6 0l-81.7-81.7c22.3-14.2 37.1-39.1 37.1-67.5 0-33.9-21.1-62.9-50.9-74.5 1.9-6.8 2.9-14 2.9-21.5 0-44.2-35.8-80-80-80-27.3 0-51.5 13.7-65.9 34.6-5.8-20-24.2-34.6-46.1-34.6-26.5 0-48 21.5-48 48 0 4 .5 7.9 1.4 11.6L440.1 401.9zM480.4 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM68.7 87C43.5 61.8 .4 79.7 .4 115.3L.4 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.7 87z\"],\n \"arrows-to-eye\": [640, 512, [], \"e4bf\", \"M176 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 38.1-63-63c-9.4-9.4-24.6-9.4-33.9 0S21.7 55.6 31 65l63 63-38.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l96 0c13.3 0 24-10.7 24-24l0-96zm0 400l0-96c0-13.3-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l38.1 0-63 63c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l63-63 0 38.1c0 13.3 10.7 24 24 24s24-10.7 24-24zm312 24c13.3 0 24-10.7 24-24l0-38.1 63 63c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 38.1 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-96 0c-13.3 0-24 10.7-24 24l0 96c0 13.3 10.7 24 24 24zM464 56l0 96c0 13.3 10.7 24 24 24l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-38.1 0 63-63c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-63 63 0-38.1c0-13.3-10.7-24-24-24s-24 10.7-24 24zM320 120c-57.3 0-99.4 34-125.6 64.3-20 23.1-32.4 45.8-37.6 56.1-2.5 5-4.9 9.7-4.9 15.6s2.3 10.6 4.9 15.6c5.2 10.3 17.6 33 37.6 56.1 26.2 30.3 68.2 64.3 125.6 64.3s99.4-34 125.6-64.3c20-23.1 32.4-45.8 37.6-56.1 2.5-5 4.9-9.7 4.9-15.6s-2.3-10.6-4.9-15.6c-5.2-10.3-17.6-33-37.6-56.1-26.2-30.3-68.2-64.3-125.6-64.3zM256 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\n \"snowplow\": [640, 512, [], \"f7d2\", \"M128 160l0-96c0-35.3 28.7-64 64-64L296.4 0c24.2 0 46.4 13.7 57.2 35.4l87.6 175.1c4.4 8.9 6.8 18.7 6.8 28.6l0 56.9 80 0 0-80c0-48.6 39.4-88 88-88 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.1 0-40 17.9-40 40l0 208c0 22.1 17.9 40 40 40 13.3 0 24 10.7 24 24s-10.7 24-24 24c-48.6 0-88-39.4-88-88l0-80-63 0c9.5 16.5 15 35.6 15 56 0 61.9-50.1 112-112 112l-224 0c-61.9 0-112-50.1-112-112 0-30.5 12.2-58.2 32-78.4L64 224c0-35.3 28.7-64 64-64zm91.7 34.9l43.6 29.1 113.2 0-80-160-104.4 0 0 108.8 27.7 22.1zM416 400c0-26.5-21.5-48-48-48l-224 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l224 0c26.5 0 48-21.5 48-48zm-280 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm216-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM232 400a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"chart-gantt\": [512, 512, [], \"e0e4\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm64 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0zM384 288c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0z\"],\n \"video\": [576, 512, [\"video-camera\"], \"f03d\", \"M96 64c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L96 64zM464 336l73.5 58.8c4.2 3.4 9.4 5.2 14.8 5.2 13.1 0 23.7-10.6 23.7-23.7l0-240.6c0-13.1-10.6-23.7-23.7-23.7-5.4 0-10.6 1.8-14.8 5.2L464 176 464 336z\"],\n \"chess-pawn\": [384, 512, [9823], \"f443\", \"M192-32c66.3 0 120 53.7 120 120 0 27-8.9 51.9-24 72 17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 26.7 160 56.2 70.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L51.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L80 384 106.7 224 96 224c-17.7 0-32-14.3-32-32s14.3-32 32-32c-15.1-20.1-24-45-24-72 0-66.3 53.7-120 120-120z\"],\n \"synagogue\": [576, 512, [128333], \"f69b\", \"M16 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32-128 0 0-32zm0 368l0-288 128 0 126.2-84.2c10.7-7.2 24.8-7.2 35.5 0l126.2 84.2 128 0 0 288c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64zM560 112l-128 0 0-32c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32zM224 384l0 80 128 0 0-80c0-35.3-28.7-64-64-64s-64 28.7-64 64zm64-152a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"building-circle-check\": [576, 512, [], \"e4d2\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"calendar-plus\": [448, 512, [], \"f271\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm96 192c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"],\n \"wheelchair-move\": [448, 512, [\"wheelchair-alt\"], \"e2ce\", \"M312 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM205.4 124.1c-6.4-5.2-15.6-4.7-21.4 1.1l-33.4 33.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L138.8 80c29-29 75.2-31.4 107-5.5l81.3 66c21.4 17.4 23.8 49.2 5.2 69.5l-41.8 46 98 0c30.3 0 53 27.7 47.1 57.4L407.4 454.3c-3.5 17.3-20.3 28.6-37.7 25.1s-28.6-20.3-25.1-37.7L369 320 316.8 320c2.1 10.3 3.2 21 3.2 32 0 88.4-71.6 160-160 160S0 440.4 0 352 71.6 192 160 192c6 0 11.9 .3 17.8 1l50.4-50.4-22.7-18.5zM160 448a96 96 0 1 0 0-192 96 96 0 1 0 0 192z\"],\n \"user-shield\": [576, 512, [], \"f505\", \"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l251.5 0C261 469.4 240 414.5 240 356.4l0-31.1c0-7.3 1-14.5 2.9-21.3l-48.6 0zm251 184.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"],\n \"bold\": [384, 512, [], \"f032\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l32 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c70.7 0 128-57.3 128-128 0-46.5-24.8-87.3-62-109.7 18.7-22.3 30-51 30-82.3 0-70.7-57.3-128-128-128L32 32zM288 160c0 35.3-28.7 64-64 64l-96 0 0-128 96 0c35.3 0 64 28.7 64 64zM128 416l0-128 128 0c35.3 0 64 28.7 64 64s-28.7 64-64 64l-128 0z\"],\n \"heart-pulse\": [512, 512, [\"heartbeat\"], \"f21e\", \"M256 107.9L241 87.1C216 52.5 175.9 32 133.1 32 59.6 32 0 91.6 0 165.1l0 2.6c0 23.6 6.2 48 16.6 72.3l106 0c3.2 0 6.1-1.9 7.4-4.9l31.8-76.3c3.7-8.8 12.3-14.6 21.8-14.8s18.3 5.4 22.2 14.1l51.3 113.9 41.4-82.8c4.1-8.1 12.4-13.3 21.5-13.3s17.4 5.1 21.5 13.3l23.2 46.3c1.4 2.7 4.1 4.4 7.2 4.4l123.6 0c10.5-24.3 16.6-48.7 16.6-72.3l0-2.6C512 91.6 452.4 32 378.9 32 336.2 32 296 52.5 271 87.1l-15 20.7zM469.6 288l-97.8 0c-21.2 0-40.6-12-50.1-31l-1.7-3.4-42.5 85.1c-4.1 8.3-12.7 13.5-22 13.3s-17.6-5.7-21.4-14.1l-49.3-109.5-10.5 25.2c-8.7 20.9-29.1 34.5-51.7 34.5l-80.2 0c47.2 73.8 123 141.7 170.4 177.9 12.4 9.4 27.6 14.1 43.1 14.1s30.8-4.6 43.1-14.1C346.6 429.7 422.4 361.8 469.6 288z\"],\n \"square-root-variable\": [576, 512, [\"square-root-alt\"], \"f698\", \"M282.6 78.1c8-27.3 33-46.1 61.4-46.1l200 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L344 96 238.7 457c-3.6 12.3-14.1 21.2-26.8 22.8s-25.1-4.6-31.5-15.6L77.6 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l45.6 0c22.8 0 43.8 12.1 55.3 31.8l65.2 111.8 84.4-289.5zM393.4 233.4c12.5-12.5 32.8-12.5 45.3 0l41.4 41.4 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-41.4 41.4 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l41.4-41.4-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3z\"],\n \"hands-bubbles\": [512, 512, [\"hands-wash\"], \"e05e\", \"M384 64a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm96 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM128 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM0 160l.1 72.6c0 44.8 17.6 87.1 47.9 118.4 .3-77 40.1-148.4 105.4-189.3l1.9-1.2c-2.5-3.7-2.8-8.6-.4-12.7l62-107.4c6.6-11.5 2.7-26.2-8.8-32.8S182 5 175.4 16.5l-68 117.8 0 0 0 0-43.3 75 0-49.3c0-17.7-14.4-32-32-32S0 142.4 0 160zm213.6-35.9c14.1-8.8 29.8-12.7 45.2-12.1l36.5-63.3c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8l-67.1 116.2 27-16.9zm86.5-35.7l-16.4 28.4c15.1 5.5 28.6 15.6 38.3 29.7l19.7-34.2c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zm46.4 63.7l-12.5 21.7c2 8.6 2.5 17.5 1.7 26.1l4.3 0 0 0 34.4 0 13.7-23.8c6.6-11.5 2.7-26.2-8.8-32.8s-26.2-2.7-32.8 8.8zM283.1 175c-9.4-15-29.1-19.5-44.1-10.2l-60.2 37.6C127.3 234.7 96 291.2 96 352l0 8c0 8.9 .8 17.6 2.2 26.1 35.4 8.2 61.8 40 61.8 77.9 0 6.3-.7 12.5-2.1 18.4 25.2 18.6 56.4 29.6 90.1 29.6l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-92 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-124 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l156 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-156 0c-6.6 0-12-5.4-12-12s5.4-12 12-12l124 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-136 0 0 0 0 0-93.2 0 46.2-28.9c15-9.4 19.5-29.1 10.2-44.1z\"],\n \"marker\": [512, 512, [], \"f5a1\", \"M408.8 0c-27.4 0-53.6 10.9-73 30.2L318.1 48 305 34.9c-28.1-28.1-73.7-28.1-101.8 0L103 135c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L237.1 68.9c9.4-9.4 24.6-9.4 33.9 0L284.1 81.9 184 182.1 329.9 328 481.8 176.2c19.4-19.4 30.2-45.6 30.2-73 0-57-46.2-103.2-103.2-103.2zM102.4 263.7c-49.9 49.9-83.3 114-95.5 183.5L.4 483.8C-1 491.6 1.5 499.4 7 505s13.4 8 21.1 6.7l36.7-6.5c69.5-12.3 133.6-45.6 183.5-95.5L296 361.9 150.1 216 102.4 263.7z\"],\n \"clipboard\": [384, 512, [128203], \"f328\", \"M320 32l-8.6 0C300.4 12.9 279.7 0 256 0L128 0C104.3 0 83.6 12.9 72.6 32L64 32C28.7 32 0 60.7 0 96L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-352c0-35.3-28.7-64-64-64zM136 112c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0z\"],\n \"place-of-worship\": [512, 512, [], \"f67f\", \"M160 79l0 81-44.8 33.6C103.1 202.7 96 216.9 96 232l0 40-60.6 30.3C13.7 313.2 0 335.3 0 359.6L0 448c0 35.3 28.7 64 64 64 74.7 0 85.4 0 320 0l64 0c35.3 0 64-28.7 64-64l0-88.4c0-24.2-13.7-46.4-35.4-57.2L416 272 416 232c0-15.1-7.1-29.3-19.2-38.4L352 160 352 79c0-9.5-4.2-18.5-11.5-24.6L271.4-3.2c-8.9-7.4-21.8-7.4-30.7 0L171.5 54.4C164.2 60.5 160 69.5 160 79zm96 241c35.3 0 64 28.7 64 64l0 80-128 0 0-80c0-35.3 28.7-64 64-64z\"],\n \"cannabis\": [512, 512, [], \"f55f\", \"M256 0c5.3 0 10.3 2.7 13.3 7.1 15.8 23.5 36.7 63.7 49.2 109 7.3 26.4 11.8 55.3 10.3 84 11.6-8.9 23.7-16.7 35.9-23.7 41-23.3 84.4-36.9 112.2-42.5 5.2-1 10.7 .6 14.4 4.4s5.4 9.2 4.4 14.5c-5.6 27.7-19.3 70.9-42.7 111.7-9.1 15.9-19.9 31.7-32.5 46.3 27.9 6.6 52.5 17.2 67.3 25.4 5.1 2.8 8.2 8.2 8.2 14s-3.2 11.2-8.2 14c-15.2 8.4-40.9 19.5-69.8 26.1-20.2 4.6-42.9 7.2-65.2 4.6l8.3 33.2c1.5 6.1-.6 12.5-5.5 16.4s-11.6 4.6-17.2 1.8L280 417.2 280 488c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-70.8-58.5 29.1c-5.6 2.8-12.3 2.1-17.2-1.8s-7-10.3-5.5-16.4l8.3-33.2c-22.2 2.6-45 0-65.2-4.6-28.9-6.6-54.5-17.6-69.8-26.1-5.1-2.8-8.2-8.2-8.2-14s3.2-11.2 8.2-14l6.2-3.3c15-7.6 36.8-16.4 61.1-22.2-12.5-14.5-23.3-30.4-32.4-46.2-23.4-40.8-37.1-84-42.7-111.7-1.1-5.2 .6-10.7 4.4-14.5s9.2-5.4 14.4-4.4c27.9 5.5 71.2 19.2 112.2 42.5 12.2 6.9 24.3 14.8 35.8 23.7-1.4-28.7 3.1-57.6 10.3-84 12.5-45.3 33.4-85.5 49.2-109l1.2-1.6C246.9 2 251.3 0 256 0z\"],\n \"people-roof\": [576, 512, [], \"e537\", \"M302.3-12.6c-9-4.5-19.6-4.5-28.6 0l-256 128C1.9 123.3-4.5 142.5 3.4 158.3s27.1 22.2 42.9 14.3L288 51.8 529.7 172.6c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-256-128zM288 272a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 48c-53 0-96 43-96 96l0 32c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-32c0-53-43-96-96-96zM160 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm352 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM112 336c-44.2 0-80 35.8-80 80l0 33.1c0 17 13.8 30.9 30.9 30.9l87.8 0c-4.3-9.8-6.7-20.6-6.7-32l0-48c0-18.4 3.5-36 9.8-52.2-12.2-7.5-26.5-11.8-41.8-11.8zM425.4 480l87.8 0c17 0 30.9-13.8 30.9-30.9l0-33.1c0-44.2-35.8-80-80-80-15.3 0-29.6 4.3-41.8 11.8 6.3 16.2 9.8 33.8 9.8 52.2l0 48c0 11.4-2.4 22.2-6.7 32z\"],\n \"disease\": [512, 512, [], \"f7fa\", \"M236.5 29.4L224 48c-20 30-53.6 48-89.7 48L68 96c-37.5 0-67.9 30.4-67.9 67.9 0 18 7.2 35.2 19.9 47.9l27 27c11 11 17.2 25.9 17.2 41.5 0 15.8-6.4 30.9-17.7 42L33.4 335.1c-11.1 10.8-17.3 25.7-17.3 41.2 0 36.8 34.1 64.2 70.1 56.2l62.3-13.8c7.7-1.7 15.7-2.6 23.6-2.6 32.8 0 64.2 14.6 85.2 39.8l30.5 36.6c10.4 12.4 25.7 19.6 41.9 19.6 30.1 0 54.5-24.4 54.5-54.5l0-51.2c0-41.4 25.4-78.5 64-93.5l22.2-8.6c25.2-9.8 41.8-34.1 41.8-61.1 0-26.4-15.9-50.3-40.3-60.5L429 164.8c-33.2-13.9-57.6-43-65.5-78.1l-7.9-35.2c-6.8-30.1-33.5-51.5-64.3-51.5-22 0-42.6 11-54.8 29.4zM160 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"book-bible\": [448, 512, [\"bible\"], \"f647\", \"M96 512c-53 0-96-43-96-96L0 96C0 43 43 0 96 0L400 0c26.5 0 48 21.5 48 48l0 288c0 20.9-13.4 38.7-32 45.3l0 66.7c17.7 0 32 14.3 32 32s-14.3 32-32 32L96 512zm0-128c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0 0-64-256 0zM192 80l0 48-48 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l48 0 0 112c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-112 48 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-48 0 0-48c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"],\n \"chess-board\": [448, 512, [], \"f43c\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 64l0 64 64 0 0-64 64 0 0 64 64 0 0-64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0 64 64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64-64 0 0 64-64 0 0-64 64 0 0-64-64 0 0-64 64 0 0-64-64 0 0-64 64 0zm64 128l64 0 0-64-64 0 0 64zm0 64l0-64-64 0 0 64 64 0zm64 0l-64 0 0 64 64 0 0-64zm0 0l64 0 0-64-64 0 0 64z\"],\n \"mars\": [512, 512, [9794], \"f222\", \"M320 32c0-17.7 14.3-32 32-32L480 0c17.7 0 32 14.3 32 32l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-50.7-95 95c19.5 28.4 31 62.7 31 99.8 0 97.2-78.8 176-176 176S32 401.2 32 304 110.8 128 208 128c37 0 71.4 11.4 99.8 31l95-95-50.7 0c-17.7 0-32-14.3-32-32zM208 416a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"],\n \"laptop\": [640, 512, [128187], \"f109\", \"M128 32C92.7 32 64 60.7 64 96l0 240 64 0 0-240 384 0 0 240 64 0 0-240c0-35.3-28.7-64-64-64L128 32zM19.2 384C8.6 384 0 392.6 0 403.2 0 445.6 34.4 480 76.8 480l486.4 0c42.4 0 76.8-34.4 76.8-76.8 0-10.6-8.6-19.2-19.2-19.2L19.2 384z\"],\n \"user-xmark\": [640, 512, [\"user-times\"], \"f235\", \"M136.4 128a120 120 0 1 1 240 0 120 120 0 1 1 -240 0zm-88 354.3c0-98.5 79.8-178.3 178.3-178.3l59.4 0c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L78.1 512c-16.4 0-29.7-13.3-29.7-29.7zM612.3 124.1c9.4 9.4 9.4 24.6 0 33.9l-33.9 33.9 33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-33.9-33.9-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9-33.9-33.9c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l33.9 33.9 33.9-33.9c9.4-9.4 24.6-9.4 33.9 0z\"],\n \"flag-usa\": [448, 512, [], \"f74d\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 36.1-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-20.3-9-41.8-14.7-63.6-16.9l0 32.2c17.4 2.1 34.4 6.7 50.6 13.9l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 62-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 61.9-44.7 16.2c-42.8 15.6-90 13.9-131.6-4.6l-16.1-7.2c-40.2-17.9-85-22.5-128.1-13.3l-63.5 13.6 0 32.7 70.2-15.1c36.4-7.8 74.3-3.9 108.4 11.3l16.1 7.2c49.2 21.9 105 23.8 155.6 5.4l33.7-12.3 0 33.5c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 400 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zm80 96a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm-32 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm32 0a16 16 0 1 0 0-32 16 16 0 1 0 0 32z\"],\n \"hand-middle-finger\": [448, 512, [128405], \"f806\", \"M232 0c-22.1 0-40 17.9-40 40l0 164.2c-8.5-7.6-19.7-12.2-32-12.2-26.5 0-48 21.5-48 48l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-55.7c-2 1.4-3.9 3-5.8 4.5L55 284.8C40.4 297 32 315 32 334L32 372c0 38 16.9 74 46.1 98.3l5.4 4.5c28.8 24 65 37.1 102.4 37.1L304 512c70.7 0 128-57.3 128-128l0-96c0-26.5-21.5-48-48-48-12.4 0-23.6 4.7-32.1 12.3-1.9-24.8-22.6-44.3-47.9-44.3-12.3 0-23.5 4.6-32 12.2L272 40c0-22.1-17.9-40-40-40z\"],\n \"mortar-pestle\": [512, 512, [], \"f5a7\", \"M504.3 11.1C493.3-1.6 474.5-3.7 461 6.2L252.3 160 397.3 160 502.6 54.6c11.8-11.8 12.6-30.8 1.6-43.5zM32 192c-17.7 0-32 14.3-32 32s14.3 32 32 32c0 82.5 43.4 147.7 123.9 176.2-11.1 13.9-19.4 30.3-23.9 48.1-4.4 17.1 10.4 31.7 28.1 31.7l192 0c17.7 0 32.4-14.6 28.1-31.7-4.5-17.8-12.8-34.1-23.9-48.1 80.5-28.6 123.9-93.7 123.9-176.2 17.7 0 32-14.3 32-32s-14.3-32-32-32L32 192z\"],\n \"head-side-cough\": [512, 512, [], \"e061\", \"M96 512l64 0c53 0 96-43 96-96l0-80c0-8.8 7.2-16 16-16l1 0c26 0 47-21 47-47 0-11-3.9-21.6-10.9-30.1L273.3 200C271.4 197.6 270.1 194.7 269.7 191.7 254 83.3 160.7 0 48 0 40.4 0 32.9 .4 25.4 1.1 10.5 2.6 0 15.9 0 30.9L0 480c0 17.7 14.3 32 32 32l64 0zm16-320a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm63.1 237.2l-41.5-3.5c-12.2-1-21.6-11.2-21.6-23.4 0-10.8 7.3-20.2 17.8-22.8l40.4-10.1c19.2-4.8 37.8 9.7 37.8 29.5 0 17.8-15.2 31.8-32.9 30.3zM480 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40 24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-64 48a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm128 0a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM480 504a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm-40-72a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"plane-lock\": [640, 512, [], \"e558\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 82.1 75.2C409.7 248.1 400 274.9 400 304l0 24.4c-7.3 6.6-13.6 14.2-18.7 22.7l-37.3-12.4 0 99.7 24 19.2 0 38.3c0 13.5 2.8 26.4 7.8 38.1L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM560 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"battery-three-quarters\": [640, 512, [\"battery-4\"], \"f241\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l224 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-224 0z\"],\n \"franc-sign\": [320, 512, [], \"e18f\", \"M80 32C62.3 32 48 46.3 48 64l0 256-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 88 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-88 0 0-64 144 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-144 0 0-96 176 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 32z\"],\n \"filter-circle-dollar\": [576, 512, [\"funnel-dollar\"], \"f662\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM416 320c0-8.8 7.2-16 16-16s16 7.2 16 16l0 8 16 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-45.8 0c-5.6 0-10.2 4.6-10.2 10.2 0 4.9 3.5 9.1 8.3 10l45 8.2c20 3.6 34.6 21.1 34.6 41.5 0 23.3-18.9 42.2-42.2 42.2l-5.8 0 0 8c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-8-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l53.8 0c5.6 0 10.2-4.6 10.2-10.2 0-4.9-3.5-9.1-8.3-10l-45-8.2c-20-3.6-34.6-21.1-34.6-41.5 0-22.6 17.7-41 40-42.1l0-8.1z\"],\n \"cheese\": [512, 512, [], \"f7ef\", \"M512 240.2l0 15.8-512 0c0-20 10-38.7 26.6-49.8L274.9 40.7c8.6-5.7 18.6-8.7 28.9-8.7 115 0 208.2 93.2 208.2 208.2zm0 63.8l0 112c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-112 512 0z\"],\n \"circle-h\": [512, 512, [9405, \"hospital-symbol\"], \"f47e\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm96-344l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"school\": [576, 512, [127979], \"f549\", \"M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 192zM224 376l0 88 128 0 0-88c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zm-112 8c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM288 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"],\n \"dice-five\": [448, 512, [9860], \"f523\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM96 352a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64-64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 160a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"tornado\": [448, 512, [127786], \"f76f\", \"M0 32L0 45.6C0 62.7 1.7 79.6 5 96l352.8 0c3.2-6.9 7.5-13.3 13-18.8l38.6-38.6c4.2-4.2 6.6-10 6.6-16 0-12.5-10.1-22.6-22.6-22.6L32 0C14.3 0 0 14.3 0 32zM355.7 144l-336 0c12.4 29.7 30.2 56.8 52.7 80l339.6 0-47.2-62.9c-3.9-5.2-7-11-9.2-17.1zM242.6 334.7c8.2 4.8 15.8 10.7 22.5 17.3L445 352c2-9.8 3-19.9 3-30.1 0-17.1-2.9-34-8.6-49.9L136 272 242.6 334.7zM294.3 400c5.3 17 6.5 35.2 3.6 53l-5.9 35.7c-2 12.2 7.4 23.4 19.8 23.4 5.3 0 10.4-2.1 14.2-5.9l78.2-78.2c8.5-8.5 15.8-17.8 21.9-27.9l-131.8 0z\"],\n \"jet-fighter\": [576, 512, [\"fighter-jet\"], \"f0fb\", \"M496.2 206.8c-10.7-4.5-22.2-6.8-33.8-6.8L362 200 248 48 296 48c13.3 0 24-10.7 24-24S309.3 0 296 0L152 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l8 0 0 152-54.4 0-52.8-66c-3-3.8-7.6-6-12.5-6L16 128c-8.8 0-16 7.2-16 16l0 88 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 88c0 8.8 7.2 16 16 16l24.3 0c4.9 0 9.5-2.2 12.5-6l52.8-66 54.4 0 0 152-8 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 114-152 100.4 0c11.6 0 23.1-2.3 33.8-6.8l65-27.1c8.9-3.7 14.8-12.5 14.8-22.2s-5.8-18.4-14.8-22.2l-65-27.1z\"],\n \"thumbs-down\": [512, 512, [128078, 61576], \"f165\", \"M384 32c26.5 0 48 21.5 48 48 0 6.3-1.3 12.2-3.4 17.7 20.4 5.5 35.4 24.1 35.4 46.3 0 9.1-2.6 17.6-7 24.9 22.2 4.2 39 23.7 39 47.1 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 26.5-21.5 48-48 48l-160 0 28.2 70.4c2.5 6.3 3.8 13.1 3.8 19.9l0 4.2c0 27.3-22.1 49.4-49.4 49.4-18.7 0-35.8-10.6-44.2-27.3L170.1 356.3c-6.7-13.3-10.1-28-10.1-42.9l0-186.6c0-19.4 8.9-37.8 24-50l12.2-9.7C224.6 44.4 259.8 32 296.1 32L384 32zM80 96c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 128c0-17.7 14.3-32 32-32l48 0z\"],\n \"broom\": [576, 512, [129529], \"f51a\", \"M566.6 54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192-34.7-34.7c-4.2-4.2-10-6.6-16-6.6-12.5 0-22.6 10.1-22.6 22.6l0 29.1 108.3 108.3 29.1 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-34.7-34.7 192-192zM341.1 353.4L222.6 234.9c-42.7-3.7-85.2 11.7-115.8 42.3l-8 8c-22.3 22.3-34.8 52.5-34.8 84 0 6.8 7.1 11.2 13.2 8.2l51.1-25.5c5-2.5 9.5 4.1 5.4 7.9L7.3 473.4C2.7 477.6 0 483.6 0 489.9 0 502.1 9.9 512 22.1 512l173.3 0c38.8 0 75.9-15.4 103.4-42.8 30.6-30.6 45.9-73.1 42.3-115.8z\"],\n \"file-import\": [384, 512, [\"arrow-right-to-file\"], \"f56f\", \"M64 0C28.7 0 0 28.7 0 64l0 240 182.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-182.1 0 0 96c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z\"],\n \"utensils\": [512, 512, [127860, 61685, \"cutlery\"], \"f2e7\", \"M63.9 14.4C63.1 6.2 56.2 0 48 0s-15.1 6.2-16 14.3L17.9 149.7c-1.3 6-1.9 12.1-1.9 18.2 0 45.9 35.1 83.6 80 87.7L96 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224.4c44.9-4.1 80-41.8 80-87.7 0-6.1-.6-12.2-1.9-18.2L223.9 14.3C223.1 6.2 216.2 0 208 0s-15.1 6.2-15.9 14.4L178.5 149.9c-.6 5.7-5.4 10.1-11.1 10.1-5.8 0-10.6-4.4-11.2-10.2L143.9 14.6C143.2 6.3 136.3 0 128 0s-15.2 6.3-15.9 14.6L99.8 149.8c-.5 5.8-5.4 10.2-11.2 10.2-5.8 0-10.6-4.4-11.1-10.1L63.9 14.4zM448 0C432 0 320 32 320 176l0 112c0 35.3 28.7 64 64 64l32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-448c0-17.7-14.3-32-32-32z\"],\n \"id-badge\": [384, 512, [], \"f2c1\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zm96 352l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L96 448c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM152 64l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"spider\": [512, 512, [128375], \"f717\", \"M369.3-31c11.9-3.5 24.4 2.7 29 13.9l.8 2.3 40 136c2.5 8.4 .1 17.5-6.1 23.7l-64.1 64.1 76.4-20.8 19.9-59.8 .9-2.3c5-11.1 17.7-16.8 29.5-12.9 11.8 3.9 18.5 16.1 15.8 28l-.7 2.4-24 72c-2.5 7.6-8.7 13.4-16.5 15.6l-91.1 24.8 91.1 24.8c7.7 2.1 13.9 8 16.5 15.6l24 72 .7 2.4c2.7 11.9-4.1 24.1-15.8 28-11.8 3.9-24.5-1.8-29.5-12.9l-.9-2.3-19.9-59.8-76.4-20.8 64.1 64.1c6.1 6.1 8.5 15.1 6.2 23.4l-40 144-.8 2.3c-4.4 11.3-16.8 17.7-28.8 14.4-12-3.3-19.3-15.2-17.2-27.2l.5-2.4 36.2-130.5-37.2-37.2C351 406 308.4 448 256 448s-95-42-96-94.1l-37 37 36 122.3 .6 2.4c2.2 11.9-4.9 23.9-16.8 27.4-11.9 3.5-24.4-2.7-29-13.9l-.8-2.3-40-136c-2.5-8.4-.1-17.5 6.1-23.8l64.1-64.1-76.4 20.8-19.9 59.8-.9 2.3c-5 11.1-17.7 16.8-29.5 12.9s-18.5-16.1-15.8-28l.7-2.4 24-72c2.5-7.6 8.7-13.4 16.5-15.6l91.1-24.8-91.1-24.8c-7.7-2.1-13.9-8-16.5-15.6l-24-72-.7-2.4c-2.7-11.9 4.1-24.1 15.8-28s24.5 1.8 29.5 12.9l.9 2.3 19.9 59.8 76.4 20.8-64.1-64.1c-6.2-6.2-8.5-15.3-6.1-23.7l40-136 .8-2.3c4.6-11.3 17.1-17.4 29-13.9 11.9 3.5 19 15.5 16.8 27.4l-.6 2.4-36 122.3 53 53c1-43.3 36.4-78.1 79.9-78.1s78.9 34.8 79.9 78.2l53.1-53.1-36-122.3-.6-2.4c-2.2-12 4.9-23.9 16.8-27.4z\"],\n \"mobile-retro\": [384, 512, [], \"e527\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm80 96l0 64c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32zm8 192a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zm64-72a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm24 72c0-13.3-10.7-24-24-24s-24 10.7-24 24 10.7 24 24 24 24-10.7 24-24zM168 40c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"],\n \"signs-post\": [512, 512, [\"map-signs\"], \"f277\", \"M256.4 0c-17.7 0-32 14.3-32 32l0 32-160 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0 0 64-153.4 0c-4.2 0-8.3 1.7-11.3 4.7l-48 48c-6.2 6.2-6.2 16.4 0 22.6l48 48c3 3 7.1 4.7 11.3 4.7l153.4 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0 0-64 153.4 0c4.2 0 8.3-1.7 11.3-4.7l48-48c6.2-6.2 6.2-16.4 0-22.6l-48-48c-3-3-7.1-4.7-11.3-4.7l-153.4 0 0-32c0-17.7-14.3-32-32-32z\"],\n \"group-arrows-rotate\": [512, 512, [], \"e4f6\", \"M37.6 122.3c-11.5 18.7-20.6 39-27 60.5-5 16.9 4.6 34.8 21.5 39.8s34.8-4.6 39.8-21.5c18.4-61.9 67.3-110.8 129.2-129.2 16.9-5 26.6-22.9 21.5-39.8S199.8 5.6 182.9 10.6C161.4 17 141.1 26.1 122.3 37.6 112.3 15.4 89.9 0 64 0 28.7 0 0 28.7 0 64 0 89.9 15.4 112.3 37.6 122.3zm436.7 0c22.2-10 37.6-32.4 37.6-58.3 0-35.3-28.7-64-64-64-25.9 0-48.3 15.4-58.3 37.6-18.7-11.5-39-20.6-60.5-27-16.9-5-34.8 4.6-39.8 21.5s4.6 34.8 21.5 39.8c61.9 18.4 110.8 67.3 129.2 129.2 5 16.9 22.9 26.6 39.8 21.5s26.6-22.9 21.5-39.8c-6.4-21.5-15.5-41.8-27-60.5zM512 448c0-25.9-15.4-48.3-37.6-58.3 11.5-18.7 20.6-39 27-60.5 5-16.9-4.6-34.8-21.5-39.8s-34.8 4.6-39.8 21.5c-18.4 61.9-67.3 110.8-129.2 129.2-16.9 5-26.6 22.9-21.5 39.8s22.9 26.6 39.8 21.5c21.5-6.4 41.8-15.5 60.5-27 10 22.2 32.4 37.6 58.3 37.6 35.3 0 64-28.7 64-64zM37.6 389.7c-22.2 10-37.6 32.4-37.6 58.3 0 35.3 28.7 64 64 64 25.9 0 48.3-15.4 58.3-37.6 18.7 11.5 39 20.6 60.5 27 16.9 5 34.8-4.6 39.8-21.5s-4.6-34.8-21.5-39.8c-61.9-18.4-110.8-67.3-129.2-129.2-5-16.9-22.9-26.6-39.8-21.5S5.6 312.2 10.6 329.1c6.4 21.5 15.5 41.8 27 60.5zM256 192c15.6 0 30 5.6 41.1 14.9l-15.3 15.3c-6.6 6.6-1.9 17.8 7.4 17.8l60.5 0c5.7 0 10.4-4.7 10.4-10.4l0-60.5c0-9.3-11.2-13.9-17.8-7.4l-11.2 11.2c-19.8-17.9-46.2-28.9-75.1-28.9-43.6 0-81.3 24.9-99.8 61.1-6 11.8-1.4 26.3 10.4 32.3s26.3 1.4 32.3-10.4c10.6-20.8 32.2-34.9 57-34.9zm58.6 93.1c-10.6 20.8-32.2 34.9-57 34.9-15.7 0-30-5.6-41.1-14.9l15.3-15.3c6.6-6.6 1.9-17.8-7.4-17.8L164 272c-5.7 0-10.4 4.7-10.4 10.4l0 60.5c0 9.3 11.2 13.9 17.8 7.4l11.2-11.2c19.8 17.9 46.2 28.9 75.1 28.9 43.6 0 81.3-24.9 99.8-61.1 6-11.8 1.4-26.3-10.4-32.3s-26.3-1.4-32.3 10.4z\"],\n \"arrows-split-up-and-left\": [512, 512, [], \"e4bc\", \"M342.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l41.4-41.4 0 195.9c-18.8-10.9-40.7-17.1-64-17.1l-114.7 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 320 224 320c35.3 0 64 28.7 64 64 0 70.7 57.3 128 128 128l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-35.3 0-64-28.7-64-64l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"],\n \"fill-drip\": [576, 512, [], \"f576\", \"M309.7 71.6l-64.4 64.4 33.4 33.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-33.4-33.4-96.4 96.4c-2.9 2.9-5.1 6.5-6.3 10.3l321.5 0 53.7-53.7c4.9-4.9 7.6-11.5 7.6-18.3s-2.7-13.5-7.6-18.3L346.3 71.6C341.5 66.7 334.9 64 328 64s-13.5 2.7-18.3 7.6zM58.3 232.4l96.4-96.4-49.4-49.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L200 90.7 264.4 26.3C281.3 9.5 304.1 0 328 0s46.7 9.5 63.6 26.3L517.7 152.4C534.5 169.3 544 192.1 544 216s-9.5 46.7-26.3 63.6L311.6 485.7C294.7 502.5 271.9 512 248 512s-46.7-9.5-63.6-26.3L58.3 359.6C41.5 342.7 32 319.9 32 296s9.5-46.7 26.3-63.6zM512 544c-35.3 0-64-28.7-64-64 0-25.2 32.6-79.6 51.2-108.7 6-9.4 19.5-9.4 25.5 0 18.7 29.1 51.2 83.5 51.2 108.7 0 35.3-28.7 64-64 64z\"],\n \"shield-heart\": [512, 512, [], \"e574\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM249.6 183.5l6.4 8.5 6.4-8.5c11.1-14.8 28.5-23.5 46.9-23.5 32.4 0 58.7 26.3 58.7 58.7l0 5.3c0 49.1-65.8 98.1-96.5 118.3-9.5 6.2-21.5 6.2-30.9 0-30.7-20.2-96.5-69.3-96.5-118.3l0-5.3c0-32.4 26.3-58.7 58.7-58.7 18.5 0 35.9 8.7 46.9 23.5z\"],\n \"person-skiing-nordic\": [576, 512, [\"skiing-nordic\"], \"f7ca\", \"M424.8 16a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm99.8 193.7c7.6 15.2 1.9 33.6-12.6 42l0 180.3-32 0 0-164.2-10.1 5c-27.4 13.7-60.7 6.1-79.4-18.2l-19.6-25.5-39.5 68.8 24.8 12.4c29.5 14.7 42.9 49.5 31.1 80.2l-28.2 73.4 149.4 0c7.9 0 15.6-2.3 22.2-6.7l7.9-5.3c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-7.9 5.3C543 506.9 526 512 508.6 512l-189.1 0c-.5 0-1 0-1.5 0L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l88 0c0-8.2 3.1-16.4 9.4-22.6l74.1-74.1 10.2-35.9c11.3 18.3 27.7 33.8 48.4 44.2l4.8 2.4-1.9 6.8c-3 10.5-8.6 20-16.3 27.7l-51.5 51.5 101.3 0 37.1-96.4-55.6-27.8C230.4 319 215.3 267 239.3 227.1l37.7-62.7-27.7-7.7c-9-2.5-18.1 3.2-20 12.3l-5.9 29.3c-3.1 15.6-17.1 26.3-32.5 25.7l-130 208-37.7 0 140.6-225c-3.4-6.3-4.6-13.8-3.1-21.3l5.9-29.3c9.1-45.6 55.1-73.8 99.9-61.4l32.5 9c46.7 13 88 40.8 117.6 79.3l24.9 32.3 40.4-20.2c15.8-7.9 35-1.5 42.9 14.3z\"],\n \"square-check\": [448, 512, [9745, 9989, 61510, \"check-square\"], \"f14a\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM342 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L189.1 315.2 137 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.9 7.5 18.8 7s13.4-4.1 17.5-9.8L347.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z\"],\n \"bath\": [512, 512, [128705, \"bathtub\"], \"f2cd\", \"M96 77.3c0-7.3 5.9-13.3 13.3-13.3 3.5 0 6.9 1.4 9.4 3.9l14.9 14.9c-3.6 9.1-5.5 18.9-5.5 29.2 0 19.9 7.2 38 19.2 52-5.3 9.2-4 21.1 3.8 29 9.4 9.4 24.6 9.4 33.9 0L289 89c9.4-9.4 9.4-24.6 0-33.9-7.8-7.9-19.8-9.1-29-3.8-14-12-32.1-19.2-52-19.2-10.3 0-20.2 2-29.2 5.5L163.9 22.6C149.4 8.1 129.7 0 109.3 0 66.6 0 32 34.6 32 77.3L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 48c0 28.4 12.4 54 32 71.6L64 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16 256 0 0 16c0 17.7 14.3 32 32 32s32-14.3 32-32l0-40.4c19.6-17.6 32-43.1 32-71.6l0-48c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 256 96 77.3z\"],\n \"chess-bishop\": [320, 512, [9821], \"f43a\", \"M64 384L48.3 368.3C17.4 337.4 0 295.4 0 251.7 0 213.1 13.5 175.8 38.2 146.1L106.7 64 96 64C78.3 64 64 49.7 64 32S78.3 0 96 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.7 0 47.6 57.1-85.9 85.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l82.3-82.3c18.7 27.3 28.7 59.7 28.7 93 0 43.7-17.4 85.7-48.3 116.6L256 384 312.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L35.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L64 384z\"],\n \"prescription-bottle-medical\": [384, 512, [\"prescription-bottle-alt\"], \"f486\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zM160 248l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"],\n \"draw-polygon\": [512, 512, [58055, \"vector-polygon\"], \"f5ee\", \"M64 0c23.7 0 44.4 12.9 55.4 32l273.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 34-26.5 61.8-60 63.9l-2.1 2.9-71.5 99.1c3.6 8 5.6 16.9 5.6 26.2s-2 18.2-5.6 26.2l2.2 3.1 69.3 96 2.1 2.9c33.5 2.1 60 29.9 60 63.9 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-273.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0zM394.2 413.4l-65.5-90.6-2.2-3.1c-2.1 .2-4.3 .3-6.5 .3-35.3 0-64-28.7-64-64s28.7-64 64-64c2.2 0 4.4 .1 6.5 .3l67.7-93.7c-.6-.9-1.1-1.7-1.6-2.6L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l273.1 0c.5-.9 1.1-1.8 1.6-2.6z\"],\n \"i-cursor\": [256, 512, [], \"f246\", \"M.1 29.3C-1.4 47 11.7 62.4 29.3 63.9l8 .7C70.5 67.3 96 95 96 128.3l0 95.7-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 95.7c0 33.3-25.5 61-58.7 63.8l-8 .7C11.7 449.6-1.4 465 .1 482.7S17 513.4 34.7 511.9l8-.7c34.1-2.8 64.2-18.9 85.4-42.9 21.2 24 51.2 40 85.4 42.9l8 .7c17.6 1.5 33.1-11.6 34.5-29.2s-11.6-33.1-29.2-34.5l-8-.7C185.5 444.7 160 417 160 383.7l0-95.7 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-95.7c0-33.3 25.5-61 58.7-63.8l8-.7c17.6-1.5 30.7-16.9 29.2-34.5S239-1.4 221.3 .1l-8 .7c-34.1 2.8-64.2 18.9-85.4 42.9-21.2-24-51.2-40-85.4-42.9l-8-.7C17-1.4 1.6 11.7 .1 29.3z\"],\n \"heart-circle-plus\": [576, 512, [], \"e500\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"],\n \"shield-dog\": [512, 512, [], \"e573\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160.9 286.2c4.8 1.2 9.9 1.8 15.1 1.8 35.3 0 64-28.7 64-64l0-64 44.2 0c12.1 0 23.2 6.8 28.6 17.7l7.2 14.3 64 0c8.8 0 16 7.2 16 16l0 32c0 44.2-35.8 80-80 80l-48 0 0 50.7c0 7.3-5.9 13.3-13.3 13.3-1.8 0-3.6-.4-5.2-1.1l-98.7-42.3c-6.6-2.8-10.8-9.3-10.8-16.4 0-2.8 .6-5.5 1.9-8l15-30zM160 160l48 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c0-8.8 7.2-16 16-16zm128 48a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],\n \"greater-than-equal\": [448, 512, [], \"f532\", \"M21.9 94.4C5.1 88.8-3.9 70.6 1.7 53.9S25.4 28.1 42.1 33.6l384 128C439.2 166 448 178.2 448 192s-8.8 26-21.9 30.4l-384 128c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5L314.8 192 21.9 94.4zM416 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0z\"],\n \"envelope-open\": [512, 512, [62135], \"f2b6\", \"M64.4 175.8L256 33.9 447.6 175.8 289.5 293c-9.7 7.2-21.4 11-33.5 11s-23.8-3.9-33.5-11L64.4 175.8zM256-32c-12.1 0-23.8 3.9-33.5 11L25.9 124.7C9.6 136.8 0 155.8 0 176.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-239.9c0-20.3-9.6-39.4-25.9-51.4L289.5-21c-9.7-7.2-21.4-11-33.5-11z\"],\n \"mound\": [512, 512, [], \"e52d\", \"M112.4 179.2C142 127.7 196.8 96 256.2 96s114.2 31.7 143.9 83.2L508.7 368c12.3 21.3-3.1 48-27.7 48L31.5 416c-24.6 0-40-26.6-27.7-48L112.4 179.2z\"],\n \"voicemail\": [640, 512, [], \"f897\", \"M144 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM263.8 320c15.3-22.9 24.2-50.4 24.2-80 0-79.5-64.5-144-144-144S0 160.5 0 240 64.5 384 144 384l352 0c79.5 0 144-64.5 144-144S575.5 96 496 96 352 160.5 352 240c0 29.6 8.9 57.1 24.2 80l-112.5 0zM496 160a80 80 0 1 1 0 160 80 80 0 1 1 0-160z\"],\n \"vest\": [448, 512, [], \"e085\", \"M200 464l0-170.1c0-3.9-.5-7.8-1.4-11.6L144.4 65.4C162.1 77.2 188.2 88 224 88s61.9-10.8 79.6-22.6L249.4 282.3c-1 3.8-1.4 7.7-1.4 11.6L248 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48l0-193.5c0-9.5-2.8-18.7-8.1-26.6l-47.9-71.8c-5.3-7.9-8.1-17.1-8.1-26.6L384 48c0-26.5-21.5-48-48-48l-3.5 0c-.3 0-.6 0-1 0-.6 0-1.2 0-1.8 0-18.8 0-34.1 9.7-44.1 18.8-9.3 8.4-28.5 21.2-61.7 21.2s-52.4-12.8-61.7-21.2c-10-9.1-25.3-18.8-44.1-18.8-.6 0-1.2 0-1.8 0-.3 0-.6 0-1 0L112 0C85.5 0 64 21.5 64 48l0 97.5c0 9.5-2.8 18.7-8.1 26.6L8.1 243.9C2.8 251.8 0 261.1 0 270.5L0 464c0 26.5 21.5 48 48 48l104 0c26.5 0 48-21.5 48-48z\"],\n \"audio-description\": [512, 512, [], \"f29e\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm96 96l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 48 0 0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-35.3-28.7-64-64-64l-16 0c-35.3 0-64 28.7-64 64zm48 32l0-32c0-8.8 7.2-16 16-16l16 0c8.8 0 16 7.2 16 16l0 32-48 0zm152-96c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24l48 0c39.8 0 72-32.2 72-72l0-48c0-39.8-32.2-72-72-72l-48 0zm48 144l-24 0 0-96 24 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24z\"],\n \"w\": [576, 512, [119], \"57\", \"M20.8 34c16.5-6.2 35 2.2 41.2 18.7L172.2 346.7 257.3 55c4-13.7 16.5-23 30.7-23s26.7 9.4 30.7 23L403.8 346.7 514 52.8c6.2-16.5 24.6-24.9 41.2-18.7S580.2 58.7 574 75.2l-144 384c-4.8 12.9-17.4 21.3-31.2 20.7s-25.7-9.8-29.5-23L288 178.3 206.7 457c-3.9 13.2-15.8 22.5-29.5 23s-26.3-7.8-31.2-20.7L2 75.2C-4.2 58.7 4.2 40.2 20.8 34z\"],\n \"eye-dropper\": [512, 512, [\"eye-dropper-empty\", \"eyedropper\"], \"f1fb\", \"M341.6 29.2l-101.6 101.6-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 101.6-101.6c39-39 39-102.2 0-141.1s-102.2-39-141.1 0zM55.4 323.3c-15 15-23.4 35.4-23.4 56.6l0 42.4-26.6 39.9c-8.5 12.7-6.8 29.6 4 40.4s27.7 12.5 40.4 4l39.9-26.6 42.4 0c21.2 0 41.6-8.4 56.6-23.4l109.4-109.4-45.3-45.3-109.4 109.4c-3 3-7.1 4.7-11.3 4.7l-36.1 0 0-36.1c0-4.2 1.7-8.3 4.7-11.3l109.4-109.4-45.3-45.3-109.4 109.4z\"],\n \"circle-xmark\": [512, 512, [61532, \"times-circle\", \"xmark-circle\"], \"f057\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"trailer\": [640, 512, [], \"e041\", \"M32 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 256 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zm408 16c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM112 136l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm176-24c-13.3 0-24 10.7-24 24l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24zM264 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z\"],\n \"turkish-lira-sign\": [448, 512, [\"try\", \"turkish-lira\"], \"e2bb\", \"M160 32c17.7 0 32 14.3 32 32l0 43.6 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 46.1 121.4-34.7c12.7-3.6 26 3.7 29.7 16.5s-3.7 26-16.5 29.7l-134.6 38.5 0 162.5 72 0c53 0 96-43 96-96 0-17.7 14.3-32 32-32s32 14.3 32 32c0 88.4-71.6 160-160 160l-104 0c-17.7 0-32-14.3-32-32l0-176.2-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-46.1-25.4 7.3c-12.7 3.6-26-3.7-29.7-16.5s3.7-26 16.5-29.7l38.6-11 0-61.9c0-17.7 14.3-32 32-32z\"],\n \"volcano\": [512, 512, [127755], \"f770\", \"M160 144c-35.3 0-64-28.7-64-64s28.7-64 64-64c15.7 0 30 5.6 41.2 15 11.2-18.6 31.6-31 54.8-31s43.6 12.4 54.8 31c11.1-9.4 25.5-15 41.2-15 35.3 0 64 28.7 64 64s-28.7 64-64 64c-14.7 0-28.3-5-39.1-13.3l-32 48C275.3 187 266 192 256 192s-19.3-5-24.9-13.3l-32-48C188.3 139 174.7 144 160 144zM144 352l48.4-24.2c10.2-5.1 21.6-7.8 33-7.8 19.6 0 38.4 7.8 52.2 21.6l32.5 32.5c6.3 6.3 14.9 9.9 23.8 9.9 11.3 0 21.8-5.6 28-15l9.7-14.6-59-66.3c-9.1-10.2-22.2-16.1-35.9-16.1l-41.8 0c-13.7 0-26.8 5.9-35.9 16.1l-59.9 67.4 4.7-3.5zm19.4-95.8c18.2-20.5 44.3-32.2 71.8-32.2l41.8 0c27.4 0 53.5 11.7 71.8 32.2l150.2 169c8.5 9.5 13.2 21.9 13.2 34.7 0 28.8-23.4 52.2-52.2 52.2L52.2 512C23.4 512 0 488.6 0 459.8 0 447.1 4.7 434.7 13.2 425.2l150.2-169z\"],\n \"wand-sparkles\": [512, 512, [], \"f72b\", \"M464 6.1c9.5-8.5 24-8.1 33 .9l8 8c9 9 9.4 23.5 .9 33l-85.8 95.9c-2.6 2.9-4.1 6.7-4.1 10.7l0 21.4c0 8.8-7.2 16-16 16l-15.8 0c-4.6 0-8.9 1.9-11.9 5.3L100.7 500.9c-6.3 7.1-15.3 11.1-24.8 11.1-8.8 0-17.3-3.5-23.5-9.8L9.7 459.7c-6.2-6.2-9.7-14.7-9.7-23.5 0-9.5 4-18.5 11.1-24.8l111.6-99.8c3.4-3 5.3-7.4 5.3-11.9l0-27.6c0-8.8 7.2-16 16-16l34.6 0c3.9 0 7.7-1.5 10.7-4.1L464 6.1zM432 288c3.6 0 6.7 2.4 7.7 5.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8l-14.8-51.7-51.7-14.8c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8zM87.7 69.8l14.8 51.7 51.7 14.8c3.4 1 5.8 4.1 5.8 7.7s-2.4 6.7-5.8 7.7l-51.7 14.8-14.8 51.7c-1 3.4-4.1 5.8-7.7 5.8s-6.7-2.4-7.7-5.8L57.5 166.5 5.8 151.7c-3.4-1-5.8-4.1-5.8-7.7s2.4-6.7 5.8-7.7l51.7-14.8 14.8-51.7c1-3.4 4.1-5.8 7.7-5.8s6.7 2.4 7.7 5.8zM208 0c3.7 0 6.9 2.5 7.8 6.1l6.8 27.3 27.3 6.8c3.6 .9 6.1 4.1 6.1 7.8s-2.5 6.9-6.1 7.8l-27.3 6.8-6.8 27.3c-.9 3.6-4.1 6.1-7.8 6.1s-6.9-2.5-7.8-6.1l-6.8-27.3-27.3-6.8c-3.6-.9-6.1-4.1-6.1-7.8s2.5-6.9 6.1-7.8l27.3-6.8 6.8-27.3c.9-3.6 4.1-6.1 7.8-6.1z\"],\n \"microphone\": [384, 512, [], \"f130\", \"M192 0C139 0 96 43 96 96l0 128c0 53 43 96 96 96s96-43 96-96l0-128c0-53-43-96-96-96zM48 184c0-13.3-10.7-24-24-24S0 170.7 0 184l0 40c0 97.9 73.3 178.7 168 190.5l0 49.5-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-49.5c94.7-11.8 168-92.6 168-190.5l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c0 79.5-64.5 144-144 144S48 303.5 48 224l0-40z\"],\n \"crown\": [576, 512, [128081], \"f521\", \"M313 87.2c9.2-7.3 15-18.6 15-31.2 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 12.6 5.9 23.9 15 31.2L194.6 194.8c-10 15.7-31.3 19.6-46.2 8.4L88.9 158.7c4.5-6.4 7.1-14.3 7.1-22.7 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 21.8 17.5 39.6 39.2 40L87.8 393.5c4.7 31.3 31.6 54.5 63.3 54.5l273.8 0c31.7 0 58.6-23.2 63.3-54.5L520.8 176c21.7-.4 39.2-18.2 39.2-40 0-22.1-17.9-40-40-40s-40 17.9-40 40c0 8.4 2.6 16.3 7.1 22.7l-59.4 44.6c-14.9 11.2-36.2 7.3-46.2-8.4L313 87.2z\"],\n \"tent-arrow-turn-left\": [512, 512, [], \"e580\", \"M-.5 113l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 350.1 0c22.1 0 40 17.9 40 40l0 24c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24c0-48.6-39.4-88-88-88l-350.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9S80.9-2.3 71.5 7L-.5 79c-9.4 9.4-9.4 24.6 0 33.9zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z\"],\n \"truck-fast\": [640, 512, [\"shipping-fast\"], \"f48b\", \"M64 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 32 50.7 0c17 0 33.3 6.7 45.3 18.7L621.3 192c12 12 18.7 28.3 18.7 45.3L640 384c0 35.3-28.7 64-64 64l-3.3 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-102.6 0c-10.4 36.9-44.4 64-84.7 64s-74.2-27.1-84.7-64l-3.3 0c-35.3 0-64-28.7-64-64l0-48-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 144c-13.3 0-24-10.7-24-24S10.7 96 24 96l40 0zM576 288l0-50.7-45.3-45.3-50.7 0 0 96 96 0zM256 424a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm232 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"user-pen\": [640, 512, [\"user-edit\"], \"f4ff\", \"M256.1 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56c-98.5 0-178.3 79.8-178.3 178.3 0 16.4 13.3 29.7 29.7 29.7l196.5 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l67.3-67.3c-28-18.3-61.4-28.9-97.4-28.9l-59.4 0zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z\"],\n \"user-clock\": [576, 512, [], \"f4fd\", \"M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c3.9 0 7.9 .1 11.8 .4-16.2 28.2-25.5 60.8-25.5 95.6 0 41.8 13.4 80.5 36 112L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm144-80c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16l48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0 0-48c0-8.8-7.2-16-16-16z\"],\n \"shower\": [512, 512, [128703], \"f2cc\", \"M64 131.9c0-19.8 16.1-35.9 35.9-35.9 9.5 0 18.6 3.8 25.4 10.5l16.2 16.2c-21 38.9-17.4 87.5 10.9 123L151 247c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0L345 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-1.3 1.3c-35.5-28.3-84.1-31.9-123-10.9L170.5 61.3C151.8 42.5 126.4 32 99.9 32 44.7 32 0 76.7 0 131.9L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-316.1zM256 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm0-128a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm64 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32-32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"square-caret-up\": [448, 512, [\"caret-square-up\"], \"f151\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 160c6.7 0 13 2.8 17.6 7.7l104 112c6.5 7 8.2 17.2 4.4 25.9S337.5 320 328 320l-208 0c-9.5 0-18.2-5.7-22-14.4s-2.1-18.9 4.4-25.9l104-112c4.5-4.9 10.9-7.7 17.6-7.7z\"],\n \"map-location\": [640, 512, [\"map-marked\"], \"f59f\", \"M576 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L413.5 77.5 234.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C70.8 88.8 64 99.9 64 112l0 352c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 173.3 57.8c-4.3-6.4-8.5-13.1-12.6-19.9-11-18.3-21.9-39.3-30-61.8l-101.2-33.7 0-284.5 128 42.7 0 99.3c31-35.8 77-58.4 128-58.4 22.6 0 44.2 4.4 64 12.5L576 48zM392 341.9c0 68.9 64.1 150.4 98.6 189.3 11.6 13 31.3 13 42.9 0 34.5-38.9 98.6-120.4 98.6-189.3 0-65.1-53.7-117.9-120-117.9S392 276.8 392 341.9z\"],\n \"pen-fancy\": [512, 512, [128395, 10002], \"f5ac\", \"M373.5 27.1c15-17.2 36.7-27.1 59.6-27.1 43.6 0 79 35.4 79 79 0 22.8-9.9 44.6-27.1 59.6L283.7 313.8 273 303 209 239 198.2 228.3 373.5 27.1zM161.1 259C162 260 188 286 239 337l13.9 13.9-17.1 74.2c-3.9 17.1-16.9 30.7-33.8 35.4l-169.8 47.5 92.3-92.3c1.2 .1 2.3 .2 3.5 .2 17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32c0 1.2 .1 2.4 .2 3.5L3.9 479.8 51.5 310c4.7-16.9 18.3-29.9 35.4-33.8L161.1 259z\"],\n \"euro-sign\": [448, 512, [8364, \"eur\", \"euro\"], \"f153\", \"M73.3 192C100.8 99.5 186.5 32 288 32l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-65.6 0-122 39.5-146.7 96L272 192c13.3 0 24 10.7 24 24s-10.7 24-24 24l-143.2 0c-.5 5.3-.8 10.6-.8 16s.3 10.7 .8 16L272 272c13.3 0 24 10.7 24 24s-10.7 24-24 24l-130.7 0c24.7 56.5 81.1 96 146.7 96l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-101.5 0-187.2-67.5-214.7-160L40 320c-13.3 0-24-10.7-24-24s10.7-24 24-24l24.6 0c-.7-10.5-.7-21.5 0-32L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l33.3 0z\"],\n \"house-circle-xmark\": [640, 512, [], \"e50b\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.2 47.2-175.9 114.8-5-1.8-10.5-2.8-16.1-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 90.9 0c6.1 17.3 14.6 33.4 25.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM555.3 340.7c-6.2-6.2-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7c6.2-6.2 6.2-16.4 0-22.6z\"],\n \"lira-sign\": [384, 512, [8356], \"f195\", \"M84.9 256l-28.4 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l11.6 0C53.2 124.7 116.8 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-53.8 0-90.1 52.9-73.5 102l162.4 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-145.1 0c2.3 10.6 3.6 21.3 3.9 32l141.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L150 336c-4.8 18.6-12.6 36.5-23.6 52.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c3.7-5.6 6.9-11.4 9.4-17.4l-26 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l34.8 0c-.5-10.8-2.6-21.6-6.4-32z\"],\n \"yen-sign\": [384, 512, [165, \"cny\", \"jpy\", \"rmb\", \"yen\"], \"f157\", \"M74.9 46.7c-9.6-14.9-29.4-19.2-44.2-9.6S11.5 66.4 21.1 81.3L143.7 272 88 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 32-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0 0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-32 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-55.7 0 122.6-190.7c9.6-14.9 5.3-34.7-9.6-44.2s-34.7-5.3-44.2 9.6L192 228.8 74.9 46.7z\"],\n \"box-open\": [640, 512, [], \"f49e\", \"M560.3 237.2c10.4 11.8 28.3 14.4 41.8 5.5 14.7-9.8 18.7-29.7 8.9-44.4l-48-72c-2.8-4.2-6.6-7.7-11.1-10.2L351.4 4.7c-19.3-10.7-42.8-10.7-62.2 0L88.8 116c-5.4 3-9.7 7.4-12.6 12.8L27.7 218.7c-12.6 23.4-3.8 52.5 19.6 65.1l33 17.7 0 53.3c0 23 12.4 44.3 32.4 55.7l176 99.7c19.6 11.1 43.5 11.1 63.1 0l176-99.7c20.1-11.4 32.4-32.6 32.4-55.7l0-117.5zm-240-9.8L170.2 144 320.3 60.6 470.4 144 320.3 227.4zm-41.5 50.2l-21.3 46.2-165.8-88.8 25.4-47.2 161.7 89.8z\"],\n \"truck-field\": [640, 512, [], \"e58d\", \"M32 96c0-35.3 28.7-64 64-64l224 0c23.7 0 44.4 12.9 55.4 32l40.4 0c32.4 0 61.6 19.6 74 49.5l43.8 106.3 1.7 4.2 24.7 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48l-.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8l-144.7 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-3.6 .2-7.1 .6-10.5-19-6.4-32.6-24.4-32.6-45.5l0-48c-17.7 0-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32l0-32zm352 32l0 96 82.1 0-35.4-86.1c-2.5-6-8.3-9.9-14.8-9.9L384 128zM192 392a40 40 0 1 0 -80 0 40 40 0 1 0 80 0zm280 40a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"location-pin-lock\": [512, 512, [], \"e51f\", \"M0 188.6C0 84.4 86 0 192 0 294.1 0 377.6 78.3 383.6 177 320.7 185.1 272 238.8 272 304l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 75.7c-9.9 11.6-18.9 21.7-26.4 29.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm240 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM288 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"person-praying\": [384, 512, [128720, \"pray\"], \"f683\", \"M320 64a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM200.7 264l22.9 31.5c6.5 8.9 16.3 14.7 27.2 16.1s21.9-1.7 30.4-8.7l88-72c17.1-14 19.6-39.2 5.6-56.3s-39.2-19.6-56.3-5.6l-55.2 45.2-26.2-36c-15.6-21.5-40.6-34.2-67.2-34.2-30.9 0-59.2 17.1-73.6 44.4L47.8 280.9c-20.2 38.5-9.4 85.9 25.6 111.8L126.6 432 40 432c-22.1 0-40 17.9-40 40s17.9 40 40 40l208 0c17.3 0 32.6-11.1 38-27.5s-.3-34.4-14.2-44.7l-116.1-85.8 45-90z\"],\n \"clipboard-list\": [384, 512, [], \"f46d\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm32 0c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zm0 128c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24zM96 416a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"sack-dollar\": [512, 512, [128176], \"f81d\", \"M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM260 224c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L216 384c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z\"],\n \"mountain-sun\": [576, 512, [], \"e52f\", \"M256.5 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5-7.2 12.1-20.3 19.5-34.3 19.5l-432 0c-14.1 0-27.1-7.4-34.3-19.5s-7.5-27.1-.8-39.5l216-400 2.9-4.6C231.7 6.2 243.6 0 256.5 0zM170.4 249.9l26.8 26.8c6.2 6.2 16.4 6.2 22.6 0l43.3-43.3c6-6 14.1-9.4 22.6-9.4l42.8 0-72.1-133.5-86.1 159.4zM496.5 160a80 80 0 1 1 0-160 80 80 0 1 1 0 160z\"],\n \"arrow-up-wide-short\": [576, 512, [\"sort-amount-up\"], \"f161\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM320 480l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32zm0-128l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"],\n \"users-line\": [576, 512, [], \"e592\", \"M224 128a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 336c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8zM392 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0c-18.2 26-28.8 57.5-28.8 91.6l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 368 32 358.4 32 346.7L32 336c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 144a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM0 440c0-13.3 10.7-24 24-24l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 464c-13.3 0-24-10.7-24-24z\"],\n \"star-of-david\": [512, 512, [10017], \"f69a\", \"M415.9 311.9l-27.8 48.1 55.7 0-27.8-48.1zM383.6 256l-60.2-104-134.8 0-60.2 104 60.2 104 134.8 0 60.2-104zm64.7 0l58.4 100.9c3.5 6 5.3 12.8 5.3 19.7 0 21.7-17.6 39.4-39.4 39.4l-117 0-61.3 105.8C286.5 535.6 271.8 544 256 544s-30.5-8.4-38.4-22.2l-61.3-105.8-117 0c-21.7 0-39.4-17.6-39.4-39.4 0-6.9 1.8-13.7 5.3-19.7L63.7 256 5.3 155.1C1.8 149.1 0 142.3 0 135.4 0 113.6 17.6 96 39.4 96l117 0 61.3-105.8C225.5-23.6 240.2-32 256-32s30.5 8.4 38.4 22.2l61.3 105.8 117 0c21.7 0 39.4 17.6 39.4 39.4 0 6.9-1.8 13.7-5.3 19.7L448.3 256zM388.1 152l27.8 48.1 27.8-48.1-55.7 0zM291 96l-35-60.4-35 60.4 70 0zM123.9 152l-55.7 0 27.8 48.1 27.8-48.1zM96.1 311.9l-27.8 48.1 55.7 0-27.8-48.1zM221 416l35 60.4 35-60.4-70 0z\"],\n \"notes-medical\": [512, 512, [], \"f481\", \"M96 352c0 35.3 28.7 64 64 64l181.5 0c17 0 33.3-6.7 45.3-18.7L493.3 290.7c12-12 18.7-28.3 18.7-45.3L512 64c0-35.3-28.7-64-64-64L160 0C124.7 0 96 28.7 96 64l0 288zM288 112l32 0c8.8 0 16 7.2 16 16l0 48 48 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-48 0 0 48c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-48-48 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l48 0 0-48c0-8.8 7.2-16 16-16zM48 120c0-13.3-10.7-24-24-24S0 106.7 0 120L0 448c0 35.3 28.7 64 64 64l264 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 464c-8.8 0-16-7.2-16-16l0-328z\"],\n \"austral-sign\": [448, 512, [], \"e0a9\", \"M266.5 240l-85 0 42.5-106.4 42.5 106.4zm68.9 0L262.9 58.3C256.5 42.4 241.1 32 224 32s-32.5 10.4-38.9 26.3L112.6 240 32 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l61.4 0-19.2 48-42.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l23.1 0-20.8 52.1c-6.6 16.4 1.4 35 17.9 41.6s35-1.4 41.6-17.9l30.3-75.9 200 0 30.3 75.9c6.6 16.4 25.2 24.4 41.6 17.9s24.4-25.2 17.9-41.6L392.9 384 416 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-42.3 0-19.2-48 61.4 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80.6 0zm-49.7 48l19.2 48-161.6 0 19.2-48 123.3 0z\"],\n \"clipboard-user\": [384, 512, [], \"f7f3\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 344a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM98.3 413c-12.9 15.6 2.2 35 22.4 35l142.5 0c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29z\"],\n \"file-image\": [384, 512, [128443], \"f1c5\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM128 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM92.6 448l198.8 0c15.8 0 28.6-12.8 28.6-28.6 0-7.3-2.8-14.4-7.9-19.7L215.3 297.9c-6-6.3-14.4-9.9-23.2-9.9l-.3 0c-8.8 0-17.1 3.6-23.2 9.9L71.9 399.7C66.8 405 64 412.1 64 419.4 64 435.2 76.8 448 92.6 448z\"],\n \"square-caret-right\": [448, 512, [\"caret-square-right\"], \"f152\", \"M448 96c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320zM320 256c0 6.7-2.8 13-7.7 17.6l-112 104c-7 6.5-17.2 8.2-25.9 4.4S160 369.5 160 360l0-208c0-9.5 5.7-18.2 14.4-22s18.9-2.1 25.9 4.4l112 104c4.9 4.5 7.7 10.9 7.7 17.6z\"],\n \"vial\": [512, 512, [129514], \"f492\", \"M342.6 9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L306.7 64 28.1 342.6C10.1 360.6 0 385 0 410.5L0 416c0 53 43 96 96 96l5.5 0c25.5 0 49.9-10.1 67.9-28.1l278.6-278.6 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zM205.3 256l146.7-146.7 50.7 50.7-96 96-101.5 0z\"],\n \"helicopter\": [576, 512, [128641], \"f533\", \"M176 32c-13.3 0-24 10.7-24 24s10.7 24 24 24l152 0 0 48-220.8 0-32.8-39.4C69.9 83.2 63.1 80 56 80L24 80C15.7 80 8 84.3 3.6 91.4s-4.8 15.9-1.1 23.4l48 96C54.6 218.9 62.9 224 72 224l107.8 0 104 143.1c15.1 20.7 39.1 32.9 64.7 32.9l75.5 0c75.1 0 136-60.9 136-136S499.1 128 424 128l-48 0 0-48 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L176 32zM376 192l48 0c39.8 0 72 32.2 72 72s-32.2 72-72 72l-48 0 0-144zM552 416c-13.3 0-24 10.7-24 24 0 4.4-3.6 8-8 8l-272 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24z\"],\n \"mitten\": [448, 512, [], \"f7b5\", \"M352 384L64 384 5.4 178.9C1.8 166.4 0 153.4 0 140.3 0 62.8 62.8 0 140.3 0l3.4 0c66 0 123.5 44.9 139.5 108.9l31.4 125.8 17.6-20.1C344.8 200.2 362.9 192 382 192l2.8 0c34.9 0 63.3 28.3 63.3 63.3 0 15.9-6 31.2-16.8 42.9L352 384zM32 464c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 16c0 17.7-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32l0-16z\"],\n \"gas-pump\": [512, 512, [9981], \"f52f\", \"M32 64C32 28.7 60.7 0 96 0L256 0c35.3 0 64 28.7 64 64l0 192 8 0c48.6 0 88 39.4 88 88l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-154c-27.6-7.1-48-32.2-48-62l0-59.5-25.8-28.3c-8.9-9.8-8.2-25 1.6-33.9s25-8.2 33.9 1.6l71.7 78.8c9.4 10.3 14.6 23.7 14.6 37.7L512 376c0 39.8-32.2 72-72 72s-72-32.2-72-72l0-32c0-22.1-17.9-40-40-40l-8 0 0 161.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L40 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L32 64zM96 80l0 96c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16L112 64c-8.8 0-16 7.2-16 16z\"],\n \"envelope-circle-check\": [640, 512, [], \"e4e8\", \"M64 112c0-26.5 21.5-48 48-48l416 0c26.5 0 48 21.5 48 48l0 81.4c-24.4-11.2-51.4-17.4-80-17.4-87.7 0-161.7 58.8-184.7 139.2-7.1-1.3-14.1-4.2-20.1-8.8l-208-156C71.1 141.3 64 127.1 64 112zM304 368c0 28.6 6.2 55.6 17.4 80L128 448c-35.3 0-64-28.7-64-64l0-188 198.4 148.8c12.6 9.4 26.9 15.4 41.7 17.9 0 1.8-.1 3.5-.1 5.3zm48 0a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"],\n \"person-skating\": [512, 512, [\"skating\"], \"f7c5\", \"M368 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM128 128c0-17.7 14.3-32 32-32l150.1 0c49.9 0 74.9 60.3 39.6 95.6l-63.9 63.9 69.8 31c17.3 7.7 28.5 24.9 28.5 43.9l0 85.6c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-75.2-82.4-36.6c-41-18.2-51-72-19.3-103.7l40.4-40.4-98.7 0c-17.7 0-32-14.3-32-32zM89.4 361.4l75.9-75.9c7.7 19.7 21.6 37.3 41 49.6l-71.6 71.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zm346.5 87.1c8.6 2.1 13.8 10.8 11.6 19.4l-.4 1.7c-6.2 24.9-28.6 42.4-54.3 42.4L304 512c-8.8 0-16-7.2-16-16s7.2-16 16-16l88.8 0c11 0 20.6-7.5 23.3-18.2l.4-1.7c2.1-8.6 10.8-13.8 19.4-11.6zM143.2 486.3l-6.2 3.1c-21.6 10.8-47.6 6.6-64.6-10.5L12.7 419.3c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l59.6 59.6c7.3 7.3 18.5 9.1 27.7 4.5l6.2-3.1c7.9-4 17.5-.7 21.5 7.2s.7 17.5-7.2 21.5z\"],\n \"sun\": [576, 512, [9728], \"f185\", \"M178.2-10.1c7.4-3.1 15.8-2.2 22.5 2.2l87.8 58.2 87.8-58.2c6.7-4.4 15.1-5.2 22.5-2.2S411.4-.5 413 7.3l20.9 103.2 103.2 20.9c7.8 1.6 14.4 7 17.4 14.3s2.2 15.8-2.2 22.5l-58.2 87.8 58.2 87.8c4.4 6.7 5.2 15.1 2.2 22.5s-9.6 12.8-17.4 14.3L433.8 401.4 413 504.7c-1.6 7.8-7 14.4-14.3 17.4s-15.8 2.2-22.5-2.2l-87.8-58.2-87.8 58.2c-6.7 4.4-15.1 5.2-22.5 2.2s-12.8-9.6-14.3-17.4L143 401.4 39.7 380.5c-7.8-1.6-14.4-7-17.4-14.3s-2.2-15.8 2.2-22.5L82.7 256 24.5 168.2c-4.4-6.7-5.2-15.1-2.2-22.5s9.6-12.8 17.4-14.3L143 110.6 163.9 7.3c1.6-7.8 7-14.4 14.3-17.4zM207.6 256a80.4 80.4 0 1 1 160.8 0 80.4 80.4 0 1 1 -160.8 0zm208.8 0a128.4 128.4 0 1 0 -256.8 0 128.4 128.4 0 1 0 256.8 0z\"],\n \"baseball\": [512, 512, [129358, 9918, \"baseball-ball\"], \"f433\", \"M232.4 1.1c-122.2 11.4-219.5 108.7-230.9 230.9 16.2-.1 32-1.8 47.2-5 13-2.7 25.7 5.5 28.4 18.5s-5.5 25.7-18.5 28.4c-18.4 3.9-37.6 6-57.1 6.1 11.4 122.2 108.7 219.5 230.9 230.9 .1-19.5 2.2-38.7 6.1-57.1 2.7-13 15.5-21.3 28.4-18.5s21.3 15.5 18.5 28.4c-3.2 15.2-4.9 31-5 47.2 122.2-11.4 219.5-108.7 230.9-230.9-16.2 .1-32 1.8-47.2 5-13 2.7-25.7-5.5-28.4-18.5s5.5-25.7 18.5-28.4c18.4-3.9 37.6-6 57.1-6.1-11.4-122.2-108.7-219.5-230.9-230.9-.1 19.5-2.2 38.7-6.1 57.1-2.7 13-15.5 21.3-28.4 18.5s-21.3-15.5-18.5-28.4c3.2-15.2 4.9-31 5-47.2zm2.8 151.4c-21.4 32.9-49.5 60.9-82.3 82.3-11.1 7.2-26 4.1-33.2-7s-4.1-26 7-33.2c27.2-17.7 50.5-41 68.3-68.3 7.2-11.1 22.1-14.3 33.2-7s14.3 22.1 7 33.2zM393.1 284.2c7.2 11.1 4.1 26-7 33.2-27.2 17.7-50.5 41-68.3 68.3-7.2 11.1-22.1 14.3-33.2 7s-14.3-22.1-7-33.2c21.4-32.9 49.5-60.9 82.3-82.3 11.1-7.2 26-4.1 33.2 7z\"],\n \"image\": [448, 512, [], \"f03e\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 80a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM272 224c8.4 0 16.1 4.4 20.5 11.5l88 144c4.5 7.4 4.7 16.7 .5 24.3S368.7 416 360 416L88 416c-8.9 0-17.2-5-21.3-12.9s-3.5-17.5 1.6-24.8l56-80c4.5-6.4 11.8-10.2 19.7-10.2s15.2 3.8 19.7 10.2l26.4 37.8 61.4-100.5c4.4-7.1 12.1-11.5 20.5-11.5z\"],\n \"notdef\": [384, 512, [], \"e1fe\", \"M64 390.3L153.5 256 64 121.7 64 390.3zM102.5 448L281.5 448 192 313.7 102.5 448zm128-192L320 390.3 320 121.7 230.5 256zM281.5 64L102.5 64 192 198.3 281.5 64zM0 48C0 21.5 21.5 0 48 0L336 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 48z\"],\n \"basketball\": [512, 512, [127936, \"basketball-ball\"], \"f434\", \"M92.7 58.8l78.4 78.4c18.2-25 28.9-55.9 28.9-89.2 0-14.1-1.9-27.7-5.5-40.6-38 9.4-72.6 27.2-101.8 51.4zM58.8 92.7c-24.2 29.2-42 63.8-51.4 101.8 12.9 3.6 26.5 5.5 40.6 5.5 33.3 0 64.1-10.7 89.2-28.9L58.8 92.7zM256 0c-4.6 0-9.2 .1-13.7 .4 3.7 15.3 5.7 31.2 5.7 47.6 0 46.6-15.9 89.4-42.6 123.4L256 222.1 419.3 58.8C374.9 22.1 318.1 0 256 0zM48 248c-16.4 0-32.4-2-47.6-5.7-.2 4.5-.4 9.1-.4 13.7 0 62.1 22.1 118.9 58.8 163.3L222.1 256 171.4 205.4C137.4 232.1 94.6 248 48 248zm463.6 21.7c.2-4.5 .4-9.1 .4-13.7 0-62.1-22.1-118.9-58.8-163.3L289.9 256 340.6 306.6c34-26.7 76.9-42.6 123.4-42.6 16.4 0 32.4 2 47.6 5.7zm-7.1 47.8c-12.9-3.6-26.5-5.5-40.6-5.5-33.3 0-64.1 10.7-89.2 28.9l78.4 78.4c24.2-29.2 42-63.8 51.4-101.8zM340.9 374.8c-18.2 25-28.9 55.9-28.9 89.2 0 14.1 1.9 27.7 5.5 40.6 38-9.4 72.6-27.2 101.8-51.4l-78.4-78.4zm-34.3-34.3L256 289.9 92.7 453.2c44.3 36.7 101.2 58.8 163.3 58.8 4.6 0 9.2-.1 13.7-.4-3.7-15.3-5.7-31.2-5.7-47.6 0-46.6 15.9-89.4 42.6-123.4z\"],\n \"pencil\": [512, 512, [9999, 61504, \"pencil-alt\"], \"f303\", \"M36.4 353.2c4.1-14.6 11.8-27.9 22.6-38.7l181.2-181.2 33.9-33.9c16.6 16.6 51.3 51.3 104 104l33.9 33.9-33.9 33.9-181.2 181.2c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 510.6c-8.3 2.3-17.3 0-23.4-6.2S-1.4 489.3 .9 481L36.4 353.2zm55.6-3.7c-4.4 4.7-7.6 10.4-9.3 16.6l-24.1 86.9 86.9-24.1c6.4-1.8 12.2-5.1 17-9.7L91.9 349.5zm354-146.1c-16.6-16.6-51.3-51.3-104-104L308 65.5C334.5 39 349.4 24.1 352.9 20.6 366.4 7 384.8-.6 404-.6S441.6 7 455.1 20.6l35.7 35.7C504.4 69.9 512 88.3 512 107.4s-7.6 37.6-21.2 51.1c-3.5 3.5-18.4 18.4-44.9 44.9z\"],\n \"person-walking-arrow-loop-left\": [640, 512, [], \"e551\", \"M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM359 335c-9.4 9.4-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-31-31 102.1 0c1.2 0 2.4-.1 3.5-.3 56.1-3.9 100.5-50.6 100.5-107.7 0-59.6-48.4-108-108-108l-92 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l92 0c33.1 0 60 26.9 60 60s-26.9 60-60 60l-98.1 0 31-31c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-72 72z\"],\n \"dice-six\": [448, 512, [9861], \"f526\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm32 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"angles-down\": [384, 512, [\"angle-double-down\"], \"f103\", \"M214.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 402.7 329.4 265.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-160 160zm160-352l-160 160c-12.5 12.5-32.8 12.5-45.3 0l-160-160c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L192 210.7 329.4 73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"],\n \"syringe\": [576, 512, [128137], \"f48e\", \"M497.5-17c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l15 15-46.1 46.1-63-63c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l7 7-78.1 78.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-46.1 46.1 41 41c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-41-41-37.7 37.7c-10.5 10.5-16.4 24.7-16.4 39.6l0 88.8-57 57c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l57-57 88.8 0c14.9 0 29.1-5.9 39.6-16.4l229.7-229.7 7 7c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-63-63 46.1-46.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-64-64z\"],\n \"wheat-awn\": [576, 512, [\"wheat-alt\"], \"e2cd\", \"M79.7 234.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0L134.1 444.3 49.4 529c-9.4 9.4-24.5 9.4-33.9 0-9.4-9.4-9.4-24.6 0-33.9l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zm104-104c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.2 83.9 31.7-7.7 66.2 1 90.6 25.3l46.1 46.1c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM495.2 15c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.2L529.2 49 414.7 163.4c7.7 1 15.2 3 22.5 5.9L495.5 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c6.2 6.2 6.2 16.4 0 22.6l-7.4 7.4c-37.5 37.5-98.3 37.5-135.8 0l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-58.3 58.3c2.8 7.1 4.7 14.5 5.7 22.1L495.2 15z\"],\n \"plane-up\": [512, 512, [], \"e22d\", \"M200 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 173.6 159.2c6.6 6.1 10.4 14.6 10.4 23.6l0 43.7c0 10.9-10.7 18.6-21.1 15.2l-162.9-54.3 0 99.7 66 52.8c3.8 3 6 7.6 6 12.5l0 19.8c0 10.4-9.8 18-19.9 15.5L256 512 147.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C26.7 396.4 16 388.7 16 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L200 151.3 200 24z\"],\n \"align-center\": [448, 512, [], \"f037\", \"M352 64c0-17.7-14.3-32-32-32L128 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32zm96 128c0-17.7-14.3-32-32-32L32 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32zM0 448c0 17.7 14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416c-17.7 0-32 14.3-32 32zM352 320c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32z\"],\n \"hockey-puck\": [512, 512, [], \"f453\", \"M256 256C114.6 256 0 213 0 160s114.6-96 256-96 256 43 256 96-114.6 96-256 96zM0 352L0 242.7c16.9 12.3 37 22.2 58.1 30.1 53 19.9 123 31.2 197.9 31.2s144.9-11.3 197.9-31.2c21.2-7.9 41.2-17.8 58.1-30.1L512 352c0 53-114.6 96-256 96S0 405 0 352z\"],\n \"circle-arrow-left\": [512, 512, [\"arrow-circle-left\"], \"f0a8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM135 239l80-80c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-39 39 150.1 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-150.1 0 39 39c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-80-80c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"plug-circle-bolt\": [640, 512, [], \"e55b\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S433.2 416 440 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S558.8 384 552 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z\"],\n \"restroom\": [640, 512, [], \"f7bd\", \"M80 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm40 304l0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-154.8c-8.1 9.2-21.1 13.2-33.5 9.4-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C44.4 156.9 83.6 128 128 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-12.4 3.9-25.4-.2-33.5-9.4L200 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-16 0zM320 0c13.3 0 24 10.7 24 24l0 464c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-464c0-13.3 10.7-24 24-24zM464 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM440 480l0-96-17.8 0c-10.9 0-18.6-10.7-15.2-21.1l9-26.9c-3.2 0-6.4-.5-9.5-1.5-16.9-5.3-26.3-23.2-21-40.1l29.7-95.2C428.4 156.9 467.6 128 512 128s83.6 28.9 96.8 71.2l29.7 95.2c5.3 16.9-4.1 34.8-21 40.1-3.2 1-6.4 1.5-9.5 1.5l9 26.9c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"],\n \"anchor-lock\": [640, 512, [], \"e4ad\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 28.3 0 55.4-5.7 80-15.9l0-.2 0-72.2c-14.4 9.6-30.6 16.7-48 20.7l0-257.9c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm272 304.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416.5 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"],\n \"timeline\": [576, 512, [], \"e29c\", \"M160 169.3c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80S48 51.8 48 96c0 32.8 19.7 61 48 73.3l0 54.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0 0 54.7c-28.3 12.3-48 40.5-48 73.3 0 44.2 35.8 80 80 80s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-54.7 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-54.7c28.3-12.3 48-40.5 48-73.3 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 32.8 19.7 61 48 73.3l0 54.7-256 0 0-54.7z\"],\n \"lightbulb\": [384, 512, [128161], \"f0eb\", \"M292.9 384c7.3-22.3 21.9-42.5 38.4-59.9 32.7-34.4 52.7-80.9 52.7-132.1 0-106-86-192-192-192S0 86 0 192c0 51.2 20 97.7 52.7 132.1 16.5 17.4 31.2 37.6 38.4 59.9l201.7 0zM288 432l-192 0 0 16c0 44.2 35.8 80 80 80l32 0c44.2 0 80-35.8 80-80l0-16zM184 112c-39.8 0-72 32.2-72 72 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-66.3 53.7-120 120-120 13.3 0 24 10.7 24 24s-10.7 24-24 24z\"],\n \"circle-arrow-right\": [512, 512, [\"arrow-circle-right\"], \"f0a9\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm41-159c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l39-39-150.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l150.1 0-39-39c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l80 80c9.4 9.4 9.4 24.6 0 33.9l-80 80z\"],\n \"mars-and-venus\": [512, 512, [9893], \"f224\", \"M368 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-34.7-63 63c19.5 28.4 31 62.7 31 99.8 0 86.3-62.1 158.1-144 173.1l0 34.9 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-34.9c-81.9-15-144-86.8-144-173.1 0-97.2 78.8-176 176-176 37 0 71.4 11.4 99.8 31l63-63-34.7 0zM352 208a112 112 0 1 0 -224 0 112 112 0 1 0 224 0z\"],\n \"network-wired\": [576, 512, [], \"f6ff\", \"M248 88l80 0 0 48-80 0 0-48zm-8-56c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l16 0 0 32-224 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 192 0 0 32-16 0c-26.5 0-48 21.5-48 48l0 64c0 26.5 21.5 48 48 48l96 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-16 0 0-32 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-32 16 0c26.5 0 48-21.5 48-48l0-64c0-26.5-21.5-48-48-48l-96 0zM448 376l8 0 0 48-80 0 0-48 72 0zm-256 0l8 0 0 48-80 0 0-48 72 0z\"],\n \"building-shield\": [576, 512, [], \"e4d8\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0c-12.5-14.7-23.2-30.8-31.8-48l-89.5 0 0-80c0-17.7 14.3-32 32-32l32 0 0-26.7c0-18.1 6.1-35.2 16.6-48.8-.4-1.4-.6-2.9-.6-4.5l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 1 86.7-28.9c3.1-1 6.2-1.8 9.3-2.5L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM445.3 488.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"],\n \"code\": [576, 512, [], \"f121\", \"M360.8 1.2c-17-4.9-34.7 5-39.6 22l-128 448c-4.9 17 5 34.7 22 39.6s34.7-5 39.6-22l128-448c4.9-17-5-34.7-22-39.6zm64.6 136.1c-12.5 12.5-12.5 32.8 0 45.3l73.4 73.4-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0zm-274.7 0c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 150.6 182.6c12.5-12.5 12.5-32.8 0-45.3z\"],\n \"feather-pointed\": [512, 512, [\"feather-alt\"], \"f56b\", \"M475.3 .1c9.9-.8 19.6 3 26.6 10s10.8 16.7 10 26.6c-4 49.3-17.4 126.2-46.3 199.7-1.8 4.5-5.5 7.9-10.2 9.3L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l38.6 0c12 0 19.7 12.8 13.5 23.1-4 6.7-8.3 13.2-12.7 19.6-2 2.9-5 5-8.4 6.1L310.5 366c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l16 0c14.6 0 21 17.4 8.8 25.4-68 45-137.7 43.3-182.4 31.3-12.7-3.4-24-9.9-34.4-17.9L48 496c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32l80-80 .5 .5c.7-1.3 1.6-2.5 2.7-3.6L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L89.7 326.2c-8.9 8.9-24 4.4-25-8.2-4.3-53.2 9.3-123.1 72.6-186.4 91.1-91.1 254.2-124.7 337.9-131.5z\"],\n \"file-circle-question\": [576, 512, [], \"e4ef\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-100c-11.6 0-21.3 8.2-23.5 19.2-1.8 8.7-10.2 14.3-18.9 12.5s-14.3-10.2-12.5-18.9c5.2-25.6 27.8-44.8 54.9-44.8 30.9 0 56 25.1 56 56 0 19.8-11.7 37.8-29.8 45.9l-10.4 4.6c-1.2 7.7-7.8 13.5-15.8 13.5-8.8 0-16-7.2-16-16 0-11.2 6.6-21.3 16.8-25.9l12.4-5.5c6.6-2.9 10.8-9.4 10.8-16.6 0-13.3-10.7-24-24-24z\"],\n \"signature\": [640, 512, [], \"f5b7\", \"M192 128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 7.8c0 27.7-2.4 55.3-7.1 82.5l-84.4 25.3c-40.6 12.2-68.4 49.6-68.4 92l0 32.4-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72.5 0c4.2 36 34.8 64 72 64 26 0 50-13.9 62.9-36.5l13.9-24.3c26.8-47 46.5-97.7 58.4-150.5l94.4-28.3-12.5 37.5c-3.3 9.8-1.6 20.5 4.4 28.8S405.7 320 416 320l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-83.6 0 18-53.9c3.8-11.3 .9-23.8-7.4-32.4s-20.7-11.8-32.2-8.4L316.4 198.1c2.4-20.7 3.6-41.4 3.6-62.3l0-7.8c0-53-43-96-96-96s-96 43-96 96l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32zm-9.2 177l49-14.7c-10.4 33.8-24.5 66.4-42.1 97.2l-13.9 24.3c-1.5 2.6-4.3 4.3-7.4 4.3-4.7 0-8.5-3.8-8.5-8.5l0-71.9c0-14.1 9.3-26.6 22.8-30.7zM616 416c13.3 0 24-10.7 24-24s-10.7-24-24-24l-292.9 0c-6.5 16.3-13.7 32.3-21.6 48L616 416z\"],\n \"earth-americas\": [512, 512, [127758, \"earth\", \"earth-america\", \"globe-americas\"], \"f57d\", \"M55.7 199.7l30.9 30.9c6 6 14.1 9.4 22.6 9.4l21.5 0c8.5 0 16.6 3.4 22.6 9.4l29.3 29.3c6 6 9.4 14.1 9.4 22.6l0 37.5c0 8.5 3.4 16.6 9.4 22.6l13.3 13.3c6 6 9.4 14.1 9.4 22.6l0 18.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-2.7c0-8.5 3.4-16.6 9.4-22.6l45.3-45.3c6-6 9.4-14.1 9.4-22.6l0-34.7c0-17.7-14.3-32-32-32l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l34.7 0c12.5 0 22.6-10.1 22.6-22.6 0-6-2.4-11.8-6.6-16l-19.7-19.7C242 130 240 125.1 240 120s2-10 5.7-13.7l17.3-17.3c5.8-5.8 9.1-13.7 9.1-21.9 0-7.2-2.4-13.7-6.4-18.9-3.2-.1-6.4-.2-9.6-.2-95.4 0-175.7 64.2-200.3 151.7zM464 256c0-34.6-8.4-67.2-23.4-95.8-6.4 .9-12.7 3.9-17.9 9.1l-13.4 13.4c-6 6-9.4 14.1-9.4 22.6l0 34.7c0 17.7 14.3 32 32 32l24.1 0c2.5 0 5-.3 7.3-.8 .4-5 .5-10.1 .5-15.2zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"carrot\": [640, 512, [129365], \"f787\", \"M453.1-36.7L440.9-24.6c-31.2 31.2-31.2 81.9 0 113.1 15.6 15.6 31.2 31.2 46.9 46.9 31.2 31.2 81.9 31.2 113.1 0l12.1-12.1c6.2-6.2 6.2-16.4 0-22.6L600.9 88.6c-31.2-31.2-81.9-31.2-113.1 0 31.2-31.2 31.2-81.9 0-113.1L475.7-36.7c-6.2-6.2-16.4-6.2-22.6 0zM331.6 96c-45.2 0-87.1 20.4-115 54.3L273.3 207c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L191.6 193.2 67.2 466.8c-5.5 12.1-2.9 26.4 6.5 35.9s23.7 12 35.9 6.5l141.6-64.4-43.8-43.8c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.5 56.5 95.3-43.3c53.1-24.1 87.2-77.1 87.2-135.5 0-82.2-66.6-148.8-148.8-148.8z\"],\n \"temperature-full\": [320, 512, [\"temperature-4\", \"thermometer-4\", \"thermometer-full\"], \"f2c7\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3L136 96c0-13.3 10.7-24 24-24s24 10.7 24 24l0 212.7c23.5 9.5 40 32.5 40 59.3z\"],\n \"table-cells-row-lock\": [640, 512, [], \"e67a\", \"M256 288l0-64 153.3 0c17.1-42.2 56-73.2 102.7-79l0-49c0-35.3-28.7-64-64-64L128 32C92.7 32 64 60.7 64 96l0 320c0 35.3 28.7 64 64 64l241.3 0c-.9-5.2-1.3-10.6-1.3-16.1l0-47.9-112 0 0-64 113.3 0c3.7-22 14.8-41.4 30.7-55.6l0-8.4-144 0zm0-192l192 0 0 64-192 0 0-64zM560 272.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM416 368l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"],\n \"bolt-lightning\": [384, 512, [], \"e0b7\", \"M0 256L28.5 28c2-16 15.6-28 31.8-28L228.9 0c15 0 27.1 12.1 27.1 27.1 0 3.2-.6 6.5-1.7 9.5L208 160 347.3 160c20.2 0 36.7 16.4 36.7 36.7 0 7.4-2.2 14.6-6.4 20.7l-192.2 281c-5.9 8.6-15.6 13.7-25.9 13.7l-2.9 0c-15.7 0-28.5-12.8-28.5-28.5 0-2.3 .3-4.6 .9-6.9L176 288 32 288c-17.7 0-32-14.3-32-32z\"],\n \"cloud-showers-water\": [512, 512, [], \"e4e4\", \"M279.2 55.7C263.9 22.8 230.6 0 192 0 139 0 96 43 96 96 60.7 96 32 124.7 32 160s28.7 64 64 64l320 0c35.3 0 64-28.7 64-64s-28.7-64-64-64l-1.6 0c-7.4-36.5-39.7-64-78.4-64-22.2 0-42.3 9.1-56.8 23.7zM410.6 476.1c20.7 15.6 46 30.7 74.2 34.5 13.1 1.8 25.2-7.5 27-20.6s-7.5-25.2-20.6-27c-15.9-2.1-33.2-11.3-51.7-25.2-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-18.5 13.9-35.8 23.1-51.7 25.2-13.1 1.8-22.4 13.8-20.6 27s13.8 22.4 27 20.6c28.2-3.8 53.6-18.9 74.2-34.5 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zM100.1 303.6c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64C29 365 35.8 378.6 48.4 382.8s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm112 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64zm120 0c4.2-12.6-2.6-26.2-15.2-30.4s-26.2 2.6-30.4 15.2l-21.3 64c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.3-64z\"],\n \"arrow-up-long\": [320, 512, [\"long-arrow-up\"], \"f176\", \"M182.6-22.6c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L128 77.3 128 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-434.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128z\"],\n \"address-card\": [576, 512, [62140, \"contact-card\", \"vcard\"], \"f2bb\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm80 256l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16L80 384c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm240-48l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 96l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-112 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"angle-right\": [256, 512, [8250], \"f105\", \"M247.1 233.4c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L179.2 256 41.9 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160z\"],\n \"face-meh\": [512, 512, [128528, \"meh\"], \"f11a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM176 320l160 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-160 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"arrow-up-from-ground-water\": [640, 512, [], \"e4b5\", \"M303 7c9.4-9.4 24.6-9.4 33.9 0l88 88c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-47-47 0 278.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-278.1-47 47c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L303 7zM240 192l0 163.1c-10.6-2.2-21.3-3.2-32-3.1-32.5 .2-64.9 10.7-92.3 31.4-8.8 6.6-15.9 10.9-21.7 13.5l-.8 .4c-3.7 1.7-6.4 2.9-9.8 .3-6-4.5-12.6-8-19.3-10.4L64 240c0-26.5 21.5-48 48-48l128 0zm336 48l0 155.2c-1.1 .8-2.2 1.5-3.3 2.4-4.1 3.1-8.3 .8-12.6-1.5-.6-.3-1.2-.6-1.8-1-5.2-2.7-11.1-6.6-18-11.7-28.1-21.1-61.3-31.6-94.4-31.4-15.5 .1-31 2.5-46 7.3l0-167.3 128 0c26.5 0 48 21.5 48 48zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"],\n \"map\": [512, 512, [128506, 62072], \"f279\", \"M512 48c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4L349.5 77.5 170.1 17.6c-8.1-2.7-16.8-2.1-24.4 1.7l-128 64C6.8 88.8 0 99.9 0 112L0 464c0 11.1 5.7 21.4 15.2 27.2s21.2 6.4 31.1 1.4l116.1-58.1 179.4 59.8c8.1 2.7 16.8 2.1 24.4-1.7l128-64c10.8-5.4 17.7-16.5 17.7-28.6l0-352zM192 376.9l0-284.5 128 42.7 0 284.5-128-42.7z\"],\n \"user-plus\": [640, 512, [], \"f234\", \"M136 128a120 120 0 1 1 240 0 120 120 0 1 1 -240 0zM48 482.3C48 383.8 127.8 304 226.3 304l59.4 0c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3zM544 96c13.3 0 24 10.7 24 24l0 48 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0 0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-48c0-13.3 10.7-24 24-24z\"],\n \"venus\": [384, 512, [9792], \"f221\", \"M80 176a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM223.9 349.1C305.9 334.1 368 262.3 368 176 368 78.8 289.2 0 192 0S16 78.8 16 176c0 86.3 62.1 158.1 144.1 173.1-.1 1-.1 1.9-.1 2.9l0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64c0-1 0-1.9-.1-2.9z\"],\n \"diagram-successor\": [448, 512, [], \"e47a\", \"M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 480L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64zM160 160l0-64-96 0 0 64 96 0z\"],\n \"head-side-cough-slash\": [576, 512, [], \"e062\", \"M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l25-25 0-447.2c0-15 10.5-28.3 25.4-29.8 7.4-.7 14.9-1.1 22.6-1.1 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l2.2 2.6 227.5-227.5zM133.8 512L288 357.8 288 416c0 53-43 96-96 96l-58.2 0zM176 224a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm336 40a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88 72a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm-64 48a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm128 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm24 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm-88-24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"diagram-project\": [512, 512, [\"project-diagram\"], \"f542\", \"M0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 16 128 0 0-16c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-16-128 0 0 16c0 7.3-1.7 14.3-4.6 20.5l68.6 91.5 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-7.3 1.7-14.3 4.6-20.5L128 224 48 224c-26.5 0-48-21.5-48-48L0 80z\"],\n \"terminal\": [512, 512, [], \"f120\", \"M9.4 118.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3l-160 160c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L146.7 256 9.4 118.6zM224 384l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"house-fire\": [640, 512, [], \"e50c\", \"M448 192c14.1 .4 23.8 11.4 32.7 21.7 2 2.3 4 4.6 6 6.7l19 19.9 12.2-13.8c5.4-6.1 13.3-8.9 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.2 26.2 88.2 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.1 5.7-5.2 13.1-7.7 20.3-7.5zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l147.5 137c-19.2-4.3-40 .5-55.5 14.4-36.4 32.6-67.7 69.8-90.3 106.4-10.3 16.6-19.7 34.9-26.8 53.7L272 320c-26.5 0-48 21.5-48 48l0 96 64.6 0c7.3 17.2 16.8 33.4 28.2 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM489.3 343.7c-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.7 51.9-54.7 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-36.5-37-73-54.7-88.4z\"],\n \"mask\": [576, 512, [], \"f6fa\", \"M288 64C64 64 0 160 0 272S80 448 176 448l8.4 0c24.2 0 46.4-13.7 57.2-35.4l23.2-46.3c4.4-8.8 13.3-14.3 23.2-14.3s18.8 5.5 23.2 14.3l23.2 46.3c10.8 21.7 33 35.4 57.2 35.4l8.4 0c96 0 176-64 176-176S512 64 288 64zM96 256a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm320-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"hurricane\": [384, 512, [], \"f751\", \"M0 208C0 104.4 75.7 18.5 174.9 2.6 184 1.2 192 8.6 192 17.9l0 63.3c0 8.4 6.5 15.3 14.7 16.5 100.3 14.9 177.3 101.3 177.3 205.7 0 103.6-75.7 189.5-174.9 205.4-9.2 1.5-17.1-5.9-17.1-15.2l0-63.3C192 421.9 185.5 415 177.3 413.7 77 398.9 0 312.4 0 208zm288 48a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm-96-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"earth-africa\": [512, 512, [127757, \"globe-africa\"], \"f57c\", \"M447.6 175c-31.6-74.6-105.5-127-191.6-127-22.1 0-43.4 3.5-63.4 9.8-.4 2-.6 4.1-.6 6.2l0 73.4c0 12.5 10.1 22.6 22.6 22.6 6 0 11.8-2.4 16-6.6l16-16c6-6 14.1-9.4 22.6-9.4l5.5 0c28.5 0 42.8 34.5 22.6 54.6-6 6-14.1 9.4-22.6 9.4l-61.5 0c-8.5 0-16.6 3.4-22.6 9.4l-21.3 21.3c-6 6-9.4 14.1-9.4 22.6l0 42.7c0 17.7 14.3 32 32 32l32 0c17.7 0 32 14.3 32 32l0 32c0 17.7 14.3 32 32 32l2.7 0c8.5 0 16.6-3.4 22.6-9.4l29.3-29.3c6-6 9.4-14.1 9.4-22.6l0-18.7c0-8.8 7.2-16 16-16s16-7.2 16-16l0-34.7c0-8.5-3.4-16.6-9.4-22.6l-16-16c-4.2-4.2-6.6-10-6.6-16 0-12.5 10.1-22.6 22.6-22.6l45 0c12.4 0 22.7-7.1 28-17zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"thumbtack\": [384, 512, [128204, 128392, \"thumb-tack\"], \"f08d\", \"M32 32C32 14.3 46.3 0 64 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-29.5 0 10.3 134.1c37.1 21.2 65.8 56.4 78.2 99.7l3.8 13.4c2.8 9.7 .8 20-5.2 28.1S362 352 352 352L32 352c-10 0-19.5-4.7-25.5-12.7s-8-18.4-5.2-28.1L5 297.8c12.4-43.3 41-78.5 78.2-99.7L93.5 64 64 64C46.3 64 32 49.7 32 32zM160 400l64 0 0 112c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-112z\"],\n \"hand-point-down\": [384, 512, [], \"f0a7\", \"M32 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-208-64 0 0 208zM224 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-64 64c17.7 0 32-14.3 32-32l0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 17.7 14.3 32 32 32zm160-96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64zm-96-88l0 .6c9.4-5.4 20.3-8.6 32-8.6 13.2 0 25.4 4 35.6 10.8 8.7-24.9 32.5-42.8 60.4-42.8 11.7 0 22.6 3.1 32 8.6l0-8.6C384 71.6 312.4 0 224 0L162.3 0C119.8 0 79.1 16.9 49.1 46.9L37.5 58.5C13.5 82.5 0 115.1 0 149l0 27c0 35.3 28.7 64 64 64l88 0c22.1 0 40-17.9 40-40s-17.9-40-40-40l-56 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l56 0c39.8 0 72 32.2 72 72z\"],\n \"face-meh-blank\": [512, 512, [128566, \"meh-blank\"], \"f5a4\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm208-48a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm128 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"temperature-empty\": [320, 512, [\"temperature-0\", \"thermometer-0\", \"thermometer-empty\"], \"f2cb\", \"M64 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144S16 447.5 16 368c0-42.6 18.5-81 48-107.3L64 96zm96 336c35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64 28.7 64 64 64z\"],\n \"border-none\": [448, 512, [], \"f850\", \"M32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM288 416c-17.7 0-32 14.3-32 32s14.3 32 32 32 32-14.3 32-32-14.3-32-32-32zM160 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM288 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 480c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zm0-384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 32a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM416 352a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM32 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM416 160a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"],\n \"highlighter\": [576, 512, [], \"f591\", \"M315 315L473.4 99.9 444.1 70.6 229 229 315 315zm-187 5l0 0 0-71.7c0-15.3 7.2-29.6 19.5-38.6L420.6 8.4C428 2.9 437 0 446.2 0 457.6 0 468.5 4.5 476.6 12.6l54.8 54.8c8.1 8.1 12.6 19 12.6 30.5 0 9.2-2.9 18.2-8.4 25.6L334.4 396.5c-9 12.3-23.4 19.5-38.6 19.5l-71.7 0-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0l-50.7-50.7c-12.5-12.5-12.5-32.8 0-45.3L128 320zM7 466.3l51.7-51.7 70.6 70.6-19.7 19.7c-4.5 4.5-10.6 7-17 7L24 512c-13.3 0-24-10.7-24-24l0-4.7c0-6.4 2.5-12.5 7-17z\"],\n \"money-bill-wave\": [512, 512, [], \"f53a\", \"M0 419.6L0 109.5c0-23.2 24.1-38.6 46.3-32 87.7 26.2 149.7 5.5 212.1-15.3 64.5-21.5 129.4-43.1 223.3-13.1 18.5 5.9 30.3 23.8 30.3 43.3l0 310.1c0 23.2-24.1 38.6-46.2 32-87.7-26.2-149.8-5.5-212.1 15.3-64.5 21.5-129.4 43.1-223.3 13.1-18.5-5.9-30.3-23.8-30.3-43.3zM336 256c0-53-35.8-96-80-96s-80 43-80 96 35.8 96 80 96 80-43 80-96zM120 413.6c4.4 0 7.9-3.8 7.2-8.1-4.6-27.8-27-49.5-55.2-53-4.4-.5-8 3.1-8 7.5l0 39.9c0 3.6 2.4 6.8 6 7.7 17.9 4.2 34.3 6.1 50 6.1zm318.5-51.1c5 .8 9.5-3 9.5-8l0-42.6c0-4.4-3.6-8.1-8-7.5-25.2 3.1-45.9 20.9-53.2 44.6-1.4 4.7 2.3 9.1 7.2 9.2 14.2 .4 29 1.7 44.4 4.3zM448 152l0-39.9c0-3.6-2.5-6.8-6-7.7-17.9-4.2-34.3-6.1-50-6.1-4.4 0-7.9 3.8-7.2 8.1 4.6 27.8 27 49.5 55.2 53 4.4 .5 8-3.1 8-7.5zM125.2 162.9c1.4-4.7-2.3-9.1-7.2-9.2-14.2-.4-29-1.7-44.4-4.3-5-.8-9.5 3-9.5 8L64 200c0 4.4 3.6 8.1 8 7.5 25.2-3.1 45.9-20.9 53.2-44.6z\"],\n \"toilet-paper-slash\": [576, 512, [], \"e072\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-94.5-94.5c40.2-23 69.5-96.9 69.5-184.6 0-106-43-192-96-192s-96 86-96 192c0 24.1 2.2 47.2 6.3 68.4L304 238.2 304 224c0-58.9 11.8-114.5 33.2-157.2 5.9-11.7 13.1-23.7 21.9-34.8L128 32c-8.3 0-16.4 2.1-24.1 6.1l-63-63zM32 224l0 264c0 30.9 25.1 56 56 56l160 0c30.9 0 56-25.1 56-56l0-114.2-256-256C37.9 148.2 32 184.7 32 224zm416 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"],\n \"file-shield\": [576, 512, [], \"e4f0\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l201.2 0C261 469.4 240 414.5 240 356.4l0-31.1c0-34.4 22-65 54.7-75.9l112-37.3c3.1-1 6.2-1.8 9.3-2.5l0-39.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zm87.8 312.5l-13.3 6.3 0-188.1 96 32 0 19.6c0 55.8-32.2 106.5-82.7 130.3zM421.9 259.5l-112 37.3c-13.1 4.4-21.9 16.6-21.9 30.4l0 31.1c0 74.4 43 142.1 110.2 173.7l18.5 8.7c4.8 2.2 10 3.4 15.2 3.4s10.5-1.2 15.2-3.4l18.5-8.7C533 500.3 576 432.6 576 358.2l0-31.1c0-13.8-8.8-26-21.9-30.4l-112-37.3c-6.6-2.2-13.7-2.2-20.2 0z\"],\n \"text-height\": [576, 512, [], \"f034\", \"M40 32C17.9 32 0 49.9 0 72l0 56c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 64 0 0 320-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-320 64 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-56c0-22.1-17.9-40-40-40L40 32zM438.6 361.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-229.5 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64c-6-6-14.1-9.4-22.6-9.4s-16.6 3.4-22.6 9.4l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 229.5-9.4-9.4z\"],\n \"face-grin-tongue\": [512, 512, [128539, \"grin-tongue\"], \"f589\", \"M0 256c0 104.4 62.5 194.2 152.2 234.1-5.3-13-8.2-27.2-8.2-42.1l0-61.7c-16.9-16.5-30.1-36.7-38.3-59.3-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1c11.9-3.7 23.9 6.3 19.6 18.1-8.3 22.6-21.5 42.8-38.3 59.3l0 61.7c0 14.9-2.9 29.1-8.2 42.1 89.7-39.8 152.2-129.6 152.2-234.1 0-141.4-114.6-256-256-256S0 114.6 0 256zm176-80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm16 240l0-45.4c0-14.7-11.9-26.6-26.6-26.6l-2 0c-11.3 0-21.1 7.9-23.6 18.9-2.8 12.6-20.8 12.6-23.6 0-2.5-11.1-12.3-18.9-23.6-18.9l-2 0c-14.7 0-26.6 11.9-26.6 26.6l0 45.4c0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n \"file-signature\": [640, 512, [], \"f573\", \"M64.1 64c0-35.3 28.7-64 64-64L277.6 0c17 0 33.3 6.7 45.3 18.7L429.3 125.3c12 12 18.7 28.3 18.7 45.3l0 97.5-132 132-42.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4-11.3 0-21.9 5.1-28.9 13.9L133.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l31.5 0c-.9 3.1-1.7 6.3-2.3 9.5l-10.9 54.5-146.2 0c-35.3 0-64-28.7-64-64l0-384zm208-5.5l0 93.5c0 13.3 10.7 24 24 24l93.5 0-117.5-117.5zm60.2 408.4c2.5-12.4 8.6-23.8 17.5-32.7l118.9-118.9 80 80-118.9 118.9c-8.9 8.9-20.3 15-32.7 17.5l-59.6 11.9c-.9 .2-1.9 .3-2.9 .3-8 0-14.6-6.5-14.6-14.6 0-1 .1-1.9 .3-2.9l11.9-59.6zm267.8-123l-28.8 28.8-80-80 28.8-28.8c22.1-22.1 57.9-22.1 80 0s22.1 57.9 0 80z\"],\n \"building-wheat\": [640, 512, [], \"e4db\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l249.3 0c-6-14.8-9.3-31-9.3-48 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-17.7 7.2-33.7 18.8-45.3-11.9-19.4-18.8-42.3-18.8-66.7 0-25.2 14.5-46.9 35.6-57.4-2.4-7.1-3.6-14.7-3.6-22.6l0-32C368 96.7 388 70.1 415.9 60.1 413.9 26.6 386 0 352 0L96 0zM208 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM128 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm352 0l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80 0-8.8-7.2-16-16-16zm16 128c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zm0 112c0-8.8-7.2-16-16-16l-16 0c-44.2 0-80 35.8-80 80 0 8.8 7.2 16 16 16l16 0c44.2 0 80-35.8 80-80zM496 528c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zm-16-96c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0zm16-128c0-44.2-35.8-80-80-80l-16 0c-8.8 0-16 7.2-16 16 0 44.2 35.8 80 80 80l16 0c8.8 0 16-7.2 16-16zM512 64c-13.3 0-24 10.7-24 24l0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104c0-13.3-10.7-24-24-24zm96 64c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM440 104c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24z\"],\n \"plug-circle-minus\": [640, 512, [], \"e55e\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"],\n \"futbol\": [512, 512, [9917, \"futbol-ball\", \"soccer-ball\"], \"f1e3\", \"M417.3 360.1l-71.6-4.8c-5.2-.3-10.3 1.1-14.5 4.2s-7.2 7.4-8.4 12.5l-17.6 69.6C289.5 445.8 273 448 256 448s-33.5-2.2-49.2-6.4L189.2 372c-1.3-5-4.3-9.4-8.4-12.5s-9.3-4.5-14.5-4.2l-71.6 4.8c-17.6-27.2-28.5-59.2-30.4-93.6L125 228.3c4.4-2.8 7.6-7 9.2-11.9s1.4-10.2-.5-15l-26.7-66.6C128 109.2 155.3 89 186.7 76.9l55.2 46c4 3.3 9 5.1 14.1 5.1s10.2-1.8 14.1-5.1l55.2-46c31.3 12.1 58.7 32.3 79.6 57.9l-26.7 66.6c-1.9 4.8-2.1 10.1-.5 15s4.9 9.1 9.2 11.9l60.7 38.2c-1.9 34.4-12.8 66.4-30.4 93.6zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm14.1-325.7c-8.4-6.1-19.8-6.1-28.2 0L194 221c-8.4 6.1-11.9 16.9-8.7 26.8l18.3 56.3c3.2 9.9 12.4 16.6 22.8 16.6l59.2 0c10.4 0 19.6-6.7 22.8-16.6l18.3-56.3c3.2-9.9-.3-20.7-8.7-26.8l-47.9-34.8z\"],\n \"circle-plus\": [512, 512, [\"plus-circle\"], \"f055\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM232 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\n \"brazilian-real-sign\": [512, 512, [], \"e46c\", \"M400 16c17.7 0 32 14.3 32 32l0 16 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-48.9 0c-26 0-47.1 21.1-47.1 47.1 0 22.5 15.9 41.8 37.9 46.2l32.8 6.6c51.9 10.4 89.3 56 89.3 109 0 50.6-33.8 93.3-80 106.7l0 20.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-16-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64.9 0c26 0 47.1-21.1 47.1-47.1 0-22.5-15.9-41.8-37.9-46.2l-32.8-6.6c-51.9-10.4-89.3-56-89.3-109 0-50.6 33.8-93.2 80-106.7L368 48c0-17.7 14.3-32 32-32zM0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160z\"],\n \"star-and-crescent\": [512, 512, [9770], \"f699\", \"M0 256c0-141.4 114.6-256 256-256 33 0 64.6 6.3 93.6 17.7 7.4 2.9 11.5 10.7 9.8 18.4s-8.8 13-16.7 12.4c-4.8-.3-9.7-.5-14.6-.5-114.9 0-208 93.1-208 208s93.1 208 208 208c4.9 0 9.8-.2 14.6-.5 7.9-.5 15 4.7 16.7 12.4s-2.4 15.5-9.8 18.4C320.6 505.7 289 512 256 512 114.6 512 0 397.4 0 256zM375.4 137.4c3.5-7.1 13.7-7.1 17.2 0l31.5 63.8c1.4 2.8 4.1 4.8 7.2 5.3l70.4 10.2c7.9 1.1 11 10.8 5.3 16.4l-50.9 49.6c-2.3 2.2-3.3 5.4-2.8 8.5l12 70.1c1.3 7.8-6.9 13.8-13.9 10.1l-63-33.1c-2.8-1.5-6.1-1.5-8.9 0l-63 33.1c-7 3.7-15.3-2.3-13.9-10.1l12-70.1c.5-3.1-.5-6.3-2.8-8.5L261 233.1c-5.7-5.6-2.6-15.2 5.3-16.4l70.4-10.2c3.1-.5 5.8-2.4 7.2-5.3l31.5-63.8z\"],\n \"face-surprise\": [512, 512, [128558, \"surprise\"], \"f5c2\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-48 80a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"hospital-user\": [640, 512, [], \"f80d\", \"M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM248 88c-8.8 0-16 7.2-16 16l0 32-32 0c-8.8 0-16 7.2-16 16l0 16c0 8.8 7.2 16 16 16l32 0 0 32c0 8.8 7.2 16 16 16l16 0c8.8 0 16-7.2 16-16l0-32 32 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-32 0 0-32c0-8.8-7.2-16-16-16l-16 0zM416 304a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z\"],\n \"arrow-down-up-lock\": [576, 512, [], \"e4b0\", \"M262.6 422.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l25.4 25.4 0-114.7-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l256 0 0-114.7-25.4 25.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l80-80c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-25.4-25.4 0 94.8c-25.3 20.3-42.8 50.1-47 83.9l-145 0 0 114.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM192 32l0 144-64 0 0-144c0-17.7 14.3-32 32-32s32 14.3 32 32zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"folder\": [512, 512, [128193, 128447, 61716, \"folder-blank\"], \"f07b\", \"M64 448l384 0c35.3 0 64-28.7 64-64l0-240c0-35.3-28.7-64-64-64L298.7 80c-6.9 0-13.7-2.2-19.2-6.4L241.1 44.8C230 36.5 216.5 32 202.7 32L64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64z\"],\n \"holly-berry\": [512, 512, [], \"f7aa\", \"M256.2 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM277 383.8c1 .1 2.1 .2 3.2 .2 39.8 0 72 32.2 72 72l0 22.7c0 16.4 16 27.9 31.6 22.8l12.8-4.3c18-6 37.3-6.5 55.6-1.5l19.4 5.3c17.9 4.9 34.4-11.6 29.5-29.5L495.9 452c-5-18.3-4.4-37.6 1.5-55.6l4.3-12.8c5.2-15.5-6.4-31.6-22.8-31.6-34.6 0-62.7-28.1-62.7-62.7l0-32c0-16.4-16-27.9-31.6-22.8l-12.8 4.3c-18 6-37.3 6.5-55.6 1.5l-29.6-8.1c-2.9-.8-5.9-1-8.7-.7 4.2 9.7 5.8 20.8 3.7 32.3l-6.3 34.8c-1.5 8.4-1.4 17 .5 25.3l5.3 23.9c2.8 12.7 1.1 25.2-4 35.9zM127.8 234.5c-15.5-5.2-31.6 6.4-31.6 22.8l0 32c0 34.6-28.1 62.7-62.7 62.7-16.4 0-27.9 16-22.8 31.6L15 396.4c6 18 6.5 37.3 1.5 55.6l-5.3 19.4C6.4 489.4 22.8 505.8 40.7 501l19.4-5.3c18.3-5 37.6-4.5 55.6 1.5l12.8 4.3c15.5 5.2 31.6-6.4 31.6-22.8l0-32c0-34.6 28.1-62.7 62.7-62.7 16.4 0 27.9-16 22.8-31.6l-4.3-12.8c-6-18-6.5-37.3-1.5-55.6l5.3-19.4c4.9-17.9-11.6-34.4-29.5-29.5l-19.4 5.3c-18.3 5-37.6 4.4-55.6-1.5l-12.8-4.3zM384.2 144a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"venus-double\": [640, 512, [9890], \"f226\", \"M192 288a112 112 0 1 0 0-224 112 112 0 1 0 0 224zM368 176c0 86.3-62.1 158.1-144.1 173.1 .1 1 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-82-15-144.1-86.8-144.1-173.1 0-97.2 78.8-176 176-176S368 78.8 368 176zM357.5 327c14.4-15.8 26.6-33.7 36.1-53.1 16.1 9 34.7 14.1 54.5 14.1 61.9 0 112-50.1 112-112S509.9 64 448 64c-19.8 0-38.3 5.1-54.5 14.1-9.5-19.4-21.6-37.3-36.1-53.1 26.4-15.9 57.4-25 90.5-25 97.2 0 176 78.8 176 176 0 86.3-62.1 158.1-144.1 173.1 .1 .9 .1 1.9 .1 2.9l0 64 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64c0-1 0-1.9 .1-2.9-21.1-3.9-40.9-11.5-58.6-22.2z\"],\n \"clipboard-question\": [384, 512, [], \"e4e3\", \"M311.4 32l8.6 0c35.3 0 64 28.7 64 64l0 352c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l8.6 0C83.6 12.9 104.3 0 128 0L256 0c23.7 0 44.4 12.9 55.4 32zM248 112c13.3 0 24-10.7 24-24s-10.7-24-24-24L136 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0zM192 248c16.1 0 29.2 13.1 29.2 29.2 0 8.7-3.1 13.9-6.9 17.7-4.5 4.4-10.7 7.5-16.8 9.5-14.9 5-29.5 19.3-29.5 39.5 0 13.3 10.7 24 24 24 11.5 0 21.2-8.1 23.5-19 19.2-7.1 53.7-26.3 53.7-71.8 0-42.6-34.6-77.2-77.2-77.2s-77.2 34.6-77.2 77.2c0 13.3 10.7 24 24 24s24-10.7 24-24c0-16.1 13.1-29.2 29.2-29.2zm28 168c0-15.5-12.5-28-28-28s-28 12.5-28 28 12.5 28 28 28 28-12.5 28-28z\"],\n \"hotdog\": [512, 512, [127789], \"f80f\", \"M288 0c-20.5 0-40.1 8.1-54.6 22.6L22.6 233.4C8.1 247.9 0 267.5 0 288 0 300.2 2.9 312.1 8.2 322.7L322.7 8.2C312.1 2.9 300.2 0 288 0zM224 512c20.5 0 40.1-8.1 54.6-22.6L489.4 278.6c14.5-14.5 22.6-34.1 22.6-54.6 0-12.2-2.9-24.1-8.2-34.7L189.3 503.8c10.7 5.4 22.6 8.2 34.7 8.2zM456.6 168.6c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-288 288c-31.2 31.2-31.2 81.9 0 113.1s81.9 31.2 113.1 0l288-288z\"],\n \"arrow-up-from-bracket\": [448, 512, [], \"e09a\", \"M246.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 192 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-210.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128zM64 352c0-17.7-14.3-32-32-32S0 334.3 0 352l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 64c0 17.7-14.3 32-32 32L96 448c-17.7 0-32-14.3-32-32l0-64z\"],\n \"microscope\": [512, 512, [128300], \"f610\", \"M176 0c-26.5 0-48 21.5-48 48l0 208c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-64 32 0c70.7 0 128 57.3 128 128S390.7 448 320 448L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16.9 0c30.4-34 48.9-78.8 48.9-128 0-106-86-192-192-192l-32 0 0-80c0-26.5-21.5-48-48-48L176 0zM120 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l176 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-176 0z\"],\n \"cloud\": [576, 512, [9729], \"f0c2\", \"M0 336c0 79.5 64.5 144 144 144l304 0c70.7 0 128-57.3 128-128 0-51.6-30.5-96.1-74.5-116.3 6.7-13.1 10.5-28 10.5-43.7 0-53-43-96-96-96-17.7 0-34.2 4.8-48.4 13.1-24.1-45.8-72.2-77.1-127.6-77.1-79.5 0-144 64.5-144 144 0 8 .7 15.9 1.9 23.5-56.9 19.2-97.9 73.1-97.9 136.5z\"],\n \"baseball-bat-ball\": [576, 512, [], \"f432\", \"M464.1 544a80 80 0 1 1 0-160 80 80 0 1 1 0 160zm8.4-576c15.1 0 29.7 5.8 40.7 16.2l47.2 44.8c12.6 12 19.1 29 17.5 46.3-1.2 13.3-7 25.8-16.5 35.2L363.1 309c-7.3 7.3-15.7 13.4-25 18L206 393c-9.2 4.6-17.7 10.7-25 18l-92 92 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7l-1.8-1.7-48-48-1.7-1.8c-7.7-9.4-7.1-23.3 1.7-32.1s22.7-9.3 32.1-1.7l1.8 1.7 92-92c7.3-7.3 13.4-15.7 18-25l66.1-132.1c4.6-9.2 10.7-17.7 18-25L430.8-14.7C441.9-25.8 456.9-32 472.5-32z\"],\n \"car-rear\": [512, 512, [\"car-alt\"], \"f5de\", \"M165.4 96l181.2 0c13.6 0 25.7 8.6 30.2 21.4l26.1 74.6-293.8 0 26.1-74.6c4.5-12.8 16.6-21.4 30.2-21.4zm-90.6 .3L39.6 196.8C16.4 206.4 0 229.3 0 256l0 96c0 23.7 12.9 44.4 32 55.4L32 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 256 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-40.6c19.1-11.1 32-31.7 32-55.4l0-96c0-26.7-16.4-49.6-39.6-59.2L437.2 96.3C423.7 57.8 387.4 32 346.6 32L165.4 32c-40.8 0-77.1 25.8-90.6 64.3zM208 288l96 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-96 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM48 280c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm360-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"thumbtack-slash\": [576, 512, [\"thumb-tack-slash\"], \"e68f\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L417.8 352 448 352c10 0 19.5-4.7 25.5-12.7s8-18.4 5.2-28.1L475 297.8c-12.4-43.3-41-78.5-78.2-99.7L386.5 64 416 64c17.7 0 32-14.3 32-32S433.7 0 416 0L160 0c-7.4 0-14.1 2.5-19.5 6.6L190.1 56.3 185.3 119.4 41-24.9zM282.2 352L149.7 219.6c-22.7 20.5-39.8 47.4-48.7 78.3l-3.8 13.4c-2.8 9.7-.8 20 5.2 28.1S118 352 128 352l154.2 0zM256 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112-64 0 0 112z\"],\n \"plus-minus\": [384, 512, [], \"e43c\", \"M224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 128-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-128zM0 480c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 448c-17.7 0-32 14.3-32 32z\"],\n \"house-circle-check\": [640, 512, [], \"e509\", \"M496 544a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM268.6 6.5c12.2-9.3 29.7-8.7 41.2 2l217.6 202c-10.2-1.7-20.7-2.6-31.3-2.6-78.6 0-146.1 47.2-175.8 114.8-5.1-1.8-10.5-2.8-16.2-2.8l-32 0c-26.5 0-48 21.5-48 48l0 96 91 0c6.1 17.3 14.6 33.4 25.1 48L144 512c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208 2.4-2zM553.4 339.1c-7.1-5.2-17.1-3.6-22.3 3.5l-53 72.8-26.7-26.8c-6.2-6.2-16.4-6.2-22.6 0-6.2 6.2-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.7s8.9-2.8 11.7-6.6l64-88c5.2-7.1 3.6-17.1-3.5-22.3z\"],\n \"calendar-day\": [448, 512, [], \"f783\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0z\"],\n \"circle\": [512, 512, [128308, 128309, 128992, 128993, 128994, 128995, 128996, 9679, 9898, 9899, 11044, 61708, 61915], \"f111\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"mobile-vibrate\": [576, 512, [], \"e816\", \"M384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-384c0-35.3 28.7-64 64-64L384 0zM248 416c-13.3 0-24 10.7-24 24s10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM48.8 133.4c9.4-7.7 23.3-7.1 32.1 1.7 9.4 9.4 9.4 24.6 0 33.9l-31 31 25.4 25.4 2.9 3.2c6.3 7.7 9.8 17.4 9.8 27.4 0 11.5-4.6 22.5-12.7 30.6l-25.4 25.4 31 31 1.7 1.8c7.7 9.4 7.1 23.3-1.7 32.1s-22.7 9.3-32.1 1.7L47 377 12.7 342.6C5.6 335.5 1.2 326.2 .2 316.3L0 312 .2 307.7c1-9.9 5.4-19.2 12.5-26.3L38.1 256 12.7 230.6C5.6 223.5 1.2 214.2 .2 204.3L0 200 .2 195.7c1-9.9 5.4-19.2 12.5-26.3L47 135 48.8 133.4zM495 135c8.8-8.8 22.7-9.3 32.1-1.7l1.8 1.7 34.3 34.3c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-25.4 25.4 25.4 25.4c7.1 7.1 11.5 16.4 12.5 26.3l.2 4.3-.2 4.3c-1 9.9-5.4 19.2-12.5 26.3l-34.3 34.3-1.8 1.7c-9.4 7.7-23.3 7.1-32.1-1.7s-9.3-22.7-1.7-32.1l1.7-1.8 31-31-25.4-25.4c-8.1-8.1-12.7-19.1-12.7-30.6 0-10 3.5-19.7 9.8-27.4l2.9-3.2 25.4-25.4-31-31c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"face-grin-squint\": [512, 512, [128518, \"grin-squint\"], \"f585\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM122.6 143.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"],\n \"users-between-lines\": [576, 512, [], \"e591\", \"M24 16l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 64C10.7 64 0 53.3 0 40S10.7 16 24 16zm0 448l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM392 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm27.2 100.4c9.1-2.9 18.8-4.4 28.8-4.4 53 0 96 43 96 96l0 10.7c0 11.8-9.6 21.3-21.3 21.3l-78.8 0c2.7-7.5 4.1-15.6 4.1-24l0-8c0-34.1-10.6-65.7-28.8-91.6zm-262.4 0C138.6 318.3 128 349.9 128 384l0 8c0 8.4 1.4 16.5 4.1 24l-78.8 0C41.6 416 32 406.4 32 394.7L32 384c0-53 43-96 96-96 10 0 19.7 1.5 28.8 4.4zM72 192a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zm152-16a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zM176 384c0-61.9 50.1-112 112-112s112 50.1 112 112l0 8c0 13.3-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24l0-8z\"],\n \"house-medical-circle-xmark\": [640, 512, [], \"e513\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z\"],\n \"table-list\": [448, 512, [\"th-list\"], \"f00b\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm64 0l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 224l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64zM64 352l0 64 64 0 0-64-64 0zm320 0l-192 0 0 64 192 0 0-64z\"],\n \"flask-vial\": [640, 512, [], \"e4f3\", \"M184.6 411.5c-3.1 7.3-5.4 14.9-6.8 22.6-14.5 8.8-31.5 13.9-49.8 13.9-53 0-96-43-96-96L32 64C14.3 64 0 49.7 0 32S14.3 0 32 0L224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 255.6-39.4 91.9zM96 64l0 128 64 0 0-128-64 0zM352 0L512 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.4 91.3 213c2.3 5.4 3.8 11.1 4.4 17l.3 .6-.3 0c.2 1.8 .3 3.6 .3 5.4 0 32.3-26.2 58.6-58.6 58.6l-266.9 0c-32.3 0-58.6-26.2-58.6-58.6 0-1.8 .1-3.6 .3-5.4l-.3 0 .3-.6c.6-5.8 2.1-11.6 4.4-17L320 217.4 320 64c-17.7 0-32-14.3-32-32S302.3 0 320 0l32 0zM453.2 242.6c-3.4-8-5.2-16.5-5.2-25.2l0-153.4-64 0 0 153.4c0 8.7-1.8 17.2-5.2 25.2l-33.2 77.4 140.7 0-33.2-77.4z\"],\n \"circle-exclamation\": [512, 512, [\"exclamation-circle\"], \"f06a\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zm0-192a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.6 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z\"],\n \"taxi\": [512, 512, [128662, \"cab\"], \"f1ba\", \"M192 0c-17.7 0-32 14.3-32 32l0 32-8.9 0c-42 0-79.1 27.3-91.6 67.4l-23 73.5C14.5 219.1 0 243.9 0 272L0 448c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-32 320 0 0 32c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-176c0-28.1-14.5-52.9-36.4-67.1l-23-73.5C440.1 91.3 402.9 64 360.9 64l-8.9 0 0-32c0-17.7-14.3-32-32-32L192 0zM151.1 128l209.9 0c14 0 26.4 9.1 30.5 22.5l13 41.5-296.9 0 13-41.5c4.2-13.4 16.5-22.5 30.5-22.5zM96 272a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm288 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"text-slash\": [576, 512, [\"remove-format\"], \"f87d\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L322.7 256.9 368.2 96 471 96 465 120.2c-4.3 17.1 6.1 34.5 23.3 38.8s34.5-6.1 38.8-23.3l11-44.1C545.6 61.3 522.7 32 491.5 32l-319 0c-19.8 0-37.3 12.1-44.5 30.1l-87-87zM180.4 114.5l4.6-18.5 116.7 0-30.8 109-90.5-90.5zM241 310.8L211.3 416 160 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-42.2 0 15.1-53.3-51.9-51.9z\"],\n \"people-pulling\": [576, 512, [], \"e535\", \"M80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM64 128c-35.3 0-64 28.7-64 64L0 320c0 17.7 14.3 32 32 32 9.8 0 18.5-4.4 24.4-11.2L80.4 485.3c2.9 17.4 19.4 29.2 36.8 26.3s29.2-19.4 26.3-36.8l-20.5-122.7 15.7 0 30 134.9c3.8 17.3 20.9 28.1 38.2 24.3s28.1-20.9 24.3-38.2l-57.3-258 116.3 53.8c.5 .3 1.1 .5 1.6 .7 8.6 3.6 18 3.1 25.9-.7 3.4-1.6 6.6-3.9 9.3-6.7 3.1-3.2 5.5-7 7.1-11.4 .1-.3 .2-.7 .3-1l2.5-7.5c5.7-17.1 18.3-30.9 34.7-38.2l8-3.5c1-.4 1.9-.8 2.9-1.2l-16.9 63.5c-5.6 21.1-.1 43.6 14.7 59.7l70.7 77.1 22 88.1c4.3 17.1 21.7 27.6 38.8 23.3s27.6-21.7 23.3-38.8l-23-92.1c-1.9-7.8-5.8-14.9-11.2-20.8l-49.5-54 19.3-65.5 9.6 23c4.4 10.6 12.5 19.3 22.8 24.5l26.7 13.3c15.8 7.9 35 1.5 42.9-14.3s1.5-35-14.3-42.9l-21.4-10.7-15.3-36.8c-17.1-41.1-57.3-67.9-101.9-67.9-22.8 0-45.3 4.8-66.1 14l-8 3.5c-24.4 10.9-44.6 29-58.1 51.6L157.3 136.9C144.7 131 130.9 128 117 128l-53 0zM464 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM349.7 335.6l-25 62.4-59.4 59.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L372.3 441c4.6-4.6 8.2-10.1 10.6-16.1l14.5-36.2-40.7-44.4c-2.5-2.7-4.8-5.6-7-8.6z\"],\n \"backward\": [576, 512, [9194], \"f04a\", \"M204.3 43.1C215.9 32 233 28.9 247.7 35.2S272 56 272 72l0 136.3 172.3-165.1C455.9 32 473 28.9 487.7 35.2S512 56 512 72l0 368c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9L272 303.7 272 440c0 16-9.6 30.5-24.3 36.8s-31.8 3.2-43.4-7.9l-192-184C4.5 277.3 0 266.9 0 256s4.5-21.3 12.3-28.9l192-184z\"],\n \"car-burst\": [640, 512, [\"car-crash\"], \"f5e1\", \"M232 16.1l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24s24-10.7 24-24zM32 168.1l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24zM281.5 70.6c9.4 9.4 24.6 9.4 33.9 0l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L281.5 36.6c-9.4 9.4-9.4 24.6 0 33.9zm-181 215l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352.9 175.4L505 216.2c6.4 1.7 11.1 7.3 11.8 13.9l7.2 74-231.5-62 43.2-60.5c3.9-5.4 10.7-7.9 17.2-6.2zM223.6 228.5l-2.1 2.9c-21.7 5.5-39.9 22.3-46.1 45.5-4.1 15.5-12.4 46.4-24.8 92.7l-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6l8.3-30.9 278.2 74.5-8.3 30.9c-4.6 17.1 5.6 34.6 22.6 39.2l15.5 4.1c17.1 4.6 34.6-5.6 39.2-22.6 4.1-15.5 12.4-46.4 24.8-92.7l8.3-30.9c6.2-23.2-1.1-46.8-17.2-62.5l-.3-3.6-10-103c-3.2-33.2-26.7-60.9-58.9-69.5L369.5 113.6c-32.2-8.6-66.4 3.6-85.8 30.8l-60.2 84.2zm48.7 57.8a32 32 0 1 1 -16.6 61.8 32 32 0 1 1 16.6-61.8zm208.1 88.9a32 32 0 1 1 61.8 16.6 32 32 0 1 1 -61.8-16.6z\"],\n \"link\": [576, 512, [128279, \"chain\"], \"f0c1\", \"M419.5 96c-16.6 0-32.7 4.5-46.8 12.7-15.8-16-34.2-29.4-54.5-39.5 28.2-24 64.1-37.2 101.3-37.2 86.4 0 156.5 70 156.5 156.5 0 41.5-16.5 81.3-45.8 110.6l-71.1 71.1c-29.3 29.3-69.1 45.8-110.6 45.8-86.4 0-156.5-70-156.5-156.5 0-1.5 0-3 .1-4.5 .5-17.7 15.2-31.6 32.9-31.1s31.6 15.2 31.1 32.9c0 .9 0 1.8 0 2.6 0 51.1 41.4 92.5 92.5 92.5 24.5 0 48-9.7 65.4-27.1l71.1-71.1c17.3-17.3 27.1-40.9 27.1-65.4 0-51.1-41.4-92.5-92.5-92.5zM275.2 173.3c-1.9-.8-3.8-1.9-5.5-3.1-12.6-6.5-27-10.2-42.1-10.2-24.5 0-48 9.7-65.4 27.1L91.1 258.2c-17.3 17.3-27.1 40.9-27.1 65.4 0 51.1 41.4 92.5 92.5 92.5 16.5 0 32.6-4.4 46.7-12.6 15.8 16 34.2 29.4 54.6 39.5-28.2 23.9-64 37.2-101.3 37.2-86.4 0-156.5-70-156.5-156.5 0-41.5 16.5-81.3 45.8-110.6l71.1-71.1c29.3-29.3 69.1-45.8 110.6-45.8 86.6 0 156.5 70.6 156.5 156.9 0 1.3 0 2.6 0 3.9-.4 17.7-15.1 31.6-32.8 31.2s-31.6-15.1-31.2-32.8c0-.8 0-1.5 0-2.3 0-33.7-18-63.3-44.8-79.6z\"],\n \"backward-step\": [384, 512, [\"step-backward\"], \"f048\", \"M363 36.8c-12.9-7-28.7-6.3-41 1.8L64 208.1 64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144.1 258 169.6c12.3 8.1 28 8.8 41 1.8s21-20.5 21-35.2l0-368c0-14.7-8.1-28.2-21-35.2z\"],\n \"x\": [384, 512, [120], \"58\", \"M376.6 84.5c11.3-13.6 9.5-33.8-4.1-45.1s-33.8-9.5-45.1 4.1L192 206 56.6 43.5C45.3 29.9 25.1 28.1 11.5 39.4S-3.9 70.9 7.4 84.5L150.3 256 7.4 427.5c-11.3 13.6-9.5 33.8 4.1 45.1s33.8 9.5 45.1-4.1L192 306 327.4 468.5c11.3 13.6 31.5 15.4 45.1 4.1s15.4-31.5 4.1-45.1L233.7 256 376.6 84.5z\"],\n \"circle-user\": [512, 512, [62142, \"user-circle\"], \"f2bd\", \"M399 384.2C376.9 345.8 335.4 320 288 320l-64 0c-47.4 0-88.9 25.8-111 64.2 35.2 39.2 86.2 63.8 143 63.8s107.8-24.7 143-63.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 16a72 72 0 1 0 0-144 72 72 0 1 0 0 144z\"],\n \"rectangle-list\": [512, 512, [\"list-alt\"], \"f022\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm96 256a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm120-56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"hand\": [512, 512, [129306, 9995, \"hand-paper\"], \"f256\", \"M288 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 208c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 272c0 1.5 0 3.1 .1 4.6L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.2 0c97.2 0 176-78.8 176-176l0-208c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 112c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-176c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-208z\"],\n \"van-shuttle\": [576, 512, [128656, \"shuttle-van\"], \"f5b6\", \"M64 64C28.7 64 0 92.7 0 128L0 336c0 35.3 28.7 64 64 64l.4 0c4 44.9 41.7 80 87.6 80s83.6-35.1 87.6-80l104.7 0c4 44.9 41.7 80 87.6 80 46.1 0 83.9-35.4 87.7-80.5 31.7-3.8 56.3-30.8 56.3-63.5l0-101.3c0-13.8-4.5-27.3-12.8-38.4l-80-106.7C471.1 73.5 452.1 64 432 64L64 64zM504 224l-120 0 0-96 48 0 72 96zM64 224l0-96 96 0 0 96-96 0zm160 0l0-96 96 0 0 96-96 0zM392 392a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM152 352a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],\n \"stairs\": [576, 512, [], \"e289\", \"M384 64c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32l-96 0 0 96c0 17.7-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96c0-17.7 14.3-32 32-32l96 0 0-96z\"],\n \"horse-head\": [512, 512, [], \"f7ab\", \"M0 464L0 316.9C0 208.5 68.3 111.8 170.5 75.6L340.2 15.5c21.4-7.6 43.8 8.3 43.8 30.9 0 11-5.5 21.2-14.6 27.3L336 96c48.1 0 91.2 29.8 108.1 74.9l48.6 129.5c11.8 31.4 4.1 66.8-19.6 90.5-16 16-37.8 25.1-60.5 25.1l-3.4 0c-26.1 0-50.9-11.6-67.6-31.7l-32.3-38.7c-11.7 4.1-24.2 6.4-37.3 6.4l-.1 0c-6.3 0-12.5-.5-18.6-1.5-3.6-.6-7.2-1.4-10.7-2.3l0 0c-28.9-7.8-53.1-26.8-67.8-52.2-4.4-7.7-14.2-10.3-21.9-5.8s-10.3 14.2-5.8 21.9c24 41.5 68.3 70 119.3 71.9l47.2 70.8c4 6.1 6.2 13.2 6.2 20.4 0 20.3-16.5 36.8-36.8 36.8L48 512c-26.5 0-48-21.5-48-48zM328 224a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"vault\": [512, 512, [], \"e2c5\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l256 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM256 256a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM64 256a128 128 0 1 1 256 0 128 128 0 1 1 -256 0zm384-48c0 17.8-9.7 33.3-24 41.6l0 78.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-78.4c-14.3-8.3-24-23.8-24-41.6 0-26.5 21.5-48 48-48s48 21.5 48 48z\"],\n \"drum-steelpan\": [576, 512, [], \"f56a\", \"M288 32c159.1 0 288 48 288 128l0 192c0 80-128.9 128-288 128S0 432 0 352L0 160C0 80 128.9 32 288 32zM528 160c0-9.9-8-29.9-55-49.8-18.6-7.9-40.9-14.4-66-19.4l-27.8 43.6c-7.3 11.5-11.2 24.8-11.2 38.4 0 17.5 6.4 34.4 18.1 47.5l9.8 11c29.8-5.2 55.9-12.5 77.2-21.5 47.1-19.9 55-39.9 55-49.8zM349.2 237.3c-8-26.2-32.4-45.3-61.2-45.3s-53.3 19.1-61.2 45.3c19.4 1.7 39.9 2.7 61.2 2.7s41.8-.9 61.2-2.7zM169 90.8c-25.2 5-47.4 11.6-66 19.4-47.1 19.9-55 39.9-55 49.8s8 29.9 55 49.8c21.3 9 47.4 16.3 77.2 21.5l9.8-11c11.6-13.1 18.1-30 18.1-47.5 0-13.6-3.9-26.9-11.2-38.4L169 90.8zm56.3-8c-.9 4.3-1.4 8.7-1.4 13.2 0 35.3 28.7 64 64 64s64-28.7 64-64c0-4.5-.5-9-1.4-13.2-19.8-1.8-40.8-2.8-62.6-2.8s-42.8 1-62.6 2.8z\"],\n \"thumbs-up\": [512, 512, [128077, 61575], \"f164\", \"M80 160c17.7 0 32 14.3 32 32l0 256c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32L0 192c0-17.7 14.3-32 32-32l48 0zM270.6 16C297.9 16 320 38.1 320 65.4l0 4.2c0 6.8-1.3 13.6-3.8 19.9L288 160 448 160c26.5 0 48 21.5 48 48 0 19.7-11.9 36.6-28.9 44 17 7.4 28.9 24.3 28.9 44 0 23.4-16.8 42.9-39 47.1 4.4 7.3 7 15.8 7 24.9 0 22.2-15 40.8-35.4 46.3 2.2 5.5 3.4 11.5 3.4 17.7 0 26.5-21.5 48-48 48l-87.9 0c-36.3 0-71.6-12.4-99.9-35.1L184 435.2c-15.2-12.1-24-30.5-24-50l0-186.6c0-14.9 3.5-29.6 10.1-42.9L226.3 43.3C234.7 26.6 251.8 16 270.6 16z\"],\n \"stamp\": [512, 512, [], \"f5bf\", \"M312 201.8c0-17.4 9.2-33.2 19.9-47 12.6-16.2 20.1-36.6 20.1-58.8 0-53-43-96-96-96s-96 43-96 96c0 22.1 7.5 42.5 20.1 58.8 10.7 13.8 19.9 29.6 19.9 47 0 29.9-24.3 54.2-54.2 54.2L112 256c-61.9 0-112 50.1-112 112 0 26.5 21.5 48 48 48l416 0c26.5 0 48-21.5 48-48 0-61.9-50.1-112-112-112l-33.8 0c-29.9 0-54.2-24.3-54.2-54.2zM56 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l400 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L56 464z\"],\n \"menorah\": [640, 512, [], \"f676\", \"M20.8 7.4C22.8 2.9 27.1 0 32 0s9.2 2.9 11.2 7.4L61.3 49.7c1.8 4.1 2.7 8.6 2.7 13.1L64 64c0 17.7-14.3 32-32 32S0 81.7 0 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L20.8 7.4zm96 0C118.8 2.9 123.1 0 128 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32S96 81.7 96 64l0-1.2c0-4.5 .9-8.9 2.7-13.1L116.8 7.4zm77.8 42.4L212.8 7.4C214.8 2.9 219.1 0 224 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM308.8 7.4C310.8 2.9 315.1 0 320 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L308.8 7.4zm77.8 42.4L404.8 7.4C406.8 2.9 411.1 0 416 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM500.8 7.4C502.8 2.9 507.1 0 512 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1L500.8 7.4zm77.8 42.4L596.8 7.4C598.8 2.9 603.1 0 608 0s9.2 2.9 11.2 7.4l18.2 42.4c1.8 4.1 2.7 8.6 2.7 13.1l0 1.2c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-1.2c0-4.5 .9-8.9 2.7-13.1zM32 128c17.7 0 32 14.3 32 32l0 128c0 17.7 14.3 32 32 32l192 0 0-160c0-17.7 14.3-32 32-32s32 14.3 32 32l0 160 192 0c17.7 0 32-14.3 32-32l0-128c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 53-43 96-96 96l-192 0 0 64 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l128 0 0-64-192 0c-53 0-96-43-96-96L0 160c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm192 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32zm96 0c17.7 0 32 14.3 32 32l0 128-64 0 0-128c0-17.7 14.3-32 32-32z\"],\n \"children\": [640, 512, [], \"e4e1\", \"M160.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-72 480l0-80-17.8 0c-10.9 0-18.6-10.7-15.2-21.1L86.7 285.5 58 323.3c-10.7 14.1-30.8 16.8-44.8 6.2S-3.7 298.7 7 284.7L65.9 207c22.4-29.6 57.5-47 94.6-47s72.2 17.4 94.6 47L314 284.7c10.7 14.1 7.9 34.2-6.2 44.8s-34.2 7.9-44.8-6.2l-28.7-37.8 31.1 93.4c3.5 10.4-4.3 21.1-15.2 21.1l-17.8 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80-16 0 0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32zM480.5 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm-8 384l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-179.5-12.9 20.5c-9.4 15-29.2 19.4-44.1 10s-19.4-29.2-10-44.1l51.7-82.1c17.6-27.9 48.3-44.9 81.2-44.9l12.3 0c33 0 63.7 16.9 81.2 44.9L619.6 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10l-12.9-20.5 0 179.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-16 0z\"],\n \"chart-line\": [512, 512, [\"line-chart\"], \"f201\", \"M64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 400c0 44.2 35.8 80 80 80l400 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 416c-8.8 0-16-7.2-16-16L64 64zm406.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L320 210.7 262.6 153.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l73.4-73.4 57.4 57.4c12.5 12.5 32.8 12.5 45.3 0l128-128z\"],\n \"square-envelope\": [448, 512, [\"envelope-square\"], \"f199\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM209.1 267.9L108.4 207.4c-7.7-4.6-12.4-12.9-12.4-21.9 0-14.1 11.4-25.5 25.5-25.5l204.9 0c14.1 0 25.5 11.4 25.5 25.5 0 9-4.7 17.3-12.4 21.9L238.9 267.9c-4.5 2.7-9.6 4.1-14.9 4.1s-10.4-1.4-14.9-4.1zM352 237.3l0 82.7c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-82.7 96.7 58C202.1 301 213 304 224 304s21.9-3 31.3-8.7l96.7-58z\"],\n \"ban-smoking\": [512, 512, [128685, \"smoking-ban\"], \"f54d\", \"M99.5 144.8l79.2 79.2-50.7 0c-17.7 0-32 14.3-32 32l0 32c0 17.7 14.3 32 32 32l146.7 0 92.5 92.5c-31.4 22.4-69.8 35.5-111.2 35.5-106 0-192-86-192-192 0-41.5 13.1-79.9 35.5-111.2zM333.3 288l-32-32 82.7 0 0 32-50.7 0zm32 32l18.7 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L269.3 224 144.8 99.5c31.4-22.4 69.8-35.5 111.2-35.5 106 0 192 86 192 192 0 41.5-13.1 79.9-35.5 111.2L365.3 320zM256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM272 96c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l32 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16c0-26.5-21.5-48-48-48l-32 0c-8.8 0-16-7.2-16-16s-7.2-16-16-16z\"],\n \"truck-front\": [448, 512, [], \"e2b7\", \"M0 112C0 67.8 35.8 32 80 32l288 0c44.2 0 80 35.8 80 80l0 256c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-32-192 0 0 32c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-48C12.6 417.4 0 394.2 0 368L0 112zm96 80l0 64 256 0 0-64c0-17.7-14.3-32-32-32l-192 0c-17.7 0-32 14.3-32 32zm32 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm224 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"building\": [384, 512, [127970, 61687], \"f1ad\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"],\n \"bullseye\": [512, 512, [], \"f140\", \"M448 256a192 192 0 1 0 -384 0 192 192 0 1 0 384 0zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 80a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm0-224a144 144 0 1 1 0 288 144 144 0 1 1 0-288zM224 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"arrow-left-long\": [576, 512, [\"long-arrow-left\"], \"f177\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l128 128c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 544 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-434.7 0 73.4-73.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-128 128z\"],\n \"chess-rook\": [384, 512, [9820], \"f447\", \"M0 32L0 133.5c0 17 6.7 33.3 18.7 45.3L64 224 64 384 7.8 454.3C2.7 460.6 0 468.4 0 476.5 0 496.1 15.9 512 35.5 512l312.9 0c19.6 0 35.5-15.9 35.5-35.5 0-8.1-2.7-15.9-7.8-22.2l-56.2-70.3 0-160 45.3-45.3c12-12 18.7-28.3 18.7-45.3L384 32c0-17.7-14.3-32-32-32L320 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32c0-17.7-14.3-32-32-32L176 0c-17.7 0-32 14.3-32 32l0 32-48 0 0-32C96 14.3 81.7 0 64 0L32 0C14.3 0 0 14.3 0 32z\"],\n \"blender-phone\": [576, 512, [], \"f6b6\", \"M151.4 13.2c10.2 5.8 14.5 18.4 10 29.3L138.2 98.8c-3.9 9.6-13.7 15.4-24 14.4l-20.2-2C78.7 152.9 78 198.9 91.9 241.1l22.4-2.2c10.3-1 20 4.8 24 14.4l23.2 56.3c4.5 10.9 .2 23.4-10 29.3l-2.9 1.6c-33.6 19.2-81.7 16.2-106.2-21.6-56.3-86.6-56.3-199.1 0-285.7 24.6-37.7 72.7-40.7 106.2-21.6l2.9 1.6zM224 336L193.7 17.5C192.8 8.1 200.2 0 209.6 0l324 0c21.3 0 36.6 20.3 30.8 40.8L553.1 80 440 80c-13.3 0-24 10.7-24 24s10.7 24 24 24l99.4 0-18.3 64-81.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.4 0-27.4 96-256 0zm8 48l240 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-240 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40zm120 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"arrow-turn-up\": [384, 512, [\"level-up\"], \"f148\", \"M32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96-43 96-96l0-306.7 73.4 73.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0l-128 128c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 109.3 160 416c0 17.7-14.3 32-32 32l-96 0z\"],\n \"bicycle\": [640, 512, [128690], \"f206\", \"M331.7 43.3C336 36.3 343.7 32 352 32l104 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-65.6 0 72.2 148.4c10.7-2.9 21.9-4.4 33.4-4.4 70.7 0 128 57.3 128 128s-57.3 128-128 128-128-57.3-128-128c0-42 20.2-79.2 51.4-102.6l-20.4-41.9-73.5 147c-2.3 4.8-6.3 8.8-11.4 11.2-.6 .3-1.2 .5-1.8 .7-2.9 1.1-5.9 1.6-8.9 1.5L271 368c-7.9 63.1-61.7 112-127 112-70.7 0-128-57.3-128-128S73.3 224 144 224c10.8 0 21.2 1.3 31.2 3.8l28.5-56.9-11.5-26.9-40.2 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c9.6 0 18.3 5.7 22.1 14.5l14.3 33.5 123.7 0-37.7-77.5c-3.6-7.4-3.2-16.2 1.2-23.2zM228.5 228.7l-45.6 91.3 84.8 0-39.1-91.3zM305.7 287l47.5-95-88.2 0 40.7 95zm168.7 75.5l-29.7-61c-12.8 13-20.7 30.8-20.7 50.5 0 39.8 32.2 72 72 72s72-32.2 72-72-32.2-72-72-72c-2.7 0-5.5 .2-8.1 .5l29.7 61c5.8 11.9 .8 26.3-11.1 32.1s-26.3 .8-32.1-11.1zM149.2 368c-20.2 0-33.4-21.3-24.3-39.4l24.2-48.5c-1.7-.1-3.4-.2-5.1-.2-39.8 0-72 32.2-72 72s32.2 72 72 72c34.3 0 62.9-23.9 70.2-56l-65 0z\"],\n \"circle-arrow-down\": [512, 512, [\"arrow-circle-down\"], \"f0ab\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM239 377l-80-80c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l39 39 0-150.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 150.1 39-39c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-80 80c-9.4 9.4-24.6 9.4-33.9 0z\"],\n \"gear\": [512, 512, [9881, \"cog\"], \"f013\", \"M195.1 9.5C198.1-5.3 211.2-16 226.4-16l59.8 0c15.2 0 28.3 10.7 31.3 25.5L332 79.5c14.1 6 27.3 13.7 39.3 22.8l67.8-22.5c14.4-4.8 30.2 1.2 37.8 14.4l29.9 51.8c7.6 13.2 4.9 29.8-6.5 39.9L447 233.3c.9 7.4 1.3 15 1.3 22.7s-.5 15.3-1.3 22.7l53.4 47.5c11.4 10.1 14 26.8 6.5 39.9l-29.9 51.8c-7.6 13.1-23.4 19.2-37.8 14.4l-67.8-22.5c-12.1 9.1-25.3 16.7-39.3 22.8l-14.4 69.9c-3.1 14.9-16.2 25.5-31.3 25.5l-59.8 0c-15.2 0-28.3-10.7-31.3-25.5l-14.4-69.9c-14.1-6-27.2-13.7-39.3-22.8L73.5 432.3c-14.4 4.8-30.2-1.2-37.8-14.4L5.8 366.1c-7.6-13.2-4.9-29.8 6.5-39.9l53.4-47.5c-.9-7.4-1.3-15-1.3-22.7s.5-15.3 1.3-22.7L12.3 185.8c-11.4-10.1-14-26.8-6.5-39.9L35.7 94.1c7.6-13.2 23.4-19.2 37.8-14.4l67.8 22.5c12.1-9.1 25.3-16.7 39.3-22.8L195.1 9.5zM256.3 336a80 80 0 1 0 -.6-160 80 80 0 1 0 .6 160z\"],\n \"mars-and-venus-burst\": [640, 512, [], \"e523\", \"M464-32c0 17.7 14.3 32 32 32l34.7 0-63 63c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176 0 86.3 62.1 158.1 144 173.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-37-11.4-71.4-31-99.8l63-63 0 34.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-112c0-17.7-14.3-32-32-32L496-64c-17.7 0-32 14.3-32 32zM368 96a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM190.9-21.9C188.4-28 182.6-32 176-32s-12.4 4-14.9 10.1l-29.4 74-76.2-23.1c-6.3-1.9-13.1 .2-17.2 5.3S33.8 46.5 37 52.2l39.5 69.1-65.6 45.1c-5.4 3.7-8 10.3-6.5 16.7s6.7 11.2 13.1 12.2l78.7 12.2-5.6 79.4c-.5 6.5 3.1 12.7 9 15.5s12.9 1.8 17.8-2.6L152.1 268c-5.3-19.1-8.1-39.2-8.1-60 0-65.4 28-124.2 72.6-165.1L190.9-21.9z\"],\n \"otter\": [640, 512, [129446], \"f700\", \"M181.5 197.1l12.9 6.4c5.9 3 12.4 4.5 19.1 4.5 23.5 0 42.6-19.1 42.6-42.6l0-21.4c0-35.3-28.7-64-64-64l-64 0c-35.3 0-64 28.7-64 64l0 21.4c0 23.5 19.1 42.6 42.6 42.6 6.6 0 13.1-1.5 19.1-4.5 9.3-4.7 16.4-8.2 21.2-10.6L135.1 185c-4.5-3-7.1-8-7.1-13.3l0-3.7c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 3.7c0 5.3-2.7 10.3-7.1 13.3l-11.8 7.9 8.4 4.2zm-8.6 49.4l-12.9-6.4-12.9 6.4c-12.6 6.3-26.5 9.6-40.5 9.6-3.6 0-7.1-.2-10.6-.6l0 .6c0 35.3 28.7 64 64 64l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l160 0 0-64c0-23.7 12.9-44.4 32-55.4 9.4-5.4 20.3-8.6 32-8.6l0-16c0-26.5 21.5-48 48-48 8.8 0 16 7.2 16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-99.7c0-48.2-30.8-91-76.6-106.3l-8.5-2.8c-8-2.7-12.6-11.1-10.4-19.3s10.3-13.2 18.6-11.6l19.9 4C576 86.1 640 164.2 640 254.9l0 1.1 0 0c0 123.7-100.3 224-224 224l-160.6 0C132 480 32 380 32 256.6l0-39.8c-10.1-14.6-16-32.3-16-51.4l0-21.4 0-1.4C6.7 139.3 0 130.5 0 120 0 106.7 10.7 96 24 96l2.8 0C44.8 58.2 83.3 32 128 32l64 0c44.7 0 83.2 26.2 101.2 64l2.8 0c13.3 0 24 10.7 24 24 0 10.5-6.7 19.3-16 22.6l0 1.4 0 21.4c0 1.4 0 2.8-.1 4.3 12-6.2 25.7-9.6 40.1-9.6l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-13.3 0-24 10.7-24 24l0 8 56.4 0c-15.2 17-24.4 39.4-24.4 64l-32 0c-42.3 0-78.2-27.4-91-65.3-5.1 .9-10.3 1.3-15.6 1.3-14.1 0-27.9-3.3-40.5-9.6zM96 128a16 16 0 1 1 0 32 16 16 0 1 1 0-32zm112 16a16 16 0 1 1 32 0 16 16 0 1 1 -32 0z\"],\n \"circle-chevron-left\": [512, 512, [\"chevron-circle-left\"], \"f137\", \"M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM271 135c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-87 87 87 87c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L167 273c-9.4-9.4-9.4-24.6 0-33.9L271 135z\"],\n \"circle-question\": [512, 512, [62108, \"question-circle\"], \"f059\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-336c-17.7 0-32 14.3-32 32 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-44.2 35.8-80 80-80s80 35.8 80 80c0 47.2-36 67.2-56 74.5l0 3.8c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-8.1c0-20.5 14.8-35.2 30.1-40.2 6.4-2.1 13.2-5.5 18.2-10.3 4.3-4.2 7.7-10 7.7-19.6 0-17.7-14.3-32-32-32zM224 368a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"walkie-talkie\": [384, 512, [], \"f8ef\", \"M88-32c13.3 0 24 10.7 24 24l0 72 48 0c0-17.7 14.3-32 32-32s32 14.3 32 32l32 0c0-17.7 14.3-32 32-32s32 14.3 32 32l16 0c26.5 0 48 21.5 48 48l0 160.9c0 9.9-2.3 19.7-6.8 28.6l-20.2 40.4c-3.3 6.7-5.1 14-5.1 21.5l0 84.7c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-84.7c0-7.5-1.7-14.8-5.1-21.5L6.8 301.5C2.3 292.6 0 282.8 0 272.9L0 112C0 85.5 21.5 64 48 64l16 0 0-72c0-13.3 10.7-24 24-24zm32 176c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"user-group\": [576, 512, [128101, \"user-friends\"], \"f500\", \"M64 128a112 112 0 1 1 224 0 112 112 0 1 1 -224 0zM0 464c0-97.2 78.8-176 176-176s176 78.8 176 176l0 6c0 23.2-18.8 42-42 42L42 512c-23.2 0-42-18.8-42-42l0-6zM432 64a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm0 240c79.5 0 144 64.5 144 144l0 22.4c0 23-18.6 41.6-41.6 41.6l-144.8 0c6.6-12.5 10.4-26.8 10.4-42l0-6c0-51.5-17.4-98.9-46.5-136.7 22.6-14.7 49.6-23.3 78.5-23.3z\"],\n \"house-chimney\": [512, 512, [63499, \"home-lg\"], \"e3af\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM240 320c-26.5 0-48 21.5-48 48l0 96 128 0 0-96c0-26.5-21.5-48-48-48l-32 0z\"],\n \"right-from-bracket\": [512, 512, [\"sign-out-alt\"], \"f2f5\", \"M505 273c9.4-9.4 9.4-24.6 0-33.9L361 95c-6.9-6.9-17.2-8.9-26.2-5.2S320 102.3 320 112l0 80-112 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l112 0 0 80c0 9.7 5.8 18.5 14.8 22.2s19.3 1.7 26.2-5.2L505 273zM160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0z\"],\n \"file\": [384, 512, [128196, 128459, 61462], \"f15b\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176z\"],\n \"plane-slash\": [576, 512, [], \"e069\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-183.4-183.4 7.1-7.7 127.3 0c30.9 0 56-25.1 56-56s-25.1-56-56-56L392.7 200 233.5 26.4C227.5 19.8 218.9 16 209.9 16l-43.7 0c-10.9 0-18.6 10.7-15.2 21.1L175.1 109.2 41-24.9zM130.2 200l-24.6 0-52.8-66c-3-3.8-7.6-6-12.5-6l-19.8 0c-10.4 0-18 9.8-15.5 19.9L32 256 5 364.1C2.4 374.2 10.1 384 20.5 384l19.8 0c4.9 0 9.5-2.2 12.5-6l52.8-66 99.7 0-54.3 162.9c-3.5 10.4 4.3 21.1 15.2 21.1l43.7 0c9 0 17.5-3.8 23.6-10.4L320.7 390.5 130.2 200z\"],\n \"cloud-showers-heavy\": [512, 512, [], \"f740\", \"M96 320c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 320zm6.8 79.6l-32 96C66.6 508.2 53 515 40.4 510.8S21 493 25.2 480.4l32-96C61.4 371.8 75 365 87.6 369.2S107 387 102.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S141 493 145.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S227 387 222.8 399.6zm112 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S253 493 257.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S339 387 334.8 399.6zm120 0l-32 96c-4.2 12.6-17.8 19.4-30.4 15.2S373 493 377.2 480.4l32-96c4.2-12.6 17.8-19.4 30.4-15.2S459 387 454.8 399.6z\"],\n \"person-falling\": [512, 512, [], \"e546\", \"M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 5.4c0 45-23.6 86.6-62.1 109.8l-4.6 2.8C131.4 184.7 96 247.1 96 314.6L96 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-69.4c0-16.7 3.3-33 9.4-48L359.2 500.2c11.1 13.7 31.3 15.8 45 4.7s15.8-31.3 4.7-45L295.2 320 400 320 438.4 371.2c10.6 14.1 30.7 17 44.8 6.4s17-30.7 6.4-44.8l-43.2-57.6C437.3 263.1 423.1 256 408 256l-89 0-62.9-75.5c40.3-36 63.9-87.9 63.9-143.1l0-5.4zM104 144a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"],\n \"turn-down\": [384, 512, [10549, \"level-down-alt\"], \"f3be\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S332.9 320 320 320l-64 0 0-160C256 71.6 184.4 0 96 0L32 0C14.3 0 0 14.3 0 32L0 96c0 17.7 14.3 32 32 32l64 0c17.7 0 32 14.3 32 32l0 160-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l128 128z\"],\n \"up-right-and-down-left-from-center\": [512, 512, [\"expand-alt\"], \"f424\", \"M344 0L488 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S334.3 0 344 0zM168 512L24 512c-13.3 0-24-10.7-24-24L0 344c0-9.7 5.8-18.5 14.8-22.2S34.1 320.2 41 327l39 39 87-87c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S177.7 512 168 512z\"],\n \"user-tag\": [640, 512, [], \"f507\", \"M256.1 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.4 304l59.4 0c6.7 0 13.2 .4 19.7 1.1-.9 4.9-1.4 9.9-1.4 15l0 92.1c0 25.5 10.1 49.9 28.1 67.9l31.9 31.9-286.3 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zM352.1 412.2l0-92.1c0-17.7 14.3-32 32-32l92.1 0c12.7 0 24.9 5.1 33.9 14.1l96 96c18.7 18.7 18.7 49.1 0 67.9l-76.1 76.1c-18.7 18.7-49.1 18.7-67.9 0l-96-96c-9-9-14.1-21.2-14.1-33.9zm104-44.2a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"hand-sparkles\": [640, 512, [], \"e05d\", \"M320 0c17.7 0 32 14.3 32 32l0 208c0 8.8 7.2 16 16 16s16-7.2 16-16l0-176c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-112c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.2c-19.2 5.4-34.7 20.4-40.4 40.3l-6.5 22.7-22.7 6.5c-25.2 7.2-42.5 30.2-42.5 56.4 0 22.1 12.4 42 31.4 51.9-27.5 17.8-60.2 28.1-95.4 28.1l-19.2 0c-59.6 0-116.9-22.9-160-64L76.4 341c-16-15.2-16.6-40.6-1.4-56.6s40.6-16.6 56.6-1.4l60.5 57.6c0-1.5-.1-3.1-.1-4.6l0-272c0-17.7 14.3-32 32-32s32 14.3 32 32l0 176c0 8.8 7.2 16 16 16s16-7.2 16-16l0-208c0-17.7 14.3-32 32-32zm-7.3 326.6c-1.1-3.9-4.7-6.6-8.7-6.6s-7.6 2.7-8.7 6.6l-7.3 25.4-25.4 7.3c-3.9 1.1-6.6 4.7-6.6 8.7s2.7 7.6 6.6 8.7l25.4 7.3 7.3 25.4c1.1 3.9 4.7 6.6 8.7 6.6s7.6-2.7 8.7-6.6l7.3-25.4 25.4-7.3c3.9-1.1 6.6-4.7 6.6-8.7s-2.7-7.6-6.6-8.7l-25.4-7.3-7.3-25.4zM104 120l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L104 168 90.2 216.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L56 168 7.7 154.2C3.1 152.9 0 148.7 0 144s3.1-8.9 7.7-10.2L56 120 69.8 71.7C71.1 67.1 75.3 64 80 64s8.9 3.1 10.2 7.7L104 120zM584 408l48.3 13.8c4.6 1.3 7.7 5.5 7.7 10.2s-3.1 8.9-7.7 10.2L584 456 570.2 504.3c-1.3 4.6-5.5 7.7-10.2 7.7s-8.9-3.1-10.2-7.7L536 456 487.7 442.2c-4.6-1.3-7.7-5.5-7.7-10.2s3.1-8.9 7.7-10.2L536 408 549.8 359.7c1.3-4.6 5.5-7.7 10.2-7.7s8.9 3.1 10.2 7.7L584 408z\"],\n \"arrows-to-dot\": [512, 512, [], \"e4be\", \"M256 0c17.7 0 32 14.3 32 32l0 32 32 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-9.2-9.2-11.9-22.9-6.9-34.9S179.1 64 192 64l32 0 0-32c0-17.7 14.3-32 32-32zM169.4 393.4l64-64c12.5-12.5 32.8-12.5 45.3 0l64 64c9.2 9.2 11.9 22.9 6.9 34.9S332.9 448 320 448l-32 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9zM32 224l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c12.5 12.5 12.5 32.8 0 45.3l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S64 332.9 64 320l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm297.4 54.6c-12.5-12.5-12.5-32.8 0-45.3l64-64c9.2-9.2 22.9-11.9 34.9-6.9S448 179.1 448 192l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 32c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-64-64zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"face-sad-cry\": [512, 512, [128557, \"sad-cry\"], \"f5b3\", \"M352 493.4c-29.6 12-62.1 18.6-96 18.6s-66.4-6.6-96-18.6L160 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 171.7C44.4 421.6 0 344 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 88-44.4 165.6-112 211.7L400 296c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 197.4zM152 196l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm172 20c0-11 9-20 20-20l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20zM208 336l0 32c0 26.5 21.5 48 48 48s48-21.5 48-48l0-32c0-26.5-21.5-48-48-48s-48 21.5-48 48z\"],\n \"dong-sign\": [384, 512, [], \"e169\", \"M288-16c-17.7 0-32 14.3-32 32l0 32-104 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l104 0 0 72.2c-22.9-15.3-50.4-24.2-80-24.2-79.5 0-144 64.5-144 144S96.5 432 176 432c30 0 57.8-9.1 80.8-24.8 3.3 14.2 16 24.8 31.2 24.8 17.7 0 32-14.3 32-32l0-304 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-32c0-17.7-14.3-32-32-32zM96 288a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM24 464c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 464z\"],\n \"people-line\": [576, 512, [], \"e534\", \"M288 0a64 64 0 1 1 0 128 64 64 0 1 1 0-128zm96 312c0 25-12.7 47-32 59.9l0 44.1-128 0 0-44.1C204.7 359 192 337 192 312l0-40c0-53 43-96 96-96s96 43 96 96l0 40zm16 104l0-27.3c19.9-22.5 32-52.2 32-84.7l0-32c0-26.7-7.3-51.6-19.9-73.1 11.1-4.5 23.2-6.9 35.9-6.9 53 0 96 43 96 96l0 32c0 23.7-12.9 44.4-32 55.4l0 40.6-112 0zM64 375.4C44.9 364.4 32 343.7 32 320l0-32c0-53 43-96 96-96 12.7 0 24.8 2.5 35.9 6.9-12.6 21.4-19.9 46.4-19.9 73.1l0 32c0 32.5 12.1 62.1 32 84.7l0 27.3-112 0 0-40.6zM128 32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm320 0a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM24 464l528 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"square-rss\": [448, 512, [\"rss-square\"], \"f143\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM96 136c0-13.3 10.7-24 24-24 137 0 248 111 248 248 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-110.5-89.5-200-200-200-13.3 0-24-10.7-24-24zm0 96c0-13.3 10.7-24 24-24 83.9 0 152 68.1 152 152 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-57.4-46.6-104-104-104-13.3 0-24-10.7-24-24zm0 120a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"calendar-minus\": [448, 512, [], \"f272\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm24 264c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"chart-diagram\": [512, 512, [], \"e695\", \"M80 32C53.5 32 32 53.5 32 80s21.5 48 48 48l152 0 0 40-48 48-72 0c-39.8 0-72 32.2-72 72l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-13.3 10.7-24 24-24l72 0 48 48 0 40-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-40 48-48 72 0c13.3 0 24 10.7 24 24l0 64-8 0c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-8 0 0-64c0-39.8-32.2-72-72-72l-72 0-48-48 0-40 152 0c26.5 0 48-21.5 48-48s-21.5-48-48-48L80 32z\"],\n \"face-tired\": [512, 512, [128555, \"tired\"], \"f5c8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM164.7 328.7c22-22 53.9-40.7 91.3-40.7s69.3 18.7 91.3 40.7c11.1 11.1 20.1 23.4 26.4 35.4 6.2 11.7 10.3 24.4 10.3 35.9 0 5.2-2.6 10.2-6.9 13.2s-9.8 3.7-14.7 1.8l-20.5-7.7c-26.9-10.1-55.5-15.3-84.3-15.3l-3.2 0c-28.8 0-57.3 5.2-84.3 15.3L149.6 415c-4.9 1.8-10.4 1.2-14.7-1.8S128 405.2 128 400c0-11.6 4.2-24.2 10.3-35.9 6.3-12 15.3-24.3 26.4-35.4zM122.6 159.2c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 208 125.8 180.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 208 386.2 235.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"],\n \"hand-point-right\": [512, 512, [], \"f0a4\", \"M480 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-208 0 0-64 208 0zM320 288c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm64-64c0 17.7-14.3 32-32 32l-48 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l48 0c17.7 0 32 14.3 32 32zM288 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0zm-88-96l.6 0c-5.4 9.4-8.6 20.3-8.6 32 0 13.2 4 25.4 10.8 35.6-24.9 8.7-42.8 32.5-42.8 60.4 0 11.7 3.1 22.6 8.6 32l-8.6 0C71.6 448 0 376.4 0 288l0-61.7c0-42.4 16.9-83.1 46.9-113.1l11.6-11.6C82.5 77.5 115.1 64 149 64l27 0c35.3 0 64 28.7 64 64l0 88c0 22.1-17.9 40-40 40s-40-17.9-40-40l0-56c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 56c0 39.8 32.2 72 72 72z\"],\n \"arrow-up\": [384, 512, [8593], \"f062\", \"M214.6 17.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L160 117.3 160 488c0 17.7 14.3 32 32 32s32-14.3 32-32l0-370.7 105.4 105.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160z\"],\n \"cubes-stacked\": [512, 512, [], \"e4e6\", \"M192 32c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64zm32 352l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm192 0l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zM320 192l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm-182.6-3.9c12.5-12.5 32.8-12.5 45.3 0l45.3 45.3c12.5 12.5 12.5 32.8 0 45.3l-45.3 45.3c-12.5 12.5-32.8 12.5-45.3 0L92.1 278.6c-12.5-12.5-12.5-32.8 0-45.3l45.3-45.3zM32 384l64 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"],\n \"child-combatant\": [576, 512, [\"child-rifle\"], \"e4e0\", \"M176.5 128a64 64 0 1 0 0-128 64 64 0 1 0 0 128zm-16 352l0-96 32 0 0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-192.2 20.9 33.2c9.4 15 29.2 19.4 44.1 10s19.4-29.2 10-44.1l-39.9-63.3C266.8 184 223.3 160 176.5 160S86.2 184 61.3 223.6L21.4 287c-9.4 15-4.9 34.7 10 44.1s34.7 4.9 44.1-10l20.9-33.2 0 192.2c0 17.7 14.3 32 32 32s32-14.3 32-32zM448.5 0l-32 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7l0-116.3c0-8.8-7.2-16-16-16z\"],\n \"vest-patches\": [448, 512, [], \"e086\", \"M200 293.9L200 464c0 26.5-21.5 48-48 48L48 512c-26.5 0-48-21.5-48-48L0 270.5c0-9.5 2.8-18.7 8.1-26.6l47.9-71.8c5.3-7.9 8.1-17.1 8.1-26.6L64 48C64 21.5 85.5 0 112 0l3.5 0c.3 0 .6 0 1 0 .6 0 1.2 0 1.8 0 18.8 0 34.1 9.7 44.1 18.8 9.3 8.4 28.5 21.2 61.7 21.2s52.4-12.8 61.7-21.2c10-9.1 25.3-18.8 44.1-18.8 .6 0 1.2 0 1.8 0 .3 0 .6 0 1 0L336 0c26.5 0 48 21.5 48 48l0 97.5c0 9.5 2.8 18.7 8.1 26.6l47.9 71.8c5.3 7.9 8.1 17.1 8.1 26.6L448 464c0 26.5-21.5 48-48 48l-104 0c-26.5 0-48-21.5-48-48l0-170.1c0-3.9 .5-7.8 1.4-11.6L303.6 65.4C285.9 77.2 259.8 88 224 88s-61.9-10.8-79.6-22.6l54.2 216.8c1 3.8 1.4 7.7 1.4 11.6zM96 456a40 40 0 1 0 0-80 40 40 0 1 0 0 80zM63.5 255.5c-4.7 4.7-4.7 12.3 0 17L79 288 63.5 303.5c-4.7 4.7-4.7 12.3 0 17s12.3 4.7 17 0L96 305 111.5 320.5c4.7 4.7 12.3 4.7 17 0s4.7-12.3 0-17L113 288 128.5 272.5c4.7-4.7 4.7-12.3 0-17s-12.3-4.7-17 0L96 271 80.5 255.5c-4.7-4.7-12.3-4.7-17 0zM304 280l0 40c0 8.8 7.2 16 16 16l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-8 0 0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n \"martini-glass-empty\": [512, 512, [\"glass-martini\"], \"f000\", \"M32 32C19.1 32 7.4 39.8 2.4 51.8S.2 77.5 9.4 86.6l214.6 214.6 0 146.7-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-146.7 214.6-214.6c9.2-9.2 11.9-22.9 6.9-34.9S492.9 32 480 32L32 32zM256 242.7L109.3 96 402.7 96 256 242.7z\"],\n \"magnet\": [448, 512, [129522], \"f076\", \"M0 176L0 288C0 411.7 100.3 512 224 512S448 411.7 448 288l0-112-128 0 0 112c0 53-43 96-96 96s-96-43-96-96l0-112-128 0zm0-48l128 0 0-64c0-17.7-14.3-32-32-32L32 32C14.3 32 0 46.3 0 64l0 64zm320 0l128 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 64z\"],\n \"road-barrier\": [640, 512, [], \"e562\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 266.3 149.2 96 64 96 64 64c0-17.7-14.3-32-32-32zM405.2 96l-74.3 0-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3zM362.8 288l74.3 0 5.4-10.7 90.6-181.3-74.3 0-5.4 10.7-90.6 181.3zM202.8 96l-5.4 10.7-90.6 181.3 74.3 0 5.4-10.7 90.6-181.3-74.3 0zm288 192l85.2 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.7-85.2 170.3z\"],\n \"compass-drafting\": [512, 512, [\"drafting-compass\"], \"f568\", \"M99.3 256.1l69.4-119.9c-5.6-12.2-8.8-25.8-8.8-40.2 0-53 43-96 96-96s96 43 96 96c0 14.3-3.1 27.9-8.8 40.2l44.4 76.7c-23.1 26-53.7 45.1-88.4 53.8L256 191.9 187.9 309.5c21.5 6.8 44.3 10.5 68.1 10.5 70.7 0 133.8-32.7 174.9-84 11.1-13.8 31.2-16 45-5s16 31.2 5 45c-52.7 65.8-133.9 108-224.8 108-35.4 0-69.4-6.4-100.7-18.1L98.7 463.7C94 471.8 87 478.4 78.6 482.6L23.2 510.3c-5 2.5-10.9 2.2-15.6-.7S0 501.5 0 496l0-55.4c0-8.4 2.2-16.7 6.5-24.1l60-103.7c-12.8-11.2-24.6-23.5-35.3-36.8-11.1-13.8-8.8-33.9 5-45s33.9-8.8 45 5c5.7 7.1 11.8 13.8 18.2 20.1zM381.1 407.9c32.5-13 62.4-31 88.9-52.9l35.6 61.5c4.2 7.3 6.5 15.6 6.5 24.1l0 55.4c0 5.5-2.9 10.7-7.6 13.6s-10.6 3.2-15.6 .7l-55.4-27.7c-8.4-4.2-15.4-10.8-20.1-18.9l-32.3-55.8zM256 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"square-person-confined\": [448, 512, [], \"e577\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm96 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm80 104c0-30.9 25.1-56 56-56s56 25.1 56 56l0 102.1c0 36.4-29.5 65.9-65.9 65.9-17.5 0-34.3-6.9-46.6-19.3l-54.7-54.7-28.1 56.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l48-96c4.6-9.2 13.3-15.6 23.5-17.3s20.5 1.7 27.8 9l41.4 41.4 0-58.7z\"],\n \"plate-wheat\": [512, 512, [], \"e55a\", \"M176 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zM56 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S42.7 64 56 64zM24 136l112 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 184c-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 96c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM272 48c0-8.8 7.2-16 16-16 44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16zM400 32c44.2 0 80 35.8 80 80l0 16c0 8.8-7.2 16-16 16-44.2 0-80-35.8-80-80l0-16c0-8.8 7.2-16 16-16zm80 160l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM352 176c8.8 0 16 7.2 16 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80zm-96 16l0 16c0 44.2-35.8 80-80 80-8.8 0-16-7.2-16-16l0-16c0-44.2 35.8-80 80-80 8.8 0 16 7.2 16 16zM3.5 347.6C1.6 332.9 13 320 27.8 320l456.4 0c14.8 0 26.2 12.9 24.4 27.6-6.3 50.2-44.4 89.4-92.6 98.4l0 2c0 17.7-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32l0-2c-48.2-9-86.3-48.2-92.5-98.4z\"],\n \"sign-hanging\": [512, 512, [\"sign\"], \"f4d9\", \"M96 0c17.7 0 32 14.3 32 32l0 32 352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-352 0 0 352c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-352-32 0C14.3 128 0 113.7 0 96S14.3 64 32 64l32 0 0-32C64 14.3 78.3 0 96 0zM208 176l240 0c17.7 0 32 14.3 32 32l0 144c0 17.7-14.3 32-32 32l-240 0c-17.7 0-32-14.3-32-32l0-144c0-17.7 14.3-32 32-32z\"],\n \"car-battery\": [512, 512, [\"battery-car\"], \"f5df\", \"M80 64c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l96 0c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l16 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l16 0zM392 184c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32zM64 240c0 13.3 10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 216c-13.3 0-24 10.7-24 24z\"],\n \"shirt\": [640, 512, [128085, \"t-shirt\", \"tshirt\"], \"f553\", \"M320.2 112c44.2 0 80-35.8 80-80l53.5 0c17 0 33.3 6.7 45.3 18.7L617.6 169.4c12.5 12.5 12.5 32.8 0 45.3l-50.7 50.7c-12.5 12.5-32.8 12.5-45.3 0l-41.4-41.4 0 224c0 35.3-28.7 64-64 64l-192 0c-35.3 0-64-28.7-64-64l0-224-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0L22.9 214.6c-12.5-12.5-12.5-32.8 0-45.3L141.5 50.7c12-12 28.3-18.7 45.3-18.7l53.5 0c0 44.2 35.8 80 80 80z\"],\n \"paragraph\": [448, 512, [182], \"f1dd\", \"M160 0L416 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-416-48 0 0 416c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160-48 0C71.6 320 0 248.4 0 160S71.6 0 160 0z\"],\n \"envelopes-bulk\": [576, 512, [\"mail-bulk\"], \"f674\", \"M112 0C85.5 0 64 21.5 64 48l0 160 80 0 0-32c0-53 43-96 96-96l208 0 0-32c0-26.5-21.5-48-48-48L112 0zM240 128c-26.5 0-48 21.5-48 48l0 32 80 0c53 0 96 43 96 96l0 112 160 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-288 0zm200 64l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zM48 256c-26.5 0-48 21.5-48 48l0 10.4 156.6 86.2c1.1 .6 2.2 .9 3.4 .9s2.4-.3 3.4-.9L320 314.4 320 304c0-26.5-21.5-48-48-48L48 256zM320 369.2L186.6 442.6c-8.1 4.5-17.3 6.8-26.6 6.8s-18.4-2.4-26.6-6.8L0 369.2 0 464c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-94.8z\"],\n \"guitar\": [512, 512, [], \"f7a6\", \"M465 7c-9.4-9.4-24.6-9.4-33.9 0L383 55c-2.4 2.4-4.3 5.3-5.5 8.5l-15.4 41-77.5 77.6c-45.1-29.4-99.3-30.2-131 1.6-11 11-18 24.6-21.4 39.6-3.7 16.6-19.1 30.7-36.1 31.6-25.6 1.3-49.3 10.7-67.3 28.6-44.8 44.8-36.4 125.8 18.7 180.9S183.6 528 228.4 483.2c17.9-17.9 27.4-41.7 28.6-67.3 .9-17 15-32.3 31.6-36.1 15-3.4 28.6-10.5 39.6-21.4 31.8-31.8 31-85.9 1.6-131l77.6-77.6 41-15.4c3.2-1.2 6.1-3.1 8.5-5.5l48-48c9.4-9.4 9.4-24.6 0-33.9L465 7zM208 256a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\n \"suitcase\": [512, 512, [129523], \"f0f2\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 424 224 0 0-424c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM416 96l0 384 32 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-32 0zM96 480l0-384-32 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l32 0z\"],\n \"circle-up\": [512, 512, [61467, \"arrow-alt-circle-up\"], \"f35b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm11.3-387.3l104 104c4.6 4.6 5.9 11.5 3.5 17.4S366.5 256 360 256l-56 0 0 96c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96-56 0c-6.5 0-12.3-3.9-14.8-9.9s-1.1-12.9 3.5-17.4l104-104c6.2-6.2 16.4-6.2 22.6 0z\"],\n \"f\": [320, 512, [102], \"46\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"],\n \"xmarks-lines\": [640, 512, [], \"e59a\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l576 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416zM7 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0zM265 167c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55zM455 167c-9.4 9.4-9.4 24.6 0 33.9l55 55-55 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l55-55 55 55c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-55-55 55-55c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-55 55-55-55c-9.4-9.4-24.6-9.4-33.9 0z\"],\n \"earth-oceania\": [512, 512, [\"globe-oceania\"], \"e47b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 150.6c0-12.5 10.1-22.6 22.6-22.6l41.4 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.7 0c-8.5 0-16.6-3.4-22.6-9.4l-16-16c-4.2-4.2-6.6-10-6.6-16zM432 256c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM411.3 379.3l-32 32c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l32-32c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6zM224 432c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zm-96-80c-17.7 0-32-14.3-32-32l0-18.7c0-8.5 3.4-16.6 9.4-22.6l48-48c4.2-4.2 10-6.6 16-6.6l6.6 0c8.8 0 16 7.2 16 16s7.2 16 16 16 16-7.2 16-16 7.2-16 16-16l6.6 0c6 0 11.8 2.4 16 6.6l48 48c6 6 9.4 14.1 9.4 22.6l0 50.7c0 17.7-14.3 32-32 32l-50.7 0c-8.5 0-16.6-3.4-22.6-9.4l-13.3-13.3c-6-6-14.1-9.4-22.6-9.4L128 352z\"],\n \"comment-slash\": [576, 512, [], \"f4b3\", \"M41-25C31.6-34.3 16.4-34.3 7-25S-2.3-.4 7 9L535 537c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.6-96.6c44.4-43.2 71.6-101.8 71.6-166.5 0-132.5-114.6-240-256-240-63 0-120.8 21.4-165.4 56.8L41-25zm19.4 155C42.2 163 32 200.3 32 239.9 32 294.2 51.2 344.2 83.6 384.4L34.8 476.7c-4.8 9-3.3 20 3.6 27.5S56.1 514 65.5 510l118.4-50.7c31.8 13.3 67.1 20.7 104.1 20.7 36.4 0 70.9-7.1 102.3-19.9L60.3 130.1z\"],\n \"play\": [448, 512, [9654], \"f04b\", \"M91.2 36.9c-12.4-6.8-27.4-6.5-39.6 .7S32 57.9 32 72l0 368c0 14.1 7.5 27.2 19.6 34.4s27.2 7.5 39.6 .7l336-184c12.8-7 20.8-20.5 20.8-35.1s-8-28.1-20.8-35.1l-336-184z\"],\n \"vial-circle-check\": [512, 512, [], \"e596\", \"M32 32C32 14.3 46.3 0 64 0L288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 161.4c-66.1 30.3-112 97.1-112 174.6 0 39.7 12 76.6 32.7 107.2-10.3 3.1-21.3 4.8-32.7 4.8-61.9 0-112-50.1-112-112L64 64C46.3 64 32 49.7 32 32zm96 32l0 128 96 0 0-128-96 0zm96 336a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"],\n \"bridge-circle-check\": [576, 512, [], \"e4c9\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l8 0 0 64-40 0 0 112c37.6 9.4 64 43.2 64 82l0 94c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-64c0-53 43-96 96-96 6.4 0 12.7 .6 18.7 1.8 34.7-49.5 92.2-81.8 157.3-81.8 28.6 0 55.6 6.2 80 17.4l0-65.4-40 0 0-64 8 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zM424 96l0 64-80 0 0-64 80 0zM296 96l0 64-80 0 0-64 80 0zM88 96l80 0 0 64-80 0 0-64zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"cedi-sign\": [384, 512, [], \"e0df\", \"M232 32c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 26.5C88.8 73.9 16 156.4 16 256S88.8 438.1 184 453.5l0 26.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24.6c46.8-3.7 89.1-23.6 121.3-53.9 12.9-12.1 13.4-32.4 1.3-45.2s-32.4-13.4-45.2-1.3c-20.7 19.6-47.6 32.7-77.3 36.2l0-270.1c29.8 3.5 56.6 16.6 77.3 36.2 12.9 12.1 33.1 11.5 45.2-1.3s11.5-33.1-1.3-45.2C321.1 80.2 278.8 60.3 232 56.6L232 32zm-48 91.8l0 264.4C124.3 373.8 80 320.1 80 256s44.3-117.8 104-132.2z\"],\n \"puzzle-piece\": [512, 512, [129513], \"f12e\", \"M224 0c35.3 0 64 21.5 64 48 0 10.4-4.4 20-12 27.9-6.6 6.9-12 15.3-12 24.9 0 15 12.2 27.2 27.2 27.2l44.8 0c26.5 0 48 21.5 48 48l0 44.8c0 15 12.2 27.2 27.2 27.2 9.5 0 18-5.4 24.9-12 7.9-7.5 17.5-12 27.9-12 26.5 0 48 28.7 48 64s-21.5 64-48 64c-10.4 0-20.1-4.4-27.9-12-6.9-6.6-15.3-12-24.9-12-15 0-27.2 12.2-27.2 27.2L384 464c0 26.5-21.5 48-48 48l-56.8 0c-12.8 0-23.2-10.4-23.2-23.2 0-9.2 5.8-17.3 13.2-22.8 11.6-8.7 18.8-20.7 18.8-34 0-26.5-28.7-48-64-48s-64 21.5-64 48c0 13.3 7.2 25.3 18.8 34 7.4 5.5 13.2 13.5 13.2 22.8 0 12.8-10.4 23.2-23.2 23.2L48 512c-26.5 0-48-21.5-48-48L0 343.2c0-12.8 10.4-23.2 23.2-23.2 9.2 0 17.3 5.8 22.8 13.2 8.7 11.6 20.7 18.8 34 18.8 26.5 0 48-28.7 48-64s-21.5-64-48-64c-13.3 0-25.3 7.2-34 18.8-5.5 7.4-13.5 13.2-22.8 13.2-12.8 0-23.2-10.4-23.2-23.2L0 176c0-26.5 21.5-48 48-48l108.8 0c15 0 27.2-12.2 27.2-27.2 0-9.5-5.4-18-12-24.9-7.5-7.9-12-17.5-12-27.9 0-26.5 28.7-48 64-48z\"],\n \"helmet-un\": [512, 512, [], \"e503\", \"M479.5 224C471.2 98.9 367.2 0 240 0 107.5 0 0 107.5 0 240l0 56.3C0 344.8 39.2 384 87.7 384l127.3 0 128.6 121.4c4.5 4.2 10.4 6.6 16.5 6.6l96 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.5 0-1.5-1.5 0-174.5 112 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-.5 0zM320 417.2l-78-73.7 32.4-55.5 45.6 0 0 129.2zM285.3 103.1l34.7 52 0-43.2c0-8.8 7.2-16 16-16s16 7.2 16 16l0 96c0 7.1-4.6 13.3-11.4 15.3s-14-.6-17.9-6.4l-34.7-52 0 43.2c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-96c0-7.1 4.6-13.3 11.4-15.3s14 .6 17.9 6.4zM160 112l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16l0 64c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-64c0-8.8 7.2-16 16-16s16 7.2 16 16z\"],\n \"glass-water\": [384, 512, [], \"e4f4\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM73 156.5l-6.6-92.5 251.3 0-6.6 92.5-24.2 12.1c-19.4 9.7-42.2 9.7-61.6 0-20.9-10.4-45.5-10.4-66.4 0-19.4 9.7-42.2 9.7-61.6 0L73 156.5z\"],\n \"heart-circle-bolt\": [576, 512, [], \"e4fc\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm177.4-77c-5.8-4.2-13.8-4-19.4 .5l-80 64c-5.3 4.2-7.4 11.4-5.1 17.8S369.2 416 376 416l32.9 0-15.9 42.4c-2.5 6.7-.2 14.3 5.6 18.6s13.8 4 19.4-.5l80-64c5.3-4.2 7.4-11.4 5.1-17.8S494.8 384 488 384l-32.9 0 15.9-42.4c2.5-6.7 .2-14.3-5.6-18.6z\"],\n \"pump-soap\": [320, 512, [], \"e06b\", \"M96 0l0 80 128 0 0-24 72 0c13.3 0 24-10.7 24-24S309.3 8 296 8l-72 0 0-8c0-17.7-14.3-32-32-32l-64 0C110.3-32 96-17.7 96 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zM224 344c0 35.3-28.7 56-64 56s-64-20.7-64-56c0-32.5 37-80.9 50.9-97.9 3.2-3.9 8.1-6.1 13.1-6.1s9.9 2.2 13.1 6.1C187 263.1 224 311.5 224 344z\"],\n \"hand-scissors\": [512, 512, [], \"f257\", \"M40 208c-22.1 0-40 17.9-40 40s17.9 40 40 40l180.2 0c-7.6 8.5-12.2 19.7-12.2 32 0 25.3 19.5 46 44.3 47.9-7.7 8.5-12.3 19.8-12.3 32.1 0 26.5 21.5 48 48 48l96 0c70.7 0 128-57.3 128-128l0-113.1c0-40.2-16-78.8-44.4-107.3-22.8-22.8-53.6-35.6-85.8-35.6L336 64c-21.3 0-39.3 13.9-45.6 33.1l74.5 23.7c8.4 2.7 13.1 11.7 10.4 20.1s-11.7 13.1-20.1 10.4l-67.1-21.4 0 .1-204-64.1C62.9 59.2 40.5 70.9 33.9 92s5.1 43.5 26.2 50.2L269.5 208 40 208z\"],\n \"dolly\": [576, 512, [\"dolly-box\"], \"f472\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l72.9 0 92.1 276.2c-22.5 17.6-37 45-37 75.8 0 53 43 96 96 96 52.4 0 95.1-42 96-94.3l202.1-67.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2L331.8 357c-17.2-22.1-43.9-36.5-74-37L165.7 43.8C156.9 17.6 132.5 0 104.9 0L32 0zM208 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM280.5 89.3c-25.2 8.2-39 35.3-30.8 60.5l39.6 121.7c8.2 25.2 35.3 39 60.5 30.8l121.7-39.6c25.2-8.2 39-35.3 30.8-60.5L462.8 80.5c-8.2-25.2-35.3-39-60.5-30.8L280.5 89.3z\"],\n \"paperclip\": [512, 512, [128206], \"f0c6\", \"M224.6 12.8c56.2-56.2 147.4-56.2 203.6 0s56.2 147.4 0 203.6l-164 164c-34.4 34.4-90.1 34.4-124.5 0s-34.4-90.1 0-124.5L292.5 103.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L185 301.3c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l164-164c31.2-31.2 31.2-81.9 0-113.1s-81.9-31.2-113.1 0l-164 164c-53.1 53.1-53.1 139.2 0 192.3s139.2 53.1 192.3 0L428.3 284.3c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L343.4 459.6c-78.1 78.1-204.7 78.1-282.8 0s-78.1-204.7 0-282.8l164-164z\"],\n \"democrat\": [640, 512, [], \"f747\", \"M64 32c0-8.9 3.8-20.9 6.2-27.3 1-2.8 3.8-4.7 6.8-4.7 1.9 0 3.8 .7 5.2 2.1L128 45.7 173.8 2.1c1.4-1.3 3.2-2.1 5.2-2.1 3 0 5.8 1.8 6.8 4.7 2.4 6.5 6.2 18.4 6.2 27.3 0 26.5-21.9 42-29.5 46.6l76.2 72.6c6 5.7 13.9 8.8 22.1 8.8l219.2 0 32 0c40.3 0 78.2 19 102.4 51.2l19.2 25.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4l-19.2-25.6c-5.3-7-11.8-12.8-19.2-17l0 87.4-352 0-40.4-94.3c-3.9-9.2-15.3-12.6-23.6-7l-42.1 28c-9.1 6.1-19.7 9.3-30.7 9.3l-2 0C23.9 256 0 232.1 0 202.7 0 190.6 4.1 178.9 11.7 169.4L87.6 74.6C78.1 67.4 64 53.2 64 32zM544 352l0 128c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-64-160 0 0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-128 352 0zM256 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm248-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM368 280a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"square-arrow-up-right\": [448, 512, [\"external-link-square\"], \"f14c\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM272 296c0 13.3 10.7 24 24 24s24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-112 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l54.1 0-103 103c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l103-103 0 54.1z\"],\n \"ferry\": [640, 512, [], \"e4ea\", \"M224 32c0-17.7 14.3-32 32-32L384 0c17.7 0 32 14.3 32 32l0 32 48 0c44.2 0 80 35.8 80 80l0 128-.1 0c.1 .7 .1 1.3 .1 2 0 30.2-7.6 59.8-22 86.3l-12.7 23.3-.6 1c-22.3-11.3-46.5-16.8-70.8-16.7-32.5 .2-64.9 10.7-92.4 31.4-22.1 16.6-29.1 16.6-51.2 0-28.1-21.1-61.3-31.6-94.4-31.4-23.6 .2-47.1 5.7-68.7 16.7l-.6-1-12.7-23.3c-14.4-26.5-22-56.2-22-86.3 0-.7 0-1.4 .1-2l-.1 0 0-128c0-44.2 35.8-80 80-80l48 0 0-32zM160 256l320 0 0-112c0-8.8-7.2-16-16-16l-288 0c-8.8 0-16 7.2-16 16l0 112zM403.4 476.1C379.1 494.3 351.1 512 320 512s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"],\n \"mosquito\": [576, 512, [], \"e52b\", \"M178.5 495.2c-7.5 9.6-21 12.1-31.3 5.3S133.5 480 138.9 469l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.8-38.3-2.4-2.4c-5.3-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.3-2.1c-5.8-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8c0-11.8 6.5-22.1 16-27.7l0-60.5 .3-3.3c1.5-7.3 8-12.7 15.7-12.7s14.2 5.5 15.7 12.7l.3 3.2 0 60.5c9.6 5.5 16 15.8 16 27.7l0 28.9 53.4-45.8-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 46.6-37.8 84.4-84.4 84.4l-8.1 0c-22.8 0-44.9-8.5-61.9-23.8l-66.1-59.5 39.2 52.2c2.4 3.2 4 7 4.6 10.9l.3 4 0 41 36.2 58 1.2 2.1c5.4 11 2 24.7-8.3 31.5s-23.8 4.4-31.3-5.3l-1.4-2-40-64-1.6-3.1c-1.4-3.1-2.1-6.6-2.1-10.1l0-39.8-32.4-43.1 0 74.7c0 17.7-14.3 32-32 32-17.7 0-32-14.3-32-32l0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2z\"],\n \"building-circle-arrow-right\": [576, 512, [], \"e4d1\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 144.7c-35.7 2.9-68.5 15.6-96 35.4l0-4c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l4 0c-13.8 19.2-24.1 41-30.1 64.5-1.9-.4-3.9-.5-5.9-.5l-32 0c-17.7 0-32 14.3-32 32l0 80 74.9 0c6.1 17.3 14.6 33.4 25.1 48L96 512c-35.3 0-64-28.7-64-64L32 64zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm140.7-67.3c-6.2 6.2-6.2 16.4 0 22.6l28.7 28.7-89.4 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l89.4 0-28.7 28.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56-56c6.2-6.2 6.2-16.4 0-22.6l-56-56c-6.2-6.2-16.4-6.2-22.6 0z\"],\n \"left-right\": [512, 512, [8596, \"arrows-alt-h\"], \"f337\", \"M502.6 406.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 492.9 352 480l0-64-320 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zM9.4 150.6c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 19.1 160 32l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-96-96z\"],\n \"virus\": [512, 512, [], \"e074\", \"M296 40c0-22.1-17.9-40-40-40s-40 17.9-40 40c0 44.1-53.3 66.1-84.5 35-15.6-15.6-40.9-15.6-56.6 0s-15.6 40.9 0 56.6c31.2 31.2 9.1 84.5-35 84.5-22.1 0-40 17.9-40 40s17.9 40 40 40c44.1 0 66.1 53.3 35 84.5-15.6 15.6-15.6 40.9 0 56.6s40.9 15.6 56.6 0c31.2-31.2 84.5-9.1 84.5 35 0 22.1 17.9 40 40 40s40-17.9 40-40c0-44.1 53.3-66.1 84.5-35 15.6 15.6 40.9 15.6 56.6 0s15.6-40.9 0-56.6c-31.2-31.2-9.1-84.5 35-84.5 22.1 0 40-17.9 40-40s-17.9-40-40-40c-44.1 0-66.1-53.3-35-84.5 15.6-15.6 15.6-40.9 0-56.6s-40.9-15.6-56.6 0C349.3 106.1 296 84.1 296 40zM160 224a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm160 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"gem\": [512, 512, [128142], \"f3a5\", \"M116.7 33.8c4.5-6.1 11.7-9.8 19.3-9.8l240 0c7.6 0 14.8 3.6 19.3 9.8l112 152c6.8 9.2 6.1 21.9-1.5 30.4l-232 256c-4.5 5-11 7.9-17.8 7.9s-13.2-2.9-17.8-7.9l-232-256c-7.7-8.5-8.3-21.2-1.5-30.4l112-152zm38.5 39.8c-3.3 2.5-4.2 7-2.1 10.5L210.5 179.8 63.3 192c-4.1 .3-7.3 3.8-7.3 8s3.2 7.6 7.3 8l192 16c.4 0 .9 0 1.3 0l192-16c4.1-.3 7.3-3.8 7.3-8s-3.2-7.6-7.3-8l-147.2-12.3 57.4-95.6c2.1-3.5 1.2-8.1-2.1-10.5s-7.9-2-10.7 1L256 172.2 165.9 74.6c-2.8-3-7.4-3.4-10.7-1z\"],\n \"toilet\": [448, 512, [128701], \"f7d8\", \"M24 0C10.7 0 0 10.7 0 24S10.7 48 24 48l8 0 0 148.9c-1.9 1.4-3.8 2.9-5.6 4.4-15.5 13.2-26.4 31.6-26.4 54.6 0 46.9 14.3 84.1 37 112.5 14.2 17.7 31.1 31.3 48.5 41.8L65.6 469.9c-3.3 9.8-1.6 20.5 4.4 28.8S85.7 512 96 512l256 0c10.3 0 19.9-4.9 26-13.3s7.7-19.1 4.4-28.8l-19.8-59.5c17.4-10.5 34.3-24.1 48.5-41.8 22.7-28.4 37-65.5 37-112.5 0-23.1-10.9-41.5-26.4-54.6-1.8-1.5-3.7-3-5.6-4.4l0-148.9 8 0c13.3 0 24-10.7 24-24S437.3 0 424 0L24 0zM96 80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16zM224 288c-88.4 0-160-14.3-160-32s71.6-32 160-32 160 14.3 160 32-71.6 32-160 32z\"],\n \"single-quote-left\": [192, 512, [], \"e81b\", \"M128 96c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216C0 149.7 53.7 96 120 96l8 0z\"],\n \"money-bills\": [576, 512, [], \"e1f3\", \"M160 32c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l352 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64L160 32zm176 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM160 152l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 112c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM504 159.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM512 264l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM48 152c0-13.3-10.7-24-24-24S0 138.7 0 152L0 416c0 35.3 28.7 64 64 64l392 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L64 432c-8.8 0-16-7.2-16-16l0-264z\"],\n \"tablet-button\": [448, 512, [], \"f10a\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM224 400a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"rectangle-xmark\": [512, 512, [62164, \"rectangle-times\", \"times-rectangle\", \"window-close\"], \"f410\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM167 167c9.4-9.4 24.6-9.4 33.9 0l55 55 55-55c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-55 55 55 55c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-55-55-55 55c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l55-55-55-55c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"wrench\": [576, 512, [128295], \"f0ad\", \"M509.4 98.6c7.6-7.6 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 88.4-71.6 160-160 160-17.5 0-34.4-2.8-50.2-8L146.9 498.9c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8L232 210.2c-5.2-15.8-8-32.6-8-50.2 0-88.4 71.6-160 160-160 20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1l-88.7 88.7c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l88.7-88.7z\"],\n \"trash-can\": [448, 512, [61460, \"trash-alt\"], \"f2ed\", \"M136.7 5.9C141.1-7.2 153.3-16 167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm88 64c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24zm104 0c-13.3 0-24 10.7-24 24l0 192c0 13.3 10.7 24 24 24s24-10.7 24-24l0-192c0-13.3-10.7-24-24-24z\"],\n \"table-cells\": [448, 512, [\"th\"], \"f00a\", \"M384 96l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zm0 128l0 64-64 0 0-64 64 0zM256 288l-64 0 0-64 64 0 0 64zm-64 64l64 0 0 64-64 0 0-64zm-64-64l-64 0 0-64 64 0 0 64zM64 352l64 0 0 64-64 0 0-64zm0-192l0-64 64 0 0 64-64 0zm128 0l0-64 64 0 0 64-64 0zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"],\n \"ribbon\": [384, 512, [127895], \"f4d6\", \"M235.1 0c33.4 0 64.5 17.4 81.9 45.9 1.2 2 13 21.3 35.3 57.8 21.1 34.5 18.3 78.5-7 110L278.3 297.7 364.5 406c5.5 6.9 4.4 16.9-2.5 22.5l-80 64c-6.9 5.5-17 4.4-22.5-2.5L38.6 213.8C13.3 182.3 10.5 138.3 31.6 103.8 54 67.2 65.7 47.9 67 45.9 84.4 17.4 115.4 0 148.9 0l86.3 0zM192 189.2l48.6-61.2-97.3 0 48.6 61.2zM75 336.2l86.2 107.8-36.8 46c-5.5 6.9-15.6 8-22.5 2.5l-80-64c-6.9-5.5-8-15.6-2.5-22.5L75 336.2z\"],\n \"landmark-flag\": [512, 512, [], \"e51c\", \"M352-32L240-32c-8.8 0-16 7.2-16 16l0 144-176 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0 0 224-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-224 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-192 0 0-64 80 0c8.8 0 16-7.2 16-16l0-64c0-8.8-7.2-16-16-16zm48 224l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0zm-112 0l0 224-64 0 0-224 64 0z\"],\n \"up-down-left-right\": [512, 512, [\"arrows-alt\"], \"f0b2\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S179.1 128 192 128l32 0 0 96-96 0 0-32c0-12.9-7.8-24.6-19.8-29.6s-25.7-2.2-34.9 6.9l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c9.2 9.2 22.9 11.9 34.9 6.9S128 332.9 128 320l0-32 96 0 0 96-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S332.9 384 320 384l-32 0 0-96 96 0 0 32c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-9.2-9.2-22.9-11.9-34.9-6.9S384 179.1 384 192l0 32-96 0 0-96 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64z\"],\n \"car-side\": [640, 512, [128663], \"f5e4\", \"M147 106.7l-29.8 85.3 122.9 0 0-96-77.9 0c-6.8 0-12.9 4.3-15.1 10.7zM48.6 193.9L86.5 85.6C97.8 53.5 128.1 32 162.1 32L360 32c25.2 0 48.9 11.9 64 32l96.2 128.3C587.1 196.5 640 252.1 640 320l0 16c0 35.3-28.7 64-64 64l-16.4 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-144.7 0c-4 44.9-41.7 80-87.6 80s-83.6-35.1-87.6-80l-.4 0c-35.3 0-64-28.7-64-64l0-80c0-30.1 20.7-55.3 48.6-62.1zM440 192l-67.2-89.6c-3-4-7.8-6.4-12.8-6.4l-72 0 0 96 152 0zM152 432a40 40 0 1 0 0-80 40 40 0 1 0 0 80zm360-40a40 40 0 1 0 -80 0 40 40 0 1 0 80 0z\"],\n \"trash-arrow-up\": [448, 512, [\"trash-restore\"], \"f829\", \"M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0-21.1 323.1C393.3 492.4 372.3 512 347 512L101 512c-25.3 0-46.3-19.6-47.9-44.9L32 144zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"],\n \"life-ring\": [512, 512, [], \"f1cd\", \"M367.2 412.5C335.9 434.9 297.5 448 256 448s-79.9-13.1-111.2-35.5l58-58c15.8 8.6 34 13.5 53.3 13.5s37.4-4.9 53.3-13.5l58 58zm90.7 .8c33.8-43.4 54-98 54-157.3S491.8 142.1 458 98.7c9-12.5 7.9-30.1-3.4-41.3S425.8 45 413.3 54C369.9 20.2 315.3 0 256 0S142.1 20.2 98.7 54c-12.5-9-30.1-7.9-41.3 3.4S45 86.2 54 98.7C20.2 142.1 0 196.7 0 256S20.2 369.9 54 413.3c-9 12.5-7.9 30.1 3.4 41.3S86.2 467 98.7 458c43.4 33.8 98 54 157.3 54s113.9-20.2 157.3-54c12.5 9 30.1 7.9 41.3-3.4s12.4-28.8 3.4-41.3zm-45.5-46.1l-58-58c8.6-15.8 13.5-34 13.5-53.3s-4.9-37.4-13.5-53.3l58-58C434.9 176.1 448 214.5 448 256s-13.1 79.9-35.5 111.2zM367.2 99.5l-58 58c-15.8-8.6-34-13.5-53.3-13.5s-37.4 4.9-53.3 13.5l-58-58C176.1 77.1 214.5 64 256 64s79.9 13.1 111.2 35.5zM157.5 309.3l-58 58C77.1 335.9 64 297.5 64 256s13.1-79.9 35.5-111.2l58 58c-8.6 15.8-13.5 34-13.5 53.3s4.9 37.4 13.5 53.3zM208 256a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\n \"copyright\": [512, 512, [169], \"f1f9\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM205.1 306.9c28.1 28.1 73.7 28.1 101.8 0 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-46.9 46.9-122.8 46.9-169.7 0s-46.9-122.8 0-169.7 122.8-46.9 169.7 0c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-28.1-28.1-73.7-28.1-101.8 0s-28.1 73.7 0 101.8z\"],\n \"file-prescription\": [384, 512, [], \"f572\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 192c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 22.5 0 58.4 55-33.4 31.6c-9.6 9.1-10.1 24.3-.9 33.9s24.3 10.1 33.9 .9l35.4-33.5 35.6 33.5c9.7 9.1 24.8 8.6 33.9-1s8.6-24.8-1-33.9l-33.6-31.6 33.6-31.8c9.6-9.1 10.1-24.3 .9-33.9s-24.3-10.1-33.9-.9l-35.7 33.7-40.9-38.5c12.9-11.7 21.1-28.6 21.1-47.5 0-35.3-28.7-64-64-64l-56 0zm32 80l-8 0 0-32 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-24 0z\"],\n \"eraser\": [576, 512, [], \"f12d\", \"M178.5 416l123 0 65.3-65.3-173.5-173.5-126.7 126.7 112 112zM224 480l-45.5 0c-17 0-33.3-6.7-45.3-18.7L17 345C6.1 334.1 0 319.4 0 304s6.1-30.1 17-41L263 17C273.9 6.1 288.6 0 304 0s30.1 6.1 41 17L527 199c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41l-135 135 120 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0z\"],\n \"hourglass-start\": [384, 512, [\"hourglass-1\"], \"f251\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM288 437l0 11-192 0 0-11c0-25.5 10.1-49.9 28.1-67.9l67.9-67.9 67.9 67.9c18 18 28.1 42.4 28.1 67.9z\"],\n \"circle-left\": [512, 512, [61840, \"arrow-alt-circle-left\"], \"f359\", \"M512 256a256 256 0 1 0 -512 0 256 256 0 1 0 512 0zM124.7 244.7l104-104c4.6-4.6 11.5-5.9 17.4-3.5s9.9 8.3 9.9 14.8l0 56 96 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32l-96 0 0 56c0 6.5-3.9 12.3-9.9 14.8s-12.9 1.1-17.4-3.5l-104-104c-6.2-6.2-6.2-16.4 0-22.6z\"],\n \"cruzeiro-sign\": [448, 512, [], \"e152\", \"M240 96c-88.4 0-160 71.6-160 160 0 71.6 47.1 132.3 112 152.7L192 256c0-13.3 10.7-24 24-24 12.8 0 23.3 10.1 24 22.7 15.5-9.5 33.5-14.7 52.3-14.7l11.8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-11.8 0c-18.8 0-36.1 10-45.4 26.3-4.5 7.9-6.9 16.8-6.9 25.9l0 75.8c42.5 0 81.1-16.6 109.8-43.6 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C353.7 456.8 299.5 480 240 480 116.3 480 16 379.7 16 256S116.3 32 240 32c59.5 0 113.7 23.2 153.7 61.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3C321.1 112.6 282.5 96 240 96z\"],\n \"smoking\": [576, 512, [128684], \"f48d\", \"M360 0c13.3 0 24 10.7 24 24l0 19c0 40.3 16 79 44.5 107.5l21 21C469 191 480 217.4 480 245l0 19c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-19c0-14.9-5.9-29.1-16.4-39.6l-21-21C357.1 146.9 336 96 336 43l0-19c0-13.3 10.7-24 24-24zM552 288c-13.3 0-24-10.7-24-24l0-19c0-40.3-16-79-44.5-107.5l-21-21C443 97 432 70.6 432 43l0-19c0-13.3 10.7-24 24-24s24 10.7 24 24l0 19c0 14.9 5.9 29.1 16.4 39.6l21 21C554.9 141.1 576 192 576 245l0 19c0 13.3-10.7 24-24 24zM320 448l96 0 0-32-96 0 0 32zM0 416c0-35.3 28.7-64 64-64l384 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32L64 512c-35.3 0-64-28.7-64-64l0-32zm576-40l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"square-poll-vertical\": [448, 512, [\"poll\"], \"f681\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm56 192c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112c0-13.3 10.7-24 24-24zm184 88c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48zM224 128c13.3 0 24 10.7 24 24l0 208c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-208c0-13.3 10.7-24 24-24z\"],\n \"person-circle-minus\": [640, 512, [], \"e540\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"],\n \"biohazard\": [576, 512, [9763], \"f780\", \"M260 12.6c0-8.3-7.6-14.5-15.5-12.1-60.9 18.8-105.1 75.8-105.1 143.1 0 25.1 6.1 48.7 17 69.5-21 1.8-42 8.2-61.5 19.5-57.9 33.6-84.8 100.2-70.9 162.5 1.9 8.4 11.4 12 18.9 7.6 5-2.9 7.6-8.6 7.1-14.4-.3-3.3-.4-6.6-.4-10.1 0-123.5 184.4-123.5 184.4 0 0 88.4-94.5 113.6-148.2 75.4-4.5-3.2-10.5-3.9-15.3-1.1-7 4.1-8.6 13.6-2.7 19.1 46.6 43.8 118 53.9 176.1 20.2 17.9-10.4 32.8-23.9 44.5-39.4 11.7 15.6 26.6 29.1 44.5 39.4 58.1 33.7 129.5 23.6 176.1-20.2 5.9-5.5 4.3-15.1-2.7-19.1-4.8-2.8-10.8-2.1-15.3 1.1-53.7 38.2-148.2 13-148.2-75.4 0-123.5 184.4-123.5 184.4 0 0 3.4-.1 6.8-.4 10.1-.5 5.8 2.1 11.5 7.1 14.4 7.4 4.3 17 .8 18.9-7.6 13.9-62.2-13-128.9-70.9-162.5-19.5-11.3-40.4-17.7-61.5-19.5 10.9-20.8 17-44.4 17-69.5 0-67.3-44.2-124.3-105.1-143.1-7.9-2.4-15.5 3.8-15.5 12.1 0 5.9 4 11 9.5 13.2 83.4 33.6 70.8 178.4-37.8 178.4S167.1 59.4 250.5 25.8c5.5-2.2 9.5-7.3 9.5-13.2zM248.4 288a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM435 317.7c-16.2 0-31.4 5.5-42.1 15-10.1 9.1-18.1 23.4-18.1 45.6 0 21.1 7.2 35 16.5 44.1 32.2-24.6 55.5-60.5 63.9-101.8-6.3-1.9-13.2-3-20.2-3zM202 378.3c0-22.3-8-36.6-18.1-45.6-10.7-9.6-25.9-15-42.1-15-7 0-13.9 1-20.2 3 8.4 41.3 31.6 77.2 63.9 101.8 9.4-9.1 16.5-23.1 16.5-44.2zm41.2-224.3c9 10.2 23.2 18.2 45.2 18.2s36.2-8 45.2-18.2c6.7-7.6 11.5-17.5 13.6-28.4-18.3-6.8-38.2-10.5-58.8-10.5s-40.5 3.7-58.8 10.5c2.2 10.9 6.9 20.8 13.6 28.5z\"],\n \"bell-concierge\": [512, 512, [128718, \"concierge-bell\"], \"f562\", \"M216 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l16 0 0 33.3C124.8 156.7 40.2 243.7 32.6 352l446.9 0C471.8 243.7 387.2 156.7 280 145.3l0-33.3 16 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0zM24 400c-13.3 0-24 10.7-24 24s10.7 24 24 24l464 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L24 400z\"],\n \"ruler-horizontal\": [576, 512, [], \"f547\", \"M48 384c-26.5 0-48-21.5-48-48L0 176c0-26.5 21.5-48 48-48l24 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 48 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 48 0 0 104c0 13.3 10.7 24 24 24s24-10.7 24-24l0-104 24 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48L48 384z\"],\n \"horse\": [576, 512, [128014], \"f6f0\", \"M448 238.1l0-78.1 16 0 9.8 19.6c12.5 25.1 42.2 36.4 68.3 26 20.5-8.2 33.9-28 33.9-50.1L576 80c0-19.1-8.4-36.3-21.7-48l5.7 0c8.8 0 16-7.2 16-16S568.8 0 560 0L448 0C377.3 0 320 57.3 320 128l-171.2 0C118.1 128 91.2 144.3 76.3 168.8 33.2 174.5 0 211.4 0 256l0 56c0 13.3 10.7 24 24 24s24-10.7 24-24l0-56c0-13.4 6.6-25.2 16.7-32.5 1.6 13 6.3 25.4 13.6 36.4l28.2 42.4c8.3 12.4 6.4 28.7-1.2 41.6-16.5 28-20.6 62.2-10 93.9l17.5 52.4c4.4 13.1 16.6 21.9 30.4 21.9l33.7 0c21.8 0 37.3-21.4 30.4-42.1l-20.8-62.5c-2.1-6.4-.5-13.4 4.3-18.2l12.7-12.7c13.2-13.2 20.6-31.1 20.6-49.7 0-2.3-.1-4.6-.3-6.9l84 24c4.1 1.2 8.2 2.1 12.3 2.8L320 480c0 17.7 14.3 32 32 32l32 0c17.7 0 32-14.3 32-32l0-164.3c19.2-19.2 31.5-45.7 32-75.7l0 0 0-1.9zM496 64a16 16 0 1 1 0 32 16 16 0 1 1 0-32z\"],\n \"calendar\": [448, 512, [128197, 128198], \"f133\", \"M128 0C110.3 0 96 14.3 96 32l0 32-32 0C28.7 64 0 92.7 0 128l0 48 448 0 0-48c0-35.3-28.7-64-64-64l-32 0 0-32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 32-128 0 0-32c0-17.7-14.3-32-32-32zM0 224L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-192-448 0z\"],\n \"hands-holding-child\": [640, 512, [], \"e4fa\", \"M320-32a40 40 0 1 1 0 80 40 40 0 1 1 0-80zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40zM384.5 149l-19.8-16.7 11.1 88.8c1.6 13.2-7.7 25.1-20.8 26.8s-25.1-7.7-26.8-20.8l-4.4-35-7.6 0-4.4 35c-1.6 13.2-13.6 22.5-26.8 20.8s-22.5-13.6-20.8-26.8l11.1-88.8-19.8 16.7c-10.1 8.6-25.3 7.3-33.8-2.8s-7.3-25.3 2.8-33.8l27.9-23.6C271.3 72.8 295.3 64 320 64s48.7 8.8 67.6 24.7l27.9 23.6c10.1 8.6 11.4 23.7 2.8 33.8s-23.7 11.4-33.8 2.8z\"],\n \"italic\": [384, 512, [], \"f033\", \"M128 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-58.7 0-133.3 320 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l58.7 0 133.3-320-64 0c-17.7 0-32-14.3-32-32z\"],\n \"khanda\": [512, 512, [9772], \"f66d\", \"M240.7 8c8.9-7.4 21.8-7.4 30.7 0l37.8 31.5c8.7 7.3 11.1 19.6 6 29.6-1.2 2.4-2.8 5.5-4.6 9.2 34.2 19.2 57.3 55.8 57.3 97.8s-23.1 78.6-57.3 97.8c1.8 3.7 3.3 6.8 4.6 9.2 5.1 10 2.7 22.3-6 29.6l-37.2 31 0 19.8c22.9-15.7 48.4-33.3 76.7-52.7 42.8-29.4 68.4-78 68.4-130l0-11.1c0-23.9-7.1-47.3-20.4-67.2-5.1-7.7-4.6-17.8 1.7-24.6 6.6-7.1 17.2-8.1 25.2-2.8 27.5 18.1 89.4 67.5 89.4 149.1 0 46.5-20.2 88.6-41.8 120.4-21.6 32-45.6 55-55.3 63.8-7.8 7.1-19 7.9-27.6 3l-70.8-40.3-32.7 22.5 45.5 31.3c1.8-.4 3.7-.7 5.7-.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-12.2 0-22.3-9.1-23.8-21l-40.2-27.6 0 28.9c9.6 5.5 16 15.9 16 27.7 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-11.8 6.4-22.2 16-27.7l0-28.1-40.3 27.7c-1.8 11.4-11.8 20.1-23.7 20.1-13.3 0-24-10.7-24-24s10.7-24 24-24c2.2 0 4.4 .3 6.5 .9l45.8-31.5-32.7-22.5-70.8 40.3c-8.7 4.9-19.8 4.1-27.6-3-9.7-8.8-33.7-31.9-55.3-63.8-21.5-31.8-41.8-73.9-41.8-120.4 0-81.7 61.9-131.1 89.4-149.1 8.1-5.3 18.6-4.3 25.2 2.8 6.4 6.9 6.8 17 1.7 24.6-13.3 19.9-20.4 43.3-20.4 67.2l0 11.1c0 51.9 25.6 100.6 68.4 130 28.4 19.6 53.7 36.9 75.6 52l0-19.1-37.2-31c-8.7-7.3-11.1-19.6-6-29.6 1.2-2.4 2.8-5.5 4.6-9.2-34.2-19.2-57.3-55.8-57.3-97.8s23.1-78.6 57.3-97.8c-1.8-3.7-3.3-6.8-4.6-9.2-5.1-10-2.7-22.3 6-29.6L240.7 8zM220.3 122.9c-17 11.5-28.2 31-28.2 53.1s11.2 41.6 28.2 53.1c6.8-19.2 11.8-38.4 11.8-53.1s-4.9-33.9-11.8-53.1zm71.5 106.2c17-11.5 28.2-31 28.2-53.1s-11.2-41.6-28.2-53.1c-6.8 19.2-11.8 38.4-11.8 53.1s4.9 33.9 11.8 53.1z\"],\n \"face-frown-open\": [512, 512, [128550, \"frown-open\"], \"f57a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM182.4 382.5c-12.4 5.2-26.5-4.1-21.1-16.4 16-36.6 52.4-62.1 94.8-62.1s78.8 25.6 94.8 62.1c5.4 12.3-8.7 21.6-21.1 16.4-22.4-9.5-47.4-14.8-73.7-14.8s-51.3 5.3-73.7 14.8z\"],\n \"check\": [448, 512, [10003, 10004], \"f00c\", \"M434.8 70.1c14.3 10.4 17.5 30.4 7.1 44.7l-256 352c-5.5 7.6-14 12.3-23.4 13.1s-18.5-2.7-25.1-9.3l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l101.5 101.5 234-321.7c10.4-14.3 30.4-17.5 44.7-7.1z\"],\n \"fingerprint\": [512, 512, [], \"f577\", \"M48 256c0-114.9 93.1-208 208-208 63.1 0 119.6 28.1 157.8 72.5 8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8C403.3 34.6 333.7 0 256 0 114.6 0 0 114.6 0 256l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40zm458.5-52.9c-2.7-13-15.5-21.3-28.4-18.5s-21.3 15.5-18.5 28.4c2.9 13.9 4.5 28.3 4.5 43.1l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c0-18.1-1.9-35.8-5.5-52.9zM256 80c-19 0-37.4 3-54.5 8.6-15.2 5-18.7 23.7-8.3 35.9 7.1 8.3 18.8 10.8 29.4 7.9 10.6-2.9 21.8-4.4 33.4-4.4 70.7 0 128 57.3 128 128l0 24.9c0 25.2-1.5 50.3-4.4 75.3-1.7 14.6 9.4 27.8 24.2 27.8 11.8 0 21.9-8.6 23.3-20.3 3.3-27.4 5-55 5-82.7l0-24.9c0-97.2-78.8-176-176-176zM150.7 148.7c-9.1-10.6-25.3-11.4-33.9-.4-23.1 29.8-36.8 67.1-36.8 107.7l0 24.9c0 24.2-2.6 48.4-7.8 71.9-3.4 15.6 7.9 31.1 23.9 31.1 10.5 0 19.9-7 22.2-17.3 6.4-28.1 9.7-56.8 9.7-85.8l0-24.9c0-27.2 8.5-52.4 22.9-73.1 7.2-10.4 8-24.6-.2-34.2zM256 160c-53 0-96 43-96 96l0 24.9c0 35.9-4.6 71.5-13.8 106.1-3.8 14.3 6.7 29 21.5 29 9.5 0 17.9-6.2 20.4-15.4 10.5-39 15.9-79.2 15.9-119.7l0-24.9c0-28.7 23.3-52 52-52s52 23.3 52 52l0 24.9c0 36.3-3.5 72.4-10.4 107.9-2.7 13.9 7.7 27.2 21.8 27.2 10.2 0 19-7 21-17 7.7-38.8 11.6-78.3 11.6-118.1l0-24.9c0-53-43-96-96-96zm24 96c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 24.9c0 59.9-11 119.3-32.5 175.2l-5.9 15.3c-4.8 12.4 1.4 26.3 13.8 31s26.3-1.4 31-13.8l5.9-15.3C267.9 411.9 280 346.7 280 280.9l0-24.9z\"],\n \"charging-station\": [576, 512, [], \"f5e7\", \"M64 64C64 28.7 92.7 0 128 0L288 0c35.3 0 64 28.7 64 64l0 224c44.2 0 80 35.8 80 80l0 12c0 11 9 20 20 20s20-9 20-20l0-127.7c-32.5-10.2-56-40.5-56-76.3l0-32c0-8.8 7.2-16 16-16l16 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 32 0 0-48c0-8.8 7.2-16 16-16s16 7.2 16 16l0 48 16 0c8.8 0 16 7.2 16 16l0 32c0 35.8-23.5 66.1-56 76.3L520 380c0 37.6-30.4 68-68 68s-68-30.4-68-68l0-12c0-17.7-14.3-32-32-32l0 129.4c9.3 3.3 16 12.2 16 22.6 0 13.3-10.7 24-24 24L72 512c-13.3 0-24-10.7-24-24 0-10.5 6.7-19.3 16-22.6L64 64zm82.7 125.7l39 0-20.9 66.9c-2.4 7.6 3.3 15.4 11.3 15.4 2.9 0 5.6-1 7.8-2.9l94.6-82c3.1-2.7 4.9-6.6 4.9-10.7 0-7.8-6.3-14.1-14.1-14.1l-39 0 20.9-66.9c2.4-7.6-3.3-15.4-11.3-15.4-2.9 0-5.6 1-7.8 2.9l-94.6 82c-3.1 2.7-4.9 6.6-4.9 10.7 0 7.8 6.3 14.1 14.1 14.1z\"],\n \"user-lock\": [576, 512, [], \"f502\", \"M224 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM194.3 304l59.4 0c29.7 0 57.7 7.3 82.3 20.1l0 4.3c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L45.7 512C29.3 512 16 498.7 16 482.3 16 383.8 95.8 304 194.3 304zm301.7 .1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"mobile-screen-button\": [384, 512, [\"mobile-alt\"], \"f3cd\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zm64 0l0 304 224 0 0-304-224 0zM192 472c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32z\"],\n \"anchor-circle-check\": [640, 512, [], \"e4aa\", \"M320 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zM288 0c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3L80 307.9c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"person-walking-with-cane\": [576, 512, [\"blind\"], \"f29d\", \"M224-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM160 205.3l-22.6 22.6c-6 6-9.4 14.1-9.4 22.6l0 37.5c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-37.5c0-25.5 10.1-49.9 28.1-67.9l34.4-34.4c23.2-23.2 54.6-36.2 87.3-36.2 36.1 0 70.3 15.8 93.8 43.1l68.6 80c11.5 13.4 9.9 33.6-3.5 45.1s-33.6 9.9-45.1-3.5l-55.7-65 0 118.6 34.5 29.6c17.7 15.2 29.3 36.2 32.6 59.3l12.6 88.1c2.5 17.5-9.7 33.7-27.2 36.2s-33.7-9.7-36.2-27.2l-12.6-88.1c-1.1-7.7-5-14.7-10.9-19.8l-71.4-61.2c-21.3-18.2-33.5-44.9-33.5-72.9l0-69.3zm.1 165.8c2.4 2.3 4.8 4.6 7.4 6.8l46 39.4-2.2 7.6c-4.5 15.7-12.9 30-24.4 41.5l-68.3 68.3c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l68.3-68.3c3.8-3.8 6.6-8.6 8.1-13.8L160.1 371zm233.5-62.2c10.6-8 25.6-5.8 33.6 4.8l144 192c8 10.6 5.8 25.6-4.8 33.6s-25.6 5.8-33.6-4.8l-144-192c-8-10.6-5.8-25.6 4.8-33.6z\"],\n \"file-waveform\": [384, 512, [\"file-medical-alt\"], \"f478\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64l0-96 60.3 0 48.8 62.7c5.1 6.6 13.3 10 21.6 9.1s15.5-6.1 19.1-13.6l42.9-91.2 9.9 19.8c4.1 8.1 12.4 13.3 21.5 13.3l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-57.2 0-25.4-50.7c-4.1-8.2-12.6-13.4-21.8-13.3s-17.5 5.5-21.4 13.8l-47.3 100.6-32-41.1C86.4 307.4 79.4 304 72 304L0 304 0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5z\"],\n \"house-crack\": [512, 512, [], \"e3b1\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l86.4 0-31.3-52.2c-4.1-6.8-2.6-15.5 3.5-20.5L256 368 195.8 285.2c-10.9-15 8.2-33.5 22.8-22l117.9 92.6c8 6.3 8.2 18.4 .4 24.9L256 448 294.4 512 400 512c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208z\"],\n \"hat-wizard\": [512, 512, [], \"f6e8\", \"M64 400l85.7-208.2c17-41.3 47.8-75.3 87.2-96.3L383.8 17.2c12.3-6.6 26.5 4.7 23 18.2L369.6 177.8c-1.1 4.1-1.6 8.3-1.6 12.6 0 6.3 1.2 12.6 3.6 18.5l76.4 191.1-207.1 0 11.8-35.4 40.4-13.5c6.5-2.2 10.9-8.3 10.9-15.2s-4.4-13-10.9-15.2l-40.4-13.5-13.5-40.4C237 260.4 230.9 256 224 256s-13 4.4-15.2 10.9l-13.5 40.4-40.4 13.5C148.4 323 144 329.1 144 336s4.4 13 10.9 15.2l40.4 13.5 11.8 35.4-143.1 0zM279.6 141.5c-1.1-3.3-4.1-5.5-7.6-5.5s-6.5 2.2-7.6 5.5l-6.7 20.2-20.2 6.7c-3.3 1.1-5.5 4.1-5.5 7.6s2.2 6.5 5.5 7.6l20.2 6.7 6.7 20.2c1.1 3.3 4.1 5.5 7.6 5.5s6.5-2.2 7.6-5.5l6.7-20.2 20.2-6.7c3.3-1.1 5.5-4.1 5.5-7.6s-2.2-6.5-5.5-7.6l-20.2-6.7-6.7-20.2zM32 448l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"user-doctor\": [448, 512, [\"user-md\"], \"f0f0\", \"M224 8a120 120 0 1 0 0 240 120 120 0 1 0 0-240zm60 312.8c-5.4-.5-11-.8-16.6-.8l-86.9 0c-5.6 0-11.1 .3-16.6 .8l0 67.5c16.5 7.6 28 24.3 28 43.6 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-19.4 11.5-36.1 28-43.6l0-58.4C61 353 16 413.6 16 484.6 16 499.7 28.3 512 43.4 512l361.1 0c15.1 0 27.4-12.3 27.4-27.4 0-71-45-131.5-108-154.6l0 37.4c23.3 8.2 40 30.5 40 56.6l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-11-9-20-20-20s-20 9-20 20l0 32c0 11-9 20-20 20s-20-9-20-20l0-32c0-26.1 16.7-48.3 40-56.6l0-46.6z\"],\n \"chart-bar\": [512, 512, [\"bar-chart\"], \"f080\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zm96 64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 80l128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 112l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"spray-can-sparkles\": [576, 512, [\"air-freshener\"], \"f5d0\", \"M160 32l0 80 128 0 0-80c0-17.7-14.3-32-32-32L192 0c-17.7 0-32 14.3-32 32zm0 128c-53 0-96 43-96 96l0 208c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-208c0-53-43-96-96-96l-128 0zm64 96a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM448 48c0-1.4-1-3-2.2-3.6L416 32 403.6 2.2C403 1 401.4 0 400 0s-3 1-3.6 2.2L384 32 354.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L384 64 396.4 93.8C397 95 398.6 96 400 96s3-1 3.6-2.2L416 64 445.8 51.6C447 51 448 49.4 448 48zm76.4 45.8C525 95 526.6 96 528 96s3-1 3.6-2.2L544 64 573.8 51.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 32 531.6 2.2C531 1 529.4 0 528 0s-3 1-3.6 2.2L512 32 482.2 44.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 64 524.4 93.8zm7.2 100.4c-.6-1.2-2.2-2.2-3.6-2.2s-3 1-3.6 2.2L512 224 482.2 236.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L512 256 524.4 285.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L544 256 573.8 243.6c1.2-.6 2.2-2.2 2.2-3.6 0-1.4-1-3-2.2-3.6L544 224 531.6 194.2zM512 144c0-1.4-1-3-2.2-3.6L480 128 467.6 98.2C467 97 465.4 96 464 96s-3 1-3.6 2.2L448 128 418.2 140.4c-1.2 .6-2.2 2.2-2.2 3.6 0 1.4 1 3 2.2 3.6L448 160 460.4 189.8c.6 1.2 2.2 2.2 3.6 2.2s3-1 3.6-2.2L480 160 509.8 147.6c1.2-.6 2.2-2.2 2.2-3.6z\"],\n \"baht-sign\": [320, 512, [], \"e0ac\", \"M136 0c-13.3 0-24 10.7-24 24l0 40-74.4 0C16.8 64 0 80.8 0 101.6L0 406.3c0 23 18.7 41.7 41.7 41.7l70.3 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 48 0c61.9 0 112-50.1 112-112 0-40.1-21.1-75.3-52.7-95.1 13.1-18.3 20.7-40.7 20.7-64.9 0-61.9-50.1-112-112-112l-16 0 0-40c0-13.3-10.7-24-24-24zM112 128l0 96-48 0 0-96 48 0zm48 96l0-96 16 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-16 0zm-48 64l0 96-48 0 0-96 48 0zm48 96l0-96 48 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-48 0z\"],\n \"temperature-arrow-up\": [512, 512, [\"temperature-up\"], \"e040\", \"M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-212.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 212.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 9.4l64 64c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-9.4-9.4 0 178.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-178.7-9.4 9.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l64-64c6-6 14.1-9.4 22.6-9.4s16.6 3.4 22.6 9.4z\"],\n \"web-awesome\": [640, 512, [], \"e682\", \"M372.2 52c0 20.9-12.4 39-30.2 47.2L448 192 552.4 171.1c-5.3-7.7-8.4-17.1-8.4-27.1 0-26.5 21.5-48 48-48s48 21.5 48 48c0 26-20.6 47.1-46.4 48L481 442.3c-10.3 23-33.2 37.7-58.4 37.7l-205.2 0c-25.2 0-48-14.8-58.4-37.7L46.4 192C20.6 191.1 0 170 0 144 0 117.5 21.5 96 48 96s48 21.5 48 48c0 10.1-3.1 19.4-8.4 27.1L192 192 298.1 99.1c-17.7-8.3-30-26.3-30-47.1 0-28.7 23.3-52 52-52s52 23.3 52 52z\"],\n \"non-binary\": [384, 512, [], \"e807\", \"M192 544c-97.2 0-176-78.8-176-176 0-86.3 62.1-158 144-173l0-47.2-49.7 24.8-3 1.3c-15.2 5.7-32.5-.8-39.9-15.7-7.4-14.8-2.2-32.6 11.5-41.3l2.8-1.6 38.8-19.4-38.8-19.4c-15.8-7.9-22.2-27.1-14.3-42.9 7.4-14.8 24.8-21.4 40-15.6l3 1.3 49.7 24.8 0-44.2c0-17.7 14.3-32 32-32s32 14.3 32 32l0 44.2 49.7-24.8 3-1.3c15.2-5.8 32.5 .8 39.9 15.6s2.2 32.7-11.5 41.3l-2.8 1.6-38.7 19.4 38.7 19.3c15.8 7.9 22.2 27.1 14.3 42.9-7.4 14.8-24.7 21.4-39.9 15.6l-3-1.3-49.7-24.8 0 47.2c81.9 15.1 144 86.8 144 173 0 97.2-78.8 176-176 176zm0-64a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"],\n \"n\": [384, 512, [110], \"4e\", \"M21.1 33.9c12.7-4.6 26.9-.7 35.5 9.6L320 359.6 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 13.5-8.4 25.5-21.1 30.1s-26.9 .7-35.5-9.6L64 152.4 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 50.5 8.4 38.5 21.1 33.9z\"],\n \"arrows-up-down-left-right\": [512, 512, [\"arrows\"], \"f047\", \"M278.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l9.4-9.4 0 114.7-114.7 0 9.4-9.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-64 64c-12.5 12.5-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-9.4-9.4 114.7 0 0 114.7-9.4-9.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c12.5 12.5 32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-9.4 9.4 0-114.7 114.7 0-9.4 9.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l64-64c12.5-12.5 12.5-32.8 0-45.3l-64-64c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l9.4 9.4-114.7 0 0-114.7 9.4 9.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-64-64z\"],\n \"house\": [512, 512, [127968, 63498, 63500, \"home\", \"home-alt\", \"home-lg-alt\"], \"f015\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM240 320l32 0c26.5 0 48 21.5 48 48l0 96-128 0 0-96c0-26.5 21.5-48 48-48z\"],\n \"spinner\": [512, 512, [], \"f110\", \"M208 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm0 416a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM48 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm368 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM75 369.1A48 48 0 1 1 142.9 437 48 48 0 1 1 75 369.1zM75 75A48 48 0 1 1 142.9 142.9 48 48 0 1 1 75 75zM437 369.1A48 48 0 1 1 369.1 437 48 48 0 1 1 437 369.1z\"],\n \"gavel\": [576, 512, [\"legal\"], \"f0e3\", \"M169.6 153.4l-18.7-18.7c-12.5-12.5-12.5-32.8 0-45.3L265.6-25.4c12.5-12.5 32.8-12.5 45.3 0L329.6-6.6c12.5 12.5 12.5 32.8 0 45.3L214.9 153.4c-12.5 12.5-32.8 12.5-45.3 0zM276 211.7l-31.4-31.4 112-112 119.4 119.4-112 112-31.4-31.4-232 232c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6l232-232zM390.9 374.6c-12.5-12.5-12.5-32.8 0-45.3L505.6 214.6c12.5-12.5 32.8-12.5 45.3 0l18.7 18.7c12.5 12.5 12.5 32.8 0 45.3L454.9 393.4c-12.5 12.5-32.8 12.5-45.3 0l-18.7-18.7z\"],\n \"ticket-simple\": [576, 512, [\"ticket-alt\"], \"f3ff\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 64c0 8.8-7.4 15.7-15.7 18.6-18.8 6.5-32.3 24.4-32.3 45.4s13.5 38.9 32.3 45.4c8.3 2.9 15.7 9.8 15.7 18.6l0 64c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64l0-64C0 311.2 7.4 304.3 15.7 301.4 34.5 294.9 48 277 48 256s-13.5-38.9-32.3-45.4C7.4 207.7 0 200.8 0 192l0-64z\"],\n \"dove\": [512, 512, [128330], \"f4ba\", \"M496 64c13.2 0 20.7 15.1 12.8 25.6L480 128 480 304c0 79.5-64.5 144-144 144l-112 0-46.3 46.3c-10.4 10.4-26.5 12.4-39.1 4.8L41.5 440.9c-17-10.2-15-35.5 3.4-42.9L160 352C23.8 311.1 7.5 169.8 22 95.7 25.6 77.9 45.3 71.4 61.3 80.2L320 224 320 144c0-44.2 35.8-80 80-80l96 0zm-96 56a24 24 0 1 0 0 48 24 24 0 1 0 0-48zM182.5-9.6c12.4-13.7 33.3-8.9 42.5 7.1l56.4 98.3c-5.8 14.4-9.2 30.1-9.4 46.5L138.1 68c10.1-31.6 27-58.4 44.4-77.6z\"],\n \"tarp-droplet\": [512, 512, [], \"e57c\", \"M256 160c35.3 0 64-26.9 64-60 0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60zM368 96c0 61.9-50.1 112-112 112S144 157.9 144 96c0-11.1 1.6-21.9 4.6-32L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l277.5 0c17 0 33.3-6.7 45.3-18.7L493.3 322.7c12-12 18.7-28.3 18.7-45.3L512 128c0-35.3-28.7-64-64-64l-84.6 0c3 10.1 4.6 20.9 4.6 32zm85.5 176L336 389.5 336 296c0-13.3 10.7-24 24-24l93.5 0zM96 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"tree-city\": [640, 512, [], \"e587\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM528 192c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM96 480l0-160-16 0c-44.2 0-80-35.8-80-80 0-26.7 13.1-50.3 33.2-64.9-.8-4.9-1.2-10-1.2-15.1 0-53 43-96 96-96s96 43 96 96l0 96c0 35.3-28.7 64-64 64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32z\"],\n \"turn-up\": [384, 512, [10548, \"level-up-alt\"], \"f3bf\", \"M169.4 9.4c12.5-12.5 32.8-12.5 45.3 0l128 128c9.2 9.2 11.9 22.9 6.9 34.9S332.9 192 320 192l-64 0 0 160c0 88.4-71.6 160-160 160l-64 0c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l64 0c17.7 0 32-14.3 32-32l0-160-64 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l128-128z\"],\n \"temperature-quarter\": [320, 512, [\"temperature-1\", \"thermometer-1\", \"thermometer-quarter\"], \"f2ca\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-28.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 28.7c23.5 9.5 40 32.5 40 59.3z\"],\n \"sliders\": [512, 512, [\"sliders-h\"], \"f1de\", \"M32 64C14.3 64 0 78.3 0 96s14.3 32 32 32l86.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L265.3 64C253 35.7 224.8 16 192 16s-61 19.7-73.3 48L32 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l246.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48l54.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-54.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 224zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l54.7 0c12.3 28.3 40.5 48 73.3 48s61-19.7 73.3-48L480 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-246.7 0c-12.3-28.3-40.5-48-73.3-48s-61 19.7-73.3 48L32 384z\"],\n \"mosque\": [576, 512, [128332], \"f678\", \"M174.8 224l226.4 0c43.5 0 78.8-35.3 78.8-78.8 0-25.5-12.3-49.4-33.1-64.2L297.3-25.4c-5.6-3.9-13-3.9-18.5 0L129.1 81C108.3 95.8 96 119.7 96 145.2 96 188.7 131.3 224 174.8 224zM512 512c35.3 0 64-28.7 64-64l0-224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-448 0 0-48c0-17.7-14.3-32-32-32S0 206.3 0 224L0 448c0 35.3 28.7 64 64 64l448 0zM240 384c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80-96 0 0-80z\"],\n \"h\": [384, 512, [104], \"48\", \"M320 288l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-256 0 0-160c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 256 0z\"],\n \"info\": [192, 512, [], \"f129\", \"M48 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM0 192c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 256 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-224-32 0c-17.7 0-32-14.3-32-32z\"],\n \"person-walking\": [384, 512, [128694, \"walking\"], \"f554\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM105.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L60.1 182.6C42.1 200.6 32 225 32 250.5L32 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zm12.4 179.4c-1.5 5.2-4.3 10-8.1 13.8L41.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8l-10.4 36.2z\"],\n \"arrow-turn-down\": [384, 512, [\"level-down\"], \"f149\", \"M32 64C14.3 64 0 49.7 0 32S14.3 0 32 0l96 0c53 0 96 43 96 96l0 306.7 73.4-73.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-128 128c-12.5 12.5-32.8 12.5-45.3 0l-128-128c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L160 402.7 160 96c0-17.7-14.3-32-32-32L32 64z\"],\n \"road\": [512, 512, [128739], \"f018\", \"M223.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L1.4 420.5C-6.1 450.7 16.8 480 48 480l175.9 0 0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64 176.1 0c31.2 0 54.1-29.3 46.6-59.5L426.5 80.6C419.4 52.1 393.8 32 364.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n \"spiral\": [512, 512, [], \"e80a\", \"M115.5 7.4c13.6-11.3 33.8-9.5 45.1 4.1s9.5 33.8-4.1 45.1C100.2 103.5 64 175.2 64 256 64 362 150 448 256 448s192-86 192-192c0-75.1-60.9-136-136-136S176 180.9 176 256c0 44.2 35.8 80 80 80s80-35.8 80-80c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 17.7-14.3 32-32 32s-32-14.3-32-32c0-48.6 39.4-88 88-88s88 39.4 88 88c0 79.5-64.5 144-144 144S112 335.5 112 256c0-110.5 89.5-200 200-200s200 89.5 200 200c0 141.4-114.6 256-256 256S0 397.4 0 256C0 155.8 45 66.1 115.5 7.4z\"],\n \"face-frown\": [512, 512, [9785, \"frown\"], \"f119\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm90.6-113.9c-20.4-28-53.4-46.1-90.6-46.1s-70.2 18.1-90.6 46.1c-7.8 10.7-22.8 13.1-33.5 5.3s-13.1-22.8-5.3-33.5C155.7 330 202.8 304 256 304s100.3 26 129.4 65.9c7.8 10.7 5.4 25.7-5.3 33.5s-25.7 5.4-33.5-5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"wine-glass-empty\": [320, 512, [\"wine-glass-alt\"], \"f5ce\", \"M64 0C48.7 0 35.6 10.8 32.6 25.7L3.2 173C1.1 183.5 0 194.2 0 205l0 3c0 77.4 55 142 128 156.8l0 115.2-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-115.2C265 350 320 285.4 320 208l0-3c0-10.7-1.1-21.4-3.2-32L287.4 25.7C284.4 10.8 271.3 0 256 0L64 0zm1.9 185.6L90.2 64 229.8 64 254.1 185.6c1.3 6.4 1.9 12.9 1.9 19.4l0 3c0 53-43 96-96 96s-96-43-96-96l0-3c0-6.5 .6-13 1.9-19.4z\"],\n \"clapperboard\": [512, 512, [], \"e131\", \"M448 64c2 0 3.9 .1 5.8 .3l-95.7 95.7 67.9 0 72-72c8.8 11 14 24.9 14 40l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l70.1 0-96 96 67.9 0 95-95 1-1 92.1 0-96 96 67.9 0 95-95 1-1 86.1 0z\"],\n \"forward-step\": [384, 512, [\"step-forward\"], \"f051\", \"M21 36.8c12.9-7 28.7-6.3 41 1.8L320 208.1 320 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 384c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144.1-258 169.6c-12.3 8.1-28 8.8-41 1.8S0 454.7 0 440L0 72C0 57.3 8.1 43.8 21 36.8z\"],\n \"square-up-right\": [448, 512, [8599, \"external-link-square-alt\"], \"f360\", \"M384 32c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0zM168 160c-9.7 0-18.5 5.8-22.2 14.8s-1.7 19.3 5.2 26.2l35 35-67 67c-9.4 9.4-9.4 24.6 0 33.9l24 24c9.4 9.4 24.6 9.4 33.9 0l67-67 35 35c6.9 6.9 17.2 8.9 26.2 5.2S320 321.7 320 312l0-128c0-13.3-10.7-24-24-24l-128 0z\"],\n \"book-journal-whills\": [448, 512, [\"journal-whills\"], \"f66a\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM274.1 99.2c2.6-2.6 6.7-3.1 9.9-1.1 32.1 20 53.4 55.6 53.4 96.2 0 62.6-50.7 113.3-113.3 113.3S110.7 256.9 110.7 194.3c0-40.6 21.4-76.2 53.4-96.2 3.1-2 7.2-1.5 9.9 1.1s3.1 6.7 1.2 9.8c-5.2 8.6-8.2 18.7-8.2 29.5 0 15.1 5.9 28.8 15.5 39.1 2.5 2.7 2.9 6.7 .9 9.7-4.7 7.4-7.4 16.1-7.4 25.5 0 21.6 14.3 39.9 34 45.9l1-24.8c-7.1-4.4-11.8-12.2-11.8-21.1 0-9.6 5.5-18 13.5-22.1l3.3-81.8c.2-4.3 3.7-7.7 8-7.7s7.8 3.4 8 7.7l3.3 81.8c8 4.1 13.5 12.4 13.5 22.1 0 8.9-4.7 16.7-11.8 21.1l1 24.8c19.6-6 33.9-24.1 34-45.6l0-.6c-.1-9.3-2.7-17.9-7.4-25.2-1.9-3.1-1.6-7.1 .9-9.7 9.6-10.2 15.5-23.9 15.5-39.1 0-10.8-3-20.9-8.2-29.5-1.9-3.2-1.4-7.2 1.2-9.8z\"],\n \"champagne-glasses\": [640, 512, [129346, \"glass-cheers\"], \"f79f\", \"M155.6 17.3C163 3 179.9-3.6 195 1.9l125 45.6 125-45.6c15.1-5.5 32 1.1 39.4 15.4l78.8 152.9c28.8 55.8 10.3 122.3-38.5 156.6l31.3 86.2 41-15c16.6-6 35 2.5 41 19.1s-2.5 35-19.1 41c-47.4 17.3-94.8 34.5-142.2 51.8-16.6 6.1-35-2.5-41-19.1s2.5-35 19.1-41l41-15-31.3-86.2c-59.4 5.2-116.2-33.9-130-95.2l-14.6-64.7-14.6 64.7c-13.8 61.3-70.6 100.4-130 95.2l-31.3 86.2 41 15c16.6 6.1 25.2 24.4 19.1 41s-24.4 25.2-41 19.1c-47.4-17.3-94.8-34.6-142.2-51.8-16.6-6.1-25.2-24.4-19.1-41S26.3 392 42.9 398l41 15 31.3-86.2C66.5 292.5 48.1 226 76.9 170.2L155.6 17.3zm44 54.4l-27.2 52.8 89.2 32.5 13.1-57.9-75.1-27.4zm240.9 0l-75.1 27.4 13.1 57.9 89.2-32.5-27.2-52.8z\"],\n \"dumpster\": [576, 512, [], \"f793\", \"M132.3 64L106.7 192 24 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L26.5 80.4C29.8 70.6 39 64 49.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM312 64l82.7 0 25.6 128-108.3 0 0-128zm131.7 0l83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1c0 13.3-10.7 24-24 24l-82.7 0-25.6-128zM25.7 240l524.7 0c-.4 2.1-13.3 73.4-38.9 213.7-3 16.3-17.9 27.6-34.4 26.1S448 464.6 448 448l0-16-320 0 0 16c0 16.6-12.6 30.4-29.1 31.9S67.5 470 64.5 453.7C39 313.3 26 242.1 25.7 240z\"],\n \"heart-circle-xmark\": [576, 512, [], \"e501\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM432 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"],\n \"computer\": [576, 512, [], \"e4e5\", \"M348.8 32C340.7 46.1 336 62.5 336 80l0 16-272 0 0 224 272 0 0 64-272 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l284.8 0zM336 432c0 17.5 4.7 33.9 12.8 48L120 480c-13.3 0-24-10.7-24-24s10.7-24 24-24l216 0zM432 32l96 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm24 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm56 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"wand-magic\": [512, 512, [\"magic\"], \"f0d0\", \"M398.5 12.2l-88.2 88.2 101.3 101.3 88.2-88.2C507.6 105.6 512 95 512 84s-4.4-21.6-12.2-29.5L457.5 12.2C449.6 4.4 439 0 428 0s-21.6 4.4-29.5 12.2zM276.4 134.3L12.2 398.5C4.4 406.4 0 417 0 428s4.4 21.6 12.2 29.5l42.3 42.3C62.4 507.6 73 512 84 512s21.6-4.4 29.5-12.2L377.7 235.6 276.4 134.3z\"],\n \"brain\": [512, 512, [129504], \"f5dc\", \"M120 56c0-30.9 25.1-56 56-56l24 0c17.7 0 32 14.3 32 32l0 448c0 17.7-14.3 32-32 32l-32 0c-29.8 0-54.9-20.4-62-48-.7 0-1.3 0-2 0-44.2 0-80-35.8-80-80 0-18 6-34.6 16-48-19.4-14.6-32-37.8-32-64 0-30.9 17.6-57.8 43.2-71.1-7.1-12-11.2-26-11.2-40.9 0-44.2 35.8-80 80-80l0-24zm272 0l0 24c44.2 0 80 35.8 80 80 0 15-4.1 29-11.2 40.9 25.7 13.3 43.2 40.1 43.2 71.1 0 26.2-12.6 49.4-32 64 10 13.4 16 30 16 48 0 44.2-35.8 80-80 80-.7 0-1.3 0-2 0-7.1 27.6-32.2 48-62 48l-32 0c-17.7 0-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32l24 0c30.9 0 56 25.1 56 56z\"],\n \"briefcase-medical\": [512, 512, [], \"f469\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zm80 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"house-medical-circle-exclamation\": [640, 512, [], \"e512\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"code-commit\": [576, 512, [], \"f386\", \"M288 336a80 80 0 1 0 0-160 80 80 0 1 0 0 160zm156.8-48C430 361 365.4 416 288 416S146 361 131.2 288L32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l99.2 0C146 151 210.6 96 288 96s142 55 156.8 128l99.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-99.2 0z\"],\n \"person-breastfeeding\": [448, 512, [], \"e53a\", \"M224 0a80 80 0 1 1 0 160 80 80 0 1 1 0-160zM436.8 382.8L373.5 462c-16.6 20.7-46.8 24.1-67.5 7.5-17.6-14.1-22.7-38.1-13.5-57.7l-.7-.1c-38.9-5.6-74.3-25.1-99.7-54.8l0-36.8c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48c0 .8 0 1.6 .1 2.4l101.4 50.7c23.7 11.9 33.3 40.7 21.5 64.4s-40.7 33.3-64.4 21.5L27.2 427.3c-1.1-.5-2.2-1.1-3.3-1.7-4.9-2.8-9.2-6.4-12.6-10.6-4.6-5.4-7.8-11.7-9.6-18.4-3.3-12-1.9-25.2 4.8-36.6 .6-1.1 1.3-2.2 2-3.2L75.6 256.1c26.7-40.1 71.7-64.1 119.8-64.1l75.2 0c46.5 0 90.1 22.5 117.2 60.3l50.7 70.9c2.2 3 4 6.1 5.5 9.4 2.9 6.7 4.3 13.8 4 20.8-.3 10.6-4.2 21-11.2 29.4zM320 332a44 44 0 1 0 -88 0 44 44 0 1 0 88 0z\"],\n \"person-rays\": [512, 512, [], \"e54d\", \"M312.5 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C338.5 132 298.8 112 256.5 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l46.3-62.4 0 275.3c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM7.5 7c-9.4 9.4-9.4 24.6 0 33.9l80 80c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L41.5 7C32.1-2.3 16.9-2.3 7.5 7zm464 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0zM7.5 505c9.4 9.4 24.6 9.4 33.9 0l80-80c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-80 80c-9.4 9.4-9.4 24.6 0 33.9zm464 0c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-80-80c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l80 80z\"],\n \"manat-sign\": [384, 512, [], \"e1d5\", \"M192 32c-13.3 0-24 10.7-24 24l0 41.5C73.3 109.3 0 190.1 0 288L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-62.5 44.8-114.5 104-125.8L168 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-293.8c59.2 11.2 104 63.3 104 125.8l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-97.9-73.3-178.7-168-190.5L216 56c0-13.3-10.7-24-24-24z\"],\n \"sort\": [384, 512, [\"unsorted\"], \"f0dc\", \"M2.4 204.2c5 12 16.6 19.8 29.6 19.8l320 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-9.2 9.2-11.9 22.9-6.9 34.9zm0 103.5c-5 12-2.2 25.7 6.9 34.9l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288c-12.9 0-24.6 7.8-29.6 19.8z\"],\n \"circle-radiation\": [512, 512, [9762, \"radiation-alt\"], \"f7ba\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm80 0l64.3 0c8.7 0 15.7-7.1 17.3-15.6 4.4-24.4 18.1-45.5 37.2-59.7 7.4-5.5 10.6-15.6 6-23.6l-32.5-56.3c-4.3-7.5-13.9-10.3-21.2-5.5-48.2 31.5-81.3 84.2-86.3 144.8-.7 8.8 6.5 16 15.3 16zm137.9 89.8c-8.5-3.7-18.8-1.4-23.5 6.6l-31 53.8c-4.3 7.5-1.9 17.2 5.8 21.1 26.1 13.2 55.5 20.7 86.8 20.7s60.7-7.5 86.8-20.7c7.7-3.9 10.1-13.6 5.8-21.1l-31-53.8c-4.6-8-15-10.3-23.5-6.6-11.7 5-24.5 7.8-38.1 7.8s-26.4-2.8-38.1-7.8zM350.4 240.4c1.6 8.6 8.5 15.6 17.3 15.6l64.3 0c8.8 0 16.1-7.2 15.3-16-5-60.6-38.1-113.2-86.3-144.8-7.3-4.8-16.8-2-21.2 5.5L307.3 157c-4.6 8-1.4 18.1 6 23.6 19.1 14.2 32.7 35.4 37.2 59.7zM256 305.7a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],\n \"laptop-code\": [640, 512, [], \"f5fc\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM281 209l-31 31 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-48-48c-9.4-9.4-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zM393 175l48 48c9.4 9.4 9.4 24.6 0 33.9l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"],\n \"sink\": [512, 512, [], \"e06d\", \"M288 96c0-17.7 14.3-32 32-32s32 14.3 32 32 14.3 32 32 32 32-14.3 32-32c0-53-43-96-96-96s-96 43-96 96l0 192-64 0 0-40c0-30.9-25.1-56-56-56l-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c4.4 0 8 3.6 8 8l0 40-80 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l0 64c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-64c17.7 0 32-14.3 32-32s-14.3-32-32-32l-80 0 0-40c0-4.4 3.6-8 8-8l56 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0c-30.9 0-56 25.1-56 56l0 40-64 0 0-192z\"],\n \"arrow-up-from-water-pump\": [640, 512, [], \"e4b6\", \"M144 32c-26.5 0-48 21.5-48 48l0 176-16 0c-26.5 0-48 21.5-48 48l0 79.6c17.6-2 36 2.5 51.3 14 3.4 2.6 6.1 1.4 9.8-.3l.8-.4c5.7-2.6 12.9-6.9 21.7-13.5 27.5-20.7 59.9-31.2 92.3-31.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 10.7-8.1 22.9-12.7 35.3-14.1l0-79.5c0-26.5-21.5-48-48-48l-56 0 0-142.1 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L497 39c-9.4-9.4-24.6-9.4-33.9 0l-88 88c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 0 142.1-136 0 0-176c0-26.5-21.5-48-48-48L144 32zM474.6 476.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0z\"],\n \"microphone-lines-slash\": [576, 512, [\"microphone-alt-slash\"], \"f539\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0l151 151 0-30.2c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L328 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-1.9 22.9-11.8 43.4-26.9 59l33.9 33.9c25.5-26 41.3-61.6 41.3-100.9l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 52.6-21.1 100.2-55.3 134.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM297.8 367.7l41.4 41.4c-8.8 2.4-17.9 4.3-27.3 5.4l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C169.3 402.7 96 321.9 96 224l0-40c0-5.1 1.6-9.9 4.4-13.8l43.6 43.6 0 10.2c0 79.5 64.5 144 144 144 3.3 0 6.6-.1 9.8-.3z\"],\n \"server\": [448, 512, [], \"f233\", \"M64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 288zm216 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm56 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"user\": [448, 512, [128100, 62144, 62470, \"user-alt\", \"user-large\"], \"f007\", \"M224 248a120 120 0 1 0 0-240 120 120 0 1 0 0 240zm-29.7 56C95.8 304 16 383.8 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-98.5-79.8-178.3-178.3-178.3l-59.4 0z\"],\n \"snowflake\": [512, 512, [10052, 10054], \"f2dc\", \"M288.2 0c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 62.1-15-15c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l49 49 0 70.6-61.2-35.3-17.9-66.9c-3.4-12.8-16.6-20.4-29.4-17S95.3 98 98.7 110.8l5.5 20.5-53.7-31C35.2 91.5 15.6 96.7 6.8 112s-3.6 34.9 11.7 43.7l53.7 31-20.5 5.5c-12.8 3.4-20.4 16.6-17 29.4s16.6 20.4 29.4 17l66.9-17.9 61.2 35.3-61.2 35.3-66.9-17.9c-12.8-3.4-26 4.2-29.4 17s4.2 26 17 29.4l20.5 5.5-53.7 31C3.2 365.1-2 384.7 6.8 400s28.4 20.6 43.7 11.7l53.7-31-5.5 20.5c-3.4 12.8 4.2 26 17 29.4s26-4.2 29.4-17l17.9-66.9 61.2-35.3 0 70.6-49 49c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l15-15 0 62.1c0 17.7 14.3 32 32 32s32-14.3 32-32l0-62.1 15 15c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-49-49 0-70.6 61.2 35.3 17.9 66.9c3.4 12.8 16.6 20.4 29.4 17s20.4-16.6 17-29.4l-5.5-20.5 53.7 31c15.3 8.8 34.9 3.6 43.7-11.7s3.6-34.9-11.7-43.7l-53.7-31 20.5-5.5c12.8-3.4 20.4-16.6 17-29.4s-16.6-20.4-29.4-17l-66.9 17.9-61.2-35.3 61.2-35.3 66.9 17.9c12.8 3.4 26-4.2 29.4-17s-4.2-26-17-29.4l-20.5-5.5 53.7-31c15.3-8.8 20.6-28.4 11.7-43.7s-28.4-20.5-43.7-11.7l-53.7 31 5.5-20.5c3.4-12.8-4.2-26-17-29.4s-26 4.2-29.4 17l-17.9 66.9-61.2 35.3 0-70.6 49-49c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-15 15 0-62.1z\"],\n \"skull-crossbones\": [448, 512, [128369, 9760], \"f714\", \"M384 144C384 64.5 312.4 0 224 0S64 64.5 64 144c0 47.1 25.1 88.9 64 115.2l0 28.8c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-28.8c38.9-26.3 64-68.1 64-115.2zM160 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM445.5 339.7c-6.8-16.3-25.5-24-41.8-17.2L224 397.3 44.3 322.5c-16.3-6.8-35 .9-41.8 17.2s.9 35 17.2 41.8L140.8 432 19.7 482.5C3.4 489.3-4.3 508 2.5 524.3s25.5 24 41.8 17.2L224 466.7 403.7 541.5c16.3 6.8 35-.9 41.8-17.2s-.9-35-17.2-41.8L307.2 432 428.3 381.5c16.3-6.8 24-25.5 17.2-41.8z\"],\n \"peso-sign\": [448, 512, [], \"e222\", \"M112 32C94.3 32 80 46.3 80 64l0 64-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c65.6 0 122-39.5 146.7-96l37.3 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-24.8 0c.5-5.3 .8-10.6 .8-16s-.3-10.7-.8-16l24.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-37.3 0C362 71.5 305.6 32 240 32L112 32zm199.6 96l-167.6 0 0-32 96 0c28.4 0 54 12.4 71.6 32zM144 176l190.7 0c.9 5.2 1.3 10.5 1.3 16s-.5 10.8-1.3 16l-190.7 0 0-32zm167.6 80c-17.6 19.6-43.1 32-71.6 32l-96 0 0-32 167.6 0z\"],\n \"wine-glass\": [320, 512, [127863], \"f4e3\", \"M32.6 25.7C35.6 10.8 48.7 0 64 0L256 0c15.3 0 28.4 10.8 31.4 25.7L316.8 173c2.1 10.5 3.2 21.2 3.2 32l0 3c0 77.4-55 142-128 156.8l0 115.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-115.2C55 350 0 285.4 0 208l0-3c0-10.7 1.1-21.4 3.2-32L32.6 25.7zM77.4 128l165.1 0-12.8-64-139.5 0-12.8 64z\"],\n \"temperature-half\": [320, 512, [127777, \"temperature-2\", \"thermometer-2\", \"thermometer-half\"], \"f2c9\", \"M160 0C107 0 64 43 64 96l0 164.7C34.5 287 16 325.4 16 368 16 447.5 80.5 512 160 512s144-64.5 144-144c0-42.6-18.5-81-48-107.3L256 96c0-53-43-96-96-96zm64 368c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26.9 16.5-49.9 40-59.3l0-92.7c0-13.3 10.7-24 24-24s24 10.7 24 24l0 92.7c23.5 9.5 40 32.5 40 59.3z\"],\n \"ticket\": [576, 512, [127903], \"f145\", \"M64 64C28.7 64 0 92.7 0 128l0 64C0 200.8 7.4 207.7 15.7 210.6 34.5 217.1 48 235 48 256s-13.5 38.9-32.3 45.4C7.4 304.3 0 311.2 0 320l0 64c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-64c0-8.8-7.4-15.7-15.7-18.6-18.8-6.5-32.3-24.4-32.3-45.4s13.5-38.9 32.3-45.4c8.3-2.9 15.7-9.8 15.7-18.6l0-64c0-35.3-28.7-64-64-64L64 64zM416 336l0-160-256 0 0 160 256 0zM112 160c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32l0-192z\"],\n \"wheat-awn-circle-exclamation\": [640, 512, [], \"e598\", \"M496 576a144 144 0 1 1 0-288 144 144 0 1 1 0 288zM81 529c-9.4 9.3-24.5 9.3-33.9 0-9.4-9.4-9.4-24.6 0-33.9L81 529zm30.2-294.4c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 31.7-7.7 66.2 1 90.6 25.3l12 12c-.8 7-1.2 14.2-1.2 21.4 0 20 3 39.3 8.7 57.4-36.8 21.8-85 17-116.6-14.7L165.6 444.3 81 529C69.7 517.7 58.4 506.3 47 495l84.7-84.7-30.5-30.5c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM496 476a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm0-140c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16 8.8 0 16-7.2 16-16l0-80c0-8.8-7.2-16-16-16zM215.2 130.6c6.2-4.1 14.7-3.4 20.1 2.1l46.1 46.1 6.1 6.7c19.7 23.8 26.3 55 19.3 83.9 24.2-5.9 50.1-2.1 71.9 10.8-32.2 24.9-56.2 59.8-67.4 100.1-3.8-2.8-7.5-6-11-9.5l-94.9-94.9c-37.5-37.5-37.5-98.3 0-135.7l7.4-7.4 2.5-2.1zM526.7 15c9.4-9.4 24.6-9.4 33.9 0 8.8 8.8 9.3 22.7 1.7 32.1L560.6 49 446.2 163.4c7.7 1 15.3 3 22.5 5.9L527 111c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1l-1.7 1.8-52.7 52.7 39 39c3.2 3.2 4.7 7.4 4.7 11.6-17.7-5.4-36.5-8.3-55.9-8.3-34.2 0-66.3 8.9-94.1 24.6l-92.7-92.7c-37.5-37.5-37.5-98.3 0-135.8l7.4-7.4 2.5-2.1c6.2-4.1 14.7-3.4 20.1 2.1l39 39 52.7-52.7c9.4-9.4 24.6-9.4 34 0 8.8 8.8 9.3 22.7 1.6 32.1L465 49 406.7 107.3c2.8 7.1 4.7 14.5 5.8 22.1L526.7 15z\"],\n \"arrows-turn-right\": [448, 512, [], \"e4c0\", \"M313.4-6.6c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L338.7 128 128 128c-35.3 0-64 28.7-64 64l0 32c0 17.7-14.3 32-32 32S0 241.7 0 224l0-32C0 121.3 57.3 64 128 64l210.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3zm-96 256c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-80 80c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 384 96 384c-17.7 0-32 14.3-32 32l0 32c0 17.7-14.3 32-32 32S0 465.7 0 448l0-32c0-53 43-96 96-96l146.7 0-25.4-25.4c-12.5-12.5-12.5-32.8 0-45.3z\"],\n \"candy-cane\": [448, 512, [], \"f786\", \"M421.8 39.6C452 85.2 456.5 142.9 435.1 192l-165.4 0 41.4-41.4c.8-.8 1.5-1.6 2.2-2.4L421.8 39.6zM268 102.9c-.8 .7-1.6 1.4-2.4 2.2l-28.1 28.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5L175 14.6C229.9-40.2 314.5-46.7 376.5-5.6L268 102.9zM125.7 336l80-80 181 0-82.5 82.5 0-2.5-178.5 0zm117 64L141.4 501.3c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5l10.7-10.7 181 0z\"],\n \"wheelchair\": [512, 512, [], \"f193\", \"M136 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM117.9 197.6l12.6 63c-38.6 12.4-66.5 48.7-66.5 91.4 0 53 43 96 96 96 35.6 0 66.7-19.4 83.3-48.2 2.3 .1 4.6 .2 7 .2l4.1 0c1 0 2.1 0 3.1 0l55.2 0c-20.4 64.9-81 112-152.7 112-88.4 0-160-71.6-160-160 0-73.8 50-135.9 117.9-154.4zm148.6-28.1l23.7 118.5 60.5 0c33.3 0 63.2 20.7 74.9 51.9l25.5 68 18.7-6.2c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5l-48 16c-16.3 5.4-34-3-40.1-19.1l-36.3-96.9c-2.3-6.2-8.3-10.4-15-10.4l-86.1 0c-.4 0-.8 0-1.3 0l-13.1 0c-30.5 0-56.8-21.5-62.8-51.4L165.3 189.7c-6.4-31.9 18-61.7 50.6-61.7 24.6 0 45.8 17.4 50.6 41.5z\"],\n \"spell-check\": [576, 512, [], \"f891\", \"M120 32c-48.6 0-88 39.4-88 88l0 168c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-168c0-48.6-39.4-88-88-88l-16 0zm40 128l-64 0 0-40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24l0 40zM304 32c-17.7 0-32 14.3-32 32l0 224c0 17.7 14.3 32 32 32l72 0c48.6 0 88-39.4 88-88 0-23.6-9.3-45-24.4-60.8 10.3-14.4 16.4-32.1 16.4-51.2 0-48.6-39.4-88-88-88l-64 0zm64 112l-32 0 0-48 32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24zM336 256l0-48 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0zm233 84c11-13.8 8.8-33.9-5-45s-33.9-8.8-45 5l-105.7 132.1-38.7-38.7c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.4 6.4 15.3 9.8 24.4 9.3s17.5-4.9 23.2-12L569 340z\"],\n \"volume-off\": [320, 512, [], \"f026\", \"M96 352l-48 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l48 0 134.1-119.2c6.4-5.7 14.6-8.8 23.1-8.8 19.2 0 34.8 15.6 34.8 34.8l0 378.4c0 19.2-15.6 34.8-34.8 34.8-8.5 0-16.7-3.1-23.1-8.8L96 352z\"],\n \"lungs\": [576, 512, [129729], \"f604\", \"M320 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 141.9-32 19.2 0-116.7c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 22 0 43.7-5.1 63.4-15l5-2.5c37.4-18.7 61-56.9 61-98.8l0-128 64-38.4 64 38.4 0 128c0 41.8 23.6 80.1 61 98.8l5 2.5c19.7 9.8 41.4 15 63.4 15 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 118.2-32-19.2 0-141.9z\"],\n \"bookmark\": [384, 512, [128278, 61591], \"f02e\", \"M64 0C28.7 0 0 28.7 0 64L0 480c0 11.5 6.2 22.2 16.2 27.8s22.3 5.5 32.2-.4L192 421.3 335.5 507.4c9.9 5.9 22.2 6.1 32.2 .4S384 491.5 384 480l0-416c0-35.3-28.7-64-64-64L64 0z\"],\n \"barcode\": [448, 512, [], \"f02a\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32L64 64c0-17.7-14.3-32-32-32zm88 0c-13.3 0-24 10.7-24 24l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24zm72 32l0 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32zm208-8l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24zm-96 0l0 400c0 13.3 10.7 24 24 24s24-10.7 24-24l0-400c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n \"list-ol\": [512, 512, [\"list-1-2\", \"list-numeric\"], \"f0cb\", \"M0 72C0 58.8 10.7 48 24 48l48 0c13.3 0 24 10.7 24 24l0 104 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-80-24 0C10.7 96 0 85.3 0 72zM30.4 301.2C41.8 292.6 55.7 288 70 288l4.9 0c33.7 0 61.1 27.4 61.1 61.1 0 19.6-9.4 37.9-25.2 49.4l-24 17.5 33.2 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-90.7 0C13.1 464 0 450.9 0 434.7 0 425.3 4.5 416.5 12.1 411l70.5-51.3c3.4-2.5 5.4-6.4 5.4-10.6 0-7.2-5.9-13.1-13.1-13.1L70 336c-3.9 0-7.7 1.3-10.8 3.6L38.4 355.2c-10.6 8-25.6 5.8-33.6-4.8S-1 324.8 9.6 316.8l20.8-15.6zM224 64l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 160l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"file-circle-xmark\": [576, 512, [], \"e5a1\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"cube\": [512, 512, [], \"f1b2\", \"M224.3-2.5c19.8-11.4 44.2-11.4 64 0L464.2 99c19.8 11.4 32 32.6 32 55.4l0 203c0 22.9-12.2 44-32 55.4L288.3 514.5c-19.8 11.4-44.2 11.4-64 0L48.5 413c-19.8-11.4-32-32.6-32-55.4l0-203c0-22.9 12.2-44 32-55.4L224.3-2.5zm207.8 360l0-166.1-143.8 83 0 166.1 143.8-83z\"],\n \"tape\": [576, 512, [], \"f4db\", \"M412.8 416c41.5-40.7 67.2-97.3 67.2-160 0-123.7-100.3-224-224-224S32 132.3 32 256 132.3 480 256 480l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-131.2 0zM256 160a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm48 96a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"bomb\": [576, 512, [128163], \"f1e2\", \"M480-16c6.9 0 13 4.4 15.2 10.9l13.5 40.4 40.4 13.5C555.6 51 560 57.1 560 64s-4.4 13-10.9 15.2l-40.4 13.5-13.5 40.4C493 139.6 486.9 144 480 144s-13-4.4-15.2-10.9l-13.5-40.4-40.4-13.5C404.4 77 400 70.9 400 64s4.4-13 10.9-15.2l40.4-13.5 13.5-40.4C467-11.6 473.1-16 480-16zM321.4 97.4c12.5-12.5 32.8-12.5 45.3 0l80 80c12.5 12.5 12.5 32.8 0 45.3l-10.9 10.9c7.9 22 12.2 45.7 12.2 70.5 0 114.9-93.1 208-208 208S32 418.9 32 304 125.1 96 240 96c24.7 0 48.5 4.3 70.5 12.3l10.9-10.9zM144 304c0-53 43-96 96-96 13.3 0 24-10.7 24-24s-10.7-24-24-24c-79.5 0-144 64.5-144 144 0 13.3 10.7 24 24 24s24-10.7 24-24z\"],\n \"scale-unbalanced\": [640, 512, [\"balance-scale-left\"], \"f515\", \"M519.8 62.4c16.8-5.6 25.8-23.7 20.2-40.5S516.3-3.9 499.6 1.6l-113 37.7c-13.9-23.5-39.6-39.3-68.9-39.3-44.2 0-80 35.8-80 80 0 3 .2 5.9 .5 8.8L115.6 129.6c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l135.5-45.2c4.5 3.2 9.3 5.9 14.4 8.2l0 326.7c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-294.7c21-9.2 37.2-27 44.2-49l125.9-42zM437.3 288l72.4-124.2 72.4 124.2-144.9 0zm72.4 96c62.9 0 115.2-34 126-78.9 2.6-11-1-22.3-6.7-32.1L533.8 109.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L390.4 273.1c-5.7 9.8-9.3 21.1-6.7 32.1 10.8 44.8 63.1 78.9 126 78.9zM126.8 291.8l72.4 124.2-144.9 0 72.4-124.2zM.9 433.1C11.7 478 64 512 126.8 512s115.2-34 126-78.9c2.6-11-1-22.3-6.7-32.1L150.9 237.8c-5-8.6-14.2-13.8-24.1-13.8s-19.1 5.3-24.1 13.8L7.6 401.1c-5.7 9.8-9.3 21.1-6.7 32.1z\"],\n \"square-caret-left\": [448, 512, [\"caret-square-left\"], \"f191\", \"M0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96L0 416zM128 256c0-6.7 2.8-13 7.7-17.6l112-104c7-6.5 17.2-8.2 25.9-4.4S288 142.5 288 152l0 208c0 9.5-5.7 18.2-14.4 22s-18.9 2.1-25.9-4.4l-112-104c-4.9-4.5-7.7-10.9-7.7-17.6z\"],\n \"ruler\": [576, 512, [128207], \"f545\", \"M209.1 516.2c-18.7 18.7-49.1 18.7-67.9 0L28.1 403.1c-18.7-18.7-18.7-49.1 0-67.9l17-17 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 33.9-33.9 50.9 50.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-50.9-50.9 33.9-33.9 73.5 73.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-73.5-73.5 17-17c18.7-18.7 49.1-18.7 67.9 0L548.5 108.9c18.7 18.7 18.7 49.1 0 67.9L209.1 516.2z\"],\n \"i\": [320, 512, [105], \"49\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l96 0 0 320-96 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0 0-320 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"],\n \"volume-xmark\": [576, 512, [\"volume-mute\", \"volume-times\"], \"f6a9\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM367 175c-9.4 9.4-9.4 24.6 0 33.9l47 47-47 47c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l47-47 47 47c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-47-47 47-47c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-47 47-47-47c-9.4-9.4-24.6-9.4-33.9 0z\"],\n \"archway\": [512, 512, [], \"f557\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l448 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32zm0 384c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0 0-128c0-53 43-96 96-96s96 43 96 96l0 128 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-272-448 0 0 272z\"],\n \"person-digging\": [576, 512, [\"digging\"], \"f85e\", \"M208 40a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM10.5 181.3c5.9-11.9 20.3-16.7 32.2-10.7l24.6 12.3 12.2-20.4c18.9-31.5 53.2-50.5 89.6-50.5 46.2 0 87.7 30.5 100.5 75.4l32.2 112.7 92.9 46.4 25.8-43c5.8-9.6 16.2-15.5 27.4-15.5s21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S555.5 512 544 512l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2L370 387.8 21.3 213.5c-11.9-5.9-16.7-20.3-10.7-32.2zM94.3 307.4l112 56c10.8 5.4 17.7 16.5 17.7 28.6l0 88c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-68.2-61.3-30.7-36.3 109c-5.6 16.8-23.7 25.8-40.5 20.2S-3.9 486.6 1.7 469.9l48-144c2.9-8.8 9.5-15.9 18.1-19.4s18.3-3.2 26.6 .9z\"],\n \"gauge-high\": [512, 512, [62461, \"tachometer-alt\", \"tachometer-alt-fast\"], \"f625\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM288 96a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM256 416c35.3 0 64-28.7 64-64 0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64zM176 144a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM96 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm352-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"genderless\": [384, 512, [], \"f22d\", \"M192 128a128 128 0 1 1 0 256 128 128 0 1 1 0-256zm0 320a192 192 0 1 0 0-384 192 192 0 1 0 0 384z\"],\n \"cloud-sun\": [576, 512, [9925], \"f6c4\", \"M453.6-14.8c4.9 2 8.5 6.4 9.5 11.6L480 80 563.2 96.8c5.2 1.1 9.5 4.6 11.6 9.5s1.5 10.5-1.4 14.9l-46.9 70.7 46.9 70.7c2.9 4.4 3.5 10 1.4 14.9s-6.4 8.5-11.6 9.5L501 299.7c-11.9-8.7-25.1-15.6-39.4-20.4-2.5-12.7-6.8-24.7-12.7-35.7 9.5-14.9 15.1-32.6 15.1-51.7 0-53-43-96-96-96-47.9 0-87.6 35.1-94.8 80.9-26.5-20.3-59.5-32.5-95.4-32.9l-15.1-22.7c-2.9-4.4-3.5-10-1.4-14.9s6.4-8.5 11.6-9.5L256 80 272.8-3.2c1.1-5.2 4.6-9.5 9.5-11.6s10.5-1.5 14.9 1.4L368 33.6 438.7-13.3c4.4-2.9 10-3.5 14.9-1.4zM416 192c0 3.8-.4 7.5-1.3 11.1-21.7-17-49-27.1-78.7-27.1-4.6 0-9.1 .2-13.5 .7 6.4-19 24.4-32.7 45.5-32.7 26.5 0 48 21.5 48 48zM96 512c-53 0-96-43-96-96 0-42.5 27.6-78.6 65.9-91.2-1.3-6.7-1.9-13.7-1.9-20.8 0-61.9 50.1-112 112-112 43.1 0 80.5 24.3 99.2 60 14.7-17.1 36.5-28 60.8-28 44.2 0 80 35.8 80 80 0 5.5-.6 10.8-1.6 16 .5 0 1.1 0 1.6 0 53 0 96 43 96 96s-43 96-96 96L96 512z\"],\n \"arrow-right\": [512, 512, [8594], \"f061\", \"M502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l370.7 0-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160z\"],\n \"handshake\": [576, 512, [129309, 62662, \"handshake-alt\", \"handshake-simple\"], \"f2b5\", \"M268.9 85.2L152.3 214.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 182.7L223.4 64 183.8 64c-25.5 0-49.9 10.1-67.9 28.1L112 96 0 32 0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 441c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z\"],\n \"person-skiing\": [576, 512, [9975, \"skiing\"], \"f7c9\", \"M416 56a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM2.7 300.9c6.1-11.8 20.6-16.3 32.4-10.2l197.8 102.7 62.3-87.2-82-92.2c-11-12.4-16.2-27.5-16.2-42.4l111.6 53.4 42.9 48.2c14.9 16.7 16.2 41.6 3.2 59.8l-64.4 90.2 128.3 66.6c13.6 7.1 29.8 7.2 43.6 .3l15.2-7.6c11.9-5.9 26.3-1.1 32.2 10.7s1.1 26.3-10.7 32.2l-15.2 7.6c-27.5 13.7-59.9 13.5-87.2-.7L12.9 333.3C1.2 327.2-3.4 312.7 2.7 300.9zM103 49.6l18 8.7 8.7-17.4c4-7.9 13.6-11.1 21.5-7.2s11.1 13.6 7.2 21.5l-8.5 17 84.8 41 .4-.2 76.1-33.8c31.3-13.9 67.9-.7 83.2 29.9l28.9 57.8 68.7 27.5c16.4 6.6 24.4 25.2 17.8 41.6s-25.2 24.4-41.6 17.8L393.8 224c-10.9-4.4-19.8-12.6-25.1-23.1l-11.5-23.1c-16.4 9.4-25.9 14.8-28.5 16.3l-7.6-3.7-185.6-89.6-9.2 18.3c-4 7.9-13.6 11.1-21.5 7.2s-11.1-13.6-7.2-21.5l9-17.9-17.6-8.5C81.1 74.6 77.8 65 81.6 57S95 45.7 103 49.6z\"],\n \"bridge-water\": [640, 512, [], \"e4ce\", \"M64 64l512 0 0 112c-37.6 9.4-64 43.2-64 82l0 76.4c-21-9.7-43.5-14.5-66-14.4-10 .1-20.1 1.1-30 3.1l0-35.1c0-53-43-96-96-96s-96 43-96 96l0 32.7c-5.3-.5-10.7-.8-16-.7-27.7 .2-55.4 7.8-80 23l0-85c0-38.8-26.4-72.6-64-82L64 64zM403.4 444.1C379.1 462.3 351.1 480 320 480s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"],\n \"building-ngo\": [576, 512, [], \"e4d7\", \"M128 0C92.7 0 64 28.7 64 64l0 384c0 35.3 28.7 64 64 64l48 0 0-112c0-35.3 28.7-64 64-64l208 0 0-272c0-35.3-28.7-64-64-64L128 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM304 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM520 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-80c0-24.3-19.7-44-44-44l-16 0zm-4 44c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 80c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80zm-168 0l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-24c0-11-9-20-20-20l-8 0c-11 0-20 9-20 20 0 6.5 3.1 12.4 8 16l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l20.4 0c1.9 9.1 9.9 16 19.6 16 11 0 20-9 20-20 0-19.9-16.1-36-36-36l-24 0c-24.3 0-44 19.7-44 44zm-90.1-32.9c-4.1-8.3-13.5-12.7-22.5-10.5S220 390.7 220 400l0 128c0 11 9 20 20 20s20-9 20-20l0-43.3 26.1 52.2c4.1 8.3 13.5 12.7 22.5 10.5S324 537.3 324 528l0-128c0-11-9-20-20-20s-20 9-20 20l0 43.3-26.1-52.2z\"],\n \"igloo\": [576, 512, [], \"f7ae\", \"M320 33.8l0 126.2-271.5 0c51.7-77.2 139.6-128 239.5-128 10.8 0 21.5 .6 32 1.8zM368 160l0-116.7c66 19 122.2 61 159.5 116.7L368 160zM22.6 208l73.4 0 0 112-96 0c0-39.7 8-77.6 22.6-112zM176 320l-32 0 0-112 288 0 0 112-32 0 0 48 176 0 0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64 176 0 0-48zm304 0l0-112 73.4 0C568 242.4 576 280.3 576 320l-96 0zM288 288c-35.3 0-64 28.7-64 64l0 80 128 0 0-80c0-35.3-28.7-64-64-64z\"],\n \"circle-dollar-to-slot\": [576, 512, [\"donate\"], \"f4b9\", \"M96 224a192 192 0 1 1 384 0 192 192 0 1 1 -384 0zm176-92l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L248 272c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20zM48 344l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 344c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"y\": [384, 512, [121], \"59\", \"M58 45.4C47.8 31 27.8 27.7 13.4 38S-4.3 68.2 6 82.6L160 298.3 160 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-149.7 154-215.7c10.3-14.4 6.9-34.4-7.4-44.6S336.2 31 326 45.4L192 232.9 58 45.4z\"],\n \"face-smile-wink\": [512, 512, [128521, \"smile-wink\"], \"f4da\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm164 8c0 11-9 20-20 20s-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0c-11 0-20 9-20 20z\"],\n \"dice-four\": [448, 512, [9859], \"f524\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zm160 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zM352 160a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM320 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"face-grin-squint-tears\": [576, 512, [129315, \"grin-squint-tears\"], \"f586\", \"M560 35.4c0 25.6-18.8 47.3-44.1 50.9L469.1 93c-10.6 1.5-19.6-7.5-18.1-18.1l6.7-46.7C461.3 2.8 483-16 508.6-16 537-16 560 7 560 35.4zM403.5 68.1c-6 42.2 30.2 78.4 72.4 72.4l37.8-5.4C565.7 232 550.8 355.3 469 437s-205 96.6-301.9 44.7l5.4-37.8c6-42.2-30.2-78.4-72.4-72.4l-37.8 5.4C10.3 280 25.2 156.7 107 75S312-21.7 408.9 30.3l-5.4 37.8zM417.8 201c-19.1 36.4-45.6 72.7-78.9 106s-69.6 59.8-106 78.9c-11.1 5.8-12.4 21.4-1.1 26.6 59.2 27.5 131.8 16.8 180.6-32s59.5-121.4 32-180.6c-5.3-11.3-20.8-10-26.6 1.1zM113.9 270.6c1.7 8 9 13.4 17.1 12.7l43.1-3.9-3.9 43.1c-.7 8.1 4.7 15.5 12.7 17.1s15.9-2.9 18.4-10.6l28-84.6c1.9-5.7 .4-12.1-3.9-16.3s-10.6-5.8-16.3-3.9l-84.6 28c-7.7 2.6-12.3 10.5-10.6 18.5zM315.2 99.1c.7-8.1-4.7-15.5-12.7-17.1s-15.9 2.9-18.5 10.6l-28 84.6c-1.9 5.7-.4 12.1 3.9 16.3s10.6 5.8 16.3 3.9l84.6-28c7.7-2.6 12.3-10.5 10.6-18.4s-9-13.4-17.1-12.7l-43.1 3.9 3.9-43.1zM60.1 425.7l46.7-6.7c10.6-1.5 19.6 7.5 18.1 18.1l-6.7 46.7C114.7 509.2 93 528 67.4 528 39 528 16 505 16 476.6 16 451 34.8 429.3 60.1 425.7z\"],\n \"file-audio\": [384, 512, [], \"f1c7\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zm53.8 185.2c-9.1-6.3-21.5-4.1-27.8 5s-4.1 21.5 5 27.8c23.9 16.7 39.4 44.3 39.4 75.5s-15.6 58.9-39.4 75.5c-9.1 6.3-11.3 18.8-5 27.8s18.8 11.3 27.8 5c34.1-23.8 56.6-63.5 56.6-108.3S296 267.5 261.8 243.7zM80 312c-8.8 0-16 7.2-16 16l0 48c0 8.8 7.2 16 16 16l24 0 27.2 34c3 3.8 7.6 6 12.5 6l.3 0c8.8 0 16-7.2 16-16l0-128c0-8.8-7.2-16-16-16l-.3 0c-4.9 0-9.5 2.2-12.5 6l-27.2 34-24 0zm128 72.2c0 10.7 10.5 18.2 18.9 11.6 12.9-10.3 21.1-26.1 21.1-43.8s-8.2-33.5-21.1-43.8c-8.4-6.7-18.9 .9-18.9 11.6l0 64.5z\"],\n \"arrows-down-to-line\": [512, 512, [], \"e4b8\", \"M214.6 310.6l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 274.7 96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm256 0l-64 64c-12.5 12.5-32.8 12.5-45.3 0l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-242.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 242.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512z\"],\n \"g\": [448, 512, [103], \"47\", \"M224 96C135.6 96 64 167.6 64 256s71.6 160 160 160c77.4 0 142-55 156.8-128L256 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l144 0c25.8 0 49.6 21.4 47.2 50.6-9.5 115-105.8 205.4-223.2 205.4-123.7 0-224-100.3-224-224S100.3 32 224 32c57.4 0 109.7 21.6 149.3 57 13.2 11.8 14.3 32 2.5 45.2s-32 14.3-45.2 2.5C302.3 111.4 265 96 224 96z\"],\n \"vihara\": [576, 512, [], \"f6a7\", \"M273.6-3.2c8.5-6.4 20.3-6.4 28.8 0L443.2 102.4c8.3 6.2 18.4 9.6 28.8 9.6 13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 48 58.7 64 13.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 48 24.4 32 15.6 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-128 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-40 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l22.1 0 17.9-32 0-48-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l13.3 0 58.7-64 0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24c10.4 0 20.5-3.4 28.8-9.6L273.6-3.2zM128 368l320 0 0-48-320 0 0 48zM384 160l-192 0 0 48 192 0 0-48z\"],\n \"flag-checkered\": [448, 512, [127937], \"f11e\", \"M32 0C49.7 0 64 14.3 64 32l0 16 69-17.2c38.1-9.5 78.3-5.1 113.5 12.5 46.3 23.2 100.8 23.2 147.1 0l9.6-4.8C423.8 28.1 448 43.1 448 66.1l0 279.7c0 13.3-8.3 25.3-20.8 30l-34.7 13c-46.2 17.3-97.6 14.6-141.7-7.4-37.9-19-81.4-23.7-122.5-13.4L64 384 64 480c0 17.7-14.3 32-32 32S0 497.7 0 480L0 32C0 14.3 14.3 0 32 0zM64 187.1l64-13.9 0 65.5-64 13.9 0 65.5 48.8-12.2c5.1-1.3 10.1-2.4 15.2-3.3l0-63.9 38.9-8.4c8.3-1.8 16.7-2.5 25.1-2.1l0-64c13.6 .4 27.2 2.6 40.4 6.4l23.6 6.9 0 66.7-41.7-12.3c-7.3-2.1-14.8-3.4-22.3-3.8l0 71.4c21.8 1.9 43.3 6.7 64 14.4l0-69.8 22.7 6.7c13.5 4 27.3 6.4 41.3 7.4l0-64.2c-7.8-.8-15.6-2.3-23.2-4.5l-40.8-12 0-62c-13-3.8-25.8-8.8-38.2-15-8.2-4.1-16.9-7-25.8-8.8l0 72.4c-13-.4-26 .8-38.7 3.6l-25.3 5.5 0-75.2-64 16 0 73.1zM320 335.7c16.8 1.5 33.9-.7 50-6.8l14-5.2 0-71.7-7.9 1.8c-18.4 4.3-37.3 5.7-56.1 4.5l0 77.4zm64-149.4l0-70.8c-20.9 6.1-42.4 9.1-64 9.1l0 69.4c13.9 1.4 28 .5 41.7-2.6l22.3-5.2z\"],\n \"gauge-simple\": [512, 512, [\"gauge-simple-med\", \"tachometer-average\"], \"f629\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-26.9-16.5-49.9-40-59.3L280 120c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 172.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n \"right-left\": [512, 512, [\"exchange-alt\"], \"f362\", \"M502.6 150.6l-96 96c-9.2 9.2-22.9 11.9-34.9 6.9S352 236.9 352 224l0-64-320 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l320 0 0-64c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c9.2-9.2 22.9-11.9 34.9-6.9S160 275.1 160 288l0 64 320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9z\"],\n \"pills\": [512, 512, [], \"f484\", \"M64 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zM176 368c0-48.7 18.1-93.2 48-127l0-129C224 50.1 173.9 0 112 0S0 50.1 0 112L0 400c0 61.9 50.1 112 112 112 37.3 0 70.3-18.2 90.7-46.3-17-28.6-26.7-62-26.7-97.7zm64.7 67.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 264c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM297.9 472c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4-4.6-8.7-16.3-9.7-23.3-2.7L297.9 472z\"],\n \"explosion\": [512, 512, [], \"e4e9\", \"M256-32c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24zm0 160c12.4 0 22.7 9.4 23.9 21.7L293.4 291.6 467.6 11.3c6.7-10.7 20.5-14.5 31.7-8.5s15.8 19.5 10.6 31L372.8 338.6c2.2 2.3 4.3 4.7 6.3 7.1l97.2-54.7c10.5-5.9 23.6-3.1 30.9 6.4s6.3 23-2.2 31.5l-87 87-71.4 0c-13.2-37.3-48.7-64-90.5-64s-77.4 26.7-90.5 64l-79.6 0-75.5-52.3C.6 357-2.8 344.1 2.4 333.5s17.4-15.9 28.7-12.4l97.2 30.4c3-3.9 6.1-7.6 9.4-11.3L75.4 236.3c-6.1-10.1-3.9-23.1 5.1-30.7s22.2-7.5 31.1 .1L214 293.6c1.5-.4 3-.8 4.5-1.1l13.6-142.7c1.2-12.3 11.5-21.7 23.9-21.7zM32 464l456 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0z\"],\n \"arrows-down-to-people\": [512, 512, [], \"e4b9\", \"M113 153c-9.4 9.4-24.6 9.4-33.9 0L15 89C5.7 79.6 5.7 64.4 15 55S39.6 45.7 49 55L72 78.1 72-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zm320 0c-9.4 9.4-24.6 9.4-33.9 0L335 89c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l23 23 0-86.1c0-13.3 10.7-24 24-24s24 10.7 24 24l0 86.1 23-23c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-64 64zM256 192a56 56 0 1 1 0 112 56 56 0 1 1 0-112zm0 160c53 0 96 43 96 96l0 32c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32l0-32c0-53 43-96 96-96zM32 288a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm352 0a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM80 368c15.3 0 29.6 4.3 41.8 11.8-6.3 16.2-9.8 33.8-9.8 52.2l0 48c0 11.4 2.4 22.2 6.7 32l-87.8 0C13.8 512 0 498.2 0 481.1L0 448c0-44.2 35.8-80 80-80zM393.3 512c4.3-9.8 6.7-20.6 6.7-32l0-48c0-18.4-3.5-36-9.8-52.2 12.2-7.5 26.5-11.8 41.8-11.8 44.2 0 80 35.8 80 80l0 33.1c0 17-13.8 30.9-30.9 30.9l-87.8 0z\"],\n \"users-viewfinder\": [576, 512, [], \"e595\", \"M64 0C28.7 0 0 28.7 0 64l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-8.8 7.2-16 16-16l72 0c13.3 0 24-10.7 24-24S149.3 0 136 0L64 0zM440 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c8.8 0 16 7.2 16 16l0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72c0-35.3-28.7-64-64-64L440 0zM48 376c0-13.3-10.7-24-24-24S0 362.7 0 376l0 72c0 35.3 28.7 64 64 64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0c-8.8 0-16-7.2-16-16l0-72zm528 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72c0 8.8-7.2 16-16 16l-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l72 0c35.3 0 64-28.7 64-64l0-72zM288 216a56 56 0 1 0 0-112 56 56 0 1 0 0 112zm0 40c-53 0-96 43-96 96l0 24c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24l0-24c0-53-43-96-96-96zm192-64a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zM168 272.3c-49.3 4.1-88 45.3-88 95.7l0 10.7c0 11.8 9.6 21.3 21.3 21.3l46.8 0c-2.7-7.5-4.1-15.6-4.1-24l0-24c0-29.5 8.8-56.9 24-79.7zM427.9 400l46.8 0c11.8 0 21.3-9.6 21.3-21.3l0-10.7c0-50.3-38.7-91.6-88-95.7 15.2 22.8 24 50.2 24 79.7l0 24c0 8.4-1.4 16.5-4.1 24zM192 192a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"car-on\": [448, 512, [], \"e4dd\", \"M248-8c0-13.3-10.7-24-24-24S200-21.3 200-8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64zM145.3 208l157.5 0c6.7 0 12.6 4.1 15 10.4l26.1 69.6-239.6 0 26.1-69.6c2.3-6.2 8.3-10.4 15-10.4zM34 292.8l-1.3 3.4C13.2 307.1 0 328 0 352L0 480c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 288 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-128c0-24-13.2-44.9-32.8-55.9l-1.3-3.4-36.3-96.9c-11.7-31.2-41.6-51.9-74.9-51.9l-157.5 0c-33.3 0-63.2 20.7-74.9 51.9L34 292.8zM96 336a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm224 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM7 7C-2.3 16.4-2.3 31.6 7 41L55 89c9.4 9.4 24.6 9.4 33.9 0S98.3 64.4 89 55L41 7C31.6-2.3 16.4-2.3 7 7zM407 7L359 55c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l48-48c9.4-9.4 9.4-24.6 0-33.9S416.4-2.3 407 7z\"],\n \"sleigh\": [640, 512, [], \"f7cc\", \"M64 32C46.3 32 32 46.3 32 64S46.3 96 64 96l0 160c0 41.8 26.7 77.4 64 90.5l0 69.5-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l504 0c44.2 0 80-35.8 80-80l0-8c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8c0 17.7-14.3 32-32 32l-80 0 0-64c53 0 96-43 96-96l0-96c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-17.7 0-32 14.3-32 32l0 32c0 35.3-28.7 64-64 64l-48.9 0c-48.5 0-92.8-27.4-114.5-70.8l-25.2-50.5C237.7 59.4 193.4 32 144.9 32L64 32zM432 416l-256 0 0-64 256 0 0 64z\"],\n \"dumbbell\": [640, 512, [], \"f44b\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112 256 0 0-112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 16 16 0c26.5 0 48 21.5 48 48l0 48c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48c0 26.5-21.5 48-48 48l-16 0 0 16c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-112-256 0 0 112c0 26.5-21.5 48-48 48s-48-21.5-48-48l0-16-16 0c-26.5 0-48-21.5-48-48l0-48c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-48c0-26.5 21.5-48 48-48l16 0 0-16z\"],\n \"baby-carriage\": [512, 512, [\"carriage-baby\"], \"f77d\", \"M64 208l0 80c0 53 43 96 96 96l192 0c53 0 96-43 96-96l0-112 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-64 0c-13.3 0-24 10.7-24 24l0 56-336 0zm.2-48l223.8 0 0-128c0-17.7-14.3-32-32-32L232 0C141.9 0 68.4 70.9 64.2 160zM160 464a48 48 0 1 0 -96 0 48 48 0 1 0 96 0zm288 0a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"kiwi-bird\": [576, 512, [], \"f535\", \"M291.2 388.4c31.2-18.8 64.7-36.4 101.1-36.4l55.7 0c4.6 0 9.1-.2 13.6-.7l85.3 121.9c4 5.7 11.3 8.2 17.9 6.1S576 471 576 464l0-240c0-70.7-57.3-128-128-128l-55.7 0C355.9 96 322.4 78.4 291.2 59.6 262.3 42.1 228.3 32 192 32 86 32 0 118 0 224 0 295.1 38.6 357.1 96 390.3L96 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-46c15.3 3.9 31.4 6 48 6 5.4 0 10.7-.2 16-.7l0 40.7c0 13.3 10.7 24 24 24s24-10.7 24-24l0-50.9c12.4-4.4 24.2-10 35.2-16.7zM448 200a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"calendar-xmark\": [448, 512, [\"calendar-times\"], \"f273\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zM291.9 220.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z\"],\n \"circle-down\": [512, 512, [61466, \"arrow-alt-circle-down\"], \"f358\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM244.7 387.3l-104-104c-4.6-4.6-5.9-11.5-3.5-17.4s8.3-9.9 14.8-9.9l56 0 0-96c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 96 56 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-104 104c-6.2 6.2-16.4 6.2-22.6 0z\"],\n \"file-medical\": [384, 512, [], \"f477\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM160 280l0 40-40 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l40 0 0 40c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-40 40 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-40 0 0-40c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16z\"],\n \"xmark\": [384, 512, [128473, 10005, 10006, 10060, 215, \"close\", \"multiply\", \"remove\", \"times\"], \"f00d\", \"M55.1 73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L147.2 256 9.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192.5 301.3 329.9 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L237.8 256 375.1 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192.5 210.7 55.1 73.4z\"],\n \"shapes\": [512, 512, [\"triangle-circle-square\"], \"f61f\", \"M256 0c11.2 0 21.7 5.9 27.4 15.5l96 160c5.9 9.9 6.1 22.2 .4 32.2S363.5 224 352 224l-192 0c-11.5 0-22.2-6.2-27.8-16.2s-5.5-22.3 .4-32.2l96-160C234.3 5.9 244.8 0 256 0zM128 272a112 112 0 1 1 0 224 112 112 0 1 1 0-224zm200 16l112 0c22.1 0 40 17.9 40 40l0 112c0 22.1-17.9 40-40 40l-112 0c-22.1 0-40-17.9-40-40l0-112c0-22.1 17.9-40 40-40z\"],\n \"dice-one\": [448, 512, [9856], \"f525\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM224 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"lock-open\": [576, 512, [], \"f3c1\", \"M384 96c0-35.3 28.7-64 64-64s64 28.7 64 64l0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32c0-70.7-57.3-128-128-128S320 25.3 320 96l0 64-160 0c-35.3 0-64 28.7-64 64l0 224c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-224c0-35.3-28.7-64-64-64l-32 0 0-64z\"],\n \"pepper-hot\": [576, 512, [127798], \"f816\", \"M545 65c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L478.9 63.2C452.3 43.6 419.5 32 384 32 348.9 32 316.5 43.3 290.1 62.4 274.1 74.1 284.2 96 304 96l24 0c13.3 0 24 10.7 24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24 10.7 24 24l0 24c0 19.8 21.9 29.9 33.6 13.9 19.1-26.4 30.4-58.8 30.4-93.9 0-35.5-11.6-68.3-31.2-94.9L545 65zM270 135.5l-159.6 228C101.3 376.4 86.7 384 71 384l-7 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l27.1 0c65.7 0 129.7-20.2 183.5-57.8L440.5 306.1C435 295.9 432 284.2 432 272l-56 0c-39.8 0-72-32.2-72-72l0-56c-12.2 0-23.9-3-34-8.5z\"],\n \"droplet-slash\": [576, 512, [\"tint-slash\"], \"f5c7\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L463.6 397.8c10.5-23.8 16.4-50.1 16.4-77.8 0-91.2-130.2-274.1-166.6-323.5-5.9-8-15.2-12.5-25.2-12.5l-.4 0c-10 0-19.3 4.5-25.2 12.5-15.6 21.2-48.5 66.9-80.9 119.4L41-24.9zm92 227.7c-21.6 43.8-37 85.9-37 117.2 0 106 86 192 192 192 43.4 0 83.4-14.4 115.5-38.6L133 202.8z\"],\n \"droplet\": [384, 512, [128167, \"tint\"], \"f043\", \"M192 512C86 512 0 426 0 320 0 228.8 130.2 45.9 166.6-3.5 172.5-11.5 181.8-16 191.8-16l.4 0c10 0 19.3 4.5 25.2 12.5 36.4 49.4 166.6 232.3 166.6 323.5 0 106-86 192-192 192zM112 312c0-13.3-10.7-24-24-24s-24 10.7-24 24c0 75.1 60.9 136 136 136 13.3 0 24-10.7 24-24s-10.7-24-24-24c-48.6 0-88-39.4-88-88z\"],\n \"file-lines\": [384, 512, [128441, 128462, 61686, \"file-alt\", \"file-text\"], \"f15c\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM120 256c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"comments-dollar\": [576, 512, [], \"f653\", \"M192 320c106 0 192-78.8 192-176S298-32 192-32 0 46.8 0 144c0 39.6 14.3 76.2 38.4 105.6L2.8 316.8C-2.1 326.1-.4 337.5 7 345s18.9 9.2 28.2 4.2L116.8 306c23.1 9 48.5 14 75.2 14zm3.2 48c16.4 81.9 94.7 144 188.8 144 26.7 0 52.1-5 75.2-14l81.6 43.2c9.3 4.9 20.7 3.2 28.2-4.2s9.2-18.9 4.2-28.2l-35.6-67.2c24.1-29.4 38.4-66 38.4-105.6 0-82.4-61.7-151.5-145-170.7-11.5 115.8-115.8 201.2-235.8 202.7zM196 32c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7c-25.3-4.2-43.9-26.1-43.9-51.8 0-28.8 23.2-52.2 52-52.5l0-4c0-11 9-20 20-20z\"],\n \"magnifying-glass-location\": [512, 512, [\"search-location\"], \"f689\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM288 176c0-44.2-35.8-80-80-80s-80 35.8-80 80c0 48.8 46.5 111.6 68.6 138.6 6 7.3 16.8 7.3 22.7 0 22.1-27 68.6-89.8 68.6-138.6zm-112 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"file-invoice\": [384, 512, [], \"f570\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM64 384l0-64c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32L96 416c-17.7 0-32-14.3-32-32zM88 64l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24S74.7 64 88 64zm0 96l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"pentagon\": [576, 512, [], \"e790\", \"M316.4-3.1c-16.8-12.2-39.6-12.2-56.4 0L35.3 160.2c-16.8 12.2-23.9 33.9-17.4 53.7l85.8 264.1c6.4 19.8 24.9 33.2 45.7 33.2l277.7 0c20.8 0 39.2-13.4 45.7-33.2l85.8-264.1c6.4-19.8-.6-41.4-17.4-53.7L316.4-3.1z\"],\n \"republican\": [640, 512, [], \"f75e\", \"M0 192C0 103.6 71.6 32 160 32l224 0c88.4 0 160 71.6 160 160l0 64-544 0 0-64zm152-32a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm232 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM280 160a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM128 288l416 0 0 112c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48c0-17.7 14.3-32 32-32s32 14.3 32 32l0 48c0 44.2-35.8 80-80 80s-80-35.8-80-80l0-48-32 0 0 96c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-64-192 0 0 64c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-160 128 0z\"],\n \"shop\": [576, 512, [\"store-alt\"], \"f54f\", \"M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l56.8 113.7c3.6 7.2 5.5 15.1 5.5 23.2 0 27.3-21.2 49.7-48 51.6L512 448c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-96 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0z\"],\n \"film\": [448, 512, [127902, 62368, \"film-alt\", \"film-simple\"], \"f008\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM48 368l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 240l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm304-16c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM48 112l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16L64 96c-8.8 0-16 7.2-16 16zM352 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0z\"],\n \"building-circle-xmark\": [576, 512, [], \"e4d4\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-10.5-14.6-19-30.7-25.1-48l-74.9 0 0-80c0-17.7 14.3-32 32-32l32 0c2 0 4 .2 5.9 .5 6-23.6 16.3-45.4 30.1-64.5l-4 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 4c27.5-19.8 60.3-32.4 96-35.4L416 64c0-35.3-28.7-64-64-64L96 0zm32 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM272 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM128 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L454.6 400z\"],\n \"comments\": [576, 512, [128490, 61670], \"f086\", \"M384 144c0 97.2-86 176-192 176-26.7 0-52.1-5-75.2-14L35.2 349.2c-9.3 4.9-20.7 3.2-28.2-4.2s-9.2-18.9-4.2-28.2l35.6-67.2C14.3 220.2 0 183.6 0 144 0 46.8 86-32 192-32S384 46.8 384 144zm0 368c-94.1 0-172.4-62.1-188.8-144 120-1.5 224.3-86.9 235.8-202.7 83.3 19.2 145 88.3 145 170.7 0 39.6-14.3 76.2-38.4 105.6l35.6 67.2c4.9 9.3 3.2 20.7-4.2 28.2s-18.9 9.2-28.2 4.2L459.2 498c-23.1 9-48.5 14-75.2 14z\"],\n \"tags\": [576, 512, [], \"f02c\", \"M401.2 39.1L549.4 189.4c27.7 28.1 27.7 73.1 0 101.2L393 448.9c-9.3 9.4-24.5 9.5-33.9 .2s-9.5-24.5-.2-33.9L515.3 256.8c9.2-9.3 9.2-24.4 0-33.7L367 72.9c-9.3-9.4-9.2-24.6 .2-33.9s24.6-9.2 33.9 .2zM32.1 229.5L32.1 96c0-35.3 28.7-64 64-64l133.5 0c17 0 33.3 6.7 45.3 18.7l144 144c25 25 25 65.5 0 90.5L285.4 418.7c-25 25-65.5 25-90.5 0l-144-144c-12-12-18.7-28.3-18.7-45.3zm144-85.5a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"gun\": [576, 512, [], \"e19b\", \"M528 56c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 8-448 0C14.3 64 0 78.3 0 96L0 208c0 17.7 14.3 32 32 32l10 0c20.8 0 36.1 19.6 31 39.8L33 440.2c-2.4 9.6-.2 19.7 5.8 27.5S54.1 480 64 480l96 0c14.7 0 27.5-10 31-24.2L217 352 321.4 352c23.7 0 44.8-14.9 52.7-37.2l26.7-74.8 31.1 0c8.5 0 16.6-3.4 22.6-9.4l22.6-22.6 66.7 0c17.7 0 32-14.3 32-32l0-80c0-17.7-14.3-32-32-32l-16 0 0-8zM321.4 304l-92.5 0 16-64 105 0-21 58.7c-1.1 3.2-4.2 5.3-7.5 5.3zM80 128l384 0c8.8 0 16 7.2 16 16s-7.2 16-16 16L80 160c-8.8 0-16-7.2-16-16s7.2-16 16-16z\"],\n \"circle-check\": [512, 512, [61533, \"check-circle\"], \"f058\", \"M256 512a256 256 0 1 1 0-512 256 256 0 1 1 0 512zM374 145.7c-10.7-7.8-25.7-5.4-33.5 5.3L221.1 315.2 169 263.1c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c5 5 11.8 7.5 18.8 7s13.4-4.1 17.5-9.8L379.3 179.2c7.8-10.7 5.4-25.7-5.3-33.5z\"],\n \"id-card-clip\": [576, 512, [\"id-card-alt\"], \"f47f\", \"M256-32l64 0c17.7 0 32 14.3 32 32l0 64-128 0 0-64c0-17.7 14.3-32 32-32zM64 32l112 0 0 32c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-32 112 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32zM176 400c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM288 280a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"],\n \"moon\": [512, 512, [127769, 9214], \"f186\", \"M256 0C114.6 0 0 114.6 0 256S114.6 512 256 512c68.8 0 131.3-27.2 177.3-71.4 7.3-7 9.4-17.9 5.3-27.1s-13.7-14.9-23.8-14.1c-4.9 .4-9.8 .6-14.8 .6-101.6 0-184-82.4-184-184 0-72.1 41.5-134.6 102.1-164.8 9.1-4.5 14.3-14.3 13.1-24.4S322.6 8.5 312.7 6.3C294.4 2.2 275.4 0 256 0z\"],\n \"oil-well\": [576, 512, [], \"e532\", \"M528.3 61.3c-11.4-42.7-55.3-68-98-56.6L414.9 8.8C397.8 13.4 387.7 31 392.3 48l24.5 91.4-108.2 28.1-6.3-18.1C297.7 136.6 285.6 128 272 128s-25.7 8.6-30.2 21.4l-13.6 39-132.2 34.3 0-38.6c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 264-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-137.3 0-61.4-175.4-62.2 16.1 22.1 63.2-66.6 0 19.9-56.9-74.6 19.3-46.7 133.5-41.3 0 0-159.2 337.4-87.5 25.2 94c4.6 17.1 22.1 27.2 39.2 22.6l15.5-4.1c42.7-11.4 68-55.3 56.6-98L528.3 61.3zM205.1 448l16.8-48 100.2 0 16.8 48-133.8 0z\"],\n \"tachograph-digital\": [576, 512, [\"digital-tachograph\"], \"f566\", \"M0 128C0 92.7 28.7 64 64 64l448 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 32c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-32c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 352c-13.3 0-24 10.7-24 24s10.7 24 24 24l136 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 352zm256 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0zM496 192a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM88 312a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm104-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm56 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"tablet\": [448, 512, [\"tablet-android\"], \"f3fb\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM184 400l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"ruble-sign\": [448, 512, [8381, \"rouble\", \"rub\", \"ruble\"], \"f158\", \"M112 32C94.3 32 80 46.3 80 64l0 208-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 48-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 152 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-152 0 0-48 112 0c79.5 0 144-64.5 144-144S335.5 32 256 32L112 32zM256 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"],\n \"closed-captioning\": [512, 512, [], \"f20a\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm152 80l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80c0-4.4 3.6-8 8-8zm168 8c0-4.4 3.6-8 8-8l32 0c4.4 0 8 3.6 8 8 0 13.3 10.7 24 24 24s24-10.7 24-24c0-30.9-25.1-56-56-56l-32 0c-30.9 0-56 25.1-56 56l0 80c0 30.9 25.1 56 56 56l32 0c30.9 0 56-25.1 56-56 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 4.4-3.6 8-8 8l-32 0c-4.4 0-8-3.6-8-8l0-80z\"],\n \"pen\": [512, 512, [128394], \"f304\", \"M352.9 21.2L308 66.1 445.9 204 490.8 159.1C504.4 145.6 512 127.2 512 108s-7.6-37.6-21.2-51.1L455.1 21.2C441.6 7.6 423.2 0 404 0s-37.6 7.6-51.1 21.2zM274.1 100L58.9 315.1c-10.7 10.7-18.5 24.1-22.6 38.7L.9 481.6c-2.3 8.3 0 17.3 6.2 23.4s15.1 8.5 23.4 6.2l127.8-35.5c14.6-4.1 27.9-11.8 38.7-22.6L412 237.9 274.1 100z\"],\n \"plane\": [576, 512, [], \"f072\", \"M520 200c30.9 0 56 25.1 56 56s-25.1 56-56 56l-127.3 0-159.2 173.6c-6.1 6.6-14.6 10.4-23.6 10.4l-43.7 0c-10.9 0-18.6-10.7-15.2-21.1l54.3-162.9-99.7 0-52.8 66c-3 3.8-7.6 6-12.5 6l-19.8 0c-10.4 0-18-9.8-15.5-19.9L32 256 5 147.9C2.4 137.8 10.1 128 20.5 128l19.8 0c4.9 0 9.5 2.2 12.5 6l52.8 66 99.7 0-54.3-162.9C147.6 26.7 155.3 16 166.2 16l43.7 0c9 0 17.5 3.8 23.6 10.4L392.7 200 520 200z\"],\n \"images\": [576, 512, [], \"f302\", \"M96 96c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64l-320 0c-35.3 0-64-28.7-64-64L96 96zM24 128c13.3 0 24 10.7 24 24l0 296c0 8.8 7.2 16 16 16l360 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L64 512c-35.3 0-64-28.7-64-64L0 152c0-13.3 10.7-24 24-24zm168 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm196.5 11.5c-4.4-7.1-12.1-11.5-20.5-11.5s-16.1 4.4-20.5 11.5l-56.3 92.1-24.5-30.6c-4.6-5.7-11.4-9-18.7-9s-14.2 3.3-18.7 9l-64 80c-5.8 7.2-6.9 17.1-2.9 25.4S174.8 352 184 352l272 0c8.7 0 16.7-4.7 20.9-12.3s4.1-16.8-.5-24.3l-88-144z\"],\n \"mobile-screen\": [384, 512, [\"mobile-android-alt\"], \"f3cf\", \"M16 64C16 28.7 44.7 0 80 0L304 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L80 512c-35.3 0-64-28.7-64-64L16 64zM128 440c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-13.3 0-24 10.7-24 24zM304 64l-224 0 0 304 224 0 0-304z\"],\n \"guarani-sign\": [384, 512, [], \"e19a\", \"M192 0c-13.3 0-24 10.7-24 24l0 41.5C73.3 77.3 0 158.1 0 256S73.3 434.7 168 446.5l0 41.5c0 13.3 10.7 24 24 24s24-10.7 24-24l0-41.5c94.7-11.8 168-92.6 168-190.5 0-17.7-14.3-32-32-32l-136 0 0-93.8c25.3 4.8 47.9 17 65.6 34.3 12.6 12.4 32.9 12.2 45.3-.4s12.2-32.9-.5-45.3C297.2 90.2 258.8 70.8 216 65.5L216 24c0-13.3-10.7-24-24-24zM168 130.2l0 251.5C108.8 370.5 64 318.5 64 256s44.8-114.5 104-125.8zm48 251.5l0-93.8 100 0c-12.3 47.6-51.2 84.5-100 93.8z\"],\n \"bag-shopping\": [448, 512, [\"shopping-bag\"], \"f290\", \"M160 80c0-35.3 28.7-64 64-64s64 28.7 64 64l0 48-128 0 0-48zm-48 48l-64 0c-26.5 0-48 21.5-48 48L0 384c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-208c0-26.5-21.5-48-48-48l-64 0 0-48c0-61.9-50.1-112-112-112S112 18.1 112 80l0 48zm24 48a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm152 24a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"circle-right\": [512, 512, [61838, \"arrow-alt-circle-right\"], \"f35a\", \"M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zm387.3 11.3l-104 104c-4.6 4.6-11.5 5.9-17.4 3.5S256 366.5 256 360l0-56-96 0c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32l96 0 0-56c0-6.5 3.9-12.3 9.9-14.8s12.9-1.1 17.4 3.5l104 104c6.2 6.2 6.2 16.4 0 22.6z\"],\n \"phone-volume\": [576, 512, [\"volume-control-phone\"], \"f2a0\", \"M344-32c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM320 88c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24zM144.1 1.4c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c32.5 71.6 89 130 159.3 164.9L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5C523.4 470.1 460.9 525.3 384.6 509.2 209.6 472.1 71.9 334.4 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5z\"],\n \"cubes\": [512, 512, [], \"f1b3\", \"M284-1.3c-17.3-10-38.7-10-56 0L143.8 47.3c-17.3 10-28 28.5-28 48.5l0 101.9-88.3 51c-17.3 10-28 28.5-28 48.5l0 97.3c0 20 10.7 38.5 28 48.5l84.3 48.6c17.3 10 38.7 10 56 0l88.3-51 88.3 51c17.3 10 38.7 10 56 0L484.5 443c17.3-10 28-28.5 28-48.5l0-97.3c0-20-10.7-38.5-28-48.5l-88.3-51 0-101.9c0-20-10.7-38.5-28-48.5L284-1.3zM232 292.6l0 106.5-88.3 51c-1.2 .7-2.6 1.1-4 1.1l0-105.3 92.3-53.3zm231.4 .6c.7 1.2 1.1 2.6 1.1 4l0 97.3c0 2.9-1.5 5.5-4 6.9l-84.3 48.6c-1.2 .7-2.6 1.1-4 1.1l0-105.3 91.2-52.6zM348.3 95.8l0 101.9-92.3 53.3 0-106.5 91.2-52.6c.7 1.2 1.1 2.6 1.1 4z\"],\n \"phone\": [512, 512, [128222, 128379], \"f095\", \"M160.2 25C152.3 6.1 131.7-3.9 112.1 1.4l-5.5 1.5c-64.6 17.6-119.8 80.2-103.7 156.4 37.1 175 174.8 312.7 349.8 349.8 76.3 16.2 138.8-39.1 156.4-103.7l1.5-5.5c5.4-19.7-4.7-40.3-23.5-48.1l-97.3-40.5c-16.5-6.9-35.6-2.1-47 11.8l-38.6 47.2C233.9 335.4 177.3 277 144.8 205.3L189 169.3c13.9-11.3 18.6-30.4 11.8-47L160.2 25z\"],\n \"torii-gate\": [448, 512, [9961], \"f6a1\", \"M0 96L0 28.5C0 21.6 5.6 16 12.5 16 14.8 16 17 16.6 19 17.8L58 41.2C82.9 56.1 111.3 64 140.3 64l167.4 0c29 0 57.5-7.9 82.3-22.8l39-23.4c1.9-1.2 4.2-1.8 6.4-1.8 6.9 0 12.5 5.6 12.5 12.5L448 96c0 35.3-28.7 64-64 64l0 64 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-192 0 0 192c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-192-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-64C28.7 160 0 131.3 0 96zM128 224l64 0 0-64-64 0 0 64zm128 0l64 0 0-64-64 0 0 64z\"],\n \"bacon\": [576, 512, [129363], \"f7e5\", \"M557 96.7c14.4 14.4 12.4 38.4-4.3 50.2l-64.6 45.7c-43.7 30.9-79.2 71.9-103.4 119.6l-25.3 49.8c-25.1 49.3-62.1 91.5-107.8 122.6l-74.1 50.6c-13.1 8.9-30.7 7.3-41.8-3.9l-44.9-44.9 86.5-66.5c42.3-32.5 76.7-74.3 100.6-122l24.5-49.1c24.5-49 61.8-90.6 107.9-120.2l108.7-69.9 38 38zM484.2 23.9L384.3 88.2c-53.4 34.3-96.5 82.4-124.9 139.1l-24.5 49.1c-20.6 41.3-50.3 77.3-86.9 105.4l-91.4 70.3-36.9-36.9c-14.4-14.4-12.4-38.4 4.3-50.2l64.6-45.7c43.7-30.9 79.2-71.9 103.4-119.6l25.3-49.8C242.3 100.8 279.3 58.6 325 27.4l74.1-50.6c13.1-8.9 30.6-7.3 41.8 3.9l43.3 43.3z\"],\n \"person-falling-burst\": [576, 512, [], \"e547\", \"M256 0c17.7 0 32 14.3 32 32l0 5.4c0 55.2-23.7 107-63.9 143.1l62.9 75.5 89 0c15.1 0 29.3 7.1 38.4 19.2l43.2 57.6c10.6 14.1 7.7 34.2-6.4 44.8s-34.2 7.7-44.8-6.4L368 320 263.2 320 376.8 459.8c11.1 13.7 9.1 33.9-4.7 45s-33.9 9.1-45-4.7L137.4 266.6c-6.1 15-9.4 31.3-9.4 48l0 69.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-69.4c0-67.4 35.4-129.9 93.2-164.6l4.6-2.8C200.4 124 224 82.4 224 37.4l0-5.4c0-17.7 14.3-32 32-32zM16 88A56 56 0 1 1 128 88 56 56 0 1 1 16 88zm376-7.9c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48zm104 152c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0zm-54.5-97.5c-9.4-9.4-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-33.9 33.9c-9.4 9.4-24.6 9.4-33.9 0z\"],\n \"quote-right\": [448, 512, [8221, \"quote-right-alt\"], \"f10e\", \"M448 296c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136zm-256 0c0 66.3-53.7 120-120 120l-8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l8 0c30.9 0 56-25.1 56-56l0-8-64 0c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l64 0c35.3 0 64 28.7 64 64l0 136z\"],\n \"house-medical-flag\": [640, 512, [], \"e514\", \"M480 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM267.5 59.1L400 186.9 400 503.4c-9.4 5.4-20.3 8.6-32 8.6l-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0C12.6 304 0 291.4 0 275.9 0 268.3 3.1 261 8.6 255.7L212.5 59.1C219.9 52 229.7 48 240 48s20.1 4 27.5 11.1zM204.8 256.8l0 44-44 0c-9.7 0-17.6 7.9-17.6 17.6l0 35.2c0 9.7 7.9 17.6 17.6 17.6l44 0 0 44c0 9.7 7.9 17.6 17.6 17.6l35.2 0c9.7 0 17.6-7.9 17.6-17.6l0-44 44 0c9.7 0 17.6-7.9 17.6-17.6l0-35.2c0-9.7-7.9-17.6-17.6-17.6l-44 0 0-44c0-9.7-7.9-17.6-17.6-17.6l-35.2 0c-9.7 0-17.6 7.9-17.6 17.6z\"],\n \"prescription\": [448, 512, [], \"f5b1\", \"M32 0C14.3 0 0 14.3 0 32L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 50.7 0 128 128-105.4 105.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L288 397.3 393.4 502.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L333.3 352 438.6 246.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L288 306.7 202.2 220.9C251.4 209.1 288 164.8 288 112 288 50.1 237.9 0 176 0L32 0zM176 160l-112 0 0-96 112 0c26.5 0 48 21.5 48 48s-21.5 48-48 48z\"],\n \"dice-three\": [448, 512, [9858], \"f527\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm64 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm128 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"building-lock\": [576, 512, [], \"e4d6\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L96 512c-35.3 0-64-28.7-64-64L32 64zM176 384l0 80 80 0 0-64.1c0-13.7 1.9-27 5.5-39.6-5.7-5.2-13.2-8.3-21.5-8.3l-32 0c-17.7 0-32 14.3-32 32zM307 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM144 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM144 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm352 80.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"id-card\": [576, 512, [62147, \"drivers-license\"], \"f2c2\", \"M0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64L0 96zm0 48l576 0 0 272c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 144zM247.3 416c20.2 0 35.3-19.4 22.4-35-14.7-17.7-36.9-29-61.7-29l-64 0c-24.8 0-47 11.3-61.7 29-12.9 15.6 2.2 35 22.4 35l142.5 0zM176 312a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM360 208c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l112 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0z\"],\n \"circle-play\": [512, 512, [61469, \"play-circle\"], \"f144\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM188.3 147.1c-7.6 4.2-12.3 12.3-12.3 20.9l0 176c0 8.7 4.7 16.7 12.3 20.9s16.8 4.1 24.3-.5l144-88c7.1-4.4 11.5-12.1 11.5-20.5s-4.4-16.1-11.5-20.5l-144-88c-7.4-4.5-16.7-4.7-24.3-.5z\"],\n \"face-laugh-beam\": [512, 512, [128513, \"laugh-beam\"], \"f59a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM176 164c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"leaf\": [512, 512, [], \"f06c\", \"M471.3 6.7C477.7 .6 487-1.6 495.6 1.2 505.4 4.5 512 13.7 512 24l0 186.9c0 131.2-108.1 237.1-238.8 237.1-77 0-143.4-49.5-167.5-118.7-35.4 30.8-57.7 76.1-57.7 126.7 0 13.3-10.7 24-24 24S0 469.3 0 456C0 381.1 38.2 315.1 96.1 276.3 131.4 252.7 173.5 240 216 240l80 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-80 0c-39.7 0-77.3 8.8-111 24.5 23.3-70 89.2-120.5 167-120.5 66.4 0 115.8-22.1 148.7-44 19.2-12.8 35.5-28.1 50.7-45.3z\"],\n \"house-chimney-user\": [512, 512, [], \"e065\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM312 256a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM144 432c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80z\"],\n \"rotate-right\": [512, 512, [\"redo-alt\", \"rotate-forward\"], \"f2f9\", \"M488 192l-144 0c-9.7 0-18.5-5.8-22.2-14.8s-1.7-19.3 5.2-26.2l46.7-46.7c-75.3-58.6-184.3-53.3-253.5 15.9-75 75-75 196.5 0 271.5s196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c94.3-94.3 243.7-99.6 344.3-16.2L471 7c6.9-6.9 17.2-8.9 26.2-5.2S512 14.3 512 24l0 144c0 13.3-10.7 24-24 24z\"],\n \"tooth\": [448, 512, [129463], \"f5c9\", \"M145 5.7L224 32 303 5.7C314.3 1.9 326 0 337.9 0 398.7 0 448 49.3 448 110.1l0 68.5c0 29.4-9.5 58.1-27.2 81.6l-1.1 1.5c-12.9 17.2-21.3 37.4-24.3 58.7L373.7 471.9c-3.3 23-23 40.1-46.2 40.1-22.8 0-42.3-16.5-46-39L261.3 351.6c-3-18.2-18.8-31.6-37.3-31.6s-34.2 13.4-37.3 31.6L166.5 473c-3.8 22.5-23.2 39-46 39-23.2 0-42.9-17.1-46.2-40.1L52.6 320.5c-3-21.3-11.4-41.5-24.3-58.7l-1.1-1.5C9.5 236.7 0 208.1 0 178.7l0-68.5C0 49.3 49.3 0 110.1 0 122 0 133.7 1.9 145 5.7z\"],\n \"house-chimney-window\": [512, 512, [], \"e00d\", \"M234.2 8.6c12.3-11.4 31.3-11.4 43.5 0L368 92.3 368 80c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 101.5 37.8 35.1c9.6 9 12.8 22.9 8 35.1S493.2 272 480 272l-16 0 0 176c0 35.3-28.7 64-64 64l-288 0c-35.3 0-64-28.7-64-64l0-176-16 0c-13.2 0-25-8.1-29.8-20.3s-1.6-26.2 8-35.1l224-208zM216 224c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-80 0z\"],\n \"motorcycle\": [640, 512, [127949], \"f21c\", \"M280 16c-13.3 0-24 10.7-24 24s10.7 24 24 24l56.6 0 22.5 48.7-95.1 71.3c-33.4-25.1-75-40-120-40l-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0c78.5 0 143.2 59.6 151.2 136l-25.4 0c-11.2-59.2-63.3-104-125.8-104-70.7 0-128 57.3-128 128S73.3 480 144 480c62.5 0 114.5-44.8 125.8-104l50.2 0c13.3 0 24-10.7 24-24l0-22.5c0-45.1 25.7-85.4 65.5-107.7l12.1 26.1c-32.4 23.2-53.5 61.2-53.5 104.1 0 70.7 57.3 128 128 128s128-57.3 128-128-57.3-128-128-128c-10.7 0-21 1.3-30.9 3.8L433.8 160 488 160c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-53.3 0c-6.9 0-13.7 2.2-19.2 6.4l-17.1 12.8-24.6-53.3C369.9 21.4 361.4 16 352 16l-72 0zM445.8 300.4l28.4 61.6c5.6 12 19.8 17.3 31.8 11.7s17.3-19.8 11.7-31.8l-28.5-61.6c2.2-.2 4.4-.3 6.7-.3 39.8 0 72 32.2 72 72s-32.2 72-72 72-72-32.2-72-72c0-20.2 8.3-38.5 21.8-51.6zM144 424c-39.8 0-72-32.2-72-72s32.2-72 72-72c31.3 0 58 20 67.9 48L144 328c-13.3 0-24 10.7-24 24s10.7 24 24 24l67.9 0c-9.9 28-36.6 48-67.9 48z\"],\n \"backward-fast\": [512, 512, [9198, \"fast-backward\"], \"f049\", \"M492.2 477.6c-12 5-25.7 2.2-34.9-6.9L288 301.3 288 448c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9L64 301.3 64 448c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32S64 46.3 64 64L64 210.7 233.4 41.4c9.2-9.2 22.9-11.9 34.9-6.9S288 51.1 288 64l0 146.7 169.4-169.4c9.2-9.2 22.9-11.9 34.9-6.9S512 51.1 512 64l0 384c0 12.9-7.8 24.6-19.8 29.6z\"],\n \"address-book\": [512, 512, [62138, \"contact-book\"], \"f2b9\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L96 0zM208 288l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16 0-44.2 35.8-80 80-80zm-24-96a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM512 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zm0 128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64zM496 320c-8.8 0-16 7.2-16 16l0 64c0 8.8 7.2 16 16 16s16-7.2 16-16l0-64c0-8.8-7.2-16-16-16z\"],\n \"sailboat\": [512, 512, [], \"e445\", \"M240 35.9l0 348.1-224 0c-8.8 0-16 7.2-16 16 0 61.9 50.1 112 112 112l288 0c61.9 0 112-50.1 112-112 0-8.8-7.2-16-16-16l-208 0 0-48 161.7 0c12.9 0 20.5-14.4 13.2-25L269.2 26.9c-8.9-13-29.2-6.7-29.2 9zM192 320l0-184.2c0-16.1-21-22.1-29.6-8.5L47.3 311.5c-6.7 10.7 1 24.5 13.6 24.5L176 336c8.8 0 16-7.2 16-16z\"],\n \"book-bookmark\": [448, 512, [], \"e0bb\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48l-48 0 0 169.4c0 12.5-10.1 22.6-22.6 22.6-6 0-11.8-2.4-16-6.6L272 144 230.6 185.4c-4.2 4.2-10 6.6-16 6.6-12.5 0-22.6-10.1-22.6-22.6L192 0 96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32z\"],\n \"magnifying-glass-arrow-right\": [512, 512, [], \"e521\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM305 225c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z\"],\n \"microphone-lines\": [384, 512, [127897, \"microphone-alt\"], \"f3c9\", \"M96 96c0-53 43-96 96-96 50.3 0 91.6 38.7 95.7 88L232 88c-13.3 0-24 10.7-24 24s10.7 24 24 24l56 0 0 48-56 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l55.7 0c-4.1 49.3-45.3 88-95.7 88-53 0-96-43-96-96L96 96zM24 160c13.3 0 24 10.7 24 24l0 40c0 79.5 64.5 144 144 144s144-64.5 144-144l0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40c0 97.9-73.3 178.7-168 190.5l0 49.5 48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l48 0 0-49.5C73.3 402.7 0 321.9 0 224l0-40c0-13.3 10.7-24 24-24z\"],\n \"reply-all\": [576, 512, [\"mail-reply-all\"], \"f122\", \"M332.2 18.4c12 5 19.8 16.6 19.8 29.6l0 80 48 0c97.2 0 176 78.8 176 176 0 113.3-81.5 163.9-100.2 174.1-2.5 1.4-5.3 1.9-8.1 1.9-10.9 0-19.7-8.9-19.7-19.7 0-7.5 4.3-14.4 9.8-19.5 9.4-8.8 22.2-26.4 22.2-56.7 0-53-43-96-96-96l-32 0 0 80c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-160-160c-12.5-12.5-12.5-32.8 0-45.3l160-160c9.2-9.2 22.9-11.9 34.9-6.9zM205.6 23.1c9.4 9.4 9.4 24.6 0 33.9L54.6 208 205.6 358.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L10 231.2c-6.4-6-10-14.4-10-23.2s3.6-17.2 10-23.2L171.6 23.1c9.4-9.4 24.6-9.4 33.9 0z\"],\n \"universal-access\": [512, 512, [], \"f29a\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm161.5-86.1c-12.2-5.2-26.3 .4-31.5 12.6s.4 26.3 12.6 31.5l11.9 5.1c17.3 7.4 35.2 12.9 53.6 16.3l0 50.1c0 4.3-.7 8.6-2.1 12.6l-28.7 86.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l24.4-73.2c1.3-3.8 4.8-6.4 8.8-6.4s7.6 2.6 8.8 6.4l24.4 73.2c4.2 12.6 17.8 19.4 30.4 15.2S339 397 334.8 384.4l-28.7-86.1c-1.4-4.1-2.1-8.3-2.1-12.6l0-50.1c18.4-3.5 36.3-8.9 53.6-16.3l11.9-5.1c12.2-5.2 17.8-19.3 12.6-31.5s-19.3-17.8-31.5-12.6L338.7 175c-26.1 11.2-54.2 17-82.7 17s-56.5-5.8-82.7-17l-11.9-5.1zM256 160a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"toilet-paper\": [512, 512, [129531, 63263, \"toilet-paper-alt\", \"toilet-paper-blank\"], \"f71e\", \"M327.1 32c-8.8 11.1-16 23.1-21.9 34.8-21.4 42.7-33.2 98.4-33.2 157.2l0 264c0 30.9-25.1 56-56 56L56 544c-30.9 0-56-25.1-56-56L0 224C0 118 43 32 96 32l231.1 0zM416 416c-53 0-96-86-96-192s43-192 96-192 96 86 96 192-43 192-96 192zm0-128c17.7 0 32-28.7 32-64s-14.3-64-32-64-32 28.7-32 64 14.3 64 32 64z\"],\n \"vr-cardboard\": [576, 512, [], \"f729\", \"M512 96L64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l117.5 0c17 0 33.3-6.7 45.3-18.7l33.9-33.9c7.2-7.2 17.1-11.3 27.3-11.3s20.1 4.1 27.3 11.3l33.9 33.9c12 12 28.3 18.7 45.3 18.7L512 416c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64zM80 240a64 64 0 1 1 128 0 64 64 0 1 1 -128 0zm352-64a64 64 0 1 1 0 128 64 64 0 1 1 0-128z\"],\n \"pizza-slice\": [512, 512, [], \"f818\", \"M169.7 .9c-22.8-1.6-41.9 14-47.5 34.7L112.5 72C293.3 72.3 439.7 218.7 440 399.5l36.4-9.7c20.8-5.5 36.3-24.7 34.7-47.5-12.6-182.8-158.6-328.8-341.4-341.4zm222 411.5c.2-4.1 .3-8.2 .3-12.4 0-154.6-125.4-280-280-280-4.1 0-8.3 .1-12.4 .3L.5 491.9c-1.5 5.5 .1 11.4 4.1 15.4s9.9 5.6 15.4 4.1l371.6-99.1zM176 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 128a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 384a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"spray-can\": [576, 512, [], \"f5bd\", \"M192 0l64 0c17.7 0 32 14.3 32 32l0 80-128 0 0-80c0-17.7 14.3-32 32-32zM64 256c0-53 43-96 96-96l128 0c53 0 96 43 96 96l0 208c0 26.5-21.5 48-48 48l-224 0c-26.5 0-48-21.5-48-48l0-208zm240 80a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zM320 64a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 32a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm64 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm32 64a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM512 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM448 128a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"volume-low\": [448, 512, [128264, \"volume-down\"], \"f027\", \"M48 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L96 160 48 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48zM380.6 181.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C361.1 227.6 368 241 368 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C402.1 312.9 416 286.1 416 256s-13.9-56.9-35.5-74.5z\"],\n \"cross\": [384, 512, [128327, 10013], \"f654\", \"M176 0c-26.5 0-48 21.5-48 48l0 80-80 0c-26.5 0-48 21.5-48 48l0 32c0 26.5 21.5 48 48 48l80 0 0 208c0 26.5 21.5 48 48 48l32 0c26.5 0 48-21.5 48-48l0-208 80 0c26.5 0 48-21.5 48-48l0-32c0-26.5-21.5-48-48-48l-80 0 0-80c0-26.5-21.5-48-48-48L176 0z\"],\n \"person\": [384, 512, [129485, \"male\"], \"f183\", \"M248 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7l46.3 62.4c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C274 132 234.3 112 192 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3z\"],\n \"hourglass\": [384, 512, [9203, 62032, \"hourglass-empty\"], \"f254\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 11c0 42.4-16.9 83.1-46.9 113.1l-67.9 67.9 67.9 67.9c30 30 46.9 70.7 46.9 113.1l0 11c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-11c0-42.4 16.9-83.1 46.9-113.1l67.9-67.9-67.9-67.9C48.9 158.1 32 117.4 32 75l0-11C14.3 64 0 49.7 0 32zM96 64l0 11c0 25.5 10.1 49.9 28.1 67.9l67.9 67.9 67.9-67.9c18-18 28.1-42.4 28.1-67.9l0-11-192 0zm0 384l192 0 0-11c0-25.5-10.1-49.9-28.1-67.9l-67.9-67.9-67.9 67.9c-18 18-28.1 42.4-28.1 67.9l0 11z\"],\n \"fish\": [576, 512, [128031], \"f578\", \"M180.5 141.5C219.7 108.5 272.6 80 336 80s116.3 28.5 155.5 61.5c39.1 33 66.9 72.4 81 99.8 4.7 9.2 4.7 20.1 0 29.3-14.1 27.4-41.9 66.8-81 99.8-39.2 33.1-92 61.5-155.5 61.5s-116.3-28.5-155.5-61.5c-16.2-13.7-30.5-28.5-42.7-43.1L48.1 379.6c-12.5 7.3-28.4 5.3-38.7-4.9s-12.4-26-5.3-38.6L50 256 4.2 175.9c-7.2-12.6-5-28.4 5.3-38.6s26.1-12.2 38.7-4.9l89.7 52.3c12.2-14.6 26.5-29.4 42.7-43.1zM448 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"drumstick-bite\": [512, 512, [], \"f6d7\", \"M160 265.2c0 8.5-3.4 16.6-9.4 22.6l-26.8 26.8c-12.3 12.3-32.5 11.4-49.4 7.2-4.6-1.1-9.5-1.8-14.5-1.8-33.1 0-60 26.9-60 60s26.9 60 60 60c6.3 0 12 5.7 12 12 0 33.1 26.9 60 60 60s60-26.9 60-60c0-5-.6-9.8-1.8-14.5-4.2-16.9-5.2-37.1 7.2-49.4l26.8-26.8c6-6 14.1-9.4 22.6-9.4l89.2 0c6.3 0 12.4-.3 18.5-1 11.9-1.2 16.4-15.5 10.8-26-8.5-15.8-13.3-33.8-13.3-53 0-61.9 50.1-112 112-112 8 0 15.7 .8 23.2 2.4 11.7 2.5 24.1-5.9 22-17.6-14.7-82.3-86.7-144.8-173.2-144.8-97.2 0-176 78.8-176 176l0 89.2z\"],\n \"chart-simple\": [512, 512, [], \"e473\", \"M192 80c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-352zM0 272c0-26.5 21.5-48 48-48l32 0c26.5 0 48 21.5 48 48l0 160c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48L0 272zM432 96l32 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-288c0-26.5 21.5-48 48-48z\"],\n \"atom\": [448, 512, [9883], \"f5d2\", \"M224 398.8c-11.8 5.1-23.4 9.7-34.9 13.5 16.7 33.8 31 35.7 34.9 35.7s18.1-1.9 34.9-35.7c-11.4-3.9-23.1-8.4-34.9-13.5zM414 256c33 45.2 44.3 90.9 23.6 128-20.2 36.3-62.5 49.3-115.2 43.2-22 52.1-55.7 84.8-98.4 84.8s-76.4-32.7-98.4-84.8C72.9 433.3 30.6 420.3 10.4 384-10.3 346.9 1 301.2 34 256 1 210.8-10.3 165.1 10.4 128 30.6 91.7 72.9 78.7 125.6 84.8 147.6 32.7 181.2 0 224 0s76.4 32.7 98.4 84.8c52.7-6.1 95 6.8 115.2 43.2 20.7 37.1 9.4 82.8-23.6 128zm-65.8 67.4c-1.7 14.2-3.9 28-6.7 41.2 31.8 1.4 38.6-8.7 40.2-11.7 2.3-4.2 7-17.9-11.9-48.1-6.8 6.3-14 12.5-21.6 18.6zm-6.7-175.9c2.8 13.1 5 26.9 6.7 41.2 7.6 6.1 14.8 12.3 21.6 18.6 18.9-30.2 14.2-44 11.9-48.1-1.6-2.9-8.4-13-40.2-11.7zM258.9 99.7C242.1 65.9 227.9 64 224 64s-18.1 1.9-34.9 35.7c11.4 3.9 23.1 8.4 34.9 13.5 11.8-5.1 23.4-9.7 34.9-13.5zm-159 88.9c1.7-14.3 3.9-28 6.7-41.2-31.8-1.4-38.6 8.7-40.2 11.7-2.3 4.2-7 17.9 11.9 48.1 6.8-6.3 14-12.5 21.6-18.6zM78.2 304.8c-18.9 30.2-14.2 44-11.9 48.1 1.6 2.9 8.4 13 40.2 11.7-2.8-13.1-5-26.9-6.7-41.2-7.6-6.1-14.8-12.3-21.6-18.6zM304 256a80 80 0 1 0 -160 0 80 80 0 1 0 160 0zm-80-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"p\": [320, 512, [112], \"50\", \"M0 64C0 46.3 14.3 32 32 32l128 0c88.4 0 160 71.6 160 160S248.4 352 160 352l-96 0 0 96c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 288l96 0c53 0 96-43 96-96s-43-96-96-96l-96 0 0 192z\"],\n \"jet-fighter-up\": [512, 512, [], \"e518\", \"M206.8 47.8C202.3 58.5 200 70 200 81.6l0 100.4-152 114 0-48c0-13.3-10.7-24-24-24S0 234.7 0 248L0 392c0 13.3 10.7 24 24 24s24-10.7 24-24l0-8 152 0 0 54.4-66 52.8c-3.8 3-6 7.6-6 12.5l0 24.3c0 8.8 7.2 16 16 16l88 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 40 88 0c8.8 0 16-7.2 16-16l0-24.3c0-4.9-2.2-9.5-6-12.5l-66-52.8 0-54.4 152 0 0 8c0 13.3 10.7 24 24 24s24-10.7 24-24l0-144c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48-152-114 0-100.4c0-11.6-2.3-23.1-6.8-33.8l-27.1-65C274.4-26.2 265.7-32 256-32s-18.4 5.8-22.2 14.8l-27.1 65z\"],\n \"plug-circle-xmark\": [640, 512, [], \"e560\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"],\n \"sheet-plastic\": [384, 512, [], \"e571\", \"M0 448c0 35.3 28.7 64 64 64l149.5 0c17 0 33.3-6.7 45.3-18.7L365.3 386.7c12-12 18.7-28.3 18.7-45.3L384 64c0-35.3-28.7-64-64-64L64 0C28.7 0 0 28.7 0 64L0 448zm208 5.5l0-93.5c0-13.3 10.7-24 24-24l93.5 0-117.5 117.5zM153 105l-48 48c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l48-48c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9zm96 32L137 249c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L215 103c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9z\"],\n \"v\": [384, 512, [118], \"56\", \"M19.7 34.5c16.3-6.8 35 .9 41.8 17.2L192 364.8 322.5 51.7c6.8-16.3 25.5-24 41.8-17.2s24 25.5 17.2 41.8l-160 384c-5 11.9-16.6 19.7-29.5 19.7s-24.6-7.8-29.5-19.7L2.5 76.3c-6.8-16.3 .9-35 17.2-41.8z\"],\n \"list\": [512, 512, [\"list-squares\"], \"f03a\", \"M40 48C26.7 48 16 58.7 16 72l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24L40 48zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM16 232l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zM40 368c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"],\n \"solar-panel\": [576, 512, [], \"f5ba\", \"M121.8 32c-30 0-56 20.8-62.5 50.1L9.6 306.1C.7 346.1 31.1 384 72 384l184.1 0 0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l192 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64 184.1 0c40.9 0 71.4-37.9 62.5-77.9l-49.8-224C510.4 52.8 484.5 32 454.5 32L121.8 32zM245.6 96l85.2 0 7.3 88-99.8 0 7.3-88zm-55.5 88l-87.8 0 19.6-88 75.6 0-7.3 88zM91.6 232l94.5 0-7.3 88-106.7 0 19.6-88zm142.6 0l107.8 0 7.3 88-122.5 0 7.3-88zm156 0l94.5 0 19.6 88-106.7 0-7.3-88zM474 184l-87.8 0-7.3-88 75.6 0 19.6 88z\"],\n \"land-mine-on\": [576, 512, [], \"e51b\", \"M312 0l0 128c0 13.3-10.7 24-24 24s-24-10.7-24-24L264 0c0-13.3 10.7-24 24-24s24 10.7 24 24zM160 288c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 32 80 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48l80 0 0-32zM12 114.7c7.4-11 22.3-14 33.3-6.7l96 64c11 7.4 14 22.3 6.7 33.3s-22.3 14-33.3 6.7l-96-64c-11-7.4-14-22.3-6.7-33.3zM530.7 108c11-7.4 25.9-4.4 33.3 6.7s4.4 25.9-6.7 33.3l-96 64c-11 7.4-25.9 4.4-33.3-6.7s-4.4-25.9 6.7-33.3l96-64z\"],\n \"headphones\": [448, 512, [127911, 62863, \"headphones-alt\", \"headphones-simple\"], \"f025\", \"M64 224c0-88.4 71.6-160 160-160s160 71.6 160 160l0 37.5c-10-3.5-20.8-5.5-32-5.5l-16 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48l16 0c53 0 96-43 96-96l0-160C448 100.3 347.7 0 224 0S0 100.3 0 224L0 384c0 53 43 96 96 96l16 0c26.5 0 48-21.5 48-48l0-128c0-26.5-21.5-48-48-48l-16 0c-11.2 0-22 1.9-32 5.5L64 224z\"],\n \"bus\": [448, 512, [128653], \"f207\", \"M96 0C43 0 0 43 0 96L0 384c0 29.8 20.4 54.9 48 62l0 34c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-32 192 0 0 32c0 17.7 14.3 32 32 32l16 0c17.7 0 32-14.3 32-32l0-34c27.6-7.1 48-32.2 48-62l0-288c0-53-43-96-96-96L96 0zM64 176c0-17.7 14.3-32 32-32l104 0 0 112-104 0c-17.7 0-32-14.3-32-32l0-48zm184 80l0-112 104 0c17.7 0 32 14.3 32 32l0 48c0 17.7-14.3 32-32 32l-104 0zM96 320a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm256 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM152 72c0-13.3 10.7-24 24-24l96 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-96 0c-13.3 0-24-10.7-24-24z\"],\n \"file-powerpoint\": [384, 512, [], \"f1c4\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM152 256c-13.3 0-24 10.7-24 24l0 144c0 13.3 10.7 24 24 24s24-10.7 24-24l0-24 24 0c39.8 0 72-32.2 72-72s-32.2-72-72-72l-48 0zm48 96l-24 0 0-48 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24z\"],\n \"quote-left\": [448, 512, [8220, \"quote-left-alt\"], \"f10d\", \"M0 216C0 149.7 53.7 96 120 96l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64L0 216zm256 0c0-66.3 53.7-120 120-120l8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0c-30.9 0-56 25.1-56 56l0 8 64 0c35.3 0 64 28.7 64 64l0 64c0 35.3-28.7 64-64 64l-64 0c-35.3 0-64-28.7-64-64l0-136z\"],\n \"chevron-down\": [448, 512, [], \"f078\", \"M201.4 406.6c12.5 12.5 32.8 12.5 45.3 0l192-192c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 338.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l192 192z\"],\n \"earth-asia\": [512, 512, [127759, \"globe-asia\"], \"f57e\", \"M50 284.8c4.2 2.1 9 3.2 14 3.2l50.7 0c8.5 0 16.6 3.4 22.6 9.4l13.3 13.3c6 6 14.1 9.4 22.6 9.4l18.7 0c17.7 0 32-14.3 32-32l0-40c0-13.3 10.7-24 24-24s24-10.7 24-24l0-42.7c0-8.5 3.4-16.6 9.4-22.6l13.3-13.3c6-6 9.4-14.1 9.4-22.6L304 57c0-1.2-.1-2.3-.2-3.5-15.4-3.6-31.4-5.5-47.8-5.5-114.9 0-208 93.1-208 208 0 9.8 .7 19.4 2 28.8zm403.3 37.3c-3.2-1.4-6.7-2.1-10.5-2.1L432 320c-8.8 0-16-7.2-16-16s-7.2-16-16-16l-34.7 0c-8.5 0-16.6 3.4-22.6 9.4l-45.3 45.3c-6 6-9.4 14.1-9.4 22.6l0 18.7c0 17.7 14.3 32 32 32l18.7 0c8.5 0 16.6 3.4 22.6 9.4 2.2 2.2 4.7 4.1 7.3 5.5 39.3-25.4 69.5-63.6 84.6-108.8zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM128 368c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM272 256c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16zm48-112l0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32c0-8.8-7.2-16-16-16s-16 7.2-16 16z\"],\n \"cent-sign\": [384, 512, [], \"e3f5\", \"M208 0c17.7 0 32 14.3 32 32l0 25.4c43.6 5.2 83 24.5 113.3 53.1 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-24.4-23-57.2-37.1-93.3-37.1-75.1 0-136 60.9-136 136s60.9 136 136 136c36.2 0 69-14.1 93.3-37.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2C323 430.1 283.6 449.4 240 454.6l0 25.4c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-28C84.7 433.5 16 352.8 16 256S84.7 78.5 176 60l0-28c0-17.7 14.3-32 32-32z\"],\n \"shield-cat\": [512, 512, [], \"e572\", \"M269.4 2.9C265.2 1 260.7 0 256 0s-9.2 1-13.4 2.9L54.3 82.8c-22 9.3-38.4 31-38.3 57.2 .5 99.2 41.3 280.7 213.6 363.2 16.7 8 36.1 8 52.8 0 172.4-82.5 213.2-264 213.6-363.2 .1-26.2-16.3-47.9-38.3-57.2L269.4 2.9zM160 154.4c0-5.8 4.7-10.4 10.4-10.4l.2 0c3.4 0 6.5 1.6 8.5 4.3l40 53.3c3 4 7.8 6.4 12.8 6.4l48 0c5 0 9.8-2.4 12.8-6.4l40-53.3c2-2.7 5.2-4.3 8.5-4.3l.2 0c5.8 0 10.4 4.7 10.4 10.4L352 272c0 53-43 96-96 96s-96-43-96-96l0-117.6zM216 288a16 16 0 1 0 0-32 16 16 0 1 0 0 32zm96-16a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],\n \"school-circle-check\": [640, 512, [], \"e56b\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"martini-glass\": [512, 512, [127864, \"glass-martini-alt\"], \"f57b\", \"M2.4 51.8C7.4 39.8 19.1 32 32 32l448 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L288 301.3 288 448 352 448c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-146.7-214.6-214.6C.2 77.5-2.5 63.7 2.4 51.8zM354.7 144l48-48-293.5 0 48 48 197.5 0z\"],\n \"plug\": [448, 512, [128268], \"f1e6\", \"M128-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 64c0 95.1-69.2 174.1-160 189.3l0 66.7c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C101.2 398.1 32 319.1 32 224l0-64c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0 0-96c0-17.7 14.3-32 32-32z\"],\n \"panorama\": [576, 512, [], \"e209\", \"M43.9 48C19.7 48 0 67.7 0 91.9L0 420.1c0 24.3 19.7 43.9 43.9 43.9 5.5 0 10.7-1 15.7-2.9 12.9-4.9 103.4-37.1 228.4-37.1s215.5 32.3 228.4 37.1c5 1.9 10.2 2.9 15.7 2.9 24.3 0 43.9-19.7 43.9-43.9l0-328.2c0-24.3-19.7-43.9-43.9-43.9-5.5 0-10.7 1-15.7 2.9-12.9 4.9-103.4 37.1-228.4 37.1S72.5 55.7 59.6 50.9C54.6 49 49.4 48 43.9 48zM72 176a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zm264.1-16c7.5 0 14.6 3.6 19.1 9.6L479.7 336.2c5.9 7.9 6.4 18.5 1.3 26.9s-14.8 12.8-24.5 11.1c-45.8-7.8-103.3-14.2-168.4-14.2-65.6 0-123.4 6.5-169.3 14.4-9.8 1.7-19.7-2.9-24.7-11.5s-4.3-19.4 1.9-27.2L165.3 249c4.6-5.7 11.5-9 18.7-9s14.2 3.3 18.7 9l27.5 34.4 86.7-113.9c4.6-6 11.7-9.5 19.2-9.5z\"],\n \"clock-rotate-left\": [576, 512, [\"history\"], \"f1da\", \"M288 64c106 0 192 86 192 192S394 448 288 448c-65.2 0-122.9-32.5-157.6-82.3-10.1-14.5-30.1-18-44.6-7.9s-18 30.1-7.9 44.6C124.1 468.6 201 512 288 512 429.4 512 544 397.4 544 256S429.4 0 288 0C202.3 0 126.5 42.1 80 106.7L80 80c0-17.7-14.3-32-32-32S16 62.3 16 80l0 112c0 17.7 14.3 32 32 32l24.6 0c.5 0 1 0 1.5 0l86 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-38.3 0C154.9 102.6 217 64 288 64zm24 88c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 104c0 6.4 2.5 12.5 7 17l72 72c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-65-65 0-94.1z\"],\n \"jar-wheat\": [320, 512, [], \"e517\", \"M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm112 32l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 160c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7zm48 117.7c-11.7-13.3-28.9-21.7-48-21.7l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l75.6 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 256c-19.1 0-36.3 8.4-48 21.7zM112 352l-42.2 0c-3.2 0-5.8 2.6-5.8 5.8 0 32.1 26 58.2 58.2 58.2l21.8 0 0 32c0 8.8 7.2 16 16 16s16-7.2 16-16l0-32 21.8 0c32.1 0 58.2-26 58.2-58.2 0-3.2-2.6-5.8-5.8-5.8L208 352c-19.1 0-36.3 8.4-48 21.7-11.7-13.3-28.9-21.7-48-21.7z\"],\n \"cloud-arrow-down\": [576, 512, [62337, \"cloud-download\", \"cloud-download-alt\"], \"f0ed\", \"M144 480c-79.5 0-144-64.5-144-144 0-63.4 41-117.2 97.9-136.5-1.3-7.7-1.9-15.5-1.9-23.5 0-79.5 64.5-144 144-144 55.4 0 103.5 31.3 127.6 77.1 14.2-8.3 30.8-13.1 48.4-13.1 53 0 96 43 96 96 0 15.7-3.8 30.6-10.5 43.7 44 20.3 74.5 64.7 74.5 116.3 0 70.7-57.3 128-128 128l-304 0zM377 313c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72z\"],\n \"truck-ramp-box\": [576, 512, [\"truck-loading\"], \"f4de\", \"M400 32c-44.2 0-80 35.8-80 80l0 248.2-297.2 89.2C5.9 454.4-3.7 472.3 1.4 489.2s22.9 26.5 39.8 21.5l315.5-94.6 43.7 0c-.2 2.6-.4 5.3-.4 8 0 48.6 39.4 88 88 88s88-39.4 88-88l0-392-176 0zM528 424c0 22.1-17.9 40-40 40s-40-17.9-40-40 17.9-40 40-40c22.1 0 39.9 17.9 40 39.9l0 .1zM51.9 149.5C18.1 159.8-.9 195.6 9.4 229.4l28.1 91.8C47.8 355 83.6 374 117.4 363.7l91.8-28.1c33.8-10.3 52.8-46.1 42.5-79.9l-28.1-91.8c-10.3-33.8-46.1-52.8-79.9-42.5L51.9 149.5z\"],\n \"angle-down\": [384, 512, [8964], \"f107\", \"M169.4 374.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 306.7 54.6 169.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"],\n \"plug-circle-check\": [640, 512, [], \"e55c\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM352 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"],\n \"window-maximize\": [512, 512, [128470], \"f2d0\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm24 64l336 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L88 176c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"hands-holding-circle\": [640, 512, [], \"e4fb\", \"M320 0a128 128 0 1 1 0 256 128 128 0 1 1 0-256zM40 64c22.1 0 40 17.9 40 40l0 160.2c0 17 6.7 33.3 18.7 45.3l51.1 51.1c8.3 8.3 21.3 9.6 31 3.1 12.9-8.6 14.7-26.9 3.7-37.8-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0c24.1 24.1 39.9 39.9 47.2 47.2l0 0 25.3 25.3c21 21 32.8 49.5 32.8 79.2l0 78.9c0 26.5-21.5 48-48 48l-66.7 0c-17 0-33.3-6.7-45.3-18.7L28.1 393.4C10.1 375.4 0 351 0 325.5L0 104C0 81.9 17.9 64 40 64zm560 0c22.1 0 40 17.9 40 40l0 221.5c0 25.5-10.1 49.9-28.1 67.9L512 493.3c-12 12-28.3 18.7-45.3 18.7L400 512c-26.5 0-48-21.5-48-48l0-78.9c0-29.7 11.8-58.2 32.8-79.2l25.3-25.3 0 0c7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-24.1 24.1-39.9 39.9-47.2 47.2-11 11-9.2 29.2 3.7 37.8 9.7 6.5 22.7 5.2 31-3.1l51.1-51.1c12-12 18.7-28.3 18.7-45.3L560 104c0-22.1 17.9-40 40-40z\"],\n \"location-pin\": [384, 512, [\"map-marker\"], \"f041\", \"M192 0C86 0 0 84.4 0 188.6 0 307.9 120.2 450.9 170.4 505.4 182.2 518.2 201.8 518.2 213.6 505.4 263.8 450.9 384 307.9 384 188.6 384 84.4 298 0 192 0z\"],\n \"bowling-ball\": [512, 512, [], \"f436\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 80a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM208 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-64-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"cart-flatbed\": [576, 512, [\"dolly-flatbed\"], \"f474\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l16 0c8.8 0 16 7.2 16 16l0 288c0 39.8 29.1 72.8 67.1 79-2 5.3-3.1 11-3.1 17 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l197.5 0c-1.8 5-2.7 10.4-2.7 16 0 26.5 21.5 48 48 48s48-21.5 48-48c0-5.6-1-11-2.7-16l34.7 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-400 0c-8.8 0-16-7.2-16-16l0-288C128 35.8 92.2 0 48 0L32 0zM224 64c-26.5 0-48 21.5-48 48l0 176c0 26.5 21.5 48 48 48l240 0c26.5 0 48-21.5 48-48l0-176c0-26.5-21.5-48-48-48L224 64z\"],\n \"house-user\": [512, 512, [\"home-user\"], \"e1b0\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM200 256a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM144 432c0-44.2 35.8-80 80-80l64 0c44.2 0 80 35.8 80 80 0 8.8-7.2 16-16 16l-192 0c-8.8 0-16-7.2-16-16z\"],\n \"ghost\": [384, 512, [128123], \"f6e2\", \"M40.1 467.1l-11.2 9C25.7 478.6 21.8 480 17.8 480 8 480 0 472 0 462.2L0 192C0 86 86 0 192 0S384 86 384 192l0 270.2c0 9.8-8 17.8-17.8 17.8-4 0-7.9-1.4-11.1-3.9l-11.2-9c-13.4-10.7-32.8-9-44.1 3.9L269.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6l-26.6-30.5c-12.7-14.6-35.4-14.6-48.2 0L141.3 506c-3.3 3.8-8.2 6-13.3 6s-9.9-2.2-13.3-6L84.2 471c-11.3-12.9-30.7-14.6-44.1-3.9zM160 192a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 32a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"comment-nodes\": [640, 512, [], \"e696\", \"M480 208C503.7 208 525.6 215.3 543.7 227.9 536.9 100.9 425 0 288 0 146.6 0 32 107.5 32 240 32 294.3 51.2 344.3 83.6 384.5L34.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7c27.2 11.4 56.9 18.4 88.1 20.2 .1-18.9 4.9-38 15-55.5 17.1-29.7 45.8-48.5 77-54.2l9.2-16c-3.4-10.7-5.2-22-5.2-33.8 0-61.9 50.1-112 112-112zM328.6 448c-17.7 30.6-7.2 69.7 23.4 87.4s69.7 7.2 87.4-23.4c1.5-2.6 2.8-5.3 3.9-8l73.3 0c1.1 2.7 2.4 5.4 3.9 8 17.7 30.6 56.8 41.1 87.4 23.4s41.1-56.8 23.4-87.4c-13.4-23.2-39.1-34.8-64-31.4l-17.6-30.7c-11 11.7-25 20.6-40.6 25.6l16.5 28.9c-3.8 4.8-6.8 10-9 15.6l-73.4 0c-2.2-5.6-5.3-10.8-9-15.6l33-57.7c4.1 .8 8.4 1.3 12.8 1.3 35.3 0 64-28.7 64-64s-28.7-64-64-64-64 28.7-64 64c0 13.4 4.1 25.8 11.2 36.1l-34.6 60.5c-25-3.4-50.6 8.3-64 31.4z\"],\n \"person-arrow-down-to-line\": [576, 512, [], \"e538\", \"M192-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM318.3 299.1l-46.3-62.4 0 243.3 272 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 544c-17.7 0-32-14.3-32-32s14.3-32 32-32l80 0 0-243.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6zM176 480l32 0 0-128c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 128zM566.6 166.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L432 146.7 432 0c0-17.7 14.3-32 32-32s32 14.3 32 32l0 146.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3z\"],\n \"plug-circle-plus\": [640, 512, [], \"e55f\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm16 80c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 48-48 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l48 0 0 48c0 8.8 7.2 16 16 16s16-7.2 16-16l0-48 48 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-48 0 0-48z\"],\n \"person-swimming\": [640, 512, [127946, \"swimmer\"], \"f5c4\", \"M552 152a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zM293.4 198.2l-88.6 73.9c1.1 0 2.2-.1 3.3-.1 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 4.8 0 9.7 .2 14.5 .6-8.3-30-24.3-57.7-46.8-80.2-18.4-18.4-40.6-32.7-65-41.8l-68.6-25.7c-27.4-10.3-58-7.5-83.1 7.6l-53.5 32.1c-15.2 9.1-20.1 28.7-11 43.9s28.7 20.1 43.9 11L230 187.3c8.4-5 18.6-5.9 27.7-2.5l35.7 13.4zm110 181.9c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 386.3 17.6 394.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"],\n \"comment-dots\": [512, 512, [128172, 62075, \"commenting\"], \"f4ad\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM128 208a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm128 0a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"chart-pie\": [576, 512, [\"pie-chart\"], \"f200\", \"M512.4 240l-176 0c-17.7 0-32-14.3-32-32l0-176c0-17.7 14.4-32.2 31.9-29.9 107 14.2 191.8 99 206 206 2.3 17.5-12.2 31.9-29.9 31.9zM222.6 37.2c18.1-3.8 33.8 11 33.8 29.5l0 197.3c0 5.6 2 11 5.5 15.3L394 438.7c11.7 14.1 9.2 35.4-6.9 44.1-34.1 18.6-73.2 29.2-114.7 29.2-132.5 0-240-107.5-240-240 0-115.5 81.5-211.9 190.2-234.8zM477.8 288l64 0c18.5 0 33.3 15.7 29.5 33.8-10.2 48.4-35 91.4-69.6 124.2-12.3 11.7-31.6 9.2-42.4-3.9L374.9 340.4c-17.3-20.9-2.4-52.4 24.6-52.4l78.2 0z\"],\n \"frog\": [576, 512, [], \"f52e\", \"M368 32c41.7 0 75.9 31.8 79.7 72.5l85.6 26.3c25.4 7.8 42.8 31.3 42.8 57.9 0 21.8-11.7 41.9-30.7 52.7l-144.5 82.1 92.5 92.5 50.7 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-64 0c-8.5 0-16.6-3.4-22.6-9.4L346.9 360.2c11.7-36 3.2-77.1-25.4-105.7-40.6-40.6-106.3-40.6-146.9-.1L101 324.4c-6.4 6.1-6.7 16.2-.6 22.6s16.2 6.6 22.6 .6l73.8-70.2 .1-.1 .1-.1c3.5-3.5 7.3-6.6 11.3-9.2 27.9-18.5 65.9-15.4 90.5 9.2 24.7 24.7 27.7 62.9 9 90.9-2.6 3.8-5.6 7.5-9 10.9L261.8 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480C28.7 480 0 451.3 0 416 0 249.6 127 112.9 289.3 97.5 296.2 60.2 328.8 32 368 32zm0 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"wine-bottle\": [320, 512, [], \"f72f\", \"M80-32c0-17.7 14.3-32 32-32l96 0c17.7 0 32 14.3 32 32 0 11.8-6.4 22.2-16 27.7l0 145.6c56.5 24.7 96 81.1 96 146.7l0 224c0 35.3-28.7 64-64 64L64 576c-35.3 0-64-28.7-64-64L0 288c0-65.6 39.5-122 96-146.7L96-4.3C86.4-9.8 80-20.2 80-32zM96 288c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 288z\"],\n \"inbox\": [512, 512, [], \"f01c\", \"M91.8 32C59.9 32 32.9 55.4 28.4 86.9L.6 281.2c-.4 3-.6 6-.6 9.1L0 416c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-125.7c0-3-.2-6.1-.6-9.1L483.6 86.9C479.1 55.4 452.1 32 420.2 32L91.8 32zm0 64l328.5 0 27.4 192-59.9 0c-12.1 0-23.2 6.8-28.6 17.7l-14.3 28.6c-5.4 10.8-16.5 17.7-28.6 17.7l-120.4 0c-12.1 0-23.2-6.8-28.6-17.7l-14.3-28.6c-5.4-10.8-16.5-17.7-28.6-17.7L64.3 288 91.8 96z\"],\n \"square-h\": [448, 512, [\"h-square\"], \"f0fd\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM320 168l0 176c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-64-96 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 96 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"house-medical\": [512, 512, [], \"e3b2\", \"M277.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S18.8 272 32 272l16 0 0 176c0 35.3 28.7 64 64 64l288 0c35.3 0 64-28.7 64-64l0-176 16 0c13.2 0 25-8.1 29.8-20.3s1.6-26.2-8-35.1l-224-208zM224 248c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"circle-chevron-right\": [512, 512, [\"chevron-circle-right\"], \"f138\", \"M0 256a256 256 0 1 0 512 0 256 256 0 1 0 -512 0zM241 377c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l87-87-87-87c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0L345 239c9.4 9.4 9.4 24.6 0 33.9L241 377z\"],\n \"file-csv\": [576, 512, [], \"f6dd\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM264 380c-24.3 0-44 19.7-44 44l0 80c0 24.3 19.7 44 44 44l16 0c24.3 0 44-19.7 44-44l0-8c0-11-9-20-20-20s-20 9-20 20l0 8c0 2.2-1.8 4-4 4l-16 0c-2.2 0-4-1.8-4-4l0-80c0-2.2 1.8-4 4-4l16 0c2.2 0 4 1.8 4 4l0 8c0 11 9 20 20 20s20-9 20-20l0-8c0-24.3-19.7-44-44-44l-16 0zm136 0c-28.7 0-52 23.3-52 52s23.3 52 52 52c6.6 0 12 5.4 12 12s-5.4 12-12 12l-32 0c-11 0-20 9-20 20s9 20 20 20l32 0c28.7 0 52-23.3 52-52s-23.3-52-52-52c-6.6 0-12-5.4-12-12s5.4-12 12-12l24 0c11 0 20-9 20-20s-9-20-20-20l-24 0zm96 0c-11 0-20 9-20 20l0 31.6c0 35.5 10.5 70.3 30.2 99.8l5.1 7.7c3.7 5.6 10 8.9 16.6 8.9s12.9-3.3 16.6-8.9l5.1-7.7c19.7-29.6 30.2-64.3 30.2-99.8l0-31.6c0-11-9-20-20-20s-20 9-20 20l0 31.6c0 19.6-4.1 38.9-12 56.7-7.9-17.8-12-37.1-12-56.7l0-31.6c0-11-9-20-20-20z\"],\n \"hat-cowboy\": [640, 512, [], \"f8c0\", \"M182.2 76.1L130.8 307.5C145.5 324.9 167.4 336 192 336l256 0c24.6 0 46.5-11.1 61.2-28.5L457.8 76.1c-5.7-25.8-28.6-44.1-55-44.1-12.2 0-24.1 4-33.8 11.3l-4.7 3.5c-26.3 19.7-62.4 19.7-88.6 0L271 43.3c-9.8-7.3-21.6-11.3-33.8-11.3-26.4 0-49.3 18.3-55 44.1zM64 256c0-17.7-14.3-32-32-32S0 238.3 0 256C0 362 86 448 192 448l256 0c106 0 192-86 192-192 0-17.7-14.3-32-32-32s-32 14.3-32 32c0 70.7-57.3 128-128 128l-256 0c-70.7 0-128-57.3-128-128z\"],\n \"face-grin-tongue-wink\": [512, 512, [128540, \"grin-tongue-wink\"], \"f58b\", \"M152.2 490.1C62.5 450.2 0 360.4 0 256 0 114.6 114.6 0 256 0S512 114.6 512 256c0 104.4-62.5 194.2-152.2 234.1 5.3-13 8.2-27.2 8.2-42.1l0-61.7c16.9-16.5 30.1-36.7 38.3-59.3 4.3-11.8-7.7-21.8-19.6-18.1-39.2 12.2-83.7 19.1-130.7 19.1s-91.5-6.9-130.7-19.1c-11.9-3.7-23.9 6.3-19.6 18.1 8.3 22.6 21.5 42.8 38.3 59.3l0 61.7c0 14.9 2.9 29.1 8.2 42.1zM152 212l16 0c11 0 20 9 20 20s9 20 20 20 20-9 20-20c0-33.1-26.9-60-60-60l-16 0c-33.1 0-60 26.9-60 60 0 11 9 20 20 20s20-9 20-20 9-20 20-20zm184 60a64 64 0 1 0 0-128 64 64 0 1 0 0 128zM320 402.6l0 45.4c0 35.3-28.7 64-64 64s-64-28.7-64-64l0-45.4c0-14.7 11.9-26.6 26.6-26.6l2 0c11.3 0 21.1 7.9 23.6 18.9 2.8 12.6 20.8 12.6 23.6 0 2.5-11.1 12.3-18.9 23.6-18.9l2 0c14.7 0 26.6 11.9 26.6 26.6zM336 184a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"l\": [320, 512, [108], \"4c\", \"M64 32c17.7 0 32 14.3 32 32l0 352 192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 480c-17.7 0-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32z\"],\n \"arrow-down-short-wide\": [576, 512, [\"sort-amount-desc\", \"sort-amount-down-alt\"], \"f884\", \"M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zm0 128l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"hourglass-half\": [384, 512, [\"hourglass-2\"], \"f252\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 19-5.6 37.4-16 53L112 128c-10.3-15.6-16-34-16-53zm16 309c3.5-5.3 7.6-10.3 12.1-14.9l67.9-67.9 67.9 67.9c4.6 4.6 8.6 9.6 12.2 14.9L112 384z\"],\n \"spoon\": [512, 512, [129348, 61873, \"utensil-spoon\"], \"f2e5\", \"M245.8 220.9c-14.5-17.6-21.8-39.2-21.8-60.8 0-80.2 96-160.2 192-160.2 53 0 96 43 96 96 0 96-80 192-160.2 192-21.6 0-43.2-7.3-60.8-21.8L54.6 502.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L245.8 220.9z\"],\n \"credit-card\": [512, 512, [128179, 62083, \"credit-card-alt\"], \"f09d\", \"M0 128l0 32 512 0 0-32c0-35.3-28.7-64-64-64L64 64C28.7 64 0 92.7 0 128zm0 80L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-176-512 0zM64 360c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zm144 0c0-13.3 10.7-24 24-24l64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0c-13.3 0-24-10.7-24-24z\"],\n \"file-invoice-dollar\": [384, 512, [], \"f571\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM64 88c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64C74.7 64 64 74.7 64 88zm0 96c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm112 76l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L152 400c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20s-20 9-20 20z\"],\n \"spaghetti-monster-flying\": [640, 512, [\"pastafarianism\"], \"f67b\", \"M208 64a16 16 0 1 0 -32 0 16 16 0 1 0 32 0zm48 0c0 16.2-6 31.1-16 42.3l15.6 31.2c18.7-6 39.9-9.5 64.4-9.5s45.8 3.5 64.4 9.5L400 106.3c-10-11.3-16-26.1-16-42.3 0-35.3 28.7-64 64-64s64 28.7 64 64-28.7 64-64 64c-1.7 0-3.4-.1-5.1-.2L427.8 158c21.1 13.6 37.7 30.2 51.4 46.4 7.1 8.3 13.5 16.6 19.3 24l1.4 1.8c6.3 8.1 11.6 14.8 16.7 20.4 10.7 11.7 16.1 13.4 19.4 13.4 2.5 0 4.3-.6 7.1-3.3 3.7-3.5 7.1-8.8 12.5-17.4l.6-.9c4.6-7.4 11-17.6 19.4-25.7 9.7-9.3 22.9-16.7 40.4-16.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-2.5 0-4.3 .6-7.1 3.3-3.7 3.5-7.1 8.8-12.5 17.4l-.6 .9c-4.6 7.4-11 17.6-19.4 25.7-9.7 9.3-22.9 16.7-40.4 16.7-18.5 0-32.9-8.5-44.3-18.6-3.1 4-6.6 8.3-10.5 12.7 1.4 4.3 2.8 8.5 4 12.5 .9 3 1.8 5.8 2.6 8.6 3 9.8 5.5 18.2 8.6 25.9 3.9 9.8 7.4 15.4 10.8 18.5 2.6 2.4 5.9 4.3 12.8 4.3 8.7 0 16.9-4.2 33.7-13.2 15-8 35.7-18.8 62.3-18.8 13.3 0 24 10.7 24 24s-10.7 24-24 24c-13.4 0-24.7 5.2-39.7 13.2-1 .6-2.1 1.1-3.2 1.7-13.1 7.1-31.6 17.1-53.1 17.1-18.4 0-33.6-6.1-45.5-17.2-11.1-10.3-17.9-23.7-22.7-36-3.6-9-6.7-19.1-9.5-28.5-16.4 12.3-36.1 23.6-58.9 31.3 3.6 10.8 8.4 23.5 14.4 36.2 7.5 15.9 16.2 30.4 25.8 40.5 9.6 10.2 17.7 13.7 24.5 13.7 13.3 0 24 10.7 24 24s-10.7 24-24 24c-25.2 0-45-13.5-59.5-28.8-14.5-15.4-25.7-34.9-34.2-53-8-17-14.1-33.8-18.3-46.9-5.2 .4-10.6 .6-16 .6s-10.8-.2-16-.6c-4.2 13-10.3 29.9-18.3 46.9-8.5 18.1-19.8 37.6-34.2 53-14.4 15.3-34.3 28.8-59.5 28.8-13.3 0-24-10.7-24-24s10.7-24 24-24c6.8 0 15-3.5 24.5-13.7 9.5-10.1 18.3-24.6 25.8-40.5 5.9-12.6 10.7-25.4 14.4-36.2-22.8-7.7-42.5-19-58.9-31.3-2.9 9.4-6 19.5-9.5 28.5-4.8 12.2-11.6 25.6-22.7 36-11.9 11.1-27.1 17.2-45.5 17.2-13.1 0-24.5-4.1-33.8-8.9-7.9-4-15.7-9.2-22.1-13.5l0 0-2.4-1.6c-15.3-10.2-25.8-16-37.7-16-13.3 0-24-10.7-24-24s10.7-24 24-24c28.1 0 49.6 14.2 64.3 24l2.4 1.6c6.9 4.6 12.1 8.1 17.2 10.7 5.5 2.8 9.1 3.6 12 3.6 6.8 0 10.2-1.9 12.8-4.3 3.4-3.2 7-8.8 10.8-18.5 3-7.7 5.6-16.1 8.6-25.9 .8-2.7 1.7-5.6 2.6-8.6 1.2-4 2.6-8.2 4-12.5-3.9-4.5-7.4-8.8-10.5-12.7-11.4 10.1-25.9 18.6-44.3 18.6-17.5 0-30.7-7.4-40.4-16.7-8.4-8.1-14.8-18.3-19.4-25.7l-.6-.9c-5.4-8.6-8.8-13.9-12.5-17.4-2.8-2.7-4.6-3.3-7.1-3.3-13.3 0-24-10.7-24-24s10.7-24 24-24c17.5 0 30.7 7.4 40.4 16.7 8.4 8.1 14.8 18.3 19.4 25.7l.6 .9c5.4 8.6 8.8 13.9 12.5 17.4 2.8 2.7 4.6 3.3 7.1 3.3 3.3 0 8.7-1.7 19.4-13.4 5.1-5.6 10.4-12.3 16.7-20.4l1.4-1.8c5.8-7.4 12.2-15.7 19.3-24 13.8-16.2 30.3-32.8 51.4-46.4l-15.1-30.2c-1.7 .1-3.4 .2-5.1 .2-35.3 0-64-28.7-64-64s28.7-64 64-64 64 28.7 64 64zm208 0a16 16 0 1 0 -32 0 16 16 0 1 0 32 0z\"],\n \"martini-glass-citrus\": [640, 512, [\"cocktail\"], \"f561\", \"M576 80c0-44.2-35.8-80-80-80-18 0-34.6 6-48 16l-81 0c23.6-47.4 72.5-80 129-80 79.5 0 144 64.5 144 144S575.5 224 496 224c-6.5 0-13-.4-19.3-1.3l64-74.7c1.1-1.3 2.2-2.7 3.3-4.1 19.4-14.6 32-37.8 32-64zM66.9 82.6C72.2 71.3 83.5 64 96 64l384 0c12.5 0 23.8 7.3 29.1 18.6s3.4 24.7-4.8 34.2l-184.3 215 0 116.2 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0 0-116.2-184.3-215c-8.1-9.5-10-22.8-4.8-34.2zM165.6 128L288 270.8 410.4 128 165.6 128z\"],\n \"bullhorn\": [512, 512, [128226, 128363], \"f0a1\", \"M461.2 18.9C472.7 24 480 35.4 480 48l0 416c0 12.6-7.3 24-18.8 29.1s-24.8 3.2-34.3-5.1l-46.6-40.7c-43.6-38.1-98.7-60.3-156.4-63l0 95.7c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-96C57.3 384 0 326.7 0 256S57.3 128 128 128l84.5 0c61.8-.2 121.4-22.7 167.9-63.3l46.6-40.7c9.4-8.3 22.9-10.2 34.3-5.1zM224 320l0 .2c70.3 2.7 137.8 28.5 192 73.4l0-275.3c-54.2 44.9-121.7 70.7-192 73.4L224 320z\"],\n \"box-tissue\": [512, 512, [], \"e05b\", \"M103.9 32l161 0c13.8 0 26 8.8 30.4 21.9l17.4 52.2c4.4 13.1 16.6 21.9 30.4 21.9l60.5 0c21.8 0 37.3 21.4 30.4 42.1L384 320 128 320 72.7 70.9C68.2 51 83.4 32 103.9 32zM48 256l16.6 0 16.5 74.4C86 352.4 105.5 368 128 368l256 0c20.7 0 39-13.2 45.5-32.8l26.4-79.2 8.1 0c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48L0 304c0-26.5 21.5-48 48-48z\"],\n \"mattress-pillow\": [576, 512, [], \"e525\", \"M256 64L64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l192 0 0-384zm48 384l208 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64l-208 0 0 384zM64 160c0-17.7 14.3-32 32-32l64 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-192z\"],\n \"chevron-left\": [320, 512, [9001], \"f053\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l192 192c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 246.6 86.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-192 192z\"],\n \"cloud-moon-rain\": [576, 512, [], \"f73c\", \"M448 0c-68.6 0-127.1 43.1-149.8 103.8 17.1 14.1 29.6 33.5 34.9 55.8 39.9 21.7 66.9 63.9 66.9 112.5 0 13.5-2.1 26.5-5.9 38.7 16.9 6 35 9.3 53.9 9.3 43 0 82.1-17 110.8-44.6 4.6-4.4 5.9-11.2 3.3-17s-8.6-9.3-14.9-8.8c-3 .2-6.1 .4-9.2 .4-63.5 0-115-51.5-115-115 0-45.1 26-84.2 63.8-103 5.7-2.8 9-8.9 8.2-15.2S489.6 5.3 483.4 3.9C472 1.4 460.2 0 448 0zM272 352c44.2 0 80-35.8 80-80 0-39-27.9-71.5-64.8-78.6 .5-3.1 .8-6.2 .8-9.4 0-30.9-25.1-56-56-56-12.4 0-23.9 4-33.1 10.8-13.4-25.5-40.1-42.8-70.9-42.8-44.2 0-80 35.8-80 80 0 7.4 1 14.6 2.9 21.5-29.8 11.6-50.9 40.6-50.9 74.5 0 44.2 35.8 80 80 80l192 0zM69 401.1c-12.6-4.2-26.2 2.6-30.4 15.2L17.2 480.4C13 493 19.8 506.6 32.4 510.8s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4zm120 0c-12.6-4.2-26.2 2.6-30.4 15.2l-21.4 64.1c-4.2 12.6 2.6 26.2 15.2 30.4s26.2-2.6 30.4-15.2l21.4-64.1c4.2-12.6-2.6-26.2-15.2-30.4z\"],\n \"arrow-down-1-9\": [512, 512, [\"sort-numeric-asc\", \"sort-numeric-down\"], \"f162\", \"M418.7 38c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4zM365.1 430.6l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 336a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM150.6 470.6c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96z\"],\n \"hand-spock\": [512, 512, [128406], \"f259\", \"M214.9 23.7C210.3 6.6 192.8-3.5 175.7 1.1s-27.2 22.1-22.6 39.2L206 237.8c2.5 9.2-4.5 18.2-14 18.2-6.4 0-12-4.2-13.9-10.3L134.6 102.7c-5.1-16.9-23-26.4-39.9-21.3s-26.4 23-21.3 39.9l62.8 206.4c2.4 7.9-7.2 13.8-13.2 8.1L67.6 283c-16-15.2-41.3-14.6-56.6 1.4S-3.6 325.7 12.4 341L124.8 448c43.1 41.1 100.4 64 160 64l19.1 0c.1 0 .1-.1 .1-.1s.1-.1 .1-.1c58.3-3.5 108.6-43.2 125.3-99.7l81.2-275c5-16.9-4.7-34.7-21.6-39.8s-34.7 4.7-39.8 21.6L411.5 247.1c-1.6 5.3-6.4 8.9-12 8.9-7.9 0-13.8-7.3-12.2-15.1l36-170.3c3.7-17.3-7.4-34.3-24.7-37.9s-34.3 7.4-37.9 24.7L323.1 235.1c-2.6 12.2-13.3 20.9-25.8 20.9-11.9 0-22.4-8-25.4-19.5l-57-212.8z\"],\n \"wand-magic-sparkles\": [576, 512, [\"magic-wand-sparkles\"], \"e2ca\", \"M263.4-27L278.2 9.8 315 24.6c3 1.2 5 4.2 5 7.4s-2 6.2-5 7.4L278.2 54.2 263.4 91c-1.2 3-4.2 5-7.4 5s-6.2-2-7.4-5L233.8 54.2 197 39.4c-3-1.2-5-4.2-5-7.4s2-6.2 5-7.4L233.8 9.8 248.6-27c1.2-3 4.2-5 7.4-5s6.2 2 7.4 5zM110.7 41.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7L59.8 164.2 9.7 142.7C3.8 140.2 0 134.4 0 128s3.8-12.2 9.7-14.7L59.8 91.8 81.3 41.7C83.8 35.8 89.6 32 96 32s12.2 3.8 14.7 9.7zM464 304c6.4 0 12.2 3.8 14.7 9.7l21.5 50.1 50.1 21.5c5.9 2.5 9.7 8.3 9.7 14.7s-3.8 12.2-9.7 14.7l-50.1 21.5-21.5 50.1c-2.5 5.9-8.3 9.7-14.7 9.7s-12.2-3.8-14.7-9.7l-21.5-50.1-50.1-21.5c-5.9-2.5-9.7-8.3-9.7-14.7s3.8-12.2 9.7-14.7l50.1-21.5 21.5-50.1c2.5-5.9 8.3-9.7 14.7-9.7zM460 0c11 0 21.6 4.4 29.5 12.2l42.3 42.3C539.6 62.4 544 73 544 84s-4.4 21.6-12.2 29.5l-88.2 88.2-101.3-101.3 88.2-88.2C438.4 4.4 449 0 460 0zM44.2 398.5L308.4 134.3 409.7 235.6 145.5 499.8C137.6 507.6 127 512 116 512s-21.6-4.4-29.5-12.2L44.2 457.5C36.4 449.6 32 439 32 428s4.4-21.6 12.2-29.5z\"],\n \"comment-medical\": [512, 512, [], \"f7f5\", \"M256 480c141.4 0 256-107.5 256-240S397.4 0 256 0 0 107.5 0 240c0 54.3 19.2 104.3 51.6 144.5L2.8 476.8c-4.8 9-3.3 20 3.6 27.5s17.8 9.8 27.1 5.8l118.4-50.7C183.7 472.6 218.9 480 256 480zM217.6 153.6c0-10.6 8.6-19.2 19.2-19.2l38.4 0c10.6 0 19.2 8.6 19.2 19.2l0 48 48 0c10.6 0 19.2 8.6 19.2 19.2l0 38.4c0 10.6-8.6 19.2-19.2 19.2l-48 0 0 48c0 10.6-8.6 19.2-19.2 19.2l-38.4 0c-10.6 0-19.2-8.6-19.2-19.2l0-48-48 0c-10.6 0-19.2-8.6-19.2-19.2l0-38.4c0-10.6 8.6-19.2 19.2-19.2l48 0 0-48z\"],\n \"bell-slash\": [576, 512, [128277, 61943], \"f1f6\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-87.5-87.5c17.2-2.4 30.5-17.3 30.5-35.2 0-8.1-2.7-15.9-7.8-22.2l-9.8-12.2C464.4 308.5 448 261.8 448 213.7l0-21.7c0-77.4-55-142-128-156.8l0-3.2c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 3.2c-38.6 7.8-72.2 29.6-95.2 59.7L41-24.9zm87 238.5c0 48.1-16.4 94.8-46.4 132.4l-9.8 12.2c-5 6.3-7.8 14.1-7.8 22.2 0 19.6 15.9 35.5 35.5 35.5l235.3 0-206.9-206.9 0 4.5zM288 512c29.8 0 54.9-20.4 62-48l-124 0c7.1 27.6 32.2 48 62 48z\"],\n \"handshake-slash\": [576, 512, [57439, \"handshake-alt-slash\", \"handshake-simple-slash\"], \"e060\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-288-288 14.2-14.2c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 376 576 320 576 32 464 96 440.2 80.1C424.4 69.6 405.9 64 386.9 64l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1l-55.8 62.1-34-34 44.3-49.2-39.7 0c-15.3 0-30.1 3.6-43.5 10.4L41-24.9zM0 69.8L0 320 156.4 450.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c22.2 0 43.8-5.8 62.8-16.4L0 69.8z\"],\n \"bottle-water\": [320, 512, [], \"e4c5\", \"M112-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0C94.3 32 80 17.7 80 0s14.3-32 32-32zM16 144c0-35.3 28.7-64 64-64l160 0c35.3 0 64 28.7 64 64 0 24.1-13.3 45.1-33 56 19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56s-13.3 45.1-33 56c19.7 10.9 33 31.9 33 56 0 35.3-28.7 64-64 64L80 544c-35.3 0-64-28.7-64-64 0-24.1 13.3-45.1 33-56-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56s13.3-45.1 33-56c-19.7-10.9-33-31.9-33-56z\"],\n \"dice-d20\": [512, 512, [], \"f6cf\", \"M224.4-8.2c19.6-11.1 43.6-11.1 63.1 0l192 108.8c20 11.4 32.4 32.6 32.4 55.7l0 215.6c0 23-12.4 44.3-32.4 55.7l-192 108.8c-19.6 11.1-43.6 11.1-63.1 0L32.4 427.5C12.4 416.1 0 394.8 0 371.8L0 156.2c0-23 12.4-44.3 32.4-55.7L224.4-8.2zm52 73.2C267 49.8 245 49.8 235.6 65l-76.6 123.7-85.4-46.3-3.8-1.6c-8.9-2.7-18.8 1.1-23.4 9.6s-2.4 18.9 4.7 24.8l3.3 2.3 83.4 45.2-74.6 120.6C55.3 356.2 61 373 75 378.4l161 61.9 0 39.7c0 11 9 20 20 20s20-9 20-20l0-39.7 161-61.9c14-5.4 19.7-22.2 11.8-35l-74.7-120.6 83.4-45.2c9.7-5.3 13.3-17.4 8.1-27.1s-17.4-13.3-27.1-8.1L353 188.7 276.4 65zm-47 329.9l-122-46.9 54.5-88.1 67.5 135zM404.6 348l-122 46.9 67.5-135 54.5 88.1zM319.3 232L256 358.6 192.7 232 319.3 232zM308 192l-104.1 0 52-84 52 84z\"],\n \"arrow-down-z-a\": [512, 512, [\"sort-alpha-desc\", \"sort-alpha-down-alt\"], \"f881\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM288 64c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 160 448 160c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9L370.8 96 320 96c-17.7 0-32-14.3-32-32zM412.6 273.7l80 160c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9l80-160c5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 359.6l-20.2 40.4 40.4 0-20.2-40.4z\"],\n \"brush\": [384, 512, [], \"f55d\", \"M162.4 6c-1.5-3.6-5-6-8.9-6l-19 0c-3.9 0-7.5 2.4-8.9 6L104.9 57.7c-3.2 8-14.6 8-17.8 0L66.4 6c-1.5-3.6-5-6-8.9-6L48 0C21.5 0 0 21.5 0 48l0 208 384 0 0-208c0-26.5-21.5-48-48-48L230.5 0c-3.9 0-7.5 2.4-8.9 6L200.9 57.7c-3.2 8-14.6 8-17.8 0L162.4 6zM0 304l0 16c0 35.3 28.7 64 64 64l64 0 0 64c0 35.3 28.7 64 64 64s64-28.7 64-64l0-64 64 0c35.3 0 64-28.7 64-64l0-16-384 0zM192 464c-8.8 0-16-7.2-16-16s7.2-16 16-16 16 7.2 16 16-7.2 16-16 16z\"],\n \"person-walking-dashed-line-arrow-right\": [640, 512, [], \"e553\", \"M160 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM73.4 227.9l22.6-22.6 0 69.3c0 28 12.2 54.7 33.5 72.9l71.4 61.2c5.9 5.1 9.8 12.1 10.9 19.8l12.6 88.1c2.5 17.5 18.7 29.7 36.2 27.2s29.7-18.7 27.2-36.2l-12.6-88.1c-3.3-23.1-14.9-44.1-32.6-59.3l-34.5-29.6 0-115.2 3.8 4.7c18.2 22.8 45.8 36 75 36l33.2 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-33.2 0c-9.7 0-18.9-4.4-25-12l-17.9-22.4c-23-28.8-57.9-45.6-94.8-45.6-32.2 0-63.1 12.8-85.8 35.6L28.1 182.6C10.1 200.6 0 225 0 250.5L0 288c0 17.7 14.3 32 32 32s32-14.3 32-32l0-37.5c0-8.5 3.4-16.6 9.4-22.6zM85.8 407.3c-1.5 5.2-4.3 10-8.1 13.8L9.4 489.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l68.3-68.3c11.5-11.5 19.9-25.8 24.4-41.5l2.2-7.6-46-39.4c-2.5-2.2-5-4.4-7.4-6.8L85.8 407.3zM432 8c0-13.3-10.7-24-24-24S384-5.3 384 8l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zm0 128c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM408 320c-13.3 0-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32c0-13.3-10.7-24-24-24zm24 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32zM609 273c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-102.1 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l102.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72z\"],\n \"arrow-up-short-wide\": [576, 512, [\"sort-amount-up-alt\"], \"f885\", \"M320 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0zm0 128c-17.7 0-32 14.3-32 32s14.3 32 32 32l224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96z\"],\n \"grip-vertical\": [320, 512, [\"grid-vertical\"], \"f58e\", \"M128 40c0-22.1-17.9-40-40-40L40 0C17.9 0 0 17.9 0 40L0 88c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zm0 192c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM0 424l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 40c0-22.1-17.9-40-40-40L232 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48zM192 232l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40zM320 424c0-22.1-17.9-40-40-40l-48 0c-22.1 0-40 17.9-40 40l0 48c0 22.1 17.9 40 40 40l48 0c22.1 0 40-17.9 40-40l0-48z\"],\n \"car-tunnel\": [512, 512, [], \"e4de\", \"M256 0C114.6 0 0 114.6 0 256L0 448c0 35.3 28.7 64 64 64l42.8 0c-6.6-5.9-10.8-14.4-10.8-24l0-113.1c0-13.5 3.1-26.8 9-38.9l39.7-80.8c9.4-19.1 28.9-31.3 50.2-31.3L317 224c21.3 0 40.8 12.1 50.2 31.3L407 336c5.9 12.1 9 25.4 9 38.9L416 488c0 9.6-4.2 18.1-10.8 24l42.8 0c35.3 0 64-28.7 64-64l0-192C512 114.6 397.4 0 256 0zM362.8 512c-6.6-5.9-10.8-14.4-10.8-24l0-24-192 0 0 24c0 9.6-4.2 18.1-10.8 24l213.7 0zm-175-235.5l-29.3 59.5 194.9 0-29.3-59.5c-1.3-2.7-4.1-4.5-7.2-4.5L195 272c-3 0-5.8 1.7-7.2 4.5zM176 424a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm184-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"chart-column\": [512, 512, [], \"e0e3\", \"M32 32c17.7 0 32 14.3 32 32l0 336c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L80 480c-44.2 0-80-35.8-80-80L0 64C0 46.3 14.3 32 32 32zM144 224c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm144-64l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32s32 14.3 32 32zm80 32c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c0-17.7 14.3-32 32-32zM512 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-224c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n \"truck-arrow-right\": [576, 512, [], \"e58b\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM305 225l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9z\"],\n \"tv\": [576, 512, [63717, \"television\", \"tv-alt\"], \"f26c\", \"M64 96l0 240 448 0 0-240-448 0zM0 96C0 60.7 28.7 32 64 32l448 0c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64L64 400c-35.3 0-64-28.7-64-64L0 96zM160 448l256 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"section\": [256, 512, [], \"e447\", \"M110 0C49.2 0 0 49.2 0 110 0 133.7 7.6 155.8 20.5 174 7.6 192 0 214.1 0 238 0 291.7 38.9 337.6 91.9 346.4l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 25.4-20.6 46-46 46l-98 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l98 0c60.7 0 110-49.2 110-110 0-23.7-7.6-45.9-20.5-64 12.9-18 20.5-40.1 20.5-64 0-53.8-38.9-99.6-91.9-108.5l-61.7-10.3C80.2 151.6 64 132.4 64 110 64 84.6 84.6 64 110 64l98 0c17.7 0 32-14.3 32-32S225.7 0 208 0L110 0zm74.7 299.1c-6.5-2.4-13.4-4.3-20.5-5.5l-61.7-10.3c-22.2-3.7-38.4-22.9-38.4-45.3 0-9.2 2.7-17.8 7.4-25 6.5 2.4 13.4 4.3 20.5 5.5l61.7 10.3c22.2 3.7 38.4 22.9 38.4 45.3 0 9.2-2.7 17.8-7.4 25z\"],\n \"peace\": [512, 512, [9774], \"f67c\", \"M224 445.3l0-121.8-94.3 77.1c26.1 22.8 58.5 38.7 94.3 44.7zM89.2 351.1L224 240.8 224 66.7c-90.8 15.2-160 94.2-160 189.3 0 34.6 9.2 67.1 25.2 95.1zm293.1 49.5l-94.3-77.1 0 121.8c35.7-6 68.1-21.9 94.3-44.7zm40.6-49.5c16-28 25.2-60.5 25.2-95.1 0-95.1-69.2-174.1-160-189.3l0 174.2 134.8 110.3zM0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0z\"],\n \"star\": [576, 512, [11088, 61446], \"f005\", \"M309.5-18.9c-4.1-8-12.4-13.1-21.4-13.1s-17.3 5.1-21.4 13.1L193.1 125.3 33.2 150.7c-8.9 1.4-16.3 7.7-19.1 16.3s-.5 18 5.8 24.4l114.4 114.5-25.2 159.9c-1.4 8.9 2.3 17.9 9.6 23.2s16.9 6.1 25 2L288.1 417.6 432.4 491c8 4.1 17.7 3.3 25-2s11-14.2 9.6-23.2L441.7 305.9 556.1 191.4c6.4-6.4 8.6-15.8 5.8-24.4s-10.1-14.9-19.1-16.3L383 125.3 309.5-18.9z\"],\n \"flag\": [448, 512, [127988, 61725], \"f024\", \"M64 32C64 14.3 49.7 0 32 0S0 14.3 0 32L0 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-121.6 62.7-18.8c41.9-12.6 87.1-8.7 126.2 10.9 42.7 21.4 92.5 24 137.2 7.2l37.1-13.9c12.5-4.7 20.8-16.6 20.8-30l0-247.7c0-23-24.2-38-44.8-27.7l-11.8 5.9c-44.9 22.5-97.8 22.5-142.8 0-36.4-18.2-78.3-21.8-117.2-10.1L64 54.4 64 32z\"],\n \"triangle-exclamation\": [512, 512, [9888, \"exclamation-triangle\", \"warning\"], \"f071\", \"M256 0c14.7 0 28.2 8.1 35.2 21l216 400c6.7 12.4 6.4 27.4-.8 39.5S486.1 480 472 480L40 480c-14.1 0-27.2-7.4-34.4-19.5s-7.5-27.1-.8-39.5l216-400c7-12.9 20.5-21 35.2-21zm0 352a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm0-192c-18.2 0-32.7 15.5-31.4 33.7l7.4 104c.9 12.5 11.4 22.3 23.9 22.3 12.6 0 23-9.7 23.9-22.3l7.4-104c1.3-18.2-13.1-33.7-31.4-33.7z\"],\n \"school-circle-exclamation\": [640, 512, [], \"e56c\", \"M64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l276 0c-10.5-14.6-19-30.7-25.1-48l-90.9 0 0-88c0-22.1 17.9-40 40-40l48 0c1 0 1.9 0 2.9 .1 26.3-74.6 97.5-128.1 181.1-128.1 28.6 0 55.6 6.2 80 17.4l0-33.4c0-35.3-28.7-64-64-64l-64 0-127.9-115.1c-18.3-16.4-46-16.4-64.2 0L128 128 64 128zm64 240c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32zM112 256l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16zM288 128a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"graduation-cap\": [576, 512, [127891, \"mortar-board\"], \"f19d\", \"M48 195.8l209.2 86.1c9.8 4 20.2 6.1 30.8 6.1s21-2.1 30.8-6.1l242.4-99.8c9-3.7 14.8-12.4 14.8-22.1s-5.8-18.4-14.8-22.1L318.8 38.1C309 34.1 298.6 32 288 32s-21 2.1-30.8 6.1L14.8 137.9C5.8 141.6 0 150.3 0 160L0 456c0 13.3 10.7 24 24 24s24-10.7 24-24l0-260.2zm48 71.7L96 384c0 53 86 96 192 96s192-43 192-96l0-116.6-142.9 58.9c-15.6 6.4-32.2 9.7-49.1 9.7s-33.5-3.3-49.1-9.7L96 267.4z\"],\n \"store\": [512, 512, [], \"f54e\", \"M30.7 72.3C37.6 48.4 59.5 32 84.4 32l344 0c24.9 0 46.8 16.4 53.8 40.3l23.4 80.2c12.8 43.7-20.1 87.5-65.6 87.5-26.3 0-49.4-14.9-60.8-37.1-11.6 21.9-34.6 37.1-61.4 37.1-26.6 0-49.7-15-61.3-37-11.6 22-34.7 37-61.3 37-26.8 0-49.8-15.1-61.4-37.1-11.4 22.1-34.5 37.1-60.8 37.1-45.6 0-78.4-43.7-65.6-87.5L30.7 72.3zM96.4 352l320 0 0-66.4c7.6 1.6 15.5 2.4 23.5 2.4 14.3 0 28-2.6 40.5-7.2l0 151.2c0 26.5-21.5 48-48 48l-352 0c-26.5 0-48-21.5-48-48l0-151.2c12.5 4.6 26.1 7.2 40.5 7.2 8.1 0 15.9-.8 23.5-2.4l0 66.4z\"],\n \"user-astronaut\": [448, 512, [], \"f4fb\", \"M224 336c74.6 0 138.4-46.4 164-112l4 0c13.3 0 24-10.7 24-24l0-80c0-13.3-10.7-24-24-24l-4 0C362.4 30.4 298.6-16 224-16S85.6 30.4 60 96l-4 0c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24l4 0c25.6 65.6 89.4 112 164 112zM208 80l32 0c53 0 96 43 96 96s-43 96-96 96l-32 0c-53 0-96-43-96-96s43-96 96-96zM16 484.6C16 499.7 28.3 512 43.4 512l52.6 0 0-48c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32l0 48 52.6 0c15.1 0 27.4-12.3 27.4-27.4 0-59.8-31.9-112.2-79.6-141-36.4 25.5-80.6 40.4-128.4 40.4s-92-14.9-128.4-40.4C47.9 372.4 16 424.8 16 484.6zM183.3 141.5c-.9-3.3-3.9-5.5-7.3-5.5s-6.4 2.2-7.3 5.5l-6 21.2-21.2 6c-3.3 .9-5.5 3.9-5.5 7.3s2.2 6.4 5.5 7.3l21.2 6 6 21.2c.9 3.3 3.9 5.5 7.3 5.5s6.4-2.2 7.3-5.5l6-21.2 21.2-6c3.3-.9 5.5-3.9 5.5-7.3s-2.2-6.4-5.5-7.3l-21.2-6-6-21.2zM152 488l0 24 48 0 0-24c0-13.3-10.7-24-24-24s-24 10.7-24 24zm120-24c-13.3 0-24 10.7-24 24l0 24 48 0 0-24c0-13.3-10.7-24-24-24z\"],\n \"building-flag\": [640, 512, [], \"e4d5\", \"M64 0C28.7 0 0 28.7 0 64L0 448c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L64 0zM176 352l32 0c17.7 0 32 14.3 32 32l0 80-96 0 0-80c0-17.7 14.3-32 32-32zM96 112c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM240 96l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM96 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm144-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM464 0c-17.7 0-32 14.3-32 32l0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-288 112 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L496 32c0-17.7-14.3-32-32-32z\"],\n \"mug-saucer\": [576, 512, [\"coffee\"], \"f0f4\", \"M64 64c0-17.7 14.3-32 32-32l352 0c70.7 0 128 57.3 128 128S518.7 288 448 288c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 64zm448 96c0-35.3-28.7-64-64-64l0 128c35.3 0 64-28.7 64-64zM64 448l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L64 512c-17.7 0-32-14.3-32-32s14.3-32 32-32z\"],\n \"lemon\": [448, 512, [127819], \"f094\", \"M448 96c0-35.3-28.7-64-64-64-6.6 0-13 1-19 2.9-22.5 7-48.1 14.9-71 9-75.2-19.1-156.4 11-213.7 68.3S-7.2 250.8 11.9 326c5.8 22.9-2 48.4-9 71-1.9 6-2.9 12.4-2.9 19 0 35.3 28.7 64 64 64 6.6 0 13-1 19.1-2.9 22.5-7 48.1-14.9 71-9 75.2 19.1 156.4-11 213.7-68.3S455.2 261.2 436.1 186c-5.8-22.9 2-48.4 9-71 1.9-6 2.9-12.4 2.9-19.1zM222.7 143c-52 15.2-96.5 59.7-111.7 111.7-3.7 12.7-17.1 20-29.8 16.3S61.2 254 65 241.3c19.8-67.7 76.6-124.5 144.3-144.3 12.7-3.7 26.1 3.6 29.8 16.3s-3.6 26.1-16.3 29.8z\"],\n \"caravan\": [640, 512, [], \"f8ff\", \"M32 96c0-35.3 28.7-64 64-64l320 0c70.7 0 128 57.3 128 128l0 192 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-296.4 0c.2 2.6 .4 5.3 .4 8 0 48.6-39.4 88-88 88s-88-39.4-88-88c0-2.7 .1-5.4 .4-8L96 416c-35.3 0-64-28.7-64-64L32 96zM352 352l64 0c17.7 0 32-14.3 32-32l0-48-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 160c0 17.7 14.3 32 32 32zM160 128c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-64 0zm64 336a40 40 0 1 0 0-80 40 40 0 1 0 0 80z\"],\n \"q\": [448, 512, [113], \"51\", \"M64 256c0 88.4 71.6 160 160 160 28.9 0 56-7.7 79.4-21.1l-72-86.4c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l70.9 85.1c20.4-26.8 32.5-60.3 32.5-96.6 0-88.4-71.6-160-160-160S64 167.6 64 256zM344.9 444.6C310 467 268.5 480 224 480 100.3 480 0 379.7 0 256S100.3 32 224 32 448 132.3 448 256c0 56.1-20.6 107.4-54.7 146.7l47.3 56.8c11.3 13.6 9.5 33.8-4.1 45.1s-33.8 9.5-45.1-4.1l-46.6-55.9z\"],\n \"lock\": [384, 512, [128274], \"f023\", \"M128 96l0 64 128 0 0-64c0-35.3-28.7-64-64-64s-64 28.7-64 64zM64 160l0-64C64 25.3 121.3-32 192-32S320 25.3 320 96l0 64c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64z\"],\n \"paint-roller\": [512, 512, [], \"f5aa\", \"M0 64C0 28.7 28.7 0 64 0L352 0c35.3 0 64 28.7 64 64l16 0c44.2 0 80 35.8 80 80l0 96c0 44.2-35.8 80-80 80l-160 0c-8.8 0-16 7.2-16 16l0 18.7c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-32 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3l0-18.7c0-44.2 35.8-80 80-80l160 0c8.8 0 16-7.2 16-16l0-96c0-8.8-7.2-16-16-16l-16 0c0 35.3-28.7 64-64 64L64 192c-35.3 0-64-28.7-64-64L0 64z\"],\n \"volume-high\": [640, 512, [128266, \"volume-up\"], \"f028\", \"M533.6 32.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C557.5 113.8 592 180.8 592 256s-34.5 142.2-88.7 186.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C598.5 426.7 640 346.2 640 256S598.5 85.2 533.6 32.5zM473.1 107c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C475.3 170.7 496 210.9 496 256s-20.7 85.3-53.2 111.8c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5c43.2-35.2 70.9-88.9 70.9-149s-27.7-113.8-70.9-149zm-60.5 74.5c-10.3-8.4-25.4-6.8-33.8 3.5s-6.8 25.4 3.5 33.8C393.1 227.6 400 241 400 256s-6.9 28.4-17.7 37.3c-10.3 8.4-11.8 23.5-3.5 33.8s23.5 11.8 33.8 3.5C434.1 312.9 448 286.1 448 256s-13.9-56.9-35.4-74.5zM80 352l48 0 134.1 119.2c6.4 5.7 14.6 8.8 23.1 8.8 19.2 0 34.8-15.6 34.8-34.8l0-378.4c0-19.2-15.6-34.8-34.8-34.8-8.5 0-16.7 3.1-23.1 8.8L128 160 80 160c-26.5 0-48 21.5-48 48l0 96c0 26.5 21.5 48 48 48z\"],\n \"folder-plus\": [512, 512, [], \"f65e\", \"M512 384c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240zM256 160c-13.3 0-24 10.7-24 24l0 48-48 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0 0 48c0 13.3 10.7 24 24 24s24-10.7 24-24l0-48 48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0 0-48c0-13.3-10.7-24-24-24z\"],\n \"mercury\": [384, 512, [9791], \"f223\", \"M117-4C106-17.8 85.8-20 72.1-9s-16 31.2-5 45C74.9 45.7 83.7 54.5 93.5 62.1 46.7 93.7 16 147.3 16 208 16 294.3 78.1 366.1 160 381.1l0 34.9-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-34.9c81.9-15 144-86.8 144-173.1 0-60.7-30.7-114.3-77.5-145.9 9.8-7.7 18.7-16.4 26.4-26.1 11.1-13.8 8.8-33.9-5-45S278-17.8 267-4c-17.6 22-44.7 36-75 36S134.7 18 117-4zm75 324c-61.9 0-112-50.1-112-112S130.1 96 192 96 304 146.1 304 208c0 61.8-50.1 112-111.9 112l-.1 0z\"],\n \"anchor\": [576, 512, [9875], \"f13d\", \"M288 64a32 32 0 1 0 0 64 32 32 0 1 0 0-64zM192 96c0-53 43-96 96-96s96 43 96 96c0 41.8-26.7 77.4-64 90.5l0 257.9c62.9-14.3 110.2-69.7 111.9-136.5l-16.1 14.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3L496 307.9C493.9 421 401.6 512 288 512S82.1 421 80 307.9L63.8 322.1c-10 8.7-25.1 7.7-33.9-2.3s-7.7-25.1 2.3-33.9l64-56c9-7.9 22.6-7.9 31.6 0l64 56c10 8.7 11 23.9 2.3 33.9s-23.9 11-33.9 2.3l-16.1-14.1c1.8 66.8 49.1 122.2 111.9 136.5l0-257.9c-37.3-13.2-64-48.7-64-90.5z\"],\n \"square-parking\": [448, 512, [127359, \"parking\"], \"f540\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM192 256l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-48 0 0 64zm48 64l-48 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-184c0-22.1 17.9-40 40-40l72 0c53 0 96 43 96 96s-43 96-96 96z\"],\n \"hanukiah\": [640, 512, [128334], \"f6e6\", \"M314.2 3.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zm-288 48C21.1 60.1 8 84.6 8 104 8 117.3 18.7 128 32 128s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM88 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C101.1 60.1 88 84.6 88 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM216 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C229.1 60.1 216 84.6 216 104zM394.2 51.3c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM440 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C453.1 60.1 440 84.6 440 104zm82.2-52.7c-5.1 8.8-18.2 33.3-18.2 52.7 0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3zM584 104c0 13.3 10.7 24 24 24s24-10.7 24-24c0-19.4-13.1-43.9-18.2-52.7-1.2-2.1-3.4-3.3-5.8-3.3s-4.6 1.2-5.8 3.3C597.1 60.1 584 84.6 584 104zM112 160c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm160 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zm64 0c-8.8 0-16 7.2-16 16l0 112 32 0 0-112c0-8.8-7.2-16-16-16zM352 144c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 176-192 0c-17.7 0-32-14.3-32-32l0-96c0-17.7-14.3-32-32-32S0 174.3 0 192l0 96c0 53 43 96 96 96l192 0 0 64-128 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0 0-64 192 0c53 0 96-43 96-96l0-96c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7-14.3 32-32 32l-192 0 0-176z\"],\n \"rotate-left\": [512, 512, [\"rotate-back\", \"rotate-backward\", \"undo-alt\"], \"f2ea\", \"M24 192l144 0c9.7 0 18.5-5.8 22.2-14.8s1.7-19.3-5.2-26.2l-46.7-46.7c75.3-58.6 184.3-53.3 253.5 15.9 75 75 75 196.5 0 271.5s-196.5 75-271.5 0c-10.2-10.2-19-21.3-26.4-33-9.5-14.9-29.3-19.3-44.2-9.8s-19.3 29.3-9.8 44.2C49.7 408.7 61.4 423.5 75 437 175 537 337 537 437 437S537 175 437 75C342.8-19.3 193.3-24.7 92.7 58.8L41 7C34.1 .2 23.8-1.9 14.8 1.8S0 14.3 0 24L0 168c0 13.3 10.7 24 24 24z\"],\n \"heading\": [448, 512, [\"header\"], \"f1dc\", \"M0 64C0 46.3 14.3 32 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 112 224 0 0-112-16 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-16 0 0 320 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-144-224 0 0 144 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-320-16 0C14.3 96 0 81.7 0 64z\"],\n \"crosshairs\": [576, 512, [], \"f05b\", \"M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM131.2 288c12.7 62.7 62.1 112.1 124.8 124.8l0-12.8c0-17.7 14.3-32 32-32s32 14.3 32 32l0 12.8c62.7-12.7 112.1-62.1 124.8-124.8L432 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l12.8 0C432.1 161.3 382.7 111.9 320 99.2l0 12.8c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-12.8C193.3 111.9 143.9 161.3 131.2 224l12.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-12.8 0zM288 208a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\n \"circle-nodes\": [512, 512, [], \"e4e2\", \"M418.4 157.9c35.3-8.3 61.6-40 61.6-77.9 0-44.2-35.8-80-80-80-43.4 0-78.7 34.5-80 77.5L136.2 151.1C121.7 136.8 101.9 128 80 128 35.8 128 0 163.8 0 208s35.8 80 80 80c12.2 0 23.8-2.7 34.1-7.6L259.7 407.8c-2.4 7.6-3.7 15.8-3.7 24.2 0 44.2 35.8 80 80 80s80-35.8 80-80c0-27.7-14-52.1-35.4-66.4l37.8-207.7zM156.3 232.2c2.2-6.9 3.5-14.2 3.7-21.7l183.8-73.5c3.6 3.5 7.4 6.7 11.6 9.5L317.6 354.1c-5.5 1.3-10.8 3.1-15.8 5.5L156.3 232.2z\"],\n \"window-restore\": [576, 512, [], \"f2d2\", \"M512 96L160 96c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64l-48 0 0-64 48 0 0-192zM0 224c0-35.3 28.7-64 64-64l288 0c35.3 0 64 28.7 64 64l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 224zm64 40c0 13.3 10.7 24 24 24l240 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 240c-13.3 0-24 10.7-24 24z\"],\n \"r\": [320, 512, [114], \"52\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 95.3 0 102.4 146.4c10.1 14.5 30.1 18 44.6 7.9s18-30.1 7.9-44.6L230.1 309.5C282.8 288.1 320 236.4 320 176 320 96.5 255.5 32 176 32L32 32zM176 256l-112 0 0-160 112 0c44.2 0 80 35.8 80 80s-35.8 80-80 80z\"],\n \"filter-circle-xmark\": [576, 512, [], \"e17b\", \"M32 64C19.1 64 7.4 71.8 2.4 83.8S.2 109.5 9.4 118.6L192 301.3 192 416c0 8.5 3.4 16.6 9.4 22.6l64 64c2.5 2.5 5.3 4.5 8.3 6-21.2-30.9-33.6-68.3-33.6-108.6 0-99.4 75.5-181.1 172.3-191l90.4-90.4c9.2-9.2 11.9-22.9 6.9-34.9S492.9 64 480 64L32 64zM432 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"gopuram\": [512, 512, [], \"f664\", \"M120 0c13.3 0 24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 48 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 8 40 0 0-8c0-13.3 10.7-24 24-24s24 10.7 24 24l0 136c26.5 0 48 21.5 48 48l0 80c26.5 0 48 21.5 48 48l0 128c0 26.5-21.5 48-48 48l-48 0 0-224-32 0 0-128-48 0 0 128 32 0 0 224-224 0 0-224 32 0 0-128-48 0 0 128-32 0 0 224-48 0c-26.5 0-48-21.5-48-48L0 336c0-26.5 21.5-48 48-48l0-80c0-26.5 21.5-48 48-48L96 24c0-13.3 10.7-24 24-24zM256 208c-17.7 0-32 14.3-32 32l0 48 64 0 0-48c0-17.7-14.3-32-32-32zM208 400l0 64 96 0 0-64c0-26.5-21.5-48-48-48s-48 21.5-48 48zM256 96c-17.7 0-32 14.3-32 32l0 32 64 0 0-32c0-17.7-14.3-32-32-32z\"],\n \"heart-circle-minus\": [576, 512, [], \"e4ff\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm224 0c0-8.8-7.2-16-16-16l-128 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l128 0c8.8 0 16-7.2 16-16z\"],\n \"star-of-life\": [512, 512, [], \"f621\", \"M208.5 32c0-17.7 14.3-32 32-32l32 0c17.7 0 32 14.3 32 32l0 140.9 122-70.4c15.3-8.8 34.9-3.6 43.7 11.7l16 27.7c8.8 15.3 3.6 34.9-11.7 43.7l-122 70.4 122 70.4c15.3 8.8 20.6 28.4 11.7 43.7l-16 27.7c-8.8 15.3-28.4 20.6-43.7 11.7l-122-70.4 0 140.9c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-140.9-122 70.4c-15.3 8.8-34.9 3.6-43.7-11.7l-16-27.7c-8.8-15.3-3.6-34.9 11.7-43.7l122-70.4-122-70.4c-15.3-8.8-20.5-28.4-11.7-43.7l16-27.7c8.8-15.3 28.4-20.5 43.7-11.7l122 70.4 0-140.9z\"],\n \"business-time\": [640, 512, [\"briefcase-clock\"], \"f64a\", \"M264 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0c-35.3 0-64 28.7-64 64l0 96 305 0c33.8-29.9 78.3-48 127-48 28.6 0 55.6 6.2 80 17.4l0-65.4c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L264 0c-30.9 0-56 25.1-56 56zm80 296c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l193.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-16.6 2.1-32.7 6-48l-22 0zm352 48a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM496 320c8.8 0 16 7.2 16 16l0 48 32 0c8.8 0 16 7.2 16 16s-7.2 16-16 16l-48 0c-8.8 0-16-7.2-16-16l0-64c0-8.8 7.2-16 16-16z\"],\n \"fire-extinguisher\": [512, 512, [129519], \"f134\", \"M512 32c0-9.6-4.3-18.7-11.7-24.7S483.1-1.3 473.7 .6l-160 32C301.5 35.1 292 44.3 289 56l-65 0 0-24c0-17.7-14.3-32-32-32L160 0c-17.7 0-32 14.3-32 32l0 28.4c-55.3 12.3-101.3 49.5-125.5 99.1-5.8 11.9-.9 26.3 11.1 32.1s26.3 .9 32.1-11.1C62 146.9 91.8 121.1 128 110l0 28.8c-37.8 18-64 56.5-64 101.2l0 128 224 0 0-128c0-44.7-26.2-83.2-64-101.2l0-34.8 65 0c3 11.7 12.5 20.9 24.7 23.4l160 32c9.4 1.9 19.1-.6 26.6-6.6S512 137.6 512 128l0-96zM288 448l0-32-224 0 0 32c0 35.3 28.7 64 64 64l96 0c35.3 0 64-28.7 64-64z\"],\n \"arrow-down-long\": [320, 512, [\"long-arrow-down\"], \"f175\", \"M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L192 434.7 192 0c0-17.7-14.3-32-32-32S128-17.7 128 0l0 434.7-73.4-73.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l128 128z\"],\n \"user-minus\": [640, 512, [], \"f503\", \"M136 128a120 120 0 1 1 240 0 120 120 0 1 1 -240 0zM48 482.3C48 383.8 127.8 304 226.3 304l59.4 0c98.5 0 178.3 79.8 178.3 178.3 0 16.4-13.3 29.7-29.7 29.7L77.7 512C61.3 512 48 498.7 48 482.3zM472 168l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"money-check\": [512, 512, [], \"f53c\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zM96 312c0 13.3 10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0c-13.3 0-24 10.7-24 24zm24-136c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-272 0z\"],\n \"house-laptop\": [640, 512, [\"laptop-house\"], \"e066\", \"M448 240l19.9 0c15.5 0 28.1-12.6 28.1-28.1 0-7.6-3.1-14.9-8.6-20.2L283.5-4.9C276.1-12 266.3-16 256-16s-20.1 4-27.5 11.1L24.6 191.7C19.1 197 16 204.3 16 211.9 16 227.4 28.6 240 44.1 240l19.9 0 0 144c0 35.3 28.7 64 64 64l85.7 0c7.4-6.6 16.4-11.4 26.3-14l0-130c0-5.5 .7-10.9 2-16l-10 0c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 24 144 0zM352 352l160 0 0 128-160 0 0-128zm-64-32l0 160-32 0c-8.8 0-16 7.2-16 16 0 26.5 21.5 48 48 48l288 0c26.5 0 48-21.5 48-48 0-8.8-7.2-16-16-16l-32 0 0-160c0-17.7-14.3-32-32-32l-224 0c-17.7 0-32 14.3-32 32z\"],\n \"download\": [448, 512, [], \"f019\", \"M256 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 210.7-41.4-41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c12.5 12.5 32.8 12.5 45.3 0l96-96c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L256 242.7 256 32zM64 320c-35.3 0-64 28.7-64 64l0 32c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-32c0-35.3-28.7-64-64-64l-46.9 0-56.6 56.6c-31.2 31.2-81.9 31.2-113.1 0L110.9 320 64 320zm304 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"couch\": [640, 512, [], \"f4b8\", \"M144 272C144 224.7 109.8 185.4 64.8 177.5 72 113.6 126.2 64 192 64l256 0c65.8 0 120 49.6 127.2 113.5-45 8-79.2 47.2-79.2 94.5l0 32-352 0 0-32zM0 384L0 272c0-26.5 21.5-48 48-48s48 21.5 48 48l0 80 448 0 0-80c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64z\"],\n \"road-lock\": [576, 512, [], \"e567\", \"M256 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L33.4 420.5C25.9 450.7 48.8 480 80 480l175.9 0 0-64c0-17.7 14.3-32 32-32 6.1 0 11.8 1.7 16.7 4.7 2.8-23.9 14.3-45.1 31.4-60.3l0-24.4c0-70.7 57.3-128 128-128 6.2 0 12.4 .4 18.4 1.3L458.5 80.6C451.4 52.1 425.8 32 396.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zm64 192l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32zm176 80.1l0 47.9-64 0 0-47.9c0-17.7 14.3-32 32-32s32 14.3 32 32zM352 400l0 96c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-96c0-20.9-13.4-38.7-32-45.3l0-50.6c0-44.2-35.8-80-80-80s-80 35.8-80 80l0 50.6c-18.6 6.6-32 24.4-32 45.3z\"],\n \"scissors\": [512, 512, [9984, 9986, 9988, \"cut\"], \"f0c4\", \"M192 256l-39.5 39.5c-12.6-4.9-26.2-7.5-40.5-7.5-61.9 0-112 50.1-112 112s50.1 112 112 112 112-50.1 112-112c0-14.3-2.7-27.9-7.5-40.5L499.2 76.8c7.1-7.1 7.1-18.5 0-25.6-28.3-28.3-74.1-28.3-102.4 0L256 192 216.5 152.5c4.9-12.6 7.5-26.2 7.5-40.5 0-61.9-50.1-112-112-112S0 50.1 0 112 50.1 224 112 224c14.3 0 27.9-2.7 40.5-7.5L192 256zm97.9 97.9L396.8 460.8c28.3 28.3 74.1 28.3 102.4 0 7.1-7.1 7.1-18.5 0-25.6l-145.3-145.3-64 64zM64 112a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zm48 240a48 48 0 1 1 0 96 48 48 0 1 1 0-96z\"],\n \"bug\": [576, 512, [], \"f188\", \"M192 96c0-53 43-96 96-96s96 43 96 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4l-135.1 0c-15.7 0-28.4-12.7-28.4-28.4l0-3.6zm345.6 12.8c10.6 14.1 7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 2.6-.1 5.3-.2 7.9l83.4 62.5c14.1 10.6 17 30.7 6.4 44.8s-30.7 17-44.8 6.4l-63.1-47.3c-23.2 44.2-66.5 76.2-117.7 83.9L312 280c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 230.2c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c2.5-10.4 6.5-20.2 11.8-29.1L44.8 153.6c-14.1-10.6-17-30.7-6.4-44.8s30.7-17 44.8-6.4L192 184c12.3-5.1 25.8-8 40-8l112 0c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4z\"],\n \"arrow-right-from-bracket\": [512, 512, [\"sign-out\"], \"f08b\", \"M160 96c17.7 0 32-14.3 32-32s-14.3-32-32-32L96 32C43 32 0 75 0 128L0 384c0 53 43 96 96 96l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0c-17.7 0-32-14.3-32-32l0-256c0-17.7 14.3-32 32-32l64 0zM502.6 278.6c12.5-12.5 12.5-32.8 0-45.3l-128-128c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L402.7 224 192 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l210.7 0-73.4 73.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l128-128z\"],\n \"hand-holding-hand\": [576, 512, [], \"e4f7\", \"M466.8 186.5l42.5-42.5 34.7 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L223.6 16c-29 0-57.3 9.3-80.7 26.5L16.3 135.8c-17.8 13.1-21.6 38.1-8.5 55.9s38.1 21.6 55.9 8.5L183.4 112 296 112c13.3 0 24 10.7 24 24s-10.7 24-24 24l-72 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l152.2 0c33.9 0 66.5-13.5 90.5-37.5zm-357.5 139L66.7 368 32 368c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 400 280 400c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"],\n \"stroopwafel\": [512, 512, [], \"f551\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM312.6 63.7c-6.2-6.2-16.4-6.2-22.6 0L256 97.6 222.1 63.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l33.9 33.9-45.3 45.3-56.6-56.6c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l56.6 56.6-45.3 45.3-33.9-33.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L97.6 256 63.7 289.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 45.3 45.3-56.6 56.6c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l56.6-56.6 45.3 45.3-33.9 33.9c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l33.9-33.9 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 45.3-45.3 56.6 56.6c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-56.6-56.6 45.3-45.3 33.9 33.9c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-33.9-33.9 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-33.9 33.9-45.3-45.3 56.6-56.6c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-56.6 56.6-45.3-45.3 33.9-33.9c6.2-6.2 6.2-16.4 0-22.6zM142.9 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm67.9 67.9l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zM278.6 256l45.3-45.3 45.3 45.3-45.3 45.3-45.3-45.3zm22.6-67.9l-45.3 45.3-45.3-45.3 45.3-45.3 45.3 45.3z\"],\n \"child\": [320, 512, [], \"f1ae\", \"M96 64A64 64 0 1 1 224 64 64 64 0 1 1 96 64zm48 320l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32L80 287.8 59.1 321c-9.4 15-29.2 19.4-44.1 10S-4.5 301.9 4.9 287l39.9-63.3C69.7 184 113.2 160 160 160s90.3 24 115.2 63.6L315.1 287c9.4 15 4.9 34.7-10 44.1s-34.7 4.9-44.1-10L240 287.8 240 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-32 0z\"],\n \"ice-cream\": [384, 512, [127848], \"f810\", \"M335.1 160c.6-5.3 .9-10.6 .9-16 0-79.5-64.5-144-144-144S48 64.5 48 144c0 5.4 .3 10.7 .9 16l-.9 0c-26.5 0-48 21.5-48 48s21.5 48 48 48l288 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-.9 0zM64 304L169.2 529.5c4.1 8.8 13 14.5 22.8 14.5s18.6-5.7 22.8-14.5L320 304 64 304z\"],\n \"computer-mouse\": [384, 512, [128433, \"mouse\"], \"f8cc\", \"M0 192l168 0 0-192-8 0C71.6 0 0 71.6 0 160l0 32zm0 48L0 352c0 88.4 71.6 160 160 160l64 0c88.4 0 160-71.6 160-160l0-112-384 0zm384-48l0-32C384 71.6 312.4 0 224 0l-8 0 0 192 168 0z\"],\n \"faucet\": [512, 512, [], \"e005\", \"M192 64c0-17.7 14.3-32 32-32s32 14.3 32 32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 64 18.7 0c8.5 0 16.6 3.4 22.6 9.4l22.6 22.6 32 0c88.4 0 160 71.6 160 160 0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32s-14.3-32-32-32l-36.1 0c-20.2 29-53.9 48-91.9 48s-71.7-19-91.9-48L32 352c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32l96 0 22.6-22.6c6-6 14.1-9.4 22.6-9.4l18.7 0 0-64-96 0c-17.7 0-32-14.3-32-32S78.3 64 96 64l96 0z\"],\n \"award\": [448, 512, [], \"f559\", \"M245.9-25.9c-13.4-8.2-30.3-8.2-43.7 0-24.4 14.9-39.5 18.9-68.1 18.3-15.7-.4-30.3 8.1-37.9 21.9-13.7 25.1-24.8 36.2-49.9 49.9-13.8 7.5-22.2 22.2-21.9 37.9 .7 28.6-3.4 43.7-18.3 68.1-8.2 13.4-8.2 30.3 0 43.7 14.9 24.4 18.9 39.5 18.3 68.1-.4 15.7 8.1 30.3 21.9 37.9 22.1 12.1 33.3 22.1 45.1 41.5L42.7 458.5c-5.9 11.9-1.1 26.3 10.7 32.2l86 43c11.5 5.7 25.5 1.4 31.7-9.8l52.8-95.1 52.8 95.1c6.2 11.2 20.2 15.6 31.7 9.8l86-43c11.9-5.9 16.7-20.3 10.7-32.2l-48.6-97.2c11.7-19.4 23-29.4 45.1-41.5 13.8-7.5 22.2-22.2 21.9-37.9-.7-28.6 3.4-43.7 18.3-68.1 8.2-13.4 8.2-30.3 0-43.7-14.9-24.4-18.9-39.5-18.3-68.1 .4-15.7-8.1-30.3-21.9-37.9-25.1-13.7-36.2-24.8-49.9-49.9-7.5-13.8-22.2-22.2-37.9-21.9-28.6 .7-43.7-3.4-68.1-18.3zM224 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\n \"person-drowning\": [640, 512, [], \"e545\", \"M264 88a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM133.9 65.6c16.8-5.6 34.9 3.5 40.5 20.2l10.9 32.8c9.4 28.3 33.2 49.5 62.5 55.6 5.6 1.2 11.3 1.8 17.1 1.8l88 0c17.2 0 34.3-2.8 50.6-8.2l114.4-38.1c16.8-5.6 34.9 3.5 40.5 20.2s-3.5 34.9-20.2 40.5L423.7 228.5c-8.4 2.8-17 5.1-25.7 6.9l-26.5 88.3c-6.1 3.4-12.1 7.3-17.9 11.7-22.1 16.6-29.1 16.6-51.2 0-26.2-19.7-56.9-30.2-87.8-31.3l20.2-67.2c-51.5-10.7-93.5-48.1-110.2-98l-10.9-32.8c-5.6-16.8 3.5-34.9 20.2-40.5zM403.4 412.1C379.1 430.3 351.1 448 320 448s-59.1-17.7-83.4-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.5-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0z\"],\n \"camera-rotate\": [512, 512, [], \"e0d8\", \"M138.7 96l10.4-31.2C155.6 45.2 173.9 32 194.6 32l122.8 0c20.7 0 39 13.2 45.5 32.8L373.3 96 448 96c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 160c0-35.3 28.7-64 64-64l74.7 0zM96 305.9c0 3.9 1.4 7.7 4 10.6l48 54c6.4 7.2 17.6 7.2 23.9 0l48-54c2.6-2.9 4-6.7 4-10.6l0-1.9c0-8.8-7.2-16-16-16l-24 0c0-39.8 32.2-72 72-72 4.4 0 8.7 .4 12.9 1.2l34.9-39.3c-14.6-6.4-30.8-9.9-47.8-9.9-66.3 0-120 53.7-120 120l-24 0c-8.8 0-16 7.2-16 16l0 1.9zm196-46.5c-2.6 2.9-4 6.7-4 10.6l0 1.9c0 8.8 7.2 16 16 16l24 0c0 39.8-32.2 72-72 72-4.4 0-8.7-.4-12.9-1.2l-34.9 39.3c14.7 6.4 30.8 9.9 47.8 9.9 66.3 0 120-53.7 120-120l24 0c8.8 0 16-7.2 16-16l0-1.9c0-3.9-1.4-7.7-4-10.6l-48-54c-6.4-7.2-17.6-7.2-23.9 0l-48 54z\"],\n \"face-grin-hearts\": [512, 512, [128525, \"grin-hearts\"], \"f584\", \"M256 512c141.4 0 256-114.6 256-256 0-23.3-3.1-45.9-8.9-67.3 5.5-13.5 8.9-28.4 8.9-44.7 0-53-43-96-96-96l-2.9 0c-2.5 0-5 .1-7.4 .3-42.1-30.4-93.8-48.3-149.7-48.3S148.4 17.9 106.3 48.3c-2.5-.2-4.9-.3-7.4-.3L96 48c-53 0-96 43-96 96 0 16.3 3.5 31.2 8.9 44.7-5.8 21.4-8.9 44-8.9 67.3 0 141.4 114.6 256 256 256zM386.7 324.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 404.2 105.7 342.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM322.9 96c13.5 0 26.5 5.4 36 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0zm-188 14.9l9.1 9.1 9.1-9.1c9.5-9.5 22.5-14.9 36-14.9l2.9 0c26.5 0 48 21.5 48 48 0 53.4-66.9 95.7-89 108.2-4.4 2.5-9.6 2.5-14 0-22.1-12.5-89-54.8-89-108.2 0-26.5 21.5-48 48-48l2.9 0c13.5 0 26.5 5.4 36 14.9z\"],\n \"file-fragment\": [384, 512, [], \"e697\", \"M64 0C28.7 0 0 28.7 0 64l0 240 128 0c44.2 0 80 35.8 80 80l0 128 112 0c35.3 0 64-28.7 64-64l0-277.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM32 352c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0z\"],\n \"person-military-rifle\": [448, 512, [], \"e54b\", \"M128 39c0-13 10-23.8 22.9-24.9L302.7 1.4C312 .7 320 8 320 17.4L320 48c0 8.8-7.2 16-16 16L153 64c-13.8 0-25-11.2-25-25zm17.6 57l156.8 0c1 5.2 1.6 10.5 1.6 16 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-5.5 .6-10.8 1.6-16zm228 364.3L320 369.7 320 480c0 1.3-.1 2.5-.2 3.8L145.5 234.9c16.6-7.1 34.6-10.9 53.3-10.9l50.4 0c15.9 0 31.3 2.8 45.8 7.9L389.9 67.7c-7.7-4.4-10.3-14.2-5.9-21.9s14.2-10.3 21.9-5.9l27.7 16c7.7 4.4 10.3 14.2 5.9 21.9l-55.5 96.1 1.6 .9c15.3 8.8 20.6 28.4 11.7 43.7L360.7 282c2 2.8 3.9 5.8 5.7 8.8l76.1 128.8c11.2 19 4.9 43.5-14.1 54.8s-43.5 4.9-54.8-14.1zM288 512l-128 0c-17.7 0-32-14.3-32-32l0-110.3-53.6 90.6c-11.2 19-35.8 25.3-54.8 14.1S-5.7 438.7 5.6 419.7L81.7 290.8c9.4-15.8 21.7-29.3 36-40L299.1 510c-3.5 1.3-7.2 2-11.1 2zM264 320a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"toggle-on\": [576, 512, [], \"f205\", \"M192 64C86 64 0 150 0 256S86 448 192 448l192 0c106 0 192-86 192-192S490 64 384 64L192 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\n \"lungs-virus\": [576, 512, [], \"e067\", \"M288 0c-17.7 0-32 14.3-32 32l0 151.3c9.6-4.8 20.5-7.5 32-7.5s22.4 2.7 32 7.5L320 32c0-17.7-14.3-32-32-32zM450.1 451c8 18.3 8.1 39.2 .2 57.5 10.2 2.3 20.6 3.5 31.2 3.5 52.2 0 94.5-42.3 94.5-94.5l0-6.2c0-111.1-36.7-219-104.4-307L428.9 48.7c-8.1-10.6-20.7-16.7-34-16.7-23.7 0-42.9 19.2-42.9 42.9l0 139.9c1.2 2.2 2.2 4.6 3.1 6.9 26.4-11.6 58.3-6.6 79.9 15s26.6 53.6 15 79.9C477 327.2 496 353.3 496 383.8s-19 56.7-45.9 67.1zM220.9 221.8c.9-2.4 2-4.7 3.1-6.9l0-138.5c0-24.5-19.9-44.4-44.4-44.4-12.5 0-24.4 5.3-32.8 14.5l-26.4 29C42.9 160.8 0 271.8 0 387l0 30.5c0 52.2 42.3 94.5 94.5 94.5 10.5 0 21-1.2 31.2-3.5-7.9-18.3-7.8-39.3 .2-57.5-26.9-10.4-45.9-36.6-45.9-67.1s19-56.7 45.9-67.1c-11.6-26.4-6.6-58.3 15-79.9s53.6-26.6 79.9-15zM152 408c28.8 0 43.2 34.8 22.9 55.2-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c20.4-20.4 55.2-5.9 55.2 22.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-28.8 34.8-43.2 55.2-22.9 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-20.4-20.4-5.9-55.2 22.9-55.2 13.3 0 24-10.7 24-24s-10.7-24-24-24c-28.8 0-43.2-34.8-22.9-55.2 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-20.4 20.4-55.2 5.9-55.2-22.9 0-13.3-10.7-24-24-24s-24 10.7-24 24c0 28.8-34.8 43.2-55.2 22.9-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c20.4 20.4 5.9 55.2-22.9 55.2-13.3 0-24 10.7-24 24s10.7 24 24 24zm104-80a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"table-tennis-paddle-ball\": [512, 512, [127955, \"ping-pong-paddle-ball\", \"table-tennis\"], \"f45d\", \"M97 127l67.4-67.4c38.2-38.2 90-59.6 144-59.6 112.5 0 203.7 91.2 203.7 203.6 0 46.4-15.8 91.1-44.5 127-23.6-16.8-52.4-26.7-83.5-26.7-31.1 0-59.9 9.9-83.4 26.6L97 127zM240 448c0 9.7 1 19.1 2.8 28.2-19.8-5.2-38-15.5-52.7-30.2-12.2-12.2-31.9-12.2-44.1 0L96.6 495.4c-10.6 10.6-25 16.6-40 16.6-31.2 0-56.6-25.3-56.6-56.6 0-15 6-29.4 16.6-40l49.4-49.4c12.2-12.2 12.2-31.9 0-44.1-21.7-21.7-33.9-51.2-33.9-81.9 0-29.4 11.1-57.6 31.1-79L266.6 364.6C249.9 388.1 240 416.9 240 448zm144-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\n \"boxes-packing\": [576, 512, [], \"e4c7\", \"M208 0l80 0 0 56c0 13.3 10.7 24 24 24l80 0c13.3 0 24-10.7 24-24l0-56 80 0c26.5 0 48 21.5 48 48l0 416c0 26.5-21.5 48-48 48l-108.8 0c8.2-14.1 12.8-30.5 12.8-48l0-160c10-13.4 16-30 16-48l0-32c0-44.2-35.8-80-80-80l-176 0 0-96c0-26.5 21.5-48 48-48zM32 336l320 0 0 128c0 26.5-21.5 48-48 48L80 512c-26.5 0-48-21.5-48-48l0-128zM48 192l288 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L48 288c-17.7 0-32-14.3-32-32l0-32c0-17.7 14.3-32 32-32z\"],\n \"person-chalkboard\": [640, 512, [], \"e53d\", \"M192 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM176 512l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-336 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-48 192 0 0 192-192 0 0-32-64 0 0 48c0 26.5 21.5 48 48 48l224 0c26.5 0 48-21.5 48-48l0-224c0-26.5-21.5-48-48-48L368 0c-26.5 0-48 21.5-48 48l0 64-122.7 0c-45.6 0-88.5 21.6-115.6 58.2L14.3 260.9c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L112 236.7 112 512c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\n \"dice-two\": [448, 512, [9857], \"f528\", \"M0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM352 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM128 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"arrow-right-arrow-left\": [512, 512, [8644, \"exchange\"], \"f0ec\", \"M502.6 150.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L402.7 160 32 160c-17.7 0-32-14.3-32-32S14.3 96 32 96l370.7 0-41.4-41.4c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3zm-397.3 352l-96-96c-12.5-12.5-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3L109.3 352 480 352c17.7 0 32 14.3 32 32s-14.3 32-32 32l-370.7 0 41.4 41.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"],\n \"football\": [512, 512, [127944, \"football-ball\"], \"f44e\", \"M261.1 22.6c-89 18-150.5 63.4-190 123.9-23.3 35.6-38.1 75.3-46.7 115.5L251.9 489.4c89-18 150.5-63.4 190.1-123.9 23.3-35.6 38.1-75.3 46.7-115.5L261.1 22.6zm236 168.1c3.2-42.3 .7-83.3-4.8-118.7-4.4-27.8-26.8-48-53.1-51.6-43-5.9-82.2-7.5-117.8-5.4L497.1 190.6zM191.7 497.1L15.9 321.4c-3.2 42.3-.7 83.3 4.8 118.7 4.4 27.8 26.8 48 53.1 51.6 43 5.9 82.2 7.5 117.8 5.4zM271.5 143c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9zm-64 64c9.4-9.4 24.6-9.4 33.9 0l64 64c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-64-64c-9.4-9.4-9.4-24.6 0-33.9z\"],\n \"truck-monster\": [576, 512, [], \"f63b\", \"M336 96l48 64-128 0 0-64 80 0zm128 64L387.2 57.6C375.1 41.5 356.1 32 336 32L224 32c-17.7 0-32 14.3-32 32l0 96-144 0c-26.5 0-48 21.5-48 48l0 64c0 18.1 10.1 33.9 24.9 42.1-.5 5.7 1.1 11.6 4.7 16.4-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.3 31.3l11.3 11.3c8.6 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.7-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.3-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 2.4-3.2 3.9-6.8 4.5-10.5l114.2 0c.6 3.7 2.1 7.3 4.5 10.5-3.7 6.9-6.8 14.1-9 21.8-11.6 1.7-20.6 11.7-20.6 23.8l0 16c0 12.1 8.9 22.1 20.6 23.8 2.2 7.6 5.3 14.9 9 21.8-7 9.4-6.3 22.8 2.2 31.3l11.3 11.3c8.5 8.6 21.9 9.3 31.3 2.2 6.8 3.7 14.1 6.8 21.7 9 1.7 11.6 11.7 20.6 23.8 20.6l16 0c12.1 0 22.1-8.9 23.8-20.6 7.6-2.2 14.9-5.3 21.8-9 9.4 7 22.8 6.3 31.3-2.2l11.3-11.3c8.6-8.6 9.3-21.9 2.2-31.3 3.7-6.8 6.8-14.1 9-21.7 11.6-1.7 20.6-11.7 20.6-23.8l0-16c0-12.1-8.9-22.1-20.6-23.8-2.2-7.6-5.3-14.9-9-21.7 3.6-4.8 5.2-10.7 4.7-16.4 14.8-8.2 24.9-23.9 24.9-42.1l0-64c0-26.5-21.5-48-48-48l-64 0zM128 336a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm272 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\n \"asterisk\": [448, 512, [10033, 61545], \"2a\", \"M224 0c17.7 0 32 14.3 32 32l0 168.6 144-83.1c15.3-8.8 34.9-3.6 43.7 11.7s3.6 34.9-11.7 43.7L288 256 432 339.1c15.3 8.8 20.6 28.4 11.7 43.7s-28.4 20.6-43.7 11.7L256 311.4 256 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-168.6-144 83.1c-15.3 8.8-34.9 3.6-43.7-11.7S.7 348 16 339.1L160 256 16 172.9C.7 164-4.5 144.5 4.3 129.1S32.7 108.6 48 117.4L192 200.6 192 32c0-17.7 14.3-32 32-32z\"],\n \"battery-full\": [640, 512, [128267, \"battery\", \"battery-5\"], \"f240\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l304 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-304 0z\"],\n \"child-dress\": [320, 512, [], \"e59c\", \"M224 64A64 64 0 1 0 96 64 64 64 0 1 0 224 64zM88 400l0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 16 0 0 80c0 17.7 14.3 32 32 32s32-14.3 32-32l0-80 17.8 0c10.9 0 18.6-10.7 15.2-21.1l-31.1-93.4 28.7 37.8c10.7 14.1 30.8 16.8 44.8 6.2s16.8-30.7 6.2-44.8L254.6 207c-22.4-29.6-57.5-47-94.6-47s-72.2 17.4-94.6 47L6.5 284.7c-10.7 14.1-7.9 34.2 6.2 44.8s34.2 7.9 44.8-6.2L86.2 285.5 55 378.9C51.6 389.3 59.3 400 70.2 400L88 400z\"],\n \"face-kiss-beam\": [512, 512, [128537, \"kiss-beam\"], \"f597\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM240 288l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"trash-can-arrow-up\": [448, 512, [\"trash-restore-alt\"], \"f82a\", \"M167.1-16l113.9 0c13.8 0 26 8.8 30.4 21.9L320 32 416 32c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64S14.3 32 32 32l96 0 8.7-26.1C141.1-7.2 153.3-16 167.1-16zM32 144l384 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l0-304zm209 79c-9.4-9.4-24.6-9.4-33.9 0l-72 72c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l31-31 0 102.1c0 13.3 10.7 24 24 24s24-10.7 24-24l0-102.1 31 31c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-72-72z\"],\n \"font\": [512, 512, [], \"f031\", \"M285.1 50.7C279.9 39.3 268.5 32 256 32s-23.9 7.3-29.1 18.7L59.5 416 48 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-6.1 0 22-48 208.3 0 22 48-6.1 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l88 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-11.5 0-167.4-365.3zM330.8 304L181.2 304 256 140.8 330.8 304z\"],\n \"bore-hole\": [512, 512, [], \"e4c3\", \"M256 0c-17.7 0-32 14.3-32 32l0 232.6c-19.1 11.1-32 31.7-32 55.4 0 35.3 28.7 64 64 64s64-28.7 64-64c0-23.7-12.9-44.4-32-55.4L288 32c0-17.7-14.3-32-32-32zM0 384l0 64c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-272c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48l0 144c0 61.9-50.1 112-112 112S144 381.9 144 320l0-144c0-26.5-21.5-48-48-48l-48 0c-26.5 0-48 21.5-48 48L0 384z\"],\n \"virus-covid\": [512, 512, [], \"e4a8\", \"M192 24c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 33.6c30.7 4.2 58.8 16.3 82.3 34.1L386.1 92 374.8 80.6c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l56.6 56.6c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-11.3-11.3-23.8 23.8c17.9 23.5 29.9 51.7 34.1 82.3l33.6 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 80c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-16-33.6 0c-4.2 30.7-16.3 58.8-34.1 82.3l23.8 23.8 11.3-11.3c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-56.6 56.6c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l11.3-11.3-23.8-23.8c-23.5 17.9-51.7 29.9-82.3 34.1l0 33.6 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-33.6c-30.7-4.2-58.8-16.3-82.3-34.1l-23.8 23.8 11.3 11.3c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L46.7 408.7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l11.3 11.3 23.8-23.8C97.9 338.8 85.8 310.7 81.6 280l-33.6 0 0 16c0 13.3-10.7 24-24 24S0 309.3 0 296l0-80c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 33.6 0c4.2-30.7 16.3-58.8 34.1-82.3L92 125.9 80.6 137.2c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l56.6-56.6c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L125.9 92 149.7 115.7c23.5-17.9 51.7-29.9 82.3-34.1l0-33.6-16 0c-13.3 0-24-10.7-24-24zm32 200a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm96 96a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"file-pdf\": [576, 512, [], \"f1c1\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l80 0 0-112c0-35.3 28.7-64 64-64l176 0 0-165.5c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM240 380c-11 0-20 9-20 20l0 128c0 11 9 20 20 20s20-9 20-20l0-28 12 0c33.1 0 60-26.9 60-60s-26.9-60-60-60l-32 0zm32 80l-12 0 0-40 12 0c11 0 20 9 20 20s-9 20-20 20zm96-80c-11 0-20 9-20 20l0 128c0 11 9 20 20 20l32 0c28.7 0 52-23.3 52-52l0-64c0-28.7-23.3-52-52-52l-32 0zm20 128l0-88 12 0c6.6 0 12 5.4 12 12l0 64c0 6.6-5.4 12-12 12l-12 0zm88-108l0 128c0 11 9 20 20 20s20-9 20-20l0-44 28 0c11 0 20-9 20-20s-9-20-20-20l-28 0 0-24 28 0c11 0 20-9 20-20s-9-20-20-20l-48 0c-11 0-20 9-20 20z\"],\n \"language\": [576, 512, [], \"f1ab\", \"M160 0c17.7 0 32 14.3 32 32l0 32 128 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-9.6 0-8.4 23.1c-16.4 45.2-41.1 86.5-72.2 122 14.2 8.8 29 16.6 44.4 23.5l50.4 22.4 62.2-140c5.1-11.6 16.6-19 29.2-19s24.1 7.4 29.2 19l128 288c7.2 16.2-.1 35.1-16.2 42.2s-35.1-.1-42.2-16.2l-20-45-157.5 0-20 45c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l39.8-89.5-50.4-22.4c-23-10.2-45-22.4-65.8-36.4-21.3 17.2-44.6 32.2-69.5 44.7L78.3 380.6c-15.8 7.9-35 1.5-42.9-14.3s-1.5-35 14.3-42.9l34.5-17.3c16.3-8.2 31.8-17.7 46.4-28.3-13.8-12.7-26.8-26.4-38.9-40.9L81.6 224.7c-11.3-13.6-9.5-33.8 4.1-45.1s33.8-9.5 45.1 4.1l10.2 12.2c11.5 13.9 24.1 26.8 37.4 38.7 27.5-30.4 49.2-66.1 63.5-105.4l.5-1.2-210.3 0C14.3 128 0 113.7 0 96S14.3 64 32 64l96 0 0-32c0-17.7 14.3-32 32-32zM416 270.8L365.7 384 466.3 384 416 270.8z\"],\n \"shield-halved\": [512, 512, [\"shield-alt\"], \"f3ed\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0zm0 66.8l0 378.1c138-66.8 175.1-214.8 176-303.4l-176-74.6 0 0z\"],\n \"caret-up\": [320, 512, [], \"f0d8\", \"M140.3 135.2c12.6-10.3 31.1-9.5 42.8 2.2l128 128c9.2 9.2 11.9 22.9 6.9 34.9S301.4 320 288.5 320l-256 0c-12.9 0-24.6-7.8-29.6-19.8S.7 274.5 9.9 265.4l128-128 2.4-2.2z\"],\n \"file-pen\": [640, 512, [128221, \"file-edit\"], \"f31c\", \"M128.1 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l146.2 0 10.9-54.5c4.3-21.7 15-41.6 30.6-57.2l132.2-132.2 0-97.5c0-17-6.7-33.3-18.7-45.3L322.8 18.7C310.8 6.7 294.5 0 277.6 0L128.1 0zM389.6 176l-93.5 0c-13.3 0-24-10.7-24-24l0-93.5 117.5 117.5zM332.3 466.9l-11.9 59.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6 1 0 1.9-.1 2.9-.3l59.6-11.9c12.4-2.5 23.8-8.6 32.7-17.5l118.9-118.9-80-80-118.9 118.9c-8.9 8.9-15 20.3-17.5 32.7zm267.8-123c22.1-22.1 22.1-57.9 0-80s-57.9-22.1-80 0l-28.8 28.8 80 80 28.8-28.8z\"],\n \"person-biking\": [576, 512, [128692, \"biking\"], \"f84a\", \"M368 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm27.2 64l-61.8-48.8c-17.3-13.6-41.7-13.8-59.1-.3l-83.1 64.2c-30.7 23.8-28.5 70.8 4.3 91.6L256 305.1 256 416c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128c0-10.7-5.3-20.7-14.2-26.6L263 232.9 323.3 184.4 364 217c5.7 4.5 12.7 7 20 7l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-52.8 0zM112 512a112 112 0 1 0 0-224 112 112 0 1 0 0 224zm352 0a112 112 0 1 0 0-224 112 112 0 1 0 0 224z\"],\n \"book-open-reader\": [512, 512, [\"book-reader\"], \"f5da\", \"M256 152a88 88 0 1 0 0-176 88 88 0 1 0 0 176zm0 298.7l0-149.3c16.3-6.8 32.9-13.7 49.7-20.7 39-16.2 80.8-24.6 123.1-24.6l19.2 0 0 160-19.2 0c-59.1 0-117.7 11.7-172.3 34.5l-.5 .2zM256 232l-25.1-10.5C184.1 202 133.9 192 83.2 192L48 192c-26.5 0-48 21.5-48 48L0 432c0 26.5 21.5 48 48 48l35.2 0c50.7 0 100.9 10 147.7 29.5l12.8 5.3c7.9 3.3 16.7 3.3 24.6 0l12.8-5.3c46.8-19.5 97-29.5 147.7-29.5l35.2 0c26.5 0 48-21.5 48-48l0-192c0-26.5-21.5-48-48-48l-35.2 0c-50.7 0-100.9 10-147.7 29.5L256 232z\"],\n \"glass-water-droplet\": [384, 512, [], \"e4f5\", \"M32 0C23.1 0 14.6 3.7 8.6 10.2S-.6 25.4 .1 34.3L28.9 437.7c3 41.9 37.8 74.3 79.8 74.3l166.6 0c42 0 76.8-32.4 79.8-74.3L383.9 34.3c.6-8.9-2.4-17.6-8.5-24.1S360.9 0 352 0L32 0zM83 297.5L66.4 64 317.6 64 301 297.5 288 304c-20.1 10.1-43.9 10.1-64 0s-43.9-10.1-64 0-43.9 10.1-64 0l-13-6.5zM256 196c0-24-33.7-70.1-52.2-93.5-6.1-7.7-17.5-7.7-23.6 0-18.5 23.4-52.2 69.5-52.2 93.5 0 33.1 28.7 60 64 60s64-26.9 64-60z\"],\n \"tower-broadcast\": [576, 512, [\"broadcast-tower\"], \"f519\", \"M87.9 11.5c-11.3-6.9-26.1-3.2-33 8.1-24.8 41-39 89.1-39 140.4s14.2 99.4 39 140.4c6.9 11.3 21.6 15 33 8.1s15-21.6 8.1-33C75.7 241.9 64 202.3 64 160S75.7 78.1 96.1 44.4c6.9-11.3 3.2-26.1-8.1-33zm400.1 0c-11.3 6.9-15 21.6-8.1 33 20.4 33.7 32.1 73.3 32.1 115.6s-11.7 81.9-32.1 115.6c-6.9 11.3-3.2 26.1 8.1 33s26.1 3.2 33-8.1c24.8-41 39-89.1 39-140.4S545.8 60.6 521 19.6c-6.9-11.3-21.6-15-33-8.1zM320 215.4c19.1-11.1 32-31.7 32-55.4 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 23.7 12.9 44.4 32 55.4L256 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-264.6zM180.2 91c7.2-11.2 3.9-26-7.2-33.2s-26-3.9-33.2 7.2c-17.6 27.4-27.8 60-27.8 95s10.2 67.6 27.8 95c7.2 11.2 22 14.4 33.2 7.2s14.4-22 7.2-33.2c-12.8-19.9-20.2-43.6-20.2-69s7.4-49.1 20.2-69zM436.2 65c-7.2-11.2-22-14.4-33.2-7.2s-14.4 22-7.2 33.2c12.8 19.9 20.2 43.6 20.2 69s-7.4 49.1-20.2 69c-7.2 11.2-3.9 26 7.2 33.2s26 3.9 33.2-7.2c17.6-27.4 27.8-60 27.8-95s-10.2-67.6-27.8-95z\"],\n \"minimize\": [512, 512, [\"compress-arrows-alt\"], \"f78c\", \"M456 224l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2S322.1 32.2 329 39l40 40 73.4-73.4C446 2 450.9 0 456 0s10 2 13.7 5.7l36.7 36.7C510 46 512 50.9 512 56s-2 10-5.7 13.7L433 143 473 183c6.9 6.9 8.9 17.2 5.2 26.2S465.7 224 456 224zm0 64c9.7 0 18.5 5.8 22.2 14.8s1.7 19.3-5.2 26.2l-40 40 73.4 73.4c3.6 3.6 5.7 8.5 5.7 13.7s-2 10-5.7 13.7l-36.7 36.7C466 510 461.1 512 456 512s-10-2-13.7-5.7L369 433 329 473c-6.9 6.9-17.2 8.9-26.2 5.2S288 465.7 288 456l0-144c0-13.3 10.7-24 24-24l144 0zm-256 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-40-40-73.4 73.4C66 510 61.1 512 56 512s-10-2-13.7-5.7L5.7 469.7C2 466 0 461.1 0 456s2-10 5.7-13.7L79 369 39 329c-6.9-6.9-8.9-17.2-5.2-26.2S46.3 288 56 288l144 0zM56 224c-9.7 0-18.5-5.8-22.2-14.8S32.2 189.9 39 183L79 143 5.7 69.7C2 66 0 61.1 0 56S2 46 5.7 42.3L42.3 5.7C46 2 50.9 0 56 0S66 2 69.7 5.7L143 79 183 39c6.9-6.9 17.2-8.9 26.2-5.2S224 46.3 224 56l0 144c0 13.3-10.7 24-24 24L56 224z\"],\n \"arrow-right-to-city\": [640, 512, [], \"e4b3\", \"M288 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 80 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 288c0 26.5-21.5 48-48 48l-256 0c-26.5 0-48-21.5-48-48l0-416zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM352 304l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm176-80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zM512 336l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM153 167l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l102.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0z\"],\n \"laptop-medical\": [640, 512, [], \"f812\", \"M64 96c0-35.3 28.7-64 64-64l384 0c35.3 0 64 28.7 64 64l0 240-64 0 0-240-384 0 0 240-64 0 0-240zM0 403.2C0 392.6 8.6 384 19.2 384l601.6 0c10.6 0 19.2 8.6 19.2 19.2 0 42.4-34.4 76.8-76.8 76.8L76.8 480C34.4 480 0 445.6 0 403.2zM288 160c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"bread-slice\": [512, 512, [], \"f7ec\", \"M64 432l0-176c-35.3 0-64-28.7-64-64 0-216.5 512-216.5 512 0 0 35.3-28.7 64-64 64l0 176c0 26.5-21.5 48-48 48l-288 0c-26.5 0-48-21.5-48-48z\"],\n \"globe\": [512, 512, [127760], \"f0ac\", \"M351.9 280l-190.9 0c2.9 64.5 17.2 123.9 37.5 167.4 11.4 24.5 23.7 41.8 35.1 52.4 11.2 10.5 18.9 12.2 22.9 12.2s11.7-1.7 22.9-12.2c11.4-10.6 23.7-28 35.1-52.4 20.3-43.5 34.6-102.9 37.5-167.4zM160.9 232l190.9 0C349 167.5 334.7 108.1 314.4 64.6 303 40.2 290.7 22.8 279.3 12.2 268.1 1.7 260.4 0 256.4 0s-11.7 1.7-22.9 12.2c-11.4 10.6-23.7 28-35.1 52.4-20.3 43.5-34.6 102.9-37.5 167.4zm-48 0C116.4 146.4 138.5 66.9 170.8 14.7 78.7 47.3 10.9 131.2 1.5 232l111.4 0zM1.5 280c9.4 100.8 77.2 184.7 169.3 217.3-32.3-52.2-54.4-131.7-57.9-217.3L1.5 280zm398.4 0c-3.5 85.6-25.6 165.1-57.9 217.3 92.1-32.7 159.9-116.5 169.3-217.3l-111.4 0zm111.4-48C501.9 131.2 434.1 47.3 342 14.7 374.3 66.9 396.4 146.4 399.9 232l111.4 0z\"],\n \"folder-minus\": [512, 512, [], \"f65d\", \"M448 448L64 448c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 240c0 35.3-28.7 64-64 64zM184 240c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"mask-face\": [640, 512, [], \"e1d7\", \"M320 64c-27.2 0-53.8 8-76.4 23.1l-37.1 24.8c-15.8 10.5-34.3 16.1-53.3 16.1L64 128c-35.3 0-64 28.7-64 64l0 78.7c0 62.6 45.2 116 107 126.3l97.9 16.3c33 22 72.6 34.7 115.1 34.7s82.2-12.8 115.1-34.7L533 396.9c61.7-10.3 107-63.7 107-126.3l0-78.7c0-35.3-28.7-64-64-64l-89.2 0c-19 0-37.5-5.6-53.3-16.1L396.4 87.1C373.8 72 347.2 64 320 64zM135.9 336.9l-18.4-3.1C86.6 328.7 64 302 64 270.7l0-78.7 48 0 0 48c0 35 8.6 67.9 23.9 96.9zm386.6-3.1l-18.4 3.1C519.4 307.9 528 275 528 240l0-48 48 0 0 78.7c0 31.3-22.6 58-53.5 63.1zM192 232c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-208 0c-13.3 0-24-10.7-24-24zm56 56l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"bong\": [512, 512, [], \"f55c\", \"M448.5 384c0 41.5-13.1 79.9-35.5 111.3-7.9 11.1-21.2 16.7-34.8 16.7l-243.3 0c-13.7 0-26.9-5.6-34.8-16.7-22.4-31.4-35.5-69.8-35.5-111.3 0-71.1 38.6-133.1 96-166.3l0-153.7c-17.7 0-32-14.3-32-32s14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 153.7c14.2 8.2 27.2 18.2 38.8 29.6l39.3-39.3-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16 16 32 32 48 48 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-7-7-43.3 43.3c17.3 28.9 27.3 62.6 27.3 98.8zM288.5 64l-64 0 0 190.6-32 18.5c-19.5 11.3-35.7 27.5-46.9 46.9l221.8 0c-11.2-19.4-27.4-35.6-46.9-46.9l-32-18.5 0-190.6z\"],\n \"road-bridge\": [576, 512, [], \"e563\", \"M32 32l208 0 0 64-24 0 0 64 24 0 0 129.3c-45.4 7.6-80 47.1-80 94.7l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64S14.3 32 32 32zM88 96l0 64 80 0 0-64-80 0zM336 32l72 0 0 72c0 13.3 10.7 24 24 24s24-10.7 24-24l0-72 72 0c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-72 0 0-72c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 72-72 0c-26.5 0-48-21.5-48-48l0-352c0-26.5 21.5-48 48-48zm96 160c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24z\"],\n \"arrow-up-9-1\": [512, 512, [\"sort-numeric-up-alt\"], \"f887\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM365.1 206.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 112a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm42.7 182c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26z\"],\n \"mountain-city\": [640, 512, [], \"e52e\", \"M256.3 48c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 48 48 0 0-72c0-13.3 10.7-24 24-24s24 10.7 24 24l0 72 16 0c26.5 0 48 21.5 48 48l0 320c0 26.5-21.5 48-48 48l-77.8 0c4-15.4 2.4-32.6-6.7-48.2L354.6 256 368.3 256c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-6.1 0-11.4 3.4-14.1 8.5l-42.6-73c-6-10.2-14.1-18-23.3-23.3l0-56.2zm64 64l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm160 96l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zm16 80c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm-272-64.7l-65.1 111.6 33.1 33.1 48-48 40.4 0-56.4-96.7zm-27.6-47.9c12.3-21.2 42.9-21.2 55.3 0L420.3 463.9c12.4 21.3-2.9 48.1-27.6 48.1L56 512c-24.7 0-40.1-26.8-27.6-48.1L196.7 175.4z\"],\n \"arrow-down-9-1\": [512, 512, [\"sort-numeric-desc\", \"sort-numeric-down-alt\"], \"f886\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm134.5-184l11.7-18c-32.9-9.9-56.8-40.5-56.8-76.6 0-44.2 35.8-80 80-80s80 35.8 80 80c0 22.9-6.6 45.3-19.1 64.5l-42.1 64.9c-9.6 14.8-29.4 19.1-44.3 9.4s-19.1-29.4-9.4-44.3zM424 112a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zm-5.3 182c8.3 6 13.3 15.7 13.3 26l0 96 16 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0 0-51.6-5.9 2c-16.8 5.6-34.9-3.5-40.5-20.2s3.5-34.9 20.2-40.5l48-16c9.8-3.3 20.5-1.6 28.8 4.4z\"],\n \"face-grin-wide\": [512, 512, [128515, \"grin-alt\"], \"f581\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM208 192c0 35.3-14.3 64-32 64s-32-28.7-32-64 14.3-64 32-64 32 28.7 32 64zm128 64c-17.7 0-32-28.7-32-64s14.3-64 32-64 32 28.7 32 64-14.3 64-32 64z\"],\n \"poop\": [512, 512, [], \"f619\", \"M254.4 6.6c3.5-4.3 9-6.5 14.5-5.7 46.9 6.3 83.1 46.5 83.1 95.1 0 11.2-1.9 22-5.5 32l5.5 0c35.3 0 64 28.7 64 64 0 19.1-8.4 36.3-21.7 48l13.7 0c39.8 0 72 32.2 72 72 0 23.2-11 43.8-28 57 34.1 5.7 60 35.3 60 71 0 39.8-32.2 72-72 72L72 512c-39.8 0-72-32.2-72-72 0-35.7 25.9-65.3 60-71-17-13.2-28-33.8-28-57 0-39.8 32.2-72 72-72l13.7 0c-13.3-11.7-21.7-28.9-21.7-48 0-35.3 28.7-64 64-64l16.2 0c44.1-.1 79.8-35.9 79.8-80 0-9.2-1.5-17.9-4.3-26.1-1.8-5.2-.8-11.1 2.8-15.4z\"],\n \"dharmachakra\": [512, 512, [9784], \"f655\", \"M337.8 205.7l48.6-42.5c13.8 19.3 23.4 41.9 27.4 66.2l-64.4 4.3c-2.4-10.1-6.4-19.5-11.6-28zm140.1 19.5c-5.3-38.8-20.6-74.5-43.2-104.3l.8-.7C449 108.4 449.7 87.6 437 75s-33.4-12-45.2 1.5l-.7 .8c-29.8-22.6-65.5-37.9-104.3-43.2l.1-1.1c1.2-17.9-13-33-30.9-33s-32.1 15.2-30.9 33l.1 1.1c-38.8 5.3-74.5 20.6-104.3 43.2l-.7-.8C108.4 63 87.6 62.3 75 75s-12 33.4 1.5 45.2l.8 .7c-22.6 29.8-37.9 65.5-43.2 104.3l-1.1-.1c-17.9-1.2-33 13-33 30.9s15.2 32.1 33 30.9l1.1-.1c5.3 38.8 20.6 74.5 43.2 104.3l-.8 .7C63 403.6 62.3 424.4 75 437s33.4 12 45.2-1.5l.7-.8c29.8 22.6 65.5 37.9 104.3 43.2l-.1 1.1c-1.2 17.9 13 33 30.9 33s32.1-15.2 30.9-33l-.1-1.1c38.8-5.3 74.5-20.6 104.3-43.2l.7 .8c11.8 13.5 32.5 14.2 45.2 1.5s12-33.4-1.5-45.2l-.8-.7c22.6-29.8 37.9-65.5 43.2-104.3l1.1 .1c17.9 1.2 33-13 33-30.9s-15.2-32.1-33-30.9l-1.1 .1zM163.2 125.6c19.3-13.8 41.9-23.4 66.2-27.5l4.3 64.4c-10 2.4-19.5 6.4-28 11.6l-42.5-48.6zm-65 103.8c4.1-24.4 13.7-46.9 27.5-66.2l48.6 42.5c-5.3 8.5-9.2 18-11.6 28l-64.4-4.3zm27.5 119.4c-13.8-19.3-23.4-41.9-27.5-66.2l64.4-4.3c2.4 10.1 6.4 19.5 11.6 28l-48.6 42.5zm103.8 65c-24.4-4.1-46.9-13.7-66.2-27.4l42.5-48.6c8.5 5.3 18 9.2 28 11.6l-4.3 64.4zm119.4-27.4c-19.3 13.8-41.9 23.4-66.2 27.4l-4.3-64.4c10-2.4 19.5-6.4 28-11.6l42.5 48.6zm65-103.8c-4.1 24.4-13.7 46.9-27.4 66.2l-48.6-42.5c5.3-8.6 9.2-18 11.6-28l64.4 4.3zm-65-156.9l-42.5 48.6c-8.6-5.3-18-9.2-28-11.6l4.3-64.4c24.4 4.1 46.9 13.7 66.2 27.5zM256 224a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"battery-quarter\": [640, 512, [\"battery-2\"], \"f243\", \"M528 128c8.8 0 16 7.2 16 16l0 224c0 8.8-7.2 16-16 16l-416 0c-8.8 0-16-7.2-16-16l0-224c0-8.8 7.2-16 16-16l416 0zM112 64c-44.2 0-80 35.8-80 80l0 224c0 44.2 35.8 80 80 80l416 0c44.2 0 80-35.8 80-80l0-48c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l0-48c0-44.2-35.8-80-80-80L112 64zm56 112c-13.3 0-24 10.7-24 24l0 112c0 13.3 10.7 24 24 24l64 0c13.3 0 24-10.7 24-24l0-112c0-13.3-10.7-24-24-24l-64 0z\"],\n \"ankh\": [320, 512, [9765], \"f644\", \"M96 128c0-35.3 28.7-64 64-64s64 28.7 64 64c0 41.6-20.7 76.6-46.6 104.1-5.9 6.2-11.8 11.8-17.4 16.7-5.6-4.9-11.5-10.5-17.4-16.7-25.9-27.5-46.6-62.6-46.6-104.1zM160 0C89.3 0 32 57.3 32 128 32 180.4 53.5 223.5 78.8 256L32 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-46.8 0C266.5 223.5 288 180.4 288 128 288 57.3 230.7 0 160 0z\"],\n \"diamond\": [512, 512, [9830], \"f219\", \"M17 215L215 17C225.9 6.1 240.6 0 256 0s30.1 6.1 41 17L495 215c10.9 10.9 17 25.6 17 41s-6.1 30.1-17 41L297 495c-10.9 10.9-25.6 17-41 17s-30.1-6.1-41-17L17 297C6.1 286.1 0 271.4 0 256s6.1-30.1 17-41z\"],\n \"subscript\": [576, 512, [], \"f12c\", \"M96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l15.3 0 89.6 128-89.6 128-15.3 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0c10.4 0 20.2-5.1 26.2-13.6L240 311.8 325.8 434.4c6 8.6 15.8 13.6 26.2 13.6l32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-15.3 0-89.6-128 89.6-128 15.3 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0c-10.4 0-20.2 5.1-26.2 13.6L240 200.2 154.2 77.6C148.2 69.1 138.4 64 128 64L96 64zM544 320c0-11.1-5.7-21.4-15.2-27.2s-21.2-6.4-31.1-1.4l-32 16c-15.8 7.9-22.2 27.1-14.3 42.9 5.6 11.2 16.9 17.7 28.6 17.7l0 80c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-128z\"],\n \"rupee-sign\": [448, 512, [8360, \"rupee\"], \"f156\", \"M0 64C0 46.3 14.3 32 32 32l80 0c79.5 0 144 64.5 144 144 0 54.3-30 101.5-74.4 126.1l41 136.7c5.1 16.9-4.5 34.8-21.5 39.8s-34.8-4.5-39.8-21.5L120.1 319.8c-2.7 .1-5.4 .2-8.1 .2l-48 0 0 128c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64zM64 256l48 0c44.2 0 80-35.8 80-80s-35.8-80-80-80l-48 0 0 160zm285.1-32l34.9 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.9 0c-7.2 0-13.1 5.9-13.1 13.1 0 5.7 3.7 10.7 9.1 12.5l49.4 15.9c31.9 10.3 53.5 39.9 53.5 73.4 0 42.6-34.5 77.1-77.1 77.1L320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l50.9 0c7.2 0 13.1-5.9 13.1-13.1 0-5.7-3.7-10.7-9.1-12.5l-49.4-15.9c-31.9-10.3-53.5-39.9-53.5-73.4 0-42.6 34.5-77.1 77.1-77.1z\"],\n \"person-rifle\": [512, 512, [], \"e54e\", \"M416 0L384 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l0 100.3c-9.6 5.5-16 15.9-16 27.7l0 32c-17.7 0-32 14.3-32 32l0 144c0 17.7 14.3 32 32 32l16 0 0 96c0 8.8 7.2 16 16 16l59.5 0c10.4 0 18-9.8 15.5-19.9l-23-92.1 44 0c8.8 0 16-7.2 16-16l0-16c0-8.8-7.2-16-16-16l-48 0 0-26.7 53.1-17.7c6.5-2.2 10.9-8.3 10.9-15.2l0-84.5c0-8.8-7.2-16-16-16l-16 0c-8.8 0-16 7.2-16 16l0 56-16 5.3 0-109.3c0-11.8-6.4-22.2-16-27.7L432 16c0-8.8-7.2-16-16-16zM224 208C118 208 32 294 32 400l0 48c0 17.7 14.3 32 32 32s32-14.3 32-32l0-48c0-32.5 12.1-62.1 32-84.7l0 196.7 160 0 0-293.1c-20-7.1-41.6-10.9-64-10.9zM280 88a72 72 0 1 0 -144 0 72 72 0 1 0 144 0z\"],\n \"d\": [384, 512, [100], \"44\", \"M0 64C0 46.3 14.3 32 32 32l128 0c123.7 0 224 100.3 224 224S283.7 480 160 480L32 480c-17.7 0-32-14.3-32-32L0 64zM64 96l0 320 96 0c88.4 0 160-71.6 160-160S248.4 96 160 96L64 96z\"],\n \"square-nfi\": [448, 512, [], \"e576\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM93 172.3l35 63 0-51.4c0-13.3 10.7-24 24-24s24 10.7 24 24l0 144c0 10.9-7.4 20.5-18 23.2s-21.7-2-27-11.6l-35-63 0 51.4c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-10.9 7.4-20.5 18-23.2s21.7 2 27 11.6zM208 184c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0 32 40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144zm192 0l0 144c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-144c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"teeth\": [512, 512, [], \"f62e\", \"M0 96C0 60.7 28.7 32 64 32l384 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96zM144 208l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zm128 0l0 24c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-24c0-26.5-21.5-48-48-48s-48 21.5-48 48zM80 176c-17.7 0-32 14.3-32 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32zm320 32l0 24c0 13.3 10.7 24 24 24l16 0c13.3 0 24-10.7 24-24l0-24c0-17.7-14.3-32-32-32s-32 14.3-32 32zM48 336c0 17.7 14.3 32 32 32s32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16zm144 48c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm128 0c26.5 0 48-21.5 48-48l0-16c0-8.8-7.2-16-16-16l-64 0c-8.8 0-16 7.2-16 16l0 16c0 26.5 21.5 48 48 48zm112-16c17.7 0 32-14.3 32-32l0-16c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 16c0 17.7 14.3 32 32 32z\"],\n \"magnifying-glass-dollar\": [512, 512, [\"search-dollar\"], \"f688\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zM212 96c-11 0-20 9-20 20l0 4c-28.8 .3-52 23.7-52 52.5 0 25.7 18.5 47.6 43.9 51.8l41.7 7c6 1 10.4 6.2 10.4 12.3 0 6.9-5.6 12.5-12.5 12.5L168 256c-11 0-20 9-20 20s9 20 20 20l24 0 0 4c0 11 9 20 20 20s20-9 20-20l0-4.7c25-4.1 44-25.7 44-51.8 0-25.7-18.5-47.6-43.9-51.8l-41.7-7c-6-1-10.4-6.2-10.4-12.3 0-6.9 5.6-12.5 12.5-12.5l47.5 0c11 0 20-9 20-20s-9-20-20-20l-8 0 0-4c0-11-9-20-20-20z\"],\n \"dumpster-fire\": [640, 512, [], \"f794\", \"M164.3 64L138.7 192 56 192c-13.3 0-24-10.7-24-24l0-4.1c0-2.6 .4-5.1 1.2-7.6L58.5 80.4C61.8 70.6 71 64 81.3 64l83 0zm23.4 128l25.6-128 82.7 0 0 128-108.3 0zM344 64l82.7 0 16 80c-14.7 .2-29.3 5.5-40.9 15.9-11.5 10.3-22.5 21-32.8 32.1l-24.9 0 0-128zM96 240l233.2 0c-6.4 8.8-12.3 17.6-17.7 26.3-21.4 34.7-39.5 76.1-39.5 115.8 0 17.1 2.1 33.8 6 49.9l-120.4 0 1.9 10.3c3.2 17.4-8.4 34-25.8 37.2s-34-8.4-37.2-25.8C71 313.3 58 242.1 57.7 240L96 240zm512-72c0 11-7.4 20.3-17.5 23.1-.9-.8-1.7-1.6-2.6-2.4-21.8-20-54.3-21.8-78-5.5-4.2-4.3-8.5-8.5-12.9-12.6l-21.3-106.6 83 0c10.3 0 19.5 6.6 22.8 16.4l25.3 75.9c.8 2.4 1.2 5 1.2 7.6l0 4.1zM505.7 240.3L518 226.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM544 432.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64z\"],\n \"upload\": [448, 512, [], \"f093\", \"M256 109.3L256 320c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-210.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L256 109.3zM224 400c44.2 0 80-35.8 80-80l80 0c35.3 0 64 28.7 64 64l0 32c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-32c0-35.3 28.7-64 64-64l80 0c0 44.2 35.8 80 80 80zm144 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"user-slash\": [576, 512, [62714, \"user-alt-slash\", \"user-large-slash\"], \"f506\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L311.5 245.7c55-10.9 96.5-59.5 96.5-117.7 0-66.3-53.7-120-120-120-58.2 0-106.8 41.5-117.7 96.5L41-24.9zM235.6 305.4C147.9 316.6 80 391.5 80 482.3 80 498.7 93.3 512 109.7 512l332.5 0-206.6-206.6z\"],\n \"arrow-left\": [512, 512, [8592], \"f060\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L109.3 288 480 288c17.7 0 32-14.3 32-32s-14.3-32-32-32l-370.7 0 105.4-105.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160z\"],\n \"vial-virus\": [576, 512, [], \"e597\", \"M64 32C64 14.3 78.3 0 96 0L320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 151.7c-18.5 0-37 7-51.1 21.1-21.6 21.6-26.6 53.6-15 79.9-26.9 10.4-45.9 36.6-45.9 67.1s19 56.7 45.9 67.1c-7.3 16.5-8 35.2-2.3 52.2-13.4 5.7-28.2 8.8-43.6 8.8-61.9 0-112-50.1-112-112L96 64C78.3 64 64 49.7 64 32zm96 32l0 128 96 0 0-128-96 0zM280 408c-13.3 0-24-10.7-24-24s10.7-24 24-24c28.8 0 43.2-34.8 22.9-55.2-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c20.4 20.4 55.2 5.9 55.2-22.9 0-13.3 10.7-24 24-24s24 10.7 24 24c0 28.8 34.8 43.2 55.2 22.9 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-20.4 20.4-5.9 55.2 22.9 55.2 13.3 0 24 10.7 24 24s-10.7 24-24 24c-28.8 0-43.2 34.8-22.9 55.2 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-20.4-20.4-55.2-5.9-55.2 22.9 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-28.8-34.8-43.2-55.2-22.9-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c20.4-20.4 5.9-55.2-22.9-55.2zm104-32a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88 40a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"check-double\": [384, 512, [], \"f560\", \"M249.9 66.8c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-106 145.7-37.5-37.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l64 64c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l128-176zm128 136c10.4-14.3 7.2-34.3-7.1-44.7s-34.3-7.2-44.7 7.1l-170 233.7-69.5-69.5c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l96 96c6.6 6.6 15.8 10 25.1 9.3s17.9-5.5 23.4-13.1l192-264z\"],\n \"paw\": [512, 512, [], \"f1b0\", \"M234.5 92.9c14.3 42.9-.3 86.2-32.6 96.8s-70.1-15.6-84.4-58.5 .3-86.2 32.6-96.8 70.1 15.6 84.4 58.5zM100.4 198.6c18.9 32.4 14.3 70.1-10.2 84.1s-59.7-.9-78.5-33.3-14.3-70.1 10.2-84.1 59.7 .9 78.5 33.3zM69.2 401.2C121.6 259.9 214.7 224 256 224s134.4 35.9 186.8 177.2c3.6 9.7 5.2 20.1 5.2 30.5l0 1.6c0 25.8-20.9 46.7-46.7 46.7-11.5 0-22.9-1.4-34-4.2l-88-22c-15.3-3.8-31.3-3.8-46.6 0l-88 22c-11.1 2.8-22.5 4.2-34 4.2-25.8 0-46.7-20.9-46.7-46.7l0-1.6c0-10.4 1.6-20.8 5.2-30.5zM421.8 282.7c-24.5-14-29.1-51.7-10.2-84.1s54-47.3 78.5-33.3 29.1 51.7 10.2 84.1-54 47.3-78.5 33.3zM310.1 189.7c-32.3-10.6-46.9-53.9-32.6-96.8s52.1-69.1 84.4-58.5 46.9 53.9 32.6 96.8-52.1 69.1-84.4 58.5z\"],\n \"helmet-safety\": [576, 512, [\"hard-hat\", \"hat-hard\"], \"f807\", \"M352 264l0-200c0-17.7-14.3-32-32-32l-64 0c-17.7 0-32 14.3-32 32l0 200c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-185.9C90 109.8 32 191.8 32 288l0 64 512 0 0-64c-1-95.2-58.4-177.7-144-209.8L400 264c0 13.3-10.7 24-24 24s-24-10.7-24-24zM40 400c-22.1 0-40 17.9-40 40s17.9 40 40 40l496 0c22.1 0 40-17.9 40-40s-17.9-40-40-40L40 400z\"],\n \"e\": [320, 512, [101], \"45\", \"M32 32C14.3 32 0 46.3 0 64L0 448c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-224 0 0-128 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-128 224 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"],\n \"face-laugh-squint\": [512, 512, [\"laugh-squint\"], \"f59b\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM107.7 332.1C102 318 113.4 304 128.6 304l254.9 0c15.2 0 26.6 14 20.9 28.1-23.8 58.6-81.2 99.9-148.3 99.9s-124.6-41.3-148.3-99.9zm15-188.8c4.5-6.8 13.3-9.2 20.6-5.5l79.6 40c5.4 2.7 8.8 8.2 8.8 14.3s-3.4 11.6-8.8 14.3l-79.6 40c-7.3 3.6-16.1 1.3-20.6-5.5s-3.1-15.9 3.1-21.1L159 192 125.8 164.3c-6.2-5.2-7.6-14.3-3.1-21.1zm263.6 21.1L353 192 386.2 219.7c6.2 5.2 7.6 14.3 3.1 21.1s-13.3 9.2-20.6 5.5l-79.6-40c-5.4-2.7-8.8-8.2-8.8-14.3s3.4-11.6 8.8-14.3l79.6-40c7.3-3.6 16.1-1.3 20.6 5.5s3.1 15.9-3.1 21.1z\"],\n \"down-left-and-up-right-to-center\": [512, 512, [\"compress-alt\"], \"f422\", \"M439.5 7c9.4-9.4 24.6-9.4 33.9 0l32 32c9.4 9.4 9.4 24.6 0 33.9l-87 87 39 39c6.9 6.9 8.9 17.2 5.2 26.2S450.2 240 440.5 240l-144 0c-13.3 0-24-10.7-24-24l0-144c0-9.7 5.8-18.5 14.8-22.2s19.3-1.7 26.2 5.2l39 39 87-87zM72.5 272l144 0c13.3 0 24 10.7 24 24l0 144c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-39-39-87 87c-9.4 9.4-24.6 9.4-33.9 0l-32-32c-9.4-9.4-9.4-24.6 0-33.9l87-87-39-39c-6.9-6.9-8.9-17.2-5.2-26.2S62.8 272 72.5 272z\"],\n \"gifts\": [576, 512, [], \"f79c\", \"M202-30.6c12.5 4.4 19 18.1 14.6 30.6l-8.2 23.1 25.4-18.5c10.7-7.8 25.7-5.4 33.5 5.3s5.4 25.7-5.3 33.5L233.8 64 272 64c26.5 0 48 21.5 48 48l0 2.1c-54.7 10.4-96 58.4-96 116l0 1.9c0 8.9 1 17.5 2.8 25.9-11.9 17.8-18.8 39.1-18.8 62.1l0 128c0 23.8 7.4 45.9 20.1 64L48 512c-26.5 0-48-21.5-48-48L0 112C0 85.5 21.5 64 48 64l38.2 0-28.3-20.6C47.2 35.6 44.8 20.6 52.6 9.9S75.4-3.2 86.1 4.6l27.4 20-8.3-25C101-13 107.8-26.6 120.4-30.8s26.2 2.6 30.4 15.2l9.9 29.8 10.7-30.2c4.4-12.5 18.1-19 30.6-14.6zM489.9 208c-7.5 0-14.5 3.8-18.6 10.1L446.9 256 488 256c13.3 0 24-10.7 24-24l0-1.9c0-12.2-9.9-22.1-22.1-22.1zM385.1 256l-24.4-37.9c-4.1-6.3-11.1-10.1-18.6-10.1-12.2 0-22.1 9.9-22.1 22.1l0 1.9c0 13.3 10.7 24 24 24l41.1 0zM281.9 268.5c-6.3-10.7-9.9-23.2-9.9-36.5l0-1.9c0-38.7 31.4-70.1 70.1-70.1 23.8 0 46 12.1 58.9 32.1l15 23.2 15-23.2c12.9-20 35.1-32.1 58.9-32.1 38.7 0 70.1 31.4 70.1 70.1l0 1.9c0 13.3-3.6 25.8-9.9 36.5 15.7 11.7 25.9 30.4 25.9 51.5l0 128c0 35.3-28.7 64-64 64l-72 0 0-208-48 0 0 208-72 0c-35.3 0-64-28.7-64-64l0-128c0-21.1 10.2-39.8 25.9-51.5z\"],\n \"bed\": [576, 512, [128716], \"f236\", \"M32 32c17.7 0 32 14.3 32 32l0 224 224 0 0-128c0-17.7 14.3-32 32-32l160 0c53 0 96 43 96 96l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32S0 465.7 0 448L0 64C0 46.3 14.3 32 32 32zm80 160a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\n \"money-bill-transfer\": [640, 512, [], \"e528\", \"M31 105c-9.4-9.4-9.4-24.6 0-33.9L103-1c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 67.7 0 0 0 338.3 0c35.3 0 64 28.7 64 64l0 178.2-5.1-5.1c-28.1-28.1-73.7-28.1-101.8 0-27.2 27.2-28.1 70.6-2.8 98.9l67.7 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-406.1 0c-35.3 0-64-28.7-64-64l0-178.2 5.1 5.1c28.1 28.1 73.7 28.1 101.8 0 27.2-27.2 28.1-70.6 2.8-98.9l-67.7 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L31 105zM416 256a96 96 0 1 0 -192 0 96 96 0 1 0 192 0zm88-64.5c4.4 .5 8-3.1 8-7.5l0-48c0-4.4-3.6-8-8-8l-48 0c-4.4 0-8.1 3.6-7.5 8 3.6 29 26.6 51.9 55.5 55.5zm-368 129c-4.4-.5-8 3.1-8 7.5l0 48c0 4.4 3.6 8 8 8l48 0c4.4 0 8.1-3.6 7.5-8-3.6-29-26.6-51.9-55.5-55.5z\"],\n \"person-running\": [448, 512, [127939, \"running\"], \"f70c\", \"M256.5-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM123.6 176c-3.3 0-6.2 2-7.4 5L94.2 235.9c-6.6 16.4-25.2 24.4-41.6 17.8s-24.4-25.2-17.8-41.6l21.9-54.9C67.7 129.9 94.1 112 123.6 112l97.3 0c28.5 0 54.8 15.1 69.1 39.7l32.8 56.3 61.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-61.6 0c-22.8 0-43.8-12.1-55.3-31.8l-10-17.1-20.7 70.4 75.4 22.6c27.7 8.3 41.8 39 30.1 65.5L285.7 509c-7.2 16.2-26.1 23.4-42.2 16.2s-23.4-26.1-16.2-42.2l49.2-110.8-95.9-28.8c-32.7-9.8-52-43.7-43.7-76.8l22.7-90.6-35.9 0zm-8 181c13.3 14.9 30.7 26.3 51.2 32.4l4.7 1.4-6.9 19.3c-5.8 16.3-16 30.8-29.3 41.8L52.9 519.8c-13.6 11.2-33.8 9.3-45-4.3s-9.3-33.8 4.3-45l82.4-67.9c4.5-3.7 7.8-8.5 9.8-13.9L115.6 357z\"],\n \"circle-chevron-down\": [512, 512, [\"chevron-circle-down\"], \"f13a\", \"M256 0a256 256 0 1 0 0 512 256 256 0 1 0 0-512zM135 241c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l87 87 87-87c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L273 345c-9.4 9.4-24.6 9.4-33.9 0L135 241z\"],\n \"user-nurse\": [448, 512, [], \"f82f\", \"M96 44.9c0-12.7 7.5-24.2 19.2-29.3l96-42c8.2-3.6 17.5-3.6 25.7 0l96 42C344.5 20.7 352 32.2 352 44.9l0 99.1c0 70.7-57.3 128-128 128S96 214.7 96 144l0-99.1zM304 128l-111.6 0-.4 0-48 0 0 16c0 44.2 35.8 80 80 80s80-35.8 80-80l0-16zM208 16l0 16-16 0c-4.4 0-8 3.6-8 8l0 16c0 4.4 3.6 8 8 8l16 0 0 16c0 4.4 3.6 8 8 8l16 0c4.4 0 8-3.6 8-8l0-16 16 0c4.4 0 8-3.6 8-8l0-16c0-4.4-3.6-8-8-8l-16 0 0-16c0-4.4-3.6-8-8-8L216 8c-4.4 0-8 3.6-8 8zM142.6 323c-6.5-4.9-15.2-6.2-22.6-2.8-61.4 28.2-104.1 90.2-104.1 162.1 0 16.4 13.3 29.7 29.7 29.7l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-67 50.2c-8.5 6.4-20.3 6.4-28.8 0l-67-50.2z\"],\n \"face-kiss-wink-heart\": [640, 512, [128536, \"kiss-wink-heart\"], \"f598\", \"M543.7 268.3c.2-4.1 .3-8.2 .3-12.3 0-141.4-114.6-256-256-256S32 114.6 32 256 146.6 512 288 512c41.4 0 80.5-9.8 115.1-27.3-7.6-17.1-16.1-38.8-21.8-61.7-7.7-30.5-14.1-76.2 8.2-114.7l2.7-4.6c29.5-51 94.7-68.5 145.7-39 2 1.2 4 2.4 5.9 3.7zM240 304c0-8.8 7.2-16 16-16l32 0c26.5 0 48 21.5 48 48 0 12.3-4.6 23.5-12.2 32 7.6 8.5 12.2 19.7 12.2 32 0 26.5-21.5 48-48 48l-32 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l16 0c8.8 0 16-7.2 16-16s-7.2-16-16-16l-16 0c-8.8 0-16-7.2-16-16zM208 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm152 20c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM542.8 350c-2.2-18.3-12.9-34.6-28.9-43.8-28.1-16.2-63.9-6.6-80.1 21.5l-2.7 4.6c-24.5 42.5 7.9 117.9 24.4 150.8 5.1 10.1 15.5 16.1 26.8 15.5 36.7-2.2 118.2-11.7 142.8-54.2l2.7-4.6c16.2-28.1 6.6-63.9-21.5-80.1-16-9.2-35.4-10.4-52.4-3.1l-9.8 4.2-1.3-10.6z\"],\n \"fill\": [512, 512, [], \"f575\", \"M296 64c6.9 0 13.5 2.7 18.3 7.6L440.4 197.7c4.9 4.9 7.6 11.5 7.6 18.3s-2.7 13.5-7.6 18.3L386.7 288 65.3 288c1.3-3.9 3.4-7.4 6.3-10.3l96.4-96.4 33.4 33.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L213.3 136 277.7 71.6c4.9-4.9 11.5-7.6 18.3-7.6zM122.7 136L26.3 232.4C9.5 249.3 0 272.1 0 296s9.5 46.7 26.3 63.6L152.4 485.7C169.3 502.5 192.1 512 216 512s46.7-9.5 63.6-26.3L485.7 279.6C502.5 262.7 512 239.9 512 216s-9.5-46.7-26.3-63.6L359.6 26.3C342.7 9.5 319.9 0 296 0s-46.7 9.5-63.6 26.3L168 90.7 118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L122.7 136z\"],\n \"money-bill-1-wave\": [512, 512, [\"money-bill-wave-alt\"], \"f53b\", \"M0 109.5L0 419.6c0 19.4 11.8 37.3 30.3 43.3 94 30 158.8 8.4 223.3-13.1 62.4-20.8 124.4-41.5 212.1-15.3 22.2 6.6 46.2-8.8 46.2-32l0-310.1c0-19.4-11.8-37.3-30.3-43.3-94-30-158.8-8.4-223.3 13.1-62.4 20.8-124.4 41.5-212.1 15.3-22.2-6.6-46.3 8.8-46.3 32zM256 368c-53 0-96-50.1-96-112s43-112 96-112 96 50.1 96 112-43 112-96 112zM127.1 405.5c.7 4.4-2.8 8.1-7.2 8.1-15.7 0-32.1-1.8-50-6.1-3.5-.8-6-4-6-7.7L64 360c0-4.4 3.6-8.1 8-7.5 28.1 3.5 50.6 25.2 55.2 53zM448 354.6c0 5-4.6 8.8-9.5 8-15.4-2.5-30.2-3.9-44.4-4.3-4.9-.1-8.7-4.5-7.2-9.2 7.3-23.7 28-41.4 53.2-44.6 4.4-.5 8 3.1 8 7.5l0 42.6zm-8-195.1c-28.1-3.5-50.6-25.2-55.2-53-.7-4.4 2.8-8.1 7.2-8.1 15.7 0 32.1 1.8 50 6.1 3.5 .8 6 4 6 7.7l0 39.9c0 4.4-3.6 8.1-8 7.5zm-322.1-5.8c4.9 .1 8.7 4.5 7.2 9.2-7.3 23.7-28 41.4-53.2 44.6-4.4 .5-8-3.1-8-7.5l0-42.6c0-5 4.6-8.8 9.5-8 15.4 2.5 30.2 3.9 44.4 4.3zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"],\n \"landmark\": [512, 512, [127963], \"f66f\", \"M238.7 5.1c10.5-6.8 24.1-6.8 34.6 0l224 144c11.9 7.7 17.4 22.3 13.4 35.9s-16.5 23-30.7 23l-32 0 0 208 51.2 38.4c8.1 6 12.8 15.5 12.8 25.6 0 17.7-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32 0-10.1 4.7-19.6 12.8-25.6l51.2-38.4 0 0 0-208-32 0c-14.2 0-26.7-9.4-30.7-23s1.5-28.3 13.4-35.9l224-144zM336 208l0 208 64 0 0-208-64 0zM224 416l64 0 0-208-64 0 0 208zM112 208l0 208 64 0 0-208-64 0z\"],\n \"music\": [512, 512, [127925], \"f001\", \"M468 7c7.6 6.1 12 15.3 12 25l0 304c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6l0-116.7-224 49.8 0 206.3c0 44.2-43 80-96 80s-96-35.8-96-80 43-80 96-80c11.2 0 22 1.6 32 4.6L128 96c0-15 10.4-28 25.1-31.2l288-64c9.5-2.1 19.4 .2 27 6.3z\"],\n \"book-medical\": [448, 512, [], \"f7e6\", \"M96 512l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-66.7c18.6-6.6 32-24.4 32-45.3l0-288c0-26.5-21.5-48-48-48L96 0C43 0 0 43 0 96L0 416c0 53 43 96 96 96zM64 416c0-17.7 14.3-32 32-32l256 0 0 64-256 0c-17.7 0-32-14.3-32-32zM192 120c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"shuffle\": [512, 512, [128256, \"random\"], \"f074\", \"M403.8 34.4c12-5 25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64c-9.2 9.2-22.9 11.9-34.9 6.9S384 204.9 384 192l0-32-32 0c-10.1 0-19.6 4.7-25.6 12.8l-32.4 43.2-40-53.3 21.2-28.3C293.3 110.2 321.8 96 352 96l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6zM154 296l40 53.3-21.2 28.3C154.7 401.8 126.2 416 96 416l-64 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l64 0c10.1 0 19.6-4.7 25.6-12.8L154 296zM438.6 470.6c-9.2 9.2-22.9 11.9-34.9 6.9S384 460.9 384 448l0-32-32 0c-30.2 0-58.7-14.2-76.8-38.4L121.6 172.8c-6-8.1-15.5-12.8-25.6-12.8l-64 0c-17.7 0-32-14.3-32-32S14.3 96 32 96l64 0c30.2 0 58.7 14.2 76.8 38.4L326.4 339.2c6 8.1 15.5 12.8 25.6 12.8l32 0 0-32c0-12.9 7.8-24.6 19.8-29.6s25.7-2.2 34.9 6.9l64 64c6 6 9.4 14.1 9.4 22.6s-3.4 16.6-9.4 22.6l-64 64z\"],\n \"underline\": [384, 512, [], \"f0cd\", \"M0 32C0 14.3 14.3 0 32 0L96 0c17.7 0 32 14.3 32 32S113.7 64 96 64l0 160c0 53 43 96 96 96s96-43 96-96l0-160c-17.7 0-32-14.3-32-32S270.3 0 288 0l64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 160c0 88.4-71.6 160-160 160S32 312.4 32 224L32 64C14.3 64 0 49.7 0 32zM0 480c0-17.7 14.3-32 32-32l320 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32z\"],\n \"building-user\": [640, 512, [], \"e4da\", \"M64 64C64 28.7 92.7 0 128 0L384 0c35.3 0 64 28.7 64 64l0 121.3c-46.9 19-80 65-80 118.7 0 27.7 8.8 53.4 23.8 74.4-51.5 21-87.8 71.6-87.8 130.7 0 1 0 1.9 0 2.9l-176 0c-35.3 0-64-28.7-64-64L64 64zM208 400l0 64 53.4 0c7.2-29.4 21.3-56.1 40.4-78.3-6.1-19.5-24.3-33.7-45.8-33.7-26.5 0-48 21.5-48 48zM339 224.3c-1-.2-2-.3-3-.3l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l16.7 0c2.1-22.8 8.4-44.3 18.3-63.7zM176 96c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm112 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16zM176 224c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0zm240 80a80 80 0 1 1 160 0 80 80 0 1 1 -160 0zM352 512c0-53 43-96 96-96l96 0c53 0 96 43 96 96 0 17.7-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32z\"],\n \"robot\": [640, 512, [129302], \"f544\", \"M352 0c0-17.7-14.3-32-32-32S288-17.7 288 0l0 64-96 0c-53 0-96 43-96 96l0 224c0 53 43 96 96 96l256 0c53 0 96-43 96-96l0-224c0-53-43-96-96-96l-96 0 0-64zM160 368c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zm120 0c0-13.3 10.7-24 24-24l32 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-32 0c-13.3 0-24-10.7-24-24zM224 176a48 48 0 1 1 0 96 48 48 0 1 1 0-96zm144 48a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM64 224c0-17.7-14.3-32-32-32S0 206.3 0 224l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96zm544-32c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32z\"],\n \"plus\": [448, 512, [10133, 61543, \"add\"], \"2b\", \"M256 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 160-160 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0 0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160 160 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-160 0 0-160z\"],\n \"copy\": [448, 512, [], \"f0c5\", \"M192 0c-35.3 0-64 28.7-64 64l0 256c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-200.6c0-17.4-7.1-34.1-19.7-46.2L370.6 17.8C358.7 6.4 342.8 0 326.3 0L192 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-16-64 0 0 16-192 0 0-256 16 0 0-64-16 0z\"],\n \"chess-king\": [448, 512, [9818], \"f43f\", \"M224-32c17.7 0 32 14.3 32 32l0 32 32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0 0 64 153.8 0c21.1 0 38.2 17.1 38.2 38.2 0 6.4-1.6 12.7-4.7 18.3L352 384 408.2 454.3c5 6.3 7.8 14.1 7.8 22.2 0 19.6-15.9 35.5-35.5 35.5L67.5 512c-19.6 0-35.5-15.9-35.5-35.5 0-8.1 2.7-15.9 7.8-22.2L96 384 4.7 216.6C1.6 210.9 0 204.6 0 198.2 0 177.1 17.1 160 38.2 160l153.8 0 0-64-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-32c0-17.7 14.3-32 32-32z\"],\n \"house-flood-water\": [640, 512, [], \"e50e\", \"M496 208l4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L348 10.5C340.3 3.7 330.3 0 320 0s-20.3 3.7-28 10.5L121.4 159.8c-6 5.2-9.4 12.8-9.4 20.7 0 15.2 12.3 27.5 27.5 27.5l4.5 0 0 94.4c20.3-9.4 42.1-14.2 64-14.4 33.1-.2 66.3 10.2 94.4 31.4 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 16.9-.1 33.8 2.6 50 8l0-88zm-224-8c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM474.6 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 418.3 17.6 426.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 514.3 17.6 522.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"],\n \"bitcoin-sign\": [320, 512, [], \"e0b4\", \"M64 24C64 10.7 74.7 0 88 0s24 10.7 24 24l0 40 32 0 0-40c0-13.3 10.7-24 24-24s24 10.7 24 24l0 41.1c54.3 7.8 96 54.4 96 110.9 0 24.2-7.7 46.6-20.7 64.9 31.7 19.8 52.7 55 52.7 95.1 0 61.9-50.1 112-112 112l-16 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-32 0 0 40c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-40-22.3 0C18.7 448 0 429.3 0 406.3L0 101.6C0 80.8 16.8 64 37.6 64L64 64 64 24zm0 200l112 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-112 0 0 96zm112 64l-112 0 0 96 144 0c26.5 0 48-21.5 48-48s-21.5-48-48-48l-32 0z\"],\n \"box\": [448, 512, [128230], \"f466\", \"M369.4 128l-34.3-48-222.1 0-34.3 48 290.7 0zM0 148.5c0-13.3 4.2-26.3 11.9-37.2L60.9 42.8C72.9 26 92.3 16 112.9 16l222.1 0c20.7 0 40.1 10 52.1 26.8l48.9 68.5c7.8 10.9 11.9 23.9 11.9 37.2L448 416c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 148.5z\"],\n \"square-plus\": [448, 512, [61846, \"plus-square\"], \"f0fe\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM200 344l0-64-64 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l64 0 0-64c0-13.3 10.7-24 24-24s24 10.7 24 24l0 64 64 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-64 0 0 64c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\n \"arrows-left-right\": [576, 512, [\"arrows-h\"], \"f07e\", \"M470.6 374.6l96-96c12.5-12.5 12.5-32.8 0-45.3l-96-96c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l41.4 41.4-357.5 0 41.4-41.4c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-96 96c-6 6-9.4 14.1-9.4 22.6s3.4 16.6 9.4 22.6l96 96c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-41.4-41.4 357.5 0-41.4 41.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"],\n \"fan\": [512, 512, [], \"f863\", \"M160 144c0-79.5 64.5-144 144-144 8.8 0 16 7.2 16 16l0 152.2c15-5.3 31.2-8.2 48-8.2 79.5 0 144 64.5 144 144 0 8.8-7.2 16-16 16l-152.2 0c5.3 15 8.2 31.2 8.2 48 0 79.5-64.5 144-144 144-8.8 0-16-7.2-16-16l0-152.2c-15 5.3-31.2 8.2-48 8.2-79.5 0-144-64.5-144-144 0-8.8 7.2-16 16-16l152.2 0c-5.3-15-8.2-31.2-8.2-48zm96 144a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"crow\": [640, 512, [], \"f520\", \"M456.5 0c-48.6 0-88 39.4-88 88l0 36-355.2 266.4C-.8 401-3.7 421 6.9 435.2s30.6 17 44.8 6.4l76.8-57.6 131.3 0 46.6 113.1 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-39.1-94.9 40.9 0c1.1 0 2.2 0 3.2 0l46.6 113.2 1 2.2c5.7 10.7 18.8 15.5 30.3 10.8s17.3-17.3 13.9-29l-.8-2.3-42-102C485.3 354.1 544.5 280 544.5 192l0-72 80.5-20.1c8.6-2.1 13.8-10.8 11.6-19.4-7.1-28.5-32.7-48.5-62.1-48.5l-50.1 0C508.2 12.5 483.8 0 456.5 0zm0 64a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"file-circle-check\": [576, 512, [], \"e5a0\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"link-slash\": [576, 512, [\"chain-broken\", \"chain-slash\", \"unlink\"], \"f127\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-122-122c4.2-3.4 8.3-7.1 12.1-10.9l71.1-71.1c29.3-29.3 45.8-69.1 45.8-110.6 0-86.4-70-156.5-156.5-156.5-37.3 0-73.1 13.3-101.3 37.2 20.3 10.1 38.7 23.5 54.5 39.5 14.1-8.3 30.2-12.7 46.8-12.7 51.1 0 92.5 41.4 92.5 92.5 0 24.5-9.7 48-27.1 65.4l-71.1 71.1c-3.9 3.9-8.1 7.4-12.6 10.5l-47.5-47.5c16.5-.9 29.7-14.4 30.2-31.1 0-1.3 0-2.6 0-3.9 0-86.3-69.9-156.9-156.5-156.9-19.2 0-37.9 3.5-55.5 10.2L41-24.9zM225.9 160c.6 0 1.1 0 1.7 0 15.1 0 29.5 3.7 42.1 10.2 1.8 1.2 3.6 2.3 5.5 3.1 26.8 16.3 44.8 45.9 44.8 79.6 0 .4 0 .8 0 1.2L225.9 160zM346.2 416L192 261.8c1.2 84.6 69.6 152.9 154.1 154.1zM139.7 209.5l-45.3-45.3-48.6 48.6c-29.3 29.3-45.8 69.1-45.8 110.6 0 86.4 70 156.5 156.5 156.5 37.2 0 73.1-13.3 101.3-37.2-20.3-10.1-38.8-23.5-54.6-39.5-14 8.2-30.1 12.6-46.7 12.6-51.1 0-92.5-41.4-92.5-92.5 0-24.5 9.7-48 27.1-65.4l48.6-48.6z\"],\n \"arrow-rotate-right\": [512, 512, [8635, \"arrow-right-rotate\", \"arrow-rotate-forward\", \"redo\"], \"f01e\", \"M436.7 74.7L448 85.4 448 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 128c0 17.7-14.3 32-32 32l-128 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l47.9 0-7.6-7.2c-.2-.2-.4-.4-.6-.6-75-75-196.5-75-271.5 0s-75 196.5 0 271.5 196.5 75 271.5 0c8.2-8.2 15.5-16.9 21.9-26.1 10.1-14.5 30.1-18 44.6-7.9s18 30.1 7.9 44.6c-8.5 12.2-18.2 23.8-29.1 34.7-100 100-262.1 100-362 0S-25 175 75 75c99.9-99.9 261.7-100 361.7-.3z\"],\n \"pen-clip\": [512, 512, [\"pen-alt\"], \"f305\", \"M404 0c19.2 0 37.6 7.6 51.1 21.2l35.7 35.7C504.4 70.4 512 88.8 512 108s-7.6 37.6-21.2 51.1L445.9 204 308 66.1 352.9 21.2C366.4 7.6 384.8 0 404 0zM274.1 100l0 0 137.9 137.9-215.1 215.1c-10.7 10.7-24.1 18.5-38.7 22.6L30.4 511.1c-8.3 2.3-17.3 0-23.4-6.2s-8.5-15.1-6.2-23.4L36.4 353.8c4.1-14.6 11.8-27.9 22.6-38.7L240.1 133.9 223 116.9c-9.4-9.4-24.6-9.4-33.9 0L89 217c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L155.1 82.9c28.1-28.1 73.7-28.1 101.8 0L274.1 100z\"],\n \"door-closed\": [448, 512, [128682], \"f52a\", \"M32 64C32 28.7 60.7 0 96 0L352 0c35.3 0 64 28.7 64 64l0 384c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32L32 64zM320 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"arrow-down-wide-short\": [576, 512, [\"sort-amount-asc\", \"sort-amount-down\"], \"f160\", \"M246.6 374.6l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zM320 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l96 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l160 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-160 0zm0-128c-17.7 0-32-14.3-32-32s14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L320 96z\"],\n \"caret-down\": [320, 512, [], \"f0d7\", \"M140.3 376.8c12.6 10.2 31.1 9.5 42.8-2.2l128-128c9.2-9.2 11.9-22.9 6.9-34.9S301.4 192 288.5 192l-256 0c-12.9 0-24.6 7.8-29.6 19.8S.7 237.5 9.9 246.6l128 128 2.4 2.2z\"],\n \"k\": [320, 512, [107], \"4b\", \"M311 86.3c12.3-12.7 12-32.9-.7-45.2s-32.9-12-45.2 .7C143.4 167.2 76.4 236.3 64 249L64 64c0-17.7-14.3-32-32-32S0 46.3 0 64L0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-107 64.7-66.7 133 192c10.1 14.5 30 18.1 44.5 8.1s18.1-30 8.1-44.5L174.1 227.4 311 86.3z\"],\n \"check-to-slot\": [576, 512, [\"vote-yea\"], \"f772\", \"M552 288c13.3 0 24 10.7 24 24l0 104c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 312c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104c0 8.8 7.2 16 16 16l448 0c8.8 0 16-7.2 16-16l0-104c0-13.3 10.7-24 24-24zM416 32c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64l-256 0c-35.3 0-64-28.7-64-64L96 96c0-35.3 28.7-64 64-64l256 0zm-37.1 84.6c-10.7-7.8-25.7-5.4-33.5 5.3l-85.6 117.7-26.5-27.4c-9.2-9.5-24.4-9.8-33.9-.6-9.5 9.2-9.8 24.4-.6 33.9l46.4 48c4.9 5.1 11.8 7.8 18.9 7.3s13.6-4.1 17.8-9.8L384.2 150.1c7.8-10.7 5.4-25.7-5.3-33.5z\"],\n \"fish-fins\": [576, 512, [], \"e4f2\", \"M275.2 38.4c-10.6-8-25-8.5-36.3-1.5S222 57.3 224.6 70.3l9.7 48.6c-19.4 9-36.9 19.9-52.4 31.5-15.3 11.5-29 23.9-40.7 36.3L48.1 132.4c-12.5-7.3-28.4-5.3-38.7 4.9s-12.4 26-5.3 38.6L50 256 4.2 336.1c-7.2 12.6-5 28.4 5.3 38.6s26.1 12.2 38.7 4.9l93.1-54.3c11.8 12.3 25.4 24.8 40.7 36.3 15.5 11.6 33 22.5 52.4 31.5l-9.7 48.6c-2.6 13 3.1 26.3 14.3 33.3s25.6 6.5 36.3-1.5l77.6-58.2c54.9-4 101.5-27 137.2-53.8 39.2-29.4 67.2-64.7 81.6-89.5 5.8-9.9 5.8-22.2 0-32.1-14.4-24.8-42.5-60.1-81.6-89.5-35.8-26.8-82.3-49.8-137.2-53.8L275.2 38.4zM384 256a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"compress\": [448, 512, [], \"f066\", \"M160 64c0-17.7-14.3-32-32-32S96 46.3 96 64l0 64-64 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-96zM32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l64 0 0 64c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-96 0zM352 64c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0-64zM320 320c-17.7 0-32 14.3-32 32l0 96c0 17.7 14.3 32 32 32s32-14.3 32-32l0-64 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0z\"],\n \"arrow-up-a-z\": [512, 512, [\"sort-alpha-up\"], \"f15e\", \"M412.6 49.7C407.2 38.8 396.1 32 384 32s-23.2 6.8-28.6 17.7c-50.7 101.3-77.3 154.7-80 160-7.9 15.8-1.5 35 14.3 42.9s35 1.5 42.9-14.3l7.2-14.3 88.4 0 7.2 14.3c7.9 15.8 27.1 22.2 42.9 14.3s22.2-27.1 14.3-42.9c-2.7-5.3-29.3-58.7-80-160zM384 135.6l20.2 40.4-40.4 0 20.2-40.4zM288 320c0 17.7 14.3 32 32 32l50.7 0-73.4 73.4c-9.2 9.2-11.9 22.9-6.9 34.9S307.1 480 320 480l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-50.7 0 73.4-73.4c9.2-9.2 11.9-22.9 6.9-34.9S460.9 288 448 288l-128 0c-17.7 0-32 14.3-32 32zM150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-80 80c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 25.4 25.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-80-80z\"],\n \"user-graduate\": [448, 512, [], \"f501\", \"M241.3-13c-11.4-2.3-23.1-2.3-34.5 0L19.3 24.5C8.1 26.7 0 36.6 0 48 0 58.3 6.5 67.3 16 70.6L16 144 .3 222.6c-.2 .9-.3 1.9-.3 2.9 0 8 6.5 14.6 14.6 14.6l34.9 0c8 0 14.6-6.5 14.6-14.6 0-1-.1-1.9-.3-2.9L48 144 48 77.3 96 86.9 96 144c0 70.7 57.3 128 128 128s128-57.3 128-128l0-57.1 76.7-15.3C439.9 69.3 448 59.4 448 48s-8.1-21.3-19.3-23.5L241.3-13zM224 224c-44.2 0-80-35.8-80-80l160 0c0 44.2-35.8 80-80 80zM120.1 320.1C58.7 348.3 16 410.3 16 482.3 16 498.7 29.3 512 45.7 512l154.3 0 0-146-57.4-43c-6.5-4.9-15.2-6.2-22.6-2.8zM248 512l154.3 0c16.4 0 29.7-13.3 29.7-29.7 0-72-42.7-134-104.1-162.1-7.4-3.4-16.1-2.1-22.6 2.8l-57.4 43 0 146z\"],\n \"file-code\": [384, 512, [], \"f1c9\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM154.2 295.6c8.6-10.1 7.5-25.2-2.6-33.8s-25.2-7.5-33.8 2.6l-48 56c-7.7 9-7.7 22.2 0 31.2l48 56c8.6 10.1 23.8 11.2 33.8 2.6s11.2-23.8 2.6-33.8l-34.6-40.4 34.6-40.4zm112-31.2c-8.6-10.1-23.8-11.2-33.8-2.6s-11.2 23.8-2.6 33.8l34.6 40.4-34.6 40.4c-8.6 10.1-7.5 25.2 2.6 33.8s25.2 7.5 33.8-2.6l48-56c7.7-9 7.7-22.2 0-31.2l-48-56z\"],\n \"soap\": [512, 512, [129532], \"e06e\", \"M208-32a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM320 96a64 64 0 1 1 0 128 64 64 0 1 1 0-128zM352 0a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zM96 160l112 0c0 23.8 7.4 45.9 20.1 64L160 224c-53 0-96 43-96 96s43 96 96 96l192 0c53 0 96-43 96-96 0-35.1-18.9-65.9-47-82.6 19-19.8 30.7-46.6 31-76.1 45.4 7.6 80 47.1 80 94.7l0 128c0 53-43 96-96 96L96 480c-53 0-96-43-96-96L0 256c0-53 43-96 96-96zm64 112l192 0c26.5 0 48 21.5 48 48s-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48s21.5-48 48-48z\"],\n \"recycle\": [512, 512, [9842, 9850, 9851], \"f1b8\", \"M152.3 60C198.5-20 314-20 360.2 60l37.3 64.6 27.7-16c8.4-4.9 18.9-4.2 26.6 1.7s11.1 15.9 8.6 25.3L436.9 223c-3.4 12.8-16.6 20.4-29.4 17l-87.4-23.4c-9.4-2.5-16.3-10.4-17.6-20s3.4-19.1 11.8-23.9l27.7-16-37.3-64.6c-21.6-37.3-75.4-37.3-97 0l-5.3 9.1c-8.8 15.3-28.4 20.5-43.7 11.7S138.2 84.5 147 69.1l5.3-9.1zM449.7 279.1c15.3-8.8 34.9-3.6 43.7 11.7l5.3 9.1c46.2 80-11.5 180-103.9 180l-74.6 0 0 32c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-64-64c-9.4-9.4-9.4-24.6 0-33.9l64-64c6.9-6.9 17.2-8.9 26.2-5.2s14.8 12.5 14.8 22.2l0 32 74.6 0c43.1 0 70.1-46.7 48.5-84l-5.3-9.1c-8.8-15.3-3.6-34.9 11.7-43.7zM51 235.4l-27.7-16c-8.4-4.9-13.1-14.3-11.8-23.9s8.2-17.5 17.6-20L116.5 152c12.8-3.4 26 4.2 29.4 17l23.4 87.4c2.5 9.4-.9 19.3-8.6 25.3s-18.2 6.6-26.6 1.7l-27.7-16-37.3 64.6c-21.6 37.3 5.4 84 48.5 84l10.6 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-10.6 0C25.3 480-32.4 380 13.8 300L51 235.4z\"],\n \"face-grin-wink\": [512, 512, [\"grin-wink\"], \"f58c\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM328 196c-11 0-20 9-20 20s-9 20-20 20-20-9-20-20c0-33.1 26.9-60 60-60l16 0c33.1 0 60 26.9 60 60 0 11-9 20-20 20s-20-9-20-20-9-20-20-20l-16 0zM176 176a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"water-ladder\": [640, 512, [\"ladder-water\", \"swimming-pool\"], \"f5c5\", \"M374.5 405.7c38.4-29 90.5-29 129 0 16.9 12.7 32.9 21.5 47.8 24.6 13.7 2.8 27.4 .9 42.3-10.3 10.6-8 25.6-5.9 33.6 4.7s5.8 25.7-4.8 33.6c-26.4 19.9-54.2 24.4-80.7 19.1-25.3-5.1-48.1-18.9-67.2-33.3-21.3-16.1-49.9-16.1-71.2 0-24.2 18.3-52.3 35.9-83.4 35.9s-59.1-17.7-83.3-35.9c-21.3-16.1-49.9-16.1-71.2 0-23.8 17.9-54.1 35.5-88.1 35.3-20.4-.1-40.7-6.7-59.8-21.1-10.6-8-12.7-23-4.7-33.6s23-12.7 33.6-4.7c11.3 8.5 21.6 11.4 31.2 11.5 17.6 .1 37.3-9.4 58.9-25.7 38.4-29 90.6-29 129 0 24 18.1 40.7 26.3 54.5 26.3s30.5-8.2 54.5-26.3zM511.8 32c48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.8 14.2-31.8 31.8l0 211.8c-23.1-5.1-44.9-4.4-64-.4l0-51.2-192 0 0 48.7c-5.3-.5-10.7-.8-16-.7-16.2 .1-32.4 2.7-48 8l0-216.2c0-52.9 42.9-95.8 95.7-95.8 48.3 0 89 36 95 83.9l1 8.2c2.2 17.5-10.2 33.5-27.8 35.7s-33.5-10.2-35.7-27.8l-1-8.2c-2-15.9-15.5-27.8-31.5-27.8-17.5 0-31.7 14.2-31.7 31.8l0 96.2 192 0 0-96.2C416 74.9 458.9 32 511.8 32z\"],\n \"tower-cell\": [576, 512, [], \"e585\", \"M59.6 9.8C47.3 4.8 33.3 10.7 28.4 23 15.2 55.5 8 90.9 8 128s7.2 72.5 20.4 105c5 12.3 19 18.2 31.3 13.2s18.2-19 13.2-31.3C62 188.2 56 158.8 56 128s6-60.2 16.9-87c5-12.3-1-26.3-13.2-31.3zm456.8 0c-12.3 5-18.2 19-13.2 31.3 10.9 26.8 16.9 56.2 16.9 87s-6 60.2-16.9 87c-5 12.3 1 26.3 13.2 31.3s26.3-1 31.3-13.2c13.1-32.5 20.4-67.9 20.4-105s-7.2-72.5-20.4-105c-5-12.3-19-18.2-31.3-13.2zM340.1 165.2c7.5-10.5 11.9-23.3 11.9-37.2 0-35.3-28.7-64-64-64s-64 28.7-64 64c0 13.9 4.4 26.7 11.9 37.2L98.9 466.8c-7.3 16.1-.2 35.1 15.9 42.4s35.1 .2 42.4-15.9l20.6-45.2 220.6 0 20.6 45.2c7.3 16.1 26.3 23.2 42.4 15.9s23.2-26.3 15.9-42.4L340.1 165.2zM376.5 400l-177 0 21.8-48 133.3 0 21.8 48zM288 205.3l44.8 98.7-89.7 0 44.8-98.7zM163.3 73.6c5.3-12.1-.2-26.3-12.4-31.6s-26.3 .2-31.6 12.4C109.5 77 104 101.9 104 128s5.5 51 15.3 73.6c5.3 12.1 19.5 17.7 31.6 12.4s17.7-19.5 12.4-31.6C156 165.8 152 147.4 152 128s4-37.8 11.3-54.4zM456.7 54.4c-5.3-12.1-19.5-17.7-31.6-12.4s-17.7 19.5-12.4 31.6C420 90.2 424 108.6 424 128s-4 37.8-11.3 54.4c-5.3 12.1 .2 26.3 12.4 31.6s26.3-.2 31.6-12.4C466.5 179 472 154.1 472 128s-5.5-51-15.3-73.6z\"],\n \"colon-sign\": [384, 512, [], \"e140\", \"M213.8 8.7c12.9 3.2 20.7 16.2 17.5 29.1l-4.6 18.5c15.4 .8 30.4 3.4 44.7 7.5l9.4-37.6C283.9 13.3 297 5.5 309.8 8.7S330.5 25 327.3 37.8L316 82.8c13.5 7.8 26 17.1 37.2 27.8 12.9 12.1 13.4 32.4 1.3 45.2s-32.4 13.4-45.2 1.3c-3.1-2.9-6.4-5.8-9.8-8.4L239.2 390c26.9-4.6 51.1-17.1 70.1-35.1 12.9-12.1 33.1-11.5 45.2 1.3s11.5 33.1-1.3 45.2c-34.3 32.3-80 52.8-130.5 54.4l-7.5 29.9c-3.2 12.9-16.2 20.7-29.1 17.5s-20.7-16.2-17.5-29.1l5.6-22.5c-15-3.2-29.4-8-42.9-14.4l-12.1 48.5c-3.2 12.9-16.2 20.7-29.1 17.5S69.5 487 72.7 474.2l16-63.9C44.3 373.6 16 318.1 16 256 16 159.2 84.8 78.4 176.3 60l8.4-33.8C187.9 13.3 201 5.5 213.8 8.7zM158 132.9c-46.1 21.8-78 68.7-78 123.1 0 30.5 10 58.6 26.9 81.3L158 132.9zM147.4 373.4c13 7.6 27.3 13.1 42.5 16.1l65.9-263.6c-12.6-3.8-25.9-5.9-39.8-5.9-1.8 0-3.5 0-5.3 .1L147.4 373.4z\"],\n \"laptop-file\": [576, 512, [], \"e51d\", \"M64 64C64 28.7 92.7 0 128 0L416 0c35.3 0 64 28.7 64 64l0 48-64 0 0-48-288 0 0 192 112 0 0 96-163.2 0C34.4 352 0 317.6 0 275.2 0 264.6 8.6 256 19.2 256L64 256 64 64zM529.9 257.9c9 9 14.1 21.2 14.1 33.9L544 464c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-256c0-26.5 21.5-48 48-48l76.1 0c12.7 0 24.9 5.1 33.9 14.1 20 20 47.9 47.9 83.9 83.9zM416 272c0 8.8 7.2 16 16 16l60.1 0-76.1-76.1 0 60.1z\"],\n \"bahai\": [576, 512, [\"haykal\"], \"f666\", \"M288.4-8c13.2 0 25 8.1 29.8 20.4l31.9 82 77.2-42.3c11.6-6.3 25.8-4.9 35.9 3.5s14 22.3 9.7 34.8l-28.2 83.3 86.3 17.2c12.9 2.6 23 12.8 25.3 25.8s-3.6 26.1-14.9 32.9l-75.2 45.7 55 68.6c8.3 10.3 9.3 24.6 2.7 36s-19.5 17.6-32.6 15.6l-87-13.3-2 88c-.3 13.2-8.6 24.8-21 29.4s-26.3 1-35-9l-58-66.1-58 66.1c-8.7 9.9-22.6 13.5-35 9s-20.8-16.2-21-29.4l-2-88-87 13.3c-13 2-26-4.2-32.6-15.6s-5.5-25.7 2.7-36l55-68.6-75.2-45.7c-11.3-6.8-17.2-19.9-14.9-32.9s12.3-23.2 25.3-25.8l86.3-17.2-28.2-83.3c-4.2-12.5-.4-26.3 9.7-34.8s24.4-9.9 35.9-3.5l77.1 42.3 31.9-82C263.3 .1 275.2-8 288.4-8zm0 120.2L273 151.6c-3.3 8.6-10.2 15.3-18.9 18.5s-18.2 2.4-26.3-2l-37-20.3 13.6 40c3 8.7 2 18.3-2.6 26.3s-12.4 13.6-21.5 15.4l-41.4 8.3 36.1 21.9c7.9 4.8 13.3 12.7 14.9 21.8s-.8 18.4-6.5 25.6l-26.4 33 41.8-6.4c9.1-1.4 18.4 1.2 25.4 7.1s11.2 14.6 11.4 23.8l.9 42.2 27.9-31.8c6.1-6.9 14.8-10.9 24.1-10.9s18 4 24.1 10.9l27.9 31.8 .9-42.2c.2-9.2 4.4-17.9 11.4-23.8s16.3-8.5 25.4-7.1l41.8 6.4-26.4-33c-5.8-7.2-8.2-16.5-6.6-25.6s7-17 14.9-21.8l36.1-21.9-41.4-8.3c-9-1.8-16.9-7.4-21.5-15.4s-5.5-17.6-2.6-26.3l13.6-40-37 20.3c-8.1 4.4-17.7 5.2-26.3 2s-15.5-9.9-18.9-18.5l-15.3-39.4z\"],\n \"money-bill-1\": [512, 512, [\"money-bill-alt\"], \"f3d1\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 80a112 112 0 1 1 0 224 112 112 0 1 1 0-224zM64 184l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5-4.4 .5-8-3.1-8-7.5zm0 144c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zM440 191.5c-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48c0 4.4-3.6 8.1-8 7.5zM448 328l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5 4.4-.5 8 3.1 8 7.5zM240 188c-11 0-20 9-20 20 0 9.7 6.9 17.7 16 19.6l0 48.4-4 0c-11 0-20 9-20 20s9 20 20 20l48 0c11 0 20-9 20-20s-9-20-20-20l-4 0 0-68c0-11-9-20-20-20l-16 0z\"],\n \"cloud-bolt\": [512, 512, [127785, \"thunderstorm\"], \"f76c\", \"M0 224c0 53 43 96 96 96l38.6 0 124.1-111c12.2-10.9 28-17 44.4-17 44.6 0 76.5 43 63.7 85.7L354.1 320 416 320c53 0 96-43 96-96s-43-96-96-96c-.5 0-1.1 0-1.6 0 1.1-5.2 1.6-10.5 1.6-16 0-44.2-35.8-80-80-80-24.3 0-46.1 10.9-60.8 28-18.7-35.7-56.1-60-99.2-60-61.9 0-112 50.1-112 112 0 7.1 .7 14.1 1.9 20.8-38.3 12.6-65.9 48.7-65.9 91.2zM160.6 400l61.8 0-31.2 104.1c-3.6 11.9 5.3 23.9 17.8 23.9 4.6 0 9-1.7 12.4-4.7L362.5 396.9c3.5-3.1 5.5-7.6 5.5-12.4 0-9.2-7.4-16.6-16.6-16.6l-61.8 0 31.2-104.1c3.6-11.9-5.3-23.9-17.8-23.9-4.6 0-9 1.7-12.4 4.7L149.5 371.1c-3.5 3.1-5.5 7.6-5.5 12.4 0 9.2 7.4 16.6 16.6 16.6z\"],\n \"ethernet\": [512, 512, [], \"f796\", \"M0 224L0 416c0 17.7 14.3 32 32 32l32 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 64 0 0-104c0-13.3 10.7-24 24-24s24 10.7 24 24l0 104 32 0c17.7 0 32-14.3 32-32l0-192c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32l-32 0 0-32c0-17.7-14.3-32-32-32L160 64c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32l0 32-32 0c-17.7 0-32 14.3-32 32z\"],\n \"hryvnia-sign\": [384, 512, [8372, \"hryvnia\"], \"f6f2\", \"M336 149.4C336 77 268.5 23.5 198 40.1L93.2 64.9C76 68.9 65.4 86.2 69.4 103.4s21.3 27.9 38.5 23.8l104.8-24.7c30.3-7.1 59.3 15.8 59.3 46.9 0 17.6-9.6 33.8-25 42.3l-.7 .4-222.3 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l336 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32.4 0c5.5-13.3 8.4-27.8 8.4-42.6zM360 272L24 272c-13.3 0-24 10.7-24 24s10.7 24 24 24l33.3 0c-6.1 13.4-9.3 28.1-9.3 43.3 0 64.1 56.9 113.4 120.4 104.2l137.9-19.9c17.5-2.5 29.6-18.7 27.1-36.2s-18.8-29.6-36.2-27.1L159.2 404.2c-24.9 3.6-47.2-15.7-47.2-40.9 0-15.1 8.2-28.9 21.4-36.2l13-7.1 213.6 0c13.3 0 24-10.7 24-24s-10.7-24-24-24z\"],\n \"eye-slash\": [576, 512, [], \"f070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM325.3 395.1c-11.9 3.2-24.4 4.9-37.3 4.9-79.5 0-144-64.5-144-144 0-12.9 1.7-25.4 4.9-37.3L69.4 139.2c-32.6 36.8-55 75.8-66.9 104.5-3.3 7.9-3.3 16.7 0 24.6 14.9 35.7 46.2 87.7 93 131.1 47.1 43.7 111.8 80.6 192.6 80.6 37.3 0 71.2-7.9 101.5-20.6l-64.2-64.2z\"],\n \"cart-flatbed-suitcase\": [576, 512, [\"luggage-cart\"], \"f59d\", \"M0 32C0 14.3 14.3 0 32 0L48 0c44.2 0 80 35.8 80 80l0 288c0 8.8 7.2 16 16 16l400 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-34.7 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-5.6 1-11 2.7-16l-197.5 0c1.8 5 2.7 10.4 2.7 16 0 26.5-21.5 48-48 48s-48-21.5-48-48c0-6 1.1-11.7 3.1-17-38.1-6.2-67.1-39.2-67.1-79L64 80c0-8.8-7.2-16-16-16L32 64C14.3 64 0 49.7 0 32zM176 144c0-26.5 21.5-48 48-48l32 0 0-24c0-30.9 25.1-56 56-56l64 0c30.9 0 56 25.1 56 56l0 24 32 0c26.5 0 48 21.5 48 48l0 144c0 26.5-21.5 48-48 48l-240 0c-26.5 0-48-21.5-48-48l0-144zM384 96l0-24c0-4.4-3.6-8-8-8l-64 0c-4.4 0-8 3.6-8 8l0 24 80 0z\"],\n \"radiation\": [576, 512, [], \"f7b9\", \"M446.2 34.5c-14.2-10.1-33.5-4.6-42.2 10.5L331.6 170.3c31.3 15.8 52.8 48.3 52.8 85.7l144 0c17.7 0 32.2-14.4 30.1-31.9-9.1-78.1-51.4-146.1-112.3-189.6zM172.7 44.9C164 29.8 144.7 24.3 130.5 34.5 69.6 77.9 27.3 145.9 18.2 224.1 16.1 241.6 30.7 256 48.3 256l144 0c0-37.5 21.5-69.9 52.8-85.7L172.7 44.9zm-9.4 416.8c-8.7 15.1-3.8 34.5 12 41.8 34.4 15.7 72.7 24.5 113 24.5s78.6-8.8 113-24.5c15.8-7.2 20.7-26.7 12-41.8L341 336.3c-15.1 9.9-33.2 15.7-52.6 15.7s-37.5-5.8-52.6-15.7L163.3 461.7zM288.3 304a48 48 0 1 0 -.7-96 48 48 0 1 0 .7 96z\"],\n \"file-word\": [384, 512, [], \"f1c2\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM135.4 274.8c-2.9-12.9-15.7-21.1-28.6-18.2s-21.1 15.7-18.2 28.6l32 144c2.3 10.5 11.4 18.2 22.2 18.8s20.6-6.1 24-16.4l25.2-75.7 25.2 75.7c3.4 10.2 13.2 16.9 24 16.4s19.9-8.2 22.2-18.8l32-144c2.9-12.9-5.3-25.8-18.2-28.6s-25.8 5.3-28.6 18.2l-13.2 59.4-20.6-61.8c-3.3-9.8-12.4-16.4-22.8-16.4s-19.5 6.6-22.8 16.4l-20.6 61.8-13.2-59.4z\"],\n \"bed-pulse\": [640, 512, [\"procedures\"], \"f487\", \"M531.2-22.4L572 32 616 32c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0c-7.6 0-14.7-3.6-19.2-9.6l-24.1-32.1-47 99.9c-3.7 7.8-11.3 13.1-19.9 13.7s-16.9-3.4-21.7-10.6L387.2 80 344 80c-13.3 0-24-10.7-24-24s10.7-24 24-24l56 0c8 0 15.5 4 20 10.7l24.4 36.6 45.9-97.5c3.6-7.6 10.9-12.8 19.3-13.7s16.6 2.7 21.6 9.5zM320 160c0-17.7 14.3-32 32-32l9.5 0 26.6 39.9c14.4 21.6 39.3 33.8 65.2 31.9s48.8-17.6 59.8-41.1L527 129.2c45.9 7.2 81 46.9 81 94.8l0 224c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64-448 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32L32 64c0-17.7 14.3-32 32-32S96 46.3 96 64l0 224 224 0 0-128zM144 192a64 64 0 1 1 128 0 64 64 0 1 1 -128 0z\"],\n \"tents\": [576, 512, [], \"e582\", \"M539.9 352l-95.6 0-8.4-66.1c-2.9-23.2-15.9-43.9-35.4-56.8L252.2 131.5c-18-11.9-39.7-15.7-60.1-11.5 2.5-4.3 5.9-7.9 10.1-10.7L350.6 11.6c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36zM4.8 476l23.3-184c1.2-9.3 6.3-17.6 14.2-22.7l148.4-97.7c10.7-7 24.5-7 35.2 0l148.4 97.7c7.8 5.1 13 13.4 14.2 22.7l23.3 184c2.4 19.1-12.5 36-31.7 36l-49.7 0c-11.2 0-21.5-5.8-27.3-15.4l-77-126.7c-1.7-2.8-4.8-4.6-8.1-4.6-5.3 0-9.5 4.3-9.5 9.5l0 105.2c0 17.7-14.3 32-32 32L36.5 512c-19.3 0-34.2-16.9-31.7-36z\"],\n \"mug-hot\": [576, 512, [9749], \"f7b6\", \"M152-16c-13.3 0-24 10.7-24 24 0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C183.5 31.7 176 24.1 176 8 176-5.3 165.3-16 152-16zM96 192c-17.7 0-32 14.3-32 32l0 192c0 53 43 96 96 96l192 0c41.8 0 77.4-26.7 90.5-64l5.5 0c70.7 0 128-57.3 128-128S518.7 192 448 192L96 192zM448 384l0-128c35.3 0 64 28.7 64 64s-28.7 64-64 64zM288 8c0-13.3-10.7-24-24-24S240-5.3 240 8c0 38.9 23.4 59.4 39.1 73.1l1.1 1c16.3 14.3 23.8 21.8 23.8 37.9 0 13.3 10.7 24 24 24s24-10.7 24-24c0-38.9-23.4-59.4-39.1-73.1l-1.1-1C295.5 31.7 288 24.1 288 8z\"],\n \"bolt\": [448, 512, [9889, \"zap\"], \"f0e7\", \"M338.8-9.9c11.9 8.6 16.3 24.2 10.9 37.8L271.3 224 416 224c13.5 0 25.5 8.4 30.1 21.1s.7 26.9-9.6 35.5l-288 240c-11.3 9.4-27.4 9.9-39.3 1.3s-16.3-24.2-10.9-37.8L176.7 288 32 288c-13.5 0-25.5-8.4-30.1-21.1s-.7-26.9 9.6-35.5l288-240c11.3-9.4 27.4-9.9 39.3-1.3z\"],\n \"jar\": [320, 512, [], \"e516\", \"M32-8c0-13.3 10.7-24 24-24l208 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L56 16C42.7 16 32 5.3 32-8zM0 128C0 92.7 28.7 64 64 64l192 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 128zm96 64c-17.7 0-32 14.3-32 32l0 128c0 17.7 14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32L96 192z\"],\n \"truck-plane\": [640, 512, [], \"e58f\", \"M144 48c0-26.5 21.5-48 48-48s48 21.5 48 48l0 320c0 32.5 12.1 62.1 32 84.7l0 27.3c0 7.1 .9 14.1 2.7 20.7L192 480 83.9 507C73.8 509.6 64 501.9 64 491.5l0-19.8c0-4.9 2.2-9.5 6-12.5l74-59.2 0-57.6-122.1 48.8C11.4 395.4 0 387.7 0 376.4l0-44c0-8 3-15.6 8.3-21.5L144 161.6 144 48zm224 80l192 0c44.2 0 80 35.8 80 80l0 160c0 26.2-12.6 49.4-32 64l0 48c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-160 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-48c-19.4-14.6-32-37.8-32-64l0-160c0-44.2 35.8-80 80-80zm0 176l192 0 0-32c0-17.7-14.3-32-32-32l-128 0c-17.7 0-32 14.3-32 32l0 32zm0 88a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm216-24a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"hand-holding-heart\": [576, 512, [], \"f4be\", \"M279.6 31C265.5 11.5 242.9 0 218.9 0 177.5 0 144 33.5 144 74.9l0 2.4c0 64.4 82 133.4 122.2 163.3 13 9.7 30.5 9.7 43.5 0 40.2-30 122.2-98.9 122.2-163.3l0-2.4c0-41.4-33.5-74.9-74.9-74.9-24 0-46.6 11.5-60.7 31L288 42.7 279.6 31zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"],\n \"arrow-rotate-left\": [512, 512, [8634, \"arrow-left-rotate\", \"arrow-rotate-back\", \"arrow-rotate-backward\", \"undo\"], \"f0e2\", \"M256 64c-56.8 0-107.9 24.7-143.1 64l47.1 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 192c-17.7 0-32-14.3-32-32L0 32C0 14.3 14.3 0 32 0S64 14.3 64 32l0 54.7C110.9 33.6 179.5 0 256 0 397.4 0 512 114.6 512 256S397.4 512 256 512c-87 0-163.9-43.4-210.1-109.7-10.1-14.5-6.6-34.4 7.9-44.6s34.4-6.6 44.6 7.9c34.8 49.8 92.4 82.3 157.6 82.3 106 0 192-86 192-192S362 64 256 64z\"],\n \"face-angry\": [512, 512, [128544, \"angry\"], \"f556\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM256 368c24.1 0 45.4 11.8 58.5 30 7.7 10.8 22.7 13.2 33.5 5.5s13.2-22.7 5.5-33.5c-21.7-30.2-57.3-50-97.5-50s-75.7 19.8-97.5 50c-7.7 10.8-5.3 25.8 5.5 33.5s25.8 5.3 33.5-5.5c13.1-18.2 34.4-30 58.5-30zm-80-96c17.7 0 32-14.3 32-32l0-.3 9.7 3.2c10.5 3.5 21.8-2.2 25.3-12.6s-2.2-21.8-12.6-25.3l-96-32c-10.5-3.5-21.8 2.2-25.3 12.6s2.2 21.8 12.6 25.3l28.9 9.6c-4.1 5.4-6.6 12.1-6.6 19.4 0 17.7 14.3 32 32 32zm192-32c0-7.3-2.4-14-6.6-19.4l28.9-9.6c10.5-3.5 16.1-14.8 12.6-25.3s-14.8-16.1-25.3-12.6l-96 32c-10.5 3.5-16.1 14.8-12.6 25.3s14.8 16.1 25.3 12.6l9.7-3.2 0 .3c0 17.7 14.3 32 32 32s32-14.3 32-32z\"],\n \"burst\": [512, 512, [], \"e4dc\", \"M37.6 4.2C28-2.3 15.2-1.1 7 7S-2.3 28 4.2 37.6l112 163.3-99.6 32.3C6.7 236.4 0 245.6 0 256s6.7 19.6 16.6 22.8l103.1 33.4-52.9 100.6c-4.9 9.3-3.2 20.7 4.3 28.1s18.8 9.2 28.1 4.3l100.6-52.9 33.4 103.1c3.2 9.9 12.4 16.6 22.8 16.6s19.6-6.7 22.8-16.6l33.4-103.1 100.6 52.9c9.3 4.9 20.7 3.2 28.1-4.3s9.2-18.8 4.3-28.1l-52.9-100.6 103.1-33.4c9.9-3.2 16.6-12.4 16.6-22.8s-6.7-19.6-16.6-22.8l-106.5-34.5 25.7-70.4c3.2-8.8 1-18.6-5.6-25.2s-16.4-8.8-25.2-5.6l-70.4 25.7-34.5-106.5C275.6 6.7 266.4 0 256 0s-19.6 6.7-22.8 16.6L200.9 116.2 37.6 4.2z\"],\n \"z\": [384, 512, [122], \"5a\", \"M0 64C0 46.3 14.3 32 32 32l320 0c12.4 0 23.7 7.2 29 18.4s3.6 24.5-4.4 34.1L100.3 416 352 416c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-12.4 0-23.7-7.2-29-18.4s-3.6-24.5 4.4-34.1L283.7 96 32 96C14.3 96 0 81.7 0 64z\"],\n \"bandage\": [576, 512, [129657, \"band-aid\"], \"f462\", \"M464 416l48 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64l-48 0 0 320zM416 96l-256 0 0 320 256 0 0-320zM64 96C28.7 96 0 124.7 0 160L0 352c0 35.3 28.7 64 64 64l48 0 0-320-48 0zM216 208a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM216 304a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm120-24a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"plane-circle-exclamation\": [640, 512, [], \"e556\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"],\n \"bus-side\": [640, 512, [], \"e81d\", \"M480 0c88.4 0 160 71.6 160 160l0 224c0 35.3-28.7 64-64 64l-5.6 0c-13.2 37.3-48.6 64-90.4 64s-77.3-26.7-90.4-64l-139.1 0c-13.2 37.3-48.7 64-90.4 64s-77.2-26.7-90.4-64L64 448c-35.3 0-64-28.7-64-64L0 96C0 43 43 0 96 0L480 0zM160 368a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm320 0a48 48 0 1 0 0 96 48 48 0 1 0 0-96zm0-304c-17.7 0-32 14.3-32 32l0 192c0 17.7 14.3 32 32 32l64 0c17.7 0 32-14.3 32-32l0-128c0-53-43-96-96-96zM248 224l104 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-104 0 0 160zM96 64C78.3 64 64 78.3 64 96l0 96c0 17.7 14.3 32 32 32l104 0 0-160-104 0z\"],\n \"bugs\": [576, 512, [], \"e4d0\", \"M447.5 174.6c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7c26.7 13.5 46.3 39.1 51.4 69.6l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L296 432c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0c5.1-30.5 24.7-56.1 51.4-69.6l-22.9-26.7c-8.6-10.1-7.5-25.2 2.6-33.8s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8zm-256-192c8.8-8.4 22.7-8.9 32.2-.8s11 21.9 4.1 31.9l-1.5 1.9-23 26.7C230 55.9 249.5 81.5 254.7 112l25.3 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-24 0 0 32 24 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-25.3 0c-7.6 45.4-47.1 80-94.7 80s-87-34.6-94.7-80L40 240c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-32-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l25.3 0C70.5 81.5 90 55.9 116.7 42.4L93.8 15.6C85.2 5.6 86.3-9.6 96.4-18.2s25.2-7.5 33.8 2.6l29.8 34.8 29.8-34.8 1.7-1.8z\"],\n \"beer-mug-empty\": [576, 512, [\"beer\"], \"f0fc\", \"M64 80c0-26.5 21.5-48 48-48l288 0c26.5 0 48 21.5 48 48l0 16 64 0c35.3 0 64 28.7 64 64l0 108.2c0 24.2-13.7 46.4-35.4 57.2L448 371.8 448 384c0 53-43 96-96 96l-192 0c-53 0-96-43-96-96L64 80zM448 300.2l64-32 0-108.2-64 0 0 140.2zM192 152c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208zm88 0c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 208c0 13.3 10.7 24 24 24s24-10.7 24-24l0-208z\"],\n \"person-circle-check\": [640, 512, [], \"e53e\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"stapler\": [640, 512, [], \"e5af\", \"M640 299.3L640 432c0 26.5-21.5 48-48 48L64 480c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0 0-48-352 0c-17.7 0-32-14.3-32-32l0-116.6-30.2-5.4c-19.6-3.5-33.8-20.5-33.8-40.4 0-8.9 2.9-17.5 8.2-24.6l35.6-47.5c32.8-43.8 84.4-69.6 139.1-69.6 27 0 53.6 6.3 77.8 18.4L586.9 213.5C619.5 229.7 640 263 640 299.3zM448 304l0-16-320-57.1 0 73.1 320 0z\"],\n \"house-medical-circle-check\": [640, 512, [], \"e511\", \"M309.8 8.6c-12.3-11.4-31.3-11.4-43.5 0l-224 208c-9.6 9-12.8 22.9-8 35.1S50.8 272 64 272l16 0 0 176c0 35.3 28.7 64 64 64l196 0c-21.2-29.5-34.3-65.3-35.9-104L272 408c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 20 0c34.9-48.5 91.7-80 156-80 10.7 0 21.1 .9 31.3 2.5L309.8 8.6zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"naira-sign\": [448, 512, [], \"e1f6\", \"M122.6 46.3c-7.8-11.7-22.4-17-35.9-12.9S64 49.9 64 64l0 192-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 144c0 17.7 14.3 32 32 32s32-14.3 32-32l0-144 89.5 0 107.8 161.8c7.8 11.7 22.4 17 35.9 12.9S384 462.1 384 448l0-144 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 192-57.5 0-139.8-209.7zM294.5 304l25.5 0 0 38.3-25.5-38.3zM185.5 256l-57.5 0 0-86.3 57.5 86.3z\"],\n \"wifi\": [576, 512, [\"wifi-3\", \"wifi-strong\"], \"f1eb\", \"M288 96c-90.9 0-173.2 36-233.7 94.6-12.7 12.3-33 12-45.2-.7s-12-33 .7-45.2C81.7 74.9 179.9 32 288 32S494.3 74.9 566.3 144.7c12.7 12.3 13 32.6 .7 45.2s-32.6 13-45.2 .7C461.2 132 378.9 96 288 96zM240 432a48 48 0 1 1 96 0 48 48 0 1 1 -96 0zM168 326.2c-11.7 13.3-31.9 14.5-45.2 2.8s-14.5-31.9-2.8-45.2C161 237.4 221.1 208 288 208s127 29.4 168 75.8c11.7 13.3 10.4 33.5-2.8 45.2s-33.5 10.4-45.2-2.8C378.6 292.9 335.8 272 288 272s-90.6 20.9-120 54.2z\"],\n \"money-check-dollar\": [512, 512, [\"money-check-alt\"], \"f53d\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM296 288l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm-24-88c0-13.3 10.7-24 24-24l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24zM148 144c11 0 20 9 20 20l0 4 8 0c11 0 20 9 20 20s-9 20-20 20l-47.5 0c-6.9 0-12.5 5.6-12.5 12.5 0 6.1 4.4 11.3 10.4 12.3l41.7 7c25.3 4.2 43.9 26.1 43.9 51.8 0 26.1-19 47.7-44 51.8l0 4.7c0 11-9 20-20 20s-20-9-20-20l0-4-24 0c-11 0-20-9-20-20s9-20 20-20l55.5 0c6.9 0 12.5-5.6 12.5-12.5 0-6.1-4.4-11.3-10.4-12.3l-41.7-7C94.5 268 76 246.1 76 220.5 76 191.7 99.2 168.3 128 168l0-4c0-11 9-20 20-20z\"],\n \"eye-low-vision\": [576, 512, [\"low-vision\"], \"f2a8\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-96.4-96.4c2.7-2.4 5.4-4.8 8-7.2 46.8-43.5 78.1-95.4 93-131.1 3.3-7.9 3.3-16.7 0-24.6-14.9-35.7-46.2-87.7-93-131.1-47.1-43.7-111.8-80.6-192.6-80.6-56.8 0-105.6 18.2-146 44.2L41-24.9zM204.5 138.7c23.5-16.8 52.4-26.7 83.5-26.7 79.5 0 144 64.5 144 144 0 31.1-9.9 59.9-26.7 83.5l-34.7-34.7c12.7-21.4 17-47.7 10.1-73.7-13.7-51.2-66.4-81.6-117.6-67.9-8.6 2.3-16.7 5.7-24 10l-34.7-34.7zM88 157.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L328.2 466c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L88 157.9zM45.7 251.3c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9L181.9 455.5c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L45.7 251.3z\"],\n \"circle-arrow-up\": [512, 512, [\"arrow-circle-up\"], \"f0aa\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm17-377l80 80c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-39-39 0 150.1c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-150.1-39 39c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l80-80c9.4-9.4 24.6-9.4 33.9 0z\"],\n \"camera-retro\": [512, 512, [128247], \"f083\", \"M0 416l0-208 136.2 0c13.5-20.2 32-36.8 53.7-48L0 160 0 125.7c0-35.3 28.7-64 64-64l.1 0C65.3 45.1 79.1 32 96 32l32 0c16.9 0 30.7 13.1 31.9 29.7l32.1 0 51.2-23.8c8.4-3.9 17.6-6 26.9-6L448 32c35.3 0 64 28.7 64 64l0 64-190 0c21.7 11.2 40.2 27.8 53.7 48l136.2 0 0 208c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64zM256 192a96.1 96.1 0 1 0 0 192.1 96.1 96.1 0 1 0 0-192.1z\"],\n \"capsules\": [576, 512, [], \"f46b\", \"M96 112c0-26.5 21.5-48 48-48s48 21.5 48 48l0 112-96 0 0-112zm-64 0l0 288c0 61.9 50.1 112 112 112s112-50.1 112-112l0-105.8 116.3 169.5c35.5 51.7 105.3 64.3 156 28.1s63-107.5 27.5-159.2L427.3 145.3c-35.5-51.7-105.3-64.3-156-28.1-5.6 4-10.7 8.4-15.3 13.1l0-18.3C256 50.1 205.9 0 144 0S32 50.1 32 112zM296.6 240.2c-16-23.3-10-55.3 11.9-71 21.2-15.1 50.5-10.3 66 12.2l67 97.6-79.9 55.9-65-94.8z\"],\n \"poo\": [512, 512, [128169], \"f2fe\", \"M268.9 .9c-5.5-.7-11 1.4-14.5 5.7s-4.6 10.1-2.8 15.4c2.8 8.2 4.3 16.9 4.3 26.1 0 44.1-35.7 79.9-79.8 80L160 128c-35.3 0-64 28.7-64 64 0 19.1 8.4 36.3 21.7 48L104 240c-39.8 0-72 32.2-72 72 0 23.2 11 43.8 28 57-34.1 5.7-60 35.3-60 71 0 39.8 32.2 72 72 72l368 0c39.8 0 72-32.2 72-72 0-35.7-25.9-65.3-60-71 17-13.2 28-33.8 28-57 0-39.8-32.2-72-72-72l-13.7 0c13.3-11.7 21.7-28.9 21.7-48 0-35.3-28.7-64-64-64l-5.5 0c3.5-10 5.5-20.8 5.5-32 0-48.6-36.2-88.8-83.1-95.1zM192 256a32 32 0 1 1 0 64 32 32 0 1 1 0-64zm96 32a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm64 108.3c0 2.4-.7 4.8-2.2 6.7-8.2 10.5-39.5 45-93.8 45s-85.6-34.6-93.8-45c-1.5-1.9-2.2-4.3-2.2-6.7 0-6.8 5.5-12.3 12.3-12.3l167.4 0c6.8 0 12.3 5.5 12.3 12.3z\"],\n \"elevator\": [512, 512, [], \"e16d\", \"M292.7-4.7l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S438.5-32 432-32L304-32c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4zm-160-22.6l-64 64c-4.6 4.6-5.9 11.5-3.5 17.4S73.5 64 80 64l128 0c6.5 0 12.3-3.9 14.8-9.9s1.1-12.9-3.5-17.4l-64-64c-6.2-6.2-16.4-6.2-22.6 0zM64 128c-35.3 0-64 28.7-64 64L0 448c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 128zm96 96a48 48 0 1 1 0 96 48 48 0 1 1 0-96zM80 400c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm192 0c0-26.5 21.5-48 48-48l64 0c26.5 0 48 21.5 48 48l0 16c0 17.7-14.3 32-32 32l-96 0c-17.7 0-32-14.3-32-32l0-16zm32-128a48 48 0 1 1 96 0 48 48 0 1 1 -96 0z\"],\n \"tag\": [512, 512, [127991], \"f02b\", \"M32.5 96l0 149.5c0 17 6.7 33.3 18.7 45.3l192 192c25 25 65.5 25 90.5 0L483.2 333.3c25-25 25-65.5 0-90.5l-192-192C279.2 38.7 263 32 246 32L96.5 32c-35.3 0-64 28.7-64 64zm112 16a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"file-circle-minus\": [576, 512, [], \"e4ed\", \"M96 0C60.7 0 32 28.7 32 64l0 384c0 35.3 28.7 64 64 64l180 0c-22.7-31.5-36-70.2-36-112 0-100.6 77.4-183.2 176-191.3l0-38.1c0-17-6.7-33.3-18.7-45.3L290.7 18.7C278.7 6.7 262.5 0 245.5 0L96 0zM357.5 176L264 176c-13.3 0-24-10.7-24-24L240 58.5 357.5 176zM576 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-64 0c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l128 0c8.8 0 16 7.2 16 16z\"],\n \"down-long\": [320, 512, [\"long-arrow-alt-down\"], \"f309\", \"M137.4 534.6c12.5 12.5 32.8 12.5 45.3 0l128-128c9.2-9.2 11.9-22.9 6.9-34.9S300.9 352 288 352l-64 0 0-336c0-26.5-21.5-48-48-48l-32 0c-26.5 0-48 21.5-48 48l0 336-64 0c-12.9 0-24.6 7.8-29.6 19.8S.2 397.5 9.4 406.6l128 128z\"],\n \"compact-disc\": [512, 512, [128191, 128192, 128440], \"f51f\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm256 32a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-96-32a96 96 0 1 0 192 0 96 96 0 1 0 -192 0zm-56-16c0-32.4 16.3-66.6 42.8-93.2S207.6 104 240 104c13.3 0 24-10.7 24-24s-10.7-24-24-24c-47.9 0-93.7 23.5-127.1 56.9S56 192.1 56 240c0 13.3 10.7 24 24 24s24-10.7 24-24z\"],\n \"suitcase-rolling\": [384, 512, [], \"f5c1\", \"M144 24c0-4.4 3.6-8 8-8l80 0c4.4 0 8 3.6 8 8l0 72-96 0 0-72zM320 96l-32 0 0-72c0-30.9-25.1-56-56-56l-80 0C121.1-32 96-6.9 96 24l0 72-32 0C28.7 96 0 124.7 0 160L0 448c0 35.3 28.7 64 64 64 0 17.7 14.3 32 32 32s32-14.3 32-32l128 0c0 17.7 14.3 32 32 32s32-14.3 32-32c35.3 0 64-28.7 64-64l0-288c0-35.3-28.7-64-64-64zM120 208l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm0 128l144 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-144 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"book-quran\": [448, 512, [\"quran\"], \"f687\", \"M64 512l288 0c53 0 96-43 96-96l0-320c0-53-43-96-96-96L48 0C21.5 0 0 21.5 0 48L0 336c0 20.9 13.4 38.7 32 45.3L32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0zM352 384c17.7 0 32 14.3 32 32s-14.3 32-32 32l-256 0 0-64 256 0zM273.1 144.4c2.5-6.1 11.2-6.1 13.7 0l10.3 24.8 26.8 2.1c6.6 .5 9.2 8.7 4.2 13L307.8 201.9 314 228c1.5 6.4-5.5 11.5-11.1 8.1l-22.9-14-22.9 14c-5.6 3.4-12.6-1.6-11.1-8.1l6.2-26.1-20.4-17.5c-5-4.3-2.3-12.5 4.2-13l26.8-2.1 10.3-24.8zM100 192c0-68.5 55.5-124 124-124 23.8 0 46.1 6.7 65 18.4 4.8 2.9 6.9 8.8 5 14.1s-7.1 8.6-12.7 8c-3.1-.3-6.2-.5-9.4-.5-46.4 0-84 37.6-84 84s37.6 84 84 84c3.2 0 6.3-.2 9.4-.5 5.6-.6 10.8 2.7 12.7 8s-.3 11.2-5 14.1c-18.9 11.7-41.2 18.4-65 18.4-68.5 0-124-55.5-124-124z\"],\n \"phone-slash\": [576, 512, [], \"f3dd\", \"M535-24.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L41 537.1c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9L141.5 368.6C89.2 310.5 51.6 238.8 34.8 159.4 18.7 83.1 73.9 20.6 138.5 2.9l5.5-1.5c19.7-5.4 40.3 4.7 48.1 23.5l40.5 97.3c6.9 16.5 2.1 35.6-11.8 47l-44.1 36.1c12.9 28.5 29.6 54.8 49.5 78.5L535-24.9zm-150.4 534c-63-13.4-121.3-39.8-171.7-76.3L297.8 348c12.2 8.2 25 15.6 38.3 22.2L374.7 323c11.3-13.9 30.4-18.6 47-11.8L519 351.8c18.8 7.8 28.9 28.4 23.5 48.1l-1.5 5.5c-17.6 64.6-80.2 119.8-156.4 103.7z\"],\n \"road-circle-check\": [640, 512, [], \"e564\", \"M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM640 400a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zm-86.6-60.9c7.1 5.2 8.7 15.2 3.5 22.3l-64 88c-2.8 3.8-7 6.2-11.7 6.5s-9.3-1.3-12.6-4.6l-40-40c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l26.8 26.8 53-72.9c5.2-7.1 15.2-8.7 22.4-3.5z\"],\n \"shop-lock\": [640, 512, [], \"e4a5\", \"M21.5 181.1L78.3 67.4C89.2 45.7 111.3 32 135.6 32l304.9 0c24.2 0 46.4 13.7 57.2 35.4l55.6 111.1c-8.2-1.6-16.6-2.5-25.2-2.5-53.7 0-99.7 33.1-118.7 80l-57.3 0 0 176c0 26.5-21.5 48-48 48l-192 0c-26.5 0-48-21.5-48-48l0-176.1c-26.8-1.9-48-24.3-48-51.6 0-8 1.9-16 5.5-23.2zM128 256l0 112c0 8.8 7.2 16 16 16l128 0c8.8 0 16-7.2 16-16l0-112-160 0zm432 48.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM416 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"image-portrait\": [384, 512, [\"portrait\"], \"f3e0\", \"M0 64C0 28.7 28.7 0 64 0L320 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM80 368c0 8.8 7.2 16 16 16l192 0c8.8 0 16-7.2 16-16 0-44.2-35.8-80-80-80l-64 0c-44.2 0-80 35.8-80 80zM192 248a56 56 0 1 0 0-112 56 56 0 1 0 0 112z\"],\n \"bridge-lock\": [576, 512, [], \"e4cc\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-8 0 0 32.2c13.8 .6 27.2 2.8 40 6.4l0 50.7c-14.8-6-31-9.3-48-9.3-70.7 0-128 57.3-128 128l0 24.4c-.4 .3-.7 .6-1.1 1-17.3-25-46.2-41.3-78.9-41.3-53 0-96 43-96 96l0 64c0 17.7-14.3 32-32 32l-32 0c-17.7 0-32-14.3-32-32l0-94c0-38.8-26.4-72.6-64-82l0-112 40 0 0-64-8 0C14.3 96 0 81.7 0 64zm424 68.6l0-36.6-80 0 0 64 18.8 0c18.2-12.8 38.9-22.2 61.2-27.4zM216 96l0 64 80 0 0-64-80 0zm-48 0l-80 0 0 64 80 0 0-64zM496 304.1c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0 0-47.9zM352 400c0-20.9 13.4-38.7 32-45.3l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96z\"],\n \"hammer\": [640, 512, [128296], \"f6e3\", \"M246.9 18.3L271 3.8c21.6-13 46.3-19.8 71.5-19.8 36.8 0 72.2 14.6 98.2 40.7l63.9 63.9c15 15 23.4 35.4 23.4 56.6l0 30.9 19.7 19.7 0 0c15.6-15.6 40.9-15.6 56.6 0s15.6 40.9 0 56.6l-64 64c-15.6 15.6-40.9 15.6-56.6 0s-15.6-40.9 0-56.6L464 240 433.1 240c-21.2 0-41.6-8.4-56.6-23.4l-49.1-49.1c-15-15-23.4-35.4-23.4-56.6l0-12.7c0-11.2-5.9-21.7-15.5-27.4l-41.6-25c-10.4-6.2-10.4-21.2 0-27.4zM50.7 402.7l222.1-222.1 90.5 90.5-222.1 222.1c-25 25-65.5 25-90.5 0s-25-65.5 0-90.5z\"],\n \"arrow-up-1-9\": [512, 512, [\"sort-numeric-up\"], \"f163\", \"M150.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L96 141.3 96 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-306.7 41.4 41.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-96-96zM418.7 38c-8.3-6-19.1-7.7-28.8-4.4l-48 16c-16.8 5.6-25.8 23.7-20.2 40.5s23.7 25.8 40.5 20.2l5.9-2 0 51.6-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-16 0 0-96c0-10.3-4.9-19.9-13.3-26zM365.1 430.6c-9.6 14.8-5.4 34.6 9.4 44.3s34.6 5.4 44.3-9.4l42.1-64.9c12.4-19.2 19.1-41.6 19.1-64.5 0-44.2-35.8-80-80-80s-80 35.8-80 80c0 36.1 23.9 66.7 56.8 76.6l-11.7 18zM376 336a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"chess-knight\": [384, 512, [9822], \"f441\", \"M192-32c106 0 192 86 192 192l0 133.5c0 17-6.8 33.2-18.7 45.2L320 384 370.8 434.7c8.5 8.5 13.2 20 13.2 32 0 25-20.3 45.2-45.2 45.3L45.3 512c-25 0-45.2-20.3-45.2-45.3 0-12 4.8-23.5 13.2-32L64 384 64 349.4c0-18.7 8.2-36.4 22.3-48.6l89.7-76.8-48 0-12.1 12.1c-12.7 12.7-30 19.9-48 19.9-37.5 0-67.9-30.4-67.9-67.9l0-8.7c0-22.8 8.2-44.9 23.1-62.3L96 32 96 0c0-17.7 14.3-32 32-32l64 0zM160 72a24 24 0 1 0 0 48 24 24 0 1 0 0-48z\"],\n \"house-flood-water-circle-arrow-right\": [640, 512, [], \"e50f\", \"M288.5 112a144 144 0 1 0 -288 0 144 144 0 1 0 288 0zM141.2 44.7c6.2-6.2 16.4-6.2 22.6 0l56 56c6.2 6.2 6.2 16.4 0 22.6l-56 56c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l28.7-28.7-89.4 0c-8.8 0-16-7.2-16-16s7.2-16 16-16l89.4 0-28.7-28.7c-6.2-6.2-6.2-16.4 0-22.6zM336.5 112c0 71.1-38.6 133.1-96 166.3l0 12.8c22.1 4.5 43.4 13.9 62.4 28.2 22.1 16.6 29.1 16.6 51.2 0 27.5-20.7 59.9-31.2 92.4-31.4 33.1-.2 66.3 10.2 94.4 31.4 6.9 5.2 12.8 9 18 11.7 .6 .3 1.2 .6 1.8 1 4.2 2.3 8.5 4.6 12.6 1.5 6-4.5 12.6-8 19.3-10.4l0-115.2 4.5 0c15.2 0 27.5-12.3 27.5-27.5 0-7.9-3.4-15.5-9.4-20.7L444.5 10.5C436.8 3.7 426.8 0 416.5 0s-20.3 3.7-28 10.5L329.9 61.8c4.3 16 6.6 32.8 6.6 50.2zm32 88c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-48zM475.1 412.1c19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 391.8 266 373.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9c21.3-16.1 49.9-16.1 71.2 0zm-71.2 96c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3S290 487.8 266 469.7c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7s-5.9 25.6 4.7 33.6c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"],\n \"arrow-up-right-from-square\": [512, 512, [\"external-link\"], \"f08e\", \"M320 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l82.7 0-201.4 201.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L448 109.3 448 192c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-17.7-14.3-32-32-32L320 0zM80 96C35.8 96 0 131.8 0 176L0 432c0 44.2 35.8 80 80 80l256 0c44.2 0 80-35.8 80-80l0-80c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 80c0 8.8-7.2 16-16 16L80 448c-8.8 0-16-7.2-16-16l0-256c0-8.8 7.2-16 16-16l80 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L80 96z\"],\n \"arrow-down-up-across-line\": [512, 512, [], \"e4af\", \"M265.4 105.4l96-96c12.5-12.5 32.8-12.5 45.3 0l96 96c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0l-41.4-41.4 0 114.7 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-320 0 0 114.7 41.4-41.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-96 96c-12.5 12.5-32.8 12.5-45.3 0l-96-96c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 402.7 96 288 32 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l320 0 0-114.7-41.4 41.4c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3zM416 336l0 144c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-144 64 0zM96 176L96 32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 144-64 0z\"],\n \"face-grin-beam\": [512, 512, [128516, \"grin-beam\"], \"f582\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"rectangle-ad\": [512, 512, [\"ad\"], \"f641\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zM416 184l0 144c0 13.3-10.7 24-24 24-7.1 0-13.5-3.1-17.9-8-10.2 5.1-21.8 8-34.1 8-42 0-76-34-76-76s34-76 76-76c9.9 0 19.3 1.9 28 5.3l0-21.3c0-13.3 10.7-24 24-24s24 10.7 24 24zm-48 92a28 28 0 1 0 -56 0 28 28 0 1 0 56 0zM160 208c-8.8 0-16 7.2-16 16l0 32 48 0 0-32c0-8.8-7.2-16-16-16l-16 0zm32 96l-48 0 0 24c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-35.3 28.7-64 64-64l16 0c35.3 0 64 28.7 64 64l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-24z\"],\n \"book-tanakh\": [448, 512, [\"tanakh\"], \"f827\", \"M352 512L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l0-66.7C13.4 374.7 0 356.9 0 336L0 48C0 21.5 21.5 0 48 0L352 0c53 0 96 43 96 96l0 320c0 53-43 96-96 96zm32-96c0-17.7-14.3-32-32-32l-256 0 0 64 256 0c17.7 0 32-14.3 32-32zM113.9 229c-1.2 2-1.9 4.2-1.9 6.6 0 6.9 5.6 12.5 12.5 12.5l56.9 0 30.5 49.2c2.6 4.2 7.2 6.8 12.2 6.8s9.6-2.6 12.2-6.8l30.5-49.2 56.9 0c6.9 0 12.5-5.6 12.5-12.5 0-2.3-.6-4.6-1.9-6.6l-27.8-45 27.8-45c1.2-2 1.9-4.2 1.9-6.6 0-6.9-5.6-12.5-12.5-12.5l-56.9 0-30.5-49.2C233.6 66.6 229 64 224 64s-9.6 2.6-12.2 6.8l-30.5 49.2-56.9 0c-6.9 0-12.5 5.6-12.5 12.5 0 2.3 .6 4.6 1.9 6.6l27.8 45-27.8 45z\"],\n \"hot-tub-person\": [448, 512, [\"hot-tub\"], \"f593\", \"M240 40c0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C203.5 93.1 192 67.2 192 40 192 26.7 202.7 16 216 16s24 10.7 24 24zM0 336l0-80c0-35.3 28.7-64 64-64l19.7 0c8.1 0 16.2 1.6 23.8 4.6l137.1 54.8c7.6 3 15.6 4.6 23.8 4.6L384 256c35.3 0 64 28.7 64 64l0 128c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 336zm96-16c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zm152 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80zm104-24c-13.3 0-24 10.7-24 24l0 80c0 13.3 10.7 24 24 24s24-10.7 24-24l0-80c0-13.3-10.7-24-24-24zM328 16c13.3 0 24 10.7 24 24 0 13.6 5.8 26.5 15.8 35.6l26.5 23.8c24 21.6 37.7 52.3 37.7 84.6 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-18.7-7.9-36.4-21.8-48.9l-26.5-23.8C315.5 93.1 304 67.2 304 40 304 26.7 314.7 16 328 16zM64 40a56 56 0 1 1 0 112 56 56 0 1 1 0-112z\"],\n \"file-half-dashed\": [384, 512, [], \"e698\", \"M64 0C28.7 0 0 28.7 0 64l0 256 384 0 0-149.5c0-17-6.7-33.3-18.7-45.3L258.7 18.7C246.7 6.7 230.5 0 213.5 0L64 0zM325.5 176L232 176c-13.3 0-24-10.7-24-24L208 58.5 325.5 176zM0 352l0 64 64 0 0-64-64 0zM64 512l0-64-64 0c0 35.3 28.7 64 64 64zm32 0l80 0 0-64-80 0 0 64zm112 0l80 0 0-64-80 0 0 64zm112 0c35.3 0 64-28.7 64-64l-64 0 0 64zm64-160l-64 0 0 64 64 0 0-64z\"],\n \"outdent\": [448, 512, [\"dedent\"], \"f03b\", \"M.4 64c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0C14.8 96 .4 81.7 .4 64zm192 128c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM.4 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-384 0c-17.7 0-32-14.3-32-32zM.7 268.6c-8.2-6.4-8.2-18.9 0-25.3l101.9-79.3c10.5-8.2 25.8-.7 25.8 12.6l0 158.6c0 13.3-15.3 20.8-25.8 12.6L.7 268.6z\"],\n \"hand-peace\": [448, 512, [9996], \"f25b\", \"M192 0c17.7 0 32 14.3 32 32l0 208-64 0 0-208c0-17.7 14.3-32 32-32zm96 160c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32zm64 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM61.3 51.2L143.9 240 74.1 240 2.7 76.8C-4.4 60.6 3 41.8 19.2 34.7S54.2 35 61.3 51.2zm27 221.3l-.2-.5 95.9 0c22.1 0 40 17.9 40 40s-17.9 40-40 40l-56 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l56 0c39.8 0 72-32.2 72-72l0-.6c9.4 5.4 20.3 8.6 32 8.6 13.2 0 25.4-4 35.6-10.8 8.7 24.9 32.5 42.8 60.4 42.8 11.7 0 22.6-3.1 32-8.6l0 8.6c0 88.4-71.6 160-160 160l-61.7 0c-42.4 0-83.1-16.9-113.1-46.9L69.5 453.5C45.5 429.5 32 396.9 32 363l0-27c0-32.7 24.6-59.7 56.3-63.5z\"],\n \"head-side-virus\": [512, 512, [], \"e064\", \"M329.7 448c-5.1 0-9.7 3.7-9.7 8.8l0 7.2c0 26.5-21.5 48-48 48l-160 0c-26.5 0-48-21.5-48-48l0-63.6c0-12.6-5.1-24.5-13.1-34.2-31.8-38.7-50.9-88.2-50.9-142.2 0-123.7 100.3-224 224-224 112.7 0 206 83.3 221.7 191.7 .4 3 1.7 5.9 3.6 8.3l35.8 42.9c7 8.4 10.9 19.1 10.9 30.1 0 25.9-21 47-47 47l-1 0c-8.8 0-16 7.2-16 16l0 48c0 35.3-28.7 64-64 64l-38.3 0zM224 64c-13.3 0-24 10.7-24 24 0 22.9-27.7 34.4-43.9 18.2-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9c16.2 16.2 4.7 43.9-18.2 43.9-13.3 0-24 10.7-24 24s10.7 24 24 24c22.9 0 34.4 27.7 18.2 43.9-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0c16.2-16.2 43.9-4.7 43.9 18.2 0 13.3 10.7 24 24 24s24-10.7 24-24c0-22.9 27.7-34.4 43.9-18.2 9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9c-16.2-16.2-4.7-43.9 18.2-43.9 13.3 0 24-10.7 24-24s-10.7-24-24-24c-22.9 0-34.4-27.7-18.2-43.9 9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0c-16.2 16.2-43.9 4.7-43.9-18.2 0-13.3-10.7-24-24-24zm-32 88a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm40 88a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"compass\": [512, 512, [129517], \"f14e\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm50.7-186.9L162.4 380.6c-19.4 7.5-38.5-11.6-31-31l55.5-144.3c3.3-8.5 9.9-15.1 18.4-18.4l144.3-55.5c19.4-7.5 38.5 11.6 31 31L325.1 306.7c-3.2 8.5-9.9 15.1-18.4 18.4zM288 256a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"pen-nib\": [512, 512, [10001], \"f5ad\", \"M368.5 18.3l-50.1 50.1 125.3 125.3 50.1-50.1c21.9-21.9 21.9-57.3 0-79.2L447.7 18.3c-21.9-21.9-57.3-21.9-79.2 0zM279.3 97.2l-.5 .1-144.1 43.2c-19.9 6-35.7 21.2-42.3 41L3.8 445.8c-2.9 8.7-1.9 18.2 2.5 26L161.7 316.4c-1.1-4-1.6-8.1-1.6-12.4 0-26.5 21.5-48 48-48s48 21.5 48 48-21.5 48-48 48c-4.3 0-8.5-.6-12.4-1.6L40.3 505.7c7.8 4.4 17.2 5.4 26 2.5l264.3-88.6c19.7-6.6 35-22.4 41-42.3l43.2-144.1 .1-.5-135.5-135.5z\"],\n \"tent-arrows-down\": [512, 512, [], \"e581\", \"M185.5 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zm248 72l72-72c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 102.1-31-31c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l72 72c9.4 9.4 24.6 9.4 33.9 0zM60.3 292.6L37.1 476c-2.4 19.1 12.5 36 31.7 36l154.5 0c17.7 0 32-14.3 32-32l0-117.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9l68.2 136.5c5.4 10.8 16.5 17.7 28.6 17.7l71.9 0c19.3 0 34.2-16.9 31.7-36L452.7 292.7c-1.2-9.7-6.9-18.4-15.3-23.4L271.9 169.9c-10.2-6.1-22.9-6.1-33.1 .1L75.4 269.3c-8.3 5.1-13.9 13.7-15.1 23.3z\"],\n \"forward-fast\": [512, 512, [9197, \"fast-forward\"], \"f050\", \"M19.8 477.6c12 5 25.7 2.2 34.9-6.9L224 301.3 224 448c0 12.9 7.8 24.6 19.8 29.6s25.7 2.2 34.9-6.9L448 301.3 448 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-384c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 146.7-169.4-169.4c-9.2-9.2-22.9-11.9-34.9-6.9S224 51.1 224 64L224 210.7 54.6 41.4c-9.2-9.2-22.9-11.9-34.9-6.9S0 51.1 0 64L0 448c0 12.9 7.8 24.6 19.8 29.6z\"],\n \"crop\": [512, 512, [], \"f125\", \"M448 109.3l54.6-54.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L402.7 64 176 64 176 128 338.7 128 128 338.7 128 32c0-17.7-14.3-32-32-32S64 14.3 64 32l0 32-32 0C14.3 64 0 78.3 0 96s14.3 32 32 32l32 0 0 256c0 35.3 28.7 64 64 64l208 0 0-64-162.7 0 210.7-210.7 0 306.7c0 17.7 14.3 32 32 32s32-14.3 32-32l0-32 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-274.7z\"],\n \"whiskey-glass\": [448, 512, [129347, \"glass-whiskey\"], \"f7a0\", \"M32 32C14.3 32 0 46.3 0 64L0 352c0 70.7 57.3 128 128 128l192 0c70.7 0 128-57.3 128-128l0-288c0-17.7-14.3-32-32-32L32 32zM64 256l0-160 320 0 0 160-320 0z\"],\n \"square\": [448, 512, [9632, 9723, 9724, 61590], \"f0c8\", \"M64 32l320 0c35.3 0 64 28.7 64 64l0 320c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32z\"],\n \"face-grin\": [512, 512, [128512, \"grin\"], \"f580\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM386.7 308.9c11.9-3.7 23.9 6.3 19.6 18.1-22.4 61.3-81.3 105.1-150.3 105.1S128.1 388.2 105.7 326.9c-4.3-11.8 7.7-21.8 19.6-18.1 39.2 12.2 83.7 19.1 130.7 19.1s91.5-6.9 130.7-19.1zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"file-contract\": [384, 512, [], \"f56c\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM88 64C74.7 64 64 74.7 64 88s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24L88 64zm0 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm70.3 160c-11.3 0-21.9 5.1-28.9 13.9L69.3 409c-8.3 10.3-6.6 25.5 3.7 33.7s25.5 6.6 33.7-3.8l47.1-58.8 15.2 50.7c3 10.2 12.4 17.1 23 17.1l104 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-86.1 0-16.1-53.6c-4.7-15.7-19.1-26.4-35.5-26.4z\"],\n \"angle-up\": [384, 512, [8963], \"f106\", \"M169.4 137.4c12.5-12.5 32.8-12.5 45.3 0l160 160c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L192 205.3 54.6 342.6c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3l160-160z\"],\n \"face-smile\": [512, 512, [128578, \"smile\"], \"f118\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"person-dress-burst\": [640, 512, [], \"e544\", \"M208 40.1c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24zM8 144.1c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0c-13.3 0-24 10.7-24 24zm92.5 141.4l33.9-33.9c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0L66.6 251.6c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0zM66.6 2.7c-9.4 9.4-9.4 24.6 0 33.9l33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9L100.5 2.7C91.1-6.7 76-6.7 66.6 2.7zM352 80a56 56 0 1 0 0-112 56 56 0 1 0 0 112zM246.2 384l25.8 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 32 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 25.8 0c10.9 0 18.6-10.7 15.2-21.1l-43-129 48.3 65.1c10.5 14.2 30.6 17.2 44.8 6.6s17.2-30.6 6.6-44.8l-70.5-95C434 132 394.3 112 352 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6l48.3-65.1-43 129c-3.5 10.4 4.3 21.1 15.2 21.1z\"],\n \"divide\": [448, 512, [10135, 247], \"f529\", \"M224 48a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM168 408a56 56 0 1 1 112 0 56 56 0 1 1 -112 0z\"],\n \"code-fork\": [448, 512, [], \"e13b\", \"M80 104a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm80-24c0 32.8-19.7 61-48 73.3l0 22.7c0 26.5 21.5 48 48 48l128 0c26.5 0 48-21.5 48-48l0-22.7c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3l0 22.7c0 61.9-50.1 112-112 112l-32 0 0 70.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3l0-70.7-32 0C98.1 288 48 237.9 48 176l0-22.7C19.7 141 0 112.8 0 80 0 35.8 35.8 0 80 0s80 35.8 80 80zm208 24a24 24 0 1 0 0-48 24 24 0 1 0 0 48zM248 432a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"house-flag\": [640, 512, [], \"e50d\", \"M472 0c17.7 0 32 14.3 32 32l96 0c17.7 0 32 14.3 32 32l0 96c0 17.7-14.3 32-32 32l-96 0 0 288c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-448c0-17.7 14.3-32 32-32zM283.5 59.1l100.5 96.9 0 356-256 0c-35.3 0-64-28.7-64-64l0-144-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L228.5 59.1C235.9 52 245.7 48 256 48s20.1 4 27.5 11.1zM232 256c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0z\"],\n \"building-columns\": [512, 512, [\"bank\", \"institution\", \"museum\", \"university\"], \"f19c\", \"M271.9 20.2c-9.8-5.6-21.9-5.6-31.8 0l-224 128c-12.6 7.2-18.8 22-15.1 36S17.5 208 32 208l32 0 0 208 0 0-51.2 38.4C4.7 460.4 0 469.9 0 480 0 497.7 14.3 512 32 512l448 0c17.7 0 32-14.3 32-32 0-10.1-4.7-19.6-12.8-25.6l-51.2-38.4 0-208 32 0c14.5 0 27.2-9.8 30.9-23.8s-2.5-28.8-15.1-36l-224-128zM400 208l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zm-112 0l0 208-64 0 0-208 64 0zM256 96a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"rug\": [576, 512, [], \"e569\", \"M24 64l56 0 0 384-56 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-32-8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l8 0 0-40-8 0C10.7 112 0 101.3 0 88S10.7 64 24 64zm104 0l320 0 0 384-320 0 0-384zM576 88c0 13.3-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 32 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-8 0 0 40 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-56 0 0-384 56 0c13.3 0 24 10.7 24 24z\"],\n \"code-merge\": [448, 512, [], \"f387\", \"M80 56a24 24 0 1 1 0 48 24 24 0 1 1 0-48zm32.4 97.2c28-12.4 47.6-40.5 47.6-73.2 0-44.2-35.8-80-80-80S0 35.8 0 80c0 32.8 19.7 61 48 73.3l0 205.3C19.7 371 0 399.2 0 432 0 476.2 35.8 512 80 512s80-35.8 80-80c0-32.8-19.7-61-48-73.3l0-86.6c26.7 20.1 60 32 96 32l86.7 0c12.3 28.3 40.5 48 73.3 48 44.2 0 80-35.8 80-80s-35.8-80-80-80c-32.8 0-61 19.7-73.3 48L208 240c-49.9 0-91-38.1-95.6-86.8zM80 408a24 24 0 1 1 0 48 24 24 0 1 1 0-48zM344 272a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"house-tsunami\": [640, 512, [], \"e515\", \"M288 16C155.5 16 48 123.5 48 256S155.5 496 288 496c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1l-.1 0C128.9 543.9 0 415 0 256 0 96.9 128.9-32 288-32 301.3-32 312-21.3 312-8s-10.7 24-24 24zm44.8 166.4l96-72c11.4-8.5 27.1-8.5 38.5 0l95.5 72c8 6 12.7 15.5 12.7 25.5l.3 121.5c-2.2 1.3-4.3 2.6-6.4 4.2-4.3 3.1-8.7 .8-13.2-1.5l-1.2-.6-.7-.3c-5.4-2.7-11.7-6.6-18.9-11.7-29.5-21.1-64.3-31.6-99.1-31.4-34.1 .2-68.1 10.7-97 31.4-7.8 5.6-13.8 9.3-19.3 11.2L320 208c0-10.1 4.7-19.6 12.8-25.6zm54.6 229.7c-14.5 10.9-32.4 19.7-49.5 25.8-16.8 6-34.9 10.1-49.9 10.1-106 0-192-86-192-192S182 64 288 64c13.3 0 24 10.7 24 24s-10.7 24-24 24c-79.5 0-144 64.5-144 144s64.5 144 144 144c7.4 0 19.7-2.3 33.7-7.3 13.8-4.9 27.1-11.7 36.7-18.9 38.4-29 90.5-29 129 0 15.4 11.6 35.3 21.1 55 24.4 19.5 3.3 37 .4 51.1-10.2 10.6-8 25.6-5.9 33.6 4.7s5.9 25.6-4.7 33.6c-27.3 20.5-59.2 24-87.9 19.2-28.5-4.8-55.4-18-75.9-33.4-21.3-16.1-49.9-16.1-71.2 0z\"],\n \"magnifying-glass-chart\": [512, 512, [], \"e522\", \"M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376C296.3 401.1 253.9 416 208 416 93.1 416 0 322.9 0 208S93.1 0 208 0 416 93.1 416 208zm-312 8l0 64c0 13.3 10.7 24 24 24s24-10.7 24-24l0-64c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80-96l0 160c0 13.3 10.7 24 24 24s24-10.7 24-24l0-160c0-13.3-10.7-24-24-24s-24 10.7-24 24zm80 64l0 96c0 13.3 10.7 24 24 24s24-10.7 24-24l0-96c0-13.3-10.7-24-24-24s-24 10.7-24 24z\"],\n \"umbrella\": [512, 512, [], \"f0e9\", \"M256-32c17.7 0 32 14.3 32 32l0 2c126.3 15.7 224 123.5 224 254 0 3.8-.1 7.5-.2 11.3-.3 6.9-5 12.8-11.7 14.7s-13.8-.7-17.6-6.5c-14.4-21.4-38.8-35.5-66.5-35.5-29.3 0-54.9 15.7-68.9 39.3-2.7 4.6-7.6 7.6-13 7.8s-10.5-2.2-13.7-6.5c-14.6-19.8-38-32.6-64.5-32.6s-49.9 12.8-64.5 32.6c-3.2 4.3-8.3 6.8-13.7 6.5s-10.2-3.2-13-7.8c-14-23.6-39.6-39.3-68.9-39.3-27.7 0-52.1 14.1-66.5 35.5-3.9 5.7-11 8.4-17.6 6.5S.5 274.2 .2 267.3C.1 263.5 0 259.8 0 256 0 125.5 97.7 17.7 224 2l0-2c0-17.7 14.3-32 32-32zm32 360l0 102.6c0 45-36.5 81.4-81.4 81.4-30.8 0-59-17.4-72.8-45l-2.3-4.7c-7.9-15.8-1.5-35 14.3-42.9s35-1.5 42.9 14.3l2.3 4.7c3 5.9 9 9.6 15.6 9.6 9.6 0 17.4-7.8 17.4-17.4L224 328c0-17.7 14.3-32 32-32s32 14.3 32 32z\"],\n \"hill-rockslide\": [576, 512, [], \"e508\", \"M252.4 103.8l27 48c2.8 5 8.2 8.2 13.9 8.2l53.3 0c5.8 0 11.1-3.1 13.9-8.2l27-48c2.7-4.9 2.7-10.8 0-15.7l-27-48c-2.8-5-8.2-8.2-13.9-8.2l-53.3 0c-5.8 0-11.1 3.1-13.9 8.2l-27 48c-2.7 4.9-2.7 10.8 0 15.7zM68.3 87C43.1 61.8 0 79.7 0 115.3L0 432c0 44.2 35.8 80 80 80l316.7 0c35.6 0 53.5-43.1 28.3-68.3L68.3 87zM504.2 403.6c4.9 2.7 10.8 2.7 15.7 0l48-27c5-2.8 8.2-8.2 8.2-13.9l0-53.3c0-5.8-3.1-11.1-8.2-13.9l-48-27c-4.9-2.7-10.8-2.7-15.7 0l-48 27c-5 2.8-8.2 8.2-8.2 13.9l0 53.3c0 5.8 3.1 11.1 8.2 13.9l48 27zM192 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 288a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"user-secret\": [448, 512, [128373], \"f21b\", \"M171-16c-36.4 0-57.8 58.3-68.3 112L72 96c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 32c0 17 3.3 33.2 9.3 48l-9.3 0 0 0-20.5 0c-15.2 0-27.5 12.3-27.5 27.5 0 3 .5 5.9 1.4 8.7l28.9 86.6C40.2 379.6 16 428.1 16 482.3 16 498.7 29.3 512 45.7 512l356.6 0c16.4 0 29.7-13.3 29.7-29.7 0-54.2-24.2-102.7-62.3-135.4l28.9-86.6c.9-2.8 1.4-5.7 1.4-8.7 0-15.2-12.3-27.5-27.5-27.5l-20.5 0 0 0-9.3 0c6-14.8 9.3-31 9.3-48l0-32 24 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-30.7 0c-10.4-53.7-31.9-112-68.3-112-9.6 0-19 3.9-27.5 8.2-8.2 4.1-18.4 7.8-25.5 7.8s-17.3-3.7-25.5-7.8C190-12.1 180.6-16 171-16zm93.7 484.4l-24.8-70.9 27.9-32.5c2.7-3.2 4.2-7.2 4.2-11.4 0-9.7-7.8-17.5-17.5-17.5l-61 0c-9.7 0-17.5 7.8-17.5 17.5 0 4.2 1.5 8.2 4.2 11.4l27.9 32.5-24.8 70.9-57-180.4 35.7 0c18.4 10.2 39.5 16 62 16s43.6-5.8 62-16l35.7 0-57 180.4zM224 256c-34.7 0-64.2-22.1-75.3-53 5.7 3.2 12.3 5 19.3 5l12.4 0c16.5 0 31.1-10.6 36.3-26.2 2.3-7 12.2-7 14.5 0 5.2 15.6 19.9 26.2 36.3 26.2l12.4 0c7 0 13.6-1.8 19.3-5-11.1 30.9-40.6 53-75.3 53z\"],\n \"pager\": [512, 512, [128223], \"f815\", \"M0 128C0 92.7 28.7 64 64 64l384 0c35.3 0 64 28.7 64 64l0 256c0 35.3-28.7 64-64 64L64 448c-35.3 0-64-28.7-64-64L0 128zm64 32l0 64c0 17.7 14.3 32 32 32l320 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32L96 128c-17.7 0-32 14.3-32 32zM88 320c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0zm128 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l48 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-48 0z\"],\n \"briefcase\": [512, 512, [128188], \"f0b1\", \"M200 48l112 0c4.4 0 8 3.6 8 8l0 40-128 0 0-40c0-4.4 3.6-8 8-8zm-56 8l0 40-80 0C28.7 96 0 124.7 0 160l0 96 512 0 0-96c0-35.3-28.7-64-64-64l-80 0 0-40c0-30.9-25.1-56-56-56L200 0c-30.9 0-56 25.1-56 56zM512 304l-192 0 0 16c0 17.7-14.3 32-32 32l-64 0c-17.7 0-32-14.3-32-32l0-16-192 0 0 112c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-112z\"],\n \"trowel-bricks\": [512, 512, [], \"e58a\", \"M224 32c0-11.5-6.2-22.2-16.2-27.8s-22.3-5.5-32.2 .4l-160 96C5.9 106.3 0 116.8 0 128s5.9 21.7 15.5 27.4l160 96c9.9 5.9 22.2 6.1 32.2 .4S224 235.5 224 224l0-64 256 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-256 0 0-64zm96 192c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-160 0zM0 416l0 64c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32zm224-32c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l256 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-256 0z\"],\n \"socks\": [512, 512, [129510], \"f696\", \"M252.8 0L176 0c-26.5 0-48 21.5-48 48l0 16 112 0 0-16c0-17.5 4.7-33.9 12.8-48zM128 112l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 15.4 0 30.5-3.7 44-10.7-17.6-23.9-28-53.4-28-85.3 0-45.3 21.3-88 57.6-115.2l64-48c4-3 6.4-7.8 6.4-12.8l0-128-112 0zm160 0l0 128c0 20.1-9.5 39.1-25.6 51.2l-64 48c-24.2 18.1-38.4 46.6-38.4 76.8 0 53 43 96 96 96 20.8 0 41-6.7 57.6-19.2l115.2-86.4C461 382.2 480 344.3 480 304l0-192-192 0zM480 64l0-16c0-26.5-21.5-48-48-48L336 0c-26.5 0-48 21.5-48 48l0 16 192 0z\"],\n \"t\": [384, 512, [116], \"54\", \"M32 32C14.3 32 0 46.3 0 64S14.3 96 32 96l128 0 0 352c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 32z\"],\n \"microchip\": [512, 512, [], \"f2db\", \"M176 24c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40c-35.3 0-64 28.7-64 64l-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 56-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0c0 35.3 28.7 64 64 64l0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40 56 0 0 40c0 13.3 10.7 24 24 24s24-10.7 24-24l0-40c35.3 0 64-28.7 64-64l40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-56 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0c0-35.3-28.7-64-64-64l0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 40-56 0 0-40zM160 128l192 0c17.7 0 32 14.3 32 32l0 192c0 17.7-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32l0-192c0-17.7 14.3-32 32-32zm16 48l0 160 160 0 0-160-160 0z\"],\n \"truck-medical\": [576, 512, [128657, \"ambulance\"], \"f0f9\", \"M64 32C28.7 32 0 60.7 0 96L0 384c0 35.3 28.7 64 64 64l3.3 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l102.6 0c10.4 36.9 44.4 64 84.7 64s74.2-27.1 84.7-64l3.3 0c35.3 0 64-28.7 64-64l0-146.7c0-17-6.7-33.3-18.7-45.3L512 146.7c-12-12-28.3-18.7-45.3-18.7l-50.7 0 0-32c0-35.3-28.7-64-64-64L64 32zM512 237.3l0 50.7-96 0 0-96 50.7 0 45.3 45.3zM152 384a40 40 0 1 1 0 80 40 40 0 1 1 0-80zm232 40a40 40 0 1 1 80 0 40 40 0 1 1 -80 0zM176 136c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 40 40 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-40 0 0 40c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-40-40 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16l40 0 0-40z\"],\n \"om\": [576, 512, [128329], \"f679\", \"M388.7 4.7c6.2-6.2 16.4-6.2 22.6 0l16 16c6.2 6.2 6.2 16.4 0 22.6l-16 16c-6.2 6.2-16.4 6.2-22.6 0l-16-16c-6.2-6.2-6.2-16.4 0-22.6l16-16zM176 160c-10.8 0-20.8 3.6-28.8 9.6-14.1 10.6-34.2 7.8-44.8-6.4s-7.8-34.2 6.4-44.8c18.7-14.1 42-22.4 67.2-22.4 61.9 0 112 50.1 112 112 0 17.2-3.9 33.5-10.8 48l49.7 0c12.7 0 24.9-5 33.9-14.1l20.7-20.7c18.7-18.7 44.1-29.3 70.6-29.3 55.2 0 99.9 44.7 99.9 99.9l0 96.1c0 55.2-44.8 100-100 100S352 443.2 352 388l0-4c0-17.7 14.3-32 32-32s32 14.3 32 32l0 4c0 19.9 16.1 36 36 36s36-16.1 36-36l0-96.1c0-19.8-16.1-35.9-35.9-35.9-9.5 0-18.6 3.8-25.4 10.5l-20.7 20.7c-21 21-49.4 32.8-79.1 32.8l-26.8 0c12.6 19.6 19.9 42.8 19.9 68 0 75.2-65 132-140 132S40 463.2 40 388c0-17.7 14.3-32 32-32s32 14.3 32 32c0 35.3 31.7 68 76 68s76-32.7 76-68-31.7-68-76-68l-20 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l16 0c26.5 0 48-21.5 48-48s-21.5-48-48-48zM337.1 60.1c-11-13.8-31.1-16.2-45-5.2s-16.2 31.1-5.2 45C312.6 132.2 354.4 152 400 152s87.4-19.8 113.1-52.1c11-13.8 8.7-34-5.2-45s-34-8.7-45 5.2C450.3 76 427.5 88 400 88s-50.3-12-62.9-27.9z\"],\n \"mosquito-net\": [640, 512, [], \"e52c\", \"M576 352c13.3 0 24 10.7 24 24l0 16 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 48 16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0 0 16-.1 2.5C598.6 566.6 588.4 576 576 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-48 0 0 16-.1 2.5C502.6 566.6 492.4 576 480 576s-22.6-9.4-23.9-21.5l-.1-2.5 0-16-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-48-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l16 0 0-16c0-13.3 10.7-24 24-24s24 10.7 24 24l0 16 48 0 0-16c0-13.3 10.7-24 24-24zM429.9 16.3c7.7-9.4 21.3-11.5 31.4-4.3 10.1 7.1 13.1 20.9 7.4 31.7l-1.3 2.1-25.9 38.9 13.3 53.4c2 8-.1 16.3-5.3 22.3l-2.4 2.4-44.7 38.3 130.5 14.5c42.8 4.8 75.1 40.9 75.1 83.9 0 3.9-.4 7.7-.9 11.5-7.3-3.5-15.3-5.8-23.8-6.7L576 304c-18.5 0-35.3 7-48 18.4-11-9.9-25.1-16.5-40.6-18.1L480 304c-30.3 0-56.1 18.7-66.8 45.2-12.5 5-23.2 13.4-31.1 24l-30.2-40.1 0 74.7c0 17.7-14.3 32-32 32-16.6 0-30.2-12.6-31.8-28.7l-.2-3.3 0-74.6-32.3 43 0 39.8c0 3.5-.7 6.9-2.1 10.1l-1.6 3.1-40 64-1.4 2c-7.5 9.6-21 12.1-31.3 5.3-10.3-6.8-13.7-20.5-8.3-31.5l1.2-2.2 36.2-58 0-41 .3-4c.6-3.9 2.2-7.7 4.6-10.9l39.3-52.2-66.2 59.5c-17 15.3-39 23.7-61.9 23.8l-8.1 0c-46.6 0-84.4-37.8-84.4-84.4 0-43 32.4-79.2 75.1-83.9l130.5-14.5-44.7-38.3-2.4-2.4c-5.2-6-7.3-14.4-5.3-22.3l13.3-53.4-25.9-38.9-1.2-2.1c-5.7-10.8-2.7-24.6 7.4-31.7 10.1-7.1 23.7-5.1 31.4 4.3l1.5 2 32 48 1.4 2.2c2.8 5.3 3.5 11.6 2.1 17.6l-12.3 49.2 53.3 45.7 0-28.8 .2-3.2c1.1-10.4 7.2-19.4 15.8-24.4l0-60.5 .3-3.2c1.5-7.3 8-12.7 15.7-12.8 7.7 0 14.2 5.5 15.7 12.8l.3 3.2 0 60.5c8.7 5 14.8 14 15.8 24.4l.2 3.2 0 28.9 53.4-45.7-12.3-49.2c-1.5-5.9-.7-12.2 2.1-17.6l1.4-2.2 32-48 1.5-2zM504 488l48 0 0-48-48 0 0 48z\"],\n \"prescription-bottle\": [384, 512, [], \"f485\", \"M0 32C0 14.3 14.3 0 32 0L352 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64L0 32zM32 144l320 0 0 304c0 35.3-28.7 64-64 64L96 512c-35.3 0-64-28.7-64-64l72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-48 72 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0 0-64z\"],\n \"users-gear\": [640, 512, [\"users-cog\"], \"f509\", \"M320 224a104 104 0 1 0 0-208 104 104 0 1 0 0 208zM96 232a72 72 0 1 0 0-144 72 72 0 1 0 0 144zM0 416l0 32c0 17.7 14.3 32 32 32l86.7 0c-4.3-9.8-6.7-20.6-6.7-32l0-16c0-53.2 20-101.8 52.9-138.6-11.7-3.5-24.1-5.4-36.9-5.4-70.7 0-128 57.3-128 128zM616 160a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zM160 432l0 16c0 17.7 14.3 32 32 32l156.8 0c-7.1-21.6-6.3-44.4 10.7-64-14-16.2-20.5-39.7-11.4-63.3 6.6-17.1 15.9-33.1 27.4-47.3 5.4-6.6 11.6-11.7 18.3-15.4-22.1-11.5-47.2-18-73.8-18-88.4 0-160 71.6-160 160zm464.6-44.1c6.3-3.6 9.5-11.1 6.8-18-4.8-12.4-11.5-24.1-19.9-34.4-4.6-5.7-12.7-6.7-19-3-21.8 12.6-48.6-2.8-48.6-28.1 0-7.3-4.9-13.8-12.1-14.9-12.9-2-26.8-2-39.7 0-7.2 1.1-12.1 7.6-12.1 14.9 0 25.2-26.8 40.7-48.6 28.1-6.3-3.6-14.4-2.6-19 3-8.4 10.3-15.1 22-19.9 34.4-2.6 6.8 .5 14.3 6.8 17.9 21.9 12.6 21.9 43.5 0 56.2-6.3 3.6-9.5 11.1-6.8 17.9 4.8 12.4 11.5 24.1 19.9 34.4 4.6 5.7 12.7 6.7 19 3 21.8-12.6 48.6 2.9 48.6 28.1 0 7.3 4.9 13.8 12.1 14.9 12.9 2 26.8 2 39.7 0 7.2-1.1 12.1-7.6 12.1-14.9 0-25.2 26.8-40.7 48.6-28.1 6.3 3.6 14.4 2.6 19-3 8.4-10.3 15.1-22 19.9-34.4 2.6-6.8-.5-14.3-6.8-17.9-21.9-12.6-21.9-43.5 0-56.2zM472 416a40 40 0 1 1 80 0 40 40 0 1 1 -80 0z\"],\n \"road-circle-exclamation\": [640, 512, [], \"e565\", \"M288 32l-76.3 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.5 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49c35.2-39.9 86.7-65 144-65 9 0 17.8 .6 26.5 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.4 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm0-100a20 20 0 1 1 0 40 20 20 0 1 1 0-40zm0-140c8.8 0 16 7.2 16 16l0 80c0 8.8-7.2 16-16 16s-16-7.2-16-16l0-80c0-8.8 7.2-16 16-16z\"],\n \"pause\": [384, 512, [9208], \"f04c\", \"M48 32C21.5 32 0 53.5 0 80L0 432c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 32zm224 0c-26.5 0-48 21.5-48 48l0 352c0 26.5 21.5 48 48 48l64 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48l-64 0z\"],\n \"staff-snake\": [448, 512, [\"rod-asclepius\", \"rod-snake\", \"staff-aesculapius\"], \"e579\", \"M192 32l0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 64 0c53 0 96 43 96 96s-43 96-96 96l-16 0 0-64 16 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-64 0 0 192 32 0c53 0 96 43 96 96 0 47.6-34.6 87.1-80 94.7l0-67c9.6-5.5 16-15.9 16-27.7 0-17.7-14.3-32-32-32l-32 0 0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-32 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l32 0 0-64-32 0c-53 0-96-43-96-96 0-47.6 34.6-87.1 80-94.7l0 67c-9.6 5.5-16 15.9-16 27.7 0 17.7 14.3 32 32 32l32 0 0-192-72.6 0c-11.1 19.1-31.7 32-55.4 32l-16 0C21.5 128 0 106.5 0 80S21.5 32 48 32l144 0z\"],\n \"piggy-bank\": [576, 512, [], \"f4d3\", \"M288-32a96 96 0 1 1 0 192 96 96 0 1 1 0-192zM48 304c0-70.1 47-131.4 117.1-164.9 25.3 41.3 70.9 68.9 122.9 68.9 55.7 0 104.1-31.7 128-78 15.8-11.3 35.1-18 56-18l19.5 0c10.4 0 18 9.8 15.5 19.9l-17.1 68.3c9.9 12.4 18.2 25.7 24.4 39.8l21.7 0c13.3 0 24 10.7 24 24l0 112c0 13.3-10.7 24-24 24l-40 0c-16.5 22-38.5 39.6-64 50.7l0 29.3c0 17.7-14.3 32-32 32l-33 0c-14.3 0-26.8-9.5-30.8-23.2l-7.1-24.8-82.3 0-7.1 24.8C235.8 502.5 223.3 512 209 512l-33 0c-17.7 0-32-14.3-32-32l0-29.3C87.5 426 48 369.6 48 304zm376 16a24 24 0 1 0 0-48 24 24 0 1 0 0 48z\"],\n \"monument\": [384, 512, [], \"f5a6\", \"M209-33c-9.4-9.4-24.6-9.4-33.9 0L95 47c-4.1 4.1-6.5 9.4-7 15.1L58.4 448 48 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-10.4 0-29.7-385.8c-.4-5.7-2.9-11.1-7-15.1L209-33zM128 296c0-13.3 10.7-24 24-24l80 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24z\"],\n \"angles-right\": [448, 512, [187, \"angle-double-right\"], \"f101\", \"M439.1 278.6c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L371.2 256 233.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0l160-160zm-352 160l160-160c12.5-12.5 12.5-32.8 0-45.3l-160-160c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3L179.2 256 41.9 393.4c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0z\"],\n \"desktop\": [512, 512, [128421, 61704, \"desktop-alt\"], \"f390\", \"M64 32C28.7 32 0 60.7 0 96L0 352c0 35.3 28.7 64 64 64l144 0-16 48-72 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l272 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-72 0-16-48 144 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 32zM96 96l320 0c17.7 0 32 14.3 32 32l0 160c0 17.7-14.3 32-32 32L96 320c-17.7 0-32-14.3-32-32l0-160c0-17.7 14.3-32 32-32z\"],\n \"plane-circle-xmark\": [640, 512, [], \"e557\", \"M232 24c0-30.9 25.1-56 56-56s56 25.1 56 56l0 127.3 78 71.5c-69.3 29-118 97.4-118 177.2 0 49.3 18.6 94.3 49.1 128.3L288 512 179.9 539c-10.1 2.5-19.9-5.1-19.9-15.5l0-19.8c0-4.9 2.2-9.5 6-12.5l66-52.8 0-99.7-162.9 54.3C58.7 396.4 48 388.7 48 377.8l0-43.7c0-9 3.8-17.5 10.4-23.6L232 151.3 232 24zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm59.3 107.3c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0l-36.7 36.7-36.7-36.7c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l36.7 36.7-36.7 36.7c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0l36.7-36.7 36.7 36.7c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6l-36.7-36.7 36.7-36.7z\"],\n \"retweet\": [576, 512, [], \"f079\", \"M118.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-64 64c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l32 0 0 224c0 53 43 96 96 96l128 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-128 0c-17.7 0-32-14.3-32-32l0-224 32 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-64-64zM457.4 470.6c12.5 12.5 32.8 12.5 45.3 0l64-64c9.2-9.2 11.9-22.9 6.9-34.9S556.9 352 544 352l-32 0 0-224c0-53-43-96-96-96L288 32c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32 14.3 32 32l0 224-32 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l64 64z\"],\n \"user-gear\": [640, 512, [\"user-cog\"], \"f4fe\", \"M256.5 8a120 120 0 1 1 0 240 120 120 0 1 1 0-240zM226.7 304l59.4 0 1.5 0c-12.9 26.8-7.8 58.2 11.5 79.5-20.2 22.3-24.8 55.8-9.4 83.4l22.5 40.4c.9 1.6 1.9 3.2 2.9 4.7l-237 0c-16.4 0-29.7-13.3-29.7-29.7 0-98.5 79.8-178.3 178.3-178.3zm205.9-56.4c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24l0 6.1c0 18.9 24.1 32.8 40.5 23.4l5-2.9c11.6-6.7 26.5-2.6 33 9.1l22.4 40.2c6.2 11.2 2.6 25.2-8.2 32l-4.7 2.9c-16.2 10.1-16.2 39.9 0 50.1l4.6 2.9c10.8 6.8 14.5 20.8 8.3 32L607 483.8c-6.5 11.7-21.4 15.9-33 9.1l-4.9-2.9c-16.4-9.5-40.5 4.5-40.5 23.4l0 6.1c0 13.3-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24l0-5.9c0-19-24.2-33-40.7-23.5l-4.8 2.8c-11.6 6.7-26.4 2.6-33-9.1l-22.6-40.4c-6.2-11.2-2.6-25.3 8.3-32.1l4.4-2.7c16.3-10.1 16.3-40.1 0-50.2l-4.5-2.8c-10.9-6.8-14.5-20.9-8.3-32.1l22.5-40.3c6.5-11.7 21.4-15.8 32.9-9.1l4.8 2.8c16.5 9.5 40.7-4.5 40.7-23.5l0-5.9zm99.9 136.2a52 52 0 1 0 -104 0 52 52 0 1 0 104 0z\"],\n \"border-all\": [448, 512, [], \"f84c\", \"M384 96l0 128-128 0 0-128 128 0zm0 192l0 128-128 0 0-128 128 0zM192 224l-128 0 0-128 128 0 0 128zM64 288l128 0 0 128-128 0 0-128zM64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32z\"],\n \"coins\": [512, 512, [], \"f51e\", \"M128 96l0-16c0-44.2 86-80 192-80S512 35.8 512 80l0 16c0 30.6-41.3 57.2-102 70.7-2.4-2.8-4.9-5.5-7.4-8-15.5-15.3-35.5-26.9-56.4-35.5-41.9-17.5-96.5-27.1-154.2-27.1-21.9 0-43.3 1.4-63.8 4.1-.2-1.3-.2-2.7-.2-4.1zM432 353l0-46.2c15.1-3.9 29.3-8.5 42.2-13.9 13.2-5.5 26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zm0-96l0-33c0-4.5-.4-8.8-1-13 15.5-3.9 30-8.6 43.2-14.2s26.1-12.2 37.8-20.3l0 15.4c0 26.8-31.5 50.5-80 65zM0 240l0-16c0-44.2 86-80 192-80s192 35.8 192 80l0 16c0 44.2-86 80-192 80S0 284.2 0 240zm384 96c0 44.2-86 80-192 80S0 380.2 0 336l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3l0 15.4zm0 80.6l0 15.4c0 44.2-86 80-192 80S0 476.2 0 432l0-15.4c11.6 8.1 24.5 14.7 37.8 20.3 41.9 17.5 96.5 27.1 154.2 27.1s112.3-9.7 154.2-27.1c13.2-5.5 26.1-12.2 37.8-20.3z\"],\n \"mars-stroke\": [576, 512, [9894], \"f229\", \"M416-32c-17.7 0-32 14.3-32 32s14.3 32 32 32l50.7 0-58.7 58.7-17.4-17.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l17.4 17.4-23 23c-28.4-19.5-62.7-31-99.8-31-97.2 0-176 78.8-176 176s78.8 176 176 176 176-78.8 176-176c0-37-11.4-71.4-31-99.8l23-23 17.4 17.4c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L453.3 136 512 77.3 512 128c0 17.7 14.3 32 32 32s32-14.3 32-32L576 0c0-17.7-14.3-32-32-32L416-32zM128 304a112 112 0 1 1 224 0 112 112 0 1 1 -224 0z\"],\n \"handshake-angle\": [576, 512, [\"hands-helping\"], \"f4c4\", \"M268.9 53.2L152.3 182.8c-4.6 5.1-4.4 13 .5 17.9 30.5 30.5 80 30.5 110.5 0l31.8-31.8c4.2-4.2 9.5-6.5 14.9-6.9 6.8-.6 13.8 1.7 19 6.9L505.6 344 576 288 576 0 464 64 440.2 48.1C424.4 37.6 405.9 32 386.9 32l-70.4 0c-1.1 0-2.3 0-3.4 .1-16.9 .9-32.8 8.5-44.2 21.1zM116.6 150.7L223.4 32 183.8 32c-25.5 0-49.9 10.1-67.9 28.1L0 192 0 544 144 408 156.4 418.3c23 19.2 52 29.7 81.9 29.7l15.7 0-7-7c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l41 41 9 0c19.1 0 37.8-4.3 54.8-12.3L359 409c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l32 32 17.5-17.5c8.9-8.9 11.5-21.8 7.6-33.1l-137.9-136.8-14.9 14.9c-49.3 49.3-129.1 49.3-178.4 0-23-23-23.9-59.9-2.2-84z\"],\n \"arrow-down\": [384, 512, [8595], \"f063\", \"M169.4 502.6c12.5 12.5 32.8 12.5 45.3 0l160-160c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0L224 402.7 224 32c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 370.7-105.4-105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160z\"],\n \"location-dot\": [384, 512, [\"map-marker-alt\"], \"f3c5\", \"M0 188.6C0 84.4 86 0 192 0S384 84.4 384 188.6c0 119.3-120.2 262.3-170.4 316.8-11.8 12.8-31.5 12.8-43.3 0-50.2-54.5-170.4-197.5-170.4-316.8zM192 256a64 64 0 1 0 0-128 64 64 0 1 0 0 128z\"],\n \"plug-circle-exclamation\": [640, 512, [], \"e55d\", \"M192-32c17.7 0 32 14.3 32 32l0 96 128 0 0-96c0-17.7 14.3-32 32-32s32 14.3 32 32l0 96 64 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l0 48.7c-98.6 8.1-176 90.7-176 191.3 0 27.3 5.7 53.3 16 76.9l0 3.1c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-66.7C165.2 398.1 96 319.1 96 224l0-64c-17.7 0-32-14.3-32-32S78.3 96 96 96l64 0 0-96c0-17.7 14.3-32 32-32zM496 256a144 144 0 1 1 0 288 144 144 0 1 1 0-288zm0 228a20 20 0 1 0 0-40 20 20 0 1 0 0 40zm0-180c-8.8 0-16 7.2-16 16l0 80c0 8.8 7.2 16 16 16s16-7.2 16-16l0-80c0-8.8-7.2-16-16-16z\"],\n \"cookie-bite\": [512, 512, [], \"f564\", \"M257.5 27.6c-.8-5.4-4.9-9.8-10.3-10.6-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9-.9-5.3-5.3-9.3-10.6-10.1-51.5-8.2-92.8-47.1-104.5-97.4-1.8-7.6-8-13.4-15.7-14.6-54.6-8.7-97.7-52-106.2-106.8zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"screwdriver-wrench\": [576, 512, [\"tools\"], \"f7d9\", \"M70.8-6.7c5.4-5.4 13.8-6.2 20.2-2L209.9 70.5c8.9 5.9 14.2 15.9 14.2 26.6l0 49.6 90.8 90.8c33.3-15 73.9-8.9 101.2 18.5L542.2 382.1c18.7 18.7 18.7 49.1 0 67.9l-60.1 60.1c-18.7 18.7-49.1 18.7-67.9 0L288.1 384c-27.4-27.4-33.5-67.9-18.5-101.2l-90.8-90.8-49.6 0c-10.7 0-20.7-5.3-26.6-14.2L23.4 58.9c-4.2-6.3-3.4-14.8 2-20.2L70.8-6.7zm145 303.5c-6.3 36.9 2.3 75.9 26.2 107.2l-94.9 95c-28.1 28.1-73.7 28.1-101.8 0s-28.1-73.7 0-101.8l135.4-135.5 35.2 35.1zM384.1 0c20.1 0 39.4 3.7 57.1 10.5 10 3.8 11.8 16.5 4.3 24.1L388.8 91.3c-3 3-4.7 7.1-4.7 11.3l0 41.4c0 8.8 7.2 16 16 16l41.4 0c4.2 0 8.3-1.7 11.3-4.7l56.7-56.7c7.6-7.5 20.3-5.7 24.1 4.3 6.8 17.7 10.5 37 10.5 57.1 0 43.2-17.2 82.3-45 111.1l-49.1-49.1c-33.1-33-78.5-45.7-121.1-38.4l-56.8-56.8 0-29.7-.2-5c-.8-12.4-4.4-24.3-10.5-34.9 29.4-35 73.4-57.2 122.7-57.3z\"],\n \"indent\": [448, 512, [], \"f03c\", \"M0 64C0 46.3 14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 96C14.3 96 0 81.7 0 64zM192 192c0-17.7 14.3-32 32-32l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32zm32 96l192 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-192 0c-17.7 0-32-14.3-32-32s14.3-32 32-32zM0 448c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 480c-17.7 0-32-14.3-32-32zM127.8 268.6L25.8 347.9C15.3 356.1 0 348.6 0 335.3L0 176.7c0-13.3 15.3-20.8 25.8-12.6l101.9 79.3c8.2 6.4 8.2 18.9 0 25.3z\"],\n \"bars\": [448, 512, [\"navicon\"], \"f0c9\", \"M0 96C0 78.3 14.3 64 32 64l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96zM0 256c0-17.7 14.3-32 32-32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 288c-17.7 0-32-14.3-32-32zM448 416c0 17.7-14.3 32-32 32L32 448c-17.7 0-32-14.3-32-32s14.3-32 32-32l384 0c17.7 0 32 14.3 32 32z\"],\n \"hands-praying\": [640, 512, [\"praying-hands\"], \"f684\", \"M224 296c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-112.6 88.2-119.7c13.1-17.8 9.3-42.8-8.5-55.9s-42.8-9.3-55.9 8.5L106.5 142.9C89.3 166.2 80 194.5 80 223.6l0 110.7-58.1 19.4C8.8 358 0 370.2 0 384l0 96c0 10 4.7 19.5 12.7 25.5s18.4 8 28.1 5.2l154.4-44.1c55-15.7 92.8-65.9 92.8-123.1L288 224c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 72zm192 0l0-72c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 119.6c0 57.2 37.9 107.4 92.8 123.1l154.4 44.1c9.7 2.8 20 .8 28.1-5.2S640 490 640 480l0-96c0-13.8-8.8-26-21.9-30.4l-58.1-19.4 0-110.7c0-29-9.3-57.3-26.5-80.7L440.2 16.3C427.1-1.5 402.1-5.3 384.3 7.8s-21.6 38.1-8.5 55.9L464 183.4 464 296c0 13.3-10.7 24-24 24s-24-10.7-24-24z\"],\n \"viruses\": [640, 512, [], \"e076\", \"M192 0c17.7 0 32 14.3 32 32 0 30.5 36.9 45.8 58.5 24.2 12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-21.6 21.6-6.3 58.5 24.2 58.5 17.7 0 32 14.3 32 32s-14.3 32-32 32c-30.5 0-45.8 36.9-24.2 58.5 12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0c-21.6-21.6-58.5-6.3-58.5 24.2 0 17.7-14.3 32-32 32s-32-14.3-32-32c0-30.5-36.9-45.8-58.5-24.2-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3C77.8 260.9 62.5 224 32 224 14.3 224 0 209.7 0 192s14.3-32 32-32c30.5 0 45.8-36.9 24.2-58.5-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0C123.1 77.8 160 62.5 160 32 160 14.3 174.3 0 192 0zM144 176a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm128 64a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zm248 40c0 22.9 27.7 34.4 43.9 18.2 9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9c-16.2 16.2-4.7 43.9 18.2 43.9 13.3 0 24 10.7 24 24s-10.7 24-24 24c-22.9 0-34.4 27.7-18.2 43.9 9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0c-16.2-16.2-43.9-4.7-43.9 18.2 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-22.9-27.7-34.4-43.9-18.2-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9c16.2-16.2 4.7-43.9-18.2-43.9-13.3 0-24-10.7-24-24s10.7-24 24-24c22.9 0 34.4-27.7 18.2-43.9-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0c16.2 16.2 43.9 4.7 43.9-18.2 0-13.3 10.7-24 24-24s24 10.7 24 24zM504 384a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"school-flag\": [576, 512, [], \"e56e\", \"M256-8c0-13.3 10.7-24 24-24l112 0c13.3 0 24 10.7 24 24l0 48c0 13.3-10.7 24-24 24l-72 0 0 19.2 128 76.8 64 0c35.3 0 64 28.7 64 64l0 224c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 224c0-35.3 28.7-64 64-64l64 0 128-76.8 0-91.2zM240 384l0 80 96 0 0-80c0-26.5-21.5-48-48-48s-48 21.5-48 48zM112 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zM496 416c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm-224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],\n \"trademark\": [640, 512, [8482], \"f25c\", \"M346.6 110.2c-7.8-11.7-22.4-17-35.9-12.9S288 113.9 288 128l0 256c0 17.7 14.3 32 32 32s32-14.3 32-32l0-150.3 69.4 104.1c5.9 8.9 15.9 14.2 26.6 14.2s20.7-5.3 26.6-14.2L544 233.7 544 384c0 17.7 14.3 32 32 32s32-14.3 32-32l0-256c0-14.1-9.2-26.5-22.7-30.6s-28.1 1.1-35.9 12.9L448 262.3 346.6 110.2zM32 96C14.3 96 0 110.3 0 128s14.3 32 32 32l64 0 0 224c0 17.7 14.3 32 32 32s32-14.3 32-32l0-224 64 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 96z\"],\n \"fire-burner\": [512, 512, [], \"e4f1\", \"M281.7 48.3L294 34.5c5.4-6.1 13.3-8.8 20.9-8.9 7.2 0 14.3 2.6 19.9 7.8 19.7 18.3 39.8 43.2 55 70.6 15.1 27.2 26.2 58.1 26.2 88.1 0 88.7-71.3 159.8-160 159.8-89.6 0-160-71.3-160-159.8 0-37.3 16-73.4 36.8-104.5 20.9-31.3 47.5-59 70.9-80.2 5.7-5.2 13.1-7.7 20.3-7.5s13.4 3.2 18.8 7.5c14.4 11.4 38.9 40.7 38.9 40.7zM320 240.2c0-36.5-37-73-54.8-88.4-5.4-4.7-13.1-4.7-18.5 0-17.7 15.4-54.8 51.9-54.8 88.4 0 35.3 28.7 64 64 64s64-28.7 64-64zM92.8 320c37.7 48.3 96.1 80 163.2 80 66.5 0 125.1-31.7 163-80l45 0c26.5 0 48 21.5 48 48l0 64c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-64c0-26.5 21.5-48 48-48l44.8 0zM456 400a24 24 0 1 0 -48 0 24 24 0 1 0 48 0z\"],\n \"face-smile-beam\": [512, 512, [128522, \"smile-beam\"], \"f5b8\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM165.4 321.9c20.4 28 53.4 46.1 90.6 46.1s70.2-18.1 90.6-46.1c7.8-10.7 22.8-13.1 33.5-5.3s13.1 22.8 5.3 33.5C356.3 390 309.2 416 256 416s-100.3-26-129.4-65.9c-7.8-10.7-5.4-25.7 5.3-33.5s25.7-5.4 33.5 5.3zM176 180c-15.5 0-28 12.5-28 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28zm132 28l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-37.6 30.4-68 68-68s68 30.4 68 68l0 8c0 11-9 20-20 20s-20-9-20-20l0-8c0-15.5-12.5-28-28-28s-28 12.5-28 28z\"],\n \"tent-arrow-left-right\": [512, 512, [], \"e57f\", \"M-.5 113c-9.4-9.4-9.4-24.6 0-33.9l72-72c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9l-31 31 310.1 0 54.1 0-31-31c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l72 72c9.4 9.4 9.4 24.6 0 33.9l-72 72c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l31-31-102.1 0-.1 0-262 0 31 31c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0l-72-72zM37.1 476L60.3 292.6c1.2-9.7 6.8-18.3 15.1-23.3L238.8 170c10.2-6.2 22.9-6.2 33.1-.1l165.5 99.4c8.4 5 14 13.7 15.3 23.4L475.9 476c2.4 19.1-12.5 36-31.7 36l-71.9 0c-12.1 0-23.2-6.8-28.6-17.7L275.4 357.9c-1.8-3.6-5.5-5.9-9.5-5.9-5.9 0-10.6 4.7-10.6 10.6l0 117.4c0 17.7-14.3 32-32 32L68.8 512c-19.3 0-34.2-16.9-31.7-36z\"],\n \"route\": [512, 512, [], \"f4d7\", \"M512 96c0 50.2-59.1 125.1-84.6 155-3.8 4.4-9.4 6.1-14.5 5L320 256c-17.7 0-32 14.3-32 32s14.3 32 32 32l96 0c53 0 96 43 96 96s-43 96-96 96l-276.4 0c8.7-9.9 19.3-22.6 30-36.8 6.3-8.4 12.8-17.6 19-27.2L416 448c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c-53 0-96-43-96-96s43-96 96-96l39.8 0c-21-31.5-39.8-67.7-39.8-96 0-53 43-96 96-96s96 43 96 96zM117.1 489.1c-3.8 4.3-7.2 8.1-10.1 11.3l-1.8 2-.2-.2c-6 4.6-14.6 4-20-1.8-25.2-27.4-85-97.9-85-148.4 0-53 43-96 96-96s96 43 96 96c0 30-21.1 67-43.5 97.9-10.7 14.7-21.7 28-30.8 38.5l-.6 .7zM128 352a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM416 128a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"angles-up\": [384, 512, [\"angle-double-up\"], \"f102\", \"M214.6 41.4c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 109.3 329.4 246.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3l-160-160zm160 352l-160-160c-12.5-12.5-32.8-12.5-45.3 0l-160 160c-12.5 12.5-12.5 32.8 0 45.3s32.8 12.5 45.3 0L192 301.3 329.4 438.6c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3z\"],\n \"bucket\": [448, 512, [], \"e4cf\", \"M443.7 208c2.7 4.7 4.3 10.2 4.3 16 0 17.7-14.3 32-32 32l-5.1 0-22.4 213c-2.6 24.4-23.2 43-47.8 43l-233.6 0c-24.6 0-45.2-18.5-47.8-43L37.1 256 32 256c-17.7 0-32-14.3-32-32 0-5.8 1.6-11.3 4.3-16l439.4 0zM224-16c79.5 0 144 64.5 144 144l0 32-48 0 0-32c0-53-43-96-96-96s-96 43-96 96l0 32-48 0 0-32C80 48.5 144.5-16 224-16z\"],\n \"less-than-equal\": [448, 512, [], \"f537\", \"M426.1 94.4c16.8-5.6 25.8-23.7 20.2-40.5s-23.7-25.8-40.5-20.2l-384 128C8.8 166 0 178.2 0 192s8.8 26 21.9 30.4l384 128c16.8 5.6 34.9-3.5 40.5-20.2s-3.5-34.9-20.2-40.5L133.2 192 426.1 94.4zM32 416c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 416z\"],\n \"folder-closed\": [512, 512, [], \"e185\", \"M448 448L64 448c-35.3 0-64-28.7-64-64l0-176 512 0 0 176c0 35.3-28.7 64-64 64zm64-288L0 160 0 96C0 60.7 28.7 32 64 32l138.7 0c13.8 0 27.3 4.5 38.4 12.8l38.4 28.8c5.5 4.2 12.3 6.4 19.2 6.4L448 80c35.3 0 64 28.7 64 64l0 16z\"],\n \"person-through-window\": [640, 512, [], \"e5a9\", \"M64 64l224 0 0 9.8c0 39-23.7 74-59.9 88.4-60.5 24.2-100.1 82.7-100.1 147.9l0 73.8-64 0 0-320zm288 0l224 0 0 320-67.7 0-3.7-4.5-75.2-90.2c-9.1-10.9-22.6-17.3-36.9-17.3l-71.1 0-41-63.1c-.3-.5-.6-1-1-1.4 44.7-29 72.5-79 72.5-133.6l0-9.8zm73 320l-26.6 0 42.7 64 150.9 0c26.5 0 48-21.5 48-48l0-352c0-26.5-21.5-48-48-48L48 0C21.5 0 0 21.5 0 48L0 400c0 26.5 21.5 48 48 48l260.2 0 33.2 49.8c9.8 14.7 29.7 18.7 44.4 8.9s18.7-29.7 8.9-44.4l-84.2-126.2 74.6 0 40 48zm-159.5 0l-73.5 0 0-73.8c0-10.2 1.6-20.1 4.7-29.5L265.5 384zM192 128a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"school-lock\": [640, 512, [], \"e56f\", \"M0 192c0-35.3 28.7-64 64-64l64 0 127.9-115.1c18.3-16.4 46-16.4 64.2 0L448 128 512 128c33 0 60.2 25 63.6 57.2-14.7-5.9-30.8-9.2-47.6-9.2-70.7 0-128 57.3-128 128l0 24.4c-19.6 17.6-32 43.1-32 71.5l0 96c0 5.5 .5 10.9 1.3 16.1L64 512c-35.3 0-64-28.7-64-64L0 192zM332.3 341.5c-6-3.5-12.9-5.5-20.3-5.5l-48 0c-22.1 0-40 17.9-40 40l0 88 96 0 0-64.1c0-20.8 4.4-40.5 12.3-58.4zM112 384c8.8 0 16-7.2 16-16l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0zm16-144l0-32c0-8.8-7.2-16-16-16l-32 0c-8.8 0-16 7.2-16 16l0 32c0 8.8 7.2 16 16 16l32 0c8.8 0 16-7.2 16-16zm224-48a64 64 0 1 0 -128 0 64 64 0 1 0 128 0zM560 352l0-47.9c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 47.9 64 0zm-112 2.7l0-50.6c0-44.2 35.8-80 80-80s80 35.8 80 80l0 50.6c18.6 6.6 32 24.4 32 45.3l0 96c0 26.5-21.5 48-48 48l-128 0c-26.5 0-48-21.5-48-48l0-96c0-20.9 13.4-38.7 32-45.3z\"],\n \"person-burst\": [640, 512, [], \"e53b\", \"M204 40.1c-13.3 0-24-10.7-24-24l0-48c0-13.3 10.7-24 24-24s24 10.7 24 24l0 48c0 13.3-10.7 24-24 24zM4 144.1c0-13.3 10.7-24 24-24l48 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-48 0c-13.3 0-24-10.7-24-24zM96.5 285.5c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l33.9-33.9c9.4-9.4 24.6-9.4 33.9 0s9.4 24.6 0 33.9L96.5 285.5zM62.6 2.7c9.4-9.4 24.6-9.4 33.9 0l33.9 33.9c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L62.6 36.6c-9.4-9.4-9.4-24.6 0-33.9zM352.4-32a56 56 0 1 1 0 112 56 56 0 1 1 0-112zM478.7 299.1l-46.3-62.4 0 275.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-160c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 160c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-275.3-46.3 62.4c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95c25.2-33.9 65-53.9 107.2-53.9s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6z\"],\n \"left-long\": [576, 512, [\"long-arrow-alt-left\"], \"f30a\", \"M9.4 278.6c-12.5-12.5-12.5-32.8 0-45.3l128-128c9.2-9.2 22.9-11.9 34.9-6.9S192 115.1 192 128l0 64 336 0c26.5 0 48 21.5 48 48l0 32c0 26.5-21.5 48-48 48l-336 0 0 64c0 12.9-7.8 24.6-19.8 29.6s-25.7 2.2-34.9-6.9l-128-128z\"],\n \"location-crosshairs\": [576, 512, [\"location\"], \"f601\", \"M288-16c17.7 0 32 14.3 32 32l0 18.3c98.1 14 175.7 91.6 189.7 189.7l18.3 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-18.3 0c-14 98.1-91.6 175.7-189.7 189.7l0 18.3c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-18.3C157.9 463.7 80.3 386.1 66.3 288L48 288c-17.7 0-32-14.3-32-32s14.3-32 32-32l18.3 0C80.3 125.9 157.9 48.3 256 34.3L256 16c0-17.7 14.3-32 32-32zM128 256a160 160 0 1 0 320 0 160 160 0 1 0 -320 0zm160-96a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\n \"person-dots-from-line\": [512, 512, [\"diagnoses\"], \"f470\", \"M184 72a72 72 0 1 1 144 0 72 72 0 1 1 -144 0zM160 299.3c-19.9 22.6-32 52.2-32 84.7l0 32-64 0 0-32c0-106 86-192 192-192s192 86 192 192l0 32-64 0 0-32c0-32.5-12.1-62.1-32-84.7l0 116.7-192 0 0-116.7zM232 384a24 24 0 1 0 0-48 24 24 0 1 0 0 48zm88-104a24 24 0 1 0 -48 0 24 24 0 1 0 48 0zM24 464l464 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L24 512c-13.3 0-24-10.7-24-24s10.7-24 24-24zM64 184a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm424 72a24 24 0 1 1 0 48 24 24 0 1 1 0-48z\"],\n \"gauge-simple-high\": [512, 512, [61668, \"tachometer\", \"tachometer-fast\"], \"f62a\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zm320 96c0-16.2-6-31.1-16-42.3l69.5-138.9c5.9-11.9 1.1-26.3-10.7-32.2s-26.3-1.1-32.2 10.7L261.1 288.2c-1.7-.1-3.4-.2-5.1-.2-35.3 0-64 28.7-64 64s28.7 64 64 64 64-28.7 64-64z\"],\n \"angles-left\": [448, 512, [171, \"angle-double-left\"], \"f100\", \"M9.4 233.4c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L77.3 256 214.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-160 160zm352-160l-160 160c-12.5 12.5-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0s12.5-32.8 0-45.3L269.3 256 406.6 118.6c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0z\"],\n \"up-down\": [512, 512, [8597, 11021, \"arrows-alt-v\"], \"f338\", \"M406.6 502.6l96-96c9.2-9.2 11.9-22.9 6.9-34.9S492.9 352 480 352l-64 0 0-320c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 320-64 0c-12.9 0-24.6 7.8-29.6 19.8s-2.2 25.7 6.9 34.9l96 96c12.5 12.5 32.8 12.5 45.3 0zM150.6 9.4c-12.5-12.5-32.8-12.5-45.3 0l-96 96c-9.2 9.2-11.9 22.9-6.9 34.9S19.1 160 32 160l64 0 0 320c0 17.7 14.3 32 32 32s32-14.3 32-32l0-320 64 0c12.9 0 24.6-7.8 29.6-19.8s2.2-25.7-6.9-34.9l-96-96z\"],\n \"battery-empty\": [640, 512, [\"battery-0\"], \"f244\", \"M112 160c-8.8 0-16 7.2-16 16l0 224c0 8.8 7.2 16 16 16l416 0c8.8 0 16-7.2 16-16l0-224c0-8.8-7.2-16-16-16l-416 0zM32 176c0-44.2 35.8-80 80-80l416 0c44.2 0 80 35.8 80 80l0 48c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 48c0 44.2-35.8 80-80 80l-416 0c-44.2 0-80-35.8-80-80l0-224z\"],\n \"keyboard\": [576, 512, [9000], \"f11c\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l448 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm16 64l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM64 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zM176 128l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zM160 240c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l224 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-224 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-176c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16zm80-80c0-8.8 7.2-16 16-16l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32zm16 80l32 0c8.8 0 16 7.2 16 16l0 32c0 8.8-7.2 16-16 16l-32 0c-8.8 0-16-7.2-16-16l0-32c0-8.8 7.2-16 16-16z\"],\n \"cookie\": [512, 512, [127850], \"f563\", \"M247.2 17c-22.1-3.1-44.6 .9-64.4 11.4l-74 39.5C89.1 78.4 73.2 94.9 63.4 115L26.7 190.6c-9.8 20.1-13 42.9-9.1 64.9l14.5 82.8c3.9 22.1 14.6 42.3 30.7 57.9l60.3 58.4c16.1 15.6 36.6 25.6 58.7 28.7l83 11.7c22.1 3.1 44.6-.9 64.4-11.4l74-39.5c19.7-10.5 35.6-27 45.4-47.2l36.7-75.5c9.8-20.1 13-42.9 9.1-64.9l-14.6-82.8c-3.9-22.1-14.6-42.3-30.7-57.9L388.9 57.5c-16.1-15.6-36.6-25.6-58.7-28.7L247.2 17zM208 144a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM144 336a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm224-64a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"stopwatch\": [448, 512, [9201], \"f2f2\", \"M168.5 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 25.3c-108 11.9-192 103.5-192 214.7 0 119.3 96.7 216 216 216s216-96.7 216-216c0-39.8-10.8-77.1-29.6-109.2l28.2-28.2c12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0l-23.4 23.4c-32.9-30.2-75.2-50.3-122-55.5l0-25.3 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-112 0zm80 184l0 104c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-104c0-13.3 10.7-24 24-24s24 10.7 24 24z\"],\n \"eject\": [448, 512, [9167], \"f052\", \"M224 32c13.5 0 26.3 5.6 35.4 15.6l176 192c12.9 14 16.2 34.3 8.6 51.8S419 320 400 320L48 320c-19 0-36.3-11.2-43.9-28.7s-4.3-37.7 8.6-51.8l176-192C197.7 37.6 210.5 32 224 32zM0 432c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48s-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48z\"],\n \"satellite-dish\": [512, 512, [128225], \"f7c0\", \"M232 0c154.6 0 280 125.4 280 280 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-128.1-103.9-232-232-232-13.3 0-24-10.7-24-24S218.7 0 232 0zM208 120c0-13.3 10.7-24 24-24 101.6 0 184 82.4 184 184 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-75.1-60.9-136-136-136-13.3 0-24-10.7-24-24zM26.4 142.7c8.8-17.9 32.4-19.9 46.5-5.8l128.5 128.5 32-32c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-32 32 128.5 128.5c14.1 14.1 12 37.6-5.8 46.5-34.2 16.9-72.6 26.4-113.3 26.4-141.4 0-256-114.6-256-256 0-40.7 9.5-79.2 26.4-113.3z\"],\n \"face-rolling-eyes\": [512, 512, [128580, \"meh-rolling-eyes\"], \"f5a5\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM192 352l128 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-128 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm32-128c0 35.3-28.7 64-64 64s-64-28.7-64-64c0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4zm128 64c-35.3 0-64-28.7-64-64 0-26 15.5-48.4 37.8-58.4-3.7 5.2-5.8 11.6-5.8 18.4 0 17.7 14.3 32 32 32s32-14.3 32-32c0-6.9-2.2-13.2-5.8-18.4 22.3 10 37.8 32.4 37.8 58.4 0 35.3-28.7 64-64 64z\"],\n \"list-check\": [512, 512, [\"tasks\"], \"f0ae\", \"M133.8 36.3c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 158 47 153L7 113C-2.3 103.6-2.3 88.4 7 79S31.6 69.7 41 79l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zm0 160c10.9 7.6 13.5 22.6 5.9 33.4l-56 80c-4.1 5.8-10.5 9.5-17.6 10.1S52 318 47 313L7 273c-9.4-9.4-9.4-24.6 0-33.9s24.6-9.4 33.9 0l19.8 19.8 39.6-56.6c7.6-10.9 22.6-13.5 33.4-5.9zM224 96c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zm0 160c0-17.7 14.3-32 32-32l224 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-224 0c-17.7 0-32-14.3-32-32zM160 416c0-17.7 14.3-32 32-32l288 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-288 0c-17.7 0-32-14.3-32-32zM64 376a40 40 0 1 1 0 80 40 40 0 1 1 0-80z\"],\n \"sack-xmark\": [512, 512, [], \"e56a\", \"M328 112l-144 0-37.3-74.5c-1.8-3.6-2.7-7.6-2.7-11.6 0-14.3 11.6-25.9 25.9-25.9L342.1 0c14.3 0 25.9 11.6 25.9 25.9 0 4-.9 8-2.7 11.6L328 112zM169.6 160l172.8 0 48.7 40.6C457.6 256 496 338 496 424.5 496 472.8 456.8 512 408.5 512l-305.1 0C55.2 512 16 472.8 16 424.5 16 338 54.4 256 120.9 200.6L169.6 160zM323.9 284.1c-9.4-9.4-24.6-9.4-33.9 0l-33.9 33.9-33.9-33.9c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l33.9 33.9-33.9 33.9c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l33.9-33.9 33.9 33.9c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-33.9-33.9 33.9-33.9c9.4-9.4 9.4-24.6 0-33.9z\"],\n \"hashtag\": [512, 512, [62098], \"23\", \"M214.7 .7c17.3 3.7 28.3 20.7 24.6 38l-19.1 89.3 126.5 0 22-102.7C372.4 8 389.4-3 406.7 .7s28.3 20.7 24.6 38L412.2 128 480 128c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-27.4 128 67.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-81.6 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38l19.1-89.3-126.5 0-22 102.7c-3.7 17.3-20.7 28.3-38 24.6s-28.3-20.7-24.6-38L99.8 384 32 384c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 27.4-128-67.8 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l81.6 0 22-102.7C180.4 8 197.4-3 214.7 .7zM206.4 192l-27.4 128 126.5 0 27.4-128-126.5 0z\"],\n \"train\": [384, 512, [128646], \"f238\", \"M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32L96 96c-17.7 0-32 14.3-32 32zM192 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"gamepad\": [640, 512, [], \"f11b\", \"M448 64c106 0 192 86 192 192S554 448 448 448l-256 0C86 448 0 362 0 256S86 64 192 64l256 0zM192 176c-13.3 0-24 10.7-24 24l0 32-32 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l32 0 0 32c0 13.3 10.7 24 24 24s24-10.7 24-24l0-32 32 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-32 0 0-32c0-13.3-10.7-24-24-24zm240 96a32 32 0 1 0 0 64 32 32 0 1 0 0-64zm64-96a32 32 0 1 0 0 64 32 32 0 1 0 0-64z\"],\n \"file-export\": [576, 512, [\"arrow-right-from-file\"], \"f56e\", \"M96.5 0c-35.3 0-64 28.7-64 64l0 384c0 35.3 28.7 64 64 64l256 0c35.3 0 64-28.7 64-64l0-96 78.1 0-31 31c-9.4 9.4-9.4 24.6 0 33.9s24.6 9.4 33.9 0l72-72c9.4-9.4 9.4-24.6 0-33.9l-72-72c-9.4-9.4-24.6-9.4-33.9 0s-9.4 24.6 0 33.9l31 31-78.1 0 0-133.5c0-17-6.7-33.3-18.7-45.3L291.2 18.7C279.2 6.7 263 0 246 0L96.5 0zM358 176l-93.5 0c-13.3 0-24-10.7-24-24L240.5 58.5 358 176zM224.5 328c0-13.3 10.7-24 24-24l104 0 0 48-104 0c-13.3 0-24-10.7-24-24z\"],\n \"face-grimace\": [512, 512, [128556, \"grimace\"], \"f57f\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM400 352c0 25.2-19.4 45.8-44 47.8l0-95.7c24.6 2 44 22.7 44 47.8zM276 304l40 0 0 96-40 0 0-96zm-80 96l0-96 40 0 0 96-40 0zm-40-95.8l0 95.7c-24.6-2-44-22.7-44-47.8s19.4-45.8 44-47.8zM144 208a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"train-subway\": [384, 512, [\"subway\"], \"f239\", \"M0 96C0 43 43 0 96 0L288 0c53 0 96 43 96 96l0 256c0 40.1-24.6 74.5-59.5 88.8l53.9 63.7c8.6 10.1 7.3 25.3-2.8 33.8s-25.3 7.3-33.8-2.8l-74-87.5-151.3 0-74 87.5c-8.6 10.1-23.7 11.4-33.8 2.8s-11.4-23.7-2.8-33.8l53.9-63.7C24.6 426.5 0 392.1 0 352L0 96zm64 32l0 96c0 17.7 14.3 32 32 32l72 0 0-160-72 0c-17.7 0-32 14.3-32 32zM216 256l72 0c17.7 0 32-14.3 32-32l0-96c0-17.7-14.3-32-32-32l-72 0 0 160zM96 384a32 32 0 1 0 0-64 32 32 0 1 0 0 64zm224-32a32 32 0 1 0 -64 0 32 32 0 1 0 64 0z\"],\n \"circle-dot\": [512, 512, [128280, \"dot-circle\"], \"f192\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zm0-352a96 96 0 1 1 0 192 96 96 0 1 1 0-192z\"],\n \"object-group\": [576, 512, [], \"f247\", \"M32 119.4C12.9 108.4 0 87.7 0 64 0 28.7 28.7 0 64 0 87.7 0 108.4 12.9 119.4 32l337.1 0c11.1-19.1 31.7-32 55.4-32 35.3 0 64 28.7 64 64 0 23.7-12.9 44.4-32 55.4l0 273.1c19.1 11.1 32 31.7 32 55.4 0 35.3-28.7 64-64 64-23.7 0-44.4-12.9-55.4-32l-337.1 0c-11.1 19.1-31.7 32-55.4 32-35.3 0-64-28.7-64-64 0-23.7 12.9-44.4 32-55.4l0-273.1zm448 0c-9.7-5.6-17.8-13.7-23.4-23.4L119.4 96c-5.6 9.7-13.7 17.8-23.4 23.4l0 273.1c9.7 5.6 17.8 13.7 23.4 23.4l337.1 0c5.6-9.7 13.7-17.8 23.4-23.4l0-273.1zM144 176c0-17.7 14.3-32 32-32l112 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-64zM256 320l32 0c44.2 0 80-35.8 80-80l32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l-112 0c-17.7 0-32-14.3-32-32l0-16z\"],\n \"ship\": [640, 512, [128674], \"f21a\", \"M272 0c-26.5 0-48 21.5-48 48l0 16-16 0c-44.2 0-80 35.8-80 80l0 108.8-21.6 8.6c-14.8 5.9-22.5 22.4-17.4 37.5 10.4 31.3 26.8 59.3 47.7 83.1 20.1-9.2 41.7-13.9 63.3-14 33.1-.2 66.3 10.2 94.4 31.4l1.6 1.2 0-215-104 41.6 0-83.2c0-8.8 7.2-16 16-16l224 0c8.8 0 16 7.2 16 16l0 83.2-104-41.6 0 215 1.6-1.2c27.5-20.7 59.9-31.2 92.4-31.4 22.3-.1 44.6 4.5 65.3 14 20.9-23.7 37.3-51.8 47.7-83.1 5-15.2-2.6-31.6-17.4-37.5L512 252.8 512 144c0-44.2-35.8-80-80-80l-16 0 0-16c0-26.5-21.5-48-48-48L272 0zM403.4 476.1c21.3-16.1 49.9-16.1 71.2 0 19 14.4 41.9 28.2 67.2 33.3 26.5 5.4 54.3 .8 80.7-19.1 10.6-8 12.7-23 4.7-33.6s-23-12.7-33.6-4.7c-14.9 11.2-28.6 13.1-42.3 10.3-14.9-3-30.9-11.9-47.8-24.6-38.4-29-90.5-29-129 0-24 18.1-40.7 26.3-54.5 26.3s-30.5-8.2-54.5-26.3c-38.4-29-90.5-29-129 0-21.6 16.3-41.3 25.8-58.9 25.7-9.6-.1-19.9-3-31.2-11.5-10.6-8-25.6-5.9-33.6 4.7S7 482.3 17.6 490.3c19.1 14.4 39.4 21 59.8 21.1 33.9 .2 64.3-17.4 88.1-35.3 21.3-16.1 49.9-16.1 71.2 0 24.2 18.3 52.3 35.9 83.4 35.9s59.1-17.7 83.4-35.9z\"],\n \"c\": [384, 512, [99], \"43\", \"M329.1 142.9c-62.5-62.5-155.8-62.5-218.3 0s-62.5 163.8 0 226.3 155.8 62.5 218.3 0c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3c-87.5 87.5-221.3 87.5-308.8 0s-87.5-229.3 0-316.8 221.3-87.5 308.8 0c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0z\"],\n \"square-phone\": [448, 512, [\"phone-square\"], \"f098\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zm88 96.7c9.8-2.7 20.1 2.4 24 11.8l20.3 48.7c3.4 8.3 1.1 17.8-5.9 23.5l-22.1 18c16.2 35.8 44.5 65 79.6 82.4l19.3-23.6c5.7-6.9 15.2-9.3 23.5-5.9l48.7 20.3c9.4 3.9 14.4 14.2 11.8 24l-.8 2.8c-8.8 32.3-40.1 59.9-78.2 51.8-87.5-18.5-156.3-87.4-174.9-174.9-8.1-38.1 19.5-69.4 51.8-78.2l2.8-.8z\"],\n \"ruler-combined\": [448, 512, [], \"f546\", \"M1 441.7C5.5 463.5 24.8 480 48 480l352 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-48 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-64 0 0 72c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-72-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-64-72 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0 0-48c0-26.5-21.5-48-48-48L48 32C21.5 32 0 53.5 0 80L0 432c0 3.3 .3 6.6 1 9.7z\"],\n \"arrows-rotate\": [512, 512, [128472, \"refresh\", \"sync\"], \"f021\", \"M65.9 228.5c13.3-93 93.4-164.5 190.1-164.5 53 0 101 21.5 135.8 56.2 .2 .2 .4 .4 .6 .6l7.6 7.2-47.9 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l128 0c17.7 0 32-14.3 32-32l0-128c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.4-11.3-10.7C390.5 28.6 326.5 0 256 0 127 0 20.3 95.4 2.6 219.5 .1 237 12.2 253.2 29.7 255.7s33.7-9.7 36.2-27.1zm443.5 64c2.5-17.5-9.7-33.7-27.1-36.2s-33.7 9.7-36.2 27.1c-13.3 93-93.4 164.5-190.1 164.5-53 0-101-21.5-135.8-56.2-.2-.2-.4-.4-.6-.6l-7.6-7.2 47.9 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320c-8.5 0-16.7 3.4-22.7 9.5S-.1 343.7 0 352.3l1 127c.1 17.7 14.6 31.9 32.3 31.7S65.2 496.4 65 478.7l-.4-51.5 10.7 10.1c46.3 46.1 110.2 74.7 180.7 74.7 129 0 235.7-95.4 253.4-219.5z\"],\n \"person-dress\": [384, 512, [\"female\"], \"f182\", \"M136 24a56 56 0 1 1 112 0 56 56 0 1 1 -112 0zM112 384l-25.8 0c-10.9 0-18.6-10.7-15.2-21.1l43-129-48.3 65.1c-10.5 14.2-30.6 17.2-44.8 6.6s-17.2-30.6-6.6-44.8l70.5-95C110 132 149.7 112 192 112s82 20 107.2 53.9l70.5 95c10.5 14.2 7.6 34.2-6.6 44.8s-34.2 7.6-44.8-6.6L270 234 313 362.9c3.5 10.4-4.3 21.1-15.2 21.1l-25.8 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128-32 0 0 128c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-128z\"],\n \"book-open\": [512, 512, [128214, 128366], \"f518\", \"M256 141.3l0 309.3 .5-.2C311.1 427.7 369.7 416 428.8 416l19.2 0 0-320-19.2 0c-42.2 0-84.1 8.4-123.1 24.6-16.8 7-33.4 13.9-49.7 20.7zM230.9 61.5L256 72 281.1 61.5C327.9 42 378.1 32 428.8 32L464 32c26.5 0 48 21.5 48 48l0 352c0 26.5-21.5 48-48 48l-35.2 0c-50.7 0-100.9 10-147.7 29.5l-12.8 5.3c-7.9 3.3-16.7 3.3-24.6 0l-12.8-5.3C184.1 490 133.9 480 83.2 480L48 480c-26.5 0-48-21.5-48-48L0 80C0 53.5 21.5 32 48 32l35.2 0c50.7 0 100.9 10 147.7 29.5z\"],\n \"folder-tree\": [576, 512, [], \"f802\", \"M48 24C48 10.7 37.3 0 24 0S0 10.7 0 24L0 392c0 30.9 25.1 56 56 56l184 0 0-48-184 0c-4.4 0-8-3.6-8-8l0-232 192 0 0-48-192 0 0-88zM336 224l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 0c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48zm0 288l192 0c26.5 0 48-21.5 48-48l0-96c0-26.5-21.5-48-48-48l-82.7 0c-8.5 0-16.6-3.4-22.6-9.4l-8.6-8.6c-9-9-21.2-14.1-33.9-14.1L336 288c-26.5 0-48 21.5-48 48l0 128c0 26.5 21.5 48 48 48z\"],\n \"box-archive\": [512, 512, [\"archive\"], \"f187\", \"M0 64C0 46.3 14.3 32 32 32l448 0c17.7 0 32 14.3 32 32l0 32c0 17.7-14.3 32-32 32L32 128C14.3 128 0 113.7 0 96L0 64zM32 176l448 0 0 240c0 35.3-28.7 64-64 64L96 480c-35.3 0-64-28.7-64-64l0-240zm152 64c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"tent-arrow-down-to-line\": [576, 512, [], \"e57e\", \"M185 121c9.4-9.4 9.4-24.6 0-33.9s-24.6-9.4-33.9 0l-31 31 0-102.1C120 2.7 109.3-8 96-8S72 2.7 72 16l0 102.1-31-31C31.6 77.7 16.4 77.7 7 87S-2.3 111.6 7 121l72 72c9.4 9.4 24.6 9.4 33.9 0l72-72zM155.8 260.6L132.1 448 32 448c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32 0-2.8-.4-5.5-1-8L548.2 260.7c-1.2-9.7-6.9-18.4-15.3-23.4L367.4 137.9c-10.2-6.1-22.9-6.1-33.1 .1L170.9 237.3c-8.3 5.1-13.9 13.7-15.1 23.3zM448 448l-97.1 0 0-149.4c0-5.9 4.7-10.6 10.6-10.6 4 0 7.7 2.3 9.5 5.9L448 448z\"],\n \"qrcode\": [448, 512, [], \"f029\", \"M64 160l64 0 0-64-64 0 0 64zM0 80C0 53.5 21.5 32 48 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48L0 80zM64 416l64 0 0-64-64 0 0 64zM0 336c0-26.5 21.5-48 48-48l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96zM320 96l0 64 64 0 0-64-64 0zM304 32l96 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48l-96 0c-26.5 0-48-21.5-48-48l0-96c0-26.5 21.5-48 48-48zM288 352a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm0 64c17.7 0 32 14.3 32 32s-14.3 32-32 32-32-14.3-32-32 14.3-32 32-32zm96 32c0-17.7 14.3-32 32-32s32 14.3 32 32-14.3 32-32 32-32-14.3-32-32zm32-96a32 32 0 1 1 0-64 32 32 0 1 1 0 64zm-32 32a32 32 0 1 1 -64 0 32 32 0 1 1 64 0z\"],\n \"dragon\": [640, 512, [128009], \"f6d5\", \"M352 124.5l-51.9-13c-6.5-1.6-11.3-7.1-12-13.8s2.8-13.1 8.7-16.1l40.8-20.4-43.3-32.5c-5.5-4.1-7.8-11.3-5.6-17.9S297.1 0 304 0L464 0c30.2 0 58.7 14.2 76.8 38.4l57.6 76.8c6.2 8.3 9.6 18.4 9.6 28.8 0 26.5-21.5 48-48 48l-21.5 0c-17 0-33.3-6.7-45.3-18.7l-13.3-13.3-32 0 0 21.5c0 24.8 12.8 47.9 33.8 61.1l106.6 66.6c32.1 20.1 51.6 55.2 51.6 93.1 0 60.6-49.1 109.8-109.8 109.8L32.3 512c-3.3 0-6.6-.4-9.6-1.4-9.2-2.8-16.7-9.6-20.4-18.6-1.3-3.3-2.2-6.9-2.3-10.7-.2-3.7 .3-7.3 1.3-10.7 2.8-9.2 9.6-16.7 18.6-20.4 3-1.2 6.2-2 9.5-2.2L433.3 412c8.3-.7 14.7-7.7 14.7-16.1 0-4.3-1.7-8.4-4.7-11.4l-44.4-44.4c-30-30-46.9-70.7-46.9-113.1l0-102.5zM512 72.3c0-.1 0-.2 0-.3s0-.2 0-.3l0 .6zm-1.3 7.4L464.3 68.1c-.2 1.3-.3 2.6-.3 3.9 0 13.3 10.7 24 24 24 10.6 0 19.5-6.8 22.7-16.3zM130.9 116.5c16.3-14.5 40.4-16.2 58.5-4.1l130.6 87 0 27.5c0 32.8 8.4 64.8 24 93l-232 0c-6.7 0-12.7-4.2-15-10.4s-.5-13.3 4.6-17.7L171 232.3 18.4 255.8c-7 1.1-13.9-2.6-16.9-9S.1 232.8 5.4 228L130.9 116.5z\"],\n \"hourglass-end\": [384, 512, [8987, \"hourglass-3\"], \"f253\", \"M32 0C14.3 0 0 14.3 0 32S14.3 64 32 64l0 11c0 42.4 16.9 83.1 46.9 113.1l67.9 67.9-67.9 67.9C48.9 353.9 32 394.6 32 437l0 11c-17.7 0-32 14.3-32 32s14.3 32 32 32l320 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l0-11c0-42.4-16.9-83.1-46.9-113.1l-67.9-67.9 67.9-67.9c30-30 46.9-70.7 46.9-113.1l0-11c17.7 0 32-14.3 32-32S369.7 0 352 0L32 0zM96 75l0-11 192 0 0 11c0 25.5-10.1 49.9-28.1 67.9l-67.9 67.9-67.9-67.9C106.1 124.9 96 100.4 96 75z\"],\n \"grip\": [512, 512, [58119, \"grid-horizontal\", \"grip-horizontal\"], \"f58d\", \"M88 96c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM280 224l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm192 0l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zm0 192l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40zM280 288c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0zM88 416l-48 0c-22.1 0-40-17.9-40-40l0-48c0-22.1 17.9-40 40-40l48 0c22.1 0 40 17.9 40 40l0 48c0 22.1-17.9 40-40 40z\"],\n \"border-top-left\": [448, 512, [\"border-style\"], \"f853\", \"M0 448c0 17.7 14.3 32 32 32s32-14.3 32-32l0-352 352 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L64 32C28.7 32 0 60.7 0 96L0 448zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm128 0c0 17.7 14.3 32 32 32s32-14.3 32-32-14.3-32-32-32-32 14.3-32 32zm160 32c17.7 0 32-14.3 32-32s-14.3-32-32-32-32 14.3-32 32 14.3 32 32 32zM384 192a32 32 0 1 0 64 0 32 32 0 1 0 -64 0zm32 160a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"list-ul\": [512, 512, [\"list-dots\"], \"f0ca\", \"M48 144a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zm0 160c-17.7 0-32 14.3-32 32s14.3 32 32 32l288 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-288 0zM48 464a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM96 256a48 48 0 1 0 -96 0 48 48 0 1 0 96 0z\"],\n \"people-robbery\": [576, 512, [], \"e536\", \"M488.2 59.1C478.1 99.6 441.7 128 400 128s-78.1-28.4-88.2-68.9L303 24.2C298.8 7.1 281.4-3.3 264.2 1S236.7 22.6 241 39.8l8.7 34.9c11 44 40.2 79.6 78.3 99.6L328 480c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-305.7c38.1-20 67.3-55.6 78.3-99.6L559 39.8c4.3-17.1-6.1-34.5-23.3-38.8S501.2 7.1 497 24.2l-8.7 34.9zM400 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zM80 96a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm-8 32c-35.3 0-64 28.7-64 64l0 96 0 .6 0 191.4c0 17.7 14.3 32 32 32s32-14.3 32-32l0-128 16 0 0 128c0 17.7 14.3 32 32 32s32-14.3 32-32l0-227.3 13 20.5c5.9 9.2 16.1 14.9 27 14.9l48 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-30.4 0-37.4-58.9C157.6 142 132.1 128 104.7 128L72 128z\"],\n \"mobile-button\": [384, 512, [], \"f10b\", \"M80 0C44.7 0 16 28.7 16 64l0 384c0 35.3 28.7 64 64 64l224 0c35.3 0 64-28.7 64-64l0-384c0-35.3-28.7-64-64-64L80 0zM192 464c-17.7 0-32-14.3-32-32s14.3-32 32-32 32 14.3 32 32-14.3 32-32 32z\"],\n \"arrow-down-a-z\": [512, 512, [\"sort-alpha-asc\", \"sort-alpha-down\"], \"f15d\", \"M230.6 390.6l-80 80c-12.5 12.5-32.8 12.5-45.3 0l-80-80c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0L96 370.7 96 64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 306.7 25.4-25.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3zm182-340.9c50.7 101.3 77.3 154.7 80 160 7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-7.2-14.3-88.4 0-7.2 14.3c-7.9 15.8-27.1 22.2-42.9 14.3s-22.2-27.1-14.3-42.9c2.7-5.3 29.3-58.7 80-160 5.4-10.8 16.5-17.7 28.6-17.7s23.2 6.8 28.6 17.7zM384 135.6l-20.2 40.4 40.4 0-20.2-40.4zM288 320c0-17.7 14.3-32 32-32l128 0c12.9 0 24.6 7.8 29.6 19.8s2.2 25.7-6.9 34.9L397.3 416 448 416c17.7 0 32 14.3 32 32s-14.3 32-32 32l-128 0c-12.9 0-24.6-7.8-29.6-19.8s-2.2-25.7 6.9-34.9l73.4-73.4-50.7 0c-17.7 0-32-14.3-32-32z\"],\n \"money-bill\": [512, 512, [], \"f0d6\", \"M64 64C28.7 64 0 92.7 0 128L0 384c0 35.3 28.7 64 64 64l384 0c35.3 0 64-28.7 64-64l0-256c0-35.3-28.7-64-64-64L64 64zm192 96a96 96 0 1 1 0 192 96 96 0 1 1 0-192zm192 24c0 4.4-3.6 8.1-8 7.5-29-3.6-51.9-26.6-55.5-55.5-.5-4.4 3.1-8 7.5-8l48 0c4.4 0 8 3.6 8 8l0 48zM64 328c0-4.4 3.6-8.1 8-7.5 29 3.6 51.9 26.6 55.5 55.5 .5 4.4-3.1 8-7.5 8l-48 0c-4.4 0-8-3.6-8-8l0-48zm8-136.5c-4.4 .5-8-3.1-8-7.5l0-48c0-4.4 3.6-8 8-8l48 0c4.4 0 8.1 3.6 7.5 8-3.6 29-26.6 51.9-55.5 55.5zm368 129c4.4-.5 8 3.1 8 7.5l0 48c0 4.4-3.6 8-8 8l-48 0c-4.4 0-8.1-3.6-7.5-8 3.6-29 26.6-51.9 55.5-55.5z\"],\n \"circle-minus\": [512, 512, [\"minus-circle\"], \"f056\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM168 232l176 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-176 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"arrow-pointer\": [448, 512, [\"mouse-pointer\"], \"f245\", \"M77.3 2.5c8.1-4.1 17.9-3.2 25.1 2.3l320 239.9c8.3 6.2 11.6 17 8.4 26.8s-12.4 16.4-22.8 16.4l-152.3 0 88.9 177.7c7.9 15.8 1.5 35-14.3 42.9s-35 1.5-42.9-14.3l-88.9-177.7-91.3 121.8c-6.2 8.3-17 11.6-26.8 8.4S64 434.3 64 424L64 24c0-9.1 5.1-17.4 13.3-21.5z\"],\n \"square-share-nodes\": [448, 512, [\"share-alt-square\"], \"f1e1\", \"M64 32C28.7 32 0 60.7 0 96L0 416c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-320c0-35.3-28.7-64-64-64L64 32zM368 160c0 35.3-28.7 64-64 64-15.4 0-29.5-5.4-40.6-14.5l-85.3 46.5 85.3 46.5c11-9.1 25.2-14.5 40.6-14.5 35.3 0 64 28.7 64 64s-28.7 64-64 64-64-28.7-64-64c0-2.5 .1-4.9 .4-7.3L158.5 300c-11.7 12.3-28.2 20-46.5 20-35.3 0-64-28.7-64-64s28.7-64 64-64c18.3 0 34.8 7.7 46.5 20l81.9-44.7c-.3-2.4-.4-4.9-.4-7.3 0-35.3 28.7-64 64-64s64 28.7 64 64z\"],\n \"table-cells-large\": [448, 512, [\"th-large\"], \"f009\", \"M384 96l-128 0 0 128 128 0 0-128zm64 128l0 192c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l320 0c35.3 0 64 28.7 64 64l0 128zM64 288l0 128 128 0 0-128-128 0zm128-64l0-128-128 0 0 128 128 0zm64 64l0 128 128 0 0-128-128 0z\"],\n \"cat\": [576, 512, [128008], \"f6be\", \"M64 96c53 0 96 43 96 96l0 85.8c29.7-44.7 77.8-76.2 133.4-84 25.6 60 85.2 102.1 154.6 102.1 10.9 0 21.6-1.1 32-3.1L480 480c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-140.8-136 108.8 56 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-144 0c-53 0-96-43-96-96l0-224c0-16.6-12.6-30.2-28.7-31.8l-6.6-.3C44.6 158.2 32 144.6 32 128 32 110.3 46.3 96 64 96zM533.8 3.2C544.2-5.5 560 1.9 560 15.5L560 128c0 61.9-50.1 112-112 112S336 189.9 336 128l0-112.5c0-13.6 15.8-21 26.2-12.3L416 48 480 48 533.8 3.2zM400 108a20 20 0 1 0 0 40 20 20 0 1 0 0-40zm96 0a20 20 0 1 0 0 40 20 20 0 1 0 0-40z\"],\n \"calendar-week\": [448, 512, [], \"f784\", \"M128 0c17.7 0 32 14.3 32 32l0 32 128 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 32 0c35.3 0 64 28.7 64 64l0 288c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l32 0 0-32c0-17.7 14.3-32 32-32zm0 256c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l192 0c17.7 0 32-14.3 32-32l0-64c0-17.7-14.3-32-32-32l-192 0z\"],\n \"code-compare\": [512, 512, [], \"e13a\", \"M198.8 1.8c9-3.7 19.3-1.7 26.2 5.2l56 56c9.4 9.4 9.4 24.6 0 33.9l-56 56c-6.9 6.9-17.2 8.9-26.2 5.2S184 145.7 184 136l0-24-24 0c-17.7 0-32 14.3-32 32l0 214.7c28.3 12.3 48 40.5 48 73.3 0 44.2-35.8 80-80 80s-80-35.8-80-80c0-32.8 19.7-61 48-73.3L64 144c0-53 43-96 96-96l24 0 0-24c0-9.7 5.8-18.5 14.8-22.2zM392 80a24 24 0 1 0 48 0 24 24 0 1 0 -48 0zm-8 73.3c-28.3-12.3-48-40.5-48-73.3 0-44.2 35.8-80 80-80s80 35.8 80 80c0 32.8-19.7 61-48 73.3L448 368c0 53-43 96-96 96l-24 0 0 24c0 9.7-5.8 18.5-14.8 22.2s-19.3 1.7-26.2-5.2l-56-56c-9.4-9.4-9.4-24.6 0-33.9l56-56c6.9-6.9 17.2-8.9 26.2-5.2S328 366.3 328 376l0 24 24 0c17.7 0 32-14.3 32-32l0-214.7zM72 432a24 24 0 1 0 48 0 24 24 0 1 0 -48 0z\"],\n \"road-circle-xmark\": [640, 512, [], \"e566\", \"M287.9 32l-76.2 0c-29.4 0-55.1 20.1-62.1 48.6L65.4 420.5C57.9 450.7 80.8 480 112 480l209.4 0c-11.2-24.4-17.4-51.4-17.4-80 0-28.6 6.2-55.7 17.4-80-.5 0-1 0-1.6 0-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32s32 14.3 32 32l0 49.2c35.2-40 86.7-65.2 144.2-65.2 9 0 17.8 .6 26.4 1.8l-32-129.2C483.4 52.1 457.8 32 428.3 32l-76.5 0 0 64c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-64zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"pallet\": [576, 512, [], \"f482\", \"M32 320c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 64-32 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l512 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-32 0 0-64 32 0c17.7 0 32-14.3 32-32s-14.3-32-32-32L32 320zm96 64l128 0 0 64-128 0 0-64zm192 0l128 0 0 64-128 0 0-64z\"],\n \"cake-candles\": [448, 512, [127874, \"birthday-cake\", \"cake\"], \"f1fd\", \"M86.4-10.5L61.8 31.6C58 38.1 56 45.6 56 53.2L56 56c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L105.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zm128 0L189.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L233.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5zM317.8 31.6c-3.8 6.5-5.8 14-5.8 21.6l0 2.8c0 22.1 17.9 40 40 40s40-17.9 40-40l0-2.8c0-7.6-2-15-5.8-21.6L361.6-10.5c-2-3.4-5.7-5.5-9.6-5.5s-7.6 2.1-9.6 5.5L317.8 31.6zM128 160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 53.5C26.7 226.6 0 262.2 0 304l0 20.8c20.9 1.3 41.6 7.3 60.3 18l7.1 4.1c26.3 15 58.9 13.4 83.6-4.2 43.7-31.2 102.3-31.2 146 0 24.6 17.6 57.3 19.3 83.6 4.2l7.1-4.1c18.7-10.7 39.3-16.7 60.3-18l0-20.8c0-41.8-26.7-77.4-64-90.5l0-53.5c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 48-64 0 0-48zM448 373c-12.7 1.2-25.1 5-36.5 11.5l-7.1 4.1c-42.6 24.3-95.4 21.7-135.3-6.8-27-19.3-63.2-19.3-90.2 0-39.9 28.5-92.7 31.2-135.3 6.8l-7.1-4.1C25.1 378 12.7 374.1 0 373l0 75c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-75z\"],\n \"bug-slash\": [576, 512, [], \"e490\", \"M7-24.9c9.4-9.4 24.6-9.4 33.9 0L241.8 176 344 176c14.2 0 27.7 2.8 40 8l108.8-81.6c14.1-10.6 34.2-7.7 44.8 6.4s7.7 34.2-6.4 44.8l-97.8 73.3c5.3 8.9 9.3 18.7 11.8 29.1l98.8 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-96 0 0 32c0 9.5-.8 18.7-2.4 27.8L569 503.1c9.4 9.4 9.4 24.6 0 33.9s-24.6 9.4-33.9 0L7 9.1C-2.3-.3-2.3-15.5 7-24.9zM398.2 468c-23.2 22.1-53 37.2-86.2 42.2l0-128.4 86.2 86.2zM264 333.8l0 176.4c-51.2-7.7-94.5-39.7-117.7-83.9L83.2 473.6c-14.1 10.6-34.2 7.7-44.8-6.4s-7.7-34.2 6.4-44.8l83.4-62.5c-.1-2.6-.2-5.2-.2-7.9l0-32-96 0c-17.7 0-32-14.3-32-32s14.3-32 32-32l98.8 0c3.3-13.9 9.3-26.7 17.6-37.8L264 333.8zM355.6 128l-82.4 0-72.3-72.3C216.1 22.8 249.4 0 288 0 341 0 384 43 384 96l0 3.6c0 15.7-12.7 28.4-28.4 28.4z\"],\n \"tarp\": [512, 512, [], \"e57b\", \"M448 64c35.3 0 64 28.7 64 64l0 149.5c0 17-6.7 33.3-18.7 45.3L386.7 429.3c-12 12-28.3 18.7-45.3 18.7L64 448c-35.3 0-64-28.7-64-64L0 128C0 92.7 28.7 64 64 64l384 0zm5.5 208L360 272c-13.3 0-24 10.7-24 24l0 93.5 117.5-117.5zM96 192a32 32 0 1 0 0-64 32 32 0 1 0 0 64z\"],\n \"diagram-predecessor\": [448, 512, [], \"e477\", \"M289.2 137.9c2.5-6 8.3-9.9 14.8-9.9l40 0 0-24c0-13.3-10.7-24-24-24l-98 0c1.3 5.1 2 10.5 2 16l0 64c0 35.3-28.7 64-64 64l-96 0c-35.3 0-64-28.7-64-64L0 96C0 60.7 28.7 32 64 32l256 0c39.8 0 72 32.2 72 72l0 24 40 0c6.5 0 12.3 3.9 14.8 9.9s1.1 12.9-3.5 17.4l-64 64c-6.2 6.2-16.4 6.2-22.6 0l-64-64c-4.6-4.6-5.9-11.5-3.5-17.4zM384 352l-320 0 0 64 320 0 0-64zm64 64c0 35.3-28.7 64-64 64L64 480c-35.3 0-64-28.7-64-64l0-64c0-35.3 28.7-64 64-64l320 0c35.3 0 64 28.7 64 64l0 64z\"],\n \"face-flushed\": [512, 512, [128563, \"flushed\"], \"f579\", \"M0 256a256 256 0 1 1 512 0 256 256 0 1 1 -512 0zM168 392c0 13.3 10.7 24 24 24l128 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-128 0c-13.3 0-24 10.7-24 24zm-8-96a72 72 0 1 0 0-144 72 72 0 1 0 0 144zm264-72a72 72 0 1 0 -144 0 72 72 0 1 0 144 0zm-288 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0zm192 0a24 24 0 1 1 48 0 24 24 0 1 1 -48 0z\"],\n \"diagram-next\": [448, 512, [], \"e476\", \"M384 224c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64L64 32C28.7 32 0 60.7 0 96l0 64c0 35.3 28.7 64 64 64l128 0 0 64-32 0c-6.5 0-12.3 3.9-14.8 9.9s-1.1 12.9 3.5 17.4l64 64c6.2 6.2 16.4 6.2 22.6 0l64-64c4.6-4.6 5.9-11.5 3.5-17.4S294.5 288 288 288l-32 0 0-64 128 0zM64 288c-35.3 0-64 28.7-64 64l0 64c0 35.3 28.7 64 64 64l320 0c35.3 0 64-28.7 64-64l0-64c0-35.3-28.7-64-64-64l-34 0c5.6 21.7-.5 45.1-16.7 61.3l-64 64c-25 25-65.5 25-90.5 0l-64-64C98.6 333.1 92.4 309.7 98 288l-34 0z\"],\n \"anchor-circle-xmark\": [640, 512, [], \"e4ac\", \"M320.5 96a32 32 0 1 1 -64 0 32 32 0 1 1 64 0zm-32-96c-53 0-96 43-96 96 0 41.8 26.7 77.4 64 90.5l0 257.9c-62.9-14.3-110.2-69.7-111.9-136.5l16.1 14.1c10 8.7 25.1 7.7 33.9-2.3s7.7-25.1-2.3-33.9l-64-56c-9-7.9-22.6-7.9-31.6 0l-64 56c-10 8.7-11 23.9-2.3 33.9s23.9 11 33.9 2.3l16.2-14.2c2.1 113.1 94.4 204.1 208 204.1 16.6 0 32.7-1.9 48.2-5.6-20.3-30.5-32.2-67-32.2-106.4 0-27.3 5.7-53.3 16-76.9l0-136.6c37.3-13.2 64-48.7 64-90.5 0-53-43-96-96-96zm208 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm59.3-180.7l-36.7 36.7 36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6z\"],\n \"person-circle-xmark\": [640, 512, [], \"e543\", \"M280 24a56 56 0 1 0 -112 0 56 56 0 1 0 112 0zm24 212.7L341 286.6c12.8-17.5 28.5-32.7 46.3-45l-56.2-75.7C306 132 266.3 112 224 112s-82 20-107.2 53.9l-70.5 95c-10.5 14.2-7.6 34.2 6.6 44.8s34.2 7.6 44.8-6.6L144 236.7 144 512c0 17.7 14.3 32 32 32s32-14.3 32-32l0-160c0-8.8 7.2-16 16-16s16 7.2 16 16l0 160c0 17.7 14.3 32 32 32s32-14.3 32-32l0-275.3zM496 544a144 144 0 1 0 0-288 144 144 0 1 0 0 288zm22.6-144l36.7 36.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0l-36.7-36.7-36.7 36.7c-6.2 6.2-16.4 6.2-22.6 0s-6.2-16.4 0-22.6l36.7-36.7-36.7-36.7c-6.2-6.2-6.2-16.4 0-22.6s16.4-6.2 22.6 0l36.7 36.7 36.7-36.7c6.2-6.2 16.4-6.2 22.6 0s6.2 16.4 0 22.6L518.6 400z\"],\n \"spa\": [576, 512, [], \"f5bb\", \"M169.7 227.5c34.3 18.7 64.5 44.1 88.8 74.5 11.1 13.9 21 28.9 29.4 44.8 8.5-15.9 18.3-30.8 29.4-44.8 24.3-30.5 54.5-55.9 88.8-74.5 41.7-22.7 89.4-35.5 139.7-35.5l9.9 0c11.1 0 20.1 9 20.1 20.1 0 148-119.9 267.9-267.9 267.9l-40.2 0C119.9 480 0 360.1 0 212.1 0 201 9 192 20.1 192l9.9 0c50.4 0 98.1 12.8 139.7 35.5zM303.9 38c16.9 15.9 61.4 63.4 89 142.3-40.1 20.2-75.8 48.2-104.9 82.1-29.2-33.9-64.8-61.8-104.9-82.1 27.6-78.9 72.2-126.4 89-142.3 4.3-4.1 10-6 15.9-6s11.6 2 15.9 6z\"],\n \"bars-progress\": [448, 512, [\"tasks-alt\"], \"f828\", \"M288 160l96 0 0-64-96 0 0 64zM0 160L0 80C0 53.5 21.5 32 48 32l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 224c-26.5 0-48-21.5-48-48l0-16zM160 416l224 0 0-64-224 0 0 64zM0 416l0-80c0-26.5 21.5-48 48-48l352 0c26.5 0 48 21.5 48 48l0 96c0 26.5-21.5 48-48 48L48 480c-26.5 0-48-21.5-48-48l0-16z\"],\n \"heart-circle-check\": [576, 512, [], \"e4fd\", \"M241 87.1l15 20.7 15-20.7C296 52.5 336.2 32 378.9 32 452.4 32 512 91.6 512 165.1l0 2.6c0 17.6-3.4 35.6-9.5 53.7-21.8-8.6-45.6-13.4-70.5-13.4-106 0-192 86-192 192 0 28.5 6.2 55.6 17.4 80-.5 0-.9 0-1.4 0-15.5 0-30.8-4.6-43.1-14.1-73-55.7-212.9-186-212.9-298.2l0-2.6C0 91.6 59.6 32 133.1 32 175.8 32 216 52.5 241 87.1zM288 400a144 144 0 1 1 288 0 144 144 0 1 1 -288 0zm201.4-60.9c-7.1-5.2-17.2-3.6-22.4 3.5l-53 72.9-26.8-26.8c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6l40 40c3.3 3.3 7.9 5 12.6 4.6s8.9-2.8 11.7-6.5l64-88c5.2-7.1 3.6-17.2-3.5-22.3z\"],\n \"mars-stroke-right\": [640, 512, [9897, \"mars-stroke-h\"], \"f22b\", \"M320.5 256a112 112 0 1 0 -224 0 112 112 0 1 0 224 0zM208.5 80c86.3 0 158.1 62.1 173.1 144.1 1-.1 1.9-.1 2.9-.1l16 0 0-32c0-17.7 14.3-32 32-32s32 14.3 32 32l0 32 61.4 0-22.4-28c-11-13.8-8.8-33.9 5-45s33.9-8.8 45 5l64 80c9.3 11.7 9.3 28.3 0 40l-64 80c-11 13.8-31.2 16-45 5s-16-31.2-5-45l22.4-28-61.4 0 0 32c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-32-16 0c-1 0-1.9 0-2.9-.1-15 82-86.8 144.1-173.1 144.1-97.2 0-176-78.8-176-176s78.8-176 176-176z\"],\n \"tower-observation\": [448, 512, [], \"e586\", \"M209.7 3.4c9-4.5 19.6-4.5 28.6 0l160 80c15.8 7.9 22.2 27.1 14.3 42.9-5.6 11.2-16.9 17.7-28.6 17.7l0 80c0 17.7-14.3 32-32 32l-13 0 32 192 45 0c17.7 0 32 14.3 32 32s-14.3 32-32 32L32 512c-17.7 0-32-14.3-32-32s14.3-32 32-32l45 0 32-192-13 0c-17.7 0-32-14.3-32-32l0-80c-11.7 0-23-6.5-28.6-17.7-7.9-15.8-1.5-35 14.3-42.9l160-80zM310.7 448l-86.7-61.9-86.7 61.9 173.4 0zm-153-192l-3.5 21.2 69.9 49.9 69.9-49.9-3.5-21.2-132.7 0zm-12.3 73.9l-10.1 60.6 47.5-33.9-37.4-26.7zm119.9 26.7l47.5 33.9-10.1-60.6-37.4 26.7zM152 128c-13.3 0-24 10.7-24 24s10.7 24 24 24l144 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-144 0z\"],\n \"sterling-sign\": [384, 512, [163, \"gbp\", \"pound-sign\"], \"f154\", \"M91.3 288l-34.8 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l21.4 0C37.3 147.3 105.1 42 207.6 42l8.2 0c33.6 0 66.2 11.3 92.5 32.2l16.1 12.7c13.9 11 16.2 31.1 5.2 45s-31.1 16.2-45 5.2l-16.1-12.7c-15-11.9-33.6-18.4-52.8-18.4l-8.2 0c-57.3 0-94.7 59.9-69.7 111.4 3.6 7.4 6.6 14.9 9.1 22.6l149.5 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-141.2 0c1 35.3-8.7 70.6-28.9 100.9l-18.1 27.1 212.2 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-272 0c-11.8 0-22.6-6.5-28.2-16.9s-5-23 1.6-32.9l51.2-76.8c13.1-19.6 19.2-42.6 18.2-65.4z\"],\n \"faucet-drip\": [512, 512, [128688], \"e006\", \"M224 32c-17.7 0-32 14.3-32 32L96 64C78.3 64 64 78.3 64 96s14.3 32 32 32l96 0 0 64-18.7 0c-8.5 0-16.6 3.4-22.6 9.4L128 224 32 224c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l100.1 0c20.2 29 53.9 48 91.9 48s71.7-19 91.9-48l36.1 0c17.7 0 32 14.3 32 32s14.3 32 32 32l64 0c17.7 0 32-14.3 32-32 0-88.4-71.6-160-160-160l-32 0-22.6-22.6c-6-6-14.1-9.4-22.6-9.4l-18.7 0 0-64 96 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-96 0c0-17.7-14.3-32-32-32zM436.8 455.4l-18.2 42.4c-1.8 4.1-2.7 8.6-2.7 13.1l0 1.2c0 17.7 14.3 32 32 32s32-14.3 32-32l0-1.2c0-4.5-.9-8.9-2.7-13.1l-18.2-42.4c-1.9-4.5-6.3-7.4-11.2-7.4s-9.2 2.9-11.2 7.4z\"],\n \"circle-info\": [512, 512, [\"info-circle\"], \"f05a\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM224 160a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm-8 64l48 0c13.3 0 24 10.7 24 24l0 88 8 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-80 0c-13.3 0-24-10.7-24-24s10.7-24 24-24l24 0 0-64-24 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"feather\": [512, 512, [129718], \"f52d\", \"M352 0c41 0 80.3 16.3 109.2 45.2l5.5 5.5c29 29 45.3 68.3 45.3 109.2 0 24.1-5.7 47.6-16.2 68.8-1.9 3.7-5.3 6.5-9.3 7.7L374.5 270c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2l32.2 0c14.3 0 21.4 17.2 11.3 27.3l-22.4 22.4c-1.9 1.9-4.2 3.2-6.7 4l-81 24.3c-3.9 1.2-6.5 4.7-6.5 8.8 0 5.1 4.1 9.2 9.2 9.2 13.2 0 18.9 15.7 7.8 22.9-41.1 26.6-89.3 41.1-139 41.1l-86 0-48 48c-8.8 8.8-23.2 8.8-32 0s-8.8-23.2 0-32L256 224c8.8-8.8 8.8-23.2 0-32s-23.2-8.8-32 0L79.5 336.5c-5.7 5.7-15.5 1.7-15.5-6.4 0-67.9 27-133 75-181L242.8 45.2C271.7 16.3 311 0 352 0z\"],\n \"bowl-rice\": [512, 512, [], \"e2eb\", \"M176 40c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm24 48l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM56 160l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM0 283.4C0 268.3 12.3 256 27.4 256l457.1 0c15.1 0 27.4 12.3 27.4 27.4 0 70.5-44.4 130.7-106.7 154.1L403.5 452c-2 16-15.6 28-31.8 28l-231.5 0c-16.1 0-29.8-12-31.8-28l-1.8-14.4C44.4 414.1 0 353.9 0 283.4zM224 184c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zm-96 0c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM104 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm216 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM296 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zm120 96c0-13.3 10.7-24 24-24l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24zM392 88l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24zM296 16l16 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-16 0c-13.3 0-24-10.7-24-24s10.7-24 24-24z\"],\n \"star-half-stroke\": [576, 512, [\"star-half-alt\"], \"f5c0\", \"M288.1 353.6c10 0 19.9 2.3 29 7l74.4 37.9-13-82.5c-3.2-20.2 3.5-40.7 17.9-55.2l59-59.1-82.5-13.1c-20.2-3.2-37.7-15.9-47-34.1l-38-74.4 0 273.6zM457.4 489c-7.3 5.3-17 6.1-25 2L288.1 417.6 143.8 491c-8 4.1-17.7 3.3-25-2s-11-14.2-9.6-23.2L134.4 305.9 20 191.4c-6.4-6.4-8.6-15.8-5.8-24.4s10.1-14.9 19.1-16.3l159.9-25.4 73.6-144.2c4.1-8 12.4-13.1 21.4-13.1s17.3 5.1 21.4 13.1L383 125.3 542.9 150.7c8.9 1.4 16.3 7.7 19.1 16.3s.5 18-5.8 24.4L441.7 305.9 467 465.8c1.4 8.9-2.3 17.9-9.6 23.2z\"],\n \"temperature-arrow-down\": [512, 512, [\"temperature-down\"], \"e03f\", \"M64.5 96c0-53 43-96 96-96s96 43 96 96l0 164.7c29.5 26.4 48 64.7 48 107.3 0 79.5-64.5 144-144 144s-144-64.5-144-144c0-42.6 18.5-81 48-107.3L64.5 96zm96 336c35.3 0 64-28.7 64-64 0-26.9-16.5-49.9-40-59.3l0-28.7c0-13.3-10.7-24-24-24s-24 10.7-24 24l0 28.7c-23.5 9.5-40 32.5-40 59.3 0 35.3 28.7 64 64 64zM439.1 310.6c-6 6-14.1 9.4-22.6 9.4s-16.6-3.4-22.6-9.4l-64-64c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l9.4 9.4 0-178.7c0-17.7 14.3-32 32-32s32 14.3 32 32l0 178.7 9.4-9.4c12.5-12.5 32.8-12.5 45.3 0s12.5 32.8 0 45.3l-64 64z\"],\n \"mask-ventilator\": [640, 512, [], \"e524\", \"M152.2 192c-15.4 38.3-24.2 77.2-24.2 108.8 0 13.3 1.5 26.2 4.4 38.7l-17-3.4c-29.9-6-51.4-32.2-51.4-62.8l0-81.3 88.2 0zm32.9-64L64 128c-35.3 0-64 28.7-64 64l0 81.3c0 61 43.1 113.5 102.9 125.5l66.3 13.3c18.7 22.1 42.9 40 70.8 51.8l0-87.8c-10.1-14.2-16-31.3-16-49.7 0-49.5 43-134.4 96-134.4 52.5 0 96 84.9 96 134.4 0 18.4-5.9 35.4-16 49.6l0 87.7c27.6-11.8 51.7-29.6 70.4-51.6l66.7-13.3c59.8-12 102.9-64.5 102.9-125.5l0-81.3c0-35.3-28.7-64-64-64l-121.5 0c-34.8-54.2-82.5-96-134.5-96-52.6 0-100.2 41.8-134.9 96zm302.5 64l88.4 0 0 81.3c0 30.5-21.5 56.8-51.4 62.8l-17 3.4c2.9-12.4 4.5-25.4 4.5-38.7 0-31.6-8.9-70.5-24.4-108.8zM288 320l0 192 64 0 0-192c0-17.7-14.3-32-32-32s-32 14.3-32 32z\"],\n \"file-video\": [384, 512, [], \"f1c8\", \"M0 64C0 28.7 28.7 0 64 0L213.5 0c17 0 33.3 6.7 45.3 18.7L365.3 125.3c12 12 18.7 28.3 18.7 45.3L384 448c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zm208-5.5l0 93.5c0 13.3 10.7 24 24 24L325.5 176 208 58.5zM80 304l0 96c0 17.7 14.3 32 32 32l96 0c17.7 0 32-14.3 32-32l0-24 35 35c3.2 3.2 7.5 5 12 5 9.4 0 17-7.6 17-17l0-94.1c0-9.4-7.6-17-17-17-4.5 0-8.8 1.8-12 5l-35 35 0-24c0-17.7-14.3-32-32-32l-96 0c-17.7 0-32 14.3-32 32z\"],\n \"arrow-trend-down\": [576, 512, [], \"e097\", \"M384 352c-17.7 0-32 14.3-32 32s14.3 32 32 32l160 0c17.7 0 32-14.3 32-32l0-160c0-17.7-14.3-32-32-32s-32 14.3-32 32l0 82.7-169.4-169.4c-12.5-12.5-32.8-12.5-45.3 0L192 242.7 54.6 105.4c-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3l160 160c12.5 12.5 32.8 12.5 45.3 0L320 205.3 466.7 352 384 352z\"],\n \"oil-can\": [640, 512, [], \"f613\", \"M320 128c17.7 0 32-14.3 32-32s-14.3-32-32-32L192 64c-17.7 0-32 14.3-32 32s14.3 32 32 32l32 0 0 32-176 0c-26.5 0-48 21.5-48 48l0 64.8c0 19 11.2 36.2 28.5 43.9l67.5 30 0 21.3c0 26.5 21.5 48 48 48l259.1 0c18.4 0 35.8-7.9 48-21.7L633.5 187.7c12.3-13.9-.3-35.4-18.4-31.5L448 192 397.5 166.8c-8.9-4.4-18.7-6.8-28.6-6.8l-80.9 0 0-32 32 0zM96 208l0 86.1-48-21.3 0-64.8 48 0z\"],\n \"people-carry-box\": [576, 512, [\"people-carry\"], \"f4ce\", \"M64-32A56 56 0 1 1 64 80 56 56 0 1 1 64-32zM0 171.1c0-32.6 26.5-59.1 59.1-59.1 23.5 0 45.5 11.3 59.1 30.4l48.7 68.2c5.8 8.2 15.1 13.1 25.1 13.4l0-96c0-17.7 14.3-32 32-32l128 0c17.7 0 32 14.3 32 32l0 96c10-.3 19.3-5.2 25.1-13.4l48.7-68.2c13.6-19.1 35.6-30.4 59.1-30.4 32.6 0 59.1 26.5 59.1 59.1L576 272c0 30.2-14.2 58.7-38.4 76.8l-76.8 57.6c-8.1 6-12.8 15.5-12.8 25.6l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-30.2 14.2-58.7 38.4-76.8l41.6-31.2 0-80.1-2.8 3.9c-18 25.2-47.1 40.2-78.1 40.2L352 288c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-120.4 0c-.6 0-1.3 0-1.9-.1-.6 0-1.3 .1-1.9 .1l-31.1 0c-31 0-60.1-15-78.1-40.2l-2.8-3.9 0 80.1 41.6 31.2C177.8 373.3 192 401.8 192 432l0 80c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-80c0-10.1-4.7-19.6-12.8-25.6L38.4 348.8C14.2 330.7 0 302.2 0 272L0 171.1zM0 379.3c3.1 2.7 6.3 5.4 9.6 7.9L64 428 64 512c0 17.7-14.3 32-32 32S0 529.7 0 512L0 379.3zM568 24a56 56 0 1 1 -112 0 56 56 0 1 1 112 0zm8 488c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-84 54.4-40.8c3.3-2.5 6.5-5.1 9.6-7.9L576 512z\"],\n \"chair\": [448, 512, [129681], \"f6c0\", \"M152 256l0-181.8c-24.5 20.5-40 51.4-40 85.8l0 96 40 0zm48 0l48 0 0-205.4c-7.7-1.7-15.8-2.6-24-2.6s-16.3 .9-24 2.6L200 256zM296 74.2l0 181.8 40 0 0-96c0-34.4-15.5-65.2-40-85.8zM32 256l32 0 0-96C64 71.6 135.6 0 224 0S384 71.6 384 160l0 96 32 0c17.7 0 32 14.3 32 32l0 64c0 17.7-14.3 32-32 32l0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96-256 0 0 96c0 17.7-14.3 32-32 32s-32-14.3-32-32l0-96c-17.7 0-32-14.3-32-32l0-64c0-17.7 14.3-32 32-32z\"],\n \"wind\": [512, 512, [], \"f72e\", \"M288 32c0 17.7 14.3 32 32 32l40 0c13.3 0 24 10.7 24 24s-10.7 24-24 24L32 112c-17.7 0-32 14.3-32 32s14.3 32 32 32l328 0c48.6 0 88-39.4 88-88S408.6 0 360 0L320 0c-17.7 0-32 14.3-32 32zm64 352c0 17.7 14.3 32 32 32l32 0c53 0 96-43 96-96s-43-96-96-96L32 224c-17.7 0-32 14.3-32 32s14.3 32 32 32l384 0c17.7 0 32 14.3 32 32s-14.3 32-32 32l-32 0c-17.7 0-32 14.3-32 32zM128 512l40 0c48.6 0 88-39.4 88-88s-39.4-88-88-88L32 336c-17.7 0-32 14.3-32 32s14.3 32 32 32l136 0c13.3 0 24 10.7 24 24s-10.7 24-24 24l-40 0c-17.7 0-32 14.3-32 32s14.3 32 32 32z\"],\n \"layer-group\": [512, 512, [], \"f5fd\", \"M232.5 5.2c14.9-6.9 32.1-6.9 47 0l218.6 101c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 149.8C5.4 145.8 0 137.3 0 128s5.4-17.9 13.9-21.8L232.5 5.2zM48.1 218.4l164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 277.8C5.4 273.8 0 265.3 0 256s5.4-17.9 13.9-21.8l34.1-15.8zM13.9 362.2l34.1-15.8 164.3 75.9c27.7 12.8 59.6 12.8 87.3 0l164.3-75.9 34.1 15.8c8.5 3.9 13.9 12.4 13.9 21.8s-5.4 17.9-13.9 21.8l-218.6 101c-14.9 6.9-32.1 6.9-47 0L13.9 405.8C5.4 401.8 0 393.3 0 384s5.4-17.9 13.9-21.8z\"],\n \"head-side-mask\": [512, 512, [], \"e063\", \"M445.9 193c-.1-.4-.2-.9-.2-1.3-15.7-108.4-108.9-191.7-221.7-191.7-85 0-159 47.4-196.9 117.2L283.3 288 456 288 442.9 336 336 336c-8.8 0-16 7.2-16 16s7.2 16 16 16l98.2 0-8.7 32-89.5 0c-8.8 0-16 7.2-16 16s7.2 16 16 16l80.6 0c-6.7 19.1-24.8 32-45.3 32L288 464c-17.7 0-32-14.3-32-32l0-104.5-247.5-165C3 182.1 0 202.7 0 224 0 278 19.1 327.5 50.9 366.2 58.9 375.9 64 387.8 64 400.4L64 464c0 26.5 21.5 48 48 48l127.3 0 .7 0 131.3 0c44.9 0 83.8-31.1 93.6-74.9l33.9-150.3c3.3-14.4-.3-29.5-9.7-41L445.9 193zM288 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0z\"],\n \"hands\": [512, 512, [\"sign-language\", \"signing\"], \"f2a7\", \"M512 160l-.1 72.6c0 44.8-17.6 87.1-47.9 118.4-.3-77-40.1-148.4-105.4-189.3l-1.9-1.2c2.5-3.7 2.8-8.6 .4-12.7l-62-107.4c-6.6-11.5-2.7-26.2 8.8-32.8S330 5 336.6 16.5l68 117.8 0 0 0 0 43.3 75 .1-49.3c0-17.7 14.4-32 32-32s32 14.4 32 32zM298.4 124.2c-14.1-8.8-29.8-12.7-45.2-12.1L216.7 48.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8l67.1 116.2-27-16.9zM211.9 88.5l16.4 28.4c-15.1 5.5-28.6 15.6-38.3 29.7l-19.7-34.2c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zm-46.4 63.7l12.5 21.7c-2 8.6-2.5 17.5-1.7 26.1l-4.3 0 0 0-34.4 0-13.7-23.8c-6.6-11.5-2.7-26.2 8.8-32.8s26.2-2.7 32.8 8.8zM228.9 175c9.4-15 29.1-19.5 44.1-10.2l60.2 37.6C384.7 234.7 416 291.2 416 352l0 8c0 83.9-68.1 152-152 152L88 512c-13.3 0-24-10.7-24-24s10.7-24 24-24l92 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 440c-13.3 0-24-10.7-24-24s10.7-24 24-24l124 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L24 368c-13.3 0-24-10.7-24-24s10.7-24 24-24l156 0c6.6 0 12-5.4 12-12s-5.4-12-12-12L56 296c-13.3 0-24-10.7-24-24s10.7-24 24-24l136 0 0 0 0 0 93.2 0-46.2-28.9c-15-9.4-19.5-29.1-10.2-44.1z\"],\n \"tablets\": [512, 512, [], \"f490\", \"M495.3 76.6c-4.6-8.7-16.3-9.7-23.3-2.7L297.9 248c-7 7-6 18.7 2.7 23.3 20.1 10.7 43 16.7 67.4 16.7 79.5 0 144-64.5 144-144 0-24.3-6-47.3-16.7-67.4zM240.7 211.4c4.6 8.7 16.3 9.7 23.3 2.7L438.1 40c7-7 6-18.7-2.7-23.3-20.1-10.7-43-16.7-67.4-16.7-79.5 0-144 64.5-144 144 0 24.3 6 47.3 16.7 67.4zM144 224C79.2 224 24.4 266.8 6.3 325.6 3.4 335.1 11 344 20.9 344l246.2 0c9.9 0 17.5-8.9 14.6-18.4-.9-3-1.9-5.9-3-8.7-37.4-18.1-68-48-87-84.8-14.9-5.2-30.9-8.1-47.6-8.1zM281.7 410.4c2.9-9.5-4.7-18.4-14.6-18.4L20.9 392C11 392 3.4 400.9 6.3 410.4 24.4 469.2 79.2 512 144 512s119.6-42.8 137.7-101.6z\"],\n \"weight-hanging\": [512, 512, [], \"f5cd\", \"M224 96a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm122.5 32c3.5-10 5.5-20.8 5.5-32 0-53-43-96-96-96s-96 43-96 96c0 11.2 1.9 22 5.5 32l-21.8 0c-28.3 0-53.2 18.5-61.3 45.6L2.4 440.2C.8 445.4 0 450.8 0 456.2 0 487 25 512 55.8 512l400.4 0c30.8 0 55.8-25 55.8-55.8 0-5.4-.8-10.8-2.4-16l-80-266.5c-8.1-27.1-33-45.6-61.3-45.6l-21.8 0z\"],\n \"dice\": [512, 512, [127922], \"f522\", \"M141.4 2.3C103-8 63.5 14.8 53.3 53.2L2.5 242.7C-7.8 281.1 15 320.6 53.4 330.9l189.5 50.8c38.4 10.3 77.9-12.5 88.2-50.9l50.8-189.5c10.3-38.4-12.5-77.9-50.9-88.2L141.4 2.3zm23 205.7a32 32 0 1 1 55.4-32 32 32 0 1 1 -55.4 32zM79.2 220.3a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm185 96.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zm9-208.4a32 32 0 1 1 32 55.4 32 32 0 1 1 -32-55.4zm-121 14.4a32 32 0 1 1 -32-55.4 32 32 0 1 1 32 55.4zM418 192L377.4 343.2c-17.2 64-83 102-147 84.9l-38.3-10.3 0 30.2c0 35.3 28.7 64 64 64l192 0c35.3 0 64-28.7 64-64l0-192c0-35.3-28.7-64-64-64L418 192z\"],\n \"shop-slash\": [576, 512, [\"store-alt-slash\"], \"e070\", \"M41-24.9c-9.4-9.4-24.6-9.4-33.9 0S-2.3-.3 7 9.1l528 528c9.4 9.4 24.6 9.4 33.9 0s9.4-24.6 0-33.9l-57-57 0-190.3c26.8-1.9 48-24.3 48-51.6 0-8-1.9-16-5.5-23.2L497.7 67.4C486.8 45.7 464.7 32 440.4 32L135.6 32c-10.7 0-21 2.7-30.2 7.6L41-24.9zM321.8 256L448 256 448 382.2 321.8 256zM352 421.8l-64-64 0 10.2c0 8.8-7.2 16-16 16l-128 0c-8.8 0-16-7.2-16-16l0-112 58.2 0-134.8-134.8-29.9 59.9c-3.6 7.2-5.5 15.1-5.5 23.2 0 27.3 21.2 49.7 48 51.6L64 432c0 26.5 21.5 48 48 48l192 0c26.5 0 48-21.5 48-48l0-10.2z\"],\n \"sort-down\": [384, 512, [\"sort-desc\"], \"f0dd\", \"M32 288c-12.9 0-24.6 7.8-29.6 19.8S.2 333.5 9.4 342.6l160 160c12.5 12.5 32.8 12.5 45.3 0l160-160c9.2-9.2 11.9-22.9 6.9-34.9S364.9 288 352 288L32 288z\"],\n \"peseta-sign\": [448, 512, [], \"e221\", \"M112 32C94.3 32 80 46.3 80 64l0 104-24 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l24 0 0 232c0 17.7 14.3 32 32 32s32-14.3 32-32l0-96 96 0c80.2 0 146.6-59 158.2-136l25.8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-25.8 0C386.6 91 320.2 32 240 32L112 32zM333 168l-189 0 0-72 96 0c44.7 0 82.3 30.6 93 72zM144 216l189 0c-10.7 41.4-48.2 72-93 72l-96 0 0-72z\"],\n \"tablet-screen-button\": [448, 512, [\"tablet-alt\"], \"f3fa\", \"M0 64C0 28.7 28.7 0 64 0L384 0c35.3 0 64 28.7 64 64l0 384c0 35.3-28.7 64-64 64L64 512c-35.3 0-64-28.7-64-64L0 64zM256 432a32 32 0 1 0 -64 0 32 32 0 1 0 64 0zM384 64l-320 0 0 288 320 0 0-288z\"],\n \"hand-holding-dollar\": [576, 512, [\"hand-holding-usd\"], \"f4c0\", \"M288-16c-13.3 0-24 10.7-24 24l0 12-1.8 0c-36.6 0-66.2 29.7-66.2 66.2 0 33.4 24.9 61.6 58 65.7l61 7.6c5.1 .6 9 5 9 10.2 0 5.7-4.6 10.2-10.2 10.2L240 180c-15.5 0-28 12.5-28 28s12.5 28 28 28l24 0 0 12c0 13.3 10.7 24 24 24s24-10.7 24-24l0-12 1.8 0c36.6 0 66.2-29.7 66.2-66.2 0-33.4-24.9-61.6-58-65.7l-61-7.6c-5.1-.6-9-5-9-10.2 0-5.7 4.6-10.2 10.2-10.2L328 76c15.5 0 28-12.5 28-28s-12.5-28-28-28l-16 0 0-12c0-13.3-10.7-24-24-24zM109.3 341.5L66.7 384 32 384c-17.7 0-32 14.3-32 32l0 64c0 17.7 14.3 32 32 32l320.5 0c29 0 57.3-9.3 80.7-26.5l126.6-93.3c17.8-13.1 21.6-38.1 8.5-55.9s-38.1-21.6-55.9-8.5L392.6 416 280 416c-13.3 0-24-10.7-24-24s10.7-24 24-24l72 0c17.7 0 32-14.3 32-32s-14.3-32-32-32l-152.2 0c-33.9 0-66.5 13.5-90.5 37.5z\"],\n \"shield\": [512, 512, [128737, \"shield-blank\"], \"f132\", \"M256 0c4.6 0 9.2 1 13.4 2.9L457.8 82.8c22 9.3 38.4 31 38.3 57.2-.5 99.2-41.3 280.7-213.6 363.2-16.7 8-36.1 8-52.8 0-172.4-82.5-213.1-264-213.6-363.2-.1-26.2 16.3-47.9 38.3-57.2L242.7 2.9C246.9 1 251.4 0 256 0z\"],\n \"face-laugh\": [512, 512, [\"laugh\"], \"f599\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM101.6 314c-3.7-13.7 7.5-26 21.7-26l265.4 0c14.2 0 25.4 12.3 21.7 26-18.5 68-80.6 118-154.4 118S120 382 101.6 314zM144 192a32 32 0 1 1 64 0 32 32 0 1 1 -64 0zm192-32a32 32 0 1 1 0 64 32 32 0 1 1 0-64z\"],\n \"hands-holding\": [640, 512, [], \"f4c2\", \"M80 104c0-22.1-17.9-40-40-40S0 81.9 0 104L0 325.5c0 25.5 10.1 49.9 28.1 67.9L128 493.3c12 12 28.3 18.7 45.3 18.7l66.7 0c26.5 0 48-21.5 48-48l0-78.9c0-29.7-11.8-58.2-32.8-79.2l-25.3-25.3 0 0c-7.3-7.3-23.1-23.1-47.2-47.2-12.5-12.5-32.8-12.5-45.3 0s-12.5 32.8 0 45.3c24.1 24.1 39.9 39.9 47.2 47.2 11 11 9.2 29.2-3.7 37.8-9.7 6.5-22.7 5.2-31-3.1L98.7 309.5c-12-12-18.7-28.3-18.7-45.3L80 104zm480 0l0 160.2c0 17-6.7 33.3-18.7 45.3l-51.1 51.1c-8.3 8.3-21.3 9.6-31 3.1-12.9-8.6-14.7-26.9-3.7-37.8 7.3-7.3 23.1-23.1 47.2-47.2 12.5-12.5 12.5-32.8 0-45.3s-32.8-12.5-45.3 0c-24.1 24.1-39.9 39.9-47.2 47.2l0 0-25.3 25.3c-21 21-32.8 49.5-32.8 79.2l0 78.9c0 26.5 21.5 48 48 48l66.7 0c17 0 33.3-6.7 45.3-18.7l99.9-99.9c18-18 28.1-42.4 28.1-67.9L640 104c0-22.1-17.9-40-40-40s-40 17.9-40 40z\"],\n \"cart-shopping\": [640, 512, [128722, \"shopping-cart\"], \"f07a\", \"M24-16C10.7-16 0-5.3 0 8S10.7 32 24 32l45.3 0c3.9 0 7.2 2.8 7.9 6.6l52.1 286.3c6.2 34.2 36 59.1 70.8 59.1L456 384c13.3 0 24-10.7 24-24s-10.7-24-24-24l-255.9 0c-11.6 0-21.5-8.3-23.6-19.7l-5.1-28.3 303.6 0c30.8 0 57.2-21.9 62.9-52.2L568.9 69.9C572.6 50.2 557.5 32 537.4 32l-412.7 0-.4-2c-4.8-26.6-28-46-55.1-46L24-16zM208 512a48 48 0 1 0 0-96 48 48 0 1 0 0 96zm224 0a48 48 0 1 0 0-96 48 48 0 1 0 0 96z\"],\n \"octagon\": [512, 512, [128721], \"f306\", \"M188.6 .1c-17 0-33.3 6.7-45.3 18.7L19.2 143C7.2 155 .5 171.2 .5 188.2l0 135.6c0 17 6.7 33.3 18.7 45.3L143.4 493.2c12 12 28.3 18.7 45.3 18.7l135.6 0c17 0 33.3-6.7 45.3-18.7L493.6 369c12-12 18.7-28.3 18.7-45.3l0-135.6c0-17-6.7-33.3-18.7-45.3L369.5 18.8c-12-12-28.3-18.7-45.3-18.7L188.6 .1z\"],\n \"hand-pointer\": [448, 512, [], \"f25a\", \"M128 40c0-22.1 17.9-40 40-40s40 17.9 40 40l0 148.2c8.5-7.6 19.7-12.2 32-12.2 20.6 0 38.2 13 45 31.2 8.8-9.3 21.2-15.2 35-15.2 25.3 0 46 19.5 47.9 44.3 8.5-7.7 19.8-12.3 32.1-12.3 26.5 0 48 21.5 48 48l0 112c0 70.7-57.3 128-128 128l-85.3 0c-5 0-9.9-.3-14.7-1-55.3-5.6-106.2-34-140-79L8 336c-13.3-17.7-9.7-42.7 8-56s42.7-9.7 56 8l56 74.7 0-322.7zM240 304c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96zm48-16c-8.8 0-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96c0-8.8-7.2-16-16-16zm80 16c0-8.8-7.2-16-16-16s-16 7.2-16 16l0 96c0 8.8 7.2 16 16 16s16-7.2 16-16l0-96z\"],\n \"registered\": [512, 512, [174], \"f25d\", \"M256 512a256 256 0 1 0 0-512 256 256 0 1 0 0 512zM200 144l80 0c39.8 0 72 32.2 72 72 0 28.9-17 53.8-41.6 65.3l30.2 50.3c6.8 11.4 3.1 26.1-8.2 32.9s-26.1 3.1-32.9-8.2l-41-68.3-34.4 0 0 56c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-176c0-13.3 10.7-24 24-24zm72 96l8 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-56 0 0 48 48 0z\"],\n \"house-signal\": [576, 512, [], \"e012\", \"M515.9 240l-19.9 0 0 144c0 35.3-28.7 64-64 64l-137 0c-24-91.7-93.5-165-183-194.3l0-13.7-19.9 0c-15.5 0-28.1-12.6-28.1-28.1 0-7.6 3.1-14.9 8.6-20.2L276.5-4.9C283.9-12 293.7-16 304-16s20.1 4 27.5 11.1L535.4 191.7c5.5 5.3 8.6 12.6 8.6 20.2 0 15.5-12.6 28.1-28.1 28.1zM280 192c-13.3 0-24 10.7-24 24l0 48c0 13.3 10.7 24 24 24l48 0c13.3 0 24-10.7 24-24l0-48c0-13.3-10.7-24-24-24l-48 0zM24 288c128.1 0 232 103.9 232 232 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-101.6-82.4-184-184-184-13.3 0-24-10.7-24-24s10.7-24 24-24zm8 192a32 32 0 1 1 0 64 32 32 0 1 1 0-64zM0 408c0-13.3 10.7-24 24-24 75.1 0 136 60.9 136 136 0 13.3-10.7 24-24 24s-24-10.7-24-24c0-48.6-39.4-88-88-88-13.3 0-24-10.7-24-24z\"],\n \"bangladeshi-taka-sign\": [384, 512, [], \"e2e6\", \"M36 32.3C18.4 30.1 2.4 42.5 .3 60S10.5 93.6 28 95.8l7.9 1c16 2 28 15.6 28 31.8l0 31.5-40 0c-13.3 0-24 10.7-24 24s10.7 24 24 24l40 0 0 176c0 53 43 96 96 96l32 0c106 0 192-86 192-192l0-32c0-53-43-96-96-96l-16 0c-17.7 0-32 14.3-32 32s14.3 32 32 32l16 0c17.7 0 32 14.3 32 32l0 32c0 70.7-57.3 128-128 128l-32 0c-17.7 0-32-14.3-32-32l0-176 40 0c13.3 0 24-10.7 24-24s-10.7-24-24-24l-40 0 0-31.5C128 80.1 92 39.2 43.9 33.2l-7.9-1z\"]\n };\n\n bunker(function () {\n defineIcons('fas', icons);\n defineIcons('fa-solid', icons);\n });\n\n}());\n(function () {\n 'use strict';\n\n function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n }\n function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n }\n function _arrayWithoutHoles(r) {\n if (Array.isArray(r)) return _arrayLikeToArray(r);\n }\n function _classCallCheck(a, n) {\n if (!(a instanceof n)) throw new TypeError(\"Cannot call a class as a function\");\n }\n function _defineProperties(e, r) {\n for (var t = 0; t < r.length; t++) {\n var o = r[t];\n o.enumerable = o.enumerable || !1, o.configurable = !0, \"value\" in o && (o.writable = !0), Object.defineProperty(e, _toPropertyKey(o.key), o);\n }\n }\n function _createClass(e, r, t) {\n return r && _defineProperties(e.prototype, r), t && _defineProperties(e, t), Object.defineProperty(e, \"prototype\", {\n writable: !1\n }), e;\n }\n function _createForOfIteratorHelper(r, e) {\n var t = \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (!t) {\n if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && \"number\" == typeof r.length) {\n t && (r = t);\n var n = 0,\n F = function () {};\n return {\n s: F,\n n: function () {\n return n >= r.length ? {\n done: !0\n } : {\n done: !1,\n value: r[n++]\n };\n },\n e: function (r) {\n throw r;\n },\n f: F\n };\n }\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n var o,\n a = !0,\n u = !1;\n return {\n s: function () {\n t = t.call(r);\n },\n n: function () {\n var r = t.next();\n return a = r.done, r;\n },\n e: function (r) {\n u = !0, o = r;\n },\n f: function () {\n try {\n a || null == t.return || t.return();\n } finally {\n if (u) throw o;\n }\n }\n };\n }\n function _defineProperty(e, r, t) {\n return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n }\n function _inherits(t, e) {\n if (\"function\" != typeof e && null !== e) throw new TypeError(\"Super expression must either be null or a function\");\n t.prototype = Object.create(e && e.prototype, {\n constructor: {\n value: t,\n writable: !0,\n configurable: !0\n }\n }), Object.defineProperty(t, \"prototype\", {\n writable: !1\n }), e && _setPrototypeOf(t, e);\n }\n function _iterableToArray(r) {\n if (\"undefined\" != typeof Symbol && null != r[Symbol.iterator] || null != r[\"@@iterator\"]) return Array.from(r);\n }\n function _iterableToArrayLimit(r, l) {\n var t = null == r ? null : \"undefined\" != typeof Symbol && r[Symbol.iterator] || r[\"@@iterator\"];\n if (null != t) {\n var e,\n n,\n i,\n u,\n a = [],\n f = !0,\n o = !1;\n try {\n if (i = (t = t.call(r)).next, 0 === l) {\n if (Object(t) !== t) return;\n f = !1;\n } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0);\n } catch (r) {\n o = !0, n = r;\n } finally {\n try {\n if (!f && null != t.return && (u = t.return(), Object(u) !== u)) return;\n } finally {\n if (o) throw n;\n }\n }\n return a;\n }\n }\n function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n function ownKeys(e, r) {\n var t = Object.keys(e);\n if (Object.getOwnPropertySymbols) {\n var o = Object.getOwnPropertySymbols(e);\n r && (o = o.filter(function (r) {\n return Object.getOwnPropertyDescriptor(e, r).enumerable;\n })), t.push.apply(t, o);\n }\n return t;\n }\n function _objectSpread2(e) {\n for (var r = 1; r < arguments.length; r++) {\n var t = null != arguments[r] ? arguments[r] : {};\n r % 2 ? ownKeys(Object(t), !0).forEach(function (r) {\n _defineProperty(e, r, t[r]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) {\n Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r));\n });\n }\n return e;\n }\n function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n }\n function _slicedToArray(r, e) {\n return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest();\n }\n function _toConsumableArray(r) {\n return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread();\n }\n function _toPrimitive(t, r) {\n if (\"object\" != typeof t || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != typeof i) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n }\n function _toPropertyKey(t) {\n var i = _toPrimitive(t, \"string\");\n return \"symbol\" == typeof i ? i : i + \"\";\n }\n function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n }\n function _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return _arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0;\n }\n }\n function _wrapRegExp() {\n _wrapRegExp = function (e, r) {\n return new BabelRegExp(e, void 0, r);\n };\n var e = RegExp.prototype,\n r = new WeakMap();\n function BabelRegExp(e, t, p) {\n var o = RegExp(e, t);\n return r.set(o, p || r.get(e)), _setPrototypeOf(o, BabelRegExp.prototype);\n }\n function buildGroups(e, t) {\n var p = r.get(t);\n return Object.keys(p).reduce(function (r, t) {\n var o = p[t];\n if (\"number\" == typeof o) r[t] = e[o];else {\n for (var i = 0; void 0 === e[o[i]] && i + 1 < o.length;) i++;\n r[t] = e[o[i]];\n }\n return r;\n }, Object.create(null));\n }\n return _inherits(BabelRegExp, RegExp), BabelRegExp.prototype.exec = function (r) {\n var t = e.exec.call(this, r);\n if (t) {\n t.groups = buildGroups(t, this);\n var p = t.indices;\n p && (p.groups = buildGroups(p, this));\n }\n return t;\n }, BabelRegExp.prototype[Symbol.replace] = function (t, p) {\n if (\"string\" == typeof p) {\n var o = r.get(this);\n return e[Symbol.replace].call(this, t, p.replace(/\\$<([^>]+)(>|$)/g, function (e, r, t) {\n if (\"\" === t) return e;\n var p = o[r];\n return Array.isArray(p) ? \"$\" + p.join(\"$\") : \"number\" == typeof p ? \"$\" + p : \"\";\n }));\n }\n if (\"function\" == typeof p) {\n var i = this;\n return e[Symbol.replace].call(this, t, function () {\n var e = arguments;\n return \"object\" != typeof e[e.length - 1] && (e = [].slice.call(e)).push(buildGroups(e, i)), p.apply(this, e);\n });\n }\n return e[Symbol.replace].call(this, t, p);\n }, _wrapRegExp.apply(this, arguments);\n }\n\n var noop = function noop() {};\n var _WINDOW = {};\n var _DOCUMENT = {};\n var _MUTATION_OBSERVER = null;\n var _PERFORMANCE = {\n mark: noop,\n measure: noop\n };\n try {\n if (typeof window !== 'undefined') _WINDOW = window;\n if (typeof document !== 'undefined') _DOCUMENT = document;\n if (typeof MutationObserver !== 'undefined') _MUTATION_OBSERVER = MutationObserver;\n if (typeof performance !== 'undefined') _PERFORMANCE = performance;\n } catch (e) {} // eslint-disable-line no-empty\n\n var _ref = _WINDOW.navigator || {},\n _ref$userAgent = _ref.userAgent,\n userAgent = _ref$userAgent === void 0 ? '' : _ref$userAgent;\n var WINDOW = _WINDOW;\n var DOCUMENT = _DOCUMENT;\n var MUTATION_OBSERVER = _MUTATION_OBSERVER;\n var PERFORMANCE = _PERFORMANCE;\n var IS_BROWSER = !!WINDOW.document;\n var IS_DOM = !!DOCUMENT.documentElement && !!DOCUMENT.head && typeof DOCUMENT.addEventListener === 'function' && typeof DOCUMENT.createElement === 'function';\n var IS_IE = ~userAgent.indexOf('MSIE') || ~userAgent.indexOf('Trident/');\n\n var _dt;\n var E = /fa(k|kd|s|r|l|t|d|dr|dl|dt|b|slr|slpr|wsb|tl|ns|nds|es|jr|jfr|jdr|usb|ufsb|udsb|cr|ss|sr|sl|st|sds|sdr|sdl|sdt)?[\\-\\ ]/,\n _ = /Font ?Awesome ?([567 ]*)(Solid|Regular|Light|Thin|Duotone|Brands|Free|Pro|Sharp Duotone|Sharp|Kit|Notdog Duo|Notdog|Chisel|Etch|Thumbprint|Jelly Fill|Jelly Duo|Jelly|Utility|Utility Fill|Utility Duo|Slab Press|Slab|Whiteboard)?.*/i;\n var q = {\n classic: {\n fa: \"solid\",\n fas: \"solid\",\n \"fa-solid\": \"solid\",\n far: \"regular\",\n \"fa-regular\": \"regular\",\n fal: \"light\",\n \"fa-light\": \"light\",\n fat: \"thin\",\n \"fa-thin\": \"thin\",\n fab: \"brands\",\n \"fa-brands\": \"brands\"\n },\n duotone: {\n fa: \"solid\",\n fad: \"solid\",\n \"fa-solid\": \"solid\",\n \"fa-duotone\": \"solid\",\n fadr: \"regular\",\n \"fa-regular\": \"regular\",\n fadl: \"light\",\n \"fa-light\": \"light\",\n fadt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n sharp: {\n fa: \"solid\",\n fass: \"solid\",\n \"fa-solid\": \"solid\",\n fasr: \"regular\",\n \"fa-regular\": \"regular\",\n fasl: \"light\",\n \"fa-light\": \"light\",\n fast: \"thin\",\n \"fa-thin\": \"thin\"\n },\n \"sharp-duotone\": {\n fa: \"solid\",\n fasds: \"solid\",\n \"fa-solid\": \"solid\",\n fasdr: \"regular\",\n \"fa-regular\": \"regular\",\n fasdl: \"light\",\n \"fa-light\": \"light\",\n fasdt: \"thin\",\n \"fa-thin\": \"thin\"\n },\n slab: {\n \"fa-regular\": \"regular\",\n faslr: \"regular\"\n },\n \"slab-press\": {\n \"fa-regular\": \"regular\",\n faslpr: \"regular\"\n },\n thumbprint: {\n \"fa-light\": \"light\",\n fatl: \"light\"\n },\n whiteboard: {\n \"fa-semibold\": \"semibold\",\n fawsb: \"semibold\"\n },\n notdog: {\n \"fa-solid\": \"solid\",\n fans: \"solid\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"solid\",\n fands: \"solid\"\n },\n etch: {\n \"fa-solid\": \"solid\",\n faes: \"solid\"\n },\n jelly: {\n \"fa-regular\": \"regular\",\n fajr: \"regular\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"regular\",\n fajfr: \"regular\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"regular\",\n fajdr: \"regular\"\n },\n chisel: {\n \"fa-regular\": \"regular\",\n facr: \"regular\"\n },\n utility: {\n \"fa-semibold\": \"semibold\",\n fausb: \"semibold\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"semibold\",\n faudsb: \"semibold\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"semibold\",\n faufsb: \"semibold\"\n }\n },\n H = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n Q = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\", \"fa-thumbprint\", \"fa-whiteboard\", \"fa-notdog\", \"fa-notdog-duo\", \"fa-chisel\", \"fa-etch\", \"fa-jelly\", \"fa-jelly-fill\", \"fa-jelly-duo\", \"fa-slab\", \"fa-slab-press\", \"fa-utility\", \"fa-utility-duo\", \"fa-utility-fill\"];\n var i = \"classic\",\n t = \"duotone\",\n d = \"sharp\",\n l = \"sharp-duotone\",\n f = \"chisel\",\n n = \"etch\",\n h = \"jelly\",\n o = \"jelly-duo\",\n u = \"jelly-fill\",\n g = \"notdog\",\n s = \"notdog-duo\",\n y = \"slab\",\n m = \"slab-press\",\n e = \"thumbprint\",\n p = \"utility\",\n a = \"utility-duo\",\n w = \"utility-fill\",\n x = \"whiteboard\",\n b = \"Classic\",\n c = \"Duotone\",\n I = \"Sharp\",\n F = \"Sharp Duotone\",\n v = \"Chisel\",\n S = \"Etch\",\n A = \"Jelly\",\n P = \"Jelly Duo\",\n j = \"Jelly Fill\",\n B = \"Notdog\",\n N = \"Notdog Duo\",\n k = \"Slab\",\n D = \"Slab Press\",\n T = \"Thumbprint\",\n C = \"Utility\",\n W = \"Utility Duo\",\n K = \"Utility Fill\",\n R = \"Whiteboard\",\n rt = [i, t, d, l, f, n, h, o, u, g, s, y, m, e, p, a, w, x],\n dt = (_dt = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, i, b), t, c), d, I), l, F), f, v), n, S), h, A), o, P), u, j), g, B), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_dt, s, N), y, k), m, D), e, T), p, C), a, W), w, K), x, R));\n var gt = {\n classic: {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n duotone: {\n 900: \"fad\",\n 400: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n sharp: {\n 900: \"fass\",\n 400: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"sharp-duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n slab: {\n 400: \"faslr\"\n },\n \"slab-press\": {\n 400: \"faslpr\"\n },\n whiteboard: {\n 600: \"fawsb\"\n },\n thumbprint: {\n 300: \"fatl\"\n },\n notdog: {\n 900: \"fans\"\n },\n \"notdog-duo\": {\n 900: \"fands\"\n },\n etch: {\n 900: \"faes\"\n },\n chisel: {\n 400: \"facr\"\n },\n jelly: {\n 400: \"fajr\"\n },\n \"jelly-fill\": {\n 400: \"fajfr\"\n },\n \"jelly-duo\": {\n 400: \"fajdr\"\n },\n utility: {\n 600: \"fausb\"\n },\n \"utility-duo\": {\n 600: \"faudsb\"\n },\n \"utility-fill\": {\n 600: \"faufsb\"\n }\n };\n var Ct = {\n \"Font Awesome 7 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 7 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\",\n 100: \"fat\"\n },\n \"Font Awesome 7 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 7 Duotone\": {\n 900: \"fad\",\n 400: \"fadr\",\n normal: \"fadr\",\n 300: \"fadl\",\n 100: \"fadt\"\n },\n \"Font Awesome 7 Sharp\": {\n 900: \"fass\",\n 400: \"fasr\",\n normal: \"fasr\",\n 300: \"fasl\",\n 100: \"fast\"\n },\n \"Font Awesome 7 Sharp Duotone\": {\n 900: \"fasds\",\n 400: \"fasdr\",\n normal: \"fasdr\",\n 300: \"fasdl\",\n 100: \"fasdt\"\n },\n \"Font Awesome 7 Jelly\": {\n 400: \"fajr\",\n normal: \"fajr\"\n },\n \"Font Awesome 7 Jelly Fill\": {\n 400: \"fajfr\",\n normal: \"fajfr\"\n },\n \"Font Awesome 7 Jelly Duo\": {\n 400: \"fajdr\",\n normal: \"fajdr\"\n },\n \"Font Awesome 7 Slab\": {\n 400: \"faslr\",\n normal: \"faslr\"\n },\n \"Font Awesome 7 Slab Press\": {\n 400: \"faslpr\",\n normal: \"faslpr\"\n },\n \"Font Awesome 7 Thumbprint\": {\n 300: \"fatl\",\n normal: \"fatl\"\n },\n \"Font Awesome 7 Notdog\": {\n 900: \"fans\",\n normal: \"fans\"\n },\n \"Font Awesome 7 Notdog Duo\": {\n 900: \"fands\",\n normal: \"fands\"\n },\n \"Font Awesome 7 Etch\": {\n 900: \"faes\",\n normal: \"faes\"\n },\n \"Font Awesome 7 Chisel\": {\n 400: \"facr\",\n normal: \"facr\"\n },\n \"Font Awesome 7 Whiteboard\": {\n 600: \"fawsb\",\n normal: \"fawsb\"\n },\n \"Font Awesome 7 Utility\": {\n 600: \"fausb\",\n normal: \"fausb\"\n },\n \"Font Awesome 7 Utility Duo\": {\n 600: \"faudsb\",\n normal: \"faudsb\"\n },\n \"Font Awesome 7 Utility Fill\": {\n 600: \"faufsb\",\n normal: \"faufsb\"\n }\n };\n var Ut = new Map([[\"classic\", {\n defaultShortPrefixId: \"fas\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\", \"brands\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"duotone\", {\n defaultShortPrefixId: \"fad\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp\", {\n defaultShortPrefixId: \"fass\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"sharp-duotone\", {\n defaultShortPrefixId: \"fasds\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\", \"regular\", \"light\", \"thin\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"chisel\", {\n defaultShortPrefixId: \"facr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"etch\", {\n defaultShortPrefixId: \"faes\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"jelly\", {\n defaultShortPrefixId: \"fajr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"jelly-duo\", {\n defaultShortPrefixId: \"fajdr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"jelly-fill\", {\n defaultShortPrefixId: \"fajfr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"notdog\", {\n defaultShortPrefixId: \"fans\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"notdog-duo\", {\n defaultShortPrefixId: \"fands\",\n defaultStyleId: \"solid\",\n styleIds: [\"solid\"],\n futureStyleIds: [],\n defaultFontWeight: 900\n }], [\"slab\", {\n defaultShortPrefixId: \"faslr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"slab-press\", {\n defaultShortPrefixId: \"faslpr\",\n defaultStyleId: \"regular\",\n styleIds: [\"regular\"],\n futureStyleIds: [],\n defaultFontWeight: 400\n }], [\"thumbprint\", {\n defaultShortPrefixId: \"fatl\",\n defaultStyleId: \"light\",\n styleIds: [\"light\"],\n futureStyleIds: [],\n defaultFontWeight: 300\n }], [\"utility\", {\n defaultShortPrefixId: \"fausb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"utility-duo\", {\n defaultShortPrefixId: \"faudsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"utility-fill\", {\n defaultShortPrefixId: \"faufsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }], [\"whiteboard\", {\n defaultShortPrefixId: \"fawsb\",\n defaultStyleId: \"semibold\",\n styleIds: [\"semibold\"],\n futureStyleIds: [],\n defaultFontWeight: 600\n }]]),\n _t = {\n chisel: {\n regular: \"facr\"\n },\n classic: {\n brands: \"fab\",\n light: \"fal\",\n regular: \"far\",\n solid: \"fas\",\n thin: \"fat\"\n },\n duotone: {\n light: \"fadl\",\n regular: \"fadr\",\n solid: \"fad\",\n thin: \"fadt\"\n },\n etch: {\n solid: \"faes\"\n },\n jelly: {\n regular: \"fajr\"\n },\n \"jelly-duo\": {\n regular: \"fajdr\"\n },\n \"jelly-fill\": {\n regular: \"fajfr\"\n },\n notdog: {\n solid: \"fans\"\n },\n \"notdog-duo\": {\n solid: \"fands\"\n },\n sharp: {\n light: \"fasl\",\n regular: \"fasr\",\n solid: \"fass\",\n thin: \"fast\"\n },\n \"sharp-duotone\": {\n light: \"fasdl\",\n regular: \"fasdr\",\n solid: \"fasds\",\n thin: \"fasdt\"\n },\n slab: {\n regular: \"faslr\"\n },\n \"slab-press\": {\n regular: \"faslpr\"\n },\n thumbprint: {\n light: \"fatl\"\n },\n utility: {\n semibold: \"fausb\"\n },\n \"utility-duo\": {\n semibold: \"faudsb\"\n },\n \"utility-fill\": {\n semibold: \"faufsb\"\n },\n whiteboard: {\n semibold: \"fawsb\"\n }\n };\n var Yt = [\"fak\", \"fa-kit\", \"fakd\", \"fa-kit-duotone\"],\n qt = {\n kit: {\n fak: \"kit\",\n \"fa-kit\": \"kit\"\n },\n \"kit-duotone\": {\n fakd: \"kit-duotone\",\n \"fa-kit-duotone\": \"kit-duotone\"\n }\n },\n Ht = [\"kit\"];\n var L = \"kit\",\n r = \"kit-duotone\",\n U = \"Kit\",\n J = \"Kit Duotone\",\n $t = _defineProperty(_defineProperty({}, L, U), r, J);\n var ol = {\n kit: {\n \"fa-kit\": \"fak\"\n },\n \"kit-duotone\": {\n \"fa-kit-duotone\": \"fakd\"\n }\n };\n var dl = {\n \"Font Awesome Kit\": {\n 400: \"fak\",\n normal: \"fak\"\n },\n \"Font Awesome Kit Duotone\": {\n 400: \"fakd\",\n normal: \"fakd\"\n }\n },\n fl = {\n kit: {\n fak: \"fa-kit\"\n },\n \"kit-duotone\": {\n fakd: \"fa-kit-duotone\"\n }\n };\n var ul = {\n kit: {\n kit: \"fak\"\n },\n \"kit-duotone\": {\n \"kit-duotone\": \"fakd\"\n }\n };\n\n var _ml;\n var l$1 = {\n GROUP: \"duotone-group\",\n SWAP_OPACITY: \"swap-opacity\",\n PRIMARY: \"primary\",\n SECONDARY: \"secondary\"\n },\n f$1 = [\"fa-classic\", \"fa-duotone\", \"fa-sharp\", \"fa-sharp-duotone\", \"fa-thumbprint\", \"fa-whiteboard\", \"fa-notdog\", \"fa-notdog-duo\", \"fa-chisel\", \"fa-etch\", \"fa-jelly\", \"fa-jelly-fill\", \"fa-jelly-duo\", \"fa-slab\", \"fa-slab-press\", \"fa-utility\", \"fa-utility-duo\", \"fa-utility-fill\"];\n var n$1 = \"classic\",\n o$1 = \"duotone\",\n u$1 = \"sharp\",\n s$1 = \"sharp-duotone\",\n h$1 = \"chisel\",\n g$1 = \"etch\",\n y$1 = \"jelly\",\n e$1 = \"jelly-duo\",\n m$1 = \"jelly-fill\",\n p$1 = \"notdog\",\n a$1 = \"notdog-duo\",\n w$1 = \"slab\",\n b$1 = \"slab-press\",\n r$1 = \"thumbprint\",\n c$1 = \"utility\",\n i$1 = \"utility-duo\",\n x$1 = \"utility-fill\",\n I$1 = \"whiteboard\",\n F$1 = \"Classic\",\n v$1 = \"Duotone\",\n S$1 = \"Sharp\",\n A$1 = \"Sharp Duotone\",\n P$1 = \"Chisel\",\n j$1 = \"Etch\",\n B$1 = \"Jelly\",\n N$1 = \"Jelly Duo\",\n k$1 = \"Jelly Fill\",\n D$1 = \"Notdog\",\n C$1 = \"Notdog Duo\",\n T$1 = \"Slab\",\n L$1 = \"Slab Press\",\n W$1 = \"Thumbprint\",\n R$1 = \"Utility\",\n K$1 = \"Utility Duo\",\n U$1 = \"Utility Fill\",\n J$1 = \"Whiteboard\",\n ml$1 = (_ml = {}, _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, n$1, F$1), o$1, v$1), u$1, S$1), s$1, A$1), h$1, P$1), g$1, j$1), y$1, B$1), e$1, N$1), m$1, k$1), p$1, D$1), _defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_defineProperty(_ml, a$1, C$1), w$1, T$1), b$1, L$1), r$1, W$1), c$1, R$1), i$1, K$1), x$1, U$1), I$1, J$1));\n var E$1 = \"kit\",\n d$1 = \"kit-duotone\",\n _$1 = \"Kit\",\n M$1 = \"Kit Duotone\",\n rt$1 = _defineProperty(_defineProperty({}, E$1, _$1), d$1, M$1);\n var $t$1 = {\n classic: {\n \"fa-brands\": \"fab\",\n \"fa-duotone\": \"fad\",\n \"fa-light\": \"fal\",\n \"fa-regular\": \"far\",\n \"fa-solid\": \"fas\",\n \"fa-thin\": \"fat\"\n },\n duotone: {\n \"fa-regular\": \"fadr\",\n \"fa-light\": \"fadl\",\n \"fa-thin\": \"fadt\"\n },\n sharp: {\n \"fa-solid\": \"fass\",\n \"fa-regular\": \"fasr\",\n \"fa-light\": \"fasl\",\n \"fa-thin\": \"fast\"\n },\n \"sharp-duotone\": {\n \"fa-solid\": \"fasds\",\n \"fa-regular\": \"fasdr\",\n \"fa-light\": \"fasdl\",\n \"fa-thin\": \"fasdt\"\n },\n slab: {\n \"fa-regular\": \"faslr\"\n },\n \"slab-press\": {\n \"fa-regular\": \"faslpr\"\n },\n whiteboard: {\n \"fa-semibold\": \"fawsb\"\n },\n thumbprint: {\n \"fa-light\": \"fatl\"\n },\n notdog: {\n \"fa-solid\": \"fans\"\n },\n \"notdog-duo\": {\n \"fa-solid\": \"fands\"\n },\n etch: {\n \"fa-solid\": \"faes\"\n },\n jelly: {\n \"fa-regular\": \"fajr\"\n },\n \"jelly-fill\": {\n \"fa-regular\": \"fajfr\"\n },\n \"jelly-duo\": {\n \"fa-regular\": \"fajdr\"\n },\n chisel: {\n \"fa-regular\": \"facr\"\n },\n utility: {\n \"fa-semibold\": \"fausb\"\n },\n \"utility-duo\": {\n \"fa-semibold\": \"faudsb\"\n },\n \"utility-fill\": {\n \"fa-semibold\": \"faufsb\"\n }\n },\n z = {\n classic: [\"fas\", \"far\", \"fal\", \"fat\", \"fad\"],\n duotone: [\"fadr\", \"fadl\", \"fadt\"],\n sharp: [\"fass\", \"fasr\", \"fasl\", \"fast\"],\n \"sharp-duotone\": [\"fasds\", \"fasdr\", \"fasdl\", \"fasdt\"],\n slab: [\"faslr\"],\n \"slab-press\": [\"faslpr\"],\n whiteboard: [\"fawsb\"],\n thumbprint: [\"fatl\"],\n notdog: [\"fans\"],\n \"notdog-duo\": [\"fands\"],\n etch: [\"faes\"],\n jelly: [\"fajr\"],\n \"jelly-fill\": [\"fajfr\"],\n \"jelly-duo\": [\"fajdr\"],\n chisel: [\"facr\"],\n utility: [\"fausb\"],\n \"utility-duo\": [\"faudsb\"],\n \"utility-fill\": [\"faufsb\"]\n },\n Ht$1 = {\n classic: {\n fab: \"fa-brands\",\n fad: \"fa-duotone\",\n fal: \"fa-light\",\n far: \"fa-regular\",\n fas: \"fa-solid\",\n fat: \"fa-thin\"\n },\n duotone: {\n fadr: \"fa-regular\",\n fadl: \"fa-light\",\n fadt: \"fa-thin\"\n },\n sharp: {\n fass: \"fa-solid\",\n fasr: \"fa-regular\",\n fasl: \"fa-light\",\n fast: \"fa-thin\"\n },\n \"sharp-duotone\": {\n fasds: \"fa-solid\",\n fasdr: \"fa-regular\",\n fasdl: \"fa-light\",\n fasdt: \"fa-thin\"\n },\n slab: {\n faslr: \"fa-regular\"\n },\n \"slab-press\": {\n faslpr: \"fa-regular\"\n },\n whiteboard: {\n fawsb: \"fa-semibold\"\n },\n thumbprint: {\n fatl: \"fa-light\"\n },\n notdog: {\n fans: \"fa-solid\"\n },\n \"notdog-duo\": {\n fands: \"fa-solid\"\n },\n etch: {\n faes: \"fa-solid\"\n },\n jelly: {\n fajr: \"fa-regular\"\n },\n \"jelly-fill\": {\n fajfr: \"fa-regular\"\n },\n \"jelly-duo\": {\n fajdr: \"fa-regular\"\n },\n chisel: {\n facr: \"fa-regular\"\n },\n utility: {\n fausb: \"fa-semibold\"\n },\n \"utility-duo\": {\n faudsb: \"fa-semibold\"\n },\n \"utility-fill\": {\n faufsb: \"fa-semibold\"\n }\n },\n Y$1 = [\"fa-solid\", \"fa-regular\", \"fa-light\", \"fa-thin\", \"fa-duotone\", \"fa-brands\", \"fa-semibold\"],\n Zt$1 = [\"fa\", \"fas\", \"far\", \"fal\", \"fat\", \"fad\", \"fadr\", \"fadl\", \"fadt\", \"fab\", \"fass\", \"fasr\", \"fasl\", \"fast\", \"fasds\", \"fasdr\", \"fasdl\", \"fasdt\", \"faslr\", \"faslpr\", \"fawsb\", \"fatl\", \"fans\", \"fands\", \"faes\", \"fajr\", \"fajfr\", \"fajdr\", \"facr\", \"fausb\", \"faudsb\", \"faufsb\"].concat(f$1, Y$1),\n G$1 = [\"solid\", \"regular\", \"light\", \"thin\", \"duotone\", \"brands\", \"semibold\"],\n O$1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10],\n V$1 = O$1.concat([11, 12, 13, 14, 15, 16, 17, 18, 19, 20]),\n $$1 = [\"aw\", \"fw\", \"pull-left\", \"pull-right\"],\n to = [].concat(_toConsumableArray(Object.keys(z)), G$1, $$1, [\"2xs\", \"xs\", \"sm\", \"lg\", \"xl\", \"2xl\", \"beat\", \"border\", \"fade\", \"beat-fade\", \"bounce\", \"flip-both\", \"flip-horizontal\", \"flip-vertical\", \"flip\", \"inverse\", \"layers\", \"layers-bottom-left\", \"layers-bottom-right\", \"layers-counter\", \"layers-text\", \"layers-top-left\", \"layers-top-right\", \"li\", \"pull-end\", \"pull-start\", \"pulse\", \"rotate-180\", \"rotate-270\", \"rotate-90\", \"rotate-by\", \"shake\", \"spin-pulse\", \"spin-reverse\", \"spin\", \"stack-1x\", \"stack-2x\", \"stack\", \"ul\", \"width-auto\", \"width-fixed\", l$1.GROUP, l$1.SWAP_OPACITY, l$1.PRIMARY, l$1.SECONDARY]).concat(O$1.map(function (t) {\n return \"\".concat(t, \"x\");\n })).concat(V$1.map(function (t) {\n return \"w-\".concat(t);\n }));\n var ro = {\n \"Font Awesome 5 Free\": {\n 900: \"fas\",\n 400: \"far\"\n },\n \"Font Awesome 5 Pro\": {\n 900: \"fas\",\n 400: \"far\",\n normal: \"far\",\n 300: \"fal\"\n },\n \"Font Awesome 5 Brands\": {\n 400: \"fab\",\n normal: \"fab\"\n },\n \"Font Awesome 5 Duotone\": {\n 900: \"fad\"\n }\n };\n\n var NAMESPACE_IDENTIFIER = '___FONT_AWESOME___';\n var UNITS_IN_GRID = 16;\n var DEFAULT_CSS_PREFIX = 'fa';\n var DEFAULT_REPLACEMENT_CLASS = 'svg-inline--fa';\n var DATA_FA_I2SVG = 'data-fa-i2svg';\n var DATA_FA_PSEUDO_ELEMENT = 'data-fa-pseudo-element';\n var DATA_FA_PSEUDO_ELEMENT_PENDING = 'data-fa-pseudo-element-pending';\n var DATA_PREFIX = 'data-prefix';\n var DATA_ICON = 'data-icon';\n var HTML_CLASS_I2SVG_BASE_CLASS = 'fontawesome-i2svg';\n var MUTATION_APPROACH_ASYNC = 'async';\n var TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS = ['HTML', 'HEAD', 'STYLE', 'SCRIPT'];\n var PSEUDO_ELEMENTS = ['::before', '::after', ':before', ':after'];\n var PRODUCTION = function () {\n try {\n return \"production\" === 'production';\n } catch (e$$1) {\n return false;\n }\n }();\n function familyProxy(obj) {\n // Defaults to the classic family if family is not available\n return new Proxy(obj, {\n get: function get(target, prop) {\n return prop in target ? target[prop] : target[i];\n }\n });\n }\n var _PREFIX_TO_STYLE = _objectSpread2({}, q);\n\n // We changed FACSSClassesToStyleId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _PREFIX_TO_STYLE below, so we are manually adding\n // {'fa-duotone': 'duotone'}\n _PREFIX_TO_STYLE[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n 'fa-duotone': 'duotone'\n }), q[i]), qt['kit']), qt['kit-duotone']);\n var PREFIX_TO_STYLE = familyProxy(_PREFIX_TO_STYLE);\n var _STYLE_TO_PREFIX = _objectSpread2({}, _t);\n\n // We changed FAStyleIdToShortPrefixId in the icons repo to be canonical and as such, \"classic\" family does not have any\n // duotone styles. But we do still need duotone in _STYLE_TO_PREFIX below, so we are manually adding {duotone: 'fad'}\n _STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n duotone: 'fad'\n }), _STYLE_TO_PREFIX[i]), ul['kit']), ul['kit-duotone']);\n var STYLE_TO_PREFIX = familyProxy(_STYLE_TO_PREFIX);\n var _PREFIX_TO_LONG_STYLE = _objectSpread2({}, Ht$1);\n _PREFIX_TO_LONG_STYLE[i] = _objectSpread2(_objectSpread2({}, _PREFIX_TO_LONG_STYLE[i]), fl['kit']);\n var PREFIX_TO_LONG_STYLE = familyProxy(_PREFIX_TO_LONG_STYLE);\n var _LONG_STYLE_TO_PREFIX = _objectSpread2({}, $t$1);\n _LONG_STYLE_TO_PREFIX[i] = _objectSpread2(_objectSpread2({}, _LONG_STYLE_TO_PREFIX[i]), ol['kit']);\n var LONG_STYLE_TO_PREFIX = familyProxy(_LONG_STYLE_TO_PREFIX);\n var ICON_SELECTION_SYNTAX_PATTERN = E;\n var LAYERS_TEXT_CLASSNAME = 'fa-layers-text';\n var FONT_FAMILY_PATTERN = _;\n var _FONT_WEIGHT_TO_PREFIX = _objectSpread2({}, gt);\n var FONT_WEIGHT_TO_PREFIX = familyProxy(_FONT_WEIGHT_TO_PREFIX);\n var ATTRIBUTES_WATCHED_FOR_MUTATION = ['class', 'data-prefix', 'data-icon', 'data-fa-transform', 'data-fa-mask'];\n var DUOTONE_CLASSES = H;\n var RESERVED_CLASSES = [].concat(_toConsumableArray(Ht), _toConsumableArray(to));\n\n var initial = WINDOW.FontAwesomeConfig || {};\n function getAttrConfig(attr) {\n var element = DOCUMENT.querySelector('script[' + attr + ']');\n if (element) {\n return element.getAttribute(attr);\n }\n }\n function coerce(val) {\n // Getting an empty string will occur if the attribute is set on the HTML tag but without a value\n // We'll assume that this is an indication that it should be toggled to true\n if (val === '') return true;\n if (val === 'false') return false;\n if (val === 'true') return true;\n return val;\n }\n if (DOCUMENT && typeof DOCUMENT.querySelector === 'function') {\n var attrs = [['data-family-prefix', 'familyPrefix'], ['data-css-prefix', 'cssPrefix'], ['data-family-default', 'familyDefault'], ['data-style-default', 'styleDefault'], ['data-replacement-class', 'replacementClass'], ['data-auto-replace-svg', 'autoReplaceSvg'], ['data-auto-add-css', 'autoAddCss'], ['data-search-pseudo-elements', 'searchPseudoElements'], ['data-search-pseudo-elements-warnings', 'searchPseudoElementsWarnings'], ['data-search-pseudo-elements-full-scan', 'searchPseudoElementsFullScan'], ['data-observe-mutations', 'observeMutations'], ['data-mutate-approach', 'mutateApproach'], ['data-keep-original-source', 'keepOriginalSource'], ['data-measure-performance', 'measurePerformance'], ['data-show-missing-icons', 'showMissingIcons']];\n attrs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n attr = _ref2[0],\n key = _ref2[1];\n var val = coerce(getAttrConfig(attr));\n if (val !== undefined && val !== null) {\n initial[key] = val;\n }\n });\n }\n var _default = {\n styleDefault: 'solid',\n familyDefault: i,\n cssPrefix: DEFAULT_CSS_PREFIX,\n replacementClass: DEFAULT_REPLACEMENT_CLASS,\n autoReplaceSvg: true,\n autoAddCss: true,\n searchPseudoElements: false,\n searchPseudoElementsWarnings: true,\n searchPseudoElementsFullScan: false,\n observeMutations: true,\n mutateApproach: 'async',\n keepOriginalSource: true,\n measurePerformance: false,\n showMissingIcons: true\n };\n\n // familyPrefix is deprecated but we must still support it if present\n if (initial.familyPrefix) {\n initial.cssPrefix = initial.familyPrefix;\n }\n var _config = _objectSpread2(_objectSpread2({}, _default), initial);\n if (!_config.autoReplaceSvg) _config.observeMutations = false;\n var config = {};\n Object.keys(_default).forEach(function (key) {\n Object.defineProperty(config, key, {\n enumerable: true,\n set: function set(val) {\n _config[key] = val;\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config[key];\n }\n });\n });\n\n // familyPrefix is deprecated as of 6.2.0 and should be removed in 7.0.0\n Object.defineProperty(config, 'familyPrefix', {\n enumerable: true,\n set: function set(val) {\n _config.cssPrefix = val;\n _onChangeCb.forEach(function (cb) {\n return cb(config);\n });\n },\n get: function get() {\n return _config.cssPrefix;\n }\n });\n WINDOW.FontAwesomeConfig = config;\n var _onChangeCb = [];\n function onChange(cb) {\n _onChangeCb.push(cb);\n return function () {\n _onChangeCb.splice(_onChangeCb.indexOf(cb), 1);\n };\n }\n\n var d$2 = UNITS_IN_GRID;\n var meaninglessTransform = {\n size: 16,\n x: 0,\n y: 0,\n rotate: 0,\n flipX: false,\n flipY: false\n };\n function bunker(fn) {\n try {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n fn.apply(void 0, args);\n } catch (e) {\n if (!PRODUCTION) {\n throw e;\n }\n }\n }\n function insertCss(css) {\n if (!css || !IS_DOM) {\n return;\n }\n var style = DOCUMENT.createElement('style');\n style.setAttribute('type', 'text/css');\n style.innerHTML = css;\n var headChildren = DOCUMENT.head.childNodes;\n var beforeChild = null;\n for (var i = headChildren.length - 1; i > -1; i--) {\n var child = headChildren[i];\n var tagName = (child.tagName || '').toUpperCase();\n if (['STYLE', 'LINK'].indexOf(tagName) > -1) {\n beforeChild = child;\n }\n }\n DOCUMENT.head.insertBefore(style, beforeChild);\n return css;\n }\n var idPool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';\n function nextUniqueId() {\n var size = 12;\n var id = '';\n while (size-- > 0) {\n id += idPool[Math.random() * 62 | 0];\n }\n return id;\n }\n function toArray(obj) {\n var array = [];\n for (var i = (obj || []).length >>> 0; i--;) {\n array[i] = obj[i];\n }\n return array;\n }\n function classArray(node) {\n if (node.classList) {\n return toArray(node.classList);\n } else {\n return (node.getAttribute('class') || '').split(' ').filter(function (i) {\n return i;\n });\n }\n }\n function htmlEscape(str) {\n return \"\".concat(str).replace(/&/g, '&').replace(/\"/g, '"').replace(/'/g, ''').replace(//g, '>');\n }\n function joinAttributes(attributes) {\n return Object.keys(attributes || {}).reduce(function (acc, attributeName) {\n return acc + \"\".concat(attributeName, \"=\\\"\").concat(htmlEscape(attributes[attributeName]), \"\\\" \");\n }, '').trim();\n }\n function joinStyles(styles) {\n return Object.keys(styles || {}).reduce(function (acc, styleName) {\n return acc + \"\".concat(styleName, \": \").concat(styles[styleName].trim(), \";\");\n }, '');\n }\n function transformIsMeaningful(transform) {\n return transform.size !== meaninglessTransform.size || transform.x !== meaninglessTransform.x || transform.y !== meaninglessTransform.y || transform.rotate !== meaninglessTransform.rotate || transform.flipX || transform.flipY;\n }\n function transformForSvg(_ref) {\n var transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n return {\n outer: outer,\n inner: inner,\n path: path\n };\n }\n function transformForCss(_ref2) {\n var transform = _ref2.transform,\n _ref2$width = _ref2.width,\n width = _ref2$width === void 0 ? UNITS_IN_GRID : _ref2$width,\n _ref2$height = _ref2.height,\n height = _ref2$height === void 0 ? UNITS_IN_GRID : _ref2$height,\n _ref2$startCentered = _ref2.startCentered,\n startCentered = _ref2$startCentered === void 0 ? false : _ref2$startCentered;\n var val = '';\n if (startCentered && IS_IE) {\n val += \"translate(\".concat(transform.x / d$2 - width / 2, \"em, \").concat(transform.y / d$2 - height / 2, \"em) \");\n } else if (startCentered) {\n val += \"translate(calc(-50% + \".concat(transform.x / d$2, \"em), calc(-50% + \").concat(transform.y / d$2, \"em)) \");\n } else {\n val += \"translate(\".concat(transform.x / d$2, \"em, \").concat(transform.y / d$2, \"em) \");\n }\n val += \"scale(\".concat(transform.size / d$2 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / d$2 * (transform.flipY ? -1 : 1), \") \");\n val += \"rotate(\".concat(transform.rotate, \"deg) \");\n return val;\n }\n\n var baseStyles = \":root, :host {\\n --fa-font-solid: normal 900 1em/1 \\\"Font Awesome 7 Free\\\";\\n --fa-font-regular: normal 400 1em/1 \\\"Font Awesome 7 Free\\\";\\n --fa-font-light: normal 300 1em/1 \\\"Font Awesome 7 Pro\\\";\\n --fa-font-thin: normal 100 1em/1 \\\"Font Awesome 7 Pro\\\";\\n --fa-font-duotone: normal 900 1em/1 \\\"Font Awesome 7 Duotone\\\";\\n --fa-font-duotone-regular: normal 400 1em/1 \\\"Font Awesome 7 Duotone\\\";\\n --fa-font-duotone-light: normal 300 1em/1 \\\"Font Awesome 7 Duotone\\\";\\n --fa-font-duotone-thin: normal 100 1em/1 \\\"Font Awesome 7 Duotone\\\";\\n --fa-font-brands: normal 400 1em/1 \\\"Font Awesome 7 Brands\\\";\\n --fa-font-sharp-solid: normal 900 1em/1 \\\"Font Awesome 7 Sharp\\\";\\n --fa-font-sharp-regular: normal 400 1em/1 \\\"Font Awesome 7 Sharp\\\";\\n --fa-font-sharp-light: normal 300 1em/1 \\\"Font Awesome 7 Sharp\\\";\\n --fa-font-sharp-thin: normal 100 1em/1 \\\"Font Awesome 7 Sharp\\\";\\n --fa-font-sharp-duotone-solid: normal 900 1em/1 \\\"Font Awesome 7 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-regular: normal 400 1em/1 \\\"Font Awesome 7 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-light: normal 300 1em/1 \\\"Font Awesome 7 Sharp Duotone\\\";\\n --fa-font-sharp-duotone-thin: normal 100 1em/1 \\\"Font Awesome 7 Sharp Duotone\\\";\\n --fa-font-slab-regular: normal 400 1em/1 \\\"Font Awesome 7 Slab\\\";\\n --fa-font-slab-press-regular: normal 400 1em/1 \\\"Font Awesome 7 Slab Press\\\";\\n --fa-font-whiteboard-semibold: normal 600 1em/1 \\\"Font Awesome 7 Whiteboard\\\";\\n --fa-font-thumbprint-light: normal 300 1em/1 \\\"Font Awesome 7 Thumbprint\\\";\\n --fa-font-notdog-solid: normal 900 1em/1 \\\"Font Awesome 7 Notdog\\\";\\n --fa-font-notdog-duo-solid: normal 900 1em/1 \\\"Font Awesome 7 Notdog Duo\\\";\\n --fa-font-etch-solid: normal 900 1em/1 \\\"Font Awesome 7 Etch\\\";\\n --fa-font-jelly-regular: normal 400 1em/1 \\\"Font Awesome 7 Jelly\\\";\\n --fa-font-jelly-fill-regular: normal 400 1em/1 \\\"Font Awesome 7 Jelly Fill\\\";\\n --fa-font-jelly-duo-regular: normal 400 1em/1 \\\"Font Awesome 7 Jelly Duo\\\";\\n --fa-font-chisel-regular: normal 400 1em/1 \\\"Font Awesome 7 Chisel\\\";\\n --fa-font-utility-semibold: normal 600 1em/1 \\\"Font Awesome 7 Utility\\\";\\n --fa-font-utility-duo-semibold: normal 600 1em/1 \\\"Font Awesome 7 Utility Duo\\\";\\n --fa-font-utility-fill-semibold: normal 600 1em/1 \\\"Font Awesome 7 Utility Fill\\\";\\n}\\n\\n.svg-inline--fa {\\n box-sizing: content-box;\\n display: var(--fa-display, inline-block);\\n height: 1em;\\n overflow: visible;\\n vertical-align: -0.125em;\\n width: var(--fa-width, 1.25em);\\n}\\n.svg-inline--fa.fa-2xs {\\n vertical-align: 0.1em;\\n}\\n.svg-inline--fa.fa-xs {\\n vertical-align: 0em;\\n}\\n.svg-inline--fa.fa-sm {\\n vertical-align: -0.0714285714em;\\n}\\n.svg-inline--fa.fa-lg {\\n vertical-align: -0.2em;\\n}\\n.svg-inline--fa.fa-xl {\\n vertical-align: -0.25em;\\n}\\n.svg-inline--fa.fa-2xl {\\n vertical-align: -0.3125em;\\n}\\n.svg-inline--fa.fa-pull-left,\\n.svg-inline--fa .fa-pull-start {\\n float: inline-start;\\n margin-inline-end: var(--fa-pull-margin, 0.3em);\\n}\\n.svg-inline--fa.fa-pull-right,\\n.svg-inline--fa .fa-pull-end {\\n float: inline-end;\\n margin-inline-start: var(--fa-pull-margin, 0.3em);\\n}\\n.svg-inline--fa.fa-li {\\n width: var(--fa-li-width, 2em);\\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\\n inset-block-start: 0.25em; /* syncing vertical alignment with Web Font rendering */\\n}\\n\\n.fa-layers-counter, .fa-layers-text {\\n display: inline-block;\\n position: absolute;\\n text-align: center;\\n}\\n\\n.fa-layers {\\n display: inline-block;\\n height: 1em;\\n position: relative;\\n text-align: center;\\n vertical-align: -0.125em;\\n width: var(--fa-width, 1.25em);\\n}\\n.fa-layers .svg-inline--fa {\\n inset: 0;\\n margin: auto;\\n position: absolute;\\n transform-origin: center center;\\n}\\n\\n.fa-layers-text {\\n left: 50%;\\n top: 50%;\\n transform: translate(-50%, -50%);\\n transform-origin: center center;\\n}\\n\\n.fa-layers-counter {\\n background-color: var(--fa-counter-background-color, #ff253a);\\n border-radius: var(--fa-counter-border-radius, 1em);\\n box-sizing: border-box;\\n color: var(--fa-inverse, #fff);\\n line-height: var(--fa-counter-line-height, 1);\\n max-width: var(--fa-counter-max-width, 5em);\\n min-width: var(--fa-counter-min-width, 1.5em);\\n overflow: hidden;\\n padding: var(--fa-counter-padding, 0.25em 0.5em);\\n right: var(--fa-right, 0);\\n text-overflow: ellipsis;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-counter-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-bottom-right {\\n bottom: var(--fa-bottom, 0);\\n right: var(--fa-right, 0);\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom right;\\n}\\n\\n.fa-layers-bottom-left {\\n bottom: var(--fa-bottom, 0);\\n left: var(--fa-left, 0);\\n right: auto;\\n top: auto;\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: bottom left;\\n}\\n\\n.fa-layers-top-right {\\n top: var(--fa-top, 0);\\n right: var(--fa-right, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top right;\\n}\\n\\n.fa-layers-top-left {\\n left: var(--fa-left, 0);\\n right: auto;\\n top: var(--fa-top, 0);\\n transform: scale(var(--fa-layers-scale, 0.25));\\n transform-origin: top left;\\n}\\n\\n.fa-1x {\\n font-size: 1em;\\n}\\n\\n.fa-2x {\\n font-size: 2em;\\n}\\n\\n.fa-3x {\\n font-size: 3em;\\n}\\n\\n.fa-4x {\\n font-size: 4em;\\n}\\n\\n.fa-5x {\\n font-size: 5em;\\n}\\n\\n.fa-6x {\\n font-size: 6em;\\n}\\n\\n.fa-7x {\\n font-size: 7em;\\n}\\n\\n.fa-8x {\\n font-size: 8em;\\n}\\n\\n.fa-9x {\\n font-size: 9em;\\n}\\n\\n.fa-10x {\\n font-size: 10em;\\n}\\n\\n.fa-2xs {\\n font-size: calc(10 / 16 * 1em); /* converts a 10px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 10 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 10 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-xs {\\n font-size: calc(12 / 16 * 1em); /* converts a 12px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 12 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 12 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-sm {\\n font-size: calc(14 / 16 * 1em); /* converts a 14px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 14 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 14 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-lg {\\n font-size: calc(20 / 16 * 1em); /* converts a 20px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 20 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 20 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-xl {\\n font-size: calc(24 / 16 * 1em); /* converts a 24px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 24 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 24 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-2xl {\\n font-size: calc(32 / 16 * 1em); /* converts a 32px size into an em-based value that's relative to the scale's 16px base */\\n line-height: calc(1 / 32 * 1em); /* sets the line-height of the icon back to that of it's parent */\\n vertical-align: calc((6 / 32 - 0.375) * 1em); /* vertically centers the icon taking into account the surrounding text's descender */\\n}\\n\\n.fa-width-auto {\\n --fa-width: auto;\\n}\\n\\n.fa-fw,\\n.fa-width-fixed {\\n --fa-width: 1.25em;\\n}\\n\\n.fa-ul {\\n list-style-type: none;\\n margin-inline-start: var(--fa-li-margin, 2.5em);\\n padding-inline-start: 0;\\n}\\n.fa-ul > li {\\n position: relative;\\n}\\n\\n.fa-li {\\n inset-inline-start: calc(-1 * var(--fa-li-width, 2em));\\n position: absolute;\\n text-align: center;\\n width: var(--fa-li-width, 2em);\\n line-height: inherit;\\n}\\n\\n/* Heads Up: Bordered Icons will not be supported in the future!\\n - This feature will be deprecated in the next major release of Font Awesome (v8)!\\n - You may continue to use it in this version *v7), but it will not be supported in Font Awesome v8.\\n*/\\n/* Notes:\\n* --@{v.$css-prefix}-border-width = 1/16 by default (to render as ~1px based on a 16px default font-size)\\n* --@{v.$css-prefix}-border-padding =\\n ** 3/16 for vertical padding (to give ~2px of vertical whitespace around an icon considering it's vertical alignment)\\n ** 4/16 for horizontal padding (to give ~4px of horizontal whitespace around an icon)\\n*/\\n.fa-border {\\n border-color: var(--fa-border-color, #eee);\\n border-radius: var(--fa-border-radius, 0.1em);\\n border-style: var(--fa-border-style, solid);\\n border-width: var(--fa-border-width, 0.0625em);\\n box-sizing: var(--fa-border-box-sizing, content-box);\\n padding: var(--fa-border-padding, 0.1875em 0.25em);\\n}\\n\\n.fa-pull-left,\\n.fa-pull-start {\\n float: inline-start;\\n margin-inline-end: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-pull-right,\\n.fa-pull-end {\\n float: inline-end;\\n margin-inline-start: var(--fa-pull-margin, 0.3em);\\n}\\n\\n.fa-beat {\\n animation-name: fa-beat;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-bounce {\\n animation-name: fa-bounce;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));\\n}\\n\\n.fa-fade {\\n animation-name: fa-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-beat-fade {\\n animation-name: fa-beat-fade;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));\\n}\\n\\n.fa-flip {\\n animation-name: fa-flip;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, ease-in-out);\\n}\\n\\n.fa-shake {\\n animation-name: fa-shake;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin {\\n animation-name: fa-spin;\\n animation-delay: var(--fa-animation-delay, 0s);\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 2s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, linear);\\n}\\n\\n.fa-spin-reverse {\\n --fa-animation-direction: reverse;\\n}\\n\\n.fa-pulse,\\n.fa-spin-pulse {\\n animation-name: fa-spin;\\n animation-direction: var(--fa-animation-direction, normal);\\n animation-duration: var(--fa-animation-duration, 1s);\\n animation-iteration-count: var(--fa-animation-iteration-count, infinite);\\n animation-timing-function: var(--fa-animation-timing, steps(8));\\n}\\n\\n@media (prefers-reduced-motion: reduce) {\\n .fa-beat,\\n .fa-bounce,\\n .fa-fade,\\n .fa-beat-fade,\\n .fa-flip,\\n .fa-pulse,\\n .fa-shake,\\n .fa-spin,\\n .fa-spin-pulse {\\n animation: none !important;\\n transition: none !important;\\n }\\n}\\n@keyframes fa-beat {\\n 0%, 90% {\\n transform: scale(1);\\n }\\n 45% {\\n transform: scale(var(--fa-beat-scale, 1.25));\\n }\\n}\\n@keyframes fa-bounce {\\n 0% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 10% {\\n transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);\\n }\\n 30% {\\n transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));\\n }\\n 50% {\\n transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);\\n }\\n 57% {\\n transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));\\n }\\n 64% {\\n transform: scale(1, 1) translateY(0);\\n }\\n 100% {\\n transform: scale(1, 1) translateY(0);\\n }\\n}\\n@keyframes fa-fade {\\n 50% {\\n opacity: var(--fa-fade-opacity, 0.4);\\n }\\n}\\n@keyframes fa-beat-fade {\\n 0%, 100% {\\n opacity: var(--fa-beat-fade-opacity, 0.4);\\n transform: scale(1);\\n }\\n 50% {\\n opacity: 1;\\n transform: scale(var(--fa-beat-fade-scale, 1.125));\\n }\\n}\\n@keyframes fa-flip {\\n 50% {\\n transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));\\n }\\n}\\n@keyframes fa-shake {\\n 0% {\\n transform: rotate(-15deg);\\n }\\n 4% {\\n transform: rotate(15deg);\\n }\\n 8%, 24% {\\n transform: rotate(-18deg);\\n }\\n 12%, 28% {\\n transform: rotate(18deg);\\n }\\n 16% {\\n transform: rotate(-22deg);\\n }\\n 20% {\\n transform: rotate(22deg);\\n }\\n 32% {\\n transform: rotate(-12deg);\\n }\\n 36% {\\n transform: rotate(12deg);\\n }\\n 40%, 100% {\\n transform: rotate(0deg);\\n }\\n}\\n@keyframes fa-spin {\\n 0% {\\n transform: rotate(0deg);\\n }\\n 100% {\\n transform: rotate(360deg);\\n }\\n}\\n.fa-rotate-90 {\\n transform: rotate(90deg);\\n}\\n\\n.fa-rotate-180 {\\n transform: rotate(180deg);\\n}\\n\\n.fa-rotate-270 {\\n transform: rotate(270deg);\\n}\\n\\n.fa-flip-horizontal {\\n transform: scale(-1, 1);\\n}\\n\\n.fa-flip-vertical {\\n transform: scale(1, -1);\\n}\\n\\n.fa-flip-both,\\n.fa-flip-horizontal.fa-flip-vertical {\\n transform: scale(-1, -1);\\n}\\n\\n.fa-rotate-by {\\n transform: rotate(var(--fa-rotate-angle, 0));\\n}\\n\\n.svg-inline--fa .fa-primary {\\n fill: var(--fa-primary-color, currentColor);\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa .fa-secondary {\\n fill: var(--fa-secondary-color, currentColor);\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-primary {\\n opacity: var(--fa-secondary-opacity, 0.4);\\n}\\n\\n.svg-inline--fa.fa-swap-opacity .fa-secondary {\\n opacity: var(--fa-primary-opacity, 1);\\n}\\n\\n.svg-inline--fa mask .fa-primary,\\n.svg-inline--fa mask .fa-secondary {\\n fill: black;\\n}\\n\\n.svg-inline--fa.fa-inverse {\\n fill: var(--fa-inverse, #fff);\\n}\\n\\n.fa-stack {\\n display: inline-block;\\n height: 2em;\\n line-height: 2em;\\n position: relative;\\n vertical-align: middle;\\n width: 2.5em;\\n}\\n\\n.fa-inverse {\\n color: var(--fa-inverse, #fff);\\n}\\n\\n.svg-inline--fa.fa-stack-1x {\\n --fa-width: 1.25em;\\n height: 1em;\\n width: var(--fa-width);\\n}\\n.svg-inline--fa.fa-stack-2x {\\n --fa-width: 2.5em;\\n height: 2em;\\n width: var(--fa-width);\\n}\\n\\n.fa-stack-1x,\\n.fa-stack-2x {\\n inset: 0;\\n margin: auto;\\n position: absolute;\\n z-index: var(--fa-stack-z-index, auto);\\n}\";\n\n function css() {\n var dcp = DEFAULT_CSS_PREFIX;\n var drc = DEFAULT_REPLACEMENT_CLASS;\n var fp = config.cssPrefix;\n var rc = config.replacementClass;\n var s = baseStyles;\n if (fp !== dcp || rc !== drc) {\n var dPatt = new RegExp(\"\\\\.\".concat(dcp, \"\\\\-\"), 'g');\n var customPropPatt = new RegExp(\"\\\\--\".concat(dcp, \"\\\\-\"), 'g');\n var rPatt = new RegExp(\"\\\\.\".concat(drc), 'g');\n s = s.replace(dPatt, \".\".concat(fp, \"-\")).replace(customPropPatt, \"--\".concat(fp, \"-\")).replace(rPatt, \".\".concat(rc));\n }\n return s;\n }\n var _cssInserted = false;\n function ensureCss() {\n if (config.autoAddCss && !_cssInserted) {\n insertCss(css());\n _cssInserted = true;\n }\n }\n var InjectCSS = {\n mixout: function mixout() {\n return {\n dom: {\n css: css,\n insertCss: ensureCss\n }\n };\n },\n hooks: function hooks() {\n return {\n beforeDOMElementCreation: function beforeDOMElementCreation() {\n ensureCss();\n },\n beforeI2svg: function beforeI2svg() {\n ensureCss();\n }\n };\n }\n };\n\n var w$2 = WINDOW || {};\n if (!w$2[NAMESPACE_IDENTIFIER]) w$2[NAMESPACE_IDENTIFIER] = {};\n if (!w$2[NAMESPACE_IDENTIFIER].styles) w$2[NAMESPACE_IDENTIFIER].styles = {};\n if (!w$2[NAMESPACE_IDENTIFIER].hooks) w$2[NAMESPACE_IDENTIFIER].hooks = {};\n if (!w$2[NAMESPACE_IDENTIFIER].shims) w$2[NAMESPACE_IDENTIFIER].shims = [];\n var namespace = w$2[NAMESPACE_IDENTIFIER];\n\n var functions = [];\n var _listener = function listener() {\n DOCUMENT.removeEventListener('DOMContentLoaded', _listener);\n loaded = 1;\n functions.map(function (fn) {\n return fn();\n });\n };\n var loaded = false;\n if (IS_DOM) {\n loaded = (DOCUMENT.documentElement.doScroll ? /^loaded|^c/ : /^loaded|^i|^c/).test(DOCUMENT.readyState);\n if (!loaded) DOCUMENT.addEventListener('DOMContentLoaded', _listener);\n }\n function domready (fn) {\n if (!IS_DOM) return;\n loaded ? setTimeout(fn, 0) : functions.push(fn);\n }\n\n function toHtml(abstractNodes) {\n var tag = abstractNodes.tag,\n _abstractNodes$attrib = abstractNodes.attributes,\n attributes = _abstractNodes$attrib === void 0 ? {} : _abstractNodes$attrib,\n _abstractNodes$childr = abstractNodes.children,\n children = _abstractNodes$childr === void 0 ? [] : _abstractNodes$childr;\n if (typeof abstractNodes === 'string') {\n return htmlEscape(abstractNodes);\n } else {\n return \"<\".concat(tag, \" \").concat(joinAttributes(attributes), \">\").concat(children.map(toHtml).join(''), \"\");\n }\n }\n\n function iconFromMapping(mapping, prefix, iconName) {\n if (mapping && mapping[prefix] && mapping[prefix][iconName]) {\n return {\n prefix: prefix,\n iconName: iconName,\n icon: mapping[prefix][iconName]\n };\n }\n }\n\n /**\n * Internal helper to bind a function known to have 4 arguments\n * to a given context.\n */\n var bindInternal4 = function bindInternal4(func, thisContext) {\n return function (a, b, c, d) {\n return func.call(thisContext, a, b, c, d);\n };\n };\n\n /**\n * # Reduce\n *\n * A fast object `.reduce()` implementation.\n *\n * @param {Object} subject The object to reduce over.\n * @param {Function} fn The reducer function.\n * @param {mixed} initialValue The initial value for the reducer, defaults to subject[0].\n * @param {Object} thisContext The context for the reducer.\n * @return {mixed} The final result.\n */\n var reduce = function fastReduceObject(subject, fn, initialValue, thisContext) {\n var keys = Object.keys(subject),\n length = keys.length,\n iterator = thisContext !== undefined ? bindInternal4(fn, thisContext) : fn,\n i,\n key,\n result;\n if (initialValue === undefined) {\n i = 1;\n result = subject[keys[0]];\n } else {\n i = 0;\n result = initialValue;\n }\n for (; i < length; i++) {\n key = keys[i];\n result = iterator(result, subject[key], key, subject);\n }\n return result;\n };\n\n /**\n * Return hexadecimal string for a unicode character\n * Returns `null` when more than one character (not bytes!) are passed\n * For example: 'K' → '7B'\n */\n function toHex(unicode) {\n if (_toConsumableArray(unicode).length !== 1) return null;\n return unicode.codePointAt(0).toString(16);\n }\n\n function normalizeIcons(icons) {\n return Object.keys(icons).reduce(function (acc, iconName) {\n var icon = icons[iconName];\n var expanded = !!icon.icon;\n if (expanded) {\n acc[icon.iconName] = icon.icon;\n } else {\n acc[iconName] = icon;\n }\n return acc;\n }, {});\n }\n function defineIcons(prefix, icons) {\n var params = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var _params$skipHooks = params.skipHooks,\n skipHooks = _params$skipHooks === void 0 ? false : _params$skipHooks;\n var normalized = normalizeIcons(icons);\n if (typeof namespace.hooks.addPack === 'function' && !skipHooks) {\n namespace.hooks.addPack(prefix, normalizeIcons(icons));\n } else {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), normalized);\n }\n\n /**\n * Font Awesome 4 used the prefix of `fa` for all icons. With the introduction\n * of new styles we needed to differentiate between them. Prefix `fa` is now an alias\n * for `fas` so we'll ease the upgrade process for our users by automatically defining\n * this as well.\n */\n if (prefix === 'fas') {\n defineIcons('fa', icons);\n }\n }\n\n var MONO = 0x1;\n var DUO = 0x2;\n\n // New v7 compatible matchers using the style attribute to determine layer membership\n var modernMatches = [[DUO, /*#__PURE__*/_wrapRegExp(/path opacity=\"([^\"]*)\".*d=\"([^\"]*)\".*path.*d=\"([^\"]*)\"/, {\n d2: 2,\n d1: 3\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path opacity=\"([^\"]*)\".*d=\"([^\"]*)\"/, {\n d2: 2\n })], [MONO, /*#__PURE__*/_wrapRegExp(/path fill=\"currentColor\".*d=\"([^\"]+)\"/, {\n d1: 1\n })]];\n\n // Old <= v6 matchers, these should rarely get used.\n //\n // Why are there so many? Over the lifecycle of version 5 and 6 we modified the\n // syntax for our source SVG files several times. These patterns match the\n // historical record and attempt to handle backwards-compatibility in rare edge\n // cases (loading version 6 SVG source files using the version 7 SVG parser)\n var legacyMatches = [[DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\".*path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr2: 1,\n d2: 2,\n attr1: 3,\n d1: 4\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\".*path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2,\n attr2: 3,\n d2: 4\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*primary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path class=\"([^\"]*secondary[^\"]*)\".*d=\"([^\"]+)\"/, {\n attr2: 1,\n d2: 2\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\".*path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\"/, {\n d2: 1,\n attr2: 2,\n d1: 3,\n attr1: 4\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\".*path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\"/, {\n d1: 1,\n attr1: 2,\n d2: 3,\n attr2: 4\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*primary[^\"]*)\"/, {\n d1: 1,\n attr1: 2\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*class=\"([^\"]*secondary[^\"]*)\"/, {\n d2: 1,\n attr2: 2\n })], [DUO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\".*path d=\"([^\"]+)\"/, {\n d1: 1,\n d2: 2\n })], [MONO, /*#__PURE__*/_wrapRegExp(/path d=\"([^\"]+)\"/, {\n d1: 1\n })], [MONO, /*#__PURE__*/_wrapRegExp(/path style=\"([^\"]+)\".*d=\"([^\"]+)\"/, {\n attr1: 1,\n d1: 2\n })]];\n\n var styles = namespace.styles,\n shims = namespace.shims;\n var FAMILY_NAMES = Object.keys(PREFIX_TO_LONG_STYLE);\n var PREFIXES_FOR_FAMILY = FAMILY_NAMES.reduce(function (acc, familyId) {\n acc[familyId] = Object.keys(PREFIX_TO_LONG_STYLE[familyId]);\n return acc;\n }, {});\n var _defaultUsablePrefix = null;\n var _byUnicode = {};\n var _byLigature = {};\n var _byOldName = {};\n var _byOldUnicode = {};\n var _byAlias = {};\n function isReserved(name) {\n return ~RESERVED_CLASSES.indexOf(name);\n }\n function getIconName(cssPrefix, cls) {\n var parts = cls.split('-');\n var prefix = parts[0];\n var iconName = parts.slice(1).join('-');\n if (prefix === cssPrefix && iconName !== '' && !isReserved(iconName)) {\n return iconName;\n } else {\n return null;\n }\n }\n var build = function build() {\n var lookup = function lookup(reducer) {\n return reduce(styles, function (o$$1, style, prefix) {\n o$$1[prefix] = reduce(style, reducer, {});\n return o$$1;\n }, {});\n };\n _byUnicode = lookup(function (acc, icon, iconName) {\n if (icon[3]) {\n acc[icon[3]] = iconName;\n }\n if (icon[2]) {\n var aliases = icon[2].filter(function (a$$1) {\n return typeof a$$1 === 'number';\n });\n aliases.forEach(function (alias) {\n acc[alias.toString(16)] = iconName;\n });\n }\n return acc;\n });\n _byLigature = lookup(function (acc, icon, iconName) {\n acc[iconName] = iconName;\n if (icon[2]) {\n var aliases = icon[2].filter(function (a$$1) {\n return typeof a$$1 === 'string';\n });\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n }\n return acc;\n });\n _byAlias = lookup(function (acc, icon, iconName) {\n var aliases = icon[2];\n acc[iconName] = iconName;\n aliases.forEach(function (alias) {\n acc[alias] = iconName;\n });\n return acc;\n });\n\n // If we have a Kit, we can't determine if regular is available since we\n // could be auto-fetching it. We'll have to assume that it is available.\n var hasRegular = 'far' in styles || config.autoFetchSvg;\n var shimLookups = reduce(shims, function (acc, shim) {\n var maybeNameMaybeUnicode = shim[0];\n var prefix = shim[1];\n var iconName = shim[2];\n if (prefix === 'far' && !hasRegular) {\n prefix = 'fas';\n }\n if (typeof maybeNameMaybeUnicode === 'string') {\n acc.names[maybeNameMaybeUnicode] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n if (typeof maybeNameMaybeUnicode === 'number') {\n acc.unicodes[maybeNameMaybeUnicode.toString(16)] = {\n prefix: prefix,\n iconName: iconName\n };\n }\n return acc;\n }, {\n names: {},\n unicodes: {}\n });\n _byOldName = shimLookups.names;\n _byOldUnicode = shimLookups.unicodes;\n _defaultUsablePrefix = getCanonicalPrefix(config.styleDefault, {\n family: config.familyDefault\n });\n };\n onChange(function (c$$1) {\n _defaultUsablePrefix = getCanonicalPrefix(c$$1.styleDefault, {\n family: config.familyDefault\n });\n });\n build();\n function byUnicode(prefix, unicode) {\n return (_byUnicode[prefix] || {})[unicode];\n }\n function byLigature(prefix, ligature) {\n return (_byLigature[prefix] || {})[ligature];\n }\n function byAlias(prefix, alias) {\n return (_byAlias[prefix] || {})[alias];\n }\n function byOldName(name) {\n return _byOldName[name] || {\n prefix: null,\n iconName: null\n };\n }\n function byOldUnicode(unicode) {\n var oldUnicode = _byOldUnicode[unicode];\n var newUnicode = byUnicode('fas', unicode);\n return oldUnicode || (newUnicode ? {\n prefix: 'fas',\n iconName: newUnicode\n } : null) || {\n prefix: null,\n iconName: null\n };\n }\n function getDefaultUsablePrefix() {\n return _defaultUsablePrefix;\n }\n var emptyCanonicalIcon = function emptyCanonicalIcon() {\n return {\n prefix: null,\n iconName: null,\n rest: []\n };\n };\n function getFamilyId(values) {\n var family = i;\n var famProps = FAMILY_NAMES.reduce(function (acc, familyId) {\n acc[familyId] = \"\".concat(config.cssPrefix, \"-\").concat(familyId);\n return acc;\n }, {});\n rt.forEach(function (familyId) {\n if (values.includes(famProps[familyId]) || values.some(function (v$$1) {\n return PREFIXES_FOR_FAMILY[familyId].includes(v$$1);\n })) {\n family = familyId;\n }\n });\n return family;\n }\n function getCanonicalPrefix(styleOrPrefix) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$family = params.family,\n family = _params$family === void 0 ? i : _params$family;\n var style = PREFIX_TO_STYLE[family][styleOrPrefix];\n\n // handles the exception of passing in only a family of 'duotone' with no style\n if (family === t && !styleOrPrefix) {\n return 'fad';\n }\n var prefix = STYLE_TO_PREFIX[family][styleOrPrefix] || STYLE_TO_PREFIX[family][style];\n var defined = styleOrPrefix in namespace.styles ? styleOrPrefix : null;\n var result = prefix || defined || null;\n return result;\n }\n function moveNonFaClassesToRest(classNames) {\n var rest = [];\n var iconName = null;\n classNames.forEach(function (cls) {\n var result = getIconName(config.cssPrefix, cls);\n if (result) {\n iconName = result;\n } else if (cls) {\n rest.push(cls);\n }\n });\n return {\n iconName: iconName,\n rest: rest\n };\n }\n function sortedUniqueValues(arr) {\n return arr.sort().filter(function (value, index, arr) {\n return arr.indexOf(value) === index;\n });\n }\n var _faCombinedClasses = Zt$1.concat(Yt);\n function getCanonicalIcon(values) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$skipLookups = params.skipLookups,\n skipLookups = _params$skipLookups === void 0 ? false : _params$skipLookups;\n var givenPrefix = null;\n var faStyleOrFamilyClasses = sortedUniqueValues(values.filter(function (cls) {\n return _faCombinedClasses.includes(cls);\n }));\n var nonStyleOrFamilyClasses = sortedUniqueValues(values.filter(function (cls) {\n return !_faCombinedClasses.includes(cls);\n }));\n var faStyles = faStyleOrFamilyClasses.filter(function (cls) {\n givenPrefix = cls;\n return !Q.includes(cls);\n });\n var _faStyles = _slicedToArray(faStyles, 1),\n _faStyles$ = _faStyles[0],\n styleFromValues = _faStyles$ === void 0 ? null : _faStyles$;\n var family = getFamilyId(faStyleOrFamilyClasses);\n var canonical = _objectSpread2(_objectSpread2({}, moveNonFaClassesToRest(nonStyleOrFamilyClasses)), {}, {\n prefix: getCanonicalPrefix(styleFromValues, {\n family: family\n })\n });\n return _objectSpread2(_objectSpread2(_objectSpread2({}, canonical), getDefaultCanonicalPrefix({\n values: values,\n family: family,\n styles: styles,\n config: config,\n canonical: canonical,\n givenPrefix: givenPrefix\n })), applyShimAndAlias(skipLookups, givenPrefix, canonical));\n }\n function applyShimAndAlias(skipLookups, givenPrefix, canonical) {\n var prefix = canonical.prefix,\n iconName = canonical.iconName;\n if (skipLookups || !prefix || !iconName) {\n return {\n prefix: prefix,\n iconName: iconName\n };\n }\n var shim = givenPrefix === 'fa' ? byOldName(iconName) : {};\n var aliasIconName = byAlias(prefix, iconName);\n iconName = shim.iconName || aliasIconName || iconName;\n prefix = shim.prefix || prefix;\n if (prefix === 'far' && !styles['far'] && styles['fas'] && !config.autoFetchSvg) {\n // Allow a fallback from the regular style to solid if regular is not available\n // but only if we aren't auto-fetching SVGs\n prefix = 'fas';\n }\n return {\n prefix: prefix,\n iconName: iconName\n };\n }\n var newCanonicalFamilies = rt.filter(function (familyId) {\n return familyId !== i || familyId !== t;\n });\n var newCanonicalStyles = Object.keys(Ht$1).filter(function (key) {\n return key !== i;\n }).map(function (key) {\n return Object.keys(Ht$1[key]);\n }).flat();\n function getDefaultCanonicalPrefix(prefixOptions) {\n var values = prefixOptions.values,\n family = prefixOptions.family,\n canonical = prefixOptions.canonical,\n _prefixOptions$givenP = prefixOptions.givenPrefix,\n givenPrefix = _prefixOptions$givenP === void 0 ? '' : _prefixOptions$givenP,\n _prefixOptions$styles = prefixOptions.styles,\n styles = _prefixOptions$styles === void 0 ? {} : _prefixOptions$styles,\n _prefixOptions$config = prefixOptions.config,\n config$$1 = _prefixOptions$config === void 0 ? {} : _prefixOptions$config;\n var isDuotoneFamily = family === t;\n var valuesHasDuotone = values.includes('fa-duotone') || values.includes('fad');\n var defaultFamilyIsDuotone = config$$1.familyDefault === 'duotone';\n var canonicalPrefixIsDuotone = canonical.prefix === 'fad' || canonical.prefix === 'fa-duotone';\n if (!isDuotoneFamily && (valuesHasDuotone || defaultFamilyIsDuotone || canonicalPrefixIsDuotone)) {\n canonical.prefix = 'fad';\n }\n if (values.includes('fa-brands') || values.includes('fab')) {\n canonical.prefix = 'fab';\n }\n if (!canonical.prefix && newCanonicalFamilies.includes(family)) {\n var validPrefix = Object.keys(styles).find(function (key) {\n return newCanonicalStyles.includes(key);\n });\n if (validPrefix || config$$1.autoFetchSvg) {\n var defaultPrefix = Ut.get(family).defaultShortPrefixId;\n canonical.prefix = defaultPrefix;\n canonical.iconName = byAlias(canonical.prefix, canonical.iconName) || canonical.iconName;\n }\n }\n if (canonical.prefix === 'fa' || givenPrefix === 'fa') {\n // The fa prefix is not canonical. So if it has made it through until this point\n // we will shift it to the correct prefix.\n canonical.prefix = getDefaultUsablePrefix() || 'fas';\n }\n return canonical;\n }\n\n var Library = /*#__PURE__*/function () {\n function Library() {\n _classCallCheck(this, Library);\n this.definitions = {};\n }\n return _createClass(Library, [{\n key: \"add\",\n value: function add() {\n var _this = this;\n for (var _len = arguments.length, definitions = new Array(_len), _key = 0; _key < _len; _key++) {\n definitions[_key] = arguments[_key];\n }\n var additions = definitions.reduce(this._pullDefinitions, {});\n Object.keys(additions).forEach(function (key) {\n _this.definitions[key] = _objectSpread2(_objectSpread2({}, _this.definitions[key] || {}), additions[key]);\n defineIcons(key, additions[key]);\n\n // To keep support for older Classic styles, also add longer prefixes\n var longPrefix = PREFIX_TO_LONG_STYLE[i][key];\n if (longPrefix) defineIcons(longPrefix, additions[key]);\n build();\n });\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.definitions = {};\n }\n }, {\n key: \"_pullDefinitions\",\n value: function _pullDefinitions(additions, definition) {\n var normalized = definition.prefix && definition.iconName && definition.icon ? {\n 0: definition\n } : definition;\n Object.keys(normalized).map(function (key) {\n var _normalized$key = normalized[key],\n prefix = _normalized$key.prefix,\n iconName = _normalized$key.iconName,\n icon = _normalized$key.icon;\n var aliases = icon[2];\n if (!additions[prefix]) additions[prefix] = {};\n if (aliases.length > 0) {\n aliases.forEach(function (alias) {\n if (typeof alias === 'string') {\n additions[prefix][alias] = icon;\n }\n });\n }\n additions[prefix][iconName] = icon;\n });\n return additions;\n }\n }]);\n }();\n\n var _plugins = [];\n var _hooks = {};\n var providers = {};\n var defaultProviderKeys = Object.keys(providers);\n function registerPlugins(nextPlugins, _ref) {\n var obj = _ref.mixoutsTo;\n _plugins = nextPlugins;\n _hooks = {};\n Object.keys(providers).forEach(function (k) {\n if (defaultProviderKeys.indexOf(k) === -1) {\n delete providers[k];\n }\n });\n _plugins.forEach(function (plugin) {\n var mixout = plugin.mixout ? plugin.mixout() : {};\n Object.keys(mixout).forEach(function (tk) {\n if (typeof mixout[tk] === 'function') {\n obj[tk] = mixout[tk];\n }\n if (_typeof(mixout[tk]) === 'object') {\n Object.keys(mixout[tk]).forEach(function (sk) {\n if (!obj[tk]) {\n obj[tk] = {};\n }\n obj[tk][sk] = mixout[tk][sk];\n });\n }\n });\n if (plugin.hooks) {\n var hooks = plugin.hooks();\n Object.keys(hooks).forEach(function (hook) {\n if (!_hooks[hook]) {\n _hooks[hook] = [];\n }\n _hooks[hook].push(hooks[hook]);\n });\n }\n if (plugin.provides) {\n plugin.provides(providers);\n }\n });\n return obj;\n }\n function chainHooks(hook, accumulator) {\n for (var _len = arguments.length, args = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n args[_key - 2] = arguments[_key];\n }\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n accumulator = hookFn.apply(null, [accumulator].concat(args));\n });\n return accumulator;\n }\n function callHooks(hook) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n var hookFns = _hooks[hook] || [];\n hookFns.forEach(function (hookFn) {\n hookFn.apply(null, args);\n });\n return undefined;\n }\n function callProvided() {\n var hook = arguments[0];\n var args = Array.prototype.slice.call(arguments, 1);\n return providers[hook] ? providers[hook].apply(null, args) : undefined;\n }\n\n function findIconDefinition(iconLookup) {\n if (iconLookup.prefix === 'fa') {\n iconLookup.prefix = 'fas';\n }\n var iconName = iconLookup.iconName;\n var prefix = iconLookup.prefix || getDefaultUsablePrefix();\n if (!iconName) return;\n iconName = byAlias(prefix, iconName) || iconName;\n return iconFromMapping(library.definitions, prefix, iconName) || iconFromMapping(namespace.styles, prefix, iconName);\n }\n var library = new Library();\n var noAuto = function noAuto() {\n config.autoReplaceSvg = false;\n config.observeMutations = false;\n callHooks('noAuto');\n };\n var dom = {\n i2svg: function i2svg() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n if (IS_DOM) {\n callHooks('beforeI2svg', params);\n callProvided('pseudoElements2svg', params);\n return callProvided('i2svg', params);\n } else {\n return Promise.reject(new Error('Operation requires a DOM of some kind.'));\n }\n },\n watch: function watch() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var autoReplaceSvgRoot = params.autoReplaceSvgRoot;\n if (config.autoReplaceSvg === false) {\n config.autoReplaceSvg = true;\n }\n config.observeMutations = true;\n domready(function () {\n autoReplace({\n autoReplaceSvgRoot: autoReplaceSvgRoot\n });\n callHooks('watch', params);\n });\n }\n };\n var parse = {\n icon: function icon(_icon) {\n if (_icon === null) {\n return null;\n }\n if (_typeof(_icon) === 'object' && _icon.prefix && _icon.iconName) {\n return {\n prefix: _icon.prefix,\n iconName: byAlias(_icon.prefix, _icon.iconName) || _icon.iconName\n };\n }\n if (Array.isArray(_icon) && _icon.length === 2) {\n var iconName = _icon[1].indexOf('fa-') === 0 ? _icon[1].slice(3) : _icon[1];\n var prefix = getCanonicalPrefix(_icon[0]);\n return {\n prefix: prefix,\n iconName: byAlias(prefix, iconName) || iconName\n };\n }\n if (typeof _icon === 'string' && (_icon.indexOf(\"\".concat(config.cssPrefix, \"-\")) > -1 || _icon.match(ICON_SELECTION_SYNTAX_PATTERN))) {\n var canonicalIcon = getCanonicalIcon(_icon.split(' '), {\n skipLookups: true\n });\n return {\n prefix: canonicalIcon.prefix || getDefaultUsablePrefix(),\n iconName: byAlias(canonicalIcon.prefix, canonicalIcon.iconName) || canonicalIcon.iconName\n };\n }\n if (typeof _icon === 'string') {\n var _prefix = getDefaultUsablePrefix();\n return {\n prefix: _prefix,\n iconName: byAlias(_prefix, _icon) || _icon\n };\n }\n }\n };\n var api = {\n noAuto: noAuto,\n config: config,\n dom: dom,\n parse: parse,\n library: library,\n findIconDefinition: findIconDefinition,\n toHtml: toHtml\n };\n var autoReplace = function autoReplace() {\n var params = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var _params$autoReplaceSv = params.autoReplaceSvgRoot,\n autoReplaceSvgRoot = _params$autoReplaceSv === void 0 ? DOCUMENT : _params$autoReplaceSv;\n if ((Object.keys(namespace.styles).length > 0 || config.autoFetchSvg) && IS_DOM && config.autoReplaceSvg) api.dom.i2svg({\n node: autoReplaceSvgRoot\n });\n };\n function bootstrap() {\n if (IS_BROWSER) {\n if (!WINDOW.FontAwesome) {\n WINDOW.FontAwesome = api;\n }\n domready(function () {\n autoReplace();\n callHooks('bootstrap');\n });\n }\n namespace.hooks = _objectSpread2(_objectSpread2({}, namespace.hooks), {}, {\n addPack: function addPack(prefix, icons) {\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons);\n build();\n autoReplace();\n },\n addPacks: function addPacks(packs) {\n packs.forEach(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n prefix = _ref2[0],\n icons = _ref2[1];\n namespace.styles[prefix] = _objectSpread2(_objectSpread2({}, namespace.styles[prefix] || {}), icons);\n });\n build();\n autoReplace();\n },\n addShims: function addShims(shims) {\n var _namespace$shims;\n (_namespace$shims = namespace.shims).push.apply(_namespace$shims, _toConsumableArray(shims));\n build();\n autoReplace();\n }\n });\n }\n\n function domVariants(val, abstractCreator) {\n Object.defineProperty(val, 'abstract', {\n get: abstractCreator\n });\n Object.defineProperty(val, 'html', {\n get: function get() {\n return val.abstract.map(function (a) {\n return toHtml(a);\n });\n }\n });\n Object.defineProperty(val, 'node', {\n get: function get() {\n if (!IS_DOM) return undefined;\n var container = DOCUMENT.createElement('div');\n container.innerHTML = val.html;\n return container.children;\n }\n });\n return val;\n }\n\n function asIcon (_ref) {\n var children = _ref.children,\n main = _ref.main,\n mask = _ref.mask,\n attributes = _ref.attributes,\n styles = _ref.styles,\n transform = _ref.transform;\n if (transformIsMeaningful(transform) && main.found && !mask.found) {\n var width = main.width,\n height = main.height;\n var offset = {\n x: width / height / 2,\n y: 0.5\n };\n attributes['style'] = joinStyles(_objectSpread2(_objectSpread2({}, styles), {}, {\n 'transform-origin': \"\".concat(offset.x + transform.x / 16, \"em \").concat(offset.y + transform.y / 16, \"em\")\n }));\n }\n return [{\n tag: 'svg',\n attributes: attributes,\n children: children\n }];\n }\n\n function asSymbol (_ref) {\n var prefix = _ref.prefix,\n iconName = _ref.iconName,\n children = _ref.children,\n attributes = _ref.attributes,\n symbol = _ref.symbol;\n var id = symbol === true ? \"\".concat(prefix, \"-\").concat(config.cssPrefix, \"-\").concat(iconName) : symbol;\n return [{\n tag: 'svg',\n attributes: {\n style: 'display: none;'\n },\n children: [{\n tag: 'symbol',\n attributes: _objectSpread2(_objectSpread2({}, attributes), {}, {\n id: id\n }),\n children: children\n }]\n }];\n }\n\n // If any of these attributes are present, don't assume the icon is decorative\n function isLabeled(attributes) {\n var labels = ['aria-label', 'aria-labelledby', 'title', 'role'];\n return labels.some(function (label) {\n return label in attributes;\n });\n }\n function makeInlineSvgAbstract(params) {\n var _params$icons = params.icons,\n main = _params$icons.main,\n mask = _params$icons.mask,\n prefix = params.prefix,\n iconName = params.iconName,\n transform = params.transform,\n symbol = params.symbol,\n maskId = params.maskId,\n extra = params.extra,\n _params$watchable = params.watchable,\n watchable = _params$watchable === void 0 ? false : _params$watchable;\n var _ref = mask.found ? mask : main,\n width = _ref.width,\n height = _ref.height;\n var attrClass = [config.replacementClass, iconName ? \"\".concat(config.cssPrefix, \"-\").concat(iconName) : ''].filter(function (c) {\n return extra.classes.indexOf(c) === -1;\n }).filter(function (c) {\n return c !== '' || !!c;\n }).concat(extra.classes).join(' ');\n var content = {\n children: [],\n attributes: _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n 'data-prefix': prefix,\n 'data-icon': iconName,\n 'class': attrClass,\n 'role': extra.attributes.role || 'img',\n 'viewBox': \"0 0 \".concat(width, \" \").concat(height)\n })\n };\n if (!isLabeled(extra.attributes) && !extra.attributes['aria-hidden']) {\n content.attributes['aria-hidden'] = 'true';\n }\n if (watchable) {\n content.attributes[DATA_FA_I2SVG] = '';\n }\n var args = _objectSpread2(_objectSpread2({}, content), {}, {\n prefix: prefix,\n iconName: iconName,\n main: main,\n mask: mask,\n maskId: maskId,\n transform: transform,\n symbol: symbol,\n styles: _objectSpread2({}, extra.styles)\n });\n var _ref2 = mask.found && main.found ? callProvided('generateAbstractMask', args) || {\n children: [],\n attributes: {}\n } : callProvided('generateAbstractIcon', args) || {\n children: [],\n attributes: {}\n },\n children = _ref2.children,\n attributes = _ref2.attributes;\n args.children = children;\n args.attributes = attributes;\n if (symbol) {\n return asSymbol(args);\n } else {\n return asIcon(args);\n }\n }\n function makeLayersTextAbstract(params) {\n var content = params.content,\n width = params.width,\n height = params.height,\n transform = params.transform,\n extra = params.extra,\n _params$watchable2 = params.watchable,\n watchable = _params$watchable2 === void 0 ? false : _params$watchable2;\n var attributes = _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n class: extra.classes.join(' ')\n });\n if (watchable) {\n attributes[DATA_FA_I2SVG] = '';\n }\n var styles = _objectSpread2({}, extra.styles);\n if (transformIsMeaningful(transform)) {\n styles['transform'] = transformForCss({\n transform: transform,\n startCentered: true,\n width: width,\n height: height\n });\n styles['-webkit-transform'] = styles['transform'];\n }\n var styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n return val;\n }\n function makeLayersCounterAbstract(params) {\n var content = params.content,\n extra = params.extra;\n var attributes = _objectSpread2(_objectSpread2({}, extra.attributes), {}, {\n class: extra.classes.join(' ')\n });\n var styleString = joinStyles(extra.styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var val = [];\n val.push({\n tag: 'span',\n attributes: attributes,\n children: [content]\n });\n return val;\n }\n\n var styles$1 = namespace.styles;\n function asFoundIcon(icon) {\n var width = icon[0];\n var height = icon[1];\n var _icon$slice = icon.slice(4),\n _icon$slice2 = _slicedToArray(_icon$slice, 1),\n vectorData = _icon$slice2[0];\n var element = null;\n if (Array.isArray(vectorData)) {\n element = {\n tag: 'g',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.GROUP)\n },\n children: [{\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.SECONDARY),\n fill: 'currentColor',\n d: vectorData[0]\n }\n }, {\n tag: 'path',\n attributes: {\n class: \"\".concat(config.cssPrefix, \"-\").concat(DUOTONE_CLASSES.PRIMARY),\n fill: 'currentColor',\n d: vectorData[1]\n }\n }]\n };\n } else {\n element = {\n tag: 'path',\n attributes: {\n fill: 'currentColor',\n d: vectorData\n }\n };\n }\n return {\n found: true,\n width: width,\n height: height,\n icon: element\n };\n }\n var missingIconResolutionMixin = {\n found: false,\n width: 512,\n height: 512\n };\n function maybeNotifyMissing(iconName, prefix) {\n if (!PRODUCTION && !config.showMissingIcons && iconName) {\n console.error(\"Icon with name \\\"\".concat(iconName, \"\\\" and prefix \\\"\").concat(prefix, \"\\\" is missing.\"));\n }\n }\n function findIcon(iconName, prefix) {\n var givenPrefix = prefix;\n if (prefix === 'fa' && config.styleDefault !== null) {\n prefix = getDefaultUsablePrefix();\n }\n return new Promise(function (resolve, reject) {\n if (givenPrefix === 'fa') {\n var shim = byOldName(iconName) || {};\n iconName = shim.iconName || iconName;\n prefix = shim.prefix || prefix;\n }\n if (iconName && prefix && styles$1[prefix] && styles$1[prefix][iconName]) {\n var icon = styles$1[prefix][iconName];\n return resolve(asFoundIcon(icon));\n }\n maybeNotifyMissing(iconName, prefix);\n resolve(_objectSpread2(_objectSpread2({}, missingIconResolutionMixin), {}, {\n icon: config.showMissingIcons && iconName ? callProvided('missingIconAbstract') || {} : {}\n }));\n });\n }\n\n var noop$1 = function noop() {};\n var p$2 = config.measurePerformance && PERFORMANCE && PERFORMANCE.mark && PERFORMANCE.measure ? PERFORMANCE : {\n mark: noop$1,\n measure: noop$1\n };\n var preamble = \"FA \\\"7.1.0\\\"\";\n var begin = function begin(name) {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" begins\"));\n return function () {\n return end(name);\n };\n };\n var end = function end(name) {\n p$2.mark(\"\".concat(preamble, \" \").concat(name, \" ends\"));\n p$2.measure(\"\".concat(preamble, \" \").concat(name), \"\".concat(preamble, \" \").concat(name, \" begins\"), \"\".concat(preamble, \" \").concat(name, \" ends\"));\n };\n var perf = {\n begin: begin,\n end: end\n };\n\n var noop$2 = function noop() {};\n function isWatched(node) {\n var i2svg = node.getAttribute ? node.getAttribute(DATA_FA_I2SVG) : null;\n return typeof i2svg === 'string';\n }\n function hasPrefixAndIcon(node) {\n var prefix = node.getAttribute ? node.getAttribute(DATA_PREFIX) : null;\n var icon = node.getAttribute ? node.getAttribute(DATA_ICON) : null;\n return prefix && icon;\n }\n function hasBeenReplaced(node) {\n return node && node.classList && node.classList.contains && node.classList.contains(config.replacementClass);\n }\n function getMutator() {\n if (config.autoReplaceSvg === true) {\n return mutators.replace;\n }\n var mutator = mutators[config.autoReplaceSvg];\n return mutator || mutators.replace;\n }\n function createElementNS(tag) {\n return DOCUMENT.createElementNS('http://www.w3.org/2000/svg', tag);\n }\n function createElement(tag) {\n return DOCUMENT.createElement(tag);\n }\n function convertSVG(abstractObj) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$ceFn = params.ceFn,\n ceFn = _params$ceFn === void 0 ? abstractObj.tag === 'svg' ? createElementNS : createElement : _params$ceFn;\n if (typeof abstractObj === 'string') {\n return DOCUMENT.createTextNode(abstractObj);\n }\n var tag = ceFn(abstractObj.tag);\n Object.keys(abstractObj.attributes || []).forEach(function (key) {\n tag.setAttribute(key, abstractObj.attributes[key]);\n });\n var children = abstractObj.children || [];\n children.forEach(function (child) {\n tag.appendChild(convertSVG(child, {\n ceFn: ceFn\n }));\n });\n return tag;\n }\n function nodeAsComment(node) {\n var comment = \" \".concat(node.outerHTML, \" \");\n /* BEGIN.ATTRIBUTION */\n comment = \"\".concat(comment, \"Font Awesome fontawesome.com \");\n /* END.ATTRIBUTION */\n return comment;\n }\n var mutators = {\n replace: function replace(mutation) {\n var node = mutation[0];\n if (node.parentNode) {\n mutation[1].forEach(function (abstract) {\n node.parentNode.insertBefore(convertSVG(abstract), node);\n });\n if (node.getAttribute(DATA_FA_I2SVG) === null && config.keepOriginalSource) {\n var comment = DOCUMENT.createComment(nodeAsComment(node));\n node.parentNode.replaceChild(comment, node);\n } else {\n node.remove();\n }\n }\n },\n nest: function nest(mutation) {\n var node = mutation[0];\n var abstract = mutation[1];\n\n // If we already have a replaced node we do not want to continue nesting within it.\n // Short-circuit to the standard replacement\n if (~classArray(node).indexOf(config.replacementClass)) {\n return mutators.replace(mutation);\n }\n var forSvg = new RegExp(\"\".concat(config.cssPrefix, \"-.*\"));\n delete abstract[0].attributes.id;\n if (abstract[0].attributes.class) {\n var splitClasses = abstract[0].attributes.class.split(' ').reduce(function (acc, cls) {\n if (cls === config.replacementClass || cls.match(forSvg)) {\n acc.toSvg.push(cls);\n } else {\n acc.toNode.push(cls);\n }\n return acc;\n }, {\n toNode: [],\n toSvg: []\n });\n abstract[0].attributes.class = splitClasses.toSvg.join(' ');\n if (splitClasses.toNode.length === 0) {\n node.removeAttribute('class');\n } else {\n node.setAttribute('class', splitClasses.toNode.join(' '));\n }\n }\n var newInnerHTML = abstract.map(function (a) {\n return toHtml(a);\n }).join('\\n');\n node.setAttribute(DATA_FA_I2SVG, '');\n node.innerHTML = newInnerHTML;\n }\n };\n function performOperationSync(op) {\n op();\n }\n function perform(mutations, callback) {\n var callbackFunction = typeof callback === 'function' ? callback : noop$2;\n if (mutations.length === 0) {\n callbackFunction();\n } else {\n var frame = performOperationSync;\n if (config.mutateApproach === MUTATION_APPROACH_ASYNC) {\n frame = WINDOW.requestAnimationFrame || performOperationSync;\n }\n frame(function () {\n var mutator = getMutator();\n var mark = perf.begin('mutate');\n mutations.map(mutator);\n mark();\n callbackFunction();\n });\n }\n }\n var disabled = false;\n function disableObservation() {\n disabled = true;\n }\n function enableObservation() {\n disabled = false;\n }\n var mo = null;\n function observe(options) {\n if (!MUTATION_OBSERVER) {\n return;\n }\n if (!config.observeMutations) {\n return;\n }\n var _options$treeCallback = options.treeCallback,\n treeCallback = _options$treeCallback === void 0 ? noop$2 : _options$treeCallback,\n _options$nodeCallback = options.nodeCallback,\n nodeCallback = _options$nodeCallback === void 0 ? noop$2 : _options$nodeCallback,\n _options$pseudoElemen = options.pseudoElementsCallback,\n pseudoElementsCallback = _options$pseudoElemen === void 0 ? noop$2 : _options$pseudoElemen,\n _options$observeMutat = options.observeMutationsRoot,\n observeMutationsRoot = _options$observeMutat === void 0 ? DOCUMENT : _options$observeMutat;\n mo = new MUTATION_OBSERVER(function (objects) {\n if (disabled) return;\n var defaultPrefix = getDefaultUsablePrefix();\n toArray(objects).forEach(function (mutationRecord) {\n if (mutationRecord.type === 'childList' && mutationRecord.addedNodes.length > 0 && !isWatched(mutationRecord.addedNodes[0])) {\n if (config.searchPseudoElements) {\n pseudoElementsCallback(mutationRecord.target);\n }\n treeCallback(mutationRecord.target);\n }\n if (mutationRecord.type === 'attributes' && mutationRecord.target.parentNode && config.searchPseudoElements) {\n pseudoElementsCallback([mutationRecord.target], true);\n }\n if (mutationRecord.type === 'attributes' && isWatched(mutationRecord.target) && ~ATTRIBUTES_WATCHED_FOR_MUTATION.indexOf(mutationRecord.attributeName)) {\n if (mutationRecord.attributeName === 'class' && hasPrefixAndIcon(mutationRecord.target)) {\n var _getCanonicalIcon = getCanonicalIcon(classArray(mutationRecord.target)),\n prefix = _getCanonicalIcon.prefix,\n iconName = _getCanonicalIcon.iconName;\n mutationRecord.target.setAttribute(DATA_PREFIX, prefix || defaultPrefix);\n if (iconName) mutationRecord.target.setAttribute(DATA_ICON, iconName);\n } else if (hasBeenReplaced(mutationRecord.target)) {\n nodeCallback(mutationRecord.target);\n }\n }\n });\n });\n if (!IS_DOM) return;\n mo.observe(observeMutationsRoot, {\n childList: true,\n attributes: true,\n characterData: true,\n subtree: true\n });\n }\n function disconnect() {\n if (!mo) return;\n mo.disconnect();\n }\n\n function styleParser (node) {\n var style = node.getAttribute('style');\n var val = [];\n if (style) {\n val = style.split(';').reduce(function (acc, style) {\n var styles = style.split(':');\n var prop = styles[0];\n var value = styles.slice(1);\n if (prop && value.length > 0) {\n acc[prop] = value.join(':').trim();\n }\n return acc;\n }, {});\n }\n return val;\n }\n\n function classParser (node) {\n var existingPrefix = node.getAttribute('data-prefix');\n var existingIconName = node.getAttribute('data-icon');\n var innerText = node.innerText !== undefined ? node.innerText.trim() : '';\n var val = getCanonicalIcon(classArray(node));\n if (!val.prefix) {\n val.prefix = getDefaultUsablePrefix();\n }\n if (existingPrefix && existingIconName) {\n val.prefix = existingPrefix;\n val.iconName = existingIconName;\n }\n if (val.iconName && val.prefix) {\n return val;\n }\n if (val.prefix && innerText.length > 0) {\n val.iconName = byLigature(val.prefix, node.innerText) || byUnicode(val.prefix, toHex(node.innerText));\n }\n if (!val.iconName && config.autoFetchSvg && node.firstChild && node.firstChild.nodeType === Node.TEXT_NODE) {\n val.iconName = node.firstChild.data;\n }\n return val;\n }\n\n function attributesParser (node) {\n var extraAttributes = toArray(node.attributes).reduce(function (acc, attr) {\n if (acc.name !== 'class' && acc.name !== 'style') {\n acc[attr.name] = attr.value;\n }\n return acc;\n }, {});\n return extraAttributes;\n }\n\n function blankMeta() {\n return {\n iconName: null,\n prefix: null,\n transform: meaninglessTransform,\n symbol: false,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n extra: {\n classes: [],\n styles: {},\n attributes: {}\n }\n };\n }\n function parseMeta(node) {\n var parser = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n styleParser: true\n };\n var _classParser = classParser(node),\n iconName = _classParser.iconName,\n prefix = _classParser.prefix,\n extraClasses = _classParser.rest;\n var extraAttributes = attributesParser(node);\n var pluginMeta = chainHooks('parseNodeAttributes', {}, node);\n var extraStyles = parser.styleParser ? styleParser(node) : [];\n return _objectSpread2({\n iconName: iconName,\n prefix: prefix,\n transform: meaninglessTransform,\n mask: {\n iconName: null,\n prefix: null,\n rest: []\n },\n maskId: null,\n symbol: false,\n extra: {\n classes: extraClasses,\n styles: extraStyles,\n attributes: extraAttributes\n }\n }, pluginMeta);\n }\n\n var styles$2 = namespace.styles;\n function generateMutation(node) {\n var nodeMeta = config.autoReplaceSvg === 'nest' ? parseMeta(node, {\n styleParser: false\n }) : parseMeta(node);\n if (~nodeMeta.extra.classes.indexOf(LAYERS_TEXT_CLASSNAME)) {\n return callProvided('generateLayersText', node, nodeMeta);\n } else {\n return callProvided('generateSvgReplacementMutation', node, nodeMeta);\n }\n }\n function getKnownPrefixes() {\n return [].concat(_toConsumableArray(Yt), _toConsumableArray(Zt$1));\n }\n function onTree(root) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n if (!IS_DOM) return Promise.resolve();\n var htmlClassList = DOCUMENT.documentElement.classList;\n var hclAdd = function hclAdd(suffix) {\n return htmlClassList.add(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n var hclRemove = function hclRemove(suffix) {\n return htmlClassList.remove(\"\".concat(HTML_CLASS_I2SVG_BASE_CLASS, \"-\").concat(suffix));\n };\n var prefixes = config.autoFetchSvg ? getKnownPrefixes() : Q.concat(Object.keys(styles$2));\n if (!prefixes.includes('fa')) {\n prefixes.push('fa');\n }\n var prefixesDomQuery = [\".\".concat(LAYERS_TEXT_CLASSNAME, \":not([\").concat(DATA_FA_I2SVG, \"])\")].concat(prefixes.map(function (p$$1) {\n return \".\".concat(p$$1, \":not([\").concat(DATA_FA_I2SVG, \"])\");\n })).join(', ');\n if (prefixesDomQuery.length === 0) {\n return Promise.resolve();\n }\n var candidates = [];\n try {\n candidates = toArray(root.querySelectorAll(prefixesDomQuery));\n } catch (e$$1) {\n // noop\n }\n if (candidates.length > 0) {\n hclAdd('pending');\n hclRemove('complete');\n } else {\n return Promise.resolve();\n }\n var mark = perf.begin('onTree');\n var mutations = candidates.reduce(function (acc, node) {\n try {\n var mutation = generateMutation(node);\n if (mutation) {\n acc.push(mutation);\n }\n } catch (e$$1) {\n if (!PRODUCTION) {\n if (e$$1.name === 'MissingIcon') {\n console.error(e$$1);\n }\n }\n }\n return acc;\n }, []);\n return new Promise(function (resolve, reject) {\n Promise.all(mutations).then(function (resolvedMutations) {\n perform(resolvedMutations, function () {\n hclAdd('active');\n hclAdd('complete');\n hclRemove('pending');\n if (typeof callback === 'function') callback();\n mark();\n resolve();\n });\n }).catch(function (e$$1) {\n mark();\n reject(e$$1);\n });\n });\n }\n function onNode(node) {\n var callback = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n generateMutation(node).then(function (mutation) {\n if (mutation) {\n perform([mutation], callback);\n }\n });\n }\n function resolveIcons(next) {\n return function (maybeIconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var iconDefinition = (maybeIconDefinition || {}).icon ? maybeIconDefinition : findIconDefinition(maybeIconDefinition || {});\n var mask = params.mask;\n if (mask) {\n mask = (mask || {}).icon ? mask : findIconDefinition(mask || {});\n }\n return next(iconDefinition, _objectSpread2(_objectSpread2({}, params), {}, {\n mask: mask\n }));\n };\n }\n var render = function render(iconDefinition) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$symbol = params.symbol,\n symbol = _params$symbol === void 0 ? false : _params$symbol,\n _params$mask = params.mask,\n mask = _params$mask === void 0 ? null : _params$mask,\n _params$maskId = params.maskId,\n maskId = _params$maskId === void 0 ? null : _params$maskId,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n if (!iconDefinition) return;\n var prefix = iconDefinition.prefix,\n iconName = iconDefinition.iconName,\n icon = iconDefinition.icon;\n return domVariants(_objectSpread2({\n type: 'icon'\n }, iconDefinition), function () {\n callHooks('beforeDOMElementCreation', {\n iconDefinition: iconDefinition,\n params: params\n });\n return makeInlineSvgAbstract({\n icons: {\n main: asFoundIcon(icon),\n mask: mask ? asFoundIcon(mask.icon) : {\n found: false,\n width: null,\n height: null,\n icon: {}\n }\n },\n prefix: prefix,\n iconName: iconName,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n symbol: symbol,\n maskId: maskId,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: classes\n }\n });\n });\n };\n var ReplaceElements = {\n mixout: function mixout() {\n return {\n icon: resolveIcons(render)\n };\n },\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.treeCallback = onTree;\n accumulator.nodeCallback = onNode;\n return accumulator;\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.i2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node,\n _params$callback = params.callback,\n callback = _params$callback === void 0 ? function () {} : _params$callback;\n return onTree(node, callback);\n };\n providers$$1.generateSvgReplacementMutation = function (node, nodeMeta) {\n var iconName = nodeMeta.iconName,\n prefix = nodeMeta.prefix,\n transform = nodeMeta.transform,\n symbol = nodeMeta.symbol,\n mask = nodeMeta.mask,\n maskId = nodeMeta.maskId,\n extra = nodeMeta.extra;\n return new Promise(function (resolve, reject) {\n Promise.all([findIcon(iconName, prefix), mask.iconName ? findIcon(mask.iconName, mask.prefix) : Promise.resolve({\n found: false,\n width: 512,\n height: 512,\n icon: {}\n })]).then(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n main = _ref2[0],\n mask = _ref2[1];\n resolve([node, makeInlineSvgAbstract({\n icons: {\n main: main,\n mask: mask\n },\n prefix: prefix,\n iconName: iconName,\n transform: transform,\n symbol: symbol,\n maskId: maskId,\n extra: extra,\n watchable: true\n })]);\n }).catch(reject);\n });\n };\n providers$$1.generateAbstractIcon = function (_ref3) {\n var children = _ref3.children,\n attributes = _ref3.attributes,\n main = _ref3.main,\n transform = _ref3.transform,\n styles = _ref3.styles;\n var styleString = joinStyles(styles);\n if (styleString.length > 0) {\n attributes['style'] = styleString;\n }\n var nextChild;\n if (transformIsMeaningful(transform)) {\n nextChild = callProvided('generateAbstractTransformGrouping', {\n main: main,\n transform: transform,\n containerWidth: main.width,\n iconWidth: main.width\n });\n }\n children.push(nextChild || main.icon);\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n };\n\n var Layers = {\n mixout: function mixout() {\n return {\n layer: function layer(assembler) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes;\n return domVariants({\n type: 'layer'\n }, function () {\n callHooks('beforeDOMElementCreation', {\n assembler: assembler,\n params: params\n });\n var children = [];\n assembler(function (args) {\n Array.isArray(args) ? args.map(function (a) {\n children = children.concat(a.abstract);\n }) : children = children.concat(args.abstract);\n });\n return [{\n tag: 'span',\n attributes: {\n class: [\"\".concat(config.cssPrefix, \"-layers\")].concat(_toConsumableArray(classes)).join(' ')\n },\n children: children\n }];\n });\n }\n };\n }\n };\n\n var LayersCounter = {\n mixout: function mixout() {\n return {\n counter: function counter(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$title = params.title,\n title = _params$title === void 0 ? null : _params$title,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'counter',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersCounterAbstract({\n content: content.toString(),\n title: title,\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-counter\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n }\n };\n\n var LayersText = {\n mixout: function mixout() {\n return {\n text: function text(content) {\n var params = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var _params$transform = params.transform,\n transform = _params$transform === void 0 ? meaninglessTransform : _params$transform,\n _params$classes = params.classes,\n classes = _params$classes === void 0 ? [] : _params$classes,\n _params$attributes = params.attributes,\n attributes = _params$attributes === void 0 ? {} : _params$attributes,\n _params$styles = params.styles,\n styles = _params$styles === void 0 ? {} : _params$styles;\n return domVariants({\n type: 'text',\n content: content\n }, function () {\n callHooks('beforeDOMElementCreation', {\n content: content,\n params: params\n });\n return makeLayersTextAbstract({\n content: content,\n transform: _objectSpread2(_objectSpread2({}, meaninglessTransform), transform),\n extra: {\n attributes: attributes,\n styles: styles,\n classes: [\"\".concat(config.cssPrefix, \"-layers-text\")].concat(_toConsumableArray(classes))\n }\n });\n });\n }\n };\n },\n provides: function provides(providers$$1) {\n providers$$1.generateLayersText = function (node, nodeMeta) {\n var transform = nodeMeta.transform,\n extra = nodeMeta.extra;\n var width = null;\n var height = null;\n if (IS_IE) {\n var computedFontSize = parseInt(getComputedStyle(node).fontSize, 10);\n var boundingClientRect = node.getBoundingClientRect();\n width = boundingClientRect.width / computedFontSize;\n height = boundingClientRect.height / computedFontSize;\n }\n return Promise.resolve([node, makeLayersTextAbstract({\n content: node.innerHTML,\n width: width,\n height: height,\n transform: transform,\n extra: extra,\n watchable: true\n })]);\n };\n }\n };\n\n var CLEAN_CONTENT_PATTERN = new RegExp(\"\\\"\", 'ug');\n var SECONDARY_UNICODE_RANGE = [1105920, 1112319];\n var _FONT_FAMILY_WEIGHT_TO_PREFIX = _objectSpread2(_objectSpread2(_objectSpread2(_objectSpread2({}, {\n FontAwesome: {\n normal: 'fas',\n 400: 'fas'\n }\n }), Ct), ro), dl);\n var FONT_FAMILY_WEIGHT_TO_PREFIX = Object.keys(_FONT_FAMILY_WEIGHT_TO_PREFIX).reduce(function (acc, key) {\n acc[key.toLowerCase()] = _FONT_FAMILY_WEIGHT_TO_PREFIX[key];\n return acc;\n }, {});\n var FONT_FAMILY_WEIGHT_FALLBACK = Object.keys(FONT_FAMILY_WEIGHT_TO_PREFIX).reduce(function (acc, fontFamily) {\n var weights = FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamily];\n acc[fontFamily] = weights[900] || _toConsumableArray(Object.entries(weights))[0][1];\n return acc;\n }, {});\n\n // Return hex value of *first* character in `content`\n function hexValueFromContent(content) {\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n return toHex(_toConsumableArray(cleaned)[0] || '');\n }\n\n // Check if it's a secondary Duotone layer, by checking if:\n // - Unicode value in `content` is repeated\n // - Unicode value in `content` is above 0x10000\n // - The \"ss01\" font feature is enabled on the `content`\n function isSecondaryLayer(styles) {\n var hasStylisticSet = styles.getPropertyValue('font-feature-settings').includes('ss01');\n var content = styles.getPropertyValue('content');\n var cleaned = content.replace(CLEAN_CONTENT_PATTERN, '');\n var codePoint = cleaned.codePointAt(0);\n var isPrependTen = codePoint >= SECONDARY_UNICODE_RANGE[0] && codePoint <= SECONDARY_UNICODE_RANGE[1];\n var isDoubled = cleaned.length === 2 ? cleaned[0] === cleaned[1] : false;\n return isPrependTen || isDoubled || hasStylisticSet;\n }\n function getPrefix(fontFamily, fontWeight) {\n var fontFamilySanitized = fontFamily.replace(/^['\"]|['\"]$/g, '').toLowerCase();\n var fontWeightInteger = parseInt(fontWeight);\n var fontWeightSanitized = isNaN(fontWeightInteger) ? 'normal' : fontWeightInteger;\n return (FONT_FAMILY_WEIGHT_TO_PREFIX[fontFamilySanitized] || {})[fontWeightSanitized] || FONT_FAMILY_WEIGHT_FALLBACK[fontFamilySanitized];\n }\n function replaceForPosition(node, position) {\n var pendingAttribute = \"\".concat(DATA_FA_PSEUDO_ELEMENT_PENDING).concat(position.replace(':', '-'));\n return new Promise(function (resolve, reject) {\n if (node.getAttribute(pendingAttribute) !== null) {\n // This node is already being processed\n return resolve();\n }\n var children = toArray(node.children);\n var alreadyProcessedPseudoElement = children.filter(function (c$$1) {\n return c$$1.getAttribute(DATA_FA_PSEUDO_ELEMENT) === position;\n })[0];\n var styles = WINDOW.getComputedStyle(node, position);\n var fontFamily = styles.getPropertyValue('font-family');\n var fontFamilyMatch = fontFamily.match(FONT_FAMILY_PATTERN);\n var fontWeight = styles.getPropertyValue('font-weight');\n var content = styles.getPropertyValue('content');\n if (alreadyProcessedPseudoElement && !fontFamilyMatch) {\n // If we've already processed it but the current computed style does not result in a font-family,\n // that probably means that a class name that was previously present to make the icon has been\n // removed. So we now should delete the icon.\n node.removeChild(alreadyProcessedPseudoElement);\n return resolve();\n } else if (fontFamilyMatch && content !== 'none' && content !== '') {\n var _content = styles.getPropertyValue('content');\n var prefix = getPrefix(fontFamily, fontWeight);\n var hexValue = hexValueFromContent(_content);\n var isV4 = fontFamilyMatch[0].startsWith('FontAwesome');\n var isSecondary = isSecondaryLayer(styles);\n var iconName = byUnicode(prefix, hexValue);\n var iconIdentifier = iconName;\n if (isV4) {\n var iconName4 = byOldUnicode(hexValue);\n if (iconName4.iconName && iconName4.prefix) {\n iconName = iconName4.iconName;\n prefix = iconName4.prefix;\n }\n }\n\n // Only convert the pseudo element in this ::before/::after position into an icon if we haven't\n // already done so with the same prefix and iconName\n if (iconName && !isSecondary && (!alreadyProcessedPseudoElement || alreadyProcessedPseudoElement.getAttribute(DATA_PREFIX) !== prefix || alreadyProcessedPseudoElement.getAttribute(DATA_ICON) !== iconIdentifier)) {\n node.setAttribute(pendingAttribute, iconIdentifier);\n if (alreadyProcessedPseudoElement) {\n // Delete the old one, since we're replacing it with a new one\n node.removeChild(alreadyProcessedPseudoElement);\n }\n var meta = blankMeta();\n var extra = meta.extra;\n extra.attributes[DATA_FA_PSEUDO_ELEMENT] = position;\n findIcon(iconName, prefix).then(function (main) {\n var abstract = makeInlineSvgAbstract(_objectSpread2(_objectSpread2({}, meta), {}, {\n icons: {\n main: main,\n mask: emptyCanonicalIcon()\n },\n prefix: prefix,\n iconName: iconIdentifier,\n extra: extra,\n watchable: true\n }));\n var element = DOCUMENT.createElementNS('http://www.w3.org/2000/svg', 'svg');\n if (position === '::before') {\n node.insertBefore(element, node.firstChild);\n } else {\n node.appendChild(element);\n }\n element.outerHTML = abstract.map(function (a$$1) {\n return toHtml(a$$1);\n }).join('\\n');\n node.removeAttribute(pendingAttribute);\n resolve();\n }).catch(reject);\n } else {\n resolve();\n }\n } else {\n resolve();\n }\n });\n }\n function replace(node) {\n return Promise.all([replaceForPosition(node, '::before'), replaceForPosition(node, '::after')]);\n }\n function processable(node) {\n return node.parentNode !== document.head && !~TAGNAMES_TO_SKIP_FOR_PSEUDOELEMENTS.indexOf(node.tagName.toUpperCase()) && !node.getAttribute(DATA_FA_PSEUDO_ELEMENT) && (!node.parentNode || node.parentNode.tagName !== 'svg');\n }\n var hasPseudoElement = function hasPseudoElement(selector) {\n return !!selector && PSEUDO_ELEMENTS.some(function (pseudoSelector) {\n return selector.includes(pseudoSelector);\n });\n };\n\n // Return selectors from all available stylesheets that have\n // pseudo-elements defined.\n var parseCSSRuleForPseudos = function parseCSSRuleForPseudos(selectorText) {\n if (!selectorText) return [];\n var selectorSet = new Set();\n var selectors = selectorText.split(/,(?![^()]*\\))/).map(function (s$$1) {\n return s$$1.trim();\n });\n selectors = selectors.flatMap(function (selector) {\n return selector.includes('(') ? selector : selector.split(',').map(function (s$$1) {\n return s$$1.trim();\n });\n });\n var _iterator = _createForOfIteratorHelper(selectors),\n _step;\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var selector = _step.value;\n if (hasPseudoElement(selector)) {\n // Remove pseudo-elements from the selector\n var selectorWithoutPseudo = PSEUDO_ELEMENTS.reduce(function (acc, pseudoSelector) {\n return acc.replace(pseudoSelector, '');\n }, selector);\n if (selectorWithoutPseudo !== '' && selectorWithoutPseudo !== '*') {\n selectorSet.add(selectorWithoutPseudo);\n }\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n return selectorSet;\n };\n function searchPseudoElements(root) {\n var useAsNodeList = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n if (!IS_DOM) return;\n var nodeList;\n if (useAsNodeList) {\n nodeList = root;\n } else if (config.searchPseudoElementsFullScan) {\n nodeList = root.querySelectorAll('*');\n } else {\n // Get elements that have pseudo elements defined in the CSS\n var selectorSet = new Set();\n var _iterator2 = _createForOfIteratorHelper(document.styleSheets),\n _step2;\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var stylesheet = _step2.value;\n try {\n var _iterator3 = _createForOfIteratorHelper(stylesheet.cssRules),\n _step3;\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var rule = _step3.value;\n var parsedSelectors = parseCSSRuleForPseudos(rule.selectorText);\n var _iterator4 = _createForOfIteratorHelper(parsedSelectors),\n _step4;\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var selector = _step4.value;\n selectorSet.add(selector);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n } catch (e$$1) {\n if (config.searchPseudoElementsWarnings) {\n console.warn(\"Font Awesome: cannot parse stylesheet: \".concat(stylesheet.href, \" (\").concat(e$$1.message, \")\\nIf it declares any Font Awesome CSS pseudo-elements, they will not be rendered as SVG icons. Add crossorigin=\\\"anonymous\\\" to the , enable searchPseudoElementsFullScan for slower but more thorough DOM parsing, or suppress this warning by setting searchPseudoElementsWarnings to false.\"));\n }\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n if (!selectorSet.size) return;\n var cleanSelectors = Array.from(selectorSet).join(', ');\n try {\n nodeList = root.querySelectorAll(cleanSelectors);\n } catch (_unused) {} // eslint-disable-line no-empty\n }\n return new Promise(function (resolve, reject) {\n var operations = toArray(nodeList).filter(processable).map(replace);\n var end = perf.begin('searchPseudoElements');\n disableObservation();\n Promise.all(operations).then(function () {\n end();\n enableObservation();\n resolve();\n }).catch(function () {\n end();\n enableObservation();\n reject();\n });\n });\n }\n var PseudoElements = {\n hooks: function hooks() {\n return {\n mutationObserverCallbacks: function mutationObserverCallbacks(accumulator) {\n accumulator.pseudoElementsCallback = searchPseudoElements;\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.pseudoElements2svg = function (params) {\n var _params$node = params.node,\n node = _params$node === void 0 ? DOCUMENT : _params$node;\n if (config.searchPseudoElements) {\n searchPseudoElements(node);\n }\n };\n }\n };\n\n var _unwatched = false;\n var MutationObserver$1 = {\n mixout: function mixout() {\n return {\n dom: {\n unwatch: function unwatch() {\n disableObservation();\n _unwatched = true;\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n bootstrap: function bootstrap() {\n observe(chainHooks('mutationObserverCallbacks', {}));\n },\n noAuto: function noAuto() {\n disconnect();\n },\n watch: function watch(params) {\n var observeMutationsRoot = params.observeMutationsRoot;\n if (_unwatched) {\n enableObservation();\n } else {\n observe(chainHooks('mutationObserverCallbacks', {\n observeMutationsRoot: observeMutationsRoot\n }));\n }\n }\n };\n }\n };\n\n var parseTransformString = function parseTransformString(transformString) {\n var transform = {\n size: 16,\n x: 0,\n y: 0,\n flipX: false,\n flipY: false,\n rotate: 0\n };\n return transformString.toLowerCase().split(' ').reduce(function (acc, n) {\n var parts = n.toLowerCase().split('-');\n var first = parts[0];\n var rest = parts.slice(1).join('-');\n if (first && rest === 'h') {\n acc.flipX = true;\n return acc;\n }\n if (first && rest === 'v') {\n acc.flipY = true;\n return acc;\n }\n rest = parseFloat(rest);\n if (isNaN(rest)) {\n return acc;\n }\n switch (first) {\n case 'grow':\n acc.size = acc.size + rest;\n break;\n case 'shrink':\n acc.size = acc.size - rest;\n break;\n case 'left':\n acc.x = acc.x - rest;\n break;\n case 'right':\n acc.x = acc.x + rest;\n break;\n case 'up':\n acc.y = acc.y - rest;\n break;\n case 'down':\n acc.y = acc.y + rest;\n break;\n case 'rotate':\n acc.rotate = acc.rotate + rest;\n break;\n }\n return acc;\n }, transform);\n };\n var PowerTransforms = {\n mixout: function mixout() {\n return {\n parse: {\n transform: function transform(transformString) {\n return parseTransformString(transformString);\n }\n }\n };\n },\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var transformString = node.getAttribute('data-fa-transform');\n if (transformString) {\n accumulator.transform = parseTransformString(transformString);\n }\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractTransformGrouping = function (_ref) {\n var main = _ref.main,\n transform = _ref.transform,\n containerWidth = _ref.containerWidth,\n iconWidth = _ref.iconWidth;\n var outer = {\n transform: \"translate(\".concat(containerWidth / 2, \" 256)\")\n };\n var innerTranslate = \"translate(\".concat(transform.x * 32, \", \").concat(transform.y * 32, \") \");\n var innerScale = \"scale(\".concat(transform.size / 16 * (transform.flipX ? -1 : 1), \", \").concat(transform.size / 16 * (transform.flipY ? -1 : 1), \") \");\n var innerRotate = \"rotate(\".concat(transform.rotate, \" 0 0)\");\n var inner = {\n transform: \"\".concat(innerTranslate, \" \").concat(innerScale, \" \").concat(innerRotate)\n };\n var path = {\n transform: \"translate(\".concat(iconWidth / 2 * -1, \" -256)\")\n };\n var operations = {\n outer: outer,\n inner: inner,\n path: path\n };\n return {\n tag: 'g',\n attributes: _objectSpread2({}, operations.outer),\n children: [{\n tag: 'g',\n attributes: _objectSpread2({}, operations.inner),\n children: [{\n tag: main.icon.tag,\n children: main.icon.children,\n attributes: _objectSpread2(_objectSpread2({}, main.icon.attributes), operations.path)\n }]\n }]\n };\n };\n }\n };\n\n var ALL_SPACE = {\n x: 0,\n y: 0,\n width: '100%',\n height: '100%'\n };\n function fillBlack(abstract) {\n var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n if (abstract.attributes && (abstract.attributes.fill || force)) {\n abstract.attributes.fill = 'black';\n }\n return abstract;\n }\n function deGroup(abstract) {\n if (abstract.tag === 'g') {\n return abstract.children;\n } else {\n return [abstract];\n }\n }\n var Masks = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var maskData = node.getAttribute('data-fa-mask');\n var mask = !maskData ? emptyCanonicalIcon() : getCanonicalIcon(maskData.split(' ').map(function (i) {\n return i.trim();\n }));\n if (!mask.prefix) {\n mask.prefix = getDefaultUsablePrefix();\n }\n accumulator.mask = mask;\n accumulator.maskId = node.getAttribute('data-fa-mask-id');\n return accumulator;\n }\n };\n },\n provides: function provides(providers) {\n providers.generateAbstractMask = function (_ref) {\n var children = _ref.children,\n attributes = _ref.attributes,\n main = _ref.main,\n mask = _ref.mask,\n explicitMaskId = _ref.maskId,\n transform = _ref.transform;\n var mainWidth = main.width,\n mainPath = main.icon;\n var maskWidth = mask.width,\n maskPath = mask.icon;\n var trans = transformForSvg({\n transform: transform,\n containerWidth: maskWidth,\n iconWidth: mainWidth\n });\n var maskRect = {\n tag: 'rect',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n fill: 'white'\n })\n };\n var maskInnerGroupChildrenMixin = mainPath.children ? {\n children: mainPath.children.map(fillBlack)\n } : {};\n var maskInnerGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.inner),\n children: [fillBlack(_objectSpread2({\n tag: mainPath.tag,\n attributes: _objectSpread2(_objectSpread2({}, mainPath.attributes), trans.path)\n }, maskInnerGroupChildrenMixin))]\n };\n var maskOuterGroup = {\n tag: 'g',\n attributes: _objectSpread2({}, trans.outer),\n children: [maskInnerGroup]\n };\n var maskId = \"mask-\".concat(explicitMaskId || nextUniqueId());\n var clipId = \"clip-\".concat(explicitMaskId || nextUniqueId());\n var maskTag = {\n tag: 'mask',\n attributes: _objectSpread2(_objectSpread2({}, ALL_SPACE), {}, {\n id: maskId,\n maskUnits: 'userSpaceOnUse',\n maskContentUnits: 'userSpaceOnUse'\n }),\n children: [maskRect, maskOuterGroup]\n };\n var defs = {\n tag: 'defs',\n children: [{\n tag: 'clipPath',\n attributes: {\n id: clipId\n },\n children: deGroup(maskPath)\n }, maskTag]\n };\n children.push(defs, {\n tag: 'rect',\n attributes: _objectSpread2({\n 'fill': 'currentColor',\n 'clip-path': \"url(#\".concat(clipId, \")\"),\n 'mask': \"url(#\".concat(maskId, \")\")\n }, ALL_SPACE)\n });\n return {\n children: children,\n attributes: attributes\n };\n };\n }\n };\n\n var MissingIconIndicator = {\n provides: function provides(providers) {\n var reduceMotion = false;\n if (WINDOW.matchMedia) {\n reduceMotion = WINDOW.matchMedia('(prefers-reduced-motion: reduce)').matches;\n }\n providers.missingIconAbstract = function () {\n var gChildren = [];\n var FILL = {\n fill: 'currentColor'\n };\n var ANIMATION_BASE = {\n attributeType: 'XML',\n repeatCount: 'indefinite',\n dur: '2s'\n };\n\n // Ring\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n d: 'M156.5,447.7l-12.6,29.5c-18.7-9.5-35.9-21.2-51.5-34.9l22.7-22.7C127.6,430.5,141.5,440,156.5,447.7z M40.6,272H8.5 c1.4,21.2,5.4,41.7,11.7,61.1L50,321.2C45.1,305.5,41.8,289,40.6,272z M40.6,240c1.4-18.8,5.2-37,11.1-54.1l-29.5-12.6 C14.7,194.3,10,216.7,8.5,240H40.6z M64.3,156.5c7.8-14.9,17.2-28.8,28.1-41.5L69.7,92.3c-13.7,15.6-25.5,32.8-34.9,51.5 L64.3,156.5z M397,419.6c-13.9,12-29.4,22.3-46.1,30.4l11.9,29.8c20.7-9.9,39.8-22.6,56.9-37.6L397,419.6z M115,92.4 c13.9-12,29.4-22.3,46.1-30.4l-11.9-29.8c-20.7,9.9-39.8,22.6-56.8,37.6L115,92.4z M447.7,355.5c-7.8,14.9-17.2,28.8-28.1,41.5 l22.7,22.7c13.7-15.6,25.5-32.9,34.9-51.5L447.7,355.5z M471.4,272c-1.4,18.8-5.2,37-11.1,54.1l29.5,12.6 c7.5-21.1,12.2-43.5,13.6-66.8H471.4z M321.2,462c-15.7,5-32.2,8.2-49.2,9.4v32.1c21.2-1.4,41.7-5.4,61.1-11.7L321.2,462z M240,471.4c-18.8-1.4-37-5.2-54.1-11.1l-12.6,29.5c21.1,7.5,43.5,12.2,66.8,13.6V471.4z M462,190.8c5,15.7,8.2,32.2,9.4,49.2h32.1 c-1.4-21.2-5.4-41.7-11.7-61.1L462,190.8z M92.4,397c-12-13.9-22.3-29.4-30.4-46.1l-29.8,11.9c9.9,20.7,22.6,39.8,37.6,56.9 L92.4,397z M272,40.6c18.8,1.4,36.9,5.2,54.1,11.1l12.6-29.5C317.7,14.7,295.3,10,272,8.5V40.6z M190.8,50 c15.7-5,32.2-8.2,49.2-9.4V8.5c-21.2,1.4-41.7,5.4-61.1,11.7L190.8,50z M442.3,92.3L419.6,115c12,13.9,22.3,29.4,30.5,46.1 l29.8-11.9C470,128.5,457.3,109.4,442.3,92.3z M397,92.4l22.7-22.7c-15.6-13.7-32.8-25.5-51.5-34.9l-12.6,29.5 C370.4,72.1,384.4,81.5,397,92.4z'\n })\n });\n var OPACITY_ANIMATE = _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'opacity'\n });\n var dot = {\n tag: 'circle',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n cx: '256',\n cy: '364',\n r: '28'\n }),\n children: []\n };\n if (!reduceMotion) {\n dot.children.push({\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, ANIMATION_BASE), {}, {\n attributeName: 'r',\n values: '28;14;28;28;14;28;'\n })\n }, {\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;1;1;0;1;'\n })\n });\n }\n gChildren.push(dot);\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '1',\n d: 'M263.7,312h-16c-6.6,0-12-5.4-12-12c0-71,77.4-63.9,77.4-107.8c0-20-17.8-40.2-57.4-40.2c-29.1,0-44.3,9.6-59.2,28.7 c-3.9,5-11.1,6-16.2,2.4l-13.1-9.2c-5.6-3.9-6.9-11.8-2.6-17.2c21.2-27.2,46.4-44.7,91.2-44.7c52.3,0,97.4,29.8,97.4,80.2 c0,67.6-77.4,63.5-77.4,107.8C275.7,306.6,270.3,312,263.7,312z'\n }),\n children: reduceMotion ? [] : [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '1;0;0;0;0;1;'\n })\n }]\n });\n if (!reduceMotion) {\n // Exclamation\n gChildren.push({\n tag: 'path',\n attributes: _objectSpread2(_objectSpread2({}, FILL), {}, {\n opacity: '0',\n d: 'M232.5,134.5l7,168c0.3,6.4,5.6,11.5,12,11.5h9c6.4,0,11.7-5.1,12-11.5l7-168c0.3-6.8-5.2-12.5-12-12.5h-23 C237.7,122,232.2,127.7,232.5,134.5z'\n }),\n children: [{\n tag: 'animate',\n attributes: _objectSpread2(_objectSpread2({}, OPACITY_ANIMATE), {}, {\n values: '0;0;1;1;0;0;'\n })\n }]\n });\n }\n return {\n tag: 'g',\n attributes: {\n class: 'missing'\n },\n children: gChildren\n };\n };\n }\n };\n\n var SvgSymbols = {\n hooks: function hooks() {\n return {\n parseNodeAttributes: function parseNodeAttributes(accumulator, node) {\n var symbolData = node.getAttribute('data-fa-symbol');\n var symbol = symbolData === null ? false : symbolData === '' ? true : symbolData;\n accumulator['symbol'] = symbol;\n return accumulator;\n }\n };\n }\n };\n\n var plugins = [InjectCSS, ReplaceElements, Layers, LayersCounter, LayersText, PseudoElements, MutationObserver$1, PowerTransforms, Masks, MissingIconIndicator, SvgSymbols];\n\n registerPlugins(plugins, {\n mixoutsTo: api\n });\n bunker(bootstrap);\n\n}());\n", + "var g;((Z)=>{Z[Z.NONE=0]=\"NONE\";Z[Z.ERROR=1]=\"ERROR\";Z[Z.WARNING=2]=\"WARNING\";Z[Z.INFO=3]=\"INFO\";Z[Z.DEBUG=4]=\"DEBUG\";Z[Z.ALL=5]=\"ALL\"})(g||={});class y{static _level=0;static get currentLevel(){return this._level}static level(G){if(typeof G===\"number\")this._level=G;return this._level}static setLevel(G){this._level=G}static isEnabled(G){return this._level>=G}static log(...G){if(this._level>=4)console.log(...G)}static debug(...G){if(this._level>=4)console.debug(...G)}static info(...G){if(this._level>=3)console.info(...G)}static error(...G){if(this._level>=1)console.error(...G)}static warning(...G){if(this._level>=2)console.warn(...G)}static warn(...G){this.warning(...G)}static table(G,J){if(this._level>=4)console.table(G,J)}static group(...G){if(this._level>=4)console.group(...G)}static groupCollapsed(...G){if(this._level>=4)console.groupCollapsed(...G)}static groupEnd(){if(this._level>=4)console.groupEnd()}static time(G){if(this._level>=4)console.time(G)}static timeLog(G,...J){if(this._level>=4)console.timeLog(G,...J)}static timeEnd(G){if(this._level>=4)console.timeEnd(G)}static trace(...G){if(this._level>=4)console.trace(...G)}static assert(G,...J){if(this._level>=1)console.assert(G,...J)}static clear(){if(this._level>=4)console.clear()}static count(G){if(this._level>=4)console.count(G)}static countReset(G){if(this._level>=4)console.countReset(G)}static dir(G){if(this._level>=4)console.dir(G)}static dirxml(G){if(this._level>=4)console.dirxml(G)}static format(G,...J){let Q=G,W=0;return Q=Q.replace(/%[sdioOcj%]/g,(X)=>{if(X===\"%%\")return\"%\";if(W>=J.length)return X;let Y=J[W++];switch(X){case\"%s\":return String(Y);case\"%d\":case\"%i\":return String(parseInt(String(Y),10));case\"%o\":case\"%O\":return JSON.stringify(Y);case\"%c\":return\"\";case\"%j\":return JSON.stringify(Y);default:return X}}),Q}}var w=new WeakMap;class I{collection;length;constructor(G){if(!G)this.collection=[];else if(typeof G===\"string\")this.collection=Array.from(document.querySelectorAll(G));else if(G instanceof NodeList)this.collection=Array.from(G);else if(G instanceof I)this.collection=G.collection;else if(G instanceof Element)this.collection=[G];else if(Array.isArray(G))this.collection=G;else this.collection=[];this.length=this.collection.length}hide(){return this.style(\"display\",\"none\")}show(G=\"block\"){return this.style(\"display\",G)}addClass(G){return this.collection.forEach((J)=>J.classList.add(G)),this}removeClass(G){return this.collection.forEach((J)=>{if(!G)J.className=\"\";else J.classList.remove(G)}),this}toggleClass(G){let J=G.split(\" \");return this.collection.forEach((Q)=>{J.forEach((W)=>Q.classList.toggle(W))}),this}hasClass(G){if(this.length===0)return!1;return this.collection.every((J)=>J.classList.contains(G))}value(G){if(G!==void 0){let Q=String(G);for(let W of this.collection)if(W instanceof HTMLInputElement||W instanceof HTMLTextAreaElement||W instanceof HTMLSelectElement||W instanceof HTMLButtonElement||W instanceof HTMLOptionElement)W.value=Q;return this}if(this.length===0)return;let J=this.collection[0];if(J instanceof HTMLInputElement||J instanceof HTMLTextAreaElement||J instanceof HTMLSelectElement||J instanceof HTMLButtonElement||J instanceof HTMLOptionElement)return J.value;return}focus(){if(this.length>0)this.collection[0].focus();return this}blur(){if(this.length>0)this.collection[0].blur();return this}click(G){return this.on(\"click\",G)}keyup(G){return this.on(\"keyup\",G)}keydown(G){return this.on(\"keydown\",G)}submit(G){return this.on(\"submit\",G)}change(G){return this.on(\"change\",G)}scroll(G){return this.on(\"scroll\",G)}input(G){return this.on(\"input\",G)}on(G,J,Q){let W=G.split(\" \"),X=typeof J===\"string\",Y=X?Q:J,Z=X?J:null;if(!Y)return this;return this.collection.forEach(($)=>{W.forEach((B)=>{let _=X&&Z?(A)=>{let z=A.target;if(z instanceof Element){let H=z.closest(Z);if(H&&$.contains(H))Y.call(H,A)}}:Y;if(!w.has($))w.set($,new Map);let U=w.get($);if(!U.has(B))U.set(B,[]);U.get(B).push({selector:Z,originalCallback:Y,wrappedListener:_}),$.addEventListener(B,_,!1)})}),this}off(G,J,Q){return this.collection.forEach((W)=>{let X=w.get(W);if(!X)return;let Y=G?G.split(\" \"):Array.from(X.keys()),Z=typeof J===\"string\",$=Z?J:void 0,B=Z?Q:J;if(Y.forEach((_)=>{let U=X.get(_);if(!U)return;let A=U.filter((H)=>{if(B&&H.originalCallback!==B)return!1;if($!==void 0&&H.selector!==$)return!1;return!0});A.forEach((H)=>{W.removeEventListener(_,H.wrappedListener)});let z=U.filter((H)=>!A.includes(H));if(z.length>0)X.set(_,z);else X.delete(_)}),X.size===0)w.delete(W)}),this}trigger(G,J){let Q=G.split(\" \");return this.collection.forEach((W)=>{Q.forEach((X)=>{let Y=J!==void 0?new CustomEvent(X,{detail:J,bubbles:!0,cancelable:!0}):new Event(X,{bubbles:!0,cancelable:!0});W.dispatchEvent(Y)})}),this}filter(G){return new I(this.collection.filter((J)=>J.matches(G)))}exists(){return this.length>0}data(G,J){if(J!==void 0)return this.collection.forEach((Q)=>Q.dataset[G]=J),this;return this.length>0?this.collection[0].dataset[G]:void 0}removeData(G){return this.collection.forEach((J)=>delete J.dataset[G]),this}text(G){if(G!==void 0){let J=String(G);for(let Q of this.collection)Q.textContent=J;return this}if(this.length===0)return;return this.collection[0].textContent||\"\"}html(G){if(G!==void 0){let J=String(G);for(let Q of this.collection)Q.innerHTML=J;return this}if(this.length===0)return;return this.collection[0].innerHTML}append(G){return this.collection.forEach((J,Q)=>{if(typeof G===\"string\")J.insertAdjacentHTML(\"beforeend\",G);else{let W=Q===0?G:G.cloneNode(!0);J.appendChild(W)}}),this}prepend(G){return this.collection.forEach((J,Q)=>{if(typeof G===\"string\")J.insertAdjacentHTML(\"afterbegin\",G);else{let W=Q===0?G:G.cloneNode(!0);J.prepend(W)}}),this}each(G){return this.collection.forEach((J,Q)=>G(J,Q)),this}get(G){return this.collection[G]}first(){return new I(this.collection[0]??null)}last(){return new I(this.collection[this.collection.length-1]??null)}eq(G){let J=G<0?this.collection.length+G:G;return new I(this.collection[J]??null)}isVisible(){return this.collection.some((G)=>G.style.display!==\"none\"&&G.offsetWidth>0&&G.offsetHeight>0)}parent(){let G=new Set;return this.collection.forEach((J)=>{if(J.parentElement)G.add(J.parentElement)}),new I(Array.from(G))}parents(){let G=new Set;return this.collection.forEach((J)=>{let Q=J.parentElement;while(Q)G.add(Q),Q=Q.parentElement}),new I(Array.from(G))}find(G){let J=new Set;for(let Q of this.collection){let W=Q.querySelectorAll(G);for(let X of W)J.add(X)}return new I(Array.from(J))}offset(){if(this.length===0)return;let G=this.collection[0].getBoundingClientRect();return{top:G.top+window.scrollY,left:G.left+window.scrollX}}width(){if(this.length===0)return 0;return this.collection[0].getBoundingClientRect().width}height(){if(this.length===0)return 0;return this.collection[0].getBoundingClientRect().height}closest(G){let J=new Set;return this.collection.forEach((Q)=>{let W=Q.closest(G);if(W)J.add(W)}),new I(Array.from(J))}attribute(G,J){if(J!==void 0)return this.collection.forEach((Q)=>Q.setAttribute(G,String(J))),this;return this.length>0?this.collection[0].getAttribute(G):void 0}removeAttribute(G){return this.collection.forEach((J)=>J.removeAttribute(G)),this}hasAttribute(G){if(this.length===0)return!1;return this.collection.every((J)=>J.hasAttribute(G))}after(G){return this.collection.forEach((J)=>J.insertAdjacentHTML(\"afterend\",G)),this}before(G){return this.collection.forEach((J)=>J.insertAdjacentHTML(\"beforebegin\",G)),this}style(G,J){if(typeof G===\"string\"&&J===void 0)return this.length>0?this.collection[0].style.getPropertyValue(G):\"\";return this.collection.forEach((Q)=>{if(typeof G===\"string\"&&J!==void 0)Q.style.setProperty(G,J);else if(typeof G===\"object\")Object.entries(G).forEach(([W,X])=>{Q.style.setProperty(W,String(X))})}),this}animate(G,J){return this.collection.forEach((Q)=>Q.animate(G,J)),this}fadeIn(G=400,J){return this.collection.forEach((Q,W)=>{if(getComputedStyle(Q).display===\"none\")Q.style.display=\"block\";let X=Q.animate([{opacity:0},{opacity:1}],{duration:G,fill:\"forwards\"});if(J&&W===this.collection.length-1)X.onfinish=()=>J()}),this}fadeOut(G=400,J){return this.collection.forEach((Q,W)=>{let X=Q.animate([{opacity:1},{opacity:0}],{duration:G,fill:\"forwards\"});X.onfinish=()=>{if(Q.style.display=\"none\",J&&W===this.collection.length-1)J()}}),this}matches(G){if(this.length===0)return!1;return this.collection.every((J)=>J.matches(G))}remove(){return this.collection.forEach((G)=>G.remove()),this}empty(){return this.collection.forEach((G)=>{G.innerHTML=\"\"}),this}clone(G=!0){let J=this.collection.map((Q)=>Q.cloneNode(G));return new I(J)}replaceWith(G){for(let J=this.collection.length-1;J>=0;J--){let Q=this.collection[J];if(typeof G===\"string\")Q.outerHTML=G;else{let W=J===0?G:G.cloneNode(!0);Q.replaceWith(W)}}return this}reset(){return this.collection.forEach((G)=>{if(G instanceof HTMLFormElement)G.reset()}),this}property(G,J){if(J!==void 0)return this.collection.forEach((Q)=>{Q[G]=J}),this;if(this.length===0)return;return this.collection[0][G]}siblings(){let G=new Set;return this.collection.forEach((J)=>{if(J.parentElement)Array.from(J.parentElement.children).forEach((Q)=>{if(Q!==J&&Q instanceof HTMLElement)G.add(Q)})}),new I(Array.from(G))}next(){let G=new Set;return this.collection.forEach((J)=>{let Q=J.nextElementSibling;if(Q instanceof HTMLElement)G.add(Q)}),new I(Array.from(G))}prev(){let G=new Set;return this.collection.forEach((J)=>{let Q=J.previousElementSibling;if(Q instanceof HTMLElement)G.add(Q)}),new I(Array.from(G))}children(){let G=new Set;return this.collection.forEach((J)=>{Array.from(J.children).forEach((Q)=>{if(Q instanceof HTMLElement)G.add(Q)})}),new I(Array.from(G))}scrollIntoView(G){if(this.length>0)this.collection[0].scrollIntoView(G);return this}}function m(G){return new I(G)}function u(G){if(document.readyState===\"loading\")document.addEventListener(\"DOMContentLoaded\",G);else G()}function i(G,J){let Q=document.createElement(G);if(J)Object.entries(J).forEach(([W,X])=>{Q.setAttribute(W,X)});return new I(Q)}class M extends Error{status;statusText;response;constructor(G,J){super(J||`Request failed: ${G.status} ${G.statusText}`);this.name=\"RequestError\",this.status=G.status,this.statusText=G.statusText,this.response=G}}class h extends Error{constructor(G,J){super(`Request to \"${G}\" timed out after ${J}ms`);this.name=\"RequestTimeoutError\"}}class K{static serialize(G,J){if(G instanceof FormData){let W=new URLSearchParams;return G.forEach((X,Y)=>{if(typeof X===\"string\")W.append(Y,X)}),W.toString()}let Q=[];for(let[W,X]of Object.entries(G)){if(X===void 0||X===null)continue;let Y=J?`${J}[${W}]`:W;if(Array.isArray(X))X.forEach((Z,$)=>{if(typeof Z===\"object\"&&Z!==null)Q.push(K.serialize(Z,`${Y}[${$}]`));else Q.push(`${encodeURIComponent(Y)}[]=${encodeURIComponent(String(Z))}`)});else if(typeof X===\"object\")Q.push(K.serialize(X,Y));else Q.push(`${encodeURIComponent(Y)}=${encodeURIComponent(String(X))}`)}return Q.filter(Boolean).join(\"&\")}static parseUrl(G){try{return new URL(G)}catch{try{return new URL(G,window.location.origin)}catch(J){throw Error(`Invalid URL: \"${G}\"`)}}}static createTimeoutController(G,J){let Q=new AbortController;if(!G)return{controller:Q};let W=setTimeout(()=>{Q.abort(new h(J,G))},G);return{controller:Q,timeoutId:W}}static async send(G,J,Q={},W={}){let{timeout:X,...Y}=W,Z=K.parseUrl(J),$=void 0,B={...Y.headers};if([\"GET\",\"DELETE\",\"HEAD\"].includes(G.toUpperCase())){if(Q&&typeof Q===\"object\"&&!(Q instanceof FormData))Object.entries(Q).forEach(([A,z])=>{if(z!==void 0&&z!==null)if(typeof z===\"object\"){let H=K.serialize({[A]:z});new URLSearchParams(H).forEach((R,f)=>Z.searchParams.append(f,R))}else Z.searchParams.append(A,String(z))})}else{let A=B[\"Content-Type\"]||B[\"content-type\"];if(Q instanceof FormData)delete B[\"Content-Type\"],delete B[\"content-type\"],$=Q;else if(A===\"application/json\")$=JSON.stringify(Q);else{if(!A)B[\"Content-Type\"]=\"application/x-www-form-urlencoded\";let z=new URLSearchParams;Object.entries(Q).forEach(([H,L])=>z.append(H,String(L))),$=z}}let{controller:_,timeoutId:U}=K.createTimeoutController(X,J);try{return await fetch(Z.toString(),{...Y,method:G,headers:B,body:$,signal:_.signal})}finally{if(U)clearTimeout(U)}}static get(G,J={},Q={}){return K.send(\"GET\",G,J,Q)}static post(G,J,Q={}){return K.send(\"POST\",G,J,Q)}static put(G,J,Q={}){return K.send(\"PUT\",G,J,Q)}static patch(G,J,Q={}){return K.send(\"PATCH\",G,J,Q)}static delete(G,J={},Q={}){return K.send(\"DELETE\",G,J,Q)}static head(G,J={},Q={}){return K.send(\"HEAD\",G,J,Q)}static async json(G,J={},Q={}){let W=await K.get(G,J,Q);if(!W.ok)throw new M(W);return W.json()}static async postJson(G,J,Q={}){let W={...Q.headers,\"Content-Type\":\"application/json\"},X=await K.post(G,J,{...Q,headers:W});if(!X.ok)throw new M(X);return X.json()}static async blob(G,J={},Q={}){let W=await K.get(G,J,Q);if(!W.ok)throw new M(W);return W.blob()}static async text(G,J={},Q={}){let W=await K.get(G,J,Q);if(!W.ok)throw new M(W);return W.text()}static async arrayBuffer(G,J={},Q={}){let W=await K.get(G,J,Q);if(!W.ok)throw new M(W);return W.arrayBuffer()}static async exists(G,J={}){try{return(await K.head(G,{},J)).ok}catch{return!1}}}class j{static async readRemote(G,J=\"base64\",Q={}){let W=await K.blob(G,{},Q);return j.read(W,J)}static async read(G,J=\"text\"){switch(J){case\"text\":return G.text();case\"buffer\":return G.arrayBuffer();case\"base64\":return new Promise((Q,W)=>{let X=new FileReader;X.onload=()=>Q(X.result),X.onerror=()=>W(X.error),X.readAsDataURL(G)});case\"binary\":return new Promise((Q,W)=>{let X=new FileReader;X.onload=()=>{let Y=X.result,Z=\"\",$=new Uint8Array(Y),B=$.byteLength;for(let _=0;_W(X.error),X.readAsArrayBuffer(G)});default:throw Error(`FileSystem.read: Unknown type ${J}`)}}static create(G,J,Q=\"text/plain\"){return new File([J],G,{type:Q})}static download(G,J){let Q=URL.createObjectURL(G),W=document.createElement(\"a\");W.href=Q;let X;if(J!==void 0&&J!==\"\")X=J;else if(G instanceof File&&G.name!==\"\")X=G.name;else X=\"download\";W.download=X,document.body.appendChild(W),W.click(),document.body.removeChild(W),URL.revokeObjectURL(Q)}static extension(G,J=!1){let Q=G.split(\".\");if(Q.length===1||Q[0]===\"\"&&Q.length===2&&!J)return\"\";return Q.pop()?.toLowerCase()??\"\"}static isImage(G){let J=j.extension(G);return new Set([\"jpg\",\"jpeg\",\"png\",\"gif\",\"svg\",\"webp\",\"avif\",\"bmp\",\"ico\",\"tiff\",\"heic\"]).has(J)}static isVideo(G){let J=j.extension(G);return new Set([\"mp4\",\"webm\",\"ogg\",\"mov\",\"avi\",\"mkv\",\"m4v\"]).has(J)}static isAudio(G){let J=j.extension(G);return new Set([\"mp3\",\"wav\",\"ogg\",\"flac\",\"aac\",\"m4a\",\"wma\"]).has(J)}static humanSize(G,J=2){if(G===0)return\"0 Bytes\";let Q=1024,W=[\"Bytes\",\"KB\",\"MB\",\"GB\",\"TB\",\"PB\"],X=Math.floor(Math.log(G)/Math.log(Q));return parseFloat((G/Math.pow(Q,X)).toFixed(J))+\" \"+W[X]}}class T{static fill(G,J){let Q=document.querySelector(`form[data-form='${G}']`);if(!Q){console.warn(`Form [data-form='${G}'] not found.`);return}Object.entries(J).forEach(([W,X])=>{let Y=Q.querySelectorAll(`[name='${W}']`);if(Y.length===0)return;let $=Y[0].type,B=String(X);switch($){case\"radio\":Y.forEach((_)=>{let U=_;if(U.value===B)U.checked=!0});break;case\"checkbox\":if(Y.length===1)Y[0].checked=!!X;else if(Array.isArray(X)){let _=X.map(String);Y.forEach((U)=>{let A=U;A.checked=_.includes(A.value)})}break;case\"file\":break;default:Y[0].value=B;break}})}static values(G,J={}){let{parseNumbers:Q=!0,parseBooleans:W=!0}=J,X=document.querySelector(`form[data-form='${G}']`);if(!X)return console.warn(`Form [data-form='${G}'] not found.`),{};let Y=new FormData(X),Z={},$=Array.from(new Set(Y.keys()));for(let B of $){let _=Y.getAll(B),U=X.querySelector(`[name='${B}']`),A=U?.type;if(A===\"file\"){let z=_.filter((H)=>H instanceof File);if(U?.multiple||z.length>1)Z[B]=z;else Z[B]=z[0]||null;continue}if(A===\"checkbox\"){let z=X.querySelectorAll(`[name='${B}']`);if(z.length===1&&W){Z[B]=z[0].checked;continue}Z[B]=_.map((H)=>T.parseValue(String(H),Q));continue}if(A===\"number\"&&Q){if(_.length>1)Z[B]=_.map((z)=>parseFloat(String(z)));else Z[B]=parseFloat(String(_[0]));continue}if(_.length>1)Z[B]=_.map((z)=>T.parseValue(String(z),Q));else Z[B]=T.parseValue(String(_[0]),Q)}return Z}static parseValue(G,J){if(J&&G!==\"\"&&!isNaN(Number(G)))return Number(G);return G}static reset(G){let J=document.querySelector(`form[data-form='${G}']`);if(!J){console.warn(`Form [data-form='${G}'] not found.`);return}J.reset()}static isValid(G){let J=document.querySelector(`form[data-form='${G}']`);if(!J)return console.warn(`Form [data-form='${G}'] not found.`),!1;return J.checkValidity()}static reportValidity(G){let J=document.querySelector(`form[data-form='${G}']`);if(!J)return console.warn(`Form [data-form='${G}'] not found.`),!1;return J.reportValidity()}}class F{static get retina(){return window.devicePixelRatio>=2}static get portrait(){return window.matchMedia(\"(orientation: portrait)\").matches}static get landscape(){return window.matchMedia(\"(orientation: landscape)\").matches}static get orientation(){return F.portrait?\"portrait\":\"landscape\"}static get darkMode(){return window.matchMedia(\"(prefers-color-scheme: dark)\").matches}static get reducedMotion(){return window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches}static get touch(){return\"ontouchstart\"in window||navigator.maxTouchPoints>0}static get standalone(){let G=navigator;return window.matchMedia(\"(display-mode: standalone)\").matches||G.standalone===!0}static get electron(){let G=window;if(navigator.userAgent.toLowerCase().includes(\" electron/\"))return!0;if(G.process?.type===\"renderer\")return!0;if(G.process?.versions?.electron)return!0;return!1}static get electrobun(){return!!window.__electrobun}static get desktopApp(){return F.electron||F.electrobun}static get cordova(){return!!window.cordova}static get userAgent(){return navigator.userAgent.toLowerCase()}static desktop(G=\"Any\"){let J=navigator;if(J.userAgentData?.mobile===!0)return!1;if(F.isIpadOS())return!1;let Q=F.userAgent,W=J.userAgentData?.platform?.toLowerCase()||\"\",X={ChromeOS:W.includes(\"cros\")||Q.includes(\"cros\"),Windows:W.includes(\"windows\")||Q.includes(\"windows\"),macOS:W.includes(\"macos\")||Q.includes(\"macintosh\"),Linux:!Q.includes(\"android\")&&(W.includes(\"linux\")||Q.includes(\"linux\")),FreeBSD:W.includes(\"freebsd\")||Q.includes(\"freebsd\")};if(G===\"Any\")return Object.values(X).some((Y)=>Y);return X[G]||!1}static mobile(G=\"Any\"){if(navigator.userAgentData?.mobile===!0&&G===\"Any\")return!0;let Q=F.userAgent,W={Android:Q.includes(\"android\"),iOS:/iphone|ipod/.test(Q),iPadOS:F.isIpadOS(),WindowsMobile:/windows phone|iemobile|wpdesktop/.test(Q),BlackBerry:/blackberry|bb10/.test(Q)};if(G===\"Any\")return Object.values(W).some((X)=>X);return W[G]||!1}static isIpadOS(){let G=F.userAgent;if(G.includes(\"ipad\"))return!0;if(G.includes(\"macintosh\")&&navigator.maxTouchPoints>0)return!0;return!1}static get serviceWorkers(){return\"serviceWorker\"in navigator&&window.isSecureContext}static get coarsePointer(){return window.matchMedia(\"(pointer: coarse)\").matches}static get finePointer(){return window.matchMedia(\"(pointer: fine)\").matches}static get canHover(){return window.matchMedia(\"(hover: hover)\").matches}}class S{static async image(G){let J=new Image;return J.src=G,await J.decode(),J}static async images(G){return Promise.all(G.map((J)=>S.image(J)))}static async file(G,J=\"low\"){let W=await fetch(G,{priority:J});if(!W.ok)throw Error(`Preload failed for \"${G}\": ${W.status} ${W.statusText}`);return W}static async files(G,J=\"low\"){return Promise.all(G.map((Q)=>S.file(Q,J)))}static async isCached(G,J){if(!(\"caches\"in window))return!1;try{return!!await(await caches.open(G)).match(J)}catch{return!1}}static async addToCache(G,J){if(!(\"caches\"in window))throw Error(\"Cache API is not supported in this browser\");try{await(await caches.open(G)).add(J)}catch(Q){throw Error(`Failed to cache \"${J}\": ${Q instanceof Error?Q.message:String(Q)}`)}}static async addAllToCache(G,J){if(!(\"caches\"in window))throw Error(\"Cache API is not supported in this browser\");try{await(await caches.open(G)).addAll(J)}catch(Q){throw Error(`Failed to cache URLs: ${Q instanceof Error?Q.message:String(Q)}`)}}static async stylesheet(G){return new Promise((J,Q)=>{let W=document.createElement(\"link\");W.rel=\"preload\",W.as=\"style\",W.href=G,W.onload=()=>J(),W.onerror=()=>Q(Error(`Failed to preload stylesheet: ${G}`)),document.head.appendChild(W)})}static async script(G){return new Promise((J,Q)=>{let W=document.createElement(\"link\");W.rel=\"preload\",W.as=\"script\",W.href=G,W.onload=()=>J(),W.onerror=()=>Q(Error(`Failed to preload script: ${G}`)),document.head.appendChild(W)})}static async font(G,J=!0){return new Promise((Q,W)=>{let X=document.createElement(\"link\");if(X.rel=\"preload\",X.as=\"font\",X.href=G,J)X.crossOrigin=\"anonymous\";X.onload=()=>Q(),X.onerror=()=>W(Error(`Failed to preload font: ${G}`)),document.head.appendChild(X)})}static async audio(G,J){let Q=await fetch(G);if(!Q.ok)throw Error(`Preload failed for \"${G}\": ${Q.status} ${Q.statusText}`);let W=await Q.arrayBuffer(),X=J??new AudioContext,Y=!J;try{return await X.decodeAudioData(W)}finally{if(Y)await X.close()}}static async audios(G,J){let Q=J??new AudioContext,W=!J;try{return await Promise.all(G.map((X)=>S.audio(X,Q)))}finally{if(W)await Q.close()}}}function E(G){if(G===\"\")return 0;let J=G.split(\".\"),Q=0,W=[1000000000000,1e8,1e4];for(let X=0;XV(Q));let J={};for(let Q of Object.keys(G))J[Q]=V(G[Q]);return J}function b(G,J){let Q=G.endsWith(\"/\")?G.slice(0,-1):G,W=J.startsWith(\"/\")?J:`/${J}`;return`${Q}${W}`}class q extends Error{constructor(G){super(`Key \"${G}\" not found in storage`);this.name=\"KeyNotFoundError\"}}class P{name;version;store;id;numericVersion;upgrades;storage;_openPromise;constructor({name:G=\"\",version:J=\"\",store:Q=\"\"}){this.name=G,this.version=J,this.store=Q,this.upgrades={},this.numericVersion=E(J),this.id=this.computeId()}computeId(){if(this.name!==\"\"&&this.version!==\"\"&&this.store!==\"\")return`${this.name}::${this.store}::${this.version}_`;else if(this.name!==\"\"&&this.version!==\"\")return`${this.name}::${this.version}_`;else if(this.name!==\"\")return`${this.name}::_`;else return\"\"}configuration(G){if(G.name!==void 0)this.name=G.name;if(G.version!==void 0)this.version=G.version,this.numericVersion=E(G.version);if(G.store!==void 0)this.store=G.store;this.id=this.computeId()}async open(){if(this.storage instanceof Storage)return this;if(this._openPromise)return this._openPromise;this._openPromise=(async()=>{let G=[];if(this.version!==\"\"){let J=\"\";if(this.name!==\"\"&&this.version!==\"\"&&this.store!==\"\")J=`${this.name}::${this.store}::`;else if(this.name!==\"\"&&this.version!==\"\")J=`${this.name}::`;let Q=Object.keys(window.localStorage).filter((W)=>{return W.indexOf(J)===0}).map((W)=>{return W.replace(J,\"\").split(\"_\")[0]}).filter((W)=>{return W.indexOf(\"::\")===-1}).sort();if(Q.length>0){let W=Q[0],X=E(W);if(X{let[A]=_.split(\"::\").map(Number),[z]=U.split(\"::\").map(Number);return A-z}),Z=Y.findIndex((_)=>{let[U]=_.split(\"::\");return parseInt(U)===X});if(Z>-1)G=Y.slice(Z).filter((_)=>{let[U,A]=_.split(\"::\");return parseInt(U){return _.indexOf($)===0}).map((_)=>{return _.replace($,\"\")});for(let _ of B){let U=window.localStorage.getItem(`${$}${_}`);if(U!==null)window.localStorage.setItem(this.id+_,U);window.localStorage.removeItem(`${$}${_}`)}}}}this.storage=window.localStorage;for(let J of G)try{await this.upgrades[J].call(this,this)}catch(Q){console.error(Q)}return this})();try{return await this._openPromise}finally{this._openPromise=void 0}}async set(G,J){return await this.open(),this.storage.setItem(this.id+G,JSON.stringify(J)),{key:G,value:J}}async update(G,J){try{let Q=await this.get(G);if(typeof Q===\"object\"&&Q!==null){if(typeof J===\"object\"&&J!==null)J={...Q,...J}}return this.storage.setItem(this.id+G,JSON.stringify(J)),{key:G,value:J}}catch{return this.set(G,J)}}async get(G){await this.open();let J=this.storage.getItem(this.id+G);if(J===null)throw new q(G);try{return JSON.parse(J)}catch{return J}}async getAll(){let G=await this.keys(),J={};for(let Q of G)try{J[Q]=await this.get(Q)}catch{}return J}async contains(G){if((await this.keys()).includes(G))return;else throw new q(G)}async upgrade(G,J,Q){let W=`${E(G)}::${E(J)}`;return this.upgrades[W]=Q,Promise.resolve()}async rename(G){if(this.name===G)throw Error(\"Cannot rename: new name is identical to current name\");let J=await this.keys(),Q=this.id;this.name=G,this.id=this.computeId();for(let W of J){let X=this.storage.getItem(`${Q}${W}`);if(X!==null)this.storage.setItem(this.id+W,X),this.storage.removeItem(`${Q}${W}`)}}async key(G,J=!1){let Q=await this.keys(J);if(G<0||G>=Q.length)throw Error(`Index ${G} out of bounds. Space has ${Q.length} keys.`);return Q[G]}async keys(G=!1){return await this.open(),Object.keys(this.storage).filter((J)=>{return J.indexOf(this.id)===0}).map((J)=>{if(G===!0)return J;else return J.replace(this.id,\"\")})}async remove(G){let J=await this.get(G);return this.storage.removeItem(this.id+G),J}async clear(){let G=await this.keys();for(let J of G)this.storage.removeItem(this.id+J)}}class D extends P{constructor({name:G=\"\",version:J=\"\",store:Q=\"\"}){super({name:G,version:J,store:Q})}async open(){if(this.storage instanceof Storage)return this;return this.storage=window.sessionStorage,this}async upgrade(G,J,Q){return console.warn(\"SessionStorage.upgrade() is a no-op. Session data is temporary and does not support migrations.\"),Promise.resolve()}}class N extends Error{constructor(G){super(`Key \"${G}\" not found in IndexedDB`);this.name=\"KeyNotFoundError\"}}class O{name;version;store;props;index;keyPath;numericVersion;upgrades;storage;constructor({name:G=\"\",version:J=\"\",store:Q=\"\",props:W={},index:X={}}){this.name=G,this.version=J,this.store=Q,this.props=W||{},this.index=X,this.keyPath=W?.keyPath||\"id\",this.upgrades={},this.numericVersion=E(J)}configuration(G){if(G.name!==void 0)this.name=G.name;if(G.version!==void 0)this.version=G.version,this.numericVersion=E(G.version);if(G.store!==void 0)this.store=G.store}async open(){if(this.name===\"\")throw Error(\"IndexedDB requires a name. No name has been defined for this space.\");if(this.store===\"\")throw Error(\"IndexedDB requires a store name. No store has been defined for this space.\");if(this.numericVersion<1)throw Error(\"IndexedDB requires a version >= 1. No valid version has been defined for this space.\");if(this.storage instanceof IDBDatabase)return this;else if(this.storage instanceof Promise)return await this.storage;else{let G=(async()=>{let J,Q=[],W=await new Promise((X,Y)=>{let Z=window.indexedDB.open(this.name,this.numericVersion);Z.onerror=($)=>{Y(Error(`Failed to open IndexedDB \"${this.name}\": ${$.target.error?.message}`))},Z.onsuccess=($)=>{X($.target.result)},Z.onupgradeneeded=($)=>{J=$;let B=$.target.result;if($.oldVersion<1){let U=B.createObjectStore(this.store,this.props);for(let A of Object.keys(this.index)){let z=this.index[A];U.createIndex(z.name,z.field,z.props)}}else{let U=Object.keys(this.upgrades).sort((z,H)=>{let[L]=z.split(\"::\").map(Number),[R]=H.split(\"::\").map(Number);return L-R}),A=U.findIndex((z)=>{let[H]=z.split(\"::\");return parseInt(H)===$.oldVersion});if(A>-1)Q=U.slice(A).filter((z)=>{let[H,L]=z.split(\"::\");return parseInt(H){})}});this.storage=W;for(let X of Q)try{await this.upgrades[X].call(this,this,J)}catch(Y){console.error(Y)}return this})();return this.storage=G,await G}}async set(G=null,J){return await this.open(),new Promise((Q,W)=>{let X=this.storage.transaction(this.store,\"readwrite\").objectStore(this.store),Y;if(G!==null){let Z={};Z[this.keyPath]=G,Y=X.put({...Z,...J})}else Y=X.add(J);Y.addEventListener(\"success\",(Z)=>{Q({key:String(Z.target.result),value:J})}),Y.addEventListener(\"error\",(Z)=>{W(Error(`Failed to set key \"${G}\": ${Z.target.error?.message}`))})})}async update(G,J){try{let Q=await this.get(G);if(typeof Q>\"u\")return this.set(G,J);return new Promise((W,X)=>{let Z=this.storage.transaction(this.store,\"readwrite\").objectStore(this.store).put({...Q,...J});Z.addEventListener(\"success\",($)=>{W({key:String($.target.result),value:J})}),Z.addEventListener(\"error\",($)=>{X(Error(`Failed to update key \"${G}\": ${$.target.error?.message}`))})})}catch{return this.set(G,J)}}async get(G){return await this.open(),new Promise((J,Q)=>{let X=this.storage.transaction(this.store,\"readonly\").objectStore(this.store).get(G);X.addEventListener(\"success\",(Y)=>{let Z=Y.target.result;if(typeof Z<\"u\"&&Z!==null)J(Z);else Q(new N(G))}),X.addEventListener(\"error\",(Y)=>{Q(Error(`Failed to get key \"${G}\": ${Y.target.error?.message}`))})})}async getAll(){return await this.open(),new Promise((G,J)=>{let W=this.storage.transaction(this.store,\"readonly\").objectStore(this.store).getAll();W.addEventListener(\"success\",(X)=>{let Y={};X.target.result.forEach(($)=>{let B=$[this.keyPath],_={...$};delete _[this.keyPath],Y[B]=_}),G(Y)}),W.addEventListener(\"error\",(X)=>{J(Error(`Failed to get all items: ${X.target.error?.message}`))})})}async contains(G){await this.get(G)}async upgrade(G,J,Q){let W=`${E(G)}::${E(J)}`;return this.upgrades[W]=Q,Promise.resolve()}rename(){return Promise.reject(Error(\"IndexedDB does not support renaming databases. Create a new database and migrate data manually.\"))}key(){return Promise.reject(Error(\"IndexedDB does not support getting keys by index. Use keys() to get all keys.\"))}async keys(){return await this.open(),new Promise((G,J)=>{let W=this.storage.transaction(this.store,\"readonly\").objectStore(this.store).getAllKeys();W.addEventListener(\"success\",(X)=>{G(X.target.result.map(String))},!1),W.addEventListener(\"error\",(X)=>{J(Error(`Failed to get keys: ${X.target.error?.message}`))},!1)})}async remove(G){let J=await this.get(G);return new Promise((Q,W)=>{let Y=this.storage.transaction(this.store,\"readwrite\").objectStore(this.store).delete(G);Y.addEventListener(\"success\",()=>{Q(J)},!1),Y.addEventListener(\"error\",(Z)=>{W(Error(`Failed to delete key \"${G}\": ${Z.target.error?.message}`))},!1)})}async clear(){return await this.open(),new Promise((G,J)=>{let W=this.storage.transaction(this.store,\"readwrite\").objectStore(this.store).clear();W.addEventListener(\"success\",()=>{G()},!1),W.addEventListener(\"error\",(X)=>{J(Error(`Failed to clear store: ${X.target.error?.message}`))},!1)})}}class x extends Error{constructor(G){super(`Key \"${G}\" not found in remote storage`);this.name=\"KeyNotFoundError\"}}class C{name;version;store;baseEndpoint;endpoint;props;storage;constructor({name:G=\"\",version:J=\"\",store:Q=\"\",endpoint:W=\"\",props:X={}}){this.name=G,this.version=J,this.store=Q,this.baseEndpoint=W,this.endpoint=this.computeEndpoint(),this.props=X}computeEndpoint(){if(this.store)return b(this.baseEndpoint,`${this.store}/`);return this.baseEndpoint.endsWith(\"/\")?this.baseEndpoint:`${this.baseEndpoint}/`}configuration(G){if(G.name!==void 0)this.name=G.name;if(G.version!==void 0)this.version=G.version;if(G.store!==void 0)this.store=G.store;if(G.endpoint!==void 0)this.baseEndpoint=G.endpoint;this.endpoint=this.computeEndpoint()}async open(){if(typeof this.storage>\"u\")this.storage=K;return this}async set(G,J){await this.open();let W=await(await this.storage.post(this.endpoint+G,J,this.props)).json();return{key:G,value:W}}async update(G,J){await this.open();try{let W={...await this.get(G),...J},Y=await(await this.storage.put(this.endpoint+G,W,this.props)).json();return{key:G,value:Y}}catch{return this.set(G,J)}}async get(G){return await this.open(),this.storage.json(this.endpoint+G,{},this.props)}async getAll(){return await this.open(),this.storage.json(this.endpoint,{},this.props)}async contains(G){if((await this.keys()).includes(G))return;else throw new x(G)}upgrade(){return Promise.reject(Error(\"RemoteStorage cannot be upgraded from the client. Upgrades must be performed server-side.\"))}rename(){return Promise.reject(Error(\"RemoteStorage cannot be renamed from the client. Renaming must be performed server-side.\"))}key(){return Promise.reject(Error(\"RemoteStorage does not support getting keys by index. Use keys() to get all keys.\"))}async keys(){return await this.open(),this.storage.json(this.endpoint,{keys:!0},this.props)}async remove(G){return await this.open(),(await this.storage.delete(this.endpoint+G,{},this.props)).json()}async clear(){await this.open(),await this.storage.delete(this.endpoint,{},this.props)}}var k={LocalStorage:P,SessionStorage:D,IndexedDB:O,RemoteStorage:C};class p{_configuration;adapter;callbacks;transformations;constructor(G=k.LocalStorage,J={}){this._configuration={name:\"\",version:\"\",store:\"\",...J},this.adapter=new G(this._configuration),this.callbacks={create:[],update:[],delete:[]},this.transformations={}}configuration(G=null){if(G!==null){if(this._configuration={...this._configuration,...G},this.adapter.configuration)this.adapter.configuration(G);return}else return this._configuration}async open(){return await this.adapter.open(),this}applySetTransformations(G,J){let Q=V(J);for(let W of Object.values(this.transformations))if(typeof W.set===\"function\")Q=W.set(G,Q);return Q}applyGetTransformations(G,J){let Q=J;for(let W of Object.values(this.transformations))if(typeof W.get===\"function\")Q=W.get(G,Q);return Q}async set(G,J){let Q=this.applySetTransformations(G,J),W=await this.adapter.set(G,Q);for(let X of this.callbacks.create)X.call(null,W.key,W.value);return W}async update(G,J){let Q=this.applySetTransformations(G,J),W=await this.adapter.update(G,Q);for(let X of this.callbacks.update)X.call(null,W.key,W.value);return W}async get(G){let J=await this.adapter.get(G);return this.applyGetTransformations(G,J)}async getAll(){let G=await this.adapter.getAll(),J={};for(let Q of Object.keys(G))J[Q]=this.applyGetTransformations(Q,G[Q]);return J}async each(G){let J=await this.getAll(),Q=[];for(let[W,X]of Object.entries(J))Q.push(G.call(this,W,X));return Promise.all(Q)}contains(G){return this.adapter.contains(G)}async upgrade(G,J,Q){return await this.adapter.upgrade(G,J,Q),this}rename(G){return this.adapter.rename(G)}onCreate(G){this.callbacks.create.push(G)}onUpdate(G){this.callbacks.update.push(G)}onDelete(G){this.callbacks.delete.push(G)}addTransformation({id:G,get:J,set:Q}){this.transformations[G]={id:G,get:J,set:Q}}removeTransformation(G){delete this.transformations[G]}key(G,J=!1){return this.adapter.key(G,J)}keys(G=!1){return this.adapter.keys(G)}async remove(G){let J=await this.adapter.remove(G);for(let Q of this.callbacks.delete)Q.call(null,G,J)}clear(){return this.adapter.clear()}}class d{static capitalize(G,J={}){let{preserveCase:Q=!1}=J;return G.replace(/\\w\\S*/g,(W)=>{let X=W.charAt(0).toUpperCase(),Y=Q?W.substring(1):W.substring(1).toLowerCase();return X+Y})}static selection(){return window.getSelection()?.toString()||\"\"}static suffix(G,J){let Q=J.indexOf(G);if(Q===-1)return\"\";return J.slice(Q+G.length)}static prefix(G,J){let Q=J.indexOf(G);if(Q===-1)return\"\";return J.slice(0,Q)}static friendly(G){return G.toString().normalize(\"NFD\").replace(/[\\u0300-\\u036f]/g,\"\").toLowerCase().trim().replace(/\\s+/g,\"-\").replace(/[^\\w-]+/g,\"\").replace(/--+/g,\"-\")}static truncate(G,J,Q=\"...\"){if(G.length<=J)return G;if(J<=Q.length)return Q.slice(0,J);return G.slice(0,J-Q.length).trimEnd()+Q}static isBlank(G){return G===null||G===void 0||G.trim()===\"\"}}class v{static async callAsync(G,J,...Q){try{return await G.apply(J,Q)}catch(W){return Promise.reject(W)}}static uuid(){if(typeof crypto<\"u\"&&\"randomUUID\"in crypto)return crypto.randomUUID();if(typeof crypto<\"u\"&&\"getRandomValues\"in crypto)return\"10000000-1000-4000-8000-100000000000\".replace(/[018]/g,(J)=>{let Q=parseInt(J,10),W=crypto.getRandomValues(new Uint8Array(1))[0],X=15>>Math.floor(Q/4);return(Q^W&X).toString(16)});let G=()=>Math.floor((1+Math.random())*65536).toString(16).substring(1);return`${G()}${G()}-${G()}-${G()}-${G()}-${G()}${G()}${G()}`}static debounce(G,J){let Q=null;return(...W)=>{if(Q!==null)clearTimeout(Q);Q=setTimeout(()=>{G(...W),Q=null},J)}}static throttle(G,J){let Q=!1;return(...W)=>{if(!Q)G(...W),Q=!0,setTimeout(()=>{Q=!1},J)}}}export{v as Util,d as Text,k as SpaceAdapter,p as Space,D as SessionStorage,h as RequestTimeoutError,M as RequestError,K as Request,x as RemoteStorageKeyNotFoundError,C as RemoteStorage,S as Preload,F as Platform,q as LocalStorageKeyNotFoundError,P as LocalStorage,N as IndexedDBKeyNotFoundError,O as IndexedDB,T as Form,j as FileSystem,g as DebugLevel,y as Debug,I as DOM,u as $_ready,i as $_create,m as $_};\n\n//# debugId=5D27DABE5782E96064756E2164756E21\n//# sourceMappingURL=artemis.js.map\n", + "export const generatedAttribute = \"generated\", mouseDownEvent = \"pointerdown\", mouseUpEvent = \"pointerup\", mouseLeaveEvent = \"pointerleave\", mouseOutEvent = \"pointerout\", mouseMoveEvent = \"pointermove\", touchStartEvent = \"touchstart\", touchEndEvent = \"touchend\", touchMoveEvent = \"touchmove\", touchCancelEvent = \"touchcancel\", resizeEvent = \"resize\", visibilityChangeEvent = \"visibilitychange\", errorPrefix = \"tsParticles - Error\", percentDenominator = 100, half = 0.5, millisecondsToSeconds = 1000, originPoint = {\n x: 0,\n y: 0,\n z: 0,\n}, defaultTransform = {\n a: 1,\n b: 0,\n c: 0,\n d: 1,\n}, randomColorValue = \"random\", midColorValue = \"mid\", double = 2, doublePI = Math.PI * double, defaultFps = 60, defaultAlpha = 1, generatedTrue = \"true\", generatedFalse = \"false\", canvasTag = \"canvas\", defaultRetryCount = 0, squareExp = 2, qTreeCapacity = 4, defaultRemoveQuantity = 1, defaultRatio = 1, defaultReduceFactor = 1, subdivideCount = 4, inverseFactorNumerator = 1.0, rgbMax = 255, hMax = 360, sMax = 100, lMax = 100, hMin = 0, sMin = 0, hPhase = 60, empty = 0, quarter = 0.25, threeQuarter = half + quarter, minVelocity = 0, defaultTransformValue = 1, minimumSize = 0, minimumLength = 0, zIndexFactorOffset = 1, defaultOpacity = 1, clickRadius = 1, touchEndLengthOffset = 1, minCoordinate = 0, removeDeleteCount = 1, removeMinIndex = 0, defaultFpsLimit = 120, minFpsLimit = 0, canvasFirstIndex = 0, loadRandomFactor = 10000, loadMinIndex = 0, one = 1, none = 0, decayOffset = 1, tryCountIncrement = 1, minRetries = 0, rollFactor = 1, minZ = 0, defaultRadius = 0, posOffset = -quarter, sizeFactor = 1.5, minLimit = 0, countOffset = 1, minCount = 0, minIndex = 0, manualCount = 0, lengthOffset = 1, defaultDensityFactor = 1, deleteCount = 1, touchDelay = 500, manualDefaultPosition = 50, defaultAngle = 0, identity = 1, minStrokeWidth = 0, lFactor = 1, lMin = 0, rgbFactor = 255, triple = 3, sextuple = 6, sNormalizedOffset = 1, phaseNumerator = 1, defaultRgbMin = 0, defaultVelocity = 0, defaultLoops = 0, defaultTime = 0;\n", + "export var MoveDirection;\n(function (MoveDirection) {\n MoveDirection[\"bottom\"] = \"bottom\";\n MoveDirection[\"bottomLeft\"] = \"bottom-left\";\n MoveDirection[\"bottomRight\"] = \"bottom-right\";\n MoveDirection[\"left\"] = \"left\";\n MoveDirection[\"none\"] = \"none\";\n MoveDirection[\"right\"] = \"right\";\n MoveDirection[\"top\"] = \"top\";\n MoveDirection[\"topLeft\"] = \"top-left\";\n MoveDirection[\"topRight\"] = \"top-right\";\n MoveDirection[\"outside\"] = \"outside\";\n MoveDirection[\"inside\"] = \"inside\";\n})(MoveDirection || (MoveDirection = {}));\n", + "export function isBoolean(arg) {\n return typeof arg === \"boolean\";\n}\nexport function isString(arg) {\n return typeof arg === \"string\";\n}\nexport function isNumber(arg) {\n return typeof arg === \"number\";\n}\nexport function isFunction(arg) {\n return typeof arg === \"function\";\n}\nexport function isObject(arg) {\n return typeof arg === \"object\" && arg !== null;\n}\nexport function isArray(arg) {\n return Array.isArray(arg);\n}\nexport function isNull(arg) {\n return arg === null || arg === undefined;\n}\n", + "import { errorPrefix, inverseFactorNumerator, none, originPoint, squareExp } from \"./Constants.js\";\nimport { isNumber } from \"../../Utils/TypeUtils.js\";\nexport class Vector3d {\n constructor(xOrCoords, y, z) {\n this._updateFromAngle = (angle, length) => {\n this.x = Math.cos(angle) * length;\n this.y = Math.sin(angle) * length;\n };\n if (!isNumber(xOrCoords) && xOrCoords) {\n this.x = xOrCoords.x;\n this.y = xOrCoords.y;\n const coords3d = xOrCoords;\n this.z = coords3d.z ? coords3d.z : originPoint.z;\n }\n else if (xOrCoords !== undefined && y !== undefined) {\n this.x = xOrCoords;\n this.y = y;\n this.z = z ?? originPoint.z;\n }\n else {\n throw new Error(`${errorPrefix} Vector3d not initialized correctly`);\n }\n }\n static get origin() {\n return Vector3d.create(originPoint.x, originPoint.y, originPoint.z);\n }\n get angle() {\n return Math.atan2(this.y, this.x);\n }\n set angle(angle) {\n this._updateFromAngle(angle, this.length);\n }\n get length() {\n return Math.sqrt(this.getLengthSq());\n }\n set length(length) {\n this._updateFromAngle(this.angle, length);\n }\n static clone(source) {\n return Vector3d.create(source.x, source.y, source.z);\n }\n static create(x, y, z) {\n return new Vector3d(x, y, z);\n }\n add(v) {\n return Vector3d.create(this.x + v.x, this.y + v.y, this.z + v.z);\n }\n addTo(v) {\n this.x += v.x;\n this.y += v.y;\n this.z += v.z;\n }\n copy() {\n return Vector3d.clone(this);\n }\n distanceTo(v) {\n return this.sub(v).length;\n }\n distanceToSq(v) {\n return this.sub(v).getLengthSq();\n }\n div(n) {\n return Vector3d.create(this.x / n, this.y / n, this.z / n);\n }\n divTo(n) {\n this.x /= n;\n this.y /= n;\n this.z /= n;\n }\n getLengthSq() {\n return this.x ** squareExp + this.y ** squareExp;\n }\n mult(n) {\n return Vector3d.create(this.x * n, this.y * n, this.z * n);\n }\n multTo(n) {\n this.x *= n;\n this.y *= n;\n this.z *= n;\n }\n normalize() {\n const length = this.length;\n if (length != none) {\n this.multTo(inverseFactorNumerator / length);\n }\n }\n rotate(angle) {\n return Vector3d.create(this.x * Math.cos(angle) - this.y * Math.sin(angle), this.x * Math.sin(angle) + this.y * Math.cos(angle), originPoint.z);\n }\n setTo(c) {\n this.x = c.x;\n this.y = c.y;\n const v3d = c;\n this.z = v3d.z ? v3d.z : originPoint.z;\n }\n sub(v) {\n return Vector3d.create(this.x - v.x, this.y - v.y, this.z - v.z);\n }\n subFrom(v) {\n this.x -= v.x;\n this.y -= v.y;\n this.z -= v.z;\n }\n}\nexport class Vector extends Vector3d {\n constructor(xOrCoords, y) {\n super(xOrCoords, y, originPoint.z);\n }\n static get origin() {\n return Vector.create(originPoint.x, originPoint.y);\n }\n static clone(source) {\n return Vector.create(source.x, source.y);\n }\n static create(x, y) {\n return new Vector(x, y);\n }\n}\n", + "import { MoveDirection } from \"../Enums/Directions/MoveDirection.js\";\nimport { double, doublePI, empty, half, percentDenominator, quarter, threeQuarter } from \"../Core/Utils/Constants.js\";\nimport { Vector } from \"../Core/Utils/Vectors.js\";\nimport { isNumber } from \"./TypeUtils.js\";\nlet _random = Math.random;\nconst _animationLoop = {\n nextFrame: (cb) => requestAnimationFrame(cb),\n cancel: (idx) => cancelAnimationFrame(idx),\n};\nexport function setRandom(rnd = Math.random) {\n _random = rnd;\n}\nexport function getRandom() {\n const min = 0, max = 1;\n return clamp(_random(), min, max - Number.EPSILON);\n}\nexport function setAnimationFunctions(nextFrame, cancel) {\n _animationLoop.nextFrame = (callback) => nextFrame(callback);\n _animationLoop.cancel = (handle) => cancel(handle);\n}\nexport function animate(fn) {\n return _animationLoop.nextFrame(fn);\n}\nexport function cancelAnimation(handle) {\n _animationLoop.cancel(handle);\n}\nexport function clamp(num, min, max) {\n return Math.min(Math.max(num, min), max);\n}\nexport function mix(comp1, comp2, weight1, weight2) {\n return Math.floor((comp1 * weight1 + comp2 * weight2) / (weight1 + weight2));\n}\nexport function randomInRange(r) {\n const max = getRangeMax(r), minOffset = 0;\n let min = getRangeMin(r);\n if (max === min) {\n min = minOffset;\n }\n return getRandom() * (max - min) + min;\n}\nexport function getRangeValue(value) {\n return isNumber(value) ? value : randomInRange(value);\n}\nexport function getRangeMin(value) {\n return isNumber(value) ? value : value.min;\n}\nexport function getRangeMax(value) {\n return isNumber(value) ? value : value.max;\n}\nexport function setRangeValue(source, value) {\n if (source === value || (value === undefined && isNumber(source))) {\n return source;\n }\n const min = getRangeMin(source), max = getRangeMax(source);\n return value !== undefined\n ? {\n min: Math.min(min, value),\n max: Math.max(max, value),\n }\n : setRangeValue(min, max);\n}\nexport function getDistances(pointA, pointB) {\n const dx = pointA.x - pointB.x, dy = pointA.y - pointB.y, squareExp = 2;\n return { dx: dx, dy: dy, distance: Math.sqrt(dx ** squareExp + dy ** squareExp) };\n}\nexport function getDistance(pointA, pointB) {\n return getDistances(pointA, pointB).distance;\n}\nexport function degToRad(degrees) {\n const PIDeg = 180;\n return (degrees * Math.PI) / PIDeg;\n}\nexport function getParticleDirectionAngle(direction, position, center) {\n if (isNumber(direction)) {\n return degToRad(direction);\n }\n switch (direction) {\n case MoveDirection.top:\n return -Math.PI * half;\n case MoveDirection.topRight:\n return -Math.PI * quarter;\n case MoveDirection.right:\n return empty;\n case MoveDirection.bottomRight:\n return Math.PI * quarter;\n case MoveDirection.bottom:\n return Math.PI * half;\n case MoveDirection.bottomLeft:\n return Math.PI * threeQuarter;\n case MoveDirection.left:\n return Math.PI;\n case MoveDirection.topLeft:\n return -Math.PI * threeQuarter;\n case MoveDirection.inside:\n return Math.atan2(center.y - position.y, center.x - position.x);\n case MoveDirection.outside:\n return Math.atan2(position.y - center.y, position.x - center.x);\n default:\n return getRandom() * doublePI;\n }\n}\nexport function getParticleBaseVelocity(direction) {\n const baseVelocity = Vector.origin;\n baseVelocity.length = 1;\n baseVelocity.angle = direction;\n return baseVelocity;\n}\nexport function collisionVelocity(v1, v2, m1, m2) {\n return Vector.create((v1.x * (m1 - m2)) / (m1 + m2) + (v2.x * double * m2) / (m1 + m2), v1.y);\n}\nexport function calcPositionFromSize(data) {\n return data.position?.x !== undefined && data.position.y !== undefined\n ? {\n x: (data.position.x * data.size.width) / percentDenominator,\n y: (data.position.y * data.size.height) / percentDenominator,\n }\n : undefined;\n}\nexport function calcPositionOrRandomFromSize(data) {\n return {\n x: ((data.position?.x ?? getRandom() * percentDenominator) * data.size.width) / percentDenominator,\n y: ((data.position?.y ?? getRandom() * percentDenominator) * data.size.height) / percentDenominator,\n };\n}\nexport function calcPositionOrRandomFromSizeRanged(data) {\n const position = {\n x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,\n y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined,\n };\n return calcPositionOrRandomFromSize({ size: data.size, position });\n}\nexport function calcExactPositionOrRandomFromSize(data) {\n return {\n x: data.position?.x ?? getRandom() * data.size.width,\n y: data.position?.y ?? getRandom() * data.size.height,\n };\n}\nexport function calcExactPositionOrRandomFromSizeRanged(data) {\n const position = {\n x: data.position?.x !== undefined ? getRangeValue(data.position.x) : undefined,\n y: data.position?.y !== undefined ? getRangeValue(data.position.y) : undefined,\n };\n return calcExactPositionOrRandomFromSize({ size: data.size, position });\n}\nexport function parseAlpha(input) {\n const defaultAlpha = 1;\n if (!input) {\n return defaultAlpha;\n }\n return input.endsWith(\"%\") ? parseFloat(input) / percentDenominator : parseFloat(input);\n}\n", + "export var AnimationMode;\n(function (AnimationMode) {\n AnimationMode[\"auto\"] = \"auto\";\n AnimationMode[\"increase\"] = \"increase\";\n AnimationMode[\"decrease\"] = \"decrease\";\n AnimationMode[\"random\"] = \"random\";\n})(AnimationMode || (AnimationMode = {}));\n", + "export var AnimationStatus;\n(function (AnimationStatus) {\n AnimationStatus[\"increasing\"] = \"increasing\";\n AnimationStatus[\"decreasing\"] = \"decreasing\";\n})(AnimationStatus || (AnimationStatus = {}));\n", + "export var DestroyType;\n(function (DestroyType) {\n DestroyType[\"none\"] = \"none\";\n DestroyType[\"max\"] = \"max\";\n DestroyType[\"min\"] = \"min\";\n})(DestroyType || (DestroyType = {}));\n", + "export var OutModeDirection;\n(function (OutModeDirection) {\n OutModeDirection[\"bottom\"] = \"bottom\";\n OutModeDirection[\"left\"] = \"left\";\n OutModeDirection[\"right\"] = \"right\";\n OutModeDirection[\"top\"] = \"top\";\n})(OutModeDirection || (OutModeDirection = {}));\n", + "export var PixelMode;\n(function (PixelMode) {\n PixelMode[\"precise\"] = \"precise\";\n PixelMode[\"percent\"] = \"percent\";\n})(PixelMode || (PixelMode = {}));\n", + "export var StartValueType;\n(function (StartValueType) {\n StartValueType[\"max\"] = \"max\";\n StartValueType[\"min\"] = \"min\";\n StartValueType[\"random\"] = \"random\";\n})(StartValueType || (StartValueType = {}));\n", + "import { clamp, collisionVelocity, getDistances, getRandom, getRangeMax, getRangeMin, getRangeValue, randomInRange, } from \"./NumberUtils.js\";\nimport { half, millisecondsToSeconds, minVelocity, percentDenominator } from \"../Core/Utils/Constants.js\";\nimport { isArray, isNull, isObject } from \"./TypeUtils.js\";\nimport { AnimationMode } from \"../Enums/Modes/AnimationMode.js\";\nimport { AnimationStatus } from \"../Enums/AnimationStatus.js\";\nimport { DestroyType } from \"../Enums/Types/DestroyType.js\";\nimport { OutModeDirection } from \"../Enums/Directions/OutModeDirection.js\";\nimport { PixelMode } from \"../Enums/Modes/PixelMode.js\";\nimport { StartValueType } from \"../Enums/Types/StartValueType.js\";\nimport { Vector } from \"../Core/Utils/Vectors.js\";\nconst _logger = {\n debug: console.debug,\n error: console.error,\n info: console.info,\n log: console.log,\n verbose: console.log,\n warning: console.warn,\n};\nexport function setLogger(logger) {\n _logger.debug = logger.debug || _logger.debug;\n _logger.error = logger.error || _logger.error;\n _logger.info = logger.info || _logger.info;\n _logger.log = logger.log || _logger.log;\n _logger.verbose = logger.verbose || _logger.verbose;\n _logger.warning = logger.warning || _logger.warning;\n}\nexport function getLogger() {\n return _logger;\n}\nfunction memoize(fn) {\n const cache = new Map();\n return (...args) => {\n const key = JSON.stringify(args);\n if (cache.has(key)) {\n return cache.get(key);\n }\n const result = fn(...args);\n cache.set(key, result);\n return result;\n };\n}\nfunction rectSideBounce(data) {\n const res = { bounced: false }, { pSide, pOtherSide, rectSide, rectOtherSide, velocity, factor } = data;\n if (pOtherSide.min < rectOtherSide.min ||\n pOtherSide.min > rectOtherSide.max ||\n pOtherSide.max < rectOtherSide.min ||\n pOtherSide.max > rectOtherSide.max) {\n return res;\n }\n if ((pSide.max >= rectSide.min && pSide.max <= (rectSide.max + rectSide.min) * half && velocity > minVelocity) ||\n (pSide.min <= rectSide.max && pSide.min > (rectSide.max + rectSide.min) * half && velocity < minVelocity)) {\n res.velocity = velocity * -factor;\n res.bounced = true;\n }\n return res;\n}\nfunction checkSelector(element, selectors) {\n const res = executeOnSingleOrMultiple(selectors, selector => {\n return element.matches(selector);\n });\n return isArray(res) ? res.some(t => t) : res;\n}\nexport function isSsr() {\n return typeof window === \"undefined\" || !window || typeof window.document === \"undefined\" || !window.document;\n}\nexport function hasMatchMedia() {\n return !isSsr() && typeof matchMedia !== \"undefined\";\n}\nexport function safeMatchMedia(query) {\n if (!hasMatchMedia()) {\n return;\n }\n return matchMedia(query);\n}\nexport function safeIntersectionObserver(callback) {\n if (isSsr() || typeof IntersectionObserver === \"undefined\") {\n return;\n }\n return new IntersectionObserver(callback);\n}\nexport function safeMutationObserver(callback) {\n if (isSsr() || typeof MutationObserver === \"undefined\") {\n return;\n }\n return new MutationObserver(callback);\n}\nexport function isInArray(value, array) {\n const invalidIndex = -1;\n return value === array || (isArray(array) && array.indexOf(value) > invalidIndex);\n}\nexport async function loadFont(font, weight) {\n try {\n await document.fonts.load(`${weight ?? \"400\"} 36px '${font ?? \"Verdana\"}'`);\n }\n catch {\n }\n}\nexport function arrayRandomIndex(array) {\n return Math.floor(getRandom() * array.length);\n}\nexport function itemFromArray(array, index, useIndex = true) {\n return array[index !== undefined && useIndex ? index % array.length : arrayRandomIndex(array)];\n}\nexport function isPointInside(point, size, offset, radius, direction) {\n const minRadius = 0;\n return areBoundsInside(calculateBounds(point, radius ?? minRadius), size, offset, direction);\n}\nexport function areBoundsInside(bounds, size, offset, direction) {\n let inside = true;\n if (!direction || direction === OutModeDirection.bottom) {\n inside = bounds.top < size.height + offset.x;\n }\n if (inside && (!direction || direction === OutModeDirection.left)) {\n inside = bounds.right > offset.x;\n }\n if (inside && (!direction || direction === OutModeDirection.right)) {\n inside = bounds.left < size.width + offset.y;\n }\n if (inside && (!direction || direction === OutModeDirection.top)) {\n inside = bounds.bottom > offset.y;\n }\n return inside;\n}\nexport function calculateBounds(point, radius) {\n return {\n bottom: point.y + radius,\n left: point.x - radius,\n right: point.x + radius,\n top: point.y - radius,\n };\n}\nexport function deepExtend(destination, ...sources) {\n for (const source of sources) {\n if (source === undefined || source === null) {\n continue;\n }\n if (!isObject(source)) {\n destination = source;\n continue;\n }\n const sourceIsArray = Array.isArray(source);\n if (sourceIsArray && (isObject(destination) || !destination || !Array.isArray(destination))) {\n destination = [];\n }\n else if (!sourceIsArray && (isObject(destination) || !destination || Array.isArray(destination))) {\n destination = {};\n }\n for (const key in source) {\n if (key === \"__proto__\") {\n continue;\n }\n const sourceDict = source, value = sourceDict[key], destDict = destination;\n destDict[key] =\n isObject(value) && Array.isArray(value)\n ? value.map(v => deepExtend(destDict[key], v))\n : deepExtend(destDict[key], value);\n }\n }\n return destination;\n}\nexport function isDivModeEnabled(mode, divs) {\n return !!findItemFromSingleOrMultiple(divs, t => t.enable && isInArray(mode, t.mode));\n}\nexport function divModeExecute(mode, divs, callback) {\n executeOnSingleOrMultiple(divs, div => {\n const divMode = div.mode, divEnabled = div.enable;\n if (divEnabled && isInArray(mode, divMode)) {\n singleDivModeExecute(div, callback);\n }\n });\n}\nexport function singleDivModeExecute(div, callback) {\n const selectors = div.selectors;\n executeOnSingleOrMultiple(selectors, selector => {\n callback(selector, div);\n });\n}\nexport function divMode(divs, element) {\n if (!element || !divs) {\n return;\n }\n return findItemFromSingleOrMultiple(divs, div => {\n return checkSelector(element, div.selectors);\n });\n}\nexport function circleBounceDataFromParticle(p) {\n return {\n position: p.getPosition(),\n radius: p.getRadius(),\n mass: p.getMass(),\n velocity: p.velocity,\n factor: Vector.create(getRangeValue(p.options.bounce.horizontal.value), getRangeValue(p.options.bounce.vertical.value)),\n };\n}\nexport function circleBounce(p1, p2) {\n const { x: xVelocityDiff, y: yVelocityDiff } = p1.velocity.sub(p2.velocity), [pos1, pos2] = [p1.position, p2.position], { dx: xDist, dy: yDist } = getDistances(pos2, pos1), minimumDistance = 0;\n if (xVelocityDiff * xDist + yVelocityDiff * yDist < minimumDistance) {\n return;\n }\n const angle = -Math.atan2(yDist, xDist), m1 = p1.mass, m2 = p2.mass, u1 = p1.velocity.rotate(angle), u2 = p2.velocity.rotate(angle), v1 = collisionVelocity(u1, u2, m1, m2), v2 = collisionVelocity(u2, u1, m1, m2), vFinal1 = v1.rotate(-angle), vFinal2 = v2.rotate(-angle);\n p1.velocity.x = vFinal1.x * p1.factor.x;\n p1.velocity.y = vFinal1.y * p1.factor.y;\n p2.velocity.x = vFinal2.x * p2.factor.x;\n p2.velocity.y = vFinal2.y * p2.factor.y;\n}\nexport function rectBounce(particle, divBounds) {\n const pPos = particle.getPosition(), size = particle.getRadius(), bounds = calculateBounds(pPos, size), bounceOptions = particle.options.bounce, resH = rectSideBounce({\n pSide: {\n min: bounds.left,\n max: bounds.right,\n },\n pOtherSide: {\n min: bounds.top,\n max: bounds.bottom,\n },\n rectSide: {\n min: divBounds.left,\n max: divBounds.right,\n },\n rectOtherSide: {\n min: divBounds.top,\n max: divBounds.bottom,\n },\n velocity: particle.velocity.x,\n factor: getRangeValue(bounceOptions.horizontal.value),\n });\n if (resH.bounced) {\n if (resH.velocity !== undefined) {\n particle.velocity.x = resH.velocity;\n }\n if (resH.position !== undefined) {\n particle.position.x = resH.position;\n }\n }\n const resV = rectSideBounce({\n pSide: {\n min: bounds.top,\n max: bounds.bottom,\n },\n pOtherSide: {\n min: bounds.left,\n max: bounds.right,\n },\n rectSide: {\n min: divBounds.top,\n max: divBounds.bottom,\n },\n rectOtherSide: {\n min: divBounds.left,\n max: divBounds.right,\n },\n velocity: particle.velocity.y,\n factor: getRangeValue(bounceOptions.vertical.value),\n });\n if (resV.bounced) {\n if (resV.velocity !== undefined) {\n particle.velocity.y = resV.velocity;\n }\n if (resV.position !== undefined) {\n particle.position.y = resV.position;\n }\n }\n}\nexport function executeOnSingleOrMultiple(obj, callback) {\n const defaultIndex = 0;\n return isArray(obj) ? obj.map((item, index) => callback(item, index)) : callback(obj, defaultIndex);\n}\nexport function itemFromSingleOrMultiple(obj, index, useIndex) {\n return isArray(obj) ? itemFromArray(obj, index, useIndex) : obj;\n}\nexport function findItemFromSingleOrMultiple(obj, callback) {\n if (isArray(obj)) {\n return obj.find((t, index) => callback(t, index));\n }\n const defaultIndex = 0;\n return callback(obj, defaultIndex) ? obj : undefined;\n}\nexport function initParticleNumericAnimationValue(options, pxRatio) {\n const valueRange = options.value, animationOptions = options.animation, res = {\n delayTime: getRangeValue(animationOptions.delay) * millisecondsToSeconds,\n enable: animationOptions.enable,\n value: getRangeValue(options.value) * pxRatio,\n max: getRangeMax(valueRange) * pxRatio,\n min: getRangeMin(valueRange) * pxRatio,\n loops: 0,\n maxLoops: getRangeValue(animationOptions.count),\n time: 0,\n }, decayOffset = 1;\n if (animationOptions.enable) {\n res.decay = decayOffset - getRangeValue(animationOptions.decay);\n switch (animationOptions.mode) {\n case AnimationMode.increase:\n res.status = AnimationStatus.increasing;\n break;\n case AnimationMode.decrease:\n res.status = AnimationStatus.decreasing;\n break;\n case AnimationMode.random:\n res.status = getRandom() >= half ? AnimationStatus.increasing : AnimationStatus.decreasing;\n break;\n }\n const autoStatus = animationOptions.mode === AnimationMode.auto;\n switch (animationOptions.startValue) {\n case StartValueType.min:\n res.value = res.min;\n if (autoStatus) {\n res.status = AnimationStatus.increasing;\n }\n break;\n case StartValueType.max:\n res.value = res.max;\n if (autoStatus) {\n res.status = AnimationStatus.decreasing;\n }\n break;\n case StartValueType.random:\n default:\n res.value = randomInRange(res);\n if (autoStatus) {\n res.status = getRandom() >= half ? AnimationStatus.increasing : AnimationStatus.decreasing;\n }\n break;\n }\n }\n res.initialValue = res.value;\n return res;\n}\nfunction getPositionOrSize(positionOrSize, canvasSize) {\n const isPercent = positionOrSize.mode === PixelMode.percent;\n if (!isPercent) {\n const { mode: _, ...rest } = positionOrSize;\n return rest;\n }\n const isPosition = \"x\" in positionOrSize;\n if (isPosition) {\n return {\n x: (positionOrSize.x / percentDenominator) * canvasSize.width,\n y: (positionOrSize.y / percentDenominator) * canvasSize.height,\n };\n }\n else {\n return {\n width: (positionOrSize.width / percentDenominator) * canvasSize.width,\n height: (positionOrSize.height / percentDenominator) * canvasSize.height,\n };\n }\n}\nexport function getPosition(position, canvasSize) {\n return getPositionOrSize(position, canvasSize);\n}\nexport function getSize(size, canvasSize) {\n return getPositionOrSize(size, canvasSize);\n}\nfunction checkDestroy(particle, destroyType, value, minValue, maxValue) {\n switch (destroyType) {\n case DestroyType.max:\n if (value >= maxValue) {\n particle.destroy();\n }\n break;\n case DestroyType.min:\n if (value <= minValue) {\n particle.destroy();\n }\n break;\n }\n}\nexport function updateAnimation(particle, data, changeDirection, destroyType, delta) {\n const minLoops = 0, minDelay = 0, identity = 1, minVelocity = 0, minDecay = 1;\n if (particle.destroyed ||\n !data ||\n !data.enable ||\n ((data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops))) {\n return;\n }\n const velocity = (data.velocity ?? minVelocity) * delta.factor, minValue = data.min, maxValue = data.max, decay = data.decay ?? minDecay;\n if (!data.time) {\n data.time = 0;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n data.time += delta.value;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n return;\n }\n switch (data.status) {\n case AnimationStatus.increasing:\n if (data.value >= maxValue) {\n if (changeDirection) {\n data.status = AnimationStatus.decreasing;\n }\n else {\n data.value -= maxValue;\n }\n if (!data.loops) {\n data.loops = minLoops;\n }\n data.loops++;\n }\n else {\n data.value += velocity;\n }\n break;\n case AnimationStatus.decreasing:\n if (data.value <= minValue) {\n if (changeDirection) {\n data.status = AnimationStatus.increasing;\n }\n else {\n data.value += maxValue;\n }\n if (!data.loops) {\n data.loops = minLoops;\n }\n data.loops++;\n }\n else {\n data.value -= velocity;\n }\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n checkDestroy(particle, destroyType, data.value, minValue, maxValue);\n if (!particle.destroyed) {\n data.value = clamp(data.value, minValue, maxValue);\n }\n}\nexport function cloneStyle(style) {\n const clonedStyle = document.createElement(\"div\").style;\n if (!style) {\n return clonedStyle;\n }\n for (const key in style) {\n const styleKey = style[key];\n if (!Object.prototype.hasOwnProperty.call(style, key) || isNull(styleKey)) {\n continue;\n }\n const styleValue = style.getPropertyValue?.(styleKey);\n if (!styleValue) {\n continue;\n }\n const stylePriority = style.getPropertyPriority?.(styleKey);\n if (!stylePriority) {\n clonedStyle.setProperty?.(styleKey, styleValue);\n }\n else {\n clonedStyle.setProperty?.(styleKey, styleValue, stylePriority);\n }\n }\n return clonedStyle;\n}\nfunction computeFullScreenStyle(zIndex) {\n const fullScreenStyle = document.createElement(\"div\").style, radix = 10, style = {\n width: \"100%\",\n height: \"100%\",\n margin: \"0\",\n padding: \"0\",\n borderWidth: \"0\",\n position: \"fixed\",\n zIndex: zIndex.toString(radix),\n \"z-index\": zIndex.toString(radix),\n top: \"0\",\n left: \"0\",\n };\n for (const key in style) {\n const value = style[key];\n fullScreenStyle.setProperty(key, value);\n }\n return fullScreenStyle;\n}\nexport const getFullScreenStyle = memoize(computeFullScreenStyle);\n", + "export var AlterType;\n(function (AlterType) {\n AlterType[\"darken\"] = \"darken\";\n AlterType[\"enlighten\"] = \"enlighten\";\n})(AlterType || (AlterType = {}));\n", + "import { clamp, getRandom, getRangeMax, getRangeMin, getRangeValue, mix, randomInRange, setRangeValue, } from \"./NumberUtils.js\";\nimport { decayOffset, defaultLoops, defaultOpacity, defaultRgbMin, defaultTime, defaultVelocity, double, hMax, hMin, hPhase, half, identity, lMax, lMin, midColorValue, millisecondsToSeconds, percentDenominator, phaseNumerator, randomColorValue, rgbFactor, rgbMax, sMax, sMin, sNormalizedOffset, sextuple, triple, } from \"../Core/Utils/Constants.js\";\nimport { isArray, isString } from \"./TypeUtils.js\";\nimport { AnimationStatus } from \"../Enums/AnimationStatus.js\";\nimport { itemFromArray } from \"./Utils.js\";\nfunction stringToRgba(engine, input) {\n if (!input) {\n return;\n }\n for (const manager of engine.colorManagers.values()) {\n if (input.startsWith(manager.stringPrefix)) {\n return manager.parseString(input);\n }\n }\n}\nexport function rangeColorToRgb(engine, input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = isString(input) ? { value: input } : input;\n if (isString(color.value)) {\n return colorToRgb(engine, color.value, index, useIndex);\n }\n if (isArray(color.value)) {\n return rangeColorToRgb(engine, {\n value: itemFromArray(color.value, index, useIndex),\n });\n }\n for (const manager of engine.colorManagers.values()) {\n const res = manager.handleRangeColor(color);\n if (res) {\n return res;\n }\n }\n}\nexport function colorToRgb(engine, input, index, useIndex = true) {\n if (!input) {\n return;\n }\n const color = isString(input) ? { value: input } : input;\n if (isString(color.value)) {\n return color.value === randomColorValue ? getRandomRgbColor() : stringToRgb(engine, color.value);\n }\n if (isArray(color.value)) {\n return colorToRgb(engine, {\n value: itemFromArray(color.value, index, useIndex),\n });\n }\n for (const manager of engine.colorManagers.values()) {\n const res = manager.handleColor(color);\n if (res) {\n return res;\n }\n }\n}\nexport function colorToHsl(engine, color, index, useIndex = true) {\n const rgb = colorToRgb(engine, color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nexport function rangeColorToHsl(engine, color, index, useIndex = true) {\n const rgb = rangeColorToRgb(engine, color, index, useIndex);\n return rgb ? rgbToHsl(rgb) : undefined;\n}\nexport function rgbToHsl(color) {\n const r1 = color.r / rgbMax, g1 = color.g / rgbMax, b1 = color.b / rgbMax, max = Math.max(r1, g1, b1), min = Math.min(r1, g1, b1), res = {\n h: hMin,\n l: (max + min) * half,\n s: sMin,\n };\n if (max !== min) {\n res.s = res.l < half ? (max - min) / (max + min) : (max - min) / (double - max - min);\n res.h =\n r1 === max\n ? (g1 - b1) / (max - min)\n : (res.h = g1 === max ? double + (b1 - r1) / (max - min) : double * double + (r1 - g1) / (max - min));\n }\n res.l *= lMax;\n res.s *= sMax;\n res.h *= hPhase;\n if (res.h < hMin) {\n res.h += hMax;\n }\n if (res.h >= hMax) {\n res.h -= hMax;\n }\n return res;\n}\nexport function stringToAlpha(engine, input) {\n return stringToRgba(engine, input)?.a;\n}\nexport function stringToRgb(engine, input) {\n return stringToRgba(engine, input);\n}\nexport function hslToRgb(hsl) {\n const h = ((hsl.h % hMax) + hMax) % hMax, s = Math.max(sMin, Math.min(sMax, hsl.s)), l = Math.max(lMin, Math.min(lMax, hsl.l)), hNormalized = h / hMax, sNormalized = s / sMax, lNormalized = l / lMax;\n if (s === sMin) {\n const grayscaleValue = Math.round(lNormalized * rgbFactor);\n return { r: grayscaleValue, g: grayscaleValue, b: grayscaleValue };\n }\n const channel = (temp1, temp2, temp3) => {\n const temp3Min = 0, temp3Max = 1;\n if (temp3 < temp3Min) {\n temp3++;\n }\n if (temp3 > temp3Max) {\n temp3--;\n }\n if (temp3 * sextuple < temp3Max) {\n return temp1 + (temp2 - temp1) * sextuple * temp3;\n }\n if (temp3 * double < temp3Max) {\n return temp2;\n }\n if (temp3 * triple < temp3Max * double) {\n const temp3Offset = double / triple;\n return temp1 + (temp2 - temp1) * (temp3Offset - temp3) * sextuple;\n }\n return temp1;\n }, temp1 = lNormalized < half\n ? lNormalized * (sNormalizedOffset + sNormalized)\n : lNormalized + sNormalized - lNormalized * sNormalized, temp2 = double * lNormalized - temp1, phaseThird = phaseNumerator / triple, red = Math.min(rgbFactor, rgbFactor * channel(temp2, temp1, hNormalized + phaseThird)), green = Math.min(rgbFactor, rgbFactor * channel(temp2, temp1, hNormalized)), blue = Math.min(rgbFactor, rgbFactor * channel(temp2, temp1, hNormalized - phaseThird));\n return { r: Math.round(red), g: Math.round(green), b: Math.round(blue) };\n}\nexport function hslaToRgba(hsla) {\n const rgbResult = hslToRgb(hsla);\n return {\n a: hsla.a,\n b: rgbResult.b,\n g: rgbResult.g,\n r: rgbResult.r,\n };\n}\nexport function getRandomRgbColor(min) {\n const fixedMin = min ?? defaultRgbMin, fixedMax = rgbMax + identity;\n return {\n b: Math.floor(randomInRange(setRangeValue(fixedMin, fixedMax))),\n g: Math.floor(randomInRange(setRangeValue(fixedMin, fixedMax))),\n r: Math.floor(randomInRange(setRangeValue(fixedMin, fixedMax))),\n };\n}\nexport function getStyleFromRgb(color, opacity) {\n return `rgba(${color.r}, ${color.g}, ${color.b}, ${opacity ?? defaultOpacity})`;\n}\nexport function getStyleFromHsl(color, opacity) {\n return `hsla(${color.h}, ${color.s}%, ${color.l}%, ${opacity ?? defaultOpacity})`;\n}\nexport function colorMix(color1, color2, size1, size2) {\n let rgb1 = color1, rgb2 = color2;\n if (rgb1.r === undefined) {\n rgb1 = hslToRgb(color1);\n }\n if (rgb2.r === undefined) {\n rgb2 = hslToRgb(color2);\n }\n return {\n b: mix(rgb1.b, rgb2.b, size1, size2),\n g: mix(rgb1.g, rgb2.g, size1, size2),\n r: mix(rgb1.r, rgb2.r, size1, size2),\n };\n}\nexport function getLinkColor(p1, p2, linkColor) {\n if (linkColor === randomColorValue) {\n return getRandomRgbColor();\n }\n else if (linkColor === midColorValue) {\n const sourceColor = p1.getFillColor() ?? p1.getStrokeColor(), destColor = p2?.getFillColor() ?? p2?.getStrokeColor();\n if (sourceColor && destColor && p2) {\n return colorMix(sourceColor, destColor, p1.getRadius(), p2.getRadius());\n }\n else {\n const hslColor = sourceColor ?? destColor;\n if (hslColor) {\n return hslToRgb(hslColor);\n }\n }\n }\n else {\n return linkColor;\n }\n}\nexport function getLinkRandomColor(engine, optColor, blink, consent) {\n const color = isString(optColor) ? optColor : optColor.value;\n if (color === randomColorValue) {\n if (consent) {\n return rangeColorToRgb(engine, {\n value: color,\n });\n }\n if (blink) {\n return randomColorValue;\n }\n return midColorValue;\n }\n else if (color === midColorValue) {\n return midColorValue;\n }\n else {\n return rangeColorToRgb(engine, {\n value: color,\n });\n }\n}\nexport function getHslFromAnimation(animation) {\n return animation !== undefined\n ? {\n h: animation.h.value,\n s: animation.s.value,\n l: animation.l.value,\n }\n : undefined;\n}\nexport function getHslAnimationFromHsl(hsl, animationOptions, reduceFactor) {\n const resColor = {\n h: {\n enable: false,\n value: hsl.h,\n },\n s: {\n enable: false,\n value: hsl.s,\n },\n l: {\n enable: false,\n value: hsl.l,\n },\n };\n if (animationOptions) {\n setColorAnimation(resColor.h, animationOptions.h, reduceFactor);\n setColorAnimation(resColor.s, animationOptions.s, reduceFactor);\n setColorAnimation(resColor.l, animationOptions.l, reduceFactor);\n }\n return resColor;\n}\nfunction setColorAnimation(colorValue, colorAnimation, reduceFactor) {\n colorValue.enable = colorAnimation.enable;\n if (colorValue.enable) {\n colorValue.velocity = (getRangeValue(colorAnimation.speed) / percentDenominator) * reduceFactor;\n colorValue.decay = decayOffset - getRangeValue(colorAnimation.decay);\n colorValue.status = AnimationStatus.increasing;\n colorValue.loops = defaultLoops;\n colorValue.maxLoops = getRangeValue(colorAnimation.count);\n colorValue.time = defaultTime;\n colorValue.delayTime = getRangeValue(colorAnimation.delay) * millisecondsToSeconds;\n if (!colorAnimation.sync) {\n colorValue.velocity *= getRandom();\n colorValue.value *= getRandom();\n }\n colorValue.initialValue = colorValue.value;\n colorValue.offset = setRangeValue(colorAnimation.offset);\n }\n else {\n colorValue.velocity = defaultVelocity;\n }\n}\nexport function updateColorValue(data, range, decrease, delta) {\n const minLoops = 0, minDelay = 0, identity = 1, minVelocity = 0, minOffset = 0, velocityFactor = 3.6;\n if (!data ||\n !data.enable ||\n ((data.maxLoops ?? minLoops) > minLoops && (data.loops ?? minLoops) > (data.maxLoops ?? minLoops))) {\n return;\n }\n if (!data.time) {\n data.time = 0;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n data.time += delta.value;\n }\n if ((data.delayTime ?? minDelay) > minDelay && data.time < (data.delayTime ?? minDelay)) {\n return;\n }\n const offset = data.offset ? randomInRange(data.offset) : minOffset, velocity = (data.velocity ?? minVelocity) * delta.factor + offset * velocityFactor, decay = data.decay ?? identity, max = getRangeMax(range), min = getRangeMin(range);\n if (!decrease || data.status === AnimationStatus.increasing) {\n data.value += velocity;\n if (data.value > max) {\n if (!data.loops) {\n data.loops = 0;\n }\n data.loops++;\n if (decrease) {\n data.status = AnimationStatus.decreasing;\n }\n else {\n data.value -= max;\n }\n }\n }\n else {\n data.value -= velocity;\n const minValue = 0;\n if (data.value < minValue) {\n if (!data.loops) {\n data.loops = 0;\n }\n data.loops++;\n data.status = AnimationStatus.increasing;\n }\n }\n if (data.velocity && decay !== identity) {\n data.velocity *= decay;\n }\n data.value = clamp(data.value, min, max);\n}\nexport function updateColor(color, delta) {\n if (!color) {\n return;\n }\n const { h, s, l } = color, ranges = {\n h: { min: 0, max: 360 },\n s: { min: 0, max: 100 },\n l: { min: 0, max: 100 },\n };\n if (h) {\n updateColorValue(h, ranges.h, false, delta);\n }\n if (s) {\n updateColorValue(s, ranges.s, true, delta);\n }\n if (l) {\n updateColorValue(l, ranges.l, true, delta);\n }\n}\n", + "import { defaultAngle, defaultTransform, identity, lFactor, minStrokeWidth, originPoint, } from \"../Core/Utils/Constants.js\";\nimport { AlterType } from \"../Enums/Types/AlterType.js\";\nimport { getStyleFromRgb } from \"./ColorUtils.js\";\nexport function drawLine(context, begin, end) {\n context.beginPath();\n context.moveTo(begin.x, begin.y);\n context.lineTo(end.x, end.y);\n context.closePath();\n}\nexport function paintBase(context, dimension, baseColor) {\n context.fillStyle = baseColor ?? \"rgba(0,0,0,0)\";\n context.fillRect(originPoint.x, originPoint.y, dimension.width, dimension.height);\n}\nexport function paintImage(context, dimension, image, opacity) {\n if (!image) {\n return;\n }\n context.globalAlpha = opacity;\n context.drawImage(image, originPoint.x, originPoint.y, dimension.width, dimension.height);\n context.globalAlpha = 1;\n}\nexport function clear(context, dimension) {\n context.clearRect(originPoint.x, originPoint.y, dimension.width, dimension.height);\n}\nexport function drawParticle(data) {\n const { container, context, particle, delta, colorStyles, backgroundMask, composite, radius, opacity, shadow, transform, } = data, pos = particle.getPosition(), angle = particle.rotation + (particle.pathRotation ? particle.velocity.angle : defaultAngle), rotateData = {\n sin: Math.sin(angle),\n cos: Math.cos(angle),\n }, rotating = !!angle, transformData = {\n a: rotateData.cos * (transform.a ?? defaultTransform.a),\n b: rotating ? rotateData.sin * (transform.b ?? identity) : (transform.b ?? defaultTransform.b),\n c: rotating ? -rotateData.sin * (transform.c ?? identity) : (transform.c ?? defaultTransform.c),\n d: rotateData.cos * (transform.d ?? defaultTransform.d),\n };\n context.setTransform(transformData.a, transformData.b, transformData.c, transformData.d, pos.x, pos.y);\n if (backgroundMask) {\n context.globalCompositeOperation = composite;\n }\n const shadowColor = particle.shadowColor;\n if (shadow.enable && shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n context.shadowOffsetX = shadow.offset.x;\n context.shadowOffsetY = shadow.offset.y;\n }\n if (colorStyles.fill) {\n context.fillStyle = colorStyles.fill;\n }\n const strokeWidth = particle.strokeWidth ?? minStrokeWidth;\n context.lineWidth = strokeWidth;\n if (colorStyles.stroke) {\n context.strokeStyle = colorStyles.stroke;\n }\n const drawData = {\n container,\n context,\n particle,\n radius,\n opacity,\n delta,\n transformData,\n strokeWidth,\n };\n drawShape(drawData);\n drawShapeAfterDraw(drawData);\n drawEffect(drawData);\n context.globalCompositeOperation = \"source-over\";\n context.resetTransform();\n}\nexport function drawEffect(data) {\n const { container, context, particle, radius, opacity, delta, transformData } = data;\n if (!particle.effect) {\n return;\n }\n const drawer = container.effectDrawers.get(particle.effect);\n if (!drawer) {\n return;\n }\n drawer.draw({\n context,\n particle,\n radius,\n opacity,\n delta,\n pixelRatio: container.retina.pixelRatio,\n transformData: { ...transformData },\n });\n}\nexport function drawShape(data) {\n const { container, context, particle, radius, opacity, delta, strokeWidth, transformData } = data;\n if (!particle.shape) {\n return;\n }\n const drawer = container.shapeDrawers.get(particle.shape);\n if (!drawer) {\n return;\n }\n context.beginPath();\n drawer.draw({\n context,\n particle,\n radius,\n opacity,\n delta,\n pixelRatio: container.retina.pixelRatio,\n transformData: { ...transformData },\n });\n if (particle.shapeClose) {\n context.closePath();\n }\n if (strokeWidth > minStrokeWidth) {\n context.stroke();\n }\n if (particle.shapeFill) {\n context.fill();\n }\n}\nexport function drawShapeAfterDraw(data) {\n const { container, context, particle, radius, opacity, delta, transformData } = data;\n if (!particle.shape) {\n return;\n }\n const drawer = container.shapeDrawers.get(particle.shape);\n if (!drawer?.afterDraw) {\n return;\n }\n drawer.afterDraw({\n context,\n particle,\n radius,\n opacity,\n delta,\n pixelRatio: container.retina.pixelRatio,\n transformData: { ...transformData },\n });\n}\nexport function drawPlugin(context, plugin, delta) {\n if (!plugin.draw) {\n return;\n }\n plugin.draw(context, delta);\n}\nexport function drawParticlePlugin(context, plugin, particle, delta) {\n if (!plugin.drawParticle) {\n return;\n }\n plugin.drawParticle(context, particle, delta);\n}\nexport function alterHsl(color, type, value) {\n return {\n h: color.h,\n s: color.s,\n l: color.l + (type === AlterType.darken ? -lFactor : lFactor) * value,\n };\n}\n", + "import { clear, drawParticle, drawParticlePlugin, drawPlugin, paintBase, paintImage } from \"../Utils/CanvasUtils.js\";\nimport { cloneStyle, getFullScreenStyle, getLogger, safeMutationObserver } from \"../Utils/Utils.js\";\nimport { defaultOpacity, defaultTransformValue, generatedAttribute, inverseFactorNumerator, minimumLength, minimumSize, zIndexFactorOffset, } from \"./Utils/Constants.js\";\nimport { getStyleFromHsl, getStyleFromRgb, rangeColorToHsl, rangeColorToRgb } from \"../Utils/ColorUtils.js\";\nfunction setTransformValue(factor, newFactor, key) {\n const newValue = newFactor[key];\n if (newValue !== undefined) {\n factor[key] = (factor[key] ?? defaultTransformValue) * newValue;\n }\n}\nfunction setStyle(canvas, style, important = false) {\n if (!style) {\n return;\n }\n const element = canvas;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (!elementStyle) {\n return;\n }\n const keys = new Set();\n for (const key in elementStyle) {\n if (!Object.prototype.hasOwnProperty.call(elementStyle, key)) {\n continue;\n }\n keys.add(elementStyle[key]);\n }\n for (const key in style) {\n if (!Object.prototype.hasOwnProperty.call(style, key)) {\n continue;\n }\n keys.add(style[key]);\n }\n for (const key of keys) {\n const value = style.getPropertyValue(key);\n if (!value) {\n elementStyle.removeProperty(key);\n }\n else {\n elementStyle.setProperty(key, value, important ? \"important\" : \"\");\n }\n }\n}\nexport class Canvas {\n constructor(container, engine) {\n this.container = container;\n this._applyPostDrawUpdaters = particle => {\n for (const updater of this._postDrawUpdaters) {\n updater.afterDraw?.(particle);\n }\n };\n this._applyPreDrawUpdaters = (ctx, particle, radius, zOpacity, colorStyles, transform) => {\n for (const updater of this._preDrawUpdaters) {\n if (updater.getColorStyles) {\n const { fill, stroke } = updater.getColorStyles(particle, ctx, radius, zOpacity);\n if (fill) {\n colorStyles.fill = fill;\n }\n if (stroke) {\n colorStyles.stroke = stroke;\n }\n }\n if (updater.getTransformValues) {\n const updaterTransform = updater.getTransformValues(particle);\n for (const key in updaterTransform) {\n setTransformValue(transform, updaterTransform, key);\n }\n }\n updater.beforeDraw?.(particle);\n }\n };\n this._applyResizePlugins = () => {\n for (const plugin of this._resizePlugins) {\n plugin.resize?.();\n }\n };\n this._getPluginParticleColors = particle => {\n let fColor, sColor;\n for (const plugin of this._colorPlugins) {\n if (!fColor && plugin.particleFillColor) {\n fColor = rangeColorToHsl(this._engine, plugin.particleFillColor(particle));\n }\n if (!sColor && plugin.particleStrokeColor) {\n sColor = rangeColorToHsl(this._engine, plugin.particleStrokeColor(particle));\n }\n if (fColor && sColor) {\n break;\n }\n }\n return [fColor, sColor];\n };\n this._initCover = async () => {\n const options = this.container.actualOptions, cover = options.backgroundMask.cover, color = cover.color;\n if (color) {\n const coverRgb = rangeColorToRgb(this._engine, color);\n if (coverRgb) {\n const coverColor = {\n ...coverRgb,\n a: cover.opacity,\n };\n this._coverColorStyle = getStyleFromRgb(coverColor, coverColor.a);\n }\n }\n else {\n await new Promise((resolve, reject) => {\n if (!cover.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._coverImage = {\n image: img,\n opacity: cover.opacity,\n };\n resolve();\n });\n img.addEventListener(\"error\", evt => {\n reject(evt.error);\n });\n img.src = cover.image;\n });\n }\n };\n this._initStyle = () => {\n const element = this.element, options = this.container.actualOptions;\n if (!element) {\n return;\n }\n if (this._fullScreen) {\n this._setFullScreenStyle();\n }\n else {\n this._resetOriginalStyle();\n }\n for (const key in options.style) {\n if (!key || !options.style || !Object.prototype.hasOwnProperty.call(options.style, key)) {\n continue;\n }\n const value = options.style[key];\n if (!value) {\n continue;\n }\n element.style.setProperty(key, value, \"important\");\n }\n };\n this._initTrail = async () => {\n const options = this.container.actualOptions, trail = options.particles.move.trail, trailFill = trail.fill;\n if (!trail.enable) {\n return;\n }\n const opacity = inverseFactorNumerator / trail.length;\n if (trailFill.color) {\n const fillColor = rangeColorToRgb(this._engine, trailFill.color);\n if (!fillColor) {\n return;\n }\n this._trailFill = {\n color: {\n ...fillColor,\n },\n opacity,\n };\n }\n else {\n await new Promise((resolve, reject) => {\n if (!trailFill.image) {\n return;\n }\n const img = document.createElement(\"img\");\n img.addEventListener(\"load\", () => {\n this._trailFill = {\n image: img,\n opacity,\n };\n resolve();\n });\n img.addEventListener(\"error\", evt => {\n reject(evt.error);\n });\n img.src = trailFill.image;\n });\n }\n };\n this._paintBase = baseColor => {\n this.draw(ctx => paintBase(ctx, this.size, baseColor));\n };\n this._paintImage = (image, opacity) => {\n this.draw(ctx => paintImage(ctx, this.size, image, opacity));\n };\n this._repairStyle = () => {\n const element = this.element;\n if (!element) {\n return;\n }\n this._safeMutationObserver(observer => observer.disconnect());\n this._initStyle();\n this.initBackground();\n const pointerEvents = this._pointerEvents;\n element.style.pointerEvents = pointerEvents;\n element.setAttribute(\"pointer-events\", pointerEvents);\n this._safeMutationObserver(observer => {\n if (!element || !(element instanceof Node)) {\n return;\n }\n observer.observe(element, { attributes: true });\n });\n };\n this._resetOriginalStyle = () => {\n const element = this.element, originalStyle = this._originalStyle;\n if (!element || !originalStyle) {\n return;\n }\n setStyle(element, originalStyle, true);\n };\n this._safeMutationObserver = callback => {\n if (!this._mutationObserver) {\n return;\n }\n callback(this._mutationObserver);\n };\n this._setFullScreenStyle = () => {\n const element = this.element;\n if (!element) {\n return;\n }\n setStyle(element, getFullScreenStyle(this.container.actualOptions.fullScreen.zIndex), true);\n };\n this._engine = engine;\n this._standardSize = {\n height: 0,\n width: 0,\n };\n const pxRatio = container.retina.pixelRatio, stdSize = this._standardSize;\n this.size = {\n height: stdSize.height * pxRatio,\n width: stdSize.width * pxRatio,\n };\n this._context = null;\n this._generated = false;\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n this._pointerEvents = \"none\";\n }\n get _fullScreen() {\n return this.container.actualOptions.fullScreen.enable;\n }\n clear() {\n const options = this.container.actualOptions, trail = options.particles.move.trail, trailFill = this._trailFill;\n if (options.backgroundMask.enable) {\n this.paint();\n }\n else if (trail.enable && trail.length > minimumLength && trailFill) {\n if (trailFill.color) {\n this._paintBase(getStyleFromRgb(trailFill.color, trailFill.opacity));\n }\n else if (trailFill.image) {\n this._paintImage(trailFill.image, trailFill.opacity);\n }\n }\n else if (options.clear) {\n this.draw(ctx => {\n clear(ctx, this.size);\n });\n }\n }\n destroy() {\n this.stop();\n if (this._generated) {\n const element = this.element;\n element?.remove();\n this.element = undefined;\n }\n else {\n this._resetOriginalStyle();\n }\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n this._resizePlugins = [];\n this._colorPlugins = [];\n }\n draw(cb) {\n const ctx = this._context;\n if (!ctx) {\n return;\n }\n return cb(ctx);\n }\n drawAsync(cb) {\n const ctx = this._context;\n if (!ctx) {\n return undefined;\n }\n return cb(ctx);\n }\n drawParticle(particle, delta) {\n if (particle.spawning || particle.destroyed) {\n return;\n }\n const radius = particle.getRadius();\n if (radius <= minimumSize) {\n return;\n }\n const pfColor = particle.getFillColor(), psColor = particle.getStrokeColor() ?? pfColor;\n let [fColor, sColor] = this._getPluginParticleColors(particle);\n if (!fColor) {\n fColor = pfColor;\n }\n if (!sColor) {\n sColor = psColor;\n }\n if (!fColor && !sColor) {\n return;\n }\n this.draw((ctx) => {\n const container = this.container, options = container.actualOptions, zIndexOptions = particle.options.zIndex, zIndexFactor = zIndexFactorOffset - particle.zIndexFactor, zOpacityFactor = zIndexFactor ** zIndexOptions.opacityRate, opacity = particle.bubble.opacity ?? particle.opacity?.value ?? defaultOpacity, strokeOpacity = particle.strokeOpacity ?? opacity, zOpacity = opacity * zOpacityFactor, zStrokeOpacity = strokeOpacity * zOpacityFactor, transform = {}, colorStyles = {\n fill: fColor ? getStyleFromHsl(fColor, zOpacity) : undefined,\n };\n colorStyles.stroke = sColor ? getStyleFromHsl(sColor, zStrokeOpacity) : colorStyles.fill;\n this._applyPreDrawUpdaters(ctx, particle, radius, zOpacity, colorStyles, transform);\n drawParticle({\n container,\n context: ctx,\n particle,\n delta,\n colorStyles,\n backgroundMask: options.backgroundMask.enable,\n composite: options.backgroundMask.composite,\n radius: radius * zIndexFactor ** zIndexOptions.sizeRate,\n opacity: zOpacity,\n shadow: particle.options.shadow,\n transform,\n });\n this._applyPostDrawUpdaters(particle);\n });\n }\n drawParticlePlugin(plugin, particle, delta) {\n this.draw(ctx => drawParticlePlugin(ctx, plugin, particle, delta));\n }\n drawPlugin(plugin, delta) {\n this.draw(ctx => drawPlugin(ctx, plugin, delta));\n }\n async init() {\n this._safeMutationObserver(obs => obs.disconnect());\n this._mutationObserver = safeMutationObserver(records => {\n for (const record of records) {\n if (record.type === \"attributes\" && record.attributeName === \"style\") {\n this._repairStyle();\n }\n }\n });\n this.resize();\n this._initStyle();\n await this._initCover();\n try {\n await this._initTrail();\n }\n catch (e) {\n getLogger().error(e);\n }\n this.initBackground();\n this._safeMutationObserver(obs => {\n if (!this.element || !(this.element instanceof Node)) {\n return;\n }\n obs.observe(this.element, { attributes: true });\n });\n this.initUpdaters();\n this.initPlugins();\n this.paint();\n }\n initBackground() {\n const options = this.container.actualOptions, background = options.background, element = this.element;\n if (!element) {\n return;\n }\n const elementStyle = element.style;\n if (!elementStyle) {\n return;\n }\n if (background.color) {\n const color = rangeColorToRgb(this._engine, background.color);\n elementStyle.backgroundColor = color ? getStyleFromRgb(color, background.opacity) : \"\";\n }\n else {\n elementStyle.backgroundColor = \"\";\n }\n elementStyle.backgroundImage = background.image || \"\";\n elementStyle.backgroundPosition = background.position || \"\";\n elementStyle.backgroundRepeat = background.repeat || \"\";\n elementStyle.backgroundSize = background.size || \"\";\n }\n initPlugins() {\n this._resizePlugins = [];\n for (const plugin of this.container.plugins.values()) {\n if (plugin.resize) {\n this._resizePlugins.push(plugin);\n }\n if (plugin.particleFillColor ?? plugin.particleStrokeColor) {\n this._colorPlugins.push(plugin);\n }\n }\n }\n initUpdaters() {\n this._preDrawUpdaters = [];\n this._postDrawUpdaters = [];\n for (const updater of this.container.particles.updaters) {\n if (updater.afterDraw) {\n this._postDrawUpdaters.push(updater);\n }\n if (updater.getColorStyles ?? updater.getTransformValues ?? updater.beforeDraw) {\n this._preDrawUpdaters.push(updater);\n }\n }\n }\n loadCanvas(canvas) {\n if (this._generated && this.element) {\n this.element.remove();\n }\n this._generated =\n canvas.dataset && generatedAttribute in canvas.dataset\n ? canvas.dataset[generatedAttribute] === \"true\"\n : this._generated;\n this.element = canvas;\n this.element.ariaHidden = \"true\";\n this._originalStyle = cloneStyle(this.element.style);\n const standardSize = this._standardSize;\n standardSize.height = canvas.offsetHeight;\n standardSize.width = canvas.offsetWidth;\n const pxRatio = this.container.retina.pixelRatio, retinaSize = this.size;\n canvas.height = retinaSize.height = standardSize.height * pxRatio;\n canvas.width = retinaSize.width = standardSize.width * pxRatio;\n this._context = this.element.getContext(\"2d\");\n this._safeMutationObserver(obs => obs.disconnect());\n this.container.retina.init();\n this.initBackground();\n this._safeMutationObserver(obs => {\n if (!this.element || !(this.element instanceof Node)) {\n return;\n }\n obs.observe(this.element, { attributes: true });\n });\n }\n paint() {\n const options = this.container.actualOptions;\n this.draw(ctx => {\n if (options.backgroundMask.enable && options.backgroundMask.cover) {\n clear(ctx, this.size);\n if (this._coverImage) {\n this._paintImage(this._coverImage.image, this._coverImage.opacity);\n }\n else if (this._coverColorStyle) {\n this._paintBase(this._coverColorStyle);\n }\n else {\n this._paintBase();\n }\n }\n else {\n this._paintBase();\n }\n });\n }\n resize() {\n if (!this.element) {\n return false;\n }\n const container = this.container, currentSize = container.canvas._standardSize, newSize = {\n width: this.element.offsetWidth,\n height: this.element.offsetHeight,\n }, pxRatio = container.retina.pixelRatio, retinaSize = {\n width: newSize.width * pxRatio,\n height: newSize.height * pxRatio,\n };\n if (newSize.height === currentSize.height &&\n newSize.width === currentSize.width &&\n retinaSize.height === this.element.height &&\n retinaSize.width === this.element.width) {\n return false;\n }\n const oldSize = { ...currentSize };\n currentSize.height = newSize.height;\n currentSize.width = newSize.width;\n const canvasSize = this.size;\n this.element.width = canvasSize.width = retinaSize.width;\n this.element.height = canvasSize.height = retinaSize.height;\n if (this.container.started) {\n container.particles.setResizeFactor({\n width: currentSize.width / oldSize.width,\n height: currentSize.height / oldSize.height,\n });\n }\n return true;\n }\n setPointerEvents(type) {\n const element = this.element;\n if (!element) {\n return;\n }\n this._pointerEvents = type;\n this._repairStyle();\n }\n stop() {\n this._safeMutationObserver(obs => obs.disconnect());\n this._mutationObserver = undefined;\n this.draw(ctx => clear(ctx, this.size));\n }\n async windowResize() {\n if (!this.element || !this.resize()) {\n return;\n }\n const container = this.container, needsRefresh = container.updateActualOptions();\n container.particles.setDensity();\n this._applyResizePlugins();\n if (needsRefresh) {\n await container.refresh();\n }\n }\n}\n", + "export var InteractivityDetect;\n(function (InteractivityDetect) {\n InteractivityDetect[\"canvas\"] = \"canvas\";\n InteractivityDetect[\"parent\"] = \"parent\";\n InteractivityDetect[\"window\"] = \"window\";\n})(InteractivityDetect || (InteractivityDetect = {}));\n", + "import { double, lengthOffset, millisecondsToSeconds, minCoordinate, mouseDownEvent, mouseLeaveEvent, mouseMoveEvent, mouseOutEvent, mouseUpEvent, resizeEvent, touchCancelEvent, touchDelay, touchEndEvent, touchMoveEvent, touchStartEvent, visibilityChangeEvent, } from \"./Constants.js\";\nimport { executeOnSingleOrMultiple, safeMatchMedia } from \"../../Utils/Utils.js\";\nimport { InteractivityDetect } from \"../../Enums/InteractivityDetect.js\";\nimport { isBoolean } from \"../../Utils/TypeUtils.js\";\nfunction manageListener(element, event, handler, add, options) {\n if (add) {\n let addOptions = { passive: true };\n if (isBoolean(options)) {\n addOptions.capture = options;\n }\n else if (options !== undefined) {\n addOptions = options;\n }\n element.addEventListener(event, handler, addOptions);\n }\n else {\n const removeOptions = options;\n element.removeEventListener(event, handler, removeOptions);\n }\n}\nexport class EventListeners {\n constructor(container) {\n this.container = container;\n this._doMouseTouchClick = e => {\n const container = this.container, options = container.actualOptions;\n if (this._canPush) {\n const mouseInteractivity = container.interactivity.mouse, mousePos = mouseInteractivity.position;\n if (!mousePos) {\n return;\n }\n mouseInteractivity.clickPosition = { ...mousePos };\n mouseInteractivity.clickTime = new Date().getTime();\n const onClick = options.interactivity.events.onClick;\n executeOnSingleOrMultiple(onClick.mode, mode => this.container.handleClickMode(mode));\n }\n if (e.type === \"touchend\") {\n setTimeout(() => this._mouseTouchFinish(), touchDelay);\n }\n };\n this._handleThemeChange = (e) => {\n const mediaEvent = e, container = this.container, options = container.options, defaultThemes = options.defaultThemes, themeName = mediaEvent.matches ? defaultThemes.dark : defaultThemes.light, theme = options.themes.find(theme => theme.name === themeName);\n if (theme?.default.auto) {\n void container.loadTheme(themeName);\n }\n };\n this._handleVisibilityChange = () => {\n const container = this.container, options = container.actualOptions;\n this._mouseTouchFinish();\n if (!options.pauseOnBlur) {\n return;\n }\n if (document?.hidden) {\n container.pageHidden = true;\n container.pause();\n }\n else {\n container.pageHidden = false;\n if (container.animationStatus) {\n void container.play(true);\n }\n else {\n void container.draw(true);\n }\n }\n };\n this._handleWindowResize = () => {\n if (this._resizeTimeout) {\n clearTimeout(this._resizeTimeout);\n delete this._resizeTimeout;\n }\n const handleResize = async () => {\n const canvas = this.container.canvas;\n await canvas?.windowResize();\n };\n this._resizeTimeout = setTimeout(() => void handleResize(), this.container.actualOptions.interactivity.events.resize.delay * millisecondsToSeconds);\n };\n this._manageInteractivityListeners = (mouseLeaveTmpEvent, add) => {\n const handlers = this._handlers, container = this.container, options = container.actualOptions, interactivityEl = container.interactivity.element;\n if (!interactivityEl) {\n return;\n }\n const html = interactivityEl, canvas = container.canvas;\n canvas.setPointerEvents(html === canvas.element ? \"initial\" : \"none\");\n if (!(options.interactivity.events.onHover.enable || options.interactivity.events.onClick.enable)) {\n return;\n }\n manageListener(interactivityEl, mouseMoveEvent, handlers.mouseMove, add);\n manageListener(interactivityEl, touchStartEvent, handlers.touchStart, add);\n manageListener(interactivityEl, touchMoveEvent, handlers.touchMove, add);\n if (!options.interactivity.events.onClick.enable) {\n manageListener(interactivityEl, touchEndEvent, handlers.touchEnd, add);\n }\n else {\n manageListener(interactivityEl, touchEndEvent, handlers.touchEndClick, add);\n manageListener(interactivityEl, mouseUpEvent, handlers.mouseUp, add);\n manageListener(interactivityEl, mouseDownEvent, handlers.mouseDown, add);\n }\n manageListener(interactivityEl, mouseLeaveTmpEvent, handlers.mouseLeave, add);\n manageListener(interactivityEl, touchCancelEvent, handlers.touchCancel, add);\n };\n this._manageListeners = add => {\n const handlers = this._handlers, container = this.container, options = container.actualOptions, detectType = options.interactivity.detectsOn, canvasEl = container.canvas.element;\n let mouseLeaveTmpEvent = mouseLeaveEvent;\n if (detectType === InteractivityDetect.window) {\n container.interactivity.element = window;\n mouseLeaveTmpEvent = mouseOutEvent;\n }\n else if (detectType === InteractivityDetect.parent && canvasEl) {\n container.interactivity.element = canvasEl.parentElement ?? canvasEl.parentNode;\n }\n else {\n container.interactivity.element = canvasEl;\n }\n this._manageMediaMatch(add);\n this._manageResize(add);\n this._manageInteractivityListeners(mouseLeaveTmpEvent, add);\n if (document) {\n manageListener(document, visibilityChangeEvent, handlers.visibilityChange, add, false);\n }\n };\n this._manageMediaMatch = add => {\n const handlers = this._handlers, mediaMatch = safeMatchMedia(\"(prefers-color-scheme: dark)\");\n if (!mediaMatch) {\n return;\n }\n if (mediaMatch.addEventListener !== undefined) {\n manageListener(mediaMatch, \"change\", handlers.themeChange, add);\n return;\n }\n if (mediaMatch.addListener === undefined) {\n return;\n }\n if (add) {\n mediaMatch.addListener(handlers.oldThemeChange);\n }\n else {\n mediaMatch.removeListener(handlers.oldThemeChange);\n }\n };\n this._manageResize = add => {\n const handlers = this._handlers, container = this.container, options = container.actualOptions;\n if (!options.interactivity.events.resize) {\n return;\n }\n if (typeof ResizeObserver === \"undefined\") {\n manageListener(window, resizeEvent, handlers.resize, add);\n return;\n }\n const canvasEl = container.canvas.element;\n if (this._resizeObserver && !add) {\n if (canvasEl) {\n this._resizeObserver.unobserve(canvasEl);\n }\n this._resizeObserver.disconnect();\n delete this._resizeObserver;\n }\n else if (!this._resizeObserver && add && canvasEl) {\n this._resizeObserver = new ResizeObserver((entries) => {\n const entry = entries.find(e => e.target === canvasEl);\n if (!entry) {\n return;\n }\n this._handleWindowResize();\n });\n this._resizeObserver.observe(canvasEl);\n }\n };\n this._mouseDown = () => {\n const { interactivity } = this.container;\n if (!interactivity) {\n return;\n }\n const { mouse } = interactivity;\n mouse.clicking = true;\n mouse.downPosition = mouse.position;\n };\n this._mouseTouchClick = e => {\n const container = this.container, options = container.actualOptions, { mouse } = container.interactivity;\n mouse.inside = true;\n let handled = false;\n const mousePosition = mouse.position;\n if (!mousePosition || !options.interactivity.events.onClick.enable) {\n return;\n }\n for (const plugin of container.plugins.values()) {\n if (!plugin.clickPositionValid) {\n continue;\n }\n handled = plugin.clickPositionValid(mousePosition);\n if (handled) {\n break;\n }\n }\n if (!handled) {\n this._doMouseTouchClick(e);\n }\n mouse.clicking = false;\n };\n this._mouseTouchFinish = () => {\n const interactivity = this.container.interactivity;\n if (!interactivity) {\n return;\n }\n const mouse = interactivity.mouse;\n delete mouse.position;\n delete mouse.clickPosition;\n delete mouse.downPosition;\n interactivity.status = mouseLeaveEvent;\n mouse.inside = false;\n mouse.clicking = false;\n };\n this._mouseTouchMove = e => {\n const container = this.container, options = container.actualOptions, interactivity = container.interactivity, canvasEl = container.canvas.element;\n if (!interactivity?.element) {\n return;\n }\n interactivity.mouse.inside = true;\n let pos;\n if (e.type.startsWith(\"pointer\")) {\n this._canPush = true;\n const mouseEvent = e;\n if (interactivity.element === window) {\n if (canvasEl) {\n const clientRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.clientX - clientRect.left,\n y: mouseEvent.clientY - clientRect.top,\n };\n }\n }\n else if (options.interactivity.detectsOn === InteractivityDetect.parent) {\n const source = mouseEvent.target, target = mouseEvent.currentTarget;\n if (source && target && canvasEl) {\n const sourceRect = source.getBoundingClientRect(), targetRect = target.getBoundingClientRect(), canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: mouseEvent.offsetX + double * sourceRect.left - (targetRect.left + canvasRect.left),\n y: mouseEvent.offsetY + double * sourceRect.top - (targetRect.top + canvasRect.top),\n };\n }\n else {\n pos = {\n x: mouseEvent.offsetX ?? mouseEvent.clientX,\n y: mouseEvent.offsetY ?? mouseEvent.clientY,\n };\n }\n }\n else if (mouseEvent.target === canvasEl) {\n pos = {\n x: mouseEvent.offsetX ?? mouseEvent.clientX,\n y: mouseEvent.offsetY ?? mouseEvent.clientY,\n };\n }\n }\n else {\n this._canPush = e.type !== \"touchmove\";\n if (canvasEl) {\n const touchEvent = e, lastTouch = touchEvent.touches[touchEvent.touches.length - lengthOffset], canvasRect = canvasEl.getBoundingClientRect();\n pos = {\n x: lastTouch.clientX - (canvasRect.left ?? minCoordinate),\n y: lastTouch.clientY - (canvasRect.top ?? minCoordinate),\n };\n }\n }\n const pxRatio = container.retina.pixelRatio;\n if (pos) {\n pos.x *= pxRatio;\n pos.y *= pxRatio;\n }\n interactivity.mouse.position = pos;\n interactivity.status = mouseMoveEvent;\n };\n this._touchEnd = e => {\n const evt = e, touches = Array.from(evt.changedTouches);\n for (const touch of touches) {\n this._touches.delete(touch.identifier);\n }\n this._mouseTouchFinish();\n };\n this._touchEndClick = e => {\n const evt = e, touches = Array.from(evt.changedTouches);\n for (const touch of touches) {\n this._touches.delete(touch.identifier);\n }\n this._mouseTouchClick(e);\n };\n this._touchStart = e => {\n const evt = e, touches = Array.from(evt.changedTouches);\n for (const touch of touches) {\n this._touches.set(touch.identifier, performance.now());\n }\n this._mouseTouchMove(e);\n };\n this._canPush = true;\n this._touches = new Map();\n this._handlers = {\n mouseDown: () => this._mouseDown(),\n mouseLeave: () => this._mouseTouchFinish(),\n mouseMove: (e) => this._mouseTouchMove(e),\n mouseUp: (e) => this._mouseTouchClick(e),\n touchStart: (e) => this._touchStart(e),\n touchMove: (e) => this._mouseTouchMove(e),\n touchEnd: (e) => this._touchEnd(e),\n touchCancel: (e) => this._touchEnd(e),\n touchEndClick: (e) => this._touchEndClick(e),\n visibilityChange: () => this._handleVisibilityChange(),\n themeChange: (e) => this._handleThemeChange(e),\n oldThemeChange: (e) => this._handleThemeChange(e),\n resize: () => {\n this._handleWindowResize();\n },\n };\n }\n addListeners() {\n this._manageListeners(true);\n }\n removeListeners() {\n this._manageListeners(false);\n }\n}\n", + "export var EventType;\n(function (EventType) {\n EventType[\"configAdded\"] = \"configAdded\";\n EventType[\"containerInit\"] = \"containerInit\";\n EventType[\"particlesSetup\"] = \"particlesSetup\";\n EventType[\"containerStarted\"] = \"containerStarted\";\n EventType[\"containerStopped\"] = \"containerStopped\";\n EventType[\"containerDestroyed\"] = \"containerDestroyed\";\n EventType[\"containerPaused\"] = \"containerPaused\";\n EventType[\"containerPlay\"] = \"containerPlay\";\n EventType[\"containerBuilt\"] = \"containerBuilt\";\n EventType[\"particleAdded\"] = \"particleAdded\";\n EventType[\"particleDestroyed\"] = \"particleDestroyed\";\n EventType[\"particleRemoved\"] = \"particleRemoved\";\n})(EventType || (EventType = {}));\n", + "import { isArray, isNull, isString } from \"../../Utils/TypeUtils.js\";\nexport class OptionsColor {\n constructor() {\n this.value = \"\";\n }\n static create(source, data) {\n const color = new OptionsColor();\n color.load(source);\n if (data !== undefined) {\n if (isString(data) || isArray(data)) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (!isNull(data.value)) {\n this.value = data.value;\n }\n }\n}\n", + "import { OptionsColor } from \"../OptionsColor.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class Background {\n constructor() {\n this.color = new OptionsColor();\n this.color.value = \"\";\n this.image = \"\";\n this.position = \"\";\n this.repeat = \"\";\n this.size = \"\";\n this.opacity = 1;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n if (data.position !== undefined) {\n this.position = data.position;\n }\n if (data.repeat !== undefined) {\n this.repeat = data.repeat;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n", + "import { OptionsColor } from \"../OptionsColor.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class BackgroundMaskCover {\n constructor() {\n this.opacity = 1;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n", + "import { isNull, isString } from \"../../../Utils/TypeUtils.js\";\nimport { BackgroundMaskCover } from \"./BackgroundMaskCover.js\";\nexport class BackgroundMask {\n constructor() {\n this.composite = \"destination-out\";\n this.cover = new BackgroundMaskCover();\n this.enable = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.composite !== undefined) {\n this.composite = data.composite;\n }\n if (data.cover !== undefined) {\n const cover = data.cover, color = (isString(data.cover) ? { color: data.cover } : data.cover);\n this.cover.load(cover.color !== undefined || cover.image !== undefined ? cover : { color: color });\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n", + "import { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class FullScreen {\n constructor() {\n this.enable = true;\n this.zIndex = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.zIndex !== undefined) {\n this.zIndex = data.zIndex;\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ClickEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n }\n}\n", + "export var DivType;\n(function (DivType) {\n DivType[\"circle\"] = \"circle\";\n DivType[\"rectangle\"] = \"rectangle\";\n})(DivType || (DivType = {}));\n", + "import { DivType } from \"../../../../Enums/Types/DivType.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class DivEvent {\n constructor() {\n this.selectors = [];\n this.enable = false;\n this.mode = [];\n this.type = DivType.circle;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Parallax {\n constructor() {\n this.enable = false;\n this.force = 2;\n this.smooth = 10;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.force !== undefined) {\n this.force = data.force;\n }\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n }\n}\n", + "import { Parallax } from \"./Parallax.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class HoverEvent {\n constructor() {\n this.enable = false;\n this.mode = [];\n this.parallax = new Parallax();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.parallax.load(data.parallax);\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ResizeEvent {\n constructor() {\n this.delay = 0.5;\n this.enable = true;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.delay !== undefined) {\n this.delay = data.delay;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n", + "import { ClickEvent } from \"./ClickEvent.js\";\nimport { DivEvent } from \"./DivEvent.js\";\nimport { HoverEvent } from \"./HoverEvent.js\";\nimport { ResizeEvent } from \"./ResizeEvent.js\";\nimport { executeOnSingleOrMultiple } from \"../../../../Utils/Utils.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Events {\n constructor() {\n this.onClick = new ClickEvent();\n this.onDiv = new DivEvent();\n this.onHover = new HoverEvent();\n this.resize = new ResizeEvent();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n this.onClick.load(data.onClick);\n const onDiv = data.onDiv;\n if (onDiv !== undefined) {\n this.onDiv = executeOnSingleOrMultiple(onDiv, t => {\n const tmp = new DivEvent();\n tmp.load(t);\n return tmp;\n });\n }\n this.onHover.load(data.onHover);\n this.resize.load(data.resize);\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Modes {\n constructor(engine, container) {\n this._engine = engine;\n this._container = container;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (!this._container) {\n return;\n }\n const interactors = this._engine.interactors.get(this._container);\n if (!interactors) {\n return;\n }\n for (const interactor of interactors) {\n if (!interactor.loadModeOptions) {\n continue;\n }\n interactor.loadModeOptions(this, data);\n }\n }\n}\n", + "import { Events } from \"./Events/Events.js\";\nimport { InteractivityDetect } from \"../../../Enums/InteractivityDetect.js\";\nimport { Modes } from \"./Modes/Modes.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class Interactivity {\n constructor(engine, container) {\n this.detectsOn = InteractivityDetect.window;\n this.events = new Events();\n this.modes = new Modes(engine, container);\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n const detectsOn = data.detectsOn;\n if (detectsOn !== undefined) {\n this.detectsOn = detectsOn;\n }\n this.events.load(data.events);\n this.modes.load(data.modes);\n }\n}\n", + "import { PixelMode } from \"../../Enums/Modes/PixelMode.js\";\nimport { deepExtend } from \"../../Utils/Utils.js\";\nimport { isNull } from \"../../Utils/TypeUtils.js\";\nimport { manualDefaultPosition } from \"../../Core/Utils/Constants.js\";\nexport class ManualParticle {\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.position) {\n this.position = {\n x: data.position.x ?? manualDefaultPosition,\n y: data.position.y ?? manualDefaultPosition,\n mode: data.position.mode ?? PixelMode.percent,\n };\n }\n if (data.options) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n", + "export var ResponsiveMode;\n(function (ResponsiveMode) {\n ResponsiveMode[\"screen\"] = \"screen\";\n ResponsiveMode[\"canvas\"] = \"canvas\";\n})(ResponsiveMode || (ResponsiveMode = {}));\n", + "import { ResponsiveMode } from \"../../Enums/Modes/ResponsiveMode.js\";\nimport { deepExtend } from \"../../Utils/Utils.js\";\nimport { isNull } from \"../../Utils/TypeUtils.js\";\nexport class Responsive {\n constructor() {\n this.maxWidth = Infinity;\n this.options = {};\n this.mode = ResponsiveMode.canvas;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (!isNull(data.maxWidth)) {\n this.maxWidth = data.maxWidth;\n }\n if (!isNull(data.mode)) {\n if (data.mode === ResponsiveMode.screen) {\n this.mode = ResponsiveMode.screen;\n }\n else {\n this.mode = ResponsiveMode.canvas;\n }\n }\n if (!isNull(data.options)) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n", + "export var ThemeMode;\n(function (ThemeMode) {\n ThemeMode[\"any\"] = \"any\";\n ThemeMode[\"dark\"] = \"dark\";\n ThemeMode[\"light\"] = \"light\";\n})(ThemeMode || (ThemeMode = {}));\n", + "import { ThemeMode } from \"../../../Enums/Modes/ThemeMode.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class ThemeDefault {\n constructor() {\n this.auto = false;\n this.mode = ThemeMode.any;\n this.value = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.auto !== undefined) {\n this.auto = data.auto;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n", + "import { ThemeDefault } from \"./ThemeDefault.js\";\nimport { deepExtend } from \"../../../Utils/Utils.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class Theme {\n constructor() {\n this.name = \"\";\n this.default = new ThemeDefault();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n this.default.load(data.default);\n if (data.options !== undefined) {\n this.options = deepExtend({}, data.options);\n }\n }\n}\n", + "import { AnimationMode } from \"../../Enums/Modes/AnimationMode.js\";\nimport { StartValueType } from \"../../Enums/Types/StartValueType.js\";\nimport { isNull } from \"../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../Utils/NumberUtils.js\";\nexport class AnimationOptions {\n constructor() {\n this.count = 0;\n this.enable = false;\n this.speed = 1;\n this.decay = 0;\n this.delay = 0;\n this.sync = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.count !== undefined) {\n this.count = setRangeValue(data.count);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.delay !== undefined) {\n this.delay = setRangeValue(data.delay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\nexport class RangedAnimationOptions extends AnimationOptions {\n constructor() {\n super();\n this.mode = AnimationMode.auto;\n this.startValue = StartValueType.random;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.startValue !== undefined) {\n this.startValue = data.startValue;\n }\n }\n}\n", + "import { AnimationOptions } from \"./AnimationOptions.js\";\nimport { isNull } from \"../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../Utils/NumberUtils.js\";\nexport class ColorAnimation extends AnimationOptions {\n constructor() {\n super();\n this.offset = 0;\n this.sync = true;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n }\n}\n", + "import { ColorAnimation } from \"./ColorAnimation.js\";\nimport { isNull } from \"../../Utils/TypeUtils.js\";\nexport class HslAnimation {\n constructor() {\n this.h = new ColorAnimation();\n this.s = new ColorAnimation();\n this.l = new ColorAnimation();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n this.h.load(data.h);\n this.s.load(data.s);\n this.l.load(data.l);\n }\n}\n", + "import { isArray, isNull, isString } from \"../../Utils/TypeUtils.js\";\nimport { HslAnimation } from \"./HslAnimation.js\";\nimport { OptionsColor } from \"./OptionsColor.js\";\nexport class AnimatableColor extends OptionsColor {\n constructor() {\n super();\n this.animation = new HslAnimation();\n }\n static create(source, data) {\n const color = new AnimatableColor();\n color.load(source);\n if (data !== undefined) {\n if (isString(data) || isArray(data)) {\n color.load({ value: data });\n }\n else {\n color.load(data);\n }\n }\n return color;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n const colorAnimation = data.animation;\n if (colorAnimation !== undefined) {\n if (colorAnimation.enable !== undefined) {\n this.animation.h.load(colorAnimation);\n }\n else {\n this.animation.load(data.animation);\n }\n }\n }\n}\n", + "export var CollisionMode;\n(function (CollisionMode) {\n CollisionMode[\"absorb\"] = \"absorb\";\n CollisionMode[\"bounce\"] = \"bounce\";\n CollisionMode[\"destroy\"] = \"destroy\";\n})(CollisionMode || (CollisionMode = {}));\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class CollisionsAbsorb {\n constructor() {\n this.speed = 2;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class CollisionsOverlap {\n constructor() {\n this.enable = true;\n this.retries = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.retries !== undefined) {\n this.retries = data.retries;\n }\n }\n}\n", + "import { AnimationOptions, RangedAnimationOptions } from \"./AnimationOptions.js\";\nimport { isNull } from \"../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../Utils/NumberUtils.js\";\nexport class ValueWithRandom {\n constructor() {\n this.value = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (!isNull(data.value)) {\n this.value = setRangeValue(data.value);\n }\n }\n}\nexport class AnimationValueWithRandom extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new AnimationOptions();\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n const animation = data.animation;\n if (animation !== undefined) {\n this.animation.load(animation);\n }\n }\n}\nexport class RangedAnimationValueWithRandom extends AnimationValueWithRandom {\n constructor() {\n super();\n this.animation = new RangedAnimationOptions();\n }\n load(data) {\n super.load(data);\n }\n}\n", + "import { ValueWithRandom } from \"../../ValueWithRandom.js\";\nexport class ParticlesBounceFactor extends ValueWithRandom {\n constructor() {\n super();\n this.value = 1;\n }\n}\n", + "import { ParticlesBounceFactor } from \"./ParticlesBounceFactor.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ParticlesBounce {\n constructor() {\n this.horizontal = new ParticlesBounceFactor();\n this.vertical = new ParticlesBounceFactor();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n this.horizontal.load(data.horizontal);\n this.vertical.load(data.vertical);\n }\n}\n", + "import { CollisionMode } from \"../../../../Enums/Modes/CollisionMode.js\";\nimport { CollisionsAbsorb } from \"./CollisionsAbsorb.js\";\nimport { CollisionsOverlap } from \"./CollisionsOverlap.js\";\nimport { ParticlesBounce } from \"../Bounce/ParticlesBounce.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils.js\";\nexport class Collisions {\n constructor() {\n this.absorb = new CollisionsAbsorb();\n this.bounce = new ParticlesBounce();\n this.enable = false;\n this.maxSpeed = 50;\n this.mode = CollisionMode.bounce;\n this.overlap = new CollisionsOverlap();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n this.absorb.load(data.absorb);\n this.bounce.load(data.bounce);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = setRangeValue(data.maxSpeed);\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n this.overlap.load(data.overlap);\n }\n}\n", + "import { deepExtend } from \"../../../../Utils/Utils.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Effect {\n constructor() {\n this.close = true;\n this.fill = true;\n this.options = {};\n this.type = [];\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n const options = data.options;\n if (options !== undefined) {\n for (const effect in options) {\n const item = options[effect];\n if (item) {\n this.options[effect] = deepExtend(this.options[effect] ?? {}, item);\n }\n }\n }\n if (data.close !== undefined) {\n this.close = data.close;\n }\n if (data.fill !== undefined) {\n this.fill = data.fill;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils.js\";\nexport class MoveAngle {\n constructor() {\n this.offset = 0;\n this.value = 90;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.offset !== undefined) {\n this.offset = setRangeValue(data.offset);\n }\n if (data.value !== undefined) {\n this.value = setRangeValue(data.value);\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils.js\";\nexport class MoveAttract {\n constructor() {\n this.distance = 200;\n this.enable = false;\n this.rotate = {\n x: 3000,\n y: 3000,\n };\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = setRangeValue(data.distance);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.rotate) {\n const rotateX = data.rotate.x;\n if (rotateX !== undefined) {\n this.rotate.x = rotateX;\n }\n const rotateY = data.rotate.y;\n if (rotateY !== undefined) {\n this.rotate.y = rotateY;\n }\n }\n }\n}\n", + "import { PixelMode } from \"../../../../Enums/Modes/PixelMode.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class MoveCenter {\n constructor() {\n this.x = 50;\n this.y = 50;\n this.mode = PixelMode.percent;\n this.radius = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.x !== undefined) {\n this.x = data.x;\n }\n if (data.y !== undefined) {\n this.y = data.y;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils.js\";\nexport class MoveGravity {\n constructor() {\n this.acceleration = 9.81;\n this.enable = false;\n this.inverse = false;\n this.maxSpeed = 50;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.inverse !== undefined) {\n this.inverse = data.inverse;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = setRangeValue(data.maxSpeed);\n }\n }\n}\n", + "import { ValueWithRandom } from \"../../../ValueWithRandom.js\";\nimport { deepExtend } from \"../../../../../Utils/Utils.js\";\nimport { isNull } from \"../../../../../Utils/TypeUtils.js\";\nexport class MovePath {\n constructor() {\n this.clamp = true;\n this.delay = new ValueWithRandom();\n this.enable = false;\n this.options = {};\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.clamp !== undefined) {\n this.clamp = data.clamp;\n }\n this.delay.load(data.delay);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.generator = data.generator;\n if (data.options) {\n this.options = deepExtend(this.options, data.options);\n }\n }\n}\n", + "import { OptionsColor } from \"../../OptionsColor.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class MoveTrailFill {\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.image !== undefined) {\n this.image = data.image;\n }\n }\n}\n", + "import { MoveTrailFill } from \"./MoveTrailFill.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class MoveTrail {\n constructor() {\n this.enable = false;\n this.length = 10;\n this.fill = new MoveTrailFill();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.fill !== undefined) {\n this.fill.load(data.fill);\n }\n if (data.length !== undefined) {\n this.length = data.length;\n }\n }\n}\n", + "export var OutMode;\n(function (OutMode) {\n OutMode[\"bounce\"] = \"bounce\";\n OutMode[\"none\"] = \"none\";\n OutMode[\"out\"] = \"out\";\n OutMode[\"destroy\"] = \"destroy\";\n OutMode[\"split\"] = \"split\";\n})(OutMode || (OutMode = {}));\n", + "import { OutMode } from \"../../../../Enums/Modes/OutMode.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class OutModes {\n constructor() {\n this.default = OutMode.out;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n this.bottom = data.bottom ?? data.default;\n this.left = data.left ?? data.default;\n this.right = data.right ?? data.default;\n this.top = data.top ?? data.default;\n }\n}\n", + "import { deepExtend } from \"../../../../Utils/Utils.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils.js\";\nexport class Spin {\n constructor() {\n this.acceleration = 0;\n this.enable = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.acceleration !== undefined) {\n this.acceleration = setRangeValue(data.acceleration);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.position) {\n this.position = deepExtend({}, data.position);\n }\n }\n}\n", + "import { MoveDirection } from \"../../../../Enums/Directions/MoveDirection.js\";\nimport { isNull, isNumber, isObject } from \"../../../../Utils/TypeUtils.js\";\nimport { MoveAngle } from \"./MoveAngle.js\";\nimport { MoveAttract } from \"./MoveAttract.js\";\nimport { MoveCenter } from \"./MoveCenter.js\";\nimport { MoveGravity } from \"./MoveGravity.js\";\nimport { MovePath } from \"./Path/MovePath.js\";\nimport { MoveTrail } from \"./MoveTrail.js\";\nimport { OutModes } from \"./OutModes.js\";\nimport { Spin } from \"./Spin.js\";\nimport { setRangeValue } from \"../../../../Utils/NumberUtils.js\";\nexport class Move {\n constructor() {\n this.angle = new MoveAngle();\n this.attract = new MoveAttract();\n this.center = new MoveCenter();\n this.decay = 0;\n this.distance = {};\n this.direction = MoveDirection.none;\n this.drift = 0;\n this.enable = false;\n this.gravity = new MoveGravity();\n this.path = new MovePath();\n this.outModes = new OutModes();\n this.random = false;\n this.size = false;\n this.speed = 2;\n this.spin = new Spin();\n this.straight = false;\n this.trail = new MoveTrail();\n this.vibrate = false;\n this.warp = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n this.angle.load(isNumber(data.angle) ? { value: data.angle } : data.angle);\n this.attract.load(data.attract);\n this.center.load(data.center);\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n if (data.distance !== undefined) {\n this.distance = isNumber(data.distance)\n ? {\n horizontal: data.distance,\n vertical: data.distance,\n }\n : { ...data.distance };\n }\n if (data.drift !== undefined) {\n this.drift = setRangeValue(data.drift);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n this.gravity.load(data.gravity);\n const outModes = data.outModes;\n if (outModes !== undefined) {\n if (isObject(outModes)) {\n this.outModes.load(outModes);\n }\n else {\n this.outModes.load({\n default: outModes,\n });\n }\n }\n this.path.load(data.path);\n if (data.random !== undefined) {\n this.random = data.random;\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n this.spin.load(data.spin);\n if (data.straight !== undefined) {\n this.straight = data.straight;\n }\n this.trail.load(data.trail);\n if (data.vibrate !== undefined) {\n this.vibrate = data.vibrate;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n", + "import { DestroyType } from \"../../../../Enums/Types/DestroyType.js\";\nimport { RangedAnimationOptions } from \"../../AnimationOptions.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class OpacityAnimation extends RangedAnimationOptions {\n constructor() {\n super();\n this.destroy = DestroyType.none;\n this.speed = 2;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n }\n}\n", + "import { OpacityAnimation } from \"./OpacityAnimation.js\";\nimport { RangedAnimationValueWithRandom } from \"../../ValueWithRandom.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Opacity extends RangedAnimationValueWithRandom {\n constructor() {\n super();\n this.animation = new OpacityAnimation();\n this.value = 1;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n super.load(data);\n const animation = data.animation;\n if (animation !== undefined) {\n this.animation.load(animation);\n }\n }\n}\n", + "import { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ParticlesDensity {\n constructor() {\n this.enable = false;\n this.width = 1920;\n this.height = 1080;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n const width = data.width;\n if (width !== undefined) {\n this.width = width;\n }\n const height = data.height;\n if (height !== undefined) {\n this.height = height;\n }\n }\n}\n", + "export var LimitMode;\n(function (LimitMode) {\n LimitMode[\"delete\"] = \"delete\";\n LimitMode[\"wait\"] = \"wait\";\n})(LimitMode || (LimitMode = {}));\n", + "import { LimitMode } from \"../../../../Enums/Modes/LimitMode.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ParticlesNumberLimit {\n constructor() {\n this.mode = LimitMode.delete;\n this.value = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.mode !== undefined) {\n this.mode = data.mode;\n }\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n", + "import { ParticlesDensity } from \"./ParticlesDensity.js\";\nimport { ParticlesNumberLimit } from \"./ParticlesNumberLimit.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ParticlesNumber {\n constructor() {\n this.density = new ParticlesDensity();\n this.limit = new ParticlesNumberLimit();\n this.value = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n this.density.load(data.density);\n this.limit.load(data.limit);\n if (data.value !== undefined) {\n this.value = data.value;\n }\n }\n}\n", + "import { OptionsColor } from \"../OptionsColor.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class Shadow {\n constructor() {\n this.blur = 0;\n this.color = new OptionsColor();\n this.enable = false;\n this.offset = {\n x: 0,\n y: 0,\n };\n this.color.value = \"#000\";\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.offset === undefined) {\n return;\n }\n if (data.offset.x !== undefined) {\n this.offset.x = data.offset.x;\n }\n if (data.offset.y !== undefined) {\n this.offset.y = data.offset.y;\n }\n }\n}\n", + "import { deepExtend } from \"../../../../Utils/Utils.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Shape {\n constructor() {\n this.close = true;\n this.fill = true;\n this.options = {};\n this.type = \"circle\";\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n const options = data.options;\n if (options !== undefined) {\n for (const shape in options) {\n const item = options[shape];\n if (item) {\n this.options[shape] = deepExtend(this.options[shape] ?? {}, item);\n }\n }\n }\n if (data.close !== undefined) {\n this.close = data.close;\n }\n if (data.fill !== undefined) {\n this.fill = data.fill;\n }\n if (data.type !== undefined) {\n this.type = data.type;\n }\n }\n}\n", + "import { DestroyType } from \"../../../../Enums/Types/DestroyType.js\";\nimport { RangedAnimationOptions } from \"../../AnimationOptions.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class SizeAnimation extends RangedAnimationOptions {\n constructor() {\n super();\n this.destroy = DestroyType.none;\n this.speed = 5;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.destroy !== undefined) {\n this.destroy = data.destroy;\n }\n }\n}\n", + "import { RangedAnimationValueWithRandom } from \"../../ValueWithRandom.js\";\nimport { SizeAnimation } from \"./SizeAnimation.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class Size extends RangedAnimationValueWithRandom {\n constructor() {\n super();\n this.animation = new SizeAnimation();\n this.value = 3;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n const animation = data.animation;\n if (animation !== undefined) {\n this.animation.load(animation);\n }\n }\n}\n", + "import { AnimatableColor } from \"../AnimatableColor.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nimport { setRangeValue } from \"../../../Utils/NumberUtils.js\";\nexport class Stroke {\n constructor() {\n this.width = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = AnimatableColor.create(this.color, data.color);\n }\n if (data.width !== undefined) {\n this.width = setRangeValue(data.width);\n }\n if (data.opacity !== undefined) {\n this.opacity = setRangeValue(data.opacity);\n }\n }\n}\n", + "import { ValueWithRandom } from \"../../ValueWithRandom.js\";\nimport { isNull } from \"../../../../Utils/TypeUtils.js\";\nexport class ZIndex extends ValueWithRandom {\n constructor() {\n super();\n this.opacityRate = 1;\n this.sizeRate = 1;\n this.velocityRate = 1;\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.opacityRate !== undefined) {\n this.opacityRate = data.opacityRate;\n }\n if (data.sizeRate !== undefined) {\n this.sizeRate = data.sizeRate;\n }\n if (data.velocityRate !== undefined) {\n this.velocityRate = data.velocityRate;\n }\n }\n}\n", + "import { deepExtend, executeOnSingleOrMultiple } from \"../../../Utils/Utils.js\";\nimport { AnimatableColor } from \"../AnimatableColor.js\";\nimport { Collisions } from \"./Collisions/Collisions.js\";\nimport { Effect } from \"./Effect/Effect.js\";\nimport { Move } from \"./Move/Move.js\";\nimport { Opacity } from \"./Opacity/Opacity.js\";\nimport { ParticlesBounce } from \"./Bounce/ParticlesBounce.js\";\nimport { ParticlesNumber } from \"./Number/ParticlesNumber.js\";\nimport { Shadow } from \"./Shadow.js\";\nimport { Shape } from \"./Shape/Shape.js\";\nimport { Size } from \"./Size/Size.js\";\nimport { Stroke } from \"./Stroke.js\";\nimport { ZIndex } from \"./ZIndex/ZIndex.js\";\nimport { isNull } from \"../../../Utils/TypeUtils.js\";\nexport class ParticlesOptions {\n constructor(engine, container) {\n this._engine = engine;\n this._container = container;\n this.bounce = new ParticlesBounce();\n this.collisions = new Collisions();\n this.color = new AnimatableColor();\n this.color.value = \"#fff\";\n this.effect = new Effect();\n this.groups = {};\n this.move = new Move();\n this.number = new ParticlesNumber();\n this.opacity = new Opacity();\n this.reduceDuplicates = false;\n this.shadow = new Shadow();\n this.shape = new Shape();\n this.size = new Size();\n this.stroke = new Stroke();\n this.zIndex = new ZIndex();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.groups !== undefined) {\n for (const group of Object.keys(data.groups)) {\n if (!Object.hasOwn(data.groups, group)) {\n continue;\n }\n const item = data.groups[group];\n if (item !== undefined) {\n this.groups[group] = deepExtend(this.groups[group] ?? {}, item);\n }\n }\n }\n if (data.reduceDuplicates !== undefined) {\n this.reduceDuplicates = data.reduceDuplicates;\n }\n this.bounce.load(data.bounce);\n this.color.load(AnimatableColor.create(this.color, data.color));\n this.effect.load(data.effect);\n this.move.load(data.move);\n this.number.load(data.number);\n this.opacity.load(data.opacity);\n this.shape.load(data.shape);\n this.size.load(data.size);\n this.shadow.load(data.shadow);\n this.zIndex.load(data.zIndex);\n this.collisions.load(data.collisions);\n if (data.interactivity !== undefined) {\n this.interactivity = deepExtend({}, data.interactivity);\n }\n const strokeToLoad = data.stroke;\n if (strokeToLoad) {\n this.stroke = executeOnSingleOrMultiple(strokeToLoad, t => {\n const tmp = new Stroke();\n tmp.load(t);\n return tmp;\n });\n }\n if (this._container) {\n const updaters = this._engine.updaters.get(this._container);\n if (updaters) {\n for (const updater of updaters) {\n if (updater.loadOptions) {\n updater.loadOptions(this, data);\n }\n }\n }\n const interactors = this._engine.interactors.get(this._container);\n if (interactors) {\n for (const interactor of interactors) {\n if (interactor.loadParticlesOptions) {\n interactor.loadParticlesOptions(this, data);\n }\n }\n }\n }\n }\n}\n", + "import { ParticlesOptions } from \"../Options/Classes/Particles/ParticlesOptions.js\";\nexport function loadOptions(options, ...sourceOptionsArr) {\n for (const sourceOptions of sourceOptionsArr) {\n options.load(sourceOptions);\n }\n}\nexport function loadParticlesOptions(engine, container, ...sourceOptionsArr) {\n const options = new ParticlesOptions(engine, container);\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\n", + "import { deepExtend, executeOnSingleOrMultiple, safeMatchMedia } from \"../../Utils/Utils.js\";\nimport { isBoolean, isNull } from \"../../Utils/TypeUtils.js\";\nimport { Background } from \"./Background/Background.js\";\nimport { BackgroundMask } from \"./BackgroundMask/BackgroundMask.js\";\nimport { FullScreen } from \"./FullScreen/FullScreen.js\";\nimport { Interactivity } from \"./Interactivity/Interactivity.js\";\nimport { ManualParticle } from \"./ManualParticle.js\";\nimport { Responsive } from \"./Responsive.js\";\nimport { ResponsiveMode } from \"../../Enums/Modes/ResponsiveMode.js\";\nimport { Theme } from \"./Theme/Theme.js\";\nimport { ThemeMode } from \"../../Enums/Modes/ThemeMode.js\";\nimport { loadParticlesOptions } from \"../../Utils/OptionsUtils.js\";\nimport { setRangeValue } from \"../../Utils/NumberUtils.js\";\nexport class Options {\n constructor(engine, container) {\n this._findDefaultTheme = mode => {\n return (this.themes.find(theme => theme.default.value && theme.default.mode === mode) ??\n this.themes.find(theme => theme.default.value && theme.default.mode === ThemeMode.any));\n };\n this._importPreset = preset => {\n this.load(this._engine.getPreset(preset));\n };\n this._engine = engine;\n this._container = container;\n this.autoPlay = true;\n this.background = new Background();\n this.backgroundMask = new BackgroundMask();\n this.clear = true;\n this.defaultThemes = {};\n this.delay = 0;\n this.fullScreen = new FullScreen();\n this.detectRetina = true;\n this.duration = 0;\n this.fpsLimit = 120;\n this.interactivity = new Interactivity(engine, container);\n this.manualParticles = [];\n this.particles = loadParticlesOptions(this._engine, this._container);\n this.pauseOnBlur = true;\n this.pauseOnOutsideViewport = true;\n this.responsive = [];\n this.smooth = false;\n this.style = {};\n this.themes = [];\n this.zLayers = 100;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.preset !== undefined) {\n executeOnSingleOrMultiple(data.preset, preset => this._importPreset(preset));\n }\n if (data.autoPlay !== undefined) {\n this.autoPlay = data.autoPlay;\n }\n if (data.clear !== undefined) {\n this.clear = data.clear;\n }\n if (data.key !== undefined) {\n this.key = data.key;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n if (data.delay !== undefined) {\n this.delay = setRangeValue(data.delay);\n }\n const detectRetina = data.detectRetina;\n if (detectRetina !== undefined) {\n this.detectRetina = detectRetina;\n }\n if (data.duration !== undefined) {\n this.duration = setRangeValue(data.duration);\n }\n const fpsLimit = data.fpsLimit;\n if (fpsLimit !== undefined) {\n this.fpsLimit = fpsLimit;\n }\n if (data.pauseOnBlur !== undefined) {\n this.pauseOnBlur = data.pauseOnBlur;\n }\n if (data.pauseOnOutsideViewport !== undefined) {\n this.pauseOnOutsideViewport = data.pauseOnOutsideViewport;\n }\n if (data.zLayers !== undefined) {\n this.zLayers = data.zLayers;\n }\n this.background.load(data.background);\n const fullScreen = data.fullScreen;\n if (isBoolean(fullScreen)) {\n this.fullScreen.enable = fullScreen;\n }\n else {\n this.fullScreen.load(fullScreen);\n }\n this.backgroundMask.load(data.backgroundMask);\n this.interactivity.load(data.interactivity);\n if (data.manualParticles) {\n this.manualParticles = data.manualParticles.map(t => {\n const tmp = new ManualParticle();\n tmp.load(t);\n return tmp;\n });\n }\n this.particles.load(data.particles);\n this.style = deepExtend(this.style, data.style);\n this._engine.loadOptions(this, data);\n if (data.smooth !== undefined) {\n this.smooth = data.smooth;\n }\n const interactors = this._engine.interactors.get(this._container);\n if (interactors) {\n for (const interactor of interactors) {\n if (interactor.loadOptions) {\n interactor.loadOptions(this, data);\n }\n }\n }\n if (data.responsive !== undefined) {\n for (const responsive of data.responsive) {\n const optResponsive = new Responsive();\n optResponsive.load(responsive);\n this.responsive.push(optResponsive);\n }\n }\n this.responsive.sort((a, b) => a.maxWidth - b.maxWidth);\n if (data.themes !== undefined) {\n for (const theme of data.themes) {\n const existingTheme = this.themes.find(t => t.name === theme.name);\n if (!existingTheme) {\n const optTheme = new Theme();\n optTheme.load(theme);\n this.themes.push(optTheme);\n }\n else {\n existingTheme.load(theme);\n }\n }\n }\n this.defaultThemes.dark = this._findDefaultTheme(ThemeMode.dark)?.name;\n this.defaultThemes.light = this._findDefaultTheme(ThemeMode.light)?.name;\n }\n setResponsive(width, pxRatio, defaultOptions) {\n this.load(defaultOptions);\n const responsiveOptions = this.responsive.find(t => t.mode === ResponsiveMode.screen && screen ? t.maxWidth > screen.availWidth : t.maxWidth * pxRatio > width);\n this.load(responsiveOptions?.options);\n return responsiveOptions?.maxWidth;\n }\n setTheme(name) {\n if (name) {\n const chosenTheme = this.themes.find(theme => theme.name === name);\n if (chosenTheme) {\n this.load(chosenTheme.options);\n }\n }\n else {\n const mediaMatch = safeMatchMedia(\"(prefers-color-scheme: dark)\"), clientDarkMode = mediaMatch?.matches, defaultTheme = this._findDefaultTheme(clientDarkMode ? ThemeMode.dark : ThemeMode.light);\n if (defaultTheme) {\n this.load(defaultTheme.options);\n }\n }\n }\n}\n", + "export var InteractorType;\n(function (InteractorType) {\n InteractorType[\"external\"] = \"external\";\n InteractorType[\"particles\"] = \"particles\";\n})(InteractorType || (InteractorType = {}));\n", + "import { InteractorType } from \"../../Enums/Types/InteractorType.js\";\nexport class InteractionManager {\n constructor(engine, container) {\n this.container = container;\n this._engine = engine;\n this._interactors = [];\n this._externalInteractors = [];\n this._particleInteractors = [];\n }\n externalInteract(delta) {\n for (const interactor of this._externalInteractors) {\n if (interactor.isEnabled()) {\n interactor.interact(delta);\n }\n }\n }\n handleClickMode(mode) {\n for (const interactor of this._externalInteractors) {\n interactor.handleClickMode?.(mode);\n }\n }\n async init() {\n this._interactors = await this._engine.getInteractors(this.container, true);\n this._externalInteractors = [];\n this._particleInteractors = [];\n for (const interactor of this._interactors) {\n switch (interactor.type) {\n case InteractorType.external:\n this._externalInteractors.push(interactor);\n break;\n case InteractorType.particles:\n this._particleInteractors.push(interactor);\n break;\n }\n interactor.init();\n }\n }\n particlesInteract(particle, delta) {\n for (const interactor of this._externalInteractors) {\n interactor.clear(particle, delta);\n }\n for (const interactor of this._particleInteractors) {\n if (interactor.isEnabled(particle)) {\n interactor.interact(particle, delta);\n }\n }\n }\n reset(particle) {\n for (const interactor of this._externalInteractors) {\n if (interactor.isEnabled()) {\n interactor.reset(particle);\n }\n }\n for (const interactor of this._particleInteractors) {\n if (interactor.isEnabled(particle)) {\n interactor.reset(particle);\n }\n }\n }\n}\n", + "export var ParticleOutType;\n(function (ParticleOutType) {\n ParticleOutType[\"normal\"] = \"normal\";\n ParticleOutType[\"inside\"] = \"inside\";\n ParticleOutType[\"outside\"] = \"outside\";\n})(ParticleOutType || (ParticleOutType = {}));\n", + "import { Vector, Vector3d } from \"./Utils/Vectors.js\";\nimport { calcExactPositionOrRandomFromSize, clamp, degToRad, getDistance, getParticleBaseVelocity, getParticleDirectionAngle, getRandom, getRangeValue, randomInRange, setRangeValue, } from \"../Utils/NumberUtils.js\";\nimport { decayOffset, defaultRadius, defaultRetryCount, double, errorPrefix, half, millisecondsToSeconds, minRetries, minZ, none, randomColorValue, rollFactor, squareExp, tryCountIncrement, } from \"./Utils/Constants.js\";\nimport { deepExtend, getPosition, initParticleNumericAnimationValue, isInArray, itemFromSingleOrMultiple, } from \"../Utils/Utils.js\";\nimport { getHslFromAnimation, rangeColorToRgb } from \"../Utils/ColorUtils.js\";\nimport { EventType } from \"../Enums/Types/EventType.js\";\nimport { Interactivity } from \"../Options/Classes/Interactivity/Interactivity.js\";\nimport { MoveDirection } from \"../Enums/Directions/MoveDirection.js\";\nimport { OutMode } from \"../Enums/Modes/OutMode.js\";\nimport { ParticleOutType } from \"../Enums/Types/ParticleOutType.js\";\nimport { PixelMode } from \"../Enums/Modes/PixelMode.js\";\nimport { alterHsl } from \"../Utils/CanvasUtils.js\";\nimport { loadParticlesOptions } from \"../Utils/OptionsUtils.js\";\nfunction loadEffectData(effect, effectOptions, id, reduceDuplicates) {\n const effectData = effectOptions.options[effect];\n if (!effectData) {\n return;\n }\n return deepExtend({\n close: effectOptions.close,\n fill: effectOptions.fill,\n }, itemFromSingleOrMultiple(effectData, id, reduceDuplicates));\n}\nfunction loadShapeData(shape, shapeOptions, id, reduceDuplicates) {\n const shapeData = shapeOptions.options[shape];\n if (!shapeData) {\n return;\n }\n return deepExtend({\n close: shapeOptions.close,\n fill: shapeOptions.fill,\n }, itemFromSingleOrMultiple(shapeData, id, reduceDuplicates));\n}\nfunction fixOutMode(data) {\n if (!isInArray(data.outMode, data.checkModes)) {\n return;\n }\n const diameter = data.radius * double;\n if (data.coord > data.maxCoord - diameter) {\n data.setCb(-data.radius);\n }\n else if (data.coord < diameter) {\n data.setCb(data.radius);\n }\n}\nexport class Particle {\n constructor(engine, container) {\n this.container = container;\n this._calcPosition = (container, position, zIndex, tryCount = defaultRetryCount) => {\n for (const plugin of container.plugins.values()) {\n const pluginPos = plugin.particlePosition !== undefined ? plugin.particlePosition(position, this) : undefined;\n if (pluginPos) {\n return Vector3d.create(pluginPos.x, pluginPos.y, zIndex);\n }\n }\n const canvasSize = container.canvas.size, exactPosition = calcExactPositionOrRandomFromSize({\n size: canvasSize,\n position: position,\n }), pos = Vector3d.create(exactPosition.x, exactPosition.y, zIndex), radius = this.getRadius(), outModes = this.options.move.outModes, fixHorizontal = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [OutMode.bounce],\n coord: pos.x,\n maxCoord: container.canvas.size.width,\n setCb: (value) => (pos.x += value),\n radius,\n });\n }, fixVertical = (outMode) => {\n fixOutMode({\n outMode,\n checkModes: [OutMode.bounce],\n coord: pos.y,\n maxCoord: container.canvas.size.height,\n setCb: (value) => (pos.y += value),\n radius,\n });\n };\n fixHorizontal(outModes.left ?? outModes.default);\n fixHorizontal(outModes.right ?? outModes.default);\n fixVertical(outModes.top ?? outModes.default);\n fixVertical(outModes.bottom ?? outModes.default);\n if (this._checkOverlap(pos, tryCount)) {\n return this._calcPosition(container, undefined, zIndex, tryCount + tryCountIncrement);\n }\n return pos;\n };\n this._calculateVelocity = () => {\n const baseVelocity = getParticleBaseVelocity(this.direction), res = baseVelocity.copy(), moveOptions = this.options.move;\n if (moveOptions.direction === MoveDirection.inside || moveOptions.direction === MoveDirection.outside) {\n return res;\n }\n const rad = degToRad(getRangeValue(moveOptions.angle.value)), radOffset = degToRad(getRangeValue(moveOptions.angle.offset)), range = {\n left: radOffset - rad * half,\n right: radOffset + rad * half,\n };\n if (!moveOptions.straight) {\n res.angle += randomInRange(setRangeValue(range.left, range.right));\n }\n if (moveOptions.random && typeof moveOptions.speed === \"number\") {\n res.length *= getRandom();\n }\n return res;\n };\n this._checkOverlap = (pos, tryCount = defaultRetryCount) => {\n const collisionsOptions = this.options.collisions, radius = this.getRadius();\n if (!collisionsOptions.enable) {\n return false;\n }\n const overlapOptions = collisionsOptions.overlap;\n if (overlapOptions.enable) {\n return false;\n }\n const retries = overlapOptions.retries;\n if (retries >= minRetries && tryCount > retries) {\n throw new Error(`${errorPrefix} particle is overlapping and can't be placed`);\n }\n return !!this.container.particles.find(particle => getDistance(pos, particle.position) < radius + particle.getRadius());\n };\n this._getRollColor = color => {\n if (!color || !this.roll || (!this.backColor && !this.roll.alter)) {\n return color;\n }\n const backFactor = this.roll.horizontal && this.roll.vertical ? double * rollFactor : rollFactor, backSum = this.roll.horizontal ? Math.PI * half : none, rolled = Math.floor(((this.roll.angle ?? none) + backSum) / (Math.PI / backFactor)) % double;\n if (!rolled) {\n return color;\n }\n if (this.backColor) {\n return this.backColor;\n }\n if (this.roll.alter) {\n return alterHsl(color, this.roll.alter.type, this.roll.alter.value);\n }\n return color;\n };\n this._initPosition = position => {\n const container = this.container, zIndexValue = getRangeValue(this.options.zIndex.value);\n this.position = this._calcPosition(container, position, clamp(zIndexValue, minZ, container.zLayers));\n this.initialPosition = this.position.copy();\n const canvasSize = container.canvas.size;\n this.moveCenter = {\n ...getPosition(this.options.move.center, canvasSize),\n radius: this.options.move.center.radius ?? defaultRadius,\n mode: this.options.move.center.mode ?? PixelMode.percent,\n };\n this.direction = getParticleDirectionAngle(this.options.move.direction, this.position, this.moveCenter);\n switch (this.options.move.direction) {\n case MoveDirection.inside:\n this.outType = ParticleOutType.inside;\n break;\n case MoveDirection.outside:\n this.outType = ParticleOutType.outside;\n break;\n }\n this.offset = Vector.origin;\n };\n this._engine = engine;\n }\n destroy(override) {\n if (this.unbreakable || this.destroyed) {\n return;\n }\n this.destroyed = true;\n this.bubble.inRange = false;\n this.slow.inRange = false;\n const container = this.container, pathGenerator = this.pathGenerator, shapeDrawer = container.shapeDrawers.get(this.shape);\n shapeDrawer?.particleDestroy?.(this);\n for (const plugin of container.plugins.values()) {\n plugin.particleDestroyed?.(this, override);\n }\n for (const updater of container.particles.updaters) {\n updater.particleDestroyed?.(this, override);\n }\n pathGenerator?.reset(this);\n this._engine.dispatchEvent(EventType.particleDestroyed, {\n container: this.container,\n data: {\n particle: this,\n },\n });\n }\n draw(delta) {\n const container = this.container, canvas = container.canvas;\n for (const plugin of container.plugins.values()) {\n canvas.drawParticlePlugin(plugin, this, delta);\n }\n canvas.drawParticle(this, delta);\n }\n getFillColor() {\n return this._getRollColor(this.bubble.color ?? getHslFromAnimation(this.color));\n }\n getMass() {\n return this.getRadius() ** squareExp * Math.PI * half;\n }\n getPosition() {\n return {\n x: this.position.x + this.offset.x,\n y: this.position.y + this.offset.y,\n z: this.position.z,\n };\n }\n getRadius() {\n return this.bubble.radius ?? this.size.value;\n }\n getStrokeColor() {\n return this._getRollColor(this.bubble.color ?? getHslFromAnimation(this.strokeColor));\n }\n init(id, position, overrideOptions, group) {\n const container = this.container, engine = this._engine;\n this.id = id;\n this.group = group;\n this.effectClose = true;\n this.effectFill = true;\n this.shapeClose = true;\n this.shapeFill = true;\n this.pathRotation = false;\n this.lastPathTime = 0;\n this.destroyed = false;\n this.unbreakable = false;\n this.isRotating = false;\n this.rotation = 0;\n this.misplaced = false;\n this.retina = {\n maxDistance: {},\n };\n this.outType = ParticleOutType.normal;\n this.ignoresResizeRatio = true;\n const pxRatio = container.retina.pixelRatio, mainOptions = container.actualOptions, particlesOptions = loadParticlesOptions(this._engine, container, mainOptions.particles), { reduceDuplicates } = particlesOptions, effectType = particlesOptions.effect.type, shapeType = particlesOptions.shape.type;\n this.effect = itemFromSingleOrMultiple(effectType, this.id, reduceDuplicates);\n this.shape = itemFromSingleOrMultiple(shapeType, this.id, reduceDuplicates);\n const effectOptions = particlesOptions.effect, shapeOptions = particlesOptions.shape;\n if (overrideOptions) {\n if (overrideOptions.effect?.type) {\n const overrideEffectType = overrideOptions.effect.type, effect = itemFromSingleOrMultiple(overrideEffectType, this.id, reduceDuplicates);\n if (effect) {\n this.effect = effect;\n effectOptions.load(overrideOptions.effect);\n }\n }\n if (overrideOptions.shape?.type) {\n const overrideShapeType = overrideOptions.shape.type, shape = itemFromSingleOrMultiple(overrideShapeType, this.id, reduceDuplicates);\n if (shape) {\n this.shape = shape;\n shapeOptions.load(overrideOptions.shape);\n }\n }\n }\n if (this.effect === randomColorValue) {\n const availableEffects = [...this.container.effectDrawers.keys()];\n this.effect = availableEffects[Math.floor(getRandom() * availableEffects.length)];\n }\n if (this.shape === randomColorValue) {\n const availableShapes = [...this.container.shapeDrawers.keys()];\n this.shape = availableShapes[Math.floor(getRandom() * availableShapes.length)];\n }\n this.effectData = loadEffectData(this.effect, effectOptions, this.id, reduceDuplicates);\n this.shapeData = loadShapeData(this.shape, shapeOptions, this.id, reduceDuplicates);\n particlesOptions.load(overrideOptions);\n const effectData = this.effectData;\n if (effectData) {\n particlesOptions.load(effectData.particles);\n }\n const shapeData = this.shapeData;\n if (shapeData) {\n particlesOptions.load(shapeData.particles);\n }\n const interactivity = new Interactivity(engine, container);\n interactivity.load(container.actualOptions.interactivity);\n interactivity.load(particlesOptions.interactivity);\n this.interactivity = interactivity;\n this.effectFill = effectData?.fill ?? particlesOptions.effect.fill;\n this.effectClose = effectData?.close ?? particlesOptions.effect.close;\n this.shapeFill = shapeData?.fill ?? particlesOptions.shape.fill;\n this.shapeClose = shapeData?.close ?? particlesOptions.shape.close;\n this.options = particlesOptions;\n const pathOptions = this.options.move.path;\n this.pathDelay = getRangeValue(pathOptions.delay.value) * millisecondsToSeconds;\n if (pathOptions.generator) {\n this.pathGenerator = this._engine.getPathGenerator(pathOptions.generator);\n if (this.pathGenerator && container.addPath(pathOptions.generator, this.pathGenerator)) {\n this.pathGenerator.init(container);\n }\n }\n container.retina.initParticle(this);\n this.size = initParticleNumericAnimationValue(this.options.size, pxRatio);\n this.bubble = {\n inRange: false,\n };\n this.slow = {\n inRange: false,\n factor: 1,\n };\n this._initPosition(position);\n this.initialVelocity = this._calculateVelocity();\n this.velocity = this.initialVelocity.copy();\n this.moveDecay = decayOffset - getRangeValue(this.options.move.decay);\n const particles = container.particles;\n particles.setLastZIndex(this.position.z);\n this.zIndexFactor = this.position.z / container.zLayers;\n this.sides = 24;\n let effectDrawer = container.effectDrawers.get(this.effect);\n if (!effectDrawer) {\n effectDrawer = this._engine.getEffectDrawer(this.effect);\n if (effectDrawer) {\n container.effectDrawers.set(this.effect, effectDrawer);\n }\n }\n if (effectDrawer?.loadEffect) {\n effectDrawer.loadEffect(this);\n }\n let shapeDrawer = container.shapeDrawers.get(this.shape);\n if (!shapeDrawer) {\n shapeDrawer = this._engine.getShapeDrawer(this.shape);\n if (shapeDrawer) {\n container.shapeDrawers.set(this.shape, shapeDrawer);\n }\n }\n if (shapeDrawer?.loadShape) {\n shapeDrawer.loadShape(this);\n }\n const sideCountFunc = shapeDrawer?.getSidesCount;\n if (sideCountFunc) {\n this.sides = sideCountFunc(this);\n }\n this.spawning = false;\n this.shadowColor = rangeColorToRgb(this._engine, this.options.shadow.color);\n for (const updater of particles.updaters) {\n updater.init(this);\n }\n for (const mover of particles.movers) {\n mover.init?.(this);\n }\n effectDrawer?.particleInit?.(container, this);\n shapeDrawer?.particleInit?.(container, this);\n for (const plugin of container.plugins.values()) {\n plugin.particleCreated?.(this);\n }\n }\n isInsideCanvas() {\n const radius = this.getRadius(), canvasSize = this.container.canvas.size, position = this.position;\n return (position.x >= -radius &&\n position.y >= -radius &&\n position.y <= canvasSize.height + radius &&\n position.x <= canvasSize.width + radius);\n }\n isVisible() {\n return !this.destroyed && !this.spawning && this.isInsideCanvas();\n }\n reset() {\n for (const updater of this.container.particles.updaters) {\n updater.reset?.(this);\n }\n }\n}\n", + "export class Point {\n constructor(position, particle) {\n this.position = position;\n this.particle = particle;\n }\n}\n", + "export var RangeType;\n(function (RangeType) {\n RangeType[\"circle\"] = \"circle\";\n RangeType[\"rectangle\"] = \"rectangle\";\n})(RangeType || (RangeType = {}));\n", + "import { RangeType } from \"../../Types/RangeType.js\";\nimport { getDistance } from \"../../Utils/NumberUtils.js\";\nimport { squareExp } from \"./Constants.js\";\nexport class BaseRange {\n constructor(x, y, type) {\n this.position = {\n x: x,\n y: y,\n };\n this.type = type;\n }\n}\nexport class Circle extends BaseRange {\n constructor(x, y, radius) {\n super(x, y, RangeType.circle);\n this.radius = radius;\n }\n contains(point) {\n return getDistance(point, this.position) <= this.radius;\n }\n intersects(range) {\n const pos1 = this.position, pos2 = range.position, distPos = { x: Math.abs(pos2.x - pos1.x), y: Math.abs(pos2.y - pos1.y) }, r = this.radius;\n if (range instanceof Circle || range.type === RangeType.circle) {\n const circleRange = range, rSum = r + circleRange.radius, dist = Math.sqrt(distPos.x ** squareExp + distPos.y ** squareExp);\n return rSum > dist;\n }\n else if (range instanceof Rectangle || range.type === RangeType.rectangle) {\n const rectRange = range, { width, height } = rectRange.size, edges = Math.pow(distPos.x - width, squareExp) + Math.pow(distPos.y - height, squareExp);\n return (edges <= r ** squareExp ||\n (distPos.x <= r + width && distPos.y <= r + height) ||\n distPos.x <= width ||\n distPos.y <= height);\n }\n return false;\n }\n}\nexport class Rectangle extends BaseRange {\n constructor(x, y, width, height) {\n super(x, y, RangeType.rectangle);\n this.size = {\n height: height,\n width: width,\n };\n }\n contains(point) {\n const w = this.size.width, h = this.size.height, pos = this.position;\n return point.x >= pos.x && point.x <= pos.x + w && point.y >= pos.y && point.y <= pos.y + h;\n }\n intersects(range) {\n if (range instanceof Circle) {\n return range.intersects(this);\n }\n const w = this.size.width, h = this.size.height, pos1 = this.position, pos2 = range.position, size2 = range instanceof Rectangle ? range.size : { width: 0, height: 0 }, w2 = size2.width, h2 = size2.height;\n return pos2.x < pos1.x + w && pos2.x + w2 > pos1.x && pos2.y < pos1.y + h && pos2.y + h2 > pos1.y;\n }\n}\n", + "import { Circle, Rectangle } from \"./Ranges.js\";\nimport { double, half, subdivideCount } from \"./Constants.js\";\nimport { getDistance } from \"../../Utils/NumberUtils.js\";\nexport class QuadTree {\n constructor(rectangle, capacity) {\n this.rectangle = rectangle;\n this.capacity = capacity;\n this._subdivide = () => {\n const { x, y } = this.rectangle.position, { width, height } = this.rectangle.size, { capacity } = this;\n for (let i = 0; i < subdivideCount; i++) {\n const fixedIndex = i % double;\n this._subs.push(new QuadTree(new Rectangle(x + width * half * fixedIndex, y + height * half * (Math.round(i * half) - fixedIndex), width * half, height * half), capacity));\n }\n this._divided = true;\n };\n this._points = [];\n this._divided = false;\n this._subs = [];\n }\n insert(point) {\n if (!this.rectangle.contains(point.position)) {\n return false;\n }\n if (this._points.length < this.capacity) {\n this._points.push(point);\n return true;\n }\n if (!this._divided) {\n this._subdivide();\n }\n return this._subs.some(sub => sub.insert(point));\n }\n query(range, check) {\n const res = [];\n if (!range.intersects(this.rectangle)) {\n return [];\n }\n for (const p of this._points) {\n if (!range.contains(p.position) &&\n getDistance(range.position, p.position) > p.particle.getRadius() &&\n (!check || check(p.particle))) {\n continue;\n }\n res.push(p.particle);\n }\n if (this._divided) {\n for (const sub of this._subs) {\n res.push(...sub.query(range, check));\n }\n }\n return res;\n }\n queryCircle(position, radius, check) {\n return this.query(new Circle(position.x, position.y, radius), check);\n }\n queryRectangle(position, size, check) {\n return this.query(new Rectangle(position.x, position.y, size.width, size.height), check);\n }\n}\n", + "import { countOffset, defaultDensityFactor, defaultRemoveQuantity, deleteCount, errorPrefix, lengthOffset, minCount, minIndex, minLimit, posOffset, qTreeCapacity, sizeFactor, squareExp, } from \"./Utils/Constants.js\";\nimport { getLogger, getPosition } from \"../Utils/Utils.js\";\nimport { EventType } from \"../Enums/Types/EventType.js\";\nimport { InteractionManager } from \"./Utils/InteractionManager.js\";\nimport { LimitMode } from \"../Enums/Modes/LimitMode.js\";\nimport { Particle } from \"./Particle.js\";\nimport { Point } from \"./Utils/Point.js\";\nimport { QuadTree } from \"./Utils/QuadTree.js\";\nimport { Rectangle } from \"./Utils/Ranges.js\";\nconst qTreeRectangle = (canvasSize) => {\n const { height, width } = canvasSize;\n return new Rectangle(posOffset * width, posOffset * height, sizeFactor * width, sizeFactor * height);\n};\nexport class Particles {\n constructor(engine, container) {\n this._addToPool = (...particles) => {\n this._pool.push(...particles);\n };\n this._applyDensity = (options, manualCount, group, groupOptions) => {\n const numberOptions = options.number;\n if (!options.number.density?.enable) {\n if (group === undefined) {\n this._limit = numberOptions.limit.value;\n }\n else if (groupOptions?.number.limit?.value ?? numberOptions.limit.value) {\n this._groupLimits.set(group, groupOptions?.number.limit?.value ?? numberOptions.limit.value);\n }\n return;\n }\n const densityFactor = this._initDensityFactor(numberOptions.density), optParticlesNumber = numberOptions.value, optParticlesLimit = numberOptions.limit.value > minLimit ? numberOptions.limit.value : optParticlesNumber, particlesNumber = Math.min(optParticlesNumber, optParticlesLimit) * densityFactor + manualCount, particlesCount = Math.min(this.count, this.filter(t => t.group === group).length);\n if (group === undefined) {\n this._limit = numberOptions.limit.value * densityFactor;\n }\n else {\n this._groupLimits.set(group, numberOptions.limit.value * densityFactor);\n }\n if (particlesCount < particlesNumber) {\n this.push(Math.abs(particlesNumber - particlesCount), undefined, options, group);\n }\n else if (particlesCount > particlesNumber) {\n this.removeQuantity(particlesCount - particlesNumber, group);\n }\n };\n this._initDensityFactor = densityOptions => {\n const container = this._container;\n if (!container.canvas.element || !densityOptions.enable) {\n return defaultDensityFactor;\n }\n const canvas = container.canvas.element, pxRatio = container.retina.pixelRatio;\n return (canvas.width * canvas.height) / (densityOptions.height * densityOptions.width * pxRatio ** squareExp);\n };\n this._pushParticle = (position, overrideOptions, group, initializer) => {\n try {\n let particle = this._pool.pop();\n if (!particle) {\n particle = new Particle(this._engine, this._container);\n }\n particle.init(this._nextId, position, overrideOptions, group);\n let canAdd = true;\n if (initializer) {\n canAdd = initializer(particle);\n }\n if (!canAdd) {\n return;\n }\n this._array.push(particle);\n this._zArray.push(particle);\n this._nextId++;\n this._engine.dispatchEvent(EventType.particleAdded, {\n container: this._container,\n data: {\n particle,\n },\n });\n return particle;\n }\n catch (e) {\n getLogger().warning(`${errorPrefix} adding particle: ${e}`);\n }\n };\n this._removeParticle = (index, group, override) => {\n const particle = this._array[index];\n if (!particle || particle.group !== group) {\n return false;\n }\n const zIdx = this._zArray.indexOf(particle);\n this._array.splice(index, deleteCount);\n this._zArray.splice(zIdx, deleteCount);\n particle.destroy(override);\n this._engine.dispatchEvent(EventType.particleRemoved, {\n container: this._container,\n data: {\n particle,\n },\n });\n this._addToPool(particle);\n return true;\n };\n this._engine = engine;\n this._container = container;\n this._nextId = 0;\n this._array = [];\n this._zArray = [];\n this._pool = [];\n this._limit = 0;\n this._groupLimits = new Map();\n this._needsSort = false;\n this._lastZIndex = 0;\n this._interactionManager = new InteractionManager(engine, container);\n this._pluginsInitialized = false;\n const canvasSize = container.canvas.size;\n this.quadTree = new QuadTree(qTreeRectangle(canvasSize), qTreeCapacity);\n this.movers = [];\n this.updaters = [];\n }\n get count() {\n return this._array.length;\n }\n addManualParticles() {\n const container = this._container, options = container.actualOptions;\n options.manualParticles.forEach(p => this.addParticle(p.position ? getPosition(p.position, container.canvas.size) : undefined, p.options));\n }\n addParticle(position, overrideOptions, group, initializer) {\n const limitMode = this._container.actualOptions.particles.number.limit.mode, limit = group === undefined ? this._limit : (this._groupLimits.get(group) ?? this._limit), currentCount = this.count;\n if (limit > minLimit) {\n switch (limitMode) {\n case LimitMode.delete: {\n const countToRemove = currentCount + countOffset - limit;\n if (countToRemove > minCount) {\n this.removeQuantity(countToRemove);\n }\n break;\n }\n case LimitMode.wait:\n if (currentCount >= limit) {\n return;\n }\n break;\n }\n }\n return this._pushParticle(position, overrideOptions, group, initializer);\n }\n clear() {\n this._array = [];\n this._zArray = [];\n this._pluginsInitialized = false;\n }\n destroy() {\n this._array = [];\n this._zArray = [];\n this.movers = [];\n this.updaters = [];\n }\n draw(delta) {\n const container = this._container, canvas = container.canvas;\n canvas.clear();\n this.update(delta);\n for (const plugin of container.plugins.values()) {\n canvas.drawPlugin(plugin, delta);\n }\n for (const p of this._zArray) {\n p.draw(delta);\n }\n }\n filter(condition) {\n return this._array.filter(condition);\n }\n find(condition) {\n return this._array.find(condition);\n }\n get(index) {\n return this._array[index];\n }\n handleClickMode(mode) {\n this._interactionManager.handleClickMode(mode);\n }\n async init() {\n const container = this._container, options = container.actualOptions;\n this._lastZIndex = 0;\n this._needsSort = false;\n await this.initPlugins();\n let handled = false;\n for (const plugin of container.plugins.values()) {\n handled = plugin.particlesInitialization?.() ?? handled;\n if (handled) {\n break;\n }\n }\n this.addManualParticles();\n if (!handled) {\n const particlesOptions = options.particles, groups = particlesOptions.groups;\n for (const group in groups) {\n const groupOptions = groups[group];\n for (let i = this.count, j = 0; j < groupOptions.number?.value && i < particlesOptions.number.value; i++, j++) {\n this.addParticle(undefined, groupOptions, group);\n }\n }\n for (let i = this.count; i < particlesOptions.number.value; i++) {\n this.addParticle();\n }\n }\n }\n async initPlugins() {\n if (this._pluginsInitialized) {\n return;\n }\n const container = this._container;\n this.movers = await this._engine.getMovers(container, true);\n this.updaters = await this._engine.getUpdaters(container, true);\n await this._interactionManager.init();\n for (const pathGenerator of container.pathGenerators.values()) {\n pathGenerator.init(container);\n }\n }\n push(nb, mouse, overrideOptions, group) {\n for (let i = 0; i < nb; i++) {\n this.addParticle(mouse?.position, overrideOptions, group);\n }\n }\n async redraw() {\n this.clear();\n await this.init();\n this.draw({ value: 0, factor: 0 });\n }\n remove(particle, group, override) {\n this.removeAt(this._array.indexOf(particle), undefined, group, override);\n }\n removeAt(index, quantity = defaultRemoveQuantity, group, override) {\n if (index < minIndex || index > this.count) {\n return;\n }\n let deleted = 0;\n for (let i = index; deleted < quantity && i < this.count; i++) {\n if (this._removeParticle(i, group, override)) {\n i--;\n deleted++;\n }\n }\n }\n removeQuantity(quantity, group) {\n this.removeAt(minIndex, quantity, group);\n }\n setDensity() {\n const options = this._container.actualOptions, groups = options.particles.groups, manualCount = options.manualParticles.length;\n for (const group in groups) {\n this._applyDensity(groups[group], manualCount, group);\n }\n this._applyDensity(options.particles, manualCount);\n }\n setLastZIndex(zIndex) {\n this._lastZIndex = zIndex;\n this._needsSort = this._needsSort || this._lastZIndex < zIndex;\n }\n setResizeFactor(factor) {\n this._resizeFactor = factor;\n }\n update(delta) {\n const container = this._container, particlesToDelete = new Set();\n this.quadTree = new QuadTree(qTreeRectangle(container.canvas.size), qTreeCapacity);\n for (const pathGenerator of container.pathGenerators.values()) {\n pathGenerator.update();\n }\n for (const plugin of container.plugins.values()) {\n plugin.update?.(delta);\n }\n const resizeFactor = this._resizeFactor;\n for (const particle of this._array) {\n if (resizeFactor && !particle.ignoresResizeRatio) {\n particle.position.x *= resizeFactor.width;\n particle.position.y *= resizeFactor.height;\n particle.initialPosition.x *= resizeFactor.width;\n particle.initialPosition.y *= resizeFactor.height;\n }\n particle.ignoresResizeRatio = false;\n this._interactionManager.reset(particle);\n for (const plugin of this._container.plugins.values()) {\n if (particle.destroyed) {\n break;\n }\n plugin.particleUpdate?.(particle, delta);\n }\n for (const mover of this.movers) {\n if (mover.isEnabled(particle)) {\n mover.move(particle, delta);\n }\n }\n if (particle.destroyed) {\n particlesToDelete.add(particle);\n continue;\n }\n this.quadTree.insert(new Point(particle.getPosition(), particle));\n }\n if (particlesToDelete.size) {\n const checkDelete = (p) => !particlesToDelete.has(p);\n this._array = this.filter(checkDelete);\n this._zArray = this._zArray.filter(checkDelete);\n for (const particle of particlesToDelete) {\n this._engine.dispatchEvent(EventType.particleRemoved, {\n container: this._container,\n data: {\n particle,\n },\n });\n }\n this._addToPool(...particlesToDelete);\n }\n this._interactionManager.externalInteract(delta);\n for (const particle of this._array) {\n for (const updater of this.updaters) {\n updater.update(particle, delta);\n }\n if (!particle.destroyed && !particle.spawning) {\n this._interactionManager.particlesInteract(particle, delta);\n }\n }\n delete this._resizeFactor;\n if (this._needsSort) {\n const zArray = this._zArray;\n zArray.sort((a, b) => b.position.z - a.position.z || a.id - b.id);\n this._lastZIndex = zArray[zArray.length - lengthOffset].position.z;\n this._needsSort = false;\n }\n }\n}\n", + "import { defaultRatio, defaultReduceFactor } from \"./Utils/Constants.js\";\nimport { getRangeValue } from \"../Utils/NumberUtils.js\";\nimport { isSsr } from \"../Utils/Utils.js\";\nexport class Retina {\n constructor(container) {\n this.container = container;\n this.pixelRatio = defaultRatio;\n this.reduceFactor = defaultReduceFactor;\n }\n init() {\n const container = this.container, options = container.actualOptions;\n this.pixelRatio = !options.detectRetina || isSsr() ? defaultRatio : devicePixelRatio;\n this.reduceFactor = defaultReduceFactor;\n const ratio = this.pixelRatio, canvas = container.canvas;\n if (canvas.element) {\n const element = canvas.element;\n canvas.size.width = element.offsetWidth * ratio;\n canvas.size.height = element.offsetHeight * ratio;\n }\n const particles = options.particles, moveOptions = particles.move;\n this.maxSpeed = getRangeValue(moveOptions.gravity.maxSpeed) * ratio;\n this.sizeAnimationSpeed = getRangeValue(particles.size.animation.speed) * ratio;\n }\n initParticle(particle) {\n const options = particle.options, ratio = this.pixelRatio, moveOptions = options.move, moveDistance = moveOptions.distance, props = particle.retina;\n props.moveDrift = getRangeValue(moveOptions.drift) * ratio;\n props.moveSpeed = getRangeValue(moveOptions.speed) * ratio;\n props.sizeAnimationSpeed = getRangeValue(options.size.animation.speed) * ratio;\n const maxDistance = props.maxDistance;\n maxDistance.horizontal = moveDistance.horizontal !== undefined ? moveDistance.horizontal * ratio : undefined;\n maxDistance.vertical = moveDistance.vertical !== undefined ? moveDistance.vertical * ratio : undefined;\n props.maxSpeed = getRangeValue(moveOptions.gravity.maxSpeed) * ratio;\n }\n}\n", + "import { animate, cancelAnimation, getRangeValue } from \"../Utils/NumberUtils.js\";\nimport { clickRadius, defaultFps, defaultFpsLimit, errorPrefix, millisecondsToSeconds, minCoordinate, minFpsLimit, removeDeleteCount, removeMinIndex, touchEndLengthOffset, } from \"./Utils/Constants.js\";\nimport { getLogger, safeIntersectionObserver } from \"../Utils/Utils.js\";\nimport { Canvas } from \"./Canvas.js\";\nimport { EventListeners } from \"./Utils/EventListeners.js\";\nimport { EventType } from \"../Enums/Types/EventType.js\";\nimport { Options } from \"../Options/Classes/Options.js\";\nimport { Particles } from \"./Particles.js\";\nimport { Retina } from \"./Retina.js\";\nimport { loadOptions } from \"../Utils/OptionsUtils.js\";\nfunction guardCheck(container) {\n return container && !container.destroyed;\n}\nfunction initDelta(value, fpsLimit = defaultFps, smooth = false) {\n return {\n value,\n factor: smooth ? defaultFps / fpsLimit : (defaultFps * value) / millisecondsToSeconds,\n };\n}\nfunction loadContainerOptions(engine, container, ...sourceOptionsArr) {\n const options = new Options(engine, container);\n loadOptions(options, ...sourceOptionsArr);\n return options;\n}\nexport class Container {\n constructor(engine, id, sourceOptions) {\n this._intersectionManager = entries => {\n if (!guardCheck(this) || !this.actualOptions.pauseOnOutsideViewport) {\n return;\n }\n for (const entry of entries) {\n if (entry.target !== this.interactivity.element) {\n continue;\n }\n if (entry.isIntersecting) {\n void this.play();\n }\n else {\n this.pause();\n }\n }\n };\n this._nextFrame = (timestamp) => {\n try {\n if (!this._smooth &&\n this._lastFrameTime !== undefined &&\n timestamp < this._lastFrameTime + millisecondsToSeconds / this.fpsLimit) {\n this.draw(false);\n return;\n }\n this._lastFrameTime ??= timestamp;\n const delta = initDelta(timestamp - this._lastFrameTime, this.fpsLimit, this._smooth);\n this.addLifeTime(delta.value);\n this._lastFrameTime = timestamp;\n if (delta.value > millisecondsToSeconds) {\n this.draw(false);\n return;\n }\n this.particles.draw(delta);\n if (!this.alive()) {\n this.destroy();\n return;\n }\n if (this.animationStatus) {\n this.draw(false);\n }\n }\n catch (e) {\n getLogger().error(`${errorPrefix} in animation loop`, e);\n }\n };\n this._engine = engine;\n this.id = Symbol(id);\n this.fpsLimit = 120;\n this._smooth = false;\n this._delay = 0;\n this._duration = 0;\n this._lifeTime = 0;\n this._firstStart = true;\n this.started = false;\n this.destroyed = false;\n this._paused = true;\n this._lastFrameTime = 0;\n this.zLayers = 100;\n this.pageHidden = false;\n this._clickHandlers = new Map();\n this._sourceOptions = sourceOptions;\n this._initialSourceOptions = sourceOptions;\n this.retina = new Retina(this);\n this.canvas = new Canvas(this, this._engine);\n this.particles = new Particles(this._engine, this);\n this.pathGenerators = new Map();\n this.interactivity = {\n mouse: {\n clicking: false,\n inside: false,\n },\n };\n this.plugins = new Map();\n this.effectDrawers = new Map();\n this.shapeDrawers = new Map();\n this._options = loadContainerOptions(this._engine, this);\n this.actualOptions = loadContainerOptions(this._engine, this);\n this._eventListeners = new EventListeners(this);\n this._intersectionObserver = safeIntersectionObserver(entries => this._intersectionManager(entries));\n this._engine.dispatchEvent(EventType.containerBuilt, { container: this });\n }\n get animationStatus() {\n return !this._paused && !this.pageHidden && guardCheck(this);\n }\n get options() {\n return this._options;\n }\n get sourceOptions() {\n return this._sourceOptions;\n }\n addClickHandler(callback) {\n if (!guardCheck(this)) {\n return;\n }\n const el = this.interactivity.element;\n if (!el) {\n return;\n }\n const clickOrTouchHandler = (e, pos, radius) => {\n if (!guardCheck(this)) {\n return;\n }\n const pxRatio = this.retina.pixelRatio, posRetina = {\n x: pos.x * pxRatio,\n y: pos.y * pxRatio,\n }, particles = this.particles.quadTree.queryCircle(posRetina, radius * pxRatio);\n callback(e, particles);\n }, clickHandler = (e) => {\n if (!guardCheck(this)) {\n return;\n }\n const mouseEvent = e, pos = {\n x: mouseEvent.offsetX || mouseEvent.clientX,\n y: mouseEvent.offsetY || mouseEvent.clientY,\n };\n clickOrTouchHandler(e, pos, clickRadius);\n }, touchStartHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touched = true;\n touchMoved = false;\n }, touchMoveHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touchMoved = true;\n }, touchEndHandler = (e) => {\n if (!guardCheck(this)) {\n return;\n }\n if (touched && !touchMoved) {\n const touchEvent = e;\n let lastTouch = touchEvent.touches[touchEvent.touches.length - touchEndLengthOffset];\n if (!lastTouch) {\n lastTouch = touchEvent.changedTouches[touchEvent.changedTouches.length - touchEndLengthOffset];\n if (!lastTouch) {\n return;\n }\n }\n const element = this.canvas.element, canvasRect = element ? element.getBoundingClientRect() : undefined, pos = {\n x: lastTouch.clientX - (canvasRect ? canvasRect.left : minCoordinate),\n y: lastTouch.clientY - (canvasRect ? canvasRect.top : minCoordinate),\n };\n clickOrTouchHandler(e, pos, Math.max(lastTouch.radiusX, lastTouch.radiusY));\n }\n touched = false;\n touchMoved = false;\n }, touchCancelHandler = () => {\n if (!guardCheck(this)) {\n return;\n }\n touched = false;\n touchMoved = false;\n };\n let touched = false, touchMoved = false;\n this._clickHandlers.set(\"click\", clickHandler);\n this._clickHandlers.set(\"touchstart\", touchStartHandler);\n this._clickHandlers.set(\"touchmove\", touchMoveHandler);\n this._clickHandlers.set(\"touchend\", touchEndHandler);\n this._clickHandlers.set(\"touchcancel\", touchCancelHandler);\n for (const [key, handler] of this._clickHandlers) {\n el.addEventListener(key, handler);\n }\n }\n addLifeTime(value) {\n this._lifeTime += value;\n }\n addPath(key, generator, override = false) {\n if (!guardCheck(this) || (!override && this.pathGenerators.has(key))) {\n return false;\n }\n this.pathGenerators.set(key, generator);\n return true;\n }\n alive() {\n return !this._duration || this._lifeTime <= this._duration;\n }\n clearClickHandlers() {\n if (!guardCheck(this)) {\n return;\n }\n for (const [key, handler] of this._clickHandlers) {\n this.interactivity.element?.removeEventListener(key, handler);\n }\n this._clickHandlers.clear();\n }\n destroy(remove = true) {\n if (!guardCheck(this)) {\n return;\n }\n this.stop();\n this.clearClickHandlers();\n this.particles.destroy();\n this.canvas.destroy();\n for (const effectDrawer of this.effectDrawers.values()) {\n effectDrawer.destroy?.(this);\n }\n for (const shapeDrawer of this.shapeDrawers.values()) {\n shapeDrawer.destroy?.(this);\n }\n for (const key of this.effectDrawers.keys()) {\n this.effectDrawers.delete(key);\n }\n for (const key of this.shapeDrawers.keys()) {\n this.shapeDrawers.delete(key);\n }\n this._engine.clearPlugins(this);\n this.destroyed = true;\n if (remove) {\n const mainArr = this._engine.items, idx = mainArr.findIndex(t => t === this);\n if (idx >= removeMinIndex) {\n mainArr.splice(idx, removeDeleteCount);\n }\n }\n this._engine.dispatchEvent(EventType.containerDestroyed, { container: this });\n }\n draw(force) {\n if (!guardCheck(this)) {\n return;\n }\n let refreshTime = force;\n const frame = (timestamp) => {\n if (refreshTime) {\n this._lastFrameTime = undefined;\n refreshTime = false;\n }\n this._nextFrame(timestamp);\n };\n this._drawAnimationFrame = animate(timestamp => frame(timestamp));\n }\n async export(type, options = {}) {\n for (const plugin of this.plugins.values()) {\n if (!plugin.export) {\n continue;\n }\n const res = await plugin.export(type, options);\n if (!res.supported) {\n continue;\n }\n return res.blob;\n }\n getLogger().error(`${errorPrefix} - Export plugin with type ${type} not found`);\n }\n handleClickMode(mode) {\n if (!guardCheck(this)) {\n return;\n }\n this.particles.handleClickMode(mode);\n for (const plugin of this.plugins.values()) {\n plugin.handleClickMode?.(mode);\n }\n }\n async init() {\n if (!guardCheck(this)) {\n return;\n }\n const effects = this._engine.getSupportedEffects();\n for (const type of effects) {\n const drawer = this._engine.getEffectDrawer(type);\n if (drawer) {\n this.effectDrawers.set(type, drawer);\n }\n }\n const shapes = this._engine.getSupportedShapes();\n for (const type of shapes) {\n const drawer = this._engine.getShapeDrawer(type);\n if (drawer) {\n this.shapeDrawers.set(type, drawer);\n }\n }\n await this.particles.initPlugins();\n this._options = loadContainerOptions(this._engine, this, this._initialSourceOptions, this.sourceOptions);\n this.actualOptions = loadContainerOptions(this._engine, this, this._options);\n const availablePlugins = await this._engine.getAvailablePlugins(this);\n for (const [id, plugin] of availablePlugins) {\n this.plugins.set(id, plugin);\n }\n this.retina.init();\n await this.canvas.init();\n this.updateActualOptions();\n this.canvas.initBackground();\n this.canvas.resize();\n const { zLayers, duration, delay, fpsLimit, smooth } = this.actualOptions;\n this.zLayers = zLayers;\n this._duration = getRangeValue(duration) * millisecondsToSeconds;\n this._delay = getRangeValue(delay) * millisecondsToSeconds;\n this._lifeTime = 0;\n this.fpsLimit = fpsLimit > minFpsLimit ? fpsLimit : defaultFpsLimit;\n this._smooth = smooth;\n for (const drawer of this.effectDrawers.values()) {\n await drawer.init?.(this);\n }\n for (const drawer of this.shapeDrawers.values()) {\n await drawer.init?.(this);\n }\n for (const plugin of this.plugins.values()) {\n await plugin.init?.();\n }\n this._engine.dispatchEvent(EventType.containerInit, { container: this });\n await this.particles.init();\n this.particles.setDensity();\n for (const plugin of this.plugins.values()) {\n plugin.particlesSetup?.();\n }\n this._engine.dispatchEvent(EventType.particlesSetup, { container: this });\n }\n async loadTheme(name) {\n if (!guardCheck(this)) {\n return;\n }\n this._currentTheme = name;\n await this.refresh();\n }\n pause() {\n if (!guardCheck(this)) {\n return;\n }\n if (this._drawAnimationFrame !== undefined) {\n cancelAnimation(this._drawAnimationFrame);\n delete this._drawAnimationFrame;\n }\n if (this._paused) {\n return;\n }\n for (const plugin of this.plugins.values()) {\n plugin.pause?.();\n }\n if (!this.pageHidden) {\n this._paused = true;\n }\n this._engine.dispatchEvent(EventType.containerPaused, { container: this });\n }\n play(force) {\n if (!guardCheck(this)) {\n return;\n }\n const needsUpdate = this._paused || force;\n if (this._firstStart && !this.actualOptions.autoPlay) {\n this._firstStart = false;\n return;\n }\n if (this._paused) {\n this._paused = false;\n }\n if (needsUpdate) {\n for (const plugin of this.plugins.values()) {\n if (plugin.play) {\n plugin.play();\n }\n }\n }\n this._engine.dispatchEvent(EventType.containerPlay, { container: this });\n this.draw(needsUpdate ?? false);\n }\n async refresh() {\n if (!guardCheck(this)) {\n return;\n }\n this.stop();\n return this.start();\n }\n async reset(sourceOptions) {\n if (!guardCheck(this)) {\n return;\n }\n this._initialSourceOptions = sourceOptions;\n this._sourceOptions = sourceOptions;\n this._options = loadContainerOptions(this._engine, this, this._initialSourceOptions, this.sourceOptions);\n this.actualOptions = loadContainerOptions(this._engine, this, this._options);\n return this.refresh();\n }\n async start() {\n if (!guardCheck(this) || this.started) {\n return;\n }\n await this.init();\n this.started = true;\n await new Promise(resolve => {\n const start = async () => {\n this._eventListeners.addListeners();\n if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) {\n this._intersectionObserver.observe(this.interactivity.element);\n }\n for (const plugin of this.plugins.values()) {\n await plugin.start?.();\n }\n this._engine.dispatchEvent(EventType.containerStarted, { container: this });\n this.play();\n resolve();\n };\n this._delayTimeout = setTimeout(() => void start(), this._delay);\n });\n }\n stop() {\n if (!guardCheck(this) || !this.started) {\n return;\n }\n if (this._delayTimeout) {\n clearTimeout(this._delayTimeout);\n delete this._delayTimeout;\n }\n this._firstStart = true;\n this.started = false;\n this._eventListeners.removeListeners();\n this.pause();\n this.particles.clear();\n this.canvas.stop();\n if (this.interactivity.element instanceof HTMLElement && this._intersectionObserver) {\n this._intersectionObserver.unobserve(this.interactivity.element);\n }\n for (const plugin of this.plugins.values()) {\n plugin.stop?.();\n }\n for (const key of this.plugins.keys()) {\n this.plugins.delete(key);\n }\n this._sourceOptions = this._options;\n this._engine.dispatchEvent(EventType.containerStopped, { container: this });\n }\n updateActualOptions() {\n this.actualOptions.responsive = [];\n const newMaxWidth = this.actualOptions.setResponsive(this.canvas.size.width, this.retina.pixelRatio, this._options);\n this.actualOptions.setTheme(this._currentTheme);\n if (this._responsiveMaxWidth === newMaxWidth) {\n return false;\n }\n this._responsiveMaxWidth = newMaxWidth;\n return true;\n }\n}\n", + "import { deleteCount, minIndex } from \"../Core/Utils/Constants.js\";\nexport class EventDispatcher {\n constructor() {\n this._listeners = new Map();\n }\n addEventListener(type, listener) {\n this.removeEventListener(type, listener);\n let arr = this._listeners.get(type);\n if (!arr) {\n arr = [];\n this._listeners.set(type, arr);\n }\n arr.push(listener);\n }\n dispatchEvent(type, args) {\n const listeners = this._listeners.get(type);\n listeners?.forEach(handler => handler(args));\n }\n hasEventListener(type) {\n return !!this._listeners.get(type);\n }\n removeAllEventListeners(type) {\n if (!type) {\n this._listeners = new Map();\n }\n else {\n this._listeners.delete(type);\n }\n }\n removeEventListener(type, listener) {\n const arr = this._listeners.get(type);\n if (!arr) {\n return;\n }\n const length = arr.length, idx = arr.indexOf(listener);\n if (idx < minIndex) {\n return;\n }\n if (length === deleteCount) {\n this._listeners.delete(type);\n }\n else {\n arr.splice(idx, deleteCount);\n }\n }\n}\n", + "import { canvasFirstIndex, canvasTag, errorPrefix, generatedAttribute, generatedFalse, generatedTrue, loadMinIndex, loadRandomFactor, none, one, removeDeleteCount, } from \"./Utils/Constants.js\";\nimport { executeOnSingleOrMultiple, getLogger, itemFromSingleOrMultiple } from \"../Utils/Utils.js\";\nimport { Container } from \"./Container.js\";\nimport { EventDispatcher } from \"../Utils/EventDispatcher.js\";\nimport { EventType } from \"../Enums/Types/EventType.js\";\nimport { getRandom } from \"../Utils/NumberUtils.js\";\nasync function getItemsFromInitializer(container, map, initializers, force = false) {\n let res = map.get(container);\n if (!res || force) {\n res = await Promise.all([...initializers.values()].map(t => t(container)));\n map.set(container, res);\n }\n return res;\n}\nasync function getDataFromUrl(data) {\n const url = itemFromSingleOrMultiple(data.url, data.index);\n if (!url) {\n return data.fallback;\n }\n const response = await fetch(url);\n if (response.ok) {\n return (await response.json());\n }\n getLogger().error(`${errorPrefix} ${response.status} while retrieving config file`);\n return data.fallback;\n}\nconst getCanvasFromContainer = (domContainer) => {\n let canvasEl;\n if (domContainer instanceof HTMLCanvasElement || domContainer.tagName.toLowerCase() === canvasTag) {\n canvasEl = domContainer;\n if (!canvasEl.dataset[generatedAttribute]) {\n canvasEl.dataset[generatedAttribute] = generatedFalse;\n }\n }\n else {\n const existingCanvases = domContainer.getElementsByTagName(canvasTag);\n if (existingCanvases.length) {\n canvasEl = existingCanvases[canvasFirstIndex];\n canvasEl.dataset[generatedAttribute] = generatedFalse;\n }\n else {\n canvasEl = document.createElement(canvasTag);\n canvasEl.dataset[generatedAttribute] = generatedTrue;\n domContainer.appendChild(canvasEl);\n }\n }\n const fullPercent = \"100%\";\n if (!canvasEl.style.width) {\n canvasEl.style.width = fullPercent;\n }\n if (!canvasEl.style.height) {\n canvasEl.style.height = fullPercent;\n }\n return canvasEl;\n}, getDomContainer = (id, source) => {\n let domContainer = source ?? document.getElementById(id);\n if (domContainer) {\n return domContainer;\n }\n domContainer = document.createElement(\"div\");\n domContainer.id = id;\n domContainer.dataset[generatedAttribute] = generatedTrue;\n document.body.append(domContainer);\n return domContainer;\n};\nexport class Engine {\n constructor() {\n this._configs = new Map();\n this._domArray = [];\n this._eventDispatcher = new EventDispatcher();\n this._initialized = false;\n this.plugins = [];\n this.colorManagers = new Map();\n this.easingFunctions = new Map();\n this._initializers = {\n interactors: new Map(),\n movers: new Map(),\n updaters: new Map(),\n };\n this.interactors = new Map();\n this.movers = new Map();\n this.updaters = new Map();\n this.presets = new Map();\n this.effectDrawers = new Map();\n this.shapeDrawers = new Map();\n this.pathGenerators = new Map();\n }\n get configs() {\n const res = {};\n for (const [name, config] of this._configs) {\n res[name] = config;\n }\n return res;\n }\n get items() {\n return this._domArray;\n }\n get version() {\n return \"3.9.1\";\n }\n async addColorManager(manager, refresh = true) {\n this.colorManagers.set(manager.key, manager);\n await this.refresh(refresh);\n }\n addConfig(config) {\n const key = config.key ?? config.name ?? \"default\";\n this._configs.set(key, config);\n this._eventDispatcher.dispatchEvent(EventType.configAdded, { data: { name: key, config } });\n }\n async addEasing(name, easing, refresh = true) {\n if (this.getEasing(name)) {\n return;\n }\n this.easingFunctions.set(name, easing);\n await this.refresh(refresh);\n }\n async addEffect(effect, drawer, refresh = true) {\n executeOnSingleOrMultiple(effect, type => {\n if (!this.getEffectDrawer(type)) {\n this.effectDrawers.set(type, drawer);\n }\n });\n await this.refresh(refresh);\n }\n addEventListener(type, listener) {\n this._eventDispatcher.addEventListener(type, listener);\n }\n async addInteractor(name, interactorInitializer, refresh = true) {\n this._initializers.interactors.set(name, interactorInitializer);\n await this.refresh(refresh);\n }\n async addMover(name, moverInitializer, refresh = true) {\n this._initializers.movers.set(name, moverInitializer);\n await this.refresh(refresh);\n }\n async addParticleUpdater(name, updaterInitializer, refresh = true) {\n this._initializers.updaters.set(name, updaterInitializer);\n await this.refresh(refresh);\n }\n async addPathGenerator(name, generator, refresh = true) {\n if (!this.getPathGenerator(name)) {\n this.pathGenerators.set(name, generator);\n }\n await this.refresh(refresh);\n }\n async addPlugin(plugin, refresh = true) {\n if (!this.getPlugin(plugin.id)) {\n this.plugins.push(plugin);\n }\n await this.refresh(refresh);\n }\n async addPreset(preset, options, override = false, refresh = true) {\n if (override || !this.getPreset(preset)) {\n this.presets.set(preset, options);\n }\n await this.refresh(refresh);\n }\n async addShape(drawer, refresh = true) {\n for (const validType of drawer.validTypes) {\n if (this.getShapeDrawer(validType)) {\n continue;\n }\n this.shapeDrawers.set(validType, drawer);\n }\n await this.refresh(refresh);\n }\n checkVersion(pluginVersion) {\n if (this.version === pluginVersion) {\n return;\n }\n throw new Error(`The tsParticles version is different from the loaded plugins version. Engine version: ${this.version}. Plugin version: ${pluginVersion}`);\n }\n clearPlugins(container) {\n this.updaters.delete(container);\n this.movers.delete(container);\n this.interactors.delete(container);\n }\n dispatchEvent(type, args) {\n this._eventDispatcher.dispatchEvent(type, args);\n }\n dom() {\n return this.items;\n }\n domItem(index) {\n return this.item(index);\n }\n async getAvailablePlugins(container) {\n const res = new Map();\n for (const plugin of this.plugins) {\n if (plugin.needsPlugin(container.actualOptions)) {\n res.set(plugin.id, await plugin.getPlugin(container));\n }\n }\n return res;\n }\n getEasing(name) {\n return this.easingFunctions.get(name) ?? ((value) => value);\n }\n getEffectDrawer(type) {\n return this.effectDrawers.get(type);\n }\n async getInteractors(container, force = false) {\n return getItemsFromInitializer(container, this.interactors, this._initializers.interactors, force);\n }\n async getMovers(container, force = false) {\n return getItemsFromInitializer(container, this.movers, this._initializers.movers, force);\n }\n getPathGenerator(type) {\n return this.pathGenerators.get(type);\n }\n getPlugin(plugin) {\n return this.plugins.find(t => t.id === plugin);\n }\n getPreset(preset) {\n return this.presets.get(preset);\n }\n getShapeDrawer(type) {\n return this.shapeDrawers.get(type);\n }\n getSupportedEffects() {\n return this.effectDrawers.keys();\n }\n getSupportedShapes() {\n return this.shapeDrawers.keys();\n }\n async getUpdaters(container, force = false) {\n return getItemsFromInitializer(container, this.updaters, this._initializers.updaters, force);\n }\n init() {\n if (this._initialized) {\n return;\n }\n this._initialized = true;\n }\n item(index) {\n const { items } = this, item = items[index];\n if (!item || item.destroyed) {\n items.splice(index, removeDeleteCount);\n return;\n }\n return item;\n }\n async load(params) {\n const id = params.id ?? params.element?.id ?? `tsparticles${Math.floor(getRandom() * loadRandomFactor)}`, { index, url } = params, options = url ? await getDataFromUrl({ fallback: params.options, url, index }) : params.options, currentOptions = itemFromSingleOrMultiple(options, index), { items } = this, oldIndex = items.findIndex(v => v.id.description === id), newItem = new Container(this, id, currentOptions);\n if (oldIndex >= loadMinIndex) {\n const old = this.item(oldIndex), deleteCount = old ? one : none;\n if (old && !old.destroyed) {\n old.destroy(false);\n }\n items.splice(oldIndex, deleteCount, newItem);\n }\n else {\n items.push(newItem);\n }\n const domContainer = getDomContainer(id, params.element), canvasEl = getCanvasFromContainer(domContainer);\n newItem.canvas.loadCanvas(canvasEl);\n await newItem.start();\n return newItem;\n }\n loadOptions(options, sourceOptions) {\n this.plugins.forEach(plugin => plugin.loadOptions?.(options, sourceOptions));\n }\n loadParticlesOptions(container, options, ...sourceOptions) {\n const updaters = this.updaters.get(container);\n if (!updaters) {\n return;\n }\n updaters.forEach(updater => updater.loadOptions?.(options, ...sourceOptions));\n }\n async refresh(refresh = true) {\n if (!refresh) {\n return;\n }\n await Promise.all(this.items.map(t => t.refresh()));\n }\n removeEventListener(type, listener) {\n this._eventDispatcher.removeEventListener(type, listener);\n }\n setOnClickHandler(callback) {\n const { items } = this;\n if (!items.length) {\n throw new Error(`${errorPrefix} can only set click handlers after calling tsParticles.load()`);\n }\n items.forEach(item => item.addClickHandler(callback));\n }\n}\n", + "import { Engine } from \"./Core/Engine.js\";\nexport function init() {\n const engine = new Engine();\n engine.init();\n return engine;\n}\n", + "import { InteractorType } from \"../../Enums/Types/InteractorType.js\";\nexport class ExternalInteractorBase {\n constructor(container) {\n this.type = InteractorType.external;\n this.container = container;\n }\n}\n", + "import { InteractorType } from \"../../Enums/Types/InteractorType.js\";\nexport class ParticlesInteractorBase {\n constructor(container) {\n this.type = InteractorType.particles;\n this.container = container;\n }\n}\n", + "export var RotateDirection;\n(function (RotateDirection) {\n RotateDirection[\"clockwise\"] = \"clockwise\";\n RotateDirection[\"counterClockwise\"] = \"counter-clockwise\";\n RotateDirection[\"random\"] = \"random\";\n})(RotateDirection || (RotateDirection = {}));\n", + "export var EasingType;\n(function (EasingType) {\n EasingType[\"easeInBack\"] = \"ease-in-back\";\n EasingType[\"easeInCirc\"] = \"ease-in-circ\";\n EasingType[\"easeInCubic\"] = \"ease-in-cubic\";\n EasingType[\"easeInLinear\"] = \"ease-in-linear\";\n EasingType[\"easeInQuad\"] = \"ease-in-quad\";\n EasingType[\"easeInQuart\"] = \"ease-in-quart\";\n EasingType[\"easeInQuint\"] = \"ease-in-quint\";\n EasingType[\"easeInExpo\"] = \"ease-in-expo\";\n EasingType[\"easeInSine\"] = \"ease-in-sine\";\n EasingType[\"easeOutBack\"] = \"ease-out-back\";\n EasingType[\"easeOutCirc\"] = \"ease-out-circ\";\n EasingType[\"easeOutCubic\"] = \"ease-out-cubic\";\n EasingType[\"easeOutLinear\"] = \"ease-out-linear\";\n EasingType[\"easeOutQuad\"] = \"ease-out-quad\";\n EasingType[\"easeOutQuart\"] = \"ease-out-quart\";\n EasingType[\"easeOutQuint\"] = \"ease-out-quint\";\n EasingType[\"easeOutExpo\"] = \"ease-out-expo\";\n EasingType[\"easeOutSine\"] = \"ease-out-sine\";\n EasingType[\"easeInOutBack\"] = \"ease-in-out-back\";\n EasingType[\"easeInOutCirc\"] = \"ease-in-out-circ\";\n EasingType[\"easeInOutCubic\"] = \"ease-in-out-cubic\";\n EasingType[\"easeInOutLinear\"] = \"ease-in-out-linear\";\n EasingType[\"easeInOutQuad\"] = \"ease-in-out-quad\";\n EasingType[\"easeInOutQuart\"] = \"ease-in-out-quart\";\n EasingType[\"easeInOutQuint\"] = \"ease-in-out-quint\";\n EasingType[\"easeInOutExpo\"] = \"ease-in-out-expo\";\n EasingType[\"easeInOutSine\"] = \"ease-in-out-sine\";\n})(EasingType || (EasingType = {}));\n", + "import { init } from \"./init.js\";\nimport { isSsr } from \"./Utils/Utils.js\";\nconst tsParticles = init();\nif (!isSsr()) {\n window.tsParticles = tsParticles;\n}\nexport * from \"./exports.js\";\nexport * from \"./export-types.js\";\nexport { tsParticles };\n", + "import { RotateDirection, clamp, getDistance, getDistances, getRandom, getRangeValue, } from \"@tsparticles/engine\";\nconst half = 0.5, double = 2, minVelocity = 0, identity = 1, moveSpeedFactor = 60, minSpinRadius = 0, spinFactor = 0.01, doublePI = Math.PI * double;\nexport function applyDistance(particle) {\n const initialPosition = particle.initialPosition, { dx, dy } = getDistances(initialPosition, particle.position), dxFixed = Math.abs(dx), dyFixed = Math.abs(dy), { maxDistance } = particle.retina, hDistance = maxDistance.horizontal, vDistance = maxDistance.vertical;\n if (!hDistance && !vDistance) {\n return;\n }\n const hasHDistance = (hDistance && dxFixed >= hDistance) ?? false, hasVDistance = (vDistance && dyFixed >= vDistance) ?? false;\n if ((hasHDistance || hasVDistance) && !particle.misplaced) {\n particle.misplaced = (!!hDistance && dxFixed > hDistance) || (!!vDistance && dyFixed > vDistance);\n if (hDistance) {\n particle.velocity.x = particle.velocity.y * half - particle.velocity.x;\n }\n if (vDistance) {\n particle.velocity.y = particle.velocity.x * half - particle.velocity.y;\n }\n }\n else if ((!hDistance || dxFixed < hDistance) && (!vDistance || dyFixed < vDistance) && particle.misplaced) {\n particle.misplaced = false;\n }\n else if (particle.misplaced) {\n const pos = particle.position, vel = particle.velocity;\n if (hDistance &&\n ((pos.x < initialPosition.x && vel.x < minVelocity) || (pos.x > initialPosition.x && vel.x > minVelocity))) {\n vel.x *= -getRandom();\n }\n if (vDistance &&\n ((pos.y < initialPosition.y && vel.y < minVelocity) || (pos.y > initialPosition.y && vel.y > minVelocity))) {\n vel.y *= -getRandom();\n }\n }\n}\nexport function move(particle, moveOptions, moveSpeed, maxSpeed, moveDrift, reduceFactor, delta) {\n applyPath(particle, delta);\n const gravityOptions = particle.gravity, gravityFactor = gravityOptions?.enable && gravityOptions.inverse ? -identity : identity;\n if (moveDrift && moveSpeed) {\n particle.velocity.x += (moveDrift * delta.factor) / (moveSpeedFactor * moveSpeed);\n }\n if (gravityOptions?.enable && moveSpeed) {\n particle.velocity.y +=\n (gravityFactor * (gravityOptions.acceleration * delta.factor)) / (moveSpeedFactor * moveSpeed);\n }\n const decay = particle.moveDecay;\n particle.velocity.multTo(decay);\n const velocity = particle.velocity.mult(moveSpeed);\n if (gravityOptions?.enable &&\n maxSpeed > minVelocity &&\n ((!gravityOptions.inverse && velocity.y >= minVelocity && velocity.y >= maxSpeed) ||\n (gravityOptions.inverse && velocity.y <= minVelocity && velocity.y <= -maxSpeed))) {\n velocity.y = gravityFactor * maxSpeed;\n if (moveSpeed) {\n particle.velocity.y = velocity.y / moveSpeed;\n }\n }\n const zIndexOptions = particle.options.zIndex, zVelocityFactor = (identity - particle.zIndexFactor) ** zIndexOptions.velocityRate;\n velocity.multTo(zVelocityFactor);\n velocity.multTo(reduceFactor);\n const { position } = particle;\n position.addTo(velocity);\n if (moveOptions.vibrate) {\n position.x += Math.sin(position.x * Math.cos(position.y)) * reduceFactor;\n position.y += Math.cos(position.y * Math.sin(position.x)) * reduceFactor;\n }\n}\nexport function spin(particle, moveSpeed, reduceFactor) {\n const container = particle.container;\n if (!particle.spin) {\n return;\n }\n const spinClockwise = particle.spin.direction === RotateDirection.clockwise, updateFunc = {\n x: spinClockwise ? Math.cos : Math.sin,\n y: spinClockwise ? Math.sin : Math.cos,\n };\n particle.position.x =\n particle.spin.center.x + particle.spin.radius * updateFunc.x(particle.spin.angle) * reduceFactor;\n particle.position.y =\n particle.spin.center.y + particle.spin.radius * updateFunc.y(particle.spin.angle) * reduceFactor;\n particle.spin.radius += particle.spin.acceleration * reduceFactor;\n const maxCanvasSize = Math.max(container.canvas.size.width, container.canvas.size.height), halfMaxSize = maxCanvasSize * half;\n if (particle.spin.radius > halfMaxSize) {\n particle.spin.radius = halfMaxSize;\n particle.spin.acceleration *= -identity;\n }\n else if (particle.spin.radius < minSpinRadius) {\n particle.spin.radius = minSpinRadius;\n particle.spin.acceleration *= -identity;\n }\n particle.spin.angle += moveSpeed * spinFactor * (identity - particle.spin.radius / maxCanvasSize);\n}\nexport function applyPath(particle, delta) {\n const particlesOptions = particle.options, pathOptions = particlesOptions.move.path, pathEnabled = pathOptions.enable;\n if (!pathEnabled) {\n return;\n }\n if (particle.lastPathTime <= particle.pathDelay) {\n particle.lastPathTime += delta.value;\n return;\n }\n const path = particle.pathGenerator?.generate(particle, delta);\n if (path) {\n particle.velocity.addTo(path);\n }\n if (pathOptions.clamp) {\n particle.velocity.x = clamp(particle.velocity.x, -identity, identity);\n particle.velocity.y = clamp(particle.velocity.y, -identity, identity);\n }\n particle.lastPathTime -= particle.pathDelay;\n}\nexport function getProximitySpeedFactor(particle) {\n return particle.slow.inRange ? particle.slow.factor : identity;\n}\nexport function initSpin(particle) {\n const container = particle.container, options = particle.options, spinOptions = options.move.spin;\n if (!spinOptions.enable) {\n return;\n }\n const spinPos = spinOptions.position ?? { x: 50, y: 50 }, spinFactor = 0.01, spinCenter = {\n x: spinPos.x * spinFactor * container.canvas.size.width,\n y: spinPos.y * spinFactor * container.canvas.size.height,\n }, pos = particle.getPosition(), distance = getDistance(pos, spinCenter), spinAcceleration = getRangeValue(spinOptions.acceleration);\n particle.retina.spinAcceleration = spinAcceleration * container.retina.pixelRatio;\n particle.spin = {\n center: spinCenter,\n direction: particle.velocity.x >= minVelocity ? RotateDirection.clockwise : RotateDirection.counterClockwise,\n angle: getRandom() * doublePI,\n radius: distance,\n acceleration: particle.retina.spinAcceleration,\n };\n}\n", + "import { getRangeMax, getRangeValue } from \"@tsparticles/engine\";\nimport { applyDistance, getProximitySpeedFactor, initSpin, move, spin } from \"./Utils.js\";\nconst diffFactor = 2, defaultSizeFactor = 1, defaultDeltaFactor = 1;\nexport class BaseMover {\n init(particle) {\n const options = particle.options, gravityOptions = options.move.gravity;\n particle.gravity = {\n enable: gravityOptions.enable,\n acceleration: getRangeValue(gravityOptions.acceleration),\n inverse: gravityOptions.inverse,\n };\n initSpin(particle);\n }\n isEnabled(particle) {\n return !particle.destroyed && particle.options.move.enable;\n }\n move(particle, delta) {\n const particleOptions = particle.options, moveOptions = particleOptions.move;\n if (!moveOptions.enable) {\n return;\n }\n const container = particle.container, pxRatio = container.retina.pixelRatio;\n particle.retina.moveSpeed ??= getRangeValue(moveOptions.speed) * pxRatio;\n particle.retina.moveDrift ??= getRangeValue(particle.options.move.drift) * pxRatio;\n const slowFactor = getProximitySpeedFactor(particle), reduceFactor = container.retina.reduceFactor, baseSpeed = particle.retina.moveSpeed, moveDrift = particle.retina.moveDrift, maxSize = getRangeMax(particleOptions.size.value) * pxRatio, sizeFactor = moveOptions.size ? particle.getRadius() / maxSize : defaultSizeFactor, deltaFactor = delta.factor || defaultDeltaFactor, moveSpeed = (baseSpeed * sizeFactor * slowFactor * deltaFactor) / diffFactor, maxSpeed = particle.retina.maxSpeed ?? container.retina.maxSpeed;\n if (moveOptions.spin.enable) {\n spin(particle, moveSpeed, reduceFactor);\n }\n else {\n move(particle, moveOptions, moveSpeed, maxSpeed, moveDrift, reduceFactor, delta);\n }\n applyDistance(particle);\n }\n}\n", + "import { BaseMover } from \"./BaseMover.js\";\nexport async function loadBaseMover(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addMover(\"base\", () => {\n return Promise.resolve(new BaseMover());\n }, refresh);\n}\n", + "const double = 2, doublePI = Math.PI * double, minAngle = 0, origin = { x: 0, y: 0 };\nexport function drawCircle(data) {\n const { context, particle, radius } = data;\n if (!particle.circleRange) {\n particle.circleRange = { min: minAngle, max: doublePI };\n }\n const circleRange = particle.circleRange;\n context.arc(origin.x, origin.y, radius, circleRange.min, circleRange.max, false);\n}\n", + "import { degToRad, isObject } from \"@tsparticles/engine\";\nimport { drawCircle } from \"./Utils.js\";\nconst sides = 12, maxAngle = 360, minAngle = 0;\nexport class CircleDrawer {\n constructor() {\n this.validTypes = [\"circle\"];\n }\n draw(data) {\n drawCircle(data);\n }\n getSidesCount() {\n return sides;\n }\n particleInit(container, particle) {\n const shapeData = particle.shapeData, angle = shapeData?.angle ?? {\n max: maxAngle,\n min: minAngle,\n };\n particle.circleRange = !isObject(angle)\n ? {\n min: minAngle,\n max: degToRad(angle),\n }\n : { min: degToRad(angle.min), max: degToRad(angle.max) };\n }\n}\n", + "import { CircleDrawer } from \"./CircleDrawer.js\";\nexport async function loadCircleShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new CircleDrawer(), refresh);\n}\n", + "import { getHslAnimationFromHsl, rangeColorToHsl, updateColor, } from \"@tsparticles/engine\";\nexport class ColorUpdater {\n constructor(container, engine) {\n this._container = container;\n this._engine = engine;\n }\n init(particle) {\n const hslColor = rangeColorToHsl(this._engine, particle.options.color, particle.id, particle.options.reduceDuplicates);\n if (hslColor) {\n particle.color = getHslAnimationFromHsl(hslColor, particle.options.color.animation, this._container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n const { h: hAnimation, s: sAnimation, l: lAnimation } = particle.options.color.animation, { color } = particle;\n return (!particle.destroyed &&\n !particle.spawning &&\n ((color?.h.value !== undefined && hAnimation.enable) ||\n (color?.s.value !== undefined && sAnimation.enable) ||\n (color?.l.value !== undefined && lAnimation.enable)));\n }\n update(particle, delta) {\n updateColor(particle.color, delta);\n }\n}\n", + "import { ColorUpdater } from \"./ColorUpdater.js\";\nexport async function loadColorUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"color\", container => {\n return Promise.resolve(new ColorUpdater(container, engine));\n }, refresh);\n}\n", + "var RgbIndexes;\n(function (RgbIndexes) {\n RgbIndexes[RgbIndexes[\"r\"] = 1] = \"r\";\n RgbIndexes[RgbIndexes[\"g\"] = 2] = \"g\";\n RgbIndexes[RgbIndexes[\"b\"] = 3] = \"b\";\n RgbIndexes[RgbIndexes[\"a\"] = 4] = \"a\";\n})(RgbIndexes || (RgbIndexes = {}));\nconst shorthandHexRegex = /^#?([a-f\\d])([a-f\\d])([a-f\\d])([a-f\\d])?$/i, hexRegex = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})?$/i, hexRadix = 16, defaultAlpha = 1, alphaFactor = 0xff;\nexport class HexColorManager {\n constructor() {\n this.key = \"hex\";\n this.stringPrefix = \"#\";\n }\n handleColor(color) {\n return this._parseString(color.value);\n }\n handleRangeColor(color) {\n return this._parseString(color.value);\n }\n parseString(input) {\n return this._parseString(input);\n }\n _parseString(hexColor) {\n if (typeof hexColor !== \"string\") {\n return;\n }\n if (!hexColor?.startsWith(this.stringPrefix)) {\n return;\n }\n const hexFixed = hexColor.replace(shorthandHexRegex, (_, r, g, b, a) => {\n return r + r + g + g + b + b + (a !== undefined ? a + a : \"\");\n }), result = hexRegex.exec(hexFixed);\n return result\n ? {\n a: result[RgbIndexes.a] !== undefined\n ? parseInt(result[RgbIndexes.a], hexRadix) / alphaFactor\n : defaultAlpha,\n b: parseInt(result[RgbIndexes.b], hexRadix),\n g: parseInt(result[RgbIndexes.g], hexRadix),\n r: parseInt(result[RgbIndexes.r], hexRadix),\n }\n : undefined;\n }\n}\n", + "import { HexColorManager } from \"./HexColorManager.js\";\nexport async function loadHexColorPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addColorManager(new HexColorManager(), refresh);\n}\n", + "import { getRangeValue, hslToRgb, hslaToRgba, parseAlpha, } from \"@tsparticles/engine\";\nvar HslIndexes;\n(function (HslIndexes) {\n HslIndexes[HslIndexes[\"h\"] = 1] = \"h\";\n HslIndexes[HslIndexes[\"s\"] = 2] = \"s\";\n HslIndexes[HslIndexes[\"l\"] = 3] = \"l\";\n HslIndexes[HslIndexes[\"a\"] = 5] = \"a\";\n})(HslIndexes || (HslIndexes = {}));\nexport class HslColorManager {\n constructor() {\n this.key = \"hsl\";\n this.stringPrefix = \"hsl\";\n }\n handleColor(color) {\n const colorValue = color.value, hslColor = colorValue.hsl ?? color.value;\n if (hslColor.h !== undefined && hslColor.s !== undefined && hslColor.l !== undefined) {\n return hslToRgb(hslColor);\n }\n }\n handleRangeColor(color) {\n const colorValue = color.value, hslColor = colorValue.hsl ?? color.value;\n if (hslColor.h !== undefined && hslColor.l !== undefined) {\n return hslToRgb({\n h: getRangeValue(hslColor.h),\n l: getRangeValue(hslColor.l),\n s: getRangeValue(hslColor.s),\n });\n }\n }\n parseString(input) {\n if (!input.startsWith(\"hsl\")) {\n return;\n }\n const regex = /hsla?\\(\\s*(\\d+)\\s*[\\s,]\\s*(\\d+)%\\s*[\\s,]\\s*(\\d+)%\\s*([\\s,]\\s*(0|1|0?\\.\\d+|(\\d{1,3})%)\\s*)?\\)/i, result = regex.exec(input), minLength = 4, defaultAlpha = 1, radix = 10;\n return result\n ? hslaToRgba({\n a: result.length > minLength ? parseAlpha(result[HslIndexes.a]) : defaultAlpha,\n h: parseInt(result[HslIndexes.h], radix),\n l: parseInt(result[HslIndexes.l], radix),\n s: parseInt(result[HslIndexes.s], radix),\n })\n : undefined;\n }\n}\n", + "import { HslColorManager } from \"./HslColorManager.js\";\nexport async function loadHslColorPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addColorManager(new HslColorManager(), refresh);\n}\n", + "import { getRandom, getRangeValue, initParticleNumericAnimationValue, percentDenominator, updateAnimation, } from \"@tsparticles/engine\";\nexport class OpacityUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const opacityOptions = particle.options.opacity, pxRatio = 1;\n particle.opacity = initParticleNumericAnimationValue(opacityOptions, pxRatio);\n const opacityAnimation = opacityOptions.animation;\n if (opacityAnimation.enable) {\n particle.opacity.velocity =\n (getRangeValue(opacityAnimation.speed) / percentDenominator) * this.container.retina.reduceFactor;\n if (!opacityAnimation.sync) {\n particle.opacity.velocity *= getRandom();\n }\n }\n }\n isEnabled(particle) {\n const none = 0;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!particle.opacity &&\n particle.opacity.enable &&\n ((particle.opacity.maxLoops ?? none) <= none ||\n ((particle.opacity.maxLoops ?? none) > none &&\n (particle.opacity.loops ?? none) < (particle.opacity.maxLoops ?? none))));\n }\n reset(particle) {\n if (particle.opacity) {\n particle.opacity.time = 0;\n particle.opacity.loops = 0;\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle) || !particle.opacity) {\n return;\n }\n updateAnimation(particle, particle.opacity, true, particle.options.opacity.animation.destroy, delta);\n }\n}\n", + "import { OpacityUpdater } from \"./OpacityUpdater.js\";\nexport async function loadOpacityUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"opacity\", container => {\n return Promise.resolve(new OpacityUpdater(container));\n }, refresh);\n}\n", + "import { OutMode, OutModeDirection, getRangeValue } from \"@tsparticles/engine\";\nconst minVelocity = 0, boundsMin = 0;\nexport function bounceHorizontal(data) {\n if ((data.outMode !== OutMode.bounce && data.outMode !== OutMode.split) ||\n (data.direction !== OutModeDirection.left && data.direction !== OutModeDirection.right)) {\n return;\n }\n if (data.bounds.right < boundsMin && data.direction === OutModeDirection.left) {\n data.particle.position.x = data.size + data.offset.x;\n }\n else if (data.bounds.left > data.canvasSize.width && data.direction === OutModeDirection.right) {\n data.particle.position.x = data.canvasSize.width - data.size - data.offset.x;\n }\n const velocity = data.particle.velocity.x;\n let bounced = false;\n if ((data.direction === OutModeDirection.right &&\n data.bounds.right >= data.canvasSize.width &&\n velocity > minVelocity) ||\n (data.direction === OutModeDirection.left && data.bounds.left <= boundsMin && velocity < minVelocity)) {\n const newVelocity = getRangeValue(data.particle.options.bounce.horizontal.value);\n data.particle.velocity.x *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.x + data.size;\n if (data.bounds.right >= data.canvasSize.width && data.direction === OutModeDirection.right) {\n data.particle.position.x = data.canvasSize.width - minPos;\n }\n else if (data.bounds.left <= boundsMin && data.direction === OutModeDirection.left) {\n data.particle.position.x = minPos;\n }\n if (data.outMode === OutMode.split) {\n data.particle.destroy();\n }\n}\nexport function bounceVertical(data) {\n if ((data.outMode !== OutMode.bounce && data.outMode !== OutMode.split) ||\n (data.direction !== OutModeDirection.bottom && data.direction !== OutModeDirection.top)) {\n return;\n }\n if (data.bounds.bottom < boundsMin && data.direction === OutModeDirection.top) {\n data.particle.position.y = data.size + data.offset.y;\n }\n else if (data.bounds.top > data.canvasSize.height && data.direction === OutModeDirection.bottom) {\n data.particle.position.y = data.canvasSize.height - data.size - data.offset.y;\n }\n const velocity = data.particle.velocity.y;\n let bounced = false;\n if ((data.direction === OutModeDirection.bottom &&\n data.bounds.bottom >= data.canvasSize.height &&\n velocity > minVelocity) ||\n (data.direction === OutModeDirection.top && data.bounds.top <= boundsMin && velocity < minVelocity)) {\n const newVelocity = getRangeValue(data.particle.options.bounce.vertical.value);\n data.particle.velocity.y *= -newVelocity;\n bounced = true;\n }\n if (!bounced) {\n return;\n }\n const minPos = data.offset.y + data.size;\n if (data.bounds.bottom >= data.canvasSize.height && data.direction === OutModeDirection.bottom) {\n data.particle.position.y = data.canvasSize.height - minPos;\n }\n else if (data.bounds.top <= boundsMin && data.direction === OutModeDirection.top) {\n data.particle.position.y = minPos;\n }\n if (data.outMode === OutMode.split) {\n data.particle.destroy();\n }\n}\n", + "import { OutMode, calculateBounds, } from \"@tsparticles/engine\";\nimport { bounceHorizontal, bounceVertical } from \"./Utils.js\";\nexport class BounceOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [\n OutMode.bounce,\n OutMode.split,\n ];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n let handled = false;\n for (const plugin of container.plugins.values()) {\n if (plugin.particleBounce !== undefined) {\n handled = plugin.particleBounce(particle, delta, direction);\n }\n if (handled) {\n break;\n }\n }\n if (handled) {\n return;\n }\n const pos = particle.getPosition(), offset = particle.offset, size = particle.getRadius(), bounds = calculateBounds(pos, size), canvasSize = container.canvas.size;\n bounceHorizontal({ particle, outMode, direction, bounds, canvasSize, offset, size });\n bounceVertical({ particle, outMode, direction, bounds, canvasSize, offset, size });\n }\n}\n", + "import { OutMode, ParticleOutType, Vector, getDistances, isPointInside, } from \"@tsparticles/engine\";\nconst minVelocity = 0;\nexport class DestroyOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [OutMode.destroy];\n }\n update(particle, direction, _delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case ParticleOutType.normal:\n case ParticleOutType.outside:\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n break;\n case ParticleOutType.inside: {\n const { dx, dy } = getDistances(particle.position, particle.moveCenter), { x: vx, y: vy } = particle.velocity;\n if ((vx < minVelocity && dx > particle.moveCenter.radius) ||\n (vy < minVelocity && dy > particle.moveCenter.radius) ||\n (vx >= minVelocity && dx < -particle.moveCenter.radius) ||\n (vy >= minVelocity && dy < -particle.moveCenter.radius)) {\n return;\n }\n break;\n }\n }\n container.particles.remove(particle, particle.group, true);\n }\n}\n", + "import { OutMode, OutModeDirection, Vector, isPointInside, } from \"@tsparticles/engine\";\nconst minVelocity = 0;\nexport class NoneOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [OutMode.none];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n if ((particle.options.move.distance.horizontal &&\n (direction === OutModeDirection.left || direction === OutModeDirection.right)) ??\n (particle.options.move.distance.vertical &&\n (direction === OutModeDirection.top || direction === OutModeDirection.bottom))) {\n return;\n }\n const gravityOptions = particle.options.move.gravity, container = this.container, canvasSize = container.canvas.size, pRadius = particle.getRadius();\n if (!gravityOptions.enable) {\n if ((particle.velocity.y > minVelocity && particle.position.y <= canvasSize.height + pRadius) ||\n (particle.velocity.y < minVelocity && particle.position.y >= -pRadius) ||\n (particle.velocity.x > minVelocity && particle.position.x <= canvasSize.width + pRadius) ||\n (particle.velocity.x < minVelocity && particle.position.x >= -pRadius)) {\n return;\n }\n if (!isPointInside(particle.position, container.canvas.size, Vector.origin, pRadius, direction)) {\n container.particles.remove(particle);\n }\n }\n else {\n const position = particle.position;\n if ((!gravityOptions.inverse &&\n position.y > canvasSize.height + pRadius &&\n direction === OutModeDirection.bottom) ||\n (gravityOptions.inverse && position.y < -pRadius && direction === OutModeDirection.top)) {\n container.particles.remove(particle);\n }\n }\n }\n}\n", + "import { OutMode, OutModeDirection, ParticleOutType, Vector, calculateBounds, getDistances, getRandom, isPointInside, randomInRange, } from \"@tsparticles/engine\";\nconst minVelocity = 0, minDistance = 0;\nexport class OutOutMode {\n constructor(container) {\n this.container = container;\n this.modes = [OutMode.out];\n }\n update(particle, direction, delta, outMode) {\n if (!this.modes.includes(outMode)) {\n return;\n }\n const container = this.container;\n switch (particle.outType) {\n case ParticleOutType.inside: {\n const { x: vx, y: vy } = particle.velocity;\n const circVec = Vector.origin;\n circVec.length = particle.moveCenter.radius;\n circVec.angle = particle.velocity.angle + Math.PI;\n circVec.addTo(Vector.create(particle.moveCenter));\n const { dx, dy } = getDistances(particle.position, circVec);\n if ((vx <= minVelocity && dx >= minDistance) ||\n (vy <= minVelocity && dy >= minDistance) ||\n (vx >= minVelocity && dx <= minDistance) ||\n (vy >= minVelocity && dy <= minDistance)) {\n return;\n }\n particle.position.x = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.width,\n }));\n particle.position.y = Math.floor(randomInRange({\n min: 0,\n max: container.canvas.size.height,\n }));\n const { dx: newDx, dy: newDy } = getDistances(particle.position, particle.moveCenter);\n particle.direction = Math.atan2(-newDy, -newDx);\n particle.velocity.angle = particle.direction;\n break;\n }\n default: {\n if (isPointInside(particle.position, container.canvas.size, Vector.origin, particle.getRadius(), direction)) {\n return;\n }\n switch (particle.outType) {\n case ParticleOutType.outside: {\n particle.position.x =\n Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius,\n })) + particle.moveCenter.x;\n particle.position.y =\n Math.floor(randomInRange({\n min: -particle.moveCenter.radius,\n max: particle.moveCenter.radius,\n })) + particle.moveCenter.y;\n const { dx, dy } = getDistances(particle.position, particle.moveCenter);\n if (particle.moveCenter.radius) {\n particle.direction = Math.atan2(dy, dx);\n particle.velocity.angle = particle.direction;\n }\n break;\n }\n case ParticleOutType.normal: {\n const warp = particle.options.move.warp, canvasSize = container.canvas.size, newPos = {\n bottom: canvasSize.height + particle.getRadius() + particle.offset.y,\n left: -particle.getRadius() - particle.offset.x,\n right: canvasSize.width + particle.getRadius() + particle.offset.x,\n top: -particle.getRadius() - particle.offset.y,\n }, sizeValue = particle.getRadius(), nextBounds = calculateBounds(particle.position, sizeValue);\n if (direction === OutModeDirection.right &&\n nextBounds.left > canvasSize.width + particle.offset.x) {\n particle.position.x = newPos.left;\n particle.initialPosition.x = particle.position.x;\n if (!warp) {\n particle.position.y = getRandom() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n else if (direction === OutModeDirection.left && nextBounds.right < -particle.offset.x) {\n particle.position.x = newPos.right;\n particle.initialPosition.x = particle.position.x;\n if (!warp) {\n particle.position.y = getRandom() * canvasSize.height;\n particle.initialPosition.y = particle.position.y;\n }\n }\n if (direction === OutModeDirection.bottom &&\n nextBounds.top > canvasSize.height + particle.offset.y) {\n if (!warp) {\n particle.position.x = getRandom() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.top;\n particle.initialPosition.y = particle.position.y;\n }\n else if (direction === OutModeDirection.top && nextBounds.bottom < -particle.offset.y) {\n if (!warp) {\n particle.position.x = getRandom() * canvasSize.width;\n particle.initialPosition.x = particle.position.x;\n }\n particle.position.y = newPos.bottom;\n particle.initialPosition.y = particle.position.y;\n }\n break;\n }\n }\n break;\n }\n }\n }\n}\n", + "import { OutMode, OutModeDirection, } from \"@tsparticles/engine\";\nimport { BounceOutMode } from \"./BounceOutMode.js\";\nimport { DestroyOutMode } from \"./DestroyOutMode.js\";\nimport { NoneOutMode } from \"./NoneOutMode.js\";\nimport { OutOutMode } from \"./OutOutMode.js\";\nconst checkOutMode = (outModes, outMode) => {\n return (outModes.default === outMode ||\n outModes.bottom === outMode ||\n outModes.left === outMode ||\n outModes.right === outMode ||\n outModes.top === outMode);\n};\nexport class OutOfCanvasUpdater {\n constructor(container) {\n this._addUpdaterIfMissing = (particle, outMode, getUpdater) => {\n const outModes = particle.options.move.outModes;\n if (!this.updaters.has(outMode) && checkOutMode(outModes, outMode)) {\n this.updaters.set(outMode, getUpdater(this.container));\n }\n };\n this._updateOutMode = (particle, delta, outMode, direction) => {\n for (const updater of this.updaters.values()) {\n updater.update(particle, direction, delta, outMode);\n }\n };\n this.container = container;\n this.updaters = new Map();\n }\n init(particle) {\n this._addUpdaterIfMissing(particle, OutMode.bounce, container => new BounceOutMode(container));\n this._addUpdaterIfMissing(particle, OutMode.out, container => new OutOutMode(container));\n this._addUpdaterIfMissing(particle, OutMode.destroy, container => new DestroyOutMode(container));\n this._addUpdaterIfMissing(particle, OutMode.none, container => new NoneOutMode(container));\n }\n isEnabled(particle) {\n return !particle.destroyed && !particle.spawning;\n }\n update(particle, delta) {\n const outModes = particle.options.move.outModes;\n this._updateOutMode(particle, delta, outModes.bottom ?? outModes.default, OutModeDirection.bottom);\n this._updateOutMode(particle, delta, outModes.left ?? outModes.default, OutModeDirection.left);\n this._updateOutMode(particle, delta, outModes.right ?? outModes.default, OutModeDirection.right);\n this._updateOutMode(particle, delta, outModes.top ?? outModes.default, OutModeDirection.top);\n }\n}\n", + "import { OutOfCanvasUpdater } from \"./OutOfCanvasUpdater.js\";\nexport async function loadOutModesUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"outModes\", container => {\n return Promise.resolve(new OutOfCanvasUpdater(container));\n }, refresh);\n}\n", + "import { getRangeValue, parseAlpha, } from \"@tsparticles/engine\";\nvar RgbIndexes;\n(function (RgbIndexes) {\n RgbIndexes[RgbIndexes[\"r\"] = 1] = \"r\";\n RgbIndexes[RgbIndexes[\"g\"] = 2] = \"g\";\n RgbIndexes[RgbIndexes[\"b\"] = 3] = \"b\";\n RgbIndexes[RgbIndexes[\"a\"] = 5] = \"a\";\n})(RgbIndexes || (RgbIndexes = {}));\nexport class RgbColorManager {\n constructor() {\n this.key = \"rgb\";\n this.stringPrefix = \"rgb\";\n }\n handleColor(color) {\n const colorValue = color.value, rgbColor = colorValue.rgb ?? color.value;\n if (rgbColor.r !== undefined) {\n return rgbColor;\n }\n }\n handleRangeColor(color) {\n const colorValue = color.value, rgbColor = colorValue.rgb ?? color.value;\n if (rgbColor.r !== undefined) {\n return {\n r: getRangeValue(rgbColor.r),\n g: getRangeValue(rgbColor.g),\n b: getRangeValue(rgbColor.b),\n };\n }\n }\n parseString(input) {\n if (!input.startsWith(this.stringPrefix)) {\n return;\n }\n const regex = /rgba?\\(\\s*(\\d{1,3})\\s*[\\s,]\\s*(\\d{1,3})\\s*[\\s,]\\s*(\\d{1,3})\\s*([\\s,]\\s*(0|1|0?\\.\\d+|(\\d{1,3})%)\\s*)?\\)/i, result = regex.exec(input), radix = 10, minLength = 4, defaultAlpha = 1;\n return result\n ? {\n a: result.length > minLength ? parseAlpha(result[RgbIndexes.a]) : defaultAlpha,\n b: parseInt(result[RgbIndexes.b], radix),\n g: parseInt(result[RgbIndexes.g], radix),\n r: parseInt(result[RgbIndexes.r], radix),\n }\n : undefined;\n }\n}\n", + "import { RgbColorManager } from \"./RgbColorManager.js\";\nexport async function loadRgbColorPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addColorManager(new RgbColorManager(), refresh);\n}\n", + "import { getRandom, percentDenominator, updateAnimation, } from \"@tsparticles/engine\";\nconst minLoops = 0;\nexport class SizeUpdater {\n init(particle) {\n const container = particle.container, sizeOptions = particle.options.size, sizeAnimation = sizeOptions.animation;\n if (sizeAnimation.enable) {\n particle.size.velocity =\n ((particle.retina.sizeAnimationSpeed ?? container.retina.sizeAnimationSpeed) / percentDenominator) *\n container.retina.reduceFactor;\n if (!sizeAnimation.sync) {\n particle.size.velocity *= getRandom();\n }\n }\n }\n isEnabled(particle) {\n return (!particle.destroyed &&\n !particle.spawning &&\n particle.size.enable &&\n ((particle.size.maxLoops ?? minLoops) <= minLoops ||\n ((particle.size.maxLoops ?? minLoops) > minLoops &&\n (particle.size.loops ?? minLoops) < (particle.size.maxLoops ?? minLoops))));\n }\n reset(particle) {\n particle.size.loops = minLoops;\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateAnimation(particle, particle.size, true, particle.options.size.animation.destroy, delta);\n }\n}\n", + "import { SizeUpdater } from \"./SizeUpdater.js\";\nexport async function loadSizeUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"size\", () => {\n return Promise.resolve(new SizeUpdater());\n }, refresh);\n}\n", + "import { loadBaseMover } from \"@tsparticles/move-base\";\nimport { loadCircleShape } from \"@tsparticles/shape-circle\";\nimport { loadColorUpdater } from \"@tsparticles/updater-color\";\nimport { loadHexColorPlugin } from \"@tsparticles/plugin-hex-color\";\nimport { loadHslColorPlugin } from \"@tsparticles/plugin-hsl-color\";\nimport { loadOpacityUpdater } from \"@tsparticles/updater-opacity\";\nimport { loadOutModesUpdater } from \"@tsparticles/updater-out-modes\";\nimport { loadRgbColorPlugin } from \"@tsparticles/plugin-rgb-color\";\nimport { loadSizeUpdater } from \"@tsparticles/updater-size\";\nexport async function loadBasic(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await loadHexColorPlugin(engine, false);\n await loadHslColorPlugin(engine, false);\n await loadRgbColorPlugin(engine, false);\n await loadBaseMover(engine, false);\n await loadCircleShape(engine, false);\n await loadColorUpdater(engine, false);\n await loadOpacityUpdater(engine, false);\n await loadOutModesUpdater(engine, false);\n await loadSizeUpdater(engine, false);\n await engine.refresh(refresh);\n}\n", + "import { EasingType } from \"@tsparticles/engine\";\nexport async function loadEasingQuadPlugin(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addEasing(EasingType.easeInQuad, value => value ** 2, false);\n await engine.addEasing(EasingType.easeOutQuad, value => 1 - (1 - value) ** 2, false);\n await engine.addEasing(EasingType.easeInOutQuad, value => (value < 0.5 ? 2 * value ** 2 : 1 - (-2 * value + 2) ** 2 / 2), false);\n await engine.refresh(refresh);\n}\n", + "export function drawEmoji(data, image) {\n const { context, opacity } = data, half = 0.5, previousAlpha = context.globalAlpha;\n if (!image) {\n return;\n }\n const diameter = image.width, radius = diameter * half;\n context.globalAlpha = opacity;\n context.drawImage(image, -radius, -radius, diameter, diameter);\n context.globalAlpha = previousAlpha;\n}\n", + "import { executeOnSingleOrMultiple, getRangeMax, isInArray, itemFromSingleOrMultiple, loadFont, } from \"@tsparticles/engine\";\nimport { drawEmoji } from \"./Utils.js\";\nconst defaultFont = '\"Twemoji Mozilla\", Apple Color Emoji, \"Segoe UI Emoji\", \"Noto Color Emoji\", \"EmojiOne Color\"', noPadding = 0;\nexport class EmojiDrawer {\n constructor() {\n this.validTypes = [\"emoji\"];\n this._emojiShapeDict = new Map();\n }\n destroy() {\n for (const [key, data] of this._emojiShapeDict) {\n if (data instanceof ImageBitmap) {\n data?.close();\n }\n this._emojiShapeDict.delete(key);\n }\n }\n draw(data) {\n const key = data.particle.emojiDataKey;\n if (!key) {\n return;\n }\n const image = this._emojiShapeDict.get(key);\n if (!image) {\n return;\n }\n drawEmoji(data, image);\n }\n async init(container) {\n const options = container.actualOptions, { validTypes } = this;\n if (!validTypes.find(t => isInArray(t, options.particles.shape.type))) {\n return;\n }\n const promises = [loadFont(defaultFont)], shapeOptions = validTypes\n .map(t => options.particles.shape.options[t])\n .find(t => !!t);\n if (shapeOptions) {\n executeOnSingleOrMultiple(shapeOptions, shape => {\n if (shape.font) {\n promises.push(loadFont(shape.font));\n }\n });\n }\n await Promise.all(promises);\n }\n particleDestroy(particle) {\n particle.emojiDataKey = undefined;\n }\n particleInit(_container, particle) {\n const double = 2, shapeData = particle.shapeData;\n if (!shapeData?.value) {\n return;\n }\n const emoji = itemFromSingleOrMultiple(shapeData.value, particle.randomIndexData);\n if (!emoji) {\n return;\n }\n const emojiOptions = typeof emoji === \"string\"\n ? {\n font: shapeData.font ?? defaultFont,\n padding: shapeData.padding ?? noPadding,\n value: emoji,\n }\n : {\n font: defaultFont,\n padding: noPadding,\n ...shapeData,\n ...emoji,\n }, font = emojiOptions.font, value = emojiOptions.value;\n const key = `${value}_${font}`;\n if (this._emojiShapeDict.has(key)) {\n particle.emojiDataKey = key;\n return;\n }\n const padding = emojiOptions.padding * double, maxSize = getRangeMax(particle.size.value), fullSize = maxSize + padding, canvasSize = fullSize * double;\n let image;\n if (typeof OffscreenCanvas !== \"undefined\") {\n const canvas = new OffscreenCanvas(canvasSize, canvasSize), context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(value, fullSize, fullSize);\n image = canvas.transferToImageBitmap();\n }\n else {\n const canvas = document.createElement(\"canvas\");\n canvas.width = canvasSize;\n canvas.height = canvasSize;\n const context = canvas.getContext(\"2d\");\n if (!context) {\n return;\n }\n context.font = `400 ${maxSize * double}px ${font}`;\n context.textBaseline = \"middle\";\n context.textAlign = \"center\";\n context.fillText(value, fullSize, fullSize);\n image = canvas;\n }\n this._emojiShapeDict.set(key, image);\n particle.emojiDataKey = key;\n }\n}\n", + "import { EmojiDrawer } from \"./EmojiDrawer.js\";\nexport async function loadEmojiShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new EmojiDrawer(), refresh);\n}\n", + "import { Circle, Vector, clamp, getDistances, } from \"@tsparticles/engine\";\nconst minFactor = 1, identity = 1, minRadius = 0;\nfunction processAttract(engine, container, position, attractRadius, area, queryCb) {\n const attractOptions = container.actualOptions.interactivity.modes.attract;\n if (!attractOptions) {\n return;\n }\n const query = container.particles.quadTree.query(area, queryCb);\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(particle.position, position), velocity = attractOptions.speed * attractOptions.factor, attractFactor = clamp(engine.getEasing(attractOptions.easing)(identity - distance / attractRadius) * velocity, minFactor, attractOptions.maxSpeed), normVec = Vector.create(!distance ? velocity : (dx / distance) * attractFactor, !distance ? velocity : (dy / distance) * attractFactor);\n particle.position.subFrom(normVec);\n }\n}\nexport function clickAttract(engine, container, enabledCb) {\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n const { attract } = container;\n if (!attract.finish) {\n if (!attract.count) {\n attract.count = 0;\n }\n attract.count++;\n if (attract.count === container.particles.count) {\n attract.finish = true;\n }\n }\n if (attract.clicking) {\n const mousePos = container.interactivity.mouse.clickPosition, attractRadius = container.retina.attractModeDistance;\n if (!attractRadius || attractRadius < minRadius || !mousePos) {\n return;\n }\n processAttract(engine, container, mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius), (p) => enabledCb(p));\n }\n else if (attract.clicking === false) {\n attract.particles = [];\n }\n}\nexport function hoverAttract(engine, container, enabledCb) {\n const mousePos = container.interactivity.mouse.position, attractRadius = container.retina.attractModeDistance;\n if (!attractRadius || attractRadius < minRadius || !mousePos) {\n return;\n }\n processAttract(engine, container, mousePos, attractRadius, new Circle(mousePos.x, mousePos.y, attractRadius), (p) => enabledCb(p));\n}\n", + "import { EasingType, isNull } from \"@tsparticles/engine\";\nexport class Attract {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.easing = EasingType.easeOutQuad;\n this.factor = 1;\n this.maxSpeed = 50;\n this.speed = 1;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n }\n}\n", + "import { ExternalInteractorBase, isInArray, millisecondsToSeconds, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { clickAttract, hoverAttract } from \"./Utils.js\";\nimport { Attract } from \"./Options/Classes/Attract.js\";\nconst attractMode = \"attract\";\nexport class Attractor extends ExternalInteractorBase {\n constructor(engine, container) {\n super(container);\n this._engine = engine;\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions, attract = options.interactivity.modes.attract;\n if (!attract || mode !== attractMode) {\n return;\n }\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = true;\n container.attract.count = 0;\n for (const particle of container.attract.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n container.attract.particles = [];\n container.attract.finish = false;\n setTimeout(() => {\n if (container.destroyed) {\n return;\n }\n if (!container.attract) {\n container.attract = { particles: [] };\n }\n container.attract.clicking = false;\n }, attract.duration * millisecondsToSeconds);\n };\n }\n clear() {\n }\n init() {\n const container = this.container, attract = container.actualOptions.interactivity.modes.attract;\n if (!attract) {\n return;\n }\n container.retina.attractModeDistance = attract.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, { enable: hoverEnabled, mode: hoverMode } = events.onHover, { enable: clickEnabled, mode: clickMode } = events.onClick;\n if (mouseMoveStatus && hoverEnabled && isInArray(attractMode, hoverMode)) {\n hoverAttract(this._engine, this.container, p => this.isEnabled(p));\n }\n else if (clickEnabled && isInArray(attractMode, clickMode)) {\n clickAttract(this._engine, this.container, p => this.isEnabled(p));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events;\n if ((!mouse.position || !events.onHover.enable) && (!mouse.clickPosition || !events.onClick.enable)) {\n return false;\n }\n const hoverMode = events.onHover.mode, clickMode = events.onClick.mode;\n return isInArray(attractMode, hoverMode) || isInArray(attractMode, clickMode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.attract) {\n options.attract = new Attract();\n }\n for (const source of sources) {\n options.attract.load(source?.attract);\n }\n }\n reset() {\n }\n}\n", + "import { Attractor } from \"./Attractor.js\";\nexport async function loadExternalAttractInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalAttract\", container => {\n return Promise.resolve(new Attractor(engine, container));\n }, refresh);\n}\nexport * from \"./Options/Classes/Attract.js\";\nexport * from \"./Options/Interfaces/IAttract.js\";\n", + "import { Circle, DivType, Rectangle, Vector, calculateBounds, circleBounce, circleBounceDataFromParticle, divModeExecute, rectBounce, } from \"@tsparticles/engine\";\nconst squareExp = 2, half = 0.5, halfPI = Math.PI * half, double = 2, toleranceFactor = 10, minRadius = 0;\nfunction processBounce(container, position, radius, area, enabledCb) {\n const query = container.particles.quadTree.query(area, enabledCb);\n for (const particle of query) {\n if (area instanceof Circle) {\n circleBounce(circleBounceDataFromParticle(particle), {\n position,\n radius,\n mass: radius ** squareExp * halfPI,\n velocity: Vector.origin,\n factor: Vector.origin,\n });\n }\n else if (area instanceof Rectangle) {\n rectBounce(particle, calculateBounds(position, radius));\n }\n }\n}\nfunction singleSelectorBounce(container, selector, div, bounceCb) {\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach(item => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth * half) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight * half) * pxRatio,\n }, radius = elem.offsetWidth * half * pxRatio, tolerance = toleranceFactor * pxRatio, area = div.type === DivType.circle\n ? new Circle(pos.x, pos.y, radius + tolerance)\n : new Rectangle(elem.offsetLeft * pxRatio - tolerance, elem.offsetTop * pxRatio - tolerance, elem.offsetWidth * pxRatio + tolerance * double, elem.offsetHeight * pxRatio + tolerance * double);\n bounceCb(pos, radius, area);\n });\n}\nexport function divBounce(container, divs, bounceMode, enabledCb) {\n divModeExecute(bounceMode, divs, (selector, div) => singleSelectorBounce(container, selector, div, (pos, radius, area) => processBounce(container, pos, radius, area, enabledCb)));\n}\nexport function mouseBounce(container, enabledCb) {\n const pxRatio = container.retina.pixelRatio, tolerance = toleranceFactor * pxRatio, mousePos = container.interactivity.mouse.position, radius = container.retina.bounceModeDistance;\n if (!radius || radius < minRadius || !mousePos) {\n return;\n }\n processBounce(container, mousePos, radius, new Circle(mousePos.x, mousePos.y, radius + tolerance), enabledCb);\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nexport class Bounce {\n constructor() {\n this.distance = 200;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n }\n}\n", + "import { ExternalInteractorBase, isDivModeEnabled, isInArray, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { divBounce, mouseBounce } from \"./Utils.js\";\nimport { Bounce } from \"./Options/Classes/Bounce.js\";\nconst bounceMode = \"bounce\";\nexport class Bouncer extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, bounce = container.actualOptions.interactivity.modes.bounce;\n if (!bounce) {\n return;\n }\n container.retina.bounceModeDistance = bounce.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, events = options.interactivity.events, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, hoverEnabled = events.onHover.enable, hoverMode = events.onHover.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(bounceMode, hoverMode)) {\n mouseBounce(this.container, p => this.isEnabled(p));\n }\n else {\n divBounce(this.container, divs, bounceMode, p => this.isEnabled(p));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events, divs = events.onDiv;\n return ((!!mouse.position && events.onHover.enable && isInArray(bounceMode, events.onHover.mode)) ||\n isDivModeEnabled(bounceMode, divs));\n }\n loadModeOptions(options, ...sources) {\n if (!options.bounce) {\n options.bounce = new Bounce();\n }\n for (const source of sources) {\n options.bounce.load(source?.bounce);\n }\n }\n reset() {\n }\n}\n", + "import { Bouncer } from \"./Bouncer.js\";\nexport async function loadExternalBounceInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalBounce\", container => {\n return Promise.resolve(new Bouncer(container));\n }, refresh);\n}\nexport * from \"./Options/Classes/Bounce.js\";\nexport * from \"./Options/Interfaces/IBounce.js\";\n", + "import { OptionsColor, executeOnSingleOrMultiple, isArray, isNull, } from \"@tsparticles/engine\";\nexport class BubbleBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.mix = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.mix !== undefined) {\n this.mix = data.mix;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n if (data.color !== undefined) {\n const sourceColor = isArray(this.color) ? undefined : this.color;\n this.color = executeOnSingleOrMultiple(data.color, color => {\n return OptionsColor.create(sourceColor, color);\n });\n }\n if (data.size !== undefined) {\n this.size = data.size;\n }\n }\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nimport { BubbleBase } from \"./BubbleBase.js\";\nexport class BubbleDiv extends BubbleBase {\n constructor() {\n super();\n this.selectors = [];\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n", + "import { executeOnSingleOrMultiple, isNull, } from \"@tsparticles/engine\";\nimport { BubbleBase } from \"./BubbleBase.js\";\nimport { BubbleDiv } from \"./BubbleDiv.js\";\nexport class Bubble extends BubbleBase {\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n this.divs = executeOnSingleOrMultiple(data.divs, div => {\n const tmp = new BubbleDiv();\n tmp.load(div);\n return tmp;\n });\n }\n}\n", + "export var ProcessBubbleType;\n(function (ProcessBubbleType) {\n ProcessBubbleType[\"color\"] = \"color\";\n ProcessBubbleType[\"opacity\"] = \"opacity\";\n ProcessBubbleType[\"size\"] = \"size\";\n})(ProcessBubbleType || (ProcessBubbleType = {}));\n", + "import { clamp } from \"@tsparticles/engine\";\nexport function calculateBubbleValue(particleValue, modeValue, optionsValue, ratio) {\n if (modeValue >= optionsValue) {\n const value = particleValue + (modeValue - optionsValue) * ratio;\n return clamp(value, particleValue, modeValue);\n }\n else if (modeValue < optionsValue) {\n const value = particleValue - (optionsValue - modeValue) * ratio;\n return clamp(value, modeValue, particleValue);\n }\n}\n", + "import { Circle, DivType, ExternalInteractorBase, Rectangle, colorMix, divMode, divModeExecute, getDistance, getRangeMax, isDivModeEnabled, isInArray, itemFromSingleOrMultiple, millisecondsToSeconds, mouseLeaveEvent, mouseMoveEvent, rangeColorToHsl, rgbToHsl, } from \"@tsparticles/engine\";\nimport { Bubble } from \"./Options/Classes/Bubble.js\";\nimport { ProcessBubbleType } from \"./Enums.js\";\nimport { calculateBubbleValue } from \"./Utils.js\";\nconst bubbleMode = \"bubble\", minDistance = 0, defaultClickTime = 0, double = 2, defaultOpacity = 1, ratioOffset = 1, defaultBubbleValue = 0, minRatio = 0, half = 0.5, defaultRatio = 1;\nexport class Bubbler extends ExternalInteractorBase {\n constructor(container, engine) {\n super(container);\n this._clickBubble = () => {\n const container = this.container, options = container.actualOptions, mouseClickPos = container.interactivity.mouse.clickPosition, bubbleOptions = options.interactivity.modes.bubble;\n if (!bubbleOptions || !mouseClickPos) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n const distance = container.retina.bubbleModeDistance;\n if (!distance || distance < minDistance) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mouseClickPos, distance, p => this.isEnabled(p)), { bubble } = container;\n for (const particle of query) {\n if (!bubble.clicking) {\n continue;\n }\n particle.bubble.inRange = !bubble.durationEnd;\n const pos = particle.getPosition(), distMouse = getDistance(pos, mouseClickPos), timeSpent = (new Date().getTime() - (container.interactivity.mouse.clickTime ?? defaultClickTime)) /\n millisecondsToSeconds;\n if (timeSpent > bubbleOptions.duration) {\n bubble.durationEnd = true;\n }\n if (timeSpent > bubbleOptions.duration * double) {\n bubble.clicking = false;\n bubble.durationEnd = false;\n }\n const sizeData = {\n bubbleObj: {\n optValue: container.retina.bubbleModeSize,\n value: particle.bubble.radius,\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.size.value) * container.retina.pixelRatio,\n value: particle.size.value,\n },\n type: ProcessBubbleType.size,\n };\n this._process(particle, distMouse, timeSpent, sizeData);\n const opacityData = {\n bubbleObj: {\n optValue: bubbleOptions.opacity,\n value: particle.bubble.opacity,\n },\n particlesObj: {\n optValue: getRangeMax(particle.options.opacity.value),\n value: particle.opacity?.value ?? defaultOpacity,\n },\n type: ProcessBubbleType.opacity,\n };\n this._process(particle, distMouse, timeSpent, opacityData);\n if (!bubble.durationEnd && distMouse <= distance) {\n this._hoverBubbleColor(particle, distMouse);\n }\n else {\n delete particle.bubble.color;\n }\n }\n };\n this._hoverBubble = () => {\n const container = this.container, mousePos = container.interactivity.mouse.position, distance = container.retina.bubbleModeDistance;\n if (!distance || distance < minDistance || !mousePos) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mousePos, distance, p => this.isEnabled(p));\n for (const particle of query) {\n particle.bubble.inRange = true;\n const pos = particle.getPosition(), pointDistance = getDistance(pos, mousePos), ratio = ratioOffset - pointDistance / distance;\n if (pointDistance <= distance) {\n if (ratio >= minRatio && container.interactivity.status === mouseMoveEvent) {\n this._hoverBubbleSize(particle, ratio);\n this._hoverBubbleOpacity(particle, ratio);\n this._hoverBubbleColor(particle, ratio);\n }\n }\n else {\n this.reset(particle);\n }\n if (container.interactivity.status === mouseLeaveEvent) {\n this.reset(particle);\n }\n }\n };\n this._hoverBubbleColor = (particle, ratio, divBubble) => {\n const options = this.container.actualOptions, bubbleOptions = divBubble ?? options.interactivity.modes.bubble;\n if (!bubbleOptions) {\n return;\n }\n if (!particle.bubble.finalColor) {\n const modeColor = bubbleOptions.color;\n if (!modeColor) {\n return;\n }\n const bubbleColor = itemFromSingleOrMultiple(modeColor);\n particle.bubble.finalColor = rangeColorToHsl(this._engine, bubbleColor);\n }\n if (!particle.bubble.finalColor) {\n return;\n }\n if (bubbleOptions.mix) {\n particle.bubble.color = undefined;\n const pColor = particle.getFillColor();\n particle.bubble.color = pColor\n ? rgbToHsl(colorMix(pColor, particle.bubble.finalColor, ratioOffset - ratio, ratio))\n : particle.bubble.finalColor;\n }\n else {\n particle.bubble.color = particle.bubble.finalColor;\n }\n };\n this._hoverBubbleOpacity = (particle, ratio, divBubble) => {\n const container = this.container, options = container.actualOptions, modeOpacity = divBubble?.opacity ?? options.interactivity.modes.bubble?.opacity;\n if (!modeOpacity) {\n return;\n }\n const optOpacity = particle.options.opacity.value, pOpacity = particle.opacity?.value ?? defaultOpacity, opacity = calculateBubbleValue(pOpacity, modeOpacity, getRangeMax(optOpacity), ratio);\n if (opacity !== undefined) {\n particle.bubble.opacity = opacity;\n }\n };\n this._hoverBubbleSize = (particle, ratio, divBubble) => {\n const container = this.container, modeSize = divBubble?.size ? divBubble.size * container.retina.pixelRatio : container.retina.bubbleModeSize;\n if (modeSize === undefined) {\n return;\n }\n const optSize = getRangeMax(particle.options.size.value) * container.retina.pixelRatio, pSize = particle.size.value, size = calculateBubbleValue(pSize, modeSize, optSize, ratio);\n if (size !== undefined) {\n particle.bubble.radius = size;\n }\n };\n this._process = (particle, distMouse, timeSpent, data) => {\n const container = this.container, bubbleParam = data.bubbleObj.optValue, options = container.actualOptions, bubbleOptions = options.interactivity.modes.bubble;\n if (!bubbleOptions || bubbleParam === undefined) {\n return;\n }\n const bubbleDuration = bubbleOptions.duration, bubbleDistance = container.retina.bubbleModeDistance, particlesParam = data.particlesObj.optValue, pObjBubble = data.bubbleObj.value, pObj = data.particlesObj.value ?? defaultBubbleValue, type = data.type;\n if (!bubbleDistance || bubbleDistance < minDistance || bubbleParam === particlesParam) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n if (container.bubble.durationEnd) {\n if (pObjBubble) {\n if (type === ProcessBubbleType.size) {\n delete particle.bubble.radius;\n }\n if (type === ProcessBubbleType.opacity) {\n delete particle.bubble.opacity;\n }\n }\n }\n else {\n if (distMouse <= bubbleDistance) {\n const obj = pObjBubble ?? pObj;\n if (obj !== bubbleParam) {\n const value = pObj - (timeSpent * (pObj - bubbleParam)) / bubbleDuration;\n if (type === ProcessBubbleType.size) {\n particle.bubble.radius = value;\n }\n if (type === ProcessBubbleType.opacity) {\n particle.bubble.opacity = value;\n }\n }\n }\n else {\n if (type === ProcessBubbleType.size) {\n delete particle.bubble.radius;\n }\n if (type === ProcessBubbleType.opacity) {\n delete particle.bubble.opacity;\n }\n }\n }\n };\n this._singleSelectorHover = (delta, selector, div) => {\n const container = this.container, selectors = document.querySelectorAll(selector), bubble = container.actualOptions.interactivity.modes.bubble;\n if (!bubble || !selectors.length) {\n return;\n }\n selectors.forEach(item => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth * half) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight * half) * pxRatio,\n }, repulseRadius = elem.offsetWidth * half * pxRatio, area = div.type === DivType.circle\n ? new Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), query = container.particles.quadTree.query(area, p => this.isEnabled(p));\n for (const particle of query) {\n if (!area.contains(particle.getPosition())) {\n continue;\n }\n particle.bubble.inRange = true;\n const divs = bubble.divs, divBubble = divMode(divs, elem);\n if (!particle.bubble.div || particle.bubble.div !== elem) {\n this.clear(particle, delta, true);\n particle.bubble.div = elem;\n }\n this._hoverBubbleSize(particle, defaultRatio, divBubble);\n this._hoverBubbleOpacity(particle, defaultRatio, divBubble);\n this._hoverBubbleColor(particle, defaultRatio, divBubble);\n }\n });\n };\n this._engine = engine;\n if (!container.bubble) {\n container.bubble = {};\n }\n this.handleClickMode = (mode) => {\n if (mode !== bubbleMode) {\n return;\n }\n if (!container.bubble) {\n container.bubble = {};\n }\n container.bubble.clicking = true;\n };\n }\n clear(particle, delta, force) {\n if (particle.bubble.inRange && !force) {\n return;\n }\n delete particle.bubble.div;\n delete particle.bubble.opacity;\n delete particle.bubble.radius;\n delete particle.bubble.color;\n }\n init() {\n const container = this.container, bubble = container.actualOptions.interactivity.modes.bubble;\n if (!bubble) {\n return;\n }\n container.retina.bubbleModeDistance = bubble.distance * container.retina.pixelRatio;\n if (bubble.size !== undefined) {\n container.retina.bubbleModeSize = bubble.size * container.retina.pixelRatio;\n }\n }\n interact(delta) {\n const options = this.container.actualOptions, events = options.interactivity.events, onHover = events.onHover, onClick = events.onClick, hoverEnabled = onHover.enable, hoverMode = onHover.mode, clickEnabled = onClick.enable, clickMode = onClick.mode, divs = events.onDiv;\n if (hoverEnabled && isInArray(bubbleMode, hoverMode)) {\n this._hoverBubble();\n }\n else if (clickEnabled && isInArray(bubbleMode, clickMode)) {\n this._clickBubble();\n }\n else {\n divModeExecute(bubbleMode, divs, (selector, div) => this._singleSelectorHover(delta, selector, div));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events, { onClick, onDiv, onHover } = events, divBubble = isDivModeEnabled(bubbleMode, onDiv);\n if (!(divBubble || (onHover.enable && !!mouse.position) || (onClick.enable && mouse.clickPosition))) {\n return false;\n }\n return isInArray(bubbleMode, onHover.mode) || isInArray(bubbleMode, onClick.mode) || divBubble;\n }\n loadModeOptions(options, ...sources) {\n if (!options.bubble) {\n options.bubble = new Bubble();\n }\n for (const source of sources) {\n options.bubble.load(source?.bubble);\n }\n }\n reset(particle) {\n particle.bubble.inRange = false;\n }\n}\n", + "import { Bubbler } from \"./Bubbler.js\";\nexport async function loadExternalBubbleInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalBubble\", container => {\n return Promise.resolve(new Bubbler(container, engine));\n }, refresh);\n}\nexport * from \"./Options/Classes/BubbleBase.js\";\nexport * from \"./Options/Classes/BubbleDiv.js\";\nexport * from \"./Options/Classes/Bubble.js\";\nexport * from \"./Options/Interfaces/IBubbleBase.js\";\nexport * from \"./Options/Interfaces/IBubbleDiv.js\";\nexport * from \"./Options/Interfaces/IBubble.js\";\n", + "import { isNull } from \"@tsparticles/engine\";\nexport class ConnectLinks {\n constructor() {\n this.opacity = 0.5;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nimport { ConnectLinks } from \"./ConnectLinks.js\";\nexport class Connect {\n constructor() {\n this.distance = 80;\n this.links = new ConnectLinks();\n this.radius = 60;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load(data.links);\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n", + "import { clamp, colorMix, drawLine, getStyleFromHsl, getStyleFromRgb, } from \"@tsparticles/engine\";\nconst gradientMin = 0, gradientMax = 1, defaultLinksWidth = 0;\nexport function gradient(context, p1, p2, opacity) {\n const gradStop = Math.floor(p2.getRadius() / p1.getRadius()), color1 = p1.getFillColor(), color2 = p2.getFillColor();\n if (!color1 || !color2) {\n return;\n }\n const sourcePos = p1.getPosition(), destPos = p2.getPosition(), midRgb = colorMix(color1, color2, p1.getRadius(), p2.getRadius()), grad = context.createLinearGradient(sourcePos.x, sourcePos.y, destPos.x, destPos.y);\n grad.addColorStop(gradientMin, getStyleFromHsl(color1, opacity));\n grad.addColorStop(clamp(gradStop, gradientMin, gradientMax), getStyleFromRgb(midRgb, opacity));\n grad.addColorStop(gradientMax, getStyleFromHsl(color2, opacity));\n return grad;\n}\nexport function drawConnectLine(context, width, lineStyle, begin, end) {\n drawLine(context, begin, end);\n context.lineWidth = width;\n context.strokeStyle = lineStyle;\n context.stroke();\n}\nexport function lineStyle(container, ctx, p1, p2) {\n const options = container.actualOptions, connectOptions = options.interactivity.modes.connect;\n if (!connectOptions) {\n return;\n }\n return gradient(ctx, p1, p2, connectOptions.links.opacity);\n}\nexport function drawConnection(container, p1, p2) {\n container.canvas.draw(ctx => {\n const ls = lineStyle(container, ctx, p1, p2);\n if (!ls) {\n return;\n }\n const pos1 = p1.getPosition(), pos2 = p2.getPosition();\n drawConnectLine(ctx, p1.retina.linksWidth ?? defaultLinksWidth, ls, pos1, pos2);\n });\n}\n", + "import { ExternalInteractorBase, isInArray, } from \"@tsparticles/engine\";\nimport { Connect } from \"./Options/Classes/Connect.js\";\nimport { drawConnection } from \"./Utils.js\";\nconst connectMode = \"connect\", minDistance = 0;\nexport class Connector extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n const container = this.container, connect = container.actualOptions.interactivity.modes.connect;\n if (!connect) {\n return;\n }\n container.retina.connectModeDistance = connect.distance * container.retina.pixelRatio;\n container.retina.connectModeRadius = connect.radius * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions;\n if (options.interactivity.events.onHover.enable && container.interactivity.status === \"pointermove\") {\n const mousePos = container.interactivity.mouse.position, { connectModeDistance, connectModeRadius } = container.retina;\n if (!connectModeDistance ||\n connectModeDistance < minDistance ||\n !connectModeRadius ||\n connectModeRadius < minDistance ||\n !mousePos) {\n return;\n }\n const distance = Math.abs(connectModeRadius), query = container.particles.quadTree.queryCircle(mousePos, distance, p => this.isEnabled(p));\n query.forEach((p1, i) => {\n const pos1 = p1.getPosition(), indexOffset = 1;\n for (const p2 of query.slice(i + indexOffset)) {\n const pos2 = p2.getPosition(), distMax = Math.abs(connectModeDistance), xDiff = Math.abs(pos1.x - pos2.x), yDiff = Math.abs(pos1.y - pos2.y);\n if (xDiff < distMax && yDiff < distMax) {\n drawConnection(container, p1, p2);\n }\n }\n });\n }\n }\n isEnabled(particle) {\n const container = this.container, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? container.actualOptions.interactivity).events;\n if (!(events.onHover.enable && mouse.position)) {\n return false;\n }\n return isInArray(connectMode, events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.connect) {\n options.connect = new Connect();\n }\n for (const source of sources) {\n options.connect.load(source?.connect);\n }\n }\n reset() {\n }\n}\n", + "import { Connector } from \"./Connector.js\";\nexport async function loadExternalConnectInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalConnect\", container => {\n return Promise.resolve(new Connector(container));\n }, refresh);\n}\nexport * from \"./Options/Classes/Connect.js\";\nexport * from \"./Options/Classes/ConnectLinks.js\";\nexport * from \"./Options/Interfaces/IConnect.js\";\nexport * from \"./Options/Interfaces/IConnectLinks.js\";\n", + "import { OptionsColor, isNull } from \"@tsparticles/engine\";\nexport class GrabLinks {\n constructor() {\n this.blink = false;\n this.consent = false;\n this.opacity = 1;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nimport { GrabLinks } from \"./GrabLinks.js\";\nexport class Grab {\n constructor() {\n this.distance = 100;\n this.links = new GrabLinks();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n this.links.load(data.links);\n }\n}\n", + "import { drawLine, getStyleFromRgb } from \"@tsparticles/engine\";\nconst defaultWidth = 0;\nexport function drawGrabLine(context, width, begin, end, colorLine, opacity) {\n drawLine(context, begin, end);\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n context.lineWidth = width;\n context.stroke();\n}\nexport function drawGrab(container, particle, lineColor, opacity, mousePos) {\n container.canvas.draw(ctx => {\n const beginPos = particle.getPosition();\n drawGrabLine(ctx, particle.retina.linksWidth ?? defaultWidth, beginPos, mousePos, lineColor, opacity);\n });\n}\n", + "import { ExternalInteractorBase, getDistance, getLinkColor, getLinkRandomColor, isInArray, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { Grab } from \"./Options/Classes/Grab.js\";\nimport { drawGrab } from \"./Utils.js\";\nconst grabMode = \"grab\", minDistance = 0, minOpacity = 0;\nexport class Grabber extends ExternalInteractorBase {\n constructor(container, engine) {\n super(container);\n this._engine = engine;\n }\n clear() {\n }\n init() {\n const container = this.container, grab = container.actualOptions.interactivity.modes.grab;\n if (!grab) {\n return;\n }\n container.retina.grabModeDistance = grab.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, interactivity = options.interactivity;\n if (!interactivity.modes.grab ||\n !interactivity.events.onHover.enable ||\n container.interactivity.status !== mouseMoveEvent) {\n return;\n }\n const mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const distance = container.retina.grabModeDistance;\n if (!distance || distance < minDistance) {\n return;\n }\n const query = container.particles.quadTree.queryCircle(mousePos, distance, p => this.isEnabled(p));\n for (const particle of query) {\n const pos = particle.getPosition(), pointDistance = getDistance(pos, mousePos);\n if (pointDistance > distance) {\n continue;\n }\n const grabLineOptions = interactivity.modes.grab.links, lineOpacity = grabLineOptions.opacity, opacityLine = lineOpacity - (pointDistance * lineOpacity) / distance;\n if (opacityLine <= minOpacity) {\n continue;\n }\n const optColor = grabLineOptions.color ?? particle.options.links?.color;\n if (!container.particles.grabLineColor && optColor) {\n const linksOptions = interactivity.modes.grab.links;\n container.particles.grabLineColor = getLinkRandomColor(this._engine, optColor, linksOptions.blink, linksOptions.consent);\n }\n const colorLine = getLinkColor(particle, undefined, container.particles.grabLineColor);\n if (!colorLine) {\n continue;\n }\n drawGrab(container, particle, colorLine, opacityLine, mousePos);\n }\n }\n isEnabled(particle) {\n const container = this.container, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(grabMode, events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.grab) {\n options.grab = new Grab();\n }\n for (const source of sources) {\n options.grab.load(source?.grab);\n }\n }\n reset() {\n }\n}\n", + "import { Grabber } from \"./Grabber.js\";\nexport async function loadExternalGrabInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalGrab\", container => {\n return Promise.resolve(new Grabber(container, engine));\n }, refresh);\n}\nexport * from \"./Options/Classes/Grab.js\";\nexport * from \"./Options/Classes/GrabLinks.js\";\nexport * from \"./Options/Interfaces/IGrab.js\";\nexport * from \"./Options/Interfaces/IGrabLinks.js\";\n", + "import { ExternalInteractorBase } from \"@tsparticles/engine\";\nconst pauseMode = \"pause\";\nexport class Pauser extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== pauseMode) {\n return;\n }\n const container = this.container;\n if (container.animationStatus) {\n container.pause();\n }\n else {\n container.play();\n }\n };\n }\n clear() {\n }\n init() {\n }\n interact() {\n }\n isEnabled() {\n return true;\n }\n reset() {\n }\n}\n", + "import { Pauser } from \"./Pauser.js\";\nexport async function loadExternalPauseInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalPause\", container => {\n return Promise.resolve(new Pauser(container));\n }, refresh);\n}\n", + "import { deepExtend, executeOnSingleOrMultiple, isNull, setRangeValue, } from \"@tsparticles/engine\";\nexport class Push {\n constructor() {\n this.default = true;\n this.groups = [];\n this.quantity = 4;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.default !== undefined) {\n this.default = data.default;\n }\n if (data.groups !== undefined) {\n this.groups = data.groups.map(t => t);\n }\n if (!this.groups.length) {\n this.default = true;\n }\n const quantity = data.quantity;\n if (quantity !== undefined) {\n this.quantity = setRangeValue(quantity);\n }\n this.particles = executeOnSingleOrMultiple(data.particles, particles => {\n return deepExtend({}, particles);\n });\n }\n}\n", + "import { ExternalInteractorBase, deepExtend, getRangeValue, itemFromArray, itemFromSingleOrMultiple, } from \"@tsparticles/engine\";\nimport { Push } from \"./Options/Classes/Push.js\";\nconst pushMode = \"push\", minQuantity = 0;\nexport class Pusher extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n if (mode !== pushMode) {\n return;\n }\n const container = this.container, options = container.actualOptions, pushOptions = options.interactivity.modes.push;\n if (!pushOptions) {\n return;\n }\n const quantity = getRangeValue(pushOptions.quantity);\n if (quantity <= minQuantity) {\n return;\n }\n const group = itemFromArray([undefined, ...pushOptions.groups]), groupOptions = group !== undefined ? container.actualOptions.particles.groups[group] : undefined, particlesOptions = itemFromSingleOrMultiple(pushOptions.particles), overrideOptions = deepExtend(groupOptions, particlesOptions);\n void container.particles.push(quantity, container.interactivity.mouse, overrideOptions, group);\n };\n }\n clear() {\n }\n init() {\n }\n interact() {\n }\n isEnabled() {\n return true;\n }\n loadModeOptions(options, ...sources) {\n if (!options.push) {\n options.push = new Push();\n }\n for (const source of sources) {\n options.push.load(source?.push);\n }\n }\n reset() {\n }\n}\n", + "import { Pusher } from \"./Pusher.js\";\nexport async function loadExternalPushInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalPush\", container => {\n return Promise.resolve(new Pusher(container));\n }, refresh);\n}\nexport * from \"./Options/Classes/Push.js\";\nexport * from \"./Options/Interfaces/IPush.js\";\n", + "import { isNull, setRangeValue } from \"@tsparticles/engine\";\nexport class Remove {\n constructor() {\n this.quantity = 2;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n const quantity = data.quantity;\n if (quantity !== undefined) {\n this.quantity = setRangeValue(quantity);\n }\n }\n}\n", + "import { ExternalInteractorBase, getRangeValue, } from \"@tsparticles/engine\";\nimport { Remove } from \"./Options/Classes/Remove.js\";\nconst removeMode = \"remove\";\nexport class Remover extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n this.handleClickMode = (mode) => {\n const container = this.container, options = container.actualOptions;\n if (!options.interactivity.modes.remove || mode !== removeMode) {\n return;\n }\n const removeNb = getRangeValue(options.interactivity.modes.remove.quantity);\n container.particles.removeQuantity(removeNb);\n };\n }\n clear() {\n }\n init() {\n }\n interact() {\n }\n isEnabled() {\n return true;\n }\n loadModeOptions(options, ...sources) {\n if (!options.remove) {\n options.remove = new Remove();\n }\n for (const source of sources) {\n options.remove.load(source?.remove);\n }\n }\n reset() {\n }\n}\n", + "import { Remover } from \"./Remover.js\";\nexport async function loadExternalRemoveInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalRemove\", container => {\n return Promise.resolve(new Remover(container));\n }, refresh);\n}\nexport * from \"./Options/Classes/Remove.js\";\nexport * from \"./Options/Interfaces/IRemove.js\";\n", + "import { EasingType, isNull } from \"@tsparticles/engine\";\nexport class RepulseBase {\n constructor() {\n this.distance = 200;\n this.duration = 0.4;\n this.factor = 100;\n this.speed = 1;\n this.maxSpeed = 50;\n this.easing = EasingType.easeOutQuad;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.duration !== undefined) {\n this.duration = data.duration;\n }\n if (data.easing !== undefined) {\n this.easing = data.easing;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.speed !== undefined) {\n this.speed = data.speed;\n }\n if (data.maxSpeed !== undefined) {\n this.maxSpeed = data.maxSpeed;\n }\n }\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nimport { RepulseBase } from \"./RepulseBase.js\";\nexport class RepulseDiv extends RepulseBase {\n constructor() {\n super();\n this.selectors = [];\n }\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n if (data.selectors !== undefined) {\n this.selectors = data.selectors;\n }\n }\n}\n", + "import { executeOnSingleOrMultiple, isNull, } from \"@tsparticles/engine\";\nimport { RepulseBase } from \"./RepulseBase.js\";\nimport { RepulseDiv } from \"./RepulseDiv.js\";\nexport class Repulse extends RepulseBase {\n load(data) {\n super.load(data);\n if (isNull(data)) {\n return;\n }\n this.divs = executeOnSingleOrMultiple(data.divs, div => {\n const tmp = new RepulseDiv();\n tmp.load(div);\n return tmp;\n });\n }\n}\n", + "import { Circle, DivType, ExternalInteractorBase, Rectangle, Vector, clamp, divMode, divModeExecute, getDistances, isDivModeEnabled, isInArray, millisecondsToSeconds, mouseMoveEvent, } from \"@tsparticles/engine\";\nimport { Repulse } from \"./Options/Classes/Repulse.js\";\nconst repulseMode = \"repulse\", minDistance = 0, repulseRadiusFactor = 6, repulseRadiusPower = 3, squarePower = 2, minRadius = 0, minSpeed = 0, easingOffset = 1, half = 0.5;\nexport class Repulser extends ExternalInteractorBase {\n constructor(engine, container) {\n super(container);\n this._clickRepulse = () => {\n const container = this.container, repulseOptions = container.actualOptions.interactivity.modes.repulse;\n if (!repulseOptions) {\n return;\n }\n const repulse = container.repulse ?? { particles: [] };\n if (!repulse.finish) {\n if (!repulse.count) {\n repulse.count = 0;\n }\n repulse.count++;\n if (repulse.count === container.particles.count) {\n repulse.finish = true;\n }\n }\n if (repulse.clicking) {\n const repulseDistance = container.retina.repulseModeDistance;\n if (!repulseDistance || repulseDistance < minDistance) {\n return;\n }\n const repulseRadius = Math.pow(repulseDistance / repulseRadiusFactor, repulseRadiusPower), mouseClickPos = container.interactivity.mouse.clickPosition;\n if (mouseClickPos === undefined) {\n return;\n }\n const range = new Circle(mouseClickPos.x, mouseClickPos.y, repulseRadius), query = container.particles.quadTree.query(range, p => this.isEnabled(p));\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(mouseClickPos, particle.position), d = distance ** squarePower, velocity = repulseOptions.speed, force = (-repulseRadius * velocity) / d;\n if (d <= repulseRadius) {\n repulse.particles.push(particle);\n const vect = Vector.create(dx, dy);\n vect.length = force;\n particle.velocity.setTo(vect);\n }\n }\n }\n else if (repulse.clicking === false) {\n for (const particle of repulse.particles) {\n particle.velocity.setTo(particle.initialVelocity);\n }\n repulse.particles = [];\n }\n };\n this._hoverRepulse = () => {\n const container = this.container, mousePos = container.interactivity.mouse.position, repulseRadius = container.retina.repulseModeDistance;\n if (!repulseRadius || repulseRadius < minRadius || !mousePos) {\n return;\n }\n this._processRepulse(mousePos, repulseRadius, new Circle(mousePos.x, mousePos.y, repulseRadius));\n };\n this._processRepulse = (position, repulseRadius, area, divRepulse) => {\n const container = this.container, query = container.particles.quadTree.query(area, p => this.isEnabled(p)), repulseOptions = container.actualOptions.interactivity.modes.repulse;\n if (!repulseOptions) {\n return;\n }\n const { easing, speed, factor, maxSpeed } = repulseOptions, easingFunc = this._engine.getEasing(easing), velocity = (divRepulse?.speed ?? speed) * factor;\n for (const particle of query) {\n const { dx, dy, distance } = getDistances(particle.position, position), repulseFactor = clamp(easingFunc(easingOffset - distance / repulseRadius) * velocity, minSpeed, maxSpeed), normVec = Vector.create(!distance ? velocity : (dx / distance) * repulseFactor, !distance ? velocity : (dy / distance) * repulseFactor);\n particle.position.addTo(normVec);\n }\n };\n this._singleSelectorRepulse = (selector, div) => {\n const container = this.container, repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n const query = document.querySelectorAll(selector);\n if (!query.length) {\n return;\n }\n query.forEach(item => {\n const elem = item, pxRatio = container.retina.pixelRatio, pos = {\n x: (elem.offsetLeft + elem.offsetWidth * half) * pxRatio,\n y: (elem.offsetTop + elem.offsetHeight * half) * pxRatio,\n }, repulseRadius = elem.offsetWidth * half * pxRatio, area = div.type === DivType.circle\n ? new Circle(pos.x, pos.y, repulseRadius)\n : new Rectangle(elem.offsetLeft * pxRatio, elem.offsetTop * pxRatio, elem.offsetWidth * pxRatio, elem.offsetHeight * pxRatio), divs = repulse.divs, divRepulse = divMode(divs, elem);\n this._processRepulse(pos, repulseRadius, area, divRepulse);\n });\n };\n this._engine = engine;\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n this.handleClickMode = (mode) => {\n const options = this.container.actualOptions, repulseOpts = options.interactivity.modes.repulse;\n if (!repulseOpts || mode !== repulseMode) {\n return;\n }\n if (!container.repulse) {\n container.repulse = { particles: [] };\n }\n const repulse = container.repulse;\n repulse.clicking = true;\n repulse.count = 0;\n for (const particle of container.repulse.particles) {\n if (!this.isEnabled(particle)) {\n continue;\n }\n particle.velocity.setTo(particle.initialVelocity);\n }\n repulse.particles = [];\n repulse.finish = false;\n setTimeout(() => {\n if (container.destroyed) {\n return;\n }\n repulse.clicking = false;\n }, repulseOpts.duration * millisecondsToSeconds);\n };\n }\n clear() {\n }\n init() {\n const container = this.container, repulse = container.actualOptions.interactivity.modes.repulse;\n if (!repulse) {\n return;\n }\n container.retina.repulseModeDistance = repulse.distance * container.retina.pixelRatio;\n }\n interact() {\n const container = this.container, options = container.actualOptions, mouseMoveStatus = container.interactivity.status === mouseMoveEvent, events = options.interactivity.events, hover = events.onHover, hoverEnabled = hover.enable, hoverMode = hover.mode, click = events.onClick, clickEnabled = click.enable, clickMode = click.mode, divs = events.onDiv;\n if (mouseMoveStatus && hoverEnabled && isInArray(repulseMode, hoverMode)) {\n this._hoverRepulse();\n }\n else if (clickEnabled && isInArray(repulseMode, clickMode)) {\n this._clickRepulse();\n }\n else {\n divModeExecute(repulseMode, divs, (selector, div) => this._singleSelectorRepulse(selector, div));\n }\n }\n isEnabled(particle) {\n const container = this.container, options = container.actualOptions, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? options.interactivity).events, divs = events.onDiv, hover = events.onHover, click = events.onClick, divRepulse = isDivModeEnabled(repulseMode, divs);\n if (!(divRepulse || (hover.enable && !!mouse.position) || (click.enable && mouse.clickPosition))) {\n return false;\n }\n const hoverMode = hover.mode, clickMode = click.mode;\n return isInArray(repulseMode, hoverMode) || isInArray(repulseMode, clickMode) || divRepulse;\n }\n loadModeOptions(options, ...sources) {\n if (!options.repulse) {\n options.repulse = new Repulse();\n }\n for (const source of sources) {\n options.repulse.load(source?.repulse);\n }\n }\n reset() {\n }\n}\n", + "import { Repulser } from \"./Repulser.js\";\nexport async function loadExternalRepulseInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalRepulse\", container => {\n return Promise.resolve(new Repulser(engine, container));\n }, refresh);\n}\nexport * from \"./Options/Classes/RepulseBase.js\";\nexport * from \"./Options/Classes/RepulseDiv.js\";\nexport * from \"./Options/Classes/Repulse.js\";\nexport * from \"./Options/Interfaces/IRepulseBase.js\";\nexport * from \"./Options/Interfaces/IRepulseDiv.js\";\nexport * from \"./Options/Interfaces/IRepulse.js\";\n", + "import { isNull } from \"@tsparticles/engine\";\nexport class Slow {\n constructor() {\n this.factor = 3;\n this.radius = 200;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.factor !== undefined) {\n this.factor = data.factor;\n }\n if (data.radius !== undefined) {\n this.radius = data.radius;\n }\n }\n}\n", + "import { ExternalInteractorBase, getDistance, isInArray, } from \"@tsparticles/engine\";\nimport { Slow } from \"./Options/Classes/Slow.js\";\nconst slowMode = \"slow\", minRadius = 0;\nexport class Slower extends ExternalInteractorBase {\n constructor(container) {\n super(container);\n }\n clear(particle, delta, force) {\n if (particle.slow.inRange && !force) {\n return;\n }\n particle.slow.factor = 1;\n }\n init() {\n const container = this.container, slow = container.actualOptions.interactivity.modes.slow;\n if (!slow) {\n return;\n }\n container.retina.slowModeRadius = slow.radius * container.retina.pixelRatio;\n }\n interact() {\n }\n isEnabled(particle) {\n const container = this.container, mouse = container.interactivity.mouse, events = (particle?.interactivity ?? container.actualOptions.interactivity).events;\n return events.onHover.enable && !!mouse.position && isInArray(slowMode, events.onHover.mode);\n }\n loadModeOptions(options, ...sources) {\n if (!options.slow) {\n options.slow = new Slow();\n }\n for (const source of sources) {\n options.slow.load(source?.slow);\n }\n }\n reset(particle) {\n particle.slow.inRange = false;\n const container = this.container, options = container.actualOptions, mousePos = container.interactivity.mouse.position, radius = container.retina.slowModeRadius, slowOptions = options.interactivity.modes.slow;\n if (!slowOptions || !radius || radius < minRadius || !mousePos) {\n return;\n }\n const particlePos = particle.getPosition(), dist = getDistance(mousePos, particlePos), proximityFactor = dist / radius, slowFactor = slowOptions.factor, { slow } = particle;\n if (dist > radius) {\n return;\n }\n slow.inRange = true;\n slow.factor = proximityFactor / slowFactor;\n }\n}\n", + "import { Slower } from \"./Slower.js\";\nexport async function loadExternalSlowInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"externalSlow\", container => {\n return Promise.resolve(new Slower(container));\n }, refresh);\n}\nexport * from \"./Options/Classes/Slow.js\";\nexport * from \"./Options/Interfaces/ISlow.js\";\n", + "import { errorPrefix, getLogger, getStyleFromHsl } from \"@tsparticles/engine\";\nconst stringStart = 0, defaultOpacity = 1;\nconst currentColorRegex = /(#(?:[0-9a-f]{2}){2,4}|(#[0-9a-f]{3})|(rgb|hsl)a?\\((-?\\d+%?[,\\s]+){2,3}\\s*[\\d.]+%?\\))|currentcolor/gi;\nfunction replaceColorSvg(imageShape, color, opacity) {\n const { svgData } = imageShape;\n if (!svgData) {\n return \"\";\n }\n const colorStyle = getStyleFromHsl(color, opacity);\n if (svgData.includes(\"fill\")) {\n return svgData.replace(currentColorRegex, () => colorStyle);\n }\n const preFillIndex = svgData.indexOf(\">\");\n return `${svgData.substring(stringStart, preFillIndex)} fill=\"${colorStyle}\"${svgData.substring(preFillIndex)}`;\n}\nexport async function loadImage(image) {\n return new Promise((resolve) => {\n image.loading = true;\n const img = new Image();\n image.element = img;\n img.addEventListener(\"load\", () => {\n image.loading = false;\n resolve();\n });\n img.addEventListener(\"error\", () => {\n image.element = undefined;\n image.error = true;\n image.loading = false;\n getLogger().error(`${errorPrefix} loading image: ${image.source}`);\n resolve();\n });\n img.src = image.source;\n });\n}\nexport async function downloadSvgImage(image) {\n if (image.type !== \"svg\") {\n await loadImage(image);\n return;\n }\n image.loading = true;\n const response = await fetch(image.source);\n if (!response.ok) {\n getLogger().error(`${errorPrefix} Image not found`);\n image.error = true;\n }\n else {\n image.svgData = await response.text();\n }\n image.loading = false;\n}\nexport function replaceImageColor(image, imageData, color, particle) {\n const svgColoredData = replaceColorSvg(image, color, particle.opacity?.value ?? defaultOpacity), imageRes = {\n color,\n gif: imageData.gif,\n data: {\n ...image,\n svgData: svgColoredData,\n },\n loaded: false,\n ratio: imageData.width / imageData.height,\n replaceColor: imageData.replaceColor,\n source: imageData.src,\n };\n return new Promise(resolve => {\n const svg = new Blob([svgColoredData], { type: \"image/svg+xml\" }), domUrl = URL || window.URL || window.webkitURL || window, url = domUrl.createObjectURL(svg), img = new Image();\n img.addEventListener(\"load\", () => {\n imageRes.loaded = true;\n imageRes.element = img;\n resolve(imageRes);\n domUrl.revokeObjectURL(url);\n });\n const errorHandler = async () => {\n domUrl.revokeObjectURL(url);\n const img2 = {\n ...image,\n error: false,\n loading: true,\n };\n await loadImage(img2);\n imageRes.loaded = true;\n imageRes.element = img2.element;\n resolve(imageRes);\n };\n img.addEventListener(\"error\", () => void errorHandler());\n img.src = url;\n });\n}\n", + "export const InterlaceOffsets = [0, 4, 2, 1];\nexport const InterlaceSteps = [8, 8, 4, 2];\n", + "export class ByteStream {\n constructor(bytes) {\n this.pos = 0;\n this.data = new Uint8ClampedArray(bytes);\n }\n getString(count) {\n const slice = this.data.slice(this.pos, this.pos + count);\n this.pos += slice.length;\n return slice.reduce((acc, curr) => acc + String.fromCharCode(curr), \"\");\n }\n nextByte() {\n return this.data[this.pos++];\n }\n nextTwoBytes() {\n const increment = 2, previous = 1, shift = 8;\n this.pos += increment;\n return this.data[this.pos - increment] + (this.data[this.pos - previous] << shift);\n }\n readSubBlocks() {\n let blockString = \"\", size = 0;\n const minCount = 0, emptySize = 0;\n do {\n size = this.data[this.pos++];\n for (let count = size; --count >= minCount; blockString += String.fromCharCode(this.data[this.pos++])) {\n }\n } while (size !== emptySize);\n return blockString;\n }\n readSubBlocksBin() {\n let size = this.data[this.pos], len = 0;\n const emptySize = 0, increment = 1;\n for (let offset = 0; size !== emptySize; offset += size + increment, size = this.data[this.pos + offset]) {\n len += size;\n }\n const blockData = new Uint8Array(len);\n size = this.data[this.pos++];\n for (let i = 0; size !== emptySize; size = this.data[this.pos++]) {\n for (let count = size; --count >= emptySize; blockData[i++] = this.data[this.pos++]) {\n }\n }\n return blockData;\n }\n skipSubBlocks() {\n for (const increment = 1, noData = 0; this.data[this.pos] !== noData; this.pos += this.data[this.pos] + increment) {\n }\n this.pos++;\n }\n}\n", + "export var DisposalMethod;\n(function (DisposalMethod) {\n DisposalMethod[DisposalMethod[\"Replace\"] = 0] = \"Replace\";\n DisposalMethod[DisposalMethod[\"Combine\"] = 1] = \"Combine\";\n DisposalMethod[DisposalMethod[\"RestoreBackground\"] = 2] = \"RestoreBackground\";\n DisposalMethod[DisposalMethod[\"RestorePrevious\"] = 3] = \"RestorePrevious\";\n DisposalMethod[DisposalMethod[\"UndefinedA\"] = 4] = \"UndefinedA\";\n DisposalMethod[DisposalMethod[\"UndefinedB\"] = 5] = \"UndefinedB\";\n DisposalMethod[DisposalMethod[\"UndefinedC\"] = 6] = \"UndefinedC\";\n DisposalMethod[DisposalMethod[\"UndefinedD\"] = 7] = \"UndefinedD\";\n})(DisposalMethod || (DisposalMethod = {}));\n", + "export var GIFDataHeaders;\n(function (GIFDataHeaders) {\n GIFDataHeaders[GIFDataHeaders[\"Extension\"] = 33] = \"Extension\";\n GIFDataHeaders[GIFDataHeaders[\"ApplicationExtension\"] = 255] = \"ApplicationExtension\";\n GIFDataHeaders[GIFDataHeaders[\"GraphicsControlExtension\"] = 249] = \"GraphicsControlExtension\";\n GIFDataHeaders[GIFDataHeaders[\"PlainTextExtension\"] = 1] = \"PlainTextExtension\";\n GIFDataHeaders[GIFDataHeaders[\"CommentExtension\"] = 254] = \"CommentExtension\";\n GIFDataHeaders[GIFDataHeaders[\"Image\"] = 44] = \"Image\";\n GIFDataHeaders[GIFDataHeaders[\"EndOfFile\"] = 59] = \"EndOfFile\";\n})(GIFDataHeaders || (GIFDataHeaders = {}));\n", + "import { loadImage } from \"../Utils.js\";\nimport { InterlaceOffsets, InterlaceSteps } from \"./Constants.js\";\nimport { ByteStream } from \"./ByteStream.js\";\nimport { DisposalMethod } from \"./Enums/DisposalMethod.js\";\nimport { GIFDataHeaders } from \"./Types/GIFDataHeaders.js\";\nconst origin = {\n x: 0,\n y: 0,\n}, defaultFrame = 0, half = 0.5, initialTime = 0, firstIndex = 0, defaultLoopCount = 0;\nfunction parseColorTable(byteStream, count) {\n const colors = [];\n for (let i = 0; i < count; i++) {\n colors.push({\n r: byteStream.data[byteStream.pos],\n g: byteStream.data[byteStream.pos + 1],\n b: byteStream.data[byteStream.pos + 2],\n });\n byteStream.pos += 3;\n }\n return colors;\n}\nfunction parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex) {\n switch (byteStream.nextByte()) {\n case GIFDataHeaders.GraphicsControlExtension: {\n const frame = gif.frames[getFrameIndex(false)];\n byteStream.pos++;\n const packedByte = byteStream.nextByte();\n frame.GCreserved = (packedByte & 0xe0) >>> 5;\n frame.disposalMethod = (packedByte & 0x1c) >>> 2;\n frame.userInputDelayFlag = (packedByte & 2) === 2;\n const transparencyFlag = (packedByte & 1) === 1;\n frame.delayTime = byteStream.nextTwoBytes() * 0xa;\n const transparencyIndex = byteStream.nextByte();\n if (transparencyFlag) {\n getTransparencyIndex(transparencyIndex);\n }\n byteStream.pos++;\n break;\n }\n case GIFDataHeaders.ApplicationExtension: {\n byteStream.pos++;\n const applicationExtension = {\n identifier: byteStream.getString(8),\n authenticationCode: byteStream.getString(3),\n data: byteStream.readSubBlocksBin(),\n };\n gif.applicationExtensions.push(applicationExtension);\n break;\n }\n case GIFDataHeaders.CommentExtension: {\n gif.comments.push([getFrameIndex(false), byteStream.readSubBlocks()]);\n break;\n }\n case GIFDataHeaders.PlainTextExtension: {\n if (gif.globalColorTable.length === 0) {\n throw new EvalError(\"plain text extension without global color table\");\n }\n byteStream.pos++;\n gif.frames[getFrameIndex(false)].plainTextData = {\n left: byteStream.nextTwoBytes(),\n top: byteStream.nextTwoBytes(),\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n charSize: {\n width: byteStream.nextTwoBytes(),\n height: byteStream.nextTwoBytes(),\n },\n foregroundColor: byteStream.nextByte(),\n backgroundColor: byteStream.nextByte(),\n text: byteStream.readSubBlocks(),\n };\n break;\n }\n default:\n byteStream.skipSubBlocks();\n break;\n }\n}\nasync function parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n const frame = gif.frames[getFrameIndex(true)];\n frame.left = byteStream.nextTwoBytes();\n frame.top = byteStream.nextTwoBytes();\n frame.width = byteStream.nextTwoBytes();\n frame.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(), localColorTableFlag = (packedByte & 0x80) === 0x80, interlacedFlag = (packedByte & 0x40) === 0x40;\n frame.sortFlag = (packedByte & 0x20) === 0x20;\n frame.reserved = (packedByte & 0x18) >>> 3;\n const localColorCount = 1 << ((packedByte & 7) + 1);\n if (localColorTableFlag) {\n frame.localColorTable = parseColorTable(byteStream, localColorCount);\n }\n const getColor = (index) => {\n const { r, g, b } = (localColorTableFlag ? frame.localColorTable : gif.globalColorTable)[index];\n if (index !== getTransparencyIndex(null)) {\n return { r, g, b, a: 255 };\n }\n return { r, g, b, a: avgAlpha ? ~~((r + g + b) / 3) : 0 };\n };\n const image = (() => {\n try {\n return new ImageData(frame.width, frame.height, { colorSpace: \"srgb\" });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (image == null) {\n throw new EvalError(\"GIF frame size is to large\");\n }\n const minCodeSize = byteStream.nextByte(), imageData = byteStream.readSubBlocksBin(), clearCode = 1 << minCodeSize;\n const readBits = (pos, len) => {\n const bytePos = pos >>> 3, bitPos = pos & 7;\n return (((imageData[bytePos] + (imageData[bytePos + 1] << 8) + (imageData[bytePos + 2] << 16)) &\n (((1 << len) - 1) << bitPos)) >>>\n bitPos);\n };\n if (interlacedFlag) {\n for (let code = 0, size = minCodeSize + 1, pos = 0, dic = [[0]], pass = 0; pass < 4; pass++) {\n if (InterlaceOffsets[pass] < frame.height) {\n let pixelPos = 0, lineIndex = 0, exit = false;\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size + 1;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n }\n else {\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n }\n else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const { r, g, b, a } = getColor(item);\n image.data.set([r, g, b, a], InterlaceOffsets[pass] * frame.width +\n InterlaceSteps[pass] * lineIndex +\n (pixelPos % (frame.width * 4)));\n pixelPos += 4;\n }\n if (dic.length === 1 << size && size < 0xc) {\n size++;\n }\n }\n if (pixelPos === frame.width * 4 * (lineIndex + 1)) {\n lineIndex++;\n if (InterlaceOffsets[pass] + InterlaceSteps[pass] * lineIndex >= frame.height) {\n exit = true;\n }\n }\n }\n }\n progressCallback?.(byteStream.pos / (byteStream.data.length - 1), getFrameIndex(false) + 1, image, { x: frame.left, y: frame.top }, { width: gif.width, height: gif.height });\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n }\n else {\n let code = 0, size = minCodeSize + 1, pos = 0, pixelPos = -4, exit = false;\n const dic = [[0]];\n while (!exit) {\n const last = code;\n code = readBits(pos, size);\n pos += size;\n if (code === clearCode) {\n size = minCodeSize + 1;\n dic.length = clearCode + 2;\n for (let i = 0; i < dic.length; i++) {\n dic[i] = i < clearCode ? [i] : [];\n }\n }\n else {\n if (code === clearCode + 1) {\n exit = true;\n break;\n }\n if (code >= dic.length) {\n dic.push(dic[last].concat(dic[last][0]));\n }\n else if (last !== clearCode) {\n dic.push(dic[last].concat(dic[code][0]));\n }\n for (const item of dic[code]) {\n const { r, g, b, a } = getColor(item);\n image.data.set([r, g, b, a], (pixelPos += 4));\n }\n if (dic.length >= 1 << size && size < 0xc) {\n size++;\n }\n }\n }\n frame.image = image;\n frame.bitmap = await createImageBitmap(image);\n progressCallback?.((byteStream.pos + 1) / byteStream.data.length, getFrameIndex(false) + 1, frame.image, { x: frame.left, y: frame.top }, { width: gif.width, height: gif.height });\n }\n}\nasync function parseBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback) {\n switch (byteStream.nextByte()) {\n case GIFDataHeaders.EndOfFile:\n return true;\n case GIFDataHeaders.Image:\n await parseImageBlock(byteStream, gif, avgAlpha, getFrameIndex, getTransparencyIndex, progressCallback);\n break;\n case GIFDataHeaders.Extension:\n parseExtensionBlock(byteStream, gif, getFrameIndex, getTransparencyIndex);\n break;\n default:\n throw new EvalError(\"undefined block found\");\n }\n return false;\n}\nexport function getGIFLoopAmount(gif) {\n for (const extension of gif.applicationExtensions) {\n if (extension.identifier + extension.authenticationCode !== \"NETSCAPE2.0\") {\n continue;\n }\n return extension.data[1] + (extension.data[2] << 8);\n }\n return NaN;\n}\nexport async function decodeGIF(gifURL, progressCallback, avgAlpha) {\n if (!avgAlpha)\n avgAlpha = false;\n const res = await fetch(gifURL);\n if (!res.ok && res.status === 404) {\n throw new EvalError(\"file not found\");\n }\n const buffer = await res.arrayBuffer();\n const gif = {\n width: 0,\n height: 0,\n totalTime: 0,\n colorRes: 0,\n pixelAspectRatio: 0,\n frames: [],\n sortFlag: false,\n globalColorTable: [],\n backgroundImage: new ImageData(1, 1, { colorSpace: \"srgb\" }),\n comments: [],\n applicationExtensions: [],\n }, byteStream = new ByteStream(new Uint8ClampedArray(buffer));\n if (byteStream.getString(6) !== \"GIF89a\") {\n throw new Error(\"not a supported GIF file\");\n }\n gif.width = byteStream.nextTwoBytes();\n gif.height = byteStream.nextTwoBytes();\n const packedByte = byteStream.nextByte(), globalColorTableFlag = (packedByte & 0x80) === 0x80;\n gif.colorRes = (packedByte & 0x70) >>> 4;\n gif.sortFlag = (packedByte & 8) === 8;\n const globalColorCount = 1 << ((packedByte & 7) + 1), backgroundColorIndex = byteStream.nextByte();\n gif.pixelAspectRatio = byteStream.nextByte();\n if (gif.pixelAspectRatio !== 0) {\n gif.pixelAspectRatio = (gif.pixelAspectRatio + 0xf) / 0x40;\n }\n if (globalColorTableFlag) {\n gif.globalColorTable = parseColorTable(byteStream, globalColorCount);\n }\n const backgroundImage = (() => {\n try {\n return new ImageData(gif.width, gif.height, { colorSpace: \"srgb\" });\n }\n catch (error) {\n if (error instanceof DOMException && error.name === \"IndexSizeError\") {\n return null;\n }\n throw error;\n }\n })();\n if (backgroundImage == null) {\n throw new Error(\"GIF frame size is to large\");\n }\n const { r, g, b } = gif.globalColorTable[backgroundColorIndex];\n backgroundImage.data.set(globalColorTableFlag ? [r, g, b, 255] : [0, 0, 0, 0]);\n for (let i = 4; i < backgroundImage.data.length; i *= 2) {\n backgroundImage.data.copyWithin(i, 0, i);\n }\n gif.backgroundImage = backgroundImage;\n let frameIndex = -1, incrementFrameIndex = true, transparencyIndex = -1;\n const getframeIndex = (increment) => {\n if (increment) {\n incrementFrameIndex = true;\n }\n return frameIndex;\n };\n const getTransparencyIndex = (newValue) => {\n if (newValue != null) {\n transparencyIndex = newValue;\n }\n return transparencyIndex;\n };\n try {\n do {\n if (incrementFrameIndex) {\n gif.frames.push({\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n disposalMethod: DisposalMethod.Replace,\n image: new ImageData(1, 1, { colorSpace: \"srgb\" }),\n plainTextData: null,\n userInputDelayFlag: false,\n delayTime: 0,\n sortFlag: false,\n localColorTable: [],\n reserved: 0,\n GCreserved: 0,\n });\n frameIndex++;\n transparencyIndex = -1;\n incrementFrameIndex = false;\n }\n } while (!(await parseBlock(byteStream, gif, avgAlpha, getframeIndex, getTransparencyIndex, progressCallback)));\n gif.frames.length--;\n for (const frame of gif.frames) {\n if (frame.userInputDelayFlag && frame.delayTime === 0) {\n gif.totalTime = Infinity;\n break;\n }\n gif.totalTime += frame.delayTime;\n }\n return gif;\n }\n catch (error) {\n if (error instanceof EvalError) {\n throw new Error(`error while parsing frame ${frameIndex} \"${error.message}\"`);\n }\n throw error;\n }\n}\nexport function drawGif(data) {\n const { context, radius, particle, delta } = data, image = particle.image;\n if (!image?.gifData || !image.gif) {\n return;\n }\n const offscreenCanvas = new OffscreenCanvas(image.gifData.width, image.gifData.height), offscreenContext = offscreenCanvas.getContext(\"2d\");\n if (!offscreenContext) {\n throw new Error(\"could not create offscreen canvas context\");\n }\n offscreenContext.imageSmoothingQuality = \"low\";\n offscreenContext.imageSmoothingEnabled = false;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (particle.gifLoopCount === undefined) {\n particle.gifLoopCount = image.gifLoopCount ?? defaultLoopCount;\n }\n let frameIndex = particle.gifFrame ?? defaultFrame;\n const pos = { x: -image.gifData.width * half, y: -image.gifData.height * half }, frame = image.gifData.frames[frameIndex];\n if (particle.gifTime === undefined) {\n particle.gifTime = initialTime;\n }\n if (!frame.bitmap) {\n return;\n }\n context.scale(radius / image.gifData.width, radius / image.gifData.height);\n switch (frame.disposalMethod) {\n case DisposalMethod.UndefinedA:\n case DisposalMethod.UndefinedB:\n case DisposalMethod.UndefinedC:\n case DisposalMethod.UndefinedD:\n case DisposalMethod.Replace:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n break;\n case DisposalMethod.Combine:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n break;\n case DisposalMethod.RestoreBackground:\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n if (!image.gifData.globalColorTable.length) {\n offscreenContext.putImageData(image.gifData.frames[firstIndex].image, pos.x + frame.left, pos.y + frame.top);\n }\n else {\n offscreenContext.putImageData(image.gifData.backgroundImage, pos.x, pos.y);\n }\n break;\n case DisposalMethod.RestorePrevious:\n {\n const previousImageData = offscreenContext.getImageData(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.drawImage(frame.bitmap, frame.left, frame.top);\n context.drawImage(offscreenCanvas, pos.x, pos.y);\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n offscreenContext.putImageData(previousImageData, origin.x, origin.y);\n }\n break;\n }\n particle.gifTime += delta.value;\n if (particle.gifTime > frame.delayTime) {\n particle.gifTime -= frame.delayTime;\n if (++frameIndex >= image.gifData.frames.length) {\n if (--particle.gifLoopCount <= defaultLoopCount) {\n return;\n }\n frameIndex = firstIndex;\n offscreenContext.clearRect(origin.x, origin.y, offscreenCanvas.width, offscreenCanvas.height);\n }\n particle.gifFrame = frameIndex;\n }\n context.scale(image.gifData.width / radius, image.gifData.height / radius);\n}\nexport async function loadGifImage(image) {\n if (image.type !== \"gif\") {\n await loadImage(image);\n return;\n }\n image.loading = true;\n try {\n image.gifData = await decodeGIF(image.source);\n image.gifLoopCount = getGIFLoopAmount(image.gifData) ?? defaultLoopCount;\n if (!image.gifLoopCount) {\n image.gifLoopCount = Infinity;\n }\n }\n catch {\n image.error = true;\n }\n image.loading = false;\n}\n", + "import { errorPrefix } from \"@tsparticles/engine\";\nimport { replaceImageColor } from \"./Utils.js\";\nimport { drawGif } from \"./GifUtils/Utils.js\";\nconst double = 2, defaultAlpha = 1, sides = 12, defaultRatio = 1;\nexport class ImageDrawer {\n constructor(engine) {\n this.validTypes = [\"image\", \"images\"];\n this.loadImageShape = async (imageShape) => {\n if (!this._engine.loadImage) {\n throw new Error(`${errorPrefix} image shape not initialized`);\n }\n await this._engine.loadImage({\n gif: imageShape.gif,\n name: imageShape.name,\n replaceColor: imageShape.replaceColor ?? false,\n src: imageShape.src,\n });\n };\n this._engine = engine;\n }\n addImage(image) {\n if (!this._engine.images) {\n this._engine.images = [];\n }\n this._engine.images.push(image);\n }\n draw(data) {\n const { context, radius, particle, opacity } = data, image = particle.image, element = image?.element;\n if (!image) {\n return;\n }\n context.globalAlpha = opacity;\n if (image.gif && image.gifData) {\n drawGif(data);\n }\n else if (element) {\n const ratio = image.ratio, pos = {\n x: -radius,\n y: -radius,\n }, diameter = radius * double;\n context.drawImage(element, pos.x, pos.y, diameter, diameter / ratio);\n }\n context.globalAlpha = defaultAlpha;\n }\n getSidesCount() {\n return sides;\n }\n async init(container) {\n const options = container.actualOptions;\n if (!options.preload || !this._engine.loadImage) {\n return;\n }\n for (const imageData of options.preload) {\n await this._engine.loadImage(imageData);\n }\n }\n loadShape(particle) {\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n if (!this._engine.images) {\n this._engine.images = [];\n }\n const imageData = particle.shapeData;\n if (!imageData) {\n return;\n }\n const image = this._engine.images.find((t) => t.name === imageData.name || t.source === imageData.src);\n if (!image) {\n void this.loadImageShape(imageData).then(() => {\n this.loadShape(particle);\n });\n }\n }\n particleInit(container, particle) {\n if (particle.shape !== \"image\" && particle.shape !== \"images\") {\n return;\n }\n if (!this._engine.images) {\n this._engine.images = [];\n }\n const images = this._engine.images, imageData = particle.shapeData;\n if (!imageData) {\n return;\n }\n const color = particle.getFillColor(), image = images.find((t) => t.name === imageData.name || t.source === imageData.src);\n if (!image) {\n return;\n }\n const replaceColor = imageData.replaceColor ?? image.replaceColor;\n if (image.loading) {\n setTimeout(() => {\n this.particleInit(container, particle);\n });\n return;\n }\n void (async () => {\n let imageRes;\n if (image.svgData && color) {\n imageRes = await replaceImageColor(image, imageData, color, particle);\n }\n else {\n imageRes = {\n color,\n data: image,\n element: image.element,\n gif: image.gif,\n gifData: image.gifData,\n gifLoopCount: image.gifLoopCount,\n loaded: true,\n ratio: imageData.width && imageData.height\n ? imageData.width / imageData.height\n : (image.ratio ?? defaultRatio),\n replaceColor: replaceColor,\n source: imageData.src,\n };\n }\n if (!imageRes.ratio) {\n imageRes.ratio = 1;\n }\n const fill = imageData.fill ?? particle.shapeFill, close = imageData.close ?? particle.shapeClose, imageShape = {\n image: imageRes,\n fill,\n close,\n };\n particle.image = imageShape.image;\n particle.shapeFill = imageShape.fill;\n particle.shapeClose = imageShape.close;\n })();\n }\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nexport class Preload {\n constructor() {\n this.src = \"\";\n this.gif = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.gif !== undefined) {\n this.gif = data.gif;\n }\n if (data.height !== undefined) {\n this.height = data.height;\n }\n if (data.name !== undefined) {\n this.name = data.name;\n }\n if (data.replaceColor !== undefined) {\n this.replaceColor = data.replaceColor;\n }\n if (data.src !== undefined) {\n this.src = data.src;\n }\n if (data.width !== undefined) {\n this.width = data.width;\n }\n }\n}\n", + "import { Preload } from \"./Options/Classes/Preload.js\";\nexport class ImagePreloaderPlugin {\n constructor(engine) {\n this.id = \"imagePreloader\";\n this._engine = engine;\n }\n async getPlugin() {\n await Promise.resolve();\n return {};\n }\n loadOptions(options, source) {\n if (!source?.preload) {\n return;\n }\n if (!options.preload) {\n options.preload = [];\n }\n const preloadOptions = options.preload;\n for (const item of source.preload) {\n const existing = preloadOptions.find(t => t.name === item.name || t.src === item.src);\n if (existing) {\n existing.load(item);\n }\n else {\n const preload = new Preload();\n preload.load(item);\n preloadOptions.push(preload);\n }\n }\n }\n needsPlugin() {\n return true;\n }\n}\n", + "import { downloadSvgImage, loadImage } from \"./Utils.js\";\nimport { ImageDrawer } from \"./ImageDrawer.js\";\nimport { ImagePreloaderPlugin } from \"./ImagePreloader.js\";\nimport { errorPrefix } from \"@tsparticles/engine\";\nimport { loadGifImage } from \"./GifUtils/Utils.js\";\nconst extLength = 3;\nfunction addLoadImageToEngine(engine) {\n if (engine.loadImage) {\n return;\n }\n engine.loadImage = async (data) => {\n if (!data.name && !data.src) {\n throw new Error(`${errorPrefix} no image source provided`);\n }\n if (!engine.images) {\n engine.images = [];\n }\n if (engine.images.find((t) => t.name === data.name || t.source === data.src)) {\n return;\n }\n try {\n const image = {\n gif: data.gif ?? false,\n name: data.name ?? data.src,\n source: data.src,\n type: data.src.substring(data.src.length - extLength),\n error: false,\n loading: true,\n replaceColor: data.replaceColor,\n ratio: data.width && data.height ? data.width / data.height : undefined,\n };\n engine.images.push(image);\n let imageFunc;\n if (data.gif) {\n imageFunc = loadGifImage;\n }\n else {\n imageFunc = data.replaceColor ? downloadSvgImage : loadImage;\n }\n await imageFunc(image);\n }\n catch {\n throw new Error(`${errorPrefix} ${data.name ?? data.src} not found`);\n }\n };\n}\nexport async function loadImageShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n addLoadImageToEngine(engine);\n const preloader = new ImagePreloaderPlugin(engine);\n await engine.addPlugin(preloader, refresh);\n await engine.addShape(new ImageDrawer(engine), refresh);\n}\n", + "import { ValueWithRandom, isNull } from \"@tsparticles/engine\";\nexport class LifeDelay extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n", + "import { ValueWithRandom, isNull } from \"@tsparticles/engine\";\nexport class LifeDuration extends ValueWithRandom {\n constructor() {\n super();\n this.sync = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n super.load(data);\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n", + "import { isNull } from \"@tsparticles/engine\";\nimport { LifeDelay } from \"./LifeDelay.js\";\nimport { LifeDuration } from \"./LifeDuration.js\";\nexport class Life {\n constructor() {\n this.count = 0;\n this.delay = new LifeDelay();\n this.duration = new LifeDuration();\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.count !== undefined) {\n this.count = data.count;\n }\n this.delay.load(data.delay);\n this.duration.load(data.duration);\n }\n}\n", + "import { getRangeValue, millisecondsToSeconds, randomInRange, setRangeValue, } from \"@tsparticles/engine\";\nconst noTime = 0, infiniteValue = -1, noLife = 0, minCanvasSize = 0;\nexport function updateLife(particle, delta, canvasSize) {\n if (!particle.life) {\n return;\n }\n const life = particle.life;\n let justSpawned = false;\n if (particle.spawning) {\n life.delayTime += delta.value;\n if (life.delayTime >= particle.life.delay) {\n justSpawned = true;\n particle.spawning = false;\n life.delayTime = noTime;\n life.time = noTime;\n }\n else {\n return;\n }\n }\n if (life.duration === infiniteValue) {\n return;\n }\n if (particle.spawning) {\n return;\n }\n if (justSpawned) {\n life.time = noTime;\n }\n else {\n life.time += delta.value;\n }\n if (life.time < life.duration) {\n return;\n }\n life.time = noTime;\n if (particle.life.count > noLife) {\n particle.life.count--;\n }\n if (particle.life.count === noLife) {\n particle.destroy();\n return;\n }\n const widthRange = setRangeValue(minCanvasSize, canvasSize.width), heightRange = setRangeValue(minCanvasSize, canvasSize.width);\n particle.position.x = randomInRange(widthRange);\n particle.position.y = randomInRange(heightRange);\n particle.spawning = true;\n life.delayTime = noTime;\n life.time = noTime;\n particle.reset();\n const lifeOptions = particle.options.life;\n if (lifeOptions) {\n life.delay = getRangeValue(lifeOptions.delay.value) * millisecondsToSeconds;\n life.duration = getRangeValue(lifeOptions.duration.value) * millisecondsToSeconds;\n }\n}\n", + "import { getRandom, getRangeValue, millisecondsToSeconds, } from \"@tsparticles/engine\";\nimport { Life } from \"./Options/Classes/Life.js\";\nimport { updateLife } from \"./Utils.js\";\nconst noTime = 0, identity = 1, infiniteValue = -1;\nexport class LifeUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const container = this.container, particlesOptions = particle.options, lifeOptions = particlesOptions.life;\n if (!lifeOptions) {\n return;\n }\n particle.life = {\n delay: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.delay.value) * (lifeOptions.delay.sync ? identity : getRandom())) /\n container.retina.reduceFactor) *\n millisecondsToSeconds\n : noTime,\n delayTime: noTime,\n duration: container.retina.reduceFactor\n ? ((getRangeValue(lifeOptions.duration.value) * (lifeOptions.duration.sync ? identity : getRandom())) /\n container.retina.reduceFactor) *\n millisecondsToSeconds\n : noTime,\n time: noTime,\n count: lifeOptions.count,\n };\n if (particle.life.duration <= noTime) {\n particle.life.duration = infiniteValue;\n }\n if (particle.life.count <= noTime) {\n particle.life.count = infiniteValue;\n }\n if (particle.life) {\n particle.spawning = particle.life.delay > noTime;\n }\n }\n isEnabled(particle) {\n return !particle.destroyed;\n }\n loadOptions(options, ...sources) {\n if (!options.life) {\n options.life = new Life();\n }\n for (const source of sources) {\n options.life.load(source?.life);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle) || !particle.life) {\n return;\n }\n updateLife(particle, delta, this.container.canvas.size);\n }\n}\n", + "import { LifeUpdater } from \"./LifeUpdater.js\";\nexport async function loadLifeUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"life\", async (container) => {\n return Promise.resolve(new LifeUpdater(container));\n }, refresh);\n}\n", + "export function drawLine(data) {\n const { context, particle, radius } = data, shapeData = particle.shapeData, centerY = 0;\n context.moveTo(-radius, centerY);\n context.lineTo(radius, centerY);\n context.lineCap = shapeData?.cap ?? \"butt\";\n}\n", + "import { drawLine } from \"./Utils.js\";\nconst sides = 1;\nexport class LineDrawer {\n constructor() {\n this.validTypes = [\"line\"];\n }\n draw(data) {\n drawLine(data);\n }\n getSidesCount() {\n return sides;\n }\n}\n", + "import { LineDrawer } from \"./LineDrawer.js\";\nexport async function loadLineShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new LineDrawer(), refresh);\n}\n", + "import { isSsr } from \"@tsparticles/engine\";\nconst half = 0.5;\nexport class ParallaxMover {\n init() {\n }\n isEnabled(particle) {\n return (!isSsr() &&\n !particle.destroyed &&\n particle.container.actualOptions.interactivity.events.onHover.parallax.enable);\n }\n move(particle) {\n const container = particle.container, options = container.actualOptions, parallaxOptions = options.interactivity.events.onHover.parallax;\n if (isSsr() || !parallaxOptions.enable) {\n return;\n }\n const parallaxForce = parallaxOptions.force, mousePos = container.interactivity.mouse.position;\n if (!mousePos) {\n return;\n }\n const canvasSize = container.canvas.size, canvasCenter = {\n x: canvasSize.width * half,\n y: canvasSize.height * half,\n }, parallaxSmooth = parallaxOptions.smooth, factor = particle.getRadius() / parallaxForce, centerDistance = {\n x: (mousePos.x - canvasCenter.x) * factor,\n y: (mousePos.y - canvasCenter.y) * factor,\n }, { offset } = particle;\n offset.x += (centerDistance.x - offset.x) / parallaxSmooth;\n offset.y += (centerDistance.y - offset.y) / parallaxSmooth;\n }\n}\n", + "import { ParallaxMover } from \"./ParallaxMover.js\";\nexport async function loadParallaxMover(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addMover(\"parallax\", () => {\n return Promise.resolve(new ParallaxMover());\n }, refresh);\n}\n", + "import { ParticlesInteractorBase, getDistances, getRangeValue, } from \"@tsparticles/engine\";\nconst attractFactor = 1000, identity = 1;\nexport class Attractor extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n interact(p1) {\n const container = this.container;\n if (p1.attractDistance === undefined) {\n p1.attractDistance = getRangeValue(p1.options.move.attract.distance) * container.retina.pixelRatio;\n }\n const distance = p1.attractDistance, pos1 = p1.getPosition(), query = container.particles.quadTree.queryCircle(pos1, distance);\n for (const p2 of query) {\n if (p1 === p2 || !p2.options.move.attract.enable || p2.destroyed || p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), { dx, dy } = getDistances(pos1, pos2), rotate = p1.options.move.attract.rotate, ax = dx / (rotate.x * attractFactor), ay = dy / (rotate.y * attractFactor), p1Factor = p2.size.value / p1.size.value, p2Factor = identity / p1Factor;\n p1.velocity.x -= ax * p1Factor;\n p1.velocity.y -= ay * p1Factor;\n p2.velocity.x += ax * p2Factor;\n p2.velocity.y += ay * p2Factor;\n }\n }\n isEnabled(particle) {\n return particle.options.move.attract.enable;\n }\n reset() {\n }\n}\n", + "import { Attractor } from \"./Attractor.js\";\nexport async function loadParticlesAttractInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"particlesAttract\", container => {\n return Promise.resolve(new Attractor(container));\n }, refresh);\n}\n", + "import { clamp } from \"@tsparticles/engine\";\nconst half = 0.5, absorbFactor = 10, minAbsorbFactor = 0;\nfunction updateAbsorb(p1, r1, p2, r2, delta, pixelRatio) {\n const factor = clamp((p1.options.collisions.absorb.speed * delta.factor) / absorbFactor, minAbsorbFactor, r2);\n p1.size.value += factor * half;\n p2.size.value -= factor;\n if (r2 <= pixelRatio) {\n p2.size.value = 0;\n p2.destroy();\n }\n}\nexport function absorb(p1, p2, delta, pixelRatio) {\n const r1 = p1.getRadius(), r2 = p2.getRadius();\n if (r1 === undefined && r2 !== undefined) {\n p1.destroy();\n }\n else if (r1 !== undefined && r2 === undefined) {\n p2.destroy();\n }\n else if (r1 !== undefined && r2 !== undefined) {\n if (r1 >= r2) {\n updateAbsorb(p1, r1, p2, r2, delta, pixelRatio);\n }\n else {\n updateAbsorb(p2, r2, p1, r1, delta, pixelRatio);\n }\n }\n}\n", + "import { circleBounce, circleBounceDataFromParticle, getRangeValue } from \"@tsparticles/engine\";\nconst fixBounceSpeed = (p) => {\n if (p.collisionMaxSpeed === undefined) {\n p.collisionMaxSpeed = getRangeValue(p.options.collisions.maxSpeed);\n }\n if (p.velocity.length > p.collisionMaxSpeed) {\n p.velocity.length = p.collisionMaxSpeed;\n }\n};\nexport function bounce(p1, p2) {\n circleBounce(circleBounceDataFromParticle(p1), circleBounceDataFromParticle(p2));\n fixBounceSpeed(p1);\n fixBounceSpeed(p2);\n}\n", + "import { bounce } from \"./Bounce.js\";\nexport function destroy(p1, p2) {\n if (!p1.unbreakable && !p2.unbreakable) {\n bounce(p1, p2);\n }\n if (p1.getRadius() === undefined && p2.getRadius() !== undefined) {\n p1.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() === undefined) {\n p2.destroy();\n }\n else if (p1.getRadius() !== undefined && p2.getRadius() !== undefined) {\n const deleteP = p1.getRadius() >= p2.getRadius() ? p2 : p1;\n deleteP.destroy();\n }\n}\n", + "import { CollisionMode } from \"@tsparticles/engine\";\nimport { absorb } from \"./Absorb.js\";\nimport { bounce } from \"./Bounce.js\";\nimport { destroy } from \"./Destroy.js\";\nexport function resolveCollision(p1, p2, delta, pixelRatio) {\n switch (p1.options.collisions.mode) {\n case CollisionMode.absorb: {\n absorb(p1, p2, delta, pixelRatio);\n break;\n }\n case CollisionMode.bounce: {\n bounce(p1, p2);\n break;\n }\n case CollisionMode.destroy: {\n destroy(p1, p2);\n break;\n }\n }\n}\n", + "import { ParticlesInteractorBase, getDistance } from \"@tsparticles/engine\";\nimport { resolveCollision } from \"./ResolveCollision.js\";\nconst double = 2;\nexport class Collider extends ParticlesInteractorBase {\n constructor(container) {\n super(container);\n }\n clear() {\n }\n init() {\n }\n interact(p1, delta) {\n if (p1.destroyed || p1.spawning) {\n return;\n }\n const container = this.container, pos1 = p1.getPosition(), radius1 = p1.getRadius(), query = container.particles.quadTree.queryCircle(pos1, radius1 * double);\n for (const p2 of query) {\n if (p1 === p2 ||\n !p2.options.collisions.enable ||\n p1.options.collisions.mode !== p2.options.collisions.mode ||\n p2.destroyed ||\n p2.spawning) {\n continue;\n }\n const pos2 = p2.getPosition(), radius2 = p2.getRadius();\n if (Math.abs(Math.round(pos1.z) - Math.round(pos2.z)) > radius1 + radius2) {\n continue;\n }\n const dist = getDistance(pos1, pos2), distP = radius1 + radius2;\n if (dist > distP) {\n continue;\n }\n resolveCollision(p1, p2, delta, container.retina.pixelRatio);\n }\n }\n isEnabled(particle) {\n return particle.options.collisions.enable;\n }\n reset() {\n }\n}\n", + "import { Collider } from \"./Collider.js\";\nexport async function loadParticlesCollisionsInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addInteractor(\"particlesCollisions\", container => {\n return Promise.resolve(new Collider(container));\n }, refresh);\n}\n", + "import { Circle, Rectangle } from \"@tsparticles/engine\";\nconst double = 2;\nexport class CircleWarp extends Circle {\n constructor(x, y, radius, canvasSize) {\n super(x, y, radius);\n this.canvasSize = canvasSize;\n this.canvasSize = { ...canvasSize };\n }\n contains(point) {\n const { width, height } = this.canvasSize, { x, y } = point;\n return (super.contains(point) ||\n super.contains({ x: x - width, y }) ||\n super.contains({ x: x - width, y: y - height }) ||\n super.contains({ x, y: y - height }));\n }\n intersects(range) {\n if (super.intersects(range)) {\n return true;\n }\n const rect = range, circle = range, newPos = {\n x: range.position.x - this.canvasSize.width,\n y: range.position.y - this.canvasSize.height,\n };\n if (circle.radius !== undefined) {\n const biggerCircle = new Circle(newPos.x, newPos.y, circle.radius * double);\n return super.intersects(biggerCircle);\n }\n else if (rect.size !== undefined) {\n const rectSW = new Rectangle(newPos.x, newPos.y, rect.size.width * double, rect.size.height * double);\n return super.intersects(rectSW);\n }\n return false;\n }\n}\n", + "import { OptionsColor, isNull } from \"@tsparticles/engine\";\nexport class LinksShadow {\n constructor() {\n this.blur = 5;\n this.color = new OptionsColor();\n this.color.value = \"#000\";\n this.enable = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.blur !== undefined) {\n this.blur = data.blur;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n }\n}\n", + "import { OptionsColor, isNull } from \"@tsparticles/engine\";\nexport class LinksTriangle {\n constructor() {\n this.enable = false;\n this.frequency = 1;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.color !== undefined) {\n this.color = OptionsColor.create(this.color, data.color);\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n }\n}\n", + "import { OptionsColor, isNull } from \"@tsparticles/engine\";\nimport { LinksShadow } from \"./LinksShadow.js\";\nimport { LinksTriangle } from \"./LinksTriangle.js\";\nexport class Links {\n constructor() {\n this.blink = false;\n this.color = new OptionsColor();\n this.color.value = \"#fff\";\n this.consent = false;\n this.distance = 100;\n this.enable = false;\n this.frequency = 1;\n this.opacity = 1;\n this.shadow = new LinksShadow();\n this.triangles = new LinksTriangle();\n this.width = 1;\n this.warp = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.id !== undefined) {\n this.id = data.id;\n }\n if (data.blink !== undefined) {\n this.blink = data.blink;\n }\n this.color = OptionsColor.create(this.color, data.color);\n if (data.consent !== undefined) {\n this.consent = data.consent;\n }\n if (data.distance !== undefined) {\n this.distance = data.distance;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.frequency !== undefined) {\n this.frequency = data.frequency;\n }\n if (data.opacity !== undefined) {\n this.opacity = data.opacity;\n }\n this.shadow.load(data.shadow);\n this.triangles.load(data.triangles);\n if (data.width !== undefined) {\n this.width = data.width;\n }\n if (data.warp !== undefined) {\n this.warp = data.warp;\n }\n }\n}\n", + "import { Circle, ParticlesInteractorBase, getDistances, getLinkRandomColor, } from \"@tsparticles/engine\";\nimport { CircleWarp } from \"./CircleWarp.js\";\nimport { Links } from \"./Options/Classes/Links.js\";\nconst squarePower = 2, opacityOffset = 1, origin = {\n x: 0,\n y: 0,\n}, minDistance = 0;\nfunction getLinkDistance(pos1, pos2, optDistance, canvasSize, warp) {\n const { dx, dy, distance } = getDistances(pos1, pos2);\n if (!warp || distance <= optDistance) {\n return distance;\n }\n const absDiffs = {\n x: Math.abs(dx),\n y: Math.abs(dy),\n }, warpDistances = {\n x: Math.min(absDiffs.x, canvasSize.width - absDiffs.x),\n y: Math.min(absDiffs.y, canvasSize.height - absDiffs.y),\n };\n return Math.sqrt(warpDistances.x ** squarePower + warpDistances.y ** squarePower);\n}\nexport class Linker extends ParticlesInteractorBase {\n constructor(container, engine) {\n super(container);\n this._setColor = p1 => {\n if (!p1.options.links) {\n return;\n }\n const container = this._linkContainer, linksOptions = p1.options.links;\n let linkColor = linksOptions.id === undefined\n ? container.particles.linksColor\n : container.particles.linksColors.get(linksOptions.id);\n if (linkColor) {\n return;\n }\n const optColor = linksOptions.color;\n linkColor = getLinkRandomColor(this._engine, optColor, linksOptions.blink, linksOptions.consent);\n if (linksOptions.id === undefined) {\n container.particles.linksColor = linkColor;\n }\n else {\n container.particles.linksColors.set(linksOptions.id, linkColor);\n }\n };\n this._linkContainer = container;\n this._engine = engine;\n }\n clear() {\n }\n init() {\n this._linkContainer.particles.linksColor = undefined;\n this._linkContainer.particles.linksColors = new Map();\n }\n interact(p1) {\n if (!p1.options.links) {\n return;\n }\n p1.links = [];\n const pos1 = p1.getPosition(), container = this.container, canvasSize = container.canvas.size;\n if (pos1.x < origin.x || pos1.y < origin.y || pos1.x > canvasSize.width || pos1.y > canvasSize.height) {\n return;\n }\n const linkOpt1 = p1.options.links, optOpacity = linkOpt1.opacity, optDistance = p1.retina.linksDistance ?? minDistance, warp = linkOpt1.warp;\n let range;\n if (warp) {\n range = new CircleWarp(pos1.x, pos1.y, optDistance, canvasSize);\n }\n else {\n range = new Circle(pos1.x, pos1.y, optDistance);\n }\n const query = container.particles.quadTree.query(range);\n for (const p2 of query) {\n const linkOpt2 = p2.options.links;\n if (p1 === p2 ||\n !linkOpt2?.enable ||\n linkOpt1.id !== linkOpt2.id ||\n p2.spawning ||\n p2.destroyed ||\n !p2.links ||\n p1.links.some(t => t.destination === p2) ||\n p2.links.some(t => t.destination === p1)) {\n continue;\n }\n const pos2 = p2.getPosition();\n if (pos2.x < origin.x || pos2.y < origin.y || pos2.x > canvasSize.width || pos2.y > canvasSize.height) {\n continue;\n }\n const distance = getLinkDistance(pos1, pos2, optDistance, canvasSize, warp && linkOpt2.warp);\n if (distance > optDistance) {\n continue;\n }\n const opacityLine = (opacityOffset - distance / optDistance) * optOpacity;\n this._setColor(p1);\n p1.links.push({\n destination: p2,\n opacity: opacityLine,\n });\n }\n }\n isEnabled(particle) {\n return !!particle.options.links?.enable;\n }\n loadParticlesOptions(options, ...sources) {\n if (!options.links) {\n options.links = new Links();\n }\n for (const source of sources) {\n options.links.load(source?.links);\n }\n }\n reset() {\n }\n}\n", + "import { Linker } from \"./Linker.js\";\nexport async function loadLinksInteraction(engine, refresh = true) {\n await engine.addInteractor(\"particlesLinks\", async (container) => {\n return Promise.resolve(new Linker(container, engine));\n }, refresh);\n}\n", + "import { drawLine, getDistance, getDistances, getRandom, getStyleFromRgb, rangeColorToRgb, } from \"@tsparticles/engine\";\nexport function drawTriangle(context, p1, p2, p3) {\n context.beginPath();\n context.moveTo(p1.x, p1.y);\n context.lineTo(p2.x, p2.y);\n context.lineTo(p3.x, p3.y);\n context.closePath();\n}\nexport function drawLinkLine(params) {\n let drawn = false;\n const { begin, end, engine, maxDistance, context, canvasSize, width, backgroundMask, colorLine, opacity, links } = params;\n if (getDistance(begin, end) <= maxDistance) {\n drawLine(context, begin, end);\n drawn = true;\n }\n else if (links.warp) {\n let pi1;\n let pi2;\n const endNE = {\n x: end.x - canvasSize.width,\n y: end.y,\n };\n const d1 = getDistances(begin, endNE);\n if (d1.distance <= maxDistance) {\n const yi = begin.y - (d1.dy / d1.dx) * begin.x;\n pi1 = { x: 0, y: yi };\n pi2 = { x: canvasSize.width, y: yi };\n }\n else {\n const endSW = {\n x: end.x,\n y: end.y - canvasSize.height,\n };\n const d2 = getDistances(begin, endSW);\n if (d2.distance <= maxDistance) {\n const yi = begin.y - (d2.dy / d2.dx) * begin.x;\n const xi = -yi / (d2.dy / d2.dx);\n pi1 = { x: xi, y: 0 };\n pi2 = { x: xi, y: canvasSize.height };\n }\n else {\n const endSE = {\n x: end.x - canvasSize.width,\n y: end.y - canvasSize.height,\n };\n const d3 = getDistances(begin, endSE);\n if (d3.distance <= maxDistance) {\n const yi = begin.y - (d3.dy / d3.dx) * begin.x;\n const xi = -yi / (d3.dy / d3.dx);\n pi1 = { x: xi, y: yi };\n pi2 = { x: pi1.x + canvasSize.width, y: pi1.y + canvasSize.height };\n }\n }\n }\n if (pi1 && pi2) {\n drawLine(context, begin, pi1);\n drawLine(context, end, pi2);\n drawn = true;\n }\n }\n if (!drawn) {\n return;\n }\n context.lineWidth = width;\n if (backgroundMask.enable) {\n context.globalCompositeOperation = backgroundMask.composite;\n }\n context.strokeStyle = getStyleFromRgb(colorLine, opacity);\n const { shadow } = links;\n if (shadow.enable) {\n const shadowColor = rangeColorToRgb(engine, shadow.color);\n if (shadowColor) {\n context.shadowBlur = shadow.blur;\n context.shadowColor = getStyleFromRgb(shadowColor);\n }\n }\n context.stroke();\n}\nexport function drawLinkTriangle(params) {\n const { context, pos1, pos2, pos3, backgroundMask, colorTriangle, opacityTriangle } = params;\n drawTriangle(context, pos1, pos2, pos3);\n if (backgroundMask.enable) {\n context.globalCompositeOperation = backgroundMask.composite;\n }\n context.fillStyle = getStyleFromRgb(colorTriangle, opacityTriangle);\n context.fill();\n}\nexport function getLinkKey(ids) {\n ids.sort((a, b) => a - b);\n return ids.join(\"_\");\n}\nexport function setLinkFrequency(particles, dictionary) {\n const key = getLinkKey(particles.map(t => t.id));\n let res = dictionary.get(key);\n if (res === undefined) {\n res = getRandom();\n dictionary.set(key, res);\n }\n return res;\n}\n", + "import { getDistance, getLinkColor, getRandom, getRangeValue, rangeColorToRgb, } from \"@tsparticles/engine\";\nimport { drawLinkLine, drawLinkTriangle, setLinkFrequency } from \"./Utils.js\";\nconst minOpacity = 0, minWidth = 0, minDistance = 0, half = 0.5, maxFrequency = 1;\nexport class LinkInstance {\n constructor(container, engine) {\n this._drawLinkLine = (p1, link) => {\n const p1LinksOptions = p1.options.links;\n if (!p1LinksOptions?.enable) {\n return;\n }\n const container = this._container, options = container.actualOptions, p2 = link.destination, pos1 = p1.getPosition(), pos2 = p2.getPosition();\n let opacity = link.opacity;\n container.canvas.draw(ctx => {\n let colorLine;\n const twinkle = p1.options.twinkle?.lines;\n if (twinkle?.enable) {\n const twinkleFreq = twinkle.frequency, twinkleRgb = rangeColorToRgb(this._engine, twinkle.color), twinkling = getRandom() < twinkleFreq;\n if (twinkling && twinkleRgb) {\n colorLine = twinkleRgb;\n opacity = getRangeValue(twinkle.opacity);\n }\n }\n if (!colorLine) {\n const linkColor = p1LinksOptions.id !== undefined\n ? container.particles.linksColors.get(p1LinksOptions.id)\n : container.particles.linksColor;\n colorLine = getLinkColor(p1, p2, linkColor);\n }\n if (!colorLine) {\n return;\n }\n const width = p1.retina.linksWidth ?? minWidth, maxDistance = p1.retina.linksDistance ?? minDistance, { backgroundMask } = options;\n drawLinkLine({\n context: ctx,\n width,\n begin: pos1,\n end: pos2,\n engine: this._engine,\n maxDistance,\n canvasSize: container.canvas.size,\n links: p1LinksOptions,\n backgroundMask: backgroundMask,\n colorLine,\n opacity,\n });\n });\n };\n this._drawLinkTriangle = (p1, link1, link2) => {\n const linksOptions = p1.options.links;\n if (!linksOptions?.enable) {\n return;\n }\n const triangleOptions = linksOptions.triangles;\n if (!triangleOptions.enable) {\n return;\n }\n const container = this._container, options = container.actualOptions, p2 = link1.destination, p3 = link2.destination, opacityTriangle = triangleOptions.opacity ?? (link1.opacity + link2.opacity) * half;\n if (opacityTriangle <= minOpacity) {\n return;\n }\n container.canvas.draw(ctx => {\n const pos1 = p1.getPosition(), pos2 = p2.getPosition(), pos3 = p3.getPosition(), linksDistance = p1.retina.linksDistance ?? minDistance;\n if (getDistance(pos1, pos2) > linksDistance ||\n getDistance(pos3, pos2) > linksDistance ||\n getDistance(pos3, pos1) > linksDistance) {\n return;\n }\n let colorTriangle = rangeColorToRgb(this._engine, triangleOptions.color);\n if (!colorTriangle) {\n const linkColor = linksOptions.id !== undefined\n ? container.particles.linksColors.get(linksOptions.id)\n : container.particles.linksColor;\n colorTriangle = getLinkColor(p1, p2, linkColor);\n }\n if (!colorTriangle) {\n return;\n }\n drawLinkTriangle({\n context: ctx,\n pos1,\n pos2,\n pos3,\n backgroundMask: options.backgroundMask,\n colorTriangle,\n opacityTriangle,\n });\n });\n };\n this._drawTriangles = (options, p1, link, p1Links) => {\n const p2 = link.destination;\n if (!(options.links?.triangles.enable && p2.options.links?.triangles.enable)) {\n return;\n }\n const vertices = p2.links?.filter(t => {\n const linkFreq = this._getLinkFrequency(p2, t.destination), minCount = 0;\n return (p2.options.links &&\n linkFreq <= p2.options.links.frequency &&\n p1Links.findIndex(l => l.destination === t.destination) >= minCount);\n });\n if (!vertices?.length) {\n return;\n }\n for (const vertex of vertices) {\n const p3 = vertex.destination, triangleFreq = this._getTriangleFrequency(p1, p2, p3);\n if (triangleFreq > options.links.triangles.frequency) {\n continue;\n }\n this._drawLinkTriangle(p1, link, vertex);\n }\n };\n this._getLinkFrequency = (p1, p2) => {\n return setLinkFrequency([p1, p2], this._freqs.links);\n };\n this._getTriangleFrequency = (p1, p2, p3) => {\n return setLinkFrequency([p1, p2, p3], this._freqs.triangles);\n };\n this._container = container;\n this._engine = engine;\n this._freqs = {\n links: new Map(),\n triangles: new Map(),\n };\n }\n drawParticle(context, particle) {\n const { links, options } = particle;\n if (!links?.length) {\n return;\n }\n const p1Links = links.filter(l => options.links &&\n (options.links.frequency >= maxFrequency ||\n this._getLinkFrequency(particle, l.destination) <= options.links.frequency));\n for (const link of p1Links) {\n this._drawTriangles(options, particle, link, p1Links);\n if (link.opacity > minOpacity && (particle.retina.linksWidth ?? minWidth) > minWidth) {\n this._drawLinkLine(particle, link);\n }\n }\n }\n async init() {\n this._freqs.links = new Map();\n this._freqs.triangles = new Map();\n await Promise.resolve();\n }\n particleCreated(particle) {\n particle.links = [];\n if (!particle.options.links) {\n return;\n }\n const ratio = this._container.retina.pixelRatio, { retina } = particle, { distance, width } = particle.options.links;\n retina.linksDistance = distance * ratio;\n retina.linksWidth = width * ratio;\n }\n particleDestroyed(particle) {\n particle.links = [];\n }\n}\n", + "import { LinkInstance } from \"./LinkInstance.js\";\nexport class LinksPlugin {\n constructor(engine) {\n this.id = \"links\";\n this._engine = engine;\n }\n getPlugin(container) {\n return Promise.resolve(new LinkInstance(container, this._engine));\n }\n loadOptions() {\n }\n needsPlugin() {\n return true;\n }\n}\n", + "import { LinksPlugin } from \"./LinksPlugin.js\";\nexport async function loadLinksPlugin(engine, refresh = true) {\n const plugin = new LinksPlugin(engine);\n await engine.addPlugin(plugin, refresh);\n}\n", + "import { loadLinksInteraction } from \"./interaction.js\";\nimport { loadLinksPlugin } from \"./plugin.js\";\nexport async function loadParticlesLinksInteraction(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await loadLinksInteraction(engine, refresh);\n await loadLinksPlugin(engine, refresh);\n}\nexport * from \"./Options/Classes/Links.js\";\nexport * from \"./Options/Classes/LinksShadow.js\";\nexport * from \"./Options/Classes/LinksTriangle.js\";\nexport * from \"./Options/Interfaces/ILinks.js\";\nexport * from \"./Options/Interfaces/ILinksShadow.js\";\nexport * from \"./Options/Interfaces/ILinksTriangle.js\";\n", + "import { degToRad } from \"@tsparticles/engine\";\nconst piDeg = 180, origin = { x: 0, y: 0 }, sidesOffset = 2;\nexport function drawPolygon(data, start, side) {\n const { context } = data, sideCount = side.count.numerator * side.count.denominator, decimalSides = side.count.numerator / side.count.denominator, interiorAngleDegrees = (piDeg * (decimalSides - sidesOffset)) / decimalSides, interiorAngle = Math.PI - degToRad(interiorAngleDegrees);\n if (!context) {\n return;\n }\n context.beginPath();\n context.translate(start.x, start.y);\n context.moveTo(origin.x, origin.y);\n for (let i = 0; i < sideCount; i++) {\n context.lineTo(side.length, origin.y);\n context.translate(side.length, origin.y);\n context.rotate(interiorAngle);\n }\n}\n", + "import { getRangeValue, } from \"@tsparticles/engine\";\nimport { drawPolygon } from \"./Utils.js\";\nconst defaultSides = 5;\nexport class PolygonDrawerBase {\n draw(data) {\n const { particle, radius } = data, start = this.getCenter(particle, radius), side = this.getSidesData(particle, radius);\n drawPolygon(data, start, side);\n }\n getSidesCount(particle) {\n const polygon = particle.shapeData;\n return Math.round(getRangeValue(polygon?.sides ?? defaultSides));\n }\n}\n", + "import { PolygonDrawerBase } from \"./PolygonDrawerBase.js\";\nconst sidesCenterFactor = 3.5, yFactor = 2.66, sidesFactor = 3;\nexport class PolygonDrawer extends PolygonDrawerBase {\n constructor() {\n super(...arguments);\n this.validTypes = [\"polygon\"];\n }\n getCenter(particle, radius) {\n return {\n x: -radius / (particle.sides / sidesCenterFactor),\n y: -radius / (yFactor / sidesCenterFactor),\n };\n }\n getSidesData(particle, radius) {\n const sides = particle.sides;\n return {\n count: {\n denominator: 1,\n numerator: sides,\n },\n length: (radius * yFactor) / (sides / sidesFactor),\n };\n }\n}\n", + "import { PolygonDrawerBase } from \"./PolygonDrawerBase.js\";\nconst yFactor = 1.66, sides = 3, double = 2;\nexport class TriangleDrawer extends PolygonDrawerBase {\n constructor() {\n super(...arguments);\n this.validTypes = [\"triangle\"];\n }\n getCenter(particle, radius) {\n return {\n x: -radius,\n y: radius / yFactor,\n };\n }\n getSidesCount() {\n return sides;\n }\n getSidesData(particle, radius) {\n const diameter = radius * double;\n return {\n count: {\n denominator: 2,\n numerator: 3,\n },\n length: diameter,\n };\n }\n}\n", + "import { PolygonDrawer } from \"./PolygonDrawer.js\";\nimport { TriangleDrawer } from \"./TriangleDrawer.js\";\nexport async function loadGenericPolygonShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new PolygonDrawer(), refresh);\n}\nexport async function loadTriangleShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new TriangleDrawer(), refresh);\n}\nexport async function loadPolygonShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await loadGenericPolygonShape(engine, refresh);\n await loadTriangleShape(engine, refresh);\n}\n", + "import { isNull, setRangeValue } from \"@tsparticles/engine\";\nexport class RotateAnimation {\n constructor() {\n this.enable = false;\n this.speed = 0;\n this.decay = 0;\n this.sync = false;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n if (data.enable !== undefined) {\n this.enable = data.enable;\n }\n if (data.speed !== undefined) {\n this.speed = setRangeValue(data.speed);\n }\n if (data.decay !== undefined) {\n this.decay = setRangeValue(data.decay);\n }\n if (data.sync !== undefined) {\n this.sync = data.sync;\n }\n }\n}\n", + "import { RotateDirection, ValueWithRandom, isNull, } from \"@tsparticles/engine\";\nimport { RotateAnimation } from \"./RotateAnimation.js\";\nexport class Rotate extends ValueWithRandom {\n constructor() {\n super();\n this.animation = new RotateAnimation();\n this.direction = RotateDirection.clockwise;\n this.path = false;\n this.value = 0;\n }\n load(data) {\n if (isNull(data)) {\n return;\n }\n super.load(data);\n if (data.direction !== undefined) {\n this.direction = data.direction;\n }\n this.animation.load(data.animation);\n if (data.path !== undefined) {\n this.path = data.path;\n }\n }\n}\n", + "import { AnimationStatus, DestroyType, RotateDirection, degToRad, getRandom, getRangeValue, updateAnimation, } from \"@tsparticles/engine\";\nimport { Rotate } from \"./Options/Classes/Rotate.js\";\nconst double = 2, doublePI = Math.PI * double, identity = 1, doublePIDeg = 360;\nexport class RotateUpdater {\n constructor(container) {\n this.container = container;\n }\n init(particle) {\n const rotateOptions = particle.options.rotate;\n if (!rotateOptions) {\n return;\n }\n particle.rotate = {\n enable: rotateOptions.animation.enable,\n value: degToRad(getRangeValue(rotateOptions.value)),\n min: 0,\n max: doublePI,\n };\n particle.pathRotation = rotateOptions.path;\n let rotateDirection = rotateOptions.direction;\n if (rotateDirection === RotateDirection.random) {\n const index = Math.floor(getRandom() * double), minIndex = 0;\n rotateDirection = index > minIndex ? RotateDirection.counterClockwise : RotateDirection.clockwise;\n }\n switch (rotateDirection) {\n case RotateDirection.counterClockwise:\n case \"counterClockwise\":\n particle.rotate.status = AnimationStatus.decreasing;\n break;\n case RotateDirection.clockwise:\n particle.rotate.status = AnimationStatus.increasing;\n break;\n }\n const rotateAnimation = rotateOptions.animation;\n if (rotateAnimation.enable) {\n particle.rotate.decay = identity - getRangeValue(rotateAnimation.decay);\n particle.rotate.velocity =\n (getRangeValue(rotateAnimation.speed) / doublePIDeg) * this.container.retina.reduceFactor;\n if (!rotateAnimation.sync) {\n particle.rotate.velocity *= getRandom();\n }\n }\n particle.rotation = particle.rotate.value;\n }\n isEnabled(particle) {\n const rotate = particle.options.rotate;\n if (!rotate) {\n return false;\n }\n return !particle.destroyed && !particle.spawning && (!!rotate.value || rotate.animation.enable || rotate.path);\n }\n loadOptions(options, ...sources) {\n if (!options.rotate) {\n options.rotate = new Rotate();\n }\n for (const source of sources) {\n options.rotate.load(source?.rotate);\n }\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n particle.isRotating = !!particle.rotate;\n if (!particle.rotate) {\n return;\n }\n updateAnimation(particle, particle.rotate, false, DestroyType.none, delta);\n particle.rotation = particle.rotate.value;\n }\n}\n", + "import { RotateUpdater } from \"./RotateUpdater.js\";\nexport async function loadRotateUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"rotate\", container => {\n return Promise.resolve(new RotateUpdater(container));\n }, refresh);\n}\n", + "const fixFactorSquared = 2, fixFactor = Math.sqrt(fixFactorSquared), double = 2;\nexport function drawSquare(data) {\n const { context, radius } = data, fixedRadius = radius / fixFactor, fixedDiameter = fixedRadius * double;\n context.rect(-fixedRadius, -fixedRadius, fixedDiameter, fixedDiameter);\n}\n", + "import { drawSquare } from \"./Utils.js\";\nconst sides = 4;\nexport class SquareDrawer {\n constructor() {\n this.validTypes = [\"edge\", \"square\"];\n }\n draw(data) {\n drawSquare(data);\n }\n getSidesCount() {\n return sides;\n }\n}\n", + "import { SquareDrawer } from \"./SquareDrawer.js\";\nexport async function loadSquareShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new SquareDrawer(), refresh);\n}\n", + "const defaultInset = 2, origin = { x: 0, y: 0 };\nexport function drawStar(data) {\n const { context, particle, radius } = data, sides = particle.sides, inset = particle.starInset ?? defaultInset;\n context.moveTo(origin.x, origin.y - radius);\n for (let i = 0; i < sides; i++) {\n context.rotate(Math.PI / sides);\n context.lineTo(origin.x, origin.y - radius * inset);\n context.rotate(Math.PI / sides);\n context.lineTo(origin.x, origin.y - radius);\n }\n}\n", + "import { getRangeValue, } from \"@tsparticles/engine\";\nimport { drawStar } from \"./Utils.js\";\nconst defaultInset = 2, defaultSides = 5;\nexport class StarDrawer {\n constructor() {\n this.validTypes = [\"star\"];\n }\n draw(data) {\n drawStar(data);\n }\n getSidesCount(particle) {\n const star = particle.shapeData;\n return Math.round(getRangeValue(star?.sides ?? defaultSides));\n }\n particleInit(container, particle) {\n const star = particle.shapeData;\n particle.starInset = getRangeValue(star?.inset ?? defaultInset);\n }\n}\n", + "import { StarDrawer } from \"./StarDrawer.js\";\nexport async function loadStarShape(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addShape(new StarDrawer(), refresh);\n}\n", + "import { getHslAnimationFromHsl, getRangeValue, itemFromSingleOrMultiple, rangeColorToHsl, updateColor, } from \"@tsparticles/engine\";\nconst defaultOpacity = 1;\nexport class StrokeColorUpdater {\n constructor(container, engine) {\n this._container = container;\n this._engine = engine;\n }\n init(particle) {\n const container = this._container, options = particle.options;\n const stroke = itemFromSingleOrMultiple(options.stroke, particle.id, options.reduceDuplicates);\n particle.strokeWidth = getRangeValue(stroke.width) * container.retina.pixelRatio;\n particle.strokeOpacity = getRangeValue(stroke.opacity ?? defaultOpacity);\n particle.strokeAnimation = stroke.color?.animation;\n const strokeHslColor = rangeColorToHsl(this._engine, stroke.color) ?? particle.getFillColor();\n if (strokeHslColor) {\n particle.strokeColor = getHslAnimationFromHsl(strokeHslColor, particle.strokeAnimation, container.retina.reduceFactor);\n }\n }\n isEnabled(particle) {\n const color = particle.strokeAnimation, { strokeColor } = particle;\n return (!particle.destroyed &&\n !particle.spawning &&\n !!color &&\n ((strokeColor?.h.value !== undefined && strokeColor.h.enable) ||\n (strokeColor?.s.value !== undefined && strokeColor.s.enable) ||\n (strokeColor?.l.value !== undefined && strokeColor.l.enable)));\n }\n update(particle, delta) {\n if (!this.isEnabled(particle)) {\n return;\n }\n updateColor(particle.strokeColor, delta);\n }\n}\n", + "import { StrokeColorUpdater } from \"./StrokeColorUpdater.js\";\nexport async function loadStrokeColorUpdater(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await engine.addParticleUpdater(\"strokeColor\", container => {\n return Promise.resolve(new StrokeColorUpdater(container, engine));\n }, refresh);\n}\n", + "import { loadBasic } from \"@tsparticles/basic\";\nimport { loadEasingQuadPlugin } from \"@tsparticles/plugin-easing-quad\";\nimport { loadEmojiShape } from \"@tsparticles/shape-emoji\";\nimport { loadExternalAttractInteraction } from \"@tsparticles/interaction-external-attract\";\nimport { loadExternalBounceInteraction } from \"@tsparticles/interaction-external-bounce\";\nimport { loadExternalBubbleInteraction } from \"@tsparticles/interaction-external-bubble\";\nimport { loadExternalConnectInteraction } from \"@tsparticles/interaction-external-connect\";\nimport { loadExternalGrabInteraction } from \"@tsparticles/interaction-external-grab\";\nimport { loadExternalPauseInteraction } from \"@tsparticles/interaction-external-pause\";\nimport { loadExternalPushInteraction } from \"@tsparticles/interaction-external-push\";\nimport { loadExternalRemoveInteraction } from \"@tsparticles/interaction-external-remove\";\nimport { loadExternalRepulseInteraction } from \"@tsparticles/interaction-external-repulse\";\nimport { loadExternalSlowInteraction } from \"@tsparticles/interaction-external-slow\";\nimport { loadImageShape } from \"@tsparticles/shape-image\";\nimport { loadLifeUpdater } from \"@tsparticles/updater-life\";\nimport { loadLineShape } from \"@tsparticles/shape-line\";\nimport { loadParallaxMover } from \"@tsparticles/move-parallax\";\nimport { loadParticlesAttractInteraction } from \"@tsparticles/interaction-particles-attract\";\nimport { loadParticlesCollisionsInteraction } from \"@tsparticles/interaction-particles-collisions\";\nimport { loadParticlesLinksInteraction } from \"@tsparticles/interaction-particles-links\";\nimport { loadPolygonShape } from \"@tsparticles/shape-polygon\";\nimport { loadRotateUpdater } from \"@tsparticles/updater-rotate\";\nimport { loadSquareShape } from \"@tsparticles/shape-square\";\nimport { loadStarShape } from \"@tsparticles/shape-star\";\nimport { loadStrokeColorUpdater } from \"@tsparticles/updater-stroke-color\";\nexport async function loadSlim(engine, refresh = true) {\n engine.checkVersion(\"3.9.1\");\n await loadParallaxMover(engine, false);\n await loadExternalAttractInteraction(engine, false);\n await loadExternalBounceInteraction(engine, false);\n await loadExternalBubbleInteraction(engine, false);\n await loadExternalConnectInteraction(engine, false);\n await loadExternalGrabInteraction(engine, false);\n await loadExternalPauseInteraction(engine, false);\n await loadExternalPushInteraction(engine, false);\n await loadExternalRemoveInteraction(engine, false);\n await loadExternalRepulseInteraction(engine, false);\n await loadExternalSlowInteraction(engine, false);\n await loadParticlesAttractInteraction(engine, false);\n await loadParticlesCollisionsInteraction(engine, false);\n await loadParticlesLinksInteraction(engine, false);\n await loadEasingQuadPlugin(engine, false);\n await loadEmojiShape(engine, false);\n await loadImageShape(engine, false);\n await loadLineShape(engine, false);\n await loadPolygonShape(engine, false);\n await loadSquareShape(engine, false);\n await loadStarShape(engine, false);\n await loadLifeUpdater(engine, false);\n await loadRotateUpdater(engine, false);\n await loadStrokeColorUpdater(engine, false);\n await loadBasic(engine, refresh);\n}\n", + "const SMALLEST_UNSAFE_INTEGER = 0x20000000000000;\nconst LARGEST_SAFE_INTEGER = SMALLEST_UNSAFE_INTEGER - 1;\nconst UINT32_MAX = -1 >>> 0;\nconst UINT32_SIZE = UINT32_MAX + 1;\nconst INT32_SIZE = UINT32_SIZE / 2;\nconst INT32_MAX = INT32_SIZE - 1;\nconst UINT21_SIZE = 1 << 21;\nconst UINT21_MAX = UINT21_SIZE - 1;\n\n/**\n * Returns a value within [-0x80000000, 0x7fffffff]\n */\nfunction int32(engine) {\n return engine.next() | 0;\n}\n\nfunction add(distribution, addend) {\n if (addend === 0) {\n return distribution;\n }\n else {\n return engine => distribution(engine) + addend;\n }\n}\n\n/**\n * Returns a value within [-0x20000000000000, 0x1fffffffffffff]\n */\nfunction int53(engine) {\n const high = engine.next() | 0;\n const low = engine.next() >>> 0;\n return ((high & UINT21_MAX) * UINT32_SIZE +\n low +\n (high & UINT21_SIZE ? -SMALLEST_UNSAFE_INTEGER : 0));\n}\n\n/**\n * Returns a value within [-0x20000000000000, 0x20000000000000]\n */\nfunction int53Full(engine) {\n while (true) {\n const high = engine.next() | 0;\n if (high & 0x400000) {\n if ((high & 0x7fffff) === 0x400000 && (engine.next() | 0) === 0) {\n return SMALLEST_UNSAFE_INTEGER;\n }\n }\n else {\n const low = engine.next() >>> 0;\n return ((high & UINT21_MAX) * UINT32_SIZE +\n low +\n (high & UINT21_SIZE ? -SMALLEST_UNSAFE_INTEGER : 0));\n }\n }\n}\n\n/**\n * Returns a value within [0, 0xffffffff]\n */\nfunction uint32(engine) {\n return engine.next() >>> 0;\n}\n\n/**\n * Returns a value within [0, 0x1fffffffffffff]\n */\nfunction uint53(engine) {\n const high = engine.next() & UINT21_MAX;\n const low = engine.next() >>> 0;\n return high * UINT32_SIZE + low;\n}\n\n/**\n * Returns a value within [0, 0x20000000000000]\n */\nfunction uint53Full(engine) {\n while (true) {\n const high = engine.next() | 0;\n if (high & UINT21_SIZE) {\n if ((high & UINT21_MAX) === 0 && (engine.next() | 0) === 0) {\n return SMALLEST_UNSAFE_INTEGER;\n }\n }\n else {\n const low = engine.next() >>> 0;\n return (high & UINT21_MAX) * UINT32_SIZE + low;\n }\n }\n}\n\nfunction isPowerOfTwoMinusOne(value) {\n return ((value + 1) & value) === 0;\n}\nfunction bitmask(masking) {\n return (engine) => engine.next() & masking;\n}\nfunction downscaleToLoopCheckedRange(range) {\n const extendedRange = range + 1;\n const maximum = extendedRange * Math.floor(UINT32_SIZE / extendedRange);\n return engine => {\n let value = 0;\n do {\n value = engine.next() >>> 0;\n } while (value >= maximum);\n return value % extendedRange;\n };\n}\nfunction downscaleToRange(range) {\n if (isPowerOfTwoMinusOne(range)) {\n return bitmask(range);\n }\n else {\n return downscaleToLoopCheckedRange(range);\n }\n}\nfunction isEvenlyDivisibleByMaxInt32(value) {\n return (value | 0) === 0;\n}\nfunction upscaleWithHighMasking(masking) {\n return engine => {\n const high = engine.next() & masking;\n const low = engine.next() >>> 0;\n return high * UINT32_SIZE + low;\n };\n}\nfunction upscaleToLoopCheckedRange(extendedRange) {\n const maximum = extendedRange * Math.floor(SMALLEST_UNSAFE_INTEGER / extendedRange);\n return engine => {\n let ret = 0;\n do {\n const high = engine.next() & UINT21_MAX;\n const low = engine.next() >>> 0;\n ret = high * UINT32_SIZE + low;\n } while (ret >= maximum);\n return ret % extendedRange;\n };\n}\nfunction upscaleWithinU53(range) {\n const extendedRange = range + 1;\n if (isEvenlyDivisibleByMaxInt32(extendedRange)) {\n const highRange = ((extendedRange / UINT32_SIZE) | 0) - 1;\n if (isPowerOfTwoMinusOne(highRange)) {\n return upscaleWithHighMasking(highRange);\n }\n }\n return upscaleToLoopCheckedRange(extendedRange);\n}\nfunction upscaleWithinI53AndLoopCheck(min, max) {\n return engine => {\n let ret = 0;\n do {\n const high = engine.next() | 0;\n const low = engine.next() >>> 0;\n ret =\n (high & UINT21_MAX) * UINT32_SIZE +\n low +\n (high & UINT21_SIZE ? -SMALLEST_UNSAFE_INTEGER : 0);\n } while (ret < min || ret > max);\n return ret;\n };\n}\n/**\n * Returns a Distribution to return a value within [min, max]\n * @param min The minimum integer value, inclusive. No less than -0x20000000000000.\n * @param max The maximum integer value, inclusive. No greater than 0x20000000000000.\n */\nfunction integer(min, max) {\n min = Math.floor(min);\n max = Math.floor(max);\n if (min < -SMALLEST_UNSAFE_INTEGER || !isFinite(min)) {\n throw new RangeError(`Expected min to be at least ${-SMALLEST_UNSAFE_INTEGER}`);\n }\n else if (max > SMALLEST_UNSAFE_INTEGER || !isFinite(max)) {\n throw new RangeError(`Expected max to be at most ${SMALLEST_UNSAFE_INTEGER}`);\n }\n const range = max - min;\n if (range <= 0 || !isFinite(range)) {\n return () => min;\n }\n else if (range === UINT32_MAX) {\n if (min === 0) {\n return uint32;\n }\n else {\n return add(int32, min + INT32_SIZE);\n }\n }\n else if (range < UINT32_MAX) {\n return add(downscaleToRange(range), min);\n }\n else if (range === LARGEST_SAFE_INTEGER) {\n return add(uint53, min);\n }\n else if (range < LARGEST_SAFE_INTEGER) {\n return add(upscaleWithinU53(range), min);\n }\n else if (max - 1 - min === LARGEST_SAFE_INTEGER) {\n return add(uint53Full, min);\n }\n else if (min === -SMALLEST_UNSAFE_INTEGER &&\n max === SMALLEST_UNSAFE_INTEGER) {\n return int53Full;\n }\n else if (min === -SMALLEST_UNSAFE_INTEGER && max === LARGEST_SAFE_INTEGER) {\n return int53;\n }\n else if (min === -LARGEST_SAFE_INTEGER && max === SMALLEST_UNSAFE_INTEGER) {\n return add(int53, 1);\n }\n else if (max === SMALLEST_UNSAFE_INTEGER) {\n return add(upscaleWithinI53AndLoopCheck(min - 1, max - 1), 1);\n }\n else {\n return upscaleWithinI53AndLoopCheck(min, max);\n }\n}\n\nfunction isLeastBitTrue(engine) {\n return (engine.next() & 1) === 1;\n}\nfunction lessThan(distribution, value) {\n return engine => distribution(engine) < value;\n}\nfunction probability(percentage) {\n if (percentage <= 0) {\n return () => false;\n }\n else if (percentage >= 1) {\n return () => true;\n }\n else {\n const scaled = percentage * UINT32_SIZE;\n if (scaled % 1 === 0) {\n return lessThan(int32, (scaled - INT32_SIZE) | 0);\n }\n else {\n return lessThan(uint53, Math.round(percentage * SMALLEST_UNSAFE_INTEGER));\n }\n }\n}\nfunction bool(numerator, denominator) {\n if (denominator == null) {\n if (numerator == null) {\n return isLeastBitTrue;\n }\n return probability(numerator);\n }\n else {\n if (numerator <= 0) {\n return () => false;\n }\n else if (numerator >= denominator) {\n return () => true;\n }\n return lessThan(integer(0, denominator - 1), numerator);\n }\n}\n\n/**\n * Returns a Distribution that returns a random `Date` within the inclusive\n * range of [`start`, `end`].\n * @param start The minimum `Date`\n * @param end The maximum `Date`\n */\nfunction date(start, end) {\n const distribution = integer(+start, +end);\n return engine => new Date(distribution(engine));\n}\n\n/**\n * Returns a Distribution to return a value within [1, sideCount]\n * @param sideCount The number of sides of the die\n */\nfunction die(sideCount) {\n return integer(1, sideCount);\n}\n\n/**\n * Returns a distribution that returns an array of length `dieCount` of values\n * within [1, `sideCount`]\n * @param sideCount The number of sides of each die\n * @param dieCount The number of dice\n */\nfunction dice(sideCount, dieCount) {\n const distribution = die(sideCount);\n return engine => {\n const result = [];\n for (let i = 0; i < dieCount; ++i) {\n result.push(distribution(engine));\n }\n return result;\n };\n}\n\n// tslint:disable:unified-signatures\n// has 2**x chars, for faster uniform distribution\nconst DEFAULT_STRING_POOL = \"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789_-\";\nfunction string(pool = DEFAULT_STRING_POOL) {\n const poolLength = pool.length;\n if (!poolLength) {\n throw new Error(\"Expected pool not to be an empty string\");\n }\n const distribution = integer(0, poolLength - 1);\n return (engine, length) => {\n let result = \"\";\n for (let i = 0; i < length; ++i) {\n const j = distribution(engine);\n result += pool.charAt(j);\n }\n return result;\n };\n}\n\nconst LOWER_HEX_POOL = \"0123456789abcdef\";\nconst lowerHex = string(LOWER_HEX_POOL);\nconst upperHex = string(LOWER_HEX_POOL.toUpperCase());\n/**\n * Returns a Distribution that returns a random string comprised of numbers\n * or the characters `abcdef` (or `ABCDEF`) of length `length`.\n * @param length Length of the result string\n * @param uppercase Whether the string should use `ABCDEF` instead of `abcdef`\n */\nfunction hex(uppercase) {\n if (uppercase) {\n return upperHex;\n }\n else {\n return lowerHex;\n }\n}\n\n/**\n * Returns a Distribution to return the maximum value of random.integer\n */\nfunction max(minimum, maximum) {\n minimum.valueOf(); // here so no unused variable warnings exist in code\n return integer(maximum, maximum);\n}\n\n/**\n * Returns a Distribution to return the minimum value of random.integer\n */\nfunction min(minimum, maximum) {\n maximum.valueOf(); // here so no unused variable warnings exist in code\n return integer(minimum, minimum);\n}\n\nfunction convertSliceArgument(value, length) {\n if (value < 0) {\n return Math.max(value + length, 0);\n }\n else {\n return Math.min(value, length);\n }\n}\n\nfunction toInteger(value) {\n const num = +value;\n if (num < 0) {\n return Math.ceil(num);\n }\n else {\n return Math.floor(num);\n }\n}\n\n/**\n * Returns a random value within the provided `source` within the sliced\n * bounds of `begin` and `end`.\n * @param source an array of items to pick from\n * @param begin the beginning slice index (defaults to `0`)\n * @param end the ending slice index (defaults to `source.length`)\n */\nfunction pick(engine, source, begin, end) {\n const length = source.length;\n if (length === 0) {\n throw new RangeError(\"Cannot pick from an empty array\");\n }\n const start = begin == null ? 0 : convertSliceArgument(toInteger(begin), length);\n const finish = end === void 0 ? length : convertSliceArgument(toInteger(end), length);\n if (start >= finish) {\n throw new RangeError(`Cannot pick between bounds ${start} and ${finish}`);\n }\n const distribution = integer(start, finish - 1);\n return source[distribution(engine)];\n}\n\nfunction multiply(distribution, multiplier) {\n if (multiplier === 1) {\n return distribution;\n }\n else if (multiplier === 0) {\n return () => 0;\n }\n else {\n return engine => distribution(engine) * multiplier;\n }\n}\n\n/**\n * Returns a floating-point value within [0.0, 1.0)\n */\nfunction realZeroToOneExclusive(engine) {\n return uint53(engine) / SMALLEST_UNSAFE_INTEGER;\n}\n\n/**\n * Returns a floating-point value within [0.0, 1.0]\n */\nfunction realZeroToOneInclusive(engine) {\n return uint53Full(engine) / SMALLEST_UNSAFE_INTEGER;\n}\n\n/**\n * Returns a floating-point value within [min, max) or [min, max]\n * @param min The minimum floating-point value, inclusive.\n * @param max The maximum floating-point value.\n * @param inclusive If true, `max` will be inclusive.\n */\nfunction real(min, max, inclusive = false) {\n if (!isFinite(min)) {\n throw new RangeError(\"Expected min to be a finite number\");\n }\n else if (!isFinite(max)) {\n throw new RangeError(\"Expected max to be a finite number\");\n }\n return add(multiply(inclusive ? realZeroToOneInclusive : realZeroToOneExclusive, max - min), min);\n}\n\nconst sliceArray = Array.prototype.slice;\n\n/**\n * Shuffles an array in-place\n * @param engine The Engine to use when choosing random values\n * @param array The array to shuffle\n * @param downTo minimum index to shuffle. Only used internally.\n */\nfunction shuffle(engine, array, downTo = 0) {\n const length = array.length;\n if (length) {\n for (let i = (length - 1) >>> 0; i > downTo; --i) {\n const distribution = integer(0, i);\n const j = distribution(engine);\n if (i !== j) {\n const tmp = array[i];\n array[i] = array[j];\n array[j] = tmp;\n }\n }\n }\n return array;\n}\n\n/**\n * From the population array, produce an array with sampleSize elements that\n * are randomly chosen without repeats.\n * @param engine The Engine to use when choosing random values\n * @param population An array that has items to choose a sample from\n * @param sampleSize The size of the result array\n */\nfunction sample(engine, population, sampleSize) {\n if (sampleSize < 0 ||\n sampleSize > population.length ||\n !isFinite(sampleSize)) {\n throw new RangeError(\"Expected sampleSize to be within 0 and the length of the population\");\n }\n if (sampleSize === 0) {\n return [];\n }\n const clone = sliceArray.call(population);\n const length = clone.length;\n if (length === sampleSize) {\n return shuffle(engine, clone, 0);\n }\n const tailLength = length - sampleSize;\n return shuffle(engine, clone, tailLength - 1).slice(tailLength);\n}\n\nconst stringRepeat = (() => {\n try {\n if (\"x\".repeat(3) === \"xxx\") {\n return (pattern, count) => pattern.repeat(count);\n }\n }\n catch (e) {\n console.warn(\"String.prototype.repeat check failed, using fallback:\", e);\n }\n return (pattern, count) => {\n let result = \"\";\n while (count > 0) {\n if (count & 1) {\n result += pattern;\n }\n count >>= 1;\n pattern += pattern;\n }\n return result;\n };\n})();\n\nfunction zeroPad(text, zeroCount) {\n return stringRepeat(\"0\", zeroCount - text.length) + text;\n}\n/**\n * Returns a Universally Unique Identifier Version 4.\n *\n * See http://en.wikipedia.org/wiki/Universally_unique_identifier\n */\nfunction uuid4(engine) {\n const a = engine.next() >>> 0;\n const b = engine.next() | 0;\n const c = engine.next() | 0;\n const d = engine.next() >>> 0;\n return (zeroPad(a.toString(16), 8) +\n \"-\" +\n zeroPad((b & 0xffff).toString(16), 4) +\n \"-\" +\n zeroPad((((b >> 4) & 0x0fff) | 0x4000).toString(16), 4) +\n \"-\" +\n zeroPad(((c & 0x3fff) | 0x8000).toString(16), 4) +\n \"-\" +\n zeroPad(((c >> 4) & 0xffff).toString(16), 4) +\n zeroPad(d.toString(16), 8));\n}\n\n/**\n * An int32-producing Engine that uses `Math.random()`\n */\nconst nativeMath = {\n next() {\n return (Math.random() * UINT32_SIZE) | 0;\n }\n};\n\n/**\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Int32Array\n */\nconst I32Array = (() => {\n try {\n const buffer = new ArrayBuffer(4);\n const view = new Int32Array(buffer);\n view[0] = INT32_SIZE;\n if (view[0] === -INT32_SIZE) {\n return Int32Array;\n }\n }\n catch (e) {\n console.warn(\"Int32Array check failed, falling back to Array:\", e);\n }\n return Array;\n})();\n\nlet data = null;\nconst COUNT = 128;\nlet index = COUNT;\n/**\n * An Engine that relies on the globally-available `crypto.getRandomValues`,\n * which is typically available in modern browsers.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\n *\n * If unavailable or otherwise non-functioning, then `browserCrypto` will\n * likely `throw` on the first call to `next()`.\n */\nconst browserCrypto = {\n next() {\n if (index >= COUNT) {\n data ??= new I32Array(COUNT);\n crypto.getRandomValues(data);\n index = 0;\n }\n return data[index++] | 0;\n }\n};\n\n// tslint:disable:unified-signatures\nfunction detectDefaultEngine() {\n if (typeof window !== \"undefined\" && typeof window.crypto?.getRandomValues === \"function\") {\n return browserCrypto;\n }\n if (typeof process !== \"undefined\" && process?.versions?.node) {\n try {\n const crypto = require(\"crypto\");\n if (crypto?.randomBytes) {\n return browserCrypto;\n }\n }\n catch {\n // fallback to nativeMath if crypto.randomBytes is unsupported\n return nativeMath;\n }\n }\n return nativeMath;\n}\n/**\n * A wrapper around an Engine that provides easy-to-use methods for\n * producing values based on known distributions\n */\nclass Random {\n engine;\n constructor(engine) {\n // LEGACY: Default to nativeMath for backward compatibility\n this.engine = engine ?? nativeMath;\n }\n /**\n * Creates a new Random wrapper that automatically detects\n * and uses the best available engine for the current environment.\n * @returns A Random instance using auto-detected engine\n */\n static auto() {\n return new Random(detectDefaultEngine());\n }\n /**\n * Returns a value within [-0x80000000, 0x7fffffff]\n */\n int32() {\n return int32(this.engine);\n }\n /**\n * Returns a value within [0, 0xffffffff]\n */\n uint32() {\n return uint32(this.engine);\n }\n /**\n * Returns a value within [0, 0x1fffffffffffff]\n */\n uint53() {\n return uint53(this.engine);\n }\n /**\n * Returns a value within [0, 0x20000000000000]\n */\n uint53Full() {\n return uint53Full(this.engine);\n }\n /**\n * Returns a value within [-0x20000000000000, 0x1fffffffffffff]\n */\n int53() {\n return int53(this.engine);\n }\n /**\n * Returns a value within [-0x20000000000000, 0x20000000000000]\n */\n int53Full() {\n return int53Full(this.engine);\n }\n /**\n * Returns a value within [min, max]\n * @param minimum The minimum integer value, inclusive. No less than -0x20000000000000.\n * @param maximum The maximum integer value, inclusive. No greater than 0x20000000000000.\n */\n integer(minimum, maximum) {\n return integer(minimum, maximum)(this.engine);\n }\n /**\n * Returns the maximum of the values specified within [min, max]\n * @param minimum The minimum integer value, inclusive. No less than -0x20000000000000. Discarded.\n * @param maximum The maximum integer value, inclusive. No greater than 0x20000000000000.\n */\n max(minimum, maximum) {\n return max(minimum, maximum)(this.engine);\n }\n /**\n * Returns the minimum of the values specified within [min, max]\n * @param minimum The minimum integer value, inclusive. No less than -0x20000000000000.\n * @param maximum The maximum integer value, inclusive. No greater than 0x20000000000000. Discarded.\n */\n min(minimum, maximum) {\n return min(minimum, maximum)(this.engine);\n }\n /**\n * Returns a floating-point value within [0.0, 1.0]\n */\n realZeroToOneInclusive() {\n return realZeroToOneInclusive(this.engine);\n }\n /**\n * Returns a floating-point value within [0.0, 1.0)\n */\n realZeroToOneExclusive() {\n return realZeroToOneExclusive(this.engine);\n }\n /**\n * Returns a floating-point value within [min, max) or [min, max]\n * @param min The minimum floating-point value, inclusive.\n * @param max The maximum floating-point value.\n * @param inclusive If true, `max` will be inclusive.\n */\n real(minimum, maximum, inclusive = false) {\n return real(minimum, maximum, inclusive)(this.engine);\n }\n bool(numerator, denominator) {\n return bool(numerator, denominator)(this.engine);\n }\n /**\n * Return a random value within the provided `source` within the sliced\n * bounds of `begin` and `end`.\n * @param source an array of items to pick from\n * @param begin the beginning slice index (defaults to `0`)\n * @param end the ending slice index (defaults to `source.length`)\n */\n pick(source, begin, end) {\n return pick(this.engine, source, begin, end);\n }\n /**\n * Shuffles an array in-place\n * @param array The array to shuffle\n */\n shuffle(array) {\n return shuffle(this.engine, array);\n }\n /**\n * From the population array, returns an array with sampleSize elements that\n * are randomly chosen without repeats.\n * @param population An array that has items to choose a sample from\n * @param sampleSize The size of the result array\n */\n sample(population, sampleSize) {\n return sample(this.engine, population, sampleSize);\n }\n /**\n * Returns a value within [1, sideCount]\n * @param sideCount The number of sides of the die\n */\n die(sideCount) {\n return die(sideCount)(this.engine);\n }\n /**\n * Returns an array of length `dieCount` of values within [1, sideCount]\n * @param sideCount The number of sides of each die\n * @param dieCount The number of dice\n */\n dice(sideCount, dieCount) {\n return dice(sideCount, dieCount)(this.engine);\n }\n /**\n * Returns a Universally Unique Identifier Version 4.\n *\n * See https://en.wikipedia.org/wiki/Universally_unique_identifier\n */\n uuid4() {\n return uuid4(this.engine);\n }\n string(length, pool) {\n return string(pool)(this.engine, length);\n }\n /**\n * Returns a random string comprised of numbers or the characters `abcdef`\n * (or `ABCDEF`) of length `length`.\n * @param length Length of the result string\n * @param uppercase Whether the string should use `ABCDEF` instead of `abcdef`\n */\n hex(length, uppercase) {\n return hex(uppercase)(this.engine, length);\n }\n /**\n * Returns a random `Date` within the inclusive range of [`start`, `end`].\n * @param start The minimum `Date`\n * @param end The maximum `Date`\n */\n date(start, end) {\n return date(start, end)(this.engine);\n }\n}\n\n/**\n * Returns an array of random int32 values, based on current time\n * and a random number engine\n *\n * @param engine an Engine to pull random values from, default `nativeMath`\n * @param length the length of the Array, minimum 1, default 16\n */\nfunction createEntropy(engine = nativeMath, length = 16) {\n const array = [];\n array.push(new Date().getTime() | 0);\n for (let i = 1; i < length; ++i) {\n array[i] = engine.next() | 0;\n }\n return array;\n}\n\n/**\n * See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/imul\n */\nconst imul = (() => {\n try {\n if (Math.imul(UINT32_MAX, 5) === -5) {\n return Math.imul;\n }\n }\n catch (e) {\n console.warn(\"Math.imul is not available or failed the test, using polyfill.\", e);\n }\n const UINT16_MAX = 0xffff;\n return (a, b) => {\n const ah = (a >>> 16) & UINT16_MAX;\n const al = a & UINT16_MAX;\n const bh = (b >>> 16) & UINT16_MAX;\n const bl = b & UINT16_MAX;\n // the shift by 0 fixes the sign on the high part\n // the final |0 converts the unsigned value into a signed value\n return (al * bl + (((ah * bl + al * bh) << 16) >>> 0)) | 0;\n };\n})();\n\nconst ARRAY_SIZE$1 = 624;\nconst ARRAY_MAX = ARRAY_SIZE$1 - 1;\nconst M = 397;\nconst ARRAY_SIZE_MINUS_M = ARRAY_SIZE$1 - M;\nconst A = 0x9908b0df;\n/**\n * An Engine that is a pseudorandom number generator using the Mersenne\n * Twister algorithm based on the prime 2**19937 āˆ’ 1\n *\n * See http://en.wikipedia.org/wiki/Mersenne_twister\n */\nclass MersenneTwister19937 {\n /**\n * Returns a MersenneTwister19937 seeded with an initial int32 value\n * @param initial the initial seed value\n */\n static seed(initial) {\n return new MersenneTwister19937().seed(initial);\n }\n /**\n * Returns a MersenneTwister19937 seeded with zero or more int32 values\n * @param source A series of int32 values\n */\n static seedWithArray(source) {\n return new MersenneTwister19937().seedWithArray(source);\n }\n /**\n * Returns a MersenneTwister19937 seeded with the current time and\n * a series of natively-generated random values\n */\n static autoSeed() {\n return MersenneTwister19937.seedWithArray(createEntropy());\n }\n data = new I32Array(ARRAY_SIZE$1);\n index = 0; // integer within [0, 624]\n uses = 0;\n /**\n * MersenneTwister19937 should not be instantiated directly.\n * Instead, use the static methods `seed`, `seedWithArray`, or `autoSeed`.\n */\n constructor() { }\n /**\n * Returns the next int32 value of the sequence\n */\n next() {\n if ((this.index | 0) >= ARRAY_SIZE$1) {\n refreshData(this.data);\n this.index = 0;\n }\n const value = this.data[this.index];\n this.index = (this.index + 1) | 0;\n this.uses += 1;\n return temper(value) | 0;\n }\n /**\n * Returns the number of times that the Engine has been used.\n *\n * This can be provided to an unused MersenneTwister19937 with the same\n * seed, bringing it to the exact point that was left off.\n */\n getUseCount() {\n return this.uses;\n }\n /**\n * Discards one or more items from the engine\n * @param count The count of items to discard\n */\n discard(count) {\n if (count <= 0) {\n return this;\n }\n this.uses += count;\n if ((this.index | 0) >= ARRAY_SIZE$1) {\n refreshData(this.data);\n this.index = 0;\n }\n while (count + this.index > ARRAY_SIZE$1) {\n count -= ARRAY_SIZE$1 - this.index;\n refreshData(this.data);\n this.index = 0;\n }\n this.index = (this.index + count) | 0;\n return this;\n }\n seed(initial) {\n let previous = 0;\n this.data[0] = previous = initial | 0;\n for (let i = 1; i < ARRAY_SIZE$1; i = (i + 1) | 0) {\n this.data[i] = previous =\n (imul(previous ^ (previous >>> 30), 0x6c078965) + i) | 0;\n }\n this.index = ARRAY_SIZE$1;\n this.uses = 0;\n return this;\n }\n seedWithArray(source) {\n this.seed(0x012bd6aa);\n seedWithArray(this.data, source);\n return this;\n }\n}\nfunction refreshData(data) {\n let k = 0;\n let tmp = 0;\n for (; (k | 0) < ARRAY_SIZE_MINUS_M; k = (k + 1) | 0) {\n tmp = (data[k] & INT32_SIZE) | (data[(k + 1) | 0] & INT32_MAX);\n data[k] = data[(k + M) | 0] ^ (tmp >>> 1) ^ (tmp & 0x1 ? A : 0);\n }\n for (; (k | 0) < ARRAY_MAX; k = (k + 1) | 0) {\n tmp = (data[k] & INT32_SIZE) | (data[(k + 1) | 0] & INT32_MAX);\n data[k] =\n data[(k - ARRAY_SIZE_MINUS_M) | 0] ^ (tmp >>> 1) ^ (tmp & 0x1 ? A : 0);\n }\n tmp = (data[ARRAY_MAX] & INT32_SIZE) | (data[0] & INT32_MAX);\n data[ARRAY_MAX] = data[M - 1] ^ (tmp >>> 1) ^ (tmp & 0x1 ? A : 0);\n}\nfunction temper(value) {\n value ^= value >>> 11;\n value ^= (value << 7) & 0x9d2c5680;\n value ^= (value << 15) & 0xefc60000;\n return value ^ (value >>> 18);\n}\nfunction seedWithArray(data, source) {\n let i = 1;\n let j = 0;\n const sourceLength = source.length;\n let k = Math.max(sourceLength, ARRAY_SIZE$1) | 0;\n let previous = data[0] | 0;\n for (; (k | 0) > 0; --k) {\n data[i] = previous =\n ((data[i] ^ imul(previous ^ (previous >>> 30), 0x0019660d)) +\n (source[j] | 0) +\n (j | 0)) |\n 0;\n i = (i + 1) | 0;\n ++j;\n if ((i | 0) > ARRAY_MAX) {\n data[0] = data[ARRAY_MAX];\n i = 1;\n }\n if (j >= sourceLength) {\n j = 0;\n }\n }\n for (k = ARRAY_MAX; (k | 0) > 0; --k) {\n data[i] = previous =\n ((data[i] ^ imul(previous ^ (previous >>> 30), 0x5d588b65)) - i) | 0;\n i = (i + 1) | 0;\n if ((i | 0) > ARRAY_MAX) {\n data[0] = data[ARRAY_MAX];\n i = 1;\n }\n }\n data[0] = INT32_SIZE;\n}\n\n// Constants for xorgen4096\nconst ARRAY_SIZE = 4096;\nconst ARRAY_MASK = ARRAY_SIZE - 1;\n/**\n * An Engine that is a pseudorandom number generator using\n * xorgen4096 algorithm with 4096-length state array.\n */\nclass XorGen4096 {\n data = new I32Array(ARRAY_SIZE);\n index = 0;\n uses = 0;\n /**\n * Returns a XorGen4096 seeded with an initial int32 value\n */\n static seed(initial) {\n return new XorGen4096().seed(initial);\n }\n /**\n * Returns a XorGen4096 seeded with zero or more int32 values\n */\n static seedWithArray(source) {\n return new XorGen4096().seedWithArray(source);\n }\n /**\n * Returns a XorGen4096 seeded with the current time and\n * a series of natively-generated random values\n */\n static autoSeed() {\n return XorGen4096.seedWithArray(createEntropy());\n }\n constructor() { }\n /**\n * Returns the next int32 value of the sequence\n */\n next() {\n // Advance index in a circular manner\n const i = this.index;\n this.index = (this.index + 1) & ARRAY_MASK;\n let t = this.data[i];\n const s = this.data[(i + 1) & ARRAY_MASK];\n t ^= (t << 13);\n t ^= (t >>> 17);\n t ^= (s ^ (s >>> 5));\n this.data[i] = t;\n this.uses++;\n return t | 0;\n }\n /**\n * Returns the number of times that the Engine has been used.\n */\n getUseCount() {\n return this.uses;\n }\n /**\n * Discards one or more items from the engine\n */\n discard(count) {\n if (count <= 0)\n return this;\n this.uses += count;\n this.index = (this.index + count) & ARRAY_MASK;\n return this;\n }\n seed(initial) {\n let prev = initial | 0;\n this.data[0] = prev;\n for (let i = 1; i < ARRAY_SIZE; i++) {\n prev = imul(prev ^ (prev >>> 30), 0x6c078965) + i | 0;\n this.data[i] = prev;\n }\n this.index = 0;\n this.uses = 0;\n return this;\n }\n seedWithArray(source) {\n this.seed(19650218);\n let i = 1;\n let j = 0;\n const length = source.length;\n let k = ARRAY_SIZE > length ? ARRAY_SIZE : length;\n for (; k > 0; k--) {\n this.data[i] = (this.data[i] ^ imul(this.data[i - 1] ^ (this.data[i - 1] >>> 30), 1664525)) + source[j] + j | 0;\n i++;\n j++;\n if (i >= ARRAY_SIZE) {\n this.data[0] = this.data[ARRAY_SIZE - 1];\n i = 1;\n }\n if (j >= length)\n j = 0;\n }\n for (k = ARRAY_SIZE - 1; k > 0; k--) {\n this.data[i] = (this.data[i] ^ imul(this.data[i - 1] ^ (this.data[i - 1] >>> 30), 1566083941)) - i | 0;\n i++;\n if (i >= ARRAY_SIZE) {\n this.data[0] = this.data[ARRAY_SIZE - 1];\n i = 1;\n }\n }\n this.index = 0;\n this.uses = 0;\n return this;\n }\n}\n\n/**\n * Returns a Distribution to random value within the provided `source`\n * within the sliced bounds of `begin` and `end`.\n * @param source an array of items to pick from\n * @param begin the beginning slice index (defaults to `0`)\n * @param end the ending slice index (defaults to `source.length`)\n */\nfunction picker(source, begin, end) {\n const clone = sliceArray.call(source, begin, end);\n if (clone.length === 0) {\n throw new RangeError(`Cannot pick from a source with no items`);\n }\n const distribution = integer(0, clone.length - 1);\n return engine => clone[distribution(engine)];\n}\n\nexport { MersenneTwister19937, Random, XorGen4096, bool, browserCrypto, createEntropy, date, dice, die, hex, int32, int53, int53Full, integer, nativeMath, pick, picker, real, realZeroToOneExclusive, realZeroToOneInclusive, sample, shuffle, string, uint32, uint53, uint53Full, uuid4 };\n//# sourceMappingURL=random-js.esm.js.map\n", + "// these aren't really private, but nor are they really useful to document\n\n/**\n * @private\n */\nclass LuxonError extends Error {}\n\n/**\n * @private\n */\nclass InvalidDateTimeError extends LuxonError {\n constructor(reason) {\n super(`Invalid DateTime: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nclass InvalidIntervalError extends LuxonError {\n constructor(reason) {\n super(`Invalid Interval: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nclass InvalidDurationError extends LuxonError {\n constructor(reason) {\n super(`Invalid Duration: ${reason.toMessage()}`);\n }\n}\n\n/**\n * @private\n */\nclass ConflictingSpecificationError extends LuxonError {}\n\n/**\n * @private\n */\nclass InvalidUnitError extends LuxonError {\n constructor(unit) {\n super(`Invalid unit ${unit}`);\n }\n}\n\n/**\n * @private\n */\nclass InvalidArgumentError extends LuxonError {}\n\n/**\n * @private\n */\nclass ZoneIsAbstractError extends LuxonError {\n constructor() {\n super(\"Zone is an abstract class\");\n }\n}\n\n/**\n * @private\n */\n\nconst n = \"numeric\",\n s = \"short\",\n l = \"long\";\n\nconst DATE_SHORT = {\n year: n,\n month: n,\n day: n,\n};\n\nconst DATE_MED = {\n year: n,\n month: s,\n day: n,\n};\n\nconst DATE_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n};\n\nconst DATE_FULL = {\n year: n,\n month: l,\n day: n,\n};\n\nconst DATE_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n};\n\nconst TIME_SIMPLE = {\n hour: n,\n minute: n,\n};\n\nconst TIME_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n};\n\nconst TIME_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nconst TIME_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n\nconst TIME_24_SIMPLE = {\n hour: n,\n minute: n,\n hourCycle: \"h23\",\n};\n\nconst TIME_24_WITH_SECONDS = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n};\n\nconst TIME_24_WITH_SHORT_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: s,\n};\n\nconst TIME_24_WITH_LONG_OFFSET = {\n hour: n,\n minute: n,\n second: n,\n hourCycle: \"h23\",\n timeZoneName: l,\n};\n\nconst DATETIME_SHORT = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n};\n\nconst DATETIME_SHORT_WITH_SECONDS = {\n year: n,\n month: n,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nconst DATETIME_MED = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n};\n\nconst DATETIME_MED_WITH_SECONDS = {\n year: n,\n month: s,\n day: n,\n hour: n,\n minute: n,\n second: n,\n};\n\nconst DATETIME_MED_WITH_WEEKDAY = {\n year: n,\n month: s,\n day: n,\n weekday: s,\n hour: n,\n minute: n,\n};\n\nconst DATETIME_FULL = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n timeZoneName: s,\n};\n\nconst DATETIME_FULL_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: s,\n};\n\nconst DATETIME_HUGE = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n timeZoneName: l,\n};\n\nconst DATETIME_HUGE_WITH_SECONDS = {\n year: n,\n month: l,\n day: n,\n weekday: l,\n hour: n,\n minute: n,\n second: n,\n timeZoneName: l,\n};\n\n/**\n * @interface\n */\nclass Zone {\n /**\n * The type of zone\n * @abstract\n * @type {string}\n */\n get type() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The name of this zone.\n * @abstract\n * @type {string}\n */\n get name() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * The IANA name of this zone.\n * Defaults to `name` if not overwritten by a subclass.\n * @abstract\n * @type {string}\n */\n get ianaName() {\n return this.name;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year.\n * @abstract\n * @type {boolean}\n */\n get isUniversal() {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, opts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Returns the offset's value as a string\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @abstract\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @abstract\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n throw new ZoneIsAbstractError();\n }\n\n /**\n * Return whether this Zone is valid.\n * @abstract\n * @type {boolean}\n */\n get isValid() {\n throw new ZoneIsAbstractError();\n }\n}\n\nlet singleton$1 = null;\n\n/**\n * Represents the local zone for this JavaScript environment.\n * @implements {Zone}\n */\nclass SystemZone extends Zone {\n /**\n * Get a singleton instance of the local zone\n * @return {SystemZone}\n */\n static get instance() {\n if (singleton$1 === null) {\n singleton$1 = new SystemZone();\n }\n return singleton$1;\n }\n\n /** @override **/\n get type() {\n return \"system\";\n }\n\n /** @override **/\n get name() {\n return new Intl.DateTimeFormat().resolvedOptions().timeZone;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale);\n }\n\n /** @override **/\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /** @override **/\n offset(ts) {\n return -new Date(ts).getTimezoneOffset();\n }\n\n /** @override **/\n equals(otherZone) {\n return otherZone.type === \"system\";\n }\n\n /** @override **/\n get isValid() {\n return true;\n }\n}\n\nconst dtfCache = new Map();\nfunction makeDTF(zoneName) {\n let dtf = dtfCache.get(zoneName);\n if (dtf === undefined) {\n dtf = new Intl.DateTimeFormat(\"en-US\", {\n hour12: false,\n timeZone: zoneName,\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n era: \"short\",\n });\n dtfCache.set(zoneName, dtf);\n }\n return dtf;\n}\n\nconst typeToPos = {\n year: 0,\n month: 1,\n day: 2,\n era: 3,\n hour: 4,\n minute: 5,\n second: 6,\n};\n\nfunction hackyOffset(dtf, date) {\n const formatted = dtf.format(date).replace(/\\u200E/g, \"\"),\n parsed = /(\\d+)\\/(\\d+)\\/(\\d+) (AD|BC),? (\\d+):(\\d+):(\\d+)/.exec(formatted),\n [, fMonth, fDay, fYear, fadOrBc, fHour, fMinute, fSecond] = parsed;\n return [fYear, fMonth, fDay, fadOrBc, fHour, fMinute, fSecond];\n}\n\nfunction partsOffset(dtf, date) {\n const formatted = dtf.formatToParts(date);\n const filled = [];\n for (let i = 0; i < formatted.length; i++) {\n const { type, value } = formatted[i];\n const pos = typeToPos[type];\n\n if (type === \"era\") {\n filled[pos] = value;\n } else if (!isUndefined(pos)) {\n filled[pos] = parseInt(value, 10);\n }\n }\n return filled;\n}\n\nconst ianaZoneCache = new Map();\n/**\n * A zone identified by an IANA identifier, like America/New_York\n * @implements {Zone}\n */\nclass IANAZone extends Zone {\n /**\n * @param {string} name - Zone name\n * @return {IANAZone}\n */\n static create(name) {\n let zone = ianaZoneCache.get(name);\n if (zone === undefined) {\n ianaZoneCache.set(name, (zone = new IANAZone(name)));\n }\n return zone;\n }\n\n /**\n * Reset local caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCache() {\n ianaZoneCache.clear();\n dtfCache.clear();\n }\n\n /**\n * Returns whether the provided string is a valid specifier. This only checks the string's format, not that the specifier identifies a known zone; see isValidZone for that.\n * @param {string} s - The string to check validity on\n * @example IANAZone.isValidSpecifier(\"America/New_York\") //=> true\n * @example IANAZone.isValidSpecifier(\"Sport~~blorp\") //=> false\n * @deprecated For backward compatibility, this forwards to isValidZone, better use `isValidZone()` directly instead.\n * @return {boolean}\n */\n static isValidSpecifier(s) {\n return this.isValidZone(s);\n }\n\n /**\n * Returns whether the provided string identifies a real zone\n * @param {string} zone - The string to check\n * @example IANAZone.isValidZone(\"America/New_York\") //=> true\n * @example IANAZone.isValidZone(\"Fantasia/Castle\") //=> false\n * @example IANAZone.isValidZone(\"Sport~~blorp\") //=> false\n * @return {boolean}\n */\n static isValidZone(zone) {\n if (!zone) {\n return false;\n }\n try {\n new Intl.DateTimeFormat(\"en-US\", { timeZone: zone }).format();\n return true;\n } catch (e) {\n return false;\n }\n }\n\n constructor(name) {\n super();\n /** @private **/\n this.zoneName = name;\n /** @private **/\n this.valid = IANAZone.isValidZone(name);\n }\n\n /**\n * The type of zone. `iana` for all instances of `IANAZone`.\n * @override\n * @type {string}\n */\n get type() {\n return \"iana\";\n }\n\n /**\n * The name of this zone (i.e. the IANA zone name).\n * @override\n * @type {string}\n */\n get name() {\n return this.zoneName;\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year:\n * Always returns false for all IANA zones.\n * @override\n * @type {boolean}\n */\n get isUniversal() {\n return false;\n }\n\n /**\n * Returns the offset's common name (such as EST) at the specified timestamp\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the name\n * @param {Object} opts - Options to affect the format\n * @param {string} opts.format - What style of offset to return. Accepts 'long' or 'short'.\n * @param {string} opts.locale - What locale to return the offset name in.\n * @return {string}\n */\n offsetName(ts, { format, locale }) {\n return parseZoneInfo(ts, format, locale, this.name);\n }\n\n /**\n * Returns the offset's value as a string\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n return formatOffset(this.offset(ts), format);\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n * @override\n * @param {number} ts - Epoch milliseconds for which to compute the offset\n * @return {number}\n */\n offset(ts) {\n if (!this.valid) return NaN;\n const date = new Date(ts);\n\n if (isNaN(date)) return NaN;\n\n const dtf = makeDTF(this.name);\n let [year, month, day, adOrBc, hour, minute, second] = dtf.formatToParts\n ? partsOffset(dtf, date)\n : hackyOffset(dtf, date);\n\n if (adOrBc === \"BC\") {\n year = -Math.abs(year) + 1;\n }\n\n // because we're using hour12 and https://bugs.chromium.org/p/chromium/issues/detail?id=1025564&can=2&q=%2224%3A00%22%20datetimeformat\n const adjustedHour = hour === 24 ? 0 : hour;\n\n const asUTC = objToLocalTS({\n year,\n month,\n day,\n hour: adjustedHour,\n minute,\n second,\n millisecond: 0,\n });\n\n let asTS = +date;\n const over = asTS % 1000;\n asTS -= over >= 0 ? over : 1000 + over;\n return (asUTC - asTS) / (60 * 1000);\n }\n\n /**\n * Return whether this Zone is equal to another zone\n * @override\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n return otherZone.type === \"iana\" && otherZone.name === this.name;\n }\n\n /**\n * Return whether this Zone is valid.\n * @override\n * @type {boolean}\n */\n get isValid() {\n return this.valid;\n }\n}\n\n// todo - remap caching\n\nlet intlLFCache = {};\nfunction getCachedLF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlLFCache[key];\n if (!dtf) {\n dtf = new Intl.ListFormat(locString, opts);\n intlLFCache[key] = dtf;\n }\n return dtf;\n}\n\nconst intlDTCache = new Map();\nfunction getCachedDTF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let dtf = intlDTCache.get(key);\n if (dtf === undefined) {\n dtf = new Intl.DateTimeFormat(locString, opts);\n intlDTCache.set(key, dtf);\n }\n return dtf;\n}\n\nconst intlNumCache = new Map();\nfunction getCachedINF(locString, opts = {}) {\n const key = JSON.stringify([locString, opts]);\n let inf = intlNumCache.get(key);\n if (inf === undefined) {\n inf = new Intl.NumberFormat(locString, opts);\n intlNumCache.set(key, inf);\n }\n return inf;\n}\n\nconst intlRelCache = new Map();\nfunction getCachedRTF(locString, opts = {}) {\n const { base, ...cacheKeyOpts } = opts; // exclude `base` from the options\n const key = JSON.stringify([locString, cacheKeyOpts]);\n let inf = intlRelCache.get(key);\n if (inf === undefined) {\n inf = new Intl.RelativeTimeFormat(locString, opts);\n intlRelCache.set(key, inf);\n }\n return inf;\n}\n\nlet sysLocaleCache = null;\nfunction systemLocale() {\n if (sysLocaleCache) {\n return sysLocaleCache;\n } else {\n sysLocaleCache = new Intl.DateTimeFormat().resolvedOptions().locale;\n return sysLocaleCache;\n }\n}\n\nconst intlResolvedOptionsCache = new Map();\nfunction getCachedIntResolvedOptions(locString) {\n let opts = intlResolvedOptionsCache.get(locString);\n if (opts === undefined) {\n opts = new Intl.DateTimeFormat(locString).resolvedOptions();\n intlResolvedOptionsCache.set(locString, opts);\n }\n return opts;\n}\n\nconst weekInfoCache = new Map();\nfunction getCachedWeekInfo(locString) {\n let data = weekInfoCache.get(locString);\n if (!data) {\n const locale = new Intl.Locale(locString);\n // browsers currently implement this as a property, but spec says it should be a getter function\n data = \"getWeekInfo\" in locale ? locale.getWeekInfo() : locale.weekInfo;\n // minimalDays was removed from WeekInfo: https://github.com/tc39/proposal-intl-locale-info/issues/86\n if (!(\"minimalDays\" in data)) {\n data = { ...fallbackWeekSettings, ...data };\n }\n weekInfoCache.set(locString, data);\n }\n return data;\n}\n\nfunction parseLocaleString(localeStr) {\n // I really want to avoid writing a BCP 47 parser\n // see, e.g. https://github.com/wooorm/bcp-47\n // Instead, we'll do this:\n\n // a) if the string has no -u extensions, just leave it alone\n // b) if it does, use Intl to resolve everything\n // c) if Intl fails, try again without the -u\n\n // private subtags and unicode subtags have ordering requirements,\n // and we're not properly parsing this, so just strip out the\n // private ones if they exist.\n const xIndex = localeStr.indexOf(\"-x-\");\n if (xIndex !== -1) {\n localeStr = localeStr.substring(0, xIndex);\n }\n\n const uIndex = localeStr.indexOf(\"-u-\");\n if (uIndex === -1) {\n return [localeStr];\n } else {\n let options;\n let selectedStr;\n try {\n options = getCachedDTF(localeStr).resolvedOptions();\n selectedStr = localeStr;\n } catch (e) {\n const smaller = localeStr.substring(0, uIndex);\n options = getCachedDTF(smaller).resolvedOptions();\n selectedStr = smaller;\n }\n\n const { numberingSystem, calendar } = options;\n return [selectedStr, numberingSystem, calendar];\n }\n}\n\nfunction intlConfigString(localeStr, numberingSystem, outputCalendar) {\n if (outputCalendar || numberingSystem) {\n if (!localeStr.includes(\"-u-\")) {\n localeStr += \"-u\";\n }\n\n if (outputCalendar) {\n localeStr += `-ca-${outputCalendar}`;\n }\n\n if (numberingSystem) {\n localeStr += `-nu-${numberingSystem}`;\n }\n return localeStr;\n } else {\n return localeStr;\n }\n}\n\nfunction mapMonths(f) {\n const ms = [];\n for (let i = 1; i <= 12; i++) {\n const dt = DateTime.utc(2009, i, 1);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction mapWeekdays(f) {\n const ms = [];\n for (let i = 1; i <= 7; i++) {\n const dt = DateTime.utc(2016, 11, 13 + i);\n ms.push(f(dt));\n }\n return ms;\n}\n\nfunction listStuff(loc, length, englishFn, intlFn) {\n const mode = loc.listingMode();\n\n if (mode === \"error\") {\n return null;\n } else if (mode === \"en\") {\n return englishFn(length);\n } else {\n return intlFn(length);\n }\n}\n\nfunction supportsFastNumbers(loc) {\n if (loc.numberingSystem && loc.numberingSystem !== \"latn\") {\n return false;\n } else {\n return (\n loc.numberingSystem === \"latn\" ||\n !loc.locale ||\n loc.locale.startsWith(\"en\") ||\n getCachedIntResolvedOptions(loc.locale).numberingSystem === \"latn\"\n );\n }\n}\n\n/**\n * @private\n */\n\nclass PolyNumberFormatter {\n constructor(intl, forceSimple, opts) {\n this.padTo = opts.padTo || 0;\n this.floor = opts.floor || false;\n\n const { padTo, floor, ...otherOpts } = opts;\n\n if (!forceSimple || Object.keys(otherOpts).length > 0) {\n const intlOpts = { useGrouping: false, ...opts };\n if (opts.padTo > 0) intlOpts.minimumIntegerDigits = opts.padTo;\n this.inf = getCachedINF(intl, intlOpts);\n }\n }\n\n format(i) {\n if (this.inf) {\n const fixed = this.floor ? Math.floor(i) : i;\n return this.inf.format(fixed);\n } else {\n // to match the browser's numberformatter defaults\n const fixed = this.floor ? Math.floor(i) : roundTo(i, 3);\n return padStart(fixed, this.padTo);\n }\n }\n}\n\n/**\n * @private\n */\n\nclass PolyDateFormatter {\n constructor(dt, intl, opts) {\n this.opts = opts;\n this.originalZone = undefined;\n\n let z = undefined;\n if (this.opts.timeZone) {\n // Don't apply any workarounds if a timeZone is explicitly provided in opts\n this.dt = dt;\n } else if (dt.zone.type === \"fixed\") {\n // UTC-8 or Etc/UTC-8 are not part of tzdata, only Etc/GMT+8 and the like.\n // That is why fixed-offset TZ is set to that unless it is:\n // 1. Representing offset 0 when UTC is used to maintain previous behavior and does not become GMT.\n // 2. Unsupported by the browser:\n // - some do not support Etc/\n // - < Etc/GMT-14, > Etc/GMT+12, and 30-minute or 45-minute offsets are not part of tzdata\n const gmtOffset = -1 * (dt.offset / 60);\n const offsetZ = gmtOffset >= 0 ? `Etc/GMT+${gmtOffset}` : `Etc/GMT${gmtOffset}`;\n if (dt.offset !== 0 && IANAZone.create(offsetZ).valid) {\n z = offsetZ;\n this.dt = dt;\n } else {\n // Not all fixed-offset zones like Etc/+4:30 are present in tzdata so\n // we manually apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.offset === 0 ? dt : dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n } else if (dt.zone.type === \"system\") {\n this.dt = dt;\n } else if (dt.zone.type === \"iana\") {\n this.dt = dt;\n z = dt.zone.name;\n } else {\n // Custom zones can have any offset / offsetName so we just manually\n // apply the offset and substitute the zone as needed.\n z = \"UTC\";\n this.dt = dt.setZone(\"UTC\").plus({ minutes: dt.offset });\n this.originalZone = dt.zone;\n }\n\n const intlOpts = { ...this.opts };\n intlOpts.timeZone = intlOpts.timeZone || z;\n this.dtf = getCachedDTF(intl, intlOpts);\n }\n\n format() {\n if (this.originalZone) {\n // If we have to substitute in the actual zone name, we have to use\n // formatToParts so that the timezone can be replaced.\n return this.formatToParts()\n .map(({ value }) => value)\n .join(\"\");\n }\n return this.dtf.format(this.dt.toJSDate());\n }\n\n formatToParts() {\n const parts = this.dtf.formatToParts(this.dt.toJSDate());\n if (this.originalZone) {\n return parts.map((part) => {\n if (part.type === \"timeZoneName\") {\n const offsetName = this.originalZone.offsetName(this.dt.ts, {\n locale: this.dt.locale,\n format: this.opts.timeZoneName,\n });\n return {\n ...part,\n value: offsetName,\n };\n } else {\n return part;\n }\n });\n }\n return parts;\n }\n\n resolvedOptions() {\n return this.dtf.resolvedOptions();\n }\n}\n\n/**\n * @private\n */\nclass PolyRelFormatter {\n constructor(intl, isEnglish, opts) {\n this.opts = { style: \"long\", ...opts };\n if (!isEnglish && hasRelative()) {\n this.rtf = getCachedRTF(intl, opts);\n }\n }\n\n format(count, unit) {\n if (this.rtf) {\n return this.rtf.format(count, unit);\n } else {\n return formatRelativeTime(unit, count, this.opts.numeric, this.opts.style !== \"long\");\n }\n }\n\n formatToParts(count, unit) {\n if (this.rtf) {\n return this.rtf.formatToParts(count, unit);\n } else {\n return [];\n }\n }\n}\n\nconst fallbackWeekSettings = {\n firstDay: 1,\n minimalDays: 4,\n weekend: [6, 7],\n};\n\n/**\n * @private\n */\nclass Locale {\n static fromOpts(opts) {\n return Locale.create(\n opts.locale,\n opts.numberingSystem,\n opts.outputCalendar,\n opts.weekSettings,\n opts.defaultToEN\n );\n }\n\n static create(locale, numberingSystem, outputCalendar, weekSettings, defaultToEN = false) {\n const specifiedLocale = locale || Settings.defaultLocale;\n // the system locale is useful for human-readable strings but annoying for parsing/formatting known formats\n const localeR = specifiedLocale || (defaultToEN ? \"en-US\" : systemLocale());\n const numberingSystemR = numberingSystem || Settings.defaultNumberingSystem;\n const outputCalendarR = outputCalendar || Settings.defaultOutputCalendar;\n const weekSettingsR = validateWeekSettings(weekSettings) || Settings.defaultWeekSettings;\n return new Locale(localeR, numberingSystemR, outputCalendarR, weekSettingsR, specifiedLocale);\n }\n\n static resetCache() {\n sysLocaleCache = null;\n intlDTCache.clear();\n intlNumCache.clear();\n intlRelCache.clear();\n intlResolvedOptionsCache.clear();\n weekInfoCache.clear();\n }\n\n static fromObject({ locale, numberingSystem, outputCalendar, weekSettings } = {}) {\n return Locale.create(locale, numberingSystem, outputCalendar, weekSettings);\n }\n\n constructor(locale, numbering, outputCalendar, weekSettings, specifiedLocale) {\n const [parsedLocale, parsedNumberingSystem, parsedOutputCalendar] = parseLocaleString(locale);\n\n this.locale = parsedLocale;\n this.numberingSystem = numbering || parsedNumberingSystem || null;\n this.outputCalendar = outputCalendar || parsedOutputCalendar || null;\n this.weekSettings = weekSettings;\n this.intl = intlConfigString(this.locale, this.numberingSystem, this.outputCalendar);\n\n this.weekdaysCache = { format: {}, standalone: {} };\n this.monthsCache = { format: {}, standalone: {} };\n this.meridiemCache = null;\n this.eraCache = {};\n\n this.specifiedLocale = specifiedLocale;\n this.fastNumbersCached = null;\n }\n\n get fastNumbers() {\n if (this.fastNumbersCached == null) {\n this.fastNumbersCached = supportsFastNumbers(this);\n }\n\n return this.fastNumbersCached;\n }\n\n listingMode() {\n const isActuallyEn = this.isEnglish();\n const hasNoWeirdness =\n (this.numberingSystem === null || this.numberingSystem === \"latn\") &&\n (this.outputCalendar === null || this.outputCalendar === \"gregory\");\n return isActuallyEn && hasNoWeirdness ? \"en\" : \"intl\";\n }\n\n clone(alts) {\n if (!alts || Object.getOwnPropertyNames(alts).length === 0) {\n return this;\n } else {\n return Locale.create(\n alts.locale || this.specifiedLocale,\n alts.numberingSystem || this.numberingSystem,\n alts.outputCalendar || this.outputCalendar,\n validateWeekSettings(alts.weekSettings) || this.weekSettings,\n alts.defaultToEN || false\n );\n }\n }\n\n redefaultToEN(alts = {}) {\n return this.clone({ ...alts, defaultToEN: true });\n }\n\n redefaultToSystem(alts = {}) {\n return this.clone({ ...alts, defaultToEN: false });\n }\n\n months(length, format = false) {\n return listStuff(this, length, months, () => {\n // Workaround for \"ja\" locale: formatToParts does not label all parts of the month\n // as \"month\" and for this locale there is no difference between \"format\" and \"non-format\".\n // As such, just use format() instead of formatToParts() and take the whole string\n const monthSpecialCase = this.intl === \"ja\" || this.intl.startsWith(\"ja-\");\n format &= !monthSpecialCase;\n const intl = format ? { month: length, day: \"numeric\" } : { month: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.monthsCache[formatStr][length]) {\n const mapper = !monthSpecialCase\n ? (dt) => this.extract(dt, intl, \"month\")\n : (dt) => this.dtFormatter(dt, intl).format();\n this.monthsCache[formatStr][length] = mapMonths(mapper);\n }\n return this.monthsCache[formatStr][length];\n });\n }\n\n weekdays(length, format = false) {\n return listStuff(this, length, weekdays, () => {\n const intl = format\n ? { weekday: length, year: \"numeric\", month: \"long\", day: \"numeric\" }\n : { weekday: length },\n formatStr = format ? \"format\" : \"standalone\";\n if (!this.weekdaysCache[formatStr][length]) {\n this.weekdaysCache[formatStr][length] = mapWeekdays((dt) =>\n this.extract(dt, intl, \"weekday\")\n );\n }\n return this.weekdaysCache[formatStr][length];\n });\n }\n\n meridiems() {\n return listStuff(\n this,\n undefined,\n () => meridiems,\n () => {\n // In theory there could be aribitrary day periods. We're gonna assume there are exactly two\n // for AM and PM. This is probably wrong, but it's makes parsing way easier.\n if (!this.meridiemCache) {\n const intl = { hour: \"numeric\", hourCycle: \"h12\" };\n this.meridiemCache = [DateTime.utc(2016, 11, 13, 9), DateTime.utc(2016, 11, 13, 19)].map(\n (dt) => this.extract(dt, intl, \"dayperiod\")\n );\n }\n\n return this.meridiemCache;\n }\n );\n }\n\n eras(length) {\n return listStuff(this, length, eras, () => {\n const intl = { era: length };\n\n // This is problematic. Different calendars are going to define eras totally differently. What I need is the minimum set of dates\n // to definitely enumerate them.\n if (!this.eraCache[length]) {\n this.eraCache[length] = [DateTime.utc(-40, 1, 1), DateTime.utc(2017, 1, 1)].map((dt) =>\n this.extract(dt, intl, \"era\")\n );\n }\n\n return this.eraCache[length];\n });\n }\n\n extract(dt, intlOpts, field) {\n const df = this.dtFormatter(dt, intlOpts),\n results = df.formatToParts(),\n matching = results.find((m) => m.type.toLowerCase() === field);\n return matching ? matching.value : null;\n }\n\n numberFormatter(opts = {}) {\n // this forcesimple option is never used (the only caller short-circuits on it, but it seems safer to leave)\n // (in contrast, the rest of the condition is used heavily)\n return new PolyNumberFormatter(this.intl, opts.forceSimple || this.fastNumbers, opts);\n }\n\n dtFormatter(dt, intlOpts = {}) {\n return new PolyDateFormatter(dt, this.intl, intlOpts);\n }\n\n relFormatter(opts = {}) {\n return new PolyRelFormatter(this.intl, this.isEnglish(), opts);\n }\n\n listFormatter(opts = {}) {\n return getCachedLF(this.intl, opts);\n }\n\n isEnglish() {\n return (\n this.locale === \"en\" ||\n this.locale.toLowerCase() === \"en-us\" ||\n getCachedIntResolvedOptions(this.intl).locale.startsWith(\"en-us\")\n );\n }\n\n getWeekSettings() {\n if (this.weekSettings) {\n return this.weekSettings;\n } else if (!hasLocaleWeekInfo()) {\n return fallbackWeekSettings;\n } else {\n return getCachedWeekInfo(this.locale);\n }\n }\n\n getStartOfWeek() {\n return this.getWeekSettings().firstDay;\n }\n\n getMinDaysInFirstWeek() {\n return this.getWeekSettings().minimalDays;\n }\n\n getWeekendDays() {\n return this.getWeekSettings().weekend;\n }\n\n equals(other) {\n return (\n this.locale === other.locale &&\n this.numberingSystem === other.numberingSystem &&\n this.outputCalendar === other.outputCalendar\n );\n }\n\n toString() {\n return `Locale(${this.locale}, ${this.numberingSystem}, ${this.outputCalendar})`;\n }\n}\n\nlet singleton = null;\n\n/**\n * A zone with a fixed offset (meaning no DST)\n * @implements {Zone}\n */\nclass FixedOffsetZone extends Zone {\n /**\n * Get a singleton instance of UTC\n * @return {FixedOffsetZone}\n */\n static get utcInstance() {\n if (singleton === null) {\n singleton = new FixedOffsetZone(0);\n }\n return singleton;\n }\n\n /**\n * Get an instance with a specified offset\n * @param {number} offset - The offset in minutes\n * @return {FixedOffsetZone}\n */\n static instance(offset) {\n return offset === 0 ? FixedOffsetZone.utcInstance : new FixedOffsetZone(offset);\n }\n\n /**\n * Get an instance of FixedOffsetZone from a UTC offset string, like \"UTC+6\"\n * @param {string} s - The offset string to parse\n * @example FixedOffsetZone.parseSpecifier(\"UTC+6\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC+06\")\n * @example FixedOffsetZone.parseSpecifier(\"UTC-6:00\")\n * @return {FixedOffsetZone}\n */\n static parseSpecifier(s) {\n if (s) {\n const r = s.match(/^utc(?:([+-]\\d{1,2})(?::(\\d{2}))?)?$/i);\n if (r) {\n return new FixedOffsetZone(signedOffset(r[1], r[2]));\n }\n }\n return null;\n }\n\n constructor(offset) {\n super();\n /** @private **/\n this.fixed = offset;\n }\n\n /**\n * The type of zone. `fixed` for all instances of `FixedOffsetZone`.\n * @override\n * @type {string}\n */\n get type() {\n return \"fixed\";\n }\n\n /**\n * The name of this zone.\n * All fixed zones' names always start with \"UTC\" (plus optional offset)\n * @override\n * @type {string}\n */\n get name() {\n return this.fixed === 0 ? \"UTC\" : `UTC${formatOffset(this.fixed, \"narrow\")}`;\n }\n\n /**\n * The IANA name of this zone, i.e. `Etc/UTC` or `Etc/GMT+/-nn`\n *\n * @override\n * @type {string}\n */\n get ianaName() {\n if (this.fixed === 0) {\n return \"Etc/UTC\";\n } else {\n return `Etc/GMT${formatOffset(-this.fixed, \"narrow\")}`;\n }\n }\n\n /**\n * Returns the offset's common name at the specified timestamp.\n *\n * For fixed offset zones this equals to the zone name.\n * @override\n */\n offsetName() {\n return this.name;\n }\n\n /**\n * Returns the offset's value as a string\n * @override\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\n formatOffset(ts, format) {\n return formatOffset(this.fixed, format);\n }\n\n /**\n * Returns whether the offset is known to be fixed for the whole year:\n * Always returns true for all fixed offset zones.\n * @override\n * @type {boolean}\n */\n get isUniversal() {\n return true;\n }\n\n /**\n * Return the offset in minutes for this zone at the specified timestamp.\n *\n * For fixed offset zones, this is constant and does not depend on a timestamp.\n * @override\n * @return {number}\n */\n offset() {\n return this.fixed;\n }\n\n /**\n * Return whether this Zone is equal to another zone (i.e. also fixed and same offset)\n * @override\n * @param {Zone} otherZone - the zone to compare\n * @return {boolean}\n */\n equals(otherZone) {\n return otherZone.type === \"fixed\" && otherZone.fixed === this.fixed;\n }\n\n /**\n * Return whether this Zone is valid:\n * All fixed offset zones are valid.\n * @override\n * @type {boolean}\n */\n get isValid() {\n return true;\n }\n}\n\n/**\n * A zone that failed to parse. You should never need to instantiate this.\n * @implements {Zone}\n */\nclass InvalidZone extends Zone {\n constructor(zoneName) {\n super();\n /** @private */\n this.zoneName = zoneName;\n }\n\n /** @override **/\n get type() {\n return \"invalid\";\n }\n\n /** @override **/\n get name() {\n return this.zoneName;\n }\n\n /** @override **/\n get isUniversal() {\n return false;\n }\n\n /** @override **/\n offsetName() {\n return null;\n }\n\n /** @override **/\n formatOffset() {\n return \"\";\n }\n\n /** @override **/\n offset() {\n return NaN;\n }\n\n /** @override **/\n equals() {\n return false;\n }\n\n /** @override **/\n get isValid() {\n return false;\n }\n}\n\n/**\n * @private\n */\n\nfunction normalizeZone(input, defaultZone) {\n if (isUndefined(input) || input === null) {\n return defaultZone;\n } else if (input instanceof Zone) {\n return input;\n } else if (isString(input)) {\n const lowered = input.toLowerCase();\n if (lowered === \"default\") return defaultZone;\n else if (lowered === \"local\" || lowered === \"system\") return SystemZone.instance;\n else if (lowered === \"utc\" || lowered === \"gmt\") return FixedOffsetZone.utcInstance;\n else return FixedOffsetZone.parseSpecifier(lowered) || IANAZone.create(input);\n } else if (isNumber(input)) {\n return FixedOffsetZone.instance(input);\n } else if (typeof input === \"object\" && \"offset\" in input && typeof input.offset === \"function\") {\n // This is dumb, but the instanceof check above doesn't seem to really work\n // so we're duck checking it\n return input;\n } else {\n return new InvalidZone(input);\n }\n}\n\nconst numberingSystems = {\n arab: \"[\\u0660-\\u0669]\",\n arabext: \"[\\u06F0-\\u06F9]\",\n bali: \"[\\u1B50-\\u1B59]\",\n beng: \"[\\u09E6-\\u09EF]\",\n deva: \"[\\u0966-\\u096F]\",\n fullwide: \"[\\uFF10-\\uFF19]\",\n gujr: \"[\\u0AE6-\\u0AEF]\",\n hanidec: \"[怇|äø€|二|äø‰|四|äŗ”|六|七|八|九]\",\n khmr: \"[\\u17E0-\\u17E9]\",\n knda: \"[\\u0CE6-\\u0CEF]\",\n laoo: \"[\\u0ED0-\\u0ED9]\",\n limb: \"[\\u1946-\\u194F]\",\n mlym: \"[\\u0D66-\\u0D6F]\",\n mong: \"[\\u1810-\\u1819]\",\n mymr: \"[\\u1040-\\u1049]\",\n orya: \"[\\u0B66-\\u0B6F]\",\n tamldec: \"[\\u0BE6-\\u0BEF]\",\n telu: \"[\\u0C66-\\u0C6F]\",\n thai: \"[\\u0E50-\\u0E59]\",\n tibt: \"[\\u0F20-\\u0F29]\",\n latn: \"\\\\d\",\n};\n\nconst numberingSystemsUTF16 = {\n arab: [1632, 1641],\n arabext: [1776, 1785],\n bali: [6992, 7001],\n beng: [2534, 2543],\n deva: [2406, 2415],\n fullwide: [65296, 65303],\n gujr: [2790, 2799],\n khmr: [6112, 6121],\n knda: [3302, 3311],\n laoo: [3792, 3801],\n limb: [6470, 6479],\n mlym: [3430, 3439],\n mong: [6160, 6169],\n mymr: [4160, 4169],\n orya: [2918, 2927],\n tamldec: [3046, 3055],\n telu: [3174, 3183],\n thai: [3664, 3673],\n tibt: [3872, 3881],\n};\n\nconst hanidecChars = numberingSystems.hanidec.replace(/[\\[|\\]]/g, \"\").split(\"\");\n\nfunction parseDigits(str) {\n let value = parseInt(str, 10);\n if (isNaN(value)) {\n value = \"\";\n for (let i = 0; i < str.length; i++) {\n const code = str.charCodeAt(i);\n\n if (str[i].search(numberingSystems.hanidec) !== -1) {\n value += hanidecChars.indexOf(str[i]);\n } else {\n for (const key in numberingSystemsUTF16) {\n const [min, max] = numberingSystemsUTF16[key];\n if (code >= min && code <= max) {\n value += code - min;\n }\n }\n }\n }\n return parseInt(value, 10);\n } else {\n return value;\n }\n}\n\n// cache of {numberingSystem: {append: regex}}\nconst digitRegexCache = new Map();\nfunction resetDigitRegexCache() {\n digitRegexCache.clear();\n}\n\nfunction digitRegex({ numberingSystem }, append = \"\") {\n const ns = numberingSystem || \"latn\";\n\n let appendCache = digitRegexCache.get(ns);\n if (appendCache === undefined) {\n appendCache = new Map();\n digitRegexCache.set(ns, appendCache);\n }\n let regex = appendCache.get(append);\n if (regex === undefined) {\n regex = new RegExp(`${numberingSystems[ns]}${append}`);\n appendCache.set(append, regex);\n }\n\n return regex;\n}\n\nlet now = () => Date.now(),\n defaultZone = \"system\",\n defaultLocale = null,\n defaultNumberingSystem = null,\n defaultOutputCalendar = null,\n twoDigitCutoffYear = 60,\n throwOnInvalid,\n defaultWeekSettings = null;\n\n/**\n * Settings contains static getters and setters that control Luxon's overall behavior. Luxon is a simple library with few options, but the ones it does have live here.\n */\nclass Settings {\n /**\n * Get the callback for returning the current timestamp.\n * @type {function}\n */\n static get now() {\n return now;\n }\n\n /**\n * Set the callback for returning the current timestamp.\n * The function should return a number, which will be interpreted as an Epoch millisecond count\n * @type {function}\n * @example Settings.now = () => Date.now() + 3000 // pretend it is 3 seconds in the future\n * @example Settings.now = () => 0 // always pretend it's Jan 1, 1970 at midnight in UTC time\n */\n static set now(n) {\n now = n;\n }\n\n /**\n * Set the default time zone to create DateTimes in. Does not affect existing instances.\n * Use the value \"system\" to reset this value to the system's time zone.\n * @type {string}\n */\n static set defaultZone(zone) {\n defaultZone = zone;\n }\n\n /**\n * Get the default time zone object currently used to create DateTimes. Does not affect existing instances.\n * The default value is the system's time zone (the one set on the machine that runs this code).\n * @type {Zone}\n */\n static get defaultZone() {\n return normalizeZone(defaultZone, SystemZone.instance);\n }\n\n /**\n * Get the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultLocale() {\n return defaultLocale;\n }\n\n /**\n * Set the default locale to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultLocale(locale) {\n defaultLocale = locale;\n }\n\n /**\n * Get the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultNumberingSystem() {\n return defaultNumberingSystem;\n }\n\n /**\n * Set the default numbering system to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultNumberingSystem(numberingSystem) {\n defaultNumberingSystem = numberingSystem;\n }\n\n /**\n * Get the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static get defaultOutputCalendar() {\n return defaultOutputCalendar;\n }\n\n /**\n * Set the default output calendar to create DateTimes with. Does not affect existing instances.\n * @type {string}\n */\n static set defaultOutputCalendar(outputCalendar) {\n defaultOutputCalendar = outputCalendar;\n }\n\n /**\n * @typedef {Object} WeekSettings\n * @property {number} firstDay\n * @property {number} minimalDays\n * @property {number[]} weekend\n */\n\n /**\n * @return {WeekSettings|null}\n */\n static get defaultWeekSettings() {\n return defaultWeekSettings;\n }\n\n /**\n * Allows overriding the default locale week settings, i.e. the start of the week, the weekend and\n * how many days are required in the first week of a year.\n * Does not affect existing instances.\n *\n * @param {WeekSettings|null} weekSettings\n */\n static set defaultWeekSettings(weekSettings) {\n defaultWeekSettings = validateWeekSettings(weekSettings);\n }\n\n /**\n * Get the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx.\n * @type {number}\n */\n static get twoDigitCutoffYear() {\n return twoDigitCutoffYear;\n }\n\n /**\n * Set the cutoff year for whether a 2-digit year string is interpreted in the current or previous century. Numbers higher than the cutoff will be considered to mean 19xx and numbers lower or equal to the cutoff will be considered 20xx.\n * @type {number}\n * @example Settings.twoDigitCutoffYear = 0 // all 'yy' are interpreted as 20th century\n * @example Settings.twoDigitCutoffYear = 99 // all 'yy' are interpreted as 21st century\n * @example Settings.twoDigitCutoffYear = 50 // '49' -> 2049; '50' -> 1950\n * @example Settings.twoDigitCutoffYear = 1950 // interpreted as 50\n * @example Settings.twoDigitCutoffYear = 2050 // ALSO interpreted as 50\n */\n static set twoDigitCutoffYear(cutoffYear) {\n twoDigitCutoffYear = cutoffYear % 100;\n }\n\n /**\n * Get whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static get throwOnInvalid() {\n return throwOnInvalid;\n }\n\n /**\n * Set whether Luxon will throw when it encounters invalid DateTimes, Durations, or Intervals\n * @type {boolean}\n */\n static set throwOnInvalid(t) {\n throwOnInvalid = t;\n }\n\n /**\n * Reset Luxon's global caches. Should only be necessary in testing scenarios.\n * @return {void}\n */\n static resetCaches() {\n Locale.resetCache();\n IANAZone.resetCache();\n DateTime.resetCache();\n resetDigitRegexCache();\n }\n}\n\nclass Invalid {\n constructor(reason, explanation) {\n this.reason = reason;\n this.explanation = explanation;\n }\n\n toMessage() {\n if (this.explanation) {\n return `${this.reason}: ${this.explanation}`;\n } else {\n return this.reason;\n }\n }\n}\n\nconst nonLeapLadder = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334],\n leapLadder = [0, 31, 60, 91, 121, 152, 182, 213, 244, 274, 305, 335];\n\nfunction unitOutOfRange(unit, value) {\n return new Invalid(\n \"unit out of range\",\n `you specified ${value} (of type ${typeof value}) as a ${unit}, which is invalid`\n );\n}\n\nfunction dayOfWeek(year, month, day) {\n const d = new Date(Date.UTC(year, month - 1, day));\n\n if (year < 100 && year >= 0) {\n d.setUTCFullYear(d.getUTCFullYear() - 1900);\n }\n\n const js = d.getUTCDay();\n\n return js === 0 ? 7 : js;\n}\n\nfunction computeOrdinal(year, month, day) {\n return day + (isLeapYear(year) ? leapLadder : nonLeapLadder)[month - 1];\n}\n\nfunction uncomputeOrdinal(year, ordinal) {\n const table = isLeapYear(year) ? leapLadder : nonLeapLadder,\n month0 = table.findIndex((i) => i < ordinal),\n day = ordinal - table[month0];\n return { month: month0 + 1, day };\n}\n\nfunction isoWeekdayToLocal(isoWeekday, startOfWeek) {\n return ((isoWeekday - startOfWeek + 7) % 7) + 1;\n}\n\n/**\n * @private\n */\n\nfunction gregorianToWeek(gregObj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { year, month, day } = gregObj,\n ordinal = computeOrdinal(year, month, day),\n weekday = isoWeekdayToLocal(dayOfWeek(year, month, day), startOfWeek);\n\n let weekNumber = Math.floor((ordinal - weekday + 14 - minDaysInFirstWeek) / 7),\n weekYear;\n\n if (weekNumber < 1) {\n weekYear = year - 1;\n weekNumber = weeksInWeekYear(weekYear, minDaysInFirstWeek, startOfWeek);\n } else if (weekNumber > weeksInWeekYear(year, minDaysInFirstWeek, startOfWeek)) {\n weekYear = year + 1;\n weekNumber = 1;\n } else {\n weekYear = year;\n }\n\n return { weekYear, weekNumber, weekday, ...timeObject(gregObj) };\n}\n\nfunction weekToGregorian(weekData, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const { weekYear, weekNumber, weekday } = weekData,\n weekdayOfJan4 = isoWeekdayToLocal(dayOfWeek(weekYear, 1, minDaysInFirstWeek), startOfWeek),\n yearInDays = daysInYear(weekYear);\n\n let ordinal = weekNumber * 7 + weekday - weekdayOfJan4 - 7 + minDaysInFirstWeek,\n year;\n\n if (ordinal < 1) {\n year = weekYear - 1;\n ordinal += daysInYear(year);\n } else if (ordinal > yearInDays) {\n year = weekYear + 1;\n ordinal -= daysInYear(weekYear);\n } else {\n year = weekYear;\n }\n\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(weekData) };\n}\n\nfunction gregorianToOrdinal(gregData) {\n const { year, month, day } = gregData;\n const ordinal = computeOrdinal(year, month, day);\n return { year, ordinal, ...timeObject(gregData) };\n}\n\nfunction ordinalToGregorian(ordinalData) {\n const { year, ordinal } = ordinalData;\n const { month, day } = uncomputeOrdinal(year, ordinal);\n return { year, month, day, ...timeObject(ordinalData) };\n}\n\n/**\n * Check if local week units like localWeekday are used in obj.\n * If so, validates that they are not mixed with ISO week units and then copies them to the normal week unit properties.\n * Modifies obj in-place!\n * @param obj the object values\n */\nfunction usesLocalWeekValues(obj, loc) {\n const hasLocaleWeekData =\n !isUndefined(obj.localWeekday) ||\n !isUndefined(obj.localWeekNumber) ||\n !isUndefined(obj.localWeekYear);\n if (hasLocaleWeekData) {\n const hasIsoWeekData =\n !isUndefined(obj.weekday) || !isUndefined(obj.weekNumber) || !isUndefined(obj.weekYear);\n\n if (hasIsoWeekData) {\n throw new ConflictingSpecificationError(\n \"Cannot mix locale-based week fields with ISO-based week fields\"\n );\n }\n if (!isUndefined(obj.localWeekday)) obj.weekday = obj.localWeekday;\n if (!isUndefined(obj.localWeekNumber)) obj.weekNumber = obj.localWeekNumber;\n if (!isUndefined(obj.localWeekYear)) obj.weekYear = obj.localWeekYear;\n delete obj.localWeekday;\n delete obj.localWeekNumber;\n delete obj.localWeekYear;\n return {\n minDaysInFirstWeek: loc.getMinDaysInFirstWeek(),\n startOfWeek: loc.getStartOfWeek(),\n };\n } else {\n return { minDaysInFirstWeek: 4, startOfWeek: 1 };\n }\n}\n\nfunction hasInvalidWeekData(obj, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const validYear = isInteger(obj.weekYear),\n validWeek = integerBetween(\n obj.weekNumber,\n 1,\n weeksInWeekYear(obj.weekYear, minDaysInFirstWeek, startOfWeek)\n ),\n validWeekday = integerBetween(obj.weekday, 1, 7);\n\n if (!validYear) {\n return unitOutOfRange(\"weekYear\", obj.weekYear);\n } else if (!validWeek) {\n return unitOutOfRange(\"week\", obj.weekNumber);\n } else if (!validWeekday) {\n return unitOutOfRange(\"weekday\", obj.weekday);\n } else return false;\n}\n\nfunction hasInvalidOrdinalData(obj) {\n const validYear = isInteger(obj.year),\n validOrdinal = integerBetween(obj.ordinal, 1, daysInYear(obj.year));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validOrdinal) {\n return unitOutOfRange(\"ordinal\", obj.ordinal);\n } else return false;\n}\n\nfunction hasInvalidGregorianData(obj) {\n const validYear = isInteger(obj.year),\n validMonth = integerBetween(obj.month, 1, 12),\n validDay = integerBetween(obj.day, 1, daysInMonth(obj.year, obj.month));\n\n if (!validYear) {\n return unitOutOfRange(\"year\", obj.year);\n } else if (!validMonth) {\n return unitOutOfRange(\"month\", obj.month);\n } else if (!validDay) {\n return unitOutOfRange(\"day\", obj.day);\n } else return false;\n}\n\nfunction hasInvalidTimeData(obj) {\n const { hour, minute, second, millisecond } = obj;\n const validHour =\n integerBetween(hour, 0, 23) ||\n (hour === 24 && minute === 0 && second === 0 && millisecond === 0),\n validMinute = integerBetween(minute, 0, 59),\n validSecond = integerBetween(second, 0, 59),\n validMillisecond = integerBetween(millisecond, 0, 999);\n\n if (!validHour) {\n return unitOutOfRange(\"hour\", hour);\n } else if (!validMinute) {\n return unitOutOfRange(\"minute\", minute);\n } else if (!validSecond) {\n return unitOutOfRange(\"second\", second);\n } else if (!validMillisecond) {\n return unitOutOfRange(\"millisecond\", millisecond);\n } else return false;\n}\n\n/*\n This is just a junk drawer, containing anything used across multiple classes.\n Because Luxon is small(ish), this should stay small and we won't worry about splitting\n it up into, say, parsingUtil.js and basicUtil.js and so on. But they are divided up by feature area.\n*/\n\n/**\n * @private\n */\n\n// TYPES\n\nfunction isUndefined(o) {\n return typeof o === \"undefined\";\n}\n\nfunction isNumber(o) {\n return typeof o === \"number\";\n}\n\nfunction isInteger(o) {\n return typeof o === \"number\" && o % 1 === 0;\n}\n\nfunction isString(o) {\n return typeof o === \"string\";\n}\n\nfunction isDate(o) {\n return Object.prototype.toString.call(o) === \"[object Date]\";\n}\n\n// CAPABILITIES\n\nfunction hasRelative() {\n try {\n return typeof Intl !== \"undefined\" && !!Intl.RelativeTimeFormat;\n } catch (e) {\n return false;\n }\n}\n\nfunction hasLocaleWeekInfo() {\n try {\n return (\n typeof Intl !== \"undefined\" &&\n !!Intl.Locale &&\n (\"weekInfo\" in Intl.Locale.prototype || \"getWeekInfo\" in Intl.Locale.prototype)\n );\n } catch (e) {\n return false;\n }\n}\n\n// OBJECTS AND ARRAYS\n\nfunction maybeArray(thing) {\n return Array.isArray(thing) ? thing : [thing];\n}\n\nfunction bestBy(arr, by, compare) {\n if (arr.length === 0) {\n return undefined;\n }\n return arr.reduce((best, next) => {\n const pair = [by(next), next];\n if (!best) {\n return pair;\n } else if (compare(best[0], pair[0]) === best[0]) {\n return best;\n } else {\n return pair;\n }\n }, null)[1];\n}\n\nfunction pick(obj, keys) {\n return keys.reduce((a, k) => {\n a[k] = obj[k];\n return a;\n }, {});\n}\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nfunction validateWeekSettings(settings) {\n if (settings == null) {\n return null;\n } else if (typeof settings !== \"object\") {\n throw new InvalidArgumentError(\"Week settings must be an object\");\n } else {\n if (\n !integerBetween(settings.firstDay, 1, 7) ||\n !integerBetween(settings.minimalDays, 1, 7) ||\n !Array.isArray(settings.weekend) ||\n settings.weekend.some((v) => !integerBetween(v, 1, 7))\n ) {\n throw new InvalidArgumentError(\"Invalid week settings\");\n }\n return {\n firstDay: settings.firstDay,\n minimalDays: settings.minimalDays,\n weekend: Array.from(settings.weekend),\n };\n }\n}\n\n// NUMBERS AND STRINGS\n\nfunction integerBetween(thing, bottom, top) {\n return isInteger(thing) && thing >= bottom && thing <= top;\n}\n\n// x % n but takes the sign of n instead of x\nfunction floorMod(x, n) {\n return x - n * Math.floor(x / n);\n}\n\nfunction padStart(input, n = 2) {\n const isNeg = input < 0;\n let padded;\n if (isNeg) {\n padded = \"-\" + (\"\" + -input).padStart(n, \"0\");\n } else {\n padded = (\"\" + input).padStart(n, \"0\");\n }\n return padded;\n}\n\nfunction parseInteger(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseInt(string, 10);\n }\n}\n\nfunction parseFloating(string) {\n if (isUndefined(string) || string === null || string === \"\") {\n return undefined;\n } else {\n return parseFloat(string);\n }\n}\n\nfunction parseMillis(fraction) {\n // Return undefined (instead of 0) in these cases, where fraction is not set\n if (isUndefined(fraction) || fraction === null || fraction === \"\") {\n return undefined;\n } else {\n const f = parseFloat(\"0.\" + fraction) * 1000;\n return Math.floor(f);\n }\n}\n\nfunction roundTo(number, digits, rounding = \"round\") {\n const factor = 10 ** digits;\n switch (rounding) {\n case \"expand\":\n return number > 0\n ? Math.ceil(number * factor) / factor\n : Math.floor(number * factor) / factor;\n case \"trunc\":\n return Math.trunc(number * factor) / factor;\n case \"round\":\n return Math.round(number * factor) / factor;\n case \"floor\":\n return Math.floor(number * factor) / factor;\n case \"ceil\":\n return Math.ceil(number * factor) / factor;\n default:\n throw new RangeError(`Value rounding ${rounding} is out of range`);\n }\n}\n\n// DATE BASICS\n\nfunction isLeapYear(year) {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n}\n\nfunction daysInYear(year) {\n return isLeapYear(year) ? 366 : 365;\n}\n\nfunction daysInMonth(year, month) {\n const modMonth = floorMod(month - 1, 12) + 1,\n modYear = year + (month - modMonth) / 12;\n\n if (modMonth === 2) {\n return isLeapYear(modYear) ? 29 : 28;\n } else {\n return [31, null, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][modMonth - 1];\n }\n}\n\n// convert a calendar object to a local timestamp (epoch, but with the offset baked in)\nfunction objToLocalTS(obj) {\n let d = Date.UTC(\n obj.year,\n obj.month - 1,\n obj.day,\n obj.hour,\n obj.minute,\n obj.second,\n obj.millisecond\n );\n\n // for legacy reasons, years between 0 and 99 are interpreted as 19XX; revert that\n if (obj.year < 100 && obj.year >= 0) {\n d = new Date(d);\n // set the month and day again, this is necessary because year 2000 is a leap year, but year 100 is not\n // so if obj.year is in 99, but obj.day makes it roll over into year 100,\n // the calculations done by Date.UTC are using year 2000 - which is incorrect\n d.setUTCFullYear(obj.year, obj.month - 1, obj.day);\n }\n return +d;\n}\n\n// adapted from moment.js: https://github.com/moment/moment/blob/000ac1800e620f770f4eb31b5ae908f6167b0ab2/src/lib/units/week-calendar-utils.js\nfunction firstWeekOffset(year, minDaysInFirstWeek, startOfWeek) {\n const fwdlw = isoWeekdayToLocal(dayOfWeek(year, 1, minDaysInFirstWeek), startOfWeek);\n return -fwdlw + minDaysInFirstWeek - 1;\n}\n\nfunction weeksInWeekYear(weekYear, minDaysInFirstWeek = 4, startOfWeek = 1) {\n const weekOffset = firstWeekOffset(weekYear, minDaysInFirstWeek, startOfWeek);\n const weekOffsetNext = firstWeekOffset(weekYear + 1, minDaysInFirstWeek, startOfWeek);\n return (daysInYear(weekYear) - weekOffset + weekOffsetNext) / 7;\n}\n\nfunction untruncateYear(year) {\n if (year > 99) {\n return year;\n } else return year > Settings.twoDigitCutoffYear ? 1900 + year : 2000 + year;\n}\n\n// PARSING\n\nfunction parseZoneInfo(ts, offsetFormat, locale, timeZone = null) {\n const date = new Date(ts),\n intlOpts = {\n hourCycle: \"h23\",\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\",\n hour: \"2-digit\",\n minute: \"2-digit\",\n };\n\n if (timeZone) {\n intlOpts.timeZone = timeZone;\n }\n\n const modified = { timeZoneName: offsetFormat, ...intlOpts };\n\n const parsed = new Intl.DateTimeFormat(locale, modified)\n .formatToParts(date)\n .find((m) => m.type.toLowerCase() === \"timezonename\");\n return parsed ? parsed.value : null;\n}\n\n// signedOffset('-5', '30') -> -330\nfunction signedOffset(offHourStr, offMinuteStr) {\n let offHour = parseInt(offHourStr, 10);\n\n // don't || this because we want to preserve -0\n if (Number.isNaN(offHour)) {\n offHour = 0;\n }\n\n const offMin = parseInt(offMinuteStr, 10) || 0,\n offMinSigned = offHour < 0 || Object.is(offHour, -0) ? -offMin : offMin;\n return offHour * 60 + offMinSigned;\n}\n\n// COERCION\n\nfunction asNumber(value) {\n const numericValue = Number(value);\n if (typeof value === \"boolean\" || value === \"\" || !Number.isFinite(numericValue))\n throw new InvalidArgumentError(`Invalid unit value ${value}`);\n return numericValue;\n}\n\nfunction normalizeObject(obj, normalizer) {\n const normalized = {};\n for (const u in obj) {\n if (hasOwnProperty(obj, u)) {\n const v = obj[u];\n if (v === undefined || v === null) continue;\n normalized[normalizer(u)] = asNumber(v);\n }\n }\n return normalized;\n}\n\n/**\n * Returns the offset's value as a string\n * @param {number} ts - Epoch milliseconds for which to get the offset\n * @param {string} format - What style of offset to return.\n * Accepts 'narrow', 'short', or 'techie'. Returning '+6', '+06:00', or '+0600' respectively\n * @return {string}\n */\nfunction formatOffset(offset, format) {\n const hours = Math.trunc(Math.abs(offset / 60)),\n minutes = Math.trunc(Math.abs(offset % 60)),\n sign = offset >= 0 ? \"+\" : \"-\";\n\n switch (format) {\n case \"short\":\n return `${sign}${padStart(hours, 2)}:${padStart(minutes, 2)}`;\n case \"narrow\":\n return `${sign}${hours}${minutes > 0 ? `:${minutes}` : \"\"}`;\n case \"techie\":\n return `${sign}${padStart(hours, 2)}${padStart(minutes, 2)}`;\n default:\n throw new RangeError(`Value format ${format} is out of range for property format`);\n }\n}\n\nfunction timeObject(obj) {\n return pick(obj, [\"hour\", \"minute\", \"second\", \"millisecond\"]);\n}\n\n/**\n * @private\n */\n\nconst monthsLong = [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n];\n\nconst monthsShort = [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n];\n\nconst monthsNarrow = [\"J\", \"F\", \"M\", \"A\", \"M\", \"J\", \"J\", \"A\", \"S\", \"O\", \"N\", \"D\"];\n\nfunction months(length) {\n switch (length) {\n case \"narrow\":\n return [...monthsNarrow];\n case \"short\":\n return [...monthsShort];\n case \"long\":\n return [...monthsLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"10\", \"11\", \"12\"];\n case \"2-digit\":\n return [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"10\", \"11\", \"12\"];\n default:\n return null;\n }\n}\n\nconst weekdaysLong = [\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n \"Sunday\",\n];\n\nconst weekdaysShort = [\"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\", \"Sun\"];\n\nconst weekdaysNarrow = [\"M\", \"T\", \"W\", \"T\", \"F\", \"S\", \"S\"];\n\nfunction weekdays(length) {\n switch (length) {\n case \"narrow\":\n return [...weekdaysNarrow];\n case \"short\":\n return [...weekdaysShort];\n case \"long\":\n return [...weekdaysLong];\n case \"numeric\":\n return [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\"];\n default:\n return null;\n }\n}\n\nconst meridiems = [\"AM\", \"PM\"];\n\nconst erasLong = [\"Before Christ\", \"Anno Domini\"];\n\nconst erasShort = [\"BC\", \"AD\"];\n\nconst erasNarrow = [\"B\", \"A\"];\n\nfunction eras(length) {\n switch (length) {\n case \"narrow\":\n return [...erasNarrow];\n case \"short\":\n return [...erasShort];\n case \"long\":\n return [...erasLong];\n default:\n return null;\n }\n}\n\nfunction meridiemForDateTime(dt) {\n return meridiems[dt.hour < 12 ? 0 : 1];\n}\n\nfunction weekdayForDateTime(dt, length) {\n return weekdays(length)[dt.weekday - 1];\n}\n\nfunction monthForDateTime(dt, length) {\n return months(length)[dt.month - 1];\n}\n\nfunction eraForDateTime(dt, length) {\n return eras(length)[dt.year < 0 ? 0 : 1];\n}\n\nfunction formatRelativeTime(unit, count, numeric = \"always\", narrow = false) {\n const units = {\n years: [\"year\", \"yr.\"],\n quarters: [\"quarter\", \"qtr.\"],\n months: [\"month\", \"mo.\"],\n weeks: [\"week\", \"wk.\"],\n days: [\"day\", \"day\", \"days\"],\n hours: [\"hour\", \"hr.\"],\n minutes: [\"minute\", \"min.\"],\n seconds: [\"second\", \"sec.\"],\n };\n\n const lastable = [\"hours\", \"minutes\", \"seconds\"].indexOf(unit) === -1;\n\n if (numeric === \"auto\" && lastable) {\n const isDay = unit === \"days\";\n switch (count) {\n case 1:\n return isDay ? \"tomorrow\" : `next ${units[unit][0]}`;\n case -1:\n return isDay ? \"yesterday\" : `last ${units[unit][0]}`;\n case 0:\n return isDay ? \"today\" : `this ${units[unit][0]}`;\n }\n }\n\n const isInPast = Object.is(count, -0) || count < 0,\n fmtValue = Math.abs(count),\n singular = fmtValue === 1,\n lilUnits = units[unit],\n fmtUnit = narrow\n ? singular\n ? lilUnits[1]\n : lilUnits[2] || lilUnits[1]\n : singular\n ? units[unit][0]\n : unit;\n return isInPast ? `${fmtValue} ${fmtUnit} ago` : `in ${fmtValue} ${fmtUnit}`;\n}\n\nfunction stringifyTokens(splits, tokenToString) {\n let s = \"\";\n for (const token of splits) {\n if (token.literal) {\n s += token.val;\n } else {\n s += tokenToString(token.val);\n }\n }\n return s;\n}\n\nconst macroTokenToFormatOpts = {\n D: DATE_SHORT,\n DD: DATE_MED,\n DDD: DATE_FULL,\n DDDD: DATE_HUGE,\n t: TIME_SIMPLE,\n tt: TIME_WITH_SECONDS,\n ttt: TIME_WITH_SHORT_OFFSET,\n tttt: TIME_WITH_LONG_OFFSET,\n T: TIME_24_SIMPLE,\n TT: TIME_24_WITH_SECONDS,\n TTT: TIME_24_WITH_SHORT_OFFSET,\n TTTT: TIME_24_WITH_LONG_OFFSET,\n f: DATETIME_SHORT,\n ff: DATETIME_MED,\n fff: DATETIME_FULL,\n ffff: DATETIME_HUGE,\n F: DATETIME_SHORT_WITH_SECONDS,\n FF: DATETIME_MED_WITH_SECONDS,\n FFF: DATETIME_FULL_WITH_SECONDS,\n FFFF: DATETIME_HUGE_WITH_SECONDS,\n};\n\n/**\n * @private\n */\n\nclass Formatter {\n static create(locale, opts = {}) {\n return new Formatter(locale, opts);\n }\n\n static parseFormat(fmt) {\n // white-space is always considered a literal in user-provided formats\n // the \" \" token has a special meaning (see unitForToken)\n\n let current = null,\n currentFull = \"\",\n bracketed = false;\n const splits = [];\n for (let i = 0; i < fmt.length; i++) {\n const c = fmt.charAt(i);\n if (c === \"'\") {\n // turn '' into a literal signal quote instead of just skipping the empty literal\n if (currentFull.length > 0 || bracketed) {\n splits.push({\n literal: bracketed || /^\\s+$/.test(currentFull),\n val: currentFull === \"\" ? \"'\" : currentFull,\n });\n }\n current = null;\n currentFull = \"\";\n bracketed = !bracketed;\n } else if (bracketed) {\n currentFull += c;\n } else if (c === current) {\n currentFull += c;\n } else {\n if (currentFull.length > 0) {\n splits.push({ literal: /^\\s+$/.test(currentFull), val: currentFull });\n }\n currentFull = c;\n current = c;\n }\n }\n\n if (currentFull.length > 0) {\n splits.push({ literal: bracketed || /^\\s+$/.test(currentFull), val: currentFull });\n }\n\n return splits;\n }\n\n static macroTokenToFormatOpts(token) {\n return macroTokenToFormatOpts[token];\n }\n\n constructor(locale, formatOpts) {\n this.opts = formatOpts;\n this.loc = locale;\n this.systemLoc = null;\n }\n\n formatWithSystemDefault(dt, opts) {\n if (this.systemLoc === null) {\n this.systemLoc = this.loc.redefaultToSystem();\n }\n const df = this.systemLoc.dtFormatter(dt, { ...this.opts, ...opts });\n return df.format();\n }\n\n dtFormatter(dt, opts = {}) {\n return this.loc.dtFormatter(dt, { ...this.opts, ...opts });\n }\n\n formatDateTime(dt, opts) {\n return this.dtFormatter(dt, opts).format();\n }\n\n formatDateTimeParts(dt, opts) {\n return this.dtFormatter(dt, opts).formatToParts();\n }\n\n formatInterval(interval, opts) {\n const df = this.dtFormatter(interval.start, opts);\n return df.dtf.formatRange(interval.start.toJSDate(), interval.end.toJSDate());\n }\n\n resolvedOptions(dt, opts) {\n return this.dtFormatter(dt, opts).resolvedOptions();\n }\n\n num(n, p = 0, signDisplay = undefined) {\n // we get some perf out of doing this here, annoyingly\n if (this.opts.forceSimple) {\n return padStart(n, p);\n }\n\n const opts = { ...this.opts };\n\n if (p > 0) {\n opts.padTo = p;\n }\n if (signDisplay) {\n opts.signDisplay = signDisplay;\n }\n\n return this.loc.numberFormatter(opts).format(n);\n }\n\n formatDateTimeFromString(dt, fmt) {\n const knownEnglish = this.loc.listingMode() === \"en\",\n useDateTimeFormatter = this.loc.outputCalendar && this.loc.outputCalendar !== \"gregory\",\n string = (opts, extract) => this.loc.extract(dt, opts, extract),\n formatOffset = (opts) => {\n if (dt.isOffsetFixed && dt.offset === 0 && opts.allowZ) {\n return \"Z\";\n }\n\n return dt.isValid ? dt.zone.formatOffset(dt.ts, opts.format) : \"\";\n },\n meridiem = () =>\n knownEnglish\n ? meridiemForDateTime(dt)\n : string({ hour: \"numeric\", hourCycle: \"h12\" }, \"dayperiod\"),\n month = (length, standalone) =>\n knownEnglish\n ? monthForDateTime(dt, length)\n : string(standalone ? { month: length } : { month: length, day: \"numeric\" }, \"month\"),\n weekday = (length, standalone) =>\n knownEnglish\n ? weekdayForDateTime(dt, length)\n : string(\n standalone ? { weekday: length } : { weekday: length, month: \"long\", day: \"numeric\" },\n \"weekday\"\n ),\n maybeMacro = (token) => {\n const formatOpts = Formatter.macroTokenToFormatOpts(token);\n if (formatOpts) {\n return this.formatWithSystemDefault(dt, formatOpts);\n } else {\n return token;\n }\n },\n era = (length) =>\n knownEnglish ? eraForDateTime(dt, length) : string({ era: length }, \"era\"),\n tokenToString = (token) => {\n // Where possible: https://cldr.unicode.org/translation/date-time/date-time-symbols\n switch (token) {\n // ms\n case \"S\":\n return this.num(dt.millisecond);\n case \"u\":\n // falls through\n case \"SSS\":\n return this.num(dt.millisecond, 3);\n // seconds\n case \"s\":\n return this.num(dt.second);\n case \"ss\":\n return this.num(dt.second, 2);\n // fractional seconds\n case \"uu\":\n return this.num(Math.floor(dt.millisecond / 10), 2);\n case \"uuu\":\n return this.num(Math.floor(dt.millisecond / 100));\n // minutes\n case \"m\":\n return this.num(dt.minute);\n case \"mm\":\n return this.num(dt.minute, 2);\n // hours\n case \"h\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12);\n case \"hh\":\n return this.num(dt.hour % 12 === 0 ? 12 : dt.hour % 12, 2);\n case \"H\":\n return this.num(dt.hour);\n case \"HH\":\n return this.num(dt.hour, 2);\n // offset\n case \"Z\":\n // like +6\n return formatOffset({ format: \"narrow\", allowZ: this.opts.allowZ });\n case \"ZZ\":\n // like +06:00\n return formatOffset({ format: \"short\", allowZ: this.opts.allowZ });\n case \"ZZZ\":\n // like +0600\n return formatOffset({ format: \"techie\", allowZ: this.opts.allowZ });\n case \"ZZZZ\":\n // like EST\n return dt.zone.offsetName(dt.ts, { format: \"short\", locale: this.loc.locale });\n case \"ZZZZZ\":\n // like Eastern Standard Time\n return dt.zone.offsetName(dt.ts, { format: \"long\", locale: this.loc.locale });\n // zone\n case \"z\":\n // like America/New_York\n return dt.zoneName;\n // meridiems\n case \"a\":\n return meridiem();\n // dates\n case \"d\":\n return useDateTimeFormatter ? string({ day: \"numeric\" }, \"day\") : this.num(dt.day);\n case \"dd\":\n return useDateTimeFormatter ? string({ day: \"2-digit\" }, \"day\") : this.num(dt.day, 2);\n // weekdays - standalone\n case \"c\":\n // like 1\n return this.num(dt.weekday);\n case \"ccc\":\n // like 'Tues'\n return weekday(\"short\", true);\n case \"cccc\":\n // like 'Tuesday'\n return weekday(\"long\", true);\n case \"ccccc\":\n // like 'T'\n return weekday(\"narrow\", true);\n // weekdays - format\n case \"E\":\n // like 1\n return this.num(dt.weekday);\n case \"EEE\":\n // like 'Tues'\n return weekday(\"short\", false);\n case \"EEEE\":\n // like 'Tuesday'\n return weekday(\"long\", false);\n case \"EEEEE\":\n // like 'T'\n return weekday(\"narrow\", false);\n // months - standalone\n case \"L\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\", day: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"LL\":\n // like 01, doesn't seem to work\n return useDateTimeFormatter\n ? string({ month: \"2-digit\", day: \"numeric\" }, \"month\")\n : this.num(dt.month, 2);\n case \"LLL\":\n // like Jan\n return month(\"short\", true);\n case \"LLLL\":\n // like January\n return month(\"long\", true);\n case \"LLLLL\":\n // like J\n return month(\"narrow\", true);\n // months - format\n case \"M\":\n // like 1\n return useDateTimeFormatter\n ? string({ month: \"numeric\" }, \"month\")\n : this.num(dt.month);\n case \"MM\":\n // like 01\n return useDateTimeFormatter\n ? string({ month: \"2-digit\" }, \"month\")\n : this.num(dt.month, 2);\n case \"MMM\":\n // like Jan\n return month(\"short\", false);\n case \"MMMM\":\n // like January\n return month(\"long\", false);\n case \"MMMMM\":\n // like J\n return month(\"narrow\", false);\n // years\n case \"y\":\n // like 2014\n return useDateTimeFormatter ? string({ year: \"numeric\" }, \"year\") : this.num(dt.year);\n case \"yy\":\n // like 14\n return useDateTimeFormatter\n ? string({ year: \"2-digit\" }, \"year\")\n : this.num(dt.year.toString().slice(-2), 2);\n case \"yyyy\":\n // like 0012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 4);\n case \"yyyyyy\":\n // like 000012\n return useDateTimeFormatter\n ? string({ year: \"numeric\" }, \"year\")\n : this.num(dt.year, 6);\n // eras\n case \"G\":\n // like AD\n return era(\"short\");\n case \"GG\":\n // like Anno Domini\n return era(\"long\");\n case \"GGGGG\":\n return era(\"narrow\");\n case \"kk\":\n return this.num(dt.weekYear.toString().slice(-2), 2);\n case \"kkkk\":\n return this.num(dt.weekYear, 4);\n case \"W\":\n return this.num(dt.weekNumber);\n case \"WW\":\n return this.num(dt.weekNumber, 2);\n case \"n\":\n return this.num(dt.localWeekNumber);\n case \"nn\":\n return this.num(dt.localWeekNumber, 2);\n case \"ii\":\n return this.num(dt.localWeekYear.toString().slice(-2), 2);\n case \"iiii\":\n return this.num(dt.localWeekYear, 4);\n case \"o\":\n return this.num(dt.ordinal);\n case \"ooo\":\n return this.num(dt.ordinal, 3);\n case \"q\":\n // like 1\n return this.num(dt.quarter);\n case \"qq\":\n // like 01\n return this.num(dt.quarter, 2);\n case \"X\":\n return this.num(Math.floor(dt.ts / 1000));\n case \"x\":\n return this.num(dt.ts);\n default:\n return maybeMacro(token);\n }\n };\n\n return stringifyTokens(Formatter.parseFormat(fmt), tokenToString);\n }\n\n formatDurationFromString(dur, fmt) {\n const invertLargest = this.opts.signMode === \"negativeLargestOnly\" ? -1 : 1;\n const tokenToField = (token) => {\n switch (token[0]) {\n case \"S\":\n return \"milliseconds\";\n case \"s\":\n return \"seconds\";\n case \"m\":\n return \"minutes\";\n case \"h\":\n return \"hours\";\n case \"d\":\n return \"days\";\n case \"w\":\n return \"weeks\";\n case \"M\":\n return \"months\";\n case \"y\":\n return \"years\";\n default:\n return null;\n }\n },\n tokenToString = (lildur, info) => (token) => {\n const mapped = tokenToField(token);\n if (mapped) {\n const inversionFactor =\n info.isNegativeDuration && mapped !== info.largestUnit ? invertLargest : 1;\n let signDisplay;\n if (this.opts.signMode === \"negativeLargestOnly\" && mapped !== info.largestUnit) {\n signDisplay = \"never\";\n } else if (this.opts.signMode === \"all\") {\n signDisplay = \"always\";\n } else {\n // \"auto\" and \"negative\" are the same, but \"auto\" has better support\n signDisplay = \"auto\";\n }\n return this.num(lildur.get(mapped) * inversionFactor, token.length, signDisplay);\n } else {\n return token;\n }\n },\n tokens = Formatter.parseFormat(fmt),\n realTokens = tokens.reduce(\n (found, { literal, val }) => (literal ? found : found.concat(val)),\n []\n ),\n collapsed = dur.shiftTo(...realTokens.map(tokenToField).filter((t) => t)),\n durationInfo = {\n isNegativeDuration: collapsed < 0,\n // this relies on \"collapsed\" being based on \"shiftTo\", which builds up the object\n // in order\n largestUnit: Object.keys(collapsed.values)[0],\n };\n return stringifyTokens(tokens, tokenToString(collapsed, durationInfo));\n }\n}\n\n/*\n * This file handles parsing for well-specified formats. Here's how it works:\n * Two things go into parsing: a regex to match with and an extractor to take apart the groups in the match.\n * An extractor is just a function that takes a regex match array and returns a { year: ..., month: ... } object\n * parse() does the work of executing the regex and applying the extractor. It takes multiple regex/extractor pairs to try in sequence.\n * Extractors can take a \"cursor\" representing the offset in the match to look at. This makes it easy to combine extractors.\n * combineExtractors() does the work of combining them, keeping track of the cursor through multiple extractions.\n * Some extractions are super dumb and simpleParse and fromStrings help DRY them.\n */\n\nconst ianaRegex = /[A-Za-z_+-]{1,256}(?::?\\/[A-Za-z0-9_+-]{1,256}(?:\\/[A-Za-z0-9_+-]{1,256})?)?/;\n\nfunction combineRegexes(...regexes) {\n const full = regexes.reduce((f, r) => f + r.source, \"\");\n return RegExp(`^${full}$`);\n}\n\nfunction combineExtractors(...extractors) {\n return (m) =>\n extractors\n .reduce(\n ([mergedVals, mergedZone, cursor], ex) => {\n const [val, zone, next] = ex(m, cursor);\n return [{ ...mergedVals, ...val }, zone || mergedZone, next];\n },\n [{}, null, 1]\n )\n .slice(0, 2);\n}\n\nfunction parse(s, ...patterns) {\n if (s == null) {\n return [null, null];\n }\n\n for (const [regex, extractor] of patterns) {\n const m = regex.exec(s);\n if (m) {\n return extractor(m);\n }\n }\n return [null, null];\n}\n\nfunction simpleParse(...keys) {\n return (match, cursor) => {\n const ret = {};\n let i;\n\n for (i = 0; i < keys.length; i++) {\n ret[keys[i]] = parseInteger(match[cursor + i]);\n }\n return [ret, null, cursor + i];\n };\n}\n\n// ISO and SQL parsing\nconst offsetRegex = /(?:([Zz])|([+-]\\d\\d)(?::?(\\d\\d))?)/;\nconst isoExtendedZone = `(?:${offsetRegex.source}?(?:\\\\[(${ianaRegex.source})\\\\])?)?`;\nconst isoTimeBaseRegex = /(\\d\\d)(?::?(\\d\\d)(?::?(\\d\\d)(?:[.,](\\d{1,30}))?)?)?/;\nconst isoTimeRegex = RegExp(`${isoTimeBaseRegex.source}${isoExtendedZone}`);\nconst isoTimeExtensionRegex = RegExp(`(?:[Tt]${isoTimeRegex.source})?`);\nconst isoYmdRegex = /([+-]\\d{6}|\\d{4})(?:-?(\\d\\d)(?:-?(\\d\\d))?)?/;\nconst isoWeekRegex = /(\\d{4})-?W(\\d\\d)(?:-?(\\d))?/;\nconst isoOrdinalRegex = /(\\d{4})-?(\\d{3})/;\nconst extractISOWeekData = simpleParse(\"weekYear\", \"weekNumber\", \"weekDay\");\nconst extractISOOrdinalData = simpleParse(\"year\", \"ordinal\");\nconst sqlYmdRegex = /(\\d{4})-(\\d\\d)-(\\d\\d)/; // dumbed-down version of the ISO one\nconst sqlTimeRegex = RegExp(\n `${isoTimeBaseRegex.source} ?(?:${offsetRegex.source}|(${ianaRegex.source}))?`\n);\nconst sqlTimeExtensionRegex = RegExp(`(?: ${sqlTimeRegex.source})?`);\n\nfunction int(match, pos, fallback) {\n const m = match[pos];\n return isUndefined(m) ? fallback : parseInteger(m);\n}\n\nfunction extractISOYmd(match, cursor) {\n const item = {\n year: int(match, cursor),\n month: int(match, cursor + 1, 1),\n day: int(match, cursor + 2, 1),\n };\n\n return [item, null, cursor + 3];\n}\n\nfunction extractISOTime(match, cursor) {\n const item = {\n hours: int(match, cursor, 0),\n minutes: int(match, cursor + 1, 0),\n seconds: int(match, cursor + 2, 0),\n milliseconds: parseMillis(match[cursor + 3]),\n };\n\n return [item, null, cursor + 4];\n}\n\nfunction extractISOOffset(match, cursor) {\n const local = !match[cursor] && !match[cursor + 1],\n fullOffset = signedOffset(match[cursor + 1], match[cursor + 2]),\n zone = local ? null : FixedOffsetZone.instance(fullOffset);\n return [{}, zone, cursor + 3];\n}\n\nfunction extractIANAZone(match, cursor) {\n const zone = match[cursor] ? IANAZone.create(match[cursor]) : null;\n return [{}, zone, cursor + 1];\n}\n\n// ISO time parsing\n\nconst isoTimeOnly = RegExp(`^T?${isoTimeBaseRegex.source}$`);\n\n// ISO duration parsing\n\nconst isoDuration =\n /^-?P(?:(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)Y)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)W)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)D)?(?:T(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)H)?(?:(-?\\d{1,20}(?:\\.\\d{1,20})?)M)?(?:(-?\\d{1,20})(?:[.,](-?\\d{1,20}))?S)?)?)$/;\n\nfunction extractISODuration(match) {\n const [s, yearStr, monthStr, weekStr, dayStr, hourStr, minuteStr, secondStr, millisecondsStr] =\n match;\n\n const hasNegativePrefix = s[0] === \"-\";\n const negativeSeconds = secondStr && secondStr[0] === \"-\";\n\n const maybeNegate = (num, force = false) =>\n num !== undefined && (force || (num && hasNegativePrefix)) ? -num : num;\n\n return [\n {\n years: maybeNegate(parseFloating(yearStr)),\n months: maybeNegate(parseFloating(monthStr)),\n weeks: maybeNegate(parseFloating(weekStr)),\n days: maybeNegate(parseFloating(dayStr)),\n hours: maybeNegate(parseFloating(hourStr)),\n minutes: maybeNegate(parseFloating(minuteStr)),\n seconds: maybeNegate(parseFloating(secondStr), secondStr === \"-0\"),\n milliseconds: maybeNegate(parseMillis(millisecondsStr), negativeSeconds),\n },\n ];\n}\n\n// These are a little braindead. EDT *should* tell us that we're in, say, America/New_York\n// and not just that we're in -240 *right now*. But since I don't think these are used that often\n// I'm just going to ignore that\nconst obsOffsets = {\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\nfunction fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr) {\n const result = {\n year: yearStr.length === 2 ? untruncateYear(parseInteger(yearStr)) : parseInteger(yearStr),\n month: monthsShort.indexOf(monthStr) + 1,\n day: parseInteger(dayStr),\n hour: parseInteger(hourStr),\n minute: parseInteger(minuteStr),\n };\n\n if (secondStr) result.second = parseInteger(secondStr);\n if (weekdayStr) {\n result.weekday =\n weekdayStr.length > 3\n ? weekdaysLong.indexOf(weekdayStr) + 1\n : weekdaysShort.indexOf(weekdayStr) + 1;\n }\n\n return result;\n}\n\n// RFC 2822/5322\nconst rfc2822 =\n /^(?:(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\\d)(\\d\\d)))$/;\n\nfunction extractRFC2822(match) {\n const [\n ,\n weekdayStr,\n dayStr,\n monthStr,\n yearStr,\n hourStr,\n minuteStr,\n secondStr,\n obsOffset,\n milOffset,\n offHourStr,\n offMinuteStr,\n ] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n\n let offset;\n if (obsOffset) {\n offset = obsOffsets[obsOffset];\n } else if (milOffset) {\n offset = 0;\n } else {\n offset = signedOffset(offHourStr, offMinuteStr);\n }\n\n return [result, new FixedOffsetZone(offset)];\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 .trim();\n}\n\n// http date\n\nconst rfc1123 =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d\\d) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n rfc850 =\n /^(Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d\\d)-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) GMT$/,\n ascii =\n /^(Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( \\d|\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d) (\\d{4})$/;\n\nfunction extractRFC1123Or850(match) {\n const [, weekdayStr, dayStr, monthStr, yearStr, hourStr, minuteStr, secondStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nfunction extractASCII(match) {\n const [, weekdayStr, monthStr, dayStr, hourStr, minuteStr, secondStr, yearStr] = match,\n result = fromStrings(weekdayStr, yearStr, monthStr, dayStr, hourStr, minuteStr, secondStr);\n return [result, FixedOffsetZone.utcInstance];\n}\n\nconst isoYmdWithTimeExtensionRegex = combineRegexes(isoYmdRegex, isoTimeExtensionRegex);\nconst isoWeekWithTimeExtensionRegex = combineRegexes(isoWeekRegex, isoTimeExtensionRegex);\nconst isoOrdinalWithTimeExtensionRegex = combineRegexes(isoOrdinalRegex, isoTimeExtensionRegex);\nconst isoTimeCombinedRegex = combineRegexes(isoTimeRegex);\n\nconst extractISOYmdTimeAndOffset = combineExtractors(\n extractISOYmd,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOWeekTimeAndOffset = combineExtractors(\n extractISOWeekData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOOrdinalDateAndTime = combineExtractors(\n extractISOOrdinalData,\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\nconst extractISOTimeAndOffset = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\n/*\n * @private\n */\n\nfunction parseISODate(s) {\n return parse(\n s,\n [isoYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [isoWeekWithTimeExtensionRegex, extractISOWeekTimeAndOffset],\n [isoOrdinalWithTimeExtensionRegex, extractISOOrdinalDateAndTime],\n [isoTimeCombinedRegex, extractISOTimeAndOffset]\n );\n}\n\nfunction parseRFC2822Date(s) {\n return parse(preprocessRFC2822(s), [rfc2822, extractRFC2822]);\n}\n\nfunction parseHTTPDate(s) {\n return parse(\n s,\n [rfc1123, extractRFC1123Or850],\n [rfc850, extractRFC1123Or850],\n [ascii, extractASCII]\n );\n}\n\nfunction parseISODuration(s) {\n return parse(s, [isoDuration, extractISODuration]);\n}\n\nconst extractISOTimeOnly = combineExtractors(extractISOTime);\n\nfunction parseISOTimeOnly(s) {\n return parse(s, [isoTimeOnly, extractISOTimeOnly]);\n}\n\nconst sqlYmdWithTimeExtensionRegex = combineRegexes(sqlYmdRegex, sqlTimeExtensionRegex);\nconst sqlTimeCombinedRegex = combineRegexes(sqlTimeRegex);\n\nconst extractISOTimeOffsetAndIANAZone = combineExtractors(\n extractISOTime,\n extractISOOffset,\n extractIANAZone\n);\n\nfunction parseSQL(s) {\n return parse(\n s,\n [sqlYmdWithTimeExtensionRegex, extractISOYmdTimeAndOffset],\n [sqlTimeCombinedRegex, extractISOTimeOffsetAndIANAZone]\n );\n}\n\nconst INVALID$2 = \"Invalid Duration\";\n\n// unit conversion constants\nconst lowOrderMatrix = {\n weeks: {\n days: 7,\n hours: 7 * 24,\n minutes: 7 * 24 * 60,\n seconds: 7 * 24 * 60 * 60,\n milliseconds: 7 * 24 * 60 * 60 * 1000,\n },\n days: {\n hours: 24,\n minutes: 24 * 60,\n seconds: 24 * 60 * 60,\n milliseconds: 24 * 60 * 60 * 1000,\n },\n hours: { minutes: 60, seconds: 60 * 60, milliseconds: 60 * 60 * 1000 },\n minutes: { seconds: 60, milliseconds: 60 * 1000 },\n seconds: { milliseconds: 1000 },\n },\n casualMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: 52,\n days: 365,\n hours: 365 * 24,\n minutes: 365 * 24 * 60,\n seconds: 365 * 24 * 60 * 60,\n milliseconds: 365 * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: 13,\n days: 91,\n hours: 91 * 24,\n minutes: 91 * 24 * 60,\n seconds: 91 * 24 * 60 * 60,\n milliseconds: 91 * 24 * 60 * 60 * 1000,\n },\n months: {\n weeks: 4,\n days: 30,\n hours: 30 * 24,\n minutes: 30 * 24 * 60,\n seconds: 30 * 24 * 60 * 60,\n milliseconds: 30 * 24 * 60 * 60 * 1000,\n },\n\n ...lowOrderMatrix,\n },\n daysInYearAccurate = 146097.0 / 400,\n daysInMonthAccurate = 146097.0 / 4800,\n accurateMatrix = {\n years: {\n quarters: 4,\n months: 12,\n weeks: daysInYearAccurate / 7,\n days: daysInYearAccurate,\n hours: daysInYearAccurate * 24,\n minutes: daysInYearAccurate * 24 * 60,\n seconds: daysInYearAccurate * 24 * 60 * 60,\n milliseconds: daysInYearAccurate * 24 * 60 * 60 * 1000,\n },\n quarters: {\n months: 3,\n weeks: daysInYearAccurate / 28,\n days: daysInYearAccurate / 4,\n hours: (daysInYearAccurate * 24) / 4,\n minutes: (daysInYearAccurate * 24 * 60) / 4,\n seconds: (daysInYearAccurate * 24 * 60 * 60) / 4,\n milliseconds: (daysInYearAccurate * 24 * 60 * 60 * 1000) / 4,\n },\n months: {\n weeks: daysInMonthAccurate / 7,\n days: daysInMonthAccurate,\n hours: daysInMonthAccurate * 24,\n minutes: daysInMonthAccurate * 24 * 60,\n seconds: daysInMonthAccurate * 24 * 60 * 60,\n milliseconds: daysInMonthAccurate * 24 * 60 * 60 * 1000,\n },\n ...lowOrderMatrix,\n };\n\n// units ordered by size\nconst orderedUnits$1 = [\n \"years\",\n \"quarters\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\",\n];\n\nconst reverseUnits = orderedUnits$1.slice(0).reverse();\n\n// clone really means \"create another instance just like this one, but with these changes\"\nfunction clone$1(dur, alts, clear = false) {\n // deep merge for vals\n const conf = {\n values: clear ? alts.values : { ...dur.values, ...(alts.values || {}) },\n loc: dur.loc.clone(alts.loc),\n conversionAccuracy: alts.conversionAccuracy || dur.conversionAccuracy,\n matrix: alts.matrix || dur.matrix,\n };\n return new Duration(conf);\n}\n\nfunction durationToMillis(matrix, vals) {\n let sum = vals.milliseconds ?? 0;\n for (const unit of reverseUnits.slice(1)) {\n if (vals[unit]) {\n sum += vals[unit] * matrix[unit][\"milliseconds\"];\n }\n }\n return sum;\n}\n\n// NB: mutates parameters\nfunction normalizeValues(matrix, vals) {\n // the logic below assumes the overall value of the duration is positive\n // if this is not the case, factor is used to make it so\n const factor = durationToMillis(matrix, vals) < 0 ? -1 : 1;\n\n orderedUnits$1.reduceRight((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const previousVal = vals[previous] * factor;\n const conv = matrix[current][previous];\n\n // if (previousVal < 0):\n // lower order unit is negative (e.g. { years: 2, days: -2 })\n // normalize this by reducing the higher order unit by the appropriate amount\n // and increasing the lower order unit\n // this can never make the higher order unit negative, because this function only operates\n // on positive durations, so the amount of time represented by the lower order unit cannot\n // be larger than the higher order unit\n // else:\n // lower order unit is positive (e.g. { years: 2, days: 450 } or { years: -2, days: 450 })\n // in this case we attempt to convert as much as possible from the lower order unit into\n // the higher order one\n //\n // Math.floor takes care of both of these cases, rounding away from 0\n // if previousVal < 0 it makes the absolute value larger\n // if previousVal >= it makes the absolute value smaller\n const rollUp = Math.floor(previousVal / conv);\n vals[current] += rollUp * factor;\n vals[previous] -= rollUp * conv * factor;\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n\n // try to convert any decimals into smaller units if possible\n // for example for { years: 2.5, days: 0, seconds: 0 } we want to get { years: 2, days: 182, hours: 12 }\n orderedUnits$1.reduce((previous, current) => {\n if (!isUndefined(vals[current])) {\n if (previous) {\n const fraction = vals[previous] % 1;\n vals[previous] -= fraction;\n vals[current] += fraction * matrix[previous][current];\n }\n return current;\n } else {\n return previous;\n }\n }, null);\n}\n\n// Remove all properties with a value of 0 from an object\nfunction removeZeroes(vals) {\n const newVals = {};\n for (const [key, value] of Object.entries(vals)) {\n if (value !== 0) {\n newVals[key] = value;\n }\n }\n return newVals;\n}\n\n/**\n * A Duration object represents a period of time, like \"2 months\" or \"1 day, 1 hour\". Conceptually, it's just a map of units to their quantities, accompanied by some additional configuration and methods for creating, parsing, interrogating, transforming, and formatting them. They can be used on their own or in conjunction with other Luxon types; for example, you can use {@link DateTime#plus} to add a Duration object to a DateTime, producing another DateTime.\n *\n * Here is a brief overview of commonly used methods and getters in Duration:\n *\n * * **Creation** To create a Duration, use {@link Duration.fromMillis}, {@link Duration.fromObject}, or {@link Duration.fromISO}.\n * * **Unit values** See the {@link Duration#years}, {@link Duration#months}, {@link Duration#weeks}, {@link Duration#days}, {@link Duration#hours}, {@link Duration#minutes}, {@link Duration#seconds}, {@link Duration#milliseconds} accessors.\n * * **Configuration** See {@link Duration#locale} and {@link Duration#numberingSystem} accessors.\n * * **Transformation** To create new Durations out of old ones use {@link Duration#plus}, {@link Duration#minus}, {@link Duration#normalize}, {@link Duration#set}, {@link Duration#reconfigure}, {@link Duration#shiftTo}, and {@link Duration#negate}.\n * * **Output** To convert the Duration into other representations, see {@link Duration#as}, {@link Duration#toISO}, {@link Duration#toFormat}, and {@link Duration#toJSON}\n *\n * There's are more methods documented below. In addition, for more information on subtler topics like internationalization and validity, see the external documentation.\n */\nclass Duration {\n /**\n * @private\n */\n constructor(config) {\n const accurate = config.conversionAccuracy === \"longterm\" || false;\n let matrix = accurate ? accurateMatrix : casualMatrix;\n\n if (config.matrix) {\n matrix = config.matrix;\n }\n\n /**\n * @access private\n */\n this.values = config.values;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.conversionAccuracy = accurate ? \"longterm\" : \"casual\";\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.matrix = matrix;\n /**\n * @access private\n */\n this.isLuxonDuration = true;\n }\n\n /**\n * Create Duration from a number of milliseconds.\n * @param {number} count of milliseconds\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n static fromMillis(count, opts) {\n return Duration.fromObject({ milliseconds: count }, opts);\n }\n\n /**\n * Create a Duration from a JavaScript object with keys like 'years' and 'hours'.\n * If this object is empty then a zero milliseconds duration is returned.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.years\n * @param {number} obj.quarters\n * @param {number} obj.months\n * @param {number} obj.weeks\n * @param {number} obj.days\n * @param {number} obj.hours\n * @param {number} obj.minutes\n * @param {number} obj.seconds\n * @param {number} obj.milliseconds\n * @param {Object} [opts=[]] - options for creating this Duration\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the custom conversion system to use\n * @return {Duration}\n */\n static fromObject(obj, opts = {}) {\n if (obj == null || typeof obj !== \"object\") {\n throw new InvalidArgumentError(\n `Duration.fromObject: argument expected to be an object, got ${\n obj === null ? \"null\" : typeof obj\n }`\n );\n }\n\n return new Duration({\n values: normalizeObject(obj, Duration.normalizeUnit),\n loc: Locale.fromObject(opts),\n conversionAccuracy: opts.conversionAccuracy,\n matrix: opts.matrix,\n });\n }\n\n /**\n * Create a Duration from DurationLike.\n *\n * @param {Object | number | Duration} durationLike\n * One of:\n * - object with keys like 'years' and 'hours'.\n * - number representing milliseconds\n * - Duration instance\n * @return {Duration}\n */\n static fromDurationLike(durationLike) {\n if (isNumber(durationLike)) {\n return Duration.fromMillis(durationLike);\n } else if (Duration.isDuration(durationLike)) {\n return durationLike;\n } else if (typeof durationLike === \"object\") {\n return Duration.fromObject(durationLike);\n } else {\n throw new InvalidArgumentError(\n `Unknown duration argument ${durationLike} of type ${typeof durationLike}`\n );\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 duration string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the preset conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromISO('P3Y6M1W4DT12H30M5S').toObject() //=> { years: 3, months: 6, weeks: 1, days: 4, hours: 12, minutes: 30, seconds: 5 }\n * @example Duration.fromISO('PT23H').toObject() //=> { hours: 23 }\n * @example Duration.fromISO('P5Y3M').toObject() //=> { years: 5, months: 3 }\n * @return {Duration}\n */\n static fromISO(text, opts) {\n const [parsed] = parseISODuration(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create a Duration from an ISO 8601 time string.\n * @param {string} text - text to parse\n * @param {Object} opts - options for parsing\n * @param {string} [opts.locale='en-US'] - the locale to use\n * @param {string} opts.numberingSystem - the numbering system to use\n * @param {string} [opts.conversionAccuracy='casual'] - the preset conversion system to use\n * @param {string} [opts.matrix=Object] - the conversion system to use\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @example Duration.fromISOTime('11:22:33.444').toObject() //=> { hours: 11, minutes: 22, seconds: 33, milliseconds: 444 }\n * @example Duration.fromISOTime('11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T11:00').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @example Duration.fromISOTime('T1100').toObject() //=> { hours: 11, minutes: 0, seconds: 0 }\n * @return {Duration}\n */\n static fromISOTime(text, opts) {\n const [parsed] = parseISOTimeOnly(text);\n if (parsed) {\n return Duration.fromObject(parsed, opts);\n } else {\n return Duration.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n }\n\n /**\n * Create an invalid Duration.\n * @param {string} reason - simple string of why this datetime is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Duration}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Duration is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDurationError(invalid);\n } else {\n return new Duration({ invalid });\n }\n }\n\n /**\n * @private\n */\n static normalizeUnit(unit) {\n const normalized = {\n year: \"years\",\n years: \"years\",\n quarter: \"quarters\",\n quarters: \"quarters\",\n month: \"months\",\n months: \"months\",\n week: \"weeks\",\n weeks: \"weeks\",\n day: \"days\",\n days: \"days\",\n hour: \"hours\",\n hours: \"hours\",\n minute: \"minutes\",\n minutes: \"minutes\",\n second: \"seconds\",\n seconds: \"seconds\",\n millisecond: \"milliseconds\",\n milliseconds: \"milliseconds\",\n }[unit ? unit.toLowerCase() : unit];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n }\n\n /**\n * Check if an object is a Duration. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDuration(o) {\n return (o && o.isLuxonDuration) || false;\n }\n\n /**\n * Get the locale of a Duration, such 'en-GB'\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a Duration, such 'beng'. The numbering system is used when formatting the Duration\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Returns a string representation of this Duration formatted according to the specified format string. You may use these tokens:\n * * `S` for milliseconds\n * * `s` for seconds\n * * `m` for minutes\n * * `h` for hours\n * * `d` for days\n * * `w` for weeks\n * * `M` for months\n * * `y` for years\n * Notes:\n * * Add padding by repeating the token, e.g. \"yy\" pads the years to two digits, \"hhhh\" pads the hours out to four digits\n * * Tokens can be escaped by wrapping with single quotes.\n * * The duration will be converted to the set of units in the format string using {@link Duration#shiftTo} and the Durations's conversion accuracy setting.\n * @param {string} fmt - the format string\n * @param {Object} opts - options\n * @param {boolean} [opts.floor=true] - floor numerical values\n * @param {'negative'|'all'|'negativeLargestOnly'} [opts.signMode=negative] - How to handle signs\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"y d s\") //=> \"1 6 2\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"yy dd sss\") //=> \"01 06 002\"\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toFormat(\"M S\") //=> \"12 518402000\"\n * @example Duration.fromObject({ days: 6, seconds: 2 }).toFormat(\"d s\", { signMode: \"all\" }) //=> \"+6 +2\"\n * @example Duration.fromObject({ days: -6, seconds: -2 }).toFormat(\"d s\", { signMode: \"all\" }) //=> \"-6 -2\"\n * @example Duration.fromObject({ days: -6, seconds: -2 }).toFormat(\"d s\", { signMode: \"negativeLargestOnly\" }) //=> \"-6 2\"\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n // reverse-compat since 1.2; we always round down now, never up, and we do it by default\n const fmtOpts = {\n ...opts,\n floor: opts.round !== false && opts.floor !== false,\n };\n return this.isValid\n ? Formatter.create(this.loc, fmtOpts).formatDurationFromString(this, fmt)\n : INVALID$2;\n }\n\n /**\n * Returns a string representation of a Duration with all units included.\n * To modify its behavior, use `listStyle` and any Intl.NumberFormat option, though `unitDisplay` is especially relevant.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/NumberFormat/NumberFormat#options\n * @param {Object} opts - Formatting options. Accepts the same keys as the options parameter of the native `Intl.NumberFormat` constructor, as well as `listStyle`.\n * @param {string} [opts.listStyle='narrow'] - How to format the merged list. Corresponds to the `style` property of the options parameter of the native `Intl.ListFormat` constructor.\n * @param {boolean} [opts.showZeros=true] - Show all units previously used by the duration even if they are zero\n * @example\n * ```js\n * var dur = Duration.fromObject({ months: 1, weeks: 0, hours: 5, minutes: 6 })\n * dur.toHuman() //=> '1 month, 0 weeks, 5 hours, 6 minutes'\n * dur.toHuman({ listStyle: \"long\" }) //=> '1 month, 0 weeks, 5 hours, and 6 minutes'\n * dur.toHuman({ unitDisplay: \"short\" }) //=> '1 mth, 0 wks, 5 hr, 6 min'\n * dur.toHuman({ showZeros: false }) //=> '1 month, 5 hours, 6 minutes'\n * ```\n */\n toHuman(opts = {}) {\n if (!this.isValid) return INVALID$2;\n\n const showZeros = opts.showZeros !== false;\n\n const l = orderedUnits$1\n .map((unit) => {\n const val = this.values[unit];\n if (isUndefined(val) || (val === 0 && !showZeros)) {\n return null;\n }\n return this.loc\n .numberFormatter({ style: \"unit\", unitDisplay: \"long\", ...opts, unit: unit.slice(0, -1) })\n .format(val);\n })\n .filter((n) => n);\n\n return this.loc\n .listFormatter({ type: \"conjunction\", style: opts.listStyle || \"narrow\", ...opts })\n .format(l);\n }\n\n /**\n * Returns a JavaScript object with this Duration's values.\n * @example Duration.fromObject({ years: 1, days: 6, seconds: 2 }).toObject() //=> { years: 1, days: 6, seconds: 2 }\n * @return {Object}\n */\n toObject() {\n if (!this.isValid) return {};\n return { ...this.values };\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Durations\n * @example Duration.fromObject({ years: 3, seconds: 45 }).toISO() //=> 'P3YT45S'\n * @example Duration.fromObject({ months: 4, seconds: 45 }).toISO() //=> 'P4MT45S'\n * @example Duration.fromObject({ months: 5 }).toISO() //=> 'P5M'\n * @example Duration.fromObject({ minutes: 5 }).toISO() //=> 'PT5M'\n * @example Duration.fromObject({ milliseconds: 6 }).toISO() //=> 'PT0.006S'\n * @return {string}\n */\n toISO() {\n // we could use the formatter, but this is an easier way to get the minimum string\n if (!this.isValid) return null;\n\n let s = \"P\";\n if (this.years !== 0) s += this.years + \"Y\";\n if (this.months !== 0 || this.quarters !== 0) s += this.months + this.quarters * 3 + \"M\";\n if (this.weeks !== 0) s += this.weeks + \"W\";\n if (this.days !== 0) s += this.days + \"D\";\n if (this.hours !== 0 || this.minutes !== 0 || this.seconds !== 0 || this.milliseconds !== 0)\n s += \"T\";\n if (this.hours !== 0) s += this.hours + \"H\";\n if (this.minutes !== 0) s += this.minutes + \"M\";\n if (this.seconds !== 0 || this.milliseconds !== 0)\n // this will handle \"floating point madness\" by removing extra decimal places\n // https://stackoverflow.com/questions/588004/is-floating-point-math-broken\n s += roundTo(this.seconds + this.milliseconds / 1000, 3) + \"S\";\n if (s === \"P\") s += \"T0S\";\n return s;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Duration, formatted as a time of day.\n * Note that this will return null if the duration is invalid, negative, or equal to or greater than 24 hours.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Times\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @example Duration.fromObject({ hours: 11 }).toISOTime() //=> '11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressMilliseconds: true }) //=> '11:00:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ suppressSeconds: true }) //=> '11:00'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ includePrefix: true }) //=> 'T11:00:00.000'\n * @example Duration.fromObject({ hours: 11 }).toISOTime({ format: 'basic' }) //=> '110000.000'\n * @return {string}\n */\n toISOTime(opts = {}) {\n if (!this.isValid) return null;\n\n const millis = this.toMillis();\n if (millis < 0 || millis >= 86400000) return null;\n\n opts = {\n suppressMilliseconds: false,\n suppressSeconds: false,\n includePrefix: false,\n format: \"extended\",\n ...opts,\n includeOffset: false,\n };\n\n const dateTime = DateTime.fromMillis(millis, { zone: \"UTC\" });\n return dateTime.toISOTime(opts);\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns an ISO 8601 representation of this Duration appropriate for use in debugging.\n * @return {string}\n */\n toString() {\n return this.toISO();\n }\n\n /**\n * Returns a string representation of this Duration appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Duration { values: ${JSON.stringify(this.values)} }`;\n } else {\n return `Duration { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns an milliseconds value of this Duration.\n * @return {number}\n */\n toMillis() {\n if (!this.isValid) return NaN;\n\n return durationToMillis(this.matrix, this.values);\n }\n\n /**\n * Returns an milliseconds value of this Duration. Alias of {@link toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Make this Duration longer by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n plus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration),\n result = {};\n\n for (const k of orderedUnits$1) {\n if (hasOwnProperty(dur.values, k) || hasOwnProperty(this.values, k)) {\n result[k] = dur.get(k) + this.get(k);\n }\n }\n\n return clone$1(this, { values: result }, true);\n }\n\n /**\n * Make this Duration shorter by the specified amount. Return a newly-constructed Duration.\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @return {Duration}\n */\n minus(duration) {\n if (!this.isValid) return this;\n\n const dur = Duration.fromDurationLike(duration);\n return this.plus(dur.negate());\n }\n\n /**\n * Scale this Duration by the specified amount. Return a newly-constructed Duration.\n * @param {function} fn - The function to apply to each unit. Arity is 1 or 2: the value of the unit and, optionally, the unit name. Must return a number.\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits(x => x * 2) //=> { hours: 2, minutes: 60 }\n * @example Duration.fromObject({ hours: 1, minutes: 30 }).mapUnits((x, u) => u === \"hours\" ? x * 2 : x) //=> { hours: 2, minutes: 30 }\n * @return {Duration}\n */\n mapUnits(fn) {\n if (!this.isValid) return this;\n const result = {};\n for (const k of Object.keys(this.values)) {\n result[k] = asNumber(fn(this.values[k], k));\n }\n return clone$1(this, { values: result }, true);\n }\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example Duration.fromObject({years: 2, days: 3}).get('years') //=> 2\n * @example Duration.fromObject({years: 2, days: 3}).get('months') //=> 0\n * @example Duration.fromObject({years: 2, days: 3}).get('days') //=> 3\n * @return {number}\n */\n get(unit) {\n return this[Duration.normalizeUnit(unit)];\n }\n\n /**\n * \"Set\" the values of specified units. Return a newly-constructed Duration.\n * @param {Object} values - a mapping of units to numbers\n * @example dur.set({ years: 2017 })\n * @example dur.set({ hours: 8, minutes: 30 })\n * @return {Duration}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const mixed = { ...this.values, ...normalizeObject(values, Duration.normalizeUnit) };\n return clone$1(this, { values: mixed });\n }\n\n /**\n * \"Set\" the locale and/or numberingSystem. Returns a newly-constructed Duration.\n * @example dur.reconfigure({ locale: 'en-GB' })\n * @return {Duration}\n */\n reconfigure({ locale, numberingSystem, conversionAccuracy, matrix } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem });\n const opts = { loc, matrix, conversionAccuracy };\n return clone$1(this, opts);\n }\n\n /**\n * Return the length of the duration in the specified unit.\n * @param {string} unit - a unit such as 'minutes' or 'days'\n * @example Duration.fromObject({years: 1}).as('days') //=> 365\n * @example Duration.fromObject({years: 1}).as('months') //=> 12\n * @example Duration.fromObject({hours: 60}).as('days') //=> 2.5\n * @return {number}\n */\n as(unit) {\n return this.isValid ? this.shiftTo(unit).get(unit) : NaN;\n }\n\n /**\n * Reduce this Duration to its canonical representation in its current units.\n * Assuming the overall value of the Duration is positive, this means:\n * - excessive values for lower-order units are converted to higher-order units (if possible, see first and second example)\n * - negative lower-order units are converted to higher order units (there must be such a higher order unit, otherwise\n * the overall value would be negative, see third example)\n * - fractional values for higher-order units are converted to lower-order units (if possible, see fourth example)\n *\n * If the overall value is negative, the result of this method is equivalent to `this.negate().normalize().negate()`.\n * @example Duration.fromObject({ years: 2, days: 5000 }).normalize().toObject() //=> { years: 15, days: 255 }\n * @example Duration.fromObject({ days: 5000 }).normalize().toObject() //=> { days: 5000 }\n * @example Duration.fromObject({ hours: 12, minutes: -45 }).normalize().toObject() //=> { hours: 11, minutes: 15 }\n * @example Duration.fromObject({ years: 2.5, days: 0, hours: 0 }).normalize().toObject() //=> { years: 2, days: 182, hours: 12 }\n * @return {Duration}\n */\n normalize() {\n if (!this.isValid) return this;\n const vals = this.toObject();\n normalizeValues(this.matrix, vals);\n return clone$1(this, { values: vals }, true);\n }\n\n /**\n * Rescale units to its largest representation\n * @example Duration.fromObject({ milliseconds: 90000 }).rescale().toObject() //=> { minutes: 1, seconds: 30 }\n * @return {Duration}\n */\n rescale() {\n if (!this.isValid) return this;\n const vals = removeZeroes(this.normalize().shiftToAll().toObject());\n return clone$1(this, { values: vals }, true);\n }\n\n /**\n * Convert this Duration into its representation in a different set of units.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).shiftTo('minutes', 'milliseconds').toObject() //=> { minutes: 60, milliseconds: 30000 }\n * @return {Duration}\n */\n shiftTo(...units) {\n if (!this.isValid) return this;\n\n if (units.length === 0) {\n return this;\n }\n\n units = units.map((u) => Duration.normalizeUnit(u));\n\n const built = {},\n accumulated = {},\n vals = this.toObject();\n let lastUnit;\n\n for (const k of orderedUnits$1) {\n if (units.indexOf(k) >= 0) {\n lastUnit = k;\n\n let own = 0;\n\n // anything we haven't boiled down yet should get boiled to this unit\n for (const ak in accumulated) {\n own += this.matrix[ak][k] * accumulated[ak];\n accumulated[ak] = 0;\n }\n\n // plus anything that's already in this unit\n if (isNumber(vals[k])) {\n own += vals[k];\n }\n\n // only keep the integer part for now in the hopes of putting any decimal part\n // into a smaller unit later\n const i = Math.trunc(own);\n built[k] = i;\n accumulated[k] = (own * 1000 - i * 1000) / 1000;\n\n // otherwise, keep it in the wings to boil it later\n } else if (isNumber(vals[k])) {\n accumulated[k] = vals[k];\n }\n }\n\n // anything leftover becomes the decimal for the last unit\n // lastUnit must be defined since units is not empty\n for (const key in accumulated) {\n if (accumulated[key] !== 0) {\n built[lastUnit] +=\n key === lastUnit ? accumulated[key] : accumulated[key] / this.matrix[lastUnit][key];\n }\n }\n\n normalizeValues(this.matrix, built);\n return clone$1(this, { values: built }, true);\n }\n\n /**\n * Shift this Duration to all available units.\n * Same as shiftTo(\"years\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", \"seconds\", \"milliseconds\")\n * @return {Duration}\n */\n shiftToAll() {\n if (!this.isValid) return this;\n return this.shiftTo(\n \"years\",\n \"months\",\n \"weeks\",\n \"days\",\n \"hours\",\n \"minutes\",\n \"seconds\",\n \"milliseconds\"\n );\n }\n\n /**\n * Return the negative of this Duration.\n * @example Duration.fromObject({ hours: 1, seconds: 30 }).negate().toObject() //=> { hours: -1, seconds: -30 }\n * @return {Duration}\n */\n negate() {\n if (!this.isValid) return this;\n const negated = {};\n for (const k of Object.keys(this.values)) {\n negated[k] = this.values[k] === 0 ? 0 : -this.values[k];\n }\n return clone$1(this, { values: negated }, true);\n }\n\n /**\n * Removes all units with values equal to 0 from this Duration.\n * @example Duration.fromObject({ years: 2, days: 0, hours: 0, minutes: 0 }).removeZeros().toObject() //=> { years: 2 }\n * @return {Duration}\n */\n removeZeros() {\n if (!this.isValid) return this;\n const vals = removeZeroes(this.values);\n return clone$1(this, { values: vals }, true);\n }\n\n /**\n * Get the years.\n * @type {number}\n */\n get years() {\n return this.isValid ? this.values.years || 0 : NaN;\n }\n\n /**\n * Get the quarters.\n * @type {number}\n */\n get quarters() {\n return this.isValid ? this.values.quarters || 0 : NaN;\n }\n\n /**\n * Get the months.\n * @type {number}\n */\n get months() {\n return this.isValid ? this.values.months || 0 : NaN;\n }\n\n /**\n * Get the weeks\n * @type {number}\n */\n get weeks() {\n return this.isValid ? this.values.weeks || 0 : NaN;\n }\n\n /**\n * Get the days.\n * @type {number}\n */\n get days() {\n return this.isValid ? this.values.days || 0 : NaN;\n }\n\n /**\n * Get the hours.\n * @type {number}\n */\n get hours() {\n return this.isValid ? this.values.hours || 0 : NaN;\n }\n\n /**\n * Get the minutes.\n * @type {number}\n */\n get minutes() {\n return this.isValid ? this.values.minutes || 0 : NaN;\n }\n\n /**\n * Get the seconds.\n * @return {number}\n */\n get seconds() {\n return this.isValid ? this.values.seconds || 0 : NaN;\n }\n\n /**\n * Get the milliseconds.\n * @return {number}\n */\n get milliseconds() {\n return this.isValid ? this.values.milliseconds || 0 : NaN;\n }\n\n /**\n * Returns whether the Duration is invalid. Invalid durations are returned by diff operations\n * on invalid DateTimes or Intervals.\n * @return {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this Duration became invalid, or null if the Duration is valid\n * @return {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Duration became invalid, or null if the Duration is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Equality check\n * Two Durations are equal iff they have the same units and the same values for each unit.\n * @param {Duration} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n if (!this.loc.equals(other.loc)) {\n return false;\n }\n\n function eq(v1, v2) {\n // Consider 0 and undefined as equal\n if (v1 === undefined || v1 === 0) return v2 === undefined || v2 === 0;\n return v1 === v2;\n }\n\n for (const u of orderedUnits$1) {\n if (!eq(this.values[u], other.values[u])) {\n return false;\n }\n }\n return true;\n }\n}\n\nconst INVALID$1 = \"Invalid Interval\";\n\n// checks if the start is equal to or before the end\nfunction validateStartEnd(start, end) {\n if (!start || !start.isValid) {\n return Interval.invalid(\"missing or invalid start\");\n } else if (!end || !end.isValid) {\n return Interval.invalid(\"missing or invalid end\");\n } else if (end < start) {\n return Interval.invalid(\n \"end before start\",\n `The end of an interval must be after its start, but you had start=${start.toISO()} and end=${end.toISO()}`\n );\n } else {\n return null;\n }\n}\n\n/**\n * An Interval object represents a half-open interval of time, where each endpoint is a {@link DateTime}. Conceptually, it's a container for those two endpoints, accompanied by methods for creating, parsing, interrogating, comparing, transforming, and formatting them.\n *\n * Here is a brief overview of the most commonly used methods and getters in Interval:\n *\n * * **Creation** To create an Interval, use {@link Interval.fromDateTimes}, {@link Interval.after}, {@link Interval.before}, or {@link Interval.fromISO}.\n * * **Accessors** Use {@link Interval#start} and {@link Interval#end} to get the start and end.\n * * **Interrogation** To analyze the Interval, use {@link Interval#count}, {@link Interval#length}, {@link Interval#hasSame}, {@link Interval#contains}, {@link Interval#isAfter}, or {@link Interval#isBefore}.\n * * **Transformation** To create other Intervals out of this one, use {@link Interval#set}, {@link Interval#splitAt}, {@link Interval#splitBy}, {@link Interval#divideEqually}, {@link Interval.merge}, {@link Interval.xor}, {@link Interval#union}, {@link Interval#intersection}, or {@link Interval#difference}.\n * * **Comparison** To compare this Interval to another one, use {@link Interval#equals}, {@link Interval#overlaps}, {@link Interval#abutsStart}, {@link Interval#abutsEnd}, {@link Interval#engulfs}\n * * **Output** To convert the Interval into other representations, see {@link Interval#toString}, {@link Interval#toLocaleString}, {@link Interval#toISO}, {@link Interval#toISODate}, {@link Interval#toISOTime}, {@link Interval#toFormat}, and {@link Interval#toDuration}.\n */\nclass Interval {\n /**\n * @private\n */\n constructor(config) {\n /**\n * @access private\n */\n this.s = config.start;\n /**\n * @access private\n */\n this.e = config.end;\n /**\n * @access private\n */\n this.invalid = config.invalid || null;\n /**\n * @access private\n */\n this.isLuxonInterval = true;\n }\n\n /**\n * Create an invalid Interval.\n * @param {string} reason - simple string of why this Interval is invalid. Should not contain parameters or anything else data-dependent\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {Interval}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the Interval is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidIntervalError(invalid);\n } else {\n return new Interval({ invalid });\n }\n }\n\n /**\n * Create an Interval from a start DateTime and an end DateTime. Inclusive of the start but not the end.\n * @param {DateTime|Date|Object} start\n * @param {DateTime|Date|Object} end\n * @return {Interval}\n */\n static fromDateTimes(start, end) {\n const builtStart = friendlyDateTime(start),\n builtEnd = friendlyDateTime(end);\n\n const validateError = validateStartEnd(builtStart, builtEnd);\n\n if (validateError == null) {\n return new Interval({\n start: builtStart,\n end: builtEnd,\n });\n } else {\n return validateError;\n }\n }\n\n /**\n * Create an Interval from a start DateTime and a Duration to extend to.\n * @param {DateTime|Date|Object} start\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static after(start, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(start);\n return Interval.fromDateTimes(dt, dt.plus(dur));\n }\n\n /**\n * Create an Interval from an end DateTime and a Duration to extend backwards to.\n * @param {DateTime|Date|Object} end\n * @param {Duration|Object|number} duration - the length of the Interval.\n * @return {Interval}\n */\n static before(end, duration) {\n const dur = Duration.fromDurationLike(duration),\n dt = friendlyDateTime(end);\n return Interval.fromDateTimes(dt.minus(dur), dt);\n }\n\n /**\n * Create an Interval from an ISO 8601 string.\n * Accepts `/`, `/`, and `/` formats.\n * @param {string} text - the ISO string to parse\n * @param {Object} [opts] - options to pass {@link DateTime#fromISO} and optionally {@link Duration#fromISO}\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {Interval}\n */\n static fromISO(text, opts) {\n const [s, e] = (text || \"\").split(\"/\", 2);\n if (s && e) {\n let start, startIsValid;\n try {\n start = DateTime.fromISO(s, opts);\n startIsValid = start.isValid;\n } catch (e) {\n startIsValid = false;\n }\n\n let end, endIsValid;\n try {\n end = DateTime.fromISO(e, opts);\n endIsValid = end.isValid;\n } catch (e) {\n endIsValid = false;\n }\n\n if (startIsValid && endIsValid) {\n return Interval.fromDateTimes(start, end);\n }\n\n if (startIsValid) {\n const dur = Duration.fromISO(e, opts);\n if (dur.isValid) {\n return Interval.after(start, dur);\n }\n } else if (endIsValid) {\n const dur = Duration.fromISO(s, opts);\n if (dur.isValid) {\n return Interval.before(end, dur);\n }\n }\n }\n return Interval.invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ISO 8601`);\n }\n\n /**\n * Check if an object is an Interval. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isInterval(o) {\n return (o && o.isLuxonInterval) || false;\n }\n\n /**\n * Returns the start of the Interval\n * @type {DateTime}\n */\n get start() {\n return this.isValid ? this.s : null;\n }\n\n /**\n * Returns the end of the Interval. This is the first instant which is not part of the interval\n * (Interval is half-open).\n * @type {DateTime}\n */\n get end() {\n return this.isValid ? this.e : null;\n }\n\n /**\n * Returns the last DateTime included in the interval (since end is not part of the interval)\n * @type {DateTime}\n */\n get lastDateTime() {\n return this.isValid ? (this.e ? this.e.minus(1) : null) : null;\n }\n\n /**\n * Returns whether this Interval's end is at least its start, meaning that the Interval isn't 'backwards'.\n * @type {boolean}\n */\n get isValid() {\n return this.invalidReason === null;\n }\n\n /**\n * Returns an error code if this Interval is invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this Interval became invalid, or null if the Interval is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Returns the length of the Interval in the specified unit.\n * @param {string} unit - the unit (such as 'hours' or 'days') to return the length in.\n * @return {number}\n */\n length(unit = \"milliseconds\") {\n return this.isValid ? this.toDuration(...[unit]).get(unit) : NaN;\n }\n\n /**\n * Returns the count of minutes, hours, days, months, or years included in the Interval, even in part.\n * Unlike {@link Interval#length} this counts sections of the calendar, not periods of time, e.g. specifying 'day'\n * asks 'what dates are included in this interval?', not 'how many days long is this interval?'\n * @param {string} [unit='milliseconds'] - the unit of time to count.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; this operation will always use the locale of the start DateTime\n * @return {number}\n */\n count(unit = \"milliseconds\", opts) {\n if (!this.isValid) return NaN;\n const start = this.start.startOf(unit, opts);\n let end;\n if (opts?.useLocaleWeeks) {\n end = this.end.reconfigure({ locale: start.locale });\n } else {\n end = this.end;\n }\n end = end.startOf(unit, opts);\n return Math.floor(end.diff(start, unit).get(unit)) + (end.valueOf() !== this.end.valueOf());\n }\n\n /**\n * Returns whether this Interval's start and end are both in the same unit of time\n * @param {string} unit - the unit of time to check sameness on\n * @return {boolean}\n */\n hasSame(unit) {\n return this.isValid ? this.isEmpty() || this.e.minus(1).hasSame(this.s, unit) : false;\n }\n\n /**\n * Return whether this Interval has the same start and end DateTimes.\n * @return {boolean}\n */\n isEmpty() {\n return this.s.valueOf() === this.e.valueOf();\n }\n\n /**\n * Return whether this Interval's start is after the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isAfter(dateTime) {\n if (!this.isValid) return false;\n return this.s > dateTime;\n }\n\n /**\n * Return whether this Interval's end is before the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n isBefore(dateTime) {\n if (!this.isValid) return false;\n return this.e <= dateTime;\n }\n\n /**\n * Return whether this Interval contains the specified DateTime.\n * @param {DateTime} dateTime\n * @return {boolean}\n */\n contains(dateTime) {\n if (!this.isValid) return false;\n return this.s <= dateTime && this.e > dateTime;\n }\n\n /**\n * \"Sets\" the start and/or end dates. Returns a newly-constructed Interval.\n * @param {Object} values - the values to set\n * @param {DateTime} values.start - the starting DateTime\n * @param {DateTime} values.end - the ending DateTime\n * @return {Interval}\n */\n set({ start, end } = {}) {\n if (!this.isValid) return this;\n return Interval.fromDateTimes(start || this.s, end || this.e);\n }\n\n /**\n * Split this Interval at each of the specified DateTimes\n * @param {...DateTime} dateTimes - the unit of time to count.\n * @return {Array}\n */\n splitAt(...dateTimes) {\n if (!this.isValid) return [];\n const sorted = dateTimes\n .map(friendlyDateTime)\n .filter((d) => this.contains(d))\n .sort((a, b) => a.toMillis() - b.toMillis()),\n results = [];\n let { s } = this,\n i = 0;\n\n while (s < this.e) {\n const added = sorted[i] || this.e,\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n i += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into smaller Intervals, each of the specified length.\n * Left over time is grouped into a smaller interval\n * @param {Duration|Object|number} duration - The length of each resulting interval.\n * @return {Array}\n */\n splitBy(duration) {\n const dur = Duration.fromDurationLike(duration);\n\n if (!this.isValid || !dur.isValid || dur.as(\"milliseconds\") === 0) {\n return [];\n }\n\n let { s } = this,\n idx = 1,\n next;\n\n const results = [];\n while (s < this.e) {\n const added = this.start.plus(dur.mapUnits((x) => x * idx));\n next = +added > +this.e ? this.e : added;\n results.push(Interval.fromDateTimes(s, next));\n s = next;\n idx += 1;\n }\n\n return results;\n }\n\n /**\n * Split this Interval into the specified number of smaller intervals.\n * @param {number} numberOfParts - The number of Intervals to divide the Interval into.\n * @return {Array}\n */\n divideEqually(numberOfParts) {\n if (!this.isValid) return [];\n return this.splitBy(this.length() / numberOfParts).slice(0, numberOfParts);\n }\n\n /**\n * Return whether this Interval overlaps with the specified Interval\n * @param {Interval} other\n * @return {boolean}\n */\n overlaps(other) {\n return this.e > other.s && this.s < other.e;\n }\n\n /**\n * Return whether this Interval's end is adjacent to the specified Interval's start.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsStart(other) {\n if (!this.isValid) return false;\n return +this.e === +other.s;\n }\n\n /**\n * Return whether this Interval's start is adjacent to the specified Interval's end.\n * @param {Interval} other\n * @return {boolean}\n */\n abutsEnd(other) {\n if (!this.isValid) return false;\n return +other.e === +this.s;\n }\n\n /**\n * Returns true if this Interval fully contains the specified Interval, specifically if the intersect (of this Interval and the other Interval) is equal to the other Interval; false otherwise.\n * @param {Interval} other\n * @return {boolean}\n */\n engulfs(other) {\n if (!this.isValid) return false;\n return this.s <= other.s && this.e >= other.e;\n }\n\n /**\n * Return whether this Interval has the same start and end as the specified Interval.\n * @param {Interval} other\n * @return {boolean}\n */\n equals(other) {\n if (!this.isValid || !other.isValid) {\n return false;\n }\n\n return this.s.equals(other.s) && this.e.equals(other.e);\n }\n\n /**\n * Return an Interval representing the intersection of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the maximum start time and the minimum end time of the two Intervals.\n * Returns null if the intersection is empty, meaning, the intervals don't intersect.\n * @param {Interval} other\n * @return {Interval}\n */\n intersection(other) {\n if (!this.isValid) return this;\n const s = this.s > other.s ? this.s : other.s,\n e = this.e < other.e ? this.e : other.e;\n\n if (s >= e) {\n return null;\n } else {\n return Interval.fromDateTimes(s, e);\n }\n }\n\n /**\n * Return an Interval representing the union of this Interval and the specified Interval.\n * Specifically, the resulting Interval has the minimum start time and the maximum end time of the two Intervals.\n * @param {Interval} other\n * @return {Interval}\n */\n union(other) {\n if (!this.isValid) return this;\n const s = this.s < other.s ? this.s : other.s,\n e = this.e > other.e ? this.e : other.e;\n return Interval.fromDateTimes(s, e);\n }\n\n /**\n * Merge an array of Intervals into an equivalent minimal set of Intervals.\n * Combines overlapping and adjacent Intervals.\n * The resulting array will contain the Intervals in ascending order, that is, starting with the earliest Interval\n * and ending with the latest.\n *\n * @param {Array} intervals\n * @return {Array}\n */\n static merge(intervals) {\n const [found, final] = intervals\n .sort((a, b) => a.s - b.s)\n .reduce(\n ([sofar, current], item) => {\n if (!current) {\n return [sofar, item];\n } else if (current.overlaps(item) || current.abutsStart(item)) {\n return [sofar, current.union(item)];\n } else {\n return [sofar.concat([current]), item];\n }\n },\n [[], null]\n );\n if (final) {\n found.push(final);\n }\n return found;\n }\n\n /**\n * Return an array of Intervals representing the spans of time that only appear in one of the specified Intervals.\n * @param {Array} intervals\n * @return {Array}\n */\n static xor(intervals) {\n let start = null,\n currentCount = 0;\n const results = [],\n ends = intervals.map((i) => [\n { time: i.s, type: \"s\" },\n { time: i.e, type: \"e\" },\n ]),\n flattened = Array.prototype.concat(...ends),\n arr = flattened.sort((a, b) => a.time - b.time);\n\n for (const i of arr) {\n currentCount += i.type === \"s\" ? 1 : -1;\n\n if (currentCount === 1) {\n start = i.time;\n } else {\n if (start && +start !== +i.time) {\n results.push(Interval.fromDateTimes(start, i.time));\n }\n\n start = null;\n }\n }\n\n return Interval.merge(results);\n }\n\n /**\n * Return an Interval representing the span of time in this Interval that doesn't overlap with any of the specified Intervals.\n * @param {...Interval} intervals\n * @return {Array}\n */\n difference(...intervals) {\n return Interval.xor([this].concat(intervals))\n .map((i) => this.intersection(i))\n .filter((i) => i && !i.isEmpty());\n }\n\n /**\n * Returns a string representation of this Interval appropriate for debugging.\n * @return {string}\n */\n toString() {\n if (!this.isValid) return INVALID$1;\n return `[${this.s.toISO()} – ${this.e.toISO()})`;\n }\n\n /**\n * Returns a string representation of this Interval appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `Interval { start: ${this.s.toISO()}, end: ${this.e.toISO()} }`;\n } else {\n return `Interval { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns a localized string representing this Interval. Accepts the same options as the\n * Intl.DateTimeFormat constructor and any presets defined by Luxon, such as\n * {@link DateTime.DATE_FULL} or {@link DateTime.TIME_SIMPLE}. The exact behavior of this method\n * is browser-specific, but in general it will return an appropriate representation of the\n * Interval in the assigned locale. Defaults to the system's locale if no locale has been\n * specified.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {Object} [formatOpts=DateTime.DATE_SHORT] - Either a DateTime preset or\n * Intl.DateTimeFormat constructor options.\n * @param {Object} opts - Options to override the configuration of the start DateTime.\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(); //=> 11/7/2022 – 11/8/2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL); //=> November 7 – 8, 2022\n * @example Interval.fromISO('2022-11-07T09:00Z/2022-11-08T09:00Z').toLocaleString(DateTime.DATE_FULL, { locale: 'fr-FR' }); //=> 7–8 novembre 2022\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString(DateTime.TIME_SIMPLE); //=> 6:00 – 8:00 PM\n * @example Interval.fromISO('2022-11-07T17:00Z/2022-11-07T19:00Z').toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> Mon, Nov 07, 6:00 – 8:00 p\n * @return {string}\n */\n toLocaleString(formatOpts = DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.s.loc.clone(opts), formatOpts).formatInterval(this)\n : INVALID$1;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this Interval.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISO(opts) {\n if (!this.isValid) return INVALID$1;\n return `${this.s.toISO(opts)}/${this.e.toISO(opts)}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of date of this Interval.\n * The time components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @return {string}\n */\n toISODate() {\n if (!this.isValid) return INVALID$1;\n return `${this.s.toISODate()}/${this.e.toISODate()}`;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of time of this Interval.\n * The date components are ignored.\n * @see https://en.wikipedia.org/wiki/ISO_8601#Time_intervals\n * @param {Object} opts - The same options as {@link DateTime#toISO}\n * @return {string}\n */\n toISOTime(opts) {\n if (!this.isValid) return INVALID$1;\n return `${this.s.toISOTime(opts)}/${this.e.toISOTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this Interval formatted according to the specified format\n * string. **You may not want this.** See {@link Interval#toLocaleString} for a more flexible\n * formatting tool.\n * @param {string} dateFormat - The format string. This string formats the start and end time.\n * See {@link DateTime#toFormat} for details.\n * @param {Object} opts - Options.\n * @param {string} [opts.separator = ' – '] - A separator to place between the start and end\n * representations.\n * @return {string}\n */\n toFormat(dateFormat, { separator = \" – \" } = {}) {\n if (!this.isValid) return INVALID$1;\n return `${this.s.toFormat(dateFormat)}${separator}${this.e.toFormat(dateFormat)}`;\n }\n\n /**\n * Return a Duration representing the time spanned by this interval.\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example Interval.fromDateTimes(dt1, dt2).toDuration().toObject() //=> { milliseconds: 88489257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('days').toObject() //=> { days: 1.0241812152777778 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes']).toObject() //=> { hours: 24, minutes: 34.82095 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration(['hours', 'minutes', 'seconds']).toObject() //=> { hours: 24, minutes: 34, seconds: 49.257 }\n * @example Interval.fromDateTimes(dt1, dt2).toDuration('seconds').toObject() //=> { seconds: 88489.257 }\n * @return {Duration}\n */\n toDuration(unit, opts) {\n if (!this.isValid) {\n return Duration.invalid(this.invalidReason);\n }\n return this.e.diff(this.s, unit, opts);\n }\n\n /**\n * Run mapFn on the interval start and end, returning a new Interval from the resulting DateTimes\n * @param {function} mapFn\n * @return {Interval}\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.toUTC())\n * @example Interval.fromDateTimes(dt1, dt2).mapEndpoints(endpoint => endpoint.plus({ hours: 2 }))\n */\n mapEndpoints(mapFn) {\n return Interval.fromDateTimes(mapFn(this.s), mapFn(this.e));\n }\n}\n\n/**\n * The Info class contains static methods for retrieving general time and date related data. For example, it has methods for finding out if a time zone has a DST, for listing the months in any supported locale, and for discovering which of Luxon features are available in the current environment.\n */\nclass Info {\n /**\n * Return whether the specified zone contains a DST.\n * @param {string|Zone} [zone='local'] - Zone to check. Defaults to the environment's local zone.\n * @return {boolean}\n */\n static hasDST(zone = Settings.defaultZone) {\n const proto = DateTime.now().setZone(zone).set({ month: 12 });\n\n return !zone.isUniversal && proto.offset !== proto.set({ month: 6 }).offset;\n }\n\n /**\n * Return whether the specified zone is a valid IANA specifier.\n * @param {string} zone - Zone to check\n * @return {boolean}\n */\n static isValidIANAZone(zone) {\n return IANAZone.isValidZone(zone);\n }\n\n /**\n * Converts the input into a {@link Zone} instance.\n *\n * * If `input` is already a Zone instance, it is returned unchanged.\n * * If `input` is a string containing a valid time zone name, a Zone instance\n * with that name is returned.\n * * If `input` is a string that doesn't refer to a known time zone, a Zone\n * instance with {@link Zone#isValid} == false is returned.\n * * If `input is a number, a Zone instance with the specified fixed offset\n * in minutes is returned.\n * * If `input` is `null` or `undefined`, the default zone is returned.\n * @param {string|Zone|number} [input] - the value to be converted\n * @return {Zone}\n */\n static normalizeZone(input) {\n return normalizeZone(input, Settings.defaultZone);\n }\n\n /**\n * Get the weekday on which the week starts according to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number} the start of the week, 1 for Monday through 7 for Sunday\n */\n static getStartOfWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getStartOfWeek();\n }\n\n /**\n * Get the minimum number of days necessary in a week before it is considered part of the next year according\n * to the given locale.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number}\n */\n static getMinimumDaysInFirstWeek({ locale = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale)).getMinDaysInFirstWeek();\n }\n\n /**\n * Get the weekdays, which are considered the weekend according to the given locale\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @returns {number[]} an array of weekdays, 1 for Monday through 7 for Sunday\n */\n static getWeekendWeekdays({ locale = null, locObj = null } = {}) {\n // copy the array, because we cache it internally\n return (locObj || Locale.create(locale)).getWeekendDays().slice();\n }\n\n /**\n * Return an array of standalone month names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @example Info.months()[0] //=> 'January'\n * @example Info.months('short')[0] //=> 'Jan'\n * @example Info.months('numeric')[0] //=> '1'\n * @example Info.months('short', { locale: 'fr-CA' } )[0] //=> 'janv.'\n * @example Info.months('numeric', { locale: 'ar' })[0] //=> 'Ł”'\n * @example Info.months('long', { outputCalendar: 'islamic' })[0] //=> 'RabiŹ» I'\n * @return {Array}\n */\n static months(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length);\n }\n\n /**\n * Return an array of format month names.\n * Format months differ from standalone months in that they're meant to appear next to the day of the month. In some languages, that\n * changes the string.\n * See {@link Info#months}\n * @param {string} [length='long'] - the length of the month representation, such as \"numeric\", \"2-digit\", \"narrow\", \"short\", \"long\"\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @param {string} [opts.outputCalendar='gregory'] - the calendar\n * @return {Array}\n */\n static monthsFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null, outputCalendar = \"gregory\" } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, outputCalendar)).months(length, true);\n }\n\n /**\n * Return an array of standalone week names.\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param {string} [length='long'] - the length of the weekday representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @example Info.weekdays()[0] //=> 'Monday'\n * @example Info.weekdays('short')[0] //=> 'Mon'\n * @example Info.weekdays('short', { locale: 'fr-CA' })[0] //=> 'lun.'\n * @example Info.weekdays('short', { locale: 'ar' })[0] //=> 'Ų§Ł„Ų§Ų«Ł†ŁŠŁ†'\n * @return {Array}\n */\n static weekdays(length = \"long\", { locale = null, numberingSystem = null, locObj = null } = {}) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length);\n }\n\n /**\n * Return an array of format week names.\n * Format weekdays differ from standalone weekdays in that they're meant to appear next to more date information. In some languages, that\n * changes the string.\n * See {@link Info#weekdays}\n * @param {string} [length='long'] - the length of the month representation, such as \"narrow\", \"short\", \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale=null] - the locale code\n * @param {string} [opts.numberingSystem=null] - the numbering system\n * @param {string} [opts.locObj=null] - an existing locale object to use\n * @return {Array}\n */\n static weekdaysFormat(\n length = \"long\",\n { locale = null, numberingSystem = null, locObj = null } = {}\n ) {\n return (locObj || Locale.create(locale, numberingSystem, null)).weekdays(length, true);\n }\n\n /**\n * Return an array of meridiems.\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.meridiems() //=> [ 'AM', 'PM' ]\n * @example Info.meridiems({ locale: 'my' }) //=> [ 'နံနက်', 'į€Šį€”į€±' ]\n * @return {Array}\n */\n static meridiems({ locale = null } = {}) {\n return Locale.create(locale).meridiems();\n }\n\n /**\n * Return an array of eras, such as ['BC', 'AD']. The locale can be specified, but the calendar system is always Gregorian.\n * @param {string} [length='short'] - the length of the era representation, such as \"short\" or \"long\".\n * @param {Object} opts - options\n * @param {string} [opts.locale] - the locale code\n * @example Info.eras() //=> [ 'BC', 'AD' ]\n * @example Info.eras('long') //=> [ 'Before Christ', 'Anno Domini' ]\n * @example Info.eras('long', { locale: 'fr' }) //=> [ 'avant JĆ©sus-Christ', 'aprĆØs JĆ©sus-Christ' ]\n * @return {Array}\n */\n static eras(length = \"short\", { locale = null } = {}) {\n return Locale.create(locale, null, \"gregory\").eras(length);\n }\n\n /**\n * Return the set of available features in this environment.\n * Some features of Luxon are not available in all environments. For example, on older browsers, relative time formatting support is not available. Use this function to figure out if that's the case.\n * Keys:\n * * `relative`: whether this environment supports relative time formatting\n * * `localeWeek`: whether this environment supports different weekdays for the start of the week based on the locale\n * @example Info.features() //=> { relative: false, localeWeek: true }\n * @return {Object}\n */\n static features() {\n return { relative: hasRelative(), localeWeek: hasLocaleWeekInfo() };\n }\n}\n\nfunction dayDiff(earlier, later) {\n const utcDayStart = (dt) => dt.toUTC(0, { keepLocalTime: true }).startOf(\"day\").valueOf(),\n ms = utcDayStart(later) - utcDayStart(earlier);\n return Math.floor(Duration.fromMillis(ms).as(\"days\"));\n}\n\nfunction highOrderDiffs(cursor, later, units) {\n const differs = [\n [\"years\", (a, b) => b.year - a.year],\n [\"quarters\", (a, b) => b.quarter - a.quarter + (b.year - a.year) * 4],\n [\"months\", (a, b) => b.month - a.month + (b.year - a.year) * 12],\n [\n \"weeks\",\n (a, b) => {\n const days = dayDiff(a, b);\n return (days - (days % 7)) / 7;\n },\n ],\n [\"days\", dayDiff],\n ];\n\n const results = {};\n const earlier = cursor;\n let lowestOrder, highWater;\n\n /* This loop tries to diff using larger units first.\n If we overshoot, we backtrack and try the next smaller unit.\n \"cursor\" starts out at the earlier timestamp and moves closer and closer to \"later\"\n as we use smaller and smaller units.\n highWater keeps track of where we would be if we added one more of the smallest unit,\n this is used later to potentially convert any difference smaller than the smallest higher order unit\n into a fraction of that smallest higher order unit\n */\n for (const [unit, differ] of differs) {\n if (units.indexOf(unit) >= 0) {\n lowestOrder = unit;\n\n results[unit] = differ(cursor, later);\n highWater = earlier.plus(results);\n\n if (highWater > later) {\n // we overshot the end point, backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n\n // if we are still overshooting now, we need to backtrack again\n // this happens in certain situations when diffing times in different zones,\n // because this calculation ignores time zones\n if (cursor > later) {\n // keep the \"overshot by 1\" around as highWater\n highWater = cursor;\n // backtrack cursor by 1\n results[unit]--;\n cursor = earlier.plus(results);\n }\n } else {\n cursor = highWater;\n }\n }\n }\n\n return [cursor, results, highWater, lowestOrder];\n}\n\nfunction diff (earlier, later, units, opts) {\n let [cursor, results, highWater, lowestOrder] = highOrderDiffs(earlier, later, units);\n\n const remainingMillis = later - cursor;\n\n const lowerOrderUnits = units.filter(\n (u) => [\"hours\", \"minutes\", \"seconds\", \"milliseconds\"].indexOf(u) >= 0\n );\n\n if (lowerOrderUnits.length === 0) {\n if (highWater < later) {\n highWater = cursor.plus({ [lowestOrder]: 1 });\n }\n\n if (highWater !== cursor) {\n results[lowestOrder] = (results[lowestOrder] || 0) + remainingMillis / (highWater - cursor);\n }\n }\n\n const duration = Duration.fromObject(results, opts);\n\n if (lowerOrderUnits.length > 0) {\n return Duration.fromMillis(remainingMillis, opts)\n .shiftTo(...lowerOrderUnits)\n .plus(duration);\n } else {\n return duration;\n }\n}\n\nconst MISSING_FTP = \"missing Intl.DateTimeFormat.formatToParts support\";\n\nfunction intUnit(regex, post = (i) => i) {\n return { regex, deser: ([s]) => post(parseDigits(s)) };\n}\n\nconst NBSP = String.fromCharCode(160);\nconst spaceOrNBSP = `[ ${NBSP}]`;\nconst spaceOrNBSPRegExp = new RegExp(spaceOrNBSP, \"g\");\n\nfunction fixListRegex(s) {\n // make dots optional and also make them literal\n // make space and non breakable space characters interchangeable\n return s.replace(/\\./g, \"\\\\.?\").replace(spaceOrNBSPRegExp, spaceOrNBSP);\n}\n\nfunction stripInsensitivities(s) {\n return s\n .replace(/\\./g, \"\") // ignore dots that were made optional\n .replace(spaceOrNBSPRegExp, \" \") // interchange space and nbsp\n .toLowerCase();\n}\n\nfunction oneOf(strings, startIndex) {\n if (strings === null) {\n return null;\n } else {\n return {\n regex: RegExp(strings.map(fixListRegex).join(\"|\")),\n deser: ([s]) =>\n strings.findIndex((i) => stripInsensitivities(s) === stripInsensitivities(i)) + startIndex,\n };\n }\n}\n\nfunction offset(regex, groups) {\n return { regex, deser: ([, h, m]) => signedOffset(h, m), groups };\n}\n\nfunction simple(regex) {\n return { regex, deser: ([s]) => s };\n}\n\nfunction escapeToken(value) {\n return value.replace(/[\\-\\[\\]{}()*+?.,\\\\\\^$|#\\s]/g, \"\\\\$&\");\n}\n\n/**\n * @param token\n * @param {Locale} loc\n */\nfunction unitForToken(token, loc) {\n const one = digitRegex(loc),\n two = digitRegex(loc, \"{2}\"),\n three = digitRegex(loc, \"{3}\"),\n four = digitRegex(loc, \"{4}\"),\n six = digitRegex(loc, \"{6}\"),\n oneOrTwo = digitRegex(loc, \"{1,2}\"),\n oneToThree = digitRegex(loc, \"{1,3}\"),\n oneToSix = digitRegex(loc, \"{1,6}\"),\n oneToNine = digitRegex(loc, \"{1,9}\"),\n twoToFour = digitRegex(loc, \"{2,4}\"),\n fourToSix = digitRegex(loc, \"{4,6}\"),\n literal = (t) => ({ regex: RegExp(escapeToken(t.val)), deser: ([s]) => s, literal: true }),\n unitate = (t) => {\n if (token.literal) {\n return literal(t);\n }\n switch (t.val) {\n // era\n case \"G\":\n return oneOf(loc.eras(\"short\"), 0);\n case \"GG\":\n return oneOf(loc.eras(\"long\"), 0);\n // years\n case \"y\":\n return intUnit(oneToSix);\n case \"yy\":\n return intUnit(twoToFour, untruncateYear);\n case \"yyyy\":\n return intUnit(four);\n case \"yyyyy\":\n return intUnit(fourToSix);\n case \"yyyyyy\":\n return intUnit(six);\n // months\n case \"M\":\n return intUnit(oneOrTwo);\n case \"MM\":\n return intUnit(two);\n case \"MMM\":\n return oneOf(loc.months(\"short\", true), 1);\n case \"MMMM\":\n return oneOf(loc.months(\"long\", true), 1);\n case \"L\":\n return intUnit(oneOrTwo);\n case \"LL\":\n return intUnit(two);\n case \"LLL\":\n return oneOf(loc.months(\"short\", false), 1);\n case \"LLLL\":\n return oneOf(loc.months(\"long\", false), 1);\n // dates\n case \"d\":\n return intUnit(oneOrTwo);\n case \"dd\":\n return intUnit(two);\n // ordinals\n case \"o\":\n return intUnit(oneToThree);\n case \"ooo\":\n return intUnit(three);\n // time\n case \"HH\":\n return intUnit(two);\n case \"H\":\n return intUnit(oneOrTwo);\n case \"hh\":\n return intUnit(two);\n case \"h\":\n return intUnit(oneOrTwo);\n case \"mm\":\n return intUnit(two);\n case \"m\":\n return intUnit(oneOrTwo);\n case \"q\":\n return intUnit(oneOrTwo);\n case \"qq\":\n return intUnit(two);\n case \"s\":\n return intUnit(oneOrTwo);\n case \"ss\":\n return intUnit(two);\n case \"S\":\n return intUnit(oneToThree);\n case \"SSS\":\n return intUnit(three);\n case \"u\":\n return simple(oneToNine);\n case \"uu\":\n return simple(oneOrTwo);\n case \"uuu\":\n return intUnit(one);\n // meridiem\n case \"a\":\n return oneOf(loc.meridiems(), 0);\n // weekYear (k)\n case \"kkkk\":\n return intUnit(four);\n case \"kk\":\n return intUnit(twoToFour, untruncateYear);\n // weekNumber (W)\n case \"W\":\n return intUnit(oneOrTwo);\n case \"WW\":\n return intUnit(two);\n // weekdays\n case \"E\":\n case \"c\":\n return intUnit(one);\n case \"EEE\":\n return oneOf(loc.weekdays(\"short\", false), 1);\n case \"EEEE\":\n return oneOf(loc.weekdays(\"long\", false), 1);\n case \"ccc\":\n return oneOf(loc.weekdays(\"short\", true), 1);\n case \"cccc\":\n return oneOf(loc.weekdays(\"long\", true), 1);\n // offset/zone\n case \"Z\":\n case \"ZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(?::(${two.source}))?`), 2);\n case \"ZZZ\":\n return offset(new RegExp(`([+-]${oneOrTwo.source})(${two.source})?`), 2);\n // we don't support ZZZZ (PST) or ZZZZZ (Pacific Standard Time) in parsing\n // because we don't have any way to figure out what they are\n case \"z\":\n return simple(/[a-z_+-/]{1,256}?/i);\n // this special-case \"token\" represents a place where a macro-token expanded into a white-space literal\n // in this case we accept any non-newline white-space\n case \" \":\n return simple(/[^\\S\\n\\r]/);\n default:\n return literal(t);\n }\n };\n\n const unit = unitate(token) || {\n invalidReason: MISSING_FTP,\n };\n\n unit.token = token;\n\n return unit;\n}\n\nconst partTypeStyleToTokenVal = {\n year: {\n \"2-digit\": \"yy\",\n numeric: \"yyyyy\",\n },\n month: {\n numeric: \"M\",\n \"2-digit\": \"MM\",\n short: \"MMM\",\n long: \"MMMM\",\n },\n day: {\n numeric: \"d\",\n \"2-digit\": \"dd\",\n },\n weekday: {\n short: \"EEE\",\n long: \"EEEE\",\n },\n dayperiod: \"a\",\n dayPeriod: \"a\",\n hour12: {\n numeric: \"h\",\n \"2-digit\": \"hh\",\n },\n hour24: {\n numeric: \"H\",\n \"2-digit\": \"HH\",\n },\n minute: {\n numeric: \"m\",\n \"2-digit\": \"mm\",\n },\n second: {\n numeric: \"s\",\n \"2-digit\": \"ss\",\n },\n timeZoneName: {\n long: \"ZZZZZ\",\n short: \"ZZZ\",\n },\n};\n\nfunction tokenForPart(part, formatOpts, resolvedOpts) {\n const { type, value } = part;\n\n if (type === \"literal\") {\n const isSpace = /^\\s+$/.test(value);\n return {\n literal: !isSpace,\n val: isSpace ? \" \" : value,\n };\n }\n\n const style = formatOpts[type];\n\n // The user might have explicitly specified hour12 or hourCycle\n // if so, respect their decision\n // if not, refer back to the resolvedOpts, which are based on the locale\n let actualType = type;\n if (type === \"hour\") {\n if (formatOpts.hour12 != null) {\n actualType = formatOpts.hour12 ? \"hour12\" : \"hour24\";\n } else if (formatOpts.hourCycle != null) {\n if (formatOpts.hourCycle === \"h11\" || formatOpts.hourCycle === \"h12\") {\n actualType = \"hour12\";\n } else {\n actualType = \"hour24\";\n }\n } else {\n // tokens only differentiate between 24 hours or not,\n // so we do not need to check hourCycle here, which is less supported anyways\n actualType = resolvedOpts.hour12 ? \"hour12\" : \"hour24\";\n }\n }\n let val = partTypeStyleToTokenVal[actualType];\n if (typeof val === \"object\") {\n val = val[style];\n }\n\n if (val) {\n return {\n literal: false,\n val,\n };\n }\n\n return undefined;\n}\n\nfunction buildRegex(units) {\n const re = units.map((u) => u.regex).reduce((f, r) => `${f}(${r.source})`, \"\");\n return [`^${re}$`, units];\n}\n\nfunction match(input, regex, handlers) {\n const matches = input.match(regex);\n\n if (matches) {\n const all = {};\n let matchIndex = 1;\n for (const i in handlers) {\n if (hasOwnProperty(handlers, i)) {\n const h = handlers[i],\n groups = h.groups ? h.groups + 1 : 1;\n if (!h.literal && h.token) {\n all[h.token.val[0]] = h.deser(matches.slice(matchIndex, matchIndex + groups));\n }\n matchIndex += groups;\n }\n }\n return [matches, all];\n } else {\n return [matches, {}];\n }\n}\n\nfunction dateTimeFromMatches(matches) {\n const toField = (token) => {\n switch (token) {\n case \"S\":\n return \"millisecond\";\n case \"s\":\n return \"second\";\n case \"m\":\n return \"minute\";\n case \"h\":\n case \"H\":\n return \"hour\";\n case \"d\":\n return \"day\";\n case \"o\":\n return \"ordinal\";\n case \"L\":\n case \"M\":\n return \"month\";\n case \"y\":\n return \"year\";\n case \"E\":\n case \"c\":\n return \"weekday\";\n case \"W\":\n return \"weekNumber\";\n case \"k\":\n return \"weekYear\";\n case \"q\":\n return \"quarter\";\n default:\n return null;\n }\n };\n\n let zone = null;\n let specificOffset;\n if (!isUndefined(matches.z)) {\n zone = IANAZone.create(matches.z);\n }\n\n if (!isUndefined(matches.Z)) {\n if (!zone) {\n zone = new FixedOffsetZone(matches.Z);\n }\n specificOffset = matches.Z;\n }\n\n if (!isUndefined(matches.q)) {\n matches.M = (matches.q - 1) * 3 + 1;\n }\n\n if (!isUndefined(matches.h)) {\n if (matches.h < 12 && matches.a === 1) {\n matches.h += 12;\n } else if (matches.h === 12 && matches.a === 0) {\n matches.h = 0;\n }\n }\n\n if (matches.G === 0 && matches.y) {\n matches.y = -matches.y;\n }\n\n if (!isUndefined(matches.u)) {\n matches.S = parseMillis(matches.u);\n }\n\n const vals = Object.keys(matches).reduce((r, k) => {\n const f = toField(k);\n if (f) {\n r[f] = matches[k];\n }\n\n return r;\n }, {});\n\n return [vals, zone, specificOffset];\n}\n\nlet dummyDateTimeCache = null;\n\nfunction getDummyDateTime() {\n if (!dummyDateTimeCache) {\n dummyDateTimeCache = DateTime.fromMillis(1555555555555);\n }\n\n return dummyDateTimeCache;\n}\n\nfunction maybeExpandMacroToken(token, locale) {\n if (token.literal) {\n return token;\n }\n\n const formatOpts = Formatter.macroTokenToFormatOpts(token.val);\n const tokens = formatOptsToTokens(formatOpts, locale);\n\n if (tokens == null || tokens.includes(undefined)) {\n return token;\n }\n\n return tokens;\n}\n\nfunction expandMacroTokens(tokens, locale) {\n return Array.prototype.concat(...tokens.map((t) => maybeExpandMacroToken(t, locale)));\n}\n\n/**\n * @private\n */\n\nclass TokenParser {\n constructor(locale, format) {\n this.locale = locale;\n this.format = format;\n this.tokens = expandMacroTokens(Formatter.parseFormat(format), locale);\n this.units = this.tokens.map((t) => unitForToken(t, locale));\n this.disqualifyingUnit = this.units.find((t) => t.invalidReason);\n\n if (!this.disqualifyingUnit) {\n const [regexString, handlers] = buildRegex(this.units);\n this.regex = RegExp(regexString, \"i\");\n this.handlers = handlers;\n }\n }\n\n explainFromTokens(input) {\n if (!this.isValid) {\n return { input, tokens: this.tokens, invalidReason: this.invalidReason };\n } else {\n const [rawMatches, matches] = match(input, this.regex, this.handlers),\n [result, zone, specificOffset] = matches\n ? dateTimeFromMatches(matches)\n : [null, null, undefined];\n if (hasOwnProperty(matches, \"a\") && hasOwnProperty(matches, \"H\")) {\n throw new ConflictingSpecificationError(\n \"Can't include meridiem when specifying 24-hour format\"\n );\n }\n return {\n input,\n tokens: this.tokens,\n regex: this.regex,\n rawMatches,\n matches,\n result,\n zone,\n specificOffset,\n };\n }\n }\n\n get isValid() {\n return !this.disqualifyingUnit;\n }\n\n get invalidReason() {\n return this.disqualifyingUnit ? this.disqualifyingUnit.invalidReason : null;\n }\n}\n\nfunction explainFromTokens(locale, input, format) {\n const parser = new TokenParser(locale, format);\n return parser.explainFromTokens(input);\n}\n\nfunction parseFromTokens(locale, input, format) {\n const { result, zone, specificOffset, invalidReason } = explainFromTokens(locale, input, format);\n return [result, zone, specificOffset, invalidReason];\n}\n\nfunction formatOptsToTokens(formatOpts, locale) {\n if (!formatOpts) {\n return null;\n }\n\n const formatter = Formatter.create(locale, formatOpts);\n const df = formatter.dtFormatter(getDummyDateTime());\n const parts = df.formatToParts();\n const resolvedOpts = df.resolvedOptions();\n return parts.map((p) => tokenForPart(p, formatOpts, resolvedOpts));\n}\n\nconst INVALID = \"Invalid DateTime\";\nconst MAX_DATE = 8.64e15;\n\nfunction unsupportedZone(zone) {\n return new Invalid(\"unsupported zone\", `the zone \"${zone.name}\" is not supported`);\n}\n\n// we cache week data on the DT object and this intermediates the cache\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedWeekData(dt) {\n if (dt.weekData === null) {\n dt.weekData = gregorianToWeek(dt.c);\n }\n return dt.weekData;\n}\n\n/**\n * @param {DateTime} dt\n */\nfunction possiblyCachedLocalWeekData(dt) {\n if (dt.localWeekData === null) {\n dt.localWeekData = gregorianToWeek(\n dt.c,\n dt.loc.getMinDaysInFirstWeek(),\n dt.loc.getStartOfWeek()\n );\n }\n return dt.localWeekData;\n}\n\n// clone really means, \"make a new object with these modifications\". all \"setters\" really use this\n// to create a new object while only changing some of the properties\nfunction clone(inst, alts) {\n const current = {\n ts: inst.ts,\n zone: inst.zone,\n c: inst.c,\n o: inst.o,\n loc: inst.loc,\n invalid: inst.invalid,\n };\n return new DateTime({ ...current, ...alts, old: current });\n}\n\n// find the right offset a given local time. The o input is our guess, which determines which\n// offset we'll pick in ambiguous cases (e.g. there are two 3 AMs b/c Fallback DST)\nfunction fixOffset(localTS, o, tz) {\n // Our UTC time is just a guess because our offset is just a guess\n let utcGuess = localTS - o * 60 * 1000;\n\n // Test whether the zone matches the offset for this ts\n const o2 = tz.offset(utcGuess);\n\n // If so, offset didn't change and we're done\n if (o === o2) {\n return [utcGuess, o];\n }\n\n // If not, change the ts by the difference in the offset\n utcGuess -= (o2 - o) * 60 * 1000;\n\n // If that gives us the local time we want, we're done\n const o3 = tz.offset(utcGuess);\n if (o2 === o3) {\n return [utcGuess, o2];\n }\n\n // If it's different, we're in a hole time. The offset has changed, but the we don't adjust the time\n return [localTS - Math.min(o2, o3) * 60 * 1000, Math.max(o2, o3)];\n}\n\n// convert an epoch timestamp into a calendar object with the given offset\nfunction tsToObj(ts, offset) {\n ts += offset * 60 * 1000;\n\n const d = new Date(ts);\n\n return {\n year: d.getUTCFullYear(),\n month: d.getUTCMonth() + 1,\n day: d.getUTCDate(),\n hour: d.getUTCHours(),\n minute: d.getUTCMinutes(),\n second: d.getUTCSeconds(),\n millisecond: d.getUTCMilliseconds(),\n };\n}\n\n// convert a calendar object to a epoch timestamp\nfunction objToTS(obj, offset, zone) {\n return fixOffset(objToLocalTS(obj), offset, zone);\n}\n\n// create a new DT instance by adding a duration, adjusting for DSTs\nfunction adjustTime(inst, dur) {\n const oPre = inst.o,\n year = inst.c.year + Math.trunc(dur.years),\n month = inst.c.month + Math.trunc(dur.months) + Math.trunc(dur.quarters) * 3,\n c = {\n ...inst.c,\n year,\n month,\n day:\n Math.min(inst.c.day, daysInMonth(year, month)) +\n Math.trunc(dur.days) +\n Math.trunc(dur.weeks) * 7,\n },\n millisToAdd = Duration.fromObject({\n years: dur.years - Math.trunc(dur.years),\n quarters: dur.quarters - Math.trunc(dur.quarters),\n months: dur.months - Math.trunc(dur.months),\n weeks: dur.weeks - Math.trunc(dur.weeks),\n days: dur.days - Math.trunc(dur.days),\n hours: dur.hours,\n minutes: dur.minutes,\n seconds: dur.seconds,\n milliseconds: dur.milliseconds,\n }).as(\"milliseconds\"),\n localTS = objToLocalTS(c);\n\n let [ts, o] = fixOffset(localTS, oPre, inst.zone);\n\n if (millisToAdd !== 0) {\n ts += millisToAdd;\n // that could have changed the offset by going over a DST, but we want to keep the ts the same\n o = inst.zone.offset(ts);\n }\n\n return { ts, o };\n}\n\n// helper useful in turning the results of parsing into real dates\n// by handling the zone options\nfunction parseDataToDateTime(parsed, parsedZone, opts, format, text, specificOffset) {\n const { setZone, zone } = opts;\n if ((parsed && Object.keys(parsed).length !== 0) || parsedZone) {\n const interpretationZone = parsedZone || zone,\n inst = DateTime.fromObject(parsed, {\n ...opts,\n zone: interpretationZone,\n specificOffset,\n });\n return setZone ? inst : inst.setZone(zone);\n } else {\n return DateTime.invalid(\n new Invalid(\"unparsable\", `the input \"${text}\" can't be parsed as ${format}`)\n );\n }\n}\n\n// if you want to output a technical format (e.g. RFC 2822), this helper\n// helps handle the details\nfunction toTechFormat(dt, format, allowZ = true) {\n return dt.isValid\n ? Formatter.create(Locale.create(\"en-US\"), {\n allowZ,\n forceSimple: true,\n }).formatDateTimeFromString(dt, format)\n : null;\n}\n\nfunction toISODate(o, extended, precision) {\n const longFormat = o.c.year > 9999 || o.c.year < 0;\n let c = \"\";\n if (longFormat && o.c.year >= 0) c += \"+\";\n c += padStart(o.c.year, longFormat ? 6 : 4);\n if (precision === \"year\") return c;\n if (extended) {\n c += \"-\";\n c += padStart(o.c.month);\n if (precision === \"month\") return c;\n c += \"-\";\n } else {\n c += padStart(o.c.month);\n if (precision === \"month\") return c;\n }\n c += padStart(o.c.day);\n return c;\n}\n\nfunction toISOTime(\n o,\n extended,\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone,\n precision\n) {\n let showSeconds = !suppressSeconds || o.c.millisecond !== 0 || o.c.second !== 0,\n c = \"\";\n switch (precision) {\n case \"day\":\n case \"month\":\n case \"year\":\n break;\n default:\n c += padStart(o.c.hour);\n if (precision === \"hour\") break;\n if (extended) {\n c += \":\";\n c += padStart(o.c.minute);\n if (precision === \"minute\") break;\n if (showSeconds) {\n c += \":\";\n c += padStart(o.c.second);\n }\n } else {\n c += padStart(o.c.minute);\n if (precision === \"minute\") break;\n if (showSeconds) {\n c += padStart(o.c.second);\n }\n }\n if (precision === \"second\") break;\n if (showSeconds && (!suppressMilliseconds || o.c.millisecond !== 0)) {\n c += \".\";\n c += padStart(o.c.millisecond, 3);\n }\n }\n\n if (includeOffset) {\n if (o.isOffsetFixed && o.offset === 0 && !extendedZone) {\n c += \"Z\";\n } else if (o.o < 0) {\n c += \"-\";\n c += padStart(Math.trunc(-o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(-o.o % 60));\n } else {\n c += \"+\";\n c += padStart(Math.trunc(o.o / 60));\n c += \":\";\n c += padStart(Math.trunc(o.o % 60));\n }\n }\n\n if (extendedZone) {\n c += \"[\" + o.zone.ianaName + \"]\";\n }\n return c;\n}\n\n// defaults for unspecified units in the supported calendars\nconst defaultUnitValues = {\n month: 1,\n day: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultWeekUnitValues = {\n weekNumber: 1,\n weekday: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n },\n defaultOrdinalUnitValues = {\n ordinal: 1,\n hour: 0,\n minute: 0,\n second: 0,\n millisecond: 0,\n };\n\n// Units in the supported calendars, sorted by bigness\nconst orderedUnits = [\"year\", \"month\", \"day\", \"hour\", \"minute\", \"second\", \"millisecond\"],\n orderedWeekUnits = [\n \"weekYear\",\n \"weekNumber\",\n \"weekday\",\n \"hour\",\n \"minute\",\n \"second\",\n \"millisecond\",\n ],\n orderedOrdinalUnits = [\"year\", \"ordinal\", \"hour\", \"minute\", \"second\", \"millisecond\"];\n\n// standardize case and plurality in units\nfunction normalizeUnit(unit) {\n const normalized = {\n year: \"year\",\n years: \"year\",\n month: \"month\",\n months: \"month\",\n day: \"day\",\n days: \"day\",\n hour: \"hour\",\n hours: \"hour\",\n minute: \"minute\",\n minutes: \"minute\",\n quarter: \"quarter\",\n quarters: \"quarter\",\n second: \"second\",\n seconds: \"second\",\n millisecond: \"millisecond\",\n milliseconds: \"millisecond\",\n weekday: \"weekday\",\n weekdays: \"weekday\",\n weeknumber: \"weekNumber\",\n weeksnumber: \"weekNumber\",\n weeknumbers: \"weekNumber\",\n weekyear: \"weekYear\",\n weekyears: \"weekYear\",\n ordinal: \"ordinal\",\n }[unit.toLowerCase()];\n\n if (!normalized) throw new InvalidUnitError(unit);\n\n return normalized;\n}\n\nfunction normalizeUnitWithLocalWeeks(unit) {\n switch (unit.toLowerCase()) {\n case \"localweekday\":\n case \"localweekdays\":\n return \"localWeekday\";\n case \"localweeknumber\":\n case \"localweeknumbers\":\n return \"localWeekNumber\";\n case \"localweekyear\":\n case \"localweekyears\":\n return \"localWeekYear\";\n default:\n return normalizeUnit(unit);\n }\n}\n\n// cache offsets for zones based on the current timestamp when this function is\n// first called. When we are handling a datetime from components like (year,\n// month, day, hour) in a time zone, we need a guess about what the timezone\n// offset is so that we can convert into a UTC timestamp. One way is to find the\n// offset of now in the zone. The actual date may have a different offset (for\n// example, if we handle a date in June while we're in December in a zone that\n// observes DST), but we can check and adjust that.\n//\n// When handling many dates, calculating the offset for now every time is\n// expensive. It's just a guess, so we can cache the offset to use even if we\n// are right on a time change boundary (we'll just correct in the other\n// direction). Using a timestamp from first read is a slight optimization for\n// handling dates close to the current date, since those dates will usually be\n// in the same offset (we could set the timestamp statically, instead). We use a\n// single timestamp for all zones to make things a bit more predictable.\n//\n// This is safe for quickDT (used by local() and utc()) because we don't fill in\n// higher-order units from tsNow (as we do in fromObject, this requires that\n// offset is calculated from tsNow).\n/**\n * @param {Zone} zone\n * @return {number}\n */\nfunction guessOffsetForZone(zone) {\n if (zoneOffsetTs === undefined) {\n zoneOffsetTs = Settings.now();\n }\n\n // Do not cache anything but IANA zones, because it is not safe to do so.\n // Guessing an offset which is not present in the zone can cause wrong results from fixOffset\n if (zone.type !== \"iana\") {\n return zone.offset(zoneOffsetTs);\n }\n const zoneName = zone.name;\n let offsetGuess = zoneOffsetGuessCache.get(zoneName);\n if (offsetGuess === undefined) {\n offsetGuess = zone.offset(zoneOffsetTs);\n zoneOffsetGuessCache.set(zoneName, offsetGuess);\n }\n return offsetGuess;\n}\n\n// this is a dumbed down version of fromObject() that runs about 60% faster\n// but doesn't do any validation, makes a bunch of assumptions about what units\n// are present, and so on.\nfunction quickDT(obj, opts) {\n const zone = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n }\n\n const loc = Locale.fromObject(opts);\n\n let ts, o;\n\n // assume we have the higher-order units\n if (!isUndefined(obj.year)) {\n for (const u of orderedUnits) {\n if (isUndefined(obj[u])) {\n obj[u] = defaultUnitValues[u];\n }\n }\n\n const invalid = hasInvalidGregorianData(obj) || hasInvalidTimeData(obj);\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n const offsetProvis = guessOffsetForZone(zone);\n [ts, o] = objToTS(obj, offsetProvis, zone);\n } else {\n ts = Settings.now();\n }\n\n return new DateTime({ ts, zone, loc, o });\n}\n\nfunction diffRelative(start, end, opts) {\n const round = isUndefined(opts.round) ? true : opts.round,\n rounding = isUndefined(opts.rounding) ? \"trunc\" : opts.rounding,\n format = (c, unit) => {\n c = roundTo(c, round || opts.calendary ? 0 : 2, opts.calendary ? \"round\" : rounding);\n const formatter = end.loc.clone(opts).relFormatter(opts);\n return formatter.format(c, unit);\n },\n differ = (unit) => {\n if (opts.calendary) {\n if (!end.hasSame(start, unit)) {\n return end.startOf(unit).diff(start.startOf(unit), unit).get(unit);\n } else return 0;\n } else {\n return end.diff(start, unit).get(unit);\n }\n };\n\n if (opts.unit) {\n return format(differ(opts.unit), opts.unit);\n }\n\n for (const unit of opts.units) {\n const count = differ(unit);\n if (Math.abs(count) >= 1) {\n return format(count, unit);\n }\n }\n return format(start > end ? -0 : 0, opts.units[opts.units.length - 1]);\n}\n\nfunction lastOpts(argList) {\n let opts = {},\n args;\n if (argList.length > 0 && typeof argList[argList.length - 1] === \"object\") {\n opts = argList[argList.length - 1];\n args = Array.from(argList).slice(0, argList.length - 1);\n } else {\n args = Array.from(argList);\n }\n return [opts, args];\n}\n\n/**\n * Timestamp to use for cached zone offset guesses (exposed for test)\n */\nlet zoneOffsetTs;\n/**\n * Cache for zone offset guesses (exposed for test).\n *\n * This optimizes quickDT via guessOffsetForZone to avoid repeated calls of\n * zone.offset().\n */\nconst zoneOffsetGuessCache = new Map();\n\n/**\n * A DateTime is an immutable data structure representing a specific date and time and accompanying methods. It contains class and instance methods for creating, parsing, interrogating, transforming, and formatting them.\n *\n * A DateTime comprises of:\n * * A timestamp. Each DateTime instance refers to a specific millisecond of the Unix epoch.\n * * A time zone. Each instance is considered in the context of a specific zone (by default the local system's zone).\n * * Configuration properties that effect how output strings are formatted, such as `locale`, `numberingSystem`, and `outputCalendar`.\n *\n * Here is a brief overview of the most commonly used functionality it provides:\n *\n * * **Creation**: To create a DateTime from its components, use one of its factory class methods: {@link DateTime.local}, {@link DateTime.utc}, and (most flexibly) {@link DateTime.fromObject}. To create one from a standard string format, use {@link DateTime.fromISO}, {@link DateTime.fromHTTP}, and {@link DateTime.fromRFC2822}. To create one from a custom string format, use {@link DateTime.fromFormat}. To create one from a native JS date, use {@link DateTime.fromJSDate}.\n * * **Gregorian calendar and time**: To examine the Gregorian properties of a DateTime individually (i.e as opposed to collectively through {@link DateTime#toObject}), use the {@link DateTime#year}, {@link DateTime#month},\n * {@link DateTime#day}, {@link DateTime#hour}, {@link DateTime#minute}, {@link DateTime#second}, {@link DateTime#millisecond} accessors.\n * * **Week calendar**: For ISO week calendar attributes, see the {@link DateTime#weekYear}, {@link DateTime#weekNumber}, and {@link DateTime#weekday} accessors.\n * * **Configuration** See the {@link DateTime#locale} and {@link DateTime#numberingSystem} accessors.\n * * **Transformation**: To transform the DateTime into other DateTimes, use {@link DateTime#set}, {@link DateTime#reconfigure}, {@link DateTime#setZone}, {@link DateTime#setLocale}, {@link DateTime.plus}, {@link DateTime#minus}, {@link DateTime#endOf}, {@link DateTime#startOf}, {@link DateTime#toUTC}, and {@link DateTime#toLocal}.\n * * **Output**: To convert the DateTime to other representations, use the {@link DateTime#toRelative}, {@link DateTime#toRelativeCalendar}, {@link DateTime#toJSON}, {@link DateTime#toISO}, {@link DateTime#toHTTP}, {@link DateTime#toObject}, {@link DateTime#toRFC2822}, {@link DateTime#toString}, {@link DateTime#toLocaleString}, {@link DateTime#toFormat}, {@link DateTime#toMillis} and {@link DateTime#toJSDate}.\n *\n * There's plenty others documented below. In addition, for more information on subtler topics like internationalization, time zones, alternative calendars, validity, and so on, see the external documentation.\n */\nclass DateTime {\n /**\n * @access private\n */\n constructor(config) {\n const zone = config.zone || Settings.defaultZone;\n\n let invalid =\n config.invalid ||\n (Number.isNaN(config.ts) ? new Invalid(\"invalid input\") : null) ||\n (!zone.isValid ? unsupportedZone(zone) : null);\n /**\n * @access private\n */\n this.ts = isUndefined(config.ts) ? Settings.now() : config.ts;\n\n let c = null,\n o = null;\n if (!invalid) {\n const unchanged = config.old && config.old.ts === this.ts && config.old.zone.equals(zone);\n\n if (unchanged) {\n [c, o] = [config.old.c, config.old.o];\n } else {\n // If an offset has been passed and we have not been called from\n // clone(), we can trust it and avoid the offset calculation.\n const ot = isNumber(config.o) && !config.old ? config.o : zone.offset(this.ts);\n c = tsToObj(this.ts, ot);\n invalid = Number.isNaN(c.year) ? new Invalid(\"invalid input\") : null;\n c = invalid ? null : c;\n o = invalid ? null : ot;\n }\n }\n\n /**\n * @access private\n */\n this._zone = zone;\n /**\n * @access private\n */\n this.loc = config.loc || Locale.create();\n /**\n * @access private\n */\n this.invalid = invalid;\n /**\n * @access private\n */\n this.weekData = null;\n /**\n * @access private\n */\n this.localWeekData = null;\n /**\n * @access private\n */\n this.c = c;\n /**\n * @access private\n */\n this.o = o;\n /**\n * @access private\n */\n this.isLuxonDateTime = true;\n }\n\n // CONSTRUCT\n\n /**\n * Create a DateTime for the current instant, in the system's time zone.\n *\n * Use Settings to override these default values if needed.\n * @example DateTime.now().toISO() //~> now in the ISO format\n * @return {DateTime}\n */\n static now() {\n return new DateTime({});\n }\n\n /**\n * Create a local DateTime\n * @param {number} [year] - The calendar year. If omitted (as in, call `local()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month, 1-indexed\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @example DateTime.local() //~> now\n * @example DateTime.local({ zone: \"America/New_York\" }) //~> now, in US east coast time\n * @example DateTime.local(2017) //~> 2017-01-01T00:00:00\n * @example DateTime.local(2017, 3) //~> 2017-03-01T00:00:00\n * @example DateTime.local(2017, 3, 12, { locale: \"fr\" }) //~> 2017-03-12T00:00:00, with a French locale\n * @example DateTime.local(2017, 3, 12, 5) //~> 2017-03-12T05:00:00\n * @example DateTime.local(2017, 3, 12, 5, { zone: \"utc\" }) //~> 2017-03-12T05:00:00, in UTC\n * @example DateTime.local(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00\n * @example DateTime.local(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10\n * @example DateTime.local(2017, 3, 12, 5, 45, 10, 765) //~> 2017-03-12T05:45:10.765\n * @return {DateTime}\n */\n static local() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime in UTC\n * @param {number} [year] - The calendar year. If omitted (as in, call `utc()` with no arguments), the current time will be used\n * @param {number} [month=1] - The month, 1-indexed\n * @param {number} [day=1] - The day of the month\n * @param {number} [hour=0] - The hour of the day, in 24-hour time\n * @param {number} [minute=0] - The minute of the hour, meaning a number between 0 and 59\n * @param {number} [second=0] - The second of the minute, meaning a number between 0 and 59\n * @param {number} [millisecond=0] - The millisecond of the second, meaning a number between 0 and 999\n * @param {Object} options - configuration options for the DateTime\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} [options.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [options.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @param {string} [options.weekSettings] - the week settings to set on the resulting DateTime instance\n * @example DateTime.utc() //~> now\n * @example DateTime.utc(2017) //~> 2017-01-01T00:00:00Z\n * @example DateTime.utc(2017, 3) //~> 2017-03-01T00:00:00Z\n * @example DateTime.utc(2017, 3, 12) //~> 2017-03-12T00:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5) //~> 2017-03-12T05:00:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45) //~> 2017-03-12T05:45:00Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, { locale: \"fr\" }) //~> 2017-03-12T05:45:00Z with a French locale\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10) //~> 2017-03-12T05:45:10Z\n * @example DateTime.utc(2017, 3, 12, 5, 45, 10, 765, { locale: \"fr\" }) //~> 2017-03-12T05:45:10.765Z with a French locale\n * @return {DateTime}\n */\n static utc() {\n const [opts, args] = lastOpts(arguments),\n [year, month, day, hour, minute, second, millisecond] = args;\n\n opts.zone = FixedOffsetZone.utcInstance;\n return quickDT({ year, month, day, hour, minute, second, millisecond }, opts);\n }\n\n /**\n * Create a DateTime from a JavaScript Date object. Uses the default zone.\n * @param {Date} date - a JavaScript Date object\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @return {DateTime}\n */\n static fromJSDate(date, options = {}) {\n const ts = isDate(date) ? date.valueOf() : NaN;\n if (Number.isNaN(ts)) {\n return DateTime.invalid(\"invalid input\");\n }\n\n const zoneToUse = normalizeZone(options.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n return new DateTime({\n ts: ts,\n zone: zoneToUse,\n loc: Locale.fromObject(options),\n });\n }\n\n /**\n * Create a DateTime from a number of milliseconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} milliseconds - a number of milliseconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromMillis(milliseconds, options = {}) {\n if (!isNumber(milliseconds)) {\n throw new InvalidArgumentError(\n `fromMillis requires a numerical input, but received a ${typeof milliseconds} with value ${milliseconds}`\n );\n } else if (milliseconds < -MAX_DATE || milliseconds > MAX_DATE) {\n // this isn't perfect because we can still end up out of range because of additional shifting, but it's a start\n return DateTime.invalid(\"Timestamp out of range\");\n } else {\n return new DateTime({\n ts: milliseconds,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a number of seconds since the epoch (meaning since 1 January 1970 00:00:00 UTC). Uses the default zone.\n * @param {number} seconds - a number of seconds since 1970 UTC\n * @param {Object} options - configuration options for the DateTime\n * @param {string|Zone} [options.zone='local'] - the zone to place the DateTime into\n * @param {string} [options.locale] - a locale to set on the resulting DateTime instance\n * @param {string} options.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} options.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} options.weekSettings - the week settings to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromSeconds(seconds, options = {}) {\n if (!isNumber(seconds)) {\n throw new InvalidArgumentError(\"fromSeconds requires a numerical input\");\n } else {\n return new DateTime({\n ts: seconds * 1000,\n zone: normalizeZone(options.zone, Settings.defaultZone),\n loc: Locale.fromObject(options),\n });\n }\n }\n\n /**\n * Create a DateTime from a JavaScript object with keys like 'year' and 'hour' with reasonable defaults.\n * @param {Object} obj - the object to create the DateTime from\n * @param {number} obj.year - a year, such as 1987\n * @param {number} obj.month - a month, 1-12\n * @param {number} obj.day - a day of the month, 1-31, depending on the month\n * @param {number} obj.ordinal - day of the year, 1-365 or 366\n * @param {number} obj.weekYear - an ISO week year\n * @param {number} obj.weekNumber - an ISO week number, between 1 and 52 or 53, depending on the year\n * @param {number} obj.weekday - an ISO weekday, 1-7, where 1 is Monday and 7 is Sunday\n * @param {number} obj.localWeekYear - a week year, according to the locale\n * @param {number} obj.localWeekNumber - a week number, between 1 and 52 or 53, depending on the year, according to the locale\n * @param {number} obj.localWeekday - a weekday, 1-7, where 1 is the first and 7 is the last day of the week, according to the locale\n * @param {number} obj.hour - hour of the day, 0-23\n * @param {number} obj.minute - minute of the hour, 0-59\n * @param {number} obj.second - second of the minute, 0-59\n * @param {number} obj.millisecond - millisecond of the second, 0-999\n * @param {Object} opts - options for creating this DateTime\n * @param {string|Zone} [opts.zone='local'] - interpret the numbers in the context of a particular zone. Can take any value taken as the first argument to setZone()\n * @param {string} [opts.locale='system\\'s locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromObject({ year: 1982, month: 5, day: 25}).toISODate() //=> '1982-05-25'\n * @example DateTime.fromObject({ year: 1982 }).toISODate() //=> '1982-01-01'\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }) //~> today at 10:26:06\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'utc' }),\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'local' })\n * @example DateTime.fromObject({ hour: 10, minute: 26, second: 6 }, { zone: 'America/New_York' })\n * @example DateTime.fromObject({ weekYear: 2016, weekNumber: 2, weekday: 3 }).toISODate() //=> '2016-01-13'\n * @example DateTime.fromObject({ localWeekYear: 2022, localWeekNumber: 1, localWeekday: 1 }, { locale: \"en-US\" }).toISODate() //=> '2021-12-26'\n * @return {DateTime}\n */\n static fromObject(obj, opts = {}) {\n obj = obj || {};\n const zoneToUse = normalizeZone(opts.zone, Settings.defaultZone);\n if (!zoneToUse.isValid) {\n return DateTime.invalid(unsupportedZone(zoneToUse));\n }\n\n const loc = Locale.fromObject(opts);\n const normalized = normalizeObject(obj, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, loc);\n\n const tsNow = Settings.now(),\n offsetProvis = !isUndefined(opts.specificOffset)\n ? opts.specificOffset\n : zoneToUse.offset(tsNow),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n // cases:\n // just a weekday -> this week's instance of that weekday, no worries\n // (gregorian data or ordinal) + (weekYear or weekNumber) -> error\n // (gregorian month or day) + ordinal -> error\n // otherwise just use weeks or ordinals or gregorian, depending on what's specified\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n const useWeekData = definiteWeekDef || (normalized.weekday && !containsGregor);\n\n // configure ourselves to deal with gregorian dates or week stuff\n let units,\n defaultValues,\n objNow = tsToObj(tsNow, offsetProvis);\n if (useWeekData) {\n units = orderedWeekUnits;\n defaultValues = defaultWeekUnitValues;\n objNow = gregorianToWeek(objNow, minDaysInFirstWeek, startOfWeek);\n } else if (containsOrdinal) {\n units = orderedOrdinalUnits;\n defaultValues = defaultOrdinalUnitValues;\n objNow = gregorianToOrdinal(objNow);\n } else {\n units = orderedUnits;\n defaultValues = defaultUnitValues;\n }\n\n // set default values for missing stuff\n let foundFirst = false;\n for (const u of units) {\n const v = normalized[u];\n if (!isUndefined(v)) {\n foundFirst = true;\n } else if (foundFirst) {\n normalized[u] = defaultValues[u];\n } else {\n normalized[u] = objNow[u];\n }\n }\n\n // make sure the values we have are in range\n const higherOrderInvalid = useWeekData\n ? hasInvalidWeekData(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? hasInvalidOrdinalData(normalized)\n : hasInvalidGregorianData(normalized),\n invalid = higherOrderInvalid || hasInvalidTimeData(normalized);\n\n if (invalid) {\n return DateTime.invalid(invalid);\n }\n\n // compute the actual time\n const gregorian = useWeekData\n ? weekToGregorian(normalized, minDaysInFirstWeek, startOfWeek)\n : containsOrdinal\n ? ordinalToGregorian(normalized)\n : normalized,\n [tsFinal, offsetFinal] = objToTS(gregorian, offsetProvis, zoneToUse),\n inst = new DateTime({\n ts: tsFinal,\n zone: zoneToUse,\n o: offsetFinal,\n loc,\n });\n\n // gregorian data + weekday serves only to validate\n if (normalized.weekday && containsGregor && obj.weekday !== inst.weekday) {\n return DateTime.invalid(\n \"mismatched weekday\",\n `you can't specify both a weekday of ${normalized.weekday} and a date of ${inst.toISO()}`\n );\n }\n\n if (!inst.isValid) {\n return DateTime.invalid(inst.invalid);\n }\n\n return inst;\n }\n\n /**\n * Create a DateTime from an ISO 8601 string\n * @param {string} text - the ISO string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the time to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} [opts.outputCalendar] - the output calendar to set on the resulting DateTime instance\n * @param {string} [opts.numberingSystem] - the numbering system to set on the resulting DateTime instance\n * @param {string} [opts.weekSettings] - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromISO('2016-05-25T09:08:34.123')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00')\n * @example DateTime.fromISO('2016-05-25T09:08:34.123+06:00', {setZone: true})\n * @example DateTime.fromISO('2016-05-25T09:08:34.123', {zone: 'utc'})\n * @example DateTime.fromISO('2016-W05-4')\n * @return {DateTime}\n */\n static fromISO(text, opts = {}) {\n const [vals, parsedZone] = parseISODate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"ISO 8601\", text);\n }\n\n /**\n * Create a DateTime from an RFC 2822 string\n * @param {string} text - the RFC 2822 string\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since the offset is always specified in the string itself, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with a fixed-offset zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23:12 GMT')\n * @example DateTime.fromRFC2822('Fri, 25 Nov 2016 13:23:12 +0600')\n * @example DateTime.fromRFC2822('25 Nov 2016 13:23 Z')\n * @return {DateTime}\n */\n static fromRFC2822(text, opts = {}) {\n const [vals, parsedZone] = parseRFC2822Date(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"RFC 2822\", text);\n }\n\n /**\n * Create a DateTime from an HTTP header date\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @param {string} text - the HTTP header date\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - convert the time to this zone. Since HTTP dates are always in UTC, this has no effect on the interpretation of string, merely the zone the resulting DateTime is expressed in.\n * @param {boolean} [opts.setZone=false] - override the zone with the fixed-offset zone specified in the string. For HTTP dates, this is always UTC, so this option is equivalent to setting the `zone` option to 'utc', but this option is included for consistency with similar methods.\n * @param {string} [opts.locale='system's locale'] - a locale to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @param {string} opts.numberingSystem - the numbering system to set on the resulting DateTime instance\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @example DateTime.fromHTTP('Sun, 06 Nov 1994 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sunday, 06-Nov-94 08:49:37 GMT')\n * @example DateTime.fromHTTP('Sun Nov 6 08:49:37 1994')\n * @return {DateTime}\n */\n static fromHTTP(text, opts = {}) {\n const [vals, parsedZone] = parseHTTPDate(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"HTTP\", opts);\n }\n\n /**\n * Create a DateTime from an input string and format string.\n * Defaults to en-US if no locale has been specified, regardless of the system's locale. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/parsing?id=table-of-tokens).\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see the link below for the formats)\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @return {DateTime}\n */\n static fromFormat(text, fmt, opts = {}) {\n if (isUndefined(text) || isUndefined(fmt)) {\n throw new InvalidArgumentError(\"fromFormat requires an input string and a format\");\n }\n\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n }),\n [vals, parsedZone, specificOffset, invalid] = parseFromTokens(localeToUse, text, fmt);\n if (invalid) {\n return DateTime.invalid(invalid);\n } else {\n return parseDataToDateTime(vals, parsedZone, opts, `format ${fmt}`, text, specificOffset);\n }\n }\n\n /**\n * @deprecated use fromFormat instead\n */\n static fromString(text, fmt, opts = {}) {\n return DateTime.fromFormat(text, fmt, opts);\n }\n\n /**\n * Create a DateTime from a SQL date, time, or datetime\n * Defaults to en-US if no locale has been specified, regardless of the system's locale\n * @param {string} text - the string to parse\n * @param {Object} opts - options to affect the creation\n * @param {string|Zone} [opts.zone='local'] - use this zone if no offset is specified in the input string itself. Will also convert the DateTime to this zone\n * @param {boolean} [opts.setZone=false] - override the zone with a zone specified in the string itself, if it specifies one\n * @param {string} [opts.locale='en-US'] - a locale string to use when parsing. Will also set the DateTime to this locale\n * @param {string} opts.numberingSystem - the numbering system to use when parsing. Will also set the resulting DateTime to this numbering system\n * @param {string} opts.weekSettings - the week settings to set on the resulting DateTime instance\n * @param {string} opts.outputCalendar - the output calendar to set on the resulting DateTime instance\n * @example DateTime.fromSQL('2017-05-15')\n * @example DateTime.fromSQL('2017-05-15 09:12:34')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342+06:00')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles')\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342 America/Los_Angeles', { setZone: true })\n * @example DateTime.fromSQL('2017-05-15 09:12:34.342', { zone: 'America/Los_Angeles' })\n * @example DateTime.fromSQL('09:12:34.342')\n * @return {DateTime}\n */\n static fromSQL(text, opts = {}) {\n const [vals, parsedZone] = parseSQL(text);\n return parseDataToDateTime(vals, parsedZone, opts, \"SQL\", text);\n }\n\n /**\n * Create an invalid DateTime.\n * @param {string} reason - simple string of why this DateTime is invalid. Should not contain parameters or anything else data-dependent.\n * @param {string} [explanation=null] - longer explanation, may include parameters and other useful debugging information\n * @return {DateTime}\n */\n static invalid(reason, explanation = null) {\n if (!reason) {\n throw new InvalidArgumentError(\"need to specify a reason the DateTime is invalid\");\n }\n\n const invalid = reason instanceof Invalid ? reason : new Invalid(reason, explanation);\n\n if (Settings.throwOnInvalid) {\n throw new InvalidDateTimeError(invalid);\n } else {\n return new DateTime({ invalid });\n }\n }\n\n /**\n * Check if an object is an instance of DateTime. Works across context boundaries\n * @param {object} o\n * @return {boolean}\n */\n static isDateTime(o) {\n return (o && o.isLuxonDateTime) || false;\n }\n\n /**\n * Produce the format string for a set of options\n * @param formatOpts\n * @param localeOpts\n * @returns {string}\n */\n static parseFormatForOpts(formatOpts, localeOpts = {}) {\n const tokenList = formatOptsToTokens(formatOpts, Locale.fromObject(localeOpts));\n return !tokenList ? null : tokenList.map((t) => (t ? t.val : null)).join(\"\");\n }\n\n /**\n * Produce the the fully expanded format token for the locale\n * Does NOT quote characters, so quoted tokens will not round trip correctly\n * @param fmt\n * @param localeOpts\n * @returns {string}\n */\n static expandFormat(fmt, localeOpts = {}) {\n const expanded = expandMacroTokens(Formatter.parseFormat(fmt), Locale.fromObject(localeOpts));\n return expanded.map((t) => t.val).join(\"\");\n }\n\n static resetCache() {\n zoneOffsetTs = undefined;\n zoneOffsetGuessCache.clear();\n }\n\n // INFO\n\n /**\n * Get the value of unit.\n * @param {string} unit - a unit such as 'minute' or 'day'\n * @example DateTime.local(2017, 7, 4).get('month'); //=> 7\n * @example DateTime.local(2017, 7, 4).get('day'); //=> 4\n * @return {number}\n */\n get(unit) {\n return this[unit];\n }\n\n /**\n * Returns whether the DateTime is valid. Invalid DateTimes occur when:\n * * The DateTime was created from invalid calendar information, such as the 13th month or February 30\n * * The DateTime was created by an operation on another invalid date\n * @type {boolean}\n */\n get isValid() {\n return this.invalid === null;\n }\n\n /**\n * Returns an error code if this DateTime is invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidReason() {\n return this.invalid ? this.invalid.reason : null;\n }\n\n /**\n * Returns an explanation of why this DateTime became invalid, or null if the DateTime is valid\n * @type {string}\n */\n get invalidExplanation() {\n return this.invalid ? this.invalid.explanation : null;\n }\n\n /**\n * Get the locale of a DateTime, such 'en-GB'. The locale is used when formatting the DateTime\n *\n * @type {string}\n */\n get locale() {\n return this.isValid ? this.loc.locale : null;\n }\n\n /**\n * Get the numbering system of a DateTime, such 'beng'. The numbering system is used when formatting the DateTime\n *\n * @type {string}\n */\n get numberingSystem() {\n return this.isValid ? this.loc.numberingSystem : null;\n }\n\n /**\n * Get the output calendar of a DateTime, such 'islamic'. The output calendar is used when formatting the DateTime\n *\n * @type {string}\n */\n get outputCalendar() {\n return this.isValid ? this.loc.outputCalendar : null;\n }\n\n /**\n * Get the time zone associated with this DateTime.\n * @type {Zone}\n */\n get zone() {\n return this._zone;\n }\n\n /**\n * Get the name of the time zone.\n * @type {string}\n */\n get zoneName() {\n return this.isValid ? this.zone.name : null;\n }\n\n /**\n * Get the year\n * @example DateTime.local(2017, 5, 25).year //=> 2017\n * @type {number}\n */\n get year() {\n return this.isValid ? this.c.year : NaN;\n }\n\n /**\n * Get the quarter\n * @example DateTime.local(2017, 5, 25).quarter //=> 2\n * @type {number}\n */\n get quarter() {\n return this.isValid ? Math.ceil(this.c.month / 3) : NaN;\n }\n\n /**\n * Get the month (1-12).\n * @example DateTime.local(2017, 5, 25).month //=> 5\n * @type {number}\n */\n get month() {\n return this.isValid ? this.c.month : NaN;\n }\n\n /**\n * Get the day of the month (1-30ish).\n * @example DateTime.local(2017, 5, 25).day //=> 25\n * @type {number}\n */\n get day() {\n return this.isValid ? this.c.day : NaN;\n }\n\n /**\n * Get the hour of the day (0-23).\n * @example DateTime.local(2017, 5, 25, 9).hour //=> 9\n * @type {number}\n */\n get hour() {\n return this.isValid ? this.c.hour : NaN;\n }\n\n /**\n * Get the minute of the hour (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30).minute //=> 30\n * @type {number}\n */\n get minute() {\n return this.isValid ? this.c.minute : NaN;\n }\n\n /**\n * Get the second of the minute (0-59).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52).second //=> 52\n * @type {number}\n */\n get second() {\n return this.isValid ? this.c.second : NaN;\n }\n\n /**\n * Get the millisecond of the second (0-999).\n * @example DateTime.local(2017, 5, 25, 9, 30, 52, 654).millisecond //=> 654\n * @type {number}\n */\n get millisecond() {\n return this.isValid ? this.c.millisecond : NaN;\n }\n\n /**\n * Get the week year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 12, 31).weekYear //=> 2015\n * @type {number}\n */\n get weekYear() {\n return this.isValid ? possiblyCachedWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the week number of the week year (1-52ish).\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2017, 5, 25).weekNumber //=> 21\n * @type {number}\n */\n get weekNumber() {\n return this.isValid ? possiblyCachedWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the day of the week.\n * 1 is Monday and 7 is Sunday\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2014, 11, 31).weekday //=> 4\n * @type {number}\n */\n get weekday() {\n return this.isValid ? possiblyCachedWeekData(this).weekday : NaN;\n }\n\n /**\n * Returns true if this date is on a weekend according to the locale, false otherwise\n * @returns {boolean}\n */\n get isWeekend() {\n return this.isValid && this.loc.getWeekendDays().includes(this.weekday);\n }\n\n /**\n * Get the day of the week according to the locale.\n * 1 is the first day of the week and 7 is the last day of the week.\n * If the locale assigns Sunday as the first day of the week, then a date which is a Sunday will return 1,\n * @returns {number}\n */\n get localWeekday() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekday : NaN;\n }\n\n /**\n * Get the week number of the week year according to the locale. Different locales assign week numbers differently,\n * because the week can start on different days of the week (see localWeekday) and because a different number of days\n * is required for a week to count as the first week of a year.\n * @returns {number}\n */\n get localWeekNumber() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekNumber : NaN;\n }\n\n /**\n * Get the week year according to the locale. Different locales assign week numbers (and therefor week years)\n * differently, see localWeekNumber.\n * @returns {number}\n */\n get localWeekYear() {\n return this.isValid ? possiblyCachedLocalWeekData(this).weekYear : NaN;\n }\n\n /**\n * Get the ordinal (meaning the day of the year)\n * @example DateTime.local(2017, 5, 25).ordinal //=> 145\n * @type {number|DateTime}\n */\n get ordinal() {\n return this.isValid ? gregorianToOrdinal(this.c).ordinal : NaN;\n }\n\n /**\n * Get the human readable short month name, such as 'Oct'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthShort //=> Oct\n * @type {string}\n */\n get monthShort() {\n return this.isValid ? Info.months(\"short\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable long month name, such as 'October'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).monthLong //=> October\n * @type {string}\n */\n get monthLong() {\n return this.isValid ? Info.months(\"long\", { locObj: this.loc })[this.month - 1] : null;\n }\n\n /**\n * Get the human readable short weekday, such as 'Mon'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayShort //=> Mon\n * @type {string}\n */\n get weekdayShort() {\n return this.isValid ? Info.weekdays(\"short\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the human readable long weekday, such as 'Monday'.\n * Defaults to the system's locale if no locale has been specified\n * @example DateTime.local(2017, 10, 30).weekdayLong //=> Monday\n * @type {string}\n */\n get weekdayLong() {\n return this.isValid ? Info.weekdays(\"long\", { locObj: this.loc })[this.weekday - 1] : null;\n }\n\n /**\n * Get the UTC offset of this DateTime in minutes\n * @example DateTime.now().offset //=> -240\n * @example DateTime.utc().offset //=> 0\n * @type {number}\n */\n get offset() {\n return this.isValid ? +this.o : NaN;\n }\n\n /**\n * Get the short human name for the zone's current offset, for example \"EST\" or \"EDT\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameShort() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"short\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get the long human name for the zone's current offset, for example \"Eastern Standard Time\" or \"Eastern Daylight Time\".\n * Defaults to the system's locale if no locale has been specified\n * @type {string}\n */\n get offsetNameLong() {\n if (this.isValid) {\n return this.zone.offsetName(this.ts, {\n format: \"long\",\n locale: this.locale,\n });\n } else {\n return null;\n }\n }\n\n /**\n * Get whether this zone's offset ever changes, as in a DST.\n * @type {boolean}\n */\n get isOffsetFixed() {\n return this.isValid ? this.zone.isUniversal : null;\n }\n\n /**\n * Get whether the DateTime is in a DST.\n * @type {boolean}\n */\n get isInDST() {\n if (this.isOffsetFixed) {\n return false;\n } else {\n return (\n this.offset > this.set({ month: 1, day: 1 }).offset ||\n this.offset > this.set({ month: 5 }).offset\n );\n }\n }\n\n /**\n * Get those DateTimes which have the same local time as this DateTime, but a different offset from UTC\n * in this DateTime's zone. During DST changes local time can be ambiguous, for example\n * `2023-10-29T02:30:00` in `Europe/Berlin` can have offset `+01:00` or `+02:00`.\n * This method will return both possible DateTimes if this DateTime's local time is ambiguous.\n * @returns {DateTime[]}\n */\n getPossibleOffsets() {\n if (!this.isValid || this.isOffsetFixed) {\n return [this];\n }\n const dayMs = 86400000;\n const minuteMs = 60000;\n const localTS = objToLocalTS(this.c);\n const oEarlier = this.zone.offset(localTS - dayMs);\n const oLater = this.zone.offset(localTS + dayMs);\n\n const o1 = this.zone.offset(localTS - oEarlier * minuteMs);\n const o2 = this.zone.offset(localTS - oLater * minuteMs);\n if (o1 === o2) {\n return [this];\n }\n const ts1 = localTS - o1 * minuteMs;\n const ts2 = localTS - o2 * minuteMs;\n const c1 = tsToObj(ts1, o1);\n const c2 = tsToObj(ts2, o2);\n if (\n c1.hour === c2.hour &&\n c1.minute === c2.minute &&\n c1.second === c2.second &&\n c1.millisecond === c2.millisecond\n ) {\n return [clone(this, { ts: ts1 }), clone(this, { ts: ts2 })];\n }\n return [this];\n }\n\n /**\n * Returns true if this DateTime is in a leap year, false otherwise\n * @example DateTime.local(2016).isInLeapYear //=> true\n * @example DateTime.local(2013).isInLeapYear //=> false\n * @type {boolean}\n */\n get isInLeapYear() {\n return isLeapYear(this.year);\n }\n\n /**\n * Returns the number of days in this DateTime's month\n * @example DateTime.local(2016, 2).daysInMonth //=> 29\n * @example DateTime.local(2016, 3).daysInMonth //=> 31\n * @type {number}\n */\n get daysInMonth() {\n return daysInMonth(this.year, this.month);\n }\n\n /**\n * Returns the number of days in this DateTime's year\n * @example DateTime.local(2016).daysInYear //=> 366\n * @example DateTime.local(2013).daysInYear //=> 365\n * @type {number}\n */\n get daysInYear() {\n return this.isValid ? daysInYear(this.year) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's year\n * @see https://en.wikipedia.org/wiki/ISO_week_date\n * @example DateTime.local(2004).weeksInWeekYear //=> 53\n * @example DateTime.local(2013).weeksInWeekYear //=> 52\n * @type {number}\n */\n get weeksInWeekYear() {\n return this.isValid ? weeksInWeekYear(this.weekYear) : NaN;\n }\n\n /**\n * Returns the number of weeks in this DateTime's local week year\n * @example DateTime.local(2020, 6, {locale: 'en-US'}).weeksInLocalWeekYear //=> 52\n * @example DateTime.local(2020, 6, {locale: 'de-DE'}).weeksInLocalWeekYear //=> 53\n * @type {number}\n */\n get weeksInLocalWeekYear() {\n return this.isValid\n ? weeksInWeekYear(\n this.localWeekYear,\n this.loc.getMinDaysInFirstWeek(),\n this.loc.getStartOfWeek()\n )\n : NaN;\n }\n\n /**\n * Returns the resolved Intl options for this DateTime.\n * This is useful in understanding the behavior of formatting methods\n * @param {Object} opts - the same options as toLocaleString\n * @return {Object}\n */\n resolvedLocaleOptions(opts = {}) {\n const { locale, numberingSystem, calendar } = Formatter.create(\n this.loc.clone(opts),\n opts\n ).resolvedOptions(this);\n return { locale, numberingSystem, outputCalendar: calendar };\n }\n\n // TRANSFORM\n\n /**\n * \"Set\" the DateTime's zone to UTC. Returns a newly-constructed DateTime.\n *\n * Equivalent to {@link DateTime#setZone}('utc')\n * @param {number} [offset=0] - optionally, an offset from UTC in minutes\n * @param {Object} [opts={}] - options to pass to `setZone()`\n * @return {DateTime}\n */\n toUTC(offset = 0, opts = {}) {\n return this.setZone(FixedOffsetZone.instance(offset), opts);\n }\n\n /**\n * \"Set\" the DateTime's zone to the host's local zone. Returns a newly-constructed DateTime.\n *\n * Equivalent to `setZone('local')`\n * @return {DateTime}\n */\n toLocal() {\n return this.setZone(Settings.defaultZone);\n }\n\n /**\n * \"Set\" the DateTime's zone to specified zone. Returns a newly-constructed DateTime.\n *\n * By default, the setter keeps the underlying time the same (as in, the same timestamp), but the new instance will report different local times and consider DSTs when making computations, as with {@link DateTime#plus}. You may wish to use {@link DateTime#toLocal} and {@link DateTime#toUTC} which provide simple convenience wrappers for commonly used zones.\n * @param {string|Zone} [zone='local'] - a zone identifier. As a string, that can be any IANA zone supported by the host environment, or a fixed-offset name of the form 'UTC+3', or the strings 'local' or 'utc'. You may also supply an instance of a {@link DateTime#Zone} class.\n * @param {Object} opts - options\n * @param {boolean} [opts.keepLocalTime=false] - If true, adjust the underlying time so that the local time stays the same, but in the target zone. You should rarely need this.\n * @return {DateTime}\n */\n setZone(zone, { keepLocalTime = false, keepCalendarTime = false } = {}) {\n zone = normalizeZone(zone, Settings.defaultZone);\n if (zone.equals(this.zone)) {\n return this;\n } else if (!zone.isValid) {\n return DateTime.invalid(unsupportedZone(zone));\n } else {\n let newTS = this.ts;\n if (keepLocalTime || keepCalendarTime) {\n const offsetGuess = zone.offset(this.ts);\n const asObj = this.toObject();\n [newTS] = objToTS(asObj, offsetGuess, zone);\n }\n return clone(this, { ts: newTS, zone });\n }\n }\n\n /**\n * \"Set\" the locale, numberingSystem, or outputCalendar. Returns a newly-constructed DateTime.\n * @param {Object} properties - the properties to set\n * @example DateTime.local(2017, 5, 25).reconfigure({ locale: 'en-GB' })\n * @return {DateTime}\n */\n reconfigure({ locale, numberingSystem, outputCalendar } = {}) {\n const loc = this.loc.clone({ locale, numberingSystem, outputCalendar });\n return clone(this, { loc });\n }\n\n /**\n * \"Set\" the locale. Returns a newly-constructed DateTime.\n * Just a convenient alias for reconfigure({ locale })\n * @example DateTime.local(2017, 5, 25).setLocale('en-GB')\n * @return {DateTime}\n */\n setLocale(locale) {\n return this.reconfigure({ locale });\n }\n\n /**\n * \"Set\" the values of specified units. Returns a newly-constructed DateTime.\n * You can only set units with this method; for \"setting\" metadata, see {@link DateTime#reconfigure} and {@link DateTime#setZone}.\n *\n * This method also supports setting locale-based week units, i.e. `localWeekday`, `localWeekNumber` and `localWeekYear`.\n * They cannot be mixed with ISO-week units like `weekday`.\n * @param {Object} values - a mapping of units to numbers\n * @example dt.set({ year: 2017 })\n * @example dt.set({ hour: 8, minute: 30 })\n * @example dt.set({ weekday: 5 })\n * @example dt.set({ year: 2005, ordinal: 234 })\n * @return {DateTime}\n */\n set(values) {\n if (!this.isValid) return this;\n\n const normalized = normalizeObject(values, normalizeUnitWithLocalWeeks);\n const { minDaysInFirstWeek, startOfWeek } = usesLocalWeekValues(normalized, this.loc);\n\n const settingWeekStuff =\n !isUndefined(normalized.weekYear) ||\n !isUndefined(normalized.weekNumber) ||\n !isUndefined(normalized.weekday),\n containsOrdinal = !isUndefined(normalized.ordinal),\n containsGregorYear = !isUndefined(normalized.year),\n containsGregorMD = !isUndefined(normalized.month) || !isUndefined(normalized.day),\n containsGregor = containsGregorYear || containsGregorMD,\n definiteWeekDef = normalized.weekYear || normalized.weekNumber;\n\n if ((containsGregor || containsOrdinal) && definiteWeekDef) {\n throw new ConflictingSpecificationError(\n \"Can't mix weekYear/weekNumber units with year/month/day or ordinals\"\n );\n }\n\n if (containsGregorMD && containsOrdinal) {\n throw new ConflictingSpecificationError(\"Can't mix ordinal dates with month/day\");\n }\n\n let mixed;\n if (settingWeekStuff) {\n mixed = weekToGregorian(\n { ...gregorianToWeek(this.c, minDaysInFirstWeek, startOfWeek), ...normalized },\n minDaysInFirstWeek,\n startOfWeek\n );\n } else if (!isUndefined(normalized.ordinal)) {\n mixed = ordinalToGregorian({ ...gregorianToOrdinal(this.c), ...normalized });\n } else {\n mixed = { ...this.toObject(), ...normalized };\n\n // if we didn't set the day but we ended up on an overflow date,\n // use the last day of the right month\n if (isUndefined(normalized.day)) {\n mixed.day = Math.min(daysInMonth(mixed.year, mixed.month), mixed.day);\n }\n }\n\n const [ts, o] = objToTS(mixed, this.o, this.zone);\n return clone(this, { ts, o });\n }\n\n /**\n * Add a period of time to this DateTime and return the resulting DateTime\n *\n * Adding hours, minutes, seconds, or milliseconds increases the timestamp by the right number of milliseconds. Adding days, months, or years shifts the calendar, accounting for DSTs and leap years along the way. Thus, `dt.plus({ hours: 24 })` may result in a different time than `dt.plus({ days: 1 })` if there's a DST shift in between.\n * @param {Duration|Object|number} duration - The amount to add. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n * @example DateTime.now().plus(123) //~> in 123 milliseconds\n * @example DateTime.now().plus({ minutes: 15 }) //~> in 15 minutes\n * @example DateTime.now().plus({ days: 1 }) //~> this time tomorrow\n * @example DateTime.now().plus({ days: -1 }) //~> this time yesterday\n * @example DateTime.now().plus({ hours: 3, minutes: 13 }) //~> in 3 hr, 13 min\n * @example DateTime.now().plus(Duration.fromObject({ hours: 3, minutes: 13 })) //~> in 3 hr, 13 min\n * @return {DateTime}\n */\n plus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration);\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * Subtract a period of time to this DateTime and return the resulting DateTime\n * See {@link DateTime#plus}\n * @param {Duration|Object|number} duration - The amount to subtract. Either a Luxon Duration, a number of milliseconds, the object argument to Duration.fromObject()\n @return {DateTime}\n */\n minus(duration) {\n if (!this.isValid) return this;\n const dur = Duration.fromDurationLike(duration).negate();\n return clone(this, adjustTime(this, dur));\n }\n\n /**\n * \"Set\" this DateTime to the beginning of a unit of time.\n * @param {string} unit - The unit to go to the beginning of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).startOf('month').toISODate(); //=> '2014-03-01'\n * @example DateTime.local(2014, 3, 3).startOf('year').toISODate(); //=> '2014-01-01'\n * @example DateTime.local(2014, 3, 3).startOf('week').toISODate(); //=> '2014-03-03', weeks always start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('day').toISOTime(); //=> '00:00.000-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).startOf('hour').toISOTime(); //=> '05:00:00.000-05:00'\n * @return {DateTime}\n */\n startOf(unit, { useLocaleWeeks = false } = {}) {\n if (!this.isValid) return this;\n\n const o = {},\n normalizedUnit = Duration.normalizeUnit(unit);\n switch (normalizedUnit) {\n case \"years\":\n o.month = 1;\n // falls through\n case \"quarters\":\n case \"months\":\n o.day = 1;\n // falls through\n case \"weeks\":\n case \"days\":\n o.hour = 0;\n // falls through\n case \"hours\":\n o.minute = 0;\n // falls through\n case \"minutes\":\n o.second = 0;\n // falls through\n case \"seconds\":\n o.millisecond = 0;\n break;\n // no default, invalid units throw in normalizeUnit()\n }\n\n if (normalizedUnit === \"weeks\") {\n if (useLocaleWeeks) {\n const startOfWeek = this.loc.getStartOfWeek();\n const { weekday } = this;\n if (weekday < startOfWeek) {\n o.weekNumber = this.weekNumber - 1;\n }\n o.weekday = startOfWeek;\n } else {\n o.weekday = 1;\n }\n }\n\n if (normalizedUnit === \"quarters\") {\n const q = Math.ceil(this.month / 3);\n o.month = (q - 1) * 3 + 1;\n }\n\n return this.set(o);\n }\n\n /**\n * \"Set\" this DateTime to the end (meaning the last millisecond) of a unit of time\n * @param {string} unit - The unit to go to the end of. Can be 'year', 'quarter', 'month', 'week', 'day', 'hour', 'minute', 'second', or 'millisecond'.\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week\n * @example DateTime.local(2014, 3, 3).endOf('month').toISO(); //=> '2014-03-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('year').toISO(); //=> '2014-12-31T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3).endOf('week').toISO(); // => '2014-03-09T23:59:59.999-05:00', weeks start on Mondays\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('day').toISO(); //=> '2014-03-03T23:59:59.999-05:00'\n * @example DateTime.local(2014, 3, 3, 5, 30).endOf('hour').toISO(); //=> '2014-03-03T05:59:59.999-05:00'\n * @return {DateTime}\n */\n endOf(unit, opts) {\n return this.isValid\n ? this.plus({ [unit]: 1 })\n .startOf(unit, opts)\n .minus(1)\n : this;\n }\n\n // OUTPUT\n\n /**\n * Returns a string representation of this DateTime formatted according to the specified format string.\n * **You may not want this.** See {@link DateTime#toLocaleString} for a more flexible formatting tool. For a table of tokens and their interpretations, see [here](https://moment.github.io/luxon/#/formatting?id=table-of-tokens).\n * Defaults to en-US if no locale has been specified, regardless of the system's locale.\n * @param {string} fmt - the format string\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toFormat('yyyy LLL dd') //=> '2017 Apr 22'\n * @example DateTime.now().setLocale('fr').toFormat('yyyy LLL dd') //=> '2017 avr. 22'\n * @example DateTime.now().toFormat('yyyy LLL dd', { locale: \"fr\" }) //=> '2017 avr. 22'\n * @example DateTime.now().toFormat(\"HH 'hours and' mm 'minutes'\") //=> '20 hours and 55 minutes'\n * @return {string}\n */\n toFormat(fmt, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.redefaultToEN(opts)).formatDateTimeFromString(this, fmt)\n : INVALID;\n }\n\n /**\n * Returns a localized string representing this date. Accepts the same options as the Intl.DateTimeFormat constructor and any presets defined by Luxon, such as `DateTime.DATE_FULL` or `DateTime.TIME_SIMPLE`.\n * The exact behavior of this method is browser-specific, but in general it will return an appropriate representation\n * of the DateTime in the assigned locale.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat\n * @param formatOpts {Object} - Intl.DateTimeFormat constructor options and configuration options\n * @param {Object} opts - opts to override the configuration options on this DateTime\n * @example DateTime.now().toLocaleString(); //=> 4/20/2017\n * @example DateTime.now().setLocale('en-gb').toLocaleString(); //=> '20/04/2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL); //=> 'April 20, 2017'\n * @example DateTime.now().toLocaleString(DateTime.DATE_FULL, { locale: 'fr' }); //=> '28 aoĆ»t 2022'\n * @example DateTime.now().toLocaleString(DateTime.TIME_SIMPLE); //=> '11:32 AM'\n * @example DateTime.now().toLocaleString(DateTime.DATETIME_SHORT); //=> '4/20/2017, 11:32 AM'\n * @example DateTime.now().toLocaleString({ weekday: 'long', month: 'long', day: '2-digit' }); //=> 'Thursday, April 20'\n * @example DateTime.now().toLocaleString({ weekday: 'short', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' }); //=> 'Thu, Apr 20, 11:27 AM'\n * @example DateTime.now().toLocaleString({ hour: '2-digit', minute: '2-digit', hourCycle: 'h23' }); //=> '11:32'\n * @return {string}\n */\n toLocaleString(formatOpts = DATE_SHORT, opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), formatOpts).formatDateTime(this)\n : INVALID;\n }\n\n /**\n * Returns an array of format \"parts\", meaning individual tokens along with metadata. This is allows callers to post-process individual sections of the formatted output.\n * Defaults to the system's locale if no locale has been specified\n * @see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat/formatToParts\n * @param opts {Object} - Intl.DateTimeFormat constructor options, same as `toLocaleString`.\n * @example DateTime.now().toLocaleParts(); //=> [\n * //=> { type: 'day', value: '25' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'month', value: '05' },\n * //=> { type: 'literal', value: '/' },\n * //=> { type: 'year', value: '1982' }\n * //=> ]\n */\n toLocaleParts(opts = {}) {\n return this.isValid\n ? Formatter.create(this.loc.clone(opts), opts).formatDateTimeParts(this)\n : [];\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=false] - add the time zone format extension\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @param {string} [opts.precision='milliseconds'] - truncate output to desired presicion: 'years', 'months', 'days', 'hours', 'minutes', 'seconds' or 'milliseconds'. When precision and suppressSeconds or suppressMilliseconds are used together, precision sets the maximum unit shown in the output, however seconds or milliseconds will still be suppressed if they are 0.\n * @example DateTime.utc(1983, 5, 25).toISO() //=> '1982-05-25T00:00:00.000Z'\n * @example DateTime.now().toISO() //=> '2017-04-22T20:47:05.335-04:00'\n * @example DateTime.now().toISO({ includeOffset: false }) //=> '2017-04-22T20:47:05.335'\n * @example DateTime.now().toISO({ format: 'basic' }) //=> '20170422T204705.335-0400'\n * @example DateTime.now().toISO({ precision: 'day' }) //=> '2017-04-22Z'\n * @example DateTime.now().toISO({ precision: 'minute' }) //=> '2017-04-22T20:47Z'\n * @return {string|null}\n */\n toISO({\n format = \"extended\",\n suppressSeconds = false,\n suppressMilliseconds = false,\n includeOffset = true,\n extendedZone = false,\n precision = \"milliseconds\",\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n precision = normalizeUnit(precision);\n const ext = format === \"extended\";\n\n let c = toISODate(this, ext, precision);\n if (orderedUnits.indexOf(precision) >= 3) c += \"T\";\n c += toISOTime(\n this,\n ext,\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone,\n precision\n );\n return c;\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's date component\n * @param {Object} opts - options\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @param {string} [opts.precision='day'] - truncate output to desired precision: 'years', 'months', or 'days'.\n * @example DateTime.utc(1982, 5, 25).toISODate() //=> '1982-05-25'\n * @example DateTime.utc(1982, 5, 25).toISODate({ format: 'basic' }) //=> '19820525'\n * @example DateTime.utc(1982, 5, 25).toISODate({ precision: 'month' }) //=> '1982-05'\n * @return {string|null}\n */\n toISODate({ format = \"extended\", precision = \"day\" } = {}) {\n if (!this.isValid) {\n return null;\n }\n return toISODate(this, format === \"extended\", normalizeUnit(precision));\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's week date\n * @example DateTime.utc(1982, 5, 25).toISOWeekDate() //=> '1982-W21-2'\n * @return {string}\n */\n toISOWeekDate() {\n return toTechFormat(this, \"kkkk-'W'WW-c\");\n }\n\n /**\n * Returns an ISO 8601-compliant string representation of this DateTime's time component\n * @param {Object} opts - options\n * @param {boolean} [opts.suppressMilliseconds=false] - exclude milliseconds from the format if they're 0\n * @param {boolean} [opts.suppressSeconds=false] - exclude seconds from the format if they're 0\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.extendedZone=true] - add the time zone format extension\n * @param {boolean} [opts.includePrefix=false] - include the `T` prefix\n * @param {string} [opts.format='extended'] - choose between the basic and extended format\n * @param {string} [opts.precision='milliseconds'] - truncate output to desired presicion: 'hours', 'minutes', 'seconds' or 'milliseconds'. When precision and suppressSeconds or suppressMilliseconds are used together, precision sets the maximum unit shown in the output, however seconds or milliseconds will still be suppressed if they are 0.\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime() //=> '07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, seconds: 0, milliseconds: 0 }).toISOTime({ suppressSeconds: true }) //=> '07:34Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ format: 'basic' }) //=> '073419.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34 }).toISOTime({ includePrefix: true }) //=> 'T07:34:19.361Z'\n * @example DateTime.utc().set({ hour: 7, minute: 34, second: 56 }).toISOTime({ precision: 'minute' }) //=> '07:34Z'\n * @return {string}\n */\n toISOTime({\n suppressMilliseconds = false,\n suppressSeconds = false,\n includeOffset = true,\n includePrefix = false,\n extendedZone = false,\n format = \"extended\",\n precision = \"milliseconds\",\n } = {}) {\n if (!this.isValid) {\n return null;\n }\n\n precision = normalizeUnit(precision);\n let c = includePrefix && orderedUnits.indexOf(precision) >= 3 ? \"T\" : \"\";\n return (\n c +\n toISOTime(\n this,\n format === \"extended\",\n suppressSeconds,\n suppressMilliseconds,\n includeOffset,\n extendedZone,\n precision\n )\n );\n }\n\n /**\n * Returns an RFC 2822-compatible string representation of this DateTime\n * @example DateTime.utc(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 +0000'\n * @example DateTime.local(2014, 7, 13).toRFC2822() //=> 'Sun, 13 Jul 2014 00:00:00 -0400'\n * @return {string}\n */\n toRFC2822() {\n return toTechFormat(this, \"EEE, dd LLL yyyy HH:mm:ss ZZZ\", false);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in HTTP headers. The output is always expressed in GMT.\n * Specifically, the string conforms to RFC 1123.\n * @see https://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.3.1\n * @example DateTime.utc(2014, 7, 13).toHTTP() //=> 'Sun, 13 Jul 2014 00:00:00 GMT'\n * @example DateTime.utc(2014, 7, 13, 19).toHTTP() //=> 'Sun, 13 Jul 2014 19:00:00 GMT'\n * @return {string}\n */\n toHTTP() {\n return toTechFormat(this.toUTC(), \"EEE, dd LLL yyyy HH:mm:ss 'GMT'\");\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Date\n * @example DateTime.utc(2014, 7, 13).toSQLDate() //=> '2014-07-13'\n * @return {string|null}\n */\n toSQLDate() {\n if (!this.isValid) {\n return null;\n }\n return toISODate(this, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL Time\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc().toSQL() //=> '05:15:16.345'\n * @example DateTime.now().toSQL() //=> '05:15:16.345 -04:00'\n * @example DateTime.now().toSQL({ includeOffset: false }) //=> '05:15:16.345'\n * @example DateTime.now().toSQL({ includeZone: false }) //=> '05:15:16.345 America/New_York'\n * @return {string}\n */\n toSQLTime({ includeOffset = true, includeZone = false, includeOffsetSpace = true } = {}) {\n let fmt = \"HH:mm:ss.SSS\";\n\n if (includeZone || includeOffset) {\n if (includeOffsetSpace) {\n fmt += \" \";\n }\n if (includeZone) {\n fmt += \"z\";\n } else if (includeOffset) {\n fmt += \"ZZ\";\n }\n }\n\n return toTechFormat(this, fmt, true);\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for use in SQL DateTime\n * @param {Object} opts - options\n * @param {boolean} [opts.includeZone=false] - include the zone, such as 'America/New_York'. Overrides includeOffset.\n * @param {boolean} [opts.includeOffset=true] - include the offset, such as 'Z' or '-04:00'\n * @param {boolean} [opts.includeOffsetSpace=true] - include the space between the time and the offset, such as '05:15:16.345 -04:00'\n * @example DateTime.utc(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 Z'\n * @example DateTime.local(2014, 7, 13).toSQL() //=> '2014-07-13 00:00:00.000 -04:00'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeOffset: false }) //=> '2014-07-13 00:00:00.000'\n * @example DateTime.local(2014, 7, 13).toSQL({ includeZone: true }) //=> '2014-07-13 00:00:00.000 America/New_York'\n * @return {string}\n */\n toSQL(opts = {}) {\n if (!this.isValid) {\n return null;\n }\n\n return `${this.toSQLDate()} ${this.toSQLTime(opts)}`;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for debugging\n * @return {string}\n */\n toString() {\n return this.isValid ? this.toISO() : INVALID;\n }\n\n /**\n * Returns a string representation of this DateTime appropriate for the REPL.\n * @return {string}\n */\n [Symbol.for(\"nodejs.util.inspect.custom\")]() {\n if (this.isValid) {\n return `DateTime { ts: ${this.toISO()}, zone: ${this.zone.name}, locale: ${this.locale} }`;\n } else {\n return `DateTime { Invalid, reason: ${this.invalidReason} }`;\n }\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime. Alias of {@link DateTime#toMillis}\n * @return {number}\n */\n valueOf() {\n return this.toMillis();\n }\n\n /**\n * Returns the epoch milliseconds of this DateTime.\n * @return {number}\n */\n toMillis() {\n return this.isValid ? this.ts : NaN;\n }\n\n /**\n * Returns the epoch seconds (including milliseconds in the fractional part) of this DateTime.\n * @return {number}\n */\n toSeconds() {\n return this.isValid ? this.ts / 1000 : NaN;\n }\n\n /**\n * Returns the epoch seconds (as a whole number) of this DateTime.\n * @return {number}\n */\n toUnixInteger() {\n return this.isValid ? Math.floor(this.ts / 1000) : NaN;\n }\n\n /**\n * Returns an ISO 8601 representation of this DateTime appropriate for use in JSON.\n * @return {string}\n */\n toJSON() {\n return this.toISO();\n }\n\n /**\n * Returns a BSON serializable equivalent to this DateTime.\n * @return {Date}\n */\n toBSON() {\n return this.toJSDate();\n }\n\n /**\n * Returns a JavaScript object with this DateTime's year, month, day, and so on.\n * @param opts - options for generating the object\n * @param {boolean} [opts.includeConfig=false] - include configuration attributes in the output\n * @example DateTime.now().toObject() //=> { year: 2017, month: 4, day: 22, hour: 20, minute: 49, second: 42, millisecond: 268 }\n * @return {Object}\n */\n toObject(opts = {}) {\n if (!this.isValid) return {};\n\n const base = { ...this.c };\n\n if (opts.includeConfig) {\n base.outputCalendar = this.outputCalendar;\n base.numberingSystem = this.loc.numberingSystem;\n base.locale = this.loc.locale;\n }\n return base;\n }\n\n /**\n * Returns a JavaScript Date equivalent to this DateTime.\n * @return {Date}\n */\n toJSDate() {\n return new Date(this.isValid ? this.ts : NaN);\n }\n\n // COMPARE\n\n /**\n * Return the difference between two DateTimes as a Duration.\n * @param {DateTime} otherDateTime - the DateTime to compare this one to\n * @param {string|string[]} [unit=['milliseconds']] - the unit or array of units (such as 'hours' or 'days') to include in the duration.\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @example\n * var i1 = DateTime.fromISO('1982-05-25T09:45'),\n * i2 = DateTime.fromISO('1983-10-14T10:30');\n * i2.diff(i1).toObject() //=> { milliseconds: 43807500000 }\n * i2.diff(i1, 'hours').toObject() //=> { hours: 12168.75 }\n * i2.diff(i1, ['months', 'days']).toObject() //=> { months: 16, days: 19.03125 }\n * i2.diff(i1, ['months', 'days', 'hours']).toObject() //=> { months: 16, days: 19, hours: 0.75 }\n * @return {Duration}\n */\n diff(otherDateTime, unit = \"milliseconds\", opts = {}) {\n if (!this.isValid || !otherDateTime.isValid) {\n return Duration.invalid(\"created by diffing an invalid DateTime\");\n }\n\n const durOpts = { locale: this.locale, numberingSystem: this.numberingSystem, ...opts };\n\n const units = maybeArray(unit).map(Duration.normalizeUnit),\n otherIsLater = otherDateTime.valueOf() > this.valueOf(),\n earlier = otherIsLater ? this : otherDateTime,\n later = otherIsLater ? otherDateTime : this,\n diffed = diff(earlier, later, units, durOpts);\n\n return otherIsLater ? diffed.negate() : diffed;\n }\n\n /**\n * Return the difference between this DateTime and right now.\n * See {@link DateTime#diff}\n * @param {string|string[]} [unit=['milliseconds']] - the unit or units units (such as 'hours' or 'days') to include in the duration\n * @param {Object} opts - options that affect the creation of the Duration\n * @param {string} [opts.conversionAccuracy='casual'] - the conversion system to use\n * @return {Duration}\n */\n diffNow(unit = \"milliseconds\", opts = {}) {\n return this.diff(DateTime.now(), unit, opts);\n }\n\n /**\n * Return an Interval spanning between this DateTime and another DateTime\n * @param {DateTime} otherDateTime - the other end point of the Interval\n * @return {Interval|DateTime}\n */\n until(otherDateTime) {\n return this.isValid ? Interval.fromDateTimes(this, otherDateTime) : this;\n }\n\n /**\n * Return whether this DateTime is in the same unit of time as another DateTime.\n * Higher-order units must also be identical for this function to return `true`.\n * Note that time zones are **ignored** in this comparison, which compares the **local** calendar time. Use {@link DateTime#setZone} to convert one of the dates if needed.\n * @param {DateTime} otherDateTime - the other DateTime\n * @param {string} unit - the unit of time to check sameness on\n * @param {Object} opts - options\n * @param {boolean} [opts.useLocaleWeeks=false] - If true, use weeks based on the locale, i.e. use the locale-dependent start of the week; only the locale of this DateTime is used\n * @example DateTime.now().hasSame(otherDT, 'day'); //~> true if otherDT is in the same current calendar day\n * @return {boolean}\n */\n hasSame(otherDateTime, unit, opts) {\n if (!this.isValid) return false;\n\n const inputMs = otherDateTime.valueOf();\n const adjustedToZone = this.setZone(otherDateTime.zone, { keepLocalTime: true });\n return (\n adjustedToZone.startOf(unit, opts) <= inputMs && inputMs <= adjustedToZone.endOf(unit, opts)\n );\n }\n\n /**\n * Equality check\n * Two DateTimes are equal if and only if they represent the same millisecond, have the same zone and location, and are both valid.\n * To compare just the millisecond values, use `+dt1 === +dt2`.\n * @param {DateTime} other - the other DateTime\n * @return {boolean}\n */\n equals(other) {\n return (\n this.isValid &&\n other.isValid &&\n this.valueOf() === other.valueOf() &&\n this.zone.equals(other.zone) &&\n this.loc.equals(other.loc)\n );\n }\n\n /**\n * Returns a string representation of a this time relative to now, such as \"in two days\". Can only internationalize if your\n * platform supports Intl.RelativeTimeFormat. Rounds towards zero by default.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} [options.style=\"long\"] - the style of units, must be \"long\", \"short\", or \"narrow\"\n * @param {string|string[]} options.unit - use a specific unit or array of units; if omitted, or an array, the method will pick the best unit. Use an array or one of \"years\", \"quarters\", \"months\", \"weeks\", \"days\", \"hours\", \"minutes\", or \"seconds\"\n * @param {boolean} [options.round=true] - whether to round the numbers in the output.\n * @param {string} [options.rounding=\"trunc\"] - rounding method to use when rounding the numbers in the output. Can be \"trunc\" (toward zero), \"expand\" (away from zero), \"round\", \"floor\", or \"ceil\".\n * @param {number} [options.padding=0] - padding in milliseconds. This allows you to round up the result if it fits inside the threshold. Don't use in combination with {round: false} because the decimal output will include the padding.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelative() //=> \"in 1 day\"\n * @example DateTime.now().setLocale(\"es\").toRelative({ days: 1 }) //=> \"dentro de 1 dĆ­a\"\n * @example DateTime.now().plus({ days: 1 }).toRelative({ locale: \"fr\" }) //=> \"dans 23 heures\"\n * @example DateTime.now().minus({ days: 2 }).toRelative() //=> \"2 days ago\"\n * @example DateTime.now().minus({ days: 2 }).toRelative({ unit: \"hours\" }) //=> \"48 hours ago\"\n * @example DateTime.now().minus({ hours: 36 }).toRelative({ round: false }) //=> \"1.5 days ago\"\n */\n toRelative(options = {}) {\n if (!this.isValid) return null;\n const base = options.base || DateTime.fromObject({}, { zone: this.zone }),\n padding = options.padding ? (this < base ? -options.padding : options.padding) : 0;\n let units = [\"years\", \"months\", \"days\", \"hours\", \"minutes\", \"seconds\"];\n let unit = options.unit;\n if (Array.isArray(options.unit)) {\n units = options.unit;\n unit = undefined;\n }\n return diffRelative(base, this.plus(padding), {\n ...options,\n numeric: \"always\",\n units,\n unit,\n });\n }\n\n /**\n * Returns a string representation of this date relative to today, such as \"yesterday\" or \"next month\".\n * Only internationalizes on platforms that supports Intl.RelativeTimeFormat.\n * @param {Object} options - options that affect the output\n * @param {DateTime} [options.base=DateTime.now()] - the DateTime to use as the basis to which this time is compared. Defaults to now.\n * @param {string} options.locale - override the locale of this DateTime\n * @param {string} options.unit - use a specific unit; if omitted, the method will pick the unit. Use one of \"years\", \"quarters\", \"months\", \"weeks\", or \"days\"\n * @param {string} options.numberingSystem - override the numberingSystem of this DateTime. The Intl system may choose not to honor this\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar() //=> \"tomorrow\"\n * @example DateTime.now().setLocale(\"es\").plus({ days: 1 }).toRelative() //=> \"\"maƱana\"\n * @example DateTime.now().plus({ days: 1 }).toRelativeCalendar({ locale: \"fr\" }) //=> \"demain\"\n * @example DateTime.now().minus({ days: 2 }).toRelativeCalendar() //=> \"2 days ago\"\n */\n toRelativeCalendar(options = {}) {\n if (!this.isValid) return null;\n\n return diffRelative(options.base || DateTime.fromObject({}, { zone: this.zone }), this, {\n ...options,\n numeric: \"auto\",\n units: [\"years\", \"months\", \"days\"],\n calendary: true,\n });\n }\n\n /**\n * Return the min of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the minimum\n * @return {DateTime} the min DateTime, or undefined if called with no argument\n */\n static min(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"min requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.min);\n }\n\n /**\n * Return the max of several date times\n * @param {...DateTime} dateTimes - the DateTimes from which to choose the maximum\n * @return {DateTime} the max DateTime, or undefined if called with no argument\n */\n static max(...dateTimes) {\n if (!dateTimes.every(DateTime.isDateTime)) {\n throw new InvalidArgumentError(\"max requires all arguments be DateTimes\");\n }\n return bestBy(dateTimes, (i) => i.valueOf(), Math.max);\n }\n\n // MISC\n\n /**\n * Explain how a string would be parsed by fromFormat()\n * @param {string} text - the string to parse\n * @param {string} fmt - the format the string is expected to be in (see description)\n * @param {Object} options - options taken by fromFormat()\n * @return {Object}\n */\n static fromFormatExplain(text, fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n return explainFromTokens(localeToUse, text, fmt);\n }\n\n /**\n * @deprecated use fromFormatExplain instead\n */\n static fromStringExplain(text, fmt, options = {}) {\n return DateTime.fromFormatExplain(text, fmt, options);\n }\n\n /**\n * Build a parser for `fmt` using the given locale. This parser can be passed\n * to {@link DateTime.fromFormatParser} to a parse a date in this format. This\n * can be used to optimize cases where many dates need to be parsed in a\n * specific format.\n *\n * @param {String} fmt - the format the string is expected to be in (see\n * description)\n * @param {Object} options - options used to set locale and numberingSystem\n * for parser\n * @returns {TokenParser} - opaque object to be used\n */\n static buildFormatParser(fmt, options = {}) {\n const { locale = null, numberingSystem = null } = options,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n return new TokenParser(localeToUse, fmt);\n }\n\n /**\n * Create a DateTime from an input string and format parser.\n *\n * The format parser must have been created with the same locale as this call.\n *\n * @param {String} text - the string to parse\n * @param {TokenParser} formatParser - parser from {@link DateTime.buildFormatParser}\n * @param {Object} opts - options taken by fromFormat()\n * @returns {DateTime}\n */\n static fromFormatParser(text, formatParser, opts = {}) {\n if (isUndefined(text) || isUndefined(formatParser)) {\n throw new InvalidArgumentError(\n \"fromFormatParser requires an input string and a format parser\"\n );\n }\n const { locale = null, numberingSystem = null } = opts,\n localeToUse = Locale.fromOpts({\n locale,\n numberingSystem,\n defaultToEN: true,\n });\n\n if (!localeToUse.equals(formatParser.locale)) {\n throw new InvalidArgumentError(\n `fromFormatParser called with a locale of ${localeToUse}, ` +\n `but the format parser was created for ${formatParser.locale}`\n );\n }\n\n const { result, zone, specificOffset, invalidReason } = formatParser.explainFromTokens(text);\n\n if (invalidReason) {\n return DateTime.invalid(invalidReason);\n } else {\n return parseDataToDateTime(\n result,\n zone,\n opts,\n `format ${formatParser.format}`,\n text,\n specificOffset\n );\n }\n }\n\n // FORMAT PRESETS\n\n /**\n * {@link DateTime#toLocaleString} format like 10/14/1983\n * @type {Object}\n */\n static get DATE_SHORT() {\n return DATE_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED() {\n return DATE_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, Oct 14, 1983'\n * @type {Object}\n */\n static get DATE_MED_WITH_WEEKDAY() {\n return DATE_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983'\n * @type {Object}\n */\n static get DATE_FULL() {\n return DATE_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Tuesday, October 14, 1983'\n * @type {Object}\n */\n static get DATE_HUGE() {\n return DATE_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_SIMPLE() {\n return TIME_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SECONDS() {\n return TIME_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_SHORT_OFFSET() {\n return TIME_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get TIME_WITH_LONG_OFFSET() {\n return TIME_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_SIMPLE() {\n return TIME_24_SIMPLE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SECONDS() {\n return TIME_24_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 EDT', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_SHORT_OFFSET() {\n return TIME_24_WITH_SHORT_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '09:30:23 Eastern Daylight Time', always 24-hour.\n * @type {Object}\n */\n static get TIME_24_WITH_LONG_OFFSET() {\n return TIME_24_WITH_LONG_OFFSET;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT() {\n return DATETIME_SHORT;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like '10/14/1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_SHORT_WITH_SECONDS() {\n return DATETIME_SHORT_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED() {\n return DATETIME_MED;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Oct 14, 1983, 9:30:33 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_SECONDS() {\n return DATETIME_MED_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Fri, 14 Oct 1983, 9:30 AM'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_MED_WITH_WEEKDAY() {\n return DATETIME_MED_WITH_WEEKDAY;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL() {\n return DATETIME_FULL;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'October 14, 1983, 9:30:33 AM EDT'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_FULL_WITH_SECONDS() {\n return DATETIME_FULL_WITH_SECONDS;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE() {\n return DATETIME_HUGE;\n }\n\n /**\n * {@link DateTime#toLocaleString} format like 'Friday, October 14, 1983, 9:30:33 AM Eastern Daylight Time'. Only 12-hour if the locale is.\n * @type {Object}\n */\n static get DATETIME_HUGE_WITH_SECONDS() {\n return DATETIME_HUGE_WITH_SECONDS;\n }\n}\n\n/**\n * @private\n */\nfunction friendlyDateTime(dateTimeish) {\n if (DateTime.isDateTime(dateTimeish)) {\n return dateTimeish;\n } else if (dateTimeish && dateTimeish.valueOf && isNumber(dateTimeish.valueOf())) {\n return DateTime.fromJSDate(dateTimeish);\n } else if (dateTimeish && typeof dateTimeish === \"object\") {\n return DateTime.fromObject(dateTimeish);\n } else {\n throw new InvalidArgumentError(\n `Unknown datetime argument: ${dateTimeish}, of type ${typeof dateTimeish}`\n );\n }\n}\n\nconst VERSION = \"3.7.2\";\n\nexport { DateTime, Duration, FixedOffsetZone, IANAZone, Info, Interval, InvalidZone, Settings, SystemZone, VERSION, Zone };\n//# sourceMappingURL=luxon.mjs.map\n", + "var fJ=Object.defineProperty;var DJ=(J,X)=>{for(var Y in X)fJ(J,Y,{get:X[Y],enumerable:!0,configurable:!0,set:(Z)=>X[Y]=()=>Z})};var O=globalThis,H=(J)=>{if(!O.emitLitDebugLogEvents)return;O.dispatchEvent(new CustomEvent(\"lit-debug\",{detail:J}))},KJ=0,x;O.litIssuedWarnings??=new Set,x=(J,X)=>{if(X+=J?` See https://lit.dev/msg/${J} for more information.`:\"\",!O.litIssuedWarnings.has(X)&&!O.litIssuedWarnings.has(J))console.warn(X),O.litIssuedWarnings.add(X)},queueMicrotask(()=>{x(\"dev-mode\",\"Lit is in dev mode. Not recommended for production!\")});var S=O.ShadyDOM?.inUse&&O.ShadyDOM?.noPatch===!0?O.ShadyDOM.wrap:(J)=>J,v=O.trustedTypes,XJ=v?v.createPolicy(\"lit-html\",{createHTML:(J)=>J}):void 0,RJ=(J)=>J,u=(J,X,Y)=>RJ,AJ=(J)=>{if(L!==u)throw Error(\"Attempted to overwrite existing lit-html security policy. setSanitizeDOMValueFactory should be called at most once.\");L=J},EJ=()=>{L=u},l=(J,X,Y)=>{return L(J,X,Y)},QJ=\"$lit$\",f=`lit$${Math.random().toFixed(9).slice(2)}$`,BJ=\"?\"+f,NJ=`<${BJ}>`,N=document,w=()=>N.createComment(\"\"),b=(J)=>J===null||typeof J!=\"object\"&&typeof J!=\"function\",n=Array.isArray,LJ=(J)=>n(J)||typeof J?.[Symbol.iterator]===\"function\",i=`[ \t\n\\f\\r]`,VJ=`[^ \t\n\\f\\r\"'\\`<>=]`,IJ=`[^\\\\s\"'>=/]`,h=/<(?:(!--|\\/[^a-zA-Z])|(\\/?[a-zA-Z][^>\\s]*)|(\\/?$))/g,YJ=1,s=2,PJ=3,ZJ=/-->/g,$J=/>/g,K=new RegExp(`>|${i}(?:(${IJ}+)(${i}*=${i}*(?:${VJ}|(\"|')|))|$)`,\"g\"),TJ=0,qJ=1,CJ=2,WJ=3,o=/'/g,r=/\"/g,HJ=/^(?:script|style|textarea|title)$/i,hJ=1,c=2,g=3,a=1,p=2,xJ=3,wJ=4,bJ=5,t=6,kJ=7,e=(J)=>(X,...Y)=>{if(X.some((Z)=>Z===void 0))console.warn(`Some template strings are undefined.\nThis is probably caused by illegal octal escape sequences.`);if(Y.some((Z)=>Z?._$litStatic$))x(\"\",`Static values 'literal' or 'unsafeStatic' cannot be used as values to non-static templates.\nPlease use the static 'html' tag function. See https://lit.dev/docs/templates/expressions/#static-expressions`);return{[\"_$litType$\"]:J,strings:X,values:Y}},yJ=e(hJ),dJ=e(c),rJ=e(g),I=Symbol.for(\"lit-noChange\"),U=Symbol.for(\"lit-nothing\"),GJ=new WeakMap,E=N.createTreeWalker(N,129),L=u;function FJ(J,X){if(!n(J)||!J.hasOwnProperty(\"raw\")){let Y=\"invalid template strings array\";throw Y=`\n Internal Error: expected template strings to be an array\n with a 'raw' field. Faking a template strings array by\n calling html or svg like an ordinary function is effectively\n the same as calling unsafeHtml and can lead to major security\n issues, e.g. opening your code up to XSS attacks.\n If you're using the html or svg tagged template functions normally\n and still seeing this error, please file a bug at\n https://github.com/lit/lit/issues/new?template=bug_report.md\n and include information about your build tooling, if any.\n `.trim().replace(/\\n */g,`\n`),Error(Y)}return XJ!==void 0?XJ.createHTML(X):X}var mJ=(J,X)=>{let Y=J.length-1,Z=[],$=X===c?\"\":X===g?\"\":\"\",q,W=h;for(let Q=0;Q\")W=q??h,B=-1;else if(M[qJ]===void 0)B=-2;else B=W.lastIndex-M[CJ].length,_=M[qJ],W=M[WJ]===void 0?K:M[WJ]==='\"'?r:o;else if(W===r||W===o)W=K;else if(W===ZJ||W===$J)W=h;else W=K,q=void 0}console.assert(B===-1||W===K||W===o||W===r,\"unexpected parse state B\");let A=W===K&&J[Q+1].startsWith(\"/>\")?\" \":\"\";$+=W===h?F+NJ:B>=0?(Z.push(_),F.slice(0,B)+QJ+F.slice(B))+f+A:F+f+(B===-2?Q:A)}let G=$+(J[Y]||\"\")+(X===c?\"\":X===g?\"\":\"\");return[FJ(J,G),Z]};class k{constructor({strings:J,[\"_$litType$\"]:X},Y){this.parts=[];let Z,$=0,q=0,W=J.length-1,G=this.parts,[Q,F]=mJ(J,X);if(this.el=k.createElement(Q,Y),E.currentNode=this.el.content,X===c||X===g){let B=this.el.content.firstChild;B.replaceWith(...B.childNodes)}while((Z=E.nextNode())!==null&&G.length0){Z.textContent=v?v.emptyScript:\"\";for(let D=0;D<_;D++)Z.append(B[D],w()),E.nextNode(),G.push({type:p,index:++$});Z.append(B[_],w())}}}else if(Z.nodeType===8)if(Z.data===BJ)G.push({type:p,index:$});else{let _=-1;while((_=Z.data.indexOf(f,_+1))!==-1)G.push({type:kJ,index:$}),_+=f.length-1}$++}if(F.length!==q)throw Error('Detected duplicate attribute bindings. This occurs if your template has duplicate attributes on an element tag. For example \"\" contains a duplicate \"disabled\" attribute. The error was detected in the following template: \\n`'+J.join(\"${...}\")+\"`\");H&&H({kind:\"template prep\",template:this,clonableTemplate:this.el,parts:this.parts,strings:J})}static createElement(J,X){let Y=N.createElement(\"template\");return Y.innerHTML=J,Y}}function P(J,X,Y=J,Z){if(X===I)return X;let $=Z!==void 0?Y.__directives?.[Z]:Y.__directive,q=b(X)?void 0:X._$litDirective$;if($?.constructor!==q){if($?._$notifyDirectiveConnectionChanged?.(!1),q===void 0)$=void 0;else $=new q(J),$._$initialize(J,Y,Z);if(Z!==void 0)(Y.__directives??=[])[Z]=$;else Y.__directive=$}if($!==void 0)X=P(J,$._$resolve(J,X.values),$,Z);return X}class UJ{constructor(J,X){this._$parts=[],this._$disconnectableChildren=void 0,this._$template=J,this._$parent=X}get parentNode(){return this._$parent.parentNode}get _$isConnected(){return this._$parent._$isConnected}_clone(J){let{el:{content:X},parts:Y}=this._$template,Z=(J?.creationScope??N).importNode(X,!0);E.currentNode=Z;let $=E.nextNode(),q=0,W=0,G=Y[0];while(G!==void 0){if(q===G.index){let Q;if(G.type===p)Q=new y($,$.nextSibling,this,J);else if(G.type===a)Q=new G.ctor($,G.name,G.strings,this,J);else if(G.type===t)Q=new jJ($,this,J);this._$parts.push(Q),G=Y[++W]}if(q!==G?.index)$=E.nextNode(),q++}return E.currentNode=N,Z}_update(J){let X=0;for(let Y of this._$parts){if(Y!==void 0)if(H&&H({kind:\"set part\",part:Y,value:J[X],valueIndex:X,values:J,templateInstance:this}),Y.strings!==void 0)Y._$setValue(J,Y,X),X+=Y.strings.length-2;else Y._$setValue(J[X]);X++}}}class y{get _$isConnected(){return this._$parent?._$isConnected??this.__isConnected}constructor(J,X,Y,Z){this.type=p,this._$committedValue=U,this._$disconnectableChildren=void 0,this._$startNode=J,this._$endNode=X,this._$parent=Y,this.options=Z,this.__isConnected=Z?.isConnected??!0,this._textSanitizer=void 0}get parentNode(){let J=S(this._$startNode).parentNode,X=this._$parent;if(X!==void 0&&J?.nodeType===11)J=X.parentNode;return J}get startNode(){return this._$startNode}get endNode(){return this._$endNode}_$setValue(J,X=this){if(this.parentNode===null)throw Error(\"This `ChildPart` has no `parentNode` and therefore cannot accept a value. This likely means the element containing the part was manipulated in an unsupported way outside of Lit's control such that the part's marker nodes were ejected from DOM. For example, setting the element's `innerHTML` or `textContent` can do this.\");if(J=P(this,J,X),b(J)){if(J===U||J==null||J===\"\"){if(this._$committedValue!==U)H&&H({kind:\"commit nothing to child\",start:this._$startNode,end:this._$endNode,parent:this._$parent,options:this.options}),this._$clear();this._$committedValue=U}else if(J!==this._$committedValue&&J!==I)this._commitText(J)}else if(J._$litType$!==void 0)this._commitTemplateResult(J);else if(J.nodeType!==void 0){if(this.options?.host===J){this._commitText(\"[probable mistake: rendered a template's host in itself (commonly caused by writing ${this} in a template]\"),console.warn(\"Attempted to render the template host\",J,\"inside itself. This is almost always a mistake, and in dev mode \",\"we render some warning text. In production however, we'll \",\"render it, which will usually result in an error, and sometimes \",\"in the element disappearing from the DOM.\");return}this._commitNode(J)}else if(LJ(J))this._commitIterable(J);else this._commitText(J)}_insert(J){return S(S(this._$startNode).parentNode).insertBefore(J,this._$endNode)}_commitNode(J){if(this._$committedValue!==J){if(this._$clear(),L!==u){let X=this._$startNode.parentNode?.nodeName;if(X===\"STYLE\"||X===\"SCRIPT\"){let Y=\"Forbidden\";if(X===\"STYLE\")Y=\"Lit does not support binding inside style nodes. This is a security risk, as style injection attacks can exfiltrate data and spoof UIs. Consider instead using css`...` literals to compose styles, and do dynamic styling with css custom properties, ::parts, s, and by mutating the DOM rather than stylesheets.\";else Y=\"Lit does not support binding inside script nodes. This is a security risk, as it could allow arbitrary code execution.\";throw Error(Y)}}H&&H({kind:\"commit node\",start:this._$startNode,parent:this._$parent,value:J,options:this.options}),this._$committedValue=this._insert(J)}}_commitText(J){if(this._$committedValue!==U&&b(this._$committedValue)){let X=S(this._$startNode).nextSibling;if(this._textSanitizer===void 0)this._textSanitizer=l(X,\"data\",\"property\");J=this._textSanitizer(J),H&&H({kind:\"commit text\",node:X,value:J,options:this.options}),X.data=J}else{let X=N.createTextNode(\"\");if(this._commitNode(X),this._textSanitizer===void 0)this._textSanitizer=l(X,\"data\",\"property\");J=this._textSanitizer(J),H&&H({kind:\"commit text\",node:X,value:J,options:this.options}),X.data=J}this._$committedValue=J}_commitTemplateResult(J){let{values:X,[\"_$litType$\"]:Y}=J,Z=typeof Y===\"number\"?this._$getTemplate(J):(Y.el===void 0&&(Y.el=k.createElement(FJ(Y.h,Y.h[0]),this.options)),Y);if(this._$committedValue?._$template===Z)H&&H({kind:\"template updating\",template:Z,instance:this._$committedValue,parts:this._$committedValue._$parts,options:this.options,values:X}),this._$committedValue._update(X);else{let $=new UJ(Z,this),q=$._clone(this.options);H&&H({kind:\"template instantiated\",template:Z,instance:$,parts:$._$parts,options:this.options,fragment:q,values:X}),$._update(X),H&&H({kind:\"template instantiated and updated\",template:Z,instance:$,parts:$._$parts,options:this.options,fragment:q,values:X}),this._commitNode(q),this._$committedValue=$}}_$getTemplate(J){let X=GJ.get(J.strings);if(X===void 0)GJ.set(J.strings,X=new k(J));return X}_commitIterable(J){if(!n(this._$committedValue))this._$committedValue=[],this._$clear();let X=this._$committedValue,Y=0,Z;for(let $ of J){if(Y===X.length)X.push(Z=new y(this._insert(w()),this._insert(w()),this,this.options));else Z=X[Y];Z._$setValue($),Y++}if(Y2||Y[0]!==\"\"||Y[1]!==\"\")this._$committedValue=Array(Y.length-1).fill(new String),this.strings=Y;else this._$committedValue=U;this._sanitizer=void 0}_$setValue(J,X=this,Y,Z){let $=this.strings,q=!1;if($===void 0){if(J=P(this,J,X,0),q=!b(J)||J!==this._$committedValue&&J!==I,q)this._$committedValue=J}else{let W=J;J=$[0];let G,Q;for(G=0;G<$.length-1;G++){if(Q=P(this,W[Y+G],X,G),Q===I)Q=this._$committedValue[G];if(q||=!b(Q)||Q!==this._$committedValue[G],Q===U)J=U;else if(J!==U)J+=(Q??\"\")+$[G+1];this._$committedValue[G]=Q}}if(q&&!Z)this._commitValue(J)}_commitValue(J){if(J===U)S(this.element).removeAttribute(this.name);else{if(this._sanitizer===void 0)this._sanitizer=L(this.element,this.name,\"attribute\");J=this._sanitizer(J??\"\"),H&&H({kind:\"commit attribute\",element:this.element,name:this.name,value:J,options:this.options}),S(this.element).setAttribute(this.name,J??\"\")}}}class zJ extends d{constructor(){super(...arguments);this.type=xJ}_commitValue(J){if(this._sanitizer===void 0)this._sanitizer=L(this.element,this.name,\"property\");J=this._sanitizer(J),H&&H({kind:\"commit property\",element:this.element,name:this.name,value:J,options:this.options}),this.element[this.name]=J===U?void 0:J}}class MJ extends d{constructor(){super(...arguments);this.type=wJ}_commitValue(J){H&&H({kind:\"commit boolean attribute\",element:this.element,name:this.name,value:!!(J&&J!==U),options:this.options}),S(this.element).toggleAttribute(this.name,!!J&&J!==U)}}class _J extends d{constructor(J,X,Y,Z,$){super(J,X,Y,Z,$);if(this.type=bJ,this.strings!==void 0)throw Error(`A \\`<${J.localName}>\\` has a \\`@${X}=...\\` listener with invalid content. Event listeners in templates must have exactly one expression and no surrounding text.`)}_$setValue(J,X=this){if(J=P(this,J,X,0)??U,J===I)return;let Y=this._$committedValue,Z=J===U&&Y!==U||J.capture!==Y.capture||J.once!==Y.once||J.passive!==Y.passive,$=J!==U&&(Y===U||Z);if(H&&H({kind:\"commit event listener\",element:this.element,name:this.name,value:J,options:this.options,removeListener:Z,addListener:$,oldListener:Y}),Z)this.element.removeEventListener(this.name,this,Y);if($)this.element.addEventListener(this.name,this,J);this._$committedValue=J}handleEvent(J){if(typeof this._$committedValue===\"function\")this._$committedValue.call(this.options?.host??this.element,J);else this._$committedValue.handleEvent(J)}}class jJ{constructor(J,X,Y){this.element=J,this.type=t,this._$disconnectableChildren=void 0,this._$parent=X,this.options=Y}get _$isConnected(){return this._$parent._$isConnected}_$setValue(J){H&&H({kind:\"commit to element binding\",element:this.element,value:J,options:this.options}),P(this,J)}}var vJ=O.litHtmlPolyfillSupportDevMode;vJ?.(k,y);(O.litHtmlVersions??=[]).push(\"3.3.1\");if(O.litHtmlVersions.length>1)queueMicrotask(()=>{x(\"multiple-versions\",\"Multiple versions of Lit loaded. Loading multiple versions is not recommended.\")});var R=(J,X,Y)=>{if(X==null)throw TypeError(`The container to render into may not be ${X}`);let Z=KJ++,$=Y?.renderBefore??X,q=$._$litPart$;if(H&&H({kind:\"begin render\",id:Z,value:J,container:X,options:Y,part:q}),q===void 0){let W=Y?.renderBefore??null;$._$litPart$=q=new y(X.insertBefore(w(),W),W,void 0,Y??{})}return q._$setValue(J),H&&H({kind:\"end render\",id:Z,value:J,container:X,options:Y,part:q}),q};R.setSanitizer=AJ,R.createSanitizer=l,R._testOnlyClearSanitizerFactoryDoNotCallOrElse=EJ;var OJ={};DJ(OJ,{isTemplateResult:()=>V,deserializeCSS:()=>T,callAsync:()=>m});function m(J,X,...Y){try{let Z=J.apply(X,Y);return Z instanceof Promise?Z:Promise.resolve(Z)}catch(Z){return Promise.reject(Z)}}function V(J){return J!==null&&typeof J===\"object\"&&\"_$litType$\"in J}function T(J,X=\"\",Y=0){let Z=Object.keys(J),$=\"\";for(let q of Z){let W=J[q];if(typeof W===\"object\"&&W!==null){if(X&&!q.startsWith(\"@\"))if(q.startsWith(\"&\"))$+=`${q.replace(/&/g,X)} {\n`;else $+=`${X} ${q} {\n`;else $+=`${q} {\n`;let G=Object.keys(W);for(let Q of G){$+=\"\\t\".repeat(Y);let F=W[Q];if(typeof F===\"object\"&&F!==null){let B={};B[Q]=F,$+=T(B,X,Y+1)}else $+=`\t${Q}: ${F};\n`}$+=`}\n`}else $+=\"\\t\".repeat(Y),$+=`\t${q}: ${W};\n`}return $}class z extends HTMLElement{_children;_state;_props;_ready;_connected;_isReady;_style;_updatingProps;_renderId;_propsProxy;_stateProxy;_hasBeenMounted;static _tag;static _template;static _observedAttributes=[];static _onMount;static _onUnmount;static _onError;static _applyMiddleware;static _hasMiddleware;static get observedAttributes(){return this._observedAttributes}static set observedAttributes(J){this._observedAttributes=J}static get tag(){if(typeof this._tag>\"u\"){let J=this.name,X=J.match(/([A-Z])/g);if(X!==null)for(let Y of X)J=J.replace(Y,`-${Y}`.toLowerCase());this._tag=J.slice(1)}return this._tag}static set tag(J){this._tag=J}static template(J=null,X=null){if(J!==null)this._template=J,document.querySelectorAll(this.tag).forEach((Y)=>{if(Y instanceof z&&Y._isReady)Y.forceRender()});else{if(typeof this._template===\"function\")return this._template.call(X,X);return this._template}}constructor(){super();this._children=\"\",this._state={},this._props={},this._ready=[],this._connected=!1,this._isReady=!1,this._style={},this._updatingProps=!1,this._renderId=0,this._propsProxy=null,this._stateProxy=null,this._hasBeenMounted=!1}get width(){return parseInt(getComputedStyle(this).width.replace(\"px\",\"\"))}set width(J){this.style.width=typeof J===\"number\"?`${J}px`:J}get height(){return parseInt(getComputedStyle(this).height.replace(\"px\",\"\"))}set height(J){this.style.height=typeof J===\"number\"?`${J}px`:J}get static(){return this.constructor}set static(J){throw Error(\"Component static properties cannot be reassigned.\")}get props(){if(!this._propsProxy)this._propsProxy=new Proxy(this._props,{get:(J,X)=>{if(X in J&&typeof J[X]<\"u\")return J[X];if(this.hasAttribute(X)){let Y=this.getAttribute(X);if(typeof Y===\"string\"){if(Y===\"false\")Y=!1;else if(Y===\"true\"||Y===\"\")Y=!0;else if(!isNaN(Number(Y)))Y=Y.includes(\".\")?parseFloat(Y):parseInt(Y)}return Y}return},set:()=>{throw Error(\"Component props should be set using the `setProps` function.\")}});return this._propsProxy}set props(J){if(!this._connected)this._props={...this._props,...J},this._propsProxy=null;else throw Error(\"Component props cannot be directly assigned. Use the `setProps` function instead.\")}get state(){if(!this._stateProxy)this._stateProxy=new Proxy(this._state,{get:(J,X)=>J[X],set:(J,X,Y)=>{if(!this._connected)return J[X]=Y,!0;else throw Error(\"Component state should be set using the `setState` function instead.\")}});return this._stateProxy}set state(J){if(!this._connected)this._state={...this._state,...J},this._stateProxy=null;else throw Error(\"Component state should be set using the `setState` function instead.\")}get dom(){return this}set dom(J){throw Error(\"Component DOM can not be overwritten.\")}get slotContent(){return this._children}get isConnected(){return this._connected}get isReady(){return this._isReady}get isFirstMount(){return!this._hasBeenMounted}static register(){window.customElements.define(this.tag,this)}template(J=null){return this.constructor.template(J,this)}static _styleSheet=null;setStyle(J,X=!1){let Y=this.constructor;if(!Y._styleSheet)Y._styleSheet=new CSSStyleSheet;let Z=\"\";if(typeof J===\"object\"){if(!X)this._style={...this._style,...J};else this._style={...J};Z=T(this._style,Y.tag)}else if(typeof J===\"string\")if(!X)Z=Array.from(Y._styleSheet.cssRules||[]).map((q)=>q.cssText).join(`\n`)+`\n`+J;else Z=J;if(Y._styleSheet.replaceSync(Z),!document.adoptedStyleSheets.includes(Y._styleSheet))document.adoptedStyleSheets=[...document.adoptedStyleSheets,Y._styleSheet];return this._style}setState(J){let X=J;if(z._hasMiddleware?.(\"state\")&&z._applyMiddleware)X=z._applyMiddleware(\"state\",this,J);let Y={...this._state};this._state={...this._state,...X},this._stateProxy=null;for(let Z of Object.keys(X))this.updateCallback(Z,Y[Z],this._state[Z],\"state\",Y,this._state)}setProps(J){let X=J;if(z._hasMiddleware?.(\"props\")&&z._applyMiddleware)X=z._applyMiddleware(\"props\",this,J);let Y={...this._props};this._props={...this._props,...X},this._propsProxy=null;for(let Z of Object.keys(X))this.updateCallback(Z,Y[Z],this._props[Z],\"props\",Y,this._props);this._updatingProps=!0,this._setPropAttributes(!0),this._updatingProps=!1}_setPropAttributes(J=!1){for(let[X,Y]of Object.entries(this._props)){let Z=typeof Y;if(Z===\"string\"||Z===\"number\"||Z===\"boolean\")if(J)this.setAttribute(X,String(Y));else this._props[X]=this.props[X],this.setAttribute(X,String(this.props[X]))}}on(J,X,Y){return this.addEventListener(J,X,Y),this}off(J,X,Y){return this.removeEventListener(J,X,Y),this}once(J,X,Y){let Z=typeof Y===\"boolean\"?{capture:Y,once:!0}:{...Y,once:!0};return this.addEventListener(J,X,Z),this}emit(J,X,Y){let Z=new CustomEvent(J,{detail:X,bubbles:!0,cancelable:!0,composed:!0,...Y});return this.dispatchEvent(Z)}query(J){return this.dom.querySelector(J)}queryAll(J){return this.dom.querySelectorAll(J)}async willUpdate(J,X,Y,Z,$,q){}async update(J,X,Y,Z,$,q){}async didUpdate(J,X,Y,Z,$,q){}async onStateUpdate(J,X,Y,Z,$){}async onPropsUpdate(J,X,Y,Z,$){}async willMount(){}async didMount(){}async didReconnect(){}async willUnmount(){}async unmount(){}async didUnmount(){}forceRender(){return this._render()}render(){return\"\"}async _render(){let J=++this._renderId,X=this.render;if(this.constructor._template!==void 0)X=()=>this.template();let Y=await m(X,this);if(J!==this._renderId)return;let Z=V(Y)||Y===U?\"lit\":\"string\";if(z._hasMiddleware?.(\"render\")&&z._applyMiddleware)Y=z._applyMiddleware(\"render\",this,Y,Z);if(V(Y)||Y===U){if(!this.hasAttribute(\"data-lit-rendered\"))this.innerHTML=\"\",this.setAttribute(\"data-lit-rendered\",\"\");R(Y,this,{host:this});return}let $=Y.trim();if($===\"\")return;let q=this.dom.querySelector(\"slot\");if(q!==null){let W=document.createElement(\"template\");W.innerHTML=$,q.replaceWith(W.content)}else if(this.innerHTML=$,this._children!==\"\"&&$.indexOf(this._children)===-1)this.innerHTML+=this._children}async connectedCallback(){let J=this.static.tag;try{if(this._connected=!0,this.dataset.component=J,typeof this.static._template>\"u\"){let Z=document.querySelector(`template#${J}`);if(Z!==null)this.template(Z.innerHTML);else this.static._template=void 0}let X=!this._hasBeenMounted;if(X)this._children=this.innerHTML.trim();if(this._setPropAttributes(!1),await this.willMount(),await this._render(),X)await this.didMount();else await this.didReconnect();this._isReady=!0,this._hasBeenMounted=!0;let Y=[...this._ready];this._ready=[];for(let Z of Y)Z.call(this);if(z._onMount)z._onMount(this,J)}catch(X){if(z._onError)z._onError(X,this,J,\"connectedCallback\");else throw X}}ready(J){if(this._isReady)J.call(this);else this._ready.push(J)}async disconnectedCallback(){let J=this.static.tag;try{if(await this.willUnmount(),await this.unmount(),await this.didUnmount(),this._connected=!1,this._isReady=!1,this._ready=[],z._onUnmount)z._onUnmount(this,J)}catch(X){if(z._onError)z._onError(X,this,J,\"disconnectedCallback\");else throw X}}async updateCallback(J,X,Y,Z=\"props\",$={},q={}){if(await this.willUpdate(Z,J,X,Y,$,q),await this.update(Z,J,X,Y,$,q),Z===\"state\")await this.onStateUpdate(J,X,Y,$,q);else if(Z===\"props\"||Z===\"attribute\")await this.onPropsUpdate(J,X,Y,$,q);await this.didUpdate(Z,J,X,Y,$,q)}attributeChangedCallback(J,X,Y){if(X!==Y&&!this._updatingProps)this.updateCallback(J,X,Y,\"attribute\")}}var j=z;class SJ extends j{_shadowDOM;static _styleSheet=null;constructor(){super();this._shadowDOM=this.attachShadow({mode:\"open\"})}setStyle(J,X=!1){let Y=this.constructor;if(!Y._styleSheet)Y._styleSheet=new CSSStyleSheet;let Z=\"\";if(typeof J===\"object\"){if(!X)this._style={...this._style,...J};else this._style={...J};Z=T(this._style)}else if(typeof J===\"string\")if(!X)Z=Array.from(Y._styleSheet.cssRules||[]).map((q)=>q.cssText).join(`\n`)+`\n`+J;else Z=J;return Y._styleSheet.replaceSync(Z),this._shadowDOM.adoptedStyleSheets=[Y._styleSheet],this._style}async _render(){let J=++this._renderId,X=this.render;if(this.constructor._template!==void 0)X=()=>this.template();let Y=await m(X,this);if(J!==this._renderId)return;let Z=V(Y)||Y===U?\"lit\":\"string\";if(j._hasMiddleware?.(\"render\")&&j._applyMiddleware)Y=j._applyMiddleware(\"render\",this,Y,Z);if(V(Y)||Y===U){R(Y,this._shadowDOM,{host:this});return}let $=Y.trim(),q=Array.from(this._shadowDOM.childNodes);for(let G of q)G.remove();if($===\"\")return;let W=document.createElement(\"template\");W.innerHTML=$,this._shadowDOM.appendChild(W.content)}get dom(){throw Error(\"ShadowComponent DOM can not be accessed. Use the `shadowRoot` property instead.\")}set dom(J){throw Error(\"ShadowComponent DOM can not be overwritten.\")}get shadowRoot(){return this._shadowDOM}set shadowRoot(J){throw Error(\"ShadowComponent shadowRoot can not be overwritten.\")}query(J){return this._shadowDOM.querySelector(J)}queryAll(J){return this._shadowDOM.querySelectorAll(J)}}var cJ=SJ;class JJ{static _debug=!1;static components={};static implementations={};static state={};static subscribers={};static mountCallbacks=new Set;static unmountCallbacks=new Set;static errorCallbacks=new Set;static aliases={};static lazyLoaders={};static middleware={props:new Set,state:new Set,render:new Set};static _initialized=!1;static _init(){if(this._initialized)return;this._initialized=!0,j._onMount=(J,X)=>this._notifyMount(J,X),j._onUnmount=(J,X)=>this._notifyUnmount(J,X),j._onError=(J,X,Y,Z)=>this._notifyError(J,X,Y,Z),j._applyMiddleware=(J,X,Y,Z)=>this._applyMiddleware(J,X,Y,Z),j._hasMiddleware=(J)=>this._hasMiddleware(J)}static register(J,X){if(this._init(),typeof this.components[J]>\"u\")this.components[J]=X,this.implementations[J]=X,X._tag=J,window.customElements.define(J,X),this.components[J]._registered=!0,this.log(`Registered: <${J}>`);else throw Error(\"A component with this tag has already been registered. Use the evolve() function to modify the component.\")}static getImplementation(J){return this.implementations[J]||this.components[J]}static evolve(J,X,Y=!1){if(typeof this.components[J]>\"u\")throw Error(\"No component with this tag has been registered. Cannot Evolve.\");if(this.implementations[J]=X,X._registered=!0,this.log(`Evolved: <${J}>`),Y){let Z=X.prototype,$=Object.getOwnPropertyNames(Z),q={};try{q=Reflect.construct(X,[],X)}catch(W){this.log(`Could not extract defaults for <${J}> during evolve:`,W)}document.querySelectorAll(J).forEach((W)=>{if(W instanceof j&&W.isReady){let G=W;for(let Q of $)if(Q!==\"constructor\"&&typeof Z[Q]===\"function\"){let F=Z[Q];G[Q]=F.bind(W)}if(q._state){let Q=G._state||{},F=q._state;for(let B of Object.keys(F))if(!(B in Q))Q[B]=F[B];G._state=Q}if(q._props){let Q=G._props||{},F=q._props;for(let B of Object.keys(F))if(!(B in Q))Q[B]=F[B];G._props=Q}W.forceRender()}})}}static instances(J,X){if(typeof this.components[J]<\"u\")if(typeof X===\"function\")document.querySelectorAll(J).forEach(X);else return document.querySelectorAll(J);else throw Error(\"No component with the provided tag has been registered.\")}static instantiate(J,X){if(!this.has(J))throw Error(`No component with tag \"${J}\" has been registered.`);if(!this.components[J]._registered)this.register(J,this.components[J]);let Y=document.createElement(this.components[J].tag);return Y.setProps(X),Y}static has(J){return typeof this.components[J]<\"u\"}static get(J){return this.components[J]}static setState(J,X){let Y=this.state[J];if(this.state[J]=X,this.subscribers[J])this.subscribers[J].forEach((Z)=>{Z(X,Y)})}static getState(J){return this.state[J]}static hasState(J){return J in this.state}static deleteState(J){if(J in this.state){let X=this.state[J];if(delete this.state[J],this.subscribers[J])this.subscribers[J].forEach((Y)=>{Y(void 0,X)});return!0}return!1}static subscribe(J,X){if(!this.subscribers[J])this.subscribers[J]=new Set;return this.subscribers[J].add(X),()=>{this.unsubscribe(J,X)}}static unsubscribe(J,X){if(this.subscribers[J])this.subscribers[J].delete(X)}static getAllState(){return{...this.state}}static clearState(){let J=Object.keys(this.state);for(let X of J)this.deleteState(X)}static get debug(){return this._debug}static set debug(J){this._debug=J}static log(J,X){if(this._debug)if(X!==void 0)console.log(`[Pandora] ${J}`,X);else console.log(`[Pandora] ${J}`)}static list(){return Object.keys(this.components)}static stats(J){if(J){if(!this.has(J))throw Error(`No component with tag \"${J}\" has been registered.`);return{tag:J,instanceCount:document.querySelectorAll(J).length,isRegistered:this.components[J]?._registered??!1,isLazy:J in this.lazyLoaders}}return this.list().map((X)=>({tag:X,instanceCount:document.querySelectorAll(X).length,isRegistered:this.components[X]?._registered??!1,isLazy:X in this.lazyLoaders}))}static onMount(J){return this._init(),this.mountCallbacks.add(J),()=>this.mountCallbacks.delete(J)}static onUnmount(J){return this._init(),this.unmountCallbacks.add(J),()=>this.unmountCallbacks.delete(J)}static _notifyMount(J,X){this.log(`Mounted: <${X}>`),this.mountCallbacks.forEach((Y)=>{try{Y(J,X)}catch(Z){console.error(\"[Pandora] Error in onMount callback:\",Z)}})}static _notifyUnmount(J,X){this.log(`Unmounted: <${X}>`),this.unmountCallbacks.forEach((Y)=>{try{Y(J,X)}catch(Z){console.error(\"[Pandora] Error in onUnmount callback:\",Z)}})}static onError(J){return this._init(),this.errorCallbacks.add(J),()=>this.errorCallbacks.delete(J)}static _notifyError(J,X,Y,Z){if(this.log(`Error in <${Y}> during ${Z}:`,J),this.errorCallbacks.size===0)throw J;this.errorCallbacks.forEach(($)=>{try{$(J,X,Y,Z)}catch(q){console.error(\"[Pandora] Error in onError callback:\",q)}})}static alias(J,X){if(!this.has(X))throw Error(`Cannot create alias: no component with tag \"${X}\" has been registered.`);if(this.has(J))throw Error(`Cannot create alias: a component with tag \"${J}\" already exists.`);this.aliases[J]=X;let Y=this.components[X],Z=class extends Y{static _tag=J};this.components[J]=Z,window.customElements.define(J,Z),this.log(`Created alias: <${J}> -> <${X}>`)}static getOriginalTag(J){return this.aliases[J]}static isAlias(J){return J in this.aliases}static lazy(J,X){if(this._init(),this.has(J))throw Error(`Cannot register lazy component: a component with tag \"${J}\" already exists.`);this.lazyLoaders[J]=X;let Y=JJ;class Z extends j{static _tag=J;_lazyLoaded=!1;async connectedCallback(){await Y._loadLazyComponent(J);let $=Y.getImplementation(J);if($&&$!==Z){let q=$.prototype,W=Object.getOwnPropertyNames(q),G=this;for(let F of W)if(F!==\"constructor\"&&typeof q[F]===\"function\"){let B=q[F];G[F]=B.bind(this)}let Q={};try{Q=Reflect.construct($,[],$)}catch(F){Y.log(`Could not extract defaults for lazy <${J}>:`,F)}if(Q._state)G._state={...Q._state};if(Q._props)G._props={...Q._props};this._lazyLoaded=!0}await super.connectedCallback()}}this.components[J]=Z,window.customElements.define(J,Z),this.log(`Registered lazy component: <${J}>`)}static async _loadLazyComponent(J){if(!(J in this.lazyLoaders))return;let X=this.lazyLoaders[J];this.log(`Loading lazy component: <${J}>`);try{let Y=await X(),Z=\"default\"in Y?Y.default:Y;delete this.lazyLoaders[J],this.implementations[J]=Z,Z._registered=!0,this.log(`Loaded lazy component: <${J}>`)}catch(Y){throw console.error(`[Pandora] Failed to load lazy component <${J}>:`,Y),Y}}static isLazy(J){return J in this.lazyLoaders}static async preload(J){if(this.isLazy(J))await this._loadLazyComponent(J)}static use(J,X){return this._init(),this.middleware[J].add(X),()=>this.middleware[J].delete(X)}static _applyMiddleware(J,X,Y,Z){let $=Y;return this.middleware[J].forEach((q)=>{try{$=q(X,$,Z)}catch(W){console.error(`[Pandora] Error in ${J} middleware:`,W)}}),$}static _hasMiddleware(J){return this.middleware[J].size>0}}var C=JJ;function gJ(J){return function(X){return C.register(J,X),X}}function pJ(J){return function(X,Y){let{connectedCallback:Z,disconnectedCallback:$}=X,q=Symbol(`__pandora_unsub_${Y}`),W=Symbol(`__pandora_value_${Y}`);X.connectedCallback=async function(){this[q]=C.subscribe(J,(Q)=>{if(this[W]===Q)return;if(this[W]=Q,this._isReady)this.forceRender()});let G=C.getState(J);if(G!==void 0)this[W]=G;if(Z)await Z.call(this)},X.disconnectedCallback=async function(){if(this[q])this[q](),this[q]=void 0;if($)await $.call(this)},Object.defineProperty(X,Y,{get:function(){return this[W]},set:function(G){if(this[W]===G)return;if(this[W]=G,C.setState(J,G),this._isReady)this.forceRender()},enumerable:!0,configurable:!0})}}function uJ(J){return function(X,Y){let Z=J||Y,$=Symbol(`__pandora_prop_${Y}`);if(!Object.hasOwn(X.constructor,\"_observedAttributes\"))X.constructor._observedAttributes=[];if(!X.constructor._observedAttributes.includes(Z))X.constructor._observedAttributes.push(Z);Object.defineProperty(X,Y,{get:function(){if(this[$]!==void 0)return this[$];if(this.hasAttribute(Z)){let q=this.getAttribute(Z);return iJ(q)}return},set:function(q){if(this[$]=q,typeof q===\"string\"||typeof q===\"number\"||typeof q===\"boolean\")if(typeof q===\"boolean\")if(q)this.setAttribute(Z,\"\");else this.removeAttribute(Z);else this.setAttribute(Z,String(q))},enumerable:!0,configurable:!0})}}function iJ(J){if(J===null)return;if(J===\"\"||J===\"true\")return!0;if(J===\"false\")return!1;if(!isNaN(Number(J)))return J.includes(\".\")?parseFloat(J):parseInt(J,10);return J}var sJ={};export{dJ as svg,R as render,U as nothing,I as noChange,yJ as html,OJ as Util,sJ as Types,cJ as ShadowComponent,C as Registry,gJ as Register,uJ as Prop,pJ as Consumer,j as Component};\n\n//# debugId=2FCD9DA4978383ED64756E2164756E21\n//# sourceMappingURL=pandora.js.map\n", + "import { $_, Text, Util, $_ready, Debug } from '@aegis-framework/artemis';\nimport type { FancyErrorProps, QueuedError, ErrorTemplate, ErrorContext } from './types';\n\ndeclare const Prism: { highlightAll: () => void } | undefined;\ndeclare const MonogatariDebug: object | undefined;\n\n/**\n * FancyError provides a visual error display for development environments.\n * It shows detailed error information in a modal overlay with syntax highlighting.\n */\nexport class FancyError {\n\tstatic queue: QueuedError[] = [];\n\tstatic registry: Map = new Map();\n\n\t/**\n\t * Check if we're in a development environment (file:// protocol or localhost)\n\t */\n\tprivate static isDevEnvironment (): boolean {\n\t\treturn window.location.protocol.indexOf('file') === 0 ||\n\t\t\twindow.location.hostname === 'localhost' ||\n\t\t\twindow.location.hostname === '127.0.0.1';\n\t}\n\n\t/**\n\t * Escape HTML entities to prevent XSS\n\t */\n\tprivate static escapeHtml (text: string): string {\n\t\tconst div = document.createElement('div');\n\t\tdiv.textContent = text;\n\t\treturn div.innerHTML;\n\t}\n\n\t/**\n\t * Generate the modal HTML for an error\n\t */\n\tprivate static generateModalHtml (error: QueuedError): string {\n\t\treturn `\n\t\t\t\n\t\t`;\n\t}\n\n\t/**\n\t * Attach click handler to dismiss an error modal\n\t */\n\tprivate static attachDismissHandler (id: string): void {\n\t\t$_(`[data-error=\"${id}\"] button`).click(function () {\n\t\t\t$_(`[data-error=\"${id}\"]`).remove();\n\t\t\tFancyError.pop();\n\t\t});\n\t\tPrism?.highlightAll();\n\t}\n\n\t/**\n\t * Register an error template by ID.\n\t * IDs follow the convention: type:identifier:error_id (snake_case)\n\t * Examples:\n\t * - action:jump:label_not_found\n\t * - component:language_selection_screen:metadata_not_found\n\t * - engine:translation:key_not_found\n\t */\n\tstatic register (id: string, template: ErrorTemplate): void {\n\t\tFancyError.registry.set(id, template);\n\t}\n\n\t/**\n\t * Interpolate placeholders in a string with context values.\n\t * Placeholders use the format: {{key}}\n\t */\n\tprivate static interpolate (text: string, context: ErrorContext): string {\n\t\treturn text.replace(/\\{\\{(\\w+)\\}\\}/g, (match, key) => {\n\t\t\tconst value = context[key];\n\t\t\tif (value === undefined) {\n\t\t\t\treturn match; // Keep placeholder if no value provided\n\t\t\t}\n\t\t\treturn String(value);\n\t\t});\n\t}\n\n\t/**\n\t * Deep interpolate an object, replacing all string placeholders with context values.\n\t */\n\tprivate static interpolateProps (props: FancyErrorProps, context: ErrorContext): FancyErrorProps {\n\t\tconst result: FancyErrorProps = {};\n\n\t\tfor (const key of Object.keys(props)) {\n\t\t\tconst value = props[key];\n\n\t\t\tif (typeof value === 'string') {\n\t\t\t\tresult[key] = FancyError.interpolate(value, context);\n\t\t\t} else if (Array.isArray(value)) {\n\t\t\t\tresult[key] = value.map(item =>\n\t\t\t\t\ttypeof item === 'string' ? FancyError.interpolate(item, context) : item\n\t\t\t\t);\n\t\t\t} else if (typeof value === 'object' && value !== null && !(value instanceof NodeList)) {\n\t\t\t\tresult[key] = FancyError.interpolateProps(value as FancyErrorProps, context);\n\t\t\t} else {\n\t\t\t\tresult[key] = value;\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic pop (): void {\n\t\tif (FancyError.isDevEnvironment() && typeof Prism !== 'undefined') {\n\t\t\tif (FancyError.queue.length > 0) {\n\t\t\t\tconst error = FancyError.queue.pop()!;\n\t\t\t\t$_('body').prepend(FancyError.generateModalHtml(error));\n\t\t\t\tFancyError.attachDismissHandler(error.id);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Show an error by registered ID with context, or with explicit title/message/props.\n\t *\n\t * Usage with registered error ID:\n\t * FancyError.show('action:jump:label_not_found', { label: 'my_label', step: 5 });\n\t *\n\t * Usage with explicit parameters (legacy):\n\t * FancyError.show('Error Title', 'Error message', { prop: 'value' });\n\t */\n\tstatic show (idOrTitle: string, contextOrMessage?: ErrorContext | string, propsArg?: FancyErrorProps): void {\n\t\tif (typeof MonogatariDebug === 'object' && Debug.currentLevel > 0) {\n\t\t\tlet title: string;\n\t\t\tlet message: string;\n\t\t\tlet props: FancyErrorProps;\n\n\t\t\t// Check if this is a registered error ID\n\t\t\tconst template = FancyError.registry.get(idOrTitle);\n\n\t\t\tif (template && typeof contextOrMessage !== 'string') {\n\t\t\t\t// ID-based call: FancyError.show('error:id', { context })\n\t\t\t\tconst context = (contextOrMessage || {}) as ErrorContext;\n\t\t\t\ttitle = FancyError.interpolate(template.title, context);\n\t\t\t\tmessage = FancyError.interpolate(template.message, context);\n\t\t\t\tprops = FancyError.interpolateProps(template.props, context);\n\n\t\t\t\t// Merge any additional context properties that look like display props\n\t\t\t\t// (keys starting with capital letter or containing spaces) into the final props\n\t\t\t\tfor (const key of Object.keys(context)) {\n\t\t\t\t\tif (/^[A-Z]/.test(key) || key.includes(' ')) {\n\t\t\t\t\t\tprops[key] = context[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Legacy call: FancyError.show('title', 'message', { props })\n\t\t\t\ttitle = idOrTitle || 'Error';\n\t\t\t\tmessage = (contextOrMessage as string) || 'An error has occurred! Please check the console so you get more insight.';\n\t\t\t\tprops = propsArg || {};\n\t\t\t}\n\n\t\t\tconst id = Util.uuid();\n\n\t\t\tconst error: QueuedError = {\n\t\t\t\tid,\n\t\t\t\ttitle,\n\t\t\t\tmessage,\n\t\t\t\tprops\n\t\t\t};\n\n\t\t\tif ($_('[data-error]').isVisible()) {\n\t\t\t\tFancyError.queue.unshift(error);\n\t\t\t} else {\n\t\t\t\tconst showError = (): void => {\n\t\t\t\t\t$_('body').prepend(FancyError.generateModalHtml(error));\n\t\t\t\t\tFancyError.attachDismissHandler(id);\n\t\t\t\t};\n\n\t\t\t\tif ($_('body').length > 0) {\n\t\t\t\t\tshowError();\n\t\t\t\t} else {\n\t\t\t\t\t$_ready(showError);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic render (props: FancyErrorProps = {}): string {\n\t\tlet html = '
';\n\t\tfor (const key of Object.keys(props)) {\n\t\t\tconst value = props[key];\n\t\t\tif (typeof value === 'string' || typeof value === 'number') {\n\t\t\t\thtml += `

${key}: ${value}

`;\n\t\t\t} else if (value instanceof Array) {\n\t\t\t\thtml += `
${key}:
    `;\n\t\t\t\tfor (const item of value) {\n\t\t\t\t\thtml += `
  • ${item}
  • `;\n\t\t\t\t}\n\t\t\t\thtml += '
';\n\t\t\t} else if (value instanceof NodeList) {\n\t\t\t\thtml += `

${key}:

`;\n\t\t\t\tfor (const item of value) {\n\t\t\t\t\tif (item instanceof Element) {\n\t\t\t\t\t\thtml += `${item.outerHTML.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thtml += '

';\n\t\t\t}\n\t\t}\n\t\thtml += '
';\n\n\t\tfor (const key of Object.keys(props)) {\n\t\t\tconst value = props[key];\n\t\t\tif (typeof value === 'object' && !(value instanceof Array) && !(value instanceof NodeList)) {\n\t\t\t\tconst obj = value as FancyErrorProps;\n\t\t\t\thtml += `

${Text.capitalize(key)}

`;\n\t\t\t\tfor (const property of Object.keys(obj)) {\n\t\t\t\t\tif (property.indexOf('_') === 0) {\n\t\t\t\t\t\thtml += `

${obj[property]}

`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst propValue = obj[property];\n\t\t\t\t\t\tif (typeof propValue === 'string' || typeof propValue === 'number') {\n\t\t\t\t\t\t\thtml += `

${property}: ${propValue}

`;\n\t\t\t\t\t\t} else if (propValue instanceof Array) {\n\t\t\t\t\t\t\thtml += `
${property}:
    `;\n\t\t\t\t\t\t\tfor (const item of propValue) {\n\t\t\t\t\t\t\t\thtml += `
  • ${item}
  • `;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thtml += '
';\n\t\t\t\t\t\t} else if (propValue instanceof NodeList) {\n\t\t\t\t\t\t\thtml += `

${property}:

`;\n\t\t\t\t\t\t\tfor (const item of propValue) {\n\t\t\t\t\t\t\t\tif (item instanceof Element) {\n\t\t\t\t\t\t\t\t\thtml += `${item.outerHTML.replace(/&/g, '&').replace(//g, '>').replace(/\"/g, '"')}`;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\thtml += '

';\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\thtml += '
';\n\t\t\t}\n\t\t}\n\t\treturn html;\n\t}\n}\n\n", + "import type { AudioEffectConfig, AudioEffectResult, AudioPlayerOptions } from './types';\n\n/**\n * AudioPlayer provides a high-level API for playing audio with effects\n * using the Web Audio API.\n */\nclass AudioPlayer {\n\tprivate audioContext: AudioContext;\n\tprivate sourceNode: AudioBufferSourceNode | null = null;\n\tprivate gainNode: GainNode;\n\tprivate effectChainNodes: AudioNode[] = [];\n\n\tprivate _isPlaying: boolean = false;\n\tprivate _isPaused: boolean = false;\n\tprivate _loop: boolean = false;\n\tprivate _volume: number = 1;\n\tprivate startedAt: number = 0;\n\tprivate pausedAt: number = 0;\n\n\tprivate buffer: AudioBuffer;\n\tprivate effectsConfig: Record>;\n\tprivate stoppableResources: AudioEffectResult[] = [];\n\n\tprivate static effectRegistry: Map = new Map();\n\tprivate static workletReadyPromises: WeakMap> = new WeakMap();\n\n\t/**\n\t * Callback fired when playback ends\n\t */\n\tonended: (() => void) | null = null;\n\n\t/**\n\t * Dataset for storing arbitrary data\n\t */\n\tdataset: Record = {};\n\n\tstatic effect (id: string, configuration: Omit | null = null): AudioEffectConfig | null {\n\t\tif (configuration !== null) {\n\t\t\tthis.effectRegistry.set(id, { id, ...configuration });\n\t\t}\n\n\t\treturn this.effectRegistry.get(id) || null;\n\t}\n\n\tstatic effects (): AudioEffectConfig[] {\n\t\treturn Array.from(this.effectRegistry.values());\n\t}\n\n\tstatic async initialize (audioContext: AudioContext): Promise {\n\t\tif (this.workletReadyPromises.has(audioContext)) {\n\t\t\treturn this.workletReadyPromises.get(audioContext)!;\n\t\t}\n\n\t\t// Check if audioWorklet is supported\n\t\tif (!audioContext.audioWorklet) {\n\t\t\tconsole.warn('AudioWorklet not supported in this browser. Some effects may not work.');\n\t\t\tconst readyPromise = Promise.resolve([]);\n\t\t\tthis.workletReadyPromises.set(audioContext, readyPromise);\n\t\t\treturn readyPromise;\n\t\t}\n\n\t\tconst workletDefs: Record = {\n\t\t\t'bitcrusher-processor': `\n\t\t\t\tclass BitcrusherProcessor extends AudioWorkletProcessor {\n\t\t\t\t\tstatic get parameterDescriptors () {\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t{ name: 'bits', defaultValue: 8, minValue: 1, maxValue: 16 },\n\t\t\t\t\t\t\t{ name: 'frequency', defaultValue: 0.1, minValue: 0, maxValue: 1 }\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\n\t\t\t\t\tconstructor () {\n\t\t\t\t\t\tsuper ();\n\t\t\t\t\t\tthis.phase = 0;\n\t\t\t\t\t\tthis.lastSample = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tprocess (inputs, outputs, parameters) {\n\t\t\t\t\t\tconst input = inputs[0];\n\t\t\t\t\t\tconst output = outputs[0];\n\t\t\t\t\t\tconst bits = parameters.bits[0];\n\t\t\t\t\t\tconst frequency = parameters.frequency[0];\n\t\t\t\t\t\tconst step = Math.pow (0.5, bits - 1);\n\t\t\t\t\t\tconst sampleRateFactor = 1 / sampleRate;\n\t\t\t\t\t\tconst freq = frequency * sampleRate;\n\n\t\t\t\t\t\tfor (let channel = 0; channel < output.length; channel++) {\n\t\t\t\t\t\t\tconst inputChannel = input[channel];\n\t\t\t\t\t\t\tconst outputChannel = output[channel];\n\t\t\t\t\t\t\tfor (let i = 0; i < outputChannel.length; i++) {\n\t\t\t\t\t\t\t\tthis.phase += freq * sampleRateFactor;\n\t\t\t\t\t\t\t\tif (this.phase >= 1.0) {\n\t\t\t\t\t\t\t\t\tthis.phase -= 1.0;\n\t\t\t\t\t\t\t\t\tthis.lastSample = step * Math.floor (inputChannel[i] / step + 0.5);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\toutputChannel[i] = this.lastSample;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tregisterProcessor ('bitcrusher-processor', BitcrusherProcessor);\n\t\t\t`,\n\t\t\t'envelope-follower-processor': `\n\t\t\t\tclass EnvelopeFollowerProcessor extends AudioWorkletProcessor {\n\t\t\t\t\tstatic get parameterDescriptors () {\n\t\t\t\t\t\treturn [\n\t\t\t\t\t\t\t{ name: 'attack', defaultValue: 0.01, minValue: 0, maxValue: 1 },\n\t\t\t\t\t\t\t{ name: 'release', defaultValue: 0.1, minValue: 0, maxValue: 1 }\n\t\t\t\t\t\t];\n\t\t\t\t\t}\n\n\t\t\t\t\tconstructor () {\n\t\t\t\t\t\tsuper ();\n\t\t\t\t\t\tthis._envelope = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tprocess (inputs, outputs, parameters) {\n\t\t\t\t\t\tconst input = inputs[0][0]; // Mono input\n\t\t\t\t\t\tconst output = outputs[0][0]; // Control signal output\n\t\t\t\t\t\tconst attack = parameters.attack[0];\n\t\t\t\t\t\tconst release = parameters.release[0];\n\n\t\t\t\t\t\tfor (let i = 0; i < input.length; i++) {\n\t\t\t\t\t\t\tconst absValue = Math.abs (input[i]);\n\t\t\t\t\t\t\tif (absValue > this._envelope) {\n\t\t\t\t\t\t\t\tthis._envelope = attack * (this._envelope - absValue) + absValue;\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tthis._envelope = release * (this._envelope - absValue) + absValue;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\toutput[i] = this._envelope;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tregisterProcessor ('envelope-follower-processor', EnvelopeFollowerProcessor);\n\t\t\t`\n\t\t};\n\n\t\tconst workletPromises = Object.entries(workletDefs).map(async ([name, code]) => {\n\t\t\tconst blob = new Blob([code], { type: 'application/javascript' });\n\t\t\tconst url = URL.createObjectURL(blob);\n\t\t\ttry {\n\t\t\t\tawait audioContext.audioWorklet.addModule(url);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(`Failed to load worklet: ${name}`, e);\n\t\t\t} finally {\n\t\t\t\t// Revoke the blob URL to prevent memory leak\n\t\t\t\tURL.revokeObjectURL(url);\n\t\t\t}\n\t\t});\n\n\t\tconst readyPromise = Promise.all(workletPromises);\n\n\t\tthis.workletReadyPromises.set(audioContext, readyPromise);\n\n\t\treturn readyPromise;\n\t}\n\n\t/**\n\t * @param audioContext - The Web Audio API AudioContext.\n\t * @param buffer - The decoded audio data to play.\n\t * @param options - Configuration options.\n\t */\n\tconstructor (audioContext: AudioContext, buffer: AudioBuffer, { outputNode = null, effects = {}, loop = false, paused = false, volume = 1 }: AudioPlayerOptions = {}) {\n\t\tthis.audioContext = audioContext;\n\t\tthis.buffer = buffer;\n\t\tthis.effectsConfig = effects;\n\t\tthis._loop = loop;\n\t\tthis._isPaused = paused;\n\n\t\tthis.gainNode = outputNode || this.audioContext.createGain();\n\t\tthis._volume = volume;\n\t\tthis.gainNode.gain.value = volume;\n\t}\n\n\tprivate createSourceNode (): AudioBufferSourceNode {\n\t\t// Disconnect and release any existing resources first.\n\t\tthis.cleanup();\n\n\t\tconst source = this.audioContext.createBufferSource();\n\t\tsource.buffer = this.buffer;\n\t\tsource.loop = this._loop;\n\n\t\tsource.onended = () => {\n\t\t\t// Ignore if it was stopped manually, which sets onended to null\n\t\t\tif (source.onended === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis._isPlaying = false;\n\n\t\t\t// Do not mark end as paused\n\t\t\tthis._isPaused = false;\n\t\t\tthis.cleanup();\n\n\t\t\tif (typeof this.onended === 'function') {\n\t\t\t\tthis.onended();\n\t\t\t}\n\t\t};\n\n\t\treturn source;\n\t}\n\n\tprivate createEffectChain (): void {\n\t\tlet currentNode: AudioNode = this.sourceNode!;\n\t\tthis.stoppableResources = [];\n\t\tthis.effectChainNodes = [];\n\n\t\tfor (const [id, params] of Object.entries(this.effectsConfig)) {\n\t\t\tconst configuration = AudioPlayer.effect(id);\n\n\t\t\tif (!configuration) {\n\t\t\t\tconsole.warn(`Unknown effect type: ${id}`);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\tconst effect = configuration.create(this.audioContext, params || {});\n\t\t\t\tlet effectNode: AudioNode;\n\n\t\t\t\t// Handle complex effects that return an object with a node and lifecycle methods\n\t\t\t\tif (effect && typeof (effect as AudioEffectResult).node !== 'undefined') {\n\t\t\t\t\tconst complexEffect = effect as AudioEffectResult;\n\t\t\t\t\teffectNode = complexEffect.node;\n\t\t\t\t\tif (typeof complexEffect.stop === 'function' || typeof complexEffect.disconnect === 'function') {\n\t\t\t\t\t\tthis.stoppableResources.push(complexEffect);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\teffectNode = effect as AudioNode;\n\t\t\t\t}\n\n\t\t\t\tif (effectNode instanceof AudioNode) {\n\t\t\t\t\tcurrentNode.connect(effectNode);\n\t\t\t\t\tcurrentNode = effectNode;\n\t\t\t\t\tthis.effectChainNodes.push(effectNode);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tconsole.error(`Error creating effect '${id}':`, error);\n\t\t\t}\n\t\t}\n\n\t\t// Connect the end of the chain to the main gain node\n\t\tcurrentNode.connect(this.gainNode);\n\t}\n\n\tprivate cleanup (): void {\n\t\t// Stop any oscillators or other managed resources from effects\n\t\tthis.stoppableResources.forEach(resource => {\n\t\t\tif (resource.stop) {\n\t\t\t\tresource.stop();\n\t\t\t}\n\n\t\t\tif (resource.disconnect) {\n\t\t\t\tresource.disconnect();\n\t\t\t}\n\t\t});\n\n\t\tthis.stoppableResources = [];\n\n\t\t// Disconnect all effect nodes\n\t\tthis.effectChainNodes.forEach(node => node.disconnect());\n\t\tthis.effectChainNodes = [];\n\n\t\t// Disconnect and nullify the source node\n\t\tif (this.sourceNode) {\n\t\t\t// Setting onended to null prevents the callback from firing on a manual stop\n\t\t\tthis.sourceNode.onended = null;\n\n\t\t\ttry {\n\t\t\t\tthis.sourceNode.stop(0);\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('Error stopping source node:', e);\n\t\t\t}\n\n\t\t\tthis.sourceNode.disconnect();\n\t\t\tthis.sourceNode = null;\n\t\t}\n\t}\n\n\tasync play (): Promise {\n\t\tif (this._isPlaying) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Ensure worklets are ready before trying to create nodes that might use them\n\t\tconst readyPromise = AudioPlayer.workletReadyPromises.get(this.audioContext) || Promise.resolve([]);\n\n\t\ttry {\n\t\t\tawait readyPromise;\n\n\t\t\tif (this.audioContext.state === 'suspended') {\n\t\t\t\tawait this.audioContext.resume();\n\t\t\t}\n\n\t\t\tthis.sourceNode = this.createSourceNode();\n\n\t\t\tconst offset = this._isPaused ? this.pausedAt : 0;\n\t\t\tthis.startedAt = this.audioContext.currentTime - offset;\n\n\t\t\tthis.createEffectChain();\n\n\t\t\tthis.sourceNode.start(0, offset);\n\n\t\t\tthis._isPlaying = true;\n\t\t\tthis._isPaused = false;\n\t\t} catch (error) {\n\t\t\tconsole.error('Error during playback:', error);\n\t\t\tthrow error;\n\t\t}\n\t}\n\n\tpause (): void {\n\t\tif (!this._isPlaying) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.pausedAt = this.audioContext.currentTime - this.startedAt;\n\t\tthis._isPlaying = false;\n\t\tthis._isPaused = true;\n\n\t\t// This will call onended, which we suppress, and then we clean up.\n\t\tthis.cleanup();\n\t}\n\n\tstop (): void {\n\t\tif (!this.sourceNode && !this._isPlaying) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.pausedAt = 0;\n\t\tthis.startedAt = 0;\n\t\tthis._isPlaying = false;\n\t\tthis._isPaused = false;\n\n\t\tthis.cleanup();\n\t}\n\n\tget volume (): number {\n\t\treturn this._volume;\n\t}\n\n\tset volume (value: number) {\n\t\tthis._volume = value;\n\t\tthis.gainNode.gain.setValueAtTime(value, this.audioContext.currentTime);\n\t}\n\n\tget loop (): boolean {\n\t\treturn this._loop;\n\t}\n\n\tset loop (value: boolean) {\n\t\tthis._loop = value;\n\t\tif (this.sourceNode) {\n\t\t\tthis.sourceNode.loop = value;\n\t\t}\n\t}\n\n\tget isPlaying (): boolean {\n\t\treturn this._isPlaying;\n\t}\n\n\tget isPaused (): boolean {\n\t\treturn this._isPaused;\n\t}\n\n\tget paused (): boolean {\n\t\treturn this._isPaused;\n\t}\n\n\tget ended (): boolean {\n\t\treturn !this._isPlaying && !this._isPaused;\n\t}\n\n\tget hasEnded (): boolean {\n\t\treturn !this._isPlaying && !this._isPaused;\n\t}\n\n\tget duration (): number {\n\t\treturn this.buffer.duration;\n\t}\n\n\tget currentTime (): number {\n\t\tif (this._isPaused) {\n\t\t\treturn this._loop ? this.pausedAt % this.duration : this.pausedAt;\n\t\t}\n\t\tif (this._isPlaying) {\n\t\t\tconst elapsed = this.audioContext.currentTime - this.startedAt;\n\t\t\treturn this._loop ? elapsed % this.duration : elapsed;\n\t\t}\n\t\treturn 0;\n\t}\n\n\tset currentTime (value: number) {\n\t\tif (value < 0 || value > this.duration) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst wasPlaying = this._isPlaying;\n\n\t\tif (wasPlaying) {\n\t\t\tthis.cleanup();\n\t\t}\n\n\t\tthis.pausedAt = value;\n\t\tthis._isPaused = true;\n\t\tthis._isPlaying = false;\n\n\t\tif (wasPlaying) {\n\t\t\tthis.play();\n\t\t}\n\t}\n\n\tget output (): GainNode {\n\t\treturn this.gainNode;\n\t}\n\n\tprivate _targetVolume: number = 1;\n\n\tasync fadeIn (duration: number, targetVolume?: number): Promise {\n\t\tif (!this._isPlaying) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Use provided target volume, or stored target volume, or current volume\n\t\tconst target = targetVolume ?? this._targetVolume;\n\t\tthis._targetVolume = target;\n\n\t\tconst startTime = this.audioContext.currentTime;\n\t\tconst endTime = startTime + duration;\n\n\t\t// Start from 0 (or current value if already partially faded) and ramp to target\n\t\tthis.gainNode.gain.setValueAtTime(0, startTime);\n\t\tthis.gainNode.gain.linearRampToValueAtTime(target, endTime);\n\n\t\t// Wait for the fade to complete\n\t\tawait new Promise(resolve => setTimeout(resolve, duration * 1000));\n\n\t\t// Update tracked volume after fade completes\n\t\tthis._volume = target;\n\t}\n\n\tasync fadeOut (duration: number, stopAfterFade: boolean = false): Promise {\n\t\tif (!this._isPlaying) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Save current volume as target for potential fadeIn later\n\t\tthis._targetVolume = this._volume;\n\n\t\tconst startTime = this.audioContext.currentTime;\n\t\tconst endTime = startTime + duration;\n\n\t\tthis.gainNode.gain.setValueAtTime(this._volume, startTime);\n\t\tthis.gainNode.gain.linearRampToValueAtTime(0, endTime);\n\n\t\t// Wait for the fade to complete\n\t\tawait new Promise(resolve => setTimeout(resolve, duration * 1000));\n\n\t\t// Update tracked volume after fade completes\n\t\tthis._volume = 0;\n\n\t\t// Optionally stop the audio after fade completes\n\t\tif (stopAfterFade) {\n\t\t\tthis.stop();\n\t\t}\n\t}\n\n\tdestroy (): void {\n\t\tthis.stop();\n\t\tthis.gainNode.disconnect();\n\t\tthis.onended = null;\n\t}\n}\n\n// Register built-in effects\nAudioPlayer.effect('filter', {\n\tdescription: 'Applies a Biquad filter (lowpass, highpass, etc.)',\n\tparams: ['type', 'frequency', 'Q', 'gain'],\n\tcreate: (audioContext, { type = 'lowpass', frequency = 800, Q = 1, gain = 0 }) => {\n\t\tconst filter = audioContext.createBiquadFilter();\n\n\t\tfilter.type = type as BiquadFilterType;\n\t\tfilter.frequency.value = frequency as number;\n\t\tfilter.Q.value = Q as number;\n\t\tfilter.gain.value = gain as number;\n\n\t\treturn filter;\n\t},\n});\n\nAudioPlayer.effect('delay', {\n\tdescription: 'A simple delay effect',\n\tparams: ['time', 'feedback', 'mix'],\n\tcreate: (audioContext, { time = 0.4, feedback = 0.5, mix = 0.5 }) => {\n\t\tconst delayNode = audioContext.createDelay(5.0);\n\t\tconst feedbackGain = audioContext.createGain();\n\t\tconst wetGain = audioContext.createGain();\n\t\tconst dryGain = audioContext.createGain();\n\t\tconst merger = audioContext.createChannelMerger(1);\n\n\t\tdelayNode.delayTime.value = time as number;\n\t\tfeedbackGain.gain.value = feedback as number;\n\t\twetGain.gain.value = mix as number;\n\t\tdryGain.gain.value = 1 - (mix as number);\n\n\t\tdelayNode.connect(feedbackGain);\n\t\tfeedbackGain.connect(delayNode);\n\n\t\tconst inputGain = audioContext.createGain();\n\n\t\tinputGain.connect(dryGain);\n\t\tinputGain.connect(delayNode);\n\n\t\tdryGain.connect(merger, 0, 0);\n\t\tdelayNode.connect(wetGain);\n\t\twetGain.connect(merger, 0, 0);\n\n\t\treturn {\n\t\t\tnode: inputGain,\n\t\t\tdisconnect: () => wetGain.disconnect(),\n\t\t};\n\t},\n});\n\nAudioPlayer.effect('compressor', {\n\tdescription: 'Dynamic range compression',\n\tparams: ['threshold', 'knee', 'ratio', 'attack', 'release'],\n\tcreate: (audioContext, { threshold = -24, knee = 30, ratio = 12, attack = 0.003, release = 0.25 }) => {\n\t\tconst compressor = audioContext.createDynamicsCompressor();\n\n\t\tcompressor.threshold.value = threshold as number;\n\t\tcompressor.knee.value = knee as number;\n\t\tcompressor.ratio.value = ratio as number;\n\t\tcompressor.attack.value = attack as number;\n\t\tcompressor.release.value = release as number;\n\n\t\treturn compressor;\n\t},\n});\n\nAudioPlayer.effect('tremolo', {\n\tdescription: 'Modulates the amplitude of the signal',\n\tparams: ['frequency', 'depth'],\n\tcreate: (audioContext, { frequency = 5, depth = 0.8 }) => {\n\t\tconst tremoloGain = audioContext.createGain();\n\n\t\ttremoloGain.gain.value = 1;\n\n\t\tconst lfo = audioContext.createOscillator();\n\n\t\tlfo.type = 'sine';\n\t\tlfo.frequency.value = frequency as number;\n\n\t\tconst lfoGain = audioContext.createGain();\n\n\t\tlfoGain.gain.value = (depth as number) / 2;\n\n\t\tconst offset = audioContext.createConstantSource();\n\n\t\toffset.offset.value = 1 - ((depth as number) / 2);\n\t\toffset.start();\n\n\t\tlfo.connect(lfoGain);\n\t\tlfoGain.connect(tremoloGain.gain);\n\t\toffset.connect(tremoloGain.gain);\n\n\t\tlfo.start();\n\n\t\treturn {\n\t\t\tnode: tremoloGain,\n\t\t\tstop: () => {\n\t\t\t\tlfo.stop();\n\t\t\t\toffset.stop();\n\t\t\t},\n\t\t\tdisconnect: () => {\n\t\t\t\tlfo.disconnect();\n\t\t\t\toffset.disconnect();\n\t\t\t},\n\t\t};\n\t},\n});\n\nAudioPlayer.effect('distortion', {\n\tdescription: 'Applies wave-shaping distortion',\n\tparams: ['amount', 'oversample'],\n\tcreate: (audioContext, { amount = 50, oversample = '4x' }) => {\n\t\tconst waveshaper = audioContext.createWaveShaper();\n\n\t\tconst k = typeof amount === 'number' ? amount : 50;\n\t\tconst n_samples = 44100;\n\t\tconst curve = new Float32Array(n_samples);\n\t\tconst deg = Math.PI / 180;\n\n\t\tfor (let i = 0; i < n_samples; ++i) {\n\t\t\tconst x = i * 2 / n_samples - 1;\n\t\t\tcurve[i] = (3 + k) * x * 20 * deg / (Math.PI + k * Math.abs(x));\n\t\t}\n\n\t\twaveshaper.curve = curve;\n\t\twaveshaper.oversample = oversample as OverSampleType;\n\n\t\treturn waveshaper;\n\t},\n});\n\nAudioPlayer.effect('convreverb', {\n\tdescription: 'Convolution reverb with a generated impulse response',\n\tparams: ['seconds', 'decay', 'reverse'],\n\tcreate: (audioContext, { seconds = 2, decay = 2, reverse = false }) => {\n\t\tconst convolver = audioContext.createConvolver();\n\t\tconst sampleRate = audioContext.sampleRate;\n\t\tconst length = sampleRate * (seconds as number);\n\t\tconst impulse = audioContext.createBuffer(2, length, sampleRate);\n\n\t\tconst impulseL = impulse.getChannelData(0);\n\t\tconst impulseR = impulse.getChannelData(1);\n\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tconst n = reverse ? length - i : i;\n\t\t\timpulseL[i] = (Math.random() * 2 - 1) * Math.pow(1 - n / length, decay as number);\n\t\t\timpulseR[i] = (Math.random() * 2 - 1) * Math.pow(1 - n / length, decay as number);\n\t\t}\n\n\t\tconvolver.buffer = impulse;\n\t\treturn convolver;\n\t},\n});\n\nAudioPlayer.effect('bitcrusher', {\n\tdescription: 'Reduces bit depth and sample rate of the signal',\n\tparams: ['bits', 'frequency'],\n\tcreate: (audioContext, { bits = 4, frequency = 0.1 }) => {\n\t\ttry {\n\t\t\tif (!audioContext.audioWorklet) {\n\t\t\t\tconsole.warn('AudioWorklet not available, using fallback for bitcrusher');\n\t\t\t\treturn audioContext.createGain();\n\t\t\t}\n\n\t\t\tconst bitcrusherNode = new AudioWorkletNode(audioContext, 'bitcrusher-processor');\n\n\t\t\tbitcrusherNode.parameters.get('bits')!.value = bits as number;\n\t\t\tbitcrusherNode.parameters.get('frequency')!.value = frequency as number;\n\n\t\t\treturn bitcrusherNode;\n\t\t} catch (e) {\n\t\t\tconsole.error('Failed to create Bitcrusher');\n\t\t\tconsole.error(e);\n\n\t\t\treturn audioContext.createGain();\n\t\t}\n\t},\n});\n\nAudioPlayer.effect('autowah', {\n\tdescription: 'An envelope-following filter (auto-wah)',\n\tparams: ['baseFrequency', 'octaves', 'sensitivity', 'Q'],\n\tcreate: (audioContext, { baseFrequency = 100, octaves = 6, sensitivity = 0.5, Q = 10 }) => {\n\t\ttry {\n\t\t\tif (!audioContext.audioWorklet) {\n\t\t\t\tconsole.warn('AudioWorklet not available, using fallback for autowah');\n\t\t\t\treturn audioContext.createGain();\n\t\t\t}\n\n\t\t\tconst filter = audioContext.createBiquadFilter();\n\n\t\t\tfilter.type = 'bandpass';\n\t\t\tfilter.Q.value = Q as number;\n\n\t\t\tconst follower = new AudioWorkletNode(audioContext, 'envelope-follower-processor');\n\n\t\t\tconst scaler = audioContext.createGain();\n\n\t\t\tscaler.gain.value = (baseFrequency as number) * Math.pow(2, octaves as number) * (sensitivity as number);\n\n\t\t\tconst baseFreqNode = audioContext.createConstantSource();\n\n\t\t\tbaseFreqNode.offset.value = baseFrequency as number;\n\t\t\tbaseFreqNode.start();\n\n\t\t\tconst inputGain = audioContext.createGain();\n\n\t\t\tinputGain.connect(filter);\n\t\t\tinputGain.connect(follower);\n\n\t\t\tfollower.connect(scaler);\n\t\t\tscaler.connect(filter.frequency);\n\t\t\tbaseFreqNode.connect(filter.frequency);\n\n\t\t\treturn {\n\t\t\t\tnode: inputGain,\n\t\t\t\tstop: () => baseFreqNode.stop(),\n\t\t\t\tdisconnect: () => {\n\t\t\t\t\tfollower.disconnect();\n\t\t\t\t\tscaler.disconnect();\n\t\t\t\t\tbaseFreqNode.disconnect();\n\t\t\t\t}\n\t\t\t};\n\t\t} catch (e) {\n\t\t\tconsole.error('Failed to create AutoWah');\n\t\t\tconsole.error(e);\n\n\t\t\treturn audioContext.createGain();\n\t\t}\n\t}\n});\n\nAudioPlayer.effect('panner', {\n\tdescription: 'Positions the sound in 3D space',\n\tparams: ['x', 'y', 'z'],\n\tcreate: (audioContext, { x = 0, y = 0, z = 0 }) => {\n\t\tconst panner = audioContext.createPanner();\n\n\t\tpanner.panningModel = 'HRTF';\n\t\tpanner.positionX.value = x as number;\n\t\tpanner.positionY.value = y as number;\n\t\tpanner.positionZ.value = z as number;\n\n\t\treturn panner;\n\t}\n});\n\nAudioPlayer.effect('phaser', {\n\tdescription: 'A sweeping phase-shifting effect',\n\tparams: ['frequency', 'depth', 'feedback', 'stages'],\n\tcreate: (audioContext, { frequency = 0.5, depth = 1000, feedback = 0.5, stages = 4 }) => {\n\t\tconst inputGain = audioContext.createGain();\n\t\tconst feedbackGain = audioContext.createGain();\n\n\t\tfeedbackGain.gain.value = feedback as number;\n\n\t\tconst filters: BiquadFilterNode[] = [];\n\n\t\tfor (let i = 0; i < (stages as number); i++) {\n\t\t\tconst filter = audioContext.createBiquadFilter();\n\n\t\t\tfilter.type = 'allpass';\n\t\t\tfilter.frequency.value = 1000;\n\t\t\tfilters.push(filter);\n\t\t}\n\n\t\tconst lfo = audioContext.createOscillator();\n\n\t\tlfo.type = 'sine';\n\t\tlfo.frequency.value = frequency as number;\n\n\t\tconst lfoGain = audioContext.createGain();\n\n\t\tlfoGain.gain.value = depth as number;\n\n\t\tlfo.connect(lfoGain);\n\t\tfilters.forEach(f => lfoGain.connect(f.frequency));\n\n\t\tinputGain.connect(filters[0]);\n\n\t\tfor (let i = 0; i < (stages as number) - 1; i++) {\n\t\t\tfilters[i].connect(filters[i + 1]);\n\t\t}\n\n\t\tconst lastFilter = filters[(stages as number) - 1];\n\t\tlastFilter.connect(feedbackGain);\n\t\tfeedbackGain.connect(filters[0]);\n\n\t\tconst merger = audioContext.createChannelMerger(1);\n\t\tinputGain.connect(merger, 0, 0);\n\t\tlastFilter.connect(merger, 0, 0);\n\n\t\tlfo.start();\n\n\t\treturn {\n\t\t\tnode: inputGain,\n\t\t\tstop: () => lfo.stop(),\n\t\t\tdisconnect: () => {\n\t\t\t\tlfo.disconnect();\n\t\t\t\tmerger.disconnect();\n\t\t\t},\n\t\t};\n\t}\n});\n\nAudioPlayer.effect('chorus', {\n\tdescription: 'Creates a thicker sound by modulating a delayed signal',\n\tparams: ['frequency', 'delay', 'depth', 'mix'],\n\tcreate: (audioContext, { frequency = 1.5, delay = 0.025, depth = 0.002, mix = 0.5 }) => {\n\t\tconst inputGain = audioContext.createGain();\n\t\tconst delayNode = audioContext.createDelay(0.1);\n\t\tconst wetGain = audioContext.createGain();\n\t\tconst dryGain = audioContext.createGain();\n\n\t\tconst lfo = audioContext.createOscillator();\n\n\t\tlfo.type = 'sine';\n\t\tlfo.frequency.value = frequency as number;\n\n\t\tconst lfoGain = audioContext.createGain();\n\n\t\tlfoGain.gain.value = depth as number;\n\n\t\tdelayNode.delayTime.value = delay as number;\n\t\twetGain.gain.value = mix as number;\n\t\tdryGain.gain.value = 1.0 - (mix as number);\n\n\t\tlfo.connect(lfoGain);\n\t\tlfoGain.connect(delayNode.delayTime);\n\n\t\tinputGain.connect(delayNode);\n\t\tinputGain.connect(dryGain);\n\t\tdelayNode.connect(wetGain);\n\n\t\tconst merger = audioContext.createChannelMerger(1);\n\n\t\tdryGain.connect(merger);\n\t\twetGain.connect(merger);\n\n\t\tlfo.start();\n\n\t\treturn {\n\t\t\tnode: inputGain,\n\t\t\tstop: () => lfo.stop(),\n\t\t\tdisconnect: () => {\n\t\t\t\tlfo.disconnect();\n\t\t\t\tmerger.disconnect();\n\t\t\t}\n\t\t};\n\t},\n});\n\nAudioPlayer.effect('wah', {\n\tdescription: 'A sweeping filter effect, like a guitar wah-wah pedal',\n\tparams: ['baseFrequency', 'Q', 'depth', 'frequency'],\n\tcreate: (audioContext, { baseFrequency = 350, Q = 15, depth = 1500, frequency = 2 }) => {\n\t\tconst filter = audioContext.createBiquadFilter();\n\n\t\tfilter.type = 'bandpass';\n\t\tfilter.Q.value = Q as number;\n\n\t\tconst lfo = audioContext.createOscillator();\n\n\t\tlfo.type = 'sine';\n\t\tlfo.frequency.value = frequency as number;\n\n\t\tconst lfoGain = audioContext.createGain();\n\n\t\tlfoGain.gain.value = depth as number;\n\n\t\tconst baseFreqNode = audioContext.createConstantSource();\n\n\t\tbaseFreqNode.offset.value = baseFrequency as number;\n\t\tbaseFreqNode.start();\n\n\t\tlfo.connect(lfoGain);\n\t\tlfoGain.connect(filter.frequency);\n\t\tbaseFreqNode.connect(filter.frequency);\n\n\t\tlfo.start();\n\n\t\treturn {\n\t\t\tnode: filter,\n\t\t\tstop: () => {\n\t\t\t\tlfo.stop();\n\t\t\t\tbaseFreqNode.stop();\n\t\t\t},\n\t\t\tdisconnect: () => {\n\t\t\t\tlfo.disconnect();\n\t\t\t\tbaseFreqNode.disconnect();\n\t\t\t},\n\t\t};\n\t}\n});\n\nAudioPlayer.effect('ringmod', {\n\tdescription: 'Ring modulation for creating metallic, bell-like sounds',\n\tparams: ['frequency', 'mix'],\n\tcreate: (audioContext, { frequency = 30, mix = 0.5 }) => {\n\t\tconst inputGain = audioContext.createGain();\n\t\tconst ringMod = audioContext.createGain();\n\t\tconst wetGain = audioContext.createGain();\n\t\tconst dryGain = audioContext.createGain();\n\n\t\tconst modulator = audioContext.createOscillator();\n\n\t\tmodulator.type = 'sine';\n\t\tmodulator.frequency.value = frequency as number;\n\n\t\twetGain.gain.value = mix as number;\n\t\tdryGain.gain.value = 1.0 - (mix as number);\n\t\tringMod.gain.value = 0;\n\n\t\tmodulator.connect(ringMod.gain);\n\t\tinputGain.connect(ringMod);\n\n\t\tconst merger = audioContext.createChannelMerger(1);\n\n\t\tinputGain.connect(dryGain);\n\t\tringMod.connect(wetGain);\n\t\tdryGain.connect(merger);\n\t\twetGain.connect(merger);\n\n\t\tmodulator.start();\n\n\t\treturn {\n\t\t\tnode: inputGain,\n\t\t\tstop: () => modulator.stop(),\n\t\t\tdisconnect: () => {\n\t\t\t\tmodulator.disconnect();\n\t\t\t\tmerger.disconnect();\n\t\t\t},\n\t\t};\n\t},\n});\n\nAudioPlayer.effect('saturator', {\n\tdescription: 'Soft clipping for warmth and harmonics',\n\tparams: ['drive'],\n\tcreate: (audioContext, { drive = 5 }) => {\n\t\tconst waveshaper = audioContext.createWaveShaper();\n\t\tconst curve = new Float32Array(44100);\n\n\t\tfor (let i = 0; i < 44100; i++) {\n\t\t\tconst x = (i * 2) / 44100 - 1;\n\t\t\tcurve[i] = Math.tanh(x * (drive as number));\n\t\t}\n\n\t\twaveshaper.curve = curve;\n\n\t\treturn waveshaper;\n\t},\n});\n\nAudioPlayer.effect('limiter', {\n\tdescription: 'A hard compressor to prevent signal peaks from exceeding a threshold',\n\tparams: ['threshold', 'release'],\n\tcreate: (audioContext, { threshold = -1.0, release = 0.05 }) => {\n\t\tconst limiter = audioContext.createDynamicsCompressor();\n\n\t\tlimiter.threshold.value = threshold as number;\n\t\tlimiter.knee.value = 0;\n\t\tlimiter.ratio.value = 20;\n\t\tlimiter.attack.value = 0.001;\n\t\tlimiter.release.value = release as number;\n\n\t\treturn limiter;\n\t},\n});\n\nAudioPlayer.effect('fadein', {\n\tdescription: 'Fade in effect that gradually increases volume from 0 to target',\n\tparams: ['duration'],\n\tcreate: (audioContext, { duration = 1.0 }) => {\n\t\tconst gainNode = audioContext.createGain();\n\n\t\tgainNode.gain.setValueAtTime(0, audioContext.currentTime);\n\t\tgainNode.gain.linearRampToValueAtTime(1, audioContext.currentTime + (duration as number));\n\n\t\treturn gainNode;\n\t},\n});\n\nAudioPlayer.effect('fadeout', {\n\tdescription: 'Fade out effect that gradually decreases volume to 0',\n\tparams: ['duration'],\n\tcreate: (audioContext, { duration = 1.0 }) => {\n\t\tconst gainNode = audioContext.createGain();\n\n\t\tgainNode.gain.setValueAtTime(1, audioContext.currentTime);\n\t\tgainNode.gain.linearRampToValueAtTime(0, audioContext.currentTime + (duration as number));\n\n\t\treturn gainNode;\n\t},\n});\n\nexport default AudioPlayer;\n", + "import {\n $_,\n $_ready,\n Space,\n Platform,\n Preload,\n FileSystem,\n Debug\n} from '@aegis-framework/artemis';\nimport type { DOM, EventCallback } from '@aegis-framework/artemis';\nimport { Registry } from '@aegis-framework/pandora';\nimport { FancyError } from './lib/FancyError';\nimport AudioPlayer from './lib/AudioPlayer';\nimport type { StaticComponent, StaticAction, Character, GameSettings, PlayerPreferences, StateMap, HistoryMap, GlobalsMap, ActionInstance, StorageInterface } from './lib/types';\nimport deeply from 'deeply';\nimport { version } from '../package.json';\nimport { Random, browserCrypto } from 'random-js';\n\n// TODO: We need to decouple these.\nimport type TypeWriterComponent from './components/type-writer';\nimport type PreloadAction from './actions/Preload';\n\nimport type { VisualNovelEngine } from './lib/types/Monogatari';\nimport { characters as _characters, character as _character } from './engine/characters';\nimport {\n translateString,\n localize as _localize,\n translate as _translate,\n replaceVariables as _replaceVariables,\n translations as _translations,\n translation as _translation,\n languageMetadata as _languageMetadata,\n} from './engine/i18n';\n\nimport {\n assets as _assets,\n asset as _asset,\n audioBufferCache as _audioBufferCache,\n audioBufferUncache as _audioBufferUncache,\n audioBufferClearCache as _audioBufferClearCache,\n imageCache as _imageCache,\n imageUncache as _imageUncache,\n imageClearCache as _imageClearCache,\n clearAllCaches as _clearAllCaches,\n cacheInServiceWorker as _cacheInServiceWorker,\n isInServiceWorkerCache as _isInServiceWorkerCache,\n getFromServiceWorkerCache as _getFromServiceWorkerCache,\n serializeAudioBuffer as _serializeAudioBuffer,\n deserializeAudioBuffer as _deserializeAudioBuffer,\n audioBufferSpace as _audioBufferSpace,\n isIndexedDBAvailable as _isIndexedDBAvailable,\n storeAudioBufferPersistent as _storeAudioBufferPersistent,\n getAudioBufferPersistent as _getAudioBufferPersistent,\n removeAudioBufferPersistent as _removeAudioBufferPersistent,\n clearAudioBufferPersistent as _clearAudioBufferPersistent,\n} from './engine/assets';\n\nimport {\n keyboardShortcut as _keyboardShortcut,\n registerListener as _registerListener,\n unregisterListener as _unregisterListener,\n runListener as _runListener,\n} from './engine/input';\n\nimport {\n showAlert as _showAlert,\n dismissAlert as _dismissAlert,\n playAmbient as _playAmbient,\n stopAmbient as _stopAmbient,\n showMainScreen as _showMainScreen,\n showSplashScreen as _showSplashScreen,\n autoPlay as _autoPlay,\n distractionFree as _distractionFree,\n skip as _skip,\n showScreen as _showScreen,\n hideScreens as _hideScreens,\n resize as _resize,\n goBack as _goBack,\n displayInitialScreen as _displayInitialScreen,\n} from './engine/ui';\n\nimport {\n gameObject as _gameObject,\n saveTo as _saveTo,\n resetGame as _resetGame,\n upgrade as _upgrade,\n setupStorage as _setupStorage,\n loadFromSlot as _loadFromSlot,\n} from './engine/persistence';\n\nimport {\n assertAsync as _assertAsync,\n next as _next,\n previous as _previous,\n prepareAction as _prepareAction,\n revert as _revert,\n run as _run,\n proceed as _proceed,\n rollback as _rollback,\n shouldProceed as _shouldProceed,\n willProceed as _willProceed,\n stopTyping as _stopTyping,\n shouldRollback as _shouldRollback,\n willRollback as _willRollback,\n} from './engine/lifecycle';\n\n// Declare MonogatariDebug as a global variable (set by debug module when loaded)\ndeclare const MonogatariDebug: object | undefined;\n\n// Extend Window interface for Cypress\ndeclare global {\n interface Window {\n Cypress?: unknown;\n }\n}\n\n/**\n * Overcome the `this` is undefined\n */\nconst merge = deeply.bind({});\n\n/**\n * Every Monogatari Game is composed mainly of the following items:\n *\n * Actions: The list of capabilities a Monogatari script can run.\n *\n * Components: The list of screens and other HTML elements available in the game.\n *\n * State: The current state of the game, this simple object contains the current\n * label and step as well as the things being shown or played by every action.\n *\n * History: Every action and even components may keep a history on what statements\n *\t\t\thave been applied. The history is\n *\n * Assets: The list of different assets declared by the developer to use in throughout\n * \t\t the game.\n *\n * Script: All the labels and statements that make up the story and game play.\n *\n * Characters: The list of characters that participate in the script of the game.\n *\n * Monogatari follows a 3-step life cycle:\n *\n * 1. Setup - All needed elements are added to the DOM and all variables get\n * \t\t\t initialized. This first step is all about preparing all the needed\n * \t\t\t elements.\n *\n * 2. Bind - Once the game has been setup, its time to bind all the necessary\n * event listeners or perform more operations on the DOM.\n *\n * 3. Init - Finally, once the game was setup and it performed all the needed\n * bindings, it may declare or modify variables that needed the HTML to\n * be setup first or perform any other needed final operations. In this\n * \t\t\t step, all needed elements will now be shown and the game will begin.\n *\n */\nclass Monogatari {\n\n /**\n * Returns the class typed as VisualNovelEngine.\n * This enables type-safe access while allowing external users to extend\n * the VisualNovelEngine interface via declaration merging.\n *\n * @internal\n */\n private static asEngine(): VisualNovelEngine {\n return this as unknown as VisualNovelEngine;\n }\n\n static _languageMetadata: Record = {};\n static _events: Record = {};\n\n static _selector = '#monogatari';\n\n static _actions: StaticAction[] = [];\n static _components: StaticComponent[] = [];\n static _translations: Record> = {};\n static _script: Record = {};\n static _characters: Record = {};\n static _storage: Record = {};\n\n // Web Audio API context for audio playback with effects\n static audioContext: AudioContext | undefined;\n\n // Asset caches for decoded audio and images\n static _audioBufferCache: Map = new Map();\n static _imageCache: Map = new Map();\n\n // Persistent audio buffer storage\n static _audioBufferSpace: Space | null = null;\n\n // Track IndexedDB availability: null = not checked, true = available, false = unavailable\n static _indexedDBAvailable: boolean | null = null;\n\n // Whether the developer has overridden the default onSaveScreenshot callback\n static _hasCustomSaveScreenshot = false;\n\n static Storage: StorageInterface = new Space () as unknown as StorageInterface;\n\n // Screenshot callbacks with defaults. Override to customize screenshot storage.\n private static _onSaveScreenshot: (slotKey: string, blob: Blob) => Promise = async (slotKey, blob) => {\n await Monogatari.Storage.set(`${slotKey}__screenshot`, blob);\n\n return `${slotKey}__screenshot`;\n };\n\n static get onSaveScreenshot(): (slotKey: string, blob: Blob) => Promise {\n return this._onSaveScreenshot;\n }\n\n static set onSaveScreenshot(callback: (slotKey: string, blob: Blob) => Promise) {\n this._onSaveScreenshot = callback;\n\n this._hasCustomSaveScreenshot = true;\n }\n\n static onLoadScreenshot: (key: string) => Promise = async (key) => {\n const blob = await Monogatari.Storage.get(key) as Blob;\n\n return URL.createObjectURL(blob);\n };\n\n static onDeleteScreenshot: (key: string) => Promise = async (key) => {\n await Monogatari.Storage.remove(key);\n };\n\n static _mediaPlayers: Record void }) | (HTMLVideoElement & { stop?: () => void })>> = {\n music: {},\n sound: {},\n voice: {},\n video: {}\n };\n\n static _state: StateMap = {\n step: 0,\n label: 'Start',\n music: [],\n sound: [],\n voice: [],\n scene: '',\n background: '',\n characters: [],\n characterLayers: [],\n images: [],\n particles: '',\n videos: [],\n canvas: [],\n textboxHidden: false,\n };\n\n static _history: HistoryMap = {\n label: [],\n music: [],\n sound: [],\n voice: [],\n scene: [],\n background: [],\n sceneElements: [],\n sceneState: [],\n character: [],\n characterLayer: [],\n image: [],\n particle: [],\n video: [],\n canvas: [],\n nvl: [],\n clear: [],\n choice: [],\n jump: [],\n conditional: [],\n };\n\n static ambientPlayer: HTMLAudioElement | null = null;\n\n static _functions: Record boolean; revert: () => boolean }> = {};\n\n static _$: Record = {};\n\n static _assets: Record> = {\n music: {},\n voices: {},\n sounds: {},\n videos: {},\n images: {},\n scenes: {},\n gallery: {}\n };\n\n // These are the default settings and they are overwritten by the user's settings\n // New elements here will no conflict with the user's settings and allows a better\n // update experience\n static _settings: GameSettings = {\n\n // The name of your game, this will be used to store all the data so once\n // you've released a game using one name, it shouldn't change. Please use the\n // Version Setting to indicate a new release of your game!\n 'Name': 'My Visual Novel',\n\n // The version of your game in semantic versioning (https://semver.org/).\n 'Version': '0.1.0',\n\n // Initial Label *\n 'Label': 'Start',\n\n // Number of AutoSave Slots\n 'Slots': 10,\n\n // Change to true for a MultiLanguage GameScreen.\n 'MultiLanguage': false,\n\n // If the 'Multilanguage' setting is set to `true`. This will enable a\n // language selection screen that will be shown before the asset loading\n // screen. If set to false, the loading screen will appear first instead and\n // players will have to change the language from the settings screen.\n 'LanguageSelectionScreen': true,\n\n // Music for the Main Menu.\n 'MainScreenMusic': '',\n\n // Prefix for the Save Slots in Local Storage.\n 'SaveLabel': 'Save',\n 'AutoSaveLabel': 'AutoSave',\n\n // Turn main menu on/off; Default: true *\n 'ShowMainScreen': true,\n\n // Turn image preloading on/off, Default: true\n 'Preload': true,\n\n // Time interval between autosaves (In Minutes). Default: 0 (Off)\n 'AutoSave': 0,\n\n // Enable service workers; Default: true *\n 'ServiceWorkers': true,\n\n // The Aspect Ratio your background images are on. This has no effect on\n // web deployed novels.\n 'AspectRatio': '16:9',\n\n // Force aspect ratio, it will make all images to comply with aspect ratio.\n // Values: 'None' (don't force), 'Visuals' (force only visuals)\n // or 'Global' (force all game)\n 'ForceAspectRatio': 'None',\n\n // Enables or disables the typing text animation for the whole game.\n 'TypeAnimation': true,\n\n // Enables or disables the typing text animation in NVL dialogs for the\n // whole game.\n 'NVLTypeAnimation': true,\n\n // Enables or disables the typing animation for the narrator.\n // If the previous property was set to false, the narrator won't shown\n // the animation even if this is set to true.\n 'NarratorTypeAnimation': true,\n\n // Enables or disables the typing animation for the special centered\n // character. If the TypeAnimation property was set to false, the centered\n // character won't show the animation even if this is set to true.\n 'CenteredTypeAnimation': true,\n\n // When true, finishing a typing animation (e.g. clicking during text)\n // will instantly show all remaining text rather than fast-forwarding.\n 'InstantText': false,\n\n // Force some orientation on mobile devices. If this setting is set either\n // to portrait or landscape, a warning message will be displayed so the\n // player rotates its device.\n // Possible values: any, portrait or landscape.\n 'Orientation': 'any',\n\n // Allow players to skip through the game. Similar to the auto play feature,\n // skipping will allow players to go through the game really fast.\n // If this value is set to 0, no skipping will be allowed but if it's set\n // to a higher number, skipping will be allowed and that value will be taken\n // as the speed in milliseconds with which the game will skip through the script\n 'Skip': 0,\n\n // Define the directories where the assets are located. The root directory is\n // the holder for the other asset specific directories, this directories are\n // used when retrieving the files on the game.\n 'AssetsPath': {\n 'root': 'assets',\n 'characters': 'characters',\n 'icons': 'icons',\n 'images': 'images',\n 'music': 'music',\n 'scenes': 'scenes',\n 'sounds': 'sounds',\n 'ui': 'ui',\n 'videos': 'videos',\n 'voices': 'voices',\n 'gallery': 'gallery'\n },\n\n // Name of the Splash Screen Label. If a name is given and a label with that\n // name exists on the game's script, it will be used to show a splash screen\n // right after the loading screen.\n 'SplashScreenLabel': '_SplashScreen',\n\n // Define what storage engine should be used to save the game data. *\n // Adapters Available:\n // - LocalStorage: This one is used by default\n // - SessionStorage: Same as LocalStorage but will be cleared when the page\n // \t\t\t\t\t is closed.\n // - IndexedDB: The information is saved using the IndexedDB web API\n // - RemoteStorage: The information will be sent and retrieved from a given\n //\t\t\t\t\tURL Endpoint providing a REST API.\n 'Storage': {\n 'Adapter': 'LocalStorage',\n 'Store': 'GameData',\n 'Endpoint': ''\n },\n\n // Whether players can go back to previous points of the game or not.\n // Default: true\n // If this is set to false, the \"Back\" button on the quick menu will not be\n // shown and the left arrow keyboard shortcut will be disabled.\n 'AllowRollback': true,\n\n // Whether experimental features should be enabled or not. Default: false\n // These features are unfinished and unstable, chances are they will still\n // go through a lot of changes and functionality won't have any backward\n // compatibility rendering your save files unusable on many cases.\n 'ExperimentalFeatures': false,\n\n // Enable screenshot capture for save slots. When true, save slots show a\n // screenshot of the game screen instead of just the scene/background image.\n // Requires IndexedDB adapter or custom onSaveScreenshot/onLoadScreenshot callbacks.\n 'Screenshots': false\n };\n\n static _preferences: PlayerPreferences = {\n\n // Initial Language for Multilanguage Games or for the Default GUI Language.\n 'Language': 'English',\n\n // Initial Volumes from 0.0 to 1.\n 'Volume': {\n 'Music': 1,\n 'Voice': 1,\n 'Sound': 1,\n 'Video': 1\n },\n\n // Initial resolution used for Electron, it must match the settings inside\n // the electron.js file. This has no effect on web deployed novels.\n 'Resolution': '800x600',\n\n // Speed at which dialog text will appear\n 'TextSpeed': 20,\n\n // Speed at which the Auto Play feature will show the next statement\n // It is measured in seconds and starts counting after the text is\n // completely displayed.\n 'AutoPlaySpeed': 5\n };\n\n static _globals: Partial = {\n distraction_free: false,\n delete_slot: null,\n overwrite_slot: null,\n\n playing: false,\n current_auto_save_slot: 1,\n _auto_play_timer: null,\n skip: null,\n _log: [],\n _auto_save_interval: null,\n\n\n _restoring_state: false,\n on_splash_screen: false,\n\n _didSetup: false,\n _didBind: false,\n _didInit: false,\n _engine_block: false,\n\n // TODO: Eventually get rid of these as they are deprecated\n block: false,\n _executing_sub_action: false,\n\n };\n\n static _listeners: Array<{ name: string; keys?: string | string[]; callback: (this: VisualNovelEngine, event: Event, element: DOM) => unknown }> = [];\n\n static _configuration: Record = {\n 'main-menu': {\n buttons: [\n {\n string: 'Start',\n data: {\n action: 'start'\n }\n },\n {\n string: 'Load',\n data: {\n action: 'open-screen',\n open: 'load'\n }\n },\n {\n string: 'Settings',\n data: {\n action: 'open-screen',\n open: 'settings'\n }\n },\n {\n string: 'Help',\n data: {\n action: 'open-screen',\n open: 'help'\n }\n }\n ]\n },\n 'quick-menu': {\n buttons: [\n {\n string: 'Back',\n icon: 'fas fa-arrow-left',\n link: '#',\n data: {\n action: 'back'\n }\n },\n {\n string: 'Hide',\n icon: 'fas fa-eye',\n data: {\n action: 'distraction-free'\n }\n },\n {\n string: 'AutoPlay',\n icon: 'fas fa-play-circle',\n data: {\n action: 'auto-play'\n }\n },\n {\n string: 'Skip',\n icon: 'fas fa-fast-forward',\n data: {\n action: 'skip'\n }\n },\n {\n string: 'Save',\n icon: 'fas fa-save',\n data: {\n action: 'open-screen',\n open: 'save'\n }\n },\n {\n string: 'Load',\n icon: 'fas fa-undo',\n data: {\n action: 'open-screen',\n open: 'load'\n }\n },\n {\n string: 'Settings',\n icon: 'fas fa-cog',\n data: {\n action: 'open-screen',\n open: 'settings'\n }\n },\n {\n string: 'Quit',\n icon: 'fas fa-times-circle',\n data: {\n action: 'end'\n }\n }\n ]\n },\n credits: {}\n };\n\n static _templates: Record = {};\n\n static _upgrade: Record unknown; replaceStorage?: boolean }> = {};\n\n static _temp: Record = {};\n\n static version: string = version;\n\n static _id: string = 'visual-novel';\n\n\n /**\n * @static onStart - This is the main onStart function, it acts as an event\n * listener when the game is started. This function will call its action\n * counterparts.\n *\n * @return {Promise} - The promise is resolved if all action's onStart function\n * was resolved and is rejected if any were rejected.\n */\n static onStart () {\n const promises = [];\n\n for (const component of this.components ()) {\n promises.push (component.onStart ());\n }\n\n for (const action of this.actions ()) {\n promises.push (action.onStart ());\n }\n\n return Promise.all (promises);\n }\n\n /**\n * @static onLoad - This is the main onStart function, it acts as an event\n * listener when a game is loaded. This function will call its action\n * counterparts so that each action is able to run any operations needed\n * when a game is loaded such as restoring their state.\n *\n * @return {Promise} - The promise is resolved is all action's onLoad function\n * was resolved and is rejected if any were rejected.\n */\n static onLoad () {\n const promises = [];\n\n this.global ('_restoring_state', true);\n\n const actions = this.actions ();\n const orders = [...new Set(actions.map(action => action.loadingOrder))].sort();\n\n const loadActions = (actions: StaticAction[], dependency = Promise.resolve()) => {\n return dependency.then(() => {\n const _promises: Promise[] = [];\n for (const action of actions) {\n _promises.push (action.onLoad ());\n }\n return Promise.all(_promises);\n });\n };\n\n let previous: Promise = Promise.resolve();\n\n for (const order of orders) {\n previous = loadActions(actions.filter(a => a.loadingOrder === order), previous as Promise);\n }\n\n promises.push(previous);\n\n for (const component of this.components ()) {\n promises.push (component.onLoad ());\n }\n\n return Promise.all (promises).then ((promises) => {\n this.global ('_restoring_state', false);\n return Promise.resolve (promises);\n });\n }\n\n /**\n * @static width - Determines the real width of the Monogatari element, pretty\n * useful when dealing with canvas or other things that require specific measurements.\n *\n * @return {number} - Computed Width of the element\n */\n static width () {\n return this.element().width();\n }\n\n /**\n * @static height - Determines the real height of the Monogatari element, pretty\n * useful when dealing with canvas or other things that require specific measurements.\n *\n * @return {number} - Computed Width of the element\n */\n static height () {\n return this.element().height();\n }\n\n /**\n * @static debug - If the Monogatari debug file is present, this function\n * will give access to the debug tools that are a replacement for the console\n * log functions.\n *\n * @returns {Debug} - Proxy to the Artemis Debug Class\n */\n static get debug () {\n return new Proxy (Debug, {\n apply (target, receiver, args) {\n if (typeof MonogatariDebug === 'object') {\n return Reflect.apply (target, receiver, args);\n }\n }\n });\n }\n\n static set debug (_) {\n throw new Error ('Debug reference cannot be overriden.');\n }\n\n /**\n * @static string - Gets the translation of a string. This is of course limited\n * to the translations defined for each language using the translation\n * function.\n *\n * @param {string} key - The key of the string whose translation is needed\n *\n * @return {string} - String translation in the current language given the\n * user's preferences.\n */\n static string (key: string): string | undefined {\n return translateString (this.asEngine (), key);\n }\n\n /**\n * @static history - Simple function to access, create and modify history\n * objects. Each history is a simple array.\n *\n * @param {Object|string} [object = null] - Object with which current\n * history object will be updated with (i.e. Object.assign) or a string to access\n * a specific history. If a string is given and that history does not exists,\n * this method will create it for us.\n *\n * @return {type} - If the parameter passed was a string, this function will\n * return the history associated with that name. If no argument was passed,\n * it will return the whole history object containing all histories.\n */\n /**\n * Get the entire history object\n */\n static history(): HistoryMap;\n /**\n * Get a specific history array by key (creates if doesn't exist)\n */\n static history(key: K): HistoryMap[K];\n /**\n * Update history with partial object\n */\n static history(object: Partial): void;\n static history(object?: K | Partial | null): HistoryMap | HistoryMap[K] | void {\n if (object !== null && object !== undefined) {\n if (typeof object === 'string') {\n if (typeof this._history[object] === 'undefined') {\n (this._history as Record)[object] = [];\n }\n return this._history[object];\n } else {\n this._history = Object.assign({}, this._history, object) as HistoryMap;\n }\n } else {\n return this._history;\n }\n }\n\n /**\n * Get the entire state object\n */\n static state(): StateMap;\n /**\n * Get a specific state value by key\n */\n static state(key: K): StateMap[K];\n /**\n * Update state with partial object (triggers willUpdateState/didUpdateState events)\n */\n static state(object: Partial): StateMap;\n static state(object?: K | Partial): StateMap | StateMap[K] {\n if (typeof object === 'string') {\n return this._state[object];\n }\n\n if (typeof object === 'object' && object !== null) {\n const oldState = Object.assign({}, this._state);\n const newState = merge(this._state, object);\n\n this.trigger('willUpdateState', {\n oldState,\n newState\n });\n\n this._state = newState;\n\n this.trigger('didUpdateState', {\n oldState,\n newState: this._state\n });\n }\n\n return this._state;\n }\n\n /**\n * @static registerAction - Register an Action to the actions list. All actions\n * should be registered before calling the init () method so their Mounting\n * cycle is done correctly.\n *\n * @param {Action} action - Action to register. Remember each action must\n * have an unique ID.\n */\n static registerAction (action: StaticAction, naturalPosition = false) {\n action.engine = this.asEngine();\n\n if (naturalPosition) {\n this._actions.push (action);\n } else {\n this._actions.unshift (action);\n }\n }\n\n /**\n * @static unregisterAction - Removes an action from the actions list. Any\n * action you want to remove should be removed before calling the init ()\n * method so that their Mounting cycle is not executed.\n *\n * @param {string} action - ID of the Action to unregister. Remember each action must\n * have an unique ID.\n */\n static unregisterAction (action: string) {\n this._actions = this._actions.filter ((a) => a.id.toLowerCase () !== action.toLowerCase ());\n }\n\n /**\n * @static actions - Returns the list of registered Actions.\n *\n * @return {Action[]} - List of registered Actions\n */\n static actions () {\n /** @type {boolean} */\n const experimentalFeatures = this.setting ('ExperimentalFeatures');\n\n return this._actions.filter(action => {\n return action._experimental === false || experimentalFeatures === true;\n });\n }\n\n /**\n * @static action - Access to an specific action class\n *\n * @param {string} id - ID of the action you want to access to.\n * @return {Action} - Returns the action that matches the given ID\n */\n static action (id: string): StaticAction | undefined {\n return this._actions.find ((a) => a.id.toLowerCase () === id.toLowerCase ());\n }\n\n /**\n * @static registerComponent - Register a Component to the components list.\n * All components should be registered before calling the init () method so\n * their Mounting cycle is done correctly.\n *\n * @param {Component} component - Component to register. Remember each\n * component must have an unique ID.\n */\n static registerComponent (component: StaticComponent) {\n const alreadyRegistered = this.components ().findIndex (c => c.tag === component.tag) > -1;\n\n if (typeof window.customElements.get (component.tag) !== 'undefined') {\n FancyError.show ('engine:component:already_registered', {\n tag: component.tag,\n component: component,\n unregisterCode: `
monogatari.unregisterComponent ('${component.tag}')
`\n });\n }\n\n component.engine = this.asEngine();\n\n if (alreadyRegistered && !this.global ('_didSetup')) {\n // Remove the previous one\n this.unregisterComponent (component.tag);\n } else if (!alreadyRegistered && this.global ('_didSetup')) {\n Registry.register(component.tag, component);\n }\n\n this._components.push (component);\n }\n\n /**\n * @static unregisterComponent - Removes a component from the components list.\n * Any component you want to remove should be removed before calling the\n * init () method so that their Mounting cycle is not executed.\n *\n * @param {string} component - ID of the Component to unregister. Remember\n * each component must have an unique ID.\n */\n static unregisterComponent (component: string) {\n if (!this.global ('_didSetup')) {\n this._components = this.components ().filter ((c) => c.tag.toLowerCase() !== component.toLowerCase());\n } else {\n FancyError.show ('engine:component:unregister_after_setup', {\n component: component\n });\n }\n }\n\n /**\n * @static components - Returns the list of registered Components.\n *\n * @return {Component[]} - List of registered Components\n */\n static components (): StaticComponent[] {\n /** @type {boolean} */\n const experimentalFeatures = this.setting ('ExperimentalFeatures');\n\n return this._components.filter(component => {\n return component._experimental === false || experimentalFeatures === true;\n });\n }\n\n /**\n * @static component - Access to an specific component class\n *\n * @param {string} id - ID of the component you want to access to.\n *\n * @return {Component} - Returns the component class that matches the ID\n */\n static component (id: string) {\n const normalizedId = id.toLowerCase ();\n\n return this.components ().find ((c) => c.tag === normalizedId);\n }\n\n /**\n * @static assets - Simple function to modify and access the assets object,\n * all declared assets such as audio, videos and images should be registered\n * in these objects.\n *\n * @param {string} [type = null] - The type of asset you are referring to\n * @param {Object} [object = null] - The key/value object to assign to that asset type\n *\n * @return {Object} - If this function is called with no arguments, the whole\n * assets object will be returned.\n */\n static assets (type: string | null = null, object: Record | null = null): Record> | Record | undefined {\n return _assets (this.asEngine (), type, object);\n }\n\n static asset (type: string, name: string, value: string | null = null) {\n return _asset (this.asEngine (), type, name, value);\n }\n\n /**\n * Get or set a cached AudioBuffer\n * @param key - Cache key (e.g., 'music/theme')\n * @param buffer - AudioBuffer to cache (if setting)\n * @returns The cached AudioBuffer if getting, undefined otherwise\n */\n static audioBufferCache(key: string): AudioBuffer | undefined;\n static audioBufferCache(key: string, buffer: AudioBuffer): void;\n static audioBufferCache(key?: string, buffer?: AudioBuffer): AudioBuffer | undefined | void {\n return _audioBufferCache(this.asEngine(), key as string, buffer as AudioBuffer);\n }\n\n /**\n * Remove an AudioBuffer from the cache\n * @param key - Cache key to remove\n * @returns true if the key existed and was removed\n */\n static audioBufferUncache(key: string): boolean {\n return _audioBufferUncache(this.asEngine(), key);\n }\n\n /**\n * Clear AudioBuffer cache, optionally filtered by prefix\n * @param pattern - If provided, only clear keys starting with this pattern\n */\n static audioBufferClearCache(pattern?: string): void {\n return _audioBufferClearCache(this.asEngine(), pattern);\n }\n\n /**\n * Get or set a cached HTMLImageElement\n * @param key - Cache key (e.g., 'scenes/forest')\n * @param image - HTMLImageElement to cache (if setting)\n * @returns The cached HTMLImageElement if getting, undefined otherwise\n */\n static imageCache(key: string): HTMLImageElement | undefined;\n static imageCache(key: string, image: HTMLImageElement): void;\n static imageCache(key?: string, image?: HTMLImageElement): HTMLImageElement | undefined | void {\n return _imageCache(this.asEngine(), key as string, image as HTMLImageElement);\n }\n\n /**\n * Remove an HTMLImageElement from the cache\n * @param key - Cache key to remove\n * @returns true if the key existed and was removed\n */\n static imageUncache(key: string): boolean {\n return _imageUncache(this.asEngine(), key);\n }\n\n /**\n * Clear image cache, optionally filtered by prefix\n * @param pattern - If provided, only clear keys starting with this pattern\n */\n static imageClearCache(pattern?: string): void {\n return _imageClearCache(this.asEngine(), pattern);\n }\n\n /**\n * Clear all asset caches (audio and image)\n */\n static clearAllCaches(): void {\n return _clearAllCaches(this.asEngine());\n }\n\n // =========================================================================\n // Service Worker Communication\n // =========================================================================\n\n /**\n * Request the service worker to cache specified asset URLs\n * @param urls - Array of URLs to cache\n * @returns Promise resolving to cache result\n */\n static async cacheInServiceWorker(urls: string[]): Promise<{ success: boolean; cached?: number; total?: number; error?: string }> {\n return _cacheInServiceWorker(urls);\n }\n\n /**\n * Check if an asset URL is cached in the service worker\n * @param url - URL to check\n * @returns Promise resolving to whether the URL is cached\n */\n static async isInServiceWorkerCache(url: string): Promise {\n return _isInServiceWorkerCache(url);\n }\n\n /**\n * Get cached raw data from service worker (for decoding)\n * @param url - URL of the cached asset\n * @returns Promise resolving to ArrayBuffer if found, undefined otherwise\n */\n static async getFromServiceWorkerCache(url: string): Promise {\n return _getFromServiceWorkerCache(url);\n }\n\n /**\n * Serialized AudioBuffer format for IndexedDB storage\n */\n static serializeAudioBuffer(buffer: AudioBuffer): {\n channels: Float32Array[];\n sampleRate: number;\n length: number;\n numberOfChannels: number;\n } {\n return _serializeAudioBuffer(buffer);\n }\n\n /**\n * Reconstruct an AudioBuffer from serialized data\n * This is much faster than re-decoding from raw audio file\n */\n static deserializeAudioBuffer(\n data: { channels: ArrayLike[]; sampleRate: number; length: number; numberOfChannels: number },\n audioContext: AudioContext\n ): AudioBuffer {\n return _deserializeAudioBuffer(data, audioContext);\n }\n\n /**\n * Get the persistent audio buffer Space instance (IndexedDB)\n * Lazily initialized on first access. Returns null if IndexedDB is unavailable.\n */\n static async audioBufferSpace(): Promise {\n return _audioBufferSpace(this.asEngine());\n }\n\n /**\n * Check if IndexedDB is available for audio caching\n * @returns true if available, false if not, null if not yet checked\n */\n static isIndexedDBAvailable(): boolean | null {\n return _isIndexedDBAvailable(this.asEngine());\n }\n\n /**\n * Store a decoded AudioBuffer in persistent storage (IndexedDB)\n * @param key - Cache key (e.g., 'music/theme')\n * @param buffer - AudioBuffer to store\n */\n static async storeAudioBufferPersistent(key: string, buffer: AudioBuffer): Promise {\n return _storeAudioBufferPersistent(this.asEngine(), key, buffer);\n }\n\n /**\n * Retrieve a decoded AudioBuffer from persistent storage (IndexedDB)\n * @param key - Cache key (e.g., 'music/theme')\n * @returns The AudioBuffer if found, undefined otherwise\n */\n static async getAudioBufferPersistent(key: string): Promise {\n return _getAudioBufferPersistent(this.asEngine(), key);\n }\n\n /**\n * Remove an AudioBuffer from persistent storage (IndexedDB)\n * @param key - Cache key to remove\n */\n static async removeAudioBufferPersistent(key: string): Promise {\n return _removeAudioBufferPersistent(this.asEngine(), key);\n }\n\n /**\n * Clear all AudioBuffers from persistent storage (IndexedDB)\n */\n static async clearAudioBufferPersistent(): Promise {\n return _clearAudioBufferPersistent(this.asEngine());\n }\n\n static characters (object: Record | null = null): Record {\n return _characters (this.asEngine (), object);\n }\n\n static character (id: string, object: Partial | null = null): Character | undefined {\n return _character (this.asEngine (), id, object);\n }\n\n static languageMetadata (language: string, object: { code?: string; icon?: string } | null = null): { code: string; icon: string } | Record | undefined {\n return _languageMetadata (this.asEngine (), language, object);\n }\n\n static translations (object: string | Record> | null = null): Record | Record> | undefined {\n return _translations (this.asEngine (), object);\n }\n\n static translation (language: string, strings?: Record): Record {\n return _translation (this.asEngine (), language, strings);\n }\n\n /**\n * Get a setting value by key\n */\n static setting(key: K): GameSettings[K];\n /**\n * Set a setting value by key\n */\n static setting(key: K, value: GameSettings[K]): GameSettings[K];\n static setting(key: K, value?: GameSettings[K] | null): GameSettings[K] {\n if (value !== undefined && value !== null) {\n this._settings[key] = value;\n return this._settings[key];\n }\n\n if (typeof this._settings[key] !== 'undefined') {\n return this._settings[key];\n }\n\n throw new Error(`Tried to access non existent setting with name '${key}'.`);\n }\n\n static settings (object: Partial | null = null): GameSettings {\n if (object !== null) {\n this._settings = merge (this._settings, object);\n }\n\n return this._settings;\n }\n\n /**\n * Get a preference value by key\n */\n static preference(key: K): PlayerPreferences[K];\n /**\n * Set a preference value by key\n */\n static preference(key: K, value: PlayerPreferences[K]): PlayerPreferences[K];\n static preference(key: K, value?: PlayerPreferences[K] | null): PlayerPreferences[K] {\n if (value !== undefined && value !== null) {\n this._preferences[key] = value;\n this.Storage.update('Settings', this._preferences);\n\n return this._preferences[key];\n }\n\n if (typeof this._preferences[key] !== 'undefined') {\n return this._preferences[key];\n }\n\n throw new Error(`Tried to access non existent preference with name '${key}'.`);\n }\n\n static preferences (object: Partial | null = null, save = false): PlayerPreferences {\n if (object !== null) {\n\n this._preferences = merge (this._preferences, object);\n\n const storageConfig = this.Storage.configuration ();\n\n if (!storageConfig || storageConfig.name === '') {\n this.setupStorage ();\n }\n\n if (save === true) {\n this.Storage.update ('Settings', this._preferences);\n }\n }\n\n return this._preferences;\n }\n\n /**\n * Get or set the configuration.\n *\n * @param {string|object} key\n * @param {object} object\n */\n static configuration (key?: string | Record, object?: Record): unknown {\n if (typeof key === 'string') {\n if (typeof object !== 'undefined') {\n this.trigger ('configurationElementWillUpdate');\n\n this.trigger (`configurationElementUpdate::${key}`, {\n newConfiguration: object,\n oldConfiguration: this._configuration[key]\n });\n\n if (typeof this._configuration[key] !== 'object' || this._configuration[key] === null) {\n this._configuration[key] = {};\n }\n\n this._configuration[key] = merge (this._configuration[key] as object, object);\n\n this.trigger ('configurationElementDidUpdate');\n }\n return this._configuration[key];\n } else if (typeof key === 'object') {\n this.trigger ('configurationWillUpdate');\n this._configuration = merge (this._configuration, object ?? {});\n this.trigger ('configurationDidUpdate');\n return this._configuration;\n } else if (typeof key === 'undefined') {\n return this._configuration;\n }\n }\n\n static storage (object: string | Record | null = null): unknown {\n if (object !== null) {\n if (typeof object === 'string') {\n return this._storage[object];\n } else {\n this._storage = merge (this._storage, object) as Record;\n }\n } else {\n return this._storage;\n }\n }\n\n static script (object: string | Record | null = null): unknown {\n const language = this.preference ('Language') as string;\n\n if (typeof object === 'object' && object !== null) {\n this._script = Object.assign ({}, this._script, object);\n } else {\n let script: Record = this._script;\n\n if (this.setting ('MultiLanguage') === true) {\n if (!Object.keys (script).includes (language)) {\n // First check if the label exists in the current script\n FancyError.show ('engine:script:language_not_found', {\n language: language,\n multiLanguageSetting: 'The Multilanguage Setting is set to '+ this.setting ('MultiLanguage'),\n availableLanguages: Object.keys (script)\n });\n } else {\n script = script[language] as Record;\n }\n }\n\n if (typeof object === 'string') {\n script = script[object] as Record;\n }\n\n return script;\n }\n }\n\n static label (): unknown[];\n static label (key: string): unknown;\n static label (key: string, language: Record): void;\n static label (key: string, language: string, value: unknown[]): void;\n static label (key: string | null = null, language: string | Record | null = null, value: unknown[] | null = null): unknown {\n if (typeof language === 'string' && value !== null && key !== null) {\n if (typeof this._script[language] !== 'object') {\n this._script[language] = {};\n }\n (this._script[language] as Record)[key] = value;\n } else if (typeof language === 'object' && language !== null && value === null && key !== null) {\n if (typeof this._script[key] !== 'object') {\n this._script[key] = [];\n }\n this._script[key] = language;\n } else if (typeof language === 'string' && value === null && key !== null) {\n return (this._script[language] as Record)?.[key];\n } else if (key !== null) {\n return this.script (key);\n } else {\n const labelState = this.state ('label') as string;\n return this.script (labelState);\n }\n }\n\n static fn (name: string, { apply = () => true, revert = () => true }: { apply?: () => boolean; revert?: () => boolean } = {}): { apply: () => boolean; revert: () => boolean } {\n if (typeof apply === 'function' && typeof revert === 'function') {\n this._functions [name] = {\n apply,\n revert\n };\n }\n\n return this._functions [name];\n }\n\n /**\n * Placeholders. Saves up an action (any kind of action) for later use within\n * the game in a key-value manner.\n *\n * @param {string} name - The name with which the action will be saved and later used\n * @param {any} value - The value (an action) to save up\n *\n * @returns {(any|void)} - The value of an action given its name, the whole\n * object if both params are missing and void if used for assigning the value.\n *\n */\n static $ (name: string | Record | undefined, value?: unknown): unknown {\n if (typeof name === 'string') {\n if (typeof value !== 'undefined') {\n this._$[name] = value;\n }\n\n return this._$[name];\n } else if (typeof name === 'object') {\n this._$ = Object.assign ({}, this._$, name);\n } else if (typeof name === 'undefined') {\n return this._$;\n }\n }\n\n static globals(): GlobalsMap;\n static globals(object: Partial): GlobalsMap;\n static globals (object: Partial | null = null) {\n if (object !== null) {\n this._globals = merge (this._globals, object);\n }\n\n return this._globals ?? {};\n }\n\n static global(key: K): GlobalsMap[K];\n static global(key: K, value: GlobalsMap[K]): GlobalsMap[K];\n static global (key: string, value?: unknown): unknown {\n if (typeof value !== 'undefined') {\n this._globals[key] = value;\n }\n\n return this._globals?.[key] ?? undefined;\n }\n\n static template (key: string, value?: unknown): unknown {\n if (typeof value !== 'undefined') {\n this._templates[key] = value;\n }\n\n return this._templates[key];\n }\n\n static mediaPlayers (key?: string, object = false) {\n if (typeof key === 'string') {\n if (object) {\n return this._mediaPlayers[key];\n }\n\n return Object.values (this._mediaPlayers[key]);\n }\n\n return this._mediaPlayers;\n }\n\n static mediaPlayer (type: string, key: string, value?: HTMLAudioElement | HTMLVideoElement | AudioPlayer): HTMLAudioElement | HTMLVideoElement | AudioPlayer | undefined {\n if (typeof value === 'undefined') {\n const players = this.mediaPlayers (type, true) as Record;\n return players?.[key];\n } else {\n value.dataset.type = type;\n value.dataset.key = key;\n this._mediaPlayers[type][key] = value;\n return this._mediaPlayers[type][key];\n }\n }\n\n static removeMediaPlayer (type: string, key?: string): void {\n const players = this.mediaPlayers (type, true) as Record | undefined;\n\n const cleanupPlayer = (player: HTMLAudioElement | HTMLVideoElement | AudioPlayer): void => {\n if (player instanceof AudioPlayer) {\n // Use AudioPlayer's destroy method which handles cleanup properly\n player.destroy();\n } else {\n // Handle HTMLAudioElement/HTMLVideoElement\n if (typeof player.pause === 'function') {\n player.pause();\n }\n if (typeof player.setAttribute === 'function') {\n player.setAttribute('src', '');\n player.currentTime = 0;\n }\n }\n };\n\n if (typeof key === 'undefined') {\n if (players) {\n for (const mediaKey of Object.keys(players)) {\n const player = this._mediaPlayers[type][mediaKey];\n if (player) {\n cleanupPlayer(player);\n }\n delete this._mediaPlayers[type][mediaKey];\n }\n }\n } else {\n if (typeof this._mediaPlayers[type]?.[key] !== 'undefined') {\n const player = this._mediaPlayers[type][key];\n if (player) {\n cleanupPlayer(player);\n }\n delete this._mediaPlayers[type][key];\n }\n }\n }\n\n static temp (key: string, value?: unknown): unknown {\n if (typeof value !== 'undefined') {\n this._temp[key] = value;\n } else {\n const value = this._temp[key];\n delete this._temp[key];\n return value;\n }\n }\n\n /**\n * Localize every element with a data-string property using the translations\n * available. If no translation is found for the current language, the current\n * text of the element will be kept.\n */\n static localize (): void {\n return _localize (this.asEngine ());\n }\n\n /**\n * Preload game assets\n */\n static preload () {\n // Check if asset preloading is enabled. Preloading will not be done in\n // electron or cordova since the assets are expected to be available\n // locally.\n const preloadEnabled = this.setting ('Preload') && !Platform.desktopApp && !Platform.cordova && location.protocol.indexOf ('file') < 0;\n\n if (!preloadEnabled) {\n return Promise.resolve ();\n }\n\n const promises: Promise[] = [];\n\n this.trigger('willPreloadAssets');\n\n const assetsPath = this.setting('AssetsPath');\n\n // Check if Preload action has a 'default' block configured\n const preloadAction = this.action('Preload') as typeof PreloadAction | undefined;\n const blocks = preloadAction?.blocks?.();\n const defaultBlock = blocks?.['default'];\n\n if (defaultBlock && preloadAction) {\n // Use the registry-based preloading for the 'default' block\n for (const [category, assets] of Object.entries(defaultBlock)) {\n // Handle characters separately (nested structure)\n if (category === 'characters' && typeof assets === 'object' && !Array.isArray(assets)) {\n for (const [charId, sprites] of Object.entries(assets as Record)) {\n const character = this.character(charId);\n if (!character) continue;\n\n let directory = character.directory ? `${character.directory}/` : '';\n directory = `${assetsPath.root}/${assetsPath.characters}/${directory}`;\n\n for (const spriteName of sprites) {\n const spriteFile = character.sprites?.[spriteName];\n if (!spriteFile || typeof spriteFile !== 'string') continue;\n\n const url = `${directory}${spriteFile}`;\n promises.push(\n Preload.image(url).then((img) => {\n this.imageCache(`characters/${charId}/${spriteName}`, img);\n this.trigger('assetLoaded', { name: spriteName, type: 'image', category: 'characters' });\n })\n );\n this.trigger('assetQueued');\n }\n }\n continue;\n }\n\n if (!Array.isArray(assets)) continue;\n\n // Use the Preload action's registry to determine how to load this category\n const loaderType = preloadAction.getLoaderType(category);\n if (!loaderType) {\n console.warn(`Preload: No loader registered for category \"${category}\" in default block`);\n continue;\n }\n\n const loaderConfig = preloadAction.getLoader(loaderType);\n if (!loaderConfig) {\n console.warn(`Preload: Loader type \"${loaderType}\" not found`);\n continue;\n }\n\n for (const assetName of assets) {\n const assetFile = (this.assets(category) as Record)?.[assetName];\n if (!assetFile) continue;\n\n const url = `${assetsPath.root}/${assetsPath[category as keyof typeof assetsPath]}/${assetFile}`;\n const cacheKey = `${category}/${assetName}`;\n\n promises.push(\n loaderConfig.loader(url, this).then((asset: unknown) => {\n loaderConfig.cache.set(this, cacheKey, asset);\n this.trigger('assetLoaded', { name: assetName, type: loaderType, category });\n })\n );\n this.trigger('assetQueued');\n }\n }\n } else {\n // Fallback: Legacy preloading when no 'default' block is configured\n // This preloads ALL registered assets to browser cache (not decoded/cached for immediate use)\n const allAssets = this.assets() || {};\n\n // Iterate over every asset category: music, videos, scenes etc.\n for (const category of Object.keys(allAssets)) {\n // Iterate over every key on each category\n const categoryAssets = this.assets(category) || {};\n\n for (const asset of Object.values(categoryAssets)) {\n if (typeof asset !== 'string') {\n continue;\n }\n\n // Get the directory from where to load this asset\n const directory = `${assetsPath.root}/${assetsPath[category as keyof typeof assetsPath]}`;\n\n const onSuccess = (name: string, type: string, category: string) => {\n this.trigger('assetLoaded', { name, type, category });\n }\n\n if (FileSystem.isImage(asset)) {\n promises.push(Preload.image(`${directory}/${asset}`).then(() => onSuccess(asset, 'image', category)));\n } else {\n promises.push(Preload.file(`${directory}/${asset}`).then(() => onSuccess(asset, 'file', category)));\n }\n\n this.trigger('assetQueued');\n }\n }\n\n for (const key in this.characters()) {\n const character = this.character(key);\n if (!character) continue;\n\n let directory = '';\n\n // Check if the character has a directory defined where its images are located\n if (typeof character.directory !== 'undefined') {\n directory = character.directory + '/';\n }\n directory = `${assetsPath.root}/${assetsPath.characters}/${directory}`;\n\n if (typeof character.sprites !== 'undefined') {\n for (const image of Object.values(character.sprites)) {\n if (typeof image !== 'string') {\n continue;\n }\n promises.push(Preload.image(`${directory}${image}`).then(() => {\n this.trigger('assetLoaded', {\n name: image,\n type: 'image',\n category: 'characters'\n });\n }));\n }\n }\n\n if (typeof character.expressions !== 'undefined') {\n for (const image of Object.values(character.expressions)) {\n if (typeof image !== 'string') {\n continue;\n }\n promises.push(Preload.image(`${directory}${image}`).then(() => {\n this.trigger('assetLoaded', {\n name: image,\n type: 'image',\n category: 'characters'\n });\n }));\n }\n }\n\n if (typeof character.default_expression === 'string') {\n promises.push(Preload.image(`${directory}${character.default_expression}`).then(() => {\n this.trigger('assetLoaded', {\n name: character.default_expression as string,\n type: 'image',\n category: 'characters'\n });\n }));\n }\n\n if (typeof character.layer_assets === 'object' && character.layer_assets) {\n for (const [_layer, obj] of Object.entries(character.layer_assets)) {\n for (const [assetKey, value] of Object.entries(obj)) {\n promises.push(Preload.image(`${directory}${value}`).then(() => {\n this.trigger('assetLoaded', {\n name: assetKey,\n type: 'image',\n category: 'characters'\n });\n }));\n }\n }\n }\n\n this.trigger('assetQueued');\n }\n }\n\n return Promise.all (promises).then (() => {\n this.trigger ('didPreloadAssets');\n return Promise.resolve ();\n });\n }\n\n /**\n * @static translate - This method will try to translate parts of a string\n * using the translation strings available. Any string containing a format\n * like this one: \"_(SomeKey)\" will get that replaced with the translated\n * string of that key.\n *\n * @param {string} statement - String to translate.\n *\n * @returns {string} - The translated string\n */\n static translate (statement: string): string {\n return _translate (this.asEngine (), statement);\n }\n\n /**\n * @static replaceVariables - Recursively replace all occurrences of\n * {{variable_name}} with the actual value for that variable name on the\n * storage object.\n *\n * @param {string} statement - The text where to interpolate the variables\n *\n * @returns {string} - The text with the interpolated variables\n */\n static replaceVariables (statement: string): string {\n return _replaceVariables (this.asEngine (), statement);\n }\n\n /**\n * @static saveTo - Save the current game state into a given Slot\n *\n * @param {string} [prefix = 'SaveLabel'] - The prefix label to be used for the\n * slot. Should be either 'SaveLabel' or 'AutoSaveLabel'.\n * @param {int} [id = null] - The numeric ID to be used for the slot. If none\n * is given, it will be determined using the getMaxSlotId function and upping\n * it by 1\n * @param {string} [name = null] - The name given by the player to the slot. If none is\n * given, the current date will be used\n *\n * @returns {Promise} - The promise of the save operation\n */\n static async saveTo (prefix = 'SaveLabel', id: number | null = null, name: string | null = null): Promise {\n return _saveTo(this.asEngine(), prefix, id, name);\n }\n\n static assertAsync (callable: (...args: unknown[]) => unknown, self: unknown = null, args: unknown[] | null = null): Promise {\n return _assertAsync(this.asEngine(), callable, self, args);\n }\n\n static next (): Promise {\n return _next(this.asEngine());\n }\n\n static previous (): Promise {\n return _previous(this.asEngine());\n }\n\n static resetGame (): Promise {\n return _resetGame(this.asEngine());\n }\n\n /**\n * @static keyBoardShortcut - Register a new callback for a custom keyboard\n * shortcut\n *\n * @param {string|Array} shortcut - Sequence of keys that represent\n * the shortcut\n * @param {function} callback - The function to run when that sequence of keys\n * is pressed\n *\n * @returns {void}\n */\n static keyboardShortcut (shortcut: string | string[], callback: (this: VisualNovelEngine, event: KeyboardEvent, element: DOM) => void): void {\n return _keyboardShortcut (this.asEngine (), shortcut, callback);\n }\n\n static upgrade (oldVersion: string, newVersion: string, callbacks: { storage?: (oldData: unknown) => unknown; replaceStorage?: boolean }): void {\n return _upgrade(this.asEngine(), oldVersion, newVersion, callbacks);\n }\n\n static setupStorage (): void {\n return _setupStorage(this.asEngine());\n }\n\n static registerListener (name: string, listener: { keys?: string | string[]; callback: (this: VisualNovelEngine, event: Event, element: DOM) => unknown }, replace = false): void {\n return _registerListener (this.asEngine (), name, listener, replace);\n }\n\n static unregisterListener (name: string): void {\n return _unregisterListener (this.asEngine (), name);\n }\n\n static async runListener (name: string, event: Event | null = null, element: DOM | null = null): Promise {\n return _runListener (this.asEngine (), name, event, element);\n }\n\n /**\n * @static object - Get all the relevant information of the game state\n *\n * @returns {Object} - An object containing the current histories, state and\n * storage variables.\n * @returns {Object} history - The full history object\n * @returns {Object} state - The full state object\n * @returns {Object} storage- The full storage object\n */\n static object () {\n return _gameObject(this.asEngine());\n }\n\n static prepareAction(statement: string, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null;\n static prepareAction(statement: Record, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null;\n static prepareAction(statement: string | Record, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null;\n static prepareAction (statement: unknown, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null {\n return _prepareAction(this.asEngine(), statement as string | Record, { cycle, extras });\n }\n\n static async revert (statement: unknown = null, shouldAdvance = true, shouldStepBack = true): Promise<{ advance: boolean; step: boolean } | void> {\n return _revert(this.asEngine(), statement, shouldAdvance, shouldStepBack);\n }\n\n static async run (statement: unknown, shouldAdvance = true): Promise<{ advance: boolean }> {\n return _run(this.asEngine(), statement, shouldAdvance);\n }\n\n static alert (id: string, options: Record): void {\n return _showAlert(this.asEngine(), id, options);\n }\n\n static dismissAlert (id: string | null = null): void {\n return _dismissAlert(this.asEngine(), id);\n }\n\n /**\n * @static loadFromSlot - Load a slot from the storage. This will recover the\n * state of the game from what was saved in it.\n *\n * @param {string} slot - The key with which the slot was saved on the storage\n */\n static loadFromSlot (slot: string): Promise {\n return _loadFromSlot(this.asEngine(), slot);\n }\n\n static async proceed ({ userInitiated = false, skip = false, autoPlay = false } = {}): Promise {\n return _proceed(this.asEngine(), { userInitiated, skip, autoPlay });\n }\n\n static async rollback (): Promise {\n return _rollback(this.asEngine());\n }\n\n static shouldProceed ({ userInitiated = false, skip = false, autoPlay = false }): Promise {\n return _shouldProceed(this.asEngine(), { userInitiated, skip, autoPlay });\n }\n\n static willProceed (): Promise {\n return _willProceed(this.asEngine());\n }\n\n static stopTyping (component: TypeWriterComponent): void {\n return _stopTyping(this.asEngine(), component);\n }\n\n static shouldRollback (): Promise {\n return _shouldRollback(this.asEngine());\n }\n\n static willRollback (): Promise {\n return _willRollback(this.asEngine());\n }\n\n /**\n * @static playAmbient - Play the main menu music using the key defined in the\n * 'MainScreenMusic' property of the game settings.\n */\n static playAmbient (): void {\n return _playAmbient(this.asEngine());\n }\n\n // Stop the main menu's music\n static stopAmbient (): void {\n return _stopAmbient(this.asEngine());\n }\n\n // Start game automatically without going trough the main menu\n static showMainScreen (): void {\n return _showMainScreen(this.asEngine());\n }\n\n static showSplashScreen (): void {\n return _showSplashScreen(this.asEngine());\n }\n\n /**\n * @static autoPlay - Enable or disable the autoplay feature which allows the\n * game to play itself (of sorts), it will go through the dialogs alone but\n * will wait when user interaction is needed.\n *\n * @param {boolean} enable - Wether the auto play feature will be enabled (true)\n * or disabled (false);\n */\n static autoPlay (enable: boolean): void {\n return _autoPlay(this.asEngine(), enable);\n }\n\n /**\n * @static distractionFree - Enable or disable the distraction free mode\n * where the dialog box is hidden so that the player can look at the characters\n * and background with no other elements on the way. A 'transparent' class\n * is added to the quick menu when this mode is enabled.\n */\n static distractionFree (): void {\n return _distractionFree(this.asEngine());\n }\n\n static setup (selector: string): Promise {\n const components = this.components();\n\n // Set the initial settings if they don't exist or load them from the\n // Storage if they do.\n const loadPreferencesPromise = new Promise((resolve, _reject) => {\n this.Storage.get('Settings').then ((local_settings) => {\n this.global ('_first_run', false);\n this._preferences = merge (this._preferences, local_settings as Partial);\n resolve();\n }).catch ((e) => {\n console.warn ('There was no settings saved. This may be the first time this game was opened, we\\'ll create them now.', e);\n this.global ('_first_run', true);\n if (this.setting ('MultiLanguage') !== true || this.setting ('LanguageSelectionScreen') !== true) {\n this.Storage.set ('Settings', this._preferences).then(() => resolve()).catch(() => resolve());\n } else {\n resolve();\n }\n });\n });\n\n return loadPreferencesPromise.then(() => {\n // Define all the components that were registered to this point\n for (const component of components) {\n try {\n component.engine = this.asEngine();\n Registry.register(component.tag, component);\n } catch (e) {\n FancyError.show ('engine:component:already_registered', {\n tag: component.tag,\n component: component,\n unregisterCode: `
monogatari.unregisterComponent ('${component.tag}')
`\n });\n }\n }\n\n // Register service worker. The service worker will save all requests into\n // the cache so the game loads more quickly and we can play offline. The\n // service worker will only be used if it was allowed by the settings and\n // if we are not running in a local platform such as electron or cordova\n // where the assets are expected to be available locally and thus don't\n // require being cached.\n if (this.setting ('ServiceWorkers')) {\n if (!Platform.desktopApp && !Platform.cordova && Platform.serviceWorkers) {\n if (window.location.protocol === 'file:') {\n console.warn ('Service Workers are not available when opening the index.html file directly in your browser. Service Workers are available only when serving your files through a server, once you upload your game this warning will go away. You can also try using a simple server like this one for development: https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb/.');\n } else {\n navigator.serviceWorker.register('./service-worker.js').then ((registration) => {\n\n // Check if an update to the service worker was found\n registration.onupdatefound = () => {\n const worker = registration.installing;\n\n if (worker) {\n worker.onstatechange = () => {\n // Once the updated service worker has been installed,\n // show a notice to the players so that they reload the\n // page and get the latest content.\n if (worker.state === 'installed') {\n if (navigator.serviceWorker.controller) {\n const element = this.element();\n const broadcastElement = `\n
\n

${this.string ('NewContent')}.

\n
\n `;\n element?.prepend (broadcastElement);\n element?.on ('click', '[data-ui=\"broadcast\"][data-content=\"new-content\"]', () => {\n this.element()?.find ('[data-ui=\"broadcast\"][data-content=\"new-content\"]').remove ();\n });\n }\n }\n };\n }\n };\n }).catch ((error) => {\n console.warn ('Failed to register Service Worker:', error.message);\n });\n }\n } else {\n console.warn ('Service Workers are not available in this browser or have been disabled in the engine configuration. Service Workers are available only when serving your files through a server, once you upload your game this warning will go away. You can also try using a simple server like this one for development: https://chrome.google.com/webstore/detail/web-server-for-chrome/ofhbbkphhbklhfoeikjpcbhemlocgigb/');\n }\n }\n\n // Save the structure of the storage variable. The structure is saved as\n // a string so that we have a reference to how the storage was originally\n // and we can reset the storage when the game ends.\n this.global ('storageStructure', JSON.stringify (this.storage ()));\n\n // The open-screen action does exactly what it says, it takes the\n // data-screen property of the object it's in and then opens that\n // menu, meaning it hides everything else and shows that one.\n this.registerListener ('open-screen', {\n callback: (event: Event, element: DOM) => {\n this.showScreen (element.data('open') as string);\n }\n });\n\n // The start action starts the game so it shows the game screen\n // and the game starts\n this.registerListener ('start', {\n callback: () => {\n this.global ('playing', true);\n\n // Remove the play main menu audio broadcast message if it's present\n this.element ().find ('[data-ui=\"broadcast\"][data-content=\"allow-playback\"]').remove ();\n\n this.onStart ().then (() => {\n this.element ().find ('[data-screen]').each ((screen: HTMLElement) => {\n (screen as HTMLElement & { setState: (state: Record) => void }).setState ({ open: false });\n });\n\n const gameScreen = this.element ().find ('[data-screen=\"game\"]').get (0) as (HTMLElement & { setState: (state: Record) => void }) | undefined;\n if (gameScreen) {\n gameScreen.setState ({ open: true });\n }\n\n // Check if the initial label exists\n const currentLabel = this.label () as unknown[];\n const step = this.state ('step') as number;\n if (currentLabel) {\n this.run (currentLabel[step]);\n }\n });\n }\n });\n\n this.registerListener ('dismiss-alert', {\n callback: () => {\n this.dismissAlert ();\n }\n });\n\n this.registerListener ('distraction-free', {\n keys: 'h',\n callback: () => {\n this.distractionFree ();\n }\n });\n\n this.registerListener ('skip', {\n keys: 's',\n callback: () => {\n if (this.global ('playing')) {\n if (this.global ('skip') !== null) {\n this.skip (false);\n } else {\n this.skip (true);\n }\n }\n }\n });\n\n // Add listener to the auto-play buttons, activating or deactivating the\n // auto-play feature\n this.registerListener ('auto-play', {\n callback: () => {\n this.autoPlay (this.global ('_auto_play_timer') === undefined);\n }\n });\n\n const promises = [];\n\n for (const component of this.components ()) {\n component.engine = this.asEngine();\n promises.push (component.setup ());\n }\n\n for (const action of this.actions ()) {\n action.engine = this.asEngine();\n promises.push (action.setup ());\n }\n\n return Promise.all (promises).then (() => {\n this.global ('_didSetup', true);\n return Promise.resolve ();\n });\n }).catch((error) => {\n console.error('Initialization error', error);\n });\n }\n /**\n * @static skip - Enable or disable the skip mode which is similar to auto\n * play but simply skips fast through the game.\n *\n * @param {boolean} enable - Wether it should be enabled (true) or disabled (false)\n */\n static skip (enable: boolean): void {\n return _skip(this.asEngine(), enable);\n }\n\n static showScreen (screen: string): void {\n return _showScreen(this.asEngine(), screen);\n }\n\n static hideScreens (): void {\n return _hideScreens(this.asEngine());\n }\n\n static resize (_element: unknown, proportionWidth: number, proportionHeight: number): void {\n return _resize(this.asEngine(), _element, proportionWidth, proportionHeight);\n }\n\n static goBack (event: Event, selector: string): void {\n return _goBack(this.asEngine(), event, selector);\n }\n\n /**\n * Every event listener should be binded in this function.\n */\n static bind (selector: string): Promise {\n\n\n // Add the orientation checker in case that a specific orientation was\n // defined.\n const isMobile = typeof Platform.mobile === 'function' ? Platform.mobile() : Platform.mobile;\n if (this.setting ('Orientation') !== 'any' && isMobile) {\n\n // Set the event listener for device orientation so we can display a message\n window.addEventListener ('orientationchange', () => {\n\n // Display or remove the device orientation notice depending on the\n // current device orientation\n if (Platform.orientation !== this.setting ('Orientation')) {\n this.alert ('orientation-warning', {\n message: 'OrientationWarning'\n });\n } else {\n this.dismissAlert ('orientation-warning');\n }\n }, false);\n }\n\n // Add event listener for back buttons. If the player is playing, the back\n // button will return to the game, if its not playing, then it'll return\n // to the main menu.\n this.on ('click', '[data-screen]:not([data-screen=\"game\"]) [data-action=\"back\"]', (event) => {\n this.goBack (event, selector);\n });\n\n const self = this;\n\n // Add listeners for the data-action properties\n this.on ('click', '[data-action]', function (this: HTMLElement, event) {\n const element = $_(this);\n\n const action = element.data ('action');\n\n if (action) {\n // Prevent action clicks from bubbling to the game-screen's proceed handler\n event.stopPropagation ();\n self.runListener (action, event, element);\n }\n\n return action === 'set-volume';\n });\n\n this.keyboardShortcut (['right', 'space'], () => {\n this.proceed ({ userInitiated: true, skip: false, autoPlay: false }).then (() => {\n // Nothing to do here\n }).catch ((e) => {\n this.debug.log (`Proceed Prevented\\nReason: ${e}`);\n // An action waiting for user interaction or something else\n // is blocking the game.\n });\n });\n\n this.keyboardShortcut ('esc', () => {\n if ($_(`${selector} [data-screen=\"game\"]`).isVisible () && this.global ('playing')) {\n this.showScreen ('settings');\n } else if ($_(`${selector} [data-screen=\"settings\"]`).isVisible () && this.global ('playing')) {\n this.showScreen ('game');\n }\n });\n\n this.keyboardShortcut ('shift+s', () => {\n if (this.global ('playing')) {\n this.showScreen ('save');\n }\n });\n\n this.keyboardShortcut ('shift+l', () => {\n if (this.global ('playing')) {\n this.showScreen ('load');\n }\n });\n\n const forceAspectRatio = this.setting ('ForceAspectRatio');\n let forceAspectRatioFlag = true;\n\n switch (forceAspectRatio) {\n case 'Visuals':\n $_('[data-content=\"visuals\"]').addClass('forceAspectRatio');\n break;\n\n case 'Global':\n this.parentElement().addClass('forceAspectRatio');\n break;\n\n default:\n forceAspectRatioFlag = false;\n }\n\n if (forceAspectRatioFlag) {\n const aspectRatio = this.setting ('AspectRatio') as string;\n const [w, h] = aspectRatio.split (':');\n const proportionWidth = parseInt(w);\n const proportionHeight = parseInt(h);\n if (!(Platform.desktopApp && forceAspectRatio === 'Global')) {\n this.resize (null, proportionWidth, proportionHeight);\n window.addEventListener('resize', () => this.resize (null, proportionWidth, proportionHeight));\n }\n }\n\n const promises = [];\n\n for (const component of this.components ()) {\n promises.push (component.bind (selector));\n }\n\n for (const action of this.actions ()) {\n promises.push (action.bind (selector));\n }\n\n return Promise.all (promises).then (() => {\n for (const listener of this._listeners) {\n const { keys, callback } = listener;\n if (typeof keys !== 'undefined') {\n this.keyboardShortcut (keys, callback);\n }\n }\n this.global ('_didBind', true);\n return Promise.resolve ();\n });\n }\n\n /**\n * @static element - Get the main visual-novel element\n *\n * @template {boolean} T\n * @param {T} pure - Wether to get an Artemis DOM instance of the element\n * or a pure HTML element\n * @param {boolean} handled - Wether the case of the element not existing is\n * being handled in some way or not. If it doesn't exist and it is not being\n * handled, an error will be shown.\n *\n * @returns {T extends true ? HTMLElement : DOM}\n */\n static element (): DOM;\n static element (pure: true, handled?: boolean): HTMLElement | null;\n static element (pure: false, handled?: boolean): DOM;\n static element (pure = false, handled = false): HTMLElement | DOM | null {\n let element: HTMLElement | DOM | null = null;\n let exists = false;\n\n if (pure === true) {\n element = document.querySelector ('visual-novel') as HTMLElement;\n exists = element !== null;\n } else {\n element = $_('visual-novel');\n exists = element.length > 0;\n }\n\n // In some cases, the user might be trying to execute an action using the\n // main element when the DOM has not been loaded yet, thus causing an\n // error since the element does not exists yet.\n if (exists === false && handled === false) {\n FancyError.show ('engine:element:not_ready', {});\n }\n\n return element;\n }\n\n static on (event: string, target: string | EventCallback, callback?: EventCallback): void {\n const element = this.element() as DOM;\n\n if (element) {\n // If callback is not provided, treat target as callback (for simple event binding)\n if (typeof target === 'function' && callback === undefined) {\n element.on (event, target as EventCallback);\n } else {\n element.on (event, target as string, callback!);\n }\n }\n }\n\n static off (event: string, callback: EventCallback): void {\n const element = this.element() as DOM;\n\n if (element) {\n element.off (event, callback);\n }\n }\n\n static parentElement (): DOM {\n return $_(this._selector);\n }\n\n /**\n * @static trigger - Trigger a custom element with custom details data\n *\n * @param {string} name - The name of the event to trigger\n * @param {Object} [details = {}] - A key/value object with additional details\n * for the event\n *\n * @returns {void}\n */\n static trigger (name: string, details: Record = {}) {\n const event = new CustomEvent (name, { bubbles: false, detail: details });\n\n const element = this.element (true, true);\n\n if (element) {\n element.dispatchEvent (event);\n } else {\n $_ready (() => dispatchEvent (event));\n }\n }\n\n static displayInitialScreen (): void {\n return _displayInitialScreen(this.asEngine());\n }\n\n /**\n * @static _setupRegistry - Configure the Pandora Registry for centralized\n * component lifecycle tracking and error handling.\n *\n * This provides:\n * - Centralized error handling for all component lifecycle methods\n * - Debug logging when Monogatari debug mode is enabled\n * - Mount/unmount tracking for debugging purposes\n *\n * @private\n */\n static _setupRegistry () {\n // Enable Registry debug mode when Monogatari is in debug mode\n if (typeof MonogatariDebug === 'object') {\n Registry.debug = true;\n }\n\n // Centralized error handling for component errors\n Registry.onError ((error, component, tag, lifecycle) => {\n FancyError.show ('engine:component:lifecycle_error', {\n tag: tag,\n lifecycle: lifecycle,\n errorMessage: error.message,\n stackTrace: error.stack\n });\n // Also log to console for debugging\n console.error (`[Monogatari] Component error in <${tag}> during ${lifecycle}:`, error);\n });\n\n // Track component mounts for debugging\n Registry.onMount ((component, tag) => {\n this.trigger ('componentDidMount', { component, tag });\n });\n\n // Track component unmounts for debugging\n Registry.onUnmount ((component, tag) => {\n this.trigger ('componentDidUnmount', { component, tag });\n });\n }\n\n static async init (selector = '#monogatari') {\n this._selector = selector;\n\n if (typeof window.Cypress !== 'undefined') {\n this.setting ('ExperimentalFeatures', true);\n }\n\n // Setup Pandora Registry for centralized error handling and lifecycle tracking\n this._setupRegistry ();\n\n this.trigger ('willInit');\n\n const storageConfigInit = this.Storage?.configuration () as { name?: string } | undefined;\n\n if (!storageConfigInit || storageConfigInit.name === '') {\n this.setupStorage ();\n }\n\n this.trigger ('willSetup');\n\n await this.setup(selector);\n\n this.trigger ('didSetup');\n this.trigger ('willBind');\n\n await this.bind(selector);\n\n this.trigger ('didBind');\n\n this.ambientPlayer = new Audio ();\n\n // Set the initial language translations\n this.localize ();\n\n // Set the label in which the game will start\n this.state ({ label: this.setting ('Label') });\n\n // Check if the orientation is correct, if it's not, show the warning\n // message so the player will rotate its device.\n if (this.setting ('Orientation') !== 'any') {\n const initIsMobile = Platform.mobile();\n\n if (initIsMobile && Platform.orientation !== this.setting ('Orientation')) {\n this.alert ('orientation-warning', {\n message: 'OrientationWarning'\n });\n }\n }\n\n const init: Promise[] = [];\n\n for (const component of this.components ()) {\n init.push (component.init (selector));\n }\n\n for (const action of this.actions ()) {\n init.push (action.init (selector));\n }\n\n if (this.setting ('AutoSave') !== 0 && typeof this.setting ('AutoSave') === 'number') {\n this.debug.debug ('Automatic save is enabled, setting up timeout');\n this.global ('_auto_save_interval', setInterval(() => {\n this.debug.groupCollapsed ('Automatic Save');\n const id = this.global ('current_auto_save_slot') as number;\n\n this.debug.debug ('Saving data to slot', id);\n\n this.saveTo ('AutoSaveLabel', id);\n\n const slotsCount = this.setting ('Slots') as number;\n if (id === slotsCount) {\n this.global ('current_auto_save_slot', 1);\n } else {\n this.global ('current_auto_save_slot', id + 1);\n }\n\n this.debug.groupEnd ();\n\n }, (this.setting ('AutoSave') as number) * 60000));\n } else {\n this.debug.debug ('Automatic save is disabled. Section will be hidden from Load Screen');\n this.element ().find ('[data-screen=\"load\"] [data-ui=\"autoSaveSlots\"]').hide ();\n }\n\n await Promise.all (init);\n\n this.global ('_didInit', true);\n this.trigger ('didInit');\n\n if (this.setting ('MultiLanguage') === true && this.setting ('LanguageSelectionScreen') === true && this.global ('_first_run') === true) {\n this.showScreen ('language-selection');\n\n this.on ('didLocalize', () => {\n this.Storage.set ('Settings', this._preferences);\n const languageSelectionScreen = this.element ().find ('[data-screen=\"language-selection\"]');\n if (languageSelectionScreen.isVisible ()) {\n this.displayInitialScreen ();\n\n }\n });\n } else {\n this.displayInitialScreen ();\n }\n }\n\n /**\n * Random number between `min` and `max`\n * @param {number} min\n * @param {number} max\n * @returns {number}\n */\n static random (min: number, max: number) {\n try {\n return new Random (browserCrypto).integer (min, max);\n } catch (e) {\n console.error (e);\n return new Random ().integer (min, max);\n }\n }\n}\n\n// =============================================================================\n// Compile-time Type Check\n// =============================================================================\n// This ensures that the Monogatari class implements the VisualNovelEngine\n// interface. If any method or property is missing or has an incompatible type,\n// TypeScript will report an error here.\n//\n// The VisualNovelEngine interface can be extended by external users via\n// declaration merging:\n//\n// declare module '@monogatari/core' {\n// interface VisualNovelEngine {\n// myCustomMethod: () => void;\n// }\n// }\n// =============================================================================\nconst _engineTypeCheck: VisualNovelEngine = Monogatari;\n// Suppress unused variable warning\nvoid _engineTypeCheck;\n\nexport { Monogatari };\n\nexport default Monogatari;\n", + "import type { VisualNovelEngine } from '../lib/types/Monogatari';\nimport type { Character } from '../lib/types';\nimport deeply from 'deeply';\n\nconst merge = deeply.bind({});\n\nexport function characters (engine: VisualNovelEngine, object: Record | null = null): Record {\n if (object !== null) {\n // const identifiers = Object.keys (object);\n // for (const id of identifiers) {\n // \tengine.character (id, object[id]);\n // }\n engine._characters = merge (engine._characters, object) as Record;\n }\n\n return engine._characters;\n}\n\nexport function character (engine: VisualNovelEngine, id: string, object: Partial | null = null): Character | undefined {\n if (object !== null) {\n if (typeof engine._characters[id] !== 'undefined') {\n engine._characters[id] = merge (engine._characters[id], object) as Character;\n } else {\n engine._characters[id] = object as Character;\n }\n } else {\n const character = engine._characters[id];\n\n // Translate the old character properties into the new ones\n if (typeof character !== 'undefined') {\n if (typeof character.Images === 'object') {\n character.sprites = merge ({}, character.Images);\n delete character.Images;\n }\n\n if (typeof character.Directory === 'string') {\n character.directory = character.Directory;\n delete character.Directory;\n }\n\n if (typeof character.Color === 'string') {\n character.color = character.Color;\n delete character.Color;\n }\n\n if (typeof character.Name === 'string') {\n character.name = character.Name;\n delete character.Name;\n }\n\n if (typeof character.Face === 'string') {\n character.default_expression = character.Face;\n delete character.Face;\n }\n\n if (typeof character.Side === 'object') {\n character.expressions = character.Side;\n delete character.Side;\n }\n\n if (typeof character.TypeAnimation === 'boolean') {\n character.type_animation = character.TypeAnimation;\n delete character.TypeAnimation;\n }\n }\n\n return character;\n }\n}\n", + "import type { VisualNovelEngine } from '../lib/types/Monogatari';\nimport { $_ } from '@aegis-framework/artemis';\nimport { FancyError } from '../lib/FancyError';\nimport { Settings } from 'luxon';\n\n/**\n * Gets the translation of a string. This is of course limited\n * to the translations defined for each language using the translation\n * function.\n *\n * @param engine - The VisualNovelEngine instance\n * @param key - The key of the string whose translation is needed\n *\n * @return String translation in the current language given the\n * user's preferences.\n */\nexport function translateString (engine: VisualNovelEngine, key: string): string | undefined {\n const language = engine.preference ('Language') as string;\n\n if (typeof engine._translations[language] === 'undefined') {\n FancyError.show ('engine:translation:language_not_found', {\n language: language,\n availableLanguages: Object.keys (engine._translations),\n languageSelectorValue: `
${$_('[data-action=\"set-language\"]').value ()}
`\n });\n\n return undefined;\n }\n\n if (typeof engine._translations[language][key] === 'undefined') {\n FancyError.show ('engine:translation:key_not_found', {\n key: key,\n language: language,\n elements: $_(`[data-string=\"${key}\"]`).collection,\n availableStrings: Object.keys (engine._translations[language])\n });\n }\n\n return engine._translations[language][key];\n}\n\nexport function localize (engine: VisualNovelEngine): void {\n engine.trigger ('willLocalize');\n\n // Setup the correct locale for the dates\n const language = engine.preference ('Language') as string;\n\n const langMetadata = engine._languageMetadata[language];\n\n if (langMetadata?.code) {\n Settings.defaultLocale = langMetadata.code;\n }\n\n engine.element ().find ('[data-string]').each ((element) => {\n const stringKey = $_(element).data ('string');\n\n if (stringKey) {\n const string_translation = translateString (engine, stringKey);\n\n // Check if the translation actually exists and is not empty before\n // replacing the text.\n if (typeof string_translation !== 'undefined' && string_translation !== '') {\n $_(element).text (string_translation);\n }\n }\n });\n\n engine.trigger ('didLocalize');\n}\n\n/**\n * This method will try to translate parts of a string\n * using the translation strings available. Any string containing a format\n * like this one: \"_(SomeKey)\" will get that replaced with the translated\n * string of that key.\n *\n * @param engine - The VisualNovelEngine instance\n * @param statement - String to translate.\n *\n * @returns The translated string\n */\nexport function translate (engine: VisualNovelEngine, statement: string): string {\n // Find all elements in the string that match the \"_(key)\" format\n const matches = statement.match (/_\\(\\S+\\)/g);\n const language = engine.preference ('Language') as string;\n\n // Check if any matches were found, if not then no translation is needed\n if (matches === null) {\n return statement;\n }\n\n // Go through all the found matches so we can get the string it maps to\n for (const match of matches) {\n // Remove the _() from the key\n const path = match.replace ('_(', '').replace (')', '').split ('.');\n\n // Retrieve the string from the translations using the given key\n const translationsForLang = translations (engine, language) as Record | undefined;\n if (!translationsForLang) continue;\n\n let data: unknown = translationsForLang[path[0]];\n\n for (let j = 1; j < path.length; j++) {\n if (typeof data === 'object' && data !== null) {\n data = (data as Record)[path[j]];\n }\n }\n if (typeof data === 'string') {\n statement = statement.replace (match, data);\n }\n }\n\n return statement;\n}\n\n/**\n * Recursively replace all occurrences of\n * {{variable_name}} with the actual value for that variable name on the\n * storage object.\n *\n * @param engine - The VisualNovelEngine instance\n * @param statement - The text where to interpolate the variables\n *\n * @returns The text with the interpolated variables\n */\nexport function replaceVariables (engine: VisualNovelEngine, statement: string): string {\n let newStatement = translate (engine, statement);\n\n const matches = newStatement.match (/{{\\S+?}}/g);\n\n if (matches === null) {\n return newStatement;\n }\n\n for (const match of matches) {\n const path = match.replace ('{{', '').replace ('}}', '').split ('.');\n\n let data: unknown = engine.storage ();\n\n for (let j = 0; j < path.length; j++) {\n const name = path[j];\n if (typeof data === 'object' && data !== null && name in data) {\n data = (data as Record)[name];\n } else {\n FancyError.show ('engine:storage:variable_not_found', {\n variable: match,\n statement: newStatement,\n partNotFound: name,\n availableVariables: typeof data === 'object' && data !== null ? Object.keys (data) : []\n });\n\n // TODO: Is an empty string correct here?\n return '';\n }\n }\n\n newStatement = newStatement.replace (match, String(data));\n }\n\n return replaceVariables (engine, newStatement);\n}\n\nexport function translations (engine: VisualNovelEngine, object: string | Record> | null = null): Record | Record> | undefined {\n if (object === null) {\n return engine._translations;\n }\n\n if (typeof object === 'string') {\n return engine._translations[object];\n }\n\n engine._translations = Object.assign ({}, engine._translations, object);\n\n return engine._translations;\n}\n\nexport function translation (engine: VisualNovelEngine, language: string, strings?: Record): Record {\n if (typeof strings === 'undefined') {\n return engine._translations[language];\n }\n\n if (typeof engine._translations[language] !== 'undefined') {\n engine._translations[language] = Object.assign ({}, engine._translations[language], strings);\n } else {\n engine._translations[language] = strings;\n }\n\n return engine._translations[language];\n}\n\nexport function languageMetadata (engine: VisualNovelEngine, language: string, object: { code?: string; icon?: string } | null = null): { code: string; icon: string } | Record | undefined {\n if (typeof language !== 'undefined') {\n if (object !== null) {\n if (typeof engine._languageMetadata[language] !== 'object') {\n engine._languageMetadata[language] = { code: '', icon: '' };\n }\n\n engine._languageMetadata[language] = Object.assign ({}, engine._languageMetadata[language], object) as { code: string; icon: string };\n }\n\n return engine._languageMetadata[language];\n }\n\n return engine._languageMetadata;\n}\n", + "import type { VisualNovelEngine } from '../lib/types/Monogatari';\nimport { Space, SpaceAdapter, Text } from '@aegis-framework/artemis';\n\n// ============================================================================\n// Asset Registry\n// ============================================================================\n\nexport function assets (engine: VisualNovelEngine, type: string | null = null, object: Record | null = null): Record> | Record | undefined {\n if (type !== null && object !== null) {\n if (typeof engine._assets[type] !== 'undefined') {\n engine._assets[type] = Object.assign ({}, engine._assets[type], object);\n } else {\n engine._assets[type] = object;\n }\n } else if (type !== null) {\n if (typeof type === 'string') {\n return engine._assets[type];\n } else if (typeof type === 'object') {\n engine._assets = Object.assign ({}, engine._assets, object);\n }\n } else {\n return engine._assets;\n }\n}\n\nexport function asset (engine: VisualNovelEngine, type: string, name: string, value: string | null = null): string | undefined {\n if (typeof engine._assets[type] === 'undefined') {\n console.error (`Tried to interact with a non-existing asset type ${type}.`);\n }\n\n if (value !== null) {\n engine._assets[type][name] = value;\n }\n\n return engine._assets[type][name];\n}\n\n// ============================================================================\n// Audio Buffer Cache\n// ============================================================================\n\nexport function audioBufferCache(engine: VisualNovelEngine, key: string): AudioBuffer | undefined;\nexport function audioBufferCache(engine: VisualNovelEngine, key: string, buffer: AudioBuffer): void;\nexport function audioBufferCache(engine: VisualNovelEngine, key?: string, buffer?: AudioBuffer): AudioBuffer | undefined | void {\n if (buffer !== undefined && key !== undefined) {\n engine._audioBufferCache.set(key, buffer);\n } else if (key !== undefined) {\n return engine._audioBufferCache.get(key);\n }\n\n return undefined;\n}\n\nexport function audioBufferUncache(engine: VisualNovelEngine, key: string): boolean {\n return engine._audioBufferCache.delete(key);\n}\n\nexport function audioBufferClearCache(engine: VisualNovelEngine, pattern?: string): void {\n if (!pattern) {\n engine._audioBufferCache.clear();\n } else {\n for (const key of engine._audioBufferCache.keys()) {\n if (key.startsWith(pattern)) {\n engine._audioBufferCache.delete(key);\n }\n }\n }\n}\n\n// ============================================================================\n// Image Cache\n// ============================================================================\n\nexport function imageCache(engine: VisualNovelEngine, key: string): HTMLImageElement | undefined;\nexport function imageCache(engine: VisualNovelEngine, key: string, image: HTMLImageElement): void;\nexport function imageCache(engine: VisualNovelEngine, key?: string, image?: HTMLImageElement): HTMLImageElement | undefined | void {\n if (image !== undefined && key !== undefined) {\n engine._imageCache.set(key, image);\n } else if (key !== undefined) {\n return engine._imageCache.get(key);\n }\n\n return undefined;\n}\n\nexport function imageUncache(engine: VisualNovelEngine, key: string): boolean {\n return engine._imageCache.delete(key);\n}\n\nexport function imageClearCache(engine: VisualNovelEngine, pattern?: string): void {\n if (!pattern) {\n engine._imageCache.clear();\n } else {\n for (const key of engine._imageCache.keys()) {\n if (key.startsWith(pattern)) {\n engine._imageCache.delete(key);\n }\n }\n }\n}\n\n// ============================================================================\n// Combined Cache\n// ============================================================================\n\nexport function clearAllCaches(engine: VisualNovelEngine): void {\n engine._audioBufferCache.clear();\n engine._imageCache.clear();\n}\n\n// ============================================================================\n// Service Worker Communication\n// ============================================================================\n\nfunction sendServiceWorkerMessage(message: Record): Promise {\n return new Promise((resolve, reject) => {\n if (!navigator.serviceWorker?.controller) {\n reject(new Error('Service worker not available'));\n return;\n }\n\n const messageChannel = new MessageChannel();\n messageChannel.port1.onmessage = (event) => {\n resolve(event.data as T);\n };\n\n navigator.serviceWorker.controller.postMessage(message, [messageChannel.port2]);\n\n // Timeout after 10 seconds\n setTimeout(() => {\n reject(new Error('Service worker message timeout'));\n }, 10000);\n });\n}\n\nexport async function cacheInServiceWorker(urls: string[]): Promise<{ success: boolean; cached?: number; total?: number; error?: string }> {\n try {\n return await sendServiceWorkerMessage<{ success: boolean; cached?: number; total?: number; error?: string }>({\n type: 'CACHE_ASSETS',\n data: { urls }\n });\n } catch (error) {\n return { success: false, error: (error as Error).message };\n }\n}\n\nexport async function isInServiceWorkerCache(url: string): Promise {\n try {\n const result = await sendServiceWorkerMessage<{ cached: boolean }>({\n type: 'CHECK_CACHE',\n data: { url }\n });\n return result.cached;\n } catch {\n return false;\n }\n}\n\nexport async function getFromServiceWorkerCache(url: string): Promise {\n try {\n const result = await sendServiceWorkerMessage<{ found: boolean; data?: ArrayBuffer }>({\n type: 'GET_CACHED',\n data: { url }\n });\n return result.found ? result.data : undefined;\n } catch {\n return undefined;\n }\n}\n\n// ============================================================================\n// Audio Serialization\n// ============================================================================\n\nexport function serializeAudioBuffer(buffer: AudioBuffer): {\n channels: Float32Array[];\n sampleRate: number;\n length: number;\n numberOfChannels: number;\n} {\n const channels: Float32Array[] = [];\n\n for (let i = 0; i < buffer.numberOfChannels; i++) {\n // Create a copy of the channel data\n channels.push(new Float32Array(buffer.getChannelData(i)));\n }\n\n return {\n channels,\n sampleRate: buffer.sampleRate,\n length: buffer.length,\n numberOfChannels: buffer.numberOfChannels\n };\n}\n\nexport function deserializeAudioBuffer(\n data: { channels: ArrayLike[]; sampleRate: number; length: number; numberOfChannels: number },\n audioContext: AudioContext\n): AudioBuffer {\n const buffer = audioContext.createBuffer(\n data.numberOfChannels,\n data.length,\n data.sampleRate\n );\n\n for (let i = 0; i < data.numberOfChannels; i++) {\n // Create a new Float32Array from the stored data to ensure correct type\n const channelData = new Float32Array(data.channels[i]);\n buffer.copyToChannel(channelData, i);\n }\n\n return buffer;\n}\n\n// ============================================================================\n// Persistent Audio Storage (IndexedDB)\n// ============================================================================\n\nexport async function audioBufferSpace(engine: VisualNovelEngine): Promise {\n // If we already know IndexedDB isn't available, skip\n if (engine._indexedDBAvailable === false) {\n return null;\n }\n\n if (!engine._audioBufferSpace) {\n try {\n engine._audioBufferSpace = new Space(SpaceAdapter.IndexedDB, {\n name: `${Text.friendly(engine.setting('Name') as string)}_AudioCache`,\n version: '1',\n store: 'decodedAudio'\n } as ConstructorParameters[1]);\n\n await engine._audioBufferSpace.open();\n engine._indexedDBAvailable = true;\n } catch (error) {\n console.warn('IndexedDB not available for audio caching. Audio will still work but won\\'t persist across sessions:', error);\n engine._indexedDBAvailable = false;\n return null;\n }\n }\n\n return engine._audioBufferSpace;\n}\n\nexport function isIndexedDBAvailable(engine: VisualNovelEngine): boolean | null {\n return engine._indexedDBAvailable;\n}\n\nexport async function storeAudioBufferPersistent(engine: VisualNovelEngine, key: string, buffer: AudioBuffer): Promise {\n const space = await audioBufferSpace(engine);\n\n if (!space) {\n return; // IndexedDB not available, silently skip\n }\n\n try {\n const serialized = serializeAudioBuffer(buffer);\n await space.set(key, serialized);\n } catch (error) {\n console.warn('Failed to store audio buffer in IndexedDB:', error);\n }\n}\n\nexport async function getAudioBufferPersistent(engine: VisualNovelEngine, key: string): Promise {\n const space = await audioBufferSpace(engine);\n\n if (!space) {\n return undefined; // IndexedDB not available\n }\n\n try {\n const data = await space.get(key) as { channels: Float32Array[]; sampleRate: number; length: number; numberOfChannels: number } | undefined;\n\n if (data && data.channels && engine.audioContext) {\n return deserializeAudioBuffer(data, engine.audioContext);\n }\n } catch (error) {\n console.warn('Failed to retrieve audio buffer from IndexedDB:', error);\n }\n return undefined;\n}\n\nexport async function removeAudioBufferPersistent(engine: VisualNovelEngine, key: string): Promise {\n const space = await audioBufferSpace(engine);\n\n if (!space) {\n return; // IndexedDB not available\n }\n\n try {\n await space.remove(key);\n } catch (error) {\n console.warn('Failed to remove audio buffer from IndexedDB:', error);\n }\n}\n\nexport async function clearAudioBufferPersistent(engine: VisualNovelEngine): Promise {\n const space = await audioBufferSpace(engine);\n\n if (!space) {\n return; // IndexedDB not available\n }\n\n try {\n await space.clear();\n } catch (error) {\n console.warn('Failed to clear audio buffers from IndexedDB:', error);\n }\n}\n", + "import type { VisualNovelEngine } from '../lib/types/Monogatari';\nimport type { DOM, Callable } from '@aegis-framework/artemis';\nimport { $_, Util } from '@aegis-framework/artemis';\nimport mousetrap, { ExtendedKeyboardEvent } from 'mousetrap';\n\nexport function keyboardShortcut (engine: VisualNovelEngine, shortcut: string | string[], callback: (this: VisualNovelEngine, event: KeyboardEvent, element: DOM) => void): void {\n engine.debug.log (`Binding Keyboard Shortcut: ${shortcut}`);\n\n mousetrap.bind (shortcut, (event: ExtendedKeyboardEvent) => {\n const target = event.target as HTMLElement | null;\n\n if (target && target.tagName?.toLowerCase () !== 'input') {\n event.preventDefault ();\n callback.apply (engine, [event, $_(target)]);\n }\n });\n}\n\nexport function registerListener (engine: VisualNovelEngine, name: string, listener: { keys?: string | string[]; callback: (this: VisualNovelEngine, event: Event, element: DOM) => unknown }, replace = false): void {\n const listenerWithName = { ...listener, name };\n\n if (replace === true) {\n const index = engine._listeners.findIndex (l => l.name === name);\n\n if (index > -1) {\n engine._listeners[index] = listenerWithName;\n return;\n }\n }\n\n // If a listener is registered post-bind, we want to register the keyboard\n // shortcut as well or else it will not happen automatically\n if (engine.global ('_didBind') === true && listenerWithName.keys) {\n keyboardShortcut (engine, listenerWithName.keys, listenerWithName.callback);\n }\n\n engine._listeners.push (listenerWithName);\n}\n\nexport function unregisterListener (engine: VisualNovelEngine, name: string): void {\n const listener = engine._listeners.find((l) => l.name.toLowerCase () === name.toLowerCase ());\n\n if (listener) {\n if (listener.keys) {\n engine.debug.log (`Unbinding Keys: ${listener.keys}`);\n mousetrap.unbind (listener.keys as string | string[]);\n }\n\n engine._listeners = engine._listeners.filter((l) => l.name.toLowerCase () !== name.toLowerCase ());\n }\n}\n\nexport async function runListener (engine: VisualNovelEngine, name: string, event: Event | null = null, element: DOM | null = null): Promise {\n const promises: Promise[] = [];\n let actionName = name;\n\n // Check if the click event happened on a path of an icon.\n // This fixes a bug with font-awesome icons being clicked but the\n // click being registered at an inner path instead of the svg element\n // that holds the data information\n if (element && element.matches ('path')) {\n element = element.closest ('[data-action]');\n\n if (element.length > 0) {\n actionName = element.data ('action') || name;\n }\n }\n\n for (const listener of engine._listeners) {\n if (listener.name === actionName) {\n promises.push (Util.callAsync(listener.callback as Callable, engine, event, element).then ((data) => {\n if (data) {\n return Promise.resolve ();\n }\n\n return Promise.reject ();\n }));\n\n engine.debug.debug ('Running Listener', actionName);\n }\n }\n\n await Promise.all (promises).catch ((e) => {\n if (event) {\n event.stopImmediatePropagation ();\n event.stopPropagation ();\n event.preventDefault ();\n }\n\n engine.debug.debug ('Listener Event Propagation Stopped', e);\n });\n}\n", + "import type { VisualNovelEngine } from '../lib/types/Monogatari';\nimport { $_ } from '@aegis-framework/artemis';\nimport { FancyError } from '../lib/FancyError';\nimport type Component from '../lib/Component';\n\n// ============================================================================\n// Alert Management\n// ============================================================================\n\nexport function showAlert (engine: VisualNovelEngine, id: string, options: Record): void {\n\tconst alert = document.createElement ('alert-modal') as HTMLElement & { setProps: (options: Record) => void };\n\n\talert.setAttribute ('data-alert-id', id);\n\talert.setProps (options);\n\n\tengine.element ().prepend (alert);\n}\n\nexport function dismissAlert (engine: VisualNovelEngine, id: string | null = null): void {\n\tif (typeof id === 'string') {\n\t\tengine.element ().find (`alert-modal[data-alert-id=\"${id}\"]`).remove ();\n\t} else {\n\t\tengine.element ().find ('alert-modal').remove ();\n\t}\n}\n\n// ============================================================================\n// Ambient Audio\n// ============================================================================\n\nexport function playAmbient (engine: VisualNovelEngine): void {\n\t// Check if a menu music was defined\n\tif (engine.setting ('MainScreenMusic') !== '' && engine.ambientPlayer) {\n\t\tconst mainScreenMusic = engine.setting ('MainScreenMusic') as string;\n\t\tconst assetsPath = engine.setting ('AssetsPath') as { root: string; music: string };\n\t\tconst volumePref = engine.preference ('Volume') as { Music: number | string };\n\n\t\t// Make the ambient player loop\n\t\tengine.ambientPlayer.loop = true;\n\n\t\tlet ambientVolume = volumePref.Music;\n\n\t\tif (typeof ambientVolume === 'string') {\n\t\t\tambientVolume = parseFloat(ambientVolume);\n\t\t}\n\n\t\tengine.ambientPlayer.volume = ambientVolume;\n\n\t\t// Check if the music was defined in the music assets object\n\t\tconst musicAsset = engine.asset ('music', mainScreenMusic) as string | undefined;\n\n\t\tif (typeof musicAsset === 'undefined') {\n\t\t\tconst musicAssets = engine.assets ('music') as Record | undefined;\n\n\t\t\tFancyError.show ('engine:music:not_defined', {\n\t\t\t\tmusic: mainScreenMusic,\n\t\t\t\tavailableMusic: Object.keys (musicAssets ?? {})\n\t\t\t});\n\n return;\n\t\t}\n\n // Check if the player is already playing music\n if (!engine.ambientPlayer.paused && !engine.ambientPlayer.ended) {\n return;\n }\n\n // Get the full path to the asset and set the src to the ambient player\n engine.ambientPlayer.src = `${assetsPath.root}/${assetsPath.music}/${musicAsset}`;\n\n // Play the music but catch any errors. Error catching is necessary\n // since some browsers like chrome, have added some protections to\n // avoid media from being autoplayed. Because of these protections,\n // the user needs to interact with the page first before the media\n // is able to play.\n engine.ambientPlayer.play ().catch ((e) => {\n console.warn(e);\n // Create a broadcast message\n const element = `\n
\n

${engine.string ('AllowPlayback')}.

\n
\n `;\n\n // Add it to the main menu and game screens\n engine.element ().prepend (element);\n\n // Try to play the media again once the element has been clicked\n // and remove it.\n engine.element ().on ('click', '[data-ui=\"broadcast\"][data-content=\"allow-playback\"]', () => {\n playAmbient (engine);\n engine.element ().find ('[data-ui=\"broadcast\"][data-content=\"allow-playback\"]').remove ();\n });\n });\n\t}\n}\n\n// Stop the main menu's music\nexport function stopAmbient (engine: VisualNovelEngine): void {\n\tconst player = engine.ambientPlayer;\n\n\tif (player && !player.paused) {\n\t\tplayer.pause ();\n\t}\n}\n\n// ============================================================================\n// Screen Management\n// ============================================================================\n\n// Start game automatically without going trough the main menu\nexport function showMainScreen (engine: VisualNovelEngine): void {\n\tengine.global ('on_splash_screen', false);\n\n\tif (engine.setting ('ShowMainScreen')) {\n\t\tshowScreen (engine, 'main');\n\t\treturn;\n\t}\n\n\tconst currentLabel = engine.label () as unknown[];\n\tconst step = engine.state ('step') as number;\n\n\tengine.global ('playing', true);\n\tshowScreen (engine, 'game');\n\n\tengine.run (currentLabel[step]);\n}\n\nexport function showSplashScreen (engine: VisualNovelEngine): void {\n\tconst labelName = engine.setting ('SplashScreenLabel');\n\n\tif (typeof labelName === 'string' && labelName !== '') {\n\t\tconst labelContent = engine.label (labelName);\n\n\t\tif (typeof labelContent !== 'undefined') {\n\t\t\tengine.global ('on_splash_screen', true);\n\n\t\t\tengine.state ({\n\t\t\t\tlabel: labelName\n\t\t\t});\n\n\t\t\tengine.element ().find ('[data-component=\"game-screen\"]').addClass ('splash-screen');\n\n\t\t\tengine.element ().find ('[data-component=\"quick-menu\"]').addClass ('splash-screen');\n\n\t\t\tshowScreen (engine, 'game');\n\n\t\t\tconst currentLabel = engine.label () as unknown[];\n\t\t\tconst step = engine.state ('step') as number;\n\n\t\t\tengine.run (currentLabel[step]);\n\n\t\t\treturn;\n\t\t}\n\t}\n\n\tshowMainScreen (engine);\n}\n\nexport function showScreen (engine: VisualNovelEngine, screen: string): void {\n\thideScreens (engine);\n\n\tconst screenElement = engine.element ().find (`[data-screen=\"${screen}\"]`).get (0) as Component | undefined;\n\tscreenElement?.setState ({\n\t\topen: true\n\t});\n\n\t// If auto play or skip were enabled, disable them.\n\tif (engine.global ('_auto_play_timer')) {\n\t\tautoPlay (engine, false);\n\t}\n\n\tif (engine.global ('skip')) {\n\t\tskip (engine, false);\n\t}\n}\n\nexport function hideScreens (engine: VisualNovelEngine): void {\n\tconst element = engine.element();\n\n\telement?.find ('[data-screen]').each ((screen) => {\n\t\t(screen as Component).setState ({ open: false });\n\t});\n}\n\n// ============================================================================\n// Auto-play & Skip\n// ============================================================================\n\n/**\n * @static autoPlay - Enable or disable the autoplay feature which allows the\n * game to play itself (of sorts), it will go through the dialogs alone but\n * will wait when user interaction is needed.\n *\n * @param {boolean} enable - Wether the auto play feature will be enabled (true)\n * or disabled (false);\n */\nexport function autoPlay (engine: VisualNovelEngine, enable: boolean): void {\n\tif (enable === true) {\n\t\t// The interval for autoplay speed is measured in seconds\n\t\tconst interval = (engine.preference ('AutoPlaySpeed') as number) * 1000;\n\t\tlet expected = Date.now () + interval;\n\n\t\tconst timerFn = () => {\n\t\t\tconst now = Date.now () - expected; // the drift (positive for overshooting)\n\t\t\tif (now > interval) {\n\t\t\t\t// something really bad happened. Maybe the browser (tab) was inactive?\n\t\t\t\t// possibly special handling to avoid futile \"catch up\" run\n\t\t\t}\n\t\t\tengine.proceed ({ userInitiated: false, skip: false, autoPlay: true }).then (() => {\n\t\t\t\texpected += interval;\n\t\t\t\tsetTimeout (engine.global ('_auto_play_timer') as () => void, Math.max (0, interval - now)); // take into account drift\n\t\t\t}).catch (() => {\n\t\t\t\t// An action waiting for user interaction or something else\n\t\t\t\t// is blocking the game.\n\t\t\t\texpected += interval;\n\t\t\t\tsetTimeout (engine.global ('_auto_play_timer') as () => void, Math.max (0, interval - now)); // take into account drift\n\t\t\t});\n\t\t};\n\n\t\tengine.global ('_auto_play_timer', timerFn);\n\t\tsetTimeout (timerFn, interval);\n\n\t\tengine.element ().find ('[data-component=\"quick-menu\"] [data-action=\"auto-play\"] [data-string]').text (engine.string ('Stop') || 'Stop');\n\t\tengine.element ().find ('[data-component=\"quick-menu\"] [data-action=\"auto-play\"] [data-icon]').replaceWith ('');\n\t} else {\n\t\tclearTimeout (engine.global ('_auto_play_timer') as ReturnType);\n\t\tengine.global ('_auto_play_timer', null);\n\t\tengine.element ().find ('[data-component=\"quick-menu\"] [data-action=\"auto-play\"] [data-string]').text (engine.string ('AutoPlay') || 'AutoPlay');\n\t\tengine.element ().find ('[data-component=\"quick-menu\"] [data-action=\"auto-play\"] [data-icon]').replaceWith ('');\n\t}\n}\n\n/**\n * @static distractionFree - Enable or disable the distraction free mode\n * where the dialog box is hidden so that the player can look at the characters\n * and background with no other elements on the way. A 'transparent' class\n * is added to the quick menu when this mode is enabled.\n */\nexport function distractionFree (engine: VisualNovelEngine): void {\n\tif (engine.global ('playing')) {\n\t\tconst element = engine.element();\n\t\t// Check if the distraction free is currently enabled\n\t\tif (engine.global ('distraction_free') === true) {\n\t\t\telement?.find ('[data-component=\"quick-menu\"] [data-action=\"distraction-free\"] [data-string]').text (engine.string ('Hide') ?? '');\n\t\t\telement?.find ('[data-component=\"quick-menu\"] [data-action=\"distraction-free\"] [data-icon]').replaceWith ('');\n\t\t\telement?.find ('[data-component=\"quick-menu\"]').removeClass ('transparent');\n\t\t\telement?.find ('[data-component=\"text-box\"]').show ('grid');\n\t\t\tengine.global ('distraction_free', false);\n\t\t} else {\n\t\t\telement?.find ('[data-component=\"quick-menu\"] [data-action=\"distraction-free\"] [data-string]').text (engine.string ('Show') ?? '');\n\t\t\telement?.find ('[data-component=\"quick-menu\"] [data-action=\"distraction-free\"] [data-icon]').replaceWith ('');\n\t\t\telement?.find ('[data-component=\"quick-menu\"]').addClass ('transparent');\n\t\t\telement?.find ('[data-component=\"text-box\"]').hide();\n\t\t\tengine.global ('distraction_free', true);\n\t\t}\n\t}\n}\n\nexport function skip (engine: VisualNovelEngine, enable: boolean): void {\n\tconst skipSetting = engine.setting ('Skip') as number;\n\n\tif (enable === true) {\n\t\t// Check if Skip was enabled on the settings, if it has a value greater\n\t\t// than 0, it represents the speed with which the game will skip through\n\t\t// statements. If it's lesser or equal to 0 then it's disabled.\n\t\tif (skipSetting > 0) {\n\n\t\t\tconst button = engine.element ().find ('[data-component=\"quick-menu\"] [data-action=\"skip\"] [data-icon]');\n\n\t\t\tif (button.data ('icon') !== 'play-circle') {\n\t\t\t\tbutton.replaceWith ('');\n\t\t\t}\n\n\t\t\t// Start the timeout with the time specified on the settings. We\n\t\t\t// save it on a global variable so that we can disable later.\n\t\t\tengine.global ('skip', setTimeout (() => {\n\t\t\t\tif (engine.element ().find ('[data-screen=\"game\"]').isVisible () && engine.global ('playing') === true) {\n\t\t\t\t\tengine.proceed ({ userInitiated: false, skip: true, autoPlay: false }).then (() => {\n\t\t\t\t\t\t// Nothing to do here\n\t\t\t\t\t}).catch ((e) => {\n\t\t\t\t\t\tengine.debug.log (`Proceed Prevented\\nReason: ${e}`);\n\t\t\t\t\t\t// An action waiting for user interaction or something else\n\t\t\t\t\t\t// is blocking the game.\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\t// Start all over again\n\t\t\t\tskip (engine, true);\n\t\t\t}, skipSetting));\n\t\t}\n\t} else {\n\t\tclearTimeout (engine.global ('skip') as ReturnType);\n\t\tengine.global ('skip', null);\n\t\tconst button = engine.element ().find ('[data-component=\"quick-menu\"] [data-action=\"skip\"] [data-icon]');\n\n\t\tif (button.data ('icon') !== 'fast-forward') {\n\t\t\tbutton.replaceWith ('');\n\t\t}\n\t}\n}\n\n// ============================================================================\n// Resize & Navigation\n// ============================================================================\n\nexport function resize (engine: VisualNovelEngine, _element: unknown, proportionWidth: number, proportionHeight: number): void {\n\tconst parentElement = engine.parentElement();\n\tif (!parentElement) return;\n\n\tconst mainWidth = parentElement.width();\n\tconst mainHeight = parentElement.height();\n\n\tconst h = Math.floor (mainWidth * (proportionHeight / proportionWidth));\n\n\tlet widthCss = '100%';\n\tlet heightCss = '100%';\n\tlet marginTopCss: string | number = 0;\n\n\tif (h <= mainHeight) {\n\t\tconst marginTop = Math.floor ((mainHeight - h)/2);\n\t\tmarginTopCss = marginTop + 'px';\n\t\theightCss = h + 'px';\n\n\t} else {\n\t\tconst w = Math.floor (mainHeight * (proportionWidth/proportionHeight));\n\t\twidthCss = w + 'px';\n\t}\n\n\t$_('.forceAspectRatio').style ({\n\t\t'width': widthCss,\n\t\t'height': heightCss,\n\t\t'margin-top': marginTopCss\n\t});\n}\n\nexport function goBack (engine: VisualNovelEngine, event: Event, selector: string): void {\n\tif (!$_(`${selector} [data-screen=\"game\"]`).isVisible ()) {\n\t\tengine.debug.debug ('Registered Back Listener on Non-Game Screen');\n\t\tevent.stopImmediatePropagation ();\n\t\tevent.stopPropagation ();\n\t\tevent.preventDefault ();\n\t\thideScreens (engine);\n\n\t\ttype ComponentWithState = HTMLElement & { setState: (state: Record) => void };\n\n\t\tif (engine.global ('playing') || engine.global ('on_splash_screen')) {\n\t\t\tconst gameScreen = engine.element ().find ('[data-screen=\"game\"]').get (0) as ComponentWithState | undefined;\n\t\t\tgameScreen?.setState ({ open: true });\n\t\t} else {\n\t\t\tconst mainScreen = engine.element ().find ('[data-screen=\"main\"]').get (0) as ComponentWithState | undefined;\n\t\t\tmainScreen?.setState ({ open: true });\n\t\t}\n\t}\n}\n\n// ============================================================================\n// Initial Screen\n// ============================================================================\n\nexport function displayInitialScreen (engine: VisualNovelEngine): void {\n\t// Preload all the game assets\n\tengine.preload ().then (() => {\n\n\t}).catch ((e) => {\n\t\tconsole.error (e);\n\t}).finally (() => {\n\t\tif (engine.label ()) {\n\t\t\tshowSplashScreen (engine);\n\t\t} else {\n\t\t\tconst scriptData = engine.script () as Record | undefined;\n\t\t\tFancyError.show ('engine:script:label_not_found', {\n\t\t\t\tstartLabel: engine.setting ('Label'),\n\t\t\t\tavailableLabels: Object.keys (scriptData ?? {})\n\t\t\t});\n\t\t}\n\t});\n}\n", + "import type { CharacterHistoryItem, SaveGameData } from '../lib/types';\n\ninterface MigrationSaveData {\n\tstate?: Record;\n\thistory: {\n\t\tcharacter?: (string | CharacterHistoryItem)[];\n\t\t[key: string]: unknown[] | undefined;\n\t};\n\tstorage?: Record;\n\tgame?: SaveGameData;\n}\n\n/**\n * @Compatibility [< v2.1.0]\n *\n * Monogatari v2.1.0 introduced a new format to save the history of the show\n * actions by adding the previous statement they may have replaced in order to\n * suppress a bug where the incorrect items were shown as it assumed they were\n * previously visible.\n */\nconst AddPreviousStatementToShowHistory = (save: MigrationSaveData): MigrationSaveData => {\n\tconst { history } = save;\n\n\tif (history.character instanceof Array) {\n\t\tif (history.character.length > 0) {\n\t\t\tconst characters: CharacterHistoryItem[] = [];\n\t\t\tfor (let i = 0; i < history.character.length; i++) {\n\t\t\t\tconst statement = history.character[i];\n\t\t\t\tif (typeof statement === 'string') {\n\t\t\t\t\tconst [_show, _character, asset] = statement.split(' ');\n\n\t\t\t\t\tconst previous = ([...history.character.slice(0, i)] as (string | CharacterHistoryItem)[]).reverse().find((item) => {\n\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\tconst [, , _asset] = item.split(' ');\n\t\t\t\t\t\t\treturn asset === _asset;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t});\n\n\t\t\t\t\tcharacters.push({\n\t\t\t\t\t\tstatement,\n\t\t\t\t\t\tprevious: typeof previous === 'string' ? previous : null\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcharacters.push(statement);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\thistory.character = characters;\n\t\t\tsave.history = history;\n\t\t}\n\t}\n\n\treturn save;\n};\n\nexport default AddPreviousStatementToShowHistory;\n\n", + "import type { MediaStateItem, SaveGameData } from '../lib/types';\n\ninterface MigrationSaveData {\n\tstate: {\n\t\tmusic?: (string | MediaStateItem)[];\n\t\tsound?: (string | MediaStateItem)[];\n\t\tvoice?: (string | MediaStateItem)[];\n\t\t[key: string]: unknown;\n\t};\n\thistory?: Record;\n\tstorage?: Record;\n\tgame?: SaveGameData;\n}\n\n/**\n * @Compatibility [<= v2.0.0-beta.15]\n *\n * Monogatari v2.0.0-beta.15 introduced a new format to save the state of the media\n * being played. Therefore, we need to check if the old format is being used in the\n * save file and transform it to the new one.\n */\nconst AddPauseStateToMediaState = (save: MigrationSaveData): MigrationSaveData => {\n\tconst { state } = save;\n\n\tif (state.music instanceof Array) {\n\t\tif (state.music.length > 0) {\n\t\t\tconst music: MediaStateItem[] = [];\n\t\t\tfor (const statement of state.music) {\n\t\t\t\tif (typeof statement === 'string') {\n\t\t\t\t\tmusic.push({\n\t\t\t\t\t\tstatement,\n\t\t\t\t\t\tpaused: false,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tmusic.push(statement);\n\t\t\t\t}\n\t\t\t}\n\t\t\tstate.music = music;\n\t\t}\n\t}\n\n\tif (state.sound instanceof Array) {\n\t\tif (state.sound.length > 0) {\n\t\t\tconst sound: MediaStateItem[] = [];\n\t\t\tfor (const statement of state.sound) {\n\t\t\t\tif (typeof statement === 'string') {\n\t\t\t\t\tsound.push({\n\t\t\t\t\t\tstatement,\n\t\t\t\t\t\tpaused: false,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tsound.push(statement);\n\t\t\t\t}\n\t\t\t}\n\t\t\tstate.sound = sound;\n\t\t}\n\t}\n\n\tif (state.voice instanceof Array) {\n\t\tif (state.voice.length > 0) {\n\t\t\tconst voice: MediaStateItem[] = [];\n\t\t\tfor (const statement of state.voice) {\n\t\t\t\tif (typeof statement === 'string') {\n\t\t\t\t\tvoice.push({\n\t\t\t\t\t\tstatement,\n\t\t\t\t\t\tpaused: false,\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tvoice.push(statement);\n\t\t\t\t}\n\t\t\t}\n\t\t\tstate.voice = voice;\n\t\t}\n\t}\n\n\tsave.state = state;\n\n\treturn save;\n};\n\nexport default AddPauseStateToMediaState;\n\n", + "import AddPreviousStatementToShowHistory from './20211223-add-previous-statement-to-show-history';\nimport AddPauseStateToMediaState from './20200310-add-pause-state-to-media-state';\n\n/**\n * Migration function type - transforms save data from old format to new format\n */\nexport type Migration = (save: Record) => Record;\n\n/**\n * List of migrations to apply in order\n */\nconst migrations: Migration[] = [\n\tAddPauseStateToMediaState as unknown as Migration,\n\tAddPreviousStatementToShowHistory as unknown as Migration\n];\n\n/**\n * Apply all migrations to a save object\n * @param save - The save data to migrate\n * @returns The migrated save data\n */\nconst migrate = (save: Record): Record => {\n\tmigrations.forEach((migration) => {\n\t\tsave = migration(save);\n\t});\n\n\treturn save;\n};\n\nexport default migrate;\n\n", + "import type { DesktopBridge } from './DesktopBridge';\nimport type { StorageInterface } from './types/Monogatari';\n\nlet requestIdCounter = 0;\n\n// We use requests IDs to track the requests and responses between the main process\n// and the renderer process. This is a simple way to ensure that the requests and\n// responses are matched correctly.\nconst nextRequestId = (): string => `fss_${++requestIdCounter}_${Date.now()}`;\n\nexport class FileSystemStorage implements StorageInterface {\n\tprivate bridge: DesktopBridge;\n\tprivate _config: Record = {};\n\n\tprivate _callbacks = {\n\t\tcreate: [] as Array<(key: string, value: unknown) => void>,\n\t\tupdate: [] as Array<(key: string, value: unknown) => void>,\n\t\tdelete: [] as Array<(key: string, value: unknown) => void>,\n\t};\n\n\tprivate _transformations: Record unknown) | null; set?: ((key: string, value: unknown) => unknown) | null }> = {};\n\n\tprivate _pendingRequests = new Map void; reject: (error: Error) => void }>();\n\n\tprivate _upgradeCallbacks: Array<{ oldVersion: string; newVersion: string; callback: (...args: unknown[]) => Promise }> = [];\n\n\tconstructor(bridge: DesktopBridge) {\n\t\tthis.bridge = bridge;\n\n\t\tthis.bridge.on('monogatari:storage-response', (raw: unknown) => {\n\t\t\tconst response = raw as { requestId: string; data?: unknown; error?: string };\n\t\t\tconst pending = this._pendingRequests.get(response.requestId);\n\n\t\t\tif (pending) {\n\t\t\t\tthis._pendingRequests.delete(response.requestId);\n\n\t\t\t\tif (response.error) {\n\t\t\t\t\tpending.reject(new Error(response.error));\n\t\t\t\t} else {\n\t\t\t\t\tpending.resolve(response.data);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tprivate sendRequest(channel: string, payload: Record): Promise {\n\t\tconst requestId = nextRequestId();\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tthis._pendingRequests.set(requestId, { resolve, reject });\n\t\t\tthis.bridge.send(channel, { ...payload, requestId });\n\t\t});\n\t}\n\n\tprivate applyGetTransformations(key: string, value: unknown): unknown {\n\t\tlet result = value;\n\n\t\tfor (const transformation of Object.values(this._transformations)) {\n\t\t\tif (transformation.get) {\n\t\t\t\tresult = transformation.get(key, result);\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tprivate applySetTransformations(key: string, value: unknown): unknown {\n\t\tlet result = value;\n\t\tfor (const transformation of Object.values(this._transformations)) {\n\t\t\tif (transformation.set) {\n\t\t\t\tresult = transformation.set(key, result);\n\t\t\t}\n\t\t}\n\t\treturn result;\n\t}\n\n\tasync get(key: string): Promise {\n\t\tconst raw = await this.sendRequest('monogatari:storage-get', { key });\n\n\t\treturn this.applyGetTransformations(key, raw);\n\t}\n\n\tasync set(key: string, value: unknown): Promise {\n\t\tconst transformed = this.applySetTransformations(key, value);\n\t\tawait this.sendRequest('monogatari:storage-set', { key, value: transformed });\n\t\tconst result = { key, value: transformed };\n\n\t\tfor (const callback of this._callbacks.create) {\n\t\t\tcallback(key, transformed);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tasync update(key: string, value: unknown): Promise {\n\t\tconst transformed = this.applySetTransformations(key, value);\n\t\tawait this.sendRequest('monogatari:storage-update', { key, value: transformed });\n\t\tconst result = { key, value: transformed };\n\n\t\tfor (const callback of this._callbacks.update) {\n\t\t\tcallback(key, transformed);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tasync remove(key: string): Promise {\n\t\tawait this.sendRequest('monogatari:storage-remove', { key });\n\t\tfor (const cb of this._callbacks.delete) {\n\t\t\tcb(key, undefined);\n\t\t}\n\t}\n\n\tasync getAll(): Promise> {\n\t\tconst raw = await this.sendRequest('monogatari:storage-get-all', {}) as Record;\n\t\tconst result: Record = {};\n\t\tfor (const [k, v] of Object.entries(raw)) {\n\t\t\tresult[k] = this.applyGetTransformations(k, v);\n\t\t}\n\t\treturn result;\n\t}\n\n\tasync each(callback: (key: string, value: unknown) => unknown): Promise {\n\t\tconst all = await this.getAll();\n\t\tconst results: unknown[] = [];\n\t\tfor (const [key, value] of Object.entries(all)) {\n\t\t\tresults.push(await callback(key, value));\n\t\t}\n\t\treturn results;\n\t}\n\n\tasync clear(): Promise {\n\t\tawait this.sendRequest('monogatari:storage-clear', {});\n\t}\n\n\tasync key(index: number, _full?: boolean): Promise {\n\t\tconst allKeys = await this.keys(_full);\n\t\treturn allKeys[index] ?? '';\n\t}\n\n\tasync keys(_full?: boolean): Promise {\n\t\treturn await this.sendRequest('monogatari:storage-keys', {}) as string[];\n\t}\n\n\tasync contains(key: string): Promise {\n\t\t// Resolves if key exists, rejects if not (matches Space convention)\n\t\tawait this.sendRequest('monogatari:storage-contains', { key });\n\t}\n\n\tasync open(): Promise {\n\t\treturn this;\n\t}\n\n\tconfiguration(object?: Record | null): Record | undefined {\n\t\tif (object) {\n\t\t\tObject.assign(this._config, object);\n\t\t\treturn this._config;\n\t\t}\n\t\tif (object === null) {\n\t\t\treturn undefined;\n\t\t}\n\t\treturn this._config;\n\t}\n\n\tasync rename(_name: string): Promise {\n\t\t// Not applicable for filesystem storage\n\t}\n\n\tasync upgrade(oldVersion: string, newVersion: string, callback: (...args: unknown[]) => Promise): Promise {\n\t\tthis._upgradeCallbacks.push({ oldVersion, newVersion, callback });\n\t\treturn this;\n\t}\n\n\tonCreate(callback: (key: string, value: unknown) => void): void {\n\t\tthis._callbacks.create.push(callback);\n\t}\n\n\tonUpdate(callback: (key: string, value: unknown) => void): void {\n\t\tthis._callbacks.update.push(callback);\n\t}\n\n\tonDelete(callback: (key: string, value: unknown) => void): void {\n\t\tthis._callbacks.delete.push(callback);\n\t}\n\n\taddTransformation(transformation: { id: string; get?: ((key: string, value: unknown) => unknown) | null; set?: ((key: string, value: unknown) => unknown) | null }): void {\n\t\tthis._transformations[transformation.id] = transformation;\n\t}\n\n\tremoveTransformation(id: string): void {\n\t\tdelete this._transformations[id];\n\t}\n}\n", + "export interface DesktopBridge {\n\tsend(channel: string, data?: unknown): void;\n\ton(channel: string, callback: (args: unknown) => void): void;\n}\n\nexport function getDesktopBridge(): DesktopBridge | null {\n\tif (typeof window.electron === 'object') return window.electron as DesktopBridge;\n\tif (typeof window.electrobun === 'object') return window.electrobun as DesktopBridge;\n\treturn null;\n}\n", + "import { $_, Space, SpaceAdapter, Platform, Text } from '@aegis-framework/artemis';\nimport { DateTime } from 'luxon';\n\nimport type { VisualNovelEngine, StorageInterface } from '../lib/types/Monogatari';\nimport type { LegacySaveData, HistoryMap, StateMap } from '../lib/types';\nimport type { GameSettings } from '../lib/types';\n\nimport migrate from '../migrations';\nimport { FancyError } from '../lib/FancyError';\nimport { FileSystemStorage } from '../lib/FileSystemStorage';\nimport { getDesktopBridge } from '../lib/DesktopBridge';\n\n// ============================================================================\n// Game Object / State Snapshot\n// ============================================================================\n\n/**\n * Get all the relevant information of the game state.\n * Named `gameObject` to avoid collision with JS `Object`.\n *\n * @returns An object containing the current histories, state and storage variables.\n */\nexport function gameObject (engine: VisualNovelEngine): { history: HistoryMap; state: StateMap; storage: unknown } {\n\treturn {\n\t\thistory: engine.history (),\n\t\tstate: engine.state (),\n\t\tstorage: engine.storage ()\n\t};\n}\n\n// ============================================================================\n// Save\n// ============================================================================\n\nexport async function saveTo (engine: VisualNovelEngine, prefix = 'SaveLabel', id: number | null = null, name: string | null = null): Promise {\n\t// Check if the player is actually playing\n\tif (!engine.global ('playing')) {\n\t\treturn;\n\t}\n\n\tconst now = DateTime.now();\n\tconst date = now.toISO();\n\tconst timestamp = now.toMillis();\n\tconst gameData = gameObject(engine);\n\n\tif (name === null || name.trim () === '') {\n\t\tname = date;\n\t}\n\n\tlet image = '';\n\n\tconst backgroundState = engine.state ('background');\n\tconst sceneState = engine.state ('scene');\n\n\tif (backgroundState) {\n\t\timage = backgroundState.split (' ')[2];\n\t} else if (sceneState) {\n\t\timage = sceneState.split (' ')[2];\n\t}\n\n\tconst slotKey = `${engine.setting (prefix)}_${id || timestamp}`;\n\n\tlet screenshot: string | undefined;\n\n\tif (engine.setting ('Screenshots')) {\n\t\ttry {\n\t\t\tconst { domToBlob } = await import ('modern-screenshot');\n\t\t\tconst gameScreen = document.querySelector ('[data-screen=\"game\"]') as HTMLElement;\n\t\t\tif (gameScreen) {\n\t\t\t\tconst blob = await domToBlob (gameScreen, {\n\t\t\t\t\tquality: 0.8,\n\t\t\t\t\ttype: 'image/jpeg',\n\t\t\t\t\tscale: 400 / gameScreen.offsetWidth,\n\t\t\t\t});\n\t\t\t\tif (blob) {\n\t\t\t\t\tscreenshot = await engine.onSaveScreenshot (slotKey, blob);\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tengine.debug.warn ('Screenshot capture failed:', e);\n\t\t}\n\t}\n\n\tconst saveData: Record = {\n\t\tname,\n\t\tdate,\n\t\timage,\n\t\tgame: gameData\n\t};\n\n\tif (screenshot) {\n\t\tsaveData.screenshot = screenshot;\n\t}\n\n\tconst response = await engine.Storage.set (slotKey, saveData);\n\n\tif (response instanceof Response) {\n\t\treturn Promise.resolve (response.json ());\n\t}\n\n\treturn Promise.resolve (response);\n}\n\n// ============================================================================\n// Reset\n// ============================================================================\n\nexport function resetGame (engine: VisualNovelEngine): Promise {\n\t// Stop autoplay\n\tengine.autoPlay (false);\n\n\tconst skipSetting = engine.setting ('Skip');\n\n\tif (skipSetting > 0) {\n\t\tengine.skip (false);\n\t}\n\n\t// Reset Storage\n\tconst storageStructure = engine.global ('storageStructure');\n\n\tengine.storage (JSON.parse(storageStructure));\n\n\t// Reset Conditions\n\tengine.state ({\n\t\tstep: 0,\n\t\tlabel: engine.setting ('Label')\n\t});\n\n\tengine.global ('block', false);\n\n\t// Reset History\n\tfor (const history of Object.keys (engine._history)) {\n\t\tengine._history[history] = [];\n\t}\n\n\t// Run the reset method of all the actions so each of them can reset\n\t// their own elements correctly\n\tconst promises: Promise[] = [];\n\n\tfor (const action of engine.actions ()) {\n\t\tpromises.push (action.reset ());\n\t}\n\n\tfor (const component of engine.components ()) {\n\t\tpromises.push (component.onReset ());\n\t}\n\n\treturn Promise.all (promises);\n}\n\n// ============================================================================\n// Upgrade\n// ============================================================================\n\nexport function upgrade (engine: VisualNovelEngine, oldVersion: string, newVersion: string, callbacks: { storage?: (oldData: unknown) => unknown; replaceStorage?: boolean }): void {\n\tengine._upgrade[`${oldVersion}::${newVersion}`] = callbacks;\n}\n\n// ============================================================================\n// Storage Setup\n// ============================================================================\n\nexport function setupStorage (engine: VisualNovelEngine): void {\n\t// Check if an Adapter has been set or else, the global local storage\n\t// object will be used\n\tconst storageSetting = engine.setting ('Storage');\n\n\tif (storageSetting.Adapter.trim () !== '') {\n\t\tlet adapter;\n\t\tconst props: Record = {};\n\n\t\tswitch (storageSetting.Adapter) {\n\t\t\tcase 'LocalStorage':\n\t\t\t\tadapter = SpaceAdapter.LocalStorage;\n\t\t\t\tbreak;\n\n\t\t\tcase 'SessionStorage':\n\t\t\t\tadapter = SpaceAdapter.SessionStorage;\n\t\t\t\tbreak;\n\n\t\t\tcase 'IndexedDB':\n\t\t\t\tadapter = SpaceAdapter.IndexedDB;\n\t\t\t\tprops.keyPath = 'id';\n\t\t\t\tbreak;\n\n\t\t\tcase 'RemoteStorage':\n\t\t\t\tadapter = SpaceAdapter.RemoteStorage;\n\t\t\t\tprops.headers = {\n\t\t\t\t\t'Content-Type': 'application/json',\n\t\t\t\t};\n\t\t\t\tbreak;\n\n\t\t\tcase 'FileSystem': {\n\t\t\t\tconst bridge = getDesktopBridge();\n\n\t\t\t\tif (bridge) {\n\t\t\t\t\tconst fsStorage = new FileSystemStorage(bridge);\n\n\t\t\t\t\tfsStorage.configuration({\n\t\t\t\t\t\tname: Text.friendly(engine.setting('Name') as string),\n\t\t\t\t\t\tversion: engine.setting('Version') as string,\n\t\t\t\t\t\tstore: storageSetting.Store,\n\t\t\t\t\t});\n\n\t\t\t\t\tengine.Storage = fsStorage as unknown as StorageInterface;\n\t\t\t\t} else {\n\t\t\t\t\tFancyError.show('engine:storage:filesystem_no_bridge', {});\n\n\t\t\t\t\t// Fall back to IndexedDB so the game remains functional\n\t\t\t\t\tadapter = SpaceAdapter.IndexedDB;\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tdefault:\n\t\t\t\tadapter = SpaceAdapter.IndexedDB;\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif (window.navigator && !Platform.desktopApp && !Platform.cordova) {\n\t\t\tif (window.navigator.storage && window.navigator.storage.persist) {\n\t\t\t\twindow.navigator.storage.persist ().then ((persisted) => {\n\t\t\t\t\tif (persisted !== true) {\n\t\t\t\t\t\tconsole.warn ('Persistent Storage permission has been denied. When your device gets low on storage, it may choose to delete your game files.');\n\t\t\t\t\t}\n\t\t\t\t}).catch ((error) => {\n\t\t\t\t\tconsole.error (error);\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (!(engine.Storage instanceof FileSystemStorage)) {\n\t\t\tengine.Storage = new Space(adapter, {\n\t\t\t\tname: Text.friendly(engine.setting('Name') as string),\n\t\t\t\tversion: engine.setting('Version') as string,\n\t\t\t\tstore: storageSetting.Store,\n\t\t\t\tendpoint: storageSetting.Endpoint,\n\t\t\t\tprops,\n\t\t\t} as ConstructorParameters[1]) as unknown as StorageInterface;\n\t\t}\n\t}\n\n\t// Setup all the upgrade functions\n\tfor (const upgrade of Object.keys (engine._upgrade)) {\n\t\tconst [oldVersion, newVersion] = upgrade.split ('::');\n\t\tconst upgradeEntry = engine._upgrade[upgrade];\n\t\tconst callback = upgradeEntry?.storage;\n\n\t\tif (callback) {\n\t\t\tconst replace = upgradeEntry?.replaceStorage === true;\n\n\t\t\tengine.Storage.upgrade (oldVersion, newVersion, async () => {\n\t\t\t\tconst oldData = await engine.Storage.getAll ();\n\t\t\t\tconst newData = callback (oldData);\n\t\t\t\tif (typeof newData === 'object' && newData !== null) {\n\t\t\t\t\tconst newEntries = Object.entries (newData as Record);\n\n\t\t\t\t\tif (replace) {\n\t\t\t\t\t\t// Full replacement: remove keys absent from newData so\n\t\t\t\t\t\t// migrations that rename or delete fields take effect.\n\t\t\t\t\t\tconst newKeys = new Set (newEntries.map (([k]) => k));\n\t\t\t\t\t\tfor (const key of Object.keys (oldData)) {\n\t\t\t\t\t\t\tif (!newKeys.has (key)) {\n\t\t\t\t\t\t\t\tawait engine.Storage.remove (key);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (const [key, value] of newEntries) {\n\t\t\t\t\t\tawait engine.Storage.set (key, value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\t// Check for incompatible screenshot & storage combination.\n\tif (engine.setting ('Screenshots') && !engine._hasCustomSaveScreenshot) {\n\t\tconst adapterName = storageSetting.Adapter.trim();\n\n\t\tif (adapterName === 'LocalStorage' || adapterName === 'SessionStorage') {\n\t\t\tFancyError.show('engine:screenshots:storage_incompatible', {\n\t\t\t\tadapter: adapterName\n\t\t\t});\n\n\t\t\t// Disable screenshots to prevent silent failures\n\t\t\tengine.setting('Screenshots' as keyof GameSettings, false);\n\t\t}\n\t}\n}\n\n// ============================================================================\n// Load from Slot\n// ============================================================================\n\n/**\n * Load a slot from the storage. This will recover the state of the game\n * from what was saved in it.\n *\n * @param slot - The key with which the slot was saved on the storage\n */\nexport function loadFromSlot (engine: VisualNovelEngine, slot: string): Promise {\n\tdocument.body.style.cursor = 'wait';\n\tengine.global ('playing', true);\n\n\tengine.trigger ('willLoadGame');\n\n\treturn resetGame (engine).then (() => {\n\t\tengine.hideScreens ();\n\n\t\treturn engine.Storage.get (slot).then ((rawData) => {\n\t\t\tconst data = rawData as LegacySaveData;\n\t\t\t// @Compatibility [<= v1.4.1]\n\t\t\t// Check if an older save format was used so we can transform\n\t\t\t// that information into the new format.\n\t\t\tif (typeof data.Engine !== 'undefined') {\n\n\t\t\t\t// Set the game state\n\t\t\t\tengine.state ({\n\t\t\t\t\tstep: data.Engine.Step,\n\t\t\t\t\tlabel: data.Engine.Label,\n\t\t\t\t\tscene: `show scene ${data.Engine.Scene}`,\n\t\t\t\t});\n\n\t\t\t\t// Retrieve if a song was playing so we can set it to the state\n\t\t\t\tif (data.Engine.Song !== '' && typeof data.Engine.Song !== 'undefined') {\n\t\t\t\t\tengine.state ({\n\t\t\t\t\t\tmusic: [{ statement: data.Engine.Song, paused: false }],\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Retrieve if a sound was playing so we can set it to the state\n\t\t\t\tif (data.Engine.Sound !== '' && typeof data.Engine.Sound !== 'undefined') {\n\t\t\t\t\tengine.state ({\n\t\t\t\t\t\tsound: [{ statement: data.Engine.Sound, paused: false }],\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Retrieve if particles were shown so we can set it to the state\n\t\t\t\tif (data.Engine.Particles !== '' && typeof data.Engine.Particles !== 'undefined') {\n\t\t\t\t\tengine.state ({\n\t\t\t\t\t\tparticles: `show particles ${data.Engine.Particles}`\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Check if there are images to be shown\n\t\t\t\tif (data.Show !== '' && typeof data.Show !== 'undefined') {\n\t\t\t\t\tconst show = data.Show.split (',');\n\n\t\t\t\t\t// For every image saved, add their element to the game\n\t\t\t\t\tfor (const element of show) {\n\t\t\t\t\t\tif (element.trim () !== '') {\n\t\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\t\tdiv.innerHTML = element.replace ('img/', 'assets/');\n\t\t\t\t\t\t\tif (div.firstChild) {\n\t\t\t\t\t\t\t\tconst item = $_(div.firstChild as HTMLElement);\n\t\t\t\t\t\t\t\tconst firstElement = item.get(0);\n\t\t\t\t\t\t\t\tif (firstElement) {\n\t\t\t\t\t\t\t\t\tif (element.indexOf ('data-character') > -1) {\n\t\t\t\t\t\t\t\t\t\t(engine.state ('characters') as string[]).push (`show character ${item.data ('character')} ${item.data ('sprite')} ${firstElement.className}`);\n\t\t\t\t\t\t\t\t\t} else if (element.indexOf ('data-image') > -1) {\n\t\t\t\t\t\t\t\t\t\t(engine.state ('characters') as string[]).push (`show image ${item.data ('image')} ${firstElement.className}`);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst sceneElements = data.Engine!.SceneElementsHistory.map ((elements: string[]) => {\n\t\t\t\t\treturn elements.map ((element: string) => element.replace ('img/', 'assets/'));\n\t\t\t\t});\n\n\t\t\t\t// Set all the history variables with the ones from the old\n\t\t\t\t// format\n\t\t\t\tengine.history ({\n\t\t\t\t\tmusic: data.Engine!.MusicHistory,\n\t\t\t\t\tsound: data.Engine!.SoundHistory,\n\t\t\t\t\timage: data.Engine!.ImageHistory,\n\t\t\t\t\tcharacter: data.Engine!.CharacterHistory.map ((character: string) => {\n\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\tdiv.innerHTML = character.replace ('img/', 'assets/');\n\t\t\t\t\t\tif (!div.firstChild) return { statement: '', previous: null };\n\t\t\t\t\t\tconst item = $_(div.firstChild as HTMLElement);\n\t\t\t\t\t\tconst firstEl = item.get (0);\n\t\t\t\t\t\tif (!firstEl) return { statement: '', previous: null };\n\t\t\t\t\t\tconst classes = firstEl.classList;\n\t\t\t\t\t\tclasses.remove ('animated');\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tstatement: `show character ${item.data ('character')} ${item.data ('sprite')} with ${classes.toString ()}`,\n\t\t\t\t\t\t\tprevious: null\n\t\t\t\t\t\t};\n\t\t\t\t\t}).filter((c) => c.statement !== ''),\n\t\t\t\t\tscene: data.Engine!.SceneHistory.map ((scene: string) => {\n\t\t\t\t\t\treturn `show scene ${scene}`;\n\t\t\t\t\t}),\n\t\t\t\t\tsceneElements: sceneElements,\n\t\t\t\t\tsceneState: sceneElements.map ((elements: string[]) => {\n\t\t\t\t\t\tif (elements.length > 0) {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tcharacters: elements.filter((element: string) => element.indexOf ('data-character=') > -1).map ((element: string) => {\n\t\t\t\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t\t\t\t\t\tif (!div.firstChild) return '';\n\t\t\t\t\t\t\t\t\tconst image = $_(div.firstChild as HTMLElement);\n\t\t\t\t\t\t\t\t\tconst firstEl = image.get(0);\n\t\t\t\t\t\t\t\t\tif (!firstEl) return '';\n\t\t\t\t\t\t\t\t\tconst classes = firstEl.classList.toString ().replace ('animated', '').trim ();\n\t\t\t\t\t\t\t\t\treturn `show character ${image.data('character')} ${image.data('sprite')}${ classes.length > 0 ? ` with ${classes}`: ''}`;\n\t\t\t\t\t\t\t\t}).filter((c: string) => c !== ''),\n\t\t\t\t\t\t\t\timages: elements.filter((element: string) => element.indexOf ('data-image=') > -1).map ((element: string) => {\n\t\t\t\t\t\t\t\t\tconst div = document.createElement ('div');\n\t\t\t\t\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t\t\t\t\t\tif (!div.firstChild) return '';\n\t\t\t\t\t\t\t\t\tconst image = $_(div.firstChild as HTMLElement);\n\t\t\t\t\t\t\t\t\tconst firstEl = image.get(0);\n\t\t\t\t\t\t\t\t\tif (!firstEl) return '';\n\t\t\t\t\t\t\t\t\tconst classes = firstEl.classList.toString ().replace ('animated', '').trim ();\n\t\t\t\t\t\t\t\t\treturn `show image ${image.data('image')}${ classes.length > 0 ? ` with ${classes}`: ''}`;\n\t\t\t\t\t\t\t\t}).filter((c: string) => c !== ''),\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\tcharacters: [],\n\t\t\t\t\t\t\timages: []\n\t\t\t\t\t\t};\n\t\t\t\t\t}),\n\t\t\t\t\tparticle: data.Engine!.ParticlesHistory.map ((particles: string) => {\n\t\t\t\t\t\treturn `show particles ${particles}`;\n\t\t\t\t\t}),\n\t\t\t\t});\n\t\t\t\tengine.storage (data.Storage ?? {});\n\n\t\t\t} else {\n\t\t\t\t// If the new format is being used, things are a lot more simple\n\t\t\t\tconst migratedData = migrate((data.game ?? {}) as unknown as Record) as { state: Record; history: Record; storage: Record };\n\n\t\t\t\tengine.state (migratedData.state);\n\t\t\t\tengine.history (migratedData.history);\n\t\t\t\tengine.storage (migratedData.storage);\n\t\t\t}\n\n\n\t\t\tconst currentStep = engine.state ('step') as number;\n\t\t\tconst labelLength = (engine.label () as unknown[]).length;\n\t\t\tif (currentStep > labelLength - 1) {\n\t\t\t\tlet step = currentStep;\n\t\t\t\twhile (step > labelLength - 1) {\n\t\t\t\t\tstep = step - 1;\n\t\t\t\t}\n\t\t\t\tengine.state ({ step });\n\t\t\t}\n\n\t\t\treturn engine.onLoad ().then (() => {\n\t\t\t\t// Finally show the game and start playing\n\t\t\t\tengine.showScreen ('game');\n\t\t\t\tdocument.body.style.cursor = 'auto';\n\t\t\t\tengine.trigger ('didLoadGame');\n\t\t\t\treturn Promise.resolve ();\n\t\t\t});\n\t\t});\n\t});\n}\n", + "import type { VisualNovelEngine } from '../lib/types/Monogatari';\nimport type { StaticAction, ActionInstance, FancyErrorProps } from '../lib/types';\nimport type Action from '../lib/Action';\n\n// TODO: We need to decouple these.\nimport type TypeWriterComponent from '../components/type-writer';\nimport { $_, Util } from '@aegis-framework/artemis';\nimport { FancyError } from '../lib/FancyError';\n\n// ============================================================================\n// Async Assertion\n// ============================================================================\n\n/**\n * @static assertAsync - This function will run any function asynchronously\n * regardless of if the function to be run is async or not.\n *\n * @param {function} callable - The function to run\n * @param {Object} [self=null] - The reference to `this` in the function\n * @param {any[]} [args=null] - The arguments with which to call the function\n *\n * @returns {Promise} - Resolves if the function returned true and rejects if\n * the function returned false.\n */\nexport function assertAsync (engine: VisualNovelEngine, callable: (...args: unknown[]) => unknown, self: unknown = null, args: unknown[] | null = null): Promise {\n\tconst originalBlockValue = engine.global ('block');\n\n\tengine.global ('block', true);\n\n\treturn new Promise ((resolve, reject) => {\n\t\tconst result = callable.apply(self, args || []);\n\t\t// Check if the function returned a simple boolean\n\t\t// if the return value is true, the game will continue\n\t\tif (typeof result === 'boolean') {\n\t\t\tif (result) {\n\t\t\t\tresolve ();\n\t\t\t} else {\n\t\t\t\treject ();\n\t\t\t}\n\t\t} else if (result !== null && typeof result === 'object') {\n\t\t\t// Check if the result was a promise\n\t\t\tif ('then' in result && typeof result.then === 'function') {\n\t\t\t\t(result as Promise).then((value: unknown) => {\n\t\t\t\t\tif (typeof value === 'boolean') {\n\t\t\t\t\t\tif (value) {\n\t\t\t\t\t\t\tresolve ();\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treject ();\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tresolve ();\n\t\t\t\t\t}\n\t\t\t\t}).catch(reject);\n\t\t\t} else {\n\t\t\t\tresolve ();\n\t\t\t}\n\t\t} else {\n\t\t\treject ();\n\t\t}\n\t}).finally (() => {\n\t\tengine.global ('block', originalBlockValue);\n\t});\n}\n\n// ============================================================================\n// Step Navigation\n// ============================================================================\n\n/**\n * @static next - Advance to the next statement on the script\n *\n * @returns {void}\n */\nexport function next (engine: VisualNovelEngine): Promise {\n\t// Advance 1 step\n\tconst currentStep = engine.state ('step');\n\n\tengine.state ({ step: currentStep + 1 });\n\n\tconst label = engine.label ();\n\tconst step = engine.state ('step');\n\n\treturn new Promise ((resolve) => {\n\t\t// Clear the Stack using a Time Out instead of calling the function\n\t\t// directly, preventing an Overflow\n\t\tsetTimeout (() => {\n\t\t\tengine.run (label[step]).then (() => {\n\t\t\t\tengine.global ('_engine_block', false);\n\t\t\t\tresolve ();\n\t\t\t}).catch (() => {\n\t\t\t\tresolve ();\n\t\t\t});\n\t\t}, 0);\n\t});\n}\n\n/**\n * @static revert - Revert to the previous statement on the script\n *\n * @returns {void}\n */\nexport function previous (engine: VisualNovelEngine): Promise {\n\treturn new Promise ((resolve) => {\n\t\tsetTimeout (() => {\n\t\t\tengine.revert ().then (() => {\n\t\t\t\tengine.global ('_engine_block', false);\n\t\t\t\tresolve ();\n\t\t\t}).catch ((e) => {\n\t\t\t\tengine.debug.log ('Revert was prevented.\\n', e);\n\t\t\t\tengine.global ('_engine_block', false);\n\n\t\t\t\t// The game could not be reverted, either because an\n\t\t\t\t// action prevented it or because there are no statements\n\t\t\t\t// left to revert to.\n\t\t\t\tconst currentStep = engine.state ('step') as number;\n\n\t\t\t\tif (currentStep > 0) {\n\t\t\t\t\tengine.state ({\n\t\t\t\t\t\tstep: currentStep - 1\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tengine.proceed ({ userInitiated: false, skip: false, autoPlay: false }).then (() => {\n\t\t\t\t\tresolve ();\n\t\t\t\t});\n\t\t\t});\n\t\t}, 0);\n\t});\n}\n\n// ============================================================================\n// Action Preparation\n// ============================================================================\n\nexport function prepareAction(engine: VisualNovelEngine, statement: string, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null;\nexport function prepareAction(engine: VisualNovelEngine, statement: Record, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null;\nexport function prepareAction(engine: VisualNovelEngine, statement: string | Record, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null;\nexport function prepareAction (engine: VisualNovelEngine, statement: unknown, { cycle, extras }: { cycle: 'Application' | 'Revert'; extras?: Record }): ActionInstance | null {\n\tlet action;\n\tlet interpolatedStatement: string[] | undefined;\n\n\t// Use the correct matching function (matchString or matchObject)\n\t// depending on the type of the current statement. If the statement\n\t// is a pure js function, it won't be reverted since we don't\n\t// know what to do to revert it.\n\tif (typeof statement === 'string') {\n\t\tinterpolatedStatement = engine.replaceVariables (statement).split (' ');\n\n\t\t// Check if it matches using the matchString method\n\t\taction = engine.actions ().find (a => a.matchString (interpolatedStatement!));\n\t} else if (typeof statement === 'object' && statement !== null) {\n\n\t\t// Check if it matches using the matchObject method\n\t\taction = engine.actions ().find (a => a.matchObject (statement as Record));\n\t}\n\n\tif (typeof action !== 'undefined') {\n\t\tconst act = new action (typeof statement === 'string' ? interpolatedStatement : statement);\n\n\t\t// The original statement is set just in case the action needs\n\t\t// access to it. By this point, statement is known to be string | Record\n\t\t// (functions are handled earlier and returned directly).\n\t\tact._setStatement (statement as string | Record);\n\n\t\t// The current cycle is also set just in case the action needs to\n\t\t// know what cycle it's currently being performed.\n\t\tact._setCycle (cycle);\n\n\t\t// Monogatari is set as the context of the action so that it can\n\t\t// access all its functionalities\n\t\tact.setContext (engine);\n\n\t\tact.setExtras(extras || {});\n\n\t\treturn act;\n\t}\n\n\treturn null;\n}\n\n// ============================================================================\n// Statement Execution\n// ============================================================================\n\n/**\n * @static revert - This is the function that allows to go back in the game\n * by reverting the statements played.\n *\n * @returns {Promise} - Whether the game was able to go back or not\n */\nexport async function revert (engine: VisualNovelEngine, statement: unknown = null, shouldAdvance = true, shouldStepBack = true): Promise<{ advance: boolean; step: boolean } | void> {\n\tconst actions = engine.actions ();\n\tconst before: Promise[] = actions.map (action => action.beforeRevert ({ advance: shouldAdvance, step: shouldStepBack }));\n\n\tawait Promise.all (before);\n\n\t// Check if we have steps behind us to revert to. If there aren't, then\n\t// we can't revert since we are already at the first statement.\n\tlet actionToRevert: unknown = null;\n\tconst currentStep = engine.state ('step') as number;\n\tconst currentLabel = engine.state ('label') as string;\n\tconst label = engine.label () as unknown[];\n\n\tif (statement !== null) {\n\t\tactionToRevert = statement;\n\t} else if (currentStep >= 1) {\n\t\tactionToRevert = label[currentStep - 1];\n\t} else {\n\t\tconst jumpHistory = engine.history ('jump') as Array<{ destination: { label: string; step: number }; source: { label: string; step: number } }>;\n\t\tconst jump = [...jumpHistory].reverse ().find (o => {\n\t\t\treturn o.destination.label === currentLabel && o.destination.step === 0;\n\t\t});\n\n\t\tif (typeof jump !== 'undefined') {\n\t\t\tengine.state ({\n\t\t\t\tlabel: jump.source.label,\n\t\t\t\tstep: jump.source.step\n\t\t\t});\n\t\t\tconst newLabel = engine.label () as unknown[];\n\t\t\tconst newStep = engine.state ('step') as number;\n\t\t\tactionToRevert = newLabel[newStep];\n\t\t\tengine.debug.debug ('Will revert to previous label.');\n\t\t} else {\n\t\t\tengine.debug.debug ('Will not revert since this is the beginning of the game.');\n\t\t}\n\t}\n\n\t// Don't allow null as a valid statement\n\tif (actionToRevert === null || typeof actionToRevert === 'undefined') {\n\t\t// Clear the Stack using a Time Out instead of calling\n\t\t// the function directly, preventing an Overflow\n\t\tconst labelArray = engine.label () as unknown[];\n\t\tconst step = engine.state ('step') as number;\n\n\t\tsetTimeout (() => {\n\t\t\tengine.run (labelArray[step]);\n\t\t}, 0);\n\n\t\tengine.debug.groupEnd ();\n\n\t\treturn Promise.resolve ();\n\t}\n\n\t// If the statement is a pure js function, it won't be reverted since we don't\n\t// know what to do to revert it.\n\tif (typeof actionToRevert === 'function') {\n\t\treturn Promise.reject ();\n\t}\n\n\tconst action = prepareAction (engine, actionToRevert as string | Record, { cycle: 'Revert' });\n\n\tif (action === null) {\n\t\treturn Promise.reject ('The action did not match any of the ones registered.');\n\t}\n\n\tengine.debug.debug ('Reverting Action', actionToRevert);\n\n\tengine.debug.groupCollapsed (`Revert Cycle [${(action.constructor as StaticAction).id}]`);\n\n\tengine.trigger ('willRevertAction', { action });\n\n\t// Run the willRevert method of the action first. This method\n\t// is usually used to tell whether an action can be reverted\n\t// or not.\n\treturn (action as Action).willRevert ().then (() => {\n\t\tengine.debug.debug ('Action Will Revert');\n\t\t// If it can be reverted, then run the revert method\n\t\treturn action.revert ().then (() => {\n\t\t\tengine.debug.debug ('Action Reverting');\n\t\t\t// If the reversion was successful, run the didRevert\n\t\t\t// function. The action will return a boolean (shouldContinue)\n\t\t\t// specifying if the game should go ahead and revert\n\t\t\t// the previous statement as well or if it should\n\t\t\t// wait instead\n\t\t\treturn action.didRevert ().then (({ advance, step }: { advance: boolean; step: boolean }) => {\n\t\t\t\tengine.debug.debug ('Action Did Revert');\n\n\t\t\t\tengine.trigger ('didRevertAction', { action });\n\n\t\t\t\tconst promises: Promise[] = [];\n\n\t\t\t\tfor (const act of engine.actions ()) {\n\t\t\t\t\tpromises.push (act.afterRevert ({ advance, step }));\n\t\t\t\t}\n\n\t\t\t\treturn Promise.all (promises).then (() => {\n\t\t\t\t\t// Since we reverted correctly, the step should\n\t\t\t\t\t// go back.\n\t\t\t\t\tconst currentStep = engine.state ('step') as number;\n\t\t\t\t\tif (step === true && shouldStepBack === true) {\n\t\t\t\t\t\tengine.state ({\n\t\t\t\t\t\t\tstep: currentStep - 1\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\t// Revert the previous statement if the action\n\t\t\t\t\t// told us to.\n\t\t\t\t\tif (advance === true && shouldAdvance === true) {\n\t\t\t\t\t\t// Clear the Stack using a Time Out instead\n\t\t\t\t\t\t// of calling the function directly, preventing\n\t\t\t\t\t\t// an Overflow\n\t\t\t\t\t\tsetTimeout (() => {\n\t\t\t\t\t\t\tengine.revert ();\n\t\t\t\t\t\t}, 0);\n\t\t\t\t\t}\n\n\t\t\t\t\tengine.debug.groupEnd ();\n\t\t\t\t\treturn Promise.resolve ({ advance, step });\n\t\t\t\t});\n\t\t\t});\n\t\t});\n\t}).catch ((e: unknown) => {\n\t\tif (typeof e === 'object' || typeof e === 'string') {\n\t\t\tconsole.error (e);\n\t\t}\n\t\t// Clear the Stack using a Time Out instead of calling\n\t\t// the function directly, preventing an Overflow\n\t\tconst labelArray = engine.label () as unknown[];\n\t\tconst step = engine.state ('step') as number;\n\n\t\tsetTimeout (() => {\n\t\t\tengine.run (labelArray[step]);\n\t\t}, 0);\n\n\t\tengine.debug.groupEnd ();\n\n\t\treturn Promise.resolve ();\n\t});\n}\n\n/**\n * @static run - Run a specified statement.\n *\n * @param {string|Object|function} statement - The Monogatari statement to run\n * @param {boolean} advance - Whether the game should advance or wait for user\n * interaction. This parameter is mainly used to prevent the game from advancing\n * when loading the game or performing some actions and we don't want them to\n * affect the game flow.\n *\n * @returns {Promise} - Resolves if the statement was run correctly or rejects\n * if it couldn't be run correctly.\n */\nexport async function run (engine: VisualNovelEngine, statement: unknown, shouldAdvance = true): Promise<{ advance: boolean }> {\n\t// Capture current position at the start to detect if another advance happened\n\t// during async operations (e.g., user click during Notification's willApply)\n\tconst initialStep = engine.state ('step') as number;\n\tconst initialLabel = engine.state ('label') as string;\n\n\tconst actions = engine.actions ();\n\tconst before: Promise[] = actions.map (action => action.beforeRun ({ advance: shouldAdvance }));\n\n\tawait Promise.all (before);\n\n\t// Don't allow null as a valid statement\n\tif (statement === null) {\n\t\tengine.debug.trace ();\n\t\tengine.debug.groupEnd ();\n\t\tthrow new Error ('Statement was null.');\n\t}\n\n\tengine.debug.debug ('Preparing Action', statement);\n\n\tif (typeof statement === 'function') {\n\t\tengine.debug.groupCollapsed (`Run Cycle [JS Function]`);\n\n\t\t// Block the game while the function is being run\n\t\tengine.global ('block', true);\n\n\t\t// Run the function asynchronously and after it has run, unblock\n\t\t// the game so it can continue.\n\t\ttry {\n\t\t\tconst returnValue = await Util.callAsync (statement as (...args: unknown[]) => unknown, engine);\n\n\t\t\tengine.global ('block', false);\n\n\t\t\tengine.debug.groupEnd ();\n\n\t\t\tif (shouldAdvance && returnValue !== false) {\n\t\t\t\t// Only advance if we're still on the same step - another action might have\n\t\t\t\t// already advanced the game (e.g., user clicked during async function)\n\t\t\t\tconst currentStep = engine.state ('step') as number;\n\t\t\t\tconst currentLabel = engine.state ('label') as string;\n\t\t\t\tif (currentStep === initialStep && currentLabel === initialLabel) {\n\t\t\t\t\t// TODO: Do we need to return here? We don't do it in the other run methods.\n\t\t\t\t\treturn engine.next ().then (() => ({ advance: true }));\n\t\t\t\t} else {\n\t\t\t\t\tengine.debug.debug ('Skipping auto-advance: game already advanced by another action');\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn Promise.resolve ({ advance: false });\n\t\t} catch (e: unknown) {\n\t\t\tconst error: FancyErrorProps = {\n\t\t\t\t'Label': String(engine.state ('label')),\n\t\t\t\t'Step': Number(engine.state ('step')),\n\t\t\t\t'Help': {\n\t\t\t\t\t'_': 'Check the code for your function, there may be additional information in the console.',\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tif (e && typeof e === 'object' && 'message' in e) {\n\t\t\t\tconst err = e as Error & { fileName?: string; lineNumber?: number };\n\t\t\t\terror['Error Message'] = err.message;\n\t\t\t\tif (err.fileName) error['File Name'] = err.fileName;\n\t\t\t\tif (err.lineNumber) error['Line Number'] = err.lineNumber;\n\t\t\t} else if (typeof e === 'string') {\n\t\t\t\terror['Error Message'] = e;\n\t\t\t}\n\n\t\t\tFancyError.show ('engine:run:function_error', {\n\t\t\t\tlabel: String(engine.state ('label')),\n\t\t\t\tstep: Number(engine.state ('step')),\n\t\t\t\t...error\n\t\t\t});\n\n\t\t\tengine.debug.trace ();\n\t\t\tengine.debug.groupEnd ();\n\n\t\t\treturn { advance: false };\n\t\t};\n\t}\n\n\tconst action: Action | null = prepareAction (engine, statement as string | Record, { cycle: 'Application' });\n\n\tif (action === null) {\n\t\tthrow new Error ('The action did not match any of the ones registered.');\n\t}\n\n\tengine.debug.groupCollapsed (`Run Cycle [${(action.constructor as StaticAction).id}]`);\n\n\tengine.trigger ('willRunAction', { action });\n\n\ttry {\n\t\tengine.debug.debug ('Action Will Apply');\n\t\tawait action.willApply ();\n\t} catch (e) {\n\t\tengine.debug.debug (`Will Apply Failed.\\nReason: ${e}`);\n\t\tengine.debug.trace ();\n\t\tengine.debug.groupEnd ();\n\t\tthrow e;\n\t}\n\n\ttry {\n\t\tengine.debug.debug ('Action Applying');\n\t\tawait action.apply ();\n\t} catch (e) {\n\t\tengine.debug.debug (`Apply Failed.\\nReason: ${e}`);\n\t\tengine.debug.trace ();\n\t\tengine.debug.groupEnd ();\n\t\tthrow e;\n\t}\n\n\t// If everything has been run correctly, then run the didApply method.\n\t// The action will return a boolean (advance) specifying if the game should\n\t// run the next statement right away or if it should wait instead.\n\ttry {\n\t\tconst { advance } = await action.didApply ();\n\n\t\tengine.debug.debug ('Action Did Apply');\n\t\tengine.trigger ('didRunAction', { action });\n\n\t\tconst promises: Promise[] = actions.map (action => action.afterRun ({ advance: advance === true }));\n\n\t\tawait Promise.all (promises);\n\n\t\tif (advance === true && shouldAdvance === true) {\n\t\t\t// Only advance if we're still on the same step - another action might have\n\t\t\t// already advanced the game (e.g., user clicked during async willApply)\n\t\t\tconst currentStep = engine.state ('step') as number;\n\t\t\tconst currentLabel = engine.state ('label') as string;\n\n\t\t\tif (currentStep === initialStep && currentLabel === initialLabel) {\n\t\t\t\tengine.debug.debug ('Next action will be run right away');\n\t\t\t\tawait engine.next ();\n\t\t\t} else {\n\t\t\t\tengine.debug.debug ('Skipping auto-advance: game already advanced by another action');\n\t\t\t}\n\t\t}\n\n\t\tengine.debug.groupEnd ();\n\n\t\treturn { advance: advance === true };\n\t} catch (e) {\n\t\tengine.debug.debug (`Did Apply Failed.\\nReason: ${e}`);\n\t\tengine.debug.trace ();\n\t\tengine.debug.groupEnd ();\n\t\tthrow e;\n\t}\n}\n\n// ============================================================================\n// High-Level Flow Control\n// ============================================================================\n\nexport async function proceed (engine: VisualNovelEngine, { userInitiated = false, skip = false, autoPlay = false } = {}): Promise {\n\tawait shouldProceed (engine, { userInitiated, skip, autoPlay });\n\n\tengine.global ('_engine_block', true);\n\n\tawait willProceed (engine);\n\tawait engine.next ();\n}\n\nexport async function rollback (engine: VisualNovelEngine): Promise {\n\tconst allowRollback = engine.setting ('AllowRollback') === true;\n\n\tif (!allowRollback) {\n\t\treturn;\n\t}\n\n\tconst stateObj = engine.state() as { step: number; label: string };\n\n\tif (stateObj.step === 0) {\n\t\tconst jumpHistory = engine.history ('jump') as { destination: { label: string; step: number } }[];\n\t\tconst jump = [...jumpHistory].reverse ().find (o => {\n\t\t\treturn o.destination.label === stateObj.label && o.destination.step === 0;\n\t\t});\n\n\t\tif (typeof jump === 'undefined') {\n\t\t\tengine.debug.debug ('Will not attempt rollback since this is the beginning of the game.');\n\t\t\treturn;\n\t\t}\n\t}\n\n\tawait shouldRollback (engine);\n\n\tengine.global ('_engine_block', true);\n\n\tawait willRollback (engine);\n\tawait engine.previous ();\n}\n\n// ============================================================================\n// Proceed/Rollback Checks\n// ============================================================================\n\n/**\n * @static shouldProceed - Check if the game can proceed\n *\n * @returns {Promise} - Resolves if the game can proceed or reject if it\n * can't proceed right now.\n */\nexport function shouldProceed (engine: VisualNovelEngine, { userInitiated = false, skip = false, autoPlay = false }): Promise {\n\t// TODO: This should be removed\n\tconst deprecatedBlocks = engine.global ('block') || engine.global ('_executing_sub_action');\n\n\t// Check if the game is visible, if it's not, then it probably is not\n\t// playing or is looking at some menu and thus the game should not\n\t// proceed. The game will not proceed if it's blocked or if the distraction\n\t// free mode is enabled.\n\tif (!$_('.modal').isVisible ()\n\t\t&& !engine.global ('distraction_free')\n\t\t&& !deprecatedBlocks\n\t\t&& !engine.global ('_engine_block')) {\n\t\tconst promises = [];\n\n\t\tengine.debug.groupCollapsed ('shouldProceed Check');\n\t\ttry {\n\n\t\t\tengine.debug.debug ('Checking Actions');\n\n\t\t\t// Check action by action if they will allow the game to proceed\n\t\t\tfor (const action of engine.actions ()) {\n\t\t\t\tpromises.push (action.shouldProceed ({ userInitiated, skip, autoPlay }).then (() => {\n\t\t\t\t\tengine.debug.debug (`OK ${action.id}`);\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tengine.debug.debug (`FAIL ${action.id}\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\tengine.debug.debug ('Checking Components');\n\n\t\t\t// Check component by component if they will allow the game to proceed\n\t\t\tfor (const component of engine.components ()) {\n\t\t\t\tpromises.push (component.shouldProceed ({ userInitiated, skip, autoPlay }).then (() => {\n\t\t\t\t\tengine.debug.debug (`OK ${component.tag}`);\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tengine.debug.debug (`FAIL ${component.tag}\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t}));\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error (e);\n\t\t\tconst errorMessage = e instanceof Error ? e.message : String(e);\n\t\t\tFancyError.show ('engine:lifecycle:should_proceed_error', {\n\t\t\t\terrorMessage: errorMessage\n\t\t\t});\n\t\t}\n\n\t\tengine.debug.debug ('Checking Extra Conditions');\n\n\t\treturn Promise.all (promises).then ((...args) => {\n\t\t\tengine.debug.groupEnd ();\n\t\t\treturn Promise.resolve (...args);\n\t\t}).catch ((e) => {\n\t\t\tengine.debug.groupEnd ();\n\t\t\treturn Promise.reject (e);\n\t\t});\n\t} else {\n\t\tengine.debug.debug({\n\t\t\t'Block': engine.global ('block'),\n\t\t\t'Distraction Free': engine.global ('distraction_free'),\n\t\t\t'Engine Block': engine.global ('_engine_block'),\n\t\t\t'Executing Sub Action': engine.global ('_executing_sub_action'),\n\t\t\t'Modal Visible': $_('.modal').isVisible (),\n\t\t});\n\n\t\treturn Promise.reject ('Extra condition check failed.');\n\t}\n}\n\nexport function willProceed (engine: VisualNovelEngine): Promise {\n\tengine.debug.groupCollapsed ('Can proceed check passed, game will proceed.');\n\n\tconst actions = engine.actions ();\n\tconst components = engine.components ();\n\n\tconst promises = [];\n\n\ttry {\n\t\t// Check action by action if they will allow the game to proceed\n\t\tfor (const action of actions) {\n\t\t\tpromises.push (action.willProceed ().then (() => {\n\t\t\t\tengine.debug.debug (`OK ${action.id}`);\n\t\t\t}).catch ((e) => {\n\t\t\t\tengine.debug.debug (`FAIL ${action.id}\\nReason: ${e}`);\n\t\t\t\treturn Promise.reject (e);\n\t\t\t}));\n\t\t}\n\n\t\t// Check component by component if they will allow the game to proceed\n\t\tfor (const component of components) {\n\t\t\tpromises.push (component.willProceed ().then (() => {\n\t\t\t\tengine.debug.debug (`OK ${component.tag}`);\n\t\t\t}).catch ((e) => {\n\t\t\t\tengine.debug.debug (`FAIL ${component.tag}\\nReason: ${e}`);\n\t\t\t\treturn Promise.reject (e);\n\t\t\t}));\n\t\t}\n\t} catch (e) {\n\t\tconsole.error (e);\n\n\t\tconst errorMessage = e instanceof Error ? e.message : String(e);\n\n\t\tFancyError.show ('engine:lifecycle:will_proceed_error', {\n\t\t\terrorMessage: errorMessage\n\t\t});\n\t}\n\n\treturn Promise.all (promises).then ((...args) => {\n\t\tengine.debug.groupEnd ();\n\t\treturn Promise.resolve (...args);\n\t}).catch ((e) => {\n\t\tengine.debug.groupEnd ();\n\t\treturn Promise.reject (e);\n\t});\n}\n\n// ============================================================================\n// Typing Control\n// ============================================================================\n\n/**\n * @static stopTyping - Stop the typing effect.\n *\n * @param component - A TypeWriter component instance\n * @returns {void}\n */\nexport function stopTyping (engine: VisualNovelEngine, component: TypeWriterComponent): void {\n\t// Main differences between instant text & speed text:\n\t// Instant Text:\n\t// -- Appear instantly & removes all non-node formatting.\n\t// Speed Text:\n\t// -- Appear gradually at the fastest speed while keeping all non-node formatting.\n\t// -- Setting min-speed to -1 or lower results in the benefits of speed text and instant text.\n\tconst instant = engine.setting('InstantText') as boolean;\n\n\t// TypeWriter.finish() handles setting finished_typing and triggering events\n\tcomponent.finish(instant);\n}\n\n// ============================================================================\n// Rollback Checks\n// ============================================================================\n\n/**\n * @static shouldRollback - Check if the game can revert\n *\n * @returns {Promise} - Resolves if the game can be reverted or reject if it\n * can't be reverted right now.\n */\nexport function shouldRollback (engine: VisualNovelEngine): Promise {\n\t// Check if the game is visible, if it's not, then it probably is not\n\t// playing or is looking at some menu and thus the game should not\n\t// revert. The game will not revert if it's blocked or if the distraction\n\t// free mode is enabled.\n\tif (!engine.global ('distraction_free')\n\t\t&& !engine.global ('block')\n\t\t&& (!engine.global ('_engine_block') || engine.global ('_executing_sub_action'))) {\n\t\tconst promises = [];\n\n\t\tengine.debug.groupCollapsed ('shouldRollback Check');\n\n\t\ttry {\n\t\t\t// Check action by action if they will allow the game to revert\n\t\t\tfor (const action of engine.actions ()) {\n\t\t\t\tpromises.push (action.shouldRollback ().then (() => {\n\t\t\t\t\tengine.debug.debug (`OK ${action.id}`);\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tengine.debug.debug (`FAIL ${action.id}\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t}));\n\t\t\t}\n\n\t\t\t// Check component by component if they will allow the game to revert\n\t\t\tfor (const component of engine.components ()) {\n\t\t\t\tpromises.push (component.shouldRollback ().then (() => {\n\t\t\t\t\tengine.debug.debug (`OK ${component.tag}`);\n\t\t\t\t}).catch ((e) => {\n\t\t\t\t\tengine.debug.debug (`FAIL ${component.tag}\\nReason: ${e}`);\n\t\t\t\t\treturn Promise.reject (e);\n\t\t\t\t}));\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error (e);\n\n\t\t\tconst errorMessage = e instanceof Error ? e.message : String(e);\n\n\t\t\tFancyError.show ('engine:lifecycle:should_rollback_error', {\n\t\t\t\terrorMessage: errorMessage\n\t\t\t});\n\t\t}\n\n\t\treturn Promise.all (promises).then ((...args) => {\n\t\t\tengine.debug.groupEnd ();\n\t\t\treturn Promise.resolve (...args);\n\t\t}).catch ((e) => {\n\t\t\tengine.debug.groupEnd ();\n\t\t\treturn Promise.reject (e);\n\t\t});\n\t} else {\n\t\treturn Promise.reject ('Extra condition check failed.');\n\t}\n}\n\nexport function willRollback (engine: VisualNovelEngine): Promise {\n\tconst promises = [];\n\n\tengine.debug.groupCollapsed ('Should Rollback Check passed, game will roll back.');\n\n\ttry {\n\t\t// Check action by action if they will allow the game to revert\n\t\tfor (const action of engine.actions ()) {\n\t\t\tpromises.push (action.willRollback ().then (() => {\n\t\t\t\tengine.debug.debug (`OK ${action.id}`);\n\t\t\t}).catch ((e) => {\n\t\t\t\tengine.debug.debug (`FAIL ${action.id}\\nReason: ${e}`);\n\t\t\t\treturn Promise.reject (e);\n\t\t\t}));\n\t\t}\n\n\t\t// Check component by component if they will allow the game to revert\n\t\tfor (const component of engine.components ()) {\n\t\t\tpromises.push (component.willRollback ().then (() => {\n\t\t\t\tengine.debug.debug (`OK ${component.tag}`);\n\t\t\t}).catch ((e) => {\n\t\t\t\tengine.debug.debug (`FAIL ${component.tag}\\nReason: ${e}`);\n\t\t\t\treturn Promise.reject (e);\n\t\t\t}));\n\t\t}\n\t} catch (e) {\n\t\tconsole.error (e);\n\t\tconst errorMessage = e instanceof Error ? e.message : String(e);\n\t\tFancyError.show ('engine:lifecycle:will_rollback_error', {\n\t\t\terrorMessage: errorMessage\n\t\t});\n\t}\n\n\treturn Promise.all (promises).then ((...args) => {\n\t\tengine.debug.groupEnd ();\n\t\treturn Promise.resolve (...args);\n\t}).catch ((e) => {\n\t\tengine.debug.groupEnd ();\n\t\treturn Promise.reject (e);\n\t});\n}\n", + "/**\n * ============================================================\n * Arabic\n * ============================================================\n *\n * Translators:\n *\n * Ren \n */\n\nexport default {\n\t'AdvanceHelp': 'للتقدم في القصة انقز ŲØŲ²Ų± الفأره Ų§Ł„Ų£ŁŠŲ³Ų± او المس الؓاؓه في اي Ł…ŁƒŲ§Ł† او Ų§Ų¶ŲŗŲ· Ų²Ų± المسافة',\n\t'AllowPlayback': 'Ų£Ų¶ŲŗŲ· هنا Ł„ŲŖŁŲ¹ŁŠŁ„ Ų§Ł…ŁƒŲ§Ł†ŁŠŲ© ŲŖŲ“ŲŗŁŠŁ„ Ų§Ł„ŲµŁˆŲŖ',\n\t'Audio': 'Ų§Ł„Ų£ŲµŁˆŲ§ŲŖ',\n\t'AutoPlay': 'ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\t'AutoPlayButton': 'ŲŖŁŲ¹ŁŠŁ„ Ų§Ł„ŲŖŲ“ŲŗŁŠŁ„ Ų§Ł„ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\t'AutoPlaySpeed': 'Ų³Ų±Ų¹Ų© Ų§Ł„ŲŖŲ“ŲŗŁŠŁ„ Ų§Ł„ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\n\t'Back': 'ŲŖŲ±Ų§Ų¬Ų¹',\n\t'BackButton': 'Ų§Ł„Ų¹ŁˆŲÆŲ©',\n\n\t'Cancel': 'الغاؔ',\n\t'Close': 'اغلاق',\n\t'Confirm': 'هل ŲŖŲ±ŲŗŲØ ŲØŲ§Ł„Ų®Ų±ŁˆŲ¬ŲŸ',\n\t'Credits': 'Ų§Ł„Ų¹Ų§Ł…Ł„ŁŠŁ† على Ų§Ł„Ł…Ų“Ų±ŁˆŲ¹',\n\n\t'Delete': 'حذف',\n\t'DialogLogButton': 'اظهار Ų²Ų± Ų§Ł„Ų­ŁˆŲ§Ų±',\n\n\t'FullScreen': 'ملؔ الؓاؓة',\n\n\t'Gallery': 'Ł…Ų¹Ų±Ų¶ Ų§Ł„ŲµŁˆŲ±',\n\n\t'Help': 'مساعده',\n\t'Hide': 'اخفاؔ',\n\t'HideButton': 'اخفاؔ ŲµŁ†ŲÆŁˆŁ‚ Ų§Ł„Ų­ŁˆŲ§Ų±',\n\n\t'iOSAudioWarning': 'Ų§Ų¹ŲÆŲ§ŲÆŲ§ŲŖ Ų§Ł„ŲµŁˆŲŖ غير Ł…ŲÆŲ¹ŁˆŁ…Ł‡ على أنظمة iOS',\n\n\t'KeyboardShortcuts': 'Ų„Ų®ŲŖŲµŲ§Ų±Ų§ŲŖ Ł„ŁˆŲ­Ų© Ų§Ł„Ł…ŁŲ§ŲŖŁŠŲ­',\n\n\t'Language': 'اللغة',\n\t'Load': 'Ų§Ų³ŲŖŲ±Ų¬Ų§Ų¹',\n\t'LoadAutoSaveSlots': 'خانات الحفظ Ų§Ł„ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\t'LoadButton': 'فتح Ų“Ų§Ų“Ų© الحفظ ŁˆŲ§Ł„Ų§Ų³ŲŖŲ±Ų¬Ų§Ų¹',\n\t'Loading': 'ŁŠŲŖŁ… الاسترجاع',\n\t'LoadingMessage': 'ŁŠŲ±Ų¬Ł‰ الانتظار Ų±ŁŠŲ«Ł…Ų§ ŁŠŲŖŁ… ŲŖŲ­Ł…ŁŠŁ„ الملفات',\n\t'LoadSlots': 'خانات الحفظ',\n\t'LocalStorageWarning': 'الحفظ Ų§Ł„Ł…Ų­Ł„ŁŠ غير Ł…ŲÆŲ¹ŁˆŁ… على هذا المتصفح',\n\t'Log': 'سجل',\n\n\t'Music': 'صوت Ų§Ł„Ł…ŁˆŲ³ŁŠŁ‚Ł‰',\n\n\t'NewContent': 'توجد Ł…Ų­ŲŖŁˆŁŠŲ§ŲŖ Ų¬ŲÆŁŠŲÆŁ‡ ŁŠŲ±Ų¬Ł‰ ŲŖŁ†Ų“ŁŠŲ· الصفحة لمؓاهدتها',\n\t'NoSavedGames': 'لا توجد ملفات حفظ',\n\t'NoAutoSavedGames': 'لا توجد خانات حفظ ŲŖŁ„Ł‚Ų§Ų¦ŁŠ',\n\t'NoDialogsAvailable': 'لا توجد حوارات. ستظهر Ų§Ł„Ų­ŁˆŲ§Ų±Ų§ŲŖ هنا عندما ŁŠŲŖŁ… ŁƒŲŖŲ§ŲØŲŖŁ‡Ų§',\n\n\t'OK': 'Ł…ŁˆŲ§ŁŁ‚',\n\t'OrientationWarning': 'الرجاؔ وضع الجهاز على الجانب الآخر Ł„ŲŖŲ³ŲŖŲ·ŁŠŲ¹ اللعب',\n\t'Overwrite': 'الاستبدال',\n\n\t'QuickButtons': 'Ų§Ų²Ų±Ų§Ų± خانات الحفظ Ų§Ł„Ų³Ų±ŁŠŲ¹',\n\t'QuickMenu': 'القائمة Ų§Ł„Ų³Ų±ŁŠŲ¹Ų©',\n\t'Quit': 'خروج',\n\t'QuitButton': 'انهاؔ اللعبه',\n\n\t'Resolution': 'Ų¹Ų±Ų¶ الؓاؓة',\n\n\t'Save': 'حفظ',\n\t'SaveButton': 'يفتح Ų“Ų§Ų“Ų© حفظ اللعبة',\n\t'SaveInSlot': 'حفظ في خانة',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'Ų„Ų¹ŲÆŲ§ŲÆŲ§ŲŖ',\n\t'SettingsButton': 'يفتح صفحة ال؄عدادات',\n\t'Show': 'Ų¹Ų±Ų¶',\n\t'Skip': 'تخطي',\n\t'SkipButton': 'ŲØŲÆŲ” وضع Ų§Ł„ŲŖŲ®Ų·ŁŠ',\n\t'SlotDeletion': 'هل أنت Ł…ŲŖŲ£ŁƒŲÆ من رغبتك في حذف هذه Ų§Ł„Ų®Ų§Ł†Ų©ŲŸ',\n\t'SlotOverwrite': 'هل أنت Ł…ŲŖŲ£ŁƒŲÆ من رغبتك في Ų§Ų³ŲŖŲØŲÆŲ§Ł„ هذه Ų§Ł„Ų®Ų§Ł†Ų©ŲŸ',\n\t'Sound': 'مقدار صوت Ų§Ł„Ų§ŲµŁˆŲ§ŲŖ',\n\t'Start': 'ŲØŲÆŲ”',\n\t'Stop': 'ŲŖŁˆŁ‚Ł',\n\n\t'TextSpeed': 'Ų³Ų±Ų¹Ų© النص',\n\n\t'Video': 'مقدار صوت Ų§Ł„ŁŁŠŲÆŁŠŁˆ',\n\t'Voice': 'مقدار صوت Ų§Ł„ŁƒŁ„Ų§Ł… Ų§Ł„Ł…Ł†Ų·ŁˆŁ‚',\n\n\t'Windowed': 'نافذة'\n};\n", + "/**\n * ============================================================\n * Belarusian\n * ============================================================\n *\n * Translators:\n *\n * Yakauleu \"Wiedy Mi\" Uladzislau \n */\n\nexport default {\n\t'AdvanceHelp': 'Каб Š³ŃƒŠ»ŃŃ†ŃŒ, націсніце на прабел або Š»ŠµŠ²Š°ŃŽ кнопку Š¼Ń‹ŃˆŃ‹',\n\t'AllowPlayback': 'ŠŠ°Ń†Ń–ŃŠ½Ń–Ń†Šµ тут, каб Š“Š°Š·Š²Š¾Š»Ń–Ń†ŃŒ прайграванне Š°ŃžŠ“Ń‹Ń',\n\t'Audio': 'ŠŃžŠ“Ń‹Ń',\n\t'AutoPlay': 'ŠŃžŃ‚Š°',\n\t'AutoPlayButton': 'Š£ŠŗŠ»ŃŽŃ‡Ń‹Ń†ŃŒ Š°ŃžŃ‚Š°ŠæŃ€Š°Š¹Š³Ń€Š°Š²Š°Š½Š½Šµ',\n\t'AutoPlaySpeed': 'Š„ŃƒŃ‚ŠŗŠ°ŃŃ†ŃŒ Š°ŃžŃ‚Š°ŠæŃ€Š°Š¹Š³Ń€Š°Š²Š°Š½Š½Ń',\n\n\t'Back': 'ŠŠ°Š·Š°Š“',\n\t'BackButton': 'ŠŸŠµŃ€Š°Š¹ŃŃ†Ń– назаГ',\n\n\t'Cancel': 'Š”ŠŗŠ°ŃŠ°Š²Š°Ń†ŃŒ',\n\t'Close': 'Š—Š°ŠŗŃ€Ń‹Ń†ŃŒ',\n\t'Confirm': 'Выйсці?',\n\t'Credits': 'Цітры',\n\n\t'Delete': 'Š’Ń‹Š“Š°Š»Ń–Ń†ŃŒ',\n\t'DialogLogButton': 'ŠŸŠ°ŠŗŠ°Š·Š°Ń†ŃŒ Š¶ŃƒŃ€Š½Š°Š» Š“Ń‹ŃŠ»Š¾Š³Š°Ńž',\n\n\t'FullScreen': 'ŠŸŠ¾ŃžŠ½Ń‹ ŃŠŗŃ€Š°Š½',\n\n\t'Gallery': 'Š“Š°Š»ŠµŃ€ŃŃ',\n\n\t'Help': 'Дапамога',\n\t'Hide': 'Š”Ń…Š°Š²Š°Ń†ŃŒ',\n\t'HideButton': 'Š”Ń…Š°Š²Š°Ń†ŃŒ Ń‚ŃŠŗŃŃ‚Š°Š²Š°Šµ поле',\n\n\t'iOSAudioWarning': 'ŠŠ°Š»Š°Š“Ń‹ Š°ŃžŠ“Ń‹Ń не ŠæŠ°Š“Ń‚Ń€Ń‹Š¼Š»Ń–Š²Š°ŃŽŃ†Ń†Š° на iOS',\n\n\t'KeyboardShortcuts': 'Š„ŃƒŃ‚ŠŗŃ–Ń ŠŗŠ»Š°Š²Ń–ŃˆŃ‹',\n\n\t'Language': 'Мова',\n\t'Load': 'Š—Š°Š³Ń€ŃƒŠ·Ń–Ń†ŃŒ',\n\t'LoadAutoSaveSlots': 'ŠŃžŃ‚Š°Š·Š°Ń…Š°Š²Š°Š½Ń‹Ń Š³ŃƒŠ»ŃŒŠ½Ń–',\n\t'LoadButton': 'ŠŠ“ŠŗŃ€Ń‹Ń†ŃŒ Š¼ŠµŠ½ŃŽ Š·Š°Š³Ń€ŃƒŠ·ŠŗŃ–',\n\t'Loading': 'Š—Š°Š³Ń€ŃƒŠ·ŠŗŠ°',\n\t'LoadingMessage': 'ŠŸŠ°Ń‡Š°ŠŗŠ°Š¹Ń†Šµ ŠæŠ¾ŃžŠ½Š°Š¹ Š·Š°Š³Ń€ŃƒŠ·ŠŗŃ– Ń€ŃŃŃƒŃ€ŃŠ°Ńž',\n\t'LoadSlots': 'Š—Š°Ń…Š°Š²Š°Š½Ń‹Ń Š³ŃƒŠ»ŃŒŠ½Ń–',\n\t'LocalStorageWarning': 'Š›Š°ŠŗŠ°Š»ŃŒŠ½Š°Šµ ŃŃ…Š¾Š²Ń–ŃˆŃ‡Š° Š½ŠµŠ“Š°ŃŃ‚ŃƒŠæŠ½Š° ў Š³ŃŃ‚Ń‹Š¼ Š±Ń€Š°ŃžŠ·ŠµŃ€Ń‹',\n\t'Log': 'Š–ŃƒŃ€Š½Š°Š»',\n\n\t'Music': 'Š„ŃƒŃ‡Š½Š°ŃŃ†ŃŒ Š¼ŃƒŠ·Ń‹ŠŗŃ–',\n\n\t'NewContent': 'Š”Š°ŃŃ‚ŃƒŠæŠ½Š° новае змесціва, ŠæŠµŃ€Š°Š·Š°Š³Ń€ŃƒŠ·Ń–Ń†Šµ ŃŃ‚Š°Ń€Š¾Š½ŠŗŃƒ, каб Š°Ń‚Ń€Ń‹Š¼Š°Ń†ŃŒ Š°ŠæŠ¾ŃˆŠ½ŃŽŃŽ Š²ŠµŃ€ŃŃ–ŃŽ',\n\t'NoSavedGames': 'ŠŃŠ¼Š° захаваных Š³ŃƒŠ»ŃŒŠ½ŃŃž',\n\t'NoAutoSavedGames': 'ŠŃŠ¼Š° Š°ŃžŃ‚Š°Š·Š°Ń…Š°Š²Š°Š½Ń‹Ń… Š³ŃƒŠ»ŃŒŠ½ŃŃž',\n\t'NoDialogsAvailable': 'ŠŃŠ¼Š° Š“Š°ŃŃ‚ŃƒŠæŠ½Ń‹Ń… Š“Ń‹ŃŠ»Š¾Š³Š°Ńž. Š”Ń‹ŃŠ»Š¾Š³Ń– Š±ŃƒŠ“ŃƒŃ†ŃŒ Š·\\'ŃŃžŠ»ŃŃ†Ń†Š° тут па меры ŠæŃ€Š°Ń…Š¾Š“Š¶Š°Š½Š½Ń Š³ŃƒŠ»ŃŒŠ½Ń–',\n\n\t'OK': 'ŠžŠš',\n\t'OrientationWarning': 'Каб Š³ŃƒŠ»ŃŃ†ŃŒ, ŠæŠ°Š²ŃŃ€Š½Ń–Ń†Šµ вашу ŠæŃ€Ń‹Š»Š°Š“Ńƒ',\n\t'Overwrite': 'ŠŸŠµŃ€Š°Š·Š°ŠæŃ–ŃŠ°Ń†ŃŒ',\n\n\t'QuickButtons': 'ŠšŠ½Š¾ŠæŠŗŃ– Ń…ŃƒŃ‚ŠŗŠ°Š³Š° Š¼ŠµŠ½ŃŽ',\n\t'QuickMenu': 'Š„ŃƒŃ‚ŠŗŠ°Šµ Š¼ŠµŠ½ŃŽ',\n\t'Quit': 'Выйсці',\n\t'QuitButton': 'Выйсці Š· Š³ŃƒŠ»ŃŒŠ½Ń–',\n\n\t'Resolution': 'Š Š°Š·Ń€Š¾Š·Š½Š°ŃŃ†ŃŒ',\n\n\t'Save': 'Š—Š°Ń…Š°Š²Š°Ń†ŃŒ',\n\t'SaveButton': 'ŠŠ“ŠŗŃ€Ń‹Ń†ŃŒ Š¼ŠµŠ½ŃŽ Š·Š°Ń…Š°Š²Š°Š½Š½Ń',\n\t'SaveInSlot': 'Š—Š°Ń…Š°Š²Š°Ń†ŃŒ у слот',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ŠŠ°Š»Š°Š“Ń‹',\n\t'SettingsButton': 'ŠŠ“ŠŗŃ€Ń‹Ń†ŃŒ Š¼ŠµŠ½ŃŽ налаГ',\n\t'Show': 'ŠŸŠ°ŠŗŠ°Š·Š°Ń†ŃŒ',\n\t'Skip': 'ŠŸŃ€Š°ŠæŃƒŃŃ†Ń–Ń†ŃŒ',\n\t'SkipButton': 'ŠŃžŃ‚Š°ŠæŠµŃ€Š°Ń…Š¾Š“',\n\t'SlotDeletion': 'Š’Ń‹ ŃžŠæŃŃžŠ½ŠµŠ½Ń‹, ŃˆŃ‚Š¾ хочаце Š²Ń‹Š“Š°Š»Ń–Ń†ŃŒ Š³ŃŃ‚Ń‹ слот?',\n\t'SlotOverwrite': 'Š’Ń‹ ŃžŠæŃŃžŠ½ŠµŠ½Ń‹, ŃˆŃ‚Š¾ хочаце ŠæŠµŃ€Š°Š·Š°ŠæŃ–ŃŠ°Ń†ŃŒ Š³ŃŃ‚Ń‹ слот?',\n\t'Sound': 'Š“ŃƒŃ‡Š½Š°ŃŃ†ŃŒ Š³ŃƒŠŗŠ°Ńž',\n\t'Start': 'ŠŸŠ°Ń‡Š°Ń†ŃŒ',\n\t'Stop': 'Š”ŠæŃ‹Š½Ń–Ń†ŃŒ',\n\n\t'TextSpeed': 'Š„ŃƒŃ‚ŠŗŠ°ŃŃ†ŃŒ Ń‚ŃŠŗŃŃ‚Ńƒ',\n\n\t'Video': 'Š“ŃƒŃ‡Š½Š°ŃŃ†ŃŒ Š²Ń–Š“ŃŠ°',\n\t'Voice': 'Š“ŃƒŃ‡Š½Š°ŃŃ†ŃŒ голасу',\n\n\t'Windowed': 'Аконны Ń€ŃŠ¶Ń‹Š¼'\n};", + "/**\n * ============================================================\n * PortuguĆŖs do Brasil\n * ============================================================\n *\n * Translators:\n *\n * lzcampos \n */\n\nexport default {\n\t'AdvanceHelp': 'VocĆŖ pode avanƧar no jogo usando o botĆ£o esquerdo do mouse, clicando em qualquer lugar na tela do jogo ou pressionar a barra de espaƧo.',\n\t'AllowPlayback': 'Clique aqui para permitir a reprodução de Ć”udio',\n\t'Audio': 'Ɓudio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Ativar reprodução automĆ”tica',\n\t'AutoPlaySpeed': 'Velocidade de reprodução automĆ”tica',\n\n\t'Back': 'Voltar',\n\t'BackButton': 'Voltar',\n\n\t'Cancel': 'Cancelar',\n\t'Close': 'Fechar',\n\t'Confirm': 'Deseja sair?',\n\t'Credits': 'CrĆ©ditos',\n\n\t'Delete': 'Apagar',\n\t'DialogLogButton': 'Mostrar registos de diĆ”logo',\n\n\t'FullScreen': 'Tela Cheia',\n\n\t'Gallery': 'Galeria',\n\n\t'Help': 'Ajuda',\n\t'Hide': 'Esconder',\n\t'HideButton': 'Esconder caixa de texto',\n\n\t'iOSAudioWarning': 'As configuraƧƵes de Ć”udio nĆ£o sĆ£o suportadas no iOS',\n\n\t'KeyboardShortcuts': 'Atalhos de Teclado',\n\n\t'Language': 'LĆ­ngua',\n\t'Load': 'Carregar',\n\t'LoadAutoSaveSlots': 'Jogos Salvos Automaticamente',\n\t'LoadButton': 'Abrir Tela de Carregamento',\n\t'Loading': 'Carregando',\n\t'LoadingMessage': 'Aguarde enquanto os recursos sĆ£o carregados',\n\t'LoadSlots': 'Jogos Salvos',\n\t'LocalStorageWarning': 'O armazenamento local nĆ£o estĆ” disponĆ­vel neste navegador',\n\t'Log': 'Registo',\n\n\t'Music': 'Volume de MĆŗsica',\n\n\t'NewContent': 'HĆ” novo conteĆŗdo disponĆ­vel, recarregue a pĆ”gina para obter a versĆ£o mais recente',\n\t'NoSavedGames': 'Nenhum jogo salvo',\n\t'NoAutoSavedGames': 'Nenhum jogo salvo automaticamente',\n\t'NoDialogsAvailable': 'NĆ£o hĆ” diĆ”logos disponĆ­veis. Os diĆ”logos aparecerĆ£o aqui quando ocorrerem no jogo',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Por favor rode o seu dispositivo para jogar',\n\t'Overwrite': 'Substituir',\n\n\t'QuickButtons': 'BotƵes de acesso rĆ”pido',\n\t'QuickMenu': 'Menu de acesso rĆ”pido',\n\t'Quit': 'Sair',\n\t'QuitButton': 'Sair do Jogo',\n\n\t'Resolution': 'Resolução',\n\n\t'Save': 'Salvar',\n\t'SaveButton': 'Abrir tela de salvar.',\n\t'SaveInSlot': 'Salvar em slot',\n\t'SelectYourLanguage': 'Selecione seu idioma',\n\t'Settings': 'ConfiguraƧƵes',\n\t'SettingsButton': 'Abrir a Tela de ConfiguraƧƵes',\n\t'Show': 'Mostrar',\n\t'Skip': 'Ignorar',\n\t'SkipButton': 'Entrar em modo de ignorar',\n\t'SlotDeletion': 'Tem certeza de que deseja excluir este jogo?',\n\t'SlotOverwrite': 'Tem certeza de que deseja substituir este jogo?',\n\t'Sound': 'Volume de Som',\n\t'Start': 'InĆ­cio',\n\t'Stop': 'Parar',\n\n\t'TextSpeed': 'Velocidade do Texto',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Volume de Voz',\n\n\t'Windowed': 'Em Janela'\n};", + "/**\n * ============================================================\n * 繁體中文 (Traditional Chinese)\n * ============================================================\n *\n * Translators:\n *\n * Koala Yeung \n */\n\n/**\n * åøøē”Øå­—č©žēš„č­Æę³•\n * --------------\n *\n * - Saveļø°äæå­˜é€²åŗ¦ļ¼ˆå‹•č©žļ¼‰ļ¼›å­˜ęŖ”ļ¼ˆåč©žļ¼‰\n * - Load︰載兄進度\n * - Slotļø°ä½ē½®\n * - Screenļø°ä»‹é¢\n * - Auto︰自動播放\n * - Skip︰快轉\n */\n\nexport default {\n\t'AdvanceHelp': 'é»žęŒ‰ę»‘é¼ å·¦éµć€č¼•č§øčž¢å¹•ć€ęˆ–ęŒ‰ē©ŗē™½éµē¹¼ēŗŒéŠęˆ²',\n\t'AllowPlayback': 'é»žę“Šä»„ę‰¹å‡†ę’­ę”¾č²ę•ˆ',\n\t'Audio': 'č²ę•ˆ',\n\t'AutoPlay': '自動',\n\t'AutoPlayButton': 'é€²å…„č‡Ŗå‹•ę’­ę”¾ęØ”å¼',\n\t'AutoPlaySpeed': 'č‡Ŗå‹•ę’­ę”¾é€Ÿåŗ¦',\n\n\t'Back': 'čæ”å›ž',\n\t'BackButton': 'čæ”å›ž',\n\n\t'Cancel': 'å–ę¶ˆ',\n\t'Close': '關閉',\n\t'Confirm': 'ä½ ē¢ŗå®šč¦é›¢é–‹äŗ†å—Žļ¼Ÿ',\n\t'Credits': 'č£½ä½œåŠå—šč¬',\n\n\t'Delete': 'åˆŖé™¤',\n\t'DialogLogButton': 'é”Æē¤ŗå°č©±ē“€éŒ„',\n\n\t'FullScreen': 'å…Øčž¢å¹•',\n\n\t'Gallery': 'åœ–åŗ«',\n\n\t'Help': '幫助',\n\t'Hide': 'éš±č—',\n\t'HideButton': 'éš±č—å°č©±ę”†',\n\n\t'iOSAudioWarning': '在 iOS äøŠē„”ę³•ę”Æę“č²ę•ˆčØ­å®š',\n\n\t'KeyboardShortcuts': 'éµē›¤åæ«ę·éµ',\n\n\t'Language': 'čŖžčØ€',\n\t'Load': '載兄進度',\n\t'LoadAutoSaveSlots': 'č‡Ŗå‹•äæå­˜é€²åŗ¦',\n\t'LoadButton': 'ę‰“é–‹č¼‰å…„é€²åŗ¦ēš„ē•Œé¢',\n\t'Loading': '載兄中',\n\t'LoadingMessage': 'åŖ’é«”åŠ č¼‰äø­ļ¼Œč«‹ēØå€™',\n\t'LoadSlots': 'éŠęˆ²å­˜ęŖ”',\n\t'LocalStorageWarning': 'ē€č¦½å™Øäøę”Æę“ Local Storage 功能',\n\t'Log': 'ē“€éŒ„',\n\n\t'Music': 'éŸ³ęØ‚éŸ³é‡',\n\n\t'NewContent': 'ęœ‰ę–°ēš„éŠęˆ²å…§å®¹äøŠē·šļ¼Œč«‹é‡ę–°č¼‰å…„ęœ¬é ļ¼Œä»„å–å¾—ęœ€ę–°ē‰ˆęœ¬',\n\t'NoSavedGames': 'ę²’ęœ‰å·²äæå­˜ēš„é€²åŗ¦',\n\t'NoAutoSavedGames': 'ę²’ęœ‰č‡Ŗå‹•äæå­˜ēš„é€²åŗ¦',\n\t'NoDialogsAvailable': 'ę²’ęœ‰å°č©±ć€‚č‹„å “ę™Æęœ‰å°č©±ļ¼Œå°‡ęœƒåœØé€™č£é”Æē¤ŗć€‚',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'č«‹ę—‹č½‰ä½ ēš„č£ē½®ä»„é€²č”ŒéŠęˆ²',\n\t'Overwrite': 'č¦†č“‹å­˜ęŖ”',\n\n\t'QuickButtons': 'åæ«é€Ÿéøå–®éµ',\n\t'QuickMenu': 'åæ«é€Ÿéøå–®',\n\t'Quit': '離開',\n\t'QuitButton': 'é›¢é–‹éŠęˆ²',\n\n\t'Resolution': 'č§£åƒåŗ¦',\n\n\t'Save': 'äæå­˜é€²åŗ¦',\n\t'SaveButton': 'é–‹å•Ÿå­˜ęŖ”ä»‹é¢',\n\t'SaveInSlot': 'åœØé€™ä½ē½®äæå­˜éŠęˆ²',\n\t'SelectYourLanguage': 'éøę“‡čŖžčØ€',\n\t'Settings': '設定',\n\t'SettingsButton': 'é–‹å•ŸčØ­å®šä»‹é¢',\n\t'Show': '锯示',\n\t'Skip': '快轉',\n\t'SkipButton': 'é€²å…„åæ«č½‰ęØ”å¼',\n\t'SlotDeletion': 'ä½ ę˜Æå¦ē¢ŗå®šč¦åˆŖé™¤é€™å€‹ä½ē½®ēš„å­˜ęŖ”ļ¼Ÿ',\n\t'SlotOverwrite': 'ä½ ę˜Æå¦ē¢ŗå®šč¦č¦†č“‹é€™å€‹ä½ē½®ēš„å­˜ęŖ”ļ¼Ÿ',\n\t'Sound': 'č²éŸ³éŸ³é‡',\n\t'Start': '開始',\n\t'Stop': '停止',\n\n\t'TextSpeed': 'ę–‡å­—é€Ÿåŗ¦',\n\n\t'Video': 'å½±ē‰‡éŸ³é‡',\n\t'Voice': 'čŖžéŸ³éŸ³é‡',\n\n\t'Windowed': '視窗'\n};", + "/**\n * ============================================================\n * 简体中文 (Simplified Chinese)\n * ============================================================\n *\n * Translators:\n *\n * RuolinZheng08\n */\n\nexport default {\n\t'AdvanceHelp': 'ęŒ‰äø‹ē©ŗę ¼é”®ęˆ–ē‚¹å‡»å±å¹•ä»„ē»§ē»­',\n\t'AllowPlayback': 'ē‚¹å‡»čæ™é‡Œä»„åÆē”ØčÆ­éŸ³å›žę”¾',\n\t'Audio': 'éŸ³ę•ˆ',\n\t'AutoPlay': 'č‡ŖåŠØ',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'č‡ŖåŠØę’­ę”¾é€Ÿåŗ¦',\n\n\t'Back': '后退',\n\t'BackButton': '后退',\n\n\t'Cancel': 'å–ę¶ˆ',\n\t'Close': '关闭',\n\t'Confirm': 'ē”®å®šč¦é€€å‡ŗå—ļ¼Ÿ',\n\t'Credits': 'Credits',\n\n\t'Delete': '删除',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'å…Øå±ę˜¾ē¤ŗ',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': '帮助',\n\t'Hide': '隐藏',\n\t'HideButton': 'éšč—ę–‡å­—',\n\n\t'iOSAudioWarning': 'iOSęš‚äøę”ÆęŒéŸ³ę•ˆč®¾å®š',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'Language': '语言',\n\t'Load': 'čÆ»å–',\n\t'LoadAutoSaveSlots': 'č‡ŖåŠØå­˜å‚Øēš„ęøøęˆčæ›åŗ¦',\n\t'LoadButton': 'ę˜¾ē¤ŗčÆ»å–ē•Œé¢',\n\t'Loading': '加载中',\n\t'LoadingMessage': 'ē­‰å¾…ē“ ęåŠ č½½äø­',\n\t'LoadSlots': 'å­˜å‚Øēš„ęøøęˆčæ›åŗ¦',\n\t'LocalStorageWarning': 'čÆ„ęµč§ˆå™Øęš‚äøę”ÆęŒęœ¬åœ°å­˜å‚ØåŠŸčƒ½',\n\t'Log': 'Log',\n\n\t'Music': '音乐音量',\n\n\t'NoSavedGames': 'ę²”ęœ‰å­˜å‚Øēš„ęøøęˆčæ›åŗ¦',\n\t'NoAutoSavedGames': 'ę²”ęœ‰č‡ŖåŠØå­˜å‚Øēš„ęøøęˆčæ›åŗ¦',\n\t'NewContent': 'ęœ‰ę–°ēš„å†…å®¹åÆä¾›ä½æē”Øļ¼Œé‡ę–°åŠ č½½é”µé¢ä»„čŽ·å–ęœ€ę–°ē‰ˆęœ¬',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': '確定',\n\t'OrientationWarning': 'čÆ·å°†č®¾å¤‡ę—‹č½¬ä»„ä½“éŖŒęøøęˆå†…å®¹',\n\t'Overwrite': '覆盖',\n\n\t'QuickButtons': 'åæ«ę·čœå•ęŒ‰é’®',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': '退出',\n\t'QuitButton': 'é€€å‡ŗęøøęˆ',\n\n\t'Resolution': 'åˆ†č¾ØēŽ‡',\n\n\t'Save': '存攣',\n\t'SaveButton': 'ę˜¾ē¤ŗå­˜ę”£ē•Œé¢',\n\t'SaveInSlot': 'å†™å…„å­˜ę”£ę§½ä½',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ēŽÆå¢ƒč®¾å®š',\n\t'SettingsButton': 'ę˜¾ē¤ŗēŽÆå¢ƒč®¾å®šē•Œé¢',\n\t'Show': '显示',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'ē”®å®šč¦åˆ é™¤čæ™äøŖå­˜ę”£ę§½ä½å—ļ¼Ÿ',\n\t'SlotOverwrite': 'ē”®å®šč¦č¦†ē›–čæ™äøŖå­˜ę”£ę§½ä½å—ļ¼Ÿ',\n\t'Sound': 'éŸ³ę•ˆéŸ³é‡',\n\t'Start': '开始',\n\t'Stop': '停止',\n\n\t'TextSpeed': 'ę–‡å­—ę˜¾ē¤ŗé€Ÿåŗ¦',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'čÆ­éŸ³éŸ³é‡',\n\n\t'Windowed': 'ēŖ—å£'\n};\n", + "/**\n * ============================================================\n * Nederlands\n * ============================================================\n *\n * Translators:\n *\n * Natsukeep\n */\n\nexport default {\n\t'AdvanceHelp': 'Gebruik de spatiebalk of linker muisknop om te spelen',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'Autoplay snelheid',\n\n\t'Back': 'Terug',\n\t'BackButton': 'Terug',\n\n\t'Cancel': 'Stop',\n\t'Close': 'Sluit',\n\t'Confirm': 'Ben je zeker dat je wilt stoppen?',\n\t'Credits': 'Credits',\n\n\t'Delete': 'Delete',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'Volledig scherm',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': 'Help',\n\t'Hide': 'Verberg',\n\t'HideButton': 'Verberg tekst',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'iOSAudioWarning': 'Audio instellingen worden niet ondersteund door iOS',\n\n\t'Language': 'Taal',\n\t'Load': 'Laad',\n\t'LoadAutoSaveSlots': 'Automatisch opgeslagen spellen',\n\t'LoadButton': 'Open het laadscherm',\n\t'Loading': 'Laden',\n\t'LoadingMessage': 'Wacht tot de onderdelen zijn geladen',\n\t'LoadSlots': 'Opgeslagen spellen',\n\t'LocalStorageWarning': 'Locale Opslag is niet mogelijk in deze Browser',\n\t'Log': 'Log',\n\n\t'Music': 'Muziek Volume',\n\n\t'NewContent': 'There is new content available, reload the page to get the latest version',\n\t'NoSavedGames': 'Geen opgeslagen spellen',\n\t'NoAutoSavedGames': 'Geen automatsch opgeslagen spellen',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Please rotate your device to play',\n\t'Overwrite': 'Overschrijven',\n\n\t'QuickButtons': 'Snelmenu knoppen',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': 'sluit',\n\t'QuitButton': 'Sluit spel',\n\n\t'Resolution': 'Resolutie',\n\n\t'Save': 'Opslaan',\n\t'SaveButton': 'Open de Save Screen',\n\t'SaveInSlot': 'Sla op in slot',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'Instellingen',\n\t'SettingsButton': 'Open de instellingen',\n\t'Show': 'Tonen',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'Weet u zeker dat u dit slot verwijderen?',\n\t'SlotOverwrite': 'Weet u zeker dat u dit slot overschrijven?',\n\t'Sound': 'Geluids volume',\n\t'Start': 'Start',\n\t'Stop': 'Stop',\n\n\t'TextSpeed': 'Tekst snelheid',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Stem Volume',\n\n\t'Windowed': 'Window modus'\n};", + "/**\n * ============================================================\n * English\n * ============================================================\n *\n * Translators:\n *\n * Hyuchia \n */\n\nexport default {\n\t'AdvanceHelp': 'To advance through the game, left-click or tap anywhere on the game screen or press the space key',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'Autoplay Speed',\n\n\t'Back': 'Back',\n\t'BackButton': 'Go back',\n\n\t'Cancel': 'Cancel',\n\t'Close': 'Close',\n\t'Confirm': 'Do you want to quit?',\n\t'Credits': 'Credits',\n\n\t'Delete': 'Delete',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'Full Screen',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': 'Help',\n\t'Hide': 'Hide',\n\t'HideButton': 'Hide the text box',\n\n\t'iOSAudioWarning': 'Audio settings are not supported on iOS',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'Language': 'Language',\n\t'Load': 'Load',\n\t'LoadAutoSaveSlots': 'Auto Saved Games',\n\t'LoadButton': 'Open the Load Screen',\n\t'Loading': 'Loading',\n\t'LoadingMessage': 'Wait while the assets are loaded',\n\t'LoadSlots': 'Saved Games',\n\t'LocalStorageWarning': 'Local Storage is not available in this browser',\n\t'Log': 'Log',\n\n\t'Music': 'Music Volume',\n\n\t'NewContent': 'There is new content available, reload the page to get the latest version',\n\t'NoSavedGames': 'No saved games',\n\t'NoAutoSavedGames': 'No automatically saved games',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Please rotate your device to play',\n\t'Overwrite': 'Overwrite',\n\n\t'QuickButtons': 'Quick Menu Buttons',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': 'Quit',\n\t'QuitButton': 'Quit Game',\n\n\t'Resolution': 'Resolution',\n\n\t'Save': 'Save',\n\t'SaveButton': 'Open the Save Screen',\n\t'SaveInSlot': 'Save in slot',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'Settings',\n\t'SettingsButton': 'Open the Settings Screen',\n\t'Show': 'Show',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'Are you sure you want to delete this slot?',\n\t'SlotOverwrite': 'Are you sure you want to overwrite this slot?',\n\t'Sound': 'Sound Volume',\n\t'Start': 'Start',\n\t'Stop': 'Stop',\n\n\t'TextSpeed': 'Text Speed',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Voice Volume',\n\n\t'Windowed': 'Windowed'\n};", + "/**\n * ============================================================\n * FranƧais\n * ============================================================\n *\n * Translators:\n *\n * BakaKiller, LoganTann (ShinProg)\n */\n\nexport default {\n\t'AdvanceHelp': 'Pour avancer dans le jeu, appuyez sur la touche espace ou cliquez',\n\t'AllowPlayback': 'Cliquez ici pour autoriser la musique de fond',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Activer la lecture automatique',\n\t'AutoPlaySpeed': 'Vitesse de lecture automatique',\n\n\t'Back': 'Retour',\n\t'BackButton': 'Retour',\n\n\t'Cancel': 'Annuler',\n\t'Close': 'Fermer',\n\t'Confirm': 'Voulez-vous vraiment quitter?',\n\t'Credits': 'CrĆ©dits',\n\n\t'Delete': 'Supprimer',\n\t'DialogLogButton': 'Afficher le journal de dialogues',\n\n\t'FullScreen': 'Plein Ɖcran',\n\n\t'Gallery': 'Gallerie',\n\n\t'Help': 'Aide',\n\t'Hide': 'Cacher',\n\t'HideButton': 'Cacher le Texte',\n\n\t'iOSAudioWarning': 'Les paramĆØtres audio ne sont pas pris en charge par iOS',\n\n\t'KeyboardShortcuts': 'Raccourcis claviers',\n\n\t'Language': 'Langue',\n\t'Load': 'Charger',\n\t'LoadAutoSaveSlots': 'Parties enregistrĆ©es automatiquement',\n\t'LoadButton': 'Ouvrir l’écran de chargement',\n\t'Loading': 'Chargement',\n\t'LoadingMessage': 'Veuillez patienter pendant le chargement des donnĆ©es du jeu',\n\t'LoadSlots': 'Parties SauvegardĆ©es',\n\t'LocalStorageWarning': 'Le stockage local n’est pas disponible sur ce navigateur !',\n\t'Log': 'Journal',\n\n\t'Music': 'Volume de la Musique',\n\n\t'NewContent': 'Un nouveau contenu est disponible, rechargez la page pour obtenir la derniĆØre version',\n\t'NoSavedGames': 'Pas de parties sauvegardĆ©es',\n\t'NoAutoSavedGames': 'Aucune partie enregistrĆ©e automatiquement',\n\t'NoDialogsAvailable': 'Aucun dialogue disponible. Les boĆ®tes de dialogue apparaĆ®tront ici au fur et Ć  mesure qu\\'elles s\\'afficheront.',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Changez l\\'orientation de votre appareil pour jouer.',\n\t'Overwrite': 'Ɖcraser',\n\n\t'QuickButtons': 'Boutons du Menu rapide',\n\t'QuickMenu': 'Menu rapide',\n\t'Quit': 'Quitter',\n\t'QuitButton': 'Quitter le Jeu',\n\n\t'Resolution': 'RĆ©solution',\n\n\t'Save': 'Sauvegarder',\n\t'SaveButton': 'Ouvrir l’écran de Sauvegarde',\n\t'SaveInSlot': 'Enregistrer Ć  l’emplacement',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'PrĆ©fĆ©rences',\n\t'SettingsButton': 'Ouvrir l’écran des PrĆ©fĆ©rences',\n\t'Show': 'Monter',\n\t'Skip': 'Passer',\n\t'SkipButton': 'Skip mode',\n\t'SlotDeletion': 'Êtes-vous sĆ»r de vouloir supprimer cet emplacement ?',\n\t'SlotOverwrite': 'Êtes vous sĆ»r de vouloir remplacer cet emplacement ?',\n\t'Sound': 'Volume des Sons',\n\t'Start': 'DĆ©marrer',\n\t'Stop': 'ArrĆŖter',\n\n\t'TextSpeed': 'Vitesse du Texte',\n\n\t'Video': 'Volume des vidĆ©os',\n\t'Voice': 'Volume de la Voix',\n\n\t'Windowed': 'FenĆŖtrĆ©'\n};\n", + "/**\n * ============================================================\n * Deutsch\n * ============================================================\n *\n * Translators:\n *\n * increpare \n * KazutoSensei\n */\n\nexport default {\n\t'AdvanceHelp': 'Um dich durch das Spiel zu navigieren, drücke die Leertaste oder klicke',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'AutoPlay-Geschwindigkeit',\n\n\t'Back': 'Zurück',\n\t'BackButton': 'Zurück',\n\n\t'Cancel': 'Abbrechen',\n\t'Close': 'Schließen',\n\t'Confirm': 'Mƶchtest Du das Spiel verlassen?',\n\t'Credits': 'Credits',\n\n\t'Delete': 'Lƶschen',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'Vollbildmodus',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': 'Hilfe',\n\t'Hide': 'Verbergen',\n\t'HideButton': 'Text verbergen',\n\n\t'iOSAudioWarning': 'Audioeinstellungen werden unter iOS nicht unterstützt',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'Language': 'Sprache',\n\t'Load': 'Laden',\n\t'LoadAutoSaveSlots': 'Automatisch gespeicherte Spiele',\n\t'LoadButton': 'Ɩffne den Ladebildschirm',\n\t'Loading': 'LƤdt',\n\t'LoadingMessage': 'Bitte warte, wƤhrend die Assets geladen werden',\n\t'LoadSlots': 'Gespeicherte Spiele',\n\t'LocalStorageWarning': 'Lokaler Speicher ist in diesem Browser nicht verfügbar',\n\t'Log': 'Log',\n\n\t'Music': 'Musik-LautstƤrke',\n\n\t'NewContent': 'There is new content available, reload the page to get the latest version',\n\t'NoSavedGames': 'Keine gespeicherten Spiele',\n\t'NoAutoSavedGames': 'Keine automatisch gespeicherten Spiele',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Um das Spiel zu spielen, Bitte drehen sie Ihr GerƤt',\n\t'Overwrite': 'Überschreiben',\n\n\t'QuickButtons': 'Schnellmenü SchaltflƤchen',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': 'Verlassen',\n\t'QuitButton': 'Spiel verlassen',\n\n\t'Resolution': 'Auflƶsung',\n\n\t'Save': 'Speichern',\n\t'SaveButton': 'Ɩffne den Speicherbildschirm',\n\t'SaveInSlot': 'In Slot speichern',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'Optionen',\n\t'SettingsButton': 'Ɩffne die Optionen',\n\t'Show': 'Einblenden',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'Bist Du sicher, dass Du diesen Slot lƶschen mƶchtest?',\n\t'SlotOverwrite': 'Bist Du sicher, dass Du diesen Slot überschreiben mƶchtest?',\n\t'Sound': 'Sound-LautstƤrke',\n\t'Start': 'Start',\n\t'Stop': 'Stop',\n\n\t'TextSpeed': 'Textgeschwindigkeit',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Stimmen-LautstƤrke',\n\n\t'Windowed': 'Fenstermodus'\n};", + "/**\n * ============================================================\n * Hungarian\n * ============================================================\n *\n * Translators:\n *\n * Levev \n * TibixDev \n */\n\nexport default {\n\t'AdvanceHelp': 'Ahhoz, hogy tovĆ”bb haladj a jĆ”tĆ©kban, nyomd meg a bal egĆ©rgombot, koppints bĆ”rhovĆ” a kĆ©pernyőn, vagy nyomd le a space-t',\n\t'AllowPlayback': 'Kattints ide hogy engedĆ©lyezd a hangvisszajĆ”tszĆ”st',\n\t'Audio': 'Hang',\n\t'AutoPlay': 'Automata',\n\t'AutoPlayButton': 'Automatikus jĆ”tĆ©k engedĆ©lyezĆ©se',\n\t'AutoPlaySpeed': 'Automata jĆ”tĆ©ksebessĆ©g',\n\n\t'Back': 'Vissza',\n\t'BackButton': 'Menj vissza',\n\n\t'Cancel': 'MĆ©gse',\n\t'Close': 'BezĆ”r',\n\t'Confirm': 'Ki akarsz lĆ©pni?',\n\t'Credits': 'StĆ”blista',\n\n\t'Delete': 'TƶrlĆ©s',\n\t'DialogLogButton': 'PĆ”rbeszĆ©dnapló megjelenĆ­tĆ©se',\n\n\t'FullScreen': 'TeljeskĆ©pernyő',\n\n\t'Gallery': 'GalĆ©ria',\n\n\t'Help': 'SegĆ­tsĆ©g',\n\t'Hide': 'ElrejtĆ©s',\n\t'HideButton': 'Szƶvegdoboz elrejtĆ©se',\n\n\t'iOSAudioWarning': 'A hangbeĆ”llĆ­tĆ”sok nem tĆ”mogatottak iOS rendszereken',\n\n\t'KeyboardShortcuts': 'BillentyűkombinĆ”ciók',\n\n\t'Language': 'Nyelv',\n\t'Load': 'BetƶltĆ©s',\n\t'LoadAutoSaveSlots': 'Automatikusan elmentett jĆ”tĆ©kmenetek',\n\t'LoadButton': 'BetƶltőkĆ©pernyő megnyitĆ”sa',\n\t'Loading': 'BetƶltĆ©s',\n\t'LoadingMessage': 'VĆ”rj, amĆ­g az erőforrĆ”sok betƶltenek',\n\t'LoadSlots': 'Mentett JĆ”tĆ©kmenetek',\n\t'LocalStorageWarning': 'A LokĆ”lis TĆ”rhely nem talĆ”lható ebben a keresőben',\n\t'Log': 'Napló',\n\n\t'Music': 'Zene Hangereje',\n\n\t'NewContent': 'Új tartalom elĆ©rhető, frissĆ­tsd az oldalt a legĆŗjabb verzióért',\n\t'NoSavedGames': 'Nem talĆ”lható mentett jĆ”tĆ©kmenet',\n\t'NoAutoSavedGames': 'Nem talĆ”lható automatikusan mentett jĆ”tĆ©kmenet',\n\t'NoDialogsAvailable': 'Nem talĆ”lható pĆ”rbeszĆ©d. A pĆ”rbeszĆ©dek itt fognak megjelenni amint talĆ”lkozol velük',\n\n\t'OK': 'OkĆ©',\n\t'OrientationWarning': 'KĆ©rlek, fordĆ­tsd el az eszkƶzƶd a jĆ”tĆ©khoz',\n\t'Overwrite': 'FelülĆ­rĆ”s',\n\n\t'QuickButtons': 'Gyorsmenü gombok',\n\t'QuickMenu': 'Gyorsmenü',\n\t'Quit': 'KilĆ©pĆ©s',\n\t'QuitButton': 'KilĆ©pĆ©s a jĆ”tĆ©kból',\n\n\t'Resolution': 'FelbontĆ”s',\n\n\t'Save': 'MentĆ©s',\n\t'SaveButton': 'MentĆ©sek megnyitĆ”sa',\n\t'SaveInSlot': 'Slotba mentĆ©s',\n\t'SelectYourLanguage': 'Nyelved kivĆ”lasztĆ”sa',\n\t'Settings': 'BeĆ”llĆ­tĆ”sok',\n\t'SettingsButton': 'BeĆ”llĆ­tĆ”sok megnyitĆ”sa',\n\t'Show': 'Mutasd',\n\t'Skip': 'KihagyĆ”s',\n\t'SkipButton': 'KihagyĆ”s-mód bekapcsolĆ”sa',\n\t'SlotDeletion': 'Biztosan ki akarod tƶrƶlni ezt a slot-ot?',\n\t'SlotOverwrite': 'Biztosan felül akarod Ć­rni ezt a slot-ot?',\n\t'Sound': 'Hangerő',\n\t'Start': 'Start',\n\t'Stop': 'Stop',\n\n\t'TextSpeed': 'Szƶveg SebessĆ©ge',\n\n\t'Video': 'Videó Hangereje',\n\t'Voice': 'BeszĆ©d Hangereje',\n\n\t'Windowed': 'Ablakozott'\n};", + "/**\n * ============================================================\n * Bahasa_Indonesia\n * ============================================================\n *\n * Translators:\n *\n * mnafisalmukhdi1 \n */\n\nexport default {\n\t'AdvanceHelp': 'Untuk melanjutkan permainan, klik kiri atau ketuk di mana saja pada layar permainan atau tekan tombol spasi',\n\t'AllowPlayback': 'Klik di sini untuk menyalakan putar balik audio',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Nyalakan main otomatis',\n\t'AutoPlaySpeed': 'Kecepatan main otomatis',\n\n\t'Back': 'Kembali',\n\t'BackButton': 'Kembali',\n\n\t'Cancel': 'Batalkan',\n\t'Close': 'Tutup',\n\t'Confirm': 'Apakah Anda ingin keluar?',\n\t'Credits': 'Kredit',\n\n\t'Delete': 'Hapus',\n\t'DialogLogButton': 'Tampilkan log dialog',\n\n\t'FullScreen': 'Layar Penuh',\n\n\t'Gallery': 'Galeri',\n\n\t'Help': 'Bantuan',\n\t'Hide': 'Sembunyikan',\n\t'HideButton': 'Sembunyikan kotak teks',\n\n\t'iOSAudioWarning': 'Pengaturan audio tidak didukung pada iOS',\n\n\t'KeyboardShortcuts': 'Pintasan papan tombol',\n\n\t'Language': 'Bahasa',\n\t'Load': 'Muat',\n\t'LoadAutoSaveSlots': 'Permainan yang Tersimpan Otomatis',\n\t'LoadButton': 'Buka layar pemuatan',\n\t'Loading': 'Memuat',\n\t'LoadingMessage': 'Tunggu sementara aset dimuat',\n\t'LoadSlots': 'Permainan yang Tersimpan',\n\t'LocalStorageWarning': 'Penyimpanan lokal tidak tersedia pada peramban ini',\n\t'Log': 'Log',\n\n\t'Music': 'Volume Musik',\n\n\t'NewContent': 'Ada konten baru tersedia, muat ulang halaman untuk mendapatkan versi terkini',\n\t'NoSavedGames': 'Tidak ada permainan yang tersimpan',\n\t'NoAutoSavedGames': 'Tidak ada permainan yang tersimpan otomatis',\n\t'NoDialogsAvailable': 'Tidak ada dialog yang tersedia. Dialog akan ditampilkan di sini ketika muncul',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Mohon putar perangkat Anda untuk bermain',\n\t'Overwrite': 'Timpa',\n\n\t'QuickButtons': 'Tombol Menu Pintas',\n\t'QuickMenu': 'Menu Pintas',\n\t'Quit': 'Keluar',\n\t'QuitButton': 'Keluar Permainan',\n\n\t'Resolution': 'Resolusi',\n\n\t'Save': 'Simpan',\n\t'SaveButton': 'Buka layar Simpan',\n\t'SaveInSlot': 'Simpan di slot',\n\t'SelectYourLanguage': 'Pilih bahasa Anda',\n\t'Settings': 'Pengaturan',\n\t'SettingsButton': 'Buka layar Pengaturan',\n\t'Show': 'Tampilkan',\n\t'Skip': 'Lewati',\n\t'SkipButton': 'Masuki mode lewati',\n\t'SlotDeletion': 'Apakah Anda yakin ingin menghapus slot ini?',\n\t'SlotOverwrite': 'Apakah Anda yakin ingin menimpa slot ini?',\n\t'Sound': 'Volume Bunyi',\n\t'Start': 'Mulai',\n\t'Stop': 'Berhenti',\n\n\t'TextSpeed': 'Kecepatan Teks',\n\n\t'Video': 'Volume Video',\n\t'Voice': 'Volume Suara',\n\n\t'Windowed': 'Berjendela'\n};", + "/**\n * ============================================================\n * ę—„ęœ¬čŖž\n * ============================================================\n *\n * Translators:\n *\n *\n */\n\nexport default {\n\t'AdvanceHelp': 'ć‚²ćƒ¼ćƒ ć‚’é€²ć‚ć‚‹ćŸć‚ć«ćÆć€ć‚¹ćƒšćƒ¼ć‚¹ć‚­ćƒ¼ć‚’ęŠ¼ć™ć‹ć‚ÆćƒŖćƒƒć‚Æć—ć¾ć™',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'ć‚Ŗćƒ¼ćƒ‡ć‚£ć‚Ŗ',\n\t'AutoPlay': '自動',\n\t'AutoPlayButton': 'Enable auto play',\n\t'AutoPlaySpeed': 'č‡Ŗå‹•å†ē”Ÿé€Ÿåŗ¦',\n\n\t'Back': 'å·»ćęˆ»ć—',\n\t'BackButton': 'å·»ćęˆ»ć—',\n\n\t'Cancel': 'ć‚­ćƒ£ćƒ³ć‚»ćƒ«',\n\t'Close': '閉悁恦',\n\t'Confirm': 'ēµ‚äŗ†ć—ć¾ć™ć‹ļ¼Ÿ',\n\t'Credits': 'Credits',\n\n\t'Delete': 'Delete',\n\t'DialogLogButton': 'Show the dialog log',\n\n\t'FullScreen': 'å…Øē”»é¢č”Øē¤ŗ',\n\n\t'Gallery': 'Gallery',\n\n\t'Help': 'ćƒ˜ćƒ«ćƒ—',\n\t'Hide': 'ć€Œéžč”Øē¤ŗć€',\n\t'HideButton': 'ćƒ†ć‚­ć‚¹ćƒˆć‚’éš ć—ć¾ć™',\n\n\t'iOSAudioWarning': 'iOSć§ćÆć‚Ŗćƒ¼ćƒ‡ć‚£ć‚ŖčØ­å®šćŒć‚µćƒćƒ¼ćƒˆć•ć‚Œć¦ć„ć¾ć›ć‚“',\n\n\t'KeyboardShortcuts': 'Keyboard Shortcuts',\n\n\t'Language': 'čØ€čŖž',\n\t'Load': 'ćƒ­ćƒ¼ćƒ‰',\n\t'LoadAutoSaveSlots': 'č‡Ŗå‹•ēš„ć«äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ',\n\t'LoadButton': 'ćƒ­ćƒ¼ćƒ‰ē”»é¢ć‚’é–‹ćć¾ć™',\n\t'Loading': '読み込み中',\n\t'LoadingMessage': 'ćƒ•ć‚”ć‚¤ćƒ«ćŒćƒ­ćƒ¼ćƒ‰ć•ć‚Œć‚‹ć®ć‚’å¾…ć”ć¾ć™',\n\t'LoadSlots': 'äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ',\n\t'LocalStorageWarning': 'ć“ć®ćƒ–ćƒ©ć‚¦ć‚¶ć§ćÆćƒ­ćƒ¼ć‚«ćƒ«ć‚¹ćƒˆćƒ¬ćƒ¼ć‚øćÆä½æē”Øć§ćć¾ć›ć‚“',\n\t'Log': 'Log',\n\n\t'Music': 'éŸ³ę„½ć®éŸ³é‡',\n\n\t'NewContent': 'There is new content available, reload the page to get the latest version',\n\t'NoSavedGames': 'äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ćÆć‚ć‚Šć¾ć›ć‚“',\n\t'NoAutoSavedGames': 'č‡Ŗå‹•ēš„ć«äæå­˜ć•ć‚ŒćŸć‚²ćƒ¼ćƒ ćÆć‚ć‚Šć¾ć›ć‚“',\n\t'NoDialogsAvailable': 'No dialogs available. Dialogs will appear here as they show up',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Please rotate your device to play',\n\t'Overwrite': 'äøŠę›øć',\n\n\t'QuickButtons': 'ć‚Æć‚¤ćƒƒć‚Æćƒ”ćƒ‹ćƒ„ćƒ¼ćƒœć‚æćƒ³',\n\t'QuickMenu': 'Quick Menu',\n\t'Quit': '終了する',\n\t'QuitButton': 'ć‚²ćƒ¼ćƒ ć‚’ēµ‚äŗ†ć—ć¾ć™',\n\n\t'Resolution': 'č§£åƒåŗ¦',\n\n\t'Save': 'ć‚»ćƒ¼ćƒ–',\n\t'SaveButton': 'äæå­˜ē”»é¢ć‚’é–‹ćć¾ć™',\n\t'SaveInSlot': 'ć‚¹ćƒ­ćƒƒćƒˆć«ć‚»ćƒ¼ćƒ–ć™ć‚‹',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ē’°å¢ƒčØ­å®š',\n\t'SettingsButton': 'čØ­å®šē”»é¢ć‚’é–‹ćć¾ć™',\n\t'Show': 'ć‚·ćƒ§ćƒ¼',\n\t'Skip': 'Skip',\n\t'SkipButton': 'Enter skip mode',\n\t'SlotDeletion': 'ęœ¬å½“ć«ć“ć®ć‚¹ćƒ­ćƒƒćƒˆć‚’å‰Šé™¤ć—ć¾ć™ć‹ļ¼Ÿ',\n\t'SlotOverwrite': 'ęœ¬å½“ć«ć“ć®ć‚¹ćƒ­ćƒƒćƒˆć‚’äøŠę›øćć—ć¾ć™ć‹ļ¼Ÿ',\n\t'Sound': 'åŠ¹ęžœéŸ³ć®éŸ³é‡',\n\t'Start': 'ć‚¹ć‚æćƒ¼ćƒˆ',\n\t'Stop': '停止',\n\n\t'TextSpeed': 'ćƒ†ć‚­ć‚¹ćƒˆć‚¹ćƒ”ćƒ¼ćƒ‰',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'ćƒœć‚¤ć‚¹ć®éŸ³é‡',\n\n\t'Windowed': 'ēŖ“'\n};", + "/**\n * ============================================================\n * ķ•œźµ­ģ–“\n * ============================================================\n *\n * Translators:\n *\n * Lee Yunseok \n */\n\nexport default {\n\t'AdvanceHelp': 'ź²Œģž„ģ„ ģ§„ķ–‰ķ•˜ė ¤ė©“ ź²Œģž„ ķ™”ė©“ģ„ 좌큓릭 ė˜ėŠ” ķƒ­ķ•˜ź±°ė‚˜ ģŠ¤ķŽ˜ģ“ģŠ¤ 키넼 ėˆ„ė„“ģ„øģš”',\n\t'AllowPlayback': 'ģ˜¤ė””ģ˜¤ ģž¬ģƒģ„ ķ—ˆģš©ķ•˜ė ¤ė©“ 여기넼 ķ“ė¦­ķ•˜ģ„øģš”',\n\t'Audio': 'ģ˜¤ė””ģ˜¤',\n\t'AutoPlay': 'ģžė™ģž¬ģƒ',\n\t'AutoPlayButton': 'ģžė™ģž¬ģƒė‹Øģ¶”',\n\t'AutoPlaySpeed': 'ģžė™ģž¬ģƒ ģ†ė„',\n\n\t'Back': '되감기',\n\t'BackButton': 'ģ“ģ „ 지문 볓기',\n\n\t'Cancel': 'ģ·Øģ†Œ',\n\t'Close': 'ė‹«źø°',\n\t'Confirm': 'ģ¢…ė£Œķ•˜ģ‹œź² ģ–“ģš”?',\n\t'Credits': 'ė§Œė“ ģ“',\n\n\t'Delete': 'ģ‚­ģ œ',\n\t'DialogLogButton': 'ėŒ€ģ‚¬ė” 볓기',\n\n\t'FullScreen': '전첓화멓',\n\n\t'Gallery': '갤러리',\n\n\t'Help': 'ė„ģ›€ė§',\n\t'Hide': '숨기기',\n\t'HideButton': '지문 ģ°½ģ„ ģˆØź¹ė‹ˆė‹¤',\n\n\t'iOSAudioWarning': 'ģ˜¤ė””ģ˜¤ ģ„¤ģ •ģ€ iOSģ—ģ„œ ģ§€ģ›ė˜ģ§€ ģ•ŠģŠµė‹ˆė‹¤',\n\n\t'KeyboardShortcuts': 'ķ‚¤ė³“ė“œ 단축키',\n\n\t'Language': 'ģ–øģ–“',\n\t'Load': '불러오기',\n\t'LoadAutoSaveSlots': 'ģžė™ģ €ģž„ėœ ź²Œģž„',\n\t'LoadButton': '불러오기 화멓 ģ—“źø°',\n\t'Loading': 'ė¶ˆėŸ¬ģ˜¤ėŠ” 중',\n\t'LoadingMessage': 'ģžģ‚°ģ„ ė¶ˆėŸ¬ģ˜¤ėŠ” ė™ģ•ˆ źø°ė‹¤ė ¤ģ£¼ģ„øģš”',\n\t'LoadSlots': 'ģ €ģž„ėœ ź²Œģž„',\n\t'LocalStorageWarning': '딜컬 ģ €ģž„ģ†ŒėŠ” ģ“ ėøŒė¼ģš°ģ €ģ—ģ„œ ģ‚¬ģš© ė¶ˆź°€ėŠ„ķ•©ė‹ˆė‹¤',\n\t'Log': 'ėŒ€ģ‚¬ė”',\n\n\t'Music': 'ģŒģ•… ģŒėŸ‰',\n\n\t'NewContent': 'ķŽ˜ģ“ģ§€ė„¼ ģƒˆė”œź³ ģ¹Øķ•˜ėŠ” 것으딜 ģµœģ‹  ė²„ģ „ģ˜ 새딜욓 ģ½˜ķ…ģø ė„¼ ģ‚¬ģš© ź°€ėŠ„ķ•  수 ģžˆģŠµė‹ˆė‹¤',\n\t'NoSavedGames': 'ģ €ģž„ėœ ź²Œģž„ģ“ ģ—†ģŠµė‹ˆė‹¤',\n\t'NoAutoSavedGames': 'ģžė™ģœ¼ė”œ ģ €ģž„ėœ ź²Œģž„ģ“ ģ—†ģŠµė‹ˆė‹¤',\n\t'NoDialogsAvailable': 'ėŒ€ķ™” ģƒģžė„¼ ģ‚¬ģš©ķ•  수 ģ—†ģŠµė‹ˆė‹¤. ģ‚¬ģš©ķ•  수 ģžˆź²Œ 되멓 여기에 ėŒ€ķ™” ģƒģžź°€ ė‚˜ķƒ€ė‚©ė‹ˆė‹¤',\n\n\t'OK': 'ķ™•ģø',\n\t'OrientationWarning': 'ķ”Œė ˆģ“ė„¼ ģœ„ķ•“ 기기넼 ķšŒģ „ķ•“ģ£¼ģ„øģš”',\n\t'Overwrite': 'ė®ģ–“ģ“°źø°',\n\n\t'QuickButtons': '빠넸 메뉓 단추',\n\t'QuickMenu': '빠넸 메뉓',\n\t'Quit': 'ģ¢…ė£Œ',\n\t'QuitButton': 'ź²Œģž„ ģ¢…ė£Œ',\n\n\t'Resolution': 'ķ•“ģƒė„',\n\n\t'Save': 'ģ €ģž„ķ•˜źø°',\n\t'SaveButton': 'ģ €ģž„ ķ™”ė©“ģ„ ģ—½ė‹ˆė‹¤',\n\t'SaveInSlot': 'ģŠ¬ė”Æģ— ģ €ģž„',\n\t'SelectYourLanguage': '언얓넼 ģ„ ķƒķ•“ģ£¼ģ„øģš”',\n\t'Settings': '설정',\n\t'SettingsButton': '설정 ķ™”ė©“ģ„ ģ—½ė‹ˆė‹¤',\n\t'Show': 'ė³“ģ“źø°',\n\t'Skip': 'ė„˜źø°źø°',\n\t'SkipButton': 'ė„˜źø°źø° ėŖØė“œ ģ‚¬ģš©',\n\t'SlotDeletion': 'ģ“ ģŠ¬ė”Æģ„ ģ‚­ģ œķ•˜ģ‹œź² ģ–“ģš”?',\n\t'SlotOverwrite': 'ģ“ ģŠ¬ė”Æģ— ė®ģ–“ģ“°ģ‹œź² ģ–“ģš”?',\n\t'Sound': 'ģŒķ–„ ģŒėŸ‰',\n\t'Start': 'ģ‹œģž‘',\n\t'Stop': '중지',\n\n\t'TextSpeed': 'źø€ģž ģ†ė„',\n\n\t'Video': 'ė¹„ė””ģ˜¤ ģŒėŸ‰',\n\t'Voice': 'ģŒģ„± ģŒėŸ‰',\n\n\t'Windowed': 'ģ°½ 화멓'\n};\n", + "/**\n * ============================================================\n * PortuguĆŖs\n * ============================================================\n *\n * Translators:\n *\n * fsvieira \n */\n\nexport default {\n\t'AdvanceHelp': 'Pode avanƧar no jogo usando o botĆ£o esquerdo do rato, tocar em qualquer sitĆ­o do ecrĆ£ de jogo ou carregar na barra de espaƧo.',\n\t'AllowPlayback': 'Clique aqui para permitir a reprodução de Ć”udio',\n\t'Audio': 'Ɓudio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Ativar reprodução automĆ”tica',\n\t'AutoPlaySpeed': 'Velocidade de reprodução automĆ”tica',\n\n\t'Back': 'Voltar',\n\t'BackButton': 'Voltar',\n\n\t'Cancel': 'Cancelar',\n\t'Close': 'Fechar',\n\t'Confirm': 'Deseja sair?',\n\t'Credits': 'CrĆ©ditos',\n\n\t'Delete': 'Apagar',\n\t'DialogLogButton': 'Mostrar registos de diĆ”logo',\n\n\t'FullScreen': 'EcrĆ£ Inteiro',\n\n\t'Gallery': 'Galeria',\n\n\t'Help': 'Ajuda',\n\t'Hide': 'Esconder',\n\t'HideButton': 'Esconder caixa de texto',\n\n\t'iOSAudioWarning': 'As configuraƧƵes de Ć”udio nĆ£o sĆ£o suportadas no iOS',\n\n\t'KeyboardShortcuts': 'Atalhos de Teclado',\n\n\t'Language': 'LĆ­ngua',\n\t'Load': 'Carregar',\n\t'LoadAutoSaveSlots': 'Jogos Salvos Automaticamente',\n\t'LoadButton': 'Abrir EcrĆ£ de Carregamento',\n\t'Loading': 'A Carregar',\n\t'LoadingMessage': 'Aguarde enquanto os recursos sĆ£o carregados',\n\t'LoadSlots': 'Jogos Salvos',\n\t'LocalStorageWarning': 'O armazenamento local nĆ£o estĆ” disponĆ­vel neste navegador',\n\t'Log': 'Registo',\n\n\t'Music': 'Volume de MĆŗsica',\n\n\t'NewContent': 'HĆ” novo conteĆŗdo disponĆ­vel, recarregue a pĆ”gina para obter a versĆ£o mais recente',\n\t'NoSavedGames': 'Nenhum jogo salvo',\n\t'NoAutoSavedGames': 'Nenhum jogo salvo automaticamente',\n\t'NoDialogsAvailable': 'NĆ£o hĆ” diĆ”logos disponĆ­veis. Os diĆ”logos aparecerĆ£o aqui quando ocorrerem no jogo',\n\n\t'OK': 'OK',\n\t'OrientationWarning': 'Por favor rode o seu dispositivo para jogar',\n\t'Overwrite': 'Substituir',\n\n\t'QuickButtons': 'BotƵes de acesso rĆ”pido',\n\t'QuickMenu': 'Menu de acesso rĆ”pido',\n\t'Quit': 'Sair',\n\t'QuitButton': 'Sair do Jogo',\n\n\t'Resolution': 'Resolução',\n\n\t'Save': 'Salvar',\n\t'SaveButton': 'Abrir ecrĆ£ de salvar.',\n\t'SaveInSlot': 'Salvar em ranhura',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ConfiguraƧƵes',\n\t'SettingsButton': 'Abrir o EcrĆ£ de ConfiguraƧƵes',\n\t'Show': 'Mostrar',\n\t'Skip': 'Ignorar',\n\t'SkipButton': 'Entrar em modo de ignorar',\n\t'SlotDeletion': 'Tem a certeza de que deseja eliminar este jogo?',\n\t'SlotOverwrite': 'Tem a certeza de que deseja substituir este jogo?',\n\t'Sound': 'Volume de Som',\n\t'Start': 'InĆ­cio',\n\t'Stop': 'Parar',\n\n\t'TextSpeed': 'Velocidade de Texto',\n\n\t'Video': 'Video Volume',\n\t'Voice': 'Volume de Voz',\n\n\t'Windowed': 'Em Janela'\n};", + "/**\n * ============================================================\n * Russian\n * ============================================================\n *\n * Translators:\n *\n * Sergey Kuznetsov \n * Patience Daur \n */\n\nexport default {\n\t'AdvanceHelp': 'Чтобы ŠøŠ³Ń€Š°Ń‚ŃŒ, нажимайте на пробел или на Š»ŠµŠ²ŃƒŃŽ кнопку Š¼Ń‹ŃˆŠø.',\n\t'AllowPlayback': 'Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ звуковое сопровожГение',\n\t'Audio': 'Š—Š²ŃƒŠŗ',\n\t'AutoPlay': 'Авто',\n\t'AutoPlayButton': 'Š’ŠŗŠ»ŃŽŃ‡ŠøŃ‚ŃŒ авточтение',\n\t'AutoPlaySpeed': 'Š”ŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ Š°Š²Ń‚Š¾Ń‡Ń‚ŠµŠ½ŠøŃ',\n\n\t'Back': 'ŠŠ°Š·Š°Š“',\n\t'BackButton': 'Š’ŠµŃ€Š½ŃƒŃ‚ŃŒŃŃ назаГ',\n\n\t'Cancel': 'ŠžŃ‚Š¼ŠµŠ½Š°',\n\t'Close': 'Š—Š°ŠŗŃ€Ń‹Ń‚ŃŒ',\n\t'Confirm': 'Š’Ń‹ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾ хотите выйти?',\n\t'Credits': 'Авторы',\n\n\t'Delete': 'Š£Š“Š°Š»ŠøŃ‚ŃŒ',\n\t'DialogLogButton': 'ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚ŃŒ Š¶ŃƒŃ€Š½Š°Š» Гиалогов',\n\n\t'FullScreen': 'ŠŸŠ¾Š»Š½Ń‹Š¹ ŃŠŗŃ€Š°Š½',\n\n\t'Gallery': 'Š“Š°Š»ŠµŃ€ŠµŃ',\n\n\t'Help': 'ŠŸŠ¾Š¼Š¾Ń‰ŃŒ',\n\t'Hide': 'Š”ŠŗŃ€Ń‹Ń‚ŃŒ',\n\t'HideButton': 'Š”ŠŗŃ€Ń‹Ń‚ŃŒ текст',\n\n\t'iOSAudioWarning': 'ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø звука не ŠæŠ¾Š“Š“ŠµŃ€Š¶ŠøŠ²Š°ŃŽŃ‚ŃŃ на iOS.',\n\n\t'KeyboardShortcuts': 'Š“Š¾Ń€ŃŃ‡ŠøŠµ клавиши',\n\n\t'Language': 'Язык',\n\t'Load': 'Š—Š°Š³Ń€ŃƒŠ·ŠøŃ‚ŃŒ',\n\t'LoadAutoSaveSlots': 'Автосохранённые игры',\n\t'LoadButton': 'ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ Š·Š°Š³Ń€ŃƒŠ·ŠŗŠø',\n\t'Loading': 'Š—Š°Š³Ń€ŃƒŠ·ŠŗŠ°',\n\t'LoadingMessage': 'ŠŸŠ¾Š“Š¾Š¶Š“ŠøŃ‚Šµ, ŠæŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, игра Š·Š°Š³Ń€ŃƒŠ¶Š°ŠµŃ‚ся',\n\t'LoadSlots': 'Дохранённые игры',\n\t'LocalStorageWarning': 'Š›Š¾ŠŗŠ°Š»ŃŒŠ½Š¾Šµ хранилище Š½ŠµŠ“Š¾ŃŃ‚ŃƒŠæŠ½Š¾ в ŃŃ‚Š¾Š¼ Š±Ń€Š°ŃƒŠ·ŠµŃ€Šµ.',\n\t'Log': 'Š–ŃƒŃ€Š½Š°Š»',\n\n\t'Music': 'Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ Š¼ŃƒŠ·Ń‹ŠŗŠø',\n\n\t'NewContent': 'Š”Š¾ŃŃ‚ŃƒŠæŠ½Š¾ обновление, ŠæŠµŃ€ŠµŠ·Š°Š³Ń€ŃƒŠ·ŠøŃ‚Šµ ŃŃ‚Ń€Š°Š½ŠøŃ†Ńƒ',\n\t'NoSavedGames': 'ŠŠµŃ‚ сохранённых игр',\n\t'NoAutoSavedGames': 'ŠŠµŃ‚ автосохранённых игр',\n\t'NoDialogsAvailable': 'ŠŠµŃ‚ Гиалогов. Диалоги Š±ŃƒŠ“ŃƒŃ‚ ŠæŠ¾ŃŠ²Š»ŃŃ‚ŃŒŃŃ зГесь по мере ŠæŃ€Š¾Ń…Š¾Š¶Š“ŠµŠ½ŠøŃ игры',\n\n\t'OK': 'ŠžŠš',\n\t'OrientationWarning': 'Чтобы ŠøŠ³Ń€Š°Ń‚ŃŒ, ŠæŠ¾Š¶Š°Š»ŃƒŠ¹ŃŃ‚Š°, поверните Š’Š°ŃˆŠµ ŃƒŃŃ‚Ń€Š¾Š¹ŃŃ‚Š²Š¾',\n\t'Overwrite': 'ŠŸŠµŃ€ŠµŠ·Š°ŠæŠøŃŠ°Ń‚ŃŒ',\n\n\t'QuickButtons': 'Кнопки быстрого Š¼ŠµŠ½ŃŽ',\n\t'QuickMenu': 'Быстрое Š¼ŠµŠ½ŃŽ',\n\t'Quit': 'Выйти',\n\t'QuitButton': 'Выйти ŠøŠ· игры',\n\n\t'Resolution': 'Š Š°Š·Ń€ŠµŃˆŠµŠ½ŠøŠµ',\n\n\t'Save': 'Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ',\n\t'SaveButton': 'ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ ŃŠ¾Ń…Ń€Š°Š½ŠµŠ½ŠøŃ',\n\t'SaveInSlot': 'Š”Š¾Ń…Ń€Š°Š½ŠøŃ‚ŃŒ',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ŠŠ°ŃŃ‚Ń€Š¾Š¹ŠŗŠø',\n\t'SettingsButton': 'ŠžŃ‚ŠŗŃ€Ń‹Ń‚ŃŒ Š¼ŠµŠ½ŃŽ настроек',\n\t'Show': 'ŠŸŠ¾ŠŗŠ°Š·Š°Ń‚ŃŒ',\n\t'Skip': 'ŠŸŃ€Š¾ŠæŃƒŃŃ‚ŠøŃ‚ŃŒ',\n\t'SkipButton': 'АвтоперехоГ',\n\t'SlotDeletion': 'Š’Ń‹ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾ хотите ŃƒŠ“Š°Š»ŠøŃ‚ŃŒ ŃŃ‚Š¾ сохранение?',\n\t'SlotOverwrite': 'Š’Ń‹ Š“ŠµŠ¹ŃŃ‚Š²ŠøŃ‚ŠµŠ»ŃŒŠ½Š¾ хотите ŠæŠµŃ€ŠµŠ·Š°ŠæŠøŃŠ°Ń‚ŃŒ ŃŃ‚Š¾ сохранение?',\n\t'Sound': 'Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ ŃŃ„Ń„ŠµŠŗŃ‚Š¾Š²',\n\t'Start': 'ŠŠ°Ń‡Š°Ń‚ŃŒ ŠøŠ³Ń€Ńƒ',\n\t'Stop': 'Дтоп',\n\n\t'TextSpeed': 'Š”ŠŗŠ¾Ń€Š¾ŃŃ‚ŃŒ текста',\n\n\t'Video': 'Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ виГео',\n\t'Voice': 'Š“Ń€Š¾Š¼ŠŗŠ¾ŃŃ‚ŃŒ голоса',\n\n\t'Windowed': 'ŠžŠŗŠ¾Š½Š½Ń‹Š¹ режим'\n};", + "/**\n * ============================================================\n * EspaƱol\n * ============================================================\n *\n * Translators:\n *\n * Hyuchia \n */\n\nexport default {\n\t'AdvanceHelp': 'Para avanzar en el juego, presiona espacio o haz click',\n\t'AllowPlayback': 'Click here to allow audio playback',\n\t'Audio': 'Audio',\n\t'AutoPlay': 'Auto',\n\t'AutoPlayButton': 'Activar juego automĆ”tico',\n\t'AutoPlaySpeed': 'Velocidad de Juego AutomĆ”tico',\n\n\t'Back': 'AtrĆ”s',\n\t'BackButton': 'AtrĆ”s',\n\n\t'Cancel': 'Cancelar',\n\t'Close': 'Cerrar',\n\t'Confirm': 'ĀæDeseas salir?',\n\t'Credits': 'CrĆ©ditos',\n\n\t'Delete': 'Eliminar',\n\t'DialogLogButton': 'Mostrar el historial de dialogos',\n\n\t'FullScreen': 'Pantalla Completa',\n\n\t'Gallery': 'GalerĆ­a',\n\n\t'Help': 'Ayuda',\n\t'Hide': 'Ocultar',\n\t'HideButton': 'Esconder el Texto',\n\n\t'iOSAudioWarning': 'Las configuraciones de Audio no estĆ”n disponibles en iOS',\n\n\t'KeyboardShortcuts': 'Atajos de Teclado',\n\n\t'Language': 'Lenguaje',\n\t'Load': 'Cargar',\n\t'LoadAutoSaveSlots': 'Juegos Guardados Automaticamente',\n\t'LoadButton': 'Abrir la Pantalla de Cargar',\n\t'Loading': 'Cargando',\n\t'LoadingMessage': 'Espere mientras se cargan los archivos',\n\t'LoadSlots': 'Juegos Guardados',\n\t'LocalStorageWarning': 'El Almacenaje Local no estĆ” disponible en este navegador',\n\t'Log': 'Historial',\n\n\t'Music': 'Volumen de la MĆŗsica',\n\n\t'NewContent': 'Un nuevo contenido estĆ” disponible, recarga la pĆ”gina para obtener la versión mĆ”s nueva',\n\t'NoSavedGames': 'No hay juegos guardados',\n\t'NoAutoSavedGames': 'No hay juegos guardados automaticamente',\n\t'NoDialogsAvailable': 'No hay dialogos disponibles. Los dialogos aparecerĆ”n aqui una vez que ocurran en el juego',\n\n\t'OK': 'Aceptar',\n\t'OrientationWarning': 'Por favor rota tu dispositivo para jugar',\n\t'Overwrite': 'Sobreescribir',\n\n\t'QuickButtons': 'Botones del MenĆŗ RĆ”pido',\n\t'QuickMenu': 'MenĆŗ RĆ”pido',\n\t'Quit': 'Salir',\n\t'QuitButton': 'Salir del Juego',\n\n\t'Resolution': 'Resolución',\n\n\t'Save': 'Guardar',\n\t'SaveButton': 'Abrir la Pantalla de Guardar',\n\t'SaveInSlot': 'Guardar en ranura',\n\t'SelectYourLanguage': 'Selecciona tu idioma',\n\t'Settings': 'Configuración',\n\t'SettingsButton': 'Abrir la Pantalla de Configuración',\n\t'Show': 'Mostrar',\n\t'Skip': 'Saltar',\n\t'SkipButton': 'Entrar al modo de salto',\n\t'SlotDeletion': 'ĀæEstĆ” seguro de querer eliminar este juego?',\n\t'SlotOverwrite': 'ĀæEstĆ” seguro de querer Sobreescribir este juego?',\n\t'Sound': 'Volumen de los Sonidos',\n\t'Start': 'Comenzar',\n\t'Stop': 'Detener',\n\n\t'TextSpeed': 'Velocidad del Texto',\n\n\t'Video': 'Volumen de los Videos',\n\t'Voice': 'Volumen de la Voz',\n\n\t'Windowed': 'Ventana'\n};", + "/**\n * ============================================================\n * Toki Pona\n * ============================================================\n *\n * Translators:\n *\n * jan Inkepa \n */\n\nexport default {\n\t'AdvanceHelp': 'sina ken musi e musi ni kepeken ilo luka anu nena palisa pi ilo sitelen.',\n\t'AllowPlayback': 'sina wile kute e musi ni la o luka e mi.',\n\t'Audio': 'kalama',\n\t'AutoPlay': 'luka ala',\n\t'AutoPlayButton': 'o open e pali musi kepeken luka ala.',\n\t'AutoPlaySpeed': 'tenpo tawa pi luka ala',\n\n\t'Back': 'tenpo pini',\n\t'BackButton': 'o tawa tenpo pini.',\n\n\t'Cancel': 'ala',\n\t'Close': 'pini',\n\t'Confirm': 'sina wile ala wile pini e musi?',\n\t'Credits': 'pona tawa',\n\n\t'Delete': 'weka',\n\t'DialogLogButton': 'mi wile lukin e lipu pi toki jan.',\n\n\t'FullScreen': 'ma ale pi ilo lukin',\n\n\t'Gallery': 'ma sitelen',\n\n\t'Help': 'kama sona',\n\t'Hide': 'weka',\n\t'HideButton': 'o weka e palisa nena.',\n\n\t'iOSAudioWarning': 'sina ken ala ante e kalama lon ilo iOS',\n\n\t'KeyboardShortcuts': 'pali pi ilo sitelen',\n\n\t'Language': 'toki',\n\t'Load': 'awen musi',\n\t'LoadAutoSaveSlots': 'musi li awen e musi',\n\t'LoadButton': 'lipu awen pi tenpo pini.',\n\t'Loading': 'musi li kama...',\n\t'LoadingMessage': 'pali e awen',\n\t'LoadSlots': 'lipu awen',\n\t'LocalStorageWarning': 'mi ken ala kepeken e ken Local Storage lon ilo ni',\n\t'Log': 'lipu toki',\n\n\t'Music': 'kalama musi',\n\n\t'NewContent': 'musi ni li kama sin! sina wile musi e musi sin, la o kama sin tawa lipu ni.',\n\t'NoSavedGames': 'awen musi pi tenpo pina li lon ala.',\n\t'NoAutoSavedGames': 'awen musi pi tenpo pina li lon ala.',\n\t'NoDialogsAvailable': 'tenpo pini la toki jan li lon ala. jan li toki, la sina ken lukin ni lon lipu ni.',\n\n\t'OK' : 'pona',\n\t'OrientationWarning': 'sina wile musi, la o sike e ilo sona sina.',\n\t'Overwrite': 'ante',\n\n\t'QuickButtons': 'nena pi pali wawa',\n\t'QuickMenu': 'palisa nena',\n\t'Quit': 'pini',\n\t'QuitButton': 'o pini e musi.',\n\n\t'Resolution': 'suli musi tawa ilo sitelen',\n\n\t'Save': 'o awen e musi',\n\t'SaveButton': 'o lukin e lipu pi awen musi.',\n\t'SaveInSlot': 'o awen e musi lon ma.',\n\t'SelectYourLanguage': 'Select your language',\n\t'Settings': 'ante',\n\t'SettingsButton': 'o ante e musi.',\n\t'Show': 'open',\n\t'Skip': 'tawa tenpo kama',\n\t'SkipButton': 'o tawa tenpo kama.',\n\t'SlotDeletion': 'sina wile ala wile weka e awen musi ni?',\n\t'SlotOverwrite': 'sina wile ala wile ante e awen musi ni?',\n\t'Sound': 'kalama ijo',\n\t'Start': 'musi sin',\n\t'Stop': 'pini',\n\n\t'TextSpeed': 'tenpo kama pi sitelen toki',\n\n\t'Video': 'kalama pi sitelen tawa',\n\t'Voice': 'kalama toki',\n\n\t'Windowed': 'ma lili pi ilo lukin',\n};\n", + "/**\n * ============================================================\n * Bulgarian\n * ============================================================\n *\n * Translators:\n *\n * librafrog <79138819+librafrog@users.noreply.github.com>\n */\n\nexport default {\n\t'AdvanceHelp': 'За Га преминете напреГ в играта, използвайте Š»ŠµŠ²ŠøŃ Š±ŃƒŃ‚Š¾Š½ на Š¼ŠøŃˆŠŗŠ°Ń‚а или Гокоснете ŠŗŃŠŠ“ето Šø Га е на ŠøŠ³Ń€Š°Š»Š½ŠøŃ екран, или пък натиснете клавиша Space.',\n\t'AllowPlayback': 'Щракнете Ń‚ŃƒŠŗ, за Га Ń€Š°Š·Ń€ŠµŃˆŠøŃ‚Šµ ауГио плейбек',\n\t'Audio': 'АуГио',\n\t'AutoPlay': 'Авто',\n\t'AutoPlayButton': 'Š Š°Š·Ń€ŠµŃˆŠø авто‑плейбек',\n\t'AutoPlaySpeed': 'Дтепен за авто.Š²ŃŠŠ·ŠæŃ€Š¾ŠøŠ·Š²ŠµŠ¶Š“Š°Š½Šµ',\n\n\t'Back': 'ŠŠ°Š·Š°Š“',\n\t'BackButton': 'Š‘ŃƒŃ‚Š¾Š½ назаГ',\n\n\t'Cancel': 'ŠžŃ‚Š¼ŃŠ½Š°',\n\t'Close': 'Затвори',\n\t'Confirm': 'Š˜ŃŠŗŠ°Ń‚Šµ ли Га Š½Š°ŠæŃƒŃŠ½ŠµŃ‚е?',\n\t'Credits': 'ŠŠ°Š“ŠæŠøŃŠø',\n\n\t'Delete': 'Š˜Š·Ń‚Ń€ŠøŠ¹',\n\t'DialogLogButton': 'Покажи Š“ŠøŠ°Š»Š¾Š³Š¾Š²ŠøŃ Гневник',\n\n\t'FullScreen': 'Š¦ŃŠ» Екран',\n\n\t'Gallery': 'Š“Š°Š»ŠµŃ€ŠøŃ',\n\n\t'Help': 'ŠŸŠ¾Š¼Š¾Ń‰',\n\t'Hide': 'Дкрий',\n\t'HideButton': 'Дкрий текстовото поле',\n\n\t'iOSAudioWarning': 'АуГио настройки не са ŃŃŠŠ²Š¼ŠµŃŃ‚ŠøŠ¼Šø с iOS.',\n\n\t'KeyboardShortcuts': 'Клавишни комбинации',\n\n\t'Language': 'Език',\n\t'Load': 'ЗареГи',\n\t'LoadAutoSaveSlots': 'Авто ŃŃŠŃ…Ń€Š°Š½ŠµŠ½Šø записи',\n\t'LoadButton': 'ŠžŃ‚Š²Š¾Ń€Šø Екран ЗареГи',\n\t'Loading': 'ЗарежГане',\n\t'LoadingMessage': 'Š˜Š·Ń‡Š°ŠŗŠ°Š¹ за зарежГане на активите',\n\t'LoadSlots': 'Š”ŃŠŃ…Ń€Š°Š½ŠµŠ½Šø Записи',\n\t'LocalStorageWarning': 'Локално ŃŃŠŃ…Ń€Š°Š½ŠµŠ½ŠøŠµ не е налично в рамките на Š±Ń€Š°ŃƒŠ·ŃŠŃ€Š°',\n\t'Log': 'Дневник',\n\n\t'Music': 'Дила на Š—Š²ŃƒŠŗŠ°ā€‘ŠœŃƒŠ·ŠøŠŗŠ°',\n\n\t'NewContent': 'ŠŠ°Š»ŠøŃ‡Š½Š¾ е ново ŃŃŠŠ“ŃŠŃ€Š¶Š°Š½ŠøŠµ, Š¼Š¾Š»Ń обновете страницата за Га приложите най-новата Š²ŠµŃ€ŃŠøŃ',\n\t'NoSavedGames': 'ŠŃŠ¼Š° ŃŃŠŃ…Ń€Š°Š½ŠµŠ½Šø записи',\n\t'NoAutoSavedGames': 'ŠŃŠ¼Š° Š°Š²Ń‚Š¾ā€‘ŃŃŠŃ…Ń€Š°Š½ŠµŠ½Šø записи',\n\t'NoDialogsAvailable': 'Липсват Гиалози. Диалозите ще се ŠæŠ¾ŃŠ²Š°Ń‚ Ń‚ŃƒŠŗ при ŠæŠ¾ŃŠ²Š°Ń‚Š° им',\n\n\t'OK': 'ŠžŠš',\n\t'OrientationWarning': 'ŠœŠ¾Š»Ń, Š·Š°Š²ŃŠŃ€Ń‚ŠµŃ‚Šµ ŃƒŃŃ‚Ń€Š¾Š¹ŃŃ‚Š²Š¾Ń‚Š¾, за Га играете',\n\t'Overwrite': 'ŠŸŃ€ŠµŠ·Š°ŠæŠøŃŠ²Š°Š½Šµ',\n\n\t'QuickButtons': 'Š‘ŃŠŃ€Š·Šø ŠœŠµŠ½ŃŽā€‘Š±ŃƒŃ‚Š¾Š½Šø',\n\t'QuickMenu': 'Š‘ŃŠŃ€Š·Š¾ ŠœŠµŠ½ŃŽ',\n\t'Quit': 'Š˜Š·Ń…Š¾Š“',\n\t'QuitButton': 'ŠŠ°ŠæŃƒŃŠ½ŠµŃ‚Šµ Š˜Š³Ń€Š°Ń‚Š°',\n\n\t'Resolution': 'Š ŠµŠ·Š¾Š»ŃŽŃ†ŠøŃ',\n\n\t'Save': 'Š”ŃŠŃ…Ń€Š°Š½Šø',\n\t'SaveButton': 'ŠžŃ‚Š²Š¾Ń€Šø Екран Записи',\n\t'SaveInSlot': 'Š”ŃŠŃ…Ń€Š°Š½Šø в Длот',\n\t'SelectYourLanguage': 'Š˜Š·Š±ŠµŃ€ŠµŃ‚Šµ езика си',\n\t'Settings': 'ŠšŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø',\n\t'SettingsButton': 'ŠžŃ‚Š²Š¾Ń€Šø екран ŠšŠ¾Š½Ń„ŠøŠ³ŃƒŃ€Š°Ń†ŠøŠø',\n\t'Show': 'Покажи',\n\t'Skip': 'ŠŸŃ€ŠµŃŠŗŠ¾Ń‡Šø',\n\t'SkipButton': 'Режим на прескачане',\n\t'SlotDeletion': 'ŠŠ°ŠøŃŃ‚ŠøŠ½Š° ли желаете Га изтриете този слот?',\n\t'SlotOverwrite': 'Желаете ли Га ŠæŃ€ŠµŠ·Š°ŠæŠøŃˆŠµŃ‚е този слот?',\n\t'Sound': 'Дила на Š—Š²ŃƒŠŗŠ°',\n\t'Start': 'ŠŠ°Ń‡Š°Š»Š¾',\n\t'Stop': 'Дпри',\n\n\t'TextSpeed': 'Š‘ŃŠŃ€Š·ŠøŠ½Š° на текста',\n\n\t'Video': 'Дила на ВиГео',\n\t'Voice': 'Дила на Гласа',\n\n\t'Windowed': 'ŠŸŃ€Š¾Š·Š¾Ń€ŠµŃ†'\n};", + "import { $_, DOM } from '@aegis-framework/artemis';\nimport { Component as PandoraComponent, Properties } from '@aegis-framework/pandora';\nimport type { Configuration, StaticComponent } from './types';\nimport type Monogatari from '../monogatari';\nimport type { VisualNovelEngine } from './types/Monogatari';\n\n/**\n * A component represents an object or content in the game such as screens, menus\n * and all other visual or structural elements.\n *\n * The life cycle of an component follows the Mounting cycle for actions.\n *\n * The mounting cycle has 3 steps:\n *\n * 1. Setup - Here the action needs to set up everything it will need for working\n * generally, in this section a component will generally add its HTML\n * content to the global Monogatari object and will set up any needed\n * configuration or state variables.\n *\n * 2. Bind - Once the component has been setup, its time to bind all the necessary\n * event listeners or perform more operations on the DOM once all elements\n * have been setup. Components will generally bind all the listeners needed\n * for their inner elements to work correctly.\n *\n * 3. Init - Finally, once the component was setup and it performed all the needed\n * bindings, it may start performing its operations and perform all\n * further needed operations.\n *\n * @class Component\n * @template P - The type of the component's props (defaults to Properties)\n * @template S - The type of the component's state (defaults to Properties)\n */\nclass Component

extends PandoraComponent {\n\t/**\n\t * Marks the component as experimental, meaning it's not stable and should not\n\t * be used in production.\n\t */\n\tstatic _experimental: boolean = false;\n\n\t/**\n\t * If needed, every component should declare its configuration as follows. This\n\t * configuration object should be used to store component-specific settings as well\n\t * as other objects/assets used by the action. If any specific object needs\n\t * recurrent access such as the declarations in the script.js file, provinding\n\t * a static function for that specific object could be great.\n\t *\n\t * IMPORTANT: Subclasses should declare their own `static _configuration = {}`\n\t * to avoid sharing state with other components.\n\t */\n\tstatic _configuration: Configuration = {};\n\n\tstatic _priority: number = 0;\n\n\t/**\n\t * Reference to the Monogatari engine (set by engine on registration)\n\t */\n\tstatic engine: VisualNovelEngine;\n\n\t/**\n\t * Parent component reference\n\t */\n\t_parent?: PandoraComponent;\n\n\tconstructor () {\n\t\tsuper();\n\t}\n\n\t/**\n\t * @static configuration - A simple function providing access to the configuration\n\t * object of the function. If the component has a configuration object it must\n\t * also include this method.\n\t *\n\t * @param {Object|string} [object = null] - Object with which current\n\t * configuration will be updated with (i.e. Object.assign) or a string to access\n\t * a property.\n\t *\n\t * @return {any} - If the parameter sent was a string, the function will\n\t * return the value of the property whose name matches the parameter. If no\n\t * parameter was sent, then the function will return the whole configuration\n\t * object.\n\t */\n\tstatic configuration (object: string | Configuration | null = null): Configuration | unknown {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn this._configuration[object];\n\t\t\t} else {\n\t\t\t\tthis._configuration = Object.assign({}, this._configuration, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._configuration;\n\t\t}\n\t}\n\n\tstatic all (): DOM {\n\t\treturn $_(this.tag);\n\t}\n\n\tstatic get (id: string): DOM {\n\t\treturn $_(`${this.tag} [data-instance=\"${id}\"]`);\n\t}\n\n\t/**\n\t * @static onStart - This function acts as an event listener for when the game\n\t * starts. If the component needs to do any particular activities when the game\n\t * starts, then this function should be implemented and it will be automatically\n\t * called once the player starts the game.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic async onStart (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static onLoad - This function acts as an event listener for when a game\n\t * is loaded. If the component needs to perform any particular actions such as\n\t * restoring some state (i.e. showing images, playing media, etc.) when a game\n\t * is loaded, this function must be implemented and it will be automatically\n\t * called when a game is loaded.\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic async onLoad (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static setup - The setup is the first step of the Mounting cycle, all\n\t * operations required for the component's setup should be implemented here.\n\t *\n\t * @return {Promise} - Result of the setup operation\n\t */\n\tstatic async setup (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static shouldProceed - Either when the user clicks in the game to proceed or\n\t * the autoPlay feature is ready to go on, Monogatari will first check with\n\t * all actions if it's ok to proceed. Every action should implement its own\n\t * logic for it according to its requirements.\n\t *\n\t * @param {Object} options - Options for proceeding\n\t * @param {boolean} options.userInitiated - Whether the proceed was initiated by user click\n\t * @param {boolean} options.skip - Whether skip mode is active\n\t * @param {boolean} options.autoPlay - Whether auto-play mode is active\n\t * @return {Promise} - Resolved if proceeding is alright or rejected if its not\n\t */\n\tstatic async shouldProceed (_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean }): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.shouldProceed());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static willProceed - Once the shouldProceed check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game proceeding.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic async willProceed (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.willProceed());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static shouldRollback - Similarly to the shouldProceed () function, this one takes\n\t * action when the player tries to go back in the game.Monogatari will first\n\t * check with all actions if it's ok to go back. Every action should implement\n\t * its own logic for it according to its requirements.\n\t *\n\t * @return {Promise} - Resolved if going back is alright or rejected if its not\n\t */\n\tstatic async shouldRollback (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.shouldRollback());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static willRollback - Once the shouldRollback check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game reverting the previous action\n\t *\n\t * @return {Promise}\n\t */\n\tstatic async willRollback (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.willRollback());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static bind - The binding is the second step of the Mounting cycle, all\n\t * operations related to event bindings or other sort of binding with the\n\t * HTML content generated in the setup phase should be implemented here.\n\t * @return {Promise}\n\t */\n\tstatic async bind (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static init - The initialization is the last step of the Mounting cycle,\n\t * all final operations should be implemented here.\n\t *\n\t * @param {string} selector - The CSS selector with which Monogatari has been\n\t * initialized\n\t * @return {Promise} - Result of the initialization operation\n\t */\n\tstatic async init (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static onSave - This function acts as an event listener for when a game\n\t * is saved. If the component needs to perform any particular actions when that\n\t * happens, this function must be implemented and it will be automatically\n\t * called when a game is saved.\n\t *\n\t * @param {Object} slot - The slot object that has just been saved.\n\t * @param {string} slot.key - The key used to save the slot in the local storage\n\t * @param {Object} slot.value - The actual value saved\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic async onSave (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static reset - When a game ends using the 'end' statement or before a game\n\t * is loaded, Monogatari will perform a reset on all its components. If the component\n\t * needs to reset a state or any other variables/elements to an initial state\n\t * once a game is over or a new one is loaded, the logic for it must be implemented\n\t * here and the function will be automatically called when needed.\n\t *\n\t * @return {Promise} - Result of the reset operation\n\t */\n\tstatic async onReset (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.onReset());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * Get all instances of this component, optionally iterating with callback\n\t */\n\tstatic instances (callback: ((instance: any) => void) | null = null): ReturnType {\n\t\tif (typeof callback === 'function') {\n\t\t\treturn $_(this.tag).each(callback as any);\n\t\t}\n\t\treturn $_(this.tag);\n\t}\n\n\t// =========================================\n\t// Instance Methods\n\t// =========================================\n\n\t/**\n\t * Reset this instance's state\n\t */\n\tasync onReset (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static element - Returns this component's element as an Artemis DOM\n\t * instance, using the result of the `selector ()` function as the selector\n\t *\n\t * @returns {DOM} - Artemis DOM instance\n\t */\n\telement (): ReturnType {\n\t\treturn $_(this);\n\t}\n\n\t/**\n\t * Remove this component from the DOM\n\t */\n\toverride remove (): void {\n\t\tthis.parentNode?.removeChild(this);\n\t}\n\n\t/**\n\t * Find an instance by ID within this component type\n\t */\n\tinstance (id: string): ReturnType {\n\t\tconst ctor = this.constructor as StaticComponent;\n\t\treturn $_(`${ctor.tag}[data-${ctor.name.toLowerCase()}=\"${id}\"`);\n\t}\n\n\t/**\n\t * Get or set the parent component\n\t */\n\tparent (component?: PandoraComponent): PandoraComponent | undefined | void {\n\t\tif (typeof component !== 'undefined') {\n\t\t\tthis._parent = component;\n\t\t} else {\n\t\t\treturn this._parent;\n\t\t}\n\t}\n\n\t/**\n\t * Get the engine reference\n\t */\n\tget engine (): VisualNovelEngine {\n\t\treturn (this.constructor as typeof Component).engine;\n\t}\n\n\tset engine (_value: VisualNovelEngine) {\n\t\tthrow new Error('Component engine reference is hold at static level and cannot be modified.');\n\t}\n\n\t/**\n\t * Check if it's ok to proceed\n\t */\n\tasync shouldProceed (): Promise {\n\t\t// Base implementation allows proceeding\n\t}\n\n\t/**\n\t * Respond to game proceeding\n\t */\n\tasync willProceed (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * Check if it's ok to go back\n\t */\n\tasync shouldRollback (): Promise {\n\t\t// Base implementation allows rollback\n\t}\n\n\t/**\n\t * Respond to game reverting\n\t */\n\tasync willRollback (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * Called when the component is connected to the DOM\n\t */\n\tasync connectedCallback (): Promise {\n\t\t// Always add the animated class for all the components\n\t\t// TODO: Let's be honest, this is stupid.\n\t\tthis.classList.add('animated');\n\n\t\treturn super.connectedCallback();\n\t}\n\n\t/**\n\t * Attempts to find a content element inside of this\n\t * component or its children (light DOM)\n\t *\n\t * @param name - Name of the content element to find\n\t * @returns An Artemis DOM instance with the found elements\n\t */\n\tcontent (name: string): DOM {\n\t\treturn $_(this).find(`[data-content=\"${name}\"]`);\n\t}\n}\n\nexport default Component;\n", + "import Component from '../../lib/Component';\n\nclass AlertDialog extends Component {\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.props = {\n\t\t\tactive: true,\n\t\t\tmessage: '',\n\t\t\tcontext: null,\n\t\t\teditable: false,\n\t\t\tactions: []\n\t\t};\n\t}\n\n\tasync onPropsUpdate (property: string, oldValue: unknown, newValue: unknown) {\n\t\tif (property === 'active') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.classList.toggle ('modal--active');\n\t\t\t}\n\t\t}\n\t}\n\n\tasync willMount () {\n\t\tthis.classList.add ('modal', 'modal--active');\n\t}\n\n\trender () {\n\t\tconst { message, context, editable, actions } = this.props;\n const key = message as string;\n\n return `\n\t\t\t

\n\t\t\t\t

${this.engine.string(key)}

\n\t\t\t\t${context ? `${editable ? `` : `${context}`}` : ''}\n\t\t\t\t${Array.isArray(actions) ? `
\n\t\t\t\t\t${actions.map (action => ``).join('')}\n\t\t\t\t
` : ''}\n\t\t\t
\n\t\t`;\n\t}\n}\n\n\nAlertDialog.tag = 'alert-modal';\n\n\nexport default AlertDialog;", + "import type { Properties } from '@aegis-framework/pandora';\nimport { Util } from '@aegis-framework/artemis';\nimport Component from '../../lib/Component';\n\n/**\n * Canvas object configuration\n */\nexport interface CanvasObject {\n\tstart: (engine: unknown, layers: Record, props: Record, state: Record, container: CanvasContainer) => unknown;\n\tstop: () => void;\n\trestart: () => void;\n\tlayers: string[];\n\tstate: Record;\n\tprops: Record;\n}\n\n/**\n * Props for CanvasContainer component\n */\nexport interface CanvasContainerProps extends Properties {\n\tmode: string | null;\n\tcanvas: string | null;\n\tcharacter: string | null;\n\tobject: CanvasObject;\n\tclasses: string[];\n}\n\n/**\n * State for CanvasContainer component\n */\nexport interface CanvasContainerState extends Properties {\n\tlayers: Record;\n}\n\nclass CanvasContainer extends Component {\n\tstatic override tag = 'canvas-container';\n\n\tlayers: Record;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tmode: null,\n\t\t\tcanvas: null,\n\t\t\tcharacter: null,\n\t\t\tobject: {\n\t\t\t\tstart: () => {},\n\t\t\t\tstop: () => {},\n\t\t\t\trestart: () => {},\n\t\t\t\tlayers: [],\n\t\t\t\tstate: {},\n\t\t\t\tprops: {}\n\t\t\t},\n\t\t\tclasses: []\n\t\t};\n\n\t\tthis.layers = {};\n\t}\n\n\toverride onPropsUpdate(_property: string, _oldValue: unknown, _newValue: unknown): Promise {\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willMount(): Promise {\n\t\tconst { mode, canvas, classes } = this.props;\n\n\t\tfor (const className of classes) {\n\t\t\tif (className) {\n\t\t\t\tthis.classList.add(className);\n\t\t\t}\n\t\t}\n\n\t\tif (mode === 'character') {\n\t\t\tthis.dataset.character = canvas ?? '';\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride didMount(): Promise {\n\t\tconst { object } = this.props;\n\n\t\tif (Array.isArray(object.layers)) {\n\t\t\tif (object.layers.length > 0) {\n\t\t\t\tfor (const layer of object.layers) {\n\t\t\t\t\tthis.layers[layer] = this.querySelector(`canvas[data-layer=\"${layer}\"]`);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tthis.layers.base = this.querySelector('canvas[data-layer=\"base\"]');\n\t\t}\n\n\t\treturn Util.callAsync(object.start as (...args: unknown[]) => unknown, this.engine, this.layers, object.props, object.state, this) as Promise;\n\t}\n\n\toverride render(): string {\n\t\tconst { object } = this.props;\n\n\t\tlet layers = '';\n\n\t\tif (Array.isArray(object.layers)) {\n\t\t\tif (object.layers.length > 0) {\n\t\t\t\tlayers = object.layers.map(l => ``).join('');\n\t\t\t}\n\t\t} else {\n\t\t\tlayers = '';\n\t\t}\n\n\t\treturn `\n\t\t\t
${layers}
\n\t\t`;\n\t}\n}\n\nexport default CanvasContainer;\n\n", + "import Component from '../../lib/Component';\nimport type TypeWriter from '../type-writer';\n\nclass CenteredDialog extends Component {\n\tstatic override tag = 'centered-dialog';\n\n\tconstructor () {\n\t\tsuper ();\n\t}\n\n\t/**\n\t * Cleanup any running type-writer animation before removal\n\t */\n\tprivate _cleanupTypeWriter (): void {\n\t\tconst typeWriter = this.querySelector('type-writer') as TypeWriter | null;\n\t\tif (typeWriter && typeof typeWriter.destroy === 'function') {\n\t\t\ttypeWriter.destroy();\n\t\t}\n\t}\n\n\toverride async willRollback () {\n\t\t// Clean up type-writer animation before removing\n\t\tthis._cleanupTypeWriter();\n\t\t// If a choice is visible right now, we can simply remove it and let the\n\t\t// game revert to the previous statement.\n\t\tthis.remove ();\n\t}\n\n\toverride async onReset () {\n\t\tthis._cleanupTypeWriter();\n\t\tthis.remove ();\n\t}\n\n\toverride async willUnmount () {\n\t\tthis._cleanupTypeWriter();\n\t}\n\n\toverride render (): string {\n\t\treturn `\n\t\t\t\n\t\t`;\n\t}\n}\n\nexport default CenteredDialog;", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\n\n/**\n * Character definition for sprite rendering\n */\nexport interface CharacterDefinition {\n\tlayers: string[];\n\tlayer_assets?: Record>;\n}\n\n/**\n * Layer state configuration\n */\nexport interface LayerState {\n\tasset: string;\n\tclasses: string[];\n}\n\n/**\n * Props for CharacterSprite component\n */\nexport interface CharacterSpriteProps extends Properties {\n\tcharacter: CharacterDefinition | string;\n\tsrc: string;\n\tdirectory: string;\n\twidth: number;\n\theight: number;\n\tratio: number;\n}\n\n/**\n * State for CharacterSprite component\n */\nexport interface CharacterSpriteState extends Properties {\n\tlayers: Record;\n}\n\nclass CharacterSprite extends Component {\n\tstatic override tag = 'character-sprite';\n\n\tprivate _resizeHandler: (() => void) | null = null;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tcharacter: '',\n\t\t\tsrc: '',\n\t\t\tdirectory: '',\n\t\t\twidth: 0,\n\t\t\theight: 0,\n\t\t\tratio: 0\n\t\t};\n\n\t\tthis.state = {\n\t\t\tlayers: {}\n\t\t};\n\t}\n\n\toverride onStateUpdate(property: string, _oldValue: unknown, _newValue: unknown): Promise {\n\t\tif (property === 'layers') {\n\t\t\treturn this.forceRender().then(() => {\n\t\t\t\tthis.resize();\n\t\t\t\treturn Promise.resolve();\n\t\t\t});\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onPropsUpdate(property: string, _oldValue: unknown, newValue: unknown, _oldObject: CharacterSpriteProps, newObject: CharacterSpriteProps): Promise {\n\t\tif (property === 'src') {\n\t\t\tif (typeof newValue === 'string' && newValue.trim() !== '') {\n\t\t\t\tconst img = document.createElement('img');\n\t\t\t\timg.src = newValue;\n\n\t\t\t\tthis.element().find('img:not(:first-child)').each((element) => {\n\t\t\t\t\telement.remove();\n\t\t\t\t});\n\n\t\t\t\tconst firstImg = this.element().find('img').get(0);\n\t\t\t\tif (firstImg) {\n\t\t\t\t\tfirstImg.setAttribute('src', newValue);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (property === 'width' || property === 'height') {\n\t\t\tconst { height, width } = newObject;\n\t\t\tthis.content('wrapper').style({\n\t\t\t\theight: `max(${height}px, 80vh)`,\n\t\t\t\twidth: `max(${width}px, 80vh)`\n\t\t\t});\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willMount(): Promise {\n\t\treturn Promise.resolve();\n\t}\n\n\toverride didMount(): Promise {\n\t\tthis._resizeHandler = () => {\n\t\t\tthis.resize();\n\t\t};\n\t\twindow.addEventListener('resize', this._resizeHandler);\n\n\t\tthis.resize();\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willUnmount(): Promise {\n\t\tif (this._resizeHandler) {\n\t\t\twindow.removeEventListener('resize', this._resizeHandler);\n\t\t\tthis._resizeHandler = null;\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\tresize(): void {\n\t\tconst { width, height, ratio } = this.props;\n\n\t\tconst actualHeight = parseInt(getComputedStyle(this).height.replace('px', ''));\n\t\tconst realWidth = actualHeight * ratio;\n\n\t\tthis.content('wrapper').style({\n\t\t\twidth: `${realWidth}px`\n\t\t});\n\n\t\tthis.content('wrapper').find('[data-layer]').each((layer) => {\n\t\t\tconst layerEl = layer as HTMLImageElement;\n\t\t\tlayerEl.onload = () => {\n\t\t\t\tif (layerEl.naturalWidth !== width) {\n\t\t\t\t\tlayerEl.style.width = `${(layerEl.naturalWidth * realWidth) / width}px`;\n\t\t\t\t}\n\n\t\t\t\tif (layerEl.naturalHeight !== height) {\n\t\t\t\t\tlayerEl.style.height = 'auto';\n\t\t\t\t}\n\t\t\t};\n\t\t});\n\t}\n\n\toverride render(): Promise {\n\t\tconst { character, directory } = this.props;\n\n\t\tif (typeof character === 'string') {\n\t\t\treturn Promise.resolve('
');\n\t\t}\n\n\t\tconst promises: Promise<{ layer: string; image: HTMLImageElement; classes: string[]; sprite: string }>[] = [];\n\n\t\tfor (const layer of character.layers) {\n\t\t\tconst localLayer = this.state.layers[layer];\n\n\t\t\tif (typeof localLayer === 'object' && localLayer !== null) {\n\t\t\t\tconst { classes } = localLayer;\n\t\t\t\tlet asset: string = localLayer.asset;\n\n\t\t\t\tif (typeof character.layer_assets === 'object' && character.layer_assets !== null) {\n\t\t\t\t\tconst layerAssets = character.layer_assets[layer];\n\n\t\t\t\t\tif (typeof layerAssets === 'object' && layerAssets !== null) {\n\t\t\t\t\t\tif (typeof layerAssets[asset] === 'string') {\n\t\t\t\t\t\t\tasset = layerAssets[asset];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (typeof asset === 'string') {\n\t\t\t\t\tpromises.push(new Promise((resolve) => {\n\t\t\t\t\t\tconst image = new Image();\n\n\t\t\t\t\t\timage.src = `${directory}${asset}`;\n\n\t\t\t\t\t\timage.onload = function() {\n\t\t\t\t\t\t\tresolve({ layer, image, classes, sprite: localLayer.asset });\n\t\t\t\t\t\t};\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.all(promises).then((assets) => {\n\t\t\treturn new Promise((resolve) => {\n\t\t\t\tconst wrapper = document.createElement('div');\n\t\t\t\twrapper.dataset.content = 'wrapper';\n\n\t\t\t\tlet maxHeight = 0;\n\t\t\t\tlet maxWidth = 0;\n\n\t\t\t\tfor (const asset of assets) {\n\t\t\t\t\tconst { image, layer, classes, sprite } = asset;\n\n\t\t\t\t\tconst height = image.naturalHeight;\n\t\t\t\t\tconst width = image.naturalWidth;\n\n\t\t\t\t\tif (height > maxHeight) {\n\t\t\t\t\t\tmaxHeight = height;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (width > maxWidth) {\n\t\t\t\t\t\tmaxWidth = width;\n\t\t\t\t\t}\n\n\t\t\t\t\timage.style.zIndex = String(character.layers.indexOf(layer));\n\t\t\t\t\timage.dataset.layer = layer;\n\t\t\t\t\timage.dataset.sprite = sprite;\n\n\t\t\t\t\timage.classList.add(...classes);\n\n\t\t\t\t\twrapper.appendChild(image);\n\t\t\t\t}\n\n\t\t\t\tthis.setProps({\n\t\t\t\t\tratio: maxWidth / maxHeight,\n\t\t\t\t\theight: maxHeight,\n\t\t\t\t\twidth: maxWidth\n\t\t\t\t});\n\n\t\t\t\twrapper.style.height = `${maxHeight}px`;\n\n\t\t\t\tresolve(wrapper.outerHTML);\n\t\t\t});\n\t\t});\n\t}\n}\n\nexport default CharacterSprite;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\n\n/**\n * Choice item definition\n */\nexport interface ChoiceItem {\n\tText: string;\n\tDo: string;\n\tClass?: string;\n\tClickable?: () => boolean | Promise;\n\t_key: string;\n}\n\n/**\n * Props for ChoiceContainer component\n */\nexport interface ChoiceContainerProps extends Properties {\n\tchoices: ChoiceItem[];\n\tclasses: string;\n}\n\nclass ChoiceContainer extends Component {\n\tstatic override tag = 'choice-container';\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tchoices: [],\n\t\t\tclasses: ''\n\t\t};\n\t}\n\n\toverride shouldProceed(): Promise {\n\t\t// If a choice is currently being displayed, the player should not be able\n\t\t// to advance until one is chosen.\n\t\treturn Promise.reject('Choice Container awaiting for user input.');\n\t}\n\n\toverride willRollback(): Promise {\n\t\t// If a choice is visible right now, we can simply remove it and let the\n\t\t// game revert to the previous statement.\n\t\tthis.remove();\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onReset(): Promise {\n\t\tthis.remove();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willMount(): Promise {\n\t\t// Check if a list of classes has been defined and if the list is not empty\n\t\tif (typeof this.props.classes === 'string' && this.props.classes !== '') {\n\t\t\tthis.props.classes.split(' ').forEach((className) => {\n\t\t\t\tif (className) {\n\t\t\t\t\tthis.classList.add(className);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\toverride didMount(): Promise {\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): Promise {\n\t\tconst choices = this.props.choices.map((choice) => {\n\t\t\tconst choiceText = this.engine.replaceVariables(choice.Text);\n\n\t\t\tif (typeof choice.Clickable === 'function') {\n\t\t\t\treturn new Promise((resolve) => {\n\t\t\t\t\tthis.engine.assertAsync(choice.Clickable!, this.engine).then(() => {\n\t\t\t\t\t\tresolve(``);\n\t\t\t\t\t}).catch(() => {\n\t\t\t\t\t\tresolve(``);\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t\treturn Promise.resolve(``);\n\t\t});\n\n\t\treturn Promise.all(choices).then((choiceButtons) => `\n\t\t\t
\n\t\t\t\t${choiceButtons.join('')}\n\t\t\t
\n\t\t`);\n\t}\n}\n\nexport default ChoiceContainer;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from './Component';\n\n\nexport interface ScreenState extends Properties {\n\topen: boolean;\n}\n\n/**\n * ScreenComponent is a base class for screen-type components.\n * Screens can be opened and closed, with visual state managed automatically.\n *\n * @class ScreenComponent\n * @template P - The type of the component's props (must extend Properties)\n * @template S - The type of the component's state (must extend ScreenState)\n */\nclass ScreenComponent<\n\tP extends Properties = Properties,\n\tS extends ScreenState = ScreenState\n> extends Component {\n\tconstructor () {\n\t\tsuper();\n\n\t\t// Cast needed because we only initialize base properties\n\t\t// Subclasses will add their own properties in their constructor\n\t\tthis.state = {\n\t\t\topen: false\n\t\t} as S;\n\t}\n\n\tasync willMount (): Promise {\n\t\tthis.dataset.screen = (this.constructor as typeof ScreenComponent).tag.replace('-screen', '');\n\t}\n\n\tasync onStateUpdate (property: string, oldValue: unknown, newValue: unknown): Promise {\n\t\tif (property === 'open') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.classList.add('active');\n\t\t\t} else {\n\t\t\t\tthis.classList.remove('active');\n\t\t\t}\n\t\t}\n\t}\n\n\trender (): string {\n\t\treturn '';\n\t}\n}\n\nexport default ScreenComponent;\nexport { ScreenComponent };\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport ScreenComponent, { ScreenState } from '../../lib/ScreenComponent';\n\n/**\n * Credits content type - can be a string or a record of credit items\n */\nexport type CreditsContent = string | Record;\n\n/**\n * Credits configuration\n */\nexport type CreditsConfiguration = Record;\n\n/**\n * Props for CreditsScreen component\n */\nexport interface CreditsScreenProps extends Properties {\n\tcredits: CreditsConfiguration;\n}\n\nclass CreditsScreen extends ScreenComponent {\n\tstatic override tag = 'credits-screen';\n\n\tstatic override init(): Promise {\n\t\tif (Object.keys(this.engine.configuration('credits') as object).length > 0) {\n\t\t\tconst mainMenu = this.engine.component('main-menu') as { addButton?: (btn: { string: string; icon: string; data: { action: string; open: string } }) => void } | undefined;\n\t\t\tif (mainMenu?.addButton) {\n\t\t\t\tmainMenu.addButton({\n\t\t\t\t\tstring: 'Credits',\n\t\t\t\t\ticon: '',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'open-screen',\n\t\t\t\t\t\topen: 'credits'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tcredits: {}\n\t\t};\n\t}\n\n\toverride willMount(): Promise {\n\t\tsuper.willMount();\n\t\tthis.setProps({\n\t\t\tcredits: this.engine.configuration('credits') as CreditsConfiguration\n\t\t});\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\tconst items = Object.keys(this.props.credits).map((section) => {\n\t\t\tlet html = `

${this.engine.replaceVariables(section)}

`;\n\t\t\tconst content = this.props.credits[section];\n\n\t\t\tif (typeof content === 'string') {\n\t\t\t\treturn `

${content}

`;\n\t\t\t}\n\n\t\t\tfor (const key of Object.keys(content)) {\n\t\t\t\tconst title = this.engine.replaceVariables(key);\n\t\t\t\tlet value: string | string[] = content[key];\n\n\t\t\t\tif (value instanceof Array) {\n\t\t\t\t\tvalue = value.join(', ');\n\t\t\t\t}\n\n\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\tvalue = this.engine.replaceVariables(value);\n\t\t\t\t}\n\n\t\t\t\tif (title.indexOf('_') === 0) {\n\t\t\t\t\thtml += `

${value}

`;\n\t\t\t\t} else {\n\t\t\t\t\thtml += `

${title}${value}

`;\n\t\t\t\t}\n\t\t\t}\n\t\t\thtml += '
';\n\n\t\t\treturn html;\n\t\t}).join('');\n\n\t\treturn `\n\t\t\t\n\t\t\t

Credits

\n\t\t\t
\n\t\t\t\t${items}\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default CreditsScreen;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\nimport type { Character } from '../../lib/types';\nimport type { DOM } from '@aegis-framework/artemis';\n/**\n * Dialog entry for the log\n */\nexport interface DialogEntry {\n\tid: string;\n\tcharacter: Character;\n\tdialog: string;\n}\n\n/**\n * State for DialogLog component\n */\nexport interface DialogLogState extends Properties {\n\tactive: boolean;\n}\n\nclass DialogLog extends Component {\n\tstatic override tag = 'dialog-log';\n\n\tstatic override setup(): Promise {\n\t\tconst quickMenu = this.engine.component('quick-menu') as { addButtonAfter?: (after: string, btn: { string: string; icon: string; data: { action: string } }) => void } | undefined;\n\n\t\tif (quickMenu?.addButtonAfter) {\n\t\t\tquickMenu.addButtonAfter('Hide', {\n\t\t\t\tstring: 'Log',\n\t\t\t\ticon: 'far fa-comments',\n\t\t\t\tdata: {\n\t\t\t\t\taction: 'dialog-log'\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\tstatic override bind(): Promise {\n\t\tthis.engine.registerListener('dialog-log', {\n\t\t\tcallback: (event: Event, element: DOM) => {\n\t\t\t\tthis.instances((element: DialogLog) => {\n\t\t\t\t\tconst active = element.state.active;\n\t\t\t\t\telement.setState({\n\t\t\t\t\t\tactive: !active\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.state = {\n\t\t\tactive: false\n\t\t};\n\t}\n\n\toverride onReset(): Promise {\n\t\tthis.content('log').html('
No dialogs available. Dialogs will appear here as they show up.
');\n\t\treturn Promise.resolve();\n\t}\n\n\twrite({ id, character, dialog }: DialogEntry): void {\n\t\tthis.content('placeholder').remove();\n\t\tif (id !== '_narrator' && id !== 'centered') {\n\t\t\tconst { name, color } = character;\n\t\t\tthis.content('log').append(`\n\t\t\t\t
\n\t\t\t\t\t${this.engine.replaceVariables(name ?? '')} \n\t\t\t\t\t

${dialog}

\n\t\t\t\t
\n\t\t\t`);\n\t\t} else {\n\t\t\tthis.content('log').append(`

${dialog}

`);\n\t\t}\n\t}\n\n\tpop(): void {\n\t\tconst last = this.content('log').find('[data-spoke]').last();\n\t\tif (last.exists()) {\n\t\t\tlast.remove();\n\t\t}\n\t}\n\n\toverride onStateUpdate(property: string, _oldValue: unknown, newValue: unknown): Promise {\n\t\tif (property === 'active') {\n\t\t\tthis.classList.toggle('modal--active');\n\n\t\t\tif (newValue === true) {\n\t\t\t\tconst log = this.content('log').get(0);\n\n\t\t\t\tif (log) {\n\t\t\t\t\tlog.scrollTop = log.scrollHeight;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willMount(): Promise {\n\t\tthis.classList.add('modal');\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\treturn `\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
No dialogs available. Dialogs will appear here as they show up.
\n\t\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default DialogLog;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport { $_ } from '@aegis-framework/artemis';\nimport ScreenComponent, { ScreenState } from '../../lib/ScreenComponent';\n\n/**\n * State for GalleryScreen component\n */\nexport interface GalleryScreenState extends ScreenState {\n\tunlocked: string[];\n}\n\nclass GalleryScreen extends ScreenComponent {\n\tstatic override tag = 'gallery-screen';\n\n\tstatic override bind(): Promise {\n\t\t// Now lets make it so that when a player clicks on one of the Images\n\t\t// of the gallery, the image gets shown. For that purpose, we'll use\n\t\t// create a function showImage(). You may notice we are not using a simple\n\t\t// $_().click function, instead we are using the 'on' function, this is\n\t\t// due to the images being generated automatically, we can't simply\n\t\t// attach the listener to them so we attach it to their parent (the\n\t\t// gallery) and then check if the click was actually on an image.\n\t\tconst self = this;\n\t\tthis.instances().on('click', '[data-image]', function(this: HTMLElement) {\n\t\t\tconst image = $_(this).closest('[data-image]').data('image') as string | undefined;\n\t\t\tif (image) {\n\t\t\t\tself.showImage(image);\n\t\t\t}\n\t\t});\n\n\t\t// This listener will make it so that any click on the image viewer\n\t\t// closes it\n\t\tthis.instances().on('click', '[data-ui=\"image-viewer\"]', () => {\n\t\t\tthis.instances().find('[data-ui=\"image-viewer\"]').removeClass('modal--active');\n\t\t\tthis.instances().find('[data-ui=\"image-viewer\"] figure').style('background-image', '');\n\t\t});\n\t\treturn Promise.resolve();\n\t}\n\n\tstatic override init(): Promise {\n\t\tif (Object.keys(this.engine.assets('gallery') ?? {}).length > 0) {\n\t\t\tconst mainMenu = this.engine.component('main-menu') as (typeof import('../../lib/MenuComponent').MenuComponent) | undefined;\n\t\t\tif (mainMenu && 'addButton' in mainMenu) {\n\t\t\t\t(mainMenu as any).addButton({\n\t\t\t\t\tstring: 'Gallery',\n\t\t\t\t\ticon: '',\n\t\t\t\t\tdata: {\n\t\t\t\t\t\taction: 'open-screen',\n\t\t\t\t\t\topen: 'gallery'\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\t// Hide Gallery if there are no images defined.\n\t\t\tthis.instances().remove();\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\t// A simple function to show an image, this will activate the image viewer\n\t// and set the image as a background for it.\n\tstatic showImage(image: string): void {\n\t\tconst assetsPath = this.engine.setting('AssetsPath') as { root: string; gallery: string };\n\t\tconst directory = `${assetsPath.root}/${assetsPath.gallery}/`;\n\t\tthis.instances().find('[data-ui=\"image-viewer\"] figure').style('background-image', `url('${directory}${this.engine.asset('gallery', image)}')`);\n\t\tthis.instances().find('[data-ui=\"image-viewer\"]').addClass('modal--active');\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.state = {\n\t\t\topen: false,\n\t\t\tunlocked: []\n\t\t};\n\t}\n\n\toverride willMount(): Promise {\n\t\tsuper.willMount();\n\t\treturn this.engine.Storage.get('gallery').then((data: unknown) => {\n\t\t\tconst galleryData = data as { unlocked: string[] } | undefined;\n\t\t\tthis.setState({\n\t\t\t\tunlocked: galleryData?.unlocked ?? []\n\t\t\t});\n\t\t\treturn Promise.resolve();\n\t\t}).catch(() => {\n\t\t\treturn Promise.resolve();\n\t\t});\n\t}\n\n\toverride onStateUpdate(property: string, oldValue: unknown, newValue: unknown): Promise {\n\t\tsuper.onStateUpdate(property, oldValue, newValue);\n\n\t\tthis.engine.Storage.set('gallery', {\n\t\t\tunlocked: this.state.unlocked\n\t\t});\n\n\t\t// Update the gallery when an image gets unlocked or locked\n\t\tthis.forceRender();\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\tconst galleryAssets = this.engine.assets('gallery') ?? {};\n\t\tconst assetsPath = this.engine.setting('AssetsPath') as { root: string; gallery: string };\n\t\tconst images = Object.keys(galleryAssets).map((image) => {\n\t\t\tconst directory = `${assetsPath.root}/${assetsPath.gallery}/`;\n\n\t\t\t// Check if the image has been unlocked or not, if it hasn't then a\n\t\t\t// lock will be shown instead of the image.\n\t\t\tif (this.state.unlocked.includes(image)) {\n\t\t\t\treturn `
`;\n\t\t\t} else {\n\t\t\t\treturn '
';\n\t\t\t}\n\t\t}).join('');\n\n\t\treturn `\n\t\t\t\n\t\t\t\n\t\t\t

Gallery

\n\t\t\t
\n\t\t\t\t${images}\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default GalleryScreen;\n\n", + "import ScreenComponent from '../../lib/ScreenComponent';\n\nclass GameScreen extends ScreenComponent {\n\tstatic override async shouldProceed() {\n\t\tif (this.engine.element().find('[data-screen=\"game\"]').isVisible()) {\n\t\t\treturn;\n\t\t}\n\n\t\tthrow new Error('Game screen is not visible.');\n\t}\n\n\tstatic override async bind() {\n\t\tconst engine = this.engine;\n\n\t\tengine.on('click', '[data-screen=\"game\"] *:not([data-choice]):not([data-action]):not([data-delete])', async function (this: HTMLElement) {\n\t\t\t// Don't proceed if the click target is inside an element with data-action or data-delete\n // TODO: Should this have the choice one too?\n\t\t\tif (this.closest('[data-action]') || this.closest('[data-delete]')) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tengine.debug.debug('Next Statement Listener');\n\n\t\t\ttry {\n\t\t\t\tawait engine.proceed({ userInitiated: true, skip: false, autoPlay: false });\n\t\t\t} catch (e: unknown) {\n\t\t\t\tengine.debug.log(`Click Proceed Prevented\\nReason: ${e}`);\n\t\t\t}\n\t\t});\n\n\t\tif (engine.setting('AllowRollback') === true) {\n\t\t\tengine.registerListener('back', {\n\t\t\t\tkeys: 'left',\n\t\t\t\tcallback: async () => {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tawait engine.rollback();\n\t\t\t\t\t} catch (e: unknown) {\n\t\t\t\t\t\tengine.debug.log(`Rollback Prevented\\nReason: ${e}`);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\tasync didMount (): Promise {\n\t\tthis.engine.on('didUpdateState', (event: Event) => {\n const { detail: { newState: { label } } } = event as CustomEvent<{ newState: { label?: string } }>;\n\n\t\t\tif (label) {\n\t\t\t\tthis.element().data('label', label);\n\t\t\t}\n\t\t});\n\t}\n\n\trender (): string {\n\t\treturn `\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nGameScreen.tag = 'game-screen';\n\nexport default GameScreen;\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport ScreenComponent, { ScreenState } from '../../lib/ScreenComponent';\n\nclass HelpScreen extends ScreenComponent {\n\tstatic override tag = 'help-screen';\n\n\toverride render(): string {\n\t\treturn `\n\t\t\t\n\t\t\t

Help

\n\t\t\t
\n\t\t\t\t

To advance through the game, left-click or tap anywhere on the game screen or press the space key

\n
\n
\n

Quick Menu

\n
\n
\n \n
\n
\n Go back\n
\n
\n
\n
\n \n
\n
\n Hide the text box\n
\n
\n
\n
\n \n
\n
\n Show the dialog log\n
\n
\n
\n
\n \n
\n
\n Enable auto play\n
\n
\n
\n
\n \n
\n
\n Enter skip mode\n
\n
\n
\n
\n \n
\n
\n Open the Save Screen\n
\n
\n
\n
\n \n
\n
\n Open the Load Screen\n
\n
\n
\n
\n \n
\n
\n Open the Settings Screen\n
\n
\n
\n
\n \n
\n
\n Quit Game\n
\n
\n
\n
\n
\n

Keyboard Shortcuts

\n
\n
\n
\n \n
\n
\n Go Back\n
\n
\n
\n
\n H\n
\n
\n Hide the text box\n
\n
\n
\n
\n A\n
\n
\n Enable auto play\n
\n
\n
\n
\n S\n
\n
\n Enter skip mode\n
\n
\n
\n
\n ⇧ S\n
\n
\n Open the Save Screen\n
\n
\n
\n
\n ⇧ L\n
\n
\n Open the Load Screen\n
\n
\n
\n
\n ESC\n
\n
\n Open the Settings Screen.\n
\n
\n
\n
\n ⇧ Q\n
\n
\n Quit Game\n
\n
\n
\n
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default HelpScreen;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport { $_ } from '@aegis-framework/artemis';\nimport { FancyError } from '../../lib/FancyError';\nimport ScreenComponent, { ScreenState } from '../../lib/ScreenComponent';\n\n/**\n * Props for LanguageSelectionScreen component\n */\nexport interface LanguageSelectionScreenProps extends Properties {\n\tlanguages: string[];\n\ttimeout: number;\n}\n\n/**\n * State for LanguageSelectionScreen component\n */\nexport interface LanguageSelectionScreenState extends ScreenState {\n\tindex: number;\n}\n\nclass LanguageSelectionScreen extends ScreenComponent {\n\tstatic override tag = 'language-selection-screen';\n\n\tprivate timer: ReturnType | null = null;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tlanguages: Object.keys(this.engine._script),\n\t\t\ttimeout: 2000,\n\t\t};\n\n\t\tthis.state = {\n\t\t\topen: false,\n\t\t\tindex: 0,\n\t\t};\n\t}\n\n\toverride onStateUpdate(property: string, oldValue: unknown, newValue: unknown): Promise {\n\t\tsuper.onStateUpdate(property, oldValue, newValue);\n\n\t\tif (property === 'index') {\n\t\t\tconst { languages } = this.props;\n\t\t\tconst translation = this.engine.translation(languages[newValue as number]);\n\n\t\t\tif (typeof translation === 'object' && translation !== null) {\n\t\t\t\tconst translationObj = translation as Record;\n\t\t\t\tconst string = translationObj.SelectYourLanguage;\n\t\t\t\tif (typeof string === 'string') {\n\t\t\t\t\tthis.content('title').text(string);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\t// onPropsUpdate is inherited from parent class\n\n\toverride didMount(): Promise {\n\t\t// Prevent doing any extra work when the game is not multilanguage\n\t\tif (this.engine.setting('MultiLanguage') === true && this.engine.setting('LanguageSelectionScreen') === true) {\n\t\t\tconst { languages, timeout } = this.props;\n\t\t\tthis.timer = setTimeout(() => {\n\t\t\t\tif (this.element().isVisible()) {\n\t\t\t\t\tconst { index } = this.state;\n\t\t\t\t\tif (index >= (languages.length - 1)) {\n\t\t\t\t\t\tthis.setState({ index: 0 });\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.setState({ index: index + 1 });\n\t\t\t\t\t}\n\t\t\t\t\tthis.timer = setTimeout(() => this.didMount(), parseInt(String(timeout)));\n\t\t\t\t} else {\n\t\t\t\t\tif (this.timer) {\n\t\t\t\t\t\tclearTimeout(this.timer);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, parseInt(String(timeout)));\n\t\t}\n\n\t\tthis.element().on('click', '[data-language]', (event: Event) => {\n\t\t\tconst language = $_(event.target as HTMLElement).closest('[data-language]').data('language') as string | undefined;\n\t\t\tif (language) {\n\t\t\t\tthis.engine.preference('Language', language);\n\t\t\t\tthis.engine.localize();\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willUnmount(): Promise {\n\t\t// Clean up timer to prevent memory leaks\n\t\tif (this.timer) {\n\t\t\tclearTimeout(this.timer);\n\t\t\tthis.timer = null;\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\tlet buttons: string[] = [];\n\t\t// Prevent doing any extra work when the game is not multilanguage\n\t\tif (this.engine.setting('MultiLanguage') === true && this.engine.setting('LanguageSelectionScreen') === true) {\n\t\t\tconst { languages } = this.props;\n\t\t\tbuttons = languages.map((language) => {\n\t\t\t\tconst metadata = this.engine._languageMetadata[language];\n\n\t\t\t\tif (typeof metadata === 'object') {\n\t\t\t\t\tconst { icon } = metadata;\n\t\t\t\t\treturn `\n\t\t\t\t\t\t\n\t\t\t\t\t`;\n\t\t\t\t} else {\n\t\t\t\t\tFancyError.show('component:language_selection_screen:metadata_not_found', {\n\t\t\t\t\t\tlanguage: language,\n\t\t\t\t\t\tavailableLanguages: Object.keys(this.engine._script)\n\t\t\t\t\t});\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\t\t\t}).filter(Boolean);\n\t\t}\n\n\t\treturn `\n\t\t\t
\n\t\t\t\t

${this.engine.string('SelectYourLanguage')}

\n\t\t\t\t
\n\t\t\t\t\t${buttons.join('')}\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default LanguageSelectionScreen;\n\n", + "import ScreenComponent from '../../lib/ScreenComponent';\n\nclass LoadScreen extends ScreenComponent {\n static override tag = 'load-screen';\n\n\toverride render (): string {\n\n\t\tconst engine = this.engine;\n\n\t\tconst autoSaveInterval = engine.setting('AutoSave');\n\n\t\tconst autoSaveEnabled = typeof autoSaveInterval === 'number' && autoSaveInterval > 0 ;\n\n\t\treturn `\n\t\t\t\n\t\t\t

Load

\n\t\t\t
\n\t\t\t\t

Saved Games

\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t\t${autoSaveEnabled ? `
\n\t\t\t\t

Auto Saved Games

\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
` : ''}\n\t\t`;\n\t}\n}\n\nexport default LoadScreen;\n", + "import ScreenComponent, { ScreenState } from '../../lib/ScreenComponent';\nimport type { Properties } from '@aegis-framework/pandora';\n\ninterface LoadingScreenProps extends Properties {\n\tmax: number;\n}\n\ninterface LoadingScreenState extends ScreenState {\n\tprogress: number;\n}\n\nclass LoadingScreen extends ScreenComponent {\n static override tag = 'loading-screen';\n\tconstructor () {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tmax: 0\n\t\t};\n\n\t\tthis.state = {\n\t\t\topen: false,\n\t\t\tprogress: 0\n\t\t};\n\t}\n\n\toverride async didMount() {\n const engine = this.engine;\n\n\t\tengine.on('willPreloadAssets', () => this.setState({ open: true }));\n\t\tengine.on('assetQueued', () => this.setProps({ max: this.props.max + 1 }));\n engine.on('didPreloadAssets', () => this.setState({ open: false }));\n\t\tengine.on('assetLoaded', () => this.setState({ progress: this.state.progress + 1 }));\n\t}\n\n\toverride async onStateUpdate (property: string, oldValue: unknown, newValue: unknown) {\n\t\tsuper.onStateUpdate(property, oldValue, newValue);\n\n\t\tif (property === 'progress') {\n\t\t\tthis.content('progress').value(newValue as string);\n\t\t}\n\t}\n\n\toverride async onPropsUpdate (property: string, _oldValue: unknown, newValue: unknown) {\n\t\tif (property === 'max') {\n\t\t\tthis.content('progress').attribute('max', newValue as number);\n\t\t}\n\t}\n\n\toverride render (): string {\n\t\treturn `\n\t\t\t
\n\t\t\t\t

Loading

\n\t\t\t\t\n\t\t\t\tWait while the assets are loaded.\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default LoadingScreen;\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from './Component';\nimport type { MenuButton } from './types';\n\n/**\n * MenuComponent is a base class for menu-type components.\n * Menus manage a collection of buttons that can be dynamically added, removed, or reordered.\n *\n * @class MenuComponent\n * @template P - The type of the component's props (must extend Properties)\n * @template S - The type of the component's state (must extend Properties)\n */\nclass MenuComponent<\n\tP extends Properties = Properties,\n\tS extends Properties = Properties\n> extends Component {\n\tstatic override tag: string = 'menu-component';\n\t/**\n\t * Add a button to the menu\n\t */\n\tstatic addButton (button: MenuButton): void {\n\t\tthis.engine.configuration(this.tag, {\n\t\t\tbuttons: [...this.buttons(), button]\n\t\t});\n\n\t\tthis.onConfigurationUpdate();\n\t}\n\n\t/**\n\t * Add a button after another button\n\t */\n\tstatic addButtonAfter (after: string, button: MenuButton): void {\n\t\tconst index = this.buttons().findIndex((b: MenuButton) => b.string === after);\n\t\tconst buttons = [...this.buttons()];\n\n\t\tif (index > -1) {\n\t\t\tbuttons.splice(index + 1, 0, button);\n\n\t\t\tthis.engine.configuration(this.tag, {\n\t\t\t\tbuttons\n\t\t\t});\n\n\t\t\tthis.onConfigurationUpdate();\n\t\t}\n\t}\n\n\t/**\n\t * Add a button before another button\n\t */\n\tstatic addButtonBefore (before: string, button: MenuButton): void {\n\t\tconst index = this.buttons().findIndex((b: MenuButton) => b.string === before);\n\t\tconst buttons = [...this.buttons()];\n\n\t\tif (index > -1) {\n\t\t\tbuttons.splice(index, 0, button);\n\n\t\t\tthis.engine.configuration(this.tag, {\n\t\t\t\tbuttons\n\t\t\t});\n\n\t\t\tthis.onConfigurationUpdate();\n\t\t}\n\t}\n\n\t/**\n\t * Remove a button by its string identifier\n\t */\n\tstatic removeButton (string: string): void {\n\t\tthis.engine.configuration(this.tag, {\n\t\t\tbuttons: this.buttons().filter((button: MenuButton) => button.string !== string)\n\t\t});\n\n\t\tthis.onConfigurationUpdate();\n\t}\n\n\t/**\n\t * Get all buttons\n\t */\n\tstatic buttons (): MenuButton[] {\n\t\tconst config = this.engine.configuration(this.tag) as { buttons: MenuButton[] };\n\t\treturn config.buttons;\n\t}\n\n\t/**\n\t * Find a button by its string identifier\n\t */\n\tstatic button (string: string): MenuButton | undefined {\n\t\treturn this.buttons().find((button: MenuButton) => button.string === string);\n\t}\n\n\t/**\n\t * Called when configuration is updated - re-renders all instances\n\t */\n\tstatic async onConfigurationUpdate (): Promise {\n\t\tconst elements = document.querySelectorAll(this.tag);\n\n\t\tfor (const element of elements) {\n\t\t\tif (element instanceof Component) {\n\t\t\t\telement.innerHTML = element.render() as string;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Render the menu buttons\n\t */\n\trender (): string {\n\t\tconst staticContext = this.constructor as typeof MenuComponent;\n\t\treturn staticContext.buttons().map((button: MenuButton) => {\n\t\t\t// A user could create a custom element to display all or specific\n\t\t\t// buttons. If no element was set on the button's definition, we'll\n\t\t\t// assume it to be a simple button.\n\t\t\tif (typeof button.element !== 'string') {\n\t\t\t\tbutton.element = 'button';\n\t\t\t}\n\n\t\t\tconst element = document.createElement(button.element);\n\n\t\t\tif (typeof button.data === 'object') {\n\t\t\t\tfor (const key of Object.keys(button.data)) {\n\t\t\t\t\telement.dataset[key] = button.data[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.setAttribute('icon', button.icon);\n\t\t\telement.setAttribute('string', button.string);\n\n\t\t\treturn element.outerHTML;\n\t\t}).join(' ');\n\t}\n}\n\nexport { MenuComponent };\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport { MenuComponent } from '../../lib/MenuComponent';\nimport type { MenuButton } from '../../lib/types';\n\nclass MainMenu extends MenuComponent {\n\tstatic override tag = 'main-menu';\n\n\toverride render(): string {\n\t\tconst staticContext = this.constructor as typeof MainMenu;\n\t\treturn staticContext.buttons().map((button: MenuButton) => {\n\t\t\t// A user could create a custom element to display all or specific\n\t\t\t// buttons. If no element was set on the button's definition, we'll\n\t\t\t// assume it to be a simple button.\n\t\t\tif (typeof button.element !== 'string') {\n\t\t\t\tbutton.element = 'button';\n\t\t\t}\n\n\t\t\tconst element = document.createElement(button.element);\n\n\t\t\tif (typeof button.data === 'object') {\n\t\t\t\tfor (const key of Object.keys(button.data)) {\n\t\t\t\t\telement.dataset[key] = button.data[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.setAttribute('icon', button.icon);\n\t\t\telement.setAttribute('string', button.string);\n\n\t\t\telement.setAttribute('tabindex', '0');\n\n\t\t\telement.innerHTML = `\n\t\t\t\t\n\t\t\t\t${this.engine.string(button.string)}\n\t\t\t`;\n\n\t\t\treturn element.outerHTML;\n\t\t}).join(' ');\n\t}\n}\n\nexport default MainMenu;\n\n", + "import { ScreenComponent } from '../../lib/ScreenComponent';\n\nclass MainScreen extends ScreenComponent {\n\n\toverride onStateUpdate (property: string, oldValue: unknown, newValue: unknown): Promise {\n\t\tif (property === 'open') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.engine.playAmbient();\n\t\t\t} else {\n\t\t\t\tif ((this.engine.global('playing') as boolean) === true) {\n\t\t\t\t\tthis.engine.stopAmbient();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn super.onStateUpdate(property, oldValue, newValue);\n\t}\n}\n\nMainScreen.tag = 'main-screen';\n\nexport default MainScreen;\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\n\n/**\n * Props for MessageModal component\n */\nexport interface MessageModalProps extends Properties {\n\ttitle: string | null;\n\tsubtitle: string | null;\n\tbody: string;\n\tactionString: string;\n}\n\nclass MessageModal extends Component {\n\tstatic override tag = 'message-modal';\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\ttitle: null,\n\t\t\tsubtitle: null,\n\t\t\tbody: '',\n\t\t\tactionString: 'Close'\n\t\t};\n\t}\n\n\toverride shouldProceed(): Promise {\n\t\treturn Promise.reject('Message Modal awaiting for user to close the modal window.');\n\t}\n\n\toverride willProceed(): Promise {\n\t\tthis.remove();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willRollback(): Promise {\n\t\t// If a choice is visible right now, we can simply remove it and let the\n\t\t// game revert to the previous statement.\n\t\tthis.remove();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onReset(): Promise {\n\t\tthis.remove();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willMount(): Promise {\n\t\tthis.classList.add('modal', 'modal--active');\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\tconst { title, subtitle, body } = this.props;\n\t\treturn `\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t${typeof title === 'string' && title ? `

${title}

` : ''}\n\t\t\t\t\t${typeof subtitle === 'string' && subtitle ? `

${subtitle}

` : ''}\n\t\t\t\t\t${typeof body === 'string' && body ? `

${body}

` : ''}\n\t\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default MessageModal;\n\n", + "import { MenuComponent } from './../../lib/MenuComponent';\n\nclass QuickMenu extends MenuComponent {\n static override tag = 'quick-menu';\n\n\tstatic async init () {\n const skipSpeed = this.engine.setting('Skip') as number;\n const allowRollback = this.engine.setting('AllowRollback') as boolean;\n\n\t\t// Remove the Skip text button if it has been disabled on the game settings\n\t\tif (skipSpeed <= 0) {\n\t\t\tthis.removeButton('Skip');\n\t\t}\n\n // Remove the Back button if it has been disabled on the game settings\n\t\tif (!allowRollback) {\n\t\t\tthis.removeButton('Back');\n\t\t}\n\t}\n\n\trender () {\n\t\tconst buttons = (this.constructor as typeof QuickMenu).buttons ();\n\n\t\treturn buttons.map ((button) => {\n\t\t\t// A user could create a custom element to display all or specific\n\t\t\t// buttons. If no element was set on the button's definition, we'll\n\t\t\t// assume it to be a simple button.\n\t\t\tif (typeof button.element !== 'string') {\n\t\t\t\tbutton.element = 'button';\n\t\t\t}\n\n\t\t\tconst element = document.createElement (button.element);\n\n\t\t\tif (typeof button.data === 'object') {\n\t\t\t\tfor (const key of Object.keys (button.data)) {\n\t\t\t\t\telement.dataset[key] = button.data[key];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.setAttribute ('icon', button.icon);\n\t\t\telement.setAttribute ('string', button.string);\n\t\t\telement.setAttribute ('tabindex', '0');\n\n\t\t\telement.innerHTML = `\n\t\t\t\t\n\t\t\t\t${this.engine.string (button.string)}\n\t\t\t`;\n\n\t\t\treturn element.outerHTML;\n\t\t}).join (' ');\n\t}\n}\n\nexport default QuickMenu;\n", + "import { ScreenComponent } from '../../lib/ScreenComponent';\nimport { DateTime } from 'luxon';\n\nclass SaveScreen extends ScreenComponent {\n static override tag = 'save-screen';\n\n\tstatic override async bind (_selector?: string): Promise {\n const engine = this.engine;\n\n engine.registerListener('save', {\n callback: () => {\n const instances = this.instances();\n const value = instances.find('[data-content=\"slot-name\"]').value();\n const slotName = (typeof value === 'string' ? value : '').trim();\n\n if (slotName !== '') {\n engine.saveTo('SaveLabel', null, slotName);\n }\n }\n });\n\t}\n\n\toverride async onStateUpdate (property: string, oldValue: unknown, newValue: unknown): Promise {\n\t\tsuper.onStateUpdate(property, oldValue, newValue);\n\n\t\tif (property === 'open' && newValue === true) {\n const currentTime = DateTime.now().toLocaleString(DateTime.DATETIME_MED_WITH_SECONDS);\n\t\t\tthis.content('slot-name').value(currentTime);\n\t\t}\n\t}\n\n\trender (): string {\n\t\tconst engine = this.engine;\n const saveLabel = engine.setting('SaveLabel');\n\n\t\treturn `\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default SaveScreen;\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\nimport { Text } from '@aegis-framework/artemis';\nimport { DateTime } from 'luxon';\n\ninterface SaveSlotData {\n\tname?: string;\n\tdate: string;\n\timage?: string;\n\tscreenshot?: string;\n\tEngine?: {\n\t\tScene: string;\n\t};\n\tName?: string;\n\tDate?: string;\n\tgame?: {\n\t\tstate: {\n\t\t\tbackground?: string;\n\t\t\tscene?: string;\n\t\t};\n\t};\n}\n\ninterface SaveSlotProps extends Properties {\n\tslot?: string;\n\tname: string;\n\tdate: string;\n\tscreenshot: string;\n\timage: string;\n}\n\nclass SaveSlot extends Component {\n\tstatic override tag = 'save-slot';\n\n\tdata: SaveSlotData | null = null;\n\n\tprivate _screenshotObjectUrl: string | null = null;\n\n\tstatic override bind(): Promise {\n\t\tconst self = this;\n\n\t\tthis.engine.registerListener('delete-slot', {\n\t\t\tcallback: async () => {\n\t\t\t\tconst target = this.engine.global('delete_slot') as string | null;\n\n\t\t\t\tif (!target) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\t// Read save data to get screenshot key before deleting\n\t\t\t\ttry {\n\t\t\t\t\tconst rawData = await this.engine.Storage.get(target);\n\t\t\t\t\tconst data = rawData as SaveSlotData;\n\n\t\t\t\t\tif (data?.screenshot) {\n\t\t\t\t\t\tawait this.engine.onDeleteScreenshot(data.screenshot);\n\t\t\t\t\t}\n\t\t\t\t} catch {\n\t\t\t\t\t// Save data may be corrupt, proceed with deletion\n\t\t\t\t}\n\n\t\t\t\t// Delete the slot from the storage\n\t\t\t\tthis.engine.Storage.remove(target);\n\n\t\t\t\t// Reset the temporal delete slot variable\n\t\t\t\tthis.engine.global('delete_slot', null);\n\t\t\t\tthis.engine.dismissAlert('slot-deletion');\n\t\t\t}\n\t\t});\n\n\t\tconst engine = this.engine;\n\n\t\tthis.engine.on('click', '[data-component=\"slot-container\"] [data-delete]', function(this: HTMLElement, event: Event) {\n\t\t\tevent.stopImmediatePropagation();\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\n engine.debug.debug('Registered Click on Slot Delete Button');\n\n\t\t\tconst deleteSlot = (this as HTMLElement).dataset.delete;\n\n\t\t\tif (deleteSlot) {\n\t\t\t\tengine.global('delete_slot', deleteSlot);\n\n\t\t\t\tengine.Storage.get(deleteSlot).then((data: unknown) => {\n\t\t\t\t\tconst saveData = data as SaveSlotData;\n\n\t\t\t\t\tengine.alert('slot-deletion', {\n\t\t\t\t\t\tmessage: 'SlotDeletion',\n\t\t\t\t\t\tcontext: typeof saveData.name !== 'undefined' ? saveData.name : saveData.date,\n\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Delete',\n\t\t\t\t\t\t\t\tlistener: 'delete-slot'\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tlabel: 'Cancel',\n\t\t\t\t\t\t\t\tlistener: 'dismiss-alert'\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t]\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\t\tthis.props = {\n\t\t\tslot: undefined,\n\t\t\tname: '',\n\t\t\tdate: '',\n\t\t\tscreenshot: '',\n\t\t\timage: ''\n\t\t};\n\n\t\tthis.data = null;\n\t}\n\n\toverride async willMount(): Promise {\n\t\tconst slotKey = this.props.slot;\n\n\t\tif (!slotKey) {\n\t\t\tthis.engine.debug.error('SaveSlot: No slot key provided');\n\t\t\treturn;\n\t\t}\n\n\t\tconst rawData = await this.engine.Storage.get(slotKey);\n\t\tconst data = rawData as SaveSlotData;\n\t\tthis.data = data;\n\n\t\tif (typeof data.Engine !== 'undefined') {\n\t\t\tdata.name = data.Name;\n\t\t\tdata.date = data.Date ?? '';\n\t\t\ttry {\n\t\t\t\tif (data.date.indexOf('/') > -1) {\n\t\t\t\t\tconst [date, time] = data.date.replace(',', '').split(' ');\n\t\t\t\t\tconst [month, day, year] = date.split('/');\n\n\t\t\t\t\tif (isNaN(Date.parse(date))) {\n\t\t\t\t\t\tdata.date = `${year}-${day}-${month} ${time}`;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tdata.date = `${year}-${month}-${day} ${time}`;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tthis.engine.debug.debug('Failed to convert date', e);\n\t\t\t}\n\n\t\t\tdata.image = data.Engine.Scene;\n\t\t}\n\n\t\tlet screenshotUrl = '';\n\n\t\tif (data.screenshot) {\n\t\t\ttry {\n\t\t\t\tif (this._screenshotObjectUrl) {\n\t\t\t\t\tURL.revokeObjectURL(this._screenshotObjectUrl);\n\t\t\t\t\tthis._screenshotObjectUrl = null;\n\t\t\t\t}\n\n\t\t\t\tscreenshotUrl = await this.engine.onLoadScreenshot(data.screenshot);\n\n\t\t\t\tif (screenshotUrl.startsWith('blob:')) {\n\t\t\t\t\tthis._screenshotObjectUrl = screenshotUrl;\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tthis.engine.debug.warn('Failed to load screenshot for slot', slotKey, e);\n\t\t\t}\n\t\t}\n\n\t\tthis.setProps({\n\t\t\tname: data.name ?? '',\n\t\t\tdate: data.date,\n\t\t\timage: data.image ?? '',\n\t\t\tscreenshot: screenshotUrl\n\t\t});\n\t}\n\n\toverride async willUnmount(): Promise {\n\t\tif (this._screenshotObjectUrl) {\n\t\t\tURL.revokeObjectURL(this._screenshotObjectUrl);\n\t\t\tthis._screenshotObjectUrl = null;\n\t\t}\n\t}\n\n\toverride render(): string {\n\t\tlet background = '';\n\n\t\tif (this.props.screenshot) {\n\t\t\tbackground = `url(${this.props.screenshot})`;\n\t\t} else {\n\t\t\tconst assetsPath = this.engine.setting('AssetsPath') as { root: string; scenes: string };\n\t\t\tconst hasImage = this.props.image && this.engine.asset('scenes', this.props.image);\n\n\t\t\tif (hasImage) {\n\t\t\t\tbackground = `url(${assetsPath.root}/${assetsPath.scenes}/${this.engine.asset('scenes', this.props.image)})`;\n\t\t\t} else if (this.data && 'game' in this.data && this.data.game) {\n\t\t\t\tif (this.data.game.state.background) {\n\t\t\t\t\tbackground = this.data.game.state.background;\n\n\t\t\t\t\tif (background.indexOf(' with ') > -1) {\n\t\t\t\t\t\tbackground = Text.prefix(' with ', background);\n\t\t\t\t\t}\n\n\t\t\t\t\tbackground = Text.suffix('show background', background);\n\t\t\t\t} else if (this.data.game.state.scene) {\n\t\t\t\t\tbackground = this.data.game.state.scene;\n\n\t\t\t\t\tif (background.indexOf(' with ') > -1) {\n\t\t\t\t\t\tbackground = Text.prefix(' with ', background);\n\t\t\t\t\t}\n\n\t\t\t\t\tbackground = Text.suffix('show scene', background);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst useBackgroundImage = !!this.props.screenshot || (this.props.image && this.engine.asset('scenes', this.props.image));\n\n\t\treturn `\n\t\t\t\n\t\t\t${this.props.name}\n\t\t\t
\n\t\t\t
${DateTime.fromISO(this.props.date).toLocaleString(DateTime.DATETIME_MED_WITH_SECONDS)}
\n\t\t`;\n\t}\n}\n\nexport default SaveSlot;", + "import type { Properties } from '@aegis-framework/pandora';\nimport { Platform, Text } from '@aegis-framework/artemis';\nimport ScreenComponent, { ScreenState } from '../../lib/ScreenComponent';\nimport { type DesktopBridge, getDesktopBridge } from '../../lib/DesktopBridge';\n\n// Extend Window interface for desktop app support\ndeclare global {\n\tinterface Window {\n\t\telectron?: {\n\t\t\tsend: (channel: string, data: unknown) => void;\n\t\t\ton: (channel: string, callback: (args: unknown) => void) => void;\n\t\t};\n\t\telectrobun?: {\n\t\t\tsend: (channel: string, data: unknown) => void;\n\t\t\ton: (channel: string, callback: (args: unknown) => void) => void;\n\t\t};\n\t}\n}\n\nclass SettingsScreen extends ScreenComponent {\n\tstatic override tag = 'settings-screen';\n\n\tstatic override bind(): Promise {\n\t\t// Fix for select labels\n\t\tconst self = this;\n\t\tthis.engine.on('click', '[data-select]', function(this: HTMLElement) {\n\t\t\tconst selector = `[data-action='${this.dataset.select}']`;\n\t\t\tconst target = self.engine.element().find(selector).get(0);\n\n\t\t\tif (target) {\n\t\t\t\ttarget.focus();\n\t\t\t\tconst event = new MouseEvent('mousedown', {\n\t\t\t\t\tbubbles: true,\n\t\t\t\t\tcancelable: true,\n\t\t\t\t\tview: window\n\t\t\t\t});\n\t\t\t\ttarget.dispatchEvent(event);\n\t\t\t}\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\tdesktop(bridge: DesktopBridge): void {\n\t\tthis.element().find('[data-action=\"set-resolution\"]').value(this.engine.preference('Resolution') as string);\n\n\t\twindow.onbeforeunload = (event: BeforeUnloadEvent) => {\n\t\t\tevent.preventDefault();\n\t\t\tthis.engine.alert('quit-warning', {\n\t\t\t\tmessage: 'Confirm',\n\t\t\t\tactions: [\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Quit',\n\t\t\t\t\t\tlistener: 'quit'\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: 'Cancel',\n\t\t\t\t\t\tlistener: 'dismiss-alert'\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\t\t\treturn false;\n\t\t};\n\n\t\tbridge.send('window-info-request', {\n\t\t\ttitle: this.engine.setting('Name'),\n\t\t\tresizable: this.engine.setting('ForceAspectRatio') !== 'Global'\n\t\t});\n\n\t\tbridge.on('window-info-reply', (args: unknown) => {\n\t\t\tconst { resizable, minWidth, maxWidth, minHeight, maxHeight } = args as {\n\t\t\t\tresizable: boolean;\n\t\t\t\tminWidth: number;\n\t\t\t\tmaxWidth: number;\n\t\t\t\tminHeight: number;\n\t\t\t\tmaxHeight: number;\n\t\t\t};\n\n\t\t\tif (!resizable) {\n\t\t\t\tconst aspectRatio = (this.engine.setting('AspectRatio') as string).split(':');\n\t\t\t\tconst aspectRatioWidth = parseInt(aspectRatio[0]);\n\t\t\t\tconst aspectRatioHeight = parseInt(aspectRatio[1]);\n\n\t\t\t\tfor (let i = 0; i < 488; i += 8) {\n\t\t\t\t\tconst calculatedWidth = aspectRatioWidth * i;\n\t\t\t\t\tconst calculatedHeight = aspectRatioHeight * i;\n\n\t\t\t\t\tif (calculatedWidth >= minWidth && calculatedHeight >= minHeight && calculatedWidth <= maxWidth && calculatedHeight <= maxHeight) {\n\t\t\t\t\t\tthis.element().find('[data-action=\"set-resolution\"]').append(``);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tthis.element().find('[data-action=\"set-resolution\"]').append(``);\n\n\t\t\t\tthis.changeWindowResolution(bridge, this.engine.preference('Resolution') as string);\n\t\t\t\tthis.element().find('[data-action=\"set-resolution\"]').change((event: Event) => {\n\t\t\t\t\tconst size = (event.target as HTMLSelectElement).value;\n\t\t\t\t\tthis.changeWindowResolution(bridge, size);\n\t\t\t\t});\n\n\t\t\t\tthis.element().find('[data-action=\"set-resolution\"]').value(this.engine.preference('Resolution') as string);\n\n\t\t\t} else {\n\t\t\t\tthis.element().find('[data-settings=\"resolution\"]').hide();\n\t\t\t}\n\t\t});\n\n\t\tbridge.on('resize-reply', (args: unknown) => {\n\t\t\tconst { width, height, fullscreen } = args as { width: number; height: number; fullscreen: boolean };\n\n\t\t\tif (fullscreen) {\n\t\t\t\tthis.engine.preference('Resolution', 'fullscreen');\n\t\t\t} else {\n\t\t\t\tthis.engine.preference('Resolution', `${width}x${height}`);\n\t\t\t}\n\t\t});\n\t}\n\n\tchangeWindowResolution(bridge: DesktopBridge, resolution: string): void {\n\t\tif (resolution) {\n\t\t\tif (resolution === 'fullscreen') {\n\t\t\t\tbridge.send('resize-request', {\n\t\t\t\t\tfullscreen: true\n\t\t\t\t});\n\t\t\t} else if (resolution.indexOf('x') > -1) {\n\t\t\t\tconst [width, height] = resolution.split('x');\n\t\t\t\tbridge.send('resize-request', {\n\t\t\t\t\twidth: parseInt(width),\n\t\t\t\t\theight: parseInt(height),\n\t\t\t\t\tfullscreen: false\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\toverride didMount(): Promise {\n\t\tthis.engine.on('didInit', () => {\n\t\t\tif (this.engine.setting('MultiLanguage') === true) {\n\t\t\t\tthis.content('wrapper').html(`\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t`);\n\t\t\t\tthis.content('language-selector').value(this.engine.preference('Language') as string);\n\n\t\t\t\t// Bind Language select so that every time a language is selected, the\n\t\t\t\t// ui and game get correctly localized.\n\t\t\t\tthis.content('language-selector').change(() => {\n\t\t\t\t\tthis.engine.preference('Language', this.content('language-selector').value() as string);\n\t\t\t\t\tthis.engine.localize();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.content('language-settings').remove();\n\t\t\t}\n\n\t\t\tfor (const mediaType of Object.keys(this.engine.mediaPlayers())) {\n\t\t\t\tconst volume = this.engine.preference('Volume') as Record;\n\t\t\t\tthis.content(`${mediaType}-audio-controller`).value(volume[Text.capitalize(mediaType)]);\n\t\t\t}\n\n\t\t\t// Set the desktop app quit handler.\n\t\t\tconst bridge = getDesktopBridge();\n\t\t\tif (Platform.desktopApp && bridge) {\n\t\t\t\tthis.desktop(bridge);\n\t\t\t} else {\n\t\t\t\tthis.element().find('[data-platform=\"desktop\"]').remove();\n\t\t\t}\n\n\t\t\tthis.element().find('[data-action=\"set-text-speed\"]').value((this.engine.preference('TextSpeed') as number));\n\t\t});\n\n\t\t// Disable audio settings in iOS since they are not supported\n\t\tif (Platform.mobile('iOS')) {\n\t\t\t// iOS handles the volume using the system volume, therefore there is no way to\n\t\t\t// handle each of the sound sources individually and as such, this is disabled.\n\t\t\tthis.content('audio-settings').html(`

${this.engine.string('iOSAudioWarning')}

`);\n\t\t}\n\n\t\tconst engine = this.engine;\n\t\tconst clamp = (num: number, min: number, max: number) => Math.min(Math.max(num, min), max);\n\t\tthis.content('auto-play-speed-controller').on('change mouseover', function(this: HTMLInputElement) {\n\t\t\tconst value = clamp(parseInt(this.value), 0, engine.setting('MaxAutoPlaySpeed') as number);\n\t\t\tengine.preference('AutoPlaySpeed', value);\n\t\t});\n\n\t\tconst autoPlayController = this.content('auto-play-speed-controller').get(0) as HTMLInputElement | undefined;\n\t\tif (autoPlayController) {\n\t\t\tthis.engine.setting('MaxAutoPlaySpeed', parseInt(autoPlayController.max));\n\t\t}\n\t\tthis.content('auto-play-speed-controller').value(this.engine.preference('AutoPlaySpeed') as number);\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\treturn `\n\t\t\t\n\t\t\t

Settings

\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t

Audio

\n\t\t\t\t\t\tMusic Volume:\n\t\t\t\t\t\t\n\t\t\t\t\t\tSound Volume:\n\t\t\t\t\t\t\n\t\t\t\t\t\tVoice Volume:\n\t\t\t\t\t\t\n\t\t\t\t\t\tVideo Volume:\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t
\n\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\t

Text Speed

\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t

Auto Play Speed

\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t

Language

\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\n\t\t\t\t\t
\n\t\t\t\t\t\t

Resolution

\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default SettingsScreen;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport { $_, DOM } from '@aegis-framework/artemis';\nimport Component from '../../lib/Component';\n\nexport interface SlotContainerProps extends Properties {\n\ttype: 'load' | 'save';\n\tlabel?: string;\n}\n\nexport interface SlotContainerState extends Properties {\n\tslots: string[];\n}\n\nconst SCREENSHOT_KEY_PREFIX = '__screenshot';\n\nclass SlotContainer extends Component {\n\tstatic override tag = 'slot-container';\n\n\tstatic override bind(): Promise {\n\t\tthis.engine.registerListener('overwrite-slot', {\n\t\t\tcallback: (event: Event, element: DOM) => {\n\t\t\t\t// Find the modal wrapper first, then find the input within it\n\t\t\t\tconst wrapper = element.closest('[data-content=\"wrapper\"]');\n\t\t\t\tconst customName = wrapper.find('[data-content=\"context\"]').value()?.trim() ?? '';\n\n\t\t\t\tif (customName !== '') {\n\t\t\t\t\tthis.engine.saveTo('SaveLabel', this.engine.global('overwrite_slot') as number, customName);\n\n\t\t\t\t\tthis.engine.global('overwrite_slot', null);\n\t\t\t\t\tthis.engine.dismissAlert('slot-overwrite');\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\treturn Promise.resolve();\n\t}\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\ttype: undefined as unknown as 'load' | 'save',\n\t\t\tlabel: undefined\n\t\t};\n\n\t\tthis.state = {\n\t\t\tslots: []\n\t\t};\n\t}\n\n\toverride willMount(): Promise {\n\t\tconst fullLabel = `${this.props.label}_`;\n\n\t\treturn (this.engine.Storage.each((key: string, value: unknown) => {\n\t\t\tif (key.indexOf(fullLabel) === 0 && key.indexOf(SCREENSHOT_KEY_PREFIX) === -1) {\n\t\t\t\t// If any of the save files has somehow become corrupted and is\n\t\t\t\t// no longer a valid object, we'll want to exclude it.\n\t\t\t\tif (typeof value === 'object' && value !== null) {\n\t\t\t\t\treturn Promise.resolve({\n\t\t\t\t\t\tvalid: true,\n\t\t\t\t\t\tid: parseInt(key.split(fullLabel)[1]),\n\t\t\t\t\t\tkey,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Promise.resolve({ valid: false });\n\t\t}) as Promise>).then((data) => {\n\t\t\t// Filter only those that are marked as valid and then, sort them\n\t\t\t// using their id as the pivot\n\t\t\tconst validSlots = data.filter(d => d.valid).sort((a, b) => {\n\t\t\t\tif ((a.id ?? 0) > (b.id ?? 0)) {\n\t\t\t\t\treturn 1;\n\t\t\t\t} else if ((a.id ?? 0) < (b.id ?? 0)) {\n\t\t\t\t\treturn -1;\n\t\t\t\t} else {\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\t\t\t}).map(({ key }) => {\n\t\t\t\treturn key!;\n\t\t\t});\n\n\t\t\tthis.setState({\n\t\t\t\tslots: validSlots\n\t\t\t});\n\t\t});\n\t}\n\n\toverride didMount(): Promise {\n\t\tconst engine = this.engine;\n\n\t\t// Read type from attribute directly because of props proxy priority issue\n\t\tconst type = this.getAttribute('type') || this.props.type;\n\n\t\tif (type === 'load') {\n\t\t\t// Load a saved game slot when it is pressed\n\t\t\tthis.element().on('click', '[data-component=\"save-slot\"]', function(this: HTMLElement, event: Event) {\n\t\t\t\tconst target = event.target as HTMLElement;\n\t\t\t\tconst isDeleteButton = target.closest('[data-delete]') !== null;\n\t\t\t\tif (!isDeleteButton) {\n\t\t\t\t\tconst slot = $_(this).attribute('slot');\n\t\t\t\t\tif (slot) {\n\t\t\t\t\t\tengine.loadFromSlot(slot).then(() => {\n\t\t\t\t\t\t\tengine.run(engine.label()[engine.state('step') as number]);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (type === 'save') {\n\t\t\tconst self = this;\n\t\t\t// Save to slot when a slot is pressed.\n\t\t\tthis.element().on('click', '[data-component=\"save-slot\"]', function(this: HTMLElement, event: Event) {\n\t\t\t\tconst target = event.target as HTMLElement;\n\t\t\t\tconst isDeleteButton = target.closest('[data-delete]') !== null;\n\n\t\t\t\tif (!isDeleteButton) {\n\t\t\t\t\tengine.debug.debug('Registered Click on Slot');\n\n\t\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\tevent.preventDefault();\n\n\t\t\t\t\tconst slot = $_(this).attribute('slot');\n\t\t\t\t\tconst slotIdStr = slot?.split('_').pop();\n\t\t\t\t\tconst slotId = slotIdStr ? parseInt(slotIdStr, 10) : null;\n\t\t\t\t\tengine.global('overwrite_slot', slotId);\n\t\t\t\t\tengine.Storage.get(self.props.label + '_' + engine.global('overwrite_slot')).then((data: unknown) => {\n\t\t\t\t\t\tconst saveData = data as { name?: string; date: string };\n\t\t\t\t\t\tengine.alert('slot-overwrite', {\n\t\t\t\t\t\t\tmessage: 'SlotOverwrite',\n\t\t\t\t\t\t\tcontext: typeof saveData.name !== 'undefined' ? saveData.name : saveData.date,\n\t\t\t\t\t\t\teditable: true,\n\t\t\t\t\t\t\tactions: [\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: 'Overwrite',\n\t\t\t\t\t\t\t\t\tlistener: 'overwrite-slot'\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\tlabel: 'Cancel',\n\t\t\t\t\t\t\t\t\tlistener: 'dismiss-alert'\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t]\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\tthis.engine.Storage.onCreate((key: string, value: unknown) => {\n\t\t\t// We only want to react to those items that we believe are save files\n\t\t\t// by their key and making sure they're an actual object\n\t\t\tif (key.indexOf(`${this.props.label}_`) === 0 && key.indexOf(SCREENSHOT_KEY_PREFIX) === -1) {\n\t\t\t\tif (typeof value === 'object' && value !== null) {\n\t\t\t\t\tthis.setState({\n\t\t\t\t\t\tslots: [...new Set([...this.state.slots, key])]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.engine.Storage.onUpdate((key: string, value: unknown) => {\n\t\t\t// We only want to react to those items that we believe are save files\n\t\t\t// by their key and making sure they're an actual object\n\t\t\t if (key.indexOf(`${this.props.label}_`) === 0 && key.indexOf(SCREENSHOT_KEY_PREFIX) === -1) {\n\t\t\t\tif (typeof value === 'object' && value !== null) {\n\t\t\t\t\tconst slot = this.element().find(`[slot=\"${key}\"]`).get(0);\n\n\t\t\t\t\tif (slot && 'setProps' in slot) {\n\t\t\t\t\t\t(slot as { setProps: (props: unknown) => void }).setProps(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\tthis.engine.Storage.onDelete((key: string) => {\n\t\t\tif (key.indexOf(`${this.props.label}_`) === 0) {\n\t\t\t\tthis.setState({\n\t\t\t\t\tslots: this.state.slots.filter(s => s !== key)\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\n\t\tthis.engine.on('didLocalize', () => {\n\t\t\tthis.forceRender();\n\t\t});\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onStateUpdate(property: string, _oldValue: unknown, _newValue: unknown): Promise {\n\t\tif (property === 'slots') {\n\t\t\tthis.forceRender();\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\tconst slots = this.state.slots.map(slot => ``).join('');\n\n\t\tif (slots !== '') {\n\t\t\treturn slots;\n\t\t}\n\n\t\treturn `

${this.engine.string('NoSavedGames')}

`;\n\t}\n}\n\nexport default SlotContainer;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\n\ninterface TextBoxProps extends Properties {\n\tmode: 'adv' | 'nvl';\n}\n\ninterface TextBoxState extends Properties {\n\thidden: boolean;\n}\n\nclass TextBox extends Component {\n\tconstructor () {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tmode: 'adv',\n\t\t};\n\n\t\tthis.state = {\n\t\t\thidden: false,\n\t\t};\n\t}\n\n\toverride onStateUpdate (property: string, _oldValue: unknown, newValue: unknown): Promise {\n\t\tif (property === 'hidden') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.element().hide();\n\t\t\t} else {\n\t\t\t\tthis.element().show('grid');\n\t\t\t}\n\t\t}\n\n\t\treturn Promise.resolve();\n\t}\n\n\tshow (): void {\n\t\tif (this.state.hidden) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.element().show('grid');\n\t}\n\n\t/**\n\t * checkUnread - This function is used to add the unread class to the\n\t * text box if new contents (dialogs) were added to it causing it to overflow\n\t * but are not visible on screen right now so the player knows there is more\n\t * and scrolls the element.\n\t */\n\tcheckUnread (): void {\n\t\tconst text = this.content('text').get(0) as HTMLElement | undefined;\n\n\t\tif (!text) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ((text.clientHeight + text.scrollTop) < text.scrollHeight) {\n\t\t\tthis.classList.add('unread');\n\t\t} else {\n\t\t\tthis.classList.remove('unread');\n\t\t}\n\t}\n\n\toverride async render (): Promise {\n\t\t// In NVL mode, we don't want a static type-writer element\n\t\t// as dialogs will be appended dynamically\n\t\tconst typeWriterElement = this.props.mode === 'nvl' ? '' : '';\n\n\t\treturn `\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\t
\n\t\t\t\t\"\"\n\t\t\t
\n\t\t\t
\n\t\t\t\t${typeWriterElement}\n\t\t\t
\n\t\t`;\n\t}\n}\n\nTextBox.tag = 'text-box';\n\nexport default TextBox;\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport { $_ } from '@aegis-framework/artemis';\nimport Component from '../../lib/Component';\n\n/**\n * Input option for select, radio, or checkbox types\n */\nexport interface InputOption {\n\tvalue: string | number;\n\tlabel: string;\n}\n\n/**\n * Input type for text-input component\n */\nexport type TextInputType =\n\t| 'text'\n\t| 'password'\n\t| 'email'\n\t| 'url'\n\t| 'number'\n\t| 'color'\n\t| 'file'\n\t| 'date'\n\t| 'datetime-local'\n\t| 'month'\n\t| 'time'\n\t| 'week'\n\t| 'tel'\n\t| 'range'\n\t| 'textarea'\n\t| 'select'\n\t| 'radio'\n\t| 'checkbox';\n\n/**\n * Props for TextInput component\n */\nexport interface TextInputProps extends Properties {\n\ttext: string;\n\ttype: TextInputType;\n\tdefault: string | number | null;\n\toptions: InputOption[];\n\twarning: string;\n\tactionString: string;\n\tonSubmit: (value: string | string[]) => void | Promise;\n\tvalidate: (value: string | string[]) => boolean | Promise;\n\tcallback: () => void;\n\tclasses: string;\n\tattributes: Record;\n}\n\n/**\n * State for TextInput component\n */\nexport interface TextInputState extends Properties {\n\tactive: boolean;\n}\n\nclass TextInput extends Component {\n\tstatic override tag = 'text-input';\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.state = {\n\t\t\tactive: true,\n\t\t};\n\n\t\tthis.props = {\n\t\t\ttext: '',\n\t\t\ttype: 'text',\n\t\t\tdefault: null,\n\t\t\toptions: [],\n\t\t\twarning: '',\n\t\t\tactionString: 'OK',\n\t\t\tonSubmit: () => {},\n\t\t\tvalidate: () => true,\n\t\t\tcallback: () => {},\n\t\t\tclasses: '',\n\t\t\tattributes: {},\n\t\t};\n\t}\n\n\toverride shouldProceed(): Promise {\n\t\treturn Promise.reject('Input is awaiting user input.');\n\t}\n\n\toverride willRollback(): Promise {\n\t\tthis.remove();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onStateUpdate(property: string, _oldValue: unknown, newValue: unknown): Promise {\n\t\tif (property === 'active') {\n\t\t\tif (newValue === true) {\n\t\t\t\tthis.classList.toggle('modal--active');\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\toverride willMount(): Promise {\n\t\tthis.classList.add('modal', 'modal--active');\n\n\t\t// Check if a list of classes has been defined and if the list is not empty\n\t\tif (typeof this.props.classes === 'string' && this.props.classes !== '') {\n\t\t\tthis.props.classes.split(' ').forEach((className) => {\n\t\t\t\tif (className) {\n\t\t\t\t\tthis.classList.add(className);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\toverride didMount(): Promise {\n\t\tthis.addEventListener('submit', (event) => {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tlet inputValue: string | string[] = '';\n\t\t\t// Retrieve the value submitted\n\t\t\t\tif (this.props.type === 'radio') {\n\t\t\t\tconst checked = this.element().find('[data-content=\"field\"]:checked');\n\t\t\t\tif (checked.exists()) {\n\t\t\t\t\tinputValue = checked.value() as string;\n\t\t\t\t} else {\n\t\t\t\t\tinputValue = '';\n\t\t\t\t}\n\n\t\t\t} else if (this.props.type === 'checkbox') {\n\t\t\t\tinputValue = [];\n\t\t\t\tthis.element().find('[data-content=\"field\"]:checked').each((element) => {\n\t\t\t\t\t(inputValue as string[]).push($_(element).value() as string);\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tinputValue = this.content('field').value() as string;\n\t\t\t}\n\n\t\t\t// Run the validation function asynchronously. If it returns false,\n\t\t\t// it means the input is invalid and we have to show the warning message.\n\t\t\tthis.engine.assertAsync(this.props.validate as (...args: unknown[]) => unknown, this.engine, [inputValue]).then(() => {\n\t\t\t\t// Once validation was done, we run the Save function where usually,\n\t\t\t\t// the input received will be saved on the storage or used for other\n\t\t\t\t// actions.\n\t\t\t\tthis.engine.assertAsync(this.props.onSubmit as (...args: unknown[]) => unknown, this.engine, [inputValue]).then(() => {\n\t\t\t\t\t// Nothing to do here\n\t\t\t\t}).catch(() => {\n\t\t\t\t\t// Nothing to do here\n\t\t\t\t}).finally(() => {\n\t\t\t\t\tthis.remove();\n\t\t\t\t\tthis.props.callback();\n\t\t\t\t});\n\t\t\t}).catch(() => {\n\t\t\t\t// Show the warning message since the input was invalid\n\t\t\t\tthis.content('warning').text(this.engine.replaceVariables(this.props.warning));\n\t\t\t});\n\t\t});\n\n\t\t// For inputs that require a text field, we place the default value after\n\t\t// mount instead of in-creation because this way, the cursor will be placed\n\t\t// at the end of the default value. If we did it in-creation, it would\n\t\t// be placed at the start.\n\t\tconst text: TextInputType[] = ['text', 'textarea', 'password', 'email', 'url', 'number', 'color'];\n\t\tconst { type, default: defaultValue } = this.props;\n\n\t\tif (text.indexOf(type) > -1) {\n\t\t\tif (defaultValue !== null && defaultValue !== '') {\n\t\t\t\tthis.content('field').value(defaultValue);\n\t\t\t}\n\t\t}\n\t\tthis.content('field').get(0)?.focus();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride render(): string {\n\t\tconst { type, default: defaultValue, options, attributes } = this.props;\n\t\tconst text: TextInputType[] = ['text', 'password', 'email', 'url', 'number', 'color', 'file', 'date', 'datetime-local', 'month', 'time', 'week', 'tel', 'range'];\n\t\tlet input = '';\n\t\tlet attr = '';\n\n\t\tif (typeof attributes === 'object' && attributes !== null) {\n\t\t\tattr = Object.keys(attributes).map((key) => {\n\t\t\t\tlet value = attributes[key];\n\n\t\t\t\t// If it's a string value, we'll do the variable interpolation\n\t\t\t\t// for it.\n\t\t\t\tif (typeof value === 'string') {\n\t\t\t\t\tvalue = this.engine.replaceVariables(value);\n\t\t\t\t}\n\n\t\t\t\treturn `${key}=\"${value}\"`;\n\t\t\t}).join(' ');\n\t\t}\n\n\t\tif (text.indexOf(type) > -1) {\n\t\t\tinput = ``;\n\t\t} else if (type === 'textarea') {\n\t\t\tinput = ``;\n\t\t} else if (type === 'select') {\n\t\t\tconst optionElements = options.map((o) => {\n\t\t\t\tlet selected = '';\n\t\t\t\tlet parsedDefault = defaultValue;\n\n\t\t\t\t// If the default value provided is a string, we need to do the variable\n\t\t\t\t// interpolation for it.\n\t\t\t\tif (typeof defaultValue === 'string' && defaultValue !== null && defaultValue !== '') {\n\t\t\t\t\tparsedDefault = this.engine.replaceVariables(defaultValue);\n\t\t\t\t\t// We're doing a == comparison instead of === since the numeric\n\t\t\t\t\t// values could be a string.\n\t\t\t\t\tif (parsedDefault == this.engine.replaceVariables(String(o.value))) {\n\t\t\t\t\t\tselected = 'selected';\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof defaultValue === 'number') {\n\t\t\t\t\t// We're doing a == comparison instead of === since the numeric\n\t\t\t\t\t// values could be a string.\n\t\t\t\t\tif (parsedDefault == o.value) {\n\t\t\t\t\t\tselected = 'selected';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn ``;\n\t\t\t}).join('');\n\n\t\t\tinput = ``;\n\n\t\t} else if (type === 'radio' || type === 'checkbox') {\n\t\t\tinput = options.map((o, index) => {\n\t\t\t\tlet checked = '';\n\t\t\t\tlet parsedDefault = defaultValue;\n\n\t\t\t\t// If the default value provided is a string, we need to do the variable\n\t\t\t\t// interpolation for it.\n\t\t\t\tif (typeof defaultValue === 'string' && defaultValue !== null && defaultValue !== '') {\n\t\t\t\t\tparsedDefault = this.engine.replaceVariables(defaultValue);\n\t\t\t\t\t// We're doing a == comparison instead of === since the numeric\n\t\t\t\t\t// values could be a string.\n\t\t\t\t\tif (parsedDefault == this.engine.replaceVariables(String(o.value))) {\n\t\t\t\t\t\tchecked = 'checked';\n\t\t\t\t\t}\n\t\t\t\t} else if (typeof defaultValue === 'number') {\n\t\t\t\t\t// We're doing a == comparison instead of === since the numeric\n\t\t\t\t\t// values could be a string.\n\t\t\t\t\tif (parsedDefault == o.value) {\n\t\t\t\t\t\tchecked = 'checked';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn `\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t
\n\t\t\t\t`;\n\t\t\t}).join('');\n\t\t}\n\t\treturn `\n\t\t\t
\n\t\t\t\t

${this.props.text}

\n\t\t\t\t${input}\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default TextInput;\n\n", + "import { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\nimport { Util } from '@aegis-framework/artemis';\n\nexport interface TimerDisplayProps extends Properties {\n\tcallback: () => void;\n\ttime: number;\n\tstep: number;\n\ttimer: ReturnType | null;\n\ttick: (() => void) | null;\n}\n\nexport interface TimerDisplayState extends Properties {\n\telapsed: number;\n\tremaining: number;\n\tvalue: number;\n}\n\nclass TimerDisplay extends Component {\n\tstatic override tag: string = 'timer-display';\n\n\tconstructor () {\n\t\tsuper ();\n\n\t\tthis.props = {\n\t\t\tcallback: () => {},\n\t\t\ttime: 0,\n\t\t\tstep: 0,\n\t\t\ttimer: null,\n\t\t\ttick: null\n\t\t};\n\n\t\tthis.state = {\n\t\t\telapsed: 0,\n\t\t\tremaining: 0,\n\t\t\tvalue: 100\n\t\t};\n\t}\n\n\toverride async willMount () {\n const { time } = this.props;\n\n\t\tthis.setProps ({ step: time / 100 });\n\t\tthis.setState ({ remaining: time });\n\t}\n\n\toverride async didMount () {\n const tick = () => {\n this.setProps({\n timer: setTimeout (async () => {\n if (this.state.elapsed >= this.props.time) {\n await Util.callAsync (this.props.callback, this.engine);\n\n if (this.props.timer) {\n clearTimeout (this.props.timer);\n }\n\n if (this.parentNode) {\n this.element ().remove ();\n }\n\n return;\n }\n\n this.setState ({\n elapsed: this.state.elapsed + this.props.step,\n remaining: this.state.remaining - this.props.step,\n value: (1 - (this.state.elapsed / this.props.time)) * 100\n });\n\n this.forceRender ();\n this.props.tick?.();\n\n\n }, this.props.step)\n });\n };\n\n\n\t\tthis.setProps ({ tick });\n\n\t\tthis.props.tick?.();\n\t}\n\n\toverride async willUnmount () {\n\t\t// Clean up timer to prevent memory leaks\n\t\tif (this.props.timer) {\n\t\t\tclearTimeout(this.props.timer);\n\t\t}\n\n\t\treturn Promise.resolve ();\n\t}\n\n\toverride async render () {\n\t\treturn `\n\t\t\t
\n\t\t`;\n\t}\n}\n\nexport default TimerDisplay;", + "import Component from '../../lib/Component';\n\nclass VisualNovel extends Component {\n static override tag = 'visual-novel';\n\n\toverride async render (): Promise {\n\t\treturn '';\n\t}\n}\n\nexport default VisualNovel;\n", + "export interface BaseTypedAction {\n\taction: string;\n\tn?: string;\n}\n\nexport interface TypingCallbacks {\n\tonBegin?: (self: T) => void;\n\tonStart?: (index: number, self: T) => void;\n\tonStop?: (index: number, self: T) => void;\n\tpreStringTyped?: (index: number, self: T) => void;\n\tonStringTyped?: (index: number, self: T) => void;\n\tonTypingPaused?: (index: number, self: T) => void;\n\tonTypingResumed?: (index: number, self: T) => void;\n\tonDestroy?: (self: T) => void;\n}\n\n/** Pattern to match whitespace characters */\nexport const WHITESPACE_PATTERN = /\\s/;\n\n/** Basic action pattern for {pause:N} and {speed:N} commands */\nexport const BASIC_ACTION_PATTERN = /(\\{(?:pause|speed):\\d+\\})/;\n\n/** Pattern to extract action name and value */\nexport const ACTION_EXTRACT_PATTERN = /\\{(?pause|speed):(?\\d+)\\}/;\n\n/**\n * Get all leaf (text) nodes from a DOM tree.\n * Traverses the tree recursively to find nodes with no children.\n *\n * @param node - The root node to start traversal from\n * @returns Array of leaf nodes\n */\nexport function getLeafNodes (node: Node | null): Node[] {\n\tconst leafNodes: Node[] = [];\n\n\tconst traverse = (currentNode: Node): void => {\n\t\tconst children = currentNode.childNodes;\n\n\t\tif (children.length === 0) {\n\t\t\tleafNodes.push(currentNode);\n\t\t} else {\n\t\t\tchildren.forEach(child => traverse(child));\n\t\t}\n\t};\n\n\tif (node) {\n\t\ttraverse(node);\n\t}\n\n\treturn leafNodes;\n}\n\n/**\n * Parse a string into nodes and actions using the basic action pattern.\n * Creates span elements with visibility:hidden for each character.\n *\n * Supports inline commands:\n * - {speed:N} - Change typing speed to N milliseconds\n * - {pause:N} - Pause for N milliseconds\n *\n * @param curString - The string to parse\n * @returns Tuple of [nodes array, actions array]\n *\n * @example\n * parseBasicString(\"{speed:10}hello {pause:1000}world!\")\n * // Returns nodes for each character and actions at appropriate positions\n */\nexport function parseBasicString (curString: string): [Node[], (BaseTypedAction | undefined)[]] {\n\tconst sections = curString.split(BASIC_ACTION_PATTERN);\n\n\tconst nodes: Node[] = [];\n\tconst actions: (BaseTypedAction | undefined)[] = [];\n\tlet nodeCounter = 0;\n\n\tsections.forEach((section, i) => {\n\t\t// text section (even indices)\n\t\tif (i % 2 === 0) {\n\t\t\tfor (const char of section) {\n\t\t\t\tconst isWhite = WHITESPACE_PATTERN.test(char);\n\t\t\t\tif (isWhite) {\n\t\t\t\t\tnodes.push(document.createTextNode(char));\n\t\t\t\t} else {\n\t\t\t\t\tnodeCounter++;\n\t\t\t\t\tconst span = document.createElement('span');\n\t\t\t\t\tspan.appendChild(document.createTextNode(char));\n\t\t\t\t\tspan.style.visibility = 'hidden';\n\t\t\t\t\tnodes.push(span);\n\t\t\t\t}\n\t\t\t}\n\n\t\t// action section (odd indices)\n\t\t} else {\n\t\t\tconst match = ACTION_EXTRACT_PATTERN.exec(section);\n\t\t\tif (match?.groups) {\n\t\t\t\tactions[nodeCounter] = {\n\t\t\t\t\taction: match.groups.action,\n\t\t\t\t\tn: match.groups.n,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t});\n\n\treturn [nodes, actions];\n}\n\n/**\n * Parse a string into a DocumentFragment for better performance.\n * Same as parseBasicString but returns a DocumentFragment instead of array.\n *\n * @param curString - The string to parse\n * @returns Tuple of [DocumentFragment, actions array]\n */\nexport function parseBasicStringToFragment (curString: string): [DocumentFragment, (BaseTypedAction | undefined)[]] {\n\tconst fragment = document.createDocumentFragment();\n\tconst sections = curString.split(BASIC_ACTION_PATTERN);\n\n\tconst actions: (BaseTypedAction | undefined)[] = [];\n\tlet nodeCounter = 0;\n\n\tsections.forEach((section, i) => {\n\t\t// text section (even indices)\n\t\tif (i % 2 === 0) {\n\t\t\tfor (const char of section) {\n\t\t\t\tconst isWhite = WHITESPACE_PATTERN.test(char);\n\t\t\t\tif (isWhite) {\n\t\t\t\t\tfragment.appendChild(document.createTextNode(char));\n\t\t\t\t} else {\n\t\t\t\t\tnodeCounter++;\n\t\t\t\t\tconst span = document.createElement('span');\n\t\t\t\t\tspan.appendChild(document.createTextNode(char));\n\t\t\t\t\tspan.style.visibility = 'hidden';\n\t\t\t\t\tfragment.appendChild(span);\n\t\t\t\t}\n\t\t\t}\n\n\t\t// action section (odd indices)\n\t\t} else {\n\t\t\tconst match = ACTION_EXTRACT_PATTERN.exec(section);\n\t\t\tif (match?.groups) {\n\t\t\t\tactions[nodeCounter] = {\n\t\t\t\t\taction: match.groups.action,\n\t\t\t\t\tn: match.groups.n,\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\t});\n\n\treturn [fragment, actions];\n}\n\n/**\n * Interface for RAF-based animation timing state.\n */\nexport interface AnimationTimingState {\n\tanimationFrameId: number | null;\n\tlastFrameTime: number;\n\taccumulatedTime: number;\n\ttargetWaitTime: number;\n\tisAnimating: boolean;\n}\n\n/**\n * Create initial animation timing state.\n */\nexport function createAnimationTimingState (): AnimationTimingState {\n\treturn {\n\t\tanimationFrameId: null,\n\t\tlastFrameTime: 0,\n\t\taccumulatedTime: 0,\n\t\ttargetWaitTime: 0,\n\t\tisAnimating: false,\n\t};\n}\n\n/**\n * Add humanization (slight randomness) to typing speed.\n *\n * @param speed - Base speed in milliseconds\n * @returns Randomized speed\n */\nexport function humanizeSpeed (speed: number): number {\n\treturn Math.round((Math.random() * speed) / 2) + speed;\n}\n\n\n", + "import type { Properties } from '@aegis-framework/pandora';\nimport Component from '../../lib/Component';\nimport type TypeCharacter from '../type-character/index';\nimport {\n\tgetLeafNodes,\n\thumanizeSpeed,\n\tWHITESPACE_PATTERN,\n\ttype TypingCallbacks,\n} from '../../lib/typing-utils';\n\nexport type ActionType = 'number' | 'enclosed' | 'instance';\n\nexport interface TypeWriterAction {\n\tname: string;\n\ttype: ActionType;\n\taction: (this: TypeWriter, ...args: unknown[]) => void;\n}\n\nexport interface TypeWriterActions {\n\t[key: string]: TypeWriterAction;\n}\n\nexport interface TypeWriterConfiguration {\n\tactions: TypeWriterActions;\n\t[key: string]: unknown;\n}\n\nexport interface TypedConfig extends TypingCallbacks {\n\ttypeSpeed?: number;\n\tloop?: boolean | number;\n\tshowCursor?: boolean;\n\thideCursorOnEnd?: boolean;\n\tpreStringTyped: (index: number, self: TypeWriter) => void;\n\tonStringTyped: (index: number, self: TypeWriter) => void;\n\tonStringLoop?: (index: number, self: TypeWriter) => void;\n}\n\nexport interface ParsedAction {\n\taction: string;\n\tn?: string;\n\toptions?: Record | string[];\n\ttext?: string;\n\tid?: string;\n}\n\nexport interface VoidElementResult {\n\tprops: Record;\n\tstate: Record;\n\tnode: TypeCharacter;\n}\n\nexport interface TypeWriterProps extends Properties {\n\tstring: string | false;\n\ttypeSpeed?: number;\n\tloop?: boolean | number;\n\tshowCursor?: boolean;\n\thideCursorOnEnd?: boolean;\n\tdelay?: number;\n\tstart?: boolean;\n}\n\nexport interface TypeWriterState extends Properties {\n\tconfig: Partial;\n\tstrings: string[];\n\tcursor: Record;\n\tignore?: boolean;\n\tspecial?: Record;\n}\n\n// ============================================================================\n// Pre-compiled regex patterns for better performance\n// ============================================================================\n\nexport const QUOTED_VALUE_PATTERN = /=([\"'])(.*?)\\1/g;\nexport const CSS_VALUE_PATTERN = /(:[ ]?)(.*?);/g;\nexport const QUOTE_CONTENT_PATTERN = /([\"'])(.*?)\\1/g;\n\n// ============================================================================\n// TypeWriter Component\n// ============================================================================\n\nclass TypeWriter extends Component {\n static override tag = 'type-writer';\n\n static _patternCacheVersion: number = 0;\n static _numberActionsCache: string | null = null;\n static _enclosedActionsCache: string | null = null;\n static _instanceActionsCache: string | null = null;\n\n\tstatic override _configuration: TypeWriterConfiguration = {\n\t\tactions: {\n\t\t\t'pause': {\n\t\t\t\tname: 'pause',\n\t\t\t\ttype: 'number',\n\t\t\t\taction: function (this: TypeWriter, number: unknown): void {\n\t\t\t\t\tconst time = Number(number);\n\n\t\t\t\t\tif (!isNaN(time) && time >= 0) {\n\t\t\t\t\t\tthis.nextPause = time;\n\n\t\t\t\t\t\tif (time > 0 && typeof this.state.config.onTypingPaused === 'function') {\n\t\t\t\t\t\t\tthis.state.config.onTypingPaused(this.stringPos, this);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.engine.debug.error('Provided value was not a valid number value:\\n' + number);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t\t'speed': {\n\t\t\t\tname: 'speed',\n\t\t\t\ttype: 'number',\n\t\t\t\taction: function (this: TypeWriter, number: unknown): void {\n\t\t\t\t\tconst percentage = Number(number);\n\n\t\t\t\t\tif (!isNaN(percentage) && percentage >= 0) {\n\t\t\t\t\t\tif (percentage === 0) {\n\t\t\t\t\t\t\tthis.speed = 0;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst speed = Math.floor((this.speed * 100) / percentage);\n\t\t\t\t\t\t\tthis.speed = speed;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.engine.debug.error('Provided value was not a valid number value:\\n' + number);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t},\n\t\t\t'shake': {\n\t\t\t\tname: 'shake',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'shake-hard': {\n\t\t\t\tname: 'shake-hard',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'shake-slow': {\n\t\t\t\tname: 'shake-slow',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'shake-little': {\n\t\t\t\tname: 'shake-little',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'shake-horizontal': {\n\t\t\t\tname: 'shake-horizontal',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'shake-vertical': {\n\t\t\t\tname: 'shake-vertical',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'wave': {\n\t\t\t\tname: 'wave',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'wave-slow': {\n\t\t\t\tname: 'wave-slow',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'wave-fast': {\n\t\t\t\tname: 'wave-fast',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'fade': {\n\t\t\t\tname: 'fade',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'fade-slow': {\n\t\t\t\tname: 'fade-slow',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'blur': {\n\t\t\t\tname: 'blur',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'scale': {\n\t\t\t\tname: 'scale',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'scale-bounce': {\n\t\t\t\tname: 'scale-bounce',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'slide-up': {\n\t\t\t\tname: 'slide-up',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'slide-down': {\n\t\t\t\tname: 'slide-down',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'glitch': {\n\t\t\t\tname: 'glitch',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'glitch-hard': {\n\t\t\t\tname: 'glitch-hard',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'glitch-slow': {\n\t\t\t\tname: 'glitch-slow',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'bold': {\n\t\t\t\tname: 'bold',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'italic': {\n\t\t\t\tname: 'italic',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'big': {\n\t\t\t\tname: 'big',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'small': {\n\t\t\t\tname: 'small',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'impact': {\n\t\t\t\tname: 'impact',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'redacted': {\n\t\t\t\tname: 'redacted',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'invisible-ink': {\n\t\t\t\tname: 'invisible-ink',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'handwriting': {\n\t\t\t\tname: 'handwriting',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'strike': {\n\t\t\t\tname: 'strike',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'flicker': {\n\t\t\t\tname: 'flicker',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\n\t\t\t'angry': {\n\t\t\t\tname: 'angry',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'scared': {\n\t\t\t\tname: 'scared',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'happy': {\n\t\t\t\tname: 'happy',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'sad': {\n\t\t\t\tname: 'sad',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'mysterious': {\n\t\t\t\tname: 'mysterious',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'excited': {\n\t\t\t\tname: 'excited',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'whisper': {\n\t\t\t\tname: 'whisper',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'shout': {\n\t\t\t\tname: 'shout',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'dizzy': {\n\t\t\t\tname: 'dizzy',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'dreamy': {\n\t\t\t\tname: 'dreamy',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'robotic': {\n\t\t\t\tname: 'robotic',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'static': {\n\t\t\t\tname: 'static',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'rainbow': {\n\t\t\t\tname: 'rainbow',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t\t'glow': {\n\t\t\t\tname: 'glow',\n\t\t\t\ttype: 'enclosed',\n\t\t\t\taction: () => {},\n\t\t\t},\n\t\t},\n\t};\n\n\t// Instance properties\n\ttypeSpeed: number = 100;\n\tspeed: number = 100;\n\tnextPause: number | null = null;\n\tstringPos: number = 0;\n\tloops: boolean | number = false;\n\tstopLoop: boolean = false;\n\tnodeCounter: number = 0;\n\tenclosedID: string[] = [];\n\tparseIndex: number = 0;\n\tactionsPlayed: number = 0;\n\tactions: (ParsedAction | undefined)[] = [];\n\telements: NodeListOf | null = null;\n\tignorePause?: boolean;\n\n\t// Animation frame timing\n\tprivate _animationFrameId: number | null = null;\n\tprivate _lastFrameTime: number = 0;\n\tprivate _accumulatedTime: number = 0;\n\tprivate _targetWaitTime: number = 0;\n\tprivate _isAnimating: boolean = false;\n\n\t// Pre-compiled action patterns\n\tprivate _actionPatternCache: RegExp | null = null;\n\tprivate _numberActionsCache: string | null = null;\n\tprivate _enclosedActionsCache: string | null = null;\n\tprivate _instanceActionsCache: string | null = null;\n\tprivate _patternCacheVersion: number = 0;\n\n\tconstructor() {\n\t\tsuper();\n\n\t\tthis.state = {\n\t\t\tconfig: {},\n\t\t\tstrings: [],\n\t\t\tcursor: {}\n\t\t};\n\n\t\tthis.props = {\n\t\t\tstring: false\n\t\t};\n\t}\n\n\tstatic override configuration(object: string | TypeWriterConfiguration | null = null): TypeWriterConfiguration | unknown {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn this._configuration[object as keyof TypeWriterConfiguration];\n\t\t\t}\n\n\t\t\tthis._configuration = Object.assign({}, this._configuration, object);\n\t\t}\n\n\t\treturn this._configuration;\n\t}\n\n\tstatic actions(): TypeWriterActions {\n\t\treturn this._configuration.actions;\n\t}\n\n\t/**\n\t * Strip all TypeWriter action markers from a string.\n\t * This dynamically handles all registered actions (number, enclosed, instance types).\n\t *\n\t * @param str - The string to strip markers from\n\t * @returns The string with all action markers removed\n\t */\n\tstatic stripActionMarkers(str: string): string {\n\t\tconst actions = this.actions();\n\t\tlet result = str;\n\n\t\tfor (const actionName in actions) {\n\t\t\tconst action = actions[actionName];\n\n\t\t\tif (action.type === 'number') {\n\t\t\t\t// Matches {action:N} or {action N}\n\t\t\t\tresult = result.replace(new RegExp(`\\\\{${actionName}[:\\\\s]\\\\d+\\\\}`, 'g'), '');\n\t\t\t} else if (action.type === 'enclosed') {\n\t\t\t\t// Matches {action} or {action options} or {/action} or {/action options}\n\t\t\t\tresult = result.replace(new RegExp(`\\\\{/?${actionName}(?:\\\\s[^}]*)?\\\\}`, 'g'), '');\n\t\t\t} else if (action.type === 'instance') {\n\t\t\t\t// Matches {action/}\n\t\t\t\tresult = result.replace(new RegExp(`\\\\{${actionName}\\\\/\\\\}`, 'g'), '');\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\t/**\n\t * Get a specific action or add a new one to the actions config.\n\t * Note: Adding a new action invalidates the pattern cache for all instances.\n\t */\n\tstatic action(action: string | TypeWriterAction | null = null): TypeWriterAction | TypeWriterActions {\n\t\tif (typeof action === 'string') {\n\t\t\treturn this._configuration.actions[action];\n\t\t}\n\n\t\tif (typeof action === 'object' && action !== null) {\n\t\t\tconst requiredFields: (keyof TypeWriterAction)[] = ['name', 'type', 'action'];\n\n\t\t\tif (requiredFields.every(field => Object.keys(action).includes(field))) {\n\t\t\t\tthis._configuration.actions[action.name] = action;\n\t\t\t\t// Invalidate pattern cache for all instances when a new action is added\n\t\t\t\tthis._invalidateAllPatternCaches();\n\t\t\t\treturn action;\n\t\t\t}\n\n\t\t\tthrow new Error('Attempted to add an action to typing actions, but an invalid action object was provided:\\n' + action);\n\t\t}\n\n\t\treturn this._configuration.actions;\n\t}\n\n\t/**\n\t * Invalidate the pattern cache for all TypeWriter instances.\n\t * Called when new actions are registered.\n\t */\n\tprivate static _invalidateAllPatternCaches(): void {\n\t\tthis._patternCacheVersion = (this._patternCacheVersion || 0) + 1;\n\t}\n\n\t/**\n\t * Get the current pattern cache version.\n\t */\n\tstatic get patternCacheVersion(): number {\n\t\treturn this._patternCacheVersion || 0;\n\t}\n\n\t/**\n\t * Get all strings.\n\t */\n\tget strings(): string[] {\n\t\treturn this.state.strings;\n\t}\n\n\t/**\n\t * Build and cache the action pattern regex for better performance.\n\t */\n\tprivate _buildActionPatterns(): void {\n\t\tconst acts: Record = Object.entries((this.constructor as typeof TypeWriter).actions())\n\t\t\t.map(([action, value]) => ({ [value.type]: [action] }))\n\t\t\t.reduce((a, b) => {\n\t\t\t\tfor (const key in b) {\n\t\t\t\t\tif (a[key]) {\n\t\t\t\t\t\ta[key] = a[key].concat(b[key]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\ta[key] = b[key];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn a;\n\t\t\t}, {} as Record);\n\n\t\t// Sort actions by length (longest first) to ensure proper regex matching.\n\t\t// E.g., \"shake-hard\" must come before \"shake\" to avoid partial matches.\n\t\tconst sortByLength = (arr: string[]) => arr.sort((a, b) => b.length - a.length);\n\n\t\tthis._numberActionsCache = acts.number ? sortByLength(acts.number).join('|') : '';\n\t\tthis._enclosedActionsCache = acts.enclosed ? sortByLength(acts.enclosed).join('|') : '';\n\t\tthis._instanceActionsCache = acts.instance ? sortByLength(acts.instance).join('|') : '';\n\n\t\tconst patterns: string[] = [];\n\n\t\tif (this._numberActionsCache) {\n\t\t\tpatterns.push(`\\\\{(?:${this._numberActionsCache})[:\\\\s]\\\\d+\\\\}`);\n\t\t}\n\t\tif (this._enclosedActionsCache) {\n\t\t\tpatterns.push(`\\\\{/?(?:${this._enclosedActionsCache}).*?\\\\}`);\n\t\t}\n\t\tif (this._instanceActionsCache) {\n\t\t\tpatterns.push(`\\\\{(?:${this._instanceActionsCache})\\\\/\\\\}`);\n\t\t}\n\n\t\tthis._actionPatternCache = patterns.length > 0\n\t\t\t? new RegExp(`(${patterns.join('|')})`, 'g')\n\t\t\t: null;\n\t}\n\n\t/**\n\t * Start the typing animation with a fresh configuration.\n\t */\n\tinitiate(): void {\n\t\t// Build default config with internal lifecycle callbacks\n\t\tconst defaultConfig: Partial = {\n\t\t\ttypeSpeed: this.engine.preference('TextSpeed') as number,\n\t\t\tloop: false,\n\t\t\tshowCursor: false,\n\t\t\thideCursorOnEnd: false,\n\t\t\tpreStringTyped: (_index: number, _self: TypeWriter) => {\n\t\t\t\tthis.engine.global('finished_typing', false);\n\t\t\t\tthis.engine.trigger('didStartTyping');\n\t\t\t},\n\t\t\tonStringTyped: (_index: number, _self: TypeWriter) => {\n\t\t\t\tthis.engine.global('finished_typing', true);\n\t\t\t\tthis.engine.trigger('didFinishTyping');\n\t\t\t},\n\t\t\tonDestroy: (_self: TypeWriter) => {\n\t\t\t\tthis.engine.global('finished_typing', true);\n\t\t\t},\n\t\t};\n\n\t\t// Merge with any existing config (for backwards compatibility)\n\t\tthis.setState({ config: { ...defaultConfig, ...this.state.config } });\n\n\t\tif (!this.state.strings.length && this.props.string) {\n\t\t\tthis.setState({ ignore: true, strings: [this.props.string] });\n\t\t}\n\n\t\tconst { config, strings } = this.state;\n\n\t\t// Handle empty strings array\n\t\tif (!strings || strings.length === 0) {\n\t\t\tthis.engine.debug.warn('TypeWriter: No strings to type');\n\t\t\tconfig.onStringTyped?.(0, this);\n\t\t\treturn;\n\t\t}\n\n\t\tconst currentString = strings[0] ?? '';\n\t\tthis.setProps({ string: currentString });\n\n\t\t// Handle empty string\n\t\tif (!currentString) {\n\t\t\tthis.engine.debug.warn('TypeWriter: Empty string provided');\n\t\t\tconfig.onStringTyped?.(0, this);\n\t\t\treturn;\n\t\t}\n\n\t\t// Apply cursor styles if configured\n\t\tif (Object.values(this.state.cursor).length) {\n\t\t\tfor (const key in this.state.cursor) {\n\t\t\t\tthis.style.setProperty(`--cursor-${key}`, this.state.cursor[key]);\n\t\t\t}\n\t\t}\n\n\t\t// Props type speed should always supersede config type speed\n\t\tif (this.props.typeSpeed) {\n\t\t\tthis.typeSpeed = this.props.typeSpeed;\n\t\t} else {\n\t\t\tthis.typeSpeed = config.typeSpeed ?? this.typeSpeed;\n\t\t}\n\n\t\tif (!this.loops && !this.stopLoop) {\n\t\t\tthis.loops = this.props.loop || config.loop || false;\n\t\t}\n\n\t\t// Reset state for new animation\n\t\tthis.speed = this.typeSpeed;\n\t\tthis.nextPause = null;\n\t\tthis._isAnimating = false;\n\t\tthis._animationFrameId = null;\n\t\tthis.stringPos = 0;\n\t\tthis.nodeCounter = 0;\n\t\tthis.enclosedID = [];\n\t\tthis.parseIndex = 0;\n\t\tthis.actionsPlayed = 0;\n\n\t\t// Build action patterns if not cached or if static cache version changed\n\t\tconst staticVersion = (this.constructor as typeof TypeWriter).patternCacheVersion;\n\t\tif (!this._actionPatternCache || this._patternCacheVersion !== staticVersion) {\n\t\t\tthis._patternCacheVersion = staticVersion;\n\t\t\tthis._buildActionPatterns();\n\t\t}\n\n\t\tthis.setDisplay(currentString);\n\t\tthis.elements = this.querySelectorAll('type-character') as NodeListOf;\n\n\t\t// Callbacks\n\t\tif (typeof config.onBegin === 'function') {\n\t\t\tconfig.onBegin(this);\n\t\t}\n\n\t\tconfig.preStringTyped?.(this.stringPos, this);\n\n\t\tif (typeof this.props.delay === 'number') {\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.typewrite();\n\t\t\t}, this.props.delay);\n\t\t} else {\n\t\t\tthis.typewrite();\n\t\t}\n\t}\n\n\t/**\n\t * Check for non-enclosing html tags and return properties for them.\n\t */\n\tcheckVoidTags(element: Node): VoidElementResult | false {\n\t\tif (!(element instanceof Element)) {\n\t\t\treturn false;\n\t\t}\n\n\t\tconst replace = (text: string, index: number = 1): string => text\n\t\t\t.slice(text.indexOf('-') + index)\n\t\t\t.replace(/[-](\\w)/g, m => m[1].toUpperCase());\n\n\t\tconst voidElements = ['br', 'hr', 'img'];\n\t\tconst voidAttributeNames = element.localName && element.getAttributeNames();\n\n\t\tconst voidAttributes = voidAttributeNames && voidAttributeNames.map(elm => ({\n\t\t\t[elm]: elm.slice(0, 5) === 'data-'\n\t\t\t\t? (element as HTMLElement).dataset[replace(elm)]\n\t\t\t\t: elm.slice(0, 5) === 'aria-'\n\t\t\t\t\t? (element as HTMLElement).getAttribute(elm)\n\t\t\t\t\t: elm === 'class'\n\t\t\t\t\t\t? element.className\n\t\t\t\t\t\t: (element as HTMLElement)[elm as keyof HTMLElement]\n\t\t})).reduce((a, v) => Object.assign(a, v), {} as Record);\n\n\t\tconst voidProperties: Record; state: Record }> = voidElements.map(e => ({\n\t\t\t[e]: {\n\t\t\t\tprops: { [e]: true },\n\t\t\t\tstate: { ...(voidAttributes) }\n\t\t\t}\n\t\t})).reduce((a, v) => Object.assign(a, v), {});\n\n\t\tif (element.localName && voidProperties[element.localName.toLowerCase()]) {\n\t\t\tconst { props, state } = voidProperties[element.localName.toLowerCase()];\n\t\t\tconst node = document.createElement('type-character') as TypeCharacter;\n\t\t\tnode.style.opacity = '0';\n\n\t\t\treturn { props, state, node };\n\t\t}\n\n\t\treturn false;\n\t}\n\n\t/**\n\t * Setup the current string with the proper elements to run the typing animation.\n\t * Uses DocumentFragment for batched DOM operations.\n\t */\n\tsetDisplay(curString: string): void {\n\t\tconst typingElement = document.createElement('div');\n\t\ttypingElement.innerHTML = curString;\n\n\t\tconst textNodes = this._getLeafNodes(typingElement);\n\n\t\tthis.actions = [];\n\t\tlet voidCount = 0;\n\n\t\tfor (const node of textNodes) {\n\t\t\tconst isVoidElement = this.checkVoidTags(node);\n\t\t\tif (isVoidElement) {\n\t\t\t\tvoidCount++;\n\n\t\t\t\tconst { props, state, node: voidNode } = isVoidElement;\n\t\t\t\tvoidNode.setProps(props as any);\n\n\t\t\t\tif (state) {\n\t\t\t\t\tvoidNode.setState(state as any);\n\t\t\t\t}\n\n\t\t\t\t(node as ChildNode).replaceWith(voidNode);\n\t\t\t} else {\n\t\t\t\tconst [fragment, actions] = this.parseStringToFragment(node.textContent || '', voidCount);\n\t\t\t\tthis.actions = this.actions.concat(...actions);\n\n\t\t\t\t(node as ChildNode).replaceWith(fragment);\n\t\t\t}\n\t\t}\n\n\t\tconst container = this.querySelector('div');\n\t\tif (container) {\n\t\t\t// Use DocumentFragment for final insertion\n\t\t\tconst fragment = document.createDocumentFragment();\n\t\t\tfragment.append(...typingElement.childNodes);\n\t\t\tcontainer.replaceChildren(fragment);\n\t\t}\n\t}\n\n\t/**\n\t * Stop the typing animation.\n\t */\n\tstop(): void {\n\t\tthis._isAnimating = false;\n\t\tif (this._animationFrameId !== null) {\n\t\t\tcancelAnimationFrame(this._animationFrameId);\n\t\t\tthis._animationFrameId = null;\n\t\t}\n\n\t\tif (typeof this.state.config.onStop === 'function') {\n\t\t\tthis.state.config.onStop(this.stringPos, this);\n\t\t}\n\t}\n\n\t/**\n\t * Finish the typing animation immediately, showing all remaining text.\n\t *\n\t * @param instant - If true, immediately show full text without animation.\n\t * If false, rush through at maximum speed.\n\t */\n\tfinish(instant: boolean = false): void {\n\t\tif (instant) {\n\t\t\t// Get the string being typed\n\t\t\tconst str = this.state.strings[0];\n\n\t\t\t// Get the container element\n\t\t\tconst container = this.querySelector('div');\n\n\t\t\tif (container === null) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Stop and clean up animation\n\t\t\tthis.destroy();\n\n\t\t\t// Show the full text with all action markers stripped\n\t\t\tcontainer.innerHTML = (this.constructor as typeof TypeWriter).stripActionMarkers(str);\n\n\t\t\t// Fire the typed event so listeners (e.g. didFinishTyping) are notified.\n\t\t\t// destroy() already sets finished_typing=true via onDestroy, but\n\t\t\t// onStringTyped also triggers the didFinishTyping engine event.\n\t\t\tthis.state.config.onStringTyped?.(this.stringPos, this);\n\t\t} else {\n\t\t\t// Rush through animation at maximum speed\n\t\t\tconst minSpeed = this.engine.setting('minTextSpeed') as number;\n\t\t\tthis.speed = minSpeed > 0 ? 0 : minSpeed;\n\t\t\tthis.ignorePause = true;\n\n\t\t\tif (this.loops) {\n\t\t\t\tthis.loops = false;\n\t\t\t\tthis.stopLoop = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Set content to display, with optional typing animation.\n\t * This is the primary API for displaying text in the TypeWriter.\n\t *\n\t * @param text - The text to display (may include TypeWriter action markers)\n\t * @param animate - If true, animate the text. If false, show instantly.\n\t * Also respects the global TypeAnimation setting.\n\t */\n\tsetContent(text: string, animate: boolean = true): void {\n\t\tconst shouldAnimate = animate && this.engine.setting('TypeAnimation') === true;\n\n\t\tif (shouldAnimate) {\n\t\t\t// Signal start of typing\n\t\t\tthis.engine.global('finished_typing', false);\n\t\t\tthis.engine.trigger('didStartTyping');\n\n\t\t\t// Set strings and trigger animation via state update\n\t\t\tthis.setState({ strings: [text] });\n\t\t} else {\n\t\t\t// Show text instantly with action markers stripped\n\t\t\tconst strippedText = (this.constructor as typeof TypeWriter).stripActionMarkers(text);\n\n\t\t\t// Find or create container\n\t\t\tlet container = this.querySelector('div');\n\t\t\tif (!container) {\n\t\t\t\t// Container was cleared, create a new one\n\t\t\t\tcontainer = document.createElement('div');\n\t\t\t\tcontainer.className = 'type-writer-container';\n\t\t\t\tthis.appendChild(container);\n\t\t\t}\n\n\t\t\tcontainer.innerHTML = strippedText;\n\n\t\t\t// Signal completion\n\t\t\tthis.engine.global('finished_typing', true);\n\t\t\tthis.engine.trigger('didFinishTyping');\n\t\t}\n\t}\n\n\t/**\n\t * Start the typing animation again.\n\t */\n\tstart(): void {\n\t\tif (this._isAnimating) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.typewrite();\n\n\t\tif (typeof this.state.config.onStart === 'function') {\n\t\t\tthis.state.config.onStart(this.stringPos, this);\n\t\t}\n\t}\n\n\t/**\n\t * Parse through the current string and return a DocumentFragment with type-character elements.\n\t * Uses DocumentFragment for better performance with batch DOM operations.\n\t */\n\tparseStringToFragment(curString: string, voidCount: number): [DocumentFragment, (ParsedAction | undefined)[]] {\n\t\tconst fragment = document.createDocumentFragment();\n\t\tconst actions: (ParsedAction | undefined)[] = [];\n\n\t\t// Use cached pattern - fast path if no actions\n\t\tif (!this._actionPatternCache) {\n\t\t\tthis._parseTextOnlyToFragment(curString, fragment);\n\t\t\treturn [fragment, actions];\n\t\t}\n\n\t\tconst sections = curString.split(this._actionPatternCache);\n\t\tlet nodeCounter = 0;\n\t\tlet falseCounter = 0;\n\t\tlet charIndex = 0; // Track character index for staggered animations\n\n\t\tsections.forEach((section, i) => {\n\t\t\tthis.parseIndex++;\n\n\t\t\t// text section (even indices)\n\t\t\tif (i % 2 === 0) {\n\t\t\t\tconst special: Record = {};\n\n\t\t\t\tif (this.enclosedID.length) {\n\t\t\t\t\tfor (const id of this.enclosedID) {\n\t\t\t\t\t\tspecial[id] = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tfor (const char of section) {\n\t\t\t\t\tconst isWhite = WHITESPACE_PATTERN.test(char);\n\t\t\t\t\tif (isWhite) {\n\t\t\t\t\t\tfragment.appendChild(document.createTextNode(char));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (falseCounter) {\n\t\t\t\t\t\t\tnodeCounter -= falseCounter;\n\t\t\t\t\t\t\tfalseCounter = 0;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnodeCounter++;\n\t\t\t\t\t\tconst node = document.createElement('type-character') as TypeCharacter;\n\t\t\t\t\t\tnode.setProps({ letter: char, charIndex });\n\t\t\t\t\t\tcharIndex++;\n\n\t\t\t\t\t\tif (this.enclosedID.length) {\n\t\t\t\t\t\t\tnode.setState({ special } as any);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tnode.style.opacity = '0';\n\t\t\t\t\t\tfragment.appendChild(node);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// action section (odd indices)\n\t\t\t} else {\n\t\t\t\tconst result = this._parseActionSection(section, nodeCounter, voidCount);\n\t\t\t\tif (result) {\n\t\t\t\t\tconst { action, adjustedNodeCounter, adjustedFalseCounter } = result;\n\t\t\t\t\tif (action) {\n\t\t\t\t\t\tactions[adjustedNodeCounter] = action;\n\t\t\t\t\t}\n\t\t\t\t\tnodeCounter = adjustedNodeCounter + 1;\n\t\t\t\t\tfalseCounter = adjustedFalseCounter + 1;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\n\t\treturn [fragment, actions];\n\t}\n\n\t/**\n\t * Parse text without any actions directly into a DocumentFragment (fast path).\n\t */\n\tprivate _parseTextOnlyToFragment(curString: string, fragment: DocumentFragment): void {\n\t\tlet charIndex = 0;\n\t\tfor (const char of curString) {\n\t\t\tif (WHITESPACE_PATTERN.test(char)) {\n\t\t\t\tfragment.appendChild(document.createTextNode(char));\n\t\t\t} else {\n\t\t\t\tconst node = document.createElement('type-character') as TypeCharacter;\n\t\t\t\tnode.setProps({ letter: char, charIndex });\n\t\t\t\tcharIndex++;\n\t\t\t\tnode.style.opacity = '0';\n\t\t\t\tfragment.appendChild(node);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Parse an action section and return the parsed action.\n\t */\n\tprivate _parseActionSection(\n\t\tsection: string,\n\t\tnodeCounter: number,\n\t\tvoidCount: number\n\t): { action: ParsedAction | undefined; adjustedNodeCounter: number; adjustedFalseCounter: number } | undefined {\n\t\tlet match: RegExpMatchArray | null = null;\n\t\tlet type: ActionType | undefined;\n\n\t\t// Try number action\n\t\tif (this._numberActionsCache) {\n\t\t\ttype = 'number';\n\t\t\tmatch = section.match(new RegExp(`^\\\\{(?${this._numberActionsCache})[:\\\\s](?\\\\d+)\\\\}$`));\n\t\t}\n\n\t\t// Try enclosed action\n\t\tif (!match && this._enclosedActionsCache) {\n\t\t\ttype = 'enclosed';\n\t\t\tmatch = section.match(new RegExp(`^\\\\{/?(?${this._enclosedActionsCache})(?.*)\\\\}$`));\n\n\t\t\tif (match?.groups) {\n\t\t\t\tconst isClosing = section.startsWith('{/');\n\t\t\t\tif (isClosing) {\n\t\t\t\t\tif (this.enclosedID.length) {\n\t\t\t\t\t\t// Extract action name from enclosedID (format: \"actionName-parseIndex\")\n\t\t\t\t\t\t// Action names can contain hyphens (e.g., \"shake-hard\"), so we find the last hyphen\n\t\t\t\t\t\tconst lastId = this.enclosedID[this.enclosedID.length - 1];\n\t\t\t\t\t\tconst lastDashIndex = lastId.lastIndexOf('-');\n\t\t\t\t\t\tconst idAction = lastDashIndex > 0 ? lastId.substring(0, lastDashIndex) : lastId;\n\t\t\t\t\t\tif (idAction === match.groups.action) {\n\t\t\t\t\t\t\tthis.enclosedID.pop();\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tthis.engine.debug.error('Mismatched closing action:', match.groups.action);\n\t\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.engine.debug.error('Closing action without opening:', match.groups.action);\n\t\t\t\t\t\treturn undefined;\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthis.enclosedID.push(`${match.groups.action}-${this.parseIndex}`);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// Try instance action\n\t\tif (!match && this._instanceActionsCache) {\n\t\t\ttype = 'instance';\n\t\t\tmatch = section.match(new RegExp(`^\\\\{(?${this._instanceActionsCache})\\\\/\\\\}$`));\n\t\t}\n\n\t\tif (!match?.groups) {\n\t\t\tthis.engine.debug.error('Failed to match action:', section);\n\t\t\treturn undefined;\n\t\t}\n\n\t\tlet options: Record | string[] | undefined;\n\n\t\tif (type === 'enclosed' && match.groups.options) {\n\t\t\toptions = this._parseOptions(match.groups.options);\n\t\t}\n\n\t\tlet adjustedNodeCounter = nodeCounter;\n\t\tif (voidCount) {\n\t\t\tadjustedNodeCounter += voidCount;\n\t\t}\n\n\t\tconst action: ParsedAction = {\n\t\t\taction: match.groups.action,\n\t\t\t...(match.groups.n && { n: match.groups.n }),\n\t\t\t...(options && { options }),\n\t\t\t...(match.groups.text !== undefined && { text: match.groups.text }),\n\t\t\t...(type === 'enclosed' && { id: this.enclosedID[this.enclosedID.length - 1] })\n\t\t};\n\n\t\tif (voidCount) {\n\t\t\tadjustedNodeCounter -= voidCount;\n\t\t}\n\n\t\treturn { action, adjustedNodeCounter, adjustedFalseCounter: 0 };\n\t}\n\n\t/**\n\t * Parse options from an enclosed action.\n\t */\n\tprivate _parseOptions(optionsStr: string): Record | string[] {\n\t\tconst options: Record | string[] = {};\n\t\tlet opts: string | string[] = optionsStr.trim();\n\n\t\tif (QUOTED_VALUE_PATTERN.test(opts)) {\n\t\t\topts = opts\n\t\t\t\t.replace(QUOTE_CONTENT_PATTERN, (_match, _quote, content: string) => {\n\t\t\t\t\treturn content.replace(/\\s/g, '[~]');\n\t\t\t\t})\n\t\t\t\t.replace(/\\s/g, '=')\n\t\t\t\t.replace(/\\[~\\]/g, ' ')\n\t\t\t\t.split(/=/g);\n\t\t} else if (CSS_VALUE_PATTERN.test(opts)) {\n\t\t\topts = opts\n\t\t\t\t.replace(CSS_VALUE_PATTERN, (_match, _quote, content: string) => {\n\t\t\t\t\treturn ' ' + content.replace(/\\s/g, '[~]');\n\t\t\t\t})\n\t\t\t\t.replace(/\\s/g, ':')\n\t\t\t\t.replace(/\\[~\\]/g, ' ')\n\t\t\t\t.split(/:/g);\n\t\t} else {\n\t\t\t// If no special patterns, split by whitespace and return as an array of strings.\n\t\t\topts = opts.split(/\\s+/g);\n\t\t\treturn opts;\n\t\t}\n\n\t\tif (Array.isArray(opts)) {\n\t\t\topts.forEach((e, i) => {\n\t\t\t\tif (i % 2 === 0) {\n\t\t\t\t\toptions[e] = opts[i + 1];\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\treturn options;\n\t}\n\n\t/**\n\t * Execute the provided action.\n\t */\n\texecuteAction(actionObj: ParsedAction): void {\n\t\tconst actions = (this.constructor as typeof TypeWriter).actions();\n\n\t\tfor (const key in actions) {\n\t\t\tif (actionObj.action === key) {\n\t\t\t\tconst { action: _, ...rest } = actionObj;\n\t\t\t\tconst variables = Object.values(rest);\n\n\t\t\t\tactions[key].action.apply(this, variables);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Adjust the received speed and return it with some randomization.\n\t * Uses shared utility from typing-utils.\n\t */\n\thumanizer(speed: number): number {\n\t\treturn humanizeSpeed(speed);\n\t}\n\n\t/**\n\t * Set the cursor on an element, and unset it from the previous element.\n\t */\n\tsetCursor(element: Element | undefined, unset: Element | undefined): void {\n\t\tif (unset) {\n\t\t\tthis.unsetCursor(unset);\n\t\t}\n\n\t\tif (element) {\n\t\t\telement.classList.add('cursor');\n\t\t}\n\t}\n\n\t/**\n\t * Unset the cursor on an element.\n\t */\n\tunsetCursor(element: NodeList | Element): void {\n\t\tif (element instanceof NodeList) {\n\t\t\telement.forEach(e => (e as Element).classList.remove('cursor'));\n\t\t} else if (element instanceof Element) {\n\t\t\telement.classList.remove('cursor');\n\t\t}\n\t}\n\n\t/**\n\t * Unset all cursors at once.\n\t */\n\tunsetAllCursors(ignore: boolean = false): void {\n\t\tif (typeof this.props.showCursor === 'boolean' || typeof this.props.showCursor === 'number') {\n\t\t\tif (this.props.showCursor) {\n\t\t\t\tif (this.props.hideCursorOnEnd || ignore) {\n\t\t\t\t\tthis.unsetCursor(this.querySelectorAll('type-character'));\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.state.config.showCursor) {\n\t\t\tif (this.state.config.hideCursorOnEnd || ignore) {\n\t\t\t\tthis.unsetCursor(this.querySelectorAll('type-character'));\n\t\t\t}\n\t\t}\n\t}\n\n\t// Reveal one character at a time\n\ttypewrite(): void {\n\t\t// Execute actions that appear before the current character\n\t\tif (this.actions[this.nodeCounter]) {\n\t\t\tthis.executeAction(this.actions[this.nodeCounter]!);\n\n\t\t\tthis.nodeCounter++;\n\t\t\tthis.actionsPlayed++;\n\n\t\t\treturn this.typewrite();\n\t\t}\n\n\t\t// Reset node counter after executing actions\n\t\tif (this.actionsPlayed) {\n\t\t\tthis.nodeCounter -= this.actionsPlayed;\n\t\t\tthis.actionsPlayed = 0;\n\t\t}\n\n\t\t// Calculate target wait time\n\t\tthis._targetWaitTime = (!this.ignorePause && this.nextPause) || this.humanizer(this.speed);\n\t\tthis._accumulatedTime = 0;\n\t\tthis._lastFrameTime = performance.now();\n\t\tthis._isAnimating = true;\n\n\t\t// Start the animation frame loop\n\t\tthis._animationFrameId = requestAnimationFrame((timestamp) => this._animationLoop(timestamp));\n\t}\n\n\t/**\n\t * Animation frame loop for smooth typing.\n\t */\n\tprivate _animationLoop(timestamp: number): void {\n\t\tif (!this._isAnimating) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Calculate delta time\n\t\tconst deltaTime = timestamp - this._lastFrameTime;\n\t\tthis._lastFrameTime = timestamp;\n\t\tthis._accumulatedTime += deltaTime;\n\n\t\t// Some developers may want the text to appear instantly,\n\t\t// while disabling \"InstantText\".\n\t\tif (this._targetWaitTime < 0) {\n\t\t\twhile (this.elements && this.nodeCounter < this.elements.length) {\n\t\t\t\tthis._revealNextCharacter(true);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// Check if we've waited long enough\n\t\tif (this._accumulatedTime >= this._targetWaitTime) {\n\t\t\tthis._revealNextCharacter();\n\t\t} else {\n\t\t\t// Continue waiting\n\t\t\tthis._animationFrameId = requestAnimationFrame((ts) => this._animationLoop(ts));\n\t\t}\n\t}\n\n\t/**\n\t * Reveal the next character and schedule the next one.\n\t */\n\tprivate _revealNextCharacter(instant: boolean = false): void {\n\t\tif (this.nextPause) {\n\t\t\tthis.nextPause = null;\n\n\t\t\tif (typeof this.state.config.onTypingResumed === 'function') {\n\t\t\t\tthis.state.config.onTypingResumed(this.stringPos, this);\n\t\t\t}\n\t\t}\n\n\t\t// Handle cursor display\n\t\tif (typeof this.props.showCursor === 'boolean' || typeof this.props.showCursor === 'number') {\n\t\t\tif (this.props.showCursor && this.elements) {\n\t\t\t\tthis.setCursor(this.elements[this.nodeCounter], this.elements[this.nodeCounter - 1]);\n\t\t\t}\n\t\t} else if (this.state.config.showCursor && this.elements) {\n\t\t\tthis.setCursor(this.elements[this.nodeCounter], this.elements[this.nodeCounter - 1]);\n\t\t}\n\n\t\tif (this.stopLoop) {\n\t\t\tthis.stopLoop = false;\n\t\t}\n\n\t\t// Reveal character using opacity (avoids layout recalculation)\n\t\tif (this.elements?.[this.nodeCounter]) {\n\t\t\tthis.elements[this.nodeCounter].style.opacity = '';\n\t\t}\n\t\tthis.nodeCounter += 1;\n\n\t\t// If the developer wants instant text while keeping \"InstantText\" off,\n\t\t// this will handle executing all remaining actions semi-instantly.\n\t\tif (instant && this.elements && this.nodeCounter < this.elements.length) {\n\t\t\tif (this.actions[this.nodeCounter]) {\n\t\t\t\tthis.executeAction(this.actions[this.nodeCounter]!);\n\n\t\t\t\tthis.actionsPlayed++;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.actionsPlayed) {\n\t\t\t\tthis.nodeCounter -= this.actionsPlayed;\n\t\t\t\tthis.actionsPlayed = 0;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.elements && this.nodeCounter < this.elements.length) {\n\t\t\t// Continue typing - start new timing cycle\n\t\t\tthis.typewrite();\n\t\t} else {\n\t\t\t// Typing complete\n\t\t\tthis._isAnimating = false;\n\t\t\tthis._animationFrameId = null;\n\n\t\t\tthis.unsetAllCursors();\n\n\t\t\tif (this.loops) {\n\t\t\t\tif (Number.isInteger(this.loops) && typeof this.loops === 'number') {\n\t\t\t\t\tif (this.loops > 0) {\n\t\t\t\t\t\tthis.loops--;\n\t\t\t\t\t\tif (this.loops === 0) {\n\t\t\t\t\t\t\tthis.stopLoop = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (typeof this.state.config.onStringLoop === 'function') {\n\t\t\t\t\t\t\tthis.state.config.onStringLoop(this.stringPos, this);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn this.initiate();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof this.state.config.onStringLoop === 'function') {\n\t\t\t\t\t\tthis.state.config.onStringLoop(this.stringPos, this);\n\t\t\t\t\t}\n\n\t\t\t\t\treturn this.initiate();\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.state.config.onStringTyped?.(this.stringPos, this);\n\t\t}\n\t}\n\n\t/**\n\t * Get the leaf nodes of a provided node.\n\t * Uses shared utility from typing-utils.\n\t */\n\tprivate _getLeafNodes(node: Node | null): Node[] {\n\t\treturn getLeafNodes(node);\n\t}\n\n\t/**\n\t * Stop and destroy the current typing animation.\n\t */\n\tdestroy(loop?: boolean): void {\n\t\t// Cancel any pending animation frame\n\t\tthis._isAnimating = false;\n\t\tif (this._animationFrameId !== null) {\n\t\t\tcancelAnimationFrame(this._animationFrameId);\n\t\t\tthis._animationFrameId = null;\n\t\t}\n\n\t\tthis.ignorePause = undefined;\n\t\tthis.loops = false;\n\n\t\tif (loop) {\n\t\t\twhile (this.firstElementChild?.firstChild) {\n\t\t\t\tthis.firstElementChild.firstChild.remove();\n\t\t\t}\n\t\t}\n\n\t\tif (this.elements) {\n\t\t\tthis.elements.forEach(e => e.removeAttribute('style'));\n\t\t}\n\n\t\tif (typeof this.state.config.onDestroy === 'function') {\n\t\t\tthis.state.config.onDestroy(this);\n\t\t}\n\n\t\tthis.unsetAllCursors();\n\n\t\tif (this.stopLoop) {\n\t\t\tthis.stopLoop = false;\n\t\t}\n\t}\n\n\toverride async onStateUpdate(property: string, _oldValue: unknown, _newValue: unknown): Promise {\n\t\tif (property === 'strings') {\n\t\t\tif (!this.state.ignore) {\n\t\t\t\tthis.forceRender().then(() => {\n\t\t\t\t\tthis.destroy(!!this.loops);\n\t\t\t\t}).finally(() => {\n\t\t\t\t\tthis.initiate();\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.setState({ ignore: false });\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didMount(): Promise {\n\t\tif (this.props.start) {\n\t\t\tthis.initiate();\n\t\t}\n\t}\n\n\toverride render(): string {\n\t\treturn '
';\n\t}\n\n\toverride async willUnmount(): Promise {\n\t\tthis.destroy(true);\n\n\t\tthis.elements = null;\n\t\tthis.enclosedID = [];\n\t\tthis.innerHTML = '';\n\t}\n}\n\nexport default TypeWriter;\n\n", + "import type { Properties } from '@aegis-framework/pandora';\n\nimport Component from '../../lib/Component';\n\n// Either displays a single character OR a void HTML element.\nexport interface TypeCharacterProps extends Properties {\n\t// The character to display (false if this is a void element)\n\tletter: string | false;\n\t// Marks this as a
void element\n\tbr?: boolean;\n\t// Marks this as a
void element\n\thr?: boolean;\n\t// Marks this as an void element\n\timg?: boolean;\n\t// Character index for staggered animations\n\tcharIndex?: number;\n}\n\nexport interface TypeCharacterState extends Properties {\n\t// Enclosed action IDs that apply to this character (e.g., { \"shake-123\": true })\n\tspecial?: Record;\n\t// For void elements: HTML attributes like src, alt, class, etc.\n\t[key: string]: unknown;\n}\n\n// The void element types supported\ntype VoidElementType = 'br' | 'hr' | 'img';\n\nclass TypeCharacter extends Component {\n\t// Cache of currently applied effect attributes\n\tprivate _appliedEffects: Set = new Set();\n\n\tconstructor () {\n\t\tsuper();\n\n\t\tthis.props = {\n\t\t\tletter: false\n\t\t};\n\t}\n\n\tprivate _getVoidElementType (): VoidElementType | null {\n\t\tif (this.props.br) return 'br';\n\t\tif (this.props.hr) return 'hr';\n\t\tif (this.props.img) return 'img';\n\t\treturn null;\n\t}\n\n\t// Extract effect names from special state keys.\n\t// Keys are in format \"effectName-uniqueId\" (e.g., \"shake-123\")\n\tprivate _extractEffectNames (): string[] {\n\t\tif (!this.state.special) return [];\n\n\t\treturn Object.keys(this.state.special)\n\t\t\t.filter(key => this.state.special![key])\n\t\t\t.map(key => {\n\t\t\t\t// Extract effect name by removing the -uniqueId suffix\n\t\t\t\tconst lastDashIndex = key.lastIndexOf('-');\n\t\t\t\treturn lastDashIndex > 0 ? key.substring(0, lastDashIndex) : key;\n\t\t\t});\n\t}\n\n\t// Apply effect data attributes to the element based on special state.\n\tprivate _applyEffectAttributes (): void {\n\t\tconst effects = this._extractEffectNames();\n\n\t\t// Remove old effects that are no longer active\n\t\tfor (const oldEffect of this._appliedEffects) {\n\t\t\tif (!effects.includes(oldEffect)) {\n\t\t\t\tthis.removeAttribute(`data-effect-${oldEffect}`);\n\t\t\t\tthis._appliedEffects.delete(oldEffect);\n\t\t\t}\n\t\t}\n\n\t\t// Apply new effects\n\t\tfor (const effect of effects) {\n\t\t\tif (!this._appliedEffects.has(effect)) {\n\t\t\t\tthis.setAttribute(`data-effect-${effect}`, '');\n\t\t\t\tthis._appliedEffects.add(effect);\n\t\t\t}\n\t\t}\n\n\t\t// Set character index for staggered animations (wave, glitch-slow, etc.)\n\t\tif (typeof this.props.charIndex === 'number') {\n\t\t\tthis.style.setProperty('--char-index', String(this.props.charIndex));\n\t\t}\n\t}\n\n\toverride didMount (): Promise {\n\t\tthis._applyEffectAttributes();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onStateUpdate (property: string, _oldValue: unknown, _newValue: unknown): Promise {\n\t\tif (property === 'special') {\n\t\t\tthis._applyEffectAttributes();\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\toverride onPropsUpdate (property: string, _oldValue: unknown, _newValue: unknown): Promise {\n\t\tif (property === 'charIndex') {\n\t\t\tif (typeof this.props.charIndex === 'number') {\n\t\t\t\tthis.style.setProperty('--char-index', String(this.props.charIndex));\n\t\t\t}\n\t\t}\n\t\treturn Promise.resolve();\n\t}\n\n\trender (): string {\n\t\tconst { letter } = this.props;\n\t\tconst voidType = this._getVoidElementType();\n\n\t\t// Render void element\n\t\tif (voidType) {\n\t\t\tconst attrs = Object.entries(this.state)\n\t\t\t\t.filter(([key, value]) => value !== undefined && key !== 'special')\n\t\t\t\t.map(([key, value]) => `${key}=\"${value}\"`)\n\t\t\t\t.join(' ');\n\n\t\t\treturn attrs ? `<${voidType} ${attrs} />` : `<${voidType} />`;\n\t\t}\n\n\t\t// Render character\n\t\treturn letter || '';\n\t}\n}\n\nTypeCharacter.tag = 'type-character';\n\nexport default TypeCharacter;\n", + "import type {\n Configuration,\n ActionApplyResult,\n ActionRevertResult,\n ActionRunContext,\n ActionRevertContext,\n SaveSlot,\n} from './types';\n\nimport type { VisualNovelEngine } from './types/Monogatari';\n\n/**\n * An action describes the functionality for a Monogatari statement, when Monogatari\n * reads a part of the script (a statement), it will look for an action that matches\n * the statement and run it.\n *\n * The life cycle of an action is divided in three parts: Mounting, Application\n * and Reverting.\n *\n * The mounting cycle has 3 steps:\n *\n * 1. Setup - Here the action needs to set up everything it will need for working\n * generally, in this section an action will register the variables it\n * needs such as object histories and state variables or even add the\n * HTML contents to the document.\n *\n * 2. Bind - Once the action has been setup, its time to bind all the necessary\n * event listeners or perfom more operations on the DOM once all elements\n * have been setup.\n *\n * 3. Init - Finally, once the action was setup and it performed all the needed\n * bindings, it may declare or modify variables that needed the HTML to\n * be setup first or perform any other needed final operations.\n *\n * As noted, the Mounting cycle is mostly about getting everything setup for a\n * correct operation of the action. Thr Application and Reverting cycles are used\n * for the actual workings of an action in a game.\n *\n * Before executing an action Monogatari will check if the current statement matches\n * with the action, therefore the Action must implement a matching function. If\n * the statement to match should be a String, the action must implement the\n * matchString () method, if it should be an Object, the action must implement\n * the matchObject () method. Both should return a boolean on whether the action\n * matches the given statement or not.\n *\n *\n * The Application cycle refers to the cycle of an Action when it is run because of\n * a statement in the script.\n *\n * The Application Cycle has 3 steps as well:\n *\n * 1. Will Apply - Executed when the action will be applied, if any operations\n * need to be done before its application, this is the place.\n *\n * 2. Apply - The application itself, this is where all the logic regarding the\n * action must be applied. Of course every action will implement its\n * own logic depending on what it has to do.\n *\n * 3. Did Apply - Executed after the action was applied, this function is great\n * for cleanup operations or any other thing that needs to be done\n * after the action was applied.\n *\n * While the Application clycle is all about executing the action, the Revert\n * cycle is the opposite and it reverts the things the Application cycle does.\n * Reverting is used when the player goes back in the game and has equivalent\n * steps to the Application Cycle:\n *\n * 1. Will Revert - Executed when the action will be reverted, if any operations\n * need to be done before its revertion such as checking for history\n * elements or any other check, this is the place.\n *\n * 2. Revert - The reversion of the action, its common that the actions revert to\n * previous states or revert other changes done by the application of\n * an action. Every action will implement its own logic depending on\n * what it has to do.\n *\n * 3. Did Revert - Executed after the action was reverted, this function is great\n * for cleanup operations or any other thing that needs to be done\n * after the action was reverted.\n *\n * @class Action\n */\nclass Action {\n /**\n * Marks the action as experimental, meaning it's not stable and should not\n * be used in production.\n */\n static _experimental: boolean = false;\n\n /**\n * If needed, every action should declare its configuration as follows. This\n * configuration object should be used to store action-specific settings as well\n * as other objects/assets used by the action. If any specific object needs\n * recurrent access such as the declarations in the script.js file, provinding\n * a static function for that specific object could be great.\n *\n * IMPORTANT: Subclasses should declare their own `static _configuration = {}`\n * to avoid sharing state with other actions.\n */\n static _configuration: Configuration = {};\n\n /**\n * All actions must have an ID, with this ID the developers will be able to\n * access the action classes, remove actions or register new ones. They must also\n * be unique.\n */\n static id: string = 'Action';\n\n /**\n * The loading order of an action can be used to sort which actions should be\n * run before or after the others when a game is loaded in case they have some\n * dependencies between themselves.\n */\n static loadingOrder: number = 0;\n\n /**\n * Reference to the Monogatari engine (set by engine on registration)\n */\n static engine: VisualNovelEngine;\n\n /**\n * We will use this instead of the engine block\n */\n static blocking: boolean = false;\n\n /**\n * The original statement this action was instantiated with\n */\n _statement: string | string[] | Record | ((...args: unknown[]) => unknown) | undefined;\n\n /**\n * Current cycle: 'Application' or 'Revert'\n */\n _cycle: 'Application' | 'Revert' | undefined;\n\n /**\n * Extra context passed to the action\n */\n _extras: Record | undefined;\n\n /**\n * Context reference (usually the Monogatari class)\n * @deprecated - This property is deprecated and will be removed in a future version. Use the engine property instead.\n */\n context: VisualNovelEngine | undefined;\n\n /**\n * @static configuration - A simple function providing access to the configuration\n * object of the function. If the action has a configuration object it must\n * also include this method.\n *\n * @param {Object|string} [object = null] - Object with which current\n * configuration will be updated with (i.e. Object.assign) or a string to access\n * a property.\n *\n * @return {any} - If the parameter sent was a string, the function will\n * return the value of the property whose name matches the parameter. If no\n * parameter was sent, then the function will return the whole configuration\n * object.\n */\n static configuration (object: string | Configuration | null = null): Configuration | unknown {\n if (object === null) {\n return this._configuration;\n }\n\n if (typeof object === 'string') {\n return this._configuration[object];\n }\n\n this._configuration = Object.assign({}, this._configuration, object);\n }\n\n /**\n * @static shouldProceed - Either when the user clicks in the game to proceed or\n * the autoPlay feature is ready to go on, Monogatari will first check with\n * all actions if it's ok to proceed. Every action should implement its own\n * logic for it according to its requirements.\n *\n * @param {Object} options - Options for proceeding\n * @param {boolean} options.userInitiated - Whether the proceed was initiated by user click\n * @param {boolean} options.skip - Whether skip mode is active\n * @param {boolean} options.autoPlay - Whether auto-play mode is active\n * @return {Promise} - Resolved if proceeding is alright or rejected if its not\n */\n static async shouldProceed (_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean }): Promise {}\n\n /**\n * @static willProceed - Once the shouldProceed check is passed, each action\n * should implement its own logic according to its requirements to respond to\n * the game proceeding.\n *\n * @return {Promise}\n */\n static async willProceed (): Promise {}\n\n /**\n * @static shouldRollback - Similarly to the shouldProceed () function, this one takes\n * action when the player tries to go back in the game.Monogatari will first\n * check with all actions if it's ok to go back. Every action should implement\n * its own logic for it according to its requirements.\n *\n * @return {Promise} - Resolved if going back is alright or rejected if its not\n */\n static async shouldRollback (): Promise {}\n\n /**\n * @static willRollback - Once the shouldRollback check is passed, each action\n * should implement its own logic according to its requirements to respond to\n * the game reverting the previous action\n *\n * @return {Promise}\n */\n static async willRollback (): Promise {}\n\n /**\n * @static onStart - This function acts as an event listener for when the game\n * starts. If the action needs to do any particular activities when the game\n * starts, then this function should be implemented and it will be automatically\n * called once the player starts the game.\n *\n * @return {Promise}\n */\n static async onStart (): Promise {}\n\n /**\n * @static onLoad - This function acts as an event listener for when a game\n * is loaded. If the action needs to perform any particular actions such as\n * restoring some state (i.e. showing images, playing media, etc.) when a game\n * is loaded, this function must be implemented and it will be automatically\n * called when a game is loaded.\n *\n * @return {Promise} description\n */\n static async onLoad (): Promise {}\n\n /**\n * @static onSave - This function acts as an event listener for when a game\n * is saved. If the action needs to perform any particular actions when that\n * happens, this function must be implemented and it will be automatically\n * called when a game is saved.\n *\n * @param {Object} slot - The slot object that has just been saved.\n * @param {string} slot.key - The key used to save the slot in the local storage\n * @param {Object} slot.value - The actual value saved\n *\n * @return {Promise} description\n */\n static async onSave (_slot?: SaveSlot): Promise {}\n\n /**\n * @static reset - When a game ends using the 'end' statement or before a game\n * is loaded, Monogatari will perform a reset on all its actions. If the action\n * needs to reset a state or any other variables/elements to an initial state\n * once a game is over or a new one is loaded, the logic for it must be implemented\n * here and the function will be automatically called when needed.\n *\n * @return {Promise} - Result of the reset operation\n */\n static async reset (): Promise {}\n\n /**\n * @static setup - The setup is the first step of the Mounting cycle, all\n * operations required for the action's setup should be implemented here.\n *\n * @param {string} selector - The CSS selector with which Monogatari has been\n * initialized\n * @return {Promise} - Result of the setup operation\n */\n static async setup (_selector?: string): Promise {}\n\n /**\n * @static bind - The binding is the second step of the Mounting cycle, all\n * operations related to event bindings or other sort of binding with the\n * HTML content generated in the setup phase should be implemented here.\n *\n * @param {string} selector - The CSS selector with which Monogatari has been\n * initialized\n * @return {Promise} - Result of the binding operation\n */\n static async bind (_selector?: string): Promise {}\n\n /**\n * @static init - The initialization is the last step of the Mounting cycle,\n * all final operations should be implemented here.\n *\n * @param {string} selector - The CSS selector with which Monogatari has been\n * initialized\n * @return {Promise} - Result of the initialization operation\n */\n static async init (_selector?: string): Promise {}\n\n /**\n * @static match - Currently this function is saved up for future uses.\n *\n * @param {any} statement - Statement to match\n *\n * @returns {boolean} - Whether the action matches the statement or not\n */\n static match (_statement: unknown): boolean {\n return false;\n }\n\n /**\n * @static matchString - When Monogatari goes through a string statement, it\n * will use this function to find which action it corresponds to.\n *\n * @param {string[]} statement - The statement to match, splitted into an array by spaces\n * @return {boolean} - Whether the action matches the statement or not\n */\n static matchString (_statement: string[]): boolean {\n return false;\n }\n\n /**\n * @static matchObject - Similarly to its string counterpart, this function\n * is used when Monogatari goes through an Object (generally JSON) statement\n * to find which action the statement corresponds to.\n *\n * @param {Object} statement - The statement to match,\n * @return {boolean} - Whether the action matches the statement or not\n */\n static matchObject (_statement: Record): boolean {\n return false;\n }\n\n static async beforeRun (_context: ActionRunContext): Promise {}\n static async beforeRevert (_context: ActionRevertContext): Promise {}\n\n static async afterRun (_context: ActionRunContext): Promise {}\n\n static async afterRevert (_context: ActionRevertContext): Promise {}\n\n /**\n * constuctor - Once the action has been matched through one of the match\n * functions, an instance of the action is created with the statement it\n * matched as argument. As in the match functions, the string statements will\n * actually be received as arrays of words splitted by spaces.\n *\n * @param {string[]|Object} statement - The statement it matched\n */\n constructor (_statement?: string[] | Record) {}\n\n /**\n * The engine to which this action registered to.\n *\n * @type {Monogatari}\n */\n get engine (): VisualNovelEngine {\n return (this.constructor as typeof Action).engine;\n }\n\n set engine (_value: VisualNovelEngine) {\n throw new Error('Component engine reference is hold at static level and cannot be modified.');\n }\n\n /**\n * setContext - This is a built in function in every action, the context of\n * the action will always be the Monogatari class. This is mainly used for\n * cases where the action can't import or reference directly the Monogatari\n * class so it can simply use this.context instead.\n *\n * @deprecated - This function is deprecated and will be removed in a future version. Use the engine property instead.\n *\n * @param {Monogatari} context - The Monogatari Class\n */\n setContext (context: VisualNovelEngine): void {\n this.context = context;\n }\n\n /**\n * _setStatement - Since the original statement used to match an action tends\n * to be transformed by monogatari (i.e. by splitting it or other things),\n * this action built-in function is automatically used by Monogatari to\n * set the original statement to the action once it has been instantiated.\n * Because of this function, you can always refere to the original statement\n * in the Application and Reverting cycles with this._statement;\n *\n * @param {string|Object|function} statement - The statement with which the action was run\n */\n _setStatement (statement: string | Record | ((...args: unknown[]) => unknown)): void {\n this._statement = statement;\n }\n\n /**\n * _setCycle - This simple method is used to set what cycle the action is\n * currently performing. This is useful to know on those actions that may\n * use the apply or revert methods on any situation but that have slight\n * differences on the logic.\n *\n * @param {string} cycle - 'Application' if the action is running the application\n * cycle or 'Revert' if it's running the revert cycle.\n */\n _setCycle (cycle: 'Application' | 'Revert'): void {\n this._cycle = cycle;\n }\n\n /**\n * setExtras - Some times, actions may require extra context to know what they're\n * supposed to do. The extras object should hold any additional information\n * we want to pass down to the action.\n *\n * @param {Object} extras\n */\n setExtras (extras: Record): Record {\n this._extras = extras;\n\n return this._extras;\n }\n\n /**\n * willApply - Method called before the application of an action\n *\n * @return {Promise} - Result of the willApply operation, if this function\n * returns a rejected promise, the cycle will be interrupted and the action\n * will not be applied.\n */\n async willApply (): Promise {}\n\n /**\n * apply - Method for the actual application of an action, this is where\n * the core operations of an action must be done.\n *\n * @return {Promise} - Result of the application operation\n */\n async apply (): Promise {}\n\n /**\n * didApply - If the cycle has reached this far, it means the action has\n * correctly gone through the willApply and apply functions. Now that it has\n * been applied, we can perform any cleanup operations.\n *\n * @return {Promise} - Result of the didApply operation. When resolved,\n * it should resolve to a boolean value, true if the game should go to the\n * next statement right away, false if it should wait for user's interaction.\n */\n async didApply (options?: { updateHistory?: boolean; updateState?: boolean }): Promise {\n return {\n advance: false\n };\n }\n\n /**\n * interrupt - Currently saved for future purposes, the interrupt function\n * would be used to interrupt a function when its still doing something, like\n * when the typing animation of dialogs is interrupted if you click again.\n *\n * @return {Promsie} - Result of the interruption\n */\n async interrupt (): Promise {}\n\n /**\n * willRevert - Method called before an action is reverted\n *\n * @return {Promise} - Result of the willRevert operation, if this function\n * returns a rejected promise, the cycle will be interrupted and the action\n * will not be reverted.\n */\n async willRevert (): Promise {}\n\n /**\n * revert - Method called for the actual reversion of an action, this is where\n * the core operations needed to revert an action must be done.\n *\n * @return {Promise} - Result of the reversion operation\n */\n async revert (): Promise {}\n\n /**\n * didApply - If the cycle has reached this far, it means the action has\n * correctly gone through the willRevert and revert functions. Now that it has\n * been reverted, we can perform any cleanup operations.\n *\n * @returns {Promise} - Result of the didRevert operation. When resolved,\n * it should resolve to a boolean value, true if the game should go to the\n * previous statement right away, false if it should wait for user's interaction.\n */\n async didRevert (): Promise {\n return {\n advance: false,\n step: true\n };\n }\n}\n\nexport default Action;\n", + "import Action from '../lib/Action';\nimport Component from '../lib/Component';\nimport { Util } from '@aegis-framework/artemis';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class Canvas extends Action {\n\tstatic override id = 'Canvas';\n\n\tstatic _configuration: any = {\n\t\tobjects: {},\n\t\tmodes: ['modal', 'displayable', 'immersive', 'background', 'character']\n\t};\n\n\tstatic configuration(object: any = null): any {\n\t\tif (object === null) {\n return Canvas._configuration;\n }\n\n if (typeof object === 'string') {\n return Canvas._configuration[object];\n }\n\n Canvas._configuration = Object.assign({}, Canvas._configuration, object);\n\t}\n\n\tstatic override async shouldProceed(): Promise {\n const element = this.engine.element();\n\n element.find('[data-component=\"canvas-container\"]').each((element: any) => {\n const { mode, canvas } = element.props;\n if (['immersive', 'modal'].indexOf(mode) > -1) {\n throw new Error(`Canvas \"${canvas}\" must be removed before proceeding.`);\n }\n });\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst state = this.engine.state('canvas');\n\n\t\tif (state.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst promises = [];\n\t\tfor (const canvas of state) {\n\t\t\tconst action: ActionInstance | null = this.engine.prepareAction(canvas, { cycle: 'Application' });\n\n if (action === null) {\n continue;\n }\n\n\t\t\tconst promise = action.willApply().then(() => {\n\t\t\t\treturn action.apply().then(() => {\n\t\t\t\t\treturn action.didApply({ updateHistory: false, updateState: false });\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tpromises.push(promise);\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\tawait Promise.all(promises);\n\t\t}\n\t}\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('canvas');\n\t\tthis.engine.state({\n\t\t\tcanvas: []\n\t\t});\n\t}\n\n\tstatic override async bind(): Promise {\n\t\twindow.addEventListener('resize', () => {\n\t\t\tthis.engine.element().find('[data-component=\"canvas-container\"][mode=\"background\"], [data-component=\"canvas-container\"][mode=\"immersive\"]').each((canvasContainer: any) => {\n\t\t\t\tconst { object } = canvasContainer.props;\n\t\t\t\tif (typeof object.resize === 'function') {\n\t\t\t\t\tUtil.callAsync(object.resize, this.engine, canvasContainer.layers, object.props, object.state, canvasContainer);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\t// Go through each canvas element being shown so it can be properly\n\t\t// stopped and then removed.\n\t\tthis.engine.element().find('[data-component=\"canvas-container\"]').each((canvasContainer: any) => {\n\t\t\tconst { object } = canvasContainer.props;\n\n\t\t\tpromises.push(Util.callAsync(object.stop, this.engine, canvasContainer.layers, object.props, object.state, canvasContainer).then(() => {\n\t\t\t\tcanvasContainer.remove();\n\t\t\t}));\n\t\t});\n\n\t\tthis.engine.history({\n\t\t\tcanvas: []\n\t\t});\n\n\t\tthis.engine.state({\n\t\t\tcanvas: []\n\t\t});\n\n\t\tawait Promise.all(promises);\n\t}\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'canvas';\n\t}\n\n\tstatic objects(object: any = null): any {\n\t\tif (object === null) {\n return Canvas._configuration.objects;\n }\n\n if (typeof object === 'string') {\n return Canvas._configuration.objects[object];\n }\n\n Canvas._configuration.objects = {\n ...Canvas._configuration.objects,\n ...object\n };\n\t}\n\n\tmode: string;\n\tname: string;\n\tclasses: string[];\n\tobject: any;\n\telement: any;\n\tcontainerSelector: string;\n\n\t/**\n\t * Creates an instance of a Canvas Action\n\t *\n\t * @param {string[]} parameters - List of parameters received from the script statement.\n\t * @param {string} parameters.action - In this case, action will always be 'canvas'\n\t * @param {string} [parameters.mode='displayable'] - Mode in which the canvas element will be shown (displayable, background, immersive)\n\t * @param {string} parameters.mode\n\t */\n\tconstructor([show, canvas, name, mode = 'displayable', separator, ...classes]: string[]) {\n\t\tsuper();\n\n\t\tthis.mode = mode;\n\t\tthis.name = name;\n\t\tthis.containerSelector = '';\n\n\t\tthis.classes = typeof classes !== 'undefined' ? ['animated', ...classes.filter((c) => c !== 'with')] : [];\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (Canvas._configuration.modes.indexOf(this.mode) === -1) {\n\t\t\tFancyError.show('action:canvas:invalid_mode', {\n\t\t\t\tmode: this.mode,\n\t\t\t\tvalidModes: (this.constructor as any)._configuration.modes,\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\treturn Promise.reject('Invalid canvas mode provided.');\n\t\t}\n\n\t\tthis.object = Canvas.objects(this.name);\n\n\t\tif (typeof this.object !== 'object') {\n\t\t\tFancyError.show('action:canvas:object_not_found', {\n\t\t\t\tname: this.name,\n\t\t\t\tavailableObjects: Object.keys(Canvas.objects()),\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\n\t\t\treturn Promise.reject('Canvas object did not exist or is invalid');\n\t\t}\n\n\t\tthis.element = document.createElement('canvas-container');\n\n\t\tthis.containerSelector = `[data-component=\"canvas-container\"][canvas=\"${this.name}\"][mode=\"${this.mode}\"]`;\n\n\t\treturn Promise.resolve();\n\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst defaultFunction = () => Promise.resolve();\n\n\t\tthis.element.setProps({\n\t\t\tmode: this.mode,\n\t\t\tcanvas: this.name,\n\t\t\t// We need to pass the object this way so we can clone the state\n\t\t\t// property instead of pasing it by reference. Otherwise, any changes\n\t\t\t// made to it during execution would be kept there and the next time we\n\t\t\t// use the same object, we'll receive the modified state object instead\n\t\t\t// of a clean one.\n\t\t\tobject: {\n\t\t\t\tlayers: this.object.layers || ['base'],\n\t\t\t\tprops: this.object.props || {},\n\t\t\t\tstate: { ...(this.object.state || {}) },\n\t\t\t\tstart: this.object.start || defaultFunction,\n\t\t\t\tstop: this.object.stop || defaultFunction,\n\t\t\t\tresize: this.object.resize || defaultFunction,\n\t\t\t},\n\t\t\tclasses: this.classes\n\t\t});\n\n\t\tconst gameScreen = this.engine.element().find('[data-screen=\"game\"]');\n\n\t\tif (this.mode === 'background') {\n\t\t\tgameScreen.find('[data-ui=\"background\"]').append(this.element);\n\t\t} else if (this.mode === 'immersive') {\n\t\t\tgameScreen.append(this.element);\n\t\t} else if (this.mode === 'displayable' || this.mode === 'modal' || this.mode === 'character') {\n\t\t\t(gameScreen.get(0) as unknown as Component)?.content('visuals')?.append(this.element);\n\t\t}\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tconst statement = this._statement as string;\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history('canvas').push(statement);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tcanvas: [...this.engine.state('canvas'), statement]\n\t\t\t});\n\t\t}\n\n\t\tif (this.mode === 'background' || this.mode === 'character' || this.mode === 'displayable') {\n\t\t\treturn { advance: true };\n\t\t}\n\n\t\treturn { advance: false };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tthis.containerSelector = `[data-component=\"canvas-container\"][canvas=\"${this.name}\"][mode=\"${this.mode}\"]`;\n\t\tthis.element = document.querySelector(this.containerSelector);\n\n\t\tif (this.element === null) {\n\t\t\tthrow new Error(`Canvas element \"${this.name}\" (mode: ${this.mode}) not found in the DOM.`);\n\t\t}\n\n\t\tthis.object = this.element.props.object;\n\t}\n\n\toverride async revert(): Promise {\n\t\tawait Util.callAsync(this.element.props.object.stop, this.engine, this.element.layers, this.element.props.object.props, this.element.props.object.state, this.element);\n\t\tthis.engine.element().find(this.containerSelector).remove();\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tlet foundState = false;\n\t\tthis.engine.state({\n\t\t\tcanvas: this.engine.state('canvas').filter((item: string) => {\n\t\t\t\tif (!foundState) {\n\t\t\t\t\tconst [, , name, mode] = item.split(' ');\n\t\t\t\t\tif (name === this.name && mode === this.mode) {\n\t\t\t\t\t\tfoundState = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})\n\t\t});\n\n\t\tconst history = this.engine.history('canvas') as string[];\n\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\tconst [, , name] = history[i].split(' ');\n\t\t\tif (name === this.name) {\n\t\t\t\thistory.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Canvas;", + "import Action from '../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class Choice extends Action {\n static override id = 'Choice';\n\n static override blocking = false;\n\n static override async setup(): Promise {\n this.engine.globals({\n _CurrentChoice: [],\n _ChoiceTimer: [],\n _choice_pending_rollback: [],\n _choice_just_rolled_back: [],\n });\n\n this.engine.history('choice');\n }\n\n static override async bind(): Promise {\n const engine = this.engine;\n // Bind the click event on data-do elements. This property is used for\n // every choice button.\n this.engine.on('click', '[data-choice]:not([disabled])', function (this: HTMLElement, event: Event) {\n engine.debug.debug('Registered Click on Choice Button');\n event.stopImmediatePropagation();\n event.stopPropagation();\n event.preventDefault();\n\n let doAction = this.dataset.do;\n\n // Check that the data property was not created with\n // a null property\n if (doAction == 'null') {\n Choice.blocking = false;\n return;\n }\n\n // Remove all the choices\n engine.element().find('choice-container').remove();\n\n const choice = this.dataset.choice;\n\n const currentChoice = (engine.global('_CurrentChoice') as unknown[]).pop() as { Choice: Record void }> } | undefined;\n const current = currentChoice?.Choice;\n\n if (current && typeof current.Timer !== 'undefined') {\n const timer = (engine.global('_ChoiceTimer') as unknown[]).pop() as HTMLElement & { props?: { timer: ReturnType }; element?: () => { remove: () => void } } | undefined;\n (engine.global('_choice_pending_rollback') as boolean[]).pop();\n if (typeof timer !== 'undefined' && timer.props) {\n clearTimeout(timer.props.timer);\n if (timer.parentNode !== null && timer.element) {\n timer.element().remove();\n }\n }\n }\n\n const currentChoiceExists = current && typeof choice !== 'undefined' && typeof current[choice] !== 'undefined';\n\n if (currentChoiceExists) {\n doAction = current[choice].Do;\n }\n\n const run = async () => {\n if (typeof doAction === 'string' && typeof choice === 'string') {\n const result = await engine.run(doAction);\n\n Choice.blocking = false;\n engine.history('choice').push(choice);\n\n return result;\n }\n };\n\n if (currentChoiceExists && typeof current[choice].onChosen === 'function') {\n Util.callAsync(current[choice].onChosen, engine).then(() => {\n return run();\n }).catch((e) => {\n Choice.blocking = false;\n engine.debug.error(e);\n });\n\n return;\n }\n\n run().catch((e) => {\n Choice.blocking = false;\n engine.debug.error(e);\n });\n });\n }\n\n static override async reset(): Promise {\n const engine = this.engine;\n engine.globals({\n _CurrentChoice: [],\n _ChoiceTimer: [],\n\n _choice_pending_rollback: [],\n _choice_just_rolled_back: [],\n });\n }\n\n static override async afterRevert(): Promise {\n const engine = this.engine;\n // When a choice gets reverted, it pushes a `true` value to this global variable.\n // As soon as it gets reverted, this function is run and it pops the `true` out of\n // the array, meaning it was just reverted and the choice should be showing on screeen again.\n if (engine.global('_choice_just_rolled_back').pop()) {\n return;\n }\n\n // If the player reverts once more while the choice is being shown, then we'll reach this part\n // and we can clean up any variables we need to.\n if (engine.global('_choice_pending_rollback').pop()) {\n engine.global('_ChoiceTimer').pop();\n }\n }\n\n static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise {\n if (Choice.blocking) {\n throw new Error('Choice is waiting for input');\n }\n }\n\n static override async willRollback(): Promise {\n Choice.blocking = false;\n }\n\n static override matchObject(statement: any): boolean {\n return typeof statement.Choice !== 'undefined';\n }\n\n statement: any;\n result: ActionApplyResult; // Not strictly used as property but was in original\n\n constructor(statement: any) {\n super();\n\n this.statement = statement.Choice;\n\n this.result = { advance: false };\n }\n\n override async apply({ updateLog = true } = {}): Promise {\n Choice.blocking = true;\n\n // Save a reference to the choice object globally. Since the choice buttons\n // are set a data-do property to know what the choice should do, it is\n // limited to a string and thus object or function actions would not be\n // able to be used in choices.\n this.engine.global('_CurrentChoice').push(this._statement);\n\n const promises: Promise[] = [];\n\n // Go over all the objects defined in the choice object which should be\n // call the options to chose from or the string to show as dialog\n for (const i in this.statement) {\n const choice = this.statement[i];\n\n // Check if the option is an object (a option to choose from) or\n // if it's text (dialog to be shown)\n if (typeof choice == 'object') {\n if (i === 'Timer') {\n continue;\n }\n\n this.statement[i]._key = i;\n\n // Check if the current option has a condition to be shown\n if (typeof choice.Condition !== 'undefined' && choice.Condition !== '') {\n promises.push(\n new Promise((resolve) => {\n // First check if the condition is met before we add the button\n this.engine.assertAsync(this.statement[i].Condition, this.engine).then(() => {\n resolve(this.statement[i]);\n }).catch(() => {\n resolve(undefined);\n });\n })\n );\n } else {\n promises.push(Promise.resolve(this.statement[i]));\n }\n }\n }\n\n const choices = await Promise.all(promises);\n const element = document.createElement('choice-container');\n\n // Check if the choice object defined a list of class names\n const classes = typeof this.statement.Class === 'string' ? this.statement.Class.trim() : '';\n\n (element as any).setProps({\n choices: choices.filter(c => typeof c !== 'undefined'),\n classes\n });\n\n const dialog = this.statement.Dialog;\n const timer = this.statement.Timer;\n const textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0);\n\n if (typeof dialog === 'string') {\n // If there's a dialog, we'll wait until showing that up to show\n // the choices, in order to avoid showing the choices in an incorrect\n // format if the dialog was NVL or not\n const action = this.engine.prepareAction(dialog, { cycle: 'Application' }) as ActionInstance | null;\n if (action !== null) {\n await action.willApply();\n await action.apply({ updateLog });\n await action.didApply();\n }\n }\n\n const textBoxEl = textBox as HTMLElement & { props?: { mode: string }; content?: (name: string) => { append: (el: HTMLElement) => void } };\n if (textBoxEl?.props?.mode === 'nvl' && textBoxEl.content) {\n textBoxEl.content('text').append(element);\n } else {\n this.engine.element().find('[data-screen=\"game\"]').append(element);\n }\n\n if (typeof timer === 'object') {\n const timer_display = document.createElement('timer-display');\n (timer_display as any).setProps(timer);\n this.engine.global('_ChoiceTimer').push(timer_display);\n this.engine.global('_choice_pending_rollback').push(true);\n this.engine.element().find('[data-screen=\"game\"]').prepend(timer_display);\n }\n }\n\n override async willRevert(): Promise {\n if (this.engine.history('choice').length > 0) {\n const choice = this.engine.history('choice')[this.engine.history('choice').length - 1];\n if (typeof this.statement[choice] !== 'undefined') {\n\n // Check if the choice had an onChosen function with it's matching\n // onRevert functionality, or if no onChosen function was provided\n // which are the only cases where it can be reverted.\n const functionReversible = (typeof this.statement[choice].onRevert === 'function' && typeof this.statement[choice].onChosen === 'function') || typeof this.statement[choice].onChosen !== 'function';\n\n if (functionReversible) {\n return Promise.resolve();\n } else {\n return Promise.reject('The choice taken is not reversible because it did not defined a `onRevert` function.');\n }\n }\n }\n return Promise.reject('Choice history was empty');\n }\n\n override async revert(): Promise {\n const choice = this.engine.history('choice')[this.engine.history('choice').length - 1];\n\n // First, revert the action that was chosen\n const chosenOption = this.statement[choice];\n if (chosenOption && typeof chosenOption.Do === 'string') {\n await this.engine.revert(chosenOption.Do, false);\n }\n if (chosenOption && typeof chosenOption.onRevert === 'function') {\n await Util.callAsync(chosenOption.onRevert, this.engine);\n }\n\n // Clean up timer if it exists\n if (typeof this.statement.Timer === 'object' && this.statement.Timer !== null) {\n this.engine.global('_ChoiceTimer').pop();\n }\n\n // If there was a dialog, revert it first\n if (typeof this.statement.Dialog === 'string') {\n const dialogLog = this.engine.component('dialog-log') as { instances?: (callback: (instance: { pop: () => void }) => void) => void } | undefined;\n if (typeof dialogLog !== 'undefined' && dialogLog.instances) {\n dialogLog.instances((instance) => instance.pop());\n }\n\n // // Revert the dialog that was shown with the choice\n // const dialogAction = this.engine.prepareAction (this.statement.Dialog, { cycle: 'Revert' });\n // return dialogAction.willRevert ().then (() => {\n // \treturn dialogAction.revert ().then (() => {\n // \t\treturn dialogAction.didRevert ();\n // \t});\n // });\n }\n\n // Remove any existing choice container before re-applying\n this.engine.element().find('choice-container').remove();\n\n // Now re-apply the choice to show it again\n const action = this.engine.prepareAction(this._statement as unknown as string | Record, { cycle: 'Application' }) as ActionInstance | null;\n if (action !== null) {\n await action.willApply();\n await action.apply();\n await action.didApply({ updateHistory: false, updateState: false });\n }\n }\n\n override async didRevert(): Promise {\n this.engine.global('_choice_just_rolled_back').push(true);\n this.engine.history('choice').pop();\n return { advance: false, step: false };\n }\n}\n\nexport default Choice;", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Clear extends Action {\n\tstatic override id = 'Clear';\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('clear');\n\t}\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'clear';\n\t}\n\n\toverride async apply(): Promise {\n const dialogAction = this.engine.action('Dialog');\n\n if (dialogAction) {\n dialogAction.reset({ keepNVL: true, saveNVL: true });\n }\n\t}\n\n\toverride async didApply(): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as any;\n\n\t\tthis.engine.history('clear').push(textBox.props.mode);\n\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tif (this.engine.history('clear').length > 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tthrow new Error('No items left on the clear history to revert it.');\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst last = this.engine.history('clear').pop();\n\n\t\tif (last === 'nvl') {\n\t\t\tthis.engine.global('_should_restore_nvl', true);\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Clear;", + "import Action from '../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { FancyError } from '../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Conditional extends Action {\n static override id = 'Conditional';\n static override blocking = false;\n\n static override async setup(): Promise {\n // In here we'll save up what branch was taken every time we execute a\n // conditional.\n this.engine.history('conditional');\n\n // Whether a conditional that was run is pending rollback on the next time\n // a revert is issued.\n this.engine.global('_conditional_pending_rollback', []);\n\n // Whether a conditional was just reverted\n this.engine.global('_conditional_just_rolled_back', []);\n }\n\n static override async reset(): Promise {\n // Whether a conditional that was run is pending rollback on the next time\n // a revert is issued.\n this.engine.global('_conditional_pending_rollback', []);\n\n // Whether a conditional was just reverted\n this.engine.global('_conditional_just_rolled_back', []);\n }\n\n static override matchObject(statement: any): boolean {\n return typeof statement.Conditional !== 'undefined';\n }\n\n static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise {\n if (Conditional.blocking) {\n throw new Error('Contitional is still running action');\n }\n }\n\n static override async willRollback(): Promise {\n Conditional.blocking = false;\n }\n\n static override async afterRevert(): Promise {\n // Prevent modifying the history if the action that was just reverted was\n // this conditional\n const justRolledBack = this.engine.global('_conditional_just_rolled_back');\n if (justRolledBack.pop()) {\n return Promise.resolve();\n }\n\n const pendingRollback = this.engine.global('_conditional_pending_rollback');\n while (pendingRollback.pop()) {\n const currentStatement = this.engine.label()[this.engine.state('step') as number] as { Conditional?: object } | undefined;\n if (typeof currentStatement !== 'undefined' && currentStatement !== null) {\n if (typeof currentStatement.Conditional === 'object') {\n this.engine.history('conditional').pop();\n }\n }\n }\n }\n\n static override async beforeRun(): Promise {\n // const restoringState = this.engine.global ('_restoring_state');\n\n // if (!restoringState) {\n const pendingRollback = this.engine.global('_conditional_pending_rollback');\n pendingRollback.pop();\n // }\n }\n\n statement: any;\n branch: string;\n result: { advance: boolean; step: boolean };\n\n constructor(statement: any) {\n super();\n this.statement = statement.Conditional;\n this.branch = '';\n this.result = { advance: true, step: false };\n }\n\n override async apply(): Promise {\n // Call the condition function. Since the function might use a\n // Promise.reject () to return as false, we also define a catch\n // block to run the False branch of the condition.\n try {\n let returnValue = await Util.callAsync(this.statement.Condition, this.engine);\n Conditional.blocking = true;\n\n if (typeof returnValue === 'number') {\n if (returnValue < 0) {\n FancyError.show('action:conditional:negative_value', {\n value: returnValue,\n availableBranches: Object.keys(this.statement).filter(b => b !== 'Condition')\n });\n throw new Error('Invalid negative value');\n }\n\n if (!Number.isInteger(returnValue)) {\n FancyError.show('action:conditional:non_integer_value', {\n value: returnValue,\n availableBranches: Object.keys(this.statement).filter(b => b !== 'Condition')\n });\n throw new Error('Invalid non-integer value');\n }\n\n returnValue = `${returnValue}`;\n }\n\n // Check if the function returned true so we run the True branch\n // of the conditional. If false is returned, we run the False\n // branch of the conditional and if a string is returned, we use\n // it as a key so we run the branch that has that key\n if (returnValue === true) {\n this.branch = 'True';\n const runResult = await this.engine.run(this.statement.True);\n this.result = { ...runResult, step: false };\n Conditional.blocking = false;\n } else if (typeof returnValue === 'string') {\n const branch = this.statement[returnValue];\n\n if (typeof branch === 'undefined') {\n FancyError.show('action:conditional:branch_not_found', {\n branch: returnValue,\n availableBranches: Object.keys(this.statement).filter(b => b !== 'Condition')\n });\n throw new Error('Non existent branch');\n }\n\n this.branch = returnValue;\n const runResult = await this.engine.run(branch);\n this.result = { ...runResult, step: false };\n Conditional.blocking = false;\n } else {\n this.branch = 'False';\n const runResult = await this.engine.run(this.statement.False);\n this.result = { ...runResult, step: false };\n Conditional.blocking = false;\n }\n } catch (e) {\n this.branch = 'False';\n const runResult = await this.engine.run(this.statement.False);\n this.result = { ...runResult, step: false };\n Conditional.blocking = false;\n }\n }\n\n override async didApply({ updateHistory = true } = {}): Promise {\n // const restoringState = this.engine.global ('_restoring_state');\n\n // if (!restoringState) {\n if (!this.result.advance) {\n const pendingRollback = this.engine.global('_conditional_pending_rollback') as boolean[];\n pendingRollback.push(true);\n }\n\n if (updateHistory) {\n (this.engine.history('conditional') as string[]).push(this.branch);\n }\n // }\n\n Conditional.blocking = false;\n\n return { advance: false };\n }\n\n override async willRevert(): Promise {\n const conditionalHistory = this.engine.history('conditional') as string[];\n if (conditionalHistory.length > 0) {\n const conditional = conditionalHistory[conditionalHistory.length - 1];\n if (typeof this.statement[conditional] !== 'undefined') {\n return Promise.resolve();\n }\n }\n throw new Error('Conditional history was empty.');\n }\n\n override async revert(): Promise {\n const conditionalHistory = this.engine.history('conditional') as string[];\n const conditional = conditionalHistory[conditionalHistory.length - 1];\n\n Conditional.blocking = true;\n\n const revertResult = await this.engine.revert(this.statement[conditional]);\n if (revertResult) {\n this.result = revertResult;\n }\n\n Conditional.blocking = false;\n }\n\n override async didRevert(): Promise {\n const pendingRollback = this.engine.global('_conditional_pending_rollback');\n const justRolledBack = this.engine.global('_conditional_just_rolled_back');\n\n pendingRollback.push(true);\n justRolledBack.push(true);\n\n return { advance: false, step: false };\n }\n}\n\nexport default Conditional;", + "import { $_ } from '@aegis-framework/artemis';\nimport Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\nimport TypeWriter from './../components/type-writer';\nimport type TextBoxComponent from './../components/text-box';\n\nexport class Dialog extends Action {\n\tstatic override id = 'Dialog';\n\n\tstatic override async shouldProceed() {\n\t\tconst element = this.engine.element();\n\t\t// Check if the type animation has finished and the Typed object still exists\n\t\tlet component: TypeWriter | undefined;\n\n\t\tconst centeredDialog = element.find('[data-component=\"centered-dialog\"]');\n\n\t\tif (centeredDialog.exists()) {\n\t\t\tcomponent = centeredDialog.find('[data-content=\"wrapper\"]').get(0) as TypeWriter | undefined;\n\t\t} else {\n\t\t\t// In NVL mode, get the last (most recent) type-writer which is the active one\n\t\t\tconst typeWriters = element.find('type-writer');\n\t\t\tif (typeWriters.exists()) {\n\t\t\t\tcomponent = typeWriters.last().get(0) as TypeWriter | undefined;\n\t\t\t}\n\t\t}\n\n\t\t// In NVL mode, there might not be a type-writer element in the text-box\n\t\tif (!component) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst hasStrings = (component.state?.strings?.length || 0) > 0;\n\n\t\tif (!this.engine.global('finished_typing') && hasStrings) {\n\t\t\tthis.engine.stopTyping(component);\n\t\t\tthrow new Error('TypeWriter effect has not finished.');\n\t\t}\n\t}\n\n\tstatic override async willProceed(): Promise {\n\t\tconst centeredDialog = this.engine.element().find('[data-component=\"centered-dialog\"]');\n\n\t\tif (centeredDialog.exists()) {\n\t\t\tcenteredDialog.remove();\n\t\t}\n\n\t\tthis.engine.global('_dialog_pending_revert', false);\n\t}\n\n\tstatic override async willRollback(): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBoxComponent | undefined;\n\n\t\tthis.engine.global('finished_typing', true);\n\n\t\tif (textBox?.show) {\n\t\t\ttextBox.show();\n\t\t}\n\n\t\tconst dialogLog = this.engine.component('dialog-log') as { instances?: (callback: (instance: { pop: () => void }) => void) => void } | undefined;\n\n\t\tconst centeredDialog = this.engine.element().find('[data-component=\"centered-dialog\"]');\n\t\tif (centeredDialog.isVisible()) {\n\t\t\tcenteredDialog.remove();\n\n\t\t\tif (textBox?.show) {\n\t\t\t\ttextBox.show();\n\t\t\t}\n\t\t}\n\n\t\tthis.engine.element().find('[data-ui=\"who\"]').html('');\n\n\t\tif (typeof dialogLog !== 'undefined' && this.engine.global('_dialog_pending_revert') === true && dialogLog.instances) {\n\t\t\tdialogLog.instances((instance) => instance.pop());\n\t\t\tthis.engine.global('_dialog_pending_revert', false);\n\t\t}\n\t}\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.globals({\n\t\t\tfinished_typing: false,\n\t\t\t_dialog_pending_revert: false,\n\t\t});\n\n\t\t// The NVL mode has its own history so that when going back, all dialogs\n\t\t// that were shown on screen can be shown again instead of just showing\n\t\t// the last one.\n\t\tthis.engine.history('nvl');\n\t}\n\n\tstatic override async bind(selector: string): Promise {\n\t\t// Add listener for the text speed setting (TypeWriter reads from preference directly)\n\t\tconst engine = this.engine;\n\t\tconst clamp = (num: number, min: number, max: number): number => Math.min(Math.max(num, min), max);\n\t\t$_(`${selector} [data-action=\"set-text-speed\"]`).on('change mouseover', function (this: HTMLInputElement) {\n\t\t\tconst textbox = engine.element().find('[data-component=\"text-box\"] [data-component=\"type-writer\"]').get(0) as TypeWriter | undefined;\n\t\t\tconst maxTextSpeed = engine.setting('maxTextSpeed') as number;\n\t\t\tconst minPlaySpeed = engine.setting('minTextSpeed') as number;\n\t\t\tconst value = clamp(parseInt(this.value), minPlaySpeed, maxTextSpeed);\n\n\t\t\tengine.preference('TextSpeed', value);\n\t\t\ttextbox?.setState({ config: { typeSpeed: value } });\n\t\t});\n\n\t\t// Detect scroll on the text element to remove the unread class used when\n\t\t// there's text not being shown in NVL mode.\n\t\t$_(`${selector} [data-component=\"text-box\"] [data-content=\"text\"]`).on('scroll', () => {\n\t\t\tconst text_box = this.engine.element().find('[data-component=\"text-box\"]');\n\t\t\tif (text_box.exists()) {\n\t\t\t\tconst element = text_box.get(0) as any;\n\t\t\t\tif (typeof element.checkUnread === 'function') {\n\t\t\t\t\telement.checkUnread();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic override async init(selector: string): Promise {\n\t\t// Remove the Text Speed setting if the type animation was disabled\n\t\tif (this.engine.setting('TypeAnimation') === false) {\n\t\t\t$_(`${selector} [data-settings=\"text-speed\"]`).hide();\n\t\t}\n\n\t\tthis.engine.setting('maxTextSpeed', parseInt(($_(`${selector} [data-action=\"set-text-speed\"]`).attribute('max') || '0')));\n\t\tthis.engine.setting('minTextSpeed', parseInt(($_(`${selector} [data-action=\"set-text-speed\"]`).attribute('min') || '0')));\n\t}\n\n\tstatic override async reset({ keepNVL = false, saveNVL = false }: { keepNVL?: boolean; saveNVL?: boolean } = {}): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as any;\n\n\t\tif (!textBox) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (saveNVL === true && textBox.props.mode === 'nvl') {\n\t\t\tthis.engine.history('nvl').push(textBox.content('dialog').html());\n\t\t}\n\n\t\tif (keepNVL !== true) {\n\t\t\ttextBox.setProps({ mode: 'adv' });\n\t\t}\n\n\n\t\tthis.engine.element().find('[data-component=\"text-box\"]').data('speaking', '');\n\n\t\tthis.engine.element().find('[data-ui=\"who\"]').style('color', '');\n\n\t\tthis.engine.element().find('[data-ui=\"who\"]').html('');\n\t\tthis.engine.element().find('[data-ui=\"say\"]').html('');\n\n\t\tthis.engine.element().find('[data-ui=\"face\"]').attribute('src', '');\n\t\tthis.engine.element().find('[data-ui=\"face\"]').hide();\n\n\t\t// Remove all classes from the text-box\n\t\tArray.from(textBox.classList).forEach((c: any) => textBox.classList.remove(c));\n\n\t\t// Remove all classes from the centered-dialog\n\t\tconst centeredDialog = this.engine.element().find('[data-component=\"centered-dialog\"]').get(0);\n\n\t\tif (centeredDialog) {\n\t\t\tArray.from(centeredDialog.classList).forEach((c: any) => centeredDialog.classList.remove(c));\n\t\t}\n\t}\n\n\tstatic override matchString(): boolean {\n\t\treturn true;\n\t}\n\n\tdialog: string;\n\tclearDialog: string;\n\tnvl: boolean;\n\tclasses: string[];\n\tcharacter: any;\n\timage: string | undefined;\n\texpression: string | undefined;\n\tid: string = '';\n\n\tconstructor(args: string[]) {\n\t\tsuper();\n\t\tconst [character, ...dialog] = args;\n\n\t\t// id:expression:class Dialog\n\t\tconst [id, expression, classes] = character.split(':');\n\n\t\tthis.dialog = dialog.join(' ');\n\t\tthis.clearDialog = TypeWriter.stripActionMarkers(this.dialog);\n\n\t\tthis.nvl = false;\n\n\t\tthis.classes = (classes && classes.trim() !== '') ? classes.split('|') : [];\n\n\t\tif (typeof this.engine.character(id) !== 'undefined') {\n\t\t\tthis._setCharacter(id, expression);\n\t\t} else if (id === 'centered') {\n\t\t\tthis.id = 'centered';\n\t\t} else {\n\t\t\tthis.id = '_narrator';\n\n\t\t\tif (typeof this.engine.character('_narrator') !== 'undefined') {\n\t\t\t\tthis._setCharacter('_narrator', expression);\n\t\t\t}\n\n\t\t\tif (id === 'nvl') {\n\t\t\t\tthis.nvl = true;\n\t\t\t} else if (id === 'narrator') {\n\t\t\t\t// Do nothing, just consume 'narrator'\n\t\t\t} else {\n\t\t\t\tthis.dialog = `${character} ${this.dialog}`;\n\t\t\t\tthis.clearDialog = `${character} ${this.clearDialog}`;\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tthis.engine.element().find('[data-character]').removeClass('focus');\n\t\tthis.engine.element().find('[data-ui=\"face\"]').hide();\n\n\t\tthis.engine.element().find('[data-ui=\"who\"]').html('');\n\n\t\tthis.engine.element().find('[data-component=\"text-box\"]').removeData('expression');\n\t}\n\n\t_handleCustomClasses(element: HTMLElement | undefined): void {\n\t\tif (!element) {\n\t\t\treturn;\n\t\t}\n\n\t\t// The unread is a special one used by the nvl mode so we ignore that\n\t\tArray.from(element.classList)\n\t\t\t.filter(c => c !== 'unread')\n\t\t\t.forEach(cls => element.classList.remove(cls));\n\n\t\tthis.classes.forEach(className => element.classList.add(className));\n\t}\n\n\t_setCharacter(id: string, expression: string | undefined): void {\n\t\tthis.character = this.engine.character(id);\n\n\t\tthis.id = id;\n\n\t\tif (typeof this.character.nvl !== 'undefined') {\n\t\t\tthis.nvl = this.character.nvl;\n\t\t}\n\n\t\tif (typeof expression !== 'undefined') {\n\t\t\tif (typeof this.character.expressions !== 'undefined') {\n\t\t\t\tthis.image = this.character.expressions[expression];\n\t\t\t\tthis.expression = expression;\n\t\t\t}\n\n\t\t} else if (typeof this.character.default_expression !== 'undefined') {\n\t\t\tif (typeof this.character.expressions[this.character.default_expression] !== 'undefined') {\n\t\t\t\tthis.image = this.character.expressions[this.character.default_expression];\n\t\t\t} else {\n\t\t\t\tthis.image = this.character.default_expression;\n\t\t\t}\n\t\t\tthis.expression = 'default';\n\t\t}\n\t}\n\n\tasync displayCenteredDialog(dialog: string, clearDialog: string, character: string, animation: boolean): Promise {\n\t\tconst element = document.createElement('centered-dialog') as any;\n\t\tconst gameScreen = this.engine.element().find('[data-screen=\"game\"]');\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]');\n\t\tconst writer = textBox.find('type-writer').get(0) as TypeWriter | undefined;\n\n\t\tthis._handleCustomClasses(element);\n\n\t\t// If the text-box's typewriter exists, set it to ignore\n\t\t// (in NVL mode, there might not be a type-writer element)\n\t\tif (writer) {\n\t\t\twriter.setState({ ignore: true, strings: [] });\n\t\t}\n\n\t\ttextBox.hide();\n\t\tgameScreen.append(element);\n\n\t\telement.ready(() => {\n\t\t\tconst wrapper = element.content('wrapper');\n\t\t\tconst wrapperElement = wrapper?.get(0) as TypeWriter | undefined;\n\n\t\t\tif (wrapperElement) {\n\t\t\t\twrapperElement.setContent(dialog, animation);\n\t\t\t}\n\t\t});\n\t}\n\n\tdisplayNvlDialog(dialog: string, clearDialog: string, character: string, animation: boolean): void {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as any;\n\n\t\tif (!textBox) {\n\t\t\tthis.engine.debug.error('Text box component not found');\n\t\t\treturn;\n\t\t}\n\n\t\tif (textBox.props?.mode !== 'nvl') {\n\t\t\tDialog.reset();\n\t\t\t// NOTE: setProps does NOT trigger a re-render — it only updates the\n\t\t\t// mode attribute so CSS (text-box[mode=\"nvl\"]) applies. The ADV-mode\n\t\t\t// type-writer element persists and serves as the container for NVL\n\t\t\t// dialog entries appended to [data-ui=\"say\"].\n\t\t\ttextBox.setProps({ mode: 'nvl' });\n\n\t\t\t// We need to re-apply any custom classes here because the reset clears them\n\t\t\tthis._handleCustomClasses(textBox);\n\t\t}\n\n\t\t// Remove contents from the dialog area.\n\t\tconst previous = this.engine.element().find('[data-component=\"text-box\"]').data('speaking');\n\t\tthis.engine.element().find('[data-component=\"text-box\"]').data('speaking', character);\n\n\t\t// Determine if we should animate (respects NVLTypeAnimation setting)\n\t\tconst shouldAnimate = animation && this.engine.setting('NVLTypeAnimation') === true;\n\n\t\t// Build the dialog entry HTML\n\t\tif (character !== '_narrator') {\n\t\t\tconst charData = this.engine.character(character);\n\t\t\tif (previous !== character) {\n\t\t\t\tthis.engine.element().find('[data-ui=\"say\"] [data-spoke]').last().addClass('nvl-dialog-footer');\n\t\t\t\tthis.engine.element().find('[data-ui=\"say\"]').append(`
${this.engine.replaceVariables(charData?.name ?? '')}:
`);\n\t\t\t} else {\n\t\t\t\tthis.engine.element().find('[data-ui=\"say\"]').append(`
`);\n\t\t\t}\n\t\t} else {\n\t\t\tif (previous !== character) {\n\t\t\t\tthis.engine.element().find('[data-ui=\"say\"] [data-spoke]').last().addClass('nvl-dialog-footer');\n\t\t\t}\n\t\t\tthis.engine.element().find('[data-ui=\"say\"]').append(`
`);\n\t\t}\n\n\t\t// Wait for the new type-writer component to be fully mounted before\n\t\t// setting its content. Using ready() is more reliable than\n\t\t// requestAnimationFrame since Pandora's connectedCallback is async.\n\t\tconst elements = $_('[data-ui=\"say\"] [data-spoke] type-writer');\n\t\tconst last = elements.last().get(0) as TypeWriter | undefined;\n\n\t\tif (last && typeof (last as any).ready === 'function') {\n\t\t\t(last as any).ready(() => {\n\t\t\t\tlast.setContent(dialog, shouldAnimate);\n\t\t\t});\n\t\t} else if (last) {\n\t\t\tlast.setContent(dialog, shouldAnimate);\n\t\t}\n\n\t\tconst text_box = this.engine.element().find('[data-component=\"text-box\"]');\n\t\tif (text_box.exists()) {\n\t\t\tconst textContent = text_box.find('[data-content=\"text\"]').get(0);\n\n\t\t\tif (textContent) {\n\t\t\t\ttextContent.scrollTop = textContent.scrollHeight;\n\t\t\t}\n\n\t\t\tconst element = text_box.get(0) as any;\n\t\t\tif (typeof element.checkUnread === 'function') {\n\t\t\t\telement.checkUnread();\n\t\t\t}\n\t\t}\n\n\t}\n\n\tasync displayDialog(dialog: string, clearDialog: string, character: string, animation: boolean): Promise {\n\t\tif (this.nvl === false) {\n\t\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as any;\n\n\t\t\tif (!textBox) {\n\t\t\t\tthis.engine.debug.error('Text box component not found');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (textBox.props?.mode === 'nvl' && this._cycle === 'Application' && this.engine.global('_restoring_state') === false) {\n\t\t\t\tthis.engine.history('nvl').push(textBox.content('dialog').html());\n\t\t\t}\n\n\t\t\t// NOTE: setProps does NOT trigger a re-render — it only updates the\n\t\t\t// mode attribute on the element so CSS (text-box[mode=\"adv\"]) applies.\n\t\t\t// The type-writer child persists across mode changes by design.\n\t\t\ttextBox.setProps({ mode: 'adv' });\n\n\t\t\t// Destroy any active NVL entry type-writers before clearing to prevent\n\t\t\t// leaked animation frames from detached elements.\n\t\t\tthis.engine.element().find('[data-ui=\"say\"] [data-spoke] type-writer').each((tw: any) => {\n\t\t\t\tif (typeof tw.destroy === 'function') {\n\t\t\t\t\ttw.destroy();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// Remove contents from the dialog area.\n\t\t\tthis.engine.element().find('[data-ui=\"say\"]').html('');\n\t\t\tthis.engine.element().find('[data-component=\"text-box\"]').data('speaking', character);\n\n\t\t\t// Find the type-writer component inside the text-box (ADV mode has it)\n\t\t\tconst typeWriter = this.engine.element().find('[data-component=\"text-box\"] type-writer').get(0) as TypeWriter | undefined;\n\t\t\tif (typeWriter) {\n\t\t\t\ttypeWriter.setContent(dialog, animation);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.displayNvlDialog(dialog, clearDialog, character, animation);\n\t\t}\n\t}\n\n\n\tcharacterDialog(): Promise {\n\t\t// Check if the character has a name to show\n\t\tif (typeof this.character.name !== 'undefined' && !this.nvl) {\n\t\t\tthis.engine.element().find('[data-ui=\"who\"]').html(this.engine.replaceVariables(this.character.name));\n\t\t}\n\n\t\tlet directory = this.character.directory;\n\n\t\tif (typeof directory == 'undefined') {\n\t\t\tdirectory = '';\n\t\t} else {\n\t\t\tdirectory += '/';\n\t\t}\n\n\t\t// Focus the character's sprite and colorize it's name with the defined\n\t\t// color on its declaration\n\t\tthis.engine.element().find(`[data-character=\"${this.id}\"]`).addClass('focus');\n\n\t\tif (typeof this.character.color === 'string' && this.character.color !== '') {\n\t\t\tthis.engine.element().find('[data-ui=\"who\"]').style('color', this.character.color);\n\t\t} else {\n\t\t\tthis.engine.element().find('[data-ui=\"who\"]').style('color', 'var(--character-name-color)');\n\t\t}\n\t\t// Check if an expression or face image was used and if it exists and\n\t\t// display it\n\t\tif (typeof this.image !== 'undefined' && !this.nvl) {\n\t\t\tconst path = `${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').characters}/${directory}${this.image}`;\n\t\t\tthis.engine.element().find('[data-ui=\"face\"]').attribute('src', path);\n\t\t\tthis.engine.element().find('[data-ui=\"face\"]').show();\n\t\t\tthis.engine.element().find('[data-component=\"text-box\"]').data('expression', this.expression as string);\n\t\t}\n\n\t\t// Check if the character object defines if the type animation should be used.\n\t\tif (typeof this.character.type_animation !== 'undefined') {\n\t\t\treturn this.displayDialog(this.dialog, this.clearDialog, this.id, this.character.type_animation);\n\t\t} else {\n\t\t\treturn this.displayDialog(this.dialog, this.clearDialog, this.id, true);\n\t\t}\n\t}\n\n\toverride async apply({ updateLog = true } = {}): Promise {\n\t\ttry {\n\t\t\tconst dialogLog = this.engine.component('dialog-log') as { instances?: () => { each: (cb: (instance: { write: (data: { id: string; character: string; dialog: string }) => void }) => void) => void } } | undefined;\n\t\t\tif (typeof dialogLog !== 'undefined' && dialogLog.instances) {\n\t\t\t\tif (this._cycle === 'Application' && updateLog === true) {\n\t\t\t\t\tdialogLog.instances().each((instance) => instance.write({\n\t\t\t\t\t\tid: this.id,\n\t\t\t\t\t\tcharacter: this.character,\n\t\t\t\t\t\tdialog: this.clearDialog\n\t\t\t\t\t}));\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tthis.engine.debug.error(e);\n\t\t}\n\n\t\tconst textBoxElement = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBoxComponent | undefined;\n\t\tif (textBoxElement?.state?.hidden === true) {\n\t\t\tFancyError.show('action:dialog:textbox_hidden', {\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t}\n\n\t\tif (typeof this.character !== 'undefined') {\n\t\t\tthis._handleCustomClasses(textBoxElement);\n\t\t\t(textBoxElement as any)?.show();\n\t\t\treturn this.characterDialog();\n\t\t} else if (this.id === 'centered') {\n\t\t\treturn this.displayCenteredDialog(this.dialog, this.clearDialog, this.id, this.engine.setting('CenteredTypeAnimation'));\n\t\t} else {\n\t\t\tthis._handleCustomClasses(textBoxElement);\n\t\t\t(textBoxElement as any)?.show();\n\t\t\treturn this.displayDialog(this.dialog, this.clearDialog, '_narrator', this.engine.setting('NarratorTypeAnimation'));\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tthis.engine.global('_dialog_pending_revert', true);\n\t\treturn { advance: false };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tthis.engine.element().find('[data-character]').removeClass('focus');\n\t\tthis.engine.element().find('[data-ui=\"face\"]').hide();\n\t\tthis.engine.element().find('[data-ui=\"who\"]').html('');\n\t}\n\n\toverride async revert(): Promise {\n\t\t// Check if the dialog to replay is a NVL one or not\n\t\tif (this.nvl === true) {\n\t\t\t// Check if the NVL screen is currently being shown\n\t\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as any;\n\t\t\tthis._handleCustomClasses(textBox);\n\n\t\t\tif (textBox.props.mode === 'nvl') {\n\t\t\t\tif (this.engine.global('_should_restore_nvl') === true) {\n\t\t\t\t\tthis.engine.global('_should_restore_nvl', false);\n\t\t\t\t\tif (this.engine.history('nvl').length > 0) {\n\t\t\t\t\t\ttextBox.content('dialog').html(this.engine.history('nvl').pop());\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tthrow new Error('No more dialogs on history from where to recover previous state.');\n\t\t\t\t}\n\n\t\t\t\t// Find all dialog entries and remove the last one\n\t\t\t\tconst dialogs = this.engine.element().find('[data-ui=\"say\"] [data-spoke]');\n\t\t\t\t// If it is being shown, then to go back, we need to remove the last dialog from it\n\t\t\t\tdialogs.last().remove();\n\t\t\t\treturn;\n\t\t\t} else {\n\t\t\t\t// If it is not shown right now, then we need to recover the dialogs\n\t\t\t\t// that were being shown the last time we hid it\n\t\t\t\tif (this.engine.history('nvl').length > 0) {\n\t\t\t\t\tif (this.engine.global('_should_restore_nvl') === true) {\n\t\t\t\t\t\tthis.engine.global('_should_restore_nvl', false);\n\t\t\t\t\t}\n\t\t\t\t\ttextBox.setProps({ mode: 'nvl' });\n\t\t\t\t\ttextBox.content('dialog').html(this.engine.history('nvl').pop());\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthrow new Error('No more dialogs on history from where to recover previous state.');\n\t\t\t}\n\t\t} else {\n\t\t\t// If the dialog was not NVL, we can simply show it as if we were\n\t\t\t// doing a simple application\n\t\t\tawait this.apply();\n\t\t\tawait this.didApply();\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: false, step: true };\n\t}\n\n}\n\nexport default Dialog;", + "import Action from './../lib/Action';\nimport { getDesktopBridge } from '../lib/DesktopBridge';\n\nexport class End extends Action {\n static override id = 'End';\n\n static override async bind(): Promise {\n this.engine.registerListener('end', {\n keys: 'shift+q',\n callback: () => {\n if (this.engine.global('playing')) {\n this.engine.alert('quit-warning', {\n message: 'Confirm',\n actions: [\n {\n label: 'Quit',\n listener: 'quit'\n },\n {\n label: 'Cancel',\n listener: 'dismiss-alert'\n }\n ]\n });\n }\n }\n });\n\n this.engine.registerListener('quit', {\n callback: () => {\n this.engine.dismissAlert('quit-warning');\n\n if (this.engine.global('playing') === true) {\n this.engine.run('end');\n return;\n }\n\n const bridge = getDesktopBridge();\n\n if (bridge) {\n bridge.send('quit-request');\n }\n }\n });\n }\n\n static override matchString([action]: string[]): boolean {\n return action === 'end';\n }\n\n override async willApply(): Promise {\n this.engine.hideScreens();\n }\n\n override async apply(): Promise {\n const engine = this.engine;\n\n engine.global('playing', false);\n\n engine.resetGame();\n engine.showMainScreen();\n\n\n const engineElement = engine.element();\n\n engineElement.find('[data-component=\"quick-menu\"]').removeClass('splash-screen');\n engineElement.find('[data-component=\"game-screen\"]').removeClass('splash-screen');\n }\n\n override async willRevert(): Promise {\n throw new Error('End action is not reversible');\n }\n}\n\nexport default End;", + "import Action from './../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { FancyError } from '../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class ReversibleFunction extends Action {\n\n\tstatic override id = 'Function';\n\n\tstatic override matchObject({ Function: fn }: any): boolean {\n\t\treturn typeof fn !== 'undefined';\n\t}\n\n\tstatement: any;\n\tshouldContinue: boolean;\n\n\tconstructor({ Function: fn }: any) {\n\t\tsuper();\n\t\tthis.statement = fn;\n\t\tthis.shouldContinue = true;\n\t}\n\n\toverride async apply(): Promise {\n\t\t// The function will be run asynchronously (No matter if its code isn't)\n\t\t// if the function returns false, the next statement will not be run\n\t\t// automatically and the game will wait for user interaction or some other\n\t\t// code inside the function to keep going. Any other returnValue will\n\t\t// allow the game to keep going right away.\n\t\ttry {\n\t\t\tconst returnValue = await Util.callAsync(this.statement.Apply, this.engine);\n\n\t\t\tif (returnValue === false) {\n\t\t\t\tthis.shouldContinue = false;\n\t\t\t}\n\t\t} catch (e: any) {\n\t\t\tconst context: Record = {\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t};\n\n\t\t\tif (typeof e === 'object') {\n\t\t\t\tcontext['Error Message'] = e.message;\n\t\t\t\tcontext['File Name'] = e.fileName;\n\t\t\t\tcontext['Line Number'] = e.lineNumber;\n\t\t\t} else if (typeof e === 'string') {\n\t\t\t\tcontext['Error Message'] = e;\n\t\t\t}\n\n\t\t\tFancyError.show('action:function:apply_error', context);\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\treturn { advance: this.shouldContinue };\n\t}\n\n\toverride async willApply(): Promise {\n\t\t// @Compatibility [<= v2.0.0-beta.15]\n\t\t// To make everything more standardized, we decided to change the\n\t\t// 'Reverse' key to 'Revert' which actually follows the language being\n\t\t// used in other actions and parts of Monogatari\n\t\tif (typeof this.statement.Reverse === 'function' && typeof this.statement.Revert !== 'function') {\n\t\t\tthis.statement.Revert = this.statement.Reverse;\n\t\t}\n\t}\n\n\toverride async revert(): Promise {\n\t\t// The function will be run asynchronously (No matter if its code isn't)\n\t\t// if the function returns false, the previous statement will not be run\n\t\t// automatically and the game will wait for user interaction or some other\n\t\t// code inside the function to keep going. Any other returnValue will\n\t\t// allow the game to keep going right away.\n\t\ttry {\n\t\t\tconst returnValue = await Util.callAsync(this.statement.Revert, this.engine);\n\n\t\t\tif (returnValue === false) {\n\t\t\t\tthis.shouldContinue = false;\n\t\t\t}\n\t\t} catch (e: any) {\n\t\t\tconst context: Record = {\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t};\n\n\t\t\tif (typeof e === 'object') {\n\t\t\t\tcontext['Error Message'] = e.message;\n\t\t\t\tcontext['File Name'] = e.fileName;\n\t\t\t\tcontext['Line Number'] = e.lineNumber;\n\t\t\t} else if (typeof e === 'string') {\n\t\t\t\tcontext['Error Message'] = e;\n\t\t\t}\n\n\t\t\tFancyError.show('action:function:revert_error', context);\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: this.shouldContinue, step: true };\n\t}\n}\n\nexport default ReversibleFunction;", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\nimport { Registry } from '@aegis-framework/pandora';\n\nexport class Gallery extends Action {\n\n\tstatic override id = 'Gallery';\n\n mode: 'unlock' | 'lock';\n\tasset: string;\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'gallery';\n\t}\n\n\tconstructor([action, mode, asset]: ['gallery', 'unlock' | 'lock', string]) {\n\t\tsuper();\n\t\tthis.mode = mode;\n\t\tthis.asset = asset;\n\t}\n\n\toverride async apply(): Promise {\n Registry.instances('gallery-screen', (instance: any) => {\n const unlocked = this.mode === 'unlock' ? [...instance.state.unlocked, this.asset] : instance.state.unlocked.filter((item: string) => item !== this.asset);\n instance.setState({ unlocked });\n });\n\t}\n\n\toverride async didApply(): Promise {\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tthis.mode = this.mode === 'lock' ? 'unlock' : 'lock';\n await this.apply();\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Gallery;", + "import Action from './../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class HideCanvas extends Action {\n\n\tstatic override id = 'Hide::Canvas';\n\n\tstatic override matchString([hide, type]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'canvas';\n\t}\n\n\tname: string;\n\tobject: any;\n\telement: any;\n\tclasses: string[];\n\n\tconstructor([hide, canvas, name, separator, ...classes]: string[]) {\n\t\tsuper();\n\n\t\tthis.name = name;\n\t\tconst canvasAction = this.engine.action('Canvas') as { objects?: (name: string) => Record } | undefined;\n\t\tthis.object = canvasAction?.objects?.(name) ?? null;\n\n\t\tthis.element = document.querySelector(`[data-component=\"canvas-container\"][canvas=\"${this.name}\"]`);\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (this.element === null) {\n\t\t\tFancyError.show('action:hide_canvas:not_shown', {\n\t\t\t\tname: this.name,\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error('Attempted to hide a canvas that was not being shown.');\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst { object } = this.element.props;\n\n\t\tawait Util.callAsync(object.stop, this.engine, this.element.layers, object.props, object.state, this.element);\n\n\t\tif (this.classes.length > 0) {\n\t\t\tconst el = this.element.element();\n\t\t\tel.addClass('animated');\n\t\t\tfor (const newClass of this.classes) {\n\t\t\t\tif (newClass) {\n\t\t\t\t\tel.addClass(newClass);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tel.data('visibility', 'invisible');\n\n\t\t\t// Remove item after a while to prevent it from showing randomly\n\t\t\t// when coming from a menu to the game because of its animation\n\t\t\tel.on('animationend', (e: Event) => {\n\t\t\t\tif ((e.target as HTMLElement).dataset.visibility === 'invisible') {\n\t\t\t\t\t// Remove only if the animation ends while the element is not visible\n\t\t\t\t\t(e.target as HTMLElement).remove();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.engine.element().find(`[data-component=\"canvas-container\"][canvas=\"${this.name}\"]`).remove();\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tlet found = false;\n\t\tthis.engine.state({\n\t\t\tcanvas: this.engine.state('canvas').filter((item: string) => {\n\t\t\t\tif (!found) {\n\t\t\t\t\tconst [, , name] = item.split(' ');\n\t\t\t\t\tif (name === this.name) {\n\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})\n\t\t});\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst canvasHistory = this.engine.history('canvas') as string[];\n\t\tfor (let i = canvasHistory.length - 1; i >= 0; i--) {\n\t\t\tconst last = canvasHistory[i];\n\t\t\tconst [, , name] = last.split(' ');\n\t\t\tif (name === this.name) {\n\t\t\t\tconst action = this.engine.prepareAction(last, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\t\tif (action !== null) {\n\t\t\t\t\tawait action.willApply();\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideCanvas;", + "import Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class HideCharacter extends Action {\n\n\tstatic override id = 'Hide::Character';\n\n\tstatic override matchString([hide, type, identifier]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'character' && identifier.indexOf(':') === -1;\n\t}\n\n\tasset: string;\n\telement: any;\n\tclasses: string[];\n\n\tconstructor([hide, type, asset, ...classes]: string[]) {\n\t\tsuper();\n\t\tthis.asset = asset;\n\n\t\tif (typeof this.engine.character(this.asset) !== 'undefined') {\n\t\t\tthis.element = this.engine.element().find(`[data-character=\"${this.asset}\"]`).last();\n\t\t} else {\n\t\t\tFancyError.show('action:hide_character:character_not_found', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tavailableCharacters: Object.keys(this.engine.characters()),\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t}\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t\tthis.classes = this.classes.filter((c) => (c !== 'at' && c !== 'with'));\n\t}\n\n\toverride async willApply(): Promise {\n\n\t\tif (!this.element.exists()) {\n\t\t\tFancyError.show('action:hide_character:not_shown', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tavailableCharacters: Object.keys(this.engine.characters()),\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error('Attempted to hide a character that was not being shown.');\n\t\t}\n\t}\n\n\n\toverride async apply(): Promise {\n\t\tconst currentPosition = this.element.data('position');\n\t\tconst position = (this._statement as string).match(/at\\s(\\S*)/);\n\n\t\tconst oldClasses = [...this.element.get(0).classList];\n\n\t\tfor (const oldClass of oldClasses) {\n\t\t\tif (oldClass !== currentPosition || position instanceof Array) {\n\t\t\t\tthis.element.removeClass(oldClass);\n\t\t\t}\n\t\t}\n\n\t\tif (position instanceof Array) {\n\t\t\t// If it was, we'll set that position to the character\n\t\t\tconst [at, positionClass] = position;\n\t\t\tthis.element.data('position', positionClass);\n\t\t}\n\n\t\tthis.element.addClass('animated');\n\n\t\t// Check if there is any end-animation, here's what this matches:\n\t\t// 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ \"end-fadeIn\", \"fadeIn\" ]\n\t\tconst endAnimation = oldClasses.find((c: string) => c.match(/end-([A-Za-z]+)/) !== null);\n\n\t\tif (typeof endAnimation !== 'undefined') {\n\t\t\tconst [end, animation] = endAnimation.split('-');\n\t\t\tthis.element.addClass(animation);\n\t\t}\n\n\t\tconst durationPosition = this.classes.indexOf('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\tthis.element.style('animation-duration', this.classes[durationPosition + 1]);\n\t\t} else {\n\t\t\tthis.element.style('animation-duration', '');\n\t\t}\n\n\t\tif (this.classes.length > 0 || typeof endAnimation !== 'undefined') {\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\tthis.element.addClass(className);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.element.data('visibility', 'invisible');\n\n\t\t\tthis.element.on('animationend', (e: any) => {\n\t\t\t\tif (e.target.dataset.visibility === 'invisible') {\n\t\t\t\t\t// Remove only if the animation ends while the element is not visible\n\t\t\t\t\te.target.remove();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.element.remove();\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tconst characters = this.engine.state('characters').filter((item: string) => {\n\t\t\tconst [show, character, asset,] = item.split(' ');\n\t\t\treturn asset !== this.asset;\n\t\t});\n\n\t\tconst experimentalFeatures = this.engine.setting('ExperimentalFeatures');\n\n\t\tif (experimentalFeatures) {\n\t\t\tconst characterLayers = this.engine.state('characterLayers').filter((item: string) => {\n\t\t\t\tconst [show, character, asset,] = item.split(' ');\n\t\t\t\tconst [id, layer] = asset.split(':');\n\t\t\t\treturn id !== this.asset;\n\t\t\t});\n\n\t\t\tthis.engine.state({ characters, characterLayers });\n\t\t} else {\n\t\t\tthis.engine.state({ characters });\n\t\t}\n\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tif (this.engine.history('character').length <= 0) {\n\t\t\treturn Promise.reject();\n\t\t}\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst history = this.engine.history('character') as { statement: string; previous: string | null }[];\n\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\tconst { statement } = history[i];\n\t\t\tconst [, , asset] = statement.split(' ');\n\n\t\t\tif (asset === this.asset) {\n\t\t\t\tconst action = this.engine.prepareAction(statement, { cycle: 'Application' }) as import('../lib/types').ActionInstance | null;\n\t\t\t\tif (action !== null) {\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\tthrow new Error('Failed to revert HideCharacter');\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideCharacter;\n", + "import Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\n\nexport class HideCharacterLayer extends Action {\n\n\tstatic override id = 'Hide::Character::Layer';\n\tstatic override _experimental = true;\n\n\tstatic override matchString([hide, type, identifier]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'character' && identifier.indexOf(':') > -1;\n\t}\n\n\tasset: string;\n\tlayer: string;\n\tparent: any;\n\telement: any;\n\tclasses: string[];\n\n\tconstructor([hide, type, asset, ...classes]: string[]) {\n\t\tsuper();\n\t\tconst [character, layer] = asset.split(':');\n\t\tthis.asset = character;\n\t\tthis.layer = layer;\n\n\t\tif (typeof this.engine.character(this.asset) !== 'undefined') {\n\t\t\tthis.parent = this.engine.element().find(`[data-character=\"${this.asset}\"]`).last();\n\t\t\tthis.element = this.parent.find(`[data-layer=\"${this.layer}\"]`).last();\n\t\t} else {\n\t\t\tFancyError.show('action:hide_character_layer:character_not_found', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tavailableCharacters: Object.keys(this.engine.characters()),\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t}\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t\tthis.classes = this.classes.filter((c) => (c !== 'at' && c !== 'with'));\n\t}\n\n\toverride async willApply(): Promise {\n\n\t\tif (!this.element.exists()) {\n\t\t\tFancyError.show('action:hide_character_layer:layer_not_shown', {\n\t\t\t\tlayer: this.layer,\n\t\t\t\tasset: this.asset,\n\t\t\t\tavailableCharacters: Object.keys(this.engine.characters()),\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error('Attempted to hide a character that was not being shown.');\n\t\t}\n\t}\n\n\n\toverride async apply(): Promise {\n\t\tconst oldClasses = [...this.element.get(0).classList];\n\n\t\tfor (const oldClass of oldClasses) {\n\t\t\tthis.element.removeClass(oldClass);\n\t\t}\n\n\t\tthis.element.addClass('animated');\n\n\t\t// Check if there is any end-animation, here's what this matches:\n\t\t// 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ \"end-fadeIn\", \"fadeIn\" ]\n\t\tconst endAnimation = oldClasses.find((c: string) => c.match(/end-([A-Za-z]+)/) !== null);\n\n\t\tif (typeof endAnimation !== 'undefined') {\n\t\t\tconst [end, animation] = endAnimation.split('-');\n\t\t\tthis.element.addClass(animation);\n\t\t}\n\n\t\tconst durationPosition = this.classes.indexOf('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\tthis.element.style('animation-duration', this.classes[durationPosition + 1]);\n\t\t} else {\n\t\t\tthis.element.style('animation-duration', '');\n\t\t}\n\n\t\tif (this.classes.length > 0 || typeof endAnimation !== 'undefined') {\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\tthis.element.addClass(className);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.element.data('visibility', 'invisible');\n\n\t\t\tthis.element.on('animationend', (e: any) => {\n\t\t\t\tif (e.target.dataset.visibility === 'invisible') {\n\t\t\t\t\t// Remove only if the animation ends while the element is not visible\n\t\t\t\t\te.target.remove();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.element.remove();\n\t\t}\n\n\t\tconst parentAsComponent = this.parent.get(0) as (HTMLElement & { state?: { layers?: Record }; setState?: (state: Record) => void }) | undefined;\n\t\tif (parentAsComponent?.state && parentAsComponent?.setState) {\n\t\t\tconst stateLayers = parentAsComponent.state.layers || {};\n\t\t\tconst { [this.layer]: _, ...remainingLayers } = stateLayers;\n\t\t\tparentAsComponent.setState({\n\t\t\t\tlayers: remainingLayers\n\t\t\t});\n\t\t}\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tconst show = this.engine.state('characterLayers').filter((item: string) => {\n\t\t\tconst [show, character, asset,] = item.split(' ');\n\t\t\tconst [id, layer] = asset.split(':');\n\t\t\treturn id !== this.asset || layer !== this.layer;\n\t\t});\n\n\t\tthis.engine.state({ characterLayers: show });\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tif (this.engine.history('characterLayer').length <= 0) {\n\t\t\treturn Promise.reject();\n\t\t}\n\t}\n\n\toverride async revert(): Promise {\n\t\tfor (let i = this.engine.history('characterLayer').length - 1; i >= 0; i--) {\n\t\t\tconst { parent, layers } = this.engine.history('characterLayer')[i];\n\t\t\tconst historyStatement = layers.find((s: any) => {\n\t\t\t\tconst { previous, statement } = s;\n\t\t\t\tconst [show, character, asset, name] = (statement || previous).split(' ');\n\t\t\t\tconst [id, layer] = asset.split(':');\n\n\t\t\t\treturn id === this.asset && layer === this.layer;\n\t\t\t});\n\n\t\t\tif (typeof historyStatement === 'object' && historyStatement !== null) {\n\t\t\t\tconst { statement, previous } = historyStatement as { statement: string | null; previous: string | null };\n\t\t\t\tconst [, , asset] = ((statement || previous) ?? '').split(' ');\n\t\t\t\tconst [id, layer] = asset?.split(':') ?? [];\n\n\t\t\t\tif (id === this.asset && layer === this.layer) {\n\t\t\t\t\t\tif (statement === null) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tconst revertAction = this.engine.prepareAction(statement, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\t\t\tif (revertAction !== null) {\n\t\t\t\t\t\tawait revertAction.apply();\n\t\t\t\t\t\tawait revertAction.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t\t}\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tthrow new Error('Failed to revert HideCharacterLayer');\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideCharacterLayer;\n", + "import Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class HideImage extends Action {\n\n\tstatic override id = 'Hide::Image';\n\n\tstatic override matchString([hide, type]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'image';\n\t}\n\n\tasset: string;\n\telement: any;\n\tclasses: string[];\n\n\tconstructor([hide, type, asset, ...classes]: string[]) {\n\t\tsuper();\n\t\tthis.asset = asset;\n\n\t\tthis.element = this.engine.element().find(`[data-image=\"${this.asset}\"]`);\n\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t\tthis.classes = this.classes.filter((c) => (c !== 'at' && c !== 'with'));\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (!this.element.exists()) {\n\t\t\tFancyError.show('action:hide_image:not_shown', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error('Attempted to hide an image that was not being shown.');\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst currentPosition = this.element.data('position');\n\t\tconst position = (this._statement as string).match(/at\\s(\\S*)/);\n\n\t\tconst oldClasses = [...this.element.get(0).classList];\n\n\t\tfor (const oldClass of oldClasses) {\n\t\t\tif (oldClass !== currentPosition || position instanceof Array) {\n\t\t\t\tthis.element.removeClass(oldClass);\n\t\t\t}\n\t\t}\n\n\t\tif (position instanceof Array) {\n\t\t\t// If it was, we'll set that position to the character\n\t\t\tconst [at, positionClass] = position;\n\t\t\tthis.element.data('position', positionClass);\n\t\t}\n\n\t\tthis.element.addClass('animated');\n\n\t\tconst durationPosition = this.classes.indexOf('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\tthis.element.style('animation-duration', this.classes[durationPosition + 1]);\n\t\t} else {\n\t\t\tthis.element.style('animation-duration', '');\n\t\t}\n\n\t\tif (this.classes.length > 0) {\n\t\t\tfor (const newClass of this.classes) {\n\t\t\t\tthis.element.addClass(newClass);\n\t\t\t}\n\t\t\tthis.element.data('visibility', 'invisible');\n\t\t\tthis.element.on('animationend', (e: any) => {\n\t\t\t\tif (e.target.dataset.visibility === 'invisible') {\n\t\t\t\t\t// Remove only if the animation ends while the element is not visible\n\t\t\t\t\te.target.remove();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tthis.element.remove();\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tconst show = this.engine.state('images').filter((item: string) => {\n\t\t\tconst [show, type, asset,] = item.split(' ');\n\t\t\treturn asset !== this.asset;\n\t\t});\n\n\t\tthis.engine.state({ images: show });\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tif (this.engine.history('image').length === 0) {\n\t\t\treturn Promise.reject('Image history was empty.');\n\t\t}\n\t}\n\n\toverride async revert(): Promise {\n\t\t// return this.engine.run (this.engine.history ('image').pop (), false);\n\t\tconst history = this.engine.history('image') as string[];\n\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\tconst last = history[i];\n\t\t\tconst [, , asset] = last.split(' ');\n\t\t\tif (asset === this.asset) {\n\t\t\t\tconst action = this.engine.prepareAction(last, { cycle: 'Application' }) as import('../lib/types').ActionInstance | null;\n\t\t\t\tif (action !== null) {\n\t\t\t\t\tawait action.willApply();\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tthrow new Error('Could not find a previous state to revert to');\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideImage;", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class HideParticles extends Action {\n\n\tstatic override id = 'Hide::Particles';\n\n\tstatic override matchString([hide, type]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'particles';\n\t}\n\n\tconstructor([hide, type]: string[]) {\n\t\tsuper();\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst particlesAction = this.engine.action('Particles') as { stop?: () => void } | undefined;\n\t\tif (particlesAction?.stop) {\n\t\t\tparticlesAction.stop();\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tthis.engine.state({\n\t\t\tparticles: ''\n\t\t});\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst history = this.engine.history('particle') as string[];\n\t\tif (history.length > 0) {\n\t\t\tconst last = history[history.length - 1];\n\n\t\t\tconst action = this.engine.prepareAction(last, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tawait action.willApply();\n\t\t\t\tawait action.apply();\n\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideParticles;", + "import Action from './../lib/Action';\nimport type TextBox from './../components/text-box';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class HideTextBox extends Action {\n\n\tstatic override id = 'Hide::TextBox';\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.state({\n\t\t\ttextboxHidden: false\n\t\t});\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tthis.engine.state({\n\t\t\ttextboxHidden: false\n\t\t});\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tif (this.engine.state('textboxHidden') === true) {\n\t\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBox | undefined;\n\t\t\ttextBox?.setState({ hidden: true });\n\t\t}\n\t}\n\n\tstatic override matchString([hide, type]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'textbox';\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBox | undefined;\n\t\ttextBox?.setState({ hidden: true });\n\t}\n\n\toverride async didApply(): Promise {\n\t\tthis.engine.state({ textboxHidden: true });\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBox | undefined;\n\t\ttextBox?.setState({ hidden: false });\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tthis.engine.state({ textboxHidden: false });\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideTextBox;\n", + "import { $_ } from '@aegis-framework/artemis';\n\nimport Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class Video extends Action {\n\tstatic override id = 'Video';\n static override blocking = false;\n\n\tstatic _configuration: { objects: Record, modes: string[] } = {\n\t\tobjects: {\n\n\t\t},\n\t\tmodes: ['modal', 'displayable', 'immersive', 'fullscreen', 'background']\n\t};\n\n\t/**\n\t * Properly cleanup a video element to prevent memory leaks\n\t */\n\tstatic cleanupVideoElement(element: HTMLVideoElement): void {\n\t\telement.pause();\n\t\telement.onended = null;\n\t\telement.onerror = null;\n\t\telement.src = '';\n\t\telement.load(); // Reset the element\n\t}\n\n\tstatic override async shouldProceed(): Promise {\n if (Video.blocking) {\n throw new Error('Video is still playing');\n }\n\n\t\treturn new Promise((resolve, reject) => {\n\t\t\t$_('[data-video]').each((element: HTMLElement) => {\n\t\t\t\tconst videoElement = element as HTMLVideoElement;\n\t\t\t\tif (videoElement.ended !== true && videoElement.dataset.mode !== 'background' && videoElement.dataset.mode !== 'displayable') {\n\t\t\t\t\treject('Playing video must end before proceeding.');\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tresolve();\n\t\t});\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst state = this.engine.state('videos');\n\n\t\tif (state.length === 0) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst promises = [];\n\n\t\tfor (const video of state) {\n\t\t\t// prepareAction returns typeof Action but actually returns instance\n\t\t\tconst action = this.engine.prepareAction(video, { cycle: 'Application' }) as ActionInstance | null;\n\n\t\t\tif (action === null) {\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tconst promise = (async () => {\n\t\t\t\tawait action.willApply();\n\t\t\t\tawait action.apply();\n\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t})();\n\n\t\t\tpromises.push(promise);\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\tawait Promise.all(promises);\n\t\t}\n\t}\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history({\n\t\t\tvideo: [] // string[]\n\t\t});\n\n\t\tthis.engine.state({\n\t\t\tvideos: [] // string[]\n\t\t});\n\t}\n\n\tstatic override async reset(): Promise {\n\t\t// Properly clean up all video elements before removing\n\t\tthis.engine.element().find('[data-video]').each((element: HTMLElement) => {\n\t\t\tVideo.cleanupVideoElement(element as HTMLVideoElement);\n\t\t});\n\t\tthis.engine.element().find('[data-video]').remove();\n\n\t\tthis.engine.history({\n\t\t\tvideo: [] // string[]\n\t\t});\n\n\t\tthis.engine.state({\n\t\t\tvideos: [] // string[]\n\t\t});\n\t}\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'video';\n\t}\n\n\t/**\n\t * Creates an instance of a Video Action\n\t *\n\t * @param {string[]} parameters - List of parameters received from the script statement.\n\t * @param {string} parameters.action - In this case, action will always be 'video'\n\t * @param {string} [parameters.mode='modal'] - Mode in which the video element will be shown (modal, displayable, background, immersive, full-screen)\n\t * @param {string} parameters.name\n\t * @param {string} parameters.props\n\t */\n\tmode: string;\n\tname: string;\n\tprops: string[];\n\tsrc: string | undefined;\n\tclasses: string[];\n\n\tconstructor([show, type, name, mode = 'modal', ...props]: string[]) {\n\t\tsuper();\n\t\tthis.mode = mode;\n\t\tthis.name = name;\n\t\tthis.props = props;\n\n\t\tif (typeof this.engine.asset('videos', name) !== 'undefined') {\n\t\t\tthis.src = this.engine.asset('videos', name);\n\t\t}\n\n\t\tif (typeof props !== 'undefined') {\n\t\t\tthis.classes = ['animated', ...props.filter((item) => item !== 'with')];\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (Video._configuration.modes.indexOf(this.mode) === -1) {\n\t\t\tFancyError.show('action:video:invalid_mode', {\n\t\t\t\tmode: this.mode,\n\t\t\t\tvalidModes: Video._configuration.modes,\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error('Invalid video mode provided.');\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\t// TODO: Find a way to remove the resize listeners once the video is stopped\n\t\tconst element = document.createElement('video');\n\n\t\tconst volumePrefs = this.engine.preference('Volume') as { Video?: number } | undefined;\n\t\tconst videoVolume = volumePrefs?.Video ?? 1;\n\n\t\telement.volume = videoVolume;\n\n\t\telement.dataset.video = this.name;\n\t\telement.dataset.mode = this.mode;\n\n\t\tfor (const newClass of this.classes) {\n\t\t\telement.classList.add(newClass);\n\t\t}\n\n\t\tconst { root, videos: videoPath } = this.engine.setting('AssetsPath') as { root: string, videos: string };\n\n\t\t$_(element).attribute('src', `${root}/${videoPath}/${this.src}`);\n\n\t\t// Add error handler for video loading failures\n\t\telement.onerror = () => {\n\t\t\tthis.engine.debug.error(`Failed to load video: ${this.name}`);\n\t\t};\n\n\t\tif (this.props.indexOf('close') > -1) {\n\t\t\telement.onended = () => {\n\t\t\t\t// Exit fullscreen if we're in fullscreen mode\n\t\t\t\tif (this.mode === 'fullscreen' && document.fullscreenElement) {\n\t\t\t\t\tdocument.exitFullscreen().catch(() => {\n\t\t\t\t\t\t// Ignore errors when exiting fullscreen\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\t// Cleanup and remove the element\n\t\t\t\tconst videoElement = this.engine.element().find(`[data-video=\"${this.name}\"][data-mode=\"${this.mode}\"]`).get(0) as HTMLVideoElement | undefined;\n\t\t\t\tif (videoElement) {\n\t\t\t\t\tVideo.cleanupVideoElement(videoElement);\n\t\t\t\t\tvideoElement.remove();\n\t\t\t\t}\n\n\t\t\t\tconst removeVideoFromState = () => {\n\t\t\t\t\tlet found = false;\n\t\t\t\t\tthis.engine.state({\n\t\t\t\t\t\tvideos: this.engine.state('videos').filter((item: string) => {\n\t\t\t\t\t\t\tif (!found) {\n\t\t\t\t\t\t\t\tconst [, , name, mode] = item.split(' ');\n\t\t\t\t\t\t\t\tif (name === this.name && mode === this.mode) {\n\t\t\t\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\t\t\t\t};\n\n\t\t\t\tif (this.mode === 'immersive' || this.mode === 'fullscreen' || this.mode === 'modal') {\n\t\t\t\t\tremoveVideoFromState();\n\t\t\t\t Video.blocking = false;\n\t\t\t\t\tthis.engine.proceed({ userInitiated: false, skip: false, autoPlay: false });\n\t\t\t\t} else if (this.mode === 'background' || this.mode === 'displayable') {\n\t\t\t\t\tremoveVideoFromState();\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\n\t\tif (this.props.indexOf('loop') > -1) {\n\t\t\t$_(element).attribute('loop', '');\n\t\t}\n\n\t\tif (this.props.indexOf('controls') > -1) {\n\t\t\t$_(element).attribute('controls', '');\n\t\t}\n\n\t\tif (this.mode === 'background') {\n\t\t\tthis.engine.element().find('[data-ui=\"background\"]').append(element);\n\t\t} else if (this.mode === 'immersive') {\n\t\t\tVideo.blocking = true;\n\t\t\tthis.engine.element().find('[data-screen=\"game\"]').prepend(element);\n\t\t} else if (this.mode === 'fullscreen') {\n\t\t\tVideo.blocking = true;\n\t\t\tif (element.requestFullscreen) {\n\t\t\t\tthis.engine.element().find('[data-screen=\"game\"]').append(element);\n\t\t\t\telement.requestFullscreen();\n\t\t\t} else {\n\t\t\t\t$_(element).addClass('immersive');\n\t\t\t\tthis.engine.element().find('[data-screen=\"game\"]').prepend(element);\n\t\t\t}\n\t\t} else if (this.mode === 'displayable') {\n\t\t\tthis.engine.element().find('[data-screen=\"game\"]').append(element);\n\t\t} else if (this.mode === 'modal') {\n\t\t\tVideo.blocking = true;\n\t\t\tthis.engine.element().find('[data-screen=\"game\"]').append(element);\n\t\t} else {\n\t\t\tthrow new Error('Invalid video mode.');\n\t\t}\n\n\t\telement.play();\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tconst statement = this._statement as string;\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history('video').push(statement);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tvideos: [...this.engine.state('videos'), statement]\n\t\t\t});\n\t\t}\n\n\t\tif (this.mode === 'background' || this.mode === 'modal' || this.mode === 'displayable') {\n\t\t\treturn { advance: true };\n\t\t}\n\n\t\treturn { advance: false };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst element = this.engine.element().find(`[data-video=\"${this.name}\"][data-mode=\"${this.mode}\"]`).get(0) as HTMLVideoElement | undefined;\n\t\tif (element) {\n\t\t\t// Exit fullscreen if we're in fullscreen mode\n\t\t\tif (this.mode === 'fullscreen' && document.fullscreenElement) {\n\t\t\t\tawait document.exitFullscreen().catch(() => {\n\t\t\t\t\t// Ignore errors when exiting fullscreen\n\t\t\t\t});\n\t\t\t}\n\t\t\tVideo.cleanupVideoElement(element);\n\t\t\telement.remove();\n\t\t}\n\n\t\t// Unblock if this was a blocking video\n\t\tif (this.mode === 'immersive' || this.mode === 'fullscreen' || this.mode === 'modal') {\n\t\t\tVideo.blocking = false;\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tlet foundState = false;\n\t\tthis.engine.state({\n\t\t\tvideos: this.engine.state('videos').filter((item: string) => {\n\t\t\t\tif (!foundState) {\n\t\t\t\t\tconst [, , name, mode] = item.split(' ');\n\t\t\t\t\tif (name === this.name && mode === this.mode) {\n\t\t\t\t\t\tfoundState = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})\n\t\t});\n\n\t\tconst history = this.engine.history('video');\n\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\tconst last = history[i];\n\t\t\tconst [, , name, mode] = last.split(' ');\n\t\t\tif (name === this.name && mode === this.mode) {\n\t\t\t\thistory.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Video;", + "import Action from './../lib/Action';\nimport Video from './Video';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class HideVideo extends Action {\n\n\tstatic override id = 'Hide::Video';\n\n\tstatic override matchString([hide, type]: string[]): boolean {\n\t\treturn hide === 'hide' && type === 'video';\n\t}\n\n\tname: string;\n\tclasses: string[];\n\n\tconstructor([hide, type, name, separator, ...classes]: string[]) {\n\t\tsuper();\n\t\tthis.name = name;\n\t\tif (typeof classes !== 'undefined') {\n\t\t\tthis.classes = classes;\n\t\t} else {\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst element = this.engine.element().find(`[data-video=\"${this.name}\"]`);\n\t\tconst videoElement = element.get(0) as HTMLVideoElement | undefined;\n\n\t\tif (this.classes.length > 0) {\n\t\t\telement.addClass('animated');\n\t\t\tfor (const newClass of this.classes) {\n\t\t\t\tif (newClass) {\n\t\t\t\t\telement.addClass(newClass);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\telement.data('visibility', 'invisible');\n\t\t\telement.on('animationend', (e: Event) => {\n\t\t\t\tconst target = e.target as HTMLVideoElement;\n\t\t\t\tif (target.dataset?.visibility === 'invisible') {\n\t\t\t\t\t// Cleanup video before removal\n\t\t\t\t\tVideo.cleanupVideoElement(target);\n\t\t\t\t\ttarget.remove();\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Cleanup video before removal\n\t\t\tif (videoElement) {\n\t\t\t\tVideo.cleanupVideoElement(videoElement);\n\t\t\t}\n\t\t\telement.remove();\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tlet found = false;\n\t\tthis.engine.state({\n\t\t\tvideos: this.engine.state('videos').filter((item: string) => {\n\t\t\t\tif (!found) {\n\t\t\t\t\tconst [, , name] = item.split(' ');\n\t\t\t\t\tif (name === this.name) {\n\t\t\t\t\t\tfound = true;\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})\n\t\t});\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst history = this.engine.history('video') as string[];\n\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\tconst last = history[i];\n\t\t\tconst [, , name] = last.split(' ');\n\t\t\tif (name === this.name) {\n\t\t\t\tconst action = this.engine.prepareAction(last, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\t\tif (action !== null) {\n\t\t\t\t\tawait action.willApply();\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default HideVideo;", + "import Action from './../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { ActionRevertResult } from '../lib/types';\nimport type TimerDisplayComponent from './../components/timer-display';\nimport type TextInputComponent from './../components/text-input';\n\nexport class InputModal extends Action {\n\n static override id = 'Input';\n static override blocking = false;\n\n static override async setup(): Promise {\n this.engine.globals({\n _InputTimer: null,\n _input_just_rolled_back: false,\n });\n }\n\n static override async reset(): Promise {\n this.engine.globals({\n _InputTimer: null,\n _input_just_rolled_back: false,\n });\n }\n\n static override async afterRevert(): Promise {\n // When a choice gets reverted, it pushes a `true` value to this global variable.\n // As soon as it gets reverted, this function is run and it pops the `true` out of\n // the array, meaning it was just reverted and the choice should be showing on screeen again.\n if (this.engine.global('_input_just_rolled_back')) {\n this.engine.global('_input_just_rolled_back', false);\n return;\n }\n\n // If the player reverts once more while the choice is being shown, then we'll reach this part\n // and we can clean up any variables we need to.\n const timer = this.engine.global('_InputTimer');\n\n if (typeof timer !== 'undefined' && timer !== null) {\n if (timer.props?.timer) {\n clearTimeout(timer.props.timer);\n }\n\n if (timer.parentNode !== null && timer.element) {\n timer.element().remove();\n }\n\n this.engine.global('_InputTimer', null);\n }\n }\n\n static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise {\n if (InputModal.blocking) {\n throw new Error('Waiting for user input');\n }\n }\n\n static override async willRollback(): Promise {\n InputModal.blocking = false;\n }\n\n static override matchObject({ Input }: any): boolean {\n return typeof Input !== 'undefined';\n }\n\n statement: any;\n\n constructor({ Input }: any) {\n super();\n this.statement = Input;\n\n if (typeof this.statement.Validation !== 'function') {\n this.statement.Validation = () => true;\n }\n\n if (typeof this.statement.Save !== 'function') {\n this.statement.Save = () => true;\n }\n\n if (typeof this.statement.Warning !== 'string') {\n this.statement.Warning = '';\n }\n\n if (typeof this.statement.actionString !== 'string') {\n this.statement.actionString = 'OK';\n }\n\n if (typeof this.statement.Class !== 'string') {\n this.statement.Class = '';\n }\n\n if (['string', 'number'].indexOf(typeof this.statement.Default) === -1 || this.statement.Default === '') {\n this.statement.Default = null;\n }\n\n if (typeof this.statement.Type !== 'string') {\n this.statement.Type = 'text';\n }\n\n if (typeof this.statement.Options !== 'object' || this.statement.Options === null) {\n this.statement.Options = [];\n }\n\n if (typeof this.statement.Timer !== 'object') {\n this.statement.Timer = null;\n }\n\n if (typeof this.statement.Attributes !== 'object') {\n this.statement.Attributes = {};\n }\n }\n\n override async apply(): Promise {\n InputModal.blocking = true;\n\n const input = document.createElement('text-input') as TextInputComponent;\n\n const { Text, Warning, Save, Validation, actionString, Class, Type, Options, Default, Timer, Attributes } = this.statement;\n\n input.setProps({\n text: this.engine.replaceVariables(Text),\n type: Type,\n options: Options,\n default: Default,\n warning: Warning,\n onSubmit: Save,\n validate: Validation,\n attributes: Attributes,\n actionString,\n callback: () => {\n const timer = this.engine.global('_InputTimer');\n\n if (typeof timer !== 'undefined' && timer !== null) {\n if (timer.props?.timer) {\n clearTimeout(timer.props.timer);\n }\n if (timer.parentNode !== null && timer.element) {\n timer.element().remove();\n }\n this.engine.global('_InputTimer', null);\n }\n\n InputModal.blocking = false;\n this.engine.proceed({ userInitiated: true, skip: false, autoPlay: false });\n },\n classes: Class.trim()\n });\n\n if (Timer !== null) {\n const timer_display = document.createElement('timer-display') as TimerDisplayComponent;\n timer_display.setProps(Timer);\n this.engine.global('_InputTimer', timer_display);\n this.engine.element().find('[data-screen=\"game\"]').prepend(timer_display);\n }\n\n this.engine.element().find('[data-screen=\"game\"]').append(input);\n }\n\n override async willRevert(): Promise {\n if (typeof this.statement.Revert === 'function') {\n return;\n }\n\n throw new Error('Input is missing a `Revert` function.');\n }\n\n override async revert(): Promise {\n await Util.callAsync(this.statement.Revert, this.engine);\n return this.apply();\n }\n\n override async didRevert(): Promise {\n this.engine.global('_input_just_rolled_back', true);\n return { advance: false, step: true };\n }\n}\n\nexport default InputModal;", + "import Action from './../lib/Action';\nimport { FancyError } from '../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, LabelHistoryItem } from '../lib/types';\nimport type { DOM } from '@aegis-framework/artemis';\nexport class Jump extends Action {\n\n\tstatic override id = 'Jump';\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('label');\n\t\tthis.engine.history('jump');\n\t}\n\n\tstatic override async bind(selector: string): Promise {\n\t\tthis.engine.registerListener('jump', {\n\t\t\tcallback: (event: Event, element: DOM) => {\n\t\t\t\tthis.engine.run(`jump ${element.data('jump')}`, false);\n\t\t\t}\n\t\t});\n\t}\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'jump';\n\t}\n\n\tlabel: string;\n\n\tconstructor([action, label]: string[]) {\n\t\tsuper();\n\t\tthis.label = label;\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (typeof this.engine.script(this.label) !== 'undefined') {\n\t\t\tthis.engine.stopAmbient();\n\t\t\tthis.engine.showScreen('game');\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tFancyError.show('action:jump:label_not_found', {\n\t\t\ttargetLabel: this.label,\n\t\t\tavailableLabels: Object.keys(this.engine.script() as Record),\n\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\tlabel: this.engine.state('label'),\n\t\t\tstep: this.engine.state('step')\n\t\t});\n\n\t\tthrow new Error('Label does not exist.');\n\t}\n\n\toverride async apply(): Promise {\n\t\t(this.engine.history('jump') as Array<{ source: { label: string; step: number }; destination: { label: string; step: number } }>).push({\n\t\t\tsource: {\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t},\n\t\t\tdestination: {\n\t\t\t\tlabel: this.label,\n\t\t\t\tstep: 0\n\t\t\t}\n\t\t});\n\t\tthis.engine.state({\n\t\t\tstep: 0,\n\t\t\tlabel: this.label\n\t\t});\n\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as (HTMLElement & { props?: { mode?: string } }) | undefined;\n\n\t\tif (textBox?.props?.mode !== 'nvl') {\n\t\t\tconst dialogAction = this.engine.action('Dialog');\n\t\t\tif (dialogAction) {\n\t\t\t\t(dialogAction as unknown as { reset: () => void }).reset();\n\t\t\t}\n\t\t}\n\n\t\tthis.engine.run(this.engine.label()[this.engine.state('step')]);\n\t\t(this.engine.history('label') as LabelHistoryItem[]).push({ label: this.label, step: this.engine.state('step') });\n\t}\n\n\t// Jump is right now not reversible due to complications with the logic for it\n\toverride async willRevert(): Promise {\n\t\tif (this.engine.history('jump').length > 0) {\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\tthrow new Error('No elements in history available.');\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst last = this.engine.history('jump')[this.engine.history('jump').length - 1];\n\t\tif (typeof last !== 'undefined') {\n\t\t\tthis.engine.state({\n\t\t\t\tstep: last.source.step,\n\t\t\t\tlabel: last.source.label\n\t\t\t});\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\tthrow new Error('No elements in history available.');\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tthis.engine.history('jump').pop();\n\t\tthis.engine.history('label').pop();\n\t\treturn { advance: true, step: false };\n\t}\n}\n\nexport default Jump;", + "import Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\n\nexport class Message extends Action {\n static override id = 'Message';\n static override blocking = false;\n\n static _configuration: any = {\n messages: {}\n };\n\n static override async bind(): Promise {\n // The close action removes the active class from the element it\n // points to.\n this.engine.on('click', '[data-component=\"message-modal\"] [data-action=\"close\"]', () => {\n Message.blocking = false;\n this.engine.element().find('[data-component=\"message-modal\"]').remove();\n this.engine.proceed({ userInitiated: true, skip: false, autoPlay: false });\n });\n }\n\n static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise {\n if (Message.blocking) {\n throw new Error('Message waiting for dismissal');\n }\n }\n\n static override async willRollback(): Promise {\n Message.blocking = false;\n }\n\n static override matchString([show, type]: string[]): boolean {\n return show === 'show' && type === 'message';\n }\n\n static messages(object: any = null): any {\n if (object !== null) {\n if (typeof object === 'string') {\n return Message._configuration.messages[object];\n } else {\n Message._configuration.messages = Object.assign({}, Message._configuration.messages, object);\n }\n } else {\n return Message._configuration.messages;\n }\n }\n\n id: string;\n message: any;\n classes: string[];\n\n constructor([show, type, message, ...classes]: string[]) {\n super();\n this.id = message;\n this.message = (this.constructor as any).messages(message);\n this.classes = classes;\n }\n\n override async willApply(): Promise {\n if (typeof this.message !== 'undefined') {\n // Check if the old format is being use and translate it to the new one\n if (this.message.Title && this.message.Subtitle && this.message.Message) {\n this.message.title = this.message.Title;\n this.message.subtitle = this.message.Subtitle;\n this.message.body = this.message.Message;\n }\n return Promise.resolve();\n } else {\n FancyError.show('action:message:not_found', {\n id: this.id,\n availableMessages: Object.keys(Message.messages()),\n label: this.engine.state('label'),\n step: this.engine.state('step')\n });\n }\n\n return Promise.reject();\n }\n\n override async apply(): Promise {\n Message.blocking = true;\n\n const element = document.createElement('message-modal');\n\n if (typeof this.message.title === 'string') {\n (element as any).setProps({\n title: this.engine.replaceVariables(this.message.title)\n });\n }\n\n if (typeof this.message.subtitle === 'string') {\n (element as any).setProps({\n subtitle: this.engine.replaceVariables(this.message.subtitle)\n });\n }\n\n if (typeof this.message.body === 'string') {\n (element as any).setProps({\n body: this.engine.replaceVariables(this.message.body)\n });\n }\n\n if (typeof this.message.actionString === 'string') {\n (element as any).setProps({\n actionString: this.engine.replaceVariables(this.message.actionString)\n });\n }\n\n for (const newClass of this.classes) {\n if (newClass) {\n element.classList.add(newClass);\n }\n }\n\n this.engine.element().find('[data-screen=\"game\"]').append(element);\n }\n\n override async revert(): Promise {\n const messageModal = this.engine.component('message-modal') as { instances?: () => { remove: () => void } } | undefined;\n if (messageModal?.instances) {\n messageModal.instances().remove();\n }\n return this.apply();\n }\n\n override async didRevert(): Promise {\n return { advance: false, step: true };\n }\n}\n\nexport default Message;", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Next extends Action {\n\tstatic override id = 'Next';\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'next';\n\t}\n\n\toverride async didApply(): Promise {\n\t\treturn { advance: true };\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Next;\n", + "import Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Notify extends Action {\n\tstatic override id = 'Notification';\n static override blocking = false;\n\n\tstatic _configuration: { notifications: Record } = {\n\t\tnotifications: {}\n\t};\n\n static override async shouldProceed(): Promise {\n if (Notify.blocking) {\n throw new Error('Waiting for user input');\n }\n }\n\n static override async willRollback(): Promise {\n Notify.blocking = false;\n }\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'notification';\n\t}\n\n\tstatic notifications(object: Record | string | null = null): any {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn Notify._configuration.notifications[object];\n\t\t\t} else {\n\t\t\t\tNotify._configuration.notifications = Object.assign({}, Notify._configuration.notifications, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn Notify._configuration.notifications;\n\t\t}\n\t}\n\n\thasPermission: boolean;\n\tnotification: any;\n\ttime: number | undefined;\n\n\tconstructor([show, type, name, time]: string[]) {\n\t\tsuper();\n\n\t\tthis.hasPermission = false;\n\n\t\t// First check if HTML5 notifications are available\n\t\tif (!('Notification' in window)) {\n\t\t\tconsole.warn('Notifications are not supported in this platform.');\n\t\t}\n\n // Finally check if the given notification exists in the object\n if (typeof Notify.notifications(name) !== 'undefined') {\n this.notification = Object.assign({}, Notify.notifications(name));\n\n if (typeof time !== 'undefined') {\n if (!isNaN(Number(time))) {\n this.time = parseInt(time);\n } else {\n FancyError.show('action:notification:invalid_time', {\n time: time,\n statement: `\"${this._statement}\"`,\n label: this.engine.state('label'),\n step: this.engine.state('step')\n });\n }\n }\n } else {\n FancyError.show('action:notification:not_found', {\n name: name,\n availableNotifications: Object.keys(Notify.notifications()),\n label: this.engine.state('label'),\n step: this.engine.state('step')\n });\n }\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (!this.notification) {\n return;\n }\n Notify.blocking = true;\n\n return new Promise((resolve, reject) => {\n // Let's check whether notification permissions have already been granted\n if (Notification.permission === 'granted') {\n this.hasPermission = true;\n resolve();\n } else if (Notification.permission !== 'denied') {\n Notification.requestPermission((permission) => {\n // If the user accepts, let's create a notification\n if (permission === 'granted') {\n this.hasPermission = true;\n resolve();\n } else {\n console.warn('User denied notifications permission, none will be shown.');\n resolve();\n }\n });\n } else {\n console.warn('The permission to display notifications was denied by the user.');\n resolve();\n }\n });\n\t}\n\n\toverride async apply(): Promise {\n\t\tif (!this.notification) {\n return;\n }\n\n\t\tfor (const key of Object.keys(this.notification)) {\n\t\t\tif (typeof this.notification[key] === 'string') {\n\t\t\t\tthis.notification[key] = this.engine.replaceVariables(this.notification[key]);\n\t\t\t}\n\t\t}\n\n\t\tif (this.hasPermission) {\n\t\t\tconst notification = new Notification(this.notification.title, this.notification);\n\n\t\t\tif (typeof this.time !== 'undefined') {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tnotification.close();\n\t\t\t\t}, this.time);\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n Notify.blocking = false;\n\t\t// Advance the game instead of waiting for another click\n\t\treturn { advance: true };\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Notify;", + "import Action from '../lib/Action';\nimport { tsParticles } from '@tsparticles/engine';\nimport { loadSlim } from '@tsparticles/slim';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class Particles extends Action {\n\n\tstatic override id = 'Particles';\n\tstatic _configuration: { particles: Record } = {\n\t\tparticles: {}\n\t};\n\n\tstatic stop() {\n\t\ttry {\n\t\t\tconst particles = tsParticles.domItem(0);\n\t\t\tif (typeof particles !== 'undefined') {\n\t\t\t\tparticles.stop();\n\t\t\t\tthis.engine.element().find('#tsparticles').html('');\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error('An error ocurred while trying to stop particle system.', e);\n\t\t}\n\t}\n\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('particle');\n\t\tthis.engine.state({\n\t\t\tparticles: ''\n\t\t});\n\t\tawait loadSlim(tsParticles);\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tthis.engine.state({\n\t\t\tparticles: ''\n\t\t});\n\t\tthis.stop();\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst particles = this.engine.state('particles');\n\t\tif (particles !== '') {\n\t\t\tconst action = this.engine.prepareAction(particles, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tawait action.willApply();\n\t\t\t\tawait action.apply();\n\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'particles';\n\t}\n\n\tstatic particles(object: Record | string | null = null): any {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn Particles._configuration.particles[object];\n\t\t\t} else {\n\t\t\t\tParticles._configuration.particles = Object.assign({}, Particles._configuration.particles, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn Particles._configuration.particles;\n\t\t}\n\t}\n\n\tparticles: any;\n\tname: string | undefined;\n\n\tconstructor([show, type, name]: string[]) {\n\t\tsuper();\n\t\tif (typeof Particles.particles(name) !== 'undefined') {\n\t\t\tthis.particles = Particles.particles(name);\n\t\t\tthis.name = name;\n\t\t} else {\n\t\t\tconsole.error(`The Particles ${name} could not be shown because it doesn't exist in the particles object.`);\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (typeof this.particles !== 'undefined') {\n\t\t\treturn;\n\t\t} else {\n\t\t\tthrow new Error('Particle system object does not exist.');\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tawait tsParticles.load({ id: 'tsparticles', options: this.particles });\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tif (updateHistory === true) {\n\t\t\t(this.engine.history('particle') as string[]).push(this._statement as string);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tparticles: this._statement as string\n\t\t\t});\n\t\t}\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tParticles.stop();\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tthis.engine.history('particle').pop();\n\t\tthis.engine.state({\n\t\t\tparticles: ''\n\t\t});\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Particles;\n", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult, MediaType, MediaStateItem } from '../lib/types';\n\nexport class Pause extends Action {\n\n\tstatic override id = 'Pause';\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'pause';\n\t}\n\n\ttype: MediaType;\n\tmedia: string;\n\tplayer: any;\n\n\tconstructor([pause, type, media]: string[]) {\n\t\tsuper();\n\n\t\tthis.type = type as MediaType;\n\t\tthis.media = media;\n\n\t\tif (typeof media === 'undefined') {\n\t\t\tthis.player = this.engine.mediaPlayers(type);\n\t\t} else {\n\t\t\tthis.player = this.engine.mediaPlayer(type, media);\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (this.player) {\n\t\t\treturn Promise.resolve();\n\t\t}\n\t\tthrow new Error('Media player was not defined.');\n\t}\n\n\toverride async apply(): Promise {\n\t\tif (Array.isArray(this.player)) {\n\t\t\tfor (const player of this.player) {\n\t\t\t\tplayer.pause();\n\t\t\t}\n\t\t} else {\n\t\t\tthis.player.pause();\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tconst currentState = this.engine.state(this.type);\n\n\t\tif (Array.isArray(this.player)) {\n\t\t\tconst updatedState = currentState.map((s: MediaStateItem) => ({\n\t\t\t\t...s,\n\t\t\t\tpaused: true\n\t\t\t}));\n\t\t\tthis.engine.state({ [this.type]: updatedState });\n\t\t} else {\n\t\t\tconst updatedState = currentState.map((item: MediaStateItem) => {\n\t\t\t\tif (typeof item.statement === 'string') {\n\t\t\t\t\tconst [play, type, media] = item.statement.split(' ');\n\t\t\t\t\t// If this.media is undefined, pause all items\n\t\t\t\t\t// If this.media is defined, only pause matching items\n\t\t\t\t\tif (this.media === undefined || media === this.media) {\n\t\t\t\t\t\treturn { ...item, paused: true };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn item;\n\t\t\t});\n\t\t\tthis.engine.state({ [this.type]: updatedState });\n\t\t}\n\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tif (this.player) {\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tthrow new Error('Media player was not defined.');\n\t}\n\n\toverride async revert(): Promise {\n\t\tif (Array.isArray(this.player)) {\n\t\t\tconst promises = [];\n\t\t\tfor (const player of this.player) {\n\t\t\t\tpromises.push(player.play());\n\t\t\t}\n\t\t\tawait Promise.all(promises);\n\t\t} else {\n\t\t\tawait this.player.play();\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tconst currentState = this.engine.state(this.type);\n\n\t\tif (Array.isArray(this.player)) {\n\t\t\tconst updatedState = currentState.map((s: MediaStateItem) => ({\n\t\t\t\t...s,\n\t\t\t\tpaused: false\n\t\t\t}));\n\t\t\tthis.engine.state({ [this.type]: updatedState });\n\t\t} else {\n\t\t\tconst updatedState = currentState.map((item: MediaStateItem) => {\n\t\t\t\tif (typeof item.statement === 'string') {\n\t\t\t\t\tconst [play, type, media] = item.statement.split(' ');\n\n\t\t\t\t\t// If this.media is undefined, unpause all items\n\t\t\t\t\t// If this.media is defined, only unpause matching items\n\t\t\t\t\tif (this.media === undefined || media === this.media) {\n\t\t\t\t\t\treturn { ...item, paused: false };\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn item;\n\t\t\t});\n\t\t\tthis.engine.state({ [this.type]: updatedState });\n\t\t}\n\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Pause;", + "import Action from './../lib/Action';\nimport { Util } from '@aegis-framework/artemis';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Placeholder extends Action {\n\tstatic override id = 'Placeholder';\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === '$';\n\t}\n\n\tname: string;\n\taction: any;\n\targuments: any[];\n\n\tconstructor([action, name, ...args]: string[]) {\n\t\tsuper();\n\n\t\tthis.name = name;\n\t\tthis.action = this.engine.$(name);\n\t\tthis.arguments = args;\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (this.name.indexOf('_') === 0) {\n\t\t\tthis.action = await Util.callAsync(this.action, this.engine, ...this.arguments);\n\t\t}\n\n\t\tthis.action = this.engine.prepareAction(this.action, { cycle: this._cycle as 'Application' | 'Revert' });\n\n\t\tawait this.action.willApply();\n\t}\n\n\toverride async apply(): Promise {\n\t\tawait this.action.apply();\n\t}\n\n\toverride async didApply(options?: { updateHistory?: boolean; updateState?: boolean }): Promise {\n\t\treturn await this.action.didApply(options);\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tif (this.name.indexOf('_') === 0) {\n\t\t\tthis.action = await Util.callAsync(this.action, this.engine, ...this.arguments);\n\t\t}\n\n\t\tthis.action = this.engine.prepareAction(this.action, { cycle: this._cycle as 'Application' | 'Revert' });\n\n\t\tawait this.action.willRevert();\n\t}\n\n\toverride async revert(): Promise {\n\t\tawait this.action.revert();\n\t}\n\n\toverride async didRevert(context: ActionRevertResult = { advance: true, step: true }): Promise {\n\t\treturn await this.action.didRevert(context);\n\t}\n}\n\nexport default Placeholder;\n", + "import { $_, Text } from '@aegis-framework/artemis';\nimport type { DOM } from '@aegis-framework/artemis';\nimport Action from './../lib/Action';\nimport AudioPlayer from './../lib/AudioPlayer';\nimport { ActionApplyResult, ActionRevertResult, MediaType, MediaStateItem, ActionInstance } from '../lib/types';\n\nexport class Play extends Action {\n\n static override id = 'Play';\n\n static override async shouldProceed(context?: any): Promise {\n if (typeof context !== 'object' || context === null) {\n return;\n }\n\n const { userInitiated, skip } = context;\n\n if (userInitiated === false && skip === false) {\n const voicePlayers = this.engine.mediaPlayers('voice') as (HTMLAudioElement | HTMLVideoElement | AudioPlayer)[];\n\n for (const player of voicePlayers) {\n if (!player.ended) {\n throw new Error('Voice player still playing.');\n }\n }\n }\n }\n\n static override async willProceed(): Promise {\n Play.shutUp();\n }\n\n static override async willRollback(): Promise {\n Play.shutUp();\n }\n\n static override async setup(): Promise {\n if (!this.engine.audioContext) {\n this.engine.audioContext = new (window.AudioContext || (window as any).webkitAudioContext)();\n }\n\n // Initialize AudioPlayer worklets for the audio context\n AudioPlayer.initialize(this.engine.audioContext).catch((error: any) => {\n console.warn('Failed to initialize AudioPlayer worklets:', error);\n });\n\n this.engine.history('music');\n this.engine.history('sound');\n this.engine.history('voice');\n this.engine.state({\n music: [],\n sound: [],\n voice: []\n });\n }\n\n static override async init(selector: string): Promise {\n const mediaPlayers = Object.keys(this.engine.mediaPlayers());\n // Set the volume of all the media components on the settings screen\n for (const mediaType of mediaPlayers) {\n const element = this.engine.element().find(`[data-target=\"${mediaType}\"]`).get(0) as HTMLInputElement | undefined;\n\n if (element) {\n const volumeSettings = this.engine.preference('Volume') as Record;\n let volume = volumeSettings[Text.capitalize(mediaType)];\n\n if (typeof volume === 'string') {\n volume = parseFloat(volume as unknown as string);\n }\n\n element.value = String(volume);\n }\n }\n }\n\n static override async bind(selector: string): Promise {\n const engine = this.engine;\n\n engine.registerListener('set-volume', {\n callback: (event: Event, element: DOM) => {\n const target = element.data('target') as string;\n let value: string | number = element.value() as string;\n\n if (typeof value === 'string') {\n value = parseFloat(value);\n }\n\n if (target === 'video') {\n $_('[data-video]').each((el: any) => {\n (el as HTMLMediaElement).volume = value as number;\n });\n } else {\n const players = engine.mediaPlayers(target) as (HTMLAudioElement | AudioPlayer)[];\n\n // Music volume should also affect the main screen ambient music\n if (target === 'music') {\n const ambientPlayer = engine.ambientPlayer as (HTMLAudioElement & { gainNode?: GainNode }) | null;\n if (ambientPlayer && ambientPlayer.gainNode && engine.audioContext) {\n ambientPlayer.gainNode.gain.setValueAtTime(value as number, engine.audioContext.currentTime);\n } else if (ambientPlayer && ambientPlayer.volume !== undefined) {\n ambientPlayer.volume = value as number;\n }\n }\n\n for (const player of players) {\n // Handle both HTMLAudioElement and AudioPlayer\n const volumePercentage = player.dataset?.volumePercentage;\n if (volumePercentage && !isNaN(parseInt(volumePercentage))) {\n player.volume = (parseInt(volumePercentage) / 100) * (value as number);\n } else {\n player.volume = value as number;\n }\n }\n }\n\n const volumeSettings = engine.preference('Volume') as Record;\n volumeSettings[Text.capitalize(target)] = value as number;\n engine.preferences(engine.preferences(), true);\n }\n });\n }\n\n static override async onLoad(): Promise {\n const mediaPlayers = Object.keys(this.engine.mediaPlayers());\n const promises: Promise[] = [];\n const pausedMedia: { type: string; media: string }[] = [];\n\n for (const mediaType of mediaPlayers) {\n const state = this.engine.state(mediaType as keyof import('../lib/types').StateMap) as MediaStateItem[] | undefined;\n\n if (typeof state !== 'undefined' && Array.isArray(state)) {\n if (state.length > 0) {\n for (const s of state) {\n const action = this.engine.prepareAction(s.statement, { cycle: 'Application' }) as ActionInstance | null;\n if (action !== null) {\n const promise = action.willApply().then(() => {\n return action.apply().then(() => {\n return action.didApply({ updateHistory: false, updateState: false });\n });\n });\n\n promises.push(promise);\n\n // Track media that should be paused after restore\n if (s.paused) {\n const parts = s.statement.split(' ');\n // Statement format: \"play [options]\"\n if (parts.length >= 3) {\n pausedMedia.push({ type: parts[1], media: parts[2] });\n }\n }\n }\n }\n }\n }\n }\n\n if (promises.length > 0) {\n await Promise.all(promises);\n }\n\n // Restore paused state for media that was paused when saved\n for (const { type, media } of pausedMedia) {\n const player = this.engine.mediaPlayer(type, media);\n player?.pause();\n }\n }\n\n static override async reset(): Promise {\n const players = this.engine.mediaPlayers();\n\n // Stop and remove all the media players\n for (const playerType of Object.keys(players)) {\n this.engine.removeMediaPlayer(playerType);\n }\n\n this.engine.state({\n music: [],\n sound: [],\n voice: []\n });\n }\n\n static override matchString([action]: string[]): boolean {\n return action === 'play';\n }\n\n // Stop the voice player\n static shutUp(): void {\n const players = this.engine.mediaPlayers('voice', true);\n for (const media of Object.keys(players)) {\n this.engine.removeMediaPlayer('voice', media);\n }\n\n this.engine.state({ voice: [] });\n }\n\n type: MediaType;\n directory: string;\n mediaKey: string;\n props: string[];\n mediaVolume: number;\n media: string;\n player: any;\n\n constructor([action, type, media, ...props]: string[]) {\n super();\n this.type = type as MediaType;\n this.media = '';\n\n if (this.type === 'music') {\n this.directory = this.type;\n } else {\n // Directories are always plural so we need to add an \"s\"\n this.directory = this.type + 's';\n }\n\n this.mediaKey = media;\n this.props = props;\n\n const volumeSettings = this.engine.preference('Volume') as Record;\n\n this.mediaVolume = volumeSettings[Text.capitalize(this.type)];\n\n // Check if a media was defined or just a `play music` was stated\n if (typeof media !== 'undefined' && media !== 'with') {\n if (typeof this.engine.asset(this.directory, media) !== 'undefined') {\n this.media = this.engine.asset(this.directory, media) as string;\n } else {\n this.media = media;\n }\n\n const player = this.engine.mediaPlayer(this.type, this.mediaKey);\n\n // We'll create the player in the apply method since it's async\n this.player = typeof player === 'undefined' ? null : player;\n } else {\n this.player = this.engine.mediaPlayers(this.type);\n }\n }\n\n async createAudioPlayer(paused = false, volume = 1): Promise {\n const audioContext = this.engine.audioContext!;\n const gainNode = audioContext.createGain();\n gainNode.connect(audioContext.destination);\n\n // Check if audio is already cached\n const cacheKey = `${this.directory}/${this.mediaKey}`;\n let audioBuffer = this.engine.audioBufferCache(cacheKey);\n\n if (!audioBuffer) {\n // Load and decode audio file\n const assetsPath = this.engine.setting('AssetsPath') as Record;\n const response = await fetch(`${assetsPath.root}/${assetsPath[this.directory]}/${this.media}`);\n const arrayBuffer = await response.arrayBuffer();\n audioBuffer = await audioContext.decodeAudioData(arrayBuffer);\n }\n\n // Parse effects from props\n const effects = this.parseEffects();\n\n return new AudioPlayer(audioContext, audioBuffer, {\n outputNode: gainNode,\n effects: effects,\n paused: paused,\n volume: volume\n });\n }\n\n parseEffects(): Record {\n const availableEffects = AudioPlayer.effects();\n\n const effects: Record = {};\n\n for (const config of availableEffects) {\n const index = this.props.indexOf(config.id);\n\n if (index === -1) {\n continue;\n }\n\n const params: Record = {};\n\n // Parse parameters based on the effect's parameter list\n for (let i = 0; i < config.params.length; i++) {\n const paramName = config.params[i];\n const paramValue = this.props[index + 1 + i];\n\n if (paramValue !== undefined) {\n // Try to parse as number first, fallback to string\n const numValue = parseFloat(paramValue);\n params[paramName] = isNaN(numValue) ? paramValue : numValue;\n }\n }\n\n effects[config.id] = params;\n }\n\n return effects;\n }\n\n override async willApply(): Promise {\n if (this.player || this.mediaKey) {\n if (this.player instanceof AudioPlayer) {\n this.player.loop = false;\n }\n return;\n }\n\n throw new Error('Media player was not defined.');\n }\n\n override async apply({ paused = false } = {}): Promise {\n // Check if the audio should have a fade time\n const fadePosition = this.props.indexOf('fade');\n const shouldLoop = this.props.indexOf('loop') > -1;\n const volumePercentage = this.props.indexOf('volume') > -1 ? parseInt(this.props[this.props.indexOf('volume') + 1]) / 100 : 1;\n const volume = this.mediaVolume * volumePercentage;\n\n // Create player if it doesn't exist yet\n if (this.player === null) {\n this.player = await this.createAudioPlayer(paused, volume);\n this.engine.mediaPlayer(this.type, this.mediaKey, this.player);\n }\n\n if (this.player instanceof AudioPlayer) {\n // Make the audio loop if it was provided as a prop\n if (shouldLoop) {\n this.player.loop = true;\n }\n\n // Set volume through the AudioPlayer setter\n this.player.volume = volume;\n this.player.dataset.volumePercentage = (volumePercentage * 100).toString();\n\n this.player.onended = () => {\n const endState: Record = {};\n endState[this.type] = this.engine.state(this.type).filter((s: any) => s.statement !== this._statement);\n this.engine.state(endState);\n this.engine.removeMediaPlayer(this.type, this.mediaKey);\n };\n\n if (paused === true) {\n return Promise.resolve();\n }\n\n // Start playback first, then apply fade if requested\n await this.player.play();\n\n if (fadePosition > -1) {\n const fadeTime = this.props[fadePosition + 1];\n const match = fadeTime.match(/\\d*(\\.\\d*)?/);\n const duration = match ? parseFloat(match[0]) : 0;\n // Don't await fadeIn - let it run in background while playback continues\n this.player.fadeIn(duration, this.player.volume);\n }\n\n return;\n\n }\n else if (this.player instanceof Array) {\n const promises = [];\n for (const player of this.player) {\n if (player.paused && !player.ended) {\n if (fadePosition > -1) {\n const fadeTime = this.props[fadePosition + 1];\n const match = fadeTime.match(/\\d*(\\.\\d*)?/);\n const duration = match ? parseFloat(match[0]) : 0;\n player.fadeIn(duration);\n }\n promises.push(player.play());\n }\n }\n await Promise.all(promises);\n } else {\n throw new Error('An error occurred, you probably have a typo on the media you want to play.');\n }\n }\n\n override async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n if (updateHistory === true) {\n if (this.player instanceof AudioPlayer || this.mediaKey) {\n this.engine.history(this.type).push(this._statement as string);\n }\n }\n\n if (updateState === true) {\n const currentState = this.engine.state(this.type);\n if (this.player instanceof AudioPlayer || this.mediaKey) {\n const newItem: MediaStateItem = { statement: this._statement as string, paused: false };\n this.engine.state({ [this.type]: [...currentState, newItem] });\n } else if (this.player instanceof Array) {\n const updatedState = currentState.map((item: MediaStateItem) => ({\n ...item,\n paused: false\n }));\n this.engine.state({ [this.type]: updatedState });\n }\n }\n\n return { advance: true };\n }\n\n override async revert(): Promise {\n if (typeof this.mediaKey !== 'undefined') {\n this.engine.removeMediaPlayer(this.type, this.mediaKey);\n } else if (this.player instanceof Array) {\n for (const player of this.player) {\n if (!player.paused && !player.ended) {\n player.pause();\n }\n }\n }\n }\n\n override async didRevert(): Promise {\n const currentState = this.engine.state(this.type);\n\n if (typeof this.mediaKey !== 'undefined') {\n const history = this.engine.history(this.type) as string[];\n for (let i = history.length - 1; i >= 0; i--) {\n if (history[i] === this._statement) {\n history.splice(i, 1);\n break;\n }\n }\n const filteredState = currentState.filter((m: MediaStateItem) => m.statement !== this._statement);\n this.engine.state({ [this.type]: filteredState });\n } else if (this.player instanceof Array) {\n const updatedState = currentState.map((item: MediaStateItem) => ({\n ...item,\n paused: true\n }));\n this.engine.state({ [this.type]: updatedState });\n }\n return { advance: true, step: true };\n }\n}\n\nexport default Play;\n", + "import { Preload as ArtemisPreload } from '@aegis-framework/artemis';\nimport Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult, VisualNovelEngine } from '../lib/types';\n\n/**\n * Asset loader function type\n * @param url - The URL of the asset to load\n * @param engine - The Monogatari engine instance\n * @returns A promise resolving to the loaded asset\n */\nexport type AssetLoader = (url: string, engine: VisualNovelEngine) => Promise;\n\n/**\n * Asset cache accessor type for getting/setting/deleting cached assets\n */\nexport type AssetCacheAccessor = {\n\tget: (engine: VisualNovelEngine, key: string) => T | undefined;\n\tset: (engine: VisualNovelEngine, key: string, value: T) => void;\n\tdelete?: (engine: VisualNovelEngine, key: string) => void;\n\tclear?: (engine: VisualNovelEngine, prefix: string) => void;\n};\n\n/**\n * Configuration for registering a custom asset loader\n */\nexport type LoaderConfig = {\n\tloader: AssetLoader;\n\tcache: AssetCacheAccessor;\n};\n\n/**\n * Type definitions for preload block configuration\n * Users can extend this via declaration merging to add custom categories\n */\nexport interface PreloadBlock {\n\tmusic?: string[];\n\tsound?: string[];\n\tvoice?: string[];\n\tscenes?: string[];\n\timages?: string[];\n\tcharacters?: Record; // { characterId: [sprite names] }\n\t[category: string]: string[] | Record | undefined;\n}\n\nexport type PreloadBlocks = Record;\n\nexport class Preload extends Action {\n\n\tstatic override id = 'Preload';\n\n\t// Static storage for block configurations\n\tstatic _blocks: PreloadBlocks = {};\n\n\t// Registry of custom loaders by type name\n\tstatic _loaders: Map = new Map();\n\n\t// Registry mapping category names to loader types\n\tstatic _categoryLoaderMap: Map = new Map();\n\n\t// Registry mapping category aliases (e.g., 'sound' -> 'sounds')\n\tstatic _categoryAliases: Map = new Map();\n\n\t/**\n\t * Setup default loaders for built-in asset types.\n\t * Runs during setup() phase to ensure loaders are available before scripts execute.\n\t */\n\tstatic override async setup(): Promise {\n\t\t// Register default audio loader with IndexedDB persistence\n\t\tif (!this._loaders.has('audio')) {\n\t\t\tthis.registerLoader('audio', {\n\t\t\t\tloader: async (url: string, eng: VisualNovelEngine) => {\n\t\t\t\t\t// Try to load from IndexedDB first (fast path - no network, no decode)\n\t\t\t\t\tconst cacheKey = url; // URL is used as key for persistent storage\n\t\t\t\t\tconst persistedBuffer = await eng.getAudioBufferPersistent(cacheKey);\n\t\t\t\t\tif (persistedBuffer) {\n\t\t\t\t\t\treturn persistedBuffer;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Not in IndexedDB, fetch and decode from network\n\t\t\t\t\tconst buffer = await ArtemisPreload.audio(url, eng.audioContext);\n\n\t\t\t\t\t// Store in IndexedDB for future sessions (async, don't wait)\n\t\t\t\t\teng.storeAudioBufferPersistent(cacheKey, buffer).catch(() => {\n\t\t\t\t\t\t// Silently ignore storage failures\n\t\t\t\t\t});\n\n\t\t\t\t\treturn buffer;\n\t\t\t\t},\n\t\t\t\tcache: {\n\t\t\t\t\tget: (eng: VisualNovelEngine, key: string) => eng.audioBufferCache(key),\n\t\t\t\t\tset: (eng: VisualNovelEngine, key: string, value: AudioBuffer) => eng.audioBufferCache(key, value),\n\t\t\t\t\tdelete: (eng: VisualNovelEngine, key: string) => eng.audioBufferUncache(key),\n\t\t\t\t\tclear: (eng: VisualNovelEngine, prefix: string) => eng.audioBufferClearCache(prefix),\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Register default image loader\n\t\tif (!this._loaders.has('image')) {\n\t\t\tthis.registerLoader('image', {\n\t\t\t\tloader: async (url: string) => {\n\t\t\t\t\treturn ArtemisPreload.image(url);\n\t\t\t\t},\n\t\t\t\tcache: {\n\t\t\t\t\tget: (eng: VisualNovelEngine, key: string) => eng.imageCache(key),\n\t\t\t\t\tset: (eng: VisualNovelEngine, key: string, value: HTMLImageElement) => eng.imageCache(key, value),\n\t\t\t\t\tdelete: (eng: VisualNovelEngine, key: string) => eng.imageUncache(key),\n\t\t\t\t\tclear: (eng: VisualNovelEngine, prefix: string) => eng.imageClearCache(prefix),\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t// Register default category mappings (using plural names as assets are registered)\n\t\tconst defaultAudioCategories = ['music', 'sounds', 'voices'];\n\t\tconst defaultImageCategories = ['scenes', 'images', 'characters'];\n\n\t\tfor (const category of defaultAudioCategories) {\n\t\t\tif (!this._categoryLoaderMap.has(category)) {\n\t\t\t\tthis.registerCategory(category, 'audio');\n\t\t\t}\n\t\t}\n\n\t\tfor (const category of defaultImageCategories) {\n\t\t\tif (!this._categoryLoaderMap.has(category)) {\n\t\t\t\tthis.registerCategory(category, 'image');\n\t\t\t}\n\t\t}\n\n\t\t// Register default category aliases (singular -> plural)\n\t\tconst defaultAliases: Record = {\n\t\t\t'scene': 'scenes',\n\t\t\t'image': 'images',\n\t\t\t'sound': 'sounds',\n\t\t\t'voice': 'voices'\n\t\t};\n\n\t\tfor (const [alias, category] of Object.entries(defaultAliases)) {\n\t\t\tif (!this._categoryAliases.has(alias)) {\n\t\t\t\tthis.registerAlias(alias, category);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Register a custom asset loader\n\t * @param type - Unique identifier for this loader type (e.g., 'audio', 'image', 'video')\n\t * @param config - Loader configuration with loader function and cache accessors\n\t */\n\tstatic registerLoader(type: string, config: LoaderConfig): void {\n\t\tthis._loaders.set(type, config as LoaderConfig);\n\t}\n\n\t/**\n\t * Register a category to use a specific loader type\n\t * @param category - Category name (e.g., 'music', 'videos')\n\t * @param loaderType - The loader type to use (e.g., 'audio', 'video')\n\t */\n\tstatic registerCategory(category: string, loaderType: string): void {\n\t\tthis._categoryLoaderMap.set(category, loaderType);\n\t}\n\n\t/**\n\t * Get the loader type for a category\n\t * @param category - Category name\n\t * @returns The loader type string or undefined if not registered\n\t */\n\tstatic getLoaderType(category: string): string | undefined {\n\t\treturn this._categoryLoaderMap.get(category);\n\t}\n\n\t/**\n\t * Get a loader configuration by type\n\t * @param type - Loader type name\n\t * @returns The loader configuration or undefined if not registered\n\t */\n\tstatic getLoader(type: string): LoaderConfig | undefined {\n\t\treturn this._loaders.get(type);\n\t}\n\n\t/**\n\t * Check if a category has a registered loader\n\t * @param category - Category name\n\t * @returns True if the category has a registered loader\n\t */\n\tstatic hasLoader(category: string): boolean {\n\t\tconst loaderType = this._categoryLoaderMap.get(category);\n\t\treturn loaderType !== undefined && this._loaders.has(loaderType);\n\t}\n\n\t/**\n\t * Register an alias for a category (e.g., 'sound' -> 'sounds')\n\t * @param alias - The alias name (e.g., 'sound')\n\t * @param category - The actual category name (e.g., 'sounds')\n\t */\n\tstatic registerAlias(alias: string, category: string): void {\n\t\tthis._categoryAliases.set(alias, category);\n\t}\n\n\t/**\n\t * Resolve a category name, applying any registered aliases\n\t * @param category - The category name or alias\n\t * @returns The resolved category name\n\t */\n\tstatic resolveCategory(category: string): string {\n\t\treturn this._categoryAliases.get(category) ?? category;\n\t}\n\n\t/**\n\t * Register or retrieve block configurations\n\t * @param config - Block configuration object to register (if setting)\n\t * @returns Current blocks configuration\n\t */\n\tstatic blocks(): PreloadBlocks;\n\tstatic blocks(config: PreloadBlocks): void;\n\tstatic blocks(config?: PreloadBlocks): PreloadBlocks | void {\n\t\tif (config !== undefined) {\n\t\t\t// Merge with existing blocks\n\t\t\tthis._blocks = { ...this._blocks, ...config };\n\t\t} else {\n\t\t\treturn this._blocks;\n\t\t}\n\t}\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'preload';\n\t}\n\n\t// Instance properties\n\tprivate category: string = '';\n\tprivate assetName: string = '';\n\tprivate blockId: string = '';\n\tprivate isBlock: boolean = false;\n\tprivate isBlocking: boolean = false;\n\tprivate characterId: string = '';\n\tprivate preloadPromise: Promise | null = null;\n\n\tconstructor([_action, typeOrBlock, ...rest]: string[]) {\n\t\tsuper();\n\n\t\t// Parse the statement\n\t\t// Possible formats:\n\t\t// - preload music theme [blocking]\n\t\t// - preload scene forest [blocking]\n\t\t// - preload character y happy [blocking]\n\t\t// - preload block battle_scene [blocking]\n\n\t\tif (typeOrBlock === 'block') {\n\t\t\tthis.isBlock = true;\n\t\t\tthis.blockId = rest[0];\n\t\t\tthis.isBlocking = rest.includes('blocking');\n\t\t} else if (typeOrBlock === 'character') {\n\t\t\tthis.category = 'characters';\n\t\t\tthis.characterId = rest[0];\n\t\t\tthis.assetName = rest[1];\n\t\t\tthis.isBlocking = rest.includes('blocking');\n\t\t} else {\n\t\t\t// Resolve category aliases (e.g., 'sound' -> 'sounds')\n\t\t\tthis.category = Preload.resolveCategory(typeOrBlock);\n\t\t\tthis.assetName = rest[0];\n\t\t\tthis.isBlocking = rest.includes('blocking');\n\t\t}\n\t}\n\n\t/**\n\t * Preload a single asset using the registered loader for its category\n\t * @param category - The asset category (e.g., 'music', 'scenes', 'videos')\n\t * @param assetName - The asset identifier\n\t */\n\tprivate async preloadAsset(category: string, assetName: string): Promise {\n\t\tconst loaderType = Preload.getLoaderType(category);\n\t\tif (!loaderType) {\n\t\t\tconsole.warn(`Preload: No loader registered for category \"${category}\"`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst loaderConfig = Preload.getLoader(loaderType);\n\t\tif (!loaderConfig) {\n\t\t\tconsole.warn(`Preload: Loader type \"${loaderType}\" not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst assetsPath = this.engine.setting('AssetsPath') as Record;\n\t\tconst assetFile = this.engine.asset(category, assetName) as string | undefined;\n\n\t\tif (!assetFile) {\n\t\t\tconsole.warn(`Preload: Asset \"${assetName}\" not found in category \"${category}\"`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst url = `${assetsPath.root}/${assetsPath[category]}/${assetFile}`;\n\t\tconst cacheKey = `${category}/${assetName}`;\n\n\t\t// Skip if already cached\n\t\tif (loaderConfig.cache.get(this.engine, cacheKey) !== undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst asset = await loaderConfig.loader(url, this.engine);\n\t\t\tloaderConfig.cache.set(this.engine, cacheKey, asset);\n\t\t} catch (error) {\n\t\t\tconsole.error(`Preload: Failed to preload ${category} asset \"${assetName}\":`, error);\n\t\t}\n\t}\n\n\t/**\n\t * Preload a character sprite using the registered 'image' loader\n\t */\n\tprivate async preloadCharacterSprite(characterId: string, spriteName: string): Promise {\n\t\tconst loaderConfig = Preload.getLoader('image');\n\t\tif (!loaderConfig) {\n\t\t\tconsole.warn(`Preload: Image loader not registered`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst character = this.engine.character(characterId);\n\t\tif (!character) {\n\t\t\tconsole.warn(`Preload: Character \"${characterId}\" not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst assetsPath = this.engine.setting('AssetsPath') as Record;\n\t\tlet directory = character.directory ? `${character.directory}/` : '';\n\t\tdirectory = `${assetsPath.root}/${assetsPath.characters}/${directory}`;\n\n\t\tconst spriteFile = character.sprites?.[spriteName];\n\t\tif (!spriteFile || typeof spriteFile !== 'string') {\n\t\t\tconsole.warn(`Preload: Sprite \"${spriteName}\" not found for character \"${characterId}\"`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst url = `${directory}${spriteFile}`;\n\t\tconst cacheKey = `characters/${characterId}/${spriteName}`;\n\n\t\t// Skip if already cached\n\t\tif (loaderConfig.cache.get(this.engine, cacheKey) !== undefined) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\t\t\tconst asset = await loaderConfig.loader(url, this.engine);\n\t\t\tloaderConfig.cache.set(this.engine, cacheKey, asset);\n\t\t} catch (error) {\n\t\t\tconsole.error(`Preload: Failed to preload character sprite \"${characterId}/${spriteName}\":`, error);\n\t\t}\n\t}\n\n\t/**\n\t * Preload all assets in a block\n\t */\n\tprivate async preloadBlock(blockId: string): Promise {\n\t\tconst block = Preload._blocks[blockId];\n\t\tif (!block) {\n\t\t\tconsole.warn(`Preload: Block \"${blockId}\" not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst promises: Promise[] = [];\n\n\t\tfor (const [category, assets] of Object.entries(block)) {\n\t\t\t// Handle characters separately (nested structure)\n\t\t\tif (category === 'characters' && typeof assets === 'object' && !Array.isArray(assets)) {\n\t\t\t\tfor (const [charId, sprites] of Object.entries(assets as Record)) {\n\t\t\t\t\tfor (const spriteName of sprites) {\n\t\t\t\t\t\tpromises.push(this.preloadCharacterSprite(charId, spriteName));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!Array.isArray(assets)) continue;\n\n\t\t\t// Use registered loader for this category\n\t\t\tif (Preload.hasLoader(category)) {\n\t\t\t\tfor (const assetName of assets) {\n\t\t\t\t\tpromises.push(this.preloadAsset(category, assetName));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.warn(`Preload: No loader registered for category \"${category}\" in block \"${blockId}\"`);\n\t\t\t}\n\t\t}\n\n\t\tawait Promise.all(promises);\n\t}\n\n\toverride async apply(): Promise {\n\t\t// Start the preload operation\n\t\tif (this.isBlock) {\n\t\t\tthis.preloadPromise = this.preloadBlock(this.blockId);\n\t\t} else if (this.category === 'characters') {\n\t\t\tthis.preloadPromise = this.preloadCharacterSprite(this.characterId, this.assetName);\n\t\t} else if (Preload.hasLoader(this.category)) {\n\t\t\tthis.preloadPromise = this.preloadAsset(this.category, this.assetName);\n\t\t} else {\n\t\t\tconsole.warn(`Preload: No loader registered for category \"${this.category}\"`);\n\t\t}\n\n\t\t// If blocking, wait for the preload to complete\n\t\tif (this.isBlocking && this.preloadPromise) {\n\t\t\tawait this.preloadPromise;\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n // Can't really revert a preload action\n return;\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Preload;\n\n", + "import { $_ } from '@aegis-framework/artemis';\nimport Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance, SceneStateItem } from '../lib/types';\n\nexport class Scene extends Action {\n\n\tstatic override id = 'Scene';\n\tstatic override loadingOrder = -2;\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('scene');\n\t\tthis.engine.history('sceneElements');\n\t\tthis.engine.history('sceneState');\n\n\t\tthis.engine.global('_should_restore_nvl', false);\n\n\t\tthis.engine.state({\n\t\t\tscene: ''\n\t\t});\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst sceneState = this.engine.history('sceneState');\n\t\tconst sceneElements = this.engine.history('sceneElements');\n\n\t\tif (sceneState.length !== sceneElements.length) {\n\t\t\tconst states = sceneElements.map((elements: string[]) => {\n\t\t\t\tif (elements.length > 0) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\tcharacters: elements.filter(element => element.indexOf('data-character=') > -1).map((element) => {\n\t\t\t\t\t\t\tconst div = document.createElement('div');\n\t\t\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t\t\t\tconst firstChild = div.firstChild as HTMLElement;\n\t\t\t\t\t\t\tif (!firstChild) return '';\n\t\t\t\t\t\t\tconst image = $_(firstChild);\n\t\t\t\t\t\t\tconst imgElement = image.get(0);\n\t\t\t\t\t\t\tif (!imgElement) return '';\n\t\t\t\t\t\t\tconst classes = Array.from(imgElement.classList).filter(c => c !== 'animated').join(' ');\n\t\t\t\t\t\t\treturn `show character ${image.data('character')} ${image.data('sprite')}${classes.length > 0 ? ` with ${classes}` : ''}`;\n\t\t\t\t\t\t}),\n\t\t\t\t\t\timages: elements.filter(element => element.indexOf('data-image=') > -1).map((element) => {\n\t\t\t\t\t\t\tconst div = document.createElement('div');\n\t\t\t\t\t\t\tdiv.innerHTML = element;\n\t\t\t\t\t\t\tconst firstChild = div.firstChild as HTMLElement;\n\t\t\t\t\t\t\tif (!firstChild) return '';\n\t\t\t\t\t\t\tconst image = $_(firstChild);\n\t\t\t\t\t\t\tconst imgElement = image.get(0);\n\t\t\t\t\t\t\tif (!imgElement) return '';\n\t\t\t\t\t\t\tconst classes = Array.from(imgElement.classList).filter(c => c !== 'animated').join(' ');\n\t\t\t\t\t\t\treturn `show image ${image.data('image')}${classes.length > 0 ? ` with ${classes}` : ''}`;\n\t\t\t\t\t\t}),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\treturn {\n\t\t\t\t\tcharacters: [],\n\t\t\t\t\timages: []\n\t\t\t\t};\n\t\t\t});\n\n\t\t\tfor (const state of states) {\n\t\t\t\tthis.engine.history('sceneState').push(state);\n\t\t\t}\n\t\t}\n\n\t\tconst scene = this.engine.state('scene');\n\t\tif (scene !== '') {\n\t\t\tconst action = this.engine.prepareAction(scene, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tawait action.willApply();\n\t\t\t\tawait action.apply();\n\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tthis.engine.state({\n\t\t\tscene: ''\n\t\t});\n\t}\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'scene';\n\t}\n\n\tscene: string;\n\tscene_elements: string[];\n\tscene_state: Record;\n\n\tconstructor([show, type, scene, ...classes]: string[]) {\n\t\tsuper();\n\t\tthis.scene = scene;\n\n\t\tthis.scene_elements = [];\n\t\tthis.scene_state = {};\n\t}\n\n\toverride async willApply(): Promise {\n\t\treturn Promise.resolve();\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst selectors = [\n\t\t\t'[data-screen=\"game\"] [data-character]:not([data-visibility=\"invisible\"])',\n\t\t\t'[data-screen=\"game\"] [data-image]:not([data-visibility=\"invisible\"])'\n\t\t];\n\n\t\tthis.engine.element().find(selectors.join(',')).each((element: HTMLElement) => {\n\t\t\tthis.scene_elements.push(element.outerHTML);\n\t\t});\n\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as (HTMLElement & { props?: { mode?: string } }) | undefined;\n\n\t\tthis.scene_state = {\n\t\t\tcharacters: [...this.engine.state('characters')],\n\t\t\timages: [...this.engine.state('images')],\n\t\t\ttextBoxMode: textBox?.props?.mode ?? '',\n\t\t};\n\n\t\tconst restoringState = this.engine.global('_restoring_state');\n\n\t\tconst statement = this._statement as string;\n\t\tconst action = this.engine.prepareAction(statement.replace('show scene', 'show background'), { cycle: 'Application' }) as ActionInstance | null;\n\t\tif (action !== null) {\n\t\t\tawait action.willApply();\n\t\t\tawait action.apply();\n\t\t\tawait action.didApply({ updateHistory: !restoringState, updateState: !restoringState });\n\t\t}\n\n\t\t// Check if the engine is no loading a save file, since loading a file applies the actions on that state\n\t\t// asynchronously, there's a chance this would run after a show image/character action and would remove them\n\t\t// from the scene, which is something we don't want\n\t\tif (restoringState === false) {\n\t\t\tthis.engine.state({\n\t\t\t\tcharacters: [],\n\t\t\t\timages: []\n\t\t\t});\n\n\t\t\tthis.engine.element().find('[data-character]').remove();\n\t\t\tthis.engine.element().find('[data-image]').remove();\n\t\t}\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tif (updateHistory === true) {\n\t\t\tthis.engine.history('sceneElements').push(this.scene_elements);\n\t\t\tthis.engine.history('sceneState').push(this.scene_state as SceneStateItem);\n\t\t\tthis.engine.history('scene').push(this._statement as string);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tscene: this._statement as string\n\t\t\t});\n\t\t}\n\n\t\tconst restoringState = this.engine.global('_restoring_state');\n\t\tif (restoringState === false) {\n\t\t\tconst dialogAction = this.engine.action('Dialog');\n\t\t\tif (dialogAction) {\n\t\t\t\t(dialogAction as unknown as { reset: (opts: { saveNVL: boolean }) => void }).reset({ saveNVL: true });\n\t\t\t}\n\t\t}\n\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tthis.engine.element().find('[data-character]').remove();\n\t\tthis.engine.element().find('[data-image]').remove();\n\t\treturn Promise.resolve();\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst statement = this._statement as string;\n\t\tawait this.engine.revert(statement.replace('show scene', 'show background'), false, false);\n\t\t// this.engine.history ('scene').pop ();\n\t\tconst restoreSceneItems = () => {\n\t\t\tconst sceneElementsHistory = this.engine.history('sceneElements') as string[][];\n\t\t\tif (sceneElementsHistory.length > 0) {\n\t\t\t\tconst scene_elements = sceneElementsHistory.pop();\n\n\t\t\t\tif (typeof scene_elements === 'object' && scene_elements) {\n\t\t\t\t\tfor (const element of scene_elements) {\n\t\t\t\t\t\tthis.engine.element().find('[data-screen=\"game\"]').append(element);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst sceneStateHistory = this.engine.history('sceneState') as SceneStateItem[];\n\t\t\tif (sceneStateHistory.length > 0) {\n\t\t\t\tconst scene_state = sceneStateHistory.pop();\n\n\t\t\t\tif (typeof scene_state === 'object' && scene_state) {\n\t\t\t\t\tconst state = { ...scene_state };\n\t\t\t\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as (HTMLElement & { setProps?: (props: { mode: string }) => void }) | undefined;\n\n\t\t\t\t\tif (textBox?.setProps) {\n\t\t\t\t\t\ttextBox.setProps({ mode: state.textBoxMode || 'adv' });\n\t\t\t\t\t}\n\n\t\t\t\t\tif (state.textBoxMode === 'nvl') {\n\t\t\t\t\t\tthis.engine.global('_should_restore_nvl', true);\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.engine.state({\n\t\t\t\t\t\tcharacters: state.characters ?? [],\n\t\t\t\t\t\timages: state.images ?? []\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// Check if the scene history still has elements left, if it doesn't then we need to roll back\n\t\t// to the initial background defined in the CSS and not in the script.\n\t\tconst sceneHistory = this.engine.history('scene') as string[];\n\t\tif (sceneHistory.length > 0) {\n\t\t\tthis.engine.global('_scene_history_cleared_by_background', false);\n\n\t\t\t// Pop the current scene first, then set state to the previous one\n\t\t\tsceneHistory.pop();\n\n\t\t\tthis.engine.state({\n\t\t\t\tscene: sceneHistory.length > 0 ? sceneHistory[sceneHistory.length - 1] : ''\n\t\t\t});\n\n\t\t\trestoreSceneItems();\n\t\t\tconst dialogAction = this.engine.action('Dialog');\n\t\t\tif (dialogAction) {\n\t\t\t\t(dialogAction as unknown as { reset: () => Promise }).reset();\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\n\t\t// If the scene history was empty, we just need to check if it was the background\n\t\t// action who cleared it. If that was the case, we still need to restore the other\n\t\t// items that we save for each scene apart from the background.\n\t\tif (this.engine.global('_scene_history_cleared_by_background') === true) {\n\t\t\tthis.engine.global('_scene_history_cleared_by_background', false);\n\t\t\trestoreSceneItems();\n\t\t\tconst dialogAction = this.engine.action('Dialog');\n\t\t\tif (dialogAction) {\n\t\t\t\t(dialogAction as unknown as { reset: () => Promise }).reset();\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Scene;", + "import Action from './../lib/Action';\nimport { Text } from '@aegis-framework/artemis';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class ShowBackground extends Action {\n\n\tstatic override id = 'Show::Background';\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('background');\n\n\t\tthis.engine.state({\n\t\t\tbackground: ''\n\t\t});\n\n\t\tthis.engine.global('_scene_history_cleared_by_background', false);\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst background = this.engine.state('background');\n\t\tif (typeof background === 'string' && background !== '') {\n\t\t\tconst action = this.engine.prepareAction(background, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tawait action.willApply();\n\t\t\t\tawait action.apply();\n\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t}\n\t\t}\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tconst background = this.engine.element().find('[data-ui=\"background\"]');\n\n\t\tbackground.style('background-image', 'initial');\n\t\tbackground.style('background-color', 'initial');\n\n\t\tthis.engine.state({\n\t\t\tbackground: ''\n\t\t});\n\t}\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'background';\n\t}\n\n\tbackground: string;\n\tproperty: string;\n\tvalue: string;\n\tclasses: string[];\n\n\tconstructor([show, type, background, ...classes]: string[]) {\n\t\tsuper();\n\t\tthis.background = background;\n\t\tthis.property = 'background-image';\n\t\tif (typeof this.engine.asset('scenes', background) !== 'undefined') {\n\t\t\tthis.value = `url(${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').scenes}/${this.engine.asset('scenes', background)})`;\n\t\t} else {\n\t\t\tconst rest = [background, ...classes].join(' ');\n\t\t\tif (classes.indexOf('with') > -1) {\n\t\t\t\tthis.value = Text.prefix('with', rest);\n\t\t\t} else {\n\t\t\t\tthis.value = rest;\n\t\t\t}\n\n\t\t\tconst isColorProperty = ['#', 'rgb', 'hsl'].findIndex((color) => {\n\t\t\t\treturn this.value.indexOf(color) === 0;\n\t\t\t}) > -1;\n\n\t\t\tconst isNamed = this.value.indexOf(' ') > -1 ? false : new RegExp(/\\w+/).test(this.value) && !(new RegExp(/(url|gradient)\\(/).test(this.value));\n\n\t\t\tif (isColorProperty === true || isNamed === true) {\n\t\t\t\tthis.property = 'background-color';\n\t\t\t}\n\t\t}\n\n\t\tthis.classes = ['animated', ...classes];\n\t}\n\n\toverride async willApply(): Promise {\n\t\tconst background = this.engine.element().find('[data-ui=\"background\"]');\n\n\t\tbackground.removeClass();\n\t\t// Force reflow to restart CSS animations\n\t\tconst el = background.get(0);\n\t\tif (el) {\n\t\t\tvoid (el as any).offsetWidth;\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst background = this.engine.element().find('[data-ui=\"background\"]');\n\n\t\tthis.engine.element().find('[data-ui=\"background\"]').style('background-image', 'initial');\n\t\tthis.engine.element().find('[data-ui=\"background\"]').style('background-color', 'initial');\n\t\tthis.engine.element().find('[data-ui=\"background\"]').style('animation-duration', '');\n\n\t\tthis.engine.element().find('[data-ui=\"background\"]').style(this.property, this.value);\n\n\t\tconst durationPosition = this.classes.indexOf('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\tbackground.style('animation-duration', this.classes[durationPosition + 1]);\n\t\t}\n\n\t\tfor (const newClass of this.classes) {\n\t\t\tbackground.addClass(newClass);\n\t\t}\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tbackground: this._statement as string\n\t\t\t});\n\t\t}\n\n\t\tif (updateHistory === true) {\n\t\t\t(this.engine.history('background') as string[]).push(this._statement as string);\n\t\t}\n\n\t\treturn { advance: true };\n\t}\n\n\toverride async willRevert(): Promise {\n\t\tthis.engine.element().find('[data-ui=\"background\"]').removeClass();\n\t}\n\n\toverride async revert(): Promise {\n\t\tlet history = this.engine.history('background') as string[];\n\n\t\thistory.pop();\n\n\t\tif (history.length === 0) {\n\t\t\thistory = this.engine.history('scene') as string[];\n\t\t\thistory.pop();\n\t\t\tthis.engine.global('_scene_history_cleared_by_background', true);\n\t\t}\n\n\t\tif (history.length > 0) {\n\t\t\tconst background = this.engine.element().find('[data-ui=\"background\"]');\n\t\t\tconst last = history[history.length - 1].replace('show scene', 'show background');\n\t\t\tconst action = this.engine.prepareAction(last, { cycle: 'Application' }) as (ActionInstance & { property?: string; value?: string; classes?: string[] }) | null;\n\n\t\t\tbackground.style('background-image', 'initial');\n\t\t\tbackground.style('background-color', 'initial');\n\t\t\tif (action !== null && action.property && action.value) {\n\t\t\t\tbackground.style(action.property, action.value);\n\t\t\t}\n\n\t\t\t// Use the previous background's classes, not the current one being reverted\n\t\t\tconst classesToApply = action?.classes ?? [];\n\t\t\tfor (const newClass of classesToApply) {\n\t\t\t\tbackground.addClass(newClass);\n\t\t\t}\n\n\t\t\tthis.engine.state({\n\t\t\t\tbackground: last\n\t\t\t});\n\t\t}\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default ShowBackground;", + "import Action from './../lib/Action';\nimport { $_ } from '@aegis-framework/artemis';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance, CharacterHistoryItem } from '../lib/types';\n\nexport class ShowCharacter extends Action {\n\n\tstatic override id = 'Show::Character';\n\n\tstatic override async setup(): Promise {\n\t\t// The character history saves what characters have been displayed\n\t\tthis.engine.history('character');\n\n\t\t// The characters state variable holds what characters are being shown\n\t\t// right now\n\t\tthis.engine.state({\n\t\t\tcharacters: []\n\t\t});\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tthis.engine.element().find('[data-screen=\"game\"] [data-character]').remove();\n\n\t\tthis.engine.state({\n\t\t\tcharacters: []\n\t\t});\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst characters = this.engine.state('characters') as string[];\n\t\tconst promises: Promise[] = [];\n\n\t\tfor (const item of characters) {\n\t\t\tconst action = this.engine.prepareAction(item, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tconst promise = (async () => {\n\t\t\t\t\tawait action.willApply();\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t\t})();\n\n\t\t\t\tpromises.push(promise);\n\t\t\t}\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\tawait Promise.all(promises);\n\t\t}\n\t}\n\n\tstatic override matchString([show, type, identifier]: string[]): boolean {\n\t\treturn show === 'show' && type === 'character' && identifier.indexOf(':') === -1;\n\t}\n\n\tasset: string;\n\tstate: string | undefined;\n\tsprite: string;\n\tcharacter: any;\n\timage: any;\n\tclasses: string[];\n\n\tconstructor([show, type, asset, sprite, ...classes]: string[]) {\n\t\tsuper();\n\t\tthis.asset = asset;\n\n\t\tthis.state = this.engine.state('characters').find((statement: string) => {\n\t\t\tconst [show, character, asset, name] = statement.split(' ');\n\t\t\treturn asset === this.asset;\n\t\t});\n\n\t\tif (typeof this.engine.character(asset) !== 'undefined') {\n\t\t\t// show [character] [expression] at [position] with [animation] [infinite]\n\t\t\tthis.sprite = sprite;\n\n\t\t\tthis.character = this.engine.character(asset);\n\t\t\tthis.image = this.character.sprites[this.sprite];\n\n\t\t\tif (typeof classes !== 'undefined') {\n\t\t\t\tthis.classes = ['animated', ...classes.filter((item) => item !== 'at' && item !== 'with')];\n\t\t\t} else {\n\t\t\t\tthis.classes = [];\n\t\t\t}\n\n\t\t} else {\n\t\t\tthis.sprite = '';\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (typeof this.character === 'undefined') {\n\t\t\tFancyError.show('action:show_character:character_not_found', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tavailableCharacters: Object.keys(this.engine.characters()),\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error(`Character \"${this.asset}\" not found.`);\n\t\t}\n\n\t\tif (typeof this.image === 'undefined') {\n\t\t\tFancyError.show('action:show_character:sprite_not_found', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tsprite: this.sprite,\n\t\t\t\tavailableSprites: this.character.sprites ? Object.keys(this.character.sprites) : [],\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error(`Sprite \"${this.sprite}\" not found for character \"${this.asset}\".`);\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\t// show [character] [expression] at [position] with [animation] [infinite]\n\t\t// 0 1 2 3 4 5 6 7\n\n\t\t// show [character] [expression] with [animation] [infinite]\n\t\t// 0 1 2 3 4 5\n\n\t\t// show [character] [expression]\n\t\t// 0 1 2\n\n\t\tlet directory = this.character.directory;\n\t\tif (typeof directory == 'undefined') {\n\t\t\tdirectory = '';\n\t\t} else {\n\t\t\tdirectory += '/';\n\t\t}\n\n\t\tlet oneSpriteOnly = true;\n\n\t\tconst sprite = this.engine.element().find(`[data-character=\"${this.asset}\"]:not([data-visibility=\"invisible\"])`);\n\n\t\tconst spriteEl = sprite.get(0);\n\t\tif (sprite.exists() && spriteEl) {\n\t\t\tconst oldClasses = [...spriteEl.classList];\n\n\t\t\t// Check if there is any end-animation, here's what this matches:\n\t\t\t// 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ \"end-fadeIn\", \"fadeIn\" ]\n\t\t\tconst endAnimation = oldClasses.find((c: string) => c.match(/end-([A-Za-z]+)/) !== null);\n\n\t\t\tif (typeof endAnimation !== 'undefined') {\n\t\t\t\t// If there was, get the animation-only part\n\t\t\t\tconst [end, animation] = endAnimation.split('-');\n\t\t\t\tconst watchAnimation = oldClasses[oldClasses.indexOf(endAnimation) - 1];\n\t\t\t\tsprite.removeClass(watchAnimation);\n\t\t\t\tsprite.addClass(animation);\n\t\t\t\tsprite.data('visibility', 'invisible');\n\t\t\t\tsprite.on('animationend', (e: any) => {\n\t\t\t\t\te.target.remove();\n\t\t\t\t});\n\n\t\t\t\toneSpriteOnly = false;\n\t\t\t}\n\n\t\t\tfor (const oldClass of oldClasses) {\n\t\t\t\tif (this.classes.indexOf(oldClass) === -1) {\n\t\t\t\t\tsprite.removeClass(oldClass);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst imgSrc = `${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').characters}/${directory}`;\n\t\tconst position = (this._statement as string).match(/at\\s(\\S*)/);\n\n\t\tif (oneSpriteOnly && sprite.exists()) {\n\n\t\t\tif (this.engine.setting('ExperimentalFeatures') === true) {\n\t\t\t\t// If its another layered sprite\n\t\t\t\tif (sprite.matches('character-sprite') && typeof this.image === 'object') {\n\t\t\t\t\tconst image = sprite.get(0) as (HTMLElement & { setState?: (state: { layers: Record }) => void }) | undefined;\n\t\t\t\t\tconst layers: Record = {};\n\n\t\t\t\t\tfor (const [layer, asset] of Object.entries(this.image)) {\n\t\t\t\t\t\tlayers[layer] = {\n\t\t\t\t\t\t\tasset,\n\t\t\t\t\t\t\tclasses: [],\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\n\t\t\t\t\tif (image?.setState) {\n\t\t\t\t\t\timage.setState({ layers });\n\t\t\t\t\t}\n\t\t\t\t} else if (sprite.matches('character-sprite')) {\n\t\t\t\t\t// If it's an image on a previously layered sprite\n\t\t\t\t\tconst el = sprite.get(0) as (HTMLElement & { setProps?: (props: { src: string }) => void }) | undefined;\n\t\t\t\t\tif (el?.setProps) {\n\t\t\t\t\t\tel.setProps({ 'src': `${imgSrc}${this.image}` });\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If it was just an image\n\t\t\t\t\tsprite.attribute('src', `${imgSrc}${this.image}`);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tsprite.attribute('src', `${imgSrc}${this.image}`);\n\t\t\t}\n\n\t\t\tsprite.data('sprite', this.sprite);\n\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\tsprite.addClass(className);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst durationPosition = this.classes.indexOf('duration');\n\t\t\tif (durationPosition > -1) {\n\t\t\t\tsprite.style('animation-duration', this.classes[durationPosition + 1]);\n\t\t\t} else {\n\t\t\t\tsprite.style('animation-duration', '');\n\t\t\t}\n\n\t\t\tconst transitionPosition = this.classes.indexOf('transition');\n\n\t\t\tif (transitionPosition > -1) {\n\t\t\t\tsprite.style('transition-duration', this.classes[transitionPosition + 1]);\n\t\t\t} else {\n\t\t\t\tsprite.style('transition-duration', '');\n\t\t\t}\n\n\t\t\t// Check if a position was provided. (show character y at left)\n\t\t\tif (position instanceof Array) {\n\t\t\t\t// If it was, we'll set that position to the character\n\t\t\t\tconst [at, positionClass] = position;\n\t\t\t\tsprite.data('position', positionClass);\n\t\t\t} else {\n\t\t\t\t// If it wasn't, we'll check if the sprite already had one position set\n\t\t\t\t// const currentPosition = sprite.data ('position');\n\t\t\t\t// if (typeof currentPosition === 'string') {\n\t\t\t\t// \t// If it did, we'll add that position\n\t\t\t\t// \tif (currentPosition.trim () !== '') {\n\t\t\t\t// \t\tconsole.log (currentPosition);\n\t\t\t\t// \t\tsprite.addClass (currentPosition.trim ());\n\t\t\t\t// \t}\n\t\t\t\t// } else {\n\t\t\t\t// \t// If it didn't, we'll set the center position by default\n\t\t\t\t// \tsprite.addClass ('center');\n\t\t\t\t// \tsprite.data ('position', 'center');\n\t\t\t\t// }\n\n\t\t\t\tsprite.addClass('center');\n\t\t\t\tsprite.data('position', 'center');\n\t\t\t}\n\n\t\t\tsprite.data('sprite', this.sprite);\n\t\t} else {\n\t\t\tlet image: HTMLElement | null = null;\n\t\t\tlet imageReady = Promise.resolve();\n\t\t\tif (typeof this.image === 'string') {\n\t\t\t\t// Check if character sprite is cached\n\t\t\t\tconst cacheKey = `characters/${this.asset}/${this.sprite}`;\n\t\t\t\tconst cachedImage = this.engine.imageCache(cacheKey);\n\t\t\t\t\n\t\t\t\tif (cachedImage) {\n\t\t\t\t\t// Clone the cached image element\n\t\t\t\t\timage = cachedImage.cloneNode(true) as HTMLImageElement;\n\t\t\t\t} else {\n\t\t\t\t\t// Create new image element\n\t\t\t\t\timage = document.createElement('img');\n\t\t\t\t\t$_(image).attribute('src', `${imgSrc}${this.image}`);\n\t\t\t\t}\n\t\t\t\t$_(image).addClass('animated');\n\t\t\t\t$_(image).data('character', this.asset);\n\t\t\t\t$_(image).data('sprite', this.sprite);\n\t\t\t} else if (this.engine.setting('ExperimentalFeatures') === true) {\n\t\t\t\timage = document.createElement('character-sprite') as any;\n\n\t\t\t\t(image as any).setProps({\n\t\t\t\t\tcharacter: this.character,\n\t\t\t\t\tdirectory: imgSrc,\n\t\t\t\t});\n\n\n\t\t\t\tconst layers: Record = {};\n\n\t\t\t\tconst extras = this._extras || {};\n\t\t\t\tif (typeof extras.layerHistory !== 'undefined') {\n\t\t\t\t\tfor (const { statement, previous } of (extras.layerHistory as any).layers) {\n\t\t\t\t\t\tif (previous !== null) {\n\t\t\t\t\t\t\tconst [show, _character, asset, name, ...classes] = previous.split(' ');\n\t\t\t\t\t\t\tconst [_identifier, _layer] = asset.split(':');\n\t\t\t\t\t\t\tlayers[_layer] = {\n\t\t\t\t\t\t\t\tasset: name,\n\t\t\t\t\t\t\t\tclasses: ['animated', ...classes.filter((item: string) => item !== 'at' && item !== 'with')],\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tfor (const [layer, asset] of Object.entries(this.image as Record)) {\n\t\t\t\t\t\tlayers[layer] = {\n\t\t\t\t\t\t\tasset,\n\t\t\t\t\t\t\tclasses: [],\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t(image as any).setState({ layers });\n\n\t\t\t\t$_(image).addClass('animated');\n\t\t\t\t$_(image).data('character', this.asset);\n\t\t\t\t$_(image).data('sprite', this.sprite);\n\n\t\t\t\timageReady = new Promise((resolve, reject) => {\n\t\t\t\t\t(image as any).ready(() => resolve());\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (image) {\n\t\t\t\tfor (const className of this.classes) {\n\t\t\t\t\tif (className) {\n\t\t\t\t\t\timage.classList.add(className);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// Check if a position was provided. (show character y at left)\n\t\t\t\tif (position instanceof Array) {\n\t\t\t\t\t// If it was, we'll set that position to the character\n\t\t\t\t\tconst [at, positionClass] = position;\n\t\t\t\t\t$_(image).data('position', positionClass);\n\t\t\t\t} else {\n\t\t\t\t\t// If it wasn't, we'll set the center position by default\n\t\t\t\t\timage.classList.add('center');\n\t\t\t\t\t$_(image).data('position', 'center');\n\t\t\t\t}\n\n\t\t\t\tconst durationPosition = this.classes.indexOf('duration');\n\t\t\t\tif (durationPosition > -1) {\n\t\t\t\t\t$_(image).style('animation-duration', this.classes[durationPosition + 1]);\n\t\t\t\t}\n\n\t\t\t\tthis.engine.element().find('[data-screen=\"game\"] [data-content=\"visuals\"]').append(image);\n\t\t\t}\n\n\t\t\tawait imageReady;\n\t\t}\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tconst experimentalFeatures = this.engine.setting('ExperimentalFeatures') === true;\n\t\tif (updateHistory === true) {\n\t\t\tconst characterHistory = this.engine.history('character') as CharacterHistoryItem[];\n\t\t\tcharacterHistory.push({\n\t\t\t\tstatement: this._statement as string,\n\t\t\t\tprevious: this.state || null\n\t\t\t});\n\n\t\t\tif (experimentalFeatures) {\n\t\t\t\tconst characterLayerHistory = this.engine.history('characterLayer') as import('../lib/types').CharacterLayerHistoryItem[];\n\t\t\t\tif (typeof this.image === 'object') {\n\t\t\t\t\tconst statements: { statement: string; previous: string | null }[] = [];\n\t\t\t\t\tfor (const layer in this.image) {\n\t\t\t\t\t\tconst previous = this.engine.state('characterLayers').find((statement: string) => {\n\t\t\t\t\t\t\tconst [, , asset] = statement.split(' ');\n\t\t\t\t\t\t\tconst [_identifier, _layer] = asset.split(':');\n\t\t\t\t\t\t\treturn _identifier === this.asset && _layer == layer;\n\t\t\t\t\t\t}) as string | undefined;\n\n\t\t\t\t\t\tstatements.push({\n\t\t\t\t\t\t\tstatement: `show character ${this.asset}:${layer} ${(this.image as Record)[layer]}`,\n\t\t\t\t\t\t\tprevious: previous || null\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\n\t\t\t\t\tcharacterLayerHistory.push({\n\t\t\t\t\t\tparent: this._statement as string,\n\t\t\t\t\t\tlayers: statements\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tcharacterLayerHistory.push({\n\t\t\t\t\t\tparent: this._statement as string,\n\t\t\t\t\t\tlayers: this.engine.state('characterLayers').map((s: any) => {\n\t\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t\tstatement: null,\n\t\t\t\t\t\t\t\tprevious: s\n\t\t\t\t\t\t\t};\n\t\t\t\t\t\t})\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tcharacters: [\n\t\t\t\t\t...this.engine.state('characters').filter((item: any) => {\n\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\tconst [, , asset] = item.split(' ');\n\t\t\t\t\t\t\treturn asset !== this.asset;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}),\n\t\t\t\t\tthis._statement as string\n\t\t\t\t]\n\t\t\t});\n\n\t\t\tif (experimentalFeatures) {\n\n\t\t\t\tif (typeof this.image === 'object') {\n\t\t\t\t\tconst newState = [];\n\t\t\t\t\tconst extras = this._extras || {};\n\t\t\t\t\tif (typeof extras.layerHistory !== 'undefined') {\n\t\t\t\t\t\tfor (const { statement, previous } of (extras.layerHistory as any).layers) {\n\t\t\t\t\t\t\tif (previous !== null) {\n\t\t\t\t\t\t\t\tnewState.push(previous);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (const layer in this.image) {\n\t\t\t\t\t\t\tnewState.push(`show character ${this.asset}:${layer} ${this.image[layer]}`);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.engine.state({\n\t\t\t\t\t\tcharacterLayers: [\n\t\t\t\t\t\t\t...this.engine.state('characterLayers').filter((item: any) => {\n\t\t\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\t\t\tconst [show, character, asset, sprite] = item.split(' ');\n\t\t\t\t\t\t\t\t\tconst [id] = asset.split(':');\n\t\t\t\t\t\t\t\t\treturn id !== this.asset;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\t...newState\n\t\t\t\t\t\t]\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\tthis.engine.state({\n\t\t\t\t\t\tcharacterLayers: [\n\t\t\t\t\t\t\t...this.engine.state('characterLayers').filter((item: any) => {\n\t\t\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\t\t\tconst [show, character, asset, sprite] = item.split(' ');\n\t\t\t\t\t\t\t\t\tconst [id] = asset.split(':');\n\t\t\t\t\t\t\t\t\treturn id !== this.asset;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t]\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst experimentalFeatures = this.engine.setting('ExperimentalFeatures');\n\t\tthis.engine.element().find(`[data-character=\"${this.asset}\"]`).remove();\n\n\t\t// First, we get the last instance of the character from the history as\n\t\t// that's the one being currently displayed.\n\t\tfor (let i = this.engine.history('character').length - 1; i >= 0; i--) {\n\t\t\tconst { statement, previous } = this.engine.history('character')[i];\n\t\t\tconst [show, character, asset, name] = statement.split(' ');\n\t\t\tif (asset === this.asset) {\n\t\t\t\tthis.engine.history('character').splice(i, 1);\n\n\t\t\t\tif (experimentalFeatures) {\n\t\t\t\t\tconst characterLayerHistory = this.engine.history('characterLayer') as import('../lib/types').CharacterLayerHistoryItem[];\n\t\t\t\t\tif (typeof previous !== 'undefined' && previous !== null) {\n\t\t\t\t\t\tlet previousLayers;\n\t\t\t\t\t\tfor (let j = characterLayerHistory.length - 1; j >= 0; j--) {\n\t\t\t\t\t\t\tconst { parent } = characterLayerHistory[j];\n\t\t\t\t\t\t\tif (typeof parent === 'string') {\n\t\t\t\t\t\t\t\tconst [, , _asset] = parent.split(' ');\n\n\t\t\t\t\t\t\t\tif (_asset === this.asset) {\n\t\t\t\t\t\t\t\t\tpreviousLayers = characterLayerHistory[j];\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\tconst action = this.engine.prepareAction(previous, { cycle: 'Application', extras: { layerHistory: previousLayers } }) as ActionInstance | null;\n\t\t\t\t\t\tif (action !== null) {\n\t\t\t\t\t\t\tawait action.apply();\n\t\t\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tfor (let j = characterLayerHistory.length - 1; j >= 0; j--) {\n\t\t\t\t\t\t\tconst { parent } = characterLayerHistory[j];\n\t\t\t\t\t\t\tif (typeof parent === 'string') {\n\t\t\t\t\t\t\t\tconst [, , _asset] = parent.split(' ');\n\n\t\t\t\t\t\t\t\tif (_asset === this.asset) {\n\t\t\t\t\t\t\t\t\tcharacterLayerHistory.splice(j, 1);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tfor (let j = characterLayerHistory.length - 1; j >= 0; j--) {\n\t\t\t\t\t\t\tconst { parent } = characterLayerHistory[j];\n\t\t\t\t\t\t\tif (typeof parent === 'string') {\n\t\t\t\t\t\t\t\tconst [, , _asset] = parent.split(' ');\n\n\t\t\t\t\t\t\t\tif (_asset === this.asset) {\n\t\t\t\t\t\t\t\t\tcharacterLayerHistory.splice(j, 1);\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tif (typeof previous !== 'undefined' && previous !== null) {\n\t\t\t\t\t\tconst action = this.engine.prepareAction(previous, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\t\t\t\tif (action !== null) {\n\t\t\t\t\t\t\tawait action.apply();\n\t\t\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\t// If the script didn't return on the for cycle above, it means either the\n\t\t// history didn't have any items left or, the character was not found.\n\t\t// In that case, we simply remove the character from the state.\n\t\tconst updatedState: Record = {\n\t\t\tcharacters: [\n\t\t\t\t...this.engine.state('characters').filter((item: any) => {\n\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\tconst [, , asset] = item.split(' ');\n\t\t\t\t\t\treturn asset !== this.asset;\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t}),\n\t\t\t],\n\t\t};\n\n\t\tif (this.engine.setting('ExperimentalFeatures') === true) {\n\t\t\tupdatedState.characterLayers = [\n\t\t\t\t...this.engine.state('characterLayers').filter((item: any) => {\n\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\tconst [, , asset] = item.split(' ');\n\t\t\t\t\t\tconst [id] = asset.split(':');\n\t\t\t\t\t\treturn id !== this.asset;\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t}),\n\t\t\t];\n\t\t}\n\n\t\tthis.engine.state(updatedState);\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default ShowCharacter;\n", + "import Action from './../lib/Action';\nimport { $_ } from '@aegis-framework/artemis';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance, CharacterLayerHistoryItem } from '../lib/types';\n\nexport class ShowCharacterLayer extends Action {\n\n\tstatic override id = 'Show::Character::Layer';\n\tstatic override _experimental = true;\n\tstatic override loadingOrder = 1;\n\n\tstatic override async setup(): Promise {\n\t\t// The character history saves what characters have been displayed\n\t\tthis.engine.history('characterLayer');\n\n\t\t// The characters state variable holds what characters are being shown\n\t\t// right now\n\t\tthis.engine.state({\n\t\t\tcharacterLayers: []\n\t\t});\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tthis.engine.state({\n\t\t\tcharacterLayers: []\n\t\t});\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst characterLayers = this.engine.state('characterLayers') as string[];\n\t\tconst promises: Promise[] = [];\n\n\t\tfor (const item of characterLayers) {\n\t\t\tconst action = this.engine.prepareAction(item, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tconst promise = (async () => {\n\t\t\t\t\tawait action.willApply();\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t\t})();\n\n\t\t\t\tpromises.push(promise);\n\t\t\t}\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\tawait Promise.all(promises);\n\t\t}\n\t}\n\n\tstatic override matchString([show, type, identifier]: string[]): boolean {\n\t\treturn show === 'show' && type === 'character' && identifier.indexOf(':') > -1;\n\t}\n\n\tasset: string;\n\tlayer: string;\n\tstate: string | undefined;\n\tsprite: string;\n\tcharacter: any;\n\timage: any;\n\tclasses: string[];\n\n\tconstructor([show, type, asset, sprite, ...classes]: string[]) {\n\t\tsuper();\n\t\tconst [character, layer] = asset.split(':');\n\t\tthis.asset = character;\n\t\tthis.layer = layer;\n\n\t\tthis.state = this.engine.state('characterLayers').find((statement: string) => {\n\t\t\tconst [show, _character, asset, name] = statement.split(' ');\n\t\t\tconst [_identifier, _layer] = asset.split(':');\n\t\t\treturn _identifier === character && _layer == layer;\n\t\t});\n\n\t\tif (typeof this.engine.character(character) !== 'undefined') {\n\t\t\t// show [character] [expression] at [position] with [animation] [infinite]\n\t\t\tthis.sprite = sprite;\n\n\t\t\tthis.character = this.engine.character(character);\n\t\t\tthis.image = this.character.layer_assets[layer][sprite];\n\n\t\t\tif (typeof classes !== 'undefined') {\n\t\t\t\tthis.classes = ['animated', ...classes.filter((item) => item !== 'at' && item !== 'with')];\n\t\t\t} else {\n\t\t\t\tthis.classes = [];\n\t\t\t}\n\n\t\t} else {\n\t\t\tthis.sprite = '';\n\t\t\tthis.classes = [];\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (typeof this.character === 'undefined') {\n\t\t\tFancyError.show('action:show_character_layer:character_not_found', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tlayer: this.layer,\n\t\t\t\tavailableCharacters: Object.keys(this.engine.characters()),\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error(`Character \"${this.asset}\" not found.`);\n\t\t}\n\n\t\tif (typeof this.image === 'undefined') {\n\t\t\tconst layerAssets = this.character.layer_assets?.[this.layer];\n\t\t\tFancyError.show('action:show_character_layer:sprite_not_found', {\n\t\t\t\tasset: this.asset,\n\t\t\t\tlayer: this.layer,\n\t\t\t\tsprite: this.sprite,\n\t\t\t\tavailableSprites: layerAssets ? Object.keys(layerAssets) : [],\n\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\tstep: this.engine.state('step')\n\t\t\t});\n\t\t\tthrow new Error(`Sprite \"${this.sprite}\" not found for layer \"${this.layer}\" of character \"${this.asset}\".`);\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\t// show [character:layer] with [...animation] [infinite]\n\t\t// 0 1 2 3 4\n\n\t\t// show [character:layer]\n\t\t// 0 1\n\n\t\tlet directory = this.character.directory;\n\t\tif (typeof directory == 'undefined') {\n\t\t\tdirectory = '';\n\t\t} else {\n\t\t\tdirectory += '/';\n\t\t}\n\n\t\tlet oneSpriteOnly = true;\n\n\n\t\tconst parent = this.engine.element().find(`[data-character=\"${this.asset}\"]:not([data-visibility=\"invisible\"])`);\n\n\t\tconst sprite = parent.find(`[data-layer=\"${this.layer}\"]:not([data-visibility=\"invisible\"])`);\n\n\t\tconst spriteEl = sprite.get(0);\n\t\tif ((sprite.isVisible() || (this.engine.global('_restoring_state') && sprite.exists())) && spriteEl) {\n\t\t\tconst oldClasses = [...spriteEl.classList];\n\n\t\t\t// Check if there is any end-animation, here's what this matches:\n\t\t\t// 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ \"end-fadeIn\", \"fadeIn\" ]\n\t\t\tconst endAnimation = oldClasses.find((c: string) => c.match(/end-([A-Za-z]+)/) !== null);\n\n\t\t\tif (typeof endAnimation !== 'undefined') {\n\t\t\t\t// If there was, get the animation-only part\n\t\t\t\tconst [end, animation] = endAnimation.split('-');\n\t\t\t\tconst watchAnimation = oldClasses[oldClasses.indexOf(endAnimation) - 1];\n\t\t\t\tsprite.removeClass(watchAnimation);\n\t\t\t\tsprite.addClass(animation);\n\t\t\t\tsprite.data('visibility', 'invisible');\n\t\t\t\tsprite.on('animationend', (e: any) => {\n\t\t\t\t\te.target.remove();\n\t\t\t\t});\n\n\t\t\t\toneSpriteOnly = false;\n\t\t\t}\n\n\t\t\tfor (const oldClass of oldClasses) {\n\t\t\t\tif (this.classes.indexOf(oldClass) === -1) {\n\t\t\t\t\tsprite.removeClass(oldClass);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst imgSrc = `${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').characters}/${directory}`;\n\n\t\tif (oneSpriteOnly && (sprite.isVisible() || (this.engine.global('_restoring_state') && sprite.exists()))) {\n\t\t\tsprite.attribute('src', `${imgSrc}${this.image}`);\n\t\t\tsprite.data('sprite', this.sprite);\n\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\tsprite.addClass(className);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst durationPosition = this.classes.indexOf('duration');\n\t\t\tif (durationPosition > -1) {\n\t\t\t\tsprite.style('animation-duration', this.classes[durationPosition + 1]);\n\t\t\t} else {\n\t\t\t\tsprite.style('animation-duration', '');\n\t\t\t}\n\n\t\t\tconst transitionPosition = this.classes.indexOf('transition');\n\n\t\t\tif (transitionPosition > -1) {\n\t\t\t\tsprite.style('transition-duration', this.classes[transitionPosition + 1]);\n\t\t\t} else {\n\t\t\t\tsprite.style('transition-duration', '');\n\t\t\t}\n\t\t} else {\n\t\t\tconst image = document.createElement('img');\n\t\t\t$_(image).attribute('src', `${imgSrc}${this.image}`);\n\t\t\t$_(image).addClass('animated');\n\t\t\t$_(image).data('layer', this.layer);\n\t\t\t$_(image).data('sprite', this.sprite);\n\t\t\t$_(image).style({ zIndex: this.character.layers.indexOf(this.layer) });\n\n\t\t\tfor (const className of this.classes) {\n\t\t\t\tif (className) {\n\t\t\t\t\timage.classList.add(className);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst durationPosition = this.classes.indexOf('duration');\n\t\t\tif (durationPosition > -1) {\n\t\t\t\t$_(image).style('animation-duration', this.classes[durationPosition + 1]);\n\t\t\t}\n\n\t\t\tparent.find('[data-content=\"wrapper\"]').append(image);\n\t\t}\n\n\t\t// Update the state of the component\n\t\tconst parentAsComponent = parent.get(0) as (HTMLElement & { state?: { layers?: Record }; setState?: (state: Record) => void }) | undefined;\n\t\tif (parentAsComponent?.state && parentAsComponent?.setState) {\n\t\t\tconst stateLayers = parentAsComponent.state.layers || {};\n\t\t\tparentAsComponent.setState({\n\t\t\t\tlayers: {\n\t\t\t\t\t...stateLayers,\n\t\t\t\t\t[this.layer]: {\n\t\t\t\t\t\tasset: this.sprite,\n\t\t\t\t\t\tclasses: this.classes\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tif (updateHistory === true) {\n\t\t\tconst characterLayerHistory = this.engine.history('characterLayer') as CharacterLayerHistoryItem[];\n\t\t\tlet previousHistory: CharacterLayerHistoryItem | undefined;\n\t\t\tfor (let j = characterLayerHistory.length - 1; j >= 0; j--) {\n\t\t\t\tconst historyItem = characterLayerHistory[j];\n\t\t\t\tif (historyItem.parent) {\n\t\t\t\t\tconst [, , _asset] = historyItem.parent.split(' ');\n\n\t\t\t\t\tif (_asset === this.asset) {\n\t\t\t\t\t\tpreviousHistory = historyItem;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst parent = this.engine.state('characters').find((s: string) => {\n\t\t\t\tconst [, , asset] = s.split(' ');\n\t\t\t\treturn asset === this.asset;\n\t\t\t}) || null;\n\n\t\t\tif (typeof previousHistory !== 'undefined') {\n\t\t\t\tcharacterLayerHistory.push({\n\t\t\t\t\tparent,\n\t\t\t\t\tlayers: [\n\t\t\t\t\t\t...previousHistory.layers.filter(({ statement }: { statement: string | null; previous: string | null }) => {\n\t\t\t\t\t\t\tif (statement !== null && parent !== null) {\n\t\t\t\t\t\t\t\tconst [, , _asset] = parent.split(' ');\n\t\t\t\t\t\t\t\tconst [_identifier, _layer] = _asset.split(':');\n\t\t\t\t\t\t\t\treturn _identifier !== this.asset && _layer !== this.layer;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}),\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstatement: this._statement as string,\n\t\t\t\t\t\t\tprevious: this.state || null\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tcharacterLayerHistory.push({\n\t\t\t\t\tparent,\n\t\t\t\t\tlayers: [\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstatement: this._statement as string,\n\t\t\t\t\t\t\tprevious: this.state || null\n\t\t\t\t\t\t}\n\t\t\t\t\t]\n\t\t\t\t});\n\t\t\t}\n\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\tcharacterLayers: [\n\t\t\t\t\t...this.engine.state('characterLayers').filter((item: any) => {\n\t\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\t\tconst [, , asset] = item.split(' ');\n\t\t\t\t\t\t\tconst [id, layer] = asset.split(':');\n\t\t\t\t\t\t\treturn id !== this.asset || layer !== this.layer;\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}),\n\t\t\t\t\tthis._statement as string\n\t\t\t\t]\n\t\t\t});\n\t\t}\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst parent = this.engine.element().find(`[data-character=\"${this.asset}\"]`);\n\n\t\tparent.find(`[data-layer=\"${this.layer}\"]`).remove();\n\n\n\t\t// First, we remove the last instance of the character from the history since\n\t\t// that's the one being currently displayed and we want the one before that\n\t\tconst characterLayerHistory = this.engine.history('characterLayer') as CharacterLayerHistoryItem[];\n\t\tfor (let i = characterLayerHistory.length - 1; i >= 0; i--) {\n\t\t\tconst { layers } = characterLayerHistory[i];\n\n\t\t\tconst historyStatement = layers.find((s: { statement: string | null; previous: string | null }) => {\n\t\t\t\tconst { previous, statement } = s;\n\t\t\t\tconst statementStr = statement || previous;\n\t\t\t\tif (statementStr) {\n\t\t\t\t\tconst [, , asset] = statementStr.split(' ');\n\t\t\t\t\tconst [id, layer] = asset.split(':');\n\n\t\t\t\t\treturn id === this.asset && layer === this.layer;\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t});\n\n\t\t\tif (typeof historyStatement === 'object' && historyStatement !== null) {\n\n\t\t\t\tconst { statement, previous } = historyStatement;\n\t\t\t\tconst statementStr = statement || previous;\n\t\t\t\tif (statementStr) {\n\t\t\t\t\tconst [, , asset] = statementStr.split(' ');\n\t\t\t\t\tconst [id, layer] = asset.split(':');\n\t\t\t\t\tif (id === this.asset && layer === this.layer) {\n\t\t\t\t\t\tcharacterLayerHistory.splice(i, 1);\n\n\t\t\t\t\t\tif (typeof previous !== 'undefined' && previous !== null) {\n\t\t\t\t\t\t\tconst action = this.engine.prepareAction(previous, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\t\t\t\t\tif (action !== null) {\n\t\t\t\t\t\t\t\tawait action.apply();\n\t\t\t\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// If the script didn't return on the for cycle above, it means either the\n\t\t// history didn't have any items left or, the character was not found.\n\t\t// In that case, we simply remove the character from the state.\n\t\tthis.engine.state({\n\t\t\tcharacterLayers: [\n\t\t\t\t...this.engine.state('characterLayers').filter((item: any) => {\n\t\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\t\tconst [show, character, asset, sprite] = item.split(' ');\n\t\t\t\t\t\tconst [id, layer] = asset.split(':');\n\t\t\t\t\t\treturn id !== this.asset || layer !== this.layer;\n\t\t\t\t\t}\n\t\t\t\t\treturn false;\n\t\t\t\t}),\n\t\t\t],\n\t\t});\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default ShowCharacterLayer;\n", + "import Action from './../lib/Action';\nimport { $_ } from '@aegis-framework/artemis';\nimport { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types';\n\nexport class ShowImage extends Action {\n\n\tstatic override id = 'Show::Image';\n\n\tstatic override async setup(): Promise {\n\t\tthis.engine.history('image');\n\t\tthis.engine.state({\n\t\t\timages: []\n\t\t});\n\t}\n\n\tstatic override async reset(): Promise {\n\t\tthis.engine.element().find('[data-screen=\"game\"] [data-image]').remove();\n\n\t\tthis.engine.state({\n\t\t\timages: []\n\t\t});\n\t}\n\n\tstatic override async onLoad(): Promise {\n\t\tconst images = this.engine.state('images') as string[];\n\t\tconst promises: Promise[] = [];\n\n\t\tfor (const item of images) {\n\t\t\tconst action = this.engine.prepareAction(item, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\tif (action !== null) {\n\t\t\t\tconst promise = (async () => {\n\t\t\t\t\tawait action.willApply();\n\t\t\t\t\tawait action.apply();\n\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: false });\n\t\t\t\t})();\n\n\t\t\t\tpromises.push(promise);\n\t\t\t}\n\t\t}\n\n\t\tif (promises.length > 0) {\n\t\t\tawait Promise.all(promises);\n\t\t}\n\t}\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'image';\n\t}\n\n\tasset: string;\n\tclasses: string[];\n\timage: string;\n\n\tconstructor([show, type, asset, ...props]: string[]) {\n\t\tsuper();\n\t\tthis.asset = asset;\n\n\t\tthis.classes = (' ' + props.join(' ')).replace(' at ', ' ').replace(' with ', ' ').trim().split(' ');\n\n\t\tconst assetPath = this.engine.asset('images', asset);\n\t\tif (typeof assetPath !== 'undefined') {\n\t\t\tthis.image = assetPath;\n\t\t} else {\n\t\t\tthis.image = asset;\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst position = (this._statement as string).match(/at\\s(\\S*)/);\n\t\t\n\t\t// Check if image is cached\n\t\tconst cacheKey = `images/${this.asset}`;\n\t\tconst cachedImage = this.engine.imageCache(cacheKey);\n\t\t\n\t\tlet image: HTMLImageElement;\n\t\tif (cachedImage) {\n\t\t\t// Clone the cached image element\n\t\t\timage = cachedImage.cloneNode(true) as HTMLImageElement;\n\t\t} else {\n\t\t\t// Create new image element\n\t\t\timage = document.createElement('img');\n\t\t\t$_(image).attribute('src', `${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').images}/${this.image}`);\n\t\t}\n\n\t\t$_(image).addClass('animated');\n\t\t$_(image).data('image', this.asset);\n\n\t\tfor (const className of this.classes) {\n\t\t\tif (className) {\n\t\t\t\t$_(image).addClass(className);\n\t\t\t}\n\t\t}\n\n\t\tif (position instanceof Array) {\n\t\t\t// If it was, we'll set that position to the character\n\t\t\tconst [at, positionClass] = position;\n\t\t\t$_(image).data('position', positionClass);\n\t\t} else {\n\t\t\t$_(image).addClass('center');\n\t\t\t$_(image).data('position', 'center');\n\t\t}\n\n\t\tconst durationPosition = this.classes.indexOf('duration');\n\n\t\tif (durationPosition > -1) {\n\t\t\t$_(image).style('animation-duration', this.classes[durationPosition + 1]);\n\t\t}\n\n\t\tthis.engine.element().find('[data-screen=\"game\"] [data-content=\"visuals\"]').append(image.outerHTML);\n\t}\n\n\toverride async didApply({ updateHistory = true, updateState = true } = {}): Promise {\n\t\tif (updateHistory === true) {\n\t\t\t(this.engine.history('image') as string[]).push(this._statement as string);\n\t\t}\n\n\t\tif (updateState === true) {\n\t\t\tthis.engine.state({\n\t\t\t\timages: [...this.engine.state('images'), this._statement as string]\n\t\t\t});\n\t\t}\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tthis.engine.element().find(`[data-image=\"${this.asset}\"]`).remove();\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tconst history = this.engine.history('image') as string[];\n\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\tconst [, , asset] = history[i].split(' ');\n\t\t\tif (asset === this.asset) {\n\t\t\t\thistory.splice(i, 1);\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t\tthis.engine.state({\n\t\t\timages: [...this.engine.state('images').filter((item: string) => {\n\t\t\t\tif (typeof item === 'string') {\n\t\t\t\t\tconst [, , asset] = item.split(' ');\n\t\t\t\t\treturn asset !== this.asset;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t})]\n\t\t});\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default ShowImage;", + "import Action from './../lib/Action';\nimport type TextBox from './../components/text-box';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class ShowTextBox extends Action {\n\n\tstatic override id = 'Show::TextBox';\n\n\tstatic override matchString([show, type]: string[]): boolean {\n\t\treturn show === 'show' && type === 'textbox';\n\t}\n\n\toverride async apply(): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBox | undefined;\n\t\ttextBox?.setState({ hidden: false });\n\t}\n\n\toverride async didApply(): Promise {\n\t\tthis.engine.state({ textboxHidden: false });\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst textBox = this.engine.element().find('[data-component=\"text-box\"]').get(0) as TextBox | undefined;\n\t\ttextBox?.setState({ hidden: true });\n\t}\n\n\toverride async didRevert(): Promise {\n\t\tthis.engine.state({ textboxHidden: true });\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default ShowTextBox;\n", + "import Action from './../lib/Action';\nimport AudioPlayer from './../lib/AudioPlayer';\nimport { ActionApplyResult, ActionRevertResult, MediaType, MediaStateItem, ActionInstance } from '../lib/types';\n\nexport class Stop extends Action {\n\tstatic override id = 'Stop';\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'stop';\n\t}\n\n\ttype: MediaType;\n\tmedia: string;\n\tprops: string[];\n\tplayer: any;\n\n\tconstructor([action, type, media, ...props]: string[]) {\n\t\tsuper();\n\n\t\tthis.type = type as MediaType;\n\t\tthis.media = media;\n\t\tthis.props = props;\n\n\t\tif (typeof media === 'undefined' || media === 'with') {\n\t\t\tthis.player = this.engine.mediaPlayers(type);\n\t\t} else {\n\t\t\tthis.player = this.engine.mediaPlayer(type, media);\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (this.player) {\n\t\t\tif (Array.isArray(this.player)) {\n\t\t\t\tfor (const player of this.player) {\n\t\t\t\t\tplayer.loop = false;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.player.loop = false;\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\t// Check if the audio should have a fade time\n\t\tconst fadePosition = this.props.indexOf('fade');\n\n\t\tif (Array.isArray(this.player)) {\n\t\t\tif (fadePosition > -1) {\n\t\t\t\tconst fadeTime = this.props[fadePosition + 1];\n\t\t\t\tconst duration = parseFloat((fadeTime.match(/\\d*(\\.\\d*)?/) as RegExpMatchArray)[0]);\n\t\t\t\tfor (const player of this.player) {\n\t\t\t\t\t// Only AudioPlayer has fadeOut, HTMLAudioElement doesn't\n\t\t\t\t\tif (player instanceof AudioPlayer) {\n\t\t\t\t\t\tawait player.fadeOut(duration);\n\t\t\t\t\t}\n\t\t\t\t\tthis.engine.removeMediaPlayer(this.type, player.dataset.key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.engine.removeMediaPlayer(this.type);\n\t\t\t}\n\t\t} else {\n\t\t\tif (fadePosition > -1) {\n\t\t\t\tconst fadeTime = this.props[fadePosition + 1];\n\t\t\t\tconst duration = parseFloat((fadeTime.match(/\\d*(\\.\\d*)?/) as RegExpMatchArray)[0]);\n\t\t\t\t// Only AudioPlayer has fadeOut, HTMLAudioElement doesn't\n\t\t\t\tif (this.player instanceof AudioPlayer) {\n\t\t\t\t\tawait this.player.fadeOut(duration);\n\t\t\t\t}\n\t\t\t\tthis.engine.removeMediaPlayer(this.type, this.media);\n\t\t\t} else {\n\t\t\t\tthis.engine.removeMediaPlayer(this.type, this.media);\n\t\t\t}\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\tconst currentState = this.engine.state(this.type);\n\n\t\tif (typeof this.media !== 'undefined') {\n\t\t\tconst filteredState = currentState.filter((item: MediaStateItem) => {\n\t\t\t\tif (typeof item.statement === 'string') {\n\t\t\t\t\tconst [play, type, media] = item.statement.split(' ');\n\t\t\t\t\treturn !(type === this.type && media === this.media);\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t});\n\t\t\tthis.engine.state({ [this.type]: filteredState });\n\t\t} else {\n\t\t\tthis.engine.history(this.type).push(currentState);\n\t\t\tthis.engine.state({ [this.type]: [] });\n\t\t}\n\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n\t\tconst history = this.engine.history(this.type);\n\n\t\tif (typeof this.media !== 'undefined') {\n\t\t\tfor (let i = history.length - 1; i >= 0; i--) {\n\t\t\t\tconst last = history[i];\n\t\t\t\tif (typeof last === 'string') {\n\t\t\t\t\tconst [, type, media] = last.split(' ');\n\n\t\t\t\t\tif (this.type === type && this.media === media) {\n\t\t\t\t\t\tconst action = this.engine.prepareAction(last, { cycle: 'Application' }) as ActionInstance | null;\n\t\t\t\t\t\tif (action) {\n\t\t\t\t\t\t\tawait action.willApply();\n\t\t\t\t\t\t\tawait action.apply();\n\t\t\t\t\t\t\tawait action.didApply({ updateHistory: false, updateState: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n return;\n\t\t}\n\n const statements = history.pop();\n\n if (!statements || typeof statements === 'string') {\n return;\n }\n\n const promises = [];\n for (const state of statements) {\n // prepareAction returns typeof Action but actually returns instance\n const action = this.engine.prepareAction(state.statement, { cycle: 'Application' }) as ActionInstance | null;\n if (action) {\n const promise = (async () => {\n await action.willApply();\n await (action as any).apply({ paused: state.paused });\n await action.didApply({ updateHistory: false, updateState: true });\n })();\n\n promises.push(promise);\n }\n }\n await Promise.all(promises);\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Stop;", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\nimport { Preload, PreloadBlocks } from './Preload';\n\n\nexport class Unload extends Action {\n\n\tstatic override id = 'Unload';\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'unload';\n\t}\n\n\t// Instance properties\n\tprivate category: string = '';\n\tprivate assetName: string = '';\n\tprivate blockId: string = '';\n\tprivate isBlock: boolean = false;\n\tprivate isAll: boolean = false;\n\tprivate isCategoryOnly: boolean = false;\n\tprivate characterId: string = '';\n\tprivate isPermanent: boolean = false;\n\n\tconstructor([_action, typeOrBlock, ...rest]: string[]) {\n\t\tsuper();\n\n\t\t// Check for 'permanent' flag at the end\n\t\tthis.isPermanent = rest.includes('permanent');\n\t\t// Remove 'permanent' from rest for easier parsing\n\t\tconst filteredRest = rest.filter(arg => arg !== 'permanent');\n\n\t\tif (typeOrBlock === 'all') {\n\t\t\tthis.isAll = true;\n\t\t} else if (typeOrBlock === 'block') {\n\t\t\tthis.isBlock = true;\n\t\t\tthis.blockId = filteredRest[0];\n\t\t} else if (typeOrBlock === 'character') {\n\t\t\tthis.category = 'characters';\n\t\t\tthis.characterId = filteredRest[0];\n\t\t\tthis.assetName = filteredRest[1] || ''; // Empty means all sprites for character\n\t\t} else {\n\t\t\t// Resolve category aliases (e.g., 'sound' -> 'sounds')\n\t\t\tthis.category = Preload.resolveCategory(typeOrBlock);\n\n\t\t\tif (filteredRest.length > 0) {\n\t\t\t\tthis.assetName = filteredRest[0];\n\t\t\t} else {\n\t\t\t\t// No asset name means unload entire category\n\t\t\t\tthis.isCategoryOnly = true;\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Unload a single asset using the registered loader for its category\n\t * @param category - The asset category (e.g., 'music', 'scenes', 'videos')\n\t * @param assetName - The asset identifier\n\t */\n\tprivate unloadAsset(category: string, assetName: string): void {\n\t\tconst loaderType = Preload.getLoaderType(category);\n\t\tif (!loaderType) {\n\t\t\tconsole.warn(`Unload: No loader registered for category \"${category}\"`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst loaderConfig = Preload.getLoader(loaderType);\n\t\tif (!loaderConfig) {\n\t\t\tconsole.warn(`Unload: Loader type \"${loaderType}\" not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!loaderConfig.cache.delete) {\n\t\t\tconsole.warn(`Unload: Loader type \"${loaderType}\" does not support delete operation`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst cacheKey = `${category}/${assetName}`;\n\t\tloaderConfig.cache.delete(this.engine, cacheKey);\n\t}\n\n\t/**\n\t * Unload a character sprite or all sprites for a character\n\t * Uses the registered 'image' loader\n\t */\n\tprivate unloadCharacter(characterId: string, spriteName?: string): void {\n\t\tconst loaderConfig = Preload.getLoader('image');\n\t\tif (!loaderConfig) {\n\t\t\tconsole.warn(`Unload: Image loader not registered`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (spriteName) {\n\t\t\t// Unload single sprite\n\t\t\tif (!loaderConfig.cache.delete) {\n\t\t\t\tconsole.warn(`Unload: Image loader does not support delete operation`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst cacheKey = `characters/${characterId}/${spriteName}`;\n\t\t\tloaderConfig.cache.delete(this.engine, cacheKey);\n\t\t} else {\n\t\t\t// Unload all sprites for this character\n\t\t\tif (!loaderConfig.cache.clear) {\n\t\t\t\tconsole.warn(`Unload: Image loader does not support clear operation`);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tloaderConfig.cache.clear(this.engine, `characters/${characterId}/`);\n\t\t}\n\t}\n\n\t/**\n\t * Unload all assets in a block\n\t */\n\tprivate unloadBlock(blockId: string): void {\n\t\tconst blocks = Preload.blocks() as PreloadBlocks;\n\t\tconst block = blocks[blockId];\n\t\tif (!block) {\n\t\t\tconsole.warn(`Unload: Block \"${blockId}\" not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tfor (const [category, assets] of Object.entries(block)) {\n\t\t\t// Handle characters separately (nested structure)\n\t\t\tif (category === 'characters' && typeof assets === 'object' && !Array.isArray(assets)) {\n\t\t\t\tfor (const [charId, sprites] of Object.entries(assets as Record)) {\n\t\t\t\t\tfor (const spriteName of sprites) {\n\t\t\t\t\t\tthis.unloadCharacter(charId, spriteName);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!Array.isArray(assets)) continue;\n\n\t\t\t// Use registered loader for this category\n\t\t\tif (Preload.hasLoader(category)) {\n\t\t\t\tfor (const assetName of assets) {\n\t\t\t\t\tthis.unloadAsset(category, assetName);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.warn(`Unload: No loader registered for category \"${category}\" in block \"${blockId}\"`);\n\t\t\t}\n\t\t}\n\t}\n\n\t/**\n\t * Unload all assets in a category using the registered loader\n\t */\n\tprivate unloadCategoryAssets(category: string): void {\n\t\t// Special case for characters - use 'image' loader\n\t\tconst loaderType = category === 'characters' ? 'image' : Preload.getLoaderType(category);\n\t\tif (!loaderType) {\n\t\t\tconsole.warn(`Unload: No loader registered for category \"${category}\"`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst loaderConfig = Preload.getLoader(loaderType);\n\t\tif (!loaderConfig) {\n\t\t\tconsole.warn(`Unload: Loader type \"${loaderType}\" not found`);\n\t\t\treturn;\n\t\t}\n\n\t\tif (!loaderConfig.cache.clear) {\n\t\t\tconsole.warn(`Unload: Loader type \"${loaderType}\" does not support clear operation`);\n\t\t\treturn;\n\t\t}\n\n\t\tconst prefix = category === 'characters' ? 'characters/' : `${category}/`;\n\t\tloaderConfig.cache.clear(this.engine, prefix);\n\t}\n\n\t/**\n\t * Determine if a category uses audio (for persistent storage)\n\t */\n\tprivate isAudioCategory(category: string): boolean {\n\t\tconst loaderType = Preload.getLoaderType(category);\n\t\treturn loaderType === 'audio';\n\t}\n\n\t/**\n\t * Unload from persistent storage (IndexedDB) if applicable\n\t */\n\tprivate async unloadPersistent(category: string, assetName?: string): Promise {\n\t\tif (!this.isAudioCategory(category)) {\n\t\t\treturn; // Only audio is persisted in IndexedDB\n\t\t}\n\n\t\tif (assetName) {\n\t\t\t// Build the URL key used for persistent storage\n\t\t\tconst assetsPath = this.engine.setting('AssetsPath') as Record;\n\t\t\tconst assetFile = this.engine.asset(category, assetName) as string | undefined;\n\t\t\tif (assetFile) {\n\t\t\t\tconst url = `${assetsPath.root}/${assetsPath[category]}/${assetFile}`;\n\t\t\t\tawait this.engine.removeAudioBufferPersistent(url);\n\t\t\t}\n\t\t} else {\n\t\t\t// Clear all persistent audio - we can't easily filter by prefix\n\t\t\t// so for category-wide unload, we'll clear all\n\t\t\tawait this.engine.clearAudioBufferPersistent();\n\t\t}\n\t}\n\n\toverride async apply(): Promise {\n\t\tif (this.isAll) {\n\t\t\t// Clear all memory caches\n\t\t\tthis.engine.clearAllCaches();\n\n\t\t\t// If permanent, also clear IndexedDB\n\t\t\tif (this.isPermanent) {\n\t\t\t\tawait this.engine.clearAudioBufferPersistent();\n\t\t\t}\n\t\t} else if (this.isBlock) {\n\t\t\t// Unload block from memory\n\t\t\tthis.unloadBlock(this.blockId);\n\n\t\t\t// If permanent, also clear audio assets from IndexedDB\n\t\t\tif (this.isPermanent) {\n\t\t\t\tconst blocks = Preload.blocks() as PreloadBlocks;\n\t\t\t\tconst block = blocks[this.blockId];\n\t\t\t\tif (block) {\n\t\t\t\t\tfor (const [category, assets] of Object.entries(block)) {\n\t\t\t\t\t\tif (this.isAudioCategory(category) && Array.isArray(assets)) {\n\t\t\t\t\t\t\tfor (const assetName of assets) {\n\t\t\t\t\t\t\t\tawait this.unloadPersistent(category, assetName);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else if (this.isCategoryOnly) {\n\t\t\t// Unload entire category from memory\n\t\t\tthis.unloadCategoryAssets(this.category);\n\n\t\t\tif (this.isPermanent) {\n\t\t\t\tawait this.unloadPersistent(this.category);\n\t\t\t}\n\t\t} else if (this.category === 'characters') {\n\t\t\tthis.unloadCharacter(this.characterId, this.assetName || undefined);\n\t\t} else if (Preload.hasLoader(this.category)) {\n\t\t\t// Unload single asset from memory\n\t\t\tthis.unloadAsset(this.category, this.assetName);\n\n\t\t\tif (this.isPermanent) {\n\t\t\t\tawait this.unloadPersistent(this.category, this.assetName);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn(`Unload: No loader registered for category \"${this.category}\"`);\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\treturn { advance: true };\n\t}\n\n\toverride async revert(): Promise {\n // TODO: Should we re-load the asset automatically?\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Unload;\n\n\n", + "import Action from './../lib/Action';\nimport { FancyError } from './../lib/FancyError';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Vibrate extends Action {\n\n\tstatic override id = 'Vibrate';\n\n\tstatic override matchString([action]: string[]): boolean {\n\t\treturn action === 'vibrate';\n\t}\n\n\ttime: number[] | undefined;\n\n\tconstructor([action, ...time]: string[]) {\n\t\tsuper();\n\n\t\t// First check if vibration is available available\n\t\tif (navigator) {\n\t\t\tif (typeof navigator.vibrate === 'function') {\n\t\t\t\t// Since time can be a pattern made of different lengths, we have\n\t\t\t\t// to use an array\n\t\t\t\tthis.time = [];\n\t\t\t\tfor (const i in time) {\n\t\t\t\t\t// Check if all times are valid integers\n\t\t\t\t\tif (!isNaN(Number(time[i]))) {\n\t\t\t\t\t\tthis.time[i] = parseInt(time[i]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tFancyError.show('action:vibrate:invalid_time', {\n\t\t\t\t\t\t\ttime: time[i],\n\t\t\t\t\t\t\tstatement: `\"${this._statement}\"`,\n\t\t\t\t\t\t\tlabel: this.engine.state('label'),\n\t\t\t\t\t\t\tstep: this.engine.state('step')\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconsole.warn('Vibration is not supported in this platform.');\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn('Vibration is not supported in this platform.');\n\t\t}\n\t}\n\n\toverride async willApply(): Promise {\n\t\tif (typeof this.time !== 'undefined') {\n\t\t\treturn;\n\t\t}\n\t\tthrow new Error('Time for vibration was not provided');\n\t}\n\n\toverride async apply(): Promise {\n\t\tif (this.time) {\n\t\t\tnavigator.vibrate(0);\n\t\t\tnavigator.vibrate(this.time);\n\t\t}\n\t}\n\n\toverride async didApply(): Promise {\n\t\treturn { advance: true };\n\t}\n\n\toverride async didRevert(): Promise {\n\t\treturn { advance: true, step: true };\n\t}\n}\n\nexport default Vibrate;", + "import Action from './../lib/Action';\nimport { ActionApplyResult, ActionRevertResult } from '../lib/types';\n\nexport class Wait extends Action {\n static override id = 'Wait';\n\n static override blocking = false;\n\n static override matchString([action]: string[]): boolean {\n return action === 'wait';\n }\n\n static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise {\n if (this.blocking) {\n throw new Error('Wait period has not ended');\n }\n }\n\n // TODO: Haven't decided if this is really necesary but sort of makes sense\n static override async willRollback(): Promise {\n Wait.blocking = false;\n }\n\n // When null, we wait for the click instead of a specific amount of time\n time: number | null = null;\n\n constructor([action, time]: string[]) {\n super();\n\n this.time = !isNaN(Number(time)) ? parseInt(time) : null;\n }\n\n override async apply(): Promise {\n if (typeof this.time !== 'number') {\n return;\n }\n\n return new Promise((resolve) => {\n Wait.blocking = true;\n\n setTimeout(() => {\n Wait.blocking = false;\n resolve();\n }, this.time!);\n });\n }\n\n override async didApply(): Promise {\n return { advance: typeof this.time === 'number' };\n }\n\n override async didRevert(): Promise {\n return { advance: true, step: true };\n }\n}\n\nexport default Wait;", + "import { $_, DOM } from '@aegis-framework/artemis';\nimport { ShadowComponent as PandoraShadowComponent, Component as PandoraComponent, Properties } from '@aegis-framework/pandora';\nimport type { Configuration } from './types';\nimport type Monogatari from '../monogatari';\nimport type { VisualNovelEngine } from './types/Monogatari';\n\n/**\n * A shadow component represents an object or content in the game that uses\n * Shadow DOM for style encapsulation. It functions like Component but renders\n * into a shadow root instead of the light DOM.\n *\n * The life cycle follows the same Mounting cycle as Component:\n *\n * 1. Setup - Set up HTML content, configuration, and state variables\n * 2. Bind - Bind event listeners and perform DOM operations\n * 3. Init - Perform final operations\n *\n * @class ShadowComponent\n * @template P - The type of the component's props (defaults to Properties)\n * @template S - The type of the component's state (defaults to Properties)\n */\nclass ShadowComponent

extends PandoraShadowComponent {\n\t/**\n\t * Marks the component as experimental, meaning it's not stable and should not\n\t * be used in production.\n\t */\n\tstatic _experimental: boolean = false;\n\n\t/**\n\t * If needed, every component should declare its configuration as follows. This\n\t * configuration object should be used to store component-specific settings as well\n\t * as other objects/assets used by the action. If any specific object needs\n\t * recurrent access such as the declarations in the script.js file, provinding\n\t * a static function for that specific object could be great.\n\t *\n\t * IMPORTANT: Subclasses should declare their own `static _configuration = {}`\n\t * to avoid sharing state with other components.\n\t */\n\tstatic _configuration: Configuration = {};\n\n\tstatic _priority: number = 0;\n\n\t/**\n\t * Reference to the Monogatari engine (set by engine on registration)\n\t */\n\tstatic engine: VisualNovelEngine;\n\n\t/**\n\t * Parent component reference\n\t */\n\t_parent?: PandoraComponent;\n\n\tconstructor () {\n\t\tsuper();\n\t}\n\n\t/**\n\t * @static configuration - A simple function providing access to the configuration\n\t * object of the function. If the component has a configuration object it must\n\t * also include this method.\n\t *\n\t * @param {Object|string} [object = null] - Object with which current\n\t * configuration will be updated with (i.e. Object.assign) or a string to access\n\t * a property.\n\t *\n\t * @return {any} - If the parameter sent was a string, the function will\n\t * return the value of the property whose name matches the parameter. If no\n\t * parameter was sent, then the function will return the whole configuration\n\t * object.\n\t */\n\tstatic configuration (object: string | Configuration | null = null): Configuration | unknown {\n\t\tif (object !== null) {\n\t\t\tif (typeof object === 'string') {\n\t\t\t\treturn this._configuration[object];\n\t\t\t} else {\n\t\t\t\tthis._configuration = Object.assign({}, this._configuration, object);\n\t\t\t}\n\t\t} else {\n\t\t\treturn this._configuration;\n\t\t}\n\t}\n\n\tstatic all (): DOM {\n\t\treturn $_(this.tag);\n\t}\n\n\tstatic get (id: string): DOM {\n\t\treturn $_(`${this.tag} [data-instance=\"${id}\"]`);\n\t}\n\n\t/**\n\t * @static onStart - This function acts as an event listener for when the game\n\t * starts. If the component needs to do any particular activities when the game\n\t * starts, then this function should be implemented and it will be automatically\n\t * called once the player starts the game.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic async onStart (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static onLoad - This function acts as an event listener for when a game\n\t * is loaded. If the component needs to perform any particular actions such as\n\t * restoring some state (i.e. showing images, playing media, etc.) when a game\n\t * is loaded, this function must be implemented and it will be automatically\n\t * called when a game is loaded.\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic async onLoad (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static setup - The setup is the first step of the Mounting cycle, all\n\t * operations required for the component's setup should be implemented here.\n\t *\n\t * @return {Promise} - Result of the setup operation\n\t */\n\tstatic async setup (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static shouldProceed - Either when the user clicks in the game to proceed or\n\t * the autoPlay feature is ready to go on, Monogatari will first check with\n\t * all actions if it's ok to proceed. Every action should implement its own\n\t * logic for it according to its requirements.\n\t *\n\t * @param {Object} options - Options for proceeding\n\t * @param {boolean} options.userInitiated - Whether the proceed was initiated by user click\n\t * @param {boolean} options.skip - Whether skip mode is active\n\t * @param {boolean} options.autoPlay - Whether auto-play mode is active\n\t * @return {Promise} - Resolved if proceeding is alright or rejected if its not\n\t */\n\tstatic async shouldProceed (_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean }): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.shouldProceed());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static willProceed - Once the shouldProceed check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game proceeding.\n\t *\n\t * @return {Promise}\n\t */\n\tstatic async willProceed (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.willProceed());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static shouldRollback - Similarly to the shouldProceed () function, this one takes\n\t * action when the player tries to go back in the game.Monogatari will first\n\t * check with all actions if it's ok to go back. Every action should implement\n\t * its own logic for it according to its requirements.\n\t *\n\t * @return {Promise} - Resolved if going back is alright or rejected if its not\n\t */\n\tstatic async shouldRollback (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.shouldRollback());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static willRollback - Once the shouldRollback check is passed, each action\n\t * should implement its own logic according to its requirements to respond to\n\t * the game reverting the previous action\n\t *\n\t * @return {Promise}\n\t */\n\tstatic async willRollback (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.willRollback());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * @static bind - The binding is the second step of the Mounting cycle, all\n\t * operations related to event bindings or other sort of binding with the\n\t * HTML content generated in the setup phase should be implemented here.\n\t * @return {Promise}\n\t */\n\tstatic async bind (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static init - The initialization is the last step of the Mounting cycle,\n\t * all final operations should be implemented here.\n\t *\n\t * @param {string} selector - The CSS selector with which Monogatari has been\n\t * initialized\n\t * @return {Promise} - Result of the initialization operation\n\t */\n\tstatic async init (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static onSave - This function acts as an event listener for when a game\n\t * is saved. If the component needs to perform any particular actions when that\n\t * happens, this function must be implemented and it will be automatically\n\t * called when a game is saved.\n\t *\n\t * @param {Object} slot - The slot object that has just been saved.\n\t * @param {string} slot.key - The key used to save the slot in the local storage\n\t * @param {Object} slot.value - The actual value saved\n\t *\n\t * @return {Promise} description\n\t */\n\tstatic async onSave (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static reset - When a game ends using the 'end' statement or before a game\n\t * is loaded, Monogatari will perform a reset on all its components. If the component\n\t * needs to reset a state or any other variables/elements to an initial state\n\t * once a game is over or a new one is loaded, the logic for it must be implemented\n\t * here and the function will be automatically called when needed.\n\t *\n\t * @return {Promise} - Result of the reset operation\n\t */\n\tstatic async onReset (): Promise {\n\t\tconst promises: Promise[] = [];\n\n\t\tthis.instances((instance: any) => {\n\t\t\tpromises.push(instance.onReset());\n\t\t});\n\n\t\treturn Promise.all(promises);\n\t}\n\n\t/**\n\t * Get all instances of this component, optionally iterating with callback\n\t */\n\tstatic instances (callback: ((instance: any) => void) | null = null): ReturnType {\n\t\tif (typeof callback === 'function') {\n\t\t\treturn $_(this.tag).each(callback as any);\n\t\t}\n\t\treturn $_(this.tag);\n\t}\n\n\t// =========================================\n\t// Instance Methods\n\t// =========================================\n\n\t/**\n\t * Reset this instance's state\n\t */\n\tasync onReset (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * @static element - Returns this component's element as an Artemis DOM\n\t * instance, using the result of the `selector ()` function as the selector\n\t *\n\t * @returns {DOM} - Artemis DOM instance\n\t */\n\telement (): ReturnType {\n\t\treturn $_(this);\n\t}\n\n\t/**\n\t * Remove this component from the DOM\n\t */\n\toverride remove (): void {\n\t\tthis.parentNode?.removeChild(this);\n\t}\n\n\t/**\n\t * Find an instance by ID within this component type\n\t */\n\tinstance (id: string): ReturnType {\n\t\tconst ctor = this.constructor as typeof ShadowComponent;\n\t\treturn $_(`${ctor.tag}[data-${ctor.name.toLowerCase()}=\"${id}\"`);\n\t}\n\n\t/**\n\t * Get or set the parent component\n\t */\n\tparent (component?: PandoraComponent): PandoraComponent | undefined | void {\n\t\tif (typeof component !== 'undefined') {\n\t\t\tthis._parent = component;\n\t\t} else {\n\t\t\treturn this._parent;\n\t\t}\n\t}\n\n\t/**\n\t * Get the engine reference\n\t */\n\tget engine (): VisualNovelEngine {\n\t\treturn (this.constructor as typeof ShadowComponent).engine;\n\t}\n\n\tset engine (_value: VisualNovelEngine) {\n\t\tthrow new Error('Component engine reference is hold at static level and cannot be modified.');\n\t}\n\n\t/**\n\t * Check if it's ok to proceed\n\t */\n\tasync shouldProceed (): Promise {\n\t\t// Base implementation allows proceeding\n\t}\n\n\t/**\n\t * Respond to game proceeding\n\t */\n\tasync willProceed (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * Check if it's ok to go back\n\t */\n\tasync shouldRollback (): Promise {\n\t\t// Base implementation allows rollback\n\t}\n\n\t/**\n\t * Respond to game reverting\n\t */\n\tasync willRollback (): Promise {\n\t\t// Base implementation does nothing\n\t}\n\n\t/**\n\t * Called when the component is connected to the DOM\n\t */\n\tasync connectedCallback (): Promise {\n\t\t// Always add the animated class for all the components\n\t\t// TODO: Let's be honest, this is stupid.\n\t\tthis.classList.add('animated');\n\n\t\treturn super.connectedCallback();\n\t}\n\n\t/**\n\t * Attempts to find a content element inside of this\n\t * component's shadow DOM\n\t *\n\t * @param name - Name of the content element to find\n\t * @returns An Artemis DOM instance with the found elements\n\t */\n\tcontent (name: string): ReturnType {\n\t\t// Ensure we use the shadow DOM query method instead of light DOM\n\t\tconst element = this.query(`[data-content=\"${name}\"]`);\n\n\t\treturn $_(element);\n\t}\n}\n\nexport default ShadowComponent;\n", + "/**\n * =============================================================================\n * Monogatari Core Engine\n * =============================================================================\n */\n\n/**\n * =============================================================================\n * Global Vendor Libraries\n * -----------------------------------------------------------------------------\n * These are third party libraries that must be globally imported in order for\n * Monogatari to work correctly.\n * =============================================================================\n */\n\nimport '@fortawesome/fontawesome-free/js/all';\n\n/**\n * =============================================================================\n * Exported Vendor Libraries\n * -----------------------------------------------------------------------------\n * These are third party libraries that Monogatari uses for certain functions\n * and may be helpful for the developers.\n * =============================================================================\n */\n\nexport * from '@aegis-framework/artemis';\n\nexport { tsParticles } from '@tsparticles/engine';\n\nexport * from '@tsparticles/slim';\n\nexport * as RandomJS from 'random-js';\n\nexport * as Luxon from 'luxon';\n\nimport Monogatari from './monogatari';\nimport type { StaticComponent } from './lib/types/Component';\nimport type { StaticAction } from './lib/types/Action';\n\n/**\n * =============================================================================\n * Translations\n * -----------------------------------------------------------------------------\n * Import all the translations available for the UI\n * =============================================================================\n */\n\nimport arabic from './translations/Ų§Ł„Ų¹Ų±ŲØŁŠŲ©';\nimport belarusian from './translations/Š‘ŠµŠ»Š°Ń€ŃƒŃŠŗŠ°Ń';\nimport brazilianPortuguese from './translations/Portugues_Brasil';\nimport chineseTraditional from './translations/繁體中文';\nimport chineseSimplified from './translations/简体中文';\nimport dutch from './translations/Nederlands';\nimport english from './translations/English';\nimport french from './translations/Francais';\nimport german from './translations/Deutsch';\nimport hungarian from './translations/Hungarian';\nimport indonesian from './translations/Bahasa_Indonesia';\nimport japanese from './translations/ę—„ęœ¬čŖž';\nimport korean from './translations/ķ•œźµ­ģ–“';\nimport portuguese from './translations/Portugues';\nimport russian from './translations/Russian';\nimport spanish from './translations/Espanol';\nimport tokipona from './translations/tokipona';\nimport bulgarian from './translations/Bulgarian';\n\nMonogatari._translations = {\n\t'Bahasa Indonesia': indonesian,\n\t'Š‘ŃŠŠ»Š³Š°Ń€ŃŠŗŠø': bulgarian,\n\t'Š‘ŠµŠ»Š°Ń€ŃƒŃŠŗŠ°Ń': belarusian,\n\t'Deutsch': german,\n\t'English': english,\n\t'EspaƱol': spanish,\n\t'FranƧais': french,\n\t'Magyar': hungarian,\n\t'Nederlands': dutch,\n\t'PortuguĆŖs': portuguese,\n\t'PortuguĆŖs do Brasil': brazilianPortuguese,\n\t'Русский': russian,\n\t'اللغه Ų§Ł„Ų¹Ų±ŲØŁŠŲ©': arabic,\n\t'ķ•œźµ­ģ–“': korean,\n\t'ę—„ęœ¬čŖž': japanese,\n\t'繁體中文': chineseTraditional,\n\t'简体中文': chineseSimplified,\n\t'toki pona': tokipona,\n};\n\nMonogatari._languageMetadata = {\n\t'Bahasa Indonesia':{\n\t\tcode: 'id',\n\t\ticon: 'šŸ‡®šŸ‡©',\n\t},\n\t'Š‘ŠµŠ»Š°Ń€ŃƒŃŠŗŠ°Ń': {\n\t\tcode: 'be',\n\t\ticon: 'šŸ‡§šŸ‡¾'\n\t},\n\t'Š‘ŃŠŠ»Š³Š°Ń€ŃŠŗŠø': {\n\t\tcode: 'bg',\n\t\ticon: 'šŸ‡§šŸ‡¬'\n\t},\n\t'Deutsch': {\n\t\tcode: 'de',\n\t\ticon: 'šŸ‡©šŸ‡Ŗ'\n\t},\n\t'English': {\n\t\tcode: 'en',\n\t\ticon: 'šŸ‡ŗšŸ‡ø'\n\t},\n\t'EspaƱol': {\n\t\tcode: 'es',\n\t\ticon: 'šŸ‡²šŸ‡½'\n\t},\n\t'FranƧais': {\n\t\tcode: 'fr',\n\t\ticon: 'šŸ‡«šŸ‡·'\n\t},\n\t'Magyar': {\n\t\tcode: 'hu',\n\t\ticon: 'šŸ‡­šŸ‡ŗ'\n\t},\n\t'Nederlands': {\n\t\tcode: 'nl',\n\t\ticon: 'šŸ‡³šŸ‡±'\n\t},\n\t'PortuguĆŖs': {\n\t\tcode: 'pt',\n\t\ticon: 'šŸ‡µšŸ‡¹'\n\t},\n\t'PortuguĆŖs do Brasil': {\n\t\tcode: 'pt-br',\n\t\ticon: 'šŸ‡§šŸ‡·'\n\t},\n\t'Русский': {\n\t\tcode: 'ru',\n\t\ticon: 'šŸ‡·šŸ‡ŗ'\n\t},\n\t'اللغه Ų§Ł„Ų¹Ų±ŲØŁŠŲ©': {\n\t\tcode: 'ar',\n\t\ticon: 'šŸ‡¦šŸ‡Ŗ'\n\t},\n\t'ķ•œźµ­ģ–“': {\n\t\tcode: 'ko',\n\t\ticon: 'šŸ‡°šŸ‡·'\n\t},\n\t'ę—„ęœ¬čŖž': {\n\t\tcode: 'ja',\n\t\ticon: 'šŸ‡ÆšŸ‡µ'\n\t},\n\t'繁體中文': {\n\t\tcode: 'zh-hant',\n\t\ticon: 'šŸ‡¹šŸ‡¼'\n\t},\n\t'简体中文': {\n\t\tcode: 'zh-hans',\n\t\ticon: 'šŸ‡ØšŸ‡³'\n\t},\n\t'toki pona': {\n\t\tcode: 'en',\n\t\ticon: 'šŸ•®'\n\t},\n};\n\n/**\n * =============================================================================\n * Components\n * -----------------------------------------------------------------------------\n * Import all the core components used by Monogatari. These components are the\n * ones that describe the behavior and appearance of all the custom elements.\n * =============================================================================\n */\n\nimport AlertModal from './components/alert-modal/index';\nimport CanvasContainer from './components/canvas-container/index';\nimport CenteredDialog from './components/centered-dialog/index';\nimport CharacterSprite from './components/character-sprite/index';\nimport ChoiceContainer from './components/choice-container/index';\nimport CreditsScreen from './components/credits-screen/index';\nimport DialogLog from './components/dialog-log/index';\nimport GalleryScreen from './components/gallery-screen/index';\nimport GameScreen from './components/game-screen/index';\nimport HelpScreen from './components/help-screen/index';\nimport LanguageSelectionScreen from './components/language-selection-screen/index';\nimport LoadScreen from './components/load-screen/index';\nimport LoadingScreen from './components/loading-screen/index';\nimport MainMenu from './components/main-menu/index';\nimport MainScreen from './components/main-screen/index';\nimport MessageModal from './components/message-modal/index';\nimport QuickMenu from './components/quick-menu/index';\nimport SaveScreen from './components/save-screen/index';\nimport SaveSlot from './components/save-slot/index';\nimport SettingsScreen from './components/settings-screen/index';\nimport SlotContainer from './components/slot-container/index';\nimport TextBox from './components/text-box/index';\nimport TextInput from './components/text-input/index';\nimport TimerDisplay from './components/timer-display/index';\nimport VisualNovel from './components/visual-novel/index';\nimport TypeWriter from './components/type-writer/index';\nimport TypeCharacter from './components/type-character/index';\n\n// Type cast needed as components extend Component but TypeScript has trouble with the complex static interfaces\nMonogatari._components = [\n\tAlertModal,\n\tCanvasContainer,\n\tCenteredDialog,\n\tCharacterSprite,\n\tChoiceContainer,\n\tCreditsScreen,\n\tDialogLog,\n\tGalleryScreen,\n\tGameScreen,\n\tHelpScreen,\n\tLanguageSelectionScreen,\n\tLoadScreen,\n\tLoadingScreen,\n\tMainMenu,\n\tMainScreen,\n\tMessageModal,\n\tQuickMenu,\n\tSaveScreen,\n\tSaveSlot,\n\tSettingsScreen,\n\tSlotContainer,\n\tTextBox,\n\tTextInput,\n\tTimerDisplay,\n\tVisualNovel,\n\tTypeWriter,\n\tTypeCharacter\n] as unknown as StaticComponent[];\n\n\n/**\n * =============================================================================\n * Actions\n * -----------------------------------------------------------------------------\n * Import all the core actions available. These actions are the ones that define\n * the allowed statements on a script and what they do.\n * =============================================================================\n */\n\nimport Canvas from './actions/Canvas';\nimport Choice from './actions/Choice';\nimport Clear from './actions/Clear';\nimport Conditional from './actions/Conditional';\nimport Dialog from './actions/Dialog';\nimport End from './actions/End';\nimport Function from './actions/Function';\nimport Gallery from './actions/Gallery';\nimport HideCanvas from './actions/HideCanvas';\nimport HideCharacter from './actions/HideCharacter';\nimport HideCharacterLayer from './actions/HideCharacterLayer';\nimport HideImage from './actions/HideImage';\nimport HideParticles from './actions/HideParticles';\nimport HideTextBox from './actions/HideTextBox';\nimport HideVideo from './actions/HideVideo';\nimport InputModal from './actions/InputModal';\nimport Jump from './actions/Jump';\nimport Message from './actions/Message';\nimport Next from './actions/Next';\nimport Notify from './actions/Notify';\nimport Particles from './actions/Particles';\nimport Pause from './actions/Pause';\nimport Placeholder from './actions/Placeholder';\nimport Play from './actions/Play';\nimport Preload from './actions/Preload';\nimport Scene from './actions/Scene';\nimport ShowBackground from './actions/ShowBackground';\nimport ShowCharacter from './actions/ShowCharacter';\nimport ShowCharacterLayer from './actions/ShowCharacterLayer';\nimport ShowImage from './actions/ShowImage';\nimport ShowTextBox from './actions/ShowTextBox';\nimport Stop from './actions/Stop';\nimport Unload from './actions/Unload';\nimport Vibrate from './actions/Vibrate';\nimport Video from './actions/Video';\nimport Wait from './actions/Wait';\n\n// The order in which actions are registered is important.\n// Type cast needed as actions extend Action but TypeScript has trouble with the complex static interfaces\nMonogatari._actions = [\n\tCanvas,\n\tChoice,\n\tClear,\n\tConditional,\n\tEnd,\n\tFunction,\n\tGallery,\n\tHideCanvas,\n\tHideCharacter,\n\tHideCharacterLayer,\n\tHideImage,\n\tHideParticles,\n\tHideTextBox,\n\tHideVideo,\n\tInputModal,\n\tJump,\n\tMessage,\n\tNext,\n\tNotify,\n\tParticles,\n\tPause,\n\tPlay,\n\tPlaceholder,\n\tPreload,\n\tScene,\n\tShowBackground,\n\tShowCharacter,\n\tShowCharacterLayer,\n\tShowImage,\n\tShowTextBox,\n\tStop,\n\tUnload,\n\tVibrate,\n\tVideo,\n\tWait,\n\n\t// Dialog must always go last\n\tDialog,\n] as StaticAction[];\n\n/**\n * Export Monogatari Core\n */\nexport { default as Action } from './lib/Action';\nexport { default as Component } from './lib/Component';\nexport { default as ShadowComponent } from './lib/ShadowComponent';\nexport * from './lib/ScreenComponent';\nexport * from './lib/MenuComponent';\nexport * from './lib/FancyError';\n\nimport AudioPlayer from './lib/AudioPlayer';\nexport { AudioPlayer };\n\nexport default Monogatari;\n" + ], + "mappings": "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AI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,IAAI,IA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AAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,GAAG,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,GAAG,GAAG,EAAE,GAAG,GAAG,GAAG,GAAG,EAAE,EAAE,CAAC,EAAE,EAAG,CAAC,EAAE,EAAE,EAAE,GAAG,GAAG,GAAG,G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,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,gEAAgE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,CAAC,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,iEAAiE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,kEAAkE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,iEAAiE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CAAC,mEAAmE,kEAAkE,EAAE,CA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,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE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AG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EA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EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,SAAS,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,UAAU,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,UAAU,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,UAAU,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,WAAW,CAAC,EAAE,EAAE,EAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,WAAW,EAAE,EAAE,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EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,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KAAK,IAAI,EAAE,IAAI,SAAS,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,CAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,GAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAG,EAAG,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,EAAI,KAAK,KAAK,EAAI,EAAG,EAAE,EAAE,EAAI,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AK,MACP,EACA,OAAQ,CACN,IAAK,MACP,EACA,aAAc,CACZ,IAAK,OACP,EACA,KAAM,CACJ,IAAK,MACP,EACA,OAAQ,CACN,IAAK,MACP,EACA,MAAO,CACL,IAAK,MACP,EACA,aAAc,CACZ,IAAK,OACP,EACA,YAAa,CACX,IAAK,OACP,EACA,QAAS,CACP,IAAK,OACP,EACA,cAAe,CACb,IAAK,QACP,EACA,eAAgB,CACd,IAAK,QACP,CACF,EACE,GAAK,CACL,OAAQ,CACN,QAAS,MACX,EACA,QAAS,CACP,OAAQ,MACR,MAAO,MACP,QAAS,MACT,MAAO,MACP,KAAM,KACR,EACA,QAAS,CACP,MAAO,OACP,QAAS,OACT,MAAO,MACP,KAAM,MACR,EACA,KAAM,CACJ,MAAO,MACT,EACA,MAAO,CACL,QAAS,MACX,EACA,YAAa,CACX,QAAS,OACX,EACA,aAAc,CACZ,QAAS,OACX,EACA,OAAQ,CACN,MAAO,MACT,EACA,aAAc,CACZ,MAAO,OACT,EACA,MAAO,CACL,MAAO,OACP,QAAS,OACT,MAAO,OACP,KAAM,MACR,EACA,gBAAiB,CACf,MAAO,QACP,QAAS,QACT,MAAO,QACP,KAAM,OACR,EACA,KAAM,CACJ,QAAS,OACX,EACA,aAAc,CACZ,QAAS,QACX,EACA,WAAY,CACV,MAAO,MACT,EACA,QAAS,CACP,SAAU,OACZ,EACA,cAAe,CACb,SAAU,QACZ,EACA,eAAgB,CACd,SAAU,QACZ,EACA,WAAY,CACV,SAAU,OACZ,CACF,EACE,GAAK,CACL,IAAK,CACH,IAAK,MACL,SAAU,KACZ,EACA,cAAe,CACb,KAAM,cACN,iBAAkB,aACpB,CACF,EACA,GAAK,CAAC,KAAK,EACT,GAAI,MACN,GAAI,cACJ,GAAI,MACJ,GAAI,cACJ,GAAK,EAAgB,EAAgB,CAAC,EAAG,GAAG,EAAC,EAAG,GAAG,EAAC,EAClD,GAAK,CACP,IAAK,CACH,SAAU,KACZ,EACA,cAAe,CACb,iBAAkB,MACpB,CACF,EACI,GAAK,CACL,IAAK,CACH,IAAK,QACP,EACA,cAAe,CACb,KAAM,gBACR,CAC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AAc,CACZ,IAAK,OACP,EACA,KAAM,CACJ,IAAK,MACP,EACA,OAAQ,CACN,IAAK,MACP,EACA,MAAO,CACL,IAAK,MACP,EACA,aAAc,CACZ,IAAK,OACP,EACA,YAAa,CACX,IAAK,OACP,EACA,QAAS,CACP,IAAK,OACP,EACA,cAAe,CACb,IAAK,QACP,EACA,eAAgB,CACd,IAAK,QACP,CACF,EACE,GAAK,CACL,OAAQ,CACN,QAAS,MACX,EACA,QAAS,CACP,OAAQ,MACR,MAAO,MACP,QAAS,MACT,MAAO,MACP,KAAM,KACR,EACA,QAAS,CACP,MAAO,OACP,QAAS,OACT,MAAO,MACP,KAAM,MACR,EACA,KAAM,CACJ,MAAO,MACT,EACA,MAAO,CACL,QAAS,MACX,EACA,YAAa,CACX,QAAS,OACX,EACA,aAAc,CACZ,QAAS,OACX,EACA,OAAQ,CACN,MAAO,MACT,EACA,aAAc,CACZ,MAAO,OACT,EACA,MAAO,CACL,MAAO,OACP,QAAS,OACT,MAAO,OACP,KAAM,MACR,EACA,gBAAiB,CACf,MAAO,QACP,QAAS,QACT,MAAO,QACP,KAAM,OACR,EACA,KAAM,CACJ,QAAS,OACX,EACA,aAAc,CACZ,QAAS,QACX,EACA,WAAY,CACV,MAAO,MACT,EACA,QAAS,CACP,SAAU,OACZ,EACA,cAAe,CACb,SAAU,QACZ,EACA,eAAgB,CACd,SAAU,QACZ,EACA,WAAY,CACV,SAAU,OACZ,CACF,EACE,GAAK,CACL,IAAK,CACH,IAAK,MACL,SAAU,KACZ,EACA,cAAe,CACb,KAAM,cACN,iBAAkB,aACpB,CACF,EACA,GAAK,CAAC,KAAK,EACT,GAAI,MACN,GAAI,cACJ,GAAI,MACJ,GAAI,cACJ,GAAK,EAAgB,EAAgB,CAAC,EAAG,GAAG,EAAC,EAAG,GAAG,EAAC,EAClD,GAAK,CACP,IAAK,CACH,SAAU,KACZ,EACA,cAAe,CACb,iBAAkB,MACpB,CACF,EACI,GAAK,CACL,IAAK,CACH,IAAK,QACP,EACA,cAAe,CACb,KAAM,gBACR,CACF,EACE,GAAK,CACL,IAAK,CACH,IAAK,KACP,EA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AAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;A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AmB,CAClB,KAAM,KACN,KAAM,0BACP,EACA,aAAa,CACZ,KAAM,KACN,KAAM,0BACP,EACA,YAAY,CACX,KAAM,KACN,KAAM,0BACP,EACA,QAAW,CACV,KAAM,KACN,KAAM,0BACP,EACA,QAAW,CACV,KAAM,KACN,KAAM,0BACP,EACA,UAAU,CACT,KAAM,KACN,KAAM,0BACP,EACA,WAAW,CACV,KAAM,KACN,KAAM,0BACP,EACA,OAAU,CACT,KAAM,KACN,KAAM,0BACP,EACA,WAAc,CACb,KAAM,KACN,KAAM,0BACP,EACA,YAAY,CACX,KAAM,KACN,KAAM,0BACP,EACA,sBAAsB,CACrB,KAAM,QACN,KAAM,0BACP,EACA,UAAU,CACT,KAAM,KACN,KAAM,0BACP,EACA,gBAAgB,CACf,KAAM,KACN,KAAM,0BACP,EACA,MAAM,CACL,KAAM,KACN,KAAM,0BACP,EACA,MAAM,CACL,KAAM,KACN,KAAM,0BACP,EACA,OAAO,CACN,KAAM,UACN,KAAM,0BACP,EACA,OAAO,CACN,KAAM,UACN,KAAM,0BACP,EACA,YAAa,CACZ,KAAM,KACN,KAAM,cACP,CACD,EAwCA,GAAW,YAAc,CACxB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,EACD,EAmDA,GAAW,SAAW,CACrB,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GACA,GAGA,EACD,EAeA,IAAe", + "debugId": "C2299FC0E197646E64756E2164756E21", + "names": [] +} \ No newline at end of file diff --git a/package.json b/package.json index 6b6f908..333ea97 100644 --- a/package.json +++ b/package.json @@ -1,73 +1,80 @@ { "name": "@monogatari/core", - "version": "2.0.2", - "main": "./dist/engine/core/monogatari.js", - "module": "./dist/engine/core/monogatari.js", + "version": "2.8.0", + "type": "module", + "main": "./dist/engine/core/monogatari.module.js", + "module": "./dist/engine/core/monogatari.module.js", + "types": "./dist/types/index.d.ts", + "exports": { + ".": { + "types": "./lib/index.d.ts", + "import": "./lib/engine/core/monogatari.module.js", + "default": "./lib/engine/core/monogatari.module.js" + }, + "./browser": { + "types": "./dist/types/index.d.ts", + "import": "./dist/engine/core/monogatari.js", + "default": "./dist/engine/core/monogatari.js" + } + }, + "css": "dist/engine/core/monogatari.css", "description": "Monogatari is a simple web visual novel engine created to bring Visual Novels to the web.", "repository": { "type": "git", "url": "https://github.com/Monogatari/Monogatari.git" }, - "author": "Diego Islas Ocampo", + "author": "Diana Islas Ocampo", "license": "MIT", "bugs": { "url": "https://github.com/Monogatari/Monogatari/issues" }, "homepage": "https://monogatari.io", "scripts": { - "start": "yarn parcel serve index.html --open --no-cache", - "build": "yarn parcel build ./src/index.html", - "build:core": "yarn run build:js && yarn build:css", - "build:js": "yarn parcel build ./src/index.js --global Monogatari --out-file monogatari.js --out-dir dist/engine/core --no-cache --public-url .", - "build:debug": "yarn parcel build ./debug/index.js --global MonogatariDebug --out-file debug.js --out-dir dist/engine/debug --no-cache --public-url .", - "build:css": "yarn parcel build ./src/index.css --out-file monogatari.css --out-dir dist/engine/core --no-cache --no-source-maps", - "watch:js": "yarn parcel watch ./src/index.js --global Monogatari --out-file monogatari.js --out-dir dist/engine/core --no-cache --public-url .", - "watch:css": "yarn parcel watch ./src/index.css --out-file monogatari.css --out-dir dist/engine/core --no-cache --no-source-maps", - "lint:html": "yarn htmlhint ./dist/index.html", - "lint:js": "yarn eslint ./src --ext .js --ignore-pattern *.min.js && yarn eslint ./dist/js --ext .js --ignore-pattern *.min.js && yarn eslint ./dist/engine/electron --ext .js && yarn eslint ./dist/service-worker.js", - "lint:css": "yarn stylelint ./src/**/*.css ./dist/style/**/*.css --ignore-pattern *.min.css", - "lint": "yarn lint:html && yarn lint:js && yarn lint:css", - "test": "yarn run cypress" + "build": "bun run clean && bun run lint && bun run check && bun build.ts", + "watch": "bun run watch:js && bun run watch:css", + "watch:js": "bun build.ts --watch", + "watch:css": "bun build.ts --css --watch", + "check": "bunx tsc --noEmit", + "clean": "bun run rm -rf dist/engine/core dist/types && rm -rf lib", + "lint": "bunx eslint ./src", + "test": "bunx cypress" }, "devDependencies": { - "@babel/core": "^7.13.8", - "@babel/plugin-proposal-class-properties": "^7.13.0", - "@babel/plugin-syntax-object-rest-spread": "^7.8.3", - "@babel/preset-env": "^7.13.8", - "autoprefixer": "^9.8.6", - "babel-eslint": "^10.1.0", - "core-js": "^3.9.0", - "cypress": "^6.5.0", - "dotenv": "^8.2.0", - "electron-notarize": "^1.0.0", - "eslint": "^7.20.0", - "htmlhint": "^0.14.2", - "jsdoc": "^3.6.6", - "parcel": "^1.12.4", - "postcss-calc": "^7.0.5", - "precss": "^4.0.0", - "stylelint": "^13.11.0", - "stylelint-config-standard": "^20.0.0" + "@eslint/js": "^9.39.1", + "@types/luxon": "^3.7.1", + "@types/mousetrap": "^1.6.15", + "@typescript-eslint/eslint-plugin": "^8.48.1", + "@typescript-eslint/parser": "^8.48.1", + "bun": "^1.3.4", + "cypress": "^15.7.1", + "dotenv": "^16.4.5", + "eslint": "^9.39.1", + "eslint-plugin-cypress": "^5.2.0", + "globals": "^16.5.0", + "jsdoc": "^4.0.4", + "tsx": "^4.21.0", + "typescript": "^5.9.3", + "typescript-eslint": "^8.48.1" }, "dependencies": { - "@aegis-framework/artemis": "^0.3.24", - "@aegis-framework/kayros.css": "^0.4.5", - "@aegis-framework/pandora": "^0.1.7", - "@fortawesome/fontawesome-free": "^5.15.2", + "@aegis-framework/artemis": "^0.5.3", + "@aegis-framework/kayros.css": "^0.5.1", + "@aegis-framework/pandora": "^0.5.0", + "@fortawesome/fontawesome-free": "^7.1.0", + "@tsparticles/engine": "^3.9.1", + "@tsparticles/slim": "^3.9.1", "animate.css": "^4.1.1", "deeply": "^3.1.0", - "electron": "^11.3.0", - "mixins.css": "^1.0.0", - "moment": "^2.29.1", + "luxon": "^3.7.2", + "modern-screenshot": "^4.6.8", "mousetrap": "^1.6.5", - "random-js": "^2.1.0", - "tsparticles": "^1.18.12" + "random-js": "https://github.com/Monogatari/random-js" }, "files": [ "README.md", "LICENSE", "package.json", "src/*", - "dist/engine/*" + "dist/*" ] } diff --git a/src/actions/Canvas.js b/src/actions/Canvas.js deleted file mode 100644 index ac59baf..0000000 --- a/src/actions/Canvas.js +++ /dev/null @@ -1,298 +0,0 @@ -import { Action } from '../lib/Action'; -import { Util } from '@aegis-framework/artemis'; -import { FancyError } from './../lib/FancyError'; - -export class Canvas extends Action { - - static configuration (object = null) { - if (object !== null) { - if (typeof object === 'string') { - return Canvas._configuration[object]; - } else { - Canvas._configuration = Object.assign ({}, Canvas._configuration, object); - } - } else { - return Canvas._configuration; - } - } - - static shouldProceed () { - return new Promise ((resolve, reject) => { - this.engine.element ().find ('[data-component="canvas-container"]').each ((element) => { - const { mode, canvas } = element.props; - if (['immersive', 'modal'].indexOf (mode) > -1) { - reject (`Canvas "${canvas}" must be removed before proceeding.`); - } - }); - - resolve (); - }); - } - - static onLoad () { - if (this.engine.state ('canvas').length > 0) { - const promises = []; - for (const canvas of this.engine.state ('canvas')) { - const action = this.engine.prepareAction (canvas, { cycle: 'Application' }); - const promise = action.willApply ().then (() => { - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: false }); - }); - }); - - promises.push (promise); - } - - if (promises.length > 0) { - return Promise.all (promises); - } - } - - return Promise.resolve (); - } - - static setup () { - this.engine.history ('canvas'); - this.engine.state ({ - canvas: [] - }); - return Promise.resolve (); - } - - static bind () { - window.addEventListener ('resize', () => { - this.engine.element ().find ('[data-component="canvas-container"][mode="background"], [data-component="canvas-container"][mode="immersive"]').each ((canvasContainer) => { - const { object } = canvasContainer.props; - if (typeof object.resize === 'function') { - Util.callAsync (object.resize, this.engine, canvasContainer.layers, object.props, object.state, canvasContainer); - } - }); - }); - return Promise.resolve (); - } - - static reset () { - const promises = []; - - // Go through each canvas element being shown so it can be properly - // stopped and then removed. - this.engine.element ().find ('[data-component="canvas-container"]').each ((canvasContainer) => { - const { object } = canvasContainer.props; - - promises.push (Util.callAsync (object.stop, this.engine, canvasContainer.layers, object.props, object.state, canvasContainer).then (() => { - canvasContainer.remove (); - })); - }); - - this.engine.history ({ - canvas: [] - }); - - this.engine.state ({ - canvas: [] - }); - - return Promise.all (promises); - } - - static matchString ([ show, type ]) { - return show === 'show' && type === 'canvas'; - } - - static objects (object = null) { - if (object !== null) { - if (typeof object === 'string') { - return Canvas._configuration.objects[object]; - } else { - Canvas._configuration.objects = Object.assign ({}, Canvas._configuration.objects, object); - } - } else { - return Canvas._configuration.objects; - } - } - - /** - * Creates an instance of a Canvas Action - * - * @param {string[]} parameters - List of parameters received from the script statement. - * @param {string} parameters.action - In this case, action will always be 'canvas' - * @param {string} [parameters.mode='displayable'] - Mode in which the canvas element will be shown (displayable, background, immersive) - * @param {string} parameters.mode - */ - constructor ([ show, canvas, name, mode = 'displayable', separator, ...classes ]) { - super (); - - this.mode = mode; - this.name = name; - - if (typeof classes !== 'undefined') { - this.classes = ['animated', ...classes.filter((c) => c !== 'with')]; - } else { - this.classes = []; - } - } - - willApply () { - if (this.constructor._configuration.modes.indexOf (this.mode) === -1) { - FancyError.show ( - `The canvas mode provided ("${this.mode}") is not valid.`, - `Monogatari attempted to show a canvas object but the mode "${this.mode}" was not found in the canvas action configuration as a valid mode.`, - { - 'Mode Provided': this.mode, - 'You may have meant one of these': this.constructor._configuration.modes, - 'Statement': `"${this._statement}"`, - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check your statement and make sure there are no typos on the mode you provided.' - } - } - ); - return Promise.reject ('Invalid canvas mode provided.'); - } - - this.object = Canvas.objects (this.name); - - if (typeof this.object !== 'object') { - FancyError.show ( - `The canvas object "${this.name}" was not found or is invalid`, - `Monogatari attempted to retrieve an object named "${this.name}" but it didn't exist in the canvas objects.`, - { - 'Canvas': this.name, - 'You may have meant': Object.keys (Canvas.objects ()), - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check the object\'s name is correct and that you have defined it previously. A canvas object is defined as follows:', - '_1':` -

-								
-									this.engine.action ('Canvas').objects ({
-										stars: {
-											start: () => {},
-											stop: () => {},
-											restart: () => {},
-											layers: [],
-											state: {},
-											props: {}
-										}
-									});
-								
-							
- `, - '_2': 'Notice the object defined uses a name or an id, in this case it was set to "stars" and to show it, you must use that exact name:', - '_3':` -
"show canvas stars background"
- ` - } - } - ); - - return Promise.reject ('Canvas object did not exist or is invalid'); - } - - this.element = document.createElement ('canvas-container'); - - this.containerSelector = `[data-component="canvas-container"][canvas="${this.name}"][mode="${this.mode}"]`; - - return Promise.resolve (); - - } - - apply () { - const defaultFunction = () => Promise.resolve (); - - this.element.setProps ({ - mode: this.mode, - canvas: this.name, - // We need to pass the object this way so we can clone the state - // property instead of pasing it by reference. Otherwise, any changes - // made to it during execution would be kept there and the next time we - // use the same object, we'll receive the modified state object instead - // of a clean one. - object: { - layers: this.object.layers || ['base'], - props: this.object.props || {}, - state: { ...(this.object.state || {}) }, - start: this.object.start || defaultFunction, - stop: this.object.stop || defaultFunction, - resize: this.object.resize || defaultFunction, - }, - classes: this.classes - }); - - const gameScreen = this.engine.element ().find ('[data-screen="game"]'); - - if (this.mode === 'background') { - gameScreen.find ('[data-ui="background"]').append (this.element); - } else if (this.mode === 'immersive') { - gameScreen.append (this.element); - } else if (this.mode === 'displayable' || this.mode === 'modal' || this.mode === 'character') { - gameScreen.get (0).content ('visuals').append (this.element); - } - - return Promise.resolve (); - } - - didApply ({ updateHistory = true, updateState = true } = {}) { - if (updateHistory === true) { - this.engine.history ('canvas').push (this._statement); - } - - if (updateState === true) { - this.engine.state ('canvas').push (this._statement); - } - - if (this.mode === 'background' || this.mode === 'character' || this.mode === 'displayable') { - return Promise.resolve ({ advance: true }); - } - - return Promise.resolve ({ advance: false }); - } - - willRevert () { - this.containerSelector = `[data-component="canvas-container"][canvas="${this.name}"][mode="${this.mode}"]`; - this.element = document.querySelector (this.containerSelector); - this.object = this.element.props.object; - - return Promise.resolve (); - } - - revert () { - return Util.callAsync (this.element.props.object.stop, this.engine, this.element.layers, this.element.props.object.props, this.element.props.object.state, this.element).then (() => { - this.engine.element ().find (this.containerSelector).remove (); - }); - } - - didRevert () { - for (let i = this.engine.state ('canvas').length - 1; i >= 0; i--) { - const last = this.engine.state ('canvas')[i]; - const [show, canvas, name, mode] = last.split (' '); - if (name === this.name && mode === this.mode) { - this.engine.state ('canvas').splice (i, 1); - break; - } - } - - for (let i = this.engine.history ('canvas').length - 1; i >= 0; i--) { - const last = this.engine.history ('canvas')[i]; - const [show, canvas, name, mode] = last.split (' '); - if (name === this.name) { - this.engine.history ('canvas').splice (i, 1); - break; - } - } - - return Promise.resolve ({ advance: true, step: true }); - } -} - -Canvas.id = 'Canvas'; -Canvas._configuration = { - objects: { - - }, - modes: ['modal', 'displayable', 'immersive', 'background', 'character'] -}; - -export default Canvas; \ No newline at end of file diff --git a/src/actions/Canvas.ts b/src/actions/Canvas.ts new file mode 100644 index 0000000..0a4349d --- /dev/null +++ b/src/actions/Canvas.ts @@ -0,0 +1,282 @@ +import Action from '../lib/Action'; +import Component from '../lib/Component'; +import { Util } from '@aegis-framework/artemis'; +import { FancyError } from './../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types'; + +export class Canvas extends Action { + static override id = 'Canvas'; + + static _configuration: any = { + objects: {}, + modes: ['modal', 'displayable', 'immersive', 'background', 'character'] + }; + + static configuration(object: any = null): any { + if (object === null) { + return Canvas._configuration; + } + + if (typeof object === 'string') { + return Canvas._configuration[object]; + } + + Canvas._configuration = Object.assign({}, Canvas._configuration, object); + } + + static override async shouldProceed(): Promise { + const element = this.engine.element(); + + element.find('[data-component="canvas-container"]').each((element: any) => { + const { mode, canvas } = element.props; + if (['immersive', 'modal'].indexOf(mode) > -1) { + throw new Error(`Canvas "${canvas}" must be removed before proceeding.`); + } + }); + } + + static override async onLoad(): Promise { + const state = this.engine.state('canvas'); + + if (state.length === 0) { + return; + } + + const promises = []; + for (const canvas of state) { + const action: ActionInstance | null = this.engine.prepareAction(canvas, { cycle: 'Application' }); + + if (action === null) { + continue; + } + + const promise = action.willApply().then(() => { + return action.apply().then(() => { + return action.didApply({ updateHistory: false, updateState: false }); + }); + }); + + promises.push(promise); + } + + if (promises.length > 0) { + await Promise.all(promises); + } + } + + static override async setup(): Promise { + this.engine.history('canvas'); + this.engine.state({ + canvas: [] + }); + } + + static override async bind(): Promise { + window.addEventListener('resize', () => { + this.engine.element().find('[data-component="canvas-container"][mode="background"], [data-component="canvas-container"][mode="immersive"]').each((canvasContainer: any) => { + const { object } = canvasContainer.props; + if (typeof object.resize === 'function') { + Util.callAsync(object.resize, this.engine, canvasContainer.layers, object.props, object.state, canvasContainer); + } + }); + }); + } + + static override async reset(): Promise { + const promises: Promise[] = []; + + // Go through each canvas element being shown so it can be properly + // stopped and then removed. + this.engine.element().find('[data-component="canvas-container"]').each((canvasContainer: any) => { + const { object } = canvasContainer.props; + + promises.push(Util.callAsync(object.stop, this.engine, canvasContainer.layers, object.props, object.state, canvasContainer).then(() => { + canvasContainer.remove(); + })); + }); + + this.engine.history({ + canvas: [] + }); + + this.engine.state({ + canvas: [] + }); + + await Promise.all(promises); + } + + static override matchString([show, type]: string[]): boolean { + return show === 'show' && type === 'canvas'; + } + + static objects(object: any = null): any { + if (object === null) { + return Canvas._configuration.objects; + } + + if (typeof object === 'string') { + return Canvas._configuration.objects[object]; + } + + Canvas._configuration.objects = { + ...Canvas._configuration.objects, + ...object + }; + } + + mode: string; + name: string; + classes: string[]; + object: any; + element: any; + containerSelector: string; + + /** + * Creates an instance of a Canvas Action + * + * @param {string[]} parameters - List of parameters received from the script statement. + * @param {string} parameters.action - In this case, action will always be 'canvas' + * @param {string} [parameters.mode='displayable'] - Mode in which the canvas element will be shown (displayable, background, immersive) + * @param {string} parameters.mode + */ + constructor([show, canvas, name, mode = 'displayable', separator, ...classes]: string[]) { + super(); + + this.mode = mode; + this.name = name; + this.containerSelector = ''; + + this.classes = typeof classes !== 'undefined' ? ['animated', ...classes.filter((c) => c !== 'with')] : []; + } + + override async willApply(): Promise { + if (Canvas._configuration.modes.indexOf(this.mode) === -1) { + FancyError.show('action:canvas:invalid_mode', { + mode: this.mode, + validModes: (this.constructor as any)._configuration.modes, + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + return Promise.reject('Invalid canvas mode provided.'); + } + + this.object = Canvas.objects(this.name); + + if (typeof this.object !== 'object') { + FancyError.show('action:canvas:object_not_found', { + name: this.name, + availableObjects: Object.keys(Canvas.objects()), + label: this.engine.state('label'), + step: this.engine.state('step') + }); + + return Promise.reject('Canvas object did not exist or is invalid'); + } + + this.element = document.createElement('canvas-container'); + + this.containerSelector = `[data-component="canvas-container"][canvas="${this.name}"][mode="${this.mode}"]`; + + return Promise.resolve(); + + } + + override async apply(): Promise { + const defaultFunction = () => Promise.resolve(); + + this.element.setProps({ + mode: this.mode, + canvas: this.name, + // We need to pass the object this way so we can clone the state + // property instead of pasing it by reference. Otherwise, any changes + // made to it during execution would be kept there and the next time we + // use the same object, we'll receive the modified state object instead + // of a clean one. + object: { + layers: this.object.layers || ['base'], + props: this.object.props || {}, + state: { ...(this.object.state || {}) }, + start: this.object.start || defaultFunction, + stop: this.object.stop || defaultFunction, + resize: this.object.resize || defaultFunction, + }, + classes: this.classes + }); + + const gameScreen = this.engine.element().find('[data-screen="game"]'); + + if (this.mode === 'background') { + gameScreen.find('[data-ui="background"]').append(this.element); + } else if (this.mode === 'immersive') { + gameScreen.append(this.element); + } else if (this.mode === 'displayable' || this.mode === 'modal' || this.mode === 'character') { + (gameScreen.get(0) as unknown as Component)?.content('visuals')?.append(this.element); + } + } + + override async didApply({ updateHistory = true, updateState = true } = {}): Promise { + const statement = this._statement as string; + if (updateHistory === true) { + this.engine.history('canvas').push(statement); + } + + if (updateState === true) { + this.engine.state({ + canvas: [...this.engine.state('canvas'), statement] + }); + } + + if (this.mode === 'background' || this.mode === 'character' || this.mode === 'displayable') { + return { advance: true }; + } + + return { advance: false }; + } + + override async willRevert(): Promise { + this.containerSelector = `[data-component="canvas-container"][canvas="${this.name}"][mode="${this.mode}"]`; + this.element = document.querySelector(this.containerSelector); + + if (this.element === null) { + throw new Error(`Canvas element "${this.name}" (mode: ${this.mode}) not found in the DOM.`); + } + + this.object = this.element.props.object; + } + + override async revert(): Promise { + await Util.callAsync(this.element.props.object.stop, this.engine, this.element.layers, this.element.props.object.props, this.element.props.object.state, this.element); + this.engine.element().find(this.containerSelector).remove(); + } + + override async didRevert(): Promise { + let foundState = false; + this.engine.state({ + canvas: this.engine.state('canvas').filter((item: string) => { + if (!foundState) { + const [, , name, mode] = item.split(' '); + if (name === this.name && mode === this.mode) { + foundState = true; + return false; + } + } + return true; + }) + }); + + const history = this.engine.history('canvas') as string[]; + for (let i = history.length - 1; i >= 0; i--) { + const [, , name] = history[i].split(' '); + if (name === this.name) { + history.splice(i, 1); + break; + } + } + + return { advance: true, step: true }; + } +} + +export default Canvas; \ No newline at end of file diff --git a/src/actions/Choice.js b/src/actions/Choice.js deleted file mode 100644 index a375d72..0000000 --- a/src/actions/Choice.js +++ /dev/null @@ -1,273 +0,0 @@ -import { Action } from '../lib/Action'; -import { Util } from '@aegis-framework/artemis'; - -export class Choice extends Action { - - static setup () { - this.engine.global ('_CurrentChoice', []); - this.engine.global ('_ChoiceTimer', []); - - this.engine.global ('_choice_pending_rollback', []); - this.engine.global ('_choice_just_rolled_back', []); - - this.engine.history ('choice'); - - return Promise.resolve (); - } - - - static afterRevert () { - // When a choice gets reverted, it pushes a `true` value to this global variable. - // As soon as it gets reverted, this function is run and it pops the `true` out of - // the array, meaning it was just reverted and the choice should be showing on screeen again. - if (this.engine.global ('_choice_just_rolled_back').pop ()) { - return Promise.resolve (); - } - - // If the player reverts once more while the choice is being shown, then we'll reach this part - // and we can clean up any variables we need to. - if (this.engine.global ('_choice_pending_rollback').pop ()) { - this.engine.global ('_ChoiceTimer').pop (); - } - return Promise.resolve (); - } - - static bind () { - const engine = this.engine; - // Bind the click event on data-do elements. This property is used for - // every choice button. - this.engine.on ('click', '[data-choice]:not([disabled])', function (event) { - engine.debug.debug ('Registered Click on Choice Button'); - event.stopImmediatePropagation (); - event.stopPropagation (); - event.preventDefault (); - - engine.global ('block', false); - - let doAction = this.dataset.do; - - // Check that the data property was not created with - // a null property - if (doAction != 'null') { - - // Remove all the choices - engine.element ().find ('choice-container').remove (); - - const choice = this.dataset.choice; - - const current = engine.global ('_CurrentChoice').pop().Choice; - - if (typeof current.Timer !== 'undefined') { - const timer = engine.global ('_ChoiceTimer').pop (); - engine.global ('_choice_pending_rollback').pop (); - if (typeof timer !== 'undefined') { - clearTimeout (timer.props.timer); - if (timer.parentNode !== null) { - timer.element ().remove (); - } - } - } - - if (current) { - doAction = current[choice].Do; - } - - const run = () => { - engine.global ('_executing_sub_action', true); - engine.run (doAction).then ((result) => { - engine.global ('_executing_sub_action', false); - engine.history ('choice').push (choice); - - return Promise.resolve (result); - }); - }; - - // Remove the reference to the current choice object - if (current) { - if (current[choice] !== 'undefined') { - if (typeof current[choice].onChosen === 'function') { - return Util.callAsync (current[choice].onChosen, engine).then (() => { - run (); - }); - } - } - } - run (); - } - }); - return Promise.resolve (); - } - - static reset () { - this.engine.global ('_CurrentChoice', []); - this.engine.global ('_ChoiceTimer', []); - - this.engine.global ('_choice_pending_rollback', []); - this.engine.global ('_choice_just_rolled_back', []); - return Promise.resolve (); - } - - static matchObject (statement) { - return typeof statement.Choice !== 'undefined'; - } - - constructor (statement) { - super (); - - this.statement = statement.Choice; - - this.result = { advance: false, step: false }; - } - - apply ({ updateLog = true } = {}) { - this.engine.global ('block', true); - - // Save a reference to the choice object globally. Since the choice buttons - // are set a data-do property to know what the choice should do, it is - // limited to a string and thus object or function actions would not be - // able to be used in choices. - this.engine.global ('_CurrentChoice').push (this._statement); - - const promises = []; - - // Go over all the objects defined in the choice object which should be - // call the options to chose from or the string to show as dialog - for (const i in this.statement) { - const choice = this.statement[i]; - - // Check if the option is an object (a option to choose from) or - // if it's text (dialog to be shown) - if (typeof choice == 'object') { - if (i === 'Timer') { - continue; - } - - this.statement[i]._key = i; - - // Check if the current option has a condition to be shown - if (typeof choice.Condition !== 'undefined' && choice.Condition !== '') { - promises.push ( - new Promise ((resolve) => { - // First check if the condition is met before we add the button - this.engine.assertAsync (this.statement[i].Condition, this.engine).then (() => { - resolve (this.statement[i]); - }).catch (() => { - resolve (); - }).finally (() => { - //this.engine.global ('block', false); - }); - }) - ); - } else { - promises.push (Promise.resolve (this.statement[i])); - } - } - } - - return Promise.all (promises).then ((choices) => { - const element = document.createElement ('choice-container'); - - // Check if the choice object defined a list of class names - const classes = typeof this.statement.Class === 'string' ? this.statement.Class.trim () : ''; - - element.setProps ({ - choices: choices.filter(c => typeof c !== 'undefined'), - classes - }); - - const dialog = this.statement.Dialog; - const timer = this.statement.Timer; - const textBox = this.engine.element ().find ('[data-component="text-box"]').get (0); - - let promise = Promise.resolve (); - - if (typeof dialog === 'string') { - // If there's a dialog, we'll wait until showing that up to show - // the choices, in order to avoid showing the choices in an incorrect - // format if the dialog was NVL or not - const action = this.engine.prepareAction (dialog, { cycle: 'Application' }); - promise = action.willApply ().then (() => { - return action.apply ({ updateLog }).then (() => { - return action.didApply (); - }); - }); - } - - return promise.then (() => { - if (textBox.props.mode === 'nvl') { - textBox.content ('text').append (element); - } else { - this.engine.element ().find ('[data-screen="game"]').append (element); - } - - if (typeof timer === 'object') { - const timer_display = document.createElement ('timer-display'); - timer_display.setProps (timer); - this.engine.global ('_ChoiceTimer').push(timer_display); - this.engine.global ('_choice_pending_rollback').push (true); - this.engine.element ().find ('[data-screen="game"]').prepend (timer_display); - } - }); - }); - } - - willRevert () { - if (this.engine.history ('choice').length > 0) { - const choice = this.engine.history ('choice')[this.engine.history ('choice').length - 1]; - if (this.statement[choice] !== 'undefined') { - - // Check if the choice had an onChosen function with it's matching - // onRevert functionality, or if no onChosen function was provided - // which are the only cases where it can be reverted. - const functionReversible = (typeof this.statement[choice].onRevert === 'function' && typeof this.statement[choice].onChosen === 'function') || typeof this.statement[choice].onChosen !== 'function'; - - if (functionReversible) { - return Promise.resolve (); - } else { - return Promise.reject ('The choice taken is not reversible because it did not defined a `onRevert` function.'); - } - } - } - return Promise.reject ('Choice history was empty'); - } - - revert () { - const choice = this.engine.history ('choice')[this.engine.history ('choice').length - 1]; - - - return this.engine.revert (this.statement[choice].Do, false).then (() => { - if (typeof this.statement[choice].onRevert === 'function') { - return Util.callAsync (this.statement[choice].onRevert, this.engine); - } - return Promise.resolve (); - }).then (() => { - if (typeof this.statement.Timer === 'object' && this.statement.Timer !== null) { - this.engine.global ('_ChoiceTimer').pop (); - } - - if (typeof this.statement.Dialog === 'string') { - const dialogLog = this.engine.component ('dialog-log'); - if (typeof dialogLog !== 'undefined') { - dialogLog.instances (instance => instance.pop ()); - } - } - - const action = this.engine.prepareAction (this._statement, { cycle: 'Application' }); - return action.willApply ().then (() => { - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: false }); - }); - }); - }); - } - - didRevert () { - this.engine.global ('_choice_just_rolled_back').push (true); - this.engine.history ('choice').pop (); - return Promise.resolve ({ advance: false, step: false }); - } -} - -Choice.id = 'Choice'; - -export default Choice; \ No newline at end of file diff --git a/src/actions/Choice.ts b/src/actions/Choice.ts new file mode 100644 index 0000000..8c94fce --- /dev/null +++ b/src/actions/Choice.ts @@ -0,0 +1,304 @@ +import Action from '../lib/Action'; +import { Util } from '@aegis-framework/artemis'; +import { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types'; + +export class Choice extends Action { + static override id = 'Choice'; + + static override blocking = false; + + static override async setup(): Promise { + this.engine.globals({ + _CurrentChoice: [], + _ChoiceTimer: [], + _choice_pending_rollback: [], + _choice_just_rolled_back: [], + }); + + this.engine.history('choice'); + } + + static override async bind(): Promise { + const engine = this.engine; + // Bind the click event on data-do elements. This property is used for + // every choice button. + this.engine.on('click', '[data-choice]:not([disabled])', function (this: HTMLElement, event: Event) { + engine.debug.debug('Registered Click on Choice Button'); + event.stopImmediatePropagation(); + event.stopPropagation(); + event.preventDefault(); + + let doAction = this.dataset.do; + + // Check that the data property was not created with + // a null property + if (doAction == 'null') { + Choice.blocking = false; + return; + } + + // Remove all the choices + engine.element().find('choice-container').remove(); + + const choice = this.dataset.choice; + + const currentChoice = (engine.global('_CurrentChoice') as unknown[]).pop() as { Choice: Record void }> } | undefined; + const current = currentChoice?.Choice; + + if (current && typeof current.Timer !== 'undefined') { + const timer = (engine.global('_ChoiceTimer') as unknown[]).pop() as HTMLElement & { props?: { timer: ReturnType }; element?: () => { remove: () => void } } | undefined; + (engine.global('_choice_pending_rollback') as boolean[]).pop(); + if (typeof timer !== 'undefined' && timer.props) { + clearTimeout(timer.props.timer); + if (timer.parentNode !== null && timer.element) { + timer.element().remove(); + } + } + } + + const currentChoiceExists = current && typeof choice !== 'undefined' && typeof current[choice] !== 'undefined'; + + if (currentChoiceExists) { + doAction = current[choice].Do; + } + + const run = async () => { + if (typeof doAction === 'string' && typeof choice === 'string') { + const result = await engine.run(doAction); + + Choice.blocking = false; + engine.history('choice').push(choice); + + return result; + } + }; + + if (currentChoiceExists && typeof current[choice].onChosen === 'function') { + Util.callAsync(current[choice].onChosen, engine).then(() => { + return run(); + }).catch((e) => { + Choice.blocking = false; + engine.debug.error(e); + }); + + return; + } + + run().catch((e) => { + Choice.blocking = false; + engine.debug.error(e); + }); + }); + } + + static override async reset(): Promise { + const engine = this.engine; + engine.globals({ + _CurrentChoice: [], + _ChoiceTimer: [], + + _choice_pending_rollback: [], + _choice_just_rolled_back: [], + }); + } + + static override async afterRevert(): Promise { + const engine = this.engine; + // When a choice gets reverted, it pushes a `true` value to this global variable. + // As soon as it gets reverted, this function is run and it pops the `true` out of + // the array, meaning it was just reverted and the choice should be showing on screeen again. + if (engine.global('_choice_just_rolled_back').pop()) { + return; + } + + // If the player reverts once more while the choice is being shown, then we'll reach this part + // and we can clean up any variables we need to. + if (engine.global('_choice_pending_rollback').pop()) { + engine.global('_ChoiceTimer').pop(); + } + } + + static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise { + if (Choice.blocking) { + throw new Error('Choice is waiting for input'); + } + } + + static override async willRollback(): Promise { + Choice.blocking = false; + } + + static override matchObject(statement: any): boolean { + return typeof statement.Choice !== 'undefined'; + } + + statement: any; + result: ActionApplyResult; // Not strictly used as property but was in original + + constructor(statement: any) { + super(); + + this.statement = statement.Choice; + + this.result = { advance: false }; + } + + override async apply({ updateLog = true } = {}): Promise { + Choice.blocking = true; + + // Save a reference to the choice object globally. Since the choice buttons + // are set a data-do property to know what the choice should do, it is + // limited to a string and thus object or function actions would not be + // able to be used in choices. + this.engine.global('_CurrentChoice').push(this._statement); + + const promises: Promise[] = []; + + // Go over all the objects defined in the choice object which should be + // call the options to chose from or the string to show as dialog + for (const i in this.statement) { + const choice = this.statement[i]; + + // Check if the option is an object (a option to choose from) or + // if it's text (dialog to be shown) + if (typeof choice == 'object') { + if (i === 'Timer') { + continue; + } + + this.statement[i]._key = i; + + // Check if the current option has a condition to be shown + if (typeof choice.Condition !== 'undefined' && choice.Condition !== '') { + promises.push( + new Promise((resolve) => { + // First check if the condition is met before we add the button + this.engine.assertAsync(this.statement[i].Condition, this.engine).then(() => { + resolve(this.statement[i]); + }).catch(() => { + resolve(undefined); + }); + }) + ); + } else { + promises.push(Promise.resolve(this.statement[i])); + } + } + } + + const choices = await Promise.all(promises); + const element = document.createElement('choice-container'); + + // Check if the choice object defined a list of class names + const classes = typeof this.statement.Class === 'string' ? this.statement.Class.trim() : ''; + + (element as any).setProps({ + choices: choices.filter(c => typeof c !== 'undefined'), + classes + }); + + const dialog = this.statement.Dialog; + const timer = this.statement.Timer; + const textBox = this.engine.element().find('[data-component="text-box"]').get(0); + + if (typeof dialog === 'string') { + // If there's a dialog, we'll wait until showing that up to show + // the choices, in order to avoid showing the choices in an incorrect + // format if the dialog was NVL or not + const action = this.engine.prepareAction(dialog, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + await action.willApply(); + await action.apply({ updateLog }); + await action.didApply(); + } + } + + const textBoxEl = textBox as HTMLElement & { props?: { mode: string }; content?: (name: string) => { append: (el: HTMLElement) => void } }; + if (textBoxEl?.props?.mode === 'nvl' && textBoxEl.content) { + textBoxEl.content('text').append(element); + } else { + this.engine.element().find('[data-screen="game"]').append(element); + } + + if (typeof timer === 'object') { + const timer_display = document.createElement('timer-display'); + (timer_display as any).setProps(timer); + this.engine.global('_ChoiceTimer').push(timer_display); + this.engine.global('_choice_pending_rollback').push(true); + this.engine.element().find('[data-screen="game"]').prepend(timer_display); + } + } + + override async willRevert(): Promise { + if (this.engine.history('choice').length > 0) { + const choice = this.engine.history('choice')[this.engine.history('choice').length - 1]; + if (typeof this.statement[choice] !== 'undefined') { + + // Check if the choice had an onChosen function with it's matching + // onRevert functionality, or if no onChosen function was provided + // which are the only cases where it can be reverted. + const functionReversible = (typeof this.statement[choice].onRevert === 'function' && typeof this.statement[choice].onChosen === 'function') || typeof this.statement[choice].onChosen !== 'function'; + + if (functionReversible) { + return Promise.resolve(); + } else { + return Promise.reject('The choice taken is not reversible because it did not defined a `onRevert` function.'); + } + } + } + return Promise.reject('Choice history was empty'); + } + + override async revert(): Promise { + const choice = this.engine.history('choice')[this.engine.history('choice').length - 1]; + + // First, revert the action that was chosen + const chosenOption = this.statement[choice]; + if (chosenOption && typeof chosenOption.Do === 'string') { + await this.engine.revert(chosenOption.Do, false); + } + if (chosenOption && typeof chosenOption.onRevert === 'function') { + await Util.callAsync(chosenOption.onRevert, this.engine); + } + + // Clean up timer if it exists + if (typeof this.statement.Timer === 'object' && this.statement.Timer !== null) { + this.engine.global('_ChoiceTimer').pop(); + } + + // If there was a dialog, revert it first + if (typeof this.statement.Dialog === 'string') { + const dialogLog = this.engine.component('dialog-log') as { instances?: (callback: (instance: { pop: () => void }) => void) => void } | undefined; + if (typeof dialogLog !== 'undefined' && dialogLog.instances) { + dialogLog.instances((instance) => instance.pop()); + } + + // // Revert the dialog that was shown with the choice + // const dialogAction = this.engine.prepareAction (this.statement.Dialog, { cycle: 'Revert' }); + // return dialogAction.willRevert ().then (() => { + // return dialogAction.revert ().then (() => { + // return dialogAction.didRevert (); + // }); + // }); + } + + // Remove any existing choice container before re-applying + this.engine.element().find('choice-container').remove(); + + // Now re-apply the choice to show it again + const action = this.engine.prepareAction(this._statement as unknown as string | Record, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: false }); + } + } + + override async didRevert(): Promise { + this.engine.global('_choice_just_rolled_back').push(true); + this.engine.history('choice').pop(); + return { advance: false, step: false }; + } +} + +export default Choice; \ No newline at end of file diff --git a/src/actions/Clear.js b/src/actions/Clear.js deleted file mode 100644 index 289abf1..0000000 --- a/src/actions/Clear.js +++ /dev/null @@ -1,49 +0,0 @@ -import { Action } from './../lib/Action'; - -export class Clear extends Action { - - static setup () { - this.engine.history ('clear'); - return Promise.resolve (); - } - - static matchString ([ action ]) { - return action === 'clear'; - } - - apply () { - this.engine.action ('Dialog').reset ({ keepNVL: true, saveNVL: true }); - return Promise.resolve (); - } - - didApply () { - const textBox = this.engine.element ().find ('[data-component="text-box"]').get (0); - this.engine.history ('clear').push (textBox.props.mode); - return Promise.resolve ({ advance: true }); - } - - willRevert () { - if (this.engine.history ('clear').length > 0) { - return Promise.resolve (); - } - return Promise.reject ('No items left on the clear history to revert it.'); - } - - revert () { - const last = this.engine.history ('clear').pop (); - - if (last === 'nvl') { - this.engine.global ('_should_restore_nvl', true); - } - - return Promise.resolve (); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -Clear.id = 'Clear'; - -export default Clear; \ No newline at end of file diff --git a/src/actions/Clear.ts b/src/actions/Clear.ts new file mode 100644 index 0000000..6546d81 --- /dev/null +++ b/src/actions/Clear.ts @@ -0,0 +1,52 @@ +import Action from './../lib/Action'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + +export class Clear extends Action { + static override id = 'Clear'; + + static override async setup(): Promise { + this.engine.history('clear'); + } + + static override matchString([action]: string[]): boolean { + return action === 'clear'; + } + + override async apply(): Promise { + const dialogAction = this.engine.action('Dialog'); + + if (dialogAction) { + dialogAction.reset({ keepNVL: true, saveNVL: true }); + } + } + + override async didApply(): Promise { + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as any; + + this.engine.history('clear').push(textBox.props.mode); + + return { advance: true }; + } + + override async willRevert(): Promise { + if (this.engine.history('clear').length > 0) { + return; + } + + throw new Error('No items left on the clear history to revert it.'); + } + + override async revert(): Promise { + const last = this.engine.history('clear').pop(); + + if (last === 'nvl') { + this.engine.global('_should_restore_nvl', true); + } + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default Clear; \ No newline at end of file diff --git a/src/actions/Conditional.js b/src/actions/Conditional.js deleted file mode 100644 index 67d9d0d..0000000 --- a/src/actions/Conditional.js +++ /dev/null @@ -1,206 +0,0 @@ -import { Action } from '../lib/Action'; -import { Util } from '@aegis-framework/artemis'; -import { FancyError } from '../lib/FancyError'; - -export class Conditional extends Action { - - static setup () { - // In here we'll save up what branch was taken every time we execute a - // conditional. - this.engine.history ('conditional'); - - // Whether a conditional that was run is pending rollback on the next time - // a revert is issued. - this.engine.global ('_conditional_pending_rollback', []); - - // Whether a conditional was just reverted - this.engine.global ('_conditional_just_rolled_back', []); - - return Promise.resolve(); - } - - static reset () { - // Whether a conditional that was run is pending rollback on the next time - // a revert is issued. - this.engine.global ('_conditional_pending_rollback', []); - - // Whether a conditional was just reverted - this.engine.global ('_conditional_just_rolled_back', []); - - return Promise.resolve(); - } - - static matchObject (statement) { - return typeof statement.Conditional !== 'undefined'; - } - - static afterRevert ({ advance, step }) { - // Prevent modifying the history if the action that was just reverted was - // this conditional - if (this.engine.global ('_conditional_just_rolled_back').pop ()) { - return Promise.resolve (); - } - - while (this.engine.global ('_conditional_pending_rollback').pop ()) { - const currentStatement = this.engine.label () [this.engine.state ('step')]; - if (typeof currentStatement !== 'undefined') { - if (typeof currentStatement.Conditional === 'object') { - this.engine.history ('conditional').pop (); - } - } - } - - return Promise.resolve (); - } - - static beforeRun () { - // const restoringState = this.engine.global ('_restoring_state'); - - // if (!restoringState) { - this.engine.global ('_conditional_pending_rollback').pop (); - // } - - return Promise.resolve (); - } - - constructor (statement) { - super (); - this.statement = statement.Conditional; - this.branch = ''; - this.result = { advance: true, step: false }; - } - - apply () { - return new Promise ((resolve, reject) => { - - // Call the condition function. Since the function might use a - // Promise.reject () to return as false, we also define a catch - // block to run the False branch of the condition. - Util.callAsync (this.statement.Condition, this.engine).then ((returnValue) => { - this.engine.global ('_executing_sub_action', true); - - if (typeof returnValue === 'number') { - if (returnValue < 0) { - FancyError.show ( - `Conditional condition returned a negative numer "${returnValue}".`, - `The \`Condition\` function returned "${returnValue}" and only positive numbers are allowed for numeric values.`, - { - 'Problematic Value': returnValue, - 'You may have meant one of these': Object.keys(this.statement).filter (b => b !== 'Condition') - } - ); - reject ('Invalid negative value'); - } - - if (!Number.isInteger(returnValue)) { - FancyError.show ( - `Conditional condition returned a non-integer value "${returnValue}".`, - `The \`Condition\` function returned "${returnValue}" and only integer numbers are allowed for numeric values.`, - { - 'Problematic Value': returnValue, - 'You may have meant one of these': Object.keys(this.statement).filter (b => b !== 'Condition') - } - ); - reject ('Invalid non-integer value'); - } - - returnValue = `${returnValue}`; - } - - // Check if the function returned true so we run the True branch - // of the conditional. If false is returned, we run the False - // branch of the conditional and if a string is returned, we use - // it as a key so we run the branch that has that key - if (returnValue === true) { - this.branch = 'True'; - resolve (this.engine.run (this.statement.True).then ((result) => { - this.engine.global ('_executing_sub_action', false); - this.result = result; - return Promise.resolve (result); - })); - } else if (typeof returnValue === 'string') { - const branch = this.statement[returnValue]; - - if (typeof branch === 'undefined') { - FancyError.show ( - `Conditional attempted to execute a non existent branch "${returnValue}"`, - `The \`Condition\` function returned "${returnValue}" as the branch to execute but it does not exist.`, - { - 'Problematic Branch': returnValue, - 'You may have meant one of these': Object.keys(this.statement).filter (b => b !== 'Condition') - } - ); - reject ('Non existent branch'); - } - - this.branch = returnValue; - resolve (this.engine.run (branch).then ((result) => { - this.engine.global ('_executing_sub_action', false); - this.result = result; - return Promise.resolve (result); - })); - } else { - this.branch = 'False'; - resolve (this.engine.run (this.statement.False).then ((result) => { - this.engine.global ('_executing_sub_action', false); - this.result = result; - return Promise.resolve (result); - })); - } - }).catch (() => { - this.branch = 'False'; - resolve (this.engine.run (this.statement.False).then ((result) => { - this.engine.global ('_executing_sub_action', false); - this.result = result; - return Promise.resolve (result); - })); - }); - }); - } - - didApply () { - // const restoringState = this.engine.global ('_restoring_state'); - - // if (!restoringState) { - if (!this.result.advance) { - this.engine.global ('_conditional_pending_rollback').push (true); - } - - this.engine.history ('conditional').push (this.branch); - // } - - this.engine.global ('_executing_sub_action', false); - - return Promise.resolve ({ advance: false }); - } - - willRevert () { - if (this.engine.history ('conditional').length > 0) { - const conditional = this.engine.history ('conditional')[this.engine.history ('conditional').length - 1]; - if (this.statement[conditional] !== 'undefined') { - return Promise.resolve (); - } - } - return Promise.reject ('Conditional history was empty.'); - } - - revert () { - const conditional = this.engine.history ('conditional')[this.engine.history ('conditional').length - 1]; - this.engine.global ('_executing_sub_action', true); - return this.engine.revert (this.statement[conditional]).then ((result) => { - this.engine.global ('_executing_sub_action', false); - this.result = result; - return Promise.resolve (result); - }); - } - - didRevert () { - this.engine.global ('_conditional_pending_rollback').push (true); - this.engine.global ('_conditional_just_rolled_back').push (true); - return Promise.resolve ({ advance: false, step: false }); - } -} - -Conditional.id = 'Conditional'; - -export default Conditional; \ No newline at end of file diff --git a/src/actions/Conditional.ts b/src/actions/Conditional.ts new file mode 100644 index 0000000..9491810 --- /dev/null +++ b/src/actions/Conditional.ts @@ -0,0 +1,206 @@ +import Action from '../lib/Action'; +import { Util } from '@aegis-framework/artemis'; +import { FancyError } from '../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + +export class Conditional extends Action { + static override id = 'Conditional'; + static override blocking = false; + + static override async setup(): Promise { + // In here we'll save up what branch was taken every time we execute a + // conditional. + this.engine.history('conditional'); + + // Whether a conditional that was run is pending rollback on the next time + // a revert is issued. + this.engine.global('_conditional_pending_rollback', []); + + // Whether a conditional was just reverted + this.engine.global('_conditional_just_rolled_back', []); + } + + static override async reset(): Promise { + // Whether a conditional that was run is pending rollback on the next time + // a revert is issued. + this.engine.global('_conditional_pending_rollback', []); + + // Whether a conditional was just reverted + this.engine.global('_conditional_just_rolled_back', []); + } + + static override matchObject(statement: any): boolean { + return typeof statement.Conditional !== 'undefined'; + } + + static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise { + if (Conditional.blocking) { + throw new Error('Contitional is still running action'); + } + } + + static override async willRollback(): Promise { + Conditional.blocking = false; + } + + static override async afterRevert(): Promise { + // Prevent modifying the history if the action that was just reverted was + // this conditional + const justRolledBack = this.engine.global('_conditional_just_rolled_back'); + if (justRolledBack.pop()) { + return Promise.resolve(); + } + + const pendingRollback = this.engine.global('_conditional_pending_rollback'); + while (pendingRollback.pop()) { + const currentStatement = this.engine.label()[this.engine.state('step') as number] as { Conditional?: object } | undefined; + if (typeof currentStatement !== 'undefined' && currentStatement !== null) { + if (typeof currentStatement.Conditional === 'object') { + this.engine.history('conditional').pop(); + } + } + } + } + + static override async beforeRun(): Promise { + // const restoringState = this.engine.global ('_restoring_state'); + + // if (!restoringState) { + const pendingRollback = this.engine.global('_conditional_pending_rollback'); + pendingRollback.pop(); + // } + } + + statement: any; + branch: string; + result: { advance: boolean; step: boolean }; + + constructor(statement: any) { + super(); + this.statement = statement.Conditional; + this.branch = ''; + this.result = { advance: true, step: false }; + } + + override async apply(): Promise { + // Call the condition function. Since the function might use a + // Promise.reject () to return as false, we also define a catch + // block to run the False branch of the condition. + try { + let returnValue = await Util.callAsync(this.statement.Condition, this.engine); + Conditional.blocking = true; + + if (typeof returnValue === 'number') { + if (returnValue < 0) { + FancyError.show('action:conditional:negative_value', { + value: returnValue, + availableBranches: Object.keys(this.statement).filter(b => b !== 'Condition') + }); + throw new Error('Invalid negative value'); + } + + if (!Number.isInteger(returnValue)) { + FancyError.show('action:conditional:non_integer_value', { + value: returnValue, + availableBranches: Object.keys(this.statement).filter(b => b !== 'Condition') + }); + throw new Error('Invalid non-integer value'); + } + + returnValue = `${returnValue}`; + } + + // Check if the function returned true so we run the True branch + // of the conditional. If false is returned, we run the False + // branch of the conditional and if a string is returned, we use + // it as a key so we run the branch that has that key + if (returnValue === true) { + this.branch = 'True'; + const runResult = await this.engine.run(this.statement.True); + this.result = { ...runResult, step: false }; + Conditional.blocking = false; + } else if (typeof returnValue === 'string') { + const branch = this.statement[returnValue]; + + if (typeof branch === 'undefined') { + FancyError.show('action:conditional:branch_not_found', { + branch: returnValue, + availableBranches: Object.keys(this.statement).filter(b => b !== 'Condition') + }); + throw new Error('Non existent branch'); + } + + this.branch = returnValue; + const runResult = await this.engine.run(branch); + this.result = { ...runResult, step: false }; + Conditional.blocking = false; + } else { + this.branch = 'False'; + const runResult = await this.engine.run(this.statement.False); + this.result = { ...runResult, step: false }; + Conditional.blocking = false; + } + } catch (e) { + this.branch = 'False'; + const runResult = await this.engine.run(this.statement.False); + this.result = { ...runResult, step: false }; + Conditional.blocking = false; + } + } + + override async didApply({ updateHistory = true } = {}): Promise { + // const restoringState = this.engine.global ('_restoring_state'); + + // if (!restoringState) { + if (!this.result.advance) { + const pendingRollback = this.engine.global('_conditional_pending_rollback') as boolean[]; + pendingRollback.push(true); + } + + if (updateHistory) { + (this.engine.history('conditional') as string[]).push(this.branch); + } + // } + + Conditional.blocking = false; + + return { advance: false }; + } + + override async willRevert(): Promise { + const conditionalHistory = this.engine.history('conditional') as string[]; + if (conditionalHistory.length > 0) { + const conditional = conditionalHistory[conditionalHistory.length - 1]; + if (typeof this.statement[conditional] !== 'undefined') { + return Promise.resolve(); + } + } + throw new Error('Conditional history was empty.'); + } + + override async revert(): Promise { + const conditionalHistory = this.engine.history('conditional') as string[]; + const conditional = conditionalHistory[conditionalHistory.length - 1]; + + Conditional.blocking = true; + + const revertResult = await this.engine.revert(this.statement[conditional]); + if (revertResult) { + this.result = revertResult; + } + + Conditional.blocking = false; + } + + override async didRevert(): Promise { + const pendingRollback = this.engine.global('_conditional_pending_rollback'); + const justRolledBack = this.engine.global('_conditional_just_rolled_back'); + + pendingRollback.push(true); + justRolledBack.push(true); + + return { advance: false, step: false }; + } +} + +export default Conditional; \ No newline at end of file diff --git a/src/actions/Dialog.js b/src/actions/Dialog.js deleted file mode 100644 index bb9bc3a..0000000 --- a/src/actions/Dialog.js +++ /dev/null @@ -1,483 +0,0 @@ -import { Action } from './../lib/Action'; -import Typed from './../lib/vendor/typed.min.js'; -import { $_ } from '@aegis-framework/artemis'; - -export class Dialog extends Action { - - static shouldProceed () { - // Check if the type animation has finished and the Typed object still exists - if (!this.engine.global ('finished_typing') && this.engine.global ('textObject') !== null) { - - // Get the string it was typing - const str = this.engine.global ('textObject').strings [0]; - - // Get the element it was typing to - const element = this.engine.global ('textObject').el; - this.engine.global ('textObject').destroy (); - - element.innerHTML = str.replace (/\{pause:(\d+)\}/g, '').replace (/\{speed:(\d+)\}/g, ''); - - this.engine.global ('finished_typing', true); - - this.engine.trigger ('didFinishTyping'); - - return Promise.reject ('TypeWriter effect has not finished.'); - } - - return Promise.resolve (this.engine.global ('finished_typing')); - } - - static willProceed () { - const centeredDialog = this.engine.element ().find ('[data-component="centered-dialog"]'); - if (centeredDialog.isVisible ()) { - centeredDialog.remove (); - } - - this.engine.global ('_dialog_pending_revert', false); - - return Promise.resolve (this.engine.global ('finished_typing')); - } - - static willRollback () { - const textBox = this.engine.element ().find ('[data-component="text-box"]').get (0); - if (this.engine.global ('textObject') !== null && textBox.props.mode !== 'nvl') { - this.engine.global ('textObject').destroy (); - } - - this.engine.global ('finished_typing', true); - - // this.engine.global ('_CurrentChoice'); - - this.engine.element ().find ('[data-component="text-box"]').get (0).show (); - - const dialogLog = this.engine.component ('dialog-log'); - - const centeredDialog = this.engine.element ().find ('[data-component="centered-dialog"]'); - if (centeredDialog.isVisible ()) { - centeredDialog.remove (); - this.engine.element ().find ('[data-component="text-box"]').get (0).show (); - } - - document.querySelector ('[data-ui="who"]').innerHTML = ''; - - if (typeof dialogLog !== 'undefined' && this.engine.global ('_dialog_pending_revert') === true) { - dialogLog.instances (instance => instance.pop ()); - this.engine.global ('_dialog_pending_revert', false); - } - return Promise.resolve (); - } - - static setup () { - this.engine.globals ({ - textObject: null, - finished_typing: false, - typedConfiguration: { - strings: [], - typeSpeed: this.engine.preference ('TextSpeed'), - fadeOut: true, - loop: false, - showCursor: false, - contentType: 'html', - preStringTyped: () => { - this.engine.global ('finished_typing', false); - }, - onStringTyped: () => { - this.engine.global ('finished_typing', true); - this.engine.trigger ('didFinishTyping'); - }, - onDestroy: () => { - this.engine.global ('finished_typing', true); - } - }, - _dialog_pending_revert: false, - }); - - // The NVL mode has its own history so that when going back, all dialogs - // that were shown on screen can be shown again instead of just showing - // the last one. - this.engine.history ('nvl'); - - return Promise.resolve (); - } - - static bind (selector) { - const self = this; - - // Add listener for the text speed setting - $_(`${selector} [data-action="set-text-speed"]`).on ('change mouseover', function () { - const value = self.engine.setting ('maxTextSpeed') - parseInt(this.value); - self.engine.global ('typedConfiguration').typeSpeed = value; - self.engine.preference ('TextSpeed', value); - }); - - // Detect scroll on the text element to remove the unread class used when - // there's text not being shown in NVL mode. - $_(`${selector} [data-component="text-box"] [data-content="text"]`).on ('scroll', () => { - const text_box = this.engine.element ().find ('[data-component="text-box"]'); - if (text_box.exists ()) { - if (typeof text_box.get (0).checkUnread === 'function') { - text_box.get (0).checkUnread (); - } - } - }); - return Promise.resolve (); - } - - static init (selector) { - // Remove the Text Speed setting if the type animation was disabled - if (this.engine.setting ('TypeAnimation') === false) { - $_(`${selector} [data-settings="text-speed"]`).hide (); - } - - this.engine.setting ('maxTextSpeed', parseInt ($_(`${selector} [data-action="set-text-speed"]`).property ('max'))); - - return Promise.resolve (); - } - - static reset ({ keepNVL = false, saveNVL = false } = {}) { - const textBox = this.engine.element ().find ('[data-component="text-box"]').get (0); - - if (saveNVL === true && textBox.props.mode === 'nvl') { - this.engine.history ('nvl').push (textBox.content ('dialog').html ()); - } - - if (keepNVL !== true) { - textBox.setProps ({ mode: 'adv' }); - } - - if (this.engine.global ('textObject') !== null) { - this.engine.global ('textObject').destroy (); - } - - this.engine.element ().find ('[data-component="text-box"]').data ('speaking', ''); - - this.engine.element ().find ('[data-ui="who"]').style ('color', ''); - - this.engine.element ().find ('[data-ui="who"]').html (''); - this.engine.element ().find ('[data-ui="say"]').html (''); - - this.engine.element ().find ('[data-ui="face"]').attribute ('src', ''); - this.engine.element ().find ('[data-ui="face"]').hide (); - - return Promise.resolve (); - } - - static matchString () { - return true; - } - - constructor ([ character, ...dialog ]) { - super (); - - const [ id, expression ] = character.split (':'); - - this.dialog = dialog.join (' '); - this.clearDialog = this.dialog.replace (/\{pause:(\d+)\}/g, '').replace (/\{speed:(\d+)\}/g, ''); - - this.nvl = false; - - if (typeof this.engine.character (id) !== 'undefined') { - this.character = this.engine.character (id); - this.id = id; - - if (typeof this.character.nvl !== 'undefined') { - this.nvl = this.character.nvl; - } - - if (typeof expression !== 'undefined') { - if (typeof this.character.expressions !== 'undefined') { - this.image = this.character.expressions[expression]; - this.expression = expression; - } - - } else if (typeof this.character.default_expression !== 'undefined') { - if (typeof this.character.expressions[this.character.default_expression] !== 'undefined') { - this.image = this.character.expressions[this.character.default_expression]; - } else { - this.image = this.character.default_expression; - } - this.expression = 'default'; - } - } else if (id === 'centered') { - this.id = 'centered'; - } else { - this.id = 'narrator'; - if (id === 'nvl') { - this.nvl = true; - } else { - this.dialog = `${character} ${this.dialog}`; - this.clearDialog = `${character} ${this.clearDialog}`; - } - } - } - - willApply () { - this.engine.element ().find ('[data-character]').removeClass ('focus'); - this.engine.element ().find ('[data-ui="face"]').hide (); - - document.querySelector ('[data-ui="who"]').innerHTML = ''; - - this.engine.element ().find ('[data-component="text-box"]').removeData ('expression'); - - return Promise.resolve (); - } - - displayCenteredDialog (dialog, clearDialog, character, animation) { - const element = document.createElement ('centered-dialog'); - this.engine.element ().find ('[data-component="text-box"]').hide (); - this.engine.element ().find ('[data-screen="game"]').append (element); - - element.ready (() => { - if (animation && this.engine.setting ('TypeAnimation') === true) { - this.engine.global ('typedConfiguration').strings = [dialog]; - this.engine.global ('finished_typing', false); - this.engine.global ('textObject', new Typed (element.content ('wrapper').get (0), this.engine.global ('typedConfiguration'))); - } else { - element.content ('wrapper').html (clearDialog); - this.engine.global ('finished_typing', true); - this.engine.trigger ('didFinishTyping'); - } - }); - - return Promise.resolve (); - } - - displayNvlDialog (dialog, clearDialog, character, animation) { - const textBox = this.engine.element ().find ('[data-component="text-box"]').get (0); - - if (textBox.props.mode !== 'nvl') { - Dialog.reset (); - textBox.setProps ({ mode: 'nvl' }); - } - - // Remove contents from the dialog area. - const previous = this.engine.element ().find ('[data-component="text-box"]').data ('speaking'); - this.engine.element ().find ('[data-component="text-box"]').data ('speaking', character); - - // Check if the typing animation flag is set to true in order to show it - if (animation === true && this.engine.setting ('TypeAnimation') === true && this.engine.setting ('NVLTypeAnimation') === true) { - - // If the property is set to true, the animation will be shown - // if it is set to false, even if the flag was set to true, - // no animation will be shown in the game. - if (character !== 'narrator') { - if (previous !== character) { - this.engine.element ().find ('[data-ui="say"] [data-spoke]').last().addClass ('nvl-dialog-footer'); - this.engine.element ().find ('[data-ui="say"]').append (`
${this.engine.replaceVariables (this.engine.character (character).name)}:

`); - } else { - this.engine.element ().find ('[data-ui="say"]').append (`

`); - } - - } else { - if (previous !== character) { - this.engine.element ().find ('[data-ui="say"] [data-spoke]').last().addClass ('nvl-dialog-footer'); - } - this.engine.element ().find ('[data-ui="say"]').append (`

`); - } - - const elements = $_('[data-ui="say"] [data-spoke] p'); - const last = elements.last ().get (0); - - this.engine.global ('typedConfiguration').strings = [dialog]; - this.engine.global ('finished_typing', false); - this.engine.global ('textObject', new Typed (last, this.engine.global ('typedConfiguration'))); - - } else { - if (character !== 'narrator') { - if (previous !== character) { - this.engine.element ().find ('[data-ui="say"] [data-spoke]').last().addClass ('nvl-dialog-footer'); - this.engine.element ().find ('[data-ui="say"]').append (`
${this.engine.replaceVariables (this.engine.character (character).name)}:

${clearDialog}

`); - } else { - this.engine.element ().find ('[data-ui="say"]').append (`

${dialog}

`); - } - - } else { - if (previous !== character) { - this.engine.element ().find ('[data-ui="say"] [data-spoke]').last().addClass ('nvl-dialog-footer'); - } - this.engine.element ().find ('[data-ui="say"]').append (`

${clearDialog}

`); - } - this.engine.global ('finished_typing', true); - this.engine.trigger ('didFinishTyping'); - } - - const text_box = this.engine.element ().find ('[data-component="text-box"]'); - if (text_box.exists ()) { - if (typeof text_box.get (0).checkUnread === 'function') { - text_box.get (0).checkUnread (); - } - } - - } - - displayDialog (dialog, clearDialog, character, animation) { - if (this.nvl === false) { - const textBox = this.engine.element ().find ('[data-component="text-box"]').get (0); - - if (textBox.props.mode === 'nvl' && this._cycle === 'Application' && this.engine.global ('_restoring_state') === false) { - this.engine.history ('nvl').push (textBox.content ('dialog').html ()); - } - - textBox.setProps ({ mode: 'adv' }); - - // Destroy the previous textObject so the text is rewritten. - // If not destroyed, the text would be appended instead of replaced. - if (this.engine.global ('textObject') !== null) { - this.engine.global ('textObject').destroy (); - } - - // Remove contents from the dialog area. - this.engine.element ().find ('[data-ui="say"]').html (''); - this.engine.element ().find ('[data-component="text-box"]').data ('speaking', character); - - // Check if the typing animation flag is set to true in order to show it - if (animation === true && this.engine.setting ('TypeAnimation') === true) { - - // If the property is set to true, the animation will be shown - // if it is set to false, even if the flag was set to true, - // no animation will be shown in the game. - this.engine.global ('typedConfiguration').strings = [dialog]; - this.engine.global ('finished_typing', false); - this.engine.global ('textObject', new Typed ('[data-ui="say"]', this.engine.global ('typedConfiguration'))); - } else { - this.engine.element ().find ('[data-ui="say"]').html (clearDialog); - this.engine.global ('finished_typing', true); - this.engine.trigger ('didFinishTyping'); - } - } else { - this.displayNvlDialog (dialog, clearDialog, character, animation); - } - - return Promise.resolve (); - } - - - characterDialog () { - // Check if the character has a name to show - if (typeof this.character.name !== 'undefined' && !this.nvl) { - this.engine.element ().find ('[data-ui="who"]').html (this.engine.replaceVariables (this.character.name)); - } - - let directory = this.character.directory; - - if (typeof directory == 'undefined') { - directory = ''; - } else { - directory += '/'; - } - - // Focus the character's sprite and colorize it's name with the defined - // color on its declaration - this.engine.element ().find (`[data-character="${this.id}"]`).addClass ('focus'); - - if (typeof this.character.color === 'string' && this.character.color !== '') { - this.engine.element ().find ('[data-ui="who"]').style ('color', this.character.color); - } else { - this.engine.element ().find ('[data-ui="who"]').style ('color', 'var(--character-name-color)'); - } - // Check if an expression or face image was used and if it exists and - // display it - if (typeof this.image !== 'undefined' && !this.nvl) { - `${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').characters}/${directory}${this.image}`; - this.engine.element ().find ('[data-ui="face"]').attribute ('src', `${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').characters}/${directory}${this.image}`); - this.engine.element ().find ('[data-ui="face"]').show (); - this.engine.element ().find ('[data-component="text-box"]').data ('expression', this.expression); - } - - // Check if the character object defines if the type animation should be used. - if (typeof this.character.type_animation !== 'undefined') { - return this.displayDialog (this.dialog, this.clearDialog, this.id, this.character.type_animation); - } else { - return this.displayDialog (this.dialog, this.clearDialog, this.id, true); - } - } - - apply ({ updateLog = true } = {}) { - try { - const dialogLog = this.engine.component ('dialog-log'); - if (typeof dialogLog !== 'undefined') { - if (this._cycle === 'Application' && updateLog === true) { - dialogLog.instances (instance => instance.write ({ - id: this.id, - character: this.character, - dialog: this.clearDialog - })); - } - } - } catch (e) { - this.engine.debug.error (e); - } - - if (typeof this.character !== 'undefined') { - this.engine.element ().find ('[data-component="text-box"]').get (0).show (); - return this.characterDialog (); - } else if (this.id === 'centered') { - return this.displayCenteredDialog (this.dialog, this.clearDialog, this.id, this.engine.setting ('CenteredTypeAnimation')); - } else { - this.engine.element ().find ('[data-component="text-box"]').get (0).show (); - return this.displayDialog (this.dialog, this.clearDialog, 'narrator', this.engine.setting ('NarratorTypeAnimation')); - } - } - - didApply () { - this.engine.global ('_dialog_pending_revert', true); - return Promise.resolve ({ advance: false }); - } - - willRevert () { - this.engine.element ().find ('[data-character]').removeClass ('focus'); - this.engine.element ().find ('[data-ui="face"]').hide (); - document.querySelector ('[data-ui="who"]').innerHTML = ''; - return Promise.resolve (); - } - - revert () { - // Check if the dialog to replay is a NVL one or not - if (this.nvl === true) { - // Check if the NVL screen is currently being shown - const textBox = this.engine.element ().find ('[data-component="text-box"]').get (0); - - if (textBox.props.mode === 'nvl') { - if (this.engine.global ('_should_restore_nvl') === true) { - this.engine.global ('_should_restore_nvl', false); - if (this.engine.history ('nvl').length > 0) { - textBox.content ('dialog').html (this.engine.history ('nvl').pop ()); - return Promise.resolve (); - } - return Promise.reject ('No more dialogs on history from where to recover previous state.'); - } - const dialogs = textBox.content ('dialog').find ('[data-spoke]'); - // If it is being shown, then to go back, we need to remove the last dialog from it - dialogs.last ().remove (); - return Promise.resolve (); - } else { - // If it is not shown right now, then we need to recover the dialogs - // that were being shown the last time we hid it - if (this.engine.history ('nvl').length > 0) { - if (this.engine.global ('_should_restore_nvl') === true) { - this.engine.global ('_should_restore_nvl', false); - } - textBox.setProps ({ mode: 'nvl' }); - textBox.content ('dialog').html (this.engine.history ('nvl').pop ()); - return Promise.resolve (); - } - return Promise.reject ('No more dialogs on history from where to recover previous state.'); - } - } else { - // If the dialog was not NVL, we can simply show it as if we were - // doing a simple application - return this.apply ().then (() => { - return this.didApply (); - }); - } - } - - didRevert () { - return Promise.resolve ({ advance: false, step: true }); - } - -} - -Dialog.id = 'Dialog'; - -export default Dialog; \ No newline at end of file diff --git a/src/actions/Dialog.ts b/src/actions/Dialog.ts new file mode 100644 index 0000000..9b5a27a --- /dev/null +++ b/src/actions/Dialog.ts @@ -0,0 +1,540 @@ +import { $_ } from '@aegis-framework/artemis'; +import Action from './../lib/Action'; +import { FancyError } from './../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; +import TypeWriter from './../components/type-writer'; +import type TextBoxComponent from './../components/text-box'; + +export class Dialog extends Action { + static override id = 'Dialog'; + + static override async shouldProceed() { + const element = this.engine.element(); + // Check if the type animation has finished and the Typed object still exists + let component: TypeWriter | undefined; + + const centeredDialog = element.find('[data-component="centered-dialog"]'); + + if (centeredDialog.exists()) { + component = centeredDialog.find('[data-content="wrapper"]').get(0) as TypeWriter | undefined; + } else { + // In NVL mode, get the last (most recent) type-writer which is the active one + const typeWriters = element.find('type-writer'); + if (typeWriters.exists()) { + component = typeWriters.last().get(0) as TypeWriter | undefined; + } + } + + // In NVL mode, there might not be a type-writer element in the text-box + if (!component) { + return; + } + + const hasStrings = (component.state?.strings?.length || 0) > 0; + + if (!this.engine.global('finished_typing') && hasStrings) { + this.engine.stopTyping(component); + throw new Error('TypeWriter effect has not finished.'); + } + } + + static override async willProceed(): Promise { + const centeredDialog = this.engine.element().find('[data-component="centered-dialog"]'); + + if (centeredDialog.exists()) { + centeredDialog.remove(); + } + + this.engine.global('_dialog_pending_revert', false); + } + + static override async willRollback(): Promise { + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as TextBoxComponent | undefined; + + this.engine.global('finished_typing', true); + + if (textBox?.show) { + textBox.show(); + } + + const dialogLog = this.engine.component('dialog-log') as { instances?: (callback: (instance: { pop: () => void }) => void) => void } | undefined; + + const centeredDialog = this.engine.element().find('[data-component="centered-dialog"]'); + if (centeredDialog.isVisible()) { + centeredDialog.remove(); + + if (textBox?.show) { + textBox.show(); + } + } + + this.engine.element().find('[data-ui="who"]').html(''); + + if (typeof dialogLog !== 'undefined' && this.engine.global('_dialog_pending_revert') === true && dialogLog.instances) { + dialogLog.instances((instance) => instance.pop()); + this.engine.global('_dialog_pending_revert', false); + } + } + + static override async setup(): Promise { + this.engine.globals({ + finished_typing: false, + _dialog_pending_revert: false, + }); + + // The NVL mode has its own history so that when going back, all dialogs + // that were shown on screen can be shown again instead of just showing + // the last one. + this.engine.history('nvl'); + } + + static override async bind(selector: string): Promise { + // Add listener for the text speed setting (TypeWriter reads from preference directly) + const engine = this.engine; + const clamp = (num: number, min: number, max: number): number => Math.min(Math.max(num, min), max); + $_(`${selector} [data-action="set-text-speed"]`).on('change mouseover', function (this: HTMLInputElement) { + const textbox = engine.element().find('[data-component="text-box"] [data-component="type-writer"]').get(0) as TypeWriter | undefined; + const maxTextSpeed = engine.setting('maxTextSpeed') as number; + const minPlaySpeed = engine.setting('minTextSpeed') as number; + const value = clamp(parseInt(this.value), minPlaySpeed, maxTextSpeed); + + engine.preference('TextSpeed', value); + textbox?.setState({ config: { typeSpeed: value } }); + }); + + // Detect scroll on the text element to remove the unread class used when + // there's text not being shown in NVL mode. + $_(`${selector} [data-component="text-box"] [data-content="text"]`).on('scroll', () => { + const text_box = this.engine.element().find('[data-component="text-box"]'); + if (text_box.exists()) { + const element = text_box.get(0) as any; + if (typeof element.checkUnread === 'function') { + element.checkUnread(); + } + } + }); + } + + static override async init(selector: string): Promise { + // Remove the Text Speed setting if the type animation was disabled + if (this.engine.setting('TypeAnimation') === false) { + $_(`${selector} [data-settings="text-speed"]`).hide(); + } + + this.engine.setting('maxTextSpeed', parseInt(($_(`${selector} [data-action="set-text-speed"]`).attribute('max') || '0'))); + this.engine.setting('minTextSpeed', parseInt(($_(`${selector} [data-action="set-text-speed"]`).attribute('min') || '0'))); + } + + static override async reset({ keepNVL = false, saveNVL = false }: { keepNVL?: boolean; saveNVL?: boolean } = {}): Promise { + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as any; + + if (!textBox) { + return; + } + + if (saveNVL === true && textBox.props.mode === 'nvl') { + this.engine.history('nvl').push(textBox.content('dialog').html()); + } + + if (keepNVL !== true) { + textBox.setProps({ mode: 'adv' }); + } + + + this.engine.element().find('[data-component="text-box"]').data('speaking', ''); + + this.engine.element().find('[data-ui="who"]').style('color', ''); + + this.engine.element().find('[data-ui="who"]').html(''); + this.engine.element().find('[data-ui="say"]').html(''); + + this.engine.element().find('[data-ui="face"]').attribute('src', ''); + this.engine.element().find('[data-ui="face"]').hide(); + + // Remove all classes from the text-box + Array.from(textBox.classList).forEach((c: any) => textBox.classList.remove(c)); + + // Remove all classes from the centered-dialog + const centeredDialog = this.engine.element().find('[data-component="centered-dialog"]').get(0); + + if (centeredDialog) { + Array.from(centeredDialog.classList).forEach((c: any) => centeredDialog.classList.remove(c)); + } + } + + static override matchString(): boolean { + return true; + } + + dialog: string; + clearDialog: string; + nvl: boolean; + classes: string[]; + character: any; + image: string | undefined; + expression: string | undefined; + id: string = ''; + + constructor(args: string[]) { + super(); + const [character, ...dialog] = args; + + // id:expression:class Dialog + const [id, expression, classes] = character.split(':'); + + this.dialog = dialog.join(' '); + this.clearDialog = TypeWriter.stripActionMarkers(this.dialog); + + this.nvl = false; + + this.classes = (classes && classes.trim() !== '') ? classes.split('|') : []; + + if (typeof this.engine.character(id) !== 'undefined') { + this._setCharacter(id, expression); + } else if (id === 'centered') { + this.id = 'centered'; + } else { + this.id = '_narrator'; + + if (typeof this.engine.character('_narrator') !== 'undefined') { + this._setCharacter('_narrator', expression); + } + + if (id === 'nvl') { + this.nvl = true; + } else if (id === 'narrator') { + // Do nothing, just consume 'narrator' + } else { + this.dialog = `${character} ${this.dialog}`; + this.clearDialog = `${character} ${this.clearDialog}`; + } + } + } + + override async willApply(): Promise { + this.engine.element().find('[data-character]').removeClass('focus'); + this.engine.element().find('[data-ui="face"]').hide(); + + this.engine.element().find('[data-ui="who"]').html(''); + + this.engine.element().find('[data-component="text-box"]').removeData('expression'); + } + + _handleCustomClasses(element: HTMLElement | undefined): void { + if (!element) { + return; + } + + // The unread is a special one used by the nvl mode so we ignore that + Array.from(element.classList) + .filter(c => c !== 'unread') + .forEach(cls => element.classList.remove(cls)); + + this.classes.forEach(className => element.classList.add(className)); + } + + _setCharacter(id: string, expression: string | undefined): void { + this.character = this.engine.character(id); + + this.id = id; + + if (typeof this.character.nvl !== 'undefined') { + this.nvl = this.character.nvl; + } + + if (typeof expression !== 'undefined') { + if (typeof this.character.expressions !== 'undefined') { + this.image = this.character.expressions[expression]; + this.expression = expression; + } + + } else if (typeof this.character.default_expression !== 'undefined') { + if (typeof this.character.expressions[this.character.default_expression] !== 'undefined') { + this.image = this.character.expressions[this.character.default_expression]; + } else { + this.image = this.character.default_expression; + } + this.expression = 'default'; + } + } + + async displayCenteredDialog(dialog: string, clearDialog: string, character: string, animation: boolean): Promise { + const element = document.createElement('centered-dialog') as any; + const gameScreen = this.engine.element().find('[data-screen="game"]'); + const textBox = this.engine.element().find('[data-component="text-box"]'); + const writer = textBox.find('type-writer').get(0) as TypeWriter | undefined; + + this._handleCustomClasses(element); + + // If the text-box's typewriter exists, set it to ignore + // (in NVL mode, there might not be a type-writer element) + if (writer) { + writer.setState({ ignore: true, strings: [] }); + } + + textBox.hide(); + gameScreen.append(element); + + element.ready(() => { + const wrapper = element.content('wrapper'); + const wrapperElement = wrapper?.get(0) as TypeWriter | undefined; + + if (wrapperElement) { + wrapperElement.setContent(dialog, animation); + } + }); + } + + displayNvlDialog(dialog: string, clearDialog: string, character: string, animation: boolean): void { + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as any; + + if (!textBox) { + this.engine.debug.error('Text box component not found'); + return; + } + + if (textBox.props?.mode !== 'nvl') { + Dialog.reset(); + // NOTE: setProps does NOT trigger a re-render — it only updates the + // mode attribute so CSS (text-box[mode="nvl"]) applies. The ADV-mode + // type-writer element persists and serves as the container for NVL + // dialog entries appended to [data-ui="say"]. + textBox.setProps({ mode: 'nvl' }); + + // We need to re-apply any custom classes here because the reset clears them + this._handleCustomClasses(textBox); + } + + // Remove contents from the dialog area. + const previous = this.engine.element().find('[data-component="text-box"]').data('speaking'); + this.engine.element().find('[data-component="text-box"]').data('speaking', character); + + // Determine if we should animate (respects NVLTypeAnimation setting) + const shouldAnimate = animation && this.engine.setting('NVLTypeAnimation') === true; + + // Build the dialog entry HTML + if (character !== '_narrator') { + const charData = this.engine.character(character); + if (previous !== character) { + this.engine.element().find('[data-ui="say"] [data-spoke]').last().addClass('nvl-dialog-footer'); + this.engine.element().find('[data-ui="say"]').append(`
${this.engine.replaceVariables(charData?.name ?? '')}:
`); + } else { + this.engine.element().find('[data-ui="say"]').append(`
`); + } + } else { + if (previous !== character) { + this.engine.element().find('[data-ui="say"] [data-spoke]').last().addClass('nvl-dialog-footer'); + } + this.engine.element().find('[data-ui="say"]').append(`
`); + } + + // Wait for the new type-writer component to be fully mounted before + // setting its content. Using ready() is more reliable than + // requestAnimationFrame since Pandora's connectedCallback is async. + const elements = $_('[data-ui="say"] [data-spoke] type-writer'); + const last = elements.last().get(0) as TypeWriter | undefined; + + if (last && typeof (last as any).ready === 'function') { + (last as any).ready(() => { + last.setContent(dialog, shouldAnimate); + }); + } else if (last) { + last.setContent(dialog, shouldAnimate); + } + + const text_box = this.engine.element().find('[data-component="text-box"]'); + if (text_box.exists()) { + const textContent = text_box.find('[data-content="text"]').get(0); + + if (textContent) { + textContent.scrollTop = textContent.scrollHeight; + } + + const element = text_box.get(0) as any; + if (typeof element.checkUnread === 'function') { + element.checkUnread(); + } + } + + } + + async displayDialog(dialog: string, clearDialog: string, character: string, animation: boolean): Promise { + if (this.nvl === false) { + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as any; + + if (!textBox) { + this.engine.debug.error('Text box component not found'); + return; + } + + if (textBox.props?.mode === 'nvl' && this._cycle === 'Application' && this.engine.global('_restoring_state') === false) { + this.engine.history('nvl').push(textBox.content('dialog').html()); + } + + // NOTE: setProps does NOT trigger a re-render — it only updates the + // mode attribute on the element so CSS (text-box[mode="adv"]) applies. + // The type-writer child persists across mode changes by design. + textBox.setProps({ mode: 'adv' }); + + // Destroy any active NVL entry type-writers before clearing to prevent + // leaked animation frames from detached elements. + this.engine.element().find('[data-ui="say"] [data-spoke] type-writer').each((tw: any) => { + if (typeof tw.destroy === 'function') { + tw.destroy(); + } + }); + + // Remove contents from the dialog area. + this.engine.element().find('[data-ui="say"]').html(''); + this.engine.element().find('[data-component="text-box"]').data('speaking', character); + + // Find the type-writer component inside the text-box (ADV mode has it) + const typeWriter = this.engine.element().find('[data-component="text-box"] type-writer').get(0) as TypeWriter | undefined; + if (typeWriter) { + typeWriter.setContent(dialog, animation); + } + } else { + this.displayNvlDialog(dialog, clearDialog, character, animation); + } + } + + + characterDialog(): Promise { + // Check if the character has a name to show + if (typeof this.character.name !== 'undefined' && !this.nvl) { + this.engine.element().find('[data-ui="who"]').html(this.engine.replaceVariables(this.character.name)); + } + + let directory = this.character.directory; + + if (typeof directory == 'undefined') { + directory = ''; + } else { + directory += '/'; + } + + // Focus the character's sprite and colorize it's name with the defined + // color on its declaration + this.engine.element().find(`[data-character="${this.id}"]`).addClass('focus'); + + if (typeof this.character.color === 'string' && this.character.color !== '') { + this.engine.element().find('[data-ui="who"]').style('color', this.character.color); + } else { + this.engine.element().find('[data-ui="who"]').style('color', 'var(--character-name-color)'); + } + // Check if an expression or face image was used and if it exists and + // display it + if (typeof this.image !== 'undefined' && !this.nvl) { + const path = `${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').characters}/${directory}${this.image}`; + this.engine.element().find('[data-ui="face"]').attribute('src', path); + this.engine.element().find('[data-ui="face"]').show(); + this.engine.element().find('[data-component="text-box"]').data('expression', this.expression as string); + } + + // Check if the character object defines if the type animation should be used. + if (typeof this.character.type_animation !== 'undefined') { + return this.displayDialog(this.dialog, this.clearDialog, this.id, this.character.type_animation); + } else { + return this.displayDialog(this.dialog, this.clearDialog, this.id, true); + } + } + + override async apply({ updateLog = true } = {}): Promise { + try { + const dialogLog = this.engine.component('dialog-log') as { instances?: () => { each: (cb: (instance: { write: (data: { id: string; character: string; dialog: string }) => void }) => void) => void } } | undefined; + if (typeof dialogLog !== 'undefined' && dialogLog.instances) { + if (this._cycle === 'Application' && updateLog === true) { + dialogLog.instances().each((instance) => instance.write({ + id: this.id, + character: this.character, + dialog: this.clearDialog + })); + } + } + } catch (e) { + this.engine.debug.error(e); + } + + const textBoxElement = this.engine.element().find('[data-component="text-box"]').get(0) as TextBoxComponent | undefined; + if (textBoxElement?.state?.hidden === true) { + FancyError.show('action:dialog:textbox_hidden', { + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + } + + if (typeof this.character !== 'undefined') { + this._handleCustomClasses(textBoxElement); + (textBoxElement as any)?.show(); + return this.characterDialog(); + } else if (this.id === 'centered') { + return this.displayCenteredDialog(this.dialog, this.clearDialog, this.id, this.engine.setting('CenteredTypeAnimation')); + } else { + this._handleCustomClasses(textBoxElement); + (textBoxElement as any)?.show(); + return this.displayDialog(this.dialog, this.clearDialog, '_narrator', this.engine.setting('NarratorTypeAnimation')); + } + } + + override async didApply(): Promise { + this.engine.global('_dialog_pending_revert', true); + return { advance: false }; + } + + override async willRevert(): Promise { + this.engine.element().find('[data-character]').removeClass('focus'); + this.engine.element().find('[data-ui="face"]').hide(); + this.engine.element().find('[data-ui="who"]').html(''); + } + + override async revert(): Promise { + // Check if the dialog to replay is a NVL one or not + if (this.nvl === true) { + // Check if the NVL screen is currently being shown + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as any; + this._handleCustomClasses(textBox); + + if (textBox.props.mode === 'nvl') { + if (this.engine.global('_should_restore_nvl') === true) { + this.engine.global('_should_restore_nvl', false); + if (this.engine.history('nvl').length > 0) { + textBox.content('dialog').html(this.engine.history('nvl').pop()); + return; + } + throw new Error('No more dialogs on history from where to recover previous state.'); + } + + // Find all dialog entries and remove the last one + const dialogs = this.engine.element().find('[data-ui="say"] [data-spoke]'); + // If it is being shown, then to go back, we need to remove the last dialog from it + dialogs.last().remove(); + return; + } else { + // If it is not shown right now, then we need to recover the dialogs + // that were being shown the last time we hid it + if (this.engine.history('nvl').length > 0) { + if (this.engine.global('_should_restore_nvl') === true) { + this.engine.global('_should_restore_nvl', false); + } + textBox.setProps({ mode: 'nvl' }); + textBox.content('dialog').html(this.engine.history('nvl').pop()); + return; + } + throw new Error('No more dialogs on history from where to recover previous state.'); + } + } else { + // If the dialog was not NVL, we can simply show it as if we were + // doing a simple application + await this.apply(); + await this.didApply(); + } + } + + override async didRevert(): Promise { + return { advance: false, step: true }; + } + +} + +export default Dialog; \ No newline at end of file diff --git a/src/actions/End.js b/src/actions/End.js deleted file mode 100644 index 620fda6..0000000 --- a/src/actions/End.js +++ /dev/null @@ -1,75 +0,0 @@ -import { Action } from './../lib/Action'; - -export class End extends Action { - - static bind () { - - this.engine.registerListener ('end', { - keys: 'shift+q', - callback: () => { - if (this.engine.global ('playing')) { - this.engine.alert ('quit-warning', { - message: 'Confirm', - actions: [ - { - label: 'Quit', - listener: 'quit' - }, - { - label: 'Cancel', - listener: 'dismiss-alert' - } - ] - }); - } - } - }); - - this.engine.registerListener ('quit', { - callback: () => { - this.engine.dismissAlert ('quit-warning'); - - if (this.engine.global ('playing') === true) { - this.engine.run ('end'); - } else { - if (typeof window.electron === 'object') { - if (typeof window.electron.send === 'function') { - window.electron.send ('quit-request'); - } - } - } - } - }); - - return Promise.resolve (); - } - - static matchString ([ action ]) { - return action === 'end'; - } - - willApply () { - this.engine.hideScreens (); - return Promise.resolve (); - } - - apply () { - this.engine.global ('playing', false); - - this.engine.resetGame (); - this.engine.showMainScreen (); - - this.engine.element ().find ('[data-component="quick-menu"]').removeClass ('splash-screen'); - this.engine.element ().find ('[data-component="game-screen"]').removeClass ('splash-screen'); - - return Promise.resolve (); - } - - willRevert () { - return Promise.reject ('End is not reversible'); - } -} - -End.id = 'End'; - -export default End; \ No newline at end of file diff --git a/src/actions/End.ts b/src/actions/End.ts new file mode 100644 index 0000000..059b433 --- /dev/null +++ b/src/actions/End.ts @@ -0,0 +1,75 @@ +import Action from './../lib/Action'; +import { getDesktopBridge } from '../lib/DesktopBridge'; + +export class End extends Action { + static override id = 'End'; + + static override async bind(): Promise { + this.engine.registerListener('end', { + keys: 'shift+q', + callback: () => { + if (this.engine.global('playing')) { + this.engine.alert('quit-warning', { + message: 'Confirm', + actions: [ + { + label: 'Quit', + listener: 'quit' + }, + { + label: 'Cancel', + listener: 'dismiss-alert' + } + ] + }); + } + } + }); + + this.engine.registerListener('quit', { + callback: () => { + this.engine.dismissAlert('quit-warning'); + + if (this.engine.global('playing') === true) { + this.engine.run('end'); + return; + } + + const bridge = getDesktopBridge(); + + if (bridge) { + bridge.send('quit-request'); + } + } + }); + } + + static override matchString([action]: string[]): boolean { + return action === 'end'; + } + + override async willApply(): Promise { + this.engine.hideScreens(); + } + + override async apply(): Promise { + const engine = this.engine; + + engine.global('playing', false); + + engine.resetGame(); + engine.showMainScreen(); + + + const engineElement = engine.element(); + + engineElement.find('[data-component="quick-menu"]').removeClass('splash-screen'); + engineElement.find('[data-component="game-screen"]').removeClass('splash-screen'); + } + + override async willRevert(): Promise { + throw new Error('End action is not reversible'); + } +} + +export default End; \ No newline at end of file diff --git a/src/actions/Function.js b/src/actions/Function.js deleted file mode 100644 index 058c06f..0000000 --- a/src/actions/Function.js +++ /dev/null @@ -1,115 +0,0 @@ -import { Action } from './../lib/Action'; -import { Util } from '@aegis-framework/artemis'; -import { FancyError } from '../lib/FancyError'; - -export class ReversibleFunction extends Action { - - static matchObject ({ Function: fn }) { - return typeof fn !== 'undefined'; - } - - constructor ({ Function: fn }) { - super (); - this.statement = fn; - this.shouldContinue = true; - } - - apply () { - // The function will be run asynchronously (No matter if its code isn't) - // if the function returns false, the next statement will not be run - // automatically and the game will wait for user interaction or some other - // code inside the function to keep going. Any other returnValue will - // allow the game to keep going right away. - return Util.callAsync (this.statement.Apply, this.engine).then ((returnValue) => { - this.engine.global ('block', false); - if (returnValue === false) { - this.shouldContinue = false; - } - }).catch ((e) => { - let error = { - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check the code for your function, there may be additional information in the console.', - } - }; - - if (typeof e === 'object') { - error = Object.assign (error, { - 'Error Message': e.message, - 'File Name': e.fileName, - 'Line Number': e.lineNumber - }); - } else if (typeof e === 'string') { - error['Error Message'] = e; - } - - FancyError.show ( - 'An error occurred while trying to revert a Reversible Function.', - 'Monogatari attempted to run the `Apply` method of a Reversible Function but an error occurred.', - error - ); - }); - } - - didApply () { - return Promise.resolve ({ advance: this.shouldContinue }); - } - - willApply () { - // @Compatibility [<= v2.0.0-beta.15] - // To make everything more standardized, we decided to change the - // 'Reverse' key to 'Revert' which actually follows the language being - // used in other actions and parts of Monogatari - if (typeof this.statement.Reverse === 'function' && typeof this.statement.Revert !== 'function') { - this.statement.Revert = this.statement.Reverse; - } - return Promise.resolve (); - } - - revert () { - // The function will be run asynchronously (No matter if its code isn't) - // if the function returns false, the previous statement will not be run - // automatically and the game will wait for user interaction or some other - // code inside the function to keep going. Any other returnValue will - // allow the game to keep going right away. - return Util.callAsync (this.statement.Revert, this.engine).then ((returnValue) => { - this.engine.global ('block', false); - if (returnValue === false) { - this.shouldContinue = false; - } - }).catch ((e) => { - let error = { - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check the code for your function, there may be additional information in the console.', - } - }; - - if (typeof e === 'object') { - error = Object.assign (error, { - 'Error Message': e.message, - 'File Name': e.fileName, - 'Line Number': e.lineNumber - }); - } else if (typeof e === 'string') { - error['Error Message'] = e; - } - - FancyError.show ( - 'An error occurred while trying to revert a Reversible Function.', - 'Monogatari attempted to run the `Revert` method of a Reversible Function but an error occurred.', - error - ); - }); - } - - didRevert () { - return Promise.resolve ({ advance: this.shouldContinue, step: true }); - } -} - -ReversibleFunction.id = 'Function'; - -export default ReversibleFunction; \ No newline at end of file diff --git a/src/actions/Function.ts b/src/actions/Function.ts new file mode 100644 index 0000000..e5fde30 --- /dev/null +++ b/src/actions/Function.ts @@ -0,0 +1,102 @@ +import Action from './../lib/Action'; +import { Util } from '@aegis-framework/artemis'; +import { FancyError } from '../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + +export class ReversibleFunction extends Action { + + static override id = 'Function'; + + static override matchObject({ Function: fn }: any): boolean { + return typeof fn !== 'undefined'; + } + + statement: any; + shouldContinue: boolean; + + constructor({ Function: fn }: any) { + super(); + this.statement = fn; + this.shouldContinue = true; + } + + override async apply(): Promise { + // The function will be run asynchronously (No matter if its code isn't) + // if the function returns false, the next statement will not be run + // automatically and the game will wait for user interaction or some other + // code inside the function to keep going. Any other returnValue will + // allow the game to keep going right away. + try { + const returnValue = await Util.callAsync(this.statement.Apply, this.engine); + + if (returnValue === false) { + this.shouldContinue = false; + } + } catch (e: any) { + const context: Record = { + label: this.engine.state('label'), + step: this.engine.state('step') + }; + + if (typeof e === 'object') { + context['Error Message'] = e.message; + context['File Name'] = e.fileName; + context['Line Number'] = e.lineNumber; + } else if (typeof e === 'string') { + context['Error Message'] = e; + } + + FancyError.show('action:function:apply_error', context); + } + } + + override async didApply(): Promise { + return { advance: this.shouldContinue }; + } + + override async willApply(): Promise { + // @Compatibility [<= v2.0.0-beta.15] + // To make everything more standardized, we decided to change the + // 'Reverse' key to 'Revert' which actually follows the language being + // used in other actions and parts of Monogatari + if (typeof this.statement.Reverse === 'function' && typeof this.statement.Revert !== 'function') { + this.statement.Revert = this.statement.Reverse; + } + } + + override async revert(): Promise { + // The function will be run asynchronously (No matter if its code isn't) + // if the function returns false, the previous statement will not be run + // automatically and the game will wait for user interaction or some other + // code inside the function to keep going. Any other returnValue will + // allow the game to keep going right away. + try { + const returnValue = await Util.callAsync(this.statement.Revert, this.engine); + + if (returnValue === false) { + this.shouldContinue = false; + } + } catch (e: any) { + const context: Record = { + label: this.engine.state('label'), + step: this.engine.state('step') + }; + + if (typeof e === 'object') { + context['Error Message'] = e.message; + context['File Name'] = e.fileName; + context['Line Number'] = e.lineNumber; + } else if (typeof e === 'string') { + context['Error Message'] = e; + } + + FancyError.show('action:function:revert_error', context); + } + } + + override async didRevert(): Promise { + return { advance: this.shouldContinue, step: true }; + } +} + +export default ReversibleFunction; \ No newline at end of file diff --git a/src/actions/Gallery.js b/src/actions/Gallery.js deleted file mode 100644 index 97589bc..0000000 --- a/src/actions/Gallery.js +++ /dev/null @@ -1,59 +0,0 @@ -import { Action } from './../lib/Action'; - -export class Gallery extends Action { - - static matchString ([ action ]) { - return action === 'gallery'; - } - - constructor ([ action, mode, asset ]) { - super (); - this.mode = mode; - this.asset = asset; - } - - apply () { - if (this.mode === 'unlock') { - - this.engine.component ('gallery-screen').instances ((instance) => { - const unlocked = [...instance.state.unlocked, this.asset]; - instance.setState ({ - unlocked - }); - }); - - - } else if (this.mode === 'lock') { - this.engine.component ('gallery-screen').instances ((instance) => { - const unlocked = instance.state.unlocked.filter ((item) => item !== this.asset); - instance.setState ({ - unlocked - }); - }); - } - return Promise.resolve (); - } - - didApply () { - return Promise.resolve ({ advance: true }); - } - - revert () { - if (this.mode === 'lock') { - this.mode = 'unlock'; - return this.apply (); - } else if (this.mode === 'unlock') { - this.mode = 'lock'; - return this.apply (); - } - return Promise.resolve (); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -Gallery.id = 'Gallery'; - -export default Gallery; \ No newline at end of file diff --git a/src/actions/Gallery.ts b/src/actions/Gallery.ts new file mode 100644 index 0000000..ec3fd7c --- /dev/null +++ b/src/actions/Gallery.ts @@ -0,0 +1,43 @@ +import Action from './../lib/Action'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; +import { Registry } from '@aegis-framework/pandora'; + +export class Gallery extends Action { + + static override id = 'Gallery'; + + mode: 'unlock' | 'lock'; + asset: string; + + static override matchString([action]: string[]): boolean { + return action === 'gallery'; + } + + constructor([action, mode, asset]: ['gallery', 'unlock' | 'lock', string]) { + super(); + this.mode = mode; + this.asset = asset; + } + + override async apply(): Promise { + Registry.instances('gallery-screen', (instance: any) => { + const unlocked = this.mode === 'unlock' ? [...instance.state.unlocked, this.asset] : instance.state.unlocked.filter((item: string) => item !== this.asset); + instance.setState({ unlocked }); + }); + } + + override async didApply(): Promise { + return { advance: true }; + } + + override async revert(): Promise { + this.mode = this.mode === 'lock' ? 'unlock' : 'lock'; + await this.apply(); + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default Gallery; \ No newline at end of file diff --git a/src/actions/HideCanvas.js b/src/actions/HideCanvas.js deleted file mode 100644 index e56b14e..0000000 --- a/src/actions/HideCanvas.js +++ /dev/null @@ -1,89 +0,0 @@ -import { Action } from './../lib/Action'; -import { Util } from '@aegis-framework/artemis'; - -export class HideCanvas extends Action { - - - static matchString ([ hide, type ]) { - return hide === 'hide' && type === 'canvas'; - } - - constructor ([ hide, canvas, name, separator, ...classes ]) { - super (); - - this.name = name; - this.object = this.engine.action ('Canvas').objects (name); - - this.element = document.querySelector (`[data-component="canvas-container"][canvas="${this.name}"]`); - - if (typeof classes !== 'undefined') { - this.classes = classes; - } else { - this.classes = []; - } - } - - apply () { - const { object } = this.element.props; - - return Util.callAsync (object.stop, this.engine, this.element.layers, object.props, object.state, this.element).then (() => { - if (this.classes.length > 0) { - const el = this.element.element (); - el.addClass ('animated'); - for (const newClass of this.classes) { - if (newClass) { - el.addClass (newClass); - } - } - - el.data ('visibility', 'invisible'); - - // Remove item after a while to prevent it from showing randomly - // when coming from a menu to the game because of its animation - el.on ('animationend', (e) => { - if (e.target.dataset.visibility === 'invisible') { - // Remove only if the animation ends while the element is not visible - e.target.remove (); - } - }); - } else { - this.engine.element ().find (`[data-component="canvas-container"][canvas="${this.name}"]`).remove (); - } - - return Promise.resolve (); - }); - } - - didApply () { - for (let i = this.engine.state ('canvas').length - 1; i >= 0; i--) { - const last = this.engine.state ('canvas')[i]; - const [show, canvas, name, mode] = last.split (' '); - if (name === this.name) { - this.engine.state ('canvas').splice (i, 1); - break; - } - } - return Promise.resolve ({ advance: true }); - } - - revert () { - for (let i = this.engine.history ('canvas').length - 1; i >= 0; i--) { - const last = this.engine.history ('canvas')[i]; - const [show, canvas, name, mode] = last.split (' '); - if (name === this.name) { - this.engine.history ('canvas').splice (i, 1); - return this.engine.run (last, false); - - } - } - return Promise.resolve (); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -HideCanvas.id = 'Hide::Canvas'; - -export default HideCanvas; \ No newline at end of file diff --git a/src/actions/HideCanvas.ts b/src/actions/HideCanvas.ts new file mode 100644 index 0000000..9efbdd5 --- /dev/null +++ b/src/actions/HideCanvas.ts @@ -0,0 +1,115 @@ +import Action from './../lib/Action'; +import { Util } from '@aegis-framework/artemis'; +import { FancyError } from './../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types'; + +export class HideCanvas extends Action { + + static override id = 'Hide::Canvas'; + + static override matchString([hide, type]: string[]): boolean { + return hide === 'hide' && type === 'canvas'; + } + + name: string; + object: any; + element: any; + classes: string[]; + + constructor([hide, canvas, name, separator, ...classes]: string[]) { + super(); + + this.name = name; + const canvasAction = this.engine.action('Canvas') as { objects?: (name: string) => Record } | undefined; + this.object = canvasAction?.objects?.(name) ?? null; + + this.element = document.querySelector(`[data-component="canvas-container"][canvas="${this.name}"]`); + + if (typeof classes !== 'undefined') { + this.classes = classes; + } else { + this.classes = []; + } + } + + override async willApply(): Promise { + if (this.element === null) { + FancyError.show('action:hide_canvas:not_shown', { + name: this.name, + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + throw new Error('Attempted to hide a canvas that was not being shown.'); + } + } + + override async apply(): Promise { + const { object } = this.element.props; + + await Util.callAsync(object.stop, this.engine, this.element.layers, object.props, object.state, this.element); + + if (this.classes.length > 0) { + const el = this.element.element(); + el.addClass('animated'); + for (const newClass of this.classes) { + if (newClass) { + el.addClass(newClass); + } + } + + el.data('visibility', 'invisible'); + + // Remove item after a while to prevent it from showing randomly + // when coming from a menu to the game because of its animation + el.on('animationend', (e: Event) => { + if ((e.target as HTMLElement).dataset.visibility === 'invisible') { + // Remove only if the animation ends while the element is not visible + (e.target as HTMLElement).remove(); + } + }); + } else { + this.engine.element().find(`[data-component="canvas-container"][canvas="${this.name}"]`).remove(); + } + } + + override async didApply(): Promise { + let found = false; + this.engine.state({ + canvas: this.engine.state('canvas').filter((item: string) => { + if (!found) { + const [, , name] = item.split(' '); + if (name === this.name) { + found = true; + return false; + } + } + return true; + }) + }); + return { advance: true }; + } + + override async revert(): Promise { + const canvasHistory = this.engine.history('canvas') as string[]; + for (let i = canvasHistory.length - 1; i >= 0; i--) { + const last = canvasHistory[i]; + const [, , name] = last.split(' '); + if (name === this.name) { + const action = this.engine.prepareAction(last, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: true }); + } + return; + } + } + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default HideCanvas; \ No newline at end of file diff --git a/src/actions/HideCharacter.js b/src/actions/HideCharacter.js deleted file mode 100644 index 4a82123..0000000 --- a/src/actions/HideCharacter.js +++ /dev/null @@ -1,162 +0,0 @@ -import { Action } from './../lib/Action'; -import { FancyError } from './../lib/FancyError'; - -export class HideCharacter extends Action { - - static matchString ([ hide, type ]) { - return hide === 'hide' && type === 'character'; - } - - constructor ([ hide, type, asset, ...classes ]) { - super (); - this.asset = asset; - - if (typeof this.engine.character (this.asset) !== 'undefined') { - this.element = this.engine.element ().find (`[data-character="${this.asset}"]`).last (); - } else { - FancyError.show ( - `The character "${this.asset}" does not exist`, - `Monogatari attempted to get information about the character "${this.asset}" but it wasn't found on the characters object.`, - { - 'Missing Character': this.asset, - 'You may have meant one of these': Object.keys (this.engine.characters ()), - 'Statement': `"${this._statement}"`, - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check your characters object and your script to make sure the character exists and that it does not have a typo in it.' - } - } - ); - } - - if (typeof classes !== 'undefined') { - this.classes = classes; - } else { - this.classes = []; - } - this.classes = this.classes.filter ((c) => (c !== 'at' && c !== 'with')); - } - - willApply () { - - if (!this.element.exists ()) { - FancyError.show ( - `The character "${this.asset}" can't hide because it's not being shown`, - `Monogatari attempted to hide the character "${this.asset}" but it was not being shown.`, - { - 'Missing Character': this.asset, - 'You may have meant one of these': Object.keys (this.engine.characters ()), - 'Statement': `"${this._statement}"`, - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check that before this hide action you have a show action that shows the character you want to hide.' - } - } - ); - return Promise.reject ('Attempted to hide a character that was not being shown.'); - } - - return Promise.resolve (); - } - - - apply () { - const currentPosition = this.element.data ('position'); - const position = this._statement.match (/at\s(\S*)/); - - const oldClasses = [...this.element.get (0).classList]; - - for (const oldClass of oldClasses) { - if (oldClass !== currentPosition || position instanceof Array) { - this.element.removeClass (oldClass); - } - } - - if (position instanceof Array) { - // If it was, we'll set that position to the character - const [at, positionClass] = position; - this.element.data ('position', positionClass); - } - - this.element.addClass ('animated'); - - // Check if there is any end-animation, here's what this matches: - // 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ "end-fadeIn", "fadeIn" ] - const endAnimation = oldClasses.find(c => c.match (/end-([A-Za-z]+)/) !== null); - - if (typeof endAnimation !== 'undefined') { - const [end, animation] = endAnimation.split('-'); - this.element.addClass (animation); - } - - const durationPosition = this.classes.indexOf ('duration'); - - if (durationPosition > -1) { - this.element.style ('animation-duration', this.classes[durationPosition + 1]); - } else { - this.element.style ('animation-duration', ''); - } - - if (this.classes.length > 0 || typeof endAnimation !== 'undefined') { - for (const className of this.classes) { - if (className) { - this.element.addClass (className); - } - } - this.element.data ('visibility', 'invisible'); - - this.element.on ('animationend', (e) => { - if (e.target.dataset.visibility === 'invisible') { - // Remove only if the animation ends while the element is not visible - e.target.remove (); - } - }); - } else { - this.element.remove (); - } - - return Promise.resolve (); - } - - didApply () { - const show = this.engine.state ('characters').filter ((item) => { - const [ show, character, asset, ] = item.split (' '); - return asset !== this.asset; - }); - - this.engine.state ({ characters: show }); - return Promise.resolve ({ advance: true }); - } - - willRevert () { - if (this.engine.history ('character').length <= 0) { - return Promise.reject (); - } - return Promise.resolve (); - } - - revert () { - for (let i = this.engine.history ('character').length - 1; i >= 0; i--) { - const last = this.engine.history ('character')[i]; - const [show, character, asset, name] = last.split (' '); - - if (asset === this.asset) { - const action = this.engine.prepareAction (last, { cycle: 'Application' }); - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: true }); - }); - } - } - return Promise.reject (); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -HideCharacter.id = 'Hide::Character'; - -export default HideCharacter; diff --git a/src/actions/HideCharacter.ts b/src/actions/HideCharacter.ts new file mode 100644 index 0000000..ef68a16 --- /dev/null +++ b/src/actions/HideCharacter.ts @@ -0,0 +1,164 @@ +import Action from './../lib/Action'; +import { FancyError } from './../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + +export class HideCharacter extends Action { + + static override id = 'Hide::Character'; + + static override matchString([hide, type, identifier]: string[]): boolean { + return hide === 'hide' && type === 'character' && identifier.indexOf(':') === -1; + } + + asset: string; + element: any; + classes: string[]; + + constructor([hide, type, asset, ...classes]: string[]) { + super(); + this.asset = asset; + + if (typeof this.engine.character(this.asset) !== 'undefined') { + this.element = this.engine.element().find(`[data-character="${this.asset}"]`).last(); + } else { + FancyError.show('action:hide_character:character_not_found', { + asset: this.asset, + availableCharacters: Object.keys(this.engine.characters()), + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + } + + if (typeof classes !== 'undefined') { + this.classes = classes; + } else { + this.classes = []; + } + this.classes = this.classes.filter((c) => (c !== 'at' && c !== 'with')); + } + + override async willApply(): Promise { + + if (!this.element.exists()) { + FancyError.show('action:hide_character:not_shown', { + asset: this.asset, + availableCharacters: Object.keys(this.engine.characters()), + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + throw new Error('Attempted to hide a character that was not being shown.'); + } + } + + + override async apply(): Promise { + const currentPosition = this.element.data('position'); + const position = (this._statement as string).match(/at\s(\S*)/); + + const oldClasses = [...this.element.get(0).classList]; + + for (const oldClass of oldClasses) { + if (oldClass !== currentPosition || position instanceof Array) { + this.element.removeClass(oldClass); + } + } + + if (position instanceof Array) { + // If it was, we'll set that position to the character + const [at, positionClass] = position; + this.element.data('position', positionClass); + } + + this.element.addClass('animated'); + + // Check if there is any end-animation, here's what this matches: + // 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ "end-fadeIn", "fadeIn" ] + const endAnimation = oldClasses.find((c: string) => c.match(/end-([A-Za-z]+)/) !== null); + + if (typeof endAnimation !== 'undefined') { + const [end, animation] = endAnimation.split('-'); + this.element.addClass(animation); + } + + const durationPosition = this.classes.indexOf('duration'); + + if (durationPosition > -1) { + this.element.style('animation-duration', this.classes[durationPosition + 1]); + } else { + this.element.style('animation-duration', ''); + } + + if (this.classes.length > 0 || typeof endAnimation !== 'undefined') { + for (const className of this.classes) { + if (className) { + this.element.addClass(className); + } + } + this.element.data('visibility', 'invisible'); + + this.element.on('animationend', (e: any) => { + if (e.target.dataset.visibility === 'invisible') { + // Remove only if the animation ends while the element is not visible + e.target.remove(); + } + }); + } else { + this.element.remove(); + } + } + + override async didApply(): Promise { + const characters = this.engine.state('characters').filter((item: string) => { + const [show, character, asset,] = item.split(' '); + return asset !== this.asset; + }); + + const experimentalFeatures = this.engine.setting('ExperimentalFeatures'); + + if (experimentalFeatures) { + const characterLayers = this.engine.state('characterLayers').filter((item: string) => { + const [show, character, asset,] = item.split(' '); + const [id, layer] = asset.split(':'); + return id !== this.asset; + }); + + this.engine.state({ characters, characterLayers }); + } else { + this.engine.state({ characters }); + } + + return { advance: true }; + } + + override async willRevert(): Promise { + if (this.engine.history('character').length <= 0) { + return Promise.reject(); + } + } + + override async revert(): Promise { + const history = this.engine.history('character') as { statement: string; previous: string | null }[]; + for (let i = history.length - 1; i >= 0; i--) { + const { statement } = history[i]; + const [, , asset] = statement.split(' '); + + if (asset === this.asset) { + const action = this.engine.prepareAction(statement, { cycle: 'Application' }) as import('../lib/types').ActionInstance | null; + if (action !== null) { + await action.apply(); + await action.didApply({ updateHistory: false, updateState: true }); + } + return; + } + } + throw new Error('Failed to revert HideCharacter'); + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default HideCharacter; diff --git a/src/actions/HideCharacterLayer.ts b/src/actions/HideCharacterLayer.ts new file mode 100644 index 0000000..9a678d7 --- /dev/null +++ b/src/actions/HideCharacterLayer.ts @@ -0,0 +1,172 @@ +import Action from './../lib/Action'; +import { FancyError } from './../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types'; + + +export class HideCharacterLayer extends Action { + + static override id = 'Hide::Character::Layer'; + static override _experimental = true; + + static override matchString([hide, type, identifier]: string[]): boolean { + return hide === 'hide' && type === 'character' && identifier.indexOf(':') > -1; + } + + asset: string; + layer: string; + parent: any; + element: any; + classes: string[]; + + constructor([hide, type, asset, ...classes]: string[]) { + super(); + const [character, layer] = asset.split(':'); + this.asset = character; + this.layer = layer; + + if (typeof this.engine.character(this.asset) !== 'undefined') { + this.parent = this.engine.element().find(`[data-character="${this.asset}"]`).last(); + this.element = this.parent.find(`[data-layer="${this.layer}"]`).last(); + } else { + FancyError.show('action:hide_character_layer:character_not_found', { + asset: this.asset, + availableCharacters: Object.keys(this.engine.characters()), + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + } + + if (typeof classes !== 'undefined') { + this.classes = classes; + } else { + this.classes = []; + } + this.classes = this.classes.filter((c) => (c !== 'at' && c !== 'with')); + } + + override async willApply(): Promise { + + if (!this.element.exists()) { + FancyError.show('action:hide_character_layer:layer_not_shown', { + layer: this.layer, + asset: this.asset, + availableCharacters: Object.keys(this.engine.characters()), + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + throw new Error('Attempted to hide a character that was not being shown.'); + } + } + + + override async apply(): Promise { + const oldClasses = [...this.element.get(0).classList]; + + for (const oldClass of oldClasses) { + this.element.removeClass(oldClass); + } + + this.element.addClass('animated'); + + // Check if there is any end-animation, here's what this matches: + // 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ "end-fadeIn", "fadeIn" ] + const endAnimation = oldClasses.find((c: string) => c.match(/end-([A-Za-z]+)/) !== null); + + if (typeof endAnimation !== 'undefined') { + const [end, animation] = endAnimation.split('-'); + this.element.addClass(animation); + } + + const durationPosition = this.classes.indexOf('duration'); + + if (durationPosition > -1) { + this.element.style('animation-duration', this.classes[durationPosition + 1]); + } else { + this.element.style('animation-duration', ''); + } + + if (this.classes.length > 0 || typeof endAnimation !== 'undefined') { + for (const className of this.classes) { + if (className) { + this.element.addClass(className); + } + } + this.element.data('visibility', 'invisible'); + + this.element.on('animationend', (e: any) => { + if (e.target.dataset.visibility === 'invisible') { + // Remove only if the animation ends while the element is not visible + e.target.remove(); + } + }); + } else { + this.element.remove(); + } + + const parentAsComponent = this.parent.get(0) as (HTMLElement & { state?: { layers?: Record }; setState?: (state: Record) => void }) | undefined; + if (parentAsComponent?.state && parentAsComponent?.setState) { + const stateLayers = parentAsComponent.state.layers || {}; + const { [this.layer]: _, ...remainingLayers } = stateLayers; + parentAsComponent.setState({ + layers: remainingLayers + }); + } + } + + override async didApply({ updateHistory = true, updateState = true } = {}): Promise { + const show = this.engine.state('characterLayers').filter((item: string) => { + const [show, character, asset,] = item.split(' '); + const [id, layer] = asset.split(':'); + return id !== this.asset || layer !== this.layer; + }); + + this.engine.state({ characterLayers: show }); + return { advance: true }; + } + + override async willRevert(): Promise { + if (this.engine.history('characterLayer').length <= 0) { + return Promise.reject(); + } + } + + override async revert(): Promise { + for (let i = this.engine.history('characterLayer').length - 1; i >= 0; i--) { + const { parent, layers } = this.engine.history('characterLayer')[i]; + const historyStatement = layers.find((s: any) => { + const { previous, statement } = s; + const [show, character, asset, name] = (statement || previous).split(' '); + const [id, layer] = asset.split(':'); + + return id === this.asset && layer === this.layer; + }); + + if (typeof historyStatement === 'object' && historyStatement !== null) { + const { statement, previous } = historyStatement as { statement: string | null; previous: string | null }; + const [, , asset] = ((statement || previous) ?? '').split(' '); + const [id, layer] = asset?.split(':') ?? []; + + if (id === this.asset && layer === this.layer) { + if (statement === null) { + return; + } + const revertAction = this.engine.prepareAction(statement, { cycle: 'Application' }) as ActionInstance | null; + if (revertAction !== null) { + await revertAction.apply(); + await revertAction.didApply({ updateHistory: false, updateState: true }); + } + return; + } + } + } + throw new Error('Failed to revert HideCharacterLayer'); + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default HideCharacterLayer; diff --git a/src/actions/HideImage.js b/src/actions/HideImage.js deleted file mode 100644 index 5b28a2a..0000000 --- a/src/actions/HideImage.js +++ /dev/null @@ -1,111 +0,0 @@ -import { Action } from './../lib/Action'; - -export class HideImage extends Action { - - static matchString ([ hide, type ]) { - return hide === 'hide' && type === 'image'; - } - - constructor ([ hide, type, asset, ...classes ]) { - super (); - this.asset = asset; - - this.element = this.engine.element ().find (`[data-image="${this.asset}"]`); - - if (typeof classes !== 'undefined') { - this.classes = classes; - } else { - this.classes = []; - } - this.classes = this.classes.filter ((c) => (c !== 'at' && c !== 'with')); - } - - apply () { - const currentPosition = this.element.data ('position'); - const position = this._statement.match (/at\s(\S*)/); - - const oldClasses = [...this.element.get (0).classList]; - - for (const oldClass of oldClasses) { - if (oldClass !== currentPosition || position instanceof Array) { - this.element.removeClass (oldClass); - } - } - - if (position instanceof Array) { - // If it was, we'll set that position to the character - const [at, positionClass] = position; - this.element.data ('position', positionClass); - } - - this.element.addClass ('animated'); - - const durationPosition = this.classes.indexOf ('duration'); - - if (durationPosition > -1) { - this.element.style ('animation-duration', this.classes[durationPosition + 1]); - } else { - this.element.style ('animation-duration', ''); - } - - if (this.classes.length > 0) { - for (const newClass of this.classes) { - this.element.addClass (newClass); - } - this.element.data ('visibility', 'invisible'); - this.element.on ('animationend', (e) => { - if (e.target.dataset.visibility === 'invisible') { - // Remove only if the animation ends while the element is not visible - e.target.remove (); - } - }); - } else { - this.element.remove (); - } - - return Promise.resolve (); - } - - didApply () { - const show = this.engine.state ('images').filter ((item) => { - const [ show, type, asset, ] = item.split (' '); - return asset !== this.asset; - }); - - this.engine.state ({ images: show }); - return Promise.resolve ({ advance: true }); - } - - willRevert () { - if (this.engine.history ('image').length === 0) { - return Promise.reject ('Image history was empty.'); - } - return Promise.resolve (); - } - - revert () { - // return this.engine.run (this.engine.history ('image').pop (), false); - for (let i = this.engine.history ('image').length - 1; i >= 0; i--) { - const last = this.engine.history ('image')[i]; - const [show, image, asset] = last.split (' '); - if (asset === this.asset) { - const action = this.engine.prepareAction (last, { cycle: 'Application' }); - return action.willApply ().then (() => { - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: true }); - }); - }); - } - } - - Promise.reject ('Could not find a previous state to revert to'); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -HideImage.id = 'Hide::Image'; - -export default HideImage; \ No newline at end of file diff --git a/src/actions/HideImage.ts b/src/actions/HideImage.ts new file mode 100644 index 0000000..535dd4e --- /dev/null +++ b/src/actions/HideImage.ts @@ -0,0 +1,128 @@ +import Action from './../lib/Action'; +import { FancyError } from './../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + +export class HideImage extends Action { + + static override id = 'Hide::Image'; + + static override matchString([hide, type]: string[]): boolean { + return hide === 'hide' && type === 'image'; + } + + asset: string; + element: any; + classes: string[]; + + constructor([hide, type, asset, ...classes]: string[]) { + super(); + this.asset = asset; + + this.element = this.engine.element().find(`[data-image="${this.asset}"]`); + + if (typeof classes !== 'undefined') { + this.classes = classes; + } else { + this.classes = []; + } + this.classes = this.classes.filter((c) => (c !== 'at' && c !== 'with')); + } + + override async willApply(): Promise { + if (!this.element.exists()) { + FancyError.show('action:hide_image:not_shown', { + asset: this.asset, + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + throw new Error('Attempted to hide an image that was not being shown.'); + } + } + + override async apply(): Promise { + const currentPosition = this.element.data('position'); + const position = (this._statement as string).match(/at\s(\S*)/); + + const oldClasses = [...this.element.get(0).classList]; + + for (const oldClass of oldClasses) { + if (oldClass !== currentPosition || position instanceof Array) { + this.element.removeClass(oldClass); + } + } + + if (position instanceof Array) { + // If it was, we'll set that position to the character + const [at, positionClass] = position; + this.element.data('position', positionClass); + } + + this.element.addClass('animated'); + + const durationPosition = this.classes.indexOf('duration'); + + if (durationPosition > -1) { + this.element.style('animation-duration', this.classes[durationPosition + 1]); + } else { + this.element.style('animation-duration', ''); + } + + if (this.classes.length > 0) { + for (const newClass of this.classes) { + this.element.addClass(newClass); + } + this.element.data('visibility', 'invisible'); + this.element.on('animationend', (e: any) => { + if (e.target.dataset.visibility === 'invisible') { + // Remove only if the animation ends while the element is not visible + e.target.remove(); + } + }); + } else { + this.element.remove(); + } + } + + override async didApply(): Promise { + const show = this.engine.state('images').filter((item: string) => { + const [show, type, asset,] = item.split(' '); + return asset !== this.asset; + }); + + this.engine.state({ images: show }); + return { advance: true }; + } + + override async willRevert(): Promise { + if (this.engine.history('image').length === 0) { + return Promise.reject('Image history was empty.'); + } + } + + override async revert(): Promise { + // return this.engine.run (this.engine.history ('image').pop (), false); + const history = this.engine.history('image') as string[]; + for (let i = history.length - 1; i >= 0; i--) { + const last = history[i]; + const [, , asset] = last.split(' '); + if (asset === this.asset) { + const action = this.engine.prepareAction(last, { cycle: 'Application' }) as import('../lib/types').ActionInstance | null; + if (action !== null) { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: true }); + } + return; + } + } + + throw new Error('Could not find a previous state to revert to'); + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default HideImage; \ No newline at end of file diff --git a/src/actions/HideParticles.js b/src/actions/HideParticles.js deleted file mode 100644 index 23b80b1..0000000 --- a/src/actions/HideParticles.js +++ /dev/null @@ -1,47 +0,0 @@ -import { Action } from './../lib/Action'; - -export class HideParticles extends Action { - - static matchString ([ hide, type ]) { - return hide === 'hide' && type === 'particles'; - } - - constructor ([ hide, type ]) { - super (); - } - - apply () { - this.engine.action ('Particles').stop (); - return Promise.resolve (); - } - - didApply () { - this.engine.state ({ - particles: '' - }); - return Promise.resolve ({ advance: true }); - } - - revert () { - if (this.engine.history ('particle').length > 0) { - const last = this.engine.history ('particle')[this.engine.history ('particle').length - 1]; - - const action = this.engine.prepareAction (last, { cycle: 'Application' }); - return action.willApply ().then (() => { - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: true }); - }); - }); - } else { - return Promise.resolve (); - } - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -HideParticles.id = 'Hide::Particles'; - -export default HideParticles; \ No newline at end of file diff --git a/src/actions/HideParticles.ts b/src/actions/HideParticles.ts new file mode 100644 index 0000000..b9455e4 --- /dev/null +++ b/src/actions/HideParticles.ts @@ -0,0 +1,49 @@ +import Action from './../lib/Action'; +import { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types'; + +export class HideParticles extends Action { + + static override id = 'Hide::Particles'; + + static override matchString([hide, type]: string[]): boolean { + return hide === 'hide' && type === 'particles'; + } + + constructor([hide, type]: string[]) { + super(); + } + + override async apply(): Promise { + const particlesAction = this.engine.action('Particles') as { stop?: () => void } | undefined; + if (particlesAction?.stop) { + particlesAction.stop(); + } + } + + override async didApply(): Promise { + this.engine.state({ + particles: '' + }); + return { advance: true }; + } + + override async revert(): Promise { + const history = this.engine.history('particle') as string[]; + if (history.length > 0) { + const last = history[history.length - 1]; + + const action = this.engine.prepareAction(last, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: true }); + } + } + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default HideParticles; \ No newline at end of file diff --git a/src/actions/HideTextBox.ts b/src/actions/HideTextBox.ts new file mode 100644 index 0000000..bd62fe0 --- /dev/null +++ b/src/actions/HideTextBox.ts @@ -0,0 +1,53 @@ +import Action from './../lib/Action'; +import type TextBox from './../components/text-box'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + +export class HideTextBox extends Action { + + static override id = 'Hide::TextBox'; + + static override async setup(): Promise { + this.engine.state({ + textboxHidden: false + }); + } + + static override async reset(): Promise { + this.engine.state({ + textboxHidden: false + }); + } + + static override async onLoad(): Promise { + if (this.engine.state('textboxHidden') === true) { + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as TextBox | undefined; + textBox?.setState({ hidden: true }); + } + } + + static override matchString([hide, type]: string[]): boolean { + return hide === 'hide' && type === 'textbox'; + } + + override async apply(): Promise { + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as TextBox | undefined; + textBox?.setState({ hidden: true }); + } + + override async didApply(): Promise { + this.engine.state({ textboxHidden: true }); + return { advance: true }; + } + + override async revert(): Promise { + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as TextBox | undefined; + textBox?.setState({ hidden: false }); + } + + override async didRevert(): Promise { + this.engine.state({ textboxHidden: false }); + return { advance: true, step: true }; + } +} + +export default HideTextBox; diff --git a/src/actions/HideVideo.js b/src/actions/HideVideo.js deleted file mode 100644 index 2d4f88b..0000000 --- a/src/actions/HideVideo.js +++ /dev/null @@ -1,75 +0,0 @@ -import { Action } from './../lib/Action'; - -export class HideVideo extends Action { - - - static matchString ([ hide, type ]) { - return hide === 'hide' && type === 'video'; - } - - constructor ([ hide, type, name, separator, ...classes ]) { - super (); - this.name = name; - if (typeof classes !== 'undefined') { - this.classes = classes; - } else { - this.classes = []; - } - } - - apply () { - const element = this.engine.element ().find (`[data-video="${this.name}"]`); - if (this.classes.length > 0) { - element.addClass ('animated'); - for (const newClass of this.classes) { - if (newClass) { - element.addClass (newClass); - } - } - - element.data ('visibility', 'invisible'); - element.on ('animationend', (e) => { - if (e.target.dataset.visibility === 'invisible') { - // Remove only if the animation ends while the element is not visible - e.target.remove (); - } - }); - } else { - this.engine.element ().find (`[data-video="${this.name}"]`).remove (); - } - return Promise.resolve (); - } - - didApply () { - for (let i = this.engine.state ('videos').length - 1; i >= 0; i--) { - const last = this.engine.state ('videos')[i]; - const [show, video, name, mode] = last.split (' '); - if (name === this.name) { - this.engine.state ('videos').splice (i, 1); - break; - } - } - return Promise.resolve ({ advance: true }); - } - - revert () { - for (let i = this.engine.history ('video').length - 1; i >= 0; i--) { - const last = this.engine.history ('video')[i]; - const [show, video, name, mode] = last.split (' '); - if (name === this.name) { - this.engine.history ('video').splice (i, 1); - return this.engine.run (last, false); - - } - } - return Promise.resolve (); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -HideVideo.id = 'Hide::Video'; - -export default HideVideo; \ No newline at end of file diff --git a/src/actions/HideVideo.ts b/src/actions/HideVideo.ts new file mode 100644 index 0000000..fa5361d --- /dev/null +++ b/src/actions/HideVideo.ts @@ -0,0 +1,95 @@ +import Action from './../lib/Action'; +import Video from './Video'; +import { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types'; + +export class HideVideo extends Action { + + static override id = 'Hide::Video'; + + static override matchString([hide, type]: string[]): boolean { + return hide === 'hide' && type === 'video'; + } + + name: string; + classes: string[]; + + constructor([hide, type, name, separator, ...classes]: string[]) { + super(); + this.name = name; + if (typeof classes !== 'undefined') { + this.classes = classes; + } else { + this.classes = []; + } + } + + override async apply(): Promise { + const element = this.engine.element().find(`[data-video="${this.name}"]`); + const videoElement = element.get(0) as HTMLVideoElement | undefined; + + if (this.classes.length > 0) { + element.addClass('animated'); + for (const newClass of this.classes) { + if (newClass) { + element.addClass(newClass); + } + } + + element.data('visibility', 'invisible'); + element.on('animationend', (e: Event) => { + const target = e.target as HTMLVideoElement; + if (target.dataset?.visibility === 'invisible') { + // Cleanup video before removal + Video.cleanupVideoElement(target); + target.remove(); + } + }); + } else { + // Cleanup video before removal + if (videoElement) { + Video.cleanupVideoElement(videoElement); + } + element.remove(); + } + } + + override async didApply(): Promise { + let found = false; + this.engine.state({ + videos: this.engine.state('videos').filter((item: string) => { + if (!found) { + const [, , name] = item.split(' '); + if (name === this.name) { + found = true; + return false; + } + } + return true; + }) + }); + return { advance: true }; + } + + override async revert(): Promise { + const history = this.engine.history('video') as string[]; + for (let i = history.length - 1; i >= 0; i--) { + const last = history[i]; + const [, , name] = last.split(' '); + if (name === this.name) { + const action = this.engine.prepareAction(last, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: true }); + } + return; + } + } + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default HideVideo; \ No newline at end of file diff --git a/src/actions/InputModal.js b/src/actions/InputModal.js deleted file mode 100644 index f7b4180..0000000 --- a/src/actions/InputModal.js +++ /dev/null @@ -1,162 +0,0 @@ -import { Action } from './../lib/Action'; -import { Util } from '@aegis-framework/artemis'; - -export class InputModal extends Action { - - static setup () { - this.engine.global ('_InputTimer', null); - - this.engine.global ('_input_just_rolled_back', false); - - return Promise.resolve (); - } - - static reset () { - this.engine.global ('_InputTimer', null); - - this.engine.global ('_input_just_rolled_back', false); - - return Promise.resolve (); - } - - static afterRevert () { - // When a choice gets reverted, it pushes a `true` value to this global variable. - // As soon as it gets reverted, this function is run and it pops the `true` out of - // the array, meaning it was just reverted and the choice should be showing on screeen again. - if (this.engine.global ('_input_just_rolled_back')) { - this.engine.global ('_input_just_rolled_back', false); - return Promise.resolve (); - } - - // If the player reverts once more while the choice is being shown, then we'll reach this part - // and we can clean up any variables we need to. - const timer = this.engine.global ('_InputTimer'); - - if (timer !== null) { - clearTimeout (timer.props.timer); - if (timer.parentNode !== null) { - timer.element ().remove (); - } - this.engine.global ('_InputTimer', null); - } - return Promise.resolve (); - } - - - static matchObject ({ Input }) { - return typeof Input !== 'undefined'; - } - - constructor ({ Input }) { - super (); - this.statement = Input; - - if (typeof this.statement.Validation !== 'function') { - this.statement.Validation = () => true; - } - - if (typeof this.statement.Save !== 'function') { - this.statement.Save = () => true; - } - - if (typeof this.statement.Warning !== 'string') { - this.statement.Warning = ''; - } - - if (typeof this.statement.actionString !== 'string') { - this.statement.actionString = 'OK'; - } - - if (typeof this.statement.Class !== 'string') { - this.statement.Class = ''; - } - - if (['string', 'number'].indexOf (typeof this.statement.Default) === -1 || this.statement.Default === '') { - this.statement.Default = null; - } - - if (typeof this.statement.Type !== 'string') { - this.statement.Type = 'text'; - } - - if (typeof this.statement.Options !== 'object' || this.statement.Options === null) { - this.statement.Options = []; - } - - if (typeof this.statement.Timer !== 'object') { - this.statement.Timer = null; - } - - if (typeof this.statement.Attributes !== 'object') { - this.statement.Attributes = {}; - } - } - - apply () { - this.engine.global ('block', true); - - const input = document.createElement ('text-input'); - - const { Text, Warning, Save, Validation, actionString, Class, Type, Options, Default, Timer, Attributes } = this.statement; - - input.setProps ({ - text: this.engine.replaceVariables (Text), - type: Type, - options: Options, - default: Default, - warning: Warning, - onSubmit: Save, - validate: Validation, - attributes: Attributes, - actionString, - callback: () => { - const timer = this.engine.global ('_InputTimer'); - - if (timer !== null) { - clearTimeout (timer.props.timer); - if (timer.parentNode !== null) { - timer.element ().remove (); - } - this.engine.global ('_InputTimer', null); - } - - this.engine.global ('block', false); - this.engine.proceed ({ userInitiated: true, skip: false, autoPlay: false }); - }, - classes: Class.trim () - }); - - if (Timer !== null) { - const timer_display = document.createElement ('timer-display'); - timer_display.setProps (Timer); - this.engine.global ('_InputTimer', timer_display); - this.engine.element ().find ('[data-screen="game"]').prepend (timer_display); - } - - this.engine.element ().find ('[data-screen="game"]').append (input); - - return Promise.resolve (); - } - - willRevert () { - if (typeof this.statement.Revert === 'function') { - return Promise.resolve (); - } - return Promise.reject ('Input is missing a `Revert` function.'); - } - - revert () { - return Util.callAsync (this.statement.Revert, this.engine).then (() => { - return this.apply (); - }); - } - - didRevert () { - this.engine.global ('_input_just_rolled_back', true); - return Promise.resolve ({ advance: false, step: true }); - } -} - -InputModal.id = 'Input'; - -export default InputModal; \ No newline at end of file diff --git a/src/actions/InputModal.ts b/src/actions/InputModal.ts new file mode 100644 index 0000000..cdb6e29 --- /dev/null +++ b/src/actions/InputModal.ts @@ -0,0 +1,178 @@ +import Action from './../lib/Action'; +import { Util } from '@aegis-framework/artemis'; +import { ActionRevertResult } from '../lib/types'; +import type TimerDisplayComponent from './../components/timer-display'; +import type TextInputComponent from './../components/text-input'; + +export class InputModal extends Action { + + static override id = 'Input'; + static override blocking = false; + + static override async setup(): Promise { + this.engine.globals({ + _InputTimer: null, + _input_just_rolled_back: false, + }); + } + + static override async reset(): Promise { + this.engine.globals({ + _InputTimer: null, + _input_just_rolled_back: false, + }); + } + + static override async afterRevert(): Promise { + // When a choice gets reverted, it pushes a `true` value to this global variable. + // As soon as it gets reverted, this function is run and it pops the `true` out of + // the array, meaning it was just reverted and the choice should be showing on screeen again. + if (this.engine.global('_input_just_rolled_back')) { + this.engine.global('_input_just_rolled_back', false); + return; + } + + // If the player reverts once more while the choice is being shown, then we'll reach this part + // and we can clean up any variables we need to. + const timer = this.engine.global('_InputTimer'); + + if (typeof timer !== 'undefined' && timer !== null) { + if (timer.props?.timer) { + clearTimeout(timer.props.timer); + } + + if (timer.parentNode !== null && timer.element) { + timer.element().remove(); + } + + this.engine.global('_InputTimer', null); + } + } + + static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise { + if (InputModal.blocking) { + throw new Error('Waiting for user input'); + } + } + + static override async willRollback(): Promise { + InputModal.blocking = false; + } + + static override matchObject({ Input }: any): boolean { + return typeof Input !== 'undefined'; + } + + statement: any; + + constructor({ Input }: any) { + super(); + this.statement = Input; + + if (typeof this.statement.Validation !== 'function') { + this.statement.Validation = () => true; + } + + if (typeof this.statement.Save !== 'function') { + this.statement.Save = () => true; + } + + if (typeof this.statement.Warning !== 'string') { + this.statement.Warning = ''; + } + + if (typeof this.statement.actionString !== 'string') { + this.statement.actionString = 'OK'; + } + + if (typeof this.statement.Class !== 'string') { + this.statement.Class = ''; + } + + if (['string', 'number'].indexOf(typeof this.statement.Default) === -1 || this.statement.Default === '') { + this.statement.Default = null; + } + + if (typeof this.statement.Type !== 'string') { + this.statement.Type = 'text'; + } + + if (typeof this.statement.Options !== 'object' || this.statement.Options === null) { + this.statement.Options = []; + } + + if (typeof this.statement.Timer !== 'object') { + this.statement.Timer = null; + } + + if (typeof this.statement.Attributes !== 'object') { + this.statement.Attributes = {}; + } + } + + override async apply(): Promise { + InputModal.blocking = true; + + const input = document.createElement('text-input') as TextInputComponent; + + const { Text, Warning, Save, Validation, actionString, Class, Type, Options, Default, Timer, Attributes } = this.statement; + + input.setProps({ + text: this.engine.replaceVariables(Text), + type: Type, + options: Options, + default: Default, + warning: Warning, + onSubmit: Save, + validate: Validation, + attributes: Attributes, + actionString, + callback: () => { + const timer = this.engine.global('_InputTimer'); + + if (typeof timer !== 'undefined' && timer !== null) { + if (timer.props?.timer) { + clearTimeout(timer.props.timer); + } + if (timer.parentNode !== null && timer.element) { + timer.element().remove(); + } + this.engine.global('_InputTimer', null); + } + + InputModal.blocking = false; + this.engine.proceed({ userInitiated: true, skip: false, autoPlay: false }); + }, + classes: Class.trim() + }); + + if (Timer !== null) { + const timer_display = document.createElement('timer-display') as TimerDisplayComponent; + timer_display.setProps(Timer); + this.engine.global('_InputTimer', timer_display); + this.engine.element().find('[data-screen="game"]').prepend(timer_display); + } + + this.engine.element().find('[data-screen="game"]').append(input); + } + + override async willRevert(): Promise { + if (typeof this.statement.Revert === 'function') { + return; + } + + throw new Error('Input is missing a `Revert` function.'); + } + + override async revert(): Promise { + await Util.callAsync(this.statement.Revert, this.engine); + return this.apply(); + } + + override async didRevert(): Promise { + this.engine.global('_input_just_rolled_back', true); + return { advance: false, step: true }; + } +} + +export default InputModal; \ No newline at end of file diff --git a/src/actions/Jump.js b/src/actions/Jump.js deleted file mode 100644 index e6467ed..0000000 --- a/src/actions/Jump.js +++ /dev/null @@ -1,112 +0,0 @@ -import { Action } from './../lib/Action'; -import { FancyError } from '../lib/FancyError'; - -export class Jump extends Action { - - static setup () { - this.engine.history ('label'); - this.engine.history ('jump'); - return Promise.resolve (); - } - - static bind (selector) { - this.engine.registerListener ('jump', { - callback: (element) => { - this.engine.run (`jump ${element.data('jump')}`, false); - } - }); - return Promise.resolve (); - } - - static matchString ([ action ]) { - return action === 'jump'; - } - - constructor ([ action, label ]) { - super (); - this.label = label; - } - - willApply () { - if (typeof this.engine.script (this.label) !== 'undefined') { - this.engine.stopAmbient (); - this.engine.showScreen ('game'); - return Promise.resolve (); - } - - FancyError.show ( - `The label "${this.label}" does not exist`, - `Monogatari attempted to jump to the label named "${this.label}" but it wasn't found on the script.`, - { - 'Missing Label': this.label, - 'You may have meant one of these': Object.keys (this.engine.script ()), - 'Statement': `"${this._statement}"`, - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check if the label in your jump statement is correct and that you have also defined it correctly.' - } - } - ); - - return Promise.reject ('Label does not exist.'); - } - - apply () { - this.engine.history ('jump').push ({ - source: { - label: this.engine.state ('label'), - step: this.engine.state ('step') - }, - destination: { - label: this.label, - step: 0 - } - }); - this.engine.state ({ - step: 0, - label: this.label - }); - - const textBox = this.engine.element ().find ('[data-component="text-box"]').get (0); - - if (textBox.props.mode !== 'nvl') { - this.engine.action ('Dialog').reset (); - } - - this.engine.run (this.engine.label ()[this.engine.state ('step')]); - this.engine.history ('label').push (this.label); - - return Promise.resolve (); - } - - // Jump is right now not reversible due to complications with the logic for it - willRevert () { - if (this.engine.history ('jump').length > 0) { - return Promise.resolve (); - } - return Promise.reject ('No elements in history available.'); - } - - revert () { - const last = this.engine.history ('jump')[this.engine.history ('jump').length - 1]; - if (typeof last !== 'undefined') { - this.engine.state ({ - step: last.source.step, - label: last.source.label - }); - return Promise.resolve (); - } - return Promise.reject ('No elements in history available.'); - } - - didRevert () { - this.engine.history ('jump').pop (); - this.engine.history ('label').pop (); - return Promise.resolve ({ advance: true, step: false }); - } -} - -Jump.id = 'Jump'; - -export default Jump; \ No newline at end of file diff --git a/src/actions/Jump.ts b/src/actions/Jump.ts new file mode 100644 index 0000000..2ff45dc --- /dev/null +++ b/src/actions/Jump.ts @@ -0,0 +1,107 @@ +import Action from './../lib/Action'; +import { FancyError } from '../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult, LabelHistoryItem } from '../lib/types'; +import type { DOM } from '@aegis-framework/artemis'; +export class Jump extends Action { + + static override id = 'Jump'; + + static override async setup(): Promise { + this.engine.history('label'); + this.engine.history('jump'); + } + + static override async bind(selector: string): Promise { + this.engine.registerListener('jump', { + callback: (event: Event, element: DOM) => { + this.engine.run(`jump ${element.data('jump')}`, false); + } + }); + } + + static override matchString([action]: string[]): boolean { + return action === 'jump'; + } + + label: string; + + constructor([action, label]: string[]) { + super(); + this.label = label; + } + + override async willApply(): Promise { + if (typeof this.engine.script(this.label) !== 'undefined') { + this.engine.stopAmbient(); + this.engine.showScreen('game'); + return Promise.resolve(); + } + + FancyError.show('action:jump:label_not_found', { + targetLabel: this.label, + availableLabels: Object.keys(this.engine.script() as Record), + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + + throw new Error('Label does not exist.'); + } + + override async apply(): Promise { + (this.engine.history('jump') as Array<{ source: { label: string; step: number }; destination: { label: string; step: number } }>).push({ + source: { + label: this.engine.state('label'), + step: this.engine.state('step') + }, + destination: { + label: this.label, + step: 0 + } + }); + this.engine.state({ + step: 0, + label: this.label + }); + + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as (HTMLElement & { props?: { mode?: string } }) | undefined; + + if (textBox?.props?.mode !== 'nvl') { + const dialogAction = this.engine.action('Dialog'); + if (dialogAction) { + (dialogAction as unknown as { reset: () => void }).reset(); + } + } + + this.engine.run(this.engine.label()[this.engine.state('step')]); + (this.engine.history('label') as LabelHistoryItem[]).push({ label: this.label, step: this.engine.state('step') }); + } + + // Jump is right now not reversible due to complications with the logic for it + override async willRevert(): Promise { + if (this.engine.history('jump').length > 0) { + return Promise.resolve(); + } + throw new Error('No elements in history available.'); + } + + override async revert(): Promise { + const last = this.engine.history('jump')[this.engine.history('jump').length - 1]; + if (typeof last !== 'undefined') { + this.engine.state({ + step: last.source.step, + label: last.source.label + }); + return Promise.resolve(); + } + throw new Error('No elements in history available.'); + } + + override async didRevert(): Promise { + this.engine.history('jump').pop(); + this.engine.history('label').pop(); + return { advance: true, step: false }; + } +} + +export default Jump; \ No newline at end of file diff --git a/src/actions/Message.js b/src/actions/Message.js deleted file mode 100644 index ae48b72..0000000 --- a/src/actions/Message.js +++ /dev/null @@ -1,143 +0,0 @@ -import { Action } from './../lib/Action'; -import { FancyError } from './../lib/FancyError'; - - -export class Message extends Action { - - static bind () { - // The close action removes the active class from the element it - // points to. - this.engine.on ('click', '[data-component="message-modal"] [data-action="close"]', () => { - this.engine.global ('block', false); - this.engine.element ().find ('[data-component="message-modal"]').remove (); - this.engine.proceed ({ userInitiated: true, skip: false, autoPlay: false }); - }); - return Promise.resolve (); - } - - static matchString ([ show, type ]) { - return show === 'show' && type === 'message'; - } - - static messages (object = null) { - if (object !== null) { - if (typeof object === 'string') { - return Message._configuration.messages[object]; - } else { - Message._configuration.messages = Object.assign ({}, Message._configuration.messages, object); - } - } else { - return Message._configuration.messages; - } - } - - constructor ([ show, type, message, ...classes ]) { - super (); - this.id = message; - this.message = this.constructor.messages (message); - this.classes = classes; - } - - willApply () { - if (typeof this.message !== 'undefined') { - // Check if the old format is being use and translate it to the new one - if (this.message.Title && this.message.Subtitle && this.message.Message) { - this.message.title = this.message.Title; - this.message.subtitle = this.message.Subtitle; - this.message.body = this.message.Message; - } - return Promise.resolve (); - } else { - FancyError.show ( - `The message "${this.id}" was not found`, - `Monogatari attempted to retrieve a message named "${this.id}" but it didn't exist in the messages object.`, - { - 'Message': this.id, - 'You may have meant': Object.keys (Message.messages ()), - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check the message name is correct and that you have defined it previously. A Message is defined as follows:', - '_1':` -
-								
-									this.engine.action ('message').mesages ({
-										'Welcome': {
-											title: 'Welcome!',
-											subtitle: 'This is the Monogatari VN Engine',
-											body: 'This is where the magic gets done!'
-										}
-									});
-								
-							
- `, - '_2': 'Notice the message defined uses a name or an id, in this case it was set to "Welcome" and to show it, you must use that exact name:', - '_3':` -
"show message Welcome"
- ` - } - } - ); - } - - return Promise.reject (); - } - - apply () { - - this.engine.global ('block', true); - - const element = document.createElement ('message-modal'); - - if (typeof this.message.title === 'string') { - element.setProps ({ - title: this.engine.replaceVariables (this.message.title) - }); - } - - if (typeof this.message.subtitle === 'string') { - element.setProps ({ - subtitle: this.engine.replaceVariables (this.message.subtitle) - }); - } - - if (typeof this.message.body === 'string') { - element.setProps ({ - body: this.engine.replaceVariables (this.message.body) - }); - } - - if (typeof this.message.actionString === 'string') { - element.setProps ({ - actionString: this.engine.replaceVariables (this.message.actionString) - }); - } - - for (const newClass of this.classes) { - if (newClass) { - element.classList.add (newClass); - } - } - - this.engine.element ().find ('[data-screen="game"]').append (element); - - - return Promise.resolve (); - } - - revert () { - this.engine.component ('message-modal').instances ().remove (); - return this.apply (); - } - - didRevert () { - return Promise.resolve ({ advance: false, step: true }); - } -} - -Message.id = 'Message'; -Message._configuration = { - messages: {} -}; - -export default Message; \ No newline at end of file diff --git a/src/actions/Message.ts b/src/actions/Message.ts new file mode 100644 index 0000000..aea4123 --- /dev/null +++ b/src/actions/Message.ts @@ -0,0 +1,133 @@ +import Action from './../lib/Action'; +import { FancyError } from './../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + + +export class Message extends Action { + static override id = 'Message'; + static override blocking = false; + + static _configuration: any = { + messages: {} + }; + + static override async bind(): Promise { + // The close action removes the active class from the element it + // points to. + this.engine.on('click', '[data-component="message-modal"] [data-action="close"]', () => { + Message.blocking = false; + this.engine.element().find('[data-component="message-modal"]').remove(); + this.engine.proceed({ userInitiated: true, skip: false, autoPlay: false }); + }); + } + + static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise { + if (Message.blocking) { + throw new Error('Message waiting for dismissal'); + } + } + + static override async willRollback(): Promise { + Message.blocking = false; + } + + static override matchString([show, type]: string[]): boolean { + return show === 'show' && type === 'message'; + } + + static messages(object: any = null): any { + if (object !== null) { + if (typeof object === 'string') { + return Message._configuration.messages[object]; + } else { + Message._configuration.messages = Object.assign({}, Message._configuration.messages, object); + } + } else { + return Message._configuration.messages; + } + } + + id: string; + message: any; + classes: string[]; + + constructor([show, type, message, ...classes]: string[]) { + super(); + this.id = message; + this.message = (this.constructor as any).messages(message); + this.classes = classes; + } + + override async willApply(): Promise { + if (typeof this.message !== 'undefined') { + // Check if the old format is being use and translate it to the new one + if (this.message.Title && this.message.Subtitle && this.message.Message) { + this.message.title = this.message.Title; + this.message.subtitle = this.message.Subtitle; + this.message.body = this.message.Message; + } + return Promise.resolve(); + } else { + FancyError.show('action:message:not_found', { + id: this.id, + availableMessages: Object.keys(Message.messages()), + label: this.engine.state('label'), + step: this.engine.state('step') + }); + } + + return Promise.reject(); + } + + override async apply(): Promise { + Message.blocking = true; + + const element = document.createElement('message-modal'); + + if (typeof this.message.title === 'string') { + (element as any).setProps({ + title: this.engine.replaceVariables(this.message.title) + }); + } + + if (typeof this.message.subtitle === 'string') { + (element as any).setProps({ + subtitle: this.engine.replaceVariables(this.message.subtitle) + }); + } + + if (typeof this.message.body === 'string') { + (element as any).setProps({ + body: this.engine.replaceVariables(this.message.body) + }); + } + + if (typeof this.message.actionString === 'string') { + (element as any).setProps({ + actionString: this.engine.replaceVariables(this.message.actionString) + }); + } + + for (const newClass of this.classes) { + if (newClass) { + element.classList.add(newClass); + } + } + + this.engine.element().find('[data-screen="game"]').append(element); + } + + override async revert(): Promise { + const messageModal = this.engine.component('message-modal') as { instances?: () => { remove: () => void } } | undefined; + if (messageModal?.instances) { + messageModal.instances().remove(); + } + return this.apply(); + } + + override async didRevert(): Promise { + return { advance: false, step: true }; + } +} + +export default Message; \ No newline at end of file diff --git a/src/actions/Next.js b/src/actions/Next.js deleted file mode 100644 index d0b17fc..0000000 --- a/src/actions/Next.js +++ /dev/null @@ -1,20 +0,0 @@ -import { Action } from './../lib/Action'; - -export class Next extends Action { - - static matchString ([ action ]) { - return action === 'next'; - } - - didApply () { - return Promise.resolve ({ advance: true }); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -Next.id = 'Next'; - -export default Next; \ No newline at end of file diff --git a/src/actions/Next.ts b/src/actions/Next.ts new file mode 100644 index 0000000..3f2cebe --- /dev/null +++ b/src/actions/Next.ts @@ -0,0 +1,20 @@ +import Action from './../lib/Action'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + +export class Next extends Action { + static override id = 'Next'; + + static override matchString([action]: string[]): boolean { + return action === 'next'; + } + + override async didApply(): Promise { + return { advance: true }; + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default Next; diff --git a/src/actions/Notify.js b/src/actions/Notify.js deleted file mode 100644 index c266913..0000000 --- a/src/actions/Notify.js +++ /dev/null @@ -1,156 +0,0 @@ -import { Action } from './../lib/Action'; -import { FancyError } from './../lib/FancyError'; - -export class Notify extends Action { - - static matchString ([ show, type ]) { - return show === 'show' && type === 'notification'; - } - - static notifications (object = null) { - if (object !== null) { - if (typeof object === 'string') { - return Notify._configuration.notifications[object]; - } else { - Notify._configuration.notifications = Object.assign ({}, Notify._configuration.notifications, object); - } - } else { - return Notify._configuration.notifications; - } - } - - constructor ([ show, type, name, time ]) { - super (); - - this.hasPermission = false; - - // First check if HTML5 notifications are available - if ('Notification' in window) { - - // Finally check if the given notification exists in the object - if (typeof Notify.notifications (name) !== 'undefined') { - this.notification = Object.assign ({}, Notify.notifications (name)); - - if (typeof time !== 'undefined') { - if (!isNaN (time)) { - this.time = parseInt (time); - } else { - FancyError.show ( - 'The specified time was not an integer', - 'Monogatari attempted to transform the given time into an integer value but failed.', - { - 'Specified time': time, - 'Statement': `"${this._statement}"`, - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.', - '_1': 'For example, the following statement would make a notification go away after 5 seconds:', - '_3':` -
"show notification Welcome 5000"
- ` - } - } - ); - } - } - } else { - FancyError.show ( - `The notification "${name}" was not found`, - `Monogatari attempted to retrieve a notification named "${name}" but it didn't exist in the notifications object.`, - { - 'Notification': name, - 'You may have meant': Object.keys (Notify.notifications ()), - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check the notification\'s name is correct and that you have defined it previously. A Notification is defined as follows:', - '_1':` -
-									
-										this.engine.action ('Notification').notifications ({
-											'Welcome': {
-												title: 'Welcome!',
-												body: 'This is the Monogatari VN Engine',
-												icon: ''
-											}
-										});
-									
-								
- `, - '_2': 'Notice the notification defined uses a name or an id, in this case it was set to "Welcome" and to show it, you must use that exact name:', - '_3':` -
"show notification Welcome"
- ` - } - } - ); - } - } else { - console.warn ('Notifications are not supported in this platform.'); - } - } - - willApply () { - if (typeof this.notification !== 'undefined') { - return new Promise ((resolve, reject) => { - // Let's check whether notification permissions have already been granted - if (Notification.permission === 'granted') { - this.hasPermission = true; - resolve (); - } else if (Notification.permission !== 'denied') { - Notification.requestPermission((permission) => { - // If the user accepts, let's create a notification - if (permission === 'granted') { - this.hasPermission = true; - resolve (); - } else { - console.warn ('User denied notifications permission, none will be shown.'); - resolve (); - } - }); - } else { - console.warn ('The permission to display notifications was denied by the user.'); - resolve (); - } - }); - } - - return Promise.resolve (); - } - - apply () { - for (const key of Object.keys (this.notification)) { - if (typeof this.notification[key] === 'string') { - this.notification[key] = this.engine.replaceVariables (this.notification[key]); - } - } - - if (this.hasPermission) { - const notification = new Notification (this.notification.title, this.notification); - - if (typeof this.time !== 'undefined') { - setTimeout(() => { - notification.close (); - }, this.time); - } - } - return Promise.resolve (); - } - - didApply () { - // Advance the game instead of waiting for another click - return Promise.resolve ({ advance: true }); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -Notify.id = 'Notification'; -Notify._configuration = { - notifications: {} -}; - -export default Notify; \ No newline at end of file diff --git a/src/actions/Notify.ts b/src/actions/Notify.ts new file mode 100644 index 0000000..e4c3ab8 --- /dev/null +++ b/src/actions/Notify.ts @@ -0,0 +1,141 @@ +import Action from './../lib/Action'; +import { FancyError } from './../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + +export class Notify extends Action { + static override id = 'Notification'; + static override blocking = false; + + static _configuration: { notifications: Record } = { + notifications: {} + }; + + static override async shouldProceed(): Promise { + if (Notify.blocking) { + throw new Error('Waiting for user input'); + } + } + + static override async willRollback(): Promise { + Notify.blocking = false; + } + + static override matchString([show, type]: string[]): boolean { + return show === 'show' && type === 'notification'; + } + + static notifications(object: Record | string | null = null): any { + if (object !== null) { + if (typeof object === 'string') { + return Notify._configuration.notifications[object]; + } else { + Notify._configuration.notifications = Object.assign({}, Notify._configuration.notifications, object); + } + } else { + return Notify._configuration.notifications; + } + } + + hasPermission: boolean; + notification: any; + time: number | undefined; + + constructor([show, type, name, time]: string[]) { + super(); + + this.hasPermission = false; + + // First check if HTML5 notifications are available + if (!('Notification' in window)) { + console.warn('Notifications are not supported in this platform.'); + } + + // Finally check if the given notification exists in the object + if (typeof Notify.notifications(name) !== 'undefined') { + this.notification = Object.assign({}, Notify.notifications(name)); + + if (typeof time !== 'undefined') { + if (!isNaN(Number(time))) { + this.time = parseInt(time); + } else { + FancyError.show('action:notification:invalid_time', { + time: time, + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + } + } + } else { + FancyError.show('action:notification:not_found', { + name: name, + availableNotifications: Object.keys(Notify.notifications()), + label: this.engine.state('label'), + step: this.engine.state('step') + }); + } + } + + override async willApply(): Promise { + if (!this.notification) { + return; + } + Notify.blocking = true; + + return new Promise((resolve, reject) => { + // Let's check whether notification permissions have already been granted + if (Notification.permission === 'granted') { + this.hasPermission = true; + resolve(); + } else if (Notification.permission !== 'denied') { + Notification.requestPermission((permission) => { + // If the user accepts, let's create a notification + if (permission === 'granted') { + this.hasPermission = true; + resolve(); + } else { + console.warn('User denied notifications permission, none will be shown.'); + resolve(); + } + }); + } else { + console.warn('The permission to display notifications was denied by the user.'); + resolve(); + } + }); + } + + override async apply(): Promise { + if (!this.notification) { + return; + } + + for (const key of Object.keys(this.notification)) { + if (typeof this.notification[key] === 'string') { + this.notification[key] = this.engine.replaceVariables(this.notification[key]); + } + } + + if (this.hasPermission) { + const notification = new Notification(this.notification.title, this.notification); + + if (typeof this.time !== 'undefined') { + setTimeout(() => { + notification.close(); + }, this.time); + } + } + } + + override async didApply(): Promise { + Notify.blocking = false; + // Advance the game instead of waiting for another click + return { advance: true }; + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default Notify; \ No newline at end of file diff --git a/src/actions/Particles.js b/src/actions/Particles.js deleted file mode 100644 index 90df948..0000000 --- a/src/actions/Particles.js +++ /dev/null @@ -1,119 +0,0 @@ -import { Action } from '../lib/Action'; -import { tsParticles } from 'tsparticles'; - -export class Particles extends Action { - - static stop () { - try { - const particles = tsParticles.domItem(0); - if (typeof particles !== 'undefined') { - particles.stop (); - this.engine.element ().find ('#tsparticles').html (''); - } - } catch (e) { - console.error ('An error ocurred while trying to stop particle system.', e); - } - } - - - static setup () { - this.engine.history ('particle'); - this.engine.state ({ - particles: '' - }); - return Promise.resolve (); - } - - static reset () { - this.engine.state ({ - particles: '' - }); - this.stop (); - return Promise.resolve (); - } - - static onLoad () { - const { particles } = this.engine.state (); - if (particles !== '') { - const action = this.engine.prepareAction (particles, { cycle: 'Application' }); - const promise = action.willApply ().then (() => { - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: false }); - }); - }); - return promise; - } - return Promise.resolve (); - } - - static matchString ([ show, type ]) { - return show === 'show' && type === 'particles'; - } - - static particles (object = null) { - if (object !== null) { - if (typeof object === 'string') { - return Particles._configuration.particles[object]; - } else { - Particles._configuration.particles = Object.assign ({}, Particles._configuration.particles, object); - } - } else { - return Particles._configuration.particles; - } - } - - constructor ([ show, type, name ]) { - super (); - if (typeof Particles.particles (name) !== 'undefined') { - this.particles = Particles.particles (name); - this.name = name; - } else { - console.error (`The Particles ${name} could not be shown because it doesn't exist in the particles object.`); - } - } - - willApply () { - if (typeof this.particles !== 'undefined') { - return Promise.resolve (); - } else { - return Promise.reject ('Particle system object does not exist.'); - } - } - - apply () { - return tsParticles.load ('tsparticles', this.particles); - } - - didApply ({ updateHistory = true, updateState = true } = {}) { - if (updateHistory === true) { - this.engine.history ('particle').push (this._statement); - } - - if (updateState === true) { - this.engine.state ({ - particles: this._statement - }); - } - return Promise.resolve ({ advance: true }); - } - - revert () { - Particles.stop (); - return Promise.resolve (); - } - - didRevert () { - this.engine.history ('particle').pop (); - this.engine.state ({ - particles: '' - }); - return Promise.resolve ({ advance: true, step: true }); - } -} - -Particles.id = 'Particles'; -Particles._configuration = { - particles: {} -}; - -export default Particles; \ No newline at end of file diff --git a/src/actions/Particles.ts b/src/actions/Particles.ts new file mode 100644 index 0000000..fce64fa --- /dev/null +++ b/src/actions/Particles.ts @@ -0,0 +1,120 @@ +import Action from '../lib/Action'; +import { tsParticles } from '@tsparticles/engine'; +import { loadSlim } from '@tsparticles/slim'; +import { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types'; + +export class Particles extends Action { + + static override id = 'Particles'; + static _configuration: { particles: Record } = { + particles: {} + }; + + static stop() { + try { + const particles = tsParticles.domItem(0); + if (typeof particles !== 'undefined') { + particles.stop(); + this.engine.element().find('#tsparticles').html(''); + } + } catch (e) { + console.error('An error ocurred while trying to stop particle system.', e); + } + } + + + static override async setup(): Promise { + this.engine.history('particle'); + this.engine.state({ + particles: '' + }); + await loadSlim(tsParticles); + } + + static override async reset(): Promise { + this.engine.state({ + particles: '' + }); + this.stop(); + } + + static override async onLoad(): Promise { + const particles = this.engine.state('particles'); + if (particles !== '') { + const action = this.engine.prepareAction(particles, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: false }); + } + } + } + + static override matchString([show, type]: string[]): boolean { + return show === 'show' && type === 'particles'; + } + + static particles(object: Record | string | null = null): any { + if (object !== null) { + if (typeof object === 'string') { + return Particles._configuration.particles[object]; + } else { + Particles._configuration.particles = Object.assign({}, Particles._configuration.particles, object); + } + } else { + return Particles._configuration.particles; + } + } + + particles: any; + name: string | undefined; + + constructor([show, type, name]: string[]) { + super(); + if (typeof Particles.particles(name) !== 'undefined') { + this.particles = Particles.particles(name); + this.name = name; + } else { + console.error(`The Particles ${name} could not be shown because it doesn't exist in the particles object.`); + } + } + + override async willApply(): Promise { + if (typeof this.particles !== 'undefined') { + return; + } else { + throw new Error('Particle system object does not exist.'); + } + } + + override async apply(): Promise { + await tsParticles.load({ id: 'tsparticles', options: this.particles }); + } + + override async didApply({ updateHistory = true, updateState = true } = {}): Promise { + if (updateHistory === true) { + (this.engine.history('particle') as string[]).push(this._statement as string); + } + + if (updateState === true) { + this.engine.state({ + particles: this._statement as string + }); + } + return { advance: true }; + } + + override async revert(): Promise { + Particles.stop(); + } + + override async didRevert(): Promise { + this.engine.history('particle').pop(); + this.engine.state({ + particles: '' + }); + return { advance: true, step: true }; + } +} + +export default Particles; diff --git a/src/actions/Pause.js b/src/actions/Pause.js deleted file mode 100644 index 7b1bfab..0000000 --- a/src/actions/Pause.js +++ /dev/null @@ -1,109 +0,0 @@ -import { Action } from './../lib/Action'; - -export class Pause extends Action { - - static matchString ([ action ]) { - return action === 'pause'; - } - - constructor ([ pause, type, media ]) { - super (); - - this.type = type; - this.media = media; - - if (typeof media === 'undefined') { - this.player = this.engine.mediaPlayers (type); - } else { - this.player = this.engine.mediaPlayer (type, media); - } - } - - willApply () { - if (this.player) { - return Promise.resolve (); - } - return Promise.reject ('Media player was not defined.'); - } - - apply () { - if (this.player instanceof Array) { - for (const player of this.player) { - player.pause (); - } - } else { - this.player.pause (); - } - return Promise.resolve (); - } - - didApply () { - const state = {}; - if (this.player instanceof Array) { - state[this.type] = this.engine.state (this.type).map ((s) => { - s.paused = true; - return s; - }); - } else { - state[this.type] = [...this.engine.state (this.type).map ((item) => { - if (typeof item.statement === 'string') { - const [play, type, media] = item.statement.split (' '); - - if (media === this.media) { - item.paused = true; - } - return item; - } - return item; - })]; - } - this.engine.state (state); - return Promise.resolve ({ advance: true }); - } - - willRevert () { - if (this.player) { - return Promise.resolve (); - } - return Promise.reject ('Media player was not defined.'); - } - - revert () { - if (this.player instanceof Array) { - const promises = []; - for (const player of this.player) { - promises.push (player.play ()); - } - return Promise.all (promises); - } else { - return this.player.play (); - } - } - - didRevert () { - const state = {}; - if (this.player instanceof Array) { - state[this.type] = this.engine.state (this.type).map ((s) => { - s.paused = false; - return s; - }); - } else { - state[this.type] = [...this.engine.state (this.type).map ((item) => { - if (typeof item.statement === 'string') { - const [play, type, media] = item.statement.split (' '); - - if (media === this.media) { - item.paused = false; - } - return item; - } - })]; - } - this.engine.state (state); - return Promise.resolve ({ advance: true, step: true }); - } -} - -Pause.id = 'Pause'; - -export default Pause; \ No newline at end of file diff --git a/src/actions/Pause.ts b/src/actions/Pause.ts new file mode 100644 index 0000000..aae100d --- /dev/null +++ b/src/actions/Pause.ts @@ -0,0 +1,122 @@ +import Action from './../lib/Action'; +import { ActionApplyResult, ActionRevertResult, MediaType, MediaStateItem } from '../lib/types'; + +export class Pause extends Action { + + static override id = 'Pause'; + + static override matchString([action]: string[]): boolean { + return action === 'pause'; + } + + type: MediaType; + media: string; + player: any; + + constructor([pause, type, media]: string[]) { + super(); + + this.type = type as MediaType; + this.media = media; + + if (typeof media === 'undefined') { + this.player = this.engine.mediaPlayers(type); + } else { + this.player = this.engine.mediaPlayer(type, media); + } + } + + override async willApply(): Promise { + if (this.player) { + return Promise.resolve(); + } + throw new Error('Media player was not defined.'); + } + + override async apply(): Promise { + if (Array.isArray(this.player)) { + for (const player of this.player) { + player.pause(); + } + } else { + this.player.pause(); + } + } + + override async didApply(): Promise { + const currentState = this.engine.state(this.type); + + if (Array.isArray(this.player)) { + const updatedState = currentState.map((s: MediaStateItem) => ({ + ...s, + paused: true + })); + this.engine.state({ [this.type]: updatedState }); + } else { + const updatedState = currentState.map((item: MediaStateItem) => { + if (typeof item.statement === 'string') { + const [play, type, media] = item.statement.split(' '); + // If this.media is undefined, pause all items + // If this.media is defined, only pause matching items + if (this.media === undefined || media === this.media) { + return { ...item, paused: true }; + } + } + return item; + }); + this.engine.state({ [this.type]: updatedState }); + } + + return { advance: true }; + } + + override async willRevert(): Promise { + if (this.player) { + return Promise.resolve(); + } + + throw new Error('Media player was not defined.'); + } + + override async revert(): Promise { + if (Array.isArray(this.player)) { + const promises = []; + for (const player of this.player) { + promises.push(player.play()); + } + await Promise.all(promises); + } else { + await this.player.play(); + } + } + + override async didRevert(): Promise { + const currentState = this.engine.state(this.type); + + if (Array.isArray(this.player)) { + const updatedState = currentState.map((s: MediaStateItem) => ({ + ...s, + paused: false + })); + this.engine.state({ [this.type]: updatedState }); + } else { + const updatedState = currentState.map((item: MediaStateItem) => { + if (typeof item.statement === 'string') { + const [play, type, media] = item.statement.split(' '); + + // If this.media is undefined, unpause all items + // If this.media is defined, only unpause matching items + if (this.media === undefined || media === this.media) { + return { ...item, paused: false }; + } + } + return item; + }); + this.engine.state({ [this.type]: updatedState }); + } + + return { advance: true, step: true }; + } +} + +export default Pause; \ No newline at end of file diff --git a/src/actions/Placeholder.js b/src/actions/Placeholder.js deleted file mode 100644 index 71d7315..0000000 --- a/src/actions/Placeholder.js +++ /dev/null @@ -1,63 +0,0 @@ -import { Action } from './../lib/Action'; -import { Util } from '@aegis-framework/artemis'; - -export class Placeholder extends Action { - - static matchString ([ action ]) { - return action === '$'; - } - - constructor ([action, name, ...args]) { - super (); - - this.name = name; - this.action = this.engine.$ (name); - this.arguments = args; - } - - willApply () { - let promise = Promise.resolve (this.action); - - if (this.name.indexOf ('_') === 0) { - promise = Util.callAsync (this.action, this.engine, ...this.arguments); - } - - return promise.then ((action) => { - this.action = this.engine.prepareAction (action, { cycle: this._cycle }); - return this.action.willApply (); - }); - } - - apply () { - return this.action.apply (); - } - - didApply () { - return this.action.didApply (); - } - - willRevert () { - let promise = Promise.resolve (this.action); - - if (this.name.indexOf ('_') === 0) { - promise = Util.callAsync (this.action, this.engine, ...this.arguments); - } - - return promise.then ((action) => { - this.action = this.engine.prepareAction (action, { cycle: this._cycle }); - return this.action.willRevert (); - }); - } - - revert () { - return this.action.revert (); - } - - didRevert () { - return this.action.didRevert (); - } -} - -Placeholder.id = 'Placeholder'; - -export default Placeholder; diff --git a/src/actions/Placeholder.ts b/src/actions/Placeholder.ts new file mode 100644 index 0000000..42a9639 --- /dev/null +++ b/src/actions/Placeholder.ts @@ -0,0 +1,61 @@ +import Action from './../lib/Action'; +import { Util } from '@aegis-framework/artemis'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + +export class Placeholder extends Action { + static override id = 'Placeholder'; + + static override matchString([action]: string[]): boolean { + return action === '$'; + } + + name: string; + action: any; + arguments: any[]; + + constructor([action, name, ...args]: string[]) { + super(); + + this.name = name; + this.action = this.engine.$(name); + this.arguments = args; + } + + override async willApply(): Promise { + if (this.name.indexOf('_') === 0) { + this.action = await Util.callAsync(this.action, this.engine, ...this.arguments); + } + + this.action = this.engine.prepareAction(this.action, { cycle: this._cycle as 'Application' | 'Revert' }); + + await this.action.willApply(); + } + + override async apply(): Promise { + await this.action.apply(); + } + + override async didApply(options?: { updateHistory?: boolean; updateState?: boolean }): Promise { + return await this.action.didApply(options); + } + + override async willRevert(): Promise { + if (this.name.indexOf('_') === 0) { + this.action = await Util.callAsync(this.action, this.engine, ...this.arguments); + } + + this.action = this.engine.prepareAction(this.action, { cycle: this._cycle as 'Application' | 'Revert' }); + + await this.action.willRevert(); + } + + override async revert(): Promise { + await this.action.revert(); + } + + override async didRevert(context: ActionRevertResult = { advance: true, step: true }): Promise { + return await this.action.didRevert(context); + } +} + +export default Placeholder; diff --git a/src/actions/Play.js b/src/actions/Play.js deleted file mode 100644 index 46da8ac..0000000 --- a/src/actions/Play.js +++ /dev/null @@ -1,393 +0,0 @@ -import { Action } from './../lib/Action'; -import { $_, Text } from '@aegis-framework/artemis'; - -export class Play extends Action { - - static shouldProceed ({ userInitiated, skip }) { - if (userInitiated === false && skip === false) { - const voicePlayers = this.engine.mediaPlayers ('voice'); - - for (const player of voicePlayers) { - if (!player.ended) { - return Promise.reject('Voice player still playing.'); - } - } - } - - return Promise.resolve (); - } - - static willProceed () { - Play.shutUp (); - return Promise.resolve (); - } - - static willRollback () { - Play.shutUp (); - return Promise.resolve (); - } - - static setup () { - this.engine.history ('music'); - this.engine.history ('sound'); - this.engine.history ('voice'); - this.engine.state ({ - music: [], - sound: [], - voice: [] - }); - return Promise.resolve (); - } - - static init (selector) { - - const mediaPlayers = Object.keys (this.engine.mediaPlayers ()); - // Set the volume of all the media components on the settings screen - for (const mediaType of mediaPlayers) { - const element = document.querySelector (`${selector} [data-target="${mediaType}"]`); - if (element !== null) { - element.value = this.engine.preference ('Volume')[Text.capitalize (mediaType)]; - } - } - - return Promise.resolve (); - } - - static bind (selector) { - const engine = this.engine; - - // Volume bars listeners - $_(`${selector} [data-action="set-volume"]`).on ('change mouseover', function () { - const target = this.dataset.target; - const value = this.value; - - if (target === 'video') { - $_('[data-video]').each ((element) => { - element.volume = value; - }); - } else { - const players = engine.mediaPlayers (target); - - // Music volume should also affect the main screen - // ambient music - if (target === 'music') { - if (engine.ambientPlayer instanceof Audio) { - engine.ambientPlayer.volume = value; - } - } - - for (const player of players) { - if (!isNaN (player.dataset.volumePercentage)) { - player.volume = (parseInt(player.dataset.volumePercentage) / 100 ) * value; - } else { - player.volume = value; - } - } - } - - engine.preference ('Volume')[Text.capitalize (target)] = value; - - engine.preferences (engine.preferences (), true); - }); - - this.engine.state ({ - music: [], - sound: [], - voice: [], - }); - - return Promise.resolve (); - } - - static onLoad () { - const mediaPlayers = Object.keys (this.engine.mediaPlayers ()); - const promises = []; - - for (const mediaType of mediaPlayers) { - const state = this.engine.state (mediaType); - - if (typeof state !== 'undefined') { - if (state.length > 0) { - for (const s of state) { - const action = this.engine.prepareAction (s.statement, { cycle: 'Application' }); - const promise = action.willApply ().then (() => { - return action.apply ({ paused: s.paused }).then (() => { - return action.didApply ({ updateHistory: false, updateState: false }); - }); - }); - - promises.push (promise); - } - } - } - } - - if (promises.length > 0) { - return Promise.all (promises); - } - return Promise.resolve (); - } - - static reset () { - - const players = this.engine.mediaPlayers (); - - // Stop and remove all the media players - for (const playerType of Object.keys (players)) { - this.engine.removeMediaPlayer (playerType); - } - - this.engine.state ({ - music: [], - sound: [], - voice: [] - }); - - return Promise.resolve (); - } - - static matchString ([ action ]) { - return action === 'play'; - } - - // Stop the voice player - static shutUp () { - const players = this.engine.mediaPlayers ('voice', true); - for (const media of Object.keys (players)) { - this.engine.removeMediaPlayer ('voice', media); - } - - this.engine.state ({ voice : [] }); - } - - /** - * Prepare the needed values to run the fade function on the given player - * - * @param {string} fadeTime - The time it will take the audio to reach it's maximum audio - * @param {Audio} player - The Audio object to modify - * - * @return {Promise} - This promise will resolve once the fadeIn has ended - */ - static fadeIn (fadeTime, player) { - const time = parseFloat (fadeTime.match (/\d*(\.\d*)?/)); - const increments = time / 0.1; - - const targetVolume = player.volume; - const maxVolume = targetVolume * 100; - - const volume = (maxVolume / increments) / maxVolume; - - const interval = (1000 * time) / increments; - - const expected = Date.now () + interval; - - player.volume = 0; - - player.dataset.fade = 'in'; - player.dataset.maxVolume = maxVolume; - - if (Math.sign (volume) === 1) { - return new Promise ((resolve, reject) => { - setTimeout (() => { - Play.fade (player, volume, targetVolume, interval, expected, resolve); - }, interval); - }); - } else { - // If the volume is set to zero or not valid, the fade effect is disabled - // to prevent errors - return Promise.resolve (); - } - } - - /** - * Fade the player's audio on small iterations until it reaches the maximum value for it - * - * @param {Audio} player The Audio player to which the audio will fadeIn - * @param {number} volume The amount to increase the volume on each iteration - * @param {number} interval The time in milliseconds between each iteration - * @param {Date} expected The expected time the next iteration will happen - * @param {function} resolve The resolve function of the promise returned by the fadeIn function - * - * @return {void} - */ - static fade (player, volume, targetVolume, interval, expected, resolve) { - const now = Date.now () - expected; // the drift (positive for overshooting) - - if (now > interval) { - // something really bad happened. Maybe the browser (tab) was inactive? - // possibly special handling to avoid futile "catch up" run - } - - if (player.volume !== 1 && player.dataset.fade === 'in') { - if (player.volume + volume > targetVolume) { - player.volume = targetVolume; - delete player.dataset.fade; - resolve (); - } else { - player.volume += volume; - expected += interval; - setTimeout (() => { - Play.fade (player, volume, targetVolume, interval, expected, resolve); - }, Math.max (0, interval - now)); // take into account drift - } - } - } - - constructor ([ action, type, media, ...props ]) { - super (); - this.type = type; - - if (this.type === 'music') { - this.directory = this.type; - } else { - // Directories are always plural so we need to add an "s" - this.directory = this.type + 's'; - } - - this.mediaKey = media; - this.props = props; - - this.mediaVolume = this.engine.preference ('Volume')[Text.capitalize (this.type)]; - - // Check if a media was defined or just a `play music` was stated - if (typeof media !== 'undefined' && media !== 'with') { - if (typeof this.engine.asset (this.directory, media) !== 'undefined') { - this.media = this.engine.asset (this.directory, media); - } else { - this.media = media; - } - - let player = this.engine.mediaPlayer (this.type, this.mediaKey); - if (typeof player === 'undefined') { - player = new Audio (); - player.volume = this.mediaVolume; - this.player = this.engine.mediaPlayer (this.type, this.mediaKey, player); - } else { - this.player = player; - } - } else { - this.player = this.engine.mediaPlayers (this.type); - } - } - - willApply () { - if (this.player) { - if (this.player instanceof Audio) { - this.player.loop = false; - } - return Promise.resolve (); - } else { - return Promise.reject ('Media player was not defined.'); - } - } - - apply ({ paused = false } = {}) { - // Check if the audio should have a fade time - const fadePosition = this.props.indexOf ('fade'); - - if (this.player instanceof Audio) { - // Make the audio loop if it was provided as a prop - if (this.props.indexOf ('loop') > -1) { - this.player.loop = true; - } - - if (this.props.indexOf ('volume') > -1) { - const percentage = parseInt (this.props[this.props.indexOf ('volume') + 1]); - this.player.dataset.volumePercentage = percentage; - this.player.volume = (percentage * this.mediaVolume) / 100; - } - - this.player.src = `${this.engine.setting ('AssetsPath').root}/${this.engine.setting('AssetsPath')[this.directory]}/${this.media}`; - - this.player.onended = () => { - const endState = {}; - endState[this.type] = this.engine.state (this.type).filter ((s) => s.statement !== this._statement); - this.engine.state (endState); - this.engine.removeMediaPlayer (this.type, this.mediaKey); - }; - - if (fadePosition > -1) { - Play.fadeIn (this.props[fadePosition + 1], this.player); - } - - if (paused !== true) { - return this.player.play (); - } - this.player.pause (); - return Promise.resolve (); - } else if (this.player instanceof Array) { - const promises = []; - for (const player of this.player) { - if (player.paused && !player.ended) { - if (fadePosition > -1) { - Play.fadeIn (this.props[fadePosition + 1], player); - } - promises.push (player.play ()); - } - } - return Promise.all (promises); - } - return Promise.reject('An error occurred, you probably have a typo on the media you want to play.'); - } - - didApply ({ updateHistory = true, updateState = true } = {}) { - if (updateHistory === true) { - if (this.player instanceof Audio) { - this.engine.history (this.type).push (this._statement); - } - } - - if (updateState === true) { - if (this.player instanceof Audio) { - const state = {}; - state[this.type] = [...this.engine.state (this.type), { statement: this._statement, paused: false }]; - this.engine.state (state); - } else if (this.player instanceof Array) { - const state = {}; - state[this.type] = [...this.engine.state (this.type).map ((item) => { - item.paused = false; - return item; - })]; - this.engine.state (state); - } - } - - return Promise.resolve ({ advance: true }); - } - - revert () { - if (typeof this.mediaKey !== 'undefined') { - this.engine.removeMediaPlayer (this.type, this.mediaKey); - } else if (this.player instanceof Array) { - for (const player of this.player) { - if (!player.paused && !player.ended) { - player.pause (); - } - } - } - - return Promise.resolve (); - } - - didRevert () { - if (typeof this.mediaKey !== 'undefined') { - this.engine.history (this.type).pop (); - - const state = {}; - state[this.type] = this.engine.state (this.type).filter ((m) => m.statement !== this._statement); - this.engine.state (state); - } else if (this.player instanceof Array) { - const state = {}; - state[this.type] = [...this.engine.state (this.type).map ((item) => { - item.paused = true; - return item; - })]; - this.engine.state (state); - } - return Promise.resolve ({ advance: true, step: true }); - } -} - -Play.id = 'Play'; - -export default Play; diff --git a/src/actions/Play.ts b/src/actions/Play.ts new file mode 100644 index 0000000..fcb9cb8 --- /dev/null +++ b/src/actions/Play.ts @@ -0,0 +1,440 @@ +import { $_, Text } from '@aegis-framework/artemis'; +import type { DOM } from '@aegis-framework/artemis'; +import Action from './../lib/Action'; +import AudioPlayer from './../lib/AudioPlayer'; +import { ActionApplyResult, ActionRevertResult, MediaType, MediaStateItem, ActionInstance } from '../lib/types'; + +export class Play extends Action { + + static override id = 'Play'; + + static override async shouldProceed(context?: any): Promise { + if (typeof context !== 'object' || context === null) { + return; + } + + const { userInitiated, skip } = context; + + if (userInitiated === false && skip === false) { + const voicePlayers = this.engine.mediaPlayers('voice') as (HTMLAudioElement | HTMLVideoElement | AudioPlayer)[]; + + for (const player of voicePlayers) { + if (!player.ended) { + throw new Error('Voice player still playing.'); + } + } + } + } + + static override async willProceed(): Promise { + Play.shutUp(); + } + + static override async willRollback(): Promise { + Play.shutUp(); + } + + static override async setup(): Promise { + if (!this.engine.audioContext) { + this.engine.audioContext = new (window.AudioContext || (window as any).webkitAudioContext)(); + } + + // Initialize AudioPlayer worklets for the audio context + AudioPlayer.initialize(this.engine.audioContext).catch((error: any) => { + console.warn('Failed to initialize AudioPlayer worklets:', error); + }); + + this.engine.history('music'); + this.engine.history('sound'); + this.engine.history('voice'); + this.engine.state({ + music: [], + sound: [], + voice: [] + }); + } + + static override async init(selector: string): Promise { + const mediaPlayers = Object.keys(this.engine.mediaPlayers()); + // Set the volume of all the media components on the settings screen + for (const mediaType of mediaPlayers) { + const element = this.engine.element().find(`[data-target="${mediaType}"]`).get(0) as HTMLInputElement | undefined; + + if (element) { + const volumeSettings = this.engine.preference('Volume') as Record; + let volume = volumeSettings[Text.capitalize(mediaType)]; + + if (typeof volume === 'string') { + volume = parseFloat(volume as unknown as string); + } + + element.value = String(volume); + } + } + } + + static override async bind(selector: string): Promise { + const engine = this.engine; + + engine.registerListener('set-volume', { + callback: (event: Event, element: DOM) => { + const target = element.data('target') as string; + let value: string | number = element.value() as string; + + if (typeof value === 'string') { + value = parseFloat(value); + } + + if (target === 'video') { + $_('[data-video]').each((el: any) => { + (el as HTMLMediaElement).volume = value as number; + }); + } else { + const players = engine.mediaPlayers(target) as (HTMLAudioElement | AudioPlayer)[]; + + // Music volume should also affect the main screen ambient music + if (target === 'music') { + const ambientPlayer = engine.ambientPlayer as (HTMLAudioElement & { gainNode?: GainNode }) | null; + if (ambientPlayer && ambientPlayer.gainNode && engine.audioContext) { + ambientPlayer.gainNode.gain.setValueAtTime(value as number, engine.audioContext.currentTime); + } else if (ambientPlayer && ambientPlayer.volume !== undefined) { + ambientPlayer.volume = value as number; + } + } + + for (const player of players) { + // Handle both HTMLAudioElement and AudioPlayer + const volumePercentage = player.dataset?.volumePercentage; + if (volumePercentage && !isNaN(parseInt(volumePercentage))) { + player.volume = (parseInt(volumePercentage) / 100) * (value as number); + } else { + player.volume = value as number; + } + } + } + + const volumeSettings = engine.preference('Volume') as Record; + volumeSettings[Text.capitalize(target)] = value as number; + engine.preferences(engine.preferences(), true); + } + }); + } + + static override async onLoad(): Promise { + const mediaPlayers = Object.keys(this.engine.mediaPlayers()); + const promises: Promise[] = []; + const pausedMedia: { type: string; media: string }[] = []; + + for (const mediaType of mediaPlayers) { + const state = this.engine.state(mediaType as keyof import('../lib/types').StateMap) as MediaStateItem[] | undefined; + + if (typeof state !== 'undefined' && Array.isArray(state)) { + if (state.length > 0) { + for (const s of state) { + const action = this.engine.prepareAction(s.statement, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + const promise = action.willApply().then(() => { + return action.apply().then(() => { + return action.didApply({ updateHistory: false, updateState: false }); + }); + }); + + promises.push(promise); + + // Track media that should be paused after restore + if (s.paused) { + const parts = s.statement.split(' '); + // Statement format: "play [options]" + if (parts.length >= 3) { + pausedMedia.push({ type: parts[1], media: parts[2] }); + } + } + } + } + } + } + } + + if (promises.length > 0) { + await Promise.all(promises); + } + + // Restore paused state for media that was paused when saved + for (const { type, media } of pausedMedia) { + const player = this.engine.mediaPlayer(type, media); + player?.pause(); + } + } + + static override async reset(): Promise { + const players = this.engine.mediaPlayers(); + + // Stop and remove all the media players + for (const playerType of Object.keys(players)) { + this.engine.removeMediaPlayer(playerType); + } + + this.engine.state({ + music: [], + sound: [], + voice: [] + }); + } + + static override matchString([action]: string[]): boolean { + return action === 'play'; + } + + // Stop the voice player + static shutUp(): void { + const players = this.engine.mediaPlayers('voice', true); + for (const media of Object.keys(players)) { + this.engine.removeMediaPlayer('voice', media); + } + + this.engine.state({ voice: [] }); + } + + type: MediaType; + directory: string; + mediaKey: string; + props: string[]; + mediaVolume: number; + media: string; + player: any; + + constructor([action, type, media, ...props]: string[]) { + super(); + this.type = type as MediaType; + this.media = ''; + + if (this.type === 'music') { + this.directory = this.type; + } else { + // Directories are always plural so we need to add an "s" + this.directory = this.type + 's'; + } + + this.mediaKey = media; + this.props = props; + + const volumeSettings = this.engine.preference('Volume') as Record; + + this.mediaVolume = volumeSettings[Text.capitalize(this.type)]; + + // Check if a media was defined or just a `play music` was stated + if (typeof media !== 'undefined' && media !== 'with') { + if (typeof this.engine.asset(this.directory, media) !== 'undefined') { + this.media = this.engine.asset(this.directory, media) as string; + } else { + this.media = media; + } + + const player = this.engine.mediaPlayer(this.type, this.mediaKey); + + // We'll create the player in the apply method since it's async + this.player = typeof player === 'undefined' ? null : player; + } else { + this.player = this.engine.mediaPlayers(this.type); + } + } + + async createAudioPlayer(paused = false, volume = 1): Promise { + const audioContext = this.engine.audioContext!; + const gainNode = audioContext.createGain(); + gainNode.connect(audioContext.destination); + + // Check if audio is already cached + const cacheKey = `${this.directory}/${this.mediaKey}`; + let audioBuffer = this.engine.audioBufferCache(cacheKey); + + if (!audioBuffer) { + // Load and decode audio file + const assetsPath = this.engine.setting('AssetsPath') as Record; + const response = await fetch(`${assetsPath.root}/${assetsPath[this.directory]}/${this.media}`); + const arrayBuffer = await response.arrayBuffer(); + audioBuffer = await audioContext.decodeAudioData(arrayBuffer); + } + + // Parse effects from props + const effects = this.parseEffects(); + + return new AudioPlayer(audioContext, audioBuffer, { + outputNode: gainNode, + effects: effects, + paused: paused, + volume: volume + }); + } + + parseEffects(): Record { + const availableEffects = AudioPlayer.effects(); + + const effects: Record = {}; + + for (const config of availableEffects) { + const index = this.props.indexOf(config.id); + + if (index === -1) { + continue; + } + + const params: Record = {}; + + // Parse parameters based on the effect's parameter list + for (let i = 0; i < config.params.length; i++) { + const paramName = config.params[i]; + const paramValue = this.props[index + 1 + i]; + + if (paramValue !== undefined) { + // Try to parse as number first, fallback to string + const numValue = parseFloat(paramValue); + params[paramName] = isNaN(numValue) ? paramValue : numValue; + } + } + + effects[config.id] = params; + } + + return effects; + } + + override async willApply(): Promise { + if (this.player || this.mediaKey) { + if (this.player instanceof AudioPlayer) { + this.player.loop = false; + } + return; + } + + throw new Error('Media player was not defined.'); + } + + override async apply({ paused = false } = {}): Promise { + // Check if the audio should have a fade time + const fadePosition = this.props.indexOf('fade'); + const shouldLoop = this.props.indexOf('loop') > -1; + const volumePercentage = this.props.indexOf('volume') > -1 ? parseInt(this.props[this.props.indexOf('volume') + 1]) / 100 : 1; + const volume = this.mediaVolume * volumePercentage; + + // Create player if it doesn't exist yet + if (this.player === null) { + this.player = await this.createAudioPlayer(paused, volume); + this.engine.mediaPlayer(this.type, this.mediaKey, this.player); + } + + if (this.player instanceof AudioPlayer) { + // Make the audio loop if it was provided as a prop + if (shouldLoop) { + this.player.loop = true; + } + + // Set volume through the AudioPlayer setter + this.player.volume = volume; + this.player.dataset.volumePercentage = (volumePercentage * 100).toString(); + + this.player.onended = () => { + const endState: Record = {}; + endState[this.type] = this.engine.state(this.type).filter((s: any) => s.statement !== this._statement); + this.engine.state(endState); + this.engine.removeMediaPlayer(this.type, this.mediaKey); + }; + + if (paused === true) { + return Promise.resolve(); + } + + // Start playback first, then apply fade if requested + await this.player.play(); + + if (fadePosition > -1) { + const fadeTime = this.props[fadePosition + 1]; + const match = fadeTime.match(/\d*(\.\d*)?/); + const duration = match ? parseFloat(match[0]) : 0; + // Don't await fadeIn - let it run in background while playback continues + this.player.fadeIn(duration, this.player.volume); + } + + return; + + } + else if (this.player instanceof Array) { + const promises = []; + for (const player of this.player) { + if (player.paused && !player.ended) { + if (fadePosition > -1) { + const fadeTime = this.props[fadePosition + 1]; + const match = fadeTime.match(/\d*(\.\d*)?/); + const duration = match ? parseFloat(match[0]) : 0; + player.fadeIn(duration); + } + promises.push(player.play()); + } + } + await Promise.all(promises); + } else { + throw new Error('An error occurred, you probably have a typo on the media you want to play.'); + } + } + + override async didApply({ updateHistory = true, updateState = true } = {}): Promise { + if (updateHistory === true) { + if (this.player instanceof AudioPlayer || this.mediaKey) { + this.engine.history(this.type).push(this._statement as string); + } + } + + if (updateState === true) { + const currentState = this.engine.state(this.type); + if (this.player instanceof AudioPlayer || this.mediaKey) { + const newItem: MediaStateItem = { statement: this._statement as string, paused: false }; + this.engine.state({ [this.type]: [...currentState, newItem] }); + } else if (this.player instanceof Array) { + const updatedState = currentState.map((item: MediaStateItem) => ({ + ...item, + paused: false + })); + this.engine.state({ [this.type]: updatedState }); + } + } + + return { advance: true }; + } + + override async revert(): Promise { + if (typeof this.mediaKey !== 'undefined') { + this.engine.removeMediaPlayer(this.type, this.mediaKey); + } else if (this.player instanceof Array) { + for (const player of this.player) { + if (!player.paused && !player.ended) { + player.pause(); + } + } + } + } + + override async didRevert(): Promise { + const currentState = this.engine.state(this.type); + + if (typeof this.mediaKey !== 'undefined') { + const history = this.engine.history(this.type) as string[]; + for (let i = history.length - 1; i >= 0; i--) { + if (history[i] === this._statement) { + history.splice(i, 1); + break; + } + } + const filteredState = currentState.filter((m: MediaStateItem) => m.statement !== this._statement); + this.engine.state({ [this.type]: filteredState }); + } else if (this.player instanceof Array) { + const updatedState = currentState.map((item: MediaStateItem) => ({ + ...item, + paused: true + })); + this.engine.state({ [this.type]: updatedState }); + } + return { advance: true, step: true }; + } +} + +export default Play; diff --git a/src/actions/Preload.ts b/src/actions/Preload.ts new file mode 100644 index 0000000..6cacd3d --- /dev/null +++ b/src/actions/Preload.ts @@ -0,0 +1,419 @@ +import { Preload as ArtemisPreload } from '@aegis-framework/artemis'; +import Action from './../lib/Action'; +import { ActionApplyResult, ActionRevertResult, VisualNovelEngine } from '../lib/types'; + +/** + * Asset loader function type + * @param url - The URL of the asset to load + * @param engine - The Monogatari engine instance + * @returns A promise resolving to the loaded asset + */ +export type AssetLoader = (url: string, engine: VisualNovelEngine) => Promise; + +/** + * Asset cache accessor type for getting/setting/deleting cached assets + */ +export type AssetCacheAccessor = { + get: (engine: VisualNovelEngine, key: string) => T | undefined; + set: (engine: VisualNovelEngine, key: string, value: T) => void; + delete?: (engine: VisualNovelEngine, key: string) => void; + clear?: (engine: VisualNovelEngine, prefix: string) => void; +}; + +/** + * Configuration for registering a custom asset loader + */ +export type LoaderConfig = { + loader: AssetLoader; + cache: AssetCacheAccessor; +}; + +/** + * Type definitions for preload block configuration + * Users can extend this via declaration merging to add custom categories + */ +export interface PreloadBlock { + music?: string[]; + sound?: string[]; + voice?: string[]; + scenes?: string[]; + images?: string[]; + characters?: Record; // { characterId: [sprite names] } + [category: string]: string[] | Record | undefined; +} + +export type PreloadBlocks = Record; + +export class Preload extends Action { + + static override id = 'Preload'; + + // Static storage for block configurations + static _blocks: PreloadBlocks = {}; + + // Registry of custom loaders by type name + static _loaders: Map = new Map(); + + // Registry mapping category names to loader types + static _categoryLoaderMap: Map = new Map(); + + // Registry mapping category aliases (e.g., 'sound' -> 'sounds') + static _categoryAliases: Map = new Map(); + + /** + * Setup default loaders for built-in asset types. + * Runs during setup() phase to ensure loaders are available before scripts execute. + */ + static override async setup(): Promise { + // Register default audio loader with IndexedDB persistence + if (!this._loaders.has('audio')) { + this.registerLoader('audio', { + loader: async (url: string, eng: VisualNovelEngine) => { + // Try to load from IndexedDB first (fast path - no network, no decode) + const cacheKey = url; // URL is used as key for persistent storage + const persistedBuffer = await eng.getAudioBufferPersistent(cacheKey); + if (persistedBuffer) { + return persistedBuffer; + } + + // Not in IndexedDB, fetch and decode from network + const buffer = await ArtemisPreload.audio(url, eng.audioContext); + + // Store in IndexedDB for future sessions (async, don't wait) + eng.storeAudioBufferPersistent(cacheKey, buffer).catch(() => { + // Silently ignore storage failures + }); + + return buffer; + }, + cache: { + get: (eng: VisualNovelEngine, key: string) => eng.audioBufferCache(key), + set: (eng: VisualNovelEngine, key: string, value: AudioBuffer) => eng.audioBufferCache(key, value), + delete: (eng: VisualNovelEngine, key: string) => eng.audioBufferUncache(key), + clear: (eng: VisualNovelEngine, prefix: string) => eng.audioBufferClearCache(prefix), + } + }); + } + + // Register default image loader + if (!this._loaders.has('image')) { + this.registerLoader('image', { + loader: async (url: string) => { + return ArtemisPreload.image(url); + }, + cache: { + get: (eng: VisualNovelEngine, key: string) => eng.imageCache(key), + set: (eng: VisualNovelEngine, key: string, value: HTMLImageElement) => eng.imageCache(key, value), + delete: (eng: VisualNovelEngine, key: string) => eng.imageUncache(key), + clear: (eng: VisualNovelEngine, prefix: string) => eng.imageClearCache(prefix), + } + }); + } + + // Register default category mappings (using plural names as assets are registered) + const defaultAudioCategories = ['music', 'sounds', 'voices']; + const defaultImageCategories = ['scenes', 'images', 'characters']; + + for (const category of defaultAudioCategories) { + if (!this._categoryLoaderMap.has(category)) { + this.registerCategory(category, 'audio'); + } + } + + for (const category of defaultImageCategories) { + if (!this._categoryLoaderMap.has(category)) { + this.registerCategory(category, 'image'); + } + } + + // Register default category aliases (singular -> plural) + const defaultAliases: Record = { + 'scene': 'scenes', + 'image': 'images', + 'sound': 'sounds', + 'voice': 'voices' + }; + + for (const [alias, category] of Object.entries(defaultAliases)) { + if (!this._categoryAliases.has(alias)) { + this.registerAlias(alias, category); + } + } + } + + /** + * Register a custom asset loader + * @param type - Unique identifier for this loader type (e.g., 'audio', 'image', 'video') + * @param config - Loader configuration with loader function and cache accessors + */ + static registerLoader(type: string, config: LoaderConfig): void { + this._loaders.set(type, config as LoaderConfig); + } + + /** + * Register a category to use a specific loader type + * @param category - Category name (e.g., 'music', 'videos') + * @param loaderType - The loader type to use (e.g., 'audio', 'video') + */ + static registerCategory(category: string, loaderType: string): void { + this._categoryLoaderMap.set(category, loaderType); + } + + /** + * Get the loader type for a category + * @param category - Category name + * @returns The loader type string or undefined if not registered + */ + static getLoaderType(category: string): string | undefined { + return this._categoryLoaderMap.get(category); + } + + /** + * Get a loader configuration by type + * @param type - Loader type name + * @returns The loader configuration or undefined if not registered + */ + static getLoader(type: string): LoaderConfig | undefined { + return this._loaders.get(type); + } + + /** + * Check if a category has a registered loader + * @param category - Category name + * @returns True if the category has a registered loader + */ + static hasLoader(category: string): boolean { + const loaderType = this._categoryLoaderMap.get(category); + return loaderType !== undefined && this._loaders.has(loaderType); + } + + /** + * Register an alias for a category (e.g., 'sound' -> 'sounds') + * @param alias - The alias name (e.g., 'sound') + * @param category - The actual category name (e.g., 'sounds') + */ + static registerAlias(alias: string, category: string): void { + this._categoryAliases.set(alias, category); + } + + /** + * Resolve a category name, applying any registered aliases + * @param category - The category name or alias + * @returns The resolved category name + */ + static resolveCategory(category: string): string { + return this._categoryAliases.get(category) ?? category; + } + + /** + * Register or retrieve block configurations + * @param config - Block configuration object to register (if setting) + * @returns Current blocks configuration + */ + static blocks(): PreloadBlocks; + static blocks(config: PreloadBlocks): void; + static blocks(config?: PreloadBlocks): PreloadBlocks | void { + if (config !== undefined) { + // Merge with existing blocks + this._blocks = { ...this._blocks, ...config }; + } else { + return this._blocks; + } + } + + static override matchString([action]: string[]): boolean { + return action === 'preload'; + } + + // Instance properties + private category: string = ''; + private assetName: string = ''; + private blockId: string = ''; + private isBlock: boolean = false; + private isBlocking: boolean = false; + private characterId: string = ''; + private preloadPromise: Promise | null = null; + + constructor([_action, typeOrBlock, ...rest]: string[]) { + super(); + + // Parse the statement + // Possible formats: + // - preload music theme [blocking] + // - preload scene forest [blocking] + // - preload character y happy [blocking] + // - preload block battle_scene [blocking] + + if (typeOrBlock === 'block') { + this.isBlock = true; + this.blockId = rest[0]; + this.isBlocking = rest.includes('blocking'); + } else if (typeOrBlock === 'character') { + this.category = 'characters'; + this.characterId = rest[0]; + this.assetName = rest[1]; + this.isBlocking = rest.includes('blocking'); + } else { + // Resolve category aliases (e.g., 'sound' -> 'sounds') + this.category = Preload.resolveCategory(typeOrBlock); + this.assetName = rest[0]; + this.isBlocking = rest.includes('blocking'); + } + } + + /** + * Preload a single asset using the registered loader for its category + * @param category - The asset category (e.g., 'music', 'scenes', 'videos') + * @param assetName - The asset identifier + */ + private async preloadAsset(category: string, assetName: string): Promise { + const loaderType = Preload.getLoaderType(category); + if (!loaderType) { + console.warn(`Preload: No loader registered for category "${category}"`); + return; + } + + const loaderConfig = Preload.getLoader(loaderType); + if (!loaderConfig) { + console.warn(`Preload: Loader type "${loaderType}" not found`); + return; + } + + const assetsPath = this.engine.setting('AssetsPath') as Record; + const assetFile = this.engine.asset(category, assetName) as string | undefined; + + if (!assetFile) { + console.warn(`Preload: Asset "${assetName}" not found in category "${category}"`); + return; + } + + const url = `${assetsPath.root}/${assetsPath[category]}/${assetFile}`; + const cacheKey = `${category}/${assetName}`; + + // Skip if already cached + if (loaderConfig.cache.get(this.engine, cacheKey) !== undefined) { + return; + } + + try { + const asset = await loaderConfig.loader(url, this.engine); + loaderConfig.cache.set(this.engine, cacheKey, asset); + } catch (error) { + console.error(`Preload: Failed to preload ${category} asset "${assetName}":`, error); + } + } + + /** + * Preload a character sprite using the registered 'image' loader + */ + private async preloadCharacterSprite(characterId: string, spriteName: string): Promise { + const loaderConfig = Preload.getLoader('image'); + if (!loaderConfig) { + console.warn(`Preload: Image loader not registered`); + return; + } + + const character = this.engine.character(characterId); + if (!character) { + console.warn(`Preload: Character "${characterId}" not found`); + return; + } + + const assetsPath = this.engine.setting('AssetsPath') as Record; + let directory = character.directory ? `${character.directory}/` : ''; + directory = `${assetsPath.root}/${assetsPath.characters}/${directory}`; + + const spriteFile = character.sprites?.[spriteName]; + if (!spriteFile || typeof spriteFile !== 'string') { + console.warn(`Preload: Sprite "${spriteName}" not found for character "${characterId}"`); + return; + } + + const url = `${directory}${spriteFile}`; + const cacheKey = `characters/${characterId}/${spriteName}`; + + // Skip if already cached + if (loaderConfig.cache.get(this.engine, cacheKey) !== undefined) { + return; + } + + try { + const asset = await loaderConfig.loader(url, this.engine); + loaderConfig.cache.set(this.engine, cacheKey, asset); + } catch (error) { + console.error(`Preload: Failed to preload character sprite "${characterId}/${spriteName}":`, error); + } + } + + /** + * Preload all assets in a block + */ + private async preloadBlock(blockId: string): Promise { + const block = Preload._blocks[blockId]; + if (!block) { + console.warn(`Preload: Block "${blockId}" not found`); + return; + } + + const promises: Promise[] = []; + + for (const [category, assets] of Object.entries(block)) { + // Handle characters separately (nested structure) + if (category === 'characters' && typeof assets === 'object' && !Array.isArray(assets)) { + for (const [charId, sprites] of Object.entries(assets as Record)) { + for (const spriteName of sprites) { + promises.push(this.preloadCharacterSprite(charId, spriteName)); + } + } + continue; + } + + if (!Array.isArray(assets)) continue; + + // Use registered loader for this category + if (Preload.hasLoader(category)) { + for (const assetName of assets) { + promises.push(this.preloadAsset(category, assetName)); + } + } else { + console.warn(`Preload: No loader registered for category "${category}" in block "${blockId}"`); + } + } + + await Promise.all(promises); + } + + override async apply(): Promise { + // Start the preload operation + if (this.isBlock) { + this.preloadPromise = this.preloadBlock(this.blockId); + } else if (this.category === 'characters') { + this.preloadPromise = this.preloadCharacterSprite(this.characterId, this.assetName); + } else if (Preload.hasLoader(this.category)) { + this.preloadPromise = this.preloadAsset(this.category, this.assetName); + } else { + console.warn(`Preload: No loader registered for category "${this.category}"`); + } + + // If blocking, wait for the preload to complete + if (this.isBlocking && this.preloadPromise) { + await this.preloadPromise; + } + } + + override async didApply(): Promise { + return { advance: true }; + } + + override async revert(): Promise { + // Can't really revert a preload action + return; + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default Preload; + diff --git a/src/actions/Scene.js b/src/actions/Scene.js deleted file mode 100644 index 414853d..0000000 --- a/src/actions/Scene.js +++ /dev/null @@ -1,227 +0,0 @@ -import { $_ } from '@aegis-framework/artemis'; -import { Action } from './../lib/Action'; - -export class Scene extends Action { - - static setup () { - this.engine.history ('scene'); - this.engine.history ('sceneElements'); - this.engine.history ('sceneState'); - - this.engine.global ('_should_restore_nvl', false); - - this.engine.state ({ - scene: '' - }); - - return Promise.resolve (); - } - - static onLoad () { - const sceneState = this.engine.history ('sceneState'); - const sceneElements = this.engine.history ('sceneElements'); - - if (sceneState.length !== sceneElements.length) { - const states = sceneElements.map ((elements) => { - if (elements.length > 0) { - return { - characters: elements.filter(element => element.indexOf ('data-character=') > -1).map ((element) => { - const div = document.createElement ('div'); - div.innerHTML = element; - const image = $_(div.firstChild); - const classes = image.get(0).classList.toString ().replace ('animated', '').trim (); - return `show character ${image.data('character')} ${image.data('sprite')}${ classes.length > 0 ? ` with ${classes}`: ''}`; - }), - images: elements.filter(element => element.indexOf ('data-image=') > -1).map ((element) => { - const div = document.createElement ('div'); - div.innerHTML = element; - const image = $_(div.firstChild); - const classes = image.get(0).classList.toString ().replace ('animated', '').trim (); - return `show image ${image.data('image')}${ classes.length > 0 ? ` with ${classes}`: ''}`; - }), - }; - } - - return { - characters: [], - images: [] - }; - }); - - for (const state of states) { - this.engine.history ('sceneState').push (state); - } - } - - const { scene } = this.engine.state (); - if (scene !== '') { - const action = this.engine.prepareAction (scene, { cycle: 'Application' }); - return action.willApply ().then (() => { - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: false }); - }); - }); - } - return Promise.resolve (); - } - - static reset () { - this.engine.state ({ - scene: '' - }); - - return Promise.resolve (); - } - - static matchString ([ show, type ]) { - return show === 'show' && type === 'scene'; - } - - constructor ([ show, type, scene, ...classes ]) { - super (); - this.scene = scene; - - this.scene_elements = []; - this.scene_state = {}; - } - - willApply () { - return Promise.resolve (); - } - - apply () { - const selectors = [ - '[data-screen="game"] [data-character]:not([data-visibility="invisible"])', - '[data-screen="game"] [data-image]:not([data-visibility="invisible"])' - ]; - - this.engine.element ().find (selectors.join (',')).each ((element) => { - this.scene_elements.push (element.outerHTML); - }); - - const textBox = this.engine.element ().find ('[data-component="text-box"]').get (0); - - this.scene_state = { - characters: [...this.engine.state ('characters')], - images: [...this.engine.state ('images')], - textBoxMode: textBox.props.mode, - }; - - const restoringState = this.engine.global ('_restoring_state'); - - const action = this.engine.prepareAction (this._statement.replace('show scene', 'show background'), { cycle: 'Application' }); - return action.willApply ().then (() => { - return action.apply ().then (() => { - return action.didApply ({ updateHistory: !restoringState, updateState: !restoringState }).then (() => { - // Check if the engine is no loading a save file, since loading a file applies the actions on that state - // asynchronously, there's a chance this would run after a show image/character action and would remove them - // from the scene, which is something we don't want - if (restoringState === false) { - this.engine.state ({ - characters: [], - images: [] - }); - - this.engine.element ().find ('[data-character]').remove (); - this.engine.element ().find ('[data-image]').remove (); - } - }); - }); - }); - } - - didApply ({ updateHistory = true, updateState = true } = {}) { - if (updateHistory === true) { - this.engine.history ('sceneElements').push (this.scene_elements); - this.engine.history ('sceneState').push (this.scene_state); - this.engine.history ('scene').push (this._statement); - } - - if (updateState === true) { - this.engine.state ({ - scene: this._statement - }); - } - - const restoringState = this.engine.global ('_restoring_state'); - if (restoringState === false) { - this.engine.action ('Dialog').reset ({ saveNVL: true }); - } - - return Promise.resolve ({ advance: true }); - } - - willRevert () { - this.engine.element ().find ('[data-character]').remove (); - this.engine.element ().find ('[data-image]').remove (); - return Promise.resolve (); - } - - revert () { - return this.engine.revert (this._statement.replace('show scene', 'show background'), false, false).then(() => { - // this.engine.history ('scene').pop (); - const restoreSceneItems = () => { - if (this.engine.history ('sceneElements').length > 0) { - const scene_elements = this.engine.history ('sceneElements').pop (); - - if (typeof scene_elements === 'object') { - for (const element of scene_elements) { - this.engine.element ().find ('[data-screen="game"]').append (element); - } - } - } - - if (this.engine.history ('sceneState').length > 0) { - const scene_state = this.engine.history ('sceneState').pop (); - - if (typeof scene_state === 'object') { - const state = { ...scene_state }; - const textBox = this.engine.element ().find ('[data-component="text-box"]').get (0); - - textBox.setProps ({ mode: state.textBoxMode }); - - if (state.textBoxMode === 'nvl') { - this.engine.global ('_should_restore_nvl', true); - } - - delete state.textBoxMode; - this.engine.state (scene_state); - } - } - }; - - // Check if the scene history still has elements left, if it doesn't then we need to roll back - // to the initial background defined in the CSS and not in the script. - if (this.engine.history ('scene').length > 0) { - this.engine.global ('_scene_history_cleared_by_background', false); - const last = this.engine.history ('scene')[this.engine.history ('scene').length - 1]; - - this.engine.state ({ - scene: last - }); - - this.engine.history ('scene').pop (); - - restoreSceneItems (); - return this.engine.action ('Dialog').reset (); - } - - // If the scene history was empty, we just need to check if it was the background - // action who cleared it. If that was the case, we still need to restore the other - // items that we save for each scene apart from the background. - if (this.engine.global ('_scene_history_cleared_by_background') === true) { - this.engine.global ('_scene_history_cleared_by_background', false); - restoreSceneItems (); - return this.engine.action ('Dialog').reset (); - } - }); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -Scene.id = 'Scene'; - -export default Scene; \ No newline at end of file diff --git a/src/actions/Scene.ts b/src/actions/Scene.ts new file mode 100644 index 0000000..9b48717 --- /dev/null +++ b/src/actions/Scene.ts @@ -0,0 +1,254 @@ +import { $_ } from '@aegis-framework/artemis'; +import Action from './../lib/Action'; +import { ActionApplyResult, ActionRevertResult, ActionInstance, SceneStateItem } from '../lib/types'; + +export class Scene extends Action { + + static override id = 'Scene'; + static override loadingOrder = -2; + + static override async setup(): Promise { + this.engine.history('scene'); + this.engine.history('sceneElements'); + this.engine.history('sceneState'); + + this.engine.global('_should_restore_nvl', false); + + this.engine.state({ + scene: '' + }); + } + + static override async onLoad(): Promise { + const sceneState = this.engine.history('sceneState'); + const sceneElements = this.engine.history('sceneElements'); + + if (sceneState.length !== sceneElements.length) { + const states = sceneElements.map((elements: string[]) => { + if (elements.length > 0) { + return { + characters: elements.filter(element => element.indexOf('data-character=') > -1).map((element) => { + const div = document.createElement('div'); + div.innerHTML = element; + const firstChild = div.firstChild as HTMLElement; + if (!firstChild) return ''; + const image = $_(firstChild); + const imgElement = image.get(0); + if (!imgElement) return ''; + const classes = Array.from(imgElement.classList).filter(c => c !== 'animated').join(' '); + return `show character ${image.data('character')} ${image.data('sprite')}${classes.length > 0 ? ` with ${classes}` : ''}`; + }), + images: elements.filter(element => element.indexOf('data-image=') > -1).map((element) => { + const div = document.createElement('div'); + div.innerHTML = element; + const firstChild = div.firstChild as HTMLElement; + if (!firstChild) return ''; + const image = $_(firstChild); + const imgElement = image.get(0); + if (!imgElement) return ''; + const classes = Array.from(imgElement.classList).filter(c => c !== 'animated').join(' '); + return `show image ${image.data('image')}${classes.length > 0 ? ` with ${classes}` : ''}`; + }), + }; + } + + return { + characters: [], + images: [] + }; + }); + + for (const state of states) { + this.engine.history('sceneState').push(state); + } + } + + const scene = this.engine.state('scene'); + if (scene !== '') { + const action = this.engine.prepareAction(scene, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: false }); + } + } + } + + static override async reset(): Promise { + this.engine.state({ + scene: '' + }); + } + + static override matchString([show, type]: string[]): boolean { + return show === 'show' && type === 'scene'; + } + + scene: string; + scene_elements: string[]; + scene_state: Record; + + constructor([show, type, scene, ...classes]: string[]) { + super(); + this.scene = scene; + + this.scene_elements = []; + this.scene_state = {}; + } + + override async willApply(): Promise { + return Promise.resolve(); + } + + override async apply(): Promise { + const selectors = [ + '[data-screen="game"] [data-character]:not([data-visibility="invisible"])', + '[data-screen="game"] [data-image]:not([data-visibility="invisible"])' + ]; + + this.engine.element().find(selectors.join(',')).each((element: HTMLElement) => { + this.scene_elements.push(element.outerHTML); + }); + + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as (HTMLElement & { props?: { mode?: string } }) | undefined; + + this.scene_state = { + characters: [...this.engine.state('characters')], + images: [...this.engine.state('images')], + textBoxMode: textBox?.props?.mode ?? '', + }; + + const restoringState = this.engine.global('_restoring_state'); + + const statement = this._statement as string; + const action = this.engine.prepareAction(statement.replace('show scene', 'show background'), { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: !restoringState, updateState: !restoringState }); + } + + // Check if the engine is no loading a save file, since loading a file applies the actions on that state + // asynchronously, there's a chance this would run after a show image/character action and would remove them + // from the scene, which is something we don't want + if (restoringState === false) { + this.engine.state({ + characters: [], + images: [] + }); + + this.engine.element().find('[data-character]').remove(); + this.engine.element().find('[data-image]').remove(); + } + } + + override async didApply({ updateHistory = true, updateState = true } = {}): Promise { + if (updateHistory === true) { + this.engine.history('sceneElements').push(this.scene_elements); + this.engine.history('sceneState').push(this.scene_state as SceneStateItem); + this.engine.history('scene').push(this._statement as string); + } + + if (updateState === true) { + this.engine.state({ + scene: this._statement as string + }); + } + + const restoringState = this.engine.global('_restoring_state'); + if (restoringState === false) { + const dialogAction = this.engine.action('Dialog'); + if (dialogAction) { + (dialogAction as unknown as { reset: (opts: { saveNVL: boolean }) => void }).reset({ saveNVL: true }); + } + } + + return { advance: true }; + } + + override async willRevert(): Promise { + this.engine.element().find('[data-character]').remove(); + this.engine.element().find('[data-image]').remove(); + return Promise.resolve(); + } + + override async revert(): Promise { + const statement = this._statement as string; + await this.engine.revert(statement.replace('show scene', 'show background'), false, false); + // this.engine.history ('scene').pop (); + const restoreSceneItems = () => { + const sceneElementsHistory = this.engine.history('sceneElements') as string[][]; + if (sceneElementsHistory.length > 0) { + const scene_elements = sceneElementsHistory.pop(); + + if (typeof scene_elements === 'object' && scene_elements) { + for (const element of scene_elements) { + this.engine.element().find('[data-screen="game"]').append(element); + } + } + } + + const sceneStateHistory = this.engine.history('sceneState') as SceneStateItem[]; + if (sceneStateHistory.length > 0) { + const scene_state = sceneStateHistory.pop(); + + if (typeof scene_state === 'object' && scene_state) { + const state = { ...scene_state }; + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as (HTMLElement & { setProps?: (props: { mode: string }) => void }) | undefined; + + if (textBox?.setProps) { + textBox.setProps({ mode: state.textBoxMode || 'adv' }); + } + + if (state.textBoxMode === 'nvl') { + this.engine.global('_should_restore_nvl', true); + } + + this.engine.state({ + characters: state.characters ?? [], + images: state.images ?? [] + }); + } + } + }; + + // Check if the scene history still has elements left, if it doesn't then we need to roll back + // to the initial background defined in the CSS and not in the script. + const sceneHistory = this.engine.history('scene') as string[]; + if (sceneHistory.length > 0) { + this.engine.global('_scene_history_cleared_by_background', false); + + // Pop the current scene first, then set state to the previous one + sceneHistory.pop(); + + this.engine.state({ + scene: sceneHistory.length > 0 ? sceneHistory[sceneHistory.length - 1] : '' + }); + + restoreSceneItems(); + const dialogAction = this.engine.action('Dialog'); + if (dialogAction) { + (dialogAction as unknown as { reset: () => Promise }).reset(); + } + return; + } + + // If the scene history was empty, we just need to check if it was the background + // action who cleared it. If that was the case, we still need to restore the other + // items that we save for each scene apart from the background. + if (this.engine.global('_scene_history_cleared_by_background') === true) { + this.engine.global('_scene_history_cleared_by_background', false); + restoreSceneItems(); + const dialogAction = this.engine.action('Dialog'); + if (dialogAction) { + (dialogAction as unknown as { reset: () => Promise }).reset(); + } + } + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default Scene; \ No newline at end of file diff --git a/src/actions/ShowBackground.js b/src/actions/ShowBackground.js deleted file mode 100644 index 364246c..0000000 --- a/src/actions/ShowBackground.js +++ /dev/null @@ -1,169 +0,0 @@ -import { Action } from './../lib/Action'; -import { Text } from '@aegis-framework/artemis'; - -export class ShowBackground extends Action { - - static setup () { - this.engine.history ('background'); - - this.engine.state ({ - background: '' - }); - - this.engine.global ('_scene_history_cleared_by_background', false); - - return Promise.resolve (); - } - - static onLoad () { - const { background, scene } = this.engine.state (); - if (typeof background === 'string' && background !== '' && scene === '') { - const action = this.engine.prepareAction (background, { cycle: 'Application' }); - return action.willApply ().then (() => { - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: false }); - }); - }); - } else { - return Promise.resolve (); - } - } - - static reset () { - const background = this.engine.element ().find ('[data-ui="background"]'); - - background.style ('background-image', 'initial'); - background.style ('background-color', 'initial'); - - this.engine.state ({ - background: '' - }); - - return Promise.resolve (); - } - - static matchString ([ show, type ]) { - return show === 'show' && type === 'background'; - } - - constructor ([ show, type, background, ...classes ]) { - super (); - this.background = background; - this.property = 'background-image'; - if (typeof this.engine.asset ('scenes', background) !== 'undefined') { - this.value = `url(${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').scenes}/${this.engine.asset ('scenes', background)})`; - } else { - const rest = [background, ...classes].join (' '); - if (classes.indexOf ('with') > -1) { - this.value = Text.prefix ('with', rest); - } else { - this.value = rest; - } - - const isColorProperty = ['#', 'rgb', 'hsl'].findIndex ((color) => { - return this.value.indexOf (color) === 0; - }) > -1; - - const isNamed = this.value.indexOf (' ') > -1 ? false : new RegExp(/\w+/).test (this.value) && !(new RegExp (/(url|gradient)\(/).test (this.value)); - - if (isColorProperty === true || isNamed === true) { - this.property = 'background-color'; - } - } - - if (typeof classes !== 'undefined') { - this.classes = ['animated', ...classes]; - } else { - this.classes = []; - } - } - - willApply () { - const background = this.engine.element ().find ('[data-ui="background"]'); - - background.removeClass (); - void background.get (0).offsetWidth; - - return Promise.resolve (); - } - - apply () { - const background = this.engine.element ().find ('[data-ui="background"]'); - - this.engine.element ().find ('[data-ui="background"]').style ('background-image', 'initial'); - this.engine.element ().find ('[data-ui="background"]').style ('background-color', 'initial'); - this.engine.element ().find ('[data-ui="background"]').style ('animation-duration', ''); - - this.engine.element ().find ('[data-ui="background"]').style (this.property, this.value); - - const durationPosition = this.classes.indexOf ('duration'); - - if (durationPosition > -1) { - background.style ('animation-duration', this.classes[durationPosition + 1]); - } - - for (const newClass of this.classes) { - background.addClass (newClass); - } - - return Promise.resolve (); - } - - didApply ({ updateHistory = true, updateState = true } = {}) { - if (updateState === true) { - this.engine.state ({ - background: this._statement - }); - } - - if (updateHistory === true) { - this.engine.history ('background').push (this._statement); - } - - return Promise.resolve ({ advance: true }); - } - - willRevert () { - this.engine.element ().find ('[data-ui="background"]').removeClass (); - return Promise.resolve (); - } - - revert () { - let history = this.engine.history ('background'); - - history.pop (); - - if (history.length === 0) { - history = this.engine.history ('scene'); - history.pop (); - this.engine.global ('_scene_history_cleared_by_background', true); - } - - if (history.length > 0) { - const background = this.engine.element ().find ('[data-ui="background"]'); - const last = history[history.length - 1].replace ('show scene', 'show background'); - const action = this.engine.prepareAction (last, { cycle: 'Application' }); - - background.style ('background-image', 'initial'); - background.style ('background-color', 'initial'); - background.style (action.property, action.value); - - for (const newClass of this.classes) { - background.addClass (newClass); - } - - this.engine.state ({ - background: last - }); - } - return Promise.resolve (); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -ShowBackground.id = 'Show::Background'; - -export default ShowBackground; \ No newline at end of file diff --git a/src/actions/ShowBackground.ts b/src/actions/ShowBackground.ts new file mode 100644 index 0000000..591673a --- /dev/null +++ b/src/actions/ShowBackground.ts @@ -0,0 +1,167 @@ +import Action from './../lib/Action'; +import { Text } from '@aegis-framework/artemis'; +import { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types'; + +export class ShowBackground extends Action { + + static override id = 'Show::Background'; + + static override async setup(): Promise { + this.engine.history('background'); + + this.engine.state({ + background: '' + }); + + this.engine.global('_scene_history_cleared_by_background', false); + } + + static override async onLoad(): Promise { + const background = this.engine.state('background'); + if (typeof background === 'string' && background !== '') { + const action = this.engine.prepareAction(background, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: false }); + } + } + } + + static override async reset(): Promise { + const background = this.engine.element().find('[data-ui="background"]'); + + background.style('background-image', 'initial'); + background.style('background-color', 'initial'); + + this.engine.state({ + background: '' + }); + } + + static override matchString([show, type]: string[]): boolean { + return show === 'show' && type === 'background'; + } + + background: string; + property: string; + value: string; + classes: string[]; + + constructor([show, type, background, ...classes]: string[]) { + super(); + this.background = background; + this.property = 'background-image'; + if (typeof this.engine.asset('scenes', background) !== 'undefined') { + this.value = `url(${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').scenes}/${this.engine.asset('scenes', background)})`; + } else { + const rest = [background, ...classes].join(' '); + if (classes.indexOf('with') > -1) { + this.value = Text.prefix('with', rest); + } else { + this.value = rest; + } + + const isColorProperty = ['#', 'rgb', 'hsl'].findIndex((color) => { + return this.value.indexOf(color) === 0; + }) > -1; + + const isNamed = this.value.indexOf(' ') > -1 ? false : new RegExp(/\w+/).test(this.value) && !(new RegExp(/(url|gradient)\(/).test(this.value)); + + if (isColorProperty === true || isNamed === true) { + this.property = 'background-color'; + } + } + + this.classes = ['animated', ...classes]; + } + + override async willApply(): Promise { + const background = this.engine.element().find('[data-ui="background"]'); + + background.removeClass(); + // Force reflow to restart CSS animations + const el = background.get(0); + if (el) { + void (el as any).offsetWidth; + } + } + + override async apply(): Promise { + const background = this.engine.element().find('[data-ui="background"]'); + + this.engine.element().find('[data-ui="background"]').style('background-image', 'initial'); + this.engine.element().find('[data-ui="background"]').style('background-color', 'initial'); + this.engine.element().find('[data-ui="background"]').style('animation-duration', ''); + + this.engine.element().find('[data-ui="background"]').style(this.property, this.value); + + const durationPosition = this.classes.indexOf('duration'); + + if (durationPosition > -1) { + background.style('animation-duration', this.classes[durationPosition + 1]); + } + + for (const newClass of this.classes) { + background.addClass(newClass); + } + } + + override async didApply({ updateHistory = true, updateState = true } = {}): Promise { + if (updateState === true) { + this.engine.state({ + background: this._statement as string + }); + } + + if (updateHistory === true) { + (this.engine.history('background') as string[]).push(this._statement as string); + } + + return { advance: true }; + } + + override async willRevert(): Promise { + this.engine.element().find('[data-ui="background"]').removeClass(); + } + + override async revert(): Promise { + let history = this.engine.history('background') as string[]; + + history.pop(); + + if (history.length === 0) { + history = this.engine.history('scene') as string[]; + history.pop(); + this.engine.global('_scene_history_cleared_by_background', true); + } + + if (history.length > 0) { + const background = this.engine.element().find('[data-ui="background"]'); + const last = history[history.length - 1].replace('show scene', 'show background'); + const action = this.engine.prepareAction(last, { cycle: 'Application' }) as (ActionInstance & { property?: string; value?: string; classes?: string[] }) | null; + + background.style('background-image', 'initial'); + background.style('background-color', 'initial'); + if (action !== null && action.property && action.value) { + background.style(action.property, action.value); + } + + // Use the previous background's classes, not the current one being reverted + const classesToApply = action?.classes ?? []; + for (const newClass of classesToApply) { + background.addClass(newClass); + } + + this.engine.state({ + background: last + }); + } + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default ShowBackground; \ No newline at end of file diff --git a/src/actions/ShowCharacter.js b/src/actions/ShowCharacter.js deleted file mode 100644 index 714eaf6..0000000 --- a/src/actions/ShowCharacter.js +++ /dev/null @@ -1,289 +0,0 @@ -import { Action } from './../lib/Action'; -import { $_ } from '@aegis-framework/artemis'; - -export class ShowCharacter extends Action { - - static setup () { - // The character history saves what characters have been displayed - this.engine.history ('character'); - - // The characters state variable holds what characters are being shown - // right now - this.engine.state ({ - characters: [] - }); - return Promise.resolve (); - } - - static reset () { - this.engine.element ().find ('[data-screen="game"] [data-character]').remove (); - - this.engine.state ({ - characters: [] - }); - - return Promise.resolve (); - } - - static onLoad () { - const { characters } = this.engine.state (); - const promises = []; - - for (const item of characters) { - const action = this.engine.prepareAction (item, { cycle: 'Application' }); - const promise = action.willApply ().then (() => { - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: false }); - }); - }); - - promises.push (promise); - } - - if (promises.length > 0) { - return Promise.all (promises); - } - - return Promise.resolve (); - } - - static matchString ([ show, type ]) { - return show === 'show' && type === 'character'; - } - - constructor ([ show, type, asset, sprite, ...classes ]) { - super (); - this.asset = asset; - - if (typeof this.engine.character (asset) !== 'undefined') { - // show [character] [expression] at [position] with [animation] [infinite] - this.sprite = sprite; - - this.character = this.engine.character (asset); - this.image = this.character.sprites[this.sprite]; - - if (typeof classes !== 'undefined') { - this.classes = ['animated', ...classes.filter ((item) => item !== 'at' && item !== 'with')]; - } else { - this.classes = []; - } - - } else { - // TODO: Add Fancy Error when the specified character does not exist - } - } - - apply () { - // show [character] [expression] at [position] with [animation] [infinite] - // 0 1 2 3 4 5 6 7 - - // show [character] [expression] with [animation] [infinite] - // 0 1 2 3 4 5 - - // show [character] [expression] - // 0 1 2 - - let directory = this.character.directory; - if (typeof directory == 'undefined') { - directory = ''; - } else { - directory += '/'; - } - - let oneSpriteOnly = true; - - const imgSrc = `${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').characters}/${directory}${this.image}`; - const sprite = this.engine.element ().find (`[data-character="${this.asset}"]:not([data-visibility="invisible"])`); - - if (sprite.isVisible ()) { - const oldClasses = [...sprite.get(0).classList]; - - // Check if there is any end-animation, here's what this matches: - // 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ "end-fadeIn", "fadeIn" ] - const endAnimation = oldClasses.find(c => c.match (/end-([A-Za-z]+)/) !== null); - - if (typeof endAnimation !== 'undefined') { - // If there was, get the animation-only part - const [end, animation] = endAnimation.split('-'); - const watchAnimation = oldClasses[oldClasses.indexOf(endAnimation) - 1]; - sprite.removeClass (watchAnimation); - sprite.addClass (animation); - sprite.data ('visibility', 'invisible'); - sprite.on ('animationend', (e) => { - e.target.remove (); - }); - - oneSpriteOnly = false; - } - - for (const oldClass of oldClasses) { - if (this.classes.indexOf (oldClass) === -1) { - sprite.removeClass (oldClass); - } - } - } - - const position = this._statement.match (/at\s(\S*)/); - - if (oneSpriteOnly && sprite.isVisible ()) { - sprite.attribute ('src', imgSrc); - sprite.data ('sprite', this.sprite); - - for (const className of this.classes) { - if (className) { - sprite.addClass (className); - } - } - - const durationPosition = this.classes.indexOf ('duration'); - if (durationPosition > -1) { - sprite.style ('animation-duration', this.classes[durationPosition + 1]); - } else { - sprite.style ('animation-duration', ''); - } - - const transitionPosition = this.classes.indexOf ('transition'); - - if (transitionPosition > -1) { - sprite.style ('transition-duration', this.classes[transitionPosition + 1]); - } else { - sprite.style ('transition-duration', ''); - } - - // Check if a position was provided. (show character y at left) - if (position instanceof Array) { - // If it was, we'll set that position to the character - const [at, positionClass] = position; - sprite.data ('position', positionClass); - } else { - // If it wasn't, we'll check if the sprite already had one position set - // const currentPosition = sprite.data ('position'); - // if (typeof currentPosition === 'string') { - // // If it did, we'll add that position - // if (currentPosition.trim () !== '') { - // console.log (currentPosition); - // sprite.addClass (currentPosition.trim ()); - // } - // } else { - // // If it didn't, we'll set the center position by default - // sprite.addClass ('center'); - // sprite.data ('position', 'center'); - // } - - sprite.addClass ('center'); - sprite.data ('position', 'center'); - } - - sprite.data ('sprite', this.sprite); - } else { - const image = document.createElement ('img'); - $_(image).attribute ('src', imgSrc); - $_(image).addClass ('animated'); - $_(image).data ('character', this.asset); - $_(image).data ('sprite', this.sprite); - - for (const className of this.classes) { - if (className) { - image.classList.add (className); - } - } - - // Check if a position was provided. (show character y at left) - if (position instanceof Array) { - // If it was, we'll set that position to the character - const [at, positionClass] = position; - $_(image).data ('position', positionClass); - } else { - // If it wasn't, we'll set the center position by default - image.classList.add ('center'); - $_(image).data ('position', 'center'); - } - - const durationPosition = this.classes.indexOf ('duration'); - if (durationPosition > -1) { - $_(image).style ('animation-duration', this.classes[durationPosition + 1]); - } - - this.engine.element ().find ('[data-screen="game"] [data-content="visuals"]').append (image); - } - - return Promise.resolve (); - } - - didApply ({ updateHistory = true, updateState = true } = {}) { - if (updateHistory === true) { - this.engine.history ('character').push (this._statement); - } - - if (updateState === true) { - this.engine.state ({ - characters: [ - ...this.engine.state ('characters').filter ((item) => { - if (typeof item === 'string') { - const [show, character, asset, sprite] = item.split (' '); - return asset !== this.asset; - } - return false; - }), - this._statement - ] - }); - } - return Promise.resolve ({ advance: true }); - } - - revert () { - this.engine.element ().find (`[data-character="${this.asset}"]`).remove (); - - // First, we remove the last instance of the character from the history since - // that's the one being currently displayed and we want the one before that - for (let i = this.engine.history ('character').length - 1; i >= 0; i--) { - const last = this.engine.history ('character')[i]; - const [show, character, asset, name] = last.split (' '); - if (asset === this.asset) { - this.engine.history ('character').splice (i, 1); - break; - } - } - - // Now, we go through the remaining history to find the last instance of the - // character. - for (let i = this.engine.history ('character').length - 1; i >= 0; i--) { - const last = this.engine.history ('character')[i]; - const [show, character, asset, name] = last.split (' '); - - if (asset === this.asset) { - // this.engine.history ('character').splice (i, 1); - const action = this.engine.prepareAction (last, { cycle: 'Apply' }); - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: true }); - }); - } - } - - // If the script didn't return on the for cycle above, it means either the - // history didn't have any items left or, the character was not found. - // In that case, we simply remove the character from the state. - this.engine.state ({ - characters: [ - ...this.engine.state ('characters').filter ((item) => { - if (typeof item === 'string') { - const [show, character, asset, sprite] = item.split (' '); - return asset !== this.asset; - } - return false; - }), - ], - }); - - return Promise.resolve (); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -ShowCharacter.id = 'Show::Character'; - -export default ShowCharacter; diff --git a/src/actions/ShowCharacter.ts b/src/actions/ShowCharacter.ts new file mode 100644 index 0000000..7303beb --- /dev/null +++ b/src/actions/ShowCharacter.ts @@ -0,0 +1,557 @@ +import Action from './../lib/Action'; +import { $_ } from '@aegis-framework/artemis'; +import { FancyError } from './../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult, ActionInstance, CharacterHistoryItem } from '../lib/types'; + +export class ShowCharacter extends Action { + + static override id = 'Show::Character'; + + static override async setup(): Promise { + // The character history saves what characters have been displayed + this.engine.history('character'); + + // The characters state variable holds what characters are being shown + // right now + this.engine.state({ + characters: [] + }); + } + + static override async reset(): Promise { + this.engine.element().find('[data-screen="game"] [data-character]').remove(); + + this.engine.state({ + characters: [] + }); + } + + static override async onLoad(): Promise { + const characters = this.engine.state('characters') as string[]; + const promises: Promise[] = []; + + for (const item of characters) { + const action = this.engine.prepareAction(item, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + const promise = (async () => { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: false }); + })(); + + promises.push(promise); + } + } + + if (promises.length > 0) { + await Promise.all(promises); + } + } + + static override matchString([show, type, identifier]: string[]): boolean { + return show === 'show' && type === 'character' && identifier.indexOf(':') === -1; + } + + asset: string; + state: string | undefined; + sprite: string; + character: any; + image: any; + classes: string[]; + + constructor([show, type, asset, sprite, ...classes]: string[]) { + super(); + this.asset = asset; + + this.state = this.engine.state('characters').find((statement: string) => { + const [show, character, asset, name] = statement.split(' '); + return asset === this.asset; + }); + + if (typeof this.engine.character(asset) !== 'undefined') { + // show [character] [expression] at [position] with [animation] [infinite] + this.sprite = sprite; + + this.character = this.engine.character(asset); + this.image = this.character.sprites[this.sprite]; + + if (typeof classes !== 'undefined') { + this.classes = ['animated', ...classes.filter((item) => item !== 'at' && item !== 'with')]; + } else { + this.classes = []; + } + + } else { + this.sprite = ''; + this.classes = []; + } + } + + override async willApply(): Promise { + if (typeof this.character === 'undefined') { + FancyError.show('action:show_character:character_not_found', { + asset: this.asset, + availableCharacters: Object.keys(this.engine.characters()), + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + throw new Error(`Character "${this.asset}" not found.`); + } + + if (typeof this.image === 'undefined') { + FancyError.show('action:show_character:sprite_not_found', { + asset: this.asset, + sprite: this.sprite, + availableSprites: this.character.sprites ? Object.keys(this.character.sprites) : [], + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + throw new Error(`Sprite "${this.sprite}" not found for character "${this.asset}".`); + } + } + + override async apply(): Promise { + // show [character] [expression] at [position] with [animation] [infinite] + // 0 1 2 3 4 5 6 7 + + // show [character] [expression] with [animation] [infinite] + // 0 1 2 3 4 5 + + // show [character] [expression] + // 0 1 2 + + let directory = this.character.directory; + if (typeof directory == 'undefined') { + directory = ''; + } else { + directory += '/'; + } + + let oneSpriteOnly = true; + + const sprite = this.engine.element().find(`[data-character="${this.asset}"]:not([data-visibility="invisible"])`); + + const spriteEl = sprite.get(0); + if (sprite.exists() && spriteEl) { + const oldClasses = [...spriteEl.classList]; + + // Check if there is any end-animation, here's what this matches: + // 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ "end-fadeIn", "fadeIn" ] + const endAnimation = oldClasses.find((c: string) => c.match(/end-([A-Za-z]+)/) !== null); + + if (typeof endAnimation !== 'undefined') { + // If there was, get the animation-only part + const [end, animation] = endAnimation.split('-'); + const watchAnimation = oldClasses[oldClasses.indexOf(endAnimation) - 1]; + sprite.removeClass(watchAnimation); + sprite.addClass(animation); + sprite.data('visibility', 'invisible'); + sprite.on('animationend', (e: any) => { + e.target.remove(); + }); + + oneSpriteOnly = false; + } + + for (const oldClass of oldClasses) { + if (this.classes.indexOf(oldClass) === -1) { + sprite.removeClass(oldClass); + } + } + } + + const imgSrc = `${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').characters}/${directory}`; + const position = (this._statement as string).match(/at\s(\S*)/); + + if (oneSpriteOnly && sprite.exists()) { + + if (this.engine.setting('ExperimentalFeatures') === true) { + // If its another layered sprite + if (sprite.matches('character-sprite') && typeof this.image === 'object') { + const image = sprite.get(0) as (HTMLElement & { setState?: (state: { layers: Record }) => void }) | undefined; + const layers: Record = {}; + + for (const [layer, asset] of Object.entries(this.image)) { + layers[layer] = { + asset, + classes: [], + }; + } + + if (image?.setState) { + image.setState({ layers }); + } + } else if (sprite.matches('character-sprite')) { + // If it's an image on a previously layered sprite + const el = sprite.get(0) as (HTMLElement & { setProps?: (props: { src: string }) => void }) | undefined; + if (el?.setProps) { + el.setProps({ 'src': `${imgSrc}${this.image}` }); + } + } else { + // If it was just an image + sprite.attribute('src', `${imgSrc}${this.image}`); + } + } else { + sprite.attribute('src', `${imgSrc}${this.image}`); + } + + sprite.data('sprite', this.sprite); + + for (const className of this.classes) { + if (className) { + sprite.addClass(className); + } + } + + const durationPosition = this.classes.indexOf('duration'); + if (durationPosition > -1) { + sprite.style('animation-duration', this.classes[durationPosition + 1]); + } else { + sprite.style('animation-duration', ''); + } + + const transitionPosition = this.classes.indexOf('transition'); + + if (transitionPosition > -1) { + sprite.style('transition-duration', this.classes[transitionPosition + 1]); + } else { + sprite.style('transition-duration', ''); + } + + // Check if a position was provided. (show character y at left) + if (position instanceof Array) { + // If it was, we'll set that position to the character + const [at, positionClass] = position; + sprite.data('position', positionClass); + } else { + // If it wasn't, we'll check if the sprite already had one position set + // const currentPosition = sprite.data ('position'); + // if (typeof currentPosition === 'string') { + // // If it did, we'll add that position + // if (currentPosition.trim () !== '') { + // console.log (currentPosition); + // sprite.addClass (currentPosition.trim ()); + // } + // } else { + // // If it didn't, we'll set the center position by default + // sprite.addClass ('center'); + // sprite.data ('position', 'center'); + // } + + sprite.addClass('center'); + sprite.data('position', 'center'); + } + + sprite.data('sprite', this.sprite); + } else { + let image: HTMLElement | null = null; + let imageReady = Promise.resolve(); + if (typeof this.image === 'string') { + // Check if character sprite is cached + const cacheKey = `characters/${this.asset}/${this.sprite}`; + const cachedImage = this.engine.imageCache(cacheKey); + + if (cachedImage) { + // Clone the cached image element + image = cachedImage.cloneNode(true) as HTMLImageElement; + } else { + // Create new image element + image = document.createElement('img'); + $_(image).attribute('src', `${imgSrc}${this.image}`); + } + $_(image).addClass('animated'); + $_(image).data('character', this.asset); + $_(image).data('sprite', this.sprite); + } else if (this.engine.setting('ExperimentalFeatures') === true) { + image = document.createElement('character-sprite') as any; + + (image as any).setProps({ + character: this.character, + directory: imgSrc, + }); + + + const layers: Record = {}; + + const extras = this._extras || {}; + if (typeof extras.layerHistory !== 'undefined') { + for (const { statement, previous } of (extras.layerHistory as any).layers) { + if (previous !== null) { + const [show, _character, asset, name, ...classes] = previous.split(' '); + const [_identifier, _layer] = asset.split(':'); + layers[_layer] = { + asset: name, + classes: ['animated', ...classes.filter((item: string) => item !== 'at' && item !== 'with')], + }; + } + } + } else { + for (const [layer, asset] of Object.entries(this.image as Record)) { + layers[layer] = { + asset, + classes: [], + }; + } + } + + (image as any).setState({ layers }); + + $_(image).addClass('animated'); + $_(image).data('character', this.asset); + $_(image).data('sprite', this.sprite); + + imageReady = new Promise((resolve, reject) => { + (image as any).ready(() => resolve()); + }); + } + + if (image) { + for (const className of this.classes) { + if (className) { + image.classList.add(className); + } + } + + // Check if a position was provided. (show character y at left) + if (position instanceof Array) { + // If it was, we'll set that position to the character + const [at, positionClass] = position; + $_(image).data('position', positionClass); + } else { + // If it wasn't, we'll set the center position by default + image.classList.add('center'); + $_(image).data('position', 'center'); + } + + const durationPosition = this.classes.indexOf('duration'); + if (durationPosition > -1) { + $_(image).style('animation-duration', this.classes[durationPosition + 1]); + } + + this.engine.element().find('[data-screen="game"] [data-content="visuals"]').append(image); + } + + await imageReady; + } + } + + override async didApply({ updateHistory = true, updateState = true } = {}): Promise { + const experimentalFeatures = this.engine.setting('ExperimentalFeatures') === true; + if (updateHistory === true) { + const characterHistory = this.engine.history('character') as CharacterHistoryItem[]; + characterHistory.push({ + statement: this._statement as string, + previous: this.state || null + }); + + if (experimentalFeatures) { + const characterLayerHistory = this.engine.history('characterLayer') as import('../lib/types').CharacterLayerHistoryItem[]; + if (typeof this.image === 'object') { + const statements: { statement: string; previous: string | null }[] = []; + for (const layer in this.image) { + const previous = this.engine.state('characterLayers').find((statement: string) => { + const [, , asset] = statement.split(' '); + const [_identifier, _layer] = asset.split(':'); + return _identifier === this.asset && _layer == layer; + }) as string | undefined; + + statements.push({ + statement: `show character ${this.asset}:${layer} ${(this.image as Record)[layer]}`, + previous: previous || null + }); + } + + characterLayerHistory.push({ + parent: this._statement as string, + layers: statements + }); + } else { + characterLayerHistory.push({ + parent: this._statement as string, + layers: this.engine.state('characterLayers').map((s: any) => { + return { + statement: null, + previous: s + }; + }) + }); + } + } + } + + if (updateState === true) { + this.engine.state({ + characters: [ + ...this.engine.state('characters').filter((item: any) => { + if (typeof item === 'string') { + const [, , asset] = item.split(' '); + return asset !== this.asset; + } + return false; + }), + this._statement as string + ] + }); + + if (experimentalFeatures) { + + if (typeof this.image === 'object') { + const newState = []; + const extras = this._extras || {}; + if (typeof extras.layerHistory !== 'undefined') { + for (const { statement, previous } of (extras.layerHistory as any).layers) { + if (previous !== null) { + newState.push(previous); + } + } + } else { + for (const layer in this.image) { + newState.push(`show character ${this.asset}:${layer} ${this.image[layer]}`); + } + } + + this.engine.state({ + characterLayers: [ + ...this.engine.state('characterLayers').filter((item: any) => { + if (typeof item === 'string') { + const [show, character, asset, sprite] = item.split(' '); + const [id] = asset.split(':'); + return id !== this.asset; + } + return false; + }), + ...newState + ] + }); + } else { + this.engine.state({ + characterLayers: [ + ...this.engine.state('characterLayers').filter((item: any) => { + if (typeof item === 'string') { + const [show, character, asset, sprite] = item.split(' '); + const [id] = asset.split(':'); + return id !== this.asset; + } + return false; + }), + ] + }); + } + } + } + return { advance: true }; + } + + override async revert(): Promise { + const experimentalFeatures = this.engine.setting('ExperimentalFeatures'); + this.engine.element().find(`[data-character="${this.asset}"]`).remove(); + + // First, we get the last instance of the character from the history as + // that's the one being currently displayed. + for (let i = this.engine.history('character').length - 1; i >= 0; i--) { + const { statement, previous } = this.engine.history('character')[i]; + const [show, character, asset, name] = statement.split(' '); + if (asset === this.asset) { + this.engine.history('character').splice(i, 1); + + if (experimentalFeatures) { + const characterLayerHistory = this.engine.history('characterLayer') as import('../lib/types').CharacterLayerHistoryItem[]; + if (typeof previous !== 'undefined' && previous !== null) { + let previousLayers; + for (let j = characterLayerHistory.length - 1; j >= 0; j--) { + const { parent } = characterLayerHistory[j]; + if (typeof parent === 'string') { + const [, , _asset] = parent.split(' '); + + if (_asset === this.asset) { + previousLayers = characterLayerHistory[j]; + break; + } + } + } + + + const action = this.engine.prepareAction(previous, { cycle: 'Application', extras: { layerHistory: previousLayers } }) as ActionInstance | null; + if (action !== null) { + await action.apply(); + await action.didApply({ updateHistory: false, updateState: true }); + } + + for (let j = characterLayerHistory.length - 1; j >= 0; j--) { + const { parent } = characterLayerHistory[j]; + if (typeof parent === 'string') { + const [, , _asset] = parent.split(' '); + + if (_asset === this.asset) { + characterLayerHistory.splice(j, 1); + break; + } + } + } + return; + } else { + for (let j = characterLayerHistory.length - 1; j >= 0; j--) { + const { parent } = characterLayerHistory[j]; + if (typeof parent === 'string') { + const [, , _asset] = parent.split(' '); + + if (_asset === this.asset) { + characterLayerHistory.splice(j, 1); + break; + } + } + } + } + } else { + if (typeof previous !== 'undefined' && previous !== null) { + const action = this.engine.prepareAction(previous, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + await action.apply(); + await action.didApply({ updateHistory: false, updateState: true }); + } + return; + } + } + break; + } + } + + // If the script didn't return on the for cycle above, it means either the + // history didn't have any items left or, the character was not found. + // In that case, we simply remove the character from the state. + const updatedState: Record = { + characters: [ + ...this.engine.state('characters').filter((item: any) => { + if (typeof item === 'string') { + const [, , asset] = item.split(' '); + return asset !== this.asset; + } + return false; + }), + ], + }; + + if (this.engine.setting('ExperimentalFeatures') === true) { + updatedState.characterLayers = [ + ...this.engine.state('characterLayers').filter((item: any) => { + if (typeof item === 'string') { + const [, , asset] = item.split(' '); + const [id] = asset.split(':'); + return id !== this.asset; + } + return false; + }), + ]; + } + + this.engine.state(updatedState); + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default ShowCharacter; diff --git a/src/actions/ShowCharacterLayer.ts b/src/actions/ShowCharacterLayer.ts new file mode 100644 index 0000000..dd366f4 --- /dev/null +++ b/src/actions/ShowCharacterLayer.ts @@ -0,0 +1,379 @@ +import Action from './../lib/Action'; +import { $_ } from '@aegis-framework/artemis'; +import { FancyError } from './../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult, ActionInstance, CharacterLayerHistoryItem } from '../lib/types'; + +export class ShowCharacterLayer extends Action { + + static override id = 'Show::Character::Layer'; + static override _experimental = true; + static override loadingOrder = 1; + + static override async setup(): Promise { + // The character history saves what characters have been displayed + this.engine.history('characterLayer'); + + // The characters state variable holds what characters are being shown + // right now + this.engine.state({ + characterLayers: [] + }); + } + + static override async reset(): Promise { + this.engine.state({ + characterLayers: [] + }); + } + + static override async onLoad(): Promise { + const characterLayers = this.engine.state('characterLayers') as string[]; + const promises: Promise[] = []; + + for (const item of characterLayers) { + const action = this.engine.prepareAction(item, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + const promise = (async () => { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: false }); + })(); + + promises.push(promise); + } + } + + if (promises.length > 0) { + await Promise.all(promises); + } + } + + static override matchString([show, type, identifier]: string[]): boolean { + return show === 'show' && type === 'character' && identifier.indexOf(':') > -1; + } + + asset: string; + layer: string; + state: string | undefined; + sprite: string; + character: any; + image: any; + classes: string[]; + + constructor([show, type, asset, sprite, ...classes]: string[]) { + super(); + const [character, layer] = asset.split(':'); + this.asset = character; + this.layer = layer; + + this.state = this.engine.state('characterLayers').find((statement: string) => { + const [show, _character, asset, name] = statement.split(' '); + const [_identifier, _layer] = asset.split(':'); + return _identifier === character && _layer == layer; + }); + + if (typeof this.engine.character(character) !== 'undefined') { + // show [character] [expression] at [position] with [animation] [infinite] + this.sprite = sprite; + + this.character = this.engine.character(character); + this.image = this.character.layer_assets[layer][sprite]; + + if (typeof classes !== 'undefined') { + this.classes = ['animated', ...classes.filter((item) => item !== 'at' && item !== 'with')]; + } else { + this.classes = []; + } + + } else { + this.sprite = ''; + this.classes = []; + } + } + + override async willApply(): Promise { + if (typeof this.character === 'undefined') { + FancyError.show('action:show_character_layer:character_not_found', { + asset: this.asset, + layer: this.layer, + availableCharacters: Object.keys(this.engine.characters()), + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + throw new Error(`Character "${this.asset}" not found.`); + } + + if (typeof this.image === 'undefined') { + const layerAssets = this.character.layer_assets?.[this.layer]; + FancyError.show('action:show_character_layer:sprite_not_found', { + asset: this.asset, + layer: this.layer, + sprite: this.sprite, + availableSprites: layerAssets ? Object.keys(layerAssets) : [], + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + throw new Error(`Sprite "${this.sprite}" not found for layer "${this.layer}" of character "${this.asset}".`); + } + } + + override async apply(): Promise { + // show [character:layer] with [...animation] [infinite] + // 0 1 2 3 4 + + // show [character:layer] + // 0 1 + + let directory = this.character.directory; + if (typeof directory == 'undefined') { + directory = ''; + } else { + directory += '/'; + } + + let oneSpriteOnly = true; + + + const parent = this.engine.element().find(`[data-character="${this.asset}"]:not([data-visibility="invisible"])`); + + const sprite = parent.find(`[data-layer="${this.layer}"]:not([data-visibility="invisible"])`); + + const spriteEl = sprite.get(0); + if ((sprite.isVisible() || (this.engine.global('_restoring_state') && sprite.exists())) && spriteEl) { + const oldClasses = [...spriteEl.classList]; + + // Check if there is any end-animation, here's what this matches: + // 'end-fadeIn'.match (/end-([A-Za-z]+)/) => [ "end-fadeIn", "fadeIn" ] + const endAnimation = oldClasses.find((c: string) => c.match(/end-([A-Za-z]+)/) !== null); + + if (typeof endAnimation !== 'undefined') { + // If there was, get the animation-only part + const [end, animation] = endAnimation.split('-'); + const watchAnimation = oldClasses[oldClasses.indexOf(endAnimation) - 1]; + sprite.removeClass(watchAnimation); + sprite.addClass(animation); + sprite.data('visibility', 'invisible'); + sprite.on('animationend', (e: any) => { + e.target.remove(); + }); + + oneSpriteOnly = false; + } + + for (const oldClass of oldClasses) { + if (this.classes.indexOf(oldClass) === -1) { + sprite.removeClass(oldClass); + } + } + } + + const imgSrc = `${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').characters}/${directory}`; + + if (oneSpriteOnly && (sprite.isVisible() || (this.engine.global('_restoring_state') && sprite.exists()))) { + sprite.attribute('src', `${imgSrc}${this.image}`); + sprite.data('sprite', this.sprite); + + for (const className of this.classes) { + if (className) { + sprite.addClass(className); + } + } + + const durationPosition = this.classes.indexOf('duration'); + if (durationPosition > -1) { + sprite.style('animation-duration', this.classes[durationPosition + 1]); + } else { + sprite.style('animation-duration', ''); + } + + const transitionPosition = this.classes.indexOf('transition'); + + if (transitionPosition > -1) { + sprite.style('transition-duration', this.classes[transitionPosition + 1]); + } else { + sprite.style('transition-duration', ''); + } + } else { + const image = document.createElement('img'); + $_(image).attribute('src', `${imgSrc}${this.image}`); + $_(image).addClass('animated'); + $_(image).data('layer', this.layer); + $_(image).data('sprite', this.sprite); + $_(image).style({ zIndex: this.character.layers.indexOf(this.layer) }); + + for (const className of this.classes) { + if (className) { + image.classList.add(className); + } + } + + const durationPosition = this.classes.indexOf('duration'); + if (durationPosition > -1) { + $_(image).style('animation-duration', this.classes[durationPosition + 1]); + } + + parent.find('[data-content="wrapper"]').append(image); + } + + // Update the state of the component + const parentAsComponent = parent.get(0) as (HTMLElement & { state?: { layers?: Record }; setState?: (state: Record) => void }) | undefined; + if (parentAsComponent?.state && parentAsComponent?.setState) { + const stateLayers = parentAsComponent.state.layers || {}; + parentAsComponent.setState({ + layers: { + ...stateLayers, + [this.layer]: { + asset: this.sprite, + classes: this.classes + } + } + }); + } + } + + override async didApply({ updateHistory = true, updateState = true } = {}): Promise { + if (updateHistory === true) { + const characterLayerHistory = this.engine.history('characterLayer') as CharacterLayerHistoryItem[]; + let previousHistory: CharacterLayerHistoryItem | undefined; + for (let j = characterLayerHistory.length - 1; j >= 0; j--) { + const historyItem = characterLayerHistory[j]; + if (historyItem.parent) { + const [, , _asset] = historyItem.parent.split(' '); + + if (_asset === this.asset) { + previousHistory = historyItem; + break; + } + } + } + + const parent = this.engine.state('characters').find((s: string) => { + const [, , asset] = s.split(' '); + return asset === this.asset; + }) || null; + + if (typeof previousHistory !== 'undefined') { + characterLayerHistory.push({ + parent, + layers: [ + ...previousHistory.layers.filter(({ statement }: { statement: string | null; previous: string | null }) => { + if (statement !== null && parent !== null) { + const [, , _asset] = parent.split(' '); + const [_identifier, _layer] = _asset.split(':'); + return _identifier !== this.asset && _layer !== this.layer; + } + return false; + }), + { + statement: this._statement as string, + previous: this.state || null + } + ] + }); + } else { + characterLayerHistory.push({ + parent, + layers: [ + { + statement: this._statement as string, + previous: this.state || null + } + ] + }); + } + + } + + if (updateState === true) { + this.engine.state({ + characterLayers: [ + ...this.engine.state('characterLayers').filter((item: any) => { + if (typeof item === 'string') { + const [, , asset] = item.split(' '); + const [id, layer] = asset.split(':'); + return id !== this.asset || layer !== this.layer; + } + return false; + }), + this._statement as string + ] + }); + } + return { advance: true }; + } + + override async revert(): Promise { + const parent = this.engine.element().find(`[data-character="${this.asset}"]`); + + parent.find(`[data-layer="${this.layer}"]`).remove(); + + + // First, we remove the last instance of the character from the history since + // that's the one being currently displayed and we want the one before that + const characterLayerHistory = this.engine.history('characterLayer') as CharacterLayerHistoryItem[]; + for (let i = characterLayerHistory.length - 1; i >= 0; i--) { + const { layers } = characterLayerHistory[i]; + + const historyStatement = layers.find((s: { statement: string | null; previous: string | null }) => { + const { previous, statement } = s; + const statementStr = statement || previous; + if (statementStr) { + const [, , asset] = statementStr.split(' '); + const [id, layer] = asset.split(':'); + + return id === this.asset && layer === this.layer; + } + return false; + }); + + if (typeof historyStatement === 'object' && historyStatement !== null) { + + const { statement, previous } = historyStatement; + const statementStr = statement || previous; + if (statementStr) { + const [, , asset] = statementStr.split(' '); + const [id, layer] = asset.split(':'); + if (id === this.asset && layer === this.layer) { + characterLayerHistory.splice(i, 1); + + if (typeof previous !== 'undefined' && previous !== null) { + const action = this.engine.prepareAction(previous, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + await action.apply(); + await action.didApply({ updateHistory: false, updateState: true }); + } + return; + } + + + break; + } + } + } + } + + // If the script didn't return on the for cycle above, it means either the + // history didn't have any items left or, the character was not found. + // In that case, we simply remove the character from the state. + this.engine.state({ + characterLayers: [ + ...this.engine.state('characterLayers').filter((item: any) => { + if (typeof item === 'string') { + const [show, character, asset, sprite] = item.split(' '); + const [id, layer] = asset.split(':'); + return id !== this.asset || layer !== this.layer; + } + return false; + }), + ], + }); + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default ShowCharacterLayer; diff --git a/src/actions/ShowImage.js b/src/actions/ShowImage.js deleted file mode 100644 index e49264c..0000000 --- a/src/actions/ShowImage.js +++ /dev/null @@ -1,132 +0,0 @@ -import { Action } from './../lib/Action'; -import { $_ } from '@aegis-framework/artemis'; - -export class ShowImage extends Action { - - static setup () { - this.engine.history ('image'); - this.engine.state ({ - images: [] - }); - return Promise.resolve (); - } - - static reset () { - this.engine.element ().find ('[data-screen="game"] [data-image]').remove (); - - this.engine.state ({ - images: [] - }); - - return Promise.resolve (); - } - - static onLoad () { - const { images } = this.engine.state (); - const promises = []; - - for (const item of images) { - const action = this.engine.prepareAction (item, { cycle: 'Application' }); - const promise = action.willApply ().then (() => { - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: false }); - }); - }); - - promises.push (promise); - } - - if (promises.length > 0) { - return Promise.all (promises); - } - - return Promise.resolve (); - } - - static matchString ([ show, type ]) { - return show === 'show' && type === 'image'; - } - - constructor ([ show, type, asset, ...props ]) { - super (); - this.asset = asset; - - this.classes = (' ' + props.join (' ')).replace(' at ', ' ').replace (' with ', ' ').trim ().split (' '); - - if (typeof this.engine.asset ('images', asset) !== 'undefined') { - this.image = this.engine.asset ('images', asset); - } else { - this.image = asset; - } - } - - apply () { - const image = document.createElement ('img'); - const position = this._statement.match (/at\s(\S*)/); - - - $_(image).attribute ('src', `${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').images}/${this.image}`); - $_(image).addClass ('animated'); - $_(image).data ('image', this.asset); - - for (const className of this.classes) { - if (className) { - $_(image).addClass (className); - } - } - - if (position instanceof Array) { - // If it was, we'll set that position to the character - const [at, positionClass] = position; - $_(image).data ('position', positionClass); - } else { - $_(image).addClass ('center'); - $_(image).data ('position', 'center'); - } - - const durationPosition = this.classes.indexOf ('duration'); - - if (durationPosition > -1) { - $_(image).style ('animation-duration', this.classes[durationPosition + 1]); - } - - this.engine.element ().find ('[data-screen="game"] [data-content="visuals"]').append (image.outerHTML); - - return Promise.resolve (); - } - - didApply ({ updateHistory = true, updateState = true } = {}) { - if (updateHistory === true) { - this.engine.history ('image').push (this._statement); - } - - if (updateState === true) { - this.engine.state ({ - images: [...this.engine.state ('images'), this._statement] - }); - } - return Promise.resolve ({ advance: true }); - } - - revert () { - this.engine.element ().find (`[data-image="${this.asset}"]`).remove (); - return Promise.resolve (); - } - - didRevert () { - this.engine.history ('image').pop (); - this.engine.state ({ - images: [...this.engine.state ('images').filter ((item) => { - if (typeof item === 'string') { - const [show, image, asset] = item.split (' '); - return asset !== this.asset; - } - })] - }); - return Promise.resolve ({ advance: true, step: true }); - } -} - -ShowImage.id = 'Show::Image'; - -export default ShowImage; \ No newline at end of file diff --git a/src/actions/ShowImage.ts b/src/actions/ShowImage.ts new file mode 100644 index 0000000..c07ee7c --- /dev/null +++ b/src/actions/ShowImage.ts @@ -0,0 +1,151 @@ +import Action from './../lib/Action'; +import { $_ } from '@aegis-framework/artemis'; +import { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types'; + +export class ShowImage extends Action { + + static override id = 'Show::Image'; + + static override async setup(): Promise { + this.engine.history('image'); + this.engine.state({ + images: [] + }); + } + + static override async reset(): Promise { + this.engine.element().find('[data-screen="game"] [data-image]').remove(); + + this.engine.state({ + images: [] + }); + } + + static override async onLoad(): Promise { + const images = this.engine.state('images') as string[]; + const promises: Promise[] = []; + + for (const item of images) { + const action = this.engine.prepareAction(item, { cycle: 'Application' }) as ActionInstance | null; + if (action !== null) { + const promise = (async () => { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: false }); + })(); + + promises.push(promise); + } + } + + if (promises.length > 0) { + await Promise.all(promises); + } + } + + static override matchString([show, type]: string[]): boolean { + return show === 'show' && type === 'image'; + } + + asset: string; + classes: string[]; + image: string; + + constructor([show, type, asset, ...props]: string[]) { + super(); + this.asset = asset; + + this.classes = (' ' + props.join(' ')).replace(' at ', ' ').replace(' with ', ' ').trim().split(' '); + + const assetPath = this.engine.asset('images', asset); + if (typeof assetPath !== 'undefined') { + this.image = assetPath; + } else { + this.image = asset; + } + } + + override async apply(): Promise { + const position = (this._statement as string).match(/at\s(\S*)/); + + // Check if image is cached + const cacheKey = `images/${this.asset}`; + const cachedImage = this.engine.imageCache(cacheKey); + + let image: HTMLImageElement; + if (cachedImage) { + // Clone the cached image element + image = cachedImage.cloneNode(true) as HTMLImageElement; + } else { + // Create new image element + image = document.createElement('img'); + $_(image).attribute('src', `${this.engine.setting('AssetsPath').root}/${this.engine.setting('AssetsPath').images}/${this.image}`); + } + + $_(image).addClass('animated'); + $_(image).data('image', this.asset); + + for (const className of this.classes) { + if (className) { + $_(image).addClass(className); + } + } + + if (position instanceof Array) { + // If it was, we'll set that position to the character + const [at, positionClass] = position; + $_(image).data('position', positionClass); + } else { + $_(image).addClass('center'); + $_(image).data('position', 'center'); + } + + const durationPosition = this.classes.indexOf('duration'); + + if (durationPosition > -1) { + $_(image).style('animation-duration', this.classes[durationPosition + 1]); + } + + this.engine.element().find('[data-screen="game"] [data-content="visuals"]').append(image.outerHTML); + } + + override async didApply({ updateHistory = true, updateState = true } = {}): Promise { + if (updateHistory === true) { + (this.engine.history('image') as string[]).push(this._statement as string); + } + + if (updateState === true) { + this.engine.state({ + images: [...this.engine.state('images'), this._statement as string] + }); + } + return { advance: true }; + } + + override async revert(): Promise { + this.engine.element().find(`[data-image="${this.asset}"]`).remove(); + } + + override async didRevert(): Promise { + const history = this.engine.history('image') as string[]; + for (let i = history.length - 1; i >= 0; i--) { + const [, , asset] = history[i].split(' '); + if (asset === this.asset) { + history.splice(i, 1); + break; + } + } + this.engine.state({ + images: [...this.engine.state('images').filter((item: string) => { + if (typeof item === 'string') { + const [, , asset] = item.split(' '); + return asset !== this.asset; + } + return true; + })] + }); + return { advance: true, step: true }; + } +} + +export default ShowImage; \ No newline at end of file diff --git a/src/actions/ShowTextBox.ts b/src/actions/ShowTextBox.ts new file mode 100644 index 0000000..a8b2eb2 --- /dev/null +++ b/src/actions/ShowTextBox.ts @@ -0,0 +1,34 @@ +import Action from './../lib/Action'; +import type TextBox from './../components/text-box'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + +export class ShowTextBox extends Action { + + static override id = 'Show::TextBox'; + + static override matchString([show, type]: string[]): boolean { + return show === 'show' && type === 'textbox'; + } + + override async apply(): Promise { + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as TextBox | undefined; + textBox?.setState({ hidden: false }); + } + + override async didApply(): Promise { + this.engine.state({ textboxHidden: false }); + return { advance: true }; + } + + override async revert(): Promise { + const textBox = this.engine.element().find('[data-component="text-box"]').get(0) as TextBox | undefined; + textBox?.setState({ hidden: true }); + } + + override async didRevert(): Promise { + this.engine.state({ textboxHidden: true }); + return { advance: true, step: true }; + } +} + +export default ShowTextBox; diff --git a/src/actions/Stop.js b/src/actions/Stop.js deleted file mode 100644 index 3c3ad11..0000000 --- a/src/actions/Stop.js +++ /dev/null @@ -1,196 +0,0 @@ -import { Action } from './../lib/Action'; - -export class Stop extends Action { - - static matchString ([ action ]) { - return action === 'stop'; - } - - /** - * Prepare the needed values to run the fade function on the given player - * - * @param {string} fadeTime - The time it will take the audio to reach 0 - * @param {Audio} player - The Audio object to modify - * - * @return {Promise} - This promise will resolve once the fadeOut has ended - */ - static fadeOut (fadeTime, player) { - const time = parseFloat (fadeTime.match (/\d*(\.\d*)?/)); - - const increments = time / 0.1; - let maxVolume = parseFloat (player.dataset.maxVolume); - - if (isNaN(maxVolume)) { - maxVolume = player.volume * 100; - } - - const volume = (maxVolume / increments) / maxVolume; - - const interval = (1000 * time) / increments; - - const expected = Date.now () + interval; - - player.dataset.fade = 'out'; - - if (Math.sign (volume) === 1) { - return new Promise ((resolve, reject) => { - setTimeout (() => { - Stop.fade (player, volume, interval, expected, resolve); - }, interval); - }); - } else { - // If the volume is set to zero or not valid, the fade effect is disabled - // to prevent errors - return Promise.resolve (); - } - } - - /** - * Fade the player's audio on small iterations until it reaches 0 - * - * @param {Audio} player The Audio player to which the audio will fadeOut - * @param {number} volume The amount to decrease the volume on each iteration - * @param {number} interval The time in milliseconds between each iteration - * @param {Date} expected The expected time the next iteration will happen - * @param {function} resolve The resolve function of the promise returned by the fadeOut function - * - * @return {void} - */ - static fade (player, volume, interval, expected, resolve) { - const now = Date.now () - expected; // the drift (positive for overshooting) - - if (now > interval) { - // something really bad happened. Maybe the browser (tab) was inactive? - // possibly special handling to avoid futile "catch up" run - } - - if (player.volume !== 0 && player.dataset.fade === 'out') { - if ((player.volume - volume) < 0) { - resolve (); - } else { - player.volume -= volume; - expected += interval; - setTimeout (() => { - Stop.fade (player, volume, interval, expected, resolve); - }, Math.max (0, interval - now)); // take into account drift - } - } - } - - constructor ([ action, type, media, ...props ]) { - super (); - - this.type = type; - this.media = media; - this.props = props; - - if (typeof media === 'undefined' || media === 'with') { - this.player = this.engine.mediaPlayers (type); - } else { - this.player = this.engine.mediaPlayer (type, media); - } - } - - willApply () { - if (this.player) { - if (typeof this.player === 'object' && !(this.player instanceof Audio)) { - for (const player of Object.values (this.player)) { - player.loop = false; - } - } else { - this.player.loop = false; - } - } - return Promise.resolve (); - } - - apply () { - // Check if the audio should have a fade time - const fadePosition = this.props.indexOf ('fade'); - - if (typeof this.player === 'object' && !(this.player instanceof Audio)) { - if (fadePosition > -1) { - for (const player of this.player) { - Stop.fadeOut (this.props[fadePosition + 1], player).then (() => { - this.engine.removeMediaPlayer (this.type, player.dataset.key); - }); - } - } else { - this.engine.removeMediaPlayer (this.type); - } - } else { - - if (fadePosition > -1) { - Stop.fadeOut (this.props[fadePosition + 1], this.player).then (() => { - this.engine.removeMediaPlayer (this.type, this.media); - }); - } else { - this.engine.removeMediaPlayer (this.type, this.media); - } - } - return Promise.resolve (); - } - - didApply () { - const state = {}; - - if (typeof this.media !== 'undefined') { - state[this.type] = [...this.engine.state (this.type).filter ((item) => { - if (typeof item.statement === 'string') { - const [play, type, media] = item.statement.split (' '); - return !(type === this.type && media === this.media); - } - })]; - } else { - this.engine.history (this.type).push (this.engine.state (this.type)); - state[this.type] = []; - } - - this.engine.state (state); - - return Promise.resolve ({ advance: true }); - } - - revert () { - if (typeof this.media !== 'undefined') { - for (let i = this.engine.history (this.type).length - 1; i >= 0; i--) { - const last = this.engine.history (this.type)[i]; - if (typeof last !== 'undefined') { - const [play, type, media] = last.split (' '); - - if (this.type === type && this.media === media) { - const action = this.engine.prepareAction (last, { cycle: 'Application'}); - return action.willApply ().then (() => { - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: true }); - }); - }); - } - } - } - return Promise.resolve (); - } else { - const statements = this.engine.history (this.type).pop (); - const promises = []; - for (const state of statements) { - const action = this.engine.prepareAction (state.statement, { cycle: 'Application'}); - const promise = action.willApply ().then (() => { - return action.apply ({ paused: state.paused }).then (() => { - return action.didApply ({ updateHistory: false, updateState: true }); - }); - }); - - promises.push (promise); - } - return Promise.all (promises); - } - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -Stop.id = 'Stop'; - -export default Stop; \ No newline at end of file diff --git a/src/actions/Stop.ts b/src/actions/Stop.ts new file mode 100644 index 0000000..506bb55 --- /dev/null +++ b/src/actions/Stop.ts @@ -0,0 +1,147 @@ +import Action from './../lib/Action'; +import AudioPlayer from './../lib/AudioPlayer'; +import { ActionApplyResult, ActionRevertResult, MediaType, MediaStateItem, ActionInstance } from '../lib/types'; + +export class Stop extends Action { + static override id = 'Stop'; + + static override matchString([action]: string[]): boolean { + return action === 'stop'; + } + + type: MediaType; + media: string; + props: string[]; + player: any; + + constructor([action, type, media, ...props]: string[]) { + super(); + + this.type = type as MediaType; + this.media = media; + this.props = props; + + if (typeof media === 'undefined' || media === 'with') { + this.player = this.engine.mediaPlayers(type); + } else { + this.player = this.engine.mediaPlayer(type, media); + } + } + + override async willApply(): Promise { + if (this.player) { + if (Array.isArray(this.player)) { + for (const player of this.player) { + player.loop = false; + } + } else { + this.player.loop = false; + } + } + } + + override async apply(): Promise { + // Check if the audio should have a fade time + const fadePosition = this.props.indexOf('fade'); + + if (Array.isArray(this.player)) { + if (fadePosition > -1) { + const fadeTime = this.props[fadePosition + 1]; + const duration = parseFloat((fadeTime.match(/\d*(\.\d*)?/) as RegExpMatchArray)[0]); + for (const player of this.player) { + // Only AudioPlayer has fadeOut, HTMLAudioElement doesn't + if (player instanceof AudioPlayer) { + await player.fadeOut(duration); + } + this.engine.removeMediaPlayer(this.type, player.dataset.key); + } + } else { + this.engine.removeMediaPlayer(this.type); + } + } else { + if (fadePosition > -1) { + const fadeTime = this.props[fadePosition + 1]; + const duration = parseFloat((fadeTime.match(/\d*(\.\d*)?/) as RegExpMatchArray)[0]); + // Only AudioPlayer has fadeOut, HTMLAudioElement doesn't + if (this.player instanceof AudioPlayer) { + await this.player.fadeOut(duration); + } + this.engine.removeMediaPlayer(this.type, this.media); + } else { + this.engine.removeMediaPlayer(this.type, this.media); + } + } + } + + override async didApply(): Promise { + const currentState = this.engine.state(this.type); + + if (typeof this.media !== 'undefined') { + const filteredState = currentState.filter((item: MediaStateItem) => { + if (typeof item.statement === 'string') { + const [play, type, media] = item.statement.split(' '); + return !(type === this.type && media === this.media); + } + return true; + }); + this.engine.state({ [this.type]: filteredState }); + } else { + this.engine.history(this.type).push(currentState); + this.engine.state({ [this.type]: [] }); + } + + return { advance: true }; + } + + override async revert(): Promise { + const history = this.engine.history(this.type); + + if (typeof this.media !== 'undefined') { + for (let i = history.length - 1; i >= 0; i--) { + const last = history[i]; + if (typeof last === 'string') { + const [, type, media] = last.split(' '); + + if (this.type === type && this.media === media) { + const action = this.engine.prepareAction(last, { cycle: 'Application' }) as ActionInstance | null; + if (action) { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: true }); + } + return; + } + } + } + return; + } + + const statements = history.pop(); + + if (!statements || typeof statements === 'string') { + return; + } + + const promises = []; + for (const state of statements) { + // prepareAction returns typeof Action but actually returns instance + const action = this.engine.prepareAction(state.statement, { cycle: 'Application' }) as ActionInstance | null; + if (action) { + const promise = (async () => { + await action.willApply(); + await (action as any).apply({ paused: state.paused }); + await action.didApply({ updateHistory: false, updateState: true }); + })(); + + promises.push(promise); + } + } + await Promise.all(promises); + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default Stop; \ No newline at end of file diff --git a/src/actions/Unload.ts b/src/actions/Unload.ts new file mode 100644 index 0000000..1b32371 --- /dev/null +++ b/src/actions/Unload.ts @@ -0,0 +1,265 @@ +import Action from './../lib/Action'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; +import { Preload, PreloadBlocks } from './Preload'; + + +export class Unload extends Action { + + static override id = 'Unload'; + + static override matchString([action]: string[]): boolean { + return action === 'unload'; + } + + // Instance properties + private category: string = ''; + private assetName: string = ''; + private blockId: string = ''; + private isBlock: boolean = false; + private isAll: boolean = false; + private isCategoryOnly: boolean = false; + private characterId: string = ''; + private isPermanent: boolean = false; + + constructor([_action, typeOrBlock, ...rest]: string[]) { + super(); + + // Check for 'permanent' flag at the end + this.isPermanent = rest.includes('permanent'); + // Remove 'permanent' from rest for easier parsing + const filteredRest = rest.filter(arg => arg !== 'permanent'); + + if (typeOrBlock === 'all') { + this.isAll = true; + } else if (typeOrBlock === 'block') { + this.isBlock = true; + this.blockId = filteredRest[0]; + } else if (typeOrBlock === 'character') { + this.category = 'characters'; + this.characterId = filteredRest[0]; + this.assetName = filteredRest[1] || ''; // Empty means all sprites for character + } else { + // Resolve category aliases (e.g., 'sound' -> 'sounds') + this.category = Preload.resolveCategory(typeOrBlock); + + if (filteredRest.length > 0) { + this.assetName = filteredRest[0]; + } else { + // No asset name means unload entire category + this.isCategoryOnly = true; + } + } + } + + /** + * Unload a single asset using the registered loader for its category + * @param category - The asset category (e.g., 'music', 'scenes', 'videos') + * @param assetName - The asset identifier + */ + private unloadAsset(category: string, assetName: string): void { + const loaderType = Preload.getLoaderType(category); + if (!loaderType) { + console.warn(`Unload: No loader registered for category "${category}"`); + return; + } + + const loaderConfig = Preload.getLoader(loaderType); + if (!loaderConfig) { + console.warn(`Unload: Loader type "${loaderType}" not found`); + return; + } + + if (!loaderConfig.cache.delete) { + console.warn(`Unload: Loader type "${loaderType}" does not support delete operation`); + return; + } + + const cacheKey = `${category}/${assetName}`; + loaderConfig.cache.delete(this.engine, cacheKey); + } + + /** + * Unload a character sprite or all sprites for a character + * Uses the registered 'image' loader + */ + private unloadCharacter(characterId: string, spriteName?: string): void { + const loaderConfig = Preload.getLoader('image'); + if (!loaderConfig) { + console.warn(`Unload: Image loader not registered`); + return; + } + + if (spriteName) { + // Unload single sprite + if (!loaderConfig.cache.delete) { + console.warn(`Unload: Image loader does not support delete operation`); + return; + } + const cacheKey = `characters/${characterId}/${spriteName}`; + loaderConfig.cache.delete(this.engine, cacheKey); + } else { + // Unload all sprites for this character + if (!loaderConfig.cache.clear) { + console.warn(`Unload: Image loader does not support clear operation`); + return; + } + loaderConfig.cache.clear(this.engine, `characters/${characterId}/`); + } + } + + /** + * Unload all assets in a block + */ + private unloadBlock(blockId: string): void { + const blocks = Preload.blocks() as PreloadBlocks; + const block = blocks[blockId]; + if (!block) { + console.warn(`Unload: Block "${blockId}" not found`); + return; + } + + for (const [category, assets] of Object.entries(block)) { + // Handle characters separately (nested structure) + if (category === 'characters' && typeof assets === 'object' && !Array.isArray(assets)) { + for (const [charId, sprites] of Object.entries(assets as Record)) { + for (const spriteName of sprites) { + this.unloadCharacter(charId, spriteName); + } + } + continue; + } + + if (!Array.isArray(assets)) continue; + + // Use registered loader for this category + if (Preload.hasLoader(category)) { + for (const assetName of assets) { + this.unloadAsset(category, assetName); + } + } else { + console.warn(`Unload: No loader registered for category "${category}" in block "${blockId}"`); + } + } + } + + /** + * Unload all assets in a category using the registered loader + */ + private unloadCategoryAssets(category: string): void { + // Special case for characters - use 'image' loader + const loaderType = category === 'characters' ? 'image' : Preload.getLoaderType(category); + if (!loaderType) { + console.warn(`Unload: No loader registered for category "${category}"`); + return; + } + + const loaderConfig = Preload.getLoader(loaderType); + if (!loaderConfig) { + console.warn(`Unload: Loader type "${loaderType}" not found`); + return; + } + + if (!loaderConfig.cache.clear) { + console.warn(`Unload: Loader type "${loaderType}" does not support clear operation`); + return; + } + + const prefix = category === 'characters' ? 'characters/' : `${category}/`; + loaderConfig.cache.clear(this.engine, prefix); + } + + /** + * Determine if a category uses audio (for persistent storage) + */ + private isAudioCategory(category: string): boolean { + const loaderType = Preload.getLoaderType(category); + return loaderType === 'audio'; + } + + /** + * Unload from persistent storage (IndexedDB) if applicable + */ + private async unloadPersistent(category: string, assetName?: string): Promise { + if (!this.isAudioCategory(category)) { + return; // Only audio is persisted in IndexedDB + } + + if (assetName) { + // Build the URL key used for persistent storage + const assetsPath = this.engine.setting('AssetsPath') as Record; + const assetFile = this.engine.asset(category, assetName) as string | undefined; + if (assetFile) { + const url = `${assetsPath.root}/${assetsPath[category]}/${assetFile}`; + await this.engine.removeAudioBufferPersistent(url); + } + } else { + // Clear all persistent audio - we can't easily filter by prefix + // so for category-wide unload, we'll clear all + await this.engine.clearAudioBufferPersistent(); + } + } + + override async apply(): Promise { + if (this.isAll) { + // Clear all memory caches + this.engine.clearAllCaches(); + + // If permanent, also clear IndexedDB + if (this.isPermanent) { + await this.engine.clearAudioBufferPersistent(); + } + } else if (this.isBlock) { + // Unload block from memory + this.unloadBlock(this.blockId); + + // If permanent, also clear audio assets from IndexedDB + if (this.isPermanent) { + const blocks = Preload.blocks() as PreloadBlocks; + const block = blocks[this.blockId]; + if (block) { + for (const [category, assets] of Object.entries(block)) { + if (this.isAudioCategory(category) && Array.isArray(assets)) { + for (const assetName of assets) { + await this.unloadPersistent(category, assetName); + } + } + } + } + } + } else if (this.isCategoryOnly) { + // Unload entire category from memory + this.unloadCategoryAssets(this.category); + + if (this.isPermanent) { + await this.unloadPersistent(this.category); + } + } else if (this.category === 'characters') { + this.unloadCharacter(this.characterId, this.assetName || undefined); + } else if (Preload.hasLoader(this.category)) { + // Unload single asset from memory + this.unloadAsset(this.category, this.assetName); + + if (this.isPermanent) { + await this.unloadPersistent(this.category, this.assetName); + } + } else { + console.warn(`Unload: No loader registered for category "${this.category}"`); + } + } + + override async didApply(): Promise { + return { advance: true }; + } + + override async revert(): Promise { + // TODO: Should we re-load the asset automatically? + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default Unload; + + diff --git a/src/actions/Vibrate.js b/src/actions/Vibrate.js deleted file mode 100644 index 2bfad74..0000000 --- a/src/actions/Vibrate.js +++ /dev/null @@ -1,79 +0,0 @@ -import { Action } from './../lib/Action'; -import { FancyError } from './../lib/FancyError'; - -export class Vibrate extends Action { - - static matchString ([ action ]) { - return action === 'vibrate'; - } - - constructor ([ action, ...time ]) { - super (); - - // First check if vibration is available available - if (navigator) { - if (navigator.vibrate) { - // Since time can be a pattern made of different lengths, we have - // to use an array - this.time = []; - for (const i in time) { - // Check if all times are valid integers - if (!isNaN (time[i])) { - this.time[i] = parseInt (time[i]); - } else { - FancyError.show ( - 'The specified time was not an integer', - 'Monogatari attempted to transform the given time into an integer value but failed.', - { - 'Specified time': time[i], - 'Statement': `"${this._statement}"`, - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.', - '_1': 'For example, the following statement would make the device vibrate for 5 seconds:', - '_3':` -
"vibrate 5000"
- `, - '_4': 'If you wanted to make the device vibrate on a pattern, this is a correct syntax:', - '_5':` -
"vibrate 5000 100 4000 200 3000"
- ` - } - } - ); - } - } - } else { - console.warn ('Vibration is not supported in this platform.'); - } - } else { - console.warn ('Vibration is not supported in this platform.'); - } - } - - willApply () { - if (typeof this.time !== 'undefined') { - return Promise.resolve (); - } - return Promise.reject ('Time for vibration was not provided'); - } - - apply () { - navigator.vibrate (0); - navigator.vibrate (this.time); - return Promise.resolve (); - } - - didApply () { - return Promise.resolve ({ advance: true }); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -Vibrate.id = 'Vibrate'; - -export default Vibrate; \ No newline at end of file diff --git a/src/actions/Vibrate.ts b/src/actions/Vibrate.ts new file mode 100644 index 0000000..0c89d12 --- /dev/null +++ b/src/actions/Vibrate.ts @@ -0,0 +1,68 @@ +import Action from './../lib/Action'; +import { FancyError } from './../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + +export class Vibrate extends Action { + + static override id = 'Vibrate'; + + static override matchString([action]: string[]): boolean { + return action === 'vibrate'; + } + + time: number[] | undefined; + + constructor([action, ...time]: string[]) { + super(); + + // First check if vibration is available available + if (navigator) { + if (typeof navigator.vibrate === 'function') { + // Since time can be a pattern made of different lengths, we have + // to use an array + this.time = []; + for (const i in time) { + // Check if all times are valid integers + if (!isNaN(Number(time[i]))) { + this.time[i] = parseInt(time[i]); + } else { + FancyError.show('action:vibrate:invalid_time', { + time: time[i], + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + } + } + } else { + console.warn('Vibration is not supported in this platform.'); + } + } else { + console.warn('Vibration is not supported in this platform.'); + } + } + + override async willApply(): Promise { + if (typeof this.time !== 'undefined') { + return; + } + throw new Error('Time for vibration was not provided'); + } + + override async apply(): Promise { + if (this.time) { + navigator.vibrate(0); + navigator.vibrate(this.time); + } + } + + override async didApply(): Promise { + return { advance: true }; + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default Vibrate; \ No newline at end of file diff --git a/src/actions/Video.js b/src/actions/Video.js deleted file mode 100644 index 2e3d417..0000000 --- a/src/actions/Video.js +++ /dev/null @@ -1,247 +0,0 @@ -import { $_ } from '@aegis-framework/artemis'; - -import { Action } from './../lib/Action'; -import { FancyError } from './../lib/FancyError'; - -export class Video extends Action { - - static shouldProceed () { - return new Promise ((resolve, reject) => { - $_('[data-video]').each ((element) => { - if (element.ended !== true && element.dataset.mode !== 'background' && element.dataset.mode !== 'displayable') { - reject ('Playing video must end before proceeding.'); - } - }); - - resolve (); - }); - } - - static onLoad () { - if (this.engine.state ('videos').length > 0) { - const promises = []; - - for (const video of this.engine.state ('videos')) { - const action = this.engine.prepareAction (video, { cycle: 'Application' }); - const promise = action.willApply ().then (() => { - return action.apply ().then (() => { - return action.didApply ({ updateHistory: false, updateState: false }); - }); - }); - - promises.push (promise); - } - - if (promises.length > 0) { - return Promise.all (promises); - } - } - return Promise.resolve (); - } - - static setup () { - this.engine.history ('video'); - this.engine.state ({ - videos: [] - }); - return Promise.resolve (); - } - - static reset () { - this.engine.element ().find ('[data-video]').remove (); - - this.engine.history ({ - video: [] - }); - - this.engine.state ({ - videos: [] - }); - - return Promise.resolve (); - } - - static matchString ([ show, type ]) { - return show === 'show' && type === 'video'; - } - - /** - * Creates an instance of a Video Action - * - * @param {string[]} parameters - List of parameters received from the script statement. - * @param {string} parameters.action - In this case, action will always be 'video' - * @param {string} [parameters.mode='modal'] - Mode in which the video element will be shown (modal, displayable, background, immersive, full-screen) - * @param {string} parameters.name - * @param {string} parameters.props - */ - constructor ([ show, type, name, mode = 'modal', ...props]) { - super (); - this.mode = mode; - this.name = name; - this.props = props; - - if (typeof this.engine.asset ('videos', name) !== 'undefined') { - this.src = this.engine.asset ('videos', name); - } - - if (typeof props !== 'undefined') { - this.classes = ['animated', ...props.filter((item) => item !== 'with')]; - } else { - this.classes = []; - } - } - - willApply () { - if (this.constructor._configuration.modes.indexOf (this.mode) === -1) { - FancyError.show ( - `The video mode provided ("${this.mode}") is not valid.`, - `Monogatari attempted to play a video but the mode "${this.mode}" was not found in the video action configuration as a valid mode.`, - { - 'Mode Provided': this.mode, - 'You may have meant one of these': this.constructor._configuration.modes, - 'Statement': `"${this._statement}"`, - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check your statement and make sure there are no typos on the mode you provided.' - } - } - ); - return Promise.reject ('Invalid video mode provided.'); - } - - return Promise.resolve (); - } - - apply () { - // TODO: Find a way to remove the resize listeners once the video is stopped - const element = document.createElement ('video'); - - element.volume = this.engine.preference ('Volume').Video; - - element.dataset.video = this.name; - element.dataset.mode = this.mode; - - for (const newClass of this.classes) { - element.classList.add (newClass); - } - - $_(element).attribute ('src', `${this.engine.setting ('AssetsPath').root}/${this.engine.setting ('AssetsPath').videos}/${this.src}`); - - if (this.props.indexOf ('close') > -1) { - element.onended = () => { - this.engine.element ().find (`[data-video="${this.name}"][data-mode="${this.mode}"]`).remove (); - - let index = -1; - for (let i = this.engine.state ('videos').length - 1; i >= 0; i--) { - const last = this.engine.state ('videos')[i]; - const [show, video, name, mode] = last.split (' '); - if (name === this.name && mode === this.mode) { - index = i; - break; - } - } - - if (this.mode === 'immersive' || this.mode === 'fullscreen' || this.mode === 'modal') { - if (index > -1) { - this.engine.state ('videos').splice (index, 1); - } - - this.engine.global ('block', false); - this.engine.proceed ({ userInitiated: false, skip: false, autoPlay: false }); - } else if (this.mode === 'background' || this.mode === 'displayable') { - if (index > -1) { - this.engine.state ('videos').splice (index, 1); - } - } - }; - } - - if (this.props.indexOf ('loop') > -1) { - $_(element).attribute ('loop', ''); - } - - if (this.props.indexOf ('controls') > -1) { - $_(element).attribute ('controls', ''); - } - - if (this.mode === 'background') { - this.engine.element ().find ('[data-ui="background"]').append (element); - } else if (this.mode === 'immersive') { - this.engine.global ('block', true); - this.engine.element ().find ('[data-screen="game"]').prepend (element); - } else if (this.mode === 'fullscreen') { - this.engine.global ('block', true); - if (element.requestFullscreen) { - this.engine.element ().find ('[data-screen="game"]').append (element); - element.requestFullscreen (); - } else { - $_(element).addClass ('immersive'); - this.engine.element ().find ('[data-screen="game"]').prepend (element); - } - } else if (this.mode === 'displayable') { - this.engine.element ().find ('[data-screen="game"]').append (element); - } else if (this.mode === 'modal') { - this.engine.global ('block', true); - this.engine.element ().find ('[data-screen="game"]').append (element); - } else { - return Promise.reject ('Invalid video mode.'); - } - - element.play (); - - return Promise.resolve (); - } - - didApply ({ updateHistory = true, updateState = true } = {}) { - if (updateHistory === true) { - this.engine.history ('video').push (this._statement); - } - - if (updateState === true) { - this.engine.state ('videos').push (this._statement); - } - - if (this.mode === 'background' || this.mode === 'modal' || this.mode === 'displayable') { - return Promise.resolve ({ advance: true }); - } - - return Promise.resolve ({ advance: false }); - } - - revert () { - this.engine.element ().find (`[data-video="${this.name}"][data-mode="${this.mode}"]`).remove (); - return Promise.resolve (); - } - - didRevert () { - for (let i = this.engine.state ('videos').length - 1; i >= 0; i--) { - const last = this.engine.state ('videos')[i]; - const [show, video, name, mode] = last.split (' '); - if (name === this.name && mode === this.mode) { - this.engine.state ('videos').splice (i, 1); - break; - } - } - - for (let i = this.engine.history ('video').length - 1; i >= 0; i--) { - const last = this.engine.history ('video')[i]; - const [show, video, name, mode] = last.split (' '); - if (name === this.name && mode === this.mode) { - this.engine.history ('video').splice (i, 1); - break; - } - } - return Promise.resolve ({ advance: true, step: true }); - } -} - -Video.id = 'Video'; -Video._configuration = { - objects: { - - }, - modes: ['modal', 'displayable', 'immersive', 'fullscreen', 'background'] -}; - -export default Video; \ No newline at end of file diff --git a/src/actions/Video.ts b/src/actions/Video.ts new file mode 100644 index 0000000..f7dba23 --- /dev/null +++ b/src/actions/Video.ts @@ -0,0 +1,320 @@ +import { $_ } from '@aegis-framework/artemis'; + +import Action from './../lib/Action'; +import { FancyError } from './../lib/FancyError'; +import { ActionApplyResult, ActionRevertResult, ActionInstance } from '../lib/types'; + +export class Video extends Action { + static override id = 'Video'; + static override blocking = false; + + static _configuration: { objects: Record, modes: string[] } = { + objects: { + + }, + modes: ['modal', 'displayable', 'immersive', 'fullscreen', 'background'] + }; + + /** + * Properly cleanup a video element to prevent memory leaks + */ + static cleanupVideoElement(element: HTMLVideoElement): void { + element.pause(); + element.onended = null; + element.onerror = null; + element.src = ''; + element.load(); // Reset the element + } + + static override async shouldProceed(): Promise { + if (Video.blocking) { + throw new Error('Video is still playing'); + } + + return new Promise((resolve, reject) => { + $_('[data-video]').each((element: HTMLElement) => { + const videoElement = element as HTMLVideoElement; + if (videoElement.ended !== true && videoElement.dataset.mode !== 'background' && videoElement.dataset.mode !== 'displayable') { + reject('Playing video must end before proceeding.'); + } + }); + + resolve(); + }); + } + + static override async onLoad(): Promise { + const state = this.engine.state('videos'); + + if (state.length === 0) { + return; + } + + const promises = []; + + for (const video of state) { + // prepareAction returns typeof Action but actually returns instance + const action = this.engine.prepareAction(video, { cycle: 'Application' }) as ActionInstance | null; + + if (action === null) { + continue; + } + + const promise = (async () => { + await action.willApply(); + await action.apply(); + await action.didApply({ updateHistory: false, updateState: false }); + })(); + + promises.push(promise); + } + + if (promises.length > 0) { + await Promise.all(promises); + } + } + + static override async setup(): Promise { + this.engine.history({ + video: [] // string[] + }); + + this.engine.state({ + videos: [] // string[] + }); + } + + static override async reset(): Promise { + // Properly clean up all video elements before removing + this.engine.element().find('[data-video]').each((element: HTMLElement) => { + Video.cleanupVideoElement(element as HTMLVideoElement); + }); + this.engine.element().find('[data-video]').remove(); + + this.engine.history({ + video: [] // string[] + }); + + this.engine.state({ + videos: [] // string[] + }); + } + + static override matchString([show, type]: string[]): boolean { + return show === 'show' && type === 'video'; + } + + /** + * Creates an instance of a Video Action + * + * @param {string[]} parameters - List of parameters received from the script statement. + * @param {string} parameters.action - In this case, action will always be 'video' + * @param {string} [parameters.mode='modal'] - Mode in which the video element will be shown (modal, displayable, background, immersive, full-screen) + * @param {string} parameters.name + * @param {string} parameters.props + */ + mode: string; + name: string; + props: string[]; + src: string | undefined; + classes: string[]; + + constructor([show, type, name, mode = 'modal', ...props]: string[]) { + super(); + this.mode = mode; + this.name = name; + this.props = props; + + if (typeof this.engine.asset('videos', name) !== 'undefined') { + this.src = this.engine.asset('videos', name); + } + + if (typeof props !== 'undefined') { + this.classes = ['animated', ...props.filter((item) => item !== 'with')]; + } else { + this.classes = []; + } + } + + override async willApply(): Promise { + if (Video._configuration.modes.indexOf(this.mode) === -1) { + FancyError.show('action:video:invalid_mode', { + mode: this.mode, + validModes: Video._configuration.modes, + statement: `"${this._statement}"`, + label: this.engine.state('label'), + step: this.engine.state('step') + }); + throw new Error('Invalid video mode provided.'); + } + } + + override async apply(): Promise { + // TODO: Find a way to remove the resize listeners once the video is stopped + const element = document.createElement('video'); + + const volumePrefs = this.engine.preference('Volume') as { Video?: number } | undefined; + const videoVolume = volumePrefs?.Video ?? 1; + + element.volume = videoVolume; + + element.dataset.video = this.name; + element.dataset.mode = this.mode; + + for (const newClass of this.classes) { + element.classList.add(newClass); + } + + const { root, videos: videoPath } = this.engine.setting('AssetsPath') as { root: string, videos: string }; + + $_(element).attribute('src', `${root}/${videoPath}/${this.src}`); + + // Add error handler for video loading failures + element.onerror = () => { + this.engine.debug.error(`Failed to load video: ${this.name}`); + }; + + if (this.props.indexOf('close') > -1) { + element.onended = () => { + // Exit fullscreen if we're in fullscreen mode + if (this.mode === 'fullscreen' && document.fullscreenElement) { + document.exitFullscreen().catch(() => { + // Ignore errors when exiting fullscreen + }); + } + + // Cleanup and remove the element + const videoElement = this.engine.element().find(`[data-video="${this.name}"][data-mode="${this.mode}"]`).get(0) as HTMLVideoElement | undefined; + if (videoElement) { + Video.cleanupVideoElement(videoElement); + videoElement.remove(); + } + + const removeVideoFromState = () => { + let found = false; + this.engine.state({ + videos: this.engine.state('videos').filter((item: string) => { + if (!found) { + const [, , name, mode] = item.split(' '); + if (name === this.name && mode === this.mode) { + found = true; + return false; + } + } + return true; + }) + }); + }; + + if (this.mode === 'immersive' || this.mode === 'fullscreen' || this.mode === 'modal') { + removeVideoFromState(); + Video.blocking = false; + this.engine.proceed({ userInitiated: false, skip: false, autoPlay: false }); + } else if (this.mode === 'background' || this.mode === 'displayable') { + removeVideoFromState(); + } + }; + } + + if (this.props.indexOf('loop') > -1) { + $_(element).attribute('loop', ''); + } + + if (this.props.indexOf('controls') > -1) { + $_(element).attribute('controls', ''); + } + + if (this.mode === 'background') { + this.engine.element().find('[data-ui="background"]').append(element); + } else if (this.mode === 'immersive') { + Video.blocking = true; + this.engine.element().find('[data-screen="game"]').prepend(element); + } else if (this.mode === 'fullscreen') { + Video.blocking = true; + if (element.requestFullscreen) { + this.engine.element().find('[data-screen="game"]').append(element); + element.requestFullscreen(); + } else { + $_(element).addClass('immersive'); + this.engine.element().find('[data-screen="game"]').prepend(element); + } + } else if (this.mode === 'displayable') { + this.engine.element().find('[data-screen="game"]').append(element); + } else if (this.mode === 'modal') { + Video.blocking = true; + this.engine.element().find('[data-screen="game"]').append(element); + } else { + throw new Error('Invalid video mode.'); + } + + element.play(); + } + + override async didApply({ updateHistory = true, updateState = true } = {}): Promise { + const statement = this._statement as string; + if (updateHistory === true) { + this.engine.history('video').push(statement); + } + + if (updateState === true) { + this.engine.state({ + videos: [...this.engine.state('videos'), statement] + }); + } + + if (this.mode === 'background' || this.mode === 'modal' || this.mode === 'displayable') { + return { advance: true }; + } + + return { advance: false }; + } + + override async revert(): Promise { + const element = this.engine.element().find(`[data-video="${this.name}"][data-mode="${this.mode}"]`).get(0) as HTMLVideoElement | undefined; + if (element) { + // Exit fullscreen if we're in fullscreen mode + if (this.mode === 'fullscreen' && document.fullscreenElement) { + await document.exitFullscreen().catch(() => { + // Ignore errors when exiting fullscreen + }); + } + Video.cleanupVideoElement(element); + element.remove(); + } + + // Unblock if this was a blocking video + if (this.mode === 'immersive' || this.mode === 'fullscreen' || this.mode === 'modal') { + Video.blocking = false; + } + } + + override async didRevert(): Promise { + let foundState = false; + this.engine.state({ + videos: this.engine.state('videos').filter((item: string) => { + if (!foundState) { + const [, , name, mode] = item.split(' '); + if (name === this.name && mode === this.mode) { + foundState = true; + return false; + } + } + return true; + }) + }); + + const history = this.engine.history('video'); + for (let i = history.length - 1; i >= 0; i--) { + const last = history[i]; + const [, , name, mode] = last.split(' '); + if (name === this.name && mode === this.mode) { + history.splice(i, 1); + break; + } + } + + return { advance: true, step: true }; + } +} + +export default Video; \ No newline at end of file diff --git a/src/actions/Wait.js b/src/actions/Wait.js deleted file mode 100644 index ff861b6..0000000 --- a/src/actions/Wait.js +++ /dev/null @@ -1,69 +0,0 @@ -import { Action } from './../lib/Action'; -import { FancyError } from './../lib/FancyError'; - -export class Wait extends Action { - - static matchString ([ action ]) { - return action === 'wait'; - } - - constructor ([ action, time ]) { - super (); - // Check if the provided time is a valid integer - if (!isNaN (time)) { - this.time = parseInt (time); - } else { - if (typeof time !== 'undefined') { - FancyError.show ( - 'The specified time was not an integer', - 'Monogatari attempted to transform the given time into an integer value but failed.', - { - 'Specified time': time, - 'Statement': `"${this._statement}"`, - 'Label': this.engine.state ('label'), - 'Step': this.engine.state ('step'), - 'Help': { - '_': 'Check if the value you provided is actually an integer (whole number). Remember the value used must be given in milliseconds and must not be mixed with characters other than numbers.', - '_1': 'For example, the following statement would make the game wait for 5 seconds:', - '_3':` -
"wait 5000"
- ` - } - } - ); - } - } - } - - apply () { - return new Promise ((resolve) => { - if (typeof this.time === 'number') { - // Block the game so the player can't advance - this.engine.global ('block', true); - // Set the timeout for the specified time - setTimeout (() => { - // Unlock the game when the timeout ends. - this.engine.global ('block', false); - resolve (); - }, this.time); - } else { - resolve (); - } - }); - } - - didApply () { - if (typeof this.time === 'number') { - return Promise.resolve ({ advance: true }); - } - return Promise.resolve ({ advance: false }); - } - - didRevert () { - return Promise.resolve ({ advance: true, step: true }); - } -} - -Wait.id = 'Wait'; - -export default Wait; \ No newline at end of file diff --git a/src/actions/Wait.ts b/src/actions/Wait.ts new file mode 100644 index 0000000..0d44b8a --- /dev/null +++ b/src/actions/Wait.ts @@ -0,0 +1,57 @@ +import Action from './../lib/Action'; +import { ActionApplyResult, ActionRevertResult } from '../lib/types'; + +export class Wait extends Action { + static override id = 'Wait'; + + static override blocking = false; + + static override matchString([action]: string[]): boolean { + return action === 'wait'; + } + + static override async shouldProceed(_options?: { userInitiated?: boolean; skip?: boolean; autoPlay?: boolean; }): Promise { + if (this.blocking) { + throw new Error('Wait period has not ended'); + } + } + + // TODO: Haven't decided if this is really necesary but sort of makes sense + static override async willRollback(): Promise { + Wait.blocking = false; + } + + // When null, we wait for the click instead of a specific amount of time + time: number | null = null; + + constructor([action, time]: string[]) { + super(); + + this.time = !isNaN(Number(time)) ? parseInt(time) : null; + } + + override async apply(): Promise { + if (typeof this.time !== 'number') { + return; + } + + return new Promise((resolve) => { + Wait.blocking = true; + + setTimeout(() => { + Wait.blocking = false; + resolve(); + }, this.time!); + }); + } + + override async didApply(): Promise { + return { advance: typeof this.time === 'number' }; + } + + override async didRevert(): Promise { + return { advance: true, step: true }; + } +} + +export default Wait; \ No newline at end of file diff --git a/src/browser.ts b/src/browser.ts new file mode 100644 index 0000000..3701e7e --- /dev/null +++ b/src/browser.ts @@ -0,0 +1,16 @@ +// This file is basically just a hack to expose the Monogatari namespace in the +// window object. Once/if bun adds support for this, we can remove this file. + +import * as Monogatari from './index'; + +declare global { + interface Window { + Monogatari: typeof Monogatari; + monogatari: typeof Monogatari.default; + } +} + +if (typeof window === 'object') { + window.Monogatari = Monogatari; + window.monogatari = Monogatari.default; +} \ No newline at end of file diff --git a/src/components/alert-modal/index.js b/src/components/alert-modal/index.ts similarity index 72% rename from src/components/alert-modal/index.js rename to src/components/alert-modal/index.ts index 4f07614..0b491f2 100644 --- a/src/components/alert-modal/index.js +++ b/src/components/alert-modal/index.ts @@ -1,4 +1,4 @@ -import { Component } from '../../lib/Component'; +import Component from '../../lib/Component'; class AlertDialog extends Component { @@ -14,27 +14,27 @@ class AlertDialog extends Component { }; } - onPropsUpdate (property, oldValue, newValue) { + async onPropsUpdate (property: string, oldValue: unknown, newValue: unknown) { if (property === 'active') { if (newValue === true) { this.classList.toggle ('modal--active'); } } - return Promise.resolve (); } - willMount () { + async willMount () { this.classList.add ('modal', 'modal--active'); - return Promise.resolve (); } render () { const { message, context, editable, actions } = this.props; - return ` + const key = message as string; + + return `